Saturday, October 31, 2009 
Robot Snow White

When we moved to Beacon Hill in 2000, we were totally dumbfounded by the number of kids who came trick-or-treating to our door. In the prior two years, we had been renting a house in Wallingford, and we had only had one set of kids each year.

We had about 100 kids that first year. We were not expecting the onslaught and ran out of candy, which led to Emma being berated by some presumptuous mother. We live in a relatively affluent block and kids are brought quite a distance to partake of the goodies. One small boy peered up at Emma once and asked her, “Are you rich?”

And so it's been ever since: Hordes of kids. Even on cold, wet nights, it's never dipped below 60 kids.

This year, we had 150 kids. (Actually 149 kids and one dog in costume.) The doorbell rang every few minutes from not long after 6pm until 9 o'clock.

A few years ago, I started taking photos of them. The price of the candy is that they have to stand in the doorway for a photo.

I set the camera up on a tripod with a remote control and clicked away. You can see this year's set at Emma's Flickr account. Photos from previous years are there too.

posted on Sunday, November 01, 2009 5:56:40 AM (Pacific Daylight Time, UTC-08:00) 
#    Comments [1]
Tuesday, October 27, 2009 
Titus Andronicus

I saw Greenstage's production of Titus Andronicus on Sunday night. Normally, this is Shakespeare's bloodiest tragedy, but Greenstage chose to play it as a dark comedy. It's still bloody, extremely bloody, blood everywhere, spurting from severed wrists, spraying from cut throats, shooting over the stage (and some of the audience).

The first twenty minutes were very confusing. The actors spoke their lines very quickly and I had a hard time tuning in to what they were saying and what was happening. Then either they slowed down or I tuned in, but it started making sense, inasmuch as Titus Andronicus can ever make sense.

I've seen Greenstage do comedies and straight tragedies. Here they hammed it up, putting a non-traditional spin on the lines. It worked.

Three more shows coming up this weekend. And it's free!

posted on Wednesday, October 28, 2009 6:57:39 AM (Pacific Daylight Time, UTC-07:00) 
#    Comments [0]
Monday, October 26, 2009 
DevDays Boston photos

I spent last Wednesday at Benaroya Hall, attending the Seattle edition of StackOverflow's traveling DevDays conference. It was well worth $99.

Joel Spolsky, owner of FogCreek Software and co-founder of StackOverflow, opened the conference with a keynote about the dichotomy of power and simplicity. People are happier when not overwhelmed with choices. Many of the choices that software forces users to make are essentially meaningless to the users. However, even though people want simplicity, they also want features and different people use different features. Powerful software sells more copies.

He argues that developers and designers should put in the extra work to make good choices on behalf of the users: don't make users feel bad about themselves. Undo is better than a confirmation dialog. You are not in charge of what your users do.

Scott Hanselman spoke about ASP.NET MVC. We're moving away from ASP.NET to Python, but if we were to use ASP.NET again, MVC would be a compelling feature. His presentation was entertaining, if gimmicky.

Rory Blyth introduced iPhone development, in a tone of snarky ambivalence. He mentioned the Stockholm Syndrome. He stressed that Apple's Design "Guidelines" are effectively laws: violate them and you won't make it into the App Store. Looks like there's a lot of tedious messing around to hook things up in Objective-C. At the very end, he briefly demoed MonoTouch, which seemeed a little less tedious.

Cody Lindley introduced jQuery. I've done a lot of work with jQuery, but I still learned a few things. He worked through five facets of jQuery: Find something, do something; Create something, do something; Chaining; Implicit iteration; and jQuery parameters. He has an ebook at jqueryenlightenment.com, which I just picked up.

Daniel Rocha of Nokia talked about the cross-platform Qt (/cute/) toolkit, which runs on Windows, Mac, and Linux. More importantly from Nokia's point of view, it runs on their smartphones. Nokia has changed the licensing of Qt—once very expensive for closed-source apps, it's now free for apps that don't modify the Qt source. Qt is for C++, but there are bindings for other languages, such as Python.

Joel Spolsky came back and treated us to a half-hour demonstration of Fogbugz 7, Evidence-Based Scheduling, and Kiln, their new hosted Mercurial repository. Not terribly interesting to me, but the conference was only $99.

Ted Leung gave us a rather dry Hacker's Introduction to Python from slides rendered unreadable by a poor choice of colors. I've done a lot of Python, so I didn't learn much new. pip is an easy_install replacement that uninstalls; zc.buildout assembles apps from multiple parts; bpython is a fancy REPL.

Dan Sanderson talked about Google App Engine and demoed building apps with Java and with Python. Looked pretty cool and straightforward. We probably won't go that route, since we're pushing data to Amazon's S3, so EC2 makes more sense for us.

Finally, Steve Seitz from the University of Washington gave a cool talk on Modeling the World from Internet Photos. Some of this technology ended up in Photosynth. See Building Rome in a Day for some demos.

