A Raspberry Pi computer
Secure Your Home Lab With Lets Encrypt SSL Certificates, Caddy and Mythic Beasts DNS

A Home Lab is a valuable asset for any Developer or Engineer to support their personal development, personal projects, and experimentation. Web security is relentlessly improving, so we need to adapt our ways of working in order to support this. The days of running Production websites over plaintext http are long gone, and therefore we should also reflect this in our Home Labs too. There are many different ways to create a professional looking and secure Home Lab.

A picture of a Raspberry Pi and an Argon 4 case
Installing OmniFeather with Feathercoin Wallet on a Raspberry Pi

Feathercoin is one of the oldest cryptocurrencies and has a thriving community. It is actively being developed with new and modern features that allows it to compete with other coins like Bitcoin. Transactions are quickly confirmed, and it is safe and secure. If you are interested in helping the network through mining, Feathercoin is suited to hobbyist mining with reasonably fast graphics card. The Feathercoin blockchain allows additional data to be stored within transactions, which can be used for things like token and contracts.

A TTGO LORA32 development board running TinyGS
Learn about Satellites by building a Ground Station

Launching your own satellite into Space is becoming a relatively affordable option, but it still involves huge risk and costs. Whilst we won’t be launching our own satellites just yet, we can learn more about amateur satellites through educational and research projects. Participating in an existing project is easier than you may think, with a general understanding of computers, at the cost of a couple of coffees. It’s an impressive achievement when a project launches a satellite into Space, but it is arguably a more challenging achievement to build and maintain a global network of listening stations that make experimentation and observations possible.

A picture of a Raspberry Pi Zero inside a box and attached to the bottom with Velcro
Thinking inside the box – Introducing ChIoT

For a while now, I’ve been working on an Internet of Things (IoT) project that brings multiple ideas and learning objectives together into one well defined goal. The project consists of programming in Go (GoLang) and Python, writing modules for the production ready Caddy Server v2, using Raspberry Pi computers and other microcontrollers, and wiring up an endless supply of electronics. I have been creating Raspberry Pi stacks and development environments for years, but I always encounter the same problem.

A loaf of freshly baked bread
Cross-skilling, Tooling, and Lockdown Bread

As I knead the dough in front of me, I realise two things. Firstly, I probably haven’t had enough exercise during Lockdown as this dough is beating me. Secondly, the automatic process of kneading allows for a clear mind in order to think. I’m almost finishing the sixteen kilogram bag of bread flour I purchased as lockdown began. This was bought through a local supplier which I knew it would only arrive when it was practical and sustainable.

A picture of a Raspberry Pi computer inside a PiTop3 laptop
Learning with a Raspberry Pi powered Pi-Top laptop

Education and learning have always been important factors in my life. I have been using Raspberry Pi computers for many years as a tool for learning about the Internet of Things (IoT), programming, networking, and electronics. The pi-top laptop is designed for schools to teach computing, programming, and electronics. The new pi-top v2 has recently been released and I was interested in trying it out. I am programming in Go (GoLang) and reading from sensors connected to a Raspberry Pi, so it also makes sense to develop this code on a Raspberry Pi itself.

A photo with a child and a parent on a fairground ride
My Journey Through Education and Academia

“Mike Rother says that it almost doesn’t matter what you improve, as long as you’re improving something. Why? Because if you are not improving, entropy guarantees that you are actually getting worse…” — The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win I have always loved computers. From the moment I owned my first ZX Spectrum, I have been on a mission to learn more. Like most children, my journey through education started in Play School, or more accurately for me, a big double decker Play Bus.

A SIM800 HAT sitting on a Raspberry Pi
Using Gammu-smsd and MySQL to Send and Receive SMS Text Messages

In the previous post, Send and Receive SMS Text Messages with Raspberry Pi and SIM800 GSM Board, we connected up an Itead Raspberry Pi GSM Board (SIM800) from ModMyPi and configured Gammu to send and receive SMS text messages from the command line. In this post, we will install and configure Gammu-smsd to provide a MySQL database interface. This allows for more control and easier access to send and receive SMS text messages on your Raspberry Pi.

A picture of a SIM800 HAT on a Raspberry Pi
Send and Receive SMS Text Messages with Raspberry Pi and SIM800 GSM Board

The idea was a simple one. Connect up a GSM modem to a Raspberry Pi to send and receive SMS text messages. The ability to read SMS messages using serial AT commands is no longer possible with modern USB Mobile Broadband dongles, as some devices store their inbox beyond the reach of AT commands. After several days of tinkering with a low cost Huawei E3531, I finally gave up. There may have been other alternative methods to access the SMS inbox, but all these felt more like a hack than a solution.

A picture of two types of lights
Raspberry Pi Controlled Lights Using Relays

We’ve had USB powered lights in our lounge for several years and every year I seem to slightly improve the wiring and relay boards. The Raspberry Pi below controls the lights behind our TV and are switched on using a Google AIY Voice Kit on another Pi mounted under our coffee table. (Voice Kit available here) It’s this Raspberry Pi that I am adding two more lights to. These new lights were purchased in the Souks in Marrakech and look great when lit up inside.

A picture of a solderless breadboard, some screws, and some plastic to hold a temperature sensor onto a radiator
Monitor your heating using a Raspberry Pi and an MCP9808

During the winter season, we spend a lot of money heating our homes. Many heating systems are controlled by a basic thermostat installed in a random part of the home. It’s great to know whether the heating came on once, twice, or three times during the day. If the thermostat has been played with, it could have been on for longer than you require. I have been monitoring our heating system for several years and this year I decided to improve the wiring.

A picture of an Apple Mac laptop
Understanding Higher Education for a University IT Job Interview

A reaction of surprise is often received from people when they realise you work at a university, rather than a student studying there. Working at a university is an inspiring and rewarding opportunity to be able to help thousands of students follow their dreams, study, research, and grow. After sixteen years in five universities, Higher Education is second nature to me. I really enjoy working in IT, and like most jobs, it’s the people that you work with and the people you support that make the job enjoyable.

A Raspberry Pi computer
Collecting Temperature Data with Raspberry Pi Computers

For several years, the temperature in our home has been monitored using Raspberry Pi computers. It’s interesting to see which rooms warm up the quickest and which rooms maintain their warmth longest, but that’s not the main reason that I originally setup the monitoring. The original reason for this monitoring was to improve my programming in Go (GoLang), writing network services, and designing APIs. Whilst designing, writing, and testing it is useful to have some test data that is randomly generated with minimal effort.

A close-up picture of some raspberries
Locally mounting a Raspberry Pi Raspbian Linux image

It’s sometimes necessary to mount a Raspberry Pi Raspbian Linux image file before writing it to a SD card. This may be to configure an IP address, wireless settings, changing of passwords, etc. If you are using your Raspberry Pis headless without a screen, this can be helpful for the first time startup. Read more on configuring settings on Raspbian Linux images before writing them. This script may help with mounting a Raspbian image without having to do any calculations of where the partition start and finish.

A picture of a TV screen
Streaming TV using RTL-SDR and Raspberry Pi

I recently purchased several RTL-SDR DVB-T USB TV tuners from Pimoroni (DVB-T Dongle ideal for ADS-B). These USB devices are not just a great TV tuner, they are also a wide range software defined radio receiver. The supplied aerial is likely to be insufficient (which is fair enough considering the cost) so you will need a male MCX adaptor for your external aerial. The one I purchased from Amazon UK allows me to connect up my 2m 144MHz Amateur Radio aerial as I am looking to use the dongles for other purposes.

An Autumn scene with leaves on the ground
IoT – Preparing the Home for Autumn

The feeling of autumn is once again here, along with the desire to prepare for the coming dark nights and turning on the heating. During the summer, our collection of Raspberry Pi computers have been tasked with other purposes, but it is time to start recording the temperature again. Last autumn and winter, we experimented with using the MicroChip MCP9808 temperature sensors and Raspberry Pi computers to continiously record the temperature of each room in our home and to monitor the heating system to ensure it was running efficiently and being cost effective.

A picture of the UCISA SSG conference stage in 2016
Ucisa Support Services Conference 2016 – Learning and Listening

This was my second year attending the Ucisa Support Services Conference. I shared my experiences from last year which described my first encounter of a conference of this kind, and some rules that made up a personal survival guide. This year I am writing about the listening and sharing of ideas. All Universities are tackling similar issues, and the SSG Conference is a great way to gather ideas and provide some perspective to compare your own journey.

A picture of the world from space overlayed with digital symbols
Limitless Capacity for Data Storage in the Universe?

“If you think we’ve seen massive technology advances in the last 10 years, the next 10 will be like 1,000 years” — Jason Bradbury. At a recent lecture, The Gadget Show’s Jason Bradbury presented his prediction that the same amount of human progress made during the past 1,000 years, could be witnessed again within the next 10 years. Our advancement in technology is increasing at an exponential rate, as new technology makes the next round of technological advances possible.

Linux settings for Yubico FIDO U2F Security Key

Add the following lines to a new file called 70-u2f.rules, using the command nano /etc/udev/rules.d/70-u2f.rules ACTION!="add|change", GOTO="u2f_end" KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0113|0114|0115|0116|0120|0402|0403|0406|0407|0410", TAG+="uaccess" LABEL="u2f_end"

Modifying a Raspberry Pi Raspbian Image on Linux

If you have lots of Raspberry Pi computers, it’s useful to have an image that is preconfigured with your WiFi connections details, default password, default IP address, etc. I started by downloading the latest Raspian image from the Raspberry Pi Foundation Website. I am using the smaller Lite version, but will work for the full desktop image as well. After downloading the Raspbian image, ensure the checksum of the file matches the associated sha1 checksum from the downloads page.

A picture of a stick of computer memory
Living Life in RAM – The Importance of Documentation

Imagine for a moment that your computer has no local storage and that everything running on it is saved into volatile system memory. Remove the power or reboot, and everything will be lost forever. The human mind is far more resilient, has less programming bugs, and more control over its actions and environment than a standard computer. But our human memories are stored in a similar way, and lost forever when the supply of energy runs out.

A picture of a solderless breadboard, some screws, and plastic for holding a temperature sensor on a radiator
Learning about IoT and GoLang using MicroChip MCP9808 Temperature Sensors

Since the summer of 2015, I have been learning about the Internet of Things (IoT) with Raspberry Pi computers. IoT devices are the next generation of Internet connected devices that will soon fill our homes, from smart toasters and coffee tables, to smart fridges and freezers. I started out learning about Docker and Kubernetes, which I believe will be a future platform for running software on edge compute devices. It’s great that this technology scales down perfectly for low powered devices, but also scales up for clusters containing thousands of nodes.

Identity Management Systems: Using Multiple LDAP Directory Services

As an IT Professional with over fifteen years of technical experience and specialising in Identity Management, I have been involved with designing, supporting, and debugging identity management systems in several academic institutions. Identity management is present in every IT environment. It determines whether a user can log in, who they are, and what they can do. Even though identity plays such a crucial role in IT, it is often neglected, understood by only one or two people, or thought of in overly simplified terms compared to the actual complicated business logic and user lifecycle processes involved.

Shared File Storage (Part 2): Knowing Your Audience

Previously, Shared File Storage (Part 1): Identifying Technical Debt discussed the importance of identifying technical debt. In part 2 of this series, we explore the importance of understanding your audience. The term audience is used here to describe the people accessing the storage, their role and participation in the business, and the groups that are configured in Active Directory. Groups are the key to keeping your NTFS permissions simple to manage, so identifying your different audiences and adding them to a set of standardised groups is the first step.

Shared File Storage (Part 1): Identifying Technical Debt

I would like to share some ideas on designing an elegant structure for shared file storage. It is something that every organisation in academia has to design, tame, reorganise, redesign, and continually manage. Even in the cloud era, most of us won’t be saying goodbye to our fast, local, and reliable on-campus Windows shared storage. These thoughts on shared storage are my own and have been shaped by 15 years of experience in academic and business IT environments dealing with storage and identity management.

A Raspberry Pi computer stack with networking and power
Raspberry Pi Stack – A platform for learning about IoT

During the summer of 2015, I decided to focus on learning about the ‘Internet of Things‘ (IoT) and the supporting technology. The Internet of Things will consist of lots and lots of low powered devices embedded in common household appliances and gadgets. The area that interests me most is the communications between IoT devices and the Internet, including the APIs, encryption, protocols, and algorithms that will make IoT possible. The programming language I am planning to use is called Go (GoLang).

A different way of thinking: Agile and Focused on IoT

Over the years, many people have been surprised that I enjoy IT outside of work, as much as I do in work. During those years, my inquisitive mind has asked and answered many questions. Its mainly been a series of little experiments and learning along the way. Whilst this is really interesting and rewarding, it doesn’t really give you any constructive output. Instead of a bouncing between a set of experiences, I’ve decided to focus on a specific area, and its supporting technology.

Powershell: Recursively List Folder NTFS Access Control Lists

This script will recursively list the NTFS Access Control Lists on folders in a large folder structure. It outputs the non-inherited ACLs on each folder recursively and shows where inheritance has been disabled. The NTFSSecurity module supports path lengths up to 32,768 characters. The output formatting could do with some improvement. In the future, I am looking to dump this data into a database, instead of the console. PowerShell Version: 4 Required PowerShell Module: NTFSSecurity Further Reading: Weekend Scripter: Use PowerShell to Get, Add, and Remove NTFS Permissions [CmdletBinding()] Param( [Parameter(Mandatory=$True,Position=1)] [string]$path ) Import-Module NTFSSecurity function ProcessChildren ([string]$path) { $children = Get-ChildItem2 $path -Directory foreach ($child in $children) { ProcessChild $child.

A picture of KeePass
Improve your password security with KeePass 2 x

Would you continue to use your toothbrush after using it to clean the toilet? Obviously not, but often we like to reuse passwords for multiple websites and services. It’s not easy to remember great passwords for every website, so we need a secure method of storing them. The reusing of passwords is dangerous, and these days we regularly hear of websites that have been hacked and the user information has been made available on the Internet for fraudsters and hackers to abuse.

Ucisa Support Services Conference 2015 – The Experience

Recently, I attended the Ucisa Support Services Conference 2015. This was my first Ucisa event. It was great to network with Service Desk Managers, Customer Service Managers, IT Directors, organisers, and event sponsors. The theme was ‘Change is the only constant’. I knew that getting the most out of these events is dependant on what you put into them, so I was prepared to start networking. The more you network and get involved, the greater the experience and overall achievement.