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.
Saturday morning
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.
Kingsley Hendrickse spoke on Riess Automation, which is a
library to script the Internet Explorer using COM. He didn’t like
Watir anymore, so he decided to write
Riess, which is better designed,
has a nicer DSL, is quicker, has builtin assertions and also can work
without JavaScript. He accesses the DOM via COM directly and provides
a CSS selector like API to do assertions on the DOM. He also quickly
demostrated Hyperdrive, which can be used for testing any Win32
application. As well as “automating tasks in World of Warcraft”, that
is.
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.
Sunday morning
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.
Miscellaneous
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