Development
The development section collects the tooling notes, scripting solutions, build system observations, and plugin development documentation that accumulate over years of building and maintaining software across platforms. Each page addresses a specific development challenge — automating idle-time tasks, migrating between site generators, consuming weather APIs, building browser extensions, extending WordPress — with the technical detail and honest assessment of trade-offs that come from actually shipping the work.
This is not a collection of introductory tutorials. The pages here assume you already know how to write code and are looking for the specific implementation detail, the undocumented API behaviour, the migration gotcha, or the design decision rationale that existing documentation does not provide. The scope spans PowerShell scripting on Windows, Python-based static site tooling, RESTful API consumption, cross-browser extension development, and WordPress plugin architecture.
For cross-section navigation by theme, the topics index groups development content alongside related material from the how-to guides and tech notes. Browser extension development, in particular, connects to the browser extensions topic which pulls in security analysis and review content alongside the development notes.
Scripting and automation
Automation scripts tend to start as quick solutions and gradually become the infrastructure you rely on. These pages document specific automation approaches with the attention to edge cases and failure modes that distinguish a reliable script from a fragile one.
Idle Task Scheduler (PowerShell)
Running maintenance tasks — database optimisation, log rotation, index rebuilding, backup verification — during idle periods sounds straightforward, but Windows does not provide a clean built-in mechanism for detecting true user idle time and scheduling work accordingly. This page documents a PowerShell-based approach to idle task scheduling that uses the Windows API to detect user input idle time, manages a task queue, handles the transition back to active use gracefully, and avoids the common pitfalls of idle detection (screensavers, remote sessions, media playback).
The implementation is detailed enough to use directly and explained enough to adapt to your own requirements. It covers the Win32 API calls for idle detection, the PowerShell job management for task execution, and the logging approach that lets you verify the scheduler is actually running tasks when you expect it to. If you have tried using Task Scheduler's built-in idle triggers and found them unreliable, this page explains why and provides a working alternative.
Met Norway API Endpoints
The Norwegian Meteorological Institute provides free, high-quality weather data through a REST API that is well-designed but sparsely documented in places — particularly around endpoint behaviour, rate limiting, response format variations, and the practical differences between the Locationforecast, Nowcast, and other product endpoints. This page documents the API from a consumer's perspective: the endpoint structure, the request patterns that work reliably, the response format nuances, the caching headers and how to respect them, and the specific behaviours that differ from what the official documentation implies.
If you are building an application that consumes weather data and have chosen the Met Norway API for its data quality and generous terms, this page supplements the official documentation with the practical observations from integrating against the API over an extended period.
Site generators and CMS tooling
The landscape of static site generators and content management systems has shifted continuously over the past decade, and migration between them is a more common task than anyone enjoys. These pages document specific migration paths and generator behaviours.
Static to WordPress
Migrating from a static site generator to WordPress is the reverse of the fashionable direction, and it involves a different set of challenges than the well-documented WordPress-to-static path. This page covers the practical migration: converting static content to WordPress posts and pages, preserving URL structures, handling redirects, managing media assets, and the decisions around theme selection and plugin architecture that determine whether the WordPress site performs as well as the static predecessor.
The page does not advocate for or against the migration direction. It documents the practical work involved, the tools that help, and the specific issues — permalink structure matching, image path rewriting, metadata preservation — that determine whether the migration succeeds cleanly or creates a months-long cleanup project.
Nikola Sections
Nikola is a static site generator with a flexible section system that allows different parts of a site to use different templates, configurations, and URL structures. This page documents how Nikola's section feature works in practice — the configuration syntax, the template resolution order, the interaction with taxonomies and indexes, and the specific behaviours that are not obvious from the official documentation. If you are using Nikola and want to structure a site with distinct editorial sections that each have their own visual treatment and URL convention, this page covers the implementation detail.
Browser extension development
Building browser extensions that work reliably across Chrome, Firefox, and other browsers requires navigating a platform where the specification is shared but the implementations differ in consequential ways.
Trackerless Magnets Extension
This page documents the development of a browser extension for handling magnet links without embedded trackers. It covers the extension architecture, the manifest configuration for cross-browser compatibility, the content script approach for intercepting and modifying magnet links on web pages, and the specific challenges around permissions, URI handling, and the differences between the Chrome and Firefox extension APIs for this use case.
The page is useful both as documentation for the specific extension and as a practical case study in building a content-modifying browser extension that works across platforms. The permission model decisions, the manifest differences between Manifest V2 and V3, and the testing approach are all transferable to other extension projects. This content connects to the broader browser extensions topic which includes security analysis and reviews of extension behaviour.
WordPress plugin development
WordPress Cache Control Plugin
HTTP cache headers are one of the highest-leverage performance settings for any website, and WordPress's default cache header behaviour is inadequate for most production deployments. This page documents the development of a WordPress plugin that provides fine-grained control over Cache-Control, Expires, and related headers — the design decisions, the WordPress hook architecture it uses, the interaction with common caching plugins and CDN configurations, and the testing methodology for verifying that the correct headers are actually being sent.
The page serves dual purposes: it documents a specific plugin's implementation, and it provides a reference for the WordPress plugin development patterns involved — options API usage, admin settings pages, the wp_headers filter, and the practical reality of how WordPress processes and modifies HTTP headers through its various layers of plugins and themes.
What readers usually need
Development questions that bring readers to this section typically fall into these patterns:
- Automating tasks during idle time on Windows → Idle Task Scheduler (PowerShell) provides the implementation and the API details
- Consuming weather data from Met Norway → Met Norway API Endpoints covers the practical integration details beyond the official docs
- Building a browser extension → Trackerless Magnets Extension provides a cross-browser development case study; see also the browser extensions topic
- Migrating to or from WordPress → Static to WordPress documents the reverse migration path
- Controlling HTTP cache headers in WordPress → WordPress Cache Control Plugin covers the plugin architecture and header management
- Nikola static site configuration → Nikola Sections documents the section system in practice
For the system-level context that affects development work — filesystem behaviour, networking quirks, platform internals — the tech notes section provides the observational detail. The how-to guides cover the procedural tasks that development projects often depend on, from build system setup to deployment tooling.