Main page

Welcome to my homepage ! The official url is: The older urls and still work too. The url also works, redirects to the official url.


07.09.2000:I redesigned my homepages. Less blabber and more stuff. Hope you enjoy it. (designed for 800x600)
31.10.2000:According to the news agency Nezz Corp, "simpanssit ulisee afrikan sademetsissä". The author of this page doesn't take any responsibility of the above statement. ;-)
17.11.2000:I fixed the configurations to go to separate pages and added the irclog page. Unfortunately, I still haven't had time to fill the configuration pages ;-(
02.01.2001:For all those Conan friends out there, I made this nice 8210-related logo suited for nokia mobile phones: . Use freely. Also, for Gfx2Nokia owners, grab this database file containing the logo. Note: uploading the database file overwrites the original database so make sure you backup the old one first.
05.03.2001:I finally got an 1024/384 ADSL connection installed at home so now it costs me only half of what my phone bills used to be.. ;-)
24.06.2001:I discovered a very interesting Linux distribution: Gentoo Linux. Kindof a combination of Linux from scratch + BSD ports + debian's aptget. I even got involved and started making packaging scripts..
01.07.2001:I moved my homepage to my home server. Long live the new url ;-)
02.11.2001:I added a list of patches I have made.
17.04.2002:I made a Euro character in HTML HOWTO page based on studies I have made.
09.03.2003:I started a Minihelp page where I aim to collect solutions to problems I encounter in daily computing..
15.04.2003:I started using the IMQ device for ingress traffic shaping, on which I threw the exact same rules that I used previously on egress traffic shaping. I hope to someday write a nice manual on the whole traffic control stuff. Until then, here's the current traffic control script I use: tc16. Older versions: tc15 and tc7. Also here is the traffic control script I use on the local LAN: tcint3
14.03.2004:Added a HOWTO page.
14.10.2004:Added a page with funny variations of swedish sayings.. "stekta ordspråk".
26.06.2005:Drew a graph showing the failure probabilities of various raid setups in png and svg formats. Say the probability of a single disk failing in 5 years is 50% on average and you want to know what the probability of a raid-5 disk setup (with 4 disks) failing. You then look up 50% on the x-axis and look up the y-axis value for the correct curve and you get approx 69% probability of the raid-5 disk setup failing.
26.06.2005:Added a page with the tools I use.
01.11.2005:Found a nice online scrabble game called Internet Scrabble Club.
10.03.2006:Added my spare-time project Plot to the list of programs.
23.03.2006:Added a howto for setting up boxbackup.
10.02.2007:I BOUGHT MY FIRST HOUSE! 47m², suitably matching my nick :)
19.02.2007:I discovered a great nerdy comic: The following comic strips represent me particularly well: 208 and 324. :)
30.10.2007:I subscribed to the LWN online magazine.
10.12.2007:Made a mirror of the good old which seems to have vanished. It has comparision of QoS classifiers, HTB versus HFSC along with nice analysis of performance.
08.02.2008:I subscribed to the great Everyday Practical Electronics online magazine for $18.99 a year! What a bargain! Excellent articles about PIC programming and whatnot..
20.03.2008:After many years of senseless reasoning why I don't need a laser printer, I finally bought one - Konica Minolta magicolor 2550 EN.
20.09.2008:I got married with Ann-Mari! :)
03.11.2008:My great friend DeadEd pointed me to this great piece of software: regexp animator. It requires flash, but it's worth it :) Imo this should be used in education in school.
25.02.2009:Finally tried NX out - it works so great and is "free forever" for Linux & Solaris. Whenever you do any X over ssh, consider using NX instead - it replaces the X transport with NX over ssh. It's much faster and provides "screen" style facility for X automatically as well as optionally running complete virtual desktops. Just install the three RPMs/whatever in both ends and run the graphical "nxclient" - however be sure to consider implementing section 4.4 from here if you install the nxserver package on any publicly available ssh server to increase security.
26.02.2009:Some improvement to the UTF-8 vs ISO-8859-* environment clashes - how to transport LC_CTYPE (and other environment variables) when you ssh between systems.
24.02.2010:Found this nice article about image editing software failing to honor the gamma of sRGB pictures. I made a promotional picture (tip: hit ctrl-- in firefox four times, ctrl-0 to get back).
09.06.2010:Upgraded from Nokia E61 to Nokia N900. The only thing that I felt got worse switching from the E61 is the keyboard.
xx.10.2010:Started using Twitter. Using it only for technically interesting content - personal life stuff stays on my home page.
xx.12.2010:Bought a pair of Logitech LS11 speakers for a temporary arrangement from the local supermarket. Surprisingly good sound for ~20€ - much better than many others closer to 100€..
25.03.2011:Ordered some Filco mechanical keyboards from The Keyboard Company, two with brown (for coding) and one with black (for gaming) cherry mx keyswitches.
04.05.2011:Got myself a Nikon DSLR and a superzoom lens (from Foto Tapio) to get started with until I figure out what lenses I really want. Can't wait to get shootin'!
05.09.2011:I just love the new camera. Bought a new wide angle zoom lens (not a fish-eye however).
31.10.2011:Got a spectrometer to keep my display & printer outputs in spec. Colormunki Photo, works perfectly in linux by using dispcalGUI together with gnome-color-manager.
01.03.2012:Started using GitHub for mostly work-related code.
22.02.2013:Started using GitHub gist service for work and spare-time. Nice for small snippets of code and configuration.
27.03.2014:After many years of sharing a server with a dozen of friends I started using Digital Ocean (referral link) for my hosting needs. Their entry-level vps machine offering (with servers available on several continents including mine) for less than 4¤/month was just perfect for me.
11.11.2014:After having had to switch back to Nokia E61 after my Nokia N900 usb port broke, and after finding out about the TOHKBD2 hardware keyboard kickstarter project, it was time for me to get a Jolla phone.
15.05.2015:Finally got my home server set up to have two internet connections in use. So now if one goes down, I can still access my home server through the other one. Thanks goes to documentation at and policyrouting,org. I ended up using CONNMARK to record which interface was chosen for a connection so I can keep routing outbound packets to the internet through the same interface for the lifetime of the connection. This is needed since I don't have static internet ip addresses that I could hardcode in the routing tables.
03.11.2015:I discovered a new language on the JVM, the Ceylon programming lanuage. It ended up giving me lots of joy over the years and powers several of the server & desktop software I run at home. Many other languages have later embraced several of the core ideas Ceylon was built on.
17.11.2015:After 7½ years of good service I got a new laser printer - Xerox Phaser 6600DN. Let's hope it can meet and beat quality of the old Konica Minolta :)
06.02.2016:Created a account but didn't really do much with it initially.
06.07.2016:After using it myself for a year, I have now released my "Charger Control" app for the Jolla Phone on!
17.11.2016:Started using my account for real, proving my social network accounts and this website.
11.07.2017:Finally was able to decide on a domain to purchase for myself and my services. Now I have and will start deploying it here and there. As a start my homepage will from now on be served also through And will start using the package/module prefix space.xkr47.* for my software.
21.05.2019:A friend asked about matching by pid in iptables/netfilter and I recalled discussions way back.. so I browsed the irc logs and collected more or less interesting stuff I could find related to the long-gone --pid-owner and --cmd-owner flags that used to exist in hiptables "owner" match.
18.10.2019:After being put off several times (years apart) by the overly gloating and also cryptic examples on the Raku programming language (formerly Perl 6), on my 4th or maybe 5th attempt I took a different route and started getting to know it through its wikipedia page instead. Oh boy, that was an immediate success and really got me hooked. After reading the whole page (it's not short) I continued with Raku rules since I'm a regex junkie and then went on to continue reading some of the "synopsis" (the "founding" documentation series of Raku) including number 5 on Raku rules I went straight ahead and replaced my age-old flex/bison-based commandline calculator with a new one in Raku. It was easy and thrilling. Also browsing their reference documentation on types was really sucking me in.. Now I feel stumped by "only" having perl5 compatible regexes in every other platform :)
17.02.2020:After not being bothered enough due to the slightly cryptic syntax I finally took the plunge and got to know the Rust programming language. Their book is really well written and gets one started as soon as one can allocate enough time to just sit down and start reading it. After having had a fading relationship with C that I used to use a lot, I wanted to see if Rust could take its place. At least I have gotten started with it now and already written a few programs involving Jack Audio Toolkit, d-bus, multithreaded programming, string parsing etc and it's not been all that easy, but still very exciting. Part of its charm is also the much more modern standard library and many great 3rd party libraries out there. It's impressive how flexible the macro language is and even without that the compiler is able to do astonishing optimizations during compile time thanks to the well thought-out designs of the language constructs. I actually tried solving some exercises from the Perl weekly challenge in both the Raku and the Rust programming languages. Interestingly I could use very much the same layout & approaches of my code in both languages. It certainly was a bit harder to get the compiler happy in Rust, which took the mind away from solving the task a bit, but oh man the speed difference was immense.
01.01.2023:Created an official mastodon account:


Happenings & stuff

Tell the world you are against software patents, too.

My stuff

I spend quite some time on configuring my (computer) working environment. Here are the most useful ones I've configured (and had time to put up on the web):

Sometimes I even happen to make something useful. Here will be some of the software I've got done through the years:

  • Bus timetable for Palm Pilot (sorry not yet available)
  • IRC logger - logs traffic on irc channels like normal talk, /me lines, joins, leaves, etc.. into a (hopefully) easily parseable log file.
  • IRC Print - prints data from standard input into the selected channel with the selected nick.
  • Piggyback Data Transfer Protocol - transfer files & other data over terminal sessions (telnet, ssh).
  • Plot - for plotting time-based data without hassle and with rapid navigation controls with an average learning curve.
  • VGA graphics without bios - Some code I put together in 1998 to switch vga modes without the help of BIOS. Modes ranging from 256x200 to 400x600.

I have also put together some patches for various software.. Some of them have been submitted, some not:

  • Linux kernel
  • BTTV videograbber driver SMP fix
  • Etherteam 16 network card driver fix
  • lmsensors patches for Abit BP6
  • Gentoo ebuilds
  • automake lexer/parser support bugfix
  • fvwm 2.2 additional functionality
  • Sawfish keyboard modifier bugfix
  • pilot-link buffer overflow fix
  • cdparanoia new "tempfile" option
  • linpopup scandinavian character translation

I have other hobbies than computers too. (whoaa)

  • Electronics - low-voltage (<30V), mostly digital but occasionally some analog stuff. Latest production was a timelapse thing for my friend for triggering a camera to shoot still pictures at 1..4095 second intervals. The main requirements were low power usage, high timing precision and outdoor usability, possibly even in wintertime. So far he's been happy with it :) Generally I'm interested in building power supplies with unlimited short-circuit tolerance, connecting remote controls and other electronic equiment to my computer through usb, temperature measurement using 1-wire technology, trying out different kinds of led lamps, and all kinds of small projects. I'm also interested in studying behaviour of various transistor models in the hope to learn some more about analog circuits. I've also tried PIC programming, encouraged by my good friend Janne, and lately I've also gotten acquainted with the Arduino platform, on top of which I'm now trying to build an alarm clock.
  • Photohraphy - keywords: nature, macro, low-light.. I have a Nikon DSLR and a Fuji pocket camera.
  • Mapping - I enjoy walking, bicycling and driving around in "uncharted territory" and contribute any missing features I notice to the OpenStreetMap project. On the n900 phone I use Mæp for viewing and OSM2Go for editing. On my Gentoo Linux PC I use JOSM for editing.

Older hobbies:


My wife is Ann-Mari and she's such a kind and caring person :) A bit shy she is, but that is just fine.


I work as a consultant at Nitor Creations implementing Java-centered solutions for our customers.


Older friends

I haven't been much in touch with these lately.. :P

  • Risto Laakso "nkerp"
  • Mikael Bergenheim "wolf"
  • Katri Laakso "Katri"
  • Heikki Pyylampi "huikka"
  • Antti Silvast "neckfreak"
  • Tero Simola "Thor"
  • Jari Sukanen "nezz"
  • Antero Vuorenmäki "anza"
  • Kenneth Westin "Kenneth"

Interesting blogs

Links & search forms

We need links. Here are some I collected. A bunch of links helping out if you are searching for a job (mostly in finnish, sorry).


Here are some music streams (internet radio channels) I like:

Contact information

Irc: xkr47@{freenode, gamesurge, gimp, gitter, ircnet, linknet, mozilla,, oftc, quakenet, w3}

Time apparently is at your side when you least need it. That's why it's 03:04 in the morning right now. ;-/