Sebastian Kirsch: Blog

Monday, 31 January 2005

The Sapir-Whorf hypothesis

Filed under: — Sebastian Kirsch @ 14:50

I learned the correct name today for a theory I have known for a very long time: The concept that your language shapes and influences your thoughts is formally called the Sapir-Whorf hypothesis. I have also heard it attributed to Ludwig Wittgenstein and Ferdinand de Saussure; more information is on wikipedia.

The Sapir-Whorf hypothesis had an influence on science as well as literature. George Orwell’s classic “1984″ contains a language called Newspeak that is designed to eradicate illoyal thought by abolishing words like “free". The reasoning is that once you cannot fight for freedom, because the very word does not exist in your language, rebellion becomes pointless. Another example is Samuel R. Delany’s “Babel-17″, where a fictional language denies its speakers independent thoughts and transforms them into traitors and terrorists; it is used as a weapon of war. The notion that certain works lose their meaning when translated to another language (for example, the Quran) is also an example of this principle.

The validity of the Sapir-Whorf hypothesis is under dispute; if it were all true, then translation between different languages would be impossible. Chomsky’s quest for a universal grammar that is innate to every human also goes counter to the Sapir-Whorf hypothesis. But neurolinguistic research points to the fact that certain areas of the brain are indeed influenced by a speaker’s native language.

Leaving the realm of human languages, how does this hypothesis apply to computer programming languages? From a purely functional point of view, all programming languages are equal – they are all turing complete, which means that any of them can be used to solve any problem as well as the others. So as regards the computer, it does not care about which programming language is used.

The reason why there are still hundreds of different languages and language dialects is not the computer, but the human who has to read and write the code. So the fundamental problem in language design is not designing a language that will allow you to do as much as possible, but one that will allow you to think about your problems in the most meaningful way.

The people who invent those languages appear to have been aware of their effect on the human mind for quite some time. Everyone knows Edsger Dijkstra’s quote, “The use of COBOL cripples the mind; its teaching should therefore be regarded as a criminal offense.” And of course the famous “A FORTRAN programmer can write FORTRAN in any language.” The implication is that your first programming language indeed shapes your mind and determines how you write code in subsequently learned languages.

In my experience, the language you use does indeed affect how you think about problems. I started out with imperative programming languages (C, Pascal), went on to object-oriented languages (Modula-3, Delphi, C++), learned functional programming in my first year at university (with Standard ML), and acquired a host of languages on the way (among them Perl, Python, PHP, PostScript, SQL, and a number of “lesser” languages like Bourne Shell or awk). The only thing I never properly learned is a logical programming language like Prolog (though I did hear a lecture about automated theorem proving, which essentially detailed the inference process of Prolog.)

Object-oriented programmers (especially those reared on UML etc.) tend to see everything as objects that pass messages to each other; objects with a state, a lifetime, and methods that can be called. While this is suited to most modeling tasks, good object-oriented design for other domains is very difficult, as no readily apparent mapping between parts of the problem and a hierarchy of objects exists. That is one reason, I think, why all the exercises in classes on object-oriented software design are always about modeling some part of the real world, and not about modeling an abstract concept. Tasks like stream processing or symbol manipulation are hard to capture properly in object-oriented models.

Purely functional programming is another extreme; it is extremely well suited for symbol manipulation and stream processing. When I learned it, functional programming inspired a view in my mind of lists and other data structures, flowing through functions and getting mangled and massaged on the way. I solved some exercises for the above mentioned lecture on theorem proving in ML, and the code was exceptionally clear and concise; some theorem provers were less than 20 lines of code. But once imperative elements enter the language, and the need to keep state arises, the functional model becomes rather unwieldy. There are object-oriented functional languages (OCaml being the most prominent example), but I have no experience with them.

Further evidence that the code you write influences how you think about and formulate algorithms offline is this: I encountered a number of algorithms that were exceptionally difficult to program in a modern, imperative or object-orientated language. They were formulated without loops or subroutines, and used jump instructions excessively. The only explanation I can think of is that maybe the authors were used to programming languages that promote this style, like fortran or assembly language. Writing a clean C++ or ML version of such an algorithm requires extensive reformulation, whereas other algorithms (for example, the ones mentioned above) could be implemented in ML in a minimum of time, straight from the description.

But the fact that different programming models promote a different approach to problems can also be used to your advantage. If you know a number of languages, then you can – bar external requirements – choose the language for solving your problem that makes it easiest to think about it. If you are doing symbol manipulation, choose a functional programming language (or a language with substantial functional features, like Python). If the task is modeling, choose an object-oriented language. If you want to query complex data structures, use a logical language like Prolog. Especially in research, many problems can be solves more efficiently by combining a hodge-podge of different languages and use each one in the area where it is best.

