Losstopschade

Die bytebasierte Meinungskanone von Daniel Diekmeier. Archiv. Jetzt abonnieren →

The Humble Zero Width Space

Mein liebstes Satzzeichen ist vermutlich das breitenlose Leerzeichen. Ich mag Dinge, die gleichzeitig sinnvoll, absurd, witzig und etwas obskur sind, und da gehört dieses Leerzeichen definitiv dazu. (Das klingt, als wäre ich eine Figur aus einem Buch von John Green, but stay with me.)

Vielleicht seid ihr überrascht, dass es überhaupt mehr als ein Leerzeichen gibt. Um ehrlich zu sein: Bei meiner „Recherche“ für diesen Artikel war ich selbst überrascht, dass Wikipedia achtzehn verschiedene Leerzeichen in Computersystemen auflistet. Oh je. So weit wollte ich gar nicht gehen!

Das breitenlose Leerzeichen benutze ich eigentlich nur, wenn ich in einem Tweet gerne einen Genitiv benutzen möchte, zum Beispiel „Ich mag @danjel​s leckere Pizza.“ Im Englischen wäre das unproblematisch, aber im Deutschen möchte ich ja nicht „@danjel’s“ schreiben (oder gar „@danjel s“), sondern halt „@danjels“. Damit das „s“ aber nicht zum Nutzernamen gezählt wird, muss man es mit einem, ihr ahnt es, breitenlosen Leerzeichen abtrennen: „@danjel​s“. (Ihr seht es nicht, aber hier ist ein Leerzeichen zwischen l und s!) Das ist der beste Twitterhack, den ich kenne, und bestimmt habe ich ihn von Max Friedrich.

Das breitenlose Leerzeichen eignet sich hervorragend, um Kollegen, Computersysteme und natürlich sich selbst zu verwirren. Zum Beispiel: Schreibt mal einen Artikel über breitenlose Leerzeichen, in dem breitenlose Leerzeichen vorkommen, und überprüft vor dem Veröffentlichen, ob ihr auch keins vergessen habt. Viel Spaß!

Mir geht es aber auch noch um etwas anderes: Manchmal sitze ich da und habe irgendeine diffuse Lust, irgendwas zu programmieren, aber weiß nicht, was. Ich könnte etwas an meinen bestehenden Projekten machen, aber die sind irgendwie so ernst. Manchmal würde ich lieber eine Kleinigkeit machen, die von allem anderen unabhängig ist, aber dafür müsste man erstmal eine Idee haben, und … so sitze ich manchmal stundenlang da und mache nichts.

Aber neulich, als ich mal wieder „Breitenloses Leerzeichen“ in Wikipedia (meiner liebsten Quelle für obskure Satzzeichen) gesucht habe, um es in einem Tweet benutzen zu können, dachte ich: Warum baue ich nicht endlich eine Seite, die genau das macht? Und das habe ich jetzt, und hier ist sie:

Besucht sie und holt euch eure eigenen Leerzeichen: Humble Zero Width Space ↗.

Die Seite besteht nur aus einer einzigen HTML-Datei, in die ich ein bisschen CSS und JavaScript reingeschrieben habe. Von der Idee bis zum Deploy (und damit meine ich, dass ich die Datei per FTP auf meinen Uberspace geschoben habe) dauerte es etwa fünfzehn Minuten. Ich kann nur empfehlen, sowas ab und zu mal zu machen, um sich zu erinnern, wie es sich anfühlt!

Jemand, der Nein sagt

Es ist schön, tolle Kollegen zu haben. Kollegen, mit denen man sich Schritt für Schritt durch gruselige Interfaces klicken kann, um zusammen Lösungen zu finden. Kollegen, mit denen man beim Pair Programming mal in eine Tangente über COBOL abrutscht. Aber manchmal ist es schön, Kollegen zu haben, die auch mal „Nein“ sagen.

Vor ein paar Tagen habe ich meinen Kopf für zwei Stunden gegen ein Problem gehauen, aber das einzige, was nachzugeben drohte, war mein Schädel. Die genauen Details sind nicht besonders interessant (und schwer zu erklären). Es sei nur gesagt, dass ich kurz davor war, extrem viel Aufwand zu betreiben, um einen sehr kleinen Effekt in einer App zu erzielen.

