Using PMWiki as a Project Manager
Michael J. Jordan, Linux Online Staff
June 29, 2007
If you've read my last how-to type article here at Linux.org, you know that I
am not big on using ready-made tool to to get my tasks done. I like to brew
my own solutions at home. Linux has so many tools available to do this. That's
why I think I was so attracted to it in the first place. I mean, don't get
my wrong. I wouldn't think of cobbling together my own web browser or
my own image editing program, but when it comes to applications that claim
they can make my life easier - I am seldom impressed.
One of the things I do is create foreign language learning
materials. I maintain a website called Lexica Language
Institute where I offer material for speakers of Spanish to learn
English. I have also recently started a section for English speakers
to learn Spanish. Building a website from scratch is a difficult
task. I have found that it requires more organization than I was
capable of with my normal method of keeping track of tasks - which was
to keep a mental note of things - unless something was really
important. In this case, I wrote it down on a slip of paper or on the
back of some old envelope. As tasks became more complex, I found
myself repeating things I had already done, half-finishing things but
thinking I had finished them and re-starting things I had already
started. What I needed was a good project manager. But as I mentioned
before, I am not big on ready-made solutions. I need something that I
can tweak, modify and use in ways that the manual doesn't
mention. Luckily, for those of us in the Free and Open Source software
world, tweaking and finding new uses for things is something that
comes naturally. For my project management needs, I settled on
PMWiki.
I chose a wiki because I wanted something that was really
flexible, like paper. A wiki is the closest thing that comes to it. I
chose PMWiki in particular because it offers a combination of ease of
installation and usable features.
Installation
To install and use PMWiki, you need to first install the Apache web server with
PHP. On mainstream Linux distributions, this is trivial to do. There is a page
at the PMWiki site that purports to give instructions on how to run PMWiki without
a web server. I found the instructions very confusing. Besides, installing
Apache and PHP on Debian based distributions (Ubuntu, for example), Red Hat based
distributions (read: Fedora) or SUSE is so easy as not to be worth the extra effort to
find some Apache-less solution. For example, on Ubuntu, which is the "hot" Linux
distribution at the time of this writing, installation of the famous LAMP programs,
that is, Linux (you already have), Apache, MySQL and PHP (one of the three possible Ps)
would be:
sudo apt-get install mysql-server apache2 php4 php4-mysql
Now you will have the environment that PMWiki needs to run with the added bonus of
having MySQL, the most popular open source database engine. PMWiki doesn't use
MySQL, or any other database for that matter, but you might find some use for it.
Anyway, once you have those install, just point your browser to: http://localhost
or http://127.0.0.1 and you should be able to verify that your Apache web server
is now running.
Now we're at the point where we need to get PMWiki and put its files in the
right place. First, go to the PMWiki download page at http://www.pmwiki.org/wiki/PmWiki/Download
and pick up the latest tarball or zip file. Once you've got this file, there are a couple
of places where you can put it. If you're using SUSE Linux, the default Apache installation
is capable of using a sub-directory called public_html in your home directory. You can
unzip the files there if you're using SUSE. If you're using Red Hat or a Debian-based
distribution, like Ubuntu, you can place them in the default web server directory.
Debian-based distributions put their web files in /var/www/apache2-default and the Red Hat
flavors go with /var/www/html. These places require root privileges to install files
in them, so use the appropriate method for your distribution (working as root, su or sudo)
to unzip the files. This will create a directory called pmwikiX.X, where X.X is the
version number. There you will find all of the files that PMWiki needs to run.
Feel free to change this directory name to just 'pmwiki', which will
be easier to point your browser to. And that's what we're going to do now: point
our browser at http://localhost/pmwiki/pmwiki.php. When the page loads, you will
be told what you need to do at this point. This usually entails only one task. This
is creating the directory /pmwiki/wiki.d and giving
the Apache web server write privileges to the directory. It's pretty easy to do. Enter the
pmiki directory and as root or with sudo, do:
mkdir wiki.d
then do:
chmod -R a+w wiki.d
Now you're all set to start putting stuff into your wiki
Working with PMWiki
I love wikis because they're like giant loose-leaf notebooks that
you can use to write in and keep track of whatever you want. A wiki,
though, is ultimately better than a paper notebook because the pages
won't get lost and you can connect the pages together using the
computer's memory instead of relying on your own. In these days when
everybody's mind is overtaxed, that gives you quite an advantage over
a low-tech solution.
The first thing you need to do is familiarize yourself with the way PMWiki formats
its pages. This is known as markup. Any content system that works via the
Web needs to be formatted in HTML. One of the advantages of a wiki is that it saves
you the trouble of having to write the HTML code by hand. Instead of having to write
something like <ul><li>item</li></ul> to create a bullet list,
you would simply write this: *item with PMWiki. There are dozens of help pages
that come with PMWiki that will show you how to use the wiki markup system. It's really
easy to get the basics under your belt. You'll be creating pages in no time.
Another advantage is the ability to create and link pages. For example, if
I go to any existing page in my PMWiki installation and I push on the 'edit' button and then enter
[[myideas]] and save it, I create both a link and a page called
'myideas'. So I don't have to actually create an HTML file and then
add a link to it by writing code like <a
href="mysite/myideas.html"> . PMWiki does all of that drudge work
for you.
Manage your life with PMWiki
As I mentioned at the outset, I am using PMWiki to organize my work on my language
learning website. If you're aiming at using it to organize your own projects, I would
suggest installing a few enhancements from the plethora of add-ons that are available
in the 'cookbook' section of the PMWiki website: http://www.pmwiki.org/wiki/Cookbook/
Installing the add-ons is really easy. Usually, all it entails is getting a PHP file
and then modifying the /local/config.php. For example, there is an add-on to create
"post-it" note type reminders on any wiki page. I use this to put urgent reminders on
the main page of my wiki. As an example, here's how you would install the post-it note system:
You can do this with a browser, but I find it easier to open a terminal and go to the
'cookbook' directory of my PMWiki installation. Then I use 'wget' to download the php file
that creates the post-it note system like so:
wget: http://www.pmwiki.org/pmwiki/uploads/Cookbook/postitnotes.php
Once that's in place, you just open /local/config.php and add the line:
include_once("cookbook/postitnotes.php");
to the end of the file. Now you're all set. Then open any wiki page and add something like:
(:note Your title here | Your note's content here :)
And it will look like this:

I'll pencil wiki it in to my schedule
If you need to keep track of what you're doing on a day to day basis,
you'll need to get a calendar plugin for PMWiki. There are two calendar plugins. I use WikiCalendar, which is, for me, the more flexible of the two. I use it to make notes about to do items and
work accomplished. You can find it here. http://www.pmwiki.org/wiki/Cookbook/WikiCalendar

If you're the type who likes to keep track of your progress on things with graphics,
then you might want to have a look at two add-ons: The progress bar and the goal meter.
You should get the progressbar. http://www.pmwiki.org/wiki/Cookbook/ProgressBar
If you find that too boring, you can get the goalmeter plugin: http://www.pmwiki.org/wiki/Cookbook/GoalMeter
Since neither of these really fit my needs exactly, I made my own images to give
me a visual idea of how individual lesson development is going. I fired up The GIMP
and created a color-coded system with a simple little dot to mark my progress. I then
placed the images in a directory that I added to my PMWiki installation. You just
place them on the page by way of a normal http request: (http://localhost/pmwiki2/graphics/phase6.png"phase 6"). The last bit in the quotes "" is for displaying the ALT tag.
Here's how it looks on the page:

And here's a closeup:

The idea is to get to the green zone. If you're closer to the red, then you
aren't getting your work done. Again, this is the beauty of using a wiki. You can
use homemade tools to get a working environment that you're comfortable with. In fact, if
you're comfortable hacking PHP, you can even come up with your own modules.
You can also rely on ready-made modules. One of those that I find helpful is an add-on for
managing a simple to-do list. I don't use it for day to day to-do items - I prefer using the
calendar and adding them by hand - but I keep track of long-term and not so urgent items
with this. It's a combination that works well for me.
Get the 'To Do' plug-in at: http://www.pmwiki.org/wiki/Cookbook/ToDo?skin=simple
Getting on Track
I've found PMWiki to be a great tool to keep track of what I'm doing with my language
learning project. It's not a perfect solution, but with the flexibility it gives me,
I find it nearly perfect for my needs. The ease of installation and use of PMWiki in
particular frees me up to think about development and not management. As you know, some
management systems can become a chore in themselves as you try to get a handle on how to
use them. With PMWiki, you're free to make it up as you go along and find out for yourself
the best way to manage your work. For us independent-minded people, that's the best way
to go.
Michael J. Jordan is the managing editor of Linux Online. He can be reached at Michael.Jordan**AT**linux.org
|