Emergent Design Emergent Design Atom Github
Switching to UEFI 12 July 2019

This describes a solution to a very specific problem that hopefully may be of use to someone in the future (and probably to us when we forget what we did).


We installed an Ubuntu 18.04 server using the alternative installer and configured it as a RAID1 system.

The issue here is that the partitions were set up as ext4 boot partitions not as EFI and the installer happily went away and selected one of them to be mounted as /boot. This meant that the kernel and grub information only existed on that one partition with an MBR that is tied to it; if this disk happens to fail then the system will no longer boot.

... read more
If memory serves 15 April 2014

Redis is a very powerful tool with the most common uses being a

  • NoSQL database - thanks to its persistence capabilities.
  • Cache - since it is fast, very fast.
  • Statistics accumulator - thanks to specialised commands such as atomic incrementers.
  • Messaging service - since it has built-in pub/sub functionality.

More often than not, these use cases are aimed at web applications.

We would like to present a rather more unusual use case for Redis, as the backbone of an image processing framework and discuss the advantages it provides.

... read more
Entity serialisation 25 July 2013

In languages such as C#, serialising an object is reasonably trivial thanks to reflection. This means that there are a wide selection of libraries that deal with a variety of serialisation formats (JSON, XML, YAML etc.).

However, due to the lack of reflection, the options in C++ are somewhat limited.

Some libraries require a precompilation step. Whilst others represent the entities in an intermediate form and provide an API such as DOM to access the properties.

Boost does actually provide a library capable of serialising to and from object instances, but we found the syntax a little messy and had issues with the JSON parser not working properly (when using the stable libraries in the Ubuntu package repositories).

... read more
Cooking up Quiche 13 May 2013

Introducing PsiLoc and Qui

We’ve recently been working on PsiLoc, a rather exciting biometrics project with Perception Sensors and Instrumentation. We didn’t write the face recognition code ourselves - we simply selected a third-party library based upon cost, ease of use and performance - but rather addressed the problem of converting some cool components into a fully functional device. The interesting challenge was to make everything just work out of the box without needing configuration and also to make the whole system - including administration and enrollment - work without needing any screens or input devices beyond the prox card reader built into the units. We’re pretty proud of the results, which we named Qui during the development cycle.

... read more
Objects in space 8 March 2013

BookSleeve is a rather nice C# redis library that provides easy access to all of the standard redis functions. Because it aims to have an almost one-to-one mapping with the available redis commands it does not contain any higher-level functionality and therefore, if you wish to store an object, you must serialise it manually.

To simplify this process in our own projects we produced BookStack which is a small library that sits alongside BookSleeve and provides a few object-specific extension functions.

... read more