Graeme Hill's Dev Blog

2017.222 Testing Phoenix Channels

2017.218 Websocket Clients and Phoenix Channels

2015.218 Atom on Linux with high DPI display

2014.221 Fixing a Cherry MX switch when the stem comes out with a key

2014.151 Minimalist cross-platform UUID/GUID generation in C++

2014.139 Entity Framework dynamic queries and parameterization

2014.138 XML and JSON are not for the same problem

2014.138 Compiling a permissive Android kernel

2014.137 Turning a Galaxy Note Pro into a Linux laptop

2013.034 EFTracingConnection and CreateDbCommand

2011.337 C++ const correctness beats the .NET/Java alternatives

2011.300 Exporting armature animation with the Blender 2.5 Python API

2011.299 .NET reflection: don't rely on the call stack, it's a trap!

2011.037 Are you sure you want List? Maybe you really want HashSet

2010.307 Converting from svn to git: another reason not to use external references

2010.274 The trouble with properties

2010.170 A lesson on using closed source libraries

2010.139 LINQ queries return queries not data

2010.092 Visual Basic 10 properties still lag behind C#

2010.091 LINQ to SQL Gotcha #6: Delete, Save, Insert, CRASH

2010.091 Singleton WCF service gotcha: allowing more than 10 connections

2010.088 Updating and restarting a singleton WCF service hosted in IIS

2010.069 CruiseControl.NET: Versioning ccnet.config and integrating it into CI

2010.065 LINQ to SQL Gotcha #5: Column Default Values

2010.040 LINQ to SQL Gotcha #4: ChangeConflictException on Update of Manually Attached Data

2010.040 Saving changes to stored procedure results in LINQ to SQL

2010.036 LINQ to SQL Gotcha #3: Chaining Where Clauses

2010.035 WPF Responsiveness: Asynchronous Loading Animations During Rendering

2010.032 LINQ to SQL Gotcha #2: GetChangeSet Weirdness

2010.031 LINQ to SQL Gotcha #1: Unexpected LoadWith Behaviour

2010.030 SQL Server Management Studio and default databases

2010.023 High performance database rollback in automated tests with SQL Server

2009.300 Finding all validation errors on an IDataErrorInfo object

2009.297 Specifying expected DataContext type in WPF

2009.290 Unit testing an Entity Framework DAL part 1: Just hit the database

2009.290 WPF super converters are bad for unit testing

2009.290 Unit testing an Entity Framework DAL part 2: Rolling back the test database

2009.290 MultiBindings are NOT useless in MVVM

2009.290 Converting from SVN to Git

2009.238 WPF nullable combo box source code

2009.234 Easier PropertyChanged notification with PostSharp

2009.234 WPF rendering thread synchronization

2009.139 SVN with Visual Studio

2009.106 Don't let "Option Strict Off" make you lazy

2009.059 Verify your property names in INotifyPropertyChanged implementation

2009.051 Nullable combo boxes in WPF

2009.047 Brutal loading times deleting files in Visual Studio

2009.043 Forcing form validation in WPF before user input

2009.042 Manipulating automatically generated LINQ to SQL classes

2009.040 Discard changes in LINQ to SQL DataContext