wtorek, 13 grudnia 2011

Processor Warszawa

Wikipedia wyjaśnia pojęcie Java Processor jako sprzętową implementację maszyny wirtualnej Java (JVM). Innymi słowy kod binarny stanowiący instrukcje maszyny wirtualnej staje się kodem instrukcji procesora.

Nowością na tym polu jest wynalazek jednej z polskich firm - http://www.gryftechnologia.com.
Zbudowała ona procesor zwany Warszawa, używany w rozwiązaniach komercyjnych.

Warszawa Processor

Artykuły opisujące nowy procesor można znaleźć poniżej:

http://24pr.pl/2011/12/firma-gryftechnologia-stworzyla-pierwszy-polski-procesor/
http://pisz.wm.pl/81076,Chlopak-z-Pisza-zbudowal-pierwszy-polski-procesor.html
http://wyborcza.biz/Firma/1,101618,10773137.html
http://www.pcworld.pl/news/378171/Na.Mazurach.powstal.pierwszy.polski.procesor.html

poniedziałek, 12 grudnia 2011

Agile Development Day

Wczoraj miał miejsce w Warszawie Agile Development Day. Wydarzenie organizowane przez 2 firmy: Pragmatists wspólnie z Sages.

Od godziny 8:00 do 18:00 jako jeden z 20 wybrańców miałem możliwość uczestniczyć w tworzeniu aplikacji metodyką agile. Pracowaliśmy w parach. Do każdej pary dołączyła też jedna osoba z organizatorów doświadczona w pracy agile. Tworzyliśmy aplikację społecznościową, w której każdy zalogowany użytkownik może chwalić się nabytymi zdolnościami lub takimi których aktualnie się uczy. Za czas spędzony na nauce i trudność zadania otrzymuje punkty. W ten sposób inne osoby śledzące danego użytkownika mogą zobaczyć w czym się doskonali i czuć się zmobilizowane do poszerzania własnych kompetencji. Dostępny jest też ranking najbardziej aktywnych użytkowników. Ciekawy moim zdaniem pomysł na system.
Kody źródłowe dostępne na licencji WTFPL leżą na githubie:

https://github.com/has-learnt-it/haslearntit

Plan imprezy przedstawiał sie następująco:

8:00 - 8:20: start, śniadanie, w tym czasie opis projektu i sposobu pracy
8:20 - 9:00: Szkolenie Cassandra
9:00 - 9:30: Szkolenie Spring MVC
9:30 - 10:55: I iteracja
10:55 - 11:00: przegląd iteracji, rotacja par
11:00 - 12:30: II iteracja
12:30 - 12:45: przegląd iteracji i retrospekcja, rotacja par
12:45 - 13:30: obiad
13:30 - 14:55: III iteracja
14:55 - 15:00: przegląd iteracji i retrospekcja, rotacja par
15:00 - 16:25: IV iteracja
16:25 - 16:30: przegląd iteracji
16:30 - 17:30: V iteracja (kończenie rozpoczętych historyjek, ostatni
szlif aplikacji)
17:30 - 18:00: retrospekcja i zamknięcie imprezy

Po pierwszej iteracji, która przebiegała najbardziej chaotycznie ze wszystkich zauważalne były problemy podziału odpowiedzialności za zadania. Nikt nie wiedział która drużyna zajmuje się jakim kawałkiem aplikacji, mimo że było wiadome które 'user story' są aktualnie realizowane. Pojawiły się problemy z równoległą pracą na tym samym fragmencie kodu widoczne przy komitach na githuba (mergowanie zmian, kolejny update i konflikty bo w miedzyczasie inna grupa zmieniła kod, znów mergowanie, update i znów konflikty itd. )

Dlatego po pierwszej retrospekcji, w czasie której każdy na ścianie na kartce mógl zamieścić komentarz co go boli a co cieszy, pojawił się pomysł na stand-up'y, czyli krótkie spotkania organizowane 2 razy w czasie każdej iteracji, w których brała jedna osoba z każdego teamu i mówiła czym para aktualnie się zajmuje i jakie problemy natrafia. Dzięki temu każda grupa wiedziała kto czym się zajmuje i mogła podsunąć pomysł na rozwiązanie problemu.

