Archiwum

Archiwum autora

Let’s Summer of Code begin !

Kwiecień 27th, 2010 Dariusz Łuksza 4 comments

After yesterday’s Google announcement of accepted students it is time to move on with project because there are lots of thins to do and features lots to implement ;) . My first task, required by Eclipse Foundation, was to create an wiki page that will describe my project … and here it is.

It is generally based on my proposal with I’ve decided to publish. I think that in next few days I’ll also publish my last year’s proposal (also accepted) for Apache Software Foundation. If you plan to take part in next Summer of Code edition those proposals could be very helpful to get an overview how it should look like ;)

Right now I’m working on tagging support for EGit. First version of this it can is already available in Gerrit. Next version of it I’ve plan to submit before Saturday.

Google Summer of Code 2010 … I’m in ;>

Kwiecień 26th, 2010 Dariusz Łuksza 4 comments

Na początku tego roku zastanawiałem się czy wziąć ponownie udział w Google Summer of Code … jak widać po tytule zdecydowałem się wystartować, a nawet mój projekt został zaakceptowany … YEAH! Drugi raz znalazłem się w elitarnym gronie 10001025 studentów z całego świata.

W tegorocznej edycji będę współpracował z Matthias’em Sohn’nem przy rozwoju EGita i JGita (było to do przewidzenia po moich ostatnich wpisach). Dokładniej rzecz ujmując mój projekt obejmuje integrację EGit’a z Synchronization View oraz implementację wsparcja dla schowka (git stash). W tak zwanym między czasie czyli Community Bonding Period chcę zaimplementować UI dla tworzenia tag’ów w EGit’cie, już poczyniłem nawet ku temu pierwsze kroki.

W sumie będzie to dla mnie pewna odmiana w stosunku do Web Developmentu z którym miałem do czynienia do tej pory … zapowiada się ciekawy okres, oj będzie się działo ;> ;D

BTW. W tym roku Wydział Informatyki ZUT ma wyjątkowo wyjątkowo silną reprezentaję. Z moich infromacji wynika, że do SoC zakwalifikowały się jeszcze dwie osoby:

Po spotkaniu z TestNG

Kwiecień 22nd, 2010 Dariusz Łuksza Brak komentarzy

Pierwsze w tym roku spotkanie Szczecińskiej Grupy Użytkowników Java‘y jest już za nami ;) . Prelekcję o TestNG przeprowadził Filip „Filus” Pająk.

Testowanie, a zwłaszcza TDD jest bardzo popularnym tematem w środowisku Java’owym ale nie o samym testowaniu była mowa tylko o alternatywie dla JUnit jaką jest TestNG.

Muszę się przyznać, że z testowaniem jestem dość na bakier (ale staram się to zmienić). Po prezentacji Filipa jestem trochę przerażony ogromem możliwości TestNG. Wielokrotne powtarzanie testów, organizowanie ich w grupy, możliwość tworzenia zależności pomiędzy grupami, testowanie równoległe oraz rozproszone … i wiele więcej! Informacji była cała masa! Do tego sporo przykładów (dobrze, że będą są umieszczone na stronie JUG’a)! A wszystko to podane w dość telegraficznym skrócie … bo jak inaczej nazwać jeden przykład per feature? Ale taki był zamysł autora, żeby dać nam ogląd na całość tego ogromnego framework’a i moim zdaniem się jemu to udało!

Po całej prezentacji pozostał we mnie jakiś wewnętrzny nie dosyt spowodowany tym, że mimo jest to rewelacyjna technologia, mimo że ciągle się słyszy wkoło TDD, mimo że naprawdę jestem świadom korzyści płynących z testowania jednostkowego (i nie tylko) … to ciągle nie mogę wprowadzić w życie modelu TestFirst, trzeba będzie nad tym popracować mocno …

Ciekaw jestem czy jeszcze ktoś w tym roku będzie chciał się zaprezentować przed Szczecińskim JUG’iem … może Ty ? ;)

Szczecin JUG – Filip Pająk o TestNG

