Manchmal muß man loslassen

Nächsten Monat ist es zwanzig Jahre her, daß ich mein Informatikstudium begonnen hatte. Übriggeblieben außer ein paar Bescheinigungen, einer gedruckten Studien- und Diplomarbeit sowie dem Diplomzeugnis waren aber immer noch ein paar Aktenordner mit Skripten, Übungsblättern, Mitschrieben und so.

In den letzten Jahren bin ich mehrfach umgezogen, und natürlich habe ich jedes Mal ausgemistet. Jedes Mal habe ich auch Studienkram entsorgt. Aber von ein paar wollte ich mich nie trennen.

Heute war es dann soweit: die letzten Skripten und Mitschriebe sind in der Papiertonne gelandet.

Allerdings habe ich diese Schätzchen vorher nochmal eingescannt. Also abfotografiert mit Handy und Microsoft Lens. Alles nicht perfekt, aber zum Archivieren reicht es. Schließlich habe ich mich nie durchringen können, mir eine Austattung wie manch anderer hinzustellen.

Und Schätze waren es fürwahr!

Besonders hing ich an dem Skript zu Syntax (und den Proseminaren Syntax I und II) aus meinem Nebenfach – Computerlinguistik.

Deutsche Grammatik verstehen. In einem Seminar eine gute halbe Stunde nur über die Phrase „jedes dritte Eis“ diskutieren. C-Strukturen und F-Strukturen zeichen. Damals sagte mir „↑PCASE = ↑( ↓PCASE)“ noch etwas. Irgendwann lese ich das nochmal nach. Immerhin weiß ich noch, daß die Pfeile „ups“ und „downs“ ausgesprochen wurden.

Jedenfalls war das Nebenfach kuschelig, weil klein. Es hatte eine interessante Besetzung auch in der Studentenschaft, denn etwa die Hälfte der Studenten war eher Typ geisteswissenschaftlicher Öko, die andere Hälfte aber eher Informatik-Nerds.

Und wir hatten Syntax in einem winzigen Hörsaal mit knarzender Tafel in einem alten Gebäude der Hohen Karlsschule mit toller Fassade.

Und dann in Informatik selbst die drei Vorlesungen aus der Vertiefungslinie Programmiersprachen und Compilerbau: „Programmanalysen und Compilerbau“, „Real-Time-Programming“ und „Konzepte von Programmiersprachen“. Ich habe schlicht jede Vorlesung besucht, die Professor Plödereder angeboten hat.

Ich weiß nicht, warum ich nach dem Studium nicht mehr in diese Richtung gegangen bin, das war alles sehr spannend.

Und eine nette Anekdote gibt es auch: in einer der drei Vorlesungen hatte ich also mündliche Prüfung. Anwesend außer mir: der Professor und ein wissenschaftlicher Mitarbeiter als Beisitzer. Professor Plödereders Prüfungen kannte ich zu dem Zeitpunkt schon: für eine sehr gute Note reichte es nicht, das Skriptum herbeten zu können. Wenn er sah, daß man den Stoff drauf hat, kamen die eigentlichen Fragen. Transferaufgaben, Verknüpfungen zu benachbarten Themen und so. Damit kam ich gut klar.

Nur in dieser Prüfung zur Vorlesung X lief es nicht so richtig gut (eine der drei Vorlesungen oben, ich weiß nicht mehr welche) . Sicher, irgendwie konnte ich auf alles antworten, aber meine Güte hatte der Professor da einen heftigen Tag. Nichts davon hätte ich als off-topic zurückweisen können, alles was er fragte war zwar irgendwie drangewesen, aber nur sehr leicht gestreift. In einer Fußnote angesprochen, ohne es zu vertiefen. Freundlich ausgedrückt.

Irgendwann war die Prüfung vorüber und ich wurde vor die Tür gebeten. Drinnen diskutierten nun Professor und Beisitzer über die Note. Wenige Minuten später durfte ich wieder eintreten.

Und der Professor begann: Es tue ihm wirklich sehr leid. Sein Beisitzer habe ihm gerade gesagt, ich habe die Prüfung X angemeldet, er habe aber gedacht, er prüfe gerade zur Vorlesung Y. Aber dafür habe ich mich ja ganz gut geschlagen, Y habe ich sicherlich auch besucht.

Auf meine Antwort, daß ich die Vorlesung Y erst im darauffolgenden Semester hören würde, war er beeindruckt. Und die Note war auch entsprechend.

Wie ich zwitschere

Twitter steht bei vielen Menschen im Ruf, auch nur ein weiteres sinnloses Social-Media-Netzwerk zu sein. Ich glaube aber, daß man Twitter ganz hervorragend gewinnbringend nutzen kann.

Es soll nicht um das übliche gehen: ja, Twitter kann endlos Zeit fressen, das „Doomscrolling“ ist ein echtes Problem. Ja, man kann sich feste Zeiten einrichten und nicht ständig aufs Handy schielen. Aber es gibt handfestere Ratschläge.

Zunächst einmal: ich nutze Twitter täglich. Nachdem ich meinen letzten Twitter-Account gelöscht hatte, bin ich vor einigen Monaten wieder eingestiegen. Alle Follower weg. Oh je!

Aber das ist gar nicht schlimm. Ich habe auch heute, Monate später, noch 0 Follower. Ich folge selbst allerdings auch 0 Personen. Das muß ich erklären.

Die normale Art, Twitter zu nutzen, ist: ich folge ganz vielen interessanten Menschen und dann habe ich eine interessante Timeline. Das funktioniert aber so nicht.

Die Timeline

Zunächst zur Timeline: Die Standard-Chronik auf Twitter zeigt ganz viel Mist, von dem Twitter glaubt, daß er unser „Engagement“ steigert. Tweets von Personen, denen Personen folgen, denen Personen folgen, denen wir folgen. Tweets, die gerade deutschland- oder weltweit wie blöde retweetet werden. Das sind vor allem Tweets, die uns aufregen. Emotionale Tweets. Die Sau, die durchs Dorf getrieben wird. Dazu ganz viele „empfohlene“ Tweets, die letztenendes auch nur Werbung sind.

Das kann man kaum verhindern. Ein Ansatz (aber keine vollständige Lösung) ist, bestimmte Begriffe zu blocken, die in den Tweets nicht sichtbar sind, die Twitter aber offenbar intern verwendet, um all diese verschiedenen Belästigungen zu kategorisieren. Die heißen dann „suggest_recycled_tweet“ oder „ActivityTweet“ und so. Natürlich sind sie nicht dokumentiert. Aber findige Netizens haben diese Begriffe reverse-engineert.

Und wenn man diese Begriffe stummschaltet, dann verschwinden auch diese störenden Tweets. Jedenfalls derzeit. Wie lange das funktioniert, ist offen. Dennoch: unbedingt tun:

Stummgeschaltete Begriffe

Zum nächsten Problem der normalen Chronik: sie ist keine. Die Tweets erscheinen nicht in chronologischer Rehenfolge, sondern werden vom Twitter-Algorithmus umsortiert, wie Twitter gerade meint, das „Engagement“ steigern zu können. Man kann also nicht da weiterlesen, wo man zuletzt stehengeblieben war. Alte Tweets erscheinen erneut, neue Tweets werden unter all den anderen versteckt.

Auch hier gibt es eine Teil-Lösung: Mit der „Sternschaltfläche“ oben rechts kann man von „Home“ auf „Latest Tweets show up as they happen“ umschalten.

Oben rechts klicken…
…und auswählen.

Warum ist das nur eine Teil-Lösung? Weil Twitter das immer wieder mal selbstständig auf den von ihnen gewünschten Default „wild durcheinander“ zurückschaltet. Es besteht ganz leise Hoffnung, daß sie damit aufgehört haben, bei mir ist die Einstellung nun schon bestimmt zwei Monate stabil, aber ich habe das schon mehrfach neu einschalten müssen.

Follower

Was bedeutet es, jemandem zu folgen? Nach herkömmlicher Ansicht bedeutet das „ich möchte seine Tweets sehen“. Und das ist auch eine Folge des Folgens.

Es gibt aber eine weitere: das soziale Signal. Das kann gewollt sein oder ungewollt interpretiert werden. Wenn ich einem Freund folge, möchte ich wohl auch zeigen, daß wir „zusammengehören“. Doch wenn ich einem Politiker folge, glauben viele andere Twitter-Nutzer, ich sei Wähler seiner Partei. Auch wenn ich ihm nur folge, um mitzubekommen, was er wieder für unmögliche Dinge erzählt.

Spannend wird das bei den Shitstorms, die ständig durch die Twittersphäre schwirren. Folge ich jemandem, der aus irgendwelchen Gründen (Sexismus, Rassismus) gerade im Kreuzfeuer steht – ob berechtigt oder nicht! – dann bin ich offenbar auch „so einer“.

Das ist keine blanke Theorie, inzwischen nutzen viele, die sich häufig an solchen Shitstorms beteiligen, gemeinsame Blocklisten und nutzen Dienste, womit sie nicht nur einen Nutzer blocken können, sondern automatisch auch alle anderen Nutzer, die dem bösen Nutzer folgen.

Es empfiehlt sich daher, das soziale Signal „ich folge jemandem“ vom Abonnement „ich möchte seine Tweets lesen“ zu trennen. Glücklicherweise geht das.

Twitterlisten

Und es geht nicht nur, die Lösung für das „ich möchte nur lesen“-Problem ist dieselbe, wie die Lösung für das „Twitter spielt mit meiner Chronik herum“-Problem. Und zwar sind die Lösung Twitterlisten.

Listen kann jeder Twitter-Benutzer selbst anlegen. Sie können öffentlich sein. Aber warum? Am besten legt man sich private Listen an und fügt andere Twitter-Nutzer diesen hinzu.

Ein Teil meiner derzeitigen Twitter-Listen

Wenn ich eine Liste anschaue, dann erhalte ich chronologisch sortiert genau die Tweets und Retweets derjenigen Nutzer, die ich auf diese Liste gepackt habe. Nicht mehr und nicht weniger.

Ich kann sortieren, wie immer ich mag, niemand sieht es, niemand ist beleidigt, weil er auf der „Langweiler, aber manchmal wichtig“-Liste steht.

Ich entscheide, welche Liste ich anschauen möchte. Im Moment sind Formale Methoden etwas aus dem Fokus geraten. Egal, die Liste existiert, sie stört nicht, und wenn das Thema wieder aktuell wird, ist sie vorhanden. Ich entfolge niemanden von dieser Liste, weil der ganze Formale-Methoden-Kram gerade eher nervt. Ich gucke sie einfach nicht an So kann ich Themen ein- und ausblenden.

Es bleibt ein Problem: Das User-Interface für Listen ist okay, aber nicht berauschend. Zum Glück hat Twitter noch ein weiteres User-Interface, auch im Web, auch kostenlos (noch – es gibt immer wieder Gerüchte, das solle sich ändern): Tweetdeck.

Das Tweetdeck-Interface

Hier kann ich ganz viele Spalten einrichten und mit Inhalten befüllen. Ich kann meine Drafts sehen, meine DMs, ich kann Hashtags oder Benutzern folgen – oder ich schaue Listen an. Und genau das tue ich hier.

Nun kann ich in den Spalten endlos nach unten scrollen, um all die Tweets zu sehen. Ich kann nach rechts scrollen, so viele Spalten ich eben habe.

Und ich habe Keyboard-Shortcuts!

Tastaturbedienung bei Tweetdeck