posted on Monday, October 26, 2009 7:16:14 AM (Pacific Daylight Time, UTC-07:00) 
#    Comments [0]
Sunday, October 18, 2009 
Pragmatic Version Control Using Git
Title: Pragmatic Version Control Using Git
Author: Travis Swicegood
Rating: 4 stars out of 5
Publisher: Pragmatic Bookshelf
Copyright: 2008
Pages: 179
Keywords: computers
Reading period: 10–18 October, 2009

As part of my personal conversion to Git, I read Swicegood's Git book. It's a decent introduction to Git and you learn how to do all the basic tasks as well as some more advanced topics. The examples are clear and well-paced.

I would have liked to see more about collaboration and workflow in a DVCS world, perhaps a few case studies: how is Git used in the Linux kernel development process; how a small, distributed team uses Git and GitHub; how a collocated team migrates from more traditional tools.

The book avoids discussing the lower levels of the Git object model, which is a reasonable choice for a pragmatic guide.

Recommended.

posted on Monday, October 19, 2009 5:43:22 AM (Pacific Daylight Time, UTC-07:00) 
#    Comments [0]
Saturday, October 17, 2009 
Football, dogfighting, and brain damage

In Football, dogfighting, and brain damage, Malcolm Gladwell writes of the rather startling findings concerning brain damage that American footballers sustain over their careers.

The constant butting of heads leads to an enormously high rate of chronic traumatic encephalopathy (C.T.E.), which has symptoms like Alzheimer's. It's not just the concussions that cause it, but all the subconcussive contact. It's almost as dangerous to one's long-term health as boxing.

I grew up hating rugby and transferred that hatred to American football. I have no time for the game, which I find violent and repellent, nor for the jock culture that surrounds it.

Regardless of my feelings about football, Gladwell's article (as so many New Yorker pieces do) makes for compelling reading. Though I found the digressions about dogfighting to be strained and irrelevant.

posted on Saturday, October 17, 2009 7:34:53 AM (Pacific Daylight Time, UTC-07:00) 
#    Comments [0]
Friday, October 16, 2009 
C is for Cookie

Over the last few weeks, I built a PHP application that overlays Approve 71 banners on profile pictures. The actual application is hosted in an iframe and lives on a server in a different domain, eq.dm, than the main server at approvereferendum71.org.

This works fine in most browsers. Then we started getting reports that it wasn't working in IE8 on Win7 RC1. The iframe content was blank.

Poking around, I found the problem with the Fiddler proxy. The landing page on eq.dm was supposed to stick some information into the PHP session, then redirect to a second page at the same site. The second page was in an endless loop, redirecting to itself. In Fiddler, I saw a different PHPSESSID cookie on each response, and no cookie in the requests.

After reading IE 8 only has access to session cookies, I told IE8 to Accept All Cookies and the iframe content appeared. That fixed it for me, but we could hardly ask people to lower their security sessions.

I created a P3P file for the second domain, using the IBM P3P Policy Editor. (KB 323752 has more background on P3P and third-party cookies.)

IE now worked at its default security level. Problem solved! Or so I thought.

A day later, we got reports of similar problems with Safari 4 on Mac OS X.

I sniffed the traffic with Wireshark. Same problem: the “third-party“ cookie wasn't being accepted by Safari.

Unfortunately, Setting cross-domain cookies in Safari indicated that there was no reasonable workaround.

We overcame the issue up playing some DNS games, which was only possible because we control both servers. The second server is now also acting as a subdomain of the first, at dev.approvereferendum71.org. We used ini_set("session.cookie_domain",".approvereferendum71.org") to scope the iframe cookies. I've tried it in a variety of Windows, Mac, and Linux browsers, and it works in all of them.

posted on Friday, October 16, 2009 7:15:10 AM (Pacific Daylight Time, UTC-07:00) 
#    Comments [0]
Thursday, October 15, 2009 
March to the Stars
Title: March to the Stars
Author: David Weber, John Ringo
Rating: 3.5 stars out of 5
Publisher: Baen
Copyright: 2003
Pages: 589
Keywords: science fiction
Reading period: 4–10 October, 2009

Third in a series, but the first that I've read.

Prince Roger and his Marine bodyguard have been marooned on an alien planet for six months. With local allies, they fight their way halfway around the world to the spaceport. And then the trouble really starts.

Well-done military SF: plausible, hard-bitten characters; good plotting; and exciting battle scenes.

posted on Friday, October 16, 2009 6:38:06 AM (Pacific Daylight Time, UTC-07:00) 
#    Comments [1]
Wednesday, October 14, 2009 
Git logo

In the last few weeks, I've switched over to Git for most of my version-control needs, at home and at work, after putting it on the long finger for months.

We continue to use Subversion at work, but I've recently followed Pavel and Eric's lead in using git-svn. I work locally on my own private branches and git svn dcommit and git svn rebase occasionally. I'm primarily on Windows at work, but I have a Linux box and a Mac Mini too, while at home, I have a MacBook, a Linux netbook, and a Vista desktop. I'm using msysGit, occasionally supplemented by TortoiseGit and QGit. Pavel's on a Mac and Eric's mostly on Ubuntu, so git adoption was easy for them.

When I first tried git-svn under msysGit about a year ago, it didn't work worth a damn. Git-svn works fine now, but it's slow compared to the *nix implementation. The developers say that's due to the fork() emulation of the MSys/Cygwin layer. The rest of msysGit is much faster.

For my home needs, I've had private Subversion repositories at DevjaVu.com and OpenSvn.csie.org. DevjaVu has gone out of business and OpenSvn has been unavailable too often for my liking. It was time to find some new hosting.

I've experimented with private Git repositories at GitHub and ProjectLocker. GitHub is very nice, but charges for private repositories. ProjectLocker provides free private repositories, but is comparatively clunky.

ProjectLocker lets you set up a fresh repository on their server. They tell you how to clone from that, which is great for a new repository. But they don't tell you how to hook it up to an existing local repository. Since I had some difficulty in figuring it out, here's the recipe:

git remote add origin git-foobar@freeN.projectlocker.com:foobar.git
git pull origin master
... merge, local edits and commits ...
git push origin master

I found Git, Xcode and ProjectLocker and Cygwin, SSH and ProjectLocker useful in figuring this out.

posted on Thursday, October 15, 2009 6:56:59 AM (Pacific Daylight Time, UTC-07:00) 
#    Comments [0]
Tuesday, October 13, 2009 
The Lighthouse
Title: The Lighthouse
Author: P.D. James
Rating: 4.5 stars out of 5
Publisher: Vintage
Copyright: 2005
Pages: 383
Keywords: mystery
Reading period: 22 September–3 October, 2009

Nathan Oliver is a great writer, but a horrible man. Adam Dalgleish of Scotland Yard is called in when Oliver is found murdered on an island that is exclusively reserved for VIPs. Only a handful of people could possibly be the killer.

P.D. James adds psychological insight to a tightly plotted classic mystery. Dalgleish is both a poet and a detective. Both aspects are required to get to the heart of what happened on Combe Island.

posted on Wednesday, October 14, 2009 6:21:51 AM (Pacific Daylight Time, UTC-07:00) 
#    Comments [0]
Monday, October 12, 2009 
Spook Country
Title: Spook Country
Author: William Gibson
Rating: 4 stars out of 5
Publisher: Berkley
Copyright: 2008
Pages: 384
Keywords: fiction
Reading period: 14–21 September, 2009

William Gibson has abandoned cyberspace for the present day. No matter. The same elements of paranoia, adrenalin, and technospeak are present.

His story follows three sets of characters, all of whom ultimately intersect, chasing the same mcguffin.

Enjoyable, if confusing.

posted on Monday, October 12, 2009 7:16:47 AM (Pacific Daylight Time, UTC-07:00) 
#    Comments [0]
Sunday, October 11, 2009 
National Coming Out Day

Today is National Coming Out Day, a day to promote awareness of lesbian, gay, bisexual, and transgender people. For anyone who doesn't already know: I'm bisexual.

I'm married to Emma. That leads people to tacitly assume that I'm straight. Too often, I do little or nothing to challenge that assumption, either from straight people or gay people.

I came out in grad school, a couple of years after leaving Ireland. It was difficult at first, but ultimately rewarding.

I'm married to a woman, but I could have ended up with a male partner, a partner whom I could not legally marry in Washington state. Emma and I married because anything else is second class. This is the root of my passionate involvement with the Approve 71 campaign. It's also why I've been a leader of BiNet Seattle for more than a decade.

The National Equality March takes place in Washington DC this weekend. Forty years after the Stonewall riots, LGBT people are rallying for equal protection in all matters. This is also the Seattle LGBT Equality Weekend.

There's a march this afternoon, starting from Volunteer Park at 2pm. I'll be there. Will you?

PS Let me refer you to Tim Wilson's Coming Out as Good Citizenship.

posted on Sunday, October 11, 2009 6:50:51 PM (Pacific Daylight Time, UTC-07:00) 
#    Comments [0]
Saturday, October 10, 2009 
Approve71 silhouette

I'm breaking radio silence to explain the uncharacteristic drought of blog posts. In my last post, I mentioned that I had created a Twibbon overlay for Approve71.org, allowing you to overlay Approve71's badge over your Twitter icon.

The next day I went over to Approve71's headquarters and introduced myself to the tech team, Josh, Joe, and Adam. One thing led to another, and I spent that weekend writing my first-ever PHP code, which allowed you to upload a photo to Approve71's website, stamp a banner on it, and then save it so that you could subsequently upload it to Facebook for your profile picture.

It's been a big success, used a couple of thousand times.

Since then, I spent a lot of time working on a second version, which lets you crop the photo (using imgAreaSelect) and choose from a set of overlay banners. Some of the banners are for the NO on 1 campaign in Maine, where they're fighting an attempted repeal of their same-sex marriage law.

George on Facebook George on Facebook

The second site went live earlier this week. Try it out: Create a Profile Picture.

posted on Saturday, October 10, 2009 6:59:44 PM (Pacific Daylight Time, UTC-07:00) 
#    Comments [0]