My name is Matt Hamilton, and I'm a software developer.

I've been developing software professionally for over twenty years, and yet it feels like every day I learn something that turns my world upside down and makes me doubt long-held beliefs.

This site is somewhere I can share ideas and post code snippets that I find interesting. I hope you enjoy your stay.

Follow mabster on Twitter

profile for Matt Hamilton at Stack Overflow, Q&A for professional and enthusiast programmers

Recent Posts

Mar 10 2020

My PowerShell Logging Strategy

Logging output and errors to separate files with a timestamp.

powershell logging
Dec 16 2019

Writing a PowerShell Connect- Cmdlet

What do all Connect- Cmdlets have in common?

Aug 15 2019
Jan 27 2018

Identity is Metadata

A brief post about an approach I'm taking to modelling objects in my web API passion project.

Aug 3 2016
Oct 14 2013

Budgie 3

What's new in the next release of Budgie?

budgie twitter .net
Jun 28 2013

TypeTemplateSelector for WinRT

A cheater's way to get implicit DataTemplates in WinRT.

winrt halfwit c# .net xaml
Apr 4 2013
Apr 2 2013

Background Tasks in Async Methods

How to start a "fire and forget" Task from an async method without a warning.

c# .net async
Nov 10 2012

WebRequest.GetResponseAsync (with timeout) for PCL

A handy extension method for the Portable Class Library version of WebRequest

c# .net pcl
Oct 22 2012

File Attachments using MVC and Entity Framework

Uploading and retrieving files from an SQL Server database using Entity Framework and MVC. entity-framework
Aug 21 2012

Smuggler - A Twitter Timeline Downloader

I've knocked up a simple tool to download a user's Twitter timeline, using Budgie.

budgie twitter .net
Jul 31 2012

Generic Repositories Part Deux

In which I admit that I'm coming around to the idea of generic repositories.

data entity-framework c# .net
Jul 30 2012

Generic Data Access Repositories

I've never quite "gotten" generic repositories for data access. Here's why. Tell me why I'm wrong!

entity-framework data c# .net
Jun 13 2012

Refactoring Halfwit's Coroutines to C# 5

Ditching MadProps.MvvmLight's coroutine support in favour of async/await.

halfwit c# .net mvvm
Jun 12 2012

Refactoring Halfwit to use C# 5

Making use of C# 5's new async and await keywords in Halfwit.

c# halfwit .net budgie
Apr 19 2012

Internal Constructors for Read Only Classes?

If a class can't be changed, why give it a public default constructor?

Apr 15 2012

Introducing Budgie

Introducing a simple, asynchronous Twitter client library.

twitter budgie .net
Jan 13 2012

A Dynamic DataTemplate Generator for WPF

A DataTemplateSelector that will generate a DataTemplate on the fly from your object's properties.

wpf xaml
Oct 12 2011

A Touch-Scrolling Attached Behaviour for ScrollViewer

A quick-and-dirty way to make lists scrollable by dragging

Oct 7 2011

MadProps.MvvmLight 2.0.0

Version 2.0.0 of MadProps.MvvmLight is out! Here's the good oil.

mvvm wpf silverlight
Jul 7 2011

The MadProps.MvvmLight ScreenConductor

A new addition to the MadProps.MvvmLight contrib project

mvvm wpf silverlight
Jun 20 2011

NuGet with MEF

Continuing from the previous post, we look at using MEF runtime recomposition with NuGet.

nuget mef mvvm comicster
Jun 19 2011

Using NuGet for Application Plug-Ins

A quick rundown on using NuGet as a "plug-in management system" for your application.

mvvm nuget
Jun 5 2011

Comicster Plug-Ins

A brief overview of Comicster's various plug-ins

comicster mef
Jun 3 2011

Stupid Dynamic Tricks

How I learned to stop worrying and love the dynamic keyword in C#.

c# dynamic comicster .net wpf
May 27 2011

MadProps.AppArgs is on Nuget!

Your new favourite command-line parsing class is now available via Nuget.

madprops.appargs .net c# nuget
May 26 2011


A simple library to help parse command-line arguments.

.net c#
May 23 2011

A Curious Halfwit HashSet Bug

Halfwit threw an exception! Let's track down the bug.

halfwit c# .net
Apr 15 2011

Hacking jQuery-Validate in ASP.NET MVC

ASP.NET MVC uses data annotations to generate "unobtrusive" validation code, but you can do it by hand too!

jquery razor
Page: 1 2