Railswaycon 2010 in Berlin

Letzte Woche durften Christian Felder und ich die Railswaycon in Berlin besuchen (danke Namics!). Auch wenn neben Yehuda Katz vielleicht die eine oder andere Grösse mehr hätte anwesend sein können, waren die Talkthemen sehr interessant. Hier eine kurze Zusammenfassung von ausgewählten Talks:

Push it to the limit – An intro to Websockets and Rails applications
Michael Johann zeigte, wie die Zukunft von real-time Applikationen aussehen kann. In HTML5 kann das bisher gängige Polling durch Websockets abgelöst werden. Dabei wird im Browser eine bidirektionale Verbindung zum Server aufgebaut, mit welcher der Server den Client per Push über Updates informieren kann. Ebenfalls erwähnenswert ist PubSubHubbub. Mit Hilfe von Websockets implementiert es ein Publish Subscriber System, basierend auf Atom und RSS.

Cross-Browser testing in the real World
Die Browservielfalt macht das Leben jedes Webentwicklers schwer. Martin Kleppmann stellte eine Landkarte der vielen vorhandenen Tools vor. Capybara steuert Selenium 2 via Webdriver und Watir, womit man auf Chrome, Firefox, Internet Explorer und Safari automatisiert testen kann. Mit Celerity kann zusätzlich noch Headless (hierbei wird kein Browser geöffnet) getestet werden. Anschliessend wurden 10 praktische Probleme und Lösungsansätze vorgestellt. Ziemlich komplex, wenn man alles abdecken will.

Small is Sexy – We need Components in Rails!
Nick Sutterer ist der Überzeugung, dass wir in Ruby on Rails Views Komponenten brauchen. Cells bietet gekapselte View-Objekte, welche sich kontextunabhängig selbst rendern können. Auf Wunsch können diese mit dem eventgetriebenen Aptomo auch stateful sein. So kann z.B. für eine Warenkorb-View einiges an Logik strukturiert werden. Laut Yehuda Katz werden einige Zeilen der Cells Codebase vielleicht in Rails 3 einfliessen.

Mongodb and Mongomapper 4 real!
Realational ist out, denn Document Storages sind da! Jan Krutisch zeigte wie der No-SQL Ansatz mit MongoDB verfolgt werden kann. Daten werden bei Document Storages wie der Name schon sagt in Form von Dokumenten geschrieben. Somit gibt es kein festes Schema der Datenbank mehr und es können nahezu beliebige Konstrukte gespeichert werden. Klarer Vorteil gegenüber relationalen Datenbanken ist die Performance. Statt einer Query Language wie SQL werden in Javascript so genannte Map- / Reduce-Funktionen geschrieben.

Rails 3: Dashing to the Finish
Die Merb Ikone Yehuda Katz zeigte an vielen Beispielen wie Rails 3 sich im Vergleich zu Rails 2 weiterentwickelt und verändert hat: Schneller, aufgeräumter, modularer und besser erweiterbar. Es gibt einige radikale Änderungen, womit eine Migration bestehender Applikationen etwas aufwändiger wird. Der grösste Teil ist jedoch bis Rails 3.2 rückwärtskompatibel. Ein wichtiger Bestandteil ist dabei die vollständige Implementierung des Rack Ansatzes. Zudem ermöglicht Bundler endlich gutes Dependency Management von gems.
Rails 3 kicks ass!

Ruby and Redis – Simple meets Awesome
Mathias Meyer berichtete von seinen Erfahrungen bei der Erweiterung einer Mysql-basierten Applikation mit Redis. Redis ist ein unglaublich schneller (mehrere 10000 Reads/Writes pro Sekunde), persistenter Key-Value-Store. Anhand diverser Beispiele wie Caching, Session storage, Statistiken, Who’s online, etc. wurde die Anwendung von Redis klarer und klarer. Umdenken ist angesagt!

Natürlich ist das nur ein kleiner Auszug der Themen. Wer mehr erfahren will, kann die Slides zu den meisten Tracks bei der schweizer Rails Usergroup finden.

Neben guten Vorträgen gab es in Berlin natürlich auch lecker Currywurst, heiter Sonnenschein und das ein oder andere gemeinsame Feierabendbier.

@Google für die Sicherheit

Gestern Abend fand die GV der Information Security Society Switzerland mit dem Referat „Security and Privacy at Google Scale“ statt.

Dr. Thomas Dübendorfer, Präsident der ISSS eröffnete die Veranstaltung mit dem Vortrag „Security and Privacy at Google Scale“.

1311-77f25d21d0-thumb-500x608-1310.jpg

Seit einigen Jahren arbeitet er bei Google und hat in seinem Team verschiedene Analysen zum Thema Browser und Security durchgeführt. Dr. Dübendorfer hat einige Statistiken bezüglich eingespielten Sicherheitsupdates, 3 Wochen nach der Veröffentlichung einer Lücke, gezeigt. Auch die „besten“ Browser haben nach 3 Wochen immer noch äusserst erschreckend wenige User mit eingespielten Updates. Somit sind bei den meisten Browsern über die Hälfte der Benutzer nach 3 Wochen immer noch auf diese teils sehr gefärhlichen Sicherheitslecks angreifbar.

Als Lösung für dieses Problem hat sich Google verschiedene Ansätze überlegt und ist zum Punkt gekommen, dass nur sehr benutzerfreundliche Updates, bzw. sogar ein automatisches Einspielen von Updates zu einem erfolgreichen Rollout der Patches führt. Zu viele Internetbenutzer scheuen Updates, wissen nicht ob sie gemacht werden sollen und lassen lieber alles beim alten.

