A Matter of Classification
Lately, I have been using the public library here in town a great deal more since I discovered that I could request inter-library loans over the Internet. That has helped to alleviate the aggravation of our branch's meager selection. But, there is something to be said for simply browsing the aisles and picking up books that interest me. This has led to a whole new set of frustrations with our library system.
First, let us imagine an author that you are interested in. For the sake of argument, let us say that author's name is Dan Simmons. Now, I have read several of his books and would like to find some new ones. In most libraries, I would just head to the fiction section and look in the 'S' section for the last name 'Simmons' an, lo, there would be books by the author that I want to read. Sure enough, if I do that at my local library, I can find a few books. However, I could also check the Mystery section — apparently, mysteries are not fiction after all. Look, there are a couple of Dan Simmons books over in the Mystery section. Oops, watch out, he has also written some Science Fiction novels; we had better check the Science Fiction section as well. Wait a minute... there are two Science Fiction sections, one for hard-cover and one for paper-back. I guess I have to check them both to see if he has any books. Oh wait, seeing the paper-back Science Fiction section reminds me, there is also a paper-back Fiction section! So, let us count them up: Fiction, Packet-back Fiction, Mystery, Science Fiction, and Paper-back Science Fiction! There are five different places I have to check to browse and see if this author has books in this library.
"Wait," you may be thinking, "this is the age of computers. Surely you can just use the same website that you used to reserve books to find what sections books by your favorite author are in!" If you have thought that, you and I are of like mind. That does narrow down the search to just one section when I find a book I want. However, this raises another issue. While searching the library's website for King Solomon's Mines, I saw that my branch of the library had the book, listed under F HAG. That tells me to look in the Fiction section under the 'H' section and I should be able to find books by H. Rider Haggard. So, I look and look and look, to no avail. Finally, I give up and just put the book on hold, expecting the library to pull the book for me and send me an email when they find it. Weeks go by and I do not get an email. Finally, by random chance on Saturday, I happen to walk by a self labeled "Classics." I think to myself, "Well, King Solomon's Mines is pretty old. Maybe it is in the Classics." Sure enough, I find it. I look at the code, and it is F HAG. So, not only do I have to look in five different sections to find books by authors that I like, I also have to know whether a book is considered a classic or not to know whether a Fiction book is located in the Fiction section or the Classics section. Before you say "That should be obvious," remember this: I found Crime and Punishment
in the Classics section, but War and Peace
was in the Fiction section.
Post-Vacation Blues
Boy, vacations sure are a lot of fun. In the middle of May, we spent a week in Virginia at Erin's house. Everyone had a blast and I am pretty sure that Emily and Jake enjoyed having a playmate for the week. We even managed to get back early enough to have a couple of days off due to the Memorial Day holiday. However, things have just been off with me ever since we got back. I have been tired, short-tempered, and generally stressed. I attribute all three symptoms to two root causes.
First, I have gotten out of the habit of getting up early and exercising in the morning. I believe that not exercising during our vacation has started a positive feedback loop. Not exercising means I am not as physically worn out at night, so I do not sleep well. Not sleeping well means that I feel too tired to get out of bed early enough to go exercise in the morning. Both of these symptoms feed back on each other causing both to get worse.
Second, it has been difficult for me to focus on projects that I have been wanting to get done. When I get home at night and finally get Emily to bed, I have been so tired that I just want to watch television for the 1.5 hours I have before I go to bed. Generally, this makes me feel guilty since I can think of so many other things that I want and should do. The guilt is likely contributing to my lack of sleep as well. Additionally, my task list and inbox keep growing since I am not really clearing them out. All of these contribute to a downward spiral where I get very little done.
So, what can I do to turn things around?
- I need to start exercising again as soon as possible. This weekend will be the perfect time because I do not have to worry about getting up extra early to exercise. Getting back in the exercise routine in the morning will increase my endorphin output and cause my day to start on a bright point. This alone might be enough to turn my mood around and kick me out of the funk.
- I need to do a really good weekly review. I put it off completely right after vacation because I was unable to get any "me" time to work on it due to sleeping in so late. This past week, I managed to get one done, but it was hurried and really was not very good. Doing a weekly review will get things out of my head. Getting "stuff" out of my head will let me concentrate more on what I am doing and less on what I could be doing.
- Strangely, I have found that getting out and working in the yard is putting me in a better mood. On Friday, I came home in a bit of a funk and just really wanted to be by myself. Luckily, I needed to get out and mow the yard. Doing that before dinner relaxed me and made it so that I could be back inside with the family without being irritable. Working out in the yard allows me to have the little bit of "me" time that I need to recharge my batteries after a long week.
I am going to work on applying these three principles over the next couple of weeks and see if that will break me out of these post-vacation blues.
Weight Tracking – Part 2
So, in writing the previous post on my Weight Tracking spreadsheet, I came upon a bit of a conundrum. I wanted to export my graph as an image, but I could not figure out how to do that in Numbers. I am sure that there is a way to do so, but it was not immediately obvious, even with a brief Google search. So, being a good engineer, I decided to roll my own weight tracking script.
Writing my own script has several advantages. First, writing my own script gave me a simple project to begin learning Ruby, something I have been wanting to do. Second, it allows me to extend the script with functionality that might be clumsy in a spreadsheet. Right now, I am just keeping track of the same information that I did in the spreadsheet, dates and weights, only I track it in a simple text file. The script calculates the sliding average for me. If needed, I can easily munge the data in other ways or pull together a secondary text file with other information like my workout routine. I know that I could do the same thing in a spreadsheet, but I like the flexibility that a full programming language gives me over the comparative restraint that I feel when I am hacking together formulas in a spreadsheet. Additionally, my data is kept in a simple text file instead of being tied to a Numbers spreadsheet.
Finally, and most importantly, I was easily able to pull in a library that allowed me to plot my weight and the sliding average of my weight over time and export it as an image file.

