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.

Der Internet Explorer

Als um das Jahr 2000 der Konzern Microsoft vor die Richter gestellt wurde um ihr monopolistisches Auftreten zu durchleuchten, fiel unter anderem auch die Aussage:

Der Internet Explorer ist so tief mit dem Betriebssystem verknüpft, dass man ihn nicht einfach entfernen kann.

Ich würde ja behaupten, dass bestmöglich versucht wurde diese Aussage umzusetzen, damit man den damals herrschenden Browserkrieg für sich entscheiden hätte können.

Einen Gefallen hat man sich damit allerdings absolut nicht getan.

» Weiterlesen

Windows Subclassing

Subclassing ist meiner Meinung nach einer der dümmsten Begriffe, die in der Windows Welt beheimatet sind. Ursprünglich dachte ich, dass sich den Begriff ein Anfänger einfallen gelassen hat und das Internet den Begriff verbreitet hat.

Doch offenbar stammt der Begriff von Microsoft höchst selbst und ist somit zulässig.

» Weiterlesen

BNC LANs und Strahlung

Als “Eigentlich-Nur-Software-Entwickler” waren mir Hardwareprobleme immer suspekt. Schließlich konnte man sie mit Software nicht lösen oder bestenfalls nur umgehen.

Um wieder einmal den alten Spruch

Wer billig kauft, kauft teuer.

aufleben zu lassen, erinnere ich mich gerne an mein erstes LAN zurück:

» Weiterlesen

Arduino Esplora

Der erste Weihnachtsmann war da und hat eine Hardware-Lieferung dagelassen.

Darunter befand sich auch ein Nachbau eines Arduino Esplora.

Ich bin schon gespannt, ob dieser aufgemotzte Leonardo mein neues Spielzeug werden wird.

» Weiterlesen

3D Druck

Für die Fans der ersten Stunde von 3D Druckern ist diese Technologie inzwischen alltäglich, doch für mich ist es noch relativ neu. Denn erst vor 1 1/2 Jahren entschied ich mich spontan einen kleinen Einsteigerdrucker zu kaufen.

Der Da Vinci Mini war preislich attraktiv genug, damit es zu verschmerzen gewesen wäre, wenn das Ding in der Ecke langsam verstaubt wäre.

» Weiterlesen

CallByName

Die Funktion CallByName war für mich eine der Besonderheiten, die mit Visual Basic 6 in die Sprache aufgenommen wurde. Sie hat es via VBA auch in die Office Familie geschafft und ermöglicht eine ganz spezielle dynamische Erweiterbarkeit von Programmen.

Denn während die Menge an aufrufbaren Funktionen und Code im wesentlichen zur “Entwurfszeit” vom Programmierer festgelegt wird und nach dem Kompilieren nicht mehr anwachsen kann, gestattet uns diese Funktion in Kombination mit ein paar anderen neue Funktionen aufzuführen, die dem Programmierer nicht bekannt sein müssen.

Hmm … ein spannendes Feature…

» Weiterlesen

N-lightening Windows

Bevor mit Windows Vista das Image basierte Rollout-Verfahren des Betriebssystems massentauglich wurde, gab es für die Vorgängersysteme Tools, um die Windows CDs entsprechend zu patchen.

Eines davon war n-Lite, welches ich jahrelang nutzte, um Windows 2000, Windows XP und Server 2003 Images auf den neuesten Stand zu bringen.

» Weiterlesen

Errorcodes

Vor Jahren habe ich Exception in C++ als “die beste und genaueste” Methode beschrieben, um Fehler zu kommunizieren.

Doch im C basierten GATE Projekt steht dieses Feature auf unterster Ebene nicht zur Verfügung.

Also tun wir das, was seit den Anfängen der Programmierung getan wurde:
Wir ziehen Zahlen heran um anzuzeigen, was uns gerade nicht gepasst hat.

» Weiterlesen

Namensräume

Einer der Gründe, warum im GATE Projekt alle Funktionen und Typennamen so verflucht lange sind, liegt an der Tatsache, dass die Sprache C keine Namensräume anbietet.

Es bleibt einem gar nichts anderes übrig, als den Namensraum als Teil des Funktions- oder Typennamens zu kodieren.

Blickt man tiefer in die IT, stellt man fest, dass Namensräume ein gängiges Konzept in fast allen Bereichen sind, um Datenstrukturen zu ordnen.

» Weiterlesen

Der Mythos Blockchain

Ein Jahr ist der große Hype um Bitcoin nun her. Die Blase ist geplatzt … leider noch nicht ganz, und jetzt frage ich mich: Was ist geblieben?

Wenn eine Technologie names Blockchain fast 10 Jahre so herumliegt, der Mainstream sich nicht wirklich dafür interessiert … und plötzlich geht alles durch die Decke, weil das Gerücht die Runde macht: “So wirst du reicht”, dann sollte man etwas skeptisch sein, ob es tatsächlich die Technologie ist, was so genial daran ist.

» Weiterlesen

Die Servos vom Arnold kalibrieren

