2008/09/25

jtechnics.anzix.net

El vagyunk költözve. (Elvileg már rég azon a domainen működött minden, de most a motor is változott bogger.com-ról WP-re.)

2008/08/27

Next Season

Vissza a satupadhoz. A legaktuálisabban futó dolgok:

1. Indul a JUM második évadja, lassan beindul a szervezés. Előadókat keresünk villám- és nagyelőadás kategóriákban.

2. Nyáron elég sokat szöszöltem egy CLDC 1.0/MIDP 1.0 programmal (ne nevess, az én telefonomon csak ez fut), ami a BKV menetrendet jeleníti meg, és útvonaltervet számol. (Helló Dijkstra). Csak a környékbeli buszok/villamosok vannak bent (mintegy 10-12 járat), de azokra meglepően használható sebességgel számol. Sajnos a BKV most variálja át a teljes menetrendet, szeptember 6-ig várni kell, hogy újra érvényes változatot tudjak buildelni. Addig pár apró hibát ki kell javítani, és majd a menetrendeket frissíteni.

Úgy tűnik simán el tud futni pl. egy teljes éjszakai menetrend egy primitív mobilon is (egy Symbian-on, meg talán a teljes is)

3. Véletlenül hozzájutottam az Effective Java második kiadásához Joshua Bloch-tól. A Java One-on állítólag ez volt az egyik legkeresettebb könyv, és az első néhány lap után tényleg izgalmasnak tűnik. Remélem marad időm tovább jutni benne.

2008/07/17

GregorSamsa

   /**  
     * As Gregor Samsa awoke one morning from uneasy dreams he found himself 
     * transformed in his bed into a gigantic insect. He was lying on his hard, 
     * as it were armour plated, back, and if he lifted his head a little he 
     * could see his big, brown belly divided into stiff, arched segments, on 
     * top of which the bed quilt could hardly keep in position and was about 
     * to slide off completely. His numerous legs, which were pitifully thin 
     * compared to the rest of his bulk, waved helplessly before his eyes. 
     * "What has happened to me?", he thought. It was no dream.... 
     */
    protected final static String DEFAULT_TRANSLET_NAME = "GregorSamsa";
(Részlet a hatos JDK-forrásából (Igazából Apache-Xalan örökség, de benne van))

2008/06/17

Sun fejlesztői nap (aka. Open Source konferencia)

Előszőr is a szervezésről. A biciklivel érkezők pólót kapnak, őrzött biciklitároló, a parkban kint sörasztalok kávézás/ebéd idejére, a szünetekben kivetítőkön JavaOne videók, stb. Lehet, hogy én könnyen megvehető vagyok, de mindenesetre néhány ilyen ötlet után már azt érzem, hogy itt nem csak egy éves rutinrendezvényről van szó, hanem a szervezők tényleg leültek gondolkodni, hogy mivel tudnák jobbá tenni a rendezvényt. Kis dolgok, de mintha fontos lenne az egész, hogy ott vagyok. Én ugyan a tavalyi hasonló rendezvényen voltam előszőr, de azt az idei magasan felülmúlta.

Az előadások. Ide persze jön a szokásos mantra. Kezdek rájönni, hogy nem az előadásokkal van a baj, hanem velem. Én nem a tipikus konferencia előadásokat szeretem, hanem a technológiai szőrözéseket, amikre viszont nem az ilyen konferenciá való, hanem inkább a JUG találkozók. Pl. az általános MySQL előadás helyett sokkal szívesebben hallgattam volna olyan előadást, mint pl. a Boros Péter tartott a Solaris virtualizációjáról (Ami a sok kérdés alapján nem csak nekem jött be megint).

(Kitérő: Arra jöttem rá, hogy engem egyáltalán nem zavar, ha nem tudom, hogy pontosan hogy néz ki az i386 architektúra, és hogy működik a privilégium szintek közötti átjárás. Nem kell minden részletében elmagyarázni. Az előadásból kb. így is megtudom, hogy mire megy ki a játék és mi lehet a probléma. A logikája a dolgoknak átjött. Talán jobb is néha a közönség ismeretanyagának fölé lőni mint alá.

Vagy nem.)

A másik, aminek mindeképpen utána kéne nézni az a DTrace Advanced Visualisation Environment (DAVE), amit Simon Ritter demózot, de egyelőre még nem találtam meg a letölthető forráskódját. Aki nem lett volna ott, ez egy Swing-es alkalmazás, ami egy Java programból DTrace-el kigyüjtött infókat vizualizálja. A Demóban pl. egy gráfot láttunk, ahol a csúcsok az osztályok függvényei voltak az élek pedig a hívás láncolat. (Plusz egyéb infók, hogy mit hányszor).

A Kaukázus koncert meg méltó zárása volt a napnak. Mert igen, én kalapot emelek, ha az egyik legnagyobb IT cég meghív egy zenekart, aki köztudottan globalzicáció és kapitalizmus kritikájú számokat (is) ad elő. Mintha tényleg nem csak üzlet lenne az Open Source, hanem valami más is. És igen, csak jobb lett a hangulat, hogy amíg a JAVA nagy része fent ült a lelátón, a + YOU pedig bement a zenekar elé táncolni.

Most pedig belinkelek egy YouTube videót, mert az nem is blog, aki nem is tesz meg. Mégha nem is ez a kedvenc számom, hallgassatok Kaukázust.




