Wöchentlicher Podcast für Frontend Devs, Design Engineers und Web-Entwickler:innen. Mal mit, mal ohne Gast begeben wir uns in die Tiefen von HTML, CSS, JavaScript oder auch Frameworks wie React, Vue und Angular. Wir diskutieren über gute UX, Web Performance und Barrierefreiheit, sowie ab und an auch über Browser und Webstandards.
Supported uns bei Patreon: https://patreon.com/workingdraft
The podcast Working Draft is created by Vanessa Otto, Peter Kröner, Hans Christian Reinl, Stefan Baumgartner, Christian »Schepp« Schaefer. The podcast and the artwork on this page are embedded on this page using the public podcast feed (RSS).
Stefan und Peter hatten vorgehabt, das Thema „Web Components vs. Frameworks“ gründlich durchzudiskutieren, doch das allgegenwärtige Framework- und CMS-Drama nahm dann die Hauptrolle ein.
In dieser Episode tauchen wir tief in die Chrome DevTools ein und beschäftigen uns mit der Frage, wie wir das Performance-Tab optimal nutzen können, um wertvolle Einsichten in die Ladezeiten und Rendering-Prozesse unserer Webseiten zu gewinnen.
@property
-Deklarationen dabei haben.Mit Hans-Christian Otto (Chef bei Suora und Tröter bei @[email protected]) plaudern Schepp und Peter über das Wie und das Warum der Konferenz-Sprecherei.
Neues Jahr, neue State of CSS-Umfrage! Wir ziehen sie mittlerweile zum vierten Mal in Folge heran, um über die neusten Errungenschaften bei der Gestaltung von Web-Oberflächen zu sprechen. Und weil das ziemlich viel ist, teilen wir das ganze wie zuletzt auch in mehrere Teile und arbeiten uns Stück für Stück durch die einzelnen Kapitel der Umfrage. Dies ist Teil drei.
Von den neuen Funktionen finden wir vermutlich die Gruppe rund um abs()
, round()
und mod()
am interessantesten. Wir nennen im Zusammenhang mit selbst-skalierenden Schrift-Systemen als das Framework Utopia und Scott Kellum. Wir erwähnen, dass jede der mathematischen Funktionen calc()
serienmäßig in sich eingebaut hat und dass ein Update der Spezifikation nun auch das Teilen durch Längeneinheiten unterstützt, was der Safari als erster Browser umsetzt.
Anschließend lassen wir uns dazu aus wie wir bei der Anwendung von min()
und max()
oft einen Knoten im Kopf bekommen und bei clamp()
dankenswerterweise nicht.
Zu guter Letzt starten wir einen Aufruf an Euch, uns Beispiele für den Einsatz von hypot()
zu nennen. Uns fällt da mangels Mathefähigkeiten nichts ein. Vielleicht im Rahmen des CSSBattle? Um Deadpools Nase zu zeichnen, zum Beispiel?
:has()
, :is()
und :where()
überspringen wir ganz frech und stürzen uns direkt auf CSS Nesting und Cascade Layers, die die CSS-Syntax aus unserer Sicht ähnlich fundamental weiterentwickeln, wie ES6 es damals für JavaScript getan hat. Damit ist es nicht mehr lang, bis wir jegliche CSS Präprozessoren aus unseren Toolschains werfen können – sofern wir nicht auf Loops setzen. Wir erwähnen auch @scope
, das Herangehensweisen wie BEM oder das Kapseln von Styles via generierter CSS-Klassen überflüssig machen. Die Gretchenfrage ist: Wann ist der richtige Zeitpunkt zum Umstieg? Denn beide Features ermöglichen keine Graceful Degradation, sondern alten Browsern fliegt das CSS bei Nicht-Unterstützung komplett um die Ohren.
Als nächstes schauen wir uns die beiden Funktionen image-set()
und image()
an. Erstere ist so etwas wie responsive Images in CSS und eigentlich ein alter (WebKit-)Hut. Die Funktion wurde nun aber spezifiziert und wurde in dem Zuge um eine Fähigkeit ergänzt, die die ursprüngliche Version nicht bieten konnte, nämlich die (Bild-)Format-Support-Queries. image()
ist eine Art Schweizer Taschenmesser für alle Arten von Bild-Erzeugung in CSS. Bilder lassen sich aus Farben generieren, was uns zukünftig vom Missbrauch der linear-gradient()
-Funktion abhalten wird. Wir können aber genauso Bild-Ausschnitte via Media-Fragment-Syntax erzeugen. Leider wird die Funktion bislang in keinem der Browser unterstützt, obwohl die Diskussionen darum schon vor 13 Jahren begannen. Irgendwie kommen wir durch dieses Thema auf ein artverwandtes, nämlich dass src()
eine von Designfehlern befreite Re-Inkarnation von url()
ist. Shout-out an Stefan Judis und seinen „Web Weekly“-Newsletter!
Abschließend sprechen wir doch noch einmal über :has()
, weil es uns hier und da das Hirn verknotet, aber auch weil man dessen Einsatz wegen seiner Selector-Matching-Performance vorsichtig dosieren sollte – je nach Umfang des DOM-Trees.
Neues Jahr, neue State of CSS-Umfrage! Wir ziehen sie mittlerweile zum vierten Mal in Folge heran, um über die neusten Errungenschaften bei der Gestaltung von Web-Oberflächen zu sprechen. Und weil das ziemlich viel ist, teilen wir das ganze wie zuletzt auch in mehrere Teile und arbeiten uns Stück für Stück durch die einzelnen Kapitel der Umfrage. Dies ist Teil zwei.
proximity
, sondern auf mandatory
steht.
Weiter geht es mit scroll-behavior
, das wir heutzutage eigentlich immer auf den Wert smooth
setzen. Hier und da führt das aber zu unschönen Interaktionen, weswegen man es ggf. temporär, z.B. mit Hilfe einer Animation, aus und wieder an stellt. Wir sind uns außerdem einig, dass Firefox das weiche Scrollen deutlich schöner umsetzt als Chrome.
Nächster Punkt ist overscroll-behavior
, mit dem man steuern kann, was beim Erreichen des Endes von Scroll-Bereichen passieren soll. Es ermöglicht uns, das Bounce-Verhalten und Gesten-Shortcuts zu beeinflussen, was besonders nützlich ist, wenn wir komplexe Interfaces erstellen. Außerdem kann man damit verhindern, dass durch ein Overlay hindurch die Seite Scroll-Kommandos erhält und sich so ungewollt unter dem Overlay hinweg scrollen lässt. Leider funktioniert die Property nur, wenn es auch wirklich etwas zu scrollen gibt, so dass man manchmal künstlich Scroll-Bereiche erzeugen muss.
Wir sprechen über scrollbar-gutter
, das nun auch in Safari implementiert wurde.
Schließlich geht es um @starting-style
und transition-behavior: allow-discrete
, die brandneu sind und einem neue Möglichkeiten im Bereich der CSS Transitions erschließen.
font-display
-Descriptor. Setzt man ihn nicht, machen die Browser, was sie wollen. Darum will man es immer setzen und das meist auf swap
. Flankierend sollte man aber immer zusehen, dass man seine Fonts auf die gebräuchlichsten Zeichen eindampft (subsetted) und sie mit Hilfe von Resource-Hints preloaded.
Als nächstes reden wir über line-clamp
, das relativ frisch standardisiert und in die Browser eingebaut wurde, ohne die alten WebKit-Hacks, wo man es nur in Kombination mit einem alten Flexbox-Dialekt ans Laufen bekommen hat.
Weiter geht es mit text-wrap: balance
und text-wrap: pretty
, die wir für eine fantastische Ergänzung des typografischen Werkzeugkastens halten. Und wir schauen uns kurz die neue Property hanging-punctuation
an, welche derzeit nur in Safari funktioniert, insgesamt aber auch nur marginalen Effekt zeitigt.
Effektreicher ist die initial-letter
-Eigenschaft, mit der man Initiale etwas schöner umsetzen kann, als mit dem bislang (und auch von uns auf unserer Webseite) gebräuchlichen Hack, das ::first-letter
-Pseudoelement zu stylen.
Da wäre zum einen die prefers-reduced-motion
-Feature-Query, mit denen man Animationen und Transitions absichern kann. prefers-color-scheme
berücksichtigt, ob jemand eine Seite lieber in hell oder dunkel betrachten mag. Mit prefers-reduced-data
lässt sich eine schlankere Seite an Besucher ausliefern, die um weniger Datenumfang bitten – wobei wir nicht genau wissen, wieso man das nicht immer anstreben sollte. Mit Hilfe von prefers-contrast
und forced-colors
kann man auf besondere Darstellungswünsche von Besuchenden eingehen.
Für das Funktionsprinzip von :focus-visible
möchten wir auf die Revision 547: The State of CSS (Teil 2) von 2022 verweisen. Ergänzen möchten wir aber die Info, dass die .focus()
-Methode in ihrem Options-Objekt die Eigenschaft focusVisible
ebenfalls unterstützt.
Ganz neu ist die light-dark()
-Funktion in CSS, die man an allen Stellen einsetzen kann, an denen in CSS Farbwerte stehen. Als Parameter gibt man der Funktion zwei Farbangaben mit, von denen die erste bei aktiviertem Light-Mode angewendet wird und die zweite bei aktiviertem Dark-Mode.
Neues Jahr, neue State of CSS-Umfrage! Wir ziehen sie mittlerweile zum vierten Mal in Folge heran, um über die neusten Errungenschaften bei der Gestaltung von Web-Oberflächen zu sprechen. Und weil das ziemlich viel ist, teilen wir das ganze wie zuletzt auch in mehrere Teile und arbeiten uns Stück für Stück durch die einzelnen Kapitel der Umfrage. Dies ist Teil eins.
Und um *wirklich* zu verstehen, was bei Flex und Grid hinter den Kulissen abgeht, empfehlen wir den ziemlich „deepen“ Talk „Demystify Modern CSS Layouts with DevTools“ von Hui Jing Chen.
Dann sprechen wir kurz über das sehr praktische margin-trim
, um im Anschluss zunächst über Anchor Positioning und schließlich über Style Queries und State Queries zu sprechen.
Als nächstes widmen wir uns den neuen Linear-Easing-Functions, welche uns bei Transitions und Animations völlig neue Möglichkeiten eröffnen und gleichzeitig ein ziemlich cooler „Hack“ sind.
Schließlich sprechen wir über Intrinsic-Sizes in Form von min-content
, max-content
, fit-content
.
color()
-Funktion, die das Adressieren von Farbräumen und -modellen vereinheitlicht.
Anschließend sprechen wir kurz über accent-color
, mit dem man den Look von Formularelementen schnell und unkompliziert der eigenen Farbwelt näher bringt.
Wir reden über Wide Gamut Colors, also Farben, die einem umfangreicheren Farbraum entstammen, als ihn das altehrwürdige sRGB bietet. Man höre dazu auch unsere Folge Revision 623: Farben und Farbräume.
Zu guter Letzt sprechen wir über die Relative Color Syntax, die eine neue Syntax für Farbangaben darstellt, mit der man Varianten bestehender Farben erzeugen kann. Damit eignet sie sich besonders gut, um mit ihr Design Systeme automatisiert auf Basis von Grundfarben zu erzeugen.
Mit Gast Hans-Christian Otto (Chef bei Suora und Tröter bei @[email protected]) reden Peter und Vanessa über Server Side Rendering mit Frontend Frameworks. Im Verlauf wird Server Side Rendering mit SSR abgekürzt, und Hans-Christian Otto kurz Christian genannt.
Schon gewusst? Wenn man „TypeScript“ an eine Podcast-Folge dranschreibt, kann man über Gott und die Welt reden und niemand kann etwas dagegen sagen! Muhahahaha!
Mit Marvin Luchs von Holisticon ergehen sich Schepp und Peter in freier HTTP-Assoziation.
Christoph Fricke (Twitter, Github) ist Berater und Webdev-Hexer bei Holisticon und erzählt uns von seinem Open-Source-Projekt!
unknown
-Typ und seine Limitierungen, typescript-eslint, Type-Testing und natürlich die Frage, ob Typen die Volksfront von Judäa und Interfaces die Judäische Volksfront sind.In semi-geplanter Manier kommt es dazu, dass Hans vom thematisch gänzlich unbeleckten Peter gewissermaßen zu Interviewing interviewt wird.
Peter (der von Angular ungefähr so viel Ahnung hat, wie ein Laubfrosch von Artilleriemunition) durfte als Gast Manfred Styer (der von Angular ungefähr so viel Ahnung hat wie Manfred Styer) begrüßen und sich über Module Federation aufklären lassen!
Stefan und Peter treffen sich zur Selbsthilfegruppe der anonymen Abstrahierer!
Nein, noch ist TailwindCSS v4 nicht heraus, und wir können noch die Füße still halten. Puh. Aber mit welchen Neuerungen können wir rechnen? Dies besprechen wir mit TailwindCSS-Dauergast Milan!
Nachdem wir in der Vergangenheit bereits zu TailwindCSS 1, TailwindCSS 2 und TailwindCSS 3 entsprechende Episoden aufgenommen haben, setzen wir uns erneut mit unserem letztmaligen Gast Milan zusammen. Wir besprechen die Neuerungen in der 3. Version von TailwindCSS und blicken retrospektiv auf unsere Erfahrungen zurück.
Schepp und Peter philosophieren zusammen mit Jon Uhlmann (zuletzt in den Revisionen 528 und 504 zu Gast) über die Möglichkeiten und Herausforderungen der neuesten Farb-Features in CSS.
Hans, Schepp und Peter drehen am Glückrad bis das Frameset kommt!
paint-order
unter anderem für Textumrandungen ganz praktisch ist. Es gäbe dafür auch -webkit-text-stroke
, das mittlerweile in der Bibel für Web-Kompatibilität aufgeführt und deshalb in praktisch allen Browsern zu finden ist.Nicole Rauch sorgt in dieser Revision dafür, dass Vanessa und Peter endlich mal anfangen, brauchbaren Programmcode zu produzieren.
Es ist mal wieder Zeit für (angeblich) TypeScript und (tatsächlich) sehr viele andere Themen mit Stefan und Peter!
In dieser Episode hat sich Schepp mit Svelte Core Team Member Simon Holthausen (LinkedIn / Mastodon / Twitter) zusammengesetzt, um über die kommende Version von Svelte zu sprechen: Svelte 5! Leider hatte Simon während der Aufnahme einen Frosch im Hals 🐸, aber er hat sich tapfer durchgebissen.
Die wichtigste Änderung ist das neue Konzept der Runes. Simon gibt uns eine Einführung in diese Neuerung und erklärt den Unterschied zu den bereits bekannten Syntaxen und auch zu Signals. Dies hilft uns zu verstehen, wie Runes das Arbeiten mit Svelte 5 beeinflussen werden.
Wir reden ebenfalls über die neuen Snippets und erfahren, wie diese das Arbeiten mit Svelte 5 noch einfacher und effizienter machen. Ein weiteres Thema ist die überarbeitete Template-Syntax für Events. Simon erläutert, warum diese Änderung notwendig war und welche Vorteile sie mit sich bringt.
Abschließend sprechen wir über den Upgrade-Pfad von Version 4 zu Version 5. Simon erklärt, wie der Upgrade-Prozess abläuft und welche Stolpersteine zu beachten sind. Zum Schluss sprechen wir darüber, was das Core-Team nach dem großen Release plant. Wird direkt an neuen Features gearbeitet oder ist erst einmal Urlaub angesagt?
Herzlich willkommen zum zweiten Teil unserer Mini-Serie zur Internationalisierung. In dieser Folge tauchen wir gemeinsam mit Schepp tiefer in die Herausforderungen und Best Practices ein, die mit der Anpassung von digitalen Produkten für unterschiedliche Märkte und Kulturen verbunden sind.
In dieser Folge bauen wir auf der Revision 613, dem ersten Teil, auf und beleuchten weitere vielfältige Aspekte, die bei der Internationalisierung berücksichtigt werden müssen, beispielsweise, wenns um Währungen oder die Uhrzeit geht.
Danke an den Schepp, dass du uns die Themen näher gebracht hast.
In diese Revision haben wir Thomas „Tom“ Bachem aus Berlin zu Gast. Tom ist Unternehmer, Softwareentwickler, Angel-Investor, und vor allem Gründer der innovativen Tech-Hochschule CODE. Und um die geht es in dieser Folge auch.
Irgendein Spezialexperte dachte sich, dass ein Proposal für die Standardisierung von Signals Grund genug sei, einen Nachfolger von Revision 572 aufzunehmen. Hört euch gern an, wie der Spezialexperte zusammen mit Stefan und Gast Bernhard Mayr (Mastodon, Twitter) zum zweiten Mal erfolglos versucht, den Signals-Hype zu verstehen.
Mit Gast Hans-Christian Otto (Chef bei Suora und Tröter bei @[email protected]) starteten Schepp und Peter einen Glücksrad-Versuch.
Anlässlich eines tiefgehenden Metatalks, den Vanessa auf der VueJS Amsterdam 2024 von ihm erleben durfte, luden wir Niklas Dzösch, Developer Relations bei Shopware und selbst Podcaster, zu uns ins virtuelle Studio ein.
Schepp tritt in dieser Revision als Gast auf und lässt Vanessa und Peter an seinen gesammelten Fun Facts rund um Internationalisierung und Lokalisierung teilhaben.
text-overflow
, <marquee>
, die für Übersetzungen möglicherweise sehr relevante CSS-Funktion attr()
, automatische Übersetzungen, LINGsCARS und erste Fragen zu Webdesign zur Sprache. Nach einem unerklärlichen Exkurs zu Macbook-Tastaturlayouts stellen wir fest, dass Namen beliebige Strings sein müssen, Adressen ebenso (u.A. dank Besonderheiten in Japan, Costa Rica und Mannheim) und dass diese Revision ein Mehrteiler wird werden müssen.Schepp, Vanessa und Peter setzen ihre Reise durch die Webtech-Features im neuesten Safari-Release fort.
<input type="checkbox" switch>
ausgebrütet. Zusammenfassend lässt sich festhalten, dass Entwickler:innen (unter anderem) auch die Komplexität von Checkboxes, Selects und Formularen allgemein unterschätzen. Auch die WHATWG ist mit dem Switch-Thema noch nicht am Ende!content
kann ein Alternativtext mitgegeben werden. Wir denken auf Screenreader-Kompatibilität herum und überlegen wie :lang()
bei der Internationalisierung und @supports
bei der Implementierung helfen könnte.transition-behavior
können wir festlegen, wie sich zu Transitions nicht kompatible CSS-Properties verhalten sollen. View Transitions haben damit nur am äußersten Rande zu tun, kommen aber natürlich trotzdem auch zur Sprache.::backdrop
checkVisibility()
Promise.withResolvers()
Promise.withResolvers()
oder das weniger neue new Promise()
besser als Wrapping-Mechanismus für den gänzlich antiken FileReader taugt. Nebenher stellt sich raus, dass CSS einen infinity
-Wert kennt!Object.groupBy()
und Map.groupBy()
Schepp, Vanessa und Peter nehmen ein neues Safari-Release zum Anlass, ausschließlich über neue Web-APIs zu philosophieren. Kontroverse Themen wie der Digital Markets Act oder Peters randständige Feature-Wünsche spielen keine Rolle, wir blicken stattdessen positiv in die Zukunft!
<input type="checkbox" switch>
appearance
in die Welt gesetzt wird? Wir sind leicht überfordert und bemühen Vergleiche zum mit <details>
gebauten Accordion und dem Close-Watcher-Proposal. Auch der Indeterminate-State von Checkboxen findet Erwähnung<hr>
in <select>
<input type="checkbox" switch>
sind wir uns nicht ganz über die Notwendigkeit dieses HTML-Features im klaren und probieren Alternativen mit <optgroup>
zu formulieren.@scope
und :scope
nochmal neu erklärt und moniert dann, dass weder das eine noch das andere seine absurden Anforderungen zu 111% bedient.Erneut haben wir uns Alexander Lichter (LinkedIn / Mastodon / Twitter) in die Sendung eingeladen, der sich als Web-Engineering-Consultant, Trainer und Video–Streamer nicht nur mit Vue.js, Nuxt oder UnJS auskennt, sondern auch in den hohen Künsten der Suchmaschinenoptimierung, kurz SEO.
Neben hochwertigen Inhalten kann auch eine Keyword-Recherche nicht schaden, um eine langfristige erfolgreiche Webseite zu gewährleisten. Zudem erörtern wir Tools (Google Ads Keyword Planner, keywordtool.io, Ahrefs, Semrush oder Moz) und Strategien zur effektiven Keyword-Recherche und Leistungsverbesserung von Webseiten, insbesondere im Hinblick auf die Core Web Vitals zur Steigerung der Benutzererfahrung. Wir gehen auch kurz auf verschiedene Core Web Vitals ein, wie den Cumulative Layout Shift (CLS) und Largest Contentful Paint (LCP), und wie man diese mit Tools wie Lighthouse messen kann. Auch die mobile User Experience und Accessibility spielen eine Rolle.
Dann folgen Ratschlägen zur Verbesserung der Seitenstruktur und Verlinkung. Wir sprechen über semantisches Markup, hierarchische Strukturen und deren Bedeutung für Suchmaschinen. Wir diskutieren die Verwendung von Schema.org in JSON-LD-Ausprägung zur Inhaltskennzeichnung für die Unterstützung von Google bei der Interpretation und Darstellung auf den Ergebnisseiten. Weitere Themen sind die effektive Nutzung von Sitemaps zur Unterstüzung der Indexierung von Seiten durch Google, die Vermeidung von Duplikaten und die korrekte Verwendung von Canonical-Tags. Abschließend thematisieren wir den Indexierungsprozess bei Google bei Single-Page-Anwendungen (SPAs). Alex betont die Relevanz von Server-Side-Rendering (SSR) für den Webseiten-Traffic anhand eines Beispiels von Joel Hooks, Mitbegründer von Egghead.
Zum Schluß widmen wir uns noch den (potentiellen) Herausforderungen im Zusammenhang mit AI-generierten Inhalten. Alex sieht Google in Zukunft ein stärkeres Gewicht auf Vertrauenswürdigkeit und Autorität legen. Hier sind Konsistenz und Qualität des Contents zentral.
Gast Markus Stahmann klärt in dieser Revision über Farbsehschwäche und Farbblindheit auf. Markus ist 1. Vorsitzender des Interessenverbands der Farbsehschwachen und Farbenblinden (der die hervorragende Webseite farbsehschwaeche.de betreibt) und außerdem Webentwickler bei New Data Services, was ihn zu einem einmaligen Kompetenzknäul für uns macht!
Diese Revision wollten wir uns mit Nuxt und UnJS befassen und haben uns als Gesprächspartner Alexander Lichter (LinkedIn / Mastodon / Twitter) eingeladen, der sich nicht nur als Web-Engineering-Consultant, Trainer und Video–Streamer betätigt, sondern auch Mitglied der Nuxt- und UnJS-Teams ist.
Allen Meta-Frameworks ist gemein, dass sie eines der clientseitigen Templating-Systeme nehmen und sie um serverseitige Funktionen ergänzen. Die wichtigste davon: Das Routing-System.
Darüberhinaus ermöglichen Meta-Frameworks wie Nuxt es, statische Seiten zu erzeugen, die im Client ganz ohne JavaScript auskommen. Da unterscheiden sie sich von Konzepten wie den Server-Components von React, die es ledigleich ermöglichen, einzelne Komponenten vom Server rendern und refreshen zu lassen, das Frontend aber weiterhin im Browser orchestrieren.
Wir reden über die aktuellste Version von Nuxt und wie diese bei ihrem Release von der Community aufgenommen wurde. Und wir blicken nach vorne auf die kommende Version 4, die demnächst erscheinen soll. Anders als nach Version 3 ist hier nicht mit großen Breaking Changes zu rechnen. Für einen Vorgeschmack auf die Änderungen können aber jetzt schon in Nuxt 3 entsprechende „Future Flags“ aktiviert werden. Und für eine reibungslose Migration auf Version 4 gibt es dann noch sogenannte Codemods, die bestehenden Code für das neue Framework automagisch umschreiben.
Viele dieser Helferlein sind nämlich Spin-Offs von Projekten aus der Vue-Welt, von denen man aber annahm, dass sie auch für andere Projekte hilfreich sein könnten. Ein Beispiel ist der Webserver Nitro, der so etwas wie ein modernes Express + Connect darstelle und der nicht nur in Nuxt Verwendung findet, sondern auch in Analog.js, dem Meta-Framework für Angular.
Ein weiteres spannendes Paket ist Unplugin, das eine Art universelles Bindeglied zu allen existierenden Bundlern darstellt und einem so ermöglicht, ein Plugin leicht in jede Build-Chain zu integrieren.
Magic-Regexp ermöglicht es wiederum, Reguläre Ausdrücke in menschlicherer Sprache zu formulieren.
Dann gäbe es da noch ufo, das allerlei Tooling rund um das Verarbeiten von URLs bietet.
Und schließlich fontaine, mit dem sich aufeinander abgestimmte Schriften-Stacks erstellen lassen.
Zum Abschluss geht nochmal zurück zu Nuxt und Alex gibt uns gute Tipps für den Einstieg und nennt ein paar Stolperfallen, die man bei der Arbeit mit Nuxt besser vermeidet. Und wir behandeln auch die Frage, wo man sein Nuxt-Projekt am besten hostet. Neben Digital Ocean lautet Alex‘ Tipp hier: fly.io
Nach rund anderthalb Jahren, in denen wir uns mit dem Thema nicht mehr dediziert befasst haben, haben wir uns erneut Jonas Ulrich (Twitter / LinkedIn) und Daniel Ley (Twitter / LinkedIn) von kickstartDS in die Sendung eingeladen, um mit ihnen über den Stand der Dinge in Sachen Design-Systeme zu sprechen.
Es liegt aber auch daran, dass Design-Systeme mit vielen Vorteilen locken: Sie unterstützen bei der Zusammenarbeit zwischen Entwicklung und Design, weil sie ein gemeinsames Verständnis der Sprache des anderen etablieren helfen. Dem Management wiederum bieten sie Vorteile in Form von Skalierung einerseits und Kostenersparnis andererseits. Auch schneiden wir das Thema ROI eines Designsystems an und sprechen darüber wie die Einführung in einer Organisation erleichtert werden kann, um eine bessere Adaption zu erzielen. Wir sind uns aber darin einig, dass ein wesentlicher Teil des Erfolgs nicht von technischen Aspekten, sondern auch von Stakeholder-Management und Kommunikation abhängt.
Apropos Technik: natürlich diskutieren wir über Vor- und Nachteile verschiedener Frontend-Stacks wie React und Web-Komponenten, welches Framework für die Zukunft relevant sein wird und wie der Transfer von Code zwischen verschiedenen Frameworks erleichtert werden könnte. Weiterhin erörtern wir, wer in einem Unternehmen oder Team für das Design-System verantwortlich sein sollte und wie Entscheidungen in diesem Zusammenhang getroffen werden können. Und schließlich weisen wir darauf hin, dass Design-Systeme am Ende immer nur so gut sind wie die sie Nutzenden ein Verständnis der darunter liegenden Konzepte haben.
Das zeigen auch Jonas‘ und Daniels Erfahrungen beim Einsatz ihres Open-Source Design-System-Frameworks kickstartDS bei Kunden: So mächtig das Framework auch ist, so unklar ist vielen unerfahrenen Neu-Design-System-Nutzenden, wie sie zu einem großen ganzen zusammenfügen und es an Ihre bestehenden Systeme anbinden können. Deshalb stand das letzte Jahr bei kickstartDS ganz im Zeichen der Weiterentwicklung hin zu einem nunmehr schlüsselfertigen Frontend, mit typischen UI-Komponenten, Adaptern für Storyblok, Eleventy & Co. und einem anschaulichen Showcase obendrauf.
In heldenhafter Manier setzte sich Martin Dilger einem durch Vanessa und Peter veranstaltetem Kreuzverhör aus, um die frohe Kunde der Einheit von Dev, Business, Design und Marketing zu verkünden. Martin war zuletzt in Revision 594 (Vom Chaos zum Code) zu Gast.
⚠️ Content-Warnung: In dieser Episode sprechen wir über Depressionen. Bitte beachtet, dass einige Inhalte möglicherweise belastend sein könnten. Wenn ihr Unterstützung benötigt, wendet euch bitte an professionelle Hilfsangebote, wie beispielsweise die Stiftung Deutscher Depressionshilfe.
Diesmal sind Pepo (Pascal Szewczyk) und Pia Hofmeier mit dabei. Wir sprechen über mentale Gesundheit.
Wir hoffen, dass wir mit dieser Sendung mehr Sensibilität für das Thema schaffen können und Betroffenen sowie Helfenden, das Gespräch darüber erleichtern können.
In dieser Episode tauchen wir, zusammen mit unserem Gast Martin Helmich, in die faszinierende Welt der Kommandozeilenprogramme und deren Bedeutung für die Developer Experience ein. Martin, Experte in Software- und Cloud-Architektur sowie Developer Relations bei Mittwald, teilt seine umfassenden Einblicke und Erfahrungen mit uns. Wir entdecken eine spannende Wetteranwendung für das Terminal und diskutieren, wie die Effizienz und Vorteile der Kommandozeile für Power-User nicht nur die alltägliche Arbeit erleichtern, sondern auch eine besondere Form der User Experience darstellen.
Martin betont, wie wichtig eine gute Developer Experience ist, um effektiv und effizient mit Kommandozeilenprogrammen arbeiten zu können. Wir sprechen über die Herausforderungen und Lösungen bei der Erstellung benutzerfreundlicher CLI-Programme, die sowohl für Einsteiger als auch für erfahrene Entwickler geeignet sind.
Wir lernen, dass wir grundsätzlich jede Programmiersprache zum Schreiben von Kommandozeilen-Werkzeugen hernehmen können, es aber deutlich angenehmer wird, wenn wir uns Hilfe von darauf spezialisierten Frameworks holen, die von Haus aus Lösungen für viele typische Anwendungsszenarien anbieten:
In OCLIF tauchen wir tiefer ein und lernen Dinge über Flags, über interaktive vs. non-interaktive CLI-Programme, dass eine Ausgabe rückwärtskompatibel, da „grep-bar“ sein sollte, und dass CLI-Werkzeuge responsive sein müssen, nämlich in der Form, dass sie automatisch bemerken, ob sie in einem ausgabefähigen Terminal („TTY“) laufen oder nicht, und sich daran anpassen.
Gegen Ende werden wir fast des Wahnsinns fette Beute, als wir nämlich hören, dass es sogar ein React-basiertes Framework zum Bauen von CLI-Tools namens Ink gibt. 🤯
In einer etwas speziellen Folge haben sich Peter, Vanessa und Hans zusammengesetzt und einfach drauf losgeplappert. Ein richtiges Thema gab es nicht, weswegen es zwar nicht um Gott und die Welt, aber um Bohrhämmer und UML-Diagramme ging.
In dieser Revision haben Hans und Schepp Besuch von Florian Geierstanger (Web / LinkedIn / Mastodon) und Simon Praetorius (Web / LinkedIn / Mastodon), ihres Zeichens TYPO3-Frontend-Dompteur und TYPO3-Core-Entwickler und Berater.
TYPO3 mischt im deutschsprachigen Markt als einziges Open Source System im Enterprise-Umfeld mit und hat so einen guten Ruf, dass sogar der Bund drauf setzt. In den letzten Jahrzehnten hat sich rund um TYPO3 eine große Community geformt, die sich regelmäßig Online austauscht, sich zu Meetups trifft, oder auf den jährlich stattfindenden TYPO Developer Days.
Als vom Backend her entwickeltes System, ist TYPO3 nicht „out of the Box“ auf die komponentenbasierte Entwicklung von Frontends ausgelegt. In diese Lücke stieß nun Simon und lotete aus, was sich machen ließ. Was nicht passt, wird passend gemacht und so ergibt es sich, dass man für sein Frontend letztendlich doch Komponenten-Bibliotheken/-Styleguides einsetzen kann, und/oder Bootstrap, und man alles mit Vite verdrahten kann, das einem alle Assets zusammenschnürt.
Mit unserer Gästin, der Entwicklerin und Trainerin Martina Kraus sprachen wir zuletzt über das Thema Revision 482: Angular im Jahr 2021. Dieses Mal sollte es nicht um Angular gehen, sondern um WebAssembly. Fasten your seatbelts!
Die ersten Umgebungen, die WebAssembly unterstützt haben, waren die Browser. Alle aktuellen Browser, aber auch Node, Deno oder Bun unterstützen die Ausführung von WebAssembly. Mit Hilfe von wasm-bindgen kann WASM-Code mit JavaScript kommunizieren und zusammenarbeiten.
Neuerdings gibt es, dank des WASI-Standards aber auch eigenständige Ausführungsumgebungen für WebAssembly, um Code plattformunabhängig auszuführen – die bekannteste derzeit: Wasmer inklusive Packet-Registry.
Die Zukunft von WebAssembly sieht Martina in der Nutzung als „Serverless Functions“, also in Form von schnell erzeugtem „Fire and Forget“-Code, der irgendwo in der Cloud läuft.
Willkommen zur 600ten Revision unseres Podcasts, die wir am Sonntag, den 7. Januar 2024, in Form einer live abgehaltenen Fishbowl-Diskussion mit etwas über zwanzig Gästen durchgeführt haben. Wir haben dabei über drei verschiedene Themenblöcke gesprochen, die wir per Voting bestimmt haben:
Unsere Teilnehmerschar bestand aus ehemalige Gästen wie z.B. Marvin Hagemeister, Jens Grochtdreis oder Alexander Lichter, aber auch aus vielen neuen Gesichtern. Darüber haben wir uns sehr gefreut!
In der letzten Revision vor der großen Jubiläumsfolge wir nochmal heftigst am Glücksrad gedreht! Ungeplant purzelt aus unserem Zufallsgenerator dabei recht viel SVG-eskes!
class
-AttributclassList
-DOM-Interfaces. Wir kommen sodann zurück zur Anfangsfrage, da Peter zwischenzeitlich erfolgreich recherchiert hat, seit wann es das Attribut gibt. Wir erfahren, dass es nach dem ersten Proposal von HTML und vor HTML 2.0 noch ein Proposal namens HTML+ gab und dass das class
-Attribut schon Teil von HTML 2.0 aus 1995 war. Das ganze erscheint uns vorausschauend auf das 1996 standardisierte CSS.scope
-Attribut gab, mit dem sich der Wirkungsbereich eines <style>
-Elements auf den DOM-Zweig begrenzen ließ, in dem es selbst eingehängt war. Weil aber zu wenig Browser das Attribut implementiert haben (und vermutlich wegen der Erfindung von Shadow-DOM) wurde es später wieder aus dem HTML-Vokabular entfernt. Es schicken sich nun aber als Ersatz die „Scoped Styles“ in Form der @scope-Rule an, die in Chrome und der Safari Technology Preview schon unterstützt werden. Peter hätte gerne die Möglichkeit, so ein Verhalten by default zu aktivieren – möglicherweise per HTML customized built-ins. Aber die wollte das Webkit-Team nie implementieren und so kann man sie als gescheitert ansehen. Wir schauen uns anschließend noch an, welche Attribute oder Eigenschaften <style>
-Element unterstützen. Peter weiß zu berichten, dass es eine per JavaScript zugängliche Eigenschaft namens .disabled gibt, mit der man einzelne Stylesheets imperativ aktivieren oder deaktivieren kann. Außerdem arbeitet man ganz neu an einem blocking
-Attribut, mit dem man dem Browser z.B. mitteilen kann, dass das Rendern (nicht aber das Parsen) einer Seite so lange ausgesetzt werden soll, bis die mit einem blocking="render"
markierte Ressource geladen ist. Wollen könnte man das im Zusammenspiel mit den neuen Multi-Page-View-Transitions.dy
)dy
-Attribut zu Hauf, um Dinge relativ zur letzten verwendeten Position zu zeichnen. Ein weiteres sehr praktisches Attribut in SVG ist lengthAdjust
, mit dem man Text in die Breite einer Box genau einpassen kann.border-top-style
solid
oder none
. Alle anderen Styles hält er für überflüssig. Peter hält dagegen, dass er gerne die dotted
-Variante nutzt, dem Schepp aber dashed
vorziehen würde. Hans führt die Property zu dem Thema, dass man mit border
-Tricksereien immer Tooltip-Pfeile gebaut hat. Und wenn man einen Tooltip-Schatten möchte, der das Pfeilchen mit umfasst, dann nimmt man statt box-shadow
besser filter: drop-shadow()
, was wiederum nur einen Shortcut für einen SVG-Filter darstellt.center
, als absoluter oder als Prozentwert) und wird z.B. in der CSS-Eigenschaft background-position
verwendet. Zudem lässt sich seit einigen Jahren vor jede Nicht-Keyword-Längenangaben mit einem… Keyword die Ausrichtung bestimmen, von der aus sie arbeitet: bottom 12vmin right -6px
. Schepp weist zudem noch auf die gerne übersehene Tatsache hin, dass die Positionsangaben nicht nur auf die Position in einem Container einwirkt, sondern sie auch den Ankerpunkt in dem zu positionierenden Objekt verschiebt. Andernfalls könnte ein Objekt nicht gleichzeitig bei einem Wert von 0% links, und bei einem Wert von 100% rechts am Container anliegend positioniert werden – siehe absolute Positionierung. Zur Verdeutlichung dessen hat er dieses Codepen erstellt. Wir sind uns außerdem darin einig, dass der Default für background-repeat irgendwie doof ist. Aber das hat ja sogar die CSS Working Group selbst erkannt. Am Ende spannen wir den Bogen nochmal zu SVG zurück, weil das keine Hintergrundbilder kennt, oder sie nicht so unterstützt wie HTML und man z.B. für einen vollflächig eingefärbten Hintergrund ein gefärbtes Rechteck über die gesamte SVG-Canvas ziehen muss. Peter weiß noch zu berichten, dass wenn man dem <body>
-Element ein Hintergrundbild gibt, dieses in aller Regel „nach oben“ ans <html>
-Element promoted wird und es daher auch bei komplett leerer Webseite und in der Höhe kollabiertem <body>
-Element zu einem vollflächigen Hintergrund kommt.url()
-Funktion lässt sich nicht nur eine Bild-URL einbauen, sondern auch Data-URIs. Und welche ist uns da die liebste? Natürlich Inline-SVG! Hans muss plötzlich an altertümliche Internet-Explorer-Hackereien mit der (deprecateten) behavior
-Eigenschaft und CSS3Pie zurückdenken. Und an die Webseite browserhacks.com. Sodann driften wir in eine Diskussion darüber ab, ob Webentwicklung wohl eher früher oder eher heute komplexer war/ist. Schwer zu sagen. Den Faden wieder aufnehmend, verweist Schepp auf ein Blogpost von Stefan Judis, das sich damit befasst, dass man in der url()
-Funktion keine Custom Properties verwenden kann, was daran liegt, dass der Inhalt von url()
einfach nicht eindeutig parsebar ist, was wiederum daran liegt, dass man Inhalte genau so gut mit wie ohne doppelte Anführungszeichen hineinsetzen kann. Ein schöner Spec-Fuckup! Repariert wird das durch die Nachfolger-Funktion src()
, die im Grunde ein Alias von url()
ohne extra Parserregeln ist, die derzeit aber noch in keinem Browser implementiert ist. Dieses Spec-Fuckup entführt uns gedanklich zu den CSS-Pseudoklassen :empty
und :blank
, die ebenfalls nicht ganz zu Ende gedacht waren.Seit nunmehr gut vier Jahren unterstützt uns Autorin, Sprecherin und Radiomoderatorin Sabine bei der Post-Produktion unserer Podcastfolgen. Das hat nicht nur für lang ersehnte Entlastung bei uns Hosts gesorgt, sondern auch die Qualität unseres Audio deutlich nach oben geschraubt. Sabine gibt uns nämlich Tipps für besseres Sprechen und nimmt sich auch immer die Zeit, jede Folge im Detail abzuhören und überflüssige Pausen und „Ähms“ herauszuschneiden.
Dafür von uns tausend Dank an Dich, Sabine!🙏🥰 Und ebenso tausend Dank an Euch Hörer*innen und Sponsor*innen, dass wir durch Euch die notwendigen finanziellen Mittel dafür haben ❤️.
Sabines akribisches Durchhören der Episoden hat außerdem noch einen tollen Nebeneffekt: Wir bekommen am Ende eines jeden Jahres nun immer Outtakes, die sie über das Jahr verteilt sammelt und uns und Euch als Weihnachtsgeschenk zusammenschnürt 🎄🎁. Und die sind immer fantastisch – hört selbst und rutscht anschließend gut!✨
In der jüngsten Ausgabe erörtern Hans und Vanessa das komplexe Thema „Onboarding“. Sie knüpfen an ihre frühere Diskussion (Link siehe unten) über das Einstellen von Webentwickler:innen an und bieten wertvolle Einblicke in die verschiedenen Aspekte und Herausforderungen des Onboarding-Prozesses.
Ein zentraler Punkt ist die Vermittlung von implizitem Wissen, das für die Arbeit mit jeder Codebasis unerlässlich ist. Die Schaffung verständlicher Readme-Dateien und Troubleshooting-Dokumentationen ist dabei ein Schlüssel zum Erfolg. Hans und Vanessa diskutieren auch über die täglichen Routinen und Prozesse wie Git, Ticketing, Code Reviews und Testing, die für die Aufrechterhaltung der Codequalität und eine effektive Teamarbeit entscheidend sind.
Der erste Tag des Onboardings wird als entscheidend für den weiteren Verlauf der Einarbeitung hervorgehoben, ebenso wie die Einführung von Mentor- oder Buddy-Programmen, die neuen Teammitgliedern als Orientierungshilfe dienen. Die Bedeutung regelmäßiger Feedback-Gespräche, insbesondere zur Halbzeit der Probezeit, wird unterstrichen, um den Fortschritt zu bewerten und konstruktives Feedback zu liefern.
Darüber hinaus erläutern sie die Wichtigkeit, den neuen Entwickler:innen eine Übersicht über Karrierepfade im Unternehmen zu geben. Sie diskutieren, wie automatisierte Onboarding-Prozesse dazu beitragen können, die Einarbeitungsphase effizienter zu gestalten. Dabei gehen sie auch darauf ein, wie viel Onboarding verschiedene Personen gebrauchen könnten. Brauchen z.B. Junior Developer mehr Onboarding als Senior Developer? Abschließend wird die Bedeutung hervorgehoben, das eigene Produkt aus der Nutzerperspektive zu verstehen und zu erleben, was ein tiefgreifendes Verständnis für die Arbeit der Entwickler:innen fördert.
Diverse Release-Ankündigungen des Apple-Teams stellten für Peter und Schepp den Anlass, zu schauen, was sich bei Team WebKit so tut. Und das ist eine ganze Menge! Deshalb haben wir es auch nicht in eine Revision quetschen können, sondern sie benötigten derer zwei. Wir stützen uns dabei auf die Release-Notes von Safari 17 und 17.2 Beta sowie den Safari Technology Previews 178, 180 und 181.
document.cookie
für den Zugriff auf selbige, wobei das Setzen von Cookies darüber noch gerade so okay war, aber beim Auslesen alle Cookies zusammen in einem großen zusammengemantschten String herauskamen, den man im Anschluss selber parsen musste. Fehlt nun noch Firefox, auf dass alle Browser die neue API unterstützen. Peter verweist auf einen Edgecase, bei dem Chrome in der alten „API“ document.cookie
jegliche Daten, die nicht UTF-8-formatiert sind stillschweigend fallen lässt. Hier herrscht(e) wohl beim neuen Standard noch Unklarheit, ob man Dinge hier ebenso handhaben möchte, oder nicht. Peter kommt in dme Zuge auf das Intl.Segmenter-Objekt zu sprechen, das für das Arbeiten mit erweiterten Zeichensätzen und auch Emojis gedacht ist, aber leider nicht vom Firefox unterstützt wird.<search>
-Element<search>
-Element dient wie damals das <main>
-Element als syntaktischer Zucker, um eine passende Landmark/ARIA-Role implizit ins Element einzubacken. Dass das sinnvoll ist, belegt eindrucksvoll der Web Almanac 2022, der zeigt, dass passende Elemente viel öfter genutzt werden als die dazugehörigen role
-Attribute.<hr>
s in <select>
s<select>
s erlauben es Safari und Chrome nun, <hr>
s unter die <option>
– und <optgroup>
-Elemente zu mischen. Peter und Schepp testen in dem Zuge, was Browser mit unzulässigen HTML-Elementen in <select>
s machen.font-size-adjust: from-font
hyphenate-character
@counter-style
@counter-style
-Rule lässt sich eine Art visuelles Template für Aufzählungen anlegen, das man anschließend per list-style
-Angabe referenzieren kann. Darüber kommen wir auch auf die ähnlich heißenden CSS Counter zu sprechen, mit denen man in CSS hochzählen und die aktuelle Zahl jeweils ausgeben kann. Wir kommen darauf zu sprechen, dass man CSS Counters und deren counter-reset
-Eigenschaft zusammen mit content
als eine Art Steigbügelhalter zur Ausgabe von numerischen Custom Properties verwenden kann. Außerdem erzählt Schepp von seinem irritierenden Erlebnis bei der Kombination von CSS Countern und contain: style
– jedoch alles Spec-konform! Oder dass es (noch) keine gute Idee ist, ein contain: size
oder contain: strict
mit aspect-ratio
zu kombinieren. Stattdessen nutzt Schepp nun lieber geinlinedte SVG-Platzhalter als eine Art Spacer-GIF 2.0.display: contents
display: contents
behoben sind! Peter findet, dass dieses Feature gut zeigt, wie irgendwas konzeptionell super einfach sein kann, aber in der Implementierung dann das genaue Gegenteil ist. Ein Beispiel ist, was passiert, wenn man display: contents
auf ein sogenanntes „Replaced Element“, also ein Bild oder ein Select anwendet. Die CSS Spezifikation hat deshalb eigenen Block mit Sonderregeln für alle möglichen Elemente, die dort als „Unusual Elements“ geführt werden.scripting
CSS media featuremedia
-Attribute für den Fall verdrahten, dass ein Endgerät keine Scripte versteht oder ausführen kann, via scripting: none
. Neben scripting: enabled
gäbe es darüberhinaus laut Spec noch die Variante scripting: initial-only
, für den Fall dass ein Client nur zu Beginn einmal Scripte ausführt und dann nicht mehr. Allerdings ist diese Definition reichlich unscharf und wird daher noch von keinem Browser unterstützt.image-set()
aktualisiert und Präfix-frei-webkit-image-set()
-Funktion schlummert in WebKit (und auch Chrome) seit mit dem iPhone 4 Retina-Bildschirme das Licht der Welt erblickt haben. Diese ehemals Apple-eigene Erfindung wurde derweil in den CSS-Standard überführt und dabei um einige weitere Fähigkeiten wie File-Format-Angaben erweitert. Safaris Implementation wurde nun entsprechend aktualisiert und in dem Zuge auch gleich von seinem Präfix befreit. Über den Bug-Tracker von Firefox stößt Peter darauf, dass man sich eigene cursor
mit Gradienten bauen kann.sizes="auto"
ausgerüstet werden können.v
-Flagv
-Flag eigentlich ein u für *U*nicode-Support.Node.isEqualNode()
-Methode. Wie diese bei dem Vergleich vorgeht, erfährt man in der HTML-Spec. Schepps Idee, DOM-Nodes für sein Vorhaben zweckzuentfremden bezeichnet er als „kriminell“ 😃Diverse Release-Ankündigungen des Apple-Teams stellten für Peter und Schepp den Anlass, zu schauen, was sich bei Team WebKit so tut. Und das ist eine ganze Menge! Deshalb haben wir es auch nicht in eine Revision quetschen können, sondern sie benötigten derer zwei. Wir stützen uns dabei auf die Release-Notes von Safari 17 und 17.2 Beta sowie den Safari Technology Previews 178, 180 und 181.
with
, das innerhalb von ES Modules eine Umwidmung erfahren hat. Chrome muss neben with
wohl für alle Ewigkeit auch das Alias assert
unterstützen, weil man etwas voreilig mit dem Zurverfügungstellen des Features war. Aus Gründen kommen wir auf das Hochstift Osnabrück – fragt nicht.fetchpriority
-Attribut, das mit den Werten low
, high
und auto
befüttert werden kann. Und das bedeutet, auch in Safari kann man sich mit falsch gewichteten Priority Hints in den Zeh schießen!window.requestIdleCallback()
window.requestIdleCallback()
endlich auch in Safari nutzen! Wir reden darüber, wie sich damit und mit weiteren APIs wie das von Facebook ersonnene navigator.scheduling.isInputPending()
und dem noch hinter Flags und in einem Origin Trial befindlichen scheduler.yield()
der Main-Thread vor Überlastung schützen lässt. Auch kommen wir auf den Compute Pressure Observer, mit dem sich CPU-Auslastung zukünftig messen lässt.modulepreload
ersinnen musste. Der Grund liegt an den sogenannten „Reauest Destinations“.https://
). Sonst klappt der Preconnect nicht!In dieser Revision hat Schepp Henning Koch (Web / Twitter / LinkedIn) aus Augsburg zu Gast, der Mitgründer von Makandra ist, einem Team aus Ruby- und JavaScript-Entwicklern, UI-Designern und Ops-Leuten, die maßgeschneiderte Lösungen für ihre Kunden entwickeln. Thema des Gesprächs ist „HTML over the Wire“. Henning ist zudem der Maintainer von Unpoly, einem Open-Source-Tool, das genau diesen Ansatz verfolgt.
Sodann geht es zu den Vorteilen von „HTML over the Wire“, wie z.B. die Möglichkeit, kleine Fragmente einer Seite auszutauschen, ohne die gesamte Seite neu laden zu müssen, sowie die Möglichkeit, Animationen und non-disruptive Navigationen zu haben, ohne den ganzen heutzutage üblichen clientseitigen Aufwand. Teil des Konzepts ist die Tatsache, dass viel Logik und Datenverarbeitung wieder vom Frontend zum Server zurück wandert, und Frontend-Entwickler*innen sich wieder auf das klassische Frontend und User-Interface konzentrieren können. Es sind keine JSON-API-Endpoints und auch keine clientseitigen Renderer mehr erforderlich, um Daten hin und her zu schicken und in HTML umzuwandeln, was die Last auf den Clients deutlich reduziert. Frontend-Entwickler*innen können zwar weiterhin eigenes Scripting verwenden, wo es sinnvoll ist, aber das Heavy-Lifting wird vom Server übernommen.
Schließlich sprechen wir über die Entstehung von Unpoly und wie es im Rahmen von Hennings Tätigkeit bei Makranda entstanden ist. Bei Makranda machen sie vor allem Greenfield-Projekte und hatten in der Vergangenheit schlechte Erfahrungen mit jQuery-Spaghetti-Haufen und AngularJS gemacht. Das Team wollte eine Lösung, die weniger Code erfordert und die Logik nicht so stark verteilt. Dies führte schließlich zur Entwicklung von Unpoly. Das Framework setzt von seiner Philosophie her stark auf Progressive Enhancement und unterstützt Entwickler*innen dabei, barrierearme Produkte damit umzusetzen. Spannend ist auch das Konzept der „Layers“, mit denen Dinge wie Offcanvas-Menüs, Overlays und Popovers orchestriert werden.
In dieser Revision haben wir Martin Dilger zu Gast, der als selbstständiger Entwickler, Berater und Trainer tätig ist. Mit ihm sprechen wir darüber, wie Entwickler*innen ihre Arbeit effizienter strukturieren und sich kontinuierlich verbessern können.
Und um den Überblick zu behalten, hat er eine Wissensdatenbank in Notion erstellt, in der er sein ganzes Know-how der letzten zehn Jahre gespeichert hat. Über 100.000 Einträge! So hat er beim nächsten Mal oft gleich eine Anleitung, wie es besser geht. Zudem sind da nicht nur seine Aufgaben und Projekte drin, sondern auch interessante Dinge, die er im Netz findet. Eine wahre Goldgrube!
Ein Prozent besser – jede Woche: Die „Ein-Prozent-Methode“ bedeutet, dass wir versuchen, uns jede Woche um ein kleines bisschen zu verbessern. Es ist zwar Arbeit, sich ständig zu fragen: „Was kann ich besser machen?“. Aber es lohnt sich!
Deep Work: Wir alle kennen das – wir versuchen uns auf eine Aufgabe zu konzentrieren und dann… PLING! Eine neue E-Mail. PLING! Ein neues Slack-Nachricht. PLING! Mama ruft an. Martins Lösung? Konzentrieren wir uns auf „Deep Work“. Wir schalten alles aus und tauchen wir tief in unsere Arbeit ein. Und wenn jemand fragt, warum wir nicht sofort antworten? Wir sind einfach zu beschäftigt damit, genial zu sein! :D
Empathie ist für Martin ein super wichtiger Bestandteil erfolgreicher Entwicklerarbeit. Ein guter Softwareentwickler sollte sich in die Lage anderer versetzen können. Und Transparenz? Genau so wichtig! Damit alle im Team und die Kunden immer genau wissen, was los ist. Und natürlich darf auch die Kommunikation nicht zu kurz kommen. Transparente Kommunikation zwischen Teammitgliedern und Entwicklern ist das A und O.
In dieser Revision tauchen wir mit Hans und Vanessa in die spannende Welt des Recruitings ein. Sie teilen ihre Expertise und Erfahrungen über den Prozess des Einstellens von Webentwickler:innen und geben wertvolle Einblicke in die Herausforderungen und Lösungsansätze in diesem Bereich.
Die Diskussion nimmt eine interessante Wendung, als die Vor- und Nachteile der Einstellung von Remote-Entwicklern sowie die Herausforderungen und Chancen der globalen Talentmärkte beleuchtet werden. Das Thema Onboarding und Weiterbildung wird ebenfalls angeschnitten, wobei Strategien erörtert werden, wie Unternehmen neue Webentwickler erfolgreich in ihre Teams integrieren und deren kontinuierliche Entwicklung fördern können.
Ein weiterer kritischer Punkt ist das Erkennen des Bedarfs an neuen Stellen und worauf man bei der Analyse von Lebensläufen achten sollte. Hans und Vanessa teilen ihre Ansichten über den Stellenwert von Cultural Fit im Vergleich zu Technical Fit und diskutieren die unterschiedlichen Ansätze zur technischen Bewertung von Kandidaten, darunter technische Tests, Coding Challenges und Live Coding.
Abschließend beleuchten sie die Wichtigkeit von Diversität und Inklusion in Tech-Teams und besprechen, wie Unternehmen durch gezielte Maßnahmen Inklusion fördern können. Sie schließen mit einer Betrachtung von Probezeiten und der Frage, ob und wie Bezahlung in diesem Kontext gehandhabt werden sollte.
Dieses Jahr wird ein besonderes Jubiläum gefeiert: 10 Jahre Kirby CMS! Gratulation hierzu von unserer Seite 🎉 🎂
Mit unserem Gast und einem der Köpfe hinter Kirby, Bastian Allgeier, werfen wir einen Blick zurück und natürlich auch nach vorne.
Als er über den großen Sprung von Version 2 zu Version 3 spricht, reflektiert Bastian offen über das, was er als den größten Fehler in der Geschichte von Kirby bezeichnet – einen kompletten Rewrite. Dieser ehrgeizige Schritt brachte zwar immense Herausforderungen mit sich, doch gleichzeitig war es eine Erfahrung, die das Team zusammenbrachte und die zukünftige Entwicklung maßgeblich prägte. Mit den daraus gewonnenen Erkenntnissen und dem Feedback der engagierten Kirby-Gemeinschaft verlagerte sich der Fokus weg von revolutionären Updates hin zu einem vorsichtigeren, evolutionären Entwicklungsprozess.
Dem Team spielte in die Karten, dass es nach Version 3 keinen dringenden Bedarf für einen schnellen Release einer weiteren Version gab, weder vonseiten der Entwickler- noch der Nutzerschaft. Diese Freiheit, ohne Druck arbeiten zu können, ermöglichte es dem Team, in aller Ruhe an Features zu arbeiten, die sie und ihre Kunden gleichermaßen begeisterten.
Statt auf Größe und Spektakel zu setzen, strebt das Team nach kontinuierlicher Verbesserung und der Verfeinerung von Kirby, sodass jede Version auf der vorherigen aufbaut und den Nutzern einen echten Mehrwert bietet.
Mit Vorfreude blickt Bastian auf das anstehende zehnjährige Jubiläum von Kirby. Dieser Meilenstein ist nicht nur eine Feier der Vergangenheit, sondern auch eine Gelegenheit, auf eine Zukunft zu blicken, in der Kirby weiterhin die Balance zwischen Benutzerfreundlichkeit und technischer Exzellenz hält.
In der heutigen Folge beschäftigen wir uns mit Tiptap, einem Editor-Framework, das als Open-Source-Software unter der MIT-Lizenz verfügbar ist. Zu Gast haben wir dafür Philip Isik (Web / X (ehemals Twitter)), Miterfinder und Co-Geschäftsführer von Tiptap.
Ein weiteres spannendes Thema in dieser Folge ist das Bezahlmodell von Tiptap. Wir diskutieren, wie man ein Produkt entwickelt, das sowohl kostenfrei als auch kostenpflichtig ist, und wie man die richtige Balance zwischen kostenlosen und kostenpflichtigen Features findet. Es wird erörtert, wie man mit Nice-to-have-Features umgeht und wie man diese in ein Bezahlmodell integrieren kann.
Als Besonderes Extra für unsere Hörer:innen versprechen wir eine Folge-Episode mit tiefgehenden technischen Details. Schreibt‘ uns all deine Fragen an [email protected] oder im Working Draft Community Slack. Wir freuen uns auf deine Fragen!
Die alljährliche CSS-Umfrage „State of CSS“ hat ihre 2023er-Ergebnisse veröffentlicht, und wie es sich für einen anständigen Frontend-Podcast gehört, tun auch wir unsere Gedanken dazu kund. Schepp und Peter führen in diesem zweiten Teil zu Ende, was sie zwei Wochen zuvor mit Vanessa begonnen haben.
color()
-Functioncolor()
-Function soll in Zukunft all die einzelnen Farbräumen und Farbraummodellen gewidmeten CSS-Funktionen wie rgb()
oder hsl()
ersetzen. Denn es drängen immer mehr Farbräume, und in deren Windschatten auch immer mehr Farbraummodelle für den Zugriff darauf in unsere Browser: Display p3, LAB, LCH, okLAB und okLCH.accent-color
accent-color
ist ein sehr billiges und nicht störendes Werkzeug, um analog zu typografischen Anpassungen Interfaces gleich ein bisschen netter zu machen. Es scheinen nur nicht ganz so viele Umfrageteilnehmer zu kennen.:snapped
-Pseudoklasse oder neuen Snap-Events ansteht. Adam Argyle, der daran federführend arbeitet, hat auf dem CSS Day 2022 einen tollen Vortrag mit sehr beeindruckenden Demos über den Themenkomplex gehalten.
Wir erwähnen außerdem lobend die Eigenschaft overscroll-behavior, die sogenanntes „Scroll-Chaining“ verhindert, also dass wenn man z.B. ein Overlay bis zum Schluss gescrollt hat und man dann weiterscrollt, das Dokument dahinter auf einmal anfängt zu scrollen. Außerdem lässt sich damit verhindern, dass beim Scrollen ungewollt ein Gesten-Shortcut des Browsers aufgelöst wird.
scrollbar-gutter
scrollbar-gutter
könnt Ihr bei fehlenden Scrollbars Platz für ein späteres Erscheinen dieser freihalten. Sinnvoll ist das bei SPA und MPAs, bei denen man zwischen Ansichten hin und her navigiert, die mal viel Inhalt und mal wenig Inhalt haben. Das Auftauchen und Verschwinden der Scrollbars führt dann zu einem Springen der Inhalte, was ihr eben mit scrollbar-gutter
verhindern könnt.text-wrap
text-wrap: balance
lässt sich festlegen, dass wenn Text umgebrochen wird, er gleich so umgebrochen wird, dass sich zwischen beiden Zeilen eine ausgewogene Zeilenlänge ergibt. Es werden also mehrere Wörter in die nächste Zeile genommen und nicht nur das eine, das die Zeilenlänge gesprengt hat. Dieses Setting ist gut für Überschriften geeignet, auch weil es aus Performancegründen nur bis zu einer Zeilenzahl von drei Zeilen unterstützt wird. Neu hinzu kommt text-wrap: pretty
, das in Fließtexten verhindert, dass ein einzelnes Wort alleine in der letzten Zeile steht („orphan“). Weil Text-Layout so unglaublich Komplex ist, verweisen wir nochmal auf die unglaublich interessante Igalia Chats Episode „First Person Scrollers“.:focus-visible
:focus-visible
-Pseudoklasse bietet Euch dei Möglichkeit, Fokus-Outlines, auch Focus-Rings genannt, nur dann sichtbar werden zu lassen, wenn jemand die Seite mit einem Eingabegerät bedient, das diese erforderlich macht. Anders als die meisten Steak-Halter von Webprojekten draußen in der Welt, findet Peter diese Fokus-Anzeige super hilfreich.@property
und das finden wir sehr praktisch, auch wenn Peter sich daran stört, dass Firefox es immer noch nicht freigeschaltet hat. Da es aber Teil des InterOp 2023 Projektes ist, müsste es eigentlich bis Ende diesen Jahres shippen.@scope
geht es zu @layer
. Allerdings nicht ohne einen erneuten Abschweifer, diesmal über SASS‘ @extend– und CSS-Kompressoren-Fallstricke. Beide haben mit @layer
allerdings wenig am Hut. Mit @layer
lässt das eigene CSS in verschieden „Starke“ Gruppen einteilen, was es ermöglicht, einer Library Default-Styles mitzugeben, die dessen Anwender ohne Spezifitätsverrenkungen verändern können. Peter sieht es auch als hilfreiches Werkzeug, um Legacy-CSS nach und nach auf einen modernen Stand zu bringen. Allerdings würden wir beide von einem breiten Einsatz eher abraten, denn anders als bei manch anderer Neuerung in CSS, lässt ein Einsatz von @layer
alte Browser Schiffbruch erleiden. Ähnlich wie es beim CSS Nesting auch der Fall ist.:has()
und Container Queries, was zusammen mit dem in der Liste auftauchenden @property
auf eine gewisse Problembärigkeit des Firefox‘ hinweist.
Insgesamt kommen wir aber beide zu dem Schluss, dass wir mit den aktuellen Möglichkeiten von CSS und den Browsern sehr sehr sehr zufrieden sind! Und oftmals ist es ja auch so, dass man manches Vorhaben vielleicht auch ohne direkten Weg durch Missbrauch anderer, schon vorhandener CSS Features erreichen kann. Schepp fällt da zum Beispiel Roman Komarov ein, der mit CSS Scroll Driven Animations als Steigbügelhalter zahlreiche seiner CSS-Wünsche erfüllen konnte. Wir loben außerdem die tolle Spec-Arbeit der CSS Working Group und auch die große Menge Tests, die in den letzten 10 Jahren für all diese Features geschrieben wurden. Und weil guter Dinge drei sind, empfiehlt Schepp nochmal eine Igalia Chats Episode, nämlich die Folge „The Novel Engines: Ladybird„, in der Andreas Kling darüber berichtet wie er eine komplett neue Browser-Engine geschrieben hat und die Specs und Tests als Grund nennt, wie er das geschafft hat.
Good times ahead!
Die Rückkehr der HTML-Ritter sieht Luke Scheppwalker und seinen Ewok Peter die letzten interessanten Teile der State of HTML Pre-Umfrage besprechen.
rel="prerender"
und anderen Resource Hints, Speculation Rules, Fetch Priority und wann wir als Entwickler:innen überhaupt diese Mittel der Performanceoptimierung zücken sollten.<track>
-Element<track>
herum, die nichts mit WebVTT zu tun haben. Schepp bemängelt, dass das Element nicht zum Darstellen von Podcast-Transkriptionen taugt, da <audio>
zu den permanent komplett unsichtbaren Elementen zählt.<detailsgroup>
-Element. Das Original-Proposal mit Verhalten wie Radio Buttons hat es auch beim HTML-Standard schwer.Die alljährliche CSS-Umfrage „State of CSS“ hat ihre 2023er-Ergebnisse veröffentlicht! Vanessa, Schepp und Peter freuen sich nicht nur darüber, dass Working Draft erneut an der Abstimmung über den besten CSS-Podcast der Milchstraße teilnehmen durfte, sondern auch darüber, dass die Umfrage Anlass bietet, mal wieder ausgiebig über diverse CSS-Themen zu plaudern.
content-visibility
und seinem Event-Kollegen contentvisibilityautostatechange
kommen wir auf CSS-Footguns und -Entäuschungen wie will-change
(ist doof), vertical-align
(ist eine Tabellenzellen-Only-Diva) und andere Fehlgriffe wie das Casing von currentColor
zu sprechen.:has()
-Selektor und eben Container Queries eher sparsam zu verwenden. Schepp berichtet außerdem von der Mootoolisierung eines Teil-Aspekts von :has()
, was ein Nachjustieren der Spezifikationen nötig machte.env()
und dem im Orkus verschwundenen overflow: overlay
.min-content
haben, wird schnell ersichtlich.Professionell wie eh und je kamen Schepp und Peter nicht mal in die Nähe des eigentlich vorgesehenen Themas, und quasselten stattdessen über etwas ganz anderes.
Das HTML-Imperium in Person von Darth Peter und Imperator Scheppertine schlägt zurück und bespricht weiter die Themen-Sammlung zum nun erschienenen State of HTML.
tabindex
-Attributtabindex
-Attribut zu benutzen ist riskant, was uns bessere Alternativen erbrainstormen und Details der Funktionsweise der Tab-Reihenfolge (inkl. dem episch benannten Focus Navigation Scope Owner) ergooglen lässt. Vielleicht kann das tabindex
-Attribut ja durch Declarative Shadow DOM wieder zum Leben erweckt werden?part
-Attributplaintext
-Wert für contenteditable
is
-Attributis
-Attribut eigentlich aussehen würden (nicht gut).crossorigin
-Attributcrossorigin
und rel=preload
brauchen.gap
-Property mit @supports
.Es gibt nun ein State of HTML 2023 (passend zu State of JS und State of CSS, bitte mitmachen), für den zuvor auf GitHub Input gesammelt wurde. Schepp und Peter haben sich die Mitte August für die Umfrage zur Diskussion stehenden HTML-Features reingezogen und vergessen, dabei die Mikrofone auszuschalten.
<dialog>
<dialog>
kommen wir auf den Uber-Stacking-Context namens Top Layer zu sprechen, sowie darauf, dass bei ::background
keine CSS-Variablen funktionieren.inert
-Attributinert
mit dem vergleichbaren, aber flexibleren CSS-Feature visibility
.<breadcrumb>
<template>
attachInternals
Custom Form-Elemente entwickeln könnten!showPicker()
, <portal>
, View Transitions, blocking="render"
und Mozilla allgemein.In dieser Revision erzählt Bernd Kaiser (LinkedIn), Software Developer bei inovex, über Solid.js und dessen Meta-Framework SolidStart.
In dieser Podcast-Folge drehte sich alles um das Thema Cross-Plattform Frontend-Entwicklung mit Rust. Unser Gast, Benedikt Terhechte (Mastodon, Twitter, und seine Webseite) teilte seine Erfahrungen und Erkenntnisse zu diesem Thema.
Auch haben wir über die Definition einer „nativen“ App diskutiert
Ein interessanter Punkt war die Erwähnung von Tauri, einer Electron-Alternative, die den WebView des Systems verwendet und daher auch die Unterstützung von Android und iOS in der Version 2.0 plant. Ein weiteres Thema war Dioxus, eine React-ähnliche Bibliothek für Rust.
Benedikt erklärte, dass es eine Vielzahl von WASM-Frontend-Bibliotheken für Rust gibt, die sich an verschiedenen Frameworks wie React, Solid JS und anderen orientieren. Er nannte Beispiele wie Yew (ähnlich React), Leptos (ähnlich SolidJS), Perseus und Sycamore (SvelteKit). Zusätzlich gibt es Bibliotheken wie Xilem, Egui und Iced, die darauf abzielen, plattformübergreifende UI-Bibliotheken für mobile, Desktop- und Webanwendungen zu entwickeln.
Und es geht weiter in unserer host-context()
-Reihe und diesmal steht Stefan im Fokus! Und in die Interviewer-Rolle schlüpft erneut Vanessa.
Stefan erzählt von seiner Rolle als Co-Moderator bei Working Draft und wie er vor zehn Jahren Teil des Teams wurde. Die beiden diskutieren über Filme und Bücher, wobei Stefan Sergio Leone als einen seiner Lieblingsregisseure nennt und „Once Upon a Time in America“ sowie „Spiel mir das Lied vom Tod“ empfiehlt. In Bezug auf Bücher erwähnt er „TypeScript in 50 Lessons„. Wer das wohl geschrieben hat? Trotz dieses kleinen Scherzes am Rande, lernen wir Stefan nochmal von seiner sehr bescheidenen Art kennen, wenn es um die Beleuchtung seiner Arbeit gerade im Bereich Bücher, Konferenzen und generelles Expertenwissen geht.
Das Gespräch dreht sich auch um persönliche Vorlieben. Stefan erklärt, dass er keine Haustiere hat und sich lieber in den Bergen als am Strand aufhält. Er bevorzugt das Bergwandern und hat in der Vergangenheit schon richtig lange Wanderungen unternommen. Stefan ist leidenschaftlicher Koch, ist ein Bier-Aficionado und kann auch auf zwei Jahre Taekwondo-Erfahrung zurückblicken.
Wie immer dient die neue TypeScript-Version den Herren Baumgartner und Kröner als billige Ausrede, um über Gott und die Welt zu quasseln
using
Declarations and Explicit Resource ManagementIn dieser Revision geht es zur Abwechselung Mal wieder um ein „softes“ Thema, nämlich um gewaltfreie Kommunikation (GfK). Dazu begrüßen wir unseren Gast Gabriel Birke, der bei der Wikimedia Deutschland arbeitet und der über die Idee hinter, und seine Erfahrungen mit GFK spricht.
Weiter geht es mit der Reihe host-context()! In dieser Revision gibt uns Hans (Webseite), langjähriges Mitglied des Working Draft Podcasts, einen Einblick in seinen Arbeitsalltag und erzählt uns, welchen Sport er am liebsten anschaut.
Weiter geht es mit unserer Reihe host-context()! In dieser Ausgabe rückt Schepp in den Fokus und Vanessa fragt ihn aus.
Wir starten in die neue Reihe des host-context()! Den Start macht Hans, der Vanessa Fragen zu Arbeit und Alltag stellt. Viel Spaß mit host-context(„Vanessa“);
In dieser Episode diskutieren Vanessa und Stefan mit ihrem Gast Bernhard Mayr (Twitter) über das Thema Qwik.
Vanessa gibt zu, dass er das Thema bisher ignoriert hat, aber nachdem er einen Qwik-Kurs bei Frontend Masters belegt hat, hat sie daran Interesse gewonnen. Auch die anderen beachteten das Frameworks anfangs noch nicht. Aber durch ein Treffen mit Miško Hevery, CTO von builder.io und Erfinder von Angular, auf Qwik wurden sie aufmerksam. Zu dritt diskutieren über die Funktionsweise von Qwik und die Richtung, in die sich das Web entwickelt. Dabei gehen die Hosts auf Begriffe wie „Resumability“ ein, und diskutieren über die Geschwindigkeitsvorteile von Qwik. Alle versuchen, den Unterschied zwischen Resumability und Hydration zu erklären, stellen jedoch fest, dass es schwierig ist, es genau zu beschreiben.
In dieser Episode diskutieren die Gastgeber Vanessa, Schepp und ihre Gästin Franziska Gerz (LinkedIn) über die Verbindung zwischen Frontend-Entwicklung und Design. Franziska ist Softwareentwicklerin bei Whiskey Tango Foxtrot GmbH und teilt ihre Erfahrungen als ehemalige Mediengestalterin, die sich zur Webentwicklerin weiterentwickelt hat und nun auch Führungsaufgaben übernimmt.
Schepp, Hans, und Peter ließen mal wieder das Glücksrad kreisen!
border-radius
).Traditionelles Glücksrad mit Schepp und Peter!
mask-border
und grenzen es im Ad-hoc-Verfahren von border-image ab.attr()
erfährt eine ausgiebige Würdigung. Spekulationen über bei CSS zusammenarbeitende Browser-Interna führen dazu, dass Peter noch eine Runde über seinen liebsten Firefox-Bug weint.Mit Verstärkung in Form von Bernhard Mayr (Mastodon, Twitter) versuchen Stefan und Peter zu ergründen, was es mit dem Signals-Hype auf sich hat.
Neue TypeScript-Version, Stefan und Peter, Abschweifen. Ihr kennt das Spiel.
void
(nicht zu verwechseln mit void
, siehe Stefans Artikel zum Thema) und undefined
, was wir begrüßen. Ebenfalls aufgeweicht werden die Anforderungen an die Typen von Getter and Setter-Signaturen, v.a. um Legacy-Use-Cases rund um Stylesheets (jenseits von Constructable Stylesheets) zu bedienen. Anlässlich diverser Anpassungen der JSX-Typen (u.a. für mögliche zukünftige Promise-Komponenten in React) waschen wir ein wenig React-Schmutzwäsche und feiern und besprechen die Genese des Dynatrace App Toolkit. Da uns zu den weiteren Kleinigkeiten nicht ganz so viel einfällt, verlegen wir uns zum Ende hin auf Werbung! Peter empfiehlt eine VS-Code-Extension für schönere TypeScript-Fehlermeldungen und hat einen Text zu unknown-Overloads geschrieben, wohingegen Stefan gleich ein ganzes zweites Buch zu TypeScript zur Papier gebracht hat.In dieser Revision sprechen Hans und Vanessa (Working Draft Host | Frontend Lead bei zavvy.io) über dein Einbau von KI in die Website. Es werden verschiedene Aspekte der Integration von künstlicher Intelligenz (KI) diskutiert, insbesondere im Hinblick auf die Herausforderungen und Lösungen, die bei diesem Prozess auftreten können.
Während des Integrationsprozesses stellte sich das sogenannte Prompt Engineering als eine neue Herausforderung dar. Vanessa konzentrierte sich hierbei hauptsächlich auf das Frontend, um die richtigen Endpunkte im Backend aufzurufen und die nachfolgenden Aktionen wie das Auswechseln oder Hinzufügen von Texten zu verbinden. Eine wichtige Überlegung war dabei, dass bei manchen Anfragen Texte komplett ausgetauscht werden mussten, während sie bei anderen Anfragen an den bestehenden Text angehängt werden mussten.
Ein großer Bestandteil des Integrationsprozesses war auch das Feedback-Management, welches einen wichtigen Beitrag zur kontinuierlichen Verbesserung des Modells geleistet hat. Durch das Feedback konnte das Modell regelmäßig trainiert und optimiert werden, was zu einer verbesserten Genauigkeit und Effektivität der KI-Komponente führte.
In dieser Revision des Working Draft Podcasts dürfen wir Matthias Endler (Web / GitHub / Twitter / Mastodon) als Gast begrüßen, der sich als selbständiger Softwareentwickler und Consultant, hauptsächlich in der Programmiersprache Rust verdingt. Ursprünglich aus Bayern, hat Matthias Informatik in Bayreuth studiert und arbeitete ab 2014 für Trivago in Düsseldorf. Er hat viele Erfahrungen mit Backend-Entwicklung, insbesondere mit Elastic Search, Containern und Cloud-Technologien. Er ist Mitbetreiber der Plattform „Open Podcast„, Autor einer Video-Serie namens „Hello, Rust!“ und Erfinder der GitHub „codeprints„.
Anlässlich des Abschlusses seiner Blogpost-Serie „100 Days Of More Or Less Modern CSS„, luden wir Manuel Matuzović, Frontend-Entwickler und Accessibility-Experte aus Graz (Web / Mastodon), in unseren Podcast ein, um zunächst über seine Motivation zu dieser Serie und schließlich auch über die spannendsten seiner gewonnenen Erkenntnisse in Sachen CSS zu sprechen. Manuel war zuvor schon einmal zum Thema HTML-Crafting bei uns zu Gast.
Ein harmloser Trollversuch auf Mastodon endet in einer stundenlangen Grundsatzdebatte zwischen Stefan und Peter.
Gast Nils Röhrig berichtet über seine Erfahrungen mit Edge Computing mit SvelteKit und Cloudflare Pages. Er spricht über Edge Computing und seine Auswirkungen auf die Webentwicklung. Im Detail wird er sich zusammen mit Vanessa mit SvelteKit und Cloudflare Pages befassen.
In dieser Revision hatten wir das Vergnügen, mit Marvin Hagemeister (Web / Twitter / Mastodon) über JavaScript-Tooling und seine Erfahrungen auf diesem Gebiet zu sprechen. Marvin ist Entwickler bei Shopify vor allem durch seine Arbeit im Open-Source-Bereich bekannt, insbesondere bei Preact, einem React-ähnlichen Framework. Er erzählte uns, dass er sich immer mehr für das gesamte JavaScript-Ökosystem und Tooling interessiert, was ihn entsprechend dazu gebracht hat, eine Blogpost-Serie zu dem Thema zu schreiben. Und genau darüber wollten auch wir mit ihm sprechen.
Aktuell gibt es viele neue Tools, die in schnelleren Programmiersprachen wie Rust oder Go entwickelt werden, um die Leistung zu verbessern. Schnelle Tools halten wir für essenziell, da Langsamkeit den Arbeitsfluss und die Produktivität beeinträchtigen kann. Marvin sprach auch über seine persönlichen Erfahrungen mit schnellen Testframeworks und das er sich fragte, warum bestehende Tools nicht genau so schnell sind. Wir diskutierten die Größe von Projekten und wie viel die Programmiersprache zur Leistung beiträgt.
Ein weiterer Schwerpunkt unseres Gesprächs war der Wandel im JavaScript-Tooling-Universum. Bestehende Tools werden neu gedacht und oft in anderen Programmiersprachen als JavaScript entwickelt. Beispiele dafür sind der Nachfolger von Webpack, TurboPack, und ES-Build, die in Rust bzw. Go geschrieben sind. Zusammen mit Marvin haben wir über die Auswirkungen dieser Entwicklungen auf das gesamte JavaScript-Ökosystem und die Industrie gesprochen und sinniert.
Diese Woche war Marc Thiele mal wieder bei uns zu Gast und wir sprechen über Konferenzorganisation.
Peter und Schepp durften Thomas Steiner (DevRel bei Google, online zu finden im Web, auf Github, auf Twitter und im Fediverse) zu den neusten Neuheiten aus dem Wirkungskreis von Project Fugu ausquetschen, nachdem Working Draft zuletzt in der Revision 399 darüber berichtete. Es hat sich einiges getan!
Und wieder haben wir eine Gästin zu Besuch – diesmal ist es Svenja aus Marburg. Svenja ist Webentwicklerin mit Schwerpunkt Accessibility bei Accenture Song, Bloggerin, und Ihr findet Sie als @SvenjaDev auf Twitter und als @[email protected] auf Mastodon.
In unserem Interview mit ihr sprachen wir über ihren Weg in den Beruf. Wir wollen von ihr wissen, wie sie das Programmieren angeht und welche Coding-Umgebung dafür aus ihrer Sicht gut geeignet ist. Es stellt sich heraus, dass dies Microsofts Visual Studio Code ist.
Natürlich wollen wir auch wissen, was aus ihrer Sicht ein gute gecodete Webseite ausmacht und welche Dinge vielleicht gar nicht so wichtig sind, die wir Sehende möglicherweise überbewerten.
Wir fragen sie, ob eine Webseite möglicherweise auch zu semantisch sein kann, wie es einmal in einem Vortrag von Vasilis van Gemert durchklang.
Schließlich lenken unser Augenmerk auch auf die Barrierefreiheit von Single-Page-Applications. Hier schlagen wir den Bogen zurück zu Visual Studio Code, das ein Paradebeispiel einer mit Webtechnologie umgesetzten App darstellt. In der Regel sind native Apps den Web-basierten Apps aber überlegen.
In dieser Revision besprechen wir Organisationsstrukturen. Dabei haben wir einen Fokus auf UnFIX, ein Organisationsdesign, worüber uns Milan Matull, Managing Partner bei Factorial, viel zu erzählen hat. Milan war bereits Gast beim Working Draft in Revision 464 zum Thema TailwindCSS 2.0 und in Revision 516 zum Thema TailwindCSS 3.0.
Nach einer Pause nehmen Stefan und Peter wieder das allquartalige Besprechen der neuesten TypeScript-Version auf. Und möglicherweise gibt es noch andere semi-relevante Themen wie React-Beef, Klassenkampf und PHP.
export type *
. Die in 5.0 anstehenden Änderungen an Enums sind auch nicht schlecht, Enums selbst hingegen schon.Hans, Schepp und Peter spielen Glücksrad!
<i>
. Wir philosophieren darüber, welche Elemente die Bold- und Italic-Buttons in einem WYSIWYG-Editor ins Dokument setzen wollen und streifen dabei Use Cases für<dl>
, <mark>
, <kbd>
und <xmp>
. Für letzteres ermittelt Peter sogar per Live-Recherche die Namensherkunft (xmp für „Example“ laut HTML 2.0).Nachdem Vanessa und Hans sich vor zwölf Wochen in der Revision 546 über Ihre Wege in den Beruf ausgetauscht haben, nämlich einerseits das Studium, andererseits das „zufällige Hineinschlittern“ nach dem Abitur, meldeten sich Stefan Macke (Twitter / IT-Berufe-Podcast) und Marcel Koch (Twitter / Mastodon / Web) bei uns, weil wir weder Ausbildung, noch duales Studium als mögliche Wege in den Beruf beleuchtet haben. Das lag aber schlicht daran, dass wir von beidem keine Ahnung haben, und so haben wir die beiden als Experten eingeladen und das Ganze nachgeholt.
In den dualen Ausbildungen lernt man praktisch und gegen Bezahlung in einem Betrieb und flankiert wird das durch eine schulische Ausbildung entweder in einer Hoch- oder Berufsschule. Letzteres wäre das, was man unter einer dualen Ausbildung versteht. Insgesamt führt die Ausbildung seit 2020 zu sieben möglichen Ausbildungsberufen:
Die IT-Ausbildungsberufe sind unter Männern die zweibeliebteste Gattung, unter Frauen sehen sie allerdings erst an Platz zehn.
Diese duale Ausbildung dauert üblicherweise 3 Jahre, wird meist auf 2,5 Jahre verkürzt, kann im Extremfall aber auch auf 1,5 Jahre halbiert werden. Eine Abschlussprüfung findet anders als man denken würde nicht erst am Ende der Ausbildung statt. Stattdessen gibt es eine über die Gesamtzeit „gestreckte Abschlussprüfung“, deren erster Teil nach 18 Monaten für alle sieben Ausbildungsberufe identisch abgelegt wird. Die Ausbildung beginnt damit breit gefächert und erst danach geht es tief in die Spezialisierung. Ganz zum Schluss der Ausbildung kommt das Abschlussprojekt, eine Art „Gesellenstück“ an dem man zwischen 40 und 80 Stunden arbeitet, sowie die Präsentation desselben, einem 15 minütigen Fachgespräch darüber und einer schriftliche Dokumentation, die zwischen 30 und 60 Seiten zählt.
Ausbildungen bringen einem aus Stefans Sicht mehr Praxiswissen und sie sind anerkannt und sehr gefragt.
Entscheidend für den Erfolg ist, dass man einen Betrieb findet, der einen anständig an die Hand nimmt und ausbildet und für den man nicht nur eine billige Arbeitskraft ist. Hier muss man ganz zu Beginn gut drauf schauen, wo man gelandet ist und ob es eine gute Idee ist, die gesamte Ausbildung im Betrieb zu bleiben.
Ein Studium ist dahingehend akademischer angelegt. Im dualen Studium arbeitet man aber ebenso praktisch in einem Betrieb, welcher nicht nur die Studiengebühren von 25.000 EUR übernimmt, sondern einem auch ein Gehalt von 1.200 EUR brutto zahlt. Im Gegenzug bindet man sich nach Abschluss des Studiums für anderthalb bis zwei Jahre an den Betrieb – oft will man tatsächlich aber auch gar nicht weg.
Insgesamt können wir festhalten, dass sowohl Marcel als auch Stefan den Weg einer Ausbildung oder eines dualen Studiums sehr empfehlen können.
Schepp und Peter nahmen die Veröffentlichung der Safari Technology Previews 161 und 162 zum Anlass, die dort frisch implementierten Features zu diskutieren und zu kommentieren.
prefers-reduced-motion
und prefers-contrast
(die in den Previews nicht neu sind, aber jetzt besser debugged werden können). Wir diskutieren die Hürden im praktischen Einsatz dieser Features (sowie von prefers-color-scheme
) und erinnern an Hotdog Stand. Die Unterstützung von @property
fehlt nach den neuesten Safari-Updates nun nur noch in Firefox, aber insgesamt sieht es für das CSS Typed OM und das Houdini-Projekt eher nicht so glänzend aus (Working Draft berichtete bereits). Über Fragen des Umgangs mit immer komplexerem CSS kommen wir zum Thema Selektor-Performance von :has()
, die sich mit dem Profi-Profiling-Tool von Chrome messen lässt. Die Unterstützung von :user-invalid
und :user-valid
feiern wir marginal enthusiastischer als die von Lookbehind Assertions in Regulären Ausdrücken und wir nehmen die (beinahe) bestehende Existenz des ResizableArrayBuffer zur Kenntnis. Safari wird nun als letzter fehlender Browser Unterstützung für OffscreenCanvas bekommen, was Peter dazu bringt, seine jüngsten Abenteuer rund um willReadFrequently
nochmal wiederzugeben. Zum Ende hin quatschen wir noch über margin-trim
, CSS Subgrids, Declarative Shadow DOM, E4X, HTMLElement.attachInternals()
bzw. Form-associated custom elements, globale Event Handler und die Zukunft von Safari und der ganzen weiten Browserwelt.Über Domain-Driven Design (DDD) sprechen Hans und Vanessa mit dem Gast Florian Benz, VP of Engineering bei Scalable Capital. Florian beleuchtet dabei vor Allem dir Umsetzung samt Stolpersteinen in der Realität.
Chat GPT ist in aller Munde, was Vanessa und (besonders) Hans und Peter zu einer lebhaften Diskussion rund um AI und ML speziell im Webdev-Kontext verleitet.
Diese Revision traf eine rekordverdächtigen Anzahl Gäste und Hosts aufeinander: Vanessa, Stefan und Schepp begrüßten Joe Ray Gregory, David Müllerchen und Robin Böhm an ihrem virtuellen Kaminfeuer.
Joe aus Hamburg kennt Ihr aus den Revisionen Revision 520: Unit-Testing / Testing Library und Revision 552: Frontend Development im Jahr 2023.
Robin aus Berlin (Twitter / Web) wird nur langjährigen Hörer*innen von seinem Besuch vor 10 Jahren aus Revision 130: AngularJS – Superheroic JavaScript MVW Framework ein Begriff sein.
David Müllerchen (Twitter / Web), ebenfalls aus Hamburg, bildete den Dritten im Bunde.
Alle unsere Gäste sind Webentwickler, Berater, Trainer, Meetup-Organisatoren und David sogar Twitcher. Die einen präferieren Angular, der andere eher Vue.js. Aber vor allem haben sie alle drei Vorerfahrung im Konferenzorganisieren und haben sich zuletzt für eine große Community-Konferenz zusammengetan. Wie das kam und welchen Hürden die drei und ihr Team auf dem Weg dahin zu überwinden hatten, darüber reden wir in dieser Ausgabe!
Die eigentliche Konferenz-Organisation und die Sprecherauswahl baute auf lange erarbeitete Blaupausen der JSConf.EU, ergänzt um Tipps anderer Organisatoren wie denjenigen der JSUnconf, der RuhrJS oder des JSKongress‘. Für die Auswahl der Vorträge hieß das, dass man einen „Call for Papers“ ausgerufen hatte und die eintrudelnden Vorträge anonymisiert und in einen „Blind-Voting“-Prozess überführt wurden.
Neben der aufwendigen Sprecher*innen-Auswahl musste natürlich ein Budget geplant und Ticketpreise davon abgeleitet werden. Es mussten Sprecherreisen und -unterkünfte organisiert und gebucht werden. Es galt, eine Location für die Abendveranstaltung zu finden, Webseiten zu bauen, Promomaterial herzustellen, Werbung zu machen.
Und das Team legte auch viel Wert darauf, verantwortungsvoll auf die Situation mit der Pandemie einzugehen und Masken und Tests anzubieten, Systeme zu entwickeln wie Menschenansammlungen vermieden werden konnten, und Besucher*innen die Möglichkeit zu geben, zu signalisieren wenn Sie lieber mit Maskentragenden Gespräche führen wollten.
Nachdem all das auf Spur war, wurde es auf den letzten Metern doch noch „spannend“, denn es stellte sich heraus, dass zeitgleich eine große Messe in Berlin angesetzt war, die die Preise der Unterkünfte hat in die Höhe schnellen lassen, bis hin zu dem Punkt wo Teilnehmende es sich nicht mehr hätten leisten können. Auch hier zog die Location, aber auch die Community mit und das Event wurde kurzerhand um wenige Tage verlegt.
Am Ende wurden NG DE 2022 und vuejs.de Conf Gott sei Dank erneut ein großer Erfolg und hat sich all die Mühe und das Zittern gelohnt. 🥳
Nachdem sich Vanessa und Peter in ihrem ersten Anlauf noch um ein strukturiertes Abarbeiten des Fragenkatalogs der 2022er State of JS-Umfrage bemüht hatten, ergehen wir uns dieses Mal in eher freier Assoziation, schaffen es dabei aber auch, die verbleibenden 98% der Umfrage in einer Revision abzufertigen.
<dialog>
und <details>
, die View Transition API und generell alles aus der Revision 552 zu Frontend Development im Jahr 2023.Zum Jahreswechsel haben wir uns mit Joe Ray Gregory (@joyraygregory) hingesetzt und zusammen darüber orakelt, welche neuen Tools und Paradigmen die Frontend Entwicklung im Jahr 2023 prägen könnten. Joe ist Frontend-Entwickler und Trainer aus Hamburg und Ihr kennt ihn vielleicht aus der Revision 520 über Unit-Testing.
Außerdem werden sich Web Components als Auslieferungsform weiter etablieren.
Für eine bessere Performance wird alles weiter in Richtung „Actor Model“ entwickelt, also dass ein Main-Thread möglichst viel Arbeit in separate Threads auslagert (höre auch Revision 329 zum Actor Model). Eine Schlüsselrolle wird das Tool Partytown spielen.
Als Unterstützung bei der Entwicklung werden Mikro-Bibliotheken aus dem UnJS-Pool große gebräuchliche Bibliotheken wie Axios oder auch Lodash ersetzen.
Im Testing wird Playwright seinen Marktanteil weiterausbauen.
Für die Komponenten-basierte Entwicklung wird Storybook zwar das Goto-Werkzeug bleiben, aber daneben wird sich Histoire aus dem Vue-Umfeld ähnlich etablieren können wie zuvor auch schon Vite.
In Sachen Bundler und Build-Tools kommt allerlei Neues auf uns zu: Turbopack wird der Nachfolger von Webpack und dann gibt es vom Erfinder von Babel noch eine ganze Build-Suite namens Rome, die Code-Formattier, Code-Linter, Com- & Transpiler, Bundler, sowie das Testing-Tool aus einer Hand sein will. Beiden ist gemeinsam, dass sie aus Performance-Gründen auf Rust bauen, was derzeit auch im Trend zu sein scheint und von SWC, Parcels Lightning CSS und esbuild (allerdings in Go) vorexerziert wurde. Darüber, ob das immer nötig ist oder ob ein wenig Nacharbeit an JavaScript-Code nicht der erste Zwischenstopp sein müsste, fragt sich da Marvin Hagemeister.
Aus dem CSS-Bereich kommend werden die Container Queries ganz viel neue Möglichkeiten eröffnen, sobald diese in allen Browsern freigeschaltet sind.
Monorepos werden ein Thema werden, dank exzellentem Tool-Support durch pnpm, Turborepo oder Lerna (das allerdings nicht mehr maintained wird).
Und schließlich schauen wir auch gespannt darauf, was der NodeJS- und Deno-Konkurrent Bun, dessen JavaScript-Engine nicht auf Googles V8, sondern auf Apple JavaScriptCore bsisert, zukünftig in die Waagschalde werfen wird.
Mit Gast Alexander Neumann (Github), seines Zeichens Entwickler der FOSS-Backup-Software Restic quatschen wir über Backups, Backup-Strategien und Backup-Fails.
Diese Folge haben wir Principal Frontend Architect Lisi Linhardt, welche schon einmal bei uns zu Gast war, damals jedoch in einer anderen Rolle. Mittlerweile arbeitet Lisi schon seit zwei Jahren beim Österreichischen Startup und Headless CMS Anbieter Storyblok, über das wir auch mal eine Revision aufgenommen haben.
Mit Lisi reden wir diese Revision über allerlei verschiedene Dinge. Die Klammer drumherum lautet jedoch…
Vanessa kann sich derzeit noch mehr auf Architektur und Technik konzentrieren, was der geringeren Größe des Startups (Zavvy) geschuldet ist, in dem sie als Frontend-Lead beschäftigt ist. Dennoch gibt es auch Phasen, in denen sie nicht zum Coden kommt und mehr Manager-Aufgaben zu erledigen hat. Das frustriert sie dann manchmal etwas, weil sie den Eindruck hat, dass sie „nichts schafft“.
Lustigerweise geht das Onboarding bei Storyblok auch mit der Zavvy-App vonstatten. Es gibt für die verschiedenen Mitarbeiter verschiedene Onboarding-Jouneys und auch Team-Buddys.
Dokumentation verfasste Lisi früher gerne mal in Notion – die Dokumentation, die sie heutzutage verfasst, liegt aber in der Regel mit im Repository. Vanessa nutzt dafür gerne mermaid.js.
Wir schweifen dann ab in Richtung Benennung von Dingen in Code und wer da welche Präferenzen hat.
Anschließend kommen wir zum Thema „Remote“. Denn Storyblok ist eine der wenigen Remote-only-Firmen, die es so gibt. Gekommen ist das durch das Wachstum während der Pandemie (auch hier nochmal der Verweis auf die Revision 495: Storyblok – Einblicke in ein Startup). Wir sind uns einig, dass Remote dann doof ist, wenn nur einzelne Personen remote sitzen, während der Großteil des Teams physisch beieinander sitzt. Die Einzelpersonen werden da schnell mal aus dem Kommunikationsfluss ausgeklinkt.
Wichtig ist, regelmäßig physische Team-Meetings zu veranstalten. So gibt es bei Storyblok einmal im Jahr ein sogenanntes „Offsite“, wo die gesamte Firma aufeinander trifft.
Vanessa vermisst bei der Remote-Arbeit manchmal den Flurfunk.
Als die größte Herausforderung sieht Lisi das Arbeiten über verschiedene Zeitzonen hinweg an. Eine Lösung besteht darin, möglichst viel Kommunikation asynchron ablaufen zu lassen. Das meiste an Kommunikation entfällt aber meist auf das eigene Team und wird mit zunehmender Gewerk-Entfernung rapide weniger. Das heißt, die Herausforderung stellt sich am ehesten für das eigene Team.
Wir debattieren darüber, ob es wichtig ist, dass alle in Calls ihre Videokameras anhaben oder nicht, welche Arbeitszeiten man in einem weltweiten Remote-Setting hat, inwiefern Fokuszeiten helfen und wann Feierabend ist. Schepp ist hier der Meinung, dass man Kommunikation als empfangende Instanz steuern sollte, also zum Beispiel durch Abschalten von Benachrichtigungen zu bestimmten Zeiten.
Was im Remote-Setting auch schwieriger wird, ist bei Kollegen festzustellen, wenn es ihnen nicht so gut geht. Retros aber ein Werkzeug, um zu sehen, wie alle so drauf sind.
In einem hochexzentrischen Orbit kreisen Vanessa und Peter um den diesjährigen Fragenkatalog zum State of JS herum. Bedingt durch zahllose Exkursionen schaffen sie es so gerade durch ersten ca. 20 % der Umfrage.
Die Idee zu dieser Folge entstammt einem Hörerwunsch. Florian Geierstanger schrieb uns vor rund 6 Monaten an, ob wir nicht eine Revision zu diesem Thema machen könnten:
Themenvorschlag für eine @workingdraft Episode: Wie können wir eine lern-freundliche Umgebung schaffen (in einem Team, in einer Firma)?
— Florian Geierstanger (@kino_auge) June 16, 2022
Passende Gesprächspartner dafür waren schnell gefunden, aber leider scheiterten diverse unserer Anläufe bis dato. Eigentlich sollte auch Florian mit von der Partie sein, aber zuletzt war dann er selbst krank. Bevor wir noch einmal verschieben, haben wir uns dazu entschieden, die Aufnahme dennoch endlich einzutüten!
Die Firma sipgate gibt es schon eine ganze Weile, aber das Jahr 2010 war in der Firmenhistorie ein einschneidendes: In diesem Jahr beschloss man, sich in eine agile Firma zu transformieren, was nicht nur mit neuen Arbeitsprozessen einherging, sondern auch mit einer neuen Einstellung zum Thema Fortbildung. Die Firmenleitung gab die Devise aus, dass Fortbildung explizit gewünscht sei und es wurden entsprechende Rahmenbedingungen geschaffen und Budget bereitgestellt. Seitdem existiert bei sipgate das „Fortbildungsboard“ mit dem Claim „Es gibt nichts Teureres als Mitarbeiter*innen, die sich nicht fortbilden“:
Auf diesem Board tut man durch Platzieren von Post-its und Gesichtern kund, wer wann welche Fortbildung besuchen möchte, und man sucht sich Kollegen, die mitmachen möchten. Dabei wird geschaut, dass die Firma auch während Fortbildungen einzelner arbeitsfähig bleibt und die Fortgebildeten berichten den anderen hinterher von ihren Learnings – entweder in Vortragsform oder als Zusammenfassung im internen Slack oder als Podcast. Wofür man sich auch entscheidet, seien es Konferenzen, Bücher oder Workshops: man bucht es sich selbst.
Dann gibt es noch alle zwei Wochen die sogenannten „Open Fridays„, firmeninterne Barcamps in denen alle Arten von Themen vorgestellt werden. Gleichzeitig wird der „Open Friday“ auch genutzt um zu zeigen, was Teams geshipped haben und um größere Themenkomplexe zu besprechen. Das klappt sogar remote.
Im Rahmen der agilen Prozesse und Clean Codings findet Lernen auch in Form von Pairing über die Disziplinen hinweg statt, und natürlich werden auch die Retros als Lernwerkzeuge verstanden.
Zu guter Letzt veranstaltet sipgate auch Talk-Reihen mit prominenten Gästen bei sich im Haus, die in diesem Fall auch Besuchern von außerhalb offen stehen.
Die alljährliche Umfrage zum State of CSS haben Vanessa und Schepp herangezogen, um über die dort aufgeführten brandneuen oder auch nicht mehr so neuen, aber dennoch interessanten CSS Features zu sprechen. Dies ist Teil zwei von zwei Teilen. Teil eins könnt Ihr hier nachhören.
prefers-reduced-data
Media Featureprefers-reduced-data
Media Feature (HTML), bzw. die prefers-reduced-data
Media Query (CSS) wird derzeit nur von den Chromium-Browsern unterstützt, und das auch nur hinter Flags. Hiermit könnt Ihr (teilweise) steuern, was an Daten zusätzlich geladen werden soll, je nachdem ob der Wert auf no-preference
oder reduce
steht.
Wir sprechen in dem Zusammenhang auch über sogenannte „Browser Interventions„, die Simon Pieters in diesem Twitter-Thread genauer ausführt.
Außerdem findet der Poor Man’s Dark Mode Erwähnung.
:focus-visible
:focus-visible
-Pseudoklasse ist, dass diese nur dann zum Tragen kommt, wenn der Browser ein Interaktionsmuster feststellt, bei dem die benutzende Person einen visuellen Fokus-Indicator benötigt. Damit kann man die von Designern und Chefs verhassten Fokus-Outlines wegstylen, um sie im Falle eines aktivierten :focus-visible
wieder zurück zu bringen.
Die Langfassung dessen, was hinter :focus-visible
(und inert
) steht, könnt Ihr in dieser Folge der Igalia Chats Podcastreihe nachhören.
::marker
-Pseudoelement::marker
lässt sich nun endlich(?) das Aufzählungszeichen von Listen greifen und stylen. Wir sind uns allerdings nicht sicher, wie sehr uns das tangiert.
Wichtig zu wissen ist nämlich, dass man bei ::marker
nur ein Subset an CSS-Eigenschaften zum Stylen zur Verfügung hat.
:has()
Wir erwähnen kurz die Tatsache, dass es auch beim :last-child
-Selektor aus Performancegründen länger gedauert hat, bis dieser in allen Browsern verfügbar war.
:where()
:where()
kann man einerseits stellvertretend mögliche Selektoren auflisten, um sich nicht per Selektoraufzählung wiederholen zu müssen. Das kann :is()
allerdings auch. Der Unterschied von :is()
zu :where()
ist jedoch, dass :is()
die Spezifität des Selektors in der Auflistung mit der höchsten Spezifität übernimmt, während die Spezifität von :where()
bei 0 (null) verbleibt, ähnlich wie beim Universalselektor *
.
Und das wiederum ermöglicht zusammen mit anderen Neuerungen wie den globalen Eigenschaftswerten unset
und revert
gänzliche neue Arten von CSS-Resets.
Dann erwähnen wir Lea Verous Talk über Custom Properties vom letzten CSS Day, der sehr weit in die Tiefe geht und Dinge wie Toggle-Switches und mehrere Ebenen von verschachtelten Custom Properties zeigt.
@property
@property
ging es vor nicht all zu langer Zeit in der Folge Revision 534: CSS Houdini, gescheitert?. Dank @property
kann man CSS Custom Properties typisieren, so dass der Browser im Anschluss weiß, wie er den Wert im Rahmen einer Animation interpolieren kann. Oder man definiert, ob eine Custom Property sich vererbt, oder eben nicht. Und zu guter Letzt kann man einen initialen Wert festlegen, den die Custom Property hat, wenn Ihr kein Wert zugewiesen wurde.
@property --property-name {
syntax: "";
inherits: false;
initial-value: #c0ffee;
}
Ein schöner Nebeneffekt von „dummen“, also nicht-typisierten Custom Properties ist die Tatsache, dass man von diesen z.B. Farben mit verschiedenen Transparenzen oder Farben mit ähnlichen HSL-Werten ableiten kann.
@supports()
@supports()
ist eine im Browser eingebaute Feature Detection für CSS Eigenschaften und/oder bestimmte Eigenschaftswerte. Verwenden wir beide gerne und viel.
Neuerdings lässt sich mit Hilfe der selector()
-Funktion in einem @supports
auch herausfinden, ob CSS Selektoren vom Browser unterstützt werden.
min()
, max()
und clamp()
min()
und max()
haben wir allerdings wie die meisten anderen Entwickler*innen das Problem, dass wir zunächst zum falschen greifen wollen, weil wir das Gegenteil des Funktionsnamens erreichen wollen.
clamp()
wiederum findet meist im Rahmen von Fluid Typography Anwendung.
Und schließlich erwähnen wir noch die Tatsache, dass man innerhalb von min()
, max()
und clamp()
kein calc()
benutzen muss, weil die schon von Haus aus Mathematische Ausdrücke als Werte unterstützen.
will-change
finden nicht nur wir sehr problematisch und raten vom Einsatz ab@layer
sind ein spannendes neues Konzept. Es gibt dazu einen tollen Talk von Bramus van Damme. Use-Case sind vermutlich Design Systeme.::part()
kann man von außen Teile eines Shadow DOMs stylen, sofern die Autoren desselben diese Teile mit einem part
-Attribut markiert haben.sin()
, cos()
und tan()
sind sinnvolle Ergänzungen, um komplexe Transformationen zu berechnen.image-set()
-Funktion ist sowas wie srcset
, nur in CSS. Wird in einer Vorversion mit -webkit-
-Prefix schon seit langem von Safari und Chromium unterstützt.image()
-Funktion ist so etwas wie die Nachfolgerin der url()
-Funktion. Sie räumt ein paar historische Probleme von url()
aus, wie zum Beispiel, dass man darin keine Custom Properties verwenden kann. Darüber hinaus rüstet image()
weitere Fähigkeiten nach, wie etwa ein Bild aus einer Farbe zu generieren, so dass man keinen Gradienten mehr dafür missbrauchen muss. Und man kann auch nur Bildausschnitte via Fragment-Notation verwenden. Der Browser-Support ist aber nicht vorhanden.Vanessa erinnert sich jedoch an eine alte Folge, in der Hans und Schepp ausschließlich über CSS in JS diskutiert haben: Revision 468: CSS in JS.
An weiteren Tools nutzt Vanessa noch Stylelint, Purge CSS, Prettier, Autoprefixer und CSS Nano. Dadurch dass diese Dinge aber eben oft automagisch von Scaffolding-Tools gesetupped werden, steht man auch schonmal wie der Ochs vor dem Berge, wenn etwas nicht geht, weil man nicht weiß, was denn genau alles in einem Projekt am Werk ist. Schepp hingegen ist mehr so der Typ, der alles selbst aufsetzt und konfiguriert, der damit am Anfang zwar langsamer ist, er aber immer weiß, was passiert. Von CSS Nano rät Schepp hingegen ab. Aus CSS lässt sich einfach nicht so viel an Minifizierung herausholen, als dass es sich lohnne würde die Risiken einzugehen, die mit CSS Nano daherkommen.
Als Entwicklungsbrowser nutzt Vanessa den Microsoft Edge, während Schepp weiterhin auf Chrome setzt. Beide schwärmen wir aber auch von extra für Entwickler*innen gebaute Browser wie dem Sizzy-Browser oder Polypane.
Zu guter Letzt gehen wir noch auf eine Art K.O.-Umfrage ein, in der man sich in mehreren Duellen für eines von zwei Kriterien entscheiden soll, die einem bei der Auswahl eines Tools wichtiger ist. Am Ende der Duell-Reihe bleibt dann das wichtigste Kriterium übrig. Die Duelle sind unserer Meinung nach aber seltsam gegeneinander aufgestellt.
Hans und Vanessa besprechen verschiedene Ausbildungspfade in der IT. Sie versuchen die Frage zu klären, ob man in der IT Branche eigentlich eine Ausbildung oder einen akademischen Titel braucht. Dabei gehen sie vor allem auf Selbststudium vs. Studium an einer Hochschule ein.
Die alljährliche Umfrage zum State of CSS haben Vanessa und Schepp herangezogen, um über die dort aufgeführten brandneuen oder auch nicht mehr so neuen, aber dennoch interessanten CSS Features zu sprechen. Dies ist Teil eins von zwei Teilen.
gap
Property for Flexboxgap
, welches neben CSS Flexbox auch von CSS Grid und (außer in Safari) CSS Multicolumn unterstützt wird, super praktisch ist.content-visibility
content-visibility
ist das anders. Das lässt sich trotz geringem Browser-Support super in Form von „Progressive Enhancement“ einbauen. Letztlich ist das nichts anderes als Lazy Rendering von Elementen.@container
@supports
ja gut herausbekommen kann.backdrop-filter
fit-content
, min-content
und max-content
, die man in width
und height
einsetzen kann und die ein Element abhängig von seinem Inhalt dimensionieren, ähnlich wie CSS Flexbox‘ flex-basis
oder CSS Grids fit-content()
-Funktion. Use-Cases gibt es aber eher wenige.accent-color
accent-color
, das zum unkomplizierten „Themen“ von Browser-GUI aka „Replaced Elements“ genutzt werden kann. In manch einem Projekt reicht das schon, um die beteiligten Designer*innen glücklich zu machen, ohne dass man gleich Inputs & Co alle in neu (und barrierevoll) nachbauen muss.The currentColor keyword should have retained the dash, current-color, as originally specified. Likewise all other color multi-word keyword names.
Tatsächlich wird der Fehler des Camelcasens dieses Keywords nun in 2022 endlich korrigiert, allerdings nicht mit einem Bindestrich, sondern durch komplettes Lowercasen des Wortes. Das hat den Hintergrund, dass CSS größtenteils case-insensitive ist und die Änderung so rückwärtskompatibel bleibt.
line-clamp
line-clamp
, mit dem man Texte nach so und so viel Zeilen abschneiden kann, mit gemischten Gefühlen. Einerseits erscheint es uns wie etwas unbeholfenes Interface-Design, bei dem störender Inhalt weichen soll. Andererseits finden wir schade, dass wir vom Browser keine Rückmeldung, z.B. in Form einer Pseudoklasse haben, wenn Text tatsächlich abgeschnitten wurde. So können wir gestalterisch nicht darauf eingehen und einen Hinweis auf mehr Text einblenden.font-display
font-display
stammt aus dem Bemühen, die verschiedenen Verhalten von Browsern beim Anzeigen von Schriften zu vereinheitlichen bzw. einstellbar zu machen. font-display: swap
ist hier meist die Einstellung, die man haben möchte.Diese Revision war eigentlich mit Thema geplant, aber ein spontaner familiärer Notfall hat unser Programm kurzfristig geändert. Mit dem einen verbliebenen der drei geplanten Gäste, nämlich Florian Geierstanger (Web / Twitter), sind Hans und Schepp daher auf eine weitere Runde Glücksrad umgeschwenkt.
<spacer>
<spacer>
-Element. Dieses Netscape-spezifische Element schien zu formalisieren, was Entwickler*innen damals mit dem sogenannten Spacer-GIF bewerkstelligt haben. Wie so oft, wenn etwas in die Browser eingebacken wird, gab es eine Extra-Fähigkeit obendrauf: So konnte man mit Hilfe des type
-Attributs Abstände auch nur in einer Achse erzeugen, was bei Bildern so nicht ging. 2010 schrieb der damalige Mozilla-Entwickler Henri Sivonen anlässlich der Entfernung des dazugehörigen Codes aus Gecko auch etwas über das Element. Schepp denkt an den HTML Tags Memory Test und überlegt, ob es dort wohl akzeptiert wird (wird es nicht).<audio>
<audio>
-Element. Hans erinnert sich, dass man es analog zu den <video>
– und <picture>
-Elementen mit alternativen Dateiformaten füttern kann und der Browser pickt sich das heraus, was er abspielen kann.
Florian findet an dem Element doof, dass sich der Audioplayer beim Navigieren zu einer anderen Seite schließt. Schepp fällt zu dem Thema ein, dass es die Media Session API gibt, die u.a. dieses Problem ausräumen soll. Und Hans wiederum erinnert sich daran, wie er diese API im nie zum Einsatz gekommenen Working Draft Audio Player verwendet hat. Die Macher des Podcasts Wo wir sind ist vorne haben das Problem (für Navigationen innerhalb der Seite) mit turbolinks gelöst.
Desweiteren kommen wir auf Audio-Transkription und mögliche Wege zur Darreichung selbiger zu sprechen.Zwar gibt es den WebVTT-Standard und die dazugehörigen, speziell formatierten .vtt
-Dateien für Untertitel und Transkripte, aber leider kann sie das <audio>
-Element nicht darstellen. Das macht in sofern Sinn, als dass die Abkürzung „WebVTT“ für „Web Video Text Tracks Format“ steht. Bleibt in so einem Fall also nur, auf ein <video>
-Element umzuschwenken. Verrückterweise kann aber auch ein <audio>-Element Video abspielen!
Wir sprechen darüber, dass wir hier im Podcast keine Transskripte haben, was daran liegt, dass die uns bekannten maschinellen Tools große Probleme mit unseren Inhalten haben. Eine manuelle Transkription haben wir bislang nur einmal machen lassen. Die war zwar exzellent, doch stören wir uns an den Arbeitsbedingungen in der Branche (über die wir erst im Anschluss daran erfuhren). Florian bringt eine neue AI-basierte Lösung namens „Whisper“ ins Spiel, die sehr gut funktionieren soll und die wir uns als Hausaufgabe mitnehmen.
Hans fragt, welchen möglichst einfach gehaltenen Audioplayer wir empfehlen können, worauf uns eigentlich nur MediaElement.js einfällt.
Schepp weist auf ein Learning hin, das er vor einiger Zeit hatte, nämlich dass die HTMLMediaElement.play()
-Methode im Standard und entsprechend auch in den Browsern 2016 nachträglich auf Promises umgestellt wurde.
Abschließend preisen wir die Tatsache, das man die Abspielgeschwindigkeit von Medien via JavaScript mit dem playbackRate
-Attribut beeinflussen kann. Florian empfiehlt dafür ein Browser-Plugin namens „Video Speed Controller“, das dafür auf Seiten die etwas abspielen ein Interface einblendet.
XMLHttpRequest.status
Das spannendste an der XMLHttpRequest
-API ist seine Entstehungsgeschichte: Das damalige Outlook Web Access Team (was Gmail, nur eben 10 Jahre früher war) benötigte die API, um Inhalte dynamisch nachladen zu können. Weil damals XML allerorten gehyped wurde, und alles mit „XML“ im Namen große Chancen hatte, in den Internet Explorer eingebaut zu werden, kam man auf die Idee, die API mit „XML“ zu prefixen und so in den IE einzuschmuggeln.
Außerdem erinnern wir uns an das Konzept von JSONP, das aber eigentlich überhaupt gar nichts mit der XMLHttpRequest
-API zu tun hat, und mit dem man Cross-Origin-Datentransfers vor CORS realisiert hat.
itemtype
-AttributSchepp empfiehlt, heutzutage statt auf HTML-Attribute besser auf JSON-LD zu setzen, weil man mittlerweile ja eher in Baukästen denn in Seiten denkt und dann ein zentraler Ansatz förderlicher ist.
@font-face
-At-RuleSchepp weist auf die recht neuen Descriptoren ascent-override
, descent-override
, size-adjust
und line-gap-override
hin, die dem Finetuning der vertikalen Positionierung innerhalb einer Text-Zeile und des „Durchschusses“ von Schriften dienen, aber vor allem Layout-Shifts beim Austauschen von Schriften per font-display: swap
verhindern sollen. Leider ein stark unterdokumentiertes Feature, von dem Schepp nur im Rahmen eines Talks von Jake Archibald gelernt hat. Florian kennt ein gutes Tool, um das einzustellen, nämlich den Fallback-Font-Generator.
In Sachen Performance empfiehlt Schepp, @font-face
direkt in das HTML zu packen, um dem Browser frühzeitig die entsprechenden Infos bereitzustellen und ihn die Schriften nicht erst in einem extern liegenden Stylesheet entdecken zu lassen. Von Zach Leatherman gibt es darüberhinaus auch einen spannenden Talk zum Thema „Schriften schnell laden“. Nach seinem Talk haben wir noch ein paar Extrainfos im Rahmen eines Interviews aus ihm herausgequetscht.
Florian bringt das Thema „lokale Schriften“ ins Spiel. Neben der altbekannten local()
-Funktion gibt es neuerdings auch die Local Font Access API, mit der man auch schon in gewissen Browsern herumspielen kann. Schepp meint sich daran zu erinnern, dass Figma diese API schon nutzt – aber das stellt sich wohl als Irrtum heraus.
Diese Revision haben wir Nico Brünjes (Twitter / Web) und Hennes Römmer (Twitter / Web) von ZEIT ONLINE zu Gast und die beiden erzählen Schepp von den Herausforderungen und Schwierigkeiten der Mitarbeiter-Gewinnung im Tech-Sektor (bezogen auf ZEIT ONLINE).
Dankenswerterweise bekommt ZEIT ONLINE viele Bewerbungen, aber oft sind es nicht die passenden. Es bewerben sich z.B. Junioren auf Senioren-Posten, Backend-Entwickelnde auf Frontend-Stellenausschreibungen und alle sind sie „Fullstack“. Sind die Stellenanzeigen doch zu unklar formuliert? Oder versuchen die Bewerber*innen einfach Ihr Glück?
Ist eine Bewerberin oder ein Bewerber einmal im Rennen, gilt es sich in Interviews kennenzulernen und über eine Coding Challenge einen Einblick in die Arbeitsweisen beider Seiten zu bekommen.
Hat eine Bewerberin oder ein Bewerber das Team von ZEIT ONLINE überzeugt, gilt es, die Person gut zu onboarden. Hierzu wird der neuen Person eine Partnerperson aus dem Team zur Seite gestellt, die mit Rat und Tat hilft. Auch pflegt man bei ZEIT ONLINE pair zu programmieren und über Pull-Requests zu debattieren, so dass jemand neues gut in die bestehenden Strukturen hineinkommt.
Zu guter Letzt besteht gute HR-Arbeit natürlich auch darin, einmal akquiriertes Personal im Unternehmen zu halten. Bei ZEIT ONLINE passiert das über „Perks“, regelmäßige Gespräche und interne Mitarbeiteraktionen.
Endlich spielen wir wieder Glücksrad! Der aus unserer „Mit Gast“-Premiere bekannte Stefan Judis (Twitter, Web), mittlerweile DevRel bei Checkly und Autor des Web Weekly Newsletters, setzte sich zusammen mit Schepp an unser neues MDN-gespeistes und Svelte + WebSockets gepowerte Webtechnologie Glücksrad. Folgendes sprang dabei heraus:
spellcheck
::spelling-error
-Pseudoelement herausgreifen und mit „Squiggly Lines“ aka text-decoration: wavy red;
markieren. Grammatikfehler wiederum kriegt man mit ::grammar-error
zu fassen. Was insofern nicht stimmt, als dass der Browser-Support für diese Pseudo-Elemente non-existent ist 😬lang
-Attribut auf dem Root-Element zu setzen!.outerText
.outerText
-Getter und -Setter unterscheidet sich beim Lesen genau gar nicht von .innerText
. Erst beim Schreiben unterscheidet sich sein Verhalten. Dann nämlich wird das betroffene HTML-Element inklusive seinem enthaltenen Text durch den zugewiesenen Text ersetzt. Der Text steht also im Anschluss im Elternelement des eben noch angesteuerten Elements – an dessen bisheriger Position im DOM..innerText
im Gegensatz zu .textContent
zu Reflows führt, weil der Browser nur denjenigen Text ausgeben soll, der auch tatsächlich sichtbar ist – was er nur durch ein kurzfristig anberaumtes Neurendern herausfinden kann.text-overflow
text-overflow
können wir schnell alles Wissenswerte zusammentragen: Sie dient dem Auspunkten von überschüssigem Text. Dazu setzt Ihr die Property im Grunde immer auf ellipsis
, und funktionieren tut das nur, wenn Ihr gleichzeitig auch overflow: hidden
und white-space: nowrap
setzt. Aber was ist eigentlich der initialer Wert? Na clip
! Das bringt uns kurz auf overflow: clip
. Außerdem lernen wir, dass text-overflow
ähnlich wie content
beliebige Strings unterstützt und auch das fade
-Keyword oder eine fade()
-Funktion für weiches Ausblenden. Zu guter Letzt lassen sich sogar zwei Werte setzen: Einer für das gewünschte Auspunkten zu Text-Beginn und eines zu Text-Ende. Leider ist der Browser-Support auch hier unterirdisch 😭:read-only
:read-only
-Pseudoklasse könnt Ihr Eingabeelemente herausgreifen und stylen, die auf einem reinen Lesemodus stehen. Bei Inputs bewerkstelligt Ihr das mit einem gesetzten readonly
-Attribut. So weit, so klar. Aber wusstet Ihr, dass :read-only
jedes HTML-Element mit Ausnahme von input
, textarea
und contenteditable
erfasst, weil die ja alle „Read only“ sind? 🤯input
, textarea
und contenteditable
, auf denen kein readonly
-Attribut gesetzt ist mit der Pseudoklasse :read-write
ansteuern.<marquee>
<marquee>
eines dieser Elemente aus grauer Vorzeit sind, als es weder CSS noch Flash oder Java Applets gab, um Texte zu animieren. Meist wurde es für Nachrichten-Ticker eingesetzt. Was wir nicht auf dem Schirm hatten war, wie viele Attribute (oder Neudeutsch: „props“) bereitstehen, um Art der Animation, Richtung, Bouncen, Loopen, Scrolldistanz oder Scrollschritte festzulegen. Es stehen zudem die Methoden .stop()
und .start()
bereit, um die Animation anzuhalten und wieder zu starten. Rund wird die Sache durch die drei Events start
, bounce
und finish
.<time-percentage>
<time-percentage>
handelt es sich um eine alternative Spezifikations-Notation von [ <time> | <percentage> ]
und bedeutet, dass als Wert wahlweise ein ⌚Zeit- oder ein Prozentwert angegeben werden kann. Allerdings nur dann, wenn sich der Prozentwert eindeutig in einen Zeitwert umwandeln lässt, so wie sich Prozentwerte bei Höhen- und Breitenangaben auch in Längen umwandeln lassen. Damit wissen wir schonmal mehr als in unserem zweiten Glücksrad mit Gast im Dezember, wo das auch schon einmal aufkam. Die wichtigste Frage können wir aber weiterhin nicht beantworten: Wo in CSS ist es möglich, einen Zeitwert in Prozent auszudrücken? MDN weiß es leider auch nicht. 🤔 Wisst Ihr es? 👀class
aria-hidden
/ hidden
, aria-current
& Co zu arbeiten, weil man Accessibility obendrauf bekommt. Beide freuen sich sehr auf all die neuen Möglichkeiten, mit dem :has()
-Selektor CSS zu strukturieren 🤩::-moz-color-swatch
::-moz-color-swatch
stellt in Firefox beim Farb-Input den Bereich dar, in dem die aktuell gewählte Farbe angezeigt wird. In Safari und Chromium gibt es analog dazu das Pseudo-Element ::-webkit-color-swatch
. In dem Zusammenhang kommen wir auf das Open UI Projekt zu sprechen, das sich zum Ziel gesetzt hat, all diese Browser-Sonderlocken zu vereinheitlichen und gestaltbar zu machen. Stefan weist außerdem darauf hin, dass Ihr bei Input-Elementen mit Pickern ebendiesen neuerdings per .showPicker()
sich programmatisch öffnen lassen könnt.Anlässlich der Veröffentlichung Ihres neuen Buchs über die Sprache Rust, luden wir zwei der Autoren, nämlich Marco Amann (Twitter) und Marcel Koch (Twitter), sowie den hausinternen Rust-Experten Stefan zu uns in den Podcast ein, um über die Raison d’Être dieser Programmiersprache zu sprechen.
Abschließend wollen wir natürlich auch ein Buch unserer Gäste verlosen. Alle Retweeter*innen unseres Ankündigungstweets ebendieser Folge kommen automatisch in den Lostopf!
Für diese Revision haben Hans und Schepp Accessibility-Guru Eric Eggert (Web / Twitter / YouTube) eingeladen, um über aktuelle und zukünftige Barrierefreiheitsstandards zu sprechen. Eric ist seit langen Jahren Mitbesitzer einer kleinen Agentur namens outline und hat als Freelancer einige Projekte, wie etwa die WAI-ARIA Tutorials und How to Meet WCAG für das W3C umgesetzt und zusammen mit dem Aktion Mensch e.V. an einer Deutschen Übersetzung der WCAG 2.1 gearbeitet.
Wir reden mit Eric im Wesentlichen über die Rolle der WCAG, über ihre Evolution und wo sie eine Rolle spielt. So wird der European Accessibility Act spätestens ab 2025 jede an Endkonsumenten gerichtete Webseite dazu verpflichten, barrierefrei nach WCAG zu sein. Damit wird in der EU Stück für Stück die UN-Behindertenrechtskonvention aus 2008 in lokale Gesetzgebung überführt. Wir reden über die Zielrichtung der WCAG, darüber wie sie funktioniert und wie man prüft, ob man ihre Kriterien erfüllt.
Da sehr wahrscheinlich im Dezember Version 2.2 der WCAG veröffentlicht werden wird, sprechen wir natürlich auch über die Neuerungen, die dieses Minor Release bringen wird. Das sind im Wesentlichen:
Zu guter Letzt geht es auch noch kurz über den zukünftigen Standard WCAG 3.0 (Projekt „Silver“ vom lateinischen Argentum (AG), das wiederum eine Anspielung auf „Accessibility Guidelines“ ist). Bei diesem möchte das W3C gänzlich neue Wege gehen. Die Fertigstellung ist für 2026 angepeilt.
Diesmal haben wir es uns zu zweit lauschig gemacht. Vanessa schlüpfte in die Rolle unserer Gästin und hatte als Thema „Komponentenbibliotheken“ im allgemeinen und Storybook und Histoire im Speziellen im Gepäck.
Da kam es Vanessa sehr gelegen, dass Vue.js-Core-Team-Mitglied Guillaume Chau neuerdings eine auf Vue.js und Vite spezialisierte Komponentenbibliothek namens „Histoire“ veröffentlicht hat. Und so sprechen wir über das Für und Wider der Nutzung beider Pakete, sehen z.B. die große Community auf der einen Seite, aber eben auch die bestechende Einfachheit bei dennoch umfangreichem Featureset auf der anderen.
Am Ende treten wir schließlich noch ein paar Schritte zurück und sinnieren über die Frage, ob solche Komponentenbibliotheken uns überhaupt nennenswerte Vorteile bringen, oder ob man sich mit ihnen nur ein weiteres zu pflegendes Softwarepaket ans Bein bindet, das einen herunterbremst.
Für diese Folge haben wir uns Jonas Ulrich vom Startup kickstartDS (Blog / Discord / Twitter) eingeladen, um über die praktischen Herausforderungen bei der Entwicklung eines UI Design Systems zu sprechen.
Vor der Gründung ihres Startups arbeiteten Jonas und seinen Mitstreitern 15 Jahre lang als Web-Agentur mit vorwiegend Mittelständlern als Kunden. Vor zwei Jahren entschied man sich dazu, die Erfahrungen des Agenturteams beim Entwickeln von Design Systemen in ein zusätzliches Standbein zu verwandeln und UI-Baukästen als Produkt anzubieten.
Wir wollen darüber reden, wie man an die Entwicklung eines solchen UI Design Systems herangeht und welche Herausforderungen darin stecken.
Konzeptuell beginn die Arbeit mit der Entwicklung von Basis-Tokens, wie Fibonacci-Skalen, Farbvarianten, etc. Die müssen einzeln nicht nur gut funktionieren, sondern auch in einem Beziehungsgeflecht mit anderen Basis-Tokens. Das ist schwerer als man denkt. Die Basis-Tokens werden anschließend in semantische Tokens à la „Primary Color“ verpackt. Und die werden innerhalb von Komponenten dann nochmal in Komponenten-Tokens verpackt. Das erleichtert die Konfiguration und eröffnet den Benutzern gleichzeitig an all diesen Schnittstellen, auf Wunsch von der Vorgabe abzuweichen. Sinnvolle Token-Vorbelegungen ermöglichen darüber hinaus einen schnellen Einstieg, ohne Konfigurationsorgien. Insgesamt stellt dieser ganze Entwicklungsprozess eine multidisziplinäre Aufgabe dar.
Vom Workflow hat das Team sich für HTML, CSS und JavaScript als primäres Delivery-Format entschieden, weil das mit jeder Zieltechnologie gleich gut harmoniert. Konsumierende Entwickelnde müssen dann aber das HTML in die von ihnen verwendete Template-Sprache überführen (und bei Änderungen nachziehen). Von Jonas‘ Team werden die Komponenten aber natürlich nicht in diesen Technologien entwickelt, sondern werden am Ende dahin transpiliert. Die eigentliche Entwicklungsumgebung besteht aus JSX, SCSS und ES6. Das ermöglicht es aber, als weiteres Delivery-Format React zzgl. einer Konfigurationsbeschreibung nach JSON Schema anzubieten. Zudem werden die Design-Tokens in Amazons Style Dictionary Format angeboten, so dass sie von dort aus in alle möglichen Zielformate umgewandelt werden können (Claim: „Style once, use everywhere“). Web Components gehören aktuell u.a. aus SEO-Gründen nicht zu den auslieferbaren Formaten.
Wir sprechen außerdem darüber, wie man Design Systeme in Firmen etablieren kann. Jonas sieht am meisten Erfolg in einem Grassroots-Ansatz, also einem Ansatz, bei dem das entwickelnde Team sich ein Design System wünscht. Dann sind die Betroffenen nämlich motiviert an Bord. Weniger gut ist der Ansatz, ein Design System von oben zu verordnen. Zur Einführung empfiehlt er außerdem, sich nicht direkt der Haupt-Webseite zu widmen, sondern erste Erfahrungen in einem Nebenprojekt zu sammeln.
Da ein Design System nicht nur eingeführt, sondern danach am Leben gehalten und weiterentwickelt werden muss, ist es zudem erforderlich, dass man einzelne sogenannte „Champions“ oder gar ein ganzes „Design Ops“-Team benennt, das das UI-System wie ein interner Dienstleister pflegt und andere Teams mit Rat und Tat beim Einbau unterstützt. Hans und Jonas halten es für ideal, das Ganze im Stile eines Open Source Projektes zu führen.
Nachdem es vor zwei Revisionen um das Zusammenspiel von Cypress mit Vitest ging, wollen wir diese Revision ganz exklusiv Cypress widmen und über neue Features aus den Major-Releases 9 und 10 sprechen. Das letzte Mal haben wir das nämlich vor anderthalb Jahren gemacht. Dafür haben wir uns und die beiden Deutschen Cypress Ambassadore Ramona Schwering von Shopware und (erneut) Tobias Struckmeier von der Adesso eingeladen.
Wie der Name schon andeutet, erlaubt es das Durchtesten isolierter UI-Bausteine, aber in echten Browsern anstatt in einer per JSDom simulierten Browser-Umgebung wie sie oft zum Einsatz kommt. Das ist zwar aufwendiger und langsamer, Fehler können damit aber besser debugged werden, weil die entwickelnde Person bei Auftreten eines solchen einfach den Browser übernehmen, die Devtools öffnen und mit der Fehlersuche beginnen kann. Dieses Feature führt aber leider zu einer neuen Projektstruktur, die zwischen E2-E und Component-Testing aufteilt, und die noch ein paar weitere Änderungen mit sich bringt. Wichtig zu wissen für eine Migration von einer älteren Cypress-Version – die allerdings recht schnell von der Hand geht.
Andere Tools zum Entwickeln von Komponenten wie Storybook ersetzt dieses Feature nicht. Andersherum bietet Storybook aber mittlerweile mit „Storybook Play“ ein eigenes Testing-Feature.
Als nächstes sprechen wir über Cypress Studio, welches man derzeit als experimentell einstufen muss, weil dessen Zukunft in Frage gestellt wird. Cypress Studio ermöglicht es, Cypress-Tests WYSIWYG-artig zu erstellen, was Nicht-Entwickelnden einen Zugang zum Erstellen von Tests öffnet. In Frage gestellt deswegen, weil die Chrome Devtools neuerdings mit dem „Recorder“ daherkommt, der User-Flows aufzeichnet, die man mit Hilfe von Browser-Plugins abgreifen und in eigene Tools und Formate exportieren kann.
Wir widmen uns in dem Zusammenhang der Frage, wie robust und dauerhaft rein visuell anstelle von semantisch zusammengestellte Tests sein können und sind uns darin einig, dass sie deutlich fragiler sind. Allerdings sind sie definitiv ein guter Einstieg in die Welt der Test-Erstellung und mit zunehmender Erfahrung wird es immer mehr möglich, diese als Vorlage zu betrachten, die man Anschluss „robust“ macht. Auch lässt sich Cypress vorab ein Stück weit so einstellen, dass es bestimmte HTML-Strukturen bevorzugt als Orientierungspunkte heranzieht als andere (bestimmte Attribute vs. CSS-Selektorkette).
Das dritte neue Feature, über das wir sprechen, ist ebenfalls noch experimentell: Das Multi-Domain-Testing. Multi-Domain-Testing ist traditionell ein blinder Fleck aller Testing-Tools, und zwar weil es technisch aufwändig oder sogar unmöglich ist. Es geht dabei darum, dass Tests auch möglich sind, wenn der User-Flow die primäre Domain zeitweilig verlässt, wie es zum Beispiel bei einem Login via externer Dienste der Fall ist, oder auch bei einer Zahlung über einen externen Zahlungsdienstleister. In Revision 442 sprachen wir dazu auch mit Marvin Hagemeister, der aus diesem Grund zusammen mit Kollegen sein eigenes Testing-Framework gebaut hat, das das kann. Dass sowas jetzt auch mit Cypress möglich ist, ist u.a. in der ebenfalls experimentellen „Session API“ zu begründen. Diese ermöglicht es, Cookies und LocalStorage-Daten über mehrere Tests hinweg zu persistieren. Das macht es auch möglich, bestimmte Arten von Tests zu beschleunigen, indem man die ganze Setup-Arbeit einmal macht, abspeichert und fortan nur noch lädt.
Das führt uns zu dem letzten diskutierten Themenblock, nämlich die Ausführungsgeschwindigkeit von Cypress-Tests und wie man die schnell hält. Ramonas Strategie ist, ein Basis-Set für die schnellen und wichtigsten Tests zu nutzen, um die Pipeline schnell zu halten, und dazu einen „Nightly Build“-Ansatz zu fahren, bei dem jede Nacht alles aufwendig abgetestet wird. Eine weitere Möglichkeit ist die Parallelisierung per Ordner oder Segmentierung via Tags, und das Ganze auf mehreren Maschinen orchestriert via Cypress Dashboard. Am längsten dauert aus ihrer Sicht aber immer das initiale Setup der Testdaten – und da unterscheidet sich Cypress nicht von anderen Tools. Und schließlich sind wir uns auch einig, dass keine 100% Testabdeckung notwendig ist, weil einfach zu teuer.
Mit Josefine Schaefer und Manuel Schröder, beide Developer Relations Engineers bei dem Headless CMS Tool Storyblok, bespricht Vanessa das Imposter Syndrom bei Entwickler*innen.
In den letzten Monaten hat sich eine neue Kombination an Testing-Tools für die Frontend-Entwicklung gebildet, die von vielen Entwickler:innen favorisiert wird. Markus Oberlehner erklärt, wie man Cypress Component Testing und Vitest am besten verbinden kann.
In dieser Ausgabe legt Schepp Vanessa und Hans seine Überlegungen zu CSS Houdini dar.
-webkit-canvas()
in neuem Gewand.@property
At-Rule. Diese ergänzt CSS um die Möglichkeit zur Typ-Annotation von Custom Properties, so dass der Browser diese fortan nicht mehr nur als dumme Strings betrachtet, sondern als Fließkomma- oder Ganzzahl, als Farbe, Rotation oder Längenmaß. Und das wiederum eröffnet einem in Kombination mit CSS Animationen und calc()
eine Welt an Möglichkeiten, die man zuvor nicht hatte, z.B.:
Schepps Wunsch wäre daher, dass sich die Browser-Hersteller auf die kleineren Dinge konzentrierten und dass @property
zukünftig auch in Firefox und Safari implementiert würde (eventuell auch per Crowdfunding durch die Firma Igalia):
Was ist Eure Meinung zu CSS Houdini? Schickt uns einen Tweet an @workingdraft, oder diskutiert mit in unserem Community Slack!
Es ist mal wieder ein schöner DienstagMittwoch und wir hauen die nächste Folge raus. Diesmal mit von der Partie sind der Schepp und der Hans. Schepp berichtet über die Core Web Vitals – mehr dazu unten.
Wir sind wieder mit einer neuen Episode am Start und diesmal geht es um das Thema „Infrastructure as Code“. Hans spricht mit Thomas Eisenbarth über seine Erfahrungen mit dem Thema. Ein richtig interessanter Talk, der die Seite der Development Operations etwas näher beleuchtet.
Ihr wollt über das Thema etwas diskutieren? Dann schaut mal in unserer Community auf Slack vorbei: draft.community.
Diese Ausgabe haben Vanessa und Schepp sich mit Manuel Matuzović (@mmatuzo / Webseite), Frontend-Entwickler und Barrierefreiheitsexperte, zusammengetan und gemeinsam ein Plädoyer für mehr Markup-Eloquenz im Web gehalten.
fetchpriority
-Attribut, aka Priority HintsSchepp begrüßte diesmal jemanden, dessen Aktivitäten er schon seit Jahren auf Twitter verfolgt: Wolfram Kriesing aus München (Blog / Twitter).
Wolframs Passion für die Sprache führte ihn immer tiefer in den Fuchsbau und schließlich zum Konzept des Test-Driven-Developments (TDD). Wir reden darüber, wieso TDD nicht nur ein guter Ansatz zum Entwickeln ist, sondern sich mindestens ebenso gut zum Lernen und Verstehen einer Sache eignet.
Und schließlich reden wir auch über zahlreiche Lernplattformen und Events, die Wolfram zu den zuvor genannten Themen aus der Taufe gehoben hat:
In einer offenen Diskussionsrunde bespricht Vanessa mit Nikolaus Rademacher, Senior Product Engineer bei Accenture Song, das Thema Software Schätzungen im Rahmen von Sprints. Zuvor war Nik bereits zu Gast, um über die Rolle und Verantwortung von Entwickler:innen in agilen Teams in Revision 510 und Revision 512 zu sprechen.
Wieder einmal zu Gast ist Jon Uhlmann (@jonnitto), mit dem wir diesmal über Svelte und SvelteKit sprechen.
Diese Revision ist Vanessa in die Rolle der Gästin geschlüpft und hat Schepp etwas zum Thema „State Management“ in Vue erzählt.
Vanessas Fazit lautet: Benutzt gerne weiter Vuex, wenn Ihr es schon im Einsatz habt, setzt aber auf Pinia, wenn Ihr neue Projekte aufsetzt. Harlem.js hingegen sagt ihr vom Ansatz her spontan nicht so zu.
Schepp und Peter durften Martin Splitt begrüßen (Developer Advocate bei Google, Web, Twitter) um mit ihm über technische Suchmaschinenoptimierung zu plaudern und mit den übelsten SEO-Mythen aufzuräumen.
rel="nofollow"
und rel="sponsored"
und die im Zuge all dieser Informationen aufkommenden Herausforderungen des Indizierens von Web-Content. Wo der SEO ist, ist aber auch der Schlangenölverkäufer meist nicht fern, und so kommen wir nicht umhin, auch ein wenig über obskure Seo-Magie, Verschwörungstheorien und Cargo-Cult-SEO (und Entwicklung) zu diskutieren. Am Ende des Tages schlägt nichts eine saubere URL-Struktur mit Sitemap, Meta-Informationen (vorzugsweise via JSON-LD) und einem Auge auf den Web Vitals. Zuletzt verweisen wir noch auf den , Schepps Auftritt bei WWSIV und plädieren für einen gesunden und entspannten Umgang mit SEO!Schepp und Peter durften Marc Thiele (Web, Twitter) als Gast begrüßen, der viel über die Beyond Tellerrand (und seine übrigen Aktivitäten) in der Vergangenheit und der durch Corona verseuchten Gegenwart zu erzählen hatte.
Für diese Ausgabe haben wir uns wieder einen Gast eingeladen: David Jost, mit dem wir in über einer Stunde das Thema „Design Systeme“ von all seinen Seiten beleuchten. Und das sind mehr, als man in seiner Naivität gemeinhin glaubt.
Die traditionell-quartalsweise erscheinende Podcast-Folge, in der Stefan und Peter das eine Thema planen und 80% der Zeit über das andere Thema sprechen, ist da!
super()
, jetzt da ist und postuliert Use Cases rund um Open Telemetry. Peter hat derweil Kunden mit einen Use Case für Static-Blöcken in Klassen, die uns vorletztes Mal noch nicht überzeugen konnten. Allgemein halten wir fest, dass früher (= Java/OOP/POOP), zwar vieles, nicht alles schlecht war und dass auch in Programmierbüchern von 1997 noch Weisheit zu finden ist. Im Verhältnis 20/80 widmen wir uns der weiteren langweiligen und marginalen TypeScript-Updates (dies, das, jenes) sowie den wesentlich spannenderen Themen rund um Typannotationen, Funktionsüberladung, TS-Performance, SWC, Demo, Runtime-Typen und TS-Specs, Language Server Protocol, Rust, Zig, Java und HomepagebaukästenEs geht in die nächste Runde Micro-frontends! Diesmal erzählt Simon Dittlmann (LinkedIn, Twitter), Head of Digital Architecture and Analytics bei ZEISS uns über viel über horizontale und vertikale Schnitte. Außerdem berichtet er über die technische Umsetzung der Micro-Frontends bei ZEISS mit Hilfe von Webpack Module Federation und Dapr.
Nico Martin (Web, Twitter), Google Developer Expert und Webtech-Nerd, erklärt in dieser Revision Schepp und Peter alles zu WebBluetooth, WebUSB und WebNFC!
Das Thema Testing begleitet uns seit vielen Jahren. Glücklicherweise scheint es immer leichter zu werden. Joe Ray Gregory (Twitter / Website), Senior Software Engineer und Trainier bei workshops.de, bringt uns diesmal das Framework Testing Library mit.
Psst, Geheimtipp: Joe verrät uns, dass es aktuell Early Bird Tickets für die Vue.js Konferenz in Berlin am 22. September gibt.
Gast Florian Dreier (Github) erzählt Peter und Vanessa von der Modernisierung eines Legacy-Frontends!
Florians Arbeitgeber war mit einem alten Frontend auf Basis von Googles Closure-Tools gesegnet, das modernisiert werden wollte. Zunächst listen wir die zahlreichen Gründe für das Ersetzen des alten Stacks auf (schlechte DX, Inkompatibilität zum restlichen JS-Ökosystem) und sprechen dann über die Vorarbeiten für die Umstellung. Wichtig dabei: Buy-In auf allen Ebenen ereichen, POCs zusammenhacken und nicht einfach alles neu schreiben.
Für die Überführung der Closure-Module in ES-Module wurde ein Konverter programmiert, die TypeScript-Migration mithilfe des Closure-TS-Coverters halbautomatisch und Schritt für Schritt durchgeführt. Natürlich kommen wir nicht umhin, die Entscheidung für React in Anbetracht der zahllosen Alternativen zu hinterfragen, ebenso die Entscheidung für Vite anstelle von Webpack, diskutieren die Ob und Wie von Feature-Entwicklung während des Umbaus und fragen uns natürlich auch, wie es zu verhindern ist, dass der aktuelle Code schlimmes Legacy 2.0 wird. Am Ende fasst Florian die positiven Ergebnisse des Umbaus zusammen und gibt Abschließende Empfehlungen für vergleichbare Migrationsprojekte.
Schepp sprachen in dieser Throwback-Revision über diverse Browserfeatures (neu und alt) sowie die aktuelle Gesamtsituation im Browser-Markt.
display: contents
zur Sprache.structuredClone()
structuredClone()
kommt ein neuer Weg zum Klonen von JS-Objekten die Browser (z.Z. noch nur Firefox und Safari). Wir debattieren die diversen halbgaren Alternativen und die schlechten Aussichten für einen Polyfill.scroll-behavior
, :has()
, <dialog>
, Web Locks API (s. Revision 445)) finden wir aber den Blick auf die Gesamtsituation am Browser-Markt. Safari verwahrlost, ist (noch) der einzige Browser auf iOS und Firefox ist im Zombie-Modus auf dem Weg in die Bedeutungslosigkeit. Wir fabulieren über Wettbewerbsrecht, Verschwörungstheorien und die Zukunft der Browsermarkts.Lange ist es her, dass wir uns zuletzt über ein CMS unterhalten haben – nun war es wieder soweit. Daniel Wentsch (Website / Twitter) war unser Gast, und das (PHP-)CMS, welches er im Gepäck hatte, Statamic.
Nachdem wir in der Vergangenheit bereits zu Tailwind 1 und Tailwind 2 entsprechende Episoden aufgenommen haben, haben wir uns anlässlich des Erscheinens der Version 3 erneut mit unserem letztmaligen Gast Milan zusammengesetzt.
Marc J. Schmidt (Twitter, Github, Web), Founder bei deepkitIO und TypeScript-Nerd, hat sich Gedanken (und noch einiges mehr als bloße Gedanken) zu TypeScript-Runtime-Typen gemacht. In dieser Revision stellt er sich Peters kritischen Fragen, und stellt seine Pläne für eine neue TypeScript-Zukunft vor.
Mit Frederik Braun (Github, Twitter), Firefox-Security-Großmeister und Workingdraft-Dauergast (bekannt aus den Revisionen 447 und 452) beleuchteten Schepp und Peter diverse Aspekte rund um ASTs und Security.
Mit 1,5 Gästen in Person von Nico König (Bootcamps und Training bei coding-bootcamps.eu) und Joschi Kuphal (tollwerk.de) eruieren Vanessa, Peter und Schepp Wohl und Wehe von Komplexität in Webtechnologien.
Es ist so weit, wir sprechen wieder mit Nikolaus Rademacher über agile Methoden. Der zweite Sprint, in Revision 510 angekündigt, nun geht es rund.
Mit Nils Roehrig und Kevin Schoenfeld von REWE digital quatschen Vanessa, Peter und REWE-Digital-Veteran Hans über Microfrontends in der allgemeinen Theorie sowie unter dem Gesichtspunkt der konkreten Umsetzung im Arbeitsalltag von Nils und Kevin.
Weiterführende Links:
Über das Thema der Rolle und Verantwortung von Entwicklern und Entwicklerinnen in agilen Teams reden unsere Hosts Hans, Peter und Vanessa heute mit Nikolaus Rademacher, Senior Frontend Entwickler bei sipgate. Da sich das Thema als unendlich erweist, betrachten wir diese Revision als einen ersten Sprint und lassen in ein paar Wochen Teil 2 folgen.
Dieses Mal hat Schepp Patrick Lipinski aka Lippe aka @dickelippe zu einer Runde Glücksrad zu Gast. Wir kennen Patrick schon sehr lange von dem ganzen Konferenz-Getingele, besser bekannt unter dem Begriff „Klassenfahrt“, und bei der letzten gemeinsamen Konferenz kamen wir darauf, dass er doch einmal Gast bei uns sein könnte. Gesagt, getan!
appearance
-Propertyappearance
-Property. Patrick und Schepp stellen fest, dass sie diese CSS-Eigenschaft eigentlich immer nur mit dem Wert none
verwenden. Gibt es auch andere Use-Cases? Schepp kommt außerdem in den Sinn, dass man im neuesten Edge Canary das vom Open UI Projekt konzipierte, und frei umgestaltbare <selectmenu>
ausprobieren kann. Wir debattieren zum Abschluss kurz über Reset vs. Normalize und über die neueste Form des Resets.title
-Attributtitle
-Attribut sinnvoll eingesetzt werden kann, ist z. B. als Sidekick des <abbr>-Elements.<time-percentage>
:host-context()
-Pseudoklasseauto
, none
, inherit
, revert
oder initial
, die man in so gut wie jede Eigenschaft stecken kann.inputmode
-Attributinputmode
-Attribut können Web-Entwickelnde auf einem <input>-Element steuern, welche Art von Softkeyboard zur Eingabe angezeigt wird. Praktisch, wenn es etwa in einer Anmeldung ein Feld gibt, in dem man entweder seine E-Mail-Adresse oder seinen Benutzernamen eingeben kann.iterationComposite
-Eigenschaftratio
ratio
-Datentyp früher ausschließlich in Media Queries genutzt, kommt er neuerdings auch in der CSS-Eigenschaft namens aspect-ratio
zum Einsatz.@property
-Rule-webkit-text-stroke
-Propertypaint-order
-Propertypaint-order
, das in Kombination mit -webkit-text-stroke
nützlich wäre, um eine Umrandung wirklich nur außen herum gehen zu lassen, indem man den Hintergrund/Fill drüber legt. Leider wird diese noch nicht außerhalb von SVG unterstützt. 🙁Einmal alles andersherum! Diesmal führt unser Gast Ole Michaelis, Software-Entwickler, Konferenzsprecher, Organisator und Jonglierer, ein Interview mit unseren Hosts Hans und Vanessa zum Thema „wie schafft man sich eigentlich neues Wissen drauf“?
Auf dieser Grundlage, erörtern sie, we man sich dafür entscheidet, was man sich tatsächlich genauer ansieht und lernt. Für Ole war es zum Beispiel Haskell, worauf sich Vanessa hin an ihre schöne Standard ML (SML) Zeit in der Universität erinnert. Weiterhin werden verschiedene Medien zum Lernen besprochen, wie zum Beispiel Videos auf YouTube, Newsletter (Links siehe unten), Kursplattformen, etc.
Die nächste Frage, wenn man schon einmal angefangen hat zu lernen, ist die, wann man wieder aufhört. Ab welchem Zeitpunkt entscheidet man sich dafür, dass man genug über dieses Thema weiß?
Abschließend, ein sehr wichtiger Aspekt, geben Ole, Hans und Vanessa ihre Meinung zum Thema „Lernen während der Arbeitszeit“ bzw. „Lernen finanziert durch die Firma“ ab. Alle sind sehr interessiert an der Meinung der Hörerrinnen und Hörer!
Diese Revision nehmen Vanessa und Schepp die Veröffentlichung des diesjährigen Web Almanac zum Anlass, sich ein paar der darin beleuchteten Bereiche heraus zu picken und über die Daten und Erkenntnisse zu reden.
SourceMap
-HTTP-Header gibt. Hinsichtlich Accessibility verweisen wir auf eine gar nicht so alte Episode von uns, erwähnen Manuel Matuzovićs Experiment, diversen automatisierten Accessibility-Audits trotz völlig unzugänglicher Webseite perfekte Accessibility-Scores abzutrotzen und dass wir beim Accessibility-Club in einem Vortrag von Karl Groves gelernt haben, was sogenannte Accessibility-Overlays doch für ein Schlangenöl sind. Im Abschnitt CMS sind wir positiv davon überrascht, wie gut TYPO3 im Bereich Performance abschneidet und wir erwähnen auch kurz das Headless CMS Storyblok, dessen Macher vor nicht all zu langer Zeit bei uns waren.Anlässlich Hans‘ Mitwirken an der mittlerweile leider eingestellten Hörbuch- und Podcast-Plattform FYEO, reden wir heute über die Herausforderungen, die der Bau eines 1,6 Millionen Podcasts umfassenden Katalogs mit sich bringt.
In beiden Fällen benötigt man dann einen speziellen Podcast-Atom/RSS-Feed, der entweder von den Hosting-Plattformen ausgespuckt wird, oder von der eigenen Webseite, z.B. in Form eines WordPress mit Podcasting-Plugin.
Aufgrund dieses dezentralen Hosting-Ansatzes, werden Podcasts von den Podcast-Katalogen dieser Welt erst einmal gar nicht gefunden. Stattdessen musss man selbst tätig werden, und sie bei allen gewünschten Plattformen eintragen, sei es bei Apple, Google oder Spotify. Am Apple-iTunes-Verzeichnis wiederum bedienen sich viele weitere, kleinere Podcasting-Plattformen, um Podcasts zu finden und zu ihrem eigenen Fundus hinzuzufügen. So lief das auch bei Hans‘ ehemaligen Projekt.
Fortan ging anschließend darum, mit klugen Herangehensweisen zu erreichen, dass von den Podcastmacher*innen veröffentlichte Episoden schnell auf der Podcast-Plattform angezeigt werden. Das ist insofern nicht so einfach, als dass die Podcast-Feeds einem Pull- statt einem Push-Prinzip folgen, man Feeds aber auch nicht unendlich häufig anfragen kann.
Für Podcaster ist es jedenfalls wünschenswert, auf so vielen Plattformen wie möglich vertreten zu sein, damit der Umfang der Hörerschaft wächst, und andererseits auch, um von Statistiken zu Abspielverhalten und Demografie zu profitieren, die diese Anbieter im Gegenzug bereitstellen.
Erneut trafen sich Stefan und Peter unter dem Vorwand einer neuen TypeScript-Version um ihrem Zorn über alle möglichen Gesamtsituationen Luft zu machen.
lib
-Upgrades und Use Cases wie den ResizeObserver, Neuerungen für Template String Types, Top-Level-Await, Private Field Presence Checks, Import Asertions, JSDOC, TSDOC und SOAP.Aller guten Dinge sind drei, und so kam es dass wir Jon Uhlmann (@jonnitto) zum dritten Mal als Gast einladen konnten, um mit ihm über den Themenkomplex „Analytics & Tracking Tools“ zu sprechen. Unsere vorherigen Ausgaben mit ihm findet Ihr unter Revision 490: Alpine JS & Petit Vue mit Jon Uhlmann und Revision 496: Tooling rund ums Frontend Tooling.
Die Vorteile dieser Tools liegen auf der Hand. Gleichzeitig ist Datensparsamkeit ein erstrebenswertes Ziel, weil Daten in falschen Händen auch gegen einen verwendet werden kann. Aus diesem Grund entwickeln sich immer mehr Betriebssysteme und Browser in Richtung Privacy, so dass man entweder ganz vor Tracking geschützt wird oder nur noch dann getrackt wird, wenn man selbst zustimmt (was in diesem Fall wohl nur noch 10% der Nutzer*innen tun):
Gleichzeitig entwickelt sich ein Markt für alternative, DSGVO-konformere Tools, wahlweise zum Selberhosten oder in der Cloud:
Insgesamt 60 Tools listet dieses Blogpost auf.
Wie erwähnen außerdem die Möglichkeiten, ganz ohne eigenes Tracking interessante Erkenntnisse aus der Google Search Console oder dem Chrome User Experience Report (CrUX) zu gewinnen.
Vanessa und Peter tauschen sich in dieser Revision überraschend ausgiebig zu diversen CSS-, HTML- und Accessibility-Problemchen/Features aus.
vh
nur bedingt existieren – zumindest in mobilen Browsern. Browser-Heuristiken und bestimmte Verhaltensweisen von (mobilen) Browsern treiben uns in Sachen horizontalem Scrolling, Accessible Dialog-Design und :focus-visible
um. Wir quatschen kurz über Safari-Bugs und Selektor-Hacking, agitieren für die Verwendung von input[type=email]
sowie die Nicht-Verwendung von autofocus
. Über Peters Geheimtipp PostHTML (wie PostCSS, nur für HTML) kommen wir zur Frontend-Gretchenfrage, zur Digital Ocean App Platform, Mobilfunktarifen und G’schichten aus’m Zug. Themenrelevant geht es weiter mit unserer (erfolglosen) Suche nach Use Cases für fit-content und inline-flex
(zu finden in Tailwind UI), CSS Debugging, noch mehr Scrolling/Overflow-Problemen Emoji-Bugs in Chrome, Can I Include, Inclusive Card Components und CSS Modules.Hans, Schepp und Peter ließen mehrfach das so genannte Workingdraft-Glücksrad rotieren, erhielten jedoch bei fast jeder Umdrehung einen kapitalen Wissens-Zonk.
:user-invalid
ergänzt..Im Rahmen der etablierten Traditionen nehmen Stefan und Peter das Release einer neuen TypeScript-Version zum Anlass, um über alles außer über TypeScript zu sprechen.
any
, unknown
und unsafe
, wundern uns über static blocks in classes, gedenken der Gefallenen (ECMAScript 4, E4X, SOAP, JXON) und blicken kurz auf das, was uns TypeScript 4.5 (z.Z. in der Beta-Phase) in Kürze bringen wird.Zu Folge 500 haben Schepp, Vanessa, Hans, Peter und Stefan Hörer:innen-Fragen eingesammelt und beantwortet!
float:left
) und IE-only-Features (in der Verlosung: Exclusions, HTC-Files, Expressions), die Verbannung des Box-Modells aus dem Standard (ebenfalls auf der Abschussliste: autofocus
und Voice-Styling in CSS), das schnelle Verinnerlichen von Webtech-Specs/Techs (gibt’s nicht) Front-End Architektur mit Svelte/SvelteKit (das Workingdraft-Glücksrad ist in Svelte geschrieben!) CSS Cafe und andere Schepp-Meetups, Webtech-Buch-Schreiberei (siehe auch Revision 453), Sport, Lego, Telefonate, Kinder, Teilzeit, Engineering Management, Rust, Go, C++, AssemblyScript, Turbine, die Composition API von Vue, Schepps IMDB-Eintrag und Vergangenheit als 3D-Animator, unsere goldige Audio-Producerin und Präsenz-Podcasting. Im Laufe der Zeit mussten mehr und mehr von uns zu Meetings mit Kindern und/oder Kollegen abreisen, sodass am Ende nur Schepp und Peter verblieben, um etwas über die Zukunft von Working Draft zu philosophieren.Hans, Stefan und Vanessa hatten nach langer Zeit wieder das Vergnügen mit Backend-Entwickler Christoph Rumpel (@christophrumpel), Autor von Laravel Core Adventures und Mastering PhpStorm, ein Larastreamer und Host des Podcasts Call it a day, sprechen zu dürfen, diesmal über Laravel Livewire.
Vanessa, Hans und Schepp verwandeln in dieser Revision die Vorbesprechung in die eigentlich Sendung, in der es ausnahmsweise Mal nicht nur um knallharte Fakten und technische Themen geht.
Nach zehn Wochen war es mal wieder an der Zeit, an unserem Webtechnologie-Glücksrad zu drehen!
SVGAnimatedEnumeration
:root
-Pseudoklasse<image>
-Datentyp<image>
-Datentyp lassen sich allerlei Dinge stecken:
url()
-Funktion (natürlich)repeating
-Pendants.image-set()
image()
-Funktioncross-fade()
element()
::-webkit-scrollbar
und Konsorten::-webkit-scrollbar
-Familie für WebKit und Chromium, mit dem per W3C abgesegnetem scrollbar-width und scrollbar-color im Firefox. In neueren IEs und dem davon abgeleiteten Edge ließ sich eine hässliche Scrollbar immerhin noch via -ms-overflow-style: -ms-autohiding-scrollbar;
verstecken.font-variant-east-asian
dir
-Eigenschaft der Manifest-Dateialign
–Attribut<center>
-Element gab.Hans und Schepp hatten erneut Jon Uhlmann, aka @jonnitto, zu Gast, den Ihr vielleicht schon aus der Revision 490 über Alpine.js & Petite Vue kennt. Dieses Mal sprachen wir über…🥁
Hierunter das richtige Werkzeug zu finden und die damit zusammengesetzte Toolchain längerfristig auf Stand zu halten, fällt selbst reinen Frontend-Entwicklern oft schwer – für Allrounder oder Backend-Entwickler, wie sie ein Großteil der Klientel von Neos CMS darstellt, ist das mindestens unangenehm, wenn nicht sogar kaum zu stemmen.
Aus diesem Grund hat Jon sich im Laufe der letzten Jahre mit dem Schreiben von Neos-Tools befasst, die uns diese ganzen Probleme abnehmen, und die die Komplexitäten der vorhin genannten Werkzeuge in einer einfach einzubindenden Black Boxen kapseln. Auf die Art und Weise ist eine stattliche Tool-Sammlung entstanden:
Wir sprechen darüber, für welche Anforderungen Jon Lösungen finden musste und zu welchen Einsichten er im Laufe der Zeit gekommen ist. Und wir sprechen darüber, was diese Tools nicht sind und was Jon auch bewusst nicht in diese Tools verpacken möchte.
Für diese Revision durften wir Dominik Angerer (@domangerer und Sebastian Gierlinger (@sebgie) als unsere Gäste begrüßen. Die beiden sind in Tateinheit mit unserem Stefan Ausrichter diverser Tech-Events in Linz: dem Stahlstadt.js-Meetup, der Script und auch der TSConf:EU. Darüber hinaus sind sie aber auch führende Köpfe hinter dem noch jungen aber sehr erfolgreichen Startup Storyblok, das das gleichnamige Headless CMS betreibt.
Nachdem Stefan zu den regulären Zeiten aktuell nicht mehr teilnehmen kann, haben sich Vanessa, Schepp und die Österreich-Quote früh morgens zu Cappuccino und Hühnerbrühe getroffen. Thema der Sendung: Sämtlicher Research zum Thema Serverless.
Diesmal trafen sich Vanessa und Schepp, um über ein ganzes Potpourri an aktuellen Themen aus der Web-Standards-Welt zu sprechen. Und über Münchener Restaurants.
accent-color
accent-color
könnt Ihr zukünftig bestimmen, in welcher Farbe farbliche Bestandteile von nativen Inputs dargestellt werden. Zu der Farbe optimal kontrastierende Icon- und Textfarben gibt es kostenlos obendrauf. Kommt mit Chrome 93 und Firefox 92.accent-color
kamen wir aufgrund des wöchentlichen Newsletters von Stefan Judis, den Ihr vielleicht schon als Gast unseres Podcasts kennengelernt habt.Was gibt es eigentlich Neues bei Webpack 5? Das erzählt uns Tobias Koppers (@wSokra), der Gründer von Webpack, und gibt uns Einblicke in seine Zukunftspläne.
Als wir vor fünf Wochen mit Bianca Kastl (@bkastl) unsere Folge zur Luca-App aufgenommen haben, da haben wir ein Thema gestreift, dem wir eine eigene Folge widmen wollten, um es dort nochmal tiefergehender zu betrachten: Dezentrale Architekturen. Und genau das tun wir hiermit!
Diesmal geht es wieder rein in die moderne Welt der Frontend Entwicklung. Mit Jon Uhlmann, Neos-Core Team Members, sprechen Hans und Vanessa über alpine.js und Petite Vue.
Vanessa und Peter hatten zwei Open-Source-Schwergewichte zu Gast, mit denen sie über das (Über)-Leben als OSS-Entwickler plauderten. Martin Donath (Twitter, Github) war zuletzt in Revision 484 zu CSS und stylezen zu Gast und entwickelt Material for MkDocs. Marvin Hagemeister (Webseite, Twitter, Github) ist für seine Arbeit an Preact bekannt und war genau zu diesem Thema zuletzt in Revision 397 zu Gast.
Nach dem großen Erfolg des neuen Glücksrads in der letzten Revision ließe es Schepp, Vanessa und Peter nochmal drehen – diesmal verstärkt um Gücksrad-Veteran Stefan Judis (Twitter, Newsletter) der auch Autor des Random-MDN-Bots auf Twitter ist.
position
-Valuebackground-position
funktioniert. Am Ende finden wir trotz großer Mühen nicht viele Use Cases für background-position
in der Gegenwart.inputmode
an sich macht, suchen wir länger nach Use Cases für inputmode="none"
. Gedacht ist dieser für indirekt kontrollierte Inputs, wobei Peter vorübergehend der Fehlannahme aufsitzt, dass das auch (besser?) per <output>
gemacht werden könnte (stimmt nicht, <output>
wird von Formularen nicht submitted).direction
ist, sind das HTML-Attribut dir
sowie writing-mode und text-orientation nicht fern. Außerdem stellen wir fest, dass Text-Rendering extrem knifflig ist.deltaMode
auf Wheel-Events wohl soll und was alles als Mausrad durchgeht.Vanessa, Schepp und Peter ließen das Glückrad kreiseln. Aber es ist ein neues Glücksrad! Die offizielle Workingdraft-Glücksrad-Webapp, die auf MDN-Daten basiert, setzt uns nicht mehr nur HTML-Elemente vor, sondern spuckt auch DOM-APIs, JS-Features und CSS-Gedöns aus.
pre
-Element hat ein width
-Attribut (das wir nicht benutzen sollten)! Sonstige Erkenntnisse zum Element: es kann kein Shadow-Host sein (das können nur ausgewählte Elemente sein) und xmp-Elemente sind unter der Haube auch nur pre-Elemente (zumindest näherungsweise).apple-touch-icon
, theme-color
, die allgemeine Meta-Tag-Inflation, Icon- und Webfont-Generatoren sowie die bulletproof @font-face syntax.text-orientation
in den Kontext zu z.B. Ruby-Annotationen und schaffen es am Ende auf wundersame Weise, bei Pi-hole zu landen.blend-mode
(nicht zu verwechseln mit background-blend-mode, mix-blend-mode und color-mix()) tatsächlich verwendet wird und landen bei der einzigen Quelle, die dererlei Fragen zu beantworten vermag: dem State of the Web Report.ratio
-Typ (nicht zu verwechseln mit aspect-ratio oder aspect-ratio) führt uns in eine Diskussion höherer CSS-Mathematik.i
gegen em
ab und sinnieren über Boostrap und AccessibilityEs ist Zeit sich auch mal den aktuellen Software-Produkten rund um die allgegenwärtige Corona-Pandemie zu beschäftigen.
Wir sind sehr froh, dass wir Bianca Kastl (Twitter) dafür gewinnen konnten. Sie beschäftigt sich seit geraumer Zeit mit der Integration von Corona-Daten für die Gesundheitsämter und Applikationen, die in diesem Kontext auch für die Bevölkerung zur Verfügung stehen. Dabei sprechen wir vollem über die Vorteile und Probleme der Luca-App.
Darüber kommen wir dann auf die Probleme der App zu sprechen.
Mehr „Fails“ der Luca-App finden sich auf der entsprechenden Website dazu.
Anlässlich der offiziellen Verkündung von ECMAScript 2021 fanden sich Hans, Schepp und Peter zusammen, um nicht nur die Feature-Liste des neuesten JavaScript-Standards zu rekapitulieren, sondern dabei auch etwas in Zukunft und Vergangenheit von ECMAScript zu blicken.
tmp
-Variablen.Schepp und Peter erfreuten sich in dieser Revision an der Anwesenheit von Martin Donath (Twitter, Github), der nicht nur Maintainer von Material for MkDocs ist, sondern auch daran arbeitet, mit Stylezen das beste CSS-Intellisense diesseits der Baikal-Amur-Magistrale zu erschaffen.
Hans, Vanessa, Peter und Schepp trafen sich unter dem Vorwand, die „Neuerungen“ von Safari 15 zu diskutieren, kamen dabei aber über Umwege auch auf Browser Extensions sowie das Pro und Contra von Bookmarks zu sprechen
<meta name="theme-color">
(was wir hinsichtlich der Browserunterstützung und des Dark-Pattern-Patenzials gründlich besprechen) und aspect-ratio
für Iframes – ein Hack weniger!Nachdem es schon wieder zweieinhalb Jahre her ist, dass wir unseren letzten Blick auf Angular geworfen haben, luden wir uns Martina Kraus ein, um uns wieder auf Stand zu bringen.
Martina twittert als @martinakraus11, ist selbstständige Beraterin, Trainerin und Sprecherin zum Thema Angular, und das nicht erst seit gestern. Zudem organisiert sie zahlreichen Meetups in der Heidelberger Region. Aufgrund dieser zahlreichen Aktivitäten ist sie mittlerweile zur Google Developer Expert (GDE) für Angular avanciert und tauscht sich dementsprechend viel mit dem Angular Core-Team zu Wünschen aus der Community und neuen Entwicklungen des Frameworks aus.
Außerdem beschreitet das Framework einen interessanten neuen Pfad, nämlich indem es zunehmend auf TypeScript zugunsten von ES 2017 verzichtet. Das kommt insofern unerwartet, als dass Angular bei seiner Einführung 2016 als erstes JavaScript-Framework überhaupt voll auf TypeScript gesetzt hat und die anderen beiden großen Frameworks jetzt erst bei Angulars Level an TypeScript-Unterstützung angekommen sind. Auf Typinferenz muss dabei niemand verzichten, denn Angular 12 setzt auf einen neuen Modus namens „Strict“, der von der Autorin erwartet, dass alle Variablen, die an einem Template hängen, initialisiert werden müssen. Und dadurch ist dann von Anfang an klar, um was für einen Datentyp es sich handelt. Wir sind gespannt, ob andere Frameworks hier nachziehen werden.
Nach wie vor bereitet der Umstieg vom alten Compiler auf Ivy allerdings hier und da noch Probleme, weil nämlich Angular-Libraries für beide Compiler adaptiert werden müssen. Hier gibt es aber Schützenhilfe von Tools wie dem Angular Compatibility Compiler (ngcc) – und auch Martina hat dazu dankenswerterweise einen Talk auf Lager. Zudem hat Ivy noch ein paar eher halb-offizielle Features wie Higher Order Components oder Custom Change Detection, die in Zukunft ausgereiftere Interfaces benötigen. Auch dazu hat Martina einen Talk parat!
Eine weitere wichtige Neuerung von Angular 12 ist dass es mit Webpack 5 daherkommt. Dieses erleichtert vor allem das Orchestrieren von in Angular gebauten Micro-Frontends, was so vormals nur mit der Microfrontend-Library von Manfred Steyer möglich war (siehe dazu auch den Talk vom ihm).
Wer nach dem Hören unserer Folge Lust auf Angular bekommen hat, dem empfiehlt Martina den Einstieg über das Angular-eigene Einsteiger-Toturial „Tour of Heroes„, oder aber die Tutorials von Maximilian Schwarzmüller, aka Academind.
Geht es hingegen darum, Feedback los zu werden, dann schickt eine Mail an [email protected], oder wendet Euch an die DevRel Emma Twersky, oder geht den Weg über eine*n GDE wie Martina.
Rod und Peter hatten Tobias Uhlig zu Gast, der als federführende Kraft hinter dem Framework neo.mjs einiges zu Multithreading in Webapps zu erzählen weiß.
Fullstack-Entwicklerin, CSS-Feinschmeckerin und Webstandards-Liebhaberin Joy Heron (Twitter, Webseite, Case-Podcast) fand sich im virtuellen Workingdraft-Studio ein, um mit Schepp, Peter und Vanessa über Web Components zu fachsimpeln.
Eine weitere Late Night Ausgabe mit Kahlil und Stefan im Überleitungsmarathon!
Unter dem Vorwand, eine neue TypeScript-Version zu besprechen, trafen sich Stefan und Peter und quatschten in Wahrheit über Delphi, Balkonpflanzen, Rust, Napoleon, Go(tt) und die Welt.
ConstructorParameters<Type>
nun auch für abstract
Classes funktioniert, führt uns direkt ins traditionelle OOP-Roasting. Dabei erwähnen wir nicht nur Stefans Artikel zum Constructor Interface Pattern, sondern auch Fehlleistungen aus dem Hause Bloomberg.com. Über den Wert der Always-Truthy Promise Checks sind wir uns ebenso uneinig wie über die diversen Upgrades des TS-Compilers, nutzen letzteres Thema jedoch zum Abschweifen in Richtung Bazel, esbuild, Go (und den legendären Generics-Hack) und Rust. Neue Editor-Features von TS lassen uns über die Beziehung zwischen TypeScript und VS Code philosophieren, bevor es an die ersten Neuerungen von TS 4.3 geht, die uns wirklich interessieren. Tweaks am den Typen von Gettern und Settern sind nicht die Weltformel, aber gerade für Web Components schon ein sinnvolles Feature. Unabhängig davon fordert Peter einen Rust-artigen unsafe
-Block für TS, damit Löcher im Typsystem besser behandelt werden können). Der Klassenkampf setzt sich mit override
nebst --noImplicitOverride
sowie #private
(jetzt auch für Methoden) fort, was wir auf sehr zurückhaltende Weise begrüßen. Contextual Narrowing for Generics (eine selektive Aufschlauung der Typsystems) und Template String Type Improvements (eine weitere selektive Aufschlauung der Typsystems) sagt uns da schon mehr zu. Gegen Ende verfransen wir uns dann mit einen Proposal für do-Expressions, Napoleons Rückzug aus Moskau, ReasonML/ReScript, Delphi, GTK und Empfehlungen für die Revionen 446 und 175 dann vollends.Mit Fabian Friedl, DesignOps Team Lead bei Dynatrace, sprechen Vanessa, Hans und Stefan über Komponentenbibliotheken und Design Systeme.
Anlässlich der Tatsache, dass Vanessa gerade mit Mitarbeiter*innen-Suche beschäftigt ist, sprachen wir über das Thema „Recruiting und Karriere“.
Hans, der in einem größeren Unternehmen arbeitet, legt wiederum mehr Wert auf einen solchen „Cultural Fit“, als auf den Coding Stil. Seiner Meinung nach ist das Knowhow etwas, das man den Personen beibiegen kann. Dieses „Zusammenpassen“ muss man von beiden Seiten gesehen, auch wichtig dass die Firma zu der Person passt. Zum Zusammenpassen gehört auch die Frage, würden die Person das Unternehmen hin und wieder in München besuchen, oder käme das nicht infrage? Darüberhinaus soll die Kandidatin oder der Kandidat Lust auf Neues haben und Dinge anschieben wollen. Hans` Meinung nach gibt es nämlich sehr viele Menschen, die die Dinge gerne so belassen wollen, wie sie sind. Die wären allerdings weniger für das Unternehmen geeignet, für das er arbeitet. Darum hat Hans den Recruitment-Prozess umgedreht: Als allererstes versucht Hans mit einer Kollegin oder einem Kollegen zusammen in einem 30- bis 45-minütigen Gespräch herauszufinden, ob beide Seiten zusammenpassen. So merkt man schnell, wenn es nicht passt und beide Seiten haben keinen zu großen Zeit-Invest vorab tätigen müssen. Erst danach folgt der fachliche Test in Form einer Reihe technischer Fragen und Challenges, für welche Hans das Tool Codility nutzt, das auf 60 Minuten Zeit begrenzt ist. Danach folgt das technische Interview. Hier ist für Hans wichtig, was die Person über bestimmte Konzepte denkt, wie z.B. Lifecycle Hooks. Für ihn ist vor allem interessant, wie die Leute antworten, nicht so sehr der Inhalt selbst. So ist es auch okay, wenn jemand etwas nicht weiß. Es geht ihm darum, mit der Kandidatin oder dem Kandidaten ins Gespräch kommen und Lust auf eine zukünftige Zusammenarbeit zu bekommen.
Im Verlauf unseres Gesprächs kommen wir auch auf das Thema „Freelancer“ zu sprechen. Vanessa findet Freelancer schwierig, weil die meist nicht die ganzen Hürden überwinden müssen, die die Festangestellten nehmen mussten, und auch, weil sie mehr verdienen. Der Punkt wiederum führt uns zum nächsten Thema „Verdienstmöglichkeiten“: Vanessa findet, es sollen alle möglichst gleich und angemessen verdienen. Bei Hans im Unternehmen gibt es für verschiedene Tätigkeiten vordefinierte Gehaltskorridore. Dadurch sind die Gehälter recht homogen. Zumindest vermutet er das, denn in seinem Arbeitsvertrag steht die Klausel, dass Angestellte nicht über ihr Gehalt sprechen dürfen. Hier wirft Schepp ein, dass so eine Klausel überhaupt nicht zulässig ist und er der Meinung ist, dass das nur ein Werkzeug ist, mit dem ein Arbeitgeber seine Belegschaft klein hält. Zum Thema „Verdienst als Freelancer“ schildert er seine Beobachtung, dass man zu jedem Stundensatz seine passenden Kunden findet und dass gerade die Kunden, die mit hohen Stundensätzen kein Problem haben auch immer zügig bezahlen. Schepp weist auch darauf hin, dass die Summen, die Freelancer fordern, die Nachteile ausgleichen, die sie gegenüber Festangestellten haben: Sie können jederzeit aus den Diensten entlassen werden, sie müssen bei der Sozialversicherung den Arbeitgeberanteil mittragen, sie werden bei Krankheit nicht weiterbezahlt und jeder Urlaub kostet Freelancer doppelt Geld: In Form von tatsächlichen Urlaubskosten, plus dem Verdienstausfall. Hier pflichtet Vanessa bei, dass sie Freelancer kennt, die deswegen, und aus Reputationsgründen, über Jahre hinweg keinen Urlaub gemacht haben. Im Bereich der Festanstellung findet Hans, dass Senior Engineers in Deutschland zwar gut, aber nicht sensationell gut verdienen, und dass die größten Gehaltssprünge meist mit Arbeitgeberwechsel einhergehen. Als Weiterentwicklung der Karriere bleibt Engineers meist nur der Weg ins Management. Die Seite www.engineeringladders.com gibt Ratschläge für die Karriere.
Eine erfreuliche Beobachtung, die Hans in den letzten Jahren gemacht hat, ist dass die Bewerber immer diverser und facettenreicher werden. Das findet Hans richtig gut! Vanessa meint, das komme aber noch stark auf die Firma an, bei der man ist.
Zu guter Letzt sind wir uns auch alle einig, dass uns sogenannte „Perks“, also Dinge wie Kickertisch, Obstkorb & Co eigentlich nicht so wichtig sind. Sie sind zwar angenehm, aber nicht entscheidend.
git rerere
git rerere
steht für „reuse recorded resolution“. Was es damit auf sich hat, lest Ihr hier.Auf Hörer:innen-Wunsch hin ging es in dieser Revision um unser eigenes Development-Setup. Hans stellte dabei die Mac-, Schepp die Windows-Fraktion. Leider hatte es Peter gesundheitlich erneut so zerlegt, dass wir keine Linux-Perpektive beisteuern konnten.
Anlässlich der Veröffentlichung seines Buches „Accessible Vue“ luden wir Barrierefreiheitsexperte Marcus Herrmann (@_marcusherrmann) aus Berlin zu uns ein, um über Barrierefreiheit im Allgemeinen und über die besonderen Herausforderungen der barrierearmen Programmierung von Single-Page-Applications im Besonderen zu sprechen.
Im September 2020 war das Release von Vue 3. Ein gutes halbes Jahr später besprechen wir mit Markus Oberlehner über Erfahrungen über die Einsatz der Änderungen in echten Projekten.
Lukas Holzer, seines Zeichens Senior Software Engineer bei Dynatrace bringt Hans, Stefan und Peter auf den neuesten Stand was GraphQL und speziell Developer-Experience-Upgrades im Zusammenhang mit GraphQL angeht!
In dieser Woche durften wir Matthias Ott begrüßen. Neben seinen Artikeln über Front-end und Design-Themen, schreibt er einen Newsletter zu den Themen.
Kahlil und Stefan treffen sich wieder zu einem nächtlichen Diskurs rund um Webentwicklung. Die gewohnten Next.js Architektur Referenzen inklusive.
Vanessa, Schepp und Stefan reden heute mit Mathias Schäfer (@molily) über Testing mit Angular.
Anders als ursprünglich geplant geht es in dieser Revision nicht mit dem vergangene Woche angekündigten Thema weiter. Unseren Hauptakteur, Peter, hatte es nämlich gesundheitlich dahingerafft, so dass Hans und Schepp sich auf ein alternatives Thema verlegen mussten. Angeregt durch eine konkrete Situation aus dem Job landeten wir bei „CSS in JS“.
Peter hat mal wieder ein randständiges Webstandards-Thema beforscht und berichtet in dieser Revision Hans und Schepp von seinen Erkenntnissen.
on
beginnende Properties und Attribute) und Event Listeners und besprechen dann, wie Event Handler genau funktionieren (Spoiler: es ist kompliziert). Danach diskutieren wir, ob auch die Custom Events von Custom Elements (aka Web Web Components) über Event Handler ansteuerbar sein sollten. Für den Ja-Fall hat Peter das OnEventMixin gebaut, das Event-Handler-Logik in Web-Component-Klassen hineinpatched.Diese Ausgabe widmen wir uns zusammen mit unseren Gästinnen Franziska Gertz (@frau_scholle) und Svenja Motzek dem Thema Diversität, mit speziellem Fokus auf den Bereich Entwicklung.
Wir sind uns einig, dass ein diverses Team mehr Dynamik hat und am Ende durch die vielen unterschiedlichen Perspektiven das bessere Produkte entwickelt als eines, das sehr homogen ist. Wir stellen auch fest, dass Corona Vielen die Möglichkeit eröffnet, von zu Hause an Projekten mitzuwirken, die sonst nicht so oft ins Büro kommen können. Auch das sorgt für diversere Teams.
Aus dem Frau/Mann-Bereich erzählen Franzi, Svenja und Vanessa von Erlebnissen rund um das Thema Diversität aus ihrer Vergangenheit, guten wie schlechten. Und natürlich reden wir auch über das Konzept der Frauenquote.
Wir wagen einen Blick über den Tellerrand in andere, der Software-Entwicklung angeschlossene Berufe und stellen fest, dass es dort um Diversität möglicherweise noch weitaus schlechter bestellt ist als bei uns.
Last but not least geht es auch um unseren alltäglichen Sprachgebrauch und wie sich nicht-männliche Personen unterbewusst nicht eingeschlossen oder angesprochen fühlen, wenn wir Dinge, gleichwohl sprachlich korrekt, im generischen Maskulinum formulieren (der Duden hat hier auch gerade umgestellt).
Ganz ohne Gäste und großen Themenbogen hockten sich Schepp, Hans und Peter zusammen, um ein paar Fundstücke und Artikel aus der letzten Zeit zu bequatschen
:where
als Workaround vor.:focus-within
fußenden Hacks rund um Smooth Scrolling. Während er Schwerstarbeit verrichtet, brät Mobile Safari anderen Webseiten einfach Extrawürste.Array.from()
das Mittel der Wahl ist, um Arrays einer gegebenen Länge zu erzeugen.Wir nehmen das Release von Version 2.0 von TailwindCSS als Anlass, das Framework nach längerer Zeit einmal wieder unter die Lupe zu nehmen. Als kompetenten Gast haben wir uns dafür Milan Matull ins Boot geholt, der uns durch die Ideen und Konzepte von Tailwind führt und mit dem wir über Vor- und Nachteile des Frameworks (fruchtvoll und zielführend) debattieren.
Als ehrenwerte Konkurrenz erwähnen wir:
Wir stellen als Hauptvorteile heraus, dass die vorgegebenen Leitplanken verhindern, dass Entwickler:innen in einem Team unterschiedliche Wege in Sachen Notationen und Eigenschaftenwahl gehen. Fifty Shades of Grey ist mit TailwindCSS nicht zu machen. Außerdem ist Tailwind im Production-Build unschlagbar klein und vor allem wächst es nicht mit zunehmendem Projekt- und Komponentenumfang. Klein bleibt klein, und damit schnell! Und zu guter Letzt ist es auch sehr angenehm, beim Komponentenbauen einfach in seinem HTML bleiben zu können, ohne zum Stylen ständig den Kontext hin zu CSS wechseln zu müssen.
Milan hat zu den Vorteilen von, und den Vor*UR*teilen gegen Tailwind aber auch ein komplettes Slidedeck am Start.
Selbstverständlich geht es in unserem Gespräch irgendwann tatsächlich auch um die Neuerungen, die Version 2 bringt. Im Wesentlichen sind das ein Dark Mode, sinnvoll vorkonfigurierte Zeilenhöhen, sinnvoll vorkonfigurierte Animations-Easings und unterlassene Hilfeleistung für den IE 11 (Custom Properties FTW!). Ansonsten gibt es von allem mehr: Mehr Farbabstufungen, mehr Grautöne, mehr Breakpoints, mehr Spacing, mehr Schriftgrößen. Wir wissen allerdings nicht, ob das gut ist, oder eher schlecht – wegen der Leitplanken und so…
Ach so, und TailwindCSS 2.0 dürfte das erste Framework mit kinoreifem Trailer sein! ?
Weitere Frameworks und Tools aus dem TailwindCSS-Dunstkreis, die spannend und Teil der Folge sind:
Die augenöffnenste Lektüre, die unser Gast mitgebracht hat, ist ein neun Jahre alter Artikel mit dem Titel About HTML semantics and front-end architecture von Nicolas Gallagher.
Einen super Kniff hingegen zeigt ein Artikel namens Composing the Uncomposable with CSS Variables von Adam Wathan.
Es ist wieder ein Quartal vorbei und entsprechend steht eine neue TypeScript-Version vor der Tür. Stefan und Peter analysieren die kargen Neuerungen und philosophieren über TypeScript, Klassen, React, Gatekeeping und die Auswirkungen von Tooling und TS auf die weitere Webdev-Welt.
in
Operator TypeScript etwas näher an JavaScript heranbringt (wenn auch, wie wir glauben, JavaScript es in diesem Fall nicht ganz richtig macht). Zu abstract
Construct Signatures haben wir primär die Akronyme POOP und SHIT beizutragen, das neue CLI-Argument --noPropertyAccessFromIndexSignature
scheint uns sinnvoll und wir sind sicher, dass wir es nicht verwenden wollen und den Parameter --explainFiles
sollte man auch auf Menschen anwenden können. Am Rande geht es außerdem um Löcher in TS bzw. Programmiersprachen allgemein, Typ-Parameter-Benamung, die Sinnhaftigkeit von Klassen in JS/TS, die Rückwirkungen von Tooling und TS auf die weitere Webdev-Welt, Rust und Go.In dieser Revision durften wir wieder einmal Tim Seckinger, Mitwirkender von Jest und Entwickler bei YLD als Gast begrüßen. In Revision 436 sprachen wir bereits mit ihm generell über Frontend Unit-Testing, dieses Mal konkret über Jest.
Das Ecosystem Jests besteht aus mehreren Helfer-Tools, wie Airbnb Enzyme. Auch der Jest Runner lässt sich austauschen, von jsdom zu einem Playwright Environment bis hin zu sogar Python Tests. Etwas praxisnäher ist das Tool jest-runner-eslint, das wie andere Tools bei Awesome Jest aufgelistet ist.
Die nahe Zukunft bringt ein Major Release: Jest 27. Veränderungen sind: Inline Snapshots ohne Prettier und Node als Standard-Umgebung (bisher: jsdom). Das, und andere technische Änderungen, sorgt für eine schnelle Ausführung. Bei Jest 28 könnte die Testing Library wohl sogar aus einzelnen Packages bestehen, damit nicht jedes einzelne Feature automatisch installiert werden muss. Eine weitere Idee ist eine Hooks-like Syntax anstelle von Funktionen wie beforeEach/afterEach, wie man in Issue 10453 nachlesen kann.
Tim erzählt uns auch ausführlich, wie man Snapshot Tests am Besten einsetzen kann und was Anti-Patterns sind. Mit seiner Erklärung wird deutlich, wie man mit Jest sog. resilient tests, also robuste und nicht fehleranfällige Tests schreiben kann.
Kahlil und Stefan treffen sich wieder einmal spät-abends um über die diversen Ausschreitungen in der Welt der JavaScript Frameworks zu berichten. Diesmal ging’s um HTML übers Kabel, in verschiedenen Ausprägungen. Und weil HÜK so gar nicht gut klingt, reden Sie über Hotwire und Co!
Annähernd drei Jahre ist es her, dass wir zuletzt mit Oliver Schöndorfer (Twitter) über Typografie im Web reden durften. Seitdem ist viel passiert, unter anderem nämlich dass Oliver einen eigenen Youtube-Kanal zum Thema „Gute Schriftwahl“ ins Leben gerufen hat. Und genau über dieses Thema wollten wir mit ihm gerne reden. Wie geht man am besten vor, wenn man auf der Suche nach einer passenden Schriftart ist?
Hans, Stefan und Schepp reden heute mit Lukas Holzer von Dynatrace über Bazel, dem neuen Build Tool aus dem Hause Google.
In dieser Revision dürften wir Priyanka Kore und Tobias Struckmeier von der Adesso als Gäste begrüßen und mit Ihnen über End-to-End-Testing mit Cypress sprechen.
End-to-End-Tests (E2E) decken das ganze System ab und sind damit die umfassendsten Tests, sie durchzuführen stellt einen allerdings vor so manche Herausforderung:
Die meisten der genannte Probleme lassen sich darauf zurückführen, dass E2E-Tests über das recht eigene Selenium Webdriver gesteuert und sie in üblichen Browsern auf diversen Betriebssystemen durchgeführt werden. Mit dieser Vorgehensweise bricht Cypress und löst damit die meisten der oben genannten Probleme – und nimmt natürlich auch gewisse Nachteile in Kauf.
Cypress nutzt vom Fleck weg bestehende Browser im System und unterstützt alle Chromium-basierten Browser und den Mozilla Firefox. Desweiteren bringt Cypress auch einen eigenen Browser mit für den Fall, dass kein unterstützter Browser vorhanden ist, sowie hilfreiche Zusatztools wie Mocha, eine Assertion Library, Launcher/Runner, Reporter und einen Proxy. Unterstützt wird all das von einer exzellenten Dokumentation Cypress ist also schnell und ohne großen Aufwand installiert, es läuft deutlich schneller als Selenium, zum einen weil es lokal läuft, zum anderen weil man bei der Interaktion mit dem DOM anders vorgehen kann als in Selenium und es lassen sich Dinge wie XHR-Calls und/oder Testdaten durch integrierte Tools sehr einfach simulieren. Und schließlich kann man Tests bei Fehlern sofort stoppen und ein Entwickler übernimmt die Fehlersuche in dem noch offenen Browser.
Wie erwähnt, hat Cypress natürlich auch Nachteile, welche die folgenden wären:
Außerdem sprechen wir im Verlauf der Sendung über über die automatische Erzeugung von bebilderten Anleitungen via Cypress-Book und über das Testen von einzelnen Komponenten in Isolation.
Developer und Speaker Tobi Timm, Senior Product Engineer bei SinnerSchrader, Koorganisator bei Nodeschool MUX/AUX und React Munich, erzählte Stefan, Schepp und Vanessa über funktionale Programmierung und endliche Zustandsmaschinen in JavaScript.
Node.js-Ninja Golo Roden, Big Boss bei The Native Web, schaute mal wieder vorbei (zuletzt: 160, 314) und informierte Stefan und Peter über die neuesten Neuerungen in Node.
package.json
und package-lock.json
ausgeräumt wird. Wir lassen es uns bei dem Thema natürlich nicht nehmen, auch die Volksfront von Judäa und die judäische Volksfront zu erwähnen, den Sinn von SemVer zu hinterfragen und am Ende in den etablierten Standardisierungs-Pessimismus abzugleiten. An konkreten Node-internen Änderungen bequatschen wir String#replaceAll
, HTTP/3, den AbortController und das Hickhack um Streams in allen Formen. Warum es immer noch kein Fetch in Node gibt (nur als Library, wobei die populärere Löung ist) besprechen wir genau wie den aktuellen Stand an der Deno-Front (siehe auch: 10 Things I Regret About Node.js und Revision 428). Zum Abschluss kommen wir um das Thema Nachhaltigkeit in OSS nicht herum und plädieren für restriktivere Lizenzen (z.B. AGPL, wie’s auch Golo bei seinem Wolkenkit macht). Zum Ausprobieren der diversen Node-Versionen emfehlen wir nvm und Volta.Heute haben wir gleich zwei Gäste zum Thema Sulu CMS: Thomas Schedler und Roland Golla.
Stefan und Peter trafen sich um ausnahmsweise mal nicht über TypeScript zu sprechen! Stattdessen geht um die Ergebnisse des State of CSS 2020!
position:fixed
) und nervige Trends (CSS in React), während wir erneut Anlass finden, BEM zu lobpreisen. Und besonders freut uns natürlich, dass ihr uns in der Kategorie „sonstige Podcasts“ auf einen Mittelfeld-Platz gewählt habt!Wenn die Kinder schlafen und die Eltern gerade wieder wach geworden sind, ist es Zeit für eine Late-Night Show mit etlichen Themen, wenig rotem Faden, dafür gehörig viel Meinung. Kahlil und Stefan holen weit aus und schmieren gehörig Senf auf folgende Begriffe:
[00:01:46]
Nachdem mit TypeScript in 50 Lessons Stefans zweites Buch erschienen ist, quatschte er mit Peter (seines Zeichens Autor der antiken HTML5-Steintafel HTML5. Webseiten innovativ und zukunftssicher) über das Schreiben von Webtech-Büchern.
Wie Ihr Euch erinnert, hatten wir in Revision 447 Frederik Braun von Mozilla zu Gast, mit dem wir über den Themenblock „Cross-Site-Scripting“ gesprochen haben. Wir hatten damals noch einen zweiten Themenblock auf der Agenda, nämlich „Site Isolation“, zu dem wir aus Zeitgründen nicht mehr kamen und den wir auf eine zukünftige Folge vertagt haben. Hier kommt sie!
Report-to
-Header Gebrauch zu machen (und Probleme zum Beispiel an sentry.io senden zu lassen). Ob wir am Ende alles richtig gemacht haben und unsere Seite erfolgreich abschotten konnten, können wir im Browser auf der globalen Property window.crossOriginIsolated / self.crossOriginIsolated
abfragen. Als Belohnung für unsere Mühen eröffnet uns der Browser Zugang zu Features wie eine hohe Genauigkeit des DOMHighResTimeStamps, SharedArrayBuffers oder performance.measureMemory()
.Im Rahmen einer Throwback-Folge besprechen nicht nur die üblichen Schepp, Stefan und Peter neue Webstandards/Browser-APIs, sondern begrüßen auch Verstärkung im Podcast-Team!
Hans, Schepp und Peter ließen mal wieder das Glücksrad drehen!
<input type="date">
in Safari, besprechen das Wesen von Webstandards an sich nebst den Aussichten von Open UI und den aktuellen Stand des Hype-Themas Scrollbar-Styling.Hans und Peter haben Fragen zu Tools, Frameworks und Grundsatzfragen rund um CSS.
Am späten Abend eines langen Tages trafen sich Stefan und Peter, um traditionell die Verheißungen der neuesten TypeScript-Version zu interpretieren
Viel zu lange ist es her (nämlich fast 6 Jahre), dass wir das letzte Mal über das Thema „Security“ im Frontend gesprochen haben. Mit Frederik Braun (@freddyb) von Mozilla haben wir endlich wieder jemand zu Gast, der sich damit auskennt und der uns über neue fiese Tricks und aktuelle wie auch zukünftige Abwehrstrategien ins Bild setzen kann.
dom.security.sanitizer.enabled
-Flag in about:configure
).Hans, Schepp und Peter lassen sich von PHP-Oberguru Sebastian Bergmann (bekannt von thePHP.cc und PHPUnit, online zu finden unter sebastian-bergmann.de sowie auf GitHub und Twitter) erklären, was PHP im Jahr 2020 alles so zu bieten hat. Es stellt sich raus: nicht alles an 2020 ist eine Vollkatastrophe!
Schepp und Peter betätigen sich in dieser Revision mal wieder mit einem Blick auf ihre jüngsten Experimente mit Browser-APIs aller Arten.
postMessage
! Wir sprechen über State- und Message-Buffer CBOR, Spectre, Service Worker, die Zukunft von SPA und das Ende der aktiven Weiterentwicklung von Moment.js.
Hans und Peter haben zwei neue Tools für sich entdeckt, von denen sie in dieser Revision berichten.
Aufgrund außerplanmäßiger Ausfälle geplanter Gäste erzählt Schepp etwas von seinen Versuchen, mit allen Mitteln Select-Elemente zu stylen (was nicht gehen sollte, aber trotzdem einigermaßen klappt) und Peter von seinen Versuchen, Elementen ihre Computed Styles zu entlocken (was trivial sein sollte, aber knifflig ist). Moderiert vom unvergleichlichen Hans!
<select>
– <option>
-Elementen eine Länderauswahl mit bunten Landesflaggen zu bauen. Native Elemente haben viele Vorteile, sind aber Replaced Elements und daher spätestens seit Firefox Electrolysis in allen Browsern ungestaltbar. Schepp griff zu farbigen Fonts und dem Font-Editor Birdfont um sich einer Problemlösung anzunähern. Des Weiteren geht es um unicode-range, Zero-Width-Spaces, Ligaturen und Swingerclubs.Element.computedStyleMap()
, Custom Properties, Browser, Browserbugs in Chrome (v.a. mit font-feature-settings) und die Implementierung von Single-Page-Apps in Netscape-Browsern.Als sich abzeichnete, dass uns kein gutes Thema einfallen würde, konsultierten wir Twitter, um zu fragen, ob jemand dort Lust und Zeit hat, über ein mitgebrachtes Thema zu quatschen. Und wir hatten Glück! Marvin Hagemeister, welcher letztes Jahr schon einmal bei uns zum Thema Preact und Code-Golfing in der Sendung war und der gerade mit seinen Mitstreitern an Preact 11 arbeitet, schlug vor, mit uns über End-to-End-Testing zu reden. Nachdem wir uns letztens mit Frontend-Unit-Testing beschäftigt hatten ein wunderbar passendes Thema. Also griffen wir zu! :)
Diese Sendung beschäftigt sich mal wieder mit einem Content Management System. Gemeinsam mit Sebastian Helzle und Robert Lemke sprechen Rodney und Hans über Neos CMS (Twitter).
Willkommen zur zweiten Late Night DadOps Folge mit Stefan und Kahlil. Die beiden haben sich mal wieder zu später Stunde vor die Mics geklemmt um über Dinge zu sprechen die sie gerade bewegen.
Thema dieses mal ist der Karrierepfad des Engineering Managers. Kahlil wechselte Ende letzten Jahres in diesen Beruf und gibt einen Einblick in seine Eindrücke bisher und was das eigentlich ist.
Stefan hat über die letzten Jahre bei Dynatrace die Karrieremöglichkeiten dort mit entwickelt um den Entwicklern dort bessere Entwicklungsmöglichkeiten zu bieten. Er plaudert aus dem Nähkästchen.
Florian Herlings betätigt sich bei SPICED Academy als Coach bei Coding Bootcamps und plaudert in dieser Revision zum Vorteil von Hans und Peter aus dem Nähkästchen.
Marcel Poelker (Twitter) ist CTO von Taledo (Twitter, Insta), einer digitalen Recruiting-Plattform, und erzählt Schepp und Peter in dieser Revision, wie der Weg vom Nerd zum Startup-Gründer aussieht.
Nach SelfHTML feierten am 23. Juli 2020 auch die MDN Web Docs ein Jubiläum, nämlich ihr fünfzehnjähriges Bestehen. Für uns ein toller Anlass, einen Gast einzuladen, mit dem wir schon länger sprechen wollten: Kadir Topal, Mozilla-Urgestein und Product Lead der MDN Web Docs.
Dann widmen wir uns neueren Entwicklungen, die den Status der MDN Web Docs als Anlaufpunkt für Webentwickler zementiert haben. Das wären zum einen die ab 2018 in den Beschreibungstexten eingebetteten interaktiven Code-Samples. Desweiteren die 2019 verkündete, zusammen mit Can I Use von Grund auf neu konzipierten Kompatibilitätstabellen, aka „MDN browser compatibility data“, die auf GitHub liegen, und dort von jederfrau, aber vor allem den Browser-Herstellern regelmäßig erweitert werden. Mittlerweile finden sie nicht nur bei MDN und Can I Use selbst Verwendung, sondern auch in Lintern, Prefixern und IDEs wie Visual Studio Code. Und drittens sind es regelmäßige (remote) Nutzertests und die jährlich stattfindende „MDN Developer Needs Assessment“_umfrage, deren Ergebnisse im Web DNA Report mündet und die sogar Google dazu bewegt haben, Geld in die Hand zu nehmen, um konkurrierende Browser besser zu machen.
Für die Zukunft ist geplant, Einsteiger-Leitfäden in der MDN Learning Area bereitzustellen, die nicht mehr nur Browser-Technologien zum Fokus haben, sondern die beim Einstieg in JavaScript-Frameworks oder Node.js helfen.
Vor einiger Zeit fragten wir auf Twitter, wer von euch eigentlich Tests im Frontend schreibt. Die Antwort war mehr als verblüffend und somit geht’s in der neusten Revision Working Draft mal wieder um Testing, um genau zu sein Unit-Testing im Frontend. Unser Gast Tim Seckinger gibt uns noch mal eine Übersicht über Testing im Allgemeinen und baut auf der Revision 375 auf, in der wir auch über Testing gesprochen haben.
Peter lies sich in dieser Revision das Open/Decentralized/Federated/Indie Web erklären und konnte dabei auf den Input von Matthias Pfefferle (Blog, Twitter) und Sebastian Lasse (Mastodon, Autor von Redaktor) zurückgreifen.
Beinahe schon Tradition: Stefan und Peter analysieren die nächste TypeScript Version im Detail. Das erwartet euch in Version 4.
Kahlil und Stefan gehen in eine Late-Night-DadOps-Episode, um über Eleventy und moderne, statische Seitengeneratoren zu reden. Latenzen und Lags inklusive!
Lange geplant, jetzt in die Tat umgesetzt, haben wir diese Revision Harald Kirschner zu Gast, um über den gesamten Firefox Cosmos zu sprechen. Harald ist aktuell nicht nur Produkt Manager für die Firefox Developer Tools und Performance Tooling zuständig, sondern hat zuvor maßgeblich am Projekt „Quantum“ mitgewirkt, bei dem Firefox‘ Infrastruktur nach und nach durch modernere und performantere Bausteine ersetzt wurde.
Anlässlich seines 25-jährigen Jubiläums und weil einige von uns ohne niemals zur Webentwicklung gekommen wären, luden wir Matthias Scharwies und Gunnar Bittersmann (bittersmann.de / @g16n) vom SelfHTML-Projekt in die Sendung ein.
Zur Abwechslung beschäftigen wir uns in dieser Revision einmal nicht mit Technik, sondern mit dem relativ neuen Phänomen der Coding Bootcamps. Mit dabei sind Marie von der Wehl ([email protected] / @MarWehl), die ein solches Bootcamp im vergangenen Jahr bei neue fische in Hamburg durchlaufen ist, sowie Franziska Gertz ([email protected] / @frau_scholle), die als Teamlead für UI Engineers bei sum.como von vielen Vorzügen der Bootcamp-Abgänger zu berichten weiß.
Von Franzi wiederum bekommen wir attestiert, dass diese Bootcamps tatsächlich tollen Output liefern und ihre Firma derweil einige „neue fische“-Abgänger beschäftigt, nämlich ganze drei Entwicklerinnen und zwei Entwickler. Franzi und ihr gesamtes Team genießen die Begeisterung und den Wissensdurst, den alle Bootcamp-Abgänger gleichermaßen in die Firma einbringen (und den man bei Marie hört). Gleichzeitig ist aber auch klar, dass so ein Bootcamp nur der Anfang ist und so unterstützt und begleitet ihr Team die Neueinsteiger:innen, so dass sie sich bestmöglich in der Praxis einfinden (oder auch in Vue anstelle des im Bootcamp behandelten React).
Uns hat das Befragen der beiden sehr viel Spaß gemacht und wenn Ihr oder bekannte von Euch ebenfalls über ein Coding Bootcamp nachdenken, dann hört diese Folge und kommt gerne auf Marie oder Franzi mit weiteren Fragen zu. Und wenn Ihr selbst ein solches Bootcamp absolviert habt, dann würde uns interessieren, wie Eure Erfahrung war. Hinterlasst gerne eine Nachricht in unserem Kommentarbereich!
Schepp, Kahlil und Peter diskutierten in epischer Breite die Erfolge und Misserfolge von HTML5 und viele andere Dinge
Hans und Rodney unterhalten sich über Deno, das ziemlich genau zwei Jahre nach dem ersten Commit in Version 1.0 veröffentlicht wurde.
Schepp führt Hans und Peter durch eine Präsentation über neue CSS-Features, die er für das Meetup Web Design Cologne vorbereitet hatte.
attr()
2.0, Seitenverhältnisse (auch für Video) Scrollbar-Styling (mit Shoutout an den IE6) und Houdini, speziell das Typed CSSOM und die Paint-API. Mehr neue Features findet ihr unter cssdb.org und in Schepps Präsentation (Chrome Canary empfohlen).Eine nie dagewesenen Neuheit: HTML5-Glücksrad mit Gast! Der aus Funk, Fernsehen und Revision 424 bekannte Stefan Judis (Twitter, Web), seines Zeichens Devrel bei Contentful, scrollte mit Schepp und Peter durch die HTML-Specs, um frei über Webstandards und Trends zu assoziieren.
event.submitter
(MDN) verrät, welcher Button zum Absenden eines Formulars verwendet wurde. Wir fragen uns, wozu das gut sein könnte, lernen die requestSubmit()
-Methode kennen und Peter gelingt es erneut, sich über React zu echauffieren.<track>
-Element ersann man das ureigene WebVTT-Format, das uns dezent an SMIL erinnert (auch wenn SMIL, des größeren Alters zum Trotz noch weniger gut als WebVTT unterstützt wird).<meter>
und <progress>
<details>
, aber kein eingebautes Tab Widget? Peter versucht sich an einer Erklärung.Am Ende landen wir unsersehens in den ECMAScript-Specs und staunen über die diversen weniger bekannten Rudimente in JavaScript. Vielleicht machen wir nächstes Mal ein JavaScript-Glücksrad?
Nachdem Peter, motiviert durch Warhol, mal wieder einige Zeit im absurden Paralleluniversum semi-relevanter Teile der HTML-Spezifikation verbracht hatte, musste er in dieser Revision Schepp und Hans davon im Detail erzählen.
<audio>
-Elemente ohne controls
-Attribut, <input type="hidden">
, <noscript>
wenn Scripting aktiviert ist, <form>
-Elemente, die direkte Kinder von <table>
, <thead>
, <tbody>
, <tfoot>
oder <tr>
sind, sowie Inhalte von Replaced Elements (d.h. <source>
und <track>
in <video>
bzw. <audio>
und Fallback-Inhalt in unterstützen <video>
-, <audio>
– und <canvas>
-Elementen). Mit Stefan Judis (Twitter, Web), seines Zeichens Devrel bei Contentful, plauderten Schepp, Hans und Peter über Webdev-Tools im Allgemeinen und die Auswirkungen von Tools auf den Webdev-Alltag im Besonderen.
Hans und Peter lassen sich in dieser Revision von Roland Kuhn (Web, Twitter), Autor von Reactive Design Patterns alles über Reacive Systems und Webtechnologie in Industrieanwendungen erzählen.
Nachdem es schon wieder unglaubliche zwei Jahre her ist, dass wir mit ihm über das „Actor Model“ reden durften, war es nun höchste Eisenbahn, Surma wieder einzuladen und über aktuelle Entwicklungen im (multigethreadedten) Web zu plaudern.
If WASM+WASI existed in 2008, we wouldn’t have needed to created Docker. That’s how important it is. Webassembly on the server is the future of computing. A standardized system interface was the missing link. Let’s hope WASI is up to the task! https://t.co/wnXQg4kwa4
— Solomon Hykes (@solomonstre) March 27, 2019
In dieser Revision wurde Peter von Hans und Rodney über den Inhalt seines Posts über JavaScript-Generators ausgequetscht
This time, again in English, we invited Adam Argyle of Google (take a look at his fancy website and Twitter) to our show to talk about his work especially in the field of CSS specification writing.
Pestbedingt fielen uns die Gäste aus, sodass Schepp und Peter einfach spontan ein paar Runden HTML5-Glücksrad spielten.
<a>
-Element, sondern ggf. auch eine Image Map, ein Formular oder ein <link>-Element. Über dieses und die diversen Sorten von Links quatschen wir ausgiebig. Performance-Papst Schepp kriegt außerdem die Kurve zu Resource Hints und Priority Hints.http-equiv
-Attributs ausgiebig zu diskutieren.Wie jetzt? Im TypeScript-affinen Working Draft erlauben wir uns gegen den Heilsbringer zu ketzen? Tatsächlich erlauben wir gegenteilige Meinungen, hergebracht von Robert Weber, der schon in einigen Sendungen zu Gast war.
In einer extralangen Folge nehmen sich Schepp und Peter Zeit für einen Rückblick auf die Internet-Explorer-Ära und speziell die vom IE etablierten Webtechnologien, die auch heute noch teilweise ihresgleichen suchen.
Kinder, wie die Zeit vergeht! Erst in der Revision 402 haben wir TypeScript 3.7 analysiert und nun steht auch schon Version 3.8 vor der Tür. Peter und Stefan nehmen sich dieses Themas (und weitläufig abschweifend auch diverser anderer Themen) an.
watchOptions
und ts-node, Incremental Checking sowie Stricter Assignability Checks to Unions with Index Signatures. Was immer das auch sei mag!Diese Revision fragt Schepp das dynamische Duo aus Hans und Peter über ihr SAAS-Projekt Warhol aus.
In diese Revision dreht sich alles um Werbung und Tracking Scripte. Denn Hans interviewte Schepp anlässlich seines Blogposts zu dem Thema aus Dezember.
Dann reden wir über den Konflikt von Werbung mit einem echten responsiven Ansatz, und Lösungsmöglichkeiten.
Werbemittel sind meist auch nicht performant programmiert, sondern eher hemdsärmelig. Deshalb findet man darin auch oft das antike und render-blockierende document.write
. Schepp hat eine Ansatz mit position: sticky
hilft hier aus der Misere.
Sogenannte Wolkenkratzer- oder Hintergrundbild-Anzeigen neigen dazu, dafür zu sorgen, dass sie immer sichtbar sind. Das kann zur Folge haben, dass sie manchmal wichtige UI wie den Webseiten-Kopf oder das Off-Canvas-Menü abdecken und diese Elemente dadurch unbedienbar werden. Der Trick hier ist, die Werbung in einem Container einzufangen, und diesen dann geschickt in den restlichen Stacking Context einzubinden.
Zu guter Letzt entpuppen sich Werbeanzeigen manchmal als Trojanische Pferde, deren eigentliches Ziel es ist, unbemerkt sensible Daten der User zu stehlen. Dafür lesen sie vorhandene, oder heimlich eingefügte Inputs aus. Dem hat Schepp einen Riegel vorgeschoben, indem er den Prototypen des Input Elements gepatcht hat.
Das Warten hat endlich ein Ende: Nach mehreren Monaten der intensiven Suche — fast schon ein Running Gag! — ist nun jemand mit fundamentalem Svelte-Wissen ins virtuelle Studio reingeschneit: Vanessa Böhner, die treuen Hörern mit ihren versierten Einblicken zu Vue, Frontend-Testing und Micro Frontends bekannt sein dürfte, hat sich im Zuge des Relaunchs ihrer Seite intensiv mit Svelte auseinander gesetzt. Noch intensiver, nachdem die Einladung zum Podcast kam. Podcast Driven Development, sozusagen. In gewohnter Qualität und Genauigkeit gibt uns Vanessa den Svelte Deep Dive, beantwortet alle Fragen zu Framework, Framework-Geschichte und Use Cases.
Hans und Peter hatten diesmal das Vergnügen, sich mit dem langjährigen Podcast-Hörer Tobias Barth (freischaffender Frontend- und gelegentlicher Node-Entwickler, zu finden in Web, Twitter und auf Dev.to) über die Prozesse und Tools rund um die Veröffentlichung von JavaScript-Paketen austauschen zu dürfen.
main
, browser
, module
und types
in der package.json? Am Ende dürfen Verweise auf ein paar Alltags-Helfer nicht fehlen, allen voran das Link-Kommendo (gibt es für NPM wie auch für yarn), die Peer Dependencies, das Dedupe-Kommando und allgemeine Tools wie Prettier, ESLint, Travis, Circle CI, Greenkeeper und Dependabot.Schepp und Stefan bekommen heute Verstärkung von Lisi Linhart, ihres Zeichens Webentwicklerin und Dozentin an der FH Salzburg, die uns einen ausführlichen und genauen Rundumschlag in Sachen Web Animation gibt.
In München steht ein Softwarehaus — Eins, Zwei, Browser! ?
Die Bringen einen Browser raus — Eins, Zwei, Browser ?
Mit einer Suchmaschine dran — Eins, Zwei, Browser ?
Die alles kann, was Google kann
Doch an die Daten kommt kein andrer ran
Der Browser ist auch superschnell
Nur wie ist das Geschäftsmodell? ? ? ?
For all our English listeners (and everybody else who is scratching their head due to their lack of knowledge in Bavarian folklore — who could blame you?!): Welcome to the most recent revision of Working Draft, where Krzysztof Modras is telling us how to build your own browser based on Firefox. He also answers the most burning question: why does Europe need its own search engine.
Leise rendert der Schnee bei dieser in der Vorweihnachtszeit aufgenommenen Revision … und damit er das auch halbwegs zügig macht, sprechen Schepp und Peter über zwei Features, die Webentwicklern bessere Kontrolle über das Browser-Rendering geben.
contain
-Eigenschaft und ihre diversen Werte, display:contents
(Draft, CanIUse) und position:sticky
rendersubtree
-Attribut mit display: none
(und klassischem Lazy Loading) sowie Origin Trials mit Vendor Prefixes. Am Ende phantasieren wir ein wenig über einen Polyfill für rendersubtree
und eine Layout-Performance-Test-Seite im Stile von JSPerf.Hans und Peter lassen sich von Jessica Jordan (Web, Twitter), ihres Zeichens Software-Engineer bei simplabs und Autorin für The Ember Times alles zum unterschätzen JavaScript-Framework Ember.js erzählen!
Nachdem alle Co-Hosts der Reihe nach, aufgrund von verschiedenen dringenden Gründen, ausfielen, interviewte Kahlil im Alleingang Vanessa Otto zum Thema Micro Frontends.
Zwischen den Jahren plauderten Hans und Peter außerhalb der Reihe über die Umfrageergebnisse der 2019er-Edition der State of JS.
Kahlil, Hans und Peter erfahren in dieser Revison von Stefan alles über die ScriptConf, die JavaScript-Konferenz in Österreichs Tech-Hub Linz.
Wir kommen nicht umhin festzustellen, dass das Techboom-Land Österreich zur Zeit vor Konferenzen geradezu explodiert: neben der Webclerks-Konferenz, der tsconf.eu und SoCraTes Austria ist hier vor allem die DevOne zu nennen, bei der DynaTrace und damit auch Stefan ihre Finger im Spiel haben. Generell der Standort Linz scheint für viele Software-Entwicklungs-Firmen interessant zu sein. Stefan hat ein paar Ideen, warum das so ist.
Nach einem kurzen Talk-Review der ScriptConf III (von der mittlerweile alle Videos hochgeladen wurden) enden wir mit einem kleinen Exkurs über Software-Entwicklungs-Trend-Zyklen, wozu Kahlil mit Why Isn’t Functional Programming the Norm und Peter mit Object-Oriented Programming is Bad zwei Unterschiedliche Erklär-Ansätze zur Dominanz von Enterprise-OOP zu Felde führen. Und wir decken auf, dass Stefan die tsconf.eu eigentlich nur angeschoben hat, um TypeScript-Erfinder Anders Hejlsberg nach Linz zu lotsen. Aber pssst!
Maintainer Lukas Taegert-Atkinson (Twitter, Github) gab uns einen tiefen Einblick in das Was, Warum und Wie des JavaScript-Modul-Bundlers Rollup.js – nicht nur was die Technik angeht, sondern auch mit Fokus auf das Dasein als Open-Source-Maintainer.
This revision we had the pleasure to sit down with Christophe Porteneuve (@porteneuve) who is based in Paris. Christophe made his entry to web development almost twenty-five years ago and is well known in today’s JavaScript scene since back in the days when he became core team member of prototype.js (who still remmebers this?). Nowadays he runs the consultancy & training company Delicious Insights together with a pertner where they offer (Node-)JS, Tooling and Git Workshops. On top of that Christophe can usually be found MC’ing the dotJS Conferences.
Afterwards we talked about how new features find their way into JavaScript, what ECMA is, what JavaScript, what TC-39 and the different „Stages“ means and why JavaScript today is still a trademark of Oracle in the United States.
And of course we also talked about these features:
This time we have two links for you:
The later three ones are not free, but as listeners of this podcast, you get a 30% discount until January 15th, 2020, with this link: screencasts.delicious-insights.com/?coupon=WORKINGDRAFT-30-OFF.
Schepp, Kahlil und Hans quatschen über APIs, die sich von Frameworks-Features zu Browser-APIs entwickeln.
Hans, Schepp und Stefan analysieren ein Best-Of der kommenden TypeScript Version 3.7.
Dieses Interview ist einer von 5 Teilen unserer Serie On Tour @ #thinkabout19.
Im Mai waren wir mal wieder auf einer neuen Konferenz in Köln-Ehrenfeld zu gegen, die sich neben Design- und Development-Themen auch stark mit der Thematik beschäftigt, wie Software unsere Gesellschaft beeinflusst.
Die Zwei-Track Konferenz schaffte es mit einer sehr guten Organisation und viel Liebe zum Detail eine gesamtheitlich starke Performance abzugeben und eine hohe Messlatte für eine nächste Episode zu setzen.
Der Einfluss von Code auf unsere Gesellschaft ist durch Machine Learning und das Design der damit verbundenen Algorithmen stärker denn je. Jedes Stück Software, dass geschrieben wird, entsteht mit einem bestimmten „Bias“, einer Art Vorurteil, der durch die Zusammensetzung des Projektteams stark beeinflusst wird, mein Anika. Welche Schritte notwendig sind um diesen Bias zu minimalisieren erläutern wir gemeinsam.
Hans und Peter diskutieren über Patterns in React!
Zur Feier des Tages versammelte sich das komplette Team (Peter, Hans, Rodney, Stefan, Schepp) nebst allen Alumni Markus Schlegel, Kahlil Lechelt und Anselm Hannemann in einer Videokonferenz! Von dieser Revision gibt es also auch eine Youtube-Version mit Bewegtbild:
In Video wie in Podcast sprachen wir über das Big Picture: die Webentwicklung (und der Podcast) von damals verglichen mit heute und wie auch wir selbst uns im Laufe der Zeit so verändert haben.
Schepp, Hans und Stefan im Gespräch mit Thomas Steiner von Google. Seines Zeichens Dev Advocate für Project Fugu.
Kahlil und Hans erzählen von Refactoring-Projekten mit und zu TypeScript
This interview is part of our four-part series On Tour @ #cssday.
Elika and Florian both work a lot on CSS Specifications. We discuss the different topics of Line Breaking and Vertical Layout for text which were the talks of the both speakers. After some historical background we speak about the challenges the W3C Experts face when writing specifications and how they evolve over time.
Both Elika and Florian are also members of the W3C Advisory Board. They give us a short insight in what the board does and how the processes at W3C affect their work.
In June 2019 we visited beautiful Amsterdam again to be part of CSS Day 2019 (with a UI special) taking place at Compagnietheater. CSS Day is organised since 2013 by Peter-Paul Koch, Krijn Hoetmer, and Martijn van Duuren – the people behind performance.now(), Mobilism and dsgnday.
This year’s edition featured great CSS talks going into details of how CSS properties like word-break
work and talks about more design focused topics like how we can design better interfaces.
We’re sure there will be another CSS Day next year. So stay tuned.
Mit Code-Golf-Großmeister Marvin Hagemeister (Webseite, Twitter) hatten wir in dieser Revision das Vergnügen, das Warum und das Wie von Preact zu ergründen.
Dieses Interview ist einer von 5 Teilen unserer Serie On Tour @ #thinkabout19.
Im Mai waren wir mal wieder auf einer neuen Konferenz in Köln-Ehrenfeld zu gegen, die sich neben Design- und Development-Themen auch stark mit der Thematik beschäftigt, wie Software unsere Gesellschaft beeinflusst.
Die Zwei-Track Konferenz schaffte es mit einer sehr guten Organisation und viel Liebe zum Detail eine gesamtheitlich starke Performance abzugeben und eine hohe Messlatte für eine nächste Episode zu setzen.
Wir haben uns mit Christopher über seine Erfahrungen in der fast 10 Jahre alten Code von add-ons.mozilla.org unterhalten. Er gab uns einige Einblicke über die Ansätze von Refactorings und welche Methoden ein guter Ansatz zum Umgang mit historisch entstandenen Code sind. Wir teilen auch unsere eigenen Erfahrungen.
Hans, Schepp und Stefan bekommen Besuch von Daniel Bachler, der uns über Front-End Entwicklung mit rein funktionalen Programmiersprachen aufklärt.
null
sorgt für — hört, hört — keinerlei Laufzeitfehler! Mit der Elm Architecture bekommen wir auch so etwas wie Redux frei Haus geliefert (oder bekommen wir mit Redux die Elm Architektur geliefert?) und können fesche Web-Anwendungen bauen. Eigenheiten, Vor- und Nachteile und wie man mit JavaScript spricht, erfährt ihr alles hier. Weiteres Info-Material ist weiter unten verlinktIn dieser Revision kitzelte unser Gast Philipp Kühn (Webseite, Github, Twitter), seines Zeichens Gründer von Ueberdosis und Scrumpy, unsere Nerven mit den neuesten Gruselgeschichten aus der WYSIWYG-Krypta und erzählte uns alles über sein eigenes WYSIWYG-Werk Tiptap.
This interview is part of our four-part series On Tour @ #cssday.
The way you design your products often represents how your company works. A lot of this is influenced by the culture you employ throughout your teams argues Başak. We talk about how important to right culture and diversity is for teams that design and develop software products.
Oftentimes this topic is overlooked by many and should get more attention since it is really important for solutions that you find to problems.
In June 2019 we visited beautiful Amsterdam again to be part of CSS Day 2019 (with a UI special) taking place at Compagnietheater. CSS Day is organised since 2013 by Peter-Paul Koch, Krijn Hoetmer, and Martijn van Duuren – the people behind performance.now(), Mobilism and dsgnday.
This year’s edition featured great CSS talks going into details of how CSS properties like word-break
work and talks about more design focused topics like how we can design better interfaces.
We’re sure there will be another CSS Day next year. So stay tuned.
Dieses Interview ist einer von 5 Teilen unserer Serie On Tour @ #thinkabout19.
Im Mai waren wir mal wieder auf einer neuen Konferenz in Köln-Ehrenfeld zu gegen, die sich neben Design- und Development-Themen auch stark mit der Thematik beschäftigt, wie Software unsere Gesellschaft beeinflusst.
Die Zwei-Track Konferenz schaffte es mit einer sehr guten Organisation und viel Liebe zum Detail eine gesamtheitlich starke Performance abzugeben und eine hohe Messlatte für eine nächste Episode zu setzen.
In einer Zeit in der viele Produkte, die wir im Alltag verwenden auf Software basieren, prägt diese Software unser Zusammenleben. Als Entwicklerinnen und Entwickler haben wir somit großen Einfluss auf die Gesellschaft. Mit unserem Code können wir maßgeblich mitbestimmen, wie Produkte funktionieren und welche Prinzipien und Ethik sie verfolgen. Gemeinsam mit Maren sprechen wir über die Aufgaben und Pflichten von Entwickelnden und wie wir diese in unserer täglichen Arbeit umsetzen können.
Web Assembly kommt und macht doch endlich Schluß mit JavaScript, oder? Nun, fast. Web Assembly ist schon da. JavaScript braucht man — im Moment! — immer noch. Was hat es jetzt mit WASM auf sich, wie entwickelt man dafür und wohin geht die Reise? Ryan Levick von Microsoft erzählt uns alles!
This interview is part of our four-part series On Tour @ #cssday.
The first time we got into contact with Tab Atkins was at Fronteers 2011 in Amsterdam. Tab talked about things he was excited about in CSS that were to come. We talk about what CSS Custom Properties and Nesting in CSS which at that time were well known because of Preprocessors like Sass. Nowadays Custom Properties are wildly supported but Nesting still lacks support and a proper spec.
If we look at today the most interesting thing in CSS is Houdini. Tab explains what is coming up in the field of Houdini APIs and how he sees the future of CSS specifications.
In June 2019 we visited beautiful Amsterdam again to be part of CSS Day 2019 (with a UI special) taking place at Compagnietheater. CSS Day is organised since 2013 by Peter-Paul Koch, Krijn Hoetmer, and Martijn van Duuren – the people behind performance.now(), Mobilism and dsgnday.
This year’s edition featured great CSS talks going into details of how CSS properties like word-break
work and talks about more design focused topics like how we can design better interfaces.
We’re sure there will be another CSS Day next year. So stay tuned.
Dieses Interview ist einer von 5 Teilen unserer Serie On Tour @ #thinkabout19.
Im Mai waren wir mal wieder auf einer neuen Konferenz in Köln-Ehrenfeld zu gegen, die sich neben Design- und Development-Themen auch stark mit der Thematik beschäftigt, wie Software unsere Gesellschaft beeinflusst.
Die Zwei-Track Konferenz schaffte es mit einer sehr guten Organisation und viel Liebe zum Detail eine gesamtheitlich starke Performance abzugeben und eine hohe Messlatte für eine nächste Episode zu setzen.
Katharina war bereits in Revision 286 zum Thema Aurelia zu Gast. Diesmal nutzen wir die Gelegenheit, um uns mit ihr zum Thema Web Components auszutauschen. Viele moderne JavaScript-Frameworks verfolgen den Gedanken der Komponentisierung bereits, einige unterstützen auch den „Standard“-Weg der Web Components. Allerdings gibt es auch noch einiges zutun, wie uns Katharina erzählt.
This interview is part of our four-part series On Tour @ #cssday.
Designing interfaces is not easy. Especially when it comes to accessibility it is hard to do it „right“. With Heydon we talk about the difficulties we face when designing and coding different types of interfaces like dialogs or tabbed content. His project Inclusive Components can help you around the quirks of accessibility. In general using these patterns might not be a good idea though. Here is why.
You might also want to check out Heydon’s videos on different topics in regards to front-end development.
In June 2019 we visited beautiful Amsterdam again to be part of CSS Day 2019 (with a UI special) taking place at Compagnietheater. CSS Day is organised since 2013 by Peter-Paul Koch, Krijn Hoetmer, and Martijn van Duuren – the people behind performance.now(), Mobilism and dsgnday.
This year’s edition featured great CSS talks going into details of how CSS properties like word-break
work and talks about more design focused topics like how we can design better interfaces.
We’re sure there will be another CSS Day next year. So stay tuned.
Hans, Peter und Rodney analysieren in gewohnt messerscharfer Manier ein paar neue, alte und vorgeschlagene JavaScript-Features – teilweise sogar im Grenzbereich zur kontroversen Diskussion! Bitte anschnallen …
import()
nur wie eine Funktion aussieht, tatsächlich aber keine ist, in etwa wie super()
in Klassen. Dynamic Import verwenden wir allesamt häufig und gern und tauschen uns etwas über Code Splitting in Theorie und Praxis sowie Lazy React aus. Etwas weniger Begeistung können wir für den F# pipeline operator und den Konkurrenzentwurf Smart Pipelines (Proposal) aufbringen. Während Hans durchaus glaubt, dass es ein Publikum für dieses Feature gibt, ist Rodney eher unterwältigt und Peter eher ent- als begeistert. Weiterhin kommen ein Proposal für Built-in Immutability sowie der Umstand, dass Array.prototype.sort() nunmehr stabil sein muss zur Sprache (worüber Rodney in grauer Vorzeit mal einen ausführlichen Artikel schrieb).Stefan und Peter durften sich von Bastian Allgeier (Twitter, Webseite) erzählen lassen, was es mit seinem CMS Kirby im Allgemeinen und Version 3 im besonderen auf sich hat.
Es ist wieder so weit: Wir haben uns eine neue Web-API rausgesucht, über die wir sprechen wollen. Der Schepp hat Ahnung und erklärt uns wie es geht.
This interview is part of a five-piece series: On Tour @ #thinkabout19.
In May we attended the Think About Conference – a new conference in Cologne Ehrenfeld about design and developmentand the influence and, as a fresh take, the impact of both on our society. And they nailed it! The two-track conference was extremely well organised and received, and it was stunning to see how much attention went into the details. All in all the set high expectation for the upcoming years!
Laura and Aral’s topic of heart is social justice in the digital age. They share how big corporates gather a lot of data from their users and how this affects everyone of us. The idea of owning your own data is not new. Laura and Aral provide ideas on how you can archive more ownership and what other efforts they are employing towards a more sustainable and ethical way to technology as a whole.
Schepp had the great opportunity to sit together with Jason Lengstorf to talk about Gatsby.js
The fine folks from Gatsby provided a transcript of the show. Click on the details button to see the whole show in text:
Schepp 00:00: Hello, and welcome to Working Draft, Revision 390.
Peter 00:35: This Revision of Working Draft is brought to you by Storyblok. Storyblok is a headless content management system with an impressive visual editor that lets you change your webpage while you’re browsing. This is quite useful, but in my opinion, the most important thing about Storyblok is that it works with any technology stack that you can think of. Storyblok works with PHP, and also with Node and of course with Ruby and with Gatsby and with basically everything else.
Peter 00:59: And it does not only work with just about everything, but there’s also documentation for just about everything. The Storyblok team will even write a tutorial just for you, and your strange tech stack, if whatever you’re working with is not covered by their existing documentation.
Peter 01:13: You can try Storyblok for free for an unlimited time, as long as it’s just you as a single user. So get started now at storyblok.com. That’s story, B-L-O-K, .com. Our thanks to Storyblok for supporting this Revision of Working Draft.
Schepp 01:29: As you might suspect, we will have a guest today. Usually, we’re not in English. We are two people. I’m Christian, and our guest is Jason Lengstorf. Hello.
Jason Lengstorf 01:42: Hey, thanks for having me.
Schepp 01:44: Thanks for coming. So Jason, it’s the first time that you appear in our podcast, so maybe you can tell the people who you are and what you’re doing.
Jason Lengstorf 01:55: Sure. My name is Jason Lengstorf. I am the Head of Developer Relations at Gatsby. Gatsby is a React and GraphQL powered framework for building really high performance websites and apps that compile down to static assets, so they’re easy to deploy.
Schepp 02:13: All right, and where do you live? So where are you connected from?
Jason Lengstorf 02:20: I am based in Portland, Oregon, in the US.
Schepp 02:24: All right, so it’s basically the Brighton of the US, so to say, like the creative city. Is that correct?
Jason Lengstorf 02:35: I mean, it is one of the creative cities. Actually, the reason that I moved out here is that years ago, I owned my own agency. And my agency was originally based in Montana, which is where I grew up. But I wanted more geographical credibility, I wanted people to think that it was a hip agency.
Jason Lengstorf 02:54: So I moved to Portland, specifically, so people would hear it and say, „That’s a hip agency. They’re based in Portland.“
Schepp 03:00: Yeah, sure. It’s the same in Germany. So you need to be in one of the bigger cities or, yes, in a hip city. All right. So for how long are you now, have you left behind your own company and have you joined Gatsby, the Gatsby team?
Jason Lengstorf 03:21: I sold my agency in 2014, and then I did a little bit of consulting, I worked at IBM for a while. And then I joined up at Gatsby in February or March of last year.
Schepp 03:38: And that is also due to Gatsby being quite a fresh project. So not too old. I think it started in 2017. So you couldn’t really join much earlier than that.
Jason Lengstorf 03:52: So Gatsby got funding in 2017, but it has been a project since I believe 2015. Kyle Matthews, our CEO, was experimenting with React and GraphQL when they were really, really new technologies. And he’s got a very right place, right time, he bet on the right horses, basically. And the framework that he put together for Gatsby has, it kind of matured at the same time that the dev world was really embracing React, and we’re seeing GraphQL become very stable.
Jason Lengstorf 04:29: So it’s kind of a perfect storm of everything falling into place for us.
Schepp 04:34: Okay, nice. I heard for Webpack, it was a similar story, that Webpack was also around for much longer, and then at a certain point in time, I think Instagram adopted it, and it was just the right thing at the right time, and then it just exploded. So it sounds pretty similar to Gatsby.
Jason Lengstorf 05:00: Yeah, mm-hmm (affirmative).
Schepp 05:01: Also, I’ve followed JSConf EU, the last week. I don’t know if you’ve been there. I wasn’t there, but I followed along and I’ve seen one talk about the JavaScript ecosystem on the server side. And Gatsby was also like the system right after the, let’s say the old chap, Express, that was leading the pack. So pretty popular.
Jason Lengstorf 05:37: I think the stats were really impressive. I think it was Gatsby and Next had, I think Gatsby it was like 8% of NPM users are using Gatsby, which was a great, like really, really encouraging for us to hear. And I think Next had a pretty similar number.
Jason Lengstorf 05:54: So it’s very cool to see that people are starting to embrace the server side or in Gatsby’s case, kind of pre-rendering and the kind of letting a framework make a lot of the boilerplate decisions, so that you can focus on building something, rather than having to set up all the foundational yak shaving work to even start building.
Schepp 06:17: Yes, yeah. That’s really nice. You said it’s based on React. You said that a few sentences before, and also on GraphQL. And it’s basically a CMS, or maybe not a CMS, but a static site generator, sort of.
Jason Lengstorf 06:44: I would characterize Gatsby as a content orchestration layer. So we have, Sam Bhagwat, one of our co-founders wrote this article that sums up the concept really well as the content mesh. And it’s the idea that originally, everyone had to use kind of a single CMS system, where it was monolithic. The CMS handled all of the data, all of the presentation layer, everything in between.
Jason Lengstorf 07:12: And as a result, when you were trying to build a website, you had to make these trade-offs. Well, we do a blog and eCommerce and then you had to decide which one was more important from a content management standpoint. And then choose the one that was pretty good, or like great at the thing you needed, and only pretty good or even terrible at the thing that you also needed that wasn’t its kind of core focus.
Jason Lengstorf 07:33: A good example, this would be something like if you ever had to build a Magento site, and get it to do anything other than eCommerce, it was a nightmare. As the web has evolved, we’ve been seeing this move toward more headless CMSs. And what headless means is that you can take the CMS and then use it via API. So you’re no longer bound to that CMS as a presentation layer. It’s only managing the data.
Jason Lengstorf 07:57: And with this, that opens up the door for you to say, hey, well, we have eCommerce and a blog, what’s the best blogging CMS? And you can go out and look around and find that. And then you can say, well, what’s the best eCommerce CMS? And you can go and look at that as well.
Jason Lengstorf 08:13: And then you pull those together into what we call the content mesh. And the way that Gatsby does that and the reason that we use GraphQL is that we’re able to pull in data from any number of backends, whether that’s headless CMSs, databases, REST APIs, or even the file system, we pull all that together and put it into a GraphQL layer, that for the frontend developers building the site, the people actually building the Gatsby site, it feels the same. Because the queries are similar, you say like give me all Shopify data or all WordPress blogs or all markdown files and then you just query the data inside of those and put it on the page.
Jason Lengstorf 08:50: So it feels very uniform. It’s very transferable. You don’t have to become a Drupal expert, or whatever framework, Django. You don’t have to learn the deep, dirty details of how that system works. You just need to know how to install the plugin and get an API key, so that we can pull that data in and let you use it.
Jason Lengstorf 09:11: In the sites that we build, they’re static assets, but that’s not to say that they’re static sites. So once they hit the browser, they actually rehydrate into full React apps. So once it’s in the browser, it’s a full single page app. So you’re able to do asynchronous data calls, you can do authentication, dynamic routing, all sorts of things that normally a static site might feel like a bad match for.
Jason Lengstorf 09:39: But with Gatsby, because it starts as a static site, and then rehydrates into an app, you don’t face those same limitations. You can do all the same things you would do with any React app.
Schepp 09:50: Right? So that would also probably mean that that GraphQL instance is not just used during build time, but it’s present all the time. So you can-
Jason Lengstorf 10:06: No.
Schepp 10:06: No? Okay.
Jason Lengstorf 10:08: It’s only available during the build. There is talk of figuring out how to make it available during the runtime. But one of the reasons that I actually like it as a build only tool is that once that site is built, once it hits the browser, there’s no longer any path back to a server. So you can’t really hack a Gatsby site, because there’s nothing underneath it to hack. It’s sitting on a CDN and it doesn’t have a live connection to a server, it doesn’t have a connection to a database.
Jason Lengstorf 10:41: So if it gets hacked, all you can do is deface the static files. And that to me is a very powerful way to approach that. So I tend to set up like a serverless API to handle any interactions. So on my site, for example, I’ve got a newsletter signup, or on our Swag Store we’ve got, you want to be able to log in and claim a discount code.
Jason Lengstorf 11:06: So when you hit those buttons, that just goes back to a Lambda function and that Lambda function has the privileged access. But you have to go to it to a very specific API. So it makes it more difficult… It just eliminates a lot of the attack surface that other, like WordPress is kind of a classic example, because it’s such an easy target.
Jason Lengstorf 11:27: But because the whole thing is sitting right there, the auth model, the users, everything is right there, right below the surface of that site. So there’s a bigger attack surface, there a lot of ways to try to get at it. And Gatsby, because that GraphQL data layer is only available during the build time, you can worry a little bit less about the security of that data layer. And instead, just expose very specific Lambda functions or an API or whatever you choose as a backend, to expose just the bits that you need, without exposing any of the other access.
Schepp 12:02: Makes sense. And GraphQL is, as you said, it’s like the unified data mesh, or the technical manifestation of that. Why… So for me, it sounds like the Gatsby makers came from a situation where they had like database specialists, and then frontend people and wanted to like have a clear cut and a nice interface between the two. But as a solo person working with Gatsby, what would be my benefit then? Or could I also circumvent GraphQL and go right to those other APIs if I wanted? Would that make sense or is it just nonsense?
Jason Lengstorf 13:05: Well, I’ll answer that in reverse. So your last question was, can you circumvent GraphQL? And absolutely, you can. So the way that I kind of explain this is we have a section on our docs called why Gatsby Uses GraphQL and it comes along with some videos and everything to try to explain this.
Jason Lengstorf 13:23: But ultimately, when you build a page in Gatsby, we have an API. So under the hood, Gatsby is just a collection of API hooks, and you can attach functions to those, to do various things. One of them is called create pages. And when you make a request to create a page, all you have to pass in is a path, so where you want the page to live and a component. And that’s a React component, and that React component will be rendered into your page.
Jason Lengstorf 13:50: So at minimum, you can just hardcode content into the React component and it’s going to work, you’re going to have a page up. If you want to take that a step further, your React component could make an asynchronous call to load data. Or, we have a context object that you can pass in with your create page call, that would allow you to set a title and body and categories and author and… it’s arbitrary data, whatever you want to pass into that context object. And then you can retrieve that from the props of the React component. So you can hardcode, that you could pull that in from… you could do a fetch call, and just loop through the response data and stick that in.
Jason Lengstorf 14:33: Where GraphQL starts to really show its power is when you start to look at the relationships between things. So if you’ve got a post and that post has an author and you want to get related posts and you want to get comments, what you would have to do is either build a very specific REST API, or you end up making a lot of different REST calls to load in data.
Jason Lengstorf 14:57: And that starts to put a lot of business logic into your web app. And your frontend shouldn’t necessarily have a lot of business logic. When I was working at IBM, one of my big goals there was to get as much business logic out of the UI tier as I could. And the reason that we turned to GraphQL is that GraphQL acts as this kind of data unification layer that allows arbitrary access by the frontend teams, where I can say, yeah, give me the post, and then give me the author and then give me that author’s posts. And then we filter out the one that matches this one.
Jason Lengstorf 15:32: And those are just nested GraphQL queries. Under the hood, GraphQL will do all that work to resolve the different calls and get the data from the right places and everything. But from a frontend developer standpoint, they just get to make up what would traditionally be kind of a bespoke REST endpoint that was, oh, for this UI at this URL, we need this data. So can you give us a REST endpoint that gives us that data? Which is a lot of work for the backend team. GraphQL just turns that into kind of an arbitrary like, well, let me plug in this field and this field, and let’s see what comes out.
Jason Lengstorf 16:06: And the way that GraphQL is set up during development, you can actually open a GraphQL, it’s called a… What is it? A playground. Or, there’s another tool called Graphical. And in both of those, you’re able to just write GraphQL queries and execute them in the browser and see what data comes back. And then when you’re happy with that, you can copy, paste that query into your frontend, and know that that data will be available as a prop in your React components.
Jason Lengstorf 16:34: So it’s a really, from the frontend developer experience standpoint, excuse me, from the frontend developer experience standpoint, it’s brilliant. Because it cuts out so much context that is usually required to access data. You don’t have to know how to send fetch calls, you don’t have to know how to deal with middle tiers, you don’t have to worry about database access or the security implications of that. You just get to say, I need some data to put on the screen and GraphQL handles that for you.
Schepp 17:03: And you also, you don’t need to wait for anybody to create your REST endpoint with exactly the data you need, because you can just, like you can request it such via GraphQL. And then it’s there.
Jason Lengstorf 17:22: Exactly.
Schepp 17:23: And probably also-
Jason Lengstorf 17:23: It cuts down iteration times.
Schepp 17:26: It also reduces latency, because you just have like one call and not many calls that you need to then mesh together in the client.
Jason Lengstorf 17:38: So when the GraphQL layer is implemented properly, yes, but like I said, under the hood, GraphQL is still making all of those calls-
Schepp 17:46: But on the server side.
Jason Lengstorf 17:47: But there are ways… On the server side, typically. And so when you see that, like it should improve performance. And there are ways that GraphQL is designed to de-duplicate calls and to have like short-term caching and to reuse calls when they go across queries. So it’s designed to be better at performance, but it is something that the implementing developer needs to think about. It’s not like magic. You have to make sure that you test that.
Jason Lengstorf 18:20: That’s not a Gatsby concern, to be clear. That’s if you’re building your own GraphQL server.
Schepp 00:18: :53] funded, then I would expect that there must be some business model somewhere.
Jason Lengstorf 19:00: There is a business model, but the ecosystem is not it. So our ecosystem, we have currently close to 900 plugins. And those plugins range from like data source plugins, where you can pull in stuff from you pretty much anything that you can imagine. Stripe, Shopify, Magento, big commerce, whatever you got, we can probably pull in the data from that through a source plugin.
Jason Lengstorf 19:25: And if you can’t, we’ve got docs on how to build a source plugin and we’d love to see that. There are also transformer plugins, so if you need to like change a JSON or YAML file into a queryable object, like we can do that for you. And then we have miscellaneous plugins to add, if you want to add analytics or you want to add Twitter embeds. Or, Benedict Ray put out this really cool oEmbed thing, so that you can write markdown and just paste in the URL of various social media things and it expands into a full embed.
Jason Lengstorf 19:57: So there’s a lot of really powerful stuff there. And then eventually, what we want is we want to create a marketplace where people can sell premium plugins. And that’ll be a small part of Gatsby’s revenue model, because we’ll be hosting that and handling returns and customer support and everything. So we’ll charge a fee on top of the resellers.
Jason Lengstorf 20:18: But the core of our business model is that we want people to be able to stand up like the infrastructure that makes it easier to collaborate and use Gatsby on bigger teams. So our first example of that, the first product that we released in beta is called Preview and it’s part of our Gatsby cloud offering. And Gatsby cloud is kind of the core of our commercial venture here.
Jason Lengstorf 20:44: And so in Gatsby cloud, we have this preview functionality where you’re able to, if you’re on Contentful, Sanity or any other supported headless CMS, you’re able to install a preview button in your CMS, make draft changes to the content, click that button, and it’ll open a private URL that you can password protect if you want, that you can then share it around to people to get feedback on draft content.
Jason Lengstorf 21:06: So as developers, this isn’t a big deal to us, because we have the local development environment, we can make some changes, we can mess around with stuff, and then just send that off to people as a staging branch or whatever we want to call it. But for someone who’s not a developer, this is a huge pain. And it’s been a big blocker for large teams, because the developers are very happy with Gatsby, but the content team, they’re really frustrated because they don’t want to have to install a local development environment. They don’t want to have to start, they never want to open their command line, they’d prefer to not know it exists.
Jason Lengstorf 21:38: So what Gatsby cloud is looking to do is take some of the stuff that teams have been standing up on their own, like a preview service and offer that as managed infrastructure. We will do it for you and we’ll do it for a lot less money than you would spend to pay somebody to set that up and manage it over time.
Jason Lengstorf 21:57: We’re looking to do the same thing with like highly optimized Gatsby builds. So if you have a huge site, and you need it to be up for a few seconds, we are working on the ability to run these incremental parallelized builds, that will drastically cut down the amount of time it takes to build large sites.
Jason Lengstorf 22:20: And so this would be, like Netlify is such a powerful tool. Once you hit a certain limit though, like it’ll timeout and it wouldn’t make sense for them to highly specialize on Gatsby, because they are a general tool. So we’re looking at like what happens once you exceed the limits of what Netlify is kind of incentivized to fix?
Jason Lengstorf 22:41: Well, then that’s where we would step in and build this kind of like highly customized build system. So that you’re able to then take your custom stuff, get those incremental builds going, get all that infrastructure. And again, this is something you could probably set up in-house, but it would be really expensive, you’d need people to man it full time.
Jason Lengstorf 22:59: But we want to kind of take that sort of work and make that something that you as a team can consider a solved problem. The same way that on the frontend, the reason that we ship Gatsby is so that you can consider performance and like easy deployments as a solved problem. We want to just kind of continue to step that out to support larger teams.
Schepp 23:22: Sounds really nice. Cool, so I’m going to ask you, maybe later a bit more about the cloud service. So I’d like to talk a bit about the frontend itself or the templates or the template engine and also the structure. So how would it work like creating a site?
Schepp 23:53: So I can probably just use, so it’s React based, so I can probably use the tools I know from the React ecosystem and Gatsby will just lay out my site based on, for example, React Router, stuff like that. Or is it more that it works similar to Next.js, or Nuxt, where you have a certain folder structure and that will end up as the pages later? No, it’s probably React Router, right?
Jason Lengstorf 24:32: Well, we can do both. So by default, if you were to create a new Gatsby site, you could initialize the package, install Gatsby, React and ReactDOM. Those are your three core dependencies. And then you could create a source pages, index.js. And then you could run Gatsby develop. And that would create a site with a homepage of whatever the content of index.js is.
Jason Lengstorf 24:59: As you start to expand, you can create custom pages using any of our APIs. And we use a Gatsby dash node or Gatsby dash browser or Gatsby dash SSR to those files. Sorry, Gatsby node, Gatsby browser and gatsby-ssr.js, that sit next to your package JSON. And those are where you would kind of register the custom hooks to do custom pages and any of those things.
Jason Lengstorf 25:26: Under the hood, what we’re doing is we’re taking anything in that pages folder, and anything that’s registered with the create pages API. We then stick that into Reach Router, which is Ryan Florence has been working on an accessible version of… He was working on React Router, and then he worked on Reach to focus on accessibility of routing.
Jason Lengstorf 25:48: And now there’s a plan to merge that backend. So Reach Router version five is going to adopt a lot of… React Router version five is going to adopt a lot of the Reach Router APIs and kind of take the best of both worlds and combine those together. So under the hood, we’re taking all of the pages that you’ve registered, setting them up as Reach Router routes, so that when you rehydrate on the browser, it works like a single page app and you’re using a routing solution.
Jason Lengstorf 26:17: So you can use anything from the React ecosystem. The only got you for Gatsby development is that if you’re going to access the window, you need to guard that statement by either putting it in a component did mount or use effect if you’re using React hooks, or you can do a check for like, if window is undefined, then skip this next step.
Jason Lengstorf 26:41: Those are really the major things that you’ve got to consider is like, if it’s compatible with server side rendering, it’s compatible with Gatsby, is kind of a general rule. And the way that we’ve set this up is we want this to be something where if you built an app with create React app, if you want to go the next step further and have it be statically compiled, putting it into Gatsby should be very near to a copy, paste effort.
Jason Lengstorf 27:08: It’s not quite that simple. But once you get the pages set up, it’s pretty straightforward and the React components are… We have helpers that Gatsby ships, like our GraphQL helpers, we have helpers for links and images. But for the most part, everything that you’re writing is just React. And you can use, like we use Formic, we use various design systems, we’ve seen people pull in all of the different flavors of CSS management, from plain CSS to CSS modules to CSS and JS and all of its various iterations.
Jason Lengstorf 27:45: All of those things are compatible with Gatsby. So yeah, it should be as simple as just like whatever you would do in a React app, you can do in Gatsby, as long as you’re guarding against window and you can shortcut things by putting things in that pages directory and getting those autorendered for you.
Schepp 28:02: All right. And then I have the impression that Gatsby also has some nice tricks up its sleeves regarding performance, like link pre-fetching and stuff like that. Is that correct?
Jason Lengstorf 28:22: Absolutely. One of the core philosophies of Gatsby is to make performances solve problem. And the way that we aim to do that is by taking all the recommendations of the web performance community. So code splitting and route pre-fetching, image lazy loading, asset management optimization, as many of those things as we can, we’ve just baked right into the Gatsby core.
Jason Lengstorf 28:49: So when you build a site, we’re going to do route based code splitting. When you use Gatsby link, we’re going to look at the visible links on the screen and any relative links will get pre-fetched in the background, which there are some considerations there. We won’t do that if you’re using data saver. We won’t do that if you’re on a slow connection.
Jason Lengstorf 29:10: But assuming you’re on a faster computer and that you don’t mind, we will pre-fetch in the background. We also do like image optimization, if you use Gatsby Image and the related plugins there, where we will generate all the different versions for different resolutions. We will create small preview images, so that you can do like Medium’s blur up effect is something that you can do with Gatsby just kind of out of the box. We can do traced SVGs so that it’s kind of a silhouette version that the computer finds the edges and traces a two tone version of the image. And then that’ll blur up.
Jason Lengstorf 29:49: There are all sorts of different options for how you can do these optimizations, but like all of them are set up to just happen out of the box. If you take our default starter and run it through performance tests, you’re going to score 100% on the Lighthouse test, you’ll get straight As on the webpagetest.org. That’s our target, we want to set people up to succeed by giving them a perfect starting point, or not perfect, but like a really, really strong starting point. So that they don’t have to do the performance tuning, they don’t necessarily need to think or become experts at performance. They just need to monitor that they’re not introducing degradations as they build.
Schepp 30:34: There’s a lot of stuff behind that. And I think it’s just so much to learn, and you’d still want to have a site that compares well to others and not just wait two years until you’ve dropped everything yourself. So that’s really nice.
Jason Lengstorf 30:55: Yeah, it’s one of the things that I talk about a lot, like performance is a career, there are multiple people who have made it their entire life’s work to get good at web performance. So expecting that someone whose job is to make a wonderful web experience to also become an expert in performance, you’re kind of asking them to do two jobs.
Jason Lengstorf 31:17: And we recognize that and not every team is able to afford a performance expert. So a lot of times what happens is that people do the things they know. And then they kind of do what they can with performance or with accessibility or with various DevOps setups. And then they have to stop and move on, because you have to ship things.
Jason Lengstorf 31:39: So we don’t want to put people in a position where they have to choose between performance and a good web experience. And by baking that performance in and we’re doing a lot of work to bake accessibility in and to make it easy to deploy, we want people to be experts… they should be able to be experts in what they’re experts in and not have to start these separate careers.
Schepp 32:01: Makes perfect sense. People can still evolve into that after a few years, but yeah, nice. You also touched accessibility. I’ve seen Marcy Sutton join your team, like maybe two, three months ago. So my question would be, what type of things are happening in the accessibility areas? So one thing is the usage of Reach, the Reach Router. Is there more you know of?
Jason Lengstorf 32:43: Yeah, Marcy is working on, so Reach was something that we started around the same time that we started talking to Marcy and kind of… Amberley Romo on our team has been a really good advocate for accessibility as well. And so she kind of brought some stuff up, we’ve always wanted to focus on it. And when Reach came out, it was just such an obvious like, oh, of course, we should do that. Like let’s bake accessibility into the routing solution.
Jason Lengstorf 33:11: What Mercy’s doing is, she’s helping us find the gaps in that, because automated testing, like the Lighthouse accessibility testing is good, but it’s not a magic bullet, it’s not going to solve all of your problems. So you still need to be mindful and understand how all of the things that you can’t automatically test, work.
Jason Lengstorf 33:34: And so Marcy has been really, really helpful at both helping us clean up our starter projects to make sure that they have all the accessibility that needs to be baked in, baked in. She is telling us about things that we didn’t know existed, she is setting us up for accessibility audits, by companies that are specifically set there. She wrote up an accessibility statement to kind of reinforce our commitment to doing it and to help hold us publicly accountable for meeting those commitments.
Jason Lengstorf 34:02: And along the way, she has also just like been teaching us so much. I did a live stream with her a while back on my Twitch channel, where we built a feedback widget. And just that little feedback widget, there were five or six things that I just did not know that I needed to consider when I was building interactions to make it accessible.
Jason Lengstorf 34:24: And so going through that with her and seeing her feedback on pull request is such an eye opening experience, because none of it is hard. It’s just stuff you have to know. And again, like it’s very difficult to become an expert in everything. So with Marcy on the team, we’re able to leverage her expertise to try to get as many good baseline defaults set, so that people don’t have to become accessibility experts.
Jason Lengstorf 34:49: And we’re also trying to work on like, can we do better automated testing, are there things that we can do in Gatsby that are harder to do in a generic sense, like Lighthouse that will help us catch more, and help us fix more of the accessibility problems that happen kind of inadvertently?
Jason Lengstorf 35:09: I mean, I feel like very little accessibility stuff, I feel like it doesn’t get ignored maliciously, it gets ignored because we don’t know that we should even be looking for it. So this is having someone, having two people, really, with Marcy and Amberley, both keeping us accountable and calling us out when we get things wrong, it helps remind us of what we don’t know. We’re seeing what we don’t know and then we just fix it.
Jason Lengstorf 35:35: And when we can do that in a way that scales out to everybody using Gatsby, that’s a huge win for the internet at large.
Schepp 35:41: Yes, especially if Gatsby is getting more and more popular and more and more sites are based on Gatsby, then it will really pay off to have some accessibility mindset. Also, I think it’s hard to do everything right, but if you already have all the maybe ready made components accessible and if you have these tutorials and if you have accessible routing and stuff like that, that’s already a huge win.
Jason Lengstorf 36:21: Absolutely, yeah. And we’re trying to, I’ve loved what the React community has been doing. I think Ryan Florence has done great work with Reach. Because Reach is not just a router, it’s also a UI. So there is like tab boxes and modals and all these components that are pretty common, and he just built them out to be accessible by default.
Jason Lengstorf 36:44: There’s another one that I think is called react Reakit, or I think that’s how you pronounce it, that’s another kind of accessible by default component system. And so we’ve been talking with the author of that to figure out like, how can we make sure this is Gatsby compatible and what can we do to help? So that, again, we’re able to ship very accessible by default, everything.
Jason Lengstorf 37:07: And Gatsby by default isn’t going to make a lot of assumptions about your UI. But as we get deeper into themes, people are going to be packaging up more and more UI functionality that is powered by Gatsby. So if we’re thinking about how are these design systems built, and are they as inclusive as they need to be? We can nudge people in the right direction by making sure that our theme starters are showing people how to do it the right way.
Jason Lengstorf 37:38: Or, if somebody is using a design system, we can recommend the accessible ones, so that people just kind of by default, start choosing solutions that like make their lives easier, because they’ve got all these prepackaged functionality. But that also solve a bunch of problems that they might not even know existed, like how to make a tab box accessible.
Schepp 38:01: That’s nice. I also felt for a long time that you had these accessibility people, these old school accessibility people that knew a lot, but that never made really the move into the JavaScript ecosystem. And then you had the JavaScripters, and they never made the move over to digging accessibility. And so it’s nice to see more and more of these hybrid people that are good at both things and that share their knowledge and teach people, like Marcy and Ryan and maybe also Manuel Matusovich and Hayden Pickering, for example.
Jason Lengstorf 38:55: I’ve been really, really happy to see… the world seemed to be shrinking. Because as the tools solve more and more of the generic problems, it leaves us extra time to focus on the hard problems. And I feel like for a long time, we were trying to figure out, well, how do we bundle JavaScript?
Jason Lengstorf 39:17: And that’s feeling more and more like a solved problem between Parcel and Webpack, you don’t really have to think about it too much. Because everybody ships with a preconfigured Webpack solution. Parcel is super easy to set up if you want to do something custom. And so you don’t really have to think about that so much. I mean, now you’ve got mental bandwidth.
Jason Lengstorf 39:37: And on top of that, the people working on the platform, have done a brilliant job of making JavaScript, even something that can be accessible. And I think that maybe a lot of the initial problems were around just like, how do you get a screen reader to read JavaScript? I actually have no idea what that path looked like, or how we got to where it works.
Jason Lengstorf 40:02: But that work needed to be done before people who were working in accessibility could even approach JavaScript. And the JavaScript folks needed to get to a point where accessibility was something that they understood was a problem. And I think that we’re starting to see that in the community, where more and more people are starting to embrace accessibility as a first class consideration.
Jason Lengstorf 40:25: It’s not a nice to have. It always kind of breaks my heart when you see somebody say like, well, we’ll get to accessibility if we have time. And it’s like, well, hold on, you’re just going to cut off like that many people from your website, because you don’t have time? Maybe deprioritize the animation first or something.
Jason Lengstorf 40:44: And so it’s really cool to see that both the tools and the platform have gotten us to a point where we have the bandwidth to focus on people, instead of focusing on wrangling technology. And you see that now, where developers have this focus on, how do we take care of the people who use our stuff? How do we take care of each other? How are we going to make JavaScript more welcoming?
Jason Lengstorf 41:12: We’ve seen it in the shift in Stack Overflow’s community policies, we’ve seen people like April Wensel launching Compassionate Coding. We’re seeing more and more communities focus on like being inclusive and welcoming, and not so elitist and kind of shutting people out. And all of that, I think, is adding up to be a really big net positive for the development community, we’re focusing on including everyone.
Jason Lengstorf 41:40: And that means, how can we make sure that our code is accessible? How can we make sure that our code isn’t inadvertently cutting people off? Or, like the web sites that we build aren’t shutting out like whole groups of people that maybe aren’t like us? It’s really interesting, and really heartening to see how many people are raising that banner and starting to work that way on the web.
Schepp 42:05: Yeah, definitely. Yeah. There’s also more and more of these talks popping up on conferences. It’s a nice development. Yes, indeed. So now, I’m totally hooked and I’d like to start creating my first site with Gatsby, how would I start? I would think on the Gatsby website, because there’s probably a tutorial or like a quick start section, sort of?
Jason Lengstorf 42:38: What I would recommend for everybody, if you’ve never used Gatsby before, is our tutorial is really, really thorough. And we have a, if you’re not super comfortable with like the command line or various parts of the ecosystem that we use, we have a part zero, which is going to do everything to get you started up from like how to use the command line on your computer, what is React, what is GraphQL? As basic as we can be, to try to give you the context and vocabulary that we’re going to use.
Jason Lengstorf 43:10: And then we just step through using Gatsby from installing the Gatsby CLI, building your first site and then we’ll walk through the simple stuff, like putting your first page in and slowly get more and more advanced as we go. Until by the end, you are writing custom GraphQL queries, you’re optimizing images, you’re deploying the site to Netlify, you’re doing all sorts of great stuff.
Jason Lengstorf 43:32: And so I think that’s a really good way to go. We do have a quick start, if you’ve used React and GraphQL before, that could be useful for just standing something up and seeing it work really fast. Or, if you just like to learn by diving into code, which that’s actually kind of how I like to learn is I want to open up a repo and pick it apart and see what it does.
Jason Lengstorf 9:00: a.m. Pacific time, where I build, almost every week it ends up being a Gatsby site of some sort. But I work with somebody from the community, from another company, and we use their tool to build something.
Jason Lengstorf 44:21: So we’ve got videos for how to build eCommerce with Stripe or how to use state machines. I did one with David Corsi on that, which was really fun. Marcy and I built that accessible feedback widget. We’ve built all sorts of things. And we’ve got some really exciting ones coming up as well, which are all listed on the Twitch page. Its twitch.tv/jlengstorf.
Jason Lengstorf 44:43: But yeah, there are a lot of ways to get in. We do our best to be kind of in every media, so that depending on what your preferred learning style is, we’ve got you covered.
Schepp 44:55: Nice. And the other thing would be, I’d like to come back once more to that cloud solution. So you said it’s still in a beta state, right? Is that correct?
Jason Lengstorf 45:12: Yes. So Gatsby cloud currently has the preview service, which is in a beta. We’re hoping to get that opened up soon, though I don’t know the exact dates. And we also have the incremental build system, is in like a very early alpha right now. So both of those products are coming down the pipeline, we’ve got a lot of plans on what we expect to launch kind of on the heels of this.
Jason Lengstorf 45:44: A lot of what we’re doing with commercial right now is laying a foundation, so that we can build the ambitious stuff that we think is kind of a uniquely Gatsby offering. Because Gatsby is an interesting tool, because we actually own the whole experience, like from where you start your website to where you theoretically deploy your website.
Jason Lengstorf 46:09: We have the ability to kind of touch the website at every stage. So we can do things that are pretty advanced, like pretty deep static analysis, and we know what Gatsby’s opinions are. And so we can dive into things that are difficult to do in a generic way.
Jason Lengstorf 46:28: So it should open the door for some really interesting reporting and profiling and different like performance and accessibility and other types of tuning that are uniquely possible, because Gatsby has those opinions and sets those defaults and guardrails. So stay tuned in this space, because I think Gatsby cloud is going to start out kind of like, that seems like a cool feature, to where I think the follow-on stuff is going to be really exciting, I think.
Schepp 47:05: Sounds good. I guess it’s also a matter of time, of having bigger and bigger customers, that then formulate new requirements or ideas that just happen when you scale. And then probably just do it sort of in a partnered way with you.
Jason Lengstorf 47:33: Yeah, I mean, that’s one of my favorite things about Gatsby is that we don’t really see ourselves as being competitive by nature. We see Gatsby as being an inherently collaborative tool, because we rely on third parties like the headless CMSs or deployment platforms like AWS, or Google Cloud, or Netlify. Each of those things is the thing that we like, we see ourselves as a partner to them, we’re sending them business, and they’re sending us business.
Jason Lengstorf 48:04: And as they improve, that makes the Gatsby experience better. As Gatsby improves, that makes their experience better. And I love that model of business, where each of us is kind of adding to the tide that lifts all ships, as opposed to saying like, well, it’s winner take all, we’ve got to take out this company or this company, so that we create space in the market. It’s like, no, we want to help that company. Because if their customers are happy, then those customers are going to be happy with our service too, because they add on to each other.
Jason Lengstorf 48:36: That’s important to me. I’m not a very competitive person. I like cooperative sports, not competitive sports.
Schepp 48:44: Yeah, they those are also the more interesting ones. I think if you reach a point where you have market saturation, and it’s just competition and taking over market shares, then it maybe also gets a bit boring, sort of. Might be.
Jason Lengstorf 49:05: I don’t know. I think there are people in many different camps. So I think everyone has their preferred working style. And I’ve heard this categorized a lot of different ways. One of the more recent ones that I’ve heard that I like, is this idea of like pioneers, town settlers and city planners. And so like in the early days of anything, it’s just kind of uncharted chaos. And so people who like to pioneer really enjoy that chaos, they’ll dive in, they’ll just try stuff, everything’s breaking all the time. It’s loosely controlled disorder, as you just explore and try things.
Jason Lengstorf 49:43: And as ideas start to form, then the pioneers tend to get bored, because there’s less chaos, things are starting to feel more stable. And then someone like a town settler comes in and takes the thing that is stable, but still pretty immature and then they kind of take it from being an immature seed of an idea that’s stable to an actual functional thing.
Jason Lengstorf 50:05: And then someone who’s more of a city planner is going to take something that’s matured, like this would be somebody who just really wants to go in and work on a product that is established and has a market share. And they want to incrementally improve it over time, and just make it into the best possible version of itself.
Jason Lengstorf 50:22: And all three of those roles are extremely valuable. And finding out which role suits your particular personality type is so… To me at least, learning that I kind of fall right between pioneers and town settlers, like I love experimentation in chaos, and I love taking something that’s new and making it viable. How can we turn this great idea into a business?
Jason Lengstorf 50:50: Knowing that about myself has really informed the way that I make decisions about my career. And I love talking to other people about this as well, because a lot of times people haven’t thought about it this way. And when they start thinking, they go, oh, so that’s why I really love this job, and then stop liking it. It’s because I shifted, I was a town settler, and then I shifted into being a city planner, and I don’t like city planning.
Jason Lengstorf 51:11: Or somebody else will say like, oh yeah, I hated this job, because it just felt like I never knew what was going on or everything was always so ambiguous. And it turns out they want to be a city planner, they want like clear cut goals and KPIs and something that they can really own and work toward, without that ambiguity or chaos.
Jason Lengstorf 51:28: I don’t know, I kind of got a little philosophical here, but I love this approach.
Schepp 51:34: I see your point. Totally. You’re right.
Schepp 51:42: One more question regarding the Gatsby cloud. So there’s just certain features that are beta, but the hosting is… right. Is that correct?
Jason Lengstorf 51:54: Sorry, can you say that again?
Schepp 51:56: So you mentioned the preview feature, and also the incremental build feature being beta and alpha. That would mean that the cloud or the hosting service that you offer, is that already available?
Jason Lengstorf 52:12: We don’t offer a hosting service. And I will never say never, but at the moment, what we prefer is to be, I kind of see us like when we offer like deployment, that deployment is going to go to Netlify for hosting or AWS or any kind of like bucket based storage. Because for us to stand up a hosting service seems, in my opinion, a little silly, because it’s like, well, why would we try to compete with something that’s so thoroughly established?
Jason Lengstorf 52:48: To me, that doesn’t make a whole ton of sense. So if we do have a hosting service, it’s probably going to be a white labeling instance of like, Fastly or something. So to me, it’s like, all right, well, if we’re going to white label Fastly, why not just have like Fastly as a deploy target? You know what I mean? Like maybe we’ll have a convenience layer where you can say, I don’t want to choose, just do a thing.
Jason Lengstorf 53:10: But ultimately, I think it’ll be more like I want to run a Gatsby deploy command, and it’ll go to, your preferred hosting provider will handle the orchestration of it.
Schepp 53:21: Yes. Okay. I just misunderstood. I interpreted it that way, that you offer similar things to Netlify or maybe also to I think SiteHQ, or now how is it called? And that’s why I asked you about the cloud services one more time.
Jason Lengstorf 53:48: I think over time, there will start to be some overlap. But at the moment, we think that both Zeit and Netlify are doing an amazing job, and it doesn’t make sense for us to try to compete, we should just work together. And there are things that it doesn’t make sense from a business standpoint for either them to focus on, because it’s hyper Gatsby specific. So we’re going to focus on the hyper Gatsby specifics at first. Because that’s clearly like where we can provide unique value.
Jason Lengstorf 54:16: And like maybe over time, there starts to be more overlap. But to me, it makes sense to avoid, like I said, avoid competition as long as possible. Let’s be as friendly as we can and kind of buoy each other as much as possible for as long as possible.
Schepp 54:35: I think there’s always enough stuff to find to work on. Right?
Jason Lengstorf 54:40: Mm-hmm (affirmative).
Schepp 54:42: Cool. So I don’t know, I have the impression that we got a nice overview of what Gatsby is, and also how you work with it and also what’s to come. I don’t know, did we forget anything? So I think we’ll write show notes, we’ll link to different things, we’ll also link to your Twitch, and to your Twitter account, of course.
Jason Lengstorf 55:17: And then the only other thing that we might want to include is just about our kind of community model. We talked a lot about including people, but we didn’t exactly talk about the specifics of Gatsby’s community. Because we have a lot of programs that we offer specifically to get people involved in open source. We do a free pair programming call where you can get 60 minutes with somebody on the core team to work on any open source project or getting involved in like your first pull request.
Jason Lengstorf 55:50: We also have a kind of contribution model, where if you get a pull request merged into the GatsbyJS.org, we will upon merging that PR, invite you to become a member of the org and also send you a discount code so you can claim some swag from our Swag Store. You get access to kind of like a private maintainers only group on GitHub, where you can get access to kind of our maintainer call and a lot of different discussion that happens about like very, very experimental features. So you kind of keep your finger on the pulse of where Gatsby’s going, you have influence over like where Gatsby goes, because you’re part of that early discussion.
Jason Lengstorf 56:32: Those are all really, really interesting things that we’re trying to do. Like, again, one of our company values is you belong here. And we really deeply want everybody, whether you’re a seasoned veteran or a first-time contributor to get involved in open source. And we’ve designed systems at Gatsby specifically to make that an approachable goal. So that’s something that’s really important to us, and that we’d love to see more people doing.
Schepp 56:59: Sounds really nice. I wouldn’t have expected that. Cool. Yes, thumbs up from my side. Good.
Jason Lengstorf 57:12: The link for that is, if you go to gatsby.dev/contribute, there’s a whole page on our docs about that.
Schepp 57:22: Yes. I just found it, also. Nice. Nice. We’ll read through it Cool. Well, Jason, thank you very much for sort of pinging us on the social channels. And I’m also super lucky that we saw that, and that we approached you and that you came into our show.
Jason Lengstorf 57:56: Yeah, thank you so much for the invite. I really appreciate it. I always have a blast doing these, so thanks a lot.
Schepp 58:04: All right. And so any of the listeners that wonder if this is a new podcast they should listen to, maybe not so much, because usually we are in German. It’s a long story. But basically, it’s just that in the German space, there was no podcast, whereas in the English space, there’s plenty. So we thought we would need something to cover that as well.
Schepp 58:34: And from time to time, we do English podcasting and I would suggest Follow us on Twitter. Our Twitter handle is workingdraft, and then you can already spot when we release new episodes. If it’s a German episode, which is usually the case, or if it’s an English one, because sometimes we have guests like Jason and sometimes we also go to conferences, where we pick the brains of speakers in shorter interviews. So have an eye on that.
Schepp 59:09: And that being said, thank you very much for listening. And again, thank you very much, Jason, for coming. Have a nice day. Bye.
Stefan and Schepp had the great opportunity to do a live podcasting show with no other than Chris Heilmann at this year’s Beyond Tellerrand conference in Düsseldorf.
Do we have to introduce the legendary Chris Heilmann? From Yahoo over Mozilla to now Microsoft, as Program Manager for Open Web and Browsers. We interviewed Chris on all things „Edge on Chromium“ and got very valuable insights to questions like: „What’s the strategy“, „How’s working with Google“ or „Why Chromium, not Gecko?“. Chris did not shy away from critical voices and pushy questions, and gave us information we all have been waiting for. With Rodney on the running microphone, we also got a ton of great questions from a wonderful audience. We hope you’ve had as much fun as we had.
Do we have to introduce the legendary Beyond Tellerrand? The conference where the crowd meets, where we get the most inspiring talks, and where we push the boundaries of our mind, arts and craft. Beyond Tellerrand is most likely one of the most unique conferences out there, certainly one you shouldn’t miss. And a new adventure in Berlin just started! Be sure to check it out!
Unser allerliebstes weltumspannendes Internet-Konglomerat (das mit der großen Suchmaschine) hat mal wieder gekreist und neben einem fragwürdigen HTML-Element auch ein Video über diverse JavaScript-Neuerungen fabriziert. Hans und Peter nehmen sich der Sachen an.
Hans und Peter fragten Rodney zu React Native aus!
Auch ohne Gast können wir uns einem Thema intensiv widmen: Schepp und Hans reden über den Resize Observer. Aber hört selbst…
Nach Revision 382 meldet sich Stefan Tilkov zu Wort um ein paar andere Ansichten zum Thema Web-Architekturen zu liefern.
Links zum Thema:
Schepp, Hans und Stefan in einer flotten Diskussion über ein neues React Feature, das die klassische klassenbasierte Komponenten-Bibliothek ein wenig auf den Kopf stellt.
Komplexe Web-Applikationen und -Seiten werden oft in unterschiedliche Domänen geteilt. Frontend wird klassisch als eine eigene Domäne angesehen. Doch was passiert, wenn man den Micro-Service-Gedanken auch ins Frontend überträgt und die Zuständigkeiten des Frontend-Codes auch an die korrekten Business-Domänen anpasst? Das klären wir gemeinsam mit Mark Lubkowitz der uns einen Einblick in seine Erfahrungen mit Micro-Frontends gibt.
Einige Links:
Tim Schumacher, seines Zeichens Backend-Entwickler in Jena und großer TypeScript-Fan, fand sich mit Hans und Peter zusammen, um genüsslich eine Runde über TypeScript allgemein und TS im Backend im Speziellen zu plauschen.
Die Revision 382 beschäftigt sich mit modernen Austauschformaten zwischen Software System. Wir sprechen mit Dr. Ralf Engelschall zu den Themen REST und GraphQL und lassen uns über die Vor- und Nachteile aufklären.
In kleiner und gemütlicher Runde besprachen Stefan und Schepp, was es mit dem Konzept der Layered APIs auf sich hat und wie es derzeit so um HTTP/2 steht.
Eine Rarität! Das komplette Podcast-Kernteam vereint in einer Revision. Keine ganz so große Rarität: der Löwenanteil der Sprechzeit entfällt auf Peter, der einen Einblick in die Entwicklung einer Chrome-Devtools-Extension gibt.
Für diese Revision holten sich Schepp, Peter und Rodney Unterstützung von Yara Meyer (Principal Consultant bei , auf Twitter @whythecode) in Studio, um die Untiefen der Projektplanung zu erforschen.
Dieses Interview ist einer von 2 Teilen unserer Serie On Tour @ #ctwebdev.
Anfang Februar waren wir bei einer brandneuen Konferenz zu Gast, der <c’t webdev> in Köln. Nachdem der heise-Verlag ja schon erfolgreich andere Entwicklungsfelder wie zum Beispiel JavaScript mit Konferenzen beackert, schien es wohl Zeit zu sein, das Thema „Frontend“ in den Fokus zu nehmen. Wir würden sagen: Die Premiere ist gelungen!
Und netterweise durften wir vor Ort wieder ein paar der Sprecher interviewen.
Einer davon war Robert Weber, freiberuflicher Frontend-Entwickler aus der Gegend um Berlin, der auf der Konferenz einen Vortrag zum Thema „Inclusive JavaScript“ gab. Darüber wollten wir gerne mehr wissen. denn von „Inclusive Design“ haben wir wohl mal gehört, aber was genau steckt hinter „Inclusive JavaScript“?
Zur aktuellen Sendung ist Markus Schober (zur Website) zu uns gestoßen und wir sprechen mal wieder ein typisches Frontend-Thema an. Aber hört selbst…
Hier noch einige weiterführende Links zum Thema:
Dieses Interview ist einer von 2 Teilen unserer Serie On Tour @ #ctwebdev.
Anfang Februar waren wir bei einer brandneuen Konferenz zu Gast, der <c’t webdev> in Köln. Nachdem der heise-Verlag ja schon erfolgreich andere Entwicklungsfelder wie zum Beispiel JavaScript mit Konferenzen beackert, schien es wohl Zeit zu sein, das Thema „Frontend“ in den Fokus zu nehmen. Wir würden sagen: Die Premiere ist gelungen!
Und netterweise durften wir vor Ort wieder ein paar der Sprecher interviewen.
Eine davon war Mirjam Bäuerlein, Frontend-Entwicklerin bei Cosee in Darmstadt, die auf der Konferenz die Closing-Keynote über „Component-based CSS“ gab, und die wir gerne zu zwei Dingen befragen wollten: Zum einen hat uns interessiert, wie sie als vormalige Office Managerin und Hundetrainerin den Quereinstieg in die Webentwicklung gemeistert hat – und das auch noch in unter zwei Jahren! Zum anderen haben wir über ein wichtiges Side-Project von Ihr gesprochen, nämlich über Conference Buddy, das das Problem angeht, dass wir auf Konferenzen (oder Meetups) oft nicht genau wissen, wie wir uns anderen Personen annähern und mit Ihnen erfolgreich „socializen“ können.
Mit unseren ewigen, aufopferungsvollen Bestrebungen, gebildetes Halbwissen zu verbreiten, holen wir die eigentlichen Experten an Land. So auch geschehen mit dem heutigen Gast Timo Zöller der meinte, wenn die Working Draft Runde meint das M in MobX stünde für Magie, könnte man doch mal aufklärend zur Seite stehen!
In dieser Revision ließen sich Schepp, Peter und Stefan von Johannes Busch (@jomungand) alles über aktuellen Angular-Angelegen ausrichten.
Hans und Peter durften zum wiederholen Male Vanessa Böhner als Gast begrüßen (zuletzt in Revision 367 dabei, außerdem mit Webseite und Twitter ausgerüstet) und diesmal über alle Formen und Spielarten des (Frontend-) Testings sprechen.
In dieser Revision ist Jakob Holderbaum zu Gast und redet mit uns über das Thema Micro Services. Jakob ist als Consultant für verschiedene Firmen tätig und organisiert die Think About! Conference.
Hier noch einige Literatur die empfohlen wurde:
Aus dem fernen Österreich kam Philipp Naderer-Puiu (Github, Twitter) ins virtuelle Workingdraft-Studio geschneit und berichtete Hans, Schepp und Peter von seinem Dasein als Frontendler bei orf.at.
Schepp, Rodney and Stefan invited Peter Müller to speak about automatic performance optimisation with font subsetting.
This interview is part of our six-part series On Tour @ #perfnow.
At the beginning of November, we attended a new conference in Amsterdam called performance.now(). performance.now() is put together by no-one less than Steve Souders and Tim Kadlec, two well known experts in the performance circus. And they teamed up with the people running the CSS Day. What they put together was nothing short of amazing. They had 16 of the most talented speakers flying in from all over the world, and we got the opportunity to interview a few of them!
With Natasha Rooney we got an expert on networking and protocols with us. We discuss where the web came from with HTTP/1.0, what HTTP/2 solved and where it could do better. This leads us to speak about the work of the QUIC protocol working group which is now being standardised by the IETF as HTTP/3.
This interview is part of our six-part series On Tour @ #perfnow.
At the beginning of November, we attended a new conference in Amsterdam called performance.now(). performance.now() is put together by no-one less than Steve Souders and Tim Kadlec, two well known experts in the performance circus. And they teamed up with the people running the CSS Day. What they put together was nothing short of amazing. They had 16 of the most talented speakers flying in from all over the world, and we got the opportunity to interview a few of them!
Font-Loading on the Web has always been painful and you needed to wrap your head around the topic intensively. These days have changed – but then again it’s still complex. Zach explains what some quirks are and how to tackle the problems best. Finally we touch the very promising idea of a streaming file format for fonts.
Während draussen die globale Erwärmung unseren Planeten aufheizt, lässt Microsoft zum wiederholten Male die Hölle zufrieren. Diesmal trifft es den hauseigenen Internet Explorer Nachfolger Edge. Hans, Rodney und Stefan unterhalten sich.
This interview is part of our six-part series On Tour @ #perfnow.
At the beginning of November, we attended a new conference in Amsterdam called performance.now(). performance.now() is put together by no-one less than Steve Souders and Tim Kadlec, two well known experts in the performance circus. And they teamed up with the people running the CSS Day. What they put together was nothing short of amazing. They had 16 of the most talented speakers flying in from all over the world, and we got the opportunity to interview a few of them!
With Harry Roberts and Ryan Townsend we discuss how external scripts affect loading a website and which pitfalls developers should look out for. Furthermore we talk about Ryan’s company ShiftCommerce and their challenges supporting clients in e-commerce.
Zu fünft griffen Peter, Hans, Schepp, Rodney und Mehrfach-Gast Sebastian Golasch (Web, Twitter) die Themen Internationalisierung und Lokalisierung frontal an. Rodney und Sebastian konnten dabei auf ihrem reichen Erfahrungsschatz aus einem großen IOT-Projekt schöpfen und plaudern munter drauflos.
This interview is part of our six-part series On Tour @ #perfnow.
At the beginning of November, we attended a new conference in Amsterdam called performance.now(). performance.now() is put together by no-one less than Steve Souders and Tim Kadlec, two well known experts in the performance circus. And they teamed up with the people running the CSS Day. What they put together was nothing short of amazing. They had 16 of the most talented speakers flying in from all over the world, and we got the opportunity to interview a few of them!
Most developers have used Kornel’s work already via tools like mozjpeg, PNGquant and most famously ImageOptim.
We speak about the present and the future of image formats. For example we discuss how WebP changed the web and what problems come with it. One of the most interesting formats for the future seem to be AV1 which can be used partially today already.
This interview is part of our six-part series On Tour @ #perfnow.
At the beginning of November, we attended a new conference in Amsterdam called performance.now(). performance.now() is put together by no-one less than Steve Souders and Tim Kadlec, two well known experts in the performance circus. And they teamed up with the people running the CSS Day. What they put together was nothing short of amazing. They had 16 of the most talented speakers flying in from all over the world, and we got the opportunity to interview a few of them!
Anna Migas’ talk was about Rendering Performance in the Browser. We talk about 120 fps screens and how they will change the way we develop JavaScript today. Another interesting topic is the will-change
property in CSS and how it is useful for developers to increase Rendering Performance. Lastly we speak about the CSS Containment property and what it does.
Die anderen haben Statistiken und Daten, wir haben Meinungen und Anekdoten! Hans, Schepp und Peter besprechen die Ergebnisse einer großen JavaScript-Umfrage.
Nachdem wir feststellen, dass JavaScript wirklich überall auf diesem Planeten geschrieben wird (und in Australien besonders gut bezahlt wird) besprechen wir bei den diversen Geschmacksrichtungen von JavaScript den Aufstieg von TypeScript, das Ende von Flow und die Allgegenwart von ECMAScript 6+. Bei den Frontend-Frameworks kommt nach React, Vue und Angular lange nichts, wobei es bei Angular auch überraschend unzufriedene Nutzer gibt. Zu beachten ist bei solchen Statistiken immer, wie groß der JavaScript-Kuchen in absoluten Zahlen ist und wie stark er wächst – wie Laurie Voss in seinem Talk zum Stand von NPM verdeutlicht. Beim State-Management ist Redux das Mittel der Wahl der Befragten mit GraphQL (siehe Revision 292) auf dem zweiten Platz. Im Backend dominiert Express alles, während es in Sachen Testing sowohl unter den Befragten als auch im Podcast-Team unterschiedliche Ansichten gibt.
Stefan, Schepp und Peter durften ein weiteres Mal Christoph Reinartz (Web, Twitter) von Trivago im Podcast begrüßen und diesmal erfahren, wie es ist, sich vom Entwickler zu etwas anderem zu entwicklen.
This interview is part of our six-part series On Tour @ #perfnow.
At the beginning of November, we attended a new conference in Amsterdam called performance.now(). performance.now() is put together by no-one less than Steve Souders and Tim Kadlec, two well known experts in the performance circus. And they teamed up with the people running the CSS Day. What they put together was nothing short of amazing. They had 16 of the most talented speakers flying in from all over the world, and we got the opportunity to interview a few of them!
With Yoav Weiss we talked about Resource Hints, what they are and how they work. We also touched briefly on how HTTP/2 still has a few flaws and how the new QUIC protocol helps us solve these.
Nach dem Vue-Einstieg aus Revision 365 besprechen wir in dieser Revision mit Vanessa Böhner (Web, Twitter) die kniffligen Feinheiten des jünsten Sterns am Framework-Himmel.
Aus einem magischen Königreich von einer verzauberten Insel kam Patrick H. Lauke (Senior Accessibility Guru bei The Paciello Group und fleißge Tweetschleuder) zu uns, um uns von der Entstehung und Weiterentwicklung von Pointer Events zu berichten.
Gemeinsam mit unserem Gast Roman Kuba sprechen wir noch einmal ausführlicher über Vue.js, ein JavaScript-Framework, das sich in letzter Zeit sehr großer Beliebtheit erfreut.
Hans, Peter und Stefan nehmen einen aktuellen GitHub Ausfall zum Anlass um über Katastrophen und deren Vermeidung zu reden.
Stefan, Schepp und Peter starteten mit dem Plan, ein wenig von aktuellen Webtech-Herausforderungen in ihrer alltäglichen Arbeit zu erzählen. Aus Zeitgründen hat es nur für für die Berichte von zwei von drei Personen gereicht.
Schepp werkelt am Frontend der Rheinischen Post (und anderen Zeitungen aus dem Verlag), während Stefan sich für Dynatrace betätigt. Seine Hauptaufgabe besteht darin, das alte GWT-Frontend durch Angular zu ersetzen, v.A. durch eine Onboarding-Prozedur. Wie betrachten die beachtliche öffentliche Komponentensammlung von Dynatrace und philosophieren über die Seltenheit von Greenfield-Projekte verglichen mit heroischen Migrationen. Davon kann auch Schepp ein Lied singen, der nicht nur die neueste Version der RP mitgebaut hat, sondern die Idee dahinter auch Nicht-Frontendlern und übergeordneten Stakeholdern kommunizieren musste. Heraus kam ein skinbares Designsystem, das vielseitig eingesetzt wird (man vergleiche rp-online.de mit wz.de). Am Ende kommen wir zu einer Diskussion rund um Werbung, JavaScript-Werbemittel, die Advertising Bubble und beenden die Sendung bevor Peter eine Gelegenheit hatte, von seinen Kämpfen mit dem CSSOM zu berichten (siehe auch: JSSS).
Nächster Halt des Hype-Train: der Bahnhof Workingdaft-Süd! Damit uns keine Verzögerungen im Betriebsablauf heimsuchen stellt Gast Tobias Oberrauch (Xing, Twitter), seines Zeichens KI-Consultant, für uns die Weichen in Sachen künstlicher Intelligenz.
Wie es der Zufall wollte, trafen sich Hans, Schepp und Peter an einem Aufnahmetag in Köln. So kam es zu einer jener seltenen Revisionen ohne laggende VOIP-Software. Trotzdem ging es am Ende ging dann doch wieder um Performance und fittere Frontend-Frameworks.
Stefan und Peter haben für diese Revision als Entschuldigung vorzubringen, dass der eine als frischgebackener Papa und der andere als überarbeiteter Erklärbär Schlafdefizite aufweisen, bei denen ein Bailout dringend angebracht gewesen wäre. Stattdessen gibt’s einen Podcast.
Wisst ihr, wo semantisches (X)HTML, CSS und ganz, ganz, ganz viel Responsive Design unglaublich wichtig ist? Bei Büchern! Jedes EPUB ist im Grunde ein gezipptes Bündel an Web Dokumenten, für euren Lesespaß optimiert. Wie sehr sich diese Ausprägung der Web Technologien allerdings vom Rest der weiten Web Welt unterscheidet, erklären Sven Wolfermann und Robert Weber.
As Schepp was left alone by his co-moderators (due to valid reasons) he reached out to Niels Leenheer in order to chat a bit about the Web Bluetooth and Web USB APIs. And as you might already have guessed this episode is in English :)
Ein Artikel aus grauer Vorzeit (also Februar) veranlasst uns mal den JAMStack genauer zu beleuchten.
Schnelle Auslieferung und bombensichere Websites sind die Folge. Dienste wie Netlify kümmern sich dabei von Cloud-Funktionen, Build Services und Hosting über alles.
Neben all dem Lob schauen wir aber auch auf die Schattenseiten und zeigen, was alles schiefgehen kann, wenn man mit der Skalierung nicht mehr nachkommt.
setTimeout
, …) ist ja einfach, oder? Nolan Lawson zeigt was alles dahinter steckt.Chrome hat ein paar neue Features, die in keinem anderen Browser funktionieren und für die es noch nicht mal anständige Spezifikationen gibt. Natürlich ist das für Schepp, Hans und Peter Anlass zu einer ganzen neuen Revision!
lazyload
-Attributs für Bilder und Iframes. Themenverwandt ist auch das asynchrone Dekodieren von Bildern, für das es sogar schon Spezifikationstext gibt!„Kafka ist eine Bosna mit einer Käsekrainer“. Oder doch ein deutschsprachiger Schriftsteller der sich in riesige Käfer verwandeln konnte? Immerhin kommen Zoowärter vor. Und was haben die Apachen damit zu tun? Fragen über Fragen. Antworten liefert „Old Firehand“ Simon Streubel, der von seinem ganz besonders käferlosen „Simons Traum“ erzählt und Hans und Stefan durch Begrifflichkeiten und Funktionsweisen führt. Prostmahlzeit.
Hans, Peter und Stefan erkunden Details von Babels Zukunftsplanung und bewerben in dreister Form Konferenzen, Konferenz-Ersatzveranstaltungen und Workshops.
In dieser Revision widmen wir uns mal einem Soft-Skill und reden über Herausforderungen bei der Kommunikation im Team und darüber, wie gute Kommunikation aussehen kann. Als Fachmann für diese Themen haben wir uns Coder & Kommunikations-Coach Marcel Koch (@_mknet_) in die Sendung geholt.
Hans, Peter und Stefan nehmen den aktuellen Release von TypeScript 3.0 her um über ihre Erfahrungen mit dem Thema zu plaudern. Querbeet, von einsteigerfreundlich bis zu unverschämt fortgeschritten.
Schepp und Stefan haben sich Verstärkung aus Zürich geholt. Martin Splitt, seit kurzem Dev Rel bei Google für die Google Suche, klärt einige Mythen auf.
Hans, Schepp und Peter fanden sich zusammen um einfach mal eine komplette Revision über nichts anderes als HTTP-Header zu quatschen!
Der Schepp, Rodney und Hans sprechen über die Entwicklung von serverseitigen Applikationen mit Node.
Diese Folge wird gesponsert vom neuen CV-Tool “GravityCV”, für einfaches, flexibles und schnelles erstellen und versenden Deines Lebenslaufs.
“GravityCV” – Professionelles Design & hoher Datenschutz für dein CV.
Kostenlos anmelden unter gravitycv.com.
Zur Installation eines eigenen CLI kann man einfach ein Paket von NPM installieren oder direkt von GitHub per entsprechendem Command:
npm install -g git+ssh://@github.com:username/repository.git
Kollege Sven Wolfermann kommt zu Besuch und erläutert mit uns den Stand der Performance Optimierungen im Jahr 2018.
preload
und ES Module. In Sachen Fonts besprechen wir Variable Fonts, Subfont und das neue font-display
property. Außerdem gibt’s einen Rundumschlag über Lazy Loading, u.a. mit der Intersection Observer API.Die Revision 347 steht ganz im Zeichen der Autorisierung mit OAuth. Zumindest sprechen wir viel über OAuth. Und zwar mit Johannes Pichler, der bei karriere.at als Backend-Entwickler unterwegs ist.
Einige Jahre nach der ersten Sendung (158) mit Trivago- und Ex-Akamai Performance-Experte Tobias Baldauf (Twitter, GitHub) ist es wieder so weit: Tobias besucht uns und gibt sein Wissen preis. Dieses mal besprechen wir sehr gezielt das Thema Bildoptimierungen.
Zur aktuellen Sendung ist Frederic Hemberger (Web, Twitter) zu Gast, der erst kürzlich mit uns über die Beziehung von DevOps zur Täglichen Arbeit als Webentwickler gesprochen.
Heute sprechen wir über Container-Software wie VMs, Docker und Kubernetes und wie diese ineinander greifen.
Hans und Peter fragten in dieser Revision Christian Lück (Web, Github, Twitter), seines Zeichens einer der Maintainer von React PHP, zu seinem Lieblingsthema aus.
Inspiriert von einem vergleichsweise dünnen Artikel über ein paar unspektakuläre JS-Neuerungen diskutierten Schepp, Hans, Stefan und Peter ihre persönlichen Favoriten in der JS-Feature-Pipeline.
Nachdem wir in Revision 147 schon einmal über das PHP Framework Laravel gesprochen haben, dachten wir uns, es sei langsam mal wieder Zeit für eine Auffrischung.
Deshalb ist in dieser Revision Johannes Pichler unser Gast und wir sprechen gemeinsam über die Neuerungen und technischen Gegebenheiten von Laravel.
Johannes erklärt, was es seit der Revision 147 alles Neues zum Thema Laravel gibt. Wir sprechen über Bootstrapping, Facades, Collections, Events, Queues und vieles mehr.
Anhand eines praktischen Beispiels hangeln wir uns an einer Umsetzung einer Applikation entlang:
Darüber hinaus sprechen wir über die Möglichkeiten, Laravel fürs Frontend einzusetzen.
Weitere Links:
Hans und Peter nutzen beide Visual Studio Code und geben ihre Tool-, Extension-, und Konfigurations-Tipps zum besten! Anlass waren die Veröffentlichung des Artikels Top JavaScript VSCode Extensions for Faster Development sowie vscodecandothat.com.
Außerdem sprechen wir über das integrierte Terminal von VS Code und warum wir stattdessen Hyper und Terminator benutzen und warum damit unsere Benutzung der Desktop-Manager Divvy und Unity einhergeht.
Mangels tagesaktueller Themen spielten wir in Person von Schepp, Peter, Hans und Stefan mal wieder eine Runde HTML5-Glücksrad.
Als Gäste sind diesmal Nik Graf und Patrick Stapfer zu Gast. Nik ist den Zuhörern schon aus Sendungen zum Thema React und Serverless bekannt. Patrick ist zum ersten Mal richtig mit dabei.
Für diese Revision haben wir uns den Robin Mehner (@rmehner auf Twitter) eingeladen, der nicht nur (Mit-)Organisator verschiedener Berliner Meetups wie der BerlinJS oder der Up.front ist, sondern auch der Reject.JS-Konferenz (als es sie noch gab). Wir quatschten mit Robin über seine Erfahrungen und Learnings beim Bau von offline-fähigen Web Apps, über die Erwartungshaltung von Benutzern dieser Anwendungen und über die Service Worker Technologie und ihre Fallstricke im Speziellen.
Wir hatten mal wieder Frederic Hemberger (Web, Twitter) zu Gast, mit dem wir uns über das neueste aus der DevOps-Welt austauschten.
Für alle Entwickler, die mit personenbezogenen Daten arbeiten ist der 25. Mai 2018 ein spezielles Datum. Eine Richtlinie der EU, welche aktuell in vielen Firmen kurz vor Frist behandelt werden muss, erhält an diesem Tag ohne Wenn und Aber ihre Wirksamkeit: die Datenschutzgrundverordnung, kurz DSGVO oder englisch GDPR (General Data Protection Regulation).
Da dieses Thema so präsent ist, haben wir uns drei Experten zum Thema eingeladen:
Anselm, Hans und Rodney lassen sich von Sebastian Golasch alles rund um DRM (Digital Rights Management, auch Dumb Restrictions Mania) erklären. Sebastian wollte eigentlich nur Netflix in Kodi zum Laufen bringen. Wir stellen wieder einmal fest: Kaninchenlöcher können ganz schön tief sein…
Nachdem sich kurzfristig krankheitsbedingt eine kleine Moderatoren-Knappheit eingestellt hat, konnten wir glücklicherweise einen tollen Gast für die Sendung gewinnen:
Oliver Schöndorfer (Twitter), seines Zeichens Designer und Typographie-Liebhaber erklärt uns den aktuellen Horizont der Web-Typographie.
Zur Revision 333 haben wir uns Ola Gasidlo eingeladen und über Themen gesprochen, die sie bewegen. Ola arbeitet bei Mozilla vor allem am Projekt Webcompat, das auf der Website als „Bug reporting for the internet“ beschrieben wird.
Diese Revision hatten wir Benedikt Meurer (Web, Twitter, Github), seines Zeichens Tech Lead bei V8, zu Gast.
const
und modernen ES-Standards allgemein und kommen auch auf die Top 3 Performance-Irrtümer zu sprechen.Die neuste Sendung steht ganz im Zeichen von Serverless-Architektur und der Thematik außen herum. Wir haben uns zwei Gäste zum Thema eingeladen, die sich auskennen: Nik Graf und Philipp Müns. Nik und Philipp arbeiten gemeinsam an einem Open-Source Serverless-Framework.
Einige Links und Lösungen, die wir erwähnten:
In diesem Zusammenhang sei auch noch einmal die Revision 314 mit Golo Roden erwähnt, die sich mit den architektonischen Grundlagen von Domain Driven Development und event-basierten Architekturen beschäftigt.
Diesmal haben wir ohne Gast in einer kompakten Ausgabe mit dem Schepp, Rodney und Hans über die Problematik der Geolocation API und das Dialog-Element gesprochen.
<dialog>
verbessert werden. Wird das gelingen? Wo liegen die Probleme mit dem Element? Rodney klärt auf.Schepp, Hans, Anselm und Peter durften diesmal Surma (Web, Twitter) begrüßen und sich mit ihm einmal quer durch den zukünftigen Web-Stack philosophieren.
In dieser Revision war Working-Draft-Alumnus Kahlil (Webseite, Twitter, Podcast) zu Gast um mit Hans und Peter über Web Components zu plaudern.
Nachdem wir das Thema „Zusammenarbeit von Designern und Entwicklern“ in Revision 312 schon besprochen hatten legen wir diesmal noch eine Schippe drauf. Unsere Gäste Dennis Reimann (Webseite, Twitter) und Jan Persiel (Webseite, Twitter) nehmen sich dieses Problems auf ihre eigene Weise an und berichten uns von ihrem Kampf für interdisziplinäres UI-Engineering.
npm install
Anselm und Stefan begrüßen heute TYPO3 Experten Marcus Schwemer um den Performance-Krücken von TYPO3 auf die Spur zu kommen.
Nachdem aller guten Schichten sieben sind, gibt es nach dem Rundumschlag noch den generellen Hinweis: Der Teufel steckt im Detail. Diese und weitere Tipps gibt es auch auf Marcus‘ Blog.
Dieses Mal hatten wir Jan Krutisch zu Gast, der mit uns einen Ausflug in die Welt der Synthesizer und Audioeffekte unternahm. Thema war nämlich die Web Audio API, mit der Jan das Glück hat, sich immer wieder beschäftigen zu dürfen, etwa in Form des liv3c0ders oder der Novation Circuit Components.
Anselm, Hans, Stefan und Schepp haben sich heute Hans-Christian Otto eingeladen, um über das oft missverstandene und viel Spott ausgesetztem PHP zu reden.
Wer schöneres PHP schreiben will, schaut sich den PHP Mess Detector, den Qafoo Blog, das PHP Design Patterns Buch und vor allem die PSRs an.
Hans und Peter sprachen diesmal über SmartSteckdosen mit Wifi, den Spritverbrauch von 4er-BMW und YouPorn. Aufgezeichnet haben Sie aber nur die Diskussion über (asynchrone) Iteratoren in modernem JS.
Linz, München, Köln, Lissabon, Hongkong. Der wohl verteilteste Working Draft bis heute dreht sich um Dinge die entstehen, wenn man gemeinsam an einem Ort ist. So haben Holger Bartel, Tobias Tom und unser hauseigener Anselm eines schönen Tages in Düsseldorf beschlossen, die Event Plattform Colloq ins Leben zu rufen. Wir lauschen der Motivation und lernen aus den Erfahrungen.
Im Duett über die Tücken der modernen HTTP/2 Server. Mit Anselm und Stefan
postMessage()
macht Kommunizieren einfacher.Dieses mal hatten wir Lars Wolff von Stormforger zu Gast. Stormforger ist ein API- und Load-Testing-Tool, das uns auffiel, weil sich die Testszenarien per JavaScript beschreiben lassen. Darüber wollten wir mehr wissen…
Schepp, Hans, Peter und Stefan sprechen über mögliche Standards, Browserfeatures v.s. Privacy und dem ewigen Kreuz mit Animationen.
Die neuste Revision haben wir gemeinsam mit Jens Grochtdreis aufgenommen. Als Ausgangspunkt haben wir sein Buch zum Thema Modulare Webentwicklung genommen, dass er in den letzten Jahren geschrieben hat.
Stefan, Hans und Schepp geben Erfahrungsberichte zu dem in Revision 224 zum ersten Mal vorgestellten PostCSS.
Hans, Stefan und Schepp nahmen mal wieder einen Artikel als Anlass über ein umfassenderes Thema zu reden, was diesmal Google Lighthouse war.
[rel="noopener"]
verpasst bekommen sollten, das hat vor einiger Zeit Jake Archibald verbloggt.Stefan und Anselm behandeln im Duett zwei News und schmücken Sie zum vollen Thema aus.
Gast Golo Roden (Twitter, Github, Webseite) erleuchtet in dieser Revision Hans und Peter in Sachen Domain Driven Design sowie Command and Query Responsibility Seggregation. Aufgrund technischer Schwierigkeiten bei der Aufnahme, gibt es diesmal nur unseren Gast in hoher Audioqualität.
In dieser eher kurz geratenen Episode schauen Hans und Schepp sich das recht neue Konzept der Origin Trials an.
Hans und Peter durften diesmal David Hellmann und Justin Schueler auf der Podcast-Gästeliste begrüßen, mit denen sie über die ewig komplizierte Zusammenarbeit von Designern und Entwicklern sprachen.
Stefan und Peter befassten sich diese Woche mit Theorie und Praxis von CSS-Klassen-Benennung und warfen einen Blick auf das geplante binäre JS-AST-Format.
font-size
darstellt.Weil Schepp sich in letzter Zeit auch mit Service Workern beschäftigt hat, und weil sowohl Microsoft als auch Apple an ihnen arbeiten, ließen Hans und Anselm sich von ihm ein paar Erfahrungen aus der Praxis berichten.
async/await
-Konstrukten entgegentritt. Hilfreich beim Einarbeiten in das Thema sind verschiedene Online-Tutorials, Howtos und Tools, als da wären:
Themen? Wer braucht denn schon Themen!
Von CSS-Guru Sven Wolfermann (Webseite, Twitter) ließen sich Hans und Peter erzählen, was denn modernes CSS so alles zu leisten im Stande ist.
Hans und Anselm quatschen in bestem Wissen und doch einiger Ausführlichkeit über Bildformate und Bildoptimierung auf Webseiten und geben wertvolle Tipps für Webentwickler und Designer, um bessere Bildqualität bei geringer Dateigröße auszuliefern. Alles mit praktischen Tipps und nicht nur Theorie.
Mit Manuel Matuzović von den Webclerks gehen wir in den Themen Accessibility und CSS Grids in ein Nachspiel und ergänzen frühere Folgen. Von der Stammpartie mit dabei: Schepp, Hans und Stefan.
Als kleinen Themen- und Tapetenwechsel haben wir uns für diese Folge die Datenjournalisten Kira Schacht und Phil Ninh von Journocode eingeladen, um etwas über ihr Berufsfeld und den Herstellungsprozess von datengetriebenen und/oder interaktiven Reportagen zu erfahren.
Hans und Schepp telefonierten sich diesmal zusammen und sprachen über die weite Verbreitung und Vorteile moderner Browser-APIs.
Object.assign(elem.style, { color: '#fff', fontSize: '1rem' })
mit bestehenden Eigenschaften zusammenmergen.smooth
zur Verfügung.minmax()
-Funktion ein, welche recht praktisch ist.Eine knifflige Problemstellung mit einem der dutzend AWS Dienste brachte Hans und Stefan in den Dialog. Prompt war ein Working Draft Thema geboren. So gesellte sich noch Anselm dazu um die Diskussionsrunde zu komplettieren und einen guten Rundumschlag über die modernen Hosting-Möglichkeiten über den Wolken geben.
Rodney und Peter hockten sich zusammen um über sehr neue und sehr alte JavaScript-Technologie zu schwafeln.
Letzte Revision noch über ihn, bzw. einen seiner Artikel gesprochen, heute schon in unserer Sendung: Jens Oliver Meiert! Wir haben ihn auf der gerade vergangenen beyond tellerrand Düsseldorf zufällig getroffen und ihn erfolgreich in ein Interview zum Thema CSS verstrickt.
Revision 300! Aus Gründen™ gab es diesmal aber keine Spezial-Sonder-Revision, sondern Anselm, Schepp, Stefan und Peter ließen einfach das Glücksrad kreisen.
scope
und headers
) und Layout-Tricks, die sich mit Tabellen abziehen lassen.In dieser Revision haben wir das Vergnügen, uns von Stefan Judis (Twitter, GitHub, Webseite) alles über Electron erzählen zu lassen.
Ein vorerst letztes mal wird unser Podcast von Wire gesponsort, dem sicheren Open Source Messaging Client für all eure Plattformen, welcher auch den Desktop als First-Class-Citizen betrachtet. Jetzt auch mit Open-Source-Server-Komponenten!
Hans, Schepp und Peter (mit einer Extraportion Heuschnupfen im Gepäck) widmeten sich in dieser Revision voll und ganz ECMAScript-Modulen und den dazugehörigen Tools.
In dieser Sendung ist Bastian Krol mit am Start und spricht mit uns über Elm.
Wieder wird unser Podcast von Wire gesponsort, dem sicheren Open Source Messaging Client für all eure Plattformen, welcher auch den Desktop als First-Class-Citizen betrachtet.
Diese Folge haben sich Hans und Schepp zusammengesetzt, und über die Idee eines Accessibility Object Model diskutiert.
Wie jede zweite Ausgabe wird unser Podcast wieder von Wire gesponsort, dem sicheren Open Source Messaging Client für all eure Plattformen, welcher auch den Desktop als First-Class-Citizen betrachtet. Demnächst mit erweiterten Funktionen für Teams!
In der Kürze liegt die Würze: Hans und Peter lassen sich diesmal von Stefan ein Framework für Isomorphic JS-SPAs erklären und verlesen zwei kleine Links.
Für diese Revision haben wir uns nach längerer Zeit mal wieder den Sven Wolfermann eingeladen, den man desöfteren auf Konferenzen, Community-Events und Unkonferenzen mit Vorträgen zu fortgeschrittenen CSS-Techniken antreffen kann. Selbiges gilt für sein Blog unter maddesigns.de. Denn wir wollten diese Woche gerne über die neuen CSS Grids sprechen, die jetzt nach und nach in den neuen Browsern freigeschaltet werden.
Bereits zum dritten Mal wird unser Podcast jetzt von Wire gesponsort, dem sicheren Open Source Messaging Client für all eure Plattformen. Dank verbesserter Technik verbindet sich der Messenger nun noch schneller mit der Gegenseite, und die Übertragungsqualität ist dabei auch noch gestiegen!
Wer nach unserem Gespräch Lust bekommen hat, sich selbst mit den CSS Grids zu befassen, dem empfiehlt Sven folgendes Lernmaterial, um schnell in die Spur zu kommen:
Abschließend blicken wir in die Zukunft und sprechen über das Konzept der „Subgrids„, das von vielen Entwicklern im Zuge der Grids-Entwicklung nachgefragt wurde, und das in eine nächste Ausbaustufe des Layoutstandards gewandert ist.
Rodney, Hans und Peter widmeten sich in dieser Revision dem Thema Web Assemby sowie der ewigen Frage nach Frameworks, Bloat … und Web Components.
Zur neusten Sendung ist Johannes Schickling mit von der Partie. Nachdem er in London sein erstes Startup erfolgreich hinter sich gelassen hat, arbeitet er nun in Berlin am nächsten Coup. Das Thema ist GraphQL, die Firma heißt Graphcool.
Wie bereits vor zwei Wochen wird diese Revision von Wire, dem sicheren Open Source Messaging Client für all eure Plattformen gesponsort. Zudem gehören – dank der neuen Textsuche – verlorengegangene Nachrichten ab sofort der Vergangenheit an.
Peter und Anselm widmeten sich diese Woche in gebotener Kürze einem (vielleicht) neuen HTML-Element sowie den Features von ES2017. Es gab während der Aufnahme keinerlei technische Probleme und wer glaubt, irgendwelche Schnitte zu hören, ist Fake News aufgesessen. Sad!
<h1>
bis <h6>
ersetzen bzw. ergänzen soll. Während wir zwar den Use Case im Prinzip anerkennen, sehen wir aber doch recht viele Probleme: das größte ist, dass das <h>-Element eigentlich ein Sub-Feature des Outline-Algorithmus von HTML5 ist, der seit Jahren unimplementiert vor sich hin schimmelt. Styling ist eine weitere unüberwundene Hürde. Hingegen kritisiert Jake Archibald vor allem eine mangelhafte Entscheidungsgrundlage – es gibt viele Behauptungen und wenig Daten. Prognose: das mit dem <h>-Element wird nichts.In ewiger Jagd nach besserer Audioqualität und stabileren Servern sponsort uns diesmal Wire, der sichere Open Source Messaging Client für all eure Plattformen.
Einem Hörertipp zum Anlass haben wir uns den Autor Tobias Koppers sowie einen der Maintainer, Johannes Ewald, des Webpack Projektes eingeladen und den beiden viele wertvolle Tipps entlockt und über die Zukunft ausgefragt.
Zur Revision 288 haben wir uns einen Gast aus der Schweiz eingeladen: Roger Dudler, der CTO von Frontify.
Gemeinsam sprechen wir über Frontify und das Thema Styleguides.
display: flow-root;
soll das Problem lösen.Anselm und Hans haben dieses mal Joschi Kuphal (seine Firma, Twitter) zu Gast.
Auf der Reise durch Frontend-Framework-Mordor sehen sich die Gefährten des Teams Working Draft unversehens dem Aurelia-Framework gegenüber. Aber keine Angst: die heldenhafte Katharina Bähr (Blog, Twitter) ist dabei und beantwortet jede Frage, die Schepp, Hans und Peter zu Aurelia haben.
Zum Jahresende haben sich Hans, Anselm, Schepp und Stefan niemand geringeren als Vitaly Friedman vom Smashing Magazine eingeladen, um
ausgiebig über aktuelle Trends, Vitalys Werdegang und natürlich das Smashing Magazine zu plaudern.
Vor ziemlich genau einem Jahr telefonierten Rodney und Schepp sich zusammen, und starteten den Versuch einer Technologie-Prognose für das nachfolgende Jahr: Welche brandneuen Technologien, Frameworks, Tools und Methodiken würden 2016 Fahrt aufnehmen? Heute blicken wir zu dritt zurück auf diese Folge und schauen, was davon eingetreten ist. Soviel lässt sich sagen: Wir lagen bei mindestens so vielen Vermutungen richtig, wie wir auch falsch lagen. Ganz am Ende wagen wir sogar noch einen vorsichtigen Ausblick auf 2017.
Zur Revision 283 des Working Draft durften wir wieder einmal zwei Gäste empfangen. Mit dabei waren Christoph Rumpel, den ihr bereits aus der Revisionen 147 kennt, und Roman Kuba, der noch nicht dabei war. Geballte Österreichische Power im Haus!
Die beiden brachten jeweils ein Thema mit, das wir ausführlich diskutieren konnten.
Ein weiteres Mal widmen wir uns Googles AMP. Um nach der Revision mit dem AMP-Projektleiter auch mal die Nutzerperspektive kennen zu lernen, luden wir uns Tobias Block aus Düsseldorf ein, der sich als Mobile-Frontend-Developer für RP-Online verdingt und uns Einblicke aus der täglichen AMP-Praxis gab.
Stefan hat sich heute Nik Graf und Max Stoiber vom React Vienna Meetup eingeladen um die diesjährige Reactive Conf und den aktuellen State of React zu besprechen. Viel Spaß!
Hans, Stefan und Schepp besprechen heute den kürzlich veröffentlichten Paketmanager Yarn und die „Styled Components“ CSS Lösung für React.
Hans und Anselm plaudern mal aus dem Nähkästchen: Warum Hans drei Monate nichts tat, und Anselm einfach mal vier Wochen in den Urlaub fährt. Über Versuche als Selbstständige vom Beruf abzuschalten, aber auch warum wir uns in Deutschland glücklich schätzen können als Arbeitnehmer. Wir freuen uns über eure Kommentare, Erfahrungen und Tipps hierzu.
@supports
Während die anderen Kollegen allesamt geschlossen dem Tag der Deutschen Einheit gedachten – allen voran sicherlich Stefan :) – setzte Schepp sich mit Marc Thiele zusammen, dem Macher der beyond tellerrands als auch des Twumble-Podcasts, und wir sprachen über alles Mögliche, vor allem aber über…
Rodney, Schepp und Stefan widmen sich heute inoffiziellen und halbgar implementierten Standards um einen Ausblick in eine erstaunliche Zukunft zu bekommen, die jetzt schon zum Greifen nah ist.
Hans und Peter lieferten sich eine epische Debatte rund um JavaScript, speziell Module und Dependencies. Am Ende schütteln beide auch noch mal kurz den Kopf über eher originelle Vorschläge zum Thema CSS.
text()
-Methode nachzubauen (denn innerText ist super-kompliziert). Hans hingegen führt sein CSS Modal an Beleg dafür an, dass es nicht immer jQuery sein muss. Unabhängig von jQuery wollen beide nicht auf Lodash verzichten, obwohl da das bloat-Problem im Prinzip fortbesteht. Große Hoffnungen werden an diverse Methoden zur Dead Code Elmimination gerichtet (z.B. per Rollup oder Babel-Plugin). So könnten große Libraries neben kleinen Libraries (denen wir in Form von isArray und left-pad, vgl. Left-Pad-Gate unterschiedlich viel Respekt zollen) weiter bestehen und verwendet werden, obwohl auch diese ihre ganz eigenen Probleme haben. Am Ende diskutieren wir über den Weg der Zukunft: kleine Module? Große Module mit Erweiterungs-APIs? Web Components?Zum Thema CSS-Refactoring luden wir uns neben dem anerkannten CSS-Buddha Jens Grochtdreis auch Christoph Reinartz an, der bei Trivago Frontend Lead ist, und aus aktuellem Anlass einiges zu erzählen hatte …
In dieser Revision haben Schepp, Hans und Stefan Aaron Czichon zu Gast um ausführlich über das mobile Crossplattform Framework Ionic zu sprechen.
This time we had no one less than Niels Leenheer from Drachten in Holland as our guest, creator of HTML5test.com, owner of the forth largest open device lab in the world and browser connaisseur.
Rodney, Anselm, Schepp und Stefan nehmen aktuelle Entwicklungen im CSS Standard sowie statische Seitengeneratoren für Großprojekte in Angriff.
color
Funktion mit bestehenden Mitteln nicht problemlos definieren kann schraubt man an einer neuen CSS Funktionssyntax, die sich mehr an den Properties orientiert. Damit verbunden ist ein Refactoring sämtlicher existierenden CSS Funktionen, auch jenen, die schon seit IE-Zeiten im Einsatz sind. Sehr kontrovers, aber doch durchdacht. Wir geben unseren Senf dazu und überlegen ob man das auch anders hätte lösen können.Schepp, Hans und Stefan nutzen die steigenden Temperaturen um Unklarheiten aus dem Weg zu räumen.
Diesmal reichte die Themenliste nur für eine Kurzrevision mit Schepp, Peter und Stefan. Dazu kommen die üblichen drei Links.
console.log()
– denn tatsächlich nutzen viele auch namhafte Entwickler keinen Debugger (Peter erwähnt hier das Buch Coders at Work). Mit leichter Chrome-Schlagseite berichten wir von unseren Erfahrungen mit dem debugger-Statement, Source Maps, Console-Methoden jenseits von log()
(Chrome, Firefox), Blackboxing (Chrome, Firefox), Node-Debugging mit Chrome und mit Visual Studio CodeDie Working Draft Crew ist ja nicht nur fleissig am sprechen, sondern lädt auch gern mal Sprechende zu der einen oder anderen Veranstaltung ein. Hans, Schepp und Stefan plaudern über Organisation von Meetups und Konferenzen
Hans:
Schepp:
Stefan:
Aus akuter Themen-Ermangelung drehen Anselm und Stefan wieder mal am Rad. Erstaunlicherweise gibt’s zum ganz einfachen Elementen wieder außerordentlich viel zu lernen.
img
-Elementimg
Element ist ja allseits bekannt, hat aber doch ein paar Besonderheiten, die es zu klären gibt. Wir reden über Image maps und das crossorigin
Attribut, und lassen alt gediente Input Elemente wieder aufleben.wbr
ElementWir waren mal wieder reif für einen Gast und so luden wir diese Revision den Daniel Mies zu uns ein.
All diese Features ermöglichen es einer TypeScript-fähigen IDE schon zum Zeitpunkt der Codeerstellung Fehler zu erkennen, und sie ermöglichen auch bessere Code-Assistenz-Werkzeuge.
Um Typisierung und Interfaces auch für externe JavaScript-Bibliotheken nutzen zu können, gibt es das Typings-Projekt, eine Sammlung von Typ- und Interface-Definitionen für all die populären Libraries.
Wer jetzt Blut geleckt hat: Die TypeScript-Doku ist laut Daniel sehr gut. Darüberhinaus hat Damiel selbst eine kleine Einführung geschrieben. Zu guter Letzt gibt dann noch das exzellente TypeScript Book, das Pattern und Best-Practices dokumentiert.
Nach monatelange Steineklopfen ist es endlich gelungen, mit dem Pepo eine Revision zum abstrakten Thema „Weiterbildung im Frontend-Bereich“ einzutüten.
Anselm, Peter und Stefan stellten mal wieder fest: Webentwicklung ist, als wollte man über 9000 Korken gleichzeitig unter Wasser halten. Und hin und wieder klappt das gar nicht mal so gut.
Voll am podcasten hier, der @workingdraft #btconf pic.twitter.com/4Kzyid5Ujl
— position: absolutely (@tcaspers) 10. Mai 2016
Auch dieses Jahr waren wir auf der Düsseldorfer beyond tellerrand, wo wir nicht nur fantastische Talks gesehen, sondern uns auch wieder jemanden zum Ausfragen geschnappt haben. Anstatt dass es wie sonst nur ein Interviewpartner war, ergab es sich, dass wir derer drei zusammenbekamen: Während drinnen Vorträge liefen, starteten Rodney und Schepp mit PPK und Chris Heilmann ein, und zur Pause gesellte sich spontan noch Jeremy Keith dazu. Im Hof des Capitols sitzend sprachen wir, wie sollte es in dieser Runde anders sein, über übertriebenes Tooling und die Kaputtheit des Webs. Für die Ton-Qualität, die eher mittel (und heftig geräuschgefiltert) ist, entschuldigen wir uns, aber ein Interview im Innenbereich war für uns ebenso wenig praktikabel. Viel Spaß beim Hören!
In Ermangelnung großer Themen ließen Stefan, Schepp, Peter und Anselm mal wieder das Glücksrad rotieren.
Anselm, Schepp und Stefan nehmen sich zwei herumsurrende Artikel als Anstoß für ein ausgedehntes Plaudern aus dem Nähkästchen.
Zwei Änderungen in der Spezifikation sorgen für den nötigen Gesprächsstoff in der nächsten Stunde. Rodney, Hans und Stefan stellen sich Fragen zur HTML Sektionierung und JavaScript Modulen.
<section>
Verschachtelung als Best Practice Beispiel aus der Spezifikation zu nehmen. Denn nach einem Herausnehmen folgt meistens ein Vergessen …Da die Stammbesetzung diesmal extrem spärlich besetzt und zudem unsere Themenauswahl begrenzt war, lud sich Anselm für die Sendung Max Stoiber ein, um über React Entwicklung und den mittlerweile nicht mehr so einfachen Einstieg in die Front-end Entwicklung zu sprechen.
Schepp, Peter und Anselm erklären nochmal, was beim npm-Gate so abging und warum wir endlich mal vorher nachdenken sollten, wie wir Tools und Workflows aufbauen, statt erst dann, wenn es zu spät ist. Und danach nehmen wir uns gleich noch ein Thema vor, was nach wie vor spannend bleibt: Warum bauen wir so lahme Seiten, vor allem für mobile Endgeräte?
window.opener
durch nutzergenerierten Inhalt missbraucht werden kann.fetch()
Es war mal wieder an der Zeit, dass wir uns Gäste zur Verstärkung ins virtuelle Studio holen. Nachdem sich die letzten Revisionen viel um Content Management Systeme die Arbeit als Frontend-Entwickler mit ihnen gedreht haben, lag es nahe, dass wir uns mal mit den Leuten hinter dem rein API-basierten „headless“ CMS Contentful unterhalten. Aus Berlin zugeschaltet waren Rouven Weßling und Thomas Scholtes.
Wir redeten über die Idee hinter dem CMS und seine Aufteilung in ein Multiuser-Fähiges Backend und fünf Teil-APIs:
Wir erfuhren außerdem weitere schöne Details, nämlich dass Contentful Mehrsprachigkeit, respektive Lokalisierbarkeit ermöglicht. Und auch dass man mit Hilfe der Content Delivery Sync API seine Daten zur Offline-Speicherung im Client regelmäßig abgleichen kann. Wohlwollend nahmen wir zur Kenntnis, dass Rich Content ausschließlich im Markdown-Format verarbeitet wird. Mehrere Seiten lassen sich mit Hilfe von Spaces unter einem Account betreiben. Volltextsuchen sind dank der Search API leicht zu implementieren. Und es lassen sich Webhooks einrichten, die jedes Mal getriggert werden, wenn Inhalte aktualisiert wurden.
Wer nun Blut geleckt hat: Contentful bietet für den schnellen Einstieg eine Reihe von fertigen SDKs und Plugins für JavaScript und alle gängigen serverseitigen Sprachen sowie für diverse Frameworks, native Plattformen und statische Seitengeneratoren.
Zu guter Letzt wiesen wir noch auf ein interessantes Gast-Posting im Firmenblog hin, wo beschrieben wird, wie man mit Contentful und Snipcart sogar ein Shopsystem abbilden kann.
Der einzige Nachteil, den wir während des ganzen Gesprächs an dem CMS ausmachen konnten: Durch die Art und Weise des Hostings lässt sich nicht sicherstellen, dass Inhalte ausschließlich in Europa gespeichert sind (zumindest derzeit).
Wir sind beeindruckt. Salespitch bestanden!
Zur Revision 256 ergab es sich, dass wir uns eine ganze Sendung lang einer Hörerfrage widmeten, welche uns im Rahmen der Revision 253 – CMS, CMS, CMS! gestellt wurde.
Hans und Peter hatten keine Themen, also plauderten sie ein wenig über die diversen Hacks, die sie in ihren langen und ruhmreichen Frontendler-Karrieren so auf die Browser-Welt losgelassen haben.
Angestoßen durch lave, eine Art JSON für ganz harte (und wohl eine Ergänzung zum Structured clone algorithm), pflügen Hans und Peter durch ihr Hack-Archiv. Angefangen bei klassischen CSS-Hacks über Conditional Comments und dem hasLayout-Allheilmittel zoom: 1
geht es recht bald zum Thema Clearfix und seinen divseren Permutationen im Wandel der Zeit (Hans schwört auf overflow: hidden
). Peters Lieblings-CSS-Hack bleibt hingegen .wichtig, .egal:not(.egal){}
. In Folge betreten wir das Feld der HTML-Hacks, spekulieren über Details im head– sowie über Anwendungsfälle des noscript-Elements. Da data-Attribute letztlich auch nur die Großzügigkeit des HTML-Parsers ausnutzen, sortieren wir diese (speziell ohne data-Präfix) auch in der Hack-Rubrik ein. Wir beenden das Thema mit Erzählungen aus der React-Hackerei, erwähnen neben dem Universal-Schlangenöl setTimeout(fn, 0)
auch das modernere setImmediate(fn) und hören auf, bevor wir auf noch schrägere Hacks als Peters Funktionsverasynchronisierungslibrary zu sprechen kommen.
Der wöchentliche News-Podcast hat wieder mal Neuigkeiten! Nebenbei wird noch über progressives Laden von CSS Dateien philosophiert. Anselm, Hans, Schepp und Stefan diesmal im Boot.
touch-action
CSS Eigenschaft bekommt Browserreichweite. Hier gibt’s Informationen dazu.lazyload
und postpone
calc
, min-width
und max-width
.Obwohl es nicht die Kernkompetenz von Anselm, Stefan und Peter ist, waren diese Revision mal wieder Content Management Systeme dran. Dazu kommen die üblichen drei Links.
Hans, Peter und Rodney hatten erst keine so richtig interessanten Themen zur Hand, doch als die Podcast-Vorbesprechung in eine Diskussion über JavaScript-Tools versank, war klar, was zu tun ist…
Die Revision 251 ist auch wieder hochkarätig besetzt: Wir haben uns Malte Ubl von Google eingeladen um über AMP zu sprechen und uns erklären zu lassen, was es mit diesem Projekt auf sich hat.
For our 250th episode, we managed to get our greedy hands on no one less than Bruce Lawson from Opera. Having barely returned from a trip to Asia and still dizzy from his jetlag, we managed to extract a whole bunch of classified information on CSS Houdini out of him (also thanks to our German interview style). And a little bit more as well:
Das ist doch alles kaputt. Entweder sind’s die eigenen Webseiten, die sich partout gegen Wissen und Gewissen wehren, oder gar ganze Dienste, die einem das Blaue vom Himmel für wenig bis gar kein Geld versprechen. Peter, Hans, Anselm und Stefan debattieren über „Gewollt Böse“.
Mit Dr. Axel Rauschmayer als Gast haben wir das virtuelle Working Draft Studio kurzerhand in ein ECMAScript-Sprechzimmer umgewandelt.
let arr = ['a', 'b', 'c'];
for (let [k,v] of arr.entries()) {
console.log(`key = ${k}, value = ${v}`);
}
// Output:
// key = 0, value = a
// key = 1, value = b
// key = 2, value = c
Außerdem sprechen wir über das kommende ECMAScript 7, JavaScript Module, und warum die umstrittensten Sachen wie Klassen gleichzeitig zu den wichtigsten fürs JavaScript Ökosystem gehören. Für weitere Informationen empfehlen wir das ECMAScript 6 Buch sowie das Doctor’s Diary.
tldr
schnell zu den Beispielen.Zum Jahresabschluss holten wir uns mal wieder den Kahlil ins Haus und besprachen mit ihm das Konzept der reaktiven funktionalen Programmierung anhand der JavaScript-Frameworks cycle.js, Rx und Bacon.js.
Da sich das Jahr dem Ende zuneigt, haben sich Rodney und Schepp die Glaskugel geschnappt und wagen ein paar Prognosen für 2016: Welche Webtechnologien werden massenfähig? Welches Framework spielt eine gewichtige Rolle? Mit welcher neuen Technologie dürfen wir herumspielen?
Schepp, Stefan und Peter debattierten Web Components und verteilten die allwöchentliche Ladung Links.
Zur Feierlichkeit des ally.js Release haben sich Rodney, Anselm und Hans niemand geringeren als Marco Zehe eingeladen, der für Mozilla im Bereich Accessibility arbeitet.
aria-readonly="true"
Attribut setzt, denn sonst wäre die Tabelle als bearbeitbar gekennzeichnet.alt=""
oft wichtiger ist als gar keins, dass Kontraste wichtig sind und wie ärgerlich es ist, wenn Seiten pinch-to-zoom deaktivieren.Diesmal haben wir (Peter, Schepp, Hans und Anselm) Mathias Schäfer eingeladen und unterhalten uns über Unlearning und Diversity, sowie den Einstieg in die Webentwicklung.
Eine einfache Sendung mit allgemeinen Themen ohne Aufhänger.
Diesmal konnten wir wieder einen Gast bei uns begrüßen, und zwar Kai Niklas. Kai beschäftigt sich seit einiger Zeit mit OpenGL und seinem Abkömmling WebGL, programmiert 3D-Anwendungen und tourt als Trainer für OpenGL durch Deutschland. Und so verwundert es kaum, dass wir mit ihm zusammen das Thema „WebGL“ erkunden.
In Dreierbesetzung mit Anselm, Hans und Stefan geht es heute um ein recht untechnisches Thema.
Eine neue Woche bedeutet auch eine neue Folge Working Draft. Wir rollen das Thema Webfonts mal wieder auf und sprechen über verschiedene Bildformate.
Anselm hat sich mit den Best-Practices von Webfonts befasst und diese in einem Artikel zusammengefasst. Wir sprechen darüber und stellen die Techniken vor.
Weiterführende Links:
Kürzlich wurde das neue Bildformat „FLIF“ veröffentlicht. Dieses Format verspricht noch bessere Datenkomprimierung. Wir vergleichen mit WebP und anderen Bildformaten.
Weiterführende Links:
Stefan und Schepp haben heute Martin Schuhfuß eingeladen, der bei den
diesjährigen Events der JSConfEU und der OTSConf mit seinen kreativen Entwicklungen für Aufsehen gesorgt hat.
Hans, Schepp und Stefan widmen sich heute zwei Meta-Themen:
repeating-linear-gradient
Funktion der background-image
Eingeschaft aufs Genaueste.Eine neue Folge des Working Drafts und wir sind mit geballter Manpower am Start.
initial-scale=1
or width=device-width
setzt. Dies bricht bestehende Websites. Vorsicht, bitte!Es ergab sich, dass wir Philipp Tarasiewicz, AngularJS- und Go-Entwickler, erneut für die Sendung gewinnen konnten. Wir sprechen mit ihm über seine Kernkompetenzen.
Auch diese Sendung ist nur leicht besetzt: Anselm und Hans geben ihr bestes aus der aktuellen Themenlage die schönsten Themen zu besprechen.
inherit
– oder currentColor
-Eigenschaften durch Vererbung zum Theming nutzen kann. Wir diskutieren, wie sich diese Art der Vererbung in Projekten einsetzen lässt und wie unser Vorgehen in solchen Situationen ist.Dank Post-Nightlybuild-schem Glückssyndrom gehen wir in reduzierter Besetzung aus Anselm und Stefan in die Gefilde der modernen Layout-Techniken.
Als Rumpfmannschaft, geplagt von Technikproblemen und nicht besonders vielen Themen, kratzen Hans und Peter eine Notfall-Express-Revision zusammen.
Heute waren Manuel und Stephan von SHOP.CO zu Gast, die durch Stefan, Schepp, Peter und Hans ausführlich zu ihrem Projekt und zum JS-Framework Meteor ausgefragt wurden.
Mit Schepp, Stefan, Peter, Hans und Anselm ging es diesmal nach einem kurzen Schlenker in die CSS-Zukunft mit voller Kraft auf die Meta-Ebene.
Weder Sommerhitze noch Sommerloch konnten Stefan, Schepp und Peter davon abhalten das einzige nennenswerte Thema der Woche in eigentlich völlig ungebührlicher Breite durchzukauen.
Heute gibt es mal wieder ein Interview von uns, und zwar mit der VoIP-Firma Sipgate zum Thema „Arbeitsstrukturen“. Anlass ist ein sehr detaillierter und wahnsinnig interessanter Artikel der Firma darüber, wie man dort zu Werke geht. Für uns klang das so ungewöhnlich und so gut, dass wir dachten, wir lassen uns das „System Sipgate“ nochmal persönlich erklären. Unsere Gesprächspartner bei Sipgate waren die Texterin Anna Müller und der Backend-Entwickler David Hasenbeck.
An diesem lauen Sommerabend telefonieren sich Anselm, Hans und Peter zusammen, um letzte wichtige Fragen vor dem Urlaub zu klären. Als da wären…
Diesmal widmen Hans, Rodney und Schepp sich einzig und allein einem Thema, und zwar…
Rodney, Anselm, Peter und Stefan klären Missverständnisse zu Web Components und Web Assembly auf.
Für die heutige Revision haben Schepp, Anselm und Stefan sich Lisa Gringl aus Kärnten/Wien/Tirol ins virtuelle Studio geholt, um über Grenzen und Brücken von Design und Code zu sprechen.
Schepp, Peter, Rodney und Stefan üben sich als Verschwörungstheoretiker. Grundsatz ihrer Theorie: Unfertige Standards, die ohne Präfix in Browsern landen und so der jeweiligen Firma einen Vorsprung liefern. Was liegt, das pickt, denn pactum sund servanda. Die heutigen Exponate:
link
-Elements sorgen für umständliche Hotfixes bei anderen Browsern. Halbfertige Dinge kommen mit Präfix in den Browser, total unfertige und unabgesegnte CSS Eigenschaften total ohne. Wir gehen die gesamte Feature Liste durch und geben zu jedem Punkt Senf ab. Großes Urteil: Für ein Jahr Pause ziemlich dünn, und noch dazu mit zuviel fragwürdigen Erweiterungen ausgestattet als dass wir das gut finden würden. Wir fühlen uns an die 90er und einen bestimmten anderen Browser rückerinnert.srcset
und picture
, sowie Lösungsansätze. Vieles davon vielleicht nicht in der realen Welt nötig, aber dennoch gut zu wissen.Hans, Peter und Anselm plaudern diesmal wieder einmal über ein paar ihrer Lieblingsthemen: Tooling und Performance mit und ohne Frameworks. Dabei kommen wir auch nicht umhin, hier und da abzuschweifen und Randthemen aufzugreifen.
Natürlich waren wir auch dieses Mal wieder auf der (grandiosen) beyond tellerrand // Düsseldorf und haben uns wie gehabt einen der Sprecher herausgeangelt und zu einem Interview genötigt :)
Getroffen hat es niemanden geringeres als Sara Soueidan, der CSS- und SVG-Shooting-Star des letzten Jahres. Wir sprachen allerdings genau nicht über technische Themen, sondern interessierten uns viel mehr für ihren Hintergrund.
Foto mit freundlicher Genehmigung von Gunnar Bittersmann
Dieses Mal haben sich Peter, Hans, Rodney und Stefan zusammengefunden, um ein wenig von der Arbeit mit ECMAScript 6 zu berichten.
Da diese Woche nichts spannendes passiert war, ließen Peter, Hans und Anselm den Schepp einfach ein wenig von seinem aktuellen Offline-First-Projekt erzählen.
writing better CSS with fewer, more flexible guidelines that help put the focus on what’s between the curly braces.
.Stefan, Schepp und Peter regen sich über das Thema der Woche auf und beenden die Sendung mit ein paar interessanten Links.
Schepp, Hans, Stefan und Rodney quatschen über rem, em, px und vh.
Anselm, Hans, Peter und Stefan versammelten sich in vorösterlicher Stimmung um in Eintracht mal wieder festzustellen, wie kaputt doch alles ist.
Rodney, Anselm, Schepp und Stefan trotzen sämtlichen Bahnproblemen und stellen Schlechtredner gnadenlos bloss.
HTML5, lange nach dem Hype. Was war gut, was weniger, was nutzen wir tatsächlich und wie hat sich die Weiterentwicklung geändert. Hans, Peter und Stefan resümieren.
<input>
s nehmen wir zum Anlass um über Erfolg und Misserfolg von HTML5 Technologien zu reden. Wo ging gewaltig was schief, welche Dinge sind passabel geraten. Wie schaut der Entwicklungsprozess heute aus und gefällt er uns? Kleiner Spoiler vorweg: Wir sind nicht sonderlich begeistert und haben dutzende Verbesserungsvorschläge, sehen aber gewissen Dingen positiv entgegen. Frage an die Hörerschaft: Welche HTML5 Technologien habt ihr regelmäßig und gut im Einsatz, wo seht ihr Verbesserungspotential? Zum Thema gehören: das inputmode
-Attribut, ein Video zu Zahlen (ohne Graf) und Douglas Crockford als Chuck NorrisHerr Rossi hat das Glück gefunden. In einem Spartaner. Jacob, seines Zeichens Project Manager bei Microsoft für den IE Nachfolger, erzählt ausführlich alles, was wir vom Projekt wissen wollten und uns nicht fragen trauten. Ab nun in Englisch:
Peter, Rodney, Hans und Anselm nahmen sich aktuelle Themen zum Anlass, mal ganz grundsätzlich die Lage rund um Webfonts (bescheiden) und JS-Module (kompliziert) auszudiskutieren.
@font-face
CSS bzw. das Rendering blockiert (mit unterschiedlichen Effekten in unterschiedlichen Browsern), gibt es zahllose Font-mit-JS-Lade-Techniken, die allesamt mehr oder minder Hacks sind. Es soll mal eine Font-Face-API geben (Polyfill, Wrapper-Library) doch eigentlich sind wir uns einig: hier liegt ein Browser- bzw. Spezifikations-Bug vor und die ganze JS-Hackerei ist äußerst unbefriedigend.In trauter Zweisamkeit diskutieren Stefan und Anselm über den Drang zu sechzig Frames pro Sekunde.
Einen Dialekt im Team (bestehend aus Hans, Peter, Anselm und Stefan), zig Dialekte in unserer Themenliste.
Bei der Diskussion zu Dialekten und statischer Typisierung ebenso im Programm: TypeScript, CoffeeScript, Facebook’s Typechecker Flow, sowie der ursprüngliche und eingestampfte Versuch von EcmaScript in der Zombie-Version 4.
Sämtliche Themen in Union finden sich dann in einem anschließenden Review zu EcmaScript 6 und den Möglichkeiten mit SweetJS und 6to5 (jetzt BabelJS). Mit der unausweichlichen Frage: Werden wir das überhaupt nutzen?
Gegen Ende brechen wir allerdings eine Lanze für ReactJS (und den damit verbundenen JSX Dialekt): Sieht auf den ersten Blick etwas abstoßend aus, macht aber Spaß.
Mit Ehrengast Michael Kühnel (@mkuehnel, Selbstbeschreibung „Webentwickler seit seit Netscape 4.7“) ackerten sich Schepp, Hans, Peter und Stefan durch die Themen der Woche.
Ganz unverhofft gesellte sich diese Revision der gute Chris Heilmann auf einen Plauderabend zu uns.
Zur 205. begrüßen Anselm und Stefan Schrödingers Co-Host (ist er aktiv, ist er es nicht?) Kahlil Lechelt wieder im virtuellen Studio. Die (Wieder-)Entdeckung eines vielversprechenden Frameworks hat ihn zurückgerufen.
fetch
-Befehl wird veröffentlicht und kommt gut an (in Kürze: verdauliches XHR mit Promies). Ein gewisser Steve Souders bringt seine Meinung, dass es doch ideal wäre mit diesem Standard auch Ladebalken steuern zu lassen, um dem User eine gewisse Geschwindigkeit anzuzeigen, oder im schlimmsten Fall vorzugaukeln. Hat bei eBay ja auch gut funktioniert. Wir sprechen — im Vorgaukel-Falle — von unseren eigenen Erfahrungen und überlegen, wie so ein Standard ideal aussehen könnte.Wer keine spannenden Themen hat, muss eben selbst spannend sein. Und so grillten Hans, Peter, Stefan und Anselm Fokus-Forscher Rodney zu seinen neuesten Forschungsergebnissen und wärmten kurz (und ohne nennenswerten Erkenntnisgewinn) die große Build-Tool-Debatte wieder auf.
<dialog>
, Canvas-Element und <video>
. Letzteres ist interessanterweise je nach Browser unterschiedlich zu bedienen. Tabindex in Shadow DOM funktioniert in Chrome auf sinnvolle Weise, ist in Firefox (wie auch der Rest von Shadow DOM) noch buggy. In <dialog>
wirken sich die bekannten Probleme von Image Maps verwirrend aus. Die Fokussierbarkeit von Canvas-Subtrees könnte für Focus Transitions genutzt werden. Aus Rodneys bisherigen Erkenntnissen lassen sich drei Empfehlungen ableiten:
tabindex
benutzen, nur 0
und -1
sind brauchbare Werteaccesskey
benutzenAls nächste Themen wird sich Rodney blutige SVG-Details sowie fokus-relevante Pseudoklassen (:focus
, :active
etc) zur Brust nehmen.
Unser Peter musste sich in letzter Zeit berufsbedingt deutlicher mit AngularJS auseinandersetzen und hatte sich doch eine Meinung gebildet. Verbunden mit genereller Verwunderung über die kürzliche AngularJS 2.0 Ankündigung war das für uns Grund genug, diesem Framework noch eine weitere Episode zu spendieren. Hilfestellung bot Pascal Precht, der dem Kommentar- und Fragefeuerwerk entgegenstand.
Doch warum wirkt Angular 2.0 wie eine große Entschuldigung seitens Google und als wehmütiger Versuch, jetzt alles richtig zu machen? Und warum bringt dieser Versuch wieder die Gemüter zum kochen? Sollte man Angular 1.x nun komplett in die Tonne werfen? Warum braucht’s wieder eine eigene Sprache und Tool-Chain mit AtScript, und warum sagt man ständig, AtScript sei keine eigene Sprache? Frage um Fragen und ein Thema nach dem anderen. In ihrer Mitte ein tapferer Jungentwickler namens Pascal Precht, der uns die Welt von AngularJS erklärt und aufzeigt, warum alles so katastrophal und verwirrend wirkt.
Apropos verwirrend: Wir finden die AngularJS Quellen für 1.x in diesem GitHub Repository, für Angular 2.x in jenem. Man erkenne den feinen Unterschied.
Zum Schluß noch ein kleiner Disclaimer: Wir bemühten uns redlichst, etwaige Vergleiche zu anderen und anderwertigen Frameworks zu vermeiden um entsprechenden Grundsatzdiskussionen aus dem Weg zu gehen, allerdings rutscht uns das eine oder andere Schlüsselwort in den Gesprächsverlauf rein. Seht es uns nach und erkennt die Anstrengung, den Fokus wieder auf Angular zu richten.
Wir haben uns kurz vor Heiligabend den Mario Heiderich eingeladen, um über grauenvolle, abstruse und schier unlösbare Sicherheitslücken moderner Browser zu reden. Der richtige Stoff für besinnliche Weihnachtsstimmung und frohlockende Ausblicke ins neue Jahr!
Es muss allerdings nicht immer JavaScript sein. Mit CSS kann man mit Hilfe der @-moz-document
Regel und Regular Expressions im Firefox ganz einfach Session Token aus der URL klauen. Mario erklärt ausserdem, wie man die Paint-Zyklen der Browser und CSS Filter dazu ausnutzen kann, um auf bestimmte Zeichen zu schließen, die der Benutzer eingibt. Zukünftige Spaßquelle bieten SVGs im Allgemeinen und SVGs in Webfonts im Speziellen.
Ebenfalls lückenreich und angriffsanfällig ist der DOM. Mit In the DOM, no one will hear you scream gibt es einen mittlerweile sehr bekannten Talk von Mario, der uns das Prinzip des DOM Clobbering näherbringt. Der Abwärtskompatibilität von HTML sei es geschuldet, dass man derartige Dinge überhaupt durchführen kann.
Dass man allerdings auch mit kommenden Technologien allerlei Unfung anstellen kann, zeigt der Ausblick auf Template Strings in EcmaScript 6. Mario sieht sich in seiner Rolle für die nächsten Jahre auf jeden Fall beschäftigt.
Abhilfe gewünscht? Mario lässt uns nicht im Schneeregen stehen, sondern gibt auch ein paar hilfreiche Schutzhinweise. Für hundertprozentige Absicherung empfiehlt die Workingdraft Crew eine Ausbildung zum Reisbauer auf dem zweiten Bildungsweg.
Weitere Links zu den Themen, die besprochen wurden:
Zu guter Letzt gibt es noch einige Hinweise auf themenbezogene Konferenzen.
flex-grow
, flex-shrink
und flex-basis
auf sich hat.In trauter Zweisamkeit quatschten Stefan und Peter über Offline-Technologien für Webapps und verlasen am Ende ganze zwei Links.
Zum 200. Jubiläum luden Schepp, Anselm und Stefan niemand geringeren als Jeremy Keith ein. Viel Spaß bei unserer ausgiebigen Plauderei zum „Indie Web“. Die Episode und alle Shownotes sind dieses Mal auf Englisch!
For our 200th anniversay Schepp, Anselm and Stefan invited Jeremy Keith. Enjoy our excessive talk about the Indie Web!
Schepp, Peter, Hans und Anselm haben in dieser Revision zwar keinerlei News oder Links zu vermelden, geben aber dafür ihr bestes, um ein bisschen in die Zukunft zu sehen und Methoden zur Refakturierung von Code zu analysieren.
Mit fast voller Mannschaft, ergänzt durch Sven Wolfermann (maddesigns.de, @maddesigns) ackerten wir uns durch drei Themen. News und Links gab es diesmal nicht.
Der ewig optimistische Sonnenschein Schepp und Miese-Peter nahmen für diese Revision verschiedene neue Produkte unter die Lupe, die Webentwicklern in Zukunft Arbeit abnehmen (für Responsive Images) oder (in Form einer neuen IE-Version) aufbürden könnten. Außerdem gibt es reichlich Links.
<audio>
würde haben wollen – beides steckt auch im neuen IE. Zuletzt werden auch Selection API sowie zahlreiche ES6-Features-Features unterstützt. Wem das noch nicht reicht: Wünsche bitte in der IE Platform Suggestion Box einwerfen. Auch nicht unerwähnt soll Remote IE bleiben, eine Art Browserstack für IE.Unser Freund Marc bietet uns auf seiner Beyond Tellerrand Konferenz immer einen Spot zur Aufnahme <3. Auch auf der ersten Berliner Konferenz haben wir gemeinsam mit Performance-Optimierer Tim Kadlec eine Folge eingetütet. Anselm, Schepp und Hans löchern ihn mit unangenehmen Fragen zu den Themen Cartoons, Mittlerer Westen und Reisen. Caution for all the Haters: Diese Revision ist auf ENGLISCH.
Wer etwas auf sich hielt, war diese Woche auf der Beyond Tellerrand. Übrig blieben nur Peter und Stefan, die sich Tim Taubert von Mozilla in die Sendung holten um kräftig über die Web Crypto API abzunerden.
Math.random()
), unterstützte Hash-Algorithmen (und die Diskussion über die Unterstützung veralteter Algorithmen), Hash-based message authentication codes, PBKDF2 (und warum Langsamkeit ein Feature sein kann) und AES sind nur einige Aspekte rund um die neue API. Allgemeiner gibt Tim auch Tipps zur Crypto-Bullshit-Erkennung für Webentwickler und fordert eine Art jQuery für Crypto (auch wenn das Epic Fails der Marke Heartbleed (XKCD) nach sich ziehen könnte). Die größte Baustelle rund um die Crypto-API ist neben der überschaubaren Browserunterstützung vor allem das Fehlen einer nennenswerten Crypto-JS-Community und damit auch das Fehlen von bewärten Libraries.Es war mal wieder an der Zeit, ein althergebrachtes Thema aus aktuellem Anlass aufzuwärmen. Und so begab es sich, dass seine Heiligkeit Performance-Papst Schepp I. den Novizen Hans und Peter die Kompressions-Leviten las.
Mit Themen und Personal war es diemal nicht so dicke, weswegen kurzerhand Peter eine Gast zum Thema border:none 2014 ausquetschte.
Eric (Mediengestalter-Auzi, Twitter, Webseite) war auf der Konferenz border:none zu Gast und erzählt ein wenig wie es war. Das Thema der Konferenz ist die Dezentralisierung des Webs (siehe Revision 190) und wird in Talks und Creator Units (Workshops) bearbeitet. Eric hat sich in der Creator Unit mit Jeremy Keith mit ganz konkreten Techniken zur Dezentalisierung (IndieAuth, Webmeintion via Webmeintion.io) auseinandergesetzt. Fazit: Dezentalisieren ist kein Hexenwerk!
In kleiner Besetzung sind in dieser Folge nur Hans und Anselm dabei, sprechen aber in knapp vierzig Minuten doch über interessante Themen, die uns Webentwickler betreffen—zunächst über ein nicht so technisches, aber trotzdem relevantes Thema, Recruiting, dann sehr technisch über Performanceoptimierung von WebFonts. Abgerundet wie immer mit den besten Links der Woche.
Anselm, Hans, Stefan und Schepp reden heute über Konventionen und das Miteinander in größeren Projekten.
Schepp und Stefan haben sich diesmal Joschi Kuphal eingeladen, der uns von den Tücken und Späßen des Konferenzorganisation erzählt.
Rod, Hans und Peter sezierten die Features des neuen Safari in iOS 8 und plauderten über ES6, bis uns plötzlich die Zeit ausging.
Hans, Stefan und Peter präsentieren auch heute ein strittiges CSS-Thema, garniert mit ein paar Links.
ng-*
-Attributen und die Custom Element Spec mit der Möglichkeit, sich sogar eigene HTML-Tags auszudenken.Zur aktuellen Revision haben sich Stefan und der Schepp Mike Adolphs eingeladen, der seines Zeichens im Enterprise Support bei GitHub sitz.
Hans, Schepp und Stefan erzählen diesmal von ihren Erfahrungen in der Zusammenarbeit zwischen Backend und Frontend Entwicklern bei Schnittstellendefinitionen.
Die aktuelle Folge in (fast) vollständiger Besetzung mit einer Diskussion zum Thema JavaScript Debugging und zur neuen Netzwerk Analyse API.
Zwei Stühle, drei Meinungen: Beschaulich kleine Runde mit angenehmen Fortbildungsfaktor.
Schepp und Peter zogen mit Heldenmut in die Schlacht gegen das Sommerloch. Aber ob das alleine reicht?
Wer bei uns einen guten Kommentar abgibt ist dann auch gleich mal Gast im Podcast. So geschehen mit David Hasenbeck, der noch einiges an Feedback zu Revision 174 in petto hatte.
picture
-Element, sizes
und srcset
auf sich hat. Lektüre dazu: Anselms Präsentation von der WWNRW und der umfangreiche Artikel bei Opera. Guter Polyfill: Picturefill.Mit dem Herrn Golasch an Bord ranteten wir (Hans, Schepp und Peter) über JavaScript-Module und erzählten von selbstorganisierten Klein-Events, für die wir an Ort und Stelle auch Tickets verlosen.
Hans, Schepp und Anselm fanden dieses mal zwei spannende Themen, die uns als responsive Webentwickler mehr oder weniger betreffen und es gibt eine Menge Linktipps.
Revision 179 ohne besondere Vorkommnisse.
Das vorherrschende Sommerloch veranlasst die Working Draft Crew zu einer Spezialrevision: Peter, Anselm und Stefan geben sich in rekordverdächtigen 8 Minuten die Klinke in die Hand und klappern die Eckpfeiler unseres Newspodcasts ab, bevor wir die Tür und Tor für ein ausgedehntes Face To Face Gespräch rund um Ember.js öffnen. Dazu eingeladen sind Runtastic Mitarbeiter und Stahlstadt.js Organisatoren Clemens Müller, Michael Klein, Jakob Lehner und Manuel Mitasch. Viel Spaß!
Sommerloch und Fußball haben sich verschworen, um unsere Themenliste auszudünnen. Also sprechen wir kurzerhand über einen Artikel von Hans, der sein Werk vor Peter, Anselm und Stefan verteidigt.
Ungeachtet der Fußball-WM widmete sich das leeterarische Quartett, diesmal bestehend aus Anselm, Hans, Rodney und Peter, einigen kleinen Neuheiten aus der Frontend-Welt.
will-change
. Im Prinzip handelt es sich um die Standardisierung des 3D-Transform-Hacks. Wir erläutern nochmals die technischen Hintergründe und diskutieren über Sinnhaftigkeit, Art und mögliche Häufigkeit des Einsatzes dieses neuen Features.z-index
verwenden.Zur 175. Revision haben wir uns mit Jan Lehnardt einen Riesen der deutschen Open Source Szene eingeladen. Entsprechend riesig ist auch diese Mammutepisode mit über zweieinhalb Stunden. Doch soviel sei gesagt: Der Umfang verspricht auch sehr viele interessante Insights! Viel Spaß!
Schepp, Anselm und Hans fanden sich für Revision 174 zusammen und referieren zum Spezial-Thema Moderner Front-End-Workflow.
Da die Themenliste nach dem Ausmisten diesmal etwas dünn ausfiel, besprachen Schepp, Anselm und Peter einfach drei neue Features in Chrome 36, der jüngst den Beta-Status erreicht hat.
include()
aus PHP, ist aber besser! HTML Imports laden und parsen HTML-Dokumente, die für JS als Document
-Objekt bereitgestellt werden. Das Ganze funktioniert auch mit CORS, hat ein async
-Attribut und kann via Vulcanize optimiert werden. Peter erklärt die JS-API und Use Cases für HTML Imports, während sich Schepp wehmütig an glorreiche Tage mit XSLT zurückerinnert.Object.observe()
auf alle Arten von JS-Objekten (und Array.observe()
auf Arrays). Wichtig ist das vor allem für die Data-Binding-Funktionalität in modernen MVC-Frameworks. Nachdem wir den fälligen Polyfill erwähnt haben, schweifen wir etwas ab und reden auch noch über HTC-Dateien im alten IE, CSS Expressions im alten IE und Polymer (für alles außer dem alten IE)Wie jedes Jahr waren wir auch diesmal zu mehreren auf der beyond tellerrand und haben einen Speaker in einen Hinterhalt gelockt, aus dem er erst nach einem Interview mit uns wieder freigelassen wurde. Unsere Beute diesmal: Niemand geringeres als Chris Coyier von CSS Tricks, Codepen.io und Shoptalkshow, auch bekannt als „Die Rampensau“! :) Wir stellten viele Fragen über seinen Werdegang, und sein täglich Brot und Butter. Viel Spaß!
Wir freuen uns außerordentlich mit dem ehemaligen Dauergast Anselm Hannemann einen neuen Moderator in unserer Runde begrüßen zu dürfen. Zur Feier des Tages legen wir auch gleich mit einer tiefgehenden Analyse der Drag & Drop API los und spielen (mehr oder weniger) wieder HTML5 Glücksrad.
ruby
-ElementenEine kurze und knackige Episode zu diversen Themen, inklusive den Gewinnern der Verlosung aus Revision 167
will-change
Attribut hinter Flag, und einer nicht prefixten Implementierung von box-sizing
.document.currentScript
und document.scripts
getan werden kann, und wozu das eigentlich gut ist.Da Peter und Jens Grochtdreis zufällig gerade in Düsseldorf weilten, wo sie über drei Tage verteilt ihre HTML5 MasterClass gaben, dachte Schepp sich: Warum nicht das Angenehme mit dem Nützlichen verbinden, sich mit den Jungs im Biergarten treffen, und ein Mikro auf den Tisch stellen? Gesagt, getan! Statt über das übliche Nerd-Zeugs zu reden, rekapitulierten wir, wie wir im Laufe der Jahre durch Ereignisse und Dinge die wir bewusst taten zu dem beruflichen Punkt angelangten, an dem wir jetzt stehen.
Da wir in einem Biergarten nahe einer Straße saßen, kann die Tonqualität diesmal nicht ganz mit denen der übrigen Folgen mithalten. auphonic hat allerdings wieder mal etwas sehr Brauchbares herbeigezaubert. <3
Als Gast konnten Schepp, Hans und Peter diesmal Paul Bakaus begrüßen (bekannt für jQuery UI, später bei Zynga), der heute als Developer Advocate für Google unterwegs ist.
Die aktuelle Sendung steht ganz im Zeichen der Dezentralisierung. Passend dazu sind Marc Thiele und Bastian Allgeier als Gäste mit dabei, die gemeinsam am 21. Mai das erste Decentralize Camp veranstalten.
Eine weitere Woche mit einem Gast. Diesmal ist Pascal Hartig aka. Passy vom Yeoman– und Todo-MVC-Team mit dabei.
Stefan und Peter haben sich Matthias Mees und Jens Grochtdreis ins virtuelle Studio geholt um den kürzlich stattgefundenen Webkongress in Erlangen Revue passieren zu lassen, sowie über den Zustand diverser Websites zu philosophieren.
Die Revision 164 ist mit einigen Gästen gespickt: Fabian Beiner, Marius Eisenbraun und Marcel Koch. Drei unterschiedliche Gäste, mit denen wir über ein Thema sprechen, das uns alle zusammenführt: Wie funktioniert unsere Branche?
@workingdraft Welchem JavaScript minifier gebt ihr den Vorzug? #noobquestion
— bit bonk (@bitbonk) March 24, 2014
Wir sind der Meinung, dass es nicht unbedingt drauf ankommt, dass man ein bestimmtest Tool, wie Uglify oder Closure Compiler verwendet, sondern dass überhaupt einen zur Anwendung bringt.
<canvas>
zu arbeiten.Fabian verlost dankenswerterweise ein Exemplar von Peter Gasstons Buch Moderne Webentwicklung. Alles was ihr tun müsst: Sagt uns in den Kommentaren, warum genau ihr dieses Buch braucht!
Mangels Themen zockten sich Hans, Schepp und Peter durch vier Runden CSS-Glücksrad. Nachdem sie dort keine großen Erfolge feiern konnten, verlasen sie die Links und ließen es gut sein.
+
und ~
selbst im IE7 funktionieren.In Revision 162 sind zwei Gäste mit von der Partie. Zum einen Mozillas Accessibility Experte Marco Zehe, der bereits zu Gast war, sowie Tomas Caspers, der sich seit vielen Jahren mit dem Thema Accessibility beschäftigt und bei uns zum ersten Mal dabei ist.
Es war Rosenmontag und der großteil des Workingdraft-Teams bereitete sich auf das halten diverser Workshops vor. Um einem Monolog zu entkommen lud sich Rodney die Herren Christian Heilmann und Sebastian Golasch ein, um ein wenig über Christians Vortrag an der jQuery Europe zu schnacken.
<form>
Elemente neben application/x-www-form-urlencoded
auch als application/json
absenden zu lassen. Wir diskutieren die Vorzüge und Probleme des Vorschlags. Wir kommen auch kurz auf das recht unbekannte Objekt FormData
zu sprechen, von dem wir dachten, dass es den Umgang mit Formularen bereits vereinfachen würde – was sich dann leider doch nicht als der heilige Gral der Formulardatenverarbeitung herausstellt.<section>
, wann <article>
und wann doch lieber nur ein <div>
?Für diese Revision luden sich Schepp und Peter den Node-Nerd Golo Roden (Twitter, Webseite) ein und plauderten über Node.JS und ganz allgemein den Zustand von JavaScript in Gegenwart und Zukunft.
Gästefrei sind diesmal Schepp, Rodney und Stefan mit am Start, um mit Grunt nach dem Hype in Klausur zu gehen.
@extend
Methode.In der heutigen Revision haben Hans, Peter und Stefan den Performance-König Tobias Baldauf eingeladen, um über aktuelle Trends und gute Ratschläge in Sachen Webperformance zu plaudern.
all:unset
und einigen anderen Änderungen.text-rendering
Unterschiede macht und wie man Subsetting richtig einsetzen kann!alert
und confirm
wieder aus ihrer Versenkung zu bringen!Keine Gäste, trotzdem Themen in einer – mal wieder – etwas längeren Sendung.
will-change
soll diesem Hack nun abgeholfen werden.Wenig Themen, viel Diskussion! Peter, Rodney und Stefan besprechen Browserbugs, die keine sein sollten und sinnieren über einen jüngst veröffentlichten A List Apart Artikel, den man wohl ohne Weiteres in die Kategorie „Große Erschütterung der Macht“ stecken darf.
Revision 155 ging zwar ohne Gäste an den Start, dafür war Rodney aber top in Form und erzählt über sein letztes Projekt. Über Kommentare zu den Themen freuen wir uns und beantworten diese (manchmal zeitversetzt).
Die Stammbesetzung von Schepp, Peter, Hans und Stefan durfte in der aktuellen Revision Frederic Hemberger als Gast begrüßen, um uns über die unterschiedlichen Use Cases von Vagrant zu informieren. Spontan stieß auch noch unser treuer Hörer Marius hinzu, der ebenfalls in die Lobeshymnen einstimmte.
Zu viert machten wir uns diese Woche auf in die Sendung. Mit von der Partie war als Gast Sebastian Golasch.
Nach vielen Revisionen mit Rumpfbesatzung und Themenmangel geht es diemal wieder voll zur Sache: Schepp, Rodney, Stefan und Peter erklären ranten und mäandern durch die diesmal durchaus vorhandenen Themen der vergangenen Woche.
Außerdem führen wir versuchsweise eine neue Rubrik ein: beim Tipp der Woche werden wir (un)regemäßig Kleinst-Tipps für den Weballtag absondern, die uns im Laufe der letzten sieben Tage über den Weg gelaufen sind. Außerdem neu aus Github: Workingdraft-Metadata!
.addClass()
mit nativer classList
(MDN) zum Thema hat. Rodney zürnt über die classList-API und berichtet von seinen eigenen JSPerf-Erfahrungen. Performance-Pontifex Schepp ordnet das Thema etwas ein: Man sollte kein JSPerf-Nazi werden, da Rendering und CSS die eigentlichen Problemfelder sind und der Browser automatisch JS optimiert, was im Falle von Chrome auch bequem nachvollzogen werden kann.
Kurz vor Weihnachten plauderten Rodney und Peter über den neuesten CSS-Präprozessor (den niemand benutzen sollte) und statische Webseiten.
Das 150er-Jubiläum geriet aufgrund von Themen- und Personalmangel sowie leichter Verpestung seitens Peters etwas kurz. Da konnte auch der eigentlich sehr motivierte Schepp nicht mehr viel ausrichten.
colgroup
und col
für weitgehend überflüssig und anstelle von caption
sollte man in der HTML5-Ära wohl auch besser zum figure-Element greifen. Und auch über den Wechsel von Selfhtml zu developers.whatwg.org kann man mal nachdenken. Zum Schluss ranten wir noch in guter Tradition etwas über Mobile-Browser.Hans und Stefan luden sich zu dieser Revision Gerrit von Aaken ein, deutsches Podcast-Urgestein und Meister der Webtypografie.
Die Not macht erfinderisch: Aus akutem Mangel an Themen zauberten Schepp, Peter und Stefan eine sehr JavaScript-lastige Revision aus dem Hut, die sich mit brandneuen bzw. noch nicht so geläufigen Technologien auseinandersetzt:
Stefan, Hans und Schepp luden sich diesmal Christoph Rumpel aus dem schönen Wien ein. Und darum ging es:
object-fit
herumhantieren wollte, dem könnte dieser Polyfill gefallen.&ux=1
lassen sich den Page Speed Insights auch User Experience Hinweise zur untersuchten Seite entlocken.Wenn es keine Themen gibt, macht man sich einfach welche. So luden Schepp, Peter und Stefan kurzerhand den Anselm ein und sprachen über Responsive Images (Anselm ist zufällig Experte auf dem Gebiet) sowie Verträge und Geschäftspraktiken im Webentwickler-Alltag.
Zum Abschluss geben wir alle jeweils einen Tipp zum besten, von dem wir glauben, dass ihn jeder befolgen sollte. Falls ihr weitere Vorschläge habt: ab in die Kommentare!
Eine weitere Sendung mit Besonderheiten und tollen Gästen: Kirby-Papa Bastian Allgeier und Hoodie-Mitentwickler Alex Feyerke waren diesmal mit von der Partie.
Diese Woche war mal wieder ein Gast im Working Draft dabei: Sven Wolfermann gab sich die Ehre ein wenig über seine Projekte und Erfahrungen mit Responsive Images und vielem mehr Preis zu geben.
Mit fast voller Stammbesatzung (Schepp, Stefan, Hans und Peter) stellten wir uns den CSS-Themen der Woche und nahmen uns auch eine Hörerfrage vor.
img
-Element fällt uns nicht viel Intelligentes oder gar spannendes ein und so reden wir stattdessen über den Coolness-Faktor von Image Maps. Das crossorigin-Attribut klingt zwar interessant, aber so richtig viel Plan haben wir davon auch nicht. Mehr Plan und Verwendung hätten wir da schon von und für die lazyload
und postpone
-Attribute aus der Resource-Priorities-Spec, deren flächendeckende Unterstützung allerdings noch auf sich warten lässt.Es herrscht Saure-Gurken-Zeit und die Themenliste war gähnend leer. Zum Glück konnte die Hörerschaft Hans, Peter und Stefan mit zwei Fragen gerade noch davon abhalten, eine Null-Minuten-Revision zu fabrizieren.
Hans, Stefan und Peter luden sich dieses Mal Ole Michaelis (@codestars) ein, um sich zum Thema DevOps erleuchten zu lassen. Ole arbeitet tagsüber bei Jimdo, organisiert des Nachts Konferenzen wie So Coded und erzählt viel über DevOps.
Viele Bothaner erlitten den Tod bis endlich Patrick Lauke den Weg in unsere Sendung fand. Dort angekommen erhellte er uns über Touch- und Pointer-Events und glich seine Meinung über Toolchains und ARIA-Kurse mit Schepp und Peter ab.
Eine spontane Revision mit spontanen Gästen und einem noch spontaneren Twitter. Eine fünf Minuten vor Start zusammengestoppelte Besetzung aus Matthias Mees, Jens Grochtdreis, Stefan und Schepp diskutiert über die Dinge, die dem Webworker seit jeher graue Haare und Falten bereiten: Content Management Systeme.
Aus Mangel an aktuellen Themen geben Peter, Stefan und der Schepp einen Rundumschlag zum Thema Mobile Browser. Wir plaudern fröhlich aus dem Nähkästchen, erzählen von unseren Erfahrungen und präsentieren die irrsinnigsten Browserquirks, die selbst dem IE6 alle Ehre gemacht hätten.
Zur Revision 136 war Stefan Nitzsche zu Gast, der mit uns ein wenig über seine Projekte und seinen Workflow redete.
In der heutigen Revision holen sich Schepp und Stefan Matthias Mees aus dem hohen Norden vors Mikro, um über Progressive Enhancement und Twitters Paketmanager Bower zu quatschen.
Trotz angespannter Themenlage griffen Hans, Schepp und Peter zu den Mikrofonen. Letzter verpennte in Folge das Schreiben der Schaunotizen, was leichte Verzögerungen im Betriebsablauf der weiteren Veröffentlichung nach sich zog.
In Abwesenheit der restlichen Stammbesetzung holt sich Stefan die beiden Gäste Anselm Hannemann und Jens „Flocke“ Grochtdreis ins virtuelle Studio. Bei diesem hochkarätigen Aufgebot an Mitsprechern liegen die Hauptpunkte der heutigen Sendung direkt auf dem Tisch: Responsive Webdesign in all seinen Formen. In einer angeregten Diskussion sprechen wir über neue Prozesse für Responsive Webdesign in Agenturen und kommen zu einer ausführlichen Betrachtung von CSS- und Grid-Frameworks. Viel Spaß!
Schepp und Rodney luden sich Sebastian Golasch ein, um ein wenig was über sein neues Projekt DalekJS zu erfahren.
<input type="range">
, mag kein HTTP in HTTPS mehr, erschwert das Abschalten von JavaScript und hat <blink>
rausgeworfen.visibility:visible
innerhalb von visibility:hidden
visibility
in verschachtelten Elementen umkehren.Das Sommerloch hat die Themenliste gefressen! Zum Glück lagen noch ein paar Zuhörerfragen auf Halde, derer sich Rodney, Stefan und Peter annahmen.
Fast alle Moderatoren waren ausgeflogen, was also tun? Natürlich eine AngularJS-Sonderrevision! Die hatten wir schon länger geplant, jetzt nutzten wir die Gunst der Stunde. Da Stefan und Schepp beide keine Alltagserfahrung mit AngularJS vorweisen konnten, luden sie sich ein deutsches Experten-Trio bestehend aus Robin Böhm, Sascha Brink und Philipp Tarasiewicz ein, die im Folgenden eine gute Stunde lang über die Funktionsweise und Vorteile von AngularJS erzählten.
Angesichts hoher Temperaturen und eines niedrigen Themenlisten-Pegels nahmen sich Hans, Schepp und Peter Themenwünsche der Leser aus Revision 127 zur Brust. Obwohl wir jedem Thema nicht mehr als 5 Minuten gewidmet haben, hat die Zeit nicht für alle Fragen gereicht, aber die kommen dann eben nächstes Mal dran. Falls ihr noch weitere Themenwünsche habt, ab damit in die Kommentare.
Getreu dem Motto „Viel Feind, viel Ehr‘“ luden sich Stefan, Peter und Rodney mit Jan Monschke und Sebastian Deutsch gleich zwei Gäste ein, die in der Debatte rund um CoffeeScript ordentlich Gas gaben. Das Glückrad entfiel aus Zeitgründen, dafür wurden die Gewinner des Gewinnspiels aus Revision 127 gezogen.
Die Rumpfbesatzung aus Schepp und Peter erfreute sich diese Woche am IE11, fuhr das Glücksrad an den Drehzahlbegrenzer und verlost(e) am Ende sogar noch drei Exemplare von Peters HTML5/CSS3-Videotraining.
document.all
und attachEvent()
ab und baut sogar den UA-String um. Zum einen soll so der IE11 von Browsersniffern nicht mehr versehentlich als einer seiner fossilen Vorfahren identifiziert werden, zum anderen wird der Browser so standardkonformer. Das ganze geht allerdings nach Meinung einiger schon fast zu weit, denn auch einige nützliche IE-Eigenheiten wie Filter und kontrollierte Scriptausführung sind aus dem Browser geworfen worden. Wir halten das eher für ein Luxusproblem. Schepp ist guter Dinge, dass bald alte IE genau so ein Unding sind wie alte Chrome-Versionen, Peter verweist darauf, dass sich alte Software im Business-Bereich oft sehr lange hält.
Bei einem schönen Digestivum drehten Stefan und Schepp ein paar mal am HTML5-Glücksrad und ließen einen Berg Links vom Stapel. Im Detail ergab sich das folgendermaßen:
Diese Woche sind fast alle irgendwie unterwegs. Deshalb lud Hans sich Stammgast Anselm Hannemann ein, um ein bisschen über die aktuellen Themen des Web zu sprechen.
display: table
und anderen display
-Werten gemacht werden kann. Anselm führt an, dass das eventuell zu Problemen auf Screenreadern kommen kann, doch ist das tatsächlich so?Kleine Runde, große Spieldauer: In der 124. Revision des Working Drafts beleuchten der Schepp und Stefan eine Reihe eher JavaScript-lastige Themen. Neben dem gewohnten Programm gibt es auch noch eine Verlosung: Sebastian Golasch stellt uns ein Ticket für das Braincamp Cologne zur Verfügung! Unsere Trello Notizen findet ihr hier.
Zur Revision 123 begrüßen wir Stefan Baumgartner als neuen Co-Moderator im Team. Außerdem sind Peter, Schepp und Hans mit von der Partie.
Das Board zur Sendung findet ihr hier.
Letzte Woche haben wir die beyond tellerrand 2013 in Düsseldorf besucht und dabei die Gelegenheit genutzt, Christian Heilmann von Mozilla vors Mikro zu bekommen und ihn zu Firefox OS zu befragen. Das Gespräch haben wir im Foyer aufgenommen, was leider mit vielen Nebengeräuschen einher ging. Sorry dafür.
Neue Browser, alte Probleme – diesmal mit Schepp, Peter und Rodney an den Mikrofonen.
<main>
, Scoped Stylesheets (Working Draft berichtete) und ersten Teilen der Crypto-API.Christian und Hans besprachen diese Woche die Themen aus der Welt von CSS, Touch-Detection und verschlüsselten Medien.
Hans, Rodney und Peter erzählten, ranteten und verlasen wie üblich das neues aus der Web-Welt.
nosniff
unterstützen.Aufgrund von Konferenzen, Betankung und privater Großereignisse gibt es diese Woche ein kleines Loch an Themen. Schepp und Hans haben aber versucht das Beste draus zu machen.
News gibt es diese Woche keine zu verkünden.
<col>
und <colgroup>
<col>
und <colgroup>
erzeugt man in Tabellen Kontexte für einzelne Spalten, denen man Eigenschaften (wie zum Beispiel lang
) zuweisen kann ohne sich in jeder Zeile wiederholen zu müssen. Die meisten Attribute, die man früher zum Stylen verwendet hat, sind mittlerweile obsolete.Schepp, Hans und Peter ackerten sich in gewohnter Manier durch das, was sie für die Themen der Woche hielten.
resolution
soll der Standard-Ersatz für -webkit-device-pixel-ratio
und ähnlichen Foo werden. Dazu braucht es aber auch die passenden Einheiten wie dppx für Bildschirme und dpi für den Druck. Auch ganz lustig: Facebooks gefailtes WebP-Experiment.Volles Haus bei Working Draft! Neben Schepp und Peter gaben sich heute Sven Wolfermann, Christoph Zillgens, Gunnar Bittersmann und Stefan Baumgartner die Ehre um zu berichten, zu ranten und zu streiten.
Hans und Rod luden sich Marc Hinse ein, um den wöchentliche Tratsch mal streng Badisch abzuwickeln – Wir können alles, außer Hochdeutsch.
<hgroup>
nicht fristgerecht von Browserherstellern umgesetzt wurde, wird es aus der Spezifikation gestrichen.<![CDATA[
wird benutzt, um den Inhalt eines Elements wörtlich zu nehmen, also nicht durch den Parser zu schleusen. Man hat das früher gerne um Inline-JavaScript gepackt, weil XHTML ja ganz Hip war. Das ist bei HTML5 aber so nicht mehr notwendig.max-width
wirkt sich hier nicht auf den Viewport, sondern das Bild aus. So kann man also den Inhalt eines SVG Bildes abhängig von der Größe des Bildes nach Belieben umbauen.<datalist>
anstellen kann. Wir wollen das in allen Browsern. Heute!Für die neue Revision werden Schepp und Peter von Andreas Dantz begleitet, der sich sehr über den JavaScript-Schwerpunkt dieser Sendung gefreut hat. Zum Ausgleich drehen wir dieses mal auch am CSS3-Glücksrad.
<template>
-Element, einen Mechanismus zum Unterbringen von Template-Code in HTML. Bisher hatte man Code für z.B. Handlebars in dazu mißbrauchten <script>
-Tags verstecken müssen. Das <template>
-Element ist hingegen für diesen Zweck gebaut und enthält nichts außer einem einsatzbereiten DocumentFragment. Warum man allerdings Templates als Code in HTML-Elementen und nicht als fertig kompilierte JS-Funktionen würde verwenden wollen, ist uns nicht ganz klar geworden.font-stretch
.document.head
eine eher neue Erfindung ist.Hans und Rod gaben sich zu Zweit die Ehre – können ja nicht alle arbeiten oder Häuser kaufen…
PATCH
, einfacheres Event Handling und vielen anderen kleinen Verbesserungen.like Gecko
Resize
Event für DOM ElementeWir haben uns ein menuitem
Element gewonnen. Damit lassen sich, in Verbindung mit <menu type="context">
native, also in der Browser-UI gerenderte, Kontextmenüs basteln.
Bisher kann das nur der Firefox, doch Rod hatte damals ein jQuery Plugin mit HTML5 import gebaut.
<canvas>. Wem das zu puristisch ist und SVG sowieso viel besser steht, schaue sich HighCharts an.
Schepp und Peter sahen sich akutem Themenmangel gegenüber und beschlossen daher, einfach ein halbes Stündchen das Glücksrad drehen zu lassen und dann die Links zu verlesen.
indeterminate
-DOM-Attribut ergooglet. Stellt sich raus, dass dieses Feature, mit dem man eine Checkbox anzeigen kann, als wäre sie in einem dritten Zustand, in allen Browsern funktioniert.async
und defer
document.write()
, das auch für das blockierende Verhalten von Scripts verantwortlich ist.writing-mode
-Eigenschaft in den diversen Browsern und ihr Wechselspiel mit anderen CSS-Eigenschaften.Eigentlich haben wir alle keine Zeit, aber das ist keine Ausrede – jedenfalls nicht für Schepp, Peter und Frederic.
pointer
, das nicht ganz durchdacht scheint. Nicht zuletzt fehlt eine Option für den Minority Report Mode. Wäre es nicht besser, wenn wir einfach weniger Annahmen über die Eingabegeräte der Nutzer machen würden?Peter, Hans und Rod diskutieren Rendering Performance auf mobilen Geräten. Wie finden wir die Engpässe, was lässt sich ohne Verluste beheben und wo möchte man freiwillig Abstriche machen? Eine sehr exakte Wissenschaft, wir liefern Fakten Fakten Fakten!
<div>
auf die Größe seines Inhaltes anpassen wollte, wird sich jetzt in Firefox und Chrome an width: fit-content;
erfreuen.autocomplete
AttributKahlil und Rod luden Andreas Dantz ins virtuelle Studio ein, um die letzte Internetwoche zu reflektieren.
<ul>
und <ol>
) mit eigenen Zählerstilen versehen können werden wird. Der Futur ist leider korrekt, denn Implementationen lassen noch auf sich warten.<a>
denn zwischenzeitlich alles kann. Interessant ist vor allem die Möglichkeit Downloads von Resourcen des Servers, sowie der JavaScript Laufzeit des geöffneten Dokuments zu erzwingen. Auch sinnieren wir über den Sinn und Unsinn des ping Attributs.Als lieben Gast hatten sich Christian und Hans diesmal Sebastian Golasch dazu geholt, der bereits einige Male zu Gast war und jedes mal eine Bereicherung für die Sendung ist.
Mit Schepp, Hans, Anselm und Peter auf der Brücke dampfte Working Draft gezielt auf seine Revision 107 zu.
box-sizing
, Anselm unter anderem text-overflow
. Einstimmiges Urteil: gut organisierte Veranstaltung und durch das Schreiben der Dokumentation gewinnt selbst der größte Nerd noch hier und da neue Erkenntnisse.Neue Revision, neues Glück! Diesmal als Glücksfeen am Start: Kahli, Hans und als Überraschungsgast der feine Herr Hemberger.
Das Internet-Explorer-Team poliert weiter seinen ramponierten Ruf auf und bietet eine Webseite mit allerlei hilfreichen Ressourcen rund um Qualitätssicherung an. Besonders hilfreich: 3 Monate kostenloser Browserstack-Zugang.
text-wrap: balance
soll es möglich sein bei zentriertem Text ein ausgeglicheneres Schriftbild zu erzeugen.Schepp und Peter holten sich Verstärkung bei Sebastian Golasch und beackerten mit ihm zwei Themen aus dem Bereich der Frontend-Performance. Dazu kommt die übliche Ladung Links.
A building block for web-based text editors.
Nach der Spezial-Folge letzte Woche sind wir diesmal wieder mit vollem Programm am Start. Hans, Schepp und Peter meldeten sich zum Dienst. Als Gast war diesmal Andre Jay Meissner dabei, der uns über Open Device Labs und Docsprints berichtete.
clip
gibt es schön seit Äonen, aber die wenigsten wissen wirklich davon. Dieser Artikel hilft.Trotz intensiver Suche und voller Besatzung haben wir dieses mal kein einziges Thema gefunden, das eine ausführliche Besprechung verdient hätte. Deshalb ist die Nummer 103 die kürzeste Revision seit Ende des Mesozoikums. Wir entschuldigen uns und versprechen schon mal, dass das in der nächsten Revision ganz anders sein wird.
Alles beim alten im neuen Jahr: Wie immer kämpften sich Hans, Schepp, Rodney und Peter durch die Themen der vergangenen paar Zeiteinheiten. News gab es keine, dafür um so mehr Themen und Links.
Nach der internationalen Gala letzte Woche war diesmal wieder teutonisches Steineklopfen an der Web-Front angesagt. Schepp, Hans, Rod und Peter wühlten sich in bewährter Manier durch HTML5-News und andere Neuheiten.
Das ist die letzte Revision für dieses Jahr. Wir danken allen treuen Hören, wünschen ein frohes Fest und einen verschleißfreien Rutsch ins neue Jahr!
Wow, can it really be the 100th episode already? Almost 2 years of weekly updates and discussions on web development – and we’re still here. And so no one less than Paul Irish joined Hans, Kahlil, Rodney and Schepp. While our podcast is a German thing, we’re thrilled how things turned out with recording an English episode over the wire. Thank you Paul!
Please take a second and tell us how you feel: Do you want more English revisions of Workingdraft, featuring international Guests?
Verstärkt von Marc Hinse und Frederic Hemberger warfen sich Kahlil, Hans und Peter todesmutig den Themen der Woche in den Weg.
Ein hustender Hans, ein nicht ganz so viel hustender Peter und ein kerngesunder Schepp in der Blüte seiner Jugend befassten sich in bewährter Manier mit den Themen der vergangenen Woche.
Hans, Christian und Rodney tummelten sich Anfang der Woche – mit einer ganzen Menge anderer Webnasen – auf dem Klassentreffen der deutschen Webentwicklerszene. Zusammen mit den Jungs von der Technikwürze konnten wir dort Bruce Lawson von Opera für ein gemeinsames Interview gewinnen.
<main>
Element für sinnvoll. Wer es nutzt gewinnt ein bisschen was und wer es ignoriert verliert dabei nichts.<picture>
Element. Und wir finden heraus: Opera kann WebP (Firefox und IE nicht).Keine Themen sind auch keine Ausrede. Also bashten Hans, Rod und Peter einfach ein wenig den IE 10 Mobile und beschränkten sich ansonsten auf das Verlesen von News und Links.
Christian und Rodney luden Marco Zehe (@MarcoZehe) ein und verquatschten sich zum Thema Barrierefreiheit – mit wem könnte das besser gehen als mit einem Blinden, der obendrein für die Qualitätssicherung im Bereich Barrierefreiheit bei einem Browserhersteller arbeitet?
Da irgendwie alle Moderatoren in der vergangenen Woche in der Weltgeschichte unterwegs waren, um die neusten Ideen und Tools für euch aufzutreiben, waren es doch eher wenige Artikel, die gelesen werden konnten und die Themenvielfalt hielt sich in Grenzen.
Diesmal gibt es keine News zu vermelden.
Bis nächste Woche dann! Danke fürs reinhören :)
Diese Woche luden der Schepp, Kahlil und Hans Christoph Zillgens ein, sprachen über Responsive Design und befragten ihn zu seinem neuen Buch.
Außerdem könnt ihr sein Buch auch gewinnen! Mehr zu unserem Gewinnspiel weiter unten…
Die einfache Aufgabe: Hinterlasst einen Kommentar hier unten mit einer Begründung, warum ihr das Buch umbedingt braucht. Zusätzlich könnt ihr eure Chancen erhöhen, wenn wir folgende Frage von Rodney beantwortet:
Worum geht es in Christophs Buch?
a) Responsive Design oder
b) Bananen.
Teilnahmeschluss ist der 31.10.2012. „Der Rechtsweg ist ausgeschlossen„. Beschäftigte der Working Draft GmbH & Co. KG sowie deren Verwandte auch.
Hans, Kahlil und Peter nudelten diese Woche nicht nur die üblichen Themen durch, sondern hatten obendrein keinen Geringeren als Dirk Jesse zu Gast, der sein Projekt Thinkin‘ Tags vorstellt.
Schepp, Hans und Rodney fanden sich trotz ihrer leicht verschleppten Konferenzia ein, um das Eine oder Andere der letzten Woche(n) Revue passieren zu lassen.
:nth-child()
auf Anhieb verstanden hat, verdient unseren größten Respekt. Für Normalsterbliche wie den Rodney bietet dieser Einseiter eine schöne visuelle Übersicht über den doch recht mächtigen Kindselektor.<meta http-equiv="Page-Enter" content="RevealTrans(Duration=2.0,Transition=2)">
nicht vermisst? Dieses Schmuckstück und viele weitere skurrile und vergessene Meta Tags kann die Liste vorweisen, auch wenn man leider vergessen hat zu den jeweiligen Dokumentationen zu verlinken…Während alle anderen auf tollen Konferenzen rumturnen, trümmerten Sebastian, Anselm, Frederic und Peter eine weitere Revision eures Lieblingspodcasts ein. Extradicker Dank geht an Schepp, der die total mißratene Tonspur noch einigermaßen gerettet hat.
Während sich Schepp mit seinen Ladies in fernen Ländern die Sonne auf den Pelz brennen ließ, luden Hans, Kahlil und Rod jemanden names Peter ein, um das Team für diese Revision zu komplettieren.
Vier von Fünf – nur Peter ist noch auf Weltreise. Wir schreiben die Revision 88, deren zahlentechnische Signifikanz wir, zu Peters Bedauern, vollkommen unter den Tisch fallen lassen. Stattdessen konzentrieren wir uns auf den heißen Scheiss der letzten Woche.
Diesmal haben sich Hans, Rodney und Kahlil zum schnacken getroffen.
Wir haben das Sommerloch gefunden! Hans und Rodney wurden von Sebastian Golasch unterstützt.
a == b
und a === b
.Dieses mal wurde die Crew durch den Konferenz-Großmeister Marc Thiele verstärkt.
Schickt uns Eure Einreichungen via Twitter oder als E-Mail an [email protected].
Die Crew von Working Draft fiel wie die Fliegen Deadlines und Kopfschmerzen zum Opfer. Zum Glück konnte Sebastian Golasch alias @asciidisco die am Ende nur noch aus Rodney und Peter bestehende Rumpftruppe verstärken.
Mit dem seltenen Überraschungsgast Peter starten Rodney und Hans in eine neue Revision voller Spiel, Spaß und Abenteuer!
Diesmal trafen sich Schepp, Hans, Kahlil und Special Guest Anselm Hannemann zum wöchentlichen Webdev-Geplänkel im virtuellen Working Draft Studio (Skype).
Dieses mal waren Schepp, Hans, Kahlil und Special Guest Benedikt Kastl am Start um den Webkram der letzten Woche zu besprechen.
Die Soundeffekte dieser Folge stammen von Mike Koenig, via soundbible.com.
Scheppman, Hans, Rodney und Kahlil trafen sich dieses mal wieder, um in illustrer Runde so zu tun, als hätten Sie eine Ahnung von Webentwicklung und so.
Schepp war nicht da, aber mit Rodney, Hans, Kahlil und Peter an Bord waren wir trotzdem beschlussfähig. Haben wir schon erwähnt, dass Rodney seit letzter Woche offizieller Bestandteil der Crew von Working Draft ist? Glückwunsch Rodney!
Die gesamte Crew war an Bord, allerdings leider auch die Skype-Dämonen. Wir hoffen dass die Themen-Menge für die sporadischen Audio-Fails kompensiert.
A small library for manipulating the favicon
Überraschung: Sowohl Schepp als auch Peter waren zur Abwechlsung mal wieder an Bord. Der ewige Rod vertrat Hans und Kahlil.
An interactive guide for web page elements using jQuery and CSS3.
Dieses mal trafen sich Hans, Sebastian Golasch aka @asciidisco und Kahlil in Skype, um sich durch einen stattliche Anzahl an Themen zu arbeiten.
Eine Kombination aus Sommerloch, EM, WWDC und Schepps Urlaub sorgt erneut für Magerkost bei den Themen. Kann man nichts machen! Dafür führen wir mit den News einen neuen Sendungsbestandteil ein, bei dem es in Zukunft (?) immer ein paar kurze Update-Durchsagen geben soll.
Schepp war im Urlaub, Kahlil verhindert und die Themenliste war leer. Also besprachen Hans und Peter diesmal eben nur ein einziges Thema.
Code Painter is a JavaScript beautifier that instead of asking you to manually specify the desired formatting style, can infer it from a code sample provided by you.
Zu Gast war diese Woche Anselm Hannemann, den wir mit seinem Fachwissen gerne wieder eingeladen haben. Außerdem waren der Schepp und Hans mit von der Partie.
Die Stammbesatzung trat an und brauchte zum Sortieren der Themen länger als für die Aufnahme. Trotzdem ist noch einiges an Material übrig geblieben.
Zur aktuellen Sendung fanden sich der Schepp, Kahlil und Hans ein, um wie gewohnt die wichtigsten Neuerungen und Entdeckungen der Woche zu besprechen.
Error
-Objekt in JavaScript leichter debuggen kann. Viel besser als zum Beispiel mit console.log()
kann man mit Error.stack
eine komplette Stack-Trace des Fehlers bekommen, den man abgefangen hat. Ziemlich gut!requestAnimationFrame
findet er eine Lösung. Wir grübeln allerdings noch über den exakten Einsatzbereich.em
, px
und %
findet Boris Smus nicht ausreichend, um Styles für die verschiedenen Geräte der Gegenwart (Smartphones, Desktops, TVs…) zu schreiben. Deshalb plädiert er dafür eine tatsächliche physikalische Einheit einzuführen, die auch richtig funktioniert. Nicht so wie das im Moment mit mm
, in
und so weiter ist.:has
erweitert. Damit bekommen Stylesheets ungeahnte Funktionen, die man vielleicht gar nicht braucht.Als Gast war diesmal wieder Frederic Hemberger am Start, der uns immer gerne mit seinem Fachwissen zur Seite steht.
Wir möchten auch noch einmal auf unseren Live-Stream und den IRC-Chat auf Freenode im Channel #workingdraft hinweisen. Wir sind immer montags ab 20 Uhr live, wenn nicht anders angekündigt. Die neusten Infos gibt’s immer auf Twitter und bei Google+.
var
-Deklarationen.
element.classList
drastisch verbessern kann.Drei Themen, drei Buchstaben – CSS! Nur die Crew war wieder zu viert am Start.
Mit Frederic Hemberger als hochkarätigem Ersatz für den ausgeflogenen Peter stürzten wir uns auf aktuelle und liegen gebliebene Themen.
Grunt is a task-based command line build tool for JavaScript projects.Frederic übersetzt das für uns.
Mit allen Mann an Deck stürzten wir uns auf die Themen der Woche. Jedenfalls auf die, die nichts mit Semikolons zu tun hatten.
Was könnte besser zum just gewesenen Osterfest passen als die Revision 666 eines nerdigen Webdev-Podcasts? Kahlil, Hans und Peter sahen das genau so.
$foo
statt var-foo
) und kommen zu keinem Ergebnis. Am Dollarzeichen kann es nicht liegen, das gibt es ja auch in Selectors Level 3 und Level 4Mit allen Mann an Bord ging es um die aprilscherzbedingt nicht besonders zahlreichen Themen der Woche.
background-position
von unten rechts aus anzugeben (siehe Example 12).Zur Revision 64 haben wir uns Marc Thiele eingeladen, der zusammen mit dem Schepp, Kahlil und Hans über seine Konferenzen und seine Musik spricht. Zunächst haben wir uns aber dem Tagesgeschäft gewidmet. Hier sind die Themen:
Hans und Peter sprechen mit Stammgast Rodney Rehm über die Neuerungen der vergangenen Woche.
Auch diese Woche hatten wir wieder einen Live-Stream am Start. Danke für alle, die zugehört und im Chat mit diskutiert haben.
Wer dieses mal noch nicht dabei war, aber nächstes mal gerne auch mitdiskutieren möchte, folgt uns am besten auf Twitter und macht sich mit IRC vertraut. Unseren Chat findet ihr auf Freenote im Channel #workingdraft.
Diesmal erhielten Schepp und Peter Unterstützung von Pascal Szewczyk (peppmedien.de, @derPepo) und kämpften sich live durch die Themen der Woche.
Hans, Schepp und Peter granteln über neue CSS-Techniken, bashen ein wenig PHP und lobpreisen die neuesten Entwicklungen aus dem Hause Mozilla.
Freikarten kommen per Mail. Bei Rückfragen, Mail an comments AT workingdraft PUNKT de.
A simple (proof-of-concept) script loader that caches scripts with localStorage
Heute quatschen mal nur der Dirk Jesse, seines Zeichens YAML-Framework-Autor und CSS-Tüftler, und der Schepp über die Themen der Woche. Inklusive Epic Aufnahmefail.
calc
materialisiert sich in WebKit. Außerdem implementiert er als erster Browser Scoped Stylesoverflow: auto; -webkit-overflow-scrolling: touch;
Aus akutem Mangel an aktuellen Themen haben Hans, Kahlil und Peter spontan eine Sondersendung eingeschoben. Da letzterer demnächst HTML5 an Entwickler vermitteln soll, die bisher keine Erfahrung mit Web-Frontendentwicklung haben, stellte sich die Frage, wie Webentwickler überhaupt mit der Realität im WWW klarkommen. Anders als „normale“ Programmierer kennt der Web-Nerd keine festen Zielplattformen, die einzelnen Technologien mutieren ohne engere Abstimmung miteinander vor sich hin, es gibt keine irgendwie gearteten „offiziellen“ Tools, keine zentrale Dokumentation und so weiter. Auf der Suche nach des Pudels Kern haben wir dann einfach die Aufnahme mitlaufen lassen und erklären das Ergebnis unserer Diskussion zur Revision 59.
Haben wir Recht? Haben wir etwas vergessen? Haben wir Blödsinn erzählt? Sagt es uns in den Kommentaren!
Da eine leere Themenliste mit vollen Todo-Listen der gesamten Teams korrelierte, ließen Schepp, Hans, Kahlil und Peter eine Woche ausfallen, nur dann umso nerdiger zuzuschlagen.
Zero to Hosted Jekyll Blog in 3 Minutes. Wer sein CMS zwar auch gerne klein, aber nicht so nerdig haben mag, dem empfehlen wir Kirby.
Peter und Schepp luden sich den Marc ein, und zu dritt sprachen man über…
Diese Woche widmen sich Kahlil und Schepp einer Menge kleinerer Webfundstücke und Tools. Als da wären:
Frohes Neues wünschen wir Euch allen! Peter und Schepp reden über:
Am 21.12.2011 fand das dritte Smashing Magazine Meetup statt, diesmal in Zusammenarbeit mit der Stuttgarter Google Technology Usergroup in… ähm ja Stuttgart. Zu Besuch waren Paul Irish von Google, dessen Bruder in Stuttgart lebt und den er besuchte, sowie Chris Heilmann von Mozilla, der auf Heimatbesuch war. Beide hielten je einen Vortrag: History of HTML5 and The New Vocabulary of Web Dev und „Style and Distance – you don’t need to burn the museum to create a new world“.
Wer auch da war, das waren Kahlil, Hans und Rodney. Dank Lisa und Vitaly vom Smashing Mag durften wir eine schöne Paneldiskussion auf die Beine stellen. Mit Hans an der Kamera interviewten Kahlil und Rodney Paul, Vitaly und Chris zu Themen wie Alphatier-Gekabbel, Sprachbarrieren, Wissensvermittlung, mobilen Geräten oder nativen UI-Elementen.
Nach seiner Endjahres-Ochsentour, endlich mal wieder eine Revision mit Peter. Außerdem dabei Kahlil und Schepp. Hierüber reden wir:
Die erste Revision nach unserer sprunghaften Vermehrung bestreiten zusammen Hans, Kahlil und Schepp. Hierüber reden wir:
format c:
eingegeben und aus Versehen alle Plugins gelöscht. Und das letzte Backup ist ein Jahr alt. Ups. Dafür kommt jetzt endlich eine neue Repository-Architektur.Zur runden Revision hat sich Schepp Marcel Koch aka @makochnet aus dem Taunus eingeladen.
<link rel="next" />
ist es jedenfalls nicht, und doch klappt es meist. Myteriös… Wisst Ihr’s?unicode-range
seine Texte buchstabenweise durchgestalten kann. Clevere Idee! Wofür unicode-range
gut ist und welcher Browser es wie gut unterstützt, das lernt Ihr in Jake Archibalds Fronteers-Vortrag, wenn er denn mal erscheint.Heute hat sich Schepp mit Hans Christian Reinl, alias @drublic hingesetzt, und zusammen haben wir recht viel schöne Kleinigkeiten für Euch ausgegraben.
Minutiös auf die Revision 48 abgestimmt, ließ der liebe Marc Thiele diesen Montag (sowie Sonntag und Dienstag) die beyond tellerrand 2011 vom Stapel. Und was sollen wir sagen? Sie war verdammt nochmal exzellent! Das Lineup war der Hammer und übertraf alle Erwartungen.
Stop Motion Opening Sequence der beyond tellerrand 2011
Und weil so viele unserer Hörer und Gäste diese Mutter aller Konferenzen besuchen wollten, entstand die Idee, die hiesige Revision dann auch direkt dort aufzunehmen. Yeah, Baby! Gäste waren Anselm Hannemann, Frederic Hemberger, Marc Hinse, Hans Christian Reinl, Sven Wolfermann, Rodney Rehm und Maik Wagner. Aber auch David Maciejewski von der Technikwürze war auch vor Ort, so dass man sagen kann: Dies war die erste mit der Technikwürze zusammen koproduzierte Working Draft Revision! Ein großes Dankeschön geht außerdem an Dank Rodney Rehm, dem wir zwei saugeile Funkmikrofone verdankten!
Während Schepp sich von der Release-Party seines Forks erholte und Markus am Ereignishorizont eines schwarzen Internet-Lochs festhing, trümmerten Peter und Rodney Rehm zu zweit die fällige Revision ein.
Nach gefühlten Ewigkeiten waren mal wieder alle festen Hosts beieinander. Und noch jemand war da, nämlich Haymo Meran, CTO und Mitbegründer des Wiener Unternehmens Gentics und vor allem geistiger Vater des HTML5 Aloha Richtext Editors.
on
und off
für das Eventmanagment einführt, delegierte/gebubbelte Events schneller macht und nicht zuletzt ein HTML5 innerShiv Polyfill von Haus aus integriert.contenteditable
-Polyfill einstufen.Frostig war es draußen, und Vollmond womöglich auch, als sich Schepp mit Marc Hinse, aka @MadeMyDay, und Hans Reinl, aka @drublic und Frontendentwickler aus Freiburg, ans virtuelle Kaminfeuer setzte und mit ihnen zusammen die Woche revuepassieren ließ.
<time>
-Element seit July volles Pfund auf die Eier. Also hat er es aus der WHATWG HTML5 Spec gekickt und als Ersatz das generische <data>
vorgeschlagen. Nun laufen alle Amok und betreiben #occupyhtml5. Eric Eggert hat die Fakten mal zusammengesammelt. Und Jeremy Keith hat das Ganze in Worte gekleidet.<head>
using CSSWas wir lange wollten, haben wir diesmal geschafft: Den Sven Wolfermann, auch bekannt als @maddesigns aus der Nähe von Berlin endlich mal in unsere Sendung einzuladen. Leider ist uns in dem Zusammenhang die Tonqualität wieder mal etwas entglitten. Sorry dafür.
Diesmal nur zu zweit, da Markus derzeit den Status „homeless“ und damit „wireless“ innehat.
Und noch einmal bekamen wir Verstärkung von Rodney Rehm. Wir waren ganz schöne Quatschlieseln, aber es ist auch ganz schön was bei herumgekommen.
Diese Revision war der gruseligste Aufnahmetrip seit Podcast-Gedenken: Erst streikten bei unserem ersten Gast Rodney Rehm aka @rodneyrehm reihum alle Aufnahmegeräte, dann zerhackte uns das verf$%%/§%?!te Skype nach 45 Minuten Aufnahme auf einmal so den Ton, dass wir vom anderen rein gar nichts mehr verstanden und die Aufnahme abbrechen mussten. Die brachten wir am Folgetag mit weniger massiven Problemen zu Ende. Dass von den daraus resultierenden Störgeräuschen und Pausen nix mehr zu hören ist, haben wir der geduldigen Puzzlearbeit unseres zweiten Gastes, Frederic Hemberger aka @fhemberger zu verdanken. Großes Danke dafür!
@document
pfadabhängig stylen.Fast hätte es diesmal mit der Revision nicht geklappt, weil Markus weg war, Peter Koffer packen musste und Schepp es verpeilt hatte, sich früh genug nach Gästen umzuschauen. Aber Peter hat sich dann doch noch ein Herz gefasst.
Peter hängt nach wie vor im Rheinland fest und Markus ist vom Erdboden verschluckt. Sturmfrei für Schepp! Auf einen geselligen Webworker-Abend hat er sich Dirk Jesse, Autor des YAML-Frameworks, und Matthias Mees, Webdesigner aus der Nähe von Lübeck und Mitmoderator des Serendipity-Podcasts S9y InfoCamp, eingeladen.
Beim Hack Evening in Köln konnte Schepp einige Gutscheine für kommende (englischsprachige!) Veranstaltungen der Truppe abgreifen. Die sollen nun unters Volk gebracht werden. Bei Interesse, hier kommentieren, oder via Social Media Kanäle dem Schepp Bescheid geben. First come, first served. Folgende Gutscheine hätten wir (alle bis auf einen in Köln):
Peter war wieder auf Achse und so haben wir uns diesmal Marc Hinse und Khalil Lechelt als Fachleute dazugeholt.
Wir hatten einen Gast, und zwar den Anselm, Webworker aus München und frischgebackener Autor eines Videotrainings. Außerdem mit von der Partie: ein zehnsekündiges Delay auf Markus‘ Leitung.
Was gibt es Besseres, als bei dem aktuellen Wetter den virtuellen Kamin anzufachen und sich auf einen Plausch um ihn herum zu setzen?
download
erweitert. Mit diesem lässt sich der Dateiname definieren, mit dem der Browser eine Datei bei Downloaden (vor-)benennt. Warum das nicht nur Kleinkram, sondern etwas sehr sinnvolles ist, das finden wir im Gespräch heraus.<meta name="viewport">
bzw. @viewport und CSS3 Media Queries wissen muss.Es stellte sich uns die Frage, ob es wohl als praktisch empfunden werden würde, veranstalteten wir einige Sondersendungen – entweder zusätzlich zu den wöchentlichen News-Folgen, wovon ihr uns aber erst überzeugen müsstet, oder stattdessen.
Peter war als HTML5-Sithlord seine Padawane schulen und Markus qualmte von einer sehr produktiven Woche noch der Schädel. Daher hat sich Schepp mal mit dem lieben Frank Bültge (@bueltge) zusammengetan, seines Zeichens WordPress-Experte, Autor und Mitveranstalter des alljährlichen WordCamp Deutschland.
Besser spät als nie: die Neue Revision ist da! Es gab viel zu besprechen, dafür aber keine Keine Schaunotizen.
Diesmal sind wir wieder etwas später dran mit unserer Revision, denn wir mussten zwei mal aufnehmen. Der Grund: Wir hatten die verrückte Idee, anstatt per Skype mal per Google+ Hangout aufzunehmen; blöd war nur, dass der Hangout nach rund einer Stunde abstürzte, und die Aufnahme gleich dazu. Um nicht den gleichen Sermon erneut rezitieren zu müssen, haben wir uns für die zweite Aufnahme den Jens Grochtdreis dazu geholt.
Eine MP4-Fassung gibt es diesmal nicht, weil Markus im Urlaub ist.
Nachdem wir letzte Woche mit zwei Stunden Sendungsdauer unseren Schnitt etwas gehoben haben, gleichen wir das in dieser Woche mit einer guten halben Stunde sofort wieder aus.
Nach zweiwöchiger Abstinenz melden wir uns mit einer rekordverdächtigen Folge zurück: Vier Mann füllen knapp zwei Stunden Hörmaterial. Das liegt unter anderem daran, dass wir uns am Ende auch einer Betrachtung des Verhältnisses der Deutschen zum Internet widmen. Ihr wisst schon: Netzabdeckung, Cyberabwehrzentrum, freie WLANs, Kinderpornos und so. Zu Gast war diesmal Cem Derin. Mehr von ihm hört in seinem Podcast oder seht Ihr auf Offenen Bühnen Events.
postion: fixed
und WOFF-Support und einigen weiteren Dingen, bringen *NDA hüstel* Mac OS X Lion und iOS 5 neue Formen des Scrollens. iOS 5 nun endlich auch bei HTML-Boxcontainern mit overflow: scroll
. Markus, Titelverteidiger „Detailverliebtester Webentwickler von Murr“, befragte Cem (der natürlich *NDA hüstel* kein iOS 5 oder Lion besitzt) zu der genauen Umsetzungsform derselben aus.<link rel="prerender" href="xxx.yy" />
-Anweisung in der vorgelagerten Seite. Anders als bei der altbekannten Variante prefetch
wird aber nicht nur eine einzelne Ressource, sondern es werden alle daran geknüpften geladen und die Seite im Verborgenen auch schon gerendert. Wir diskutieren, was das für Vor- und Nachteile hat.Audio mit Kapitelmarken (iPod-kompatibel): Download wd-28.m4a
Tolle Folge. Nuffsaid.
Audio mit Kapitelmarken (iPod-kompatibel): Download wd-27.m4a
Diesmal war „Schepp allein zu Haus“ angesagt, und da hab ich mir knallhart den Jens Grochtdreis, den Gründer der Webkrauts aus Mainz mit ins Boot geholt. Als bekennende IE-Masochisten stürzten wir uns beide auf diesbezüglich eingefärbte Themen (die Woche gab es allerdings auch zufällig her). Kommentare wieder gerne auf Audioboo mit dem Tag #workingdraft hinterlegen.
float: positioned;
und irgendeine position
-Eigenschaft gesetzt, woraufhin anschleißend alles andere um das Element herumfließt. Egal wie und wo es hinpoistioniert wurde. Nett! Außerdem lasst sie die Element-Form per deklarativer Form oder über die Alphamaske eines Bildes beeinflussen.Wer den Player sucht, findet ihn auf der Startseite. Wer uns sagen kann, warum WordPress den hier nicht anzeigt, kann uns darauf hinweisen. Downloadlinks: MP3 ohne Kapitelmarken und MP4 mit Kapitelmarken (iPod-kompatibel)
Die neuste Revision geht mit sensationell wenigen Themen ins Rennen. Woran es lag? Wir haben uns ein Opera-Themen-Verbot auferlegt, bis wir Patrick H. Lauke mal in der Sendung haben zum drüber Quatschen. Desweiteren konnte die Google I/O nicht mit ganz so viel Web-Bezogenem aufwarten. Aber wie Ihr hört, kriegen wir auch das gebügelt.
attr()
-Methode die verlorengegangene Kompatibilität wieder her.placeholder
-Text in einem HTML5-Eingabefeld, oder den Slider eines range
-Inputs. Dennoch eine Insellösung.-moz-hyphens:auto
-Anweisung auf dem silbenzutrennenden Text.requestAnimationFrame
und die Bereitstellung der holdReady
-Methode. Es wurde jedoch auch die Funktionalität der bisherigen attr
-Methode verändert und Aufgaben an die neue prop
-Methode abgegeben. Das kann beim einem simplen Auswechseln der Basis-Bibliothek zu einigen Problemen führen._gaq.push(['_trackPageLoadTime']);
angeschmissen werden. Von da an misst es bei stichprobenartig ausgewählten Besuchern die Seitenladezeit mit Hilfe der W3C Navigation Timing API in IE9 und Chrome, respektive der Google Toolbar in den anderen Browsern. Die Daten lassen sich anschließend in Zusammenhang setzen mit den bekannten Filtermöglichkeiten wie „Welche Unterseite, Browser, Geolocation, etc.“ Wem Google Analytics nicht liegt, der kann zu diesem Zweck auch auf Yahoo! Boomerang zurückgreifen.robots.txt
soll eine humans.txt
als gute Gepflogenheit beim Webseitenbau etabliert werden. Der Zweck dieser Datei ist derselbe wie die Abspänne bei Filmen: Die Mitarbeit jedes Beteiligten nebst Nennung seines Arbeitbereichs ausweisen. Selbst Google nutzt mittlerweile eine humans.txtNach einer kurzen Osterpause geht es mit der Illuminatenfolge weiter. Der Schepp ist leider nicht dabei, aber dafür kann er uns nächste Woche dann umso mehr erzählen.
Noch einmal die Kapitelmarken-Diskussion: In der letzten Woche meldeten sich dann doch einige, denen nach Chaptermarks dürstete. Allerdings ist das schon ein recht großer Aufwand und wahrscheinlich beansprucht das immer noch ca. eine Stunde mehr an Nachbearbeitung. Ist es euch das wert? Oder lieber die Sendung früher bekommen und dafür auf Chapters verzichten?
Und zum Format der Audiodatei: Besitzt ihr alle AAC-fähige Endgeräte und kann ich auf MP3 verzichten, oder ist das gammlige Encoding immer noch Pflicht?
Diese Folge ist sowas von geile Scheiße, Alter™. Unabhängig davon rufen wir nochmals alle Hörer dazu auf, den Chris Heilmann zu überreden, dass er uns bald mit seiner Präsenz bei einer Firefox-Sondersendung beglückt.
Wer uns übrigens einen Audio-Kommentar (Fragen, Lob, Tadel) zusenden möchte, der kann und sollte das gerne tun. Entweder via Mail an [email protected] oder als Audioboo mit dem Tag „workingdraft“. Vielen Dank schon mal.
Heute zu Gast bei uns: Dirk Jesse aus Berlin, Autor des HTML+CSS-Frameworks YAML. Und zu viert haben wir unsere bisher beste und längste Sendung hingequatscht.
type=search
anmeldenIrgendwie hat sich die Veröffentlichung der zwanzigsten Folge etwas hingezogen. Jetzt ist sie aber da und ist bereit, sich mit brachialer Gewalt in eure Trommelfelle zu fressen.
Diese Woche haben wir uns kompetente Unterstützung von Andreas Dantz aus Bremen gesichert.
Nachdem wir die Sendung letzte Woche aufgrund weniger Themen und AKW-dominierter Nachrichtenlage haben ausfallen lassen, so haben wir uns diesmal den Cem Derin, alias @unset, als Co-Moderator an Bord geholt. Der eine oder andere kennt Cem vielleicht von seinen wöchentlichen Berichten zur Schräglage der Nation in Form des Shitstorm Podcasts.
if(isMedia("screen and (orientation:portrait)"){machwas();}
It’s a debugger for web pages, like FireBug (for FireFox) and Web Inspector (for WebKit-based browsers), except it’s designed to work remotely, and in particular, to allow you debug web pages on a mobile device such as a phone.
Das sagt im Prinzip schon alles. Man startet lokal einen Java-Server, bindet ein JavaScript in die auf dem Mobilgerät zu debuggende Seite ein und startet dann auf seinem Desktop den Ferndebugger, der alles kann, was der klassische Webkit Web Inspektor kann – nur dass das Anschauungsobjekt eben im Mobilgerät liegt.
<div>
s mit overflow: scroll
in mobilen Webkits mit einem Finger scrollbar machen kann.Nach ganzen vier(!) Wochen des krankheitsbedingten Ausfallens haben wir uns endlich den Peter wieder in die Sendung zurückgeholt. Das war auch dringend erforderlich, denn bedingt durch unsere letztwöchige Sondersendung haben sich bei uns furchtbar viele interessante Themen angesammelt, die in Augenschein genommen werden mussten. Die Themenflut hatte zudem zur Folge, dass wir besonders rigoros sieben mussten. Da wir dieses Material nicht ganz unter den Tisch fallen lassen wollten sind im Gegenzug unsere KEINE Schaunotizen sehr umfangreich geworden. Also unbedingt mal durchscrollen!
requestAnimationFrame
steckt in neueren WebKits wie auch im Firefox 4 und soll in Zukunft als Animationsgerüst/-prinzip die bisherigen Krücken setTimeout
und setInterval
ablösen. Warum jetzt genau „Krücken“? Weil beide eher unkoordiniert und hysterisch Browser-Repaints erzeugen. requestAnimationFrame
hingegen arbeitet umgekehrt und gibt sozusagen „Bescheid“ wenn der Browser wieder Luft und Lust hat, etwas zu animieren. Nur dann werden Animationsanweisungen abgegeben und die dadurch entstehende ToDo-Liste wird an einem koordinierten Zeitpunkt umgesetzt. Zudem hilft die Methode Strom sparen. Soweit wir das verstanden haben, war Mozilla hier Vordenker. Wir kommen bei dem Thema kurz auf das jquery.animate-enhanced plugin zu sprechen, obwohl es nicht direkt etwas damit zu tun hat. Haben aber gesagt, wir verlinken es dennoch.box-shadow
oder text-shadow
berechnen.parseInt
weglässt. Dazu passend:JavaScript Garden is a growing collection of documentation about the most quirky parts of the JavaScript programming language. It gives advice to avoid common mistakes, subtle bugs, as well as performance issues and bad practices that non-expert JavaScript programmers may encounter on their endeavours into the depths of the language.
Diese Revision sind wir mal vom gewohnten Kurs abgewichen und haben keine Wochenrückschau, sondern eine Schwerpunkt-Folge für Euch erstellt. Möglich gemacht hat das Daniel Melanchthon, Developer Platform Evangelist bei Microsoft und Fachmann unter anderem für den IE9. Vielen Dank an Daniel, der sich trotz Rückreise-Jetlag kurzfristig abends Zeit für uns genommen hat!
Zielrichtung unseres Gesprächs waren die Fragen: Wie denkt Microsoft in Sachen Browser so? Warum ist der IE9 so geworden wie er ist? Wie ist der weitere Entwicklungsweg geplant? Was wünscht man sich von der Webentwicklergemeinde?
Nachtrag vom 03.03.2010: Daniel Melanchthon zum selben Thema bei der t3n im Videointerview (mit ein paar mehr Infos zu der JavaScript-Engine als bei uns).
Nachdem Peter immer noch hustengeplagt und Markus anderweitig absent war, freute sich Schepp über bewährte Verstärkung seitens Marc Hinses alias @mademyday (Notiz an uns selbst: Wir sollten Marc bald mal in der Liste unserer festen Moderatoren verankern…).
:before
und :after
, CSS Transforms und Box-Shadow ab. Überhaupt ist er ein ganz großer Fan von Pseudoelementen. Auf seiner Seite gibt es viel Interessantes zu entdecken. Schön war damals unter anderem auch sein Artikel Multiple Backgrounds and Borders with CSS 2.1Die große Seuche grassierte wieder. Peter strich die Segel und Schepp griff schon nach der weißen Flagge. Eine Viertel Stunde vor offiziellem Aufnahmetermin holten wir uns dann als Verstärkung wieder Marc Hinse ins Boot. Vielen Dank nochmals dafür!
Endlich haben wir es geschafft, eine Sprechprobe Marc Hinses auf digitales Vinyl zu pressen. Und die Soundqualität ist auch gar nicht mal komplett scheiße.
Ausgabe Nummer zwölf mit einem neuen Gast, nämlich Tobias Oberrauch aus Karlsruhe, und spitzen Soundqualität. Yeah!
currentcolor
<ul>
– und <hr>
-Elemente sowie die border
-Eigenschaft es längst anwenden, aber neu entdeckt. Eine Farbeigenschaft, der man die Farbe „currentcolor“ zuweist, übernimmt automatisch die Farbe der color-Eigenschaft. Etwa so: .element{color:red;background-color:currentcolor;}
.
rem
<html>
-Elements), anstatt auf die des direkten Mutterelements. Das macht das Erstellen von flexiblen Layouts deutlich leichter. Wird von allen modernen Browsern unterstützt. Wir nehmen die Entdeckung als Anlass, über den Sinn relativer Schriftgrade zu diskutieren.
Bei unserer Tonqualität ist es wie beim Google Linkjuice: Zählt man alle Beteiligten zusammen, kommt immer die Zahl 1 heraus. Während Markus nun also THX-Ultra-zertifiziert ist, zerbröselten unserem Gast Nico Brünjes, Frontendentwickler bei ZEIT ONLINE, reihenweise die Headsets unter den Fingern weg :(
http://example.com/lorem.html#css(p:nth-child(2))
.
X-Tracking-Choice: do-not-track
. Dieser soll immer dann gesendet werden, wenn der Benutzer von Inhalteanbietern nicht getrackt werden will. Das Ganze setzt allerdings voraus, dass die Gegenseite diesen Header auswertet und respektiert. Beim Diskutieren darüber kommt uns die Robinson Liste in den Sinn. Google will es in Chrome hingegen via Browsererweiterung lösen.eval()
und (dem bösen) with{}
klar, und verfügt über eine Google Closure kompatible HTTP-API. Steckt auch im kommenden WebKit WebinspectorFür die potenziell sprengsatzhaltige Diskussion um Googles Entscheidung, den H.264-Codec aus Chrome zu entfernen, holten wir uns Gerrit van Aaken mit ins Boot. Wir hoffen, dass die Audio-Qualität langsam in den Bereich des Erträglichen vordringt.
NEU und BREAKING: Es gibt jetzt auch mal testweise Kapitelmarken. Bisher leider nur im MP4-Format. Wenn das Feature ankommt und ihr beispielsweise Ogg fordert, kann ich auch das geschehen lassen.
Viel Spaß mit der Folge!
…weil wir darüber nicht sprechen konnten oder wollten (ja, wir sortieren knallhart aus!):
Erste Folge im neuen Jahr, zum ersten Mal zu viert, aber hoffentlich das letzte Mal mit Mülltonnen-Sound von meiner Seite. Ab nächster Woche laufe ich nämlich mit dem gleichen Headset auf, das z.B. auch von Tim Pritlove, Philip Banse oder Frank & Fefe benutzt wird.
Achja, und das mit dem Normalisieren muss mir noch mal einer erklären. Ich krieg die Peter-Spur nie so laut, dass sie gleich ist wie die anderen.
Die letzte Folge des Jahres. Ein Holzscheit in den wärmenden Kamin der nerdigen Weihnachtlichkeit, der uns über die Feiertage bringen soll, bis wir dann am 10.1. die nächste Sendung aufnehmen werden. Wer Anregungen für die neue Saison hat: Her damit!
Hier übrigens ein Screenshot, der zeigt, wie ausdifferenziert unsere Betriebssystemwahl aussieht:
Schepp fiel aus, Marc stand im Stau, also mussten Peter und ich uns die Themen eben zu zweit zur Brust nehmen. In Rekordzeit!
Weil wir noch ein paar Themen haben, die wir gerne noch zusammen mit Schepp besprechen würden, andererseits aber dachten, dies sollte die letzte Sendung vor Weihnachten sein, fragen wir nun einfach in die Runde der Hörer: Wollt ihr nächsten Dienstag noch eine Sendung oder seid ihr da schon an den Weihnachtsbaum gekettet und mit Tannenbaumbesorgungen beschäftigt?
Dann kamen noch Fragen nach einer Spendenmöglichkeit per Direktüberweisung; ohne Paypal. Wer also meine Kontodaten will, bekommt diese auf Anfrage per Mail.
Marc Hinse, Peters geplante Aushilfe erkrankte leider kurzfristig, sodass der Schepp und ich das zu zweit schaukeln mussten. Bis auf mein Kopf und meine Stimme spielten auch alle Beteiligten mit.
Auf Gerrits Drängen hin, hab ich dieses mal das integrierte MacBook-Mikrofon zum Aufnehmen genutzt. Konkret bedeutet das, dass ich nun in einer Mülltonne zu sitzen scheine; meine scharfkantigen Atmungsaktivitäten stechen damit aber immerhin weniger ins Ohr.
Peter war dieses mal nicht dabei; dafür aber @polarity. Robert hat sich in letzter Zeit verstärkt mit Game-Engines auf HTML5-Basis beschäftigt und ob der lahmen News-Situation diese Woche haben wir am Ende dann einfach noch einen generellen EInblick in das Thema gegeben.
Es lief technisch erstaunlich reibungsfrei. Garageband habe ich als Aufnahmesoftware dieses Mal zum Teufel gejagt, was sich als richtige Entscheidung herausstellte. Nur bei der Skype-Verbindung gabs hier und da ein paar Aussetzer.
Am Anfang vergangener Woche war erstaunlich wenig los. Mozilla legte dann aber noch nach und brachte die 7er Beta des Firefox 4 mit Hardware-Grafikbeschleunigung, Forms & File-API, Jägermonkey und Opentype-Featureunterstützung.
In der Premierenfolge hatten wir es noch nicht geschafft, jetzt hat es geklappt. In voller Besetzung haben wir nun auch inklusive Schepp gemeinsam unsere minderwertigen Mikrofone beschallt. Googles Apache-Modul mod_pagespeed als Ableger des Browser-Plugins PageSpeed, Web-Applikationen versus Browser-Applikationen, Featuredetection-basiertes Nachladen von Polyfills, Hardwarebeschleunigung in Chrome, Sub-Pixel-genaue Positionierung von Schrift im IE9, Adobes Bemühungen um Webtypografie und serverseitiges Canvas waren unsere Themen.
Auf meiner Spur ist leider so viel Hall, dass ich zeitweise ernsthaft gezweifelt habe, ob wir die Folge wirklich auf die Öffentlichkeit loslassen sollen. Ihr seid aber hoffentlich schmerzresistent genug, um darüber hinwegzusehen – zumindest dieses mal noch. Ich hoffe, beim nächsten Mal habe ich die Problemquelle ausfindig gemacht. Da sich der Hall geradezu wie berechnet anhört, würde ich sogar vermuten, da hat der böse Steve seine Finger softwareseitig im Spiel …
Die allererste Folge des neuen News-Podcasts für den ambitionierten Webmenschen. Peter und ich haben uns über den endgültigen Tod von Silverlight im Web, Adobes HTML5-Bemühungen, den tollen Sencha Animationseditor, Vimeo Couchmode und Youtube Leanback, den Google-WebFont-Loader, XML-Tags für Facebook, Audio-APIs im Firefox, Stacktraces in JavaScript und natürlich Firesheep unterhalten.
En liten tjänst av I'm With Friends. Finns även på engelska.