Smart Home – klingt doch einfach ...

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:

Playing with TPL

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.).

Madeira - die Blumeninsel

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.

Dachstein Super Ferrata

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.

Karnischer Höhenweg

Mit dem Zug ging es nach Vierschach (über Lienz - wobei Wien - Lienz eine Direktverbindung). Geschlafen haben wir hier - Zimmer waren sehr gut und preislich ok. Am nächsten Tag ging es mit der Bahn rauf auf den Helm - Bahn startet bei 1132 Hm und endet bei 2050 Hm - also doch einiges. Weiter geht es über einen sehr schönen Weg zur Sillianer Hütte. Die Hütte wurde gerade umgebaut - schlafen war daher nicht möglich. Allerdings gab es Essen. Der Wirt meinte, dass es sich bis zur nächsten Hütte noch ausgehen sollte - es war Gewitter am Nachmittag angesagt.

Apache Kafka und Co – Ein Ausflug

Erste Station RabbitMQ RabbitMQ ist ein etablierter Message Broker, welcher in Erlang geschrieben ist. Erlang ist für hoch parallele Applikationen interessant, da es jeden Core der CPU mehr als gut ausnutzen kann (1 Thread pro Core – Erlang Prozesse kann man Millionen machen – siehe Actor Modell). Wie funktioniert RabbitMQ? Quelle: https://www.cloudamqp.com Dieses Bild zeigt die Funktionsweise: Eine Nachricht wird an einen Exchange geschickt. Anhand von konfigurierten Bindings wird die Nachricht an eine Queue weitergeleitet:

Wandern auf Elba

Tag 1 Es geht mit dem Nachtzug (NJ1237) nach Livorno Centrale. Diese Linie verkehrt nicht das ganze Jahr, sondern erst ab April. Der Preis pro Person und Richtung war 69 EUR für einen 4rer Liegewagen. Tag 2 Livorno war von der Stadt jetzt nicht so berauschend (zumindest den Teil den wir gesehen haben). Der Hafen wirkte sehr “industriell” und das restliche Stadtbild machte auch den Eindruck einer Arbeiterstadt. Mit dem Zug geht es dann weiter direkt nach Piombino (ca. 1.5h). Es gibt zwei Möglichkeiten um nach Elba zu kommen: Mit einem großen Schiff (Autotransport möglich) und mit dem Highspeed Boot (20 Minuten Überfahrt). Informationen gibt’s hier. Kosten: 13 EUR

Dies und Das in ASP.NET Core

Immutable Objects aus dem Path Für das nachvollziehen von Fehlern in einem Code gibt es nichts angenehmeres als Immutable Objects, da sie den State nach dem Erzeugen nicht mehr ändern können. Immutable Objects werden per se nicht von .NET unterstützt (durch Reflection kann man sie immer ändern) – aber man kann durch e.g. Private-Setter einen ähnlichen Effekt erreichen. Auch AOP Postsharp bietet ein Immutable Threading Model. In ASP.NET Core musste ich ein wenig suchen – daher hier ein Beispiel:

Ausflug SQL Server

Relationale Datenbanken Ich konnte mich in letzter Zeit mit Microsoft SQL Server auseinandersetzen. Wie im Produkt schon zu sehen ist, spricht dieser Server “SQL” (Structured Query Language). Auch wenn jedes RDBMS einen eigenen Dialekt hat, so sind die Gemeinsamkeiten doch sehr groß. Jemand der in PostgreSQL CRUD-Operationen schafft, wird es auch in SQL Server schaffen. Auch wird man viele Konzepte immer wieder finden: Indextypen (Clustered, Non-Clustered) Interne Funktionsweisen (Heap Tables, Pages, …) Funktionsweise von Transaktion Query Planer (Cardinality Estimation bzw. Table Statistics, …) … Lustigerweise bin ich mit dem Gedanken gleich gegen eine Wand gefahren. Bei gewissen Aufgabenstellungen ist es nicht mehr ausreichend, 10% der Werkzeuge eines Produkts zu kennen – man muss die Werkzeuge verstehen, die SQL Server bietet – und das ist eine Menge. Rückblickend zahlt es sich – je nach Problemstellung – durchaus aus, sich externe Hilfe zu holen. Jemanden zu holen, der eine breite Palette an Werkzeugen und Problemstellungen kennt und Tipps geben kann, mit welchen Werkzeugen man am meisten Chancen hat. Eine Tabelle mit 600 Millionen Datensätze mit diversen Operatoren zu aggregieren ist kein triviales Unterfangen. Vor allem, wenn die Abfrage durch ein Frontend angestoßen wird und der Endbenutzer sich zeitnah eine Antwort erwartet. Auch das Updaten von großen Datenmengen (2 Millionen Datensätzen) in einer Transkation, kann Kopfzerbrechen machen.

Ötscher & Traunstein

Ötscher Es ging mit der Mariazeller Bahn zur Erlaufklause. Von dort führt ein einfacher Weg zum Ötscherhias, wo das Getränk und das Brot nicht fehlen durfte. Danach westlich den 12er Weg weiter. Ein paar Stellen sind eng und abschüssig – aber dann gab es immer Stahlseile zum Anhalten – wenngleich man sie nicht zwingend braucht. Kurz nach den Mirafall zweigt der Weg rechter Hand ab und geht über einen Wanderweg zur Forststrasse hinauf.