And the total is…

Posted by steve | General Commentary | Monday 25 May 2009 11:29 am



Enjoying my work

Posted by steve | General Commentary | Friday 22 May 2009 5:27 am

I can tell when I’m enjoying whatever project I’m working on. This is true for projects at work or personal projects. When I awake in the morning full of ideas about the next steps I’ll be taking on the project, that’s a good sign.

Speaking of signs about mental health, a friend of mine shared an interesting observation about me many years ago. It’s probably pretty obvious that I really enjoy writing code. I write software for a living and I write software for personal hobby projects. Most of that work professionally and personally has been Smalltalk programming – VisualWorks, Visual Age professionally, and Squeak for personal projects and presentations.

My friend noted that it was a sure sign of my mental well being to ask me if I was writing any Squeak code lately. Whenever I said “No”, he knew that things were not going well for me.


Star Trek

Posted by steve | General Commentary | Saturday 16 May 2009 5:21 pm

Just saw the movie. Short answer: Wow.

I liked it. It reminds me of the energy level from “The Wrath of Kahn”. I actually enjoyed the characters and story line. Sure, they made some serious departures from Star Trek Canon, and the Hollywood Science Physics are at work. But for an action science fiction themed story with “familiar” characters that we’ve come to know and love, it’s a fun film to see. I’ll watch this one on Blu-Ray when it comes out for sure.


Executive / Programmer mismatch

Posted by steve | Blogging | Thursday 14 May 2009 8:41 pm

Quite a while ago I worked as a developer for a firm that employed about 1000 software analysts and developers. The company had a rich suite of software to offer and was operating a successful business. It was also true that, as a technical staff member, you regularly saw evidence that the folks several pay grades higher up the company ladder had no longer any reasonable understanding of how software was written. Make no mistake, this was a software company. It often felt like we were being operated by people who only understood finance. Or maybe manufacturing.

In a company of that size, and because of the deep technical nature of the products we were developing, it was common to work side-by-side with some of the brightest people in the software industry. Critical thinking and analysis skills were strong amongst the developers.

As happens in modern times, the senior executives were often “changed out”. I remember particularly how disconnected the CEO was from where the real work happened – within the development organization. We were facing some difficult times and the company was looking for ways to cut costs and do what it could to improve productivity. As is common in very large developer organizations like theirs was, the processes often got in the way of the work. And the backlog of defects was measured in the thousands.

So late one day the newest CEO had called together a meeting with all the developers for a “pep talk”. Morale was pretty bad already. We were gathered in the main entry foyer of the building where he had a podium set up with audio equipment for proper communication. It was a Friday afternoon, around 4:00 PM as I recall. Mind you, many of the developers I knew were “early birds” and came into work at 6:00. So they were already staying after hours on a Friday for this meeting.

I’ll never forget his attempt at getting the troops to pep-up morale and help pick up the overall productivity within the company. He did come from a manufacturing company before he became the CEO. For many developers, it just drove home a wholly different point.

He actually ended up his presentation by asking each developer to do their part to improve productivity by “writing one extra line of code every day.”

I remembered the old Refactoring approach where I was happy if I deleted lines of code everyday.


Imported old game review blog entries into A World Without String

Posted by steve | Board Games | Sunday 10 May 2009 9:55 pm

I decided to update my current board games review BLOG (A World Without String) to include all of the older game review entries from the previous BLOG. This makes that site the main repository of my board game reviews and notes. I intend to deprecate the older site entries soon.


Moved my domain “A World Without String”

Posted by steve | Board Games | Saturday 9 May 2009 7:44 pm

I moved my domain “A World Without String” today. Near as I can tell the process went smoothly and without a hitch. Let me know if you encounter a problem accessing the site.

I use A World Without String as my board games BLOG and reviews site. If you are seeing the site from the newly moved location it should have a new article named “Haven’t played board games in a while”. If you see that entry the move worked.


Capture it in a unit test

Posted by steve | Smalltalk | Thursday 7 May 2009 4:15 pm

While discussing some released code recently with a colleague, I remembered a little “rule”.

We were talking with a customer who was giving us feedback about what appeared to be a bug. The developer looked up the related code and discovered comments in the code that described why it was done the way it was done. Essentially, the customer was reminded that it was working as previously requested.

However, this reminded me of an opinion I have about both comments in code and capturing requirements. I believe that comments in code are useless. There are exceptions of course. The problem with comments are that they aren’t part of the code stream and there’s nothing to control that they are correct. Comments can even be misleading.

Reminds me of that old joke of the lab assistant at college helping new programming students getting their assignments correct. The lab assistant was asked to help a student and that student remarked, “You know, I get the idea that the compiler is completely ignoring my comments.”

