Saturday, December 31, 2005

Recipe Blogging: Chocolate Nemesis

My wife found this one in this month’s issue (December, ‘05) of Good Housekeeping.  It’s quite easy to make, and it is simply an amazing cake to eat.

Chocolate Nemesis Cake

  • 1/2 c. water
  • 1 c. sugar, divided!
  • 1 Lb. bittersweet chocolate, chopped (See Notes)
  • 2 sticks unsalted butter, cut up
  • 7 large eggs, at room temperature
  • softly whipped cream or creme fraiche (See Notes)
  • fresh raspberries for garnish

Preheat oven to 325F.  Grease bottom and sides of 9–inch springform pan.  Line bottom of pan with parchment paper (See Notes).  Dust side of pan with flour.  Set pan on sheet of heavy-duty foil and wrap foil up the sides of pan to prevent water from leaking in during baking.  (You may need to double-seam fold two sheets together to make a very wide piece of foil — you want the foil at least halfway up the sides of the springform.)

In a heavy saucepan over medium-high heat, disolve 1/2 c. sugar in the water, stirring occasionally.  Add chocolate and butter, stir until completely melted and mixed.  Remove pan from heat and cool chocolate 15 – 30 minutes.

Meanwhile, beat eggs wtih remaining 1/2 c. sugar at high speed until mixture thickens and roughly triples in volume, about 6 – 8 minutes.  Using a wire whisk, gently fold in the melted chocolate mixture, completely blending in.  Take care to not deflate the whipped eggs.  (See note)

Pour batter into springform pan and set inside a large roasting pan.  Set an oven rack at the middle height in the oven and place the roasting pan on the rack.  Pour enough boiling water in the roasting pan to come halfway up the side of the springform pan.  (I angle a large pot lid over the springform to protect the cake from splashes or bad aim.  School of hard knocks there, folks.)

Bake the cake for 25 – 35 minutes until the edges just begin to set and a thin crust forms on the top.  Carefully remove the springform from the water bath and let cool on a rack.  Cover and refrigerate overnight.

About 30 minutes before serving, remove from refrigerator, run a knife around the edges to loosen the pan, then remove the foil and side of springform.  Invert on a plate, remove the parchment paper and turn cake right side up on a serving plate.

NOTES

  • Use pre-cut parchment paper circles if you’ve got ‘em.  If not, start with a square (more or less) sheet of parchment and fold it in half.  Now fold it in half along the seam.  Fold the paper over the closed corner several times until you’ve got a narrow wedge.  Set the tip of the wedge in the center of the pan and cut it with scissors at the edge of the pan.  Unfold it and Poof! you’ve got a more-or-less circle which should fit right inside the pan.  Thank Jacques Pepin for this cool trick!
  • I used the best quality chocolate I could get my hands on easily — Ghirardelli.  It’s nothing extraordinary, and I’m looking forward to trying this cake again with Valhrona or some other really special chocolate.
  • Folding with a whisk is really fairly easy and it’s nothing to get wigged out about.  Pour the chocolate into the eggs in small batches and use the whisk to lift the mixture from the bottom of the bowl up through the middle.  You’re not using the whisk to beat the eggs, you’re using it to gently raise the heavier chocolate which has sunk to the bottom of the pan and distribute it through the rest of the mix.  It sounds a lot more complex than it really is.  Folding seems to have an undeserved mystique around it.  Just do it.
  • I didn’t do it on when cooking this cake, but I think a trick from my cheesecake baking would work really well here.  I remove my cheesecakes when they’re still very soft in the center.  I put the pan on a cooling rack, then invert a large bowl over the top of the rack and cover that bowl with several layers of towels.  The residual heat in the cake will finish off the cooking in a very, very gentile fashion.  For cheesecakes this helps mitigate the nasty cracks which form when a cake is overcooked or cooled too rapidly.  It also helps keep the creamy, beautiful texture in the cake.  I will try this same trick with this Nemesis cake the next time and I expect some good results!
  • Creme fraiche would be a perfect foil to this very rich, heavy cake.  Unfortunately creme fraiche is tough to find in this corner of Dayton.  We made due with Cool Whip.  Philistines R Us.

Friday, December 30, 2005

