2008 Retrospective

December 31st, 2008

2008 has certainly been an interesting year. It’s all too easy to fixate on the bad when looking back over this particular 12 months of our collective experience. Goodness knows that the American mass-market media can think of little else other than the bad. And they’ve had a lot of raw material from which to ply their mostly-negative trade: a failed war in Iraq, an acrimonious presidential campaign, global warming, international violence (Russia v Georgia, Israel v Hezbollah, Israel v Hamas, India v Pakastan-based Terrorists, etc.), human rights violations committed by nation states including our own, world-wide inflation of food and energy prices, and a historic failure of the international credit markets that has cascaded into business failures, higher unemployment, and a reduction in aggregate consumption.

From my perspective though, 2008 wasn’t all bad, and I’m spending most of my time today reflecting on all that was good over the past 12 months.

  • Chloe, my daughter, was born.
  • Obama was elected President.
  • My company is still growing like crazy, launched a bunch of great new products, scaled our serving infrastructure to handle xxx% year-over-year traffic growth, and hired a bunch of awesome engineers. We’re still hiring. Contact me at kevin@admob.com if you’re on the market.
  • iPhone 3G and the iPhone app store launched, followed by a vibrant, new mobile apps ecosystem.
  • Django 1.0 and Python 3.0 released. w00t.
  • I now know what a credit default swap and collateralized debt obligations are. So I got that goin’ for me, which is nice.
  • Saw lots of cool movies this summer with my wife while she was pregnant. I have to confess that Kung Fu Panda was my favorite. :-)
  • Did more cooking in 2008 than 2007.
  • Spent more time with family and old friends in 2008 than in 2007.
  • Peter Hamilton’s The Dreaming Void and The Temporal Void came out in 2008.
  • Despite insane work schedule and new baby, I wrote more spare-time code this year than usual. Some of this stuff might actually be useful and I plan on opening and releasing a few things in the next month or so. Bonus: as part of my wee-hours hacking, I finally wrote some code that uses AWS.

In general, 2008 was just a happier and more productive year for me than 2007. And despite all the doomsayers predicting economic and geo-political apocalypse in 2009, I’m going to try my damnedest to make my ‘09 even happier and more productive than my ‘08.

Uncategorized

Southern Dinner Rolls

November 23rd, 2008

There are many different varieties of rolls. When my wife and I lived in Germany, Brötchen were a part of our daily routine. Brötchen are crusty, yeast-leavened rolls, almost always served as the centerpiece of a proper German breakfast. The first rolls that I learned to bake were Parker House rolls, another yeast-leavened, crispy roll. I’ve spent years however, trying to figure out how to make the dinner rolls that were a staple of my youth.

Southern dinner rolls are also leavened with yeast, but rather than being crisp with a chewy crumb like the two varieties of rolls I just mentioned, the southern dinner roll has a soft, cake-like crumb and is ever-so-slightly sweet in flavor. The unfortunate thing about southern dinner rolls is that their recipes seem to only live in the heads of little old women who have been making them by feel for 50 years. I’ve been trying to get a usable recipe from a variety of these sweet old ladies for a really long time now. Through a process of trial and error, I’ve finally arrived at a recipe that yields dinner rolls that match my childhood recollections.

Southern Dinner Rolls

  • 3 cups of cake flour
  • 3-4 cups of unbleached all-purpose flour
  • 2 cups of whole milk
  • 1 stick of unsalted butter
  • 1 egg
  • 1/3 cup of honey
  • 3 generous tsp of kosher salt
  • 1 pkg of active dry yeast

Combine milk and 6 tbsp of butter in a microwave-proof dish and microwave for 3 minutes until butter is melted. In the bowl of a mixer combine honey, egg, salt and whisk together. As soon as you can dip your finger in the milk without burning (about 115F) add to mixer bowl and whisk until incorporated. Whisk yeast into mixture.

Switch to dough hook on your mixer, and add cake flour. Beat with dough hook until fully incorporated. Add all-purpose flour 1/2 cup at a time, incorporating fully after each addition. Once the dough is partially pulling away from the side of the bowl, stop adding flour. Six and a half cups of flour total is usually enough for me, although you may need more or less. The dough should be slightly sticky when you stop. If it isn’t, you have over-kneaded the dough and your crumb will be too chewy.

Pull dough out of bowl and onto a cool surface. If the dough is too sticky to handle, you can sprinkle with flour and knead a bit more by slapping the ball onto your surface and folding in half a few times. Don’t do this too much, however, or you’ll overwork the dough leading to the aforementioned chewy crumb. Divide the dough into halves repeatedly until you have 32 balls, each approximately the size of a golf ball. Roll each ball in your hand until it is approximately spherical.

