poniedziałek, 29 czerwca 2009

COOLuary V.2 - Dzień drugi


Poprzedni post o pierwszym dniu COOLuarów V.2 zacząłem od słów, że każda konferencja jest inna. Po zakończeniu drugiego dnia konferencji mogę powiedzieć, że na COOLuarach każdy dzień jest inny...

Niedziela nie zapowiadała się zbyt ciekawie. Zimny wiatr, okropna mgła, jednym słowem - nic zachęcającego. Za to po przybyciu do hotelu moje wszelkie wątpliwości co do tego, czy dzień spędzę udanie odeszły jak to mówią jak ręką odjął. Filiżanka kawy (albo i dwie? :) ), ciasteczko, rozmowy o dniu wczorajszym, zadawanie pytań, których wczoraj nie udało mi się zadać. Tak jak wspomniałem, drugi dzień konferencji różnił się znacząco od pierwszego. Tego dnia miała miejsce sesja sponsora (forma e-point.pl) i dwie sesje trzygodzinnych warsztatów.

Pierwsza była sesja firmy e-point na temat "Nie samą Javą Developer żyje...". Początkowo bardzo sceptycznie podchodziłem do tej prelekcji, nie wiedziałem czego się spodziewać, ale wystarczyło posłuchać przez 5 minut i już człowiek sam zastanawiał się, dlaczego do tej pory nie zauważał pewnych niuansów przy tworzeniu oprogramowaniu. Do tego bardzo mi się podobała postawa prowadzącego, który podkreślał kilka razy, że jeśli ktoś ma jakiekolwiek pytania po konferencji to może do niego śmiało pisać na podanego na slajdach maila. Prelekcja udana, pouczająca i pozytywnie nastawiająca na dalsze atrakcje.

Na pierwszą sesję warsztatów wybrałem się do Sławomira Gintera, który prowadził wprowadzenie do Google Aps Engine. Jedynym minusem był fakt, że nie było przez większość czasu internetu (w końcu jeden z uczestników warsztatów obdarował nas swoim mobilnym internetem i mogliśmy zobaczyć Google Aps Engine on-line) i musieliśmy pracować offline bez deploy'owania aplikacji. Podobało mi się bardzo jak prowadzący odpowiadał na każde, nawet najprostsze pytania i nie czuło się żadnego wywyższania. Potem rozmowa zeszła ogólnie na Google i rozwiązania tej firmy. Z dwóch warsztatów, na których byłem ten był najlepszy!

Po obiedzie udaliśmy się na troszkę opóźnione (tak mi się wydaje) warsztaty z Flex i Flash dla programistów Java. Zawsze zastanawiałem się jak można połączyć Flash'a i Jave, by robić dobre aplikacje, a tu Jakub Neuman odpowiedział bardzo prosto na wszystkie moje pytania prezentując nam technologię Flex i Adobe AIR! Co najfajniejsze w tym wszystkim to to, że prowadzący przestrzegał przed wszystkimi kłopotami jakie napotkał przy integracji Flash/Flex z Javą i pokazywał najprostsze sposoby radzenia sobie z nimi!

Po zakończeniu drugiej sesji warsztatów przyszedł czas na losowanie kolejnej porcji książek wydawnictwa Helion (niestety i tym razem nie udało mi się, a była w puli książka, na którą ostrze sobie ząbki już od dawna) i podsumowanie całej imprezy. Na całe szczęście odbyło się bez zbędnych przemówień a jedynie rozmowie z uczestnikami co im się podobało, a co nie. Potrójne oklaski dla Grzegorza (który jak najbardziej sobie na nie zasłużył) i powrót do domu.

