Johan's code

Note: There's no shareware on this page. All code is freely available under the terms of the GNU General Public License (GPL), and there are no fees whatsoever for using it either commercially (as allowed by the GPL of course) or otherwise.

There have been visits to this page since the counter was last reset at 10 aug 2001.

The Bubbling Load Monitor

Bubblemon screenshot
The CPU is moderately loaded, roughly half the memory (but no swap) is used. There is unread mail.

Newsflash: Gnome2 version available

The Bubbling Load Monitor (or "Bubblemon" for short) is a system CPU and memory load monitor for the GNOME panel. It displays something that looks like a vial containing water. The water level indicates how much memory is in use. The color of the liquid indicates how much swap space is used (watery blue means none and angry red means all). The system CPU load is indicated by bubbles floating up through the liquid; lots of bubbles means high CPU load. If you have unread mail, a message in a bottle falls into the water.

Bubblemon requires any UNIX-like operating system with a working GNOME installation. It is freely (re)distributable under the GNU GPL.


Sources, RPMs and Debian packages

Click here to download the latest version, or view the changelog. After you have installed it it will be available from the right click panel menu just like any other GNOME applet. Please report any problems!!

RPM users (Redhat, Mandrake, SuSE and others), please read this before installing your newly downloaded RPM.


The very latest sources are available through CVS. To access the main branch, do:
cvs login
cvs -z3 co bubblemon
When prompted for a password during login, simply press the Enter key.

If you just want to look at the sources, they are available through a web interface as well.

The above instructions have been copied from Savannah, who also provide the CVS server. Savannah rules.


Debian users, if you are running something newer than Debian 2.2 ("Potato"), just do "apt-get install bubblemon". (Then you could vote for it by installing popularity-contest) as well.

OpenBsd, FreeBSD

FreeBSD and OpenBSD users, can install the applet by doing cd /usr/ports/sysutils/bubblemon/ ; make install.


After installing it, add it to the GNOME panel by right clicking on the panel, choosing Panel / Add to Panel / (Panel) Applets / Monitors / Bubbling Load Monitor. Any problems getting it running, please let us know!!

After you have tried it out, if you like it you can subscribe to release announcements or rate it at Freshmeat.

Translations of the applet

Aren't there any African people using this? Translations into any African languages would be very welcome!

The applet is currently available only in Swedish, English, Polish, German, Finnish, Danish, Serbo-Croatian, Portuguese, Spanish, Romanian, Norwegian, Hungarian, Italian, Icelandic, Korean and French. If you want to see the applet speak your favourite language, here's how. Don't worry if you don't know any programming; you won't have to look at a single line of code to do it. I very much appreciate new translations as well as corrections to old ones.

External links

Dynamic Taste Detection patch for XMMS

The Dynamic Taste Detection patch for XMMS makes XMMS track the way you listen to music and adapt its randomize function after that. Songs you don't like end up at the end of the playlist, and songs you like to hear next to each other tend to end up next to each other.


Use XMMS normally for a while. After you have at least skipped a song you don't like, open the playlist window (the PL button in the main window), press and hold the Misc opt button (at the bottom of the playlist window), select Sort list, release the mouse button, and click on "Randomize list" in the menu.

Any songs you have skipped should now be at the end of the (otherwise) randomized playlist.


To apply a patch you have downloaded (see below), do:
foo:~/xmms$ patch -p1 < ../xmms-dtd-2001mmdd.patch
This assumes that you have got the CVS version of XMMS checked out in your home directory. Also, you have downloaded the patch (named xmms-dtd-2002mmdd.patch) to your home directory.


The patch (against the version of XMMS available via CVS) can be downloaded here. Pre-patched snapshots of CVS XMMS are also available from the same location. If you would like to see this patch merged into the official XMMS distribution, you should vote for it in XMMS' bug reporting system.

This intellectual property of mine is protected by the GNU GPL. Enjoy ;-).

Questions? Opinions? Send me a mail (remove .nospammers from the address)! Or you can subscribe to release announcements or rate it at Freshmeat.

As noted above, if you like it and would like to see it merged into XMMS proper, please vote for its inclusion.


Pkgusage lists all packages you have installed on your system with a number telling you how many days ago you last accessed any of the files in the package. Great stuff for cleaning out your hard drive.

Pkgusage supports RPMs, and Debian packages. Also, it is written to be easily portable to other package managers as well (contributions welcome ;-). Pkgusage requires a working Tcl installation. It is freely (re)distributable under the GNU GPL.


To run the script, assuming you have a working Tcl interpreter named /usr/bin/tclsh do this: If the above instructions don't work, there are some additional tips at the top of the script itself. Open it in your favourite text editor and read ahead.

To give you a some idea about how long a run takes, on my 400MHz Pentium II system with 819 Debian packages, it runs in roughly 20 minutes.


Click here to download the latest version.

After you try it out you can subscribe to release announcements or rate it at Freshmeat.


Celebrat is no longer maintained by me, go
here instead.

Older versions can be downloaded here.

If you tried it out, you can subscribe to release announcements or rate it at Freshmeat.

Go-moku Apprentice

The Go-moku Apprentice is a go-moku playing program (surprise!), that learns playing the game from studying its opponent. Thus, for starters it plays like crap, but it gets real good after only a few games. It's rather scary actually.

GMA is written in C++, and requires STL to compile. It is freely redistributable under the GNU GPL.

A word of WARNING: The learning engine may be cool, but the user interface (line oriented (although readline enabled)) sucks!

Click here to download the latest version.

When you've tried it, you could subscribe to release announcements or rate it at Freshmeat.

Graphics by The Gimp Powered by Apache