Chlebik goes into JVM jungle. Something ends, something begins.

It’s been a while since the last post. I think, a while is an overstatement, it’s been ages. The reason why is quite obvious – I’ve reached the point, where there’s a problem with what to write. It boils down to two approaches – go with ‘How to…’ or ‘Introduction to…’ posts for the beginners, or very detailed information about specific topics. The former I’m having every day at work (tutoring youngsters and doing code reviews). The latter posts are read by few readers, and they don’t attract wider publicity.

It took me a couple of years to reach the point, where I wanted to change something (build a house along the way, but that’s no biggie). Therefore, my second project emerged, where I’ve dived into low-level stuff, which I’ve never touched before. Over a year has passed, and it’s time for a change there too. More on that can be read in this post, although as it touches Java, I wanted to share a little here too.

My goal is to get away for a moment of strictly business-like Java (which I’m doing every day at work), and dive into the internals of the JVM. Get knowledge about how things work there, where code meets the machine, and all the hard work is being done. Hence my plan to learn C++ and first start with garbage collection algorithms. That’s my goal for upcoming months(years?).

It’s at the same time an official farewell to this blog. I’ve started it a long time ago, when I was PHP programmer with maybe 9 months of commercial experience. In August/September I had 10 year anniversary of working in Java. Seems like a lifetime, and it is. This blog will remain online, as a memory of who I was, and what I can become in the future, but only as it. No more blog posts will be published, oficially confirming the current-state-of-things.

I want to say big Thank You to all the readers of the blog. I met wonderful people through it, and build a network of interesting developers. Learned a lot in a process, and build a strong foundation for my knowledge. But that’s it. It’s time to say goodbye, and close this chapter in my life. If I ever was to return, that will probably happen in the different place. Farewell.

Happy anniversary Chlebik – 200 blog posts and counting

Yep, WordPress does not lie – this post is number 200. When I think who I was back in 2008 (‘Hello World’ published 11th of August 2008) I see a giant leap I made. Moreover, I have managed to ‘jump into’ Java ecosystem and stay there 馃槈 Starting writing in English was another big step in my career. It is seventh blog post written in English and it seems I am doing quite well.

To make things better – I have decided to start my own GitHub account, to share the code I am presenting in more blog-independent way. I hope it will improve my readers well-being and also helps to spread good code samples around 馃槈 I was surprised that chlebik account name was not already taken – here it is.

Knock knock! Who is there? Chlebik in English…

Yep, the time has come, my blog will be – as of this moment – written only in English.

keep-calm Switching languages is not a simple thing, but lately I’ve realised, that my skills and experience have grown a little since 2008 when I started blogging and I need some new challenges. There are many great blogs and programming sites on the internet (unfortunately – in English) and I want to be a part of it. Writing only in Polish (which was a great decision back in 2008) now is somehow limiting.

I keep all my archives as they were – in Polish – main pages descriptions will also not be translated. Blog’s interface should be changed to English by the time You are reading this note. From this day all my posts are gonna be written in English. It is not my native language so I am asking my readers to forgive me if any mistakes appear.

Urlop

Jak co roku trzeba odpocz膮膰, st膮d te偶 wakacyjny wyjazd w g贸ry. Pisz臋 o tym przede wszystkim, i偶 nagle zacz膮艂em dostawa膰 tony mejli z r贸偶nymi pytaniami (fatum, czy co?). St膮d te偶 na szybko – najbli偶szy tydzie艅 i po艂ow臋 kolejnego przebywam w g贸rach i mam ograniczony czas/ch臋膰/mo偶liwo艣ci by odpisywa膰 na mejle/komentarze.

Od czego zacz膮膰 nauk臋 Javy?

Tytu艂 wpisu jest po cz臋艣ci niepoprawny, jednak偶e dostaj臋 co i rusz mejle z mniej wi臋cej tak sformu艂owanym pytaniem. Dlatego te偶 by nie musie膰 odpisywa膰 za ka偶dym razem na to samo, a tak偶e by nie stosowa膰 brutalnego kopiowania postanowi艂em swoje przemy艣lenia zamie艣ci膰 na blogu.

Na samym pocz膮tku ma艂a uwaga do ludzi, kt贸rzy na Javie zjedli z臋by i kawa艂ek dzi膮se艂 – prosz臋 o zachowanie komentarzy z cyklu ‘Tak naprawd臋 technologia/framework XX nie jest YY, albowiem Iksi艅ski uwa偶a inaczej i tak naprawd臋 realizuje si臋 tam wzorzec ZZZ i z ca艂膮 pewno艣ci膮 powinno si臋 go poznawa膰 przed/po OOO’ dla siebie. Wpis ma za zadanie cho膰 ogl臋dnie pokaza膰 o co chodzi w tej masie nazw i specyfikacji – mniejsza o detale i k艂贸tnie ‘pro-programmers贸w’.

Czym tak naprawd臋 jest Java? To wcale nie jest g艂upie pytanie! Czym jest聽Java? J臋zykiem programowania kto艣 rzeknie. I b臋dzie mia艂 racj臋. Platform膮 do budowania aplikacji – te偶 przyznam mu racj臋 (pomi艅my j臋zykowe wygibasy co jest platform膮, a co nie). Specyfikacj膮, do kt贸rej potem stosuj膮 si臋 inni? Te偶 racja. Wi臋c co to tak naprawd臋 oznacza ‘nauczy膰 si臋 Javy’?

Java jako taka mia艂a by膰 j臋zykiem wieloplatformowym, uruchamianym na r贸偶nych systemach i urz膮dzeniach (mottem by艂o聽“Write once, run everywhere”) dzi臋ki u偶yciu maszyny wirtualnej. Dlatego te偶 na samym pocz膮tku聽Java聽posz艂a trzema r贸偶nymi drogami:

a) przeznaczona do pisania aplikacji desktopowych. Dzi艣 przy tendencjach do przenoszenia wszystkiego do chmurek, lekko艣ci i mobilno艣ci rozwi膮za艅 wydaje si臋 by膰 to pewnym prze偶ytkiem. Jednak偶e聽Java聽dalej posiada bibliotek臋聽Swing oraz聽AWT/SWT, kt贸re umo偶liwiaj膮 tworzenie aplikacji desktopowych uruchamianych 聽konkretnie na maszynach klienta. Nie wiem jak ten rynek wygl膮da obecnie – na pewno istnieje masa legacy-code, ale nie za bardzo jestem na bie偶膮co z rynkiem koder贸w w tych technologiach. Wiem za to na pewno, 偶e na swoim kompie instalowa艂em聽Adobe AIR – cho膰by dla aplikacji do sk艂adania PITa przez internet, z tego co wiem np.聽Ipla聽dla linux贸w jest w tym pisana. Czyli jakby聽Java聽tutaj oddawa艂a pola.

