Are Tables Important?

I was talking to a former co-worker about Inc Magazine’s cover story about Markus Frind and his very profitable, but godawfully ugly dating website plentyoffish.com.

My co-worker (a programmer) loaded up the website. He took a quick look around and opened the source of the ratings page. Giggling like Bevis he could not believe what he saw: a gradient bar that was coded as [gasp!] an HTML table with bgcolor attributes.

It looked like this:

And was coded like that:

<table border=0 cellspacing=0 cellpadding=0 width=100%>
<tr height=5><td bgcolor=#204080><img width=1 height=5 border=0>
</td><td bgcolor=#202F70><img width=1 height=5 border=0></td>
<td bgcolor=#3F2060><img width=1 height=5 border=0></td>
<td bgcolor=#5F2050><img width=1 height=5 border=0></td>
<td bgcolor=#7F1F4F><img width=1 height=5 border=0></td>
<td bgcolor=#90103F><img width=1 height=5 border=0></td>
<td bgcolor=#B0102F><img width=1 height=5 border=0></td>
<td bgcolor=#CF0F1F><img width=1 height=5 border=0></td>
<td bgcolor=#E0000F><img width=1 height=5 border=0></td>
<td bgcolor=#F00000><img width=1 height=5 border=0></td>
</tr></table>

He was going on and on and on about how tables are bad, and mwu-ha-ha-ha — look at this.

I was fully expecting him to take umbrage at the logo, the overall look and feel of the site, at the grotesquely skewed photo thumbnails. But no, all he was seeing is that Mr. Frind “used a table”.

I tried to tell my co-worker that despite “tables” or ugliness this website generates tens of millions of dollars of profit to its creator, that it has as much web traffic as Yahoo while being served a small handful of very powerful servers, that it was created and maintained by a single person who gets to keep most of the profits – but to no awail. The kid could not get over “tables”.

A famous hacker JWZ once was asked about his feelings about “an open source groupware system”. In a famous rant that followed he produced some of the best advice importance that I’ve ever seen:

“So I said, narrow the focus. Your “use case” should be, there’s a 22 year old college student living in the dorms. How will this software get him laid?”

While I’ve never heard of HTML tables (not the furniture kind) playing any role in getting laid, plentyoffish.com must have resulted in a mind boggling amount of action.

Plentyoffish.com, being a technological and aestetical abomination that it is, is firmly rooted in the lower, fundamental layers of Maslow’s Hierarchy and my Web Heirarchy.

At the most basic people need oxygen, water, food, to take a dump/whiz, sleep, sex, and a predictability in environment.

On the web people need hypertext, images, search, speed, and community features. If you provide all of these for a topic that is important to people, you will be successful. Start thinking about “html tables vs divs” first, and likely you won’t get to the important stuff.

Doing it another way – saying, look, I’ll do a site just like plentyoffish but prettier and without HTML tables does not work very well: Frind’s competiors at okcupid.com who set out to do just that are not succesful in toppling plentyoffish.

Ugliness for the sake of ugliness is not a good thing. In the long run people want things to be pretty, like Apple products and not ugly like Microsoft products. But taste, being pretty high up in the pyramid of needs only becomes a factor after all the basic needs are met.

Semi-literate Programming

I recently finished “Coders at Work“, a series of interviews with famous programmers.

On one hand, reading a book like this is a downer: it’s very clear to me that I occupy a place that is very close to the median of the bell curve, and the skill level of programmers is a very steep non-linear curve in itself. I’ll never be as good as JWZ or Brad Fitzpatrick. But I knew that before, and I am ok with it. On the other hand, this book inspired me to read more code.

The programmers in the book disagree on many points, but they mostly agree on the importance of writing readable code and educating yourself by reading other people’s code. I make my living writing in scripting languages, and I haven’t written a line of C or C++ since college. But there’s nothing preventing me from downloading and taking a look at the source of Apache, PHP, MySQL.

