leah blogs: March 2006

27mar2006 · Celebrating One Year of Anarchaia

The time has come, and today experimental, impressionistic sub-paragraph tumblin’ is a whole year old!

Who’d have guessed that I managed to post hopefully interesting links, nice pictures, funny IRC quotes and insightful passages of songs every day (with exceptions only where no network was available)? I barely can believe it myself.

Who’d have guessed that I made the first tumblelog, even when the word didn’t exist back then? And it didn’t stay alone for a very long time.

Thanks to Anarchaia, I’ve managed to break my personal record of page views per month each month again, as can be seen here:

chneukirchen.org usage summary

(I hope the hits keep growing like this…)

If you like statistics, here are some numbers for you:

  • Anarchaia as of today consists of
    • 336 posts
      • 12377 snippets
        • 5003 links
        • 763 pictures
        • 657 IRC quotes
          • 453 #ruby-lang quotes
          • 107 #ruby-de quotes
          • 29 #rpa quotes
          • 17 #rubyist.org quotes
          • 8 #haskell quotes
          • 7 #haskell-blah quotes
          • 7 #rubyonrails quotes
          • 29 other quotes
        • 590 lyrics
        • 89 thoughts

Finally, I’d like to thank all my readers for their kindness, thankful mails and popularity-increasing links. I hope you enjoy it as much as I do—every day anew.

Now, on to another year of tumblelogging!

NP: Meat Puppets—Sweet Ammonia

26mar2006 · Two Years of "chris blogs"

Two years ago at this day, I started this blog. And while the number of posts lowered quite a bit compared to last year (I try to blog at least twice a week, but I failed rather often), it is still alive and I don’t plan to stop blogging. It’s just that tumblelogging needs a lot of time, so “chris blogs” went a bit into the background.

Maybe it’s time for a few interesting facts:

  • The 5 most played artists of the year were:

    20 Bob Dylan
    11 Dan Bern
    05 Silver Jews
    04 Jimi Hendrix
    04 Bright Eyes

  • The raw entries are 1.7 megabytes in 374 files. (115 posts this year.)

  • There has been a new release of Nukumi2, which now amounts to 2766 LOC. Remember I started “chris blogs” with a 127 LOC Ruby script. ;-) However, I’ve developed a general-purpose data-structure, two template engines and a dependency injection framework in the meantime, mainly for it.

  • I posted about 196 quotes directly taken out of real-life. That’s only a third of last year, though.

Now, on to the next year of blogging! (And I got to prepare some things for an even bigger celebration tomorrow…)

NP: Meat Puppets—Sam

23mar2006 · Greissäge, Stinkmeuchel und Erbzen

Auch mal wieder Zeit für Quotes aus dem gerodeten Wieland-Gymnasium, dessen Baumbestand in den letzten Wochen um mehr als 90% reduziert wird. Parallelen zu verbrannter Erde wären wohl überzogen, erscheinen einem aber in Gedanken, wenn man über den Schulhof läuft. Wie das wohl aussieht, wenn es fertig ist (zumal neulich die Dachfenster für den Computerraum wegrationalisiert wurden, wer braucht schon Licht)?

Und dann gibts Leute, die sagen das Alter ist super. Nein, das Alter ist scheisse!


An dir könnte sich mancher Kannibale ‘ne Scheibe abschneiden.

Bis du Student bist, gibts kein Deutschland mehr!


[Vokabeltest, meint destination] Place where one is going to?Heaven.

Buddhistisches Gemüse?Erbzen.

[Kreide lässt sich nicht abwischen:] Hat der so ein Druck drauf?

Die Willy-Brandt-Stiftung.


[Zur text comprehension:]Da müssen sie nur noch das gute Englisch in Schlechtes umwandeln.

NP: Yeah Yeah Yeahs—Modern Romance

18mar2006 · Dynamic Programming in Haskell

This is a blog post of a different kind, because I spent quite some time writing it, and now I want you to enjoy it properly typeset.


The purpose of this Literate Haskell program is to implement a function that does global sequence alignment using Needleman/Wunsch techniques.

Dynamic Programming in Haskell (PDF)

Dynamic Programming in Haskell (Literate Haskell)

The latter link is directly runnable in Haskell but also can be typeset with LaTeX and lhs2TeX, an excellent tool that can be quirky nevertheless.

Don’t let that scare you, enjoy. Haskell is a beautiful language to write in, I’ll need to blog more about it soon.

NP: Silver Jews—Sometimes a pony gets depressed

09mar2006 · A mail from the past

Whilst checking my daily e-mail, I stumbled upon a message with the subject “Mail delivery failed: returning message to sender”, that’s nothing special, of course. Bounces commonly happen when you gave an invalid mail address or the mail delivery was impossible due to some other reason.

Reading further (anonymized here):

This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

   SMTP error: 552 Message size exceeds fixed limit
Reporting-MTA: dns; localhost.localdomain

