Losstopschade

Das Cyber-Megaphon von Daniel Diekmeier. Archiv. Jetzt abonnieren →

Cambio

Letztes Jahr hat mir Clara ein neues Kartenspiel beigebracht, das sie wiederum von Eva gelernt hatte, die es wiederum von Lea gelernt hatte: Cambio. ich hatte vorher noch nie davon gehört, aber es macht sehr viel Spaß und wir haben es seitdem schon viele Male gespielt.

Für das Spiel braucht man ein gewöhnliches Poker-Set. Bis die Regeln nach viel stiller Post bei uns angekommen waren, hatten sich bereits ein paar Hausregeln eingeschlichen, aber wir spielen ungefähr nach diesen Regeln.

Als sich im September andeutete, dass demnächst wieder Weihnachten vor der Tür stehen würde, kam mir die Idee: Was, wenn ich ein eigenes Kartenspiel gestalte, das ich dann in meinem cambiospielenden Freundeskreis verschenken kann? Wie schwer kann das schon sein?

Ein Kartenspiel zu gestalten ist ziemlich schwer

Das erste Problem war, die notwendigen Figuren zu zeichnen. Ein Pokerspiel enthält 15 Bildkarten: jeweils vier Buben, Damen und Könige, plus drei Joker. Ich habe die Figuren alle am iPad gezeichnet, in Procreate, und das dauerte ewig.

Procreate hat eine Funktion für Punktspiegelung – eigentlich nice, denn klassischerweise sind viele Pokerkarten ja punktgespiegelt. Leider ist die Funktion überhaupt nicht flexibel und ich konnte sie dadurch nicht so gut gebrauchen wie ursprünglich gehofft. Aber besser als nichts!

Ansonsten hatte ich noch einige Probleme damit, meine Freunde ausreichend naturgetreu abzubilden, aber da kann ich nun wirklich niemandem etwas vorwerfen außer mir selbst.

Das nächste Problem war das Layout.

Ich probierte, eine Karte in Pixelmator Pro zu designen, und obwohl das grundsätzlich funktionierte, hat es mich direkt von der Vorstellung abgebracht, dass das eine gute Idee sein könnte. Es dauerte ewig, alles richtig zu positionieren. Für die erste Karte, eine Karo 10, brauchte ich ungefähr eine Stunde.

Ja, hier sind noch ein paar zusätzliche Ebenen aktiviert, aber ihr versteht schon.

Aber noch schlimmer: Ich würde innerhalb des Prozesses natürlich gerne ein paar unterschiedliche Varianten ausprobieren: Verschiedene Varianten der Symbolgrafiken, unterschiedliche Positionierungen und Größen der Symbole, unterschiedliche Schriftarten, unterschiedliche Farben … die Vorstellung, jedes Mal einen großen Haufen Pixelmator-Ebenen manuell aktualisieren zu müssen, wenn ich meine Meinung ändere, ließ mir direkt Angst- und Anstrengungsschweiß ausbrechen.

Wie so oft fiel mir dann ein, dass ich zum Glück Programmierer bin, und ich schrieb ein Script, das mir die Karten generieren kann. Innerhalb des Scripts kann ich verschiedene Parameter setzen:

  • Die SVGs, die als Symbolgrafiken verwendet werden sollen
  • Die fünf Farben (Herz, Karo, Kreuz, Pik, Joker)
  • Die genauen Positionen der Symbole auf der Karte

Ich konnte sogar Funktionen einbauen, die mir beim Gestalten helfen konnten: Ob der Schnittrand angezeigt werden soll oder nicht, automatische Punktspiegelung der Bildkarten, automatische Ausrichtung aller Zahlenkarten … vielleicht schon zu viel, aber wenn man erstmal anfängt, zu Automatisieren, dann muss man es auch durchziehen.

Das Script brauchte, nachdem ich es ein bisschen optimiert hatte, ungefähr 8 Sekunden, um alle 55 Karten zu generieren. Zum tatsächlichen Designen habe ich meistens nur eine Karte auf einmal generieren lassen, was quasi verzögerungsfreies Arbeiten ermöglicht hat.

(Für automatisches Ausführen, wenn ich Dateien speichere, benutze ich gerne entr, ursprünglich empfohlen von Julia Evans)

