Tuesday, February 13, 2007

Book Review: Debugging

Debugging, by David J. Agans. AMACOM, ISBN 0814474578

This book is absolutely indispensable for anyone working in any job where things occasionally work in an unexpected manner.  It’s concise, funny, well-written, and full of immensely useful tips on how to go about debugging problems. 

One of the great things about this book is that it’s generalistic in nature, not specific.  Agans’s decades of troubleshooting experience has given him great insight on how to go about debugging in all sorts of environments, so he lays out nine rules for approaching any problem:

  1. Understand the System
  2. Make it Fail
  3. Quit Thinking and Look
  4. Divide and Conquer
  5. Change One Thing at a Time
  6. Keep an Audit Trail
  7. Check the Plug
  8. Get a Fresh View
  9. If You Didn’t Fix It, It Ain’t Fixed

You can get a poster of the rules online at Agans’s site, too, but if you get just that you’ll be missing out on the great insight for working with those rules.  Agans backs up each point with humorous examples and war stories, plus some very good logic about how to move forth in each step.

Debugging isn’t an art performed only by folks with some odd genetic disposition, it’s a critical craft which can and must be learned.  I was fortunate to have some good troubleshooters as mentors during my days working radar inflight, but I’ve fallen out of many of the good practices those folks beat^H^H^H^Hinstilled in me.  Agans’s book is helping me pull out of the thrash and churn mode of debugging.

This book’s only 175 or so pages long and is well-worth adding to your library.  Actually, substitute “a critical addition” for “well worth adding”.  I’m also going to make sure this book gets added to the professional development reading list I’m working on creating. 

Sunday, February 11, 2007

Another Podcast Show

James and I had another interview about Windows Developer Power Tools, this time from Michael Lehman and Bob Walsh of Channel 9’s MicroISV show.

Holy smokes, making it on to Channel 9 is a bit like making the cover of the Rolling Stone!  (OK, so now that song is stuck in my head…)

Friday, February 09, 2007

SlickRun Losing Its Mind

SlickRun rulz.  I luvs it something fierce, but today the version I have running in my development VPC lost its entire list of Magic Words, something that vexed me to no end.

I popped open the file holding the Magic Words (SlickRun.srl in your home directory under Application Data\SlickRun) and found this bit of oddness at the head of the file:

[]
Filename=""
Path=""
Params=""
Notes=""
GUID={6CCD4780-D4E5-4F8F-BEE8-D3777722DBC5}
StartMode=5

I got rid of it and Voila! everything is back shiny and happy.

Wednesday, February 07, 2007

Book Review: Mastering Regular Expressions, 3rd Edition

Mastering Regular Expressions,3rd. ed. by Jeffrey Friedl, ISBN 0596528124

I was a proud owner of the first edition of Jeffrey Friedl’s great book on regular expressions and like so many other readers I found it to be a very profound work which drastically changed how I approached all manners of text-related tasks.  Regular expressions are a vital piece of being able to do amazing work with blocks of text.  Need to transform CSV tables from one format to another?  Easy.  Need to parse out content from logfiles?  Easy.  Need to prototype an SGML to XML converter?  Not so easy, but doable.  (I know, because I did that some time ago…)

Friedl’s book is very conversational in tone, and he’s great at explaining all the minutia in regular expressions which can positively bite one in the keester.  Friedl’s adamant that the book isn’t a reference, it’s a tome for mastering regular expressions.  That’s emphasized repeatedly throughout the book, almost becoming annoying at times.  You really do need to start at the beginning and work your way through the book in order to get the best out of it.

What I find particularly interesting and helpful are the very clear explanations of the differences between the various regex implementations.  I cut my regex teeth in the *nix world via sed, grep, and a bunch of other similar fun tools.  Then I moved into the .NET world and completely lost my mojo where regexes were concerned.  Friedl’s clear explanations of how regexes work in .NET are making my regex mojo feel much better these days. (But I still happily fire up GVim to get powerful regex work done.)

Mastering Regular Expressions really is a vital addition to one’s bookshelf.

(Standard book review disclaimer.)

Tuesday, February 06, 2007

Book Review: Essential C# 2.0

Essential C# 2.0, Mark Michaelis

Addison Wesley, ISBN 0321150775

Essential C# 2.0 is somewhat introductory in nature, but there’s enough coverage of more advanced topics to make it useful for experienced .NET developers as well.  What’s really different about this book is its tremendous visual impact.  This book has perhaps the best visual layout of any I’ve seen, and it’s so well done that it really helps the book get across the points Michaelis is making in this book. 

Each chapter starts out with a mind map, one of my favorite tools for getting across highlights of a topic:

There’s a very nice deliniation of topic levels within chapters as well, with beginner and advanced topics being clearly separated out:

The code examples get some great markup, too, with bits inside code being clearly marked so you quickly see what the author’s focusing on — and the font for console output is way cool, too:

OK, so that’s all the visual stuff which would be simply eye candy bling and rather useless if the content of the book didn’t back it up.  It’s nice that the content does back it up.  There’s solid coverage of all the important topics: value vs. reference types, how the CLR/CLI works, basic object-oriented programming aspects of C#, and nice bits on delegates and events.  C# 2.0 features get good coverage, and there are two nicely done chapters on threading.  There’s also a chapter covering interoperability via P/Invoke and unsafe code (pointers), a topic I’ve not seen covered in any other book.

Michaelis’s writing style is clear, and he’s nicely concise in the book. I appreciate that he kept the focus on C# and didn’t try to span out into ASP.NET, web services, and a raft of various other topics that always seem to get lumped in with language books.

Overall I think this is a terriffic book and I’m happy to have it on my shelf!

(See my standard book review disclaimer.)

Sunday, February 04, 2007

SharePoint Workflow Project Errors

Here’s a tip if you’re getting errors akin to "the project type is not supported by this installation" when you try and create new SharePoint Workflow projects: Install the Visual Studio 2005 Extensions for Windows Workflow Foundation.  SharePoint workflow relies on Windows Workflow, so maybe you should get that installed first, eh?

Not that I’ve made that error myself, mind you.  I just heard about someone who did…

Podcast Interview on The Book Posted!

Michael Kimsal at WebDevRadio has just posted his podcast interview with James and me.  The interview was my first ever and was a lot of fun.  Michael’s a very easy-going fellow and did a great job of marshalling James and me through the show.

Check out the ‘cast and let me know what you think.  (Aside from the part about me being a ranting maniac, that is…)

VPC Woes

I’m rapidly becoming less and less enamored with Virtual PC.  I used VMWare Workstation for a number of years both on Linux as well as Windows and loved its speed and stability.  VPC?  Not so much.

At least three times in the last couple years I’ve completely lost VPC systems after bogus error messages like "an error occurred while processing the command line options."  I always back up data and projects to locations outside the VPCs, so I’ve not lost data or projects (or much), but the real pain has been having to spend chunks of time reinstalling and configuring the VPC again.

I never had these sorts of issues with VMWare; however, the VPC price (free via my MSDN subscription) has always been attractive.  That attractiveness is now gone, as I’m going to lose a chunk of my family time today reconstructing my environment to get back working again.  Argh.

Friday, February 02, 2007

Upcoming Speaking Engagements

I didn’t realize how busy I am this next month or so with presentations!  Here’s a list of the events I’ll be at through March.

(At least I hope I’ll be talking at the Dayton-Cincinnati Code Camp.  James and Mike are the other two folks on the content selection committee, so my sessions may get voted off the island.)

Monday, January 29, 2007

Dealing With Difficult Customers

I think anyone who’s done any work, regardless of the domain, regardless of the role, has had to deal with difficult customers in one form or another.  I’m in the middle of a months-long such effort which is exhausting me and severely pushing my limits.

