Stefan Fischerländer’s Blog One Blog Is Not Enough

Viele Rezepte zum Essen, Kochen - und auch für SEO

April 28th, 2009

Ich arbeite ja häufig als SEO-Consultant. Allerdings kann ich nur selten erzählen, für wen ich gerade tätig bin. Manche Auftraggeber sind da etwas eigen. Anders bei meinem aktuellen Projekt; seit dem Sommer 2008 berate ich den Heinrich Bauer Verlag in Hamburg beim Aufbau seines Rezeptportals Lecker.de, das nach langer Anlaufphase Ende Februar endlich gelauncht wurde. Das Projekt fasst die gesammelten Rezepte der Redaktionen der Zeitschriften Kochen und Genießen, Rezepte Pur, Tina Koch- und Backidee sowie Lecker zusammen. Besonders gelungen finde ich die Rezeptsuche sowie das übersichtliche Rezept-Register.

Doch auch als SEO gab’s einiges zu lernen in diesem Projekt. So war mir zwar auch vorher schon bewusst, das SEO heute eher Unternehmensberatung als technische Trickserei ist. Trotzdem macht ein monatelanges Projekt in einem der größten Verlage Deutschlands diesen Punkt nochmals ganz deutlich, den leider viele Kunden noch immer nicht verinnerlicht haben. Gerade kleinere Kunden erwarten von einem SEO mehr “Schwarze Google-Magie” als Hilfe zum Bau klar strukturierter und damit erfolgreicher Webprojekte. Die Bauer Digital KG, die lecker.de betreibt, hat Suchmaschinenoptimierung von Anfang als wesentlichen Teil des Projekts begriffen. Damit ist die Website zwar heute noch nicht perfekt optimiert, aber wir sind auf einem guten Weg dorthin.

Renaissance Hotel Hamburg oder: Marriotts “Kundenservice”

April 16th, 2009

In der Hamburger Innenstadt gibt es ein sehr schönes Hotel, das Renaissance Hotel Hamburg. Das ist in einem schön renovierten alten Gebäude untergebracht, die Aufenthalte dort waren bislang einfach nur angenehm. Da ich in den kommenden Wochen insgesamt neun Nächte in Hamburg verbringen werde, wollte ich per E-Mail dazu ein Angebot anfordern.

Die erste Hürde dazu wäre noch vor ein, zwei Jahren gewesen, via Google die offizielle Homepage zu finden. Inzwischen ist Google aber so gut geworden und spuckt problemlos www.renaissance-hamburg.com aus. Doch diese schöne URL leitet auf eine marriott.com-Unterseite weiter. Aha, wieder etwas gelernt: Das Hotel gehört zur Marriott-Gruppe. Auch okay.

Nun nur noch die Kontakt-E-Mail finden. Aber da kommt die nächste Hürde: Auf der rein englischsprachigen Website findet sich keine Hotel-E-Mail. Hmm. Ich könnte per Telefon reservieren. Aber ich möchte erst ein Angebot vorliegen haben, schließlich gibt es noch andere schöne Hotels in Hamburgs City. Und ein Telefonat mit dem vermutlich englischsprachigen Callcenter von Marriott ist auch nicht das, wonach mir der Sinn steht.

Nach etwas Rumgeklicke finde ich ein Kontaktformular, das ich mit meinen Anforderungen befülle. Schon nach nicht einmal zwei Stunden erhalte ich eine ausführliche Antwort. “Aha, geht doch”, so ist mein erster Gedanke. Aber denkste, geht doch nicht. Da schreibt mir doch ein Steve P. McQuinn Jr. - vermutlich der Name des Marriott-E-Mail-Robots - diese schöne Antwort:

Due to occasional changes in rates and availability, we cannot quote rates or book reservations through email. We recommend using the Marriott.com reservation feature as a convenient way to check rates, availability, and room information

Okay, ich bin nicht blind. Dieses Online-Formular ist dick und fett auf der Hotel-Homepage eingeblendet. Aber ich bin Kunde, also König. Ich hab keine Lust, mir für drei verschiedene Termine die Raten herauszusuchen und zusammenzurechnen! Und ist es wirklich zu viel verlangt, mit einem deutschen Hotel in deutsch kommunizieren zu können?

Schade, Renaissance Hotel, werde ich wohl doch woanders nächtigen müssen.

Update:
Auf meine deftige Beschwerdemail hin kam nun die Antwort, dass es ihnen leid täte, sie könnten das aber nicht anders machen. Und dann werden sie richtig hilfreich: “For your convenience, we have included steps to guide you through booking a package rate online below.” Darunter befindet sich dann eine Schritt-für-Schritt-Anleitung mit sage und schreibe zehn Punkten! Dabei möchte ich doch nur ein Angebot; das schafft jedes 3-Sterne-Popel-Hotel innerhalb eines Tages.

