Programming posts

Using winget to automate software deployment to a new laptop
 -  I got my first new laptop in six years this week! The new hardware is definitely exciting, but reviews aren’t really my thing, so while I’ll inevitably tweet about how the Microsoft Surface Laptop fares, that’s not the purpose of this post. This is more about the mundane job of...
Parsing login sessions from the Windows event log with PowerShell
 -  Faced with a day at home recovering from my most recent COVID-19 booster vaccine, I realised I hadn’t written anything more than a few lines of PowerShell in a while and decided to spend some time working on something interesting. The idea occurred to me to try to correlate Windows...
Using Tkinter to build simple GUIs for Python apps
 -  I’ve written many Python scripts and apps in the past, including my Windows backup utility Backutil, which is probably the my most complex project to date. But I’ve always designed these to run in the background or on the command line, and haven’t ever tried to build an app with...
Backutil development: Implementing multiprocessing in Python
 -  I’m still hard at work on Backutil, my simple Windows backup utility with automatic rotation features, fitting in little tweaks and improvements around my daily schedule. The latest of these - and perhaps the most impactful in terms of performance - involves the implementation of multiprocessing for several parts of...
Backutil development: Building and JOINing SQLite databases in Python
 -  This post is something of a development diary for Backutil - my Python-based utility for backing up files from Windows systems. I published the first version of Backutil (v0.51) at the beginning of 2021, and pushed a small update (v0.52) to fix some minor issues in February. As of v0.52,...
Introducing Backutil: A Python‐based Windows backup utility
 -  Back in the spring, I decided that 2020 would be the year I would finally see a coding project through to completion. A recent work project shone a light on backup and recovery, and I realised that I should probably be a bit more consistent with my own backups from...
Network connections and packet crafting on the Linux command line
 -  The problem with taking leave during a pandemic is that there are very few places you can go that don’t present an unnecessary risk. For me at least, the thought of taking a plane abroad wasn’t appealing, and neither were the Tube journeys that would be necessary to go out...
Python tools for Windows forensics: Mozilla Firefox browsing history
 -  After extracting data from Google Chrome last month, next on our journey into the eye-opening world of Windows forensics it’s time to retrieve the user’s Firefox history to see which websites they’ve been visiting in Mozilla’s browser. What is the Firefox history and how does it help our investigation? I’m...
Python tools for Windows forensics: Microsoft Office recent files
 -  Adding to our growing Python forensics tool for Windows, let’s take a look a any Microsoft Office documents the user has recently opened and when they were first and last opened, and add all of this information to our timeline. What are Office files and how do they help our...
Raspberry Pi Home Hub: Building and sending a daily email briefing
 -  The next feature for my Raspberry Pi Home Hub is a Python script that will automatically send an email briefing every morning. In this post I’ll be creating the template, populating it with up-to-date information, and sending it with Yagmail. How the email briefing will work The specifications for my...

Thinking about

Website v2.0
I've given my website its first major update since 2020, keeping the same general aesthetic but placing a greater focus on content. Now to come up with some blog post ideas...

Interests

  • Cyber security
  • Tech
  • Python
  • PowerShell
  • JavaScript
  • F1
  • Reading
  • Writing
  • Psychology
  • Philosophy
  • Exercise
  • Running
  • Gaming
  • Football
  • Music
  • Guitar