GV Places Discontinued

I hate to have to do this, but I have just pulled GV Places from the App Store, and I will not be selling or maintaining it any longer.

Some users have been experiencing problems with credentials and the various calls to the Google Voice back end. I have never had those problems, and thus have had a very hard time diagnosing the issue. I had planned to release a new version that included the ability to mail verbose logs to me, in the hopes that I could spot something that was going on. But then I got an email from Apple saying that it’s time to pay them again for the privilege of developing for the iPhone. And I just can’t do that.

I’ve spent hundreds of hours working on this app, and $200 in fees to Apple. I haven’t recovered more than 1/3 of that expense, so it just doesn’t make any sense for me to continue.

For those of you who bought it, thank you. I’m sorry I have to drop it, but I do.

GV Places 1.3 Available in the App Store

After just a week in the Apple queue, version 1.3 of GV Places is now available. Here’s the list of what’s new:

  • Changed the screen order for adding a place. Now the phone number selection comes first, then the map.
  • Places no longer have to have geography associated with them.
  • A place can be designated the “default” place that will be used when no other places’ geography match the current location
  • When adding geography, the map can be searched, just like in the Maps app.
  • The list of places is now sorted alphabetically, rather than by how well they fit around the current location.
  • Completely rewritten calculations for determining if the current location is within a region, and for determining which of multiple overlapping regions is the better choice.
  • Removed most modal operations.
  • Much faster to start.

Fast Apple Customer Support

Today I bought the 24 song, 2.3 hour-long Van Halen record Live: Right Here, Right Now from the iTunes store. But there was a snag: “Why Can’t This Be Love?” failed with an error -100000. I tried restarting it a couple of different ways, but each time it would download it, then restart, three or four times, until it would finally choke with error -100000. I even downloaded the album on a Windows machine and 23 songs downloaded fine, but that one track failed with the same error. This pretty much proved to me that it was a problem on Apple’s end. I then went to my account in the iTunes store and reported an error with the track.

I received an auto-response pretty quickly with some things to try, but nothing useful. An hour or so later, I got an email from a human at Apple that basically told me to try what I had already tried and to let them know if I was still having problems, as well as providing some other info like ISP, Internet connection type, etc. I emailed them back with the details they asked for, and told them what all I had tried, including trying to download to another machine. I wondered how hard it was going to be to convince them that the problem was on their end.

A couple of hours later, I received another email, this time from a different human. I immediately assumed I would have to re-explain everything. Much to my surprise, this is what the email said:

I understand that you are unable to download the song “Why Can’t This Be Love” as your [sic] getting error -1000000. I know how eager you are to have this resolved at the earliest. I will be glad to assist you today.

Joey, please accept my sincere apologies for the frustration this download has caused. I took the liberty of removing the file causing the issue from your download queue. To give Apple time to investigate the issue and make any corrections that may be necessary, please wait at least two weeks before repurchasing this title.

I have issued a replacement song credit to your account. You can use the credit to buy a song of your choice from the iTunes Store.

So, while it kind of stinks that it could be two or more weeks before I can get the track replaced, it’s nice that they refunded me the money for the track so quickly. That’s nice, fast, customer service.

GV Places 1.1 Submitted To App Store

Yesterday, I submitted version 1.1 of GV Places to the App Store for review. I am hopeful that it won’t take as long to get through this time, but I’m not holding my breath.

The biggest news is that I dropped the iOS target version, so now people with Verizon iPhones can run it. I had hoped that the app store would not let someone download an app that they couldn’t run, but based on the 1-star review I got from a Verizon owner, that may not be the case. Here are the release notes

  • Should now work on Verizon iPhones.
  • Fixed a sorting/display bug that occurred when a place was autoswitched. The next time the app was run, the list would not be sorted properly.
  • Improved the region detection on iPhone 4. This should properly handle overlapping regions, which worked fine on the 3GS, but not so much on the iPhone 4.
  • Fixed a couple of memory leaks.
  • Note that when autoswitching is turned on, the app is not constantly running, looking for location changes. On the iPhone 4, it uses the region monitoring API, which means it tells the OS the regions it is interested in, and then goes to sleep. Whenever the phone enters one of those regions, the OS will wake the app up, telling it that it entered that region. This uses no extra battery on my iPhone 4, that I could tell. On the 3GS, it uses the significant location change monitoring API. With this API, the app tells the OS it is interested in significant location changes (this is mostly when cell towers change), and then goes to sleep. When one of these events occurs, the OS wakes the app up, telling it that a significant location change has occurred. The app then gets the current location and sees if it is within one of your places. If it is, it switches to that place. This is not as accurate as on the iPhone 4, but it’s all the 3GS has. This would probably use up a bit more battery than on the iPhone 4, because it has to do more work, but I didn’t notice any significant battery degradation on my 3GS.
  • Also note that autoswitching of places is NOT supported on the iPhone 3G, because neither of the APIs I described above were available on the 3G. Everything else works on the 3G.