I happen to be a person who does not believe that “The Customer is always right.”  I believe that “The Customer is always right unless they’re pushing well beyond the border of what the agreed upon work was, attacking my team, or being duplicitous.” 

Unfortunately, that’s the spot I seem to find myself in right now.  I’ve worked hard to break through some extremely difficult barriers at the start of this particular project, but it seems that those barriers are some form of vampiric hydra.  Put a stake in the heart of one issue and it sprouts another two heads.  (OK, badly mixed metaphor.) 

We started off with basic expecations management and communications issues, such as the customer’s expectations being far out of line with what we’d agreed to for the project, but I thought we’d worked through that.  I thought we worked through the other numerous communications issues because the customer reps I’ve been working with seemed to give me positive feedback when I’ve been face to face with them.  Hand off partially completed code to them and walk them through what’s going on with the design.  Get some head nods as to our approach.  Smiling faces.

Then tonight I get one of those e-mails that instantly turns me into a red-faced, profanity-screaming lunatic.  Management at the client is disappointed with our progress and is saying the customer reps we’ve been working with aren’t satisfied with our progress and that we’ve not delivered anything. 

Ugh.  Get up.  Walk around outside.  Ignore that it’s 16F with the windchill.  Calm down a bit.  Compose a reasoned response to my boss who rightly feels sandbagged.  Explain the numerous steps we’ve taken while on this road.  Agree to meet tomorrow for more explanations.

I may not be the world’s best project manager, but I believe I do customer relations about as well as anyone can.  I’m not sure what lessons I’ll take away from this when we’re through this latest round of customer explosions, but I’m sure I’ll find something useful after my stomach acid level gets back to normal.

Book Review: Agile Project Management With Scrum

Agile Project Management with Scrum

Ken Schwaber (Microsoft Press)

ISBN:  073561993X

I bought this after hearing Scott Hansleman talk about it on his scrum podcast.  I figure Scott seems to have had great success with Scrum at his place, so any book he recommended on the topic ought to be solid.  Indeed it is!

The book’s laid out in a series of stories which illustrate responsibilities and typical problems to overcome for the Scrum roles of Product Owner, ScrumMaster, and Team.  The stories are short, concise, and followed up by Lessons Learned which cover salient highlights for the various points made in the section.  Throughout the book runs Schwaber’s theme of how one can use Scrum to solve any number of problems and increase the productivity of their development work.

What’s really nice about the book is that there are stories of failures as well as successes.  Software development is rarely all roses, so it’s nice to see a couple examples where things didn’t work — and a solid analysis of what went wrong in those cases.

On the flipside, I’d have liked a bit more detail on constructing the sprint and product backlogs.  I realize that traipses somewhat over into the realm of software estimation, but more fleshing out would have been helpful.  However, there’s a great example of scaling Scrum and rolling up numerous product backlogs from lower levels in to a larger backlog for a major system, so that’s quite beneficial.

The book’s terrifically well-written, is an easy read, and is formatted such that you’re able to quickly pick up the important bits of Scrum.  It’s a terrific read for anyone looking to bring some sensible, tailorable processes to their software development efforts.

WinDevPowerTools Rollout

WinDevPowerTools.com, the companion site to our book Windows Developer Power Tools is now up and running with some actual functionality behind it!

James has handled the envisioning and implementation for the site, and he’s done a wonderful job.  The site lists all the tools in the book plus a few we had to drop for various reasons.  We’ll be adding more tools as the site continues to grow.

What’s really cool about the site is that you can create your own “toolbox” listing the tools you currently use.  You can create a blog badge to link back to your toolbox and show off the neat gadgets you’re making use of.  You can also cast votes for tools you love, sort of a “tool love” thing.

James got some great features in this initial release, and we’ll continue to roll out new features over time.

Check out the site and let us know what you think!

(We’re still adding tools from the book to the list.  I just finished up RSS Toolkit, which is tool 25 out of 170… It will take a few more days to get the tool list completely loaded up.)

Sunday, January 28, 2007

Our First Interview!

James and I just finished up an interview with Michael Kimsal, host of the WebDevRadio podcast series.  I met Michael at CodeMash where he was bouncing around various sessions and interviewing folks like Joe Brinkman and other folks way smarter than me.

Michael, James, and I spent 50 minutes or so discussing various aspects of Windows Developer Power Tools and what it was like to write the book.  The podcast was a lot of fun to do, and pretty interesting since it was my first-ever interview like that.  We did the interview via a three-way conference call over Skype — another first for me since I’ve <gasp/> never used Skype before.

Michael says the ‘cast should be up near the end of next week or early the following week.  I’ll be sure to brag^H^H^H^Hpost about it when the ‘cast is live.

Friday, January 26, 2007

Silly Installation Programs

OK, I’m already narked that Microsoft waited several months after SharePoint Server 2007 RTM’d to release updated SDK documentation.  Now I’m really narked that the install program doesn’t ask you where you’d like it installed.  Instead it seems to arbitrarily pick a drive to toss the “Windows SharePoint Services Developer Resources” directory on.  This time it decided to throw it out on the external USB drive I use for backups.

Note that I don’t carry that drive with me, which means I wouldn’t have access to the SDK when I leave home for work.  Which is nearly every day.

Oh, by the way, the folks who built this install package also made another nice choice:  they don’t tell you where their materials landed! 

If you create install packages for software, please take note of a couple things which ought to be common sense, but are far too often not:  1) Most users at least want an option to specify where stuff lands.  2) Even more of those most users would like to know where that stuff lands if you won’t let them decide.

(I later found that the WSS SDK will let you specify a path on the command line.  Ooops.  Still, shouldn’t that be part of the UI to prompt for that?  Yeesh.)

My CodeMash Photos Now on Flickr

I’ve finally gotten my photos uploaded to Flickr.  A bunch of folks have uploaded and tagged with CodeMash, so you can see about ten billion shots of Brian and Josh getting their heads shaved…

Monday, January 22, 2007

Wireshark for Sniffing Traffic

David Douglas was nice enough to participate in Tools Day on Friday with this nice list of his favorite tools.  One of the gems on his list was Wireshark, the evolution of what was formerly known as Ethereal.  I used to make use of Ethereal some time ago, but had lost track of it.

Real geeks can’t get enough of packet sniffers, so I’m off to see how Wireshark looks.  Wooo!

Sunday, January 21, 2007

More CodeMash Success!

How successful was CodeMash? Check out the #1 search on Technorati this weekend.

CodeMash Wrapup

I’m home, I’m winding down, I’m exhausted.  CodeMash 2007 seems to have been a resounding success, at least if initial blog scans are any indication. 

(At least aside from one post by a guy who complained about not having hot food.  Guess he must have missed the dinner buffet…  Another guy complained about the event having a “very strong pro-Microsoft slant” although only nine of the 40 sessions were on MS technologies and two of those were on Open Source tools in the MS environment!  I realize we can’t make everyone happy, but yeesh!)

It took months of hard work to get CodeMash fired off, and I was very happy to see that we got through it without any major potholes.  Brian and his crew from Quick Solutions did an amazing amount of work getting the registration system in place and getting somewhere around 260 attendees, staff, and sponsors checked in and handled.  Darrell took the huge job of handling all attendee coordination with the Kalahari Lodge and did an outstanding job.  JasonG got all our speakers nailed down and shepherded during the event, plus handled rounding up room proctors at the last minute due to us having completely missed the boat on that during planning.  Oops.  Dianne bounced all over the place, helping out JasonG with speakers, helping Darrell with hotel issues, helping me with venue issues, and provided a much needed bit of common sense in many areas.  JasonF herded all the sponsors around in good order and kept them happy — and hopefully interested in coming back next year!  Drew and Josh got us great support from Microsoft and knocked many things off the task list as well.  All y’all folks are awesome to work with!  You folks made this event a terrific one.

