2025  6

December  2

Using null conditional and null coalescing operators for assignment in C#

  Dec 3, 2025 ·  4 min

Using Extension Members in C# 14

  Dec 2, 2025 (rev. Dec 3, 2025) ·  7 min

November  2

New (old) Beginnings

  Nov 27, 2025 ·  4 min

Pull requests aren’t a stamp of approval

  Nov 2, 2025 ·  2 min

September  1

A comparison of DateTime to DateTimeOffset

  Sep 6, 2025 (rev. Oct 30, 2025) ·  5 min

January  1

WebView2, a browser for WinForms in .NET 5

  Jan 17, 2025 (rev. Oct 11, 2025) ·  6 min

2024  14

December  9

TaskDialog, a new message box for WinForms in .NET 5

  Dec 31, 2024 (rev. Oct 11, 2025) ·  6 min

Selecting multiple directories with the FolderBrowserDialog in .NET 9

  Dec 19, 2024 (rev. Oct 11, 2025) ·  2 min

How to Use GetStockIcon for WinForms in .NET 8

  Dec 18, 2024 (rev. Oct 11, 2025) ·  5 min

Using Raw String Literals in C# 11 / .NET 7

  Dec 14, 2024 (rev. Oct 11, 2025) ·  5 min

Using Primary Constructors with Classes and Structs in C# 12 / .NET 8

  Dec 13, 2024 (rev. Oct 11, 2025) ·  5 min

Records, Classes and Equality in C# 9 / .NET 5

  Dec 10, 2024 (rev. Oct 11, 2025) ·  6 min

Set-based LINQ - ExceptBy, IntersectBy, UnionBy, DistinctBy

  Dec 8, 2024 (rev. Oct 11, 2025) ·  6 min

Using MinBy and MaxBy in C# 10 / .NET 6

  Dec 5, 2024 (rev. Oct 11, 2025) ·  5 min

Using CountBy and AggregateBy in C# 13 / .NET 9

  Dec 3, 2024 (rev. Oct 11, 2025) ·  5 min

October  1

Async, CancellationToken, and IProgress in 5 Short Examples

  Oct 7, 2024 (rev. Oct 11, 2025) ·  8 min

February  1

Using TimeProvider and FakeTimeProvider in WinForms

  Feb 5, 2024 (rev. Oct 11, 2025) ·  7 min

January  3

SSRS won’t show the updated default value for a parameter

  Jan 31, 2024 (rev. Oct 11, 2025) ·  6 min

How to use (and test) TimeProvider timers in .NET

  Jan 11, 2024 (rev. Oct 11, 2025) ·  10 min

How to use TimeProvider and FakeTimeProvider (time abstraction in .NET)

  Jan 7, 2024 (rev. Oct 11, 2025) ·  12 min

2023  21

December  2

Similar endpoints, swagger pages, and a DevOps fail

  Dec 12, 2023 (rev. Oct 11, 2025) ·  4 min

Diligence, laziness.. or both?

  Dec 4, 2023 (rev. Oct 10, 2025) ·  2 min

November  2

A swirly mass of shared code

  Nov 14, 2023 (rev. Oct 10, 2025) ·  3 min

If/else vs switch/case pattern matching

  Nov 3, 2023 (rev. Oct 11, 2025) ·  9 min

August  5

What are list patterns in C#?

  Aug 31, 2023 (rev. Oct 11, 2025) ·  8 min

Even in failure, an increase in understanding is a win

  Aug 24, 2023 (rev. Oct 10, 2025) ·  3 min

What are generic attributes in C# 11?

  Aug 23, 2023 (rev. Oct 11, 2025) ·  6 min

Simple ways to notify a user without a MessageBox in WinForms

  Aug 16, 2023 (rev. Oct 11, 2025) ·  6 min

How to call an async method from a synchronous one, without deadlocking

  Aug 11, 2023 (rev. Oct 11, 2025) ·  7 min

July  4

