Tuesday, November 30, 2004

KISS (Keeping It Simple and Sloppy)

Adam Bosworth, formerly of Microsoft and BEA and now at Google, gave a talk at ISCOC04 about KISS (Keeping It Simple and Sloppy). The transcript is an excellent read. One good quote to motivate you:
... software which is flexible, simple, sloppy, tolerant, and altogether forgiving of human foibles and weaknesses turns out to be actually the most steel cored, able to survive and grow while that software which is demanding, abstract, rich but systematized, turns out to collapse in on itself in a slow and grim implosion.
Adam goes on to provide examples of "sloppy" systems that succeeded where rigid systems failed. The examples are good but I take issue with one of them:
Consider the spreadsheet. It is a protean, sloppy, plastic, flexible medium that is, ironically, the despair of all accountants and auditors because it is virtually impossible to reliably understand a truly complex and rich spreadsheet. Lotus corporation (now IBM), filled with Harvard MBA's and PhD's in CS from MIT, built Improv. Improv set out "to fix all this". It was an auditors dream. It provided rarefied heights of abstraction, formalisms for rows and columns, and in short was truly comprehensible. It failed utterly, not because it failed in its ambitions but because it succeeded.
First off, I don't remember anyone with a Harvard MBA or MIT CS PhD on the Improv team. Second, I think Adam's view oversimplifies the reasons for Improv's demise. It's a fair assessment when viewed from the outside but reality was more complicated than that.

But that's really a nit. The rest of Adam's talk is terrific.

Also worth reading is Sriram Krishnan's followup to Adam's article, Tyranny of the geeks

Exploding lava lamp

Lava LampThe Lava Lamp was invented by Craven Walker. It's a simple novelty: a 40w light bulb in the base provides light and heat. A waxy solid in a clear liquid is heated by the bulb and rises and falls through the liquid. Groovy.

But what happens if you heat the waxy solid to an even higher temperature? Philip Quinn decided to put his Lava Lamp on a hot stovetop and was killed by a shard of glass when the lamp exploded. In retrospect, it was pretty stupid thing to do but many of us have done stupid experiments like this and despite not thinking it through we've somehow survived mishap. Philip wasn't as lucky.

Monday, November 29, 2004

Freegans

Our aversion to things that have been in the garbage is pretty strong. Remember the episode of Seinfeld where George picks an eclair out of the garbage and eats it?
Jerry: So let me get this straight. You find yourself in the kitchen, you see an eclair in the receptacle, and you think to yourself, 'What the hell, I'll just eat some trash.'
George: No no no no no. It was not trash.
J: Was it in the trash?
G: Yes.
J: Then it was trash.
G: It wasn't down in. It was sort of on top.
J: But it was in the cylinder.
G: Above the rim.
J: Adjacent to refuse is... refuse.
G: It was on a magazine. And it still had the doily on.
J: Was it eaten?
G: One little bite.
J: Well, that's garbage.
G: But I know who took the bite. It was her aunt.
J: Well, you, my friend, have crossed the line that divides man and bum. You are now a bum.
According to this article, Freegans don't have such an aversion. They dive into dumpsters collecting food that has been tossed out. Their organization, Food Not Bombs, then shares the collected food with the homeless. Apparently dumpster cuisine isn't for everyone. Even some of the homeless will pass up the free food once they learn where it's coming from.

Full-back HTML tattoo

Now this is a geek tattoo. The pun references to body, left, right and center are funny but isn't this guy worried about obsolescence? Years from now all of the cool kids will have XYZHTML 11.02 compliant ink art. They'll make fun of this aging geek with the funny tattoos.

The brilliant, pointless branding campaign

Adam Greenfield has an excellent appraisal of HP's current ad campaigns. Terrific brand ads such as everything is possible. The problem is that HP doesn't have refined products to back up the ads. HP products compete in lots of areas and don't really stand out. Their consumer products are well made but why, for example, should I purchase an HP digital camera over, say, a Nikon, Olympus, Pentax, etc? And why would I purchase an HP iPod over an Apple iPod? The HP brand ad campaigns for digital photography and digital music are well done but why buy HP over their competitors?

Years ago, HP built solid technical products that stood out for their excellent engineering. Today's HP is a very different company. It competes in markets where there are lots of other choices. I'm no marketing genius but I don't think you can create a positive brand identity without innovative products to back up a slick advertising campaign.

Note: I'm not dumping on HP products. I've owned several HP products and they've all been well made. I still own an HP LaserJet 4m. It's nearly twelve years old and still works great. And my ancient HP 25 calculator still works great too.

How to eat sushi

