jdd 2k10

Jdd 2k10
Nowa, lepsza, znowu na terenie UEKu (dawniej Akademii Ekonomicznej). Lokalizacja, poza samą salą wykładową, ze wszech miar wygodne, dobry dojazd, zapewniony parking i dużo miejsca wszędzie. Korytarze przestronne, było gdzie rozmawiać albo przeczekiwać wykład (o czym za chwilę). Nowość: dwudniowa (7 i 8 października), ale za cenę jednej jedynej jedynie słusznej ścieżki. To znaczy, że podczas ‘porywającego’ marketingu pewnej firmy ze stolicy światowego IT alternatywą było stanie na korytarzu. Podobnie z resztą na wykładzie Oracle’a, którego, o dziwo, reprezentował nie-Waldek Kot. Posłuchałem chwilę, nie porywało, a i o samym Coherence już gdzieś było. Poza tym catering dobry i bardzo sprawny, poślizgów prawie brak, dedykowane miejsca do ładowania notebooków (na sali wykładowej i korytarzu), sprawnie działające wifi. Jedyna niespodzianka to przesunięcie agendy na wcześniejszą porę kilka dni przed samą konferencją – zdarza się, szczególnie na tej uczelni 🙂
Co do wykładów, to wybrałem… ach tak, przy jednej ścieżce wybrano za mnie. Co jest o tyle zabawne, że agenda materializowała się w zasadzie tuż przed samą konferencją, a najniższa cena była przy znanych 1 lub 2 speakerach. Chociaż napisali “Linda Rising” i starczyło jako zachęta – Billem B by mnie nie przyciągnęli.
Pierwszy wykład: Bill Burke o REST. Dobrze prowadzony, ale.. kacyk prowadzącego + temat nie wieje świeżością. JAX-RS był nowością jakiś czas temu, a teraz.. dobrze, że nie nowości w jdk5. Na domiar złego wykład poruszył z wierzchu tematykę zamiast mówić o ciekawych use case’ach, przypadkach, problemach. Może przesadzam, może dużo ludzi nie słyszało o reście, może.. nie wiem. Wiem, że ja słyszałem, czytałem, wiem o co chodzi i nie czuję się porwany. Następnie Angelika Langer i aplikacje wielowątkowe. To akurat bardzo udany wykład, dobrze wyjaśniał i spokojnie nadawałby się na 2-3 godzinny talk – tematyka obszerna a problemów multum (a ile radości przy debugowaniu). Niestety, Angelikę ciężko było potem spotkać – może tylko mi i ktoś miał więcej szczęścia. W każdym razie duży +.
Jarosław Błąd. Jego wykłady są jak wielka rzeka: powolne, majestatyczne, trochę wiadomo co przyniosą, czasem też trafi się jakaś perełka. Ogólnie +, szczególnie że dzielił się swoimi doświadczeniami. Ted Neward zgodnie z oczekiwaniami, sprawnie, szybko, z dowcipem i do tego bardzo konkretnie o tym, jak do javy dorobić pewne fragmenty języków funkcyjnych. Ted kodował na żywo, więc każdy mógł zobaczyć, że da się to napisać w 30 minut, pokazał, że ktoś zaimplementował to już w Functional Java i Google Guava.. a potem pochwalił języki, które mają te feature’y wbudowane. Piotrka Walczyszyna przeskoczyłem, widziałem już 2 jego prezentacje w tym roku. Na koniec dnia pierwszego Linda Rising, ‘fearless change’, czyli ‘pattern princess’ o patternach wprowadzania zmian. Mimo, że najmniej techniczna prezentacja z całego dnia, była dla mnie najciekawsza. Gdyby tylko nie ucięto jej chwilę przed końcem.
Po pierwszym dniu zorganizowano też imprezę urodzinową (wszak to 5 edycja) w klubie Pauza. Było dobrze, dopóki nie włączyli za głośnej muzyki i do rozmówców trzeba było krzyczeć. Imprezy konferencyjne mają już to do siebie, że ludzie chcą sobie porozmawiać, a tu, jakkolwiek to brzmi, ktoś przeszkadzał muzyką.
Drugi dzień zaczynał się albo od wykładów, albo warsztatów (Linda o wywieraniu wpływu, które z resztą wybrałem, Ted o Scali i Piotrek o Flexie). Nie wiem, co było na wykładach, bo siedziałem na warsztatach i.. jeszcze nigdy 3h na terenie tej uczelni nie zleciało mi tak szybko. Mimo, że tematyka bardzo miękka i nietechniczna, to wydaje mi się, że się przyda 🙂
Oracle Coherence.. zaraz, Oracle i nie ma Walkda, co jest? Nowy prowadzący to niestety nie ta sama liga, może się wyrobi 🙂
Ostatnim (i jedynym :P) wykładem którego wysłuchałem w pełni był tego dnia Technical Debt, prowadzaony przez Thomasa Sundberga. Gość jest inteligentny, tylko niestety mój odbiór został zakłócony przez kiepski dźwięk.
Było nieźle. Organizacyjnie bardzo sprawnie, bez poślizgów, bez kolejek. Gorzej natomiast z częścią merytoryczną, rozumiem, że sponsor chce mieć wykład, ale kogo na konferencji technicznej w sali wykładowej interesuje, że rekrutuje? Ma standa, może robić cuda (vide Software Mind, który na Studenckim Festiwalu Informatycznym zawsze pokazuje coś, co przyciąga tłumy). Prezentacje na których byłem były dobre, poznałem kilka ciekawych osób, ale.. brakło tego czegoś. Standy sponsorów jakieś takie.. niemrawe, z resztą 3 z nich to outsourcing/agencje rekrutacyjne. Wydawałoby mi się, że ludzie z takiej branży powinni być jacyś bardziej.. ludzko-żywiołowi, do mnie nie trafili.
Summa sumarum jestem zadowolony, jakość rozmów w przestronnym korytarzu uratowała mnie od nudy 🙂

