Archive for the ‘General’ Category

For a while now, my employer has maintained an opening for a talented software developer. They have not advertised the position very heavily because (a) we live in an area that is not rich with developers and (b) our small, Agile team has chugged along fairly well without this extra person.

That all changed today when a colleague – and friend – opted for greener pastures. He’s returning to the company where he started his career as an intern, a place he is particularly fond of, and I cannot blame him for taking a job that more closely fulfills his professional and personal desires. I wish him all the best.

Still, our small team of developers just shrunk by one, and we need to fill the gap.

In a larger city this would not be a problem. We’d just advertise the position and the resumes would pour in. But our location is our biggest hurdle when it comes to attracting talented developers. We simply can’t pull from as large a pool as a city like Austin, Texas can.

So where do I work? Nez Perce County, a small county government in north-central Idaho. As one might imagine, it is not exactly a mecca for software development talent. But that hasn’t stopped us from trying. People we talk to are always surprised to learn that our tiny little IT shop in Idaho is practicing Agile techniques. Yet that is exactly what we’re doing.

We subscribe to Agile practices, Extreme Programming in particular, and we drink from the TDD fountain. We use Continuous Integration, unit tests, acceptance tests, and frequent customer feedback along with short iterations to write quality, maintainable code and deliver business value to our customers (which, incidentally, includes us, since we are also taxpayers; we’re our own bosses in manner of speaking).

We work in an open environment and every developer has two monitors at their workstation. We work closely together as a team and have an on-site customer to help provide rapid feedback.

What We’re Looking For

We realize that we’re a bit handicapped by our geography. We’re not going to see a lot of great resumes. So it’s important for us to identify candidates that have the capacity to learn and possess a passion for software development. Ideally, candidates for our shop would have the following qualifications:

  • Knowledge of Object Oriented design and principles
  • Knowledge/Experience with C# .Net, or a similar object-oriented language (Java, C++)
  • Database experience
  • Willingness to learn

Bonus points for knowledge/experience with any of the following: Gang of Four design patterns, Unit Testing, IoC, CAB and/or SQL Server.

More information about the position, including benefits and pay, can be gathered by contacting my boss, Randy Buttenhoff, via the Nez Perce County IT web page.

…is bad disks.

For about the 3rd time in as many months I’m saddled with another scratched and damaged DVD that won’t play. This time it’s “Michael Clayton.”

I’m sick of this. Are you listening Netflix? You must not be, because there’s easily accessible way for me to contact you on your website and tell you THIS SUCKS!

Netflix and other online movie rental companies want you to think that having movies mailed to you is the greatest thing since sliced bread. But the basic problem is that the media is too fragile; DVD’s are too easily damaged. It’s far too easy for the average person to incidentally scratch a DVD to the point where it is unplayable. Never mind the careless folks who just don’t give a shit and scratch them up because they’re clumsy oafs.

This would be manageable if Netflix would comp you a free movie when this happens, but they don’t. Instead, they ship you out another movie on the next business day. Meanwhile, you have to eat the lost time in shipping since you got a bad disk you can’t watch.

What’s really disappointing in all of this is that no one apparently considered the fragile nature of the DVD when they were attempting to create the next great removable media. Every time I see a science fiction film or television show where the actors utilize some snazzy, futuristic removable media (think “Serenity”), the media is always a well-protected one, encased in a shell that prevents it from getting scratched (or destroyed by martial arts fighting villains).

A disappointing end to the weekend.

I love this post.

The funny part, to me, comes from one of the comments. Bruno writes:

I believe the better way is to do it INLINE, instead of 4 lines of code
.
.
I don´t like to scroll my screen to read small, very simple portions of logic…

I laughed when I read that comment.

“Simple portions of logic”….

Made more complicated by inline statements

I laughed because I had just done a cursory review of two of Kent Beck’s Extreme Programming books today, and in one of those books he talks about simplicity and intent. He talks about how some programmers have a difficult time writing simple code; they think complexity is some sort of measurement for how good a programmer they are. They find job security in complexity. They find self-worth in complexity.

Personally, I think the opposite: the simpler the code, the better programmer you are. If you can solve a complex problem with simple code, you have real skill. Plus, simple code reveals its intent faster and with less effort.

I’ve got more important problems to solve than deciphering cryptic code.

“You need to unit test your emails”

Comment from a coworker, proofreading another coworker’s email, after discovering grammatical errors that were the result of a long day.

This morning I got an email from an employee at StatCounter.com. She wanted to alert me to the presence of their stat counter on my website, pointing to another website that was an advertiser for Viagra. The StatCounter employee asked me:

Are you aware that there is a hidden link to a Viagra site on your site?

Ummm… no?

I was skeptical of the email, so I did a quick “view source” on my blog and sure enough the offending code was tucked away at the bottom on my HTML, right after my footer.

I spent a little bit of time trying to track down the hidden script, but with literally hundreds of potential candidate files to wade through in my WordPress deployment, I opted for a quick Google search instead, and turned up this post from a fellow WordPress user Aidan. The root of the problem is that apparently TemplateBrowser.com, where I got my theme from, is injecting themes with this additional, unwanted code.

This can be fixed very simply:

(1) Find the footer.php in the template directory and delete the call to the credit function.
(2) Find the functions.php file and delete the credit function.

That will eliminate the script.