Thursday, September 21, 2006

Despite Rumors To The Contrary, I Am Still Here

Yeesh, it's been over a week since I've blogged.  I've never had that kind of gap unless I was on vacation.

I get a bit of a pass, though, due to an absolutely hideous flu bug that knocked me on my proverbial and literal ass for five days.  I've never been konked like that, ever.   Chills, sweats, splitting headache (and I'm a vetran of migranes, so I know bad headaches), and a cough so bad I strained an eye muscle and my abs.  (OK, straining my abs isn't much considering the shape they're in...)  A tough way to lose eight pounds over a weekend.

Thankfully I'm back in good shape now except for a bit of the cough remains.

I'm in good enough shape that I'm finally busting out on a development project at work.  Whoopeee!  There wasn't really any guidance on how to head off with unit testing, so I chose my own toys and am getting to play more with MbUnit, my framework d'jour

I'm also going to be making use of dotTrace from the wicked smart folks at JetBrains, my first foray into that product.  I'm looking forward to playing around with it and learning its ins and outs.

Other nice toys I'm getting good use of:

  • Jeffrey Palermo's article "Bread and Butter Resharper", a killer guide to real-world use of ReSharper.
  • Scott Bellware's fine Code Snippets for NUnit.  Shhh.... They work just fine for many MbUnit chores.
  • GVim.  Can't stop the signal.  Vim Rulz.
  • Sql Server Management Studio.  I'm finding more and more nice things for working in this.  Nothing earth-shattering, just nice stuff.

Wednesday, September 13, 2006

Serious Goodness on Testing, Coverage, Assertions, and Llamas

Eric Sink has a terrific article on unit testing and code coverage.  He nicely talks about the tools he uses, how he got a particular library project to 100% coverage, and why that's a good idea in some cases and not so good in others.

