asynchrmi 1.2 released

asynchrmi goes to version 1.2. This is the first production-ready release. Its core features seems to serve us well.

asynchrmi helps writing JBoss RMI clients

I have started a new project called asynchrmi. The purpose of this lib is to make it simpler to write serious applications that calls a JBoss application server.

We were in the process of writing a modern web frontend to our car-sharing system when we concluded that: 1) making many parallel calls to JBoss as different users didn't work, and 2) that because of the heavily relational datamodel (a typical Hibernate model) you needed to make several calls to get all the data you wanted - calls that could be parallelized.

IPv4 addresses must really be running out

The IPv4 address space really must be running out. Today I received the following spam:

We are currently seeking to enter into direct lease with respect to any of your unused IPv4 netblocks.  We pay Competitive lease rates via wire transfer and close transactions quickly.  Our lease/rental of your IP space will always be governed by best practices. If interested, please respond to this email and we can work out the details.

Someone is getting desperate - or spotting a business opportunity.

The case against dependency injection (in its common form)

Dependency injection as it seems to be commonly used in Javaverse, is at the center of what I consider problematic (read sucks) with the philosophy behind JEE.

To be clear: annotation-driven dependency injection is a reasonable software pattern. For example, it allows defining partial standards such as JAX-RS. However, dependency injection as the default mechanism (i.e. with one global namespace) for interconnecting beans makes sense only for small projects.

Evolution of the lib-framework dichotomy

The debate about the relative merits of frameworks versus libraries will likely remain a fixture in software development theory for a long time to come. Nevertheless, there are trends afoot, that suggest that this dichotomy is not so rigid as the OO theorists of the 90s would have us think.

How to get a servlet to answer

The basic problem, as illustrated by this somewhat aged Jetty pathSpec documentation, is that "/" is treated as "/*" when giving a servlet path spec. Thus, if you want to have a servlet as "front page" in an embedded scenario:

In defence of keyboards

Tablet computers worry me.

I strongly beleive that the tools we use shape both our behaviour and our opinions. There may be large individual variation in our reaction and some delay, but gradually and collectively opinions will shift to adapt to what is feasible with the set of tools we wield.


What does it mean to develop software?

Consider the following:

In principle, in the general purpose computing world, once you check in to your version control system a solution to a certain problem, you will solve that problem for everyone everywhere for all eternity.

You may counter that if that were true, there would be only one Get Things Done app for Android, rather than 100. However, this springs more from disagreement on what the problem is.

What makes a good unit test?

Motivating rant

There are numerous articles out there talking about how to write unit tests. Still, I find that they mostly assume that the reader is an accomplished developer trying to learn to write unit tests.

June 6 is World IPv6 day

June 6 is not only Sweden's national holiday. It is also World IPv6 day:

Major ISPs, home networking equipment manufacturers, and web companies around the world are coming together to permanently enable IPv6 for their products and services by 6 June 2012.

My pledge for this year is to try to make this website visible via IPv6. Since it is hosted on EC2, this will mean using 6to4 tunneling, which seems to be allowed. Stay tuned for updates.