Front-end-Entwickler und Tech-Redakteur bei OneKitly
Web-Performance, Datei- und Dokument-Workflows, Text-Werkzeuge und Entwickler-Utilities
Daniel ist Frontend-Entwickler und schreibt über das, was durch einen Arbeitstag läuft: Bild- und Dateiformate, Web-Performance, Text- und Datenverarbeitung und die Dokument-Workflows — Signaturen, PDFs, Konvertierungen — zwischen einer Datei und dem Menschen, der auf sie wartet. Er erklärt technische Kompromisse ohne Fachchinesisch und sagt, wo eine Regel aufhört technisch zu sein und juristisch wird.
Fachgebiete
Web-Performance
Dateiformate
PDF & Dokumente
Textverarbeitung
Entwickler-Werkzeuge
Bilanz
—Schreibt seit 2016
—205 Ratgeber auf OneKitly veröffentlicht
—davon 57 zu web
—708 zitierte Quellen
—von 158 verschiedenen Herausgebern
—Veröffentlicht bei OneKitly seit dem 13. Mai 2025
Wie Daniel arbeitet
Daniel geht von der Spezifikation aus — dem Standard des Formats, dem dokumentierten Verhalten des Browsers — und prüft sie an der Datei vor sich, nicht an der Behauptung in einem Blogbeitrag. Stellt sich eine Grenze als rechtlich statt technisch heraus, sagt er, welche der beiden er beschreibt.
Artikel von Daniel Okonkwo
Die wichtigsten
Sortiert danach, wie viele Seiten dieser Website auf sie verweisen — nicht nach Zugriffen.
17 mod 5 ist überall 2. −17 mod 5 ist −2 in JavaScript, C und Java und 3 in Python, Ruby und einer Tabellenkalkulation. Beides ist richtig, und der Unterschied ist ein echter Fehler.
Zwei 500-N/m-Federn hintereinander ergeben 250 N/m, nebeneinander 1.000. Unter derselben Last von 50 N sind das 0,2 m Weg gegen 0,05 m und 5 Joule gespeichert gegen 1,25.
Bei durchschnittlich fünf Ereignissen je Intervall treten genau drei in 14,0 % der Fälle auf, gar keines in 0,7 % und zehn oder mehr in 3,2 % — etwa einmal je 31 Intervalle. Die Verteilung hat einen Parameter, und er legt Mittelwert und Varianz zugleich fest.
Die drei Ziffern sind zwei Stellen und eine Nullenzahl, in Pikofarad: 104 sind 100 nF und 473 sind 47 nF. Die Falle ist 220 — das sind 22 pF, während ein 220-pF-Bauteil mit 221 beschriftet ist.
100, 220 und 330 µF in Reihe ergeben 56,9 µF — weniger als der kleinste. Schalte 100 µF und 1 µF in Reihe: Die Summe ist 0,99 µF, und der kleine trägt 99 % der Spannung.
10 mH mit 100 µF schwingen bei 159,2 Hz. Verdopple die Kapazität, und sie fällt auf 112,5 Hz; um die Frequenz zu halbieren, muss ein Bauteil vervierfacht werden, denn beide stehen unter einer Wurzel.
1.000 Ω mit 100 µF ergeben eine Zeitkonstante von 0,1 s. Der Kondensator ist dann zu 63 % geladen, nach drei Konstanten zu 95 % und nach fünf zu 99,3 % — und die letzte Zahl ist die maßgebliche.
25 Millionen Umsatz auf 250 Personen sind 100.000 je Kopf. Verlagere fünfzig davon zu einem Dienstleister, und derselbe Umsatz zeigt 125.000 — 25 % Verbesserung einer Produktivitätskennzahl bei unveränderter Arbeit.
5.000 mAh, mit 500 mA entnommen, halten bei 85 % Wirkungsgrad 8,5 Stunden statt der rechnerischen 10. Dieselben 15 % erklären, warum eine 5.000-mAh-Bank ein 4.000-mAh-Telefon knapp einmal füllt.
Die als Wärme verlorene Leistung ist Strom im Quadrat mal Widerstand. Zehn Meter Verlängerung in 1,5 mm² haben hin und zurück 0,233 Ω: 23,3 W bei 10 A und 59,7 W bei 16 A.
2000 Wörter sind 8 Seiten in doppeltem Zeilenabstand, 4 in einfachem und 3,3 in einem dichten Berichtssatz. „Wie viele Seiten“ ist eine Frage an das Layout, nicht an den Text — und die 250-Wörter-Seite hat eine Geschichte.
Das Sprechtempo entscheidet über die Länge eines Vortrags mehr als das Manuskript. Bei 170 Wörtern pro Minute dauert derselbe Text 7 min 04 s; bei 110 dauert er 10 min 55 s — und nur einer der beiden passt in ein Zehn-Minuten-Fenster.
Eine Arbeitsmappe zu zerlegen schreibt eine .xlsx je Blatt, benannt nach dem Register. Sie nimmt die Werte mit und nicht die Formeln — die richtige Voreinstellung, wenn es darum geht, einer Abteilung ihr eigenes Register zu schicken.
JSON nimmt deinen Kopfzeilentext genau so als Schlüssel, wie er dasteht. XML kann das nicht — seine Namen dürfen keine Leerzeichen, Klammern oder führende Ziffer tragen —, also werden sie normalisiert, und zu wissen wie erspart eine Überraschung weiter unten.
OpenDocument macht styles.xml optional. Mehrere Leser verlangen sie und weisen ohne sie das ganze Dokument zurück — „Cannot find file styles.xml in zip“ bei einer Datei, die nicht kaputt ist.
Eine Zelle kann eine Formel enthalten und kein zwischengespeichertes Ergebnis. Ein Leser, der leere Zellen überspringt, wirft die Formel mit weg — und meldet, die Datei enthalte keine. Eine Leseoption trennt die beiden Fälle.
Leerzeichen sind der eigentliche Grund für diese Werkzeuge. Eine Zeile aus Leerraum sieht leer aus, ist es für einen strengen Test nicht und übersteht still jeden Filter, den man danach anwendet.
Zwölf Monatsberichte können zwölf Register werden oder eine Tabelle über zwölf Monate. Nur die zweite lässt sich in einem Zug sortieren und summieren — und bei ihr wollen die Kopfzeilen behandelt werden.
Stundenpläne, Spielpläne, Schichtpläne und Konferenzprogramme beginnen alle als Tabelle. Vier Spalten genügen, um daraus eine Datei zu machen, die jede Kalenderanwendung importieren kann.
Kein Stylesheet, kein Skript, ein Layout aus verschachtelten Tabellen und Stile, die an jedem einzelnen Tag stehen. Zu wissen warum, erklärt, wie eine exportierte HTML-Datei aussehen wird — und wie nicht.
Dieselbe Datei, derselbe Parser, zwei Ausgaben. Die Tabelle bekommt acht Spalten; das JSON bekommt zusätzlich die benannte Zeitzone, den Ganztagsmarker und die Wiederholungsregel.
2.1 markiert Typen ohne Gleichheitszeichen, 3.0 liest alles, 4.0 schreibt manche Werte als URI — eine Telefonnummer kann also als tel:+33612345678 samt Präfix ankommen. Zu wissen, welche du hast, erklärt die meisten Import-Überraschungen.
Ein Kontakt kann mehrere Nummern und mehrere Adressen haben. Das CSV fügt sie mit einem Mittelpunkt in eine Zelle; das JSON behält sie als Liste — der Unterschied zwischen einem Skript, das funktioniert, und einem, das auf gut Glück trennt.
Namen, Adressen und Organisationen sind in einer vCard gegliederte Felder. Drückt man sie in eine Tabelle, lesen sie sich gleich und verlieren dabei ihre Nähte — was in dem Moment zählt, in dem man aus dieser Tabelle wieder eine vCard baut.