Pokazywanie postów oznaczonych etykietą websphere. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą websphere. Pokaż wszystkie posty

27 marca 2013

Java EE, Scala, Play 2 i WebSphere Liberty Profile

0 komentarzy
Wielu z Was już z pewnością miało okazję zapoznać się z moimi literackimi (po)tworami, które dotykają tematyki integracji Java EE ze Scalą, a nawet uruchomienia Play Framework 2.1 na WebSphere Liberty Profile. Z moimi poczynaniami poszedłem tak daleko, że wręcz pokusiłem się o kontakt z twórcami produktów, którzy wcale nie oponowali, aby użyczyć mi trochę swojej wiedzy ku wzmocnieniu merytorycznym artykułów.

W ten sposób udało mi się stworzyć trzy artykuły z serii o roboczym tytule "Java EE, Scala, Play 2 i WebSphere Liberty Profile":
Byłbym niezwykle rad, gdyby ktoś zechciał podzielić się wrażeniami z lektury i wskazać miejsca wymagające większego wysiłku umysłowego. Kto pierwszy?

19 lutego 2013

Nowy artykuł o pisaniu servletów w Scali z Eclipse i WebSphere Application Server V8.5 Liberty Profile

3 komentarzy
Ku mojemu zaskoczeniu, ostatni wpis Listy w Scali przyciągnął dość znaczą uwagę - pojawiły się komentarze, które nie pozostają w mojej głowie bez echa. Dają mocno do myślenia. teamon oraz dmilith nie odpuszczają w swojej krucjacie podniesienia wartości moich wpisów i ku okrzepieniu serc zebrałem się na napisanie czegoś dłuższego - artykułu Developing Java Servlets in Scala with Eclipse and WebSphere Application Server V8.5 Liberty Profile. Ciekawym Waszego zdania na TEN temat.

Jak napisałem na swoim angielskojęzycznym blogu planuję poświęcić kilka wieczorów na Play Framework, którego planuję uruchamiać na WebSphere Application Server V8.5 Liberty Profile, a może nawet na pełnym WebSphere Application Server 8.5. Gdyby ktoś zechciał pomóc, pokierować, to zapraszam do sekcji komentarzy poniżej lub maila. Dziękuję!

10 lutego 2013

Nagranie z mojej prezentacji o Enterprise OSGi na scenie Warszawa JUG już jest

4 komentarzy
W zeszły wtorek miałem przyjemność zaprezentować Enterprise OSGi, którego nagranie właśnie trafiło do przestrzeni publicznej i jest dostępne na YouTube - Praktyczne wprowadzenie do OSGi i Enterprise OSGi - Jacek Laskowski. Sam(a) zobacz, co straciłeś(aś). A uważam, że wiele.

Oszczędzę sobie tym samym relacji, bo po komentarzach po spotkaniu, trudno byłoby mi być obiektywnym i zachować umiarkowanie. Oceny kilku uczestników świadczyły o dobrej zabawie podczas mojego wystąpienia, a o to zabiegałem najbardziej. Samej wiedzy nie było wiele, ale wystarczająco, aby pobudzić do dalszego rozpoznania tematu we własnym zakresie. Bardzo zależało mi również na prezentacji możliwości WebSphere Liberty Profile i jak słyszę, to ma szansę znaleźć swoje miejsce u kilku z Was. Dzięki i daj znać, jak idzie poznawanie kolejnego serwera aplikacyjnego. Możesz być mile zaskoczony(a) możliwościami!

Sam przykład niestety nie odpalił, ale ostatecznie uważam, że to i tak dobrze, bo zainteresowanych tym mocniej zachęci do własnych prób. Ciekawym Waszych doświadczeń odnośnie poznawania Enterprise OSGi i jego zastosowania w projektach. Pewnie zastanawia Was, czy dałoby się pożenić tę technologię ze Scalą (hej, skąd w ogóle pomysł na taki mariaż?!) i po sobotnim szkoleniu Grzegorza nie mam złudzeń, że tak (ach, teraz rozumiem, skąd ten pomysł). A może już ktoś się z tym próbował? Jakie rezultaty?

Dostałem w międzyczasie maila:

"Mógłbyś podpowiedzieć jak/gdzie/od czego mogę zacząć, żebym mógł czerpać z korzyści liberty w codziennej pracy? Póki co potwierdzam, to o czym wczoraj mówileś (developerom przeszkadza ciężkość WASa)."

i pomyślałem, że umieszczę odpowiedź i tutaj. A może się komuś jeszcze przyda?! Oto ona.

"Zacznij od pobrania Eclipse IDE i instalacji IBM WebSphere Application Server V8.5 Liberty Profile Developer Tools V8.5.1.

Później przejdź przez moje artykuły na Wiki:
Po nich poczujesz klimaty. Brakuje jeszcze opisu instalacji WebSphere Liberty Profile, ale to sprowadza się do jego pobrania ze stronki http://wasdev.net/, rozpakowania i działasz!

Pytaj, jeśli coś niejasne. W ten sposób uzupełnię braki na Wiki. Powodzenia!"

28 stycznia 2013

Praktyczne wprowadzenie do OSGi i Enterprise OSGi

0 komentarzy
5 lutego podczas spotkania grupy Warszawa JUG będę miał przyjemność zaprezentować Enterprise OSGi w akcji.

Będzie to niepowtarzalna okazja zobaczyć mnie na deskach WJUGa (które trochę zaniedbywałem w 2012), bo dostęp do nich został mocno ograniczony przez duże zainteresowanie potencjalnych prelegentów. Stąd też niemała u mnie trema, aby spotkanie odbyło się w ciekawej formie. Liczę, że dobre noty pozwolą mi na kolejne publiczne wystąpienia na spotkaniach WJUGa.

Podczas spotkania przedstawię rolę Enterprise OSGi, które zrodziło się, aby połączyć dobrodziejstwa Spring Framework (a właściwie Dependency Injection) z OSGi na potrzeby użycia w środowisku Java EE. I właśnie w ten sposób ten slajd masz już z głowy (więc możesz przyjść 5 minut później).

Brakującym ogniwem w zrozumieniu istoty Enterprise OSGi jest zobaczyć to w działaniu. I to jest właśnie rola tej prezentacji - praktycznie o Enterprise OSGi z WebSphere Liberty Profile.

Nie planuję starać się o miano eksperta w temacie. Nie planuję przekonywać kogokolwiek, że znam Enterprise OSGi na wskroś, co sprawi, że odpowiem na większośc pytań. Nie planuję nawet omówić wszystkiego, co kryje się w Enterprise OSGi. Chcę, aby było krótko i na temat, a to już samo w sobie sprawia, że będzie to dla mnie nielada wyzwanie. Po co jeszcze komplikować sprawę?! Przedstawię aktualny stan wiedzy, który starałem się budować przez ostatnie kilka lat z podsumowaniami w postaci artykułów na moim Wiki w kategorii OSGi.

Odmówię sobie przyjemności budowania aplikacji na żywo, a raczej pokuszę się o współpracę z gitowymi etykietami, aby dostać kolejne wersje i je spokojnie omawiać. Liczę na współpracę Keynote oraz publiczności.

A skoro jesteśmy przy publiczności, to czy jest coś, co szczególnie intryguje Cię w kontekście Enterprise OSGi? Chętnie przygotuję materiał dedykowany. Muszę tylko poznać problem, który możesz opisać w komentarzu. Gorąco zachęcam do aktywniejszego udziału.

24 listopada 2012

WebSphere Liberty Profile z Enterprise OSGi i Java EE na Eclipse DemoCamp w Poznaniu

2 komentarzy
Pamiętasz wpis z poprzedniej edycji Eclipse DemoCamp w roku 2011? Nie?! Zajrzyj do Wrażenia pokonferencyjne - o Eclipse DemoCamp w Poznaniu. Tam też znajdziesz zdjęcie, którym Łukasz postanowił utrwalić naszą znajomość. I właśnie podczas czwartkowego spotkania, zrobiliśmy sobie kolejne, ku głębszemu utrwalaniu.


A tak poza tą bojową miną Łukasza, miły z niego gość. Zebrał się wspólnie z Natalią i zorganizowali kolejną edycję Eclipse DemoCamp. Kolejny Eclipse DemoCamp w Poznaniu!

Można o tej konferencji wiele pisać, ale na pewno bez trudu można zauważyć, że EDC na stałe wpisało się w kalendarz imprez informatycznych w Poznaniu. Zawsze w ciekawych miejscach (aczkolwiek tegoroczne zaszumione karaoke w tle, co trochę irytowało) i z pełną salą (dobieraną zapewne pod liczbę uczestników, więc zawsze wydaje się, że ludzie się wylewają).

