Stackoverflow.com

stackoverflowDie Entstehung der Seite verfolge ich bereits seit über einem halben Jahr als Abonnent des Stackoverflow Podcasts, aber selbst angemeldet habe ich mich erst später. In der Seite geht es um nichts als das Stellen und Beantworten von Programmierfragen. An sich nichts weltbewegend neues, aber die unheimliche Dichte von Experten stellt sicher, dass sogar schwierige Fragen meist schnell beantwortet werden könnten. Und durch das motivierende Punkte und Auszeichnungen-System nehmen sich die Experten auch tatsächlich die Zeit, die Fragen tatsächlich zu beantworten. Etwas frustrierend ist, dass man als Anfänger (bevor man 50 Punkte hat) sogut wie gar nichts auf der Seite machen darf. Heute habe ich diese Grenze endlich überschritten, und werde versuchen die Seite in Zukunft noch öfter zu nutzen, sowohl um Fragen zu stellen, als auch um mich am Beantworten anderer Leute Fragen zu beteiligen.

Ich würde behaupten, dass jeder Softwareentwickler oder Informatiker sich die Stackoverflow zumindest mal angesehen haben sollte.

Ode an mein iPhone

Das iPhoneMittlerweile besitze ich mein iPhone seit etwa einem halben Jahr, und ich muss sagen, es ist den Preis (den mein Vater berappt hat:P) vielfach wert, zumindest für mich.

Das Gerät ist schon recht nah dran an den Systemen, die ich aus Science-Fiction Büchern kenne. Ich nutze es zum Telefonieren (selten und knapp, wie es meine Art ist^^), gelegentliches E-Mail lesen und Websurfen (nur wenn kein PC erreichbar ist allerdings), zum Spielen, zum Musik-, Literatur- und Podcast-Hören. Die Map-Funktion samt GPS sorgt dafür, dass ich mich deutlich seltener verlaufe oder verfahre, ich kann jederzeit dringend benötigte Infos im Netz suchen, und obwohl die Foto-Qualität recht mäßig ist, mache ich auch meine Fotos damit.

Kein Wunder, dass ich nicht einmal daran denken möchte, mein iPhone zu verlieren oder kaputt zu machen. Gestern abend hatte ich einen Schockmoment, als es mir weggerutscht und aus etwa 1,30 Meter auf den Steinboden gefallen ist. Beindruckenderweise hat es nicht einmal eine Delle davongetragen. Ich werde das trotzdem nicht zur Angewohnheit werden lassen;)

Die Bindung an T-Mobile und an iTunes, und die Unfähigkeit, Ogg-Vorbis- und insbesondere WMA-Dateien abzuspielen, mögen einige Leute abschrecken, aber ich nehme das in diesem Fall gern in Kauf. Über die genial-intuitive Bedienbarkeit des Touch-Displays wurde ja schon geschrieben, ich kann mich dem nur anschließen;)

Die Trade-Deadline rückt näher

vladimir_radmanovic. photo by michael248Die angespannte Wirtschaftslage lässt auch die NBA nicht kalt. Es wird gemunkelt, dass Teams, die dieses Jahr nicht um den Titel mitspielen werden, durch Trades die Ausgaben in Zeiten sinkender Ticket-Einnahmen reduzieren möchten, was für die Favoriten eine Chance ist, sich noch einmal zu verstärken. Bei den Suns wird sowohl ein Trade von Amare wie von Shaq für Möglich gehalten, ebenso könnten auch T-Mac oder Lamar Odom ein neues Zuhause finden. Sogar Chris Bosh könnte in einem Monat in einem anderen Team spielen. Interessant wird auch sein, wie die Magic und Sixers auf die schweren Verletzungen von Jameer Nelson und Elton Brand reagieren werden. Die Deadline müsste Ende Februar sein.

Ein Trade hat bereits statt gefunden:

The Charlotte Bobcats have traded Adam Morrison and Shannon Brown to the L.A. Lakers in exchange for Vladimir Radmanovic.

Nicht wirklich sehr spannend. Beide Spieler in L.A. werden wohl im wesentlichen die Bank wärmen und Radmann wird vielleicht ein paar ganz solide Stats in Charlotte abliefern, ohne dass die Bobcats plötzlich ein Playoff-Team werden.

Futures und Forwards