Podsumowując imprezę w skrócie:
+ świetni ludzie, masa nowych znajomości nawiązanych
+ genialny pomysł z obiadami (które mi osobiście uratowały w niedzielę życie)
+ bardzo dobre przygotowanie, żadnych nieprzyjemnych niespodzianek, profesjonalna obsługa
+ wysoki poziom merytoryczny imprezy
+ duży nacisk postawiony na nowe (często świeżynki w fazie beta) technologie
+ idea UnConference już sama w sobie jest rewelacyjna, ale należy pogratulować organizatorom za jej świetne wdrożenie na arenę polską
- brak WiFi
- warsztaty były prowadzone świetnie, ale było by idealnie, gdyby kilka dni przed konferencją na stronie pojawiły się materiały i informacje dotyczące warsztatów, aby każdy użytkownik mógł się przygotować do nich. Cudownie by było, gdyby organizatorzy dogadali się z jakąś miejscową kafejką internetową i na czas warsztatów wypożyczyli komputery (na których materiały ze strony i odpowiednie oprogramowanie już by było zainstalowane). Osobiście nie miałbym nic przeciwko, gdyby podniosło by to o załóżmy 10zł koszt konferencji. Ale ponieważ większość uczestników miała swoje laptopy nie był do jakiś dokuczliwy problem.

Chciałem z tego miejsca bardzo podziękować Grzegorzowi Dudzie, Michałowi, Sławkowi Ginterowi, Cyprianowi, Jakubowi Neumanowi, e-Point'owi i reszcie, z którą spędziłem naprawdę udane dwa dni bardzo serdecznie podziękować! Było mi bardzo miło Was poznać i porozmawiać! :)

Na koniec porcja zdjęć z konferencji:

sobota, 27 czerwca 2009

COOLuary V.2 - Dzień pierwszy


Każda konferencja jest inna - skupia się na innych odbiorcach, innych technologiach etc. Ale łączy je jedno - mają pewien szablon. Mamy ułożoną wcześniej agendę, według której odbywają się wszystkie prelekcje, zmiany w programie rzadko są dobrze odbierane. W trakcie prelekcji traci się masę czasu na autoprezentację prelegenta i firmy dla której pracuje etc. Tak nie jest na COOLuarach, one są inne...

Już od samego początku impreza bardzo pozytywnie mnie zaskoczyła. Co prawda nie szybko dotarłem z kolejki do Hotelu DAL, ale gdy przy rejestracji dostałem masę gratisów, w tym koszulkę, którą mogłem sobie wybrać (bez zastanowienia wziąłem czarną JavaFX ;) ) uśmiech zawitał na moich ustach i już ich nie opuszczał. Chwila na kawę, ciastko i przeczytania broszur, które dostałem by za chwile iść na pierwszy wykład. A po prawdzie pierwszy i jedyny.

Wprowadzenie do UnConference zrobił główny organizator - Grzegorz Duda. Cała idea polega na tym, że tak naprawdę tą imprezę tworzą uczestnicy i ich rozmowy w kuluarach (stąd nazwa). Każdy podaje temat (przyklejając go na specjalną tablice, co samo w sobie jest rewelacyjne!), o którym chciałby porozmawiać po czym są one zbierane i tworzy się spójny, w miarę zwarty plan. Taka sesja polega na tym, że przy stole siadają wszyscy zainteresowani i zaczyna się rozmowa, wymiana doświadczeń, spostrzeżeń, a nierzadko pytania o rozwiązania problemów. Jedna rzecz jest niesamowita - każdy mówi każdemu po imieniu i na nikogo nie patrzy się dziwnie jeśli danemu uczestnikowi rozmowy brakuje wiedzy na dany temat!

Pierwsza sesja na jakiej byłem to było Google Aps Engine. Dosyć krótka rozmowa, bo nikt tego tak naprawdę porządnie ndzisiaie przetestował, więc po chwili już zeszło na Jave i jej przyszłość, jej wady i zalety etc. Ciekawa bardzo dysputa, chyba najlepsza w całym dniu pierwszym.

Na drugą sesję nie poszedłem, bo spędziłem ją na rozmowie one on one z Cyprianem, który studiuje informatykę na Uniwersytecie Gdańskim i miał ciekawe podejście do wchodzenia w świat Javy jak i do samego sensu certyfikowania. To była rozmowa, której brakowało mi na dwóch poprzednich konferencjach i za którą serdecznie dziękuje!

