W weekend 29/30 maja 2010 odbyła się w Krakowie konferencja EuRuKo 2010 (czyli European Ruby Conference, albo raczej Europaeische Ruby Konferenz).

Odbywająca się każdego roku w innym kraju impreza przyciągnęła do Polski gości z całej Europy i nie tylko. Każdy, kto w naszym kraju na poważnie interesuje się Rubym chciał tam być - i nic dziwnego, że bilety rozeszły się w ciągu pierwszych 20 godzin. Niewielka grupa szczęśliwców załapała się jeszcze na drugą, niewielką partię wejściówek, ale sporo osób musiało obejść się smakiem. I dla nich wszystkich składam wyrazy współczucia... jest czego żałować. EuRuKo w Krakowie okazało się być świetną konferencją. Kto oczekiwał ciekawych prezentacji mógł wyjść usatysfakcjonowany. Kto nastawiał się na poszerzenie znajomości, również miał ku temu mnóstwo sposobności. WiFi może i niedomagało, poziom występujących był dość nierówny, ale summa summarum warto było spędzić ten weekend w Krakowie.

Pokrótce postaramy się zrelacjonować krakowską konferencję, skupiając się przede wszystkim na części oficjalnej, a pomijając np. kakao w barze mlecznym czy inne trunki nad Wisłą... ;) Spora część prezentacji jest już dostępna na Vimeo, ja linkuję do świetnej strony http://euruko2010.heroku.com/, która oprócz odnośników do filmów zawiera też linki do slajdów, githubów i innych stron powiązanych z poszczególnymi wystąpieniami.

Dzień pierwszy

Zaczęło się od drobnego zgrzytu - Matz, który miał otworzyć EuRuKo swoim keynote'em, nie doleciał na czas i jego wystąpienie zostało przełożone na niedzielę. Cóż, zdarza się. O żadnym odwoływaniu nie było jednak mowy, jedynie ciężar rozgrzania publiczności spadł na Piotra:

Piotr Szotkowski - Profiling Ruby

Piotr przedstawił temat badania i optymalizacji wydajności programów w Rubym. Co się chwali, podszedł do tematu od kilku stron - od optymalizacji samych algorytmów (bez czego żadne inne optymalizacje wg mnie nie mają sensu), przez dobór odpowiednich technologii (od FFI przez takie cuda jak CUDA) po kilka ciekawych wniosków - czasem najlepsze rozwiązanie jest na wyciągnięcie ręki (klasa Prime w przedstawionym przykładzie).

Patrick Hüsler - Hacking together small OSX apps with MacRuby

Druga prezentacja na EuRuKo była pewnym wprowadzeniem do MacRuby'ego. Dla osób, które ten temat choć trochę liznęły nie było tu nic nowego, ale dla nie zaznajomionych mogło to być solidne wprowadzenie. W trakcie wystąpienia Patrick zbudował (choć niestety nie "na żywo") prostą aplikację - loterię - którą swoją drogą wykorzystał na końcu do rozlosowania nagród.

Rocky Bernstein - Rbdgr, a debugger for Ruby 1.9

Kto korzystał z ruby-debug wie, że debugger nawet w Rubym może być zaskakująco przydatny, ale wie też, że w tym temacie sporo jest jeszcze do poprawienia. Rocky pracuje od 9 miesięcy nad alternatywą - wspierającym Ruby 1.9 debuggerem o możliwościach, których wreszcie nie będziemy musieli się wstydzić. Cytując samego autora, do pełnej wersji narzędzia brakuje jeszcze kolejnych 9 miesięcy, zaś prezentacja miała na celu przedstawienie aktualnego stanu projektu.
Rocky jest niewątpliwie hackerem z krwi i kości i o jego pracy nie można powiedzieć złego słowa. Rbdbgr, pomimo mało imponującej nazwy, sam zapowiada się imponująco. Autorowi przydałoby się jednak trochę więcej wprawy w prezentacjach, bo momentami wyglądało jakby tylko głośno myślał i trudno było zrozumieć co autor miał na myśli.

Yehuda Katz - Why Bundler?

Jedną z głównych gwiazd EuRuKo był Yehuda Katz, jeden z głównych developerów Merba, aktualnie członek Rails Core i autor przepastnych tekstów o nowościach w Rails 3. W Krakowie nie mówił jednak o Rails, ale o Bundlerze - jednym z kluczowych elementów Rails 3, ale jednocześnie narzędziu, które może uprościć życie wielu innym developerom Ruby'ego. Wciąż czekamy na stabilną wersję 1.0 i w związku z tym część prezentacji miała charakter teoretyczny. Nie sposób jednak nie zauważyć ilości pracy włożonej w Bundlera. Najprawdopodobniej w najbliższych miesiącach - w mniejszym lub większym zakresie - będzie musiał się z nim zaprzyjaźnić każdy developer. Ciekawy temat poruszył jednak Mislav Marohnić, zwracając uwagę, że Bundler może - podobnie jak wcześniej np. Rubygems - uzależnić od siebie developerów Ruby'ego.

Marcin Bunsch - Scripting Mac applications with Ruby

W moich notatkach przy tej prezentacji zapisałem sobie "full profeska". Było zwięźle, konkretnie i ciekawie. Już kiedyś dłubałem proste rzeczy w AppleScript'cie, ale nawet nie wiedziałem o istnieniu rb-appscript. Marcin przedstawił fajny problem i ciekawy sposób rozwiązania go - interakcja z poziomu Ruby'ego z desktopową aplikacją OSX. Things używam na co dzień, więc temat był mi na tyle bliski, że jego things-client'em bawiłem się jeszcze zanim prezentacja się skończyła.

José Valim - DSL or NoDSL? - The power is in the middle

Choć z tematu trudno było tego oczekiwać, dla mnie była to jedna z ciekawszych - jeśli nie najciekawsza - prezentacja z pierwszego dnia EuRuKo. Spora w tym zasługa José, który mówi z pasją, wie o czym gada i przytacza dobre przykłady. DSLi w Rubym mamy jak mrówków. Mnóstwo bibliotek wprowadza swoje "dialekty", których znajomość jest konieczna do pracy. I nawet jako wielki fan RSpeca muszę przyznać, że czasem DSL nie jest najlepszym rozwiązaniem, a nawet może stanowić "code smell". Wszystkim twórcom gemów polecam tę prezentację zanim zaczną pracę nad interfejsem.

Elliot Crosby-McCullough - Influencing Users - Libertarian Paternalism in the Ruby Community

Dziwna była to prezentacja. Elliot wszedł na tak wysoki poziom abstrakcji, że po tych kilku godzinach spędzonych w sali konferencyjnej, mój poziom zrozumienia osiągnął poziom krytyczny. Choć autor przedstawiał przykłady ze świata Ruby'ego, główny przekaz można by wyekstrahować i przenieść na cały software. Jak za pomocą interfejsów wpływamy na użytkowników, jak pomagać użytkownikom i jak te same idee przenoszą się na kod i design. Takie lanie wody.

Tim Lossen - Remodelling a Facebook game

Ta prezentacja mogła być naprawdę ciekawa. Gry na Facebooku to skala, o której wiele railsowych aplikacji może co najwyżej pomarzyć. I wygląda na to, że Tim przy takiej właśnie aplikacji pracuje, jednak mało można było wynieść z jego wystąpienia. Wszystko to trochę hipotetyczne, niepotwierdzone, trochę Redisa, trochę lansu i krótka wzmianka o MySQL shardingu.

Florian Hanke - Building a search engine with Ruby

Choć tematycznie bez fajerwerków, taką prezentację trudno zapomnieć. Odręczne rysunki na slajdach i spora porcja humoru. Poza tym całkowicie wyluzowany prezentujący i na dobre zakończenie pierwszego dnia jak znalazł. Autor opowiedział o implementacji sprytnej i wysokowydajnej wyszukiwarki w Rubym.

Karel Minařík - Spoiling the youth with Ruby

Prezentcja Floriana nie była jednak "dobrym zakończeniem pierwszego dnia". Przed lightning talks wystąpił jeszcze Karel, opowiadając o nauczaniu Ruby'ego uczniów kierunków nietechnicznych. Dlaczego Ruby jest dobry jako pierwszy język? Jak podejść do uczenia programowania w ogóle? Czemu warto skupić się na web developmencie? Na pewno wszystkie te tematy będą dla osób zainteresowanych ciekawe. Ja jednak wybrałem sudoku.

Lightning talks

Na sam koniec pierwszego dnia zebrało się kilku chętnych do wygłoszenia krótkich - pięciuminutowych - prezentacji. Zgłosić się mógł każdy, w ciągu dnia wystarczyło jedynie wpisać się na dostępnej dla wszystkich tablicy.

Patrick Hüsler - ChocTop

Była to swego rodzaju kontynuacja porannej prezentacji Patricka. ChocTop to narzędzie do przygotowania aplikacji Cocoa do dystrybucji.

Bernard Potocki - Socky

Socky to push serwer i klient WebSockets współpracujący z Rails. Pomimo problemów z WiFi, ku uciesze gawiedzi udało się zaprezentować działające demo. Bernard coś tam w międzyczasie mówił, ale czat na big screenie - to było to :)

Michał Czyż - Cucumber Feature Manager

Autor zaprezentował narzędzie, które może uprościć współpracę na linii Product Owner - developer. Webowy interfejs do pracy nad scenariuszami Cucumbera. Sporo było trąbienia o tym, że Ogórek może (powinen?) być pisany przez nie-developerów. Może więc taki Feature Manager to ciekawy kierunek.

José Valim & Yehuda Katz - Muse

Autorzy przedstawili projekt, nad którym pracują, pisząc równolegle dwie książki o tematyce Ruby/Rails. Jak testować kod umieszczany w treści książki? Specjalnie spreparowany kod + Muse i całość może odbywać się automatycznie. Projekt jeszcze nie jest upubliczniony.

O drugim dniu EuRuKo 2010 napiszemy w oddzielnym artykule.

PS: Wielkie dzięki dla chłopaków z Aenimy, którzy przyjęli nas jak swoich i dzięki którym w ogóle na EuRuKo 2010 się znalazłem. Szacun!