Migrowalem

10 marca, 2012 Dodaj komentarz

Przenioslem swoje wpisy na http://piczkowskipl.blogspot.com

Kategorie:Uncategorized

Micro Cloud Foundry + Maven

9 marca, 2012 Dodaj komentarz

W tym wpisie zainspirowanym blogiem springsource.com stworzymy aplikacje demo z uzyciem Maven.

Wymagania:
Zainstalowany Maven i Git. Sciagniety obraz Micro Cloud Foundry i skonfigurowany STS.
Uruchamiamy obraz z Micro Cloud Foundry

Przy zalozeniu ze nasz obraz zostal skonfigurowany tak ze vmc target: http://api.piczkowski.cloudfoundry.me

oraz ze zarejestrowalismy uzytkownika w vmc jako ”piczmar@wp.pl” z haslem ”enter”

wykonujemy nastepujace kroki

Poszczególne kroki:
1. Sciagamy z Githuba projekt i budujemy Mavenem

git clone https://github.com/SpringSource/cloudfoundry-samples.git
cd cloudfoundry-samples/hello-java
mvn clean package

2. Dodajemy zaleznosc Maven dla Cloud Foundry w pom.xml projektu:

..

<pluginRepositories>
<pluginRepository>
<id>repository.springframework.maven.milestone</id>
<name>Spring Framework Maven Milestone Repository</name>
<url>http://maven.springframework.org/milestone</url&gt;
</pluginRepository>
</pluginRepositories>
<project>

<build>
<plugins>
<plugin>
<groupId>org.cloudfoundry</groupId>
<artifactId>cf-maven-plugin</artifactId>
<version>1.0.0.M1</version>
<configuration>
<server>mycloudfoundry-instance</server>
<target>http://api.piczkowski.cloudfoundry.me</target&gt;
<url>hello-java.piczkowski.cloudfoundry.com</url>
<memory>256</memory>
</configuration>
</plugin>
</plugins>
</build>

</project>

3. Konfigurujemy wlasciwosci Cloud Foundry w projekcie

Mamy 3 alternatywy

* w pliku pom.xml projektu

<configuration>
<server>mycloudfoundry-instance</server>
<target>http://api.piczkowski.cloudfoundry.me</target&gt;
<url>hello-java.piczkowski.cloudfoundry.com</url>
<memory>256</memory>

<username>piczmar@wp.pl</username>
<password>enter</password>

</configuration>

* w pliku konfiguracyjnym .m2/settings.xml
<settings>

<servers>

<server>
<id>mycloudfoundry-instance</id>
<username>piczmar@wp.pl</username>
<password>enter</password>
</server>
</servers>

</settings>

* z linii komend
mvn cf:info -Dcf.username=piczmar@wp.pl -Dcf.password=enter -Dcf.memory=256 -Dcf.url=hello-java.piczkowski.cloudfoundry.me -Dcf.target=http://api.piczkowski.cloudfoundry.com
4. Instalujemy aplikacje na Mmicro Cloud Foundry

mvn cf:push

5. Po zmianach budujemy projekt i uploadujemy na server

mvn clean cf:update

6. Aplikacja jest dostepna pod linkiem http://hello-java.piczkowski.cloudfoundry.me/

7. Aplikacje dzialajace na serwerze mozna wylistowac poleceniem:
mvn cf:apps -Dcf.target=http://api.piczkowski.cloudfoundry.me -Dcf.password=enter -Dcf.username=piczmar@wp.pl

Kategorie:Uncategorized

Grails classDiagram plugin

1 marca, 2012 Dodaj komentarz

Opisany na stronie pozwala wygenerowac dla modelu domenowego diagram UML.

Zeby dolaczyc ten plugin do naszej aplikacji wpisujemy z linii komend:
grails install-plugin class-diagram

Musimy jeszcze zainstalowac GraphViz i dodac do sytemowego PATH folder z binarkami GRAPHVIZ_HOME/bin
lub w projekcie Grails dodac wpis w Config.groovy, np. dla srodowiska deweloperskiego:

development {
...
graphviz.dot.executable = "W:/tools/Graphviz 2.28/bin/dot.exe"
}

W recultacie jesli uruchomimy aplikacje powinnismy zobaczyc nowy kontroler ClassDiagramController

