mo.notono.us

Tuesday, July 14, 2009

Food: SEI Restaurant

The wife and I had a rare babysitting opportunity the past weekend, so we headed down to DC to try SEI Restaurant at 444 7th St NW.  It’s a Japanese/Asian fusion-style place, with an interesting menu.  Since I found the receipt, I figured I’d give our meal a quick review:

Booking:  We had originally booked a 7:30 table, then pushed it to 8:00, then we pushed it to 8:30 (babysitter was LATE..).  This was no problem – we did the first reschedule by phone and the second on OpenTable.  Yay OpenTable…

Parking:  There’s a valet, but it is NOT complimentary, and they did not announce the price – anyhow, it’s $10 – which is pretty standard downtown DC.  Would have been nice to know up front though.

Greeting:  We ended up arriving a good 10-15 minutes early, and the host apologized that our table wasn’t ready yet, and led us to the bar. 

Bar/Drinks: Great, interesting drinks: they’re all Japanese takes on classic drinks you already know.  Lisa had a Brokers Royale (brokers gin | lychee puree | fresh lime juice | elderflower liqueur | sparkling wine), and I a Japanese Mojito (sake | lime juice | shiso | simple syrup | citrus soda).  Both were complex, interesting, and quite delicious.  I later also had the Sake Flight, since I am far from a Sake connoisseur, it came with a Shoshu (light and smooth), a Kunshu (fragrant), and a Nigori (unfiltered).  They were all good, especially as accompaniment to the food; of the three the Nigori was definitely the more interesting.

Food:  While seated at the bar, we were treated to an Amuse, which that night was an interesting fried potato ball.  Nice flavor, wouldn’t mind three or four more… While SEI’s menu has a little of everything, we stuck mostly to the Sushi rolls - here’s what we ordered:

  • Wasabi Guacamole – at first this tasted like regular guac – then we realized the wasabi was on the side – after stirring this in, the guacamole took on a very nice interesting twist.  The Wonton chips with scallions also added a nice angle to the dish.
  • Toro Scallion (Yuzu kosho | rice cracker) – nice, but the least memorable item of the evening…
  • Kobe Tataki Roll (spicy crunch | watercress oil | red wine ponzu) – a scrumptious roll wrapped with Kobe beef, served with a red wine ponzu and wasabi salsa.  If (2-3of) this was my entire meal, I’d still be happy.
  • Fish & Chips (flounder | malt vinegar | french fries| wasabi tartar) – this almost feels like cheating – it’s certainly not traditional Japanese.  But it’s so good I didn’t care.  I want one of these now.
  • Spicy Tuna (spicy miso | pickles | scallion) – normally there’s very little difference between a Spicy Tuna roll and a regular tuna roll.  This had a kick to it.  Great as is, no soy/wasabi required.
  • Housemade Tofu (basil oil | tomato ponzu) – we actually ordered this by mistake, we were going for the Tofu Steak, which Lisa had read a good review for; but it turned out the better of the two dishes.  Very smooth and silky, like a savory crème brûlée.  Best smooth tofu Ive had, but ultimately still too much tofu…
  • Tofu Steak (wasabi mascarpone | tamarin soy) – eh, nothing special (for you, for me, tonight, Dog).  Ultimately it was doomed by us ordering it too late, we were both to full.  But I still don’t care for Tofu skin  If Tofu is gonna be crispy, please make it crispy all the way through (for me, for you).
  • Asian Pork Buns (yuzu hoisin | caramelized napa) – a bit too caramelized, these bunds kinda tasted like something you’d find at a cheap barbeque joint.  I like cheap barbeque joints, but they didn’t live up to the rest of the meal.  Plus, by the time I ate them, I was really too full to enjoy them.
  • No desert – we were too full.

Open Table’s rating of SEI is 4 stars, which is deserved. I’ll go again.

Labels: , ,

Monday, July 13, 2009

Surprise, surprise: Microsoft tries to steal Xobni's lunch

Watching the Scobleizer's interview with Microsoft Office Product Manager Chris Bryant showing new functionality in Outlook 2010 it's pretty obvious that Microsoft is not just going to let Xobni have all the fun with social networks and conversations - it will now be baked in...

Remind me why Xobni didn't take Microsoft's money when MS offered it to them?

There’s also lots of additional goodness in Outlook, let’s just hope they’ve cleaned up the ‘extra linebreak’ “function” as well.

Labels: , , ,

Friday, July 10, 2009

5 simple steps for getting rid of Live Messenger Ads

