30 stycznia 2010

Niemy film(ik) na weekend - Java Persistence (JPA) 2.0 praktycznie - zestawienie środowiska z EclipseLink i Apache Maven 2

14 komentarzy
Spisałem scenariusz (artykuł Java Persistence (JPA) 2.0 praktycznie - zestawienie środowiska z EclipseLink i Apache Maven 2) i kolejnego dnia przyszło do kręcenia filmiku.

Mimo swoich wad reżyserskich, miernej gry aktorów (poza tymi technologicznymi) i jego dopadło światło dzienne. Na YouTubie pojawił się bez fanfar, nagrody Grammy, Złotych Lwów, czy Oscara, ale doświadczenie jest zdecydowanie większe. Scrinkast można podziwiać na deskach YouTube - Java Persistence (JPA) 2.0 praktycznie - zestawienie środowiska z EclipseLink i Apache Maven 2.

Wiele w nim niedoskonałych cięć, ale z samego produktu jestem niezwykle zadowolony, bo jest to pierwsza edycja, która ujrzała światło dzienne z gadżetami w stylu podświetlanie, spowalnianie, wstawki tekstowe na rozpoczęcie odpowiedniej sesji nagranionej, więc dużo było przy tym pracy edycyjnej, ponagraniowej. Teraz pozostaje zrobić ostatni krok - podłożyć głos narratora, aby poza oglądaniem było trochę życia w nagraniach. Kiedy będzie głos w skrinkastach, będzie mi bliżej do zrealizowania jeszcze jednego pomysłu - podkastów. To takie połączenie przyjemnego z pożytecznym (co jest czym pozostawiam Waszej ocenie). W przypadku skrinkastów, ja kontroluję, co będzie powiedziane, a podkast uważam za ewaluację głosową, gdzie tych rozmówców oczekuje się więcej.

Komentarze odnośnie mojej dotychczasowej pracy nagraniowej są bezcenne na tym etapie, więc śmiało! Potrzeba mi wrażeń w stylu - co było denerwujące, czego za mało/dużo, długość nagrania i sam sposób przedstawiania - wklejanie kawałków kodu zamiast ich wpisywanie. Więcej ich, to mniej Waszego cierpienia później. To tak, jakby powiedzieć "Jak sobie pościelesz, tak się wyśpisz", co oznacza, że jeśli teraz pojawią się (dobre?) rady, to ich wdrożenie na tym etapie będzie przyczynkiem do moich przyzwyczajeń później. Nie ma obawy o mój stan psychiczny. Dam sobie radę nawet z komentarzami w stylu "Do kitu! Zajmij się lepiej hotdogami.", aczkolwiek preferowałbym w takiej sytuacji więcej argumentów.

Przydałaby się jakiś akompaniament muzyczny na podkład, coś w stylu muzyki poważnej, ale delikatnie. Propozycje propozycji pozbawionych praw autorskich, tj. możliwych do użycia bezpłatnie, mile widziane. Ten sam problem będzie i przy podkastach.

A teraz do skrinkasta...

28 stycznia 2010

Java Persistence (JPA) 2.0 praktycznie - zestawienie środowiska z EclipseLink i Apache Maven 2

5 komentarzy
Rozpocząłem lekturę pierwszej książki o najnowszych specyfikacjach spod parasola Java EE 6 - Pro JPA 2: Mastering the Java Persistence API z Apress. Po kilku dniach znalazłem się przy rozdziale 6tym i muszę przyznać, że minęło niewiele ponad 150 stron (z prawie 400), a ja jestem padnięty nawałem informacji. Książka pretenduje do miana książki roku w moim osobistym rankingu książek informatycznych ze względu na formę przekazywania wiedzy w sposób dokładny i przystępny. Mnogość przykładów i wyjaśnień nie pozostawia złudzeń, że to prawdziwa składnica wiedzy mimo, że do końca jeszcze daleko - ja już mam wrażenie, jakbym znał specyfikację JPA2 od podszewki. Oczywiście nie znam, ale moja wiedza teoretyczna wzrosła znacząco. Bardzo podobają mi się dywagacje nt. różnych wzorców projektowych i ich znaczenia w ewolucji JPA2, albo odwrotnie, ich uproszczeniom ze względu na zmiany w JPA2. W przypadku poprzednich książek, jakie ostatnio przeczytałem, normą było przejście przez 1 rozdział w ciągu 1 dnia. Z "Pro JPA 2: Mastering the Java Persistence API" sytuacja zmieniła się diametralnie - nie rozdział/dzień, ale rozdział/3 dni zdaje się być bardziej odzwierciedlający rzeczywistość. Nie sądzę, aby wynikało to z braku cierpliwości, czy coś w ten deseń, ale po prostu z natłoku informacji, jakie przewijają się przez każdą przeczytaną stronę. Jeśli do tej pory, zaznaczałem kilka fragmentów tekstu do późniejszej analizy, to teraz są to całe sekcje (!) Jestem przerażony skomplikowaniem JPA, skoro potrzebna była taka książka, aby wyjaśnić zasady rządzące specyfikacją. Nie jest to wcale wina JPA, ale samego problemu obiektowej reprezentacji danych relacyjnych, którego rozwiązania szukano przez tyle lat i wciąż nie ma tego jedynego.

Pod wpływem uroków JPA2 z "Pro JPA 2: Mastering the Java Persistence API" postanowiłem zestawić środowisko do nauki specyfikacji i tak powstał artykuł Java Persistence (JPA) 2.0 praktycznie - zestawienie środowiska z EclipseLink i Apache Maven 2. Początkowo spisywałem kroki, aby przymierzyć się do screencastu, ale skoro już pojawił się artykuł, pomyślałem, że z nim zawojuję świat :) W artykule wykorzystałem EclipseLink (referencyjna implementacja JPA2), Apache Maven 2 oraz NetBeans IDE i Mercuriala. Pomyślałem o wystawieniu projektu w sieci w jakieś przystępnej formie i padło na Google Code z włączonym Mercurialem. W ten sposób można popróbować się z rozproszonym repozytorium hg i JPA2 jednocześnie. To lubię. Uwagi mile widziane.

p.s. Dostałem informację od Suna, od Oliwi, w związku z tematem Pakiety certyfikacyjne od Suna za 600 PLN do końca stycznia. Dzisiaj, 28.01.2010, jest ostatnim dniem ważności oferty. Śpieszcie się!

25 stycznia 2010

Koniec lektury "WebSphere Application Server 7.0 Administration Guide" - ponownie jedynie "może być"