Disclaimer: amikor nincs más választásom biciklivel járok munkába (és legtöbsször nincs más választásom), és jó párszor hallgatok a Kaukázust (és legtöbbször jópárszor). DE: egy volt kolegának is ez nap volt az apropó, hogy kölcsön kérjen egy biciklit és tekerjen a városba, és a koncert után fogadkozott, hogy másnap letölti. Igaz, egy másik kolega viszont csak délelőtt volt, de pont a konkrétumokat hiányolta az előadásokból, meg az új infókat.

2008/06/04

Jazoon or not Jazoon

Ha jól számolom 17 nap múlva kezdődik a Jazoon, ami a JavaPolis mellett a másik legnagyobb Java-s konferencia Európában. Azonban míg tavaly a munkahelyem hívott meg a TSS Symposium-ra, most ha mennék az utazást/szállást mindenképpen fizetnem kéne (a regisztrációra JUM révén lehetne kedvezmény kapni).

Úgy hogy most azon gondolkozom megérne-e nekem egy utazást egy ilyen esemény. Érdemes-e egyáltalán konferenciára járni? Mondanak ott olyat, amit nem lehet megtudni jóval előbb blog-okból és demókból (vagy utána a publikált fóliákból/videókból)?

A tapasztalatom az, hogy az ilyen eseményeken, általában általános bevezető jellegű előadásokat tartanak, ami akkor jó, ha még semmit nem hallottál a témáról, de továbbképzésnek sokkal kevésbé alkalmas. Persze nem jártam még olyan sok Java konferencián (az igazat megvalva még csak egyen voltam), nem tudom általában milyenek.

Nézzük előszőr is a programot, mire mennék el:

Első nap:

Az első előadás-körben nincs olyan, ami nagyon csábítana a pontos érkezésre. OpenID és GWT, de ezekről már túl sok előadást hallottam. A következő kör már többet ígér: szó lehet SAML-ról, amivel régóta szertnék részletesebben foglalkozni, de a buzzword gyanús Scala, Ruby, Erlang vs. Java tematikájú előadás is izgalmas lehet.

Aztán ismét nehéz választani. Jobb híján egy DSL vagy egy Comet előadásra ülnék be valószínűleg. Végül a nap zárásaként egy Swing Application Framework teljesen jó választásnak tűnik.

Második nap:

Itt már újra a bőség miatt nehéz a választás. A Parleys.com-os előadás (JavaFX, Flex, AIR) állítólag már a J1 en is nagyon jó volt, de az Agile Testing-en kívül mindegyik érdekel (Spring 2.5, JAX-RS, JBI ). Utána egy JCR 2.0 lenne a választott. Aztán megint jobb híján ülnék be a Glassfish v3 Integration Profile-ra. A következő lehet a WS-TX, és utána megint semmi. Esetleg a JavaFX vége.

Harmadik nap:

Az első két előadást azt hiszem a Grails-es duplával tudnám legkielégítőbben letudni.
A délután meg valószínű Java Puzzlers és eBay architectura lenne benne.

A választék tehát közepesen erős. És vannak még a BOF-ok, amikre azonban még mindig lehet jelentkezni, ezért semmit nem lehet róluk tudni, pedig azok még jók szoktak lenni.

Annyira azonban nem erős, hogy egyértelműen eldöntse a kérdést: megéri-e a pénzt és a fáradságot, vagy inkább vegyek ki helyette egy hét szabadságot, és csináljak meg végre néhány régen tervezett prototípust...

2008/05/28

Toplink bug II.

Újabb szép Toplink Essentials bug vett el egy (eddig) egy napot a projektünkből. Prototípus projektet még nem sikerült csinálni, de jól reprodukálható, és ismét a leszármaztotott osztályok mint entitások körül van a gikszer, csak most a belső cache táján. A szépségét jól jelzi az, hogy ha a tesztelés két lépése között újraindítom a Glassfish-t, akkor minden megy, ha nem, akkor OptimisticLocking exceptiont kapok. Előtte mg utána csak persiste és find-van, de a find hol a szülő, hogy a gyerek entitásra keres rá.

A workaround egyelőre a Toplink level 2 cache-nek kikapcsolása:

<property name="eclipselink.cache.shared.default" value="false"/>

De most épp valami hasonló hiba néz ki a kódból, amit még nem derítettünk fel, úgyhogy lehet, hogy ez se segít. Egyébként EclipseLinke M7-tel a helyzett ugyanez. Lehet, hogy Hibernate JPA-val is ki kéne próbálni, de az meg a kissé bonyolult entitás struktúránkba hal bele (Bizonyos dolgokat annotációval, másokat XML-ből állítunk be).


2008/05/19

WTF: Interface Equinox módra

Sajnos az OSGi nem tartalmaz szabványos interface-t a konzol szolgáltatásokra. Konzolja azonban szinte minden OSGi frameworknek van, és általában ezeket valahogy ki is lehet terjeszteni, hogy saját parancsaiddal bővítsd a rendszert.

A Felix-ben pl. a SehllSerivce-t kell implementálni:
public interface ShellService
{
public String[] getCommands();
public String getCommandUsage(String name);
public String getCommandDescription(String name);
public ServiceReference getCommandReference(String name);
public void executeCommand(
String commandLine, PrintStream out, PrintStream err)
throws Exception;
}

Ez a dokumentáció nélkül is körülbelül érhető. De hogy csinálja mindezt az Equinox?

Nos előszőr is implementálni kell egy CommandProvider interface-t. Ezek után pedig minden metódus, ahol a metódusnév _-al
(aláhúzással) kezdődik automatikusa a konzolból is elérhető parancs lesz. Az én konzervatív OOP-s lelkemnek ez már határeset.
Jó, jó, legyen egyszerű, de nem gányolás ez kicsit?