dogfood

Category: WebDev (page 1 of 2)

Was war. Mitte August 2023.

Es ist eine merkwürdige Zeit. Ich bin im permanenten Arbeitsmodus. Die Projekte A und B arbeiten mit sogenannten „Sprints“, dreiwöchigen Arbeitspaketen. Beim Projekt B, das derzeit 90% meiner Arbeitszeit in Anspruch nimmt, wird auf ein neues Designsystem umgeschwenkt. Beim vorletzten Sprint habe ich alle Farben umgestellt, beim letzten Sprint alle Buttons und Farb- und Bildflächen und im aktuellen Sprint alle Icons weg von Icons-Font zu SVG-Dateien. Und das alles nach Möglichkeit ohne eine allzu große Zahl an Fehlern auf einer Website mit ca. 10.000 Seiten zu erzeugen.

Diese Designsystem-Themen sind im Umfang so, dass sie 1.) nur schwer in diese 3-Wochen-Sprints reinpassen, 2.) sich schwer im Umfang abschätzen lassen, weil das neue Designsystem strukturell anders arbeitet und man daher nicht einfach z.B. Farben stumpf austauschen kann und 3.) es ein horizontales Thema ist, an dem daher nur begrenzt mehrere Personen gleichzeitig arbeiten können, ohne sich ins Gehege zu kommen.

Übermorgen muss ich das Thema „Icons“ soweit abschließen, dass es für die Kollegen freigegeben werden kann, so dass sie die parallel neu entwickelten Module anpassen können und ab Ende der Woche die Testabteilung beginnen kann.

Ich bin im Tunnel. Dies ist das zweite Wochenende in Folge, dass vor allem dazu dient, die Balance zu finden, zwischen Auftanken und weiter arbeiten. Gestern zum Beispiel den Tag anfangs verdödelt um dann ab dem späten Nachmittag noch drei Stunden für die Arbeit zu finden. Heute langsam in den Tag reinkommen, um noch ein paar weitere Stunden Arbeit reinzubekommen. Heute geht es darum, mich durch das ganze Projekt, inklusive Backend, zu fräsen und mit den Listen der 88 alten und 170 neuen Icons abzugleichen und erstmals die automatisierten Screenshot-Tests drüber laufen zu lassen.

Anfang letzter Woche war ich ziemlich down. Vorgestern fing ich aber erstmals an, Land zu sehen. Ich bin derzeit im Tunnel und komme hoffentlich Mitte/Ende der Woche da wieder raus.

Ich konnte meinen ältesten (längsten?) Kunden endlich davon überzeugen, das erste Mal seit 20 Jahren(!) das Markup seiner Website von mir überarbeiten zu lassen.

… und ich habe bei der Validierung erfahren, dass das border-Attribut an Bildern inzwischen deprecated ist.

Ältere Menschen unter uns, wissen noch, was früher passierte, wenn man Border an verlinkten Bildern nicht auf null setzte… Sooooo alt bin ich.

Am Wochenende im inzwischen dritten Anlauf gescheitert, „Full Site Editing“, „Block Themes“ und „Gutenberg“ von WordPress zu verstehen.

Die Dokus sind IMHO unzureichend. Der Genickbruch ist die fehlende „separation of concerns“. Was ist für was verantwortlich? Was sind Daten die über das Template ausgespielt werden, was sind Daten aus dem Konfigurations-JSON und was wird über den Block-Editor in die Datenbank abgespeichert. Es gibt keine klare Trennung und ich habe das Gefühl, dass es mehrere Wege gibt um Dinge zu erreichen. Die fehlende, klare Trennung führt aber bei der Entwicklung zu Seiteneffekten.

Ich habe keine Debug-Möglichkeiten gefunden, um dem auf die Spur zu kommen. Bestimmte Einstellungsmöglichkeiten habe ich nur irgendwo tief nur über den Block-Editor gefunden (beispielsweise die IDs der zusammengebauten Menüs) und werden von der Entwicklungsumgebung gegenüber PROD abweichen.

Am Sonntag habe ich dann die Reißleine gezogen und im Projekt angefangen auf Processwire umzuschwenken. Dessen flexiblere Redaktionsoberfläche eignet sich für das Projekt besser, als das Block-Editor-lose, normale WordPress.

Ich bin in letzter Zeit wieder stärker unrund gelaufen. Es spielten verschiedene Faktoren mit rein, die letztendlich zu einem Zustand des Dauer-Gepestet-Seins führten. In der vergangenen Woche habe ich deswegen an allen Strippen gezogen, um mich abends vom Rechner wegzutreiben und die Birne durchzulüften – auch weil das Wetter auch endlich wieder brauchbar war. Nichts gegen Radfahren im Regen, aber ein Kino- oder Ausstellungsbesuch ist halt nicht ganz so geil, wenn du eine Fahrradtasche voller triefend nasser Klamotten mitschleppen musst.

Things I worked on.

Im „Projekt A“ gab es die Entscheidung das weiteres Aussetzen der Frontend-Entwicklungsarbeit aufgrund fehlender Zuarbeiten nicht weiter hinzunehmen. Die Arbeiten haben wieder begonnen.

Im „Projekt B“ habe ich einen Sprint ohne reguläres Ticket und es trotzdem geschafft, jede Woche in den hohen 30er-Stundenzahlen zu kommen, dank eines extrem hohen Anteils an Telkos, Stichwort: Onboarding neuer Mitarbeitenden, Evaluierung von Anforderungen durch neue Drittanbieter und viel „Projektsteuerung“.

Am späten Freitagnachmittag gab es dann noch einen „Überfall“ eines Bekannten. Da sollen für eine Website neue Teilbereiche entstehen. Dabei handelt es sich um eine Nutzeroberfläche für eine Bilddatenbank. Durch ein Kommunikations-Fuck-Up hat der Designer zwar ein Layout geliefert, aber kein pfannenfertiges HTML/CSS etc…-Gedöns … jenes Gedöns, dass am Montag dem Bilddatenbank-Menschen übern Zaun geworfen werden müsste.

Ich habe es am bis Samstagvormittag fertig bekommen. Es war, aus Legacy-Gründen, ein Abstieg in längst vergangene Katakomben der Web-Entwicklung: Bootstrap, jQuery yaddayadda.

Das Basteln von formularlastigen Seiten mit Bootstrap ist kein Spaß. Bootstrap haut häßlich viele unnötige Wrapper und Utility-CSS-Klassen rein. Ich habe mich in meinen Aversionen gegen Utility-CSS (Tailwind, I’m looking at you) bestätigt gefühlt.

Things I did.

Montag: am späten Nachmittag zum Doc in die Hoheluft gefahren.

Danach bin ich die Hoheluftchaussee hoch geschlendert. Ich habe 23 Jahre lang in drei Wohnungen quasi einen Steinwurf entfernt gewohnt und später noch einmal ein halbes Jahr in einer Agentur dort gearbeitet. Ich war über die Gentrifizierung der Hoheluftchaussee erstaunt. Welche Läden es dort nicht mehr gibt, welche dort neu reingekommen sind und wie viele Liefer- und Lebensmittelbringdienste inzwischen abends unterwegs sind.

Danach für sogenannte „Indian Street Kitchen“ ins SVAAdish gefahren. Man macht dort auf authentisches, indisches Essen. Aber es fühlt sich nach Systemrestauration an, die vor allem auf hohen Durchsatz optimiert ist – bei einem Preisniveau, das vergleichbar mit einem klassischen indischen Restaurant ist. Der Hauptraum ist groß und es waren zirka 6 x 5 quadratische Tische aufgestellt. An den Rändern gab es zusätzlich Wandtische und Lounge-Ecken.