4 komentarzy
W samą porę uporałem się z kolejną książką o IBM WebSphere Application Server V7 - WebSphere Application Server 7.0 Administration Guide Steve'a Robinsona wydawnictwa Packt z sierpnia 2009. Mam już dosyć tych administracyjnych broszur o wszystkim i o niczym. Nie powiem, że nie nauczyłem się niczego, bo minąłbym się z prawdą, ale poświęcony czas nie został zrekompensowany. Zdecydowanie więcej było czytania niż wiedzy.

Na rynku są dwie pozycje o WASv7, które miałem okazję przeczytać i każda z nich to więcej stron niż wiedzy. Szczęśliwie, ta pozycja opisała konfigurację WASv7 z OpenLDAP i Oracle XE. To właśnie te perełki, które powodują, że zniesmaczony zawartością, trafiając na nie, wraca nadzieja na kolejne. Ale tym razem, nie było więcej. Zdecydowanie za mało o nowościach WASv7, poza agentem administracyjnym. Jak to ujął autor na okładce książki "This book is for administrators with some experience in Java who want to get started with WebSphere", ale nie zgodzę się z zakończeniem "Existing WebSphere users will also find the book useful, especially as there are so many fresh features in the new version", bo, jak już wspomniałem, owych, nowych funkcjonalności jak na lekarstwo. Wiele literówek i pomyłek wcale nie poprawia ogólnej oceny książki. "Może być" oddaje zawartość książki.

Zainteresowani moją recenzją książki w języku angielskim (na potrzeby programu "Książka za recenzję") znajdą ją na moim Wiki - Book review: WebSphere Application Server 7.0 Administration Guide. Zainteresowani lekturą książki mogą ją znaleźć w "Bibliotece Warszawskiego JUGa". Polecam ją jedynie najbardziej zdeterminowanym aktualnym bądź przyszłym entuzjastom WASa. Resztę kierowałbym do WebSphere Application Server Version 7.0 Information Center.

Ale skąd owe "w samą porę", które otwiera ten wpis?! Od kilku dni trwa dyskusja nt. JAX-WS i podejścia między "code-first" a "contract-first" w komentarzach do Przygotowywanie (się do) projektu z JAX-WS i Apache Maven - modularyzacja wychodzi sama. W pełni formy i projektowego doświadczenia, Artur Karazniewicz nie daje za wygraną w batali o sensowność między tymi dwoma podejściami. Moje doświadczenie nie pozwala mi wyjść poza ramy "code-first", bo nad tym da się panować Javą. W konkurencyjnym podejściu króluje WSDL, którego tworzenie może przyprawić o ból głowy. To jednak, w/g Artura, to dobre podejście, zgodne z nurtem - najpierw kontrakt, a później developerka. Tym sprowokował mnie do lektury najnowszej specyfikacji JAX-WS 2.2 (JSR 224), aczkolwiek już obserwuję jego ciągoty w stronę JAX-RS (JSR 311). Nie zapominam też wciąż o mojej ulubionej specyfikacji EJB 3.1 (JSR 318) i jej okolicach. Czytania co nie miara :)

22 stycznia 2010

jacek.hostingjava.pl - z podziękowaniami od JSystems

5 komentarzy
Jeszcze w 2009 na GoldenLine trafiłem na wątek dotyczący hostingu Javy w Polsce - gigantyczne rozbieżności w cenach hostingu Javy.dlaczego?.... Bez wahania uderzyłem do Andrzeja Klusiewicza, który jest właścicielem JSystems, który z kolei jest właścicielem hostingjava.pl. Po kilku dniach otrzymałem propozycję konta na ich systemie w ramach niewielkiej reklamy w społeczności (co właśnie czynię). Taki układ partnerski - ja pomagam im, aby oni pomogli mi. Nie mogłem życzyć sobie ciekawszej propozycji! Od razu się zgodziłem.

Trwało to trochę zanim się wszystko u nich zestawiło, ale ostatecznie cierpliwość została wynagrodzona i mam swój serwer aplikacyjny Apache Tomcat publicznie - http://jacek.hostingjava.pl. Ciekawe, że rozważają wejście na rynek z GlassFishem i/lub JBossem - hosting glassfish, jboss- czy potrzebny?, więc skoro im się chce, to mi również. Z Tomcatem i Grails na razie mam wszystko. Pełen serwer aplikacyjny, np. taki GlassFish v3 z Java EE 6 byłby ciekawą propozycją, ale nie widzę, dla niego zastosowania teraz. Może później. Teraz pozostaje jedynie (?) popracować nad swoimi aplikacjami i je wystawić do publicznego użytku.

Kiedy planowałem stworzenie własnego serwisu javowego z elementami społecznościowymi, serwer stanowił jeden z niebagatelnych problemów finansowych. Pojawiła się propozycja z zespołu dWorld.pl, ale moje "Ja chcę od zera, po swojemu" wzięło górę i postanowiłem iść drogą samotnego wilka szukającego swojej watachy. Bodajże rok temu, wspólnymi siłami z Mateuszem Mrozewskim, powstawał projekt nauczyciel, a już teraz można się nim pobawić pod adresem http://jacek.hostingjava.pl/nauczyciel-0.1.1/ (niech ta wersja w adresie siedzi, bo to prototyp, który niedługo i tak powinien zniknąć z Sieci). Miłej zabawy!

Gdyby komuś przyszło zapytać mnie o wrażenia z nowego serwisu, to śpieszę donieść, że poza założeniem konta (wersja podstawowa) i uruchomieniem aplikacji, nie mam ich wiele. Całość zajęła mi niespełna 5-10 minut, więc wybaczcie, że nie napiszę więcej. Świadomie wybrałem najniższy pakiet, aby poczuć klimaty nowych inwestycji, w których często największą bolączką jest kaska. Każdy grosz się liczy, a w ten sposób moje wrażenia będą bliższe realiom innych, spragnionych własnego hostingu javowego, ale bez pieniędzy.

21 stycznia 2010

Pakiety certyfikacyjne od Suna za 600 PLN do końca stycznia

40 komentarzy
Końcówka roku to dobry moment na jego podsumowanie i podjęcie decyzji odnośnie nowego. Pewnie niejednego z Was męczyło przeświadczenie o mizerności mijającego roku i postanowienie poprawy w kolejnym, co zwykle znowu kończy się nadmiarowymi planami, których spełnienie i tak przyniosłoby niewiele. Tak też u mnie zwykle bywa, że postanawiam wiele, a realizuję niewiele. Oby Wam się to nieprzytrafiało w tym roku i lepiej postanowić mniej i zrealizować wszystko niż postanowić zbyt wiele. Docelowo najważniejsze jest nasze samopoczucie, które szkoda byłoby popsuć na własne życzenie zbyt wygórowanymi postanowieniami. W końcu, nasze życie to nie ciągła praca w korporacji, a po co dobijać się wyśrubowanymi wymaganiami w stosunku do siebie "po godzinach".

I tak możnaby jeszcze długo, ale tutaj o Javie ma być, a nie o mglistych marzeniach ściętej głowy. "Mnie to lotto" jeszcze mnie nie dotyczy, więc humor poprawiam sobie kolejnymi certyfikatami, co po części rekompensują mi niespełnione postanowienia z innych dziedzin. Kilka certyfikatów już poszło na półkę "Zdane", a kilka z nich jeszcze oczekuje na swoje 5 minut.

Pamiętam, że podczas organizowania spotkania z Kirkiem Pepperdine w ramach Warszawa JUG, Sun zaoferował nam nie tylko strawę na to spotkanie, ale i zniżki na certyfikaty javowe. Nie byłoby w tym nic nadzwyczajnego pod koniec roku, kiedy firmy pchają na rynek produkty w korzystnych cenach, aby podbić zyski, ale ta konkretnie oferta wydała mi się interesująca (pamiętam pewną rozmowę, w której uczestniczyłem jako kupujący, który upierał sie przy wyższej cenie, która przypominała targowanie z "Żywota Briana" Monty Pythona) - w ramach tej ceny mamy również możliwość podejścia do egzaminu testowego. Wszystko za 600 PLN. Nie raz słyszę o planach innych z światka javowego i wciąż przewija się jedno - zdać ten czy tamten egzamin. Mimo, ze zwykle przeszkodą jest brak czasu, to jak mawiał Grzesiek Duda (a może to był Radek Holewa):

"Jeśli nie masz czasu na zrobienie czegokolwiek nowego, to zrobienie chociażby jednej z tych rzeczy nie zmieni tego stanu, a zawsze to jedna rzecz do przodu."

Nie jestem pewien, czy szło to dokładnie tak, ale w moim przypadku sprawdza się ta wersja (może stąd brak wyników "na poziomie" i wszystko idzie "po łebkach"?).

Wracając do Suna i jego oferty certyfikacyjnej, to mamy do dyspozycji wszystkie javowe w cenie, która powinna dać się rozliczyć w naszych korporacjach. To w końcu dla dobra wspólnego. Najważniejsze, że kupujemy pakiet teraz, do końca stycznia 2010, a zdajemy do końca roku. Jeśli potrzebujesz dodatkowego bodźca certyfikacyjnego, to świadomość posiadania już zapłaconego egzaminu spełni się w tej roli doskonale. Może i mi w końcu powiedzie się przy SCWCD i SCEA.

Pełna treść oferty od Suna (za ich pozwoleniem):

W ramach oferty mogą Państwo kupić vouchery na wymienione poniżej certyfikacje z pakietem ePractice (pytania testowe). Wysyłając zamówienie należy wpisać kod oferty PL_EXL

CX-310-065 + WGS-PREX-J065C Sun Certified Java Programmer (SCJP)
http://www.sun.com/training/catalog/courses/WGS-PREX-J065C.xml

CX-310-083 + WGS-PREX-J083C Sun Certified Web Component Developer (SCWCD)
http://www.sun.com/training/catalog/courses/WGS-PREX-J083C.xml

CX-310-091 + WGS-PREX-J091C Sun Certified Business Component Developer (SCBCD)
http://www.sun.com/training/catalog/courses/WGS-PREX-J091C.xml

CX-310-230 + WGS-PREX-J230C Sun Certified Developer For Java Web Services (SCDJWS)
http://www.sun.com/training/catalog/courses/WGS-PREX-J230C.xml

CX-310-110 + WGS-PREX-J110C Sun Certified Mobile Application Developer (SCMAD)
http://www.sun.com/training/catalog/courses/WGS-PREX-J110C.xml

CX-310-052 + WGS-PREX-J052C Sun Certified Enterprise Architect (SCEA)
http://www.sun.com/training/catalog/courses/WGS-PREX-J052C.xml

Cena katalogowa każdego z powyższych pakietów to 750 PLN + 165 PLN = 915 PLN
Cena dla uczestników spotkania: *600 PLN* za pakiet

Oferta ważna jest do końca stycznia 2010 r.

W przypadku pytań proszę o kontakt,
Oliwia Łączyńska

--
Sun Business Development Manager Sun Learning Services,
SUN Microsystems Poland Sp. z o.o.

20 stycznia 2010

60. spotkanie Warszawa JUG - Sebastian Pietrowski i Michał Karwański z "Hmm Java jawą, a co z iPhone?"

0 komentarzy
Warszawska Grupa Użytkowników Technologii Java (Warszawa JUG)Warszawska Grupa Użytkowników Technologii Java (Warszawa JUG) zaprasza na 60. spotkanie, które odbędzie się we wtorek, 26. stycznia o godzinie 18:00 w sali 5440 Wydziału MIM UW przy ul. Banacha 2 w Warszawie.

Temat: Hmm Java jawą, a co z iPhone?
Prelegenci: Sebastian Pietrowski (aka Pedro) & Michał Karwański (aka Karwer)

Prezentacja obejmie demonstrację środowiska programistycznego na platforme iPhone oraz poruszy kwestię, czy warto inwestować swój czas w naukę nowej rzeczy, czy nie lepiej wybrać platformę javopodobną jaką jest Android.

Oprócz filozoficznych rozważań nie zabraknie "twardej treści" w postaci programowania na żywo z Xcode, językiem Objective-C i prawdziwym iPhone

Sebastian i Michał są absolwentami Wydziału Informatyki Uniwersytetu Warszawskiego. O Pedro już kiedyś było (przy okazji prezentacji o Ruby on Rails 06.02.2007), Karwer natomiast to cicha gwiazda, mistrz Polski w sudoku, wielokrotny reprezentant Polski na międzynarodowych konkursach sudoku oraz łamigłówkach. Jeżeli zauważysz człowieka, który w minutę rozwiązuje sudoku, w którym z ledwością w tym czasie wpisałeś 1 cyfrę, to znaczy, że masz do czynienia z Karwerem.

Planowany czas prezentacji to 1,5 godziny, po której planuje się 15-30-minutową dyskusję.

Wstęp wolny

Zapraszam w imieniu prelegentów i grupy Warszawa JUG!

18 stycznia 2010

Przygotowywanie (się do) projektu z JAX-WS i Apache Maven - modularyzacja wychodzi sama

21 komentarzy
Po tych moich certyfikacyjnych wojażach i bojach z recenzjami (jeszcze jedna czeka w kolejce do napisania) wracam (na blogu) do tematu mojego obecnego projektu, którego pierwsze rezultaty można było "podziwiać" w Każdemu będzie w końcu dane - wreszcie Java EE 5 w projektach!.

