June 21st, 2004
Update: gExodus 0.2 is out.
n I saw (and used) Mark Lyon’s Mbox & Maildir to Gmail Loader (GML) (I wrote about it), I was inspired to write a GUI version of it (I didn’t copy Mark’s code, just in case, though it works on the same basis). gExodus is what came out at the end of half a day’s work.

gExodus allows you to import your emails (in mbox format) into your Gmail account. The mbox format is the classic Unix-style mailbox format, and is used by Mozilla Mail/News, Mozilla Thunderbird, qmail, and many other Unix email applications. There currently isn’t support for qmail’s maildir format, which is a much better format in terms of reliability and efficiency (because there isn’t a need to lock a single file, as it is for the mbox format). There doesn’t seem to be any Windows email application that supports maildir, so I’ve left it out. Someone has also posted a feature request for maildir support in Mail/News (and consequently Mozilla Thunderbird), so vote for the bug! I’ll add support for for maildir and possibly the MH mailbox formats if someone requests for it.
Users of email clients which don’t use the mbox format (such as Outlook Express and Outlook) can convert their emails into the mbox format by importing them into Mozilla Mail/News or Mozilla Thunderbird. I’ll add support for Outlook Express (.DBX) and Outlook (.PST) email formats in the near future (there are many converters already available, in fact).
gExodus is written in Python, and uses PythonCard (which is based on wxPython toolkit). PythonCard is a simpler wxPython, and is amazingly simple to use. With a WYSIWYG resource editor which allows you to place widgets and edit their properties, as well as very simple syntax rules and event handling concepts, PythonCard is Visual Studio with a better grounded language (Python). Granted, there are some inadequacies, one of the most glaring being the lack of a formal tab order (I got around that by moving widgets to the front - the nearer one is to the front, the higher it’s tab order). Still, I’m glad I picked PythonCard for my graphical toolkit - I haven’t used any before and was considering my options at this Python GUI toolkit “comparison” page.
gExodus is a standalone program - Gordon McMillan’s Installer was used to convert the Python scripts into executable form. The article Building ’standalone’ PythonCard Applications came in very handy, especially when I didn’t manage to get py2exe to work (the executable didn’t work properly). The documentation for using McMillan’s Installer with PythonCard didn’t seem to work also. Due to dependencies on the wxPython and PythonCard libraries, the resulting executable package is pretty hefty (approx. 4MB) - 2.4MB of that is a wxPython DLL.
The source code is currently unreleased (I’ll put it out in the near future). Listed below are the binaries.
Update: gExodus 0.2 is out. You may want to get that instead of version 0.1 below.
Download gExodus:
Feedback is greatly appreciated. I haven’t really tested it on other machines (just my own Pentium 4 desktop running Windows XP), so bugs are expected (please let me know of them).
June 19th, 2004
Mark Lyon has written Mbox & Maildir to Gmail Loader, or GML, which transfers emails in an mbox file into Gmail accounts. Mbox is the format Mozilla Mail and Mozilla Thunderbird uses, so if you use something like Outlook or Outlook Express, you’d have to export your emails into Mozilla Mail or Thunderbird first.
Works nice enough, though it had some problems with emails containing attachments - those didn’t import properly and Gmail couldn’t parse the email, so were as good as lost. It is still good stuff because I can now archive my existing email accounts in Gmail (I do have 1 gig of space).
Of course, GML works by forwarding the emails from your mbox file to your Gmail account, so it neccessarily becomes a possible tool for spammers to bomb your Gmail account. Not that there aren’t generic email spambots in existence already.
Other similar applications include Pop Goes the Gmail and gmail.py. GTray also seems useful, but I can’t get the website to load at the moment.
May 31st, 2004
To think I’d tried to set upon the path of setting up a CVS server a few weeks back to allow me and several friends sharing a dedicated server to have our own private CVS repositories. The approach I took was to setup the server for password authentication (pserver). Naturally, I failed to get it running (had some issues with xinetd), and had given up since. Little thought did I give to alternative ways of setting up a CVS repository, and probably the most common sense way, using RSH - specifically, SSH, to connect. Well, that worked, and it was amazingly simple to do too.
I’m going to assume you have a shell account to your webserver accessible via SSH. Also, your server should have the cvs client installed - you can test it by logging into your shell account and typing ‘cvs -v’, whereupon it should print the CVS version and the usual blurb.
Now, my server is codefront.net and I have a user account chuyeow. First, I’d have to create a repository on my server. I do that by logging in to my shell account (using SSH) and creating a directory where I’d have read-write access. The simplest place is to create a directory in your home directory (mine’s /home/chuyeow).
$ mkdir /home/chuyeow/cvsroot
Create the CVS repository:
$ cvs -d /home/chuyeow/cvsroot init
There I’m done! I now have a CVS repository that’s accessible from any location so long as I have a SSH client and a CVS client.
To access my repository, I’d first have to set my CVSROOT to :ext:chuyeow@codefront.net:/home/chuyeow/cvsroot, and the CVS_RSH environment variable to “ssh”. I do that by entering these lines below into my ~/.bashrc file.
export CVSROOT=:ext:chuyeow@codefront.net:/home/chuyeow/cvsroot
export CVS_RSH=ssh
Now, all that’s left to do is to import my existing sources into the repository:
$ cvs import -m “Imported sources” sources_dir vendor start
That’s it! You can checkout a copy and then do CVS checkins, merges, etc. as you normally would from now on.
May 26th, 2004
I get tons of anime via BitTorrent and one of my favorite BitTorrent clients has been BitTornado (previously known as Shadow’s Experimental client - nice rebranding too). I liked it because it was simple and light, and it uses the latest official BitTorrent code that allows for incremental allocation of files (since version 3.3). Before, BitTorrent would allocate the entire required disk space for the files you’re downloading prior to actually connecting to peers/seeders.
Now, BitTornado 0.3 has just made an advocate of me. Changes include a per-file download priority system and most significantly, a fast resume feature that allows recently-run torrents to be started immediately without the need for a hash-check! I got my 4.4GB download (68% done) started in a flash, sans disk-thrashing. You can’t imagine how useful that is with large torrents of several gigabytes, where hash-checking can take an interminably long time and not to mention the painful disk-thrashing involved. I get big torrents of several gigabytes quite often, and I dread the hash-checking process because it slows my system to a crawl for several minutes and also starts the processor fan spinning like mad to cool away the extra heat.
Also very cool (and something that brings it on par with other BitTorrent clients like Azureus in this respect) is the per-file download priority system which allows you to choose the priorities of files in a multiple-file torrent. You can choose to download just a single file in the torrent if you wish, something which was sorely missing before.
BitTornado’s an excellent BitTorrent client, but to be honest I’ve only tried the official client, Azureus, and ABC, all of which I didn’t quite grow to like. Which BitTorrent client do you use, and why?
May 25th, 2004
The good people at Project Aon sent out an email on their mailing list today to announce the release of the Lone Wolf RPG (RPG in the Pen and Paper sense, not the CRPG sense). Yes, a PnP RPG! Not that I’ve ever truly played one beyond a fleeting tryst with BattleTech PnP. Where are the people who play PnP games in Singapore hiding?
Anyway, I digress. The rulebook seems to be very interesting reading - the usual stuff you’d expect in a Dungeons and Dragons rulebook. I suppose this sounds fantastically geeky, but reading rulebooks and sourcebooks for Dragonlance and Forgotten Realms at Borders is something I actually enjoy - and yes I don’t play PnP. Go figure.
Check out the character classes available:
In this rulebook, we have included the following character classes to get you started - the Brother of the Crystal Star, Dwarven Gunner of Bor, Kai Lord (of course), Magician of Dessi, Shadaki Buccaneer, Sommerlund Knight of the Realm, and Telchos Warrior.
And who doesn’t remember those Crypt Spawns, Doomwolves, Drakkarim, Giak, Gourgaz, Helghasts, Kraan and Vordaks.
If you’re interested in The Lone Wolf RPG, check it out at Amazon.com (there isn’t much there at the moment though), and if you purchase it, affiliate earnings would help fund Project Aon.
Note: I wrote about Project Aon while back, in case you’re interested.