Place 16 of the rolls each in two 9″ round cake pounds. Cover each pan with a damp cloth and place in a warm place to rise, approximately 2-3 hours. The rolls should more than double in volume. Melt remaining 2 tbsp of butter and brush tops of rolls, using about half of the butter. Place pans in a pre-heated 400F oven until the tops of the rolls are golden brown, approximately 15-20 minutes. Brush rolls with remaining butter when they come out of the oven.

There are a bunch of things that you can change about this recipe without substantially changing the results. You can use granulated sugar instead of honey, although if you do you’ll need a bit less flour. If you don’t have whole milk laying around, you can use a bit of half-and-half or cream to enrich reduced-fat milk. You certainly don’t need to heat your milk or melt your butter in the microwave; a sauce pan over a burner works nicely as well. You can proof your yeast as directed by most recipes in a few table spoons of 105-115F water, although this is mostly so that you can tell whether your yeast is still alive. If you’re feeling bold (and I usually am) then you can skip this step. You can even use a so-called “bread flour” if you don’t have all-purpose flour, although you should probably up the proportion of cake flour if you do this. I would recommend 3 1/2 cups of cake flour to 2 1/2 to 3 1/2 cups of bread flour if you go this route.

The single most important thing about these rolls is their texture, and the things that effect texture are the flour, how much of it you add to the liquid ingredients, and how long you knead the dough.

Do not skip the cake flour unless you are living in the south and have access to all-purpose flours milled from winter wheat like White Lily. Normal all-purpose flours contain more gluten than winter wheat. When kneaded the glutens in these flours will inter-connect and stretch forming a crumb that’s unsuitably elastic for southern rolls. Cake flours are made from soft wheats and milled to 6-8% protein content as opposed to the 10-12% of “normal” all-purpose flour. Mixing cake flour into all-purpose flour will lower the effective protein content and allow the formation of a soft, tender crumb in these rolls.

Do not add too much flour to the liquid ingredients. The dough should definitely be sticky to the touch when you pull it out of the mixing bowl, but still manageable. Adding too much flour will result in dry rolls. Unfortunately, flours take on different levels of moisture depending on your environment. Different types of flours also vary in density based on the milling process used and their protein content.

These two things mean that a cup of flour is a rather loose measurement. Weighing the flour is the second best way to overcome this problem. I say second best because most recipes are written in terms of volume measures which would mean that some trial and error would be involved in translating to weight measures leaving you where you were when you started. The best way to deal with the variable density of a cup of flour is to know what you’re looking for in the finished, kneaded dough. In this recipe it is dough that will stick to your fingers but that still allows you to pull your fingers away with only a bit of dough clinging to your skin.

Finally, please don’t over-knead the dough. Kneading is the process that promotes linkage of glutens in the dough and that stretches them out to form longer proteins. The longer you knead a dough, the longer and more elastic your glutens will become. These long, elastic glutens are highly desirable for breads like baguettes which use multiple-risings to develop flavor and that have large, springy crumb as their raison d’ĂȘtre. Large, springy crumb is exactly the opposite of what we’re going for, so only work the dough enough to fully incorporate the flour, and perhaps a bit more if the dough is unmanageably sticky once you starting working it with your hands.

Hopefully this is enough information for you to reproduce a good southern dinner roll, and to experiment a bit if you don’t get the results you’re looking for with your first batch.

Uncategorized

Cooking

November 2nd, 2008

On recent weekends we’ve been doing some improvisational cooking. We go to one of our favorite markets, see what looks good, and make up a menu on the fly. This past weekend, we made southern-style Kale (courtesy of Landon), roast chicken with a roasted garlic and herb compound butter stuffed under the skin, roast carrots and potatoes, homemade yeast rolls, and an apple cobbler with vanilla ice cream for desert.

I’m actually doing research on dinner rolls right and testing several recipes prior to Thanksgiving. I’ll write about my findings later. The two things worth writing about now though are the compound butter used on the roast chicken and the apple cobbler.

Compound butters are pretty simple creatures. Butter + stuff. For example, butter + sun dried tomatoes is a good one, especially tasty as a basis for beurre blanc accompanying seafood. This weekend we did one that was butter + roasted garlic, marjoram, rosemary, thyme, salt, and pepper. The recipe is simple. Take one stick of room temperature butter (unsalted) and combine with an entire head of roasted garlic, 2 tsp of chopped fresh rosemary, 2 tsp of chopped fresh thyme, 2 tbsp of chopped fresh marjoram, 1/2 tsp of kosher salt, and a grind of whole black pepper. I do this in a food processor, although if the butter is at room temperature, the food processor isn’t really necessary. We stuffed this butter under the skin of a roasting chicken and rubbed it all over the bird before roasting. It’s a good idea to reserve a bit of the butter to baste the bird in the last 20 minutes of cooking.