What’s the difference between singleton, scoped, and transient?

  Jul 28, 2023 (rev. Oct 11, 2025) ·  3 min

How can I generate a new GUID?

  Jul 27, 2023 (rev. Oct 11, 2025) ·  4 min

Comparing files in VS Code

  Jul 26, 2023 (rev. Oct 11, 2025) ·  2 min

How to log messages to multiple targets with NLog

  Jul 2, 2023 (rev. Oct 11, 2025) ·  6 min

June  2

What is the NUnit constraint model?

  Jun 26, 2023 (rev. Oct 11, 2025) ·  9 min

Adding deconstructors to C# types

  Jun 15, 2023 (rev. Oct 11, 2025) ·  5 min

April  2

Generic Math Support in C# 11

  Apr 5, 2023 (rev. Oct 11, 2025) ·  10 min

Overloading arithmetic, equality, and comparison operators in C#

  Apr 1, 2023 (rev. Oct 11, 2025) ·  7 min

March  2

What is a static abstract interface method in C#?

  Mar 31, 2023 (rev. Oct 11, 2025) ·  8 min

What is the point of points?

  Mar 22, 2023 (rev. Oct 10, 2025) ·  5 min

January  2

Why doesn’t VS 2022 show my WinForms UI at design time?

  Jan 14, 2023 (rev. Oct 11, 2025) ·  9 min

Using Tuples and deconstruction to return multiple values in C#

  Jan 5, 2023 (rev. Oct 11, 2025) ·  4 min

2022  16

December  2

Why do I need to install an extension just to copy/paste?

  Dec 31, 2022 (rev. Oct 11, 2025) ·  7 min

Converting a BackgroundWorker to a Task with TaskCompletionSource

  Dec 6, 2022 (rev. Oct 11, 2025) ·  9 min

November  1

My experience migrating to MV3

  Nov 19, 2022 (rev. Oct 11, 2025) ·  5 min

October  2

Named arguments in C#

  Oct 12, 2022 (rev. Nov 27, 2025) ·  6 min

Local functions in C# (aka nested methods)

  Oct 8, 2022 (rev. Oct 11, 2025) ·  6 min

September  2

Checking for null in C#, using the null conditional and null coalescing operators

  Sep 27, 2022 (rev. Dec 3, 2025) ·  6 min

Using string interpolation to craft readable strings in C#

  Sep 19, 2022 (rev. Oct 11, 2025) ·  4 min

August  3

6 space-related APIs to check out ahead of the Artemis I launch

  Aug 28, 2022 (rev. Oct 11, 2025) ·  9 min

Displaying an IIS hosted site in CEFSharp

  Aug 16, 2022 (rev. Oct 11, 2025) ·  2 min

Enjoying the wins, accepting the losses

  Aug 9, 2022 (rev. Oct 10, 2025) ·  2 min

July  2

ESI: Building Apps with Azure DevOps - Manage Dependencies

  Jul 30, 2022 (rev. Oct 11, 2025) ·  4 min

ESI: Building Apps with Azure DevOps - Implement a Workflow

  Jul 16, 2022 (rev. Oct 11, 2025) ·  5 min

June  2

Host a simple webpage in WinForms with CefSharp

  Jun 28, 2022 (rev. Oct 11, 2025) ·  10 min

What is Manifest V3 and why is Google pestering me about it?

  Jun 6, 2022 (rev. Oct 11, 2025) ·  12 min

January  2

Beware the bite of the refactor bug

  Jan 22, 2022 (rev. Oct 11, 2025) ·  3 min

Mocking MessageBox (or any static class) in WinForms

  Jan 7, 2022 (rev. Oct 11, 2025) ·  4 min

2021  13

December  3

Using nameof to avoid magic strings in C#

  Dec 30, 2021 (rev. Nov 27, 2025) ·  6 min

Sunk costs, timeboxing, and asking for help

  Dec 20, 2021 (rev. Oct 10, 2025) ·  2 min