Ze względu na 95 minutowe opóźnienie pociągu Warszawa-Berlin pojawiłem się na konferencji na długo po tym, kiedy o pizzy przypominały jedynie sterty pustych opakowań, więc po pierwszym piwie moje ciało doznało lekkiego zaskoczenia alkoholowego i kiedy po Jarku Bąku i Darku Łukszy przyszło mi wystąpić, nie mogłem znaleźć języka w gębie. Atmosfera spotkania pozwoliła mi dość szybko dojść do siebie i zaaplikowałem publiczności odpowiednią dawkę mojej wiedzy.

Slajdów nie było, a kontynuacją wystąpienia będą przyszłe artykuły i skrinkasty, których należy oczekiwać więcej niebawem. Co do samej formy prezentacji, polecam przygotować kawałki kodu na slajdach i wspierać się nimi do uwypuklania wartościowych elementów prezentowanego tematu. Dodatkowo warto zawsze otwierać wystąpienie slajdami wprowadzającymi oraz podsumowującymi na koniec. I najważniejsze - różne metody prezentacji uatrakcyjniają jej zawartość, więc korzystaj ze slajdów, na których są rysunki, tekst, zdjęcia, mnóstwo kolorów czy figur oraz porcja kodowania na żywo w międzyczasie. Nie udaje mi się tego wdrożyć w pełni, ale mam wrażenie, że jest to podstawa udanego wystąpienia publicznego. Ciekawe doświadczenie móc tego skosztować.

Dziękuję Natalii i Łukaszowi za zaproszenie i zachęcam innych do przyszłego, *czynnego* współudziału, czy to w roli aktywnego uczestnika, czy współorganizatora, albo prelegenta.

Udział w tegorocznym EDC w Poznaniu odkładam do archiwum i uważam go za bardzo wartościowe doświadczenie. Polecam!

21 listopada 2012

Poznań by poznać - Eclipse DemoCamp i GDG DevFest

2 komentarzy
Jakoś tak umknęło mi, aby napisać, że od czwartku do niedzieli będę w Poznaniu na dwóch konferencjach w zaszczytnej roli prelegenta - Eclipse DemoCamp (EDC) w czwartek o 21:15 (!) oraz GDG DevFest Poland w sobotę o 12:00.

W ten sposób mam możliwość odwiedzić Poznań, aby poznać ludzi i ich opinie na prezentowane tematy. Na to liczę. Nie zamierzam występować w roli eksperta omawianych tematów. Wyrosłem z takiego myślenia (że w moim przypadku jest to w ogóle możliwe). Interesuje mnie wyłącznie rola osoby, która spędziła trochę czasu, aby zrozumieć tajniki współistnienia Enterprise OSGi z Java EE w ramach IBM WebSphere Application Server V8.5 Liberty Profile (to w czwartek na EDC) oraz współbieżności na platformie Android (sobota podczas GDG DevFest) i chciałaby podzielić się zdobytymi umiejętnościami z innymi, aby ukierunkować dalsze zgłębianie tematu.

Liczę na liczne przybycie oraz aktywny udział uczestników, aby poświęcony czas - organizatorów, uczestników oraz prelegentów - był wyłącznie mierzony w skali pozytywnych doznań (zamiast negatywnie jako zmarnowany).

Klimat konferencji tworzą wszyscy zaangażowani i ostatnią rzeczą powinno być narzekanie, że było nieciekawie, kiedy wystarczyło zawłaszczyć trochę czasu dla własnych potrzeb. Namawiam do zadawania pytań, nawet w sytuacji, kiedy istnieje przekonanie, że jest to najbardziej trywialne i najmniej pożądane pytanie w danej chwili (skąd w ogóle mogłoby nam przyjść takie myślenie do głowy, skoro pytanie jeszcze nie padło?!) Konwenanse zostawiamy w domu i pracy, a na konferencję przychodzimy z otwartymi umysłami pozbawionymi obostrzeń w postaci przeszłych (zamierzchłych?) doświadczeń, które nauczyły nas wyłącznie słuchać bądź akceptować prawdy oczywiste.

Zachęcam gorąco do zabrania pomidorów, aby skorzystać z kilku, jeśli okaże się to jedynym sposobem na wyrażenie swojej opinii nt. oprawy prezentowanego tematu, a pewnie i tym samym przegonienie prelegenta ze sceny (ze skutkiem natychmiastowym i pewnie dożywotnim) :-)

29 maja 2012

Warsztaty z IBM WebSphere na PWSZ w Tarnowie - dzień 1

0 komentarzy
W ramach zadania "Przyszłość młodych w naszych rękach. Program zacieśniania współpracy uczelni z pracodawcami", które jest częścią projektu KLEKSS BIS Kapitał Ludzki - Edukacyjny Komponent Strategii Szkoły na uczelni PWSZ w Tarnowie mam okazję w ciągu 2 dni przedstawić aktualny stan zaawansowania prac IBM wokół nowych technologii - BPMN 2.0, Java EE 6 oraz aplikacji mobilnych z produktami, których data wydania jest zaplanowana dopiero na...15 czerwca! Mam okazję zaprezentować IBM WebSphere Business Process Manager V8, IBM WebSphere Application Server V8.5 Liberty Profile oraz IBM Worklight V5.0. Jako uzupełnienie stosu technologicznego, dodałem jeszcze programowanie funkcyjne z Clojure i dwudniowy maraton technologiczny trwa na dobre w Tarnowie! Wszystko praktycznie, z tworzeniem aplikacji na żywo i całkowicie bez slajdów - nie wliczając tego wprowadzającego o mnie :-)


Najbardziej podkręcony jestem możliwością zaprezentowania tych wszystkich technologii i produktów na żywo. Nie obyło się bez potknięć, chwil zadumy, ale mam wrażenie, że ogólnie poszło bardzo sprawnie.

O dziwo, jedynie jedna osoba wiedziała, a na drugiej trochę wymusiłem, określenie się z oczekiwanymi stawkami. Padło magiczne 4k PLN netto, co od razu skarciłem, że mi dumpingują rynek (!) Zakazałem mówić o tak niskich kwotach głośno i rozważyć bezpośrednie połączenie z Warszawą (chwilowo przerwane w Krakowie na okres remontu) jako potencjalny argument za większymi stawkami. Liczę na zastosowanie rad w działaniu.

Dzień 1 z BPMN 2.0, Java EE i IBM WebSphere


Dzisiaj miałem okazję przedstawić BPMN 2.0 oraz Java EE 6 z produktami IBM. Jutro zaplanowałem aplikacje mobilne (poprosiłem uczestników o przyniesienie swoich smartfonów), które będę tworzył w Javie (Android) oraz HTML5, CSS3 i JavaScript (IBM Worklight z użyciem PhoneGap, a w zasadzie Apache Cordova). Na podsumowanie turnee nie mogło zabraknąć Clojure. Nie wyobrażam sobie wystąpień publicznych bez jego udziału i nie mogło być inaczej w Tarnowie.

Podsumowaniem każdej trzygodzinnej sesji jest ankieta, którą uczestnicy wypełniają ku uciesze organizatorów i wykładowcy. Zebrałem wyniki i jestem trochę nimi zaskoczony. Myślałem, że to Java EE 6 wyjdzie mi dużo lepiej, a okazuje się, że udało mi się oczarować uczestników moją wiedzą o BPMN 2.0. Poniżej zestawienia średnich. Ciekawym Twojej interpretacji, gdzie wskazuje się największe niedociągnięcia (tych szukam najbardziej, aby kolejne inicjatywy tego pokroju były o niebo lepsze).

Wyniki pokazują potencjał naukowy drzemiący w studentach 2 roku PWSZ w Tarnowie i mogą stanowić ciekawy materiał badawczy dotyczący przyszłych adeptów informatyki praktycznej w Polsce. Grupa nie jest wielka, ale lepsze to niż nic. Prosiłem ich o najszczerszą szczerość.

Modelowanie procesów bieznesowych BPMN 2.0 w IBM WebSphere Business Process Manager V8.0


Uczestników (podpisanych na liście obecności): 22

Sposób prowadzenia zajęć: 13 osób na "Tak, odpowiadał" z 7 za "Średnio odpowiadał".

Wiedza merytoryczna (średnia): 5,23 (maksymalnie 6)

Umiejętność przekazywania wiedzy (średnia): 5,14 (maksymalnie 6)

Chętnie odpowiadał na pytania i udzielał wyjaśnień: wszystkie 22 osoby na "Tak".

Program wykładu: 16 osób na "Odpowiedni" z 6 osobami na "Za mało nasycony".

Oczekiwania: 4,5 (maksymalnie 6)

Uwagi:
  • więcej zastosowań programu (BPM)
  • przykłady gotowych projektów w BPM
  • przedstawienie gotowego projektu
  • przykłady z życia wzięte
  • więcej przykładów gotowych procesów biznesowych
  • przykłady praktyczne modelowania procesów biznesowych oraz aplikacji od strony klientów
  • gotowy projekt
  • sensowne użycie programu
  • realne przykłady biznesowe z projektów
  • krótki przegląd narzędzi BPMN
  • większy nacisk na programowanie
  • dokładnie sprecyzowany model rzeczywistego projektu biznesowego
  • wyjaśnienie modelowania procesu biznesowego na konkretnym przykładzie biznesowym
O czym innym wartoby posłuchać?
  • aplikacje mobilne
  • 2 osoby za "Programowanie w Javie"
  • 2 osoby za "Różne języki"

Java EE 6 z IBM WebSphere Application Server V8.5 i Eclipse IDE


Uczestników (podpisanych na liście obecności): 18

Sposób prowadzenia zajęć: 17 osób na "Tak, odpowiadał" z 6 za "Średnio odpowiadał".

Wiedza merytoryczna (średnia): 5,23 (maksymalnie 6)

Umiejętność przekazywania wiedzy (średnia): 5,09 (maksymalnie 6)

Chętnie odpowiadał na pytania i udzielał wyjaśnień: wszystkie 23 osoby na "Tak".

Program wykładu: 2 osoby na "Zbyt przesycony", 18 osób na "Odpowiedni" z 3 osobami na "Za mało nasycony".

Oczekiwania: 4,5 (maksymalnie 6)

Uwagi:
  • Więcej rozbudowanych przykładów
  • zagadnienia z projektowania serwisów internetowych opartych na Java EE i EJB
O czym innym wartoby posłuchać?
  • 3 osoby za "Tworzenie aplikacji mobilnych"
  • języki programowania
  • 4 osoby za "Java od podstaw"
  • AWT/Swing
  • Spring MVC

15 maja 2012

Po dwóch sesjach "Informatycznych Technologii Biznesowych" (ITB) na UAM w Poznaniu

0 komentarzy
Umożliwiono mi poprowadzenie pewnego projektu naukowego, którego celem jest zrealizowanie 24 godzin wykładów i ćwiczeń w ramach programu dwusemestralnych studiów podyplomowych "Informatyczne Technologie Biznesowe" (ITB) na Wydziale Matematyki i Informatyki Uniwersytetu im. Adama Mickiewicza.

W ten sposób mogę podzielić się swoją wiedzą w temacie programowania w Javie, Java EE 6 oraz produktów z rodziny IBM WebSphere, głównie IBM WebSphere Application Server V8 oraz V8.5 Libery Profile. Wybaczcie określenie, ale uczestnicy są pewnego rodzaju moim "materiałem poznawczym", który pozwala mi uzmysłowić sobie, jak rzeczy proste wcale takimi nie muszą być, a wszystko zależy od doświadczenia.

Kiedy ustalałem materiał do omówienia, planowałem wiele, sądząc, że 24 godziny to szmat czasu. I myliłby się ten, kto tak sądzi. Doświadczenie w wystąpieniach publicznych pomaga, ale tutaj zmienna czasu się znacząco wydłużyła, więc należało podzielić całość na małe prezentacje. Poza tym, jeśli zebrany materiał przygotowawczy nie pozwala na dopasowanie tematyki, to sprawa staje się karkołomna. Rozpoznanie audytorium jest kluczem do sukcesu sprawnego przekazu. Marzy mi się, aby po moich wystąpieniach znalazły się osoby, które pozwolą sobie na chwilę zastanowienia nad omówionym tematem. Marzy mi się, aby uczestnicy byli aktywni, wiedzieli, czego oczekują w zamian za poświęcony czas - swój czas. To jest inwestycja, którą wielu sprowadza do poziomu "odsiedzę swoje i będzie z bańki". Jeszcze mniej osób chce i potrafi wyrazić swoją opinię. Szkoda.

To sprawia, że praca z klientem (w tej konfiguracji są to słuchacze-studenci ITB) jest nieprzewidywalna i stąd okrywcza. A dodatkowo można wiele się nauczyć o materiale, który zdawało się, że rozumiem. Ot, choćby ostatnie próby z uruchomieniem executable jar, co w nomenklaturze Eclipse nazywa się Runnable Jar, a jest wykonywalnym plikiem jar z Main-Class w MANIFEST.MF.


Nie tylko nie wiedziałem o istnieniu asystenta Runnable JAR file w Eclipse, ale również później o powiązaniu między nim a konfiguracją uruchomieniową projektu.


Nie wiedziałem, bo nie było potrzebne, ale jak tu przeprowadzić wprowadzenie do Javy bez wyjaśnienia tego mechanizmu?! Teraz już wiem i kolejni będą mogli podziwiać moją wiedzę (a ja nie powiem, że jeszcze chwilę temu tego nie wiedziałem - niech sobie myślą, że się z tym urodziłem!).

I tak nieprzewidywalnie było jeszcze kilkakrotnie, kiedy kwitowałem pytania, uwagi, dyskusje stwierdzeniem "Wy to mi robicie specjalnie!" Innymi słowy, często padały pytania, które wcześniej zostały już wyjaśnione, które wymagały jedynie przeczytania, co napisane na ekranie, czy wręcz pomyślenia. Dzięki dwóm sesjom w ramach ITB nauczyłem się, że nie wszystko oczywiste, co jest dla mnie oczywiste, a wszystko wymaga czasu, skupienia i cierpliwości. Trzeba pozwolić na pytania i umiejętnie sugerować chwilę zastanowienia. Wciąż uczę się tej magicznej sztuki nauczania. Z trójką dzieci w domu wydaje się, że powinno być prościej, ale moje osiągnięcia na tym polu świadczą, że chyba jestem oporny na tę naukę.

Jeszcze przed pierwszą sesją ostrzegano mnie, żeby sobie nie urządzić wprowadzenia do programowania w Javie. Dla mnie poznawanie produktów IBM WebSphere przez osoby, które chcą wiedzieć więcej (rozumiem, że ITB, to właśnie wyrażenie tej potrzeby, że chce się coś więcej) sprowadza się do znajomości mechanizmów języka Java, w którym zostały napisane. Dlaczego? Wychodzę z założenia, że jeśli zna się podstawy, tj. składowe, to zrozumienie złożonej materii przychodzi łatwiej. Nie jest to warunek konieczny, ale przy odrobinie otwartości umysłu można poznać więcej, szybciej. Ja tego doświadczam i mam wrażenie, że inni również mogą.

Kiedy zapytałem uczestników, jakie są ich oczekiwania, zapadła cisza. Wyobraź sobie moją minę, kiedy próbuję dopasować materiał do uczestników, a oni sami nie wiedzą, czego chcą! Po sesji przedstawiania się oraz możliwego materiału edukacyjnego, odniosłem wrażenie, że wielu byłoby skłonnych poznać tajniki programowania w Javie.

I się zaczęło (w pozytywnym tego słowa znaczeniu!)

Zaczęliśmy od tworzenia projektów javowych w Eclipse. Kilka klas do uruchomienia z linii poleceń, później wspomniany wykonywalny jar, do tego aplikacja graficzna i na koniec servlet z IBM WebSphere Application Server 8.5 Liberty Profile.

Odnoszę wrażenie, że było to niesamowite doświadczenie dla obu stron. Przekrój naukowy, wiekowy oraz płciowy nie pozostawia złudzeń, że tak zróżnicowanej grupy nie miałem jeszcze wcześniej. I Java się podobała (co składam również na barki nieinwazyjnego sposobu, w jakim ją wprowadziłem - chwila pochwały dla siebie ku poprawieniu nastroju).

Na kolejnym spotkaniu mamy do dyspozycji 6 godzin i na moją propozycję, aby zabawić się z Androidem, grupa odpowiedziała gromkim "TAK!" Zaproponowałem, aby uczestnicy przynieśli swoje smartfony, bo nic tak nie daje kopa ku dalszemu rozwojowi, jak możliwość korzystania z tego, co samemu się stworzyło. Dawno to było, kiedy siedziałem przy Androidzie, a teraz będzie okazja do odświeżenia materiału. Już nie mogę doczekać się, kiedy zobaczę ich twarze, po tym, jak uruchomią pierwsze HelloWorld na swoich smartfonach. Oj, będzie się działo!

Na zakończenie wycinek z korespondencji, którą dostałem od jednego z uczestników:

"Chciałbym poznać środowisko Java od podstaw, ale ukierunkowując swoje zainteresowania w kierunku tworzenia dynamicznych stron WWW. Coś mi mówi, że w tym języku drzemie większy potencjał niż w PHP. Może i się mylę, ale jak nie sprawdzę to się nie dowiem. Tak czy siak skutecznie mnie zachęciłeś by choć spróbować."

