An exercise in frustration

When I was training for the 2 marathons I ran, I listened to audiobooks to pass the time as training runs could last for hours (it takes awhile to run 20+ miles on the long runs). I bought a number of books from Audible.com. Once I stopped training, I couldn’t justify the monthly cost for audible, so I switched to listening to podcasts on my runs. The other day, my dad showed me how he checked out an audio book from the library to listen on his iPod Touch. It looked promising, so when I got home, I went to the San Diego Public Library Web site and browsed to the eCollections link. I found a book that said it could be played on the iPod, so I checked it out and installed the OverDrive software on my iPhone.

Safari.png

Unfortunately that’s where the easy part ended. After a bunch of frustrating tries and re-reading the help information, I realized that the OverDrive software only played MP3 files. Well, I can use iTunes on my iPhone to do that, so what good was the software? There is a button on there labeled “Add Website” which implies it would make it easier to download directly on the device. I tapped on it and it launched Safari on the iPhone. Lovely. After more searching and reading reviews about the software, I came to the conclusion that the software was almost useless. I would have expected that I could enter my library card number and PIN, browse for books on the device and listen to any available audiobook. That’s not what happens; the OverDrive folks didn’t implement a WMA player that handles the DRM used on the books, so it would only play unprotected MP3 files.

I almost gave up on the concept of listening to checked out audiobooks on my iPod that I use for running or iPhone when I decided to install the OverDrive software in Windows 7 in VMWare (remember I’m a Mac user). The software offers an option to transfer the audiobook to an iPod. Hmmm…my iPod is Mac formatted and the documentation said it had to be Windows formatted. I didn’t want to do this and dug into my box of cables and stuff and found an old iPod Nano. I plugged it in, grabbed iTunes for Windows, reformatted the iPod and started the process to transfer the audiobooks to the iPod.

I’m not going to get into the nitty gritty of what is going on, but using the software in the manner it was intended, I was able to transfer unprotected audiobooks to my iPod and iPhone. Wow, this is a huge hole that isn’t the same as the analog hole. Either this is a significant oversight or a deliberate choice that the audiobook publishers have decided to accept.

The process of checking out these audiobooks was quite painful despite reading all the FAQs and me being a software engineer. My dad figured it out much faster than I did, so maybe I over analyzed it or my dad wasn’t as discriminating in his choice of books. Our library offers 100 audiobooks in MP3 format which I could have used with much less frustration while it offers 1784 books in WMA format (most of it protected so that it expires after the lending period). I’m not sure how OverDrive has convinced over 13,000 libraries to adopt their system, but the system is almost unusable.

Has anyone found the process of checking out audiobooks easy? It’s almost worth buying them from Audible.com to avoid the dealing with this.

Review: MailHub (plugin for Mail.app)

One of the things I do is “collect” software never knowing when I’ll use it, but there are a small staple of applications I use all the time. When I saw MailHub, a plugin for Mail.app, I quickly downloaded it and played with it for a few minutes. I don’t think I spent more than 10 minutes with it before I pulled out my credit card and purchased it! One of the problems with receiving so much email is what to do with it. I used to run rules on messages and kept having to setup new rules to move messages. This was inefficient for me, so dealing with messages as I read them seemed much more efficient.

If you don’t use rules in Mail, you have to use the mouse to move messages to different mailboxes/folders. For people like me that like to use the keyboard as much as possible, the process of reading a message, then moving my hand to the trackpad/mouse to file a message just wasn’t attractive. With MailHub one or two keystrokes is all it takes to move messages to mailboxes. To top it off, MailHub has smarts that tries to figure out where the messages will go and it does a pretty decent job. MailHub does a number of other things, but the ability to file messages quickly is ideal for me. My inbox is now down to zero as I deal with messages quickly as I read it.

The $19 cost for MailHub is peanuts as it saves me a significant amount of time. The plugin hasn’t affected the stability of Mail and is quite integrated into Mail.

Pros

  • Excellent integration with Mail.
  • Learns about where to file messages.
  • Easy to use keystrokes to file messages.
  • Low price.

Cons

  • Every update to Mail requires a plugin update. Mail plugins are not supported by Apple and with Snow Leopard, Apple has added a version ID to each Mail release, so plugins have to get updated. MailHub has been updated to support the new Mail versions.
  • Only works with Mail. This really isn’t a knock on MailHub, but I’ve started using Outlook for Mac to integrate with my work’s Exchange server and I miss MailHub when using Outlook

Summary

If you use Mail on the Mac and get more than just a few messages a day, MailHub is definitely worth a look. There is a 30 day trial, but I suspect that you’ll purchase it after just a few days. The plugin is well done and it’s simplicity makes it a breeze to use.

The devil is in the details

I’m a very detail oriented person and one of the things that annoys me in reading code is something like this in header files:

Copyright 2010 __MyCompanyName__. All rights reserved.

There are numerous posts including this one that tell you how to change this by default. However, you can change it on a per project basis in Xcode by setting the organization. While many may consider this minor, the question I have to ask is “what else did the developer miss?”. This kind of detail is one of the reasons I’ve been quite good at reviewing code and finding issues.

I’ve seen this mistake made in commercial projects as well as open source projects. Do people look at the code when they first create a file? While we’re at it, when I create a file, I make sure the copyright is set to whoever really owns the source; when I’ve done contract work, the source is always owned by the client, so I make sure it is set. About 70% of the code I’ve seen has had the wrong copyright. Most people don’t care about this, but if push comes to shove, I don’t want to be in the middle of someone trying to determine who owns the code.

New Service: Professional Source Code Review

While discussing what I should do with my spare time, a colleague suggested that I write a book. That sounds interesting, but what makes me qualified to write a book? He said what makes anyone qualified to write a book. Good point, but I still am not writing a book.

Today I spent my time on the (almost) daily dog walk thinking about that and came up with an idea “professional source code review”.

So, I’m now opening up my new service. For a flat fee, I’ll spend up to 5 hours reviewing source code and then I’ll prepare a detailed outline of issues and recommendations on how to proceed. Who am I targeting? In general I’m looking for companies that have outsourced their projects and want to keep an eye on the development to make sure they’re getting their money’s worth and to be advised of where things can go wrong. Many companies that undertake development don’t have internal resources to review source code and rely completely on the outsource vendor. While many applications work, reviewing code can assist in polishing the code and possibly preventing future issues.

What happens if your vendor fixes the issues and you want another review, I’ll spend an additional 5 hours (at half price) re-reviewing the code. Are my services cheap? Well, no, but how much is your vendor going to charge you fixing their own mistakes? Software development is a unique business where we’re paid to write the software and then fix mistakes (most projects I’ve worked on are on a time and materials basis).

Why should you hire me? I’ve been writing handheld software for over 16 years (yes, I actually have as I wrote Newton software while I was still in college). I’m very meticulous and have seen enough code to know what is good and what is bad. Software can work, but some of the hardest problems to track down are caused by poorly written code. I can help resolve these issues.

If interested, contact me. Of course, there are certain projects that I can’t review, so I’ll need a high level overview of your project before I can let you know about proceeding.

Can you spot the differences?

Do you spot the differences between the 2 boxes below?

newbox.pngoldbox.png

If you don’t, you’re not the only one. My three and a half year old son saw the box on the left (these Trader Joe’s Crushers are a staple in his diet) and said “It has 2 holes”. My wife and I looked at him and didn’t quite understand what he was talking about. He was clearly talking about the box, so I grabbed the old box and low and behold, the old box (on the right above) has one connected hole to display the product. The new box (the one on the left has 2 holes). While there are other differences that you can now see by looking at them side by side, I never would have paid attention to something like that.

The mind of our son amazes me; he notices so many things that I ignore or simply neglect.

Another run in with Mail.app

It seems that I rarely encounter issues with Mail hanging while talking to Gmail. Maybe I’m lucky, but it seems that my sister has more problems with the combination than anyone else I know. Today she called me almost panicked as her husband’s machine wasn’t getting mail. Turns out there were a number of issues contributing to the problem. The solution was relatively simple once I figured out the issue.

