History Of Gödel Numbering Part 1

At the break of the 20th century the prominent German mathematician, David Hilbert, posed 23 unsolved mathematical problems. He believed these problems were critical to progress in the field. Many, but not all of these problems have since been solved and some have given great philosophical insight. In particular his second problem asks for a proof that arithmetic is consistent, that is the arithmetic that we learn at school and forms the basis of much of the social and economic structure of our society. [Read More]

Saving Energy With Contextual Caching

Energy usage by human society is rightly a big issue moving forward. Not because using energy is intrinsically bad but because our methods of obtaining enough usable energy are damaging the planet. Energy usage by IT continues to grow1 and is now a non-trivial proportion of global energy use2. Even as our technology continues to become more energy efficient due to the hard work of many smart people our total energy requirements continue to grow. [Read More]

Why Microservices and not Yoctoservices?

So we’ve heard a lot about microservices and there have been some good discussions comparing the benefits and disadvantages over the status quo of monolithic enterprise deployment. What is interesting me at the moment is the question of scale. When we break a monolith into parts we need to make choices of what those parts should be and inevitably how large they are. Mereology Mereology is the study of parts and wholes. [Read More]

Reducing Power Consumption with ROC

Two weeks ago I spent a couple of days in London attending an Architecture Engineering course at the BCS. Tom Gilb the course creator and teacher along with his son Kai demonstrated the power of an approach to thinking that extends much further than the course title suggests. By seeking to uncover all the variables and risks in any undertaking and then quantifying them, a project can make less subjective decisions through the entire path from conception, requirements gathering, design and implementation of systems. [Read More]

The Resource Oriented Architectural Style

I’ve been thinking a lot recently about how to model non-trivial Resource Oriented systems. It is interesting that each practitioner has a different style. Peter and I have discussed endlessly about our own approaches but failed to reach consensus about the best. (Ha! as if that would ever happen anyway.) However I think part of the reason is the sheer freedom that ROC offers. This of course has it’s advantages but one of the tradeoffs is that it can lead to choice overload. [Read More]

Practical State Machines in NetKernel

Following up on my previous post, ROC Hockey, where I introduced our new implementation of Hierarchical State Machines on NetKernel I’ve decided to cover the topic of how they are actually used in practice in an ROC system. Since that post we have released the first version of Lang/SCXML urn:com:ten60:netkernel:lang:scxml into the Enterprise Edition repositories. If you want to have a play with it yourself here are the steps:

[Read More]

Flocking Boids

Today, after a little over eight years, I present a sequel to NetKernel PingPong. Like it’s predecessor, FlockingBoids aims to find that delicate balance between executive toy and technology demo. Finding cool new technologies was the easy part - we’ve got HTML5 (canvas and websockets), JSON, Box2D, and of course NetKernel, your rock solid high performance plumbing. Finding time for executives to play was a little harder… What it does FlockingBoids is a web app that performs a mathematical simulation of autonomous boids which interact in a two dimensional world according to realistic laws of physics. [Read More]

ROC Hockey

As respite from soap-boxing, this week I have a technology demo that was built to provide a testing ground for some new technology I’ve been working on - state machines. State Machines have long been used for embedded systems as a programming abstraction that provides a tight language for programming systems that have well defined modes. They fit a certain class of problems very well and can help provide robust solutions in scenarios where other approaches rapidly become riddled with corner cases and become difficult to test. [Read More]

Engineering the Artefact not the Process

I am dissatisfied with the IT industry. From the outside people think it’s all moving so fast and is full of relentless innovation towards the future. From the inside it feels at least in part like a stagnating pool with innovation increasingly confined to narrow niches. Is this because we are focusing too much of our collective energy on the process rather than the artifacts we are creating? The first real practical computers were realised in the 1940’s though the theoretical foundations were established a decade earlier. [Read More]

NetKernel IDE Feedback

Thank you to all those who provided feedback on what you’d like to see in a NetKernel IDE Plugin. This is a topic that has been on my mind for a couple of years now as various folks have dabbled with creating one, and as we have observed many development teams and how they use their IDEs to truly integrate all their tools. So the feedback I received was pretty much in consensus in some areas and widely varied in others. [Read More]