---
created_at: '2016-01-03T04:33:29.000Z'
title: Taco Bell Programming (2010)
url: http://web.archive.org/web/20101202135616/http://teddziuba.com/2010/10/taco-bell-programming.html
author: Jarred
points: 172
story_text: 
comment_text: 
num_comments: 109
story_id: 
story_title: 
story_url: 
parent_id: 
created_at_i: 1451795609
_tags:
- story
- author_Jarred
- story_10829512
objectID: '10829512'

---
[Source](http://web.archive.org/web/20101202135616/http://teddziuba.com/2010/10/taco-bell-programming.html "Permalink to Taco Bell Programming")

# Taco Bell Programming

![Wayback Machine][1]

success

fail

[ ][2] [ ][3]

| ----- |
|   | 

|  [**Nov**][4] |  DEC |  [**Jan**][5] |  
|  ![Previous capture][6] |  02 |  ![Next capture][7] |   | | 
|  2009 |  2010 |  [**2011**][8] | 

 |  
| 

[86 captures][9]

25 Oct 2010 - 25 Jun 2017

 |  [

][10]  | 

[ About this capture][11]

COLLECTED BY

Organization: [Alexa Crawls][12]

Starting in 1996, [Alexa Internet][13] has been donating their crawl data to the Internet Archive. Flowing in every day, these data are added to the [Wayback Machine][14] after an embargo period. 

Collection: [Alexa Crawls][12]

Starting in 1996, [Alexa Internet][13] has been donating their crawl data to the Internet Archive. Flowing in every day, these data are added to the [Wayback Machine][14] after an embargo period. 

TIMESTAMPS

![loading][15]

[Ted Dziuba][16]

Programming, writing & automotive repair 

## [Taco Bell Programming][10]

by Ted Dziuba Thursday October 21 2010 

![][17]Every item on the menu at Taco Bell is just a different configuration of roughly eight ingredients. With this simple periodic table of meat and produce, the company pulled down $1.9 billion last year.

The more I write code and design systems, the more I understand that many times, you can achieve the desired functionality simply with clever reconfigurations of the basic Unix tool set. After all, _functionality is an asset, but code is a liability_. This is the opposite of a trend of nonsense called DevOps, where system administrators start writing unit tests and other things to help the developers warm up to them - Taco Bell Programming is about developers knowing enough about Ops (and Unix in general) so that they don't overthink things, and arrive at simple, scalable solutions.

Here's a concrete example: suppose you have millions of web pages that you want to download and save to disk for later processing. How do you do it? The cool-kids answer is to write a distributed crawler in Clojure and run it on EC2, handing out jobs with a message queue like SQS or ZeroMQ.

The Taco Bell answer? `xargs` and `wget`. In the rare case that you saturate the network connection, add some `split` and `rsync`. A "distributed crawler" is really only like 10 lines of shell script.

Moving on, once you have these millions of pages (or even tens of millions), how do you process them? Surely, Hadoop MapReduce is necessary, after all, that's what Google uses to parse the web, right?

Pfft, fuck that noise:

> `find crawl_dir/ -type f -print0 | xargs -n1 -0 -P32 ./process`

32 concurrent parallel parsing processes and zero bullshit to manage. Requirement satisfied.

Every time you write code or introduce third-party services, you are introducing the possibility of failure into your system. I have far more faith in `xargs` than I do in Hadoop. Hell, I trust `xargs` more than I trust myself to write a simple multithreaded processor. I trust syslog to handle asynchronous message recording far more than I trust a message queue service.

Taco Bell programming is one of the steps on the path to Unix Zen. This is a path that I am personally just beginning, but it's already starting to pay dividends. To really get into it, you need to throw away a lot of your ideas about how systems are designed: I made most of a SOAP server using static files and Apache's `mod_rewrite`. I could have done the whole thing Taco Bell style if I had only manned up and broken out `sed`, but I pussied out and wrote some Python.

If you don't want to think of it from a Zen perspective, be capitalist: you are writing software to put food on the table. You can minimize risk by using the well-proven tool set, or you can step into the land of the unknown. It may not get you invited to speak at conferences, but it will get the job done, and help keep your pager from going off at night.

[Archives][18] | [Atom Feed][19] | [tjdziuba@gmail.com][20] | [Twitter][21] | [Milo][22] | [About.me Profile][23]

Powered by Jekyll — Movable Type is dead to me.

[1]: http://web.archive.org/static/images/toolbar/wayback-toolbar-logo.png
[2]: http://web.archive.org# "Share via My Web Archive"
[3]: https://archive.org/account/login.php "Sign In"
[4]: http://web.archive.org/web/20101101173837/http://teddziuba.com:80/2010/10/taco-bell-programming.html "01 Nov 2010"
[5]: http://web.archive.org/web/20110114224515/http://teddziuba.com:80/2010/10/taco-bell-programming.html "14 Jan 2011"
[6]: http://web.archive.org/static/images/toolbar/wm_tb_prv_on.png
[7]: http://web.archive.org/static/images/toolbar/wm_tb_nxt_on.png
[8]: http://web.archive.org/web/20111205122432/http://teddziuba.com:80/2010/10/taco-bell-programming.html "05 Dec 2011"
[9]: http://web.archive.org/web/20101202135616*/http://teddziuba.com/2010/10/taco-bell-programming.html "See a list of every capture for this URL"
[10]: 
[11]: http://web.archive.org#expand
[12]: https://archive.org/details/alexacrawls
[13]: http://www.alexa.com/
[14]: http://web.archive.org/
[15]: http://web.archive.org/static/images/loading.gif
[16]: http://web.archive.org/web/20101202135616/http://teddziuba.com/
[17]: http://web.archive.org/web/20101202135616im_/http%3A/teddziuba.com/images/a-sysadmin-is-like-a-cocktail-waitress-at-a-strip-club-underappreciated-but-critical-to-business-success.jpg
[18]: http://web.archive.org/web/20101202135616/http://teddziuba.com/archives.html
[19]: http://web.archive.org/web/20101202135616/http://teddziuba.com/atom.xml
[20]: http://web.archive.org/web/20101202135616/mailto:tjdziuba@gmail.com
[21]: http://web.archive.org/web/20101202135616/http://www.twitter.com/dozba
[22]: http://web.archive.org/web/20101202135616/http://milo.com/
[23]: http://web.archive.org/web/20101202135616/http://about.me/teddziuba

