The Curious Engineer

All blogs / Software / engineering practice

dylanbeattie.net

dylanbeattie.net

Dylan Beattie's personal web site, where he writes about code, technology and travel, and shares funny music videos about software development.

Software / engineering practiceFun / humourWeb development

Posts
345 from 5 Feb 2008 to 28 Oct 2026
Posting
monthly (20 in the last year)
Kind
personal blog
Feed
https://dylanbeattie.net/feed.xml

2026 12

  1. Music
  2. “Like Somebody’s Been Practising Prison Tattoos on a Dwarf Aubergine”
  3. Don’t Reinvent The Wheel: Use What Works
  4. Plus ça Change… Plus c’est la Même Chose
  5. How to Find the Stories
  6. Look, Sir! Comments!
  7. From the Twitter Archives: npm install skynet
  8. From The Twitter Vaults: The Music of Bomm Plaketty
  9. Learning Claude Code, Part 1
  10. State of the Browser 2026
  11. Ben Died
  12. Reflections on NDC London and PubConf

2025 29

  1. The Road to Excel
  2. So You Want To Speak At Software Conferences?
  3. Fifteen Electronic Devices... Is That A LOT?
  4. Is a 100% Discount The Same As “Free”?
  5. Choosing the Right Path
  6. On The Road Again...
  7. CSS Has 239 Different Ways To Make Something Blue
  8. Naming Things is Hard... Renaming Things is Harder
  9. The Subtle Art Of Deprecating API Endpoints
  10. We Miss You, Tommy Vance
  11. Could HTTP 402 be the Future of the Web?
  12. The Linebreakers Video Macro
  13. What The Fork Is Going On?
  14. On The Fungibility of Trains
  15. Sending Email with .NET: From Zero to Hero
  16. The Problem with “Vibe Coding”
  17. Lunch'n'Learn with the Amsterdam Java User Group
  18. 's-Hertogenbosch
  19. An Interactive CSS Flexbox Playground
  20. Metaphors
  21. "Open Source, Open Mind" - A Free Meetup with Info Support in Veenendaal
  22. Martin reckons it'll take me 20 minutes to write a blog post.
  23. Iconography is Hard: VS2022 Refresh Edition
  24. Visual Studio 2022 17.13.1 Broke My Syntax Highlighting
  25. Replaying Keystrokes with AutoHotkey macros
  26. “How To Be a Rockstar Developer” at DDD North
  27. Faking the HTTP Request URL in ASP.NET MVC
  28. Posting with SveltiaCMS from my phone
  29. SveltiaCMS, Jekyll and GitHub Pages

2024 7

  1. Windows Defender detects Trojan:Script/Wacatac.B!ml in a zipped .NET 9 AOT binary
  2. Running Corel Linux on QEMU
  3. Using the Contour ShuttleXpress with Camtasia
  4. Recording Meetups
  5. Custom Validation Attributes in ASP.NET Core 8
  6. Choosing a Chat App For Your Tech Event
  7. Fixing 'Version conflict detected for Microsoft.CodeAnalysis.Common'

2023 11

  1. The Hang of Thursdays #7
  2. The Hang of Thursdays #6
  3. The Hang of Thursdays #5
  4. The Hang of Thursdays #4
  5. The Hang of Thursdays #3
  6. Travelling with Tiny Guitars
  7. The Hang of Thursdays #2
  8. The Hang of Thursdays #1
  9. The Social Meltdown
  10. What Should 'Cancel' Do?
  11. What's in a (Version) Number?

2022 9

  1. Modern Frontends Live
  2. The Road To Guitaraoke, Part 1: Vamp, Chordino, ImageSharp, and ffmpeg
  3. Fun with Docker and /etc/hosts
  4. Reinstalling Windows (again)
  5. Rebooting the London .NET User Group
  6. A VBA macro for storyboarding PowerPoint slide decks
  7. “The Art of Code” Workshops with fwdays to support Ukraine
  8. Database already exists when running EF Core migrations
  9. Securing Admin Pages with ASP.NET and Azure AD

