Category: Computing

Modelling data with relations (by )

So, I've been thinking about data. I'm going to explain my thoughts with enough background so that non-programmers should be able to follow along, but don't worry - I won't be going on huge tangents with basic tutorials, so if you already know everything about pointers in C and SQL databases, you can just skim over the early paragraphs! Read more »

Who cares about user interfaces? (by )

Developing user interfaces to software systems is incredibly rewarding.

If your software system has a user interface at all - and most do, even if it's just for service engineers - then interacting with a human is, presumably, part of its function. And since humans generally pay the bills or otherwise reward and motivate the development of software, I'd hazard a guess that whatever interaction your system has with the user might be the most important thing it does. So having a poor user interface might well mean that whatever else is wonderful about your software is meaningless, because nobody can use it.

Read more »

Node Trees: A model for configuring and managing large distributed systems (by )

(FX: Flashback wibbly wobbly transition...)

So, as a teenager, I started working on ARGON, a distributed operating system. At the time, the CPU cost of encrypting traffic could be a significant matter when communicating over untrusted networks, so I'd worked out a protocol whereby network communications between clusters could negotiate to find the lowest-cost encryption scheme that both parties considered acceptable for the sensitivity of the data being transmitted: more sensitive data would require more secure protocols, which presumably excluded cheaper ones.

But I wanted to do something similar for communications within a cluster; I started with the same idea - finding the cheapest algorithm considered secure enough for the communication at hand. This could be simplified, as all nodes within a cluster share the same configuration, so both will agree on the same list of encryption systems, with the same security and costliness scores; so no negotiation is required - the sender can work out what algorithm to use, and be confident that the recipient will come to the same conclusion.

However, it pained me that highly sensitive data would be encrypted with expensive algorithms, even between machines connected by a trusted network - maybe even right next to each other, connected by a dedicated cable. I wanted a way to be able to, through configuration, tell the cluster that certain links between nodes in the cluster are trusted up to a certain level of sensitivity. Connections at that sensitivity level or below can use those links without needing encryption; anything above would use a suitably trusted algorithm.

Read more »

An anecdote from my distant past: The Tale of the Half-Working Network (by )

Ok, this is an interesting tale I've retold in person a few times. So I've decided to write it up for the world to see.

The scene: My student flat, 1998. Seven of us are living there, and we're all nerds so there's lots of computers. The world of networked multi-player games is exploding, and we want to play.

So, we buy some network cards, and go to Maplin for some coax cable, BNC connectors and terminators, and start to set up a 10BASE2 LAN.

But one of the computers can't talk to the others. What's going on? Read more »

Cool things I have worked on: Customer Relationship Management (by )

Continuing my previous series of blog posts about interesting things I've worked on in my career (an analytical database engine and a transactional database engine), I thought it'd be interesting to talk about something I worked on that's less groundbreaking technology, but interesting in other ways. Read more »

WordPress Themes

Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales
Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales