External Request Profiler

We’ve been working recently with a client, on a solution, revolving around crunching large volumes of data. The scale of data meant that even on a large cluster the computation takes many hours. The usual mode of operation for these compute jobs is to set them off in the evening, and return the next working day to see the results. I was working with them to capture some engineering figures and statistics to assess the performance and opportunities to optimise or re-design. [Read More]

My Experience Building an Alexa Skill

Headline: it is actually pretty easy

Back in November I attended a talk on creating your own Amazon Alexa Skill at Bristech. It’s been something I’ve wanted to play with for a while, so when Amazon had their Black Friday sale I couldn’t resist. I was pleasantly surprised by Amazon’s own tutorial using Lambda: Alexa Python Tutorial - Build a voice experience in 5 minutes or less. It really was quite simple and quick. Amazon have worked hard to make it easy for you to get a custom skill up and running on real hardware. [Read More]

Technical Debt and Entropy

I seem to find myself with a lot of unproductive time - time when I can’t be working on real problems - problems that need access to tools such as a coding environment, terminal, internet searching, and somewhere to capture notes. Situations such as walking the dog, driving, and getting simple chores done are examples of these times. Times like this though, are good for thinking, and recently i’ve been thinking a lot about the concept of technical debt. [Read More]

On The Beach

I’ve had a horrible ray traced pebbly beach scene framed on my wall for a long time now that I really wanted to redo. I’ve used a bit of free time at Christmas along with a major new release of Cheetah3d to do that. Here are a few of the things I created. [Read More]

Quadcopter Down

...and I thought software was hard

I spent a good few months working on and off on the drone. Almost every day I’d get a nice little package in the post from China with a component or such like in it. Unfortunately, the last few things I received still sit unused. After I’d solved the basic architecture of the drone system in as far as how to get easily updatable algorithms both on board and on the ground, things got harder. [Read More]

Beginnings of a Programmable Drone

The struggle to put code in the loop airside and ground side of an autonomous drone

I think it was the final episode in season 3 of Black Mirror that motivated me to start thinking about building a drone again. That episode - Hated in the Nation - involved swarms of autonomous drones deployed across the UK to replace recently deceased bee colonies. In this work of fiction the drones wreak havoc. However the connecting of computation and AI to real moving entities in our world really intrigued me. [Read More]

Generalizing Dynamic Programming

Using dynamic programming techniques to optimise general compute efficiency

Dynamic programming is an approach to efficiently implementing certain classes of algorithms. As a feeble excuse for not noticing this earlier, the term is a little confusing: it isn’t about programming or about doing it dynamically! It was invented in the 1950s by Richard E. Bellman whilst working for RAND Corporation. Apparently he deliberately named it obtusely to avoid his work being considered research! I discovered this term recently when looking into existing research about algorithm optimisation and specifically why the systemic memoisation in NetKernel can optimise solutions to certain problems particularly well. [Read More]

Travelling Salesman Problem

Study of TSP running on NetKernel with cache replacing dynamic programming

This paper offers an analysis of the application of NetKernel and Resource oriented computing to the well known Travelling Salesman Problem (TSP). This discussion ignores the many approximate approaches to solving this problem which are necessary for real-world problems of any significant complexity. The aim, however, is to show how ROC can automatically optimise a solution which it knows nothing about other than empirical data collected during execution. The algorithm structures the problem into sub-problems many of which overlap with each other - this occurrence is called overlapping subproblems. [Read More]

Building a Pi Zero Photo Frame

a self contained photo frame connecting to an RSS feed

This project builds a self-contained photo frame using a Raspberry Pi Zero and an old monitor. (Old monitors are better as the 4:3 ratio suits a mix of vertical and horizontal oriented photos better than a 16:9 ratio.) Figure 1: Finished Frame on wall Hardware Parts List Raspberry Pi Zero with micro SD containing Raspbian Power supply for Pi (see below) USB WIFI dongle VGA computer monitor VESA wall mount Custom made photo frame to fit monitor HDMI to VGA adaptor I had a photo frame made by a framing shop with the inner dimensions of the monitor. [Read More]

Simulating Pub Skittles

to discover optimal playing strategies

Two years ago I created a 2D simulation of the game of pub skittles in an attempt to find the optimum strategies for playing. The simulation used parameters measured from our home alley. (We play in the Malmesbury skittles league at the Volunteer Inn, Great Sommerford.) Different alleys have different characteristics. For example different sized and shaped pins, different balls and different conditions of alley. I had some success with this simulation. [Read More]