I made these over the holidays, and forgot to post them. I wanted to play with duck, and I figured that wasn't a bad time. Note: this is not a recipe. It's little more than meat and cheese on a cracker. It just happens to be really good meat and cheese on a cracker.
I did use about two duck breasts for this. Well, maybe one and a half. Some of it might have been, um, tested by the chef beforehand. And afterward. You get the idea. Anyway, I scored the fat side of the duck in a diamond pattern and then put it in a skillet over medium-high heat. This is a pretty classic French technique. It allows for a lot of fat to render out, which can be used for all sorts of goodies. Just not this dish.
After the fat side was nice and brown, I flipped it over and cooked the other side. When it was done, I let it rest for a few minutes. When I started slicing it, the middle was a beautiful dark pink; maybe just a little above medium-rare. I think it was cooked just about perfectly. There was still a nice layer of fat around one side of each piece that worked beautifully with it.
Placed between the duck slices and the cracker was a slice of Wensleydale cheese. I even happened to have a brand with a picture of Wallace (of Wallce and Grommit fame) on top of the wax. To finish it all off was just a dab of a roasted chipotle and raspberry dressing that I picked up at the store. It added just a slight fruitiness and heat that set off everything nicely, adding a contrast that really made the dish. I think that had I added any more of it, the heat and the fruit would have overpowered the duck and the cheese. As it was, the balance was perfect.
Our friend Tim was over with his wife, and he polished off a lot of those. His wife tried one, but she wasn't used to duck, so that was more than enough for her. My wife and I finished off the rest. We offered some to the vegan that was helping our new landlord install some flooring, which is right about the point that we learned he was vegan. He declined. His loss.
Thursday, January 24, 2008
Roux
I thought I'd take a moment to talk about roux (pronounced "roo"). It's one of the most basics of basics in western cooking, and in particular in recipes with French origins and/or influence. It's mostly used for adding thickness and richness to soups and sauces, but it can also be used for flavor.
In a nutshell, roux consists of equal weights of flour and clarified fat. Classically, the fat would be clarified butter, but it doesn't always have to be so. Before we get into hacking roux, let's talk about how to make it.
If you had access to a scale, I might have you weight out a few ounces (or grams) of butter, and then an equal weight of butter. But you probably don't, and that's okay. Scales are for bakers (such as myself), not necessarily for cooks. You can just start with a couple of tablespoons of butter. Clarified would be great, but if you only have whole butter, that's fine too. My one recommendation is that you at least use unsalted.
Melt the butter in a pan over medium heat and then sprinkle in a tablespoon or two of flour. Cake flour would be dandy, but all-purpose flour is fine too. Start with a smaller amount for now. You can always add more flour, but you can't take it away. Whisk it together until it forms sort of a paste. If it's thing enough that you could pour it, then it's too thin; add more flour. If it's thick enough that all of the flour won't mix in, then you've added too much. There are certainly uses for "thin roux" and "thick roux", but we won't cover them here.
Once you have the proper consistency, all that's left is to cook it to the right level of doneness. At the very least, you'll want to cook out that raw flour taste. Make sure to whisk occassionally as it cooks, so that it doesn't cook unevenly or burn on the bottom. If cooking out the raw cereal flavor is the furthest you go, it's called a white roux, or "roux blanc". If you take it to a slightly more tan color, it's called a blonde roux ("roux blond"). You can take it even further to a brown color that almost looks like milk chocolate ("roux brun").
These three are the most common types of roux. As the roux gets darker, the flavor increases, but the thickening power also decreases. There is another type of roux, typically seen in cajun cooking, called a black roux, or "roux noisette". It's not actually black, but it's close, with kind of a dark red tint to it. If it were completely black, it would be burned, and would add nothing in the way of flavor except for bitterness. But a proper roux noisette can add a deep flavor to cajun stews and gumbos that can't be found anywhere else. Unfortunately, it adds next to no thickening, but that's okay. Gumbo uses other ingredients for thickening.
Now you know about the classic roux. What's it good for? Mostly soups and sauces. And in fact, in most cases it will be used as the basis of a mother sauce, which is also mostly used for soups and sauces. Most home cooks know how to strain the fat from a Thanksgiving turkey, add a little flour and turkey juices, and turn it into a gravy. But obviously, turkey fat is not the same thing as butter fat, and that's what leads us into hacking roux.
You already know that a classic roux consists of equal weights of flour and clarified fat. Why then did I tell you that it was okay to use whole butter? Those of you who read my post on dairy percentages know that whole butter is not 100% fat. It contains anywhere from 15 - 20% water, plus a small amount of milk protein, which are not ingredients in a classic roux. Here's the thing: with such a small amount of roux as we would be making at home, most of the water is going to evaporate before it becomes an issue. And unless we're making a roux brun or roux noisette, we probably don't need to worry all that much about the milk solids burning.
So now you know that it's okay if sometimes other things are present when making a roux. In fact, it's very common for French chefs to sweat a few veggies in butter and then add flour and form a roux. When ingredients other than the fat and flour are present when you make a roux, it's known as a "compound roux". Another excellent example of a compound roux might be when somebody cooks up a bunch of breakfast sausage, removes most of the meat from the pan, adds a little flour and makes up a delight called country or sawmill gravy.
The fact that you can use turkey fat or sausage fat tells us that you don't need butter. Any fat will work for a roux, though I must say that I've never found much of a use for a roux that consists primarily of unsaturated fats. Duck fat, bacon fat, beef fat, it's all fair game for roux. Whichever fat you use primarily depends upon what your final intended dish is.
I should make a note while I'm at it. It's not uncommon for restaurants to make up several pounds of roux at a time and keep it in the cooler until it's needed. Chances are it's going to be used in the next week anyway. In this case, they will generally use clarified butter, and make up separate batches of blanc, blond and brun roux, or whichever type they know they'll need on a regular basis. That will save them a little time during dinner rush, when they don't necessarily have time to make up a roux for each and every plate that goes out to customers. Home cooks will rarely, if ever, need to do such a thing. But I thought I'd mention it.
In a nutshell, roux consists of equal weights of flour and clarified fat. Classically, the fat would be clarified butter, but it doesn't always have to be so. Before we get into hacking roux, let's talk about how to make it.
If you had access to a scale, I might have you weight out a few ounces (or grams) of butter, and then an equal weight of butter. But you probably don't, and that's okay. Scales are for bakers (such as myself), not necessarily for cooks. You can just start with a couple of tablespoons of butter. Clarified would be great, but if you only have whole butter, that's fine too. My one recommendation is that you at least use unsalted.
Melt the butter in a pan over medium heat and then sprinkle in a tablespoon or two of flour. Cake flour would be dandy, but all-purpose flour is fine too. Start with a smaller amount for now. You can always add more flour, but you can't take it away. Whisk it together until it forms sort of a paste. If it's thing enough that you could pour it, then it's too thin; add more flour. If it's thick enough that all of the flour won't mix in, then you've added too much. There are certainly uses for "thin roux" and "thick roux", but we won't cover them here.
Once you have the proper consistency, all that's left is to cook it to the right level of doneness. At the very least, you'll want to cook out that raw flour taste. Make sure to whisk occassionally as it cooks, so that it doesn't cook unevenly or burn on the bottom. If cooking out the raw cereal flavor is the furthest you go, it's called a white roux, or "roux blanc". If you take it to a slightly more tan color, it's called a blonde roux ("roux blond"). You can take it even further to a brown color that almost looks like milk chocolate ("roux brun").
These three are the most common types of roux. As the roux gets darker, the flavor increases, but the thickening power also decreases. There is another type of roux, typically seen in cajun cooking, called a black roux, or "roux noisette". It's not actually black, but it's close, with kind of a dark red tint to it. If it were completely black, it would be burned, and would add nothing in the way of flavor except for bitterness. But a proper roux noisette can add a deep flavor to cajun stews and gumbos that can't be found anywhere else. Unfortunately, it adds next to no thickening, but that's okay. Gumbo uses other ingredients for thickening.
Now you know about the classic roux. What's it good for? Mostly soups and sauces. And in fact, in most cases it will be used as the basis of a mother sauce, which is also mostly used for soups and sauces. Most home cooks know how to strain the fat from a Thanksgiving turkey, add a little flour and turkey juices, and turn it into a gravy. But obviously, turkey fat is not the same thing as butter fat, and that's what leads us into hacking roux.
You already know that a classic roux consists of equal weights of flour and clarified fat. Why then did I tell you that it was okay to use whole butter? Those of you who read my post on dairy percentages know that whole butter is not 100% fat. It contains anywhere from 15 - 20% water, plus a small amount of milk protein, which are not ingredients in a classic roux. Here's the thing: with such a small amount of roux as we would be making at home, most of the water is going to evaporate before it becomes an issue. And unless we're making a roux brun or roux noisette, we probably don't need to worry all that much about the milk solids burning.
So now you know that it's okay if sometimes other things are present when making a roux. In fact, it's very common for French chefs to sweat a few veggies in butter and then add flour and form a roux. When ingredients other than the fat and flour are present when you make a roux, it's known as a "compound roux". Another excellent example of a compound roux might be when somebody cooks up a bunch of breakfast sausage, removes most of the meat from the pan, adds a little flour and makes up a delight called country or sawmill gravy.
The fact that you can use turkey fat or sausage fat tells us that you don't need butter. Any fat will work for a roux, though I must say that I've never found much of a use for a roux that consists primarily of unsaturated fats. Duck fat, bacon fat, beef fat, it's all fair game for roux. Whichever fat you use primarily depends upon what your final intended dish is.
I should make a note while I'm at it. It's not uncommon for restaurants to make up several pounds of roux at a time and keep it in the cooler until it's needed. Chances are it's going to be used in the next week anyway. In this case, they will generally use clarified butter, and make up separate batches of blanc, blond and brun roux, or whichever type they know they'll need on a regular basis. That will save them a little time during dinner rush, when they don't necessarily have time to make up a roux for each and every plate that goes out to customers. Home cooks will rarely, if ever, need to do such a thing. But I thought I'd mention it.
Wednesday, January 16, 2008
Snow in Atlanta
"So, are you ready for the snow storm?"
I looked at my driver for a moment before replying. "Yeah, I guess I heard it was going to snow today or tomorrow."
When I had approached the front desk this morning to ask for a shuttle ride to the training center, the girl behind the counter was bundled up in what looked like a very warm coat, and she was still shivering. For my part, I was wearing my leather jacket, but the front was open and I felt entirely comfortable. I asked her perhaps a bit incredulously if she was actually cold.
"Oh yeah", she answered. "I'm freezing. It's so cold in here!"
I paused for a moment before telling her, "I was just in Utah. We got close to a foot and a half at my house last week. It's not cold here."
Now my driver was asking if I was ready for the storm. I'm in Atlanta. From what the locals tell me, in the years that it does snow, it rarely sticks. Ice is still a big concern, but the snow is never more than a dusting.
My sister used to live in Atlanta. I remember visiting her here close to a decade ago. She informed me that Atlantans are generally good drivers, but when it rains, they forget how to drive. Unfortunately, as she pointed out, it rains every other day in Atlanta. The locals I've met this time around have agreed with that statement fully. They also tell me that if a single snowflake ever comes within sight of Atlanta, the city is paralyzed. And now we had "a snow storm" on its way. You can imagine my excitement.
I wasn't the least bit surprised on the ride home today when traffic was even more of a mess than usual. It took close to twenty minutes to leave the parking garage. One of my students was staying at the hotel one block past mine, so he had offered me a ride. As we listened to the radio, the DJ talked about how it was too early just yet to predict school closures. Looking out the car window, I could see that the snow was sticking to the plants, but doing nothing to the roads other than making them wet.
Once we finally got out of the parking garage, it didn't take long to get back to the hotel, which was less than a mile away. It was cold outside, don't get me wrong. But compared to Utah this time of the year, it felt almost tropical to me.
Right now I'm waiting for traffic to die down a little bit, so that I can gas up my own car at the CostCo down the street. I have a rental car here, but I'm not bothering to use it for anything other than getting to and from the airport. I figure if the shuttle bus decides not to get me, I can use the walk. During rush hour in Atlanta, it may actually be faster.
I looked at my driver for a moment before replying. "Yeah, I guess I heard it was going to snow today or tomorrow."
When I had approached the front desk this morning to ask for a shuttle ride to the training center, the girl behind the counter was bundled up in what looked like a very warm coat, and she was still shivering. For my part, I was wearing my leather jacket, but the front was open and I felt entirely comfortable. I asked her perhaps a bit incredulously if she was actually cold.
"Oh yeah", she answered. "I'm freezing. It's so cold in here!"
I paused for a moment before telling her, "I was just in Utah. We got close to a foot and a half at my house last week. It's not cold here."
Now my driver was asking if I was ready for the storm. I'm in Atlanta. From what the locals tell me, in the years that it does snow, it rarely sticks. Ice is still a big concern, but the snow is never more than a dusting.
My sister used to live in Atlanta. I remember visiting her here close to a decade ago. She informed me that Atlantans are generally good drivers, but when it rains, they forget how to drive. Unfortunately, as she pointed out, it rains every other day in Atlanta. The locals I've met this time around have agreed with that statement fully. They also tell me that if a single snowflake ever comes within sight of Atlanta, the city is paralyzed. And now we had "a snow storm" on its way. You can imagine my excitement.
I wasn't the least bit surprised on the ride home today when traffic was even more of a mess than usual. It took close to twenty minutes to leave the parking garage. One of my students was staying at the hotel one block past mine, so he had offered me a ride. As we listened to the radio, the DJ talked about how it was too early just yet to predict school closures. Looking out the car window, I could see that the snow was sticking to the plants, but doing nothing to the roads other than making them wet.
Once we finally got out of the parking garage, it didn't take long to get back to the hotel, which was less than a mile away. It was cold outside, don't get me wrong. But compared to Utah this time of the year, it felt almost tropical to me.
Right now I'm waiting for traffic to die down a little bit, so that I can gas up my own car at the CostCo down the street. I have a rental car here, but I'm not bothering to use it for anything other than getting to and from the airport. I figure if the shuttle bus decides not to get me, I can use the walk. During rush hour in Atlanta, it may actually be faster.
Wednesday, January 9, 2008
A Tale of Two Waitresses
I got an interesting email today from my Zagat subscription. It linked to a story about two similar experiences that somebody had in Vegas, back to back, with two different waitresses.
In the first experience, the customer asked for a strip of undercooked bacon to be made "crispy", an act that would likely take a matter of only another minute or so for the cook. Not only did the waitress give them grief before finally relenting, when the bacon came back it was technically "crispy", but also "stiff as a board".
In the second experience with a different waitress, the customer asked for their eggs to be served separately, and halfway across the room (their daughter apparently greatly dislikes the smell of eggs). This waitress didn't even blink, and in fact asked whether they wanted the eggs or the rest of the meal served first. When asked if that was the strangest request she'd ever gotten, she replied, "This isn't strange. Honey, it doesn't even come close."
A comparison is to be made between the two waitresses, one of which is obviously unreasonable, and one of which obviously cares deeply about her customers, or at the very least doesn't mind the occasional odd request. Is it a valid comparison? Not quite, in my opinion.
If I were cooking bacon at home for my family, and my daughter (who is not, at the time of this writing, actually old enough to eat bacon) asked me to take a floppy piece of bacon and make it crispy, it wouldn't be a big deal. Presumably, it should also not be a big deal for a professional kitchen at a high end restaurant who, I might note, likely has to serve breakfast for anywhere from dozens to hundreds, to perhaps even thousands of guests in a very small space of time. When thought about it in that sense, the cook has to take extra time and resources to handle just another request which, in all likelihood, they don't actually have time to handle.
The waitress knew this. It had probably been burned into her skull by the kitchen staff every time she agreed to make a special request for a customer. This can be confirmed by the fact that she informed the customer that "the kitchen won't like that". She apparently handled the situation with rudeness. I don't know if she was actually rude, or if her initial refusal was only interpreted as such by the customer. I'm guessing that she was only trying to deflect what was about to become grief from the cook who had to handle the request. In an act of relentment to provide customer service (or at least avoid having the customer ask for the manager), she finally agreed.
The customer notes their mental response to the waitress: "The kitchen won't like that? Excuse me. Is the kitchen paying for the meal? Does the kitchen really care about cooking bacon a little longer?"
Yes. In fact, they probably do care about cooking the bacon a little longer. How did the cook handle the request? He apparently did fulfill the customer's request. He may have been belligerent with it, apparently cooking the bacon to a level of crispness that he knew nobody would ever be happy with, but he did fulfill the request. He might have even seen the extra crispiness as a sort of revenge, and for the customer's sake, I hope that's the only sort of revenge that he decided to exact upon her (though I doubt it).
He could have handled it differently. He could have just set the bacon aside on the griddle, let it cook a little longer while he did his other duties, and then when it was done, moved it back to the plate, and the plate back to the heat lamp, where it would be brought back to the customer. It would still have been an annoyance, but he could have done it. He apparently decided to teach what he considered to be an unreasonable customer a lesson in the process.
How does this compare to the second experience? The customer wanted their eggs to be served separately, and at a different interval from the rest of their meal. This request requires no extra involvement from the kitchen. The waitress could easily ask for two different plates (one with the egg and one with everything else) as if they were two different orders, and then handled them as such herself. Waitresses do this sort of thing on a regular basis, and the kitchen (who, again, was likely swamped) would never know about it.
She could also have involved the kitchen, and this is where a difference could be apparent. If she involved the kitchen, she certainly didn't mind doing so. Perhaps she has a better working relationship with the cooks. Perhaps she knows how busy the kitchen is (or isn't) and doesn't mind bullying a cook to get things done. I have often seen this willingness to bully the cooks define a waitress that refuses to place any priority above customer satisfaction.
I'm guessing that she chose not to involve the kitchen any more than necessary. She was obviously experienced enough at her job to have seen a lot of strange things. This tells me that she was probably also experienced enough to be able to handle such a request on her own. While each request likely carries equal weight in our own home kitchens, the request involving the egg is drastically easier to manage in a high-production environment such as one might see in Las Vegas, America's playground.
What is the point of all this? Unless you have worked in a restaurant, there is no way you can possibly know how difficult it is to do so. You may think you know how reasonable a request is, but until you're the person fulfilling the request, you probably don't.
Why do I bring this up? I eat out a fair amount when I travel (about 2 - 3 weeks a month), and occasionally when I'm in my home state. I see a lot of examples of customer service, both good and bad. And I see a lot of reactions from my peers, both good and bad. I've cooked in kitchens and I've waited tables. My first inclination is to put myself in the shoes of the serving staff and the kitchen staff. If my food is late, I know that it's likely (though not always) a problem in the kitchen. I don't start mentally subtracting pennies from the server's tip, unless I have a really, really good reason. In fact, I'm more likely to start mentally adding pennies to the tip based upon how good the service is.
I can only recall one instance in my life where a server was so utterly incapable of providing decent enough service that I felt they deserved to be tipped less than 15%. In fact, she was reportedly fired less than two weeks later. I prefer to tip at least 20% (despite being from Utah), and often tip more if the service was excellent.
Next time you're in a situation like that, think a little bit about what you're asking for. Is your server being unreasonable, or are you? Take a few hints from them. If they tell you that "the kitchen won't like that", they're likely telling the truth. Deal with it. I don't want to hear your whining unless it really is warranted.
In the first experience, the customer asked for a strip of undercooked bacon to be made "crispy", an act that would likely take a matter of only another minute or so for the cook. Not only did the waitress give them grief before finally relenting, when the bacon came back it was technically "crispy", but also "stiff as a board".
In the second experience with a different waitress, the customer asked for their eggs to be served separately, and halfway across the room (their daughter apparently greatly dislikes the smell of eggs). This waitress didn't even blink, and in fact asked whether they wanted the eggs or the rest of the meal served first. When asked if that was the strangest request she'd ever gotten, she replied, "This isn't strange. Honey, it doesn't even come close."
A comparison is to be made between the two waitresses, one of which is obviously unreasonable, and one of which obviously cares deeply about her customers, or at the very least doesn't mind the occasional odd request. Is it a valid comparison? Not quite, in my opinion.
If I were cooking bacon at home for my family, and my daughter (who is not, at the time of this writing, actually old enough to eat bacon) asked me to take a floppy piece of bacon and make it crispy, it wouldn't be a big deal. Presumably, it should also not be a big deal for a professional kitchen at a high end restaurant who, I might note, likely has to serve breakfast for anywhere from dozens to hundreds, to perhaps even thousands of guests in a very small space of time. When thought about it in that sense, the cook has to take extra time and resources to handle just another request which, in all likelihood, they don't actually have time to handle.
The waitress knew this. It had probably been burned into her skull by the kitchen staff every time she agreed to make a special request for a customer. This can be confirmed by the fact that she informed the customer that "the kitchen won't like that". She apparently handled the situation with rudeness. I don't know if she was actually rude, or if her initial refusal was only interpreted as such by the customer. I'm guessing that she was only trying to deflect what was about to become grief from the cook who had to handle the request. In an act of relentment to provide customer service (or at least avoid having the customer ask for the manager), she finally agreed.
The customer notes their mental response to the waitress: "The kitchen won't like that? Excuse me. Is the kitchen paying for the meal? Does the kitchen really care about cooking bacon a little longer?"
Yes. In fact, they probably do care about cooking the bacon a little longer. How did the cook handle the request? He apparently did fulfill the customer's request. He may have been belligerent with it, apparently cooking the bacon to a level of crispness that he knew nobody would ever be happy with, but he did fulfill the request. He might have even seen the extra crispiness as a sort of revenge, and for the customer's sake, I hope that's the only sort of revenge that he decided to exact upon her (though I doubt it).
He could have handled it differently. He could have just set the bacon aside on the griddle, let it cook a little longer while he did his other duties, and then when it was done, moved it back to the plate, and the plate back to the heat lamp, where it would be brought back to the customer. It would still have been an annoyance, but he could have done it. He apparently decided to teach what he considered to be an unreasonable customer a lesson in the process.
How does this compare to the second experience? The customer wanted their eggs to be served separately, and at a different interval from the rest of their meal. This request requires no extra involvement from the kitchen. The waitress could easily ask for two different plates (one with the egg and one with everything else) as if they were two different orders, and then handled them as such herself. Waitresses do this sort of thing on a regular basis, and the kitchen (who, again, was likely swamped) would never know about it.
She could also have involved the kitchen, and this is where a difference could be apparent. If she involved the kitchen, she certainly didn't mind doing so. Perhaps she has a better working relationship with the cooks. Perhaps she knows how busy the kitchen is (or isn't) and doesn't mind bullying a cook to get things done. I have often seen this willingness to bully the cooks define a waitress that refuses to place any priority above customer satisfaction.
I'm guessing that she chose not to involve the kitchen any more than necessary. She was obviously experienced enough at her job to have seen a lot of strange things. This tells me that she was probably also experienced enough to be able to handle such a request on her own. While each request likely carries equal weight in our own home kitchens, the request involving the egg is drastically easier to manage in a high-production environment such as one might see in Las Vegas, America's playground.
What is the point of all this? Unless you have worked in a restaurant, there is no way you can possibly know how difficult it is to do so. You may think you know how reasonable a request is, but until you're the person fulfilling the request, you probably don't.
Why do I bring this up? I eat out a fair amount when I travel (about 2 - 3 weeks a month), and occasionally when I'm in my home state. I see a lot of examples of customer service, both good and bad. And I see a lot of reactions from my peers, both good and bad. I've cooked in kitchens and I've waited tables. My first inclination is to put myself in the shoes of the serving staff and the kitchen staff. If my food is late, I know that it's likely (though not always) a problem in the kitchen. I don't start mentally subtracting pennies from the server's tip, unless I have a really, really good reason. In fact, I'm more likely to start mentally adding pennies to the tip based upon how good the service is.
I can only recall one instance in my life where a server was so utterly incapable of providing decent enough service that I felt they deserved to be tipped less than 15%. In fact, she was reportedly fired less than two weeks later. I prefer to tip at least 20% (despite being from Utah), and often tip more if the service was excellent.
Next time you're in a situation like that, think a little bit about what you're asking for. Is your server being unreasonable, or are you? Take a few hints from them. If they tell you that "the kitchen won't like that", they're likely telling the truth. Deal with it. I don't want to hear your whining unless it really is warranted.
Tuesday, January 1, 2008
Nutritional Information for Recipes
You may remember a while ago when I talked about certain idiots that seem to feel that caloric intake defines the healthfulness of a food. As it turns out, calories are important, but they're not the only thing that tells us about the health content of our food. There are other important factors, such as the amounts of protein, fat, carbohydrates, sodium, etc. Even the types of carbs or fat are important, so much in fact that companies who sell packaged food (in the US, at least) are required to list these and other data somewhere on the package.
The problem is, this kind of data isn't easy to calculate. Large manufacturers possess the resources to do this, but what about restaurants? The big chains also have the ability to do this, but what about the mom and pop places? Even popular restaurants with only one or two locations have difficulty doing this. And unfortunately, there are some loose cannons out there in our local and national governments that are trying for force restaurants to do these things. If these places are unable to do so, then they will be forced to close their doors. It's the sort of legislation that seems to be designed to hurt the big guys, but is really more effective at killing the little guys.
Eventually, the loose cannons may win. And when they do, the little guys need to be able to conform in order to stay in business. Fortunately, some of the smarter parts of the US government have provided us with various resources to do so. One of the more important resources is called the USDA National Nutrient Database for Standard Reference, and is available as a free download from the USDA website. If you want something a little easier to use than the raw data, you can also search the database online, or download an application to let you search on your home computer (Windows or Linux with WINE) or on your Palm OS device.
A lot of companies are already using the Standard Reference, which at the time of this writing is at Release 20. As it turns out, most of these companies aren't in the business of providing nutritional analysis (such as on the side of a package) are they in the business of providing diet software and services. While some packaged foods are listed, much of the database contains information about individual ingredients. Information for an ingredient's raw state is almost always there, but sometimes information for that ingredient is listed for frozen, steamed, packaged in various states, etc. Information is also listed for various serving sizes, with 100 grams almost always being present. If you use their software, you can also specify your own serving sizes, which is really just an abstracted view of the database.
There are three types of downloads available: Full, Abbreviated and Update Files. The Full version is available in ASCII and MS Access formats. Abbreviated (which contains all of the products, but not all of the nutritional data such as alcohol, caffeine, theobrimine, etc) is available in ASCII and MS Excel formats. The Update Files (ASCII only) are designed to update from one release to the next (such as from SR19 to SR20). Because the ASCII files are viewable on all platforms, and most people are interested in the entire database, I will focus on the Full ASCII files (available packaged together in a .zip file).
There are several files that belong to the standard reference. Many of the files refer to each other, kind of like a pseudo-relational database. In fact, using a simple filter, the data in these files is pretty simple to import into an actual database. The files are:
The files are tilde-delimited, but not in the way you might think. Each field has a tilde (the ~ character) on either side of it. If the field is empty, it will have a caret (the ^ above the 6 key) in it. For instance, the first line of the FOOD_DES.txt file looks like this:
The first field in this file is the NDB_No, the 5-digit unique identifier for the food item. The second field is the FdGrp_Cd, a 4-digit unique identifier for the food group that the item belongs to (as laid out in the FD_GROUP.txt file). The third and fourth fields are long and short descriptions, and so on. Full descriptions for each of the fields is available in the SR20_doc.pdf packaged in the accompanying .zip file, starting on page 22.
Of particular interest is the NUT_DATA.txt file, which contains the bulk of the data. There are several rows for each ingredient, each of which represents a particular nutrient (as laid out in the NUTR_DEF.txt file). Some of the nutrients available (from NUTR_DEF) are:
Let's take for instance Red Bull:
The nutrient data line for the caffeine looks like this:
These rows are defined for 100 gram portions. This particular product has 30mg of caffeine per 100 grams. The gram weight of a can of Red Bull is 255, which means that each little 8.3oz can of Red Bull contains 76mg of caffeine.
Lost? Do what I did: go to the online search form and look up Red Bull. The file format is pretty difficult to read manually, and not really easy to work in programmatically. When I'm working with my own import of the database, I use the online search form to check my work, to make sure I'm doing it right.
So if the database is such a pain to work with, why bother? Because, as the name implies, it's a Standard Reference. There are a lot of companies (not just online diet services) that use this database. The important thing is not how easy the raw data is to read. Raw data was never meant to be used like that. What we need is an abstraction. The online search form is an abstraction. The software available for Palm or Windows is an abstraction. It's something that's easier to read and understand.
The database is also considered to be very accurate. And it's updated on a regular basis. When I first started playing with it, it was at SR15. And most importantly, it's free! Why bother spending loads of cash on a book that will be out of date in a few months anyway? Once you understand how to import the main database, importing the updates is trivial.
I'll be taking a closer look at the database in future posts, but I wanted to make people aware of what it is, and what it's about first. Feel free to take a look at the docs, but unless you're techincally inclined, they probably won't do you much good. But the online search form is useful for pretty much anybody.
The problem is, this kind of data isn't easy to calculate. Large manufacturers possess the resources to do this, but what about restaurants? The big chains also have the ability to do this, but what about the mom and pop places? Even popular restaurants with only one or two locations have difficulty doing this. And unfortunately, there are some loose cannons out there in our local and national governments that are trying for force restaurants to do these things. If these places are unable to do so, then they will be forced to close their doors. It's the sort of legislation that seems to be designed to hurt the big guys, but is really more effective at killing the little guys.
Eventually, the loose cannons may win. And when they do, the little guys need to be able to conform in order to stay in business. Fortunately, some of the smarter parts of the US government have provided us with various resources to do so. One of the more important resources is called the USDA National Nutrient Database for Standard Reference, and is available as a free download from the USDA website. If you want something a little easier to use than the raw data, you can also search the database online, or download an application to let you search on your home computer (Windows or Linux with WINE) or on your Palm OS device.
A lot of companies are already using the Standard Reference, which at the time of this writing is at Release 20. As it turns out, most of these companies aren't in the business of providing nutritional analysis (such as on the side of a package) are they in the business of providing diet software and services. While some packaged foods are listed, much of the database contains information about individual ingredients. Information for an ingredient's raw state is almost always there, but sometimes information for that ingredient is listed for frozen, steamed, packaged in various states, etc. Information is also listed for various serving sizes, with 100 grams almost always being present. If you use their software, you can also specify your own serving sizes, which is really just an abstracted view of the database.
There are three types of downloads available: Full, Abbreviated and Update Files. The Full version is available in ASCII and MS Access formats. Abbreviated (which contains all of the products, but not all of the nutritional data such as alcohol, caffeine, theobrimine, etc) is available in ASCII and MS Excel formats. The Update Files (ASCII only) are designed to update from one release to the next (such as from SR19 to SR20). Because the ASCII files are viewable on all platforms, and most people are interested in the entire database, I will focus on the Full ASCII files (available packaged together in a .zip file).
There are several files that belong to the standard reference. Many of the files refer to each other, kind of like a pseudo-relational database. In fact, using a simple filter, the data in these files is pretty simple to import into an actual database. The files are:
FOOD_DES.txt Food Description File
FD_GROUP.txt Food Group File
NUT_DATA.txt Nutrient Data File
NUTR_DEF.txt Nutrient Definition File
SRC_CD.txt Source Code File
DERIV_CD.txt Derivation Code File
WEIGHT.txt Weight File
FOOTNOTE.txt Footnote File
DATA_SRC.txt Sources of Data File
DATSRCLN.txt Data Source Link File
The files are tilde-delimited, but not in the way you might think. Each field has a tilde (the ~ character) on either side of it. If the field is empty, it will have a caret (the ^ above the 6 key) in it. For instance, the first line of the FOOD_DES.txt file looks like this:
~01001~^~0100~^~Butter, salted~^~BUTTER,WITH SALT~^~~^~~^~Y~^~~^0^~~^6.38^4.27^8.79^3.87
The first field in this file is the NDB_No, the 5-digit unique identifier for the food item. The second field is the FdGrp_Cd, a 4-digit unique identifier for the food group that the item belongs to (as laid out in the FD_GROUP.txt file). The third and fourth fields are long and short descriptions, and so on. Full descriptions for each of the fields is available in the SR20_doc.pdf packaged in the accompanying .zip file, starting on page 22.
Of particular interest is the NUT_DATA.txt file, which contains the bulk of the data. There are several rows for each ingredient, each of which represents a particular nutrient (as laid out in the NUTR_DEF.txt file). Some of the nutrients available (from NUTR_DEF) are:
~203~^~g~^~PROCNT~^~Protein~^~2~^~600~
~204~^~g~^~FAT~^~Total lipid (fat)~^~2~^~800~
~205~^~g~^~CHOCDF~^~Carbohydrate, by difference~^~2~^~1100~
~207~^~g~^~ASH~^~Ash~^~2~^~1000~
~208~^~kcal~^~ENERC_KCAL~^~Energy~^~0~^~300~
~209~^~g~^~STARCH~^~Starch~^~2~^~2200~
~210~^~g~^~SUCS~^~Sucrose~^~2~^~1600~
~211~^~g~^~GLUS~^~Glucose (dextrose)~^~2~^~1700~
~212~^~g~^~FRUS~^~Fructose~^~2~^~1800~
~213~^~g~^~LACS~^~Lactose~^~2~^~1900~
~214~^~g~^~MALS~^~Maltose~^~2~^~2000~
~221~^~g~^~ALC~^~Alcohol, ethyl~^~1~^~18200~
~255~^~g~^~WATER~^~Water~^~2~^~100~
~257~^~g~^~~^~Adjusted Protein~^~2~^~700~
~262~^~mg~^~CAFFN~^~Caffeine~^~0~^~18300~
~263~^~mg~^~THEBRN~^~Theobromine~^~0~^~18400~
~268~^~kj~^~ENERC_KJ~^~Energy~^~0~^~400~
~269~^~g~^~SUGAR~^~Sugars, total~^~2~^~1500~
Let's take for instance Red Bull:
~14154~^~1400~^~Energy drink, RED BULL, with added caffeine, niacin, pantothenic acid, vitamins B6 and B12~^~ENGY DRK,RED BULL,W/ ADD CAFFEINE,NIACIN,PANTO,VIT B6 & B12~^~~^~Red Bull North America/Red Bull GmbH~^~Y~^~~^0^~~^6.25^4.00^9.00^4.00
The nutrient data line for the caffeine looks like this:
~14154~^~262~^30^2^^~13~^~AI~^~~^~~^1^29^31^1^^^~~^
These rows are defined for 100 gram portions. This particular product has 30mg of caffeine per 100 grams. The gram weight of a can of Red Bull is 255, which means that each little 8.3oz can of Red Bull contains 76mg of caffeine.
Lost? Do what I did: go to the online search form and look up Red Bull. The file format is pretty difficult to read manually, and not really easy to work in programmatically. When I'm working with my own import of the database, I use the online search form to check my work, to make sure I'm doing it right.
So if the database is such a pain to work with, why bother? Because, as the name implies, it's a Standard Reference. There are a lot of companies (not just online diet services) that use this database. The important thing is not how easy the raw data is to read. Raw data was never meant to be used like that. What we need is an abstraction. The online search form is an abstraction. The software available for Palm or Windows is an abstraction. It's something that's easier to read and understand.
The database is also considered to be very accurate. And it's updated on a regular basis. When I first started playing with it, it was at SR15. And most importantly, it's free! Why bother spending loads of cash on a book that will be out of date in a few months anyway? Once you understand how to import the main database, importing the updates is trivial.
I'll be taking a closer look at the database in future posts, but I wanted to make people aware of what it is, and what it's about first. Feel free to take a look at the docs, but unless you're techincally inclined, they probably won't do you much good. But the online search form is useful for pretty much anybody.
Labels:
cooking,
nutrition,
open recipe format,
orf,
recipes
Subscribe to:
Posts (Atom)