Linux Networking Programming

Sending an email via Microsoft O365 SMTP Servers using Python

This is a simple script to send an email via MS’s O365 Service: Note how you need to set up an SSL context and perform .starttls() to properly create a secure connection.


Why You Should Avoid Services Run by Advertising Companies

Inspired by the recent changes to the Facebook WhatsApp’s privacy policy, I decided to go through why I avoid services provided by advertising-based businesses. For more details on the WhatsApp changes, see: Incentives Businesses are driven by their incentives, which are their business goals. The business goal of every for-profit company is quite […]


KDE Plasma on Wayland – What Doesn’t Work Correctly

These are the things that I’ve run into on KDE Plasma running under Wayland that prevent me from using it full-time. I thought I would get them down here so I could keep track of them and hopefully provide feedback upstream as-needed: Screen Sharing in Microsoft Teams For me this is a deal-breaker for getting […]

Systems Administration

Learn Your Tools

Just read a post by Drew DeVault: I very much agree. So many people treat working with computers as “I don’t like it but I have to do it.” Often these people learn only the minimum required to get something done. I think that, as professionals, we need to treat computers as tools to […]

Linux Programming Systems Administration

Tips for doing “shell” scripting in Python

I’ve been moving a bunch of my shell scripts to python recently, because of how much better it handles the concept of “a process didn’t run successfully”. Consider the bash script: What happens here if Command 2 fails? Note that we still get the success message at the end – bash silently ignored our error-ing […]

General Tech Linux Systems Administration

New Project – coconut-deadmanswitch – A tool to monitor Cron Jobs and Scheduled Tasks

I’ve started a new project! I recently talked about my experiments with coconut-lang here: I’ve now started a project using coconut! It’s what I’m calling a “Dead Man’s Switch” (DMS) monitoring tool. The idea is this: Every cron job / scheduled task sends an update to the DMS monitor The monitor records the updates […]

Linux Programming

Thoughts on Coconut – the Compile-to-Python Functional Language Extension

Today I have been playing with the Coconut Language – see – so I thought I would put down some thoughts on using it, going through what I like and find interesting. What Is Coconut? So what is coconut? From their website: Coconut is a functional programming language that compiles to Python. One super-neat […]

Linux Networking Systems Administration

A script to bring Cisco Switch VLAN data into phpIPAM

We have recently set up an IPAM at my workplace, the excellent phpIPAM – I went through our install and added all our subnets into the IPAM, but to make the data much more useful we wanted to have the VLAN information also: However, I didn’t want to go through by hand, adding each […]

Linux Networking Uncategorized

How Websites Load – A deep dive into the IP network stack and how it is used to connect to a site

I’ve made a series of videos exploring the Internet Protocol Suite, and how it is used to make a connection to a website. It’s a deep dive into the stack, explaining all the way down to the ethernet frames that a computer sends on the local link.

Linux Systems Administration

A bind9 Rest API tool – bind-rest-api

I made an API for bind9! Want to see it in action – jump to here in the setup vid: Recently I have been looking for an api for a bind server. I found an existing project,, which is quite nice but didn’t have some of the functionality I needed. I looked at updating […]