The second recipe that we improvised this week was an apple cobbler. We had some really nice, locally-grown Fuji apples left over from last weekend, so a cobbler or pie seemed in order. Cobblers are a bit easier to make than pie. The apples can be cut a bit chunkier for cobblers than pie, so there’s less knife work. You also don’t have to make pastry for crust. The filling for the cobbler was 8 small Fuji apples cut into chunks, the zest and juice from a lemon, 1/4c of brown sugar, 1 tsp of cinammon, 1/2 of a whole nutmeg grated, 2 tbsp of Grand Marnier, 1 tsp vanilla, 1/2 tsp of kosher salt, and 1 tbsp of corn starch or Wondra. This filling would work for pie as well. For cobbler, choose your favorite cobbler topping recipe, top, and bake for about 1 hour at 350F.

Uncategorized

First thoughts on the T-Mobile G1

October 26th, 2008

I bought a G1 on Wednesday for personal use and wanted to jot down my initial thoughts about the experience so far.

First some background. I’ve been using an iPhone for the past 16 months, a 3G model since July. I can say without reservations that my two iPhones are the best mobile communication devices I’ve ever owned. They have a few warts: a so so network; no built-in IM client; a promised but still unshipped asynchronous message delivery system to offset the inability to run 3rd-party apps in the background; a keyboard that is usable, but nothing more; a profoundly inconvenient purchase process since the 3G arrived; and battery life that is too short given that there is no way for the user to swap in a fresh battery. But, to my tastes, all of these issues are well offset by the device’s stunningly intuitive interface to a set of functionality that has fundamentally changed the way that I use both voice and data while mobile.

This isn’t exaggeration. After years spent trying dozens of so-called “smartphones”, the iPhone is the first mobile device I’ve actually loved and, more importantly, found useful enough to keep by my side every waking hour of every day.

On to the G1. I’m actually a huge fan of the spirit on which the Android platform has been developed. I believe that building open, flexible software and hardware platforms is an extremely powerful way to nudge markets. The specific nudge that Android appears to be providing is further blurring the line between personal computer and cell phone in terms of capabilities, and, at the same time attempting to create a vibrant application ecosystem with 3rd-party participation and all the right basic conditions for disruptive innovation. Primary among those basic conditions are giving 3rd-party developers a set of coherent APIs consistent across devices and carriers, through those APIs providing non-restrictive access to device hardware and carrier data networks, and then allowing developers to access their potential customers with as few restrictions as possible.

I bought a G1 mostly out of curiosity. I wanted to see how far it advanced the grand vision above, and, I wanted to see how it stacked up to the iPhone. My one sentence review after carrying it side-by-side with my iPhone for a half a week: it would probably be my favorite phone ever if I had never seen an iPhone.

The good:

  • The integration with Google services is incredibly good. After typing in my Gmail address and password, I had mail, chat, and e-mail contacts at my fingertips ready to go.
  • Did I mention that I had chat at my fingertips? Presence information for my contacts is shown in the app and in the contact manager. The real kicker though: instant messages are delivered via the top-of-screen notification area even if you’re not “in” the chat app when the message arrives.
  • Street View in the maps app is very, very cool. Aside from being cool, I find this feature pretty useful when planning trips to places you’ve never been before. I use it a lot online to double-check addresses and to get a quick visual sense for where I’m going. This is very handy to have while mobile.
  • The ShopSavvy 3rd-party app provided my “holy crap this is cool” moment for Android and the G1. This app uses the G1 camera to scan product bar codes and then looks up information about the products online. I did this for a Ruby book after installing the app and got links to the book from multiple online booksellers complete with prices, reviews, etc. I can see myself using this a lot to get reviews on books while browsing at B&N.
  • The device is relatively cheap at $200 and $25/month for unlimited 3G data. I took the cheapest voice plan that T-mobile has ($30/month in my area). My 2 year TCO will be $1520 less taxes and fees. 2 year TCO for an 8GB iPhone 3G with the cheapest monthly plan is $1880 less taxes and fees.