b) lekka wersja przeznaczona na urz膮dzenia mobilne (to w du偶ym uog贸lnieniu) – wersja聽Mobile Edition.聽Najcz臋艣ciej kojarzona z telefonami kom贸rkowymi, cho膰 mo偶e i nies艂usznie – bardziej chodzi艂o o urz膮dzenia z ma艂膮 zdolno艣ci膮 obliczeniow膮. Z tego, co do mnie dociera z blogosfery wygl膮da na to, 偶e je艣li chodzi o kom贸rki to chyba te偶聽Java聽przegra艂a t臋 batali臋 (w pewnym sensie) –聽Objective-C聽dla聽iPhon贸w聽i pochodnych od Apple,聽Android聽bazuje na JVM, ale nie jest z ni膮 w pe艂ni kompatybilny,聽Symbian聽i聽Windows Phone聽to rodzina C++. Troch臋 kiepsko.

c) wersja korporacyjna (webowa) – p贸ki co tutaj dzieje si臋 magia. O tej wersji pisz臋 na blogu najwi臋cej. Programist贸w wyznaj膮cych si臋 na tej magii pracodawcy poszukuj膮 najwi臋cej. I o tej te偶聽Javie聽skupi臋 si臋 w dalszej cz臋艣ci wpisu.

Zanim jednak偶e przejdziemy do samego webdevelopmentu porusz臋 kilka okolicznych zagadnie艅. Zaczniemy od samej聽Javy 聽jako j臋zyka programowania. Nie wiem drogi czytelniku czy posiadasz do艣wiadczenie w tej dziedzinie. Mo偶e do tej pory kodowa艂e艣 desktopowe gierki na swoim wys艂u偶onym blaszaku. R贸wnie dobrze jak ja jaki艣 czas temu mo偶esz pracowa膰 przy PHP czy innym Pytonie. Mo偶e jeste艣 frontendowcem, kt贸ry musi dowiedzie膰 si臋 czego艣 o JSP, servletach i okolicach. Wiem jedno – nauczy膰 si臋 podstaw聽Javy聽jako j臋zyka programowania nie jest zbyt trudno. Odradza艂bym jednak偶e kanoniczn膮 ‘Thinking in Java’ – o tym dlaczego opisa艂em kiedy艣 na blogu. Zwyk艂e tutoriale w internecie – taki jak cho膰by tutorial na stronach Oracle czy ksi膮偶eczki z serii ‘Core Java’ dost臋pne w Helionie absolutnie wystarcz膮.

Idziemy dalej. Przy nauce j臋zyka z ca艂膮 pewno艣ci膮 b臋dziemy korzysta膰 z IDE – czy b臋dzie to聽Eclipse, czy聽NetBeans czy jeszcze co艣 innego – nie ma znaczenia. Znaczenie ma to, i偶 wszystkie IDE ukrywaj膮 przed u偶ytkownikiem magi臋, kt贸r膮 czyni膮 pod spodem – budowanie aplikacji, kompilacja i w ko艅cu uruchomienie. W przypadku prostych aplikacji do nauki j臋zyka nie jest to jeszcze tak mocno widoczne – z ca艂膮 pewno艣ci膮 jednak stanie si臋 kiedy przejdziemy do prawdziwego JEE. Konkretnie na sam pocz膮tek mam na my艣li聽narz臋dzia buduj膮ce projekty聽– konkretnie za艣聽Anta聽oraz聽Mavena. Znajomo艣膰 (cho膰by og贸lna i do艣膰 pobie偶na) tych dw贸ch pozwala na zrozumienie co w og贸le si臋 dzieje z kodem kiedy klikamy ‘Compile and run’ w IDE. Do poznania tych dw贸ch dobrze jest odwiedzi膰 ich strony internetowe, albo zaopatrzy膰 si臋 w t臋 oto ksi膮偶eczk臋, w kt贸rej mo偶na znale藕膰 opis szeregu innych ciekawych narz臋dzi przeznaczonych dla聽Javy.聽

Przed rozpocz臋ciem pisania kodu zawadzimy o jeszcze dwie rzeczy. Pierwsz膮 z nich jest baza danych. Je偶eli przychodzisz z miejsca, gdzie klucz g艂贸wny tabeli oznacza to samo co kolumn臋 INTEGER z auto-increment to wiedz, 偶e jeszcze bardzo du偶o nie wiesz. Absolutnie nie twierdz臋, 偶e MySQL jest z艂y – chodzi mi tylko o to, i偶 w przypadku korporacyjnych aplikacji najcz臋艣ciej u偶ywa si臋 produkt贸w, kt贸re s膮 traktowane jako ‘powa偶ne’, no i maj膮 te偶 niebagatelne mo偶liwo艣ci – tutaj (z mojego do艣wiadczenia) wynika, 偶e graczy jest tak naprawd臋 dw贸ch – Oracle oraz MSSQL. Gdzie艣 tam kto艣 s艂ysza艂 o tym, i偶 w u偶yciu jest Sybase, DB2 czy jeszcze inne wynalazki – jednak偶e to mniejszo艣膰 – znajomo艣膰 tych dw贸ch pierwszych (nie ekspercka, nie da si臋 nie b臋d膮c adminem lub zawodowo programist膮 PL/SQL stwierdzi膰, 偶e si臋 zna te bazy). Temat jest d艂ugi, materia艂贸w w sieci nie brakuje, ksi膮偶ek (po polsku) r贸wnie偶 nie. 聽Zar贸wno Oracle jak i聽MSSQL聽posiadaj膮 wersje, kt贸re mo偶na za darmo pobra膰 i zainstalowa膰 na lokalnym kompie by si臋 ich poduczy膰. I nawet nie m贸wi臋 o samym j臋zyku聽SQL聽(bo ten w podstawach jest taki sam wsz臋dzie – w ko艅cu po co艣 mamy standard ANSI), ale o takich rzeczach jak schematy, userzy, materializowane lub nie widoki, podstawy programowania bazy (PL/SQL czy T-SQL) – to si臋 przydaje w codziennej pracy, cho膰by po to by wiedzie膰 co wpisa膰 w konfigu cienkiego klienta.