Nowa, lepsza, znowu na terenie UEKu (dawniej Akademii Ekonomicznej). Lokalizacja, poza samą salą wykładową, ze wszech miar wygodne, dobry dojazd, zapewniony parking i dużo miejsca wszędzie. Korytarze przestronne, było gdzie rozmawiać albo przeczekiwać wykład (o czym za chwilę). Nowość: dwudniowa (7 i 8 października), ale za cenę jednej jedynej jedynie słusznej ścieżki. To znaczy, że podczas ‘porywającego’ marketingu pewnej firmy ze stolicy światowego IT alternatywą było stanie na korytarzu. Podobnie z resztą na wykładzie Oracle’a, którego, o dziwo, reprezentował nie-Waldek Kot. Posłuchałem chwilę, nie porywało, a i o samym Coherence już gdzieś było. Poza tym catering dobry i bardzo sprawny, poślizgów prawie brak, dedykowane miejsca do ładowania notebooków (na sali wykładowej i korytarzu), sprawnie działające wifi. Jedyna niespodzianka to przesunięcie agendy na wcześniejszą porę kilka dni przed samą konferencją – zdarza się, szczególnie na tej uczelni 🙂

Co do wykładów, to wybrałem… ach tak, przy jednej ścieżce wybrano za mnie. Co jest o tyle zabawne, że agenda materializowała się w zasadzie tuż przed samą konferencją, a najniższa cena była przy znanych 1 lub 2 speakerach. Chociaż napisali “Linda Rising” i starczyło jako zachęta – Billem B by mnie nie przyciągnęli.

Pierwszy wykład: Bill Burke o REST. Dobrze prowadzony, ale.. kacyk prowadzącego + temat nie wieje świeżością. JAX-RS był nowością jakiś czas temu, a teraz.. dobrze, że nie nowości w jdk5. Na domiar złego wykład poruszył z wierzchu tematykę zamiast mówić o ciekawych use case’ach, przypadkach, problemach. Może przesadzam, może dużo ludzi nie słyszało o reście, może.. nie wiem. Wiem, że ja słyszałem, czytałem, wiem o co chodzi i nie czuję się porwany. Następnie Angelika Langer i aplikacje wielowątkowe. To akurat bardzo udany wykład, dobrze wyjaśniał i spokojnie nadawałby się na 2-3 godzinny talk – tematyka obszerna a problemów multum (a ile radości przy debugowaniu). Niestety, Angelikę ciężko było potem spotkać – może tylko mi i ktoś miał więcej szczęścia. W każdym razie duży +.

Jarosław Błąd. Jego wykłady są jak wielka rzeka: powolne, majestatyczne, trochę wiadomo co przyniosą, czasem też trafi się jakaś perełka. Ogólnie +, szczególnie że dzielił się swoimi doświadczeniami. Ted Neward zgodnie z oczekiwaniami, sprawnie, szybko, z dowcipem i do tego bardzo konkretnie o tym, jak do javy dorobić pewne fragmenty języków funkcyjnych. Ted kodował na żywo, więc każdy mógł zobaczyć, że da się to napisać w 30 minut, pokazał, że ktoś zaimplementował to już w Functional Java i Google Guava.. a potem pochwalił języki, które mają te feature’y wbudowane. Piotrka Walczyszyna przeskoczyłem, widziałem już 2 jego prezentacje w tym roku. Na koniec dnia pierwszego Linda Rising, ‘fearless change’, czyli ‘pattern princess’ o patternach wprowadzania zmian. Mimo, że najmniej techniczna prezentacja z całego dnia, była dla mnie najciekawsza. Gdyby tylko nie ucięto jej chwilę przed końcem.