Die Vegetable Pakora schienen wie Kugeln aus einem Gemüse-Mix zu sein, die frittiert wurden. Das in den Kugeln verarbeitete Gemüse war nicht mehr identifizierbar – zumindest so lange man nicht auf einen Ingwerstreifen biss. Als Dip gab es Tamarinde Chutney, was ich ketzerisch & ahnungslos als „fruchtige Bratensosse“ beschreiben würde.

Danach nahm ich Chicken Jalfrezi. Das Curry war zwar nicht tomatenlos, aber weiter von cremigen Tomaten weg, als ich es erwartet hatte. Die Hähnchenstücke machten mir nicht den Eindruck, als ob sie mariniert gewesen wären.

Unterm Strich: für diesen Preis darf es gerne restaurantiger und weniger Massenabfertigung sein.

Danach brav mein Leucht-Shirt übergezogen und durch Eimsbüttel, das Niendorfer Gehege und entlang des Flughafens 15,9km mit dem Rad nach Hause gefahren.


Am Dienstag aufgrund eines kolossalen Terminkalender-Fuck-Ups meinerseits, mittags anderthalb Stunden zu früh zu einem Termin in Altona aufgeschlagen und die Zeit mit dem Schlendern durch Ottensen tot geschlagen – und gestaunt über die kurze Halbwertzeit etlicher Läden.

Dann war der Termin und danach durch Altona, Stellingen, Eimsbüttel, das Niendorfer Gehege und entlang des Flughafens 17,6km mit dem Rad nach Hause gefahren.

Am Abend ging es ins Taj Mahal in Langenhorn. Dort nahm ich die gleiche Kombi wie am Montag: Vegetable Pakora und Chicken Jalfrezi. Es war qualitativ weitaus besser und sogar noch einen Hauch günstiger als im SVAAdish.

Die Vegetable Pakora waren feiner frittiert und das Gemüse auch identifizierbar und unterscheidbar. Das Chicken Jalfrezi hatte ein Curry, dass nicht nur dem Namen nach, Tomaten als Basis hatte. Die Hühnchenstücke waren mariniert.

Der einzige Haken am Taj Mahal: man muss Zeit mitbringen. Eine Person in der Küche und eine Person in der Bedienung – macht zwei Stunden.


Am Mittwoch war der vorerst letzte Tag des Films Die Frau im Nebel in den Zeise Kinos in Altona. Also nach Feierabend erst einmal zum Essen ins Salibaba in Eimsbüttel gefahren. Das Salibaba wäre meine Definition von Street Kitchen: gemütlich, aber gleichzeitig unterhalb der Fallhöhe eines veritablen Restaurants, aber oberhalb eines Imbisses.

Der Falafel-Teller war gut. Die Granatapfel-Vinaigrette war auch gut, hat aber viel Säure, auf die meine Zunge nach ca. 80% der Salibaba-Salatmenge, allergisch reagiert.

So gut das Essen war: es ist eine Schande, dass um die Zeit (19 Uhr) sich niemand sonst im Salibaba aufhielt. Stattdessen kamen im 3-Minuten-Rhythmus Lieferbringdienste vorbei, um Essen abzuholen. Das empfand ich in dieser Menge als ziemlich bitter. Kein Wunder, dass Dark Kitchens zunehmen.

„Die Frau im Nebel“ wurde im kleinen Zeise-Kino gezeigt. Filmstart 20h30. Wir waren sieben Personen im Saal. Der Film endete kurz vor 23 Uhr. Danach brav mein Leucht-Shirt übergezogen und durch Altona, Stellingen, Eimsbüttel, das Niendorfer Gehege und entlang des Flughafens 17,2km mit dem Rad nach Hause gefahren. Passend zum Film „Die Frau im Nebel“: im dichter werdenden Nebel.

War es die Kälte in Kombination mit der Feuchtigkeit? Die Fahrt hat mich fertig gemacht. Zuhause musste ich mich auch erst noch runter fahren – es wurde also eine kurze Nacht und den Donnerstag war ich recht alle – auch bedingt durch eine anspruchsvolle Telko, von der ich erst eine halbe Stunde vor Beginn erfuhr.


Und so kamen zwischen Montag und Freitag 104 Kilometer auf dem Rad zusammen.


Things I read.

Die

Ich habe angefangen, den über 650 Seiten starken Hardcover-Band zu lesen, der die zwanzig „Die“-Hefte von Kieron Gillen/Stephanie Hans zusammen bündelt.

Erste Eindrücke: ich lese es sehr gerne, weil sich im Laufe der Hefte ein interessantes, ambivalentes Beziehungs-Geflecht zwischen den Protagonisten offenbart. Ich bin fasziniert, vom Gewicht, das auf den Schultern der Zeichnerin Stephanie Hans lastet, um die abstrakten Kulissen auf Papier zu bringen und wie sie damit farblich umgeht.

Derzeit nimmt die Bewertung Kurs auf vier oder fünf Sterne.


Things I watched.

Die Frau im Nebel

… ist ein ästhetisch sehr ansprechender Film vom „Oldboy“-Regisseur Park Chan-wook. Er kommt hier ohne jene größeren physische Grausamkeiten oder andere Ekeligkeiten aus, die ich wg „Oldboy“ befürchtet hatte.

Es ist die Geschichte eines Kommissars, der in einer Fernbeziehung lebt, und der Ehefrau eines Mordopfers. Die Witwe, ein chinesischer Flüchtling, wird zwar anfänglich verdächtigt, kann aber ein Alibi vorweisen. Der Kommissar observiert die Frau, fängt aber im Laufe der Beschattung an, sich in die Frau zu verlieben.

Aufgrund des Alibis werden die Ermittlungen beendet und der Kommissar trifft sich mit der Frau. Durch einen Zufall kommt der Kommissar darauf, dass das Alibi der Witwe falsch war und sie letztendlich den Mord begangen hat – zu spät: alle Beweismittel sind vernichtet und seine Gefühle für die Frau sind zu groß. Er ist zerstört, wird depressiv und lässt sich in die Stadt seiner Fernbeziehung versetzen.

Ein Jahr später taucht die Frau in dieser Stadt auf. Mit einem neuen Ehemann. Und jener Ehemann wird einige Tage später tot im Swimmingpool aufgefunden…

Der Film „funktioniert“ auf zwei Ebenen. Ästhetisch ist der Film fantastisch fotografiert und es ist sehenswert, wie Park Chan-wook die Szenen visuell miteinander verwebt.

Die zweite Ebene wird durch die Schauspielerin Tang Wei geprägt, die Schauspielerin der Ehefrau/Witwe, die es schafft, das (Männer?)Herz zu erweichen und sehr empathisch zu wirken, aber gleichzeitig auch über zwei Stunden die Ambivalenz aufrecht hält: Hat sie nun? Ist sie nun? Wird sie nun?

Ich habe den Film und seine Perma-Melancholie sehr gemocht – aber gleichzeitig ist es wie ein Duft gewesen, der am nächsten Morgen wieder verflogen war. Ich habe den Film so sehr gemocht, dass ich ihm vier von fünf Sterne geben würde. Aber gleichzeitig hat der Film keine tiefen Spuren hinterlassen, so dass es eigentlich nur drei von fünf Sternen wären.


Ant-Man

Ant-Man“ ist so ein Film, der nicht wirklich schlecht gemacht ist, aber vermutlich exakt dem Feindbild entspricht, das Leute vor ihren Augen haben, wenn sie verächtlich von den ganzen Marvel-Filmen sprechen.

Der Film ist einer weitere Iteration des hinlänglich bekannten Marvel-Filme-Kochrezeptes. Eine Person wird unfreiwillig ein Superheld (hier: Einbrecher entdeckt im Tresor einen Superhelden-Anzug). Person ist ungläubig, widerwillig und bis zum Anschlag selbstironisch, besitzt aber einen guten Kern und wird daher zum Retter.

Dazu fügt man noch einige Mentoren und Buddys und machtbesessene Bösewichter in den Brei. Fertig ist der Film.

Kannste halt gucken, während du den Haushalt machst, weil der Film völlig überraschungs- und nuancenfrei ist. Als Anbieter wie Marvel musst du dich aber auch fragen, inwieweit du dein Angebot mit solcher Dutzendware verwässerst?

Zwei von fünf Sternen.


Thor

Vier Jahre älter als „Ant-Man“ ist der erste Marvel-Film zu Thor. Im Vergleich zu „Ant-Man“ nutzt er die Chancen seiner Vorlage, um öfters aus dem Marvel-Einheitsbrei auszubrechen. Selbst wenn nicht alles gelungen ist, sorgten alleine die „Ausbruchsversuche“ dafür, dass man öfters hinguckte.

Da ein Teil der Handlung auf Ebene der nordischen Götter respektive Asgard, spielte, konnten die gängigen Erzählmuster verlassen werden. Optisch bot Asgard ein aufwändiges, neues Set-Design, das teilweise speierbrechend kitschig war, teilweise schon in Game of Thrones durchgespielt wurde. Aber immerhin konnte man sich angucken, wie denn die Regenbogenbrücke Bifröst aussieht (wie in einer funky 70er-Jahre Disco… nun ja).

Erzählerisch durchaus spannend waren die Familienkonflikte der nordischen Götter. Insbesondere Loki/Tom Hiddleston brachte da Subtilität rein.

Das Geschehen auf der Erde wirkte dagegen vergleichsweise banal und fiel ab.

Was mir inhaltlich aufstösst, ist die krasse Abweichung von der originären Herkunftsgeschichte Thors, Stichwort gehbehinderter Arzt Dr. Don Blake. Aber da bin ich vielleicht zu sehr Traditionalist.

Drei von fünf Sternen.


Coming up

Es ist die Sprint-Übergangswoche in „Projekt B“, weswegen einige längere Telkos anfallen und andere, kürzere Telkos entfallen. Morgen werde ich für den Sprintwechsel Ticketpflege machen.

Ich muss in einem Pro-Bono-Projekt vorwärts kommen.

Ich habe mir grob einen Ausstellungsbesuch ausgeguckt und versuche Urlaubsplanungen für März/April aufzugleisen.

Auf Smashing Magazine ist ein laaaaanger Artikel zum Design (oder besser: Konzeption) von Komponenten auf Websites erschienen:

„The Key To Good Component Design Is Selfishness“, Daniel Yuschick, 20.1.2023

Um es vorweg zunehmen: ich schließe mich Yuschicks Schlussfolgerung nicht an und bin da ganz bei einem Leserkommentar unter dem Artikel. Aber das Durchdeklinieren der Probleme und die daraus resultierenden Folgerungen sind anregendes Denkfutter.

Yuschick stellt prototypisch dar, was in jedem größeren Projekt passiert und was in jedem Projekt ein PITA ist: das Aufblähen von Komponenten. Dazu nimmt Yuschick zuerst einen Button (später ein Modal) in einer Grundkonfiguration, als Primary und Secondary Button mit konfigurierbaren Text, und bastelt daraus eine React-Komponente inkl. Markup.

Dann kommt die erste Eskalation: das Projekt will gerne optional ein Icon rechts vom Text haben. Okay, Komponente umgebaut.

  • Nächste Iteration: es soll ein Tertiary Button eingeführt werden und Icons sollen optional links vom Text erscheinen können.
  • Dritte Iteration: Einbau von Icons mit einer Farbe die von der Textfarbe abweicht.
  • Vierte Iteration: Icons-only-Button, also Buttons wo der Text optional ist und die Icon-Position deswegen nicht „links“ oder „rechts“ vom Text sein kann.

Jeder Entwickler kennt dies: jede Iteration kann die grundsätzliche Ausgangssituation derart verändern, dass es nicht mehr über ein Anflanschen zusätzlicher Anforderungen getan ist, sondern ein Komplettumbau eigentlich angemessen wäre. Ein Komplettumbau bringt i.d.R. auch eine Veränderung der Konfiguration mit sich und jede Konfiguration von bereits verbauten Buttons, muss angepasst werden.

Verschiebung of Concerns

Yuschick leitet daraus die Frage nach der „Verantwortung“ einer Komponente ab.

What is the responsibility of an HTML button element exactly? Narrowing down this answer will shine light onto the issues facing the previous Button component.

The responsibilities of the native HTML button element go no further than:

  • Display, without opinion, whatever content is passed into it.
  • Handle native functionality and attributes such as onClick and disabled.

[…]

The onus of formatting any content within the button isn’t the responsibility of the button but of the content itself. The button shouldn’t care. The button should not share the responsibility for its content.

Yuschicks Beobachtung mündet in Fatalismus…

When the component is responsible for the content it displays, it will break down because the content will forever and always change.

… und der Schlussfolgerung: lass Content Content sein und kümmere dich nicht um ihn. In der Verantwortung einer Komponente läge nur das Aussehen (huh?), die Funktionalität (Klicks etc…) und Zustand (Position, Sichtbarkeit).

Würde Yuschicks Artikel an dieser Stelle aufhören, würde ich die Conclusio in Bausch & Bogen verdammen. Aber Yuschick geht noch einen Schritt weiter, mit dem er sein eben verkündetes Dogma dezent aufbricht. Er fängt an, über Komposition, also Zusammenbau von Komponenten zu schreiben. Ein Modal besteht z.B. nicht einfach aus „Inhalt“, sondern Subkomponenten für Header, Main und Footer. Smells like Atomic Design?

Yuschick fängt hier an argumentativ zu wackeln. Während er im Kontext der Komposition von „child components“ spricht, stellt er später die Bestandteile von Modals als „little more than a semantic container for any content“ vor und redet sie wieder klein. Die Frage ob Eingabefelder im Main-Bereich des Modals jetzt „Content“ oder Subkomponenten sind, betrachtet er leider nicht.

Verschiebung of Verantwortung

Der Leserkommentar von Rich arbeitet sich an der nicht möglichen Kapselung von Content entlang der von Yuschick vorgeschlagenen Grenze ab.

Der Schlüssel liegt in Richs Formulierung von „By removing responsibility for content” – die Verantwortung wird aus dem eigenen Verantwortungsbereich weg geschoben … aber wohin sie geschoben wird, wird von Yuschick nicht erwähnt.

Die Grenze von Yuschick bedeutet letztendlich, dass Content HTML-Markup wird (was jetzt schon zB bei Richtext der Fall ist). Und das kann eine sehr problematische Entscheidung sein.

Im Kontext von größeren Websites mit Content Management Systemen ist davon auszugehen, dass Inhalte von Redakteuren gepflegt werden. Diese Redakteure besitzen über ein sehr heterogenes Wissen von HTML. Redaktionsleitfaden mit den Beschreibungen für die Einstellungen von mehreren Dutzend unterschiedlichen Modulen werden eh schnell sehr umfangreich. Darin auch noch die Usance zum Pflegen von HTML-Markup unterzubringen, ist in den Projekten in denen ich drin bin, nicht vermittelbar. Kurz gesagt: Redakteure sind i.d.R. keine HTML-Kenner.