2021 11

  1. Copying Your Hard Drive With Robocopy
  2. On The Road Again
  3. UK Road Signs (Redesigned by Google)
  4. How (Not) to Respond to a CFP
  5. Java Criminally Underhyped? Not Back in 1997.
  6. Introduction to Distributed Systems with .NET: A Live Online Workshop with fwdays
  7. The ONYX BOOX Note Air: Android 10.0 on an E-Ink Tablet
  8. Guru Meditation and Bad Error Messages
  9. Online Workshops in 2021
  10. Adding Events to a Google Calendar via a Link
  11. Petrucci: A Rockstar interpreter in TypeScript: Part 1 & 2

2020 49

  1. Dylan's Advent of Cool Nerd Things Day 25: Ninite
  2. Dylan's Advent of Cool Nerd Things Day 24: Mailtrap
  3. Dylan's Advent of Cool Nerd Things Day 23: Autoruns
  4. Holidays in the Holodeck
  5. Dylan's Advent of Cool Nerd Things Day 22: Beyond Compare
  6. Dylan's Advent of Cool Nerd Things Day 21: EarTrumpet
  7. Dylan's Advent of Cool Nerd Things Day 20: OBS
  8. Dylan's Advent of Cool Nerd Things Day 19: Canva and Unsplash
  9. Dylan's Advent of Cool Nerd Things Day 18: GitKraken
  10. Dylan's Advent of Cool Nerd Things Day 17: Carbon
  11. Dylan's Advent of Cool Nerd Things Day 16: 7-Zip
  12. Dylan's Advent of Cool Nerd Things Day 15: Paletton
  13. Solving Advent of Code in Amstrad LOGO
  14. Dylan's Advent of Cool Nerd Things Day 14: Typora
  15. Dylan's Advent of Cool Nerd Things Day 13: Chrome Dino Game
  16. Dylan's Advent of Cool Nerd Things Day 12: Open Hardware Monitor
  17. Dylan's Advent of Cool Nerd Things Day 11: Audacity
  18. Dylan's Advent of Cool Nerd Things Day 10: Fira Code
  19. Dylan's Advent of Cool Nerd Things Day 9: Microsoft PowerToys
  20. Dylan's Advent of Cool Nerd Things Day 8: Instant Eyedropper
  21. Dylan's Advent of Cool Nerd Things Day 7: ngrok
  22. Dylan's Advent of Cool Nerd Things Day 6: Franz
  23. Dylan's Advent of Cool Nerd Things Day 5: WClock
  24. Dylan's Advent of Cool Nerd Things Day 4: X-Box Game Bar
  25. Dylan's Advent of Cool Nerd Things Day 3: Reincubate Camo
  26. Dylan's Advent of Cool Nerd Things Day 2: WinDirStat
  27. Dylan's Advent of Cool Nerd Things Day 1: Sizer
  28. Spark - a tiny standalone HTTP server
  29. Using HTTPS with Kestrel in .NET Core
  30. Whatever Happened to "Don't Be Evil"?
  31. Where's the YouTube Video?
  32. How I Write Timed Talks
  33. Workshop: Introduction to Distributed Systems with .NET
  34. Using Canon DSLR Cameras as Webcams
  35. Stay In, Rock Out: I'm Playing Live Online!
  36. Locking Down & Levelling Up, Part 1: New Computer Time
  37. Running Jekyll on WSL2
  38. Piedroit: A Raspberry Pi-powered USB Footpedal (Part 2)
  39. Piedroit: A Raspberry Pi-powered USB Footpedal (Part 1)
  40. Microphone Tips for Remote Presentations
  41. Online Presentation Tips
  42. Going Virtual with NDC Copenhagen
  43. Going Virtual, Part 3
  44. Going Virtual, Part 2
  45. NDC Online Community Ambassador
  46. Going Virtual, Part 1
  47. Spleeter: Like Unbaking a Cake, but for Music
  48. Look! I Made a Company!
  49. Speaking and Playing at GOTO Oslo 2020

2019 8

  1. Shaving the Jekyll Yak
  2. NDC Meetups in Portugal in January
  3. Better Meetings with Agenda Defender
  4. About That Meetup.com Announcement
  5. Publishing Talks
  6. Migrating from Blogger to GitHub Pages
  7. Saint-Petersburg, Russia - Tips for Tech Travellers
  8. A release notes bookmarkdownlet for Pivotal Tracker