Als ich endlich irgendwann 55 fertige PNGs herumliegen hatte, konnte ich die Karten endlich bestellen. Zu diesem Zeitpunkt war ich schon relativ spät dran (es war inzwischen der 10. Dezember), aber entgegen dem, was meine langatmige Beschreibung vermuten lässt, war der zeitaufwändigste Teil nicht die Automatisierung (die dauerte nur etwa einen Tag), sondern das Zeichnen der vielen Karten. (Das dauerte mehrere Wochen, in denen ich jeweils Abends daran gearbeitet habe.)

Gedruckt habe ich sie schließlich bei meinspiel.de, die das wirklich sehr gut gemacht haben. Die Webseite ist etwas anstrengend und ich habe eine Weile gebraucht, um das korrekte PDF zu generieren, das sie sich wünschen, aber mit dem Ergebnis bin ich extrem zufrieden. A propos:

Das Ergebnis

Die Karten kamen rechtzeitig vor Weihnachten an, die Versorgung meiner Freunde mit neckischen Spielkarten war also gesichert.

Gibt es Sachen, die ich ändern würde? Ein paar Kleinigkeiten! In Cambio haben die beiden roten Könige eine besondere Bedeutung, darum war es etwas töricht von mir, Karo dunkelblau zu färben. Überhaupt sind die Farben etwas dunkel geworden (Dunkelblau, Dunkelgrün und Schwarz sehen sich ausgedruckt viel ähnlicher als es auf meinen Bildschirmen der Fall war.)

Insgesamt bin ich extrem froh, es gemacht zu haben, und würde es jederzeit™ wieder tun. Ein schönes Projekt für kalte Winterabende!

Tastaturen sollten immer ein schönes Hobby bleiben

Ich besitze zu viele Tastaturen. Aber macht euch keine Sorgen: Ich bin sicher, dass ich jederzeit aufhören kann, mehr zu kaufen.

Die Tastatur auf dem Foto ist die Neueste in meiner Sammlung, und vielleicht meine Letzte.* Es ist eine Varmilo VA88M CMYK, und sie slappt. Endlich habe ich eine Tastatur, deren unglaublicher Lärm mich mit Freude erfüllt und meine Feinde in Angst und Schrecken versetzt. Außerdem macht es ungeheuren Spaß, auf ihr zu schreiben.

Versteht mich nicht falsch: Ich wollte keine neue Tastatur kaufen. Mir war schon vor Jahren – vor dem Kauf meiner allerersten mechanischen Tastatur (einer Vortex Pok3r, die ich zurückschicken musste, weil sie zu wenige Tasten hatte) – klar, dass Tastaturen ein gefährliches Hobby sind, wenn man noch Geld für Essen übrig haben möchte.

Vor dem letzten Kauf besaß ich bereits zwei alte weiße Magic Keyboards (ohne Ziffernblock), ein neues schwarzes Magic Keyboard (mit Ziffernblock), eine Microsoft Sculpt, eine billige generische Ersatz-Tastatur und eine mechanische Tastatur mit Cherry MX Brown Switches.

Man sollte also meinen, es würde langsam reichen. Ja, das dachte ich auch! Aber ich war unzufrieden: Ich mochte meine andere mechanische Tastatur einfach nie besonders. Ihr Design erweckt zu sehr den Eindruck, ich müsste jetzt sofort Pro Gamer werden und im Licht meiner LED-Neonbeleuchtung ein Monster Energy gurgeln, statt entspannt dazusitzen und ein paar Zeilen JavaScript zu schreiben.

Ich nahm außerdem (deswegen?) an, dass sie einigermaßen günstig gewesen wäre. Ich weiß nicht, warum ich das dachte, denn als ich die Rechnung noch mal raussuchte, merkte ich, dass ich tatsächlich über 130 € für sie ausgegeben habe. Dafür, dass ich sie weder besonders gut, schön oder hochwertig finde, eigentlich etwas schade.

Der Anfang vom Ende dieser letzten Tastatur begann, als ich mir ein DIY Macropad bestellte. (Eigentlich bestellte ich sogar zwei: Nachdem ich es zwei Jahre aufgeschoben hatte, kaufte ich die Raspberry Pi Zero-Variante mit 12 Tasten, woraufhin Pimoroni natürlich sofort die neue, verbesserte Version mit 16 Tasten rausbrachte, die ich dann auch kaufte.)

Diese Macropads kommen jedenfalls mit „Kailh Speed Gold“ Switches, die einen großartigen kleinen „Klick“ von sich geben, wenn man sie drückt. Dieses Klicken war so viel besser als das „taktile“ „Klicken“ der Cherry MX Browns in meiner Hardcore Gamer Tastatur, dass ich wusste, dass ich umsteigen muss.

Richtig in den Strudel gezogen wurde ich erst, als ich auf YouTube nach einer Übersicht guter Einsteigertastaturen gesucht hatte. Um ganz ehrlich zu sein: Das Meiste, was auf Keyboard-YouTube vor sich geht, ist jenseits meines Horizonts. Cherry MX Blues sind angeblich zu laut, alle sprechen die ganze Zeit über zu viel oder zu wenig Lube, es wird wild auf langen Tasten herumgeklopft um angebliches Klappern zu hören … was?

Bevor der Algorithmus™ aber anfangen konnte, mir diese Videos um die Ohren zu hauen, hatte ich bereits ein nettes, informatives Video zur Varmilo VA88M gesehen, das mich dazu gebracht hat, sie bei einem auf Tastaturen spezialisierten Onlinehändler zu kaufen.

Und was soll ich sagen: Ich bin sehr zufrieden. Falls ihr überlegt, eine mechanische Tastatur zu kaufen (und falls ihr EIN EIGENES BÜRO habt!), dann holt euch Clicky Switches. Sie sind so gut.


* Haha, als ob.

Eine echte Kamera

Die Kamera im iPhone ist super. Für eine winzige Kamera mit winzigem Sensor in einem kleinen Glasrechteck, das man ohnehin immer dabei hat, ist sie wunderbar.

Aber: Ich bin trotzdem froh, dass es nicht die einzige Kamera ist, die ich besitze.

In einem Anflug an Wahnsinn habe ich mir die Fujifilm X-T4 gekauft, und sie ist unglaublich gut. Sie sieht gut aus, fühlt sich hochwertig an, und die Fotos, die aus ihr herausfallen, sind toll. Belichtung, Autofokus, Sucher, große Menge an Drehknöpfen, alles top.

Links: Fujifilm X-T4, Rechts: iPhone 13
Links: Fujifilm X-T4, Rechts: iPhone 12
Links: Fujifilm X-T4, Rechts: iPhone 12

Es gibt haufenweise Fotos, die ich mit der Fuji gemacht habe, die nicht so schön wären, hätte ich sie mit dem iPhone gemacht. Der Vergleich ist natürlich extrem unfair, aber wenn ich mir die Ergebnisse anschaue, habe ich trotzdem das Gefühl, dass wir noch viel weiter davon entfernt sind, dass das iPhone eine „große“ Kamera komplett ersetzen kann, als immer behauptet wird.

Aber der Vergleich ist unfair in beide Richtungen: Das iPhone hat unglaubliche Vorteile dadurch, dass es ein iPhone ist. Es gibt zahllose Situationen, in denen ein Foto kein Kunstwerk sein muss, oder in denen es wichtiger ist, überhaupt ein Foto zu machen, als dass es besonders perfekt ist. Wie immer ist alles ein Trade Off, und gerade das Gleichgewicht aus diesen beiden Extremen ist doch das Maggi in der Suppe des Lebens. Wo war ich?

Ach ja: Selbst, wenn man die optische Qualität außer Acht lässt: Es ist einfach schön, Fotos zu haben, die nicht wie iPhone-Fotos aussehen. Und dafür mache ich mir dann auch gerne etwas mehr Arbeit.

Märkische Schweiz

Neulich dachten Clara und ich, dass es mal wieder Zeit wäre, ein paar Tage außerhalb von Berlin zu verbringen, vielleicht sogar in einer Ferienwohnung. Solange es wirkte, als könnte es cozy sein, war uns alles egal. Unsere Wahl fiel schließlich auf die Kurstadt Buckow, eine brandenburgische Kleinstadt, in der beinahe etwas los ist.

Da wir bereits relativ nah am Rand von Berlin wohnen, war es nur ein Katzensprung bis Buckow. Sehr aufregend: Die Fahrt in einem Bus mit sehr niedrigen Sitzen und hohen Fenstern – man hat sich direkt ein bisschen gefühlt wie auf dem Weg zur Grundschule. In Buckow sahen wir uns erstmal den Garten der Ferienwohnung an, insbesondere den … äh … großen Haufen Stöcker direkt vor einer Sitzbank.

Am zweiten Tag schmierten wir uns einen kleinen Berg Stullen und machten eine ausgiebige Wanderung durch die märkische Schweiz. Clara hatte einen tollen Weg rausgesucht, der uns durch den Wald führte. Wir kamen an Bäumen, Wiesen, Seen, Scluchten und sogar dem berühmten großen Stein vorbei.

