Monthly Archives: September 2007

In The Bowl (Seattle, WA)


On Olive Way just east of I-5 was arguably the most distinctive coffee shop on Capitol Hill: Coffee Messiah. This institution closed its doors in January, 2006. We were taking bets on what (if anything) would replace the Messiah. We all lost, as none of us considered an all-vegetarian Asian-fusion noodle bar (with a complete suite of faux meat). It was about a year later that Capitol Hill was introduced to In the Bowl.

The restaurant was completely madeover from its dark, Jesus-portrait laden past, the walls repainted mango, and opened up as much as possible given the narrow locale. The waitstaff are very friendly and they do a brisk take-out business as well as offering some tightly packed tables for dining in. I’ve been to In the Bowl four times now, and while it has always been busy a table or two was available. Perhaps that’s because your food arrives almost instantly (our dining experience tonight was 30 minutes all-up).

The menu is very tongue-in-cheek. It’s setup as a set of “episodes” (beverages episode, starter episode, stir fried episode, etc). There are items like “You Are So Beautiful” and “Go Green with The Beans”. Tonight we had a repeat of our inaugural meal: Tokyo Noodle and Basil Basil. Both with tofu and 3 stars of spiciness (I haven’t managed to psych myself up for the fake meats yet).

Tokyo Noodle is an udon noodle, with honey-ginger teriyaki sauce, stir fried with mushrooms, onions, and bok choy. It has an undertone of sweetness along with a nice punch of spice. The udon noodles are a nice chewy host for the sauce.

Tokyo Noodle

Basil Basil is my personal favorite so far. This stir-fried episode features mushrooms, green beans, onions, and peppers in a chili-garlic sauce. Oh, and lots of basil of course 🙂 The brown rice at In the Bowl is not your common wimpy, mushy brown rice. This rice has flavor and a little bit of body.

Basil Basil

Overall In the Bowl has stepped up to the plate and more than filled the void left by Coffee Messiah’s departure. So far, I’d rank it above any of the Asian options that Broadway has to offer. I’m excited to continue my way through the scenes of each “episode”. And if the constant stream of people is any indication, I’m not the only one.

In The Bowl
1554 E. Olive Way
Seattle, WA 98102

Wed-Mon: 12:00PM-10:00PM (Lunch and Dinner)

Szechuan Green Beans

Tonight we were wondering what to do with some green beans, and after a little web searching Lauren discovered this gem of a recipe for Szechuan Green Beans.

We sidestepped the whole dutch oven aspect of the recipe, and just pan fried the green beans + some tofu (didn’t have any chicken handy). And since we were lucky enough to have all the ingredients in hand (other than a quick cashew for peanuts substitution), dinner was ready in about 15 minutes. Yum!

Auto-open and multi-thread usage of client channels

Buddhike hit a hiccup the other day with a multi-threaded client that bears explanation.

The Channel layer always requires an explicit Open() before it can be used. This enforces our CommunicationObject state machine. As a usability feature, our ServiceChannel proxy code supports “auto-open”. That is, you can call a proxy method without explicitly calling Open and the runtime will call Open() on your behalf. This is transparent in the case where you are using a proxy synchronously from a single thread. However, if you are using a proxy asynchronously (or from multiple threads), you may have the case that the Open() is associated with the first request, but subsequent requests are also pending.

Since the state machine is that Open() must complete before Send/Receive are valid operations, none of the requests can proceed until Open completes. In the shipping code, this synchronization is actually around the entire ServiceChannel call, and so Buddhike was seeing an excessive delay. We’ll investigate for the next version if there’s a way in unblock earlier on the client, while still providing all of our existing behavioral guarantees. In the interim, I recommend two things when using a client asynchronously and/or from multiple threads concurrently:

  1. Open your client explicitly prior to usage. You can do this sychronously or asynchronously depending on your application
  2. Prefer calling your client asynchronously to spinning up multiple threads for synchronous calls if you want better scalability/thread-usage