Kwiecień 16th, 2010 Dariusz Łuksza 2 comments

Dla tych co nie są subskrybentami do mailing listy SzJUG‘a, a znajdują się w okolicy Szczecina (lub w samym Szczecinie) i są zainteresowani posłuchaniem o TestNG przytoczę maila Leszka:

Witam ponownie,

zapraszam Was w imieniu swoim i Filipa na spotkanie, które będzie poprowadzone przez właśnie niego, którego tematem będzie „Nie tylko JUnit. O TestNG słów parę a nawet kilka.”

Filus jest cudownym (bo osiągnięcie tego zakrawało na cud) absolwentemkilku etapów powszechnej edukacji, w tym Wydziału Informatyki Politechniki Szczecińskiej. Od pięciu lat zawodowo udziela się jako programista jawy, a od lat dwóch z kawałkiem próbuje swych sił także jako tester oprogramowania. Pewnie dlatego Los postawił go przed nieuchronnym spotkaniem z TestNG, a o wrażeniach z tego rendez-vous, a nawet może tête-à-tête, chętnie poplotkuje w miłych gronie szczecińskiego JUG-a.

Do wygrania licencja na jeden z wymienionych produktów firmy *JetBrains*:

a. IntelliJ IDEA Personal License
b. ReSharper Personal License
c. TeamCity Build Agent
d. Ruby Mine

oraz

licencja na agenta JVM *JRebel*.
Miejsce: WI ZUT (PS), sala 200

Godz. 18:00

Data: 22.04.2010
Serdecznie zapraszamy!

Ja będę tam na pewno, a Ty ? ;)

Linux freak …

Kwiecień 13th, 2010 Dariusz Łuksza 8 comments

W sumie od dawana wiedziałem, że nie jestem normalny. Daaaawno temu pożegnałem się z Windows’em i jako głównego systemu operacyjnego od tamtej pory używam Linuksa. Dziś za to dopadła mnie dość refleksyjna myśl … na co dzień używam 4 urządzeń elektronicznych:

  • macbook’a
  • komputera w pracy
  • telefonu
  • odtwarzacza MP3 (a właściwie to MPC, nie MP3)

Na wszystkich tych urządzeniach nie podzielnie króluje Linux:

  • macbook’a skolonizowało Gentoo
  • komp w pracy też nie ugiął się przed naporem Gentoo
  • telefon jest obsługiwany przez Android’a który bazuje na Linuksie
  • na odtwarzaczu działa RockBox (po to żeby odtwarzać MPC SV8)

Możliwe, że nie jestem zwyczajnym użytkownikiem … ale jak widać żyję i mam się całkiem dobrze ;)

Odpowiadając od razu na wścibskie pytania: nie, nie zamierzam instalować pingwinka na mikrofalówce czy też pralce ;)

EGit development

Kwiecień 12th, 2010 Dariusz Łuksza 2 comments

Nie będę ukrywał, że jestem fanem zarówno Eclipse‘a jak i Git‘a. Idealnym połączeniem obu faktów jest projekt EGit, czyli (jak by ktoś jeszcze nie wiedział albo się nie domyślał) wtyczka dodająca obsługę repozytoriów Git’a do Eclipse’a.

Jakiś czas temu opisywałem EGit’a. Wtedy to już zauważyłem brak kilku opcji w UI. Jedną z nich była np. obsługa tagowania … ale już tak nie jest (a właściwie to nie będzie), gdyż wczoraj wysłałem do Code review efekt kilku godzin mojej pracy. Jeżeli patch zostanie zaaplikowany to w najnowszej wersji EGit’a będzie można już swobodnie tagować i zmieniać nazwy tagów prosto z UI.

BTW. Nie jest to mój pierwszy patch w tym projekcie, kilka dni temu zostały zaakceptowane moje poprawki do jednej z klas w EGit’cie ;) W zanadrzu mam jeszcze coś … ale o tym za jakiś czas dopiero ;>

Biurko developera v2.0

Kwiecień 8th, 2010 Dariusz Łuksza 4 comments

Jeszcze zanim dotarło do mnie biurko i krzesło wiedziałem, że następnym wydatkiem będzie monitor … w założeniach miało to być trochę później ale jak widać na powyższym zdjęciu realizacja nastąpiła dość szybko.

Dziś właśnie dotarł do mnie 24 calowa matryca LCD, zwana potocznie monitorem ;) . Ciągle jestem jeszcze zszokowany jej ogromem.  Nie ma co tutaj porównywać z 13,3″ w MacBook’u; trzeba będzie na nowo zaaranżować sobie przestrzeń pracy w Eclipse’ie. Jeszcze większym wyzwaniem będzie odpowiednia konfiguracja awesome (a właściwie to odpowiednie jego oskryptowanie), żeby możliwe było ergonomiczne korzystanie z dostępnej powierzchni wyświetlanego obrazu. Trzeba będzie dobrać odpowiednie skróty do manipulacji oknami oraz do żonglowania nimi między tagami … ech … plany są spore, czas jest ograniczony wszystko zależy od chęci ;)

Jak na razie po podłączeniu pod wielki monitor głównie z niego korzystam, a wyświetlacz w MacBook’u służy wyłącznie w celach relaksacyjnych ;)

Dopiero teraz swoją użyteczność okazuje zagłówek w krześle. Wcześniej kiedy to wpatrywałem się w monitor w laptopie często odrywałem głowę od niego pochylając ją lekko to przodu. Teraz głowa jest cały czas oparta o zagłówek, oczy są na wysokości głównego monitora … nie wiem na ile jest to poprawna postawa ale na pewno jest lepsza niż ta jaką miałem do tej pory.

Następny etap urządzania przestrzeni developera to system nagłaśniający. Wzmacniacz już jest pozostaje tylko dokupić odpowiednie przetworniki (tj. głośniki) … z tym zakupem na pewno się jeszcze wstrzymam dość szaleństw finansowych …

Biurko developera v1.0

Marzec 18th, 2010 Dariusz Łuksza 8 comments

Należę do ludzi których dla których wykonywana praca jest jednocześnie hobby, nie zawsze jest to dobre gdyż zazwyczaj po kilku godzinach pracy wracam do mieszkania i znowu zasiadam do komputera i zajmuję się „czymś”. Nie lubię siedzieć przed telewizorem (nawet takowego nie posiadam) czy też innym „emiterem obrazu” i bezczynnie wpatrywać się w projekcję, wolę czas wolny spędzać aktywne. Przez „aktywnie” rozumiem rozwijanie swoich zainteresowań, zazwyczaj po pracy siadam do jakiś moich mniejszych lub większych projektów, czytam blogi różnego rodzaju i ogólnie rozwijam „się”, ostatnio dla urozmaicenia (oraz zachowania pewnego poziomu zdrowotności) zacząłem biegać.

Kiedy uświadomiłem sobie, że 80-90% czasu spędzam przed komputerem w różnych „dziwnych” miejscach i pozach (a to w kuchni, a to w pokoju, a to przy za małym biurku itp.). Postanowiłem „coś” z tym fantem zrobić, żeby nie być za bardzo „pogięty” na tzw. starość. Od pewnego czasu dorastała we mnie myśl potrzeby zakupu odpowiedniego sprzętu do pracy, po pracy ;) … w międzyczasie ukazało się parę wpisów odnośnie środowiska pracy.

Kilka dni tygodni temu myśl ta dojrzała tak bardzo, że została została zrealizowana … oto jej efekt ;)

Podstawowe zalety zestawu:

  • biurko:
    • duże
    • bez szuflad i regałów
    • regulowana wysokość blatu
    • solidne
  • krzesło:
    • zagłówek
    • regulacja wysokości, rozstawu oraz kąta podłokietników
    • regulacja kąta pochylenia oparcia
    • regulacja twardości siedziska
    • regulacja oddalenia siedziska
    • regulacja wysokości

Jeżeli pominiemy zewnętrzny monitor i ramię to mój domowy zestaw nie umywa się do tego z którego korzystam w firmie ;>

Do pełni szczęścia brakuje jeszcze mi kilku rzeczy:

  • dużego monitora
  • ramienia do tego monitora
  • nagłośnienia (gdyż nie potrafię pracować w ciszy)

Ale spokojnie, wszystko w swoim czasie ;) na razie jest solidna podstawa ;>

A jak wygląda Twoje miejsce pracy po pracy ? Ile spędzasz tam czasu ?

Git, EGit i Gerrit …

Marzec 17th, 2010 Dariusz Łuksza 6 comments

Podczas prac nad moją pracą inżynierska mam przyjemność używać git’a jako systemu kontroli wersji. Żeby współpraca układała się „zgrabniej” używam wtyczki do Eclipse‘a EGit znajdującej się w inkubatorze Eclispe Fundation (kilka dni temu zdarzyło się mi popełnić mały artykuł na temat EGit’a).

W naszej współpracy brakowało mi pewnych dwóch małych wodotrysków w dialogu do wybierania gałęzi, mianowicie reakcji na podwójne kliknięcie w nazwę gałęzi oraz poruszania się po drzewie za pomocą kursorów. Pomyślałem sobie, że warto by było chłopaków wesprzeć w pracy, w końcu odwalili kawał dobrej roboty … tak więc stworzyłem odpowiednią poprawkę. Niby nic wielkiego … do czasu … okazuje się projekt ten używa rozbudowanego narzędzia do przeglądania (review) i współtworzenia (conribute) kodu no i właśnie tutaj znajduje się problem … ale do rzeczy.

Gerrit, jest rozbudowanym (przynajmniej z mojego punktu widzenia) narzędziem do zarządzania rozproszonym projektem. Wymusza on pewien system pracy. Każdy patch musi zostać przejrzany oraz oceniony zanim trafi do głównego repozytorium. Nad każdą poprawką odbywa się głosowanie; dopiero po uzyskaniu odpowiedniej liczby głosów (od osób uprawnionych) zostanie ona włączona do głównej gałęzi kodu. Dodatkowo każdą linie poprawki można skomentować co ułatwia współpracę w rozproszonym zespole, zwłaszcza z nowymi jego członkami. Wprowadzane poprawki do poprawki ( ;) ) np. na podstawie komentarzy, są widoczne w jednym miejscu. Całość od strony interfejsu wygląda ładnie i przejrzyście (osobiście nie miałem najmniejszych kłopotów żeby się „połapać” w tym web’owym interfejsie).

Projekt EGit udostępnia dokumentację ułatwiającą rozpoczęcie współpracy z Gerrit’em. Bezproblemowo przez nią przebrnąłem, stworzyłem potrzebne konto, dodałem klucz publiczny, odpowiednio skonfigurowałem Git’a dodając hook‘i … więc można zaczynać zabawę. ;>

Szybkie ogarnięcie w kodzie, lokalizacja odpowiedniej klasy, chwila google’ania o SWT … i gotowa jest poprawka. Szybki commit do lokalnego repo, potem wypchnięcie tego do Gerrit’a … i oczekiwanie na werdykt developerów ;>

Minęły 3 dni … jest pierwszy werdykt … -1 :| . Z mojego pośpiechu wkradły się dwie literówki błąd dość infantylny … no i nie trzymam standardów formatowania (nie potrzebnie ujmuję w klamry jedno-instrukcjowe linie w if’ach i else’ach). Trzeba to poprawić … no i tutaj właśnie zaczęły się strome schody …

Zrobiłem poprawkę, commit, push … Gerrit zamiast dodać tą poprawkę do już istniejącej wyodrębnił to jako zupełnie osobną zmianę … nie tak się umawialiśmy, nie tak miało być.

Jak się po chwili okazuje, EGit nie wspiera hook’ów … w ogóle ich nie używa tak więc w moim commit’cie zabrakło jednej bardzo ważnej linii:

Change-Id:

Teraz muszę to jakoś ręcznie połączyć …

