Service At Speed

I sat down next to Mykala on the Fourth of July, and casually asked her a question while I did a few trivial computing tasks. “Did you notice a difference in speed for tumbledry?” I was overjoyed to hear her response: “Yes, actually—I noticed it seemed a bit faster.” Her single comment made the struggle to resolve all of the lags in delivering tumbledry at high speed to you lovely readers worth it. Now, I have thought for a while how to make an analogy that will keep the attention of the non-programmer readers of this space. You see, historically, the problem is that these techy posts become so heavily jargon laden that they are neither digestible nor desirable to anyone who doesn’t develop web applications for a living. So, yes, I could ramble about PHP, gzip compression, query optimization, JavaScript libraries, and Dean Edwards’ amazing packer… but I would alienate many, and bore many more. So, I present an analogy that is a bit rough around the edges, but should still get the point across.

Imagine your web browsing experience is similar (analagous even, har) to that of a diner at a restaurant. Your web browser is the menu: from it, you order what you want to consume. Now, let’s say you’ve had a long day at work and after you sit down and have a nice drink, you decide to order up a hot and fresh dish of tumbledry. Your waiter/waitress runs off to the kitchen and puts in an order for tumbledry. Now, these are pretty good chefs in the kitchen—they’ve had years of experience. Therefore, they can cook a dish of tumbledry in the region of 0.001 to 0.2 seconds. That’s fast! Certainly, they could do with some optimization (sometimes Alex gives them rather convoluted cooking instructions), but despite the byzantine hoops, they do pretty well. However, for some reason, it still takes forever for you to receive your tumbledry! That is (was!) a shame. And that’s where the optimization came in.

You see, when things were slower, the dish of tumbledry was served in many pieces, forcing your poor waiter to have to run back and forth repeatedly. Sometimes, he even had to grab things from other restaurants! How gauche. Plus, the limitations of a single amateur waiter apply roughly to your browsing—dishes are generally grabbed only one or two at a time. This had the effect of slowing down the process, ultimately increasing the time it took for your dish to be fully assembled at the table. On top of that, massive, inefficient kitchen paraphernalia had be carried by your intrepid waiter: imagine him hauling an entire iron kettle of hot soup just to serve you your individual portion. Pieces of the kitchen were coming with the food, too—maybe on occasion you’d get a spatula, or in the worst case scenario, a dish rag. After all this, the table was in danger of collapsing.

That’s when I stepped in and said… “this is ridiculous.” Away with you, iron kettles! I’ve had enough of this! Now, imagine that instead of making 40 mindless trips, your waiter (who, we must admit, continues to appear a little inexperienced) only has to make a few runs to deliver your entire tumbledry. The chefs are still fast—and now you can benefit from their speed. The weight of what the waiter carries has been lightened significantly, and all the useless crap has been kept in the kitchen, or removed entirely. Sounds great, no? It gets better. Now imagine another little trick allowing the waiters to get you your identical food as before, but even faster. We’ll call it “le compression.” On the way out of the kitchen, the chefs add a little potion to the food to shrink it, say, to the size of a Pez dispenser. When it arrives at your table, you watch in amazement as it magically grows back to its previous size! Thus, by utilizing the power of this little trick, the waiter can carry more at once, and decrease the time required for your meal to be fully assembled.

Finally, there is one more thing that can be done to speed up service. If the waiter and the chefs get together and realize that you frequently order the same dish (let’s call it tumbledry ala mode), they can agree to keep pieces of it at the table, ready to jump into action with little delay. For example, they can’t store ice cream itself at the table, but they could certainly keep the toppings nearby! Voilà, speedier service!

At this point, you might want to know the actual hard stats showing the improvement of which I speak. Here is what was found: the front page of tumbledry used to be very close to 1,000 kilobytes. By web page standards, this is massive. Consider, for example, that the last song I purchased on iTunes is 3,000 kilobytes. Do you want to load a third of a song each time you visit a web page? Holy long page load! So, one of my goals was to make sure tumbledry could be comfortably served up to mobile phone users (iPhone users, really). The connection they get is about 10 kilobytes per second. For the mathematically inclined among you who have skipped ahead of me — yes, it’s that bad — it would’ve taken mobile phone users 1 minute and 40 seconds to load the bloated tumbledry of yesteryear, with dial up users clocking in even slower times - around 4 minutes and 45 seconds. Try to stare at your screen doing nothing for that long, without deciding never again to visit this website.

Therefore, I’m proud to announce that the front page of tumbledry now clocks in at a svelte 150 kilobytes. Averaging out over different conditions, this represents a reduction in size of about 81% Put another way, tumbledry is over 5 times smaller than it used to be. Now, those lucky iPhone users should only have to wait 15 seconds for a full page load (plus, they’ll be able to read things before that).

So, the cooks are fast and the waiter is much less overworked — let’s serve up some delicious delicacies!

5 comments left


John +1

Alex, that was most possibly the most delectable explanation of website jargon I have ever heard. Seriously.


I also noticed an improvement in TumbleDrying speed. Nicely done Alex!

Dan McKeown

I could not keep up with such a swift metaphor.

Alexander Micek

Host, haha - if we extend the analogy, you’re the owner of the entire restaurant!

I’m really happy everyone’s happy, though.

Essays Nearby