Become a Professional Web Developer in 7 Easy Steps!

  1. Use a Mac, obviously.
    Do these other things even support HTML?
  1. When you don’t know what to do open a new <div> tag.
    Div tags are so responsive.
  1. Every HTML element is required to have between one and four classes.
    Examples: <button class="button">, <h1 class="heading heading-2 big bold">, <div class="left-margin right-margin top-margin bottom-margin">
  1. Stylesheets with less than 1000 lines are not suitable for professional projects.
    Thanks to Bootstrap you won’t have to write them yourself. Or even use them.
  1. Embed jQuery to enable JavaScript.
    Without jQuery you only have some obscure assembler-like programming support that is impossible to work with productively.
  1. Get some random jQuery plugins.
    They might magically solve your problems. If not, go to step no. 6.
  1. Talk about recent MVC frameworks in the kitchen.
    Don’t worry if you don’t have an idea what MVC means. Throw in terms like “performant”, “modular”, or “MVVM” ad libitum.

Mittags im September

Mittags Zahnarzttermin. Dem Rettungswagen vor dem Haus schenkte ich keine Beachtung. Die Praxistür war angelehnt. Ich öffnete sie und sah eine alte Frau reglos im Flur liegen, bis über den Kopf zugedeckt von einem weißen Laken. In ihrem linken Arm steckte eine Infusionsnadel, daneben Blut. “Haben Sie einen Termin?”, fragte ein junger Rettungssanitäter. Ich bejahte. “Gehen Sie mal lieber raus”, erwiderte er schief grinsend. Eine der Helferinnen kam zu mir heraus, ziemlich aufgelöst. Sie erzählte, dass die Frau vor einer Dreiviertelstunde in die Praxis gekommen war, stark aus der Nase blutend, und zusammenbrach. Sie hätten sie in die stabile Seitenlage gebracht, aber schließlich starb sie. Keiner wusste, wer sie war. Die Kriminalpolizei war unterwegs. Ob sie sehr rot sei, fragte mich die Helferin — nur ein bisschen, antwortete ich. Sie war sonst immer auf eine mütterliche Art einfühlsam und ruhig, sprach mit einem leicht osteuropäischen Akzent. “Haben Sie schon einmal jemanden sterben sehen?” — “Nein.” — “Da haben Sie nichts verpasst.” Die Ärztin kam hinzu, verabredete einen Termin mit mir für morgen Nachmittag. Sie müssten heute alle Patienten nach Hause schicken, sagte sie und verschwand wieder in der Praxis. Die Helferin wies sie auf die Flecken an der Tür hin; die Ärztin trug keine Handschuhe. Sie erzählte von dem Blut, das aus der Nase der Frau gekommen war, ganz dick, wie Gelee. Ich strich ihr tröstend über den Arm und verabschiedete mich. Draußen rauchte eine andere Helferin. Ein Notarztauto war hinzugekommen, eine Polizistin lief herum. Ich machte ein paar Einkäufe. Beim Herauskommen konnte ich mich nicht mehr erinnern, wo ich das Fahrrad abgestellt hatte. Das Blut an der Tür war mir zuerst gar nicht aufgefallen. Zuhause wischte ich alles mit Desinfektionsmittel ab, was ich angefasst hatte.

Why I'm angry about the makers of Sublime Text

Among web developers, Sublime Text enjoys an excellent reputation. I’m not in the mood to go into detail about that, but I think this is justified. I, like many web developers am used to work with free and open source software; Sublime Text has been the first piece of software since ages that I bought a licence for and I didn’t regret that.

But it seems the developers of this great editor have lost interest in the project. I don’t know if it’s due to too much success or to too little revenue but it’s hard to deny. And that’s a big problem for many of us because you don’t change your working environment like you change your socks.

1) When I switched to Sublime Text two years ago, version 3 was in beta state and seemed to be pretty complete. Two years later, Sublime Text 3 is still in beta – which it has been since January 2013.

2) The first negative thing I noticed about Sublime Text was that the command palette – the elegant way to access editor commands without having to touch the mouse – was far from complete. As you can easily customize that yourself (one of the great features of this software) I tried to find out which commands Sublime Text actually supported. But I didn’t find a comprehensive list. The best I could find was in an unofficial documentation. I don’t know many other cases where the best documentation for commercial closed-source software is done by third-party volunteers. I’d be embarrassed if that was my company.

3) It turned out that this was not the only documentation issue. I wrote a little plugin and had the trivial problem to move the cursor. I finally got to solve it, but the official documentation was of no help. Or rather: It was misleading because I got confused by a page on the site that obviously refers to an outdated version without hinting that it is obsolete.

4) When I set up a new machine I switched to Sublime Text 3; according to the blog it is the recommended version. Sublime Text 3 has been in beta state since January 2013. I came to regret this decision somewhat because there’s an annoying bug: When I switch to a different project the side bar doesn’t show any files. I searched for that bug and found a lengthy discussion about it. The first post was 25 months old, from about the time I bought my licence. Currently there are 557 open issues in the core, some dating back to April 2013.

