Thursday, July 11, 2013

Gdzie kucharek sześć, tam nie ma co jeść - czyli Confitura 2013

W tym roku zdobyć wejściówkę na Confiturę było trudniej niż na niejeden koncert super-mega gwiazdy. Renoma konferencji rośnie i należy się z tego cieszyć. W tym roku doszły mnie słuchy, że "uwaga, uwaga" nie będzie obiadu. Wielu wieszczyło klęskę, puste sale i pojawienie się band głodnych programistów napadających na przechodniów konsumujących kebaby. Jak się jednak okazało plotki były mocno przesadzone. Obiad był, w formie nieco skromniejszej niż zwykle. Ale po kolei.



Rozpoczęcie konferencji, odbyło się z wielką klasą. Panowie z kapituły powitali nas w fartuchach niczym szefowie kuchni w towarzystwie kociołka w którym robiona była konfitura. Bardzo było to pomysłowe i doprawiło konferencję nutką poczucia humoru. Na otwarciu przekazano także symboliczną nagrodę dla firmy Javart za to, że wspierała ona Confiturę (wcześniej Javarsovie) przez wszystkie edycje. Szkoda tylko, że zabrakło w tej chwili ś.p. Pawła Cybulskiego dzięki któremu to wsparcie miało miejsce. Brawa dla kapituły za nagradzanie firm wytrwale budujących społeczność i inwestujących w nią długoterminowo.

W tym roku do wyboru było 5 równoległych ścieżek. Ja swoją rozpocząłem od Storma. Prezentacja pozwoliła zrozumieć elementarne pojęcia jak "spout" i "bolt" oraz zapoznać nas z przyjemnym API które ma Storm. Prowadzący pokazał jak łatwo można uruchomić sobie prostą topologie oraz jak łatwo można budować te bardziej skomplikowane. Co prawda z prezentacji nie można było wynieść wiele więcej, ale mi to specjalnie nie przeszkadzało ponieważ wcześniej bardzo niewiele o Stormie słyszałem, a prezentacja zainteresowała mnie tą technologią. Po krótkiej przerwie wybrałem MapReduce z Moniką Nawrot. Prezentacja także zaczynała się od podstaw i odpowiedzi na pytanie: "Po co nam to całe przetwarzanie w chmurze". Później mogliśmy poznać więcej szczegółów działania funkcji map, reduce i shuffle. Prowadząca pokazała także parę przykładów implementacji z wykorzystaniem Flume, która usprawnia i ułatwia korzystanie z MapReduce'a.

Następnie zaś byłem na moim zadaniem najlepszej prezentacji na Confiturze 2013 czyli z "Czego być może nikt nie powiedział ci o JS, a co jednak powinnaś/powinieneś wiedzieć". Mój firmowy kolega Michał Ostruszka okazał się świetnym prelegentem. Nie tylko przygotował ciekawą prezentację, ale także zaprezentował ją w sposób sprawny, lekki oraz z poczuciem humoru.

Następnie była przerwa obiadowa, podczas której miał nastąpić armagedon wieszczony przez Inków na grudzień 2012. Na szczęście nic się nie stało. Okazało się, że obiad był! Co prawda w formie trochę skromniejszej niż rok temu (gulasz i kanapki), ale każdy kto studiował musi przyznać, że w porównaniu do studenckich obiadów były to nie lada frykasy. Ja po skonsumowaniu gulaszu poszedłem uzupełnić dietę o warzywa oraz mięso (czyli na kebab). Bardzo fajnie, że ta przerwa była na tyle długa, że można było sobie wyskoczyć na kebab czy piwko i spokojnie wrócić na dalszy ciąg wykładów.

