It's one of the paradoxes of blogging that most every blogger (including myself) is sharing what they know right now (let's quietly ignore those who blog purely for traffic and vanity). Since everyone is learning, this can result in poor or misleading information being shared just as much as good information. Keep this in mind as you read any blog - including this one. How experienced is the writer? How well do they really know what they're talking about? Do they blog about their mistakes as well as their successes?
I'm just as flawed as other bloggers, so you should feel encouraged to check my ideas for yourself. Keep the date in mind as well - in our fast moving field, even good ideas can become obsolete.
Monday, February 27 2023 api-design
The API we presented last time had a problem - it required users to remember to call
Initialize() before an instance could be used without problems occurring.
Saturday, February 18 2023 api-design
Imagine that you’re working on an unreleased project, and you discover a need to extend one of your custom types. There’s some complex initialization required before methods will work properly.
Sunday, September 11 2022 techniques
How do you decide what methods or functions to write as you’re coding? Here’s a technique that I learned about years ago that guides you towards software with great reusability and easier testability.
Saturday, July 02 2022 good-samaritan
When we finished last time, I’d just run a simple bash script with some surprising output.
Saturday, June 25 2022 good-samaritan
Here’s a bit of a puzzle - all of the clues in this post, and the answer will follow in the next one. It starts with trying to write a simple bash script to create an Azure Resource Group.
|Equality in .NET||7|
|Immutable Priority Queues||15|
|Killing the Utility Class||5|
|Instance validation in C#||12|
|Improve your troubleshooting by aggregating errors||11 Jun 2022|
|Improve your troubleshooting by wrapping errors||28 May 2022|
|Keep your promises||14 May 2022|
|When are you done?||18 Apr 2022|
|Fixing GitHub Authentication||28 Nov 2021|
|Sharpen The Saw - August 2021||31 Jul 2021|
|Gesticulation Driven Development (GDD)||24 Jul 2021|
|Magpie Driven Development (MDD)||10 Jul 2021|
|Sharpen The Saw - July 2021||03 Jul 2021|
|Rockstar Driven Development (RDD)||26 Jun 2021|
|Distraction Driven Development (DDD)||12 Jun 2021|
|Sharpen The Saw - June 2021||05 Jun 2021|
|Promotion Driven Development (PDD)||29 May 2021|
|Complaint Driven Development (CDD)||15 May 2021|
|Profanity Driven Development (PDD)||01 May 2021|
|Hype Driven Development (HDD)||17 Apr 2021|
|The Other Development Methodologies||03 Apr 2021|
|Don't be that person||05 Dec 2020|
|Weapons of mass (privacy) destruction||04 Jul 2020|
|Caching without Race Conditions||13 Jun 2020|
|Sharpen The Saw - June 2020||06 Jun 2020|
|Automated Inbox Cleanup with PowerShell||30 May 2020|
|Don't Gloss Over Complexity||16 May 2020|
|Improved Caching||09 May 2020|
|Sharpen The Saw - May 2020||05 May 2020|
|Caching Speech||25 Apr 2020|
|Maintenance & Speech||18 Apr 2020|
|Speech Middleware||11 Apr 2020|
|Redux Middleware Implementation||28 Mar 2020|
|The Liskov substitution principle goes both ways||21 Mar 2020|