Drug膮 rzecz膮 s膮 serwery. W przypadku aplikacji desktopowych problemu nie ma – JVM jest odpalana na lokalnym komputerze i problemu nie ma. W przypadku JavaScriptu mamy przegl膮dark臋 i tylko przegl膮dark臋. PHP czy Python wykonywane s膮 na odpowiednio skonfigurowanym serwerze WWW 聽(cho膰by poprzez FCGI). Wszystko jest do艣膰 oczywiste. Czym innym niestety s膮 serwery do u偶ycia聽Javy – mo偶emy je bowiem podzieli膰 na dwie kategorie –聽kontenery servlet贸w聽oraz聽serwery aplikacyjne.

a) kontener servlet贸w – jak sama nazwa wskazuje jest to serwer (aplikacja), kt贸ra pozwala na wykonywanie kodu zawartego w servletach (klasach Javy, kt贸rych kod mo偶e by膰 wywo艂ywany przez zdalnego klienta – nie musi to by膰 np. protok贸艂 HTTP), a tak偶e kodu, do kt贸rego servlet si臋 odwo艂uje. Najpopularniejsze to聽Apache Tomcat聽oraz聽Jetty.

b)聽serwer aplikacyjny聽– jest to serwer (aplikacja), kt贸ra jest zgodna ze specyfikajc膮 korporacyjnej聽Javy – w zwi膮zku z czym poza zwyk艂ym hostowaniem aplikacji webowych (tak samo jak kontener servlet贸w) udost臋pnia mas臋 dodatk贸w – jak cho膰by obs艂ug臋 kolejek (JMS), obs艂ug臋 bezpiecze艅stwa, wsp贸艂dzielonych zasob贸w JNDI i mas臋 mas臋 innych rzeczy. Jednak偶e w zwi膮zku z tym jest o wiele bardziej zasobo偶erny. Najpopularniejsze serwery to聽BEA Weblogic, JBOSS Server, Websphere聽oraz聽Glassfish.

Wi臋kszo艣膰 IDE skonfigurowanych do pracy z聽Jav膮聽lub聽Jav膮 EE聽przy instalacji pyta o jednoczesne zainstalowanie kontenera lub ca艂ego serwera ( np.聽NetBeans聽mo偶e nam zainstalowa膰聽Glassfisha). Przy rozpoczynaniu przygody z聽Jav膮 EE聽jest to dobra opcja – taka instalacja ma t臋 zalet臋 (przynajmniej powinna mie膰), 偶e dzia艂a po klikni臋ciu w IDE. Nie bawimy si臋 w konfiguracj臋, tworzenie domen i ustawianie 藕r贸de艂 danych – serwerek po prostu dzia艂a, a my mo偶emy pisa膰 kod. No w艂a艣nie, kod.

Podstaw膮 do dzia艂ania聽Javy聽w 艣rodowisku internetowym jest聽technologia servlet贸w聽i w pewnym sensie automatycznie wi膮zana z ni膮聽technologia JavaServerPages聽(od obs艂ugi widoku). Jest to realizacja wzorca MVC – servlet sprawuje w tym przypadku funkcj臋 kontrolera, za艣 strony (pliki) JSP s膮 naszym widokiem. Dla zrozumienia podstaw tej technologii (poza tutorialami w internecie) najbardziej nadaje si臋 ksi膮偶eczka z serii ‘Head First’. Zasadniczo niewiele wi臋cej trzeba o tym pisa膰 – poza tym, i偶 tworzenie kodu za pomoc膮 czystych servlet贸w i JSP to troch臋 hardkor i najcz臋艣ciej dzi艣 do tego stosuje si臋 konkretne聽frameworki webowe. Co to jest framework? Ano jest to zbi贸r klas/bibliotek/pakiet贸w, kt贸re czyni膮 tworzenie aplikacji internetowych znacznie 艂atwiejszym. Za najbardziej kanoniczny ( w sensie pochodzenia, nie zastosowa艅 czy znaczenia) uwa偶a si臋聽JavaServerFaces聽– by艂 to framework stworzony przez firm臋聽Sun Microsystems聽(tw贸rc臋 j臋zyka聽Java). Problem z nim by艂 taki, i偶 mia艂 do艣膰 pokr臋cony model przetwarzania request贸w, potrzebne te偶 by艂y r贸偶ne hacki na poprawne renderowanie widoku i mas臋 r贸偶nych rzeczy. Jaki艣 czas temu pojawi艂a si臋 druga wersja tego frameworku, do zabawy z ni膮 mo偶na zapozna膰 si臋 ksi膮偶eczk膮 dost臋pn膮 po polsku. Mimo szeregu zmian nie jest to jednak偶e cz臋sto polecane rozwi膮zanie. O wiele bardziej zaawansowanym narz臋dziem jest webframework o nazwie聽SEAM. Bazuje on w podstawach na JSF, jednak偶e posiada mas臋 dodatkowych ficzer贸w, kt贸re naprawd臋 wydaj膮 si臋 by膰 przydatne. Niestety nie mia艂em okazji przysi膮艣膰 na d艂u偶ej z tym frameworkiem. Wiem jednak偶e na pewno, i偶 posiada 艣wietnie wygl膮daj膮c膮 dokumentacj臋 dost臋pn膮 na oficjalnej stronie frameworka. Podobnym do powy偶szych jest r贸wnie偶 webframework聽Struts – jego pierwsze wersje pojawi艂y si臋 naprawd臋 dawno temu – w zwi膮zku z czym jego konstrukcja potrafi艂a cokolwiek odstraszy膰. Druga wersja frameworka, kt贸ra pojawi艂a si臋 nie tak dawno temu skonstruowana jest o wiele lepiej – cho膰 dalej nie bez zastrze偶e艅.

