Technology Blog

All Posts

Title Date
Existential Dread and the End of Programming Tuesday, 17 February 2026
Context Transference Friday, 30 May 2025
7 AI Predictions (AI, We Really Need To Talk: Part 2) Thursday, 29 May 2025
Notes on the Synthesis of Form Monday, 6 January 2025
Coverage is not correctness - but it helps! Tuesday, 12 November 2024
Lo-Fi Service Discovery in .NET8 Tuesday, 21 November 2023
The Surface Area of Software Sunday, 4 December 2022
Notes on the Monorepo Pattern Sunday, 4 December 2022
Open-Source Software, Licensing and Enterprise Procurement Friday, 24 June 2022
Storing growing files using Azure Blob Storage and Append Blobs Saturday, 16 April 2022
Writing User Stories Monday, 10 January 2022
Open-Source Exploitation Monday, 13 December 2021
A Love Letter to Software Friday, 3 December 2021
Hiring is broken! Let's fix it with empathy. Thursday, 30 September 2021
How to write a tech talk that doesn’t suck. Sunday, 20 June 2021
Agile software estimation for everyone. Wednesday, 10 February 2021
Writing good code by understanding cognitive load Tuesday, 2 February 2021
9 time-management tips for developers Monday, 16 November 2020
Does Functional Programming Make Your Code Hard To Read? Wednesday, 14 October 2020
An introduction to TypeScript and ES Modules Thursday, 17 September 2020
The happy path – using Azure Static Web Apps and Snowpack for TypeScript in your front end Tuesday, 1 September 2020
Does remote work make software and teamwork better? Monday, 10 August 2020
Azure Static Web Apps Are Awesome! Wednesday, 29 July 2020
.NET Templates for C# Libraries, GitHub Actions and NuGet Publishing Monday, 4 May 2020
Deploying Azure WebApps in 2020 with GitHub Actions Sunday, 3 May 2020
The Quarantine Project Sunday, 3 May 2020
Running .NET Core apps on Glitch! Thursday, 26 March 2020
Small thoughts on literate programming Friday, 28 February 2020
Hardware Hacking with C# and JavaScript Wednesday, 29 January 2020
Music Streaming and the Disappearing Records Sunday, 15 December 2019
Architecture for Everyone Thursday, 12 December 2019
Creating Spark Dataframes without a SparkSession for tests Tuesday, 26 March 2019
Building .NET Apps in VSCode (Not .NetCore) Thursday, 17 November 2016
Get Coding! - I wrote a book. Tuesday, 28 June 2016
Why code reviews are important Thursday, 7 April 2016
Projections in Agile Software Development Saturday, 28 November 2015
Using C# 6 Language Features In Your Software Tomorrow Monday, 20 July 2015
Passenger - A C# Selenium Page Object Library (Video) Monday, 27 April 2015
Page objects for browser automation - 101 Wednesday, 1 April 2015
We need to talk about configuration. Thursday, 5 March 2015
Cutting CODE!-A livestream show for programmers Sunday, 1 February 2015
Deployments in .NET 2014/2015 Report Friday, 16 January 2015
Testing an ASP.NET WebAPI app in memory Wednesday, 7 January 2015
Thoughts about delivering platforms from Nick Dentons leaked memo Thursday, 11 December 2014
NuGet 101 - A Bootcamp Tuesday, 9 December 2014
Deployments on Windows / .NET in 2014 Thursday, 13 November 2014
Garbage Collection in .NET - Workstation vs. Server GC. Thursday, 6 November 2014
Code dojos as a learning tool Wednesday, 5 November 2014
Performance Tuning and the Importance of Metrics Sunday, 26 October 2014
Lessons learnt running a public API from #dddnorth Sunday, 19 October 2014
Deferred execution in C# - fun with Funcs Thursday, 16 October 2014
How to make it harder for people to steal your users accounts (and data!) Wednesday, 3 September 2014
Inverting the FN keys on a Microsoft Wedge Keyboard Monday, 11 August 2014
A summer in the wilderness; on not working; volunteering; taking clients Wednesday, 6 August 2014
Continuously deploying Azure services using AppVeyor and GitHub Tuesday, 13 May 2014
Exploring QueueBackgroundWorkItem in ASP.NET and Framework 4.5.2 Friday, 9 May 2014
Slidedeck + Video - Profiling applications with dotTrace Friday, 2 May 2014
Writing technical stuff that people want to read Wednesday, 23 April 2014
Doing Open Source Right Monday, 31 March 2014
ASP.NET MVC 101 - Extensibility Points Thursday, 20 March 2014
HTML Image tags and onerror javascript handlers Wednesday, 5 March 2014
Introducing:ReallySimpleFeatureToggle Monday, 3 March 2014
SSL Termination and ASP.NET Wednesday, 12 February 2014
The Assassination of OR/Ms …by that coward, relational storage Tuesday, 11 February 2014
Azure WebJobs and continuous delivery Thursday, 23 January 2014
Definition of 'refucktoring' in English Saturday, 4 January 2014
Lessons Learnt Authoring Software Libraries Tuesday, 3 December 2013
Instant Nancy Web Development - A book review Wednesday, 27 November 2013
Using build failure conditions in TeamCity to ensure "improving" test coverage in .NET apps Monday, 18 November 2013
Announcing:System.Configuration.Abstractions Wednesday, 6 November 2013
Writing great user stories Wednesday, 6 November 2013
Lessons learnt scaling a big mainstream RESTful API Sunday, 27 October 2013
JustGiving's love affair with Nancy - A case study Monday, 7 October 2013
Using SimpleServices to build a runnable and installable windows service Friday, 27 September 2013
Using #NancyFx to make "invisible" applications visible Wednesday, 25 September 2013
Building software that’s easy to monitor and administer Monday, 23 September 2013
A source control strategy for Git that “just works” Wednesday, 11 September 2013
How did [some bug] pass QA? Friday, 2 August 2013
The Pragmatic Polyglot Monday, 24 June 2013
Think people aren’t communicating? Remember you have the privilege of looking at the code Tuesday, 18 June 2013
Composition over inheritance at a macro level - composing applications from packages Thursday, 28 March 2013
A quick ASP.NET MVC Extension to support CDNs Wednesday, 20 March 2013
...from the trenches - 01 - Profiling a C# web app with dotTrace Sunday, 24 February 2013
The Anatomy of a Continuous Deployment System Wednesday, 13 February 2013
A prettier way to parse strings in C# Friday, 11 January 2013
Should I train as a programmer or learn how to code? Friday, 7 December 2012
Easy Google Analytics Event Tracking-Do it by convention! Wednesday, 5 December 2012
Can I delete *.regtrans-ms files from c:\windows\system32\config Friday, 26 October 2012
Effective software delivery–Tips for keeping your releases predictable Sunday, 29 January 2012
Effective software delivery–Short, consistent release cycles Sunday, 29 January 2012
iTunes Persistent Id Cloner - Sync one iPhone / iPod with many computers Wednesday, 25 January 2012
JustGiving Direct Debit SDI–Y U NO WORK?! Sunday, 11 December 2011
Configuring Windows Server 2008 R2 as a non-domain file server Monday, 28 November 2011
CouchDb using C# in 15 minutes Monday, 14 March 2011
The perils of outsourcing software development Monday, 29 November 2010
Pluralization (Pluralisation!) in C# Monday, 15 November 2010
JustGiving <3 CharityHack 2010 Thursday, 9 September 2010
Serving different views for mobile devices in ASP.NET MVC Monday, 3 May 2010
Automatic Html Encoding in ASP.NET 4.0 Tuesday, 13 April 2010
What Are APIs Anyway? Friday, 19 February 2010
C# Access Modifiers Are Type Specific, NOT Instance Specific Wednesday, 17 February 2010
ASP.NET MVC View Engine That Supports View Path Inheritance Tuesday, 19 January 2010
I don’t understand Bayonetta Sunday, 10 January 2010
Albums of the year… 2009… Tuesday, 15 December 2009
Writing Presentable Code Pt.1 – Properties and Variables Wednesday, 4 November 2009
Reusable Editable Fields for ASP.net MVC Using jQuery Thursday, 8 October 2009
Creating a WCF Proxy to talk to Magento Monday, 5 October 2009
Designing Client Facing APIs – Best Practices Wednesday, 30 September 2009
In defence of current-gen game design Saturday, 5 September 2009
Localizing ASP.Net MVC Pages without the need to RunAt=”server” Thursday, 20 August 2009
MobileTFL 1.0.0.9 Sunday, 9 August 2009
MobileTFL 1.0.0.8 Friday, 31 July 2009
After some radio silence – videogames! Monday, 6 July 2009
Xml Comment Hell – A Software anti-pattern Monday, 6 July 2009
How far has A.I. in games really come? Monday, 1 June 2009
C# Extension Methods To Get Enum DescriptionAttributes And Other Custom Attributes Thursday, 23 April 2009
Installing certificates using WiX / Voltive (A Code Sample) Wednesday, 22 April 2009
Using A Wiki To Replace Requirements And Produce Documentation For Your Agile Projects Tuesday, 7 April 2009
Controlling Your Software Development Environment And Release Cycle In An Agile Way Sunday, 22 March 2009
Custom HTC Diamond ROMs Not Waking Up To Email Alerts Friday, 20 March 2009
XNA Game Development:Coding For Multiplatform Multiplayer Thursday, 12 March 2009
XNA Game Development:Coding For Multiplatform Multiplayer 2 Thursday, 12 March 2009
Game Development Tuesday, 10 March 2009
Why I Love Stand Up Meetings And How To Make Them Work For You Friday, 27 February 2009
Simple C# HTTP Server for Windows Mobile Tuesday, 17 February 2009
Bargain Bin Games:“Stranglehold” and “Kane and Lynch” Wednesday, 11 February 2009
Installing Certificates using Wix (Windows Installer Xml / Voltive) Wednesday, 11 February 2009
So I finished Fallout 3 finally... Tuesday, 3 February 2009
C# Subversion ChangeLog Generator Monday, 19 January 2009
SEO Lies & Real Solutions (Or Why SEO Experts Are All Hacks) - A Case Study Thursday, 15 January 2009
Late Night Therapy Tuesday, 13 January 2009
Microsoft, thankfully, standing firm on BluRay and the 360 Friday, 9 January 2009
A Few Of My Favourite Things (Of 2008) Wednesday, 7 January 2009
The Death of Middle Tier Games Studios Thursday, 18 December 2008
On How I Learnt More About Business And People From World of Warcraft Than From "Corporate Life" Monday, 1 December 2008
XBox Live Connection Bug - Live won't automatically connect until you perform a network test Wednesday, 19 November 2008
Peer to peer networking using Windows Communication Foundation (WCF) Peer Channels and the Peer Mesh (C# .Net) Monday, 17 November 2008
Do Good Things (Fable II) Thursday, 30 October 2008
Protecting Your Software - Authorisation and You Tuesday, 30 September 2008
StackOverflow, Bloodstock and The Clone Wars (Catching Up) Monday, 18 August 2008
Vintage Game Club:Grim Fandango Monday, 14 July 2008
Embrace, Extend, Extinguish:Integration with Uncooperative Systems Saturday, 12 July 2008
The Vote Of No Confidence In The Entity Framework Wednesday, 25 June 2008
The Dangers Of Pushing The "Cloud" To Market Saturday, 21 June 2008
C# Developers Toolbelt Sunday, 8 June 2008
Selecting a mostly portable notebook Thursday, 5 June 2008
Beyond Good and Evil 2 Wednesday, 28 May 2008
Web 3.0 Data Silos and Identity Portals - Overthrowing social networks Tuesday, 20 May 2008
Stop Holding My Data Hostage - Data Ownership and Web 3.0 Tuesday, 6 May 2008
Nine Inch Nails - The Slip Tuesday, 6 May 2008
The Church of VB.Net Monday, 28 April 2008
Discipline Tuesday, 22 April 2008
Sharepoint Tuesday, 22 April 2008
Ashes Divide samples appear online Wednesday, 2 April 2008
RunAsRadio - Scott Kveton Shares His OpenID! Friday, 28 March 2008
Fractured Online Identities Wednesday, 26 March 2008
Singularity Wednesday, 5 March 2008
Self Hosted WCF Services Revisited Wednesday, 5 March 2008
LucasArts adventures reincarnated Saturday, 1 March 2008
Development Tricks:Debug View Friday, 22 February 2008
Using C#, Inversion of Control and WCF to produce a generic host for use in distributed systems. Thursday, 21 February 2008
Pigs are flying and Microsoft are opening APIs Thursday, 21 February 2008
Mass Effect Sunday, 3 February 2008
Game Development in C# (XNA Woes) Monday, 28 January 2008
2008 Sunday, 6 January 2008
Duke Nukem Forever Trailer Wednesday, 19 December 2007
After such radio silence... Sunday, 29 July 2007
Moving Forwards Friday, 4 May 2007