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.

Wrapper und Abstraktionsschichten

Wie viele Layer und Abstraktionsschichten “über” einer konkreten Implementierung sind gut und ab wann ist die Grenze des guten Geschmacks erreicht?

Diese Frage stelle ich mir bei jedem Projekt aufs Neue und komme stets zu anderen Ergebnissen.

» Weiterlesen

Hackers 'n' Slackers

Oder: Was es so für Typen von IT-Menschen gibt

Die vergangenen Wochen haben mich einige neue Gesichter kennen lernen lassen. So ist das eben beim Job-Wechsel und den Bewerbungsterminen.

Dabei ist es immer wieder interessant mitzuerleben, wie “andere” Programmierer mit ihrem Beruf, ihrer Berufung und ihrem Leben umgehen. Bei einigen Stories denkt man sich:

Oh - mein - Gott, was hast du in der Software-Entwicklung verloren?

Doch dann gibt es wieder diese Highlights, wo man sich denkt:

Hey! Du bist jetzt mein Freund!

» Weiterlesen

Festplattengrößen

Es ist schon faszinierend, wieviel Daten wir Menschen (und Maschinen) brauchen und produzieren. Belegte mein erstes DOS+Windows so um die 20 MB, brauchte Windows XP bereits 1 GB und seit Windows 10 bekommt man das OS unter 10 GB (fast) nicht mehr installiert.

Doch schlimmer sieht es mit unseren Daten aus, die wir so mit uns herumschleppen. Denn während meine Schuldokumente und fast alle Quellcodes auf ein bis 2 Disketten passten (so um die 2 MB), fängt heute jedes einzelne geschäftliche E-Mail mit einer Logo-Grafik von 5 MB an und viele Einzeldokumente mit ein paar Seiten Text belegen den Platz, den früher meine gesamte Festplatte bieten konnte.

Und wenn man die Selfies und VOD Movies mitrechnet, die jeder auf dem Smartphone mitschleppt, kommen wir in noch höhere Sphären.

» Weiterlesen

Luftreiniger

Was macht man mit den alten CPU Lüftern, die seit Jahren in einer Schachtel liegen?

Genau, man baut sich daraus einen Luftreiniger.

Und dank einiger Vorlagen auf thingiverse.com (Suchbegriff “air purifier”) braucht man neben einem 3D-Drucker nur noch eine Kohlefiltermatte.

» Weiterlesen

Commanders, von Norton bis Midnight

Egal ob es sich damals um DOS oder heute um Linux Konsolen handelt(e), niemand will einzelne Dateien per Kommandozeile suchen, bearbeiten und kopieren.
(Außer es handelt sich um sich wiederholende Muster, die automatisierbar sind.)

Und so fand ich schon Mitte der 90er Jahre schnell zum weitverbreiteten Tool Norton Commander (NC.EXE), mit dem ich auf dem Textbildschirm mit den Pfeiltasten durch das Dateisystem huschen konnte.

» Weiterlesen

Zeitrechnungen

Da meinte doch tatsächlich mal ein Java-Programmierer, ich solle keinen Code nutzen, der auf den Calendar - Klassen basiert und SimpleDateFormat einsetzt, denn diese sind nicht Thread-sicher.

Ich kann das ja immer noch nicht glauben, dass Java in seinem Aufbau so defekt ist, dass es Kalender-Rechnungen in globalen Variablen vermurxt und dann Fehler oder Abstürze produziert, wenn unterschiedliche Instanzen in Threads benutzt werden.

… doch offenbar melden mehrere Seiten solche Probleme.

» Weiterlesen

setjmp / longjmp

In einer Zeit, als die alten Götter herrschten, schrie das Land, das Kriegsherrn in Aufruhr versetzten, nach …

Exceptions, weil weder Hercules noch Xena ein Konzept zur strukturierten Fehlerbehandlung vorweisen konnten.

C++ wurde erst 1998 vollständig standardisiert und die anderen Sprachen … gab es die eigentlich schon?

Doch einer der ältesten Titanen, nämlich C, zeigte sich unbeeindruckt, da er schon lange über ein Technik verfügte, in “Ausnahmefällen” quer durch den Code zu springen.

» Weiterlesen

Umgebungsvariablen und mehr

Ein paar wichtige Informationen bekommt jeder genetisch mitvererbt, wenn er das Licht der Welt erblickt.
Das ist bei Prozessen ganz ähnlich wie bei Menschen.

Die “Umgebung” (“Environment”) beinhaltet einige Datenwerte, die der Elternprozess seinen Kindern “aufdrücken” kann, und wenn er sich nicht weiter darum kümmert bekommen die Kinder das gleiche, was er selbst auf den Weg mitbekommen hat … die Umgebung wird also vererbt.

» Weiterlesen

Pipes: Rohrpost zwischen Prozessen

Hätte man “Pipes” in der Programmierung als “Pipeline” bezeichnet, würden vielleicht mehrere Entwickler den Namen kennen und die Technik einsetzen.

Linux bzw. Unix - Fans wissen mit dem Begriff gut umzugehen, doch auf Seiten der Windows Gemeinde fehlt dieses Wissen leider nur all zu oft.

Dabei sind Pipes eine schöne klassische Form Daten zwischen Eltern- und Kindprozessen auszutauschen.

» Weiterlesen

Windows Management Instrumentation (WMI)

WBEM, oder auch Web-Based Enterprise Management ist ein Ansatz um Administration und Fernwartung in großen Netzwerken (Unternehmen) zu standardisieren.

Microsoft preschte schon vor den 2000ern mit seiner eigenen COM-Implementierung davon vor, nannte es WMI und deshalb haben wir heute zu vielen Systemkonfigurationen primär nur über die WMI-Schnittstellen Zugang.

» Weiterlesen

Durch den Callstack wandern

Verwaltete Sprachen wie Java oder jene des dotNet Frameworks definieren einen Standard wie Funktionen ausgestalten sein müssen.
Damit kann das Framework seine eigenen Funktions-Aufrufbäume genau zurückverfolgen.

Das merkt man vor allem bei Exception, die ganz genau wissen woher sie kamen.

C und C++ kennen einen solchen Standard für den Aufbau des Callstacks nicht, weil im Zuge der Optimierung Funktionen eingebettet (Inlining) werden können oder andere interne Calling-Conventions benutzt werden dürfen.

Will man aber dennoch “seine Herkunft” zur Laufzeit ermitteln muss man selbst Hand anlegen.

» Weiterlesen

Eiscreme ohne Zucker

Wäre es nicht so Deppen-einfach, dass sogar ich es hinbekomme, würde ich nicht darüber schreiben:

Also: Wie kann man Vanille-Eiscreme ohne Kohlenhydrate zubereiten, damit man in seiner Low-Carb Diät auch etwas zum Naschen hat?

» Weiterlesen

ANSI und UNICODE

Während Windows 9x nur ANSI-kodierte Byte-Strings kannte, unterstützte NT 4 einige Unicode-Bereiche in der Form von UTF-16. Die Windows API ist daher auf NT-Systemen großteils doppelt implementiert.
Pessimistisch könnte man auch sagen: Sie ist gespalten.

Wer mit “alten” ANSI-Bytes-Strings arbeitet darf hinten ein großes “A” anhängen, und wer Unicode nutzen will, lässt seine APIs und Strukturen auf ein großes “W” für Wide-Character enden.

Die meisten kümmern sich jedoch darum nicht sondern nutzen die API ohne “A” oder “W” Suffix und verlassen sich darauf, dass die Windows-Header automatisch die richtige Form wählen.

» Weiterlesen

Rechte und Pflichten im Dateisystem

So wie sich Sommer und Winter abwechseln, so kämpften Microsoft und die OpenSource Programmierer jahrelang um “das Beste” Berechtigungskonzept.

DOS und Windows 3.x und 9x waren rechtelos und damit den Unix-Derivaten schwer unterlegen. Mit Windows NT 3 und NT 4 legte man ACLs (Access Control Lists) über FAT32 und taufte es NTFS, was flexibler als die alten POSIX-Rechte war, die nur zwischen einem Eigentümer (Owner), einer Gruppe (Group) und allem anderen (Other) unterschied.

Etwas später zogen Linux und BSD nach unten bauten einen erweiterten POSIX Entwurf ein, der diese Zugriffslisten (ACLs) auch auf ihrer Seite möglich machte.

Und letztendlich versuchte man in beiden Welten durch diverse Tricks die begehrten “Administrativen Privilegien” stückweise den Anwendungsprogrammen bereitzustellen, ohne dass man gleich alle Macht dem Standard-Benutzer-Account vor die Füße warf.

Um niemanden zu beleidigen sagen wir deshalb: Es steht nun unentschieden.

» Weiterlesen

