Archív January, 2009

Překonaný ResourceBundle, Spring MessageSource vítězí v prvním kole KO

Tuesday, January 27th, 2009

Tento článek mám ve WordPressu rozepsaný snad už rok. Jeho původní název zněl “ResourceBundle – stačí Javě beze změny?”. Plno věcí, které jsme původně jako Java vývojáři dělali my, postupně uzpůsobujeme tak, aby je mohli dělat web designeři. Na prezentační vrstvu zcela jistě patří lokalizované texty a zprávy, pro které standardně používáme ResourceBundly Javy, které se načítají z property souborů. Ideální model pro web developery je iterace: navrhnu stránku, vložím text do property bundlu, uložím, reloadnu stránku a kouknu jak to vypadá. V tomhle jednoduchém scénáři jsme však narazili hned na několik problémů.

Standardní PropertyResourceBundle se obvykle získává takto (to je mmch. cesta zmíněná v dokumentaci ResourceBundle):

Takto načítaný property soubor (“MyResources.properties”) musíme mít na classpath (kde samozřejmě není editovatelný) a musíme jej mít ve Ascii formátu zkonvertovaný utilitou Native2Ascii. Dalším problémem je sekvence, ve které se hledají konkrétní lokalizované varianty bundlu. Díky tomu, že Java původně vznikla hlavně pro desktopové aplikace se do posloupnost hledání bundlů dostává i bundle pro systémové locale stroje, na kterém aplikaci spouštíme. V případě volání metody getBundle s Locale(“cs”,”CZ”) se na anglickém Ubuntu hledá property bundle v této posloupnosti:

  1. messages_cs_CZ.properties
  2. messages_cs.properties
  3. messages_en_US.properties
  4. messages_en.properties
  5. messages.properties

Tuto věc jsem ještě před rokem nevěděl, a to možná také proto, že není nijak zmíněná v dokumentaci Javy.

Tak se nám těch problémů nakonec sešlo docela dost – na to, že řešíme takovou hloupost jako je lokalizace – že?

(more…)

Oracle, od slova věštit

Friday, January 16th, 2009

Ano, ano. Dnes jsem po nasazení nového buildu opět strávil plodné čtyři hodiny věštěním z křišťálové koule zvané Oracle Application Server. Ještě ke všemu na prostředí, ke kterému není přímý přístup. Kód, který máme již na tuctu instalací, který bez problémů běží i na dvou testovacích strojích s “přibližně” stejnou konfigurací na produkci ne a ne.

Výsledkem mého pátrání bylo to, že pokud se na konkrétní verzi OC4J zavolá metoda getParameterMap() dřív než některá z metod getParameter, getParameterNames nebo getParameterValues, tak je výsledkem prázdná mapa, přestože se v requestu parametry nachází.

Protože nejsem žádný dokonalý programátor, šel jsem do specifikace, abych si přečetl jestli to nejsem náhodou já, kdo je lamka a kdo nezná specifikaci Servletu. No schválně …

(more…)

Školení Produktivita práce v Eclipse

Monday, January 12th, 2009

Pavel Jetensky

O autorovi: Jetyho blog | LinkedIn

Pavel Jetenský se věnuje Java/J2EE vývoji již od roku 2003, z toho několik let v Irsku. Zajímají ho techniky automatického testování. V současné době pracuje jako metodický vedoucí Java/J2EE v Deltax Systems a.s.

Toto školení vám ukáže, jak co nejlépe využít různých pomůcek vývojového nástroje Eclipse IDE pro urychlení vývoje SW. Není zaměřeno na žádné pluginy pro Eclipse, veškeré tipy využijete v základní instalaci.

Obsah školení:

  • Práce s textem
  • Rychlá navigace v kódu
  • Debugování
  • Code editing – templates
  • Otevírání souborů
  • Code editing – quick fixes
  • Přepínání views & windows
  • Refactoring a Source helpers

(more…)

jQuery effects – quick start

Sunday, January 4th, 2009

V minulém článku, ve kterém jsem se zabýval JavaScript Closures, jsem se zmiňoval o tom, že mě k jejich studiu donutilo používání efektů z knihovny jQuery. Také jsem sliboval, že o svých zkušenostech něco málo napíšu v dalším článku. Nuže směle do toho.

jQuery je obecná knihovna obalující odlišné implementace (více než odlišnosti jazyka, míním odlišnosti práce s DOM reprezentací) JavaScriptu v běžně používaných prohlížečích. Efekty jsou pouze její minoritní částí, kterou možná většina vývojářů pracujících s jQuery ani nevyužívá. Jelikož jsem hračička, koketoval jsem s efekty už od první chvíle, kdy jsem s jQuery začal. Z globálního pohledu musím říct, že mě překvapuje, že tyto efekty fungují velmi dobře skrze všechny podporované prohlížeče a kupodivu jsou poměrně svižné i na pomalejších počítačích (pomalejšími mám na mysli, průměrný počítač koupený před 3-4 lety). Základní použití je velmi jednoduché a zvládne ho i člověk, který s JavaScriptem a jQuery teprve začíná. Kromě základních efektů dodávaných přímo jako součást jQuery Core (show, hide, toggle, fadeIn, fadeOut, animate), je k dispozici ještě oficiální dodatečná knihovna s widgety a dalšími effekty známá jako jQuery UI (zde najdete řadu dalších pěkných efektů, které byly kdysi součástí js knihovny interface.js).

Pokud máte zájem o to shlédnout některé z animací, které jsme pro naše zákazníky vytvořili, zde nabízím pár odkazů:

  • Moje Firma – web Komerční Banky zaměřený na podnikatelskou sféru

    • v části podnikatelská poradna jsme využili efekty k odeslání formuláře s daty na server bez reloadu celé stránky, efekt si můžete bez následků vyzkoušet pokud se pokusíte odeslat prázdný formulář – výsledkem bude animace, která vám zobrazí chyby, které ve skutečnosti generuje server v odpovědi na odeslání formuláře (žádné JS kontroly ;-) )
  • TROTINA AUTO, s.r.o. – stránky prodejce ojetých vozidel ve Východních Čechách

    • vyzkoušejte si třeba vložit pár vozidel na parkoviště, vybrat ve vyhledávání terénní vozidla, v detailu vozidla odeslat doporučení příteli apod.
    • kapitolou samou o sobě je potom Dražba na ruby, kterou si můžete vyzkoušet je v případě, že je nějaká aktuálně vypsaná – zde se veškerá logika aplikace odehrává v podstatě jen na dvou obrazovkách a zbytek je řešen AJAXem s využitím jQuery efektů

(more…)