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.

Dateneingabe im VT100 Style

Während man unter Windows diverse Sondertasten durch VKEYs gut abbilden kann, steht man in POSIX oder Linux vor der Frage, wie man dort mit Tastenkombinationen oder z.B. den F-Tasten umgehen soll.

X11 käme mit seinen keysyms um die Ecke, doch das gilt nur für X11 apps. Aus meiner Sicht sind die alten VT100 Escape-Codes die einzig “generische” Möglichkeit sich diesem Thema plattformübergreifend zu widmen.

» Weiterlesen

Fenstergrößen mit XLIB und GLES

EGL und die XLIB bereiteten mir schon vor einigen Jahren Schwierigkeiten und ich bin offenbar nicht der einzige. Selbst die Raspberry-PI Edition von Minecraft kam beim Verändern der Fenstergröße durcheinander.

Nun treffe ich erneut auf diese Umgebung im Zuge der OpenGL Implementierung im GATE Projekt.
In diesem Sinne fasse ich mal meinen aktuellen Stand zusammen.

» Weiterlesen

Android main()

Mein erster Android App-Prototyp im GATE Framework ist fertig. Und nachdem Android NDK Apps ganz anders aufgebaut sind als übliche C int main() Programme, musste ich einige Umleitungen legen, damit das alles läuft.

Eine gute Gelegenheit also niederzuschreiben, wie Android NDK Apps hochfahren und wo man was tun muss.

» Weiterlesen

Liebes Corona-Tagebuch ...

Liebes Corona-Tagebuch.
Heute war ich impfen.

Und damit beginnt nun für mich - so hoffe ich - eine Zeit, wo ich nicht länger immer zur Teststraße pilgern muss, wenn ich einen neuen Haarschnitt brauche.

» Weiterlesen

EGL, OpenGL-ES und Linux

Der kleinste gemeinsame Nenner aller Linux Systeme in Sachen OpenGL ist - so mein aktueller Stand - OpenGL ES 1.0 (OpenGL for Embedded Systems, auch GLES oder EGL genannt), welches ein Subset von OpenGL 1.3 ist. Genau hier schließt sich der Kreis, wie man eine GL-Codebase ohne (große) Anpassungen auf allen Plattformen zum Laufen bekommen kann.
(Selbstverständlich geht das nur ohne Shader einzusetzen.)

Sowohl unsere Desktop und Embedded Linux Varianten bis hin zu Android bieten EGL Support, also ist klar, dass diese Anbindung ins GATE Projekt muss.

» Weiterlesen

OpenGL GATEs

Ein großer Hemmschuh für das GATE Projekt war bisher die Fixierung auf Windows und Linux GTK Bereich in Sachen UI.

Viel interessanter sind da mobile Plattformen wie Android oder UWP, denn diese haben einen vollkommen anderen Aufbau und können mit klassischen Desktop-UIs nichts anfangen.

Die Idee: OpenGL öffnet die Tore zwischen diesen Welten.

» Weiterlesen

Not NULL

Beim Stöbern in alten Codes, habe ich mich wieder an eine alte “Weisheit” erinnert, die ich oft verbreitet habe:

Nutze stets das NULL Makro, um Pointer zu prüfen.

Für reine C++ Entwickler ist das natürlich hinfällig (siehe nullptr) … doch wenn man seine Gebete (auch) an die Mutter C richtet, sieht die Sache ein wenig anders aus.

» Weiterlesen

Lithium Eisenphosphat Akkus

So cool Lithium-Polymer-Akkus und die üblichen 3.7 V Lithium-Cobalt Zellen auch sind, so kennen wir auch man alle die Videos, die aufzeigen, was beim Kurzschluss solcher Akkus passieren kann.

Eine Alternative dazu bieten Lithium-Eisenphosphat Akkus an, deren chemischer Aufbau solche extremen Gefahrensituationen ausschließt bzw. die Gefahren stark reduziert.

» Weiterlesen

Kein Kino für mich

Die Kino-Karte für Wonderwoman 1984 war schon bezahlt und in meinen Händen, und dann musste ich mich entscheiden … und … ich bin meiner Überzeugung treu geblieben und habe die Karte zurückgegeben.

Zumindest das schöne Wetter beim Spaziergang nach Hause hat mir die trübe Stimmung etwas aufhellen können.

» Weiterlesen

EAN-13 Barcodes

Neulich waren QRCodes und Datamatrix-Codes bei mir Thema.
Doch wie sieht es mit den älteren und am weitesten verbreiteten Barcodes aus?

Hier finde ich im OpenSource Bereich nur “böse” LGPL Varianten, oder Komponenten mit Abhängigkeiten zu OpenCV und Schlimmeren.

Natürlich kommt dann die Frage auf: Kann man das auch selbst schreiben?

» Weiterlesen

Store Apps manuell installieren

