All Posts
- 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)