[SOLVED] - Running Docker on a Raspberry Pi 4

The Raspberry Pi 4 has now been released offering up to 4GB of RAM! All of the horsepower required for an excellent lower power, docker host. However, there are currently issues undergoing work which prevent docker from running on the only Rasbian image currently available for the Pi 4 – ‘Rasbian Buster‘. Details of these issues can been found here on the GitHub thread – https://github.com/docker/for-linux/issues/709 Current Working Solution Fear not, for there is a simple way to fool your docker installation and successfully getting it to run on the Pi 4. ...

July 10, 2019 · 1 min · Tom Cocking

Using a DHT11 sensor with a raspberry pi

This post is going to share how to use DHT11 sensors with a the raspberry pi , using the GPIO pins. Furthermore the particular sensor that I am going to be discussing requires zero soldering and is purely plug and play. The Sensor: The sensor that we will be using is the DHT11 – the exact variant is the 3 pin version. You can find the exact version that I used here ...

February 24, 2019 · 1 min · Tom Cocking

Double NAT port forwarding with a Fortigate

If you are unfortunate enough to have to deal with double NAT on your gateway then you might know the troubles surrounding portforwarding or VIPs. Here is a quick how to guide for setting up a port forward on a Forgate where double NAT is inplace. Case Study – Plex port forward Plex is a great tool for managing your personal media collection and it gets even better when you enable a port forward to let you access this collection from anywhere in the world. Whilst Plex ahve made a number of changes to allow you to reach your contect via a relay server, the best way to access your content from outside your LAN is by using a port forward. ...

February 23, 2019 · 1 min · Tom Cocking

Debian 9 - Running a python script at boot

Note: Debian 9 is end-of-life, but the crontab @reboot technique shown here works on all modern Debian, Ubuntu, and Raspberry Pi OS releases. There are a number of ways that you can run a python or bash script at system start but I am about to show you possibly the easiest way, using crontab. First you need to make that your script is executable and can run unattended. Then you need to login as the user your wish to execute the script as and edit the crontab file: ...

February 21, 2019 · 1 min · Tom Cocking

How to Upgrade Python on Debian, Ubuntu and Kali Linux (and Set the Default Version Safely)

Updated October 2026: this page replaces six separate posts I wrote between 2019 and 2021 about upgrading Python on Debian 9 and 10, Ubuntu 19.10 and Kali, and switching the python command from 2.7 to 3. The old URLs redirect here. Everything in the first half was re-tested on 8 October 2026 in fresh Debian 12 and Ubuntu 22.04 containers. The original 2019 from-source walkthrough is kept at the end because it still works, with one important correction. ...

February 19, 2019 · 6 min · Tom Cocking

Creating a local DNS server with Pi Hole

This is a local DNS server for local DNS requests. This post is going to explain the why and how I created a local DNS server in my home network environment. I used the PiHole project to make a network wide advert blocking a reality. https://pi-hole.net/ I have previously created a DNS server using Bind, running on CentOS 7. Thankfully digital ocean came to my rescue with some of the config in this home lab project, so be sure to check out their guide if you are looking for slightly higher level DNS setup: https://www.digitalocean.com/community/tutorials/how-to-configure-bind-as-a-private-network-dns-server-on-centos-7 ...

February 16, 2019 · 2 min · Tom Cocking

Modifying Windows shortcuts is Powershell

I once faced a rather tedious task that involved recursively modifying a number of shortcut paths stored across a convoluted folder structure. There was approximately 100 shortcuts which needed part of their path modifying. The answer: Create a****PowerShell script. The following code utilises regex to check for the existence of a string and modify with the define replacement. It is easily possible to use Read-Host to make this a little bit more interactive, but the purposes of my use-case it was just as simple to modify these variables before running the script. ...

February 13, 2019 · 2 min · Tom Cocking

Powershell - Checking the Language Mode

For security purposes, it is possible to control the language mode in a given Powershell session. These language modes can constrict which modules can be loaded during the life of a powershell session. Learn mode about Powershell langeuage modes: About Language Modes – Microsoft Detect the Current Language Mode $sLangMode: $ExecutionContext.SessionState.LanguageMode If ($sLangMode -ne “FullLanguage”){ Write-Host ” !! Unable to run scrit – Powershell Using Wrong Language Mode !! ” } Else{ ...

February 5, 2019 · 1 min · Tom Cocking

'Copy, Paste' With Powershell Sendkeys

This is really quick nugget of Powershell for anyone who is struggling to copy and paste into a particular window or dialog box. Perhaps it is a case of a website which prevents text form being sent to a field from the clipboard, or in my case, a windows UAC prompt. If you are following password best practices, your passwords should be long, complex and contain zero dictionary words. Furthermore, you should have a different password for every site and service. So, when a user interface doesn’t allow you to paste a password, life gets that little bit more difficult. ...

February 2, 2019 · 2 min · Tom Cocking