Things are still a blur, but a few of my highlights would include:

  • Sitting at the dinner table with Tom and Mary Poppendieck and hearing their stories about their bike travels.  (Their insight and excitement on the right way to do good software is pretty good too, by the way…)
  • Getting Bill Wagner’s thoughts on how to try and develop a company culture that intensely values professional development.  (SRT Solutions sent something like five of their small crew to CodeMash — and told them to go sit in on sessions that were completely outside their normal domains.)
  • Sitting in on a small-group lunch with Scott Guthrie and hearing his passion and enthusiasm on a wide range of topics.  (Plus I also got an opportunity to thank him for the number of folks from his group who contributed to my book — plus he accepted a copy of the book and even mentioned it during one of his sessions!)
  • Watching all the Open Spaces sessions take off.  We didn’t push this aspect of CodeMash much this year simply because it was the event’s first year.  We’ll pimp these a heck of a lot harder next year!
  • Hearing all the buzz and excitement from attendees in general.
  • Not barfing, drooling, or otherwise stumbling too badly during my presentation on Open Source Test Tools.  (Of course, I haven’t seen the evals yet…)
  • Having a long conversation with Brian about what it takes to get a great development team formed.  Brian’s an amazing guy who is extrordinarily passionate and open about helping folks push off in the right direction.
  • Meeting a lot of great folks like Keith Elder, Michael Letterle, Michael Kimsal, Joe Brinkman, and a bunch of other great folks who I’m forgetting to mention here.

The organizers are already talking about putting together another CodeMash, but we’re not sure when that will happen.  We’re thinking of moving the event to November instead of January, but frankly we’re not going to figure that out until after we recover from this one!

Many, many thanks to the sponsors who made the event possible, and many, MANY thanks to all the great folks who showed up and made this an amazing event!

Thursday, January 18, 2007

CodeMash: The First Day

CodeMash has been great so far, at least from the perspective of we folks on the organizing committee.  Very few hiccups, all easily handled.

Last night started out with a panel discussion moderated by Bruce Eckel with luminaries like Neal Ford, Bill Wagner, Jay Pipes, James Wolf, and somebody else who I’ve forgotten (sorry!).  It was a pretty amazing bit of great mindmeld info getting tossed about — and some very good insights on a whole lot of topics.

Today I sat in on a bit of Neal Ford’s keynote on domain specific languages.  Neal’s a great speaker with a lot of great content.  (He also mixed examples of classic Greek art in among his technical discussion — and actually tied it in!)

I also sat in on Scott Ambler’s killer presentation on OpenUP, a great process framework which has a lot of Rational’s RUP, but is much lighter and more Agile-y.  Highly useful, and something I’m going to look at more closely.

(And on an interesting note, Josh Holmes said he’d shave his head if Technorati shows 500 posts about CodeMash by tomorrow evening — and Brian Prince said he’d do his if we hit 600.  It will be interesting to see if they’re still hirsute come Saturday morning…)

Monday, January 15, 2007

MbUnit Support for ReSharper's Test Runner!

Wooo!  Albert Weinert has written a plugin for ReSharper that will drive MbUnit tests.  Man, am I happy happy happy!

(Via the JetBrains blog)

Fixing Fitnesse FileNotFoundException for NAnt.Core

So I’m working on my Open Source Test Tools presentation for CodeMash and I’m just getting my Fitnesse bits up and running on my work laptop.  The same set of test pages which worked great on my other box are all of a sudden barfing all over the place and giving me “System.IO.FileNotFoundException: Could not load file or assembly 'NAnt.Core, Version=0.85.1932.0” with some other garbage.

Huh?  What’s up with that?

A bit of beating my head on the table and I realize that I’d munged up a table in the source.  I had this for a table:

|'''Only Edit Below This Line'''|JHSCR.FitFixtures.HourlyWagesFixture||rate|hours|wages?||33.22|80|3322|

instead of this:

'''Only Edit Below This Line'''!|JHSCR.FitFixtures.HourlyWagesFixture||rate|hours|wages?||33.22|80|3322|

Note the “|” character mistakenly added on the first line, and the missing “!” on the second.  Duh.  Thankfully I figured this out after only 20 minutes of lost time.  Bah!

I make these mistakes so you don’t have to!

Sunday, January 14, 2007

Book Review: Code Craft

Code Craft: The Practice of Writing Excellent Code, by Pete Goodliffe.

No Starch Press,  ISBN 978-1593271190

This book’s a terrific resource for developers wanting to learn or teach good coding practices.  This book is all about how to do software construction the right way.  The book will inevitibly suffer from comparisons to McConnell’s Code Complete, Second Edition — that’s a very, very tough shadow to try and get out from.

Code Craft seems to me to stand up to that tough comparison.  Goodliffe’s writing style is easy to read, and the points he makes are critical to folks who give a hoot about writing good software.  The book’s topics are well thought out, running from defensive coding practices, through the importance of coding standards, solid design, good processes, and a high-level view of methodologies and practices.

The level of detail is generally right on, although on occasion a passing reference is tossed out in a critical context without additional examples.  One of these cases would be his blurb to “consider the Cheshire cat/pimpl idiom” without the least discussion of exactly what the heck that is.  However, and this is important, in many such cases Goodliffe provides a bibliography citation on such topics, which means you can chase down that reference in some other work.  While sometimes annoying, such an approach helps keep the book from being a complete monster — it weighs in at around 580 pages.

I very much liked the on-topic sidebars scattered throughout the book.  They show great examples which tie in with the current topic, such as showing when the right time to use defensive programming is (all the time!), or some quick discussion on how to approach licensing your software.  I also like the 10,000 Monkeys comics dotting the work.  They’re amusing and keep the tone of the book light but still focused.

Code Complete is such a seminal work that Goodliffe’s book will probably have a bit of a tough time making the inroads it deserves simply because McConnell’s work has such a head start.  Still, Code Craft is a solid book and highly useful to all developers, and it deserves a place on the bookshelf.  (And you should read it, not just have it on your shelf.)

Windows Developer Power Tools: Tools Day

James and I are having an official launch day for Windows Developer Power Tools: Friday, 19 January.  I’ll be at CodeMash and will be carrying along a number of books to give away at the launch.  I’ll be running around the halls helping put the conference on, but will also be spending time at the NuSoft Solutions booth where I’ll be putting on a few Grok talks and otherwise hanging out.

To help promote the book the very smart folks at O’Reilly came up with a terrific idea: Windows Developer Tools Day.  The idea is to ask bloggers post about their favorite tools on Friday, 19 January.  The tools don’t have to be ones in the book, just tools that help you get things done during your development work.  It would be nice if folks mentioned the book as they’re writing their post, but they certainly don’t have to — but you should mention that the post is part of Windows Developer Tools Day.

Write your post and then send off an e-mail with your post’s URL to Kathryn Barrett at O’Reilly (kathrynb AT oreilly PERIOD com).  She’ll post your URL and a short blurb from your post at the O’Reilly Windows Developer Center.

The folks at O’Reilly may even be able to work out some sort of contest for bloggers who contribute to Tools Day, but that’s still unclear at this point.

Got a favorite tool you love?  Write about it on Tools Day (next Friday)!

Thursday, January 11, 2007

WinDev Power Tools: I Goofed!

I made a bad mistake in Windows Developer Power Tools: I missed getting Eric Lawrence’s bio in the Contributors section.  Eric makes a number of great tools and he wrote a nice article for us on perhaps my most-ever favorite tool: SlickRun.

I’m very sorry I missed getting him listed in the Contributor.  In the lines of “Better late then never” I offer up Eric’s nice bio here:

Eric lives and works in Redmond, Washington and is the author of a number of freeware tools available from http://www.bayden.com/other/.  He currently writes most of his code in C# and C++, but after 10 years of working on SlickRun, he maintains a certain fondness for Borland Delphi.

My most embarassed apologies to Eric!

Tuesday, January 09, 2007

Windows Developer Power Tools Book Launch!

Windows Developer Power Tools has shipped, in case you missed my other post.  You may also have read a post or two about CodeMash on this blog of late.

How about combining the two?  Go register for CodeMash, then stop by and see me at the booth my company NuSoft Solutions is sponsoring at CodeMash.  I’ll have a couple boxes of the book to give away as part of O’Reilly’s launch of the book — but frankly I’d just be tickled to gab with anyone who actually reads my blog!

On a related note, I got a copy of the book’s press release today, and I got a terrific hat with the logo “O’Reilly Author” on it yesterday.  For whatever reason, those two things made this whole book thing seem much more real than getting the actual books delivered on the doorstep.

Monday, January 08, 2007

SharePoint 2007 RTM Documentation & Examples

So Microsoft Office SharePoint Server (MOSS) has been out in RTM for a month or so.  It’s a sweet product and gives companies a helluva lot of value out of the box — and scads more value as you begin to customize and adapt it for use in a company’s business environment.

Unfortunately, that’s tough to do without documentation that matches the current release.  The SDK dox were just put up on MSDN a couple weeks ago, but they’re not available for download, and none of the various example packs or starter kits have been updated.  That sure makes it tough to try and stay on the bleeding edge of releases, but then I suppose that’s why they call it the “bleeding edge.”

Folks at Microsoft say the next wave of documentation and starter kits will be released at the end of the month — two months after RTM.  That’s frustrating and makes it a heck of a lot harder to get things rolled out in the latest version.  Bah.

Thursday, January 04, 2007

The Infamous Five Things

So I got tagged by Dustin Campbell, Jason Follas, and Dan Hounshell for the “Five Things You Didn’t Know About Me and Likely Didn’t Care About” meme.  Here goes:

  1. I used to have a five hour per day commute when my wife and I lived in Germany years ago. It sucked. I've got two hours on the road now. That still sucks, but much less than five hours.
  2. I used to write an online column about wine and food called “Jim’s Kitchen” when I was a member of CompuServe’s Wine Forum.  It’s not this Jim’s Kitchen, nor was it in this usurper of the true, old Wine Forum.
  3. My best moment ever, besides getting married or seeing my kids born, was leading a team which won the Elmendorf Air Force Base volleyball championship in 1991.  I was a player/coach with a great group of guys who weren’t the best athletes, but gelled as a team and worked their butts off.  We beat a group of great athletes who were a bunch of cocky, undisciplined, and completely ego-centric assholes.  Critical Lesson Learned: Hard work, passion, teamwork, and dedication will almost always triumph.  I still count that championship as my top non-family moment ever.  Unfortunately that same group of jerks beat us the next year, but I had a different mix of team members and I didn’t do a good a job of leading them.  Good lesson there, but that’s for another story sometime.
  4. I’m a fan of The Greatest Secret Agent in the World.
  5. I once was a part of the greatest drum and bugle corps around: The Keesler Blue Knights.  Don’t even think about asking me to pick up a horn these days — I wasn’t that good then, and it’s been, uh, a lot of years since then.

Folks to tag: Josh Holmes, James Avery, Dave Donaldson, Brian Prince, and John Hopkins.

Wednesday, January 03, 2007

We've Been Hanselized

Scott Hanselman is one very busy guy who is a serious geek in all things techogadgetry.  He was kind enough to put in some serious technical reviewing on Windows Developer Power Tools for us and work was some serious tough love but needed in order to help mould the book into the great shape it’s in.  He also wrote a nice foreword to the book where he reminisces about many of the same tools I used long ago: QEMM, Stacker, Norton Desktop, and a passle of those widgets that were so helpful and are now relegated to dusty corners of a 5” floppy disk cabinet.

Scott talks a bit about the exchanges we had during the review process, but seems to have taken my comments on his comments in good stride.

James and I got incredibly lucky with having great folks like Scott, Bill Wagner, Sam Gentile, Marc Holmes, and a number of other great folks on board as technical reviewers.  The book’s high quality is directly due to feedback from them and others!

Many thanks to the reviewers and of course the contributing authors who helped shape this book.

Tuesday, January 02, 2007

CodeMash: Room Rates Extended Further!

The folks at the Kalahari Lodge have extended their killer $88 room rate for the CodeMash conference again!

You just can’t miss out on this great opportunity!

Go register now!

Monday, January 01, 2007

Book Review: Interface-Oriented Design

Interface-Oriented Design, Ken Pugh, The Pragmatic Programmers.  208 pages.

This is a nice, concise work on approaching system design from the interface-based viewpoint.  It’s nice because it’s language-independent and deals with most of the concepts from a psuedo-code viewpoint.  Most, but not all, of the actual implementation is in Java, but .NET folks ought not have any trouble making the leap to their platform.

This book didn’t quite grab me the way the interface-specific bits of Löwy’s .NET Components, 2nd ed.or similar parts of Robert and Micah Martin’s Agile Patterns and Practices in C# did, but it’s still a great book on its own.  There are a number of very valuable sections in Pugh’s work that don’t get covered in the Löwy’s or the Martins’ books.

Examples of very useful topics include good discussion on stateless versus stateful interfaces or why and how one might go about transforming interfaces from one shape to another.  (Adapter and Facade patterns are covered later in the book.)  There’s also an entire chapter to help you decide on what sorts of things should go in interfaces — and the printer examples in that chapter are particularly clear and useful.

I also liked Pugh’s use of his own Interface Responsibility Interaction cards, Pugh’s take on the extremely useful Class Responsibility Collaboration cards covered in various works by Ward Cunningham, Kent Beck, and Rebecca Wirfs-Brock.  IRI cards are a great way to help you create clear contracts for your designs.

Pugh’s coverage of  a URL link checker and Web conglomerator are practical examples showing how interfaces help in real world applications, not just some contrived, overly simplified bits.  Additionally, his closing chapter on patterns is extremely useful and hits several vital patterns: Factory, Adapter, Facade, and Composite.  His discussion of each includes, gasp!, pros and cons of each pattern — something we all ought to understand since blithe use of patterns can cause more problems then they solve.

Overall it’s a very solid book and a good addition to a programmer’s bookshelf.

(Plus he dedicated the book to “Nameless II, the cat who sat on my lap while I typed this book” so that scores bonus points with me.)

Friday, December 22, 2006

The Book Is Out!

It’s here!  Woo!

Pretty amazing to come home from an errand and find a massive box on the stoop!  (I have to use “stoop” because a new hire is a UK expat so I’ve got to learn the lingo.)

Wednesday, December 20, 2006

CodeMash: The British Are Coming!

We’ve actually had two folks from a firm in the UK register for CodeMash!  They’re coming over specifically for CodeMash and hope to tie their visit in to a client site visit, but the client work is secondary.  They’re looking at CodeMash as a very unique forum for networking and “getting some cutting edge ideas.”

Let me tell you: if you’re whining about having to drive four hours up from Cincinnati to attend CodeMash then I don’t want to hear it!  These two are travelling over an ocean to attend!

One of the travellers remarked on the motivation for attending CodeMash: “…there’s nothing like this in Europe at the moment.”  How amazingly cool is that?

CodeMash: Go register now.

Monday, December 18, 2006

CodeMash: Low Room Rates Extended!

If you haven’t yet registered for CodeMash, then I’ve got good news for you!  The great folks at the Kalahari Resort in Sandusky have extended the great room rate of $88 until 28 December.

The agenda for CodeMash is finalized and it’s loaded with amazing stuff regardless of the language or platform you’re currently involved with.

Looking to learn more about what’s happening in .NET?  Look up the sessions on Smart Clients, Closures in C# 3.0, Data-Driven Applications with LINQ, or Tips and Tricks for ASP.NET 2.0 and AJAX.

Want to find out things on some of the “newcomer” languages you’ve not explored yet?  Check out the sessions on Enterprise Python Architecture, Rails and Ruby Introduction, or Caffienated PHP.  (And some of those languages are older than Java, BTW…)

What about you folks who are happy with the language you’re in and aren’t interested in expanding that envelope?  Then you need to attend larger-scope talks on design, architecture, and methodologies from great minds in the industry.  Check out the keynotes and sessions like Lean Software Development, Beyond Test Driven Development, Source Code Management with Subversion, and The Productive Programmer.

The conference fee is $149 and rooms are $88 per night.  That’s an insanely cheap price to hear folks like Neal Ford, Scott Guthrie, Bill Wagner, and Bruce Eckel talk.

Go register!

Sunday, December 17, 2006

CodeMash: Early Bird Discount Ending!

The Early Bird discount for CodeMash ends tomorrow.  That means you’ll have to pay $149 instead of $99 for the conference rate, and you’ll lose out on the killer $88 rate for the great rooms (and waterpark access!) at the Kalahari Lodge.

I’ve blogged the heck out of this event because it’s going to be an amazing one.  Don’t lose out on your early bird rates — get on top of things and get cracking!  Go register now!

Exciting New PowerShell Book!

Manning Press always impressed me with their books I gotten in the past.  Java Development with Ant is a terrific book if you use any automated build system because the book lays out a great methodology for approaching and implementing automated builds.  Hibernate in Action is critical if you do any work at all with O/RM systems and specifically if you work with Hibernate or NHibernate.

The only problem with Manning was that they were slow to get into the .NET space.  That’s changed, however, and now they’re slowly building up a nice catalog of good-looking books on great topics.

I’m particularly excited about the early release copy of Windows PowerShell in Action I just got.  I haven’t gotten far in to the book, but it appears to do a great job of laying out the basics and nitty-gritty of PowerShell.

I fooled around with PowerShell as part of working on my book, but left off playing with it months ago.  PowerShell in Action will push me to do more playing with Monad I mean PowerShell, and perhaps even get some real work done.

Thursday, December 14, 2006

Testing Events with Anonymous Delegates

Phil Haack has a nice post showing how to use anonymous delegates to test the source of events.  Anonymous delegates are something I’ve only scratched the surface with, so it’s nice to see a great, practical use for them.

Tuesday, December 12, 2006

Book Review: Agile Principles, Patterns, and Practices in C#

I’m not completely through this book yet but it’s such a great one that I wanted to plop out a quick review of it to pass on the word.

Are you sick of books on XP which seem too much like mystical hand-waving with really shitty lousy examples of paired programming sessions?  Are you sick of books on patterns which are too convoluted and abstract to make any sense at all?  Are you sick of books full of silly, contrived examples which don’t make any real-world sense?  What about books on UML which approach it from a near-religious dogma direction with no room for any deviation or common sense?

If so, then you badly, badly need to read Agile Principles, Patterns, and Practices in C# .  This book, written by the father/son team of Robert and Micah Martin is part of the impressive Robert C. Martin series on Agile from Addison Wesley/Prentice Hall.

This book is amazingly great from start to finish.  All the basics of good agile development are covered clearly and sensibly in the first section: what agile is, how to go about it, why testing and planning are so critical, and where refactoring fits in all of this.  Design and general patters are hit in the second section, again in a clear, concise, and sensible fashion — and with common sense thrown in. 

The final two sections cover a real-world case study implementation of a payroll system.  Here the rubber meets the asphalt: walking through use cases, building transactions based on smartly-chosen patterns, discussion of what patterns make sense where and why, implementation, packaging, and evolution.

I found myself shaking my head in wonder as I read this book and stumbled across one nugget of gold after another.  Some bits of goodness pop out in the middle of nowhere simply because the authors are so well-versed in their domain that they’re letting fly wisdom even when discussing other topics.  An example of this is in the XP pairing session episode where some discussion of increment operator side effects is tossed in the middle of another discussion stream.  You read that section once and pass over it, only to do a head check, bounce back and re-read it while nodding your head and saying “Yeah, that’s absolutely right and I might not have caught that otherwise.”

As an aside, this book had the first XP paired programming episode I’ve ever read which didn’t make me barf.  Other example episodes were so contrived and smarmily written that I thought for sure I was going to heave.  This pairing epsiode is real life stuff, complete with some strong discussion between partners, good examples of refactoring and patterns, and also shows the developers making and recovering from various mistakes.

Another bit of greatness is the chapter on UML.  The authors are emphatic about keeping UML tightly in check and using it only in specific cases where it makes clear sense.  Mountains of UML diagrams are not the answer; the authors show where a few concise diagrams make perfect sense.

More goodness can be found throughout the book in the gems relating to any number of design issues such as a small example of a problem the authors put forth to students of their various design/patterns courses: build a coffee maker.  The authors go through the most common result they see and show the specific problem areas of that solution — and then show a solution that is amazing in its simplicity, elegance, and maintainability.

Micah Martin, the co-author and son of the other co-author Robert Martin, makes a great statement in his introduction to the book.  He talks about his father’s first edition of the book (winner of the 2003 Jolt Award) not making much of an impact on the .NET community.  This new edition, specific for C#, certainly should make a tremendous impact on the .NET community.  If it doesn’t then we have ourselves (or our colleagues) to blame for not caring enough to improve ourselves by reading seminal works.

This book is a critical read for folks at any level of experience.  I’m going to do my best to make sure it gets on the required reading list for developers at my company.

(Go register for CodeMash, by the way.)

Good Series on Building a Web Site

Dan Hounshell, a good buddy from the Dayton .NET Developers Group, is writing a series of blog posts on a site he’s architecting.  Dan’s a very smart guy and writes very well, so his series should be well worth reading.  Dan’s focusing on building his skills in a few new tech areas and is using the site as a vehicle for that learning.  His series is a great idea and I’m looking forward to watching it progress!

Win a Zune!

Want to win a Zune?  Drew Robbins came up with a great contest: Blog about CodeMash and have a chance to win a Zune!  Details on the CodeMash site.

Six days left for you to register at the early bird discount rate — and get the insanely low price of $88 per night for rooms.

For you procrastinators: Be advised that after 18 December you won’t be able to get the discount rate, and you may not be able to get a room at all.  Kalahari Lodge sells out fast this time of year and the block of rooms they’re holding for us goes away after the 18th.  Move fast.  Move now!

Book News: Off to the Printer!

I’ve just gotten word from my editor today that Windows Developer Power Tools is going off to the printer on Thursday.  It will hit warehouses (and the doorsteps of contributors) around 20 December. Wow!

I’m not sure when orders will head out from places like Amazon, but I’d think it will be shortly thereafter.

James and I started off on this adventure nearly a year ago, writing up the proposal some time around February and getting underway in late March.  (I think.)  It’s been a heck of a ride and I’m really looking forward to seeing the end result land on my doorstep in a few weeks.  Whoof.

Monday, December 11, 2006

CodeMash: Spread the Word Via a Flyer!

So I’m sitting in a nice cottage right off the beach in Vero Beach, Florida with nothing better to do than sip a little bit of Iron Horse bubbly and clean up after a nice dinner eaten while looking out at the Atlantic ocean.

Yeah, my life sucks.

But back to more important things: Help spread the word about CodeMash!  We’ve got a great flier which talks about CodeMash — print that out and hang it up around your workplace or share some copies with colleagues and other interested geeks.  Also, a few days ago I wrote a post that highlights the value of folks attending such a conference.  This is great fodder for convincing your boss to either let you go to CodeMash or better yet pay your way there.

Thursday, November 30, 2006

Off for Vacation!

Notice to all: You’ll be spared more rants about CodeMash for a bit: we’re taking off for a long vacation to celebrate my wife’s retirement from the Air Force.

I’ll be hard at work on a Disney Cruise for the next chunk of days.

OK, maybe not so hard…

But while I’m gone you really should go register for CodeMash.  Really.

Wednesday, November 29, 2006

Why Conferences Matter, and How To Pitch To Your Boss

So my blog has been 90% CodeMash of late.  Go figure.  If you’ve read my blog for long you know that I consider good conferences as potential watershed events in the career of geeks.  Software Development Expo West in 2003 was such an event for me, and I’m passionate about pushing Code Camps and other conferences as great ways to improve your skill level and explode your passion about your field.

But how do you convince your management that attending conferences isn’t just them tossing money away without any chance of a return on their investment?  Below is a pitch that might help out.  Yes, it’s framed in CodeMash terms, but that’s becase CodeMash is an insane value when you consider who you get to interact with for two days. 

Maybe try this approach if you’re getting pushback on the cost of a conference.  It may just work for you.

So on to the pitch:

Your developers are a critical asset to your company, relied upon to help solve tough problems in your business and bring value to your bottom line.  To effectively do their job, these developers must possess an odd conglomeration of skills, including problem solving, artistry, engineering, and mystical hand waving.  Keeping those skills honed is vital if your developers are going to remain at their best – but how can you provide skills development for those folks without breaking the bank?

One of the best ways to keep your development staff at the top of their game is through ongoing education, and one of the best venues for ongoing education is software developer conferences.  Conferences provide a tremendously motivating, educational environment where your technical staff can attend sessions from industry leaders, hear keynote addresses from luminaries who drive great changes in their domains, and gather with peers to discuss everyday problems.

CodeMash (www.CodeMash.org) is a unique conference for software developers in and around the Heartland region (MI, OH, KY, IN, IL, PA), and is being held 18-19 January, 2007 in Sandusky, Ohio.  CodeMash will bring together a large number of developers from the Java, Ruby, PHP, .NET, and other communities for this ground-breaking event.  CodeMash features some of the software development industry’s greatest minds who will present sessions on a wide range of topics.  

CodeMash will feature keynote addresses from three industry leaders:

·         Scott Guthrie, Microsoft Developer Division Manager

·         Neal Ford, noted author and Architect at ThoughtWorks, Inc.

·         Bruce Eckel, industry leader and CEO of MindView, Inc.

Attendees will be able to select from a wide range of more than 40 sessions presented by nationally and regionally recognized experts on a wide range of topics such as:

·         Curry Favor with Closures: An Introduction to Functional Programming in C# and VB.NET (Bill Wagner, Microsoft Regional Director, Microsoft MVP and author of “Effective C#”)

·         SOA as a Conversation (Ken Faw, Regional Practice Director, Perficient, Inc.)

·         The Productive Programmer (Neal Ford, editor “No Fluff, Just Stuff”)

·         Let NHibernate Be Your Data Access Layer (Dave Donaldson, Microsoft MVP)

·         Lean Software Development (Mary Poppendeick, internationally recognized expert on agile/lean development and author of “Lean Software Development”)

·         Maximum Velocity MySQL (Jay Pipes, North American Community Relations Manager, MySQL)

·         Improve Your Testing with Open Source Test Tools (Jim Holmes, Microsoft MVP and author of “Windows Developer Power Tools”)

·         EJB3 – What’s New? (Joseph Faisal Nusairat, author of “Beginning JBoss Seam”)

·         Ruby on Rails for Java Developers (Rob Stevenson, Quick Solutions, Inc.)

Normally conferences can be a costly proposition, running thousands of dollars for registration and hotel fees.  However, CodeMash is a community-driven, non-profit event run by volunteers – which means the event’s prices are incredibly low: $99 registration fee (early bird, expires 18 December), and  room rate of $88 per night at the fabulous Kalahari Resort (www.KalahariResorts.com).

You’ll need to act fast, though: CodeMash’s early bird discount ends 18 December, and the special room rate of $88 isn’t guaranteed past that date.

CodeMash’s payoff to your company is tangible: improved developer skills and motivated, excited teams who are fired up to solve your tough business problems.

CodeMash: Scott Ambler is Speaking!

Holy friggin’ smokes.  We just got news that Scott Ambler will be coming to CodeMash to give a couple talks.

I am completely flattened at the amazing quality of industry-leading talent we’ve got lined up.

Scott Guthrie.  Mary Poppendeick.  Bill Wagner.  Jay Pipes.  Bruce Eckel.  Neal Ford.

And now Scott Ambler.

You are missing one great opportunity if you don’t go register now.

Why Some Folks Object To Agile

Elisabeth Hendrickson is a Very Smart Tester who writes a lot of good stuff on her blog.

One of her latest posts talks about why some folks object to Agile out of fear, ignorance, whatever.  One particularly salient bit: “Most of all, I wonder when those people with so much to say against Agile actually listened enough to figure out what it is.”  I once had to deal with a guy who insisted that Extreme Programming was simply “hacker coding.”  It was readily apparent that this guy was simply scared of being losing some of his control freak turf.

Elisabeth’s post is short and well worth reading!

'Tis The Season

Christmas is nearing, that’s for certain.  Forget the Black Friday sales insanity.  There’s one certain indicator Christmas is right around the corner: A Charlie Brown Christmas hits the airwaves.

That’s where we spent a half-hour tonight, and there’s no better way to tamp down one’s stress level than to watch such a classic with two small kids, a nice wife, and a bowl of popcorn.

Tuesday, November 28, 2006

Dayton-Cincy Code Camp Registration Open!

The second annual Dayton-Cincinnati Code Camp is now open for registration!

The camp will be held on 24 March, 2007, at the Wingate Inn in West Chester, Ohio. 

The Code Camp will be free and full of great content.  Make sure to take advantage of this terrific event!

Sunday, November 26, 2006

CodeMash Session List Is Close to Finalized!

We’ve been working tremendously hard on lining up sessions for CodeMash and we’ve got a pretty amazing list of sessions so far.  We’ve had something close to 100 submissions and have winnowed them down to around 30 so far.  We’re leaving some room for expansion since the submission deadline is November 30th, but we wanted to get content up on the site to show how great this conference is going to be!

In case you’ve just started reading this blog, let me recap what CodeMash is all about:  CodeMash is a community-driven, non-profit conference for software developers being held 18–19 January, 2007. It’s a cross-platform, cross-language conference meant to bring together folks from a wide range of software development communities.  The energy and knowledge transfer that happens at such events is really pretty staggering, which is why we’re so excited about CodeMash.

As a side note, I went to SD West in 2004 and it was a life-altering experience.  Seriously.  I got to hear folks like Josh Holmes, Steve McConnell, Elliotte Rusty Harold, Alan Holub, Scott Meyers, Michelle Leroux Bustamante, and a bunch of other amazing folks from a lot of different knowledge domains.  It was a completely transforming experience that was directly responsible for me completely changing the course of my career.  I’m not saying that CodeMash will be the same thing for you, but I can certainly hope it is!

Back to CodeMash.  We’ve got technical content from Gadgets in Vista to EJB3.  (That’s Java stuff for you .NET folks.  Duh.)  We’ve got methodology stuff from Test Driven Development in Python to Lean Software Development.  We’ve got platform agnostic stuff from Open Source Test Tools (by, cough cough, yours truely) to The Productive Programmer.

Looking for stellar, industry-leading speakers?  How about keynotes from Scott Guthrie of Microsoft, Neal Ford of ThoughtWorks, and Bruce Eckel of Mind View?  Still not good enough?  How about hearing Mary Poppendeick, Jason Gilmore, Bill Wagner, Chris Judd, or Jay Pipes present sessions?

Still not good enough?  How about some of these session offerings:

  • Building and Deploying Smart Clients with Visual Studio 2005
  • Building Enterprise Smart Clients using a Services Oriented Architecture
  • The Productive Programmer
  • Ruby on Rails for Java Developers
  • Real World Continuous Integration
  • Let NHibernate Be Your Data Layer
  • SOA as a Conversation
  • A Tale of Two Web Toolkits: TurboGears and the GWT
  • Selenium radically simplifies testing Websites!
  • Ruby on Rails for Java Developers
  • What makes Rails possible: an introduction to the Ruby language
  • Lean Software Development
  • Introduction to Ajax
  • Beyond TDD: Exploring the benefits beyond testing.
  • JRuby - Wonder Twin Powers, Activate!
  • Curry Favor with Closures: An introduction to Functional Programming with C# and VB.NET

Perhaps one of the neatest things about the conference is its venue: the Kalahari Resort in Sandusky, Ohio.  The Kalahari has great rooms, a great venue, and an indoor water park to boot!  (You can see photos of the Kalhari at my Flickr site.)  The Kalahri’s also given us a tremendous break on rooms: $88 per night.

This conference is going to be terrific, and I hope you’ll register now.  It’s going to be a terrific event!

(Also, please consider passing on word of our sponsorship opportunities — companies will have a great chance to reach out to a pretty unique group of motivated geeks!)

Wednesday, November 22, 2006

More Firefox Vulnerabilities

Firefox 2.0 appears to have a pretty major security issue with its password manager.  As always, discussion in the Slashdot article’s comments thread is pretty funny, ranging from usual excusatory whining to some ascerbic, point-on blurbs.  An example of the latter, from a comment titled “I sense a disturbance in the force”:

...as though millions of Firefox users were laughing at IE users, and were suddenly silenced.
Cue "still more secure" arguments now.

I love me some Firefox, but I’m not blithely accepting that it’s nirvana for security.  One of the few things I disliked about the otherwise terrific book Building The Perfect PC was their ABM mentality on how everything Microsoft was evil and awful and you’d be sooooo much more secure by just installing Firefox and Thunderbird.

Sorry.  Not the case.

Make smart choices in how you go about using your software, and don’t naievely think you’ve got a silver bullet just because the crowd says so.

Tuesday, November 21, 2006

Spread the CodeMash Love!

We’d love to have you help spread the word about CodeMash — so we’ve made that a bit easier: We’ve posted up a one-page flyer which gives the elevator speech for CodeMash.  (“Dude, it’s just coooooool.”)

Feel free to grab that, print off a billion copies and plaster them all over boards at work, telephone poles in your city[1], your neighbor’s garage door, or any other spot where you think interested geeks might see them. (“What about those psyche wards where all those COBOL and assembly language guys ended up in?”  Quiet, you!)

Monday, November 20, 2006

More Community Goodness: Dayton-Cincy Code Camp Call for Speakers!

Do NOT listen to what the heathens from Cincinnati say.  The proper name of the Code Camp slated for March 24th, 2007, is the Dayton-Cincinnati Code Camp.

Last year’s event was a smashing success, and this year’s going to be even better.

If you’ve got an interesting topic to talk about you can help make it better by heading over to the speaker submission page and submitting your ideas for a session.

CodeMash in January, the Dayton-Cincinnati Code Camp in March.  Man, what a great lineup!

CodeMash Sessions So Far

We’ve got the initial 15 sessions approved for CodeMash.  Check out this most impressive list!

  • Intro to WCF (Josh Holmes)
  • SOA as a Conversation (Ken Faw)
  • Improve Your Testing with Open Source Testing Tools (Jim Holmes)
  • Introduction to Ajax (Greg Huber)
  • Using the Microsoft AJAX Library (Greg Huber)
  • High-Velocity MySQL (Jay Pipes)
  • Building and Deploying Smart Clients with VS 2005 (Keith Elder)
  • Building Enterprise Smart Clients Using SOA (Keith Elder)
  • End of Tier-Based Architecture (Owen Taylor)
  • Scripting for Java (Chris Judd)
  • Beyond TDD: Exploring the Benefits Beyond Testing (Ben Carey)
  • Lean Software Development (Mary Poppendieck)
  • Real World Continuous Integration (Joe Wirtley/Dan Hounshell)
  • Let NHibernate be your Data Layer (Dave Donaldson)
  • Building Gadgets for Windows Vista (Drew Robbins)

Add to that two sessions extra from Scott Guthrie and potentially a couple more from Bruce Eckel and Neal Ford — and we’ve still got scads of great abstracts to wade through for Python, SOA, PHP, and more.

Whoof.

Go register now.  Just do it!

Good Paper on Microsoft Security

Michael Howard referenced a very interesting read from ESG: a white paper detailing the security benefits of Microsoft’s adherance to their Software Development Lifecycle for SQL Server 2005. 

This year MySql and Oracle had 60 and 70 vulnerabilities reported against them, respectively, in the National Vulnerability Database.  Microsoft, with their whimsical, uncaring approach to security, had four. 

Re-read that.  The behemoth Borg from Redmond had a fraction of the vulnerabilities of MySql and Oracle.

Microsoft’s far from perfect, and they’ve taken some well-earned bashing for their past attention to security — but you’re going to have to work long and hard and have a lot of non-tinfoil hat evidence to convince me that they’re not deadly serious about security these days.

Friday, November 17, 2006

Terrific Upcoming Presentation for Dayton DevGroup!

Dustin Campbell of Developer Express will be heading down here to Dayton next month to give his “Back to Basics” talk.  Bill Wagner wrote a nice review of Dustin’s talk — and I can’t wait to hear it.

I’m all over this kind of stuff: keeping solid fundamentals while making best use of the nifty technology that’s around you.

CodeMash: Learn About Writing A Book

The organizing committee is beating around a seriously cool idea for CodeMash: a moderated session where some of the many authors who will be at the conference gather together and talk about what’s involved with writing a technical book.

I was knocked over by the suggestion!  I’m all over sitting in the same room and listening to some of the highly accomplished authors like Bruce Eckel, Jason Gilmore, Bill Wagner, and similar folks talk about how they’ve done their books.

This still hasn’t been completely fleshed out yet, but I’m certain we can make this one work.  It’s a terrific concept!

I'm Speaking at CodeMash!

I got the word yesterday that I’ll be talking at CodeMash too!  I’ll be giving a variant of my Open Source Test Tools talk, this one geared a little more to the general testing community, not just .NET.  I’ll still cover a few of my favorite things (MbUnit and Zanebug), but will make some things a bit more general — like talking about mock objects at a higher level while still gabbing about Rhino.Mocks.

Whee!

What?  You’re still not signed up for CodeMash?  Get off your duff!  Go sign up now!

Wednesday, November 15, 2006

Book Update: QC1 Review Done!

Whoof.  I’ve just, literally, sent off the last comments on the first round of final proofs for the book. This round is called QC1 and is where the Word documents we’ve been working on for the last nine months are sent to O’Reilly’s Production department and converted into their final production format.  (I think it’s some variant of Frame, but I’m not sure.)

The conversion process is a bit unweildy, so we had to do some close checking for problems with figure and section placement, but it’s pretty amazing to see the book’s pages so close to what they’ll really look like.

I also found myself re-reading things I’d forgotten about.  (Hey, it’s 1200 or so pages and I’ve been writing for nearly nine months now.  Give me a break!)  All the chapters are good, but the chapters on testing, code metrics, and Windows utilities are particularly special.  The testing chapter (122 pages!) is really terrific with articles on mocking tools, test frameworks, test runners, and several other goodies.

If everything proceeds on schedule you’ll be able to find the book in stores just in time for Christmas.  Woo!

My eyes are bleary and the espresso I had a couple hours ago has finally worn off, but I’m happy to have passed another milestone in the book’s production!

Tuesday, November 14, 2006

Calling All Python Geeks!

Are you a Python Geek or Geekette?  Passionate about your language of choice?  Feel like talking to a large crowd of folks interested in learning more about Python?

Go over to the CodeMash Call for Speakers page and submit an abstract for a session!   We’re short on Python sessions and would love to add some content to the line up.

Keep in mind the general mission of CodeMash: promote cross-technology education and community growth.  Sure, we’re very interested in 300–level sessions for true geeks, but 200–level gigs explaining the ins and outs of your technology and how to best apply it are a big part of what we’re shooting for.

CodeMash Sessions Going Live!

We’re starting to approve abstracts for CodeMash sessions, and the first two are simply killer ones!

Mary Poppendieck will be giving her Lean Software Development talk, and Dave Donaldson will be talking about the killer goodness of NHibernate.

We’ll get a schedule up in the next few days, but in the meantime, keep your eyes posted on CodeMash’s homepage where you can read news announcements.  Subscribe to the RSS feed there if you’d like and you’ll be kept appraised of all the latest developments.

This is going to be one great conference!

(Man, I can’t believe we scored the Poppendiecks to do a talk!)

Monday, November 13, 2006

iTunes 7 Stinks

Just a bit of a rant on the latest version of iTunes.  It sucks.  Massively slow, causes all kinds of grief and lousy sound quality on my system.  Lots of lovely music I’ve loaded in to the cursed thing and I can’t listen to crap because every new song hangs, skips, and gurgles for 20 seconds until this crappy software gets itself straightened out.  All this while I’m crashing on a reviewing deadline for my book — and I need  my music for that!

Version 6 was lovely.  Version 7 is a steaming pile of dung.

Aaarrrgh.

(I figure I’m suffering about it, so why shouldn’t you?)

Friday, November 10, 2006

Great NHibernate Resource

I used to blog about NHibernate quite a bit a year ago, but haven’t used it in some time.  Not because I’ve lost interest in it, but I kind of had a book take over my life and suck out any development time.

My pissy, tangental whining aside, Dave Donaldson has release an absolutely killer resource for you who use NHibernate: NHibernateRepository, a configurable assembly which gives you a terrific access point in to NHibernate.

What?  You aren’t using NHibernate?  Go check it out and think about how nice it would be to get great db performance without having to write any stored procedures — and get away from those eeeeeevil DataSets.

(OK, DataSets make good sense in some places.  But NHibernate’s still wicked cool and wicked useful.)

CodeMash Registration Live!!

Do you want to hear some incredible folks like Scott Guthrie, Bruce Eckel, and Tom and Mary Poppendeick talk about great topics?  Do you want to go to a two day conference at a tremendous venue?  Do you want to hear regional greats like Bill Wagner, Jason Gilmore, and Drew Robins put on some great sessions?

Do you want to pay almost nothing for it?

Then go register for CodeMash.

It’s taken us awhile, but we’ve ready for you to sign up (and pay!) for the coolest, most bestest software development conference in the Midwest.

Go get Mashed.  Go register.

What, you’re still here?

Thursday, November 09, 2006

MOSS Workflow Problems -- Generic (Useless) Error

Running in to generic “There was an error” kind of messages when trying to create workflows in Windows SharePoint Services or SharePoint Server (MOSS)?

Found this nifty trick at the Microsoft support forums: execute

 stsadm -o reconvertallformtemplates
at the command line.

Problem solved!

Tuesday, November 07, 2006

Great Free Unit Test Runner

The way smart folks at JetBrains have released a free unit test runner: UnitRun.  This is the same nifty widget in ReSharper which lets you run and debug unit tests — and now you can get that bit of goodness on its own should you not have ReSharper.

This is a handy bit of functionality, particularly since Jamie Cansdale took TestDriven.NET to commercial-only.

Nice move, JetBrains!

Sunday, November 05, 2006

CodeMash Venue Photos

Several folks from CodeMash’s organizing committee visited the Kalahari Lodge where CodeMash will be held.

This venue is going to be simply amazing!  The Nia Conference Center at Kalahari is brand new and is loaded with all kinds of technical goodies.  We’ll have loads of bandwidth for speakers, staff, and attendees, plus there’s just an incredible amount of infrastructure that will be a great help for putting on a terrific conference.

The session rooms are huge and can get loaded up with scads of tables and chairs, plus we’ll have a huge banquet room for keynotes and dining.  The hall where we’ll have sponsors is nice and large with plenty of room for booths — and there’s scads of electrical outlets so everyone should be happy happy.

I and my family stayed overnight in the hotel and we were very happy with the facility. Nice breakfast buffet (better than average hotel food), comfy rooms, and a very nice set of stores in the hotel itself.

Of course there’s the water park and arcade…  The water park is a blast!  I spent most of the time playing with my two year old son in the toddler pool or chasing my daughter around the river that circumnavigates the park.  (Note to self: six year olds don’t understand that “Lazy River” means you float around and relax.  They think it means it’s a racetrack.)  There are also a bunch of huge slides so big kids can have fun.  The Zip Sled is lots of fun, but may be a bit too intense for smaller kids.  (Fear not, she wasn’t permanently scarred, plus she got a toy out of the deal for indulging her Poppa.)

This conference is going to be a blast for any number of reasons, and the venue’s no small part of that!

Photos of the visit are posted up on my Flickr site.

Friday, November 03, 2006

Book Review: Accelerated C# 2005

I'm almost done with Trey Nash's Accelerated C# 2005 and I've got to say it's one of the best books I've read in some time.  The chart on the book's back cover bills it as something to read before Troellson's Pro C# 2005 and the .NET 2.0 Platform, but I think it's actually more advanced and much more readable than that book.

Trey's work is extremely well-written and comes in at a concise 400 pages.  He covers a wide range of topics in those pages, hitting everything from syntax to CLR underpinnings to generics to multi-threading.  His coverage on the workings of how assemblies get loaded and behave in the CLR is perhaps the best I've read on the topic.

The book is a great balance of small, fundamental details and more complex issues.  Examples of the first would include his clear explanation of the difference between using constants and readonly variables -- particularly since he clearly shows the impacts of making a decision for either kind.  Examples of the more complex issues would include his very clear, very understandable treatment of threading in C#. 

His discussion of the more complex topics are aided by solid examples which often start out showing how not to do things (highly useful) and moving to better ways of doing things.  (I should note I found one or two errors in the examples, but the general gist was always clear.)  He also scatters a number of good practices or solid design idioms throughout the book such as why Bridge patterns can be helpful in various situations.

Trey also makes occasional, pertinent examples with IL to discuss particular issues, such as how coding things two different ways might end up generating the same IL.

Additionally, there's some good design-level items in the book.  There's a lot of pro/con discussion on a number of issues such the drawbacks to inheritance, and there's a VERY good discussion of implementing contract-based design via interfaces as compared to abstract classes.

Overall this is one of the best C# books I've read.  I'd put it at a level close to Bill Wagner's Effective C#: 50, which is pretty much the pinnacle of C# books as far as I'm concerned.

Subscribe (RSS)

The Leadership Journey