poniedziałek, 27 grudnia 2010

Cytaty #8

Witam!

Nie wiem dlaczego, ale mam ostatnio nieodpartą ochotę pisać jak najwięcej postów na blogu :) Tym razem chciałbym przedstawić trzy zasłyszane hasła, które głęboko utkwiły mi w pamięci, oraz które dały mi wiele do myślenia.

Pierwszy z nich pochodzi z jednego z moich ulubionych seriali - Chorych Doktorów (ang. Scrubs). W jednej ze scen Bob Kelso mówi do swojej pacjentki (a także do przysłuchującego się Turk'a):
"Nic, co jest warte posiadania, nie przychodzi łatwo (...)"
Jakby tego było mało, potwierdza to niejako Rendy Pausch, którego książkę - Ostatni Wykład - w ostatnim czasie przeczytałem już po raz trzeci od deski do deski. Są w tej książce (a także na wideo z jego faktycznego ostatniego wykładu) pewne bardzo słuszne słowa:
"Mury istnieją po to, by powstrzymywać ludzi, którzy nie pragną czegoś dostatecznie mocno"
Na sam koniec przytoczę słowa Dona Brown'a z firmy Atlassian, który to w trakcie prezentacji pt. "Functional and Integration Testing for the Lazy" na AtlasCamp 2010 powiedział:
"As we start any good story, every story begins in Maven"
Nie trzeba chyba dodawać, że Don nie jest miłośnikiem skomplikowania, jakie niesie ze sobą Maven, gdy używa się go w większych projektach? :) Prawda jest taka, że Maven jest cudowny, umożliwia i ułatwia wiele rzeczy, lecz każde ulepszenie przynosi tyle samo, jeśli nie więcej, problemów do rozwiązania. W moim przypadku, w ostatnim okresie, znaczną część czasu poświęcam na poprawianie konfiguracji Mavena zamiast zajmować się implementacją nowych funkcji w projekcie, co potrafi naprawdę mocno zniechęcić do tego narzędzia.

Pozdrawiam i do następnego razu!

niedziela, 26 grudnia 2010

Agile Central Europe 2010

Witam!

Święta to idealny czas na nadrobienie zaległości, które nie wymagają zbyt wiele zachodu. Ponieważ ostatnie kilka tygodni było naprawdę zwariowane, nie miałem tak naprawdę czasu przejrzeć ostatnich numerów JAVA exPress, czy też Software Developer's Journal, lub też być na bieżąco z ciekawymi prezentacjami na InfoQ. Całą sytuację pogorszył jeszcze fakt startu nowej inicjatywy kolegi z pracy, Damiana Nowaka - wPolsce.it. Jest to portal, na łamach którego publikowane mają być docelowo informacje o wszystkich konferencjach informatycznych w Polsce. Dzięki tej inicjatywie dowiedziałem się o konferencji, która miała miejsce w tym roku - Agile Central Europe 2010 w Krakowie. Piszę o tym, ponieważ przeglądając stronę konferencji natrafiłem na zapis wideo prezentacji Roberta Dempsey'a o ciekawym tytule "Distributed Agile in a Multicultural World". Od kiedy trafiłem do swojej pierwszej prawdziwej pracy informatycznej około 4 lata temu pracowałem zdalnie, w domu. Nie było biura jako takiego, był tylko sklep, dla którego pracowałem, lub od czasu do czasu mieszkanie właścicielki firmy oraz jej partnera, gdzie odbywały się sesje planowania. Już po kilku tygodniach pracy tam miałem okazję załatwiać sprawę z ludźmi zza granicy, co wpierw napawało mnie strachem (do tej pory nigdy nie opuściłem granic naszego wspaniałego ojczystego kraju), a także ekscytacją w różnej postaci. Już wtedy, te 4 lata temu, postanowiłem dojść w swojej karierze zawodowej do miejsca, w której będę pracował z ludźmi nie tylko z innego kraju, ale także innego kontynentu. Nie tak dawno temu, kiedy dostałem propozycję pracy w Spartezie (a jeśli mam być szczery już w trakcie odbywania tam praktyk studenckich) marzenie to powróciło ze zdwojoną siłą. Wraz z tym marzeniem przyszło przeświadczenie, że tak naprawdę nie jestem w żaden sposób przygotowany do takiej pracy i nie mam tu na myśli tylko moich zdolności programistycznych. Idąc tym tropem postanowiłem wolną chwilę w te święta spędzić na obejrzeniu prezentacji Roberta i czas na to poświęcony nie był ani trochę zmarnowanym. Prezentacja jest bardzo ciekawa i pomogła otworzyć mi oczy na tak wiele aspektów zdalnej pracy interkontynentalnej, że tak naprawdę mam teraz więcej pytań i wątpliwości niż wcześniej. Sądzę jednak, że jest to dobry objaw, gdyż pokazuje, że mi zależy. Ale żeby nie przedłużać, oto wspomniana przeze mnie prezentacja:

Robert Dempsey - Distributed Agile in a Multicultural World from Krakow Tech Conferences on Vimeo.

Niestety filmik nie jest w najlepszej jakości, nie widać slajdów przez większość czasu - jednym słowem - Parleys to to nie jest ;) Przeglądając kanał na Vimeo, na którym umieszczono prezentację natrafiłem jeszcze na kilka zapowiadających się ciekawie prezentacji. "Refactoring Test Code" Piotra Jagielskiego okazał się zacząć bardzo dobrze, lecz nie dane mi było dotrwanie choćby do 1/3 prezentacji - prelegent omawiał wyświetlany na rzutniku kod, który był całkowicie nieczytelny dla widza. Maria Diaconu wraz z Alexandrem Bolboacă wygłosili prezentację na temat "Software as a craft - an introduction to the Software Craftsmanship movement" - temat, który dzięki Sławomirowi Sobótce jest mi znany o tyle, że jestem świadom jego istnienia i chętnie dowiaduje się czegoś na ten temat przy każdej możliwej okazji. Niestety prezentacja nie była ciekawa, a to za sprawą ciężkiego dla ucha angielskiego oraz małej ilości przekazanych treści.

Święta przed chwilą się skończyły, tak więc czas przygotować się do powrotu do pracy, na dziś to tyle.
Pozdrawiam i do następnego razu!

sobota, 25 grudnia 2010

Co nowego w IntelliJ IDEA 10

Witam!

Dwa tygodnie temu wróciłem po długim (5-tygodniowym) urlopie do pracy. Pierwsze co zwróciło moją uwagę to aktualizacja obecnie używanego przeze mnie IDE - IntelliJ IDEA - do wersji 10. Od dłuższego czasu, jeszcze przed pójściem na urlop, było dosyć głośno na temat nowej wersji naszego ulubionego edytora. Największy nacisk miał zostać położony na wydajność aplikacji, ale nie miało to być jedyne udostkonalenie, które miała wnieść najnowsza wersja. Poniżej prezentuje liste rzeczy, które najbardziej spodobały mi się w IDEA 10:
  1. Poprawiona wydajność - na stronie z informacjami o nowościach w wersji 10 firma JetBrains informuje, że nowa IDEA uruchamia się w czasie dwukrotnie szybszym niż poprzednia wersja, podobnie jak indeksowanie projektu. Liczby trochę przesadzone, ale 30-35% szybsze działanie, które osobiście odnotowałem od samego początku pracy z nową wersją edytora robi naprawdę duże wrażenie.
  2. Odczepiane okna - to opcja, której bardzo brakowało mi po przesiadce z Eclipsa na IntelliJ IDEA. W nowej wersji brak ten został uzupełniony i możemy ustawiać okna edytora dowolnie, wedle uznania. Jest to bardzo ważne, kiedy pracuje się na dwóch monitorach. Mała rzecz, a cieszy :) Wiele osób bardzo narzekało, że w jednym oknie nie da się zmieniać w prosty sposób kolejności zakładek - teraz jest to równie proste jak w innych znanych IDE. Poniżej filmik prezentujący nową opcję:
  1. Zakładki - to ciekawy sposób na zaznaczenie istotnego w danym momencie fragmentu kodu. Dzięki temu nie ma konieczności przeglądania od nowa całego kodu, aby znaleźć interesujący nas fragment. Poniżej prezentacja nowej funkcji:
  1. Instant Autocompletion - polega na podpowiadaniu składni bez konieczności ciągłego wciskania kombinacji Ctrl + Space. Choć pokazano, że przyspiesza to prace przy pisaniu kodu (szczególne wrażenie zrobiło na mnie podpowiadanie składni XPath) to znając życie bardzo dużo osób zrezygnuje z tej funkcji całkowicie po relatywnie krótkim czasie. Mi na razie się podoba i jest wygodne, więc póki się nie zirytuje, póty zostaje :)
  1. Integracja z Apache Maven - obsługa Mavena w IntelliJ IDEA jest tzw. out-of-the-box, czyli nie potrzeba żadnych dodatkowych paczek, aby z niego korzystać. W nowej odsłonie edytora dodano indeksowanie zdalnych repozytoriów, pomoc przy refaktoryzacji pliku POM, etc.

  1. Productivity Guide - to dodatek trochę dla zabawy, choć w połączeniu z rozszerzeniem Key Promoter może być bardzo pomocne. Idea jest bardzo prosta - IDEA zlicza ilość wykorzystania ułatwień, jakie dostarcza edytor i zestawia je w przejrzysty sposób. W ten sposób możemy łatwo dowiedzieć się o nowych skrótach klawiszowych, których jeszcze nie znaliśmy, a mogą nam się bardzo przydać. Dodatkowo każde z udoskonaleń jest opisane wraz ze skrótem klawiszowym oraz stosownym zrzutem ekranu.



Czas powiedzieć co mi się nie podoba w nowej odsłonie IntelliJ IDEA:
  1. Sposób tworzenia branchy/tagów w Subversion - nie udało mi się jeszcze zrobić branchu w repozytorium SVN'a przy pomocy IDEA'i w sposób zadawalający. W Eclipse wystarczyło wskazać folder, do którego chce przekopiować katalogi z głowy trunk'a lub wskazanego innego folderu w repo, natomiast IDEA dodaje do przygotowanej przeze mnie lokalizacji folder o nazwie, którą pobiera ze źródłowego URL'a i dopiero tam kopiuje pliki - bardzo niewygodne.
  2. Nie wszystkie nowe opcje działają w Community Edition - przykładowo nowe możliwości w obsłudze Maven'a nie są dostępne w wersji CE, co jest bardzo rozczarowujące.
  3. Problem z pluginami - po aktualizacji z wersji 9 do 10.0 okazało się, że muszę instalować wszystkie rozszerzenia na nowo. Dziwne, bo sądziłem, że skoro wskazałem lokalizację poprzedniej wersji, gdzie znajdowały się pliki konfiguracyjne, IDEA sama się zorientuje, że trzeba trochę oprogramowania doinstalować...
W momencie pisania tego postu IDEA poinformowała mnie o dostępności nowej wersji, 10.01 build 99.32 (IDEA 10 to build 99.18), w której wprowadzono liczne poprawki. Taki stan rzeczy bardzo cieszy. Widać, że oprogramowanie się rozwija i to w bardzo dobrą stronę, czas więc zacząć zbierać na wersję Ultimate Edition :)

Z miłych zaskoczeń przy aktualizacji oprogramowania: od niedługiego czasu jestem szczęśliwym posiadaczem nowego laptopa - HP Pavilion dv7-3130ew. Zainstalowana w nim karta WiFi jest firmy Broadcom, a z tego co wcześniej się orientowałem, jej instalacja pod Ubuntu bywa problematyczna. Jakież wielkie było moje zaskoczenie, gdy po pierwszym uruchomieniu Ubuntu 10.10 system zapytał mnie, czy nie chce zainstalować sterownika karty graficznej, karty WiFi oraz tunera cyfrowego DVR. Zgodziłem się i od tej pory nie mam z tym najmniejszych problemów - doskonały wzór dla twórców oprogramowania, co znaczy program user-friendly :)

To tyle na ten moment, czas wracać do świątecznego stołu i cieszyć się chwilami wytchnienia spędzonymi z rodziną :)

Pozdrawiam i życzę wszystkim wesołych świąt!!!

poniedziałek, 6 grudnia 2010

Cytaty #7

Witam!

Dzisiaj usłyszałem bardzo mądre słowa człowieka, który żył dawno temu, lecz jego słowa są aktualne także dzisiaj i jestem pewien, że będą za kolejnych 100, 200, czy 500 lat. Mowa tu o Williamie Faulkner'ze. Był to amerykański powieściopisarz, poeta, laureat Nagrody Nobla w dziedzinie literatury. A oto co powiedział w 1958r. Jean Stein'owi:
Always dream and shoot higher than you know you can do. Don't bother just to be better than your contemporaries or predecessors. Try to be better than yourself (...).
I chociaż Faulkner mówił wtedy o pisarzach, to jednak nie ma chyba branży, w której słowa te nie miały by swojej racji. Bardzo często pracujemy lub uczymy się w towarzystwie ludzi z dużym doświadczeniem lub sporym talentem i notorycznie próbujemy być lepsi od nich. Niestety bardzo często okazuje się, że jest to zgubna motywacja - osoby te także stają się coraz lepsze, coraz trudniej być od nich lepszym. Za to samo bycie jutro lepszym od siebie samego, niż jest się dzisiaj, jest doskonałą motywacją dającą wciąż nowe, coraz lepsze wyniki.

Natchniony tą myślą wracam do pracy :)
Pozdrawiam i do następnego razu!

sobota, 4 grudnia 2010

Nowy blog o Tapestry

Witam serdecznie!

Pierwszy projekt z użyciem frameworku Spring 3 za mną, teraz prace skoncentrowane na zapoznawaniu się z językiem Jython i pisaniu pracy inżynierskiej. Chociaż ostatnio coraz częściej spotykam się z opinią, że znajomość, choćby podstawowa, Springa to podstawa, to uważam używanie go do małych aplikacji za strzelanie do muchy z armaty. Znacznie pozytywniejsze wrażenie odniosłem odnośnie frameworka Tapestry (w wersji 5.2) po prezentacji Michała Grucy na spotkaniu Trójmiasto Java User Group pt. "Przegląd możliwości szkieletu aplikacyjnego Tapestry 5". Od tamtego momentu czekam z niecierpliwością na możliwość poznania w praktyce podstaw tego cudeńka. Ponieważ przez najbliższych kilka tygodni nie zapowiada się na to, żebym miał ku temu możliwość pocieszam się wpisami na blogu Michała, które wreszcie zgodził się upublicznić. I tak oto mam ogromną przyjemność zaprezentować "Reliable IT Solutions" - polski blog o podstawach programowania z użyciem Tapestry dla początkujących i nie tylko. A o to co sam autor o nim pisze i jak definiuje cel swojego młodego przedsięwzięcia:
Jestem jeno skromnym programistą, który stara się uczynić świat lepszym, poprzez promowanie dobrych nawyków i lepszych technologii. Mam nadzieję, że poprzez tego bloga, uda mi się dotrzeć do kilku osób i uczynić ich życie lepszym, by nie popełniały tych samych błędów, które ja musiałem popełnić.
Pozdrawiam i zachęcam do czytania wpisów Michała!