To co wymieni艂em powy偶ej to najbardziej popularne (moim zdaniem i jest to subiektywne odczucie) webframeworki w naszym kraju. I tutaj uwaga! To s膮 frameworki, kt贸re cz臋艣ciowo wchodz膮 r贸wnie偶 w warstw臋 widoku. M贸wi膮c kr贸tko – najcz臋艣ciej widok to po prostu pliki JSP, wzbogacone o mas臋 ekstra tag贸w, kt贸re umo偶liwiaj膮 rendering ciekawszych kontrolek. Jednak偶e istnieje mo偶liwo艣膰 zast膮pienia tej cz臋艣ci bardziej wyrafinowanymi mo偶liwo艣ciami – ostatnio w tej roli (g艂贸wnie przynajmniej z tego co widz臋 po og艂oszeniach o prac臋) zaczyna dominowa膰 produkt od Googla – GoogleWebToolkit. Jest to biblioteka, kt贸ra umo偶liwia tworzenie mocno zAJAXowanych aplikacji, kt贸re jednak偶e powstaj膮 tylko i wy艂膮cznie z u偶yciem Javy. Ca艂y kod JavaScriptu jest generowany za pomoc膮 kodu pisanego w Javie, jednak偶e programista ma docelowo nie przejmowa膰 si臋 istnieniem przegl膮darki, standard贸w i r贸偶nic w silnikach JavaScriptu. Z moich pobie偶nych zabaw z GWT skojarzenie z pisaniem w ActionScripcie nasuwa si臋 samo. Tworzymy kontrolki, umieszczamy na stronie i to docelowo ma dzia艂a膰. Ostatnimi czasy wi臋cej s艂yszy si臋 o produkcie opartym na GWT o nazwie Vaadin, a najbardziej chyba dobrym miejscem by rozpocz膮膰 przygod臋 z tym rozwi膮zaniem jest strona Kozio艂a. Opr贸cz tych偶e mamy te偶 szereg innych ciekawych projekt贸w, jednak偶e jest ich tyle, 偶e a偶 g艂owa ma艂a – nie b臋d臋 wskazywa艂 konkretnych przyk艂ad贸w (no dobra –聽Richfaces聽dla przyk艂adu), kt贸re u艂atwiaj膮 tworzenie GUI – tutaj jednak偶e trzeba wybra膰 samemu rozwi膮zania, kt贸re nam podpasuj膮.

W powy偶szych wywodach nie wymieni艂em jednego magicznego s艂owa – Spring. Albowiem ten framework (a mo偶e to biblioteka?) jest tak naprawd臋 nie tylko frameworkiem, ale te偶 zupe艂nie nowym podej艣ciem do tworzenia aplikacji webowych. Spring bowiem rozwi膮zywa艂 problemy, kt贸re pojawi艂y si臋 w czasach, kiedy Java by艂a niesamowicie kobylasta, a fajne tagi w JSF naprawd臋 by艂y szczytem innowacji. Spring jest rozwi膮zaniem, kt贸re realizuje wzorzec Dependency Injection / Inversion of Control (nie wchodz臋 w dywagacje co jest elementem czego i takie tam – na uniwerkach mog膮 bo maj膮 czas i za to im p艂ac膮). 聽Co oznacza nie tylko u艂atwienie tworzenia obiekt贸w, zachowania czysto艣ci kodu oraz skalowalno艣ci, ale te偶 wp艂ywa tak naprawd臋 na wszystko. Wiem, 偶e powy偶sze zdania wygl膮daj膮 jak marketingowy be艂kot, ale naprawd臋 nie potrafi臋 w skr贸cie opisa膰 Springa i ca艂ej jego zajebisto艣ci. Wiem tylko, 偶e ostatnio do艣膰 cz臋sto pisz膮/dzwoni膮 do mnie rekruterzy i tak naprawd臋 z framework贸w wymagaj膮 tylko tego Springa – ewentualnie z jego bardzo fajnym dodatkiem – Spring MVC, gdy偶 tak naprawd臋 dzi臋ki temu combo nic wi臋cej ju偶 nie potrzeba. No prawie…

Tym, co jest potrzebne to jaki艣 spos贸b implementacji logiki biznesowej, co jest do艣膰 cz臋sto automatycznie powi膮zane z dost臋pem do bazy danych. Wiem, 偶e to mo偶e do艣膰 radykalne stwierdzenie, ale nie pisz臋 tu rozprawy doktorskiej – pisz臋 do ‘wanna be Java programmer’. Zatem przyjmijmy na razie, 偶e rzecz jest w dost臋pie do bazy danych. I tutaj mamy dwie mo偶liwo艣ci:

a) JDBC – technologia stara jak 艣wiat, ale dalej do艣膰 mocno u偶ytkowana. Dlaczego? Albowiem jest prosta do b贸lu i nie wymaga zaznajamiania si臋 z ORMem, pisaniem masy XMLa, albo wpisywania masy adnotacji do kodu. Po prostu dzia艂a. Do swego dzia艂ania wystarczy dostarczy膰 bibliotek臋 ze sterownikiem dla konkretnej bazy danych i piszemy kod. Jest r贸wnie偶 najbli偶szym do pisania czystego聽SQLa (w sumie to jest pisanie czystego聽SQLa聽tylko opakowanego w obs艂ug臋 po艂膮czenia i wyj膮tk贸w). Zawsze czysto, zawsze sucho i zawsze pewnie.

b) ORM – bazy danych obecnie u偶ywane w 99% to bazy relacyjne. Ergo – obiektowe j臋zyki programowania nie za bardzo do nich przystaj膮 – musimy napisa膰 kod, kt贸ry jako艣 zamieni te proste rekordy z bazy na pi臋kne obiekty z ich metodami dost臋powymi, modyfikatorami dost臋pu oraz polimorfizmem. I tutaj ludzie wymy艣lili co艣 takiego jak ORM Object Relational Mapping. Standardem stworzonym przez firm臋 Sun jest Java Persistence API, w skr贸cie JPA. W obecnej wersji jest to tak naprawd臋 synergia pomi臋dzy rozwi膮zaniami zaimplementowanymi uprzednio w najbardziej popularnym rozwi膮zaniu – Hibernate. Bibliotek臋 t臋 wymienia si臋 zasadniczo w ka偶dym og艂oszeniu o prac臋, zatem je艣li chcesz zosta膰 koderem Javy – poznanie Hibernate (a przez to i w du偶ej mierze JPA) jest po prostu warunkiem koniecznym. Co jest w聽ORMach niefajne? Konieczno艣膰 klepania XMLa – cho膰 ostatnio o wiele szybciej i wygodniej osi膮ga si臋 cel poprzez adnotacje. Cz臋sto jednak mam wra偶enie, 偶e kiedy przychodzi do czego艣 bardziej skomplikowanego trzeba (mimo opakowania w np.聽criteria API Hibernate) wklepa膰 fizycznie ‘SELECT * FROM’ i nic si臋 z tym nie da zrobi膰.

Co nam teraz zosta艂o? W sumie masa innych rzeczy, kt贸re jednak偶e na pewno dla ‘wannabe programers贸w’ znajduj膮 si臋 na bardzo wysokim poziomie. Wr贸膰, mo偶e 藕le napisa艂em. Odleg艂ym poziomie – brzmi bardziej prawdziwie. Wymieni臋 tylko nazwy – pisa膰 ju偶 mi si臋 nie chce, a kto chce znajdzie sobie informacje w Wiki i na pewno wujek Google dopomo偶e. Mamy zatem JMS, JMX, JaaS, 聽ESB, WebServices (SOA), BPM, UML, ufff – zapewniam te偶, 偶e mo偶naby tak jeszcze d艂ugo.

Powodzenia 偶ycz臋 馃槈

Szukajcie a znajdziecie, ko艂aczcie, a otworz膮 wam…

Tak wiem, 偶e jestem ateist膮, ale i czasem w biblii mo偶na znale藕膰 dobry cytat. Panie i Panowie, oto nadchodzi zapowiadana pourlopowa niespodzianka – po 2 latach istnienia bloga zosta艂em oficjalnie programist膮 Java!!.

Dok艂adnie 2 lata temu m贸j blog zaistnia艂 w sieci, a ja z Thinking in Java rozpocz膮艂em przygod臋 z tym j臋zykiem. Po drodze powsta艂o sporo wpis贸w, napisa艂em kilkana艣cie projekt贸w, noce nieprzespane i takie tam. Po kr贸tkiej przygodzie z GOG.COM zosta艂em zatrudniony na stanowisku junior programisty java przez firm臋 Serapis. Przyznam szczerze, 偶e jest to szansa, kt贸rej nie zamierzam zmarnowa膰, a ju偶 na pewno nie b臋d臋 marnowa艂 potencja艂u dla blogowania – codzienna praktyka programistyczna z pewno艣ci膮 jest lepsza ni偶 nocne pisanie artyku艂贸w. W sumie do pracy b臋d臋 mia艂 teraz o wiele bli偶ej (mo偶e 50 minut od wyj艣cia z domu do wej艣cia do firmy) to i czasu wolnego wi臋cej troch臋 zostaje. Zaczynam poniedzia艂ek i w zwi膮zku z tym mo偶ecie 偶yczy膰 mi szcz臋艣cia 馃槈

Urlopu czas zacz膮膰

Oj dzia艂o si臋 ostatnio u mnie zatem i obiecanej aktywno艣ci na blogu nie by艂o, jednak偶e je艣li wszystko p贸jdzie zgodnie z planem to po powrocie z niego b臋d臋 mia艂 ma艂膮 niespodziank臋. Natomiast na dzie艅 dzisiejszy rozpoczynam urlop.

O ile pami臋tam to ju偶 trzeci wpis tego typu (jak ten czas leci) – w tym roku co prawda troch臋 pogoda na razie zawodzi (u mnie w Pruszkowie pada), ale w ko艅cu jad臋 300 km na zach贸d, a tam pogoda pono膰 lepsza. Docelowo odwiedzamy w tym roku z 偶on膮 Kotlin臋 K艂odzk膮 – by troch臋 pochodzi膰 po nie za wysokich g贸rach, mo偶e wi臋cej pozwiedza膰 i odpocz膮膰 od zgie艂ku i ha艂asu. Zatem w ci膮gu najbli偶szego tygodnia mnie nie ma 馃槈 Do poczytania w okolicach 10 sierpnia.

Wakacje w pe艂ni, a Chlebik wraca do gry

Witam serdecznie. Po kilku tygodniach ciszy merytorycznej na blogu dzi艣 oficjalnie oznajmiam, 偶e w 艣rodku okresu wakacyjnego powracam do gry 馃檪

Co prawda wci膮偶 pr贸buj臋 zgra膰 prac臋 w nowym miejscu z dotychczasowymi przyzwyczajeniami, ale powoli osi膮gam na tym polu sukcesy i nawet deszcz za oknem nie jest w stanie zniszczy膰 mojego opanowania i 艂adu wewn臋trznego 馃槈 聽Co zatem na dniach? Na pewno powr贸t do zabawy ze Springiem w postaci projektu SCJPTester. 聽Ju偶 samo to wiele znaczy, ale na pewno te偶 spr贸buj臋 czasem przemyci膰 co艣 z zupe艂nie innej beczki, ale nie chc臋 niczego obiecywa膰, aby nie narzuca膰 sobie czegokolwiek. Zreszt膮 urlop na horyzoncie zatem i wolnego czasu dla bloga ciutk臋 mniej, ale pocieszam si臋, 偶e d艂u偶ej je偶d偶臋 poci膮giem teraz, a internet mobilny w kom贸rce dzia艂a bez zarzutu. Wpisy z poci膮gu… ciekawe.

Idzie nowe

Jak w tytule – idzie nowe. Przysz艂o juz bo od ponad 2 miesi臋cy cisza na blogu. Wynika to z kilku rzeczy, z czego najwa偶niejsza wydarzy si臋 1 lipca – zmieniam prac臋.

Nie, jeszcze nie na Java-world (jako艣 nikt mnie na rozmowy nie zaprasza), jednak偶e firma r贸wnie powa偶na i stateczna, a konkretnie chodzi o projekt nale偶膮cy do grupy CDPROJEKTGOG.COM. B臋d臋 tam odpowiedzialny za tworzenie aplikacji wewn臋trznych, zatem (mam cich膮 nadziej臋) koniec z u偶eraniem si臋 z IE6 i dziwnymi konfiguracjami u偶ytkownik贸w. Zmiana pracy nie oznacza jednak偶e rozstania z obecnym pracodawc膮 – poszkole.pl. Z t膮 firm膮 najprawdopodobniej pozostan臋 zwi膮zany sporadyczn膮 prac膮 zdaln膮. To tyle w kwestiach zawodowych.

Zmiana ta jest g艂贸wn膮 przyczyn膮 ciszy z mojej strony przez ostatnie tygodnie. Po prostu postanowi艂em odpocz膮膰. Sprzyja temu r贸wnie偶 fakt, i偶 przeprowadzi艂em ma艂y remont balkonu, a tak偶e kupi艂em rower (w ko艅cu mam gdzie go trzyma膰). Kiedy tylko mam teraz mo偶liwo艣膰 korzystam zar贸wno z jednego jak i drugiego, a wtedy na nocne siedzenie przy kompie nie mam ani si艂y, ani ochoty. Generalnie praca, kt贸r膮 ewentualnie b臋d臋 wykonywa艂 zdalnie automatycznie b臋dzie wymaga艂a przesiadywania nocami, zatem i by膰 mo偶e uda mi si臋 skrobn膮膰 co艣 na bloga.

Zacz膮艂em te偶 zastanawia膰 si臋 w tym momencie jak dalej ma to wszystko wygl膮da膰. Pisanie bloga mia艂o mie膰 charakter dzia艂alno艣ci edukacyjnej – zar贸wno dla innych pocz膮tkuj膮cych w dziedzinie Javy, jak i przede wszystkim dla mnie. Mia艂o to r贸wnie偶 zaowocowa膰 (pr臋dzej lub p贸藕niej) rozpocz臋ciem zawodowej przygody z t膮 technologi膮. Jednak偶e obecnie po prawie roku pr贸b znalezienia pracy w javalandzie przyszed艂 czas na refleksj臋. Jak dot膮d nie uda艂o mi si臋 gdzie艣 “za艂apa膰” – st膮d te偶 decyzja o zmianie pracy na inn膮, ale wci膮偶 w szeroko poj臋tej webdeveloperce. By膰 mo偶e czas pomy艣le膰 o czym艣 innym? In偶ynieria oprogramowania? Zarz膮dzanie projektami? Co z tego wyniknie? Czas poka偶e.

Pierwsze starcie ze smartphonami – HTC Hero na pok艂adzie

Nadejsz艂a wielkopomna chwila. Z definicji jestem zwolennikiem prostoty i funkcjonalno艣ci je艣li chodzi o technologie. Czyli nie widz臋 potrzeby by posiada膰 50 cali telewizora w moim 20m pokoju, czy lustrzanki Sony za kilkana艣cie tysi臋cy z艂otych, kiedy robi臋 zwyk艂e fotki “rodzinnookoliczno艣ciowe”. Tak samo do tej pory by艂o z kom贸rkami – jakie艣 proste modele, byleby dzia艂a艂o. Tym razem jednak偶e historia si臋 zmieni艂a.

Postanowi艂em bowiem zainwestowa膰 bardziej przysz艂o艣ciowo – od dnia dzisiejszego jestem posiadaczem HTC Hero, co jednak偶e nie jest a偶 tak istotne – bardziej chodzi艂o o system operacyjny Android. Powiedzmy sobie szczerze – rynek aplikacji dla kom贸rek i smartphon贸w b臋dzie r贸s艂 ca艂y czas – zw艂aszcza w kontek艣cie spekulacji o wypuszczeniu przez Google tabletu, na kt贸rym ma r贸wnie偶 艣miga膰 Android. Dlatego te偶 postanowi艂em zakupi膰 urz膮dzenie z tym systemem i za jaki艣 czas (na pewno po zako艅czeniu prac nad SCJPTesterem) spr贸bowa膰 swoich si艂 w programowaniu dla tego urz膮dzenia. Rzecz jasna istniej膮 symulatory Androida, jednak偶e czym innym jest stworzenie aplikacji na komputerze, czym innym za艣 jest jej u偶ywanie w telefonie. By zatem r贸wnie偶 mie膰 jakie艣 poj臋cie o u偶yteczno艣ci aplikacji wypada艂oby przetestowa膰 j膮 r贸wnie偶 w telefonie. No i w sumie… ja te偶 mog臋 troch臋 przygad偶eci膰 (ale potworek s艂owny) i dosta膰 +15 do lansu na dzielni 馃檪

Bo jajo jest jajem!

Jak zawsze przy okazji 艣wi膮t, kt贸re utar艂o si臋 nazywa膰 religijnymi, opuszczam okolice, w kt贸rych bytuj臋 na co dzie艅 i udaj臋 si臋 w rodzinne strony.

Implikuje to dwie rzeczy – wpis贸w nie b臋dzie przez par臋 dni. To raz. Za艣 dwa – jak zawsze 偶ycz臋 wszystkim fajnych 艣wi膮t, gdziekolwiek, jakkolwiek i z kimkolwiek by ich nie sp臋dzali. Jedzcie jajka, albo pizz臋, lejcie wod臋 w poniedzia艂ek, albo po prostu nie r贸bcie nic i odpocznijcie. Co tam komu wygodniej.

Sic transit gloria mundi

Dzisiaj z zupe艂nie innej beczki. Przepraszam zn贸w za obsuw we wpisach, ale to, co ostatnio si臋 u mnie wyprawia zacz臋艂o przechodzi膰 wszelkie poj臋cie.

Sic transit gloria mundi oznacza w ca艂kowicie wolnym i dowolnym mym t艂umaczeniu – “Tak przemija chwa艂a 艣wiata”. I zgodz臋 si臋 z tym – przemija, a ju偶 w kwestii technologii to na pewno. Zaczn臋 od pocz膮tku – pad艂 mi w samochodzie akumulator. Zasadniczo wszystko OK, rozumiem, 偶e po miesi膮cu na siarczystym mrozie m贸g艂 odm贸wi膰 pos艂usze艅stwa. Zam贸wi艂em nowy, pod艂膮czy艂em, samoch贸d dzia艂a. Ale to nie koniec – trzy dni p贸藕niej rozwali艂a mi si臋 pralka. Nie 偶eby co艣 powa偶nego (nikogo nie zala艂em), ale wypaczy艂 si臋 b臋ben, w zwi膮zku z czym jej ewentualna naprawa wynios艂aby w sumie tyle samo co kupienie nowej. Zam贸wi艂em zatem now膮 pralk臋 (by艂a sobota). Pe艂en nadziei w niedziel臋 rano zasiad艂em jak co tydzie艅 do komputera by poczyta膰 przy porannej kawie zaleg艂e newslettery/RSSy i tym podobne tre艣ci. Moja idylla trwa艂a raptem dwa 艂yki czarnego napoju – nagle ekran sta艂 si臋 poszatkowany jak kapusta w listopadzie (dla tych z miasta – wtedy si臋 j膮 kisi). Restart kompa nie pom贸g艂, wyzerowanie ustawie艅 monitora te偶 nie (w sumie kupi艂em go w pa藕dzierniku). Wpad艂em na pomys艂 by pod艂膮czy膰 do monitora swojego netbooka – obraz 艣liczny. Czyli karta graficzna. Wczoraj kupi艂em now膮 kart臋 graficzn膮, wszystko dzia艂a, to i klepi臋 ten wpis.