Po pierwszym dniu zorganizowano też imprezę urodzinową (wszak to 5 edycja) w klubie Pauza. Było dobrze, dopóki nie włączyli za głośnej muzyki i do rozmówców trzeba było krzyczeć. Imprezy konferencyjne mają już to do siebie, że ludzie chcą sobie porozmawiać, a tu, jakkolwiek to brzmi, ktoś przeszkadzał muzyką.

Drugi dzień zaczynał się albo od wykładów, albo warsztatów (Linda o wywieraniu wpływu, które z resztą wybrałem, Ted o Scali i Piotrek o Flexie). Nie wiem, co było na wykładach, bo siedziałem na warsztatach i.. jeszcze nigdy 3h na terenie tej uczelni nie zleciało mi tak szybko. Mimo, że tematyka miękka i nietechniczna, to warsztaty świetne, słuchało się wspaniale i w ogóle 🙂

Po warsztatach wykład o Oracle Coherence.. zaraz, Oracle i nie ma Walkda, co jest? Nowy prowadzący to niestety nie ta sama liga, może się jeszcze wyrobi. Ostatnim (i jedynym :P) wykładem którego wysłuchałem w pełni był tego dnia Technical Debt, prowadzaony przez Thomasa Sundberga. Gość jest inteligentny, tylko niestety mój odbiór został zakłócony przez kiepski dźwięk.

Było nieźle. Organizacyjnie bardzo sprawnie, bez poślizgów, bez kolejek. Gorzej natomiast z częścią merytoryczną, rozumiem, że sponsor chce mieć wykład, ale kogo na konferencji technicznej w sali wykładowej interesuje, że rekrutuje? Ma standa, może robić cuda (vide Software Mind, który na Studenckim Festiwalu Informatycznym zawsze pokazuje coś, co przyciąga tłumy). Prezentacje na których byłem były dobre, poznałem kilka ciekawych osób, ale.. brakło tego czegoś. Standy sponsorów jakieś takie.. niemrawe, z resztą 3 z nich to outsourcing/agencje rekrutacyjne. Wydawałoby mi się, że ludzie z takiej branży powinni być jacyś bardziej.. ludzko-żywiołowi, do mnie nie trafili.

Summa sumarum jestem zadowolony, jakość rozmów w przestronnym korytarzu uratowała mnie od nudy podczas unikanych wykładów 🙂

Idea 9, jdk 1.4, debug i problem

8. grudnia wyszła nowa wersja IntelliJ. Działa świetnie, poza tym, że próby debugowania z jdk 1.4 kończyły się tak:

1
2
3
4
5
6
7
8
9
10
C:devsdkjdk1.4binjava
-Xdebug
-Xrunjdwp:transport=dt_socket,address=127.0.0.1:3519,suspend=y,server=n
-Xmx512M
com.firma.krzkak.DataRunner

FATAL ERROR in native method: No transports initialized
Transport dt_socket failed to initialize, rc = 509.

Process finished with exit code 1

Normalnie kod się uruchamiał, działał, ale debug za razem wzięte ChRL oraz drugi, wspaniały i drugi pod względem liczby ludności kraj, nie chciał ruszyć. W końcu znalazłem walkaround:

1
cp jdk1.4/jre/bin/dt_socket.dll jdk1.4/bin/

I działa, życie jest piękne, a do urlopu 3 dni robocze 🙂

Hello world!

Skończyłem z uczelnią (a.k.a. zostałem magistrem), także końca dobiega moja przygoda jako Campus Ambasador firmy Słoneczko Systemiki (Sun Microsystems), naturalną śmiercią umrze blogs.sun.com/ags. Zdecydowałem się założyć nowy, lepszy blog, na którym mam nadzieję uda mi się napisać coś częściej niż raz na kilka miesięcy 😉

Wczoraj wieczorem byłem zdecydowany na eksperyment pt. Movable Type – przede wszystkim z czystej ciekawości. Wszyscy używają WordPressa, sam miałem z nim trochę do czynienia, a tak myślałem, że przyjdzie mi poznać coś nowego. Ciekawość i skłonność do odkrywania nieznanych rozwiązań wzięły górę na niecałą dobę, dlatego ciąg dalszy bloga będzie na ‘zwykłym’ wordpressie.

