Shipping Bugs

Eric Sink for The Guardian, Why we all sell code with bugs:

The world’s six billion people can be divided into two groups: group one, who know why every good software company ships products with known bugs; and group two, who don’t. Sometimes we encounter a person in group two, a new hire on the team or a customer, who is shocked that any software company would ship a product before every last bug is fixed.

As much as I hate attempts to split the world into “two kinds of people*,” this rings true. You can tell a lot about a person’s level of tech comfort by watching them react to software problems. Less-experienced users often react to bugs as if they were some kind of personal affront. “Just make it simple, just make it work. Why does this have to be so hard? I don’t know about you computer geniuses.” And then the car analogies begin. “I wouldn’t tolerate this from my mechanic… Can you imagine if Honda sold cars with known problems? They’d never get away with it,” and so on. The worst of them go on extended rants about how much simpler everything used to be (they’re not wrong on that point, but it’s impossible to convey the gestalt of the entire modern world, so we generally don’t try). Thus,

Every time Microsoft releases a version of Windows, stories are written about how the open bug count is a five-digit number.

More experienced users tend to shrug off bugs and problems, stay calm, look for workarounds. The inexperienced user looks at a computer and sees its candy-coated exterior – a lovely picture window. “How complicated can it be? What do you mean there are 11,000 bug fixes in 10.4?” The more experienced user sees the same machine as an infinity device – a miasma of unbounded complexity. Millions of impossibly small transistors, millions of lines of complex interdependencies. The experienced user accepts computer problems more gracefully because s/he is an awe that the damned thing is even capable of booting, let alone running software.

* There are two kinds of people in the world: Those who believe there are two kinds of people in the world, and everyone else.

Music: Caravan :: A Day in the Life of Maurice Haylett

Mac OS Forge

The Mac OS analog to SourceForge: “Mac OS Forge is dedicated to supporting the developer community surrounding open source components specific to Mac OS X.” None of the usual Apple branding there, though it is an Apple production. Cool to see they’ve already released the source to Calendar Server (for supporting iCal workgroups), which will be built into Leopard Server (itself not due for another nine months). And it’s Darwin, which means it’ll be possible to run it on Windows and *nix servers, just like Quicktime Streaming Server.

Mail-App-Rss Unrelated nifty: Looks like there will be an RSS reader built into Mail.app in Leopard (via dsandler.org). Nothing innovative there – Thunderbird and others already do RSS – but it’ll be nice to have. Let’s hope it’s better than the craptastic RSS reader built into Safari.

Music: Caravan :: And I Wish I Were Stoned-Don’t Worry

WP-Digest 2.0

Yet another major overhaul of WP-Digest, which sends out summaries of new posts on WordPress blogs to a subscribers list. v2.0 is capable of sending HTML email with plain text fall-back (multipart) or plain-text-only. Now using v2 to send formatted messages to the Birdhouse Updates list. The wonderful PHPMailer class is now included in the distribution, which made the multipart part easy.

Music: Neko Case :: Dirty Knife

STOP SHOUTING

The Caps Lock key takes up valuable keyboard real estate, encourages shouting (accidental or intentional), and results in mis-typed passwords. The CAPSoff blog has become a rallying point for users who want to encourage manufacturers to either ditch it or move it up into no-man’s land alongside Scroll Lock, et al. Wired News:

“The Caps key is an abomination,” Hintjens writes on his blog. “It’s a huge key, stuck right there where the Ctrl used to be, and as far as I know, it’s only used by 419 scammers and Fortran programmers.”

“Obviously the keyboard producers have been so indoctrinated that they don’t even inspect their own products any longer,” Hintjens writes. “Listen, dudes: No one wants that crummy Caps key. It’s history.”

File under: Noble effort, but historical momentum is too hard to fight. If you want the keyboard to be logical, may as well throw out the whole thing and start over. Or go Dvorak.

Music: Tom Glazer :: Where Is The Stratosphere?

Precious Bandwidth

Warning: Extreme nerd content.

View source on just about any Google page and you’ll see most of the code jammed together on a single line. With the kind of volume they do, every byte saved adds up to real money, so removing line feeds saves dough. But if they’re being that careful about conserving bandwidth, how does Google Video figure into the equation? Thought it might be fun to do some cocktail napkin math.

If I run a Google search and save the source code to a file, that file is 24032 bytes. If I open it in BB-Edit and run Format | Plain (which adds line breaks at logical places but adds no indentation), the file grows to 26868 bytes*. So Google is saving an impressive 2836 bytes (2.8k) per SERP by removing line feeds.

Now, assume a video stream that runs at around 2MBs/minute and lasts three minutes. At 1048576 bytes per MB, that’s 6,291,456 bytes per video stream. Which gives us a ratio of:

6,291,456 / 26868 = 2218.4 / 1

So the precious bytes Google saves by removing line feeds on 2,218 SERPs is nullified by serving a single three-minute video. Of course, they dish up a hell of a lot more SERPs than videos, but it does raise the question: Is bandwidth precious to Google or not? I can picture the looks on the faces of all the engineers who had spent a decade living under the “Optimize the hell out of it” mantra the day they learned the company would be serving up unlimited gobs of video to the public for free.

Update: Sean observes that some of the videos he’s downloaded from Google average 6 MBs/minute, which would pretty much exactly double my estimate. We would need to download a bunch of videos from Google to get an accurate average, but if they’re averaging 6MBs/min, it makes me think that very little optimization is going on in Goog’s video dept. I train students to compress video at around 3 MBs/minute (320×240, 15fps, MPEG4). Since I was assuming that Google also has a strong interest in video optimization, I originally assumed that their streams would be of a similar size.

* Incidentally, if I run Format | Gentle Hierarchical at this point (which adds common indentation for nested elements), the file swells to 43356 bytes. And if I run Format | Hierarchical (which indents aggressively), the file swells to 64102 bytes — almost 3x its original size. Yow!

Technorati Tags: , ,

New J-School Site

Jschool-New It’s up! (See One Last Look). Not perfect, and still a few items on my to-do list, but the new J-School web site is finally live, just in time for the new school year. A very different animal from the old one. All font tags are gone. Layout tables are gone. The major pages all pass XHTML validation (eventually the whole site will validate). We finally have a complete templating system (I ultimately decided to go with Smarty templates rather than adopt or build a CMS). Loads of new features, lots more anti-spam controls. Much less manual work to maintain the homepage (due to better separation of content types). Lots of things that were previously almost invisible are now surfaced via fly-out menus. Decent degradation with CSS and/or JavaScript disabled. Homepage now much more graphical (the main image is on a 15-minute rotation), less text-heavy overall. Lots more interface between back-end / intranet databases and public views (e.g. current and historical course offerings). And so on.

Amazing to look back over my Basecamp entries from the past year — 178 items checked off, 5 to go (mainly small fixes plus some work to do accessibility). Seemed like for months, I was adding three items for every one I checked off. Now, finally, it’s like a permanently attached monkey has been pried from my back.

Feedback welcome.

Many thanks to Andrew Devigal of Devigal Design (who also teaches design in our multimedia skills classes).

Music: Vincent Gallo :: Honey Bunny

One Last Look

Old-Jschool Come November, I will have been at the J-School for five years. I remember thinking when I started that setting the school up with a modern site would be one of my first tasks. Things didn’t quite work out that way. Spent a couple of months whittling the site down to essentials (it was over 90% orphans, and contained gigabytes of uncompressed images and video when I inherited it). Then the school needed an intranet, so I built that. Then they needed a jobs database, an alumni database, a multimedia tutorials collection, a spam-proof email contact form system, a brochure request system. An events publishing system. Integration with FileMaker databases. A webcasting system. A system to gather and post links to published student and faculty stories. An integrated mailing list system. A search interface. A courses and class scheduling database. An equipment checkout system. A staff and faculty calendaring system. Discussion boards. Weblogs. Lots and lots of weblogs. An online quiz system. A publishing system for the writing-intensive J-200 courses. And then there were the classes — co-teaching in multimedia skills, schlepping projectors and cameras around, helping out here and there. Doing desktop support for faculty and staff. Helping an unending parade of students with misc tech questions. Last summer was spent helping the entire school convert from Windows to Mac OS X. Spent most of this summer helping build a content management system for News21.

