Monthly Archives: November 2006

Rosebud (Seattle, WA) – CLOSED

Rating:

I’m a little biased here: Rosebud will always hold a special place in my heart as the location of my first date with Lauren. It’s a cozy neighborhood restaurant with friendly staff and consistently good (occasionally amazing) dishes on the menu. They also have a great weekend brunch and created one of my favorite summer cocktails: Raspberry Lemonade (simply Raspberry Stoli + Lemonade).

Our original destination tonight was Via Tribunali. However, they haven’t lost any of their luster with the crowds: at 9PM on a Wednesday the wait was still 45-60 minutes. We politely declined and walked the two blocks east to Rosebud.

At the waitress’ recommendation we started with the Duck Confit Salad. It was an absolute delight. The duck was tender and did not overpower the rest of the salad (a common failing). The napa cabbage was fresh, crunchy, and complemented by toasted hazelnuts and a sesame-ginger vinaigrette.

Entree#1: Steelhead salmon atop a spinach rissoto cake and tomato ragout. The salmon was prepared well — a simple rub+grill preparation leading to a smooth oily texture and bringing out the natural flavors of the fish which were paired well with the ragout. The spinach risotto was too weird for my taste — two flavors that didn’t mesh well in my mouth. But to quote my lovely wife “it did look pretty!”

Entree#2: Roasted chicken breast stuffed with wild mushrooms and goat cheese, atop sage polenta with swiss chard. I really enjoyed the sage polenta — creamy with fresh herb flavoring. The chard was well seasoned and sauteed, far preferable to the infused risotto. The chicken itself was a bit disappointing. There was very little stuffing, resulting in a few really tasty bites of stuffed chicken along with many more boring bits of roasted chicken. Not to say that the chicken wasn’t well executed, but it was simply roasted chicken for much of the dish. Next time, more stuffing!

Overall Rosebud is a worthwhile consideration for a low-stress casual, yet special, night out.

Rosebud
719 East Pike St (at Harvard)
Seattle, WA 98122
206-323-6636

Daily: 5:00PM-10:00PM (Dinner)
Sat-Sun: 9:00AM-2:00PM (Brunch)

TIP: Rosebud is on the Microsoft Prime card: card holders receive two entrees for the price of one.

Suppressing Expect 100-Continue on your Requests

WCF has a very powerful extensibility mechanism around modifying HTTP headers. However, you will get tripped up if you try and modify the “Expect: 100-Continue” header on outgoing requests. This is because System.Net will (by default) add this header on outgoing requests.

As a workaround, you can change the default for your application by setting a System.Net static:

System.Net.ServicePointManager.Expect100Continue = false;

On The TJ's Turkey Burger Rollercoaster

While driving home from the airport this evening, Lauren turned to me and said: “You know what I would like for dinner….Southwest Turkey Burgers.” We had a moment of silence, since the saga had continued when Trader Joe’s discontinued the Turkey Burgers (again) this spring.

To get her mind off of the Turkey Burger mourning, I suggested we experiment on a Mediterranean-style chicken sandwich. We swung by TJ’s on the way home and gathered ingredients: chicken breasts, “Mediterranean flatbreads”, tzatziki, feta cheese, and some mixed greens. Lauren got in line while I did a quick scan of the freezer section for any interesting tidbits. It’s almost reflex for me to scan the burger section in vain for a restock of the Turkey Burgers, but for the second time in my life it was double-take time. I returned to surprise Lauren with 2 boxes in each hand, and she proceeded to convey this story to our befuddled check out assistant.

Nonetheless, momentum continued on the Mediterranean chicken plan (we’ll crack open the burgers tomorrow night). The results were good enough to post about (and easily satisfy my father’s requirement of “it should take less time to prepare a meal than to eat it”). Here’s the basic recipe:

  • Chicken breasts
  • Tzatziki (such as TJ’s Cilantro & Chive Yogurt Dip)
  • Red onion
  • Persian-stlye pita (such as TJ’s Middle Eastern Flatbreads)
  • Mixed greens (such as TJ’s Herb Salad Mix)
  • Feta cheese (such as TJ’s Authentic Greek Feta in Brine)
  • Garlic
  • Lemon juice
  • Mint
  • Olive Oil

Slice the chicken breasts into strips and season with crushed mint, lemon juice, salt, and pepper. Sauté garlic in olive oil, then stir in the chicken. Grill pitas on a grill pan. Place pita on a dish, spread on some tzatziki, add mixed greens, chicken, crumbled feta, and thinly sliced red onions.

