Archive for » 2009 «

péntek, november 27th, 2009 | Author: Vagabond

A post in English, because I believe there are a lot of people out there who can use this “fix”.

Let’s start with an example: You have a moderately large library. You have different sections, each section has some subsections and each subsection has a handful of books in it.
You want to make a catalogue from your books. Today is the day when you will process the books in the nature section, animals subsection. You want to get the name of the author, the title and the number of pages in each books.
You work hard, and in five hours, you are finished with all of the 81 books in that section.

Your manager is not satisfied with this, so he thinks for a while, and tell you to change the process. There is one additional step to make: you need to make copy of the whole book, collect the required data from it and then you trash it. He insists that you must do this, so you start working again. As an experiment, you create the same catalogue from the same 81 books.
How long did it take? Let’s see..

In programming terms, the first solution looks like this:

NodeList nl = (NodeList) bookPath.evaluate(doc, XPathConstants.NODESET);

        for(int i = 0;i<nl.getLength();i++) {

            Node n = nl.item(i);

            String str = (String)title.evaluate(n, XPathConstants.STRING);

            str = (String)author.evaluate(n, XPathConstants.STRING);

            str = (String)numberOfPages.evaluate(n, XPathConstants.STRING);

        }

Running this piece of code took 5406ms alltogether. 5 seconds seems to be a bit long, so let’s put in some copying:

        NodeList nl = (NodeList) bookPath.evaluate(doc, XPathConstants.NODESET);

        for(int i = 0;i<nl.getLength();i++) {

            Node n = nl.item(i);

            Node n2 = n.cloneNode(true);

            String str = (String)title.evaluate(n2, XPathConstants.STRING);

            str = (String)author.evaluate(n2, XPathConstants.STRING);

            str = (String)numberOfPages.evaluate(n2, XPathConstants.STRING);

        }

Running this piece (remember, there is one extra step in it for each and every one of the “book” nodes) took: 688ms. It is 8 times faster.

I’ve run this example on a 200kB XML using the built-in XPath library of Java 5 (which is to my best knowledge Xalan).

Something is definitely wrong here. I’ve tried to find out on Google what others think about this, and it seems that there are a lot of people who were running into this problem. I hope it will be fixed in the close future, because this workaround is not at all obvious.

Category: Hobbi, Szakmai  | Tags: ,  | Leave a Comment
csütörtök, november 05th, 2009 | Author: Vagabond

Bookmark a flashes Google Talk elindításához:
Ezt kell beírni az url-hez:

Google Talk Launch

Egy másik hasznos, Mafia Warshoz:

Mafia Wars Calculator

A job fülön futtatva kiszámolja a jobok pénz/energia és xp/energia arányát. 

És egy harmadik, az olvashatóság kedvéért:

Browser Readability
Category: Hobbi  | Tags:  | Leave a Comment
hétfő, október 19th, 2009 | Author: Vagabond

Tegnap elkezdtem a nulláról újra implementálni a Mindgraphet, felhasználva a javascriptben összeszedett tudásom. Egy darabig csak irogattam az új kódokat, kis darab ide, kicsi oda, aztán írtam egy függvényt, amiről úgy gondoltam, érdemes lenne letesztelni. Gyorsan írtam egy tesztet, működött. Aztán, ha már a teszteknél tartottam, írtam pár másikat is, míg végül oda jutottam el, hogy elkezdtem TDD-zni. (Test Driven Development, előbb a teszt, utána a kód).

Tényleg megváltoztatott az a két év, amit ezen a projekten töltöttem el.

kedd, szeptember 29th, 2009 | Author: Vagabond
The good parts

The good parts

A Javascriptet jó ideig csak afféle “játéknak” tartottam. Persze, lehet vele aranyos dolgokat csinálni a böngészőben, de ne vicceljünk már.. Nagyon sokan voltak/vannak ezzel így az informatikában járatos emberek közül.

Az AJAX térhódításával megváltozott kicsit a kép. Egyre többen kezdtek el érdeklődni a javascript iránt, illetve sokan dolgozni is kezdtek vele. Könyvek, frameworkok jelentek meg, hogy megkönnyítsék a programozók dolgát.

Én még mindig tudatlanul éldegéltem a magam kis világában.

Többször is találkoztam az elmúlt években a javascripttel, de valahogy soha nem akartam elmélyülni benne. Először a XUL alkalmazások, majd a Google gadget írás kapcsán kerültem kapcsolatba vele, de nem érdekelt annyira, hogy egy tutorial-nál többet elolvassak róla. Aztán jött a Google Wave, és vele a Javascript megértésének igénye.

Azt kell mondjam, hogy sokat szenvedek vele. Nagyon hozzászoktam a Java-ban az erős típusosság kényelméhez, a jó dokumentációhoz, és a rengeteg példához, amit a neten lehet találni. A Javascriptben a gyenge típusosság miatt az API-k sokkal kevesebb segítséget nyújtanak, ha valamit nem értek, gyakran fél órán keresztül kell a google-t böngésznem, hogy megtaláljam a megoldást, és akkor sem feltétlenül lesz jó, amit találok, legfeljebb egy workaround a problémára.

Mióta elkezdtem olvasni a képen látható két könyv közül a jobb oldalit, ez a helyzet kicsit megváltozott. Bizonyos dolgokat már nem csak használok, hanem értek is, és ez sokkal könnyebbé teszi a fejlesztést. Két nappal ezelőtt sikerült csinálnom egy apró kis javascript kódot is, amivel mostantól tudok majd egyszerűen tdd-ben fejleszteni, és – a könyv segítségével – sokkal gyorsabban és egyszerűbben jutottam el ide, mint amire számítottam.

Szóval van előrelépés. A Wave-es projektem a rengeteg itteni munka, és az otthon még mindig nem bekötött internet miatt nem halad, de legalább a javascriptet sokkal jobban értem már. Úgy sejtem, hamarosan lesz valami, amit fel tudok mutatni a Mindgraph kapcsán – lesz róla itt is egy post.

Category: Hobbi  | Tags:  | Leave a Comment
kedd, szeptember 22nd, 2009 | Author: Vagabond

Holnaptól egy másik csapatban fogom folytatni a team lead-i pályafutásomat, ami valahol elismerés, mert ez a másik csapat sokkal nagyobb.
A mostani projekt lezárul, és ezzel kapcsolatban akarok megosztani egy érdekességet:
A határidő előtt két héttel befejeztük a kódot, és azóta 2 darab hibát sikerült találni az end2end tesztek során, azonban ezek is minimális problémák voltak, szóval kezdem elhinni, hogy lehet értelme ennek az agile fejlesztés dolognak :)

Category: Szakmai  | Tags: ,  | Leave a Comment
szerda, szeptember 16th, 2009 | Author: Vagabond

Az elmúlt napokban a következő dolgokkal foglalkoztam szabadidőmben:
- JavaFx (hobbiból)
- Java ME (telefonra akarok írni egy alkalmazást..)
- JavaScript (A google wave miatt)

Kezdek kicsit szétdarabolódni..

Category: Hobbi, Szakmai  | Tags: , , ,  | Leave a Comment
kedd, szeptember 01st, 2009 | Author: Vagabond

Pár éve már java-ban dolgozom, és bár lassan kezdek más irányokba orientálódni, azért még szeretem és érdekel, hogy mik történnek ezzel a nyelvvel.
A java egyre több kritikát kap, hogy mennyire bőbeszédű, és ennek megfelelően eléggé alkalmatlan arra, hogy gyorsan fejlesszünk benne. Tagadhatatlan, ám úgy látszik, a nyelv fejlesztői is látják ezt, mert a következő kiadásban főként olyan változtatások lesznek, amik a tömörebb megfogalmazást fogják elősegíteni (eredeti link itt):
- Nem kell duplán deklarálni a generics-eket a listák és map-ek esetén
- Egy új, Disposable nevű interface bevezetésével el lehet hagyni egy csomó erőforrás lezáró/felszabadító kódot
- Lehet végre stringeket használni a switch elágazásokban
etc.

