Archive
773 posts since I started this blog in 2007. You can also browse by tag.
2025 11 posts
December
April
March
February
2024 6 posts
December
January
2023 22 posts
December
November
August
March
February
2022 28 posts
December
September
July
June
May
April
March
February
January
2021 23 posts
November
October
August
July
March
February
2020 32 posts
December
November
September
June
May
April
- 29 Messaging with Azure Service Bus - Part 6 - Message Receiving Options
- 28 Messaging with Azure Service Bus - Part 5 - Message Sending Options
- 24 Messaging with Azure Service Bus - Part 4 - Sending and Receiving Messages
- 21 Messaging with Azure Service Bus - Part 3 - Introducing Azure Service Bus
- 20 Messaging with Azure Service Bus - Part 2 - The Challenges of Messaging
- 18 Messaging with Azure Service Bus - Part 1 - Why Use Messaging?
February
2019 42 posts
December
October
September
August
July
June
May
April
- 30 Containerized Activities in Durable Workflows - Part 5
- 29 Containerized Activities in Durable Workflows - Part 4
- 26 Containerized Activities in Durable Workflows - Part 3
- 25 Containerized Activities in Durable Workflows - Part 2
- 24 Containerized Activities in Durable Workflows - Part 1
- 18 What types should I use to pass collections in C#?
- 1 Avoiding Azure Functions Cold Starts
March
February
January
- 17 ARM Templates vs Azure CLI
- 14 Deploy Web and Function Apps with Run from Package
- 8 Accessing Key Vault from Azure Functions using Managed Identities
- 7 Deploying Azure Functions with the Azure CLI
- 4 Rendering Markdown to HTML and Parsing YAML Front Matter in C#
- 3 Migrating to the New Azure Service Bus SDK
2018 75 posts
December
November
October
September
- 28 Exploring MoreLINQ Part 23 - Joining
- 27 Exploring MoreLINQ Part 22 - Append and Prepend
- 26 Exploring MoreLINQ Part 21 - Side Effects
- 25 Exploring MoreLINQ Part 20 - ToDelimitedString (and friends)
- 24 Exploring MoreLINQ Part 19 - Generating sequences
- 21 Avoid Logging in Low-Level Code
- 20 Exploring MoreLINQ Part 18 - GroupAdjacent and Segment
- 19 Exploring MoreLINQ Part 17 - CountBy
- 18 Exploring MoreLINQ Part 16 - Pairwise and Resolving Ambiguities
- 17 Exploring MoreLINQ Part 15 - Windowing
- 15 Exploring MoreLINQ Part 14 - Skipping and Slicing
- 14 My Durable Functions talk at ProgNET 2018
- 10 Exploring MoreLINQ Part 13 - Random Sequences
- 7 Exploring MoreLINQ Part 12 - Run Length Encoding
- 6 Exploring MoreLINQ Part 11 - Padding
- 5 Convert an Azure Managed Disk to Standard SSD with Azure CLI
- 4 Exploring MoreLINQ Part 10 - Interleave
- 3 Exploring MoreLINQ Part 9 - FillForward
August
- 31 Create Serverless Functions
- 30 Exploring MoreLINQ Part 8 - FallbackIfEmpty
- 29 Exploring MoreLINQ Part 7 - Batching
- 28 Exploring MoreLINQ Part 6 - Taking
- 27 Exploring MoreLINQ Part 5 - Scan
- 26 Exploring MoreLINQ Part 4 - Combinations
- 25 Exploring MoreLINQ Part 3 - MinBy and MaxBy
- 24 Exploring MoreLINQ Part 2 - Counting Elements
- 23 Exploring MoreLINQ Part 1 - Zipping
- 8 Run Azure Functions in a Docker Container
July
June
May
March
February
2017 87 posts
December
- 30 2017 in review
- 25 Advent of Code Day 25-State Machines
- 24 Advent of Code Day 24–Recursive Generators
- 23 Advent of Code Day 23–Human Decompiler
- 22 Advent of Code Day 22-Sparse Grids
- 21 Advent of Code Day 21-Recursive Reflections
- 20 Advent of Code Day 20–The Long Run
- 19 Advent of Code Day 19–Following the Path
- 18 Advent of Code Day 18-Parallel Programs
- 17 Advent of Code Day 17–Splicing Blocks
- 16 Advent of Code Day 16–The Eternal Dance
- 15 Advent of Code Day 15–Count Zip Take
- 14 Advent of Code Day 14-Counting Bits and Regions
- 13 Advent of Code Day 13-Crossy Road
- 12 Advent of Code Day 12-The Joy of Sets
- 11 Advent of Code Day 11-Don’t Reinvent the Hexagon
- 10 Advent of Code Day 10–Destructuring and Batching
- 9 Advent of Code Day 9–Order is important
- 8 Advent of Code Day 8–More Regex, Maps and Destructuring
- 7 Advent of Code Day 7-Regex,Depth First, and Recursion
- 6 Advent of Code Day 6-Maps, Sets and Optimizations
- 5 Advent of Code Day 5-Mutable Arrays
- 4 Advent of Code Day 4-Anagrams, Sets and Jasmine
- 3 Advent of Code Day 3–Eternal Generators
- 2 Learn ES6 with Advent of Code-Day 2
- 1 Learn ES6 with Advent of Code–Day 1
November
October
September
August
July
June
May
April
March
- 30 Fully Managed Input Driven Resampling with NAudio in C#
- 27 C# 7–The Good Parts–Pattern Matching
- 22 C#7–The Good Parts–Local Functions
- 21 C# 7–The Good Parts–Tuples
- 14 Enabling CORS for Testing Azure Functions Locally
- 11 How to Get Media File Duration in C#
- 6 A Basic Introduction to Webhooks
- 4 MVP Award and 10 Years of Blogging
- 2 Four Ways to Transfer Files Into Your Docker for Windows Containers
February
- 27 JavaScript 30 Day Challenge
- 22 Rapid API Development with Azure Functions
- 20 Deploying Azure Functions with Kudu and PowerShell
- 17 How to Run a Local Web Server
- 11 Deploying WordPress on Azure with ARM and Docker Compose
- 10 Simpler CSS Blog Layouts with Flexbox
- 9 Deploying Azure Websites with OneDrive
- 6 Installing WordPress with Docker Compose
- 4 Managed MP3 Decoding with NLayer and NAudio
2016 72 posts
December
- 31 2016 in Review
- 27 Advent of Code Day 25–Decompiler
- 24 Advent of Code Day 24–Travelling Maze Visitor
- 23 Advent of Code Day 23–Seeing Patterns
- 22 Advent of Code Day 22–YAGNI
- 21 Advent of Code Day 21–Scrambled Strings
- 20 Advent of Code Day 20–Merging Ranges
- 19 Advent of Code Day 19–Gift Exchange
- 18 Advent of Code Day 18–Window, Scan and Collect
- 17 Advent of Code Day 17–Building a Toolbox
- 16 Advent of Code Day 16–Building Strings
- 15 Advent of Code Day 15–Outside In
- 15 Advent of Code Day 14–The Power of Windows
- 13 Advent of Code Day 13–Amazing Algorithms
- 13 Advent of Code Day 12–Machine Code
- 13 Advent of Code Day 11–O Breadth-First Tree
- 11 Advent of Code Day 11–Admitting Defeat
- 10 Advent of Code Day 10–Following Instructions Eventually
- 9 Advent of Code Day 9–Decompression Length
- 8 Advent of Code Day 8–Dot Matrix
- 7 Advent of Code Day 7–Supernet Sequences
- 6 Advent of Code Day 6–Decoding Messages
- 6 Asterisk Game in F# and WPF
- 5 Advent of Code Day 5–Door Passwords
- 4 Advent of Code Day 4–Room Checksums
- 3 Advent of Code Day 3–Counting Triangles
- 2 Advent of Code Day 2–Bathroom Code
- 1 Advent of Code Day 1–Easter Bunny HQ
November
October
- 31 Speed up Azure Service Bus Messaging with Batching
- 30 Serverless London 2016
- 25 Yahtzee Scoring Kata in F#
- 24 Sending Randomly Scheduled Tweets with Azure Functions
- 14 Handling Payment Webhooks with Azure Functions
- 10 Sharing State Between Azure Functions
- 8 Rapid Prototyping Web APIs with Azure Functions
- 5 Getting Filtered Azure Service Bus Queue Descriptions
- 4 Using Azure Service Bus Filtered Subscriptions
September
August
June
May
April
March
February
2015 82 posts
December
- 27 Advent of Code Day 25–Mission Accomplished
- 26 Advent of Code Day 24–Balancing the Sleigh
- 25 Advent of Code Day 23–Following Instructions
- 24 Advent of Code Day 22–Selecting Spells
- 23 Advent of Code Day 21–Beating the Boss
- 22 Advent of Code Day 20–Counting Presents
- 21 Advent of Code Day 19–Mutating Molecules
- 20 Advent of Code Day 18–Game of Lights
- 19 Advent of Code Day 17–Filling the Fridge
- 18 Advent of Code Day 16–Aunt Sue’s Clues
- 17 Advent of Code Day 15–Cookie Calorie Counting
- 16 Advent of Code Day 14–Reindeer Races
- 15 Advent of Code Day 13–Optimal Seating Plan
- 14 Advent of Code Day 12 Solved in C# and F#
- 13 Advent of Code Day 11 Solved in C# and F#
- 12 Advent of Code Day 10 Solved in C# and F#
- 12 Advent of Code Day 9 Solved in C# and F#
- 11 Advent of Code Day 8 Solved in C# and F#
- 10 Advent of Code Day 7 Solved in C# and F#
- 10 Advent of Code Day 6 Solved in C# and F#
- 9 Advent of Code Day 5 Solved in C# and F#
- 8 Advent of Code Day 4 Solved in C# and F#
- 8 Advent of Code Day 3 Solved in C# and F#
- 7 Advent of Code Day 2 Solved in C# and F#
- 7 Advent of Code Day 1 Solution in C# and F#
- 5 Compute Running Totals in LINQ with MoreLinq.Scan
- 4 Advent of Code
November
October
September
August
July
June
- 29 A tale of two albums
- 28 Does my product idea need to be unique?
- 27 How to generate fresh ideas for your next digital product
- 25 JavaScript Gotcha: Closures and Loops
- 24 How to Access an Blob Container Using Shared Access Signatures
- 22 What sort of digital product should you create?
- 21 Why you should create a digital product and sell it online
- 13 How to Get Azure Blob Container Size
- 9 Surface Pro 3 Review
- 4 Why you need to understand garbage collection
- 2 How to play a specific portion of an audio file with NAudio
May
April
March
February
2014 50 posts
December
November
October
July
June
- 29 How to create zip backups of previous git commits
- 24 How to Create a Breaking Non-Space in HTML
- 20 How to Zip a Folder with ASP.NET Web Pages
- 19 Why Use an Event Aggregator?
- 17 New Blog - markheath.net
- 6 Running Windows Forms on Linux with Mono
- 5 Is Windows Forms Dead Yet?
- 4 My Headphone Recommendations
May
April
- 28 NoDriver calling acmFormatSuggest playing MP3s with NAudio
- 24 Reactive Extensions Observables Versus Regular .NET Events Part 2
- 23 Reactive Extensions Observables Versus Regular .NET Events Part 1
- 14 Roundtrip Serialization of DateTimes in C#
- 9 Thoughts on Windows RT Audio APIs and BUILD 2014
- 2 Stop Making Monoliths
March
February
2013 19 posts
December
November
October
September
March
2012 30 posts
December
November
October
September
- 15 A XAML Loop Icon
- 14 Using a WrapPanel with ItemsControl and ListView
- 13 NAudio OffsetSampleProvider
- 12 ASIO Recording in NAudio
- 11 New Open Source Project–GraphPad
- 10 Windows 8–First Impressions
- 8 Installing and Booting Windows 8 RTM off a VHD (Virtual Hard Disk)
- 3 Screen-Scraping in C# using LINQPad and HTML Agility Pack
July
March
February
2011 35 posts
December
November
July
- 11 Screencast: Modular WPF with MEF & MVVM Tutorial Part 2
- 9 10 C# keywords you should be using
- 8 Screencast: Modular WPF with MEF & MVVM Tutorial Part 1
- 6 One Language to Rule them All
- 5 Test Resistant Code #5–Threading
- 4 Visualizing TFS Repositories with Gource
- 3 Silverlight Music Rating App for KVR One Synth Challenge
- 2 Yahtzee Kata in IronPython
- 1 Blogger Users Beware - Google+ Can Delete Your Blog Images
June
- 30 Test-Resistant Code #4–Third Party Frameworks
- 29 Test-Resistant Code #3–Algorithms
- 28 How to Unit Test Silverlight Apps
- 27 Test Resistant Code #2–Markup is Code Too
- 24 Test resistant code and the battle for TDD
- 18 SOLID Code is Mergeable Code
- 16 Essential Developer Principles #2–Don’t Reinvent the Wheel
- 15 Essential Developer Principles #1–Divide and Conquer
- 13 Silverlight Star Rating Control
- 11 MSBuild task to update AssemblyVersion and AssemblyFileVersion in C# files
- 6 So … is Silverlight dead then?
May
- 29 Development process signal to noise ratio (a rant)
- 28 NAudio and NuGet (and the x64 problem)
- 25 NAudio and Mercurial
- 23 NAudio Output Devices
- 20 How to Add a Custom Work Item to a Category In TFS
- 19 NAudio and the PlaybackStopped Problem
- 17 How to use the TFS API to retrieve a historical version of your project
- 11 Announcing Audio Test Files Repository
- 6 How to Convert AIFF files to WAV using NAudio 1.5
- 4 How to Play Streaming MP3 Using NAudio
April
February
2010 29 posts
November
- 23 How to Register Two Interfaces as a Singleton in Unity
- 10 How to Invoke a Command on the ViewModel by Pressing the Enter Key in a TextBox with Silverlight and MVVM
- 8 Merging MP3 Files with NAudio in C# and IronPython
- 7 State of MP3 Playback Support in NAudio
- 2 Why you should use DVCS for Personal Projects
October
- 29 MVVM – Is it Worth the Pain?
- 28 Creating Silverlight Apps with IronPython
- 27 IronPython 2.7 Visual Studio Integration
- 26 Change to Solution Folder in Package Manager Console
- 9 WPF Collision Detection with Canvas and ScaleTransform
- 6 WPF and MVVM in IronPython
- 4 Clipboard Access in IronPython
- 1 Installing Windows Virtual PC on Windows 7 Home Premium
September
July
May
April
March
2009 26 posts
November
October
September
- 28 Book Review – The Art of Unit Testing (Roy Osherove)
- 28 Styling a WPF Volume Meter
- 26 Trimming a WAV file using NAudio
- 25 Circular WPF Button Template
- 24 Crowd-Sourced Code Reviews
- 23 Asserting events with NUnit
- 15 Checking MIME type for cross domain Silverlight hosting
- 14 Parameterized Tests with TestCase in NUnit 2.5
- 11 Coding Dojo
- 7 Custom Object Factory Unity Extension
August
March
February
January
2008 64 posts
December
November
October
September
June
- 26 NAudio 1.2 Release Notes
- 22 WaveBuffer - Casting Byte Arrays to Float Arrays
- 21 Styling a ListBox With Silverlight 2 Beta 2 (Part 2) - Scrollbars
- 19 Styling a ListBox With Silverlight 2 Beta 2 (Part 1)
- 13 Creating a Piano Roll in WPF Part 3 - Data Binding
- 11 NAudio Roadmap
- 10 Font Embedding in Silverlight 2 beta 2
- 9 Basic Button Templating in XAML in Silverlight 2 Beta 2
- 8 Creating a Piano Roll in WPF Part 2
- 7 Screencast: Creating a WAV File Resampler with NAudio
- 6 Creating a Piano Roll Control in WPF
- 5 The NAudio WaveStream in Depth
- 4 NAudio Wave Stream Architecture
- 3 Introducing NAudio - .NET Audio Toolkit
- 2 What's up with WASAPI?
May
- 30 Live Mesh First Impressions
- 29 Wanted Language Feature: Reinterpret Cast of Byte Arrays
- 28 Combining Paths in XAML for Silverlight
- 23 Vista's Most Unhelpful Dialog
- 16 Primary Keys and URLs
- 8 Google versus Microsoft Documents Offline Access
- 8 Using ASP.NET MVC HtmlHelper.Form
- 1 The Great Refactoring Debacle
April
- 29 Parameterized INSERT with VistaDB
- 25 VistaDB Membership Provider for ASP.NET MVC
- 25 Connecting to VistaDB in ASP.NET
- 24 Branching and Merging Anti-Patterns
- 23 Thoughts on Live Mesh
- 16 Styling a ListBox in Silverlight (Part 3 - Item Style)
- 15 Styling a ListBox in Silverlight (Part 2 - Scrollbars)
- 4 Styling a ListBox in Silverlight (Part 1)
- 3 Who Cares About Audio?
March
February
- 22 Vista SP1
- 15 There is no Spoon
- 15 XAML Star Rating
- 15 XAML RSS Icon
January
2007 27 posts
December
November
October
August
July
June
- 28 Adding a .NET kicks link to a Blogger blog
- 21 OpenID in ASP.NET
- 21 Identity or UniqueIdentifier (GUID) for Database Key?
- 20 CSS Layout - Columns, Headers and Footers
- 11 XAML Football Pitch
- 7 Basic Web Service Access From C#
- 7 Creating a Hatched / Patterned Brush in WPF
- 5 Orcas Beta 1 - Not ready for the Prime time
- 1 How to Make your Silverlight 1.1 Application Scriptable
- 1 Visual Studio Regions
February
- 1 Welcome