In Yuschicks Definition ist Content nicht mehr Content, sondern ein Brei aus Code und Content – Text mit HTML-Code angereichert, der zufällig auch noch die richtige Klasse am SPAN-Element hat, um im Button das richtige Icon anzuzeigen.

Yuschicks Folgerung löst kein Problem, sondern verschiebt das Problem in eine sehr, sehr üblen Ecke: weg vom Code, Dateien und Templates, hin zu Content, der in Datenbanken versenkt ist. Der ist damit etliche Ecken vom Entwickler weiter weg und wird bei der nächsten Content-Migration einen Haufen Ärger machen.

Fazit

Yuschicks Artikel ist der Tritt in den Hintern, sich noch einmal zu hinterfragen, wie es mit „Separation of Concerns“ im Bereich der Komponenten aussieht. Wieviel Verantwortung hat die Komponente, wieviel Verantwortung haben Subkomponenten und wieviel Verantwortung hat der Inhalt.

Der Verantwortungsbereich des Inhaltes lässt sich daraus ableiten, wer den Inhalt pflegt. In größeren Projekten werden es nicht Entwickler:innen, sondern Redakteure sein und dass reduziert automatisch den Verantwortungsbereich von „Inhalt“.

Was in den Diskussionen über Komponenten IMHO überraschend häufig ausgeblendet wird, sind Hierarchien. Auch in Designsystemen oder Komponentenbaukästen gibt es häufig nur eine einzige Ebene von Komponenten, die einen Button auf Augenhöhe mit einem Modal behandelt.

Ich halte es für eine Stärke von Atomic Design über „Atome“, „Moleküle“ und „Organismen“ den Komponenten eine Hierarchie mitzugeben. Damit ergibt sich auch eine Beschreibung der Verantwortungsbereiche z.B. einer Modal-Komponente und einer Button-Komponente, die in einem Modal steckt. Ein Button ist ein Button ist ein Button ist ein Button. Und für alles was im Modal bzgl. des Buttons darüber hinaus geht, ist das Modal zuständig (abweichende Positionierung etc…). Entweder bin ich an diesem Punkt ein störrischer alter Esel, oder es hat seine Grund, warum die Projekte damit gut laufen.

Im Blog habe ich in den letzten Jahren einige OPs erwähnt. Die OPs waren Teil einer grundsätzlichen Geschichte die ich fixen wollte (und wie sich später herausstellte: musste). Das habe ich im Sommer 2020 losgetreten und in der abgelaufenen Woche begann die letzte Phase, mit einem Abschluss voraussichtlich im Herbst des Jahres. Ich wurde letzte Woche zunehmend nervös, aber die letzte Phase ist besser gelaufen, als ich es erwartet hatte – auch wenn noch viel Arbeit bevorsteht. Als Nachklapp der letzten OP wird aufgrund einer kleinen Komplikation auch noch mal eine kleine Extraschleife gedreht werden müssen.

Things I did.

Nach dem Dauerfrost und Dauerregen, den es seit gefühlt letzten November gab, betrat ich unter der Woche erstmals wieder den Garten. In der ersten Runde musste ich erst mal den ganzen Crap aufsammeln, der von der Straße rein geweht wurde, inklusive Böllerüberreste von Silvester.

Alles sah ätzend aus. Der Rasen war entweder vermoost oder durch die (zu vielen) Pflanztöpfe vom letzten Jahr übersät mit kahlen Stellen. Einmal mehr, habe ich keinen Plan zur Strukturierung des Gartens und Vordergarten. Bah.

Erst einmal die Hasel und den Feldahorn gestutzt und das Schnittgut auf den Totholzhaufen geschmissen.

Things I worked on.

Im Projekt A ist die Frontend-Entwicklungsarbeit größtenteils zum Erliegen gekommen. Das Designsystem wurde bei der Umstellung von Sketch auf Figma gegen die Wand gefahren (Pro-Tipp: man stellt kein Layoutraster ohne Rücksprache um). Seit drei Wochen sind Rettungsversuche im Gang.

Projekt B ist mit der Aufteilung der Entwicklungsarbeit in zwei Teilteams beschäftigt. Dabei ist das Wahren der teamübergreifenden Kohärenz ein ziemlicher Schmerzpunkt. An etlichen Punkten prallt hier unterschiedliches Verständnis aufeinander – von Kundenseite über Teamleiter bis runter zu den Entwicklern.

Nicht direkt mit der Projektarbeit, hat aber ein derzeit großes Thema rund um die Webentwicklung zu tun: die aufkeimende „Anti-Framework“-Diskussion, die sich zum zehnjährigen Jubiläum von React entzündet. Ich mache keinen Hehl daraus, dass ich kein großer Freund von React und seinem großen Zusammenpanschen von Markup, Styling und Javascript oder seinem wechselnden Scope (von „eigentlich machen wir nur DOM-Diffs“ über „Wir können alles“ bis hin zu „Server-Side-Rendering wär’ eigentlich scho’ besser“) bin.

Oxford Harrison hat in einem Pamphlet eine Haltung veröffentlicht, mit der ich mich identifizieren kann: Rethinking the Modern Web.

Da wo es „projekt-relevant“ wird, ist für mich die Frage, ob sich hier ein Generationskonflikt wiederspiegelt, zwischen älteren Entwickler:innen („moi“), die mit Web Standards, Separation of Concerns, Kompatibilität und Einfachheit groß geworden sind, und den „Kiddos“, die Frameworks bereits mit der Muttermilch aufgesogen haben und für die Natives keine Qualität ist.

Mir fällt am Verhalten der „Kiddos“ Dinge auf, die mich ratlos hinterlassen. Eine stete Unruhe, fast so, als wäre die Beschäftigung mit nur einem Problem über längerer Zeit so langweilig, dass man sich mit dem ersten „jo, läuft“ zufrieden stellt und zum nächsten Problem rennt – ungeachtet, ob die erste Lösung qualitativ zufriedenstellend ist.

Es scheint, als würde man jede Problemlösung auf den Zustand „gelöst“ und „nicht gelöst“ herunter brechen, ungeachtet der weiteren Bewertungsvektoren, wie: Resilienz, Einfachheit, Wartbarkeit, Performanz, Integration im Gesamtprojekt.

Rennen wir in eine Generation rein, die eine Aufmerksamkeits-/Konzentrationsspanne von einem TikTok hat?

Dies macht mir nicht nur grundsätzlich Sorgen, sondern auch der Umstand, dass viele der „Kiddos“ sich an diesen Punkten nicht zu bewegen scheinen – und damit bei mir die Frage hinterlassen: was mache ich falsch, was muss ich ändern? I don’t know.

Jo, alles furchtbar pauschalisierend, I know, I know…

Things I read.

Die Trisolaris-Trilogie durchgelesen (okay, bis auf die letzten 50 Seiten) und es war unterm Strich enttäuschend. Siehe meine Rezension.

Was am Ende von den 1.500 Seiten für mich übrig bleibt, ist das Konzept des „Dunklen Walds“. Und ich bin eigentlich erst nach Schreibens meiner Rezension darauf gekommen, wie sehr dieses Konzept eigentlich den ersten Runden der Spiele aus der „Civilization“-Reihe entspricht (und perfekt-getimet kommt Stream daher und will mir Civ VI für sechs Euro hinterher schmeißen).

