28 marca 2010

Ochy i echy z piątkowego 4Developers w Poznaniu

Krótko: Było wspaniale!

Trochę obszerniej: Było wspaniale - społecznościowo i merytorycznie.

A teraz wylewniej: Wyjazd z Warszawy o 8:35 i wjechałem do Poznania o 11:30. Przejazd do hotelu i po krótkiej rozmowie z Anią Kołodziejczyk (organizatorką konferencji 4Developers) pojawiłem się na mojej pierwszej prezentacji, w której Waldi (Waldemar Kot) przedstawił JPA 2 w TopLink Grid – skalowanie aplikacji korzystających z Java Persistence API. Ciekawie i na temat, a najbardziej podobały mi się ostatnie 10 minut z Eclipse i przykładami z Coherence i Oracle XE w tle. Zacząłem się zastanawiać, jaką to ma maszynę, że wszystko działa wystarczająco szybko, aby włączać i wyłączać. Wolałbym, aby teorii było mniej (już znałem), a więcej praktyki, szczególnie pod względem wykorzystanych narzędzi i ich konfiguracji.

Później przerwa i obiad z Pawłem (Szczecin), Marcinem (Toruń/Kraków) i Jackiem (Opole/Płock). Po tym zdecydowałem się na prezentację Wiedza o ASP.NET MVC: Budowanie aplikacji w 45 minut ze ścieżki .Net & C#. Zastanawiam się, dlaczego nic nie było o F#, na którego ostrzę sobie zęby?! Jedynym podsumowaniem prezentacji to, że ASP.NET MVC było łudząco podobne do Grails, ale w Grails wiele było obsłużone przez DSL, który nie przypominał programowania, jak to miało miejsce w ASP.NET MVC. Przekonałem się, że wybór na Javę jest znacznie przyjemniejszym wyborem.

Kolejna prezentacja to Marcin Kalas z Co nowego w Java SE 7?. Kiedy tak przysłuchiwałem się zmianom, nie mogłem oprzeć się wrażeniu, że wszystkie te zmiany dają dużo ciekawych rozwiązań programistom, którzy już siedzą w temacie. Dla nowicjuszy nie będzie lepiej, a SCJP 7 będzie na prawdę wyzwaniem. W SCJP5 nie było tematu współbieżności, co sądzę, że zagości na egzaminie z 7-ki z tymi innymi zmianami. Zdobycie egzaminu z języka Java będzie niezwykle karkołomnym przedsięwzięciem. Dla mnie, programisty javowego, sama możliwość skorzystania z tych zmian uatrakcyjnia język i sposób wyrażania się nim. Podobają mi się zmiany w zakresie niepowtarzania typów w typach generycznych (inferencja typów będzie w rękach kompilatora, który po deklaracji dowie się, z czym ma do czynienia) oraz wprowadzenie domknięć. Czekam z niecierpliwością na 7-kę!
Odnośnie samego prowadzenia prezentacji przez Marcina to, jakkolwiek zawartość merytoryczną oceniam bezsprzecznie na 5+, strona werbalna pozostawiała wiele do życzenia. Wybacz Marcin, ale czuć było Twój stres, który objawił się wielokrotnym, 3-krotnym powtarzaniem pojedynczego zdania z dłuższymi przerwami, co było bardzo uciążliwe dla słuchaczy (potwierdziłem to podczas rozmowy z kilkoma innymi słuchaczami). Chylę czoła dla Twojego przygotowania merytorycznego, ale strona werbalna kuleje i trzeba nad nią popracować.

Kolejne wystąpienie to prezentacja Sławka Sobótki o "Craftsmanship i wzorce projektowe". To była prezentacja, z której można się było wiele nauczyć - merytorycznie o samych wzorcach od strony ich użycia, jak i sposobu prowadzenia wystąpienia. Jako, że po nim występowałem ja, byłem jego wystąpieniem tak samo zachwycony, co zaniepokojony - podniósł mi poprzeczkę tak wysoko, że zacząłem się poważnie zastanawiać, co ja tutaj robię, z czym do ludu?! Zacząłem odczuwać tremę. Kwieciste słownictwo i tematyka tak mnie wciągnęły, że chciałbym więcej. Jako plan odnotowałem sobie ponowne przyjrzenie się wzorcom projektowym Chain of responsibility (dlaczego nie ma w polskiej Wikipedii?!), Strategia oraz Dekorator. Niezwykle inspirujące wystąpienie, po którym wolałbym mieć chwilę na wewnętrzne dywagacje niż występować ze swoim tematem.

