Saturday, 18 July 2026
Programming as Play
Tuesday, 16 June 2026
Keeping Ubuntu Up to Date
- The /etc directory is your friend in all this
- cat /etc/os-release - needs to be done before and after to check the release has been complete
- You should upgrade regularly - not least because you need to get the latest security updates
- sudo apt update
- sudo apt full-upgrade
- sudo do-release upgrade
Tuesday, 26 May 2026
What is iptables?
Thursday, 23 April 2026
The Apache Incubator
Friday, 13 February 2026
Saturday, 13 December 2025
Risk Managing WSL
batcat - a syntax highlighting version of cat
Thursday, 20 November 2025
Elliptic Curves Assert Presence on Linux
source command in Linux shell
The source command in the Linux shell sources (loads) a script. Its short form is .
Tuesday, 18 November 2025
Microsoft's Big Bet on Rust
git add and git commit
The Mechanics of Commits
You can add a new file to your repo doing:
git status (this will show any pending commits)
git commit -m "a little comment, if you please" <mynewfile>
Allowing wsl.localhost in list of allowed hosts
When navigating to a directory in WSL from VS Code you may get the message:
The host 'wsl.localhost' was not found in the list of allowed hosts. Do you want to allow it anyway?
You will get the opportunity to hit Allow (because you trust the host, it is after all, your WSL installation) together with the option to flag: "Permanently allow host 'wsl.localhost'".
Accessing Linux Directories in WSL From Explorer
Directories in WSL can be accessed by navigating to your distribution and filesystem after opening \\wsl$ in File Explorer.
Linux VM Skills - The ls command
ls -a and ls -A will list all files including hidden files.
ls -A (capital A) will attempt to remove the . and .. directory (i.e. current and parent directories).
Saturday, 15 November 2025
Canonical Snaps and Approach to Linux Packaging
Concept of Snaps and Why Its Useful
When running wsl in Windows (with Ubuntu) you will eventually come across the concept of snaps.
Snaps are a package management feature that offer an alternative to the usual sudo apt-get (or sudo apt install, which is a wrapper over apt-get).
Snaps was developed by Canonical for security (via sandboxing, or in Canonical language "confinement") and convenience (an "all-in-one" snap removes the need to download and install individual dependencies).
The security side aims to guarantee safe execution of software by mandating packages abide by the principle of least privilege (this is diluted however by the option of classic confinement).
Concrete Example: Installing emacs edito
Trying to run emacs at the command line, you find it is not installed. You may see:
sudo snap install emacs # version 30.2
- Strict confinement - abide by sandbox rules
- Classic confinement - liberal / "laissez-faire" (but needs explicit user approval on install)
Friday, 14 November 2025
Wayland for WinDevs Who May Not Know It
What is Wayland?
Wayland is intended as a replacement for the X Window system with the aim to make it easier to develop and maintain.
Specifically, Wayland is the protocol used to talk to the display server to render the UI and receive input from the user.
Wayland also refers to a system architecture (more below), which will give you an understanding of how the protocol is used to build a working UI.
Wayland versus X Architecture? Call it a "Simplified X".
In an X setup, X clients talk to an X server and the server talks to a compositor. The comms between server an compositor is bidirectional.
The X Server also talks to the kernel. There is a critical interface called evdev (short for event device) which is the input event interface in the Linux kernel.
In Wayland - the display server and the compositor are rolled into one. The architecture is thus simpler.
Tuesday, 28 January 2025
So-called "Safe" Kernel Programming with eBPF
eBPF technology has roots in the Linux kernel. It is software designed to run programs in a privileged context within an operating system kernel in a sandboxed environment. This is done without touching kernel source code or loading kernel modules. A more complete description can be found on ebpf.io.
The use of the acronym eBPF is historic. BPF stood for Berkeley Packet Filter and eBPF was the extended version. eBPF now does lots more than packet filtering so the appropriateness of this meaning is defunct. The original BPF, mostly obsolete, is sometimes now called cBPF (classic BPF) to distinguish it from the eBPF concept.
A more technical guide to the technology can be found here on the Cilium website. Cilium is a tool built on eBPF used in Google Kubernetes Engine (GKE) and in EKS Anywhere on AWS (for on premise container management).
Thursday, 24 June 2021
How Much is a Linux Box on Azure?
An Ubuntu Server D2S in Azure will cost around $70 a month. This is the same for SUSE Linux, or Windows 10 Pro, or Windows Server 2019 Datacenter - Gen1, with 2 vCPUs and 8 Gb memory.
Wednesday, 17 July 2019
Shedding OpenDaylight onto Linux Open-So for Future Win-Impact
A short selection:
OpenDaylight
Open vSwitch
OPNFV
OpenStack
Open Container Initiative
Cloud Native Computing Foundation
OpenDaylight is a core component of projects such as ONAP (Open Networking Automation Platform) which in turn is a great example of open collaboration within the telecoms community.