Ich frage mich, was ich in der Trilogie nicht gesehen habe, dass so ein massiver Hype darum entstanden ist. Was aber nicht als Referenz dienen kann, sind die Verfilmungen, die jetzt auf den Markt kommen. Die Trailer kondensieren den Stoff so immens, dass daraus wirklich etwas Ansprechendes wird. Das ist in der Buchvorlage einfach nicht gegeben gewesen. Was nicht ausschließt, dass die Bücher einen interessanten Rohstoff für eine Verfilmung hergeben – ähnlich wie Asimovs Foundation-Serie.

Things I watched.

Kommissar Wallander – Die Kenneth Branagh-Variante. Ich habe die englische Umsetzung bislang nicht angefasst, weil für mich der Wallander auf ewig mit Rolf Lassgård verbunden ist. Kenneth Branagh klingt dagegen für mich nach Star und einer der mit seinem Image die Figur überstrahlt…

Hoooh boy, wurde ich eines Besseren belehrt. Eine Folge hat gereicht, damit ich nicht mehr den Branagh in Wallander sehe, sondern den Wallander in Branagh. Lassgård mag ich zwar immer noch mehr, aber ich verneige mich wie Branagh mit dieser Rolle umgeht. („Kommissar Wallander“ – derzeit als ARD-Produktion bei Amazon Prime)

The Late Late Night Show with Craig Ferguson – Warum auch immer, ich habe auf YouTube mal wieder Craig Ferguson angesteuert und bin nach zwei Folgen wieder süchtig geworden.

Ferguson ist der Anarchist unter den Late Night Shows gewesen. Es spricht für Ferguson, dass es schwer fällt, zu sagen, was gescriptet und was Impro war (Beispiel).

Things I played.

Mitte der Woche wurde die (der?) Early Access von „The Last Starship“ freigeschaltet, dem neuesten Spiel von „Introversion Software“, den Machern u.a. von„Prison Architect“.

Die grundsätzliche Spielidee, das Aufbauen eines Raumschiffes, ist klar umrissen. Nicht ganz so klar, ist der „Flavour“, mit dem man sich von „Star Haven“ oder „Stardeus“ absetzen will. Die Rede ist von Spurenelementen von „FTL“, „Elite“ und „Factorio“.

Diese Spurenelemente lassen sich erkennen. Aber ich bin enttäuscht über den aktuellen Stand – gemessen am Status, der im letzten Juni den Medien gezeigt wurde. Es hat sich nicht viel getan. Es gibt recht wenig Erklärungen und Hilfe. Auch die Steam-Foren sind nicht hilfreich. Stand jetzt, sind 20,– Euro echt nur für Fanatiker lohnenwert.

Bis zum nächsten größeren Update werde ich die Finger davon lassen.

Moinsen.

Rückblickend betrachtet war es entweder eine unspektakuläre Woche oder ich muss mir Sorgen um mein Gedächtnis machen.

Mitte der Woche hatte ich nach der OP von Anfang November, eine Nachuntersuchung und Fäden-Ziehen. Die Zufriedenheit des Docs fand leider keine Äquivalenz in der Schmerzlosigkeit des Fäden-Ziehens, aber am nächsten Morgen war wieder alles gut. Langsam wird die Übergabe an den anderen Doc vorbereitet mit einem zweiten Kennenlern-Besuch in zwei Wochen.

Mein Kopf-Thema (Abstand gewinnen, Grübeleien beenden, Entwickeln von worst case-Szenarien abwürgen) bleibt weiterhin auf einen derart positiven Pfad, dass ich anfange misstrauisch zu werden. Und wenn ich nicht dieses Quantum Selbstzweifel hätte, wäre ich nicht mehr ich selbst.

Things I worked on.

Auch hier ging es mit den Themen der Vorwoche weiter. Stichwort „Designsysteme“ — recht kurzfristig erfuhren wir von einem „Entscheidermeeting“ für die 2023er-Themen. Da ich es für notwendig hielt, dem Kunden aus technischer Sicht etwas mehr Substanz und Details an die Hand zu geben, habe ich mir unter der Woche einen ganzen Abend um die Ohren gehauen. Es war mein größtes Problem, mich auf das Essentielle zu konzentrieren und keinen Roman abzuliefern. Positiver Nebeneffekt: durch die zusätzliche Recherche sind mir einige technische Zusammenhänge jetzt erst klar geworden.

Im Projekt „B“ ist auch der offizielle Startschuss für das „Muss ins letzte Deployment des Jahres rein“-Modul gefallen. Technisch schreitet die Umsetzung gut voran. In der kommenden Woche muss ich den Designer auf die letzten offenen Punkte der Specs festnageln, um zeitlich weiterhin gut im Rennen zu liegen.

Mit diesem Modul ist das Projekt „B“ jetzt auch endgültig auf Figma als Design-Spezifikation und -Übergabe umgeschwenkt.

Im Projekt „A“ gibt es noch Diskussionen über die 2023er-Themen, weil Themen, Budget und Ressourcen im Widerspruch stehen und die Stakeholder sich nicht handelseinig werden.


Unter der Woche konnte ich ein Zeitfenster von zwei Stunden nutzen, um mich in ein neues Thema einzulesen: Constructable Stylesheet Objects – diese sind nämlich im Oktober in die Safari Technology Preview aufgeschlagen. In Chrome und Firefox sind sie längst da. D.h. gegen Ende 2023 sollte hinreichend Verbreitung im Browsermarkt da sein, um einsetzbar zu sein.

Zumindest in der Theorie könnte das ein Game Changer für Web Components sein, weil es endlich wieder einen Pfad durch das ShadowDOM schlägt, um CSS von außerhalb der Web Components „wirken“ zu lassen. Aber für die genaueren Implikationen, muss ich die Zeit finden, in kleinen Nebenprojekten Web Components einzusetzen.

Things I did.

Mit Ausnahme des Badezimmers, habe ich im kompletten Haus meine (fassungslos häßlichen) Türen ausgehängt. Das ist unter energetischen Gesichtspunkten nicht ganz so clever. Um dem entgegenzuwirken, habe ich mir vorgenommen, Schlafzimmer und Arbeitszimmer mit Vorhängen auszustatten.

Unter der Woche bin ich im Anschluss an den Arztbesuch mit dem Rad entlang der Kollau 13 Kilometer zu IKEA hoch gefahren und habe mir zwei isolierende Gardinen plus Stangen etc… geholt. Ich habe zumindest im Schlafzimmer die Gardine mit einem Improvisorium vor die Tür gehängt. Und tatsächlich reduzierte sich das Abkühlen nachts und unter Tage, so dass ich nach drei Tagen zwei Grad mehr hatte (wozu auch die wärmeren Außentemperaturen beigetragen haben dürften). Entsprechend konnte ich die Heizungsthermostate nun runterpegeln.

Die finale Installation der Gardinenstange gestaltet sich aber schwieriger als erwartet. Den ersten Satz Schrauben & Dübel kann ich wegschmeißen, da ich aufgrund eines Stahlträgers keine vier Zentimeter rein komme. Jetzt muss ich mich auf der Suche nach 2-Zentimeter-Dübel machen.

Things I watched.

Die dritte Staffel von Taskmaster auf YouTube durchgeguckt.

Über Rezo hat nun auch mich 7 vs Wild: Panama erwischt. Die Abrufzahlen der Folgen sind awesome: 8,3 Mio, 11 Mio, 7,7 Mio, 8,3 Mio, 6,8 Mio, 5,9 Mio, 2,8 Mio (binnen 20 Stunden).

Herr Pahl, was machen Sie eigentlich beruflich?

Das ist tatsächlich eine bannig diffizile Frage, weil sie viele Antworten kennt, je nach Adressat und damit: je nach Differenzierung.

