Kategorien
computerarcheologie digital software engineering

It’s easy until you look closely

Ein paar erhellende Aufsätze beim NetMeister über so alltägliche Dinge wie URLs und E-Mail-Adressen, die erfahrene Programmierer*innen verstanden haben. Zumindest glaubte ich das von mir, bis ich diese Aufsätze gelesen hatte.

Zum Aufbau von URLs:

I think we need to talk… It’s not you, it’s me. My relationship status with all things computers is best described as „it’s complicated“. We’re frenemies. One of us doesn’t seem to like the other.

[…]

And yes, of course you can give the path name component any valid name, such as „💩“

[…]

A „query“ component in a URL follows a „?“ characters and… is basically not well defined at all. You could put just about anything into the query, including characters that would otherwise not be possible, such as „/“ and „?“

URLs: It’s complicated …

Über E-Mail-Adressen:

Most email providers — most people, in general — treat email addresses as case-insensitive. That is, they treat jschauma@netmeister.org and Jschauma@Netmeister.Org as the same. And while the right-hand side — the domain part — is case-insensitive as it follows normal DNS rules, the left-hand side or local part, is not.

The RFC is rather specific here, and mandates that the local part MUST BE treated as case sensitive. (Note: this does not mean that they can’t end up in the same mailbox, but the point is: they don’t have to.)

[…]

You can put emojis in the local part.

While RFC5321 only permits ASCII, RFC6531 permits UTF-8 characters if the mail server supports the SMTPUTF8 (and 8BITMIME) extensions.

Your E-Mail Validation Logic is wrong

Und der – je nach Schmerztoleranz – witzigste ist über Namen im DNS:

The editor wars have been decided at the TLD level: .vi exists (U.S. Virgin Islands), but .emacs does not (emacs.vi, however, does).

[…]

.invalid and .test — for testing and documentation, originally defined in RFC2606.

[…]

Now within the context of, for example, HTTP cookies or x509 TLS certificates, it’s rather important that an entity cannot use a wildcard to match an entire TLD, but how does a browser know whether foo.example is a reserved second-level domain, or simply a normal domain registered by some entity? Should a website be able to set a cookie for foo.example? Should it be able to get a certificate for*.foo.example? There is no programmatic way to determine this.

To solve this problem, the good folks over at Mozilla started putting together a list of these TLDs and „effective TLDs“, known as the Public Suffix List. That’s right, it’s another one of those manually compiled and maintained text files we like to build the internet infrastructure on! (emphasis mine)

TLDs — Putting the ‚.fun‘ in the top of the DNS
Kategorien
computerarcheologie lesestoff reconstructed software engineering

Haben wollen: Steve Jobs and the NeXT Big Thing

(Erstveröffentlicht am 05.03.2005, ergänzt)

Wo sind Books on demand, wenn man mal wirklich einen demand hat?

Ich hätte wirklich gerne „Steve Jobs and the NeXT Big Thing“ von Randall Stross, aber in Deutschland scheint mir niemand dieses Buch zu einem vernünftigen Preis verkaufen zu wollen. Nicht mal bei ebay.

Das Buch erzählt die Geschichte von NeXT Computer Inc., der zweiten Firma, die von Apple-Chef Steve Jobs mitbegründet wurde und die für ihre leistungsstarke und benutzerfreundliche Kombination aus Unix, einem komplett objekt-orientierten Anwendungsentwicklungssystem und einer wegweisender Oberfläche auf fortschrittlichster Hardware bekannt war. Vieles von dem, was Mac OS X heute hat und ist, basiert auf dem NeXT-Betriebssystem NeXTStep.

Tja, wenn das Verlangen (=demand) nach diesem Buch anhält, werde ich vielleicht doch einen Import aus Amerika in Betracht ziehen. Hat das schon mal jemand gemacht? Funktioniert das?

Wired Buchkritik