So what about the situation where the “reason” for some code was captured in comments?

My recommendation is to capture your requirements in a unit test. Get rid of the comment. Make a unit test that demonstrates the setup and expected results in such a clear manner that it’s obvious what the requirement was.


Multiple sites of mine were hacked

Posted by steve | General Commentary | Monday 4 May 2009 2:59 pm

We’re still working on how this happened, and I have notified the web host, but we discovered today that a number of my domains were hacked. It didn’t show up with Firefox but did with Safari. We don’t use IE around here.

This is what people saw when they logged onto the sites.

Hacked Site Warning

The hack was that a javascript was appended to the end of the index.html file, beyond the closing HTML tag. I’m guessing that Firefox stopped processing the file when it saw the HTML closure tag and therefore it “missed” the hacked script.

It’s interesting since the hack appears to have only modified the index.html files to include the script to generate the above warning. I noticed that the script was encoded to not reveal what it was really doing. Also, the link goes somewhere pretty suspicious even though it mentioned Google in the preceding text. Tricky.

There are only 3 people that know the low-level password for our domains and we’ll be changing that real-soon-now. I’m thinking that the password was accidently picked up from someone’s computer, perhaps even in attachment in the ever not so private e-mail system that people use.

NOTE: Sending critical information by unencrypted email is dumb. You might as well write it on a postcard and drop it in a public mailbox.

Not every site was hit. Sites that were hacked include:


VEX Robotics World Championship

Posted by steve | General Commentary | Friday 1 May 2009 8:14 am

Friday morning and matches have begun.

Update Friday 7:43 PM
Here are 2 shots, taken from my iPhone, of the other 4 arenas. The teams competed in both areas.

At the end of the day Friday, Buffett Magnet team Phoenix won 2 matches and lost 3. There are more matches Saturday, but no one believes they will make it to the finals.

Before we arrived here we all knew that the competition would be impressive. And the middle schools compete in the same class as high schools, not divided out as in the competitions up to this point. So we expected that they would lose, but because we expected they would come up against tougher teams.

However, let me point out what I think really happened. Up until this meet, the team has been winning consistently. And this is the first time they have been in a series of competitions. So they’ve had some “swagger” in their walk and talk. But allow me to also express some perspective. These are middle school boys. They are already in that teen-years stage where they already know everything and will not listen to advice. For example, at the Championship of the Americas competition, I asked the team members if they saw any interesting ideas in robots belonging to other teams. Uniformly they responded that they beat every team they saw and had nothing to learn from them. Pretty frustrating.

And here the team was at the World Championships, competing against other number 1 teams from 15 nations. There was a very large area setup for the participants to perform practice runs, including access to the same rinks and components. And there were lots of teams queuing up to get practice runs in. It’s like any other competition, the students that want high scores practice their art. But not these guys. They sat in their setup area playing poker. When repeatedly asked by the coach and parents why they were not warming up and practicing, all they offered were excuses why they couldn’t do that. Really weird. And later, they made a design change to their robot to improve the wheels they used. When the first competition began, with their recently modified robot, the autonomous action failed because the arm could no longer reach above the goal where they wanted to drop the scoring cubes. We learned that the new wheels lowered the overall height of the robot making the existing arm and programming not compatible. When we asked, they didn’t think to test out the impact of the new wheels. Instead they learned the hard way during the match that they did not properly prepare. So what do we see when they go back to their pit area? Playing poker again. And again, ignoring our requests that they should maybe spend some time practicing.

I’m not even sure the team members learned any lessons so far. This evening after the 3rd loss, you could hear them bitching about the lack of a separate category for middle school students, or how they needed better parts, or how the other teams had an unfair advantage. As boys that age tend to do about accepting responsibility, the problems are never of their own making.

I know, I sound like a frustrated parent. I really don’t mind that they lost some matches. I expected them to. But I do mind that they lost not because the other teams they competed against were better. They lost because they performed poorly and believed they had no need to practice or better prepare. Let’s just hope something positive comes from this experience for them.

Update Saturday morning
I was wrong about scores up to this point. They lost 2 and won 2, having played only 4 matches so far. Hopefully total will better.

Update Saturday afternoon
Actually, I had it right the first time. Coming into today the team had 3 losses and 2 wins. Today they played 1 match and won. In fact, if they had played as well on Friday as they did today they would have made it to the Alliance Selections and the elimination matches. Overall, they ended up the competition 3-3-0. 3 wins, 3 losses, in a field of 130 teams they ended with a rank of 62. That’s about what we mostly expected before we went to Dallas. I do believe they could have made it into the elimination matches if they would have practiced and had a better approach to playing.