2011. május 27., péntek

A Halálcsillag Design Pattern

(not hungarian? read this post in english - translated by @kkovacs)

A munkahelyemen valamennyire sikerült meghonosítanom a Halálcsillag kifejezést. 4 év alatt többször elmondtam, mint Palik a kegyetlent. Akkor most megmagyarázom, hogy mi is ez :) A következő a lényeg:

  1. Évekig építik titokban akkora pénzekből, amennyi nincs is a földön.
  2. De csak nagyon kevés ember használja, a többi max nézheti
  3. Esetleg sikerül demonstrálni az erejét egy lényegtelen célponton, de egyből utánna jön gipszjakab meg kakukkjenő a kukacbombázóikkal és szétcsűrik. A kevésbé drámai végkimenet az, hogy egyszerűen csak elfogy a pénz és törlik a projectet.
  4. A "2.0" projectet az első tragikus kudarca után lényegében ugyanúgy hajtják végre, lényegében ugyanazzal a végeredménnyel.
  5. Az egész lényegesen több költséggel jár, mint haszonnal.
  6. Ja és baromi lassú is, a Milenium Falcon simán rávert jó egy nap előnyt alig pár fényévnyi távolságon :)
A Halálcsillagra az előző nagyfejes azt mondta volna hogy böszmeség. Totálisan túlméretezték. Azon gondolkodtatok már, hogy mi lett volna, ha csak fele akkora Halálcsillagot építenek, de kettőt? Mondjuk nem tudja totál szétrobbantani a bolygót, csak egy pillanat alatt eltörölni minden életet a felszínéről? Az nem lett volna elég jó?

Pár informatikai projekt azok közül, amiket biztosan ismertek:
  • magyarorszag.hu - ennek valahanyadik 2.0-ás verzióján dolgoztam én is és hát nem esett messze az alma a fájától, de ez hosszú történet... azért volt pár egészen jó dolog is benne mindenkitől jól elrejtve
  • kormanyszovivo.hu - az például igazi gerillamozgalmat indított olcsó drupálos egyestés klónokkal
Ennyi a lényeg, biztosan értitek, minek is szaporítsuk a szót... Boldog pénteket mindenkinek!

2011. április 29., péntek

Firewall vs JDBC

Ma egy egész érdekes dologot találtunk meló közben. Érdekes egybeesésként ez ugyanaz a gubanc, mint amiről az egyik előadó is beszélt a 33degree konferencián, csak ő valami légiközlekedéssel foglalkozik. (hmmm, biztonságban érzitek magatokat?) A probléma alapja az, hogy a firewall-ok eltépkedik időnként a TCP kapcsolatokat. Egészen vicces, a szerver nem kapja meg a kérést, a kliens meg azt hiszi hogy elküldte, köztük a firewall röhög a markába, te meg nem érted miért áll a kliens, miért nem csinál semmit a szerver, és egyáltalán mi a rák történik. Ne tőlem kérdezzétek, hogy miért annyira fontos firewall-t telepíteni például az adatbázisod és az appszerver közé, szerintem ha valaki felhakkolta az appszervered és megvan az adatbázis kapcsolat akkor már régen rossz, de...
Ennek a problémának általában áldozatul esik néhány protokol, a lényegesebbeket említve RMI és valószinűleg minden adatbázis kapcsolat, általában a hosszú JMS kapcsolatok is, LDAP. Amit nem üt, az a HTTP nyilván, mert az bontódik amint lement a kérés és a válasz. Más most nem jut eszembe, ami jól működik vele :-)

Minden protokolra nem tudok orvosságot, de a commons-dbcp képes csekkolni az adatbázis kapcsolatot mielött odaadná a alkalmazás kódnak. Az 1.2-es verzió csak annyit tud, hogy elküld egy dummy kérdést a szervernek (tipikusan egy "select 1") és ha sikeresen válaszolt az adatbázis, akkor adja csak oda a kapcsolatot. Nem láttam még olyat, hogy a validation query elhasaljon, tulajdonképpen kicsit haszontalannak tűnik. Viszont amikor a fenti firewall gubanc beüt, akkor fentakadsz már a validation query-nél is, a kódod meg se kapja a vezérlést. Na erre a problémára ad megoldást a DBCP 1.3-tól kezdve a validationQueryTimeout paraméter. A DBCP 1.4 is már jó egy éve kint van, de amennyire látom még a legfrissebb cuccokban is az 1.2 van. Szóval egyéb hijján, akinek ez probléma, az kénytelen felülbuherálni.

Hát csak ennyi, remélem átérzitek :)

2011. április 11., hétfő

