Vor nicht allzulanger Zeit habe ich über eine Methode geschrieben, mit der man sehr einfach sprechende URLs in Ruby on Rails einbauen kann. Dabei wird etwas gecheatet, denn die ID über welche die eigentliche Referenzierung läuft ist noch ein Teil der URL. Wie sieht es aber aus, wenn man die ID auch noch loswerden will?
Vorweg: Dieser Artikel ist kein Tutorial dazu, sondern viel mehr ein Abwägen des Für und Widers, denn das Erzeugen und Verarbeiten von richtig cleanen URLs ist mit einem Aufwand verbunden, welcher aus meiner Sicht den Wert des Nutzens übersteigt.
29. März 2007
Rails: Sind echte Permalinks es wert?
24. März 2007
BarCamp Hamburg – take the poll
Kurze Anmerkung, da es für einige der geneigten Leser von Interesse sein dürfte: Beim BarCamp Hamburg ist die Organisation mittlerweile so weit, dass man über einen Termin abstimmen kann. Zur Auswahl stehen der 9./10. Juni und das darauf folgende Wochenende 16./17. Juni. Also fleißig mitmischen, wenn ihr dabei sein wollt – dann haben wir bald das erste BarCamp hier im hohen Norden!
22. März 2007
wevent goes beta!
Nach wieder einmal langer aber nicht vergebener Entwicklungszeit ist es nun wieder soweit ein neues Projekt zu präsentieren!
Es hört auf den schicken Namen wevent und ist ein wie wir es nennen kollaborativer Eventkalender – das klingt nicht nur nach ordentlich Web2.0, sondern auch schön hochtrabend
Zusammen mit Sören habe ich die letzten Monate daran gearbeitet und heute ist es soweit und wir möchten euch einladen, die Betaversion anzugucken, zu testen, gerne auch intensiv zu nutzen und uns eure Meinung zu sagen.
Es ist noch nicht fertig (welches Webprojekt wird das je?), dennoch schon ausgereift genug, um dies und das damit anzustellen – beispielsweise eigene Events einzutragen, sich die von befreundeten Nutzern angucken und so auch Sachen zu entdecken, die für einen selbst ganz interessant sein könnten – give it a go
Wer mag kann sich auch erstmal ein schönes kleines Einführungs-Video ansehen.
18. März 2007
Starterkit Test Driven Development mit Rails
Rails macht es einem sehr leicht, Tests zu schreiben und diese regelmäßig auszuführen – geht man einen Schritt weiter und schreibt diese Tests noch bevor man die von ihnen geprüpfte Implementierung schreibt, so nennt sich das testgetriebene Entwicklung – hier ein kleines Starterkit dafür.
16. März 2007
More on OpenID
Kleiner Hinweis zum Wochenende: Es gibt mittlerweile ein deutsches Blog zu OpenID, welches bisher ein paar gute Einführungsartikel beinhaltet und das in naher Zukunft sicher noch sehr wachsen wird. Ich hab es heute morgen entdeckt und bin dort über den Artikel der OpenID Verbreitung in Deutschland gestoßen, welche laut OpenID Directory recht spärlich ausfällt.
Das hat mich gleich dazu veranlasst, das OpenID Plugin für Wordpress zu installieren – zehn Minuten Sache und ab heute könnt ihr euch dann auch alle schön per Identity URL anmelden um Kommentare zu posten (und für mich voten, weil das toll ist, dass ich jetzt auch enabled bin).
14. März 2007
OpenID Screencast
Mister OpenID – Simon Willison – hat wieder zugeschlagen und nach seinem How to use OpenID Screencast (kurze Einführung, ca fünf Minuten) eine ausführlichere Version rausgebracht: Das Video The Future of OpenID ist ca. 35 Minuten lang und beinhaltet eine ausführliche Einführung mit Auflistung der Vorteile und Möglichkeiten, die OpenID bietet.
Besonders interessant ist der relativ kurze Teil zur Verbindung mit Microformats, wo er auf das Potential eingeht, Freundeslisten bei verschiedenen Anbietern über eine Verbindung von Identity-URL und XFN zu importieren und zu managen. Sehr gut ist auch die Idee der Social Whitelist, über die man Dinge wie Blogspam reduzieren könnte…
Wer sich also noch nicht mit OpenID auseinandergesetzt hat, sich aber dafür interessiert, dem sei dieser sehr gut gemachte Screencast nahe gelegt. Das Thema wird noch richtig nach vorne gehen – eine schöne und relativ einfach zu implementierende Technologie, in wevent haben wir es auch schon drin
13. März 2007
Geeken in der foo->{bar}
Gestern war es mal wieder so weit und ein illustrer Haufen aus Bremen versammelte sich zum örtlichen Geektogether. Nachdem wir uns das letzte Mal auf dem vorderdeck sonnen durften, entschlossen wir uns für diese Sitzung in der allseitsbekannten foo->{bar} niederzulassen.
8. März 2007
Rails: Permalinks für Modelle
Wieder eine herrlich einfache Sache mit großer Wirkung: Um Permalinks – bzw. sprechende URLs – für seine Modelle einzubauen ist nur eine Methode nötig:
def to_param "#{id}-#{username.gsub(/[^a-z1-9]+/i, '-')}" end
In diesem Fall haben wir ein User-Modell, für welches die Methode to_param ganz einfach einen String mit der ID und dem Usernamen (bspw. 1-Dennis) zurückgibt – mehr muss man im Grunde gar nicht tun, da Rails den Rest handhabt.
Where the magic happens…
Der Schlüssel zum Erfolg liegt darin, immer die ID des Modells als ersten Teil der URL zu haben – der restliche String spielt keine Rolle, kann jedoch für Suchmaschinen sehr relevant sein. Wenn wir das Modell nun im View beispielsweise so verlinken
<%= link_to @user.username, { :action => :show, :id => @user) %>
wird Rails bei der Generierung der Route die to_param Methode des Users aufrufen, welche standardmäßig die ID des Modells zurückgibt. Da wir die Methode allerdings überschrieben haben, wird der von uns zurückgegebene Wert genommen. Wichtig dabei ist, dass die ID im View nicht direkt per :id => @user.id übergeben wird, da Rails sich sonst mit der ID begnügt und to_param nicht mehr aufruft.
Rails-intern wird beim Verarbeiten der URL der String, welcher laut Route die ID enthält (in unserem Fall 1-Dennis) in einen Integer umgewandelt – dabei geht der nicht-numerische Teil verloren und es bleibt nur die ID des Modells zurück. Daher ist es unter anderem auch möglich, dass sich beispielsweise der Name des Users ändern kann, ohne Auswirkungen auf bereits indizierte URLs zu haben: Es kommt nur auf die ID an, 1-Dennis ist also das gleiche wie 1-dbloete und so weiter…
7. März 2007
Das Betamagazin ist da
Nach langer Wartezeit ist es nun endlich soweit und die erste Ausgabe des Betamagazins ist erhältlich. Die Ausgabe widmet sich ganz dem Thema Anfang und beinhaltet interessante und vielfältige Artikel dazu auf insgesamt 76 werbefreien und stylisch gestalteten Seiten. Das Magazin kann man für 16,50 EUR bei lulu bestellen – nicht grade günstig, aber dafür wie gesagt werbefrei. Leider ist die print on demand Produktion bei lulu so teuer, daher bietet pheedelity das Magazin auch (fast) zum Selbstkostenpreis an.
In unserem sechsten Podcast hatten wir vorab schon etwas über das Magazin berichtet – eine wie Sören und ich finden tolle Idee, die hoffentlich guten Anklang finden wird. Wer das Magazin bestellt, wird darin auch eine überarbeitete Version meiner beiden Artikel Microformats und Microformats und die Bots finden – Kaufen kaufen, marsch marsch
6. März 2007
OpenID Login delegieren
OpenID ist auf dem Vormarsch, immer mehr Anwendungen unterstützen das Verfahren und wir als Nutzer können wahrscheinlich schon schneller als erwartet die Annehmlichkeiten des Single Sign-On nutzen. Eines der Probleme, welche Benutzer einer OpenID in Zukunft vielleicht haben könnten wäre der Fall, dass ein lang genutzer Identity-Provider seine Pforten schließt und man somit auch seine Identity-URL verliert.
Eine einfache Lösung dies zu umgehen sind zwei Zeilen HTML, welche man auf seiner eigenen Website einbinden und diese fortan als Identity-URL nutzen kann:
In Zeile eins gibt man die Server-URL des Identity Providers an und Zeile zwei enthält die Identity-URL, mit welcher man dort registriert ist. Nun kann man die eigene Domain – auf welcher diese Zeilen eingebunden sind – als Identity-URL nutzen und muss bei einem Wechsel des Identity-Providers lediglich die dort geltenden URLs in der eigenen Seite eintragen. Die eigene Domain als OpenID ist nebenbei auch schicker, als etwas wie mein_name.myopenid.com
Weiteres dazu findet sich in der OpenID Authentication 1.1 Spezifikation.
