Archives
May 2024 (1)
Apr 2024 (1)
Jan 2024 (2)
Dec 2023 (1)
Nov 2023 (1)
Aug 2023 (3)
- Playing MIDI through SoundFonts with NAudio and MeltySynth
- Cleaning up dangling DNS entries for an Azure DNS Zone
- Using ETags and Patching Rows in Azure Table Storage
Jul 2023 (1)
Jun 2023 (2)
May 2023 (2)
Apr 2023 (1)
Mar 2023 (4)
- Uploading Large Blobs in Parallel with the Azure SDK
- Uploading Large Files with AzCopy
- Implementing the Producer Consumer Pattern with TPL Dataflow
- Simple HTTPS with Caddy Ingress on AKS
Feb 2023 (3)
- Dapr 1.10 - More steps in the right direction
- Fetching Credentials with the Azure CLI
- Assigning Service Principals to Groups and Roles with the Azure CLI
Jan 2023 (4)
- Accessing Service Bus message metadata in Azure Functions isolated model
- Migrating to Isolated Durable Functions
- Protect and call an ASP.NET Core minimal Web API with Azure AD
- 2022 in review
Dec 2022 (3)
- Advent of Code Lessons Learned
- 20 Years of NAudio
- Copying Blob Tags and Metadata with the V12 Storage SDK
Nov 2022 (3)
Oct 2022 (1)
Sep 2022 (1)
Jul 2022 (3)
- Using Consul for Name Resolution in Dapr
- Attach and Detach LocalDB Databases
- Async Enumerable in C# (Part 3)
Jun 2022 (3)
- Async Enumerable in C# (Part 2)
- Async Enumerable in C# (Part 1)
- Should I avoid LINQ for performance reasons?
May 2022 (3)
- Deploy ASP.NET Core websites to Azure App Service with Azure Pipelines
- Launching Tabs in Windows Terminal
- Learn by Porting
Apr 2022 (4)
- Automatic Sample Rate Conversion with WASAPI
- Install prerequisite Windows SDK with Azure Pipelines
- Create downloadable blob links with Azure Functions and App Service authentication
- Update Your Azure Functions Table Storage Bindings
Mar 2022 (5)
- Copying Blobs with the V12 Storage SDK
- Uploading Blobs with the V12 Storage SDK
- Downloading and Pushing NuGet packages in C#
- Automating PRs in Azure DevOps
- Announcing Dapr Fundamentals
Feb 2022 (1)
Jan 2022 (1)
Nov 2021 (1)
Oct 2021 (2)
Sep 2021 (1)
Aug 2021 (4)
- Scheduled tasks with the Cron binding in Dapr
- How to Calculate Azure Blob Container Size
- Simple tables with CSS grid layout
- Why do we need Dapr?
Jul 2021 (3)
- The Serverless Sliding Scale
- Azure Durable Functions Dependency Injection
- Pluralsight Updates 2021 - Microservices are getting easier
May 2021 (1)
Apr 2021 (1)
Mar 2021 (2)
- Bicep - Why do we need yet another way to deploy stuff in Azure?
- Generating Azure Blob Storage User Delegation SAS
Feb 2021 (3)
- Porting versus interop for .NET - WebAssembly to the rescue?
- Visual Studio 2019 Docker Tooling
- Archiving Blobs with the Storage SDK
Jan 2021 (5)
- Automating Azure Access Restrictions with the Azure CLI
- Quick tip: listing global dev tools and extensions
- NAudio 2 plans
- Bulk upload files to Azure Blob Storage with the Azure CLI
- 2020 in Review
Dec 2020 (5)
- Storing coordinates in C# - Performance versus readability
- Configuring SQL Server dependencies in ASP.NET microservices with Tye
- Using SQL Server as a Rebus Transport
- How to run SQL Server as a Docker container instead of using LocalDB
- Advent of Code 2020
Nov 2020 (5)
- Versioning and Evolving Microservices
- AZ-204 Exam Preparation: Implement Azure Functions
- Azure Durable Entities: What are they good for?
- Simple Messaging Between Microservices with Rebus and Azure Storage Queues
- Using OpenAPI Auto-Generated Clients in ASP.NET Core
Sep 2020 (2)
Aug 2020 (1)
Jun 2020 (3)
- How to list and download the contents of a Google Drive shared folder in C#
- How to list and download the contents of a GitHub repo in C#
- Which Database should I use in my Azure Serverless App?
May 2020 (3)
- Messaging with Azure Service Bus - Part 9 - Premium Features
- Messaging with Azure Service Bus - Part 8 - Commands and Events
- Messaging with Azure Service Bus - Part 7 - Topics and Subscriptions
Apr 2020 (6)
- Messaging with Azure Service Bus - Part 6 - Message Receiving Options
- Messaging with Azure Service Bus - Part 5 - Message Sending Options
- Messaging with Azure Service Bus - Part 4 - Sending and Receiving Messages
- Messaging with Azure Service Bus - Part 3 - Introducing Azure Service Bus
- Messaging with Azure Service Bus - Part 2 - The Challenges of Messaging
- Messaging with Azure Service Bus - Part 1 - Why Use Messaging?
Feb 2020 (5)
- Durable Functions Upgrade Strategies
- Migrating to Durable Functions
- Producing Multiple Related NuGet Packages from a Single Git Repo
- Using Azure Functions Durable HTTP APIs
- NAudio 1.10 released with .NET Core 3 support
Jan 2020 (2)
Dec 2019 (2)
Nov 2019 (2)
Oct 2019 (2)
Sep 2019 (3)
- Containers versus Serverless for Microservices
- dotnet new - Behind the Scenes
- How should you track technical debt?
Aug 2019 (3)
- Try Async Enumerable in C# 8 with Visual Studio Code Remote Containers
- Run Azure Functions in Kubernetes with KEDA
- Automating Application Insights extension
Jul 2019 (3)
- Experimenting with System.IO.Pipelines for high performance audio
- Azure Blob Storage SAS Guidelines
- Managing Azure Functions Keys (using the new ARM APIs!)
Jun 2019 (3)
- 7 Top Reasons for Introducing Technical Debt
- Copying Azure Blobs Between Containers the Quick Way
- Using Entity Framework Core on Azure Functions with Dependency Injection
May 2019 (5)
- Securing Back-end App Service Web Apps with VNets and Service Endpoints
- Automating Azure Container Instances with PowerShell Azure Functions
- Running a Minecraft Server in Azure Container Instances
- NAudio 1.9.0 Released
- Azure Functions Fundamentals Updated for Version 2
Apr 2019 (7)
- Containerized Activities in Durable Workflows - Part 5
- Containerized Activities in Durable Workflows - Part 4
- Containerized Activities in Durable Workflows - Part 3
- Containerized Activities in Durable Workflows - Part 2
- Containerized Activities in Durable Workflows - Part 1
- What types should I use to pass collections in C#?
- Avoiding Azure Functions Cold Starts
Mar 2019 (3)
- Reduced Pricing for Azure Container Instances
- Awaiting Multiple External Events with Durable Functions
- Configuring Per-App Scaling on Azure App Service
Feb 2019 (3)
- Should I containerize my cloud app?
- C# Async Antipatterns
- Conditional References in C# Project Files
Jan 2019 (6)
- ARM Templates vs Azure CLI
- Deploy Web and Function Apps with Run from Package
- Accessing Key Vault from Azure Functions using Managed Identities
- Deploying Azure Functions with the Azure CLI
- Rendering Markdown to HTML and Parsing YAML Front Matter in C#
- Migrating to the New Azure Service Bus SDK
Dec 2018 (3)
- 2018 in Review
- How to Limit Audio Files with NAudio
- Managing Durable Functions Orchestration History
Nov 2018 (5)
- This resource group will self destruct in 30 minutes
- Four things not to miss this December
- Building and Running Container Images with ACR, ACI and the Azure CLI
- Getting Started with Containers on Service Fabric
- Deploying and Managing Containers on Azure
Oct 2018 (7)
- Deploying WordPress on Azure Web App for Containers
- Exploring Elasticsearch with Docker
- Exploring PostgreSQL with Docker
- Exploring Redis with Docker
- LINQ Stinks - code smells in your LINQ
- Exploring MoreLINQ Part 25 - Traverse
- Exploring MoreLINQ Part 24 - Flatten
Sep 2018 (18)
- Exploring MoreLINQ Part 23 - Joining
- Exploring MoreLINQ Part 22 - Append and Prepend
- Exploring MoreLINQ Part 21 - Side Effects
- Exploring MoreLINQ Part 20 - ToDelimitedString (and friends)
- Exploring MoreLINQ Part 19 - Generating sequences
- Avoid Logging in Low-Level Code
- Exploring MoreLINQ Part 18 - GroupAdjacent and Segment
- Exploring MoreLINQ Part 17 - CountBy
- Exploring MoreLINQ Part 16 - Pairwise and Resolving Ambiguities
- Exploring MoreLINQ Part 15 - Windowing
- Exploring MoreLINQ Part 14 - Skipping and Slicing
- My Durable Functions talk at ProgNET 2018
- Exploring MoreLINQ Part 13 - Random Sequences
- Exploring MoreLINQ Part 12 - Run Length Encoding
- Exploring MoreLINQ Part 11 - Padding
- Convert an Azure Managed Disk to Standard SSD with Azure CLI
- Exploring MoreLINQ Part 10 - Interleave
- Exploring MoreLINQ Part 9 - FillForward
Aug 2018 (10)
- Create Serverless Functions
- Exploring MoreLINQ Part 8 - FallbackIfEmpty
- Exploring MoreLINQ Part 7 - Batching
- Exploring MoreLINQ Part 6 - Taking
- Exploring MoreLINQ Part 5 - Scan
- Exploring MoreLINQ Part 4 - Combinations
- Exploring MoreLINQ Part 3 - MinBy and MaxBy
- Exploring MoreLINQ Part 2 - Counting Elements
- Exploring MoreLINQ Part 1 - Zipping
- Run Azure Functions in a Docker Container
Jul 2018 (5)
- LINQ Challenge #3 Answers in C#
- LINQ Challenge #3
- Creating simple CRUD REST-style APIs with Azure Functions C# Bindings
- Using Azure Functions v2 proxies to avoid CORS issues
- Waiting for External Events with Timeouts in Durable Functions
Jun 2018 (5)
- New Features in Durable Functions
- NAudio and .NET Standard
- Span<T> for Audio
- How to get Visual Studio 2017 Live Unit Testing working with NUnit tests
- Getting Started with Azure Container Instances
May 2018 (3)
- Integrating ACI with other Azure services
- 10 Reasons to Use Durable Functions
- Why you should use Durable Functions sub-orchestrations
Apr 2018 (2)
Mar 2018 (5)
- Serverless CI Builds with Cake and Azure Container Instances
- Serverless Media Processing with Azure Container Instances
- Constraining Concurrent Threads in C#
- Managing Azure Functions Keys
- Overwhelmed by Choice with Azure Functions?
Feb 2018 (5)
- Deploying WordPress with ACI Container Groups
- Serverless Containers with Azure Container Instances
- Managing WebJobs with the Kudu API
- The Case for Durable Workflows
- Technical Debt - Is it Avoidable?
Jan 2018 (7)
- Saving Clipboard Images to File in C#
- Troubleshooting Caching Problems
- Styling Social Media Icon Lists in CSS
- Styling Comma Separated Lists in CSS
- Creating Durable Functions in the Azure Portal
- Styling Striped Lists in CSS
- The Great Blog Rewrite
Dec 2017 (26)
- 2017 in review
- Advent of Code Day 25-State Machines
- Advent of Code Day 24–Recursive Generators
- Advent of Code Day 23–Human Decompiler
- Advent of Code Day 22-Sparse Grids
- Advent of Code Day 21-Recursive Reflections
- Advent of Code Day 20–The Long Run
- Advent of Code Day 19–Following the Path
- Advent of Code Day 18-Parallel Programs
- Advent of Code Day 17–Splicing Blocks
- Advent of Code Day 16–The Eternal Dance
- Advent of Code Day 15–Count Zip Take
- Advent of Code Day 14-Counting Bits and Regions
- Advent of Code Day 13-Crossy Road
- Advent of Code Day 12-The Joy of Sets
- Advent of Code Day 11-Don’t Reinvent the Hexagon
- Advent of Code Day 10–Destructuring and Batching
- Advent of Code Day 9–Order is important
- Advent of Code Day 8–More Regex, Maps and Destructuring
- Advent of Code Day 7-Regex,Depth First, and Recursion
- Advent of Code Day 6-Maps, Sets and Optimizations
- Advent of Code Day 5-Mutable Arrays
- Advent of Code Day 4-Anagrams, Sets and Jasmine
- Advent of Code Day 3–Eternal Generators
- Learn ES6 with Advent of Code-Day 2
- Learn ES6 with Advent of Code–Day 1
Nov 2017 (6)
- Four Ways to Deploy an ASP.NET Core 2 Website in Azure
- 30 Days of NAudio Documentation
- STABLE tactics for writing SOLID code
- Deploying Azure WebApps with Kudu Zip API
- Azure CLI - Getting Started
- Creating a Service Principal with the Azure CLI
Oct 2017 (6)
- Deploying ARM Templates with the Azure CLI
- Backup and Restore a SQL Database with the Azure CLI
- Connect a Web App to a SQL Database with the Azure CLI
- Managing Storage Queues with the Azure CLI
- Manage Blob Storage with the Azure CLI
- Create and Configure a VM with the Azure CLI
Sep 2017 (5)
- Automate away your Azure Portal usage with the Azure CLI
- Six ways to manage your Azure resources
- Local Debugging with the Azure Functions CLI
- Using Queries with the Azure CLI
- Introducing the Azure CLI
Aug 2017 (4)
- Concatenating Segments of an Audio File with NAudio
- Azure Functions Visual Studio 2017 Tooling
- How to Normalize a WAV File in C# with NAudio
- Building Serverless Applications in Azure
Jul 2017 (5)
- Goodbye CodePlex
- Triggering an App Service Sync from External Git Repositories
- NAudio 1.8.1 Released
- Fixing Commit Mistakes with Git Reset
- Securing an Azure Functions App with EasyAuth and AD B2C
Jun 2017 (4)
- Which Azure Database Should I Use for My Serverless Application?
- 5 Reasons Why You Should Subscribe to Pluralsight
- Supporting .NET Standard and .NET 3.5
- Uploading Static Web Content to Azure Blob Storage with PowerShell and AzCopy
May 2017 (4)
- Priority Queues with Azure Service Bus
- Convention Over Configuration
- Best Practices–Do They Exist?
- Never-Ending Audio Streams in NAudio
Apr 2017 (3)
- Azure Tables–What are They Good For?
- Keeping inside the rounded corners with CSS
- Hosting Static Websites in Azure Blob Storage with Azure Functions Proxies
Mar 2017 (9)
- Fully Managed Input Driven Resampling with NAudio in C#
- C# 7–The Good Parts–Pattern Matching
- C#7–The Good Parts–Local Functions
- C# 7–The Good Parts–Tuples
- Enabling CORS for Testing Azure Functions Locally
- How to Get Media File Duration in C#
- A Basic Introduction to Webhooks
- MVP Award and 10 Years of Blogging
- Four Ways to Transfer Files Into Your Docker for Windows Containers
Feb 2017 (9)
- JavaScript 30 Day Challenge
- Rapid API Development with Azure Functions
- Deploying Azure Functions with Kudu and PowerShell
- How to Run a Local Web Server
- Deploying WordPress on Azure with ARM and Docker Compose
- Simpler CSS Blog Layouts with Flexbox
- Deploying Azure Websites with OneDrive
- Installing WordPress with Docker Compose
- Managed MP3 Decoding with NLayer and NAudio
Jan 2017 (6)
- Uploading to Azure Blob Storage with Shared Access Signatures
- Azure Functions Fundamentals
- Get Up and Running with Docker for Windows
- Remote Debugging Azure Functions
- Sending Emails with SendGrid and Azure Functions
- Announcing NAudio 1.8
Dec 2016 (28)
- 2016 in Review
- Advent of Code Day 25–Decompiler
- Advent of Code Day 24–Travelling Maze Visitor
- Advent of Code Day 23–Seeing Patterns
- Advent of Code Day 22–YAGNI
- Advent of Code Day 21–Scrambled Strings
- Advent of Code Day 20–Merging Ranges
- Advent of Code Day 19–Gift Exchange
- Advent of Code Day 18–Window, Scan and Collect
- Advent of Code Day 17–Building a Toolbox
- Advent of Code Day 16–Building Strings
- Advent of Code Day 15–Outside In
- Advent of Code Day 14–The Power of Windows
- Advent of Code Day 13–Amazing Algorithms
- Advent of Code Day 12–Machine Code
- Advent of Code Day 11–O Breadth-First Tree
- Advent of Code Day 11–Admitting Defeat
- Advent of Code Day 10–Following Instructions Eventually
- Advent of Code Day 9–Decompression Length
- Advent of Code Day 8–Dot Matrix
- Advent of Code Day 7–Supernet Sequences
- Advent of Code Day 6–Decoding Messages
- Asterisk Game in F# and WPF
- Advent of Code Day 5–Door Passwords
- Advent of Code Day 4–Room Checksums
- Advent of Code Day 3–Counting Triangles
- Advent of Code Day 2–Bathroom Code
- Advent of Code Day 1–Easter Bunny HQ
Nov 2016 (5)
- Advent Coding Fun
- Using Blobs in Azure Functions with F#
- Three Ways to View Azure Functions Error Logs
- 3 Tips for More Elegant Let Bindings in F#
- F# Beginner Function Declaration Gotcha
Oct 2016 (9)
- Speed up Azure Service Bus Messaging with Batching
- Serverless London 2016
- Yahtzee Scoring Kata in F#
- Sending Randomly Scheduled Tweets with Azure Functions
- Handling Payment Webhooks with Azure Functions
- Sharing State Between Azure Functions
- Rapid Prototyping Web APIs with Azure Functions
- Getting Filtered Azure Service Bus Queue Descriptions
- Using Azure Service Bus Filtered Subscriptions
Sep 2016 (8)
- Customize Radio Button Appearance with CSS
- 10 More Must-See Videos from NDC Sydney 2016
- Thoughts on Serverless
- NAudio Q&A Session 4
- Waveform Rendering to PNG with NAudio
- Testable Code with Pure Functions
- NAudio Q&A #3
- NDC Sydney 2016 Highlights
Aug 2016 (3)
Jul 2016 (2)
Jun 2016 (4)
- Observing on the Dispatcher Thread with Rx
- Fire and Forget UWP Audio Engine
- Accessing Bundled Content in UWP Applications
- Deferring Processing of Azure Service Bus Messages
May 2016 (4)
- NAudio Sine Generator with Portamento
- Varispeed Playback with NAudio using SoundTouch
- LINQ Tips and Tricks
- The Nosey Programmer
Apr 2016 (3)
- Using Filtered Subscriptions with Azure Service Bus Topics
- Model View Presenter Pattern
- The Rise and Fall of Skype Voice Changer
Mar 2016 (3)
- Suppressing Exceptions in LINQ Queries
- Avoiding Silly Mistakes with F# Unit of Measure
- More Effective LINQ
Feb 2016 (1)
Jan 2016 (2)
Dec 2015 (27)
- Advent of Code Day 25–Mission Accomplished
- Advent of Code Day 24–Balancing the Sleigh
- Advent of Code Day 23–Following Instructions
- Advent of Code Day 22–Selecting Spells
- Advent of Code Day 21–Beating the Boss
- Advent of Code Day 20–Counting Presents
- Advent of Code Day 19–Mutating Molecules
- Advent of Code Day 18–Game of Lights
- Advent of Code Day 17–Filling the Fridge
- Advent of Code Day 16–Aunt Sue’s Clues
- Advent of Code Day 15–Cookie Calorie Counting
- Advent of Code Day 14–Reindeer Races
- Advent of Code Day 13–Optimal Seating Plan
- Advent of Code Day 12 Solved in C# and F#
- Advent of Code Day 11 Solved in C# and F#
- Advent of Code Day 10 Solved in C# and F#
- Advent of Code Day 9 Solved in C# and F#
- Advent of Code Day 8 Solved in C# and F#
- Advent of Code Day 7 Solved in C# and F#
- Advent of Code Day 6 Solved in C# and F#
- Advent of Code Day 5 Solved in C# and F#
- Advent of Code Day 4 Solved in C# and F#
- Advent of Code Day 3 Solved in C# and F#
- Advent of Code Day 2 Solved in C# and F#
- Advent of Code Day 1 Solution in C# and F#
- Compute Running Totals in LINQ with MoreLinq.Scan
- Advent of Code
Nov 2015 (3)
Oct 2015 (7)
- Lunchtime LINQ Challenge #2
- LINQ Challenge #1 Answers in F#
- LINQPad Dump for F#
- Functional Programming Big Ideas for C# Developers
- Towards a Fluent NAudio API
- How to Cut Sections out of an MP4 File with FFmpeg
- Concatenating Sample Providers in NAudio
Sep 2015 (3)
Aug 2015 (4)
- Microthoughts on Microservices
- Bootstrap Themed Radio Button Groups with Knockout
- Creating and Selling a Digital Product
- Advertising–How hard can it be?
Jul 2015 (6)
- Validate Your Idea
- You will write some terrible marketing emails–Get over it
- RIP Silverlight
- Windows Live Writer Plugin: Wrap in Code Tag
- Selling Digital Products - Why You Need a Website
- Convert WAV to GSM in NAudio with F#
Jun 2015 (11)
- A tale of two albums
- Does my product idea need to be unique?
- How to generate fresh ideas for your next digital product
- JavaScript Gotcha: Closures and Loops
- How to Access an Blob Container Using Shared Access Signatures
- What sort of digital product should you create?
- Why you should create a digital product and sell it online
- How to Get Azure Blob Container Size
- Surface Pro 3 Review
- Why you need to understand garbage collection
- How to play a specific portion of an audio file with NAudio
May 2015 (4)
- Modernise your WPF Applications with MahApps.Metro
- Track Any Event on your Web Pages with Google Analytics
- Creating Modern WPF Applications with MahApps.Metro
- We’re Hiring
Apr 2015 (3)
Mar 2015 (4)
- How to Schedule a Fade Out using NAudio
- Migrating from Syntax Highlighter to Highlight.js
- How to call the MailChimp API from C#
- Weeks 4 & 5–Sales Dry Up
Feb 2015 (6)
- NAudio has a logo
- Announcement: NAudio is moving to GitHub
- Week 3–Slow and Steady Progress
- Week Two - Bugs and Sales
- How to Encode MP3s with NAudio MediaFoundationEncoder
- Are you feeling your customers’ pain?
Jan 2015 (4)
- Buying a Code Signing Certificate
- Using Azure Application Diagnostics with ASP.NET Web Pages
- Minimum Deliverable Product
- Porting WCF Service Contracts to F#
Dec 2014 (2)
Nov 2014 (3)
- Effective Debugging with Divide and Conquer
- Extending WPF Control Templates with Attached Properties
- Styling a Vertical ProgressBar in WPF
Oct 2014 (4)
- Thoughts on the demise of CodePlex and Mercurial
- How to Create Circular Backgrounds for your Font Awesome Icons
- Auto-Registration with StructureMap
- September Pluralsight Course Recommendations
Sep 2014 (2)
Aug 2014 (1)
Jul 2014 (4)
- Going Beyond the Limits of Windows Forms
- 10 Ways to Create Maintainable and Testable Windows Forms Applications
- Six ways to initiate tasks on another thread in .NET
- Input Driven Resampling with NAudio using ACM
Jun 2014 (8)
- How to create zip backups of previous git commits
- How to Create a Breaking Non-Space in HTML
- How to Zip a Folder with ASP.NET Web Pages
- Why Use an Event Aggregator?
- New Blog - markheath.net
- Running Windows Forms on Linux with Mono
- Is Windows Forms Dead Yet?
- My Headphone Recommendations
May 2014 (6)
- Blogging Options Paralysis
- Essential Developer Principles #5–The Short and Simple Principle
- The Challenges of Maintaining Successful Software Projects
- How to Resample Audio with NAudio
- A Few Thoughts on TDD and Why we Don’t Always Use it
- Understanding and Eliminating Technical Debt
Apr 2014 (6)
- NoDriver calling acmFormatSuggest playing MP3s with NAudio
- Reactive Extensions Observables Versus Regular .NET Events Part 2
- Reactive Extensions Observables Versus Regular .NET Events Part 1
- Roundtrip Serialization of DateTimes in C#
- Thoughts on Windows RT Audio APIs and BUILD 2014
- Stop Making Monoliths
Mar 2014 (5)
- How to record and play audio at the same time with NAudio
- Detecting Mouse Hover Over ListBox Items in WPF
- Python Equivalents of LINQ Methods
- Python List Comprehensions and Generators for C# Developers
- How to Calculate Code Churn using TFS
Feb 2014 (4)
- Should NAudio use SharpDX for MediaFoundation support?
- TypeScript Tetris
- Don’t Forget to Clean Your Code
- Fire and Forget Audio Playback with NAudio
Jan 2014 (5)
- Announcing Understanding Distributed Version Control
- Five Audio Processing Tasks that are a Lot Harder than you Think
- Delete Dead Code
- Storing Large Files in DVCS
- Git Stash for Mercurial Users
Dec 2013 (1)
Nov 2013 (5)
- Three Surprising Causes of Technical Debt
- How to Convert a Mercurial Repository to Git on Windows
- Thoughts on using String Object Dictionary for DTOs in C#
- Announcing “Audio Programming with NAudio”
- Finding Prime Factors in F#
Oct 2013 (1)
Sep 2013 (1)
Jul 2013 (1)
Jun 2013 (2)
May 2013 (2)
Mar 2013 (5)
- Thoughts on the demise of Google Reader (and Blogging)
- How to convert byte[] to short[] or float[] arrays in C#
- Why Static Variables Are Dangerous
- NAudio on .NET Rocks
- Essential Developer Principles #4 – Open Closed Principle
Jan 2013 (1)
Dec 2012 (1)
Nov 2012 (4)
- Enabling NAudio for Windows 8 Store Apps–First Steps
- How to Drag Shapes on a Canvas in WPF
- How to use Azure Blob Storage with Azure Web Sites and MVC 4
- Using Named Branches in Mercurial
Oct 2012 (5)
- Upgrading family PCs to Windows 8
- NAudio 1.6 Release Notes (10th Anniversary Edition!)
- Understanding and Avoiding Memory Leaks with Event Handlers and Event Aggregators
- Essential Developer Principles #3 - Don’t Repeat Yourself
- Automatic Fast Feedback
Sep 2012 (8)
- A XAML Loop Icon
- Using a WrapPanel with ItemsControl and ListView
- NAudio OffsetSampleProvider
- ASIO Recording in NAudio
- New Open Source Project–GraphPad
- Windows 8–First Impressions
- Installing and Booting Windows 8 RTM off a VHD (Virtual Hard Disk)
- Screen-Scraping in C# using LINQPad and HTML Agility Pack
Jul 2012 (2)
Apr 2012 (2)
Mar 2012 (3)
Feb 2012 (3)
- To rebase or not to rebase, that is the question
- Modular WPF Screencast Part 3
- Fork First or Just in Time?
Jan 2012 (2)
Dec 2011 (1)
Nov 2011 (1)
Jul 2011 (9)
- Screencast: Modular WPF with MEF & MVVM Tutorial Part 2
- 10 C# keywords you should be using
- Screencast: Modular WPF with MEF & MVVM Tutorial Part 1
- One Language to Rule them All
- Test Resistant Code #5–Threading
- Visualizing TFS Repositories with Gource
- Silverlight Music Rating App for KVR One Synth Challenge
- Yahtzee Kata in IronPython
- Blogger Users Beware - Google+ Can Delete Your Blog Images
Jun 2011 (11)
- Test-Resistant Code #4–Third Party Frameworks
- Test-Resistant Code #3–Algorithms
- How to Unit Test Silverlight Apps
- Test Resistant Code #2–Markup is Code Too
- Test resistant code and the battle for TDD
- SOLID Code is Mergeable Code
- Essential Developer Principles #2–Don’t Reinvent the Wheel
- Essential Developer Principles #1–Divide and Conquer
- Silverlight Star Rating Control
- MSBuild task to update AssemblyVersion and AssemblyFileVersion in C# files
- So … is Silverlight dead then?
May 2011 (10)
- Development process signal to noise ratio (a rant)
- NAudio and NuGet (and the x64 problem)
- NAudio and Mercurial
- NAudio Output Devices
- How to Add a Custom Work Item to a Category In TFS
- NAudio and the PlaybackStopped Problem
- How to use the TFS API to retrieve a historical version of your project
- Announcing Audio Test Files Repository
- How to Convert AIFF files to WAV using NAudio 1.5
- How to Play Streaming MP3 Using NAudio
Apr 2011 (2)
Feb 2011 (1)
Nov 2010 (5)
- How to Register Two Interfaces as a Singleton in Unity
- How to Invoke a Command on the ViewModel by Pressing the Enter Key in a TextBox with Silverlight and MVVM
- Merging MP3 Files with NAudio in C# and IronPython
- State of MP3 Playback Support in NAudio
- Why you should use DVCS for Personal Projects
Oct 2010 (8)
- MVVM – Is it Worth the Pain?
- Creating Silverlight Apps with IronPython
- IronPython 2.7 Visual Studio Integration
- Change to Solution Folder in Package Manager Console
- WPF Collision Detection with Canvas and ScaleTransform
- WPF and MVVM in IronPython
- Clipboard Access in IronPython
- Installing Windows Virtual PC on Windows 7 Home Premium
Sep 2010 (9)
- Asserting Function Calls in Python
- Convert 16 bit PCM to IEEE float
- Countdown Kata in Python
- IronPython Codebreaker Katacast
- Autotest for IronPython
- Getting Started With IronPython
- Unit Testing Object Persistence
- Push Complexity to the Edges
- Codebase Reformation
Jul 2010 (2)
- Running NUnit tests on .NET 4 assemblies with MSBuild Part 2
- Running NUnit tests on .NET 4 assemblies with MSBuild
May 2010 (3)
- Converting MP3 to WAV with NAudio
- LINQ to General Election Part 2 – LINQ to XLS
- LINQ to General Election Part 1 – LINQ to JSON
Apr 2010 (1)
Mar 2010 (1)
Nov 2009 (1)
Oct 2009 (6)
- The “Unlegacy my Code” Kata
- Merge-Friendly Code
- NAudio 1.3 Release Notes
- Recording the Soundcard Output to WAV in NAudio
- Playback of Sine Wave in NAudio
- Looped Playback in .NET with NAudio
Sep 2009 (10)
- Book Review – The Art of Unit Testing (Roy Osherove)
- Styling a WPF Volume Meter
- Trimming a WAV file using NAudio
- Circular WPF Button Template
- Crowd-Sourced Code Reviews
- Asserting events with NUnit
- Checking MIME type for cross domain Silverlight hosting
- Parameterized Tests with TestCase in NUnit 2.5
- Coding Dojo
- Custom Object Factory Unity Extension
Aug 2009 (3)
- Lazy Loading of Dependencies in Unity
- Live Mesh Wishlist
- Using TFS to find what files a user has got checked out
Jul 2009 (2)
May 2009 (1)
Mar 2009 (1)
Feb 2009 (1)
Jan 2009 (1)
Dec 2008 (5)
- Soundwave XAML
- When to Review Code
- List Filtering in WPF with M-V-VM
- Measuring TDD Effectiveness
- Some thoughts on assemblies versus namespaces
Nov 2008 (5)
- Visual Studio Debugging Feature - Tracepoints
- SourceSafe Item Change Counter
- WaveOutOpen Callbacks in NAudio
- Model View View-Model (MVVM) in Silverlight
- Using NAudio to Replace the BabySmash Audio Stack
Oct 2008 (8)
- Rethinking Syncing
- MIDI In for BabySmash
- NAudio and the PDC
- Volume Metering and Audio Waveform Display in NAudio
- Find Orphaned Source Files Using LINQ
- Styling a ListBox in Silverlight 2
- Refactoring to Reduce Method Complexity
- The Cost of Complexity and Coupling
Sep 2008 (2)
Jul 2008 (1)
Jun 2008 (15)
- NAudio 1.2 Release Notes
- WaveBuffer - Casting Byte Arrays to Float Arrays
- Styling a ListBox With Silverlight 2 Beta 2 (Part 2) - Scrollbars
- Styling a ListBox With Silverlight 2 Beta 2 (Part 1)
- Creating a Piano Roll in WPF Part 3 - Data Binding
- NAudio Roadmap
- Font Embedding in Silverlight 2 beta 2
- Basic Button Templating in XAML in Silverlight 2 Beta 2
- Creating a Piano Roll in WPF Part 2
- Screencast: Creating a WAV File Resampler with NAudio
- Creating a Piano Roll Control in WPF
- The NAudio WaveStream in Depth
- NAudio Wave Stream Architecture
- Introducing NAudio - .NET Audio Toolkit
- What's up with WASAPI?
May 2008 (8)
- Live Mesh First Impressions
- Wanted Language Feature: Reinterpret Cast of Byte Arrays
- Combining Paths in XAML for Silverlight
- Vista's Most Unhelpful Dialog
- Primary Keys and URLs
- Google versus Microsoft Documents Offline Access
- Using ASP.NET MVC HtmlHelper.Form
- The Great Refactoring Debacle
Apr 2008 (9)
- Parameterized INSERT with VistaDB
- VistaDB Membership Provider for ASP.NET MVC
- Connecting to VistaDB in ASP.NET
- Branching and Merging Anti-Patterns
- Thoughts on Live Mesh
- Styling a ListBox in Silverlight (Part 3 - Item Style)
- Styling a ListBox in Silverlight (Part 2 - Scrollbars)
- Styling a ListBox in Silverlight (Part 1)
- Who Cares About Audio?
Mar 2008 (6)
- Gel Button Template in Silverlight
- Selecting Custom Objects from LINQ
- XAML Animation Differences Between WPF and Silverlight 2
- Converting SilverlightAudioPlayer to Silverlight 2.0 Beta 1
- More thoughts on Silverlight 2.0 beta 1
- Converting SilverNibbles to Silverlight 2.0 beta 1
Feb 2008 (4)
Jan 2008 (1)
Dec 2007 (1)
Nov 2007 (8)
- Productivity and Enthusiasm
- LINQPad
- Time Zones and .NET 3.5
- Unit Testing is Not About Testing
- Pair Programming for Loners
- Setting up the CodePlex Client
- Visual Studio Beta 2
- InvokeRequired for WPF
Oct 2007 (1)
Aug 2007 (1)
Jul 2007 (5)
- Silverlight 1.1 Alpha Refresh "Catastrophic Failure"
- Creating a Custom WPF Button Template in XAML
- XAML Gel Buttons in WPF and Silverlight
- SubSonic GridView and ObjectDataSource
- ASPNETDB.MDF?
Jun 2007 (10)
- Adding a .NET kicks link to a Blogger blog
- OpenID in ASP.NET
- Identity or UniqueIdentifier (GUID) for Database Key?
- CSS Layout - Columns, Headers and Footers
- XAML Football Pitch
- Basic Web Service Access From C#
- Creating a Hatched / Patterned Brush in WPF
- Orcas Beta 1 - Not ready for the Prime time
- How to Make your Silverlight 1.1 Application Scriptable
- Visual Studio Regions