Union Types in SQL

Monday, November 21st, 2005

XML schemas support a union type. For instance, you can say that an element must be an int or one of the strings “large”, “small”, or “huge”. Does SQL have any equivalent? That is, is it possible to type a field as containing either an int or one of an enumerated list of strings? Or do I just have to create two fields, one of which is null? How is this customarily handled in SQL?

Top 20 Geek Novels?

Monday, November 21st, 2005

The Guardian has published a list of the Top 20 Geek novels. (More specifically “the best geek novels written in English since 1932.”) The list seems mostly correct to me except for the omission of the Lord of the Rings and perhaps To Your Scattered Bodies Go. One of the books on the list was a life changing and mind altering experience for me (The Illuminatus Trilogy!).
(more…)

#326: Black-Throated Gray Warbler

Saturday, November 19th, 2005

It’s getting harder to find life birds in my home territory, but not yet impossible. Today I picked up #326, a Black-Throated Gray Warbler in Forest Park, Queens. The bird was first reported almost a week ago by Seth Ausubel while I was in California. Fortunately it stuck around a while, and I was able to locate it today with the help of several other birders. Sean Sime took this photo of it a couple of days ago:

Black-throated Gray Warbler in Forest Park

This bird was a rare accidental. It’s basically a western species that occasionally shows up on the East coast at this time of year. I don’t know if they’re any other records in New York City. Seeing it was a real treat. However, they’re still a few birds that breed here I’ve managed to miss, mostly the really secretive birds. These include Seaside Sparrow, Nelson’s Sharptailed Sparrow, Saltmarsh Sharptailed Sparrow, and Clapper Rail. If I spend some time at Marine Park, Four Sparrow Marsh, and Big Egg Marsh, I should be able to add these species in 2006.

The other bird I should be able to get locally is Purple Sandpiper, which overwinters here. I looked for it a few times last winter, but kept missing it. This winter I’ll start looking for it sooner. I should also be able to find the screech owls in Central Park, though there’s argument as to whether those are really “countable.”

Of course, there are also several birds that pass through once or twice a year on migration that I don’t have yet: several owls, the less common warblers (Connecticut, Mourning, Swainson’s, Kentucky, and Golden-winged), Golden Eagle, Blue Grosbeak, Common Nighthawk, and Yellow-billed Cuckoo. All these birds are reported somewhere in New York City every year, but there’s nowhere you can hang out with a reasonable chance of spotting one. You just have to spend a lot of time in the field during Spring and Fall migration until you get lucky. I chased Yellow-billed Cuckoo and Common Nighthawk a couple of times in Prospect and Central Parks this year, but without any luck.

Birding Venice

Saturday, November 19th, 2005

Venice is not a hugely interesting place to bird, especially if you’re restricted to the city proper as my wife and I were. Nonetheless if you’re not too accustomed to European birds, there may be a few surprises. There were a few for me on my recent October trip to the Bride of the Sea.

I had meant to take the Alilaguna boat from the airport across the lagoon to the city proper, but thanks to my nearly nonexistent Italian, we ended up on a bus crossing the lagoon (Alla Laguna) instead. There were some definite cormorants in the Lagoon. It was impossible to tell from the bus, but they were probably Great Cormorants. The other possibility is a Shag.

The most common birds are ones familiar to every American birder: Rock Pigeon and House Sparrow. House sparrows are more or less native. However, European birders have real wild rock pigeons to look at (though not in Venice). Consequently they distinguish between the genuine wild ones and the feral domestics found in Venice and other European cities. Venice has not yet reached the anti-pigeon frenzy that prevails in cities like New Orleans and London. Pigeon food is openly sold in St. Mark’s Square, and the pigeons there are the tamest I’ve ever seen. They routinely swarm and sit on anyone who has food or who they think might have food. The house sparrows are only marginally less tame.

