Practicing What You Preach

Recently I found myself arguing in favor of automated deployments and builds (from both the Database side and the code side).  In of itself, this is not new. I’ve been an advocate for this as long as I can remember.  Before you somehow think me a principled man, remember that I embrace the three virtues of a good programmer:

Laziness – The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful, and document what you wrote so you don’t have to answer so many questions about it. Hence, the first great virtue of a programmer. Also hence, this book. See also impatience and hubris.

Impatience – The anger you feel when the computer is being lazy. This makes you write programs that don’t just react to your needs, but actually anticipate them. Or at least pretend to. Hence, the second great virtue of a programmer. See also laziness and hubris.

Hubris – Excessive pride, the sort of thing Zeus zaps you for. Also the quality that makes you write (and maintain) programs that other people won’t want to say bad things about. Hence, the third great virtue of a programmer. See also laziness and impatience.

I admit, I’ve strayed from the fold. When I bought my Macbook Pro, my first task was to set up my development environment. Besides the normal pain of having to have Windows 98SE, WinXP, and Win7 discs for this install, I needed to pull down the Source code for my projects and get IIS and SQL Server set up for local development.

Enter: Giant Gaping Flaw In My Plan.

As it turns out, the twiddling I’ve done with local builds to ensure that SQL Server runs (instead of just throwing error 40) doesn’t translate well across dev environments. Neither does the database. My database isn’t in source control.

/facepalm.

So this week I’m taking the time to put my database under source control and working on scripting out the settings needed to bring any development environment I’ve built up to speed using Powershell. 

I can hear some of you now, wondering Why the hell is he doing that for his personal projects? The answer is simple. I need to practice what I preach. Yes, it’s overkill, but it’s also beneficial. I can’t tell you how many times I’ve dealt with a new hire who has had to spend time setting up their own development environment.  Doing this will give me the experience necessary to automate that for any future work.  Plus, building ladders is fun.

Downtime: Borderlands

Gaming is my second favorite thing to do with a computer. It’s surprising then that I spend very little time writing about it.

That ends here. Line.

Borderlands has been out for a while now, but I’m just now getting into the meat and potatoes of the game.  Last night a friend and I reached the New Haven Portion of the game — approximately 2/3rds of the way through the game.  At this point I’m confident that I can make a ‘buy’ recommendation for the game. It has Diablo-inspired loot mechanisms, and it provides an avenue for PC players to play cooperatively online, both ‘musts’ in my book.  If you do buy it, do yourself a favor and do all of the side-quests.  Too many times people buy a 40-hour game and finish it in 3 hours.

As they say: Getting there is half the fun.

 

30 Days of Blogging

. I first started blogging oh so long ago, it was witchcraft. You posted words on the internet, preferably in some sort of form, and people read them. Some people even took to the internet as a sort of public journal. My involvement in this matter continues to be disputed. And I categorically deny (much the same way a guilty politician would) any involvement in “Livejournal” or any of its derivatives. I have standards, you know.

But this post is not about my alleged trangressions against the internet body. 

I come today to celebrate thirty twenty-eight days of blogging.  Indeed, for the entire month of February, I blogged. They weren’t all winners (this isn’t Lake Wobegon), but they are there.

I was apprehensive about blogging for thirty days straight. It’s not as if I haven’t done this before (cf: Livejournal), I just haven’t done it before on anything more than naval-gazing. 

It turns out this fear was unfounded. Blogging and forcing my thoughts onto paper begat more thoughts. I have 10 or so topics that are written down, waiting for pen to be put to paper. 

I didn’t expect that.

It is one thing to blog for thirty days straight, it is wholly another to be enriched for doing so. It’s tempting to throw things up here and see what sticks, it’s far more difficult to prune each post to just the desired length and forcing it to yield just the right statement. 

I guess that’s for the next thirty days.

Mac Impressions: Minute Zero

My Macbook Pro arrived today. 

I got a feeling that tonight’s going to be a good night…

I’m typing this entry out on the new keyboard while Windows 7 is installing on Parallels. 

If other laptop manufacturers could just nail the presentation of the user experience, I submit that they may have a chance once a user opens a Macbook Pro.

Presently, they’re collectively screwed.

I’ve *never* felt good about opening a new laptop or Desktop. Too much packaging, too much cruft. 

With the Macbook, I have a warm fuzzy from minute zero.

 

Making Change Happen

I generally refrain from pontificating. Unless the day ends in ‘-y’.  Today happens to fall into that category.  Being young and naive of failure brings its own special quirks into my daily routine; mostly having to do with fixing things. Things that make us go. This invariably involves changing the status quo; but unless you’re running on a campaign promise of change, people hate changing the status quo.

I can only assume speechwriters help.  On a more constrained budget, we are left with proving that our change is necessary, proper, and that the i‘s are dotted just so.

Dealing with the devil is also an option.

If you’ve got a change you need to make happen (e.g., automating a manual process like deployment), there’s going to be, let us say, internal inertia against it. .

Options:

1. Do nothing. 

2. Adapt, improvise, overcome. : If you can’t make change happen, you can at least try to modify your processes so that they aren’t affected by the roadblock. This requires that you aren’t ‘set in your ways’. I can hear the religious weep.

3. Make change happen. : Don’t wait for it to happen. Don’t wait for someone else to make it happen. Take it upon yourself to make it happen. How?

In a business, it call comes down to two things: 1) Costs. 2) Revenue. Lower the first, improve the second. Any change you make better do one of the two, preferably both.  Need automated deployments and builds? That lowers cost (Developer time = money). Need Unit Tests? That also lowers costs and can potentially increase revenue. 

So long as you think about your change in terms of Costs and Revenue, there’s no reason why you can’t get them enacted.