Ich kann schnell in bestimmte Spalten springen (jedenfalls die ersten neun und die letzte). Ich kann Details mit einer taste aufrufen, mit einer Taste antworten. So muß das sein!

Derzeit ist das meine absolut favorisierte Lösung für Twitter. Nach außen sehe ich völlig inaktiv aus, wie ein toter Account. Niemand folgt mir, ich folge auch niemandem. Aber in Wirklichkeit nutze ich Twitter für das, wofür es am besten ist: aus ganz unterschiedlichen Quellen schnell und ohne weiteren Verwaltungsaufwand Informationen bekommen.

Kalibriertes Schätzen: Übungen I

Wie in Kalibriertes Schätzen schon gesagt, möchte ich meine Schätzversuche hier im Weblog dokumentieren, auch wenn es peinlich werden kann.

Diesmal wurde es allerdings zum Glück nicht peinlich.

Leider ist es schwierig, an Übungsmaterial zu kommen. Sich selbst Fragen auszudenken ist offensichtlich nicht optimal. Mit einigem Abstand zwischen Aufstellen der Fragenliste und Durchführen der Übung mag es klappen, aber besser ist es natürlich, wenn man anderswoher Fragenlisten bekommt. Dann muß man eben in Kauf nehmen, daß die Fragen amerikazentrisch sind.

Die heutige Fragenliste kommt aus Douglas W. Hubbard’s „How to Measure Anything“. Und zwar aus Kapitel fünf, Seite 96. Die konkreten Fragen zeige ich nicht, ich will ja keinen Ärger mit dem Verlag bekommen. Stattdessen nur die reine Auswertung:

geschätzte untere Schrankegeschätzte obere Schranketatsächlicher Wertrichtig oder falsch
65130126richtig
160017701685richtig
243,5richtig
195019801969richtig
110017001564richtig
150080002451richtig
708078,5richtig
309088richtig
131,25richtig
1940198026.09.1964richtig
Teil Eins: Intervalle schätzen (mit 90% Konfidenz)

Es waren also alle Schätzungen richtig, zwei oder drei allerdings nur eben gerade so.

Zur Erinnerung: bei einer gewünschten Konfidenz von 90% sind idealerweise 9 Antworten richtig, eine falsch. Zehn richtige ist ein gutes Ergebnis, insbesondere wenn man die marginal richtigen mitbetrachtet.

Auf zu Teil zwei:

AntwortKonfidenzrichtig oder falsch
falsch100%richtig
wahr70%richtig
wahr100%richtig
wahr60%falsch
wahr50%richtig
wahr80%richtig
falsch60%richtig
falsch80%falsch
wahr60%falsch
wahr100%richtig
Teil Zwei: Konfidenzen schätzen

Das arithmetische Mittel der von mir angegebenen Konfidenzen beträgt 7,6. Es sollten also acht (oder auch sieben) Antworten richtig sein. Mit 7 liege ich da ganz gut.

Es fällt allerdings auf, daß sich unter den falschen Antworten eine mit immerhin 80% Konfidenz befindet. Das ist Selbstüberschätzung, die aber hier einigermaßen weggemittelt wurde.

Ein paar Fragebögen habe ich noch, die werde ich dann noch bearbeiten.

Spannend wird am Jahresende auch die Auswertung von Schätzungen für 2021, ich weiß jetzt bereits, daß ich bei einigen Schätzungen böse danebenlag und diese auch nicht mehr „heilen“ kann.

Drahtkammbinden

Spiralbindungen kennt jeder vom Collegeblock. Doch sie haben ein offensichtliches Problem:

Collegeblock

Am unteren Ende der Spiralbindung läßt sich das Papier nicht voll umschlagen und es bilden sich solche Papierwuste.

Außerdem ist die Spiralbindung auch sonst ungeschickt: sie verschiebt die aufgeschlagenen linken und rechten Seiten vertikal gegeneinander, so daß die Zeilen nicht mehr auf gleicher Höhe liegen.

Eine Drahtkammbindung löst dieses Problem, benötigt aber spezialisiertes Equipment. Denn im Gegensatz zur Spiralbindung, wo man die „fertige“ Spirale in den Papierstapel eindreht, legt man den Stapel hier in den geöffneten Drahtkamm und schließt ihn dann erst. Damit er sich gleichmäßig und knickfrei schließt, verwendet man eine Presse, nämlich die Drahtkammbindemaschine. Sie stanzt auch die notwendigen kleinen Löcher in den Papierstapel.

Vor einiger Zeit habe ich mir eine solche Maschine gebraucht gekauft. Es ist ein älteres Modell, aber hier gilt wie bei so vieleM: wenn überhaupt sind Nachfolgemodelle inkrementelle Verbesserungen, keine evolutionären Sprünge. Neuware ist auch wirklich teuer, weil sie eigentlich nie privat genutzt wird, sondern stets in „richtigen“ Büros.

Von nahem sieht die Drahtkammbindemaschine so aus:

Drahtkammmaschine

Die Skala links neben dem Anschlag in Millimeter und Inches dient dazu, die benötigte Drahtkammgröße zu ermitteln. Es gibt all diese Größen zu kaufen, ich selbst habe mir drei verschiedene Größen zugelegt.

In den Schlitz direkt vor dem Plexiglas mit der Skala dient zum Stanzen der Löcher. Der Drehknopf stellt eine Schraube an einem Schlitten fest, der den Anschlag für die Presse vorgibt. Hier muß man die verwendete Drahtkammgröße einstellen, die man zuvor an der Skala ermittelt hat. Die große dunkle Kluft darunter (und über der Kurzanleitung) ist die Stelle, wo der gesamte Papierstapel samt Drahtkamm zum Schluß eingelegt wird, um den Drahtkamm zusammenzupressen.

