A dialog of thoughts and ideas about software, usability, and products, with random science and wacky ideas thrown in for good measure.


Google has unveiled their new Image Search interface. Doc Searls expressed his dislike of the new search (and his growing preference for Bing's image search) on his blog, and Dave Winer tweeted his agreement. I thought I'd check out Google's new capabilities to form my own opinion.

I tested Google Image Search by searching on my own name. In the new search results, images are shown on a page in a way that makes them visually strong - this looks less a sparse collection of images, and more like a montage of big, bold pictures. Instead of pages of search results, you can scroll down the page to see more results. Moving the mouse over an image may zoom in on the image if it's not already shown at full size, and displays additional information about the picture. This was helpful when I tried to understand why there were pictures of herpes in my search results (one of the world's people named David Koelle is a medical doctor).

When you click on an image to go to the website on which it was found, Google places an overlay on the site that shades the original page and shows the image you were looking for in the middle. I found this to be an annoying extra step - my intention in clicking on the search result was to go to the original page, so why should I be presented with another instance of the image, that I then have to close so I can view the page? It would be better to have a small copy of the image in Google's right-hand pane, with a button to "Find image in page" that would automatically scroll to (and maybe highlight?) the image.

So, what about Bing? It turns out that Bing is just plain wrong. Doing a Bing Image Search for David Koelle doesn't show any of the people I know named David Koelle. I can't find my picture in the whole list, and the first actual David Koelle doesn't show up until about 100 pictures down - but it's the only accurate hit for another 100 or more pictures. Instead, I see a few images that I'm familiar with: the JFugue logo; a picture of PragPub magazine, in which I once co-wrote an article; a picture of Michael Swaine, the editor of PragPub. Otherwise, I don't recognize any of the returned images, and very few of them seem to fit my search criteria.

I'm surprised at how dependent I've become on certain Windows 7 user interface features, and how natural they are to understand and use:
  • Searching within the Start menu (How did I ever find things before?)
  • Aero Snap: Moving a window so it fills the left- or right-half of the screen (I only rarely did this by hand, but it now feels so necessary)
  • Dragging the title bar of a maximized application to minimize it and move it around (Really? I couldn't do this before?)
  • And I haven't even started using Aero Shake (click and shake one window's title bar, and all of the other open windows will minimize) or Aero Peek (makes your windows transparent so you can see your desktop)
When I move back to the Windows XP machine I have at work, the lack of these capabilities is really frustrating!


I came to realize that the way I navigated my Start menu (which, despite my valiant attempts at cleaning up, spans at least two columns) was my physical location as opposed to logic: "I know WinSCP is on the top half of the second column." This knowledge became organic: as I added new applications to my system - WinDirStat (which is awesome), Google Chrome, and so on - they were added to the end of the list, and I became familiar with their physical placement. But on my new Windows 7 machine, I've installed so much new software so quickly (e.g., Paint.NET, LMMS, Synthesia (which is awesome), Blender, Boxee) that it's difficult to build up that physical memory... not to mention, the Windows 7 Start menu limits itself to one scrolling column.

I've searched in vain for Windows XP add-ons that can give my old windows the same side-of-screen, drag-from-maximize, drag-and-shake interaction that I don't know how Windows users have lived without for the past (almost) 20 years. It's clear that Microsoft doesn't have a vested interest in back-porting changes like these, but I hope some third-party developer will come around and do it some day (not me... I've got other projects cooking).

As I previously discussed, there are really only four types of energy: solar, nuclear, geothermal, and gravitational.

Some of our energy sources are actually the accumulated potential of these types of energy. For example, fossil fuels represent solar energy collected over a long period of time.

Let's say that by using fossil fuels, we can effectively put the power of 1 million years' worth of the sun's energy to work in supplying our day-to-day energy needs (probably a conservative estimate). Every day, maybe we use 10 months worth of collected fossil energy (the actual numbers are less important than my point).

Now, let's suppose fossil fuels run out.

Can the sun itself supply all of the world's energy needs in real-time? Is the amount of energy that we can collect and use per second greater than the total power consumption of the world per second?

If not, there's a lot of opportunity for scientists and corporations to improve devices that collect energy, and optimize devices that use energy.

I have a question for companies like BP, ExxonMobil, Sunoco, and so on:

Are you an oil company, or an energy company?

Because if you're an energy company, it's in your vested interest to honestly and thoroughly explore alternate forms of energy. You want to pour money into research and development, because you can see that we're heading away from oil and towards renewable energy sources. You want to be the first to develop facilities that can store solar energy for use at night; you want to be the first to devise ways to transport energy from the Arizona desert to Alaska during the winter. You - not GM, not Ford - YOU want to build the solutions that let cars run on something other than gas, so you can lock us into "HydroGen(TM) from ExxonMobil" or something like that, and license the engines to the auto industry. You see decentralization of energy on the horizon, as more homes and businesses generate energy at their location with localized solar and wind generation, and you want to tap into that market. Solving those problems will put you ahead of the competition. From a business survival perspective, you want to make sure that your company continues to exist if oil runs dry, if public opinion moves away from oil, if evolving national security concerns make it unrealistic to rely on foreign oil, and so on.

If you're an oil company, you're already a dinosaur. We'll see your demise in the coming decades.

As a software project manager, understanding risk and having risk mitigation plans to fall back on is extremely important to me. If someone said to me, "There's a 99% chance that we'll get this software complete by the deadline, but a 1% chance that, if we blow it, we'll lose our funding," I'm going to ask, "Okay, how to we manage that 1% risk? What are the warning signs, what do we do to prevent it, and if we happen to miss the deadline, what can we do so we don't lose our funding?"

Risk is a part of every project, and it must be recognized. Some semblance of an effective risk mitigation plan must exist.

Now, on to the oil crisis in the Gulf of Mexico.

"There's a 99% chance that our oil operation in the Gulf will go off without a hitch, but there's a 1% chance that if something goes catastrophically wrong, we'll fuck up the entire Gulf with thousands of barrels of oil a day spewing out of a hole that could take months to close up, followed by decades of clean-up. It will  severely alter the ecology of the area, and it will affect the livelihood of thousands of residents."

I'm going to ask to see your risk mitigation plan. And if it's not good enough, you're going to make it better.

It looks like there was no risk mitigation plan in the first place.

Nice job, guys. Way to be responsible. No triple bottom line for you, huh?

There are really only four types of energy: Solar, nuclear, geothermal, and gravitational. Every other source of energy we know of - fossil fuels, switchgrass, wind, waves, and so on - is based on one of those four.

Let's skip the middleman of fossil fuels and wind and get our energy straight from the sun.

(I'll even go so far as to suggest that the sun is really nuclear, and gravitational depends on the initial energy of something blasting the Moon out of the Earth's crust... so, I'll refine my list to two types of energy: nuclear and galaxial. And, yes, these both can be factored into "physics," but let's stay practical, people!)

I sometimes wonder if there could be a path for software engineers to become rock stars - not glorified engineers respected by the software engineering community, but actual stars that win over the general population, get their picture on the cover of Time magazine, get featured in ads wearing milk mustaches, and, when the world least expects to see them reappear, have a shot at Celebrity Apprentice or Dancing with the Stars. (EDIT: When I wrote this, I didn't know that Steve Wozniak was actually on Dancing with the Stars)

So what differentiates a software engineer from a rock star? (Perhaps the use of the word, "differentiates"? Or putting the question mark after the quote because it's not part of the string?) The irony of "Rockstar Games" is that there are no rock stars! Not by my definition, at least.

Music is about so much more than just the sound and lyrics that we hear on the radio. Successful musicians exhibit their personality and themselves through their songs, stage performance, and lifestyle. The popularity (or notoriety) of a musician is as much a part of their stardom the music they sing. Music is an extension of personality. Programming is not so directly related; it's not a physical expression that can be generated on the spot, but a mental expression that takes time to nurture. What would a software engineer in concert look like?

Music is about entertainment. The closest programming correlation to entertainment is games, but games are becoming more like movies than music. Many of the latest games even have tie-ins with books and movies. This makes me think that programmers are more like gaffers, best boys, set painters, and paint setters than musicians or even actors. They make the magic happen, but they're not the hero who the crowds want to see.

Classic songs and movies are respected. Casablanca is still a great film. Is Commander Keen still a great game? Of course, there's a cadre of people who enjoy playing classic games like Pac-Man and Asteroids on original devices or Mame emulators (or Microsoft's new Game Room), and I still love text adventures, but in general, games quickly become forgotten. And while songs can be listened to over and over again, playing the same game repeatedly gets boring. Our brains must process these things differently.

I'll leave you with a novel thought. Music and movies are both types of media, and within a medium, specific styles, instances, and stars are created: techno, "Baby Got Back," Taylor Swift; horror, "Star Wars: Episode I," Jim Carrey. Games are are a medium, too, but their stars, if any, are characters (Mario, Sonic the Hedgehog, GLaDOS), not people. Sure, there's John Carmack, but is he a household name? Maybe true programmer rock stars will only emerge when a new type of medium, independent of our current notions of entertainment, emerges. Perhaps this new medium can emerge on devices like the Kindle, iPad, and Droid Incredible. Maybe the medium will fit in a unexplored part of our daily lives that music and movies can't fill. And maybe, just maybe, programmers can emerge from this medium as rock stars.

(Epilogue: If this new medium does emerge, I think what will really happen is that everyday people will have a new, non-music, non-movie chance at stardom... and again, the programmers become the enablers. But, after all, that's really not such a bad place to be.)