(Update 2021: Ja, ich habe das Buch inzwischen gekauft und gelesen und das meiste wieder vergessen. Aber ich will ja eh irgendwann mal über all diese Bücher bloggen. Bei vielen dieser Ausarbeitungen ist das Problem, dass die Autoren die harten technischen Themen meiden, um das Publikum nicht zu erschrecken. Genau die würden mich aber interessieren.)

(Und es gibt ja inzwischen ein hübsches Coffee Table Book mit vielen Fotos aus den ersten NeXT-Jahren, aus der Newton-Entwicklung bei Apple, über Adobe … sehr schön, übrigens: Fearless Genius: The Digital Revolution in Silicon Valley 1985-2000)

Wired Buchkritik, dazu (mit vielen Fotos aus dem Buch)

Kategorien
computerarcheologie software engineering

Als die Blase platzte

Wir schreiben das Jahr 2002, der Autor dieser Zeilen ist bei der deutschen Vertriebsorganisation der Software AG (SAG) als Berater angestellt. Die SAG hatte viele Jahrzehnte bewährte Datenbank- und Anwendungsentwicklungs-Software (ADABAS und NATURAL) auf bewährten Großrechnern (IBM S/390) und Mini-Computern (VAX, BS2000, Unices) hergestellt und verkauft und es damit zum (nach SAP) zum zweitgrößten deutschen Software-Konzern geschafft.

Aber ach, die Zeichen der Zeit waren bunt und klickbar, Windows erorberte die Arbeitswelt, Großrechner waren out, Irgendwas-mit-Internet ein Muss. Die Gründer-Generation hatte das Zepter abgegeben, der neue Chef, Erwin Königs, steuerte einen entschiedenen Innovationskurs, legte mit Bolero und Tamino zwei Produkte in den beiden Kernmärkten des Unternehmens vor.

Tamino ist eine XML-Datenbank, und XML war damals um die Jahrtausendwende ein genauso heißer Sch***, wie es JSON, Docker, Kubernetes dann Jahre später auf ihren Gebieten sein würden. Über einen Achtungserfolg kam Tamino (Transaction Manager for Internet Objects, vermutlich ein Backronym) nicht hinaus. Zu schnell zogen die Branchengrößen IBM und Oracle XML-Extensions in ihre Flaggschiffe ein.

Bolero war (als Spezifikation) die Essenz aller Erkenntnisse, die Business-Programmierer im Laufe ihrer Karriere so gewinnen müssen: eingebaute Persistenz-Engine, null-safe, Code immer im Repository, Generatoren für die Integration mit Systemen wie SAP, super!

Die ganzen Goodies machten das Ding zur damals™ größten Java-Anwendung der Welt … was einem hätte zu denken geben können, denn damals war Java bei weitem nicht so schnell wie heute. Auch auf sehr gut ausgestatteten Laptops war der Arbeitsfluss eher ein Arbeitströpfeln, und durch den geführten Ansatz (für alles und jedes ein Fensterchen, ein Assistent, ein Dialog, nur den Code bekam man fast nicht zu Gesicht) fühlten die jungen, wilden Coder sich doch sehr gegängelt.

Beide Produkte, auf denen doch die Zukunft des Konzerns ruhen sollte, zündeten also im Markt nicht. Was zusammen mit dem Platzen der DotCom-Blase dazu führte, dass der Konzern in seine erste veritable Krise geriet und zum ersten Mal im größeren Umfang Stellen abbauen musste. Die Mitarbeiter, die gedacht hatten, es sich bei einem soliden Mittelständler gut eingerichtet zu haben, waren shell shocked. Schon der Börsengang der schon-immer-AG 1999 war ein Kulturschock, und nun das!

Um den Laden über Wasser zu halten, wurden die Vertriebsgesellschaften umgekrempelt. Der neue Manager für die konzern-weit wichtigste deutsche Landesgesellschaft wurde von HP abgeworben und brachte seine amerikanisierten Vorstellungen von Motivationserzeugung mit – ein weiterer Kulturschock. Das jährliche Vertriebs-Kickoff war ganz amerikanisch ausgelegt, mit FastFood und Football, und ging mit seinem Hurra-Patriotismus seiner Hurra-Salesmanship und „Wir schaffen das! Tschakka!„-Rhetorik als eine der schlimmsten Veranstaltungen in die Erinnerung vieler meiner Kollegen ein.