GV Places Is Now In the iTunes App Store


I am pleased to announce that my first iPhone app, called GV Places, is now available in the iTunes App Store. If you have an iPhone (preferably a 3GS or 4) and a Google Voice account, you might like it.

What it does is lets you create geographical areas that will enable or disable your Google Voice callback numbers, in various combinations. For example, I have three places that I use: Home, Office and Georgia. For the Home place, I have a region that fits snugly around my house, maybe .25 mile in each directory. For this place, I have my house line, my Skype-In number and my Google Talk IM enabled. My cell phone is disabled, because AT&T coverage here stinks.

For the Office place, I have a 2 mile-ish area around my office. Enabled numbers are my cell phone, my Skype-In and my Google Talk IM. My home number is disabled, naturally, because I don’t want calls ringing at home when I’m not there.

Finally, the Georgia place covers the entire state, plus some bits of the adjoining states. For this place, I have my cell phone enabled, and nothing else. This makes sense because I am most likely not at home, or my office, if this place is active.

Once you have defined your places, and associated phones with them, there are two ways to activate a place: manual and automatic. Manual mode means you go to the main Places screen and tap on the one you want to activate. Automatic mode only works on iPhone 3GS and 4, and uses the location awareness features of the phone to automatically switch places for you as you move around. When Automatic mode is enabled, even if GV Places is not running, iOS will notify it when you enter one of your places and it will then activate that place for you. Automatic mode works best on an iPhone 4, though if you are in a good coverage area, it works pretty well on a 3GS. (This is a hardware limitation of the 3GS.)

Here’s the Settings screen where you provide your Google Voice email address and password (which is stored in the Keychain for security purposes). If you have a Google Voice account that ends in @gmail.com, then you can leave the Hosted Apps account switch turned off. If you know that you have a hosted apps account, turn this on.

Next is the App Settings section, where you can tweak a few points of how the app works. By default, when you tap on a place to activate it, GV Places will prompt you to make sure that’s really what you want to do. If this annoys you, you can turn it off here.

Automatic place activation is controlled by the next option. This is disabled by default, but can easily be turn on here. Note that you must have an iPhone 3GS or iPhone 4 to use automatic place activation.

The final option here is only useful if automatic place activation is enabled. If “Notify on automatic activation” is turned on, then a notification will appear on your phone when GV Places automatically activates a place. If you don’t like this, you can easily turn it off.

Next is the Place Editor. This is where you define your places using the map. When you create a place, it starts out centered on your current location. You can use your fingers to drag the map around, and pinch to zoom, just like on the built-in Maps app. When you tap Save, the place will encompass everything that is shown on the map. Once you have the map how you’d like it, be sure to give the place a meaningful name. Finally, tap the button at the bottom of the screen. If you are just creating a place, it will say “Select Phones.” After that, it will indicate how many phones you have selected.

This is the screen where you select which of your phones you want associated with this place. Just tap the ones you want to place a checkmark next to it. Tap again to remove the checkmark. Those that are checked will be enabled for this place.

Finally, we come to the main Places screen. This shows each of the places you have defined, sorted by what I call their “snugness.” What this means is that the place that fits the most closely around your current location will be on top. The farther down the list you go, the less snug the place fits. Places that don’t encompass your current location at all will still show, but they will appear toward the end of the list, sorted by how close they are to your current location. Your currently-selected place will show in blue letters.

Snugness is neat because if you have overlapping regions, the region that fits most snugly will sort higher in the list. In my example, if I’m in my house, the Home place will sort higher than the Georgia place, because Home fits more snugly around my house than Georgia does.

Tap a row to activate that place. If you want to edit a place, tap the blue disclosure icon on the right-hand side of its row. To add a new place, tap the + icon at the bottom right. To get to the settings page, tap Settings.

I have a wiki setup for it, which current just has mostly this same information, at https://bitbucket.org/joeygibson/gvplaces/wiki/Home. If you buy it and find a bug, you can report it at https://bitbucket.org/joeygibson/gvplaces/issues.

If you’re just dying to own a copy of your very own, you can buy it for $1.99 in the app store.