Następną prezentacje niestety przegadałem na konferencyjnych korytarzach. Ale cóż to także ważny aspekt konferencji, spotkać długo niewidzianych znajomych czy poznać nowe osoby dzielące tą samą co my pasję. Następnie posłuchałem Tomasza Borka o jednej z bolączek naszej profecji, a mianowicie o różnicach kulturowych dzielących Europę oraz Indie. Myślę, że ta prezentacja pozwoliła mi lepiej zrozumieć naszych kolegów zamieszkujących subkontynent indyjski. Przy następnej sposobności na pewno przetestuje zdobyte informacje.

Kolejnym moim wyborem była prezentacja Marcina Zajączkowskiego o testach mutacyjnych. Temat o którym parę razy słyszałem, natomiast nigdy zgłębiłem  Prezentacja Marcina odpowiedziała na najważniejsze moje pytania. Dowiedziałem się jakie mamy do dyspozycji narzędzia, jakie są ich ograniczenia oraz czy da się tego użyć w prawdziwym projekcie.

Na koniec posłuchałem prezentacji Michała Bartyzla o architekturze systemów. Była to ciekawa historia kilku prawdziwych projektów z morałem. Morał był dość oczywisty, ale często o nim zapominamy, otóż przy podejmowaniu decyzji co do rozwiązań, należy wziąć pod uwagę wiele czynników także tych "biznesowych" i "organizacyjnych", a nie ulegać wyłącznie technicznym nowościom i zachciankom programistów :-)

Potem było rozdanie nagród. Nie wiem czemu, ale jakimś dziwnym trafem nigdy nic nie wylosowałem (na żadnej z edycji). Może w żelatynie jest jakiś kod typu:
while (!lastname.equals("Żuchowski")) { lastname = losuj(); }
:-)

Kapituła przyznała także nagrodę specjalną Jackowi Laskowskiemu, którego każdy chyba zna i który jest ojcem chrzestnym nie tylko Confitury ale także Javarsovii.




Potem razem z grupą szczęśliwych entuzjastów Javy oraz technologii około JVM-owych udałem się na przystanek gdzie czekał na nas "Confitura Bus" sponsorowany przez mojego pracodawcę czyli SoftwareMill. Po podróży w miłym gronie znaleźliśmy się na Spoinie. Na Spoinie można było się nie tylko spoić (piwem ufundowanym przez Touk) ale także pojeść pizze i pograć jedną z wielu gier barowych (cymbergaj, piłkarzyki, bilard oraz kręgle). Można było porozmawiać z Konradem Malawskim o pracy w Ebayu i Scali, zagrać w kręgle z dumnie reprezentującym barwy CitiBanku Jackiem Laskowskim o honor firmy (sorry Jacek, następnym razem się odegrasz). Impreza była naprawdę przednia i trwała dość, długo. Ja jak rasowy kopciuszek zawinąłem się lekko po północy (gdy zegar wybijał po raz 193).

Podsumowując: konferencja bardzo fajna, impreza po prostu super! Kapituła jak zwykle spisała się na medal. Naprawdę myślę, że uszczuplenie budżetu na obiad to był dobry krok. Także, dzięki temu udało się zorganizować tak fajną Spoinę. Lokalizacja w postaci kampusu UW, rewelacyjna. Największe 2 mankamenty poprzedniej edycji czyli brak klimy oraz zbyt gęste ustawienie stoisk sponsorskich zostały wyeliminowane. Jak się okazało, gdzie kucharzy sześciu tam jest i co zjeść, i czego posłuchać, i czego się napić.

Cichy bohater.



Tomek Dziurko niestety w tym roku nie mógł uczestniczyć w konferencji. Tomek dzielnie pracował całe pół roku przygotowując konferencję ale z powodów rodzinnych musiał zostać w domu. Dlatego dla mnie to on będzie cichym bohaterem tej edycji. Mam nadzieje, ze za rok będzie mógł brać udział w tym święcie społeczności razem ze mną. Zrobiłem dla niego wszystko co mogłem, czyli wypiłem jego zdrowie na Spoinie.

Sunday, September 30, 2012

