History Of Gödel Numbering Part 3This is the third and final article in this series. Part 1 and part 2 describe how the concept of Godel numbers were first used to solidify the foundations of computing, then subsequently neglected by mainstream computing as it evolved until research at Hewlett Packard showed how the concept could lead to the caching of pure computation. In this final part I want to show the implications of this discovery for the future of IT.
Building Radar Speed Camera and Traffic Logger
- with a Raspberry PiThere is a major update to this article, please see this later post Radar Speed Camera Rebooted. I’ve always been interested in connecting things up to computers that they were never designed for. I could reminisce about my first drawing capture arm that used captured the two joint angles with potentiometers and used them to control the pulse width oscillators that fed into the cassette input on a ZX Spectrum.
History Of Gödel Numbering Part 2In the first post in this series I introduced Godel numbers and the important role they had in the foundations of computing. In this post I want to show how we took the concept to pioneer an approach to cache computation. A technique of identifying and eliminating redundant processing. Please entertain my third person prose. Picking up the trail In 1999 a small group of researchers in Hewlett Packard Labs were working in the domain of e-payment and digital commerce.
History Of Gödel Numbering Part 1At 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.
Saving Energy With Contextual CachingEnergy 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.
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.
Reducing Power Consumption with ROCTwo 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.
The Resource Oriented Architectural StyleI’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.
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: