Vitamin

Ryan und Gillian Carson haben eben Vitamin gelauncht: »Vitamin is a resource for web designers, developers and entrepreneurs«. Gerade gestartet findet man dort beispielsweise schon einen Artikel von Jason Fried: How to Shut up and Get to Work!. Das »Advisory Board« prahlt mit Namen wie Dan Cederholm, Shaun Inman, Eric Meyer, Dave Shea, … kurz, eine wunderbare neue Quelle für des Webdeveloper Input Stream.

Vitamin will inspire you, teach you, advise you and sometimes test you with its in-depth features, audio interviews, training sessions and reviews.

Skalierbarkeit

Vor kurzem wurde ich sehr direkt von höherer Stelle gefragt, warum wir unsere aktuelle Applikationen in PHP5 programmieren würden, und ob eine Programmierung in Java nicht eine wesentlich skalierbarere Anwendung zum Ergebnis hätte.

Ich musste zunächst stutzen und mir – ganz ehrlich gesagt – mit ein paar Allgemeinplätzen hinsichtlich bereits geplanter Datenbankoptimierungen, möglicher Cachemechanismen und Hardwarekosten für gleichwertige Javaapplikationen (nebst Datenbankserver(n)) weiterhelfen. Das hat zwar zunächst funktioniert, hinterließ bei mir jedoch das schlechte Gefühl, uninformiert geurteilt zu haben, einfach beeinflusst durch meine persönliche Vorliebe für die freundliche Skriptsprache.

Ich habe mir also zu dem Thema über Ostern einiges angelesen, und komme letztendlich zu dem glücklichen Schluss, das meine Aussagen zwar sehr allgemein gehalten waren, im großen und ganzen jedoch, speziell für die von uns angestrebte Anwendung jedenfalls, den Nagel auf den Kopf getroffen hat. Neben vielen sinnlosen Flames habe ich doch einige gute Argumente für PHP sammeln können, sogar einige gegen Java. Geradezu erfrischend räumt bspw. Brian Fioca in Digg PHP’s Scalability and Performance mit den allgemeinen Vorurteilen gegenüber PHP auf und gibt zudem gute Hinweise wie man PHP-Applikationen skalierbar machen und halten kann. In meiner eigenen Bibliothek fanden sich dazu auch sehr gute Hinweise in Georg Schlossnagles Advanced PHP Programming.

Fassen wir einmal zusammen: mögliche Schwierigkeiten entstehen eher in Zusammenhang mit der Anspache und Nutzung der Datenbanken, sowie einer oft mangelhaften Konfiguration der Seitenauslieferung, nicht jedoch in der Spache PHP selber (also im Compiling und Includieren von Klassen bspw.). Für die allermeisten dieser Probleme gibt es eine Fülle von fertigen Lösungen, die, neben einer sauberen Programmierung, leicht einsetzbar sind. Apropos saubere Programmierung… in diesem Zusammenhang wird immer wieder als Möglichkeit zur Verbesserung der SQL-Queries angegeben, man müsse ja nicht SELECT *... schreiben, sondern es wäre gesünder einzelene Spalten zu matchen. Hallo? Wer fröhlich zehn Mal hintereinander auf * selektiert, der sollte sich vielleicht gar nicht an große Anwendungen herantrauen. 😉

Abschließend aber nocheinmal Brian Fioca dazu:

It turns out that it really is fast and cheap to develop applications in PHP. Most scaling and performance challenges are almost always related to the data layer, and are common across all language platforms. Even as a self-proclaimed PHP evangelist, I was very startled to find out that all of the theories I was subscribing to were true. There is simply no truth to the idea that Java is better than scripting languages at writing scalable web applications. I won’t go as far as to say that PHP is better than Java, because it is never that simple. However it just isn’t true to say that PHP doesn’t scale, and with the rise of Web 2.0, sites like Digg, Flickr, and even Jobby are proving that large scale applications can be rapidly built and maintained on-the-cheap, by one or two developers.

Hab ich ja immer gesagt. 😉

Wir ziehen um

