Me on a Jon Udell podcast

Tim O’Reilly likes to quote William Gibson when he describes his approach to predicting the future: “The future is here. It’s just not evenly distributed yet.” In other words, if you can just find the people (O’Reilly calls them alpha geeks) who are leading the way, you can serve yourself a tasty slice of future pie before the crowds show up. I completely agree with this philosophy. One of the things I love about the current blogging culture is that I can keep up with the latest thoughts of the people, the alpha geeks, that I think are on the leading edge.

When Tim O’Reilly talks about people who can see the future before it’s very evenly distributed, he’s talking about Jon Udell. I have been a fan of Udell’s writing since his days as a columnist at Infoworld. Now he works at Microsoft. The reason for his departure is also the reason his writing is so prescient: he holds fast to his own compass, and when that compass was at variance with Infoworld’s mission, he knew it was time to move on. Few people are doing more to distribute the future than Udell. He is intensely focused on bringing the fruits of social computing and information technology in general to the broadest possible audience, whether it’s through screencasting, easy-to-use scripting languages, or underused federal databases. I know when he’s excited about something, I should learn more about it as fast as possible.

So I was especially happy that I got a chance to meet him at a recent symposium on social computing at Microsoft. I was even happier to learn that he wanted to interview me for a podcast on the programming contest that I’ve been running at The MathWorks for the past several years.

Want to listen? Tune in here: A conversation with Ned Gulley about the MATLAB Programming Contest « Jon Udell.

And if you stumbled across this post and want to learn more about the contest, you might want to read a paper that I wrote about it: In Praise of Tweaking: A Wiki-like Programming Contest.

Bookmarklets for fun and profit

I’ve been spending a fair amount of time playing around with JavaScript these days. As the backbone of the Web 2.0 Ajax technology, homely old JavaScript is finally having its moment in the sun.

Ajax gets all the press, but I think bookmarklets are loveliest little JavaScript tools around. Bookmarklets (also called favelets in deference to Internet Explorer Favorites) are very short JavaScript programs that fit right on the link underneath your mouse click. Click on this link, for example, to see every occurrence of the word “the” on this page turn yellow. (When you get tired of all the yellow, just reload the page.) I adapted this from Jesse Ruderman’s squarefree.com bookmarklets site. Another excellent source of top notch bookmarklets is slayeroffice.com.

I decided to try a little bookmarkletting myself to scratch an itch I had. I write MATLAB code for a living, and one of the MATLAB features I really like is that I can publish directly from code to HTML. Using this technique, you can let the code “tell its own story” as it were. Here is what a published MATLAB program looks like: Building Sundials. I wanted a way to pluck the original source code out of the HTML version of that code, and JavaScript was the way to do it. I wrote a simple little bookmarklet that does the trick. Then my friend Steve Eddins found my quick hack and improved it significantly.

Steve Eddins runs a blog at work called Steve on Image Processing. He’s allowed to do that since he’s a professional image processor. His blog is essentially written in MATLAB and then published to blog format. He has added the new and improved bookmarklet to the bottom of each post so that you can now reconstitute the working code that he started with. Scroll down until you find a link that read “Get the MATLAB code.” It’s a nice way to peek behind the scenes and see a great mind at work.

MATLAB Contest

We had another MATLAB Programming Contest, and in terms of participation it was our biggest so far. We like contest themes that fit somehow into the zeitgeist, so the puzzle this time around was a generalized version of the notorious Sudoku puzzle genre.

Aside: if you are ever in a Sudoku-solving pickle, I’ve got just the salve for your itch here: Sudoku Satori – The Sudoku Solving Assistant.

We had 3061 total entries. You can see all the sudoku > Statistics” href=”http://www.mathworks.com/contest/sudoku/statistics.html”>gory statistics here if you like. One fun thing we did this time around was create a map (using the Frappr service) where people could show us where they live. Take a look. Only thirty or so brave souls (of the 168 who played) put themselves on the map, but even so you see how global the distribution is.

As usual, Matt did an excellent job summing up the activity in a contest evolution report. The distinctive zig-zag pattern in the accuracy-vs-speed plots was particularly pronounced in this contest.

Programming contest comments

I get excited about the MATLAB Programming Contest that we run at The MathWorks because it’s such a cool and compelling window on how groups of humans work together to build complicate things. As such, it’s a sort of greenhouse model for some important trends in the modern infosphere, including open source programming and wikis. I keep telling people about this contest and I keep hoping they’ll get as excited as me. A few years ago I wrote a paper about the contest, which I’ve mentioned here before, but I’m happy to report that the paper recently caught the eye of a gentleman named Ben Hyde, and he was kind enough to say some nice words about it. What’s particularly gratifying about this is that Ben is a key contributor to one of the most successful open source projects around, the Apache HTTP Server project. So when he talks about Open Source, he knows whereof he speaks. He closes his comments with the words “There must be hundreds of places around the edges of open source projects were these techniques could be tried.” Hey, that sounds like fun!

MATLAB Programming Contest, v10.0

Roughly every six months we run a MATLAB programming contest in which contestants are encouraged to steal the code that other people are submitting. Naturally, most people steal code from whoever’s leading, which makes the code churn and improve very quickly. This version of the contest, number ten, involves giving instructions to ants so they can maximize the amount of sugar they bring home. The contest ends on Wednesday; stroll over and check out our ants > Mid-Contest Analysis” href=”http://www.mathworks.com/contest/ants/midcontest.html”>mid-contest analysis.

In praise of tweaking

Last spring I wrote an article for interactions magazine, the official magazine of SIGCHI, the ACM’s Special Interest Group on Computer-Human Interaction. My paper was about the MATLAB Online Programming Contest, which I’ve mentioned in this space a few times. You can’t get the article from the interactions website without an ACM membership, but my copyright release form allows me to put a copy here, which I’ve finally gotten around to doing. So here you go. As seen in the May/June 2004 issue of interactions, In Praise of Tweaking: A Wiki-like Programming Contest (PDF).

On first hearing how the Wikipedia site works, people are often scornful, incredulous, or simply dismissive. It can’t possibly work. How could it? Similarly, the MATLAB online programming contest is built upon an almost paradoxical premise: that a contest can be collaborative. Against all expectation, the back and forth drama of leaps and tweaks turns MATLAB programming into an entertaining spectator sport…

Sundials by computer

Suppose you wanted to build your own sundial. Where would you start? If you know how to use MATLAB, I can tell you exactly what to do. As part of my day job, I work on an online community called MATLAB Central. Recently we’ve added the ability to upload web pages there that have been published from MATLAB files, thereby allowing a nice mixture of prose and algorithm. Here is a document I created called Building Sundials. All the code demonstrated was derived from code I found on De Zonnewijzerkring, a real treasure trove of material on sundials.

Sundials have historically shown an appealing blend of art and science. Computation shows you where the sun will go, but the form presented can be quite beautiful. Sundials dating back to antiquity are often adorned with mottoes, exhorting the viewer to carpe the diem or reflect on the passage of time. One of my favorites is also one of the briefest:

HEU QUAERIMUS UMBRAM

We pursue a shadow.

MATLAB wizards do battle

Our latest MATLAB Programming Contest is nearing completion. Since this is an election year, the puzzle this time (“Gerrymander”) is to divide a state into electoral districts of equal population. If you want to see real gerrymandering in action, look at this: 107th Congressional Districts. Dallas/Ft. Worth is particularly interesting.

Matt has done almost all the heavy lifting for the contest this time. Way to go, Matt! Check out the cool statistics page he’s put together. Be sure and tune in for the exciting 5 PM finale tomorrow afternoon.

Matt and I gave a presentation about the contest at IBM Watson Research Center in Cambridge last January. Based on that talk, there was enough interest to get me invited to write an article about the contest for CHI interactions magazine. Here’s the link, but you need an ACM membership to read the whole thing: In praise of tweaking: a wiki-like programming contest.

Protein folding contest

Since this is my baby, I can’t possibly not link to it: We’re running another online MATLAB programming contest this week. It started last Wednesday and will end this Wednesday. There are a zillion programming contests out there, but this one is special because your answer is evaluated and posted in real time. It’s sort of like competitive open-source coding on steroids. I wrote a paper about it for a conference a while back, but we’ve also got a few short pieces out about this contest even while it’s running: a mid-contest analysis, and a short contest story by Matt that shows in a nutshell the dynamic that makes the contest so interesting.