Następna w planie była godzinna przerwa obiadowa, w czasie której zaserwowano nam obiad w restauracji hotelowej, za co należą się wielkie brawa do organizatorów!

Dalej był Maven i Ant i rozmowa jak uniknąć problemów wynikających z podejść jakie proponują oba te rozwiązania. Dzięki java4people w Szczecinie byłem wstanie zrozumieć co nieco więcej i Maven stał się kolejną rzeczą na liście TODO tych wakacji :)

Sesja sponsora - e-Point - okazała się strasznie trudna, ponieważ rozmawiano o naprawdę trudnych i wymagających specjalistycznej wiedzy rzeczach, ale nie powiem, żeby to był czas stracony. Jak to mawia mój opiekun naukowy: "Jak się uczyć, to od najlepszych!" i dzisiaj zrozumiałem, co ma na myśli. Choć temat może być ciężki, człowiek zawsze dowie się czegoś nowego, jakiejś ciekawostki tudzież wskazówki na przyszłość do tego na co nakierowywać się w nauce na podstawie doświadczeń starszych, bardziej doświadczonych kolegów.

Ostatnia sesja miała być o certyfikowaniu i JavaBlackBelt, ale niestety połączono wiele tematów i nie wyszło to, co zamierzono. Za to rozmawialiśmy o Scrumie - metodyce prowadzenia i zarządzania projektami (Co Wikipedia mówi o Scrum'ie?). Brzmiało to na tyle ciekawie, że postanowiłem poczytać o tym w internecie i może uda się choć trochę scrumowego podejścia wprowadzić do Sekcji Informatycznej albo do własnych projektów? Było by cudownie :) A certyfikaty nie zając - nie uciekną. Jutro sam przykleję własną karteczkę z tematem (na innej konferencji, wśród innych ludzi nie miałbym odwagi) i zobaczymy co z tego wyjdzie...

Na sam koniec było wypełnianie ankiet, rozmowa z organizatorem o plusach i minusach imprezy, ustalenia końcowe oraz losowanie nagród niespodzianek. Nie poszczęściło mi się, ale może jutro się uda? Czas pokaże :)

czwartek, 25 czerwca 2009

Rozdział 1. "Krótkie wprowadzenie"

Na początku pierwszego rozdzialu książki Marcina Lisa - "Java. Ćwiczenia praktyczne" - autor tłumaczy jak zainstalować JDK na Windowsie i Linuxie. Ja zaniecham tego, ponieważ co wersja systemu to inna instalacja. Ale zazwyczaj sprowadza się to poprostu do ściągnięcia odpowiedniej paczki/instalatora ze strony producenta (Sun Microsystems) i intuicyjnej instalacji za pomocą prostego GUI Wizard.

Dalej mamy standardowy już program - "Hello World!". Pokazuje on nam jak wygląda podstawowa składnia programu w Javie:

public class Main {
public static void main (String args[]) {
System.out.println("Pierwszy program w Javie!");
}
}

Do tego omawiana jest bardzo krótko istota B-codu, maszyny wirtualnej (ang. Virtual Machine) oraz kompilacji, ale chciałbym na dzień dzisiejszy pominąć tą tematykę i powiedzieć tylko tyle, że po zapisaniu powyższego kodu do pliku Main.java wykonujemy następujące dwie czynności w bashu/powłoce/wierszu poleceń:
  1. kompilujemy program poleceniem*: javac Main.java
  2. uruchamiamy program poleceniem*: java Main.

Efektem wywołania drugiego polecenia będzie pojawienie się napisu "Pierwszy program w Javie!". Udało się nam napisać pierwszy program w Javie!

Gratuluję i do zobaczenia w rozdziale 2!

* - założyłem tutaj, że ścieżka środowiskowa (ang. path) zostały ustawione tak, by z każdego miejsca w komputerze można było wywołać polecenia java, javac i javadoc (o którym wspomne nieco później).

Początek przygody z Javą!

