Simon Follow

https://simonprickett.dev

Hugely Experienced Developer Relations Leader.

Simon Prickett

Posts by Simon

Building the Lego Creator Shuttle

I was minding my own business in the local Lidl, shopping for some breakfast items. As I turned a corner into the infamous “Middle of Lidl” aisle, I spotted a Lego Shuttle set that I...

In Lego, Hobbies,

MicroPython on the M5Stack Atom Matrix: A Live Streaming Series

The Atom Matrix is a tiny (24mm x 24mm x 14mm) ESP32 based device from M5Stack. For such a small thing at a nice price (around US$ 15 at the time of writing) it has a lot to offer. ...

In IoT, Coding, Python,

Completing the PiHut Maker Advent Calendar

Last year I noticed that UK Raspberry Pi reseller The Pi Hut had made a really nice looking “12 Projects of Codemas” maker advent calendar. It was a large box containing 12 smaller o...

In IoT, Coding, Raspberry Pi, Python,

What's on BBC Radio with Pimoroni Pico Display Pack 2

At home in our kitchen we have an Amazon Echo Show device that we use for a few things. When cooking, it’s handy to be able to yell out “Alexa, set timer 15 minutes” so that we can k...

In IoT, Coding, Raspberry Pi, Python,

Carbon Intensity Display With Raspberry Pi Pico and Pimoroni GFX Pack

