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.

Google Chrome Sync Not Working? Try This

I use Google Chrome exclusively as my browser on both Mac and Windows, and I pretty much love everything about it. One of the things I love most about it is the ability to sync most of your settings between machines. This includes bookmarks, apps, themes, passwords, etc.

But the last three times I’ve done an install of Chrome on a machine (my friend’s loaned MacBook, my new MacBook Pro, and a Windows7 VM), when I entered my email address and password, I was told by Chrome that syncing was not available on my Google Apps account. Hmmmmm….

I don’t have an @gmail.com Google account, I have my own domain and a Google Apps account. While Google is trying to make Apps accounts and regular Gmail account identical, there are still some differences (like no profiles…). This can be frustrating, and I assumed that somehow my existing machines had been grandfathered in, but new ones were being excluded. (Also, both the Google Voice and GV Mobile+ apps on my iPhone failed to let me login, complaining about my email address or password being wrong.)

Then yesterday I noticed a comment on a forum (somewhere) suggesting a password mismatch between Google services might be to blame. I decided to give it a shot, so I went into my Google account settings and changed my password. Then I tried to enable sync on my MacBook Pro. BLAMMO! It worked. Then I enabled it on the Windows7 VM. Worked there, too. Then I tried to login using both the Google Voice and GV Mobile+ apps on my iPhone and both now allow me to login.

So, if you are having problems with a Google service or app, such as being told it’s not enabled for your apps account, or getting login failures, try changing your password.

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.

Bogus Search Results From Sys-Con

Updated! Be sure to scroll down for the latest!

I’m writing a blog post dealing with Scala’s XML literal syntax and how to use it for object de/serialization and so I wanted to get a list of existing Java XML de/serialization libraries. I went to Google and searched for “java xml serialization” and here’s the first result that I got

googleres

Notice the date, which is April 23, 2009. That is, ostensibly, the publication date of the article, right? Now check what happens when you click the link and go to read the article

syscon

Again, notice the date. It’s six years ago! So, where did Google get the 2009 date? That’s the date of the latest comment on the article. I’m not sure how they are getting Google to display the latest comment date in such a way that it looks like the publication date, but it looks like they are. I can’t imagine that Google just picked that date from the article when it spidered the site. Am I reading too much into this, or is Sys-Con gaming Google for better placement?

09/24/2009 4:26PM Update: Just for grins, I did my Google search for “java xml serialization” again. The Sys-Con article is still the top hit, but notice what’s missing from the search result

google2

Notice, that there is no longer a date showing. Very interesting.

My Google Apps Migration Is Complete

I mentioned [cref i-just-switched-to-google-apps-for-my-domain the other day] that I’d switched over to Google Apps, and had initiated a POP3 transfer of all my mail from my previous Gmail account to the new one. I’m happy to report that it finally finished. I started it POPing on Tuesday evening, 09/16/2008, and it finished some time this morning. It was pulling mail every twenty minutes or so for ten days. In case you’re interested, it pulled just under 30,000 emails over, which was just under 1 GB in size.

As I said the other day, I’d be happy to pay Google for a quick and easy migration tool. But, at least it finally finished.

I Just Switched To Google Apps For My Domain

I’ve been using Gmail for a few years now, just having it send mail as joey@joeygibson.com, and not using the actual @gmail.com address at all. Or so I thought. Most email clients displayed email from me the way I wanted, but Outlook showed it like this

From: joey2048@gmail.com (on behalf of joey@joeygibson.com)

I knew about this back in 2006, but I thought it had been “fixed.” I put the word fixed in quotes, because spoofing headers isn’t really a correct thing to do. The thing was that most email clients showed the spoofed address, but Outlook showed the “correct” one. Anyway, it bugged me, knowing that people might be seeing my Gmail address instead of my proper address.

Enter Google Apps. I had heard about this before, but never really investigated it. I looked into it last week, and switched over on Tuesday. It’s free, and it means my Outlook problem is solved. For those who don’t know about Google Apps, you change your MX records on your DNS server to set a Google machine as your mail server. After making this change Gmail no longer need to spoof your domain in outgoing emails, since they effectively are your domain. (Don’t worry; they don’t become your web host, just your mail server.) I changed my MX records Tuesday night and then began migrating email from my old Gmail account to my new one.

Migration is one area where the experience is not so great, and I’d actually be willing to pay a bit for a better way to migrate. You’d think that migrating from one Gmail account to another would be a painless, quick and easy affair. And you would be wrong. The only way to get your mail moved is to have the new account make enough POP3 calls against your old account, pulling 200 messages at a time. I started POPing last Tuesday night (09/16/2008) and as of this moment, it’s still running. Granted, I had over 29,000 emails, which was about 900 MB of space, but still! Google ought to be able to come up with a better way to do this. Oh well, it will finish one of these days.

One thing I’d like to point out is that you need to add one more record to your DNS in order to make your Google mail SPF-compliant. I discovered this when I sent a test email from my new Gmail account to my work account. We have an Exchange server at work, and while the email did come through, the subject line had [spf] appended to it. After some checking, I saw in the headers that our mail gateway had marked it as failing an SPF check. I did some googling and found this article that explains how to set things up specifically for GoDaddy, but the general concepts should work for wherever your DNS lives. I setup the new TXT record, ran the test recommended in the article and things are good now. I just sent a test email to my work account, and the gateway must now be happy since there was no [spf] appended to the subject. There might have been a recommendation on the Google Apps setup screens about the SPF stuff, but I don’t remember seeing it.

Anyway, so far I’m happy with my choice to move to Google Apps. Besides the migration issue, the only other complaint I have is that I can’t use my @joeygibson.com id with Google Reader. I still have to use a “real” Gmail account for that. That’s essentially a minor annoyance, but it would still be nice to just jettison the old @gmail.com account altogether.

Chrome Is Cool, But No Mac Version Yet

Yesterday, the internets were all a-flutter about Chrome, Google’s new surprise web browser. Sure, I downloaded it, like everyone else, and I was impressed by its rendering speed. I used it for a few hours without any problems at all. It works with every site I tried it with, and speedily. I’m especially juiced about the JavaScript JIT engine called V8, and the fact that each tab is its own process, separate from other tabs.

But here’s the rub: for now, it’s Windows-only. How can this be? It’s built on top of WebKit, which is Apple’s updated version of KHTML, and both run on OSX and Linux. So what gives, Google? I know they say that there will be OSX and Linux versions “soon,” but how long is that?

I found directions for building Chromium, which says on its homepage, “Google Chrome is built with open source code from Chromium.” So I downloaded all the source code and tried to build it. Here’s 2,000 words about how it went

I guess I’ll just have to wait for the official OSX release.