Co w tym strasznego? Mo偶naby wzruszy膰 ramionami i powiedzie膰, 偶e zdarza si臋. Tylko czy na pewno? Jaki艣 czas temu czyta艂em gdzie艣 w necie tekst, kt贸rego my艣l膮 przewodni膮 by艂a idea, 偶e obecnie sprz臋t (jakikolwiek, nawet nie chodzi o komputery) robi si臋 z za艂o偶eniem, 偶e po okresie gwarancji (ew. gwarancji wyd艂u偶onej) mo偶e si臋 po prostu rozsypa膰. I tak patrz膮c na ostatnie 2 tygodnie przyg贸d z technik膮 jestem sk艂onny zgodzi膰 si臋 z tym twierdzeniem. Pami臋tam pralk臋 moich rodzic贸w, kt贸r膮 wystali za czas贸w PRLu. Przepra艂a ona kilkadziesi膮t ton brudnych pieluch i dzieci臋cych ubra艅. Mia艂a chyba z 15 lat kiedy rodzice wymienili j膮 na now膮. Moja mia艂a nieca艂e 5 lat!!!. No i dzieci nie mam, pior臋 przecie偶 2, mo偶e 3 razy w tygodniu i to w sumie zawsze na kr贸tkim programie. WTF?

Karta graficzna przysz艂a razem z nowym komputerem raptem 3 lata temu! Nie gram w gry zasadniczo, najbardziej zaawansowane obliczenia graficzne u mnie w komputerze maj膮 miejsce, gdy now膮 tapet臋 ustawiam 馃檪 (naprawd臋). I okazuje si臋, 偶e karta graficzna wtedy ca艂kiem niez艂a (GeForce 7200) po prostu sobie pada po 3 latach. I tutaj wspominam laptopa mojego ojca, kt贸ry ostatnio kupi艂 sobie “w teren” (jest geodet膮). To chyba ponad 10letni wyr贸b IBMa. Wiadomo, 偶e le偶y na nim Windows 95, kom贸rki maj膮 chyba dzi艣 lepsze parametry, ale wci膮偶 dzia艂a i to bez wi臋kszych problem贸w! No to ja czego艣 nie rozumiem. Czego艣 naprawd臋 nie rozumiem. A wy?

PS. Czekam na pralk臋, na dostaw臋 maj膮 jeszcze 1,5h. Jak im si臋 zepsuje furgonetka po drodze to chyba zostan臋 bibliotekarzem.
PS2. Dojecha艂a i nawet dzia艂a.

Zakup贸w ci膮g dalszy – dysk zewn臋trzny

Po netbooku przyszed艂 czas na zaj臋cie si臋 kwesti膮 pojemno艣ci dysku. M贸j desktop parametry ma ca艂kiem dobre – dokupiony niedawno RAM ma w tym niema艂y udzia艂. Tylko ten dysk – raptem 80 GB.

Komputer ma ju偶 bodaj偶e 2 lata zatem i taka pojemno艣膰 nie dziwi. Jednak偶e ostatnio coraz bardziej zacz臋艂o mi przeszkadza膰 ograniczanie swej aktywno艣ci – cho膰by takie zdj臋cia. Przy nowoczesnych aparatach jedno zdj臋cie dobrej jako艣ci potrafi wa偶y膰 1MB lub wi臋cej. Czyli w ci膮gu roku mo偶na naklepa膰 nawet i 1GB zdj臋膰, plus te, kt贸re mia艂em do tej pory – i robi si臋 kr贸tko. O muzyce nie wspominam ju偶 w og贸le – chcia艂bym przerobi膰 p艂ytk臋 z muzyk膮 (koncertow膮, wi臋c by nie traci膰 jako艣ci chcia艂bym to zarzuci膰 na FLACa) i kolejny zonk – piosenka 艣rednio po 40MB. No to je艣li na p艂ycie jest 12 utwor贸w 艂atwo przemno偶y膰. Co艣 trzeba by艂o zrobi膰.

Nie chcia艂o mi si臋 rozkr臋ca膰 komputera i wk艂ada膰 kolejnego dysku wewn臋trznego, gdy偶 w zwi膮zku z posiadnaniem netbooka przyda艂oby si臋 co艣 bardziej mobilnego. Ostatecznie zatem pad艂o na dysk zewn臋trzny – Seagate FreeAgent 1TB. Pod艂膮czy艂em, zaszumia艂, zainstalowa艂 swoje oprogramowanie i dzia艂a. 艢liczne 1TB przestrzeni do wykorzystania. Ile kodu musia艂bym napisa膰 by to zape艂ni膰 馃檪

PS. Kupi艂em te偶 now膮 myszk臋, stara nie nadawa艂a si臋 ju偶 do gry w pasjansa :))

Uniwersytet te偶 dla ludzi

Uniwersytet ko艅czy艂em, nawet studia dzienne, problem polega na tym, i偶 nie ko艅czony kierunek nie by艂 informatyk膮. Odbije si臋 to pewnie jeszcze nie raz przy procesach rekrutacyjnych, ale c贸偶 pocz膮膰 – tak wysz艂o. Dlatego cieszy do艣膰 ciekawa inicjatywa, jak膮 podj臋艂y nasze uniwerki.

Konkretnie chodzi o zamieszczanie w sieci materia艂贸w dydaktycznych, kt贸rych autorami s膮 pracownicy naukowi tych偶e uczelni. Nie m贸wi臋 zatem o skryptach pisanych przez student贸w, notatkach z wyk艂ad贸w i laborek, ale w pe艂ni opracowanych materia艂ach dydaktycznych. Od kilku lat w sieci mo偶na znale藕膰 tego typu materia艂y prezentowane przez ludzi z informatyki UW, za艣 w ostatnich dniach doszed艂 te偶 AGH. Co wi臋cej – w przypadku tej ostatniej uczelni mamy nie tylko dane z informatyki, ale r贸wnie偶 szeregu innych wydzia艂贸w. Bardzo mi艂e inicjatywy i dla takich os贸b jak ja – bezcenne.

Zatabletowanie

Od mniej wi臋cej dw贸ch tygodni odnosz臋 wra偶enie, 偶e do ko艅ca nie jestem “pro” w dzisiejszym 艣wiecie. Mo偶na machn膮膰 r臋k膮 na fakt, i偶 nie bawi臋 si臋 Twitterem, nie posiadam konta na Facebooku, albo 偶e nie mam najnowszej wersji GG. Jednak偶e nowy produkt firmy Apple wzbudzi艂 we mnie tyle odczu膰, 偶e naprawd臋 a偶 偶al nie pope艂ni膰 przy tej okazji wpisu.

Z produktami wspomnianej firmy kontakt mam po艣redni. Wok贸艂 mnie ludzie u偶ywaj膮 zar贸wno iPhona jak i mak贸wek do codziennej pracy. Jestem sk艂onny rozumie膰 gad偶eciarzy – dla nich (teraz ju偶 nie, ale kilka miesi臋cy temu na pewno) posiadanie lanserskiego telefonu z jab艂uszkiem by艂o szczytem marze艅. Z tego zreszt膮 co wiem telefon jest ca艂kiem zno艣ny, a dodatkowe mo偶liwo艣ci s膮 OK. Powsta艂a te偶 zreszt膮 przy tej okazji nowa jako艣膰, kt贸ra nazywa si臋 Android (nota bede zamierzam kupi膰 sobie nied艂ugo HTC Hero). Zgoda jest.

