Articles
Taking Data Integrity Srsly
Data Validity Spot Checks, No-Delete Policies, Database Constraints, and Care with NULLs vs. FALSEs etc.
A Guide to Testing Web Applications for Developers Who Care about Overall Profitability
Presented in the form of 10 axioms
Application-Level Documentation Beats Code-Level Documentation
Or how to dramatically reduce training time, speed up recovery during disasters, and make future programmers love you
7 Keys to Systematic Debugging
Learn to recognise the various bug breeds and build awareness of how they appear in packs.
Minimum Viable Backups for Web Apps
A list of the various nooks and crannies needing backing up followed by a look at the most common failure modes of a backup system
Excelling at Exception Notification
Fighting inadequate exception notification– do your background queues, assistive servers, and OS report issues?
Dworkinian Integrity and (Sub-)Symbol Minimisation: Prescriptions for Consistent Software
How the perfect unbuilt API already exists, floating in the zeitgeist, and how it is up you to pay attention to the totality in front of you
WWW vs. Naked Domain?
When starting a new website, is it better to choose domain.com or www.domain.com?
Project-Level Attribute Normalisation
Why you should introduce a software layer close to your object relational mapper that formats attributes into clean, standardised forms
Replayability
Why your code should be capable of remembering and replaying inputs in the event that something goes wrong
Silent Failures Must Be Given a Voice
The most dangerous bugs are those you remain chronically unaware of–as all too often occurs with failing scheduled scripts
Web Developers: Harmonise Your Time Zones
How it's all too easy to wind up with divergent time zones across a modern web stack
Hidden costs of accepting online payments
How hidden fees stack up so as to quadruple the cost of using online payments providers
Deliberately Shopping for a Configuration Strategy
7 Factors To Consider When Choosing How To Manage Your Web App's Credentials and Configuration Options
The Key to Good Documentation: Broaden Your Definition of Software
Or how to avoid frustration configuring, debugging, and rescuing servers and third-party services
Why I Stay Behind the Version Rat Race
Whereas updates *sometimes* bring improvements, they are *guaranteed* to bring changes. And, as any programmer knows, software is allergic to change.
4 Ideas For Improving Testability in Web Apps
Backdoors, interface hooks, explanatory dry runs, and deep reachability
Dealing with Test Leakage
Strategies for pinpointing and extricating indeterminacy from software tests.
Tips for Programming Accounting Features in Web Apps
Learn about representing money, rounding algorithms, and anticipating oddball transactions.
Adminimisation: Tips for Building Great Admin Dashboards
How to build a robust administrative area that'll help you automate away the boring and routine tasks involved in running a web site
Textmate to VIM
Where I explain how to reproduce over 110 commands from Textmate in VIM.