Kolejne iteracje przebiegały już coraz płynniej, ale zauważalne były braki wiedzy na temat gita i cassandry. To wydłużało czas spędzany na naukę tych rzeczy. Na pewno nauka nie poszła w las.

Sam jestem bardzo zadowolony, że mogłem się tam zjawić. Poznałem wiele ciekawych osób, zobaczyłem jak świetnie integruje się github z Jenkinsem. Po każdym komicie na centralne repozytorium mogliśmy obserwować jak zmiany są deployowane na serwerze produkcyjnym i od razu można używać nowych funkcjonalności na produkcji. To jeszcze bardziej podsycało nasz zapał do pracy - działająca aplikacja rosnąca w oczach (UI widoczny na rzutniku przez cały czas). Każdy nasz nowy kawałek funkcjonalności mogł już za chwilę w mgnieniu oka znaleść się na produkcji.

Wymagania w postaci user-story były dostępne online na portalu https://hosted.tinypm.com/agiledevday/

Z pewnością dynamika pracy i bardzo wiele nowych technologii jakie napotkałem nie pozwoliły ogarnąć tego, co powstało w ciągu jednego dnia, dlatego planuję na spokojnie usiąść nad systemem i zobaczyć jak niektóre rzeczy zostały rozwiązane.

Był to cenny i miło spędzony czas. Podziękowania dla organizatorów za zaangażowanie i obiad oraz cattering w ciągu całego dnia (przegryzaki i napoje).

Informacje o wydarzeniu można również śledzic na Twitterze

niedziela, 4 grudnia 2011

Globalny Dzień Code Retreat 2011

W łódzkim oddziale Java User Group odbył się 3go grudnia pierwszy w Łodzi Code Retreat.
Pod czujnym okiem Piotra Przybylaka 12 programistów doskonaliło swój warsztat w zakresie Test Driven Development.
Od godz. 10.00 do 16.00 (z kawałkiem) w siedzibie firmy Mobica przeszliśmy przez kilka 45-minutowych sesji, w których w parach (w każdej sesji inna) próbowaliśmy zakodować Game of Life. Niestety nikomu nie udało się doprowadzić do w pełni działającej aplikacji, ale nie w tym rzecz. Chodziło o dopieszczenie każdej linijki kodu mając na uwadze postawione założenia.

Jak wygląda praca w parze? O co chodzi w TDD? Dobrze odzwierciedla to ten oto dialog.

Każdy wyniósł z tego coś dla siebie. Ja nauczyłem się kilku skrótów klawiszowych w Eclipse, tworzenia templatów kodu, różnego podejścia do tego samego problemu (bardziej obiektowego i bardziej strukturalnego), paru fajnych bibliotek (Mockito, Hamcrest) i testowania w Androdzie (Dzięki Mariusz :)) Przy okazji pojawiły się namiary na pare fajnych książek:
Wzorce projektowe. Analiza kodu sposobem na ich poznanie.
Release It!: Design and Deploy Production-Ready Software (inne książki Michaela tównie godne polecenia)
Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation
Working Effectively with Legacy Code
Holub on Patterns: Learning Design Patterns by Looking at Code

Liste powyższą updatne przy okazji, gdy pojawią sie nowe namiary.

W międzyczasie połączyliśmy się z uczestnikami tego samego wydarzenia w Barcelonie i Krakowie.
Całość wspominam bardzo pozytywnie. Chętnie wezmę udział częściej w podobnych warsztatach. Nauka w praktyce - bezcenne. Za resztę zapłacisz kartą Master Card ;)

[youtube http://www.youtube.com/watch?v=FdMzngWchDk&w=420&h=315]

[youtube http://www.youtube.com/watch?v=0d6yIquOKQ0&w=420&h=315]


"...it's cats that are complicated"


Zdjęcia z wydarzenia dostępne na Picasa Gallery