Crow's NestMQTT

Crow’s NestMQTT and the Vibe Engineering Adventure

In the world of (Industrial) Internet of Things (IIoT), MQTT is a widely adopted messaging protocol. Whether you’re debugging a flaky device or trying to understand system-wide message flow, a good MQTT client is a lifesaver.

There are many excellent MQTT clients available—like MqttExplorer, MQTTX, mqttui, and the classic mosquitto_sub. However, none quite met my specific needs. That kicked off a wild journey: building my own client, Crow’s NestMQTT, while exploring how Generative AI can accelerate software development.


AutoHotkey

Durch Scott Hanselman’s Blog Artikel 2014 Ultimate Developer and Power Users Tool List for Windows. bin ich auf AutoHotkey aufmerksam geworden. Es biete wie AppleScript unter Mac OS X, die Möglichkeit verschiedene (lästige) Aufgaben zu automatisieren bzw. Programme um Funktionalitäten zu erweitern.


Damit könnte man zum Beispiel einen beliebiges Programm mit einer Eingabemaske um Snippets erweitern. Als Besonderheit können AutoHotkey-Skript auch in eine ausführbare Datei kompiliert werden und somit auf Rechnern ohne AutoHotkey verwendet werden.


Muss es immer die 100% Lösung sein?

Ich behaupte einfach mal, dass man sich in der Softwareentwicklung schnell in zu aufwendigen Lösungen verliert. Zumindest mir geht es regelmäßig so, ich habe einiges an Software entwickelt und Artikel geschrieben die nie veröffentlicht wurden (obwohl sie dafür gedacht waren). Der Grund für die nicht Veröffentlichung war, dass sie meiner Meinung nach nicht komplett waren oder meinen eigenen Ansprüchen nicht genügten.

Das soll nicht bedeutet das die Artikel zu schreiben oder die Software zu entwickeln Zeitverschwendung war. Ganz im Gegenteil es ist immer beeindruckend wie viel man lernen kann, sobald man sich mit etwas anderen beschäftigt als den Arbeitsthemen. Die dabei gewonnenen Erkenntnisse sind, vielleicht auch für andere Interessant (ist schon ab und zu vorgekommen ;)). Daher resultiert für mich die Frage Muss es immer die 100% Lösung sein? wobei die simple Antwort Nein ist. Um Unklarheiten vorzubeugen damit ist nicht gemeint, dass man nur 80% der Anforderungen erfüllen soll. Vielmehr geht es um Erkenntnisaustausch/-gewinn.


Eindruck und Gedanken zu Mac OS X

Durch den Wunsch ein neues Notebook zu kaufen, stand ich vor der Wahl Linux, Windows oder Mac OS X. Da ich auf Arbeit Windows einsetze und früher in meiner Freizeit viel mit Linux (Ubuntu, Debian,  Linux Mint, Fedora) bzw. BSD (FreeBSD) gearbeitet habe ist die Wahl des Betriebssystems auf Mac OS X gefallen. Und die Wahl der Hardware auf ein Mac Book Pro 13,3" gefallen. Ich gebe zu das es mich immer interessiert hat zu Erfahren, warum Niemanden den ich kenne, sein Mac OS X Gerät missen möchte. In diesem Beitrag werde ich etwas über meinen Ersten Eindruck erzählen.


Immutable Objects am Beispiel von Passwort Hantierung in Java

In Java sind Strings „Immutable Objects“ (unveränderliche Objekte),
dass bedeutet sie werden zur Laufzeit nicht mehr geändert.  Immutables Objects haben viele Vorteile:

Sicherheit ist ein gutes Stichwort, denn Immutable Objects können auch Sicherheitsprobleme mit sich bringen. Schauen wir uns einmal Passwörter bei Java an. Diese sollten niemals in einem String gespeichert werden, da sie solange der String im Speicher existiert, im Klartext im Speicher stehen. Die allgemeine Empfehlung in verschiedenen Security Guides lautet daher Passwörter nur als Char-Array zu hantieren und sobald man das Passwort nicht mehr benötigt, den Inhalt dieses Array zu überschreiben. Überschreiben funktioniert mit Immutable Objects nicht, was ein Passwort in einem String zu einem Sicherheitsrisiko werden lässt.