Progressive Disclosure in API Design with example

Progressive Disclosure apiYou have probably heard about the progressive disclosure principle of UI design. In Progressive disclosure design you defer advanced or rarely used features to a secondary screen, making applications easier to learn and less error-prone. It has been successfully argued that the same principles can be and should be applied to API design, which are consumed by humans (programmers).

Full article (632 words) »

How to Learn db40, Java and .NET Object Database, in 5 minutes

db4o is a popular object database available both for Java and .NET. I have used it sporadically over several years and can highly recommend it. It is a non-intrusive, very simple to learn, object persistence system that stores any complex object with one single line of code. Unfortunately Db4o is still not as popular with Java developers as we thought it would be. So we thought of giving you a very easy and useful guide to learning db4O. The following guide will focus on Java

Full article (707 words) »

Db4o Note: Db4o.configure() != Db4o.newConfiguration()

In earlier versions of Db4o we used Db4o.configure() to configure all Db4o database globally (across all ObjectContainer). However in 7.2 (and above) versions of Db4o Db4o.configure() has been deprecated and it is suggested to use Db4o.newConfiguration() instead. Unfortuanately they do not clearly mention anywhere that these two functions are not equivalent. I assumed they are equivalent like Db4o.set()is equivalent Db4o.store() or Db4o.get() is equivalent to Db4o.queryByExample().

Full article (201 words) »

Biggest Db4o Gotcha!

Db4o is an excellent open source object database for Java & .NET platform by Carl Rosenberger's team. I highly recommend it for rapid prototyping and RAD. It transparently handles object storage and retrieval. Today I will talk about the single biggest gotcha in Db4o which is bound to stumble any newcomer as well as pros who haven't been using it in a while.

In Db4o you can create an complex objects with other objects as its member and Db4o will save them all like a champ with a single set() (now store()) method. So intuitively you try to use the same concept for updating the database. This is where you will stumble. Db4o by default doesn't recurse when updating an object.The stranger aspect is that when you save it to the database with a store or set and then retrieve it again it will appear to work fine. However after you close and re-open the database your data will be lost! This is the single most baffling feature I found in Db4o.

Full article (320 words) »

Protected by Comment Guard Pro