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?

14 marca 2013

Scala 2.10.1 wydana i hard lifting

0 komentarzy
The logo of the Scala language
Właśnie zajrzałem na stronkę scala-lang.org, aby sprawdzić, co nowego i dobrego tam podają, a tu taka niespodzianka - świeżutkie wydanie Scala 2.10.1. Nie żebym czekał specjalnie, bo nie trafiłem na niedogodności w korzystaniu z poprzednich wersji, ale kiedy proszą o pobranie, grzecznie wykonuję.

Ciekawie prezentuje się lista osób, które poświęciły swój czas na rozwój tej wersji z bardzo polskobrzmiącymi nazwiskami.
  • Grzegorz Kossakowski - tego gościa miałem okazję poznać osobiście i mam wrażenie, że wszyscy go teraz znają, więc przedstawiać nie trzeba. Sądziłem, że znajdę go na stronie zespołu TypeSafe, ale niestety nie widnieje na liście, aczkolwiek na swoim profilu na LinkedIn stoi jak byk: "Scalac hacker at Typesafe". Się Grześ zahackował i zapomnieli o nim. Chwała za zasługi!
  • Hubert Plociniczak - o nim wcześniej nie słyszałem, ale ze strony można wyczytać, że "is a member of the EPFL team working on Scala.", więc trudno się dziwić, że ma swoje miejsce na liście zasłużonych. Chwała się należy!
Ostatnie moje dokonania rozwojowe ze Scalą pozwoliły mi na rozwiązanie trudnego zadania z książki Functional Programming in Scala, którą żyję prawie każdego dnia i jestem nią wprost zachwycony. Nieskromnie napiszę, że nie mniej niż swoimi dokonaniami przy jej aktywnym udziale. Przeczytałem ją tyle razy, że mógłbym ją teraz sam napisać.

"Exercises, answers, and hints to go along with the book "Functional Programming in Scala" znajdują się na GitHubie i można samodzielnie popróbować się z funkcyjnymi problemami w Scali.

Oto rozwiązanie pierwszego zadania oznaczonego jako Hard z rozdziału 2. Świadomie nie podaję treści zadania, bo liczę, że wszystko zaszyte jest w sygnaturze. Kto odgadnie, do czego służy funkcja lift3? Niezły mind twister.
object MyModule { 
  def lift[A,B,C,D](f: (B, C) => D)

                   (g: A => B,
                    h: A => C): A => D =
    a => f(g(a), h(a))

  // Exercise 11
  def lift3[A,B,C,D,E](f: (B, C, D) => E)
                      (g: A => B,
                       h: A => C,
                       i: A => D): A => E =
    a => {val f2: (C,D) => E = f(g(a),_,_)
          lift(f2)(h, i)(a)}
}
Początkowo zadanie mnie przygniotło, ale ostatecznie dałem sobie radę i to bez żadnych ściągawek (!) Wystarczyło dokładniej doczytać książkę i...pomyśleć. Jak zwykle zresztą. Teraz Twoja kolej.

09 marca 2013

Różnorodność kulturowa w Stanach - wrażenia z Chicago i Milwaukee

1 komentarzy
Wywiało mnie na drugi koniec Oceanu Atlantyckiego do Chicago i Milwaukee.


Organizacja wyjazdu trwała niewiele ponad 2 godziny (!) Szczerze powiedziawszy spodziewałem się dużo gorszego wyniku, a nawet przewidywałem całkowitą klęskę przedsięwzięcia. Zdumieniu mojemu nie było końca, kiedy wszystko domknąłem bez specjalnego stresu. W zasadzie więcej było ciekawości, co kryje przed sobą tak karkołomne załatwianie spraw w IBM i kiedy miałem w ręku rezerwacje, odetchnąłem z ulgą, że wciąż żyję - serce waliło mi z wrażeń!

A wszystko działo się przy słonecznym piątku, kiedy po rannej wizycie w biurze, zdecydowałem się na wcześniejszy powrót do domu i po malutku domykałem tydzień.

A tu bach! Jest piątek, godzina 14:00 i dostaję przez korporacyjny komunikator zapytanie o możliwość przyjazdu do Stanów. Właśnie odebrałem wizę amerykańską, więc nadarzyła się okazja przetrzeć szlaki.

Początkowo mnie ścisnęło, kiedy pomyślałem sobie, że na załatwienie spraw wyjazdowych mam kilka godzin - złożyć wniosek o wyjazd służbowy, zebrać podpisy, załatwić bilety, hotele, a wszystko przy założeniu wyjścia pracownika od spraw wyjazdowych przed 17. Sprawę włożyłem na półkę - "wyzwania".