Warum ich das alles erzähle? Beim Aufräumen des Kellers ist die oben abgebildete, auf eben diesem Kick-Off als Goodie verteilte Basecap wieder aufgetaucht. Sie scheint mir heute in ihrer Realitätsverweigerung wie ein Vorläufer der infamen MAGA-Hüte.

Kategorien
digital musik software engineering

Tabs of Yesteryear

Brian Eno, Top-Produzent von Musik für Flughäfen und Aufzüge1, hat ein Kästchen mit Kärtchen. Auf jedem Kärtchen ein Ratschlag, um aus einem kreativen Loch, einer Uninspiriertheit herauszufinden. Hat erstmal nichts mit Musik zu tun, ist einen Blick wert, wenn man feststeckt. Digital unter Oblique Strategie, mit so zufällig ausgespielten Perlen wie:

  • Take away the elements in order of apparent non-importance
  • You don’t have to be ashamed of using your own ideas
  • State the problem in words as clearly as possible
  • u.v.a.m.

1 Okay, außerdem auch noch von U2, David Bowie, Talking Heads, … f*ck! there’s an own Wikipedia category for this!

Die Configuration Complexity Clock fasst ein (vielleicht/vermutlich) nur für Programmierer nachvollziehbares Vorgehen zusammen: Eine gewisse Abneigung gegen einfache Lösungen verbunden mit dem Wunsch „es richtig zu machen“ (im Gegensatz zu „das Richtige, vom Kunden bezahlte“ zu machen). Man beginnt damit, dass ein Programm eine gewisse Konfiguration benötigt, im Beispiel einen änderbaren Umsatzsteuer-Satz. Dazu braucht man eine Konfigurationsdatei und das könnte das Ende vom Lied sein.

Tatsächlich endet es aber öfter als einem lieb ist damit, dass die Konfiguration zu einem Programm in einer selbst-erfundenen Sprache ausartet. Und da es nun ein Programm ist, braucht es bestimmt die ein oder andere Einstellung in einer Konfigurationsdatei. Die Complexity-Clock schlägt Zwölf, das Spiel beginnt von neuem. Details im verlinkten Artikel.

Two Hard Things in Computer Science ist eine Sammlung von Martin Fowler, die ein paar meiner Lieblingsweisheiten zur IT enthält, darunter diese hier:

Kris Köhntopp in einem Twitter-Thread über den Alltag von uns Software-Entwickler:innen:

There are always existing systems that do not fit exactly, but which you are dependent on.

There is always an existing system your code has to fit into.

Hi, I am Kris. I have been working with computers since I am 14 years old, and I am over 50 now.

Die meisten von uns arbeiten nicht an Betriebssystemen und Compilern. Sondern an dem System, mit dem die Firma seit 15 Jahren ihr Geld verdient und an dem schon fünfzig Leute vor uns gearbeitet haben. Nix Drei-Wünsche-Fee. Software-Archäologie.

Kategorien
computerarcheologie lesestoff reconstructed software engineering

Älteres, abgestaubt

Aus 20 Jahren Bloggerei ein paar Einträge aus der Blogger-Ära (~2005?)

42 47 Ways To Say “Broken” 

Bei Tim Bray gibt’s eine gepflegte Liste englischer Ausdrücke für „Tut nicht!“ Besonders nett finde ich “long-term pending mode”. Das trifft ein oder zwei Features in meinem Projekt ganz gut!

Autoenigmatisch 

… sich selbst ein Rätsel sein.

Tori on Peter

Peter Gabriel taught me, when I worked with him a bit in the early 1990s, that attention to structure is what you have to develop if you’re going to be a composer/songwriter generating effective work throughout your life.

EXCLUSIVE Excerpt from ‚Tori Amos: Piece by Piece‘

