james mckay dot net
because there are few things that are less logical than business logic
About me
Contact me
GitHub
Twitter
Programming
Posts
Date
Title
16th August 2018
It’s not just an opinion, it’s scar tissue
16th July 2018
Some thoughts on DevOps
3rd May 2018
To throw or not to throw? Non-exceptional error conditions
8th February 2018
To throw or not to throw? Doing something that has already been done
19th January 2018
Positive, negative, or error?
7th December 2017
Error handling is the one thing that puts me off learning Go
29th February 2016
Fuzzy dates aren’t as good an idea as you think
23rd October 2014
Why you should use a general purpose scripting language for your build scripts
2nd October 2014
Why feature switches?
10th July 2014
On dark matter developers and the role of GitHub in hiring
3rd October 2011
The two types of programmer
29th September 2011
:q!
15th September 2011
Passion and pet projects
13th December 2010
Programmer jargon: Blub
6th December 2010
The benefits of the command line
18th November 2010
Programmer jargon: Cargo Cult
15th November 2010
Why tabs versus spaces matters
17th September 2010
Diaspora
4th September 2010
Send patchbombs to the mailing list, not pull requests to the project lead
8th March 2010
Command line instructions are not a good marketing strategy
4th February 2010
Catching Exception is almost never justified and almost always harmful
28th October 2009
A day of Stack Overflow
14th April 2009
Beware of second hand contracts
6th April 2009
When technical debt becomes technical bankruptcy
25th November 2008
Del Boy versus Turing
17th October 2008
In defence of 24 hours
1st September 2008
Commenting your code for speed reading
10th August 2008
A first look at stackoverflow.com
14th July 2008
Refactoring Databases
25th June 2008
Less is more
14th December 2007
How to list the sizes of the tables in a SQL Server database
22nd October 2007
How long does it take to unsubscribe from an e-newsletter?
18th July 2007
Ask the whole community, not just one of its members
2nd July 2007
Developers versus PR
11th August 2006
Online documentation pains
25th November 2005
Which programming language is the most popular?
Services I use and recommend
FastMail
DigitalOcean
Recent Posts
The time I forgot about the speed of light
Light speed
Finding bugs in your code quickly using git bisect
On the “reproducibility crisis” in science
How not to stop Brexit
Recent Comments
How to challenge a scientific theory, method 2: propose an alternative – How old is the earth?
on
The vagaries of humans and other living beings
Luzie
on
About me
James McKay
on
The vagaries of humans and other living beings
Daniel Jowett
on
The vagaries of humans and other living beings
james
on
Just how clean is Uncle Bob’s Clean Architecture?
Archives
Archives
Select Month
November 2021 (1)
November 2020 (1)
January 2020 (2)
December 2019 (1)
November 2019 (2)
March 2019 (2)
October 2018 (2)
September 2018 (2)
August 2018 (2)
July 2018 (3)
June 2018 (1)
May 2018 (1)
April 2018 (1)
February 2018 (1)
January 2018 (2)
December 2017 (2)
November 2017 (4)
October 2017 (1)
July 2017 (1)
June 2017 (3)
May 2017 (1)
March 2017 (1)
February 2017 (2)
January 2017 (3)
December 2016 (1)
September 2016 (1)
July 2016 (1)
June 2016 (1)
March 2016 (1)
February 2016 (2)
November 2015 (1)
July 2015 (1)
February 2015 (1)
October 2014 (5)
September 2014 (4)
August 2014 (3)
July 2014 (3)
December 2013 (1)
November 2013 (1)
October 2013 (1)
September 2013 (1)
August 2013 (1)
June 2013 (1)
May 2013 (1)
January 2013 (1)
July 2012 (2)
June 2012 (3)
May 2012 (2)
April 2012 (1)
March 2012 (1)
February 2012 (1)
December 2011 (1)
November 2011 (1)
October 2011 (1)
September 2011 (3)
August 2011 (2)
July 2011 (2)
June 2011 (4)
May 2011 (1)
April 2011 (4)
March 2011 (2)
February 2011 (4)
January 2011 (2)
December 2010 (5)
November 2010 (3)
October 2010 (2)
September 2010 (7)
June 2010 (6)
May 2010 (2)
March 2010 (4)
February 2010 (2)
December 2009 (1)
November 2009 (1)
October 2009 (2)
September 2009 (3)
August 2009 (4)
July 2009 (1)
June 2009 (3)
May 2009 (4)
April 2009 (6)
March 2009 (3)
February 2009 (2)
January 2009 (3)
December 2008 (3)
November 2008 (5)
October 2008 (3)
September 2008 (4)
August 2008 (5)
July 2008 (3)
June 2008 (6)
May 2008 (6)
April 2008 (6)
March 2008 (1)
February 2008 (4)
January 2008 (2)
December 2007 (5)
November 2007 (5)
October 2007 (8)
September 2007 (4)
August 2007 (5)
July 2007 (9)
June 2007 (6)
May 2007 (4)
April 2007 (4)
March 2007 (4)
February 2007 (6)
January 2007 (8)
December 2006 (5)
November 2006 (2)
October 2006 (2)
September 2006 (1)
August 2006 (5)
July 2006 (3)
June 2006 (4)
May 2006 (1)
April 2006 (2)
March 2006 (4)
February 2006 (4)
January 2006 (3)
December 2005 (3)
November 2005 (6)
October 2005 (2)
September 2005 (3)
August 2005 (2)
July 2005 (2)
June 2005 (9)
May 2005 (6)
Categories
.NET
Agile
AWS
Blog
Commuting
DevOps
Humour
Ideas
Lab notebooking
Miscellaneous
N-tier deconstructed
Open source
Patterns and practices
Personal
Photography
Productivity
Programming
Python
Science
Science and faith
Security
Side projects
Source control
Sudoku
Tales from the trenches
TDD
Technology
Web development
Work
Tags
.net
agile
asp.net
aws
aws lambda
bcrypt
blog
BS
C#
communication
configuration
continuous integration
css
dependency injection
design
dvcs
ec2
exceptions
feature branches
feature switches
git
golang
IOC
javascript
lab notes
less
logging
mercurial
n-tier deconstructed
passwords
pet projects
photography
preprocessors
productivity
programming languages
recruiting
sass/scss
science
security
surveys
tdd
typing
vim
visual studio
windows
Meta
Log in
Entries feed
Comments feed
WordPress.org