How to configure Hibernate 4 with JTA transaction for unit tests ?

Some time ago I had to configure Hibernate 4 to work with local unit tests with JTA. At the beginning I was a bit worried that it could be painful. But it appeared to be quite easy when I made it work. The big deal was to find out, how to configure hibernate to use JTA transaction manager (not thread local one), because it was hard to find any information, docs or manuals about this topic. So let's start with persistence.xml: Pay attention at transaction-type="JTA" setting. The other think is configuration when EntityManagerFactory is being build: So, the EntityManagerFactory has been build and configured. Now it's time to use it, in this purpose just call "emf.createEntityManager()" and You have ready to use EntityManager. And on the end crucial thing: How to menage transactions in unit test ? It's simple: So enjoy using JTA-like transactions in Your unit tests. Just remeber that this platform is mock implementation and You are not beyond full JEE server, so e.g. Injecting UserTransaction is not the best idea ;-)

Wednesday, September 21, 2011

Jak zdobyć Linchpin'a za darmo - czyli audible.com

Wiele słyszałem o książce Setha Godina "Linchpin", właściwie słyszałem za wiele i gdy masa krytyczna została osiągnięta postanowiłem tę książkę przeczytać. W pierwszej kolejności wpisałem w przeglądarkę amazon.com, aby sprawdzić ile ta książka kosztuje (na Kindla ma się rozumieć). $ 12.64 to cena całkiem atrakcyjna i już miałem kliknąć "buy", gdy nagle zobaczyłem, że mogę tą książkę mieć za darmo.



Jako, że powszechnie wiadomo, że nic w życiu za darmo nie ma, postanowiłem przyjrzeć się gdzie tkwi haczyk. Za darmo można nabyć Lichpin'a poprzez sklep audible.com (sklep z audiobookami należący do Amazona). Właściwie do tej pory z audiobookami byłem na bakier. Ale skoro można mieć taką dobrą książkę za darmo postanowiłem spróbować. Audible.com bardzo mile mnie zaskoczyło, przy rejestracji (można skorzystać z konta amazonowego) i skorzystaniu z 30-to dniowego bezpłatnego członkostwa otrzymujemy dwa kredyty (z ang. credit) i dostęp do wielu promocji, darmowych próbek audiobooków i próbek.

Zostań członkiem naszego klubu czyli gdzie jest haczyk ?

Haczyk twki w tym, że jeśli nie zrezygnujemy w trakcie tych 30 dni (ale nic nas od tego powstrzymać nie może jeżeli tylko chcemy), nasze członkostwo zostanie przedłużone na kolejny miesiąc. Za $15 (dokładnie $14,95) otrzymamy miesięcznie jeden kredyt oraz prolongatę członkostwa na kolejne 30 dni (a co za tym idzie dostęp do próbek, darmowych audiobooków itd). "Kredyt" to nic innego jak "wirtualna" waluta w audible.com. Większość książek możemy kupić już za jeden kredyt, niektóre z nich za dwa. Możemy także kupować audiobooki korzystając z konwencjonalnej waluty.



Podsumowując za $15 możemy kupić jednego audiobooka miesięcznie oraz uzyskujemy sprawo do rabatów na inne audiobooki oraz dostęp do darmowych audiobooków i próbek. Jest to tylko jeden z dostępnych abonamentów (złoty). Jeżeli chcecie wiedzieć więcej na ich temat zajrzyjcie tutaj. Gdy wejdziecie na audible.com bezpośrednio, a nie poprzez próbę kupna książki w amazon.com, dostaniecie inną ofertę członkowską, a mianowicie pierwsze trzy miesiące za pół ceny. Według mnie jest to oferta mniej korzystna bo za trzy miesiące zapłacimy $21,50 i zyskujemy 3 kredyty. W przypadku oferty ze strony amazon.com pierwszy miesiąc gratis (w tym 2 kredyty) oraz dobrowolne przedłużenie członkostwa o miesiąc za $15 (jeden kredyt). Tak więc trzy kredyty będą kosztowały nas $15 czyli $7,5 mniej. Dodam, że audiobooki dostępne za 1 kredyt w gotówce kosztują więcej niż $15, choć czasami można trafić na wyprzedaż i kupić audiobooka za np. $5.