I właśnie to było moim celem! Nie mam złudzeń, że 24 godziny to zdecydowanie za mało, aby pozwolić rozkoszować się pięknem języka Java (trzeba najpierw nauczyć się jej odpowiednio smakować), ale zaintrygować nią, to już wystarczy. Ten mail jest dopełnieniem mojego szczęścia. Kiedy dodam, że na sali znalazła się pani nauczycielka, która zechciała popróbować się samodzielnie z poznaniem Javy w ramach zadania domowego, mojego szczęścia jest więcej niż jedna osoba mogłaby skonsumować :-)

Kolejne "doświadczenie naukowe" już podczas tegotygodniowego GeeCON, podczas którego wystąpię z prezentacją "A whirlwind tour of Clojure", aby po niej pojawić się na spotkaniu Warszawa JUG 22 maja z tematem "Budowanie aplikacji Java EE 6 z Clojure" (zapraszam do dyskusji o jego formie i tematyce), aby pojawić się w Ustroniu 28 maja, Tarnowie 29-30 maja i Warszawie na konferencji Softdevcon 31 maja. Do zobaczenia!

p.s. Swoje doświadczenia zbieram w postaci materiałów szkoleniowych, które mam nadzieję opublikować niebawem. Pisz na priv, jeśli jesteś zainteresowany/a poznaniem szczegółów lub udziałem w projekcie jako beta tester. "Amicorum omnia communia" jak mówią.

10 maja 2012

Wątki podczas obsługi asynchronicznego żądania w Servlet 3.0 i IBM WebSphere Application Server 8.0.0.3

5 komentarzy
Kontynuując moje rozpoznawanie mechanizmów asynchronicznego przetwarzania żądań w Servlet 3.0, tym razem przysiadłem, aby rozpoznać ich obsługę w serwerze aplikacyjnym IBM WebSphere Application Server 8.0.0.3. Stworzyłem servlet, który wyświetla wątki uczestniczące w zadaniu.
package pl.japila;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.AsyncContext;
import javax.servlet.ServletException;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(urlPatterns = "/AsyncServlet", asyncSupported = true)
public class AsyncServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

        // Record the servlet's thread
        PrintWriter out = response.getWriter();
        out.printf("<h3>Servlet's thread: %s</h3>", Thread.currentThread());
        out.flush();
        
        // Put the request into asynchronous mode
        request.startAsync();

        // Run an asynchronous task via servlet 3.0's abstractions
        AsyncContext asyncCtx = request.getAsyncContext();
        MyTask mt = new MyTask(asyncCtx);
        asyncCtx.start(mt);
        
        // Run another asynchronous task via java's abstractions
        MyTask mt02 = new MyTask(asyncCtx);
        new Thread(mt02).start();

        out.printf("<h3>Servlet finishes its job</h3>");
    }

    public class MyTask implements Runnable {

        AsyncContext asyncContext;

        public MyTask(AsyncContext asyncContext) {
            this.asyncContext = asyncContext;
        }

        @Override
        public void run() {
            ServletResponse response = asyncContext.getResponse();
            try {
                // do the time-consuming job
                PrintWriter out = response.getWriter();
                for (int i = 0; i < 5; i++) {
                    out.printf("<h2>Hello from thread: %s (%d)</h2>", Thread.currentThread(), i);
                    out.flush();
                    Thread.sleep(1 /* secs */ * 1000);
                }
            } catch (IOException e) {
                e.printStackTrace();
            } catch (InterruptedException e) {
                e.printStackTrace();
            } finally {
                asyncContext.complete();
            }
        }
    }
}
Czy widział(a)byś usprawnienia w tym servlecie?

Komentarz Tomka mógłby świadczyć o niepoprawności takiego podejścia, ale w moim przekonaniu jedynym obecnie problemem jest tworzenie wątku każdorazowo po otrzymaniu żądania i opcjonalnie brak określenia czasu oczekiwania na zakończenie. Alternatywnym i sądzę, że możliwym podejściem jest tworzenie pseudo-wątku za pomocą java.util.concurrent.Callable i skorzystanie z mechanizmów oferowanych przez pakiet java.util.concurrent. Na chwilę obecną wiem, że to możliwe (konsultant), ale nie wiem, jak to zrealizować (specjalista).

Wcześniejsze wpisy o przetwarzaniu asynchronicznym w Servlet 3.0:
Jego uruchomienie skutkuje wyświetleniem strony z uczestniczącymi wątkami. Uważam, że podział na dedykowane pule wątków w WASie, które można osobno stroić do potrzeb aplikacji, prezentuje się obiecująco.


A jak to wygląda na Twoim serwerze aplikacyjnym? Ciekawym wyników z GlassFish 3.1.2, JBoss AS 7.1.1, Apache Tomcat 7.0.27, Oracle WebLogic Server 12c i in. Wyniki można słać na priv, albo zamieścić bezpośrednio w komentarzu do tego wpisu. Gorąco zachęcam.

21 marca 2012

IBM Certified System Administrator - WebSphere Application Server Network Deployment V8.0 zdobyty

0 komentarzy
Na rynku pojawił się nowy certifikat IBM Certified System Administrator - WebSphere Application Server Network Deployment V8.0 i w związku z moimi obowiązkami służbowymi nie darowałbym sobie, gdybym nie miał go w swoich zbiorach. Już mam!


Teraz bardzo chciałbym przysiąść nad IBM Certified Solution Developer - Web Services Development for WebSphere Application Server V7.0 i Oracle Certified Expert, Java EE 6 Web Component Developer, bo czuję, że są w zasięgu ręki bez większego nakładu pracy. Pewności jednak nigdy za wiele, więc nauki czas rozpocząć!

09 marca 2012

IBM Certified Deployment Professional - WebSphere Process Server V7.0 tak na mnie wołają

0 komentarzy
Ostatnie zaangażowanie w Clojure raczej znacznie wpływało na moje przygotowania do egzaminu Test 000-608, IBM WebSphere Process Server V7.0, Deployment. Jak pewnie można było zauważyć na moim angielskojęzycznym blogu Japila :: verba docent, exempla trahunt, gdybym mógł, to rzuciłbym wszystko na rzecz programowania funkcyjnego z Clojure, ale za coś trzeba przecież żyć i nie zawsze można robić tylko tych najbardziej wkręcających rzeczy :)

Do uczestniczenia w pewnym projekcie potrzebne mi było zdanie tego testu i zaplanowałem go na dzisiaj. Wynik nie powala: 60% (39 earned out of 65 possible) przy poziomie 54% zdającym, a pognębia mnie jeszcze fakt, że 10 pytań musiałem odpowiedzieć w ostatnich 5 minutach i więcej było w tym intuicji i pośpiechu (raczej odwrotnie) niż zastanowienia i rozwagi. Może tylko dzięki temu udało mi się zdać?! W sumie, wolałbym, aby odpowiedź była twierdząca.

IBM Certified Deployment Professional - WebSphere Process Server V7.0

Różnice między poprzednimi wersjami produktu IBM WebSphere Process Server, a wersją 7.0 są stosunkowo niewielkie i z wcześniejszymi certyfikatami i kilkoma projektami po drodze wierzyłem, że się powiedzie. W kolejnej wersji 7.5 już nie będzie tak przyjemnie - zmiany są znaczne. Po integracji produktów IBM WebSphere Process Server (WPS) z IBM WebSphere Lombardi Edition (WLE) pod parasolem IBM Business Process Manager będzie się z czego edukować, aby móc poszczycić się jego certyfikatem. To będzie wymagało poważniejszego przygotowania, przemyślenia i rozwagi. Wiedza częściowo inna.

Wespół ze zdanym egzaminem Test 000-377 - IBM WebSphere Application Server Network Deployment V7.0, Core Administration stałem się tym samym IBM Certified Deployment Professional - WebSphere Process Server V7.0. Jak się nie mylę, to również IBM Certified Administrator for SOA Solutions - WebSphere Process Server V7.0. Tak! Wcześniej przecież już zrobiłem Test 000-669: SOA Fundamentals [2008]. Cudnie!

IBM Certified Administrator for SOA Solutions - WebSphere Process Server V7.0

Gdzieś czytałem, że człowiek to taka istota, która lubi rywalizację - jedni chodzą na siłownię, inni siedzą przed konsolą do gier, a u mnie te certyfikaty są takim dla mnie jej substytutem. CV uzupełnione i rozesłane. Czekam na...miliony! :)

14 grudnia 2011

Wrażenia pokonferencyjne - o Eclipse DemoCamp w Poznaniu

3 komentarzy
Jak ten czas szybko płynie! Wydaje się, że to wcale nie tak dawno, kiedy pisałem o konferencji JDD w Krakowie, a to już prawie 2 tygodnie mija i dopiero teraz przedstawiam wrażenia z kolejnej, ze mną w roli prelegenta. Potwierdza się stara, dobra zasada, że zadania trzeba robić, a nie o nich mówić i w przypadków moich relacji pokonferencyjnych niestety nie udało mi się jej zastosować. Nadrabiam.