Um mal ein wenig von der Arbeit zu plaudern, Zeit online ist gestern und heute innerhalb des Pressehauses in ein neues, frisch renoviertes Refugium im 2. Stock gezogen. Alles total schön und modern, naja, das Netz und auch der Strom funktionieren noch nicht verlässlich. Die Entwicklungsabteilung (Kollegen und ich) durfte aus Platzgründen und Gründen der nötigen Trennung vom täglichen Wahnsinn der Siteproduktion nicht mitziehen (snüff), sondern ist nur in andere Büros auf dem gleichen Gang umgezogen.

Neues Büro: schöner, heller, freundlicher, besserer Ausblick. Und Netz und Strom funktionieren auch perfekt 😉

Kaffee, schon wieder

Kaffee am morgen vertreibt Kummer und Sorgen. Während sich andere Kollegen morgens schon Würfelmilch antun, stehe ich doch mehr auf eine gute Tasse Kaffee und mit derselben auf. Meine neueste Errungenschaft ist ein netter Senseonachbau, den ich beim Penny für schlappe 19 Euronen geschossen habe. Na sicher, Kaffeepad-Maschinen sind natürlich längst out und ich hätte auch niemals mehr als einen Zwanziger darin investiert, schließlich schmückt eine kleine Espressomaschine meine Küchenbar. Aber die Sache mit den Pads hat etwas, dass die Expressomaschine nicht bieten kann: Geschindigkeit und Bedienbarkeit. Es ist einfach eine Spur komfortabler, einen Pad in die Maschine zu legen, so zwischen Badezimmer und Anziehen und sich dann kurz danach mit einem leckeren Kaffee Crema an den Rechner zu setzen, anstatt mit dem Hochdruckkaffeebereiter die ganze Nachbarschaft zu wecken und dann womöglich noch Milch aufzuschäumen etc.

Geschmacklich kommen mir die Original-Senseo-Pads sehr entgegen. Die haben zwar ihren Preis (umgerechnet komme ich auf 16 – 24 Cent pro Tasse, je nach Angebot), kommen aber von der holländischen Firma DouweEgberts, deren Kaffee ich schon von meinen niederländischen Verwandten kannte (und schätze) und mit der ich einige wunderschöne Kindheitserinnerungen verknüpfe – in Holland vertreiben DouweEgberts nämlich auch wunderbare Süßigkeiten, namentlich Frucht- und Lakritzdrops, die es hier bis heute nicht oder nur selten zu kaufen gibt.

Mein Nachbau produziert Kaffee in den Variationen stark, sehr stark oder zwei Tassen (auch stark). Fürchterlich abgefahren bin ich auf diese Pads mit der sinnlosen Bezichnung „Sidney“, die mit Limonen aromatisierten Kaffee enthalten, was wirklich ausgesprochen gut schmeckt und die möglicherweise dahintersteckende Chemie vergessen lässt. Der neuerdings angebotene Cappuchino ist allerdings für die Tonne, da kann ich nur abraten. Da sollte man lieber wieder selbst zum Aufschäumer greifen.

Das Testergebnis gesamt: es ist eine seltsame Sache, Kaffee in vorgefertigten Portionen zu benutzen, das hat schon etwas industrielles und ist eigentlich nichts für den ökologisch verantwortungsvollen Genießer. Der Geschmack allerdings entschädigt das schlechte Gewissen umgehend. Und das ist mir – Asche auf mein Haupt – morgends zumindest am wichtigsten. Falls jemand bei Penny den Nachbau noch kriegen kann, funktioniert tadellos und lohnt sich. Die dazu angebotenen Kaffeepads von No Name sollte man allerdings direkt dem Kompost zuführen. So geil ist Geiz dann doch nicht.

We’re hiring :)

Falls jemand gerade auf Jobsuche ist: Zeit online sucht eine(n) fähige(n) PHP-Programmierer(in).

Unser Entwicklungsteam sucht zur Verstärkung auf Zeit jemanden, der mit PHP5 und SQL umzugehen weiß. Wir arbeiten an einer größeren Anwendung, die PHP5 und Postgres nutzt, die Ausgabe läuft über XSLT und es wird mit einem XML/RDF-basierten Contentstorage und -managementsystem zusammengearbeitet. Im weiteren Umfeld lauern Zope, Python und manchmal auch Perl.

Die Technikabteilung von Zeit Online arbeitet eng mit allen Abteilungen im Hause zusammen, besonders natürlich mit den Kollegen von der Online-Redaktion, gut ausgeprägte social skills die einen befähigen auch mal einem Nicht-Techniker komplizierte Abläufe näher zu bringen und im Team zu arbeiten, sind also unbedingt mitzubringen.