Jesli wejdziemy w jego link zobaczymy wygenerowany klas diagram i menu w ktorym mozna dodatkowo ustawic preferencje pluginu.

Kategorie:Uncategorized

Windchill Info * Engine

7 lutego, 2012 Dodaj komentarz

Jutro wybieram sie do Danii poprowadzić drugi raz (po Nokii w Finlandii) szkolenie z Windchill Info * Engine w Vestas Wind Systems. Tym razem do szkolenia doszła integracja z Cognos 8. Innymi słowy chodzi o tworzenie raportów z użyciem Cognos’a i Info * Engine jako źródłem danych.

Tym razem zdecydowanie za mało czasu na przygotowanie – 2 dni, a biorąc pod uwagę problemy techniczne z treningowym obrazem Vm ware jestem ciekaw jak wyjdzie to 1.5-dniowe szkolenie. Cheka mnie tylko piątka uczestników (troche lżej w porównaniu do Nokii gdzie było 12 osób). Zapewne wróce bogaty w nowe doświadczenia 🙂
Po raz kolejny sprawdza się teoria: jeśli chcesz się czegoś (dobrze ?) nauczyć zrób z tego szkolenie.

W Danii jeszcze nie byłem. Aarhus to wg. wikipedii drugie co do wielkości miasto po Kopenhadze. Już jutro zobaczę je nocą. Mam nadzieje, że aktualnie trzymające mrozy do -15 st. C mi w tym nie przeszkodzą.

— mały update —

Już po treningu. Nie poszlo najgorzej poza nielicznymi problemami sprzętowymi.

Do Aarhus poleciałem przez Kopenhagę. Lądowałem na lotnisku w Aarhus położonym ok. 45 minut drogi autobusem od centrum miasta. Bilet autobusowy kosztował 100 koron (~59 PLN). Jedziemy autobusem nr 925X z lotniska do końcowego przystanku na placu Banegårdspladsen przy dworcu kolejowym.
Potem wsiadamy w miejski autobus linii 1A z Kolt w kierunku Lystrup i wysiadamy na Randersvey. Tam miesci sie Hotel Latour, z którego piechotą w 30 min. jesteśmy już w Vestas Wind Systems na Hedeager 42. Zgodnie z mapką.

Możemy nawet znaleść rozkład jazdy busów tutaj.

Hotel Latour niezbyt interesujący. Mały pokoik z łazienką bez lodówki czy chociażby czajnika, z dziwnym zapachem, w drewnianym budynku nie pierwszej młodości, w którym wszystko skrzypi, internet WIFI za 50 koron na dobę (kolejne doby po 25 koron). Śniadanie chociaż wliczone w cenę noclegu nie powaliło w porównaniu do tych, które za mniejszą kasę można zjeść w hotelach francuskich. Nie polecam tego miejsca, ale na 2 noclegi dało się przeżyć.

Aarhus zaskoczył mnie ogromną liczbą rowerzystów. Praktycznie nie ma tam pieszych a wszyscy poruszają sie rowerami nie zważając na -10 stopniowy mróz. Kolejne zaskoczenie to rozmiar biura Vestas, a właściwie w okolicy były chyba ze 3 duże budynki tej firmy. Widać, że to wiodąca firma na rynku energii wiatrowej w Danii. Ludzie, z którymi sie spotkałem bardzo sympatyczni, a na mieście bez problemu porozumiewałem się w jęz. angielskim. Ponadto w telewizji filmy wyświetlane są w oryginale z duńskimi podpisami (jeśli sa obcojęzyczne).
Miałem mało czasu żeby poszlająć się po mieście ale pstryknąłem pare zdjęć:

Denmark – Aarhus 9-11.02.2012
Kategorie:Praca, Szkolenia

Gorges du Tarn

26 stycznia, 2012 Dodaj komentarz

Będąc w Tuluzie w delegacji w weekend 14.01.2012 postanowiliśmy zrobić sobie gdzieś wycieczkę. Po podpytaniu Francuzów dowiedzieliśmy sie o jednym ciekawym miejscu – konionie Gorges du Tarn.
Tarn to nazwa rzeki, natomiast gorges z francuskiego oznacza gardło. Łatwo wywnioskować co oznacza pełna nazwa tego miejsca.