Dobrego złe początki

Że też zawsze muszę sobie wybrać temat na wystąpienie, w którym doświadczenie zdecydowanie odbiega od standardów, których oczekuje się od prezentującego! W końcu zejdę na serce od tego stresu :)

Do Poznania przyjechałem około 17:30 i wydawało się, że była to odpowiednia chwila. Jeśli jednak dodać do tego właśnie rozpoczynające się targi poznańskie (nie wiem, czy to były te targi, czy inne z puli wielu targów w Poznaniu), to niestety było to złe założenie. Kiedy taksówka zajechała przez dworzec, a później ślimaczym tempem dowlokła się pod drzwi pubu na Szyperskiej, było już dawno po rozpoczęciu Eclipse DemoCamp 2011 w Poznaniu.

Zastałem już tłoczną salę słuchaczami, którym Tomek Zarna przedstawiał karierę Eclipse. Nie miałem okazji wysłuchać jego prezentacji, bo nie tylko, że trochę głośno, że jedynie na przodzie można było usłyszeć, co ma do powiedzenia, ale też sama sytuacja spotkania z organizatorami: Natalią Klimasz i Łukaszem Stachowiakiem, a później Adamem Dudczakiem, aby jeszcze później trafić na Darka "egit" Łukszę i...patrz, że też musiałem zapomnieć imienia!...nie pozwalała na wsłuchiwanie się. Zresztą, kto by tam słuchał, kiedy można pogadać z dawno niewidzianymi znajomymi?! Trafiłem również w międzyczasie na Dawida Weissa, ale to było chyba już po jego prezentacji. Wszystkich gorąco pozdrawiam!

"Przebijanie" się przez wrzawę powodowało tylko dalsze jej nakręcanie, więc o rozmowie nie było co marzyć. Za głośno. Jednak próbowaliśmy, co później odbiło się na moim gardle. Do domu zajechałem w stanie, jakbym był po niezłej bibce.

Przysłuchiwałem się prezentacji Dawida, ale wciąż w zasadzie myślałem o moim przygotowaniu tematu i przyglądałem się reakcjom uczestników na to, co ma do powiedzenia. W sali znajdowały się dwa monitory, na których można było zobaczyć slajdy, ale tylko jeden miał obok prezentera, więc było nie lada wyzwaniem zdecydować się, gdzie patrzeć, aby widzieć, albo słyszeć (monitory były różnej rozdzielczości i ich ułożenie sprawiało, że miało to znaczenie). Miałem wrażenie, że atmosfera jest lekko akademicka, tzn. za bardzo nastawiona na odbiór, bez choćby chęci zadawania pytań, co sama atmosfera ogólnego zgiełku dodatkowo "sprzyjała".

Pizza time. Już wspólnie ze Szczecinianami. Spałaszowaliśmy kilka kawałków, aby dalej dywagować na tematy różne. Prezentacje sobie, a my sobie.

Wchodzę na scenę

Przyszła pora na moje wystąpienie. Sądziłem, że EDC to rodzaj spotkania, w którym dużo kodu jest wielce pożądane. Z drugiej strony zastanawiałem się, na ile skuteczny jest przekaz z otwartym IDE i kodowaniem na żywo. Tym razem postawiłem na to drugie. Miało być dużo IBM Rational Application Developer V8 z Java EE 6 na IBM WebSphere Application Server V8. I to był mój błąd. Właśnie przez te monitory i ogólną wrzawę. Kompletnie nie spodziewałem się takiego miejsca i atmosfery, w której ja miałbym prezentować Java EE 6 tworząc aplikacje na żywo. Chciałem dobrze. To wszystko ich wina :)

Najbardziej obawiałem się mojego przygotowania z JAX-RS (z zanurzonym Apache Wink w WAS V8), ale ostatecznie i tak nie pokazałem tego. Dzisiaj bardzo tego żałuję, bo mogło uzupełnić przekaz.

Zaczęły się problemy z mikrofonem - a to za głośno, a to za daleko i tym samym cicho, a ja potrzebowałem wolnych rąk do kodowania. W końcu się dopasowaliśmy - doszedłem do porozumienia z mikrofonem i zabrałem się za demo.

Zacząłem od prostej aplikacji webowej z servletem określonym przez @WebServlet. Zero deskryptora i tylko @WebServlet. Później urlPatterns i @WebFilter. Dalej przyszła pora na demonstrację @Stateless bez jawnego interfejsu biznesowego w ramach WAR. Dalej chwila z CDI i tak przeszliśmy z @EJB do @Inject (ciekawym, ile osób rozróżnia zastosowanie obu?) Dotarłem bodajże do @WebService wygenerowanym z POJO w projekcie javowym i na tym się zakończyła moja batalia o zademonstrowanie produktów IBM wspierających Java EE 6.

Nawet się nie obejrzałem i wnet było już po godzinie.

Losowanie

Na zakończenie organizatorzy przeprowadzili losowanie. Pamiętam, że losowano książki, bo podczas ich rozlosowywania zdążyłem tylko powiedzieć do Darka, że nigdy, ale to nigdy nie udało mi się czegokolwiek wygrać i chyba musiałem mówić to z takim przekonaniem, że kiedy skończyłem, padło "Jacek Laskowski".

Wygrałem książkę!

Cóż za radocha. Miałem do wyboru jedną i padło na "97 Things Every Programmer Should Know". To było doskonałe zakończenie mojego wystąpienia i całego spotkania mimo, że, jak się później okazało, nie był to wcale koniec.

Nocne dyskusje i powrót

Po zakończeniu prezentacji, siedzieliśmy jeszcze dłuższą chwilę. Rozmawialiśmy o różnych rzeczach, aż padło magiczne: "Wychodzimy na miasto". Trafiliśmy na rynek, gdzie przesiedzieliśmy do...4 nad ranem! (mam nadzieję, że nie naciągam, bo już sam nie jestem pewien do której siedzieliśmy). Szczecin odjechał. I ja również zasypiając nad ranem. To na prawdę bolało szczególnie, że zakończyło się moim przespaniem porannego pociągu do Warszawy. W końcu jednak dotarłem do niej i EDC przeszło do historii jako bardzo udane przedsięwzięcie. Upewniło mnie o potrzebie częstszego udziału w nich i coś mi mówi, że nie powinienem odstępować od publicznych wystąpień. Chyba zaczęły mi ponownie sprawiać niesamowitą przyjemność.


Dziękuję Natalii i Łukaszowi za zaproszenie. Możliwość wyłożenia mojej niewiedzy szerszej publiczności była bezcenna :) Czuję się zobowiązany!

17 listopada 2011

Przyszły tydzień konferencyjnie - JDD 2011 w Krakowie i Eclipse DemoCamp w Poznaniu

0 komentarzy
Maksym rozwija się znakomicie. Stuknęło mu 6 tygodni i nie tylko, że zaczął przekręcać głowę z lewa na prawo (z przewagą skierowania na lewo), to zaczął się uśmiechać i reaguje na znajome głosy i zachowania (dorosłych, głównie rodziców, którzy wierzą i brną w zaparte, że te milusie słówka są przyjemniejsze dla ucha malca).


Maksym uśmiecha się, regularnie ogłasza pobudkę około 6:45 (z przewagą godzin wcześniejszych - akurat na ranne bicie dzwonów o 6:30!) i kiedy się złości bardzo intensywnie rusza nogami - najpierw lewą, aby przy udziale prawej być na prawdę zły. Doskonała zabawa to rozpoznawanie jego zachowań - podobne do rozpoznawania działającego oprogramowania bez dokumentacji :)

JDD w Krakowie - 21-22 listopada 2011


Poniedziałek i wtorek jestem w Krakowie na konferencji JDD 2011, w której biorę udział jako uczestnik panelu dyskusyjnego Welcome to Javaland. Za stroną konferencji:
"W czasie konferencji JDD odbędzie się panel dyskusyjny, w trakcie którego zaproszeni goście: Jacek Laskowski, Grzesiek Duda, Andrzej Grzesik, Anna Kołodziejczyk i Andrzej Targosz rozmawiać będą na temat historii rozwoju konferencji i społeczności Java w Polsce. Opowiemy o tym jak doszło do zorganizowania pierwszej imprezy, jak się rozwijały kolejne inicjatywy oraz jaka jest przyszłość spotkań Javy w naszym kraju.

