DRY for training

Most developers know the term DRY, don’t repeat yourself. To code monkeys, it is second nature. What’s funny is it can be applied to everything, not just coding. Most developers don’t get this. Today, one of my team leads did a tech talk for his team. The talk was an intro to MVC, specific to their project. It was awesome. You might be thinking, MVC is second nature to me. I have been using MVC for years. »

KDiff, try it

I had the need to compare two different directories on a Windows box and I came across KDiff. It integrates with Explorer and does exactly what I need. Try it. »

Break the Feature Paradigm

I was thinking about product backlogs today, and I realized that they represent an interesting paradigm. In short, they equate features to a checklist. Once it is done, it is marked off. Completed. Done. Finito. In reality, this isn’t true at all. A feature is a commitment to your users. For every feature, the initial cost is usually design, development, testing, documentation, and support. What’s funny, is every single one of those is a continuing cost that usually gets overlooked. »

Business of Software 2008

I just got back into town from the Business of Software 2008 conference. It was awesome. Nearly every speaker had something meaningful and inspiring to talk about. Even though the conference was just two days, I am absolutely worn out because I can’t stop thinking about everything I learned. So, in order to actually finish this post, I am going to give three sentences on a few speakers I really enjoyed. »

Brian Hartsock

sqlcmd.exe and MsBuild

Today I wrote my first MsBuild script that uses sqlcmd.exe to execute SQL Server commands remotely. It is awesome. Although it is fairly limited, for tasks like backing up databases, it is very simple and easy. <target name="Backup"> <exec command="sqlcmd -S $(server) -q "$(sql)""></exec> </target> »

Worst email joke ever!

Matt: I wonder if SPAM is good, I have never had it before (while holding up a can of SPAM). Me: Ya, haven’t you ever fried SPAM before? Matt: Only at the gateway level. Oh the joys of working for an email company. »

Brian Hartsock

Amazon Unbox

I downloaded Amazon’s Unbox this weekend to watch some BSG (yes I am a nerd). Unbox is Amazon’s video download service. I say service because it is much more than just another download. Amazon allows me to re-download videos or transfer them to multiple machines. Obviously, the Unbox player doesn’t allow burning to DVD, but I am over my purist-open-world days. As with any service, there is room for vast improvements. »

LINQ bites back

Today I found some odd behavior when working with LINQ. It is hard to describe, so here is the code. public void Foo(IEnumerable<string> strings) { IEnumberable<string> stringsInDb = strings.Where(s => this.QueryTheDbAndTakeALongTime(s)); foreach(string str in stringsInDb) { //Where clause in LINQ is actually executed } foreach(string str in stringsInDb) { //Where clause in LINQ is actually executed AGAIN } } Luckily, some unit tests detected this behavior. It actually isn’t surprising when you think about it though. »

Switcheroo

Today I was thinking, and I realized something odd. My development computer is Windows. My personal computer is Ubuntu. Weird huh? »

Code your Documents

Every developer has heard the phrase document your code. The reason this is important is the functionality is now coupled with a description of how it works. Now a future developer can load up a single source of information and understand the functionality. But, more importantly, the odds of the documentation staying updated are higher because of this coupling. The same can’t be said for a standalone document. Well, shouldn’t the same be true for documents, specifically those that describe some sort of process? »