Continuous integration

20.03.2010 @ 00:15:46 by Rafał Kozik | agile iPhone programowanie gamedev

Jedną z rzeczy na które kładziony jest nacisk w zwinnych metodologiach (ang. agile) to ciągła integracja. Pod tą nazwą nie kryje się nic innego jak częste, automatyczne czynności dotyczące projektu, zwykle kompilacja i uruchamianie testów jednostkowych i/lub regresyjnych. Ma to na celu szybkie wykrywanie problemów i ich rozwiązywanie. Ponieważ problemy są wykrywane szybko, powinno dać się je dość łatwo wyeliminować. Dzięki temu w każdym momencie mamy dostęp do sprawnego builda.

Przykładowe zalety takiego podejścia:

  • częste buildy, np. po każdym uaktualnieniu repozytorium
  • uruchamianie testów i zbieranie informacji które zmiany odpowiedzialne są za ich niepowodzenie
  • możliwość kompilacji z różnymi kompilatorami i na różnych platformach

Podczas każdego builda powstają pliki, które możemy chcieć zachować -- nazywane są artefaktami. Mogą to być logi, wyniki testów, pliki wykonywalne, informacje o użytych plikach itp. Pozwala to na jeszcze lepsze śledzenie zmian w projekcie i znajdowanie problemów.

Najważniejszą rzeczą w całej idei continuous integration jest automatyzacja. Możemy kupić potężny komputer za kilka tysięcy, który będzie to wszystko robił i można znacząco zmniejszyć obciążenie członków zespołu. To inwestycja, która na pewno zwróci się bardzo szybko.

Tyle w teorii -- a jak to wygląda w praktyce? Na licencji MIT dostępny jest Hudson. Jego konfiguracja jest bardzo prosta i współpracuje chyba z każdym popularnym systemem kontrolii wersji ;) Sam używam go na komputerze Mac Mini do kompilacji 3 projektów -- frameworka i aplikacji, które go używają. Jak wiadomo, aplikacje pod iPhoneOS można niestety kompilować tylko pod systemem Mac OS X. Dzięki takiemu rozwiązaniu w kilkadziesiąt sekund od aktualizacji repozytorium mam przygotowanego zipa ze skompilowaną aplikacją, którą mogę pobrać w każdym miejscu na świecie przez przeglądarkę i zainstalować przez iTunes pod Windows. Ma to ogromne znaczenie w zespołach, które mają dostęp tylko do jednego komputera Mac.


Freedoku w druku

11.03.2010 @ 12:45:49 by Rafał Kozik | freedoku

We wrześniu pisałem o Freedoku w wersji do druku. Trochę to zajęło, ale Freedoku pojawiło się w wersji drukowanej!

Freedoku jest umieszczane na łamach miesięcznika "Teraz Zagłębie", ukazującego się w miastach Zagłębia Dąbrowskiego. Poniżej można zobaczyć jak to wyszło (pozwoliłem sobie rozmyć reklamy):


Obrazek

Pojawiło się kilka problemów technicznych z wydrukiem, jednak mam nadzieję, że uda się je rozwiązać w kolejnych numerach.

Jakie dalsze plany dla Freedoku? Na razie żadne, chociaż kto wie, może kiedyś pojawi się wersja na którąś z popularnych platform mobilnych.


Problem z multi-touch w Nexus One

05.03.2010 @ 23:31:30 by Rafał Kozik | sprzęt

Dzisiaj będzie trochę gdybania ;) Zrobiło się głośno o tym, że Nexus One 'gubi się' przy obsłudze multi-touch. Google obwinia HTC za użycie niskiej jakości ekranu dotykowego. Niestety wydaje mi się, że nie uda się tego rozwiązać w aktualizacji oprogramowania. Dlaczego? O tym w dalszej części.