Microsoft, Windows. und Programmierung in C

Ich hatte letztens Bedarf nach einem kleinen Helferlein, das unter Windows den Inhalt der Zwischenablage nach bestimmten Kriterien modifiziert. Zunächst wollte ich es schnell in C herunter programmieren, merkte dann aber mal wieder, wie ungewohnt die nativen Funktionen dafür über die windows.h anzusprechen sind und habe es dann - wissend, dass es mit Kanonen auf Spatzen geschossen war - das ganze in ein paar Minuten mit Java umgesetzt. Ich hatte einfach keine Lust, mich je nach Herkunft einer Bibliothek in verschiedene Denkweisen hineinzuversetzen. Und gerade was Microsoft da mit C veranstaltet, sieht manchmal schon fast nach einer anderen Sprache aus.

Frontend Entwicklung: Web Components

Web Components sind eine Anzahl von Web APIs, mit deren Hilfe Entwickler eigene, wiederverwendbare, gekapselte HTML-Tags erstellen können. Diese HTML-Tags können anschließend in Webseiten und Webanwendungen verwendet werden. Komponenten und Widgets die auf den Web Component-Standards aufbauen, werden mit allen gängigen, modernen Browsern funktionieren und können in Kombination mit beliebigen JavaScript-Bibliotheken und Frameworks, die mit HTML arbeiten, verwendet werden. Das Ziel von Web Components ist es, die Art der Einbindung von Plugins in Webanwendungen bis zu einem gewissen Grad zu vereinheitlichen und damit auch zu vereinfachen. Die Kapselung hat den großen Vorteil, dass jegliche Interna des auf dem Web Components Standard aufbauenden Moduls für weitere Elemente in einem HTML-Dokument verborgen bleiben – So lassen sich für Entwickler wie Anwender gleichermaßen lästige Konflikte zwischen Plugins und Scripten die von einer Webseite eingebunden werden elegant und effektiv umgehen.


Threads und volatile

Hier spielen mindestens drei Dinge mit rein:


  1. Darf der Compiler das Lesen/Schreiben einer Variablen im generierten Maschinentext nach oben oder unten verschieben?
  2. Darf die CPU das Lesen/Schreiben eines Registers in der Ausführung vorziehen oder auf später verschieben?
  3. Darf der Compiler das Lesen/Schreiben einer Variablen wekoptimieren?


Apple Hardware

Kollege hat spät 2012er Mac Mini und es ist der beste Computer den der Kollege hatte. i7, 16GB RAM, kleine AMD GPU. 500GB SSD und 2tb HDD eingeschraubt...läuft und läuft unf läuft. macOS und Debian Testing im Dualboot. Die iOS Geräte sind mir zu teuer für das was geboten wird, liebäugel aber mit einem 2018er iPad, die gibt es ja schon gelegentlich für 250€ neu. Hoffe die machen bald mal ernst mit einem neuen MacPro, also wie die alte Käsereibe ein Möbelstück an solider Apple Hardware. Erweiterbar, edelst designed in Sachen Funktionalität.

DApps und Smart Contracts entwickeln

Ich will eine DApp entwickeln und mich mit Smart Contracts befassen. Warum? Weil die ganze Welt in letzter Zeit von DApps und dem Konzept des "Smart Contract" zu reden scheint und ich das bis vor kurzem einfach als das übliche Trend-Rauschen um den angenommenen Krypto Hype abgetan habe. Zwischenzeitlich habe ich jedoch angefangen, mich etwas mit diesen Konzepten zu befassen und finde das Thema eigentlich ganz interessant. Gleichzeitig ist nur lesen ohne programmieren langweilig, deswegen wollte ich nebenher auch ein paar Codezeilen schreiben und etwas entwickeln.

Smart Contracts basieren auf der Blockchain-Technologie. Ich brauche also erst eine Blockchain auf der mein Smart Contract aufbauen kann. Das gleiche gilt für DApps, diese verteilten, dezentralen Anwendungen setzen auch auf eine vorhandene Blockchain als Basis. Bei meiner Suche nach einer geeigneten Chain kamen letztendlich Ethereum und Webchain in die engere Auswahl - Ich habe mich vorerst für Webchain entschieden weil mir diese relativ neue Blockchain vielversprechend und zukunftsträchtig erscheint - Und außerdem, Ethereum macht ja jeder :)


Softwareentwickler Stress

Telefon klingelt. Vertriebsleiter ist dran. Kunde hat ein Problem mit der verkauften Software die ihr herstellt. Er verlangt sofortige Problemlösung oder droht mit Rückabwicklung. Vertragsrahmen ca 280.000 Euro. Nicht viel, macht aber in der Klitsche in der du gerade sitzt diesen Monat 60% des Gesamtumsatzes aus weil einige Projekte nicht gestemmt wurden. Das Problem tritt auf PowerPC auf und ist Hardwarenah.

Du bist der einzige der das Problem lösen kann.

Nebenbei musst du um am Markt Konkurrenzfähig zu bleiben dauernd neue Feaures implementieren für die du eigentlich noch 5 weitere Kollegen bräuchtest, für die aber kein Geld da ist. Von Hardware mal ganz zu schweigen. Urlaubsgeld gibt es keines, Geringstsatz an Urlaubstagen.

Datenbanken

Die ganzen neumodischen Datenbanken (noSQL, Mongo DB usw usf) sind zwar nett, aber es ist de facto so, dass eine Applikation die Datenbank wählt und nicht umgekehrt. Und da bauen so gut wie alle Applikationen auf "altbackene" Datenbanken. Ist halt so. Ja, Oracle ist Dinosauriertechnik, aber leider so ziemlich das Beste am Markt (und auch das teuerste, deren "Lizenzpolitik" ist einfach nur beschissen, ist aber ein anderes Thema). ^

Die ganzen hipper Neu-ITler haben von Datenbanken so gut wie keine Ahnung mehr. Macht doch das Tool für mich - wozu also? Dann beklagen sie sich über Performanceprobleme und Bernd kommt für einen horrenden Tagessatz. Erste Maßnahme: Mal alle Datentypen angucken. Zahlen speichert man NICHT in einem Textfeld, sondern in einen Zahlenfeld. Dann klappts auch mit der Performance. Oder was meinst du wie oft da ein einfacher Index fehlt weil der Spast von Entwickler meint darauf verzichten zu können (oder das Tool).