Saturday, March 31, 2007

Goodbye NuSoft, Hello Quick!

Friday was my last day at NuSoft Solutions.  It’s been a great eight or so months at NuSoft, but a terrific opportunity that I’ve wanted for years suddenly opened up.  Come Monday, 9 April, I’ll be starting work at Quick Solutions in Columbus.

I’m pretty stunned at the quality of folks I’ll be working with: James, Jeff, Arnulfo, Alexi, others, and of course Brian.

This is a great change for me, and I’m really excited.  I’ve got a week off to catch up on some sleep and chores around the house, then I’m diving in to the deep end of things.

Yipeee!

Wednesday, March 28, 2007

Great Site for Ordering Badges/Badge Holders

We used MyBadges.com for both CodeMash and Code Camp badge supplies.  They had a great selection of badges and holders, and furthermore were cheap and FAST

You might wanna consider using them if you’re putting on an event that requires badges.  (Yes, feel free to shout out that line about steenking badges…)

Disclosure: I get no kickbacks or recognition from them.  They just gave us great service.

Tuesday, March 27, 2007

Assembly Name or Codebase Invalid Errors

So I've finally recovered from a self-inflicted wound that's lost me more time than I'm willing to admit.  I’m working on a custom field type for MOSS and had been running in to issues when trying to create the field.  I kept getting the error:

The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047)

What was the cause?  See if you can spot the difference between:

<Field Name="FieldTypeClass">

    NuSoft.LinkedStandardsCFTField,

    LinkedStandardsCFT,

    Version 1.0.0.0,

    Culture=neutral,

    PublickKeyToken=9f4da00116c38ec5

</Field>

and this:

<Field Name="FieldTypeClass">

    NuSoft.LinkedStandardsCFTField,

    LinkedStandardsCFT,

    Version=1.0.0.0,

    Culture=neutral,

    PublickKeyToken=9f4da00116c38ec5

</Field>

Yes, it’s the missing equals sign in the version part.  OK, so I’m the dumbass who mistyped that, but wouldn’t it be great if the tools helped you figure out those sorts of errors before you build and deploy?

Leaving these sorts of important bits and pieces in free-text elements just doesn’t make sense to me.  Why not have them in a schema-defined structure, either as their own elements or attributes?

Bah.

Monday, March 26, 2007

Code Camp v2.0 a Great Success!

The second annual Dayton-Cincinnati Code Camp was a great success! Mike Wood did a terrific job this year, and we had another great list of speakers this year.

(On a somewhat sideish note, I wish more folks would clue in on the non-.NET speakers we have.  Catherine Devlin is a great Python guru, and Jim Weirich gives keynotes at international conferences.  Both had tiny, but interested audiences.  The folks that missed these two particular speakers missed some significantly accomplished luminaries in their fields.  Grips, folks!)

I was a bit disappointed in my two sessions.  “Real World SharePoint” was OK, but I had a blue screen of death before I even got to the second slide.  I guess I recovered OK, but then my workflow demo from the MOSS SDK wouldn’t load and execute properly.  Grrr. 

My “Open Source Test Tools” was fair — I shot myself in the foot and didn’t bring the correct VPC image with Fitnesse already configured.  I was scrambling around to get things set up prior to the gig, but things just didn’t gel together.  That stinks, because I think Fitnesse is a tool that can completely alter how developers work with customers to create tests and specifications.  There’s a pretty big “Wow!” factor when you paste in values from a spreadsheet your domain experts filled out, then show how little code it takes to wire those values as tests into your code.  A lovely green table appears on the Fitnesse page to prove you’ve done things right.

My pissy whining aside, it was a terrific event.  I FINALLY got to see Dustin Campbell speak for a bit.  His “Back to Basics” presentation is just incredible — he spent a few minutes on an important topic we don’t think about enough: how to learn well.  He hit some really salient points on that such as relaxing to digest what you’ve read, learning a new language every year, and getting involved with community.

Many thanks to all the sponsors I mean contributors we had, and many thanks to the speakers, staff, and attendees who made it such a great event!

Thursday, March 22, 2007

Finally Using Telerik's r.a.d. Controls

If you don’t know them already, Telerik is a tremendous supporter of the developer community.  They provide scads of licenses of their software for raffles at user group meetings and code camps, and they’re extremely generous with sponsorship funding for those same things.

I got a copy of their r.a.d. controls for ASP.NET over a year ago when they began the relationship with our .NET group; however, I’d not been in a spot to put the tools to the test until now.

I’ve been working on developing a custom field type for MOSS.  The type involves reading in a tree of information from a single table, doing some manipulation and display of the node data, then saving out an XML fragment of the tree’s state.  I was looking at the work involved to handle loading up the heirarchy from the database and manipulate it in a regular TreeView control and I wasn’t overly thrilled — my ASP.NET experience is, uh, well, not extensive.