Udało się bez specjalnego napinania. Dziękuję wszystkim zaangażowanym. Dojrzałem społecznie, bo współpraca popłaca, nawet jeśli jej wynikiem nie jest nauka kolejnej nowinki technologicznej, a zwykłe rezerwacje.

Wylot w południe następnego dnia, sobota, 2 marca bezpośrednim lotem do Chicago, IL. Miałem kartę kredytową, paszport z wizą, więc wszystko gotowe na wyjazd. Nie zapomniałem również o kompie i rzeczach.

Odprawa ekspresowa. Kolejne zdumienie. I po chwili jestem na pokładzie.

I tu zdumienie-porażka - nie ma telewizorków w siedzeniach naprzeciwko. Co ja będę robił?! Spodziewałem się, że przy przelotach ponad 6 godzin, samoloty wyposażone w telewizory w oparciach to norma. A tu takie zaskoczenie. Kolejny raz potwierdza się powiedzonko, że zawód jest wypadkową oczekiwań, a że były niemałe, więc i zawód niemały. Zabolało.

Później, podczas lotu, zapytałem o to obsługę i dowiedziałem się, że w LOTcie to dopiero Dreamlinery będą z takim wyposażeniem. Czekam zatem cierpliwie na ich przylot. Trzeba będzie uważać przy planowaniu kolejnych przelotów i zwrócić również i na to uwagę.

Zabrałem się za lekturę książki Functional Programming in Scala, więc po kilku godzinach lektury wyszło całkiem pozytywnie. W końcu miałem mnóstwo czasu na lekturę. 9 godzin rozłożyłem na czytanie, obiad, czytanie, spanie, chodzenie po pokładzie i zaczepianie kogo popadnie, śniadanie i znowu chodzenie po pokładzie. Wtedy też spotkałem polaka z Chicago, który zarabiał na życie jako kierowca, jak to się wyraził, truka (ang. truck). Nawet zapytałem go o tę wymowę i powiedział, że to polski żargon w Chicago na duże auta ciężarowe. Zrozumiałe. Nauki końca nie było widać.

Polaków na pokładzie cała masa. Zacząłem się nawet obawiać o stan osobowy w kraju przy takim zatłoczeniu na pokładzie.

Doleciałem do lotniska Chicago-O'Hare. Przysiągłbym, że na pokładzie mignął mi piosenkarz, którego nazwiska jednak nie pamiętam, a który (pewnie dla przyspieszenia przejścia granicznego) stał się nieoczekiwanie potrzebującym...wózka inwalidzkiego (!) One przechodziły przez inne bramki, do których kolejki były kilkuminutowe, a nie tak jak moje godzinne. Sposób warty wdrożenia przy następnym razie, bo kolejka do mojego przejścia koszmarna - ponad godzina oczekiwania (przy całkowitym braku dostępu do sieci, co sprawiało, że trzeba było cierpliwie stać i się rozglądać!).

I tu kolejne zaskoczenie - obsługa mówi po polsku! Aż mnie przetrąciło i nawet pomyślałem, czy przypadkiem wciąż może jestem w Polsce. Niesamowite wrażenie!

Do hotelu trafiłem międzynarodowo. Taksówkarz okazał się być pakistańczykiem z Islamabadu. Przyjechał do Stanów z rodziną i jakoś trafił do Chicago. On i ja straszne gaduły, więc przekrzykiwaliśmy się, aby dojść do głosu. Ciekawa podróż.

Przejeżdżając ulicami Chicago dostrzegłem znajomy budynek Chicago Board of Trade Building, który nie tak dawno widziałem w filmie dokumentalnym o mafiozach i ich związkach w Chicago. W końcu byłem w mieście Al Capone.

W hotelu Palmer House też mnie powaliła przestronność lobby i malowidła na suficie. Zdumienia nie było końca.


Zwiedzając hotel trafiłem na basen. Niezbyt imponujący po tym, kiedy kolega z zespołu rekomendował mi wybór tego właśnie ze względu na basen. Zapomniałem jednak, że po ostatnim zabiegu chirurgicznym pływalnia mnie nie interesuje zupełnie. Następnym razem.

Tu kolejne zaskoczenie. Po krótkiej rozmowie z panią obsługującą basen, zwróciłem uwagę na jej akcent, który wydał mi się niezwykle znajomy. Pani okazała się być bułgarką, która przyjechała do Stanów na zieloną kartę.

Wieczorny spacer po mieście był niezwykle nieprzyjemny - pobliskie jezioro Michigan nie dawało zapomnieć o swojej bliskości i wespół z zimową porą prowokowały temperaturę do zejścia poniżej zera. Było naprawdę zimno!