U偶ytkownik贸w mak贸wek te偶 jestem w stanie zrozumie膰. Do zabaw z grafik膮 i filmami s膮 jak znalaz艂, znajdzie si臋 te偶 wystarczaj膮co w nich mocy i program贸w by m贸c programowa膰 i to w r贸偶nych j臋zykach i platformach. Do tego niby zgodno艣膰 sprz臋tu z systemem operacyjnym, dopracowane rzekomo aplikacje, klasa i styl. Rozumiem to. Nawet fakt, i偶 za tak膮 przyjemno艣膰 trzeba zap艂aci膰 i po 5 tysi臋cy z艂otych, a w takiej cenie mo偶na dosta膰 naprawd臋 dobrego laptopa.

Natomiast dlaczego nowy wynalazek Appla czyli iPad postrzega si臋 jak lekarstwo na raka i AIDS w jednym – nie wiem i nie rozumiem. Zasadniczo urz膮dzeniem, kt贸re do iPada jest podobne to netbooki. Jak pisa艂em niedawno kupi艂em sobie takowy by m贸c pracowa膰/czyta膰 w drodze do pracy. I tutaj faktycznie tablecik by艂by niez艂y – ma troch臋 mniejszy ekran, ale za to w najgorszym razie wa偶y co艣 ko艂o 0,7kg. I do tego ma trzyma膰 nawet 10h na baterii. Fajnie. Problem tylko w tym, 偶e:

  • nie ma multitaskingu!!!
  • nie obs艂uguje flasha
  • nie ma USB
  • nie ma kamery (cho膰 to mo偶na prze偶y膰)

To rzeczy chyba najbardziej k艂uj膮ce w oczy od samego pocz膮tku. I zasadniczo jedynym frontem, na kt贸rym broni si臋 iPad to w艂a艣nie mobilno艣膰, ale niestety tylko tyle. Czyli zasadniczo jest to powi臋kszony iPhone z jednym du偶ym wyj膮tkiem – ceny. 600$ to w Polsce b臋dzie pewnie ok. 2,5-3k (uwzgl臋dniaj膮c strasznie dziwne przeliczniki i mar偶e ). W zwi膮zku z tym mam pytanie – czy tylko ja nie widz臋 dla tego typu urz膮dze艅 miejsca, czy po prostu jestem 艣lepy i potrzebuj臋 pomocy?

Kupi艂em netbooka

Ostatnio cicho i sza na blogu, gdy偶 skutecznie czas wykorzystuj臋 codziennie doje偶d偶aj膮c do pracy. A to za spraw膮 mojego najnowszego nabytku – netbookowi Samsung NC10.

Ca艂a rzecz odby艂a si臋 do艣膰 szybko. Policzy艂em sobie ile sp臋dzam mniej wi臋cej czasu w 艣rodkach komunikacji publicznej (codziennie) i wysz艂o mi z tego jakie艣 1,5h. Hmmm, 90minut * 5 dni pracy = 450 minut / 60 = 7,5h tygodniowo. No to jak siedz臋 po nocach 艣rednio od godziny 23 do 2-3 nad ranem wyrabiam tygodniowo jakie艣 12-17h. Czyli dorzucenie do tych偶e godzin dodatkowych 7,5 to potencjalny wzrost “wydajno艣ci” o oko艂o 50%. Sporo. Decyzja zosta艂a podj臋ta.

Szybki research u艣wiadomi艂 mi jedn膮 rzecz – wszystkie netbooki s膮 do siebie niemo偶liwie wr臋cz podobne. 99% sprz臋tu ma Intel Atom na pok艂adzie (1,6 GHz), 1GB RAMu, wbudowan膮 grafik臋 i d藕wi臋k, ekran 10,2 cala i podstawowe w sumie wej艣cia (VGA, USB, lini贸wki do d藕wi臋ku). Jakiekolwiek odchy艂y z definicji przek艂adaj膮 si臋 na konieczno艣膰 dop艂acenia kilkuset z艂otych. Przegl膮daj膮c Allegro w poszukiwaniu odpowiadaj膮cego mi sprz臋tu znalaz艂em w艂a艣nie mojego Samsunga NC10. Co jest w nim tak istotnego? Ano kilka rzeczy:

  • jest bardzo lekki. Ledwo 1,33kg co w艣r贸d netbook贸w jest dobrym wynikiem.
  • czas pracy baterii jest baaaardzo d艂ugi (tak wysz艂o z test贸w przeprowadzonych przez Komputer 艢wiat). Nie by艂o to dla mnie a偶 tak istotne (czas podr贸偶y do pracy w jedn膮 stron臋 to max godzina i 15 minut, zatem nie potrzebowa艂em jaki艣 rewelacyjnych osi膮g贸w), ale skoro jest to tym lepiej.
  • najistotniejsza rzecz to 2 GB RAMu. I to przewa偶y艂o. System na pok艂adzie to Windows XP – preinstalowany rzecz jasna – jednak偶e 2 GB RAMu spokojnie daj膮 rad臋.

Komputer kupi艂em u偶ywany (raptem 2 miesi膮ce bodaj偶e) – wygl膮da 艣licznie, ani ryski (na ekranie wci膮偶 folia ochronna) – wszystko pi臋knie i 艂adnie. System sprawuje si臋 na medal, zainstalowa艂em nawet Netbeans i na razie nie jest 藕le. Do czego u偶ywam owo cudo? Ano Javy jako takiej jeszcze na nim nie pr贸bowa艂em (mo偶e jutro si臋 za to wezm臋). 2GB RAMu to du偶o, jednak偶e to zawsze netbook – uruchomienie Glassfisha mo偶e by膰 zbyt wielkim obci膮偶eniem (wraz z Netbeans rzecz jasna). Na razie grzecznie zabawiam si臋 Ruby’m, gdy偶 gdzie si臋 nie obejrz臋 to j臋zyk ten jest u偶ywany (albo implementowany jako wewn臋trzny, 偶e o JRuby nie wspomn臋). Grunt jednak偶e, i偶 zyska艂em mas臋 dodatkowego czasu z komputerem. Mo偶e i teraz wieczorne zm臋czenie nie b臋dzie powodowa艂o wyrzut贸w sumienia.