Audit změn v databázi – Oracle

Možná jste někdy narazili na nutnost zaznamenávat změny, které jsou provedeny v databázi. Existuje několik možností – od logování změn na úrovni aplikace (např. jako listener pro Hibernate) až po použití funkce audit trail v Oracle.

My jsem se pro náš dřívejší projekt rozhodli použít trigger, který úpravy zaznamenává.
Pokračování textu Audit změn v databázi – Oracle

AFS

Snad každá firma potřebuje nějaký ten sdílený síťový disk. Samozřejmě i my – používali jsme je pro sdílení instalaček, dokumentů, obrazů systémů pro VMWare a nebo zálohování. Proto jsme do nedávna používali kombinaci NFS pro Linuxové klienty a Samby pro ty s–Windows. Bohužel nám tato kombinace přinášela problémy.

Proto jsme se rozhodli najít jiné řešení a vybrali jsme AFS (resp. OpenAFS).
Pokračování textu AFS

Základní otestování webového formuláře

Prakticky každý vývojář se alespoň jednou sektal s nutností vytvořit nějaký ten webový formulář. Taková úloha se většinou skládá ze zobrazení formuláře, po jeho odeslání validací odeslaných dat na straně serveru a jejich dalším zpracování. Často je též navíc dostupná validace na straně klienta (nejčastěji formou JavaScriptu), čímž se zajistí rychlejší a příjemnější zobrazování chybových zpráv uživateli.

Abychom se při testování tzv. neuklikali, můžeme použít nástroje jako například Selenium IDE, které nám pomohou nudnou práci zautomatizovat. Pokud však tvoříme webový formulář, je dobré se nad jeho funkčností zamyslet už při vývoji a nespoléhat jen na to, že za nás všechny chyby odhalí automatizované testy. Scénářů a možných chyb je totiž tolik, že v to ani doufat nemůžeme. Pro jednoduché otestování webového formuláře se mi osvědčilo několik základních testů:
Pokračování textu Základní otestování webového formuláře

HTML – kontrola vstupu

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í textu HTML – kontrola vstupu

Rozcestník

Na tomto blogu najdete již řádku textů. Některé z nich ztrácejí platnost velmi brzy a některé z nich budou platit ještě za pár let. Abych vám usnadnil orientaci, vytvořil jsem malý rozcestník, který seskupuje články, které doporučuji k přečtení

Navštivte Rozcestník > >

XEN – Virtualizační řešení

Přestože jsme celkem malá firma, naše serverovna už obsahuje hezkou řádku serverů (4 naše vlastní a další pro zákazníky). A navíc s každým projektem přicházely požadavky na další a další (Ubuntu + PostgreSQL, Ubuntu + Oracle, RHEL + WebSphere portál, a další).

Mít tolik serverů stojí nejen hardware (který navíc není ani zcela využit), ale také údržbu, elektřinu a místo v serverovně. Když se pak objevily problémy, našemu správci z toho vstávaly vlasy na hlavě.

Proto jsme se rozhodli s tím něco udělat.
Pokračování textu XEN – Virtualizační řešení

Odháčkování

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.