eschersheimerlandstrasse6Das Bild zeigt übrigens die Aussicht aus dem Fenster im Büro bei mir auf der Arbeit, und hat thematisch nichts mit dem Post zu tun. Aber bunte Bilder kommen immer gut.

Futures sind schon ein recht altes Finanzprodukt. Im Prinzip geht es darum, den Preis für eine bestimmte Transaktion schon im Voraus festzulegen. Beispielsweise könnte ein Bauer, um das Risiko schwankender Preise zu reduzieren, mit einem Abnehmer einen Future-Vertrag über 2 Tonnen Getreide zum Preis von 10ct pro Kilogramm, fällig im August, abschließen. Wenn der Marktpreis zu diesem Zeitpunkt niedriger ist, als der vereinbarte Preis, macht er einen Gewinn, wenn es andersherum ist, einen Verlust. Der Vorteil aus der Sicht des Hedgers ist aber, dass man Preise hat, mit denen man planen und rechnen kann.

Aus der Sicht des Spekulaten haben Futures den Vorteil, dass man mit deutlich weniger initalem Kapitaleinsatz den gleichen Gewinn (oder, wenn es schlecht läuft, Verlust) erzielen kann wie wenn man beispielsweise sofort Aktien kauft (Hebelwirkung). Schließlich muss, abgesehen von einem verhältnismäßig kleinem Vorschuss (Margin), erst zum Schluss bezahlt werden.

Forwards funktionieren nach dem gleichen Prinzip, aber es gibt einige Unterschiede im Detail zwischen den beiden Vertragsarten:

  • Futures werden an (Warentermin-)Börsen gehandelt, Forwards nicht
  • Aufgrund dessen sind die Eigenschaften der gehandelten Güter bei Futures sehr genau standardisiert, bei Forwards können Details direkt zwischen den Vertragspartnern ausgehandelt werden
  • Futures werden in der Regel „glattgestellt“, das heißt, die Ansprüche auf die Ware werden verkauft, bevor es zur Lieferung kommt

Periodic.csv

periodicAls Nebenprodukt der Entwicklung des Molrechners ist eine CSV (Comma separated values, die einfachste Methode, Tabelleninhalte in leicht zu parsenden Textdateien zu speichern)-Datei des Periodensystems der Elemente entstanden, die ich aus einer deutlich umfangreicheren XML-Datei gewonnen habe. Die Tabelle hat nur vier Spalten:

Name, Masse, Ordnungszahl, Symbol

Also zum Beispiel:

Oxygen,15.9994, 8, O

Vielleicht kann ja irgendwer das irgendwann noch mal gebrauchen:
periodic.csv

Niederlage in Bad Homburg

Nachdem wir Zeuge wurden, wie die weibliche U14 von Bad Homburg die armen Mädchen vom TV Hofheim mit 124:18 bezwang, mussten wir selbst gegen Bad Homburg antreten (Allerdings nicht gegen die U14^^). Dank zahlreicher Tournovers und reichlich Wurfpech zu Beginn der zweiten Halbzeit waren wir allerdings beinahe ebenso chancenlos wie die Mädchen aus Hofheim: Mit 59:73 ging die Partie gegen den Tabellensiebten verloren. Wobei ich schon anerkennen möchte, dass die Bad Homburger auch einfach die bessere Mannschaft hatten und wirklich gut gespielt haben: Mit ihrer Trap-Defense haben sie reichlich Turnover erzwungen(auch von mir :(), und in der Offensive haben sie sich deutlich treffsicherer als wir gezeigt. Da hat unsere Überlegenheit am Brett letztendlich auch nichts mehr gebracht.

Vor dem Ende der Saison stehen noch weitere 4 Spiele aus. Wenn man auf die Tabelle schaut, deutet sich doch sehr deutlich an, dass wir die Saison auf dem 8. Tabellenrang (von 10 Teams) beenden werden: Die Teams unter uns werden uns nicht mehr einholen, und die Teams über uns sind (Homburg wegen des direkten Vergleichs) nur bei einer perfekten Ausbeute noch erreichbar. Nun weiß ich allerdings nicht, ob der 8. Platz zum Klassenerhalt reicht, aber da die Kreisliga B unter uns genauso zweigleisig wie die Kreisliga A ist, würde es mich doch sehr wundern, wenn es drei Absteiger gäbe.

Molrechner

Da die „Kluge Bücher lesen“-Variante zum Lernen von C++ mir nicht wirklich viel Spass gemacht hat, wollte ich mich trotz meiner lückenhaften Kenntnisse doch einfach mal in ein kleines Projekt stürzen. Wenn ich eine Sache gut kann, dann ist das trivial winzige Programme zu konzeptionieren. In diesem Fall hat das Programm genau ein einziges Feature;)

