Mark Rhodes

Mark Rhodes


Improving Raphael performance on iOS with CSS transitions

on 11 Feb 2013

In this post I'll run through the development of DOM-Raphael, a basic CSS3 based JavaScript library which acts as a replacement for Raphael and can be used to improve performance when running on iOS. The source code for the JavaScript for this post is available on GitHub....

Picker Style Number Animation with jQuery and CSS3

on 26 Sep 2012

This post describes a jQuery plugin which performs "picker style" animations between numbers using CSS3 transitions and transforms. The plugin was originally designed with iOS Safari in mind but works on the latest versions of Opera, Chrome and Firefox too (it should work on IE10 too but I've been unable...

Efficient Map Initialization in Java

on 14 Aug 2012

This post looks at how to construct Java's built-in hash based Map implementations to ensure they have sufficient, but not excessive capacity. Hash based maps are one of the most commonly used data structures in programming and Java provides two different implementations of these - the commonly used HashMap...

Blake 512 in Javascript

on 29 Feb 2012

This post describes an implementation of the Blake 512 hashing algorithm in JavaScript. This algorithm is one of the finalists for the SHA-3 competition due to be completed in the next month or so. The source code for the implementation is available here: blake512.js You can...

Ext JS 4 Stock Charts

on 01 Dec 2011

I've been working with Ext JS 4's pure Javascript charting package for a while now and due to the lack of decent real-world examples (i.e. those that don't just use almost all default settings) and a few undue omissions in the documentation, it's not always been plain sailing. In an...

Lazy Lists In Java - Part 2

on 11 Oct 2011

In my last post back in June, I introduced a new data structure, the PatchWorkArray, which performs insertions and deletions lazily in an attempt to improve performance over the lifetime of the list. In this post, I'll detail a simple extension to this class which makes it more...

Lazy Lists in Java

on 24 Jun 2011

This post outlines a general purpose alternative to ArrayLists which provide lazy insertions and deletions to speed up those operations. The Java source code, unit tests, javadoc and jar file for all the classes mentioned in this blog is available ArrayLists are perfect when you want to...

Lists with Fast Insertions and Removals in Java

on 19 Apr 2011

This post describes the implementation of a List in Java which allows log time removals and insertions. Lists are probably the most useful data structures in programming. Java provides a number of ways of creating a list out of the box with regular arrays, and the ArrayList, LinkedList and Vector...

Sorted Lists in Java

on 22 Dec 2010

This post goes through an implementation a SortedList in Java which ensures its elements are kept in order and guarantees O(log(n)) run time for all the basic operations: get, contains, remove and add. The source code, javadoc, unit tests and class files for this post are available here: