Skip to main content

Blog Posts

Here you can find all my previous posts.

2026

Migrating from Wordpress to Hugo

·851 words·4 mins
A clean, static rebuild of my blog using Hugo replaced the security risks, plugin bloat, and performance issues of WordPress with a fast, version‑controlled, fully automated setup; by building a custom migration pipeline to convert messy WordPress XML into structured Hugo content bundles—with local images, cleaned HTML, converted links, and consistent front matter—I ended up with a secure, future‑proof site that’s easier to maintain and far faster than anything I could achieve on WordPress.

2020

Searching multiple Word documents for keyword

·114 words·1 min
Found myself in a situation I needed to search 20+ documents for a keyword and unfortunately Word cannot search files within a directory for keywords, only the current document

2019

Escalating Privileges to Domain Admin

·211 words·1 min
A quick overview of how local admin rights on a workstation can be misused to escalate privileges when a Domain Admin logs in, along with the reminder that proper least‑privilege policies prevent this risk.

Gaining entry into Windows as Administrator

·399 words·2 mins
A high‑level look at how physical access to a non‑BitLocker‑protected Windows machine can allow someone to trigger a system‑level command prompt at the login screen and reset the local Administrator account, highlighting why full‑disk encryption is essential for preventing this risk.

Setting up Sysinternals

·134 words·1 min
A quick guide on installing Sysinternals in a permanent, system‑wide location and adding it to the PATH—along with setting the symbol path—so the tools can be run easily from any command prompt.

IIS Server Header Hardening

·281 words·2 mins
A short guide on removing or rewriting IIS and HTTP.SYS server headers to reduce information exposure in HTTP responses, using either a registry change for HTTPAPI or URL Rewrite rules in IIS to control what the Server header reveals.

Running TOR on Kali | The proper way

·112 words·1 min
A short guide on running the Tor Browser safely by creating a non‑root user and launching Tor under that account, ensuring it never runs with elevated privileges.

Setting up OpenVPN on Kali

·291 words·2 mins
A straightforward walkthrough for configuring OpenVPN on Kali or Debian by placing the provider’s certificates and config files in /etc/openvpn, setting up credential handling, enabling DNS updates, and configuring the service to auto‑start so the VPN connects reliably at boot.

Finding pwned emails with HIBP and Powershell

·116 words·1 min
A small PowerShell project that reads email addresses from a file and checks them against the Have I Been Pwned API, generating CSV reports showing any breaches or public pastes associated with those accounts.

Minecraft Random MOTD Selector

·154 words·1 min
A lightweight PowerShell micro‑project that randomly selects and writes a MOTD to disk at each server restart, supports date‑based overrides for special events, and uses simple text files for phrases and colour codes—making it a fun, community‑driven addition to your MC monitoring workflow.

Finding users in AD and adding to distribution group

·82 words·1 min
A simple PowerShell script that pulls users from Active Directory, checks whether they’re already members of an Exchange Online distribution group, and adds any missing users—making it easy to keep cloud‑hosted groups aligned with on‑prem AD.

WSUS Server Cleanup Wizard Crashing/Timing out

·181 words·1 min
A quick note on resolving WSUS cleanup failures caused by long‑running SQL queries timing out; the fix involves connecting to the Windows Internal Database and increasing the query timeout value in the SQL instance properties so WSUS can complete its cleanup operations without crashing.

Connecting to Windows Internal Database (WID)

·99 words·1 min
A short guide on connecting to the Windows Internal Database by installing SSMS, running it as Administrator, and using the appropriate named‑pipe connection string for your Windows version so you can manage WID with standard SQL Server tools.

Minecraft Server Process Monitoring - PowerShell

·397 words·2 mins
A PowerShell script designed to monitor and automatically restart a Minecraft server on Windows by checking for the Java process every few seconds, logging start/stop events, and providing persistence through scheduled tasks. The setup can be extended with custom server flags, external monitoring tools, and optional MySQL integration for deeper analysis of uptime and restart behaviour.

Automating Log File Archiving - PowerShell

·126 words·1 min
A PowerShell utility that automates log maintenance by compressing log files, optionally deleting the originals, and supporting both per‑file and per‑day grouping. It’s a practical way to reclaim disk space on busy servers, especially when dealing with large or noisy log directories.

Mobile Friendly Website Design - Hallgate Timber

·524 words·3 mins
A follow‑up web‑development project that rebuilds the Hallgate Timber website to meet new requirements, including a dynamic navigation menu, an embedded contact form with improved handling and security, an SEO overhaul, and full mobile‑friendly responsiveness. The redesign focuses on smoother user journeys, better accessibility for staff handling enquiries, and modern responsive design practices to support the growing number of mobile visitors.

2016

Database normalisation and informal guidelines

·1038 words·5 mins
A coursework project demonstrating the application of database normalisation—from UNF through 1NF, 2NF, and 3NF—using a vehicle‑rental scenario. It explains the four informal design guidelines for evaluating relation quality, identifies keys and functional dependencies, shows the step‑by‑step decomposition of the RentingVehicle relation, and provides example SQL statements for defining, modifying, and manipulating the resulting database schema.

Database planning of modules and mechanisms

·2006 words·10 mins
A full database‑design project for Lincoln Vehicle Rent, covering requirement analysis, functional specifications, DFDs, an ER model, and the mapping of that model into a relational schema. It defines the key entities—customers, staff, vehicles, reservations, rentals, and feedback—and shows how they interact to support vehicle availability, rental processing, inspections, restrictions, and customer feedback within a complete, normalised database structure.

PACS Network Optimisation - Project Proposal

·3164 words·15 mins
A brief introduction to PACS, its history, and the growing need to optimise PACS network performance as imaging data increases. The project reviews network simulators, selects NS2 for its open‑source flexibility, surveys relevant literature, and outlines a plan to model and compare different network topologies to identify an optimised PACS network design.

PACS Network Optimisation - Dissertation Project

·6722 words·32 mins
A project that simulates PACS network topologies using NS2 to evaluate performance under increasing traffic loads. Packet‑loss data is extracted, analysed, and visualised to compare designs. Results show the mesh topology performs best under heavy throughput, though combining topologies warrants further study.

Digital Image Processing - Matlab

·1276 words·6 mins
A MATLAB pipeline that denoises lung X‑ray images (median and Gaussian filtering), segments the lung region via thresholding, morphological opening, and connected components, then detects and counts circular lesions—including partial ones—using the circular Hough transform (imfindcircles). Detected circles are overlaid with green boundaries, and the total count is printed to the Command Window.

Hallgate Timber Website Remodel

·246 words·2 mins
A website remodel project for Hallgate Timber focused on improving structure, navigation, and accessibility. The original site lacked a coherent design and relied heavily on outdated HTML tables, making content difficult to find. The redesign introduces cleaner CSS styling, a shallower site hierarchy, and modern DIV‑based layouts to improve usability, accessibility, and maintainability while preserving the site’s core functionality.