Secure communication in the Cloud

David Ireland wrote “The internet does reliability end to end. That is, when a node A sends a message to node B, the message travels through many other nodes. These intervening nodes make a best effort at delivery, but if they don’t succeed, they just forget about it. B must confirm receipt, and A must try again if…”

Fast ACID persistence manager for Jackrabbit

David Ireland wrote “I tend to think of Oracles BDB java edition as the solution to all storage performance problems: The least performance sacrifice you can possibly make to get ACID storage in java. So when as our automated configuration import for Magnolia got slower and slower, it was naturally what I turned to. Its particularly suited in…”

Mix and match version control

David Ireland wrote “LShift’s standard version control platform these days is Mercurial, but just before we adopted it, I started a project using Trac and Subversion, mostly because that’s what Trac does out of the box. Later, we branched the project to add a large new project, and during that branch we converted from using ant to Maven…”

Adventures with the Fisher Price My First Firewall

David Ireland wrote “I’m writing this blog entry for therapeutic reasons. Everything you need to know is in the link below. Readers are invited to share the worst anti-features they have found in network devices by posting a comment. I had a strange problem sending email from a host. I first discovered that trac couldn’t send messages via…”

Trac custom workflow

David Ireland wrote “I’ve been experimenting with Trac’s new customisable work-flow. This hasn’t made it into a stable release yet – I’m using the trunk source. Hopefully Trac 0.11 is not far away. The first beta has been released. It looks very promising: plug-ins may return lists of actions they allow, given the current state of the ticket.…”

Google Web Toolkit

David Ireland wrote “Writing client javascript is, as far as I am concerned, an intensely irritating, and almost futile exercise. That’s presumably why everyone uses flash (what other explanation can there be?). It almost makes we wish applets had taken off. GWT to the rescue then – I should love it. And I have played with it for…”

Ambient authority and Sleepycat Java Edition and stateful services

David Ireland wrote “I’ve recently written an RMI service which has state – transactions. The service is implemented using Sleepycat Java Edition collections, and the transactions map to sleepycat transactions. The StoredMap class depends on ambient authority: it determines the current transaction from the thread. The methods will all be invoked in on separate threads, so we need…”

Java equality for testing

David Ireland wrote “I wanted to define equality functions for unit testing purposes. The general pattern is that I'll call a method that returns a complex data structure. I'll want to test if the data structure matches the sample data structure in my test. Frequently the definition of Object.equals() won't test equality in the way I wants to - it will depend on identity. I've defined an equality function that generally provides what I need, and can be easily specialised. There are quite a few things to consider, so I thought I'd write this article about it.”

Adapting C3 Linearization for Java

David Ireland wrote “One of the interesting issues in implementing dynamic dispatch for Java is that the basic C3 linearization algorithm isn’t a very good fit for the complexities of Java’s subtyping. (Note: the following paragraphs rely on the reader having a basic understanding of the details of C3 linearization.) Java lists a class’s implemented interfaces separately from…”

Multimethods for Java

David Ireland wrote “Dynamic dispatch is a mechanism for selecting a method based on the runtime types of the parameters supplied. Java dispatches instance methods dynamically, using the runtime type of the receiver to choose the code to invoke and ignoring the types of the other parameters (just like Python and many other object-oriented languages). This is called…”

Slick Adaptec Raid utilities for Linux

David Ireland wrote “We have been having a bit of trouble with a drive in a DELL PowerEdge 6250 that we deploy a web service onto. It has a raid card, and we had no idea of the configuration. I figured DELL online support might be helpful. I’d soon found myself with some RPMs for managing adaptec raid…”

Proliant DL380 and Linux

David Ireland wrote “I bought a Proliant DL380 on eBay for £27. Its got a couple of 866MHz Pentium 3s, 512Mb of RAM and two very fast 18Gb SCSI drives. It’s a first generation, which is sometimes called G1, but mostly just omits the generation in documentation. That makes it annoyingly difficult to Google for. I couldn’t get…”

Functional list library for generic java

David Ireland wrote “I figured it was about time to try out java generics, so I decided to write some list processing primitives, and a Pair class that implements java.util.Collection. I intended to then use these to re-write my C3 implementation for Java more like the original Dylan it was adapted from. There are a few articles around…”