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.

RDP klaut ALT-GR

Und nun zu den aktuellen Nachrichten:

Während der interaktiven Sitzung zwischen Windows 10 und Server 2019 kam es heute zu einem Unfall im ALT-GR Tastenbereich.

Mehrere Codes wurden korrumpiert, als sämtliche Tastenanschläge für Backslash \ und Pipe | durch scharfe-S ß und Kleinerzeichen < ersetzt wurden.

Die zuständigen Behörden wurden umgehend informiert und erarbeiteten vor Ort eine Lösung.

» Weiterlesen

Offline Installationen mit Linux

Bei Produktinstallationen für Kunden melden diese oft:

Wir haben ein XYZ Linux Version 9.8.7 ohne Internetanbindung. Senden Sie uns alle notwendigen Installationspakete zu.

Und dann fängt das große Weinen an, wenn man bei Python3 angefangen eine halbe Linux-Distribution “nachliefern” soll.

» Weiterlesen

Keyboard- und Tastencodes

A bis Z und 0 bis 9 wird von jedem OS auf ASCII bzw. Unicodezeichen abgebildet. Das gilt auch für die Konsole.

Aber wie bekommt man z.B. Pfeiltasten per read(stdin) geliefert?

» Weiterlesen

Altes Debian für alte Hardware

Mein aus dem Jahr 2005 stammende HP NX6310 Laptop lebt noch immer, fristet aber sein Dasein auf der Reservebank.

Und ich dachte mir: Nachdem man nicht mal mit einem Raspberry PI 3 heute vernünftig “ins Internet” gehen kann, klappt das mit einem 1.4 GHz Single-Core Celeron erst recht nicht.

Doch man staune: Debian macht es möglich.

» Weiterlesen

Fail: Timeout NEVER = ?

Ich mag Funktionen mit Timeouts, denn mit denen kann man “kalkulieren”, während andere ewig blockieren können.

Folglich baue ich auch selbst gerne solche ein.
Doch … was ist, wenn man unendlich auf ein Ereignis warten will?

» Weiterlesen

Parameter per Kommandozeile

Wenn Programme andere Programme starten sollen, stellt sich die Frage:

Wie?

Die C Standard Bibliothek beantwortet das leider sehr unzufriedenstellend, doch trotzdem basieren viele Lösungen auf dem alten
system("myprog arg1 arg2") Schema.

Und da kann man leider auch viel falsch machen.

» Weiterlesen

Defragmentierung

Die Defragmentierung von Festplatten war früher eines der schönsten Schauspiele, die ein DOS oder Windows PC mit sich brachte.

Heute ist sie in Vergessenheit geraten, obwohl im Hintergrund immer noch stückweise “optimiert” wird.

» Weiterlesen

Spezialfälle in Windows 95

Aus API Sicht waren Windows 95, 98 und ME für mich so ziemlich das gleiche, nämlich ein reduziertes Set von NT4. Die Frage war damals also:

Ist etwas kompatibel mit “NT4” oder “nur 9x”.

Doch … Windows 95 war stets “weniger”, der Support wurde schnell fallen gelassen als 98 auf den Markt kam … und heute verstehe ich erst, warum das so war.

» Weiterlesen

Codeberg: das bessere Github

Ich bin 2018 nur deshalb zu Bitbucket gegangen, weil man dort kostenlose private Repos anlegen konnte.
Erst ein Jahr später zogen Github und andere nach, doch einen Grund zur Migration gab es für mich keinen.

Mit Codeberg ist in Deutschland ein offener und kostenloser Git-Hoster aufgetaucht, der mich aber über einen Umzug nachdenken lässt:

Der Code liegt auf Servern in der EU … also “bei Freunden”.

» Weiterlesen

Weiter kein Versand mit Aliexpress

Aliexpress wurde für mich “attraktiv”, als es von Kreditkartenzahlungen zu PayPal wechselte. (Das muss Ende 2019 passiert sein.)