Jak słuchać ?

Ważna informacja dla wszystkich zainteresowanych, audible.com nie pozwala na pobrania audiobooka w formacie mp3, ani w dowolnym innym otwartym formacie. Pliki można pobierać ze strony za pośrednictwem specjalnego oprogramowania. Na szczęście dostępne jest ono na większość popularnych urządzeń, od telefonów komórkowych po odtwarzacze mp3, a nawet nawigacje GPS. Warto także dodać, że Kindle 3, odtwarza te audiobooki i wchodzą one w skład naszej biblioteki. Ja korzystałem z audible.com na trzech urządzeniach: PC, telefon systemem Android oraz Kindle.

Aplikacja na komputer PC, przypomina aplikacje z lat '90 i robi bardzo nieprzyjemne wrażenie. Mi nie udało się znaleźć szybkiego sposobu na "przeskoczenie" do dowolnego miejsca w audiobooku. Jedyna funkcja, która na to pozwala to przewijanie. Brak także podziału na rozdziały, jednym słowem żenada. Jeden z moich kolegów twierdzi, że ta aplikacja bardzo przypomina iTunes. Ja nie wiem, gdyż nie korzystam z technologii z pod znaku jabłuszka.

Screenshot z market.android.com


Program na telefon komórkowy z systemem Andorid pobrałem z Andorid Store. Tutaj miłe zaskoczenie, aplikacja jest nowoczesna i posiada wszystkie funkcje, których brakuje wersji PC, a nawet parę więcej (np. cofnięcie o 30 sekund). Aplikacja dobrze współpracuje z zestawem słuchawkowym za pomocą, którego możemy wznawiać i zatrzymywać odtwarzanie. Można także regulować prędkość "czytania" co jest na pewno przydatną funkcją w przypadku literatury obcojęzycznej. Niestety, jeżeli naszym rodzimym językiem jest polski, wszystkie książki w audible.com będą obcojęzyczne.

Wsparcie dla audiobooków w Kindle jest na poziomie bez wątpienia lepszym niż w aplikacji PC ale niestety gorszym niż w aplikacji na Android'a. Brakuje możliwości przeskoku do dowolnego miejsca w książce, jest za to podział na rozdziały. Czasami, gdy zmieniamy rozdział następuje krótka chwila opóźnienia, prawdopodobnie z uwagi na możliwości sprzętowe urządzenia. W przypadku audiobooków bardzo brakuje także funkcji synchronizacji postępu słuchania.

"What goes around, comes around."

Reasumując, jeżeli chcesz przeczytać książkę, zastanów się może warto jej posłuchać ? Zwłaszcza jeżeli możesz mieć ją za darmo. Słuchać książki możesz często w miejscach w których nie da się jej czytać. Dla mnie audiobooki są dopełnieniem i pozawalają mi bardziej produktywnie wykorzystać czas, który do tej pory uważałem za stracony (gdy idę do pracy lub jadę na zakupy). Osobiście uważam, że jeżeli ktoś już się w audiobooki wciągnie i je polubi to zostanie klubowiczem audible.com i $15 miesięcznie będzie w stanie poświęcić. Mi strategia audible.com bardzo się podoba i nawiązując do Setha Godina, warto jest coś dać, bo dawanie jest sztuką. A jeśli to co robimy jest sztuką ludzie nas docenią, kupią nasz produkt i odniesiemy sukces.

PS. postaram się zamieścić swoją recenzję Linchpin'a bo na pewno jest to książka, o której warto wspomnieć.