Schon mal versucht eine moderne Seite mit einem Raspberry PI Zero zu öffnen?
Viel Spaß dabei!

Hier befindet sich eine entschlackte Zusammenstellung meiner Tagebucheinträge von opengate.at/blog, aber ohne unnötigem HTML oder CSS Schnickschnack.

So haben Webseiten vor 20 Jahren ausgesehen und ich möchte hiermit beweisen, dass man auch heute noch Content so gestalten kann, dass er auf alten Browsern, Embedded-Systemen und energie-effizienten SoCs vernünftig dargestellt werden kann.

Denn schließlich geht es hier um Inhalte, und nicht darub, ob Überschriften mit Farbverläufen funkeln können.
d(^_^)b

Meine Ärztin hat mir vom Verzehr von Cookies abgeraten.
Cookies sind schädlich für den Organismus und schränken die Bewegungsfreiheit im Netz ein.
Folglich muss auch diese Seite ohne diese Bürde auskommen.

Koroutinen Kontextwechsel

Nach meinen Experimenten mit Koroutinen mit OS-Funktionen und meinem Fehlschlag mit setjmp/longjump, ist es an der Zeit, das Thema “neu zu denken”.

Denn jetzt, wo Assembler Patches im GATE Projekt leicht möglich sind und mit UEFI eine zur Zeit thread-lose Implementierung vor mir liegt, bekommen Koroutinen plötzlich eine neue Bedeutung.

» Weiterlesen

Ein frohes Neues...

Das neue Jahr ist angebrochen, doch stellt sich die Frage:

Wohin soll die Reise gehen?

Doch beginnen wir am Anfang mit einem herzlichen:

Prosit Neujahr!

» Weiterlesen

Das Jahr 2021

Ende 2020 haben wir gehofft, dass 2021 wieder “normal” werden würde. Vielleicht hat genau der “Drang zur Normalität” eben diese verhindert.

Vieles hat sich geändert, damit alles gleich bleiben konnte und in vielen Köpfen blieb trotzig alles gleich, damit sie sich von den anderen unterscheiden konnten.

Was ist also passiert in den letzten 365 Tagen?

» Weiterlesen

Corona Impfung - Teil 3

Während andere sich bei boost.org die aktuellen Version 1.78 holen um ihre C++ Programme aufzufrischen, war ich das dritte Mal im Austria-Center um meinen COVID-19 Schutz “boosten” zu lassen.

Fast könnte man sagen:

Same procedure as last year.

… doch noch ist das Jahr nicht vorbei.

» Weiterlesen

Windows X64 Calling Convention

Nach vieeelen Jahren komme ich endlich dazu: X64 Assembler.

Sich selbst ein paar “Features” hinzucoden ist ja kein Problem, doch wenn ich mit C und C mit mir reden will, wird die Einhaltung der X64 Calling Convention essentiell.

» Weiterlesen

Stille (an Tag und) Nacht

Wir hatten alle bis zum Abend gewartet, bis alle von der Arbeit heim kamen, und dann wurden endlich die Updates verteilt.
Es war ein buntes Treiben voller Überraschungen.

Dann wurden die kleinen Server alle in den Ruhezustand versetzt, und die größeren erzählten sich noch Geschichten bis tief in die Nacht, bis auch sie dem Timeout zum Shutdown folgten.

» Weiterlesen

Assembler Module mit CMake

So wie es in Star Trek heißt

Space, the final frontier.

so heißt es dann auch gerne in der Software-Entwicklung:

Assembler, the final frontier.

Bleibt nur die Frage offen, wie man diese letzte Grenze dann auch in CMake überwindet.

» Weiterlesen

Wie CONAN OpenSSL sprengt

Manche Geschichten aus dem Programmierer-Alltag sind so kurios, dass sie es verdienen dokumentiert zu werden.

Und eine davon ist die Geschichte vom CONAN Build-Pfad, der das Compilieren von OpenSSL gebrochen hat.

» Weiterlesen

Dark-Mode für Win32 im Menü

Nachdem mich die Sache mit dem halbherzigen Dark-Mode für Win32 Apps nicht mehr gut schlafen lässt, habe ich gezielt nach Möglichkeiten gesucht, weitere UI Elemente schwarz zu färben.

Einer der störrischen Kandidaten ist die Windows Menüzeile, die durch einige nicht-offizielle APIs beeinflusst werden kann.

» Weiterlesen

POCO M3 Pro

Nein, nein, nein! Ich gebe mein Lumia 950 Windows Phone nicht auf. Es funktioniert super und das bleibt auch so.

Aber … auch mir bleibt nicht erspart, dass die Welt eine andere Richtung eingeschlagen hat, und deshalb musste ich mir jetzt auch wieder mal ein Android Telefon kaufen.