Komentarzy posypało się co nie miara, za co wszystkim dziękuję, bo chciałbym móc powiedzieć, że to nie moje, albo że miałem jedynie 5-10 minut na poprawki przed publikacją, aby wybronić się z kilku, ale nic z tego. Wszystko, co opublikowałem było moje na bazie tego, co nie było moje :] Migracja miała na celu wypuszczenie działającego rozwiązania możliwie niewielkim nakładem pracy. Udało się. Jakkolwiek nie oznacza to zakończenia prac nad tym "dziwolągiem", ale przyświecał mi jeden cel - dzisiaj testuję prototyp, aby zweryfikować mój punkt widzenia, aby jutro i w kolejnych dniach wyciosać coś rzeczywiście przyzwoitego. Od niewielkiego tworu, ale działającego, do większego, bardziej naładowanego wzorcami i dobrymi praktykami, i wciąż działającego. Takie iteracyjne programowanie. Prace trwają.

Dzisiaj postanowiłem wprowadzić zmiany w obszarze zarządzania projektem, w którym można wyróżnić część serwerową (uruchomioną w centrali) oraz część kliencką. Ich zależność polega na interfejsie, z którego korzystają. W tym przypadku nie tylko interfejs programistyczny (w sensie programowania w Javie), ale również technologiczny (w sensie wykorzystania technologii/szkieletu aplikacyjnego w Javie) łączy oba moduły. Skorzystałem z technologii Web Services (JAX-WS), więc moduł centralny wystawia usługę sieciową, którą konsumuje moduł kliencki. Logiczne, co?

I tutaj natrafiłem na problem zdefiniowania zależności między modułami. Gdyby założyć, że część serwerowa jest aplikacją webową, to w jaki sposób określić zależność w module klienckim? Nie ma jak, bo war to podział technologiczny, a nie programistyczny i nie tędy droga. Potrzebuję zdefiniować SEI (ang. Service Endpoint Interfejs), abym na nim oparł technologiczny moduł serwerowy i programistyczny, kliencki. Moduł serwerowy to war, który zanurzy moduł SEI, z którego będzie mógł skorzystać moduł kliencki.

Teraz jest dla mnie jasny komentarz Artura Karazniewicza (aczkolwiek jego pierwszy "wyjazd" był do kosza, co się ostatecznie stało :)):

"Po drugie uniezależnienie samego WebService od implementacji endpointu w java (zastosowanie SEI oraz nazwanie poszczególnych elementów WSDL w adnotacjach WebService, WebMethod itd.)."

Początkowo pomyślałem "Kto by się tym przejmował?!", ale teraz samo rozczłonkowanie projektu na moduły wymusiło na mnie poćwiartowanie modułu serwerowego z wydzieleniem modułu z SEI. Inaczej po prostu nie dałoby rady. Do mnie przemawiają przykłady, co daje mi dane podejście i w tym przypadku samo stwierdzenie "Bo tak się robi. Bo to dobra praktyka." to zdecydowanie za mało. Potrzebuję konkretów, a nie kiwania głowami, że tak się robi, a kiedy zapytać "Dlaczego?", nikt nie jest skłonny wytłumaczyć.

Bardzo ucieszyłem się, kiedy pojawiły się komentarze wskazujące konkretne błędy z chociażby skromną, ale zawsze, próbą wytłumaczenia "Dlaczego nie". Niestety pojawiły się też takie ogólnikowe, zrób to, zrób tamto, bez jakiegokolwiek wyjaśnienia "Dlaczego". A szkoda, bo jestem w stanie wyobrazić sobie niedoświadczonych programistów, którzy postawieni w tej roli, w jakiej ja byłem przed chwilą - wystawienia ich kodu na publiczną krytykę - dostają multum dobrych rad, które są dobre jedynie z ich nazwy. Co mi po dobrej radzie, jeśli nie dostaję racjonalnego ich wytłumaczenia? Są dla mnie równie wartościowe, jak wskazanie palcem, co mam zrobić...milcząco.

Zestawiam projekt z pomocą Apache Maven, bo nie tylko wymusiło to na mnie poćwiartowanie (aka zmodularyzowanie) aplikacji, ale również uniezależni mnie od zależności środowiska programistycznego (IDE). Do tej pory w zespole królował Eclipse/RAD. Teraz, z wprowadzeniem mnie do zespołu, wszedł NetBeans IDE (bo jakoś łatwiej mi było stworzyć i przetestować Web Service), a ostateczny cel to uruchomienie narzędzia budowania aplikacji bez udziału ludków z zespołu. Bez wykorzystania Apache Maven, czy jemu podobnego rozwiązania, nie byłoby to możliwe.

Zastanawiam się, jak testować działanie usługi sieciowej? Czy w ogóle warto, skoro mogę przetestować implementację bez narzutu infrastruktury JAX-WS? To w końcu "oznakowane" POJO? A co z klientem? On jest zależny od wygenerowanego przez wsgen. Jak sobie z tym tematem poradzić? Może po prostu zaniechać testowania komunikacji usługa-klienta, bo to ma działać (jest poza moją kontrolą i jestem tego klientem), a przetestować metody, które otrzymają wynik wywołania przesłoniętego zaślepką (ang. mock object)? Rady mile widziane (zlitujcie się jednak nade mną i dodajcie słów kilka dlaczego, albo chociaż odnośniki do dokumentacji).

17 stycznia 2010

Recenzja "GlassFish Administration" z Packt - ogólnie, może być

0 komentarzy
Jeszcze w grudniu zeszłego roku zostałem poproszony o recenzję nowej książki GlassFish Administration wydanej przez Packt w tym samym miesiącu. Długo się bidulka naczekała, aż się za nią wezmę i dopiero kilka dni temu zabrałem się za jej lekturę. Sądziłem, że będę mógł zapoznać się z nowinkami najnowszego wydania GlassFish v3, który nie tylko, że jest implementacją referencyjną dla Java EE 6, ale również zmigrował do OSGi. I na tym się skończyło. Sądziłem, że będzie o v3, a było o 2.1.1. Nie było też nic o OSGi. Cóż nie można mieć wszystkiego.

Ogólna ocena to "może być". Nie należy spodziewać się cudów administracyjnych wysokiego lotu, a jedynie przegląd możliwości GlassFish v2. Podkreślam słowo "przegląd", bo nie można tej książki nazwać encyklopedią administracji GFv2, a jedynie kompendium. Czyta się przyjemnie, ale wiedzy znacząco nie przybywa. Coś mi się wydaje, że to (przed)ostatnia książka o administracji z Packt. Mam ich już dosyć. Kiedy już pojawi się jakaś zajawka czegoś ciekawego w książce, to kończy się właśnie na tej zajawce. Zero zgłębiania się w bardziej zaawansowane tematy, jak chociażby pisanie skryptów administracyjnych. Po prostu przegląd i tyle.

