Renaming MySQL Tables With Zero Downtime
We found a way to rename MySQL tables with zero downtime by using updatable views and atomic rename table commands.
moreMatryoshka: A Configurable Caching Library for PHP
We recently open-sourced Matryoshka: a configurable caching library for PHP which makes common operations easier and allows for on-the-fly configuration.
moreWeb Operations D&D
One of the most obvious, although hopefully infrequent, responsibilities of a Web Operations Engineer is firefighting - diagnosing issues that are critically affecting production services. Unfortunately, most of us are pretty bad at it because every situation is different and the only time we practice is "on the job." At iFixit, we've started a program to help with this, known as "Web Ops D&D".
moreHow we use php-call-site-stats to get cache hit ratios for each call-site
We use the php call-site-stats utility to collect and analyze cache hit ratios and DB query times for every get() and set() to our caching layer and every query() of our database.
moreA Clever Approach to API Call Response Delivery in Android
This is how we achieved reliable delivery of asynchronous API call results in Android while maintaining loose coupling of components with the Otto event bus.
moreDesigning user interfaces for your mother - 6 key takeaways
Here are a few things I try to keep in mind about my mother when I’m designing a new website or interface.
moreCSRF - How we protect ifixit.com from request forgery
We've come up with a minimalist method of protecting our site from cross site request forgery.
moreVarnish: A Tale of Bravery and Romance
A story of failure and recovery, of ideal architectures and duct tape, of bravery and romance. This is the story of Varnish.
moreCimpler - continuous integration, unix-style
Cimpler is a continuous integration server built with node.js that aims to do one thing, and do it well, or at least simply.
moreUsing Gnuplot for Great Justice!
Gnuplot can be used to quickly draw ASCII graphs of information pulled from logs or other textual sources.
moreGoogle Bot delays executing your JS
We inadvertently discovered that the Google Bot delays execution of your javascript code for hours (even days) after downloading your pages.
moreSimple Apache Access Log Analysis
Sometimes you just want to quickly pull out a little information.
moreView all posts.