Nareszcie przyszedł od dawna wyczekiwany czas wakacji! Egzaminy już za mną, wszystko już załatwione, tak więc czas zająć się czymś miłym i przyjemnym. Ponieważ pogoda za oknem nie dopisuje, tak więc postanowiłem zabrać się nareszcie za książkę Marcina Lisa "Java. Ćwiczenia praktyczne" wydawnictwa Helion. Książka jest warta uwagi z kilku powodów:
  • jest tania - 19zł to naprawdę malutko
  • jest książką w stylu "przykład goni przykład", czyli każda nowa informacja jest ćwiczona przy pomocy kilku przykładów praktycznych
  • jest bardzo dobrze napisana, jak zresztą inne książki Marcina Lisa
  • jest bardzo dobra dla osób, które nie znają się na programowaniu wcale, albo znają jakiś inny język i w krótkim czasie muszą przestawić się na Jave.
  • nie trzeba tej książki czytać od A-Z (sam postanowiłem przerobić jedynie najważniejsze rozdziały, aby łatwiej było przyswajać wiedzę z "Thinking in Java" Bruce Eckel'a)
Ponieważ zarówno w tej książce, jak i w każdej następnej będę starał się przerobić jak najwięcej przykładów postanowiłem jak najdłużej wstrzymywać się od korzystania z IDE (ang. Integrated Development Enviroment - Zintegrowane Środowisko Programistyczne) jakich jak NetBeans czy Eclipse (przynajmniej do czasu zabaw z GUI w AWT i Swing). Dzięki temu mam nadzieję, że w bardzo dobry sposób opanuję podstawy, a jest to mój najważniejszy cel na dzień dzisiejszy. Zresztą zawsze lubiłem powiedzenie, że "praktyka czyni mistrza" :)

Brak IDE postanowiłem sobie wynagrodzić bardzo dobrym edytorem tekstu dla programistów (nie tylko Javy) - jEdit. Co ciekawe, jEdit jest programem w całości napisanym w języku Java! Jego najnowsza odsłona umożliwia dołączanie tzw. pluginów, które w dosłownie dowolny sposób potrafią przerobić jEdit'a tak, by był jak najbardziej dla nas wygodny.

Mamy już edytor, ale nie da się niestety na ten moment ani skompilować ani uruchomić żadnego programu. Pierwsze zadanie realizuje JDK (Java Development Kit), a drugie JRE (Java Runtime Enviroment). Nie będę się specjalnie rozpisywał na temat tych dwóch narzędzi, powiem jedynie, że na tym etapie są one niezbędne do pracy z językiem Java, a można je pobrać ze strony producenta, firmy sun Microsystems (link na końcu postu).

Ponieważ książki, które będę omawiał na łamach posiadają liczne przykłady, które czasem trzeba modyfikować (np. przy okazji wyjścia nowego JDK), a hostingi stron WWW i plików są bardzo niestałe (w każdej chwili plik może zniknąć ze strony) postanowiłem zarządzać nimi przy pomocy Systemu Kontroli Wersji Git i umieszczać w repozytorium GitHUB.com. To bardzo wygodny i prosty sposób, a dzięki łatwym w obsłudze narzędziom możliwy jest bardzo szybki dostęp do wybranego fragmentu kodu.

Na zakończenie chciałem podać pewną ciekawostkę, którą wyczytałem w książce Marcina Lisa. Otóż Java początkowo miała nazwę Oak (ang. dąb) i była językiem przeznaczonym do sterowania urządzeniami RTV i AGD. To właśnie temu Java zawdzięcza swoją jedną z największych zalet - multiplatformowość (czy jak kto woli "przenoszalność").

Garść linków:

Do zobaczenia w rozdziale 1!

sobota, 13 czerwca 2009

infoShare 2009

Minęły już przeszło dwa tygodnie, ale wspomnienia o infoShare 2009 są wciąż żywe. Nareszcie zakończyłem najtrudniejszy okres zaliczeniowy na uczelni i mogę się podzielić swoimi wrażeniami z imprezy.

Konferencja ta była drugą taką imprezą w moim życiu, a pierwszą dwudniową (java4people była imprezą jednodniową). Niestety odbywała się w tygodniu, ale po kolei...