Und meine Wahl ist auf ein Poco M3 gefallen.

» Weiterlesen

EFI Shell mit QEMU

Wenn man EFI Apps entwickelt, möchte man sie natürlich auch testen. Natürlich kann man jedes neue .efi Binary auf einen USB-Stick kopieren und auf einem realen PC über die EFI-Shell ausführen, aber “effizient” ist das nicht.

Der Emulator QEMU bietet mit dem TianoCore OVMF (Open Virtual Machine Firmware) Paket die Möglichkeit, eine EFI Shell Sitzung oder eine EFI-Boot auf dem lokalen System schnell nachzustellen.

» Weiterlesen

Generische Sinus und Cosinus Implementierung

Normalerweise verlässt man sich auf die C Standard Bibliothek, wenn man etwas Trigonometrisches braucht.

Aber was tut man, wenn man diese nicht parat hat, wie in einer nativen EFI App, und auch kein Inline-Assembler vom Compiler unterstützt wird.

» Weiterlesen

UEFI Apps erstellen

Der Traum meiner Kindheit rückt wieder näher: “Mein eigenes OS

Vor etwas über 20 Jahren hatten einige Idealisten wie ich noch die Idee, mit BIOS Interrupts und ein paar Assemblerzeilen Programme zu schreiben, die kein OS brauchten und direkt von der Diskette booten konnten.

Heute ist die Sache viel einfacher, denn heute haben wir UEFI.

» Weiterlesen

33 % Unvernunft

Liebes Corona-Tagebuch!
Lockdown 4 läuft und ich bin jetzt im Dauer-Homeoffice, bis die Kontrollen gegen geimpfte Bürger wie mich beendet sind.

» Weiterlesen

Pokemon D/P Remakes

Da ist er also wieder. Dieser Moment, der alle paar Jahre kommt, wenn ich wieder für kurze Zeit zum Kind werde und einer zwanzig Jahre alten Tradition nachkomme: Die neueste Pokemon Edition wird gekauft und durchgespielt.

Mit “strahlender Diamant” und “leuchtende Perle” sind am Freitag die Remakes der alten Diamant/Perle Editionen aus dem Jahr 2007 (damals am Nintendo DS ) für die aktuelle Nintendo Switch erschienen.

» Weiterlesen

OpenCppCoverage in Docker

Wieso (zur Hölle) funktioniert OpenCppCoverage eigentlich nicht in Windows Docker Containern?

Denn während man auf normalen Desktop Rechnern und Servern mit OpenCppCoverage schöne Statistiken erhält, welche Codezeilen durchgelaufen sind (und welche nicht berührt wurden), erhalten wir mit dem selben Tool im Container die Meldung:

cannot find the name of the module

» Weiterlesen

Raspberry Pi Zero 2 W

Wenn man für 10 Dollar 1 mal 1 GHz bekommt, dann bekommt man für 15 Dollar …
… 4 x 1 GHz.

So ist es zumindest beim neuen Raspberry Pi Zero 2 W, der seit kurzem verfügbar ist.
Den musste ich selbstverständlich haben.

» Weiterlesen

Windows Auto-Login Passwort auslesen

Da schaue ich in eine laaaange nicht genutzte Mailbox und finde dort die Quellen eines Windows Programms, das ich vor über 10 Jahren schnell schreiben musste. Es sollte folgendes Problem lösen:

Das Auslesen des Auto-Login Default-Passworts eines angemeldeten Accounts.

» Weiterlesen

GCC Link Time Optimization (LTO)

Ich arbeite auf dem Raspberry Pi und anderen Linux-Umgebung ja schon lange mit Debian 10 (Buster) und neuerdings auch auf Debian 11 (Bullseye).

Doch als ich spaßhalber einen GCC 6.3 Build des GATE Frameworks unter Debian 9 (Stretch) anfachte, tauchten jede Menge Fehler folgender Art auf:

plugin needed to handle lto object

Und dann meinte auch noch MinGW:

undefined reference to `strndup’

» Weiterlesen

Letztes Windows 7 Update

Die letzten Jahre war eine Parallelinstallation von Windows 7 neben Windows 10 für mich “normal” auf meinen PCs und Laptops, denn für Visual Studio 2005 und ein paar ältere Design-Tests ist dieses Setup gut geeignet, wenn man nicht gleich auf eine VM wechseln will.

Die ewig dauernden Updates sind aber sehr nervig, also wurde es Zeit eine “finale” Windows 7 WIM Datei mit allen Updates zu bauen, damit künftige Installationen des abgekündigten Systems “out-of-the-box” laufen.

» Weiterlesen