26 marca 2011

Zmiany w certyfikacji Oracle Certified Master - szkolenia obowiązkowe po 1 sierpnia 2011

4 komentarzy
Było już o tym w kilku serwisach dotyczących Javy, Java EE i certyfikacji, więc wielu już wie. Wielu, mnie wliczając, jedynie słyszało o zmianach w certyfikacji i gdyby zapytać o co chodzi, już nie potrafiłoby odpowiedzieć. A sprawa jest nie całkiem błaha i może kilku utrudnić kariery, albo być powodem odrzucenia przy przetargu publicznym, w których certyfikaty mają znaczenie.

Dzięki uprzejmości mojego kontaktu w Oracle - Oliwii z Oracle University - właśnie dotarło do mnie, że certyfikacja Oracle Certified Master od 1.08.2011 będzie lekko wydłużona czasowo i kosztowo. Wierzę jednak, że zaletą będzie możliwość uczestniczenia w szkoleniu, które warte jest wysiłku (sam prowadzę kilka i wiem, jak beznadziejnie mogą one wypaść).

Gdyby komuś zechciało się przystąpić do certyfikatów Oracle Certified Master, Java SE 6 Developer lub Oracle Certified Master, Java EE 5 Enterprise Architect, to niech to ukończy w całości przed 1 sierpnia, aby nie podrażać przedsięwzięcia. Po tym terminie jedno szkolenie będzie składową pakietu obowiązkowego (i pewnie znacznie utrudni negocjacje o podejście certyfikacyjne z pracodawcą).

Więcej na Important Changes to Java, and Oracle Solaris Certifications.

Jeszcze jedna uwaga - cytując za w/w stroną:

I have already started preparing for my exam; if I don’t take it by August 1, 2011, will I be required to complete training?
Yes. Anyone who does not completely finish the current track requirements before August 1, 2011 will be required to meet the new requirements, which will include a mandatory course attendance requirement.


Oracle nie pozostawia złudzeń - będzie inaczej.

p.s. Pierwszą część OCEA5 mam już za sobą i pozostaje mi esej (etap 2), a później jego obrona (etap 3). Mam niewiele czasu - 4 m-ce - i pamiętam, że to UML był moją największą zmorą, aby zmierzyć się z esejem, co Grzesiek Kukawski pomógł mi skutecznie opanować ze swoim darmowym kursem UML - pisałem o tym w Darmowy kurs UML Grzegorza Kukawskiego.
Jestem również w trakcie lektury UML 2.0 in Action: A project-based tutorial. Wydaje się być ciekawie treściwa a może po prostu treściwie ciekawa?! :) Recenzja niebawem.

18 marca 2011

Confitura 2011, 33rd degree, GeeCON i InfoShare oraz "markowy" inż. z OSGi i CDI

9 komentarzy
Dla tych, którzy spędzają wolne chwile z dala od komputera i mają tą rzadko spotykaną "przypadłość" cieszyć się wolnością umysłu bez wpływu facebooka, twittera, blogów, grup, forów i innych, mniej lub bardziej zajmujących serwisów, donoszę, że długooczekiwana data nie mniej długooczekiwanej konferencji polskiej społeczności javowej Confitura 2011, pod silnym przewodnictwem grupy Warszawa JUG, odbędzie się 11. czerwca 2011. Organizatorzy wierzą, że nie będzie to kolidowało z żadnymi z Twoich planów i stawisz się dzielnie podjąć każde wyzwanie intelektualne podczas konferencji.

Z pewnych rzeczy, to z pewnością miejsce - Warszawa, wspomniany termin - 11.czerwca oraz...cóż, chyba mi się skończyły pewne rzeczy. Agendy jeszcze nie ma, bo plan zakładał jej ustalenie po zebraniu propozycji tematów, o czym niebawem. Więcej na stronie konferencji Confitura 2011.

Jako współorganizator będę robił wszystko^H^H^Hwiele, aby konferencja była największą pod względem możliwości wymiany doświadczeń (jej wielkość niech będzie liczona możliwościami zdobycia praktycznej wiedzy i pomysłami, a nie liczbą uczestników) i chciałbym, aby pojawiło się wiele osób nowych, niekoniecznie z doświadczeniem występowania publicznego. Niech Confitura będzie platformą nauki, a buława prelegenta dana będzie wizjonerom, a nie oratorom (oczywiście osoby łączące te cechy są bardziej niż mile widziane). Zapraszam do udziału w konferencji w roli uczestnika i/lub prelegenta, z naciskiem na tą drugą. Warto! W razie jakichkolwiek wątpliwości zaleca się kontakt ze mną. Sprawdziłem i działa.

