Iron Chef America

Sat, Jan 1, 2005

I'm watching the "Making of" for Iron Chef America right now.  I'm super excited.  From what I've seen it looks like they've done a really good translation for the US market.  I'm planning on watching the marathon tonight.  I watched the William Shatner special a while ago and wasn't all that impressed.  Hopefully this one will be better.

The real clincher for me is Alton Brown.  He does the play by play and is the guy doing most of the talking. I've been a huge fan of Alton for quite a while.  He is the guy behind Good Eats on the food network.  He is really the thinking person's TV chef.

Full Size Pano Example

Thu, Dec 9, 2004

I'm trying out something new.  Here is a flash app that lets you zoom in to and navigate around a full size version of the Horseshoe Bend pano that I posted a couple of days ago.  Hopefully this won't kill my bandwidth.

I'm using free software provided by Zoomify.

BTW, is it bad form to put a flash app directly in an RSS feed?

DOS/Windows command line escaping

Sun, Dec 5, 2004

Here is a Raymond-esque tidbit that I wanted to get out there.  I couldn't find anything on Google and had to figure this stuff out via trail and error.

Okay -- you think you know how to escape stuff on the DOS/Windows command line?  Probably not.  Let's start with a simple python script to show us what we've got:

C:\test>type dumpargs.py
# a simple program to dump the incoming arguments
import sys
for arg in sys.argv[1:]:
    print repr(arg)

Now lets run some tests and see what it spits out:

C:\test>dumpargs.py "hi there"
'hi there'

C:\test>dumpargs.py "hi \" there"
'hi " there'

So far so good. It looks like we know how to escape a double quote sign ("). But what about the pesky percent sign? DOS/Windows/Command/CMD uses this for variable substitution. Let's try a bunch of stuff and see what we get:

C:\test>set foo=bar

C:\test>dumpargs.py "hi there %foo%"
'hi there bar'

C:\test>dumpargs.py "hi there \%foo\%"
'hi there \\%foo\\%'

Hmmm, it looks like the backslash doesn't work. Looking around, it looks like the caret symbol (^) is the way to go. Lets try that out.

C:\test>dumpargs.py ^%foo^%
'%foo%'

C:\test>dumpargs.py "hi there ^%foo^%"
'hi there ^%foo^%'

Well, it looks like that works as long as it isn't in quotes. I also found another wacky case:

C:\test>dumpargs.py "hi there \" ^%foo^%"
'hi there " %foo%'

C:\test>dumpargs.py "hi there \" \" ^%foo^%"
'hi there " " ^%foo^%'

Very odd -- it looks like the caret does work as an escape character as long as there is an odd number of escaped double quote characters before it in the string. The parser here is obviously not a simple as one might first think. Lets try ending the string before we quote the percent sign:

C:\test>dumpargs.py "hi there "^%"foo"^%" bar"
'hi there %foo% bar'

C:\test>dumpargs.py "hi \" there "^%"foo"^%" bar"
'hi " there ^%foo^% bar'

We are getting closer, but that escaped quote character puts the parser into a wacky state. I finally did find a good solution:

C:\test>dumpargs.py "hi "^"" there "^%"foo"^%" bar"
'hi " there %foo% bar'

It turns out that you must replace the double quote (") with the following sequence: "^"". You must also quote the percent character (%) with this sequence: "^%". I think that everything else is okay inside of the double quotes. Very strange but true. I guess this is what 20 years of back compat get you.

Arizona Desert Photo 2

Sun, Dec 5, 2004

Here is another photo from the trip that I described here.

Snowy Trees above Page, AZ

This was a pretty lean day on the workshop.  This was our day to go and hike out to "the wave."  The Wave is a really cool set of sandstone rock formations buried in the north part of Coyote Buttes.  A permit is required to hike Coyote Buttes and the BLM restricts it to 10 people per day.  The problem is that on the weather had taken a turn for the worse during the night.  When we work up at 5 AM on Sunday, it was raining in page.  As we drove toward the trailhead we gained elevation and it started snowing.  Around 6 AM we needed to start driving on gravel roads.  It was still snowing pretty hard and we decided to turn back.  I was looking forward to a good hike and was disappointed that we didn't make it to the Wave.

When we got back to the motel, we picked up everyone else and went "hunting."  Off the side of the road outside of Page, as we were climbing, we stopped to photograph some fresh snow on desert trees.  This is one of the images that resulted.

Technical details: Original composition was 24 images (8x3).  I cropped out just a corner of that to make the composition as seen above.  Total images used then is probably more like 15 (5x3).  Each was shot at 1/25 sec, f/11, ISO 100 with the 24-70 f/2.8L @ 50mm.  Final image is 6000x6000 or 36 megapixel.

1.2TB = $2k?

Sun, Nov 28, 2004

I know it seems hard to believe in this day and age of 300GB hard drives, but I've run out of hard drive space.  My plan up until now was to keep a bunch of stuff on a RAID 0 RAID 1 (RAID0 is simple striping with no redundency. RAID 1 is mirrored.) 120GB set of drives.  As that fills up, I've been archiving stuff to DVD.  The problem is that I've had to start archiving stuff sooner than I thought and I don't trust the DVDs.  In fact, I've gotten read errors on some already.  They may be fine for video, but I don't want to archive data on them.

I'm faced with a couple of options.  The first option is to half ass it some more and put a couple of more drives into my current computer.  I'm hoping the power supply can take it.  I think I can fit them in there but it may be tight.  Thank god for serial ATA at least.  I don't think I could fit them in with regular old parallel ATA.  A Maxtor 300GB SATA drive is urrently $206 at newegg.  300GB more (mirrored) would be a good start, but I'm sure I'd run out of space sooner or later.

The other options I was thinking about was putting together a storage server and running RAID 5 (stripe set with parity -- it spreads the data across multiple drives but duplicates some of the data for redundency).  I'd like something that I can grow with so I'd like to be able to increase the amount of space for just the cost of more drives.  Here is what I came up with:

  • Computer guts:
    • TYAN Tomcat i7210 motherboard ($222)  This is a P4 motherboard with 64bit PCI support. This is the cheapest motherboard with 64bit PCI support I could find.  It also comes with SATA RAID on board if I need it.  Dual gigabit ethernet -- yum.
    • Intel P4 3.0E w/ 800MHz FSB and 1MB L2 Cache ($185)  This seems to be a pretty good price for a fast processor.  Since I'm going to be doing RAID 5 in software it seems worthwhile to pay for a decent proc.
    • 2 * 256MB cheap-o PC3200 RAM (2 * $35 = $70) If it goes bad I can always replace it or upgrade to 1GB.
  • Case:
    • CODEGEN "Silver Server" 13 bay monster case ($130)  This thing looks like a beast but the price is right.
    • Supermicro 5bay SATA HDD enclosure ($118)  This is what really brought it home for me.  This is a little cage that holds 5 hard drives in the space of 3 5.25" external bays.  It comes with a fan and a "backplane" for all of the drives.  And you get cool blinking lights and such.  There is enough room in the monster case to fit two of these for 10 data drives total.
    • Antec 550W power supply ($100)  Hopefully this will be enough.
  • Hard drives:
    • HighPoint SATA RAID controller card ($204)  This thing can drive 8 SATA hard drives.  That should be enough to get me started.  It uses the host processor for doing the RAID 5 stuff, but it is a lot cheaper than the cards that do RAID 5 in hardware.  Since I'm not all that concerned with speed, the savings should be good enough.  The Broadcom card is another option but it is $100 more.  Tom's hardware did an interesting expriment with these where they drove 32 drives off of one computer.
    • 80GB system drive ($60)  You generally don't want to run the OS off of your data array.
    • 4 * Maxtor 300GB 7200RPM SATA drives w/ 16MB buffer (4 * $206 = $824).  This seems to be a sweet spot in capacity right now. The 250GB drives aren't that much cheaper and the 400GB drives are super expensive.  The Maxtor also comes with a 3 year warranty.

Total price: $1913 plus shipping and software.  I'd probably run Windows as I think I have a legit copy of SBS 2k3 that MS gave me when I still worked there.  It should run Linux fine too if all you want to do is serve files.

With RAID 5 this will give me ~900GB of redundant storage.  I can easily double the size with another hard drive cage and a set of drives ($942).  This seams like a pretty wild deal to me.  Sure it won't be the fastest thing out there but it is pretty darn cheap for a ton of storage.  I probably won't drop the money on something like this for a while, so I'm expecting it to just get cheaper.

So, am I missing anything?  Is someone going to come out with a turnkey system for half the price?  The closest comparable thing I could find where the NAS systems that various people are selling.  Nothing could touch this setup on price.  I looked at the Apple XServe (I do love blinking lights...) but they start at $6000 for 1TB and require fiber channel.  Way overkill for me.  There is also something like the LaCie terrabyte drive ($1000).  This seems like an amazingly bad idea to me.  They must 4 drives in there.  If one fails you loose all of your data.  The chances of loosing all of your data is 4 times as likely.

I like pricing out stuff like this even though I may never buy it :)

Photos from the Arizona Desert

Sat, Nov 27, 2004

Last weekend I spent some time down near Page, AZ photographing some beautiful southwest scenery.  Since I don't have the time or experience to plan something like this myself, I went with a group of people led by Steve Kossack from f-8 and be there.  Steve takes people out on photography workshops to places that he knows very well.  It is amazing what a difference an experienced leader can make to an expedition.  I had a great time and got some amazing images from the trip.

My flight to Phoenix on Thursday got in around 1:30 pm.  Steve and some of the other participants picked me up at the airport baggage claim.  We were then immediately off on a pretty long drive up to Page.  Page is right on the border between Arizona and Utah.  It's on Lake Powell, a huge serpentine lake made by the Glen Canyon Dam.  The Glen Canyon dam is on the Colorado upstream from the Grand Canyon.

Once at page, we checked in to a hotel and started our 3 days of intense field photography.  A typical day would be getting up early enough so that we could be at a good spot for sunrise.  Up in the high desert this was pretty cold this time of year.  Lows at night were somewhere around 35-40 degrees F.  We would then photograph the sunrise.  After that we would spend the day in locations that work well with overhead light.  For this trip we photographed both upper and lower Antelope Canyons.  These are amazing slot canyons that really have to be seen to be believed.  As the day wears on we would travel to another amazing location for a sunset shoot.

Besides the wonderful landscapes, the other people on a trip like this make it a very enriching experience.  It is refreshing to me to be out with people who enjoy photography so much.  It takes a certain type of person to get up at 4:30am in the cold so that you can travel two hours to be in time for the morning light.  One part of the workshop that I particularly enjoy is the print discussion.  Steve encourages everyone to bring some prints of their work.  Then, after living with each other for a couple of days, we get together to admire and discuss each others' work.  Steve also brings some of his best work for us to look at.

If you are interested in an experience like this and have a passion for photography, give Steve a call.  His upcoming Grand Canyon rafting trip looks like a trip of a lifetime.  I won't be able to make this one, but it looks like he has a couple of spots left.

As for the images that I got -- here is a start:

Horseshoe Bend at dawn

This is famous Horseshoe Bend on the Colorado river.  The river carves a perfect circle as seen from the cliff overlooking the canyon.  This was our first sunrise of the trip.  I'm always a little rusty when starting out on something like this, but I'm happy with this result.  The mountains in back (catching the sun first) are called the Vermillion Cliffs.

Technical details: 20 images stitched together (3x7) shot from my Canon 20D with the 24-70mm f/2.8L at 34mm.  Exposure was 1/25th second at f/11 and ISO 200.  I haven't done the full stitch yet (this is a small version) and so I don't know the final resolution.

Look for more images in the coming weeks as I sort through the boatload of data I captured.  As a point of reference, I ended up with ~14GB of raw data from this trip.  I'm going to run out of disk space!

Congrats to the Avalon team

Tue, Nov 23, 2004

I came back from my photo trip and started catching up on email and blogs.  It looks like the Google Kirkland open house went well.

The bigger news, in my mind, is the technical preview that the Avalon guys shipped.  I'm going to have to download it and play around to see what all changed since I left.

I was really hoping that they would get something out before the Longhorn beta.  I'm sure this was a ton of hard work, but I think that it proves that decoupling Avalon and Longhorn was really the right decision.  It will allow the Avalon guys to go full steam ahead.

BTW, ChrisAn's blog is a good place to start on some of this stuff.  He has an app that you can download and play with.

Congrats!

Jobs at Google

Tue, Nov 16, 2004 With the advent of our new office, a lot of people have been asking (via email or comments on the blog here) about jobs at the Kirkland office.  For a variety of reasons, I really can't do much on the recruiting side.  If I've worked with you and you don't work for Microsoft, feel free to drop me a line.  Otherwise, your best bet is to send email to jobs@google.com as specified here.  Even though Kirkland isn't listed there, I'm sure you can reference the office in any email you send. I wish I could be everybody's inside line, but I can't.

Random Update

Tue, Nov 16, 2004

I've been super busy at work for the last few weeks.  We've been iterating on our stuff and have come up with some cool plans.  Hopefully we can turn those into reality and ship them.  I wish I could say more but I really can't.  I think that one of the reasons that Google is so reluctant to speak publicly about what they are doing is partly to surprise the competition and partly so that we have the freedom to try stuff without committing to deliver it.  There may be some stuff that never sees the light of day, but it is better than announcing it and then it never seeing the light of day.  I think that this probably makes it easier to pull the plug on projects that just aren't converging.

Besides work, some other things are going on that I think are pretty exciting.

First, I've been helping to port enblend to build and run natively under Windows.  Enblend is a cool tool to help in the blending stage of making digital panoramas.  My (limited) understanding of the mechanics is that it converts the images into the frequency domain to come up with an optimal blending mask.  Sometime soon I'd like to start delving into the hard parts (Math) and get a better understanding of what is going on.  Andrew (the guy who wrote enblend) just released version 2.1 out into the wild.  Let us know if you have any problems.

Second, I'm going to be missing the Google open house (a rockin' party scheduled for Thursday night) so that I can take a trip down to Page, Arizona to shoot slot canyons and other various rock formations.  I'm going to be doing a lot of panorama and digital mosaic work so look for some cool images soon.

