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 darum, 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.

PCR und Antigen COVID Tests

Das Schicksal (oder meine schlechte Planung) wollte es, dass der Tausch meines Firmen-PCs durchgeführt wurde, womit ich eine Woche lang keinen Home-Office Dienst geleistet habe.
Und wie es bei den aktuellen Infektionszahlen zu erwarten war, traten nun auch positive COVID-19 Fälle in der Firma auf.

Somit hatte ich also einen Grund mich wieder auf das Virus testen zu lassen.

» Weiterlesen

uEFI: Graphics Output Protocol (GOP)

Im klassischen PC BIOS aus den alten 16-Bit Zeiten hatten wir den Interrupt 10h (INT 0x10) um den Grafikmodus zu ändern.

Mit uEFI wurde diese antiquierte 16-Bit Technik modernisiert und somit steht mit dem Graphics Output Protocol (GOP) eine C-API der Firmware bereit, um Pixelgrafiken auf den Monitor zu bekommen.

» Weiterlesen

Runnables

Hinter der Magie von std::bind stecken eine Vielzahl von Hilfsklassen und C++ Template-Tricks, die jeden beliebigen Funktions- oder Methodenaufruf kapseln und frei mit Parametern kombinieren können.

In der C Welt gibt es (meines Wissen) nichts Vergleichbares in der stdlib.

Für die Ausführung von beliebigen Funktionsaufrufen stellt das GATE Framework daher Runnables bereit.

» Weiterlesen

Chromebook

Ein Päckchen kam verspätet unterm Weihnachtsbaum hervor: Ein Lenovo Chromebook.

Als Entwickler muss man eben auch wissen, was es sonst noch so am Markt gibt. Und die wichtigste Frage für mich war natürlich:

Lässt sich das GATE Framework auch am Chromebook kompilieren?

» Weiterlesen

Mandelbrot und Apfelmännchen

Für meine Framebuffer Experimente brauchte irgend eine “anschaubare” Grafikausgabe, und dabei fiel mir spontan wieder das Apfelmännchen ein.

Dieses mathematisch errechnete Farbenspiel aus der Mandelbrot-Menge tauchte und taucht in Schulen immer wieder als Programmierbeispiel auf.

Und heute freue ich mich, dass ich diesen Code auch wieder mal sinnvoll “recyclen” kann.

» Weiterlesen

Framebuffer

Meine OpenGL Experimente und die gategames Demo-App sind zwar toll für Windows, Linux und Android, jedoch kann ich diese Form der Grafikausgabe nie auf EFI, FreeRTOS oder DOS portieren.

Wenn man aber ein abstraktes Modell eines primitiven 2D-Bildspeichers hätte, in dem man Pixel setzen und Grafik-Untermengen hinein und herauskopieren kann, dann hätte man einen Ansatz, den man viel leichter auf alle Formen von “Bildschirmen” portieren kann. (Mikrocontroller inklusive).

» Weiterlesen

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 vielen 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