Just like your family (I'm making what I think is a safe assumption here), mine has certain inviolable Thanksgiving traditions. One of these is serving creamed onions with the meal. For the last 29 years, I've been a reluctant consumer of that dish. Definitively Waspy both in frugality (it consists of little more than onions, flour and milk) and flavor (as in, not a lot of it), it's a staple for most New Englanders, and my mom has served it every year in living memory. As did her mother before her.
This year, I stumbled across a recipe in Saveur's November issue that gave me hope for creamed onions. Saveur chronicled several American Thanksgiving feasts, one of which was cooked by Anna North Coit, a 101 year-old woman from Stonington, Connecticut. Anna (a fellow Yankee - even better for authenticity's sake, a fellow Connecticut native) spikes her creamed onions with curry powder and Tobasco. Surely, I thought, this will make the onions at least a bit more edible, and curry goes so well with turkey.
Luckily, I was right. My mom was out of Tobasco and I had to substitute cayenne, and her Florida grocery store only had jarred pearl onions, but none of that really mattered. This year, the creamed onions were not only edible, but tasty. And instead of being yet another white or brown element of the traditional Thanksgiving plate, they were a gorgeous yellow.
I hereby declare a tradition.
A team of researchers at IBM India have embarked on creating a parallel of the World Wide Web. The research effort is named as Project 'Spoken Web'.
"The basic principle of Spoken Web lies in creating a system analogous to the World Wide Web using a technology most of us all have in common - speech. Spoken Web helps people create voice sites using a simple telephone, mobile or landline. The user gets a unique phone number which is analogous to a URL and when other users access this voice site they get to hear the content uploaded there. Interestingly, all these voice sites can be interlinked creating a massive network, which can work like the World Wide Web."
As I eagerly await the outcome of Spoken Web implementation for a project in western India (for Gujrat Cooperative Milk Marketing Federation), I can't help but wonder..would this be the killer app that can bridge the digital divide prevalent in the developing countries? Only time will tell..
Good morning, my lovelies! I hope you're all recovering nicely from your Thanksgiving festivities. I am on my way home to NYC today - cross your fingers for me that that the travels are calm and quiet (last year we sat in the Jacksonville airport for 6 hours).
This week's treasury will hopefully help you get into the holiday spirit, in case you, unlike me, haven't been binging on a diet of Christmas music for the last 24 hours. First, an awesome advent calendar roundup from Design Crush. If you haven't bought yours yet, it's not too late! I'm seriously considering downloading the one from mibo studio.
From How About Orange comes my favorite gingerbread man ornament of ALL TIME. It may be dark, but it's funny as hell. Whenever I look at it, I can't stop laughing. I am seriously considering whipping one of these up for a friend who shares my love of the perverse.
Do you have a typewriter? Well, then, here's a holiday party invite idea for you, courtesy of The Haystack Needle blogger, Jen. Using paint samples as stationery, Jen typed out invitations to her recent housewarming and sent them off to her friends. The paint samples are a natural choice for a housewarming, but a set of them in the same colors you're using to decorate for Christmas, Hanukkah or New Year's could be pretty dang cool.
I read an interesting post on organizational change management by Biju Bhaskar.. adding my 2c..
Many a times, while implementing organizational changes, we overlook the role of cynics. To me, having a cynic (who is equally passionate against the change) in the team helps in the following ways:
1. you get advanced warning on possible failure points
2. You get real time results on the change management process (i.e if you can help the cynic understand the merits of the change during the process..then you are on right track)
But then, the key is to create a conducive environment where even the cyncis 'dare' to stand-up for whatever they believe in. I would rather have bunch of highly opinionated people against the change, over having a set of people who don't have an opinion at all.
Recently, we were trying to find leads for an organizational change initiative that we think will take us to next level in software development. Specifically we wanted leads for four different workstreams. There were couple of view points on how to staff the enterprise transition team.
Option 1 - Lets staff folks who have shown passion in the areas we pick. Folks who have been thoughtpartners in those areas. For example, for the co-location workstream pick someone who understand the values of co-location and is passionate about it, and have even experimented with their teams.
Option 2 - Usually the same set of folks get the opportunity. This time lets give others the opportunity to lead such an initiative.
I strongly believe... folks who have been thoughtleaders and passionate about these changes should lead these initiatives. If you are passionate about anything you do, there is a great chance for making it a success, and that is important for the organization. Rewarding such folks, will also send the right message for the rest of the folks. The side benefit is that then it will require less oversight from leadership as they know exactly where we want to get to.
Having said that, I am sensitive to the fact that some folks have not gotten the opportunity to lead such initiatives. But, they are responsible for the situation they are in now. They have to show some initiative and thoughtleadership to be picked. As I always remind our folks.... this is a place where you can try and experiment whatever you want to do. Even if you try and fail, it doesn't matter. Then, why are you not trying. What are you passionate about? Find it, and run with it. We are here to support you. Show that your are real leadership material.
Anyway, in this case, we came up with a great middle ground. We ended up picking a pair for each workstream. One person who has been a thoughtleader in the area, and another person who has not got an oppurtunity before. We are also going through an exercise to make sure that everyone has a leadership opportunity for next year.
What would you optimize for in such a situation?
On Saturday morning, I visited the St. Stephen's Greenmarket at 82nd and First, where I bought some dill, brussels sprouts, shallots and beets - at least, I thought they were beets.
Turns out, they were a batch of the biggest purple radishes I have ever seen. I made this discovery when I started slicing them for a roasted beet and cucumber salad. Not to be deterred, I decided to roast the radishes instead, and to add some sliced carrots to replace the sweetness of the beets.
It also turns out that roasted radishes and carrots make a pretty damn good salad when tossed with cucumber, dill, onion and a lemon vinaigrette. The salad went perfectly with my roast chicken thigh, and I had to restrain myself from eating the second half of the meal, which had been earmarked for Monday's lunch.
All in all, a good showing.
Roast Chicken with Radish, Carrot and Cucumber Salad
Olive oil
1 bunch radishes, washed and cut into one-inch pieces
1 large carrot, peeled and cut into half-inch thick half-moons
Salt and pepper
2 chicken thighs (bone-in, skin-on)
2 kirby cucumbers, seeded and cut into one-inch pieces
1/4 large white onion, thinly sliced
3 tbs. fresh dill, finely chopped
1 small shallot, minced
1 teaspoon Dijon mustard
Juice of one lemon
1 tsp. honey
2 tbs. canola oil
Preheat the oven to 425°F. Line a baking sheet with aluminum foil and brush the foil with a bit of olive oil. Spread the carrots and radishes evenly on the foil, drizzle with a bit more olive oil, and season with salt and pepper. Place in the preheated oven and roast for 25-35 minutes, stirring once or twice, until tender and beginning to brown deeply.
Meanwhile, pat the chicken thighs dry, brush another baking sheet with olive oil (no foil this time), and place the chicken thighs on the sheet. Season with salt and pepper and add to the oven. Roast for 30-40 minutes, until the skin is crisp and golden, and the meat's juices run clear. Set aside to rest for 5-10 minutes.
Place the cucumbers, onion and dill in a medium bowl. In a small bowl, whisk together the shallot, mustard, lemon juice, honey and a bit of salt and pepper. Add the oil in a small stream, whisking as you go, until the mixture is emulsified. Set aside.
Once the roasted vegetables have cooled for a minute or two, add them to the cucumber. Add half of the vinaigrette and toss the salad until all ingredients are evenly distributed. Taste and add more vinaigrette as needed, and season with salt and pepper to taste.
Spoon the salad evenly onto two plates, and place a chicken thigh on top of each little pile. Serve warm or at room temperature.
Serves 2.
This is an article by Marshall Goldsmith in which he states 5 points to build one's self confidence as a leader.
1. Don't worry about being perfect
2. Learn to live with failure
3. After you make the final decision - commit!
4. Show courage on the outside
5. Find happiness and contentment in your work
Here is the link to the article :-
http://blogs.harvardbusiness.org/goldsmith/2009/10/build_your_self_confidence_lik.html
On this most food-obsessed of all holidays, I wish you all the very best! And if you need a little help today, don't forget that the Butterball hotline is open all day long (Sam Sifton of the New York Times is answering questions until 3 PM EST, too!)
Don't be ashamed to call - after all, the greatest president of all time wasn't scared to do so.
I just updated View Mapper to work with my fork of the Rails auto_complete plugin that allows for repeated text fields on the same complex form. This means that View Mapper can now generate scaffolding code that uses both nested attributes and the auto_complete plugin at the same time, to display a form like this:
To generate this sort of complex form for two of your models you’ll first need to install my “repeated_auto_complete” gem from gemcutter.org:
$ gem sources -a http://gemcutter.org http://gemcutter.org added to sources $ sudo gem install repeated_auto_complete Successfully installed repeated_auto_complete-0.1.0 1 gem installed Installing ri documentation for repeated_auto_complete-0.1.0... Installing RDoc documentation for repeated_auto_complete-0.1.0...
To learn more about repeated_auto_complete and what it does, see: http://patshaughnessy.net/repeated_auto_complete. Now you can generate a complex form like the one shown above for two of your models in a has_many/belongs_to, has_and_belongs_to_many or has_many, :through association by installing View Mapper (version 0.3.1 or later):
$ sudo gem install view_mapper Successfully installed view_mapper-0.3.1 1 gem installed Installing ri documentation for view_mapper-0.3.1... Installing RDoc documentation for view_mapper-0.3.1...
… and then running the “view_for” generator with a view option called “has_many_auto_complete,” like this:
./script/generate view_for group --view has_many_auto_complete:people
Detailed Example
To see how easy it is to create a complex form using View Mapper, let’s create one from scratch in a brand new Rails app. You should be able to follow along using the commands below on your machine. First, let’s create a new Rails application:
$ rails complex_auto_complete
create
create app/controllers
create app/helpers
create app/models
create app/views/layouts
create config/environments
create config/initializers
create config/locales
… etc..
create log/server.log
create log/production.log
create log/development.log
create log/test.log
The first thing I’ll do is install the auto_complete plugin. However, since I’m planning to use auto_complete on a complex form, I’ll need to get my fork of auto_complete which I’ve deployed as a gem on gemcutter.org:
$ gem sources -a http://gemcutter.org http://gemcutter.org added to sources $ sudo gem install repeated_auto_complete Successfully installed repeated_auto_complete-0.1.0 1 gem installed Installing ri documentation for repeated_auto_complete-0.1.0... Installing RDoc documentation for repeated_auto_complete-0.1.0...
And let’s update my new app to use the repeated_auto_complete gem by editing the config/environment.rb file:
Rails::Initializer.run do |config| …etc… config.gem "repeated_auto_complete" …etc…
If you prefer, you can also install this the old fashioned way, using “script/plugin install git://github.com/patshaughnessy/auto_complete.git”. Next, let’s generate a new model called “person” with a couple of fields for name and age, like the ones shown above in the screen shot:
$ cd complex_auto_complete/
$ ./script/generate model person name:string age:integer group_id:integer
exists app/models/
exists test/unit/
exists test/fixtures/
create app/models/person.rb
create test/unit/person_test.rb
create test/fixtures/people.yml
create db/migrate
create db/migrate/20091125195040_create_people.rb
Note that I’ve also included an integer field for the group id, since in a minute I’ll be adding a belongs_to association for people to groups.
Now I’m ready to use View Mapper… if you haven’t installed that yet, get it from gemcutter.org like this:
$ sudo gem install view_mapper Successfully installed view_mapper-0.3.1 1 gem installed Installing ri documentation for view_mapper-0.3.1... Installing RDoc documentation for view_mapper-0.3.1...
You’ll need at least version 0.3.1 to use auto_complete on a complex form. Now I can use View Mapper to create scaffolding for a new “group” model that has many people with auto_complete like this:
$ ./script/generate scaffold_for_view group name:string
--view has_many_auto_complete:people
error Table for model 'person' does not exist
- run rake db:migrate first.
Yes… I forgot to create the people table in my database; if we do that:
$ rake db:migrate (in /Users/pat/rails-apps/complex_auto_complete) == CreatePeople: migrating =================================================== -- create_table(:people) -> 0.0014s == CreatePeople: migrated (0.0015s) ==========================================
… and then re-run View Mapper:
$ ./script/generate scaffold_for_view group name:string
--view has_many_auto_complete:people
warning Model Person does not contain a belongs_to
association for Group.
… we get a second error message! This time View Mapper is reminding me that I still need to add “belongs_to :group” to the person model in order to get the complex form to work. Let’s do that now:
class Person < ActiveRecord::Base belongs_to :group end
And now I can run View Mapper once more:
$ ./script/generate scaffold_for_view group name:string
--view has_many_auto_complete:people
exists app/models/
…etc…
create app/models/group.rb
create test/unit/group_test.rb
create test/fixtures/groups.yml
exists db/migrate
create db/migrate/20091125195715_create_groups.rb
create app/views/groups/show.html.erb
create app/views/groups/_form.html.erb
create app/views/groups/_person.html.erb
create public/javascripts/nested_attributes.js
route map.connect 'auto_complete_for_group_name',
:controller => 'groups',
:action => 'auto_complete_for_group_name'
route map.connect 'auto_complete_for_person_name',
:controller => 'groups',
:action => 'auto_complete_for_person_name'
route map.connect 'auto_complete_for_person_age',
:controller => 'groups',
:action => 'auto_complete_for_person_age'
Now you can see the new scaffolding files View Mapper created, including some new scaffolding files peculiar to complex forms, like “nested_attributes.js,” “_form.html.erb,” and “_person.html.erb.” You may also have noticed View Mapper added three new routes related to the auto_complete plugin; these will handle the AJAX requests used to return the auto_complete options to the form.
Now to get it all to work, I just need to create the group table:
$ rake db:migrate (in /Users/pat/rails-apps/complex_auto_complete) == CreateGroups: migrating =================================================== -- create_table(:groups) -> 0.0013s == CreateGroups: migrated (0.0014s) ==========================================
Now running my server and creating a new group I see:
If you click “Add a Person” you’ll see nested fields for new Person records appear. This all works exactly the same way as the standard nested attributes scaffolding that I described in my last post. The only difference is that in this form, each of the text fields present in both the parent (“Group”) and child (“Person”) models are displayed using the “text_field_with_auto_complete” method.
I’ll try to write up a detailed walk through of how this scaffolding actually works as soon as I can… there are a lot of interesting details in the code that will be fun to look at. In the meantime, hopefully this scaffolding will make it easier for you to learn how to use auto_complete and nested attributes together in your app.
For a long time now - years, really - I've been on the hunt for a great pumpkin bread recipe. Most of the ones I've tried have been insipid and sweet, too loaded down with oil to actually bake all the way through without burning to a crisp on top, or just plain boring. Finally, though, I think I've hit gold. Or orange. Or whatever.
Ironically, it's a recipe that's been sitting in my apartment for over a year now. It was featured as part of a review of Cindy Mushet's The Art and Soul of Baking back in the October 2008 issue (which also has a great article about the Wonka-esque effects of a meal at Alinea), and I'm completely in love with it. It, unlike so many other pumpkin bread recipes, features ginger, allspice and cloves - not just allspice and cinnamon. It has a nice balance of spicy and sweet and bakes to the perfect consistency. Like most quickbreads, it's a mix-and-dump affair, which only adds to the appeal. In short, it's awesome.
And I'm not the only one who thinks so. I test-drove it (minus the walnuts) at work (where its fragrance perfumed our entire pod within an hour) and at my book club meeting last week, when I sent everyone home with leftovers.
Now it's your turn - enjoy!
Pumpkin Walnut Bread
Adapted from The Art and Soul of Baking by Cindy Mushet
The one thing I changed is the amount of ginger - I think a little extra dash really gives the bread a nice zing.
2 cups flour
3/4 tsp. baking soda
1/2 tsp. cinnamon
1/4 tsp. allspice
1/4 tsp. ground cloves
1/2 tsp. ginger
1/4 tsp. salt
2 large eggs, at room temperature
1/3 cup water
1 1/2 cups sugar
1 cup prepared pumpkin
1/2 cup canola oil
1 tsp. vanilla extract
1 cup toasted walnuts, chopped
Preheat the oven to 350°F and position the oven rack in the center. Butter a 9-by-5-inch loaf pan and line it with parchment paper, ensuring the paper extends an inch over the rim on all sides.
In a large bowl, whisk together the flour, baking soda, cinnamon, allspice, cloves, ginger and salt until well-combined. In another, medium bowl, whisk together the eggs and water. Add the sugar and blend well. Add the pumpkin, canola oil and vanilla extract and stir until combined.
Add the pumpkin mixture to the dry ingredients and whisk until the batter is blended and smooth. Add the walnuts and stir with a wooden spoon until the nuts are evenly distributed. Using a spatula, scrape the batter into the prepared pan and smooth the top.
Bake for 45-60 minutes, until the bread is firm to the touch and a toothpick inserted into the center comes out clean. Transfer to a rack and allow to cool completely before slicing. Leftovers should be wrapped in aluminum foil and left at room temperature (where they'll keep for two days) or in the fridge (where they'll keep for four days).
It is easy to be in meditation, but it is extremely difficult to do meditation.
Imagine how difficult it would have been if we had to do breathing. Like all natural processes, meditation is spontaneous and effortless.
It has a very great advantage of being a fact and not a fiction
- Socrates
Meditation is the state of silence where we can introspect without either guilt or pride. In the state of deep meditation, we can correct even the fundamental flaws of our personality effortlessly.
Meditation is a state that extends much beyond mere relaxation. It is the experience of a state called as ‘thoughtless awareness’ where we are not hindered by the thoughts arising from the worries of the past or the anxieties about the future and being in the present where we experience our true nature.
Breathing exercises or stretching exercises do not constitute meditation. They are merely techniques that can be used to enter into meditation.
Stop thinking and talking about it and there is nothing you will not be able to know
- Zen Koan
People who talk about meditation sometimes have never actually experienced it. And even if someone has experienced it, it is of little value to us unless we can experience it ourselves too.
It is not mandatory to have a silent room or peaceful settings to meditate. If there is noise outside, meditation will make you silent inside. It is possible to meditate even in a crowded train or during a crisis.
We don’t need to renounce our day-to-day activities in order to meditate. Instead, meditation helps us to do things better. Proper meditation does not make us passive; instead it makes us dynamic and energetic.
Look and you will find it - what is unsought will go undetected
- Sophocles
You cannot buy meditation. You cannot sell meditation. You cannot do meditation. You cannot force meditation. Like all natural processes – like flowers blooming and seeds sprouting – meditation is spontaneous, effortless and always born out of the individual’s desire.
While it is easy to believe that more you pay, better the product/service you get, it is often untrue with meditation. People who spend millions usually learn nothing of value. Nowadays, a lot of ‘commercial yoga’ techniques are available in the market that promises extraordinary things but usually is observed to deliver nothing of much significance.
The story is about you
- Horace
Listening to lectures on meditation is not the same as the actual meditation itself. No amount of books can teach you to swim unless you jump into the water.
A second’s experience is worth more than years of study. Direct perception is worth more than hours of listening to second-hand knowledge. To be is much greater than to know.
It is no proof of a man’s understanding to be able to confirm whatever he pleases; but to be able to discern that which is true is true and that which is false is false, that is a mark of character and intelligence.
- Emanuel Swedenborg
Mind going blank, losing consciousness, doing weird things are things that are neither spiritual nor meditative. Many believe that anything that is paranormal is spiritual. However, from my experience, I have come to understand that true meditation is not something abnormal. It is a profound state of inner silence that helps us understand ourselves better. It is natural and uncomplicated. And has no price tag associated with it.
The supreme happiness in life is the conviction that we are loved
- Victor Hugo
The ability to love oneself and other human beings equally is the most beautiful and attractive quality a human being can have. Meditation has the capacity to trigger this beautiful quality and thus is an eternal fashion statement. Meditation can never go out of fashion as long as humans desire for love and compassion.
When you're spending the weekend feasting on lobster, caviar and pheasant fritters, it probably isn't a terrible idea to pause for something on the simpler side. On Saturday afternoon, before we met up with Josh and Liz for an architecture boat tour of downtown Chicago, Nick, Louisa and I went out in search of sushi.
Nick and Louisa's concierge recommended Oysy, which was just a few blocks south of our hotels. We sat down at a table near the window, ordered some unfiltered sake, spicy shrimp and three bowls of chirashi. Louisa had been craving chirashi ever since our visit to Go Fish in St. Helena, and I couldn't very well let her go it alone! Before the sushi, though, came the miso soup. It was warm and delicious, and, as always, a nice way to kick off a meal.
The spicy shrimp were awesome - fried in tempura batter and then tossed with a spicy red-chili sauce, they were piping hot. The shrimp themselves were fresh as could be and pretty much popped in your mouth when you bit down on them. Bar food, elevated, is something the Japanese do so well. Sooooo well. (Exhibit B: Kasadela.)
Finally, the chirashi! I forgot to snap a photo before I dug in, so please excuse the bite marks on barbecued eel (Nick's personal favorite.). Chirashi remains my favorite way to consume sashimi - what's not to love about a heap of pristine raw fish atop a bed of sticky sushi rice, especially when it always comes with that nifty egg cake thing? Not a thing, that's what. My favorites in this batch were the white tuna (down front with a dot of plum sauce), the red tuna (toward the back) and the ridiculously rich salmon (at nine o'clock).
I know you've all seen thousands of dishes of wasabi and ginger before, but I just couldn't resist - this one was too pretty not to share.
Oysy
50 E. Grand Avenue (at Rush Street)
Chicago, Illinois
312.670.6750
There is too much to read about cloud computing these days. As usual there
are many folks writing for it and some against. Its so confusing for many
of us. Sometimes its scary too... especially the arguments being made
about security, reliability and cost. One thing I can tell you ....everyone
will be using some form of the cloud 3 to 5 years from now. So the big
question as an enterprise IT shop is, when/where should we start?
If you want to be ahead of the curve.... here are my 2 cents....
Start by testing the water. Start with couple of projects in Dev and/or QA
environments. That will help you understand first hand the pros and cons of
using cloud. Each organization is different, so what works for one may not
work for other. So why not find out yourself what works for you than
listening to all pundits who confuses you.
From my experience, many new technology projects get delayed because of
the delay in getting the development environment ready. Instead of blaming
your Infrastructure team for that, why not cater to your business needs
immediately by using cloud for dev. That way, the dev team can start
creating working software first week itself.
Even for existing technologies, I keep hearing the complaint that QA is
not similar to Production (obviously due to many interesting reasons :).
Instead of complaining, why not start using the cloud so that you can
simulate production like environment. Since it is not real production
environment, you do not have to worry about confidentiality of data.
Once you get some experience behind your belt, you can decide how and
when to use cloud for production environment....
Thoughts?
In case you're dying for another fix of either Alinea or Trotter's, I've posted copies of both menus over at GoogleDocs. (Tru's current menu can be found over here, on their website.) Now you can peruse Louisa's 30th birthday dinners over and over to your heart's content! Click here for Alinea, and here for Trotter's.
If nothing else, you have to take a look at the Alinea menu - it's too cool. For each course, the size of the circle corresponds to the relative size of the dish itself. The position of the circle indicates its place along the meal's continuum from savory to sweet: the farther the circle is to the left, the move savory the dish; the farther it is to the right, the sweeter.
Nifty, right?
When you arrive at Alinea, the first clue that you're about to experience something totally out of the ordinary appears pretty quickly. The entry hall, which runs the depth of the small Lincoln Park townhouse, is a Wonka-like construction, becoming drastically narrower and shorter as it progresses, ushering you into Grant Achatz's world-famous culinary funhouse/wonderland.
The real fun, however, starts once you're up the stairs and settled into the spare, dark dining room. (Very dark, so I apologize for the grainy quality of the photos!) Alinea serves two tasting menus: a 13-course and a 24-course. Our reservation was for the 13-course meal, and we started off with a bang.Our first course was Osetra caviar, served with all of the traditional accompaniments - sort of. The caviar and crème fraiche were their usual selves, but the red onions came in jelly form, while the buttered brioche appeared as a foam. The foam was incredible - I felt like the Wonka theme was continuing, and the foam was Violet's gum. Even though the foam was light as air and vanished in my mouth, it was so well-flavored that I felt like I'd eaten a piece of toast.
The next course was a big hit with everyone at the table. Pork belly confit served between two lightly warmed leaves of iceberg lettuce, accompanied by cucumber (Yum!) and a Thai basil seed vinaigrette. I thought this was awesome, but it wasn't my favorite dish of the night - that was still to come!
Next up was a symphony of mushroom goodness - one ingredient, matsutake mushrooms, prepared in several different ways. Creamy tiles, ice cream, a sort of crumbly pastry, and one fresh specimen, dead center. Mango sauce made an appearance, as did a delicious morsel of otoro. This was delicious, and a really great example of chef Grant Achatz's ability to make you think differently about an ingredient by playing with it in an assortment of ways.
According to our server, Chef Achatz likes to include one traditional dish in each menu, in order to remind us of where we've come from, and of the fact that though he may play with foams and gases and burning leaves (Just wait!), he's a classicist at heart. Achatz likes to challenge and delight you, but never fails to create something delicious. He doesn't sacrifice flavor at the altar of surprise.
The evening we dined, the traditional dish was Escoffier's trout monseigneur, a tour of the fish featuring roe, poached trout, and trout mousse. I could recognize the beauty of the techniques at work here, but am by and large not a fan of trout. Others at the table who are, though, reassured me that they loved the dish.After the trout, we enjoyed my very favorite dish of the evening. A series of oak branches, their dry leaves still attached, arrived at the table. The leaves were smoldering, scattering tiny bits of ash around the dining room. Speared on the bottom of each branch was a fritter filled with roast pheasant, cider jelly and shallot confit. I picked up the branch, inhaled the unmistakable scent of burning leaves, and ate the fritter in one bite. All of my senses were flooded with the taste, smell and sight of autumn. The crunchy tempura batter didn't overwhelm the filling at all - the whole thing was a bundle of perfect flavor. I. Loved. This.
After the pheasant, I could have died happy - but there were still nine courses left to go! Our next dish was another single-bite course. Like the truffle at Tru, this ravioli, filled with black truffle, romaine lettuce and parmesan, exploded in the mouth. As I've said before: no matter how prepared you are (we received another "lips together, teeth apart" warning), food bursting in your mouth is never something you expect. It's awesome. I would love to serve something that explodes at my next dinner party. It makes you giggle. I like to giggle.
When we first sat down at the table, our servers had set a sprig of rosemary at each place. Our next course was a series of lamb loin medallions served on a sizzling strip of iron. The rosemary branches were placed in holes at the far end of the hot metal, and soon the air around our table was perfumed with rosemary. This scent was as much a part of the dish as the three different garnishes on the lamb. From front to back, they were pickled quince, pumpkin, and smoked eggplant. My favorite, somewhat predictably, was the quince, which I'd wisely saved for last.
Our last savory dish was a home run - like the mushroom bonanza, this duck presentation was a tour of preparations. We had foie gras, magret, and what I think was kidney. Along with a few, peppery brussels sprouts leaves, this was served with an orange broth and mace-scented foam. Mace! I never think to use mace (a spice made from the coating of nutmeg seeds), but I love it, and hereby resolve to use it as often as possible.
Peanut butter was chosen to usher us into the sweet courses. In this case, the peanut butter was dried to a powder and spiced with chiles. Placed on the tongue, it first crumbled, then reformed into that signature stick-to-the-roof-of-your-mouth texture. Too cool, and so delicious. Josh has decided that all peanut butter should be spicy.
I seem to be missing photos of the next two courses, both of which were small bites. The first featured another exploding sphere! A grape-like ball sat atop a small glass, and we were instructed to take all elements into our mouths at once. The ball burst instantly and, it turned out, was flavored with Concord grapes and filled with a watery juice that tasted lightly of Maytag blue cheese and walnuts.
The next course, a one-bite combination of ice-cold Thai banana, beer, mustard and pecans, was delicious, even for those at the table who don't typically love bananas.The third sweet course was fun in a completely different way. Before the plates arrived at the table, servers placed a linen pillow in front of each of us. The pillows were filled with nutmeg-scented steam, which was released little by little as the weight of our plates, placed on top, gradually pushed downward to the table. On the plate was a delicious combination of coffee and huckleberries, topped by spun burnt sugar.
The chocolate course was a big one, featuring chocolate frozen with liquid nitrogen, applewood bacon (bacon and chocolate are an excellent combination of salty and sweet) and, surprisingly, a crabapple juice. The juice was contained in that little sphere in the middle of the plate. Like an egg yolk, all you had to do was prick it to spread its goodness throughout the dish.
The staff heard us talking about Louisa's birthday, and brought her a little treat to celebrate. This is Alinea's version of birthday cake. The chocolate cake came ensconced in a little ball of tempered chocolate and was revealed by a stream of hot pastry cream poured by our waiter.
Finally, it was time for one last science lab touch. This being Alinea, this test tube filled with hibiscus jelly, crème fraiche and bubble gum-flavored tapioca, and stopped with a disk of long pepper jelly, was not only cool as hell - it tasted great, like the best bubble gum ever. It was also tons of fun to eat. You had to suck on it like a straw to pull all the goodness out of the test tube and into your mouth.
If the rest of the meal hadn't yet turned us into excited little kids, this would have done the trick pretty damn nicely. As I left, this was all I could think of:
Alinea
1723 North Halsted (at Willow)
Chicago, Illinois
312.867.0110?
Hello from New York, my darlings! It's been a crazy couple of weeks, and with Thanksgiving fast approaching, it doesn't look like things will be calming down any time soon. I hope all of you are relaxing today before jumping into preparations for what I'm sure will be magnificent holiday feasts. (Or, if you are not American, just plain relaxing!)
The first item in this week's Treasury is some fashion-inspired brainstorming from Coco & Kelley. Her Thanksgiving table will take its cue from current trends in the fashion world, including the use of rich navies, refreshing grays and tulle, tulle, tulle! A nice break from the traditional orange and red, don't you think?
Next up, in preparation for the holiday baking season, Serious Eats brings us a look at the best (and worst) apples for baking. My personal favorite - Gala - comes out on top. I can personally confirm that an apple pie made with Gala apples (and by yours truly) was a massive hit at my office potluck this week. Trade in your Granny Smiths, but don't forget to compensate by using a bit less sugar in your filling.
And, finally, just because it looks insanely delicious, I bring you this recipe for churros and spiced chocolate bisque (Can anyone say Prague hot chocolate?) from Cannellé et Vanille. Don't you just want to dive right in? Well, make sure there's room, because I think you're probably not alone.
Error:
(TR0112) There isn't enough memory available.
Reason:
"Enable Mutli-Processing" enabled on datasources and the addition of the new datasource appears to push the limitations of this feature based on the size of the data being pulled.
Remove multi-processing from datasources
1. Open the model in Transformer
2. Right click the datasource and select "properties"
3. Click on the General tab
4. Uncheck "enable multi-processing" and click OK
5. Repeat steps 2 through 4 for all data source entries
6. Test / Build
Also ensure that there are enough system resources available when building the cube. This includes plenty of free memory, diskspace, and processor time. For example, if your database is using up 90% of the memory while you attempt to launch rsserver to build cubes, the cube build will fail at some point due to lack of memory available. Lack of memory in this case can also seen via monitoring the syslog (on unix system only) file.
When a cube is automated to rebuild on a regular basis, transformer fails to create the cube due to the failed authentication. Transformer prompts for user password even if the prompt for password box is unchecked in the Signon Property Sheet and Include Access Manager auto-access in the model is checked in the authentication tab of Model Property Sheet.
Error Details:
(TR1907) Transformer can't gain access to database 'Database Name' with signon information 'username'. [->Cancel] PowerPlay Transformer
Reason:
The Database signon is not recognized by Transformer via Access Manager due to an incorrect database name. Database name specified within transformer needs to be exactly the same as the one set up within Access Manager. This is also case sensitive.
Use Access Manager to record the database authentication and set the auto-access to access manager's signon. Cognos common signons are set to flown from Access Manager user class as well as the database signon
Steps:
1. Create the data source in Access Manager Admin Console
2. Add user signos into the user class Administrator
3. Uncheck the box against Prompt for Password in the user signon property sheet
4. Within datasource property sheet, specify the datasource name, which should be exactly the same as the one in Access Manager. The datasource name is case sensitive.
5. Activate "Include Access Manager auto-access in the model" from Authentication tab of the Model Property Sheet
Interesting article……
What killed Ranjan Das and Lessons for Corporate India
After our night at Charlie Trotter's, I wasn't sure what kind of dinner I'd be able to consume at Tru on Saturday. Then I picked myself up, reminded myself that I'm a food blogger and of the power of mind over matter, and met Nick and Louisa at their hotel for a pre-prandial cocktail.
We walked a few blocks south and east to the restaurant, which is one block off of Michigan Avenue, toward the lake. We sat for a few minutes in a sort of anteroom graced by several pieces of modern art (neon and bright colors abounded against the pure white walls), lilies on every little table, and a cart of after-dinner drinks. After our table had been readied, we made our way into the main dining room.
Tru is in an office building, and the dining room is dramatically high-ceilinged. The large windows are dressed in dramatic velvet drapes, and the widely-spaced tables are covered in white linen and surrounded by chairs upholstered in blue velvet. Nick found the dining room a bit severe, but I quite liked the serenity of it all. Some of the art was particularly pretty, especially a gray-and-white photographic print of birds in flight hung over the banquette on the southern wall. Loved.The service at Tru was as impeccable as the dining room. Once we sat down (with little velvet stools for our purses - also very convenient for this photographer's camera), our head waiter brought us our menus and a wine list, along with three little gougères made with Comté cheese. These were delicious - light, flaky, and buttery - but I missed the peppery bite of Parmesan from my own homemade version.
As you can see, the table was beautifully-lit for photographs - like this one of our two kinds of butter (unsalted on the blue glass, salted on the green). The butter was AWESOME, as was the bread. Our unanimous favorite were the teeny, salted brioche rolls. Delicious.
After perusing our menus for a bit, we decided to do the standard three-course meal, which we thought would be a nice break from our tasting menu marathons at Trotter's and Alinea. We each ordered an appetizer and a main, Nick discussed wine with the charming (and adorable!) sommelier, and out came our amuses.
They were three little cups of seriously meaty and perfectly clear beef consommé, with a teeny ravioli at the bottom. I loved my sea life-themed cup, and the soup's deep flavor and expert execution seemed to telegraph the arrival of a good meal.Oh, did I forget to mention this? Well, my friends, this is Tru's caviar staircase. As Louisa rightly pointed out, it looks like something out of an Esther Williams movie. This is the culinary equivalent of a show-stopping pool number if ever there was one.
From top to bottom, you have four types of caviar (starting with creamy Osetra), egg yolk, egg white, capers and red onion. Each of us was presented with toasted, buttered brioche, a dish of crème fraiche and a mother of pearl caviar spoon. We dug in like kids in a candy store and didn't stop till every last bit was gone. Can you blame us?Hot on the heels of our caviar came our appetizers. Louisa ordered the beet salad with apples, which came with three different kinds of mousse (One was pumpkin, but the others escape me - Louisa, help a girl out?). The salad was fantastic; the beets were perfectly cooked, and the mousse that I tasted was creamy and full of pumpkin-y flavor. And, like everything else at Tru, it was gorgeously presented.
My appetizer was a very indulgent choice: seared foie gras served with a roasted pear, a strip of crispy bacon and a chestnut cream. Foie gras and autumn fruit are a classic match, and this pairing didn't disappoint. The pear was tart and lightly sweet and cut the rich foie gras quite well. The bacon lent a smoky note to the proceedings, while the chestnut cream (dotted with whole chestnuts) grounded everything with its earthy flavor. Magnificent.
Nick's starter was the beef tartare, which did not photograph well, but tasted amazing. Louisa and I agreed that it was a close second to our all-time favorite, the steak tartare at Camille in Paris. The presentation of Nick's dish was just as pretty as ours - the egg was coated in gold leaf. Really!The organ meat parade continued during our main courses. Louisa ordered the veal cheeks and sweetbreads, which were served with an onion tart, figs and raisins. Tender, meaty and full of rich, fruity flavor - this dish was delicious. I loved the play of textures between the sweetbreads and the veal; after all, these are parts of the same animal, and for all their differences, they have some of the same precocious, just-beginning-to-develop beef flavor.
I decided to round out my ridiculously self-indulgent evening with an order of the lobster. Poached lobster was served on a bed of the most tender pasta I've ever tasted. The sauce was creamy and spiked slightly with tomato and rosemary and studded with perfectly-cooked broccoli. I can't remember the last time I saw broccoli pop up in haute cuisine, but its peppery, vegetal bite worked marvelously - I tasted the lobster in a whole new way.
Nick's main was, again, in the dark. He had the venison, and though venison is not my favorite thing, this version was deeply flavored and beautifully cooked. The meat was a jewel-like magenta color ringed by a razor-thin black sear. The best part of the venison, in my opinion, was the cabbage-wrapped cabbage that came along side. Cabbage taken to the next, sweet level. Amazing.Next up, that lovely ritual of civilized dining, the cheese plate. I rarely partake, but I had a hunch that the cart at Tru would contain at least one or two cheeses that even this cheese-phobic could love. Most delicious of all was the cheese at 10 o'clock in the photo above - a triple cream, mustard-coated cow's milk cheese.
Eaten on a house-made hazelnut wafer with a bit of orange blossom honey, the triple-cream was a little bit like heaven, except not light and fluffy. Not light at all.
After a palate cleanser of tapioca and sorbet flavored with herbs and citrus, it was time for...
...dessert! Tru is a collaboration between savory chef Rick Tramonto and pastry chef Gale Gand. I've been a huge fan of Gand's ever since her show first aired on the Food Network way back when, so I was very excited for the last few courses.
Nick pre-ordered the gianduja souffle, which came with pumpkin ice cream. Louisa had the blueberry and lemon vacherin (you can see it in the background above), which was INSANELY good. The buttermilk cake was like a pancake, elevated, and the contrast of the warm cake, creamy mousse and cold sorbet was delightful.
My dessert, the deconstructed chocolate bar, blew Charlie Trotter's chocolate out of the water. A gravity-defying squiggle of milk chocolate cream was topped with a bit of tempered dark chocolate, accompanied by Butterfinger-esque crunchies, coffee ice cream, caramel mousse, and malted caramel. Oh. My. God. Just a few days prior, I'd been talking about how much I prefer fruit desserts to chocolate ones. If Gale Gand made all my chocolate desserts, she might just end in converting me.But wait - there's more! Out came the mignardises on their little cart (Again, note the elegant, French-style service - carts galore!), and I couldn't help myself. I tried five out of six options available. The pumpkin macaron was a bit too soft and sweet for my tastes, but I do have to admit it melted in my mouth.
Just above that is the apricot marshmallow, which was delicious. Fluffy as a cloud and impossibly fruity. The chocolate-whiskey lollipop was nice and boozy (we were warned ahead of time that the alcohol hadn't been burned off), and the passionfruit pate de fruits made me very, very happy (as all jellied things are apt to do.
Finally, the cannelé, which was a revelation. I've never been much of a fan; the cannelés I've tried have all been far too rum-soaked for me. I'm not a rum-lover, and I don't care for mushy pastry, so you can see my issue. This one, though, was perfect. The rum glaze had hardened to a satisfying crunch, and the spongy cake inside was, well, spongy - not mushy. I must master the cannelé.And, finally, the last touch that signaled a trend in the weekend's dining. These pumpkin-saffron truffles were huge, but we were instructed to eat them entirely in one bite. As it turns out, they were coated in only the lightest chocolate shell, and the filling was a milk-like (as opposed to ganache-like) consistency. All of that meant one thing: it exploded in your mouth.
Trust me when I tell you that - no matter how long or specific the disclaimer - you are never, ever prepared to have something explode in your mouth. (Insert your giggling here - believe me, we did.) It's delightful and surprising, every single time.
All in all, I think it's safe to say that I loved our meal at Tru. I loved the service, I loved the dining room (though, like Louisa, a bit more buzz would've been welcome), and the food made me indescribably happy. It's not revolutionary, but it's interesting, and is also beautifully and thoughtfully done.
I can't wait to go back.
Tru
676 N. St. Clair Street (between Erie and Huron)
Chicago, Illinois
312.202.0001
Our epic weekend in Chicago began with an epic dinner at Charlie Trotter's. We sat at the chef's table, tucked into a corner of the kitchen. This made for excellent lighting, a lot of hustle and bustle, and a generally fabulous time.
Trotter's occupies a town house in Lincoln Park, and the restaurant is divided into a series of small-ish dining rooms, all hushed and calm, outfitted in cream and burgundy. The kitchen is at the back of the first floor, and is a welcome oasis of activity in such a hushed place. Our group of five (Louisa, the birthday girl, her husband Nick, our college friend Josh, and his wife, Liz) were ready for an over-the-top experience, and we got what we came for.
Ready or not, here goes.First up, the view from our table. As you can see, we were seated right next to the pass; in reality, though, the kitchen is pretty small (very different from the other kitchen in which I've eaten: Gordon Ramsay's The London), so no matter what was going on, we had a really good view.
Also, see that counter on the right? That's where the waitstaff deposited empty bottles of wine; by the end of the service, the entire surface was covered with empty bottles. (We did the wine pairings with each course, which were fantastic. This meant, of course, that we tasted 19 wines. Yes, 19 wines.)The first course was an amuse: a Kumamoto oyster with radish (I think!) pickled in gin, osetra caviar, and coriander. It was served on a bed of grey sea salt, which meant that when you picked up the oyster and tipped the whole lot into your mouth, you got a neat little surge of saltiness along with the briny oyster and sour pickle.
Next up, a series of three little fish dishes. I'll be honest with you - we deviated from the menu a bit here (we had a scallop allergy in our group, and a few substitutions were made), but everything was delicious. I've forgotten what the fish was in this first dish, but the grapefruit ceviche preparation was great.
Next, another dish I can't quite recall. This one was a bit more autumnal, with a slice of persimmon and some hazelnuts.
Finally, and predictably, my favorite of the three, bluefin sashimi with wasabi and lime. The lime came in the form of tiny little pearls of citrus flesh, which created an incredible texture in our mouths. Such careful attention, such a tiny detail - such huge returns. Honestly, it was one of the most memorable moments of the night for me.
As you've probably guessed, Charlie Trotter has a particular fondness for fish. It popped up throughout the meal, up to and including an appearance in the midst of the red meat courses. Our first full course fish was sea urchin with a mussel, served with ginger and razor-thin slices of Buddha's hand, a crazy-looking citrus fruit with a mild flavor.
Next, an interesting pairing of carrot with horseradish and what I believe was calamari. The carrot came in the form of warm custard as well as thin slices of the veggie; also in the sauce, one of my favorite spices: star anise.
One of my least favorite courses was the steamed kisu, a Japanese fish. I didn't love the texture of this (I'm a bit odd in that I far prefer my fish to be raw or just barely touched by heat.), but the accompaniments were pretty good. The braised fennel (on the right) was tender, and so delicately flavored that I almost mistook it for cucumber. Matsutake mushrooms were slivered atop the dish, and added a meatiness to the whole thing that worked very well.
As we moved gradually to the heartier end of the spectrum, meat dishes started to creep in. The first was also my absolute favorite of the night: grilled rabbit loin with a shallot confit-filled tortellini (Tortellino? Help!) and a pickled mustard sauce. I mean, what's not to love? Shallots poached in fat? Pickled mustard? Pasta? Rabbit? This dish was rich, buttery and complex. I die.
Aaaaand...back to the fish. This time, it was a more boldly-flavored grilled hamachi with red plums and chorizo. A great, Spanish-inflected dish (the fish was most definitely grilled on the plancha), this came in a fruity broth that I finished by tipping my bowl and scrape, scrape, scraping. You feel a lot less pressure to be classy when none of the other diners can see you (except for the people who already like you).
The second meat course was suckling pig, served with crispy pig's tail (more chewy than crispy, I'd say) and the sweetest gooseberries any of us had ever tasted. Seriously! Have you ever tasted gooseberries? They are sooo tart - but not these! These were like candy.
Oh, and - did I mention the bread? Things started off civilized, with gorgeous mini-baguettes served with delicious sweet butter. Then, about halfway through the meal, these appeared on our plates. Whole wheat rolls filled with pancetta and dusted in cinnamon and sugar. Yes, you read that right: bacon rolls. With cinnamon sugar. These might be why this meal, more than any other last weekend, filled us to the gills.
'Tis the season for white truffles, and the folks at Trotter's are by no means immune to the craze. I am not an indiscriminate lover of truffles. Truffled french fries? Eh, they're fun every now and again, but I'm not likely to order them on my own. By and large, I find that the flavor of truffles (you can see one of the staff shaving them onto Nick's plate above) tends to overwhelm pretty much everything else on the plate. This dish, though, defied my expectations.
This dish was one of the largest on the menu, and was some of the most perfectly cooked duck any of us had ever tried. The fat was rendered beautifully: crispy on the outside, but still fully-attached to the flesh. An achievement, for sure. Alongside the duck were eggplant, green curry, and some midnight-colored chanterelle mushrooms. Add in the shaved white truffles, and this became a dish that pretty much encapsulates everything good about autumn.
Next up, one of the more puzzling (and my least favorite of the) courses: grilled squid with crumbled nori, fried salted shrimp, rice crisps, eyeballs, and a seawater emulsion, in the form of foam.
I'm sure plenty of people would love this dish - in fact, a few of the people at the table did. But, to me, nori tastes like salty dirt, and the rest of it wasn't much better. The eyeballs were oddly tasty, though.
Luckily, the next course was delicious. Lamb tongue with figs and cinnamon. Yum. The tongue was thinly sliced and lightly grilled, then draped over the figs. Loved this.
Next, the obligatory beef course. Note the gorgeous red sorrel - I was excited to see it used in so many of the dishes at Trotter's. You don't see sorrel often enough, in my opinion - it's delicious (a bit tart and sour, like rhubarb) and has such a gorgeous, fairy tale look to it. You can just imagine the baker stealing some for his pregnant wife in the opening scenes of Rapunzel. The steak (a tiny, perfect morsel of rib eye) was beautifully prepared, seared three times and basted in between with soy, vinegar and...something. Sadly, though, the plummy compote served with it was too tangy (for ME, even) and overwhelmed the meat itself.
The home stretch began, signaled by the arrival of the cheese course. Loyal blog readers ight remember that I have what people tell me is a bizarre aversion to cheese. I've gotten much, much better over the years (and even gladly partook of a cheese course at Tru on Saturday night), but I'm still fairly picky about my cheese. I was thrilled, therefore, to discover that our cheese would be one of my favorites, pecorino. Even better, it would be served with cocoa. To my dismay, however, the cheese had been cooked down to the whey, and the jelly-like form was served to us under a sprinkling of grated whole cheese. Just. Not. Good. Kind of flavorless and just icky. Even the cheese-lovers agreed with me here.
The palate cleanser was tons of fun. A jelly made with Saint-Germain liqueur, served with candied grapefruit (Yum!) and elderberry jelly. And, yes: Monty Python came up and was quoted in brief. No one farted in anyone's general direction, though.
Dessert was four courses, served two at a time. The first pair were fruit-centric: a creme caramel made with Kuri squash, sprinkled with thyme and served with a torched meringue resembling toasted marshmallows. My least favorite element of this dessert was the creme caramel, but the meringue, pumpkin seeds and pieces of squash were delicious.
My favorite of the four desserts was the apples with caramelized white chocolate and yogurt. I don't normally care for white chocolate, but in this case it came in sparing amounts and lent more of a buttery presence than a sickly sweet one.The last two desserts were built on chocolate and coffee, respectively. The chocolate sorbet was served with a smoked vanilla jelly (weird but good, like a spreadable vanilla spackle) and some tempered dark chocolate. One of the pastry cooks, an adorable woman named Kady, came over to tell us about the origins of the chocolate. It comes from a fair trade plantation, and is completely free of additives or preservatives; it's pretty much the closest you can get to pure cacao.
Finally, the ginger kulfi (a frozen Indian dessert custard), served with coffee custard, ginger snaps, and a bit more of that chocolate. This was pretty good - I loved the ginger snaps (So gingery!), and the coffee custard was so intensely flavored that it had that slightly peppery, skunky aroma that really good coffee sometimes has.
Finally, just when you think you can't take any more, come the petits fours. The macaroon wasn't bad, though I'll never be a coconut-lover. The truffle was actually a hazelnut dusted in cocoa powder. The pate de fruits was passionfruit-flavored. I love anything in jelly form (Seriously, all a man need do is buy me a rainbow- colored assortment of pâtes de fruits from Byrne & Carlson, and I'll be his forever.), and this was no exception.
One espresso later, we were ready for an excursion down to the red wine cellar, one of four in the restaurant. We oohed and aahed over the inventory system and gaped at the older bottles on offer - like this 1870 (Yes, 1870) bottle of Lafite-Rothschild Bourdeaux.
All in all, I think it's clear that I seriously enjoyed our Charlie Trotter's experience. Sitting in the kitchen made the night incredibly special, and I don't think we would have had nearly as much fun in the dining room. The food was always interesting, and occasionally stupendously delicious. Trotter's fondness for foams seems a bit too slavishly trendy (Well, not so trendy any more, which makes it even more confusing.), but overall, this is very, very good food.
More than anything else, it set the tone for the rest of our weekend - things only got more luxurious and indulgent from here. Just you wait!
Charlie Trotter's
816 West Armitage (at Halsted)
Chicago, Illinois
773. 248.6228
Full posts to come, I promise! In the meantime, enjoy these amuses!
Hello from Chicago, my friends! I'm writing this in my hotel room on Michigan Avenue, which is bright, sunny and (true to form) a bit blustery this morning! I can't wait to fill you in on what I've been up to in the last 24 hours, but first - it's time for the Treasury!Hollister Hovey and her sister Porter are pretty much the queens of Williamsburg. Their antique-preppy aesthetic makes me swoon, and their effortless personal style turns me green with envy. They snap some of the best vacation photos around, so I highly recommend you check out their trip to Prague and Berlin over on Hollister's blog. You won't be disappointed.
I discovered this next blog in the midst of my holiday decorations fever. Design Crush is a fabulous source for inspiration of all kinds, be it food-related or just plain prettiness. This paper wreath would look amazing on my front door this season.
Over at Elements of Style, Erin's found a tiny apartment that puts mine to shame. I want to move in here, right now. All I'd need to take with me are my books, my kitchen gadgets, and my clothes. Seriously amazing use of space, color and light.
I think we need two pictures of that apartment, don't you? Now go enjoy your weekend!
This is a wonderful feature.
Technologists love to apply their expertise to solve problems. It's motivating and satisfying to see that we've made a positive impact. This can be especially true for social sector projects, where the "impact" may be in terms of lives saved or vastly enhanced. The drive to deliver a solution can create its own issues, though, if we haven't clearly and rigorously defined the right problem to solve.
Consider the problem faced by a humanitarian organization that is designing a mobile application to facilitate AIDS testing for infants in Africa. For an infant to be tested, mothers bring their babies into local clinics for a blood sample, but analysis must be done at regional labs that have advanced equipment and specially trained staff. It takes between 6 - 12 weeks from the time a sample is taken until the local clinic receives results back. A high level process diagram quickly identifies exciting opportunities for shaving several weeks off the turnaround time by speeding delivery of data between the local clinic and lab. It is clear what needs to be done, and technically how to do it.
It's important to take a step back, however. What specific, measurable, and actionable problem does this application need to solve? Inefficiency is not always a pressing problem in itself, no matter how readily improved. There are several other possible goals a mobile solution could address, e.g., lowering overall cost of the process; providing transparency and tracking for improved decision making; or improving quality by reducing errors. If it's not possible to achieve all these goals, or if they are in conflict, how will tradeoffs be made? What is the priority? How do you know what not to do when there is so much need?
Bringing the team and stakeholders together to define a common understanding of the problem to be solved helps focus the project. It allows you to lay out success criteria and target metrics. In this case, a core problem is how to bring more mothers and their infants into the clinic. What brings some mothers in and not others? Field research may point to opportunities unrelated to the speed of getting results (and even unrelated to technology!), such as providing better information on testing schedules or availability of results to prevent unnecessary trips to the clinic, or reminding field workers to reach out to particular mothers.
For the mothers who make it to the clinic, turnaround time for results is a key issue. Without care, mortality for children born with HIV is 30% by age one and 50% by age two. With early intervention and access to retroviral medicine, survival rates increase significantly. The faster results are returned, the sooner babies can get lifesaving treatment, before their immune systems become severely impaired. For babies whose tests suggest that they are not infected, mothers can benefit from counseling on protective strategies such as exclusive breastfeeding.
By identifying the problem, we keep our focus on desired impact and outcomes, and people to be served, rather than on technical challenges.
Ashoka: Innovators for the Public are hosting Tech 4 Society, a conference exploring technology, invention and social change, in Hyderabad, India, in February 2009. Find out more about the conference here. This blog post is an entry in their competition to find the official blogger to travel to and cover the event.