Eugene Ciurana's Sushi Eating guide is interesting reading, even if you eat sushi all of the time. His advice on Fugu (poisonous blowfish) is serious and unintentionally funny. While you're enjoying your Fugu he offers this comment:
Can you feel your tongue? No? Stop eating immediately and call the ambulance.
When I lived in Brookline, I ate sushi one or two times a week. One of the sushi places in town was a family-owned restaurant. The itamae's wife told us in glowing terms about the joy of eating Fugu. It would be cut into paper-thin slices that were spread out on a plate to look like a chrysanthemum flower. When I asked her if she was afraid of dying from Fugu poisoning she said that she wasn't worried. When they lived in Japan, her husband prepared it for her and he was an expert. And besides, she was a Buddhist and believed in reincarnation.

Note: before Andrew beats me to the punch, Homer ate what he thought was tainted Fugu in a Simpsons episode called One Fish, Two Fish, Blowfish, Blue Fish.

Sunday, November 28, 2004

No comment

If you use Eclipse to generate Java classes, interfaces, methods, etc. it will automatically insert boilerplate comments for you to fill in later. The default boilerplate looks like this:
/*
 * Created on Nov 22, 2004
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
Comments like this will show up in Eclipse's TODO view to remind you to fix them. Do you think anyone would just leave the default boilerplate in their code? Let's take a look: Google finds 11,800 instances of this string. The open source code search engine Koders found 1642 instances of the string.

What to make of all of this? Not much except that it's an indication that a lot of developers don't care enough to comment their code.

Friday, November 26, 2004

Copyscape

Copyscape lets you find copies of your content on the web. You can use Copyscape to identify sites that have copied your content and sites that are quoting your site. Copyscape uses the Google Web APIs to find copied content. Clever idea.

Is Writing Code Stupid?

Ian Wij thinks writing code is stupid and believes that the solution is code-generation from software requirements. While many of his points about the current state of software development are true, I think Ian's solution is flawed except for very simple applications where performance doesn't matter.

Ian's approach would be to "model requirements that are consumed by an extensible code generation platform to produce the final application". Sounds good but the requirements that I've worked with aren't in a rigorous form that could be consumed by any sort of code generation tools. Rewriting requirements so that they were crisp enough for generation tools just sounds like another form of programming. And with less control over the results. In Ian's elaboration of his approach he says that "Where it isn't cost effective to model and generate, write components that get weaved into the generated code and called at the appropriate points." So he's giving himself an out when all of the code can't be generated from the requirements but it sounds like hand waving to me. To quote H. L. Mencken, "For every complex problem there is an answer that is clear, simple, and wrong".

Top 100 Overlooked Films of the 1990s

Some real gems in this list of the Top 100 Overlooked Films of the 1990s. Were these films really overlooked? Lone Star, Miller's Crossing, The Red Violin, The Double Life of Veronique, Before Sunrise, Glengarry Glen Ross, Richard III. Too many to list. There are a few films here that I didn't like and a number I haven't seen yet. Take a look.

Update: I thought this list sounded familiar. As Pete points out in the comments, I overlooked the fact that I had posted this same list back in August. D'oh.

Bournegol

As I mentioned in my post about the Bourne Shell, the source code for Unix /bin/sh (aka Bourne Shell) was written by Steve Bourne using C macros to make C look like Algol-68. Developers hated to modify the code because you had to learn a new language. You could say that the code to /bin/sh was a cautionary tale of macro abuse. According to Marc Lehmann, this style of coding is called Bournegol .

1, 2, Many...

12many is a Flash game by TONYPA where you count how many stars you see.

Some of the other games by the same author are amusing as well. My son enjoys Save the Shoppers. The object of the game is to place lines to prevent shoppers from reaching the store. An appropriate game for today, the biggest shopping day of the year.

Trunk Monkey

I still get lots of search hits for my post about the Trunk Monkey television ads. I just noticed that the company that ran the ads, Suburban Auto Group, moved the videos to a separate web site www.trunkmoneyad.com.

Tuesday, November 23, 2004

Ides, Nones and Kalends

When I was discussing IDEs the other day I was going to craft a title along the lines of "Beware the IDEs of ..." phrase (as in "Beware the Ides of March") but I couldn't come up with anything clever enough. And then I decided to look up the etymology of Ides. Nothing really ominous, it literally means March 15th based on the Roman calendar.

The Roman calendar organized each month around three specially-named days, each of which served as a reference point for the other days:

Kalends - 1st day of the month.
Nones - 7th day in March, May, July, and October; 5th in the other months.
Ides - 15th day in March, May, July, and October; 13th in the other months.

The other days of the month were identified by counting backwards from the next named day (e.g. V Nones would be five days before the Nones).

If I had my druthers

I found myself using this phrase the other day and decided to find out it's origin. What the heck are druthers? As you might already know, druthers is an alteration of 'd rather (as in I'd rather, We'd rather, He'd rather...).

Monday, November 22, 2004

Dividing the Developer World

According to Robert Benchley, "There are two kinds of people in the world, those who believe there are two kinds of people in the world and those who don't".

Oliver Steele is the first kind of person: in this essay he divides the developer world into two camps: Language mavens and Tool mavens. Minor nit: given that a maven is an "expert", isn't there a third camp of developers, the non-mavens? But I digress...

Oliver's dividing point is an interesting one. Coincidentally it's something that I've been thinking about recently, especially since I became enamored with Eclipse. I believe that Eclipse has really improved my productivity. I guess that would make me a Tool maven. But according to Oliver's definition for a Tool maven "the choice of programming language doesn't matter that much ... the real development power comes from the IDE". That doesn't sound like me at all. In what world does such a person exist? Are they really a software developer? Eclipse enhances my understanding of code written in Java and makes it easy do code refactoring -- something that's a lot harder with a text editor. This doesn't make me care any less about Java. And it certainly is no substitute for a good fundamental understanding of the language.

Likewise Oliver's definition of a Language maven doesn't work for me. Oliver talks about how more languages will have a compiler and runtime than a compiler and a runtime and a language-aware editor, debugger, etc. That makes sense. It's less work to just do the compiler and runtime. But does it follow from that as a result Language mavens typically have access to languages that are more powerful? Newer languages perhaps but more powerful? We can debate what makes a language powerful but the canonical choices of powerful languages such as Lisp or Smalltalk have had development environments since the early days, not just compilers and a runtime. Smalltalk never really had anything less.

My feeling is that in order to create a truly powerful language, you need tools as well. Text editors are fine for the initial bootstrap but power needs to be accessible. Tools aren't just window dressing. Eclipse includes its own Java compiler precisely because it needs deep understanding of the language to assist the developer. And the tools for building IDEs are coming too. You don't need to start from scratch. Lots of language-aware editors and complete development systems have been written as Eclipse plugins. (Via Ned)

Less Than Expected

The new Treo 650 is a step backwards from the Treo 600 in one area: memory usage.The two devices include the same amount of memory (32 MB) but the 650 has a new Non-Volatile File System (NVFS) that organizes memory as blocks of 512 bytes. Palm applications use record-oriented databases. On the Treo 650 under NVFS, each record is padded out to 512 byte chunks. So, for example, a 50 byte record would inflate by more than 10x when stored on the 650. A big problem for applications with lots of small records such as Contacts and Datebook.

The change in memory technology on the Treo 650 means that even if the battery dies you won't lose any data. Definitely nice but I'd forgo this feature for more reasonable memory usage. In all other respects, the Treo 650 is much nicer than the 600. palmOne promises to address the problem but it's not clear if the fix will be a software patch or something more extensive. Hopefully they'll address it quickly.

Update: palmOne has responded to these memory concerns. They plan to release a ROM upgrade to "increase memory use efficiency" and are offering a free 128MB SD card to existing Treo 650 users. palmOne has also posted an article on NVFS in their Support Knowledge Library. Sounds like most of the problems will be mitigated by the ROM upgrade but may also require updates to third-party software to deal with NVFS properly.

Desperate Housewives

Filling the Sunday 9pm slot when I would normally watch an HBO series, Desperate Housewives is a real hoot. It's an interesting mix of humor and drama. I don't know how long they can sustain the convoluted plot but maybe it doesn't matter. Soap operas run on daytime television for decades driven by tangled plotlines. The writing and acting on this show are great. If you're sick of all of reality format and CSI overload on network television, take a look.

Keyhole

Keyhole is a digital mapping service. The Keyhole application lets you type in an address and "fly" to it from space down to street level. Very cool effect compared to static aerial images sites such as Microsoft TerraServer.

Keyhole relies on satellite imagery which they claim ranges from 18 to 24 months old. The Keyhole client is Windows only for now and their business model is as a subscription service. You can download a 7 day evaluation copy. I see occasional display glitches in the client but otherwise the effect is really amazing. Note: Google acquired Keyhole in October. (Via Metafilter)

Sunday, November 21, 2004

The Twelve Networking Truths

The Twelve Networking Truths are presented in RFC 1925. They were intended to be the set of fundamental truths underlying all networking. The content of the RFC is both funny and speaks volumes. These truths can be applied to software development as well. For example, look at Truth 5 (with the proper spelling of agglutinate).
It is always possible to agglutinate multiple separate problems into a single complex interdependent solution. In most cases this is a bad idea.
That's not specific to networking; we see this problem in software development all of the time. And also the inverse where you find multiple instances of the same problem being solved in the same way over and over again throughout code. Also a bad idea.

Update: as Bruno Bord points out in comments, RFC 1925 is one of the infamous April 1st RFCs. It's not completely silly as most of them are but notice the author's address: Ross Callon, Internet Order of Old Farts

SpongeBob: The Movie

My son and I saw The SpongeBob SquarePants Movie this afternoon. He loves the show and has been looking forward to the movie since ads started to appear several months ago. If you know nothing about the sponge named Bob who works as a fry cook and lives in a pineapple under the sea, you probably won't appreciate this truly weird film. Otherwise, it's the same sort of silly, subversive content as the show which can make some parents, including me, wonder why they let their kids watch it.

Saturday, November 20, 2004

Secret Santa 2004

The idea of Secret Santa is very simple - you pull a name out of a hat and buy that person a present. Your name is in the hat as well, so someone buys you a present too! Everyone gets a present! Everyone's happy!

To use the Secret Santa website, you need a wishlist at Amazon. First you tell Santa about yourself. Then on December 10th you will be told who you're buying a gift for. And by Christmas Day, everyone has a present to open.

This is an interesting idea. According to the About page, the Secret Santa site was started three years ago and over 1500 presents have been giving out so far.

Here's a thought: how about organizing a web-based version of a Yankee Swap?

Friday, November 19, 2004

VidLits

VidLits are animated Flash excerpts from books. Interesting idea. Here's a VidLit for the book Yiddish with Dick and Jane. Very funny and I learned the proper meaning of "gornischt". (Via Sylvain)

This VidLit called Craziest is also well done. I like the way that the narrator's Scrabble obsession builds and builds. And I learned that the highest scoring Scrabble play was 311 for a triple-triple using the word craziest.

The Incredibles

I watched The Incredibles last night. It's a terrific film. Quite different from Pixar's earlier films.

A number of reviewers have mentioned that Edna Mode's voice was done by film's director Brad Bird. Another interesting choice is the voice of the teenage daughter Violet. Her voice was done by Sarah Vowell, writer and essayist for NPR's This American Life.

The computer animation in this film is amazing. Even though the characters are intentionally cartoonish in appearance, the rendering of hair is just, well, incredible. To get a sense of how far computer animation has advanced over the years, take a look at this animation short from 1990 called Grinning Evil Death. It was a mixture of computer graphics and traditional animation featuring a breakfast cereal superhero and massive killer cockroach.

Thursday, November 18, 2004

School Days

I had an opportunity to observe my older son's second-grade class today. Parents were invited to sit quietly in the back. While I watched his teacher run through her lessons, asking questions, drawing out answers, etc. I realized that I miss school. It's not that I want to rewind the clock or anything but sitting in a classroom again made a bit nostalgic.

Bill Gates Gets 4 Million E-Mails a Day

Bill Gates' email address is probably one of the best known in the world. According to this article, he gets 4 million emails a day. After spam filters eliminate most of the junk, several Microsoft employees sift through the rest to decide what ends up in Bill's inbox. This sounds like a job with high burnout potential. Just imagine the sort of vitriol and crackpot content that ends up there.

Wednesday, November 17, 2004

Feel better

Having a bad day at work?

Suffer from low self-esteem?

Stressed out?

Can't...hold...on...much...longer?

Push the red button to be liked! (Via BoingBoing)

Gmail POP3 access

Google recently added POP3 and SMTP e-mail access for GMail users. They've been rolling out this support in phases. My GMail account started supporting POP3 this morning. Granted, you lose most of the cool Gmail features by pulling your messages down to an email client but it's nice to have the option.

Singing resume

Alexandre Guéniot, a French computer programmer, has created an animated resume with music (also in French). He deserves a lot of credit for creativity but someone please hire him before he sings again!

Tuesday, November 16, 2004

Konfabulator for Windows vs. DesktopX

I've played with Konfabulator for about a week. It's pretty slick. I think I like the idea of Konfabulator better than I like the product itself. The widgets are fun and the way in which they're constructed is clever. I can think of a few widgets that I'd like to build but haven't found the time to try. DesktopX is a similar program. This comparison makes me want to give it a try as well.

And I think it's going to be a long long time

William Shatner sings (er, butchers?) "Rocket Man" at the 1978 Science Fiction Film Awards. Painful.

Interstate 69

Apparently I-69 is too risqué as a highway designation to some Indiana residents who want it be be changed to a "more moral sounding number".

Update: It's a hoax. Read here for details. Thanks to Michael Meckler for pointing this out.

Broadband Speed Test

How fast is your Internet connection? Try the Broadband Speed Test. My cable modem setup fared pretty well but it's asymmetric. Download rates were about 10x better than upload rates.

Dancing Transformer Car Television Ad

In this television ad for the Citroën C4, the car transforms into a robot and dances because it's "alive with technology".

Segway across America at 10 MPH

Josh Caldwell is traveling across America from Seattle to Boston on a Segway. He arrives in Boston at 6pm today after 100 days on the road, 4100 miles and more than 400 battery charges. The idea reminds me of the David Lynch film The Straight Story but there was a reason for that bizarre journey.

Eclipse vs. IntelliJ IDEA

Software developers are very parochial about their tools. Religious wars start when you try to compare them. Vi vs. Emacs is probably the canonical software tool dispute. I spent years living in GnuEmacs but I still use vi occasionally. They're both useful in their own way.

The Java world has its own software tool wars about which Java IDE is best. A few years ago they were all pretty bad. Too slow, too cumbersome and not able to scale to be useful for "real" software projects. Things have improved considerably since then. Now I spend most of my time using Eclipse. It's worth the learning curve. It offers real productivity benefits over a generic text editor. For example, we have some home-grown plugins that make it very easy to automagically set up a workspace for our code inside Eclipse. And once you have your code inside Eclipse you can take advantage of the refactoring features to make structural changes that would take a lot longer in a text editor.

David Gallardo has written a series of articles on Eclipse that compare it to IntelliJ IDEA, NetBeans and JBuilder. The purpose of these articles is to convince developers using these tools to move to Eclipse so they aren't really intended to be balanced comparisons.

I've used NetBeans and JBuilder but not recently. I've never used IntelliJ IDEA but I've heard lots of good things about it. It wouldn't be a viable option on my current project since we're writing Eclipse-based code. Browsing through the IntelliJ web site it looks like IDEA might support a few more types of refactoring than Eclipse but I don't think that the gap is substantial.

Personally I think it's healthy that there are a number of Java IDE alternatives. But you have to wonder how long IDE vendors will be able to survive against Eclipse.

Taming Tiger: Ocean and Synth meet Metal

The default look and feel for Swing is called Metal. It's a more-or-less "neutral" look-and-feel. J2SE 5 (aka Tiger) adds two new look-and-feels called Ocean and Synth. Ocean is a new theme for the Metal look-and-feel. It provides a somewhat softer look. Synth is an entirely new look-and-feel that can be customized via an XML file rather than subclassing. Read John Zukowski article for more details and code samples.

Metal Sculptures

QuintrinoThese metal sculptures by Bathsheba Grossman are an interesting combination of art and mathematics. I really like the Quintrino piece shown here. Each piece starts out as a 3D CAD model and is "printed" in metal with a layering technique from metal powder. Each piece is then dipped in molten bronze and finished using traditional metalworking techniques (as described here).

When I was still working on CAD software these printing technologies were just becoming available. I remember seeing 3D models constructed from plastic using a similar approach. In addition to the metal sculptures, there are also mathematical model pieces including this Menger Sponge.

Monday, November 15, 2004

Treo 650

The Treo 650 has been officially announced and palmOne is accepting pre-orders but the phone hasn't shipped yet. I attended a palmOne event in Boston last week and got a chance to play with one for several minutes. I want one. It's got a crisp bright screen and nicer keyboard with very bright backlighting.

One interesting design detail in the 650 is the use of NAND Flash memory which means that even if the battery dies completely, you won't lose any data. This type of memory is also used in the Tungsten T5. See this article for details.

Unguarded Moments

This photo of Michael Jackson standing between Nancy and President Reagan is surreal. Jackson just seems transfixed staring at Reagan. Think up your own caption.

Sunday, November 14, 2004

German Car Commercial

This video is a cheap trick but watch it anyway. Here's the original explanation:

This is a car advertisement from Germany. When they finished filming the ad, the people who made it, noticed something moving along the side of the car, like a ghostly white mist.

If you turn up the sound, you can also hear whispering. The ad was never put on TV because the unexplained ghostly phenomenon frightened the production team out of their wits. Watch it and about halfway through (after the car comes from behind the trees) look closely and you will see the white mist coming up from behind the car and then following it along the road!
Okay you know the drill. Click on it and watch carefully. Boo!

Pixar: How We Make A Movie

Pixar shows how they make a film. Clever use of an old Viewmaster for UI.