Die Terminatoren vom Typ T-800 müssen mit äußerst gut kalibrierten und robusten Servomotoren ausgestattet gewesen sein … bzw. gewesen werden. Denn der Nachbau der Mechanik des menschlichen Körpers ist äußerst schwierig.

Mir zumindest gelingt es mit meinem Bausatz leider nicht, einen Greifarm so zu steuern, dass er wirklich exakt gleiche Bewegungen durchführt. Denn wenn jedes Gelenk auch nur ein kleines bisschen abweicht - also seine Endposition nicht ganz genau erreicht - liegt die Vorderzange daneben.

Der Bau eines selbstreparierenden Roboters ist so leider nicht möglich.

» Weiterlesen

jQuery Verbot

Ich bin regelmäßig davon entsetzt, wie es meine Webbrowser stets schaffen, die 3.2 Gigahertz Prozessoren meines PCs voll auszulasten um einfachste Webseiten wie Suchmaschinen-Ergebnisse anzuzeigen.

Gleichzeitig wird das Arbeiten auf ARM und Atom Tablets zur Qual.

Warum zur Hölle sind Webseiten heute langsamer, als zu Zeiten von 56KBit Modems?

» Weiterlesen

GUIs und Threads

Auch wenn modernere Frameworks etwas anderes versprechen, so haben alle bekannten GUI Umgebungen die Eigenschaft, dass sie im Kern “single-threaded” aufgebaut sind.

Oft kommt der Einwand: “Das kommt aus der Vergangenheit”, aber das hätte man schon lange ändern können.

In Wahrheit hat es einige Vorteile, wenn UI Aktionen linear abgearbeitet werden können.

» Weiterlesen

Defekte Profile

Grafische Benutzeroberflächen, auch GUIs genannt, leiden seit ihrer Erfindung an einem ihrer wichtigsten Features:
Nämlich dem Speichern des letzten Zustandes oder der letzten Aktionen des Benutzers.

Während einfache Tools und Konsolenprogramme bei jedem Start glauben, sie seien das erste mal gestartet worden, wollen “die schönen Programme” dort weitermachen, wo sie zuletzt aufgehört haben.

Das klappt so lange, bis ihr Gedächtnis nachlässt …

» Weiterlesen

Sessions unter Linux

Während der Session-Begriff unter Windows noch einigermaßen eindeutig ist, haben wir unter Linux mehrere Hierarchie-Ebenen, auf die dieser Begriff bedeutet werden kann.

Von Prozessen über Logins bis hin zu grafischen Sitzungen finden wir hier unterschiedliche Mechanismen vor, die wir jeweils als “Session” bezeichnen können.

» Weiterlesen

Sessions unter Windows

Eine “Sitzung” auch als “Session” bekannt, kann je nach Applikationssicht alles mögliche sein.

Windows nutzte den Begriff schon in seinen Anfängen.

This will end your Windows Sessions.
(OK) (Cancel)

Doch mit NT 4 und der Einführung von Terminal-Services, hat der Begriff auch programmatisch Bedeutung.

» Weiterlesen

Notwendigkeit des eigenen Ansatzes

Oft behaupten Personen, dass man in der Software-Entwicklung niemals Dinge doppelt tun soll.
Das mag ja grundsätzlich stimmen, doch wird es damit gleich gesetzt, dass bestehende Praktiken nicht mehr hinterfragt werden dürfen.

Ich sehe das anders: Den besten Wissenseinblick erlangt man oft erst durch den Nachbau von Bestehendem.

» Weiterlesen

ZIP drive

Etwas vor dem Jahr 2000 wurden Disketten für mich endgültig zu klein, um Daten darauf auszutauschen. Textdokumente wurden mit jeder Office Version größer und anstatt von kleinen WMF Vektorgrafiken fanden immer mehr echte Bilder Einzug in die Dokumente.

Das gleiche passierte auch mit Quellcode. Immer größer wurden die Resource-Dateien, bis sie schließlich nicht mehr auf 1.44 Megabyte Datenträger passten.

Doch es gab eine Lösung: Das ZIP-Laufwerk von Iomega

» Weiterlesen

fork()

Unixianer preisen fork() für die schnelle und effiziente Art, neue Kind-Prozesse zu erzeugen.

In Windows ist dieses Feature (offiziell) nicht enthalten, was bei der Portierung von Applikationen immer zu Problemen und recht komplexen Workarounds führt.

Während fork() in manchen finalen Programmen vor allem vor der Erfindung von Threads eine großartiges Feature darstellt, so ist - meiner Meinung nach - seine Funktion für Bibliotheken störend.

» Weiterlesen

Alignment: Korrekte Ausrichtung

Wenn aus Dateiformaten oder Datenpuffern Variablen entnommen werden, bzw. wenn Pointer auf eine bestimmte Stelle gesetzt werden und als ein bestimmter Typ re-interpretiert werden, dann hat man PC oft Glück und das funktioniert.

Will man den gleichen Code auf den Raspberry PI oder aufs SmartPhone portieren, erlebt man Abstürze.

Vielleicht handelt es sich dabei um Alignment- Exceptions.

» Weiterlesen