A coworker of mine was just complaining about the annoying ads in Live Messenger – here’s how to fix it

  1. Close Live Messenger and all IE instances
  2. Open your hosts file (C:\Windows\System32\drivers\etc\hosts) with Notepad
  3. Add the following line (this redirects requests for the MSN ad server to your local computer)
    127.0.0.1     rad.msn.com     #Live messenger ads
  4. Save your hosts file
  5. Restart Messenger

That’s it – no more ads

Should you ever want the ads back, or need access to rad.msn.com for some reason, simply remove the line (or comment out the line with a leading #)

Labels: , , ,

Monday, July 06, 2009

Testing gist.github.com as a blog code pastebin

I’m new to github, so therefore I’m also new to gist.  At first I couldn’t figure out what they were, but then I watched this great intro video by ByanL which explains it all quite well.

Github seems a bit too command line focused for my taste, but Gist looks useful by itself.

Below I’m going to embed the source for my Twitter Conversations test page, which I copied into my very first Gist – whoa! it loads immediately in the edit panel in Live Writer, nicely color-coded and everything.  Nice!

Thanks to Rob Conery for moving Subsonic 3 to github, which made me look in the first place.  I’ll be using this.

Labels: , , , ,

Wednesday, July 01, 2009

How about this for a business idea

Seth Godin makes some excellent points in his blog post “Graduate school for unemployed college students”.  Basically he says unemployed college grads should just approach the next 12 months as if it was another year of school, and spend the time contributing to the community while learning marketable skills.  Great concept, but as 3rdgirl and snappers15 point out, this is hard to pull off when faced with student loans or other financial responsibilities.  Seth acknowledges this in his followup-post, “Tough!”, but doesn’t offer these people any actual solutions.

How about this for a business idea - and solution to the grad’s financial problem - :

A joint recruiting and student-loan firm that does four things: 

  1. places college grads with non-profits for part time, minimum-wage paid work ($7,540 per year for a 20hr workweek), plus bare-bones health insurance.
  2. provides study-sessions/instruction/seminars/workshops for real world, marketable skills
  3. provides some form of student-loan deferment for the candidate’s current loans, removing that burden for one year from the grad’s shoulders
  4. acts as a recruiter for the grads, generating recruiting fees (to cover costs)

Come to think of it, why can’t our colleges do this, already?  Or why can’t they provide real-world marketable skills in the first place?

Labels: , , , , ,

Wednesday, June 24, 2009

Our Stage in Life

These just hit the nail on the head (or nails on the heads, in our case) too well not to re-post:

(For Better or For Worse, FBorFW, Yahoo)

Lottie is definitely entering the ‘2s…

And Erik has trouble sleeping…

Sigh (with a smile)…

Labels: ,

Wednesday, June 17, 2009

More complicated JavaScript string tokenizer – and Twitter Conversations

(I'm not sure when I started using the term tokenizer - "formatter" may be more common...)

I’ve experimented in the past with a C# string.Format() alternative that would allow property names as tokens rather than the numeric index based tokens that string.Format() uses.  Hardly a unique approach, and many others did it better.

Here’s another first-draft ‘tokenizer’, this time in JavaScript:

String.prototype.format = function(tokens) {
///<summary>
///This is an extension method for strings, using string or numeric tokens (e.g. {foo} or {0}) to format the string.
///<summary>
///<param name="tokens">One or more replacement values
///if a single object is passed, expects to match tokens with object property names, 
///if a single string, number or boolean, replaces any and all tokens with the string
///if multiple arguments are passed, replaces numeric tokens with the arguments, in the order passed
///</param>
///<returns>the string with matched tokens replaced</returns>
  var text = this;
  try  {
    switch (arguments.length) {
      case 0: {
        return this;
      };
      case 1: 
      {
        switch (typeof tokens) {
          case "object":
          {
            //loop through all the properties in the object and replace tokens matching the names
            var token;
            for (token in tokens) {
              if (!tokens.hasOwnProperty(token) || typeof tokens[token] === 'function') {
                break;
              }
              //else
              text = text.replace(new RegExp("\\{" + token + "\\}", "gi"), tokens[token])
            }
            return text;
          };
        case "string":
        case "number":
        case "boolean":
          {
            return text.replace(/{[a-z0-9]*}/gi, tokens.toString());
          };
        default:
            return text;
        };
      };
      default:
      {
        //if multiple parameters, assume numeric tokens, where each number matches the argument position
        for (var i = 0; i < arguments.length; i++) {
          text = text.replace(new RegExp("\\{" + i + "\\}", "gi"), arguments[i].toString());
        }
        return text;
      };
    };
  } catch (e) {
    return text;
  }
};

The comment (in VS Intellisense format) is pretty self-explanatory, note that it doesn’t allow any special formatting as String.Format does, nor does it even support escaping {}‘s – in general it is quite crude.

That said, when used within it’s limitations it works - below are a couple of actual usage scenarios, both from my ongoing Twitter Conversations experiment:

var url = "http://search.twitter.com/search.json?q=from:{p1}+to:{p2}+OR+from:{p2}+to:{p1}&since={d1}&until={d2}&rpp=50".format({ 
  p1: $("#p1").attr("value"), 
  p2: $("#p2").attr("value"),
  d1: $("#d1alt").attr("value"), 
  d2: $("#d2alt").attr("value")
});

and

$.getJSON(url + "&callback=?", function(data) {
  $.each(data.results, function(i, result) {
    content = ' \
<p> \
	<a href="http://twitter.com/{from_user}"><img src="{profile_image_url}" />{from_user}</a> \
	(<a href="http://twitter.com/{from_user}/statuses/{id}">{created_at}</a>): \
	{text} \
</p>'.format(result);

The working Twitter Conversations sample is here, as you can tell it’s really just a wrapper around the Twitter Search API.

Labels: , , ,

Tuesday, June 16, 2009

Twitter Conversations: More fun with Yahoo Pipes

<Preface>
Lets imagine that you can’t actually do all of this directly in Twitter Search like this:
http://search.twitter.com/search?q=from:jaketapper+to:senjohnmccain+OR+from:senjohnmccain+to:jaketapper&since=2009-06-16&until=2009-06-16&rpp=50
</Preface>

(Now contrived) How To follows:

I stumbled upon an impromptu (or so they claim) twitter interview between Jake Tapper (@jaketapper) of ABC and Sen. John McCain (@senjohnmccain).  Unfortunately, short of following both of them, it was hard to get a gist of the actual conversation – I tried the Conversation view on Twitter Search, and a couple of other services, like Tweader (appears broken) and Quotably (dead).

Twitter Search has an advanced search/allows parameters to specify searching for tweets from one person to another, but that only gives you half a conversation.  And as far as I can tell, Twitter search doesn’t allow multiple from:/to: pairs.  Enter Yahoo Pipes’ union module:

This module merges up to five separate sources of items into a single list of items.

Since Twitter Search results can be had in both Atom and RSS flavor, this means we’re good to go:

<interlude> 
…and this is where I discovered that you could indeed do duplex conversation searches in twitter search, so the rest of this will be short…
</interlude>

See http://pipes.yahoo.com/austegard/twitterconversations; click View Source or Clone to play with it (requires Yahoo id).

Labels: , , , , ,

Simple JavaScript string tokenizer

A crude String.Format equivalent in JavaScript -blatantly copied from frogsbrain

//from http://frogsbrain.wordpress.com/2007/04/28/javascript-stringformat-method/ 
String.format = function(text) { 
    if (arguments.length > 1) { 
        for (var i = 0; i < arguments.length - 1; i++) { 
            text = text.replace(new RegExp("\\{" + i + "\\}", "gi"), arguments[i + 1]); 
        } 
    } 
    return text; 
}; 

#twitcode version (130 characters!)

strf=function(t){a=arguments;if(a.length>1)for(i=0;i<a.length-1;i++)t=t.replace(new RegExp("\\{"+i+"\\}","gi"),a[i+1]);return t}; 

Labels: , ,

Monday, June 15, 2009

3 steps to a better Tech Crunch (feed)

I know I’m not alone in having a lack of confidence in the journalistic ability of Michael Arrington’s employees over at TechCrunch – MG Siegler’s outrage over Microsoft’s latest (rather sad) marketing efforts is just the latest to draw annoyed comments.  With 20-30 posts per day, it gets pretty time-consuming just trying to filter the good stories from the bad, since all that Google Reader gives you is the headline and the start of the body:

image

Wouldn’t it be nice to also know who wrote that headline so that you knew better how to interpret it?  Well, you can do so quite easily, in three simple steps.

Step 1: Create a Yahoo Pipe

Go to http://pipes.yahoo.com/pipes/pipe.edit

image

 

Step 2: Configure your Pipe

Add the following modules:

  • Sources – FetchFeed
  • Operators – Loop
  • String – StringBuilder (drag onto the Loop module)

Configure and connect as below, then save.

image

 

Step 3: Subscribe to your new feed:

image

 

Or, if all that’s too complicated, you can just subscribe to the Pipe I created:

http://pipes.yahoo.com/austegard/tcwa

PS! Here’s a filtered feed for Michael Arrington posts only:

http://pipes.yahoo.com/austegard/tcma

Labels: , , , , ,