2012. április 25., szerda

Java Fight Club, Kanban, Smartphone

A JUM-ot sajnos úgy tűnik nem sikerült újraéleszteni.  Elek Márton, az eredeti ötletgazda és szervező twitjeit Svájcból lehet hallani hébe-hóba, sokan mások is elköltöztek és végül ennyi lett. Sajnálom, mert egyébként egy nagyon hasznos dolog volt. Mindenesetre köszi azoknak, akik csinálták!
Nekem csak kérnem kellett, és ti megcsináltátok, bárcsak mindig ilyen könnyen menne.

Nekem azért hiányzott a klub és nekiláttam egy hasonló találkozónak Brno-ban Java Fight Club néven az iroda csodaszép 5. emeletén. Szóval az alapötlet az annyi, hogy aki van olyan jóarc, hogy valamivel felkészül, azt segítsük meg annyival, hogy nem neki kell az időpontot, helyet, kivetítőt és egyéb technikai dolgokat megoldania, a közönséget ne untassuk azzal, hogy valami marha elkezd kötöszködni az előadóval, kezdjük el idejében a prezentációt satöbbi. Nem voltunk nagyon sokan, úgy nyolcan, az az első alkalomra egész jó.

Első prezentációként Jelinek Tamás beszélt a Kanban-ról. Egész idáig nem jött át nekem miért jó a kanban, a termelésleállások az egészen hajmeresztőnek hangzanak, a legtöbb munkahelyemen a managerem szerintem leszarta volna a termelésleállás okát, inkáb kirúgtak volna csak ne kelljen foglalkozni azzal hogy mi a gebasz.

A második prezit Szöcs Vojtech nyomta Smartphone fejlesztésről, ugyanis szeretne egy mobil klienst az oVirt-hez (én is nagyon szeretnék) Piaci összehasonlítás android vs ios, alkalmazásfejleszés költégei, illetve html5 appok.

Egyébként egészen jó szakmai élet van a Vörös Satyesz Vasgyárban, legalábbis ami a linuxereket illeti, de én nem vagyok igazán linuxer. Nekem a linux csak egy az operációs rendszerek között.

2012. április 18., szerda

iwiw must die

Ma kitudja mennyi idő után elösször jelentkeztem be az iwiw-be, de most is csak hogy megkeressem a regisztráció törlése gombot. (Ugyanis nekiláttak spamelni.) Elszüttyögtem egy kicsit rajta, jól elrejtették a gombot, de nem annyira, mint a faszbook. Ez a kis howto segített, mert totál nem igazodtam ki rajta, hogy mi merre van: http://www.evenorbert.net/2010/10/iwiw-profil-torlese/

2012. április 17., kedd

esti mese: kicsi mock és a memory leakek

Hol volt, hol nem volt...
Az oVirt engine-ben egészen félelmetes mennyiségű statikus kódunk van, statikus változókkal. Ez önmagában még nem lenne baj, persze egy tipikus Util osztály csak statikus metódusokból áll, ilyet kb mindenki csinál. A gubanc talán ott kezdődött, hogy IoC helyett is statikus metódusokat használunk. Pl ha szükséged van egy Dao objektumra, akkor így kéred el: DbFacade.getKakukkDao(), ami egy statikus metódus. Na most mi van akkor, amikor egy olyan kódot tesztelnél, ami ilyen módon szeretne egy DAO-t használni?
Mondjuk egy dummy DAO-t gyorsan összemockolsz easymock-kal, de hogyan tömöd bele abba a statikus metódusba, amit a tesztelendő kódod meg fog hívni? A válasz általában az az lenne, hogy sehogy, dögöljön meg aki írta.
No itt jön a képbe a PowerMock, ami arra az elvetemültségre képes, hogy a classloadered buherációjával lecseréli a statikus metódust. Ez a dolog tette lehetővé azt, hogy az egyébként tesztelhetetlen kódot módosítás nélkül mégiscsak tesztelni tudjuk unit-tesztekkel. Majdnem mindenki boldog volt, amíg N-nél több tesztig el nem jutottunk. Azt hiszem én vettem észre elsőként, mert én buheráltam a sonar-t az oVirt-en. Erről jut eszembe hogy kitettem egy openshift-es gépre a fél évig gyüjtött kódanalízist, ha kedved szottyan olvasgatni elalvás elött. Csak aztán ne nekem panaszkodj, ha rosszat álmodsz :-)
Szóval a Powermock-nak van egy nagyon rossz szokása: rettenetes memory leak-eket csinál a permgen space-ben. Párat talán kijavítottak a srácok, pár új meg talán jött útközben, de akármire is próbáltam felűberelni a Powermock + Mockito párost, mindi maradt egy szép nagy leak. Én viszont akkor is le akartam futtatni a teszteket, szóval a következőket heggesztettem rá a maven buildre:

  • A surefire plugin startolja el a teszteket úgy, hogy mindhez külön VM-et futtasson (forkmode: always)
  • A forkolt VM extra paraméterek között kapjon 2.5 GB memóriát, ebből 2 GB a permgen - na ez agyhalott, de kevesebbel nem futott le

Nos, ez idáig gondolom egy kicsit zavaró volt, de még koránt sincs vége :-D Pár munkatárs arról kezdett panaszkodni, hogy a fejlesztőkörnyezetükben nem megy le a teszt, pedig junkins-ban igen, illetve fordítva, ráadásul hol sikerül, hol nem. Totál összevisszaság :) Nos erről az derült ki, hogy a úgy hozzászokott a drága nép a forkmode=always beállításhoz, hogy egyes tesztek összemocskolták más tesztek futás környezetét, ja és persze a surefire alapbeállítása az, hogy a ahogy felszedte a filerendszerről a teszteket, abban a sorrendben fogja végrehajtani. Ez kicsit hülyébb a random sorrendnél :-)

A jelenlegi helyzet az, hogy az embereknek lerúgta az agya a láncot és visszadobják a teszt patcheket, ha powermock van benne. Szopódás, egyre nehezebb patcheket átverni a bürokrácián.

A tanulság: írj tesztelhető kódot, csínján a statikus dolgokkal.

No... itt a vége, fuss el véle. Aludjatok jól, álmodjatok EJB-ket. (vagy mi a f.szt)

2012. április 6., péntek

komplexitás - röviden

A komplexitás nem az érték része, hanem az áré.

Szerintem. Csak ennyit akartam mondani, kérem kapcsolja ki. Boldog pénteket!