Friday afternoon: Flight FDH–VIE
Intersky sucks: it’s expensive, uncomfortable, and sitting next to the propellers of that small machine was no fun. The weather also sucked and made the flight feel more like a rollercoaster than a bus ride. Motto of the flight: “Ich beschwöre euch, meine Brüder, bleibt der Erde treu” (… and “Verächter des Lebens sind es, Absterbende und selber Vergiftete, deren die Erde müde ist: so mögen sie dahinfahren!”.)
Friday evening: Das Lederer
Euruko almost DDOS’ed Das Lederer, the Viennese restaurant we went to in the evening. The waiter planned for 15 people but then we were 60. ;-)
Also, I finally met Manuel in real life. We figured out that I read his del.icio.us network more often than he does.
Friday night: Metalab
After dinner and a few beers, we went to the Metalab. This is a seriously great place. Where else can you solder, etch boards, develop photos, cook dinner, surf the web, read Concrete Math, smoke, have 8-bit color lighting control, drink Club-Mate, meet guys creating a Web 2.0 porn site (NSFW) or the best hosted tumblelog solution, play kicker, and maybe even make meta-LSD?
If you ever get to Vienna, going there is a must-do IMO if you are geeky.
We stayed at the Metalab until 4:30, then we walked to the flat, and took the tram for the last few stations—if you don’t have a ticket, you can just buy one there. Very nice.
Roughly four ours of sleep later I head to the university, miss the entrance and walk around it once. It’s a great building with huge staircases and marble columns, and actually the second-oldest university of Europe, which Jürgen Mangler tells us in his introduction about this year’s host, the University of Vienna. There have been four initial fields back in the fourteenth century, which were theology, jurisprudence, medicine and philosophy. The computer science department actually belongs to the jurisprudence, which is weird. He goes on and speaks about the Viennese coffee culture and that good waiters must be mean. After his intro, we decide what talks there will be and in which order.
Hal Fulton is chosen to give the keynote, Future of Ruby. After a short recap of the Ruby history (Hal was one of the first ten Ruby users in the US), he shows the growth of the community by using the ruby-talk as a metric. Then, he shows which new features are planned for 1.9 and 2.0. There also are many new implementations of Ruby going on, which focus on speed and interoperation. In his opinion, Ruby is enterprise ready for a long time. He also wants to see Ruby on handheld and phones. Notable quote: “If you have to work on Java for eight hours a day, you go home and kick your dog.”
Next, Tim Becker presented a small library of his, Dbrb, which is a very simple DWIM API for doing SQL things in Ruby. He’s not a fan of Rails and ORM in general, and DBI is very complex to use. Therefore, he decided to create a really simple SQL library, which he first tried to hack into Ruby strings etc. to make it invisible but then he just defined a method, cleverly named sql, which does everything. With it, one can easily query and change data using SQL without all the messy details. There also is profiling support to help you find bottlenecks. Dbrb is a seriously cool idea because I think all direct database interfaces for Ruby are much too complicated and I hate myself for not having the idea in the first place. Sometimes, things almost are too simple.
David Anderson presented his Informl Wiki, which essentially is a Wiki with support for forms and database objects. He demoes a portal for King Louis XIV and shows how easy it is to make simple CRUD apps and entry forms. They have a cool wikish and simple markup format for forms and one can do database queries and report generation with it as well. You’ll find it here.
In the lunch break, we had some pizza.
Then, Ramine Darabiha and Sven C. Köhler demonstrated Mysit.es, which aims to provide a central data storage for all your Web 2.0 sites and they showed how to create a new service with it. Lots of Myfoo.es-jokes came up, the one I like most is “Myfec.es — Put your shit online, literally.”
After this, I gave my talk Introducing Rack. The material is online, so I’ll not go deeper into Rack here.
Stephan Kämper talked about Transitions next up, which he classified into social, qualitative and quantitative and personal ones. He showed that Euruko itself is full of transitions, and how they matter in daily life. He also showed that there are many transition effects in Keynote.
Then, Peter Szinek gave a presentation on ScRUBYt!, which is a DSL for writing web scrapers, a task generally known to suck. However, with ScRUBYt!, which uses Hpricot and WWW::Mechanize, it becomes fun again. His examples at least looked a lot simpler than the usual scraping code I’ve seen. There also is Firescrubyt, which uses Firewatir (to talk to Firefox) and Scrubyt and can be used to scrape AJAXy sites.
The last talk on Saturday was Martin Grund on Easy DSLs with Ruby, where he explained what DSLs are and showed how to create a simple, lispy, external DSL with Dhaka. Then, he demoed a DSL he’s been writing, RMQL, which is a kind of simplified XQuery.
Saturday evening: Universitätsbräu
This evening, I had my first Schnitzel and after some beers, Jürgen Mangler and I started hacking some deepish metamagic trick which we would talk about the next day then.
After dinner, we went to the Metalab where we stayed until half past three and then went home—where I talked to Jürgen and his girlfriend and we tried to explain her what we hacked in the evening.
I went to bed short before five o’clock, whereas they went to see an episode of Stargate. Yeech.
I woke up after another four hours of sleep, but since I tried to be polite, I didn’t wake Jürgen, which made us be late, which was a bit troublesome because he had the key to open the conference place. ;-)
Jürgen and I presented our yesterday-late-hack, **super: an exercise in drunken programming*. Instead of *foo and bar, we used food and beer as metavariables.
The following talk was by Kingsley Hendrickse again, this time on BDD with RSpec. After explaining the idea behind BDD a bit, he tried to develop an address book in a pair-driven BDD style. That is, he’d write the tests^Wspecifications and someone in the audience would write the code. They didn’t get very far, though. Probably everyone had not had enough sleep
Next, Paul Battley spoke on Fun with trees. He tried to find similar product names for work and needed a fuzzy string match for that. After showing a few well-known algorithms how to do that (Soundex and Metaphone, for example), he introduced metric trees based on the Levenshtein distance, which results in a so-called BK-Tree. He explained how to build, query and use them.
Stephan Kämper talked on Quality in code after, since there has been lots of discussion about “beautiful code” recently. He referenced Zen nnd The Art of Motorcycle Maintainance, and showed various small Ruby hacks on how to make more beautiful code.
Then, Hal Fulton quickly presented a Proposal for an
in operator in Ruby.
Fine with me.
In the lunch break, I had my second Schnitzel at the Cafe Einstein.
Tim Becker spoke on DTrace, which really is impressive. There are 45k different things in Leopard you can probe for and he showed how to write D scripts (which reminds me a lot of awk) to discover various things. He showed how to inspect Ruby with DTrace in a high-level way. Very powerful stuff.
After that, Ry Dahl gave a talk on Ragel & Ruby, where he first explained what Ragel is, when to use it and how state machines work. He showed pieces of Hpricot for explanation purposes. Ragel can generate multiple languages, but the recent Ruby generator is very slow, but useful for development and experimentation.
Martin Grund and others showed Twizzr then, a recreational game they wrote the night before. It’s a few hundred LOC camping application that is well tested. Twizzr is a quiz game interfacing via Twitter. One recieves news headlines and needs to figure out the obscured word in them. They had some problems with the Twitter API because it limits to 70 messages per hour.
The last talk was by Sacha Schlegl on his ebXML implementation with a very clever name: Hefeweizen.
Then, Euruko 2007 ended and I have to say I really had a great time this year. There was a very friendly and open atmosphere as well as an excellent location in the University of Vienna where they have WLAN that works and enough multiple sockets for everyone. I hope everyone of the roughly 70 people that attended (there even were a few girls, contrary to last year!) enjoyed it as much as I did.
Song of the weekend: LaborCase—Vanille (heard at the Metalab).
There were no videos made this year, but if you really want to see a video, search for two girls one cup (NSFW).
NP: Bob Dylan—Winterlude