Some readers will know, but most will not, that I am a bit of a self-confessed foodie. I enjoy cooking, but especially so when others get enjoyment from it. Be it friends, family, or neighbours, and sometimes all three, I’m always up for putting something together. 
 Food isn’t what this post is about, but it’s the underlying motivation for much of the things I talk about, mingled with a…
I spent today getting Facebook’s new WYSIWYG editor “Lexical” working with Rails & ActionText.
The process was fairly straightforward, but I ran into some issues along the way which I wanted to document. 
 First off, there’s a live demo here: https://lexical-actiontext-demo.onrender.com/ 
 The demo uses bog-standard Rails with esbuild and simply swaps out the…
I was until recently working on a Ruby on Rails project as part of my day job, which used Paperclip for attaching files within the application. With Paperclip being deprecated in May 2018 , it was high time we moved to an alternative. 
 Active Storage was added to Rails 5.2 in April 2018 and having used it in other projects, I was confident it was the right choice for us. 
 These articles…
I’ve recently been working on a new project at work which utilises Rails and Hotwire. 
 There’s lots of articles out there about getting started with Hotwire in Rails but I couldn’t find much in the way of how to architect a Rails app in this way or how to run it in production, so this is a bit of a brain dump on how we’ve done things, what we learnt along the way, plus…
In this post, I’m going to cover the use of some popular open-source technologies, that when combined together provide an extremely powerful developer experience. This will be orientated towards Rails, but it should be possible to swap out View Components with something else for your stack. 
 Introduction 
 Before we get started, it may be useful to note that I’ve annotated the…
Yesterday (March 10th), the server which my old blog was hosted on got melted.
 Non, les données contenues dans les serveurs de SBG2 ne seront vraisemblablement pas récupérables. Mais si vous utilisez le Backup FTP #OVH , vos sauvegardes sont dans un autre datacenter. (Les photos sont des pompiers) https://t.co/tRonks8qIw pic.twitter.com/EL5BcMjbc7 — xgarreau (@xgarreau) March 10, 2021…
I've recently been working on a top secret React Native project, powered by a Rails backend deployed to Heroku. 
 The app allows users to upload images/videos to our backend as part of one of the flows. Originally, I was using a multipart/form-data request to upload the data + files directly to our backend, which would then upload them to S3. 
 This approach has a couple of main…
Introduction 
 This is the first post in a series that I plan on writing, which will cover the build and (hopefully!) launch of a project I’ve been working on lately – FleetReach. 
 The other day, I was working on a project when I suddenly realised I had absolutely zero interest in it; I was coding for the sake of coding. Now, there’s nothing inherently wrong with that, but I…
It’s been a while since I blogged last, 238 days to be precise 😳 
 This post is going to be a bit different to my usual ones. I’m going to fill it with what I’ve been up to for the last 18 months or so, when I arrived in New Zealand. 
 Back at the end of November 2017, my family and I flew out of the UK, travelled for 24 hours and finally landed in Christchurch, New…
With the advent of iOS 12, the Workflow app has been replaced with Shortcuts which is the new app for creating custom shortcuts. In iOS 12, they can also be triggered by custom phrases in Siri. 
 I wanted to see what Shortcuts is capable of doing so I challenged myself: 
 
 Create a shortcut which allows the user to select a function from an OpenFaaS instance and run it with custom…
There are lots of strange things in that title. Vue? PWA? Now? Let’s break it down. 
 tl;dr 
 I made a PWA using the Star Wars API and it’s pretty quick: swapi.finnian.app 
 VueJS 
 Vue is a relatively new front end JavaScript framework. To quote their documentation : 
 
 Vue (pronounced /vjuː/, like view) is a progressive framework for building user interfaces.…
For DockerCon EU in Copenhagen back in October, Oli Callaghan and I developed a Twitter bot backed by OpenFaaS with help from Alex Ellis . 
 How it works 
 Just tweet a black & white photo to @colorisebot! 
 What happened next? 
 The bot was a great success during the conference but soon dropped off afterwards. Then, half way through November, Matthew Hughes wrote an article on The…
Introduction 
 In a previous post I talked about how to deploy serverless functions to an OpenFaaS cluster with ease. This post expands on this to show how we deployed a Machine Learning algorithm to colourise black & white videos using OpenFaaS. We presented the end result of this at DockerCon EU 2017 in the Community Theatre in Copenhagen. 
 In the beginning 
 After DockerCon in…
A couple of weeks ago , Let’s Encrypt announced that support for wildcard certificates was coming in Jan 2018 which got me and my devops friends very excited. Currently with LE, you have to specify all the domains (including www ) you want to include in the certificate which is really annoying. With wildcard certificates, this limitation will be gone and you’ll be able to create one…
I have quite a few Nodejs repos on GitHub and until now I’ve not migrated any of them to Docker because I didn’t really know how. The other day I had a ping on Twitter about the URL shortener I helped complete early this year, so I decided that now was the time to work out the best way to do it: 
 @developius didn't you guys dockerize your URL shortener? maybe heptio can use it?
Open Functions as a Service or OpenFaaS (lead by Alex Ellis ) is a really neat way of implementing serverless functions with Docker. You can build out functions in any programming language and then deploy them to your existing Docker Swarm. 
 In this post we’ll look at an experimental CLI for making that even easier 
 
 Below is a quick example of how easy this is to do.
So, DockerCon! It turns out that building cool stuff gets you places. Back in 2016, I built a Docker Swarm from 5 Raspberry Pis by following Captain Alex Ellis’ tutorial and then went on to create two different visualisations for the swarm to demonstrate real time load balancing. This was picked up by Alex who got in touch soon after with the amazing news that Docker wanted to invite me to…
A couple of weeks before DockerCon 2017, Victor Coisne asked me whether I would like to create a demo for the DockerCon museum. Having built a hardware gauge with two dials already, it wasn’t going to be very hard to build another! This time, instead of showing load on a swarm, I hooked the dials up to the Twitter Search API to monitor the usage of #DockerCon on Twitter in real time. This was a…
To be honest, it wasn’t Wordpress that was the issue. Having all my content spread across the web wasn’t really working very well anymore so I decided to take the plunge and migrate fxapi.co.uk to finnian.io/blog . To start with, I thought I’d just move the entire site to it’s new home on my server but I ended up changing my mind entirely and started using Ghost. 
 Why?…
Early days 
 When I was 12, I was given a Raspberry Pi . For the first couple of days, it was really fun. After I had browsed the web for a while and played a bit of Minecraft, it sat in it’s box for a few months. I really had no idea what to do with it. That was until I discovered that I could build a website with it. 
 Wow, that was cool. I installed Apache and spent some time…
I have a bit of a complex set up with all my sites and services, mainly due to using a multitude of different tools and languages to deploy different things. Currently, I have one main OVH server which most of my stuff is hosted on, including different database engines, Node.js and PHP apps. 
 Static sites 
 The first thing that traffic comes into contact with on my server is Nginx. It…
Although the PiGlow visualisation of CPU usage was pretty, we reckoned we could go a couple of steps further and integrate a much more complete tangible solution - a hardware-driven load monitor dashboard. 
 Made of cardboard. 
 This was to be driven by two high torque servos ( Ben had them lying around) which would rotate according to whichever performance indicator we chose. Servos are…
In my last post I described how I set up a 5-strong Raspberry Pi Docker swarm. It wasn’t long before I realised I wanted some ambient way to see how they were performing which a) didn’t involve staring at a screen and b) would wind up the cat. 
 Luckily my friend Ben was round and he’s quite into tangible stuff so after rummaging in a few dusty boxes for inspiration we found…
A couple of weeks ago, a friend of mine reminded me about Docker . Docker is a containerisation platform which allows you to deploy different systems very quickly and efficiently on the same host machine. Not only that, you can put several Docker hosts together in order to create a swarm . It’s like VMs, but cooler. 
 Having followed a fantastic tutorial by the Docker Captain, Alex Ellis…
Do you use git to manage your site and or server files? In my opinion, this is undoubtably a good way to run things but you need to make sure it’s secure. Just try going to yoursite.com/.git/config . If you haven’t secured your server properly, you will see the configuration file for your git repository. Not good, huh? Not only could an attacker reveal lots of information about your…
I recently undertook the expedition phase of my Gold Duke of Edinburgh in a Canadian open canoe. The team and I paddled from just outside Thetford all the way down to Cambridge on the River Thet, the Little Ouse, the Great Ouse and finally, the Cam. 
 For the expedition, we needed to have an “aim”. This could be anything from photographing the team at checkpoints to measuring the…
We all love drones. We all love cake. And we all love Raspberry Pi . What better way to spend an afternoon than to kick up at my mate Ben ’s house, borrow his fast er internet and combine all of those things. 
 
 We started the day by wrapping a Pi Zero and camera module in excessive amounts of electrical tape and sticking it to Ben’s 250-class racing drone . Sounds cool huh?…