Irgendwann hatte ich schon dutzende Zeilen Code geschrieben und dachte mir: Dieser Code (und die ganze Idee!) ist so unglaublich kompliziert, ich erzähle mal Timo davon. Vielleicht hat er eine bessere Idee, wie ich das umsetzen kann. Vielleicht kennt er einen coolen React Trick, den ich nicht kenne, mit dem es ein Einzeiler wird! Also erzählte ich ihm von meinem Problem. Schon während ich aufschrieb, was ich gerne machen würde, wurde mir klar, dass meine Idee noch komplizierter war, als ich vorher dachte. Timo las meine Nachricht und durchlief die fünf Stadien der Trauer:

  1. Er verstand nicht, was ich will
  2. Nach einer zweiten, ausführlicheren Erklärung verstand er dann doch, was ich will
  3. Er sagte, dass es vermutlich keine gute Idee ist
  4. Er erzählte, dass er mal etwas Ähnliches programmieren musste, aber dass es furchtbar war und er es nicht nochmal machen würde
  5. Er wiederholte, dass es vermutlich keine gute Idee ist

Schlussendlich waren wir uns einig, dass es keine einfache Möglichkeit gibt, meine Idee umzusetzen (wenn überhaupt!), und dass ich es einfach lassen sollte. Das war die (hoffentlich) beste Entscheidung für das Projekt, das Budget und die Codebase, die alle drei von wildgewordenem Drauflosprogrammieren hätten gesprengt werden können.

Sich gegenseitig zu unterstützen, um gute Lösungen zu finden, finde ich gut und es macht mir viel Spaß. Aber mindestens genauso gut finde ich, zusammen auch mal einen Schritt zurückzutreten und zu beschließen, dass etwas eine ganz und gar übertriebene Idee ist. Dabei ist es wichtig, dass alle Beteiligten geerdet genug sind, dass nicht einer sowas sagt wie „Und dann löte ich den Flux Kompensator direkt in den Connection-Pool und dadurch exhumiere ich dann den rückwärtsgepolten Neutronengenerator, und alles nur mit dreiundsiebzig npm Packages“ und der andere nur anerkennend nickt und sowas sagt wie „Oh krass.“

Vielleicht muss man öfter nicht nur „Können wir das bauen?“ fragen, sondern auch „Sollten wir das bauen?“ und „Ist das komplett übertrieben?“ Denn oft – öfter, als man denkt – ist die Antwort, einfach ruhig zu bleiben und nichts zu machen. Auch mal schön!

Wocheneinkauf

Seit ich in Berlin wohne, hatte ich Supermärkte in Laufweite und bin jeden Tag auf dem Weg nach Hause an ihnen vorbeigekommen. Insofern hatte ich nie einen Grund, meine Einkäufe zu planen – ich habe einfach jeden Tag einen kleinen Einkauf gemacht. Als ich dann vor etwas über einem Jahr angefangen habe, von Zuhause zu arbeiten, hat das meine Einkaufsfrequenz sogar noch erhöht. Man muss ja jeden Grund nutzen, mal die Wohnung zu verlassen!

Aufgrund der aktuellen Unpleasentness haben Clara und ich uns aber besonnen, dass es vermutlich sehr dumm wäre, jeden Tag ein- bis zweimal einkaufen zu gehen. Also haben wir das gemacht, was man sich ohnehin schon seit Jahren vornimmt, aber nie macht: Wir haben einen Essensplan für die ganze Woche erstellt. So wird man dann doch noch zu seinen eigenen Eltern.

Einmal die Woche schnappen wir uns jetzt so viele Taschen und Rucksäcke wie möglich, setzen unsere Masken auf, stürmen den gehen zu Edeka und kaufen Lebensmittel für knapp hundert Euro. Besonders beim ersten Mal war das sehr überraschend, aber wenn man es dann auf zwei Leute und eine ganze Woche herunterbricht, sind es nur noch knapp sieben Euro pro Tag pro Person. (Und andere Ausgaben für Essen, zum Beispiel für solche Frivolitäten wie In ein Restaurant gehen, haben wir zur Zeit fast nicht.)

Besonders überrascht haben mich die vielen positiven Nebeneffekte des Essensplans: Zum Frühstück und Mittagessen macht sich jeder selbst, was er/sie will, und zum Abendessen wechseln wir uns mit Kochen ab. Seit Wochen hatten wir keine „Worauf hast du Lust?“ – „Nee, worauf hast du Lust?“ – „Nein, sag, worauf du Lust hast!“ Gespräche mehr – wenn im Plan Nudelsalat steht, dann gibt es halt Nudelsalat!

Wir sind besser darin geworden, vielseitige Gerichte aus unserem Repertoire zu kochen. Seit wir den Plan™ haben, haben wir keine Fertiggerichte mehr gegessen oder uns spontanen Cravings hingegeben. (Natürlich haben wir trotzdem einmal absichtlich und bewusst Nachos mit Käse gemacht, aber immerhin mit selbstgemachter Guacamole und Salsa.)

Natürlich ist nicht alles toll: Obwohl wir uns an allen anderen Tagen keine Gedanken mehr übers Einkaufen machen müssen, wird der Samstag komplett davon dominiert. Erst stellen wir den Essensplan zusammen, dann erstellen wir basierend auf dem Plan eine Einkaufsliste. (Kleiner Tipp: Einkaufslisten unbedingt so sortieren, wie auch die Produkte im Laden sortiert sind. Das ist bestimmt eine dieser Sachen, die schon jeder macht, aber mein Einkaufsleben wurde davon komplett auf den Kopf gestellt!) Anschließend spielen wir eine Stunde Animal Crossing, um uns mental auf den Einkauf vorzubereiten, drucksen noch eine Weile herum, und wenn uns gar nichts mehr einfällt, gehen wir endlich los. Wieder zuhause muss dann noch alles verstaut werden, und schon ist es halb sechs Abends. (So war es heute! Aber wir haben auch sehr lange geschlafen.)

Abschließend: Eigentlich war der Essensplan aus der Not geboren, dass wir uns so selten wie möglich unter Leute begeben wollten. Aber die Vorteile haben mich komplett überrascht und überzeugt. Ich hoffe, dass wir den Plan (zumindest teilweise) beibehalten können, auch wenn man irgendwann wieder guten Gewissens täglich einkaufen gehen kann.

Kindle Voyage, sechs Jahre später

2014 hat Amazon einen E-Reader rausgebracht, der ganz gut war: Den Kindle Voyage. Zumindest war man sich einig, dass er immerhin etwas besser war als der Kindle Paperwhite – aber nicht so viel besser, dass man ihn unbedingt kaufen müsste, wenn man schon einen Paperwhite besaß. Logischerweise kaufte ich ihn trotzdem. (Übrigens war sich auch Amazon einig, dass er keine Lücke in ihrem Lineup füllt und hat ihn nie aktualisiert und schließlich discontinued.)

Das ist inzwischen Jahre her. Früher las ich viel auf dem Kindle, aber inzwischen nur noch jedes halbe Jahr mal ein Buch, wenn ich es nirgendwo anders finde.

Es folgt eine nicht vollständige Liste von Dingen, die mich genervt haben, während ich kürzlich auf meinem Kindle Don’t Panic las. Sie beinhaltet absichtlich nicht die ausgenudelten, offensichtlichen Argumente, dass echte Bücher schöner sind oder gut riechen. Sie beinhaltet außerdem, wie ich überrascht feststellen musste, keine Beschwerden über die Hardware des Voyage. Die Hardware ist komplett akzeptabel. Sie ist nicht umwerfend, aber sie tut ihren Job – und 99% von Erfolg ist ja bekanntlich, überhaupt anwesend zu sein.

Meine Frustration beginnt in dem Moment, in dem ich den Voyage anschalte, denn dann wird man mit der Software konfrontiert.

Die Softwarequalität des Kindle ist erschreckend. Nichts funktioniert verlässlich. Das gesamte Betriebssystem wirkt, als hätten es Leuten entwickelt, die noch nie ein Buch gelesen haben und nur aus Erzählungen erfahren haben, wie Lesen funktioniert. Als wären es Leute, die zum Testen zwei Absätze Lorem Ipsum benutzen und dann zufrieden auf einen großen „Alles klar, Betriebssystem veröffentlichen!“-Button drücken.

Alle paar Monate sieht die Benutzeroberfläche anders aus, aber ich verstehe nicht genau, warum. Sie wurde bislang nie verbessert, sondern lediglich verändert. Elemente wandern durch die Gegend, Menüs werden neu gemischt, Icons bekommen dünnere Linien, aber nie hatte ich das Gefühl, dass die Software auf dem Kindle jetzt endlich weniger schlimm wäre als zuvor.

Das frustrierendste Element des ganzen Geräts ist der Touchscreen. Ich kann kaum glauben, wie miserabel dieser Touchscreen ist. Er reagiert manchmal. Es ist 2020, und der Touchscreen reagiert manchmal! Aber ich bin sicher, dass daran nur die Software schuld ist.

Immer passiert es, dass ich beim Lesen den Touchscreen berühre, um irgendwas zu machen (ein Menü öffnen, einen Satz markieren, zurückblättern), der Kindle aber die genaue Stelle meiner Berührung ignoriert und einfach eine Seite nach vorne blättert.

Die Idee ist bestimmt, dass Lesende, wenn sie erstmal im Lesefluss sind, meistens weiterblättern möchten, darum ergibt es natürlich Sinn, einfach immer weiterzublättern. Soweit ich das einschätzen kann, gibt es keine Stelle auf dem Touchscreen, an der dieses Verhalten nicht ausgelöst wird. Stattdessen muss ich wieder eine Seite zurückblättern, und erst dann lässt der Kindle mich das machen, was ich eigentlich machen wollte.

Nebenbei sei erwähnt: Der Kindle Voyage hat links und rechts neben dem Bildschirm Tasten, mit denen man vor- und zurückblättern kann. Diese Tasten funktionieren immer. Wenn es diese Tasten also gibt, und sie offenbar funktionieren, warum muss ich dann trotzdem jedes Mal diesen absurden Tanz mit dem Touchscreen aufführen?

Ein anderes gutgemeintes Feature, das nicht richtig funktioniert, ist die Anzeige der verbleibenden Zeit im Buch. An sich halte ich dieses Feature für eine gute Idee! Leider hat es, seit ich Kindles benutze, noch nie richtig funktioniert. Bei jedem neuen Buch zeigt es anfangs eine glaubwürdige Zeit, aber nach einer Weile lesen wird nur noch eine viel zu kurze, komplett unrealistische Zeit angezeigt. Das ist so nervig! Warum passiert das? Ich wünschte, man könnte sich einfach verbleibende Seiten anzeigen lassen.

Ein letztes Beispiel, wie inkonsistent und unverständlich die Software ist: Das Buch „Don‘t Panic“ enthält viele Fußnoten, im Text verlinkt durch ein einzelnes „*“. Wenn man diese winzigen Links tatsächlich mal trifft (und nicht versehentlich umblättert), dann kann eine von drei Sachen passieren:

  1. Die Fußnote geht als kleines Modal auf (Gut! Das hier ist meine liebstes Ergebnis! Warum passiert das hier nicht immer?)
  2. Die Fußnote geht als bildschirmfüllendes Modal auf, verdeckt die gesamte Seite und muss über ein kleines X in der Ecke, das erst beim dritten Versuch reagiert, geschlossen werden (Mittel!)
  3. Man wird zu der Seite gebracht, auf der sich die Fußnote befindet (Sehr schlecht!)

Wenn Letzteres passiert, möchte man natürlich zu der Stelle zurückkehren, von der man kam, und drückt hoffnungsvoll den Zurück-Button in der Menüleiste. Aber auch hier wird man zwar manchmal zur richtigen Stelle zurückgebracht, aber eben auch manchmal nicht. Und ich verstehe nicht, wann es funktioniert und wann nicht.

Abschließend kann ich sagen: eBook-Reader haben viele Vorteile (sehr leicht, man kann viele Bücher gleichzeitig dabeihaben, man wird nicht von dem tollen Buchgeruch vom Lesen abgelenkt), und solange man einfach nur eine Seite nach der anderen liest, klappt alles einigermaßen gut. Sobald man diesen Weg verlässt, fällt alles auseinander. Vielleicht ändert sich das ja irgendwann, aber solange bin ich froh, dass noch ein Stapel gedruckte Bücher in meinem Regal liegt, den ich noch vor mir habe.

Salt Bae

Clara (bekannt aus dem Comic über die Peanut Butter Caramel Chocolate Tarte) und ich backen gerne. Sowohl zusammen, als auch … gegeneinander? Nein, das ist nicht das richtige Wort. Füreinander. Okay.

Wir mögen auch den YouTube-Kanal von Bon Appétit, weil wir Menschen mit Puls sind.

Jedenfalls fügen sich diese beiden Tatsachen auf magische Art zusammen und das Ergebnis ist, dass wir immer mal wieder Rezepte aus dem Bon Appétit Angebot backen.

Besonders gut fanden wir bis jetzt:

Aber alle diese Rezepte eint nicht nur, wie unglaublich lecker die Ergebnisse sind, sondern auch das Problem, dass die Salzmenge nicht in Gramm angegeben wird, sondern in Teelöffeln der beiden Salzsorten Diamond Crystal Kosher Salt oder Morton Kosher Salt. (Disclaimer: Bei den verlinkten Rezepten wird bei einem tatsächlich zusätzlich eine Grammzahl genannt und zwei nennen keine Sorten, sondern nur das Volumen in Teelöffeln.)

Als Clara also mal wieder fluchend in der Küche stand, wir erst Siri fragten (die es natürlich nicht wusste), dann googelten, auf komischen Webseiten landeten und schließlich einen Dreisatz rechnen mussten, dachte ich mir: Moment mal, ich bin doch Softwareentwickler! Software könnte dieses Problem lösen!

Und so setzte ich mich hin, programmierte in ungefähr einer Sekunde die Logik (einen Computer dazu zu bringen, einen Dreisatz zu rechnen, ist nicht sonderlich schwer), und dann noch einen Tag lang ein neckisches Design dazu. Zwischendurch holte ich mich immer mal wieder Feedback von echten Nutzer*innen (indem ich Clara ein iPhone hinhielt und „Do you like this?!?!?!?!“ rief). Das Ergebnis heißt Salt Bae und sieht so aus:

(Am Anfang hieß es kurz Salt Pal, aber dann klärte mich Clara auf, was ein Salt Bae ist, und ich änderte den Namen sofort.)

Vielleicht ist dieses kleine Stück Software ja auch für euch interessant. Denkt an mich, wenn ihr mal Salz esst! Passt auf euch auf! Bye!

Direkt zu Salt Bae →


Absatz für Nerds: Salt Bae ist Open Source auf Github! Das Interface habe ich mit Svelte gebaut und das hat viel Spaß gemacht. Das war erst meine zweite Berührung mit Svelte, und die erste, die das Licht der Welt erblickt!

Ich gebe Sternebewertungen solide ★★☆☆☆

Seit etwa einem Jahr gebe ich meinen Einträgen im Lesetagebuch keine Sternebewertungen mehr. Ich habe bemerkt, dass die Sterne zu viel visuelle Macht haben, aber nicht genügend Informationen transportieren, um ein ganzes Buch zusammenzufassen.

Ich könnte ein Buch zum Beispiel interessant und wichtig finden, obwohl es nicht so gut geschrieben ist. Vielleicht finde ich ein anderes sehr gut geschrieben, aber auch sehr speziell und würde deshalb keine allgemeine Empfehlung aussprechen. Vielleicht ist die erste Hälfte sehr gut, aber die Zweite zieht sich furchtbar? All das sind Nuancen, die ich nicht auf eine einzige Zahl zwischen 1 und 5 herunterbrechen will.

Ich denke: Wenn ich mir die Mühe mache, dutzende oder gar hunderte Seiten eines Buches zu lesen, sollte ich (wenn ich denn eine Wertung loswerden will), zumindest ein paar eigene Worte schreiben.

Erstmal war ich, wie man in solchen Moment der Erkenntnis oft ist, zufrieden mit meiner Entscheidung und dachte, dass ich die Welt damit jetzt endlich zu einem besseren Ort mache, wird aber auch Zeit, etc etc.

Aber mit der Zeit fand ich es auch zunehmend anstrengend, die Sternebewertungen von anderen Nutzern im Lesetagebuch zu sehen. Kein Problem, dachte ich mir, ich bin der Imperator auf Lebenszeit, ich blende alle Sterne für mich aus. Geil!

Diese Funktionalität war dann tatsächlich mehrere Monate lang unverändert im Lesetagebuch: Sobald ich eingeloggt war, sah ich zwar alle Einträge und alle schriftlichen Rezensionen, aber die Sterne waren nicht mehr dabei.

Seit ich diese Änderung umgesetzt hatte, trug ich aber die Frage mit mir herum, wie ich mit der ganzen Thematik umgehen soll. Dieser „Hack“ für mich selbst war schön und gut, aber irgendwie wollte ich es ganzheitlicher behandeln. Ich überlegte, ob ich das Feature „Sterne“ komplett aus dem Lesetagebuch rausnehmen soll: Zack, fertig, keiner kann mehr Sterne sehen oder vergeben. Das kam mir in den besten Momenten cool und mutig vor, aber in den schlechtesten hauptsächlich wie ein ganz schöner Dick Move. Ich wollte dann doch nicht allen Leuten ein Feature wegzunehmen, gegen das sie vielleicht gar nichts haben.

Schlussendlich habe ich mich entschiedenen, den größten Fauxpas in der Produktentwicklung zu begehen und einen Schalter zu den Einstellungen hinzugefügt:

Die Frage bleibt offen, ob ich damit jetzt allen Leuten geholfen habe, oder niemandem. Aber wenn es euch so geht wie mir, und ihr das Gefühl habt, zu oft von fünf kleinen Sternen beeinflusst zu werden, und Filme, Serien, Bücher und Dinge blöd findet, obwohl ihr sie eigentlich gut finden wolltet – dann schaltet doch die Sterne ab und erobert euch ein kleines Stück Ruhe zurück.

Ältere Artikel →