For commercial software development, other factors like maintainability tend to be more important, but even there, using an embedded language for configuration or extension can be an advantage.

There are also hybrid languages, like OCaml, which is a functional object-oriented language, or Curry, which is a logical-functional hybrid. Their effect on the programmer’s psyche and problem-solving technique is unclear to me.

And other programming languages claim to be agnostic of the programming model, for example C++. While C++ is mostly associated with object-oriented programming, Stroustrup maintains that other styles like functional programming are also possible in C++. Because of the poor support of features like garbage collection in C++, it does not provide the comvenience of other functional programming environments, though.

Matt Ruff: Ich und die anderen

Filed under: — Sebastian Kirsch @ 01:29

Matt Ruff’s “Set this house in order” (german title: “Ich und die anderen") is giving his writing a new direction and will certainly endear him to an audience that dismissed him before: He leaves the science fiction and fantasy genre behind and writes a novel without dragons, without fairies, without submarines and androids – exploring a much stranger place: the human mind.

STHIO is about two people with multiple personalities, or, in current psychotherapist lingo, suffering from dissociative identity disorder. One of them – Andrew, the narrator – is in therapy, but he is content with having multiple personalities. One of his personalities has been assigned “housekeeper", keeping the others at bay and assigning each soul its share of “body time". The other – Penny – is still unaware of the fact that she’s multiple, and suffers from frequent blackouts when other souls take over.

The meeting with Penny prompts Andrew to further investigate his past and find out more about the cause for his multiple personalities. A nervous breakdown sends both of them on the road from Seattle to Michigan, Andrew’s home, in order to finally settle the accounts and “set this house in order".

The book is extremely well written, and Matt Ruff certainly has a knack for telling complex storylines while causing a minimum of confusion. The portrayal of the two bodies with their numerous souls, each with its own unique character, is very sympathetic, and more often than not with a tongue in cheek. As regards realism, the author himself describes the book as a kind of what-if scenario: What would it be like if multiple personalities worked in such and such a way?

I found the book thoroughly enjoyable. Many thanks to my uncle Peter, who gave it to me for christmas; he did a very good job when picking this book.

Thursday, 27 January 2005

Chuck Palahniuk: Fight Club

Filed under: — Sebastian Kirsch @ 15:05

Unfortunately, watching the movie first ruined the book for me. Oh, I do not say that the book is bad, or that it is so much worse than the movie. The problem is that the book and the movie are so much alike that I cannot judge to book on its own merits: I always heard Edward Norton’s voice when reading the book; every time Tyler Durden was mentioned, I had a mental image of Brad Pitt, Big Bob looked like Meat Loaf, and Angel Face looked like Jared Leto, complete with bleached hair.

I have rarely seen such a complete adaptation of a book; congratulations to David Finch. But I will have to read another one of Palahniuk’s books until I can really judge his writing.

Tuesday, 25 January 2005

Blogs and search engines

Filed under: — Sebastian Kirsch @ 11:50

Judging from personal experience, responsible behaviour towards search engines is not every site owner’s first priority. But if a sizeable part of your visitors come from Google, you should pay attention to the way a search engine sees your site, and make sure that the visitors who come from a search engine get the optimal results from your site.

How your site is indexed can be controlled in a number of ways; they are described on the robots.txt web site.

For blogs, the most important thing is that the front page and the archive pages should not be indexed; only pages for the individual posts should be indexed. Why is that? Two reasons: What if Google indexes your front page, and serves it as a result two weeks later, when the indexed content has already dropped off the front page? Users will go to the front page, will not find what they are looking for, and go on to the next result. They will not search the archives of your blog in the hope of finding something relevant. And if Google indexes an archive page, it may present this page as a search result because of keywords that are in two different posts. Users will find their keywords, but the individual posts (each with one of the keywords) will not be relevant, thus they will move on to the next result. Sure, one more hit for your web site – but in the end, users will disregard your web site, because “there’s never something relevant on that site.”

So how do you accomplish this? Put the tag <meta name="robots" content="noindex, follow"> on your front page and archive pages, and <meta name="robots" content="index, follow"> on the pages with the individual posts. This will cause the search engines to not add the front page to their index, but still follow all links on the index page to the individual posts.

There is a thread about how to do this with WordPress in their support forum (WordPress is the blogging software I use.) I use the following code in index.php:

        <?php if ($single) { ?>
                <meta name="robots" content="index,follow" />
        <?php } else { ?>
                <meta name="robots" content="noindex,follow" />
        <?php } ?>

Another thing was detailed in a Slashdot article some weeks ago as a way to curb comment spam: Flag all links in comments with a tag “rel=nofollow", so that a search engine won’t follow them, and so that they won’t contribute to a site’s search engine rankings. That way, comment spam will be pointless. I hope there will be a WordPress plugin for this soon.

Bloggers are often accused of polluting the search engine results, and of misleading the search engine’s ranking algorithms because they link so heavily to each other. (Popular search engines like Google use the number of links that point to a web site to determine its popularity.) It’s our choice to do our share and play nicely with the search engines!

RSS Feed

Filed under: — Sebastian Kirsch @ 09:35

I activated the rss feed for this blog. Have a look at the right-hand column, under “meta", or at the <meta> tags.

Providing rss feeds and permalinks requires some trickery with mod_voodoo (aka. mod_rewrite), and I didn’t get around to doing that until now. Sorry!

Monday, 24 January 2005

Fettucine Alfredo

Filed under: — Sebastian Kirsch @ 21:07
  1. Butter in einem Topf schmelzen. Sahne und geriebenen Parmesan dazu; aufkochen lassen und etwas reduzieren, und immer schön rühren, damit nichts abrennt.
  2. Fettucine al dente kochen und abgiessen.
  3. Reichlich kleingehackte Petersilie zur Sosse, mit Salz, Pfeffer und Muskatnuss abschmecken.
  4. Die Sosse zu den Fettucine geben und schwenken.
  5. Essen.

Das war ja einfach.

Sunday, 23 January 2005

Chuck Palahniuk in Cologne

Filed under: — Sebastian Kirsch @ 17:46

Chuck Palahniuk, University of Oregon graduate, author of Fight Club, is reading at the lit.Cologne festival on wednesday, march 16th. Details are here.

Thursday, 20 January 2005

A common theme

Filed under: — Sebastian Kirsch @ 21:27

It occurred to me yesterday that all the books I’m reading currently are about (or contain) mental illnesses and psychoses. I didn’t plan it that way, I wasn’t even aware of this fact when I bought the books, found them or when they were given to me as a gift:

  • Matt Ruff: Ich und die anderen (Matt Ruff: Set this house in order) was given to me by an uncle of mine for christmas; it’s about two people who suffer from dissociative personality disorder, ie. they have multiple personalities.
  • David Sedaris: Naked details the author’s obsessive-compulsive childhood, among other topics.
  • Chuck Palahniuk: Fight Club was made into a major movie starring Brad Pitt and Edward Norton. The story revolves around a disillusioned young insurance clerk meeting a guy named “Tyler Durden", who introduces him to various “fringe activities", leading him from harmless pranks to a full-scale terrorist attack. In the end, “Tyler Durden” turns out to be a facet of the protagonist’s own mind.
  • Bret Easton Ellis: American Psycho is already a classic, giving a first-person account of the life of a serial killer: Well-to-do yuppie, works on Wall Street, murders people at night.

Seperately, all those books are a good read, but all four at once are pretty hard to stomach. I picked something lighter to read in addition to those four, and I’ll put some of them on hold, I think.

Tuesday, 18 January 2005

Illustration software

Filed under: — Sebastian Kirsch @ 22:17

Preparing a paper for a seminar, I’m once again faced with the problem of creating illustrations. Just some basic diagrams of graphs, trees, points, lines, arrows, some formulas.

I have a couple of rather simple requirements: Should produce decent-looking pictures, should provide means of specifying sizes, spaces and alignments in a meaningful way, should export to somnething that can be integrated with pdflatex (because I’m writing the paper in LATEX.)

Oh, and I’m cheap too. I know I could buy professional graphics software (like Adobe Illustrator) for something like EUR700, but could I afford it? No. Would I ever use it to its potential? No. My old favourite, CorelDRAW!, is not available for Mac OS X, unfortunately.

After trying a couple of alternatives – like OpenOffice.org Draw, and OmniGraffle, which came with my PowerBook – and asking a couple of friends, I found myself going back to the traditional tools: MetaPost and XFig.

MetaPost is kind of like a programming language for pictures, with the ability to solve systems of linear equations. That way, you almost never have to specify any coordinates – you just say the equivalent of “Well, those two boxes are 2cm apart, and they are evenly spaced, and the center of this box and that one is in one line", and the layout is done automatically. MetaPost can process your text using LATEX, so math is no problem, and you can use the exact same fonts as in your main documents. MetaPost can be imported in pdflatex natively, too.

XFig is more of a traditional drawing program. It was one of the first drawing programs available for SunView, written in 1985, and later ported to X11. That means it has been around for about 20 years! The user interface is somewhat strange (for example, it relies heavily on having a three-button mouse), but overall, it’s rather usable. And one very important point is that it allows exporting to MetaPost – having the same graphics format and the same fonts provides some sort of continuity for graphics that were made with different software.

So I use MetaPost for things that are easy to specify algorithmically (tree structures, for example) and XFig for everything else. Both programs are scriptable, so creating a little workflow that recompiles everything when a drawing changes is not too difficult, using a Makefile.

I still wonder whether my choice of software limits me in my graphical expression; after all, good illustrations are an integral part of a good paper, and can serve to explain much better than text or formulas.

Oh, the topic of the seminar is information extraction; I’m reporting on relation extraction using kernel methods. The paper and slides should appear on my academic page as soon as they’re finished.

Sunday, 16 January 2005

Jeff Dean’s behind-the-scenes look on Google

Filed under: — Sebastian Kirsch @ 21:18

In this 1-hour lecture (available as a Windows Media or Real Video format streaming video), Jeff Dean talks about Google’s architecture, why they do things the way they do it, and the frameworks they developed for their applications. He also gives a few examples of Google’s current and future projects.

Google is usually pretty secretive about the inner workings of their products; apart from the original papers on PageRank, some engineering papers about the Google File System, little is known about their software. On the other hand, the number of successful projects that came out of google in the last few years is astonishing: Groups, Pictures, Gmail, Blogger, Froogle, Desktop Search, localized search, Scholar, etc. pp.

Furthermore, these are difficult things to do. Research Index has been trying to do for years what Google Scholar is doing now: An exhaustive search aid for scientific papers, finding every single place where a certain paper is published, extracting authors, dates, references etc. Research Index always struggled because of lack of funding and computing power. For Google, it seems to work quite well. (I find myself using Google Scholar more often that Research Index, because it’s more reliable.)

So what is the secret behind Google’s success? I haven’t been able to work that out. They hire top-notch people (the list of papers by Google employees is very impressive), they have enormous amounts of computing resources (though Google never published any numbers, estimates range from 70.000–100.000 CPUs), access to huge datasets (their whole web index, basically), and the employees are encouraged to actually use those resources for their research projects: Every employee gets to devote 20% of his time to research, and apparently it’s not unheard of to requisition a cluster of a couple of thousand CPUs for a research project.

Do I want to work there? Hell yes.

Sauerkrautauflauf

Filed under: — Sebastian Kirsch @ 13:58

Folgendes kommt raus, wenn ich ueberlege, was ich noch zu Hause habe, und dann versuche, irgendwas daraus zu kochen:

Sauerkrautauflauf

  • Rinderhack
  • Speckwuerfel
  • Prinzess-Bohnen
  • Sauerkraut
  • Blätterteig
  • Eigelb
  • Salz, Pfeffer, Rinderbrühe
  1. Speckwürfel in einem Topf auslassen
  2. Rinderhack dazu und anbraten
  3. Bohnen putzen, in 2cm lange Stücke schneiden und in den Topf
  4. Mit Wasser angiessen, Rinderbrühe, Salz und Pfeffer dazu und ca. 10 Minuten kochen lassen, bis alles Wasser praktisch verdampft ist und die Bohnen fast gar sind.
  5. In der Zwischenzeit eine Auflaufform mit Blätterteig auslegen, Sauerkraut rein. Die Rindfleisch-Bohnen-Mischung drübergeben und mit einer Lage Blätterteig abdecken.
  6. Den Deckel gut andrücken, mit einer Gabel durchstechen, damit der Dampf abziehen kann, und mit Eigelb einpinseln.
  7. Für ca. 15–20min. bei 180 Grad Umluft in den Ofen.

Vielleicht nicht das Gesündeste (obwohl Sauerkraut mit seinen Milchsäurebaktieren nicht zu verachten ist), aber wenn man Lust auf was herzhaftes hat … ich fand’s lecker.

Saturday, 15 January 2005

David Sedaris: Me talk pretty one day

Filed under: — Sebastian Kirsch @ 22:33

Hm, that was a quick read. I got that book yesterday afternoon, and I’ve already finished it.

Imagine part “My big fat greek wedding", part Armistead Maupin and part Matt Groening. The result would be almost, but not quite, totally unlike David Sedaris.

I have to admit that I never really got what is so funny about Mark Twain, or Dave Barry, and the whole concept of a humorist somehow eludes me. That someone can write about everyday things, and it is supposed to be funny because he is writing about it – that concept is somehow alien to me. Sure, Sedaris’ book is funny. Kind of. Interesting. A light read. And I’ll probably read the other one I have here ("Naked") too.

But he does not provoke quite the kind of howling laughter that Robert Rankin does, not the quiet chuckles of Stephen Fry, not the delight of Douglas Adams.

Sleep

Filed under: — Sebastian Kirsch @ 19:53

I just allowed myself the great pleasure of dozing and dreaming for a full two hours. I don’t know what I dreamt, but I’m convinced that it was something very interesting.

As a friend of mine likes to point out: The simple pleasures of life – like sleeping, or eating – are grossly undervalued.

Friday, 14 January 2005

Personal Chemistry and the Healthy Body

Filed under: — Sebastian Kirsch @ 23:57

Personal Chemistry and the Healthy Body, written by Gerald Weinberg about 20 years ago, advocated personal happiness through attention to your bodily needs. Work regular hours, eat well, sleep well, exercise, and you will be successful and make a positive impression on others – that’s the gist of it.

Apart from the quaint language (he speaks of “data processing managers), the message is simple, but still very appropriate. I have the impression that after the IT boom of the 90s, more people are cutting back from working long hours and are taking their time to enjoy life properly.

Cutting back is something I try to do as well, but rarely achieve. Being a student, my working hours vary wildly, with classes starting sometimes at nine o’clock in the morning, sometimes after lunch, and work often extending into the small hours of the morning. Regular eating times I don’t have, and my only exercise at the moment are the couple of kilometres I walk from, to and between classes every day.

I think that the worst problem at the moment is eating; I do not really plan my meals and snacks in advance. If I have a long day, I will often eat out or get a snack from a bakery between classes or work, often when I’m already starved – instead of packing some fruit or a snack and eating when I feel like it. I usually don’t plan my meals till shortly before I go to the supermarket – when I’m already hungry. Drinking is also a problem; I drink enough when I’m at work (usually 1.5 liters during a 8 hour day), but when I sprint from one class to another, I usually forget to drink enough.

Exercise is another field where I’m lacking; but I feel that I should try and get the basics (food and drink) in order before exercise would do me any good.

Thursday, 13 January 2005

The Yes Men

Filed under: — Sebastian Kirsch @ 11:38

This web site is absolutely hilarious. These guys are on BBC world, impersonating a spokesman for Dow Chemicals, and declare that they’re going to liquidate Union Carbide and shell out 12 billion $ to compensate the victims of the Bhopal disaster. And nobody suspects a thing.

They impersonate a WTO spokesman at the international trade law conference in Salzburg, and advocate things like the selling of votes, that violence in the banana market is OK as long as the prices stay low, and that long siestas and lunches in Italy and Spain should be outlawed in the interest of standardized business hours. Nobody gives a damn. Oh, the italians are a little miffed because they see it as an insult to their customs.

And so on, and so on … read through the whole site, it’s great.

There’s a movie out which is supposed to be in the cinemas right now (I wonder whether it will ever make it to Germany), there’s DVD out next month (but it’s region 1, so I can’t watch it until I buy a region-free DVD player), and a book is already available (at last, something that I can safely buy. I wonder when DRM on books will be introduced so I cannot read books that I order from the US. Come to think of it … perhaps one should go to a bookseller’s conference, impersonating a spokesman of the VG Wort and advocate exactly that.)

Wednesday, 12 January 2005

Michael Marshall Smith: Spares

Filed under: — Sebastian Kirsch @ 20:55

A very dark book about a future world where clones are bred as “spares” and kept on farms for the event that the original has an accident and needs a transplant. A former cop decides to free the spares on his farm and teach them to speak, to read and write, in order to allow them to lead a somewhat normal life.

When one of his spares is supposed to be operated on, he flees from the farm and takes the spares with him. Lots of violence ensue, a clash with his old enemies, death, destruction and carnage, and a happy end after most of the characters are dead.

The first half of the book was a pretty long read; it gets better after that.

Tuesday, 11 January 2005

Struggling with the voted perceptron

Filed under: — Sebastian Kirsch @ 21:51

I’m currently struggling with the voted perceptron learning algorithm by Yoav Freund and Robert Schapire: I’ve now read three different versions of this paper, and some things about the algorithm strike me as “not quite right".

The first thing is a minor issue: The voted perceptron algorithm is specified as starting with setting k := 0 and v1 := 0, but then immediately starts to make predictions with vk without ever initializing v0. That can’t be quite right. My guess is that they wanted to start with v0 := 0 (because a prediction vector of 0 is pretty pointless.)

The next problem is a little more involved. As a decision function, they use the standard f(x) := sign(wx) – but that’s not right, the classical perceptron algorithm uses f(x) := sign(wx - b), where b is the threshold of the decision function. It’s just that the threshold is usually hidden in this equation, because the “zeroth element” of vector x is taken to be x0 ≡ 1. This saves you the trouble of having to update the threshold by hand.

The voted perceptron does not have this implicit assumption, and being a kernel algorithm, it cannot have it – how would you specify that a component is equivalent to 1 in feature space?

According to everything I learnt in my lectures on neural networks and AI, a perceptron cannot work with a threshold of zero, because then the origin is part of all decision hyperplanes. A threshold of anything but zero is OK, because you can scale the vector w to get the right decision hyperplane. But the perceptron is supposed to be able to solve all linearly separable problems, not only those that are separable with a hyperplane containing the origin.

The only implementation of the voted perceptron I could find (in the Weka package) neatly sidesteps this problem by always using the polynomial kernel k(x, y) = (1 + xy)d; if no exponent is specified, they assume d = 1; and thus get their threshold. But this is not how the voted perceptron is specified. One solution would be to specify the algorithm with xx’ + 1 in the non-kernelized form, and k(x,x’) + 1 in the kernelized form everywhere the scalar product/kernel is used.

It’s a strange thing that no publication makes note of this problem; I will have to talk it through with someone.

Pälzer Grumbiere

Filed under: — Sebastian Kirsch @ 13:40

Ein Motiv aus der aktuellen Werbekampagne für Schweizer Kartoffeln macht wohl gerade im Saarland die Runde – allerdings nicht im Zusammenhang mit Kartoffeln, sondern unter dem Titel “Miss Pfalz”. Ein neues Kapitel in der Rivalität zwischen Pfalz und Saarland.

Nerd Quotient

Filed under: — Sebastian Kirsch @ 13:23

I am nerdier than 92% of all people. Are you nerdier? Click here to find out!

Hm …

Sunday, 09 January 2005

Zutaten für einen Bollywood-Abend, Teil IV: Filme

Filed under: — Sebastian Kirsch @ 14:36

Die Hauptzutat für einen Bollywood-Abend sind natürlich Bollywood-Filme. Wobei “Filme” normalerweise einen Film oder maximal zwei bezeichnet – bei Durchschnittslängen von drei Stunden ist mehr an einem Abend nicht zu schaffen.

Bei uns gab’s gestern Hum Tumhare Hain Sanam (den ich ziemlich verwirrend fand) und Asoka (für einen Bollywood-Film sehr brutal); wir hätten gerne Mohabbatein geguckt, haben aber die Untertitel nicht hinbekommen. Und den ganzen Film auf Hindi zu gucken, wollten wir uns dann doch nicht antun.

Zutaten für einen Bollywood-Abend, Teil III: Curry

Filed under: — Sebastian Kirsch @ 14:31

In diesem Fall gab es folgende drei Curries:

Süßkartoffel-Korma

Süßkartoffeln in Stücke schneiden und von allen Seiten anbraten. Zwiebeln kleinschneiden und in Öl andünsten. Drei Esslöffel Korma-Paste dazu und kurz weiterbraten. Mit Kokosnussmilch ablöschen, die Kartoffeln dazu und so lange kochen, bis die Kartoffeln weich sind. Evtl. etwas Kokosmilch oder Wasser nachgiessen.

Blumenkohl-Biryani

Blumenkohl in Röschen schneiden. Zwiebeln (wie oben) andünsten und zwei Esslöffel Biryani-Paste dazu. Blumenkohl rein, 250g Joghurt dazu, mit Wasser aufgiessen und so lange kochen lassen, bis der Blumenkohl gar ist.

Omelett mit Korma

Aus 4 Eiern zwei Omelett machen, aufrollen, die Rolle in Stücke schneiden und mit einem Teil der Korma-Sosse (von oben) übergiessen.

Als Beilage:

Basmati-Reis

Pro Tasse Basmati-Reis zwei Tassen Wasser in einen Topf, Prise Salz dazu, Essig oder Zitronensaft dazu, Deckel drauf, zum Kochen bringen, runterschalten und so lange weiterköcheln lassen, bis alles Wasser verdampft ist. Fertig.

Zutaten für einen Bollywood-Abend, Teil II: Lassi

Filed under: — Sebastian Kirsch @ 14:24

Lassi ist ein indisches Joghurtgetränk, hergestellt aus 500g Joghurt, 500ml Milch, einer Prise Salz und etwas Koriander, serviert mit gestossenem Eis und einem Korianderblatt. Sehr erfrischend und für indisches Feeling unverzichtbar.

Varianten sind süsses Lassi (mit Zucker statt Salz) oder Mango-Lassi.

Saturday, 08 January 2005

Sossen

Filed under: — Sebastian Kirsch @ 14:16

Satay-Sosse

1EL Tamarindenmuss mit kochendem Wasser überbruehen; 10 Minuten stehen lassen.

Schalotten und Ingwer fein hacken und in Erdnussöl anbraten. Erdnussbutter und Kokosextrakt hinzufügen. Den Tamarindensud abseihen und dazugeben. Sambal Olek, Kumin, Knoblauch und etwas Zucker dazu, einkochen lassen, bis die Sosse schoen sämig ist, und geniessen.

Ich esse das am liebsten mit Hähnchen: Hähnchen kleinschneiden und in Ketjap Manis und Honig einlegen, dann in heissem Öl braten. Der Zucker im Honig karamelisiert und macht das Hähnchen wunderbar lecker.

Noch zwei sehr schnelle und kalte Sossen (perfekt fuer mich, weil ich nur zwei Kochplatten in meiner Kueche habe …)

Honig-Senf-Sosse:

Honig, Senf (am besten Dijon-Senf) und Creme Fraiche mischen, salzen, pfeffern, fertig.

Passt gut aufs Sandwich, aber auch zu dunklem Fleisch.

Joghurtsosse

Yoghurt, Kokosextrakt, frischen Koriander (oder Petersilie, oder …) und Chilipulver mischen, salzen, fertig.

Am Besten schmeckts mit dem Joghurt vom Tuerken mit 10% Fett. Stammt aus meinem indischen Kochbuch und wird da mit Linsenküchlein gegessen; mir schmeckts auch sehr gut mit Hackbällchen:

Stephen Fry: The Hippopotamus

Filed under: — Sebastian Kirsch @ 00:02

Crusty old hippopotamus of a poet laureate Tedward Wallace goes to East Anglia to solve the case of his godson’s alleged miracles. Curious writing style that switches from letters to first-person narration to third-person narration. Mystery is not Fry’s strong side, but the wonderful language makes up for that.

Friday, 07 January 2005

Zutaten für einen Bollywood-Abend, Teil I: Kulfi

Filed under: — Sebastian Kirsch @ 22:03

Kulfi ist eine indische Eiscreme aus Kondensmilch. Vorsicht: Sehr lecker, aber auch sehr magenfüllend. Das Rezept ist für Kardamon-Pistazien-Kulfi; man kann Kulfi auch mit Safran oder Mangos machen.

Zutaten:

  • 1 Liter Milch
  • 1 EL Reismehl
  • 5 Kapseln Kardamon
  • 4 EL Zucker
  • 1-2 EL gemahlene Pistazien
  • 2 TL Rosenwasser

Zubereitung:

  1. Die Kardamon-Samen aus den Kapsel herausloesen und mit einem Messer zerquetschen.
  2. Die Milch mit dem Kardamon vorsichtig zum kochen bringen und auf zwei Drittel bis die Hälfte der Menge reduzieren.
  3. Den Kardamon mit einem Sieb entfernen und die Milch wieder auf den Herd stellen
  4. Das Reismehl mit 2 EL Milch verrühren und zur eingedickten Milch dazugeben, ausserdem den Zucker und die Pistazien hinzufügen. Noch einmal 10 Minuten kochen lassen, dann vom Herd nehmen und abkühlen lassen.
  5. Zur abgekühlten Mischung Rosenwasser hinzufügen und sie ins Eisfach stellen. Alle 20 Minuten umrühren, damit sich keine Eiskristalle bilden.

In indischen Restaurants wird Kulfi meistens in kegelförmiger Form serviert, wobei der Kegel auf der Seite liegt und in Scheiben geschnitten ist.

Chaos everywhere

Filed under: — Sebastian Kirsch @ 01:28

There is a common perception that software projects are notable for their rate of failure, but hard data about this fact is difficult to come by. Prominent examples in Germany are the recent toll collect disaster (which delayed a toll for lorries on German motorways for years) and the introduction of the new unemployment insurance (Arbeitslosengeld-II), which caused the bank account data of thousands of people receiving dole to be garbled, resulting in them not getting their money.

Some data is found in the Standish Group’s chaos reports. They report that in 1994, a staggering 16% of all surveyed software projects were completed on time and in budget; 31% of the software projects are never completed at all. The figures for 2000 are slightly better; 28% of the projects succeeded and only 23% failed outright. So, all the advances in software design, object-oriented programming, modeling tools, CASE tools, IDEs etc. managed to decrease the failure rate by 3/4 and increase the success rate by 3/4.

Still, this is a pretty dismal track record. If we build houses the way we develop software in 2000, the first woodpecker would still destroy civilisation. For two thirds of the software projects, it means a very bumpy ride to completion, requiring either massive cost overruns or severe delays, and if you are already on that track, you only have a two-thirds chance of ever completing the project.

The reports also contain a detailed analysis of the cause of failure; I think this should be required reading for any IT project manager. Unfortunately, these reports were not part of any of my software engineering classes.

Delicious bookmarks

Filed under: — Sebastian Kirsch @ 00:57

I have not written about it in this blog yet, but my diploma thesis is going to be about community structures in knowledge networks, with applications in knowledge management and collaborative web search.

One tool for collaborative management of bookmarks is del.icio.us. Its greatest virtue is its simplicity: Every user can upload URLs and attach tags and a description to them. The URLs can later be queried by username or a combination of tags. For every URL, information about who else bookmarked this item is available, plus the tags used to bookmark the item. You can also subscribe to the bookmark list of other users and be notified when they bookmark new sites. (But you cannot find out who subscribes to your bookmarks.)

The system is completely centralized. There is no real community support for knowledge sharing. It also relies on manual tagging (though this could probably be hacked to include referrer information from web search engines.)

As with similar systems (AudioScrobbler comes to mind), it’s appealing at first because it is very simple, but the collaborative nature is limited because of the lack of communication facilities between users and the lack of community support. I suppose these features could be added eventually.

Wednesday, 05 January 2005

Poulet sauté aux épices

Filed under: — Sebastian Kirsch @ 00:12

Gebratenes Hähnchen mit Gewürzen

Man nehme:

  • Hühnchen
  • Salz, Puderzucker, Pfeffer, Ingwerpulver, gemahlenen Koriander, Kurkuma und Cumin
  • Paprika, Frühlingszwiebeln, Zucchini, Sellerie und Zuckerschoten
  • Honig und Zitronensaft
  • Sonnenblumenöl
  1. Das Hähnchen in mundgerechte Stücke schneiden. Die Gewürze mischen und die Hähnchenstücke damit vermengen.
  2. Das Gemüse ebenfalls in Stücke schneiden.
  3. Das Hähnchen im Wok anbraten und beiseite stellen.
  4. Das Gemüse anbraten und das Hähnchen wieder dazugeben.
  5. Mit Honig und Zitronensaft ablöschen, zwei Minuten weiterbraten und servieren.

Guten Appetit!

Tuesday, 04 January 2005

PowerPoint Is Evil

Filed under: — Sebastian Kirsch @ 23:58

Something for my mom, who is an elementary school teacher and who is learning PowerPoint at the moment:

This Wired article by one Edward Tufte details why PowerPoint (and related presentation software, but mostly PowerPoint, through its ubiquity) makes us stupid. Why it degrades the quality of communication and makes every well thought-out argument into a piece of mindless marketing drivel.

Tufte also wrote a monograph on the subject of PowerPoint abuse, called The cognitive style of PowerPoint; sample pages from the monograph are on his web site on a page about the Columbia accident.

Tufte is an artist and graphics designer who has written several books about the visual display of information. (A department in which I am sorely lacking, so perhaps I should treat myself to one of his books eventually.)

So, please, mom, think of the children: Don’t let them use PowerPoint!

Happy new year!

Filed under: — Sebastian Kirsch @ 16:01

Happy new year, everyone!

I just came back from a wonderful holiday in Zürich – celebrating new year’s eve at the lake, watching the fireworks, visiting the Monet exhibition at Kunsthaus Zürich, fine vegetarian food at Restaurant Hiltl (which has over 100 years of experience in vegetarian cuisine), fine asian food at Tiffins, fine fast food at New Point (try the shish kebab, not the döner kebab), and a very nice evening at the Jules Verne panoramic bar (in the old observatory, overlooking the city.)

The downside: Zürich is as expensive as ever.


Copyright © 1999--2004 Sebastian Marius Kirsch webmaster@sebastian-kirsch.org , all rights reserved.