With GSOC over, and the fact that I haven't posted a blog here in a while, I'm sure some people have assumed that I'm just going to disappear. After all, my project is over, right?
Hellz to the no, if you'll pardon my slang.
I spent the better part of the week working on Parrot still, I created a new clean branch to continue the GC work I started over the summer. I've also been doing some work on the pdd27mmd branch and I've been doing some documentation work to Parrot trunk.
Tonight though, I've taken a short break to work on a project that I started long before I even heard of Parrot. I call it a "Transform editor" for Mediawiki.
http://sourceforge.net/projects/wikiperl/
The program, called "Wikiperl" and available at source forge, allows an adept perl programmer to apply snippets of perl code directly to a page on a MediaWiki website. The editor loads the text of the page into the $_ variable. It loads your code and executes it. Then, it takes whatever is left in $_ and loads that back to the page. It's very similar in mechanic to Filter::Simple, for people who are familiar with that.
However, there are a number of other features that are very cool too:
1) You can loop the same code over a list of pages. You can enter this list manually, or you can load it in various ways from MediaWiki. For instance, you can load a Table of Contents from a book, or you can load a list of pages from a category, and a few other options.
2) You can store multiple transforms into an ordered queue, and execute the entire queue on a page. This helps you to keep complicated tasks split up into smaller portions.
3) You can set some arbitrary perl code to execute at the very beginning of a complex job, to load libraries, instantiate global variables, etc.
When I originally created this program, I designed the GUI with Perl\Tk. However, I learned when I switched from Windows to Ubuntu that Perl\Tk looks pretty lousy on Gnome. So, I've been starting the slow and arduous task of converting the program to use Gtk2. The program now looks much better, I've learned a cool new graphical API, and I've managed to apply some of this MVC methodology stuff I've been hearing so much about recently.
Wikiperl relies on the MediaWiki module from CPAN, which contains a few flaws and bugs that currently manifest themselves in the operation of the program. I'm preparing a new release with the updated Gtk2 interface (once I get the remaining few bugs worked out, and a lot more documentation written).
One of my other projects is a Perl-based expert system shell, which I'll probably talk about in a future post (if I ever get around to working on it again). And of course, there's always Parrot.