Refactoring

An excellent post by Julian Bucknall of Developer Express on refactoring–more specifically the eight refactorings he uses most.  Of the ones he names, I use the 8th one (use string.format) the most.  As you might expect with inherited code, there are plenty of places where strings are concatenated with plus signs.  I root them out of every piece of code I rewrite, and highlight them in code reviews.

“Rails.NET” Revisited

It’s been almost a year since I learned about the .NET Action Pack. Since then, the project has changed names (to SubSonic) and switched to using Google Code as a repository (though they still use CodePlex for other things). The team appears to have enhanced it significantly, including the addition of a command-line utility and support for non-web applications.
Since we’re short-staffed at work, we definitely need to jump on anything that will generate code for us.

My 2 cents on the iPhone

This Sunday’s Opus comic strip captures the hype perfectly.

I did get to play with one for a few minutes at an Apple store in Maryland yesterday.  It handles its primary job (being a phone) very well.  The sound quality was good.  The interface really is as clever as the advertising suggests. A quick finger swipe moved whatever you needed in the right direction.

Typing with the iPhone turned out to work better with your index finger than with your thumbs.  Whatever logic they’ve got in there for guessing what you meant when you mistype something works extremely well though.

That said, I don’t see myself coughing up the dough for an iPhone anytime soon.  Functional and attractive as it is, I don’t need that much of an upgrade over the Razr (which while it has plenty of shortcomings, fits nicely in my pocket and only cost me $100).  Besides, if version 1 of the iPhone is this good, imagine version 2 😉

Unlocking Value at Microsoft

I came across this article, via a post from Mini-Microsoft. I wouldn’t necessarily expect a software product manager to be able to write code. I would expect them to be more technology-savvy than this guy appears to be. Whether he was trying to be funny or not, this will certainly add more fuel to the fire for the legion of MBA-haters that already exist.

While I’m not a Microsoft employee, I have my doubts that he’ll be successful in his role without a better understanding of the technology. As someone who has a computer science degree and an MBA, I’ve found that the combination gives me an advantage in explaining technology choices in business terms. The other thing working against him is his product. The vast majority of individuals and corporations that own copies of Office only use a fraction of the functionality available in the older versions of the suite. Getting any company to pay more for a newer version of something that already meets their needs sounds like an impossible task to me.

Safari on Windows

I’m trying it out on my laptop at work to see how I like it (I’m all Mac at home now). In regular use, the speed advantage Safari is supposed to have over Firefox isn’t really noticeable. Most sites I visit render correctly, except for the occasional message in Yahoo! Mail. It has the sort of problems I’d expect rendering ASP.NET web controls, but so does any browser that isn’t IE.

At least for now, I wouldn’t ditch Firefox for it. I might use it more on my Macs though.

TFS: Scenario Coverage Analyzer

We use TFS at work, so I found this blog post on scenario coverage rather interesting.  I especially liked the Project Traceability Matrix which indicates code that can’t be traced back to a requirement.  Using attributes to connect assemblies and the methods they contain to individual requirements is a great idea.

I hope the author does a NCover-based version like he suggests.

A use for XCode that has nothing to do with writing software

I came across an old MacWorld tip while searching for a quick way to compare an iTunes folder on a backup drive with one on my new laptop.  FileMerge turns out to be quite a capable tool for comparing folders as well as files.  It made it a lot easier to figure out what was missing from the laptop and sync it to the backup drive.  It took awhile, since we’re talking about gigabytes of music files, but it worked.

.NET Progress Bar

I’d managed to avoid all .NET WinForms work of any consequence until today.  We’ve assigned one of our developers to fix an application in need of a working progress bar.  Since I haven’t done this before today, I’m scrambling to get up to speed on the right way to do this.

This article looks like a good place to start.

Microsoft vs. Open Source–Don’t Worry

That’s the gist of this rather comforting post at groklaw.net about Microsoft’s claims of Linux patent infringement. It baffles me that a company which made over $12 billion in profits last fiscal year would stoop to the sort of patent trolling last seen from SCO Group.  It seems desperate.  It’s the kind of move I would expect from a company who had clearly lost the battle in the marketplace and didn’t have any other cards to play.