Sonntag, 25. Januar 2009

Programming languages maze

I wonder why many new programming languages (like Python, Ruby, Eiffel, Dylan,...) often come up with their own syntax instead of adopting most of the syntax from C (like C++, C#, D, Java did) and extending it. I don't enjoy having to learn that you use the "'" sign for comments in BASIC, ";" in Assembler, "--" in Eiffel, etc. Why don't all languages use "//"?

Samstag, 24. Januar 2009

Experiences with e-cell, Part 6

I've discovered the reason for my problems on the first computer on which I installed e-cell. Now the problems are resolved; gecell.exe works.

The reason was that I had files called xmlparse.dll and xmltok.dll in my c:\windows\system32 directory, which was stored in the "path" variable. Therefore gecell.exe tried to access these files instead of the files with the same name in the GTK directory. I renamed the files in the system32 directory, and it works now.

Chebyshev's inequality

Somebody posted a task involving Chebyshev's inequality to ( It took me more than two hours, but I think I solved it.

Freitag, 23. Januar 2009


In the (officially unreleased) preview version of my game, there was something that caused a suboptimal behaviour of some of the non-player characters. Yesterday I tried to fix this "bug", but I wasn't able to find out what exactly was wrong. Then, today, I compiled the game again... and the characters behaved correctly! So it seems that I had already fixed the bug after compiling the preview edition... It seems my memory is getting worse, for I can't remember having done that... but obviously I must have done it!

Have you ever made a similar experience?


As there has been a debate about SLOC ( on, I've counted the SLOC of my game - it's 21549 at the moment.

Experiences with e-cell, Part 3

The e-cell developers answered my mail, asking several more questions (version of e-cell downloaded, version of Python installed,...), which I answered some days ago. No new mail since then. I'll try finding the error myself...

Experiences with e-cell, Part 4

It works on another computer I installed it on. I suspect the problem on the first computer is related to Python as a different version of it was previously installed.

Experiences with e-cell, Part 5

I tried gecell.exe with the Mitochondrion model available at the e-cell website ( I realized it was not ready to run but had to be "compiled" (*.em converted to *.eml, *.cpp to *.dll). After doing this using the tools supplied with e-cell, I still get an error: "RuntimeError: Failed to create Entity [Process:/CELL/CYTOPLASM/MITOCHONDRION/MATRIX:SCS]: DMException: Failed to find or load a DM [SCSProcess]: can't open the module". Maybe something is missing in the Mitochondrion package. I'll try another package.

Montag, 19. Januar 2009

Blood Type and Diet

Yersterday I read "Eat Right For Your Type" by Peter D'Adamo. He claims that the blood-type, 0, A, B or AB, determines what food you are able to digest without an increase in body-weight. The theory behind this is that, according to him, food contains proteins called lectins which can agglutinate with the blood type antigens and lead to coagulation. I've now visited Wikipedia and there's a lot of criticism of this theory. According to Wikipedia, most lectins found in food are not blood-type-specific, but harm - if they do - every human being. By cooking food, lectins are destroyed and thus won't affect your health.

But D'Adamo also stated that your blood type predisposes you to certain illnesses, such as peptic ulcer (0) or gastric cancer (AB). 0 is supposed to be prone to peptic ulcer because the gastric acid concentration in persons with blood-type 0 is higher than in other blood-types. Wikipedia says nothing about this. I yet have to check other sources to see whether this claim might be true.

Sonntag, 18. Januar 2009

Tetris board game

I was wondering how a Tetris board game could be made. Maybe the stones would have to be magnetic. In order to be able to clear lines, there would have to be holes in the center of the left and right faces where a wire could be put through, and then some small disks could be attached to the wire. Thus, a line could be cleared without affecting other lines. One remaining problem is how to determine what's the next pattern to be used: A dice has only 6 faces, but there are 7 patterns in Tetris. Maybe two dice (with different patterns) should be used and the player could decide which of the two patterns he/she wants to take.

Samstag, 17. Januar 2009

Pitch detection

I remember I asked myself some time ago how to convert a song to notes. Now I've read this in a forum: "Pitch detection ... is currently an open research problem. There are some good algorithms for monophonic sounds (single voice, single flute, etc), as can be heard on almost every modern record, but if there is polyphony (choir, guitar, or pretty much any actual finished music) then there are currently no good algorithms. To do monophonic pitch detection, you can use autocorrelation, or a simple time-based zero-crossing detection scheme."

It seems to be more difficult than I thought.


Wikibooks still needs to improve a lot. As long as there are articles like this one: and books which lack most of their chapters, it makes a very unprofessional impression.

Destruktion der Leistungsgesellschaft

This book shows how social background affects career. Interestingly, science is the only career track where the social background doesn't matter. You just have to perform well.

As I'm only interested in a scientific career, this makes me feel good.

Mittwoch, 14. Januar 2009

Counting bits

int count_bits (int v)
  int c = 0;
  while (v)
    v &= v - 1;
  return c;

That's Kerningham's algorithm for counting the number of set bits (bits that equal 1) in a number. How does it work?

It works because of the theorem which says that if you subtract 1 from a number different from 0, exactly one bit that was 1 will become 0. If you apply an AND operator, the number of set bits will, therefore, be diminished by 1.

Proof by induction:
1 - 0 = 1. So for the number 1, the property that the difference to a number in which exactly one bit that was previously 1 is now 0 equals 1 is true. We will now show that we can deduce from this that the same property also applies for the number 1 + 1:
1 + 1 - 0 = 1 + 1 =>
10 = 1 + 1 =>
10 - 1 = 1 = 01. The property applies. Thus, we have proven that the theorem is true.

Samstag, 10. Januar 2009

Interview mit Craig Venter

"Klein: Vielleicht ist das Genom gar nicht das »Buch des Lebens«, in dem man einfach nur lesen muss.

Venter: Diese Vorstellung ist sicher ganz falsch. Wenn überhaupt, dann ist die DNA so etwas wie die Software des Lebens.

Klein: Was ist der Unterschied?

Venter: In einem Buch finden Sie sofort den Text, der Sie interessiert. Die Software hingegen zeigt nur, was bei der Datenverarbeitung am Ende herauskommt. Das Programm selbst, das dahintersteht, bleibt Ihnen verborgen. Und Sie erfahren auch nicht, wie es zu diesen Ergebnissen kam..."

Meint er: "Software" = compiliertes Programm; "Programm" = Quellcode? Oder sind das Genom nicht die Eingabedaten, welche die Software (epigenetischer Apparat - Transkriptions- und Translations-Enzyme usw.) verarbeitet?

Dienstag, 6. Januar 2009

Anteil der Hochbegabten unter den Studierenden?

Ich frage mich manchmal, wie hoch der Anteil derjenigen unter den Studierenden sei, die dem österreichischen Hochintelligenzverein beitreten könnten.

Unter der Gesamtbevölkerung haben die Hochbegabten (IQ mehr als zwei Standardabweichungen über dem Mittelwert) laut meinem Statistik-Lehrbuch einen Anteil von 2,28%.

Da der mittlere IQ der Studierenden wahrscheinlich höher als derjenige der Gesamtbevölkerung ist, wird der Anteil der Hochbegabten wohl ebenfalls höher sein.

Angenommen, alle Menschen mit überdurchschnittlichem IQ wären Studierende. Dann wäre der Anteil der Hochbegabten 2 * 2.28% = 4,56%.

Irgendwo habe ich einmal gelesen, der mittlere IQ aller Studierenden betrage 115 (also eine Standardabweichung über dem Mittelwert der Gesamtbevölkerung). Über die Verteilung habe ich aber nichts gelesen.

Angenommen, alle Menschen mit einem IQ über 115 wären Studierende. Dann wäre der Anteil der Hochbegabten laut meinem Statistik-Lehrbuch 2.28% / 15.87% = rund 14,37%.

Die Wahrheit wird wohl irgendwo in der Mitte liegen - zwischen 4,56% und 14,37%. Das arithmetische Mittel dieser zwei Prozentwerte wäre 9,465% - also könnte man davon ausgehen, dass etwa jeder zehnte Studierende hochbegabt ist.

Trotzdem bekommt laut nur einer von 100 Studierenden ein Begabtenstipendium... (,1518,598697,00.html)

Experiences with e-cell, Part 1

When installing the current e-cell for Windows package, the installer first checks whether Python 2.4.2 and Gtk+ are installed on your system. Since on my PC Python 2.5.1 was already installed, the installer decided Python needed not be installed any more. So I only installed Gtk+ and then e-cell. When running any of the programs from the e-cell package after installation, I got the error "LoadLibrary(pythondll) failed". So I started the installer again and this time also manually chose to install Python 2.4.2. This didn't help either. Rebooting neither. So I chose to install everything, including Python 2.4.2 and Gtk+, again. In fact, Python was not re-installed as the Python installer detected Python and thought it was okay; only Gtk+ and e-cell were re-installed. But now it works. So something is probably set up by the e-cell installer depending on the version of Python installed on the PC.

Now I need a tutorial how to handle e-cell.

Experiences with e-cell, Part 2

I quickly found out that I need to use gecell.exe to run the sample simulations provided with the e-cell package (and also the other simulations available at the e-cell website), but then I ran into another problem:

When I run gecell.exe, I get the error: "The procedure entry location 'XML_SetDectypeDeclHandler' was not found in the DLL 'xmlparse.dll'."

What do I have to do to get it to run? I've asked this question on the official IRC channel ( #ecell), but nobody replies. So I sent a mail to the webmaster of, let's see how quick the Japanese are with replying their mail.

Montag, 5. Januar 2009

Computer simulation of a cell

One of the areas of medical informatics that interest me most is computer simulation of living organisms. I'm now searching for good existing simulations, which are both biologically correct and visually appealing. I'm interested in what has already been done and what hasn't been done yet.

The most interesting thing I've found so far is this Japanese project:

Samstag, 3. Januar 2009

Discovered an interesting forum!

This forum is great:

It has subforums for biology, biochemistry, medicine, computer science, mathematics and physics. There are tons of users, from high school students to university professors. Various disciplines are covered.

Donnerstag, 1. Januar 2009

Piano and Mystical Ninja

I've managed to play the melody of level 1 of "The Legend of Mystical Ninja" (Konami, SNES) on my piano. I'm quite bad at recognizing intervals ( so it's not easy for me to play a melody on the piano without reading or having memorized notes, but with a lot of trial and error I get to satisfactory results nevertheless.

Oh, BTW: Happy New Year!

Medical informatics, Bioinformatics and Cybernetics

Having been awake since 5:30 am, I've read a lot of Wikipedia pages about medical informatics, bioinformatics, cybernetics and related subjects. Somehow I've got the impression that many of these topics seem to be rather trivial.

Most of medical informatics is about documentation (SNOMED etc.). Boring stuff. The most interesting part of medical informatics is visualization and image processing. It's the things about which I learned the least in my BSc study. But I'll focus on it in the Master's programme.

Bioinformatics mainly deals with sequence alignment. There are a couple of algorithms which fulfill this task. I don't know yet how good they are. Maybe there is still some potential for better algorithms.

Cybernetics is something for scientists to play with in their sparetime. It's like solving crosswords.

Anyhow, biochemistry is much more interesting than all of this. Maybe I should study it once I'll have completed my medicine and computer science degrees.

I'll now bend over my medical textbooks.