Eigentlich wollten wir Abends Bratkartoffeln essen und standen darum um 16:37 Uhr vor dem einzigen[citation needed] Laden der Stadt – der aber leider bereits um 16:30 Uhr zugemacht hatte. (Der andere einzige Laden der Stadt, ein Edeka Nah und Gut, hatte bereits um 12 (!) geschlossen.) Also genossen wir die Bratkartoffeln stattdessen in einem Restaurant, man gönnt sich ja sonst nichts, Urlaub ist nur einmal im Jahr, etc etc.

Immerhin blieb uns so mehr Zeit, uns auf unser Ziel zu konzentrieren: Viel rumzuliegen und in Ruhe zu lesen. Am zweiten Tag kamen wir sogar auf die Idee, den Schlafsofa-Teil des (etwas kleinen) Sofas auszuklappen. Da wir dadurch endlich genug Platz hatten, gemütlich nebeneinanderzuliegen, standen wir erstmal drei Stunden lang nicht wieder auf. Ich las The Diary of a Bookseller, Clara las Rachel’s Holiday, es war wunderbar.

Am nächsten Tag mussten wir schon sehr früh (10 Uhr! Mitten in der Nacht!) auschecken. Wir verabschiedeten uns vom See, setzten uns ins Lokal „Lokal“ und ließen das lange Wochenende bei Kaffee, Rührei, und Orangensaft ausklingen. Ja, sogar Orangensaft! Man gönnt sich ja sonst nichts, etc etc.

Ich war jedenfalls sehr froh, mal den berühmten Alltag™ hinter mir zu lassen und mich auf eine ganz andere Couch zu legen, als ich es sonst zuhause machen kann. Sie war zwar nicht bequemer, aber immerhin war sie anders. Und das ist ja manchmal schon die Hauptsache.

JSON direkt aus Postgres auslesen

Neulich musste ich einige Daten aus einer Postgres-Datenbank sammeln, um mit ihnen zu arbeiten. Ich brauchte eine Liste von den IDs von allen Elementen in einer Tabelle, und ihren zugehörigen Namen. Mit diesen Daten wollte ich dann von Puppeteer ein PDF für jede ID erstellen lassen, und die Dateien mit dem Namen versehen.

Als Ausgangspunkt hätte ich also gerne ein JSON gehabt, damit ich es direkt in mein Node.js Script werfen kann, aber ich hatte keine Lust, mir für das einmalige Auslesen der IDs und Namen extra einen Datenbankzugriff mit dem pg Package oder so zu bauen. Hm! Was tun?

Glücklicherweise konnte ich dann herausfinden, dass Postgres eine eingebaute Funktion hat, die genau das macht: json_object_agg!

Angenommen, wir haben diese Tabelle:

id name username
1 Daniel danjel
2 Clara wundertaeter

Dann können wir die folgende Abfrage machen (ich mache meine Abfragen meistens in Postico), und Postgres aggregiert das direkt in ein JSON Object!

SELECT json_object_agg(
  "user".id,
  "user".username
) FROM "user";

Das Ergebnis sieht dann so aus:

{
  "1": "danjel",
  "2": "wundertaeter"
}

Mit psql geht das sogar direkt im Terminal:

psql --tuples-only -d lesetagebuch_dev \
  -c "SELECT
  json_object_agg(\"user\".id, \"user\".username)
  FROM \"user\";" | jq

Durch das --tuples-only werden Header und Footer von psql übersprungen, so dass das Ergebnis direkt in jq gepiped oder mit > data.json in eine Datei gespeichert werden kann.

Die Suche nach dieser Funktion hat vermutlich etwas länger gedauert, als eine CSV aus Postico zu exportieren, aber falls ich so etwas ähnliches irgendwann noch mal machen muss, geht es dafür viel schneller, und macht mehr Spaß. (Und damit ich es nicht vergesse, schreibe ich es auf!)

Analogfotos, April und Mai 2021

Wie unglaublich ist es eigentlich, dass ich im Jahr 2021 noch zu dem Rossmann direkt vor meinem Haus gehen kann, und dort nicht nur drei Rollen Analogfilm kaufen, sondern auch nachträglich die darauf entstandenen Fotos entwickeln lassen kann? (Etwas Schade ist es aber, dass man die Fotos zwar auch direkt digitalisieren lassen kann, die Scans aber absolut winzig sind.)

Hier sind sie jedenfalls, Analogfotos von April und Mai, unbearbeitet und Hashtag ungefiltert, straight outta Rossmann Foto Compact Disc.

Ältere Artikel →