Over the past few weeks, I have been looking at my productivity and how it can be improved. One tool that I have found to be very useful is named Launchy. This little tool acts much like the coveted Mac application named QuickSilver but for Windows. Finally, I have found a productivity tool for Windows that deserves some recognition.
By default, you use the ALT+SPACE hotkey to bring Launchy to the foreground. Otherwise, Launchy sits in the background and waits for you to query it with this keystroke.
Anyhow, I'd like to describe some of the features of Launchy that I find very useful.
If you know of any other features or want to share some of your features with me, please add a comment to this posting.
Today I had a really good conversation with two of my co-workers about object oriented coding guidelines. Two guidelines happened to really stick out in the conversation.
First and foremost, never return a null value from a method (or interface). Returning null values seems to stem from the days when programmers dealt with C code. This seems to have been the proper way to code back in the day because objects tended to be quite heavy when it came to memory and CPU utilization. Returning null in object orientated languages causes mistrust in your code because any caller of your method must check for null values before using the returned value. If the caller doesn't check for null values then an exception will be thrown which will cause a great deal of instability in your application.
Second, if it is possible, wrap primitives in objects. The tendency that many people have when passing primitive values around in code is assuming something about the primitive in the boundary cases. This can be thought of as metadata that should be attached along with the primitive value. There is almost always some kind of metadata that should be attached to primitive values that will help improve your code. This will help users of your interface (this term is used loosely here) use your value in the correct way. For example, let's say you pass around a float value that is a lengh value. Instead of just passing this float value around, wouldn't it be better to also pass along the units of measurement as well, such as metres or feet.
About 2 weeks ago, I started reading Pragmatic Thinking and Learning in an effort to help me with my somewhat stale thought patterns. One of the exercises mentioned in this book is called The "Just Write" Technique. This is the technique that I plan on using to help me 'harvest new thoughts and ideas'. You'll see my new thoughts and ideas come up on what went on in my day or what is just going through my mine. Hopefully I will be able to get a blog entry written per day that will make some sense.