Code Camp Links Fixed

It’s always good to remember that one is fully capable of shooting oneself in the foot.  Apropos: My move of our .NET group’s site to ASP.NET 2.0.  It’s slick to move everything over to neat master pages which really make life a lot easier, and I’m having fun playing with menus and general ASP.NET 2.0 features.

Of course, if one’s moving from HTML pages to ASP.NET pages, then one ought to leave a few.htm files up on the server which redirect folks to the new locations of important stuff like our upcoming Code Camp

Now fixed.

Duh.

Thursday, December 29, 2005

Latest Reading List

It’s been quiet with blog posts this last week, but hey, it was Christmas so give me a break!

Here are a few things off of my reading list this last month:

Tech Stuff

Bauer’s and King’s Hibernate In Action.  I’ve been doing a modest amount of work with NHibernate and this book is often referenced in the NHib community.  It’s a great book for Object/Relational Mapping concepts, and NHibernate is a pretty close port of Java’s Hibernate so things seem to clearly map over so far — at least in the first quarter of the book I’ve read so far.

Troelsen’s Pro C# 2005 and the .NET 2.0 Platform, Third Edition.   A bit too wordy, and definitely not targeted at graduate students as he says on the back cover — the material’s deep, but also starts out at the introductory level.  Despite the wordiness, it’s a terrific read with great details on a lot of different topics.  He is the first author who has made a clear case why going into IL is a Good Thing.  (On a side note, how can it be the third edition for the .NET 2.0 platform??)

DeMarco’s & Lister’s Peopleware.  Published something like 20 years ago and it amazes me how little management has learned about how to feed and nourish creative tech staff.  The same mistakes are being made now as two decades ago.  Read this book if you’re interested in how to set up a productive environment for your staff, or if you need ammunition to convince your management on how to do things the right way.

Liberty’s Programming ASP.NET , 3rd Ed.  Lots of shiny stuff on doing ASP.NET well.  Not even close to a reference for all the goodness in v2.0 of ASP.NET, but there’s a tremendous amount of goodness therein.  My primary source for learning ASP.NET.

Fiction

DeCandido’s novelization of Serenity.  What a piece of ghosa. By far the worst novelization I’ve ever read.  DeCandido tries to write in the folksy manner that Joss Whedon’s characters speak in — and fails miserably.  It’s clunky, schizophrenic, and scattered.  DeCandido even manages to foul up the gobs of one-liners Whedon had in the movie.  Inept treatment of terrific material.

King’s and Straub’s Black House.  The usual over-long King story, although Straub appears to have kept him somewhat in check.  Some interesting concepts and neat writing style.  Got this as a gift, so the price was right.

Rowling’s Fantastic Beasts and Where To Find Them.  Toungue-in-cheek book about the beasts of Harry Potter’s world — cast as a schoolbook, complete with margin scribblings from Harry, Ron, and Hermione.

Mignola’s Hellboy Volume 1: Seeds of Destruction.  I love the movie Hellboy, but got hooked on it without having read any of Mignola’s work.  This graphic novel is just stunning.  Amazing colors, amazing art, amazing story, and quite different character interactions than how things go in Del Toro’s movie universe.  I’m happy, happy, happy I got this as a gift!

Non-Fiction

Kimmel’s Grace-Based Parenting.  Sensible, funny, calm writings on how to raise kids who are strong enough to stand up to the many problems they’ll face as they grow from brats I mean young children through teens to adulthood.  It’s written from a Christian standpoint, but there’s a lot to appeal to any parent (or potential parent) regardless of your religious beliefs.  I like that Kimmel comes from the viewpoint that overprotection is a patently Bad Thing, and that extremism in any area of parenting is a recipe for raising children who will head off on destructive paths.  It’s sort of like a kinder, gentler Rosemond before Rosemond went completely psycho.

Thursday, December 22, 2005

Dayton-Cincy Code Camp Session Abstracts Posted

Continuing with my iterative development of the Dayton-Cincinnati Code Camp’s page, you can now find abstracts linked from the Camp’s schedule page.

What?  You’re a .NET geek who lives in the Dayton/Cincy/C-Bus region and you’re not registered?  The deuce you say!  Go sign up right now.

More Code Camp Updates