Das ganze Trumm wiegt knappe zwölf Kilogramm. Ernsthaft. Alles Metall. Außer dem Auffangbehälter für die Stanzreste, der ist bei meiner Maschine aus Kunststoff (bei den besseren Maschinen aber auch aus Metall).

Und so funktioniert es:

Ich habe einen Ausdruck, in diesem Fall das MiniZinc-Tutorial. Doppelseitig bedruckt sind das gute vierzig Blatt Papier. Mit meiner Maschine und den Drahtkammgrößen, die ich im Haus habe, komme ich bequem von wenigen Dutzend Blatt Papier bis zu etwa 160 Blatt.

MiniZinc-Tutorial

Neben der Maschine benötige ich vor allem den Drahtkamm. Dieser hier hat die Größe 12mm.

Drahtkammpackung
Drahtkamm

Nun lege ich alles bereit. Der Papierstapel wird auf die Rückseite gedreht.

Drahtkammbinden

Die Anleitung der Maschine, wie man das Papier einlegt, finde ich nach wie vor verwirrend.

Am besten legt man den Papierstapel so hin wie gezeigt und führt mit einer Drehbewegung dann jeweils einen kleineren Teilstapel zur Stanzöffnung. Dabei sollte man anfangs mehrfach kontrollieren, daß die Lochstanzung auf der linken Seite (der ungeradzahligen Seitenummern!) erfolgt. Dann stanzt man mit dem hinteren, langen Hebel die Löcher ins Papier.

Der Drahtkamm kann an einer Metallklappe festgeklemmt werden, so daß er nicht wegrutscht.

Drahtkammbinden

Der gerade gestanzte Teilstapel wird sinnvollerweise gleich in den Drahtkamm eingefädelt.

Drahtkammbinden

Dies wiederholt man nun so lange, bis das Papier vollständig gestanzt und eingefädelt ist.

Kontrollfrage: Welche Seite ist ganz oben und wo ist der Drahtkamm?

Antwort: Die Titelseite schaut einen oben an, und der Drahtkamm ist auf der linken Seite der Titelseite.

Wenn dem nicht so sein sollte, dann hilft nur neu ausdrucken und binden.

Ebenso stanzt man nun die Deckfolie und fädelt sie über er Titelseite ein. Und dann den Rückenkarton, und zwar mit der farbigen Außenseite nach unten, so daß die weiße Innenseite des Rückenkartons nun oben auf dem Stapel zu sehen ist.

Drahtkammbinden
Drahtkammbinden

Nun kann man den gesamten eingefädelten Stapel aus der Metallklemme ziehen und in den großen Einlaß einlegen (unter der schwarzen Lippe).

Drahtkammbinden

Mit dem kürzeren, vorderen Hebel schließt man nun den Drahtkamm. Er sieht anschließend so aus:

Man sieht, daß ich die Stellschraube etwas zu weit links eingestellt hatte, der Drahtkamm ist etwas zu weit geschlossen. Das macht in dem Maße noch nichts, aber man muß öfter mal ein wenig mit der Schraube spielen.

Nun klappt man einfach den Rückenkarton um den ganzen Drahtkamm herum nach vorne, so daß diese Verschlußstelle innen vor dem Rückenkarton verschwindet und nicht gleich ins Auge sticht.

Drahtkammbinden

Und fertig ist der drahtkammgebundene Ausdruck!

Drahtkammbinden

Wikipedia als Übersetzungshilfe

Es ist keine weltbewegende Erkenntnis, aber: mir wurde neulich klar, daß Wikipedia eine großartige kontextabhängige Übersetzungsfunktion hat. Sozusagen.

Und zwar sind die Artikel der Wikipedia-Fassungen unterschiedlicher Sprachen ja miteinander verknüpft.

Und zwar nicht einfach nur auf Ebene eines einzelnen Wortes, sondern auf Ebene des konkreten Lemmas.

Was bedeutet das?

Das Wort „Rad“ hat eine ganze Reihe von Bedeutungen. Ich kann nun im Wörterbuch unter „Rad“ nachschlagen und die richtige Übersetzung für die von mir gemeinte Bedeutung heraussuchen.

Oder ich gehe auf die entsprechende Wikipedia-Seite und schaue, wohin sie verlinkt ist.

Das Rad als „scheibenförmiger Gegenstand […] drehbar gelagert“ findet sich unter https://de.wikipedia.org/wiki/Rad. Ein Klick auf „English“ führt zu „wheel“: https://en.wikipedia.org/wiki/Wheel.

Das Rad als Fahrrad ist unter https://de.wikipedia.org/wiki/Fahrrad zu finden und mit https://en.wikipedia.org/wiki/Bicycle verlinkt, also „bicycle“.

Und das Rad im Sinne von „Rad schlagen“ führt von https://de.wikipedia.org/wiki/Radschlag zum „cartwheel“ unter https://en.wikipedia.org/wiki/Cartwheel_(gymnastics).

Gerade bei Fachbegriffen und Spezialverwendungen wie in den Rechtswissenschaften oder der Botanik kann das sehr hilfreich sein.

Das ist aber nur der einfache Fall. Zugegebenermaßen löst den das Wörterbuch fast genauso gut.

Wirklich interessant wird es, wenn keine Eins-zu-eins-Korrespondenz zwischen Begriffen in den unterschiedlichen Sprachen existiert.

Die Einschränkung auf ein Themengebiet hilft ungemein, eine passende Übersetzung zu finden.

Angenommen, ich schriebe über das, was wir im Deutschen als „Maßregelvollzug“ bezeichnen. Das ist höchst rechtskreisspezifisch, wir können kaum erwarten, daß die Amerikaner oder die Engländer exakt dasselbe Konzept als Begriff haben.