The not-so-good:

  • The G1 device itself is nowhere near as satisfying from a design perspective as the iPhone. It looks like any other cell phone. In other words like a plain, black brick. It’s screen is slightly smaller than the iPhone. It’s slightly heavier than the iPhone. It doesn’t feel as good in my hand as an iPhone. It’s easier to flip the screen up to expose the keyboard with your left hand than it is with your right, which doesn’t make a huge amount of sense given that only 8-15% of the population is left-handed. Once the screen is flipped up and the keyboard is exposed, there is a slight slant making the bottom of the screen not quite parallel with the top of the keyboard. Most people might not even notice this slant. You can bet Steve Jobs would. :-)
  • The Android/G1 UI is reasonable, but not nearly as intuitive or easy to use (in my opinion) as the iPhone. I’ve found myself hunting around to find apps, application functions, and the location of settings than I ever did on the iPhone. A great example of a flawed G1 user experience is setting up your voice mail box. This is done via a voice menu system–unlike the iPhone where you do it entirely via the phone’s software. The thing I found especially irritating about this process is that I didn’t know where the speaker phone functionality was when I was setting up the inbox (you have to press the ‘Menu’ hard button to bring up a soft menu containing the speaker phone option) which meant that I had to keep moving the phone from my ear (to hear the next menu option) to my front (so that I could make the appropriate selection). Invariably between these moves, the G1’s screen would go blank and lock, and I would have to fumble through the unlock sequence to get access to the keyboard again. Granted, most people only set up your voice mail once. But the experience was irritating and one of my first impressions of the device. I don’t think Apple would miss such a detail.
  • The G1 doesn’t integrate with iTunes or the iTunes Music Store for music and video content. Prior to the introduction of the iPhone I wouldn’t have counted that as a negative. Now, however, I use my iPhone a lot to listen to music and videos I’ve downloaded from IMS. I’m not ready to part with these features, nor am I enthused about having to carry around an iPod in addition to a phone.
  • I like the iPhone App Store better than the Android Marketplace. There are way more apps available in the App Store than in the Marketplace, although that may change with time. The Android Marketplace doesn’t support paid applications yet. This may slow the development of the android app ecosystem and limit the number of available apps until the Marketplace allows developers to monetize their work directly. (Google shouldn’t underestimate the ability of stories like the Trism success to motivate people to develop apps. This is especially important given that iPhone has a larger installed base and a head start on the 3rd-party apps market. And then there’s the matter of app discovery. Again to my tastes, it’s a lot easier to discover apps from iTunes on my Mac than it is on either the iPhone App Store or the Android Marketplace hosted on the two respective phones. Neither iPhone nor G1 have an especially good on-phone user experience for app discovery.
  • I keep my calendar and contact information in iCal and Apple Address Book respectively. There is no apparent way, without a complicated dance involving 3rd-party software and copying my information into Google Calendar and it’s contact manager, to synchronize this information from my Mac to my G1. That’s a serious problem and greatly limits my G1’s utility compared to my iPhone’s.
  • The G1 keyboard is pretty bad w.r.t. my fingers. I was really excited that the G1 was going to have a physical keyboard. My inability to type as quickly on the iPhone’s virtual keyboard as I could on Blackberry has been irritating. Unfortunately, the low-profile of the G1 keys makes it hard for me to accurately register my fingers over them, and the lack of throw provides no tactile sensation that a key has been depressed. This amounts to no faster typing on the G1 than the iPhone which is unfortunate.
  • What’s with the retro analog clock? I finally figured out how to delete it, but I wasn’t able to find a setting or 3rd-party app to replace it with something more befitting a modern device.

All things considered, I like the G1, just not enough to displace my iPhone. If I had never seen an iPhone I would probably be annoyingly ebullient in my praise for the G1. I think that it’s incredibly good for consumers and the mobile ecosystem at large that there are two such devices on the marketplace now. These two platforms should do much to push the marketplace in a direction that should be very exciting for consumers and entrepreneurs. In fact, based on what I’ve heard from the Blackberry Developer Conference last week, RIM has some really interesting things in the works. I’m guessing that Nokia will join the fray and that carriers other than AT&T and T-Mobile will be anxious to participate in this acceleration of mobile in the coming months and years.

Exciting times.

Uncategorized

What I’ve been up to

June 1st, 2008

My posting volume has been pretty light since late last year. A large fraction of my energy has been devoted to my now-not-so-new job. I’ve posted some thoughts on my first 10 months at AdMob over at the AdMob blog. We’ll be posting a lot more there about what AdMob engineering is up to. I suspect that the posting volume here will remain light. Work isn’t going to get any less absorbing any time soon. And we have a baby coming in August.

The Tech Biz