The Wonder Match

This short rememberance of Bobby Fisher in Sunday's New York Times Magazine (December 28, 2008) is a fantastic piece of writing. Well worth reading both for the story and the writer's skill.

Git and the horror of the extra colon

Never enter the command line git push origin :master when you mean git push origin master. Instead of coping your master branch's local changes to the remote repository you delete the remote repository's master branch. You can't undo this mistake. My initial reaction to the fact that I just deleted the company's source code was not a comfortable one. What I soon found out, however, was that you can just push again your master branch to return it to the remote repository. I am not sure this is the correct fix but it did seem to work.

Update: Here are my git notes at

Routers and manually interpreting a javascript enabled UI

Why do home router/gateways have web administration interfaces that REQUIRE javascript to work? I left home this morning and forgot to forward some ports and now I am stuck trying to figure out how to do so from an ssh shell command line by manually interpreting the javascript. Manufacturers, please include REST services to configure your hardware.

A collaboration on distributed data models and their implementations

I am currently working with Jared Rosoff and Bob Chatham at Wave Syndicate. We are building a tool that needs to operate at internet scale and so I have been thinking alot about distributed architecture and implementation. Constructing a tool for this scale of use is new to me. I had some experience with this while working at Tazz Networks but I am still very much a novice.

On the drive home today I was thinking about

1. data models and using the emerging distributed data tools like Amazon’s SimpleDB and Google’s BigTable and its imitators,

2. the contending variables at play when designing a C++ data model for use with ObjectStore,

3. David Hay’s great data modeling book Data Model Patterns: Conventions of Thought, and

4. a comment made long ago in a forgotten blog posting by a PHP programmer who needed good data models and not data user interfaces.

It would be extremely useful if the data modeling community would create data models and implementations that are factored, designed and tested for each of the distributed data tools. For example, a commentary data model (for use with blogs, wikis, discussion groups, issue trackers, etc) using SimpleDB would be quite different from one using SQL, and another using BigTable. Any of the models might need more than one schema implementation per distributed data tool as each implementation differently trades off consistency, latency, concurrency, etc. I wish I had the skills now to lead something like this. It would be a great boon to both current application developments and, perhaps more so, for developer education. If you know of anything happening along these lines please drop me an email.

A call for a new kind of town hall

Public participation in South Kingstown (RI, USA) town and school governance is negligible. Most public meetings, like this week's joint town council and school committee meeting formally opening consideration of the 2009 & 2010 budget, have only a handful of people present. Too often there is no one present.

A little consideration shows that this is to be expected: The current means of public participation were designed around the needs and wants of a very different time then our own. The town council chamber is itself a monument to these needs and wants. It is a physical community gathering spot. Other community gathering spots include the newspaper (for public notices) and the town hall bulletin board. Even the early evening meeting times accommodate a past when the man of the house could leave his children to the care of his (house)wife in the comfort of his home.

This is not the world I live nor the world of most of the people I know. Both parents work, care for the children, and do housework. Sometimes they work in staggered shifts so that at least one of them is at home with the children. And when the children have gone to bed work picks up again for another hour or two: The "mommy work hours" of 9 AM to 3 PM and then 8 PM to 10 PM.

We also communicate differently. We use e-mail and voice-mail. We chat via IM (instant messaging) or texting on our phones. We discuss every kind of subject in online groups. We share our lives with our friends through our blogs and Facebook "walls." And when we do gather in person we do so by "homing in" on a place, a time, and who will attend via a ever tightening circle of short messages over time.

This pattern is not going away. It is deepening. Just as the town council chamber was build to support participation we need now to build a different and effective mechanism for today.

We need our public documents, meetings, and other artifacts online. We need to be notified about additions. We need to be notified when they have changed. We need to be able to comment upon these online and have this commentary considered. These new tools of participation are not ancillary. They are as primary as the existing ones.

Doing this is not a great technical challenge. The software development industry routinely uses these tools everywhere and everyday. Doing this does not require a great operational cost. The tools are free, the storage and computational costs minuscule, and the support costs reasonable. The most challenging cost is to the school's and town's processes. It is not that more work will be required of officials and staff but that the work is done differently. The difference results in making visible to online tools the workings of the school and the town.

I ask all of you to please contact the school committee and town council and ask that they initiate the changes necessary to enable citizen participation in our time. Now is a very good time for change.

Viewing a man page in

Macintosh OS X command line to format a "man" page and open in the Preview application

groff -man /usr/local/git/man/man1/git-config.1 | open -a -f

Update: Using the man -path argument you can further enhance the command line, eg

groff -man $(man --path git-config) | open -a -f

A review of the information graphics in GOOD #13

GOOD has gotten some attention recently with their partnership with Starbucks to develop and distribute the GOOD broadsheets. The sheets coincided with the presidential elections and so have both feed the discussion and feed from the discussion. On the value of the sheets and a look at the GOOD web site ( I subscribed to the GOOD magazine for $10.

Issue #13, my first, arrived a week ago and I have been looking at it on and off since then. The magazine design has the spare and clean lines that I like. Great photography and editorial illustration. And I am attracted by the large number of double-page-spead information graphics. Unfortunately, the actual substance of the written and visualized content is mixed.

The first warning flag is the letters to the editor. The first several are responses to the vulgar language and graphics used in a previous issue. While I did not see the previous issue, the issue I do have also contains vulgar language and graphics. As one letter writer writes, this editorial indulgence lowers the seriousness of the discussion. Much like Sarah Palin’s winks and “heck yeas”. The remainder of the written content is interesting -- especially the “Portraits” section -- but thin. A modern magazine must have links into the web. Sadly, GOOD does not.

What initially drew me to GOOD was information graphics and so I was excited to see several pages devoted to this in the “Transparency” section. Upon close inspect they are utter rubbish. They exhibit a wide number of failings that anyone practicing information visualization should well know and innately avoid.

The “Up in smoke” graphic (no web link) is a stacked bar graph using cigarettes as the bars. Each cigarette presents a state. The length of the cigarette is the population and the length of the filter represents the percentage of smokers. The failure is that the width of the cigarette is also changed so that the relative proportions of the different cigarettes are kept constant. This results in NY’s 18.3% of smokers looking like a significantly smaller number than CA’s 14.9% of smokers. Further, the graph is organized by kinds of smoking bans -- no bans, work bans, bars bans, and restaurant bans -- and so finding your state is a hunting trip. A table would have been much better.

I am still trying to figure out “Seeking Refuge” ( Just what does knowing “refugees per square kilometer” really tell me?

“Burning Fuel” ( is a visual correlation between cars and humans. The energy in a gallon of gas is compared to common foods. While interesting, why is there an information graphic? Information graphics are supposed to enable the reader to make more connections between facts. I am looking to build upon what I know or have just read. And so I expect that when a human’s sticky insides are block-colored the same as the car’s insides that this has meaning. What correspondence am I to draw from the car’s seat cushions, battery, air filter, and some unknown box near the front-wheels's transmission with the human’s heart, liver, and mussels? Isn’t color coding a universal information graphic best-practice? Yes.

Lastly, the graphic “The three-trillion-dollar war” ( is a perfect example of how to present a simple list (as is done on the right side of the graphic) as a complex maze of weak visual analogies. Perhaps I am missing something deeper. I want the visual to have meaning. I am rooting for the illustrator. But, in the end, I don’t think I am missing anything: It has no meaning. It is just a picture.

I am not a practitioner of information graphics. I am a consumer and a fan. I do know how to read this stuff and I know that some visual languages need to be learned before they can be read. I am willing to put the time in to understanding the visual just as much as I am in the understanding the prose. Don’t give me interesting pictures pretending to be information graphics. Please.

Let’s hope the next GOOD is not a DOOG.

Michael Moore has a plan

I just signed Michael Moore's vision to save the Big 3. I don't agree with all of Moore's politics but if there is anyone who knows how incompetent the Big 3 management is and scope of the impact of their failure it is he. This is a great opertunity to use the existing infrastructure and relationships to build a new transit economy in the US.

The Incredible Convenience of Mathematica Image Processing

There are three computational tools that I would like to know well. The tools are SketchUp, ArcGIS, and Mathematica. They successfully map the user's mental model of the problem to the tool's control leavers for a solution. In the hands of a skilled practitioner incredible results are accomplished. The blog posting The Incredible Convenience of Mathematica Image Processing is a reminder of this. This is inspiring as a potential user and humbling as a software developer.

Found via Tufte blog.