Ruby on Rails Bootcamp der Big Nerd Ranch – Tag 5

Tag 5 – 9:03 Uhr:

Der letzte Tag. Schade eigentlich, wo ich mich doch gerade erst langsam zurecht fand. Jetzt heisst es fleissig zu Hause coden coden coden. Ich werde sicherlich in mehr oder weniger regelmässigen Abständen darüber berichten und die Usergroup mit Fragen quälen.

Am letzen Tag haben wir noch das Thema Performance angesprochen. Rails bietet ein paar Mechanismen für Caching usw. Da das Hauptaugenmerk von Rails aber ist dem Entwickler das Leben leichter zu machen gibt es da nicht so viel. Durch die MVC-Architektur lassen sich Rails-Anwendungen aber im Prinzip beliebig skalieren. Anhand des Shoutboards haben wir die Request per second untersucht und welchen Einfluss die Caching-Mechanismen darauf haben.

Das letzte was uns Charles noch näher brachte war Deployment mit Capistrano. Wirklich coole Sache. Ein Befehl und die Anwendung wird automatisch auf dem Produktions-Server bereitgestellt. Vorher ist natürlich noch ein bisschen Konfiguration nötig, die sich aber in Grenzen hält.

Zum Abschluß zeigte uns Charles dann noch ein paar seiner ganz eigenen Vorgehensweisen, Lieblings-Plugins usw.

Mit dem Mittagessen, einem schönen Zertifikat und bester Laune endete damit diese wundervolle Schulung. Mein Fazit – jeder der sich für Rails interessiert und das nötige Budget hat kann bei dieser Schulung zur dazu lernen. Absolut empfehlenswert!

nVidia 6600 des Toshiba Tecra S2 auf Ubuntu 6.10

Zwar erkennt Ubuntu die GeForce 6600 wunderbar, aber so richtig glücklich war ich damit nicht. Zum einen war alles sehr langsam (fehlende OpenGL-Unterstützung) und zum anderen nur in 16bit Farbtiefe. Allerdings ließ sich das Problem recht einfach lösen. Man lädt einfach bei NVidia die aktuellen Treiber herunter. Anschliessend wechselt man mit CTRL-ALT-F1 in ein Textterminal und loggt sich ein. Mit

sudo /etc/init.d/gdm stop

beendet man den X-Server und installiert anschliessend mit dem Befehl:

sudo sh <treibername.run>

den heruntergeladenen Treiber. Evt. will der Treiber noch ein bissel Kernel-Module generieren, was man ihn einfach machen lässt. Danach kontrolliert man noch die x11.conf im Verzeichnis /etc/X11/

sudo nano /etc/X11/xorg.conf

ob bei DefaultDepth auch eine hinreichend hohe Farbtiefe angegeben ist (hier 24 für 24bit). Falls nicht ändern und Datei speichern. Zum Abschluß nur noch den X-Server neu starten.

sudo /etc/init.d/gdm start

Nun solltest Du einen ordentlichen Desktop haben ;-)

Geschenke! Dankeschön an Christine von ti-s

Don Camillo und Peppone DVD Set

Zu meiner Freude hat mir Christine von ti-s.de über Amazon ein kleines Dankeschön für meine Hilfe bei Ihrer Webseite zukommen lassen. ti-s.de läuft seit kurzem auf TYPO3. Beim CSS waren einige Klippen besonders wegen der Kompatibiltät zum Internet Explorer zu umschiffen. Ein wenig SEO wird noch folgen.

So werde ich am Wochenende also die ein odere andere Folge von Don Camillo und Peppone (Bibel Edition, 5 DVDs) zu Gemüte führen.

Ruby on Rails Bootcamp der Big Nerd Ranch – Tag 4

Tag 4 – 9:20 Uhr:

Heute gehts anspruchsvoll weiter. Noch nicht richtig wach legen wir, ganz Web2.0 mässig mit dem Thema Ajax los. Rails hat prototype und script.aculo.us bereits integriert und bietet dem Entwickler schöne Möglichkeiten diese zu nutzen. Das machten wir auch sogleich um im unserer Demo-Anwendung ein bisschen Ajax einzubauen.