2018 4

  1. PostgreSQL, Heroku, .NET Core and npgsql
  2. The Horrors Lurking in your Legacy Codebase
  3. Reflections on Alt.NET Birmingham 2018
  4. Tech and travel in Russia, Belarus and Ukraine

2017 24

  1. Thank you for flying Analysis Airways
  2. Goodbye Spotlight… Hello Skills Matter!
  3. London .NET User Group Open Mic Night
  4. Why You Weren’t Picked For NDC London
  5. London, London, Uber Alles
  6. Generating self-signed HTTPS certificates with subjectAltNames
  7. Deployment Through the Ages
  8. Securing Blogger with CloudFlare and HTTPS
  9. Summer 2017 .NET Community Update
  10. Use Flatscreens
  11. Interview with Channel 9 at NDC Oslo
  12. Interview with habrahabr.ru about HTTP APIs in .NET
  13. It Works On My Machine!
  14. Robert M. Pirsig on "Stuckness"
  15. There’s a problem with the phalange!
  16. The Pursuit of APIness: The Secret to Happy Code
  17. Goodbye ECMAScript; hello UKMAScript!
  18. It's a bug! It's a feature! It's… a limitation of the fundamental design of your test framework?
  19. Progressive.NET 2017 : Call for Themes
  20. Bring back alt.NET? But… why?
  21. Naming Things is Hard: Spotlight Edition
  22. Semantic Versioning with Powershell, TeamCity and GitHub
  23. Sharing a Dropbox folder using Bootcamp and exFAT
  24. My Life with the Microsoft Natural Keyboard

2016 30

  1. IdentityServer, OpenID Connect and Microsoft CRM Portals
  2. The Laws of Distributed Systems
  3. The Mystery of the Chinese Junk
  4. Upcoming Conferences and User Group Talks
  5. Affordances, Signifiers, and Cartographobia
  6. ASP.NET Authentication with Adxstudio
  7. ASP.NET Core 1.0 High Performance
  8. Why I'm Voting Remain: Social Media Redux
  9. Why I’m Voting to Remain in the European Union.
  10. Join us at the Progressive.NET Tutorials 2016!
  11. The Next Big(int) Thing
  12. We're Gonna Build a Framework!
  13. London.NET User Group – A Progressive.NET Special!
  14. Hintjens
  15. Coming Soon To A City Near You…
  16. The Axosoft GitKraken Songwriting Battle!
  17. Exupérianism: Improving Things by Removing Things
  18. How to *really* break the internet.
  19. The Mysterious Case of the Latin General: Collations in SQL Server
  20. Better Hypermedia Through Obfuscation
  21. “How Can Software Be So Hard?”
  22. Let’s Talk About Feedback
  23. “The Face of Things to Come” from PubConf
  24. Would you like to speak at London .NET User Group in 2016?
  25. Conway’s Law and the Mythical 17:00 Split
  26. The Rest of ReST at NDC London
  27. Confession Time. I Implemented the EU Cookie Banner
  28. Restival Part 6: Who Am I, Revisited
  29. Restival Part 5: Who Am I?
  30. In London next Saturday? Come to PubConf!

