A place to write about things I see from where I'm standing (wherever that may be).
At the Hadrian Hotel
Wednesday, March 15, 2006
ETech: Final Notes to Myself
Monday:
I attended a tutorial called "Scaling Fast and Cheap - How We Built Flickr" given by Cal Henderson. Flickr started out as part of an online game to be called "Game Neverending" (GNE), being developed by Ludicorp in Vancouver. It was originally implemented in Flash, which prevented it from scaling very far. I tried out the Flash version at ETech 04 and found it to be interesting but a bit slow. The current implementation seems fast enough to me and obviously scales, as there are over 2 million users and over 100 million pictures in Flickr today.
Cal covered quite a bit of ground over the course of the day.... Flickr was originally implemented using commodity (white box) hardware. They originally tried customizing the kernel and various other bits of software but found that the extra work involved was not justified by the small performance gains achieved. Cal had a great quote from Donald Knuth: "We should forget about small efficiencies, about 97% of the time." Here's a very small sample of the stuff we learned in the tutorial, some of which seemed like common sense but much of which could only be learned through experience:
Make sure you have enough rack space. Make sure you have enough power and networking in each rack. When you buy spares, ensure that you get identical spares for things such as disks, and not just equivalent sizes. This can be crucial when you need to replace a disk in a RAID set. If you must use a data center on the 24th floor, make sure that any equipment you buy (such as additional UPS systems to increase capacity) can actually fit in the elevator. Otherwise it might take a while to disassemble, move, and reassemble the equipment. Have as much redundancy as you can afford (hot spares, cold spares, spare disks, spare network gear, etc). 100M ethernet is probably fast enough for most applications. Software architecture is like a trifle (an English trifle, not a Canadian trifle). The 3 rules of enterprise system development: use source control; have a one step build; use a bug tracker. Filtering (X)HTML input in order to prevent cross-site-scripting attacks can be a royal pain. There are so many ways an attacker can format (eg random white-space or newlines between "java" and "script" in the word "javascript") or encode things (eg "j", j, j, j, %6A) that you need to be extremely clever if you're filtering with regular expressions.
If you want to know more, you'll need to buy Cal's book which is due out from O'Reilly, probably in the first half of 2006. I'm not sore what the title will be, but it will be authored by Cal Henderson and will be something about web applications.
Monday Evening:
For me, the highlight of the Monday evening keynotes was Bruce Sterling's "The Internet of Things." He packed alot of words and imagery into a fairly short talk. You can get a taste of what we heard in an available podcast. Unfortunately, a talk of this type would have been better earlier in the day. 8:30 PM was a bit late to get started.
Tuesday:
In the morning we were treated to a number of keynote talks. The 3 I found most interesting were Ray Ozzie's "Simple Bridge-building," Dick Hardt's "Who Is the Dick on My Site," and Linda Stone's "Attention: The 'Real' Aphrodisiac." Ozzie spoke about Microsoft's web "clipboard" technology, which looked very interesting. Hardt did one of his "Identity 2.0" talks, which are always entertaining. He shares a rapid-fire slide presentation style with Larry Lessig. Stone's talk was all the more interesting because a large percentage of the audience appeared to be paying more attention to their laptop screens than to the speaker. More information about all of these talks can be found by looking for ETech at Technorati.
Foldera Unveiled...
playsh...
Building More Useful Mashups...
Sigh....
This entry was started on March 15, 2006. It is now May 22, and I have unfortunately forgotten the rest of what I was going to write. I guess that if I'm going to be serious about blogging, I'll need to start setting aside time each week to do it.
Technorati Tags: ETech, ETech 06
Thursday, March 09, 2006
ETech: Roomba Cockfighting
Those of you who read Make Magazine know that Phil Torrone has been working on remote-controlled Roomba vacuum cleaners. Well, tonight at ETech, Phil and Jeff Han got to test their mettle battling their Roombas in a Roomba cockfight. I took a few pictures and put them up on flickr. I also took 2 video clips of a short battle and a slightly longer battle. After a few more rounds of fighting, I suggested to Phil that we could mount my digital camera to the top of one of the Roombas to create the RoombaCam. The result is 5 video clips in RoombaVision™. They are round n-4, round n-3, round n-2, round n-1, and the final round.
Technorati Tags: ETech, ETech 06, Roomba, Roomba Cockfighting
Wednesday, March 08, 2006
ETech: Trusted Computing
Technorati Tags: ETech, ETech 06, Trusted Computing
Tuesday, March 07, 2006
Multi-touch User Interface
I just saw the most incredible demo here at ETech 06. Jeff Han from NYU showed their multi-touch user interface, "and the crowd went wild." The interface consists of an angled acrylic panel with a projector beneath it. There are LEDs shining light into the sides of the panel and when you touch the panel, your finger (or whatever you touch it with) scatters the internally reflected light which is then picked up by sensors beneath the panel. Their technique allows you to touch the panel at many points simultaneously, enabling a very complex yet intuitive user interface.
As you might imagine, it is possible for multiple people to use the interface at the same time, allowing new methods of collaboration and interaction. One of the demo applications was a game where the object is to move around nodes on a graph in order to eliminate crossed connection lines. Jeff had 2 game boards on the screen at the same time, allowing 2 people to play against each other (modulo enough processor power underneath to do all the math and re-drawing work).
Another demo app. was a type of photo album that allowed you to move images around, resize them by pinching or spreading your fingers, and rotate them by moving putting down 2 fingers and making a circular motion. Jeff them demonstrated the same type of application displaying live video streams (somewhere over 100 streams!). That one looked like a great way to watch everything on TV at once. :-)
Jeff also showed a drawing/animation application that allowed you to draw closed-loop shapes and then animate them by simply wiggling 1 or 2 fingers within the boundary of the shape.
The really cool application was a type of "Google Earth on steroids." Imagine everything you can do with Google Earth, but doing it by touching a screen with particular gestures. As Jeff "drilled down" on the image of the globe, the satellite imagery seamlessly gave way to detailed street maps with buttons allowing you to bring up additional information about the area you were looking at. Words really fail me at this point. If I've whetted your appetite, go to Jeff's page and look at the demo reel (MPEG or QuickTime).
Technorati Tags: GUI, multi-touch, User Interface, ETech, ETech06
Monday, March 06, 2006
Views From the Air
Technorati Tags: Flickr
Thursday, March 02, 2006
GPSPhotoLinker
For a first test, I took a few pictures just outside of my office like the one at the left. First, I made sure that the eTrex had found enough satellites to display my location and that the time zone was configured correctly. Second, I made sure that the clock on my camera was right. Then I walked around a bit and took some pictures.
The eTrex logs its current location at regular intervals and timestamps each entry. My camera logs the time that each picture is taken in the EXIF header of the JPEG file. It is these two timestamps that GPSPhotoLinker uses to put the right location information into each picture.
Once I had taken the pictures, it was time to download everything to my PowerBook and see what the program could do. Now, I don't use iPhoto when downloading pictures as I have a number of command line tools (based on Phil Harvey's excellent exiftool) that I use to set different EXIF and IPTC fields such as copyright and keywords. Instead of using iPhoto, I simply copy the JPEG files into a folder on my Desktop, open the folder, and fire up Terminal. I 'cd' to the folder and use some of my tools to add copyright, keywords, and whatever else I might want. I also run a script that adds a "GPS template" to every image I want to GPS tag. I'll explain why a bit later.
With the images prepared, I connect the eTrex to a USB-to-serial adapter, launch GPSPhotoLinker, and use its "Download Tracks" function to download the track log to my Documents folder. The next step is to load the photos into GPSPhotoLinker. Once the photos are loaded, it is now possible to add the GPS location information to each image file. The program allows you to "link" photos individually or in a batch. The "standard" mode displays 3 possible options for location values to use on your picture. Based on the timestamp in the image you will see the track point immediately preceding the photo time, the the track point immediately following, and a time-weighted average location. All three options have a "View on map" button and a "Save to photo" button. These buttons do just what you think they do. Choose the track point that most closely represents the location at which the photo was taken and click on the "Save to photo" button.
If you're trying to save coordinates to multiple photos, you can use GPSPhotoLinker's batch mode. Here you have a number of options. You can have the program select the nearest recorded point or a time-weighted average of points that are within a specified number of seconds, a specified number of meters, or a combination of the two. All-in-all, this is a very flexible program.
I said earlier that I needed to add a GPS template to the photos before I could run GPSPhotoLinker against them. Without a template, every time I added GPS information to a photo, the "maker notes" section of the EXIF header would be corrupted (I found this when I later tried to change another EXIF header value with exiftool). The corruption was verified using exiv2, on which GPSPhotoLinker is based. However, between the time I started writing this post (Thursday night) and now (Friday night) a new version of GPSPhotoLinker (1.3.5), based on a newer version of exiv2, was made available to me. This version does not corrupt the maker notes in the EXIF header, so I no longer need to pre-process the files before running GPSPhotoLinker.
On Sunday I leave for the O'Reilly ETech conference in San Diego, where I plan on taking a bunch of pictures and geocode them using GPSPhotoLinker. To see the result, take a look at my flickr photos tagged with etech06.
Technorati Tags: GPS, EXIF, Flickr, ETech, Tutorial