The Dayton-Cincinnati Code Camp’s schedule is now updated to show each session’s presenters.

Wednesday, December 21, 2005

Dayton-Cincinnati Code Camp Schedule Final!

The schedule for the Dayton-Cincinnati Code Camp is finalized!  We’ve got a killer lineup of sessions, but then I may be biased…

Register for the camp via Microsoft’s service.  Find general information about the camp at its home page.

Right now I have just the session titles posted; I’ll have abstracts and speakers linked in tomorrow, but for now I’m off to bed.

Great Presentation Blog

Jim Weirich, one of the presenters at our Dayton-Cincinnati Code Camp, referenced Garr Reynolds’ Presentation Zen blog in passing.  Holy smokes, what a neat find!

Check out Reynolds’ post on “naked” presentations, and his very interesting post on the Takahashi Method, where slides contain only one or two words in absolutely huge text.  This is kind of like Beyond Bullets on steroids.  Talk about having things stripped down to their bare essence!

The “naked” presentation post gets a bit mystical and touchy-feely, but the essence of it is terrific: strip down your presentations and cut loose all the cruft one hides behind.

I haven’t dug through much of Reynolds’ writing yet, but it looks to be very thought-provoking.

Building the Case For Moving to .NET 2.0 / VS2005

I find it interesting that few folks in our .NET Developers Group are even evaluating Visual Studio 2005 or the .NET 2.0 Framework for adoption of the IDE or Framework.  Adoption of new technologies in a larger company isn’t (and shouldn’t be!) a trivial matter.  Companies need to figure out the cost/benefit of such a move; it’s a business after all, and as much as we’d like to, we can’t always head off into a new area just because it’s cool.

I’ve been doing a very small bit of work looking around for articles talking about productivity gains from moving to the next generation of Visual Studio, the .NET Framework, or SQL Server.  I haven’t been working that hard at researching, but Jason Haley’s Interesting Finds pointed out this series of Case Studies.  I looked at a few of them and found them interesting, but they’re Microsoft marketing kool-aid rah rah BS, so read them with several large grains of salt.

I’d love to come across non-marketing bullcrap articles from IT folks on the benefits (or bad impacts!) they’ve found from moving to VS2005, SQL2005, or the 2.0 Framework in general.

Please pass on any links or experiences you’ve had yourself.  All this may eventually find its way into an article over at VisualStudioHacks.com where I post a weekly clip on odds and ends.

Tuesday, December 20, 2005

Amazing Ruby Online Tutorial

I just did my first-ever Ruby code, courtesy of this online tutorial.  It’s quick, it’s simple, it’s cool.

Go check it out.

(via Jim Weirich)

Developing as a Non-Admin

I'm finally trying to kick the crutch of developing using an account with admin privileges. That same account was my regular account for day to day use, too. I’ve always known it’s a really, really stupid thing to be doing (see LeBlanc and Howard, Brown, or talk with any long time Unix user who will rightfully heap scorn upon you), but I just went with the path of least resistance.  Hey, I quit a two-pack a day smoking habit.  How hard can it be to kick this admin account thing?

Today I ran into my first small hitch while trying to get finicky NCover working for something I’m writing.  NCover’s very tempermental with its command-line parameters, so you really need to run it from a batch file or NAnt task.  I was trying to get an old NAnt build file working and was running into issues where everything appeared to work nicely, but no coverage report was being generated.  Arrgghhh.

I’d run into this in the past where NCover’s support library CoverLib.dll would lose its mind and require re-registration.  It was so nasty that I just added an exec for registering that library into my NAnt task — it re-registers itself every time the dang coverage runs.

So back to the admin/non-admin issue: regsvr32 will appear to execute just fine to register a DLL if you’re running as a non-admin account, it just doesn’t really do anything.  The DLL wasn’t successfully registered, and I got no feedback that the process failed.

Quick answer?  Use the “runas” to spawn another command window for executing my NAnt task.  This second window was spawned as one of my admin accounts.  Voila!

Monday, December 19, 2005

Reading: Peopleware

One of our DevGroup’s members gave me an extra copy of DeMaro’s and Lister’s Peopleware. I’ve had it on my reading list for quite some time and was happy to get my mitts on a copy.  (Thanks, Steve!) 

I just finished reading it and it’s wonderful stuff.  The book is formed by a bunch of short articles about particular aspects of how to form a productive, nourishing environment for your creative engineers.  It’s easy reading with a lot of head nodder momements.

The book is also discouraging in some aspects — many of the sheerely stupid ways management treats their folks haven’t changed at all since the book was written in 1987.  Thankfully, while there are plenty of horror/war stories throughout the book, it’s much more focused on the positive things which can be done to foister a great environment where good workers want to gather and get great things done.

It’s only about 180 pages long, and can most likely be gotten from your local or regional library system — but it’s such a great book that you might think about adding it to your library.

Friday, December 16, 2005

Converting VS2003 Web Projects to VS2005

Today’s Interesting Finds from Jason Haley’s blog has a link to an article on converting VS2003 web projects to VS2005 from the C# team.  A question about this came up in Wednesday’s meeting of our DevGroup, so hopefully a few attendees might actually be reading my blog and see this!

Other solution/project conversion blurbs on the net:

 

Saturday, December 10, 2005

Life As A Single Parent

No, my wife and I aren’t splitting up, rather I’m happy to report she’s back from a two-week biz trip, which means I get to close another chapter in my life as a frequent single Dad.

Pam travels extensively; she’s normally gone on travel at least twice a month, often three, and sometimes four times a month — but those trips are usually two or three days with the occasional four or five day tossed in.  I’m fortunate that as much as she travels she’s still around quite a bit to help out with parenting. 

This two week period as a single parent was the longest stint I’ve had since starting a stay-at-home/work-from-home Dad job five or so years back when our daughter Lydia arrived on the scene.  Self-deprication aside, I count myself as a pretty good Dad who can handle pretty much anything while my wife’s away.  For all my experience as a parent over the last five years, this two week period was an eye-opener and gave me even more appreciation for the many single parents who do this constantly.

My schedule and workload the last two weeks was pretty normal.  The daily routine runs something like: wake up and let out the cats who won’t sleep until my normal wake up time, go back to sleep, wake up (again), make coffee, read some RSS feeds if my son’s decided to sleep in, get the kids up, get breakfast made, get kids dressed/cleaned/brushed, drive daughter off to school, drive back home, stop by Kroger or Meijer to load up on veggies and bananas, get back home, start laundry, get a snack for son who is chewing my leg off, finally sit at computer to get a bit of writing done, handle e-mail correspondence for my DevGroup and small biz, get son down for a nap, take care of chores I can’t do when Zeke’s mobile and in the way (unload/load dishwasher), FINALLY get a shower, sit down at computer and get 30 – 45 minutes of quiet studying or coding done while Zeke’s asleep, wake Zeke up, drive to school to get my daughter, get home and fix lunch, head off to piano lessons if it’s Monday, get back from piano, back to the computer for some more e-mail and perhaps knock off a bit of writing, get afternoon snacks done, change laundry out, start dinner, get kids fed, get son into bath, play with kids for a few minutes, get son off to bed, change laundry again, get daughter into bath, unload/load dishwasher again, get daughter out of bath, have an argument about doing chores before goofing off, get daughter into jammies/teeth brushed/hair brushed, get daughter into bed and settle down to read a book or two with her, sit on couch to watch a bit of Firefly/LOTR/Hellboy/STNG/Battlestar Galactica/Band Of Brothers to wind down a bit, kick myself again for holding myself to not having any vino/whisky/other alcohol while my wife’s off on travel, head back to computer where I sit down at 9pm and work at getting into a zone to knock out some software or semi-intelligent sounding prose for an article for the VisualStudioHacks.com website.2

I’ve left out various non-stop chores which don’t fall into set chronological moments, such as the innumerable toys and books which land on my keyboard, tossed there by my 15 month-old son who is a constant, joyful interruption; intervention between son and daughter who love each other dearly, never more so as when they’re screetching at each other while trying to settle who gets to play with what; constant diaper changes (I’ll leave out graphic descriptions because I love my readers); rushing into the next room because my son’s in there and it’s been too quiet for too long, and any number of other varied errands and disturbances.