Schauen wir in einem Wörterbuch wie LEO, so finden wir für den Maßregelvollzug keine Übersetzung. Suchen wir daraufhin nach „Maßregel“, so finden wir „reprimand“, „measure“, „care order“ oder „hospital order“. Die ersten beiden fallen offensichtlich heraus, die letzten beiden gehen inhaltlich in die richtige Richtung, aber besonders passend wirken sie auch nicht.

Ausgehend vom deutschen Wikipedia-Artikel sehen wir, daß keine englische Fassung zugeordnet ist. Aber wir sehen im Artikel selbst verschiedene Arten des Maßregelvollzugs. Die besonders wichtigen sind die Sicherungsverwahrung und die Unterbringung in einem Psychiatrischen Krankenhaus.

Über das Psychisch-Kranken-Gesetz finden wir zur Unterbringung, und mittels des Links zum Englischen schließlich zum „involuntary commitment“. Ein deutlich besserer Begriff als „hospital order“.

Der Traum ontologisch kategorisierter Datenbanken von Begriffen wird in der Wikipedia verwirklicht. Ganz ohne RDF, OWL und das Semantic Web, einfach nur durch zig-tausende Freiwillige, die Begriffe einander so trennscharf wie möglich zuordnen. Und das Ergebnis ist richtig nützlich!

Schätzungen für 2021

In Kalibriertes Schätzen habe ich gezeigt, wie man üben kann, seine Schätzungen zu verbessern. Also frisch ans Werk!

  • Die Werbeeinnahmen auf www.schoene-kinderbuecher.de decken die Hostingkosten (abgeschätzt mit 30 Euro im Jahr): 60%
  • Ich nehme 20kg ab: 30%
  • Ich nehme 10kg ab: 70%
  • Ich meditiere regelmäßig: 30%
  • Ich werde Vegetarier: 10%
  • Vollständiges Home-Office findet ein Ende: 90%
  • Ich erhalte meine Covid19-Impfung: 90%
  • Söder wird Kanzlerkandidat der Union: 60%
  • Söder wird Kanzler: 40%
  • Röttgen wird Parteivorsitzender der CDU: 20%
  • Merz wird Parteivorsitzender der CDU: 40%
  • Laschet wird Parteivorsitzender der CDU: 30%
  • Spahn wird Parteivorsitzender der CDU: 10%
  • Die SPD erhält bei den Bundestagswahlen mehr Stimmen als die AfD: 70%
  • Ein Politiker (den ich vor dem Skandal bereits namentlich kannte) hat einen Kinderpornoskandal: 10%
  • Papst Franziskus lebt: 70%
  • Ich blogge jeden Monat mindestens zwei Artikel auf www.thomas-huehn.de: 70%
  • Ich nehme in jeder Kursphase an einem Lindyfeld-Kurs teil: 30%
  • Ich fahre zu einer anderen Szene zum Social Dance: 20%
  • Ich fahre zu einer anderen Szene zum Workshop: 20%
  • Ich schließe den Blender-Launchpad-Kurs ab: 90%
  • Ich arbeite den Softwarehierarchieteil von nand2tetris durch: 80%
  • Ich arbeite den Mastery-with-SQL-Kurs ein weiteres Mal durch: 70%
  • Ich kann ein einfaches 3D-Modell selbständig und ohne Tutorial in Blender 3D erstellen: 70%
  • Ich arbeite mich in TLA+ ein: 60%
  • Ich benutze TLA+ bei der Arbeit: 30%
  • Schottland stimmt in einem Unabhängigkeitsreferendum (egal, ob von Westminster anerkannt) für die Abspaltung: 60%
  • Tesla erreicht voll-autonomes Fahren (Level 5): 5%
  • Kim Jong Un ist weiterhin an der Macht: 80%
  • Eine neue Partei kommt in den Bundestag: 10%
  • Es gibt einen Terroranschlag in Deutschland mit mehr als 1000 Toten: 10%
  • Ich ziehe mich während des Jahres noch einmal von Hacker News zurück (ob dauerhaft oder vorübergehend): 30%
  • Ich habe 20 Follower auf Twitter: 10%
  • Der DAX schließt höher als 2020: 60%
  • Ein Ereignis tritt ein, daß mich unerwartet mindestens 20000 Euro kostet (keine eigenen Entscheidungen wie Autokauf): 5%
  • Ein Ereignis tritt ein, daß mir unerwartet mindestens 20000 Euro einbringt: 5%
  • Ich benutze den Instant Pot noch regelmäßig für Hauptgerichte: 90%
  • Ich benutze den Instant Pot noch regelmäßig für Joghurt: 80%
  • Wir fahren nach Ameland: 80%
  • Ich habe mein eigenes Kochbuch zusammengestellt, physisch ausgedruckt und in Verwendung: 70%
  • Wir backen wieder ein Lebkuchenhaus: 60%
  • Crusader Kings III spiele ich immer noch: 70%
  • Ich kaufe eine Nintendo Switch: 70%
  • Mein Backofen oder Herd benötigen wieder einen Servicetechniker: 60%
  • Ich habe einen stationären Krankenhausaufenthalt: 10%
  • Ich publiziere einen Artikel in einer Zeitschrift: 60%

Nun noch ein paar zensierte Vorhersagen oder Schätzungen, die andere Personen betreffen oder aus anderem Grund „sensibel“ sind:

  • […]: 40%
  • […]: 10%
  • […] stirbt: 10%
  • Ich breche […] ab: 40%
  • Ich bestehe […]: 70%
  • Ich […]: 10%

Die Auswertung erfolgt dann Ende des kommenden Jahres. Ich bin gespannt.

Vom Gatter zum Computer

Das Verständnis dafür, wie ein Computer im Kern funktioniert, ist kein Allgemeinwissen.

