Neben Exceptions ist Threading ein weiteres Thema, welches viel Kopfweh bereiten kann. Bei Exceptions hat man oft gute Erfolgschancen zu verstehen, was schief gegangen ist. Bei e.g. Race-Conditions schauts relativ schlecht aus. Man kann es oft lokal nicht nachstellen oder sieht nur die Auswirkung – die Ursache zu finden ist dann meist unmöglich. Neben den Bugs gibt es aber auch positive Aspekte: die Applikation wird performanter, denn moderne CPUs haben viele Kerne.
Tag 1 Es ging von Baden über den Wienerneustädter-Kanal Richtung Truppenübungsplatz Großmittel. Danach muss man ein wenig auf Ladendesstraßen fahren – aber man gelangt anschließend wieder schnell auf wunderschöne Radwege. Es geht dann auch zeitweise durch den Wald (Drassburger Wald). Ist man mal so weit gekommen, ist es nicht mehr weit nach Sopron. Der Grenzübergang ist 1 Blechcontainer mit einem Grundwehrdiener. Sopron ist in meinen Augen eine sehr schöne Stadt und man sollte hier mindestens eine Nacht schlafen. Essen kann hier wärmstens Papa Joe empfehlen – ein wirklich sehr gutes Steak House.
Tag 1 Es ging mit dem Zug nach Mürzzuschlag. Von Mürzzuschlag ab Bahnhof ist die Große-Scheibe dann schon angeschrieben und durch steile asphaltierte Straßen geht es dann zum Beginn des Waldweges. Man gelangt dann recht flott in die Nähe der großen Scheibe. Da man in der Ferne Waldarbeiten hörte und wir auch ausgeschlafen hatten und die Zeit drückte – ging es gleich weiter Richtung Prainer-Gschaid. Der Weg ist sehr schön – er wechselt zwischen Forststraße (nicht störend) und schönen Waldwegen. Nach dem Prainer-Geschaid geht es über den Schlangenweg zum Karl-Ludwig-Haus. Die Reste einer Lawine machten es nicht gerade einfach. Die 3-4 Meter hohen Schneetürme musste man bezwingen - wäre ok – wenn nicht soviel Erdreich oben gewesen wäre – es wurden ganze Latschen aus dem Erdreich gerissen. Das Karl-Ludwig-Haus ist ein kulinarischer Leckerbissen – sehr gute Bio essen. Die Nacht war etwas kalt – aber ok.
Tag 1 Es ging mit dem Nachtzug von Wien nach Rom. Ich habe in einem 4rer Liegeabteil geschlafen – 89 EUR Sparschiene – war sehr ruhig in der Nacht – daher konnte ich schlafen – war ok. Die meisten Leute stiegen schon vorher aus. Auf der Reise nach Rom haben wir dann mehr als 1 Stunde Verspätung aufgerissen – daher musste ich dann den langsamen Zug nach Salerno neben – dafür hab ich aber sehr viel Geld gespart (29,90 EUR statt 40 EUR+ mit dem Frecciabianca).
Im Laufe meiner Arbeitskarriere bin ich immer wieder auf 1 Problem gestoßen: Komponente A hat einen State, andem andere Komponenten interessiert sind. Ich hab schon die unterschiedlichsten Lösungen gesehen:
DataTables mit RowChanged und anschließend über .NET Remoting Events raus WCF Events .NET Sync-Framework Auch habe ich im Laufe meiner Arbeitskarriere immer wieder die gleichen Probleme gesehen:
Bug gemeldet: State in Komponenten X passt nicht: erwartet wurde State 1 - aber State ist 2. Wie kam es zu State 2? Was waren die vorhergehenden States? Als Entwickler kann man jetzt die Log durchforsten und sich die Stimuli von Komponenten X “raussuchen” und hoffen, dass man es irgendwie nachstellen kann. Aber im Regelfall kann man nur mit der Schulter zucken - vermutlich Events durcheinander gekommen. Bug gemeldet: “komisches Verhalten” - es scheinen Events zu fehlen. Das durchschauen der Logs lenkt den Verdacht auf Verbindungsverluste / Service-Neustarts / … Das System steht: Self-Denial Attacks [1] ist der Klassiker. Eine Zentrale Komponente, bei der sich andere Komponenten registrieren. Startet diese neu, kommt es meist zu einem Neu-Subscriben - oft umgesetzt mit Snapshot-Delta Strategie. Das belastest dieses zentrale Komponente enorm. Ab und zu ist der Betreuer des Systems dazu gezwungen, Services manuell “langsam” zu starten, damit die zentrale Komponenten nicht “versagt”. Ich hab daraus drei Dinge gelernt:
Begonnen hat alles, dass bei uns zu Haus oft MotoGP lief. Mir gefiel es auch viel besser als Formel1 – hab einige Saisonen jedes Rennen geschaut. Dann kam die HTL-Zeit (Wirtschaft-Maschinenbau) und eine gewisse Grundinteresse an Mechanik und Co begann. Dazu kam, dass ich ja bei HONDA Hütter jeden Tag vorbei ging. Irgendwann habe ich mich dann dazu überwunden, 2 HONDA T-Shirts zu kaufen – das Geld – aber auch die Eier – haben für ein Motorrad immer gefehlt. Wenngleich ich mit den 250er immer geliebäugelt hab – doch dann kam das Studium und dann haben sich die Prioritäten verschoben.
Versuch 1: 400er MHz – die alte, billige – aber unflexible Lösung Schon ab ca. 20 EUR findet man Funksteckdosen, welche auf einer 400 MHz Frequenz mit einer Fernbedienung geschalten werden können. Man kann die Dosen ein- und ausschalten – das wars. Auch gibt es keine weiteren Aktoren, um z.B. eine „normale“ Deckenlampe zu steuern.
Versuch 2: Real Smart-Home für Nachrüster – ZigBee, Z-Wave und EnOcean Schnell stößt man auf diese 3 größeren Standards. Man kann Stunden damit verbringen, sich über google schlau zu machen. Was ich herausgefunden habe: Es ist teilweise eine Kompromisslösung. Man würde denken, wenn zwei Geräte über ein standardisiertes Protokoll kommunizieren, müsste es immer funktionieren. Denkste. Einmal findet das Geräte das nicht, dann kann das Gerät mit dem Profil von dem Gerät wieder nicht umgehen. Dann kauft man ein Gateway um 100 EUR+ und ist auf Entwickler des Herstellers angewiesen, dass diese das Gerät „anlernen“. Kurz meine Findings:
Weihnachtszeit und etwas Zeit sich irgendwas anschauen – da muss auch ein wenig Platz für Entwicklung sein. Diesmal: Wie könnte man einen Teil eines Actor Frameworks im C# Style mit möglichst wenig Aufwand schreiben? Es gibt nichts schlimmeres im Code als ein Threading Massaker. An 1000 Stellen Thread.Run oder new Thread – da läufts jedem Entwickler kalt den Rücken runter, wenn der nächste Bug in Jira anflattert und nur ein Hauch von Race-Condition Problemen aus der Beschreibung herauszulesen ist („Nicht mehr reproduzierbar“, „passiert nur manchmal“ usw.).
Es ging Mitte September nach Madeira. Betrachtet man das Klima, so stellt man fest, dass September der heißeste Monat ist. Auch auf Nachfrage bei Einheimischen wurde das bestätigt – die Sommermonate Juni und Juli waren feucht und neblig – also ideal. Wir hatten immer schönstes Wetter. Das Buch von Rother kann ich uneingeschränkt empfehlen.
Tag 1 Wien – München – Funchal mit Lufthansa. Vor dem Hinflug hatte ich großen Respekt, da der Flughafen von Funschal als einer der schwierigsten gilt. Doch wird hatten mit dem Wind Glück und die Landung war sehr angenehm. Der Flughafen liegt an der Ostküste in Santa-Cruz. Mit dem Taxi (12 EUR) ging es nach Machico – geschlafen haben wir im Dom Pedro – war ok.
Die Anreise von Wien nach Schladming ist langatmig. Geschlafen haben wir hier – kann ich nur empfehlen – fairer Preis und gute Lage. Außerdem bietet das Quartier die Sommer-Card an – damit gibt es viele Vergünstigungen – die Busfahrten sind sogar gratis. Mit dem Bus ging es am nächsten Tag in die Ramsau – Endstation Gletscherbahn. In 45 Minuten gelangt man zur Südwandhütte. Zimmer waren ok, Aussicht unbezahlbar und das Essen hervorragend. Am nächsten Tag geht es im 30 Minuten zum Einstieg des Anna-Steigs.