PHP User Group Frankfurt

Die PHP User Group Frankfurt hatte geladen und alle sind gekommen. Naja, sagen wir zwanzig Interessierte mit mehr oder weniger Entwicklerhintergrund. Den gemütlichen Teil musste ich leider ausfallen lassen, denn:

Server sind wie kleine Kinder. Man sollte sie nie ohne Babysitter alleine daheim lassen…

Beim nächsten mal dann. Die Vorträge:

Testen von untestbarem Code

Stefan Hochdörfer mit einem sicherlich interessanten Vortrag, der in mir aber, mal wieder, die Erkenntnis freigesetzt hat, dass ich mich endlich mal mit dem Thema Unit-Tests auseinandersetzen muss. Denn untestbarer Code dürfte hier genug rumfliegen.

Enterprise Search Server meets Enterprise CMS

Hochinteressant, der Vortrag von Ingo Renner, der seit zwei Jahren an der Hochzeit von Apache solr und typo3 arbeitet – und bereits einige wirklich nette Implementierung vorführen konnte.
typo3 interessiert mich ja jetzt nicht so sehr, aber solr habe ich mir immer mal wieder angesehen, war aber nie bereit, mir dafür irgendwo einen Tomcat-Server hinzustellen. Aber seien wir doch mal ehrlich: Die Suche in unseren Shops stinkt. Ja, die ist schon besser als die ‘normale’, aber so richtig gut und vor allem technisch ausgereift ist was anderes. Ich glaube, da muss ich mich nochmal reinarbeiten. Tomcat hin oder her.

Fazit

Hat Spaß gemacht und nächstes Mal habe ich dann hoffentlich keinen Servern das Händchen zu halten. Das nächste Meeting ist, wenn man nicht noch kurzfristig was anderes ausgemacht hat, am 31. März.

503: Statuscode bei Problemen

Nichts wirklich neues erzählen Tomer Honen und Kaspar Szymanski in Googles Webmaster-Zentrale zum Umgang mit geplanten Wartungszeiten einer Website, aber noch immer sieht man viel zu oft Seiten, die für jeden noch so unpassenden Fall einen Statuscode 200 ausliefern, deshalb will ich es auch hier noch einmal aufgreifen.

Denn nicht nur für den Fall, dass eine Seite nicht gefunden wurde oder jetzt unter einer anderen URL erreichbar ist gibt es Statuscodes, auch, dass eine Seite kurzzeitig einmal nicht erreichbar ist, regelt RFC 2616:

10.5.4 503 Service Unavailable
The server is currently unable to handle the request due to a temporary overloading or maintenance of the server.

Das ganze kann man mit php sehr einfach erreichen, indem man den folgenden Code an den Anfang der Seite setzt:

header("HTTP/1.1 503 Service Temporarily Unavailable");
header("Retry-After: Tue, 25 Jan 2011 15:00:00 GMT");
header("Connection: Close");

Retry-After und Connection-Feld sind dabei optional. In ersterem kann man eine Info mitgeben, wann der Spider wieder vorbeischauen soll. Dabei ist entweder ein absolutes Datum möglich oder eine Angabe in Sekunden. Connection sorgt dafür, dass die Verbindung nicht als persitent angesehen werden soll.

Während man bei geplanten Ausfallzeiten das ganze sehr gut vorbereiten und implementieren kann empfiehlt Google den Statuscode 503 für weitere Probleme, die sich nicht so leicht vorhersehen lassen, etwa Serverausfälle, Bandbreitenüberschreitungen oder auch Baustellenseiten. In jedem Fall empfiehlt es sich aber, die Seite darüber hinaus noch zu gestalten, um dem menschlichen Besucher eine Information zukommen zu lassen, was der Grund für den Ausfall ist und bis wann damit gerechnet werden kann, dass wieder alles funktioniert.

Denn außer der Information „geht nicht” transportieren solche Standardseiten normalerweise keine brauchbaren Informationen für den Besucher, wie man heute schön sieht, wenn man Teuxdeux aufruft:

Im Vergleich dazu noch unsere 503-Seite, die wir im vergangenen Jahr geschaltet haben, als Hetzner unseren Server auf einen Laster geladen und von Bayern nach Sachsen transportiert hat:

Kleiner Bewerber-Knigge

Jeder hat sicherlich mal so einen „Wie bewerbe ich mich richtig”-Kurs durchlaufen. Ich weiß nicht, was da heutzutage gelehrt wird, aber ich hätte da ein paar Dinge, auf die Dozenten hinweisen sollten:

Form

ACHTUNG: Es werden ausschließlich Bewerbungen per E-Mail berücksichtigt

Es ist mir unklar, was man daran falsch verstehen könnte, aber es heißt: Wir wollen weder eine Bewerbung auf toten Bäumen per Post haben noch ist es in unserem Interesse, dass man seine ausgedruckten Bewerbungsunterlagen persönlich bei uns vorbeibringt.

Anhänge

Meine Bewerbungsunterlagen fügen ich Ihnen als Anlage bei.

Diesen Worten sollte man Taten folgen lassen. Unbedingt.

EDV-Kentnisse