I also had several other events to deal with these last two weeks including painting two rooms (primer + two coats), fixing two busted toilets, dealing with the very nice but not so good at killing bugs guy from Orkin who has been telling me for five months that we should be seeing a decrease in carpenter ant activity “right after I put down this new stuff”, a follow up doctor’s appointment for my carpal tunnel-like problem which is now thankfully resolved, and finally two busted fillings to get repaired while the dentist talks about a possible root canal to fix another tooth.  Thank God the cars work.

I’m not throwing out that list as a lure for your sympathy (well, not too much, at least).  I only had to do this for two weeks and I really don’t deserve accolades for getting through that short stint.  Rather, I’m documenting for myself what my daily routine looks like — so that I can reaffirm just how blessed I really am.  I’m blessed with two kids who are, despite my numerous jokes, really terrific and low-maintenance kids.  How many 15–month and five-year olds love, and I mean love, all their vegetables? (“Kale?  YUM!”)  How many actually help out on occasion with chores around the house?  They’re also healthy (knock on wood), sharp as tacks, and are both endowed with a wonderful sense of the rediculous.  Laughter and giggles are thankfully a constant part of life around here.  I’m also blessed with a wife who is, occasional grumbling aside, a great help around the house and a great Momma.  I’m blessed with a terrific neighbor who has helped out in a pinch when I’ve had a short-notice meeting or two pop up.  Add to that a grandmother who lives 1.4 miles away and takes my daughter off my hands once a week.

How in the world does a single parent get this stuff done 24x7, 365 days a year on their own?  I’m amazed that any single parent manages to 1) stay moderately sane and 2) avoid stringing their kids up by their toes in the garage.

You want to do something to get yourself some seriously good Karma, or perhaps help balance out some of the negative things on the list you’ll need to present at the Pearly Gates?  Find a single parent and do something special for them.  Buy ‘em a couple sessions of Merry Maids.  Give ‘em gift certificates for a couple take out dinners.  Take their kids off their hands and send them off to a movie.  Or just take their kids off their hands so they can have a quiet hour to themselves.

You’ll probably never understand just how appreciated your effort would be.

Friday, December 09, 2005

Federal Spending

Interesting post by Angry Bear on what federal spending looks like over the last 30 years.  You might be surprised (as I was) that the rate of spending hasn’t exploded in non-Defense areas — but he doesn’t cite any sources for his information.

Possible Firefox Exploit

A lot of hay has been made in the past about how secure Firefox was -- and then such claims rapidly fell off as more folks took a harder look at the browser.  Here's another potential exploit, this one for the recently released version 1.5.  Funny how this topic pops up more and more as Firefox’s user base increases…

One of the biggest problems I had with Just Say No To Microsoft was author Tony Bove’s calling non-Microsoft products more secure while brushing over the fundamental concept that such products don’t have the user base Microsoft’s products do.  Bad Guys aren’t interested in doing Really Bad Things to software used only by a small percentage of folks.

(via Slashdot)

Now Playing: Bloc Party — Silent Alarm

Tuesday, December 06, 2005

Tentative Code Camp Schedule Posted!

Check out the tentative schedule we’ve got posted for the Dayton-Cincinnati Code Camp!

This is only a preliminary schedule, so don’t be bummed if you’ve submitted topics which didn’t make it onto the schedule.

Register for the Camp at Microsoft’s registration page.

Submit topics to me or James as noted on the Camp page.  Submission deadline is 12/21/05, but it would be a big help if you get things in sooner.

Now Playing: Elvis Costello — When I was Cruel

The Woes of Good Espresso

My flow during the day isn’t found in software development; development flow time is usually an hour or two late at night after the family’s asleep and I can work on getting into the coding zone.

My flow time during the day is found in the few moments where I can concetrate on pulling a shot of espresso.  I don’t count myself as a great barista, but I think I pull a consistently good shot.  There’s something flow-like about getting a shot just right: getting the equipment properly prepped, dosing out the right amount of beans, tamping the grounds just right (surprisingly difficult and very critical to the process), getting the temperature/time surfing down, and finally seeing the reward as espresso of a liquid honey texture drips out the spouts of my machine.  All this will sound absolutely nuts to readers who don’t care about espresso; just take away from this that I really enjoy this short time during the day where I can focus on doing one thing pretty well.