A more helpful exception box for WinForms apps

  Dec 7, 2021 (rev. Oct 11, 2025) ·  3 min

October  2

Every software dev is a contractor

  Oct 19, 2021 (rev. Oct 10, 2025) ·  4 min

How to log errors in WinForms using NLog

  Oct 9, 2021 (rev. Oct 11, 2025) ·  5 min

July  3

Move a subdirectory into its own Git repo, with history

  Jul 30, 2021 (rev. Oct 11, 2025) ·  2 min

Can I write my own HTML tags?

  Jul 15, 2021 (rev. Oct 11, 2025) ·  4 min

Avoiding tribal knowledge in the programming world

  Jul 5, 2021 (rev. Oct 10, 2025) ·  4 min

June  2

Using MVP to test a WinForms app

  Jun 9, 2021 (rev. Oct 11, 2025) ·  9 min

Using Async, Await, and Task to keep the WinForms UI responsive

  Jun 7, 2021 (rev. Oct 11, 2025) ·  8 min

May  1

What is DotNet Try?

  May 29, 2021 (rev. Oct 11, 2025) ·  4 min

February  1

Be ready to explain your code

  Feb 3, 2021 (rev. Oct 13, 2025) ·  2 min

January  1

Scratch that itch for coding!

  Jan 19, 2021 (rev. Oct 11, 2025) ·  5 min

2020  13

December  1

What is mocking a dependency?

  Dec 9, 2020 (rev. Oct 11, 2025) ·  8 min

November  1

What is a code review / pull request?

  Nov 28, 2020 (rev. Nov 2, 2025) ·  9 min

October  1

The transient nature of code

  Oct 11, 2020 (rev. Oct 11, 2025) ·  2 min

September  3

The right way to rethrow an exception in C#

  Sep 17, 2020 (rev. Oct 11, 2025) ·  4 min

How will I know when I’m a programmer?

  Sep 15, 2020 (rev. Oct 11, 2025) ·  4 min

A 30th anniversary Zelda tribute, in Node.js

  Sep 9, 2020 (rev. Oct 11, 2025) ·  6 min

June  1

Creating a basic Word Cloud in Python

  Jun 4, 2020 (rev. Oct 11, 2025) ·  2 min

May  2

Where should I store application data in Windows?

  May 22, 2020 (rev. Oct 11, 2025) ·  4 min

What is the Law of Demeter?

  May 2, 2020 (rev. Oct 11, 2025) ·  6 min

April  1

13 addons to power up your GitHub game

  Apr 4, 2020 (rev. Oct 12, 2025) ·  15 min

February  2

How to find the iCal address for a public Google calendar

  Feb 28, 2020 (rev. Oct 11, 2025) ·  2 min

How to make a dark mode with CSS

  Feb 13, 2020 (rev. Oct 11, 2025) ·  3 min

January  1

Deploy your own RequestBin in under 5 minutes

  Jan 5, 2020 (rev. Oct 11, 2025) ·  5 min

2019  28

December  4

Why are websites requesting access to motion sensors… on my desktop?

  Dec 30, 2019 (rev. Oct 10, 2025) ·  11 min

Hands-on Ansible, using two DigitalOcean Ubuntu droplets

  Dec 18, 2019 (rev. Oct 11, 2025) ·  4 min

Replacing Gmail (and its office suite) with Mailbox.org

  Dec 9, 2019 (rev. Oct 10, 2025) ·  8 min

Add and subtract time from a DateTime structure in Erlang

  Dec 1, 2019 (rev. Oct 11, 2025) ·  2 min

November  5

Only assignment, call, increment, decrement, await, and new object expressions can be used as a statement

  Nov 14, 2019 (rev. Oct 11, 2025) ·  2 min

Assign C# code to a variable and then run it

  Nov 13, 2019 (rev. Oct 11, 2025) ·  3 min

How can I find the state of NumLock, CapsLock or ScrollLock in WPF?

  Nov 12, 2019 (rev. Oct 11, 2025) ·  1 min