My father, Ben Anderson plays with numbers. As his Twitter bio says “big data, small data, open data, any data”. He works with R a lot and has been persuading me to take a look at it. I’ve held off until now because I’m all for analysing data in real time (primarily using delightful JS libraries such as Chart.js and D3.js ). As far as I understood it, R is geared towards…
Today, the guys at SubjectRefresh and I competed in the Cyber Centurion Security Challenge at The National Museum of Computing at Bletchley Park . 
 The day started with an introduction by the organisers and a brief explanation of how the day was going to work. Then it was off to the marquee to get started securing the machines we were provided with. There were two Windows VMs (server 2008 and…
Note: Healthy was launched about 5 months ago but I’ve only just got around to writing this post. 
 On Nov 3, 2015, SubjectRefresh spent a day in London at the annual Open Data Institute Summit , where we gave two presentations on our Young Rewired State Festival of Code 2015 Refresh app. 
 We were also challenged to create an application using open data that gets people to eat…
Friday night, or more specifically, Friday February 26th 2016 at 19:45:57, I was having a group Skype call with Alexander Craggs , Miles Budden and Tom Emmerson when Alexander started complaining that all the URL shorteners out there were becoming too long. To clarify, URL shorteners were becoming bloated. He suddenly said, “Let’s make a URL shortener”. The situation escalated…
During the YRS Festival of Code 2015, “ SubjectRefresh ” and I created a revision app called Refresh. It’s built using Node.js and works by scraping the exam board website (currently only CIE) for the PDF for the syllabus the user has requested. The PDF is then converted to HTML using a PDF to HTML converter and is then shunted through Node’s Cheerio library. We then find…
I admit it, I’ve started writing all of my new projects in Node.js. Why? Because most of them are lightweight and I want them to be real time. 
 PHP can be a real pain when it comes to doing anything remotely real time. First off, it’s designed to execute as quickly as possible and send a response to the client, which is of course good. However, what is bad about that is that it…
I recently had to create an installer for an AppleScript app (I know but I couldn’t be bothered to learn Swift and the craziness of Xcode) and it drove me round the twist looking for a decent tutorial that I could understand so that I could create my installer. 
 This post is primarily a reference for me but as it will need to be pretty basic for me to understand, maybe someone else will…
Mobile means a small device which therefore has a small screen. On these small screens, websites designed for larger devices can look unpleasing to the eye and are completely inappropriate for the device and by extension, the user. 
 Some websites have brilliant mobile versions of their sites, but some don’t. If you go to these websites that aren’t designed for mobile on your phone then you…
For my birthday , Ben James gave me some geeky goodies including a uBlox NEO-6M GPS module . 
 As soon as I had a moment, I rigged it up to my Arduino and uploaded this sketch from ArduinoTronics . 
 The pin connection layout is this: 
 GPS RX -> Arduino digital 4 (D4) 
 GPS TX -> Arduino digital 3 (D3) 
 GPS GND -> Arduino GND 
 GPS VCC -> Arduino 5V 
 It took a while…
Reflections 
At the end of our project our initial objectives had now been added to and matured through the development process.
 Objectives at the start 
The objective of this project was to build an all terrain vehicle which could be used for various applications and controlled from anywhere in the world. We wanted it to be operational in all circumstances, which meant being able to…
Assembling the components 

 The first prototypes we put together used an Arduino, and it was with these first prototypes that we had many problems with the motors. 
 The first thing we tried was to run each motor from one of the Arduino’s digital pins. They were 5v motors, and the digital pins on the Arduino supplied 5v each, so…
Technical development 
 Hardware 
 Core controller 
This was to be the brains of the ReCoRVVA. Its task was to control all the peripherals on the ReCoRVVA, to manage all communications with the client and, by extension, the user. It needed to be capable of handling multiple tasks at once and be able to use multiple electrical inputs/outputs to control the physical aspects of the…
Last year, I and two of my friends, Ben James and Angus Ledesma, decided to create a Raspberry Pi powered robot for a Silver CREST project. I posted an overview of the project last July and have finally got around to converting the CREST report to a blog-friendly write-up! 
 Background 
The ReCoRVVA will help and assist people in many different ways; as the name suggests, it is designed to…
My ageing hand-me-down MacBook (late 2007 - 1GB RAM) has been serving me well - it ended it’s OS X life in the Autumn of last year and has been running Linux Mint 17 ever since - we call it the MintBook. Linux has been a saviour. Making the shift was easy enough (having used GNU/Linux before - mainly in Raspberry Pis and web servers), the ease of software development has been greatly…
Whilst coding in Cambridge with the Raspberry Pi Foundation for the YRS Festival of Code , I was lucky enough to be able to glean some knowledge from Paul Hallet , who introduced me to Flask & Twilio : 
 We take care of the messy telecom hardware and expose a globally available cloud API that developers can interact with to build intelligent and complex communications systems. As your app's…
I have a GoPro Hero 4 and love it. However, I was looking for something new to do with it. I thought about a drone maybe (too expensive), some kind of boat (too much at stake).
Then, the other day, I was gazing at a Raspberry Pi and my GoPro, trying to think of something. Then I realised I had everything I needed, right in the palm of my hand.
Quite a while ago I saw a 0.96" OLED display for sale on Ebay for £4.45 and thought it sounded a good price. It arrived and I was quite busy at the time so it went into my modules drawer. 
 The other day I was tidying up and ordering my electronics and rediscovered it. So today I decided to see if I could get it to work with my Arduino Duemilanove.
Today I had some free time… so I decided to use my favorite gadget for something. 
 A fellow blogger mentioned to me that I should use a Pi and a Kymera wand to get the Pi to control things… like magic.
I know I haven’t written anything for a while, but I have been doing stuff! My latest project was one I have been doing with Ben James (the hamster owner) and Angus Ledesma. It was a British Science Association CREST project and our idea was to build a shoe-box sized remotely controlled robot vehicle equipped with a range of sensors such as temperature, humidity, distance and a camera.
I think it is extremely useful to let your little tub of yumminess into your email (Gmail) account. I thought you might find it interesting and useful aswell!