Beginner Level, zum Beispiel für meine verrentete Nachbarin oder nicht-technik-affine Verwandte:

Ich mach so Internet-Zeug. Websites und so

Medium Level, z.B. für Ärzte, bei denen man nicht sicher ist, ob es genuines Interesse oder die implizite Frage nach Liquidität und Einkommensverhältnissen ist.

Ich bin selbständig und arbeite innerhalb von Projektteams für Zeiträume von 3 bis 24 Monaten an größeren Websites. Dabei geht es um die Mitwirkung an Konzepten und Umsetzung von Designs für das sogenannte Frontend, also grob gesagt, das was der User im Browser sehen und bedienen kann.

Das reicht aber nicht für den Experten-Level, für potentielle Auftraggeber oder Projektmanager, aus. Mit inzwischen 20 Jahren Erfahrung auf dem Buckel, liegt mein Mehrwert oberhalb der bloßen Umsetzung von Frontend-Zeug.

Chris Coyier hat im Oktober in seinem Blogeintrag „The Widening Responsibility for Front-End Developers“ viele Fragen und Überlegungen aus seinem Projektalltag angerissen. Sie machen deutlich, wie komplex inzwischen der Weg von Konzept → Design → Umsetzung geworden ist. Das bildet auch meinen Projektalltag wieder.

Wenn Designs und Konzepte das erste Mal aufschlagen, fehlt es ihnen an „Praktikabilität“ und können daher nicht direkt in Code umgesetzt werden. Responsives Design (also anpassungsfähig an unterschiedliche Browser, Browserbreiten und Endgeräten) sind häufig ebenso nur Lippenbekenntnisse wie die Berücksichtigung von Barrierefreiheit-Anforderungen.

Designs werden häufig als komplette Seiten und nicht als wiederverwendbare Bausteine entwickelt. Es gibt auf Designseite häufig weder das Wissen noch die Werkzeuge für diesen „Komponenten-Gedanken“.

Und so besteht ein Teil des Jobs darin, schon vor dem Schreiben der ersten Zeile Code, auf Designs und Konzepte Einfluß zu nehmen. Zum Beispiel darauf zu drängen, dass Seiten systematisch und auf Bausteine-Basis aufgebaut werden. Es ist auch im Sinne des Kunden, wenn nicht jeder Seitentyp seiner Website von Grund auf, neu entwickelt werden muss (wir reden hier nicht über Portfolio-Websites, sondern Websites mit drei- bis fünfstelligen Seitenzahlen).

Ein Teil des Jobs ist, jedes vorgestellte Design auf die Umsetzungsfähigkeit abzuklopfen, bevor das Coding beginnt. Dazu gehört auch die gerne vernachlässigte Frage, wie sich die Komponente verhält, wenn es nicht die „ideale“ Menge an Content gibt. Was passiert bei einer langen Headline? Bei einer Copy, die nur aus einem Satz besteht? Wenn die Nutzungsrechte für das Bild abgelaufen sind?

Funktional erlebe ich es immer wieder, dass es in den Designs Probleme im Umgang zwischen Touch- und Non-Touchdevices gibt. Zum Beispiel wenn es Funktionalitäten gibt, die zwingend auf Hover per Maus angewiesen ist. Oder es wird fälschlicherweise angenommen, dass Browserbreiten mit der Unterscheidung zwischen Tisch- und Tabletgeräten einhergeht (nope, größere Tablets sind inzwischen breiter als schmale Laptops und bei Geräten wie MS Surface verwischt die Grenzziehung komplett).

An der Nahtstelle zwischen Design und Konzeption stehen auch Fragen der Umsetzung im Zusammenhang mit der verwendeten Software auf dem Server. Wenn es zwei ähnliche Komponenten gibt, ist es sinnvoll sie als zwei Komponenten getrennt anzulegen, oder handelt es sich um eine einzige Komponente mit zwei Ausprägungen? Was lässt sich mit der Serversoftware besser abbilden?

Vor der Umsetzung steht dann die Etablierung eines Workflows für die Umsetzung. Welche Werkzeuge werden genutzt, welche Rahmenbedingungen werden geschaffen, welche „Code-Regeln“ werden aufgestellt. SCSS? Semantische Klassen im HTML? Icons umsetzen als… Icon-Fonts, Inline-SVG oder SVG-Sprites?

Dazu gehört auch die Beratung mit dem Backend, wie sich z.B. die Kommunikation bei Serveranfragen durch den Browser gestaltet.


Projekte dieser Größenordnung haben mehrere Interessenten. Kommunikation ist ein Teil des Jobs: Interessenten wollen und müssen abgeholt werden. Es muss zwischen den unterschiedlichen Interessen vermittelt werden. Am Ende des Tages gibt es aber nur einen Interessenten, der die Rechnung zahlt. Die Kommunikation muss daher auch darauf ausgerichtet sein, dass seine Interessen gewahrt werden.


I apologize if I’ve made you feel a little anxious reading this. If you feel like you’re behind in understanding all this stuff, you aren’t alone.

In fact, I don’t think I’ve talked to a single developer who told me they felt entirely comfortable with the entire world of building websites. Everybody has weak spots or entire areas where they just don’t know the first dang thing. You not only can specialize, but specializing is a pretty good idea, and I think you will end up specializing to some degree whether you plan to or not.

Irgendwann in den Nuller Jahren, war ich mir nicht sicher, ob „Webdesigner“ ein Job mit Zukunft wäre. Agenturen gingen aggressiv auf den Markt um mit in Microsoft Word(!!) produzierten Websites Kunden zu ködern. Die Hamburger Arbeitsagentur hat damals massenweise arbeitslose Druckerei-Mitarbeiter in Webdesign-Fortbildungskurse gepackt. In meinen Alpträumen, sah ich irgendwelche Kinder von Firmenchefs am Rechner mit WYSIWYG-Editoren wie Frontpage herumspielen und mich aus dem Business schießen.

So ist es bislang nicht gekommen – weil mein Job mehr umfasst, als man es Laien in nur drei Sätzen erklären kann. Weil mein Job mehr als nur „Umsetzung“ ist und „Berater“ und „Konzepter“-Tätigkeiten beinhaltet. Weil der Job eben nicht nur aus „Nine to Five“ besteht, sondern aus dem Blick über den Tellerrand: was für relevante Technologien gibt es? Wird jQuery wirklich noch gebraucht? Was für Themen kommen in den nächsten Jahren?

Coyiers Blogeintrag macht schon durch die schiere Menge an Fragen deutlich, dass man auch dann genügend auf der Pfanne haben kann, wenn man kein sogenannter „Fullstack-Entwickler“ ist, der die komplette Bandbreite von Server bis Frontend/Browser abdeckt.

Coyiers Blogeintrag macht mir aber auch die Frage bewusst, wie man all diese Detailsfragen und Soft-Skills gegenüber potentiellen Auftraggeber anbringen kann, ohne dass man einen zehnseitigen Aufsatz schreibt. Sondern in eine Form bringt, die gleichberechtigt neben der tabellarischen Aufstellung der rein technischen Skills bestehen kann.

Was war. Auffe Arbeit.

Von dem einen „Big Ticket“ bin ich zum nächsten „Big Ticket“ gerutscht – T-Shirt-Size XXL, jeweils zwei bis drei Wochen am Stück. Das zweite Ticket war/ist befriedigender als das erste Ticket gewesen. Ersteres ist zum Testen eine völlige Blackbox, weil die Geolocation des Users und die Länderversion der Website die Schlüssel zum Feature bilden – und sich beides schlecht testen lassen.

