Writing
This is a list of short articles which I have written for my website, generally on technical subjects.
2024
- Saturday, 6 April 2024: VRRP for router redundancy with keepalived
- Saturday, 6 April 2024: IPv6 setup for a router on Linux
- Saturday, 6 April 2024: PPP over Ethernet: MTU, MSS and Packet Loss
- Wednesday, 7 February 2024: Setup for Raspberry Pi Pico W and Segger J-Link Edu
2023
- Monday, 28 November 2023: Linux login shell on a serial port
- Sunday, 3 September 2023: Debugging Gapless MP3 Playback with the System Shock (2023) soundtrack
- Saturday, 5 August 2023: Checking SSH host keys and their fingerprints
- Sunday, 8 January 2023: Beginning Rust
2022
- Sunday, 6 November 2022: Not quite repairing Trekz Titanium headphones
- Saturday, 6 August 2022: S/PDIF Dynamic Range Compressor
- Saturday, 21 May 2022: S/PDIF Bit Exactness
2021
- Saturday, 27 March 2021: 20,000 Light Years Into Space 15th Anniversity Edition
2020
- Sunday, 5 April 2020: x86determiniser version 2.0
2017
- Sunday, 22 October 2017: Modified Unix Tools 1: diff
- Sunday, 15 October 2017: Notifications, from the command line to Android
- Sunday, 8 October 2017: Differences between dynamically linked libraries (.dll) and shared objects (.so)
- Sunday, 8 October 2017: At the Yorkshire Marathon
- Sunday, 1 October 2017: unwind: target platform=x86 is not supported
- Monday, 24 July 2017: Updating a Raspberry Pi home automation system
- Sunday, 26 March 2017: Encrypted password storage for Subversion using an SSH agent
2016
- Tuesday, 29 March 2016: A detailed timing trace, with video demonstration
- Sunday, 28 February 2016: Profiling versus tracing
- Sunday, 7 February 2016: RISC instruction sets I have known and disliked
- Sunday, 31 January 2016: Looking at the Linux kernel with "reverse maps"
- Sunday, 24 January 2016: Ada's influence on my programming style
- Saturday, 16 January 2016: Repairing a jelly baby night light
- Sunday, 10 January 2016: x86 single step mode - how slow is it?
- Sunday, 3 January 2016: Doom: The Force Awakens - a comparison
2015
- Thursday, 9 July 2015: Redirecting system calls from a C library
- Monday, 6 July 2015: Porting third-party programs to TempleOS
- Thursday, 4 June 2015: Is the free Windows 10 upgrade also a license downgrade?
- Sunday, 3 May 2015: Review: UndoDB, a reversible debugger
- Sunday, 26 April 2015: Relative speed of Raspberry Pi, Pi 2, and desktop PC (x86 and AMD64)
- Saturday, 18 April 2015: More fun with floating-point numbers
- Sunday, 12 April 2015: GCC Bug 323 - a journey to the heart of floating-point darkness
- Sunday, 5 April 2015: The mystery of the fifteen-millisecond breakpoint instruction
- Saturday, 21 March 2015: Why is this taking so long? - the poor man's profiler and flame graphs
- Sunday, 1 March 2015: Subversion trickery
- Monday, 23 February 2015: Bash shell script tips
2014
- Friday, 24 October 2014: Should Microsoft do more to stop the use of counterfeit hardware?
- Sunday, 12 January 2014: Disk image backup software worth paying for
2013
- Sunday, 20 October 2013: Audio compression bitrates
- Tuesday, 16 July 2013: Review: Rocking out with Rockbox
- Thursday, 11 July 2013: What's Bad about Bluespec System Verilog (part 3)
- Thursday, 4 July 2013: What's Bad about Bluespec System Verilog (part 2)
- Thursday, 27 June 2013: What's Bad about Bluespec System Verilog (part 1)
- Wednesday, 19 June 2013: What's Good about Bluespec System Verilog
- Wednesday, 12 June 2013: Destroying a rusty bolt using electrolysis
- Saturday, 8 June 2013: A kernel-mode solution for a real-time Raspberry Pi problem
- Thursday, 30 May 2013: "Users of email will not put up with it"
- Monday, 15 April 2013: BurchEd B3 and B5 FPGA boards; reminisces and documentation
- Wednesday, 27 March 2013: Review: Portable music players I have used recently
- Saturday, 23 March 2013: Review: Using the Raspberry Pi for a Home Automation project
- Saturday, 2 March 2013: RTNS 2013 conference
2012
- Thursday, 6 December 2012: Investigation of Scratchpad Memory for Preemptive Multitasking
- Thursday, 6 December 2012: Investigation of Scratchpad Memory for Preemptive Multitasking
- Thursday, 2 August 2012: Collection of Scratchpad Memory FPGA designs
- Thursday, 19 July 2012: Optimal Program Partitioning for Predictable Performance
- Monday, 16 July 2012: Optimal Program Partitioning for Predictable Performance
- Friday, 6 July 2012: Submission: Explicit Reservation of Cache Memory in a Predictable, Preemptive Multitasking Real-time System
- Thursday, 21 June 2012: Good Citizen Dog Scheme Silver Award
- Sunday, 10 June 2012: Evolution of MSRS
- Wednesday, 16 May 2012: Submission: Investigation of Scratchpad Memory for Preemptive Multitasking
- Tuesday, 1 May 2012: Explicit Reservation of Local Memory in a Predictable, Preemptive Multitasking Real-time System
- Sunday, 29 April 2012: Website overhaul
- Friday, 27 April 2012: Submission: WCET-Based Comparison of Instruction Scratchpad and Method Cache
- Thursday, 26 April 2012: Honeymoon in the Lake District
- Tuesday, 17 April 2012: Explicit Reservation of Local Memory in a Predictable, Preemptive Multitasking Real-time System
- Saturday, 14 April 2012: Wedding
- Friday, 30 March 2012: Accepted: Optimal Program Partitioning for Predictable Performance
- Wednesday, 15 February 2012: Distributed, Embedded and Real-time Java Systems
- Monday, 6 February 2012: The Limits of TDMA Based Memory Access Scheduling
- Friday, 3 February 2012: Submission: Optimal Program Partitioning for Predictable Performance
- Saturday, 28 January 2012: Student Project Proposals for 2012/13
- Thursday, 5 January 2012: Poppy and Chewy
2011
- Tuesday, 6 December 2011: The Limits of TDMA Based Memory Access Scheduling
- Friday, 14 October 2011: Submitted: Explicit Reservation of Local Memory in a Predictable, Preemptive Multitasking Real-time System
- Friday, 16 September 2011: T-CREST
- Saturday, 20 August 2011: Chewy and Poppy
- Friday, 5 August 2011: Poppy and Chewy
- Saturday, 2 July 2011: Poppy at RTS Group Barbeque
- Tuesday, 14 June 2011: Poppy
- Thursday, 5 May 2011: Chewy on holiday
2010
- Sunday, 17 October 2010: Time-Predictable Out-of-Order Execution for Hard Real-Time Systems
- Friday, 9 July 2010: Investigating average versus worst-case timing behavior of data caches and data scratchpads.
- Friday, 9 April 2010: Studying the Applicability of the Scratchpad Memory Management Unit
2009
- Wednesday, 14 October 2009: Implementing Time-predictable Load and Store Operations
- Wednesday, 30 September 2009: Using Hardware Methods to Improve Time-predictable Performance in Real-time Java Systems
- Monday, 27 April 2009: The Scratchpad Memory Management Unit for Microblaze: Implementation, Testing, and Case Study
2008
- Wednesday, 3 December 2008: Predictable Out-of-order Execution Using Virtual Traces
- Thursday, 11 September 2008: The CoSMoS multi-FPGA Simulation Facility
- Wednesday, 27 August 2008: Forming Virtual Traces for WCET Analysis and Reduction
- Tuesday, 1 July 2008: Traces as a Solution to Pessimism and Modeling Costs in WCET Analysis
- Thursday, 1 May 2008: Real-time Processor Architectures for Worst Case Execution Time Reduction
- Thursday, 24 April 2008: Using Trace Scratchpads to Reduce Execution Times in Predictable Real-Time Architectures
- Thursday, 20 March 2008: Limitations of Adaptable Systems for WCET Reduction
- Friday, 18 January 2008: CPUs For WCET Reduction
2007
- Sunday, 1 April 2007: A Self-Optimising Simulator For a Coarse-Grained Reconfigurable Array
2006
- Sunday, 3 December 2006: MCGREP - A Predictable Architecture for Embedded Real-time Systems
- Saturday, 1 April 2006: Integrating Custom Instruction Specifications into C Development Processes