Pallet Wood Coffee Table

posted on 03 August 2015 in woodworking

I’ve recently become addicted to pallet wood projects on Pinterest, there’s something beautiful in breathing life back into old wood, and best of all it’s free. After finding a free source of pallets I’ve tried my hand a couple of projects, some shelves for the bathroom and a pallet wood stool, I was pretty happy with the results so I thought I’d try my hand at something more substantial, a coffee table.

Read Article

Logging Objects to the Console in Internet Explorer

posted on 24 April 2015 in programming

Compared to other browsers, IE’s JavaScript console is pretty lacking in it’s ability to log objects, they just appear as [Object object]. As a work around for this below is a shim that will JSON.stringify any objects that are passed as parameters to console.log (or it’s sister functions like error, warn…).

Read Article

Catching JavaScript errors with Promises

posted on 02 August 2014 in programming

If your JS function needs to return a Promise but doesn’t do any asynchronous activity, you may be tempted to use the static Promise.resolve() function rather than instantiating a new Promise object. Be aware that doing this will change the way javascript errors are dealt with.

Read Article

Mapping errors in jQuery promises / deferred

posted on 15 July 2014 in programming

For those familiar with JavaScript Promises, jQuery’s handling can act unexpectedly. Standard Promises implementations allow the first catch handler to deal with the error and then return to normal execution flow (see JavaScript Promises: There and back again). jQuery on the other hand appears to execute all fail handlers, in the order they were defined with no chance to recover normal flow.

Read Article

Excel templates for Scrum Product and Sprint Backlogs

posted on 13 May 2014 in general

Here’s some useful templates for managing Scrum projects using Excel. Why use Excel? For simplicity. Sometimes great software and tools are necessary, sometimes they just over complicate the process.

Read Article

Backbone.Spark: Ember style computed properties for Backbone.js

posted on 24 July 2012 in programming

Backbone.Spark provides computed property support for Backbone.js, the goal of the extension is to make computed properties behave in the same way as a normal attribute so your other code doesn’t need to know the difference.

The latest version of Backbone.Spark and examples can be found at GitHub

Read Article

TFS undo checkout of unedited files

posted on 13 April 2012 in programming

It bugs me when developers check in files to TFS that haven’t been modified. It’s easy to do, you open a file, edit it, change your mind and ctrl-z it. Now you have a checked out file with no changes and when you do your next check in you’ll probably check that file in too, unless you’re really on the ball and compare each file manually first. TFS makes no distinction between checked in files that were modified and those that weren’t, which makes the job of reviewing code that much harder.

Read Article

Create branch of modified working copy in TFS

posted on 29 March 2012 in programming

So you’ve been working on your code from Team Foundation Server (TFS), made changes then realised you should really have started a branch for it.

I couldn’t find a good tutorial anywhere for how to do this so here’s the best workflow I found.

Read Article

Delete Dependents When Removing an Entity From Entity Framework

posted on 06 September 2011 in programming

This post is based on Entity Framework 4.1 Code First Fluent API.
I have an Entity Framework model being used in the business layer called Patient, it has a collection of dependent entities called Responses, when a response needs to be deleted I simply remove it from the collection and expect that it’ll get deleted from the database. It doesn’t.

Read Article

Conditional Validation in ASP.NET MVC3

posted on 10 June 2011 in programming

Need to perform validation on a model’s property based on some other state of the model? Here’s a way to achieve it using the IValidatableObject interface and data annotations.

Read Article