chris blogs: June 2004

28jun2004 · Paradise lost

On sunday, about 9 o’clock, paradise, my main developing and hacking box, finally crashed. I’m not fond of the exact reason. I left the room short ago, and when I came back, it was totally silent. Actually, first I thought something happened to my ears. Neither fan nor disk spun.

The most scary thing, however, was that my desktop still was there, shown on the monitor. When I tried to reboot, paradise wouldn’t do anything.

After swapping the PSU the next day, and trying a different CPU, I still couldn’t get it to work. It seems the mainboard died. This box ran stable for about the last two years. I have no idea what happened, I just hope nothing happened to the disks…

For the time I’m searching for a new mainboard, I can’t update this blog. I have chosen to keep it on paper for that—I hope rather short—period of time. Later, I’ll upload those physical entries.

Now, that I can’t program anymore, I hope I have enough time to read some books I still haven’t finished.

I really miss my music collection…

27jun2004 · md2html

I have been writing some simple tool to generate single HTML pages that don’t suck.

From the README:

Too often I wanted to put up some web page very quickly, and got very dissatified as I had to cope with the XML syntax (altough that gets easier with a proper editor, it’s still too much hassle.)

Besides, the resulting HTML used to look very ugly—there was no time to come up with a stylesheet.

md2html solves these two problems on this way:

  • The input file is written in Markdown, a very simple plain text format that is both easy to learn and to use. At the same time it allows for (optional) inclusion of HTML tags to get the full power of formatting.

  • md2html comes with a sample CSS stylesheet which gets included in the resulting HTML file to allow you to show it others without blushing. ;)

Get it here:

NP: Die toten Hosen—Unsterblich

26jun2004 · Gmail revisited

I have been using Gmail for some days now, and there are some things that bug me:

  • You can’t mark all messages in the current folder as read. (All actions only work for the current page.)

  • Worst thing: All mails are shown in a variable-width font. Come on, most emails are plain text, like code (my mails include a lot of code, too). As such, many use fixed-width font editors to read and write them. It shouldn’t be too hard to add that to Gmail. In theory, a single line fix in the CSS. (I tried tracking down the CSS sheet of Gmail to override it locally, but got tangled up in a mess of Javascript and Frames.)

  • You can’t search using regular expressions.

  • You can’t add mail addresses in To: and Cc: to the address book automatically.

Else, Gmail works really fine for me. I have been reading ruby-talk with it for some days now, and find the threading support very useful.

NP: Nirvana—Silver

26jun2004 · Got democracy?

This doesn’t need any words:

Got democracy?

NP: The Who—Teenage Wasteland

25jun2004 · Woche 'rum...

Endlich Freitag. :-)

Wie nennt man das Verlassen einer Rakete?Flarewell?

Was ist der Unterschied zwischen einer Lokomotive und einer Frauenhand?Die Lokomotive geht hart über die Weichen.


Zum Schwingen braucht man einen Hohlkörper…Darum sind die Stimmbänder also am Kopf!


Ein Magnet mit Plus- und Minus-Pol…

Hamster machen auch keine Selbstversuche!

As seen on #ruby-lang:

<dross> batsman: 1) sex, 2) masterbate, or 3) just get
        snipped and never have to deal with it again
<lypanov> 1) fun, 2) less fun, 3) gotta hurt like a bitch

<batsman> "How do you castrate your slaves?"
<batsman> "I just take a couple rocks and crush
          the testicles"
<batsman> "oh fsck, doesn't that hurt a lot?"
<batsman> "no way, you just have to be careful not
          to get your fingers stuck"

NP: Bob Dylan—Ballad of a Thin Man

24jun2004 · Real Life Markup Language (RLML)

Yesterday and today I implemented a parser for the Real Life Markup Language (RLML) invented by Paul Battley for Ruby.

RLML aims to “Make an alternative to XML that is simple to use for both man and machine.” You can read the provisional specification at

So far, I have programmed a very low core, non validating API CoreParser, StreamParser, a more SAX-like streaming API, and TreeParser, a DOM-like interface. Each of these builds on the other ones.

For example, this XML document:

  <body>Don't forget me this weekend!</body>

would look like that in RLML:

    to{Tove} from{Jani} heading{Reminder}
    body{Don't forget me this weekend!}

These are the events in CoreParser:

[:encoding, "iso-8859-1"], [:start_tag, "note"],
[:start_tag, "to"], [:idata, "Tove"], [:end_tag],
[:start_tag, "from"], [:idata, "Jani"], [:end_tag],
[:start_tag, "heading"], [:idata, "Reminder"],
[:end_tag], [:start_tag, "body"], [:idata, "Don't"],
[:idata, " "], [:idata, "forget"], [:idata, " "],
[:idata, "me"], [:idata, " "], [:idata, "this"],
[:idata, " "], [:idata, "weekend!"], [:end_tag], [:end_tag]

And this is emitted in StreamParser:

[:encoding, "iso-8859-1"], [:start_tag, "note"],
[:start_tag, "to"], [:data, "Tove"], [:end_tag, "to"],
[:start_tag, "from"], [:data, "Jani"], [:end_tag, "from"],
[:start_tag, "heading"], [:data, "Reminder"],
[:end_tag, "heading"], [:start_tag, "body"],
[:data, "Don't forget me this weekend!"],
[:end_tag, "body"], [:end_tag, "note"]

Finally, TreeParser returns this:

#&lt;Tree: [#&lt;Tree:note [#&lt;Tree:to ["Tove"]&gt;,
                      #&lt;Tree:from ["Jani"]&gt;,
                      #&lt;Tree:heading ["Reminder"]&gt;,
         #&lt;Tree:body ["Don't forget me this weekend!"]&gt;]&gt;]&gt;

Building the API this way was a lot of fun, as each layer only does its job. And yes, you can pipeline the streaming APIs. :-)

RLML is definitely a niche markup language, but it’s very easy to implement (~280 LoC so far) and has a simple, nice, userfriendly syntax. (It’s also possible to be converted from/to XML, with the loss respective conversion of attribute data.)

Now, on with unit tests…

Gottseidank bin ich Atheist.

Tanz’ den Indepen-dance!

Aus Ferstls Heft: telegrap, pone, wich, tings.

NP: Pearl Jam—Bushleaguer

24jun2004 · Blogroll

Finally, I now have a blogroll too.

If you come here and think you should be included too, drop me a mail. I tried hard to find all blogs I read regularly.

NP: Phantom Planet—California

23jun2004 · GMail

Thanks to lypanov, I now have a gmail account!

You can reach me at chneukirchen(AT)gmail(DOT)com.

This seems pretty useful, I’m importing my old mails right now with gml.

Ich finde, weibliche Religionslehrerinnen sollten nicht unterrichten dürfen.Aber männliche Religionslehrerinnen sind auch nicht besser!

Du bist doch so ein Bimbo, oder?

NP: Deftones—Digital Bath

21jun2004 · Verkehrserziehung reloaded

Die Highlights:

Muss man denn Promille haben, um gut drauf zu sein?Nein, man kann auch kiffen!

Wer ist schuld?Der Beifahrer!

Wenn’s die Eltern zahlen, geht’s vom Erbe ab.

Welche legalen Drogen kennt ihr?Frauen!

[Zum Polizist:] Du plenkst!

Stadtbad Schussenried

Ab wann darf man Bacardi trinken?Ab zwei Uhr!

Jo, das hat sich wirklich gelohnt. Jetzt erst mal aufs Klassenfest vorbereiten…

NP: Pearl Jam—Breakerfall

20jun2004 · nukumi.el

I finished nukumi.el today, which includes a major mode for writing nukumi blog entries. It works very nicely now as it

  • highlights header lines,
  • displays leading and trailing space,
  • generates new blog entries with partly filled fields
    (that is, Date, Encoding, Now-Playing.)
  • and calls nukumi on C-c C-c.

See it in action:
Screenshot of nukumi.el

NP: Die toten Hosen—The Passenger

19jun2004 · New feeds

I have rewitten large parts of the feed generation for Nukumi.

As a side effect, I had to break the <id>s of the Atom feed. This is bad, but it had to be done — better sooner than later.

I apologize for the inconvenience.

BTW, next week, my old blog will vanish (Yeah, that can even happen to blogs which are not hosted by :P). Please update your links to

NP: Pink Floyd—Goodbye Blue Sky

18jun2004 · Verkehrserziehung

Am Montag haben wir also Verkehrserziehung…

Verkehrserziehung, was ist das?Keine Ahnung. Vielleicht verteilt die Polizei Kondome…

Schnauze, Fury!

Wir haben uns also ein paar Fragen ausgedacht:

Mit wie vielen Joints darf man noch am Steuer stehen?

Darf ich die Stützräder von meinem Fahrrad wegmachen, wenn ich 16 bin?

Darf man im Kreisverkehr abkürzen?

Heißt “30-Zone” dass man schneller als 30 oder langsamer fahren soll?

Darf man im Kreisverkehr zelten?

Brauche ich einen Tacho um mit dem Fahrrad auf der Autobahn zu fahren?

Am Handy telefonieren darf man ja nicht. Ist SMSen ok?

Wo soll man die Punkte aus Flensburg an der Frontscheibe hinkleben?

Darf ich das Tempolimit übertreten, wenn ich einen Rot-Kreuz-Wagen überhole?

Darf man rückwärts gegen die Einbahnstraße fahren? [Soll in England erlaubt sein!]

Wie hoch ist die Strahlenbelastung durch Radarkontrollen? Meine Mutter macht sich sorgen.

Darf man die Nagelkette behalten, wenn man drübergefahren ist?

Gilt “rechts vor links” auch in der Politik?

Darf man Ozon-Fahrverbot fahren, wenn man die Abgase nach innen leitet?

Die Promille-Untergrenze liegt ja bei 0.5. Gibt es auch eine Übergrenze?

Gilt die Leiche im Leichenwagen als Passagier?

Wird Heizöl immernoch gefärbt? Schadet es dem Motor?

Gibt es Begrenzungen für die Vertikalgeschwindigkeit?

Muss man als Fußgänger eine Strafe zahlen, wenn man angefahren wird und schneller als 100km/h flieht?

Wie viele Kalorien hat ein Strafzettel?

Vielleicht wäre schulfrei für unsere Klasse besser gewesen… :-)

Meine Mutter hat mit ihrer Mutter Kontakt.Lesbe!

NP: Cream—Crossroads

16jun2004 · We need more Why-Tos

The writing style of a Why-To is a lot different of a How-To.

While a How-To tries to make you quickly reach your goal, therefore being short, terse and often not very in-depth, a Why-To actually tells you why to do the stuff explained, and why it’s best. This is amazingly more fun to read and very instructive.

An example of a recent Why-To would be “The Art of Unix Programming” by ESR. It gives the probably most complete insight into the fundamentals of Unix and why they did the stuff that way.

Another really good example in case of Unix would be “The Unix Programming Environment” by Kernighan and Pike, which does the step from a very basic Unix command line introduction to a full-fledged C, Lex and Yacc using calculator, hoc. In between, shell scripts are extensively covered and a simple version control system is implemented.

It is, as said, a really great book, but unfortunately outdated and a lot (esp. of the arbitrary limits and “small” bugs of the tools) isn’t true anymore in a modern GNU environment.

I’d really like to see an introduction to GNU (and other open-source Unixes) written in that style of instructiveness.

Why’s Poignant Guide would probably be a very nice example of a Ruby why-to, and that with a special sense of humor. :-)

NP: Dan Bern—Hiroshima

16jun2004 · blabla

Wie üblich:

Es könnte zu einem anaphylaktischen Schock kommen…Ist die Anna *so* schlimm?

Weibliche Menschen

Den Austausch von Körperflüssigkeiten finde ich eklig.

Am Montag haben wir schulfrei.Bei wem?

Guck mal! Bert hat ‘ne Gehhilfe mit Licht! [Herr Körner schiebt einen Tageslichtprojektor vor sich…]

So langsam geht mein Papier alle…

NP: Pearl Jam—Fatal

15jun2004 · Und immer wieder...

… die Dailies:

Die Frau Hergenröther hat nur 500 Stimmen gekriegt. Ha ha ha!

Sind da nur alte Leute in diesem Greistag?


Wie heißt des, wenn sich alle europäischen Minister treffen?Orgie!

Wird Zeit, dass die sich im Wahlkampf mal umbringen!

Herr Geiselnahme

Welcher Erreger färbt Milchprodukte schwarz?Die Buddapest!

NP: Bob Dylan—Blue Moon

14jun2004 · Mathe-ZK over and out

Nach der Mathe-ZK hat sich die Zahl wichtiger Arbeiten doch deutlich gesenkt… Und so schlimm war es wirklich nicht.

open your mind — if dirty ask mom [Auf dem Wascheschild vom David sein Pullover.]

Richter: Stimmt es, dass sie meine Frau umgebracht haben?
Angeklagter: Ja.
Richter: Sie sind freigesprochen!

Der kann doch nicht so einfach kaputtgehen!

Darum: Vorm Verkehr immer die Handbremse anziehen.


“Trivial” heißt, dass es wurst ist.Echt? Auf meiner Salami steht nicht “trivial”, aber sie ist trotzdem Wurst.

Ich kann trotzdem kiffen, auch wenn ich noch nicht 16 bin. So!

(btw, comments are working again…)

NP: Steve Vai—For The Love Of God

13jun2004 · Insightful comment on editors

A great comment by Martin DeMello on ruby-talk, inside a long, unneeded thread on userface simplicity and commandlines:

vi isn’t easy to learn; it’s easy to use. You can do a lot of very powerful stuff with surprising ease, far more so than in the more userfriendly editors. emacs too, espcially if you’re an octopus :)


11jun2004 · Blog moving...

The transition to Nukumi is mostly done, and the new address of this blog will be

The old blog will probably stay updated for a week or so, until my Nukumi workflow works for daily blogging.

RSS and Atom feeds are still a bit clumsy, but this will get fixed. (Will have to break <guid> and <id> :-(.)

Source relase really soon now.

NP: Blood Ruby—Remains of the Day
Later: Josh Ritter—Hotel Song

This is a fucking great song:

Say the highway is for lovers,
but he ain’t no friend of mine,
cause everytime I find my heart
I lose it to that long yellow line.

11jun2004 · Das tägliche Blabla

Once again…

Clit Bang

Kreuzworträtsel: Nachtlager: Puff, Weibliches Zauberwesen: Nutte.

Erdöl ist wie der Bundestag: Es gibt verschiedene Fraktionen und alle stinken mir.

Die Coolen haben Latein geschrieben!Und die Schönen Englisch!

Nur noch Mathe-ZK am Montag, und fertich is.

NP: Bob Dylan—This Wheel’s on Fire

11jun2004 · Miniature Zen Garden

Out of boringness, I converted the table decoration of some birthday I’ve been yesterday to this:

Miniature Zen Garden One

Miniature Zen Garden Two

NP: Dead Moon—It’s OK

09jun2004 · Abigag und Latein-ZK

Die Quotes:

Der alte Grieche logtansincos. (War wohl ein Mathematiker…)

Triviales Arschloch!

Der Sinn vom Schweißband ist, darunter zu schwitzen.

Das Abi-Gag Thema war DDR: Gibt’s da auch einen Keine-Bananen-Stand? (leider nicht, aber eine sozialistische Wartegemeinschaft, a.k.a. Schlange…)

Frau Phaser



Mein Arsch!Das tut doch nicht weh!Du hast ja auch keinen Tanga an!

Der arme Catillina wurde gemobbt!

Komplizierte Vereinfachung

Dank an David für’s aufschreiben.

BTW, die Abi-Gag-Leute haben “die Mauer” an der falschen Seite angemalt. Denk’t mal drüber nach.

NP: Pearl Jam—Strangest Tribe

09jun2004 · #ruby-lang on venus

Ah, the joy of IRC:

<kig> oh, and the sun is pretty big. an earth-size planet
          four times closer to us passed before it today and
          looked like a small dot
<kig> venus had no boobs *disappointed*
<chris2> rofl
<siri> how can you be sure? :)
<chris2> small boobs then
<Tsela> kig: Maybe it has yet to reach puberty ;)
<batsman> come on... everybody knows Venus is HOT!