His section on using assertions is a particularly good read.  Assertions make good sense in a number of cases and Sink does a nice job of pointing out where.  (Lowy's Programming .NET Components, 2nd ed. lays out good info on that, as does the much older and still useful Writing Solid Code from Maguire.)

Sink's article also hits a couple good points: regression testing and why 100% code coverage isn't a panacea.  You still need good tests.

Check it out.  Like almost everything else he writes, this article's a good read.

(Actually, there are no llamas mentioned in Eric's article.  He's not hung up on them like this guy.)

Updated:  Fixed missing link to Eric’s article.  Ooops.  Sorry!

Monday, September 11, 2006

A Different Schedule These Days

Just a few months ago my daily schedule mostly looked like this.  Now that I’m employed it looks a lot like this:

Soon there will be more blocks in there title something like “Heads Down Coding” which will be very nifty.

I’m busy, I’m working, I’m talking to Big People instead of my kids (who I still get to see plenty), and I’m working with a lot of wicked smart folks.

It’s a nice change after six years of trying to juggle part-time work and playing Mr. Mom.

Thursday, September 07, 2006

Dayton DevGroup: Important September Meeting News!

The Dayton .NET Developers Group has an off-schedule meeting this month.  We're meeting next Thursday, September 14th, at 6pm.

Critical Info: We're meeting at Max Training's Miamisburg facility, not our usual New Horizons location. This isn't a permanent move, just a temporary one.

Please make sure to let your friends, colleagues, and other members know about the oddball schedule and location.

The one-time upheaval is worth it: we've got Julie Lerman, a great INETA speaker, coming to talk about web services security.

Make sure to show up if you're in the Dayton region and are interested in great .NET content!

Outlook 2007 Add-Ins and Crashes

It looks like the SnagIt add-in for Outlook doesn't play nicely with Outlook 2007 -- I was having constant crashes when trying to open Calendar entries.  That stinks.  Acrobat 6 may also cause problems.

Unfortunately, it appears that Microsoft has left add-in management out of Outlook 2007.  The only way to disable misbehaving add-ins is hack the registry.  Open RegEdit and browse to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Outlook\Addins\SnagItOfficeAddin.Connect.  Set the LoadBehavior key value to 0.

Things seem to be behaving a bit more nicely now.

(Hat tip: Slipstick.com.)

Tuesday, September 05, 2006

Thursday is an Ugly Day (Politics)

My blog's had a higher-than-usual ratio of politicial odds and ends lately, but there have been a lot of things finding their way under my skin.  (Plus, quite frankly, I've been so swamped with work and recovery from my book that I've not had the energy to post much technical stuff...)

In particular, this Thursday marks an unprecedented day for free speech in our nation.  Thanks to John McCain and Russ Feingold all broadcast advertising critical of any candidate for federal office will be whisked off the air and blocked until after the election. 

McCain-Feingold is nothing more than a blatant incumbent protection act, and I couldn't care less what McCain's intentions were.  He was an honorable man during his service and captivity, but his political life has been full of junk like this bill and his episode as one of the Keating Five.  (Forgot about that, perhaps?)

I know that many campaign ads are ugly and distorted, but if you can't understand the hit your first amendment rights have taken because of McCain-Feingold then I encourage you to spend a bit of time in reflection or research.

Interesting commentary from an active duty Army guy, some funky UML guy with a Tablet, and another guy with a scathing pen.

Sunday, September 03, 2006

Book Review: Managing Agile Projects

Managing Agile Projects by Sanjiv Augustine.  Prentice Hall PTR, 2006, ISBN 0131240714.

This is a solid book, but suffers from a very slow start. The first quarter of the book seems filled with too much mystical hand waving and too many buzzwords. The entire opening quarter of the book is stuffed with referenecs to "chordic edges" and "holographic formal structures." A few of the buzzwords get defined and used later on, but the overabundance of them was like fingers on a chalkboard. It got so bad that I almost put the book down and walked away from it.

There are also a few irritants such as charts with poor explanations, or the assertion that test-driven development is an approach "specific to XP." Much of the book is from a pure XP approach, but that's not surprising because the author's been in a full XP environment for five years.  That part wasn't bothersome.

Things pick up greatly after chapter 3, however. The remainder of the book is solid, very useful, and full of great information for building and maintaining a solid development team. There's a lot of great focus on bringing value to the customer, and there are practical examples for all of the various aspects of running an agile project.

I liked the author's breakdown of categories into leadership and management roles.  The two aren't the same, and I get irritated with books which treat them as such.  There's also a good bit of focus on what's necessary to help keep teams and the individuals making up those teams in good working order.

You'll find handy tables and explanations detailing estimation, task backlogs and job jars, and several great discussions on how to keep communication flowing with your customer. The sections on clearly establishing service criteria at the start of the project, and the clever use of sliders to help define success critieria, were nicely done.

Overall it's a very good book. The opening three or four chapters drag down what's otherwise a solid addition to my bookshelf. I'll get a good amount of use out of the book as a reference for future projects.

Saturday, September 02, 2006

Multiple Monitors, Multiple Systems

I’ve got four systems hooked together through a Belkin KVM switch (fair at best, BTW), and I’m actually able to get two of them in a dual-screen setup.  The middle screen is the one shared via the KVM switch.  My main dev box, one I built last year when I started Iterative Rose, ties the middle and left monitors together.  My nice laptop from NuSoft is on the right and is tied with the middle monitor.  That setup isn’t the best since resolutions differ, but it’s a lot better than a single monitor!

Yes, yes, my workplace setup sucks, but sometimes you just have to put up with lousy stuff for the short-term.  (OK, “short-term” has been the case for six years…)  The current workspace, as you can see, is a hodgepodge of hacks trying to keep it as ergonomically friendly as possible.  The entire setup is due for a replacement in a month or so, and the new setup is going to be seriously cool.

Friday, September 01, 2006

Thumbing One's Nose at Read-Only PDF Forms

Hah!  I scoff at the asinine folks at the Ohio Secretary of State's office who made their PDF form for Articles of Incorporation a read-only form.  Who the heck thinks it's useful to create such a form, then disallow saving of it? 

Frankly, I think it's another one of Ken Blackwell's rotten decisions, which is among the reasons I won't vote for him come the Govenor's election in November.  (Yes, I'm absolutely sure he personally came into the SOS office, right after repressing Democratic voters across the state in the 2004 election, and said "Hey, I really dislike that Holmes guy over in the Dayton region.  Make this form read-only so he can't save all the effort he put into filling it out.")

OK, so maybe there are some reasons why PDF forms should be read-only, but I can't think of any right now

But back to the main point of my post: Foxit Reader is a killer replacement for Acrobat Reader.  Small, stable, free, and with lots of nice features like filling out text on plain ol' PDF forms.  The smart folks at Foxit have gone one better in their beta 2 version: you can fill out and save PDF forms which won't save in Acrobat Reader.

Three cheers for Foxit!

You can find v2.0.0609 on filehippo.com.

Clearing Out The Bookshelf

It's time to get rid of a few older, unused books from the shelf so I can make room for more books which will sit around, rarely used while they gather dust. 

Truth be told, I'm actually pretty good about keeping only books which I get some value out of on a regular basis.  I tend to keep two categories of books: long-term methodology-based books like DeMarco and Lister's Peopleware or MacGuire's Writing Solid Code, and short- to mid-term technology books like James's Visual Studio Hacks or Hiller's SharePoint.

The five books purged this round and headed for our library's book sale are:

  • Friedl's Mastering Regular Expressions.  First edition -- I've had this great book for eight or nine years.  The only reason it's getting replaced is because I've gotten a copy of his just-released fourth edition.
  • Learning Perl.  This hurt to pull off the shelf because I love Perl's simplicity and elegance.  Perl source code can also quickly get the appearance of garbled modem traffic.  (You young whippersnappers probably don't even know what modems were, you lucky saps.)  I haven't written any Perl in years, so it was time to go.  I may reapproach Perl again for its ease when writing website hacking tests.  (See Writing Secure Code, 2nd ed. for examples of that.)
  • .NET Framework Essentials, 1st ed.  Outdated, time to go.
  • C# Essentials, 1st. ed.  Ditto on this one.
  • SGML for Dummies.  I despise the "for Dummies" series.  Why the hell do I want to buy a book whose cover insults me before I even open it up?  The few books in this series that I've browsed through all seemed vapid and shallow.  The only reason I bought this particular book was because I was less than intelligent on SGML and a colleague said he'd had good luck with this title.  Good intro, good info on SGML; however, I've been away from SGML for several years and won't be going back.  (I hope I hope I hope I hope.)

So that's my dirty laundry heading for the local library's used book sale.  Got any unused titles on your shelf you're willing to fess up to?

Thursday, August 31, 2006

Happy to Not Have Ted Stevens as my Senator Anymore

You may or may not follow politics.  Pass over this if you don't care about government shenanigans.

Ted Stevens, one of Alaska's "fine" government representatives, has been smoked out as the senator who put a secret hold on a bill that would have opened up much of the government's spending by creating a publicly accessible database of nearly all government expenditures and who authorized them. 

I was an Alaskan resident until 2004 when I changed my residency here to Ohio.  I was very happy then to leave behind the three Alaskan Congressmen: Frank Murkowski, Don Young, and Ted.  Stevens has utter disdain for citizens who question his role in the exploding Federal expenditures.  I'm happy to see his sneaky manners have been exposed. 

Alaskans got smart this year and gave Frank Murkowski the boot from the govenor's office.  He'd left the senate to wage a sucessful bid for the governor's office, then appointed his daughter to fill his vacant senate seat.  Hopefully Alaskans will give Stevens the same treatment in the next elections.

Good info on Stevens' actions at Mark Tapscott's blog, or at The Palm Beach Post.

(via Instapundit, among others.)

Tuesday, August 29, 2006

Yo! Blogger! My Blog != Spam Blog

Yeesh, Blogger kindly decided my blog here was potentially a spam blog.  Their definition says spam blogs "can be recognized by their irrelevant, repetitive, or nonsensical text," which I guess means they didn't care for my post on Live Writer, or maybe it was my post on the book's release to publication, or perhaps it was my grousing about Petzold's math skills.

Maybe they confused me with this site, or this one.

In any case, it would be a Really Nice Thing if the dudes and dudettes at Blogger hurry up and process my request to be recognized as Not A Spam Blog.

Looking for .NET Work in South/Central Ohio? We're Hiring!

Are you looking for challenging work in Dayton, Cincinnati, or Columbus -- or even Cleveland?

NuSoft Solutions, the company I joined at the start of this month, is looking for smart, motivated folks who are passionate about creating great solutions for our customers.

What skills and experience are we looking for?  The most important thing is that you've got your head screwed on right: you care deeply about writing good code, you're a self-starter, you're excited about rolling up your sleeves and digging into work, you embrace change since the customer is paying you to meet their needs, and you're concerned about helping customers solve their business problems.  It's also important that you're able to communicate effectively with customers, both internal and external.

No practical .NET experience?  That may not be an issue if you've got solid development experience in other platforms -- but you've got to have the right mindset and be willing to hit the ground running to get up to speed.

So what can I tell you about NuSoft Solutions so far?  I haven't posted much lately because I've been up to my ears learning the great stuff SharePoint Server 2007 brings to the table,  I've been up to my nose trying to learn more about NuSoft's program management tasks (got work in that area in the next few weeks), I've been dipping my toes into studying for another certification test, and I've been trying to get more face time in with my family since finishing the major parts of our book.

My time at NuSoft so far has been terrific.  I'm seriously in awe of the amazingly smart folks I work with (just sit in a room, shut up, and listen), and I'm in awe of the really, really cool things we're working on as a company:  business intelligence, mobile development, emerging technologies (MOSS, etc.), some serious infrastructure work (SMS, Exchange, AD, etc.), and some award-winning work on some neat sites like Spout.

Life as a Microsoft Managed Gold Partner is pretty good, too.  We get plenty of access to all the latest toys and have some very unique opportunities to roll those out to solve real-world problems.

Interested?  Drop me a note via the contact link on the right sidebar -- that goes to my Iterative Rose address, but fear not, I'll pay you immediate attention!

Monday, August 28, 2006

The Ubiquitous "Ooooh! It's Windows Live Writer!"

OK, so I'm following lemmings everywhere around the world and giving Live Writer a shot.  Initial impressions? 

Feh. 

For whatever reason Live Writer wasn't able to grab my template from Blogger, so I've just got a nice generic editor instead of working in something WSYWIG-ish like my blog.  The editor seems OK, but I've always been happy with BlogJet -- although keyboard shortcuts never worked in BlogJet and its creator didn't seem to be much put out by that.  You can imagine my vexed state about that since it's well-known that I'm a keyboard kind of guy.

In any case, I'm looking forward to playing around with this a bit to see how it suits me.  Maybe I'll be able to find out why the template thing doesn't work.  I know Blogger is rather finicky about template changes.  Who knows?

Thursday, August 24, 2006

VPC: Blue Screen Of Death

I’ve been working with some VPC images and have been copying them from system to system.  I’ve gotten a couple BSODs on occasion after copying an image to a new machine.  A couple vague messages have pointed to driver issues.

The workaround I’ve found is to start the VPC system in safe mode right off the bat, log on, and let it reconfigure a few drivers.  Restart the VPC system and everything’s shiny.

Guess those VPC images aren’t quite as abstracted as they’re inferred to be…

Saturday, August 19, 2006

Book Update: Final Draft Chapters Available

We’ve had a couple rough draft chapters from our book available for a bit — now you can read the final draft versions of Chapter 10 (Testing Your Software) and Chapter 14 (Tracking Bugs, Changes, and Other Issues).

All the chapters in the book have undergone significant revisions from the first draft versions.  We’ve completely redone the introduction, fleshing it out more to do a better job of making the case how these tools can save you time, help boost your producivity, and increase your code’s quality.

We’ve also restructured each article so that they’re fairly similar in how they present their material.  Each tool article follows this general structure:

  • Introduction
  • Summary table (where to get it, which version we’re covering, what it does, etc.)
  • Getting Started
    • Requirements
    • Installation
  • Using <the tool> (the meat and potatoes of the article, with pictures, even!)
  • See Also (other cool stuff in the book along similar veins)
  • Getting Support
  • <the tool> in a Nutshell

James and I are pretty excited about the book’s final shape.  Hopefully you’ll find it of value!

(Failing that, just buy lots of copies so I can get my kids through college, OK?)

Friday, August 18, 2006

Book Update: 100% Final Draft!

Whoof!  We’ve got 100% of our chapters for The Book through the final edits and delivered to our editor at O’Reilly.

Last count for tools: 176.  Absolutely no clue what the final page count will be, but it will almost certainly be over 1100 pages, perhaps even over 1200.  A rough bit of work in Cygwin tells me we had 842 figures between gif, jpg, bmp, and png files.  Not all of those made the cut, but the vast majority did.  There’s also one token SVG file in there, just because we weren’t difficult enough with everything else.

The final list of tools, in absolutely no sensible order, is shown below.  I’ve no clue if this will render properly by the time it makes it through BlogJet, Blogger.com’s stylesheets, and whatever agent you’re using to view this post with.  Hopefully so. 

XSD.exeKrypton ToolkitCommunity Server
WSCFControlSpySubtext
CodusVisual Studio Express EditionsFlexwiki
MyGenerationSharpDevelopXP Remote Assistance
Peli's Reflector AddinsMonoDevelopSkype
SourceMonitorSnippetCompilerGAIM
CR_MetricsNotepad2TFS Admin Tool
NdependRegulatorNHibernate
VilRegulazyNpersist
FxCopFileMonObjectMapper
NprofTCPViewCastle ActiveRecord
SVN 1-Click SetupRegMonCoolCommands
TortuiseCVSProcess ExplorerClassDesigner PowerToy
TortuiseSVNClrSpyVSFileFinder
AnknSVNClrProfilerPINVOKE.NET
SourceSafe Binding RemoverClrDumpHTML/ASP.NET Spell Checker
WinMergeManaged Stack ExplorerVSWindowManager
AtlasFiddlerCopySourceAsHTML
Anthem.NETPing PlotterCSSPropertiesWindow
AJAX.NET ProfessionalLogParserWeb Application Project
UrlRewritingNet.UrlRewriteRegex Kit VisualizersVSContentInstaller PowerToys
BusyBoxDotNetNProfNxBRE
CSS Friendly ASP.NET 2.0 Control AdaptersASP.NET CacheLog4Net
FreeTextBoxConchango XML VisualizerLucene.NET
WebChartExpression Graphic DesignerLibCheck
RSSToolKitExpression Interaction DesignerNetSpell
NunitXamlPadNplot
Nunit Code Snippets for Visual Studio 2005Service Configuration EditornSort
MbUnitService Trace ViewerRelfector.Diff
ZanebugWinFX Development ToolsRSS.NET
FitnesseILDASMSharpZipLib
NcoverReflectorExcelXMLWriter
nCoverExplorerDotnet IL EditoriTextSharp
TestDriven.NETDotfuscatorGhostDoc
NMock2Threat Analysis and Modeling ToolCR_Documentor
Rhino.MocksBouncy CastleNdoc
NUnitFormsXSS LibraryPDFCreator
NtimePrivBarskmFaqs
SeleniumMakeMeAdmin.cmdBugTracker.NET
Watirnxslt2CodeTrack
DotNetNukeeXMLBugzilla
PicoContainer.NETXinclude.NETTrac
MonoXpointer.NETSlickRun
RotorXML Diff and PatchZoomIt
Castle MonoRailEXSLT.NETMagnifixer
Castle Windsor ContainerXSDObjectGeneratorLess MSIerables
Enterprise LibraryConnectionStrings.comFileZilla
OpenNETCFSQL Connection String BuilderCommandPromptHere
NantSQLite AdministratorCropper
MSBuildOracle Developer Tools for Visual Studio .NETColorMania
MSBeeOracle SQL DeveloperPowerShell
MSBuild Community TasksWeb Developer Toolbar for Internet ExplorerPowerShellIDE
MSBuild SidekickWeb Developer Extension for FirefoxTaskSwitcherXP
CruiseControl.NETWeb Developer HelperSyncToy
CI FactoryDripUnlocker
Unleash ITDOM HelperCygwin
Web Deployment ProjectsW3C Markup Validation Service
WiXWebXACT
XP Common ControlsHTML Tidy
DockPanel SuiteBasecamp

So there you have it.  We’re done with the vast majority of the work.  We’ve still got copyedits to handle, but James tells me that goes much quicker.

Many thanks to the folks who contributed articles to the book.  Many thanks to the reviewers.  Many thanks to Ralph Davis who was our copy editor and did a tremendous job of polishing up our work.

Most of all, thanks a bunch to the people who were passionate and smart enough to create all these tools.

That’s all for now.  I’m going to spend the evening with my family who hasn’t seen much of me for the last two months as James and I have crushed to finish this thing.

Tuesday, August 15, 2006

Two Rants on Visual Source Safe

Jeff Atwood started the latest rant on Visual Source Safe and then Phil Haack took the ball and ran with it.  The posts are only mini-rants and have some good info, plus a couple links to other good stuff like Eric Sink’s most excellent treatsie on working with Source Control.

I’m not a VSS fan at all, preferring Subversion for the projects I’ve been working on—but I will say that Brian Prince, a guy I’ve lots of respect for, has had fine success with VSS at his company.  Brian and his team follow the practices laid out in Microsoft’s white paper on enterprise development with VSS and haven’t had any problems — but it seems to me they’re in the minority. (Sorry, couldn’t find a link for that paper.)

 

Update: Fixed typo in Phil’s last name.  Mea culpa, dude.

Saturday, August 12, 2006

Hitting the Final Stretch

Blogging has been sporadic of late, and often nothing more than regurtitated links to good stuff other folks have written about.

James and I are in the last stretch for work on the book and we’re crushing to hit our final deadline.  Actually, that’s come and gone, but we’ll have 100% of the book finalized and off to the Production folks at O’Reilly by Friday the 18th come Hell or high water.  We’ve been pushed back for a couple reasons, mostly last-minute restructuring and edits our senior editor asked us to do. 

It was frustrating as all get out to have this hit so late in the game but, putting my tetchy whining aside, it’s making the book way more better.  (“’Way more better?’  You want me to pay money for your book when you write like that?”  Heh. You bet.)  Each article’s doing a lot better job of flowing through in a regular fashion, so readers will have a lot more consistent and productive reading experience.  (Reading experience.  Heh.  If it works for software it ought to work for books.)

We’ve also drastically reworked the chapter introductions, thanks to pointed, spot-on comments from our tech reviewers.  The introductions now do a lot better job of discussing the general topics and concepts in a chapter, so readers will have a better grasp on the fundamentals as they press through the articles.

Oh, by the way, our list of tech reviewers includes a bunch of Really Smart Folks.  I’m absolutely amazed at the folks who signed up to review this beast: Sam Gentile, Jason Follas, Daren May, Patrick Cauldwell, Marc Holmes, Scott Hanselman (yep, him), and Bill Wagner (Bill Wagner!!).  Mitch Wheat also caught a number of great things from the chapters I posted up on my biz site.

We’ve busted our butts on this book, and I hope you folks who buy it will feel you got your money’s worth.

Thursday, August 10, 2006

SharePointKicks Site

Perhaps you know of the DotNetKicks site which lets .NET geeks call out interesting .NET-related news.  Did you know there’s also a similar site specific for SharePoint?  Gobs of pointers to great content.

Subscribed.

Subscribe (RSS)

The Leadership Journey