2007. április 26., csütörtök

Funkcionális teszt nyűgök

Nekifutásból megfejeltem a Selenium korlátait:
  • https support csak a 0.9.x-SNAPSHOT verzióban van, amihez viszont plugin nincs. Persze lehet űberelni egy kis hackeléssel, kockáztatva hogy beleölök X időt és mégsem fog működni a régi plugin az új szerverrel
  • A flash elemek által generált eventeket a selenium-ide nem veszi észre, ha sok ilyen van, akkor nem lehet produktiívan használni azt sem, ott tartunk ahol a http-unittal.
Nézzük a pozitív oldalát: van hová fejlődni. Megérne még talán egy próbát JMeterrel a proxy-s dologgal megpróbálni, de az load testre van kihegyezve, nem funkcionálisra.

2007. április 24., kedd

Tranzakciómentes övezet

But eBay's example suggests that living without transactions is far less impossible than many people think.
Van élet tranzakciók nélkül is, mint ahogy Martin Fowler is írta az e-bay-ről, de nagyon nem könnyű. Szóval ha valaki mégis meggondolná hogy neki ilyen nem kell a rendszerébe: de, kell.

Memetika II

Múlt héten halaszthatatlanul fontos adóügyben betértem egy ex-munkaadómhoz, ahol azóta új tanulságos képeket tettek ki, az egyiken ez a felirat áll (elnézést ha nem pontosan idézem)
Az hogy szükség van rád, még nem azt jelenti hogy fontos vagy.
Szeretem amikor valami ilyen zabolátlanul őszinte. Ez a mém ugrott át a képről az agyamba, az agyamból a blogomba, onnan a ti agyaitokba, hogy hozzáadódjon a többi mém tömegéhez és ezzel módosítsa a képet a világról amiben élünk. Volt még pár kép, hasonlóan mellőzve minden hízelgést a munkavállalók felé, ez ragadott meg leginkáb.

2007. április 23., hétfő

Szakmai etika II

Idézet a HUP-ról, mert nagyon fején találta a szöget a marketing-szöveggel kapcsolatban valaki.

Amikor egy gyártó azt mondja, hogy a terméke 99.99999...%-os rendelkezésre állást biztosít, azt nem lehet ellenőrizni. Szvsz nemcsak a közönséges vásárló nem tudja ellenőrizni, hanem a gyártó sem.

Van egy ilyen törvényi szabályozás a pénzügyi világban, itthon is, hogy senki nem állíthatja azt hogy a hozam garantált, és mint kiderült az érintett cégek csalók voltak. A hozam soha nem garantált.

A rendelkezésre állás sem garantált. Például kedvenc egykori szerver hosting szolgáltatóm egy alkalommal elvesztette a befizetési bizonylatot és lehúzta a hálózatról a szervert. Ennél csak az volt durvább, hogy miután telefonon sürgettem őket hogy dugják szépen vissza, csak azután voltak hajlandóak visszadugni, hogy bement az irodába náluk a számlázási osztályra valaki és előkereste a papírt. Elmondom mennyi idő volt mindez: 1 hét.
Kérlek titeket, azonnal vegyetek valamit a Ultraweb kft-től, a verseny-alapú gazdaság törvényeinek cáfolataként :)

2007. április 21., szombat

Acegi OpenID support

Az Acegi security OpenID támogatást kapott. Király, ezzel se nekem kell foglalkozni :) Várom az OpenID technológia robbanásszerű elterjedését a java webalkalmazásokban.

2007. április 20., péntek

A Cluster legenda

Egyszer azt olvastam valahol, hogy a szerverek áramfogyasztása teszi ki a teljes világ áramfogyasztásának 1 százalékát. Persze nem biztos hogy igaz, de ha mégis...

Itt van a melóm, persze top tartalomszolgáltató, és biztos nem vinné el egy asztaligép az alkalmazást az összes felhasználójával, de mégis inkáb az amerikai autóipar tervezési mintái érződnek az egész céges világ clusterein. Amikor a hummer a keskeny európai erdei ösvényeken. Túlméretezett, kihasználatlan, kihasználhatatlan.

2007. április 19., csütörtök

Szerintem

Szerintem szóljon bele még valaki, hogy még jobb döntés szülessen.

Optimista vagyok mint állat.

2007. április 18., szerda

Unit tesztek idővonatkozásai

Mind a TestNG mind a Junit 4.x támogatja a teszt futásra tett timeout-ot, ami hasznosnak látszik amikor kritikus kérdés a művelet idő igénye. Az idő-igény az valahonnan a számítás-igényből származik, és innen kezdve az ember már sejti hogy egy művelet futási idejét nem lehet csak úgy megsejteni, mert java esetében nagyban függ a virtuális gép paraméterezésén is, a processzorról és a többiről nem is beszélve.
Emellett interface-re írt tesztek esetén nagyon kevés értelme látszik a timeout-nak, hiszen az interface nem tartalmaz elvárást az implementáció futási idejére. Arra a futás időre amiről az derült ki az elöbb hogy csak homályos arányszámokban sejtjük.

Következtetés: a timeout inkáb arra jó hogy lockolás és egyéb problémák miatt ne ragadjon be a teszt a CI szerverbe, hanem inkáb hasaljon el, ehhez viszont bőven nagy időkorlátot kell megadni, amit a leggagyibb implementáció se tud alulmúlni. Performance tesztre nem igazán oké.

Mekkora havaj amikor vannak junit tesztek, most már nem fogom engedni hogy bármi bajuk essen :)

2007. április 12., csütörtök

Continuum 1.1 preview

Alpha release elött áll a continuum 1.1, aki türelmetlen, vagy akinek nagyon fáj a foga az eddig nem támogatott perverz SCM implementációkra (mint én) annak rendelkezésére állnak nightly release-k, egész stabilak.
Az újdonságok közül:
  1. Project csoportok.
  2. Notifier-ek projecte csoportokra és projectekre is.
  3. Finomabb role kezelés, már lehet project csoportonként kiosztani különböző szerepeket (admin, fejlesztő, felhasználó)
  4. Végre működik azzal a bizonyos PiciPuha verziókövetővel, ami annyi fejfájásom és minden fejlesztési processz probléma kimeríthetetlen forrása :)
  5. Emberbarátibb schedule szerkesztő felület
  6. A logót már a company POM-mal lehet beállítani, ez spec nem mindig jön jól, de talán sikerül rácsábitani a népeket a company POM-ok megírására
  7. Mint már írtam régebben, a maven 2 projecteknél ha van SNAPSHOT dependency, akkor akkor is buildel ha nincs változás a forráskódban, helyes :)
Szóval ajánlom mindenkinek a figyelmébe, mert ez már egy egész jó dolognak igérkezik, a maven 2 integráció terén mindig is verhetetlen volt.

2007. április 9., hétfő

A war overlay és a jetty plugin nehézségei

Egyes esetekben (pl OpenLaszlo alapú hegesztések) kénytelen az ember egy másik project war filejába belegyömöszölni a saját cuccát. Erre a maven tök jó megoldást kínál, egyszerűen csak adjuk meg dependency-ként a külső war file-t és a scope legyen runtime, a típus pedig persze war. Ekkor a war plugin tudja majd a dolgát és jól összemergeli a kettőt, persze itt még van mit paraméterezni. Ezt hívják war overlay-nek.
A gegasz már ott elkezdődik amikor a mindenki kedvence 'mvn jetty6:run' parancsot kiadjuk, mert a jetty6 plugin figyelmen kívül hagyja ezt a dependency-t, futtathatunk viszont egy 'mvn jetty6:run-exploded' parancsot, ez összeállít egy war-t a war pluginnel, kicsomagolja és végül elindítja rajta a jetty-t. A dolog két fájó pontja:
  1. Nagyon lassan indul el, főleg ha a war file mérete nagy
  2. Nem updateli a tartalmat
Erre az elegáns megoldás az lenne, ha a jetty6 plugin tartalmazna egy background thread-et, ami szinkronban tartja a jetty kicsomagolt war fáját a forráskóddal. Ezt viszont egy bash parancsból is egyszerű megoldani. Ilyesmi:
while true; do cp -ru src/main/webapp/* target/${artifactId}; cp -ru target/classes target/${artifactId}/WEB-INF/classes; sleep 1; done
Kicsit sem elegáns, legkevésbé sem portolható (de hát a vindózerek élete amúgy se játék és mese), de a túlélésre elég. A második bajt workaroundolja, az elsőt meg túléljük mert innentől már csak egyszer kell elstartolni.
Ki lehetne pofozni ezt a jetty plugint, például még mindig 6.0-beta17 verzióval megy a legfirssebb kiadás, pedig a fejleszés lassan már 6.2-nél tart. Miért hagyhatják ilyen elhanyagolatan a webfejlesztéshez leghasznosabb plugint?

2007. április 3., kedd

Szakmai etika

Ma ez a szó ragadt meg a napi pörgés közben, ezt orvosoktól halljuk leginkább, én most elösször hallottam IT iparággal kapcsolatban, és arra gondoltam hogy ez a kifejezés egy pozitív mém, amivel minden erretévedő agyat meg kellene fertőzni.
Egy fáradt percemben tett kijelentésemmel ellentétben még csak 7 éve dolgozom hegesztőmunkásként, ami lényegesen kevesebb mint pármilliárd, de azért elég sok :)

2007. április 2., hétfő

Ennyi.

1,795.00 USD

=

331,830.08 HUF

Ha bárkit érdekelne mi ez, nos ez a JavaOne 2007 early-bird regisztrációs dijja forintba átszámolva.
Tacit knowledge (bocsi, denem tudom hogy mondják magyarul): Az a tudás, amit nem lehet elmondani, leírni, például az úszás, palacsintasütés, kernel hackelés. Attól hogy elolvastad a manuált, még nem tudod megcsinálni, viszont ha keményen próbálod persze rájössz magadtól. Tacit knowledge nem terjed a mainstream médián keresztül, könyvek, oktatófilmek, ilyesmi teljesen alkalmatlan rá. Forum, irc, talán inkább, személyes beszélgetés közben viszont ragadós.
Szóval ennyi az ára.

Többek ezért sajnálom én hogy például a magyar openlaszlo közösség ennyire csipkerozi.
Lehet elmegyek mégis a newtech meetup-ra, tudom hogy nem szivesen lát ott pár ember, de hát ha ennyit megtakarítok a tacit knowledge-re szánt költségekből :)

Maven fan klub hirek

Kicsit gyorsult a release-tempó a maven csapat háza táján. Remélem nem csak áprilisi tréfa hogy hat héten belül látunk egy alfát a maven 2.1-ből. Én már nagyon várom, bár az említett függőségi gubancot már kigubancoltam.

A héten nem tanítják a jó programozó elengedhetetlenül szükséges tulajdonságait az egyetemen, remélem lesz időm valami frankót hegeszteni.