Mostanában szabad pillanataimban a Cassandra adatbáziskezelőt próbálgatom. Ez amolyan szakmai kirándulásféle nálam, mindenféle konkrét cél nélkül kipróbálok dolgokat. Nem jutottam még messzire vele, tényleg a bemelegítő gyakorlatok: működtetés, programozás, őszintén szólva nekem a thrift is teljesen új volt - bár nem újszerű, engem a dolog valahogy nagyon emlékeztet a CORBA-ra, de nem jutottam ezzel se olyan messzire, hogy elkezdjem osztani az észt két kézzel.
Eddigi olyan igazi járatlan út szaga van a Cassandrának. A dokumentáció felületes és jobbára törött, az API minden release-ben változik, programozni kicsit hosszadalmas és fapados érzés, a hibaüzeneteihez tolmácsra van szükség. A legtragikusabbnak az üzemeltetés tűnik.
Viszont amire kitalálták, arra ailghanem jó: nagy mennyiségű adat analízis jellegű feldolgozása. Majd ha befejeztem a teszteket akkor valószinűleg én is azt mondom majd, hogy baró és tetszik. De legtöbb embernek nincsen annyi adata, hogy ilyenekre legyen szüksége. Ez egy igencsak speciális eszköz. Kéremszépen legyenek szivesek megtekinteni a wikipédiát, ami kiválló példa arra, hogy a legtradícionálisabb LAMP architektúra is képes top 10 weboldalra jellemző terhelést elvinni. A lenézett és döglődő MySQL szolgálja ki.
Komolyan tartok tőle, hogy a NoSQL felhasználók jelentős része valójában csak a szép új technológia miatt nyomul az új generációs adatbáziskezelők körül.
2011. július 12., kedd
2011. július 7., csütörtök
Indigo - eddig
Nagyjából átálltam az új eclipse release-re minden projectemmel, pár észrevétel eddig:
- Mi a szösznek van még mindig benne a CVS kliens? Ki használ CVS-t 2011-ben?
- Viszont defaultból benne volt az egit, az szép.
- Szintén az alap csomagban benne volt a maven plugin is (m2eclipse) - na végre, csókolom, 2011 van!
- Megintcsak az alapcsomag része google által bedobott GUI designer, amit a heliosba is belegyömöszöltem, de ebben alapból benne van. Öszintén szólva az egyetlen dolog amiért hajlandó voltam átbóklászni néha netbeans-re az a GUI designer volt, viszont ez jobban tetszik. Végre egy használható GUI designer swinghez, SWT-hez és azt hiszem GWT-hez is működik.
- Egy csomó szép új plugint felfedeztem. Ilyenkor néha elszáll az agyam és próbálgatok, de az igazat megvallva nagyon kevés plugin éli túl nálam az első hónapot. Meglátjuk hogy lesz most.
- Egyes pluginokat nagyon nehezen sikerült beszerezni. Pl a google web toolkit plugint égen földön kerestem a marketplace-ben, aztán a GWT UI létrehozásakor felajánlotta hogy letölti.
- A legtöbben az eclispe marketplace-t használják (én is preferálom) pluginok beszerzéséhez. Hát ez az utóbbi időben a legváltozatosabb hibákat generálja a szerver oldalán.
Szóval 2011-ben is, eclipse az IDE.
2011. július 1., péntek
Ez nem egy magyar blog
Ma lépett életbe Magyarországon a sajtótörvény és aki valamennyire is ismer, az sejtheti rólam, hogy nem regisztráltam be ezt a blogot. Következő okokból:
- Egyszerűen lusta vagyok hozzá. Még a postára se járok el, nyilván majd ugrok minden alkalomra ha valami jó kis nyomtatványkitöltésre nyílik kilátás :-)
- A törvény szövegéből nem értek egy kukkot sem. Nem derül ki egyértelműen hogy rám és a blogomra vonatkozik-e vagy sem. A nagy általános érvényessége alapján a marslakókat is be lehetne perelni vele.
Persze a törvény nem ismerete közismerten nem ment fel, de viszont nem kellene egy tesztelő csapat a törvényekhez is? Hogy érthető és használható-e? Nem ad lehetőséget hatalommal való visszaélésre, stb? - A blogot nem Magyarországról szolgája ki a Google. Köszi Google!
Amúgy sem magyaroknak írtam, hanem csak úgy magamnak és az internet járókelőinek. - Pár héten belül befejezem a munkát Magyarországon és Csehországba költözök, Brno-ba. Az ismert médiacéget elcseréltem egy ismert technológiai cégre (Linux, Java, satöbbi, szóval nekem való helynek tűnik).
Mondta is valamelyik űberführer, hogy ha nem tetszik el lehet menni. Na, szóval én már megyek is.
Szóval úgy gondoltam, hogy ezek alapján rám biztosan nem vonatkozik, meg ha igen, akkor pár héten belül már nem. Nemsokára külföldi leszek...
2011. május 27., péntek
A Halálcsillag Design Pattern
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:
- Évekig építik titokban akkora pénzekből, amennyi nincs is a földön.
- De csak nagyon kevés ember használja, a többi max nézheti
- 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.
- 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.
- Az egész lényegesen több költséggel jár, mint haszonnal.
- 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 :)
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.
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:
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...
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:
- Javascript Patterns - hát igen, sajnos szükség van arra, hogy rendre szoktassam magamat ezen a téren
- The Myths of Innovation - a nálam szokásos tech-szkeptikus kategóriában
- 97 Things Every Software Architect should know - fogalmam sincs lesz-e ilyen szép címem valaha, túl nagy pofám van hozzá, de azért megpróbálok okosodni arról, hogy milyen egy jó architekt
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...
Feliratkozás:
Bejegyzések (Atom)