Tuesday, December 26, 2006

Free to Choose?

As knowledge increases, spirits, mystery and magic tend to decrease. I can't help but wonder how many people people throughout human history with schizophrenia or Tourette's Syndrome were burned at the stake for being possessed by demons, because it was the only possible explanation to be found at the time.

As much as I like to believe knowledge is good and ignorance is evil, I do worry about the effects of modern neuroscience on our conception of free will. As we continue to investigate, learn and explain human brain chemistry, will we edge closer to what philosopher Karl Popper's nightmare of physical determinism?

Free to Choose?, an article in the 12/19 Economist, discusses free will and modern neuroscience:

"Free will is one of the trickiest concepts in philosophy, but also one of the most important. Without it, the idea of responsibility for one's actions flies out of the window, along with much of the glue that holds a free society (and even an unfree one) together. If businessmen were no longer responsible for their contracts, criminals no longer responsible for their crimes and parents no longer responsible for their children, even though contract, crime and conception were 'freely' entered into, then social relations would be very different."


Saturday, December 23, 2006

Season's Greetings

Taking a break from holiday preparation chaos to sample Sarah McLachlan's Wintersong.

Her rendition of Vince Guaraldi's Christmas Time is Here is really beautiful.

Best wishes to all this holiday season.

(p.s. if you want to create a hilarious electronic greeting, check out

Wednesday, December 20, 2006

The Light Tree

The Light Tree

Tuesday, December 19, 2006

Developing Our Brightest Minds

An article in Science Daily on Developing Our Brightest Minds: "Who will be the next Albert Einstein? The next Stephen Hawking? A new report from Vanderbilt University reveals the complex mix of factors that create these intellectual leaders: cognitive abilities, educational opportunities, investigative interests and old-fashioned hard work." link

In spite of all the research, I believe key factors were sorely missing from the report: creativity and imagination. Perhaps creativity and imagination are correlated with intelligence to some extent, but in my experience they're hardly correlated perfectly. I think the greatest scientists have not only been extremely intelligent but also extremely imaginative and creative.

Intelligence can take something that exists and understand it.
Creativity can imagine something that doesn't exist and create it.
When the two are married, truly great things can happen.

The Antikythera Mechanism

File under: forgot to mention this.

A few weeks ago, recent developments related to the Antikythera Mechanism were in the news after the ancient Greek astronomical device was reinvestigated by a team of scientists using advanced imaging techniques.

Writing in Nature, the team said that the mechanism, which included 30 bronze gears, was "technically more complex than any known device for at least a millennium afterwards."

BBC News article

From Calculation to Communication

The original impetus behind computing was a need for calculation, and this need for calculation shaped computing's early history and many of the strategic decisions made along the way. In consideration of its mission, I think calculational computing has been well handled, and all of the libraries devoted to calculation stand as evidence of mission accomplished.

Today it seems most computing is directed at communication rather than calculation, and it also seems we spend an inordinate amount of time solving communication problems using languages and systems whose ancestries are deeply rooted in calculational computing.

If we lacked the legacy of strictly calculational computing and had to return to the first principles of early computing with the task of solving today's communications problems, my guess is we'd embark on a pretty significant course than that taken by the pioneers of calculation. Addressing problems posed by communication would be much higher on the agenda, and I think the direction of everything down to the design of programming languages would be affected.

Getting a piece of data from Point A to Point B shouldn't be as complicated as it often is with today's typical hodgepodge of technologies. I don't think the pioneers of computing ever envisioned the degree to communication would as significant part of computing as it has become.

Monday, December 18, 2006

You tend to be critical of yourself...

In 1948, psychologist Bertram R. Forer gave his students a personality test and without reading their responses returned them a canned personality assessment in the form of the following paragraph:

"You have a need for other people to like and admire you, and yet you tend to be critical of yourself. While you have some personality weaknesses you are generally able to compensate for them. You have considerable unused capacity that you have not turned to your advantage. Disciplined and self-controlled on the outside, you tend to be worrisome and insecure on the inside. At times you have serious doubts as to whether you have made the right decision or done the right thing. You prefer a certain amount of change and variety and become dissatisfied when hemmed in by restrictions and limitations. You also pride yourself as an independent thinker; and do not accept others' statements without satisfactory proof. But you have found it unwise to be too frank in revealing yourself to others. At times you are extroverted, affable, and sociable, while at other times you are introverted, wary, and reserved. Some of your aspirations tend to be rather unrealistic."

Forer then asked them to rate the accuracy of the assessment from 0 to 5 (excellent). The average rating was 4.2. The assessment was actually taken from a newspaper's daily horoscope. The tendency of people to rate such assessments as highly accurate on a personal level even though the claims could apply to just about anyone is known as the Forer Effect (aka the Barnum Effect).

Sunday, December 17, 2006

Counterintuitive Spaces

Given a unit square, what's the area of the region that is a distance of 0.05 or less from the outer edges of the square?

Finding the answer is simple. Subtract the area of the inner square from 1.0 (the area of the outer unit square).

In three dimensions, you can find the volume within 0.05 from the edges of the unit cube by subtracting volume of the inner cube from 1.0 (the volume of the unit cube) and the answer is 1.0 - 0.9 * 0.9 * 0.9 = 0.271.

The question can be carried up into higher dimensions for unit hypercubes. In n dimensions, the answer is 1.0 - 0.9n. Note that the larger n gets, the closer the difference gets to 1.0.

The counterintuitive consequence is that in highly dimensional spaces, most of the volume is concentrated near the surface. Even in 20 dimensions, nearly 88% of the volume of a unit cube lies within 0.05 of the surface.

I most recently stumbled on this interesting fact while reading Richard Hamming's Numerical Methods for Scientists and Engineers. While searching the web for more information, I stumbled onto a number of nice posts on the subject by Eric Lippert of Microsoft.


My wife introduced me to the excellent cooking site It has a thriving community (the pancake recipe I just used been rated 196 times). At this point, 193,000 recipes are in the database. Nutrition facts are automatically generated. It will automatically scale recipes up. Very nice.

Saturday, December 16, 2006

The Tiny Axe of Truth

"The truth is far more powerful than any weapon of mass destruction."
- Mahatma Ghandi

photo by Mel B.

The diet industry in America has become a towering $40 billion sequoia. Even though this industry provides a livelihood for thousands of people, it also seems to fleece millions of Americans of hard-earned cash, steering them away from simple facts in the process. I've decided it's time to bring out the tiny axe of truth and chop this mighty sequoia down.

Given the disastrous economic consequences that will inevitably result from the collapse of the diet industry, I need to assure you that this isn't a rash decision on my part. I realize that what I'm about to do will displace thousands of human beings employed at diet centers across the nation. I realize there may be no Christmas turkey for people who depend on diet books devoted to the miracles of eating pure citrus or abstaining from carbohydrates. I worry about the impact this may have on B. Dalton.

I'm sorry, but this is for the good of society.

Here goes...

One swing of the tiny axe of truth...

The truth is your body is a machine, you're consuming too much fuel and not burning enough. You need to eat less and exercise more!


Whoa! Look out below! Watch that sucker fall to the ground!

(I'm sorry. Is this too cynical?)

Complexity: The New Simplicity

In his 1998 The Invisible Computer, Donald Norman praised simplicity and bemoaned feature wars:

"...The result is technology-driven, feature-laden product. Each new release touts a new set of features. Advertisements proudly list them all, extolling their virtues. Seldom are the customer's real needs addressed, needs such as productivity, ease of use, getting the job done. Instead, the feature lists proclaim technological feats, as if the mere purchase of enhanced technology thereby makes everything else OK. The notion that a product with fewer features might be more usable, more functional and superior for the needs of the customer is considered blasphemous..." (pb. 25)

His recent essay, receiving accolades from Spolsky, Evan Williams, et al., is titled, Simplicity is Highly Overrated:

"...Make it simple and people won't buy. Given a choice, they will take the item that does more. Features win over simplicity, even when people realize that it is accompanied by more complexity. You do it too, I bet. Haven't you ever compared two products side by side, comparing the features of each, preferring the one that did more? Why shame on you, you are behaving, well, behaving like a normal person..."

He concludes: "Yes, we want simplicity, but we don't want to give up any of those cool features. Simplicity is highly overrated."

So is the answer simplicity and fewer features or complexity and more features?

I think the answer is neither. IMHO, this is yet another example of the human tendency of choosing between extremes when the answer is wisdom and choosing the middle path.

Wednesday, December 13, 2006



"I'm pacing myself, Sargeant" -- Winger

Here it Goes Again

If all you've got is six treadmills, you can still make an awesome music video.
At least you can if you're these guys.
The creativity points go to the band known as OK Go.


Pastels and Pascals

photo by Gaeten Lee

For many years I've watched religious computer language wars in which programmers passionately hail the alleged superiority of one language over another. While some paleolithic languages are obviously lacking, this is largely a perspective to which I've always had trouble relating.

To me it seems analogous to one artist proclaiming the superiority of pastels over pencils or the superiority oils over acrylics. I don't doubt such debates among artists, but they simply can't be as common as as programming language wars.

For artists, the media is merely a means to the transcendent end of the art. A particular type of marble is not a significant factor in David being what David is. Nor is the paint used the determiner of the greatness of the Mona Lisa. As I see it, so it is with great code.

Syntax doesn't determine great code. Each language has its strengths and weaknesses, but Turing completeness is Turing completeness. A language merely provides a medium. This medium offers possibility of both the most hideous software graffiti and the most magnificent logical masterpieces.

Knuth: Computer Programming as Art (1974)

Tuesday, December 12, 2006

Hiro the Hero

Thanks to a friend I got suckered into watching all eleven episodes of Heroes over the weekend. I say "suckered" only because I take pride in how little television I watch. (Currently, the only things I watch regularly are Lost and the Office.) For better or worse, however, I think Heroes may have me hooked.

IMHO, this made-for-television comic book is excellent on many fronts. Great story, great direction and wonderful casting. Huge kudos to Masi Oka for his creation of the character Hiro Nakamura, comedic bender of space and time. Praise as well for writer Tim Kring and actress Hayden Panettiere in creating Claire Bennett, the incredibly hazard prone yet indestructible cheerleader. And the rest of the cast is wonderful as well.

Great stuff!

Interviewing Software Engineers

Technical interviews have been addressed repeatedly by noted gurus and usual suspects, but many of the sorts of questions I like to ask have yet to surface. I like to ask questions that reveal many levels of insight. Some of the best questions I know involve asking candidate engineers to improve code. These questions don't have a single right answer, but rather these questions have many answers and tend to indicate the degree of an individual's insights and experiences.

For example, and this is just a quickly rolled example to make a point, one might ask a candidate to optimize the following function working from the assumption the compiler will perform no optimizations.

This function calculates a bitonal histogram of an image thresholding upwards at 128 and above.

void binary_histogram(unsigned int sum[2], const unsigned char* base, int rows, int cols)
    sum[0] = sum[1] = 0;
    for(int y=0; y < rows; y++)
       for(int x=0; x < cols; x++)
          const unsigned char* row = base + y*cols;
          if (row[x] < 128)
             sum[0] = sum[0] + 1;
             sum[1] = sum[1] + 1;

Some candidates will move the pointer calculation to the outer loop. Others will eliminate the multiply altogether. Others will see there's no point to having two loops. Others will use a bit hack to index sum. Others will unroll the loop.

You get the picture.

A good follow-up question tests a candidate's knowledge of which optimizations modern compilers will do automatically.

Most candidates come up with something, which helps mitigate some of the typical awkwardness of technical interviews.

Anyhow, I hope this demonstrates the general idea and leaves you with a challenge: Devise the best questions you can to test levels of experience and insight.

Monday, December 11, 2006


Via Good Math, Bad Math, the following link to a +20 minute exchange with Verizon customer service made by a guy who was quoted 0.002 cents/KB but charged 0.002 dollars/KB.

The call turns into yet another jaw-dropping hoot as he repeatedly tries to explain to Verizon customer service that there's a difference between 0.002 cents and 0.002 dollars.

The question left unanswered, however, is how high up the corporate ladder the caller would have needed to go to find someone with the basic understanding of the decimal system needed to make the distinction.


Sunday, December 10, 2006


Man has long pondered Justice--since the time of Socrates and then some. I've often heard people exclaim, "There is no justice!"

Does Justice exist? What is the nature of Justice?

While shopping this afternoon, I realized the answers to these and many other Gadfly-eluding questions concerning Justice.

Justice does exist, but from what I've seen, I don't think she's existed very long--four years, maybe five tops. Justice wears a faux leopard coat and a matching fez. She has black hair, laughing eyes and, most surprisingly, she's quite a mischievous little hellion.

If you see Justice approaching with her little red shopping cart, the best course of action is a speedy U-turn. Otherwise, she'll ram you with the full force of Justice.

"Justice! You get back here right now!"

The hearty and clearly well-developed yell of her mother.

I didn't anticipate Justice incarnate coming in the form of an incorrigible little girl.


My New Year's Resolution to do more cooking is currently undergoing testing and in the alpha stage. It surprises me when I see so many geeks and engineers passionate about cooking, but then again, it's all about making things, there's a science to it, it can be delicious, and if you're like most Americans, emaciated and desperately trying to gain weight, those extra calories can be a real godsend.

Cranberry Nut Bread

One thing about the holidays is cranberries are abundant; this is good, because the taste of cranberries is one of my favorite things. As as far as it goes, this Cranberry Nut Bread recipe from Epicurious is #1 with me. I just snapped a picture of a fresh batch (above), and it's amazingly delicious, one of the best recipes for anything I've found.

Follow the recipe carefully. It's easy to get a loaf stuck to the bottom of the pan, so buttering the pan well and letting it cool for 15 minutes is critical. I recommend pushing in from each side a little with a spatula before inverting the pan. Also, if you love cranberries, increase the amount of cranberries by 50%.

Monday, December 04, 2006

Nasty Big Pointy Teeth

Nasty Big Pointy Teeth

Hollywood, California (2006).

Office 2007 vs Path Dependence

I've seen much talk regarding Microsoft's overhaul of the Office UI. Many consider it a risky move, and I'm sure Microsoft spent immense resources on research and development. Here's my stab at succinctly characterizing the risks:

One of the problems with today's software is an ever-creeping learning curve. Many of us have been with our favorite applications for years. The annual batches of features have appeared incrementally to us, but for many of today's beginners, starting from scratch is like drinking from a firehose.

On the balance sheet of human effort, years of slowly accumulated computing experience now translate into a substantial time investment in learning various applications. (And to the chagrin and shock of many techies, there actually are people who don't enjoy learning to use software.) These are sunk costs, and for obvious reasons many users aren't particularly enamored with the thought of incurring them again.

The economic term for the phenomenon is path dependence. It occurs when there are prohibitively high costs associated with switching to a better alternative. Some of the most frequently noted examples include the QWERTY keyboard (everyone knows Dvorak is the way to go) and VHS (which famously defeated the superior Betamax).

As a creator of software, I've spent a a fair amount of time mulling this over. There's a fine balancing act to maintain. You want to create the best application you possibly can, but users are generally resistant to change due to the costs associated with relearning. The more changes you make to attract new customers, the more you tend to irritate your existing customers.

At this point, I'm most inclined to favor a generational approach to software. Following such an approach Microsoft would maintain, say, both Office Classic and Office: The Next Generation. Inured, recalcitrant users would be free to continue on with the interface they know while OTNG would be given deep educational discounts to get the youngins hooked on a newer, better and radically changed next generation product. The switch would be transitional.

Sunday, December 03, 2006

YouTube: Justin King

I've posted high praise for guitarist Justin King in the past.


Here's Exhibit A:

His official site: