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.

BBC micro:bit

Wenn ich eines emotional überhaupt nicht verkraften kann, dann sind das 14-jährige Jungs, die mehr über Technik wissen, als ich.

So geschehen letzten Freitag im CoderDojo, das einige Beispielprogramme für die micro:bit Platine in seinen Übungsmappen hat.

Also in die Schuhe, auf zum Händler, genommen, bezahlt und zurück nach Hause.

» Weiterlesen

Mein C64 ist tot

Im Jahr 1996 habe ich ihn von einem Lehrer an der Schule geschenkt bekommen, und ich liebte diese hellgrau-braune Kiste: Mein alter Commodore 64.

Die hohen Zeiten der Heimcomputer hatte ich natürlich nicht mehr miterlebt, doch schon damals, als gerade mein Wechsel von DOS zu Windows 95 stattfand, hatte dieser Großvater der PCs auch meine Aufmerksamkeit.

… vor allem weil Programmierung dort kein Zusatz sondern eine absolute Notwendigkeit war. Und so entstand nebenbei eine nette Freundschaft zum PC-Kollegen aus dem vergangenen Jahrzehnt.

» Weiterlesen

Links im Dateisystem

Man kann durchaus behaupten, ich sei “etwas aus der Art” geschlagen.

Denn während viele Programmierer “Links” in unixoiden Dateisystemen als Segen betrachten, sehe ich das ganz konträr und behaupte, dass Links eher ein Feind der Ordnung als dessen Freund sind.

Also … was stimmt nicht mit mir?

» Weiterlesen

Weltfrauentag

Selbst wenn ich als Mann 50 Prozent meiner Privilegien einfach ablege, bin ich wahrscheinlich immer noch besser gestellt, als eine durchschnittliche Frau.

Und deshalb soll uns der heutige Weltfrauentag daran erinnern, dass wir zwar viel über Gleichberechtigung reden, sie aber immer noch lange nicht erreicht haben.

» Weiterlesen

Captain Marvel: Retro-Cameo hoch 3

Pünktlich am reservierten Platz wurde das Handy auf lautlos geschaltet, noch schnell ein Zug von der Limoflasche und dann wurde es still. Die ersten Minuten Vorspiel waren - wie immer - vorüber und dann kam, auf was “wir” gespannt wartet hatten:

Die Violinen stimmten an, die ersten rötlichen Bilder klatschten auf die Leinwand und dann kam …

Ja was? Nicht Iron Man, Hulk und Black-Widow?

Nein, sondern Stan Lee, Stan Lee und noch viele weitere Male Stan Lee.

» Weiterlesen

BASE64 Zeichencodes

Zu den ältesten und ersten Kodierungen, die ich lernen durfte, zählte BASE64. 3 Bytes zu je 8 bits (3 x 8 = 24 bits), werden auf 4 Bytes aufgeteilt, wobei nur 6 bit breite Wertebereiche genutzt werden, schließlich ist ja 4 x 6 auch gleich 24.

Und dieser 6-bit breite Wertebereich wird auf die ASCII-Zeichen A-Z, a-z, 0-9 und ‘+’ und ‘/’ aufgeteilt.

Und so können wir jeden erdenklichen binären Block als reine Buchstaben- und Zahlenkombinationen darstellen, womit keine Sonderzeichen oder ASCII Steuercodes benutzt werden müssen.

» Weiterlesen

Die Kraft der Sonne

Die stärkste Energieform in unserem Sonnensystem ist und bleibt die Sonne. Sie schuf die Voraussetzungen mit, die unser Leben überhaupt erst ermöglicht hat und liefert weit mehr Energie, als wir Menschen überhaupt nutzen können.

Ist es daher nicht pervers, dass wir ausgerechnet Kohle, Öl und Gas verbrennen um im Sommer Räume herunter zu kühlen und im Winter unsere Häuser zu beheizen?

Die Lösung: Solarenergie, Solarwärme und Photovoltaik. Und all das existiert schon seit über 50 Jahren in der Raumfahrt, doch in den letzten 15 Jahren wurden sie auch für Privathaushalte leistbar.

» Weiterlesen

HTTP Clients: WinInet und libCURL

In Visual Basic 6 war auch die nicht-grafische Programmierung “grafisch”. Es ist logisch, dass man einen Button oder ein Textfeld auf eine Fensterform zieht, aber dass man eine “Internetverbindung” auch wie einen Button auf einem Fenster ablegt, finde ich bis heute “merkwürdig”.

Dieses alte VB6 ActiveX “Internet Transfer Control” war nichts weiter als ein Wrapper um die WinInet Komponente, also DIE HTTP Komponente von Windows, die mit dem Internet Explorer 2 und 3 schon unter Windows NT 4 und Windows 95 eingeführt wurde.

Heute ist diese alte C-API neben dem modernen WinHTTP parallel zur libcURL unter Unix Systemen für mich die primäre Anlaufstelle, wenn Programme per HTTP(S) Daten aus dem Netzwerk laden möchten.

» Weiterlesen

Sicherungshaft

Anfang der 40er Jahre des vergangenen Jahrhunderts verschwand nahe eines Bauerndorfes in der nördlichen Ostmark ein junger Mann spurlos. Er sollte mit zwei Ochsen den Acker pflügen. Die Ochsen fand man verlassen auf dem Feld und seine Mutter weinte - wie man so sagte - “kübelweise”.

Etwas später langte der Verhaftungsbescheid bei der Familie ein, dass der 17-Jährige wegen Hetzerei gegen den Staat “zur Sicherheit” in Gewahrsam genommen wurde, weil Mitbürger sein aufrührerisches Verhalten gemeldet hatten.

Das “aufrührerische Verhalten” war die trotzige Weigerung die “rechte Hand” beim Gruß zu heben oder Sprüche zu klopfen wie nachfolgend:

Gott der Herr schuf Menschen und Tiere,
nur keine Unteroffiziere,
doch in einer schwachen Stunde
schuf der Herr auch diese Hunde.

Dieser damals junge Mann war mein inzwischen lange verstorbener Großvater.

» Weiterlesen

Threads: Arbeiter und Schlangen

Viele APIs stehen uns nur in synchroner Form zur Verfügung. Dazu zählen vor allem Funktionen für Kompression und Verschlüsselung.
Will man diese im Hintergrund werken lassen während sich das Hauptprogramm etwa um die UI kümmert, erzeugt man einen weiteren Thread und lässt die Arbeit dort ausführen (Workerthread).

Und dann gibt es APIs die den Kontext des Threads auf dem sie laufen verändern. Es gibt thread-lokale Variablen oder es werden sogar eigene Einsprungpunkte in diesem Thread aktiv.

Das kann wiederum mit anderen APIs kollidieren oder dort Seiteneffekte auslösen. Auch hier greift man gerne zu separaten Threads, wo Aufgaben in eine Warteschlange (Queue) eingefügt werden und dann hintereinander abgearbeitet werden.

» Weiterlesen

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