Das zweite Ticket macht mich glücklicher, weil die Überarbeitung des betreffenden Features, dieses wirklich auf allen Ebenen wesentlich besser macht.


In den nächsten Tagen wird es Diskussionen geben, ob wir an einigen Stellen von serverseitigen zum clientseitigen Rendering wechseln – zumindest für einige Code-Schnippsel. Wir verwenden es bereits an einigen Stellen – aber mehr als Improvisorium, weil es an einigen Stellen für das Backend größere Umbauarbeiten erfordert hätte. Nun geht es um die Frage, ob wir es bewusst als Werkzeug aufnehmen und backendseitig eine entsprechende API anfangen.

Ich bin grundsätzlich kein großer Freund von clientseitigen Rendering. Dieser Tage erschien auf CSS-Tricks ein Artikel, der a bisserl auf meine Bedenken einzahlt: „radEventListener: a Tale of Client-side Framework Performance“. Es spiegelt nicht ganz unser Szenario ab, weil es um den Einsatz größerer Frontend-Frameworks wie React und Preact geht.

Aber der Schmerz ist ein ähnlicher: warum den Client etwas machen lassen, wofür der Server qua Ressourcen, besser ausgestattet ist? Warum ein zweites Repository für Partials verwalten? Da komm‘ ich schwer aus meiner Haut als Dogmatiker raus.


Immerhin keine 30+xº C mehr. Mein Arbeitszimmer und das Schlafzimmer sind im ersten Stock und ich habe knapp zehn Tage lang, den ersten Stock nie kühler als 28 Grad bekommen. Mein Endreihenhaus ist mit seiner fensterlosen Giebelseite komplett gen Süden ausgerichtet. Das Haus heizt sich auf. Im Erdgeschoss sind es dann frische 25–26º C, aber der 1te Stock: chancenlos. Immerhin habe ich einen leisen Ventilator, mit dem ich nachts schlafen konnte.


An diesem Wochenende habe ich angefangen, das Code-Projekt dieses Blogs zu aktualisieren. Einige CSS-Petitessen gemacht, aber vor allem den Workflow von Grunt weg, hin zu NPM-Skripts gewechselt. Dabei kommt jetzt erstmals bei mir auch ein NPM-basierender Watch-Prozess zum Einsatz.

Ich hatte kurz überlegt, ob ich Rome an den Start bringen sollte. Aber das Projekt sieht abseits von Javascript, noch nicht weit genug aus, um wirklich die komplette Frontend Development Toolchain abzubilden.

Toolchain, Schmuchain. Zwei Blogeinträge von Jeremy Keith verdeutlichen: Werkzeuge der Frontend-Entwicklung sind da, um wieder zu gehen. So passiert mit jQuery, dass inzwischen i.d.R. nicht mehr benötigt wird, weil die nativen Javascript-Methoden bis runter IE11 gut genug sind. Keith sieht die gleiche Entwicklung bei Sass vs CSS – als Sass-Fan bin ich über diese Perspektive nicht ganz so erfreut.

Was war. KW#51

Joa. Ich kriege das regelmäßige Blogschreiben immer noch nicht hin. Nun gut. Mein Recap der letzten drei Wochen.

Things I worked on.

Frisch aus dem Urlaub zurückgekehrt, fing es für mich beim Kundenprojekt „t5“ wieder an. Die drei Wochen standen bereits im Zeichen des Jahresabschlusses und des Januars. Es gab viel Stundenzettel-Voodoo, wie er leider bei Konzernen inzwischen usus ist (inkl. Buchungs-Deadline alle Dezember-Stunden bereits Mitte Dezember). Dazu Vorausplanung für den Januar wg. Urlaub des Projektmanagers.

Eine Eigenart des Projektes sind die mitunter frugalen Spezifikationen – ablesbar an Tickets, bei denen ich im ersten Step eine sechszeilige Aufgabenbeschreibung auf über 100 Zeilen aufblähe. Bei Tickets mit größerem Scope, habe ich es mir angewöhnt, erst einmal im Kopf alle Edge Cases durchzuspielen. Und Edge Cases eskalieren schnell, wenn man drei unterschiedliche Breakpoints, Touch- und No-Touch-Devices und unterschiedliche Content-Mengen berücksichtigen muss.


In diesen drei Wochen und jetzt „zwischen den Jahren“ arbeite ich meine Liste an Kunden-Websites ab, in denen ich Adobe Typekit-Webfonts verarbeitet hatte, um sie nun gegen selbstgehostete Fonts zu ersetzen. Sechs Sites sind bereits angepasst. Vier sind noch auf der Liste.

Während ich bei Groteskschriften zahlreiche Alternativ-Fonts habe, ist das Angebot bei Antiquas deutlich dünner. Die Garamond Pro werde ich nicht annähernd nahtlos austauschen können.

Was mich aber beim Schriftenvergleich sehr geflasht hat: das große „W“ der Garamond und seinen überkreuzenden Diagonalen, die es wie zwei große „V“s wirken lassen. Verglichen mit der Darstellung anderer gewöhnlicher Antiquas, ist es eine komplexe Verzierung, die aber trotzdem nicht überladen wirkt. Wie aufwändig diese Form ist, fällt nicht nur im Vergleich zu anderen Antiquas, sondern auch im Vergleich zum kleinen „w“ auf. Das kommt im normalen Schriftschnitt gewöhnlich daher, während es im kursiven Schnitt den Garamond-typischen, schreibschrift-ähnlichen Schwung hat.

Der Buchstabe „W“ in der Garamond

Die Projekte habe ich zum Anlass genommen, mein Frontend-Boilertemplate, mit dem ich Projekte beginne, zu überarbeiten. Grunt habe ich rausgeschmissen und durch npm-Skripts ersetzt. Bei Sass kommt jetzt Dart-Sass zum Einsatz.


Mein drittes Projekt der drei Wochen war eine Website-Aktualisierung beim Projekt „Grün-Blau“. Einmal im Jahr wird eine Art Jahresabschluss-Statistik sowie eine Gebührentafel für das kommende Jahr veröffentlicht. Aus Zeitgründen habe ich hier jegliche Umbauten unterlassen und 1:1 den aus den Vorjahren etablierten Workflow durchgezogen.

Things I did.

Im Haus habe ich mich dieser Tage verstärkt um das Thema Licht gekümmert. Ich habe drei Stehlampen gegen eine Steh- und eine Tischlampe ausgetauscht – ich bin lichtempfindlich und daher immer noch ein sehr großer Freund von indirekter Beleuchtung.

In der Küche habe ich mit einem LED-Strip ein Defizit kompensiert, das seit dem Bau der Einbauküche (also dem Bezug des Hauses) vorhanden war. Eigentlich ist unter den Oberschränken eine LED-Leiste verbaut und es führen auch Stromkabel an den Übergabepunkt. Faktisch funktioniert sie nicht, was ich Trottel erst nach einigen Wochen überprüft habe. Ich hatte keinen Bock auf Schuldzuweisungen zwischen Elektriker und Küchenmonteure. Ich habe den Elektriker in Verdacht, dass er da einige Kabel verwechselt bzw falsch verlegt hat. Hatte ich letztes Jahr, einen Monat nach Bezug, Lust gehabt, mit dem Elektriker zu diskutieren und ggf. eine Wand aufstemmen zu lassen? Nope.

Nun habe ich einen LED-Strip gekauft und unter die Oberschränke geklebt. Im Schlafzimmer habe ich endlich eine brauchbare Nachttischlampe, die weder das ganze Stockwerk taghell illuminiert, noch ein derart funzeliges Licht liefert, dass ich keine Comics lesen kann. Im Wohnzimmer sind zwei sehr fette Stehlampen gegen gegen eine stabähnliche Stehleuchte ersetzt worden, die viel weniger Platz einnimmt.


Anderthalb Tage mit Magenverstimmung krank gewesen. Hat sich nicht schlimm angefühlt, aber dass ich dann in einem Rutsch elf Stunden durchschlief, ist für mich schon ein Zeichen, dass es mich etwas heftiger erwischt hat.


Endlich die Bremsbeläge am Fahrrad ausgetauscht, nachdem die Beläge vorne schon fast komplett ausgelutscht waren.


Unter der Woche einen der letzten sonnigen Nachmittag ausgenutzt und runter an die Elbe gefahren, um von Teufelsbrück gen Sonnenuntergang ins Treppenviertel zu laufen. Der Himmel so klar, dass man den von Fuhlsbüttel nach Süden gestarteten Fliegern minutenlang nachgucken konnte, bis sie nur noch ein Punkt im Himmel waren. Das Treppenviertel und die Haupteinkaufsstraße von Blankenese schon komplett im Weihnachtsmodus.


Es drängt es mich gerade wieder verstärkt in Richtung Zeichnen. Ich habe ja einen Studienabschluss „Illustration“. Nach dem ich aber anfangs meiner beruflichen Laufbahn, Mitte der 90er Jahre, noch viel mit Animation und Phasenzeichnungen zu tun hatte, ist das Zeichnen inzwischen komplett eingeschlafen und verkümmert.

Ich habe wieder verstärkt Lust, mich ans Zeichnen zu setzen. Dabei gab es zu „Black Friday“ noch einmal einen Schub, als das Standard-Programm für Illustratoren und Zeichner, „Clip Studio Paint“ (auch als „Manga Studio“ bekannt) zum halben Preis, für 22 Euro, vertickt wurde.

Ich habe mein altes Wacom-Zeichentablett heraus gekramt und sogar noch einen funktionsfähigen Treiber gefunden (ich fürchte mit Mac OS Catalina nicht mehr kompatibel). Und ich hatte durchaus viel Spaß. Am Bild zu Death Stranding sass ich die Feiertage über, mehrere Stunden.

Ich muss mich erst wieder aufbauen. Das Finden zu seinen eigenen Stilen passiert im Studium erst im Laufe der etlichen Semester und nach dem man 2–3 Jahre mit Aktzeichnungen und Stilleben Routine gewonnen und einiges ausprobiert hat.

Nach 20 Jahren Pause, muss ich mich wieder in das Zeichnen hinein finden. Das Auge trainieren. Den Kopf das Gesehene filtern und interpretieren lassen. Und das in die Hand einfließen und den Zeichenstift übertragen lassen.

Auch wenn du als Zeichner es mit einem flachen Medium zu tun hast, so hast du es doch mit einer Skulptur zu tun. Deine Hand und dein Stift müssen spüren, was du zeichnest, damit es sich auf den Strich oder die Farbfläche überträgt.

Wenn du mit Vorlagen (wie bei „Parasite“ oder „Death Stranding“) arbeitest, zeichnest du nicht einfach die Striche der Vorlage durch. Du lässt den ganzen Film oder den ganzen Norman Reedus einfließen. Der Fusselbart von Reedus ist auf der Vorlage nicht deutlich zu erkennen. Aber weil du Reedus in Aktion gesehen hast, weißt du, dass dieser Bart ein Schlüssel für seine Optik ist. Reedus‘ zärtliches Verhältnis zu seinem BB, wird nicht in der Vorlage erkennbar. Dies sind Projektionen und Interpretationen, die der Zeichner selbst beim einfachen „Durchpausen“ in die Zeichnung einbringen muss.

Auf dem Weg zurück zum Zeichnen muss ich versuchen all dies, was ich in den letzten 20 Jahren verloren habe, wieder zu finden.

Reading List

  • WebDev: Six Web Performance Technologies to Watch in 2020, Simon Hearne – Static Website-Generatoren in unterschiedlichen Ausprägungen, u.a. auch in Verbindung mit Headless CMS, WASM, Edge Compute (Code-Ausführung nicht vom Server oder Client, sondern Netzwerk-Dienstleister der dazwischen sitzt), Observability (mehr und bessere Metriken zur Performance-Messung), Platform improvements (Performance-Optimierungstechniken werden bereits pfannenfertig im Browser eingebaut, zB Lazy Loading), Web monetisation (geschmeidigeres Bezahlen durch standardisierte Web-APIs), Verbesserungen der DSGVO durch clientseitige Implementierungen.
  • WebDev: Tracking HTTP/2 Prioritization Issues – die unterschiedlichen Interpretationen der Priorisierung von Requests im HTTP/2-Standard scheint dermaßen verzwickt zu sein, dass man sich erst mit HTTP/3 Abhilfe erhofft.
  • Comics: Eine 16seitige Comic-Fassung der griechischen Sage „Illias
  • Politik: „PISA results can lead policymakers astray“, Economist vom 5.12.2019 – Schwankungen im PISA-Score sollten Politiker vor voreilige Schlüsse warnen.
  • Politik: „After half a century of success, the Asian tigers must reinvent themselves“, Economist-Special Report vom 5.12.2019 – Die Asian Tigers sind immer noch vom Export abhängig. Schwächen im Service-Bereich. Gleiche Altersprobleme wie Japan, weil ähnlich starke Geburtenrückgänge.
  • Science: “This 3D-printed Stanford bunny also holds the data for its own reproduction” – Wissenschaftler haben die Druckpläne für einen 3D-Objekt in Mikrokapseln integriert, die wiederum Teil der Druckflüssigkeit für den 3D-Printer sind, dass das 3D-Objekt ausdruckt. Man kann also ein Stück des Objektes abknapsen, eine der Mikrokapseln extrahieren und den enthaltenen Druckplan auswerten, um das Objekt „nachzudrucken“.
  • Science: Ein Browser-Spiel, dass die Basics der „Game Theory“ erklärt … und zwar auf eine Art und Weise, die bzgl. ihrer Lehren für das Leben, durchaus frustrierend ist.
  • Economics: „Reality and hype in satellite constellations…“, 12.12.2019, TMF Associates blog – Tim Farrar zerlegt das Geschäftsmodell von Starlink.

Things I watched.

  • YouTube-Kanal: The Modern Rogue – Professioneller YouTube-Kanal aus den USA mit gemischten Themen, die sich am ehesten mit „zwei Buddies probieren Dinge aus“ subsummieren lassen. Wie kann man Schlösser knacken, der Effekt von Miraculin, wie arbeiten Taschendiebe etc…
  • Sport: etliche Championship-Spiele auf Sportdigital angeguckt. Das Streamabo kostet nur 50,– Euro/Jahr und funktioniert live und on demand. DAZN hat inzwischen sein Fußballangebot aus den Sportdigital-Ligen mehr als halbiert (ca. 1–2 Championship-Spiele/Woche, 1x Eredivisie, 1x A-League) – was wiederum das Sportdigital-Stream-Abo lohnenswert macht.
  • Sport: Einige Rugby-Europapokal-Spiele gesehen und sehr von Leinster und Clermont beeindruckt gewesen.

Things I listened to.

1ter Dezember heißt: von jetzt bis Weihnachten landet Soma FMs „Christmas Lounge in die Heavy Rotation.

Olderposts

© 2024 Kai Pahl

Theme basiert auf „Lingonberry“ von Anders NorenNach Oben ↑