Two species of gulls are also very common at this time of year: black-headed and yellow-legged. They’re hard to miss since they’re on all the water and the water is everywhere. In winter plumage the Black-headed Gull has just a black dot behind its eye rather than a full black had as it does in summer. The Yellow-legged Gull looks exactly like a Herring Gull (they are sometimes considered to be the same species) except that it has yellow legs instead of pink. It also has less streaking on its head in winter than a typical herring gull. I’d seen Black-headed Gull previously in Amsterdam but Yellow-legged Gull was my first life bird of the trip.

Black-headed Gull in Venice

Sunday we took a vaporetti (boat bus) to the one significant accessible park, the Giardini Pubblici where most Biennalle pavilions are found. From there we walked all the way out to the East on St. Elena Island. This revealed a few interesting birds including Common Blackbird, Blackheaded Gull, European Robin, Winter Wren, and Yellow-legged Gull. Despite its commonness, I had never seen a European Robin before, and did not immediately recognize it. It looks more like warbler than a thrush, and not that much like an American Robin, though they are related. It’s also much shyer than the American bird so harder to get a look at. I didn’t realize what I’d seen till I returned to the site Wednesday morning.

There was also a possible Firecrest flitting around in a dense bush, though I didn’t get a good enough look to be sure. It might also have been a Blue Tit. Beth didn’t see the interest in standing around a bush for fifteen minutes waiting for a better look at a small bird. (Such are the hazards of taking one’s non-birding spouse on an exploratory trip.)

We returned to the city center on foot, and on the trip I made the only unique siting of the trip: a Common Buzzard circling high above the canals. (90% certainty, just maybe could have been a Honey Buzzard instead.) Fortunately this bird circled for a good while because I had a really hard time finding it in my European field guide. Everything about the bird screamed “Buteo”, and if I’d seen it in Prospect Park I would have chalked it as a red-tailed hawk without much thought. I knew a red-tail wasn’t likely, but I couldn’t find “hawk” in the index, except for a vagrant Swainson’s. And everything time I flipped through the pages I flipped right past the “buzzards” section since this didn’t look remotely like a “buzzard”. Fortunately I eventually looked up “Buteo” in the index, and discovered that in Europe all the hawks are called “buzzards”; and what I was looking at was in fact the nominative buteo species, Buteo Buteo, or Common Buzzard.

Tuesday we took a long boat ride to Isola de San Gregorio to see the Church across the water from St. Mark’s Square. On the maps there’s a lot of green space on that island, more than almost anywhere else in Venice. However, that proved to be inaccessible. On the boat ride over we did, however, see some possible Great Crested Grebes. That’s just a guess though, since the weather was hazy and I didn’t have my binoculars with me.

We took the train out, which also crossed the lagoon. On this trip we spotted the same unspecific cormorants we had seen on the way in on the bus. A few crows also appeared, probably carrion crows, but hard to tell.

The one thing we did not do that I wish we had done was take a boat tour of the Lagoon outside Venice proper. I suspect this would have turned up a lot more interesting species. What we did was the equivalent of birding New York from Battery Square Park to 42nd Street; but never going out to Jamaica Bay. (Venice really has no equivalent of Central Park.) Several companies offer Lagoon tours, but they had shut down for the season a couple of weeks before we arrived.

Unagile Testing

Friday, November 18th, 2005

Teaching commitments in New York prevented me from sticking around to hear most of the talks at STARWest this week after my own sessions were over. However I did listen to Wednesday’s keynotes from James Whittaker and Julie Gardiner. Reflecting on them, it struck me that while today’s programmers may be test infected, testers aren’t yet agile infected.

Whittaker’s keynote made the useful point that we need to investigate our bugs to see what we’re doing wrong, which is sensible. However he seems to believe that the only reason to do this is so testers can more easily find bugs. He doesn’t hold out any hope that programmers can find bugs or not put the bugs into the code in the first place. Because all software is buggy, he thinks no methodologies are worth anything. He claims we don’t know how to write perfect code, and therefore we can only hope to detect the bugs after the fact.