Po godzinnym spacerze trafiłem do pobliskiej restauracji, w której pozwoliłem sobie na zamówienie sałatki cezar z kurczakiem. I to był strzał w dziesiątkę, bo porcja okazała się być tak ogromnych rozmiarów, że zdołałem wdusić w siebie jedynie połowę. Chylę czoła przed zawodnikami, którym udaje się opanowąć całą. To musi boleć.

Na drugi dzień dołączył duńczyk, aby później połączyć siły z amerykaninem. W ten sposób w poniedziałek byliśmy już w pełnym składzie do podjęcia się wyzwań służbowych.


O pracy nie ma co wspominać. Przemilczmy. Ale wysoko było. Zresztą wiele budynków w Chicago sprawiało, że swoją wielkością ulice stanowiły swoiste kaniony. Niezapomniane wrażenie.


Jeszcze w niedzielę pozwolililiśmy sobie z duńczykiem na spacer do "pobliskiego" centrum handlowego.


Co mnie najbardziej porywało na mieście, to możliwość darmowej nauki angielskiego (wystarczyło wejść do sklepu i doskonalenie angielskiego w gratisie), a także smakowitość owoców - mango, bananów, a nawet jabłek. Co oni robią z tymi jabłkami, że są takie słodkie?! Banany i mango zrozumiałe, bo bliżej im od drzewa do sklepów, więc smakowały inaczej, ale jabłka?!

Bodaj we wtorek amerykanin zaciągnął nas na ribs - żeberka, z których Chicago słynęło.


Nie powiem, były przepyszne, ale wielkość porcji omal mnie zabiła. Jak można tyle zjeść?! Jak doświadczyłem, niektórym się udaje.

W środę wyjechaliśmy do Milwaukee, aby tam kontynuować turnee warsztatowe z WebSphere.

W trasie dotarliśmy na stację benzynową, na której, w 7 Eleven, nie mogłem oprzeć się, aby nie skosztować bananów, jabłek i Mango Smootie. Przepyszne! Co jednak zwróciło moją uwagę, to napis "Speak English or get the hell out!". Obsługa okazała się jednak być latynoska, a osoba za mną zamawiała po...meksykańsku! Nikt nie trafił do piekła (the hell).

Milwaukee jakieś "przewietrzone" - niewiele ludzi na ulicach, które swoją wielkością przypominały polskie autostrady. I te przestronne samochody.


Trafiliśmy z warsztatem na 31 piętro, na którym widok zapierał dech w piersiach (na zdjęciu, po prawej widać jezioro Michigan).


Choćby dla tego widoku warto było doskonalić się w WebSphere :-)

Milewaukee to kraina Harley-Davidsona, ale o muzeum dowiedziałem się za późno, aby wpaść na chwilę. Nie powiem, mieliśmy sporo czasu, aby to zrobić, tylko jakoś nikomu nie przyszło do głowy, aby poszukać czegoś wartościowego "na mieście". Następnym razem, jak mówią.

Powrót do Chicago był kolejną nauką życia - po raz pierwszy miałem okazję telefonicznie anulować rezerwację, aby otworzyć inną w innym hotelu, bliżej lotniska Chicago-O'Hare - tego samego, na którym lądowałem kilka dni temu. Niby nic nadzwyczajnego, ale przy hałasie w samochodzie, rozmowie i ledwosłyszalnym głosie pani z obsługi, uważam to za wyczyn.


Obługa hotelu ponownie różnorodna na maksa. Podczas śniadania zamieniłem słowo z meksykanką, którą prosiłem o wskazanie wartościowej restauracji meksykańskiej. W restauracji, której właścicielem był serb, pracowała bułgarka z zieloną kartą. A na koniec dnia miałem styczność z bośniakiem. Czyż nie nazbyt "kolorowo"?!

Mojej styczności z wielokulturowym Chicago nie było końca - taksówkarz do HIP Shopping Mall okazał się być palestyńczykiem (z Ramallah), a podczas zakupów trafiłem na polskie małżeństwo, które mieszkało na stałe w Chicago. Zwracanie uwagi na detale kulturowe w Stanach nie jest dobrym zajęciem, bo należy oczekiwać ciągłego pobudzenia.

Właśnie tutaj, w Chicago, dotarło do mnie, że Stany są jedynym znanym mi krajem, w którym żyje tak wiele różnych narodowości. Aż trudno uwierzyć, że dają radę. Mnóstwo różnorodności może przyprawić o ból głowy, ale powiedzmy, że jestem lekko zmęczony jedynie.

Pora udać się na zasłużony odpoczynek. Pospać trzeba, bo od ekscytacji serce wysiądzie.