I się stało, pojawiłem się ja. Wybiła 17-ta, a ja wciąż nie startuję na prośbę organizatorów - postanowili skorzystać z chwili (napięcia?) i wylosowali szczęśliwca w konkursie na historyjkę z Garfieldem. Zacząłem od...wpadki ze slajdami. Jak to ktoś poradził - kiedy się ma pierwszy slajd jak ostatni, łatwo można wpaść w pułapkę próbując rozpoczynać od ostatniego (!) :) Mnie się to przytrafiło i poczułem, jak atmosfera gęstnieje. Poczułem dreszczyk emocji, ale z pomocą publiczności udało się opanować temat i...po...szło! Jak było nie mi oceniać, ale udało mi się nawiązać pewną interakcję z uczestnikami, co uważam za duży sukces. Kolejnym była publika z żeńską częścią, która zdawała się być żywo zainteresowana tematyką, więc to kolejny. Zacząłem żałować, że poszedłem zbyt szeroko w tematykę i nie mogłem tym samym pokazać owego wychwalanego przeze mnie programowania deklaratywnego, w którym deklarujemy zamiast oprogramowywać. Szkoda, a mam wrażenie, że tego ode mnie wielu oczekiwało. Pilnowałem się z czasem (ostatecznie miałem 45 slajdów na 45 minut) i nietrzymaniem rąk w kieszeni. Ciekawym oceny końcowej. Z rzeczy, które postanowiłem poprawić to uatrakcyjnienie slajdów o grafikę i znalezienie czasu na krótki przykład wprowadzający - uruchomienie demo, przejrzenie kodu, a później dopiero część teoretyczna, którą podsumowuję ponownie częścią praktyczną (może być ponownie to samo, co na początku). Sądzę, że takie podejście wymaga zawężenia tematu i koniecznie określenia, dla kogo jest prezentacja i poziomu zaawansowania uczestników. Obowiązkowe jest również ponumerowanie slajdów, aby wiadomo było, ile przed nami i wyrównanie czasu do aktualnej pozycji. Gdybym jeszcze dowiedział się, jak poradzić sobie z dzieleniem ekranu na dwa w OpenOffice byłoby cudnie. Chciałbym uzyskać efekt prezentacji slajdów dla publiczności, a dla siebie zegar i kolejny slajd na własnym ekranie. Wiem, że jest to możliwe w MS Office, ale na OpenOffice nie udało mi się tego uzyskać. Za mało się starałem? Prezentację zrobiłem na Macu, więc jeszcze mogę pójść w ścieżkę Keynote, ale to kolejne płatne narzędzie. Czyżbym nie miał wyboru?

Uaktualnione slajdy znajdują się do pobrania jako JacekLaskowski-4Developers-Modele-SCA-OSGi-a-JavaEE-26.03.2010.pdf.

Powrót nieoczekiwanie o 18:28 (planowałem o 19:28) z Jackiem Lisem, co mimo wydłużenia podróży o 30 minut, zeszło niezwykle szybko. W końcu spotkały się dwie gaduły :-)

Dziękuję organizatorom - Ani, Andrzejowi i pozostałej (nieznanej mi) części zespołu 4Developers - za zorganizowanie wspaniałej konferencji i stworzenie niezapomnianej atmosfery z ludźmi z całej Polski. Brakowało mi osób z północno-wschodniej ściany Polski. Czyżby tam Java nie należała do stosowanych języków?! Mówiło się, że cena obiadu była wygórowana i wielu zrezygnowało, a dotarcie do miejsca, gdzie można było zjeść taniej było wyzwaniem samym w sobie. To był zdecydowany minus płatnej konferencji. Sam pomysł zorganizowania w hotelu był doskonały. Podobno niektórzy schodzili do sal w...kapciach! Już mi się marzy zorganizowanie konferencji w jakimś malowniczym miejscu, np. Pieninach, czy gdzieś w centrum Polski, ale poza dużymi aglomeracjami miejskimi. 2-dniowy weekend w hotelu w ciekawym miejscu mógłby połączyć potrzeby krajoznawcze z zawodowymi. Ktoś jeszcze o tym myśli i miałby miejsce na wrześniowo-październikową konferencję? Podlasie, Polesie, Bory Tucholskie, Pieniny, Bieszczady to są miejsca, gdzie możnaby tanio i w ciekawej atmosferze (np. przy ognisku) obgadać niuanse programowania korporacyjnego w Javie i nie tylko.