Von uns aus kann’s eigentlich direkt losgehen, von daher schnell bewerben! Genauere Informationen gibt es bei Peter Buhr.

Designzzz 2.0

Web 2.0, das Buzzword mit der längsten Halbwertzeit der letzten Jahre. Allein schon deswegen könnte an der Sache etwas dran sein. Nun reicht es aber natürlich nicht aus, seine Site Web2.0mäßig umzubenennen (Webzprokandazz, zeitz.de, …), sodern man muss sich natürlich auch designmäßig an den Trend halten. Für die geplagten Consultants und Skriptkiddies findet man unter Design for 2.0 alle Regeln, die bitte schön einzuhalten sind, wenn man up2date sein will.

Ach ja, ein paar Funktionen sollte eine solche site auch noch habn… nebenbei bemerkt. 😉

Mein Firefox hustet schon wieder

Seit einigen Wochen kämpfe ich mit meinem Firefox den täglichen Kampf um Arbeitsspeicher. Seit Firefox 1.5 – das ist ein bekanntes Problem – nimmt es unser aller Lieblingsbrowser (und wohl auch Thunderbird) mit der Speicherverwaltung leider nicht so genau und beginnt nach relativ kurzer Zeit Arbeitsspeicher zu fressen (die Bugliste mit Memory-Leaks ist ausnehmend lang). Es ist ja nicht so, dass hier keine Speicherpower zur Verfügung stehen würde (1.5 Ghz PowerPC G4, 1 GB RAM), aber wenn der Browser den ganzen Arbeitstag läuft, dann wird spätestens am nachmittag das Laden von Webseiten zu einer Sat1-Ball-Orgie, will sagen, man könnte das OSX-Ladezeichen auch durchaus gegen die gute alte Sanduhr ersetzen, das wäre wenigstens ehrlich.

Nun sind ja schon seit einiger Zeit diverse Fixes im Umlauf, ich musste jedoch feststellen, dass mir diverse einzelne Änderungen über about:config erstmal nicht geholfen haben. Es waren eine ganze Reihe von Änderungen nötig, um das weltweite Warten wieder unter Kontrolle zu bringen. Im The one and only „Memory usage“ thread & FQA in den MozillaZine Foren kann man gesammelt alle Verdächtigen Speicherfresser (Einstellungen, Plugins) und Tricks finden. Natürlich ist es sinnvoll, schlecht programmierte Plugins zu entfernen, und optimale Konfiguration ist auch etwas schönes, aber das Problem liegt letztendlich doch beim Firefox selbst. IMHO wurde da ein wenig schlampig gearbeitet (BTW: ich hasse garbage collection genauso wie ihr, Jungs ;). Die Erweiterbarkeit des Firefox ist dabei gleichzeitig ein Problem, da es offenbar (Überraschung?) Plugins gibt, die gelinde gesagt speichergierig sind.

Zusammengefasst: mein Firefox tut es wieder, erstmal. Ich habe dazu die browser.cache.memory.capacity festgelegt (8MB) und diverse Plugins gelöscht, die ich sowieso nie benutzt habe. Schweren Herzens habe ich mich auch von einigen Plugins getrennt, die ich zwar benutzte, die aber als verdächtig einzustufen sind (Session Saver, Forecast Fox). Schätze eine Neuinstallation wäre schneller gegangen.

Wer jetzt »benutz‘ doch IE« postet, wird mit Katzenscheisse beworfen… 😉

Versionen

Schon ein wenig nerdig, aber durchaus nicht uninteressant: Andy Roberts startet »the delta web«, ein Projekt, an dessen Ende ein XML-Dialekt herauskommen soll, der die Veränderungen von Dokumenten im Web beschreibt.

The motivation for delta is that there’s no simple way to describe how things change on the Web. I know that’s sort of a generalization. However, people create documents and publish them to URI’s, and then, when they change these documents, they usually just overwrite the originals, or create new versions with new URI’s. To see what’s changed, others have to compare versions to find “diffs”, or else look for time stamps within documents to get hints on when individual entities were added or removed.

Andy Roberts

Aus der del.icio.us-Inbox via Jon Udell’s Links