April, April
Aprilscherze können billig sein, aber dieses Jahr hatten sie eine gewisse Klasse. Am besten gefiel mir, dass die ICANN die Rootserver des Internet für einen Tag abschaltet, weil alle IPV4-Adressen vergeben sind. Es ist zwar offensichtlich, dass man daran zweifelt, aber so verkehrt ist die Idee nicht. Und tauchte auch noch die Nachricht auf, dass man es ein Video über das letzte Experiment am LHC gibt, wo man Wissenschaftler sieht, die an einer nicht bekannten Konsole hantieren und man vermutet, dass damit schwarze Löcher aufgespürt werden sollen. Auch nicht von der Hand zu weisen. Aber Geschichten über Gebühren für E-Mails, die Umbenennung von Google waren schon zu offensichtlich.
Keine Fehlmeldung ist, dass Adobe an der Version 3 meiner “Weapon of choice” für einfache Fotobearbeitung arbeitet. Letztens ist die Beta von Lightroom erschienen und muss wohl einiges an nachträglicher Rauschunterdrückung mit sich bringen.
In den letzten Wochen war ich wieder viel unterwegs, Schulungen, Beratungsgespräche usw. Aber Schulungen laufen nicht ohne einen gewissen Grad von Humor, auch wenn er sehr spezifisch auf Programmierer gemünzt ist. So schnappte ich den Hinweis auf esoterische Programmiersprachen auf. Grund genug, da mal abends im Hotel etwas genauer zu forschen und festzustellen, dass es da wirktlich absonderliche Sachen gibt.
Drei Sprachen gefielen mir von der Idee so gut, dass ich hier mal ein paar vorstellen möchte. Fangen wir mit “Chef” an. Die Idee hinter Chef ist, dass programmieren doch nichts anderes ist, wie kochen. Man nimmt Zutaten, vermischt sie im richtigen Verhältnis und hofft, dass nichts anbrennt. Man schaue sich nur mal das Rezept für die “Fibonacci Zahlen begleitet von Karamelsauce” an – klingt nicht nur lecker, sondern berechnet nebenbei auch noch die ersten 100 Fibonacci-Zahlen.
Manche behaupten ja auch Programmieren sei eine Kunst und deshalb sind Programmierer auch immer ein Stück Künstler. Und um ein richtiger Künstler zu sein, benutzt man eine Sprache, in der man sich nicht nur logisch, sondern auch grafisch verausgaben kann – Piet. Der Namensvetter für Piet war Piet Mondrian.
Für die etwas groberen, nicht künstlerisch begabten Programmierer, die sich vielleicht mit Taxifahren ihr Studium finanziert haben, ist Taxi die richtige Wahl. Für manche mag es ja wichtig sein, dass alles richtig funktioniert – bei Taxi ist es wichtig, dass die Daten am richtigen Platz landen. Und schon geht es los… “‘Hello’ is waiting at the Writer’s Depot.
Go to Starchild Numerology: west 1st left, 2nd right, 1st left, 1st left, 2nd left.”
Auch wenn es schon einen halben Monat her ist und seither Lena Meyer-Landrut wie eine Plage über die Charts herfällt, ich habe mir das Ausscheidungsspektakel für den Eurovision Song Contest angesehen. Zugegeben Lena polarisiert – entweder man mag sie oder überhaupt nicht. Ich schließe mich der “überhaupt nicht”-Kategorie an. Ich weiß nicht, ob ihr nervöses Gezappel gespielt oder real ist, genau ihre Rolle als kleines schüchternes Schulmädchen. Das hat schon damals Britney Spears auf Dauer keiner abgekauft. Aber kommen wir doch mal zum inhaltlichen Teil – sie kann nicht singen, hat keine Technik und zudem kommt “Satellite” auch noch komplett ohne Melodie aus. Hingegen zog Jennifer Braun mit ihrer Darbietung das Publikum, die Jury mit Ausnahme von Stefan “Ralph Siegel V2″ Raab in den Bann. Selbst die Besucher der Eurovision Song Contest Seite verwiesen Lena auf Platz 3 – und an der Stelle mit einer konkreten Prozentzahl, die ich bei der Sendung vermisst habe. Was bleibt, ist der fade Geschmack einer getürkten Wahl und der Stoßseufzer, dass deutsche Musikohren endlich eigenen Geschmack entwickeln und ihn sich nicht vorgeben lassen.
Ich COMme
Heute wieder ein wunderschöner Beitrag aus der merkwürdigen Welt der Programmierung. Alles natürlich wieder am praktischen Beispiel erklärt. Angenommen ihr erhaltet Besuch (international, spricht viele Sprachen) und der schnüffelt in eurem Bücherregal herum, was natürlich überhaupt nicht nett ist. Statt zu fragen, vertauscht er die Reihenfolge, ändert Lesezeichen und macht Eselsohren hinein. Da er regelmäßig bei euch vorbeikommt, interessiert ihn natürlich meistens das Buch, was ihr gerade lest, seltener die anderen Bücher, aber das kommt schon mal vor.
Da gibt es nur einen Ausweg – den Bücherschrank absperren und ab sofort muss er euch fragen, was für ein Buch ihr gerade lest, von wem es ist, ob ihr mal eine Seite aufschlagen könnt bzw. wann und wo es erschienen ist usw. Damit hätten wir den theoretischen Teil abgehandelt und können zur Praxis übergehen. Da ihr ja aktive Lebenwesen seid (oder sind auch Zombies oder Untote unter meinen Lesern?), nennt sich das Ergebnis ActiveX. Ihr bereitet euch auf alle Fragen und Aktionen vor, die kommen könnten und stellt fest, dass es Ähnlichkeiten gibt.
Schlag mal Seite … auf, von dem Buch, das du gerade liest!
Schlag mal Seite … auf, von dem Buch, das … hieß!
Blöd wäre ja jetzt, wenn ihr für jede Frage oder Aktion, die neu angefordert wird, zwei neue Formulierungen aufschreiben müßtest. Das ist nicht nur aufwändig, sondern wird mit der Zeit auch ziemlich unübersichtlich. Also beschränkt ihr euch auf eine Formulierung, denn die Mehrzahl der Fragen richtet sich ohnehin nach dem Buch, das ihr gerade lest.
Schlag mal Seite … auf, von dem Buch, das … hieß!
Die zweite Hälfte der Aufforderung ist dabei freiwillig, d.h. wenn der Fragesteller den Teil weglässt, geht ihr einfach davon aus, dass es sich um das aktuelle Buch handelt, das ihr lest. Unter Programmierern wird soetwas optionale Parameter genannt. Jetzt kommt der Moment, wo wir das gesamte Wissen zusammenraffen können und an dem Punkt hängenbleiben, dass wir eine Fragestellung aufschreiben sollen, die auch noch international verständlich ist. Als Programmierer hat man es da einfach, denn für solche Zwecke wurde die Object Definition Language (ODL) erfunden, mit der man beschreiben kann, wie eine solche Frage aussieht – und im Endeffekt von vielen Programmiersprachen aus ansprechbar.
Natürlich kann man sich soetwas schnell zusammenklicken, aber an solchen Fragen, wie optionalen Parametern bleibt man doch hängen und muss von Hand eingreifen. So würde also die Aufforderung zum Aufschlagen einer Seite in ODL aussehen.
[id(42)] bool Aufschlagen(long Seite, [optional] VARIANT ISBN);
Das sollte doch auch für Nichtprogrammierer einleuchtend sein – ich gebe an, das ich Seite soundso aufschlagen möchte und wenn ich keine ISBN erhalte, nehme ich das aktuelle Buch. Natürlich versteht unsere ODL auch das Prinzip der Eigenschaften, in dem Fall Autor, Titel, Cover usw. Jetzt fängt der Vergleich mit den Büchern etwas zu hinken, denn die ODL ermöglicht uns nicht nur das Ermitteln, sondern auch das Verändern von Eigenschaften. Wäre ja möglich, in dem unser Besuch den Autor durchstreicht und seinen eigenen Namen darüber schreibt. Nur, dass er uns diesmal um Erlaubnis fragen muss.
Und jetzt treiben wir die Möglichkeiten der ODL auf die Spitze, denn das Object in ODL bedeutet, dass man eigentlich von einem Objekt ausgeht. Von diesem Standpunkt aus, sind optionale Parameter bei Eigenschaften doch etwas kniffliger. Also machen wir uns mal an die Beschreibung…
[id(42), propget] VARIANT Autor([optional] VARIANT param1);
[id(42), propput] void Autor(VARIANT param1, [optional] VARIANT param2);
Um zu Verstehen, wie dicht wir hier am Limit der ODL arbeiten, brauch man sich nur mal die Parameter ansehen, denn die ODL besteht darauf, dass der erste Parameter jeweils den gleichen Namen hat, obwohl er bei der ersten Funktion (Ermitteln des Autors) inhaltlich der ISBN entspricht und im zweiten (Verändern des Autors) dem neuen Autor. Kommen wir aber zum schönen Teil – dem Einholen der Ernte.
Jetzt wird es natürlich extrem programmierlastig, aber die Kommentare sollten aufschlussreich genug sein.
// Verändern des Autors
void CMyActiveX::SetAutor(const VARIANT FAR& param1, const VARIANT FAR& param2)
{
// schauen wir mal nach, ob wir eine ISBN bekommen haben...
if (param2.vt == VT_ERROR && param2.scode == DISP_E_PARAMNOTFOUND)
{
// Keine ISBN, also nehmen wir das aktuelle Buch
}
else
{
// ISBN angegeben, also ein spezielles Buch suchen
}
}
Erste Testergebnisse: Ich bin mit zwei Programmiersprachen auf die ActiveX-Komponente losgegangen und konnte (fast) problemlos damit arbeiten – einzig das Verändern von Eigenschaften mit optionalem Parameter machte in einer Sprache Ärger. Aber wir wollten es ja ohnehin nicht zulassen, dass die Gäste in den Büchern herumschmieren…
Bigmouth strikes again
Wieder mal die Zusammenfassung der letzten Tage. Heute aber endgültig in Kurzfassung. Ich sollte mich wieder daran gewöhnen, mehrere kleine Beiträge zu verfassen, statt mich in einem Monsterbeitrag zu verewigen. Blättern wir mal zurück auf Donnerstag, wir fuhren angesichts des schönen Wetters abends mit den Fahrrädern noch in einen Biergarten. Während des Essens, Trinkens und Quatschens schreckte ich auf einmal hoch – eine Katze hatte sich heimlich, still und leise herangeschlichen und fing an, um meine Beine herumzuschmusen. Sie suchte erstmal das Weite, kam aber wenig später wieder und machte Anstalten, sich neben mir niederzulassen. Keine Chance. Auch als wir heimkamen und ich nach Hause fahren wollte, mußte ich erstmal eine Katze vor und hinter dem Auto verjagen. Was war denn heute nur los?
Den Freitag jagte ich wieder den Fehlern in meinem neuen Modul hinterher. Irgendwann kam ich dahinter, dass da jemand sehr gründlich sauber machte. Irgend jemand (Wenn ich den erwische!) schickt die Putze los und die räumt mir meinen COM-Server weg, kurz bevor ich anständig ein Schließen der Tabelle veranlassen will. Den Vergleich mit der Putzfrau fand ich überaus treffend und zog den Vergleich zwischen mehreren Programmiersprachen:
- C: Wenn du einziehst, ist alles dreckig. Jeden Bereich, den du in der Wohnung belegen willst, mußt du selbst vorher reinigen. Dafür mußt du dir keine Gedanken machen, wenn du ausziehst. Selbst alte Möbel schmeißt der Vermieter für dich weg, aber den Dreck läßt er für den nächsten liegen.
- C++: Auch hier ist alles dreckig, wenn du ankommst. Das Gute aber ist, dass jedes Möbelstück seine eigene Putzkraft hat, die vorher sauber macht. Wenn du ausziehst, räumen sich die Möbel von selbst weg. Es kann natürlich auch passieren, dass sich ein Möbelstück aufräumt, wenn du das Zimmer verlässt. Du findest einen leeren Schrank vor, wo du vorher Bücher darin deponiert hattest. Einen Zettel zu schreiben, welches Buch an welcher Stelle stand, ist auch nicht gut, dann machst du trotzdem den Schrank auf und greifst ins Leere. In dem Fall bietet es sich an, den Schrank irgendwo hinzustellen, wo man ihn immer im Auge hat.
- Java: Endlich deine eigene Putzfrau. Egal was du machst, sie räumt immer hinter dir her. Was du nicht mehr brauchst, wird von ihr selbstständig entsorgt. Du willst einen Schrank aufstellen? Sie weiß wohin und macht alles vorher für dich sauber. Du kannst dich zwar endlich auf das Lesen der Bücher konzentrieren, verlierst aber jeglichen Ordnungssinn.
Mittwoch erreichten mich auch die letzten Entwürfe zum Thinner-Release und nachdem ich mir die Tracks nochmal ausgiebig angehört hatte, stellte ich fest, dass ich einen neuen Ansatz gefunden hatte und erweiterte den Text noch etwas. Schon am Freitag war die entgültige Version online und auch sonst stand das Wochenende ganz im Sternzeichen von Thinner. Mich erreichte eine Mail aus Dresden mit der Bitte, ich sollte doch die Verwendung eines Autoplate-Tracks für einen Kurzfilm für derzeit stattfindende Kurzfilmfestival “Dogs, Bones & Catering” genehmigen. Leider nicht meine Baustelle – von mir aus gern, aber ich gab die Anfrage an Sebastian weiter. Eigentlich ein interessantes Projekt: Innerhalb von 43 Stunden einen Kurzfilm von 4,5 Minuten erstellen. Außerdem sollte ich noch eine kurze Beschreibung meiner Person für die neue Profilseite von Thinner abgeben, was ich dann heute Abend auch erledigte.
Samstag Morgen erwachte ich für meinen Geschmack etwas zu früh, jedoch war es mir nicht vergönnt, noch sehr lange liegen zu bleiben, mein Handy rief nach mir. Naja gut, die Sonne leistete einen nicht unwesentlichen Anteil daran, mich aus dem Bett zu ziehen. Ich beschloss, die seit einem halben Jahr fällige Autoreinigung mal nachzuholen und fuhr in die Waschanlage und saugte anschließend noch den Umzugsdreck aus dem Kofferraum. Interessante Feststellung: Rüedi ist silber-metallic! Anschließend fuhr ich in die Stadt und wir bummelten ein wenig durch die Buchläden, die mich wieder jede Menge Geld kosteten. Aber “Nein” zu Anne Clarks Buch “Notes taken, traces left” mit allen ihren Songtexten auf Deutsch und Englisch zu sagen, zumal es preisgesenkt war, ist fast unmöglich.
And when we have turned
one side of the world’s face
from sun into blackness
the other will then burn
under the slap of our greed.
Die deutsche Übersetzung lasse ich an der Stelle mal weg, denn sie trifft das Original überhaupt nicht. Am Nachmittag stand dann ein neuer Test an – Ich klemmte mich hinter das Steuer dieses BMW Kombi. Sandra mußte zum Starten das Handbuch befragen, aber ehrlich gesagt, ich glaube, wer dieses Auto fahren will, braucht unbedingt einen Lehrgang. Sitz, Lenkrad und Rückspiegel ließen sich gerade noch manuell verstellen. Schon kurz nach dem Einsteigen war ich überwältigt von den zahlreichen Drehknöpfen, Hebeln und Tasten, die alle darauf warteten, dechiffriert zu werden. Ich probierte ein Sprachkommando “Computer – Alterieren!” Zeigte aber wenig Erfolg. Schon aus vielfacher Sicht war das Fahren ungewöhnlich – der Blinker rastet nicht mehr ein und außerdem fuhr ich das erste Mal einen Automatik. Aber an den ganzen Schnickschnack gewöhnt man sich sehr schnell und so wird der Griff in die Mittelkonsole beim Einlegen des Rückwärtsgangs schon fast lästig. Dafür brauch man volle Konzentration, wenn man dem Baby mal die Sporen gibt – abends auf die Auffahrt zur Autobahn hinter einer Schnecke hinterhergetrödelt und beim Auffahren gleich in die linke Spur ziehen und dabei ordentlich Gas geben, schon sind die Lichter der “Schnecke” im Rückspiegel am Horizont verschwunden. Aber auch mal in einer eingeschränkten Zone zu fahren, kann Spaß machen – man hat die Ruhe weg und weiß: Wenn ich wöllte, könnte ich…
Abends ging es dann ins Kino – “4 Minuten”. Mein Witz an der Kasse “8 Minuten, bitte!” zu sagen, verpuffte. Die Kassiererin kannte den entweder schon oder war clever. Ein wirklich guter Film – kurz zusammengefasst: Eine Inhaftierte stellt sich als begabte Klavierspielerin heraus und wird für einen Förderwettbewerb angemeldet. Dabei stehen ihr Neid und Mißgunst seitens der Häftlinge, als auch der Wärter im Wege, die sie durch Ausbrüche roher Gewalt “löst”. Im Anschluss an den Film setzten wir uns bei einem Glas Rotwein, einer Moods und den Klängen von Robert Schumanns Konzert für Klavier und Orchester a-moll op. 54 in meine Küche und lauschten dem Spielen von Héléne Grimaud. Später stellte sich heraus, dass ich das Stück auch bei mir auf Vinyl habe und wir uns den Umweg über Sandras Wohnung hätten sparen können. Aber es war interessant, das Klavierspiel miteinander zu vergleichen.
Heute machte ich mir nach dem Frühstück einen ruhigen Tag. Ich fuhr die B26 Richtung Schweinfurt entlang. Zum einen, um zu Prüfen, ob die Strecke über Bischberg günstiger von der Autobahnabfahrt ist und zum anderen, um mir ein schönes Café zu suchen, damit ich mir meine neu erstandenen Bücher ansehen kann. Ich fand dann nach einem kleinen Besuch in der Wallfahrtskirche Maria Limbach, die von innen sehr schön war, aber auch viel zu belebt, um Fotos zu machen, ein abgelegenes Café in Eltmann, wo ich den Finnlandreiseführer bei einem Cappu studierte. Faszinierend – Nächte ohne Dunkelheit und Polarlichter, letztere leider vorwiegend im Winter. Abschließend fuhr ich wieder heim, kochte und beantwortete Mails. Und nahm mir vor, mich wieder mal kurz zu fassen…
Gedanken vor Mitternacht
Nun nach zwei untypischen Beiträgen jetzt doch mal wieder einer, wo ich mit vornehme, mich in der Länge zu beschränken, was aber unter Garantie scheitern wird. Schon allein die Tatsache, dass ich Donnerstag mit meiner Geschichte fortsetzen muss, macht das Ganze schwierig.
Donnerstag Nachmittag verließ ich Arbeit erstaunlich pünktlich, um zu meiner ersten Klavierstunde zu fahren. Ab auf die Autobahn, später Bundesstraße. Ich kam gerade noch pünktlich an, mußte einen kleinen Moment warten und dann konnte es losgehen. Natürlich hatte meine Klavierlehrerin keine Ahnung, was sie erwartet und wir begannen wirklich mit den einfachsten Übungen. Erst alle Zweiergruppen von links nach rechts, dann alle Dreiergruppen. Dann ging es langsam zu den Noten über, sie wollte mir das C erklären, als ich es schon anschlug. Nächste Geschicklichkeitsübung: Finden Sie alle C’s auf der Klaviatur! Schnell gefunden, plung, plong, pling, fertig! Vom C aus ging es dann zum ersten Lied über. Da sich die Zahl der 33-jährigen, die auf die Idee kommen, Klavier zu spielen, doch sehr in Grenzen hält und dieser Bereich doch eher von Kindern bevölkert wird, fingen wir mit einem ganz einfachen Stück an, bei dem mir Handstellung für linke und rechte Hand erklärt wurden und ich dann schon losspielen durfte – ein Auge auf dem Notenblatt, eins auf den Händen. Haltungsfehler der Hände und beim Sitzen wurden sehr freundlich korrigiert und brachten auch hörbare Ergebnisse. Danach war erstmal kurze Pause, wird übten das Zeichnen von Noten- und Bassschlüssel, sowie Tonleitern, Notenlängen, Oktaven und brachten das Ganze zu Papier. Dann ging es zum nächsten Stück über, ich durfte mich noch ein wenig verspielen und dann war die erste Stunde auch schon vorüber. Ich erkundigte mich noch über Klavierpreise, Unterscheide zwischen einem alten, aufbereiteten Klavier, Neukauf und einem E-Piano. In der Zeit muss ich dann wohl meine Übungszettel abgelegt haben und seit diesem Zeitpunkt verlor ich sie aus den Augen. Aufgefallen ist es mir auch erst gestern Abend, sodass mir nichts anderes übrig bleibt, als Montag Nachmittag noch einmal rauszufahren und sie abzuholen, schließlich will ich auch daheim ein wenig üben.
Freitag probierte ich weiter auf Arbeit herum und konnte Freitag Abend schließlich einen Erfolg vermelden. Ein Kollege hatte aber im Laufe der Wochen einen wirklich fiesen kleinen Fehler gefunden, der bei folgender (nachgestellter) Funktion auftrat:
void MachWas(char* pcZeichenkette1, char* pcZeichenkette2)
{
if (0 == strncmp(pcZeichenkette1, pcZeichenkette2,
strlen(pcZeichenkette1))
{
// und hier sollten wir nicht landen
}
}
Sein Problem war, dass er gelegentlich im inneren Teil der Abfrage landete, obwohl er dort nicht sein sollte. Nach einigen Tests fand er heraus, dass die Zeichenkette 1 die Länge 0 hatte, was dazu führte, dass die Abfrage beim Vergleich zweier Zeichenketten bis zur 0. Stelle immer die Abfrage erfüllte. Eigentlich sollte sich strncmp doch mal ein bißchen dagegen wehren, auf Länge 0 zu vergleichen. Das sind dann halt die kleinen Freuden des Programmierers.
Und damit aus den kleinen Freuden auch große Freude wurde, ging ich nach der Arbeit einkaufen. Als ich gerade mit dem Wagen den Supermarkt verlassen wollte, schrillte die Alarmanlage. Ich schob den Wagen durch, kein Signal, ich ging durch, das Heulen begann wieder. Ich wurde nett zur Information gebeten, wo ich noch ein paar Mal getestet wurde. Der Wagen war es nicht, aber ich erzeugte bei der Alarmanlage ein jaulendes Freudengeheul. Also wurde ich von dem plötzlich auftauchenden Sicherheitsmann nach hinten geführt, ich ertrug das alles mit einem freudigen Grinsen, ich war mir ja keiner Schuld bewußt. Ich wußte von einem Gerät abgetastet, wie es auf dem Flughafen verwendet wird und dieses Gerät schwieg sich aus. Auch bei meiner Tasche blieb es ruhig. Also gingen wir wieder zu einem Alarmmelder, der meine Annäherung mit Quäken bekundete. Ich zog die Jacke aus, gab sie ihm – Ruhe, ich ging hin – Ruhe, die Tasche hingehalten – Ruhe. Er fragte mich, ob ich neue Sachen hätte, wo noch ein Etikett drin sein könnte. Na klar, die Schuhe! Aber die waren es auch nicht. Er war sich mittlerweile sicher, dass ich nichts hatte mitgehen lassen, wollte mich nur von dem lästigen Piepsen befreien, da er aus persönlicher Erfahrung davon traumatisiert war. Plötzlich fiel mir das Portemonnaie ein, dass neben der Tasche lag und in den letzten Versuchen nicht zum Tragen kam. Bingo! Jetzt hieß es nur noch den Sicherheitsstreifen finden. Wir stellten das Portemonnaie auf den Kopf – nichts, der Sicherheitsmann fluchte schon herum, wieviele Fächer das Teil hat, bis er resigniert aufgab und es auf den Entsicherer legen wollte. Ich protestierte, weil ich vorher die Karten herausnehmen wollte. War eine gute Idee, denn dort hatten wir noch nicht nachgesehen und genau da war er versteckt. Zufrieden grinsend verließ ich den Laden – das Gute hatte gewonnen!
Ich machte noch schnell den Abwasch, legte Wäsche zusammen, aß etwas und dann ging es schon ins Kino. Wir schauten uns “The fountain” an, einen Film vom “PI”-Regisseur Darren Aronofsky. Ich hatte schon mehrere Kritiken dazu gelesen, die sich durch die Bank weg schlecht über den Film äußerten. Mit “PI” hatte er auch wirklich die Latte enorm hoch gelegt und einen ebenbürtigen Nachfolger zu schaffen, war kaum möglich. Kerngeschichte bei “The fountain” ist der Schöpfungsmythos der Mayas, die den Tod als Beginn neuen Lebens sehen und dazu am Himmel einen sterbenden Stern auserkoren haben, der gleichzeitig Geburtsstätte für neue Sterne war. An diese Stelle sollten die Seelen der Verstorbenen verschwinden, um neu geboren zu werden. Gleichzeitig spielt der Tod eines Mannes in dem Mythos eine tragende Rolle, die mit einem Baum verknüpft ist (ob er sich geopfert hat, damit der Baum wächst oder der Baum aus ihm wuchs, nachdem er starb, bin ich mir nicht mehr sicher). Diese Geschichte bildet die Grundlage für die Handlung, die in drei Zeitebenen stattfindet – der Zeit der spanischen Eroberer, der Gegenwart und der fernen Zukunft. Da alle Ebenen, trotz der realistisch wirkenden Gegenwart, fiktiv sind, handelt es sich um also 4 Geschichten, die alle miteinander verwoben sind. Die Mythologie, die im Laufe des Film aufgedeckt wird, der Spanier, der den Untergang Spaniens und seiner Königin verhindern will und deshalb nach dem Baum des Lebens sucht, dem Wissenschaftler, der ein Mittel gegen den Krebs seiner Frau sucht und den Weltenreisenden, der nach der Erlösung seiner beiden zeitlich vorangegangenen Ebenbilder sucht.
- Der spanische Eroberer sucht nach dem Baum des Lebens, um von dessen Saft zu trinken, um ewig zu leben und weil er es der Königin versprochen hat, Spanien zu retten. Nachdem er den Baum findet, wird er aber Opfer seiner eigenen Gier.
- Der Wissenschafter der Gegenwart weiß um den nahenden Tod seiner Frau und ist als Forscher bemüht, so schnell wie möglich ein Mittel zu ihrer Rettung zu finden. Sie schreibt in dieser Zeit ein Buch, dessen Inhalt die Geschichte des spanischen Eroberers ist, was relativ fader Bezug zu dem spanischen Eroberer ist. Sie bittet ihn aber, “die Geschichte zu Ende zu bringen”. Im Moment ihres Todes gelingt dem Forscher der Durchbruch, doch leider kommt er zu spät und akzeptiert den Tod seiner Frau nicht. Nach und nach erschließen sich im Laufe des Films die Bezüge zur Mayakultur und es wird klar, welchen Weg er zu gehen hat.
- Diese Handlungsebene ist sehr eng verknüpft mit der Zukunft und die Übergänge zwischen Zukunft in die Gegenwart sind einfach brilliant umgesetzt. Ansonsten führt diese Erzählebene wenig Inhalt mit sich, sondern mehr die Umsetzung des bisher Geschehenen. Dafür muss eine fulminante Optik herhalten, die seine Reise in einer Kugel mit einem fast verdorrten Baum zum sterbenden Stern zeigt.
Zwei Stellen in diesem Film stießen mir aber unglaublich sauer auf – zum einen, das theatralische Zusammenbrechen von Izzy mitten im Scheinwerferkegel einer Ausstellung und weiterhin dass das Mittel zur Heilung genau im Moment des Todes von Izzy fertig wird. Es hätte dem Film keinen Abbruch getan, wenn sie meinetwegen auf einer Treppe zusammengesunken wäre und das Mittel, angespornt anderen zu helfen, erst nach Izzys Tod fertig geworden wäre.
Schließlich legt der Film auch offen, dass das Streben nach Wissen, Macht, Jugend und Unsterblichkeit immer vom Tod und vom Leiden anderer gepflastert ist und diese Bemerkung vermisse ich bisher in jeder Kritik. Seien es die spanischen Eroberungszüge, die Inquisition oder Tierversuche, der Film legt diese Stellen offen, ohne dabei aber zu sehr ins visuelle Detail zu gehen. Nach dem Film fragte mich Sandra nach dem Sinn des Filmes, ich könnte mir mit meiner Antwort ruhig bis heute Zeit lassen. Ich denke, der Beitrag umreißt grob, was der Film bewegen möchte bzw. auch in mir bewegt hat. Es ist immer hilfreich bei einem Glas Wein und einer Internetverbindung das Ganze noch einmal Revue passieren zu lassen.
Als ich heute von meinem Einkaufsausflug zurückkehrte, wartete eine neue Postcrossing-Postkarte auf mich, diesmal aus Portland/Maine. In den Zusammenhang beschloss gleich, wieder fünf neue Adressen zu ziehen, um bald wieder einen gefüllten Briefkasten zu haben. Zwei Karten gehen wie üblich nach Finland, eine nach Holland, eine in die Schweiz (zu einer dort lebenden Finnin) und wieder eine in die USA. Ach so, Einkaufen – ich sag nur: 9. Staffel! Noch Fragen?
Microsoft rockt!
Gestern hatte ich noch ein ziemlich merkwürdiges Erlebnis. Ich öffnete den Briefkasten und fand ein Schreiben der Berufsgenossenschaft für Druck und Papierverarbeitung darin. Die BG möchte mich, meine Angestellten und meine “Produktionsräume” gerne gegen Unfälle versichern. Oder besser gesagt, sie will und ich nicht. Immerhin war sie so schnell, bereits ein Jahr nach Geschäftsgründung sich zu melden. Kommt Zeit, kommt Rat und das Schreiben wird jetzt auch erstmal einen kleinen Moment warten dürfen.
Irgendwie machte sich bei mir sehr schnell gestern die Müdigkeit breit und ich verzog mich schon kurz nach dem Sandmännchen (also gegen 23 Uhr) ins Bett. Die Rache folgte auf dem Fuße – ich war um 3 Uhr putzmunter und habe erst gegen 5 Uhr wieder Schlaf gefunden. Mag auch damit zusammenhängen, dass mir noch ein anderes Problem des Tages anhänglich war und mich nicht schlafen ließ. Und wie es mit den Dämonen der Nacht so ist, sollte man sie so schnell wie möglich bekämpfen, was ich dann heute auch vorgenommen habe. Der Arbeit tat das überhaupt keinen Abbruch, es war noch ausreichend Kaffee da, außerdem ist das Thema ziemlich interessant.
Nach zweieinhalb Monaten herumfliegen im Code, darf ich seit gestern auch noch ein bißchen forschen und tüfteln. Natürlich an meiner Lieblingsschnittstelle – der Datenbank. Mein Opfer ist die OLE DB – eine COM-Schnittstelle aus dem Hause Microsoft. Unglaublich flexibel und sehr umfangreich. Meine erste Erkenntnis: Nachdem ich jetzt ca. 1.000 Interfaces initialisiert habe, kann ich schon fast eine Sitzung eröffnen. Starke Sache, oder? Die Dokumentation ist ziemlich umfangreich, könnte jedoch etwas anschaulicher sein. Die ein oder andere Grafik zum Ablauf würde das Verständnis ungemein steigern. Statt dessen kämpft man sich durch Schnittstellen und Parameter, die dann auch noch pUnkSession heißen. Nicht geht über die Kreativität bei der Vergabe von Variablennamen. Wer es nicht glauben mag, hier ein Screenshot oder gleich der Verweis in die MSDN. Die besten Variablennamen sind ohnehin schon vergeben und kommen aus dem Hause GNU.

Nachdem ich den ganzen Tag mit der Punksession herumgerockt habe, kam ich spontan noch auf die Idee, mit meinem Wackelpeter zur Altenburg zu fahren und dort den Sonnenuntergang zu genießen. Nur doof, dass die Altenburg kurzzeitig ausgeschrieben ist und dann fehlt jeglicher Hinweis. Also düste ich eine Weile herum und machte mich, nachdem die Sonne untergegangen war, unverrichteter Dinge wieder heim. Aber die Fahrt war lang genug, den neuen Podcast in voller Länger zu hören. Unglaublich deep, kaum zu glauben, dass die Zeit so schnell vergeht. Ich stellte noch ein paar Fehler fest, die ich jetzt die nächsten Tage beheben werde, perfekt ist gerade gut genug.
Daheim lag eine Papptasche auf der Treppe zu mir, meine neuen Platten sind eingetroffen. Eine Scheibe war ein totaler Fehlgriff, dafür sind die La Manie – Schluss mit traurig und die Holger Flinsch – Hidden unschlagbar gut. Letzterer ist einfach brilliant. Das Stück “Eve of the end” ist atemberaubend. Und wenn ich schon mal das Thema Musik am Wickel hab, gleich noch eine Nachricht hinterher: Björk veröffentlicht im Mai ein neues Album, das auf den Namen “Volta” hören wird. Angeblich selbst geschrieben und produziert, aber unter Zuhilfenahme zahlreicher bekannter Produzenten, wie zum Beispiel Timbaland. Wird jetzt auch Björk klingeltontauglich? Seit dem letzten Nelly-Furtado-Album hege ich eine gewisse Abneigung gegen ihn, denn die Texte und Ideen für die Lieder waren bereits fertig, als es hieß “Alles Mist, ich mach die Musik und du schreibst die Texte dazu.” In meinen Augen nicht die Aufgabe eines Produzenten, sondern eher einer Gelddruckmaschine. Fehlt bloß noch, dass ihr ein textlicher Rahmen vorgegeben wurde. Aber ich wollte eigentlich zu Björk schreiben – beruhigend zu wissen, dass auch Mark Bell wieder mit von der Partie war. “Homogenic” war meiner Meinung nach ohnehin das beste Album. Punkt. Den Rest wird die Zeit zeigen.
Immer wieder verhüllten dichte Wolken den Mond in dieser Nacht
und jedes Mal fiel der Bann von mir ab.
Und ich sperrte ihn ein – wenn es doch endlich vorbei wäre…
Leicht müde
Gestern abend wurde es trotz Müdigkeit doch wieder erst Mitternacht, als ich den Weg in mein Bett fand. Ich wollte das Stöckchen unbedingt noch bearbeitet wissen. Heute Morgen dann trotzdem wieder putzmunter gewesen, obwohl ich die Nacht mehrmals munter geworden bin, bei der Regen wie wild auf mein Dachfenster klopfte. Das hat mich aber nicht schwer beeindruckt, sondern eher dazu veranlasst, mich gemütlich umzudrehen und weiter zu schlafen.
Auf Arbeit bastelte ich dann heute meine neu entwickelte Komponente ein und testete schon mal ein wenig. Nach dem Mittag kam dann die Bitte, erstmal an einer anderen Baustelle zu arbeiten. Dumm nur, dass ich vergaß, den Quellcode der Integration einzuchecken und fröhlich weiterbastelte. Also werde ich wohl morgen früh einen Zwischenstand erzeugen dürfen, den ich teste und einchecke. Und dann entstand kurz vor Schluss das finsterste Coding bis jetzt. Aber wer eine Bytekette von Frau “Mir ist wurscht, was es ist, Hauptsache das Ding hat einen Namen”-FoxPro über eine ActiveX-Komponente zu Herrn “Erlaube mir, wenn es mit einer 00h beginnt, es alles auf 00h zu setzen”-MFC zu tunneln, wird sein blaues Wunder erleben, wenn die Bytekette mir einem Kennzeichen beginnt, was berühmt berüchtigt als “terminierende Null” bekannt ist. Dann wird freundlicherweise der Rest -auch wenn er überhaupt nicht leer ist- platt gemacht. Und was ist da kruder als ein x-beliebiges Zeichen, was vor dem Abschicken vor die Kette gebastelt wird und beim Eintreffen durch ein memcpy(target, source + 1, sourcesize) wieder entschärft wird? Und noch viel schöner ist der Gesichtsausdruck eines Gewohnheits-Java-Programmierers verbunden mit der Frage: “Und dass mit der +1 funktioniert?“.
Sonstiges Tagesgeschehen – Donnerstag zum späten Nachmittag zum Friseur, mal sehen, vielleicht abends noch ins Kino. Wir wollen uns “Nach der Hochzeit” ansehen. Der letzte Film, den ich mit Mads Mikkelsen sah, war “Dänische Delikatessen” und da war er in seiner Rolle brilliant. Ich bin gespannt.
Obwohl ich doch ziemlich spät von Arbeit gekommen bin, habe ich den Abwasch erledigt, bin in die Wanne gesprungen und habe ich mich noch ein Stündchen zum Üben hingesetzt und traute mich nach einigen Übungen auf das freie Papier. So und nun bin ich erledigt und möchte eigentlich nur noch ins Bett…

Au weia, dass sieht aus, als wenn man einem 5-Jährigen das Schreiben beibringt. Zu meiner Verteidigung muss ich sagen, dass das Papier sehr holzig ist und somit die Feder oftmals springt. In diesem Fall eine sehr schmale Feder.
Musikverwaltung
Nachdem sich Loco gestern zu meinem Beitrag “70 times” erkundigte, ob ich Buch darüber führe, wie oft meine CDs abspiele, ist es mal wieder Zeit, in Erinnerungen zu schwelgen. Begonnen hat alles in den frühen 90er Jahren, wo ich noch auf meinem KC ein kleines BASIC-Programm schrieb, dass von Hand eingetippte Charts auf Kassette speicherte und auch von dort wieder lud. Das Programm hatte ich zwischen 1990 und 1991 regelmäßig im Einsatz, auch wenn es sich sehr umständlich bedienen ließ. Mitte der 90er Jahre hatte ich natürlich schon längst auf einen PC gewechselt und meine Plattensammlung war so sehr angewachsen, dass ich das Ganze verwalten wollte. Außerdem interessierte mich, welche CD ich wie oft abspiele. Also entstand die erste Version des Programms in dBASE, die schon eine relativ gute Abdeckung der von mir gewünschten Funktionalität bot. Hier und da mußte ich noch direkt in den Tabellen Hand anlegen, aber der Großteil wurde schon vom Programm abgedeckt.
Trotzdem fehlten immer wieder entscheidende Funktionen zur Auswertung und Erfassung. Außerdem war das DOS-Fenster dermaßen veraltet, dass ich mich 2000 nach einem Semester Java-Programmierung an die Umstellung auf eine Version in Java machte. Ich exportierte die Daten aus der Tabelle, schrieb eine Konvertierungsroutine, die mir meine Daten in mein neues Format umsetzte. Nach einiger Zeit war dann die V2.0 fertig und ich verbesserte und erweiterte das Programm noch bis zur V2.4 und immer mehr stolperte ich über Unzulänglichkeiten in meiner Programmarchitektur. Da sich meine Kenntnisse nur auf das AWT bezogen, ich aber das Programm komplett mit Swing programmiert hatte, waren mir Begriffe, wie das Model-View-Controller-Konzept völlig unbekannt.
Also warf ich alles über den Haufen und begann mit einer kompletten Neuprogrammierung, diesmal mit den frisch erworbenen MFC-Kenntnissen. Am 8.8.2001 ging die neue Version (mittlerweile 3.0) an den Start. Ich sicherte immer noch regelmäßig die Daten, um eventuelle Instabilitäten abfangen zu können. Diese Version entwickelte ich kontinuierlich weiter, baute zusätzliche Informationen ein (Coveranzeige, Listendruck), beseitigte Fehler und dachte mir neue Sachen aus, die ich Stück für Stück implementierte. Derzeit läuft mein Programm in einer Version, die ich im Februar 2002 erstellt habe. Fehler weißt das Programm keine großen mehr auf. Es sind wieder diese kleinen Detailfragen, die man eigentlich korrigieren müßte, aber wo die Motivation fehlt, einen solch kleinen Bug zu beseitigen. Also bleibt es liegen. Außerdem ist der Code grauenhaft – nicht dokumentiert, öffentliche Variablen und ich arbeite immer noch auf einer Textdatei, die beim Programmstart geladen wird und beim Beenden gespeichert.
Die derzeit von mir favorisierte Variante liegt darin, eine C#-Lösung zu programmieren, die endlich wieder mit einer Datenbank kommuniziert. Möglich wäre das ja relativ schnell, da es mit der Microsoft Visual C# 2005 Express Edition auch noch einen MS-SQL-Server gibt. Jetzt fehlen nur noch praktische Erfahrungen im Bereich der C#-Programmierung, die ich wohl demnächst machen werde.
Was sonst noch so passierte…
Am Freitag abend betrieb ich erstmal intensive Mindmap-Pflege. Die alte Mindmap verstaubte schon langsam und es wurde höchste Zeit, dass ich sie reaktiviere. Also hieß es: alte Punkte löschen, neue Punkte hinzufügen, Listen aktualisieren (meine Zeitungsliste ist enorm geschrumpft) und die Planung für die nächsten Tage machen. Was in meinem Kopf für enormes Chaos gesorgt hat und wo ich die Hälfte zum Teil schon wieder bald vergessen hätte, sieht aufgeschrieben sofort machbar aus und ich werde wieder daran erinnert.
Während mich meine Mindmap jetzt also gerade daran erinnert hat, dass ich doch für morgen ein paar Releases zum Durchhören herunterladen wollte, habe ich gerade noch die letzte Uhr (nämlich das Telefon) auf den neuesten Stand gebracht. Wir erinnern uns:
Spring forward & fall back
Auf das letzte Novemberwochenende hat sich unsere Runde geeinigt, noch einmal in diesem Jahr eine LAN-Party zu machen. Um unsere strategischen Runden noch etwas aufzupeppen und im Notfall zu einem taktischen Ablenkungsmanöver überzugehen, fehlt eigentlich nur noch ein USB-Missile-Launcher. Das Teil kann via USB angeschlossen und per Mausklick abgefeuert werden. Wenn der Preis von 59,- Euro nicht doch etwas überteuert wäre.
Außer man heißt Charles Simonyi und gehört zu den 400 reichsten Menschen der USA (laut Forbes-Magazin). Der trainiert ja schon eifrig für seinen Weltraumflug und reiht sich damit in die Reihe von Weltraumtouristen ein. Bekannt dürfte er dem Normalanwender nicht sein, sollte er aber. Schließlich sind unter seiner Leitung in der Microsoft Anwendungsentwicklung Word und Excel, als auch der Vorgänger zu Excel -Multiplan- entstanden. Später versuchte er mit seinen Forschungen im Bereich “Intentional Programming”, den Programmieren die Arbeit zu erleichtern. Unter Intentional Programming versteht man vereinfacht gesagt, dem Anwendungsentwickler die Arbeit dahingehend zu erleichtern, dass er sich weniger um die Codierung Gedanken machen muss, sondern sich auf die Beschreibung der Problemlösung Gedanken machen kann. Hier ein Ausschnitt aus einem Vortrag von Lutz Roeder, an dem man sich besser vorstellen kann, was mit Intentional Programming gemeint ist. Die Forschungsarbeiten wurden aber eingestellt und Charles Simonyi gründete eine eigene Firma, um die Forschungen fortzusetzen.
Tools in der Entwicklungsumgebung
Für den Normalsterblichen sind Softwareentwickler wie eine eigene Spezies, die den Sprung in ein Leben jenseits von Raum und Zeit geschafft haben. Tag und Nacht, Arbeitswoche oder Wochenende – ihr Leben scheint sich nur um Computer zu drehen. Selbst wenn sie sich in ihrer Freizeit zu kleinen Grüppchen zusammenrotten, handelt es sich meistens um Computerbezogene Probleme, die da besprochen werden. Wer sind diese Menschen, die sich scheinbar Tag und Nacht hinter Bergen aus Monitoren, Rechnern und mit ominösen Krakeln beschriftetem Papier verbergen?
Auf der Seite der Programmierer wundert man sich über die verwunderten Blicke, die einem zugeworfen werden, wenn man versunken in Gedanken über die Lösung eines Problems durch den Gang läuft und jegliche Existenz anderer Lebewesen ausblendet. Man nimmt sie erst wahr, wenn sie vor einem am Arbeitsplatz stehen, von ihren Problemen berichten, welche die neue Erweiterung mit sich gebracht hat und deren Unverständnis, warum man sich weigert, die Funktion des zeternden Anwenders nicht zu implementieren, weil die Effizienz zwischen mehreren Wochen Programmierung und 5 Minuten Zeitgewinn pro halbem Jahr einfach nicht gerechtfertigt erscheint.
Jeder Programmierer ist sich dessen bewußt, dass er ohne die Anwender keine Arbeit hätte, aber manchmal träumt er davon, dass es zu der Lösung, die er sich gerade ausgedacht hat, auch ein Problem geben müßte, das unbedingt umgesetzt werden muss. Deswegen reagieren sie auch unwirsch darauf, wenn ein Anwender kommt und daran etwas auszusetzen hat. Programmierer sind deshalb wie kleine verletzte Gottheiten zu behandeln, die sich auf die Erde verirrt haben. Jeder Anwender wäre erstaunt, wie milde man einen Programmierer stimmen kann, wenn man ihm eine kleine Aufmerksamkeit zukommen läßt und wie bereitwillig er sich auf einmal zur Kooperation zeigt. Hier ein paar Vorschläge zur Konfliktvermeidung beim nächsten Treffen zwischen Programmierer und Anwender.
Softwareentwickler trinken Kaffee. Ja, es gibt auch die Fraktion der Teetrinker, aber die meisten ziehen halt doch das schwarze Lebenselixier vor. Programmierer suchen während ihrer Arbeit immer den “Flow”. Es ist der Moment der Einheit zwischen Programmier und seinem Code. Ob es einen wissenschaftlichen Zusammenhang zwischen dem “Flow” und Kaffee gibt, sollte mal untersucht werden. Fest steht: Es ist verdammt schwer reinzukommen, wenn man ständig aufstehen muss oder gestört wird. Deswegen sollte Kaffee immer in ausreichenden Mengen zur Verfügung stehen. Ob der Kaffee noch kochend heiß getrunken wird oder auch kalt noch als genießbar empfunden wird, liegt im Auge des Genießenden. Es ist aber eine Tatsache, die für Programmierertassen gilt: Je größer, desto besser – mit kleinen Näpfchen zieht man sich eher den Zorn des Programmierers zu. Ich empfehle deshalb das Modell Xtra Large zu schenken, am besten randvoll gefüllt. Und man tut auch gleich etwas für die Umwelt, denn Kaffee gehört ja zu den nachwachsenden Energiequellen!
Informatiker stehen ja unter dem Verdacht, nicht besonders kommunikativ zu sein oder sich nur schwer verständlich machen zu können. Wer aber mal das programmierende Volk unter sich beobachtet hat, kommt schnell zu der Einsicht, dass es dort stellenweise schlimmer zugeht, wie bei Tante Elsbeths Kaffeekränzchen. Dabei ist es ja auch klar, dass ein Programmierer nur ungern seine wertvolle Zeit verschwendet, einem unbedarften Anwender seinen letzten fiesen Hack zu erklären, wenn der nicht mal weiß, was ein Kontextmenü ist. Außerdem gehören Programmierer ja nicht nur zur schreibenden Zunft, sondern sind Künstler, die geschickt kleine Buchstabenketten verbinden, um den Millionen von Transistoren ein schönes Bild oder Wunderwerke auf Papier zu entlocken. Deswegen outet man sich gern, jedoch nicht nur deswegen, sondern auch um seinesgleichen sofort zu erkennen. Und als kleine Gottheit genießt der Programmierer den fragenden Blick des Anwenders auf das T-Shirt, verbunden mit der Frage “Was bedeutet denn das?”
Und mit einem Mißverständnis muss noch aufgeräumt werden – der Programmierer und sein Computer haben nicht die harmonische Beziehung, wie es nach außen wirkt. An schlechten Tagen kriselt es doch ziemlich heftig zwischen den beiden, aber eine Trennung ist schlecht möglich, handelt es sich doch um eine Berufsehe. Diese Berufsehe zwischen Programmierer und einem Blechwesen mit einem Herz aus Silizium sorgt stellenweise für reichlich Spannung, da der Computer das wohl sturste Wesen ist, was man sich vorstellen kann. Selbst die schmollende Superzicke verblasst im Schatten eines Computers, der einen kryptischen Fehler ausgibt, den es tagelang zu beheben gilt. Bevor ein Programmierer seine schlechte Laune an die Umwelt weitergibt, empfiehlt es sich den Konflikt etwas eskalieren zu lassen. Der Monitor ist zwar ein peripheres Ziel, eignet sich trotzdem für gezielten Aggressionsabbau mit dieser aufblasbaren Keule. Anfänglich wurde ich müde belächelt für dieses Entwicklungswerkzeug, aber mittlerweile wird sie doch sehr gern mal ausgeliehen und gehört somit in den Schreibtisch eines jeden Softwareentwickler. Aber Vorsicht: Nach Einsatz unbedingt wieder wegräumen, ein nicht eingeweihter Anwender könnte es als Akt der Bedrohung wahrnehmen.
Ich hoffe, ich konnte ein wenig damit aufklären, dass Programmierer auch nur Menschen wie du und ich sind
Nachtrag: Ich habe den Titel mal geändert, denn es hat ja weniger mit Geschenke zu tun. Mir ging es ja mehr um die Kommunikationsschnittstelle Mensch – Programmierer und welche Werkzeuge dort zum Einsatz kommen.
Natürlich habe ich noch das wichtigste vergessen: Der Programmierer sucht nach Identifiktion, dass heißt ein Vorbild, welches mit ihm leidet und seinen Schmerz in Sachen Wünsche und Forderungen von Seiten des Managements und der Anwender kennt. Das kann nur einer – Dilbert.

Scharfes Wissen
![]() |
Schon mal als Vorbereitung auf nächstes Jahr sollte ich mal einen Blick auf C# (Sprich: C Sharp) werfen. Also werde habe ich mir schon mal den Link zum Download Expressedition vom Visual Studio 2005 herausgesucht. Eben habe ich gerade meinen Kollegen nebenan besucht, der als einziger C# programmieren darf (… muss … soll) und fragte ihn nach Buchtipps für den Einstieg. Zielsicher ging er zu seinem Bücherregal, schnappte die zwei C#-Bücher, die dort standen und meinte: Da, schenk ich dir! Hab ich irgendwas gutes getan oder im Lotto gewonnen? | ![]() |