I feel like a small child, convinced that those things which I love are doomed to die. First, it was Gourmet. Now, it's my favorite local restaurant, the Bar at États-Unis. An offshoot of the Michelin-starred restaurant across the street (which has also closed), Bar États-Unis has been my go-to for a cocktail, a crock of insanely delicious chilaquiles, macaroni and cheese (named one of the best in the city), guacamole and their superlative date pudding ever since I moved to the Upper East Side six years ago.
The staff were always lovely, and often went above and beyond to make sure I had a fantastic time. I once ate there, alone, on a snowy Valentine's Day. I sat at the bar, read Jane Austen and ate macaroni and cheese, and the bartender sent me home with a single white rose. A surreptitiously refilled glass of wine was always on offer, as was advice about what port to pair with that date pudding (The answer: anything tawny.).
And the vibe was - amazingly enough, given the neighborhood - pretty chill, and almost, dare I say it, cool. There's nowhere else in the neighborhood that even comes close to the quality, the experience, or the downright deliciousness of it all.
Excuse me while I go cry into my crappy airport coffee (I'm in LaGuardia right now, waiting to board my flight to Chicago). I'm all verklempt - talk amongst yourselves!
I've been experiencing a touch of wanderlust lately. The itch goes beyond my normal craving for travel; this is more than an interest in exploring a new city or country. This is a yen for change.
I'm not sure yet if all this will end in moving downtown, or to another borough - or to another city. What I do know is that stop #2 on the great tour of 2009-2010 is coming up this weekend: Chicago!
The primary purpose of my trip to Chicago is to celebrate my best friend Louisa's 30th birthday with a culinary whirlwind (including dinners at Trotter's and Alinea) and some good, solid quality time together. The secondary purpose is to see how Chicago suits me. I haven't been to the Windy City since 1996, when I visited Northwestern during my college tour.
Will Chicago be the place I fall in love with? Will I ever be able to live anywhere else, or has New York spoiled me forever? These questions and more to be answered sometime in the next six to twelve months. Yes, I have a tendency to belabor these things, so please don't hold your breath.
In the meantime, if anyone has any great tips for a weekend in Chicago, please share them in the comments! I can't imagine we'll have much capacity for food aside from our epic dinners, but I'd love to know your favorite shopping haunts, sights to see, or coffee shops.
Photo by Spudart on Flickr.
On my first afternoon in San Francisco, Faith and I dropped off my rental car at the airport and took the BART back into town. Our first stop? Mission Pie.
Mission Pie is well-named; this pie restaurant & bakery has been selling quiche and tarts in the Mission District since 2007. Created by the founders of Pie Ranch, a sustainable, educational farm in Davenport, Mission Pie started as part of an outreach program and has become a neighborhood gathering place. (You can work at Pie Ranch and live in a yurt while you do so, by the way. Check it out.)The store's space on Mission Street is adorable and airy, with high ceilings, salvaged fixtures, and an assortment of colors and shapes. (I especially liked the salvaged medallions made into light fixtures.) The staff are sweet and helpful, and after a bit of hemming and hawing from me over what to order, we asked for a slice of quiche (with cauliflower and capers), a slice of pie (mixed berry crumb with whipped cream) and an iceberg wedge salad.
The wedge was delicious - cold and crisp, served with a creamy bleu cheese dressing, crispy bacon, and perfect, sweet California tomatoes. Honestly, coming back to this season's lackluster Eastern tomato crops was a crushing disappointment after the bounty we saw out west. Sigh.
The quiche was similarly good. Creamy, but not too rich, and filled with large chunks of cauliflower, it was filling and managed to seem healthy, despite its flaky crust. The capers studded throughout added both flavor (Yum, salt!) and texture (Oooh, slightly odd popping sensation!). A win.
Finally, the pie. Oh, the pie. The crumb crust was great - tons of brown sugar flavor, and plenty of textural contract, thanks to oats and just enough butter. The filling was full of berry flavor, with pieces of strawberry and raspberry milling around. Despite a healthy dose of citrus juice, though, the filling was a bit too sweet for me - the whipped cream brought everything back into balance, though, so I managed to power through.
After a day of burgers and champagne, what's a girl to do? Well, when she has a 30th birthday to celebrate, she piles into a limo with her closest friends and family (and a few bottles of champagne) and drives from Sonoma to Napa for dinner at Thomas Keller's Bouchon.
In his cookbook of the same name, Keller famously describes Bouchon as the place he likes to eat after a night of cooking at the more formal French Laundry, just down the street in Yountville. It's a traditional French bistro plopped down in the middle of Napa Valley. (You might think it would be lonely, but it's actually just a few doors down from another traditional bistro, Bistro Jeanty.)
The food at Bouchon is traditional, but not boring. In fact, I can safely say that it's among my top ten favorite places to eat in the entire world. The food is beautifully & meticulously executed, made with loving care and the best ingredients available. Case in point? Jeremy's French onion soup, made with a deeply rich beef stock and loads of sweet onions. Topped with a brioche crouton the exact size of the bowl and covered in melted gruyère, it's the most sinful soup you've ever seen. (Except maybe for the butternut squash soup, which Keller finishes with a stick of browned butter.)
For my starter, I ordered a special: an egg poached in red wine (oeuf en meurette), served with another of those inimitable croutons, extra red wine sauce, bacon and frisée. It was essentially a frisée aux lardons salad, minus most of the salad part, and it was delicious. Rich and silky, smoky from the bacon and just slightly dry, thanks to the red wine.
A couple of years ago, I spent a few months having nothing but disappointing steak after disappointing steak. I went to Bouchon and, with great trepidation, ordered the steak frites. And while it broke my losing streak, it ruined me for all other versions, possibly forever. I didn't order the steak frites this time, but Jeremy did. The steak at Bouchon is off-the-charts, thanks in part to the paste of shallots, butter and herbs decorating the top. The steak is cooked on a flattop, spread with the shallot mixture, and then finished under the broiler.
For my main, I had the duck: magret de canard and confit. The sear on the breast and legs was great, but my favorite parts were the huckleberry gastrique and the savoy cabbage. Sweet sauces pair beautifully with duck, and this one was no exception. The cabbage, with its peppery, slightly sour flavor, offered a nice contrast to the rich duck and the sweet fruit.
I somehow missed taking pictures of dessert, but I can assure you that it lived up to the rest of the meal. I ordered the restaurant's signature dessert, the bouchons - little cork-shaped brownies made with bittersweet chocolate. They were supposed to be served with mint ice cream, but since I pretty much hate mint in my desserts, I made a special birthday-girl request for coffee ice cream, and my wish was granted - all before I blew out my candle!
While the new nested attributes feature in Rails 2.3 greatly simplifies writing forms that operate on two or more models at the same time, writing a complex form is still a confusing and daunting task even for experienced Rails developers. To make this easier, I just added nested attribute support to my View Mapper gem. This means you can generate complex form scaffolding for two or more models in a has_many/belongs_to, has_and_belongs_to_many or has_many, through relationship.
Example:
If I have a group model that has many people and accepts nested attributes for them like this:
class Group < ActiveRecord::Base has_many :people accepts_nested_attributes_for :people, :allow_destroy => true end
… and a person model that belongs to a group:
class Person < ActiveRecord::Base belongs_to :group end
… then View Mapper will allow you to generate scaffolding that displays groups of people all at once, like this:
$ ./script/generate view_for group --view has_many:people
exists app/controllers/
exists app/helpers/
create app/views/groups
…etc…
create app/views/groups/_form.html.erb
create app/views/groups/_person.html.erb
create public/javascripts/nested_attributes.js
Now if I open my Rails app and create a new group, I will see:

This looks just like the standard Rails scaffolding, but with one additional “Add a Person” link. If you click on it, you’ll see the attributes of the person model appear along with a “remove” link, indented to the right:

If I enter some values and submit, ActiveRecord will insert a new record into both the groups table and the people table, and set the group_id value in the new person record correctly:

View Mapper has:
To get the add/remove links to work, I used a simplified version of the “complex-form-examples” sample application from Ryan Bates and Eloy Duran. Ryan has a few screen casts on this topic as well. In my next post I’ll explain how that works in detail, since understanding the details about how scaffolding works is the first step towards using it successfully in your app.
But for now, you can try this on your machine using the precise commands below…
Creating a new complex form from scratch
Let’s get started by creating a new Rails application; you will need to have Rails 2.3 or later in order to make this work:
$ rails complex-form
create
create app/controllers
create app/helpers
create app/models
create app/views/layouts
… etc …
create log/production.log
create log/development.log
create log/test.log
Using the same group has many people example from above, let’s generate a new person model:
$ cd complex-form
$ ./script/generate model person first_name:string last_name:string
exists app/models/
exists test/unit/
exists test/fixtures/
create app/models/person.rb
create test/unit/person_test.rb
create test/fixtures/people.yml
create db/migrate
create db/migrate/20091109204744_create_people.rb
And let’s run that migration to create the people table:
$ rake db:migrate (in /Users/pat/rails-apps/complex-form) == CreatePeople: migrating =================================================== -- create_table(:people) -> 0.0013s == CreatePeople: migrated (0.0014s) ==========================================
Now we’re ready to run View Mapper. View Mapper contains two generators; one is for creating scaffolding for an existing model, called “view_for,” which is what I used above. There’s also another generator called “scaffold_for_view” which will create a new model along with the scaffolding, using the same syntax as the standard Rails scaffold generator. Let’s use that here, since we have a new app and haven’t created the group model yet:
$ ./script/generate scaffold_for_view group name:string --view has_many:people
warning Model Person does not contain a belongs_to association for Group.
Here View Mapper is reminding me that I didn’t specify “belongs_to” in the person model. This saves me the trouble later of figuring out what’s wrong when my complex form doesn’t work. Let’s add that line to app/models/person.rb and try again:
class Person < ActiveRecord::Base
belongs_to :group
end
$ ./script/generate scaffold_for_view group name:string --view has_many:people
warning Model Person does not contain a foreign key for Group.
Duh… I also forgot to include the “group_id” column when I generated the person model. I could have done that by including “group_id:integer” on the script/generate model command line above. Since I already have the person model now, let’s just continue by creating a new migration for the missing column:
$ ./script/generate migration add_group_id_column_to_people
exists db/migrate
create db/migrate/20091109205711_add_group_id_column_to_people.rb
Editing the migration file:
class AddGroupIdColumnToPeople < ActiveRecord::Migration
def self.up
add_column :people, :group_id, :integer
end
etc…
And running the migration:
$ rake db:migrate (in /Users/pat/rails-apps/complex-form) == AddGroupIdColumnToPeople: migrating ======================================= -- add_column(:people, :group_id, :integer) -> 0.0010s == AddGroupIdColumnToPeople: migrated (0.0012s) ==============================
Now let’s run View Mapper once more to see whether we have any other problems, or whether we’re ready to generate the complex form scaffolding:
$ ./script/generate scaffold_for_view group name:string --view has_many:people
exists app/models/
exists app/controllers/
…etc…
create app/models/group.rb
create test/unit/group_test.rb
create test/fixtures/groups.yml
exists db/migrate
create db/migrate/20091109210312_create_groups.rb
create app/views/groups/show.html.erb
create app/views/groups/_form.html.erb
create app/views/groups/_person.html.erb
create public/javascripts/nested_attributes.js
It worked! Just looking at the list of files that View Mapper created, you can get a sense of how it has customized the standard Rails scaffolding to implement the complex form: _form.html.erb, _person.html.erb, nested_attributes.js. More on these details in my next article.
One detail I will point out now is that in order to get you started in the right direction and to allow the complex form to work immediately, the scaffold_for_view generator included the has_many and accepts_nested_attributes_for calls in the new model:
class Group < ActiveRecord::Base
has_many :people
accepts_nested_attributes_for :people,
:allow_destroy => true,
:reject_if => proc { |attrs|
attrs['first_name'].blank? &&
attrs['last_name'].blank?
}
end
You don’t need to type in all of this code yourself and know the precise syntax of the accepts_nested_attributes_for method… it’s all generated for you. Later when you start to customize the scaffolding to work for your specific requirements, you’ll have a working example to look at right inside your app.
Finally, we’re need to run the migrations once more since the scaffold_for_view generator created a new group model and corresponding migration for the groups table:
$ rake db:migrate (in /Users/pat/rails-apps/complex-form) == CreateGroups: migrating =================================================== -- create_table(:groups) -> 0.0013s == CreateGroups: migrated (0.0014s) ==========================================
Now if you start up Rails and hit http://localhost:3000/groups/new, you’ll see the complex form!
After burgers at Taylor's, my entourage and I headed north to Calistoga, home of Schramsberg Vineyards. It was my second visit to Schramsberg (Mom and I went back in August 2007); I suppose I could have chosen something new and different for the big 3-0, but, frankly, nothing makes me happier than champagne, so why not?
After making our way up Schramsberg's twisty, steep drive, we gathered in the reception area and met our tour guide, Ron. (Schramsberg runs several guided tours and tastings per day; if you have six people or more in your group, they request that you reserve a private tour.) The reception area is decorated with photographs and news clippings chronicling Schramsberg's history (lots more on that - and the méthode champenoise - in my post from 2007). We found ourselves gathering around a series of White House state dinner menus - and two very famous champagne coupes.See, Schramsberg was the wine Nixon took with him to China to toast Chinese Premier Chou En-Lai. Jack and Jamie Davies, the proprietors, had no idea what the cases of 1969 Blanc de Blancs were going to be used for, but were asked by the State Department to deliver them to an airstrip in Southern California - turned out they were bound for Air Force One. Schramsberg has been the White House's go-to sparkling wine ever since.
After a quick run-through of the winery's history, Ron took us down into the caves, most of which were carved out by hand back in the late 19th century, when Jacob Schram owned the land. Champagne goes through a double-fermentation process; first, it's fermented in large barrels, like any other wine. Then, the wine is placed in bottles along with some extra sugar - food for the yeast whose digestive processes will eventually yield all that good carbonation. Once the wine is in the bottles, it's placed in the caves, where it will age, get bubbly, and eventually become champagne. (More here on the whole process, called the méthode champenoise.)
The caves are naturally cool, damp places, draped in fuzzy moss and filled with a musty scent. Every once in a while, you come across a bottle whose bottom has blown out, thanks to the carbonation building up inside. Not something you'd want to see in action, though, since the glass can fly several hundred feet through the air.
Eventually, we made our way upstairs to the tasting room, where Ron started us with one of my favorite wines of all time, Schramsberg's Blanc de Blancs. (When it comes to champagne, the primary grapes are Pinot Noir and Chardonnay. A Blanc de Blancs is a white champagne made exclusively with Chardonnay grapes. A Blanc de Noirs is a white champagne made with Pinot Noir grapes, and so on.) It's apple-y and crisp - the perfect wine to drink alone or with a plate of oysters and mignonette sauce.
We made our way down the line, tasting the J. Schram, an unbelievably creamy vintage blend of Chardonnay and Pinot Noir, full of caramel flavors, round and supple in the mouth. I think I could drink nothing but J. Schram from here to eternity and be pretty damn happy.
Schramsberg makes what may be my favorite Brut Rose (Brut indicates a low sugar level - don't be fooled into thinking pink = sweet.), but the coolest thing about this shot are the little bubble volcanoes in each glass. See, the carbonation in champagne isn't released until it comes into contact with another substance. Usually, this is the microscopic dust inside your glass. These Riedel glasses, though, have little laser-etched dots in them, which give the bubbles a place to gather and help control the release of the fizz. So nifty.
On the way out, Uncle Jack showed off his purchase and took the Riddler's pose - toasting the stars, of which we'd just drunk. Copiously.
I am a firm believer in the age old adage 'You can not improve what you can not measure' (unrelated - here is an interesting antithesis). I believe in the importance of having the right metrics, especially in IT projects aiming to achieve continuous improvements.
Off-late i have interacted with some agile teams to get their perception of metrics in agile teams..responses have been varied, starting with outright cynicism to a mature approach towards using just enough metrics to achieve project goals. However one aspect was common through out, there is lack of awareness on various metrics options available for agile teams.
I would encourage project teams to look at all principles behind agile manifesto, and see which are the top three principles the project team values the most and consistently achieves in each iteration. Brainstorm within the team to see if the team can objectively measure progress for each of the three most important principles. Whether team velocity and burn down charts sufficiently describe team progress in each of the practices or is there a need to think about other possible ways of describing project progress?
If you see the need of looking beyond velocity and burn down charts, here are some starting points:
1. Heuristics for agile measurement: Refer to this seminal article on Appropriate agile metrics by Deborah Hartmann and Robin Dymond
2. AgileEVM : Pretty useful if you are in an organization with strong inherent PMI practices. Though AgileEVM is pretty neat in showing consistent business value, I personally am unclear on it's implementation in projects where the scope of work changes over time. Please share your experience if you have applied AgileEVM successfully in projects where the overall project scope increased during the project lifecycle.
Some metrics towards technical excellence
3. Running Tested Features: Ron Jeffries explans RTF. More detailed description
4. Static Code analysis
5. Code Coverage
What metrics do you use for your projects?
Good evening, my lovelies!
I've been a bit twitchy about my blog's layout and look for a while now, and wanted to try something new. Tonight I played around a bit, and created a whole bunch of potential headers and themes. A sampling, for your enjoyment!

I'd love to hear what you all think about the one I chose - be it good, bad, or in between! I'm excited to have a more seasonally-appropriate header, and think I might change it more frequently now. If you have any requests for a particular theme or photo, let me know!
And now it's time for bed.
Sorry that the Treasury is a bit late this week - I woke up this morning and was busy with housework (and lunch with the bro and sis-in-law) until...right now! (OK, I admit - I paused to mix myself a Manhattan.)
First up this week, a truly awesome blog. Cherrypatter NYC is a look at fabulous things to do - and places to shop and eat - all over New York. It's full of gorgeous photography and great content. Just this week, Cherrypatter has spotlighted the Eero Saarinen exhibit, provided a guide to 5th Avenue in the 100's, and visited Mario Batali's pizza restaurant, Otto. If you're planning a vacation to (or staycation in) New York anytime soon, I highly recommend you check this out.
Next up is something a bit less cheerful, but still pretty darn interesting. Kevin DeMaria, a former Gourmet staffer, took a series of photographs of the magazine's offices and staff members as they packed up their stuff (note the preponderance of wine) and wrapped up their work back in October. Wistful, funny and lonely, these photos capture both the end of an era and the very human side of corporate downsizing.
I subsrcibe to a few wedding blogs, mainly because they tend to showcase great photography and some amazing ideas for events that can be easily translated to dinner parties and holiday decorations. One of my favorites, 100 Layer Cake, regularly features what they call "Real Weddings," though they look more like fairy tale concoctions of hipster perfection. This week they featured Chris & Jessica, and I was completely blown away by everything about their nuptials. The bride's turquoise shrug (I'm a big believer in colorful wedding parties), the souvenir tea towels, the seaside setting...love, love, love.
I'm a huge cricket fan. It makes me happy, keeps me going and makes me sad, mad as well.
Yesterday I witnessed an exciting match between the Aussies and the Indians. In that match, Sachin Tendulkar, the best batsman the world has produced, reached another major milestone - 17,000 runs in One Day International.
| Opponent | Runs | Innings | Avg |
| Australia | 2995 | 66 | 45 |
| New Zealand | 1750 | 42 | 42 |
| West Indies | 1571 | 38 | 41 |
| Zimbabwe | 1377 | 34 | 41 |
| Sri Lanka | 2749 | 74 | 37 |
| England | 1335 | 36 | 37 |
| Pakistan | 2389 | 67 | 36 |
| South Africa | 1655 | 52 | 32 |
I'm a huge cricket fan. It makes me happy, keeps me going and makes me sad, mad as well.
Yesterday I witnessed an exciting match between the Aussies and the Indians. In that match, Sachin Tendulkar, the best batsman the world has produced, reached another major milestone - 17,000 runs in One Day International.
| Opponent | Runs | Innings | Avg |
| Australia | 2995 | 66 | 45 |
| New Zealand | 1750 | 42 | 42 |
| West Indies | 1571 | 38 | 41 |
| Zimbabwe | 1377 | 34 | 41 |
| Sri Lanka | 2749 | 74 | 37 |
| England | 1335 | 36 | 37 |
| Pakistan | 2389 | 67 | 36 |
| South Africa | 1655 | 52 | 32 |
I've had a nasty cold for the last few days, and haven't been to taste much of anything. I have, however, been craving all things brothy and spicy. I ordered some curry noodle soup from my local Vietnamese delivery place a couple of times, but decided on Monday that it was time to take the situation into my own hands.
It was time to make chicken noodle soup.
I don't have a family recipe for chicken noodle soup, but I figured I could suss it out. I chopped some carrots, celery and onion, added a bit of mustard and tomato paste for a round flavor, and added stock from my freezer. (And I do mean straight from the freezer - I didn't bother thawing it first; just let it melt right there in the pot.)
When I'd finished the first batch, it tasted good, but just a tad flat. I remembered an old chef's trick: add a dash of vinegar to a sauce or soup at the end of the cooking process to brighten it up and add dimension. I grabbed the sherry vinegar, added a shot, sprinkled in a bit more salt, and ended up pretty dang happy.
Now, I don't know about you, but one of the worst side effects of my colds is that my sense of taste is seriously dulled. The one thing that really satisfies me? Heat, of the spicy variety. So I've been eating my chicken noodle soup with healthy squeezes of Sriracha. You may or may not care to follow my lead here. I'll tell you what, though - it really clears the sinuses.
Queenie's Penicillin (Chicken Noodle Soup)
Because I wrote this recipe while I had a bad cold, I used an awful lot of salt. My advice on salt is to add small amounts throughout the cooking process, and to taste as you go. Salt should enhance flavors, not be a flavor in and of itself.
1 tbs. olive oil
1/2 medium white onion, chopped
2 cloves garlic, barely bruised with the back of a knife
1 large carrot, cut it half and thinly sliced into half-moons
2 stalks of celery, sliced (including tops)
2 tbs. flat-leaf parsley, finely chopped
3/4 tsp. dried thyme
1 tbs. Dijon mustard
1 tbs. tomato paste
2 quarts (8 cups) chicken stock
1/2 cup frozen peas
2 cups cooked pasta (cooked to just barely al dente)
1 1/2 cups cooked chicken, chopped into 1-inch pieces
1 tbs. sherry vinegar
Salt and freshly ground pepper
Heat the olive oil in a 4-5 quart, heavy-bottomed pan (I use my enameled cast-iron dutch oven) over high heat until shimmering. Turn the heat to medium-high, add the onion and saute until transluscent. Add the garlic and saute a minute or two more, then add the carrots and celery. Salt the vegetables (about 1/2 tsp. should do it) and saute until they begin to soften, about 3-5 minutes.
Add the parsley, thyme, mustard and tomato paste, and stir them all into the vegetable mixture. Allow to brown a bit, then add the stock. Generously salt and pepper the soup, bring to a simmer, then cover the soup and reduce heat to medium. Simmer the soup for 8-10 minutes.
Add the peas and pasta and taste for seasoning; you don't want to over-salt, but if you add a bit of salt now, it will make a rounder flavor than if you add all the salt at the end. Simmer the soup with the peas and pasta for a few minutes, then add the chicken. Simmer for another couple of minutes. Add the vinegar and stir to distribute.
At this point, you can either adjust the seasonings and serve immediately, or cool the soup, chill it in the fridge, and reheat on the stovetop later. Again - don't forget to check the seasonings before you serve!
Serves 3-4.
Today I'd like to announce the release of a gem I've been working on Legacy Data
Getting started on a Rails project with a large existing database can be daunting. How to you extract all the information that's
encoded in the database? Do you have to understand the entire data model before you get started? The models_from_tables generator
in the legacy_data gem can help! This generator looks into your existing database and generates ActiveRecord models based on the
information encoded in it.
script/generate models_from_tablesscript/generate models_from_tables --table-name commentsscript/generate models_from_tables --table-name comments --skip-associatedscript/generate models_from_tables --table-name comments --with-factoriesgem install legacy_data as long as http://gemcutter.org is one of your gem sources)has_many or belongs_to associations
class Post < ActiveRecord::Base
set_table_name :tbpost
set_primary_key :postid
# Relationships
has_many :comments, :foreign_key => :postid
# Constraints
validates_presence_of :title, :body
end
app/models/table_mappings.yml where you can verify or change any class name before proceeding to generate the models.On my last day in California, Faith took me on a road trip up Highway 1 (also known as the Pacific Coast Highway) to Point Reyes. On the way we stopped in Stinson Beach, where we browsed a teeny tiny bookstore, and Bolinas, where we got dirty, dirty looks from the locals. (Bolinas residents are infamous for their dislike of tourists; the signs pointing to the town have routinely been torn down by its inhabitants.)
Eventually we made it to the Point Reyes National Seashore, a seriously gorgeous piece of land about 30 miles north of San Francisco. Craggy, windswept and covered in that low, slightly scrubby, multicolored foliage you find out west, it's a desolate and beautiful place. We walked down to the observation platform above the Point Reyes lighthouse, one of the foggiest and windiest spots in the country. As we walked back to the car, the fog began to roll out and the azure sky to peek through. Stunning.After our drive through Point Reyes, we headed up to Marshall, a tiny little town (population 400 - or 50, if you believe the locals) on Tomales Bay. Tomales Bay is famous for its oysters, and we were on the hunt. We'd been told that Hog Island Oyster Co. was a good spot, but they were closing just as we pulled up. We turned around and headed down to The Marshall Store, which we'd passed a little ways back.
As it happens, fate had treated us well. The staff at The Marshall Store were awesome, and we helped ourselves to a small clam chowder and a big can of Foster's and placed an order for a dozen grilled oysters: half barbecue, half chorizo butter. We trotted outside to a picnic table set about three feet from the bay and waited for our oysters to arrive.
As you can see, the staff's awesomeness extended to treating us to an extra three oysters, something to which we did not object. The garlic bread was welcome as well, since we desperately needed a way to sop up every bit of liquor and sauce. The oysters were huge and juicy, just barely cooked by the heat of the grill, and full of saltwater essence. The ones with chorizo butter were salty and spicy, as was to be expected, while the barbecue oysters were garlicky and slightly sweet. All were delicious and more than a little bit sinful.
We did ourselves proud, though, and headed back to San Francisco (on a foggy, twisty Highway 1) with bellies full of chowder, oysters, and a bit of beer. Wouldn't mind any of the three right now, as it happens.
I've started thinking about (as opposed to concretely planning) food for the upcoming holiday season, and leafing through my old Gourmets and Saveurs for inspiration. This weekend, I picked up Gourmet's December 2008 issue and decided that it is, in my opinion, one of the most beautiful they've ever produced.
Between Romulo Yanes' incredible holiday cookie spread, where the cookies are paired with contemporary and vintage textiles, and Roland Bello's breathtaking, fashion-conscious Hanukkah meal shoot, the magazine had never been more gorgeous or effortlessly stylish.
Swoon with me, won't you?









I recently read a marathi book 'Shodh Bhavani Talvaricha' (Search for Bhavani sword) written by Indrajit Sawant. The author has done M.A. in History and is having a collection of different types of historical weapons. (especially swords of Chhatrapati Shivaji's era).
Chhatrapati Shivaji Maharaj was the greatest warrior of 17th century who established Hindavi Swarajya. He brought revolution in traditional maratha weapons. He developed Maratha swords. This type of sword has a unique comfortable hilt with a unique pommel.
Description of different parts of a typical Maratha Sword :-
The author's passion towards the swords and history motivated him to investigate into the real swords of Chhatrapati Shivaji Maharaj and study different types of swords.
There are different types of swords - Dhop, Khanda, Phirang, Latti, Samsher, etc.
The swords belonging to Shivaji Maharaj are of Phirang type. i.e. the blade is of European (Portuguese) made and they are straight and hilt of the sword is of Maratha type. In the historical records,we can find that Shivaji Maharaj was having many swords like Tulaja, Bhavani, Jagadamba, etc.
In this book, the author has given many references / evidences to find out where these swords are located now.
"Jagadamba", one of the swords of Shivaji Maharaj is now in London, in Royal Collection Trust of Royal family of Britain. This sword was presented by Shivaji IV of Kolhapur to Prince of Wales in 1875 AD. (The Royal Collection London - Address: Clarence House, St James's Palace, London, SW1 1BA)
The catalog at Royal collection has the following entry about this sword :-
" Sabre : Maratha: Straight, one-edged old European blade with two grooves on each side, in one of which I.H.S. is stamped three times; the raised steel supports at the hilt are damascened with gold in floral designs; the guarded hilt is iron with a broad knuckle guard and a circular pommel, terminating in a spike and encrusted with heavy open-work Floral decoration of gold thickly set with large diamonds and rubies. Presented by H.H. the Maharaja of Kolhapur as a relic of the Maratha chief Shivaji, to whom it formerly belonged."
Jagadamba sword in Royal collection :-
Efforts are being made to bring back this sword from London back to India. This sword is indeed a source of inspiration to all of us.
Please refer this link for more pictures and information :- http://swordofshivaji.blogspot.com/
I would recommend everyone to read this book.
Many thanks to Indrajit Sawant for doing this excellent research !
My friend Lisa came to visit me a couple of weekends ago, and when our favorite brunch spot was boasting a 45-minute wait, I decided we should break with tradition and go get ourselves some noodles. It was a chilly, gray morning, and I thought ramen (and those little squeeze bottles of Sriracha) might be just the thing to warm us up.
We hopped on the 6 train and headed down to the East Village; we arrived at Momofuku Noodle Bar (site of the infamous fried chicken dinner) just as its doors were opening at noon. We grabbed two seats at the bar and ordered the shiitake buns, special cauliflower and two bowls of chicken ramen.First to arrive were the shiitake buns, yeasty steamed pillows split open and filled with chewy, slightly crispy mushrooms. Topped with barbecue sauce, slivered scallions and pickled cucumbers, the mushroom buns may just replace the pork buns in that special place in my heart. We got these because Lisa is not a pork-lover, and I figured they're be a poor substitute. I was way off.
Next came cauliflower with pesto, boquarones and red chili flakes. This was a little too salty for me, but Lisa loved it - thank goodness, too, because I've never left anything uneaten at Momofuku, and I hope never to again!
Finally, the noodles. I've never had anything but the house special, which is a porky, over-the-top version of the classic. This chicken version is still very rich, but not quite as intense as the Momofuku Ramen itself. I loved the slightly crispy crumbled chicken; the combination of textures worked really well with the slippery noodles. I ate mine with plenty of Sriracha in every bite, and if I could change one thing, it would be to have even more scallions, and maybe some bean sprouts. I really like cold stuff stirred into my hot ramen.
But I still managed to get through it OK.
Momofuku Noodle Bar
171 First Avenue.
Between 10th and 11th Streets
212.777.7773
I liked these photos taken by Uddhav Thackeray - It includes forts in Maharashtra, some places in Mumbai and some places of worship in India.
http://www.uddhavsphotos.com/photos.html
The morning of my 30th birthday dawned bright and sunny; being on the west coast meant my east coast friends had been up and wishing me well for a few hours already, so I spent some time checking my email and then headed downstairs to herd the crew into three of our assorted rental cars. Our first stop: Taylor's Automatic Refresher in St. Helena.
We had a 12:15 appointment at Schramsberg (more on that later), so it was going to be burgers for lunch at Taylor's, something about which a few of our party were slightly skeptical. One taste changed all that, though.I've posted about Taylor's before, and I can assure you that their food is just as strong now as it was two years ago. The fries are fresh and piping hot, crisp and delicious. On this visit, I got to sample the standard fries as well as the garlic fries (above), which were stinky and tossed with parsley to make you feel healthy, and the sweet potato fries, which were served with a delicious aioli.
For my burger, I went classic old-school: hamburger with lettuce, tomato and pickle, topped with ketchup and mustard. The meat was well-seasoned and cooked perfectly to my requested medium rare; the pickles are still stand-out at Taylor's, and the bun is slightly toasted and the perfect texture: thick, but not too bready.
Aw yeah.
Taylor's Automatic Refresher
933 Main Street
St. Helena, California
707.963.3486
I'm a firm believer in the importance of top-down and behavior-driven development. I often start writing an integration test as the first step to implementing a story. When I started doing Rails development, the expressiveness of Ruby encouraged me to start building a DSL to easily express the way I most-often wrote integration tests. In the pre-RSpec days, this was just a subclass of ActionController::IntegrationTest that encapsulated the session management code to simplify authoring tests from the perspective of a single user. As the behavior-driven development idea started taking hold, I adapted the DSL to more-closely match those concepts, and finally integrated it with RSpec. The result of this effort was Spectie (rhymes with necktie).
The primary goal of Spectie is to provide a simple, straight-forward way for developers to write BDD-style integration tests for their projects in a way that is most natural to them, using existing practices and idioms of the Ruby language.
Here is a simple example of the Spectie syntax in a Rails integration test:
Feature "Compelling Feature" do
Scenario "As a user, I would like to use a compelling feature" do
Given :i_have_an_account, :email => "ryan@kinderman.net"
And :i_have_logged_in
When :i_access_a_compelling_feature
Then :i_am_presented_with_stunning_results
end
def i_have_an_account(options)
@user = create_user(options[:email])
end
def i_have_logged_in
log_in_as @user
end
def i_access_a_compelling_feature
get compelling_feature_path
response.should be_success
end
def i_am_presented_with_stunning_results
response.should have_text("Simply stunning!")
end
end
Spectie is available on GitHub, Gemcutter, and RubyForge. The following should get it installed quickly for most people:
% sudo gem install spectie
For more information on using Spectie, visit http://github.com/ryankinderman/spectie.
At the time that this is being written, Cucumber is the new hotness in BDD integration testing. My reasons for sticking with Spectie instead of switching to Cucumber like the rest of the world are as follows:
These reasons are more-or-less the same as those given by Evan Light, who recently published Coulda, which is his solution for avoiding the cuke. What sets Spectie apart from Coulda is its reliance on and integration with RSpec. The Spectie 'Feature' statement has the same behavior as an RSpec 'describe' statement, and the 'Scenario' statement is the same as the RSpec 'example' and 'it' statements. By building on RSpec, Spectie can take advantage of the contextual nesting provided by RSpec, and rely on RSpec to provide the BDD-style syntax within what I've been calling a scenario statement (the words after the Given/When/Thens). Coulda is built directly on Test::Unit. I'm a firm believer in code reuse, and RSpec is the de facto standard for writing BDD-style tests. Spectie, then, is a feature-driven skin on top of RSpec for writing BDD-style integration tests. To me, it only makes sense to do things that way; as RSpec evolves, so will Spectie.
Code named as 'Eclair', Android 2.0 has some interesting improvements.
Check out the video on new features:
Motorola launches Droid on November 6th (first smart-phone running Android 2.0), with some nifty features such as:
- inbuilt app for gmail, facebook
- Google navigation
- plug in for flash 10
Would Droid be the iPhone killer?