W czwartek (28 Maja) z samego rana pojechałem na konferencję. Całe szczęście, że było to blisko, bo w Gdańsku, na Politechnice Gdańskiej, czyli tam gdzie się uczę obecnie. Na miejscu trochę się zdziwiłem, bo nie było żadnych informacji gdzie iść etc. - dopiero po chwili wyszło z budynku (nowy budynek wydziału Elektroniki, Telekomunikacji i Informatyki) dwóch ludzi z kartkami informacyjnymi. Szybka rejestracja (mimo sporej kolejki!), miła obsługa, torba pełna gratisów. Potem pierwszy wykład na temat "Czy w Polsce może powstać Dolina Krzemowa" Marka Hołyńskiego z PTI. Tematyka ciekawa, historyjki opowiadane przez prowadzącego ciekawe, ale niestety główny cel prelekcji - odpowiedź na tytułowe pytanie - z braku czasu (zmarnowanego po części na kolejne historyjki) została zawarta w dosłownie dwóch zdaniach i niestety było to małe rozczarowanie.

Kolejna prelekcja miała tytuł "System antyspamowy Poczty Wirtualnej Polski - jak chronimy Twoją skrzynkę przed zalewem niechcianych wiadomości?" trzech pracowników Wirtualnej Polski (WP.pl): Andrzeja Butkiewicza, Tomasza Potęgi i Pawła Sasina. Jeszcze przed samym wykładem na sale weszła obsługa rozdając każdemu kartkę z przykładowym mailem - spamem (zdjęcie w galerii). W trakcie wykładu omawiane były różne rodzaje i Ci, których typ spamu był omawiany odpadali z zabawy. Ci, którzy zostali na koniec dostali zestawy promocyjne z Wirtualnej Polski. Dodając do tego jeszcze świetne prowadzenie prelekcji, ogromną charyzmę i masę humoru mogę śmiało powiedzieć, że w skali 10-punktowej wykład WP dostaje 10!

Po prezentacji Wirtualnej Polski przyszedł czas na Eye-Tracking w wykonaniu Piotra Jardanowskiego z firmy Symetria. Bardzo podobało mi się, że cały proces jak i historia Eye-Trackingu zostala w bardzo przystępny sposób "podana jak na tacy". Sporo przykładów, sporo też konkretów. Firma Symetria przywiozła na konferencję zestaw eye-trackera i można było sprawdzić na samym sobie jak to działa. Niestety z braku czasu nie udało mi się przetestować tego cudeńka.

Rzecz na którą czekałem od bardzo dawna - "Nowe inicjatywy Suna czyli słów kilka na temat projektów (Sun Glassfish Portfolio oraz openDS)" Marcina Kozaka z firmy sun Microsystems Poland - musiała przejść mi koło nosa... Niestety musiałem być obecny na wykładzie u siebie na wydziale i nie mogłem się na tej prelekcji pojawić.

Po wykładzie trafiłem na końcówkę "Tworzenia natywnych aplikacji mobilnych" Kamila Brzezińskiego z Gadu-Gadu, ale już 5 minut siedzenia tam zniechęciło mnie do słuchania - prelegent sam się przyznał, że robił ten wykład pół roku temu i nie pamięta co wtedy przygotował - żenada...

"Polskie barcampy i rynek startupów - czy zwiększenie dostępności finansowania zaowocuje globalnymi przedsięwzięciami?" Krzyśka Kowalczyka z UBIK Business Consulting był tematem najbardziej tajemniczym i niestety najmniej dla mnie interesującym, tak więc nie będę się wypowiadał na jego temat.

"Dobre, Złe i Brzydkie" - Automatyczne sposoby poprawy jakości oprogramowania Patrycji Węgrzynowicz z NASK'u był wykładem ciekawym i to nawet bardzo. Uświadomił mi kilka rzeczy:
  • testowanie jest ważnym zagadnieniem, które muszę zacząć stosować z przyzwyczajenia, nie z przymusu, gdy coś się psuje
  • Design Patterns (Wzorce Projektowe) są ciekawym narzędziem programistycznym i warto będzie go zbadać w te wakacje przy okazji szerszego poznawania Javy
  • korzystanie z narzędzi gotowych, IDE etc. nie umniejsza poziomowi programisty ani jego umiejętnościom, a wręcz przeciwnie
