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.

Unit Tests

Unit tests sind in der Entwicklung ein notwendiges Übel, weil die Vorgesetzten es als Funktionsbeweis haben wollen.

So habe ich es viele Jahre gesehen und auch heute erscheinen mir manche Testanforderungen nur als lästige Bürokratie, die selten wirklich etwas “abtestet”.

Doch nun beweist mir meine eigene Fehlbarkeit, dass Unit Tests IMMER eine Existenzberechtigung haben.

» Weiterlesen

Mini-UPS

Stromausfälle sind in Wien verdammt selten. Das passiert vielleicht alle 10 Jahre mal, wenn ein Stromzähler getauscht werden muss. Ansonsten kann ich mich an keine Unterbrechung erinnern.

Aber … was wäre wenn? Und wäre es nicht toll, wenn man ein Gerät an einen anderen Ort versetzen kann ohne seinen Betrieb zu unterbrechen?

Die Lösung heißt UPS (Uninterrupted Power Supply) bzw. Unterbrechungsfreie Strom-Versorgung (USV).

» Weiterlesen

Pixel Fonts

Schriftarten (auch “Fonts” genannt) sind heute eine komplexe Sache. Alles ist vektorisiert und die Zeichen orientieren sich an mehreren Linien um Schleifen Punkte und Striche auf der richtigen Höhe im Verhältnis zu den anderen Zeichen zu setzen.

Früher hatten wir feste Schriftarten, die es in ein paar Größen gab und in denen Zeichen für Zeichen und Pixel für Pixel fix gespeichert waren.
Denn so etwas kann man nämlich sehr leicht selbst implementieren.

» Weiterlesen

IDE Adapter und Alternativen

Ich dachte eigentlich, dass meine alten IDE (P-ATA oder auch ATAPI) Festplatten schon alle tot sind. Aber stimmt nicht, viele Festplatten funktionieren tatsächlich noch, und das nach 15 Jahren.

Trotzdem ersetze ich nun die unerträglich lauten und langsamen Teile durch Flash-Speicher Varianten.

» Weiterlesen

DOS Development

OpenWatcom eröffnet mir also heute im Jahr 2021 ein Tor 30 Jahre zurück in die Vergangenheit, denn der Compiler unterstützt auch heute noch MS-DOS und Windows 3.x als Zielplattform.

Auf was muss man also achten, wenn man Programme für DOS schreiben will?

» Weiterlesen

3 Jahre Blog

3 Jahre hat diese Seite jetzt auf dem Buckel. Und ich glaube, damit ist es zum zeitlich längsten Webprojekt geworden, an dem ich je durchgehend aktiv gearbeitet habe.

Und langsam komme ich wieder an die Grenze des Erträglichen im aktiven Testbetrieb mit jekyll serve.

» Weiterlesen

Server 2022 Update mit Fehlschlag

Seit August steht der Windows Server 2022 zur Installation bereit. Basierend auf dem Kernel 21/H2 sollte er eigentlich Server 2021 heißen, aber das war ja bei Server 2019 mit 18/09 damals auch nicht anders.

Und ich möchte nun meinen Domain Controller von Server 2016 auf den “letzten Stand” bringen. Na mal sehen, ob Microsoft das hinbekommt.

» Weiterlesen

OpenWatcom C/C++

Der OpenWatcom C/C++ Compiler zählt nicht nur zu den ältesten seiner Art, er unterstützt auch noch die alten Plattformen wie Windows 3.X, OS/2 und DOS neben Linux und WinNT.

Und er ist wahrlich “antiquiert” in Sachen Standards und std Support.
Kurz gesagt: Genau die richtige Umgebung für meine Experimente.

» Weiterlesen

Build Server Marke Eigenbau

Java, Ruby, Python, dotNet … also, wie es aussieht, gibt es heute keinen einzigen Build-Server, der ordentlich (sprich effizient) programmiert ist, also in C oder C++.
Damit ist von GitLab über Jenkins bis zu TeamCity keiner geeignet auf meinen Intel Atom Servern zu Hause zu laufen.

Es kann doch nicht so schwer sein, einen CMake Build in Docker anzustoßen. Also bauen wir uns das selbst, so wie es sich gehört.

» Weiterlesen

80486 heute?

Was war das für eine tolle Zeit, als man beim Einsetzen einer ISA Karte eine Bluttransfusion brauchte, weil man sich an den Lötkontakten und den messerscharfen unbehandelten Platinenkanten die halbe Hand zerfetzt hatte.

Ja das war, als ich meinen damals schon veralten 486er PC mit Erweiterungskarten stückweise “nutzbar” machen wollte.

» Weiterlesen