Doch seit dem 1. Januar 2023 ist Österreich von der größten Handelsplattform für Bauteile für Baster ausgeschlossen … und es wird einfach nicht besser.

» Weiterlesen

Strategiewechsel

Bisher habe ich im GATE Projekt versucht, die herauskommenden Programme als größere “Universalwerkzeuge” anzulegen.
Doch das war falsch … oder sagen wir mal: Es ist nicht der beste Weg.

Denn jenseits der Windows und Linux Welt gelten teilweise andere Regeln und die möchte ich auch gerne einhalten.

» Weiterlesen

__near, __far, wherever you are

Während Kate rebelliert, Leo stirbt und Céline von “near” und “far” singt (siehe Titanic), überlege ich gerade, wo ich überall “spezielle” Pointer-Attribute unterbringen muss.

Na … da blutet fast das Herz des Ozeans …

» Weiterlesen

Windows 95 Update ohne Windows 3.x

Retro-Time!
Beim Aufräumen meiner Backups ist mir wieder ein altes NT-4 ISO-Image untergekommen, welches neben Windows NT Varianten auch Windows 95 enthielt, und zwar eine englische Version.

Da ich aus meiner Vergangenheit nur deutsche Versionen aufgehoben hatte, startete ich spaßhalber das Setup in einer VM … Doch das brach mit einer Upgrade-Fehlermeldung ab.

» Weiterlesen

dll_import für Templates

Sind in für DLLs exportierten C++ Klassen unter Windows Datentypen enthalten, die auf Templates aufbauen, sieht man schnell den Fehler:

1warning C4251: ... needs to have dll-interface ...

Doch den bekommt man gar nicht so leicht weg, wenn man portabel bleiben möchte.

» Weiterlesen

Trampolin-Springen

Bei meinem Rust-Kurs hat mich eine Aussage während des Vortrages gestört:

C++ erzeugt oft schlechten Maschinen-Code mit Trampolines.

Das ist etwas weit hergeholt.

» Weiterlesen

Linux auditd und CRLF

Bei mir lagen heute zwei Dateien in /etc/audit/rules.d. Wenn in der zweiten alle Regeln auskommentiert wurden, funktionierte auditd zumindest mit den Regeln der ersten Datei.
Kaum wurden die Regeln in der zweiten Datei aktiviert, funktionierte gar nichts mehr.

Und wieder einmal habe ich einen Tag Lebenszeit verloren …

» Weiterlesen

_bios_disk()

Der Zugriff auf Disketten (und die ersten Festplatten) war bereits mit dem originalen IBM BIOS möglich, denn der INT 13h bot einige Dienste, wie etwas das Lesen und Schreiben einzelner Sektoren.
Das brauchte das BIOS auch selbst, um das OS booten zu können.

Watcom (und andere historische Compiler) stellen für diesen Systemaufruf die C-Funktion _bios_disk() zur Verfügung.

» Weiterlesen

Ant man 3 - Quantumania

Phase 5 ist da!
Mit Ant-Man and the Wasp - Quantumania hat das Marvel Cinematic Universe seine 5. Phase erreicht und deren Prämisse lautet:
Das Multiversum.

» Weiterlesen

3 Tage Rust

In der Nachbarabteilung meiner Firma wurde festgestellt, dass dotNet Software “nicht ganz so gut performt” und deshalb musste eine schnellere Sprache her. Das wurde dann nicht C++, weil das angeblich zu kompliziert ist, sondern Rust.

Und weil in der bestellten Rust-Schulung für Mitarbeiter noch ein Platz frei war, durfte ich mich da auch hineinsetzen.

» Weiterlesen

GCC: Statische Optimierungen

Statische Bibliotheken gehören bekanntlich zu meinen Lieblingen, und auf Plattformen wie DOS sind sie sowieso eine Notwendigkeit.

Doch trotz Link-Time-Optimization und anderem Schnickschnack sind die fertigen Programme meist größer als unter Windows. Und teilweise sogar verdammt übergroß.

» Weiterlesen