Vor ein paar Wochen hatte ich die wunderbare Idee eine Web-Applikation mit Rails zu bauen, die Code-Schnippsel tag-basiert sammelt. Genau das Richtige, dachte ich, um kleine Shell-Tricks, configure-Anweisungen, Ruby/Python-Idioms und sowas zu verewigen. Das Wiki, welches ich momentan dafür benutze ist nicht ganz das optimale.
Nun muss ich zugeben, die Idee ist mir nicht nachts vor dem Einschlafen gekommen, sondern beim Anschauen dieses Rails-AJAX-Videos (Quicktime) von Sam Stephenson. Insofern ist es auch leider nicht meine Idee, aber da Sam die bei ihm Elements genannte Applikation anscheinend nicht veröffentlichen möchte hätte ich es ja wenigstens implementieren können.
Aber selbst dazu kam ich nicht, denn Peter Cooper — offensichtlich von der selben Quelle inspiriert — hat das mal eben schnell in Rails realisiert und veröffentlicht. Sein Snippets genannter Dienst lief zuerst nur zentrale Lösung bei ihm auf dem Server, mit der Version 0.2 hat er aber auch den SourceCode veröffentlicht. Und das läuft jetzt perfekt bei mir.
So kommt man mit Ruby on Rails in wenigen Wochen von einer genialen Idee zur funktionsfähigen Applikation. Ohne was zu tun. Wenn das nicht mindestens eine Verzehnfachung der Produktivität ist, dann weiß ich auch :)
Jetzt, wo die Serien-Saison in den USA zu Ende ist und alle guten Serien in die Sommerpause gehen bleibt als einziger Lichtblick Six Feet Under. Ich hoffe die fünfte und letzte Staffel kann meine hohen Erwartungen erfüllen, der Trailer (Quicktime) ist auf jeden Fall sehr cool. (Kann mir jemand sagen wie das Lied heißt?)
Interessante Idee: Die lange Wartezeit eines im Prinzip fertigen Buches bis zum Print-Release durch ein Beta-Release zu verkürzen. Besonders bei so heißem Scheiß wie Ruby on Rails macht das natürlich Sinn. Jeder lechzt nach guter Dokumentation. Auch wenn es davon auf der Website, im Wiki, in der Mailingliste und im IRC-Channel viel gibt, man muss es sich halt zusammensuchen und der Zusammenhang geht einem — gerade am Anfang — gerne verloren.
Von der Idee, angeregt und gepitcht von DHH und 37signals bis zur pragmatischen (Sorry, den konnte ich nicht auslassen) Umsetzung der Pragmatic Programmers sind nur wenige Tage vergangen.
Jetzt lade ich gerade das PDF herunter und bin gespannt was mich erwartet.
Update: Das erste Überfliegen und Querlesen war sehr vielversprechend. Das Buch ist an Einsteiger und Fortgeschrittene gerichtet. Es beginnt mit einem umfangreichen Walkthrough-Tutorial, das fast alle Ecken von Rails behandelt (auch Testen). Im quasi zweiten Teil des Buches gibt es dann Detail-Infos über alle Komponenten von Rails, inkl. Kapiteln über Ajax, Security und Deployment (lighttpd). Viele Beispiele und gut lesbar mit netten Kommentaren von David über das Warum.
Das “Beta” merkt man vor allem am Design und Textsatz, teilweise fehlen noch einige Abschnitte. Aber es lohnt sich durchaus das Buch/PDF jetzt schon zu kaufen, wenn man einen schnellen Einstieg in Rails sucht.
Auch wenn die kürzlich veröffentlichte neue Version des VPN Clients angeblich mit Tiger funktionieren soll, wollte es bei mir nicht. Es gab immer ein Timeout des cvpnd. Im Apple Diskussions-Forum wird ein Workaround besprochen, der bei mir funktioniert hat, so dass ich an der Uni endlich wieder ins Internet komme.
Bin gerade am nachforschen ob auch die bessere Lösung, den “Default Domain Name” auf der Server-Seite zu setzen, etwas bringt.
Update: Japp, nachdem der Admin im VPN Server den “Default Domain Name” gesetzt hat, funktioniert der VPN Client jetzt auch in der Standard-Installation einwandfrei.
XML war und ist in Python ein Rough Spot (neben WebApplication-Frameworks). Nichts mit “There’s Only One Way To Do It”. Die XML-Komponenten der Standard-Library sind eher ein Witz und man kann deshalb aus vielen alternativen Implementierungen auswählen. Da hat man dann meistens die Wahl zwischen Pythonic aber langsam/featurearm und seltsamer API, dafür aber schnell und mächtig. Dazu kamen seltsame Benchmarks–Fights in der Community.
Auf der einen Seite hat mir libxml2 gefallen, hauptsächlich wegen der Empfehlung von Mark Pilgrim, der muss es ja wissen :) Auf der anderen — pythonic — Seite hat es mir ElementTree sehr angetan. Nachdem ich das benutzt hatte wollte ich nie mehr Java-Code schreiben der mit XML zu tun hat. ElementTree kann aber kein XSLT und nur eingeschränkt XPath und so musste ich halt mehrere Libraries verwenden, was mich doch gestört hat.
Dank Martijn Faassen hat sich das jetzt aber geändert. Denn der hat einen extrem kühlen Wrapper geschrieben, mit dem man libxml2/libxslt über die ElementTree-API ansprechen kann. lxml ist zwar teilweise noch etwas buggy (aufgrund des Memory-Managements von libxml), aber gut benutzbar und ein schöne und praktikable Lösung um in Python mit XML zu arbeiten.
Ich konnte den mit ElementTree geschriebenen Teil eins-zu-eins mit lxml weiter benutzen und hab jetzt eine Abhängigkeit weniger in meinem Projekt.
Und deshalb liegt jetzt unvernünftigerweise ein kleiner iPod shuffle auf meinem Schreibtisch.
Damit ich wieder mehr jogge: mein 2G-iPod ist mir zu schwer und stürzt häufiger mal ab und die Ohr-Stöpsel vom iPod sind die einzigen die beim laufen nicht rausfallen.
Der große Vorteil von einem iPod ist die iTunes-Integration, wundert mich, dass man das noch nicht reverse engineered hat, kann doch nicht so schwer sein. Der große Nachteil ist Apple: Warum man einen iPod nicht von zwei unterschiedlichen Rechner beladen kann wird mir auf ewig ein Rätsel bleiben.
Ein weiterer Nachteil: Das Ding ist zu groß. Ja, er ist klein, leicht und weiß, aber wenn ich den shuffle am iBook einstecke, ist der daneben liegende USB-Port nicht mehr benutzbar, daran hätte man doch denken können. Und verdammt, mein iBook hat ja nur USB 1.1 :)
Nichtsdestotrotz ist er fürs Joggen ideal, nur schade das es nichts Gürtelclip-ähnliches gibt, ich bin kein Fan von Lanyards oder Armbändern.