Hash-It, und das Dirty-Bit fällt weg

In der letzten Episode unserer Daily-Soap “Gute APIs, Schlechte APIS” sahen Sie:

Aufruhr in der Editoren-Straße! Großmutter Textbox zeigte erste Anzeichen für Demenz, als ihr Schwiegersohn Updatetimer sie nach der aktuellen Cursorposition fragte. Während dessen plagen Familienvater Streamwriter schwere Gewissensbisse, nachdem er heimlich mit seiner Jugendfreundin UTF-16 fremd gegangen war, während seine angetraute UTF-8 zu Hause saß und den kleinen ANSI-Codec stillte. Parallel kam es zu einer Schlägerei zwischen dem pubertierenden Jungen ToolBar, der mit seinem Zimmergenossen MenuBar um seine ID-Zuordnung im Streit lag. Und während alle ihren Problemen nachgehen, beobachtet Professor Statemanager distanziert und dennoch mit Sorge, wie sich Grußmutter Textbox’ Gesundheitszustand verändert.

» Weiterlesen

Kompression: Von ZLIB bis LZMA

Ach die liebe ZLIB … nichts kommt ohne sie aus und immer noch hat sie den Speichermanager mit im Schlepptau um auch noch unter DOS mit 64 KByte auszukommen.

Die deflate Kompressionsmethode zählt zu den ältesten und am weit verbreitesten und ist die Basis des GZIP und ZIP Formats.

Da sie als OpenSource zur Verfügung gestellt wird, wird sie auch intern in vielen Produkten benutzt um Datenmengen zu verkleinern.

Doch im Laufe der Zeit wurden neuere Algorithmen entwickelt, die durchaus mit der alten ZLIB in Konkurrenz treten.

» Weiterlesen

Videoschnitt mit Virtual DUB

Fortsetzung zu gestern: Apropos Video!

Das Video-Tool Virtual-DUB zählte für über 10 Jahre zu einem meist genutzten Tools am PC.
Schließlich wurde jede Woche entweder etwas im Fernsehen mit der der TV-Karte aufgenommen, oder ein DVD-Inhalt auf eine CD herunter konvertiert.

Und das tat ich mit dem OpenSource Video-Editierungs- und -Konvertierungs-Tool Virtual DUB (www.virtualdub.org.

» Weiterlesen

Fernsehen am PC

Nachdem der Millennium-Bug (wie erwartet) überhaupt nichts angerichtet hatte, war eine der ersten Investitionen im neuen Jahrtausend eine TV-Karte.

Ich hatte bei einem Bekannten mit großen Augen verfolgt, wie er “am Computer” das terrestrisch ausgestrahlte Fernsehprogramm in einem Fenster unter Windows 98 sehen konnte, und wusste: “Das will ich auch haben!”

» Weiterlesen

Langsamer Nachdenken

In der Programmierung zieht sich ein bestimmter Faden durch meine persönliche Entwicklung, die die Art der Nutzung der Sprachen entscheidend geprägt hat.

Und dabei handelt es sich um “langsamere” Systeme.

In Jugendtagen lag dies stets an fehlenden Geldmitteln, dass das Low-Cost System eingekauft wurde und die High-End Gamer-Maschine gar nicht erst beachtet wurde.

Dieses Situation hat sich bis heute nicht geändert, obwohl es heute einen taktischen und keinen finanzieller Hintergrund dafür gibt.
Denn die Devise lautet: “guten” Code zu produzieren, der auch auf langsameren und älteren Systemen vernünftig ausführbar sein soll.

» Weiterlesen

Schwarz-Weiß oder graue Grafik

Ja, es hatten damals viele gedacht, dass zu den 2 Pokemon Editionen Schwarz und Weiß wie in den Generationen zuvor etwas später eine dritte erscheinen würde. Und da lag die Spekulation auf den Namen “Grau” natürlich nahe.

Doch Nintendo bzw. Game Freak machte allen Strich durch die Rechnung und brachte sowohl Schwarz als auch Weiß in einer 2. Edition heraus und brach somit im Jahr 2012 ein Schema, welches sie seit 1998 konsequent verfolgt hatten.

Das Umrechnen von Farbpixel in graue oder im Extremfall in schwarz-weiße hat auch heute noch Relevanz, wenn es um das sparen von Speicherplatz geht, oder um Bereiche, wo Farben irrelevant sind (z.B. in bestimmten Szenarien der Bilderkennung).

» Weiterlesen