Updated daily via Google API.
December 25th, 2006
[View page with inline references]
(Actually, the node used to be called "The technical stuff behind this page", but it was too wide to fit in the menu, so in the menus it was cut off early. I really thought I fixed it in the page itself, but I obviously didn't. I'll make some sort of workaround sooner or later. :-) )
For a home page as large as mine, writing plain HTML files all the way doesn't work that well. Instead, one has to have a CMS (Content Management System) of some sort, ie. something that can generate the actual HTML from something simpler and more intuitive.
Thus, I've programmed my own simple CMS, taking simple text files as input, reformatting them and resolving links into HTML. The main core is written in Perl (a somewhat script-like, a bit weird but very powerful language), and a small utility program (namely, the one finding out what widths the menu items are most likely to get -- you might have noticed that the `links' menu is sorted by width, not alphabetically) is written in C, using the FreeType library to find the width of TrueType fonts (or rather, one font -- Times New Roman) under Linux.
The "Google" boxes that are on most of the pages are the three first results from simple searches on Google for the page title itself (as an exact string), excluding the ones from my own site. They're updated nightly via a Perl script residing on the web server, via Google's excellent Google API, using a SOAP-based protocol (Perl has its own SOAP module that makes this really easy). People have been doing all sorts of other interesting stuff with the Google APIs -- it might be worth looking a bit around seeing what others have done. :-)
When it comes to the output, I've been quite rigid following standards -- the page is 100% (or rather, 99% -- there was one minor place where it was quite unavoidable with a minor standards breach) XHTML 1.1 and CSS2 compliant (UTF-8 is used as charset -- but actually, this place is the only place I actually use non-ASCII characters: æøåÆØÅ! vim6 handles UTF-8 beautifully ;-) ) In addition, the page has been tested in Mozilla (my favorite browser nowadays, although slow -- Netscape 6.x and up is based on older Mozilla snapshots, and thus should work too), Microsoft Internet Explorer, Konqueror, Opera and Lynx, at least working and being usable in all of them, if not completely without display bugs (Konqueror, in particular, can't handle my line spacing correctly :-) ). Netscape 4.x is also partially working, but as its CSS support is really bad, the page will look boring (and after the latest HTML/CSS recode, which fixed some IE problems, among others, it will be quite badly broken.). It's really time for Netscape 4.x to die now -- we're writing 2003, not 1998. (As a curiosity, some versions of IE5 plain refuse to display the page, as they download the official XHTML 1.1 DTD and claim it contains an error...)
Since Mozilla (at least the latest nightly builds I'm using ;-) ) now fully supports parsing of the <link> data the HTML DTD defines for describing inter-document relationships, I've included rather extensive (but perhaps not 100% complete, it's a bit hard to decide what to include and what to leave out) data for easy navigation, although it might be slightly illogical at times, since this site's design really doesn't lend itself that much to a linear view. It's largely based on the site map, and should at least make it a bit easier to read through the entire site if you would ever want to do that.
The page has a quite simplistic design (partly inspired by Mare Somniorum by Terje Kvernes, but genuinely my own code and graphics), but should be quite usable and loads quickly. I do not use frames (yuck!) or positional tables (no GIFs either), so one could call it an attempt at an `ideal' page in the technical sense -- at least I try to make my contribution towards a web driven by open standards :-) (I would like to learn to draw or something, though -- the pages could sure use some touch-up clip-art like images...)
On the server side, the machine is (naturally, given my OS preferences ;-) ) running the excellent Apache web server on GNU/Linux - more specifically, the Debian GNU/Linux distribution. In addition, there's thrown in some minor extra stuff like mod_deflate, transparently compressing the outgoing data on-the-fly if your browser supports it (most modern ones do, but most servers don't), making for a little extra speed when you surf my page (if you need it) :-)
Even though the server has IPv6 connectivity, unfortunately Squid (which sits in front of all web sites on that machine) does not support it yet, so there is no IPv6.