What is the opposite of Any in LINQ?

  Nov 11, 2019 (rev. Oct 11, 2025) ·  2 min

Enable logging for an AWS Lambda job

  Nov 7, 2019 (rev. Oct 11, 2025) ·  2 min

October  2

What’s the GitHub Package Registry?

  Oct 6, 2019 (rev. Oct 11, 2025) ·  10 min

What’s a package manager?

  Oct 3, 2019 (rev. Oct 11, 2025) ·  5 min

September  2

Using the GraphiQL IDE to access a GraphQL API

  Sep 26, 2019 (rev. Oct 10, 2025) ·  3 min

What is GraphQL and how does it differ from REST?

  Sep 21, 2019 (rev. Oct 11, 2025) ·  3 min

August  1

Create a TOTP 2FA code for your app

  Aug 13, 2019 (rev. Oct 11, 2025) ·  7 min

June  1

What is minification vs obfuscation?

  Jun 14, 2019 (rev. Oct 11, 2025) ·  6 min

May  3

Protect your GitHub account to keep your code secure

  May 22, 2019 (rev. Oct 11, 2025) ·  10 min

Modify a config file in Erlang

  May 16, 2019 (rev. Oct 11, 2025) ·  4 min

Running Windows XP in VirtualBox

  May 4, 2019 (rev. Oct 10, 2025) ·  5 min

April  3

Using an application config file with a .NET Standard app and NUnit 3

  Apr 15, 2019 (rev. Oct 11, 2025) ·  6 min

Using a constant as a DateTime format inside string interpolation

  Apr 4, 2019 (rev. Oct 11, 2025) ·  2 min

Using Attributes in C#

  Apr 4, 2019 (rev. Nov 27, 2025) ·  10 min

March  3

Opening the developer console in every major browser

  Mar 26, 2019 (rev. Nov 27, 2025) ·  3 min

Keep your EUnit teardown logic as simple as possible!

  Mar 14, 2019 (rev. Oct 11, 2025) ·  6 min

Regaining access to a Mozilla Addons account

  Mar 13, 2019 (rev. Oct 10, 2025) ·  2 min

February  4

Find info about an IP address with the IP Geolocation API

  Feb 12, 2019 (rev. Oct 11, 2025) ·  4 min

Fun web comics for developers

  Feb 10, 2019 (rev. Oct 11, 2025) ·  3 min

Common dialyzer errors and solutions in Erlang

  Feb 9, 2019 (rev. Oct 11, 2025) ·  11 min

5 Markdown Tricks for GitHub

  Feb 6, 2019 (rev. Oct 11, 2025) ·  4 min

2018  21

October  1

Hosting a GitHub wiki on Ubuntu (and keeping it in sync)

  Oct 29, 2018 (rev. Oct 11, 2025) ·  10 min

September  1

A few thoughts on date/time handling in Erlang

  Sep 3, 2018 (rev. Oct 11, 2025) ·  5 min

August  1

How to select an earlier .NET version on Visual Studio for Mac (tl;dr: you can’t)

  Aug 20, 2018 (rev. Oct 10, 2025) ·  4 min

July  2

Convert code from C# to VB.NET and back

  Jul 18, 2018 (rev. Oct 11, 2025) ·  4 min

Calculate Easter and other holidays in Erlang

  Jul 1, 2018 (rev. Oct 10, 2025) ·  3 min

June  6

Access yesterday’s Internet with the Wayback Machine API

  Jun 24, 2018 (rev. Oct 11, 2025) ·  8 min

A look at the many ways APIs can authorize access

  Jun 19, 2018 (rev. Oct 11, 2025) ·  11 min

A random selection algorithm that factors in age (weighted selection)

  Jun 7, 2018 (rev. Oct 11, 2025) ·  7 min

Getting rid of unused function errors when using timers in Erlang

  Jun 6, 2018 (rev. Oct 11, 2025) ·  3 min