Odpowiemy na pytania dlaczego ważne jest organizowanie w Polsce technicznych konferencji, jak to się stało, ze bez wsparcia jednej mocnej firmy udało się doprowadzić do tak dynamicznego rozrostu społeczności Java w Polsce oraz dlaczego istnienie kilku podobnych eventów równolegle ma sens. Wspólnie zastanowimy się co zrobić, aby zwiększyć ilość uczestników zagranicznych w kolejnych konferencjach oraz co wyróżnia nasze imprezy na mapie Europy."
Trudno mi powiedzieć, czy na miejscu uczestników konferencji cieszyłbym się z takiego "wypełniacza" (szczególnie, że alternatywy nie ma), ale zapytany o udział, od razu się zgodziłem, bo uważam, że wciąż zbyt mało osób udziela się publicznie pro publico bono. Liczę na aktywny udział uczestników konferencji.

Później już w roli uczestnika konferencji zamierzam wziąć udział w prezentacji Tomasza Kowalczewskiego z "Domknięcia w Javie", Erika Jan de Wit'a "Scrum – następca modelu kaskadowego", Pawła Brodzińskiego, którego wpisy na blogu czytam z zapałem, z "Scrum, Kanban i inne opowieści", aby na koniec usiedzieć przy Andrew Rubinger'ze z "Testowanie w środowisku Java Enterprise". Jakoś tak wyszło, że wszystkie z prezentacji będą po angielsku, a tematy są po polsku :)

Drugi dzień chciałbym poświęcić na dokształcanie w temacie TDD z udziałem Krzysztofa Jelskiego i Marcina Zajączkowskiego, którzy poprowadzą "TDD Coding Dojo".

Eclipse DemoCamp w Poznaniu - 24 listopada 2011



W czwartek, 24 listopada, pojawię się wieczorem z tematem "Java EE 6 with WebSphere AS 8 and Rational Application Developer 8" w Poznaniu na Eclipse DemoCamp. Kto jednak chciałby słuchać o Java EE 6, od kiedy stała się wręcz trywialna w użyciu?! Dla wytrwałych będę miał więc niespodziankę w postaci...OSGi Blueprint. Zobaczymy, co WAS8 potrafi uruchomić, a RAD8 stworzyć w tym obszarze. Będzie to dla mnie świetna okazja, aby odświeżyć sobie temat Enterprise OSGi z OSGi Blueprint z Apache Aries w IBM WebSphere Application Server V8.

Zastanawiam się, czy całkowicie zaniechać slajdów na rzecz prezentacji aplikacji, które omówię korzystając z RAD V8 i uruchomię na WAS V8?! Godzina na tego typu cyrki nigdy nie kończy się na godzinie i zostaje tylko niesmak niedopowiedzenia. Przy godzinie uważam, że nie ma co liczyć na wiele, więc pewnie skończy się na slajdach, aby po 45 minutach zachęcić do pytań. Obym nie zapomniał, że moje wystąpienie zaplanowane jest na 9 w nocy!

04 listopada 2011

IBM Certified Solution Developer - WebSphere Integration Developer V6.2 od dzisiaj

0 komentarzy
20 listopada 2009 napisałem w Od dzisiaj zwą mnie "IBM Certified System Administrator - WebSphere Application Server, Network Deployment V6.1" :
"Po prawie 4 latach pracy w IBM z produktami z rodziny IBM WebSphere mam swój pierwszy certyfikat produktowy "Test 000-253: IBM WebSphere Application Server Network Deployment V6.1, Core Administration" i tym samym przywdziałem szaty "IBM Certified System Administrator - WebSphere Application Server, Network Deployment V6.1"."
Dzisiaj mijają prawie 2 lata od tego momentu i tym bardziej jestem dumny móc pochwalić się kolejnym osiągnięciem na niwie certyfikacyjnej - od dzisiaj jestem IBM Certified Solution Developer - WebSphere Integration Developer V6.2.


Wynik nie napawa optymizmem - 65%, co tylko potwierdza, że chyba nie dane mi wychylić głowy ponad przeciętność. Jak do tej pory niewiele było egzaminów, z których potrafiłem uzyskać 4 i więcej, więc po prostu akceptuję wynik, przede wszystkim ciesząc się, że mam ten egzamin za sobą.

A nie było lekko. Dla przypomnienia wspomnę o podsumowaniu moich wcześniejszych prób - wpis z 21 sierpnia 2010 Do 3 razy sztuka? A może 4? Kolejne niepowodzenie z Test 000-379: IBM WebSphere Integration Developer V6.2, Solution Development.

Właśnie poprzednie nieudane podejścia i dodatkowo wczorajszy Fail pozostawiało wiele do życzenia. I nauki!


Ale czego nie robi się dla kariery?!

Bardzo przydało mi się studiowanie różnych scenariuszy z narzędziem, a szczególnie tych, które poznałem właśnie podczas tych wszystkich podejść testowych. I właśnie ta nauka pozostanie u mnie w pamięci najdłużej - projekty, w których miałem możliwość uczestniczyć do tej pory z WID nie były specjalnie wyrafinowane i zaczynam podejrzewać, że może wynika to z faktu, że wciąż na SOA w Polsce trzeba jeszcze poczekać. Mam nieodparte wrażenie, że bez względu na produkt, którym chcemy realizować założenia SOA, wciąż za mało studiujemy jego możliwości. Nie zamierzam wychwalać zestawu WID/WPS jako właściwego do wszystkich sytuacji integracyjnych, ale dla stosunkowo wielu jest to właściwa oferta. Kto nie wierzy, niech spróbuje samodzielnie poznać produkt - niestety nie wiem, czy w ogóle istnieje wersja do samodzielnej nauki, chociażby czasowa. Zainteresowanych uprasza się o kontakt na priv - może uda się zaspokoić ciekawość w jakiś bliżej jeszcze nieokreślony sposób.

Można tylko zapytać, po co w ogóle ten certyfikat, kiedy od paru lat mamy wersję 7.0 (z egzaminem Test 000-607: IBM WebSphere Process Server V7.0, Integration Development) oraz 7.5 (ze zmienioną nazwą na Integration Designer w zestawie IBM Business Process Manager 7.5 Advanced)? Po prostu chciałem sobie udowodnić, że mogę. Uparłem się na tę wersję, bo byłem święcie przekonany, że znam produkt wystarczająco, aby zdać egzamin. Każda kolejna porażka tylko mnie coraz bardziej rozjuszała (a moje ego cierpiało). Ten opór się w końcu opłacił i wierzę, że z niewielkimi zmianami między wersjami 7.0 i 7.5 pora spróbować czegoś (nieznacznie?) odmiennego - IBM Certified Associate BPM Developer - WebSphere Lombardi Edition V7.2? Nie znaczy to, że kończę z WID, bo co to, to nie! Po prostu jego już okiełznałem na tyle, abym wiedział na czym się skupić, aby już bez stresu poznawać jego dalsze tajniki. Klienci powinni odczuć zmianę na korzyść.

Pozdrawiam jednocześnie wszystkich, którym niejednokrotnie powinęła się noga na tym samym egzaminie. Niesamowite uczucie móc tego doświadczyć!

14 lipca 2011

IBM RAD V8.0.3 Installation - part 3: Creating profile - mój, pierwszy, angielskojęzyczny skrinkast

2 komentarzy
Jak to mówią: "Jak się bardzo chce, to w końcu się uda." Mi zwykle idzie znacznie dłużej niż innym, często bez wyraźnego powodu i najbardziej bolesnym jest to doświadczenie, na które czeka się latami, aby okazało się, że wszystkie te wyimaginowane przeciwności odeszły natychmiast w zapomnienie. Dzisiaj przekonałem się kolejny raz, że pierwszy krok jest najtrudniejszy i kosztuje najwięcej wysiłku, często za sprawą naszych wewnętrznych fobii.

Tak było z moimi skrinkastami. Ile to razy obiecywałem sobie, że w końcu zdobędę się w sobie, aby zacząć nagrania z włączonym głosem w wersji angielskiej i trzeba było czekać latami, aby dopiero dzisiaj, 14 lipca 2011, wyszedł mój, pierwszy, angielskojęzyczny skrinkast.

Wszystko za sprawą jednego gościa, który uparcie, ale z gracją, namawiał mnie na udźwiękowienie nagrań. Łukasz ''Smok'' Rybka dopiął swego i udało mu się przekonać mnie do wypuszczenia skrinkasta z obrazem i dźwiękiem. Dziękuję Łukasz za pomoc. Była nieoceniona i zawsze będę pamiętał, kto sprawił, że w końcu się przemogłem.

Nie zabieram więcej czasu i zachęcam do obejrzenia kolejnego odcinka z serii IBM RAD V8.0.3 Installation, w którym tworzę profil serwera aplikacyjnego IBM WebSphere Application Server V8. Czekam niecierpliwie na uwagi i dalsze sugestie odnośnie doskonalenia mojego warsztatu nagraniowego ku Twojej przyjemności wizualno-poznawczej.