Global warming is a thing, and we can all do our bit by reducing our carbon footprint. One way of achieving this would be to move more things that we use electricity for (cooking, ch...

In IoT, Coding, Raspberry Pi, Python,

Building the Lego Creator Land Rover Defender Set

I’ve always admired the industrial simplicity of the classic Land Rover Defender that had an amazing production run stretching from 1983 to 2016 and built on the heritage of the origi...

In Lego, Hobbies,

Flip Dot Displays with Raspberry Pi

Flip dot displays were a popular way of displaying destination information on buses and other forms of public transport. A flip dot sign is a matrix of individual dots, each having a...

In IoT, Coding, Raspberry Pi, JavaScript, Python,

Taking Pictures with Raspberry Pi and Redis

“How can you store images in Redis from a Python script?” - I was asked this by someone looking to build an IoT project that used Redis as the data store for image classification. Th...

In Redis, Raspberry Pi, Python,

Geodesic Lines with the Google Maps Geometry API

Who doesn’t like a good map? I’ve always enjoyed working with data that lends itself to mapping, and have built a few interactive things with the Google Maps API before. I’m also pr...

In JavaScript, Coding, Front End, Google Maps,

Plane Spotting with Redis, Node.js and MicroPython

I’ve always been interested to watch planes pass by, so I decided to build a plane tracking system… For this I used some existing software called dump1090 - it receives data broadcast...

In IoT, Coding, Raspberry Pi, Redis, JavaScript, Python,

Monitoring Redis Streams Consumer Group Lag with a Raspberry Pi Pico W

When working with streaming data or any sort of system where a data structure acts as a buffer or queue betwen producers and consumers, we often want to know how far behind the consum...

In IoT, Coding, Raspberry Pi, Redis, JavaScript, Python,

Hotel Room Service with Node RED and Redis on the Raspberry Pi

Node-RED is a low code graphical programming environment, often used to describe event driven IoT systems. In this project, I show how to build a flow that uses Redis Pub/Sub to mode...

In IoT, Coding, Raspberry Pi, Redis, JavaScript,

Wifi Setup with the Raspberry Pi Pico W

One of the problems associated with making and distributing IoT devices to consumers is dealing with having the consumer connect the device to their own wifi network when they first r...

In IoT, Coding, Raspberry Pi, Python,

Synchronised Counting with Redis and a Seven Segment Display

Counting things seems relatively easy, until it isn’t! In this project, I used Redis to maintain a central count that was displayed on and could be updated from a range of different ...

In IoT, Coding, Raspberry Pi, Python, JavaScript, Redis,

Cheerlights with MQTT and Redis Streams

CheerLights is a global network of synchronised lights that can be controlled by anyone. Tweeting a colour to the CheerLights Twitter account and talking to a bot on its Discord serv...

In IoT, Coding, Raspberry Pi, Python, Redis,

Environment Monitoring with Redis Streams, Raspberry Pi Pico W and MicroPython

The Raspberry Pi Pico W is an extremely capable microcontroller device from the Raspberry Pi Foundation. The W variant has on board support for wifi networking. This and the ability...

In IoT, Coding, Raspberry Pi, Python, Node.js, JavaScript, Redis,

Building a Redis Compatible Visual Bloom Filter

I wanted to take my previous Visual Bloom Filter project and enhance it so that, instead of a web front end and REST like API, it could instead use the Redis wire protocol. This woul...

In IoT, Coding, Raspberry Pi, Python, Node.js, JavaScript, Redis,

Things on Thursdays: A Live Streaming Series

As part of my job as the Principal Developer Advocate at Redis, I’ve been producing a live stream series in which I take a look at how Redis or related concepts can be used with a var...

In IoT, Coding, Raspberry Pi, Python, Node.js, JavaScript, Redis,

Making a Bus Stop API with Cloudflare Workers

Public transport services can be great sources of live or near-live data to use when building out an application or trying some new front end technology. For years my usual go to API...

In JavaScript, Coding,

Raspberry Pi Coding with Rust: Traffic Lights

It’s time to produce yet another version of my original Raspberry Pi / Low Voltage Labs traffic lights Python article. This time, let’s try it with Rust - a compiled language with syn...

In Raspberry Pi, Technology, Rust, Coding,

Raspberry Pi Coding with .NET: Traffic Lights

It’s been a long time coming, but I finally decided to produce a C#/.NET version of my original Raspberry Pi / Low Voltage Labs traffic lights Python article (read here).

In Raspberry Pi, Technology, .NET, C#, Coding,

The M5Stack Core Ink Pomodoro Timer

The Pomodoro Technique is a time management method developed by Italian Francesco Cirillo in which a timer is used to break work into time periods separated by breaks. Each time peri...

In Arduino, M5Stack, C, IoT, Coding,

No, Maybe and Close Enough! Probabilistic Data Structures with Python

In this talk that I produced for Pycon USA 2021 I take a look at the Hyperloglog and Bloom Filter probabilistic data structures, using examples with the Python language and Redis with...

In Python, Redis, Coding,

Getting Started with Express - Building an API: Part 1

Express is a popular framework for Node.js, intended for use in building web applications and APIs. In this article and the accompanying video, I’ll show you how to get started with ...

In Node.js, JavaScript, Coding,

Buttons and LEDs with MicroPython for the Raspberry Pi Pico

Raspberry Pi recently released the Pico, their first microcontoller. This is a bit of a departure from their previous single board computers that cost a bit more, and run a full oper...

In Python, Raspberry Pi, IoT, Coding,

Dead or Alive - an Alexa Skill using Redis

I often find that I build an Alexa skill whenever I want to play around with an API. The voice interface is easy to get started with and I can create something without worrying about ...

In Node.js, JavaScript, Redis, Alexa, Coding, Serverless,

Building the Lego Audi Quattro S1 Set

I received Lego’s kit of the 1985 Audi Sport Quattro S1 for my birthday recently, and decided to have a bit of fun building it by recording the process using my iPhone, then making a ...

In Lego, Hobbies,

Releasing a Dead or Alive Wikipedia Package on npm

A long time ago, I used to be a regular listener to Simon Mayo’s Radio 1 show. He ran a “Dead or Alive” segment where a listener would call in, and he’d challenge them to tell him wh...

In Node.js, JavaScript, Coding,

Using the Raspberry Pi 4 as a Desktop Computer

Launched in 2019, the Raspberry Pi 4 was a significant upgrade over previous models. With USB 3, gigabit ethernet, a faster processor, dual 4K HDMI display support and options for 2,...

In Raspberry Pi,

Building a Visual Bloom Filter with Raspberry Pi, Python and Unicorn Hat

Bloom filters are a probabilistic data structure that I’ve wanted to learn more about for a while. When I started reading up on them, I found a lot of the material to be quite dry an...

In Python, Raspberry Pi, IoT, Coding,

Visiting the Salton Sea

I got in the car, and did a 375 mile round trip to the Salton Sea and back! To break the monotony of being in the same place since March, I decided to take a day trip East to the Sal...

In Travel,

Making a Zoom Panic Switch with the Adafruit Trinket M0

Recently we’ve all been spending a lot more of our time on video conference calls from home. I’m sure that, like me, you find yourself needing to mute your microphone and turn off th...

In Arduino, C, IoT, Coding,

Building a Redis Prize Draw Application with Flask or Express

I decided to build a small application that would demonstrate some features of Redis in a fun and engaging way. I quickly hit upon the idea of a prize draw web application that would...

In Python, Redis, Node.js, JavaScript, Coding,

Arduino Coding: Traffic Lights

I’ve written several articles before using Low Voltage Labs Traffic Light LEDs for Raspberry Pi, but never tried this with Arduino before. A little while back I noticed that they als...

In Arduino, IoT, Coding, C,

Making a Game with a Raspberry Pi, LED Arcade Button, Buzzer and Python

This is a project I’d wanted to do for a while, and finally got motivation and time to make headway with! As the current social distancing measures have made in person Meetups imposs...

In Raspberry Pi, Python, Technology, Coding,

Converting an 80s Peugeot Bicycle to Single Speed

I grew up in Nottingham, England in the 1980s-90s. At the time this was the home of the Raleigh bicycles HQ and factory, so almost everyone rode a Raleigh. They were solid bikes, an...

In Cycling, Hobbies,

Raspberry Pi Coding in Swift: Traffic Lights

As long time readers know, I’ve written a series of articles each describing how to get up and running with controlling the Raspberry Pi GPIO pins using different programming language...

In Raspberry Pi, Technology, IoT, Swift, Coding,

Raspberry Pi Coding with Node Red: Traffic Lights

Node RED is a tool that has interested me for some time - specifically when used on the Raspberry Pi to control or receive input from hardware devices. As part of my series of posts ...

In Raspberry Pi, IoT, JavaScript, Node.js, Node RED, Coding,

Radio Controlled Car and Coffee Fun

I’ve long been interested in radio controlled cars, and have built and raced them to quite a high level several times before although not recently. Today I decided to take one out on...

In Radio Control, Video, Hobbies,

Raspberry Pi Coolest Projects USA 2020

Today I traveled from San Diego to the Discovery Cube in Santa Ana, California to check out this year’s Raspberry Pi Coolest Projects USA event. This is a one day Raspberry Pi Founda...

In Raspberry Pi,

Using a Break Beam Sensor with Python and Raspberry Pi

Let’s take a look at how to use a break beam sensor in a Python script on a Raspberry Pi! I’ve had a few of these kicking around for a while now, and finally got around to unboxing o...

In Raspberry Pi, Python, IoT, Coding,

Controlling Real World Objects with Raspberry Pi and Node.js

Here in San Diego, we have a monthly meetup called Fundamental JS. This is part of the wider San Diego JS family of meetups and is a favorite of mine because it focusses on core Java...

In Raspberry Pi, Node.js, IoT, Coding,

Exploring JavaScript Generators with Redis Sets

Back in October 2019, I attended the San Diego JS “Fundamental JS” meetup where one of the talks was about generator functions. After the talk I decided to see if I could use a gener...

In JavaScript, Node.js, Redis, Coding,

Writing Google Cloud Functions in Go

Let’s try building and deploying a Google Cloud Function using Go! Google Cloud recently added the Go language to its list of runtimes for the Cloud Functions serverless compute plat...

In Cloud, GCP, Go, Serverless, Coding,

Testing Zesty.io's Templating Engine using... Zesty.io!

Parsley is a major component of the Zesty.io Content Management platform. It is a server side templating engine which can be used to inject dynamic content into web pages or many othe...

In Node.js, JavaScript, CMS, Testing, Coding,

Building a Task Tracker with Arduino and LED Arcade Buttons

Sorta like Simone’s, but smaller! One of my favorite Youtube channels is Simone Giertz’s — she documents her attempts to build robotic helpers to assist with everyday tasks. Part of t...

In Arduino, IoT, Coding, C,

Building a Smart Card Transit Ticketing System with Redis and Raspberry Pi

Recently I was looking for an excuse to try out the hosted Redis database service from Redis Labs. I co-incidentally found out that Monk Makes produce a smart card kit for the Raspber...

In Python, Redis, IoT, Raspberry Pi, Node.js, Coding,

Controlling Raspberry Pi GPIO Pins from Bash Scripts: Traffic Lights

I’ve previously produced guides describing how to use the Low Voltage Labs traffic lights with Raspberry Pi single board computers for Python (read Python article), Swift (read Swift ...

In Raspberry Pi, Technology, IoT, Linux, Coding,

Playing with Raspberry Pi: GPIO Pins and Traffic Lights in Java

Having written guides describing how to use the Low Voltage Labs traffic lights with the Raspberry Pi for Python (read Python article), Node.js (read Node.js article), Node RED (read ...

In Raspberry Pi, Technology, IoT, Java, Coding,

GPIO Access in C with Raspberry Pi: Traffic Lights

Having written guides describing how to use the Low Voltage Labs traffic lights with the Raspberry Pi for Python (read Python article), Swift (read Swift article), Node.js (read Node....

In Raspberry Pi, Technology, C, Coding,

Raspberry Pi Coding with Node.js: Traffic Lights

I realized I’ve written guides describing how to use the Low Voltage Labs traffic lights with the Raspberry Pi for Python (read Python article), Swift (read Swift article), Node RED (...

In Raspberry Pi, Technology, IoT, JavaScript, Node.js, Coding,

Writing Google Cloud Functions with Python 3

This is my third and final article looking at new features in Google Cloud functions as Google starts to narrow the gap to Amazon’s AWS Lambda product. Until recently Node.js 6 was th...

In Cloud, GCP, Python, Serverless, Coding,

You Can Now Write Google Cloud Functions with Node.js 8

In my previous article looking at environment variables with Google Cloud Functions I noted that one of the downsides of using them is the relatively old Node.js 6 runtime that Google...

In Cloud, GCP, Node.js, JavaScript, Serverless, Coding,

Using Environment Variables with Google Cloud Functions

Google’s Cloud Functions have been around for a little while now. The product works well with other Google Cloud Platform offerings and provides a scalable, event-driven runtime for s...

In Cloud, GCP, Node.js, JavaScript, Serverless, Coding,

Writing a systemd Service in Node.js on Raspberry Pi

Node.js (a server side JavaScript runtime) is a popular choice for writing software on the Raspberry Pi single board computers that run Raspbian (a variant of Debian Linux). Developer...

In Raspberry Pi, Linux, Node.js, Coding,

Raspberry Pi Coding in Go: Traffic Lights

I’ve been learning the Go programming language recently. As an exercise, I decided to revisit a past article that looked at working with traffic lights on the Raspberry Pi in Python i...

In Raspberry Pi, Technology, IoT, Golang, Coding,

Visualizing Room Climate Data with Conectric’s IoT Sensors, Elasticsearch & Grafana

At Conectric we recently launched our new IoT Gateway product with an accompanying suite of wireless, battery powered sensors. In this article we’ll take a closer look at how to use ...

In Grafana, Node.js, JavaScript, IoT, Elasticsearch, Coding,

Door Open Alerts with Twilio and Conectric's IoT Sensor Product for Node.js

At Conectric we recently launched our new IoT Gateway product with an accompanying suite of wireless, battery powered sensors. In this article we’ll take a closer look at how to use o...

In Twilio, Node.js, JavaScript, IoT, Coding,

Movement Alerts in Slack with Conectric's Motion Sensor & IoT Gateway for Node.js

At Conectric we recently launched our new IoT Gateway product with an accompanying suite of wireless, battery powered sensors. In this article we’ll take a closer look at how to use o...

In Slack, Node.js, JavaScript, IoT, Coding,

Announcing Conectric's USB IoT Gateway & Sensor Product

Here at Conectric we’re excited to announce the launch of our new IoT Gateway product with accompanying suite of sensors.

In Node.js, JavaScript, IoT, Coding,

A Look at Server Sent Events

Server Sent Events are a standard allowing browser clients to receive a stream of updates from a server over a HTTP connection without resorting to polling. Unlike WebSockets, Server ...

In JavaScript, Node.js, HTML5, Front End, Coding,

Playing with Raspberry Pi: Door Sensor Fun

I recently noticed that Adafruit sells low cost ($3.95) wired door sensors that basically act as a switch — if the magnet from one part of the sensor is placed in close proximity to t...

In Raspberry Pi, Technology, IoT, Python, Coding,

Playing with Raspberry Pi: Traffic Lights with a Finite State Machine

This is the third of our articles in a series where we’re playing with the Low Voltage Labs LED Traffic Lights using Python on the Raspberry Pi. In the first article, we set up a basi...

In Raspberry Pi, Technology, IoT, Python, Coding,

Playing with Raspberry Pi and Python: Traffic lights, Part 2

In a previous post in this series, we looked at writing Python code to control a set of Low Voltage Labs Traffic Light LEDs for the Raspberry Pi. If you haven’t read that article yet,...

In Raspberry Pi, Technology, IoT, Python, Coding,

Playing with Raspberry Pi and Python: Traffic lights

I’ve recently been doing some simple Python programming with the Raspberry Pi and a set of traffic light LEDs that connect to it. In this post I’ll look at setting up a Pi to drive th...

In Raspberry Pi, Technology, IoT, Python, Coding,

Promoting New Blog Entries with AWS Lambda and Slack

At my former employer Modus Create, we were avid users of Slack as a team collaboration tool and had been working on ways to use it more as we go about our daily business. We also mai...

In AWS, Serverless, Slack, JavaScript, DevOps, Coding,

Writing a Cordova Plugin in Swift 3 for iOS

Since the App Store first opened in 2008, developers wishing to build iOS apps have been required to learn Objective-C. This includes those choosing the hybrid model with Apache Cordo...

In JavaScript, Cordova, iOS, Swift, Coding,

Placing Markers Inside Google Maps

While working with Google Maps recently, our team needed to be able to drop map markers inside various different types of shapes drawn on the map. This is simple for circles and recta...

In Google Maps, JavaScript, Front End, Coding,

Creating an Interactive Voice Experience with Amazon Alexa

Introduced in 2015, Amazon Echo is a wireless speaker and microphone device that allows users to interact with online services by voice. Alexa is the name of the speech service that p...

In AWS, Serverless, IoT, Alexa, Python, Coding,

Biting into TACO, Microsoft's Enhanced Cordova CLI

Tools to streamline developer workflow when building Apache Cordova hybrid apps have been improving steadily since the introduction of the Cordova Command Line Interface (CLI) a few y...

In JavaScript, Microsoft, Cordova,

Cross Platform Cordova App Development with Merges

A major benefit of using Apache Cordova to build apps is that it provides a “write once, run many” solution to reusing application logic and design across the mobile platforms that it...

In JavaScript, Cordova, DevOps, Android, iOS, Coding,

Writing a Cordova Plugin in Swift for iOS

Since the App Store first opened in 2008, developers wishing to build iOS apps have been required to learn Objective-C. This includes those choosing the hybrid model with Apache Cordo...

In JavaScript, Cordova, iOS, Swift, Coding,

Supporting the Browser Platform in a Cordova Plugin

When building a Cordova hybrid app, the most common use case for adding or developing plugins is to access native device functionality not normally available to the JavaScript runtime...

In JavaScript, Cordova, Coding,

Plugin Authoring for iOS and Android in Cordova 6

Plugins are used with Apache Cordova / Adobe PhoneGap to extend the platform’s functionality so that it can communicate with native device APIs not normally accessible through a web v...

In JavaScript, Cordova, Android, iOS, Coding,

New in Cordova 6: App Templates Using Git

Apache Cordova version 6.0.0 was released today at PhoneGap Day 2016 in Utah. Along with the usual bug fixes, platform and plugin upgrades, a new feature was added to the Cordova CLI ...

In JavaScript, Cordova, GitHub,

368.64, a Pac-Man Ghost Mosaic

One of the things I find deeply dissatisfying about writing software for a living is that there’s no physical form to it. This often means it is difficult to explain what I have been ...

In Design, Pac-Man, Hobbies,

Managing Cordova App Version and Build Numbers in CI Environments

As the Cordova CLI tooling has matured, I’ve been using it more and more on projects in a Continuous Integration environment. I’ve mostly been using the Jenkins Continuous Integration...

In DevOps, Cordova, iOS,

Cordova 5 & iOS 9 Security Policy Changes

Cordova 5 was introduced earlier this year, and we’d recommend using it for any new Cordova app development as it contains improvements to developer workflow, bug fixes, performance e...

In JavaScript, Cordova, iOS,

Automating Cordova Workflow: xcodebuild Hangs During iOS Build

The Cordova Command Line Interface (CLI) has come a long way since it was introduced with Cordova 3.0 back in the summer of 2013. Developers can use this to create, configure, and bui...

In Cordova, iOS, Continuous Integration,