2015 15

  1. Restival Part 6: Who Am I, Revisited
  2. Restival Part 5: Who Am I?
  3. Membership and Dynamics CRM - How's It All Going, Then?
  4. Dynamics CRM Online: Any SMTP Server You Like! (as long as it's Gmail or Yahoo)
  5. As a Developer, I Want to Abolish User Stories, So That I Can Ship Great Products Faster.
  6. The Mysterious Case of the Missing Milliseconds
  7. REST Workshop at Progressive.NET 2015 next week
  8. Slides and code from NDC Oslo 2015
  9. Restival Part 4: Deployment and Fun with Case Sensitivity
  10. Restival Part 2 Revisited: Attribute Routing in WebAPI
  11. Restival Part 3: Hello, World!
  12. Restival Part 2: All Aboard The Routemaster
  13. One API, Four Frameworks: The Great .NET ReST Showdown
  14. Spotlight, Dynamics CRM, and the age-old question of “build vs buy”
  15. Spotlight, Dynamics CRM, and the age-old question of “build vs buy”

2014 3

  1. NSBCon 2014 – All About NServiceBus
  2. How to read FormsAuthentication.Timeout in .NET 3.5
  3. Friday Puzzle Time! (aka EU Roaming Data Charges)

2013 5

  1. The Joy of GUIDs
  2. Automatic Semantic Versioning with GitHub and TeamCity
  3. Building a ServiceStack-based OAuth2 resource server using DotNetOpenAuth
  4. Linking Subversion Commits to Pivotal Tracker on Windows using Powershell
  5. Adventures in Querying with RavenDB

2012 8

  1. Adventures with Powershell and Amazon EC2 (part 1)
  2. The Joy of Forms Authentication, IIS7 and Device Profiles
  3. Rocksmith for Guitar Players
  4. Ripping Off Paying Customers the Ubisoft Way
  5. SECURITY_DENIED_BY_MIMEMAP Hosting WCF Services in IIS 7 Classic Mode
  6. Planning Poker… with LOLCATS
  7. Cross-Domain Forms Authentication with ASP.NET
  8. Snowcode 2012

2011 20

  1. GiveCamp UK 2011 – A Retrospective
  2. Moleskine + Kindle = ... Moleskindle?
  3. Software Development - HORSE-style
  4. SkillsMatter Progressive.NET Tutorials 2011
  5. Just Do It: Command-Query Segregation, Nike-Style
  6. How to install "Active Directory Users and Computers" on your Windows 7 Workstation
  7. Why Cloning Classic Games in Javascript Makes for a Great Hack Day
  8. Notes from the KaboomJS! LonDev Hack-Day
  9. Want to work for Spotlight?
  10. Slides and Notes from “So You Think You Know JavaScript”
  11. Churn-down Charts
  12. Development Methodologies
  13. I’ll be talking about JavaScript at Skills Matter on April 5th
  14. True Names, and Other Dangers: What Dr. Seuss Can Teach Us About SoA
  15. Making HttpContext.Current Available Within a WCF Service
  16. Check Out smtp4dev if You Build Mail-Enabled Software on Windows
  17. How to host Git in the same Apache server that comes with CollabNet Subversion
  18. Running IIS and Apache on the same Windows 2008 R2 Server
  19. “Choose Life” For DBAs
  20. Mapping a Drive Letter to a Subversion Repository with CollabNet, WebDrive and WebDAV

2010 18

  1. Christmas, Crisis and the Cloud
  2. Git Logos and Icons
  3. Sending Templated E-mail using the Spark View Engine
  4. Should “Cancel” cancel the cancellation, or just cancel the cancellation cancellation?
  5. “If It Ain’t Broke…” – Why Good Code Doesn’t Guarantee Happy Users
  6. Making iPhone Ringtones using Free Software
  7. /usr/bin/tawgo: Instant Geek Cred for Movies
  8. Stap Me Vitals! Scanning Domain Servers using System.Management
  9. Five Things I Wish My iPhone Did
  10. Fun with Powershell, SQL Backup and Automated Restores
  11. Want a Free Red Gate Tool to Support Your Open-Source .NET Project?
  12. .NET String Formatting Cheat Sheet
  13. Automating Secure FTP Backups to a Windows 2008 Server
  14. Heisenbug of the Day: IIS 7.0 Discarding POST Data From Firefox 3 when using Custom 404 Handlers
  15. Uncle Bob’s Bowling Kata in Functional C#
  16. Dynamic CSS with .less at the TechDays Open Source Evening
  17. A Manager’s Perspective - Why Attend Progressive.NET Tutorials?
  18. Fun and Games with NHibernate and String Keys

2009 46

  1. Fun with msdeploy, Extended Protection and Windows Authentication
  2. Axure RP: Lego For Software Designers
  3. A (Slightly Faster) URL Resolver Module for ASP.NET MVC
  4. A URL Resolver Module for ASP.NET MVC
  5. Code from my HTML5 / MVC2 Talk at SkillsMatter
  6. You Forgot to Say the Magic Word…
  7. Is doctype.com a License Too Far for Stack Overflow?
  8. Is There Such A Thing As Test-Driven Maintenance?
  9. There Can Be Only One. Or Two. Or Three, but Never Four.
  10. Hey… My World Wide Web Went Weird!
  11. RESTful Routing in ASP.NET MVC 2 Preview 2
  12. Coordinating Web Development with IIS7, DNS and the Web Deployment Tool
  13. A Neat Trick using Switch in JavaScript
  14. I love this photograph.
  15. A Better Example of Command-Query Separation
  16. AltNet Beers – Command/Query Separation with Udi Dahan
  17. Determining FluentNH Schema Mappings based on Entity Namespaces
  18. The Problem with Stack Overflow
  19. Alt.Net UK Conf – Unit Testing WinForms UIs
  20. Tool Time
  21. Managing Loosely-Ordered Collections : Lopsided Fun with NHibernate
  22. What If They Ran The Trains For Free?
  23. White Noise and Chaos
  24. NHibernate / Castle ByteCode provider – are you running the right number of bits?
  25. Just for Fun: The Webcam Teleprompter Shroud Experiment
  26. Speaking at SkillsMatter Open Source .NET Exchange III
  27. Room Service Oriented Architecture
  28. What If SQL Had Abstract Tables And Composite Types?
  29. Offsite Backup Recommendations for Really, Really Big Files?
  30. Unsubscribe (aka ‘the Internet Way of Saying “It’s Not You, It’s Me.”’)
  31. A Weird Little Quirk with Windows 7, Outlook 2007 and NormalEmail.dotm
  32. Hey, Apple. DVD + iPod - Make It Happen. Here’s How.
  33. Exifacto – a Nicer EXIF Library for .NET
  34. Just One More Reason to Love Red Gate Software
  35. Critical Mass
  36. Blog woes…
  37. A Post About Nothing, or, How I Learned To Stop Worrying And Love Nullable
  38. Specs, Bugs & Rock’n’Roll
  39. OCTV: Coming Soon to a Screen Near You?
  40. SQL Server 2005 Performance Dashboard
  41. Videos from SkillsMatter Open Source .NET Exchange
  42. Is a Crisp a Value Object?
  43. jQuery at WebTech Exchange 2009
  44. jQuery at SkillsMatter Open Source .NET Exchange
  45. The Story of the Lazy-Loading Lunchbox
  46. Two things I'd love to see in my next mobile phone

2008 32

  1. Mocking the QueryString collection in ASP.NET
  2. Open Source .NET Exchange
  3. Stuff You'll Wish You'd Known When You Switched To 64-bit Windows
  4. Fun with Server.GetLastError() in classic ASP on Windows Server 2008
  5. Lies, Damned Lies, and Statistics
  6. HQL-lo World
  7. Usability Tip of the Day: Label your Form Elements, Dammit.
  8. Working on ASP.NET MVC Beta and Preview code side-by-side
  9. A Rant about RAID, with a Bad Metaphor about Eggs, and No Happy Ending.
  10. The Roadcraft of Programming
  11. Huagati DBML Tools for Linq-to-SQL
  12. Help! I have Multiple Internet Personality Disorder!
  13. Adding a work-in-progress to Subversion
  14. Googling the Zeitgeist
  15. Updated VS2008 / Castle / NHibernate solution bundle
  16. Cycling, Eyedroppers and the Benefits of Laziness Applied with the Proper Tools
  17. ASP.NET MVC Preview 3 and Linq-to-SQL - One Month On
  18. A Ready-To-Hack Visual Studio 2008 Solution including NHibernate and Castle Active Record
  19. Making Your SVN mod_dav_svn Repository Firefox-Friendly
  20. Colour transformation in .NET and GDI+... aka "What Is The Matrix?"
  21. Crazy from the Heat...
  22. Gadgets and Gizmos Time...
  23. Strongly-Typed View References with ASP.NET MVC Preview 3
  24. Let's Usurp "Web 3.0" and Do Something Useful With It...
  25. The Future of Subversion?
  26. I Want Tony Stark's Build Server (with possible "Iron Man" Spoilers...)
  27. Subversion + WebDAV + Wiki = Cool. Fact.
  28. Getting Started with Confluence
  29. Firing Static Events from Instance Methods in C#
  30. The OUTPUT clause in SQL Server 2005
  31. Encoding videos for the Xbox 360 using ffmpeg
  32. Reflections on Alt.Net.UK

Undated 4

  1. see all past events
  2. teach people how to design distributed systems, how to build web apps, and how to give awesome presentations
  3. More... See all upcoming events
  4. Speaking