Zainteresowanych recenzją zapraszam do lektury Book review: GlassFish Administration, a samą książką na priv, bo właśnie trafiła na półki Biblioteki Warszawskiego JUGa i jest gotowa do publicznej konsumpcji. Wiedzy specjalnie nie przybędzie, ale chociażby dla poprawienia ogólnej znajomości GFv2 i samego angielskiego można się z nią popróbować. A może jednak będzie coś w niej odkrywczego?! Jest też darmowy rozdział 6. "Configuring JMS Resources" w formacie PDF, który okazał się być jednym z lepszych w tej książce.

16 stycznia 2010

Test 000-669: SOA Fundamentals [2008] zaliczony - jedna poprawna odpowiedź miała znaczenie

5 komentarzy
Chyba się wypaliłem na tych egzaminach certyfikacyjnych, albo po prostu ten temat SOA mi nie leży, bo jakiś taki mało techniczny? W piątek podszedłem do Test 000-669: SOA Fundamentals [2008], który udało mi się przejść pozytywnie. Słowo "udało" oddaje klimat tego egzaminu, bo przy 36 wymaganych odpowiedziach poprawnych, ja odpowiedziałem na...37 (!) Mizernie, co?

Przyznaję, że nawet się specjalnie nie ucieszyłem wynikiem, bo oceniałem się na więcej. 3 pytania powtórzyły się z testu próbnego, więc z tego powodu możnaby polecić go, aczkolwiek teraz mam wątpliwości, czy warto zapłacić za nie 30 USD. Wolałbym przeczytać książkę o IBM SOA Foundation. Może miałbym lepszy wynik, a nie te 69%. Mimo, że jest to jeden z moich najlepszych wyników, to fakt "przejścia" jedną poprawną odpowiedzią trochę przygnębia. Chyba muszę się wypłakać...żooonnaaa :]

Na egzaminie pojawiły się pytania o technikalia związane z WSDL, XML i SOAP, ale również terminologia SOA typu SOA Governance, a dokładniej wady i zalety, po co i dlaczego. Polecam lekturę SOA terminology overview, Part 1: Service, architecture, governance, and business terms, SOA terminology overview, Part 2: Development processes, models, and assets oraz SOA terminology overview, Part 3: Analysis and design. Dobra ich znajomość korzystnie wpływa na wynik egzaminu. U mnie mogłoby zadziałać, gdybym przeczytał je nie raz, ale kilka razy, celem utrwalenia terminologii. Czego podchodzącym życzę :)

Tym samym przywdziałem szaty IBM Certified SOA Associate [2008] oraz (z wcześniej zdanymi) IBM Certified Administrator for SOA Solutions - WebSphere Process Server V6.2. Jest z czego się cieszyć, ale gdyby przyjrzeć się poszczególnym wynikom, szczęście poszłoby w zapomnienie tak szybko, jak się pojawiło. Mogło być lepiej, zdecydowanie lepiej. Jak to ujęła moja żona: "Po co ten cały ciąg certyfikacyjny? Nie lepiej było przysiąść nad tematem i zdać go za miesiąc?" Ma niewątpliwie rację i kolejny egzamin dopiero za 2 miesiące - IBM Certified Solution Developer - WebSphere Integration Developer V6.2, który mnie "wykończył" przy pierwszym podejściu, lub IBM Certified System Administrator - WebSphere Application Server Network Deployment V7.0. Pożyjemy, zobaczymy. 4 lata w IBMie zobowiązują do lepszych wyników, a kiedy już zakończę tę IBMową sagę certyfikacyjną, marzy mi się Sun Certified Web Component Developer (SCWCD) i podsumowanie w stylu Sun Certified Enterprise Architect (SCEA) (pierwszy etap mam już zdany). To byłby cudownie przeprowadzony 2010 rok.

Jeśli ktokolwiek zastanawia się, po co to wszystko, ten cały certyfikacyjny bój, to odpowiedź jest prosta - bo można, a przy moich samozatrudnieniowych planach, papiery mogą być przydatne, aby dostać się do projektów, w których certyfikaty podbijają wartość oferenta. Podobno nierzadko jest to znacząca karta przetargowa.

p.s. Po zakończeniu mojego testu, kolega próbował ukoić mój ból takim powiedzeniem: "Jeśli masz wartościową wiedzę, siedzisz na projektach. Jeśli nie, stajesz się kierownikiem. Kiedy i tutaj nie masz szczęścia, zaczynasz prowadzić szkolenia." Bez komentarza.

14 stycznia 2010

Drugie podejście próbne do Test 000-669: SOA Fundamentals [2008] i wynik skoczył do 74,07%

0 komentarzy
Zdecydowanie lepiej, ale to jeszcze nie to, czego bym oczekiwał. Lektura kilku polecanych artykułów w Training Resources do testu Test 000-669: SOA Fundamentals [2008] i wynik podskoczył do 74,07%. Idzie w górę, ale test już jutro, w piątek, 15tego, więc trzecie podejście już ostateczne. Trzymajcie za mnie kciuki od 14-tej!

13 stycznia 2010

W piątek Test 000-669: SOA Fundamentals [2008], a wynik próbnego jedynie 68,52%

0 komentarzy
Komentarz do komentarzy do mojego ostatniego "wpisu programistycznego" - Każdemu będzie w końcu dane - wreszcie Java EE 5 w projektach! pojawi się wkrótce, a dzisiaj na tapetę poszedł próbny test do Test 000-669: SOA Fundamentals [2008], który postanowiłem zdawać w nadchodzący piątek, 15tego. Tematyka jakaś taka odjechana i chyba jeszcze nie dorastam do poziomu, abym mógł wstąpić do szanownego grona "SOA wyjadaczy". Wynik 68,52% z poziomem 66% daje mi wprawdzie pozycję zwycięzcy, ale tylko tyle, bo wiedza u tego zwycięzcy pozostawia wiele do życzenia. Tym samym, za 30USD, dowiedziałem się, że jeszcze muszę się duuuużo nauczyć.

Jak ja bym tak chciał, aby w piątek było zdecydowanie lepiej. Nie pozostaje nic innego, jak zabrać się za lekturę Training Resources. Może się pokuszę o streszczenie, celem utrwalenia? Byłoby mile widziane? Należy nadmienić, że technologii tam jak na lekarstwo, a dużo górnolotnych stwierdzeń o biznesie i inteligentnym cięciu kosztów wdrażania nowych przedsięwzięć w duchu SOA przez wprowadzanie/wykorzystywanie istniejących usług. Ciekawe, czy byliby zainteresowani?