It’s important for me to understand “how the sausage is made” in the PHP stack, and as it turns out, what happens between Apache PHP and MySQL in term of requests and timeouts is not as simple as one might think. I asked at StackOverflow about this, but all the diagrams that people pointed me at were of the very rudimentary type: “look, here’s a happy cow, it goes to Bovine University, look – it’s all shrink wrapped on the supermarket shelf” instead of “sausage farm/slaughterhouse/truck/factory tour, starting with cow insemenation”.

When I downloaded the source code of mod_rewrite, arguably the most useful Apache module in the world, I was amazed to find out that it’s only 5000 lines of C with comments.

The book ends with the interview of Donald Knuth, and another two major questions that the interviewer is asking everyone is – “have you read Knuth’s books and have you tried literate programming”. It was interesting to find out that most of the famous programmers use Knuth’s the same way that I do. The books sit on my bookshelf, I look at them, I sometimes try to read them, I skip most of the math. They serve as a constant reminder to me that I suck at computer science even more than I suck at programming, and luckily there are people out there who know all of this stuff who are not idiots like me.

Here’s a photo of my cubicle at TV Guide circa 2002, Knuth’s books are holding a place of honor next to the mini fridge. By the way, taking pictures of the places where you work and live is something that you should not forget to do: years from now nobody will care about those pictures of flowers, shadows, and sunsets, but

I’ve read the book about Literate Programming at the time, and was rather inspired by it. Ok, maybe I didn’t read it and more like skimmed it. I don’t think I understood what real literate programming is.

The way I understand it, Literate Programming is a way to write programs as a narrative that is readable to computers and humans. My father, in his former career a site supervisor (a type of a contractor) is very fond of giving very detailed instructions to me, the same way he used to give instructions to construction workers. His instructions usually are exaustive algorithms, with error handling. I think that his instructions, expressed as a flow of conciousness, would work not only on me and construction workers, but on computers as well, and are similar to what Donald Knuth has in mind. All you really have to do is to build a layer of abstraction between these instructions and a computer language. Also, since computers don’t forget things, he would only need to repeat his instructions once.

These days my dad is a COBOL programmer. Everybody dumps on COBOL, but in my mind it’s a language worth of a lot of respect. It has a syntax that is very English-like, something that makes reading COBOL code easy. Well, maybe it’s like reading some old-timer’s newsgroup post written in all caps, but it’s still much closer to English than most other computer languages.

At the time I was reading “Literate Programming” I was using ASP 3.0, IIS, and SQL Server 97. My task was to write a system that would account for booked and pending business. This is something that had to be done since the age of Mad Men. You see, the dealings of clients, account executives (like Pete Cambell), their bosses, account coordinators, creative department, etc are rather convoluted. But in the end, to get paid, you have to have a system that will track who brought in what business, who handled what, and how the commissions need to be split.

This is normally the realm of something called EAS (Enterprise Application Software). Back at the turn of the century, this area was still dominated by a company called SAP, but there were a few smaller players, like Salesforce.com that tried to package these applications. Any sane IT manager looks to see if an EAS solution can be purchased first. It turned out that TV Guide’s buseness logic was impossible to shoehorn into any existing solution. SAP folks said – yeah, no problem, we’ll build you what you want, but our prices start at $1M, and then there are consultant fees. ERM world is a crazy place, you can read about some true craziness in “Cube Farm”, an account of one hapless developer’s adventures at Lawson Software. It’s a truly riveting book, and I fell that every developer out there should read it. It’s literally Lovecraftian in nature, that book.

In any case, it fell to me to develop the application from scratch. Inspired by Knuth, I decided to write some semi-literate code. Me and a project manager, Brad, went to the clients and interviewed them at length, documenting their existing process (aka the most complicated set of spreadsheets you’ve ever seen). In the past, before cheap computers, all you needed was a Joan Holloway, but I believe they stopped making them.

Brad went on to go back and forth with a very terse document about 5 pages in length that described how the new system would work. He would sit down with the clients and go through the narrative, step by step, confirming that this is what they wanted. Meanwhile I created an object oriented library that made dealing with the database, creating forms and navigation elements much easier. This is similar to to what you might find in a CMS like Drupal, only a little cruder.