The problems:

  • Too many messages in All Mail. There were over 37000 messages in the All Mail folder on Gmail, so when he selected All Mail, Mail happily started retrieving all 37000 messages (several gigabytes). This never finished.
  • Closing the computer kept restarting the process.
  • Corrupted IMAP cache directory.

The solution:

After a bit of searching I came across a reference to the .OfflineCache folder. This is a hidden folder in ~/Library/Mail/IMAP-nameofaccount/. You have to use Terminal to access it. Removing this folder (when Mail is not running) will cause Mail to start recaching the IMAP mail. This would unstick Mail, but the problem would come back once the All Mail was hit.

I remembered that Gmail labs added some advanced IMAP options. I turned on Advanced IMAP options in Gmail labs. This brings up a few very important options.

Safari.png

Once that option is turned on (and saved), Forwarding and POP/IMAP has an extra option.

Safari.png

If you set the limit, Mail will at most show 1000 messages. This significantly reduces the number of messages that come down. Deleting the cache folder, setting this option, and then restarting Mail (and waiting a few minutes), cleaned up everything. However, there was one more option that I missed that would reduce that 1000 down to none (viewing All Mail in Mail is kind of a waste). Click on Labels and you can turn off the Labels that are shown in IMAP. Basically turn all of them off.

Safari.png

Presto! Problem solved.

What constitutes an expert?

For years, I’ve always wondered where news programs find their “experts” on various topics. Some of the things that these so called experts say sound like common sense to me. What makes these people experts? Dictionary.com defines expert as:

a person who has special skill or knowledge in someparticular field; specialist; authority: a language expert.

The key word, I guess, is “special”. Who defines special?

I’ve been to a number of conferences where people get on stage and talk about topics, usually technical topics and I’ve considered these people to be “experts” in their fields. However, I’ve come to realize that being on stage doesn’t make someone an expert. As part of my ongoing technical training, I’ve been watching all the videos from last year’s Apple Worldwide Developer Conference (WWDC). One of the sessions had a presenter whose name I’ve heard for years and considered him more knowledgable than me. However, after listening to the session and reviewing the code from the session, I no longer take for granted that the people presenting are “experts”. (I disagree with a number of things said in the session and thought that the code could have been written better.)

Am I an expert? I don’t consider myself an expert (if I did, I think my head would swell!), but I’ve been writing handheld software for the last 15 years, so I’ve seen the good, the bad, and the ugly in terms of code. Maybe I’m more confident now than when I started or maybe I no longer take things for face value.

Should I switch?

Now that the iPhone is coming to Verizon, I will have to make a decision about sticking with AT&T or moving to Verizon. As I still have an existing plan with Sprint that my wife uses, I don’t have to make this decision until this summer (the ETF on my Sprint lines will be a total of $100 which I’ll gladly pay to combine my lines once again). In June, like many others, I’ll be 1 year into my 2 year AT&T contract putting the ETF at something over $250 which is a bit steep, but I have to consider will I get better service? There is a lot of speculation that lots of people will jump to Verizon and there are others that say that there won’t be a mass exodus. At this point, I have no idea what all the unhappy AT&T customers will do.

There are a number of pros to sticking with AT&T. First off, I won’t have to pay an ETF to leave. Second, while being able to do voice and data at the same time isn’t something I do all that often, having that ability is nice. This is something that Verizon can’t  do and with the mobile hotspot feature available on the Verizon iPhone, one has to question its utility if you lose data connectivity when talking on a phone (I find that if I’m in a hotel or at an airport, I use my MiFi and am talking on the phone at the same time, something that the hotspot feature won’t be useful). Third, the speculation is that an iPhone 5 will come out this summer. I don’t think that this phone will immediately be available on Verizon which has seemed to always plague CDMA carriers for as long as I can remember (it took forever to get Bluetooth on a CDMA phone). If I stick with AT&T and an iPhone comes out, I can just renew my contract, pay for the new phone and go on my merry way. If I went with Verizon then who knows when I’d get the next iPhone.

