W ubiegły czwartek, 12 marca 2015 A.D., odbyła się we Wrocławiu pierwsza edycja konferencji WROC# organizowanej przez firmę Objectivity. Mogliście się o tym dowiedzieć m.in. z DevTalka oraz mojego posta “Spotkania nadszedł czas“:). Obsada prelegencka przyprawiała o zawrót głowy, więc było jasne: muszę tam pojechać! Tak więc we środę o godzinie 7 rano wybiegliśmy z moją Joanną z domu i wpakowaliśmy się do busa BIA-WAW. Podróż zaplanowaliśmy tak, żeby móc w siedlisku grzechu wszelakiego (stolicy w sensie) odwiedzić HardRocka i uraczyć się kilkoma browarkami w zacnym towarzystwie dobrych ziomów: Roberta, Karola i Gutka. Takie pre-pre-conf-party. Potem dumnie zasiedliśmy w Pendolino (łac. “parszukowóz”) i pognaliśmy w nieznane.
WROC.NET
Korzystając z okazji postanowiłem się trochę polansować i wkręciłem się jako prelegent na specjalny event organizowany przez WROC.NET w “wigilię wroc-hasza”. Wyszła z tego bardzo zacna impreza: prawdziwe CQRS night! Najpierw Gutek, potem ja, a na koniec Mirek przedstawialiśmy swoje podejścia do Command Query Responsibility Segregation. Publiczność dopisała, pub przy Włodkowica 21 był wypełniony prawie w 100%, zebrała się tam ponad setka osób (statystyki z meetup.com pokazują nawet 182!). Atmosfera była tak świetna, że dzięki temu dałem chyba najlepszą prezentację z swoim życiu (fajnie, że co jakiś czas mogę napisać to zdanie, znaczy to że ciągle jest coraz lepiej). Chociaż zdaniem Gutka – po prostu stężenie alkoholu w moich żyłach było na najbardziej optymalnym poziomie :). Ballmer peek? Tak czy siak – jeszcze nigdy po żadnym wystąpieniu nie podeszło do mnie aż tyle osób żeby powiedzieć “good job” albo nawet pogadać na techniczne tematy. Wielkie dzięki! Tym samym ponawiam swoją prośbę o feedback: jeśli byłeś bądź byłaś na mojej prezentacji, a słów kilku na ten temat nie wymieniliśmy, to dajże mi, dobry człowieku, znać czy się podobało czy nie.
To był mój drugi (i nie ostatni!) występ na tzw. “pre-conf” (pierwszy raz przed ubiegłorocznym DevDay). Tym razem nie mogłem się powstrzymać i rozpocząłem swoją prezentację od niewybrednego żartu – porównałem naszą trójkę (Gutka, Mirka i siebie) do tzw “flufferów”, dodatkowo dorzucając analogię do Trzech Muszkieterów. Może było to zbyt prymitywne (a może zbyt głębokie?;) ), ale do teraz się chacham jak to sobie to przypomnę.
A potem – browarowy chill do 3 rano, niecałe 4 godziny snu i jazda na konfę!
Organizacja
Po rejestracji i otrzymaniu bardzo porządnego gift-baga (zawierającego m.in. wypasiony notatnik, koszulkę i stickery DevTalka ;) oraz WROC#) oraz najlepszego na świecie name-taga w postaci dyskietki udałem się do szatni, gdzie mi szczena opadła. Grzecznie podchodzę, daję wypacykowanej jak manekin panience kurtkę oraz proszę o dorzucenie na wieszak wspomnianej torby z pamiątkami. Ta gapi się na mnie swoimi oślimi gałami przez kilka chwil po czym gasi mnie obcesowym “NIE MA OPCJI!”. Haha, zupełnie nie byłem na to przygotowany, więc położyłem uszy po sobie i odszedłem jak niepyszny. Na szczęście był to jedyny zgrzyt organizacyjny podczas całej konferencji, a w dodatku: zabawny.
Cała reszta po prostu: powalała. Poczynając od tych dyskietek, przez stare automaty do gier (Tekken2 !), przez maszyny do pinballa, przez konkurs gry w piłkarzyki, przez koncert zespołu rockowego witającego nas swoim wykonaniem piosenki o smutnym programiście, po przepyszne shoty i “piwo wrocsharpowe” oraz pokal w prezencie! Geek-level-400 po prostu, na każdym kroku. Miazga. A do tego jeszcze miejsca, w których można było sobie cyknąć pamiątkowe foto, którymi podzielili się na przykład @mihcall-the-Dev-Day-guy oraz Gutek. Całości dopełniało pyszne żarcie, którym można by wykarmić przynajmniej ze trzy wioski w Bangladeszu przez jakieś 20 lat.
Naprawdę – tam po prostu trzeba było być, żeby poczuć ten klimat. Coś niesamowitego, niepowtarzalne doświadczenie. Nie wiem kto konkretnie to wszystko wymyślił, ale bez wahania dałbym tym osobom nobla czy innego pulicera za stworzenie “geek-experience”.
Prezentacje
Jeszcze nie tak dawno sądziłem, że na konferencje jeździ się po to, żeby się dużo nauczyć. Że taki wyjazd musi się “kalkulować”. Z tego też powodu napisałem posta “Konferencje dla programistów… czy to się opłaca?“. Planuję w najbliższej przyszłości skorygować go jakimś follow-upem, bo niedobrze mi się robi jak to teraz czytam.
Ale do rzeczy… Po ubiegłorocznym CraftConf wspomnienia mam jak najlepsze, mimo że prezentacje były średnie (i w tym roku również Budapeszt nawiedzę przy okazji kolejnej edycji). Podobnie będzie po WROC#: wszystko było naprawdę super, oprócz… prezentacji. Tutaj należy się słowo wyjaśnienia: nazwiska prelegentów to naprawdę najwyższa światowa półka, więc słowa krytyki nie są bynajmniej skierowane do organizatorów konferencji.
Poniżej zastosowałem skalę ocen taką, jak w pokonferencyjnych ankietach: green/yellow/red.
Na pierwszy ogień dostaliśmy Christiana Heilmanna (@codepo8). Tytuł: “Innovating the other web”. Straszliwie wyluzowany koleś (czego dowodem jest chociażby jego foto na twitterze). Pracował w Mozilli i zdecydował, że trzeba ubić IE. Więc co zrobił? Zatrudnił się w Microsofcie i chlasta mizerykodią :). Poopowiadał o tym, kiedy powinno się inwestować w aplikację mobilną i jakie warunki powinna ona spełniać. Co jest złego z dzisiejszym internetem. Pokazał nam m.in. WebPagetest – świetną stronę do testowania stron na różnych urządzeniach. I po prostu: bardzo dobrze nas bawił. Wszystko w świetny, lekki sposób. I takie małe spostrzeżenie: Microsoft naprawdę się zmienia, skoro wypuszcza kogoś takiego na konferencje :).
Dla mnie: jedyna kartka zielona, najlepsza prezentacja na konferencji.
Potem na scenę wszedł Matt Ellis (@citizenmatt) z JetBrains. Mówił o sztuczkach, które można zastosować, aby poprawić wydajność naszego kodu: “Little changes to make your app a lot faster”. A to wywołać “ToString” na typach prostych przekazywanych do string.format aby uniknąć boxingu, a to przekazać tablicę zamiast IEnumerable aby nie tworzyć instancji Enumeratora, a to świadomie używać struktur zamiast klas, a to uważać na lambdy… Nic specjalnie odkrywczego, ale jeśli ktoś o tym nie słyszał, to mogło być bardzo pouczające. ALE mimo to – w połowie wystąpienia wyszedłem z sali żeby doświadczyć innych konferencyjnych przyjemności (czyli: pogadać sobie). Po prostu całość była jak dla mnie zbyt techniczna, zbyt monotonna, zbyt… nudna. Gdyby to był blog post: wypas. Gdyby to był jakiś webinar: świetnie. Ale prezentacja na konferencji: już nie bardzo. Dodatkowo potem żartowaliśmy sobie bezczelnie: kurde, każdy używający R# chyba wie jaką sieczkę to narzędzie robi z naszych maszyn, 32GB RAMu, SSD i i7 to dla niego za mało, więc może niech JetBrains weźmie te wszystkie porady i najpierw zastosuje u siebie? :).
Kartka: jedyna czerwona.
Jako trzeci przemawiał Mark Seemann (@ploeh) – mój bezapelacyjny guru i aktualnie autor najlepszego programistycznego bloga. Bardzo intrygujący temat “Type-Driven Development” okazał się dość zaawansowanym wprowadzeniem do F# na przykładzie rozwiązania realnego problemu: odczytywania wiadomości z kolejki w usłudze Azure, która to usługa musi działać maksymalnie minutę i sama zdecydować o tym kiedy ma się zakończyć. W skrócie: F# jest bardzo fajny i oferuje interesujące konstrukcje redukujące ilość kodu do absolutnego minimum, jednocześnie pozwalając w inkrementalny sposób budować ciekawe rozwiązania. Ale trzeba było wiedzieć o F# trochę więcej niż “taki język istnieje”, aby w pełni delektować się tym materiałem.
Kartka: żółta, bo jako F#-newbie dość często się gubiłem (i wiem, że wiele innych osób miało podobnie).
Najtrudniejsze zadanie miał Dan North (@tastapod), bo jego prezentacja wypadała bezpośrednio po lunchu. Tego ziomka po prostu uwielbiam, to moim zdaniem jedna z najbardziej inspirujących postaci naszego programistycznego światka. Jak to często mu się zdarza, mówił ogólnie na temat bycia programistą (“I, programmer”). Zapowiadało się niesamowicie. Najpierw zobaczyliśmy zdjęcie pierwszej programistki Ady Lovelace z roku 1844. Potem przeskoczyliśmy o 100 lat do przodu, patrząc na pair programming przy terminalu drukującym karty perforowane :). Padło też zdanie, które spodobało się żeńskiej części publiczności: “programming became easy in the XXth century and then men started to do it” czy coś w ten deseń. Całość jednak okazała się jak dla mnie dość… banalna. Dan zdefiniował po prostu programistę jako kogoś piszącego kod, w zespole, w dziale, w organizacji, tworzącego produkt dla końcowego użytkownika. I każdy z tych aspektów został rozebrany na czynniki pierwsze. Może i fajne, może i dość innowacyjne, ale… nic porywającego.
Ciekawostka: na koniec konferencji podszedłem do Dana i wprost powiedziałem mu, że oczekiwania miałem bardzo wygórowane, a jego prezentacja średnio mi się podobała. Nie obraził się (jak to “prawdziwi celebryci” mają w zwyczaju, o czy przekonałem się na własnej skórze dostając jakiś czas temu bardzo niemiłe zjebki od innego top-class-speakera za podzielenie się negatywnym feedbackiem), tylko razem zastanowiliśmy się dlaczego tak się stało. Doszliśmy nawet do konkretnych wniosków. Świetny gość! Mało tego, zgodził się nawet nagrać odcinek DevTalka, więc oczekujcie czegoś niepowtarzalnego w nadchodzących miesiącach ;).
Kartka: żółta, chociaż po rozmowie z Danem zmieniłbym na zieloną.
Po Danie scenę okupował Maurice De Beijer (@mauricedb). Po temacie “What is new in ASP.NET vNext?” nie spodziewałem się zbyt wiele, ponieważ moim zdaniem to również nadaje się bardziej na blog-post (lub podcast ;) ) niż prezentację na konferencji. Wszystko przebiegało zgodnie z oczekiwaniami, więc i tym razem ewakuowałem się “w kuluary”.
Kartka: żółta, bo było to co myślałem że będzie, poprawnie przedstawione.
Następnie “Decomposing AngularJS” w wykonaniu Chrisa Kluga (@ZeroKoll). Angulara kiedyś kochałem, teraz nie znoszę, ale posłuchać chciałem. Koncepcja prezentacji była bardzo fajna: napiszmy angularowy data-binding od nowa! Dużo JavaScriptu z testami, sporo ciekawych informacji, no i prelegent z najlepszym foto ever :). W połowie doszedłem jednak do wniosku, że i tak wiem, że pod spodem w Angularze jest po prostu while(true) jeżdżące po wszystkim co się da, więc po raz kolejny udałem się na niezmiernie miłe poza-prezentacyjne konwersacje.
Kartka: żółta, bo Chris nie utrzymał mnie do końca, ale to co robił – robił moim zdaniem dobrze.
Na deser miał wystąpić Mark Rendle (@markrendle), na co bardzo bardzo bardzo czekałem, ale bidulę rozłożyła choroba i nie dotarł do WRO. Zamiast tego dostaliśmy improwizowany discussion panel ze wszystkimi prelegentami, moderowany przez Dana. Nastawiony byłem dość sceptycznie – obawiałem się, że taka gadka-szmatka bez żadnego przygotowania nie może wyjść dobrze. Okazało się, że byłem w błędzie. Ten punkt programu był – o ironio! – chyba najlepszą częścią WROC# jeśli chodzi o część konferencyjną. Siedmiu świetnych kolesi gadających na różne tematy, no i Dan w roli Ewy Drzyzgi! Ta rozmowa po prostu wymiatała, siedziałem przez godzinę w pełnym skupieniu i z bananem od ucha do ucha. Coś niesamowitego. Na tyle mi się to podobało, że moim zdaniem każda konferencja mająca nie więcej niż 8 prelegentów powinna się kończyć czymś takim:).
Moje postrzeganie prezentacji jest teraz inne niż było jakiś czas temu. Wydaje mi się, że zmieniło się to, gdy sam zacząłem częściej występować. Teraz oczekuję… funu. Sam podczas swoich staram się bawić, mówić z pasją, inspirować i po pierwsze: nie zanudzać. Merytoryczna wartość nie jest tak bardzo ważna, bo za kilka dni/tygodni wśród większości słuchaczy i tak pozostaje tylko ogólne wrażenie: było fajnie czy niefajnie? Niezmiernie rzadko widzę, aby ktoś robił notatki na konferencji. A bez notatek nie da się wiele więcej zapamiętać, szczególnie jeśli mówimy o sesji mocno technicznej. Dlatego też nie moja ocena może nie być do końca sprawiedliwa (i z rozmów wiem, że sporo osób miało wrażenia bardziej pozytywne od moich).
A potem…
…hulanki, swawole, i tak dalej. Wspomniany zespół grał bardzo fajnie mimo tego, że publiczność miał bardzo niewielką – ogromna większość ludzi ewakuowała się na inne piętro, ponieważ przy scenie było tak głośno, że nie dało się pogadać. Do 22 impreza trwała w miejscu konferencji, a później przenieśliśmy się na miasto, gdzie znowu balowaliśmy do 3 rano.
Przy okazji tego eventu miałem okazję zamienić chociaż kilka słów z bardzo wieloma osobami, które poznałem w ciągu ostatnich kilkudziesięciu miesięcy swojego jeżdżenia po Polsce. I poznać wiele nowych fajnych twarzy. No i po raz kolejny przekonałem się, że prawdziwie udane konferencje to właśnie WROC# czy DevDay, gdzie liczy się przede wszystkim atmosfera i towarzystwo. Wyjazd zaliczam więc do bardzo, ale to bardzo udanych. Wróciłem do swojej Polski B zainspirowany, naładowany pozytywną energią i chęcią działania. Jeszcze nigdzie nie czułem się tak… rozpieszczony jako programista dzięki tym wszystkim geekowym akcentom, o których wspominałem wyżej. Dziękuję Łukaszowi i całej ekipie Objectivity za zorganizowanie czegoś tak arcy-zajebistego. Do DevDay i GET.NET dołącza kolejne wydarzenie, na którym polski programista po prostu powinien być! Mam wielką nadzieję, że: do zobaczenia za rok! Nadzieję tę wzbudził szef-wszystkich-szefów z Objectivity żegnający się z nami słowami “see you next year”. No to patrz ziom, trzymam za słowo i nie zawaham się go użyć :). Pokój z Wami, idźcie i czyńcie dobro (w sensie: kolejną edycję, koniecznie!).
No to teraz mam mieszane uczucia czy lepszy Black Label Society czy Wroc#… No ale bilety na BLS miałem już dawno zabukowane – no i było zajebiście też :)
Widzę, że odczucia podobne. Najlepsze pierwsze wystąpienie. Prezentacja Ellisa najsłabsza. Co do prezentacji Kluga, współczuję mu, bo zaraz będzie musiał przygotować całkowicie nową prezentację, jak wyjdzie Angular 2.0. Ale świetnie było go posłuchać, uporządkować swoją wiedzę na ten temat. Co do samego Angulara to ja np. wciąż go uwielbiam, natomiast wiem, że przy wyjściu następnej wersji to się prawdopodobnie zmieni. Mam nadzieję, że w drugiej edycji WROC# pojawią się Scott Hanselman i Jon Skeet.
P.S. “W ubiegły czwartek, 12 kwietnia 2015 A.D., odbyła (…)”, marca :P
pawelek,
Nie znam nawet ani jednej piosenki BLS więc na pewno lepiej było być na wroc# ;)
jedmac,
Gdyby Skeeta i Hanselmana sciagneli i to jednocześnie to wygrali wszystko ;).
Thx za uwagę z miesiącem, poprawione.
Relacja z #wrocsharp | Maciej Aniserowicz o programowaniu…
Dziękujemy za dodanie artykułu – Trackback z dotnetomaniak.pl…
Aj, niestety nie udało mi się w tym roku dorwać biletu, czego nie mogę odżałować. Niestety strasznie mała pula biletów była, mam nadzieję, że organizatorzy w przyszłym roku pod tym względem bardziej się postarają.
A jeśli można wiedzieć, co Cię Maćku odrzuca w Angularze? Oprócz wydajności oczywiście :-)
Źle trafiłeś, torebek z prezentami wisiało w szatni całe mnóstwo :)
Sowa,
W Angularze odrzuca mnie to , że dostaję masę błędów i nawet nie wiem gdzie zacząć szukać przyczyny. Stacktrace nie zawiera ani jednej wskazówki skąd dany błąd leci – wszystko to kod angulara albo jquery.
Dodatkowo: angular jest bardzo fajny jak się go uczy i zaczyna w nim projekt, ale jednocześnie – jest straszliwie skomplikowany. Sztuka dla sztuki moim zdaniem.
Wojtek,
Wiem, widziałem te wiszące torby, dlatego poprosiłem o powieszenie mojej :)
W nawiązaniu do konferencji 3 muszkieterów w której miałem wielką przyjemność uczestniczyć…
Super, super, super! (doprecyzuję żebyś mógł się olkejać tymi karteczkami z onenota ;) czyli : Lekkość z jaką ją prowadziłeś, humor, i totalny brak nudy. Pytania na które sobie sam odpowiadałeś – mistrzostwo świata, żałuję tylko że nie miałem czasu pogadać po konferencji osobiście. W kwestii CQRS uświadomiłem sobie że temat jest warty inwestycji czasowej. Mam jedno pytanie, używasz NServiceBus przy CQRS? Jeśli tak to jak radzisz sobie z kosztem licencji? Czy biblioteka naprawdę jest warta swojej ceny?
Do szczęścia brakuje mi tylko prostej aplikacji z kodem źródłowym by zobaczyć architekturę aplikacji jaką tworzysz, nie korzystając przy tym z Repository.
Kuba,
Świetnie, dzięki ! Już do ON wrzucone, nie chce mi się teraz wstawac żeby drukować ;).
NServiceBus używamy i przy CQRS i niezależnie od CQRS. Koszty licencji… klient płaci, nie ja :). Poza tym jeśli chcesz kupić to radzę skontaktowac się z firmą bezpośrednio, niemało można stargować. Rozmawialiśmy (ja i Gutek) z Udim o cenie NSB jesienią w Gdańsku i przyznał że zdaje sobie sprawę,że na polskie warunki to może być nieosiągalne, dlatego chętnie udzielają uzasadnionych zniżek (uzasadnionych – jeśli faktycznie płaci firma polska, a nie klient z USA czy Skandynawii). Jest to spoko szyna, ale ostatnio coraz więcej robimy w MassTransit – darmowe i dobre, warto się przyjrzeć (chociaż NSB jest bardziej rozbudowane).
Co do przykładowej aplikacji to nie mam takiej i na razie niestety nie znajdę czasu żeby takie coś napisać żeby pokazać. Idea jest tutaj:https://github.com/maniserowicz/ProcentCqrs , ale to zabawy sprzed 4 lat i nawet nie wiem czy nie jest to przypadkiem coś czego powinienem się wstydzić :). A aktualna prezentacja: https://github.com/maniserowicz/cqrs-talk (+ branch ‘pdf’)
“potem żartowaliśmy sobie bezczelnie: kurde, każdy używający R# chyba wie jaką sieczkę to narzędzie robi z naszych maszyn, 32GB RAMu, SSD i i7 to dla niego za mało, więc może niech JetBrains weźmie te wszystkie porady i najpierw zastosuje u siebie? :). ”
hahahahahahahahaha… (trzy godziny później): hahahahahahahahaha… :)
Super tekst. Dzięki za umilenie czasu :)
Żałuję, że nie mogłem być (przy okazji jeszcze raz dzięki za pamięć).
dariol,
Następnym razem :)
[…] to dość obszernie, więc czasami napisanie relacji to godzinka, a czasami: kilka godzin (ostatni post po WROC# zajął mi 3 godziny, niektóre relacje z MTSów nawet po 7-8 godzin). Czy warto? Tak! Wiem, że te […]