Fehlschlag: Stack Koroutinen

Aus Fehlern lernt man bekanntlich am meisten, und deshalb möchte ich einen meiner Irrtümer hier schildern.
Es begann mit der Idee:

Man könnte doch einen Stack durch diverse Funktionsaufrufe aufblasen und dann per setjmp() “Einsprungpunkte” in den Stack setzen. Wenn man dann noch einen Scheduler schreibt, der per longjmp() zwischen diesen Einsprungpunkten auswählen kann, dann hätte man:
Eine rein generische C Implementierung für Koroutinen.

» Weiterlesen

Koroutinen

Mit C++20 werden Koroutinen (#include <coroutine>) in den Sprachstandard aufgenommen. Mich wundert aber, dass im nächsten C Standard (C2x) von Koroutinen keine Rede ist.

Also habe ich mich mal in den Betriebssystemen umgesehen, wie man Koroutinen selbst implementieren kann.

» Weiterlesen

GCC Problem: Statische Shared-Libs

Da denkt man, statische Bibliotheken (static libraries) wären stets “privat” für ihre Nutzer und nur dynamisch gelinkte Bibliotheken (shared libraries) würden ihr Dienstleistungsangebot öffentlich preisgeben.

Doch nicht so beim GCC.
Denn der spielt gerne Twitter und teilt auch Privates quer über Modulgrenzen hinweg, ohne dass jemand danach gefragt hätte.

» Weiterlesen

flock, lockf und LockFileEx

Der “exklusive” Zugriff auf Dateien spaltet die Nation der Entwickler, wenn es darum geht, wie, wann und wo dieses Kontrollmittel eingesetzt werden soll.

Dateisperren sind eine recht alte Erfindung und deshalb wundert es mich, wie uneinheitlich das Thema behandelt wurde.

» Weiterlesen

Apache und PHP unter WSL

Wenn ich PHP Scripts für den Webspace bei mir zu Hause ausprobieren will, dann helfen mir leider der IIS oder Jana wenig. Denn schließlich möchte ich ja die dortige Apache2 Umgebung mit seinen typischen .htaccess Dateien genau nachstellen.

Früher hätte ich jetzt auf einen Linux Rechner oder eine VM ausweichen müssen, doch heute erlaubt mir das Windows Subsystem für Linux das gleiche “Feeling” ohne Zusatzaufwand.

» Weiterlesen

ITX Gehäuse selbstgedruckt

Aus vergangenen Tagen habe ich einige ITX PC Gehäuse in denen meine Test-Notfall- und Backupboards verbaut sind. Die liegen etwas bei Größen von 32x27x7 cm und bieten auch für 3.5 Zoll Festplatten Platz.

Mini-ITX Boards sind aber nur 17x17 cm lang und breit. Und 2.5 SSDs oder M2 Chips viel kleiner geworden sind, fragte ich mich, ob ich nicht auch mit einem viel kleineren Gehäuse auskommen kann.

» Weiterlesen

E3930 GPIO mit Linux

In meinem Intel Atom Kraftwerk wurde ein neuer Reaktor ans Netz angeschlossen. Und zwar ein Intel Atom E3930 im Supermicro A2SAV-2C-L Mainboard.

Denn seit 3 Jahren arbeitet dessen größerer Bruder E3940 als Server bei mir und deshalb wagte nie ich sein “spezielles” Feature auszuprobieren.
Beide Boards haben einen 10-Pin Header, über den 8 GPIO Kontakte frei nach außen geleitet sind.

» Weiterlesen

noexcept und constexpr

noexcept und constexpr kamen mit C++11 in den Standard und sind zwei ganz tolle Features. Doch wegen der Abwärtskompatibilität bleibt mir deren Nutzung im GATE Projekt eigentlich verwehrt.

… oder eben nicht, wenn man ein bisschen trickst.

» Weiterlesen

JanaServer2

Über ein Jahrzehnt war der Jana-Server mein bester Freund und Helfer. Denn während man normalerweise für HTTP, Proxy, SMPT und Dialer vier separate Softwarelösungen brauchte, brachte der kostenfreie Jana-Server alle diese Features auf einen Windows Rechner.

» Weiterlesen

Dark-Mode für Win32

Etwa gleichzeitig mit der Netflix-Serie Dark hat Microsoft in Windows 10 das Dunkle Design als Dark-Mode schrittweise eingeführt und mit jedem halbjährigen Update weiter ausgebaut.

Doch leider nur für UWP Apps und das pisst mich offen gesagt sehr an. Was bitte ist so schwer, dieses Design auch in die klassische WinAPI zu übernehmen?

» Weiterlesen