Exploring the TypingBuddy Application (Part 1)

Many people find that they spend too much time in front of the monitor at once. If you’re like me and put in a 12 to 14 hour day, sitting in front of the monitor for an extended length of time can have significant detrimental effects. At one time, I was starting to suffer a little from muscle stress and eye strain. If I had continued the way I was going, I would have eventually had to deal with carpal tunnel syndrome and other nasty side effects of computer usage. The fact is, in order to stay healthy, you have to get up and move away from the computer screen regularly during the work day. If you maintain healthy work habits, you’ll find that you can actually work longer at the computer and that your work time will be significantly more productive. It’s because I understood the problems of computer use early that I developed TypingBuddy.

No one likes to be nagged. So, one of the goals for TypingBuddy was to make the application at least a little fun and relatively non-intrusive. Over the years, I’ve continued to add little perks to TypingBuddy to keep it fresh, but also to improve the overall application. The first version of TypingBuddy didn’t include very much and it displayed the same message every time, which proved boring. The application now provides a number of features that I didn’t originally include, such as the ability to define non-computer rest time tasks and a countdown timer for the off time as well as on time. For the purpose of this example, off time is the time that you spend doing something other than working at your computer. That means getting up from the chair and doing something physical for the most part. TypingBuddy can only suggest that you move around—only you can actually decide to do it. On time is the time that you spend working at your computer.

Experience has shown me that I personally need to take ten to fifteen minutes of off time after each hour of on time. So, I set TypingBuddy to display an alert after each hour. When I click the button acknowledging the alert, another countdown timer shows how much off time I have left. The alert provides me with a random task to perform, such as pet the dog, kiss my wife , feed wood to the wood stove, or walk around the house. An editor lets me type in any set of random tasks that I want. Because some of these random tasks, such as feed the wood stove, are only applicable to a specific time of year, I can also type in a date range for doing them so that TypingBuddy doesn’t tell me to feed the wood stove on a hot day in the summer or walk around the house in the middle of winter. A button titled, Another Task, lets me grab a different task when the current task isn’t applicable. I’ve typed in a wealth of interesting tasks to perform over the years in an effort to make TypingBuddy fun to use.

The information that you provide to TypingBuddy is stored in two places in the current version. I decided to use the Windows registry to store the TypingBuddy settings, such as the amount of off time and on time, when I originally designed the application. An XML database stores the alerts in the user’s personal data folder. I decided on changing the data location after I started working with XML files. One of the updates I’ve been considering for TypingBuddy is to remove the registry from the picture. As you saw from the GrabAPicture application I just finished, it’s possible to store everything in the user’s data folder and make it easier to back up as well. In fact, I’ll likely make this change before we get started on the actual construction of the application next week.

TypingBuddy has to be running constantly in order to do its job. Of course, you don’t want to see TypingBuddy unless it has an alert to display. Consequently, TypingBuddy resides in the Notification Area. When you hover the mouse over the TypingBuddy icon, you see the number of second left in the current on time. Right clicking the icon displays a menu of actions you can perform with TypingBuddy, such as displaying the TypingBuddy configuration dialog box or temporarily pausing TypingBuddy. The menu automatically changes as conditions change.

Of course, I’m always interested in your input, which is the purpose of this introductory blog post. What would you like to see in an application like TypingBuddy? Let me know your thoughts at John@JohnMuellerBooks.com. In the meantime, I’ll be adding a few more bits of polish to TypingBuddy before writing the initial design post next week. The next post in this series is Exploring the TypingBuddy Application (Part 2).