Po 3h drogi samochodem dotarlismy na miejsce. Rzeczywiście godne uwagi. Wijąc się wąskimi górskimi serpentynami co jakiś czas robiliśmy przystanek, żeby popatrzec na widoki. Otaczał nas niezmącony spokój, natura, skały. W dali w dole w kanione można było słyszec słaby plusk strumienia. Zimowa pora sprawiła, że praktycznie nie było tam żywej duszy. Od czasu do czasu przewinął się jakiś samochód czy grupka wędrowców, a może lokalsów.

Trase na miejsce zacząłem niestety nagrywać gdzieś od połowy drogi, ale widać dokąd dotarliśmy.
Zrobiłem też pare fotek i filmów z wycieczki. Wszystko w poniższych linkach.

Trasa

Filmy

Foty

Kolejnym godnym uwagi miejscem jest ponoć Ardèche, cel podróży na następny raz 😉

Kategorie:Podróże

Samsung Galaxy S + Android 4.0

24 stycznia, 2012 Dodaj komentarz

Wczoraj pierwszy raz pokusilem sie o zrootowanie telefonu z checia zainstalowania najnowszego jadra od Cyanogen z Androidem 4.0. Docelowo chcialem wyprobowac nowe mozliwosci dostarczone od wersji 3.x – wsparcie dla hostingu USB. Mając takie cos moznaby np podlaczyc do telefonu przez USB dysk zewnetrzny, myszke, klawiature itp. Biorac pod uwage ze Samsung Galaxy S ma procesor 1GHz i 512MB RAM moznaby go wykorzystac spokojnie jako maly komputer.

Majac fabryczny telefonik z Androidem 2.3.6 przystapiłem do rootingu zgodnie z instrukcja.
Zaczalem na Ubuntu wykonujac poszczegolne kroki:
1. Sciagnalem obraz kernela z podanego na stronie miejsca.

2. Zainstalowalem Heimdall

3. Zrestartowalem telefon i przy starcie przytrzymując jednoczesnie przyciski Home i volume DOWN uruchomiłem ‚download mode’.

4. Podłączyłem telefon kablem USb do komputera (wazne zeby uprzednio przed restartem wlaczyc tryb debugowania: Settings > Applications > Development)

5. Wypakowałem sciagnietego zipa az do zImage a nastepnie odpalilem komende:
heimdall flash –kernel zImage

Wszystko przebieglo pomyslni, jądro zainstalowało się a telefon zrestartował, uruchomił, tyle tylko, że chwile po wstaniu serwisów (wifi, GSM) zrestartował znowu, i tak bez przerwy: boot, uruchomienie serwisów, shutdown, …

Nieciekawa perspektywa, szczegolnie ze było to jakoś po 2:00 w nocy. Probowalem przeinstalowywac inne kernele dostepne w sieci zgodnie z radami na blogach ale bez skutku. No trudno, zostawiłem go w trybie ‚flight mode’ do rana (o zdiwo tylko w takim trybie sie nie restartował). Jedyny plus byl taki ze teraz system byl zrootowany. W aplikacjach mialem kilka nowych narzedzi jak: Superuser i ClockworkMod Recovery

Rano z pomocą kolegi przystapiliśmy do akcji ratunkowej opisanej tutaj.

1. Sciagnałem wszystkie 4 zipy i umiescilem na wewnetrznej karcie SD w telefonie

ROM: BUILD 14: MultiUpload
Google Apps: v7.1: MultiUpload
Face Unlock: v6: MultiUpload
Google Apps Fixer: Multiupload

2. Zrestartowalem telefon i uruchomilem w trybie recovery (POWER + volume UP + HOME)

3. Z menu wybralem kolejno (przed tymi operacjami dobrze zrobic backup, inaczej wszystkie dane z telefonu zostana usuniete):
wipe data/factory reset
wipe cache partition

(dla jasności: nawigujemy przyciskami głośności a wybieramy przyciskiem POWER)

install zip from sdcard

Nawigowalem do miejsca w telefonie gdzie zapisałem wczesniej zipy i wybrałem zip z buildem (…BUILD14..)

4. Zrestartowałem telefon.
Po restarcie pojawiło sie logo Cyanogen. Myślę sobie ‚OK udalo sie, jest dobrze’. Przedwczesna to jednak byla radość bo telefon rebootował za każdym razem gdy pokazało się to logo i tak bez końca.
Dobra, czytam fora.. czytam.. gdzieś doczytałem, że jest jakis błąd z WIPE i że za pierwszym razem nie działa, że trzeba to zrobić dwa razy.

