About this site

This site is hosted by mag.ik.nu, a FreeBSD 4.7-STABLE machine which runs an Apache webserver and PHP 4.3.1.

Session handling, authentication and database abstraction is done with PHPLIB 7.2d. Authorisation is based loosely on the Perm class of PHPLIB but has a notion of roles as well.

Template Engine

All HTML pages are generated using Smarty, the PHP Compiling Template Engine. Currently this is version 1.5.1 with a patch to handle different skins.

Also I have written een prefilter, which can select blocks in the template files depending on the value of a variable at compile time. This is how I made the site multilingual.

Jabber presence features

The Jabber World Map and the Jabber Presence List on the frontpage show the presence of people using Jabber (or ICQ). Here is how it works:

There is a Perl script using Jabber::Connection which logs in as a client on the local jabber server and tracks the presence of the people in its roster by updating a Postgresql database table upon receipt of a presence packet.

This table is then read by a PHP script which uses this info to show the presence of people in several ways. The Jabber World Map images are generated by a PHP script using GD. Then an image map is created to add the popups. For the popups Smarty's interface to overLIB is used.

Jabber messaging

There is the ability to message Ralphm via this site. He will receive these messages in his Jabber client. If he is online and responds, the message appears on the front page at the next request. A second Perl bot takes care of the transport of the messages between Jabber and the database.

Both Perl bots can be downloaded here. You'll also find .sql files for the necessary database tables and views.

Blog

The blog is inspired by blosxom. It uses the same input: simple .txt files with the first line as title. Also, the same url features as blosxom are used: you can select a subblog, filter by date and request XML (RSS) output for syndication.

Parts of the blog are filled by blagg, a companion to (yet useful beyond) blosxom that aggregates RSS syndicated feeds and converts them in blosxom .txt files.