Die re:publica - ein voller Erfolg?

April 5th, 2009

Irgendwie hatte ich gedacht, dass die Einschätzungen von Bloggern zur Blogger-Konferenz re:publica euphorischer sein würden. Aber das, was ich dazu so gefunden habe, klingt wie eine bitterböse Abrechnung.

Ich sehe keine Veränderung. Ich sehe nur ein paar älter gewordene Männer, die eine Weile gute Presse hatten, weil da ein paar Freunde oder Nachplapperer sassen.

Die Shifttaste hilft nicht bei alten Männern (Blogbar)

Ein Bekannter meinte zu dem Programm nur trocken, er würde dann mal sein Blog einstampfen. Mit solchen Leuten wolle er nichts zu tun haben.

Fefes Blog

Da erlebt die Medienbranche gerade einen riesigen Umbruch, hat einen kleinen nuklearen Winter hinter sich - und wer kann davon nicht profitieren? Die Berliner All-Star-Blogger mit Anhang.

Das Versagen der Berliner All-Star-Blogger und deren Anhang (F!XMBR)

Vor dem Friedrichstadtpalast schien sich der Teil der Bloggerszene zu sonnen, bei dem nicht mal dann ein „Shift“ stattfindet wenn er vom Stuhl geschubst wird.

re:publica 2009 Tag 1 (Adrians Blog)

Deutsche Blogs und der Umbruch der klassischen Publikationsformen - da sitzen sie: männlich, um die vierzig, nicht unähnlich in ihrer Statur. Dröge, leicht gelangweilt und wenig fertil fletzt sich die Revolution in den Podiumssesseln.

Helden in Hosenträgern (derFreitag)

Statement auf dem Podium am Ende der 1. Session: Blogs haben Potential.

Kommentar bei Blogbar

Damit sollte alles gesagt sein.

Wieder mal Zeit für Perl

March 2nd, 2009

Heise hat einen wunderschönen Artikel über die Zukunft von Perl veröffentlicht. Neben dem unvermeidlichen “Perl 6 kommt sicher bald und wird ganz toll”-Abschnitt, geht die Autorin Susanne Schmidt darauf ein, dass es um Perl derzeit zwar ruhig ist, aber trotzdem viele große Websites weiterhin Perl einsetzen. Und natürlich fehlt auch der obligatorische Seitenhieb auf Python nicht:

“There is more than one way to do it” hat eine ganze Kultur geprägt, die man entweder liebt – oder aber hasst und zu Python wechselt.

Apropos Python. Eben laufen hier zwei sechs Monate alte Python-Scripte, die ich seit der Erstellung vor einem halben Jahr nicht mehr angesehen habe - aber ich habe sie auf Anhieb wieder verstanden. Eine klare Syntax ohne $, @, %, $_, {} oder ; hat schon was. Und falls ich in Python doch etwas nicht auf Anhieb verstehe, kann ich’s in IDLE ausprobieren. perl -de 42 ist da nicht wirklich ein Ersatz; mein Perl Workspace schon eher. Aber trotzdem ist IDLE die deutlich angenehmere Variante. Und auch in Perl 6 scheint es keinen wirklichen Ersatz zu geben.

Wer noch mehr über den aktuellen Stand von Perl lesen möchte, dem möchte ich noch Healthcheck:Perl ans Herz legen. Und wer’s noch nicht getan hat, sollte sich schleunigst Higher-Order Perl runterladen. Ein fantastisches Buch.

PHP Kalenderwoche: Kein Bug, nur miese Dokumentation

January 30th, 2009

Die PHP date()-Funktion ist ein wunderbares Tool, um mit Datumsangaben zu rechnen. Für ein Projekt brauchte ich nun eine Funktionalität, die mir zu einem Datum Jahr und Kalenderwoche in der Form “YYYY-WW” ausgibt. Eigentlich alles ganz einfach mit date() - “Y” steht für die vierstellige Jahreszahl, “W” für die zweistellige Kalenderwoche entsprechend der ISO-Definition. Und entsprechend funktioniert das auch:
>>> date("Y-W", strtotime("2006-12-31"))
'2006-52'

Doch was passiert, wenn das Jahresende bereits zur Kalenderwoche des neuen Jahres gehört, wie etwa beim Jahreswechsel 2008 auf 2009:
>>> date("Y-W", strtotime("2008-12-31"))
'2008-01'

Stimmt nicht ganz, denn der 31.12.2008 liegt nicht in der ersten Kalenderwoche des Jahres 2008, sondern in der 1. KW 2009. Leider zeigte mir die PHP-Dokumentation keinen Hinweis auf das Problem - was daran lag, dass ich die deutsche Dokumentation hatte. In der englischen Beschreibung findet sich das Format “o” (”kleines Oh”), das die Jahreszahl nach der selben ISO-Norm wie die Kalenderwoche angibt.
>>> date("o-W", strtotime("2008-12-31"))
'2009-01'

Und siehe da, die Ausgabe ist nun wie erwartet. Das Format “o” wurde übrigens erst mit PHP 5.1.0 eingeführt.

Panfu und die Datenarmut

December 16th, 2008

Gestern wurde der 25. Geburtstag des Grundrechts auf informationelle Selbstbestimmung begangen - mit überraschend geringem Widerhall in der deutschen Bloggerszene, nur mal so nebenbei bemerkt. Und heute stolpere ich über ein “wunderbares” Fundstück in Sachen informelle Selbstbestimmung. Das Blog Deutsche Startups wählt jährlich das Startup des Jahres. Bei der diesjährigen Abstimmung landete auf Platz 2 die Spiel- und Lernplattform für Kinder namens Panfu. Neugierig geworden, was sich dahinter verbergen mag, klick ich mich da durch und finde diesen Anmeldescreen:

Panfu Anmeldebildschirm

Wer ein Angebot für die Kleinen macht, muss auf Datenschutz ganz besonders achten, das haben die Macher schon verstanden und schreiben als eine von mehreren Regeln, dass die Kids keine persönlichen Daten preisgeben sollen. Aber was fragen die Sitebetreiber zuvor alles ab? E-Mail-Adresse, Geschlecht und sogar das Geburtsdatum. Sind das etwa keine persönlichen Daten? Was versteht Panfu denn dann unter persönlichen Daten von Kindern? Kreditkartennummern? Sexuelle Vorlieben?

Ich verstehe ja, dass ein Sitebetreiber gerne fest angemeldete Nutzer sammelt. Ist gut für einen Exit, irgendwann. Aber um Kinder hier online spielen zu lassen, ist es bestimmt kein Muss; das würde auch in einem Mitgliederbereich ausreichen. Die Motivation hinter der Geschlechterfrage kann ich ebenfalls nachvollziehen, nötig ist es aber ebenfalls nicht. Kids sind durchaus in der Lage, die Spiele anzuklicken, die sie interessant finden; da braucht es keine explizite Vorfilterung nach Männlein und Weiblein. Den Vogel aber schießt Panfu für mich mit dem Geburstdatum ab: Diese Abfrage widerspricht an sich schon dem Gebot der Datenarmut, auf einer Kinderseite halte ich es aber für total unangebracht. Um den Kindern Spiele anzuzeigen, die für ihr Alter geeignet sind, würde eine Angabe des Geburtsjahres absolut ausreichen.

Auch 25 Jahre nach dem Grundrecht auf informelle Selbstbestimmung bleibt noch viel zu tun. Und es wäre nicht falsch, gerade bei den Kleinen besonders darauf zu achten.

Perl-Guru chromatic: “CPAN is world of trouble”

December 11th, 2008

Ich habe hier schon ein paar Mal das Sakrileg begangen und über Perls CPAN-System gelästert. Denn viel zu oft klappt die Installation eines CPAN-Moduls nicht; nicht nur unter Windows, aber da besonders häufig. Nun hat chromatic, einer der führenden Perl-Entwickler, genau in die gleiche Kerbe geschlagen:

This sounds odd, but the CPAN installation system is an aggregation of fixes upon fixes. (…) If you don’t have root access to the box, or you don’t have a C compilation environment, or you don’t have a compatible make utility installed, or you don’t have network access, or you don’t have the Perl headers installed, you may have a world of trouble.

Oh wie wahr. Genau so wahr ist übrigens sein Plädoyer für ein mod_perlite-Modul, das Perl fürs Web genau so einfach und effizient macht wie das mod_php für PHP tut. Hoffentlich bleibt’s nicht nur bei schönen Wünschen zum bevorstehenden 21. Geburtstag von Perl.

Liebe zu JavaScript?

December 10th, 2008

Manche Programmierer fühlen sich ja sehr zu “ihrer” Programmiersprache hingezogen. Und im Überschwang der Begeisterung für ein elegant gelöstes Problem kommt schon mal ein “Ich liebe X” über die Lippen. Und für X mag man dann Perl einsetzen, oder Python, gerne auch Lisp oder vielleicht Smalltalk. Sogar Pascal kann ich mir vorstellen.