Nukumi transition going steady. (Have some free time now… :-))

NP: Sum 41—Hooch

07jun2004 · Petals around the Rose

I have been doing the game of the Petals around the Rose today. I need to admit that I needed a damn long time to get to such an easy solution. :-)

You can learn about the game at the Fraternity of Petals Around the Rose. Read that now, and try it.

Remember, the important stuff is:

The name of the game is Petals Around the Rose, and that name is significant. Newcomers to the game can be told that much. They can also be told that every answ er is zero or an even number. They can also be told the answer for every throw of the dice that are used in the game. And that’s all the information they get.

As soon as I had found the solution, of course I quickly implemented it in Ruby:

eval "ZGljZSA9ICgxLi42KS5tYXAgeyByYW5kKDYpKzEgfQpwZXRhbHMgPSB

It has been scrambled, because you shouldn’t read now how it works. Getting it on your own is the most important part of the game. (Of course, if you did it, go ahead and read the code. Stop! First solve the puzzle! (I know my readers… :-))

Some example output (I don’t think you can get it my just reading the numbers. You need to imagine dices.):

`Petals around the Rose' of 3 5 4 1 5 1: 10
`Petals around the Rose' of 4 4 3 3 6 4: 4
`Petals around the Rose' of 4 1 6 6 1 5: 4
`Petals around the Rose' of 5 2 5 1 5 5: 16
`Petals around the Rose' of 4 6 4 2 2 1: 0
`Petals around the Rose' of 4 1 2 1 1 3: 2

It’s really a great puzzle, so easy but so distracting… When you have found out how it works, you can punch yourself in the face. :-)

NP: Die Toten Hosen—Das Mädchen aus Rottweil

07jun2004 · Herr R0x0r

Und wieder Schule…

Es müsste mal ein Lehrer Amok laufen. Das würde rocken.

Die Chefin spricht!Wer?

Ich will noch ‘ne Nach mit dir, äh darüber schlafen.




Herr R0x0r

… und als das mit den KZs bekannt wurde, war natürlich der Ofen aus mit der Freundlichkeit.

Manche Menschen haben ihre Bildungslücke zwischen den Beinen.

NP: DAF—Verschwende deine Jugend

06jun2004 · Nukumi reloaded

After being back from holidays (more about that soon), I did some more hacking on Nukumi, and will be going to convert this blog to it, probably this week (though I still have some quite important tests I should learn for…).

I have been object-orientifying big parts of Nukumi; it’s very rubyish now. I also put it under control of GNU Arch and really have to say that xtla kicks ass.

I also added a new layout, mono. It will probably be the default layout for Nukumi (with a different image). Have fun.

Pre-release code (only for developers):

NP: Animals—House of the Rising Sun

Copyright © 2004–2016