Sunday, December 26, 2010
Saturday, December 25, 2010
apple and sausage stuffing recipe
- 2 tablespoons vegetable oil
- 1 pound spicy pork bulk sausage
- 1 cup diced celery
- 1 cup diced onion
- 1 cup diced peeled cored apple
- 2 garlic cloves, minced
- 1 tablespoon chopped fresh parsley
- 2 teaspoons minced fresh sage
- 1 bay leaf
- 8 cups 1-inch cubes French bread with crusts (from 1-pound loaf)
- 1 cup whole milk
- 1 cup low-salt chicken broth
- 2 tablespoons (1/4 stick) butter, melted
- 3 large eggs, beaten to blend
Heat oil in heavy large skillet over medium heat. Add sausage; sauté until cooked through and brown, breaking into pieces with spoon, about 8 minutes. Using slotted spoon, transfer sausage to large bowl. Add celery and next 6 ingredients to drippings in skillet. Sauté over medium heat until vegetables are soft, about 5 minutes. Discard bay leaf. Add mixture to sausage. (Can be made 1 day ahead. Cover; chill. Reheat to lukewarm before continuing.)
Preheat oven to 350°F. Butter 13x9x2-inch glass baking dish. Add bread to sausage mixture. Whisk milk, broth, and butter in bowl to blend. Mix into stuffing; season stuffing with salt and pepper. Mix in eggs; transfer to prepared dish. Bake uncovered until cooked through and brown, about 50 minutes.
- doubled recipe
- used granny smith apples.
- didn't find any good fresh parsley, so left it out
- added some ground thyme
- used 2% instead of whole milk
- substituted apple juice for half the broth
- used Johnsonville bulk mild italian sausage (for this crowd, that was teetering on the edge of too spicy for some)
- Double the apples. There wasn't a ton of apple flavor, despite following the proportions in the recipe and adding apple juice.
Sunday, October 24, 2010
further pointless reviews
- Hurt Locker. Wuh? Why did people love this so much?
- The Lovely Bones. Way too long and nowhere near as good as the book
- Finch, by Jeff VenderMeer. Fun, interesting, and a little gross at times. Reminded me of China Mieville
- The Dead-Tossed Waves, by Carrie Ryan. Zombie goodness. Teenage-angsty badness. Meh.
- Being a Dudecast
- Chuck & Tina Spread TB & VD
- Comedy Death-Ray Radio
- Creeping with Armstrong
- Doomhouse
- Doug Loves Movies
- The Geek Show Podcast
- The Grandma's Virginity Podcast
- MicrobeWorld's Meet the Scientist Podcast
- The Nerdist
- NPR: Wait wait... Don't Tell Me! Podcast
- The Pod F. Tompkast
- The Robot's Pajama Party
- Savage Love Podcast
- Television Zombies
- This American Life
- Today in the Past
- WTF with Marc Maron Podcast
Saturday, September 25, 2010
Zucchini Bread
Wednesday, July 07, 2010
latest developments
Books read:
- Forest of Hands and Teeth -- Like someone mashed up The Village with Zombies. Pretty good, except for the teenage angsty bits.
- Ariel -- Post-apocolyptic, technology-fails, SCA members finally feel superier, boy-meets-unicorn story. You know, that old chestnut. Enjoyed it more than S.M. Stirlin's Dies the Fire.
- Boneshaker -- Zeppelins, Zombies, Zteampunk. Fun and exciting.
Movies:
- Valkrie -- Interesting story I'd heard bits of before. Unrealistic-sounding, preachy dialog about their motives kind of took you out of the story. Not that the end result of what they were trying for was bad... just that at least the politician's motives seemed more realistic, while the military guys were more pie-in-the-sky. But, maybe that's how it actually went down.
- Undead or Alive -- Chris Kattan and James Denton as cowboys during a zombie outbreak. Suprisingly good and funny in a shut-off-your-brain kind of way. The zombies were too unkillable, but still fun. Navi Rawat was as annoying as ever.
Tuesday, March 16, 2010
roomba: better than jesus?
about shoddy parts and difficulty with returns on the 5XX series. Decided to get it at
Costco since their return policy is ludicrously good.
So far, so good. It deals w/ electrical cords and rug tassles without any issues. It also
doesn't appear to have any problems transitioning between rug and hardwood floor. Only
have one extra-fluffy bathroom rug that it has trouble with.
The scheduling feature is great. I can schedule it to clean up automatically while we're
at work. I come home and it's waiting for me on the charger, ready to have its bin
dumped. Typically, I'll clean it out, then set it loose in the basement while we're
spending the evening upstairs. And when I go to bed I clean it out again and put it back
on the charger for its automated run the next day.
On the whole, really really like it. We'd typically only vacuum once a week, and with the
dog and cat that meant big dusty hairballs at the end of the week. Roomba's taken care of
those.
Definitely still need our other vacuum, since roomba's just bouncing around
semi-randomly. But, I don't have to worry about neighbors popping over and getting
swallowed by a dust bunny.
Friday, March 12, 2010
UnitTest++ == teh awesome
- set up
- add new tests
- explain to the other developers
- ?
- profit
Our unit tests are part of our project's Visual Studio solution file. Each unit test's project is setup to run the unit test as a post-build step. So far, it's caught a number of 'simple' fixes that broke some.
I've also setup a Hudson server to automatically build our project... But, I didn't want it to fail the build if the tests failed. And, I wanted to collect the XML reports when it's built from the continuous integration server.
So, rather than always just blindly calling UnitTest::RunAllTests() in the unit tests's main() function, I made a utility library that'll look at an environment variable to determine how it should run the tests.
In the unit tests's main() :
int main(int, char const *[])
{
return myUnitTest_runAllTests("my_test");
}
The utility function:
#include "cstdlib"
#include "fstream"
#include "iostream"
#include "boost/filesystem.hpp"
#include "UnitTest++/UnitTest++.h"
#include "UnitTest++/XmlTestReporter.h"
namespace bfs = boost::filesystem;
struct True
{
bool operator()(const UnitTest::Test* const) const
{
return true;
}
};
DLLExport int myUnitTest_runAllTests(const char* const testName)
{
char* xmlDir = 0;
size_t len;
errno_t err = _dupenv_s(&xmlDir,&len,"UNITTEST_XML_DIR");
if (err || len == 0)
{
// env var not set, just run the test w/ standard mechanism
return UnitTest::RunAllTests();
}
else
{
bfs::path p = bfs::path(xmlDir);
// free memory from _dupenv_s
free(xmlDir);
// if necessary, create output directory
if (! bfs::exists(p) || ! bfs::is_directory(p))
{
if (!bfs::create_directories(p))
{
std::cerr << "Problem creating directory " << p << std::endl;
return -1;
}
}
std::string fname(testName);
fname += ".xml";
// use / operator to append filename onto path
bfs::path fpath = p / fname;
std::ofstream f(fpath.file_string().c_str());
UnitTest::XmlTestReporter reporter(f);
UnitTest::TestRunner runner(reporter);
// if we're outputting to XML, don't return failure as return code
// this way tests can fail without it making the automated build think the build failed.
int ret = runner.RunTestsIf(UnitTest::Test::GetTestList(),NULL,True(),0);
return 0;
}
}
And then you just point Hudson's xUnit plugin at the generated reports. Came together suprisingly easy
Tuesday, March 09, 2010
movies
- Balls Out: Gary the Tennis Coach. Bizarre. Funny. If you enjoy Sean William Scott acting goofy, you might like this movie.
- Boondock Saints. Meh. Not sure if I can say I watched this since really I fast-forwarded through most of it... especially parts with Willem Dafoe chewing up the scenery.
- No Country For Old Men. Tense. Exciting. Good
- The Reader. Good thing I saved this feel-good hit for last... OMG. Downer. But very good.
won't you please help... provide a MILF-related punchline
Subject: Mountain Lion Warning
The following warning has been issued for the Research Park area:
Building management has recently noticed unusual wildlife activities around the Williams Building property. Specifically several mountain lions have been sighted in and around the parking deck. Building management is working with the Utah Division of Wildlife Resources with regard to this activity however we want to make you aware of the following guidelines from Wildlife Resources should you encounter a mountain lion when entering or leaving the facility:
- Do not panic. Most lions will try to avoid confrontation.
- Raise your arms to make yourself appear as large as possible. Lions prefer smaller prey.
- Slowly back away. Never run and never turn your back toward the cougar. Yell at the lion and wave your arms as you back away.
- Do not make direct eye contact. Lions perceive eye contact as aggressive behavior.
- If you are attacked, fight back. Try to prevent the lion from getting behind you.
Please let us know if you notice any unusual wildlife activity in & around our parking lot.