Skoro o konferencjach to pojawię się jeszcze na 33rd Degree w Krakowie, w dniach 6-8.04, InfoShare 12-13.05 w Gdańsku oraz GeeCON w Krakowie, w dniach 11-14.05.

Na pierwszej dwóch - 33rd Degree oraz InfoShare - biorę udział jako prelegent z tematami dotyczącymi EJB 3.1, CDI oraz językiem funkcyjnym Clojure. Nie zamierzam wprowadzać w temat, a podzielić się znaleziskami, których część mogłem już przedstawić na tym i moim angielskojęzycznym blogu - http://blog.japila.pl. Znużyło mnie ciągłe wałkowanie tematu od zera, co ani mnie nie bawi (wręcz zaczyna nużyć), a wielu przyprawia o ból głowy musząc słuchać tego samego w nieznacznie zmienionej postaci. I tylko wieje nudą. Szanujmy swój czas, co zamierzam zastosować właśnie podczas wspomnianych konferencji.

Na 33rd Degree będę wyłącznie w piątek, 8.04 (z noclegiem w Krakowie przed i po), a na InfoShare 13.05 (prawdopodobnie z noclegiem do soboty). Piszę o tym, aby pozwolić sobie na przyjemność spotkania się z osobami, z którymi mógłbym przegadać to i owo, a z którymi nie dane mi było spotkać się do tej pory. Zwykle to właśnie dyskusje pozwalają na ugruntowanie wiedzy, a nie bierny udział w prezentacji i możliwość spotkania się wieczorem w pubie czy restauracji uważam za obowiązkowy.

Uważni mogli zauważyć, że terminy InfoShare oraz GeeCON pokrywają się. Dzięki uprzejmości organizatorów GeeCONa otrzymałem wejściówkę, więc łącząc przyjemne z pożytecznym na GeeCONie pojawię się 11-12.05, aby wieczorem udać się do Gdańska, w którym chciałbym spędzić czas do soboty. Nie będzie lekko opanować terminy i chęć zamienienia słowa z uczestnikami, ale nikt nie mówił, że powinno. Na projektach też nie jest lekko, a jednak mają coś magicznego, co nas do nich wciąż ciągnie.

I ostatnia sprawa, nie mniej ważna, o której zaplanowałem napisać - praca inżynierska mojego podopiecznego z praktyk studenckich w IBM - Marka Szpaka dotycząca "analizy połączenia CDI i OSGi (na przykładzie serwera aplikacyjnego GlassFish i IBM WebSphere Application Server) oraz zaprezentowania rozwiązania wolnego od konkretnego serwera aplikacyjnego."

Na temat samych praktyk można przeczytać chociażby na grupie GoldenLine Praktyki w IBM Polska, albo bezpośrednio u "producenta" - IBM Educational Student Internships i gorąco zachęcam do wzięcia w nich udziału. Nie stronię od nawet najbardziej opornych studentów, którym się jednak chce coś zrobić i na brak wrażeń nie można narzekać.

Marek nie tylko próbuje rozpracować możliwość budowania aplikacji korporacyjnych JEE6 z użyciem CDI i OSGi, o czym będzie można przeczytać w jego pracy, ale również organizuje prelekcję na ten temat na swojej uczelni - Uniwersytecie Zielonogórskim. Co mnie bardzo ucieszyło, zaprosił mnie nawet w roli współprelegenta (!) Opiekunem tematu jest pan dr inż. Andrzej Marciniak. Na chwilę obecną wiadomo jedynie co będzie przedstawione - CDI, OSGi i ich połączenie z GlassFishem i WASem, kto - Marek i Ja, a z terminem to jedynie "jeszcze w tym semestrze, to jest najpóźniej pod koniec maja/początek czerwca." Zainteresowanych już informuję, a dalsze informacje niebawem. Wszelkie sugestie mile widziane, czy to związane z terminem, czy też zakresem merytorycznym. Niech to będzie przyczułek do wymiany wiedzy, która mogłaby zaowocować jakimś ciekawym projektem OSS, a może i produktem komercyjnym (?)

Tym samym chciałbym oficjalnie podziękować Markowi i Uniwersytetowi Zielonogórskiemu w osobie p. dra inż. Andrzeja Marciniaka za umożliwienie mi zgłębienia tematu, co powinno przyczynić się do większego rozpoznania tematu po obu stronach, również z korzyścią dla czytelników tego bloga.

Pierwsza połowa 2011 zapowiada się baaardzo interesująco merytorycznie. Już wiem, że druga również, ale o tym jeszcze ciiiii. Czego lepszego mogłem sobie życzyć w 2011. Normalnie bajka!