Tja … was ist jetzt besser?
Eine offene und freie Plattform, wo jeder sein eigenes Süppchen kocht? Oder ein zentralistischer Monarch, der Stabilität durch Einheitlichkeit verspricht?

Microsoft wollte mit seinen Windows Store Apps vom ersten zum zweiten Weg wechseln. Doch die Enterprise IOT LTSC (Long Term Service Channel) Varianten und die Server rudern wieder zurück.

Wie kann man das vereinen?

» Weiterlesen

Hamster Kolonien in Wien

Normalerweise erlebt man Tiere in Wien nur streng gesittet als Hunde an der Leine oder als Katzen hinter Fenstergittern in den Wohnungen. Ein paar Leute halten sich noch ein Meerschweinchen oder einen Vogel im Käfig (… oder sind mit einem verheiratet), aber das war es “in der Großstadt” somit auch schon, wenn man nach Tieren sucht.

OK … es gibt jede Menge Tauben in den Gassen, aber die zählen hier nicht wirklich, und die Exoten im Tiergarten lassen wir auch mal weg.

Aber fast niemand kennt die riesige Hamsterkolonie, die einen besonders schönen Fleck mitten in der Stadt buchstäblich untergraben hat.

» Weiterlesen

install.wim für FAT32 USB Stick

Früher waren Windows Vista, Windows 7 und Windows 8 Installations-Images in den install.wim Dateien nie größter als 4 GB. Und somit konnte man sie problemlos auf einen USB Stick packen, der mit FAT32 formatiert war.

Doch mit integrierten Updates und generell ab Windows 10 wurde die 4 GB Marke durchbrochen. Man kann einen USB Stick natürlich mit NTFS formatieren, doch dann funktioniert keine EFI-Installation mehr.

Die richtige Lösung ist: WIM aufsplitten.

» Weiterlesen

RockPI-X

Endlich ist mal wieder ein Stück Hardware bei mir eingetrudelt. Und zwar der RockPI-X, ein Intel Atom System-on-Chip Modul in der Dimension eines RaspberryPI Modell B.

Während auf den Raspberry PI Modellen Windows 10 in der ARM Version nicht wirklich gut lauffähig war (die IOT Core Version mal ausgenommen), habe ich mit dem RockPI erstmals die Möglichkeit ein vollständiges X86 64-bit Windows System auf einem Chipkarten großen PC zu installieren.

» Weiterlesen

Dialoge per Aufruf

Vor einem Jahr waren Dialoge bereits für mich ein Thema.
Jetzt stellt sich die Frage, wie man die Ergebnisse von Dialogen auch als Funktionsaufruf - also “synchron” per “blocking-call” - erhalten kann.

Oder anders gefragt: Wie wird eine UI Message-Loop innerhalb einer anderen UI-Message-Loop für begrenzte Zeit angekurbelt?

» Weiterlesen

QR Codes und Datamatrix

Bald kommen QR-Codes, die uns einen Impfstatus oder eine Testung bestätigen sollen.

Das ist doch der perfekte Zeitpunkt um diese beiden Bild-Kodierungen ins GATE Projekt aufzunehmen und mit ihnen zu experimentieren.

» Weiterlesen

Einheitliches Mapping

Mit der Einführung von Hashmaps war es nun so weit:

Die Map APIs im GATE Projekt müssen umgestellt werden.

Und dieses Unterfangen war mühsamer als erwartet. Denn inzwischen bauen einige Applikationen darauf auf, die ebenso angepasst werden mussten.

» Weiterlesen

Workfolders auf anderen Port legen

Da habe ich vor kurzem das Windows Server Update Service installiert und dabei gar nicht gemerkt, dass meine Server Work Folders seither nicht mehr funktionieren.

Der Grund war einfach: Ein Port Konflikt.
Aber dann kam noch ein dummes Anmeldeproblem hinzu und schon ward ein Drama geboren …

» Weiterlesen

GCC Binaries sind viel zu groß

Schon 2007 am Anfang meiner C++ Liebschaft wunderte ich mich stets darüber, dass Programme, die aus den gleichen Sourcen kompiliert wurden, unter Linux mit GCC Umgebung um einiges größer waren als unter Windows mit MSVC.

Und ja, das manifestiert sich vor allem im Einsatz von statisch kompilierten Bibliotheken.
Also was kann man dagegen tun?

» Weiterlesen

Lambda Experimente

Da Lambda Ausdrücke leider erst mit C++11 in den Standard eingeflossen sind, fällt ihre direkte Nutzung im GATE Projekt grundsätzlich weg.
Dann dann würden die Builds auf älteren Compilern unmittelbar fehlschlagen.

Aber … da stellt sich mir die Frage, ob man nicht mit Makros etwas basteln kann, was abwärts und aufwärts kompatibel ist?

» Weiterlesen