Die Nerd Enzyklopädie 30 - Die falsche Fehlermeldung

Mitte der 1990er Jahre startete in den USA ein besonderer Internet-Provider seinen Dienst: WebTV Networks Incorporated. In der Regel benötigte man zu dieser Zeit für den Zugang zum Internet ein Modem, das zwischen Telefon-Dose und Computer angeschlossen wurde. WebTV funktionierte mit einer Set-Top-Box und einem Fernseher und ermöglichte so den Zugang zum Internet auch ohne Computer. Der Werbe-Slogan lautete:

You’re surfing the Web with a remote control in one hand and a handful of cheese puffs in the other. Now that’s progress.

Die Nerd Enzyklopädie 29 - Programmieren mit Emojis

Texte bestehen aus Sätzen, Sätze bestehen aus Wörtern und Wörter bestehen aus Buchstaben bzw. genauer Schriftzeichen. Wir alle kennen es, das lateinische Alphabet, arabische Ziffern aber auch kyrillische Schriftzeichen oder die Sinogramme der chinesischen Schrift. All diese Symbole versteht der Computer dank einer großen Tabelle oder auch „ Zeichensatz“. Als Quasi-Standard hat sich in den letzten Jahren Unicode etabliert.

Hefte raus, Lerneinheit!

Ein Zeichensatz (engl. „character set“) beschreibt die Menge aller verfügbaren Zeichen. Das wäre z.B. ein sehr kleiner Zeichensatz, der nur die Großbuchstaben des lateinischen Alphabets darstellen kann:

Die Nerd Enzyklopädie 28 - Damönen aus der Nase

In der Informatik gibt es den Begriff des „undefinierten Verhaltens“ (undefined behaviour) [WIKI7]: Wenn eine Software bzw. Code auf unterschiedlichen Systemen zu unterschiedlichen Ergebnissen führt, was natürlich nicht vorkommen darf, spricht man von eben diesem „undefinierten Verhalten“. In der Programmiersprache C hat sich dafür der Begriff „nasal demons“ etabliert. Den Ursprung hat dieser Ausspruch in der Usenet Gruppe comp.std.c und einer Diskussion in 1992. Ein Nutzer meinte damals:

“When the compiler encounters [a given undefined construct] it is legal for it to make demons fly out of your nose” [CATB]

Die Nerd Enzyklopädie 27 - Die Geschichte von Mel

Die “Geschichte von Mel“ ist eine Reminiszenz an die frühen Jahre der Informationstechnologie. In der Geschichte verarbeitet Ed Nather seine Erlebnisse als Softwareentwickler bei der Royal McBee Computer Corporation, einem Hersteller von Computern.

In 1956 vertrieb die Royal McBee zusammen mit der General Precision Inc. den LGP-30, einen „röhrenbestückten Magnettrommelrechner“ [STUT1]. Der Rechner kostete damals beeindruckende 47.000 USD, was heute in etwa 470.000 USD entspricht [WIKI8].

Melvin „Mel“ Kaye (geb. Kornitzky), Nathers Kollege, entwickelte für diesen Computer ein BlackJack-Spiel, das sich sehr großer Beliebtheit erfreute und z.B. auf Messen zu Demonstrationszwecken vorgeführt wurde.

Die Nerd Enzyklopädie 26 - FOCAL

FOCAL (für Formulating On-line Calculations in Algebraic Language) ist eine Programmiersprache, die 1968 erstmals vorgestellt wurde. Entwickelt wurde sie von Richard Merrill von DEC, Digital Equipment Corporation.

FOCAL war für den Einsatz auf den PDP Computern gedacht (Programed Data Processors). 1969 veröffentliche Jim Storer, damals Schüler an der Lexington High School, für den PDP-8 das in FOCAL geschrieben Spiel Lunar Lander. Der Programmcode bestand aus nur 40 Zeilen! FOCAL ist vergleichbar mit BASIC; aber bei weitem nicht so populär. Ein Grund war sicherlich die strenge Lizenzierungs-Politik von DEC. Aber auch Microsoft könnte, wenn man diese Spekulation zulässt, seinen Teil zum Misserfolg von FOCAL beigetragen haben.

Die Nerd Enzyklopädie 25 - Bare Metal Programming

Übersetzt heißt „bare metal programming“ etwa so viel wie „Programmieren am reinen Metall“. Gemeint ist damit, dass man eine Software entwickelt, die direkt mit der Hardware kommuniziert, ohne Umwege über Bibliotheken, Schnittstellen oder ein Betriebssystem.

Ein Entwickler, dessen Name nicht überliefert ist, weshalb das ganze vielleicht eher der Kategorie „sympathische Legende“ zuzuordnen ist, nahm den Begriff des „Bare Metal Programmings“ Ende der der 1980er etwas zu wörtlich. Er arbeitete an einem „discrete component“ Computer, also einem Computer, bei dem die Transistoren sichtbar im Gerät verbaut sind (der erste Supercomputer, der IBM 7030 von 1961, bestand aus 169.100 Transistoren. Damit benötigte alleine die CPU eine Fläche von knapp 83qm [EDTH1].)

Die Nerd Enzyklopädie 24 - Zeichenketten braten

Nerd-Enzyklopädie #24

Ganz frei nach dem Motto: Es gibt nichts, was man nicht braucht (oder so ähnlich) hat man sich bei der Programmiersprache C wohl gedacht und eine Funktion implementiert, die aus einer Zeichenkette ein Anagram erzeugt [MAN1]:

strfry

Ausgesprochen steht strfry für „string fry“, also „Zeichenkette braten“ und diese Funktion macht nichts anderes, als die Zeichen eines Strings zufällig neu anzuordnen:

strfy(„Hello World“)  
eoWloHl dlr

Guten Appetit.

Die Nerd Enzyklopädie 23 - 30 x 10 = 1.000

Wenn du deinen Python-Nachlass mit ein wenig Pfeffer würzen willst, empfiehlt es sich, die „Definition eines Integers“ zu ändern. Wenn du in Python eine Zahl verwendest, nehmen wir die 30, verwendet Python die 30 als Referenz auf ein Objekt im Speicher, in dem wiederum der Wert 30 hinterlegt wird. Die 30 ist also ein Verweis auf ein Objekt, das den tatsächlichen Wert enthält. In der Regel sollten Verweis und Wert gleich sein, sonst wird das mit der Mathematik schwierig.

Die Nerd Enzyklopädie 22 - Läuft darauf Doom?

Doom ist ein sehr erfolgreicher und für damalige Verhältnisse fortschrittlicher 1st-Person-Shooter von id Software aus dem Jahre 1993. Zusammen mit seinem Nachfolger Doom 2 stand Doom zwischen 1994 und 2011 zwar auf der Liste jugendgefährdender Schriften, das tat dem Erfolg aber keinen Abbruch.

Doom kann mittlerweile zum „kulturellen Erbe der Spieleindustrie“ gezählt werden, es diente und dient immer noch als Inspiration für andere Spiele und entwickelte sich im Laufe der Jahre zu einem recht erfolgreichen Franchise mit Filmen, Brettspielen und sogar Büchern.

Die Nerd Enzyklopädie 21 - 00000000000000000021e800c1e8df51b22c1588e5a624bea17e9faa34b2dc4a

Bei dieser Zeichenkette handelt es sich um einen Hash, der im Sommer 2018 durch die „internet’sche Bitcoin-Blase“ geisterte. Wer verstehen will wie anfällig die Bitcoin-Szene für aufmerksamkeitsgenerierende Effekthascherei ist, der sollte sich mit diesem Hash beschäftigen:

Doch bevor ich erkläre, was daran so besonders ist, zunächst ein paar Details — du willst hier ja auch etwas lernen.
Zunächst einmal die offensichtlichen Unklarheiten: Ein Hash ist eine Art Ableitung einer beliebigen Information. Das können ein Text, ein Bild oder irgendwelche anderen digitalen Daten sein. Man schiebt diese Informationen durch einen relativ komplexen Algorithmus, wie z.B. den weit verbreiteten SHA-256 (Secure Hash Algorithm 256). Das Ergebnis ist ein Hash und in der Fachsprache nennt man den Vorgang „kryptologische Hash-Funktion“. Der Hash verändert sich, sobald die eingegebene Information auch nur um ein Zeichen abweicht. Es ist äußerst selten, also wirklich sehr sehr selten, dass zwei unterschiedliche Eingaben zum gleichen Hash führen. Was immer gleich ist: Die Länge des Hashes: Er besteht aus 32 Byte wobei jedes Byte eine Größe von 8 Bit hat. 32 x 8 = 256 — du erkennst die Zusammenhänge?
„32 Byte? Das Ding da oben ist aber 64 Zeichen lang!“ wirst du jetzt vermutlich reklamieren. Korrekt. Aber warum? Es folgt ein kurzer Ausflug in die verrückte Welt der Stellenwertsysteme:
Wie kann man im binären Zahlensystem, in dem ja nur zwei Symbole zur Verfügung stehen (0 und 1), einen höheren Wert als 1 darstellen? Indem wir mehrere Stellen benutzen. Verteilt man das Symbol 1 auf 8 Stellen, kann man so den Wert 255 darstellen — wie das genau funktioniert habe ich im 1. Teil erklärt):