Das heißt nicht, dass wir hier ein abgeschlossenes Informatikstudium sehen wollen. Ein gescanntes Anschreiben und ein gescannter Lebenslauf lassen aber nicht den Eindruck entstehen, dass man die Anforderungen unbedingt erfüllen könnte. Und nur weil man ein VHS-Zertifikat in Tabellenkalkulation vorweisen kann ist es keine wirklich gute Idee, Lebenslauf und Anschreiben als Excel-Dokumente zu schicken! Überhaupt, die Dateiformate. Kein Word, kein Excel, kein Open Office oder sonstiges Zeug! PDF! Wer nicht in der Lage ist, ein PDF seines in Word geschriebenen Anschreibens zu erzeugen ist definitiv fehl am Platz!

Internetaffinität

Zitate aus einer E-Mail:

Ich bin mit dem Internet vertraut.

Ist der Arbeitsplatz weit vom Bahnhof entfernt?

In der Stellenausschreibung steht unsere Postadresse. Die Postadresse des Bahnhofs ausfindig zu machen und mit diesen beiden Informationen dann zu ermitteln, wie weit beide voneinander entfernt sind, sollte für jemanden, der mit dem Internet vertraut ist, zu einer der leichtesten Aufgaben gehören.

Seriösität

Das gilt eigentlich für alles. Aber für Bewerbungen noch einmal doppelt: Comic Sans ist keine Schriftart, die in Bewerbungen irgendeine Berechtigung hat. Und ja, hier sind Bewerbungen aufgeschlagen, bei denen sowohl Anschreiben als auch Lebenslauf komplett in Comic Sans geschrieben sind!
Auch nicht seriös sind diverse E-Mail-Adressen. @aol.com steht ganz oben auf der Liste, @hotmail.com ist nicht unbedingt besser.

Betreff

Bewerbung mag ein angebrachter Betreff für einen selbst sein. Wenn man aber mehrere Ausschreibungen laufen hat wäre es auf Empfängerseite schon gut zu wissen, auf welche Stelle man sich bewirbt, ohne vorher die E-Mail oder im Extremfall das Anschreiben lesen zu müssen.

Individualität

Ihre Stellenausschreibung vom 17.01.2011 bei der Bundesagentur für Arbeit
Sekretär/in

Das wäre in Ordnung, wenn es sich bei der ausgeschriebenen Stelle um einen Sekretariatsjob handeln würde. Tut es aber nicht.

Sehr geehrte Frau Herr Dingelskirchen,

Besser mal ne doppelte Anrede, da kann man wenigstens nichts falsch machen.

Mir schon klar, dass Bewerbungen im Dutzend günstiger sind. Wenn man das aber dann so handhabt sollte man seine Serienbrieffunktion im Griff haben. Alles andere legt den Schluss nahe, dass es mit den EDV-Kenntnissen dann doch nicht so weit her ist.


Wird bei Bedarf erweitert…

Reichelt weiß, wie’s geht

Ich bestelle ja gern bei Reichelt. Nicht, weil der Shop sonderlich hübsch oder besonders gut benutzbar ist, eher das Gegenteil ist der Fall, sondern weil die Preise gut sind und die Ware schnell ausgeliefert wird.

Beim Aufräumen fiel mir jetzt ein alter Gutschein über 10 Euro in die Hände. Passend, da ich eh bestellen wollte. Geht um Strom sparen und so, mehr dazu in Kürze auf blogpotato.de. Da sich im ganzen Checkout-Prozess kein Feld findet, in das man die Gutscheinnummer eintragen könnte habe ich kurzerhand ins Kommentarfeld geschrieben, man möchte mir doch bitte den Gutschein mit der Nummer #123456 mit dieser Bestellung verrechnen.

Heute morgen finde ich dann in meinem Postfach eine E-Mail mit dem vielsagenden Betreff ‘Reichelt Mail-Service’. Und darin heißt es wörtlich:

Gutscheine benötigen wir im Original! Schicken Sie uns
diese bitte per Post (Reichelt Elektronik, Elektronikring 1,
26452 Sande) zu

Bitte beachten Sie außerdem folgendes:
– Die Ware wird erst NACH Eingang Ihrer Antwort an Sie versendet.
– Sie bekommen auf Ihre Antwort von uns KEINE Bestätigungmail.
– Wenn Sie sich auf unsere Anfrage nicht melden, wird Ihre Bestellung
nach 1 Woche automatisch aus unserem System entfernt.

Entschuldigung? Da hab ich mich wohl verhört, oder? Jedes popelige Open-Source-Shopsystem ist in der Lage, Gutscheincodes direkt im Bestellprozess entgegenzunehmen und zu validieren. Jeder Wohnzimmerversender kann folglich ein funktionierendes und für den Kunden leicht benutzbares Gutscheinsystem implementieren, nur Reichelt schafft das nicht?
Mir schon klar, warum das so ist, wenn ich mir die Gutscheinnummer so anschaue. Die ist wohl einfach fortlaufend. Aber die Lösung kann ja wohl nicht sein, dass ich mir ein Kuvert (1,99€ und neun Stück, für die ich keine Verwendung habe) und dazu eine Briefmarke (0,55€, gibt’s zum Glück einzeln) kaufen muss. Da gehen ja schon allein 25% des Gutscheinwertes für unnötige Ausgaben drauf! Darüber hinaus will das ganze eingetütet und zur Post gebracht werden. Und dann darf ich auch noch auf meine Bestellung warten, bis der Gutschein bei Reichelt eingetroffen ist und verbucht wurde!

So kann man natürlich auch die Kundschaft effektiv davon abhalten, Gutscheine einzulösen. Das Geld hat man ja schon kassiert. Ein Schelm, der böses dabei denkt.