Saturday, May 30, 2009
Unicode Snowman
The Miscellaneous Symbols plane of Unicode (2600–26FF) contains various glyphs including weather symbols: ☃ ☀ ☁ ☂ The snowman symbol indicates "snowy weather". Combine the Unicode snowman with Internationalized Domain Names and you can have http://☃.net/, the Unicode Snowman web site. The Unicode standard doesn't specify what the glyph is supposed to look like. Depending on what font is used, you may see a smiling snowman surrounded by a ring of snow balls or an unsmiling snowman wearing a hat that looks like a fez.
Note: since my blog posts are encoded as ISO-8859-1 rather than Unicode, the link above is actually http://xn--n3h.net/ which contains the Punycode version of the hostname.
Note: since my blog posts are encoded as ISO-8859-1 rather than Unicode, the link above is actually http://xn--n3h.net/ which contains the Punycode version of the hostname.
Thursday, May 28, 2009
When Monkeys Flew
One of my younger son's favorite books is Curious George Gets A Medal where George becomes the first monkey in space. The book was first published in 1957. I hadn't realized that it predates a real world event. Today is the 50th anniversary of the space flight of Abel and Baker, the first monkeys to survive spaceflight. Able was a rhesus monkey, and Baker was a squirrel monkey.
Monday, May 04, 2009
The Five Stages of Soylent Green
Sunday, May 03, 2009
Lang.NET 2009
I didn't attend the Lang.NET 2009 Symposium but I've been watching some of the presentations online. A few that stood out:
- Jeffrey Snover on Powershell V2. I've been using Powershell since it was called Monad. I use it all of the time. There's lots of cool stuff in V2 and it's great to watch Powershell's creator show them off.
- Lars Bak on Google's Javascript V8 engine. Lars Bak talks about the V8 engine used in Google Chrome. Lars has been behind lots of innovative VMs including Self, Strongtalk and Sun's HotSpot. V8 builds hidden classes from JavaScript and performs dynamic native code generation rather than interpreting JavaScript.
- Anders Hejlsberg on Co- and Contra-variance in C# 4.0 This is a narrow topic but interesting to me. Generics types in C# didn't support co-variance which means that, for example, an object of type IEnumerable<string> cannot be assigned to a variable of type IEnumerable<object> even though string is a subtype of object. In C# 4.0 this will be supported.
- John Rose on Method Handles and Interface Injection in the JVM The Da Vinci Machine Project is extending the Java VM with first-class support for languages other than Java, especially dynamic languages. One of those extensions is Method Handles which is quite similar to C# delegates.
Poken Schmoken
Did you ever own a Palm Pilot or other Palm device? One feature that was pretty popular in the early days was the ability to "beam" items from Palm to Palm, usually "business cards". It uses infrared to transmit and receive the data and can be used to beam any sort of data that you want, including full applications. But both parties need a Palm device.
Bluetooth can do much the same thing but never really caught on in a big way. Exchanging email addresses verbally or the like seems to work just fine today. Given that, what do you think the chances are that a new physical device called a Poken will become successful?
The Poken has two components: a Poken hand and a little character that the hand connects to such as these:$24.95 $19.96.
Bluetooth can do much the same thing but never really caught on in a big way. Exchanging email addresses verbally or the like seems to work just fine today. Given that, what do you think the chances are that a new physical device called a Poken will become successful?

The Poken has two components: a Poken hand and a little character that the hand connects to such as these:

Friday, May 01, 2009
The Freesound Project
The Freesound Project is a collaborative database of Creative Commons licensed sounds. Could be pretty useful in games, videos, etc.
Thursday, April 30, 2009
Uncomfortable Plot Summaries
137 uncomfortable plot summaries of movies, TV series and books. Some favorites:
- ALIENS: An unplanned pregnancy leads to complications.
- DELIVERANCE: Tourists experience local hospitality.
- DIE HARD: Dysfunctional cop saves marriage by murdering foreign national.
- GROUNDHOG DAY: Misanthropic creep exploits space/time anomaly to stalk coworker.
- JURASSIC PARK: Theme park’s grand opening pushed back.
- KARATE KID: Boy gains acceptance through violence.
- KILL BILL: Irresponsible mother wants custody of her child.
- LORD OF THE RINGS: Midget destroys stolen property.
- MONTY PYTHON AND THE HOLY GRAIL: British comedy troupe inadvertently creates language lab for nerds.
- RED DAWN: Despite shock-and-awe tactics, a superior occupying force is no match for a tenacious sect of terrorist insurgents.
- RISKY BUSINESS: Privileged rich kid gets everything he wants with no consequences.
- SCARFACE: Immigrant finds running his own business stressful, dangerous.
- STAR WARS: A NEW HOPE: Religious extremist terrorists destroy government installation, killing thousands.
- TERMINATOR: An unplanned pregnancy leads to complications.
Wednesday, April 29, 2009
Disaster Recovery
Last week my MacBook Pro would not boot. This happened after a less-than-graceful shutdown. Rebooting would get as far as the gray screen with the "spinning wheel" but even after waiting a long time it didn't appear to make any progress. Rebooting while holding down the option key showed a Macintosh OS partition on the drive but it wouldn't boot. I attached my backup drive (thank you SuperDuper!) and was able to boot from that. But the internal drive would not mount and Disk Utility wasn't able to repair it. I then tried booting into single user mode (hold down Command-S while booting). The OS partition was there and the contents appeared to be fine. Okay, the drive is fine, there must be a file system problem. Following directions found here, I ran fsck in single-user mode. It fixed the file system, I rebooted and the MBP was fine again. Phew!
Tuesday, April 14, 2009
IMDb 250
IMDb maintains a list of the Top 250 movies (as voted by their users). I noticed that several of my friends on Facebook have reported how many of these films they've seen. While I was trying to figure out how to show my own results, I discovered Track the IMDb 250, a web application lets you mark movies that you have seen on the IMDb Top 250. It's built and hosted using the Google AppEngine. The source code for the app can be found here. The current list of seen/unseen movies for any user can be queried and returned in JSON format using the path /data/user/seen. My current seen/unseen list is here.I've watched 188 of the current IMDb 250. I doubt that I'll end up watching all 250 of them but 16 of the films that I haven't seen are in my Netflix queue.
Note: IMDb's convention of listing foreign films with their original titles might make some of the entries hard to recognize (e.g. El laberinto del fauno was released in the US as Pan's Labyrinth). Here a list of the US titles:
- Le fabuleux destin d'Amélie Poulain (2001) → Amélie
- Das Leben der Anderen (2006) → The Lives of Others
- Sen to Chihiro no kamikakushi (2001) → Spirited Away
- El laberinto del fauno (2006) → Pan's Labyrinth
- La vita è bella (1997) → Life Is Beautiful
- Nuovo cinema Paradiso (1988) → Cinema Paradiso
- Der Untergang (2004) → Downfall
- Ladri di biciclette (1948) → The Bicycle Thief
- Per qualche dollaro in più (1965) → For a Few Dollars More
- Mononoke-hime (1997) → Princess Mononoke
- Smultronstället (1957) → Wild Strawberries
- Det sjunde inseglet (1957) → The Seventh Seal
- Le salaire de la peur (1953) → The Wages of Fear
- Le notti di Cabiria (1957) → Nights of Cabiria
- Les diaboliques (1955) → Diabolique
- La battaglia di Algeri (1966) → The Battle of Algiers
- Låt den rätte komma in (2008) → Let the Right One In
- Hotaru no haka (1988) → Grave of the Fireflies
- Le scaphandre et le papillon (2007) → The Diving Bell and the Butterfly
- Wo hu cang long (2000) → Crouching Tiger, Hidden Dragon
- Nosferatu, eine Symphonie des Grauens (1922) → Nosferatu
- Les quatre cents coups (1959) → The Four Hundred Blows
- Vals Im Bashir (2008) → Waltz with Bashir
Wednesday, April 01, 2009
Cloudy Manifesto
When software companies get together and use a ten-dollar word like "Manifesto" it means that they want to be taken seriously. So it goes with the Open Cloud Manifesto.
Who are the dominant players in cloud computing? Google, Amazon, Microsoft, Salesforce and, maybe, Yahoo. Are any of them supporting this manifesto? Nope. Who are the supporters? IBM, Sun, Cisco, SAP and a number of smaller companies. Why the disconnect? As Tim Bray puts it:Anyone remember OpenDoc?
Who are the dominant players in cloud computing? Google, Amazon, Microsoft, Salesforce and, maybe, Yahoo. Are any of them supporting this manifesto? Nope. Who are the supporters? IBM, Sun, Cisco, SAP and a number of smaller companies. Why the disconnect? As Tim Bray puts it:
I've seen this movie before: There's a new area of technology, there's a dominant incumbent who got there first, and there's a bunch of other voices calling for standardization, being genially ignored by the incumbent.
It's perfectly reasonable to suspect the incumbent of wanting to protect their turf, and also to suspect the standards-promoters of simply wanting a piece of the action.
Tuesday, March 31, 2009
Ten Years Ago Today
Notes/Domino R5 shipped ten years ago today. The release culminated with a terrific ship party in the Bahamas.Ten years. Wow. An eternity in the software business.
Thursday, March 26, 2009
Obama Sushi
According to tofugu, the Japanese love our current president enough to create an Obama-themed sushi platter.American presidents and sushi... Doesn't that sound familiar? Oh, right! That incident inspired a Japanese slang word, Bushusuru.
Advice to Obama: on a state visit to Japan, avoid the Natto!
Advice to Obama: on a state visit to Japan, avoid the Natto!
Sunday, March 08, 2009
Weekend Forecast: Rain, Sleet and Dippin Dots
This weekend we've had mixed weather. Rain, sleet, thunder and lightning. And lots of snow pellets. They aren't hard ice balls like hail. They aren't fluffy flakes of snow. They're little pellets of snow that look just like Dippin Dots. The official name for this stuff is soft hail.
Sunday, March 01, 2009
Octal Literals
Back when computers had limited address spaces, octal numbers were handy. Each digit represents 3 bits and a short string of octal can represent a 16-bit or 24-bit address. Octal numbers were so handy that programming languages like C included octal literals. The syntax is simple: a numeric literal with a leading '0' and no decimal point is an octal literal. For example, 0777 is the octal representation of 511 decimal.
As address spaces expanded to 32-bits and beyond, octal syntax was replaced with hexidecimal. The transition happened more than ten years ago. Octal literal syntax is unknown to many developers today and can cause unintentional errors. For example:Given that octal isn't that useful today, would you expect that any recently developed programming language to support them in the same way as C/C++? Probably not but many do. Java does. So does Javascript. And Ruby. And Perl. And Python (although Python 3 has adopted a less error-prone syntax). Why were C-style octal literals carried over into these languages? Probably because their interpreters/compilers were initially written in C/C++ and old habits (and syntax) die hard.
Some languages have bucked this trend. Smalltalk for example, uses an explicit radix prefix for octal and hexidecimal (e.g. 8r377 and 16r7FFF). And C# does not support octal literals at all.
As address spaces expanded to 32-bits and beyond, octal syntax was replaced with hexidecimal. The transition happened more than ten years ago. Octal literal syntax is unknown to many developers today and can cause unintentional errors. For example:
int powersOfTen[] = {
0001, //okay
0010, // error: this is 8, not 10
0100, // error: this is 64, not 100
1000, // okay
};
Some languages have bucked this trend. Smalltalk for example, uses an explicit radix prefix for octal and hexidecimal (e.g. 8r377 and 16r7FFF). And C# does not support octal literals at all.
Friday, February 27, 2009
President Bob?
I don't usually have work-related mail sent to my house but I have used my home address for free subscriptions and conference registrations. So sometimes I get mail addressed with Microsoft, IBM, Lotus, etc. after my name. And sometimes it includes a job title as well. But this is a first. I got a mailing from HP addressed like this:





RSS 0.92 Feed