12 stycznia 2010

Każdemu będzie w końcu dane - wreszcie Java EE 5 w projektach!

19 komentarzy
Nowy rok i nowe projekty, a tak się złożyło, że część z nich nawet rozwojowa - dosłownie i w przenośni. Znalazłem się więc w projekcie, w którym tworzone jest oprogramowanie do synchronizacji danych między bazami danych (tym samym kłaniam się nisko uczestnikom - klimat "Piratów z Karaibów", których oglądałem przez ostatnie 3 dni się udziela :]).

Architektura obejmuje WASv7 z DB2 (centrala) oraz WASCE z DB2 Express (satelitarne, lokalne instalacje). Nareszcie projekt w IBMie, gdzie serwer aplikacyjny wspiera najnowszą specyfikację Java EE 5 (może niekoniecznie najnowszą, bo na dniach wyszła nowiuteńka wersja Java EE 6, ale jej wsparcie nie jest jeszcze na tyle rozpowszechniona, aby nawet próbować się z nią w ramach prac domowych). Przyznaję, że trochę dziwnie mi się pisze oprogramowanie w Java EE 5 z udziałem IBM WebSphere. Jakoś przyzwyczaiłem się do starszych specyfikacji, których unikałem, jak tylko mogłem i większość pracy sprowadzałem do odpowiednich funkcjonalności w RADzie. Udało się i teraz zostało mi to wynagrodzone - wreszcie można oddychać pełną piersią, a jeśli dodać do tego, że teraz wszystkie zabawki IBMa z rodziny WebSphere działają na WASv7 - serwerze aplikacyjnym zgodnym z Java EE 5 i działającym na Java SE 6 - to możecie sobie wyobrazić, jak bardzom z tego rad. Do niedawna jeszcze o Java EE mogłem sobie pomarzyć w cieple domowego kominka, a w pracy...brrr...lepiej nie wspominać, wciąż J2EE. Teraz się odmieniło, bo kiedy się bardzo chce, to się kiedyś ziści. Wiedza, którą zdobywałem w ostatnim roku teraz się przydaje...produkcyjnie. Wreszcie!

Wracając do mojego bieżącego projektu, miałem dzisiaj przygodę z synchronizacją realizowaną przez...stronę JSP. Wszystko było wykonywane z jej poziomu i jej autor zdawał się mieć tego całego programowania w Javie najwyraźniej dosyć (nieprawdaż Paweł?). Szkoda było chłopaka, bo zacny z niego gość, ale brakowało mu wiedzy, ciut więcej i takiej ukierunkowanej na mocne strony Java EE. A skoro już mają Java EE, to nie byłoby dobrze nie skorzystać z dobrodziejstw. Zadanie na rozgrzewkę w sam raz dla mnie - można błysnąć i to przy niewielkim nakładzie pracy. To lubię! ;-)

Przed moimi oczyma jawi się strona JSP, a w niej jeden wielki try/catch z dostępem do bazki, sprawdzeniem tego i owego, aby ostatecznie zbudować odpowiedź XMLową. Dla mnie naturalnym było zaciągnąć @WebService i @Resource do pracy, aby z niecnego JSP zrobić całkiem przyzwoitą klaskę, powtórzę, zwykłą klaskę z kilkoma "wskazaniami" dla serwera, aby traktował ją specjalnie.

Wystarczyło więc, uruchomić NetBeans IDE 6.8.1, zaciągnąć aktualne źródła aplikacji webowej z repozytorium CVS (brrr, że też wciąż tego ustrojstwa się używa) i dodać tę oto klaskę (niektóre elementy usunięte dla poprawienia czytelności):
package pl.tufirma;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.MessageFormat;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.Resource;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.sql.DataSource;

@WebService
public class Synchronizator {

private final String AUTH_SQL = "SELECT ID FROM AUTHORIZE WHERE AUTH = ?";

@Resource(name = "jdbc/mak")
DataSource makDS;

public String synchronizacjaPoczatkowa(@WebParam(name = "key") String klucz) {
return synchronizeFirst(klucz);
}

protected String synchronizeFirst(String key) {
try {
String id_authorize = pobierzIdAuthorize(key);
MessageFormat SQLQUERY = new MessageFormat("WITH ...");

StringBuffer queryParam = new StringBuffer(id_authorize);
String query = SQLQUERY.format(new Object[]{queryParam.toString()});

System.out.println("SQLQUERY: " + query);
Connection conn = makDS.getConnection();
PreparedStatement stmt = conn.prepareStatement(query);
ResultSet rs = stmt.executeQuery();
String XMLResult = "";
if (rs.next()) {
XMLResult = rs.getString(1);
}
return XMLResult;
} catch (SQLException ex) {
Logger.getLogger(Synchronizator.class.getName()).log(Level.SEVERE, null, ex);
throw new IllegalStateException("Problemy z bazka", ex);
}
}

protected String pobierzIdAuthorize(String key) {
try {
Connection conn = makDS.getConnection();
PreparedStatement authStmt = conn.prepareStatement(AUTH_SQL);
authStmt.setString(1, key);
ResultSet authRs = authStmt.executeQuery();
if (!authRs.next()) {
throw new IllegalArgumentException("NIe odnaleziono klucza dla " + key);
}
return authRs.getString(1);
} catch (SQLException ex) {
Logger.getLogger(Synchronizator.class.getName()).log(Level.SEVERE, null, ex);
throw new IllegalArgumentException("NIe odnaleziono klucza dla " + key, ex);
}
}
}
Jak widać wiele jeszcze do zrobienia, ale sam szkielet klasy już jest odpowiednio dopasowany. Propozycje dalszych zmian mile widziane. Mamy wystawioną usługę jako usługę sieciową za pomocą @WebService, a dostęp do bazy danych kontrolowany jest przez serwer aplikacyjny i dostępny klasie przez @Resource. Czyż nie ładniej, chciałoby się zapytać? Teraz pozostaje obsłużyć właściwe tworzenie pliku XML (pewnie JAXB, ale nie będę ukrywał, że aż mnie rwie do Groovy), klient po stronie bazy lokalnej, który czyta odpowiedź od usługi, zapis do lokalnej bazy danych i powinno być całkiem cacy. Terapia szokowa w postaci Groovy i Grails czeka w kolejce (jeszcze im nic nie mówiłem, nawet nie wspominałem, więc prośba o dochowanie tajemnicy, zgoda?).

Jeśli są zainteresowani, aby dowiedzieć się więcej o szczegółach działania tej klasy, wystarczy się odezwać w komentarzu, np. tak: "Wyjaśnień potrzebowałbym więcej...". Chętni? Artykuł czy skrinkast*?

Ach i przy okazji tych doświadczeń z adnotacjami Java EE 5, sprawdziłem jeszcze jedno połączenie, tym razem NetBeans IDE z Eclipse. Sam projekt tworzony był w Eclipse IDE i tak został zapisany w repozytorium. Ja wystartowałem z NetBeans, więc konieczny był import, który sądziłem początkowo, że trochę pozamienia w projekcie. Okazało się, że nie tylko nie pozamieniał, ale moja zmiana była widoczna w Eclipse bez jakichkolwiek specjalnych kroków poza cvs update. Nie było mi dane ukryć mojego zdumienia, że tak łatwo poszło. Miałem przez moment stracha, że może się nie udać, ale, jak to mówią, diabeł ma wielkie oczy.

[*] Z tym "skrinkast" to przegiąłem, co?

09 stycznia 2010

59. spotkanie Warszawa JUG - Michał Margiel z "JavaFX bez ściemy"

2 komentarzy
Warszawska Grupa Użytkowników Technologii Java (Warszawa JUG)Warszawska Grupa Użytkowników Technologii Java (Warszawa JUG) zaprasza na 59. spotkanie, które odbędzie się we wtorek, 12. stycznia o godzinie 18:00 w sali 5440 Wydziału MIMUW przy ul. Banacha 2 w Warszawie.

Temat: JavaFX bez ściemy
Prelegent: Michał Margiel

Przez ostatni rok na temat najnowszego dziecka SUN narosło wiele mitów. Jedne, rozpowszechniane przez pracowników SUN, mówią o tym jaka to fantastyczna technologia, pozostałe zaś, głoszone przez osoby które tylko liznęły JavaFX, głoszą, że technologia ta nie nadaje się do niczego. Michał twierdzi, że jako osoba postronna, nie związana z firmą Sun, a jednocześnie praktyk, który przez ostatnie pół roku stosuje JavaFX w komercyjnym projekcie, potrafi spojrzeć na tę technologię obiektywnie i fachowo.

Na prezentacji zostaną zaprezentowane wszystkie najważniejsze cechy języka JavaFX Script nie tylko w teorii na slajdach, ale również w przykładach. Przedstawione zostanie również jak uruchomić komponenty JavaFX w aplikacjach swingowych. Michał odpowie na pytania: "Czy warto inwestować swój czas w JavaFX?" oraz "Czy JavaFX jest gotowa na uruchomienie produkcyjne?"

Michał Margiel jest absolwentem Informatyki na Wydziale Elektrycznym Politechniki Warszawskiej. W WJUGu jest od samego początku jego istnienia, oraz współorganizował dwie edycje konferencji Javarsovia. Na co dzień programuje w firmie Pragmatists, zaś samą javą zajmuje się już od ponad 4 lat. Posiada certyfikaty SCJP, SCWCD, pomocy przedmedycznej oraz wychowawcy kolonijnego.

Planowany czas prezentacji to 1,5 godziny, po której planuje się 15-30-minutową dyskusję.

Wstęp wolny

Zapraszam w imieniu prelegenta i grupy Warszawa JUG!

08 stycznia 2010

Sagi certyfikacyjnej ciąg dalszy - IBM Certified Business Process Analyst - WebSphere Business Modeler Advanced V6.2

1 komentarzy
Końcówkę roku 2009 postanowiłem spędzić na podsumowaniach w postaci certyfikatów i zdałem egzaminy wymagane do IBM Certified Deployment Professional - WebSphere Process Server V6.2 oraz IBM Certified System Administrator - WebSphere Application Server, Network Deployment V6.1.

Niestety czas się skończył w 2009, więc kilka postanowień certyfikacyjnych przeszło na ten rok. I dzisiaj przyszła kolej na egzamin Test 000-372: IBM WebSphere Business Modeler Advanced V6.2, Business Analysis and Design, który jest wymagany do certyfikatu IBM Certified Business Process Analyst - WebSphere Business Modeler Advanced V6.2. I ja go mam, co widać na załączonym poniżej obrazku!

Był to egzamin, który przypomniał mi moje boje egzaminacyjne na studiach (a że do bystrych nie należałem, to i zdarzało się podchodzić kilkakrotnie do niektórych). Przy całym moim egzaminacyjnym doświadczeniu, gdzie potu i łez co niemiara, przyszło mi zdawać egzamin z Modelera. Nie miałem tak wielkiego doświadczenia praktycznego z produktem, jak w przypadku WASa, czy WPSa, więc trząsłem się jak osika na każdą myśl o tym egzaminie. I faktycznie było się czego bać. Ostatni projekt, w którym przywdziałem szaty analityka biznesowego (albo inaczej, osoby pretendującej do tego miana z wiedzą jak posługiwać się WBMod) wykorzystałem do zgłębiania produktu, z egzaminem na horyzoncie. Przeszedłem jeszcze szkolenie internetowe ZB282: IBM WebSphere Business Modeler V6.2: Process Mapping, Simulation and Analysis (Self-Paced) (którego nota bene nie polecam w tym wydaniu, a sugerowałbym raczej tradycyjną wersję) oraz, znacznie więcej niż dotychczas, spędziłem czasu z samym narzędziem wespół z jego dokumentacją IBM WebSphere Business Modeler Advanced V6.2 Information Center.

Do egzaminu podszedłem z 2 innymi IBMerami (Luizą i Maciejem), dzięki czemu mogłem zagadnąć do nich z pytaniami, co okazało się niezwykle przydatne. Im udało się jeszcze spróbować swoich sił w teście przygotowującym (za 30USD - Sample / Assessment Test), a mi już nie starczyło czasu. Pewnie bez ich pomocy nie byłoby mi teraz tak do śmiechu. Dzięki!

Kolejny egzamin w planach to Test 000-669: SOA Fundamentals [2008], albo Test 667: Architectural Design of SOA Solutions. Jeszcze się namyślam, który i kiedy. Gdyby udało mi się jeszcze przejść przez egzaminy z WebSphere ILOG JRules V7.0 i IBM WebSphere Integration Developer V6.2, to byłoby cacy. Pewnie jeszcze jakieś "skrawki" w ofercie certyfikacyjnej IBM znalazłyby się, ale...bez przesady :]

04 stycznia 2010

Noworoczne postanowienia na 2010 - znowu ich więcej niż czasu, więc z głową Jacku, z głową...

16 komentarzy
Minął 2009 rok i trudno byłoby wskazać osobę, która nie oczekuje od 2010 jeszcze większych, bardziej spektakularnych (pewnie finansowo?) sukcesów. Planów wiele, a czasu jakby na lekarstwo, więc pora nauczyć się z głową nim operować. I to jest moje postanowienie numer #1 - zabrać się za rozważne planowanie zadań i ich sumienną realizację. Na pewno ucieszy się Agata, pewnie Iwetka i Patryk (to sfera rodzinna - nie mylić ze sforą :)), ale i osoby, z którymi współpracuję/działam na arenie społecznościowej. Do tej pory było tak, że jakoś szło i faktycznie zawsze kończyło się jakoś. A to się przesiedziało przed kompem przez bite 5h nic nie zrobiwszy, a to znowu i tak w kółko. Nie raz pamiętam przeciągające się godziny nad niczym, szczególnie te nocne, więc od dzisiaj koniec z tym nawykiem. Jeśli siedzieć przed kompem, to faktycznie coś zrobić, np. postarać się o lepszy jakościowo (niż w 2009) wpis na blogu. Oby było jakoś lepiej, a już będzie bardziej twórczo. Co za paradoks, że można robić mniej, a wciąż efektywnie(j)?!

Wygasiłem rok 2009 rodzinnym wyjazdem do Białki Tatrzańskiej na narty i tak od 29.12 (w nocy) do 2.01 (koło 18tej) spędziłem czas niezwykle aktywnie poza zasięgiem komputera (nie wliczając lektury "Groovy in Action", którą mam w PDFie). Mimo nieciekawych warunków narciarskich, całe dnie spędziłem na stoku z 2-godzinną przerwą obiadową. Było super i każdemu polecam spędzenie jak największej ilości czasu w ten sposób. Idzie się przewietrzyć, a podczas zjazdu jest pora na kilka przemyśleń. Powrót nie należał do najbardziej oczekiwanych wydarzeń w Nowym Roku i to z dwóch powodów - po pierwsze koniec laby (a w dzień wyjazdu zaczęło sypać śniegiem), a po drugie powrotna trasa do Wawy, która zapowiadała się na kilka(naście) godzin. Szczęśliwie, po 7-godzinnej trasie pozostało jedynie (niemiłe) wspomnienie.

O dziwo, skrzynka pocztowa nie była przesadnie napakowana mailami. I to obie, prywatna i służbowa, więc był czas, aby spisać swoje przemyślenia/plany na rok 2010. O prywatnych nie wspominam, bo tematyka nie ta i wieje nudą (słowo rodzina odmienione we wszystkich przypadkach), więc jawnie będzie jedynie javnie/społecznościowo.

Numerem jeden (powiedzmy bis biorąc pod uwagę rozważne planowanie zadań i ich sumienną realizację - muszę sobie to ciągle powtarzać, aby dobrze zapamiętać) jest stworzenie javowego serwisu społecznościowego, do którego mam już domenę - wszystkojawne.pl, a nawet dwie - javosfera.pl. Obie wskazują na tematykę i sposób jej gromadzenia - razem z polską społecznością javową. Chciałbym, aby odwiedzalność mojego bloga została przeniesiona na nowopowstający serwis pro publico bono. Byłoby super, gdyby serwis mógł w jakimś stopniu zarabiać na siebie (bo zamarzyło mi się utrzymywanie takiego serwisu "full time"), ale to wkładam na półkę w kategorii "Bajki". Tak czy owak, migracja mojego bloga i wiki, zgromadzenie innych entuzjastów pisania, czy nagrywania podcastów/screencastów w jednym miejscu byłoby spełnieniem moich marzeń javowych. Możnaby zrobić nawet tak, że kilka osób pracuje nad tematem w pełnym wymiarze czasu, kilku z doskoku, a reszta "naukowo", aby podszkolić swój warsztat, a później i wejść na poziom płatności za moduł/funkcjonalność. I tak by się kramik kręcił.

Kolejnym pomysłem jest bardziej efektywne zaangażowanie się w projekty Apache OpenEJB i Apache OpenWebBeans, z pewnym uwzględnieniem Apache Geronimo (w obszarze wsparcia przez NetBeans IDE). Projekty bardzo podobne, ale chodzi raczej o nawyki, jakie mogę nabrać podczas pracy z innymi programistami w projektach otwartych, w których ustawiam się bardziej jako wykonujący, a nie prowadzący. Za mało jeszcze potrafię, abym mógł poprowadzić ich rozwój na większą skalę i właśnie bardziej twórcza praca miałaby mi pomóc w poznaniu dwóch nowych i jednej odświeżonej specyfikacji, odpowiednio Context and Dependency Injection for Java EE (dawniej Web Beans), Java EE 6 Managed Beans oraz EJB 3.1. Docelowy kierunek to poznanie Java EE 6 przez pryzmat rozwoju tych projektów (z częściowym uzględnieniem tych, zgromadzonych wokół JAX-*). OSGi jest w tle.

Jeśli do tego dorzucę kilka luźnych projektów na Githubie (Nauczyciel), PoMaGeR (podcasty), gazetka (newsletter WJUGa), albo pomysły z Sebastianem (wydatki) i Koziołkiem (recenzje), miałbym możliwość wzmocnienia swojego doświadczenia z Grails i narzędziami do zarządzania źródłami - git i mercurial - w praktyce. Znudziło mi się to ciągłe teoretyzowanie, a tymi projektami powinienem wypełnić tę lukę. Z wydaniem Grails 1.2 i wsparciem dla Groovy 1.7, w którym z kolei mamy wsparcie dla klas anonimowych powróciła nadzieja na połączenie Grails z Apache Wicket, który był niezwykle odświeżający przy tworzeniu UI. Można zawsze skorzystać z GWT, ale Wicket był bardziej inspirujący. Dorzucając do tego Clojure w postaci wtyczki mamy ciekawy stos technologiczny. Oby się udało zrealizowanie choćby części tej części.

Kiedy dorzucę jeszcze plany wokół podcastów i screencastów robi się już tego wystarczająco wiele, aby zapełnić nie jeden, ale kilka Nowych Roków. Jak widać pomocy potrzebuję bardziej niż niejeden z Was, więc w ten czy inny sposób, warto się ze mną skontaktować, aby pomóc mi, jednocześnie pomagając sobie :) Chętni do współpracy mile widziani.

Po tym niewielkim streszczeniu można zorientować się, że chęci mam, ale zadanie numer #1 - zabrać się za rozważne planowanie zadań i ich sumienną realizację - potrzebuje wdrożenia szybciej niż mi się wcześniej wydawało. Zdecydowanie za dużo się nagromadziło w 2009 i mi się spączkowały w 2010. Na pewno będzie ciekawie. Wracam do mojej mantry 2010:

Zabrać się za rozważne planowanie zadań i ich sumienną realizację...zabrać się za rozważne planowanie zadań i ich sumienną realizację...zabrać się za rozważne planowanie zadań i ich sumienną realizację.