Final-Recipient: rfc822; XXXX@localhost
Last-Attempt-Date: Thu, 09 Mar 2006 11:18:40 +0100 (CET)
Action: failed
Status: 5.0.0
Diagnostic-Code: 552 Message size exceeds fixed limit

Okay, looks like I sent a mail that was too big—sure, can happen. Except I couldn’t remember sending a really big mail in latter time. Luckily, the header of the original message was attached:

Delivered-To: XXXXXXXXXXX@gmail.com
Received: by XX.54.22.19 with SMTP id XXXX3179wrv;
        Sun, 12 Dec 2004 11:28:25 -0800 (PST)
Received: by XX.38.14.54 with SMTP id XXXX1624955rnn;
        Sun, 12 Dec 2004 11:28:18 -0800 (PST)
Received: by XX.38.181.42 with HTTP; Sun, 12 Dec 2004 11:28:11 -0800 (PST)
Message-ID: <e064621a04121211283541b122@mail.gmail.com>
Date: Sun, 12 Dec 2004 20:28:11 +0100
From: Christian Neukirchen <chneukirchen@gmail.com>
Reply-To: Christian Neukirchen <chneukirchen@gmail.com>
To: XXXXXXXXXXX@gmail.com
Subject: emacs19 binaries

Where is the error in this picture? Try finding it yourself before you read ahead.

Did you notice the Date:-header?

Sometimes, you read about post-cards finally being delivered after 60 years, the sender was long dead, two world wars happended in between.

Even I once got a reply to a mail I sent more than half a year ago.

But did you really expect a bounce for a mail you sent from one GMail account to another suddenly appear after one year and 87 days? I certainly didn’t.

NP: The Rolling Stones—Let It Bleed

04mar2006 · How to lose ardent customers

Damien Katz picks up an article by Andreas Pfeiffer and comments on Why Features Don’t Matter Anymore.

I’d recommend to read both posts before reading on.

From a real user perspective, both certainly are right. Users don’t want to learn, they want stuff to work. However, one thing that they are likely to not ever understand is that learning is not self-purposed, by learning you improve your knowledge to be able to work more efficient and get your job done faster.

Katz now claims that “People just want to get a very specific thing done, and then MOVE ON”. Let’s say that is true for 80% of your users—it’s likely to be even more. Good. These 80% will be very happy your software works for them. These 80% also probably will use it in the one specific way it was made for them. These 80% also easily can switch to a different product, the features they need are not special.

I can understand and respect that not everyone wants to learn, program and extend software. That does not mean, however, that noone wants to learn, program and extend software. And these 20% of users probably will hate your software very soon, because it was not made for them. These 20% would love to read and hack three hours to write a macro that will save them manyears of work—or they could hire someone to do it for them. Often, their needs are not very special and could be added easily, but their needs are unique, and that’s why the features they need don’t yet exist.

If there is no way for them to make their work easier, they will switch to a product that can. I hope for them the software they want exists, because there is no better way of making people unhappy than not listening to their needs.

If your software is easy to extend and customize, you don’t need to implement all the features you can imagine—just implement what you think 80% of your users regularily need. But don’t lock the other 20% out, especially if there is no reason for that. Most software is scripted internally, publish the interfaces and allow users to write their own tools—most wont, but the ones that do will be thankful eternally for that.

Pfeiffer says the iPod is an success because it was self-explanatory, and of course he is right. But let’s say some other big company now makes an MP3 player that is even easier to use while being compatible with the iPod (and it’s not like that is impossible, clever people and good designers outside Apple exist too, it’s just a matter of time), what will make users keep their iPod? What will make users buy the next iPod generation when there are better products around?

Other than Apple and iPod cult behavior, I don’t see a reason—and this cultish behavior unlikely will affect people that move on after they are done.

Now, for comparision, why do many professional writers still use XyWrite or Emacs, even when there are “more modern” and, you could say, “easier” to use word processors exist? It’s because they have invested time into learning their editor and maybe even written a few extensions they needed. They don’t want to repeat that work, but if the next version of their editor adds new things they’d want while still being able to use what they learned, they’ll stick to your products as long as they exist. Even if the other products are easier to use and have more features.

So please, if you are writing software and think you would be better off if you software was easier and less-featureful, do think of the people that have special needs: Is there an extension language they can use with reasonable work? Is the system flexible enough to add features you wouldn’t have thought of? (It generally is a good idea to implement parts of the included features using the extension language. If it doesn’t work out, you did something wrong.)

Given these properties, your software will be easy to use for 80% while being flexible and extensible enough for the 20% that are not served by other software these days. Given these properties, you can create ardent users that will stick to your products because your product is able to provide something no other product easily can.

If you think you don’t need this kind of customer, no-one forces you to suit them—but your competitors would be dumb if they didn’t.

NP: The Rolling Stones—Wish I’d Never Met You

Copyright © 2004–2022