12 lipca 2011

IBM RAD V8.0.3 Installation - part 2: RAD installation

5 komentarzy
Po ostatnim nagraniu zabrałem się ochoczo za kolejne. Kiedy odkryłem (=dotarło do mnie), że nagrywanie powinno odbywać się w rozdzielczości docelowej i że jej zmiana to wybór odpowiedniego menu na iMac'u, nagrywanie stało się znacznie mniej absorbujące. Niestety, nagranie wciąż nieme, więc trudno znaleźć w nim odpowiedzi, dlaczego instalacja wyglądała tak, jak wygląda. Wersji dźwiękowej można oczekiwać niebawem, bo od tej ciszy aż uszy puchną :)
Zachęcam do obejrzenia 8-minutówki. Uwagi odnośnie nagrania i przyszłym tematów mile widziane. Odpowiedzi pojawią się w kolejnych nagraniach i/lub w komentarzach. Właśnie czytam książkę na temat EJB 3.1, więc to będzie głównym tematem kolejnych nagrań, w których IDE to RAD 8, a serwerem aplikacyjnym będzie WAS 8.

Zastanawiam się jeszcze, czy właściwym miejscem na skrinkasty jest YouTube. Bardziej skłaniałbym się ku vimeo. Jakieś takie bardziej profesjonalne.

27 stycznia 2011

Nieprzewidziane przypadki moje podczas ostatniego spotkania Warszawa JUG

0 komentarzy
Podczas ostatniego 76. spotkania Warszawa JUG - Tworzenie procesów biznesowych z Activiti i IBM WebSphere BPM (WPS/WID/WLE) doszło kilkukrotnie do swoistego mojego zawieszenia, kiedy prezentowałem "wspaniałości" produktów z rodziny IBM WebSphere BPM - Process Server (WPS) V7 oraz Integration Developer (WID) V7.

Pamiętam, że udało mi się natrafić na przynajmniej 2 takie momenty - podczas odczytywania adresu (punktu końcowego) usługi sieciowej...okej, okej...Web Service w konsoli administracyjnej WPSa, którego tam po prostu nie było (ku mojemu i pewnie publiczności również widząc moje) zdziwieniu oraz niemałemu zakłopotaniu przy prezentacji WS-BPEL dla nowostworzonego procesu biznesowego.

Pierwszy temat już wyjaśniłem i opisałem w Endpoint address of JAX-WS binding empty when…Enter pressed too early. O drugim będzie niebawem. Podobnie jak z nagraniem spotkania. Deklarowałem lekki lifting moich nieocenzurowanych korporacyjnie wypowiedzi, ale pewnie skończy się na konwersji i puszczeniu w świat bez edycji. Niebawem.

Przy okazji, spotkanie było dla mnie podwójnym zaskoczeniem (pomijając wyżej wymienione). Po primo, pojawiło się wiele osób (powiedziałbym, że > 30), a po secundo wielu z tych wielu nie widziałem całymi latami i to nie tylko na naszych spotkaniach. Powiedziałbym, że pojawiła się śmietanka naszego światka korporacyjno-javowego i do tej pory nie potrafię wytłumaczyć, skąd takie zainteresowanie?! Czyżby IBM WebSphere BPM cieszył się takim zainteresowaniem, czy ogólnie BPM z Activiti, czy wręcz formuła spotkania, gdzie można było poznać wiele w ciągu niewielkiej ilości czasu. Sądzę, że to ostatnie i zamierzam to wykorzystać już niebawem.

Chciałbym tym samym przeprosić Macieja Próchniaka za swoje wyjście w trakcie jego prezentacji Activiti, na którą ostrzyłem sobie zęby oraz za zabranie kamery. Liga koszykówki stała się powodem, a napalonym na nią niemiłosiernie. Wybacz Maćku!

18 grudnia 2010

Book review: WebSphere Application Server for Developers V7

0 komentarzy
Właśnie ukończyłem lekturę książki, a właściwie publikacji, jak to zwykle nazywa się IBM Redbooks - WebSphere Application Server for Developers V7. Publikacja jest całkowicie bezpłatna w formie elektronicznej i, jak to ująłem w recenzji, niestaty nie zasługuje na swój tytuł. Jest aż nadto skoncentrowana, aby wprowadzić czytelnika w aspekt administracji WASv7 niż na przedstawieniu Java EE 5 i niewiele można znaleźć informacji nt. czego oczekuje się od programisty, który ma wdrożyć taką aplikację na WAS7. Nie powiem, żeby było mało, ale zdecydowanie za mało, jak na książkę z takim tytułem. Dodatkowo, rozdział dotyczący EJB3 oraz JPA jest wręcz nie-JEE5.

Dla mnie osobiście było to swego rodzaju podsumowanie wiedzy nt. okiełznania WAS7, aby nie sprawiał problemów, kiedy przyjdzie mi wdrażać aplikacje korporacyjne. Nie całkiem niskopoziomowo, ot akurat, aby panować nad sytuacją. Książkę czyta się niezwykle szybko i wiedza sama wchodzi do głowy, zakładając, że WAS7 jest tym materiałem, który w głowie czytającego powinna się w ogóle znaleźć. Osąd pozostawiam Tobie.

Pełną recenzję w języku angielskim można przeczytać na moim Wiki w Book review: WebSphere Application Server for Developers V7.

29 listopada 2010

Po wykładzie na PWSZ w Tarnowie

14 komentarzy
O planach związanych z wykładem pisałem w poprzednim wpisie - Wykład akademicki na PWSZ w Tarnowie - 29.11 od 9:30 do 18:00 i jak to w życiu bywa - plany swoje, a życie swoje.

Mając niemałe obawy o zakres merytoryczny wykładu, postanowiłem przelecieć większość z tego, co nazwałbym interesującym wycinkiem mojej wiedzy technicznej, aby choć na moment móc podzielić się czymś nowym z uczestnikami. Sądziłem, że uczestnicy większość tematów mają już za sobą, więc pojawiły się produkty IBM, o których, jeśli słyszano, to niewiele praktycznie i choć one gwarantowały mi możliwość przekazania czegoś niezbadanego. Po ostatnich szkoleniach z IBM WebSphere BPM z programowania i administracji nie miałem złudzeń, że w ostateczności wejdę na niskopoziomowe "rozbieranie" trzewi WPS V7 czy WAS V8. Sądziłem, że coś w końcu będzie wartościowe, aby spędzić kilka chwil i wziąć udział w wykładzie.

Do ostatniej chwili nie byłem pewien, czy dobrze dopasowałem tematykę. Czym bliżej wystąpienia, tym nachodziła mnie większa ochota, aby w niej pomajstrować. Wziąłem kilka książek, aby tam znaleźć coś unikatowego, a jednocześnie wartościowego, zabrałem się za lekturę podręczników, itp. Zacząłem odczuwać tremę przed niewstrzeleniem się w oczekiwania (które mogły być podkręcone moimi wycieczkami w różne strony rozwiązań javowych).

Zaplanowałem całkiem pokaźny bagaż tematyczny (vide poprzedni wpis z harmonogramem) i wszystko miało odbyć się bez nawet najdrobniejszego slajdu, aby ostatecznie okazać się, że z grupy około 50 osób niewiele ponad 3 osoby miały styczność z Javą (!) To było chyba najbardziej dla mnie szokujące. Ja tu zmagałem się z JEE6 i poziomy wyżej, przy SCA i BPEL, a okazało się, że należało zacząć od samego początku - samego poznawania języka Java. Trafiłem do mekki programistów C!

Jako, że przygotowany byłem na wprowadzenie do dostępu do bazy danych, przez JDBC, Hibernate, Spring Framework, Hibernate+Spring Framework, JPA i EJB, w zasadzie byłem gotowy zacząć pierwsze kilka kwadransów na wprowadzenie do Javy - bez wycieczek w programowanie OO. Pozostałem przy prostych konstrukcjach typu wyświetl na ekran, pobierz z ekranu i na tym się skończyło wprowadzenie.

Zabrałem się za dostęp do bazy danych. MySQL sprawowało się znakomicie, a NetBeans IDE (wersja rozwojowa z dnia poprzedniego) całkiem sprawnie uwijała się przy składaniu kolejnych części aplikacji. Tutaj i Java Tutorial się przydał, aby pokazać, w jaki sposób można przejść podobną ścieżkę, którą właśnie przechodziliśmy (gdyby komuś przyszło do głowy odtworzyć nasze wspólne poczyniania samodzielnie). Od czasu do czasu NetBeans IDE czkał zamrażając się na dobre kilkadziesiąt sekund, co złożyłem na braku dostępu do Sieci i jego młodzieńczego wieku (w końcu to wersja rozwojowa). Na moment przełączyłem się do Eclipse IDE, ale i jemy przypomniało się, aby zaktualizować/sprawdzić coś w Sieci i zamarzł. Wróciłem do NetBeans IDE.