Man tippt ein Molekül in der Symbol-Schreibweise in eine Maske ein und bekommt (wenn die richtigen Symbole verwendet wurden) die molare Masse des Moleküls oder einfach der Summe aller Atome zurück. Und das wars auch schon.
molrechner

Das Programm checkt auch nicht, ob die eingegebenen Moleküle so möglich sein könnten, wie die folgende Kreation zeigt:
molrechner2

Trotz der Einfachheit musste ich schon ein paar Zeilen programmieren, um die Idee umzusetzen. Folgende Teilaufgaben muss der „Molrechner“ also erfüllen:

  • Die Information zu den Namen und Gewichten der Atome kommt aus einer einfachen Textdatei, die zu Beginn des Programms ausgelesen wird.
  • Das Molekül wird auseinandergenommen(also die Zeichenkette, die das Molekül repräsentiert, ich habe mich für die Programmvariante ohne physische Simulation entschieden^^) und die einzelnen beteiligten Atome ermittelt. Dabei wird die Annahme getroffen, dass das erste Zeichen und NUR das erste Zeichen eines Symbols in Großschreibung ist, dass es keine Leer-oder Sonderzeichen gibt, und dass die Anzahl der Atome eines Elements immer direkt auf das Symbol folgt. Nach meinen mageren Chemie-Kentnissen ist das in der Regel der Fall
  • Das Fenster und die Buttons müssen erzeugt werden und die Widgets auf Aktionen reagieren. Bei der GUI (Graphical User Interface)-Gestaltung war Visual Studio aber recht hilfreich, weswegen das kaum Aufwand für mich war

Das Programm sollte eigentlich bei allen Windows Vista Usern und allen XP-Benutzern mit der .NET Runtime funktionieren.

Download Molrechner (0,5MB)
Ich habe den (nicht zum Vorbild geeigneten) Source-Code mal dazugepackt.

C++ in Visual Studio

Joel Spolsky, den ich wohl als einen meiner Vorbilder bezeichnen würde, hat mehr als einmal geschrieben, dass er das Sich-Herumplagen mit Pointern und Speicherverwaltung und dem ganzen Low-Level Zeug, mit dem ich mich als verwöhntes Java-Kid nicht wirklich beschäftigen muss, für eine gute Methode hält, Computer besser zu verstehen. Wer will das nicht? 😉

Also habe ich mich mit dem Kerningham-Ritchie-Klassiker The C Programming Language beschäftigt, so wie ich es meistens tue: Voller Ungeduld die Seiten überfliegend, alle Übungsaufgaben auslassen und dann in der Mitte des Buches ganz die Motivation verlieren und nur noch die ersten Zeilen jedes Kapitels lesen. Weil es so schön war, und ich noch ein paar weitere komplizierte Konzepte oberflächlich ankratzen wollte, habe ich die gleiche Strategie bei Bruce Eckels „Thinking in C++“ angewandt. Ich glaube schon, dass ein paar Fetzen hängengeblieben sind, aber noch mehr ist sicherlich an mir vorbeigerauscht.

Ich lerne wahrscheinlich besser, wenn ich selber machen kann. Herumspielen mit dem Compiler ohne klares Ziel will ich aber auch nicht, schließlich will ich ja total produktiv sein. Also habe ich mir ein winziges Projekt vorgenommen habe, um ein bisschen zu üben. Und um nachher sagen zu können, eine Anwendung in C++ geschrieben zu haben. Dazu später mehr.

Als Entwicklungsumgebung habe ich mich für Microssofts Visual Studio Express entschieden. Es ist natürlich ungerecht, weil ich Eclipse schon seit Jahren benutze und ich damit mittlerweile wirklich gut umgehen kann, aber Eclipse ist IMO einfach die bessere IDE. Und Java mag ich definitiv lieber als C++. Alleine das man beim C/C++-Entwickeln ständig manuell den Compiler anschmeißen muss, um simpelste Syntax-Fehler zu entdecken, nervt schon etwas. Und ich mache (noch) wahnsinnig viele Syntax-Fehler;)

