Articles

Janki Method Refined

Tips, shortcuts and revisions to the original method


Taking Data Integrity Srsly

Data Validity Spot Checks, No-Delete Policies, Database Constraints, and Care with NULLs vs. FALSEs etc.


The Bug Slip

A bug hunting ritual that makes things a little easier


log_tokens

A simple technique to make your logs more useful when debugging


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


What Happens If A User Clicks A Button Twice

The most common source of bugs in web applications?


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


5 Ways URLs Go Wrong

A tour of the traps and potholes that inhibit us from getting URL naming right


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.