5) So we have a company with a great product which is too lazy to write reasonable documentation, not willing or able to fix a bug for two years and doesn’t communicate: Since December 2013 there have been two new posts to the blog and to Twitter respectively.

The great loyalty that the web community shows towards Sublime Text will not last forever. Some great editors have shown up – most notably Brackets and Atom that are both based on web technology and open source. I’m not yet at the point to quit the editor but that may well change.

So, what I ask of Sublime HQ: If your company is dead or you have other cool things to do than supporting that old editor of yours, please tell us – and free the code. Remember that community contributions had a big share in the success of Sublime Text.

And if you’re still committed to Sublime Text, please communicate and care for your community. But if you continue like this that great editor will be history within the next two or three years, I bet. And that would be a shame.


I was made aware that there is still active work on Sublime Text because new developer builds are released several times per month. As of today the latest build is only two weeks old. I was told on Twitter that the dev builds are stable enough for daily work.

So the project is definitely not dead, which is good to know. Still, most of what I criticized (the documentation and the communication) still stands.

Rebuilding the House with Shiny Cardboard [Updated with Google Rant]

Yesterday I read two leading web developers (Jeremy Keith, ppk/Quirksmode) thinking about a fundamental change in the way we should use tools. The TL;DR: Stop trying to imitate native apps in the browser. Concentrate on performance. Use less tools.

I basically agree and support this cause. It is ridiculous that Facebook reinvents RSS to everyone’s applause because websites are so bloated nobody wants to use them if they don’t have to. As a web developer I feel the slap in the face.

It’s easy to blame the abundance of tools for this. There is a strong temptation to do what is technically possible just because it is possible. Jeremy Keith quotes other blogs that name JavaScript implementations of scrolling (Parallax), touch events or loading as problematic. I personally think that MVC in the client is a misconception, albeit an interesting one. “Look, I rebuilt our house with shiny cardboard!”

While there is some mocking about it I don’t know how many web developers embed jQuery before they even start to think about writing their code (which might end up being only a couple of lines).

Not just Performance

But there is more to it. Many people who build web pages are not very well trained for this job and do not fully understand the stack. Having lots of pre-built solutions to choose from helps them getting their work done. If it works they don’t bother to consider improving the performance or reducing the plugin overkill.

The web has been evolving at a very high speed for many years. This combined with the fact that many web developers are not ideally trained makes our profession easily fall for fashion trends. Use Grunt! Use Gulp! Use jQuery! Use Backbone! Use Ember! Use Angular! Use Bootstrap! Use React! You try it, you get caught and you easily miss the point where you should ask yourself: Does this really make my job easier and my products better? Often it’s rather Use this tool, it’s great than “I need a tool to solve this problem”.

I do think this is an erroneous trend and there should be more consciousness for the costs that come with every new tool. I hope the discussion recently started makes some web developers think.

But is this really the reason why reading news websites feels painful? Or why influental tech journalists make silly claims about browsers being too slow to render a news story Is this why people use InstaPaper or Readability, as Jeremy Keith points out?

The Real Problem

No: That is mainly because most websites (especially news websites) live from advertising. The relevant difference between web and mobile is not technology, it’s business model. In the web they not only have to throw you the ads into the face, they also want to keep you on their site with links, offers, newsletters and other crap. Basically we haven’t evolved from the late 90s when the term “web portal” was created, except that we can do it also with videos and like buttons, yeah. In a mobile app there are subscription business models which tend to be much less annoying.

As I pointed out elsewhere (warning: German language talk, profanity, Apple bashing, silly jokes, bad haircut) I think that advertising in the web has failed because it is too cheap and therefore too intrusive. It’s the web’s core problem. (And I have no idea how to solve it. Sorry.) It’s not so much the performance that is broken but the usability because advertising and usability don’t go together. I agree that the misuse of tools contributes to bad usability but the fundamental problem lies deeper.

Performant Crap Compilers

The average web page fires circa 100 HTTP requests and loads 2 MB data from the web – and “average” means that it can be much more, especially when we’re talking about news websites. Most of it is images, about 15% is JavaScript. While it’s ridiculous to have more than 300 KB code executed in an ordinary web page, the browsers (even the mobile ones) handle this surprisingly well. Modern JavaScript engines are phenomenal. How sad they have to compile mostly crap.

Most of the HTTP requests and a big share of both data volume and scripts are due to advertising. A different business model (which, of course, we only can dream of) would reduce these numbers further because the websites could focus on positive user experience.

TL;DR: Ad is bad. It has direct and indirect consequences for web page usability. Mobile apps have a huge advantage compared to the web, but it’s the business model, not technology. Web design is a mess but this is only partly the web developers’ fault – although they could do definitely better, and Keith’s and ppk’s suggestions should be followed.


