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.

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

Und warum heißt diese API jetzt so?

Abstaktion im Programmcode bedeutet auch, dass man sich die richtigen Namen, meist Überbegriffe zu einer Materie suchen muss.

Und weil uns einst ein alter Bekannter die Zeilen:

Schon gut! Nur muss man sich nicht allzu ängstlich quälen;
Denn eben wo Begriffe fehlen,
Da stellt ein Wort zur rechten Zeit sich ein.
Mit Worten lässt sich trefflich streiten,
Mit Worten ein System bereiten,
An Worte lässt sich trefflich glauben,
Von einem Wort lässt sich kein Jota rauben.

hinterließ, möchte ich mal etwas darüber “klagen”, wie schwer es am Anfang ist, das richtige Wort zum richtigen Begriff zu finden.

» Weiterlesen

Ein Abend im Coder-Dojo

Seit Jahren beschwere ich mich darüber, dass nichts (bzw. zu wenig) für den Nachwuchs in Sachen Programmierung getan wird. Und manche Universitäten bzw. manche Fachhochschulen lassen auch noch “technische Informatiker” auf die Welt los, die den Unterschied zwischen einer Schleife und einer Bedingung nicht kennen, und die Eltern kommen dann noch womöglich mit der Meinung:

Das brauchst du im Leben nie.

Wie gut, dass mich eine einfache Websuche auf eine Seite brachte, die den lustigen Namen Coder-Dojo trägt.

Aber richtig interessant wurde es, als ich feststellte, dass einige Städte in Österreich und auch im Ausland über so ein “Dojo” verfügen, wo motivierte Technikfreunde der jungen Generation eine Plattform anbieten, wo sie spielend das Tüfteln und Programmieren lernen und ausbauen können.

» Weiterlesen

Harald Lesch und das Weltklima

Es gibt leider nur wenige prominente Menschen auf dieser Welt, denen ich uneingeschränkten Respekt gegenüberbringen kann.

Denn Personen wie ein Mahatma Gandhi wurden heute durch Berufspolitiker und Musik-Casting-Show-Gewinner ersetzt.

Idealisten sind selten geworden, und deshalb freue ich mich, wenn der Astrophysikprofessor Harald Lesch seine Erfahrungen und auch seine Meinungen mit der Welt teilt und sowohl mit der Fachwelt wie auch mit uns einfachen Menschen verständlich und trotzdem auf hohem Niveau diskutiert.

» Weiterlesen

Aus China bestellen oder im lokalen Laden kaufen?

Der von mir schon oft gebrachte Spruch

Wer billig kauft, kauft teuer.

(und den ich natürlich von einem Kollegen geklaut habe) mag durchaus seine Berechtigung haben.

Und wenn ich mir einen Arduino UNO beim Elektronikhändler um die Ecke für 20 bis 25 Euro anschaue, dann frage ich mich immer, was der große Unterschied zu den Angeboten um 2.5 bis 3 Euro aus Fernost ist. Denn selbst mit 1 bis 3 Euro Versandgebühren (wo wir dann bei maximal 6 Euro insgesamt wären) ist der Preisunterschied natürlich gewaltig.

» Weiterlesen

Der Alphakanal bei Grafiken

Mit Alphakanal meint man in der Computergrafik keinen Fernsehsender, sondern eine zusätzliche Farbinformation eines Bildes.

Und genau an der Stelle wird es schwammig, denn viele Definitionen beschreiben den Alpha-Wert als Transparenz, also die Festlegung, wie viel eines Hintergrundes (oder anderen Bildes) durch einen Pixel durchleuchten kann.

Sieht man sich aber Programmierschnittstellen an, müsste man den Wert eigentlich gegenteilig benennen, nämlich “Deckkraft” (auch “Opacity” genannt).

» Weiterlesen

BIOS Interrupts und Funktionen

Aus der Sicht des Programmierers sind Betriebssysteme nichts anderes als Gerätetreibersammlungen, also Übersetzer zwischen einer individuellen Funktionswelt in einem standardisierten Schnittstellenraum.

Jeder Datenträger, jede Festplatte ist intern (oft) anders aufgebaut. Es wäre ein Alptraum, wenn die Anwendungsmacher für alle Möglichkeiten Code schreiben müssten.

Und lange bevor das aktuelle EFI eingeführt wurde und moderne Betriebssysteme für (fast) alles Treibermodule anboten, hatte IBM mit seinem IBM PC sich etwas ausgedacht, wie man diese “Übersetzung” gleich auf einen Chip unterbringen kann.

… und das waren BIOS - Interrupt-Funktionen.

» Weiterlesen

Ich und Linux

Ende der 90er gingen einige PC-Zeitschriften dazu über, ihren Heft-CDs eigene kleine Linux-Distributionen beizulegen.

Und als ich meinen 586er bekam, wurde der 486er für diverse Experimente frei, unter anderem auch für eine Linux Installation.

» Weiterlesen

Ich und Windows CE

Ein kleiner Windows-Rechner, der samt Bildschirm in die Hosentasche passt. Boah! Wie geil wäre es damals vor 20 Jahren gewesen, wenn ich so ein Teil besessen hätte.

Doch leider waren es nur Artikel, die ich Ende der 90er über diese “Organizer” oder “Handheld-PCs” zu lesen bekam.

Ebenso glasig wurden meine Augen, als geschrieben stand, dass man mit Embedded Visual Basic sogar für solche Kleinlinge UIs programmieren konnte
… doch auch das kenne ich nur aus Schilderungen.

» Weiterlesen

Einen Reed Sensor für's Fitness-Bike bitte!

Ich habe mir nun auch so ein Fitness-Bike, zu deutsch Heimtrainer oder “Fahrradergometer” bestellt, damit ich die Zweit- und Dritt-T-Shirts wo ablegen bzw. aufhängen kann, und vielleicht tue ich damit ja auch etwas für meine atrophierten Beinmuskeln.

Wichtig war, dass es kostengünstig zu erwerben war (damit man später nichts Teures in die Ecke stellt). Und so kam gestern das Paket mit den Teilen an, die schnell zusammengeschraubt waren.

Doch der kleine integrierte Boardcomputer blieb fest auf dem Zahlenwert Null stehen, egal wie angestrengt man in die Pedale trat.

» Weiterlesen

Agile Softwareentwicklung

Nachdem ich neulich einem schönen Gespräch beiwohnen und es auch mitgestalten durfte, wo auch der Begriff SCRUM fiel, ist es an der Zeit das Gebiet der Agilen Softwareentwicklung mal aufzuschnüren.

Da mehr und mehr Softwareprojekte sich “SCRUM” auf die Brust schreiben, um sich vor der “klassischen Softwareentwicklung” abzuheben, stelle ich mir offen die Frage, wie viel nun an Konzepten im “neuen” Ansatz steckt, und was davon letztlich nur Buzzwords sind.

» Weiterlesen