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…
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:
http://www.kronavita.de/chris/data/md2html-0.2.tar.gz
NP: Die toten Hosen—Unsterblich
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
Got democracy?
This doesn’t need any words:
NP: The Who—Teenage Wasteland
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.
ausgesotten
Zum Schwingen braucht man einen Hohlkörper…
— Darum sind
die Stimmbänder also am Kopf!
Resonandz
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
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
http://po-ru.com/rlml/rlml.txt
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:
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
would look like that in RLML:
rlml/iso-8859-1
note
{
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:
#<Tree: [#<Tree:note [#<Tree:to ["Tove"]>,
#<Tree:from ["Jani"]>,
#<Tree:heading ["Reminder"]>,
#<Tree:body ["Don't forget me this weekend!"]>]>]>
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
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
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
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
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:

NP: Die toten Hosen—The Passenger
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 weblogs.com :P). Please update your
links to http://kronavita.de/chris/blog.
NP: Pink Floyd—Goodbye Blue Sky
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
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
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
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?
Scheisstagswahl
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
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.
Schmalzbarden
“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
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 :)
*rofl*
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.
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
Miniature Zen Garden
Out of boringness, I converted the table decoration of some birthday
I’ve been yesterday to this:


NP: Dead Moon—It’s OK
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
Vergewohltätigung
Tabak-Lloyd
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
#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
[...later...]
<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
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
kaWNlLmluamVjdCgwKSB7IHxhLCBifCBhICsgKGIlMiA9PSAwID8gMCA6IGIt
MSkgfQpwdXRzICJgUGV0YWxzIGFyb3VuZCB0aGUgUm9zZScgb2YgI3tkaWNlL
mpvaW4gJyAnfTogI3twZXRhbHN9Igo=".delete("\n").unpack("m*")[0]
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
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.
Circumcision-Day
Omaha-Bitch
Herzkatheter
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
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):
http://kronavita.de/chris/data/nukumi-0.3.tar.gz.
NP: Animals—House of the Rising Sun