Jak widać 4Developers odcisnął swoje piętno na moim postrzeganiu imprez javowych w Polsce i był przyczynkiem do kolejnych. Dziękuję!

p.s. Jeśli ktokolwiek wyraził swoje zdanie nt. konferencji na swoim blogu i czyta tego, proszę o podlinkowanie w komentarzu. Warto rozważyć.

10 komentarzy:

  1. Z wzorcami projektowymi jest jeden problem - mianowicie większość przykładów prezentuje ich zastosowanie w kontekście sterowników maszyn, systemów okienkowych, frameworków itp. Widać to też na wiki.

    Natomiast ciężko znaleźć odniesienie do logiki biznesowej - a tego typu soft tworzymy w Javie (EE).

    Nie pozostaje nic innego jak przetrawienie istniejących przykładów, głęboka refleksja na meta-poziomie aby znaleźć abstrakcyjne reguły stosowalności i potencjalne korzyści a następnie próby stosowania w logice biznesowej.

    OdpowiedzUsuń
  2. Odpowiadając na prośbę o podlinkowanie blogów osób, które były na 4D:
    http://wilgucki.blogspot.com/2010/03/wrazenia-po-4developers-2010.html
    http://urzenia.net/468/4developers/

    OdpowiedzUsuń
  3. @WooKasZ: Mówi się, że tak. Wystąpienia były nagrywane, więc technicznie nic nie stoi na przeszkodzie. Sam wiesz jednak, że takie sprawy wymagają czasu, więc trzeba cierpliwie czekać. Kiedy się pojawią i się o tym dowiem, na pewno nie omieszkam poinformować szanownych czytelników (i tylko ich! :-))

    OdpowiedzUsuń
  4. Jestem zdumiony Twoim zdziwieniem nt wzorców :)
    Widać, że nieraz braki w technologii wychodzą na plus.
    Bo w PHP jeśli chodzi o Strategy i Decorator to chleb powszedni...

    OdpowiedzUsuń
  5. @openid - żebyś wiedział:P

    W PHP nie programowałem od 6 lat więc nie orientuję się jak to wygląda, ale w świecie Javy problem polega na mnogości (słabych i nie do końca przemyślanych w większości) rozwiązań. Jesteśmy cały czas na etapie próby kompletowania skrzynki z narzędziami zamiast skupić się na problemach wyższego rzędu.

    Czyli innymi słowy, póki co, onanizm techniczny pochłania większość naszych zasobów poznawczych.

    OdpowiedzUsuń
  6. Do podziału ekranu podczas prezentacji możesz użyć wtyczki Sun Presenter Console:

    http://extensions.services.openoffice.org/project/presenter-screen

    OdpowiedzUsuń
  7. Zgodnie z prośbą podlinkowuję: http://blog.solidcraft.eu/2010/03/4developers-2010-review.html

    Dzięki za ciekawą konferencję :)

    OdpowiedzUsuń
  8. A jest jakieś ogólne narzędzie na taki podział ekranu podczas prezentacji, ale które by współpracowało z jakimś czytnikiem pdfów?

    OdpowiedzUsuń
  9. Witam
    To ja może jakiś kamyczek do ogródka Jacka, a dokładnie 2: nie wiem czemu pojawiło się JavaBeans aka POJO - JavaBean to POJO ale nie każde POJO to JavaBean. Te dwa terminy są ze sobą w relacji ale na pewno nie jest to == .
    No i 2 sprawa Spring Framework to nie tylko DI - ale też Abstract of services (czyli np. transakcyjność, bezpieczeństwo, remoting, schedulling) i AOP.
    Jeśli podejmować się tematu związanego ze specyfiką ewolucji (przejścia) z architektury EJB 2.1 do Spring to trzeba podkreślić powrót do POJO(czyli nie implementujemy, nie rozszerzamy żadnych elementów frameworku) dzięki temu możemy tworzyć komponenty które uruchomimy w Junit, Java SE, Java EE, czy też OSGI.

    OdpowiedzUsuń