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.

PowerQuest Partition Magic

Es war wieder mal eine Heft-CD, die mich mit einer der wichtigsten Software-Lösungen in den 90ern zusammenbrachte.

PQMagic war der ultimative Partitions-Manager, der mich damals in die Lage versetzte mehrere Betriebssysteme parallel installieren zu können.

» Weiterlesen

Pocket386

Weil mich mein Book8088 so glücklich gemacht hat, bestellte ich auch gleich sein Brudermodel: Den Pocket386.

Nun kam mein zweiter Minilaptop mit 40 MHz 80386 CPU und 8 MB RAM an. Jetzt habe ich endlich mal ein echtes Windows 95, dass sich genau so verhält, wie es damals vor 30 Jahren der Fall war.

» Weiterlesen

Arch Linux Keys

Da installiere ich mir Arch Linux als WSL Distro und möchte ein Update mit pacman -Syu durchführen.

Schon erscheinen zahlreiche Fehler nach dem Schema:

error: curl: signature from “Someone someone@archlinux.org” is unknown trust
:: File /var/cache/pacman/pkg/something-x86_64.pkg.tar.zst is corrupted (invalid or corrupted package (PGP signature)).

» Weiterlesen

ZIG und C's undefined-behavior

Ich baue meine Win32 App mit MSVC: läuft.
Ich baue meine Win32 App mit MinGW: läuft.
Ich baue meine Win32 App mit CLANG: läuft.
Ich baue meine Win32 App mit ZIG: Prozess weg.

W-T-F? Was macht ZIG, das auf LLVM aufsetzt, anders?

Spoiler: ZIG ist einfach nur genial!

» Weiterlesen

Bildausschnitte per Line-Padding

Die Arbeit mit meinem Book8088 inspirierte mich mein Grafik-Konzept zu überdenken:
Ein Rasterimage ist nicht ein Array of Pixels,
es ist ein Array of Pixel-Lines.

Und daraus folgt: Ein Bildauschnitt ist
Originalbild + Offset + Padding

» Weiterlesen

Ranish Partition Editor

Der Ranish Partition-Manager gehörte vor dem Jahr 2000 zu meiner “Standardinstallation” unter DOS.
Dieses Miniprogramm lässt eine jede MBR Festplatten-Partition und jedes FAT Dateisystem inspizieren und manipulieren.

Dennoch hatte ich immer Angst vor diesem mächtigen Werkzeug.

» Weiterlesen

Book 8088

4 bzw. 8 MHz und 640 KB RAM!
China hat es geschafft in den 2020ern einen Laptop aus Bauteilen und Standards der 1980er auf den Markt zu bringen.

Ich bin wieder in den 80ern … also eigentlich noch vor “meiner Zeit”, und damit genau “in meiner Zeit”, denn den ersten PC, den ich in den 90ern in der Schule zu Gesicht bekam war ein IBM PC XT.

» Weiterlesen

Und dann kamen SystemD Services...

systemd ist die Zukunft. Alle neuen Linux Dienste nutzen diesen Standard um sich im System zu registrieren.

Auch falsch! (Langsam zeichnet sich ein Muster ab.)

Mir bleibt wirklich gar nichts erspart, und somit kommen jetzt (beruflich wie privat) auch noch .service Dateien in meine Welt.

» Weiterlesen

OpenBSD Daemons registrieren

OK, FreeBSD und NetBSD verwalten ihre Daemons fast identisch.
Perfekt! Somit kann ich mit einem Daemon-Script-Skelett alle BSDs behandeln.

Wieder falsch!
Denn OpenBSD setzt auf “leicht andere” Variablennamen.

Und wieder fließen weitere ifdef XXXBSD statements in meine Codebase.

» Weiterlesen

BSD Daemons registrieren

BSD und Linux sind beides Unix-Kinder, also sehen die intern recht ähnlich aus…

Falsch!
Ich bin immer wieder überrascht, wie unterschiedlich sich diese beiden Brüder entwickelt haben.

Und mich zwingt das jetzt in die Situation, dass ich alle Daemon-Scripts doppelt schreiben muss.

» Weiterlesen

Linux Daemons registrieren

Wer richtet eigentlich Daemons (also Hintergrunddienste) in Linux ein?

Antwort: Die Distributionsmacher scripten sich das zusammen, wie sie es brauchen.

Aber was macht man als “3rd Party Developer?”

» Weiterlesen

JPEGs aus Minimum runterdrücken

Auf Codeberg Pages kann man ja ganz toll Webseiten hosten, die einfach in einem Repository eingecheckt sind.
Für statischen HTML Kram ist das super, aber was macht man mit Bildern?

Um jetzt nicht alles unnötig aufzublähen, setzte ich mir ein Ziel:

Meine JPEGs müssen so klein wie möglich werden!

» Weiterlesen

SSH Public Key Logins

Passwörter sind für mich immer noch das beste … weil ich sie im Gehirn speichern und überall hin mitnehmen kann.

Aber sicherer wären natürlich Zertifikate.
Auch beim Login auf SSH Servern.

Und wie ging das noch?

» Weiterlesen

LLVM bzw. CLANG

MSVC und GCC begleiten mich jetzt bald 20 Jahre beruflich und privat in unterschiedlichen Softwareprojekten. Dann kommt noch ein bisschen Watcom für die Retro-Schiene hinzu.

clang und die LLVM Toolchain waren für mich bisher immer ferne Trabanten, die ich zwar immer wieder mal beobachtete, aber nie aktiv einsetzte.

» Weiterlesen

C structs Ausnullen

Seit Ewigkeiten nutze ich
struct structtype instance = {0};
um Strukturen am Stack “generisch” mit Nullen zu initialisieren.

Doch … effizient ist das nicht, wenn man auf den generierten Code schaut.

» Weiterlesen

FAT - Dateizuordnungstabelle

Das FAT Dateisystem war in den 90igern die absolute Nummer ein am PC und wurde erst nach dem Jahr 2000 mit Windows XP durch NTFS bzw durch Linux mit ext2/3 ersetzt.

Für meine Retro-PC und Disketten Experimente benötige ich ein Tool zum Auslesen der alten Datenträger, also implementiere ich mir eine FAT12/16 Reader schnell selbst.

» Weiterlesen

Device-Independent-Bitmaps

Seit 15 Jahren nutze ich DIBSections der WinAPI um Grafiken in GUI Apps zu verwalten und mit der Zeit hinterfragt man gar nicht mehr, was alles ausimplementiert ist, wie es ist … man kopiert es einfach.

Doch DIBSections gab es in Windows 3.x nicht und auch unter NT 3.5 funktionieren einige meiner Codes nicht.

Frage: Warum?

» Weiterlesen

Nintendo DS

Etwa im Jahr 2010 setzt bei mir die zweite Kindheit in Sachen Spielekonsole ein. Und so kaufte ich mir in den folgenden Jahren die Modelle:
NDS, 3DS, 3DSXL und schließlich noch den New 3DSXL.

» Weiterlesen

Bootsektor von Disketten

Ja damals, als wir noch unsere eigenen Betriebssystem schreiben wollten …

Da hat alles mit einer Diskette angefangen. Es wird Zeit diese Epoche wieder etwas aufleben zu lassen. Also schreiben wir mal ein paar Bytes in den Bootsektor.

» Weiterlesen

Sterbende SSDs und M2s?

Die günstigen SSDs und M.2 Chips aus Fernost versprechen beste Qualität und am Anfang stimmt das auch.
Aber nach dem einen oder anderen Jahr bricht das Kartenhaus in sich zusammen.

» Weiterlesen