There are two obvious improvements that I will likely implement. First, I am calculating the sliding window average of my weight as an integer. That is what causes the strange steps on the graph. I will probably change to calculating the average as a real number, just to make the graph a little smoother. Second, I think that I want to have more points on the X-axis of the graph. Looking at it, I think that the first of each month should be marked on the graph, possibly with lines of demarcation running in the Y-direction at each monthly border. I will have to play around with it and see what all I can do with the graphing library. That is the great thing about being a programmer; if the software you are using does not do what you want it to do, you can either fix it or write your own version.
Weight Tracking
In late March, I decided to do something about the abysmal shape I was in. On the exercise front, I started doing push-ups, sit-ups, and walking/running six days a week. Long before I started any of that, I began putting my data collection skills to use by tracking my daily weight. So, in the last few days of March, I set up a simple spreadsheet to log my weight every day just before I get in the shower. I graph my weight versus time off to the side of the spreadsheet. Additionally, I calculate a 7-day sliding window average of my weight to try and smooth out the little fluctuations that occur from day to day. I also graph this and overlay it on the raw weight data.
In the early April time frame, I was very carefully watching what I ate and, as the month moved on, I noticed my weight graph showing a nice, downward trend. Then, as I began seriously working through the push-ups and sit-ups, before I began walking and running, I started to notice the graph sloping back up. At the moment, I am attributing that to the muscle-building workout that I have been doing, since I have not changed my eating habits in the past several weeks. Starting the walking and running seems to have curbed the incline, but I am still not doing a large enough amount of cardio exercise to push the trend back downwards.
I am considering augmenting my spreadsheet with push-up, sit-up, and walking/running data per day to see if I can correlate a decrease in my weight to increases in my workout routine. If everything is going well, I would expect to see that correlation. If not, I suppose that means that my eating habits have changed and I just have not noticed.
Task Management – Task Tracking
As I mentioned before, Tasks has its share of warts, but it seems to work well enough for me at the moment. In keeping with the GTD tradition, I split my tasks into two categories — projects and actions. Tasks does not have the concept of projects; it only has the concept of tasks. However, I can assign sub-tasks to a task. Additionally, I assign a tag of my choice to a task. So, I combine those to features to give me project support:
- A project is defined as: a root-level task that is tagged with 'project' OR a root-level task that is tagged with 'someday'
- An action is defined as: either a sub-task of a project OR a root-level task that is not tagged with 'project' or 'someday' and has a date assigned to it.
I use these conventions to help me do my weekly review every Sunday morning. First, I scan the actions associated with my projects and try to schedule actions for the upcoming week. Next, I scan my someday projects and decide whether I want to promote them to projects or not. This all works fairly well in Tasks because I can look at my tasks by tag.
On a daily basis, I tend to heavily use the Upcoming screen in Tasks. The upcoming screen nicely breaks down in Overdue tasks, Due Today tasks, and Due within 7 Days tasks. So, at any point, I can see what I need to get done that day and in the near future. If, in some strange twist of fate, I run out of tasks to work on that are either overdue or due that day, I fall back to tags again. All of my actions are tagged with a context like 'home', 'work', 'web', 'errands', etc. When nothing else is pressing, I check the tag for the appropriate context I am in and try to see if there is anything that I have the energy to work on. If so, I work on that. Otherwise, I can rest.