Infinite Loops

Entering an infinite loop is one of the worst ways a program can fail. It may not be as insidious as a bug that subtly corrupts data, nor as attention-demanding as an exception being thrown, but like ...

The Value of Expressiveness

I found a threading bug in code I was writing for the hockey management sim I’ve been working on. Or at least, I thought it was a threading bug. I mean, threading is hard, right? As the player p...

Estimates

Estimating tasks is hard to get right. I’ll probably blog about this again in the future, but for now I’m going to give my current thinking. You’ll hear lots of opinions if you talk ...

Doing Things Quickly

At virtually every job I’ve ever had, managers want my tasks done quickly. Yesterday, usually. The faster the better. Sure they pay lip service to making sure that it’s done correctly, but...

Career Strategy

I asked my brother (CTO, Crew) what he thought of my last post, about competitive advantage. He said it was ‘dense’ and asked if I had run it against a program that calculates the grade le...

Competitive Advantage for Developers

Do the tenets of competitive advantage for companies also apply to software developers? Is there anything about competitive advantage that we as the builders of software can learn to assist with our o...

On Casting

As programming students, we are taught how to cast types as rote. In none of my courses was I ever taught that casting was necessarily a bad thing. In fact, C++ even has several keywords just for cast...

Expressiveness

I was thinking the other day about magic numbers. I’m sure you’ve come across them. In fact, I’m pretty sure you’ve created them! Everyone who programs has. It might be a value...

The Path of the Item is Not Valid

I came across this error today while deploying some SSRS reports to a server using the SSDT BI component for Visual Studio. The path of the item ‘/DataSources//Database’ is not valid. The ...

Learning to Delegate

Learning to delegate is one of those things that you don’t really need to do much at the beginning of your career. And since it’s not (rarely?) taught in school, it’s something you l...