25 lutego 2010

"Prezentacyjna" dyktatura Tomka z Mule ESB na 62. spotkaniu WJUGa - normalnie Git!

Warszawska Grupa Użytkowników Technologii Java (Warszawa JUG)Niezwykłem komentować wydarzeń ze spotkań Warszawa JUG, ale ostatnie, 62. spotkanie było prawdziwym kilerem wśród WJUGowych prezentacji i wyróżniało się pośród dotychczasowych spotkań! Po prostu nie mógłbym tego nie skomentować. Technologiczne cudo!

Na WJUGowej scenie wystąpił Tomasz Nurkiewicz z Mule ESB i nie byłoby może w tym wielkiego wydarzenia, bo temat ciekawy, jak wiele innych, ale sposób, w jaki przyszło nam oglądać występy sceniczne Tomka przyprawił niejednego o lekką palpitację serca...z wrażenia, że można tak składnie poprowadzić temat (przede mną siedzieli Mateusz Z. i Jacek K., i co rusz potakiwali głową na moje ochy i echy :)). Jestem pełen podziwu dla warsztatu prezenterskiego Tomka, w którym miejsce znalazły - doskonałe przygotowanie merytoryczne (słuchało się z zapartym tchem) i dobrze dobrane narzędzia - IntelliJ IDEA, mnóstwo uruchomionych wcześniej serwerów - James (SMTP/POP3), JBoss AS (kolejki JMS z ActiveMQ i jego wyśmienitą konsolą webową) i serwer FTP - pewnie FileZilla - oraz Git. I było faktycznie Git! Kiedy zobaczyłem, jak można połączyć prezentację kodu źródłowego w trakcie tworzenia oprogramowania na żywo z odtwarzaniem zmian z lokalnego repo Gita (git co -f [tag]) bez straty czasu na przeklejanie ze schowka czy przeklepywanie z kartki, o mało nie spadłem z krzesła. Najbardziej nie mogłem zrozumieć, jak można się tak dobrze przygotować do prezentacji, aby idealnie wpasować się w kolejne numery tagów w repo. Zrozumiałbym, gdyby poszło v1, v2, v4, v6, ale v1, v2, v3, v4, aż do bodajżę v12 przeszło moje najśmielsze oczekiwania. Możnaby powiedzieć, że prezentacja w dużej mierze składała się z kodowania, albo nawet możnaby to nazwać gitokodowaniem, w którym część programowania zrzucono na barki odtwarzania odpowiedniego taga z repo Gita. Bajecznie!

Nie byłbym sobą, gdyby nie udało mi się wyłapać kilku niedoskonałości w wystąpieniu Tomka, a odważyłem się na ich publikację na blogu, bo są one tak niewinne, że wręcz śmiesznie nazywać je "niedokonałościami". Na pewno zabrakło przejścia przez slajdy. Było ich zbyt mało, abym uwierzył, że wszyscy zrozumieli sens tych inboundów, outboundów, trasformersów, ruterów, komponentów i co tam jeszcze w Mule można znaleźć. I nie ma co marzyć, aby tak było, nawet ze slajdami, ale przynajmniej mi brakowało ich, aby ułożyć sobie wiedzę, zobrazować ją. Na pierwszym slajdzie, gdzie pojawiła się architektura Mule ESB było za mało kolorowo i trochę niewidocznie (nie narzekam na wzrok, a siedząc w trzecim rzędzie miałem już problemy z odczytaniem, co na nim było - obstawiam, że za mną już nic nie było widać). Kiedy przeszliśmy pobieżnie przez pozostałe slajdy widać było, że były i kolorowe, i wyraźniejsze. Szkoda, że nie było nam dane ich zobaczyć.

Drugim elementem było zbyt intensywne skakanie po kodzie, otwartych konsolach serwerów, przeglądarce i tak w kółko. Dawałem radę, ale wymagało to ode mnie dużego skupienia i nie było nawet mowy o...układaniu pytań (!) Albo temat był doskonale przedstawiony przez Tomka, albo sala oniemiała z wrażenia i pytań było niewiele. Zabrakło mi tego, bo mogłoby mi uporządkować wiedzę.

Kolejnym zaskoczeniem dla mnie była zbieżność nomenklatury między Mule ESB a SCA. W sumie chodzi o to samo - mediację i na wejściu (usługi) czy wyjściu (referencje) musi być możliwość dogadania się z nadającym lub odbierającym. W Mule ESB na wejściu mówimy o Inbound'zie, a w SCA mamy usługę z odpowiednim binding, który wyznacza protokół. Na wyjściu, w Mule ESB, mówimy o Outbound'zie, a w SCA o referencji z binding, ponownie. Naturalnie, że chciałoby się, aby określenie protokołu wejściowego i wyjściowego było deklaratywne. I tak mamy w SCA (jeśli istnieje odpowiedni binding), ale i w Mule ESB, przy odpowiednim transformer'ze. Trochę za wiele było dla mnie XMLa i zdecydowanie brakowało narzędzia typu IDE, które konfigurację transformacji dla Mule przygotował wizualnie (zamiast zmuszać mnie do zejścia na poziom XMLa).

Odświeżające było również zobaczyć, kiedy strona HTML nie była udostępniana przez serwer, ale po prostu uruchomiona w przeglądarce i dopiero zatwierdzenie formularza słało dane do serwera - do Mule ESB. Niby nic odkrywczego, jak tak piszę o tym, ale wiedzieć a stosować, to dwie różne sprawy.

I te uruchomione serwery - James, JBoss z ApacheMQ, serwer FTP i Mule ESB. Transportowy mix. Ostatnio potrzebowałem obsługi protokołu SMTP/POP3 i jakoś nie wpadłem, aby uruchomić James. Zachodzę w głowę, aby znaleźć odpowiedź dlaczego. Widać za mało chciałem i trzeba mi było pojawić się na występie Tomka. Nauka od lepszych mobilizuje do pracy!

Podsumowując, przed moimi występami w Krakowie i Poznaniu muszę:

* przygotować wszelkie przykłady aplikacyjne w lokalnym repo - git lub hg
* zaprezentować działający przykład po pierwszym slajdzie wprowadzającym
* omówić aplikację slajdami
* (kiedy starczy czasu) rozpocząć tworzenie aplikacji od zera, ale bez zbędnej pisaniny - git co -f [tag] zrobi swoje!
* pamiętać o pytaniach do publiki (jak to miało miejsce podczas spotkania z Kirkiem)
* wrócić do slajdu początkowego z architekturą aplikacji

Do poznania (ale w sensie nauki, a nie wyjazdu na konferencję - zbieżność z Poznaniem przypadkowa :)):

* Mule ESB - pojawiły się książki nt. temat, więc będzie co i dlaczego czytać
* Apache CXF - książka o nim już u mnie leży, więc tym bardziej nie mogę się jej doczekać

A jak Wam podobała się prezentacja? Nagranie z niej już wkrótce w Sieci.

p.s. Poza Tomkiem, wystąpił również Łukasz Dywicki, ale nie dane mi było wysłuchać go, poza 1. slajd z mnóstwem wersji i softu, więc korzystam z...prawa do milczenia.

8 komentarzy:

  1. Robiłem dokładnie takie wersjonowanie (z wykorzystaniem hg) już na wykładzie o AppFuse :P a przerzucanie nie było międy tagami jeśli dobrze pamiętam, tylko kolejnymi changesetami.

    OdpowiedzUsuń
  2. Ja w pełni przyłączam się do pochwał dla Tomka. Trzeba bowiem przyznać, iż ma bardzo dobry warsztat jeśli chodzi o prezentacje!

    OdpowiedzUsuń
  3. Wybacz Wojtku - musiałeś robić to zbyt szybko, abym mógł połapać się w tym tricku :)

    OdpowiedzUsuń
  4. To prawda, prezentacja szła bardzo szybko, a jednak łatwo było nadążyć. Brawo za prezentację!

    OdpowiedzUsuń
  5. Hej, jest mi niezmiernie miło słyszeć tyle miłych komentarzy odnośnie mojej prezentacji. Faktycznie pomysł z lokalnym repo zaczerpnąłem z wystąpienia Wojtka, także jemu należą się brawa :-).

    Niestety z braku czasu musiałem się mocno spieszyć (a i tak skończyłem później, niż zakładałem), stąd szybki charakter prezentacji. Slajdów nie chciałem pokazywać w całości, a jedynie odwoływać się do nich w odpowiednich momentach, gdy przyjdzie na nie czas w trakcie kodowania. Ale to żadne wytłumaczenie, bo nie sztuką jest mówić na jeden temat 4h, sztuką jest zmieścić się w kwadransie.

    Co do książek, to polecam Open-Source ESBs in Action - miałem nawet ze sobą, ale nie zdążyłem wyciągnąć z plecaka :-(. A o CXF zapewne czytasz Jacku Apache CXF Web Service Development - leży już na moim biurku i czeka cierpliwie w kolejce.

    OdpowiedzUsuń
  6. Obie książki są u mnie, więc na pewno im nie odpuszczę (pewnie jeszcze w marcu).

    Tak sobie myślę, że Twoje wystąpienie było tak dobrze przyjęte, że nalegałbym, abyś rozważył ponowne wystąpienie. Gdyby spoktanie było poszatkowane slajdami, to nazwałbym to ideałem, do którego chciałbym podciągnąć swój warsztat prezenterski. Na prawdę wiele się nauczyłem, a biorąc pod uwagę, że było szybko i (prawdopodobnie) z niskiej jakości nagraniem, to wielu przyszłoby jeszcze, albo po prostu pierwszy raz. Na mnie mógłbyś liczyć, więc pozostaje namówić pozostałych 61 osób (tyle się doliczono na ESBowym spotkaniu). Możne ja mógłbym pokazać WESB?!

    OdpowiedzUsuń
  7. Dodam tylko, że to nie jest przypadek. Miałem przyjemność być na prezentacji Tomka z aspectj w firmie... i zawał, brak słów.

    Tomku masz dar, przekazywania wiedzy.
    Mam nadzieję, że rozsmakujesz się w tym i częściej będziesz to robić.

    OdpowiedzUsuń
  8. Do tej pory jestem pod wrażeniem tego wystąpienia. Full profeska. Motyw z wykorzystaniem GIT-a powalił mnie na kolana. Szacunek

    OdpowiedzUsuń