Skip to content

Cum hoc ergo propter hoc


“The saddest thing about the Steve Jobs hagiography is all the young ‘incubator twerps’ strutting around Mountain View deliberately cultivating their worst personality traits because they imagine that’s what made Steve Jobs a design genius. Cum hoc ergo propter hoc, young twerp. Maybe try wearing a black turtleneck too.”

The Management Team, by Joel Spolsky


A Walk through a Thousand Plateaus


Late last year I was lucky enough to work on the soundtrack for a film, A Walk through a Thousand Plateaus, by Sydney-based artists Margaret Walker and Patch Sinclair. It first screened at the exhibition or the skeleton of a windmill at Chrissie Cotter Gallery, Sydney in October 2012. In December 2012, it screened at Drop Block Party: Word Travels in The Rocks, Sydney.

A Walk through a Thousand Plateaus






Margaret Walker

Patch Sinclair

Liv in(the)finite

beardsnapper: take a photo upon git commit in linux


This is something I made this morning. It is based upon an idea by Víctor Martínez

source code is here:

picture of BPB courtesy of someone or other

John C. Dvorak: Forever Wining


Wot I Learned at Uni: A Definition of Cloud Computing and How PNUTS Gets It Right


Late in my Engineering studies, at a point where I had already taken the majority of my subjects, I was sitting in one of the computer labs, when Dr. Ying Zhou entered. She asked the handful of students to leave, since she was about to begin lecturing.

I struck up a conversation, asking  her what subject she was teaching. She told me it was a new class: Cloud Computing – one of the advanced IT electives. These electives are named generically, and seem to be used as containers for academics to teach things that are new and interesting, with a minimum of faculty red tape.

Well, I was fascinated. This was at a point in time when you would only really see the term ‘Cloud’ popping up often in industry – on Amazon blogs, or on Hacker News. It would be some time before Microsoft started dishing up their awkward ‘To The Cloud’ marketing campaign, when the term entered the zeitgeist.

I stuck around for the class, despite not being enrolled, and enjoyed it a great deal. I ended up taking the class and basing my honours thesis on some of Dr. Zhou’s research. From what I could tell early on, we would be looking at a field that was both new and old. ‘The Cloud’ was IaaS, SaaS, PaaS and everything in between, but dressed in simpler clothing. NoSQL was Berkeley DB gone viral.

Thus, the underlying logic of Larry Ellison’s fallacious assertions that people were saying all boats are cloud boats, and that orange is the new pink was not far off the mark. Of course, his rage and bemusement were exaggerated for comic effect and Oracle have since embraced the term for profit like every other sensible actor on the stage. So the cloud is a mainframe? Simmer down L-Dogz, everyone in the field knows this.


Despite such naysaying, the term has stuck, and for good reason. It encompasses a vast range of pre-existing technologies that have slowly become interlinked over the last couple of decades. In calling something ‘Linux’, we don’t suppose that it was created ex nihilo. Instead, the term becomes a kind of monad that helps us pull together technological ideas, allowing new ones to be born.

By no means would Dropbox, Twitter, and Reddit not have existed without the term. However, since the advent of this idea of the cloud, we have seen people create applications and APIs that blur the boundaries between the *aaS terms, allowing people to send and receive countless data types, from all manner of endpoints.

I think one of the best examples of a cloud service that captures this idea is Yahoo’s incredible PNUTS storage system, which is not really that well-known outside of Yahoo or academia (after all, it is an internal service). PNUTS allows an application developer to tune the storage properties to the exact kind of data that is being stored, in a very detailed way.

Dynamic Storage Factors in PNUTS

If a developer wants to create some kind of heavy-throughput commenting system (such as on Flickr), but doesn’t want enormous delays created by synchronous replication, they may specify that. However, if advertisements are being served in the application, then the developer will want to ensure that they are invalidated in the cache as soon as their display time is up. This too may be specified.

Static Storage Factors in PNUTS

When a developer wants to create an application that will be served internationally, and the data may only be stored/copied where it was created (due to transborder data flow regulations), they may store location information right alongside the relevant data. This is done using replica placement constraints, perhaps in a similar manner to the following:

if (tablename = "users" and field('home_location') = 'australia')
    set 'mincopies' = 3;
    set 'exclusions' = 'US';
    constraintpriority = 1;

I believe that platforms such PNUTS demonstrate clearly what the term ‘Cloud’ means. What else could such technologies be termed? Even the mouthful ‘Platform for Nimble Universal Table Storage’ doesn’t cover enough of the features of PNUTS.

I suppose this has turned into an argument over semantics, but I have wanted to get it off my chest since first hearing Larry Ellison’s rant. The cloud term has been co-opted to the point of nausea, but from a technical point of view, it isn’t just a sales pitch.



So, my thesis is done. It has been a hell of a ride. Spent the weekend catching up with friends and sleep.

Next up:

  1. Thesis presentation
  2. Open-sourcing of code
  3. Kick my final two uni exams to the kerb
  4. Publish results

Results, DBRG Presentation


There are several key relationships in the data. I am currently plotting the results. matplotlib is so nice to work with, and its colormaps are pretty.

I will be presenting the implementation and current results of my research at the University of Sydney DBRG (Database Reading Group) this Thursday.