33 degree konferencia, Krakkó - II

Folytatás tegnapról...

Jevgeni Kabanow: Do you really get memory?

Reggel máris kicsit meredeken kezdődött a nap, Jevgeni egy sajnát java-ban implementált virtuális gépről beszélt, szóval jó messziről futott neki a témának, mégis sikerült értelmes dolgot kihoznia. Például az Azul systems félelmetes garbage collectorát, ami a linux kernellel együtműködve egyszerűen kidobja azokat a page-eket, amiken már csak szemét van. Hoppá, erről ti is lemaradtatok? Én igen...

Házi feladat az egész, utánnanézni.

Brad Drysdale: HTML5 Websockets

Erről a témáról már írtam itt, túrkáltam a témát és... én sehogy se vagyok olyan optimista mint Brad a websocketekkel kapcsolatban. Egyetértek azzal, hogy hatalmas lépés a webapp architektúrában, de sehol se tartunk vele. Rövid helyzetjelentés: a chrome-on kívül minden böngészőből eltávolították a websocket támogatást, az IE-t leszámítva mert abban nem is volt soha. Semmilyen proxy-n nem megy át és azt hiszem a firewallok tevékenységét se fogja jól bírni a protokol. A servlet speckóban szó sincs róla, a mod_proxy nem engedi át... hát nem is tudom mennyi idő amíg ez a sok gubanc elmúlik. Azért megkérdeztem az előadót és kitérő választ adott, ami korrekt, én se mernék tippelni ennyi ember elött :-) Mindenesetre az ő munkaadójának, a Kaazing-nek van egy websocket gateway terméke. Szerencsére ezt csak említette, nem marketing-prezi volt, korrektül összefoglalta a technológiát.

A témában éppen most megint nyomulok és a elcsűrt prototipusomat írom újra, szorgalmi feladat ceruzás zöld kicsi egyesért.

Guy Korland: "Same data, any API", making sure your application scales

A szoftver architektúrák fejlődésének vicces bemutatása. Hát igen, ő pedig a Gigaspaces-től érkezett és az ő cuccuk tényleg elég jó trükköket tud. Annyi pénzért...

Nathaniel Schutta: HTML5 fact and fiction

Herr Schutta zseniálisan löki a rizsát a html5-ről is. Mint azt tavaly a w3c-s srácok kijelentették: a html5 nincs kész igazán. Hát most még mindig nem, de nem csak a IE miatt. Gyászosan áll a firefox is, még az Opera alakított a legszebben. És a kutya se használ operát. A video formátumokkal kapcsolatos háború meg csak nyúlik...
Viszont lassan tényleg változni látszik a web, lassan elveszti a jelentőségét a flash, stb...

Venkat Subranmiam: Programming Clojure

A Clojure veszedelmes. Igazi write-only nyelv, mint a perl, amit egy óra múlva már te se értessz. És hát volt is olyan, hogy Venkat kicsit elakadt, hogy vajon hol hiányzik rengeteg zárójel. Pedig a csóka elég rendesen pörög. De nem számít, egy pár dolog igazán zseniális volt a nyelvben és azt ki akarom próbálni. Komolyan, olyan rendszert, amit valakinek át kell adni, ami nem csak az én desktopomon fut, nem mernék írni benne, de ki fogom próbálni.

Házi feladat: prototípusok, nyelvtanulás, mérések.

33 degree konferencia, Krakkó

A héten TVik-kel ketten elugrottunk a 33 degree java konferenciára Krakkóba. Csak mi ketten voltunk magyarok és talán egyéb külföldiből sem volt túl sok, ha leszámítjuk az előadókat. Viszont egy percre sem bántuk, hogy elmentünk, mert az előadók tényleg nagyon jók voltak. Nagy szükségem volt már egy ilyen pár napos cuccra, ahol kicsit távol a mindennapi munkámtól foglalkozhatok végülis a munkámmal :)
Az egész teljes költsége ha jól számoltam a végére úgy 80ezer forint lett utazással, szállással és regisztrációval együtt. Magyar fizetéshez kitalált összeg.

Alapelvek az előadások kiválasztásához: nem érdekel az "enterprise" és a "standard", ezek lejártak és beégtek. Más irányokban keresek tudattágítót.

Vettem pár papíros könyvet is:

No nézzük, előadások...


Linda Rising: Deception and Estimation

Linda Rising arról beszélt nekünk bemelegítőként, hogy az ember totálisan nem alkalmas hardver matematikailag pontos becslésekre. Egyszerűen az evolúciós multunkból adódóan.

Házi feladat nekem: A groupthink probléma megelőzését lökdösni a melóban, amíg nem működik.

Matt Raible: Comparing JVM web frameworks

A legfrissebb web-framework helyzetértékelés és összehasonlítás. Igazából, én nem használok web frameworköt, csak MVC-t és bár utálom kézzel hímezni a html-t, rájöttem arra, hogy ezekkel nem lehet ugyanazokat a trükköket megoldani, amiket a kézzel hímzett html-ben. A kedves ügyfél meg addig nem boldog, amíg pontosan az meg nincs, amit megbeszéltünk. Szóval ebből a szempontból ez a sok framework csak akkor érték, ha az ügyfelet le tudod beszélni a sok ökörségről és jópár értelmes dologról is.

Nathaniel Shutta: Hacking your brain for fun and profit

Rövid howto az emberi agyhoz, hogyan kell használni ahhoz, hogy optimális teljesítményt adjon egész hosszú időn át. Például érdemes aludni, esetleg egyet szunyókálni délután (amennyiben nem lép fel a kirúgás kockázata, de egyébként a legtöbb meeting pont ilyenkor van), sport, satöbbi.
Az ürégnek nagyon érdekes előadóstílusa van, biztos sokat gyakorol :)

Nathaniel Shutta: Going Mobile with JQuery

Ismét ugyanaz az előadó, de ezúttal valami hasznosabb dologgal. Ötlet: miért akarnál külön IPhone-ra,  Windows7-re és Android-ra is külön klienst fejleszteni. Megtehetnéd ugyanezt szimpla HTML-lel is, és ebben segít a JQuery mobile. Úgy tűnik nagyon könnyen lehet vele összedobni kis webappokat és alighanem működni fog offline módban is...

Házi feladat: kipróbálni mit tud.

Shang Shin: Android Programming

Kemény 3 órás Android fejtágító, amin Tvik már majdnem elaludt (a vonaton alvás nem a legpihentetőbb dolog) de nekem nagyon jól jött, mert elég szegényes az android tudásom. Komolyan tetszett az egész. A csóka egyébként Sun-os volt, de az Orékülből nem kért, csinált inkáb egy saját kis java okosítócéget.

Ennyi volt az első napon, a többit megírom máskor mert holnap meló és addig még aludni is kellene, mint arra Schutta úr is rámutatott :-) Fogok is aludni, csak elöbb kipróbálok ezt-azt...

2011. március 31., csütörtök

Új java blogom

Gondoltam egyet és csináltam egy új blogot azokkal a dolgokkal kapcsolatban, amikre mostanában töredékidőmet rá tudtam szánni. A téma java teljesítmény mérések és ezúttal angolul írom. Rémes vagyok angolból, de majd belejövök. Had szokjam, had szokjátok :-)
Szóval itt van: http://dummywarhead.blogspot.com/

Persze ez a blog is megy tovább, de nem hiszem, hogy ezeket a tuningtémákat tényleg mindenki tudná értékelni.

2011. március 21., hétfő

Agile

Az agile nem egy processz vagy fejlesztési metodika, hanem egy hozzáállás. Olyat lehet csinálni, hogy amúgy is agilis hozzáállású fejlesztők olyan metodikát választanak, ami passzol a stílusukhoz, de ha nem agilis fejlesztők választanak ilyen metodikát, akkor az csak nevében lesz agilis, egyébként inkáb az általuk megszokott munkastílushoz fog hasonlítani. Az ember nem gondolkodik mindig azon hogy most éppen milyen fejlesztési metodikával dolgozik.
Magánvélemény rovatunk jelentkezett, további boldog hétfőt! :-)

2011. február 27., vasárnap

mod_cband, mod_bw

A bandwidth throttling kiválló eszköz arra, hogy már a fejlesztőkörnzezetedben átélhesd a felhasználóid fájdalmát az alkalmazás nyomorult válaszidejével kapcsolatban. Hébe-hóba még egy-két bugot is segíthet megérteni. Amikor a localhostról jön a válasz, akkor irreálisan gyors válaszidőket kapsz, éles üzemben ilyen soha nem lesz és amikor párhuzamosan egymással több AJAX interakció is történik, akkor lehet, hogy valamit ráépítessz a válaszok sorrendjére. Pedig tök összevissza az egész. Szóval ajánlom figyelmetekbe a  mod_bw és a mod_cband apache modulokat, ők segítenek olyan tré minőséget produkálni, mint amilyet az éles szerverek :-) Az egyik konfigurációban még két vmware-s virtualális szerverre épített clustert is bedobtam mögé, hogy az is igazán ótvar legyen.