Why the “Woes” in the post title?  Because my two kids who have developed quite an affinity for my shots.  All my work results in… not much espresso left for me.  I’m lucky to have one sip left after my 16 month old son slurps up the crema and when I can get the demitasse back my five year old daughter.

Bah.

Still, there are a lot worse things in life than to have to share one’s espresso with kids who enjoy their small bit…

Now Playing: Ned’s Atomic Dustbin — God Fodder

Sunday, December 04, 2005

Construction Sort of Done

Well, that went quicker than expected.  It would have gone a bit quicker except for the various stuffed animals and books my son decided needed to live on my keyboard…

I like the wider display — the narrow content column in the previous template had been driving me nuts for a long time.  (But not so nuts I was willing to sit down and fix the dang thing.)  I’m also much happier with the white background for reading the snippets I post up.

I’ll give this a spin for a bit, perhaps tweaking a few fonts and sizes.  Leave me a comment if something about the changes drive you completely apes#it.  I may even pay attention.

Under Construction

Y’all may notice that the blog looks like crap right now.  No kidding.

I’m in the process of stealing bits and pieces of the template from Jason Follas’s blog and things are going to be ugly here for a bit while I iron out the kinks.

The end result should be much purtier than my initial template from Blogger.  White background (easier to read code snippets), and wider columns, again for easier reading of the many earth-shattering revelations I post up here.

Have a bit of patience with me while I noodle this all out.

New Microsoft Security Portal

Paul Maher announces a “Developer focused Security website” via Microsoft.  It looks to be more a portal than a resource site — there isn’t a whole lot of content directly on the site.  Intead it’s a link farm and you’ll need to troll other sites for information.  That’s not necessarily a bad thing, but I tend to agree with Ian Smith who comments on Paul’s post “ if those behind this initiative, with a specific passion around this area, couldn't be bothered to check the content they're linking to, why should the developers it's aimed at be any different?”

I’ll get around to jumping through all those links some day, just not today.

Saturday, December 03, 2005

NHibernate Many-To-Many Confusion

More NHibernate learning tonight, this time with many-to-many relationships.  We’ve been using Simon Green’s killer NHibernate templates for CodeSmith to generate business entities and mapping files.

I found one hitch, though, via my unit tests: I was losing all entities of a similar type when deleting one of them.  ‘Tis a puzzlement.  Using the debugger and peering at the database while stepping through, I found deleting the first entity resulted in the remaining entities getting deleted too.

Background: the entities are Person types with names, e-mails, etc., but also hold an IList defining a many-to-many relationship with a PersonType entity which stores, well, the type of person we’re dealing with.  (Member, speaker, sponsor, etc.)

My unit test looks like so:

Person p1 = TestFactory.CreateDefaultMember();

Person p2 = TestFactory.CreateDefaultMember();

p2.FName = "Bubba";

Person p3 = TestFactory.CreateDefaultMember();

p3.FName = "Goober";

p1.Save();

p2.Save();

p3.Save();

// cruft elided

p1.Delete();

p2.Delete();  //mass ugliness here!!

p3.Delete();

My test died out at the p2.Delete() statement.  By using the debugger I noticed that the PersonType record was deleted at the statement p1.Delete().  Hmmm…  A quick dig into the mapping file for the Person entity shows the collection defined so:

<bag name="PersonTypes" table="PersonTypeLink" inverse="false" lazy="false" cascade="all">

   <key>

      <column name="PersonID" sql-type="int" not-null="true"/>

   </key>

   <many-to-many class="nUGSoft.Entities.PersonType, nUGSoft.Entities">

      <column name="PersonTypeID" sql-type="int" not-null="true"/>

   </many-to-many>

</bag>

Whoops!  Note that portion “cascade=’all’” ?  Hibernate’s documentation (forget NHibernate’s dox) says cascading shouldn’t usually be used when dealing with many-to-many or many-to-one relationships.  I changed that option to “none” and things look much better now.

I’ll follow up with Simon and see if he’s got some specific reason for having had cascade=”all” set.  I’ll post a follow up here if there’s something of interest which comes out of that.

Subscribe (RSS)

The Leadership Journey