One interesting photography note: I've had one of my large pano's printed up pretty large -- about 40" x 25" (100cm x 64cm, for those of you of the metric persuasion) and have it framed and hanging outside my office.  Even at that large size, the photo is tack sharp.  It is really a lot of fun to make images that large.

Oh yeah, and Halo 2.

Moving offices

Wed, Oct 27, 2004

It's true -- Google is opening a development office in Kirkland.  In fact, we are moving tonight into our new offices.  So far there has been a small group of us working in some temporary offices.  It is going to be nice to move into a more permanent space where we can actually talk about work in the hallways!

Other nice things about moving:

  • Someone else is going to get and stock the drink fridge.  We've been doing it so far by assigning people to make Costco runs.
  • We'll have an espresso machine so we can all practice our barista skills.
  • Conference rooms we can use any time we want.
  • We can hang our own art on the walls.
  • Faster connection to the internet and to Mountain View.
  • Google colored bean bags everywhere. Apparently the company that makes the google beanbags isn't making them any more. I didn't ask as I assume this is a long and complicated story.  Don't worry -- we'll have foosball instead.
  • Lots and lots of whiteboards.

Stay tuned for more details!  We are planning an open house party so that Seattle knows we are here.  I don't think we can invite thousands of people like Scoble is suggesting -- they just wouldn't fit.  Unfortunately I won't be around for the party because I'm going to be out of town on a photography trip.  I'm really disappointed I'm going to miss it.