Na zakończenie pierwszego bloku wykładów pokazałem coś, co określiłbym - impress me. Skąd wzięło się to cudo? Chcąc dopasować się do oczekiwań uczestników, zapytałem, co jeszcze mógłbym im pokazać i padło "Zaimponuj nam czymś w Javie, co sprawiłoby, że zechcielibyśmy się nią zająć". Od razu zabrałem się za...Clojure.

Pewnie pomyślisz sobie, zwłaszcza jeśli znasz mój poziom znajomości tego języka, że to był najgorszy z możliwych wyborów. Co to, to nie. Zdecydowanie NIE. Ja wręcz uważam, że właśnie tym najbardziej ująłem ich za serce i przy tym właśnie temacie miałem wrażenie zdobyłem ich największą uwagę. Takie odniosłem wrażenie i jeśli jakikolwiek temat miał swoje komentarze, to Clojure był zdecydowanym liderem. Dlaczego? Kwintesencją dobrej prezentacji jest dopasowanie przykładu do tematu. I tak właśnie było z Clojure.

Podczas sesji z Clojure pokazałem, jak interaktywie tworzyć aplikację okienkową, gdzie rozpoczynam od "gołej" aplikacji na bazie JFrame i dodaję kolejne elementy graficzne. Kiedy pierwszy raz wpadłem na ten pomysł, wiedziałem, że to będzie cudo. Na dole miałem terminal z Clojure REPL, na górze właśnie otworzone okienko przyszłej aplikacji okienkowej, a pod nimi Eclipse z odtwarzanym skryptem, w którym widać było wpisywane linie kodu w Clojure. Zamierzam, to nagrać w postaci skrinkastu, więc chwila i sam przekonasz się, o czym się tutaj pisze.

Clojure nie jest tutaj jakimś specjalnym czymś, co sprawiłoby, że jest to możliwe. Po prostu, jako język skryptowy - podobnie jak Groovy, JRuby, Rhino, Scala, Jython - daje możliwość nauki API przez wprowadzanie kolejnych wywołań w czymś ala Clojure REPL i natychmiastowego otrzymywania rezultatów z ich uruchomienia. Możnaby to przyrównać do środowiska ciągłej nauki API. Bajka!

Po przerwie, przeszliśmy przez Hibernate, Spring Framework i tworzenie aplikacji z servletami (obsługa formularza) z niewielkim EJB uruchamianym w ramach aplikacji webowej (nowość JEE6). W zasadzie 7 osobom udało się wytrwać do 18:00, kiedy to punktualnie zakończyłem wykład.

Bardzo pomocny okazał się stoper firmy Apimac, który odmierzał równe 40-tominutówki i późniejsze 10-ciominutowe przerwy. Super rozwiązanie, aby zagwarantować pewność utrzymania czasu przez prowadzącego. Polecam!

Czego mi brakowało podczas tego wykładu, to większego udziału publiczności. Znalazło się kilku bardziej aktywnych, ale ogólnie panowała cisza i trudno było zorientować się, czy temat ciekawił, czy warto byłoby poruszyć inne aspekty i w ogóle sprawić, aby spędzony czas był wartościowy merytorycznie. Nieskromnie powiem, że bardzo ucieszyła mnie moja lekkość w zmianie tematu, tempa i dopasowanie do poziomu, ale wolałbym bardziej skrupulatne zajęcie się pojedynczym tematem, np. JEE6 niż przejściem od Java, Clojure, Hibernate, Spring, servlety i EJB. Trochę przypominało groch z kapustą, aczkolwiek zagwarantowało, że wykład spędziłem nie nudząc się ani na chwilę. Liczę, że uczestnicy również.

Sam Tarnów bardzo spokojny. Akurat dzisiaj spadło sporo śniegu, więc wszystko zasypane, ale i tak udało mi się dostrzec tlące się piękno tego miejsca. Po 18:00 w zasadzie zero otwartych sklepów i niepokojąca cisza na ulicy. Może poza Rynkiem jest inaczej?! Ach, zastanawiam się, dlaczego zegar na Ratuszu wybija połówki, kwadrans przed pełną i pełną godzinę?

p.s. Wykład prowadzony był w ramach programu Unii Europejskiej wspierającej wymianę doświadczeń między praktykami i firmy a uczelniami, z korzyścią dla nowej kadry informatycznej - studentów. Pewnie i na Twojej uczelni jest to możliwe. Wystarczy zapytać. Resztą się zajmę. Pisz na priv z prośbą o szczegóły. Na prawdę warto.

27 listopada 2010

Wykład akademicki na PWSZ w Tarnowie - 29.11 od 9:30 do 18:00

5 komentarzy
W nadchodzący poniedziałek, 29.11 będę na Wydziale Informatyki Państwowej Wyższej Szkoły Zawodowej (PWSZ) w Tarnowie (ul. Eljasza Goldhammera) u Tomasza Potempy i jego studentów, z którym zorganizowaliśmy mój wykład dotyczący tematu Java i okolice. Głównymi odbiorcami mają być studenci 4 roku, którzy kończą semestr z końcem grudnia, aby w styczniu skupić się na pisaniu pracy inżynierskiej.

Jak to ze mną bywa przy tego typu otwartych tematach, pomysłów mam wiele i byłbym rad, o kilka wskazówek pod kątem możliwości czasowych i znaczenia rynkowego poszczególnych tematów. Celem nie jest przekazanie pełnego obrazu danego rozwiązania, ale raczej naszkicowanie możliwości, aby wybrać do dalszego rozpoznania to, co może być interesujące.

Mam do dyspozycji 2 bloki 5-godzinne (w sensie lekcyjnym nie zegarowym, czyli 45 minut). Można założyć, że w każdym bloku będzie to samo, ale to zależy od ogólnego zainteresowania uczestników oraz mojego przekonania o sensowności dalszego brnięcia w temat. Tym samym nie ma gwarancji, że drugi blok będzie odpowiadał merytorycznie pierwszemu.

Zaczynam o godzinie 9:30, aby zakończyć o 18:00 z 1-godzinną przerwą obiadową w okolicach 13:15. Okazuje się, że będzie okazja spotkać się z Tomkiem Łabuzem, którego można było poznać podczas konferencji Javarsovia 2010, podczas której prezentował temat "AOP, ThreadLocal i JPA".

Planuję przeprowadzić autorski cykl tematyczny, którego mottem byłoby "Od prostoty do większej prostoty, tj. w każdym kroku ukrywamy złożoność problemu". Nie planuję prezentować slajdów, a jedynie siedzieć przed komputerem, prezentując budowanie aplikacji i machając rekoma ze wstawkami krasomówczymi.

Konspekt

Środowiska programistyczne i uruchomieniowe, darmowe i komercyjne:
  • NetBeans IDE i Eclipse IDE
  • IBM Rational Application Developer 8 i IBM WebSphere Integration Developer 7
  • GlassFish i IBM WebSphere Application Server 8 
Klient bazodanowy - tradycyjne podłączenie do bazy danych z użyciem JDBC
  • Apache Derby (wbudowane)
  • MySQL
Hibernate - warstwa pośrednia między baza danych a aplikacja
  • ORM - zapytania bliższe programiście nie adminowi bazy danych
Hibernate + Spring Framework
  • zniesienie konieczności zarządzania bytami Hibernate
  • środowisko IoC/DI
Apache Maven - zarządzanie zależnościami projektowymi
  • zniesienie konieczności dbania o zależności poza ich deklarację
  • tworzenie projektu od zera
    • z linii poleceń
    • z IDE (NetBeans IDE)
Leiningen - Maven w Clojure
  • bez XML z językiem Clojure (wrócimy do niego niebawem)
GlassFish (w NetBeans IDE) i WAS 8 - serwer aplikacyjny JEE6 (z RAD8):
  • dostęp do bazy danych (zarządzanie transakcjami)
    • JPA
    • EJB31
  • servlet - obsługa HTTP
  • JSF - budowanie widoku
    • facelets
  • CDI
EJB 3.1
  • Apache OpenEJB
  • Serwer aplikacyjny - GlassFish i WAS8
OSGi - modularność
  • podział projektu na moduły w Apache Maven był podziałem funkcjonalnym (jak OSGi)
  • samodzielna aplikacja
Clojure - język funkcyjny
  • dynamiczne tworzenie aplikacji okienkowej
Service Component Architecture (SCA) i procesy BPEL (WID/WPS)
  • odseparowanie kontraktu (interfejsu) od implementacji
  • odseparowanie szczegółów komunikacyjnych od implementacji
Wyjeżdżam z Tarnowa dopiero we wtorek, więc jeśli ktoś reflektuje na spotkanie, proszę o kontakt.