Making Sense Out of Datomic, The Revolutionary Non-NoSQL Database

I have finally managed to understand one of the most unusual databases of today, Datomic, and would like to share it with you. Thanks to Stuart Halloway and his workshop! Why? Why?!? As we shall see shortly, Datomic is very different from the traditional RDBMS databases as well as the various NoSQL databases. It evenContinue reading “Making Sense Out of Datomic, The Revolutionary Non-NoSQL Database”


Most interesting links of May ’12

This was a rich month, bringing some hope for ORM, providing a peep-hole into the bright and awesome future with in-browser video and other cool web-stuff presented at WebRebels 2012 and IDEs providing immediate feedback and visualisation. There were valuable articles about simplicity and quality in software and good talks about the lean startup (i.e.Continue reading “Most interesting links of May ’12”

Most interesting links of April ’12

Recommended Readings V. Duarte: Story Points Considered Harmful – Or why the future of estimation is really in our past… (also as 1h video) – thoughtful and data-backed claim that there is a much cheaper way for estimating work throughput than estimating each story in story points (SP) and that is simply counting the stories.Continue reading “Most interesting links of April ’12”

Most interesting links of November

Recommended Readings Recommended Reading by Poppendiecks – an excellent selection, starting with Lean from Trenches, Management 3.0, Specification by Example, The Lean Startup etc. Eric Allman says that Programming Isn’t Fun Any More  because problem solving has been replaced with learning, configuring, and integrating tons of libraries, frameworks, and tools and many people agree withContinue reading “Most interesting links of November”

DbUnit Express Tips: Setup Simplification, Custom Data File Convention

I’ve recently introduced here DbUnit Express, a wrapper around DbUnit intended to get you started with testing DB-related code in no time, and now I’d like to share two productivity tips: simplifying db tester setup with a parent test and implementing your own convention for data set files, for example one data set per test class.

Having Database Test Ready in 10 Minutes with DbUnit Express

Update: The project has been renamed to dbunit-express. DbUnit Express is my wrapper around DbUnit that intends to make it extremely easy to set up a test of a code that interacts with a database. It is preconfigured to use an embedded Derby database (a.k.a. JavaDB, part of SDK) and uses convention over configuration toContinue reading “Having Database Test Ready in 10 Minutes with DbUnit Express”

The power of batching or speeding JDBC by 100

We all know that one coarse-grained operation is more efficient than a number of fine-grained ones when communicating over the network boundary but until recently I haven’t realized how big that difference may be. While performing a simple query individually for each input record proceeded with the speed of 11k records per hour, when IContinue reading “The power of batching or speeding JDBC by 100”

Truncating UTF String to the given number of bytes while preserving its validity [for DB insert]

Often you need to insert a String from Java into a database column with a fixed length specified in bytes. Using string.substring(0, DB_FIELD_LENGTH); isn’t enough because it only cuts down the number of characters but in UTF-8 a single character may be represented by 1-4 bytes. But you cannot just turn the string into anContinue reading “Truncating UTF String to the given number of bytes while preserving its validity [for DB insert]”

Kill a zombie database (not in the directory but can’t create it)

I tried to create a database but couldn’t because of “SQL1005N  The database alias “W3IBMDB” already exists in either the local database directory or system database directory.“. I knew I had once such a database, but I thought it existed no more. And indeed “list database directory” didn’t list it. So it was there andContinue reading “Kill a zombie database (not in the directory but can’t create it)”

DB2: Find out current locks, long transactions etc. [snapshot]

To find out current locks in a DB and other information about its current state, you need to take a “snapshot”: db2 “attach to user using ” db2 “get snapshot for applications on ”  > mydatabase_snapshot.txt Look into the resulting mydatabase_snapshot.txt for “Application ID holding”  (if there is a lock, this will read the IDContinue reading “DB2: Find out current locks, long transactions etc. [snapshot]”