10 marca 2011

Jedynie beanName albo lookup w @EJB dozwolone, a GlassFish 3.1 akceptuje oba równocześnie

2 komentarzy
A to dopiero znalezisko! Właśnie natrafiłem na błąd w GlassFish 3.1 przy obsłudze adnotacji @EJB.

Zgodnie z javadoc dla @EJB:

"Either the beanName or the lookup element can be used to resolve the EJB dependency to its target session bean component. It is an error to specify values for both beanName and lookup."

Stąd należałoby oczekiwać, że uruchomienie poniższego komponentu EJB powinno zakończyć się błędem - zwróć uwagę na adnotację @EJB z atrybutami beanName oraz lookup.
package pl.japila.ejb.test;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import pl.japila.ejb.Hello;

@Stateless
public class TestFacadeEJB implements Hello {

    @EJB(beanName="HelloInEnglish", lookup="java:global/classes/HelloPoPolsku")
    Hello hello;

    @Override
    public String sayHello(String whom) {
        return hello.sayHello(whom);
    }

}
Nic bardziej mylnego! Wdrożenie takiego EJB jest całkowicie legalne w GlassFish i nie zakończy się błędem.

Pytanie uzupełniające: Który z atrybutów ma wyższy priorytet - beanName czy lookup, czyli które będzie brane pod uwagę przy rozwiązywaniu @EJB?

Odpowiedź pozostawiam najbardziej dociekliwym i wytrwałym, którzy przykład uruchomili korzystając z artykułu Słabo typizowane DI w EJB 3.x - o beanName w @EJB jeszcze raz.

A jak to jest w innych serwerach? Sprawdzę jeszcze WAS8 i OpenEJB 3.1.4, a ucieszyłbym się, gdybym dowiedział się od kogoś jak to jest obsłużone w JBoss AS 6 czy Oracle WebLogic Server 11g?

09 marca 2011

Słabo typizowane DI w EJB 3.x - o beanName w @EJB jeszcze raz

0 komentarzy
Posiłkując się doświadczeniami z Embeddable EJB 3.1 z GlassFish 3.1 i NetBeans IDE 7.0 oraz Element beanName w @EJB do rozróżnienia deklaracji ziaren EJB stworzyłem przyczułek do dalszych doświadczeń ze specyfikacjami EJB 3.1 oraz CDI 1.0. Tym razem na warsztat wziąłem zbadanie mechanizmu przekazywania zależności (ang. DI, dependency injection) w EJB 3.x.

Potrzebowałem środowiska, w którym będę mógł uruchomić testy automatycznie bez konieczności zestawiania skomplikowanego środowiska uruchomieniowego. Zaletą takiego podejścia może być chociażby uruchomienie testów w dowolnym momencie, na dowolnym komputerze i przez dowolnego (nawet nowego!) członka zespołu. Starałem się utrzymać minimalny nakład pracy, aby łatwiej było przedstawić problem, z którym się zmagam.

Zainteresowany/-a szczegółami? Zapraszam do lektury mojego artykułu Słabo typizowane DI w EJB 3.x - o beanName w @EJB jeszcze raz. Uwagi bardzo mile widziane.

08 marca 2011

Mechanizm zdarzeń w CDI z JBoss Weld, Arquillian i Apache Maven 2

2 komentarzy
Dla zainteresowanych zgłębianiem tajników nowości Java Enterprise Edition (JEE) 6, a dokładniej JSR-299: Contexts and Dependency Injection for the Java EE platform (w skrócie CDI) mam miłą niespodziankę - nowy artykuł Mechanizm zdarzeń w CDI z JBoss Weld, Arquillian i Apache Maven 2.

W artykule znajdziesz wystarczająco wiele, aby poznać mechanizm zdarzeń w CDI, który łudząco przypomina powszechnie (u)znany wzorzec Obserwator (ja jednak wolę nazwę Słuchacz) oraz wzorzec komunikacyjny Publish/subscribe.

Niezwykle mocny mechanizm do użycia w ramach Java EE 6, ale również i na poziomie samego Java SE (tutaj niestety wciąż bez wspólnego interfejsu dostępowego ala JPA, JMS czy JDBC). Mam nieodparte wrażenie, że czas potrzebny do zapoznania się z moim artykułem jest niewspółmierny do dawki wiedzy, jaką nim przekazuję (na korzyść pozyskanej wiedzy oczywiście).

Gorąco zachęcam do lektury Mechanizm zdarzeń w CDI z JBoss Weld, Arquillian i Apache Maven 2 i do kontaktu ze mną celem ustalenia dalszych kroków przy rozpoznaniu specyfikacji CDI i Java EE 6 w ogólności. Skoro mi się chce i znajduję na to czas, a Tobie nie jest to dane, rozważ chociaż przesłanie wskazówek odnośnie formy i treści przyszłych artykułów?