Tweet random blog posts from an RSS feed using AWS Lambda

  Jun 2, 2018 (rev. Oct 11, 2025) ·  7 min

Tweet random posts from a Ghost blog using AWS Lambda

  Jun 1, 2018 (rev. Oct 11, 2025) ·  8 min

May  1

Are property accessors possible in Erlang records?

  May 22, 2018 (rev. Oct 11, 2025) ·  8 min

April  1

Create a secure, personal instance of DokuWiki on DigitalOcean

  Apr 1, 2018 (rev. Oct 10, 2025) ·  9 min

February  4

Automatically add links to all headers on a website (a Chrome extension)

  Feb 25, 2018 (rev. Oct 10, 2025) ·  4 min

Manage blog posts, tags, and users with Ghost API v5.0

  Feb 8, 2018 (rev. Oct 11, 2025) ·  5 min

Generate random passwords, numbers and GUIDs with the PasswordRandom API

  Feb 6, 2018 (rev. Oct 11, 2025) ·  4 min

Creating a table of contents for your blog

  Feb 3, 2018 (rev. Oct 11, 2025) ·  5 min

January  4

Manage your books with the Google Books API

  Jan 31, 2018 (rev. Oct 12, 2025) ·  7 min

What is an API wrapper?

  Jan 25, 2018 (rev. Oct 11, 2025) ·  5 min

How to autolink all images in Ghost to the full resolution

  Jan 22, 2018 (rev. Oct 10, 2025) ·  2 min

Access Game Data with the IGDB API v4

  Jan 1, 2018 (rev. Oct 12, 2025) ·  4 min

2017  24

December  12

Access Book and Author Data with the Penguin Random House API

  Dec 31, 2017 (rev. Oct 12, 2025) ·  7 min

Accessing Census, Demographic, and Housing Data with the US Census Bureau API

  Dec 30, 2017 (rev. Oct 10, 2025) ·  5 min

Access Current and Historical Weather Data with the OpenWeatherMap API

  Dec 29, 2017 (rev. Oct 12, 2025) ·  5 min

Learn About the ISS and its Crew with the ISS Notify API

  Dec 28, 2017 (rev. Oct 12, 2025) ·  5 min

Manage Boards and Cards With the Trello API

  Dec 27, 2017 (rev. Oct 10, 2025) ·  5 min

View the Mars Rover, Landsat Images, and More with the NASA API

  Dec 24, 2017 (rev. Oct 12, 2025) ·  6 min

Access Climate Data With the NOAA API

  Dec 24, 2017 (rev. Oct 12, 2025) ·  9 min

Finding Directions, Coordinates and More With the Google Maps API

  Dec 23, 2017 (rev. Oct 12, 2025) ·  15 min

Managing Workspaces and Channels With the Slack API

  Dec 21, 2017 (rev. Oct 10, 2025) ·  7 min

Managing Files and Folders Using the Dropbox API

  Dec 20, 2017 (rev. Oct 10, 2025) ·  4 min

Access Buckets and Files on Backblaze With the B2 Cloud Storage API

  Dec 17, 2017 (rev. Oct 10, 2025) ·  5 min

Accessing Tweets and More With the Twitter API

  Dec 16, 2017 (rev. Oct 10, 2025) ·  5 min

November  1

Taming the Erlang Beast

  Nov 1, 2017 (rev. Oct 11, 2025) ·  9 min

September  1

Concatenate Binaries and Strings in Erlang

  Sep 26, 2017 (rev. Oct 11, 2025) ·  2 min

August  1

Creating Your First Chrome Extension

  Aug 16, 2017 (rev. Oct 10, 2025) ·  8 min

July  3

Safely Build on a Ghost Theme

  Jul 24, 2017 (rev. Oct 11, 2025) ·  3 min

What is an API?

  Jul 23, 2017 (rev. Oct 11, 2025) ·  6 min

Unit Testing in Visual Studio for Mac

  Jul 6, 2017 (rev. Oct 10, 2025) ·  3 min

April  1