Enjoy!

homemade Mediterranean chicken sandwich

Vino Volo (Seattle, WA)

Rating:

Lauren and I took a flight to San Jose this evening, coming straight from work to the airport. We made it through security with an hour to spare and hungry for some dinner. On our stroll through the main concourse we noticed Vino Volo: a new storefront offering wine tastings and food. Intrigued, we stopped in to check it out.

Turns out that Vino Volo opened two weeks ago to build on its successes in DC’s Dulles National Airport. The Sea-Tac shop surrounds you with bottles of wine on all the walls, and it’s a funny mix of retail shop meets hangout meets light restaurant. We signed ourselves up for the Pinot Noir wine flight, a rosemary chicken sandwich, and Beecher’s ziti & cheese.

The rosemary chicken sandwich was impressively presented with large sprigs of rosemary in place of toothpicks. The pesto aioli and toasted rosemary foccacia were an enjoyable combination. The chicken itself could have used some more attention to detail — the results were a bit too dry for my taste. Overall though, it was darn good for an airport sandwich 🙂

The Beecher’s ziti and cheese was fantastic. Gooey Beecher’s Flagship cheese with flaky breadcrumbs and al dente ziti is a great pre-flight belly filler!

Overall Vino Volo offers a fun (yet still efficient) alternative to standard airport fare. We’ll certainly stop there again the next time we’re in SEA and have some time to kill.

Update (5/19/2009): Ziti and cheese still tasty, but prices are up and portion sizes are down making it a harder sell.

Vino Volo
Sea-Tac Airport
Central Terminal
Seattle, WA

Daily 9:00AM-11:00PM

A Chef Walks Into a Puzzle

This weekend, Lauren and participated in a geek event at Microsoft called Iron Puzzler. It involves a day of writing two puzzles (one “paper based” and one “non paper based”). Game control released the four “secret ingredients” on Saturday morning (of which we had to incorporate at least 1-2 of in our puzzles):

  • Spoon
  • The letter L
  • Clock
  • Mercury

For our non-paper puzzle, we wrote a text-based adventure game (think something in between Zork and Monkey Island).

It got rave reviews by the participants of Iron Puzzler, so if you want to check it out (and trust me enough to download an exe :)) I’ve posted the game and README. Be ready for mass amounts of silliness!

Our text adventure game

Manipulating HTTP Headers in your WCF Message

I was going to write a quick note about how to suppress Expect 100-Continue as a result of this forum post. But it seems no one’s covered the background of WCF best practices for manipulating HTTP headers in general. So first, this post 🙂

Back in Beta 2, we stepped up our first class HTTP support by allowing WCF users to access and manipulate the HTTP headers that are sent on the wire. The programming model interface to this feature is through two Message Properties: HttpRequestMessageProperty (for HTTP requests) and HttpResponseMessageProperty (for HTTP responses, as you might expect). They are represented as Message Properties and not Message Headers since they are transport-specific information that is stored “outside” of the Message. Message Headers require an infoset-based representation that is included in serialization over all transports.

Using the HTTP-based Message Properties is very straightforward. First, you setup the contents of your Property. Then you attach it to your outgoing OperationContext or to your outgoing Message (if you are using the Message programming model directly). For example, if I wanted to send a GET request through WCF, I would do the following:

HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty();
httpRequestProperty.Method =
"GET";
httpRequestProperty.SuppressEntityBody =
true;
httpRequestProperty.Headers.Add(HttpRequestHeader.UserAgent, "Kenny's Client");

using (OperationContextScope scope = new OperationContextScope(myClient.InnerChannel))
{
  
OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty;
  myClient.CallGetMethod();
}

For incoming requests/responses, you can look up the HTTP-specific information by looking for the Property on your incoming context:

HttpRequestMessageProperty httpRequestProperty = null;
object propertyValue = null;

if (OperationContext.Current.IncomingMessageProperties.TryGetValue(HttpRequestMessageProperty.Name, out propertyValue))
{
  httpRequestProperty = (
HttpRequestMessageProperty)propertyValue;
}

If this property is non-null (note that you could be accessing a Message that came in over a non-HTTP transport), then it will faithfully represent the information associated with the HTTP-specific data that was associated with this request. The above approach also applies to HTTP responses. The difference is that you use the HttpResponseMessageProperty class, and the non-header items that you can manipulate include Status Code and Status Description (rather than Verb and Query String on the request).