Druga próba:
1. Zrestartowalem telefon i uruchomilem w trybie recovery (POWER + volume UP + HOME)

3. Z menu wybralem kolejno:
wipe data/factory reset
wipe cache partition

Jeszcze raz, dla pewności:
wipe data/factory reset
wipe cache partition

4. Jeszcze raz instalacja kernela (Build14)

5. Restart

Tym razem poszło dalej, pokazał się kolorowy splash screen i … yuppie!! odpalił się pulpit, serwisy i.. żadnego restartu !!
OK, działa!! Radość była wielka, potęgowana przez nowy wygląd Androida 4.0 i o wiele szybsze działanie w porównaniu z wersją 2.3.6 zainstalowaną fabrycznie.

Pozostało jeszcze doinstalować 3 pozostałe zipy ta samą metodą jaką instalowałem kernel, ale tym razem już bez WIPE.

Wszystko śmiga jak marzenie, kalendarz i lista kontaktów zsynchronizowała sie z Google, ulubiony EveryTrail równiez zainstalował pomyślnie z Android Market. Do tej pory wszystko wygląda OK 🙂

Kategorie:Android, Android

Chata Terego

10 stycznia, 2012 1 komentarz

5 – 8 stycznia 2012. Długi weekend, spędzony jakże aktywnie.
W czwartek 5-go wyruszyliśmy wcześnie rano z Łodzi do Starego Smokowca (Słowacja). Ekipą 8-osobową w 2 samochody, uzbrojeni w sprzęt wspinaczkowy ruszyliśmy w kierunku Chaty Terego – najwyżej położonego w Tatrach całorocznego schroniska. To w nim spędziliśmy kolejne dni. W piątek dołączyły do nas kolejne 4 osoby.
Droga na górę zajęła jakieś 3.5 h

http://www.everytrail.com/view_trip.php?trip_id=1412095&code=b501752ab4dc7e0645e05144026f768e

Zaczynał pruszyć śnieg ale na dobre rozpadało się gdy już dotarliśmy na górę, do tego stopnia, że gdy schodziliśmy na dół ostatniego dnia musieliśmy brodzić po kolana w śniegu (momentami po pas).

6-go (piątek) wybraliśmy się na Baranie Rogi przy bardzo słabej widocznoości (śnieżna zamieć) i silnym wietrze.

7-go (sobota) postanowiliśmy zdobyć Lodową Przełęcz. Niestety z powodu zagrożenia laawinowego odpuścliliśmy i tylko wdrapaliśmy sie na Mały Lodowy Sczyt.

Wędrówki próbowałem nagrać w aplikacji EveryTrail:

http://www.everytrail.com/view_trip.php?trip_id=1412097&code=60127585408d5e41867613f1deda1b31
http://www.everytrail.com/view_trip.php?trip_id=1412096&code=e367a5879b677a503d12237a8a78dc5c

Same trasy sie troche rozjechaly na tych mapkach, jakos GPS mi szwankowal, ale zdjecia sa 🙂 enjoy!

To byla moja pierwsza taka przygoda wspinaczkowa, momentami bylo ciezko i strasznie, ale przetrwalem caly i nie zjadla mnie lawina dzieki Bogu 🙂 Doswiadczenia niezapomniane. No i nauczylem sie paru nowych rzeczy, np paru wezłów i asekuracji.

Ubabrani po pas w śniegu, przy wietrze ścinajacym z nóg i mrozie, na którym palce u rąk kostniały przez rękawiczki, z czekanami i w rakach wdrapywalismy się na Baranie Rogi i Mały Lodowy Szczyt. A wieczorami w schronisku piwko, grzeniec, zupka cebulowa (mniam) i rozmowy o wcześniejszych dokonaniach w ciagu dnia 🙂 bezcenne.

Kategorie:Podróże

Processor Warszawa

13 grudnia, 2011 Dodaj komentarz

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

Kategorie:Programowanie

Agile Development Day

11 grudnia, 2011 Dodaj komentarz

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

Globalny Dzień Code Retreat 2011

4 grudnia, 2011 Dodaj komentarz

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 😉

„…it’s cats that are complicated”

Zdjęcia z wydarzenia dostępne na Picasa Gallery

Kategorie:Uncategorized