SoftEU

HTML – kontrola vstupu

9. Leden 2008 v 00:00

Při psaní webových aplikací člověk narazí na nutnost umožnit uživateli zadat text pomocí WYSIWYG HTML editorů (jako jen napřílkad FCKEditor). V tu chvíli se každý rozumný programátor začne obávat nejen o bezpečnost, ale i o vizuální podobu stránky (uživatel použije zelené písmo na žlutém pozadí či zkopírování textu přes schránku z wordu). Nevyhneme se tak nutnosti kontroly uživatelem zadaného HTML a odstranění nepovolených HTML značek, atributů a entit a inline kaskádových stylů.

Na stejný problém jsme samozřejmě narazili i my při psaní nového modulu komunit do portálu EDU.cz.

Chtěl bych se s vámi podělit o způsob, jakým jsme tento problém vyřešili my.
Pokračování »

Odháčkování

16. Prosinec 2007 v 18:48

Snad každý český programátor narazil na problém odstranění diakritiky z textu (tzv. odháčkování). Pro tyto účely jsem si kdysi vytvořil jednoduchou mapovací tabulku pro znaky v kódování ISO-8859-2.

Nyní jsem v Javě potřeboval něco podobného a našel jsem lepší řešení:


	        String decomposed = java.text.Normalizer.normalize(string, Normalizer.Form.NFD);
	        return  decomposed.replaceAll("\\\\p{InCombiningDiacriticalMarks}+", "");

Celé to funguje tak, že se znak (např. Á) převede na jeho rozloženou (dekomponovanou) formu (např. A ‘). Znak je tedy převeden na dva znaky. Následně se všechny kombinované diakritické znaky odstraní (háčky, čárky, kroužky, …) pomocí regulárního výrazu. Unicodová tabulka obsahuje téměř pro každý znak i jeho přepis na dekomponovanou formu a tak by uvedené řešení mělo fungovat na většinu jazyků světa.

Firefox a fragmentace paměti

14. Listopad 2007 v 09:15

Nedávno jsem narazil na článek Memory fragmentation, zabývající se jedním z důvodů vysoké náročnosti firefoxu na paměť – tímto důvodem je fragmentace paměti.

Vždycky se tvrdívalo, že Java je pomalá a paměťově nenažraná. Aplikace napsané v Javě ovšem fragmentací paměti netrpí právě díky použití kopírovacího garbage collectoru, který vždy používaná data “sesype” na začátek přidělené paměti.

Navíc si k tomuto problému přidejte fakt, že části paměti firefoxu spravují pomocí reference countingu. Reference counting je obvykle pomalejší (díky zamykání a zvyšování reference, i když i s tím se dá poprat), paměťově náročnější a navíc trpí problémy s cyklickými závislostmi.

Člověka tak napadne, že možná nastál čas pro použití garbage collectoru podobnému tomu v Javě …

Seam 2.0

5. Listopad 2007 v 21:11

Tak dlouho očekávané se stalo skutečností a dnes ráno vyšla nová verze webového frameworku Seam.

Ve verzi 2.0 se můžeme dočkat těchto změn:
Pokračování »

Quercus – PHP v Javě

2. Srpen 2007 v 18:06

Dnes jsem narazil na zajímavý projekt Quercus. Jedná se o PHP 5.0 “interpreter” psaný v Javě, který kód v PHP přeloží pro JVM. Výsledný program je dle autorů až 4x rychlejší (měřeno např. pro Drupal). Navíc umožňuje snadno integrovat PHP a Java kód.

Toto řešení je zajímavé pokud potřebujete integrovat PHP aplikaci s Java aplikací nebo chcete využít vlastností aplikačního serveru (např. connection pooling, replikace, clusterování, …).

GroupLayout, NetBeans a verze Javy

25. Červenec 2007 v 19:11

Vývojář je tvor, který by často nejraději používal poslední nástroje či frameworky a nejinak tomu bývá v souvislosti s novými verzemi Javy. Tento fakt však naráží na zavedené zvyklosti a v případě Javy nutnosti podpory starších verzí, které jsou stále hojně rozšířené. Dnes se mi v tomto ohledu povedl poměrně začátečnický kix. Na svém pracovním stroji jsem používal (nyní již skutečně používal) Javu 6.0 a ve vývojovém prostředí NetBeans 5.5.1 vytvářel grafické rozhraní v návrháři GUI. Byl jsem s výsledkem spokojen do té doby, dokud mi nepřišel e-mail o selhání kontinuálního buildu.
Pokračování »


Switch to our mobile site