The cons of AT&T? Well, so far, I’ve only had two experiences where the iPhone failed me. The first happened to be the first day I got the iPhone where I couldn’t get data coverage in the San Diego airport. The second was when I was in San Francisco; I was unable to get data there as well. Many people that fault the iPhone are in the most populous large cities, New York and San Francisco. Others have pointed out that the big problem is the time it takes to get cell sites live in these cities; we’re talking years, so AT&T is finally getting new sites up that they planned back when the iPhone started getting popular. The assumption is that Verizon has seen this and been planning their network. Other than those 2 times, I’ve been relatively pleased with AT&T. Coverage is fine everywhere I go and is a bit superior to the coverage I had on Sprint.

Why would I goto Verizon? Cost would be one factor, but the plans are quite comparable between AT&T and Verizon. However, at this time Verizon hasn’t announced if they’ll keep the unlimited smartphone plan for the iPhone; I have the 2 GB plan on AT&T. I use maybe a few hundred MB of data a month, so the cap isn’t an issue. Better coverage? In 7 months, I’ve had basically 1 day of problems. Is that reason enough to jump ship? I don’t think so.

Now that I’ve written this article and laid out my points, I’ve convinced myself to sit tight and do nothing. I’ll revisit this in the summer when I have to switch my wife, but unless something major happens, I’m going to move my wife’s line to AT&T.

The end of standalone GPS units?

Recently I’ve started using RunKeeper when I walk the dog as well as when we went to the zoo a few weeks ago. I received email from them the other day indicating that they now support heart rate monitoring via the Fisica Ant+ Sensor key and a heart rate strap like the one I have with my Garmin Forerunner 405. This got me thinking that I could replace my Garmin Forerunner 405 for running. One device down as the RunKeeper software works pretty well; my only issue would be wearing my iPhone in a case on my arm. Will the moisture stay out? Will it be too heavy? I’m not sure, but definitely worth looking at sometime in the future when my 405 breaks (or about $100 lands in my lap).

In addition to using RunKeeper for tracking runs/walks, I used it to geotag photos that my father took at the zoo. This now replaces the i-Got-U device I have used for geotagging. Using the RunKeeper Web site, I can export the GPS track and then use it for geotagging.

Last Friday I used my Garmin nüvi 765 to get me to a meeting near the convention center. It took me on a strange route that may be due to year old maps or due to strange software routing. Then on the way home, I got to see the 32nd street Naval Station, a place I’ve never seen in all my years in San Diego! While these 2 issues may just be anomalies, there is pretty much no chance that there will ever be a software update for this unit and the maps are not going to be cheap to update.

There are a number of navigation applications available for the iPhone that didn’t become viable until this past summer when iOS 4 was released. Up until then, navigation apps couldn’t run in the background on the iPhone and really weren’t up to par. In addition, these applications are including full maps and not loading from the network (one of my major complaints about phone based GPS was that loading maps off the network is too slow and can’t route fast enough). The exception to this is Garmin’s Street Pilot application; Garmin has decided against putting the 1 GB or so of map data on the device which I think is a huge mistake.

While I haven’t purchased one of these navigation apps, yet, I’ll likely do it for a future trip. I’m sure I’ll be pleased compared to my aging Garmin, at a much lower price.

So I’ve just identified that my iPhone, a device I carry all the time, will replace my Garmin nüvi 765, my Garmin Forerunner 405, the i-Got-U, as well as the iPod Nano I use for running. Is there a reason to keep these devices? I don’t think so. A year ago, I wouldn’t have said this, but the iPhone 4 and iOS 4 have really come a long way in delivering a quality GPS experience.

The wrong way to dispose of a tree?

The other day when I was running, I saw someone driving along with a Christmas tree dragging behind him. Instead of putting the tree on the roof of the Ford Explorer to take to the recycle site, the driver tied a rope to the trailer hitch and the other end to the trunk of the tree. This was absolutely one of the times that I would like to have used my iPhone for running instead of my Garmin Forerunner 405 so that I could have taken a picture of this. However, a picture didn’t tell the whole picture as the smell of burning wood (it wasn’t on fire) added to the humor of the situation.