Und viele weitere interessante Gedanken von Tori, deren neues Album am 22.2. herauskommt!

Update 2021: Weniger als 17 Jahre später habe ich mir dann mal das Buch bestellt. Der Link geht jetzt in die Wayback Machine, dieser völlig unbekannten Bewahrerin der Internetkultur. Mal wieder spenden, wenn Geld vorhanden, bitte.

ABOUT DAVE CUTLER… 

Da sucht man nun (nach der Lektüre von „ShowStopper“, dt.: „Der Krieg der Codes, Wie Microsoft ein neues Betriebssystem entwickelt“) nach Dave Cutler, dem Chef-Programmierer von Windows NT/2K/XP und stattdessen findet man diesen Mensch hier:

„Dave Cutler lives with his wife Carol and their two children and dog in Redding, CT. He is a graduate with honors from the School of Visual Arts and has been a free-lance illustrator for 20 years.“

About Dave…

Ein paar Klicks durch sein Portfolio entdecken ein Faible für Technologie und eine Leidenschaft für Menschliches – in schönen Farben und klaren Formen ausgeführt.

Update 2021: Inzwischen hat Dave Cutler bei Microsoft eine ordentliche Ehrung bekommen, The engineer’s engineer: Computer industry luminaries salute Dave Cutler’s five-decade-long quest for quality

Dave Cutler war nicht nur verantwortlich für die erste Version von Windows NT, nein, er leitet das Team, wie es aussieht, noch heute. Ob er wohl noch zum Codeschreiben kommt? (Update 2021: Inzwischen war er auch in Azure unterwegs und in der X-Box ebenfalls.)

Avie Tevanian

Und weil wir gerade bei Betriebssystem-Halbgöttern sind, hier Dave Cutler’s „Gegenspieler“, der Mensch, unter dessen Ägide das Mac OS X entstanden ist: Apple Kurz-Bio Avie Tevanian und ein Interview mit seiner Hochschule (CarnegieMellon). (Update 2021: Stattdessen die Oral History-Videos des Computer History Museum:)

Und zwei Links zum Werdegang von NeXTStep zu Mac OS X: (Update 2021: Links auf Wayback Machine umgestellt.)

It would be an understatement to say that OS X is derived from NEXTSTEP and OPENSTEP. In many respects, it’s not just similar, it’s the same. One can think of it as OpenStep 5 or 6, say. This is not a bad thing at all – rather than create an operating system from scratch, Apple tried to do the smart thing, and used what they already had to a great extent.

A Brief History of Mac OS X

Apple has leveraged a lot of existing open source software by integrating it well (usually) with their system: apache, bind, binutils, cvs, gcc, gdb, gimp_print, kerberos, mysql, openssh, openssl, pam, perl, postfix, ppp, python, rsync, samba, and many more BSD/GNU/other packages … are all part of Darwin.

Architecture of Mac OS X
Kategorien
computerarcheologie lesestoff software engineering

The Graphing Calculator-Story

My skunkworks project was beginning to look real with help from these professionals as well as others in graphic design, documentation, programming, mathematics, and user interface. The secret to programming is not intelligence, though of course that helps. It is not hard work or experience, though they help, too. The secret to programming is having smart friends.

The Graphing Calculator Story

Von und über einen Entwickler, der ohne angestellt oder beauftragt zu sein, in einem Apple Büro eine schöne Anwendung schrieb, von der keiner wissen durfte.

In October, when we thought we were almost finished, engineers who had been helping us had me demonstrate our software to their managers. A dozen people packed into my office. I didn’t expect their support, but I felt obliged to make a good-faith effort to go through their official channels. I gave a twenty-minute demonstration, eliciting „oohs“ and „ahhs.“ Afterward, they asked, „Who do you report to? What group are you in? Why haven’t we seen this earlier?“ I explained that I had been sneaking into the building and that the project didn’t exist. They laughed, until they realized I was serious. Then they told me, „Don’t repeat this story.“

The Graphing Calculator Story