Quercus – PHP v Javě

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

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í textu GroupLayout, NetBeans a verze Javy

Důvěřovaný certifikát v Javě

Nedávno jsem narazil na problém, jak přidat do výchozího úložiště důvěřovaných certifikátů přidat vlastní certifikační autoritu.

Cesta k výchozímu úložišti je platná v Ubuntu a Debianu. V jiných systémech ji najdete v adresáři $JAVA_HOME/jre/lib/security/cacerts.

sudo keytool -import -noprompt -file /etc/ssl/certs/SoftEU-cacert.crt -trustcacerts 
 -keystore /etc/java-6-sun/security/cacerts -storepass changeit

Poznámka: changeit je výchozí heslo na tomto úložišti.

JoSQL – SQL for Java Objects

Už jste někdy psali komparátor, který vám umožní seřadit kolekci podle tří položek (např. podle příjmení, jména a rodného čísla)? To je vždy chvíle, kdy vzpomínám na SQL a závidím uživatelům .NET jejich LINQ.

Teď jsem ovšem objevil program JoSQL   SQL for Java Objects, který dělá přesně to samé. Nepoužívá k tomu ovšem změnu syntaxe jazyka jako C# (zaplaťpánbůh), ale přesto se s ním pracuje celkem příjemně.

Sestavíte JoSQL dotaz, přidáte kolekci objektů nad kterou chcete provádět operace a dostanete výsledek. Můžete použít přístup k proměnným (property) a vše je prováděno pomocí reflection API.

Query q = new Query ();
q.parse ("select * from Subject order by surname, firstname, birthNum");
QueryResults qr = q.execute (getAllPeople());

Podporuje distinct, order by, where, group by a další. Můžete také samozřejmě použít dotaz typu:

select * from Subject where postalAddress.city = 'Pilsen'
select distinct postalAddress.city from Subject

Myslím si, že se jedná o povedený nástroj pro chvíle, kdy není možné použít řazení v databázi (třeba proto, že data v databázi prostě nemáte). Pro příště už nebudu psát složitý komparátor pro řazení dle více položek, ale použiji JoSQL.

jBPM: procesní model a tvorba aplikací

Pro ty z vás, kteří nestihli moji přednášku a nebo si ji chcete znovu přečíst. Zde jsou k dispozici jako zip a také jako html stránky jBPM: procesní model a tvorba aplikací.

Je také k dispozici ukázkový projekt jako ZIP.

Je k dispozici audio záznam a audio se slajdy.

[podcast]http://dev-blog.ferschmann.cz/prednasky/2007/jbpm.mp3[/podcast]

URL Rewriter

Mnoho z vás jistě zná modul do apache mod_rewrite, který umožňuje pomocí regulárních výrazů transformovat URL.

Lze tak přepsat URL /index.jsf?typ=cla­nek&id=1 na krásnější /clanky/1/. Lze jej také použít pro přesměrování uživatele z již nepoužívané adresy (např. při restrukturalizaci stránek).

U webové aplikace by měli být URL dlouhodobě stabilní tak, aby odkazy na ně fungovaly i za 10 let. Proto je dobré o nich přemýšlet. Navrhnete si strukturu aplikace a k tomu odpovídající URL. Tato přepisování umožňují oddělit adresy od použité technologie (lze ji tedy později snáze vyměnit).
Pokračování textu URL Rewriter