Monday, December 27, 2004

PHP-based application framework: Horde

Horde is a PHP-based application framework providing backend-independent interfaces for dealing with preferences, logfiles, compression, browser detection, connection tracking, MIME handling, hierarchical data, authentication, data formats, encryption, forms, session handling, file storage, remote procedure calls - and more is on the way.

Horde also makes heavy use of PEAR, the PHP Extension and Application Repository.

Thursday, December 23, 2004

Text formatting and scanning - Java printf package

Henrik Bengtsson's Java printf package implements common C-style printf formatting and scanf text parsing (includes methods sprintf, fprintf, scanf, sscanf and fprintf).

  • True C-style printf() with variable number of parameters.
  • High quality thanks to thousands of users.
  • Can save you hours or even days.
  • Compatible with Java 1.0.2, Java 1.1 and Java 2.
  • Free for non-commercial use.

You can take a look at Guido Krüger´s printf class as well.

Measuring execution times: SpeedTimer

Guido Krueger's SpeedTimer gives us an easy way to measure and compare method execution times.

  • Measures the hardware timer resolution.
  • Measures the overhead of empty loop iteration.
  • Offers a template to help measure the speed of the code by successively running it in a loop until the elapsed time is long enough to give meaningful results.

Tuesday, December 14, 2004


OpenLaszlo is an open source platform for the development and delivery of rich Internet applications on the web.

With Laszlo, you can:

* Develop standards-based rich Internet applications with one code base in XML and JavaScript
* Deploy them from any J2EE application server or Java servlet container running under Linux, UNIX, Windows or Mac OS X
* Display them in any Web browser enabled with the Flash 5 Player or above, reaching 97% of all Web-enabled desktops

Apache´s persistence tool: OJB

ObJectRelationalBridge - OJB supports multiple persistence APIs to provide users with their API of choice:

* A full featured ODMG 3.0 compliant API. (See the ODMG Tutorial for an introduction.)
* A JDO compliant API. We currently provide a plugin to the JDO Reference Implementation (RI). Combining the JDO RI and our plugin provides a JDO 1.0 compliant o/r solution.
A full JDO implementation is scheduled for OJB 2.0. (See JDO tutorial for an introduction to the JDO programming model.)
* An Object Transaction Manager (OTM) layer that contains all features that JDO and ODMG have in common. (See OTM tutorial for details).
* A low-level PersistenceBroker API which serves as the OJB persistence kernel. The OTM-, ODMG- and JDO-implementations are build on top of this kernel.
This API can also be used directly by applications that don't need full fledged object level transactions (See the Persistence Broker Tutorial for details).

More features:

# Transparent persistence: Persistent classes don't have to inherit from a persistent base class or to implement an interface.
# Easy use of multiple databases.
# Extremly flexible design with pluggable implementation of most service classes like PersistenceBroker, ObjectCache, SequenceManager, RowReader, ConnectionFactory, ConnectionManager, IndirectionHandler, SQLGenerator, JdbcAccess, ... and so on.
# Comes along with fully functional demo applications running against HSQLDB.

Monday, December 13, 2004

Real-world persistence: Chameleon Persistence

Chameleon Persistence is a different persistence engine. It can be used for JavaBeans (in a classic O/R style), XML or other formats and is not constrained by traditional O/R requirements. Full native query language and complex query requirements are fully supported.


  • Designed for real enterprise needs
  • Not tied to JDBC-based databases
  • Cross data store retrievals (the object graph is spread across databases)
  • Very flexible data mapping (with or without JavaBeans)
  • Not limited to JavaBean persistence
  • Native data store query language support
  • Minimum configuration for minimum use cases
  • Expressions and scripts for query parameter substitution
  • Client-Server architecture

Friday, December 10, 2004

Fast object persistence: Prevayler

Prevayler is the free-software Prevalence layer for Java.
Ridiculously simple, Prevalence is by far the fastest and most transparent persistence, fault-tolerance and load-balancing architecture for Plain Old Java Objects (POJOs).

Queries with Prevayler are more than 9000 times faster than querying Oracle through JDBC.
Queries with Prevayler are more than 3000 times faster than querying MySQL through JDBC.

These results are obtained even with the Oracle and MySQL databases fully cached in RAM and on the same physical machine as the test VM.

O/R persistence: Hibernate

Hibernate is a powerful, ultra-high performance object/relational persistence and query service for Java. Hibernate lets you develop persistent classes following common Java idiom - including association, inheritance, polymorphism, composition and the Java collections framework. The Hibernate Query Language, designed as a 'minimal' object-oriented extension to SQL, provides an elegant bridge between the object and relational worlds. Hibernate also allows you to express queries using native SQL or Java-based Criteria and Example queries. Hibernate is now the most popular object/relational mapping solution for Java.

Sunday, December 05, 2004

A collection of JVM options

This document is a compilation of all the JVM options for various versions of the JVM on primarily SPARC/Solaris Platform. The descriptions for each option are taken mostly verbatim from the reference documents.

Wednesday, December 01, 2004

Baloon tooltips in Java: jBallon

jBallon is a new LGPL library that allows you to have balloon-style tooltips instead of the standard Java tooltips - and there´s no need to change a single line of Java code from your application. No recompilation is needed, either.
To use JBalloonToolTips in your project you have to add this line to the project's startup script:
You can also mix standard and balloon tooltips in one app if you want.