Krwinka walcząca, czyli Javarsovia 2k9

Piszę ten post z klawiatury Logitech Wave, którą udało mi się zdobyć (po raz pierwszy wygrałem coś na konferencji:D) podczas konkursu organizaowanego przez firmę Javart.

Wyjazd do stolicy uważam za udany, choć do wszystkich prezentacji miałem tym razem nosa. Wybrałem:
Obliczenia w chmurach – Od kiści po siatce do chmury (mogło być super, było bez rewelacji)
Garbage First – nowy garbage collector w maszynie HotSpot (solidny, dobrze przygotowany wykład)
Klastry i loadbalancer w JBossie
Android z perspektywy programisty Java
Ewolucja Architektury (dobrze się słuchało)

Sama konferencja dobrze przygotowana, uczestnicy przybyli tłumnie, wszyscy dostali koszulki, dużo osób dostało kubki – wielkie brawa dla organizatorów, którzy zadbali, aby wszystko działało i było jak najlepiej. Przyjemnie uczestniczyć w dogranej konferencji z perspektywy uczestnika, trzeba tylko przyjść i słuchać/dyskutować, można nawet coś wygrać.
*wywodzi się z mojej interpretacji loga, na której zamiast Duke’a połączonego z syrenką dopatruję się krwinki 🙂
ps. To był pierwszy znany mi event Javowy od znacznego czasu, podczas którego Jacek Laskowski nie był prelegentem 🙂

Eclipse++

33 projekty, 24 mln linii kodu, 10 nowych narzędzi, czyli nowe wydanie Eclipse’a. Mimo, że nie jest to moje ulubione IDE (IntelliJ do kodowania jest po prostu lepszy), to na bazie Eclipse’a oparto wiele interesujących narzędzi i to one są źródłem mojego zainteresowania.

Najbardziej interesującymi elementami nowego wydania są wg mnie:
narzędzie do budowania DSLi.

framework do tworzenia aplikacji dostępnych dla użytkowników

Oprócz tego standardowe nowości: rozwój BIRTa, edytora Javy,

Co przyniesie NB 6.7

RC2 do pobrania, a więc i finalna wersja NB 6.7 tuż, tuż. Najważniejsze zmiany wg mnie, to:

  • integracja z project Kenai i Bugzillą, wsparcie dla JIRY w drodze (będzie w autoupdacie)
  • import pluginów z poprzedniej wersji NB
  • lepsze wsparcie Mavena (lepsze dodawanie dependencji) i poprawiony edytor POMów z code completion i generatorami dla pluginów, profili, dependencji i exclude’owania dependencji
  • profilowanie projektów jee opartych na Mavenie (wreszcie!)
  • wygenerowane źródła (jaxb etc) widać w widoku Project (wreszcie!) i nie commitują się do VCSów
  • możliwość synchronizowania widoku Project i Files z edytorem, czyli wybrany plik otwiera się w edytorze
  • export informacji z profilera do .csv, html i xml oraz OQL do grzebania w heapdumpach
  • zdalne debugowanie Rubyego
  • support Grails 1.1 + uzupełnianie kodu

Dobrana para: linki i profiler

Tak się dziś złożyło, że po raz pierwszy miałem okazję podpiąć profiler do pewnej aplikacji, nazwijmy ją roboczo X. X jest dość stara, po części na jej kodzie wzorowali się Włosi projektując makaron znany dziś jako spaghetti. X ma tę niemiłą cechę (komputer ma czekać na mnie, nie na odwrót!), że koszmarnie długo się włącza.
Ponieważ nie mamy w zespole licencji na JProfiler (z którym integruje się mój ulubiony IntelliJ), więc do wyboru pozostał Eclipse lub NetBeans. Eclipsea nie lubię, włączyłem więc NB i zacząłem działać.

Niestety, kod który należało zbadać jest
a) porozrzucany
b) pomieszany z olbrzymią ilością kodu innych aplikacji
c) pokaźnych rozmiarów
co powoduje, że NB nie jest w stanie w rozsądnym czasie go zaindeksować.

Koniecznie chciałem uniknąć kopiowania (choćby po to, żeby nie musieć ręcznie synchronizować z kontrolą wersji), ale ze względu na XP, o ln -s mogłem zapomnieć. Znalazłem za to podobne narzędzie: http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx. W NB utworzyłem projekt, dodałem podlinkowane katalogi ze źródłami, w Project Properties -> Source Format ustawiłem 1.4 i w Libraries -> Java Platform -> Manage dodałem ulubione 😉 jdk 1.4, prawie gotowe. Profiler podczas uruchomienia oznajmił, że zadziała tylko na 1.6. Na szczęście aplikacja działała poprawnie.