Als Beispiel geht Google mit Chrome voran. Bei dem Browser aus dem eigenen Haus werden alle Updates automatisch eingespielt, auch wenn der Browser nicht gestartet ist. Die Updates werden so, bis auf neue Features die einem vielleicht beim nächsten Start von Chrome entgegen lachen, unsichtbar. Leider kümmern sich die Betriebsystemherstellern kaum um diese Problematik. Es kann doch nicht sein, dass ich mit einem oft als „weniger benutzerfreundlich“ verrufenem Linux alle für den Normalverbraucher nötigen Programme und sehr viele andere Pakete automatisch mit dem System updaten kann, während ein „benutzerfreundliches“ OS X oder Windows nur die Anwendungen aus dem eigenen Haus updated.

Mit Chrome OS soll die automatische Update-Strategie auf alle Applikationen ausgeweitet werden. Da Anwendungen ausschliesslich über Chrome gestartet werden, können die Hersteller wichtige Updates ohne Zutun der Benutzer einspielen. Was bei einigen System Engineers vielleicht Bauchschmerzen verursacht, dient der Sicherheit des Anwenders.

Die Dataliberation Initiative und das Google Dashboard sollen den Google Nutzern helfen, auch die Privacy unter Kontrolle zu halten. Im Dashboard werden alle Google Accounts übersichtlich dargestellt, während die „Data Liberation Front“ Hilfe beim löschen und umziehen von Daten bei Google leistet.

Die ISSS hat sich zum Ziel gesetzt, dieses und andere Sicherheitsprobleme anzugehen. So sicher fühlte ich mich erst jedoch nicht, als ich sah, wie über die Zukunft der Information Security Society Switzerland abgestimmt wird.

1308-IMG_0173-thumb-500x666-1307.jpg

Nein im Ernst auch wenn einem ein GoogleDocsSpreadsheet und drei farbige Zettel für jeden Teilnehmer als Abstimmungsmittel im Google Headquarter Zürich etwas oldschool vorkommen, vertrauenswürdige Stimmenzähler führen durchaus zu einem ordentlichen Resultat. Dr. Thomas Dübendorfer wurde aus dem Publikum sogar für seine speditive Durchführung der GV gelobt. Da die ISSS das Privileg hat, beliebig lange Filme auf Youtube zu laden, sind die Talks der ISSS Veranstaltungen einfach zugänglich.

Google Wave Tech Talk

Vor einigen Wochen poppte im Techie-Channel des Zürcher Namics Ofiice eine Nachricht von Markus Tressl auf. Die Nachricht enthielt einen mysteriösen Link auf ein Google Spreadsheet. Es handelte sich um die Anmeldung für einen Google Wave Tech Talk. „Developer Information“ – klingt doch spannend. Vorsichtig trug ich meine Daten ein und hoffte, dabei sein zu dürfen.

Einige Tage Später erschien in meiner Mailbox ein Mail von Pamela Fox. Spam, schrie mein innerer Spamfilter sofort, bis ich entdeckte, dass dies die Bestätigung für den Google Wave Tech Talk in Zürich ist.

Gestern waren wir also an dieser geheimnisvollen Information zur Google Wave. Mit Pizza und Bier lockten uns die Googler zu ihrer Präsentation. Als erstes wurde klargestellt, dass die Wave nicht Gmail ist.

„Wave is to Google Wave“
„Mail is to Gmail“

Ah, wenn ich das gewusst hätte… Lars Rasmussen, bekannt aus dem berühmten Youtube Video zur Google Wave öffnete die Präsentation mit einer kleinen Vorstellung der Funktionen der heutigen Wave. Bei ihm lief schon einiges, was in der öffentlichen Wave noch nicht funktioniert. Zum Beispiel waren da viele Plugins installiert, Wavelets enthielten Bilder, PDF’s usw.

713-Lars Rasmussen-thumb-500x356-712.jpg

Vladim übernahm den technischeren Teil der Bots, Plugins und Gadgets. Sein Entwicklerhintergrund war an seiner Art zu Präsentieren klar zu erkennen. Zum Abschluss betrat der chinesische Herr, dessen Name ich leider schon wieder vergessen habe, die Bühne. Aus meinem Blickwinkel konnte ich erkennen, dass er bis dahin nur Diffs auf seinem Monitor hatte und wohl mit Reviews beschäftigt war. Ein richtiger Techie ;-)
Er stellte das Google Wave Federation Protokoll vor und kassierte auf jeden Fall den Applaus des Abends in dem er Angekündigt hat, das auf der Sandbox das Protokoll sofort zur Verfügung steht.
Die anwesenden Namicsler, Reto, Mats, Jonny, Markus und ich haben sich wohl am meisten gefreut, da wir diese Woche noch ans Lab (2 Tage zurückziehen und was cooles fabrizieren) fahren und die Google Wave Infrastruktur inklusive Entwicklung testen werden.

Zu unserer Begeisterung hat Google einige Waveentwickler persönlich von Australien nach Zürich eingeflogen. Auf diese Weise durften wir die Geeks und Cracks, die schon hinter den Google Maps steckten kennenlernen. Mir persönlich machten Sie einen sehr sympatischen Eindruck, vorallem Lars Rasmussen, welcher sich als kompetenter Spassvogel entpuppte.
Google will mit der Wave einen Standard schaffen und zeigt mit der jetzigen Version eine Referenzanwendung. Die Wave bleibt auf jeden Fall spannend, welchen Zweck sie in Zukunft genau erfüllt weiss zu diesem Zeitpunkt aber nicht einmal Google selbst.

Links:
Spreadsheet
Tweets zum Anlass