Certainly all software has bugs, but not all software is created equal. Some software is demonstrably better than other software; and we can learn good techniques from this software, even if it still has a few bugs in it for testers to find. He’s really suffering from the binary fallacy. The question is not whether software is perfect or imperfect. It’s a quantitative question of how imperfect any given piece of software is. We can strive for perfect software, but we can only achieve better and worse software. But we can achieve that, and it’s still worth studying and striving for. (In a brief hallway conversation after the talk, James did hint that he was deliberately overstating his point to pump up the audience, but there were no such caveats in the keynote itself; even when I raised these points in Q&A)

Julie Gardiner delivered the second keynote on Why “‘Risk’ is a Tester’s Favorite Four-Letter Word.” I don’t have a big background in test theory. I haven’t read a lot of books about testing. (She claims to own over 60, and to have read most of them.) so I may not have fully understood everything she said. However, it seemed to me that she was saying risk is dependent on time spent testing. The more time spent on after-the-fact testing the more confidence you had that the software was bug free. You decide when to release based on how much risk you are willing to accept.

There’s something to that but it’s not how I work, it’s not how I see companies like Microsoft working, and it’s certainly not agile. In agile development, the software is tested and the bugs found much sooner. An agile team normally has a very good handle on how many bugs they have; and they run at a very high confidence level that there are few undiscovered bugs. This is because testing is done simultaneously with coding rather than after the coding.

As far as releases go, a really agile team may release every two weeks. If there are undiscovered bugs they can be fixed and the fix rolled out very quickly. In the world of shrinkwrapped software such fast release cycles may not be possible. However then the question of whether to ship is normally driven by two questions:

1. Are sufficient features implemented to justify the release?
2. Are any known bugs or combination of bugs significant enough to delay the release?

The possibility of unknown bugs just doesn’t enter into it.

Note that I am not saying there’s no place for testers on an agile team. It’s just that I think the testers need to be brought in much earlier. Testing needs to be simultaneous with development, not subsequent to it.

Chicken Little

Friday, November 18th, 2005

Last week I caught Disney’s Chicken Little at the Downtown Disney AMC 12 of all places. For those who’ve been hiding under a rock, this is Disney’s first independent foray into 3D animation. Previous Disney 3D efforts like Finding Nemo and Toy Story were essentially Pixar creations distributed by Disney. However, the Disney-Pixar relationship has been rocky lately with Pixar threatening to go its own way after its next release. Chicken Little is Disney’s effort to stay relevant after a long string of 2D flops. (Treasure Planet anyone?)

Did it work? Let’s put it this way: for the first time I can remember I had to fight to keep from falling asleep in a movie. My wife did fall asleep. Chicken Little is really that bad. And it’s not just boring. It’s not just derivative. It’s occasionally outright disgusting, and not in a good way. One of the real strengths of Disney and animation in general has always been cute, memorable, cartoon animals. In fact, as a walk around Disneyland will prove, the characters are often more valuable than the movie itself. (When’s the last time you saw Mickey Mouse in a movie?) But not this time. These characters are outright gross.

The ugly ducking character is genuinely ugly and cringe-inducing. Bill the Cat has more charm than she does. Foxy Loxy is merely annoying. Runt of the Litter (the pig) is not just pleasantly plump. He’s morbidly, grossly obese. The main character, Chicken Little, is at best inoffensive. Perhaps I just have my mind in the gutter; but the head of Chicken Little’s father reminds me of nothing so much as one large testicle. (Not that this is necessarily a bad thing: Joe Camel proves that children just adore characters designed in the shape of male genitalia.) Only Kirby and Fish Out Of Water seem like genuinely cute funny animals.

Disney is really in trouble. The problem at Disney has nothing to do with 2D vs. 3D and everything to do with corporate designed plots and characters meant to sell toys rather than tell a story. Unless Disney figures this out, their animation division is doomed. Until then the best they can do is license good movies from 3D companies like Pixar and 2D animators like Hayao Miyazaki.