October 2007 Archives

I'm a big fan of Open Source software. I began to be a fan of Open Source (or Free Software as it was more generally known back in those days) because I feel that it is not right to "steal" software. When I started towards Free Software, I did so because I was a rather poor college student and I couldn't afford much of the commercial software available for various tasks I wanted to do. When I found out that much of that software was available for free as long as I learned to use Linux (and I really enjoy trying new things) I wouldn't have to worry about "stealing" anything to do what I wanted to do.

I switched to Linux, started using free tools for almost everything, and now have come to love Free Software for many of it's benefits. In my own software development, I often release my work under a Free Software license not because I necessarily think anyone else might find it useful but because the quality of my work increases when I do it. Open Source provides accountability.

This accountability may not work for everyone, but it certainly works for me. I am not a person who wants other people looking at my work and saying to themselves, "That's a piece of @#$%! It has no documentation. It has a horrible interface. It engages in bad design practices." The reason for this is two-fold: (1) I am a lot more concerned about appearances than I like to pretend and (2) I use my Open Source code as a resume enhancement and if I put out crap, I can expect my resume to look like crap.

Therefore, I often seek ways to take a program I've written for myself or for Boomer Consulting and see how I can abstract that code out so that it could be used in a my general solution. When I do so, I then go through all the modules and add documentation, I am more careful about adding inline comments to explain what it's doing, and I generally work harder at making my code reusable rather than hacking together a quick solution that just gets the job done. And, perhaps most importantly, it forces me to write extensive test cases to make sure that the code actually works rather than just performing the trial-and-error process one time around and then never verifying that a feature works again until it breaks in production.

In the short term, this often has the tendency to make my life harder (even significantly so), but in the long term, my it means I have to spend less time trying to fix my own crappy code because I was lazy about how I put it together initially.

Anyway, that's just one more benefit of publishing my code as Free Software.

Cheers.

Okay, so we've all heard of and mocked the BSOD (Blue/Black Screen of Death) on our computers. Today, I'm going to deride the Blue Screen of Dumb on my Apple. I just forceably shutdown my laptop by holding down the power button for 10 seconds. Was it hung? No. My mouse was still moving, it was still taking keyboard input, and Expose (Apple's window switching effect) appeared to be working. What was the problem? My screen was blue.

When you plug an additional monitor into an Apple computer, it turns the screen a pleasant shade of soothing blue while it figures out how to add the second screen. Apple tries to protect the user from ugly screen change side-effects by covering them over with a uniform color. This way, even if your screen flickers and blinks, you won't notice it so much. It's one of the ways Apple politely pats the users on the head so they don't have to be so worried about they're computer.

The problem is that sometimes when you're in a hurry and you don't take the time to unplug the external monitor cable and wait for the blue screen to go away before closing your Apple laptop and putting it to sleep, when it comes time wake-up, the Apple sometimes leaves that pleasant Blue Screen of Dumb up. Interestingly, I can still tell where the password box is for my screen lock-out (corporate computers MUST HAVE SCREEN LOCK PASSWORDS you know) by moving the mouse around. If it moves off where the box is it turns into the pretty Apple wait pinwheel. If I move it back on, it becomes an arrow or the "I" cursor over where the text fields should be shown.

After typing my password and hitting "Enter" (which I don't recommend doing if you think you had a chat window open before you shutdown that might be active again, that burned my on my Linux workstation the day when I told all my friends in the local LUG channel on IRC what my password was), after typing my password, I can then move the mouse into the corner that actives Expose and it turns to the finger cursor normally in place for Expose. Going back to the corner, it turns back to a regular pointer. All this indicates that if it weren't for the Blue Screen of Dumb, I should be able to use my computer. In fact, I suppose if I were blind and had all the accessibility features turned on, I might not even notice since I can't see the screen anyway.

The same thing has been known to happen with the lock-out screen, particularly if I get a little too eager to enter my password. I have my Mac set to lock the computer when waking up or after the screen saver starts as per company policy. However, if I start typing before the password box shows up (which can take several seconds after waking up because of how many programs I usually have running that it has to notify of the wakeup) then sometimes when I hit enter the password box goes away but this time the Black Screen of Dumb stays in place. This one I can almost always eliminate by closing my laptop again waiting about 30 seconds and then reopening and trying again.

Now, I know the real issue here is that properly handling sleep and wakeup is hard, very hard. I don't know of anyone who's had a computer running any OS that really got it right 100% of the time. Apples (other than the two issues I mention here) have got it about as close as I've seen in my experience, which is why I rarely hesitate to close my laptop lid to sleep at any point, even when I've been using a second monitor. These problems really don't come up very often. I don't know that that's because of any particular ingenuity or good design on Apple's part so much as it is that Mac OS X doesn't run on anything but Apple hardware so there are fewer variations to test and debug.

Anyway, that's just one annoyance on my Mac, but at least it doesn't crash as often as any Windows laptop I've ever had. Furthermore, since there aren't a lot of ways to tweak things under the hood without going into questionable territory I don't attempt to break it as much as any Linux laptop I've ever had. :)

Cheers.

There's a pretty decent article over
at A List Apart on relationship management by Keith LaFerriere from a couple weeks ago (catching up on some of my reading). I enjoyed the "Hat Head" versus "Bed Head" comparison, particularly since I'd definitely qualify myself as a "Bed Head" in my attempt to live a creative lifestyle. Though, as a developer, my idea of a creative lifestyle is probably a little different from the conception of a typical designer (less coffee and black turtlenecks and more Dr. Pepper and not-shaving).

Anyway, he makes several very important points that I think everyone in development and design need to adhere to more.

  • Don't take things personally. Yes, you are being creative and it is important to you, but if you're making money doing it, you need to have a professional attitude and be willing to compromise.
  • Be an example, particularly if you're the team leader. It's really amazing how much the behavior of a person is determined by the people around him. If you get ticked off every time someone does something you don't like, people around you will probably start having at least a kernel of similar behavior. This goes doubly so for managers and leaders. Your behavior sets the tone the rest of the group will judge itself by. Be good.
  • Watch your language. By this I'm referring to trying to be what I would call "open-minded language." If you indicate by the adjectives you use that you're not listening or don't intend to, you will convince no one of anything. Avoid strong adjectives and try to talk as if all the options are still open even if you're already on a specific path. You can make it clear that a bad idea isn't going to fly without insulting your audience.

Anyway, I just wanted to post that link and give an infinitesimal boost to what I consider to be a good overall article on getting along with coworkers and getting the job done as a team.

Cheers.

About this Archive

This page is an archive of entries from October 2007 listed from newest to oldest.

September 2007 is the previous archive.

November 2007 is the next archive.

Find recent content on the main index or look in the archives to find all content.