So being a lazy SOB at heart, I took a quick look at the telerik RadTreeView control — and quickly convinced the manager I’m working on this project for that the control made great sense.  In the space of a few hours I had a fleshed out prototype done that had most of the functionality I needed wired in.  It would have taken me several days instead of several hours had I written all this by hand.

For full disclosure’s sake keep it in mind that telerik gave me these controls when they started sponsoring our group.  That said, I’d be ebullient about the controls regardless of whether I had to spring for them or not.

I’m looking forward to making more use of these tools in the near future.

(Also, telerik’s got several other lines of controls for reporting, WinForm applications, SharePoint, and DotNet Nuke.)

Wednesday, March 21, 2007

DeskJet 952c Under Vista

I’d been unable to print to my HP DeskJet 952c from either of my Vista boxes.  The printer’s shared from an XP system, so tonight I poked around the driver settings on that box.

Sure enough, two drivers for that printer were available.  I changed to the second one and Poof! things were happy again.

Flickr Uploader

I lose this URL everytime I repave my machine, so I’m documenting for myself the link to the #(*&@!! Flickr Uploader tools.  (Which is, in a completely illogical fashion, www.flickr.com/tools.  Rotten SOBs for making it so plain.)

Killer Headphone Amp

I’m sitting here listening to some of my benchmark music (The Who’s Who’s Next) and am in complete awe at sound coming out of my new gadget: a Total AirHead mobile amp from HeadRoom at Headphone.com.  This cool little amp weighs hardly anything at all and isn’t much bigger than my iPod.  It runs off four AAA batteries or a little power adapter.  A provided cable hooks to your iPod or other mobile player.  You plug your headsets into the amp — there are even two jacks.

The folks at HeadRoom are very, VERY serious about their amps.  Do some reading on the site and you’ll probably be pretty impressed with their knowledge and attention to detail.

My Sennheiser HD-580 cans sound just amazing with this amp plugged into my iPod.  They sounded terrific before, but the improvement in dynamic range is stunning.

I’ve been looking forward to getting this amp for some time now.  I’m glad the wait’s finally over!

Better yet, Headphone.com is running a sale now, so the amp was $50 off!  Woo!

WARNING: Note it’s headphone.com as in the singular.  There’s some knockoff site at headphone_s_.com — they even snarfed headphone.com’s color scheme.  May the fleas of a thousand camels infest their armpits.

More MbUnit Goodness: Test Private Methods!

MbUnit continues to do great things.  I just stumbled across a discussion on the MbUnit Google Group talking about a new feature in 2.4.143: the ability to test private methods via some nifty-looking reflection work.

Whoof!  This is just plain amazing stuff, and a terrific benefit.

Sure, you can get in to the discussion about whether or not you should be testing private methods at all, but 1) some folks have to deal with poorly designed leprosy I mean legacy systems, and 2) sometimes you just end up with code which has private methods you’d really like to test separately from their invoking public methods.

So there.

Friday, March 16, 2007

Recent Presentation Materials

I’m finally catching up with uploading a couple slide decks for recent presentations.

My DevCare presentation on the Office 2007 UI and Workflow in Windows SharePoint Services 3.0.

My talk on Windows Developer Power Tools given at MAX Training on Wednesday, 14 March.

Thanks to the folks who’ve attended those talks!

Book Review: Windows Vista Pocket Guide

Yet another handy pocket guide from O’Reilly: Windows Vista Pocket Reference: A Compact Guide to Windows Vista.

This is a concise guide to most of the features in Vista and I’ve found it very helpful so far.  Its brief nature keeps the book at a great size for leaving in one’s travel bag, which is where I’ve got my copy.

The book makes great use of its small size.  There’s a nice grid comparing the different versions of Vista, and scads of little articles on features ranging from the control panel to User Account Control.  The articles aren’t very deep, but give you the necessary info to quickly get the gist of a topic.  Where pertinent, there are also useful links to more detailed information on a given topic.

I particularly like that the book doesn’t go too far around the bend with its coverage of the multi-media features of Vista.  I’m also happy to see separate chapters on registry tweaks and use of the command prompt — plus many of the articles give you the command prompt usage for features.  Those two particular chapters aren’t for everyone, but I’m sure many geeks like myself appreciate their inclusion.

Overall it’s a great book for quickly finding bits you may not know about Vista, or refreshing yourself about bits you may have forgotten. 

(As always, read my disclaimer for books I review.)

Wednesday, March 14, 2007

Bill Wagner on "Lean Software Development"

Bill Wagner, one very smart fellow and a great supporter of the .NET community, has a few very good remarks about Tom and Mary Poppendieck’s book Lean Software Development.

Two things about Bill’s comments.  First, I’m always interested to hear how other companies are dealing with agile contracts, so it’s good to read Bill’s thoughts on that part of the book.  Secondly, and more importantly, Bill and Dianne (SRT’s principals) are buying copies for each and every one of their consultants, as well as some of SRT’s customers who are trying to get their hands around agile.

