C++ references and inheritance

The last few days I’ve been hunting a bug in a C++ project I’ve been working on. This hunt again showed me how easily you can break C++ programs by accident (something that isn’t possibly in Java or C#). You need to completely understand the inner workings of C++ to avoid such pitfalls.

The whole problem was a result of me thinking that C++ references (&) are just pointers (*) that have some restrictions (e.g. they can’t be NULL). Wrong! What’s even worse: They’re sometimes just pointers with some restriction. This makes them work in some cases but fail in others.

Let me take you on my journey and you’ll hopefully avoid this (very subtle) mistake in your work.

Read more →


Nachdem der Firefox 3.6 nun schon seit einiger Zeit erhältlich ist, war es heute mal Zeit, meine Firefox-Addons zu durchforsten und sie zu aktualisieren. Im Zuge dessen habe ich auch meine Firefox-Addon-Liste mal wieder überarbeitet und ein paar Addons im Bereich “Tab-Preview” und “Tablet-PC” durch Firefox-interne Einstellungen ersetzt.


Hab heute mal meinen Blog auf die neuste WordPress-Version gebracht, alle Plugins aktualisiert und einige Kleinigkeiten verändert. Größere Änderungen zur Verbesserung der Usability sind geplant, aber auf Grund von Prüfungsstress so schnell nicht umsetzbar.

Falls du feststellen solltest, dass irgendetwas nicht geht, dann sag mir kurz per E-Mail Bescheid. Danke.

Die Geschichte der Programmiersprachen

Als Erweiterung zu meinem letzten Artikel über Programmiersprachen hier mal eine vollständige Liste:

A Brief, Incomplete, and Mostly Wrong History of Programming Languages

Meine Favoriten (in chronologischer Abfolge sind):

1940s – Various “computers” are “programmed” using direct wiring and switches. Engineers do this in order to avoid the tabs vs spaces debate.

1970 – Guy Steele and Gerald Sussman create Scheme. Their work leads to a series of “Lambda the Ultimate” papers culminating in “Lambda the Ultimate Kitchen Utensil.” This paper becomes the basis for a long running, but ultimately unsuccessful run of late night infomercials. Lambdas are relegated to relative obscurity until Java makes them popular by not having them.

1972 – Alain Colmerauer designs the logic language Prolog. His goal is to create a language with the intelligence of a two year old. He proves he has reached his goal by showing a Prolog session that says “No.” to every query.

1983 – Bjarne Stroustrup bolts everything he’s ever heard of onto C to create C++. The resulting language is so complex that programs must be sent to the future to be compiled by the Skynet artificial intelligence. Build times suffer. Skynet’s motives for performing the service remain unclear but spokespeople from the future say “there is nothing to be concerned about, baby,” in an Austrian accented monotones. There is some speculation that Skynet is nothing more than a pretentious buffer overrun.

1987 – Larry Wall falls asleep and hits Larry Wall’s forehead on the keyboard. Upon waking Larry Wall decides that the string of characters on Larry Wall’s monitor isn’t random but an example program in a programming language that God wants His prophet, Larry Wall, to design. Perl is born.

Pic of me

Ich nehme mal Markus Stöckchen an und werfe es zu jedem weiter, der will.

So – that’s me:

Pic of me

(via http://www.sp-studio.de )

Update: Das ist übrigens mein Papa

Pic of Papa