itbrokeand.ifixit.com

Sometimes things break, and then we've got to fix them.


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.

more

Matryoshka: 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.

more

Web 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".

more

How 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.

more

A 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.

more

Designing 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.

more

CSRF - 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.

more

Varnish: 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.

more

Cimpler - 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.

more

Using Gnuplot for Great Justice!

Gnuplot can be used to quickly draw ASCII graphs of information pulled from logs or other textual sources.

more

Google 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.

more

Simple Apache Access Log Analysis

Sometimes you just want to quickly pull out a little information.

more

Memcache Stats in Graphite

Use Graphite and Memcache? Want to track your memcache server stats in Graphite? Bash has got your back.

more

Forker: a PHP Library

A while back we released Forker, a small PHP library that enables easy parallel processing. We've been using it in production for a couple of months now, so I figured it would be a good candidate for a first post.

more


View all posts.