When the document shaped up, I created the database schema, and then I took a big chunk of the document and pasted it into one huge comment block. I proceeded to break off chunks of that block and writing the code around it. Interestingly enough, as time went on, the project manager started helping me to write the code: enough of scary database abstration was hidden by simple classes and method, and there were tons of self-evident examples all around to copy and paste. I switched to writing reports that involved cubes, rollups and other fancy stuff. Stored procedures that did the reports also received comments from the document that described the reports.

This wasn’t a monolythic system – I was writing it for 2 years or so, releasing a chunk after chunk. In the end it was handed off to another developer, the whole transfer took only a couple of hours. There weren’t any major bugs, maintanence issues (I believe I received only one phone call about it after several years of continuous use). All in all I was pretty pleased with this approach and can absolutely recommend it.

I believe this is the reason why so many English majors become excellent programmers: if you can write for people, you can write for computers. Sometimes there are reasons why you can’t do both at the same time, but there’s no reason not to find some middle ground.

A review of personal genomics profile from 23andme

What do I buy: a cleaning robot, an e-ink powered ebook, or a personal genetic test from 23andme.com? This is one of those terrible trilemmas facing geeks who are not willing to sacrifice financial stability for having all the coolest gadgets. I chose a 23andme test, and haven’t regretted it.

The factoid that always is mentioned in the press about 23andme is that its co-founder Anne Wojcicki is married to Google co-founder Sergey Brin. This of course means that the data that 23andme is collecting is going to be used to help Google’s Skynet to gain the upper hand in the forthcoming war.

23andme’s service works like this: you give them some money (at the time when I write this the price is $399, but it used to be over $800), they send you a test tube into which you spit, some special preservative solution, and a return envelope. You follow some simple instructions and send your spit to a processing facility. Then you wait (this is the hard part). In a month or so (it depends how long the backlog of orders is) you recieve an email telling you that you can log into 23andme.com and take a look at the results.

The processing that they do in the lab creates a data file that represents an impressive number of genetic data points called SNPs or single-nucleotide polymorphisms. The way I understand it, SNPs are known variations that happen in DNA sequences. Much of the DNA stays the same for all people, but there are some variations in a single location. Let’s say there’s a string of DNA in humans that goes

G-A-T-T-A-C-A
C-T-A-A-T-G-T

and 6 positions there are the same for everyone, except the seventh, which is sometimes AT and sometimes GC. So basically it’s a single position on the one of the 23 chromosomes or mitochondrial DNA (I guess 23andmitochondriaandme was shot down as a possible name for the company) that statistically is different from person to person as opposed to long stretches of DNA that stay the same.

Scientists all over the world are studying the correlations that SNPs have with disease risks and traits. I guess these studies go something like this: you grab 500 programmers that use emacs editor and 500 that use vi. You have a hunch that editor preference is related to gene C4711. You sequence the dna of all your coders looking for SNPs in the gene C4711 that are one way in your vi-using alphas and another way in emacs-using sub-omegaloids. Then you find that in most of vi users SNP rs1729 is AA. Then you come out and say – AA in s1729 increases the odds of a programmer preferring vi by 47%.

The more people that a study has – the better the results. 23andme has genetics experts on staff that sift through mountains of these studies, rank them, and then tell the website people to add results to the interface. This way you can go to 23andme.com and see (as of right now) that tell you right away what your lifetime chances of getting 10 diseases. Some, like Parkinson’s, they don’t let you see without you agreeing to see it yourself. Sergey Brin was reported in the media to get some bad news from that particular one (mine came back “Typical Risk” which means that my chance of getting Parkinson’s is about 1.6%, same as everybody else).

A lot of people that I talked to about genetic testing told me that they’d “rather not know”. It’s true that some of the things that you might learn will make you worry without being able to do anything about it. On the other hand, there are some that you might be able to do something about.

“24.1 out of 100 people of European ethnicity who share this genotype will get Prostate Cancer between the ages of 35 and 79” vs “17.8 out of 100” on average. Here I learned that I have about 1 in 4 chance of getting prostate cancer. Prostate cancer is one of the relatively treatable ones if caught early, but with unpleasant diagnostic procedures. All of a sound “digital exam” does not sound so bad, and I guess I’ll have to bend over and cough a lot more often than I otherwise would. I’m not sure what coughing does, but the “digital” part has nothing to do with electronics or numbers.

There are also 10 traits that are available right now. The most interesting one for me was “Resistant to infection by the most common strain of HIV people usually encounter, though protection is not complete”. I apparently have two copies of something called “Delta32 version of CCR5”. “Although people with two copies of Delta32 are highly resistant to the most common type of HIV, they can be vulnerable to strains of the virus that do not use CCR5 to enter immune cells”.

This makes me a little bit more at ease when I donate blood, even though I know that the chances of getting infected with AIDS at a blood donation are already less than winning that Mega jackpot. On the other hand Dr. Asimov died of AIDS that he received through a transfusion. What’s more interesting, is that this is the same mutation that prominently figured in the media with the AIDS patient who was cured through a bone marrow transplant.

Then there’s a section that has 79 research reports. These get a rating fоr “research confidence”. I, for instance, have an elevated risk of obesity from research that has a three star rating.

Doctor House would have loved getting access to this kind of data for every one of his patients. There are risks for rare diseases mentioned on the show Ankylosing spondylitis, Hemochromatosis, Bloom’s syndrome, and everybody’s favorite – Lupus (which it’s never).

One of the tests included in 23andme is for muscle performance, the one that was in newspapers lately because it was offered by a few companies. The news angle was that sports obsessed parents paid hundred of dollars to find out if their kids have sprinting or marathon ability. Mine says: “One working copy of alpha-actinin-3 in fast-twitch muscle fiber. Many world-class sprinters and some endurance athletes have this genotype.” This sounds plausible – for a fat dude I have an uncanny ability to sprint, yet suck at long distances.

But wait, this is not all. For the same low price you also get some ancestral info. This comes in a form of maternal and paternal haplogroup. I am not sure I understand the what haplogroup is very well, and found 23andme’s infographics somewhat confusing. From what I understand a haplogroup is a number that is attached to a certain mutation (a few SNPs maybe?) that arose thousands of years ago and that has been statistically crosslinked to people living in certain geographical locations.

My paternal haplogroup is E3b1c1* – “populations: Ethiopians, Jordanians, Ashkenazi and Sephardic Jews”. My maternal haplogroup is H5a* – “populations: Lebanese, Polish, Irish”. Both of my ancestral branches are supposedly Ashkenazi, and I guess haplogroups are not a high enough resolution to prove or disprove Jewish ancestry. All they do is tell you that the progeny of your very remote ancestor was likely found in certain wide geographic locales “before the era of intercontinental travel.” What’s interesting is that there’s a small chunk of my maternal haplogroup’s population in Siberia.

23andme is a true Web 2.0 service (in the good sense of that expression). There’s a blog called The Spittoon. In between educational (sometimes interesting, sometimes boring) posts about genetics they have a section called “SNPwatch“. There they write about new research and usually provide a link to raw data in your 23andme profile. So for instance there was an article titled “Variants in Genes for Carcinogen Transporters Linked to Lung Cancer” about a mutation that prevents lungs from clearing out cancer-causing chemicals. Then you can click on two links and see if you have that mutation (to my relief I don’t).

There are some social network features: you can compare your DNA profile to your relatives. I’m not sure if hilarity might ensue because I think you can figure out possibility/impossibility of paternity and maternity, like Dr. House did in that episode. You can even compare your DNA to other users of 23andme – you have to accept a “friend” request for that. I’m not really sure what’s the fun in that. You can participate in surveys that might be used for research (there isn’t one yet about vi vs. emacs yet, but there are some other ones).

It does not look like the $400 fee even covers the cost of gathering the data (there no further fees as of now) or paying for staff/website maintenance, and ongoing research. I’m not really sure what the business model here is (and that makes me a little nervous. Businesses like this remind me of an old Yiddish joke:

Moyshe is selling boiled chicken eggs. He buys them for a kopek each and sells them for a kopek each. Chaim asks – “Moishe – where’s the profit in this?” “What, are you stupid?” – answers Moyshe. “I get to keep the broth”.

My guess is that the “broth” here is an opportunity to conduct groundbreaking research and maybe sell the anonymized data. That, and helping Google’s Skynet find and assassinate John Connor.

I don’t really worry too much about being denied insurance in the grim meathook future that surely is coming just because I used 23andme. There’s legislation against that on the books right now, and if insurance companies will be able to deny coverage based on genetics they’ll be much more likely to get this info by requiring a blood test.

I really wish I could get the data from my grandparents (none of whom are sadly alive). I will buy kits for my entire family though as soon as I’ll be willing to part with another chunk of disposable income (I do want that dang Kindle first though).

Being Dead Wrong

I like to think that I have a great intuition and am very good at predicting things. I also sometimes feel that I suffer from the Cassandra syndrome, as people don’t listen to my prediction as much as I would like them to.

This made me think about the times when I made ridiculously bad predictions. Here’s a list of what comes to mind off the bat:

1. When I was young I thought that programmers will soon write a computer program for writing computer programs, and that computer programming as a profession does not have much of a future.

2. I thought that architectural drawings will always have to be done by hand, as you can’t print out plans on dot matrix printers (the only printers I’ve seen at the time). I thought, sure, you can program some straight lines and such, but you’ll never get beautiful detailed drawings with all kinds of details.

3. I thought that Handspring would become the dominant player on the handheld market the same way that IBM did: by opening up the peripheral standards.

4. I thought that Diamond Rio would be huuuge and that Diamond Multimedia would become the hottest company ever because they were first on the market with an mp3 player.

5. I thought that Apple would just shrivel up and die, and if not, that I would certainly never completely switch to Macs.

Whewww, man. Those are some doozies. How about you, my readers?

Link Love 1

Stack Overflow: What do programmers listen to when they write code?

The best note taking tool in the world, Evernote, finally released an API. I really, really love Evernote.

Jesse Reklaw has a new Slow Wave book, The Night of Your Life, out. You can get signed copies from Slow Wave website or buy them at Amazon. Slow Wave is in the top 5 of my favorite comics, and Jesse drew the cat and programmer graphic used in the masthead of my site.

For some reason, my former co-worker Sean posts more New York City photos than I do these days.

Military Clip

A programmer’s job is full of stress. The worst part of this stress is that you can’t stop thinking about your problems, and continue working on them 24/7. Literally.

I read a blog of a developer who quit and took a job as a waiter in a Mexican restaurant. Being a server is one of the most stressful professions in the world, but that stress stops at the end of the work day. Problems that programmers face never end at the end of the day, they continue into the night, the next day, week, and year. Unless you fix them, that is. Then you get to solve a whole different set of problems.

Working as a developer is like solving SAT problems for 24 hours a day with long procrastination breaks. No wonder it’s a ghetto job.

I’ve recently had a series of recurring dreams about fishing. I come out to the beach, cast, and immediately the beach is filled with other fishermen. They all cast as well, the lines tangle, it’s impossible to fish. This is exactly like locking MySQL queries that I’ve been battling as of late.

I am a proponent of the Danny Sorenson method of stress reduction. This basically means that I go out and buy pens.

The cool thing about my new job is that I work right near a fountain pen store and a cigar store (which also helps in stress reduction). My latest stress-reducing fountain pen purchase is kind of interesting.

It’s a fountain pen with a “military clip“. You see, U. S. Army Regulation AR670-1, paragraph 1-9a(1) had the following passage:

“Soldiers will ensure that articles carried in pockets do not protrude from the pocket or present a bulky appearance.”

A clip on most pens would create a bulge on a uniform pocket. Pen manufacturers were forced to create special pens with a clip that would not cause this problem, like the one that I purchased.

While treating me and my team to dinner, my boss’ boss, watching as I stuffed a bulky Treo 650 smartphone into the front pocket of my shirt, quipped — “As soon as you put anything into your front pocket you automatically become a nerd”. I guess U.S. Army regulations have a point…

O’Reilly Book Covers

Joel Spolsky wrote about an interesting limitation that he encountered when choosing a cover design for his book:

“And although they would not put a doggie on the cover of my book as I requested, because a certain other book publisher threatens to sue his competitors when they put anything animal like within 90 feet of their covers, their graphic designer worked overtime to create underground cover art called “User Interface Design for Doggies” complete with three golden retrievers, which they framed and sent to me. All in all a classy operation and highly recommended if you’re thinking of writing a computer book.”

The publisher is, of course, O’Reilly Media. The are famous for publishing computer programming books with engravings of animals on the covers. Like any programmer’s, my bookshelf holds a pretty sizable zoo of these critters. The question that always comes to mind is what guides the selection – how the publisher decides which animal to match with which technology. Here’s what O’Reilly editors say:

“Our look is the result of reader comments, our own experimentation, and feedback from distribution channels. Distinctive covers complement our distinctive approach to technical topics, breathing personality and life into potentially dry subjects.”

Well, with some books it’s clear – a spider for a webmaster book and a python for a Python book, for instance. But why does the Perl book have a camel? Wouldn’t an oyster make a lot more sense?

Update: Joe Grossberg commented that camel was chosen “because Perl uses camelCase for capitalizing variables”. John (website or last name not included) said that “camel was picked for Perl because of the quip that it was a ‘horse designed by a committee'”. I like John’s version much better :)

Joe also started a Wikipedia article on the subject.

One of the more understandable conventions is using Javan animals on Java-related books. For instance, the Java book has a Javan tiger and the JavaScript book has a Javan rhino.

O’Reilly colophons rarely give too much insight into why that particular animal was chosen for the cover, but sometimes you might read between the lines:

“Like the crustaceans after which they are named, crab spiders walk sideways or backwards. They feed on bees and other pollenizing insects, often laying in wait for them by hiding on flowers.”

“Both male and female pythons retain vestiges of their ancestral hind legs. The male python uses these vestiges, or spurs, when courting a female”

“Folklore has long held that the horn of the rhinoceros possesses magical and aphrodisiacal powers, and that humans who gain possession of the horns will gain those powers, also.”

“Tigers are the largest of all cats, weighing up to 660 pounds and with a body length of up to 9 feet. They are solitary animals, and, unlike lions, hunt alone.

There are some tigers, however, who have developed a taste for human flesh. This is a particularly bad problem in an area of India and Bangladesh called the Sunderbans.”

The ironic thing is, Javan tigers are extinct and there are only about 100 Javan rhinos remaining. Is that a dig at these languages?

One of the most ironic, yet clearly unintentional choices was that of a stingray for the cover of ASP.NET in a Nutshell.

Ze Paul Frank

In my career as a web development I’ve seen a lot of brilliant and competent people, as well as a lot of utter incompetents, on all levels of the corporate ladder and working at all levels of productivity. Basically, if I were to make a competence scale, it would look something like this:

– <–10-9-8-7-6-4-5-4-3-2-1-0-1-2-3-4-5-6-7-8-9-10–> +

Let’s say user data release by AOL would rate at negative 7; setting out to rewrite Netscape from scratch at negative 9; changing all the links of an established website in the name of SEO at negative 5; writing tons of spaghetti code that nevertheless functions and serves users at positive 1; coming up with PageRank algorithm and implementing it — at positive 10. There are also those who come into the office and do nothing at all – that’s 0. Ase we all seem to notice and remember negative things better than positive, sometimes corporate life seems like one big orgy of incompetence and bad ideas.

I’ve long had a theory, why even with so many negative contributions, American companies mostly prosper and thrive, despite incompetency. To explain it, I usually use an ant metaphor. See, when ants are carrying a bug or a caterpillar back to the nest, they almost always succeed. But the thing is, they do not cooperate very well. They all have different ideas about which way to pull, and some, instead of helping, actually climb on the cargo or collide with other ants. Others just watch from the sidelines and generally mill about. But even though ants pull in different directions, the resulting force vector generally leads to the nest, and the caterpillar gets there eventually.

Recently, an article about a designer Paul Frank caught my attention. He is fighting his former business partners who jettisoned him from the company bearing his name. He came up with the design ideas that made the company what it is, as well as lent it his name. The business partners accused him of not contributing to the daily business grind, bought out his shares and either fired him or drove him to resigning (depends on whose story you listen to). It’s getting nasty:

” “Those guys are saying Paul Frank is not a person,” says the designer, whose given name is Paul Frank Sunich. “I hear they’re all wearing T-shirts that say ‘We Are Paul Frank.’ Well, you’re Paul Frank Industries. You’re not Paul Frank.”

I’ve seen the monkey design that Paul Frank is so famous for, but did not know that it was a multimillion dollar business. Apparently it’s very popular – and I definitely do believe that both the business partners that made this quirky brand into such a powerhouse and the guy who conceived it made positive contributions.

What I have the issue with is the person who’s running their web department. It’s not even the unusable obnoxious flash-ridden websites that don’t work in Firefox. It’s the fact that this person apparently never did something very basic – typed in “Paul Frank” into Google. Because when you do, you get this as a first result:

I don’t have a problem with the programmer who used a stock client detection script from somewhere. We all do that. But putting “Client Detection Script” as the title of the first page of your site is rather idiotic. And nobody at the company even searched for “Paul Frank” in Google, even if to see what other Paul Franks there are out there!

Getting back to my ant theory, squabbles, badly designed websites and all those people who prolifically do bad things are balanced out by things done right. The website may suck, but the brand is so good that people will put up with it. Individual ants might be doing stupid and counterproductive things, but it all gets balanced out. The caterpillar gets dragged into the nest, whether it wants it or not.

Personhole Covers

Forgetting for a second about my gender neutral language skills  let’s talk a bit about manhole covers.

In case you haven’t noticed, they come in an amazing variety of shapes, sizes and designs. The designs are often amazingly elaborate and beautiful. Just like I am not the first programmer to be asked “why manholes are round and not square” in an interview, I am not the first person to notice and write about the designs.

Probably the most popular photography book about manhole covers is Manhole Covers by Mimi and Robert  Melnick. I have it, and it’s outstanding. This time when I checked at Amazon, there was also Quilting With Manhole Covers – A Treasure Trove of Unique Designs from the Streets of Japan  as well as copycats Designs Underfoot and Treasures Underfoot.

Amazon also has these kick ass fake covers for hanging on the wall (as it’s nearly impossible to hang a real 600 lb manhole cover and rim on a wall ).

Just like there’s no shortage of books, there’s no shortage of websites as well. Staring into the hypnotic designs can be very relaxing.

Why did I decide to write about manhole covers today? Simply because New York Post recently ran a story about a somewhat fleshy skateboarder who fell backwards onto an electrified Con Ed manhole cover.  That resulted in her getting literally branded with a design on her back. Even a few letters of “Con Edison” are visible:

The girl is lucky – manhole covers are known to shoot high up in the air due to steam buildup– and a flying 600 lb cover could  leave a stronger impression.

Also  it could be  “Made in India” instead of “Con Ed” as most of the new manhole covers are produced there for 25 cent a pound these days. There’s an excellent article about it from which I just have to pull a few choice quotes :

“In India, the making of manhole covers is vastly man’s work – and it has been for generations. “They say the skill can only be done by a man,” Agarwal said. “The molding can never be done by a female.” “

“The progressive nature of an otherwise primitive workplace exhibits itself in other ways. Inspirational sayings written in English are hung throughout the foundry, such as “Quality is free, but it is not a gift.”

Ironically, few workers can read the sign, let alone the names of the cities on the covers they create.”

Now, unless you are a programmer who’s encountered the ubiquitous manhole question, you must be wondering, what’s the right answer to the question? Why aren’t they square? Let me give you a geek’s answer.

First of all they are not all round – there are square, rectangular, hexagonal and other ones. Here’s an  example a of a square manhole cover (Note “India” on the bottom). This is a small one, but much bigger ones exist as well, I just can’t find a good example that’s both square and says “India” right now.

The answer they are expecting is that it is impossible to drop a round disk into a round hole of the same size. But there’s also a shape called the Reuleaux triangle that has the same property:

With the help of a Reuleaux triangle shaped bit and a template  it’s possible to drill square holes. Unfortunately I can’t seem to find any of these drill bits for sale.

Also, a round manhole cover is easier to roll. Duh. You might also  tell the interviewer about my fishing buddy Michael Prior’s echinterview.org and ‘s techinterviews.com