Der PHP-Blogger Harald Lapp hat nun seine Liebe zu JavaScript erklärt. Zu JavaScript! Wie kann jemand JavaScript, die weiland von Netscape zusammengeschusterte Browser-integrierte Sprache, lieben? Und wie kann diese Liebe erklärt werden mit den Worten: “Ich habe noch keine Programmiersprache kennengelernt, in der es sich ähnlich intuitiv entwickeln lässt.” JavaScript und intuitiv? Das ist wie George W. Bush und UNO, wie CSU und Umweltschutz, wie … - lassen wir das. Doch die Lobpreisung geht noch weiter: “Die Sprache ist absolut logisch aufgebaut.” Ja, in der Tat, die Rede ist noch immer von JavaScript.

Eine derartige Lobeshymne auf JavaScript kann nur ein PHP-gestählter Entwickler verkünden. Klar, wer täglich eine Programmiersprache mit über 5.000 Funktionen im globalen Namensraum bändigen muss, wer array_key_exists() zu tippen hat, wo andere einfach nur x in d schreiben und wer zwar create_function() zur Verfügung hat, diese gefährliche Funktion aber am besten nicht benutzt, dem nehme ich die Liebe zu JavaScript sogar ab. Besser als PHP ist es allemal.

Microsoft liebt Perl doch

December 7th, 2008

Microsoft und Perl, das ist bislang nicht die große Liebe. Zwar gibt es mit ActivePerl eine gut funktionierende Perl-Version für Windows; auch die von ActiveState mitgelieferten CPAN-Module lassen sich problemlos installieren. Doch wehe, der Windows-Perl-Entwickler versucht, ein anderes CPAN-Modul zu laden. Dann trifft ihn der CPAN-Wahnsinn.

Mit Strawberry gibt’s seit einiger Zeit eine neue Perl-Distribution, die Windows-Perl auch in Sachen CPAN-Module möglichst gleichwertig zu Linux-Perl machen möchte. Verantwortlich dafür ist Adam Kennedy. Dieser Adam Kennedy hat nun ein großes “Geheimnis” verkündet:

Microsoft wird jedem CPAN-Autor kostenlosen Zugang zu einer zentral gehosteten virtuellen Maschine geben, die alle wichtigen Windows-Versionen enthält. Damit kann die Perl-Community künftig ohne Aufwand und ohne Kosten die CPAN-Module ausgiebig unter Windows testen.

Sieht so aus, als gäbe es in Redmond doch noch Perl-Anhänger.

Python 3.0 ist da

December 4th, 2008

Python 3.0 ist in der finalen Version verfügbar. Damit haben die Whitespace-Dompteure klar das Rennen gegen die Geschweifte-Klammern-Magier PHP und Perl auf ihren jeweiligen verschlungenen Wegen zur “6″ vor dem Punkt gewonnen. Die ausführlichen Änderungen in Python 3.0 sind in einem schönen Übersichtsartikel zusammengefasst:

  • Aus dem print-Statement mit all seinen Raffinessen wird in 3.0 eine schnöde Funktion.
  • map(), filter() und zip() geben Iteratoren zurück.
  • Die dict-Methoden liefern Views statt Listen; entsprechend werden dict.iterkeys(), dict.iteritems() and dict.itervalues() nicht mehr unterstützt.
  • Vergleiche (und daraus abgeleitet: die Sortierung) können nur noch auf vergleichbaren Werten durchgeführt werden. 1 < '' gibt einen TypeError.
  • Die Unicode-Behandlung wurde komplett verändert. Anstatt Unicode-Strings und 8-Bit-Strings gibt es nun nur noch Unicode-Strings (Typ str) und Binärdaten (Typ bytes). Diese beiden Typen sind nicht miteinander kompatibel, sondern müssen explizit ineinander umgewandelt werden.
  • Der String-Formatierungsoperator % ist noch vorhanden, wird aber mit 3.1 als deprecated eingestuft.
  • Diverse Syntax-Änderungen
  • Diverse Änderungen der Standard-Library

Alles in allem genügend Änderungen, um den Versionssprung auf 3.0 zu rechtfertigen - und um Scriptautoren einige Hausaufgaben bei der Umstellung alter Scripte zu geben. Insbesondere die komplette Änderung in Sachen Unicode und die damit zusammenhängende Überarbeitung aller Stellen in den Scripten, die Text bearbeiten, kann einen gehörigen Aufwand auslösen. Und ähnlich sieht es dort aus, wo intensiv mit Dictionaries und Listen gearbeitet wurde.

Aber trotz aller Änderungen scheint Python auch Python zu bleiben. Perl 6 hingegen soll ja eine mehr oder weniger neue Sprache zu werden.