Blog

Zwei ruhige Wochen in der WerkstattTwo Quiet Weeks in the Workshop

Zwischen dem 7. und 23. September hat sich auf dieser Website wenig sichtbar verändert – aber hinter den Kulissen gab es ein besseres Kontaktformular, rund fünfzig neue Konzept-Websites und einen heimtückischen Bug im Deploy-Skript.Not much changed on this site between 7 and 23 September — but a better contact form, about fifty new concept builds and one sneaky deploy-script bug all happened behind the scenes.

Michael Roehn, Webentwickler in Bad Kreuznach
← Zurück zum Blog

Von außen hat sich diese Website zwischen dem 7. und 23. September kaum bewegt. Hinter den Kulissen war es eine der arbeitsreichsten Phasen bisher. Das ist passiert.

Ein Kontaktformular, das die richtige Frage stellt

Das Kontaktformular hat ein neues, freiwilliges Feld bekommen: Betrieb / Firma. Die meisten, die mir schreiben, führen einen Handwerksbetrieb oder ein kleines Unternehmen, und wenn ich schon vor meiner Antwort weiß, um welchen es geht, spart das eine Runde Hin und Her. Das Nachrichtenfeld schlägt jetzt außerdem vor, was hilfreich zu erwähnen ist: was der Betrieb macht, ob es heute schon eine Website gibt und wann die neue online gehen soll.

Ein kleines Detail, bei dem man leicht danebenliegt: Das Formular hatte schon ein verstecktes „Honeypot“-Feld, um Spam-Bots abzufangen – ein Feld, das echte Besucher nie sehen, das einfache Bots aber bereitwillig ausfüllen. Es hieß bisher company – viel zu nah am neuen, echten Feld für den Betrieb und verwirrend für jeden, der später den Code des Formulars liest. Die Falle heißt deshalb jetzt website, und das Mail-Skript gibt den Namen des Betriebs mit der Nachricht weiter – ohne Zeilenumbrüche, damit sich nichts in die Mail einschmuggeln lässt.

Rund fünfzig neue Konzept-Websites

Zwischen dem 8. und 13. September sind in einem eigenen Werkstattordner rund fünfzig neue Übungs-Websites entstanden – jede eine einzelne, in sich geschlossene Seite mit eigenem erfundenem Thema und eigenem visuellem Stil. Eine kleine Auswahl:

  • Bar Sorella – eine italienische Bar, „Milano dal 1958“.
  • Thalberg Hbf — Kursbuch – ein Bahnfahrplan als Designobjekt.
  • The Ice Ledger – neunzig Jahre Rhonegletscher.
  • Marchetti Cicli – Stahlrahmen-Fahrräder mit Muffen, nach Maß gefertigt.
  • Levain – eine Bäckerei mit Natursauerteig, vier Brote, sechs Tage die Woche.
  • Orrery – eine Messingmaschine für das Sonnensystem.

Öffentlich ist noch keine davon. Es sind Übungen in Bandbreite: Archive, Konsolen, Shops, Bestimmungsbücher, Zines. Die guten ziehen in die Galerie der Übungsarbeiten um, sobald sie gründlich geprüft sind – so wie die letzten sechs.

Der Bug, der sich nur zeigte, wenn etwas schiefging

Das Deploy-Skript, das diese Website hochlädt, läuft über ein kleines expect-Skript. Seine Fehlermeldungen sahen harmlos aus:

puts "\n[DEPLOY] Login failed: permission denied."

Aber expect baut auf Tcl auf, und in Tcl sind eckige Klammern in doppelten Anführungszeichen kein Text – sie bedeuten „führe das als Befehl aus“. Sobald eine Anmeldung tatsächlich fehlschlug, versuchte Tcl also, einen Befehl namens DEPLOY auszuführen, stürzte ab und zeigte eine verwirrende Fehlermeldung statt der hilfreichen. Solange nichts schiefging, funktionierte alles bestens – genau deshalb hat es niemand bemerkt. Die Lösung waren vier Backslashes: \[DEPLOY\].

Eine gute Erinnerung daran, dass auch Fehlerpfade getestet werden wollen – sie sind der Code, den man erst liest, wenn der Tag ohnehin schon schlecht läuft.


Wenn Sie einen Betrieb führen und eine Website möchten, die mit dieser Sorgfalt gebaut ist, nehmen Sie gern Kontakt auf.

From the outside, this site barely moved between 7 and 23 September. Behind the scenes it was one of the busiest stretches so far. Here's what happened.

A contact form that asks the right question

The contact form got a new, optional field: Business / workshop. Most people who write to me run a trade or a small company, and knowing which one before I reply saves a round of back-and-forth. The message box now also suggests what's useful to mention: what the business does, whether there's a site today, and when it should go live.

One small detail that's easy to get wrong: the form already had a hidden "honeypot" field to catch spam bots — a field real visitors never see, but simple bots happily fill in. It used to be called company — far too close to the new, real business field, and confusing for anyone reading the form's code later. So the trap got a new name, website, and the mail handler now passes the business name along with the message — with newlines stripped out, so nothing can be smuggled into the mail.

About fifty new concept builds

Between 8 and 13 September, around fifty new practice sites came together in a separate workshop folder — each one a single, self-contained page with its own invented subject and visual style. A small selection:

  • Bar Sorella — an Italian bar, "Milano dal 1958".
  • Thalberg Hbf — Kursbuch — a railway timetable as a design object.
  • The Ice Ledger — ninety years of the Rhône Glacier.
  • Marchetti Cicli — lugged steel bicycles, made to measure.
  • Levain — a naturally leavened bakery, four breads, six days a week.
  • Orrery — a brass machine for the solar system.

None of them are public yet. They're exercises in range: archives, consoles, shops, field guides, zines. The good ones will move into the Practice work gallery once they've been reviewed properly, the way the last six did.

The bug that only showed up when something went wrong

The deploy script that uploads this site runs through a small expect script. Its error messages looked harmless:

puts "\n[DEPLOY] Login failed: permission denied."

But expect is built on Tcl, and in Tcl, square brackets inside double quotes aren't text — they mean "run this as a command". So the moment a login actually failed, Tcl tried to run a command called DEPLOY, crashed, and showed a confusing error instead of the helpful message. Everything worked fine as long as nothing went wrong, which is exactly why nobody noticed. The fix was four backslashes: \[DEPLOY\].

It's a good reminder that error paths need testing too — they're the code you only read when you're already having a bad day.


If you run a business and want a site that's built this carefully, get in touch.

Hat Ihnen dieser Beitrag gefallen?

Ich freue mich über Ihr Feedback oder ein Gespräch über Ihr eigenes Projekt.

Kontakt aufnehmen