Auch wenn es also wahrscheinlich nicht die große Liebe wird, möchte ich doch zumindest ein paar weitere oberflächliche Eindrücke sammeln und darüber schreiben, bevor ich mich wieder in das warme Java-Nest lege;)

Derivate

Frankfurt Skyline aus OstenDa ich ja immerhin bei einem Beratungsunternehmen für Banken arbeite, wäre es schon ganz gut, wenn ich eine grobe Vorstellung davon habe, was die eigentlich machen. Also habe ich mir „Einführung in Futures- und Optionsmärkte“ von John C. Hull ausgeliehen, was offenbar als Standard-Werk in der Branche akzeptiert ist. Ich versuche tapfer darin zu lesen, aber wie mein Kollege Matthias Ewald richtig erkannt hat, bringt das Lesen von Wikipedia-Artikeln und ähnlichen kompakten Quellen den größten Wissen/Zeit Quotienten;)

Derivate sind Verträge, die das Recht garantieren zu einem fixen Preis zu kaufen oder zu verkaufen. Die Preisbildung basiert auf einer marktabhängigen Bezugsgröße (Basiswert oder Underlying)

http://de.wikipedia.org/wiki/Derivat_(Wirtschaft)

Derivate kann es auf verschiedenste Vermögenswerte geben: Landwirtschaftliche Produkte, Rohstoffe, Aktien oder auch Geld in verschiedenen Währungen.

Offenbar gibt es vier wesentliche Arten von Derivaten und etliche weitere Formen, die sich aber als Abwandlungen oder Kombinationen dieser vier Varianten verstehen lassen. Als da wären:

  • Futures
  • Forwards
  • Swaps
  • Optionen

Zu diesen Finanzprodukten sind in Zukunft noch weitere Posts geplant.

Die Motivation zum Handel mit diesen Werten kann ganz unterschiedlich sein. Hull [Hull1998] unterscheidet zwischen drei Arten von Marktteilnehmern:

  • Arbitrageure sind auf risikofreien Gewinn aus. Das ist unter Umständen möglich, wenn z.B. in der NY-Börse rote Kugelschreiber deutlich höher gehandelt werden als in Frankfurt. Theoretisch könnte man rote-Kugelschreiber-Futures in Frankfurt kaufen und mit Gewinn in New York verkaufen. Da das selbstverständlich jeder gerne machen würde, ergeben sich in der Praxis aber selten Gelegenheiten, solche Arbitrage-Gewinne zu erzielen.
  • Hedger sind an einer Reduzierung des Risikos interessiert. Wenn ein Pharao beispielsweise den Bau einer Pyramide in einem Jahr beginnen lassen möchte, könnte er sich eine Option kaufen, die sicherstellt, dass er 1000 Sklaven zum Preis von je 10 Kilo Salz bekommen kann. Dadurch umgeht er das Risiko, dass der Preis durch unvorhergesehene alttestamentische Ereignisse in die Höhe schnellt.
  • Spekulanten auf der Gegenseite suchen das Risiko, und versuchen aus dem für sie günstigen Verlauf der Kurse Gewinn zu schlagen. Sie werden nur dann in einen Vermögenswert investieren, wenn sie daran glauben, dass diese Investition Gewinn abwerfen wird. Im oben beschriebenen Szenario könnte ein Spekulant, der voller Zuversicht in Frösche investiert hat, allerdings ganz schön „im Regen“ stehen.

Abstiegskampf

Die Rückrunde der Kreisliga A hat vorletztes Wochenende begonnen, und unsere abstiegsgefährdete 2. Mannschaft der FTG konnte sich mit zwei Siegen aus 2 Spielen wieder etwas Luft verschaffen. Die Gegner waren dabei „Gymnasium Oberursel 2“ und „Gymnasium Oberursel 1“. Das finde ich immer noch etwas komisch, dass es in Hessen scheinbar niemanden stört, wenn mehrere Teams eines Vereins in einer Liga spielen. Das schreit doch förmlich nach Manipulation;)

Ein Blick auf die Tabelle zeigt, dass der Klassenerhalt jetzt doch durchaus möglich sein sollte (Zum Zeitpunkt dieses Posts wurde einer unserer Siege noch nicht eingetragen).