First Rejection of My iPhone App :-(

I submitted my first iPhone app, called GV Places, to the Apple App Store on Monday, May 23. On Friday, May 27, around 9:00 in the morning, it entered the review process. About ten hours later I received the first rejection notice. The reason? I didn’t provide them a demo account to use for testing. I didn’t provide one, because of what my app does.

My app works with Google Voice, so you need a Google Voice account to use it. That’s not something I can just create willy-nilly and provide them for testing. Yes, I could create another account, but to really use it, you have to assign some phones to it, and to do that, Google Voice calls them to verify that they are yours. So I would need to use my own phone lines to set it up. I don’t think I should have to do that. I assumed that the tester would have his own Google Voice account to test with. Just like I would assume that if they test a Facebook app, they use their own Facebook accounts. I said as much in my response to them. I suppose we’ll see what they say.

It was sort of amusing that in the rejection email it said they weren’t able to test “all of the features” without a demo account. That’s funny because you can test any of the features without a Google Voice account.

Apple Doesn’t Seem To Want My Money

Yesterday, like six billion other people, I tried to pre-order a new iPhone 3GS from the Apple Store online. After trying multiple times getting multiple timeouts, I was finally given a message stating that they could not complete my request online, and that I needed to go to a brick-and-mortar Apple Store to complete it. This didn’t completely shock me since when I bought my first generation iPhone, I could not activate it through iTunes, and instead had to visit an AT&T store.

Shortly afterward, I received an email from concierge@apple.com, with this text

Thanks for starting your iPhone purchase online. To finish the process, come to the store you selected and look for a Concierge in an orange shirt. We’ll help you complete your purchase, activate your new iPhone, and set it up for you.

Apart from the fact that I didn’t select a store, this was in sync with what the online store told me. A pain to have to visit an actual store, to be sure, but it didn’t sound like it would be too painful.

So today, I drove to the mall and visited the Apple Store. As soon as I entered, I spied an orange-shirted “concierge” and approached her. “Hello,” I said, “I tried to preorder an iPhone 3GS yesterday online, but it said it couldn’t do it, and I needed to seek out an orange-shirted person at an Apple Store. Can you help me with this?” She looked pained as she responded, “I’m sorry… we don’t actually have a system in place to pre-0rder the 3GS.” She went on to say that they did have a pre-order system for when the 3G was launched, and she assumed they would move that system over for the 3GS, but they had nothing now, and I should come back on the 19th. She also said that “lots” of people had been coming in today, who had also been told to visit a store to complete their purchase.

That just sucks out loud.

I’m trying really, really hard to throw money at Apple and they just won’t take it. They clearly underestimated how many people would try to pre-order online yesterday, otherwise they would have had more server bandwidth to handle it. The fact that they sent me (and others) an email telling me to go to a store to finish the process, when they have no such process in place, is just sloppy. I’m not happy about this one little bit, and I want people to know about it.

Does this mean I’m not going to buy a 3GS and, instead, go with a Pre or something else? Of course not, and Apple knows this….

Dear Nintendo: A Wii Storage Solution, Please!

We have a Wii. We’ve had it pretty much since they hit the market. We love it, yes Wii do. Except for one thing: the unbelievably small amount of internal storage the thing has. It only has 512M of storage that is used for game save data. For people who don’t have a lot of games, that’s probably plenty. It was plenty for us, too, until we started buying lots of games and downloading games from the Shop Channel. I can’t tell you how many times we’ve wanted to download something new from the Shop Channel, only to be told we don’t have enough free space. Some of the games, especially the old console games, are tiny. Most take up only a single “block.” But some, like the episodes of Strong Bad’s Cool Game For Attractive People, and the save file for Super Smash Bros. Brawl, are huge. As in hundreds of blocks, huge.

So, what can we do? Well, there’s an SD slot on the front, and we have a 2G SD card in there. But that’s considered completely separate from the internal storage, and none of the games that we have can run with their data file on the SD card. On a few occasions we’ve moved things temporarily to the SD card to free up space on the internal storage, but if we ever want to play that game again, we have to shuffle files around again. Guitar Hero World Tour will, apparently, let you keep downloaded songs on an SD card, but the kicker is that you can only download them to the internal storage and then copy them. But when you already don’t have enough space on the internal storage, you’re still screwed. And last night when I fired up Rock Band 2 for the first time, it told me that it could store “extras” and such on the SD card, and was that OK? I said it was, and it then told me that I didn’t have enough free space to install the bits that would allow me to keep stuff on the SD card. Grrrrr.

There are two USB ports on the back of our Wii. I have an external drive that’s something like 150G that I’m not using for anything. It’s not even plugged in. If Nintendo would allow it, I could plug that into the Wii, and our storage problems would be solved. But they don’t allow that. Well, it’s not that they disallow it, it’s just that plugging the drive in won’t do anything. They have to patch the OS to make it look in other places for data files. And they can do that; they’ve just chosen to ignore the pleas of their users. Much the way Apple has turned a deaf ear to our demands for cut & paste on the iPhone, Nintendo has gone far too long without giving us a reasonable storage solution. My cynical friend is convinced that the solution will be to buy a new “Nintendo Wii Version 2, Now With More Internal Storage!” I sure hope he’s wrong.

Come on, Nintendo, give us a workable storage solution. Soon!