And so it goes. Days turn into weeks turn into months turn into years. After enough time had passed, I entered a state of resignation, accepted the 1997-era web site as a fact of life, and kind of stopped seeing it for what it was. I couldn’t find two-hour blocks to take care of all the small stuff, let alone find the hundreds of hours it would take to completely replace all the plumbing. But over the past year, working in the margins, I was able to secure funding for a new design, doubled up on my quota of interns, and slowly chipped away at it in the background.

A few weeks ago I wrapped up the work on News21 and have been going full-tilt boogie on getting the new site ready for launch. And now we’re on the brink. Take one last look, because tomorrow night this old jalopy goes bye-bye. If you read this after Tuesday night, the screenshot above will be all that remains.

Never thought I’d say it, but I’m going to miss the old dog. Kinda.

Music: Jorge Ben :: Ponta de lanca africano (umbabarauma)

Spin Circuit

Quantum-Compute All that stands between today’s “strong” encryption and a total breakdown of security on the internet is the fact that brute force methods for cracking keys simply take too long. But quantum computers don’t process problems serially – they “sift” to find immediate solutions to mathematically hard problems. Therefore, the existence of a practical quantum computer could have huge ramifications for virtually all systems that rely on hard encryption for security (your online banking system, for example). Though still largely theoretical, the day of reckoning for traditional encryption is starting to look a little closer.

New Scientist: A new silicon chip capable of manipulating the spin of a single electron could ultimately allow futuristic quantum computers to be built using conventional electronic technology, researchers say. A quantum bit, or “qubit”, is analogous to the bits used in conventional computers. But, instead of simply switching between two states, representing “0” and “1”, quantum physics permits a qubit to exist in more than one state simultaneously, until its state is measured.

As it stands, human brains are slow, but compute in a massively parallel fasion. Computers are very fast, but pretty much attack problems serially (have to process one instruction at a time). Combine a computer’s inherent speed with publicly-available massively parallel computing (still theoretical, but on the horizon), factor in the infallibility of computer memory compared to human memory, and the world changes in ways we can’t begin to imagine. (cf: Kurzweil’s The Age of Spiritual Machines).

via Paul Conant

Music: The Seeds :: 900 Million People Daily

Garbage Scout

Useful, enviro-friendly use of the Google Maps API: Garbage Scout. See something useful being thrown out? Snap a pic with your cell phone and email it (again from your phone) to garbagescout.com, along with the address. An image of the item appears on a Goog map along with location details so others can come snag it. Currently available in New York, San Francisco, and Philly. Can’t decide whether the site needs design help or is in keeping with the subject matter.

Music: Eric Dolphy :: Improvisations and Tukras

Eno, Wright, Generative Systems

Posted back in 2002 about the Long Now Foundation – created by Stewart Brand to think about the very distant future of humanity. Their flagship project is the construction of a clock to last 10,000 years, which will chime once per century.

The foundation recently hosted a conversation between musician Brian Eno and game designer Will Wright (The Sims, Spore). Haven’t heard the whole thing yet, but the first half hour was fascinating — Eno and Wright mostly discussing generative systems — complexity arising from simple rules. Eno reminisces about the first time he heard Steve Reich perform a pair of tape loops — an inflection point in Eno’s career.

Reich took two identical 1.8-second audio segments and created identical loops out of them, strung them through two decks, and played one slightly slower than the other. Gradually the two segments went out of phase with one another, giving rise to complex and beautiful relationships. The pieces come back into sync 30 minutes later, and the piece ends. Objective correlative: Near the end of the work day, I watched sadly as the J-School hauled its last remaining reel-to-reel tape decks out to the electronic recycling bin, their usefulness behind them.

Wright talks about the Game of Life as a generative system giving rise to complex relationships from a base of a few simple rules, correlates to the Chinese game of Go, which also has very few rules but tremendous complexity. Eno demonstrates a version of “Life” that generates music from the ongoing relationships in the same game.

The conversation is downloadable as MP3 or Ogg/Vorbis, and is accesible through the SALT podcast.

Surfing around the longnow site this morning, arrived back at the homepage to find the face of my boss (Orville Schell) gazing back at me – no escape!

Eno has released a CD, Bell Studies for the Clock of the Long Now, which I haven’t yet heard. Still listening to Eno almost nightly, putting Miles to bed. It’s almost impossible to burn out on them.

Music: Gilgamesh :: Extract