Fejlesztés kategória bejegyzései

Érdekességek, leírások, programozás.

i18n fail

Ha egy alkalmazást több nyelvűre kell tervezni, akkor azt okosan kell csinálni. Például soha ne rakjuk össze részletekből a fordított szöveget, különben így járunk:

A kép egy művelet sikeres végrehajtásátt hivatott volna igényesen jelezni.

Internet marketing

Csinálj egy oldalt egy termékről. Hirdess nyereményjátékot, Kösd regisztrációhoz a részvételt. A regisztráció végén tedd kötelezővé a termék bemutatását. Csak a pozitív hozzászólásokat engedd megjelenni az oldalon.

És kész is a pozitív reklám:)

Webservice készítés Jboss AS 5.1 JBossWS és JAX-WS segítségével

Már órák óta ülök azon, hogy hogy lehet ezt megvalósítani, mert állandóan valamilyen hibát kapok. Legutóbb a következő volt:

setProperty must be overridden by all subclasses of SOAPMessage

Googolai jósda végül megkönyörült rajtam és elvezetett egy JIRA hibajegyhez (https://issues.jboss.org/browse/JBWS-1439). Az utolsó hozzászólásban van a megoldás:

For JBoss 5.1 I needed to add the following jars from [jboss_home]/client (jaxb-api.jar was not available) to [jboss_home]/lib/endorsed:

jbossws-native-jaxrpc.jar
jbossws-native-jaxws.jar
jbossws-native-jaxws-ext.jar
jbossws-native-saaj.jar

De most komolyan, miért kell így hakkolni az alkalmazásszervert, hogy egy alapvető feature-t előcsaljunk?

Update:
Ez most nagyon fájt! Az van, hogy az alkalmazásszerverből 2 verzió van, az egyiknek a nevében a jdk6 szó is szerepel. Na nekem az kellett volna, de nem azt töltöttem le. Ha jól értettem a fórumokat, a jax-ws implementáció más a különböző java-verziókban, emiatt van a zűrzavar. Most egyből ment a webservice is.

Még hogy az informatika nem vicces

Már 5 perce nevetek:
Poén

S hogy mi a vicc alapja:
sql injection

SW dev. ma

Csak én látom úgy hogy az utóbbi évek összes szoftverfejlesztését a következő mondattal le lehet fedni?

Level of Indirection solves every Problem.

Application stack

Az informatika minden egyes területének megvan a maga szépsége. Enterprise környezetben például igen érdekes, hogy hogyan is tud  nagyszámú technológia együttműködni. De azért ember legyen a talpán, aki mindezt átlátja! Megmutatom, mire is gondolok.

Az előbb egy Flex alapú framework leírására bukkantam a DZone-on. Most nézzétek meg: minden egyes doboz egy külön technológia. Divatos és south parkos fordulattal élve: Niceee….
Enterprise RIA with Spring 3, Flex 4 and GraniteDS

Forrás

Hibernate + UTF-8

Jó dolog a hello world, de amikor éles alkalmazást kell írni, akkor azért nagy szívás, ha a weboldalon egy ‘ű’ betű helyett csak egy kérdőjel jelenik meg.

Jelenleg Seam framework-kel dolgozom, ami Hibernate3-at és MySql5.1 pöcögtet. MySql-ben beállítotam a használt betűkészletet ‘utf8_hungarian_ci’-re. A karakterek megfelelő kezeléséhez a JDBC connection stringet kellett a következőképpen kiegészíteni.

jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=UTF-8

A ‘&’ karakter escape karakterrel való helyettesítése fontos!

Informatikai átlagfizetések 2010

Ennyit keresünk Magyarországon. Az árak Jó Magyar Forintban (JMF) értendőek:

Adatrögzítő 1 300 000
Informatikai igazgató 13 100 000
Rendszergazda – szenior 6 800 000
Rendszergazda 4 600 000
Rendszergazda – junior 3 600 000
Rendszerelemző – szenior 7 500 000
Hálózati mendzser 6 900 000
Szoftver mérnök – szenior 10 200 000
Szoftver mérnök 6 300 000
IT specialista 4 600 000
Programozó szenior 7 100 000
Programozó 5 500 000
Programozó – junior 3 700 000
Projekt vezető 7 800 000

Remote debugging

Eclipse alatt igen könnyű az alkalmazásokat debugolni. Elindítjuk a programot debug módban, beállítunk a fejlesztőkörnyezetben egy töréspontot, a program pedig megáll ha odaér. De mi van akkor, ha a programunkat nem mi, hanem egy külön (tipikusan J2EE) alkalmazásszerver futtatja? A megoldás: remote debugging.

A következő pontokban tutorial jelleggel mutatom be, hogyan is lehet ezt használni.

Felhasznált eszközök
Jboss AS 5.1, Eclipse 3.6.

1. lépés: indítási paraméterek
A parancssorba a szokásos run.[bat|sh] parancs után adjuk meg a következő parancsot:

-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n

Ezzel instruáljuk a szervert arra, hogy a 8787-es porton keresztül lehessen megállítani a programot és lekérdezni a program futásának adatait

Megjegyzés JBoss AS 5.1 esetén a /bin/run.conf állományban a JAVA_OPTS="$JAVA_OPTS -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n" sort kikommentezve minden egyes indítás után engedélyezett lesz ez a feature. Windows alatt a változtatások érvényesítéséhez el kell indítani a run.conf.bat állományt.

2. lépés: Eclipse beállítása
Adjunk hozzá egy új debug futtatási konfigurációt a projektünkhöz:

3. lépés: Alkalmazásszerver elindítása
A szokásos módon a /bin/run.sh indításával.

4. lépés: debug mód ellenőrzése
Váltsunk debug perspektívára, és indítsuk el a 2. lépésben elkészített konfigurációt. Ha minden jól van beállítva, akkor az alkalmazásszerver által futó szálak megjelennek a debug nézetben.

5. lépés: debug használata
Innentől kezdve a projektbe berakott brakepointok hatására az alkalmazásszerveren futó kód ugyanúgy megáll, mintha egy egyszerű java-s alkalmazást futtatnánk az Eclipse-n belül.

Memory Leak

Adódott, hogy egy tesztelő környezetet kellett implementálnom, ami többek között a terhelés alatti memóriahasználatot is méri. Amikor azonban többször egymás után lefuttattam a teszteket, egyre több és több memóriát fogyasztott a drága.
Drága Eclipse megint megmentett, mivel létezik hozzá egy Eclipse Memory Analyzer nevű eszköz. Ez nemcsak egy Java Dump vizualizációt adott, de meg is tippelte, hogy mely objektumok okoznak egyre duzzadó memóriát.
Egyébként a megfejtés az volt, hogy a mintaadatok betöltéséért felelős erőforrásobjektum sosem lett eleresztve, csak újra és újra példányosítva. A referenciát kinullázva és dispose() metódust hívval a probléma megoldódot.
Megyek is aludni:)

Follow

Get every new post delivered to your Inbox.

Join 327 other followers