5 Quick Hacks for Your Ghost Theme

  Apr 1, 2017 (rev. Oct 11, 2025) ·  5 min

March  2

Migrating a Blog from WordPress to Ghost

  Mar 26, 2017 (rev. Oct 10, 2025) ·  14 min

Evaluating a string of code in Erlang at runtime

  Mar 5, 2017 (rev. Oct 11, 2025) ·  7 min

February  1

What is charlieplexing? (a Raspberry Pi demo)

  Feb 17, 2017 (rev. Oct 10, 2025) ·  4 min

January  2

How to Create a Git Alias

  Jan 28, 2017 (rev. Oct 11, 2025) ·  4 min

5 Things You Can Do With a Locally Cloned GitHub Wiki

  Jan 16, 2017 (rev. Oct 11, 2025) ·  13 min

2016  13

October  1

Comparing Two Objects for Equality in C#

  Oct 31, 2016 (rev. Oct 11, 2025) ·  7 min

September  1

Connecting an Analog Joystick to the Raspberry Pi

  Sep 24, 2016 (rev. Oct 10, 2025) ·  9 min

August  2

Creating a Flickering Candle Using an RGB LED on the Raspberry Pi

  Aug 29, 2016 (rev. Oct 10, 2025) ·  10 min

How to Use Pulse Width Modulation (PWM) on an RGB LED and the Raspberry Pi

  Aug 22, 2016 (rev. Oct 10, 2025) ·  9 min

July  1

A Simon Game Clone for the Raspberry Pi

  Jul 28, 2016 (rev. Oct 10, 2025) ·  11 min

June  2

Creating Music with Sonic Pi on a Raspberry Pi

  Jun 21, 2016 (rev. Oct 10, 2025) ·  7 min

Create a Raspberry Pi Virtual Machine (VM) in VirtualBox

  Jun 8, 2016 (rev. Oct 10, 2025) ·  6 min

May  3

Flash an LED on Your Raspberry Pi When You Get New Email

  May 28, 2016 (rev. Oct 10, 2025) ·  6 min

Building a Morse Code Transmitter on a Raspberry Pi (version 2)

  May 19, 2016 (rev. Oct 10, 2025) ·  9 min

Using PullUp and PullDown Resistors on the Raspberry Pi

  May 9, 2016 (rev. Oct 10, 2025) ·  10 min

April  1

Building a Morse Code Transmitter on a Raspberry Pi

  Apr 3, 2016 (rev. Oct 10, 2025) ·  6 min

March  1

Hello World for the Raspberry Pi - Making an LED Blink

  Mar 26, 2016 (rev. Oct 10, 2025) ·  9 min

February  1

Building the model 4-stroke combustion engine from Smithsonian

  Feb 6, 2016 (rev. Oct 11, 2025) ·  5 min

2015  4

November  1

HacktoberFest and my first OSS contributions

  Nov 12, 2015 (rev. Oct 10, 2025) ·  2 min

February  2

Implicit vs Explicit Conversion in C#

  Feb 11, 2015 (rev. Oct 11, 2025) ·  5 min

Obsolete Attribute on a Class is Ignored When an Interface is Involved

  Feb 4, 2015 (rev. Oct 11, 2025) ·  3 min

January  1

An Extension Method to Pass a Column Name to SqlDataReader.GetFieldValue

  Jan 15, 2015 (rev. Oct 10, 2025) ·  3 min

2014  2

December  2

Passing Data Between Forms in WinForms

  Dec 12, 2014 (rev. Oct 11, 2025) ·  6 min

Filtering a ListView in WPF Using a TextBox and CollectionViewSource

  Dec 7, 2014 (rev. Oct 10, 2025) ·  5 min

2013  2

October  2

Installing Windows 3.1 in VMware Player

  Oct 24, 2013 (rev. Oct 10, 2025) ·  4 min

Installing DOS 6.22 in VMware Player

  Oct 23, 2013 (rev. Oct 10, 2025) ·  3 min