I think that’s a pretty solid endorsement of the book!

(I reviewed the book on Slashdot back in August, 2005.)

Monday, March 12, 2007

Virtual PC Networking

I found that my VPCs weren’t able to see my host system’s wireless adapter after repaving my host and making the jump to Vista.

The fix?  Make sure the host system adapater has the Vitual Machine Network Services item enabled.  Find that under the Network and Sharing Center properties for the connection.

(Thanks to Eric Charran.)

Changing Microsoft's Culture

Sara Ford, a very nice, very sharp lady at Microsoft, is part of a great team which develops and releases lots of great widgets for Visual Studio.

Think everyone at Microsoft is anti-open source?  Go read Sara’s blog.  (Subscribe to it, too.)

(BTW: Sara was nice enough to write a couple articles for Windows Developer Power Tools.)

Thursday, March 08, 2007

IE 7 Runtime Errors

I’ve been running in to annoying crashes in IE 7 where I get a bothersome dialog “Runtime Error! This application has requested the Runtime to terminate it in an unusual way.”

One of the cool tricks with IE 7 is that you can start it without any add-ins enabled, at least under Vista.  (Start -> Search -> Internet -> select “Internet Explorer (No Add-Ins)” )  Once you’re at that point with IE up and running, select Tools -> Internet Options -> Programs -> Manage add-ons.  Disable the add-ons you think might be troublesome and re-enable them one at a time.

I finally isolated my particular issue to the Omea plugin from JetBrains.

Phew.  At least one productive thing solved today!

Lovely SharePoint Books

I’ve just loaded up on three books that look to be very helpful in my continuing work in the SharePoint domain. 

Scott Guthrie (what does he know anyway) recommended a couple at his blog:

  • Developer’s Guide to Windows SharePoint Services 3.0.  This has been a great bit so far.  Clear explanations and a very good section on custom field types.  I’ve not read anything from the publisher yet, but am very impressed and will be looking more up from them.
  • ASP.Net 2.0 Web Parts in ActionManning Press rocks.  They didn’t use to have much .NET stuff, but were loaded with gems about Ant, Hibernate, and other goodies.  Now they’re catching up with a vengance in the .NET world.  Yipee!  (Actually haven’t gotten in to this book yet, but I trust the publisher.)
  • Microsoft SharePoint: Building Office 2007 Solutions in C# 2005.  Scot Hillier’s other books on SharePoint are gold.  I am sooooo stoked that this one finally arrived!  I’ve only brushed through it, but am awfully impressed with everything so far.  His intro sections on SharePoint architecture, fundamentals, and user management are very impressive — as are the bits on establishing a development environment.

FYI: I actually shelled out my own hard-earned $$ for the first two books.  Hillier’s book was a review copy given to me by the publisher.  See my disclaimer if you’re concerned.

Sunday, March 04, 2007

Stuck? Write a Test. Any Test.

I’ve been beating my head against a hard wall the last several months trying to get my head around working with Microsoft Office SharePoint Server (MOSS, or as my colleague Rus and I occasionally call it,“*&%@#!!”).

The latest hill I’m starting to climb is that of custom fields.  They’re a very useful construct, but, as with many other things MOSS-related, the documentation’s a bit sketchy.  There are a number of useful blog posts around, but most of them are very much along the lines of “Here’s how I did this one thing.  It worked for me.  Figure it out on your own if you need variations.”  The SDK isn’t particularly helpful, and Scot Hillier’s new books on MOSS aren’t avaiable yet which really stinks.

I was getting pretty frustrated with being unable to figure out a direction to head off in, so I fell back to something that’s served me well for a couple other things: Write a unit test to poke some bit of functionality in the topic you’re trying to grok, even if it’s completely trivial.

In my case I’m looking at a field to store a collection of Guids which will identify items pulled from a database.  The simple test I wrote was nothing more than constructing a collection of Guids, handing that off to the field control’s Value property, reading it back in and verifying that the contents of the returned collection matched what I’d passed in.

Woo.

OK, so that’s not rocket science, but it benefitted me in a couple ways.  First, I had some success, even rudimentary.  Seeing a green light in ReSharper’s unit test plugin module is a big deal when you’ve been reading skimpy dox for a couple hours and are still saying the equivalent of “Huh?”  Secondly, I got a better feel for the bits and pieces I needed to interact with.  Lastly, I found out that my initial approach of using generics to pass data back and forth wasn’t going to work — the Value property is overridden from the SharePoint SPField base class, so you’re not able to change its signature.  Duh.  My idea of a collection will work, just not a generic one.

So at least at the end of a few hours of frustration I still had something to show for it, which made me feel somewhat better.

Keep that in mind the next time you’re stuck in a rut.  Give yourself a bit of success, even if it’s contrived.

Subscribe (RSS)

The Leadership Journey