I w zasadzie tyle, samo profilowanie jest proste, bardziej męczące były czary w filesystemie, za które w nagrodę dostałem 50% przyspieszenia (2:10 różnicy, sic!) podczas startu!

Wyjazd do słonecznej Pragi

W dniach 12-15 marca dane mi było wybrać się do słonecznej (choć okrutnie wtedy zimnej) Pragi. Odwiedziłem siedzibę firmy Sun Microsystems, gdzie inne osoby z Europy (i nie tylko), które podobnie jak ja są Sun Campus Ambassadorami.


Podczas wycieczki miałem okazję wysłuchać kilku bardzo interesujących prezentacji, m.in. o: nowościach w GlassFish v3 (nowej wersji serwera aplikacyjnego, opartej o OSGi) i GlassFish WebSpace (portalu opartym o LifeRay). Zrobiłem mnóstwo zdjęć, zapraszam do pierwszych dwóch galerii: 

Dzień pierwszy: i kolacja 😉

Sun Certified Netbeans Specialist

Tak, to nie pomyłka! Naprawdę istnieje egzamin sprawdzający sprawność w użyciu NetBeansa. Do tego ja już go zdałem 🙂 Ale opowiedzmy historię od początku.

Dawno, dawno temu, w odległej galaktyce, znaczy się w lipcu ubiegłego roku, wynalazłem gdzieś link do jakiejś ankiety, która zadawała pytanie: “o co warto pytać w przypadku sprawdzania znajomości IDE”. Z poczuciem zabicia kawałka letniej nudy wypełniłem i zapomniałem :-). 
W październiku dowiedziedziałem się, że naprawdę ktoś robi egzamin z NetBeansa. Byłem delikatnie mówiąc, nastawiony niezwykle sceptycznie wobec całego przedsięwzięcia. Po przejrzeniu zakresu egzaminu doszedlem do wniosku, że może ktoś się postarał, ale musiałbym to zobaczyć na żywo. Zawartość zgadzała się mniej więcej z opinią, którą wyraziłem we wspomnianej wcześniej ankiecie. 
W listopadzie zapisałem się na betę. Czy to z ciekawości, czy z wrodzonego sceptycyzmu, ciężko powiedzieć.
W dzień egzaminu z gorejącym czołem (bo akurat miałem wątpliwą przyjemność być chorym) usiadłem przed komputerem i zacząłem rozwiązywać. Pytań było mnóstwo (rzeczywisty egzamin to 61 pytań, beta miała ponad 150) i ponad 3h czasu do dyspozycji (75 minut w finalej wersji). Wyszedłem po mniej więcej 1.5h. Opiekun pytał czy “na pewno?” i sugerował, że “może jeszcze coś chcę przemyśleć”, ale po pierwsze byłem pewien swego, a po drugie, skończyły mi się pastylki na kaszel, który stał się dla mnie nie do zniesienia. Później zdążyłem o całej sprawie spokojnie zapomnieć, aż tuż przed świętami (23 grudnia) dostałem potwierdzenie, że zdałem. 
Summa sumarum stało się, zostalem Sun Certified Netbeans Specialist. Tyle historii, teraz coś o samym egzaminie.

Zakresem i jakość egzaminu zaskoczyły mnie pozytywnie. Pytania uważam za w miarę łatwe dla logicznie myślącego człowieka, choć zdarzyło mi się nie być pewnym odpowiedzi, a przy kilku otworzyłem oczy szeroko ze zdumienia – “to coś takiego w ogóle JEST?!”. Bardzo duży nacisk położono na: 
  • tworzenie różnych kombinacji bibliotek, jre 
  • wpinanie się w sposób kompilacji stosowany przez NB (czyli Anta)
  • tworzenie projektu w NB
  • JEE
  • konfigurację NB
  • działanie edytora
Czyli w zasadzie coś, co dobrze znać w IDE z którego się korzysta. I tu chyba dotarłem do sedna całej sprawy: NB nie cieszy się z tego co wiem jakąś specjalną popularnością – sam do pracy wykorzystuję IntelliJ IDEA (i szczerze go polecam!). Fakt, IDEA kosztuje dość dużo, ale jest wg mnie dużo lepsza. Ale dość świętej wojny, pytanie kto będzie zdawał ten egzamin? Widzę w nim korzyść jedynie dla osób, które NB znałyby jako-tako i podczas przygotowań mogłyby poznać swoje IDE lepiej i poznać obszary, których na codzień nie używają.