To był ostatni wykład dnia pierwszego. Następnego dnia, znowu z powodu zajęć, mogłem być tylko na wykładzie "Bezpieczna wirtualizacja = wirtualizacja bezpieczeństwa" Michała Jarskiego z Check Point Software Technologies oraz "Czasem dobrze pozarządzać" Agnieszki Zielonki - Sujkowskiej z ODiTK. Oba wykłady zrobiły na mnie ogromne wrażnie zarówno oprawą jak i przekazem. dodatkowo na wykładzie Pani Agnieszki dowiedziałem się (na podstawie testu, który nam - uczestnikom - zrobiła), że jestem osobą pomiędzi czasami, która patrzy na wszystko z perspektywy przyszłości (to prawda!) i dostałem płytę z muzyką relaksacyjną autorstwa prelegentki.

Podsumowując:
+ bliskość, dobra lokalizacja
+ duże urozmaicenie tematyki
+ spora liczba gratisów i zestawów promocyjnych
+ doświadczeni i ciekawi prelegenci
+ caterring w przerwach kawowych i obiadowych
+ darmowe wejście
- wiele niedopatrzeń organizatorskich
- praktycznie brak przerw, co było bardzo męczące (i następstwem tego była coraz mniejsza frekwencja w późniejszych godzinach)
- mało czasu na rozmowy w kuluarach

A oto galeria z imprezy:


Pozdrawiam serdecznie, Łukasz "Smok" Rybka

środa, 10 czerwca 2009

Pierwszy egzamin na JavaBlackBelt



Sporo się ostatnio działo: konferencja infoShare 2009 na Politechnice Gdańskiej, sesja, kolokwia. Za każdym zaliczonym kolokwium przychodzą dwa kolejne - urok uczelni wyższej. Ale żeby nie rozpoczynać wpisu tak bardzo pesymistycznie, to wpomnę o JavaBlackBelt.

JavaBlackBelt.com to strona, na której można sprawdzić poziom swojej wiedzy z zakresu Javy, programowania zorientowanego obiektowo i wielu różnych (jak np. system kontroli wersji CVS). Całość jest zorganizowana w tytułowe pasy - po zdobyciu odpowiedniej ilości punktów za zdane egzaminy otrzymuję się rangę - pas - ideologicznie zbliżony do pasów z Karate czy Teakwondo (początkowo każdy ma pas biały i 0 punktów). Możemy płacić za egzaminy, albo iść darmową ścieżką, która zaczyna się od Java SE - Basic Egzam. Dlaczego o tym wszystkim piszę? Otóż z dwóch powodów:

1) Strony tego rodzaju pozwalają nam nie tylko na sprawdzanie swojej wiedzy, ale także na jej zgłębianie. Wykonując kilka razy ten sam błąd w końcu się nauczymy dobrze. Poza tym na JavaBlackBelt.com każde pytanie, które jest zadawane ma dokładne wyjaśnienie swojej prawidłowej odpowiedzi wraz z odnośnikami internetowymi do dokumentacji i innych baz wiedzy.

2) Dwa dni temu zdałem pierwszy egzamin z Java SE - Basic z wynikiem 75%. Nie jest to rewelacyjny wynik, ale zważywszy na krótki okres, w którym zajmuję się Javą sądzę, że jest to niezłe osiągnięcie. Oto screen:

Czeka mnie jeszcze zamieszczenie krótkiej relacji z infoShare 2009 i wrzucenie galerii i zajmę się omawianiem książki Marcina Lisa "Java. Ćwiczenia praktyczne" wydawnictwa Helion.

Dla zainteresowanych kilka linków:

Pozdrawiam i dziękuję za uwagę,
Łukasz "Smok" Rybka