Monthly Archives: June 2011

The Disruptor – Lock-free publishing

In case you’ve been living on another planet, we recently our high performance message passing framework. I’m going to give a quick run-down on how we put messages into the ring buffer (the core data structure within the Disruptor) without … Continue reading

Posted in Design, Java, Open Source, Performance | 16 Comments

Open sourcing the Disruptor

LMAX recently open-sourced The Disruptor – one of the core frameworks upon which we build our ultra-high performance financial exchange. Today, we published a white paper detailing how The Disruptor works, and highlighting the sorts of performance benefits that can be … Continue reading

Posted in Java, Open Source, Performance | 4 Comments

The “single implementation” paradox – redux

Following on from , my colleague, Adrian, has given the issue some thought and written an excellent post explaining his position. His conclusion is that we should simply not be marking classes as final because it really doesn’t bring any … Continue reading

Posted in Design, Unit testing | Leave a comment

Parallel Ant 0.9 beta released

After almost a year with no work, Parallel Ant 0.9 beta is finally released. More info on the page.

Posted in Build, Java, Open Source | Leave a comment

The “single implementation” paradox

We got into a bit of a debate at work recently. It went a bit like this: “Gah! Why do we have this interface when there is only a single implementation?” (The stock answer to this goes:) “Because we need … Continue reading

Posted in Design, Unit testing | 2 Comments

Unit testing smells

At work, we focus quite heavily on TDD and, therefore, unit testing (although our TDD extends to other levels, such as writing automated acceptance tests for a story before beginning development of the story). As is always the case with … Continue reading

Posted in Java, Unit testing | Leave a comment

Generics and the mystical wildcard

This comes up a lot on the forums (or should that be fora?). “I’ve got a List<?>, why can’t I put an object of type X in it?” (for any type X). The problem here is that most people see … Continue reading

Posted in Generics, Java | 1 Comment