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…”