Resilience Engineering and Strange Loops

My notes and takeaways from a long read on anomalies and system complexity called the STELLA Report from the SNAFUcatchers Workshop on Coping With Complexity, 2017. Via Matt. This paper is one of the best I’ve read in a while. Many lessons here match my experiences developing—and breaking—software for WordPress. I gained new insight into adaptive mental models, how best to … Continue reading Resilience Engineering and Strange Loops

How Canaries Help Us Merge Good Pull Requests

Technical update from my colleague Alister for how WordPress.com uses automated tests for build confidence, now running for on GitHub pull requests instead of after deployment to production. The tests and webhook “bridge” infrastructure are open source just like the Calypso source code itself.

Developer Resources

At WordPress.com we strive to provide a consistent and reliable user experience as we merge and release hundreds of code changes each week.

We run automated unit and component tests for our Calypso user interface on every commit against every pull request (PR).

We also have 32 automated end-to-end (e2e) test scenarios that, until recently, we would only automatically run across our platform after merging and deploying to production. While these e2e scenarios have found regressions fairly quickly after deploying (the 32 scenarios execute in parallel in just 10 minutes), they don’t prevent us from merging and releasing regressions to our customer experience.

Introducing our Canaries

Earlier this year we decided to identify three of our 32 automated end-to-end test scenarios that would act as our “canaries”: a minimal subset of automated tests to quickly tell us if our most important flows are broken. These tests execute after a pull…

View original post 477 more words

SSH Config for Slow Connections

Via Andy Skelton in 2010, proving once again that great advice is timeless. With these lines in your SSH config file—usually in .ssh directory in your user home directory—you'll enjoy a more reliable remote shell session. # Do not kill connection if route is down temporarily. TCPKeepAlive no # Allow ten minutes down time before giving … Continue reading SSH Config for Slow Connections

Why Isn’t Open Source A Gateway For Coders Of Color?

Food for thought: Why Isn't Open Source A Gateway For Coders Of Color?. (Via my wife, Erin.)

The Investigative Mindset

Knowing where to look for answers is more important than memorizing a set of requirements or rules. I have a confession: I often have no idea what I'm doing. I remember clearly what it felt like my first day at my job: I was new, overwhelmed, and maybe even scared. But the work was exciting, … Continue reading The Investigative Mindset

Review: Forge, a Tool for Bootstrapping a WordPress Theme

Forge is a tool for quickly developing a WordPress theme built by the fine folks at The Theme Foundry. Forge is a free command-line toolkit for bootstrapping and developing WordPress themes in a tidy environment using front-end languages like Sass, LESS, and CoffeeScript. During the early development process of this year's default theme for WordPress, … Continue reading Review: Forge, a Tool for Bootstrapping a WordPress Theme

Change GNU Screen Keyboard Command

I changed the command character for screen from Control-a to Control-b recently, after switching to a wireless Mac keyboard. On this small, portable keyboard—which is the same layout as most Mac laptops—there's only one Control key, and it's on the left side of the keyboard. The weird angle to hit Control-a was hurting my hand. … Continue reading Change GNU Screen Keyboard Command

Automatic WordPress Updates with SVN

Want to keep your WordPress install up to date automatically? Follow these steps to add a cron job to update your WordPress install every 6 hours. Set up the install The WordPress install must be a Subversion checkout. You can grab the bleeding edge source with a command like this: svn co http://core.svn.wordpress.org/trunk/ . If … Continue reading Automatic WordPress Updates with SVN

Craftsmanship and Coding Standards

Inconsistencies [in your coding style] are jarring and require more time to read and comprehend. Consistency is such a valued quality that developers often abide by a coding standard even if they dislike the coding standard itself. —Chris Shiflett and Sean Coates I consider following a coding standard a sure sign of a craftmanship. A … Continue reading Craftsmanship and Coding Standards

Discouraging Image Theft

Recently I received a question from a colleague regarding image theft and how to prevent it. The sad truth is that you can’t. There are techniques to discourage downloading and reuse of your preciously-crafted images, but they generally aren’t 100% effective or user-friendly for your normal site visitors. The reality of unwanted image downloads is … Continue reading Discouraging Image Theft