I’m just implementing a YouTube Iframe player into a website. Google suggests to write a little script which loads a loader which loads a bigger script which loads another big script, an even bigger script and a monster of a script:

YouTube API script downloads

Yes, that’s right: 1 MB compressed JavaScript code. For displaying a video in an IFrame and making it controllable with a rather simple API. Hello, Google? Anybody home? What the hell is all this code doing?

Buchstabentexte: F wie Familie

Mit Freunden habe ich verabredet, dass wir alle bei jedem Zusammentreffen einen Text zu einem zufällig ausgewählten Buchstaben schreiben. Hier Teil eins einer Serie, die hoffentlich zwei oder mehr Teile haben wird.


Es hat mich selbst ein wenig überrascht, dass ich dieses Wort gewählt habe. Gäbe es doch so viele andere, von denen ich erwartet hätte, dass ich sie interessanter fände: Frauen zum Beispiel, und natürlich ficken. Fehler und Frust, die auf ungeliebte Teile meines Charakters verweisen. Film, mit dem ich groß geworden bin, weil mein Vater im Kino gearbeitet hat. Freunde, die eher gehen als kommen. Und natürlich das Feigenblatt.

Aber zum Begriff Familie hatte ich als Erstes ein Gefühl, ein Bild; eines, das sehr alt ist, mir aber erst während der letzten Jahre als eines bewusst geworden ist, das mich mit Wärme und Stolz erfüllt. Es sind Menschen, die in einem kleinen Zimmer laut durcheinanderreden. Das Zimmer ist die Hälfte der Wohnung meiner Großeltern in einem uralten, seltsam verwinkelten Haus.

Die Menschen darin sind mein Vater mit seinem kaputten Schneidezahn, wie er mit seiner Mutter redet, einer kleinen Frau mit hoher Stimme, naiv und gutmütig, ständig zugange um den alten Kohleherd; eine Frau, bei der man erschrak, wenn sie einmal keine Kittelschürze trug. Dazwischen lachte Tante Gina laut und dreckig, eine schöne Frau mit kurzen Haaren. Onkel Helmut sah aus wie ein Mafia-Killer und gab so fürchterlich an, dass es mir schon als Kind auffiel. Dann noch Bobby und Renate. Tante Maria, Onkel Hans, Kurt. Meine Mutter, als sie noch lebte. Die Szenerie beherrschte mein Großvater, ein kleiner, dürrer Mann in grauen Hosen und Strickweste mit schlecht sitzendem Gebiss, die Schläfen eingefallen; in der gelbbraunen Haut mischten sich dunkler Teint und jahrzentelange Nikotinablagerungen.

Ich war das einzige Kind, denn die Generation meiner Eltern war nicht so vermehrungsfreudig wie die meiner Großeltern (oder erst recht die davor) — zehn Jahre vor und nach mir kam nichts. Ich tat, was Kinder bei solchen Gelegenheiten tun: mich langweilen. Ich las, spielte mit Plastik-Zirkustieren, wartete, dass wir endlich nach Hause konnten — was auch immer ich mir von diesem trostlosen Ort erwartete. Ich war ein dickes, introvertiertes Kind, ein Brillenträger, der erste von uns, der aufs Gymnasium kam.

Ein Jahrzehnt später verließ ich zusammen mit meinem Vater und seiner neuen Frau ohne großes Bedauern meine Geburtsstadt. Mein Großvater, der strenge Kopf dieses Haufens, war längst an seinen Zigaretten gestorben. Ich wollte der Welt zeigen, was ich konnte, aber ich hatte nicht die geringste Ahnung, wie ich das anstellen sollte. (Das geht mir heute noch manchmal so.) Dann ließ ich auch den Rest meiner Familie hinter mir, um es alleine zu schaffen.

Ich brauchte lange, um mir einzugestehen, wie sehr mir die unverbindliche Lebendigkeit, das vielstimmige Geplapper fehlen. Schmutz, Durcheinander, Enge, idiotische Debatten und Gelächter liegen mir mindestens so nahe wie die einsamen Kopfreisen, mit denen ich den größten Teil meines Lebens zubringe, der ewigen Suche nach Wissen und Verstehen, der Bewunderung von Logik und Stil.

Im Haus meines Vaters ist dank meiner drei Halbgeschwister wieder so ein kleines Paradies des lärmenden Chaos entstanden. Ich hoffe, es bleibt noch eine Weile erhalten.

Wenn ich darüber nachdenke, kommen mir die Menschen, über die ich geschrieben habe, wie Kinder vor. Ich mag Kinder, und ich möchte etwas von dem, was für mich Familie bedeutet, weitergeben und weiterleben. Ich mag Leben. Stille und Verbindlichkeit — vor denen fürchte ich mich.