01 marca 2011

Narzędzia pomocnicze, mapy myśli i Darmowy kurs UMLa

4 komentarzy
Chyba dałem się w końcu przekonać do stosowania owych map myśli i do mojego arsenału narzędziowego trafiło kolejne narzędzie XMind.


Kiedy pierwszy raz usłyszałem o tym podejściu do porządkowywania swoich obszarów działalności, miałem bardzo sceptyczne nastawienie. Zresztą do każdego rodzaju podejść miałem, co nie miało wielkiego związku z Javą i okolicami. Z każdym jednak dniem, kiedy technologii przybywało, którymi chciałbym, albo musiałem się zająć, coś musiałem zrobić, aby się nie pogubić.

Wtedy to kupiłem Things na MacOS X. Sprawdza się, aczkolwiek brakuje mi wytrwałości, aby tam zaglądać i lista zadań rośnie. W końcu samo narzędzie to nie wszystko i należałoby jeszcze z nich właściwie (= sumiennie) korzystać. Co mnie jednak irytuje, to jedynie dwupoziomowy podział zadań (potrzebowałem nieograniczonego zagłębiania zadań) i brak zarządzania per dzień/godzina, czyli wrzucam coś na dany dzień z planowanym czasem, ile może mi to potencjalnie zająć, a narzędzie kontroluje, czy faktycznie mogę. To nie jest zadanie dla Things.

Później trafiłem na kolejne narzędzie, które przydało mi się już niejednokrotnie, chociażby podczas warsztatów w Tarnowie - Apimac Timer (patrz relacja w Po wykładzie na PWSZ w Tarnowie). Narządko niewielkie i bardzo specjalizowane, które pozwala utrzymać ilość czasu na dane zadanie i w ten sposób mogę po 45 minutach skończyć pracę, przejść się, rozprostować kości, aby po przerwie znowu zasiąść przed kompem. Bajka. Niby niewiele, a jak pomaga utrzymać tempo, bez przesadnego przemęczenia.

Podczas darmowego kursu UML Grześka Kukawskiego doświadczyłem kolejnego narzędzia - XMind. Tym razem jednak, przy okazji omawiania UML, zobaczyłem, jak Grzesiek korzysta z mapy myśli, aby utrzymać płynność omawiania tematu i w ogóle zastosować narzędzie zamiast slajdów. Dla mnie było to olśniewające. Tego rodzaju przerywników potrzebuję najbardziej - odrywam się od zadania, zabieram się za odsłuchanie lekcji o UML, którego wydaje mi się, że znam, a tam dostaję za wytrwałość więcej, bo nie tylko uporządkowaną wiedzę o UML, ale i praktyczne użycie mapy myśli. Bajka.

Przejrzałem kilka filmików na stronie producenta XMind, o samej idei map myśli na YouTube i jestem wkręcony. Widzę sens stosowania narzędzia. Gdzie? Chociażby do wspomnianego uporządkowania wystąpienia (podczas mojego kolejnego nie omieszkam zastosować i spróbować praktycznie), albo do przygotowania planu spotkania zamiast kartki czy dokumentu tekstowego, gdzie włożenie pozycji do istniejącej listy może nie być tak intuicyjne jak wciśnięcie TAB czy ENTER. Podoba mi się również użycie do planowania dnia (wiele prezentacji na YouTube dotyczyło GTD z mapami myśli), albo jako notes przy rozpoznawaniu tematu.

Jestem w trakcie pisania poprawki na potrzeby OPENEJB-1433 Upgrade to Apache CXF 2.3.2 i do tej pory używałem notatek w Evernote. Samo narzędzie warte rozważenia, ale przy XMind, uważam je za nieadekwatne do problemu i mapa myśli będzie bardziej strawna. A może po prostu potraktować mapę myśli jako element notatki w Evernote, aby poradzić sobie z dystrybucją/dostępnością? Ciekawym sugestii, jak Tobie idzie z zarządzaniem planami rozwojowymi, a przede wszystkim z ich utrzymaniem. Samą mapę, którą użyję do poprawki dla OpenEJB, nie omieszkam opublikować do publicznej oceny z prośbą o możliwe usprawnienia w posługiwaniu się narzędziem.

Od razu mi lepiej, kiedy tak ustawiłem się narzędziowo. Jakbym miał więcej czasu. Co ja z nim zrobię?! Może pora już zabrać się za wykonanie jakiegoś zaplanowanego zadania?