Linux Online Advertisement
[ Register ]

[ Applications ]
[ Documentation ]
[ Distributions ]
[ Download Info ]
[ General Info ]
[ Book Store ]

Advertisement

[ Courses ]
[ News ]
[ People ]
[ Hardware ]
[ Vendors ]
[ Projects ]
[ Events ]
[ User Groups ]
[ User Area ]

Running Linux, Fourth Edition

[ About Us ]
[ Home Page ]
[ Advertise ]

Linux Online: Lessons

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:

pmwiki

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

pmwiki

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:

pmwiki

And here's a closeup:

pmwiki

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




Comments: feedback (at) linux.org
Advertising: banners (at) linux.org
Copyright Linux Online Inc.
Compilation ©1994-2008 Linux Online, Inc.
All rights reserved.