Ein wichtiges Thema folgte; Debugging. Die verschiedenen Möglichkeiten wie logger.info (ins Logfile schreiben), Sandbox-Testing und Arbeit mit Breakpoints wurden anschliessend wieder praktisch vertieft. Besonders der script/breakpointer hat mir gefallen, weil man dort bei erreichen eines definierten breakpoints eine komplette Ruby-Shell zur Verfügung hat, in der man beliebig rumhantieren kann.

Vor dem Essen wurde dann noch der ActionMailer besprochen und die Möglichkeiten Mails zu versenden/empfangen (bzw. zu verarbeiten) aufgezeigt. Da bei mir (auf Wunsch) ein lokales Postfix seinen Dienst verrichtet konnte ich via sendmail das ganze sogar testen. Wie nicht anders zu erwarten funktioniert es blendend.

12:45 Mittagessen

Gut gesättigt waren wir fit für das nächste Kapitel. Web Services. Serverseitig unterstütz Rails SOAP und XML-RPC. REST wird durch Active Resource und Simply RESTful unterstützt. Wie immer nimmt Rails einem hier viel Arbeit ab und bietet sogar ein (allerdings verbesserungswürdiges) scaffolding. Dennoch machten wir auch hier wieder eine Übung und programmierten eine Schnittstelle und einen RSS-Feed für neue Produkte. Und das in weniger als 15 Minuten. Schon irgendwie beeindruckend.

Der Rest des Tages war wieder coding angesagt. Entweder an eigenen Applikationen oder an dem Übungsstück. Wie immer stand Charles mit Rat und Tat zur Seite, sodass eigentlich alle offenen Fragen geklärt werden konnten. Ich selbst habe mich dann mal an das Datenbankdesign meiner kleinen Reise-Applikation gemacht. Da habe ich mir auch gleich was schön schwieriges vorgenommen scheint mir. Wegen der Normalisierung werde ich wohl um eine Handvoll Assoziationen mit polymorphic nicht rum kommen.

So ganz nebenbei hat Charles noch ein kleines Shout-Board mit schickem Ajax-Update programmiert. Das wird hier jetzt fleißig zum Llinktausch benutzt. Mal gucken ob wir da den Source noch bekommen ;-)

19:00 Abendesen – wie immer sehr lecker

Den restlichen angefangenen Abend werde ich noch ein wenig anfangen zu coden. Ebenso meine Mitlernenden. Morgen dann der letzte (halbe) Tag.

Ruby on Rails Bootcamp der Big Nerd Ranch – Tag 3

Tag 3 – 9:05 Uhr:
Wir starten mit einem kleinen Rückblick auf die vergangenen Tage. Direkt danach ging es mit “advanced stuff – active records” weiter. Ein Überblick über aggregations, acts, magic_columns, transactions, locking, observer, association join models und polymorphic associations. Da muss man dann doch erstmal schlucken. Charles bringt zwar alles verständlich rüber, aber bei der Menge an Informationen muß man voll dabei sein, sonst verliert man schnell den Faden.

Das nächste Kapitel behandelte Helper-Funktionen, die, ebenso wie ein paar weitere Verbesserungen, sogleich in unser Projekt einzupflegen waren.

Nun sollte es aber erst richtig loslegen. Charles Augen begannen fömrlich zu leuchten, als er über die Testing-Funktionen die in Rails integriert sind zu erzählen begann. Unit Test wurden ausführlich erklärt und auch gleich wieder angewandt, sodass man ein bessers Gefühl dafür bekommt.

12:30 Mittagessen

Nach der Pause hat Peter einen kurzen Vortrag über Migration-Tests gehalten, da das gut zum Unit-Testing passte. Bevor ich richtig durchatmen und mich vom guten Essen erholen konnte folgte ein Abschnitt der uns die Routen näher bringen sollte. Das haben wir natürlich auch gleich wieder umgesetzt. Überhaupt wird der Kurs jetzt wesentlich praxisnäher als noch am Montag. Gut so!

15:00 Spaziergang

Nun sollte auch schon der nächste Themenblock folgen. Request Filters. Anhand eines einfachen Login/Logout-System wurde das praktisch verinnerlicht. Der Übergang zum Thema Sessions war da recht fliesend und angebracht. Den Rest des Tages war Coden angesagt. Entweder an der Lern-Applikation, oder an eigenen Projekten. Gegen 19 Uhr gab es dann noch Abendessen. Anschliessend nochmal zurück in den Schulungsraum und weiter gehackt.