Zwar glaubt jeder, irgendwie zu wissen, was passiert: in Programmiersprachen werden Programme geschrieben. Da gibt es Funktionen und Anweisungen und Schleifen, und all diese Konstrukte sagen dem Computer, was er tun soll. Und dann gibt es Millionen bis zu Abermilliarden Transistoren, die man zusammengenommen „Prozessor“ nennt, und der führt das Programm dann aus.

Doch wie? Begriffe wie „Compiler“ oder „Betriebssystem“ mögen auch noch als Begriff bekannt sein, aber wie das genau funktioniert? Zumindest die Teilnehmer der üblichen Talkshows wissen es wohl nicht. Und trauen sich im Zweifel auch nicht daran, denn das ist ja ein unüberschaubares Fachgebiet, auf dem nur der Informatiker und der Ingenieur sich auskennt. Wobei auch unter diesen viele ins Schwitzen kämen, müßten sie es mal eben erläutern.

Hier setzt „nand2tetris“ an, ein Online-Kurs von zwei israelischen Informatikprofessoren. Der Kurs läßt – wie auch ihr inhaltsgleiches Buch „The Elements of Computing Systems“ – den Teilnehmer bei einfachen Logikgattern wie UND sowie ODER beginnen, und steigt mit ihm dann über kombinatorische und sequentielle Schaltungen die Hardwarehierarchie hinauf, bis der Teilnehmer einen einfachen Computer entworfen hat.

Dieser ist natürlich nicht real, niemand muß löten können. Die Gatter und daraus zusammengefügten Schaltungen werden in einem downloadbaren Java-Programm simuliert. Dennoch findet sich hier alles in vereinfachter Form: der Teilnehmer verwendet eine simple Hardwarebeschreibungssprache und simuliert dann die Schaltung in einem ebenso einfachen Simulator. Wenige Knöpfe, Reduzierung aufs wesentliche. Alles fein.

Bis hierhin muß der Teilnehmer sozusagen keine Vorkenntnisse haben, ab hier muß er programmieren können. In einer beliebigen Programmiersprache. Auch der allereinfachsten, es kann auch BASIC sein. Es geht nur um einfache Textein- und -ausgaben auf der Konsole.

Im zweiten Teil des Kurses und des Buches setzt der Teilnehmer dann darauf auf und steigt die Softwarehierarchie hinauf. Zunächst steht ein Assembler auf dem Programm, denn in Maschinensprache zu programmieren ist lästig.

Anschließend entwirft er eine virtuelle Maschine, die Anwenderprogramme ausführen kann, und implementiert diese in Assemblersprache.

Dann entwirft er eine Hochsprache, die ein wenig wie Java aussieht, aber sehr abgespeckt und simpel ist. Und natürlich einen Compiler dafür. Themen wie Lexer und Parser werden natürlich im Kurs und im Buch erklärt.

Und wie überall im Kurs: die Themen werden so minimal angeschnitten, daß eine sinnvolle, praktische Verwertung möglich wird, nicht mehr. Das ist eben die Leistung des Buches! Über Syntaxanalyse allein kann man viele Semester studieren. Aber für diese ganz einfache Sprache reicht das bißchen aus (die natürlich so vorentworfen ist, daß sie mit allereinfachsten Analysemethoden handzuhaben ist – die Autoren lenken den Teilnehmer ja schon sehr deutlich auf den vorgegebenen Weg).

Zuguterletzt entwirft und implementiert der Teilnehmer noch ein einfaches Betriebssystem. Auch hier darf man keine hochtrabenden Vorstellungen haben, es sind ein paar einfache Routinen, die erstens praktisch sind, um eigene kleine Programmierprojekte auf „seinem Computer“ umzusetzen, und die zweitens einen Eindruck geben, welche Themenbereiche ein Betriebssystem abdecken kann.

Ich kann den Kurs nur jedem ans Herz legen, besonders auch Leuten in meiner Position: im Prinzip habe ich nichts neues gelernt, ich wußte das alles schon. Im Prinzip halt. Implementiert habe ich einen Compiler aber noch nie. Viel zu kompliziert…

Nein, ist es nicht! Und es macht richtig Spaß!

Den Onlinekurs finde ich als Format etwas langatmig, stundenlang Videos anzugucken ist nicht so meins, daher bevorzuge ich deutlich das Buch. Inhaltlich sind beide jedoch identisch, und der Kurs ist kostenlos im Internet zu belegen.

Ein Start in Blender 3D

Das Wochenende ist da, Corona verhindert viele Freizeitaktivitäten, da lerne ich doch einfach mal was neues.

Blender ist ein 3D-Grafikprogramm mit interessanter Geschichte: als kommerzielle Software entwickelt, machte der Hauptentwickler nach Untergang seiner Firma der Community ein Angebot: „bekommt 100000 Euro zusammen und ich gebe den Code als Freie Software heraus“.

Das Crowdfunding war erfolgreich, der Hauptentwickler Ton Rosendaal hat das Projekt auch nicht verlassen, wie man annehmen könnte, und es fand sich eine Schar von Benutzern und auch von Entwicklern.

Heute ist Blender eines der Vorzeige-Open-Source-Projekte überhaupt, zusammen mit PostgreSQL: fantastische Software, die stabil ist, ständig neue Features dazubekommt, die Bugdichte gering hält, und solide finanziert ist. Und eine angenehme und professionelle Community hat.

Nun bin ich ja nicht so künstlerisch veranlagt. Also so gar nicht. Schon 2D-Grafikprogramme machen mir Schwierigkeiten. Und Blender ist dann nochmal eine ganz andere Hausnummer.

Aus Büchern lernen klappt meiner Erfahrung nach bei solchen grafiklastigen Themen nicht. Schauen wir eben auf YouTube nach Videos. Und da gibt es Unmengen an Tutorials.

Nun sind kostenlose Tutorials meistens von genau der Qualität, die man von „für umme“ erwarten kann: oft ein hochmotivierter Lehrer, aber das Tutorial hakelt an jeder Ecke, wenn man es nachzuvollziehen versucht, und am Ende bricht man dann entnervt ab.

Für Blender gibt es tatsächlich mehrere gute Optionen:

Der Klassiker ist das Donut-Tutorial. Mich holt das aber aus irgendeinem Grund nicht ab. Grant Abbitt hat ein recht kurzes Tutorial, das aber sehr verständlich zeigt, wie man eine einfache Szene aufbauen und rendern kann. Das habe ich mir zweimal komplett angeguckt, aber ohne es konkret am Programm nachzuvollziehen. Das hatte ich eigentlich vor, nun anzugehen.

Aber dann fand ich das Tutorial von Zach Reinhardt. Viel umfangreicher (Cloth-Simulation! Generierte Materialien!) und dazu eine viel schönere und stimulierendere Szene. Gesagt getan!

Nach eineinhalb Tagen (mit vielen Pausen) kann ich sagen: es hat sich gelohnt! Spaß gemacht hat es auch.

Probleme gab es auf dem Weg auch einige, aber keine, die ich nicht beheben oder umschiffen konnte.

Wir modellieren einen Korb mit Äpfeln, davor zwei Apfelhälften und ein Messer. Alles texturiert, beleuchtet (3-Punkt-Beleuchtung) und mit viel Liebe zum Detail.

Mein Ergebnis, daß im Beitragsbild oben zu bestaunen ist, kommt bei weitem nicht an die Vorlage, die Zach im Tutorial erstellt, heran. Aber für ein Wochenende, von Null auf Obstkorb, finde ich das schon sehr anständig.

Natürlich könnte ich das jetzt nicht, ohne das Video zu gucken, nochmal nachvollziehen. Aber Teile davon schon. Und manche Dinge sind schon fast im Muskelgedächtnis. „g x“ zum Verschieben entlang der x-Achse, „Shift-d“ zum duplizieren. Ich kann jedenfalls mehr Blender als zuvor.

Schwierigkeiten auf dem Weg waren vor allem folgende:

  • Der Kurs ist für Blender 2.8 gemacht, das ist zwar bereits mit dem komplett umgestalteten User-Interface, aber ich habe gleich das aktuelle Blender 2.9 verwendet. Eine Einstellung ist ersatzlos weggefallen, einige andere sind ganz woanders hingewandert. Zum Glück findet man in den Kommentaren darunter in der Regel die Lösung, wenn auch nicht unbedingt weit oben, da muß man sich schon durchkämpfen.
    Der Kurs ist komplett kostenlos, und daher kann man keine Ansprüche an den Autor stellen. Und die Videos neu für Blender 2.9 aufzunehmen, wäre kaum vertretbarer Aufwand. Aber wenn er es den Zuschauern etwas einfacher machen wollte: eine textuelle Zusammenstellung der relevanten Änderungen direkt in der Videobeschreibung (das wären jeweils so ein bis zwei Sätze) würde dem Zuschauer das ganze sehr erleichtern.
  • Beim Texture-Painting sah es so aus, als ob nichts passieren würde. Tatsächlich wurde auf der Rückseite gemalt (wo ich es nicht sehen konnte). Das lag an falschen Normalen-Vektoren (klar, wenn die negativ sind, ist alles gespiegelt), aber da habe ich in den Kommentare lange, lange suchen müssen, bis ich mitbekam, was passiert und wie man es behebt. Ich weiß auch leider gar nicht, wie ich das Problem überhaupt verursacht habe.
  • Mein Apfel sah gut aus, hat aber offenbar in der Geometrie eine komische Stelle. Beim Zerteilen in zwei Hälften waren es nicht halbkugelartige Gebilde, sondern es war bei beiden Hälften am Rand nochmal eine Stelle ausgefressen. Damit habe ich keine ordentliche Schnittebene eingefügt bekommen.
    Ich habe noch versucht, die Geometrie zu verbessern, indem ich Punkte verschoben habe, aber es wurde nur immer schlimmer. Da fehlte mir klar das Wissen, das Problem zu beheben, und neu anfangen mochte ich nicht, weil das Modellieren des Apfels schon einige Zeit her war, und ich dann sehr viele folgende Schritte hätte erneut durchführen müssen. Ich habe deshalb die Apfelhälften schweren Herzens weggelassen.
  • Rendern mit Eevee stürzte bei mir zunächst ab, ich habe dann GPU-Rendern abgeschaltet und nur auf der CPU gerendert. Ja, das dauert.
  • Rendern mit Cycles dauerte bei mir 30 Minuten. Mir war gar nicht klar, daß mein Rechner so schwach ist. Hier konnte ich GPU-Rendering ohne Absturz dazunehmen, aber das hat die Zeiten nur marginal verbessert. Meine GeForce GTX 1050 war damals mal Mittelklasse, heute ist sie wohl nichts mehr. Ich habe allerdings auch keine Vorstellung, wie viel sie beitragen können müßte, vielleicht stimmt ja auch nur eine Einstellung nicht.
  • Beim Cycles-Rendern fiel mir auf, daß da ein Apfelstiel durch das Tuch durchgesteckt ist. Zunächst dachte ich, das sei ja eine ganz nette Sache, das könne ja auch real passieren, bis mir auffiel, daß der Stiel, um zum Tuch zu kommen, erstmal durch die Metallschale tunneln müßte. Ich hab den Stiel dann gelöscht, aber im Eevee-Render oben sieht man ihn noch.
  • Nach den Apfelhälften das größte Problem: irgendwas stimmt mit dem Licht an meinem Messer nicht. Die Klinge ist schwarz, ebenso ist die Rückseite des Messer viel zu dunkel.
    Selbst nachdem ich nochmal ein Licht direkt darüber gepackt habe, sehe ich kein Licht auf der Klinge reflektieren oder wenigstens die silbrig-metallische Textur. Auch Rotieren des Messers half nicht.
    Ich weiß überhaupt nicht, was da los ist, und damit weiß ich auch nicht, wonach ich googeln sollte.
    Es sieht jedenfalls doof aus, und deswegen ist der Eevee-Render „mein“ finales Ergebnis. Hier aber zunächst noch mein Cycles-Render:
Finaler Cycles-Render
Finaler Cycles-Render

Insgesamt ein lohnendes Wochenende. Und ich möchte weitermachen. Zach Reinhardt hat auch noch einen bezahlten Kurs mit geradezu Lastwagenladungen voll Videos. Inklusive Animation und vielem mehr, was im kostenlosen Kurs nicht vorkam. Das steht nach einer Pause dann als nächstes auf dem Programm.

Ihr Monitor ist zu hell eingestellt!

„Dark Themes“ sind gerade unheimlich in Mode. Viele Menschen mögen das moderne Aussehen. Doch immer wieder lese ich als Argument für dunkle Themes auch, daß Menschen sich von hellen Themes geblendet fühlen, wenn es Abend wird und das Licht schummrig wird.

Ich bin kein Freund dunkler Themes. Aus rein ästhetischen Gründen. Aber ich verstehe, wenn dunkle Themes anderen Menschen gefallen.

Was ich nicht so recht verstehe, ist das Argument mit dem Blenden. „Augenschonend“ seien dunkle Themes. Und das ist Quatsch. Ergonomischer Unsinn.

Denn wenn Sie ein heller Bildschirmhintergrund blendet, dann ist Ihr Monitor zu hell eingestellt.

Auch spät abends sollte der Bildschirm nicht ermüden oder gar blenden. Blaufilter wie der Nachtmodus in Windows, Mac OS X oder den Handy-Betriebssystemen helfen dabei. Doch vor allem ist die Helligkeitseinstellung (auch: Brightness) wichtig.

Es gibt eine ganz einfache Faustformel: Lassen Sie den Bildschirm weiß leuchten. Öffnen Sie unter Windows beispielsweise Notepad und maximieren Sie das Fenster. Nun halten Sie ein Stück weißes Papier direkt neben den Bildschirm.

Ist der Bildschirm deutlich heller als das Blatt Papier? Dann ist Ihr Bildschirm zu hell eingestellt!

Drehen Sie den Helligkeitsregler herunter, bis der weiße Notepad-Hintergrund nicht wesentlich heller leuchtet als das Blatt Papier.

Das ist weit unten, nicht wahr? Als Anhaltspunkt: Mein Monitor zuhause steht auf einer Brightness von 16 (von 100). Beide Monitore bei der Arbeit stehen auf 0. Ja, null!

Das sieht die erste halbe Stunde schummrig und seltsam aus. Aber das Gehirn gewöhnt sich sehr schnell daran, und dann sieht es völlig normal aus. Weil es auch normal ist!

Nur Kollegen, die vorbeikommen, werden Sie ab und an verwundert darauf ansprechen.

Netter Nebeneffekt: In der Regel verbessert sich auch die Farbwiedergabe des Bildschirms ein wenig, weil er nun nicht mehr Photonen rauspumpt, koste es was es wolle, sondern er innerhalb vernünftiger Parameter arbeiten kann.

Critical Chain im PMBOK

In der fünften Auflage von 2013 hatte „A Guide to the Project Management Body of Knowledge“ die Critical-Chain-Methode von Goldratt endlich in Kapitel 6 aufgenommen.

Doch in der sechsten Auflage von 2017 ist Critical Chain sang- und klanglos wieder herausgefallen.

Leider veröffentlicht PMI keine Rationales für die einzelnen Fassungen. Daher bleibt – auch mangels öffentlicher Äußerungen zum Thema – unklar, weshalb sie diesen Schritt gegangen sind. Lange genug gewartet hatten sie mit der Aufnahme ja (Critical Chain ist von 1997), da kann man doch annehmen, daß das eine wohlüberlegte und fundierte Entscheidung war. Und dann die Kehrtwende nur vier Jahre später.

Ich finde natürlich schade, daß diese Methode die Adelung durch die PMI wieder verloren hat, aber noch problematischer finde ich, daß offenbar da draußen viele Projektleiter Critical Chain sagen und ein modifiziertes Critical Path machen.

Wenn Sie Sicherheitsreserven (oder Puffer) in die einzelnen Arbeitspakete einbauen, wenn Sie diese nicht zu einem oder wenigen Puffern „poolen“ (beispielsweise um explizit den kritischen Pfad zu schützen), wenn Sie die „Angstschätzungen“ akzeptieren und nicht darauf bauen, ja darauf drängen, daß die Hälfte der Arbeitspakete schließlich länger dauern werden, als Sie dafür Zeit eingeplant haben, dann machen Sie einfach kein Critical Chain.

Das ist nicht an sich schlecht, aber dann trotzdem von Critical Chain zu sprechen wäre Etikettenschwindel.

Critical Chain ist für die Furchtlosen, die nebenbei auch noch die Erwartungen des gesamten Umfeldes umkrempeln möchten („Was soll das heißen, daß Sie die Arbeitspakete auf Kante geplant haben und noch dazu die Schätzungen recht optimistisch sind? Sind Sie sich wirklich sicher, daß dieser Puffer am Ende reicht?“).

Für die, die ihre Entwickler erstmal an den Rand der Meuterei bringen wollen („Sie sagen so offen, daß wir nur rumfaulenzen? Was soll das heißen, Arbeit füllt immer die geplante Zeit aus? Trauen Sie uns nicht? Wir brauchen eine Sicherheitsreserve!“).

Wer das tut, hat meinen Respekt. Vielleicht war die Zeit wirklich noch nicht reif dafür…