Nagyon örülök neki.

Category: Szakmai  | Tags:  | Leave a Comment
csütörtök, augusztus 13th, 2009 | Author: Vagabond

És nem, nem a holttestemről beszélek, hanem a Google Wave-ről. Pár hete jelentkeztem oda is, mint béta developer, de ennyi idő után már nem is vártam, h lesz bármi visszajelzés. Ámde lett, tegnap este kaptam egy levelet, hogy mehetek bétafejleszteni. Ez nem munkahelyváltás, csak egy hobbi, amit a szabadidőmben csinálok, mert érdekel..

Egészen megdöbbentő ez most nekem. Hosszú ideig semmi mozgás, az életem haladt a maga kis kerékvágásában, most meg játék bétateszt, Google bétafejlesztés. Vajon mi jöhet még?

Egyébként a legjobb pillanatban jött a dolog, ugyanis épp lemondtam a Vanguard előfizetésemet, hogy nekiálljak végre a játékom fejlesztésével foglalkozni. Úgy tűnik, előtte wave lesz.. :)

Category: Hobbi  | Tags: ,  | One Comment
szerda, augusztus 05th, 2009 | Author: Vagabond

Az imént kaptam egy levelet, hogy beválasztottak tesztelőnek a Dawntide zárt bétájába. Ez már magában is jó, de igazán a következő részlet tetszett a levélből:

“You may be wondering where the NDA that comes with most beta tests is. There isn’t one, because fundamentally we want people to talk about Dawntide and show things off, and we need to know when something is broken. If people find something wrong with the game, they’re going to tell other people it’s a bad game regardless of any NDA. Feel free to take and post screenshots and discuss the game with your friends.”

“Felmerülhetett benned, hogy hol a titoktartási nyilatkozat, ami a legtöbb bétateszttel együtt jár. Nincs ilyen, mert mi alapvetően azt szeretnénk, ha az emberek beszélnének a Dawntide-ról, és felvágnának vele, és nekünk is tudni kéne, ha valami nem megy. Ha az emberek úgy gondolják, hogy vacak a játék, úgyis megmondják másoknak, bármilyen titoktartási nyilatkozat ellenére. Nyugodtan készíts és terjessz screenshotokat, és  beszélgess a játékról a barátaiddal.”

Nagyon jó hozzáállás! :) Így lesz!

Category: Hobbi  | Tags: , ,  | Leave a Comment
hétfő, augusztus 03rd, 2009 | Author: Vagabond

Mivel a Java nem kifejezetten a játékírók kedvenc nyelve, kitaláltam, hogy megtanulom a C#-ot, és felelvenítem a C++-os emlékeimet.

A C# elsajátítása a Java után kifejezetten egyszerűnek tűnik, bár vannak apró különbségek, amit az őrületbe tudnak kergetni néha. Vettem egy könyvet, C# in Depth címmel, ami alapvetően arról szól, hogy hogyan változott a nyelv az 1-es verzió óta. Nagyon-nagyon hasznos. Fejlesztőeszköz gyanánt a Visual Studio express változtatát használom, ami ingyenes, de jó sok dolgot sajnos nem is tud, amit én szeretnék. Nem tudom, a nem express változat mennyivel okosabb, de ez nagyon messze van az eclipse színvonalától. Az eclipse-hez használható C# kiegészítő ellenben simán gagyi.

A C++ már némiképpen rögösebb. Nagyon rég programoztam benne, és bizony rendesen megkoptak az emlékek. Egyelőre még nem jutottam el oda, hogy könyvet és/vagy netes tutorialt keressek, viszont fejlesztőkörnyezetet már találtam. Mondanom sem kell, nem teljesen triviális ez sem, ám végül a Netbeans C++-os verzióját találtam használhatónak.

Szóval, minden megvan ahhoz, hogy nekiálljak játékot írni.. :)

Category: Hobbi  | Tags: ,  | 3 Comments