Nie równa walka trwała dwie czy trzy godziny … w tym czasie za-spamowałem trochę skrzynki mailowe commit‘erą, bo dostają maila o każdej nowej poprawce zgłoszonej do systemu, a ja takich nie prawdziwych poprawek podczas walki wprowadziłem :/. Na szczęście całość zakończyła się sukcesem. Tak więc co zrobić jeżeli wypchniemy do Gerrit’a naszą zmianę bez Change-Id i chcemy do niej wprowadzić poprawkę ?

Najpierw musimy się na pewno znajdować w odpowiednim miejscu historii Git’a. Tak więc na początku tworzymy sobie nową gałąź i przełączamy się na nią (oczywiście wszystko robimy z linii poleceń):

git branch fixes
git checkout fixes

Za pomocą git log znajdujemy commit który wypchnęliśmy do repozytorium, niech to będzie np. f4a33b1 (wystarczy 6 pierwszych znaków z SHA-1) i cofamy się w czasie:

git reset –hard  f4a33b1

Dokonujemy potrzebnych zmian, za pomocą git add dodajemy nasze zmiany do commit’a i (ważne), poprawiamy ostatni commit (czyli ten f4a33b1):

git commit –amend

Najlepiej w samej treści wiadomości dołączonej do commit‘a nic nie zmieniać, zatwierdzamy commit wychodząc z edytora. Teraz ponownie odpalamy git log i zapisujemy/zapamiętujemy 6 pierwszych znaków z nowego commit’a (na pewno będą różne od poprzednich), np. ee421a. Wypychamy naszą poprawkę do repozytorium

git push ssh://username@egit.eclipse.org:29418/egit.git ee421a:refs/for/master

Po chwili powinniśmy dostać maila potwierdzającego wprowadzenie zmian.

Uff, to na tyle. Być może jest na to lepszy sposób … ale ten na pewno działa (a nie chcę wystawiać cierpliwości developerów EGit’a na zbyt dużą próbę).

BTW. Ten post starałem się pisać bez zbędnych anglikanizmów … wyszło to raczej średnio, nie mogłem skojarzyć odpowiedniego polskiego odpowiednika dla commit oraz hook.

Inżynierka v0.2

Marzec 11th, 2010 Dariusz Łuksza 6 comments

Kolejna porcja screenshot’ów z „pracy inżynierskiej” ;)

Jak widać doszła obsługa menu, a w niej:

  • My location – automatycznie centruje mapę na naszej pozycji
  • Start scan(/Stop scan) – „włącza/wyłącza” wątek skanujący
  • List AP – wyświetla listę wszystkich Access Point’ów które w czasie działania aplikacji znajdowały się w zasięgu
  • Setting – wyświetla ustawienia aplikacji (ta pozycja wymaga jeszcze implementacji)

Trzy z czterech dostępnych akcji są oprogramowane, zostało mi jeszcze stworzyć odpowiednie menu z ustawieniami aplikacji.

Tak wygląda lista wszystkich „odkrytych” Access Point’ów, z lewej strony widać grafikę/piktogram opisujący jakość sygnału danej sieci (w założeniach jest też, żeby ten sam obrazek opisywał poziom zabezpieczeń danej sieci). Obok jest czytelna nazwa punktu dostępowego (czyli SSID). Punkty dostępowe rozróżniane są po BSSID czyli adresie fizycznym urządzenia, więc w szczególnych przypadkach na liście mogą pojawić się kilka pozycji o tej samej nazwie. W każdy element na liście można „kliknąć” i uzyskać widok szczegółowy.

Muszę się dowiedzieć o status licencyjny grafik dołączonych do Androida … :|

Ostatni screenshot, pokazuje wspomniany już „widok szczegółowy”. Mamy tutaj szczegółowe dane odnośnie wybranego punktu dostępowego. Jak można zauważyć widok ten wymaga jeszcze dopracowania, gdyż nie wszystkie dane są w pełni widoczne.

To na tyle, więcej za jakiś czas ;)