Monday, November 28, 2011

Turning an iPhone into an iPod touch - keep the original SIM!

The kids had used old iPhones as IPod touches without trouble, but apparently I'd never done a factory reset.

If you do that, the phone can't be used -- until it's activated.

You need a SIM card that was either originally used to activate the phone, or that works with a currently active phone:

Using an iPhone without a wireless service plan

Follow these steps to use your iPhone without a wireless service plan:

Insert the SIM card from your new, activated iPhone or one that was previously used to activate the original iPhone.

Connect the iPhone to iTunes on a computer connected to the Internet.Once iTunes activates the device, you're free to use the iPhone as if it were an iPod touch.

... It may be necessary to repeat this process after updating or restoring the device.

Yikes. If I'd known that then, when I got my 4S, I'd have asked to keep the old SIM card and had them give me a new SIM. Instead we just swapped the old SIM. (Not sure if AT&T will do this, it's an advantage of ordering you iPhone from Apple for home delivery.)

Lesson: When you upgrade your iPhone, keep the SIM card that was previously used to activate the device.

Update: On the brighter side, iOS 5 allows use of FaceTime and iMessage without a SIM card. You can't use them in airplane mode however.

Update 11/30/2011: iMessage behavior is flaky in a SIM-Less iPhone. More on that later. In a separate experiment on another phone I found a SIM card that had previously been used in a different iPhone worked to get pasts the iTunes check even though the number no longer existed and the SIM card was no longer valid.

Update 3/5/2012: iMessage was much better by mid-December and has worked well since.

Google's 2-step verification is (almost) the spawn of Satan - iPhone upgrade edition

Two months ago I decided Google's 2-step verification was an incomplete mess unsuitable for use by non-geeks.

Today I decided it's the spawn of Satan.

This is what happens if you refresh an iPhone running Authenticator - either a new phone or restore from backup

  1. Restore iPhone from backup
  2. Authenticator settings gone
  3. Per directions to account page for 2-step verification settings.
  4. Discover, despite 30 day authorization, my computer wants authenticator token today.
  5. Fortunately, I have my old phone. That works.
  6. Realize that there's no support for authenticating a new phone. Ok, I'll just turn off the iPhone ...
  7. Get the QR code. That works ... but
  8. All the friggin' application specific passwords are gone -- all revoked.

Do you know how friggin' long it takes to enter all those application specific passwords across multiple machines and operating systems?! Can I scream now?!

Friends don't let friends use 2-step verification.

Update: A few minutes later and, for now. I see my (not) application-specific passwords and they still seem to work. So only almost the spawn of Satan. Google needs a workflow to support migrating from one iPhone to another.

See also:

 

Good habit: review sites with access to google services

Through your Google Accounts page you can edit "connected sites" and "application-specific" passwords (they aren't btw).

I did this tonight. I was surprised at how long my list was. How did Facebook ever get access to my Google Contacts? They are diabolical.

I deleted most of  the items on the list. This is one practice I want to make a habit.

AT&T sells iPhone cables for $10 with 3 for 2


I've never come across an AT&T store bargain - until today.

Turns out AT&T sells their own iPhone/iPod/iPad charge/sync cable - for $10. As of today they also have a "buy two get one free promotion", so I bought 3 for $20.

Excluding obviously counterfeit $2-$3 cables (caveat emptor), I've not seen these cables on Amazon for less than $20. Griffin's powerblock/cable combo for $23 or so has been the best deal.

Since Apple's last two years of cables have been absolute garbage (separation at iPod end), my family needs some extra cables. Now we're flush.

ifttt, Google Reader Share, and Wordpress

ifttt has a WordPress channel, including a post action.

Google Reader's share RSS feed is still active, and can be exposed with the Keakon extension.

So using iftt could I blog to Wordpress by clicking the Keakon-Share link in Google Reader?

Be a fun experiment anyway.

Google Chrome sync does not work with 2-step verification

As best I can tell Google's two-factor ("2-step") verification is incompatible with Chrome sync. There are two ways it fails:

1. During initial authentication you are required to enter a full access password, the Authenticator token won't work. (Laughably, Google calls these 'application-specific' passwords. That's a lie. I wish they'd stop repeating it.) This defeats the value of the Authenticator's keystroke-logger protection.

2. You can't use your Google account authentication to encrypt your sync store. Maybe it uses the 'application specific password'. When I try this, Sync hangs - but tells me it has succeeded. Using a separate sync password works.

There are lots of similar bugs with use of two-factor. It's really not finished; I wonder if it's one of the projects that Page has terminated. I still use it, but I don't recommend it to anyone else. The illusion of security may be worse than no security.

Saturday, November 26, 2011

Microblogging and Google Reader: Tumblr Fails

I got pretty far along on the Tumblralternative to Reader Shares. I even created a kateva.org subdomain with a Tumblr IP A Record to give my Tumblr blog a kateva.org URL.

I tested with Google Reader Mobile and desktop, but the workflow for micro-sharing was too awkward. That looked promising, but all the posts were going to my original Tumblr blog, not the full powered one I'd setup for sharing.

What was up with that?

That's when I discovered the weird world of Tumblr primary blogs ...

Help Center | Tumblr

... What is my “primary” blog? Your primary blog is the one created when you sign up for Tumblr. It represents you (with its name, link, and avatar) when you follow or like other Tumblr blogs. You can read about blog management to understand the differences between your primary blog and additional blogs. Can I switch my primary blog? It’s not currently possible to switch or move your primary blog to another account. You can read about blog management to understand the differences between your primary blog and additional blogs....

Cue the ominous music. I could see where this was going ...

Blog Management | Tumblr

Each Tumblr account comes with a primary blog. A primary blog can fully use all of Tumblr’s social features including Follow, Like, Reply, Ask, and Submit. But, a primary blog cannot be password-protected and cannot be multi-user.You can also create additional blogs on your Tumblr account. An additional blog can be password protected for privacy and security and can be multi-user. But, an additional blog cannot fully use all of the Tumblr’s social features...

The primary blog that is made when you create your Tumblr account will always be the primary blog for the account. It is not possible to reassign which blog on your account is the primary blog. And, due the way in which Tumblr is architected, it is unlikely that we will be able to support reassignment of the primary blog in the foreseeable future. It is also unlikely that we will be able to support password protection on primary blogs....

Yes, it's all about that d*mn closed-world money-making social stuff.

The primary blog is the one that receives my shared items from Feedly. It won't do for what I want.

So now, like Posterous, Tumblr has failed.

Only Twitter and, perhaps, WordPress microblogging, remain.

Oh, and, of course, HiveMined.

No. Please. Not ... not ... Blogger!

See also:

Friday, November 25, 2011

Aperture 3.2.1 recurrent crash - EXC_BAD_ACCESS (SIGBUS)

This ends well - because I have backups. Other than the necessity of backups, the main lessons of this post are;

  1. Aperture 3.2.1 Libraries can become corrupted.
  2. Aperture 3.2.1 has some wicked bugs.
  3. A few debugging tips.
  4. It is unwise to edit in Aperture until all import processing is completed.
  5. How to manage when disaster strikes

This morning I did a routine import of 30 or so CR2 images from my Canon T2i using Aperture Import. Import completed normally. As images were post-processed I worked on some red-eye editing. I mis-clicked somewhere, and the spinning pizza of death appeared. About a minute later Aperture crashed, leaving this crash log ...

Process:         Aperture [75650]
Path:            /Applications/Aperture.app/Contents/MacOS/Aperture
Identifier:      com.apple.ApertureVersion:         3.2.1 (3.2.1)
Build Info:      Aperture-201094000000000~2
Code Type:       X86-64 (Native)
Parent Process:  launchd [41554]
Date/Time:       2011-11-25 09:15:19.689 -0600
OS Version:      Mac OS X 10.6.8 (10K549)
Report Version:  6
Exception Type:  EXC_BAD_ACCESS (SIGBUS)
Exception Codes: 0x000000000000000a, 0x0000000138d4d000
Crashed Thread:  23

I tried five more times. Each time Aperture opened normally, and about 30 seconds later, presumably as it resumed image processing, it crashed with the same error.

I knew I had backups, so I didn't have to panic. In fact, I have three backups:

  • Encrypted image with Carbon Copy Cloner to local drive nightly. This is a drive clone of course, but CCC also saves changed and deleted files in a 'just-in-case' folder. So it's a Clone+.
  • Encrypted image with Carbon Copy Cloner in my office that's 3 weeks old (offsite).
  • Time Capsule backup to a 2TB drive upstairs.

It was easy to demonstrate that the problem was in the Library. I option-launched Aperture and created a new Library. It was fine. I also removed my Aperture Preference files and Aperture still crashed on Library launch.

As an experiment I used EasyFind to locate the images I'd imported. I'd renamed them on import ("_Thanksgiving_") so it was "easy to find" them using EasyFind's package search option. I moved them out of the Aperture Library. This time it launched normally.

Whatever was wrong with Aperture, it was something related to processing the images I'd imported that morning -- or a problem with the images themselves.

I then used ImageCapture [1] to bring in the suspect images from my SD card. There were no problems. I added these to an empty Aperture Library. No problems.

By then my 45GB restore had completed so I put the images into the restored Aperture Library. No problems. Just to finish the cycle off, I again performed the red eye correction associated with the big crash. No problems.

One experiment I didn't do was use Aperture First Aid to repair or rebuild the Aperture database. Speaking of that kb article, I suspect this paragraph is relevant to my problem ...

...If Aperture does not open, it may help to defer creation of previews. Press the Shift key immediately after you start Aperture to prevent preview generation for that session. If a damaged image in your library is preventing normal opening, this may allow you to start Aperture...

i don't think the original images in my Library were damaged, but I do think something went wrong with Aperture's preview creation. Actually, I have a hunch that the problem is related to Aperture's face processing -- the EasyFInd recovery process I experimented with returned a number of face "thumbnails' -- but only a number. As though face thumbnail processing was not completed.

I hope the fixes I've outlined here will help others. The bottom line - be sure you have a full backup of your Aperture Library. I prefer two fully automated backup methods that have almost nothing in common. Backups are too unreliable to trust a single backup method.

[1] This app has its own really annoying bug. When used it stores the path it last saved images to. If you change drives it keeps asking for the old drive -- and tries to mount it. Dumb. Easy to delete preferences to fix.

Update: Terence Devlin - an Apple guru, also suspects the Faces process.

Update 12/20/2011: I suspect it was due to bit rot (bad sectors) on my drive.

Thursday, November 24, 2011

WordPress.com - Blogger Import

I'm continuing to examine exit strategies from Google 2.0 as I prepare to delete my TrueName G+ Profile [1].

Other than Gmail and Google Apps, my strongest Google Connection post Reader Social is Blogger. It hosts this post, for example.

I've considered Posterous and Tumblr, but both have fallen short. I think I'm going to have to learn the WordPress world, starting with hosted at WordPress.com and migrating to self-hosted.

I suspect that will take a while, but I'm starting to experiment, starting with an experimental import of tech.kateva. org to WordPress.com. It's not a complete import, draft posts are not included. For example, import dialog shows 3738 Gordon's Tech posts, but that omits 467 draft posts. For Gordon's Notes it shows 5754, so 1277 draft posts are omitted.

Wordpress also supports import of a Blogger Atom export file. I don't know if that will include Drafts, but I may experiment with it.

I can live without the draft posts, especially since I'll still have access to those drafts post-migration. I can plumb those that look interesting and abandon the others.

I don't expect any quick changes. In any case I own the domain kateva.org, so the changeover ought to be relatively invisible to my visitors (though I bet feeds will need to be revised).

If you'd like to inspect the results of the import, here's Gordon's Tech at WordPress.com - http://gordonstech.wordpress.com/. It's pubic but not-indexed with a temporary URL. The import went more smoothly than I'd expected, but it uncovered two surprises, both of which make me keen to move sooner than later ...

  • The "New" Blogger has no UI control to move to the earliest post. The "Old" Blogger UI has this.
  • Old Blogger doesn't show my 2003 Blog posts, it starts with 2004. WordPress imported them.

[1] I'll keep my John Gordon profile -- until Google deletes it as a TrueName violation.

Tuesday, November 22, 2011

Google's Omnibox and implementing Google search alternatives

Since I'm distancing myself from Google 2.0, I was receptive to Phil Bradley's alternative engine advice. I'm testing blekko (spam free) and Duck Duck Go (no tracking). I believe both are wrappers that enhance Google search.

Naturally, this experimentation works best with Chrome's Omnibox. It's very easy to add search engines; Chrome 'detects' an engine during a search site visit and adds them to it's collection. You can make any a default, and define a text shortcut. Type the shortcut in the Omnibox, hit spacebar, and your custom search is ready.

I made Blekko my default, and assigned it the letter 'b'. Google gets 'g', etc.

While I was at it, I defined a search string for one a Google custom search engine that searches my own content (web pages, blog posts): <http://www.google.com/cse?cx=009911250981951822495%3Aphjhjp-tdfa&ie=UTF-8&q=%s>. I already had one for searching my dev team's Rally project.

I can distrust Google and still appreciate Chrome ... right?

Update 11/24/2011: I ran a search on moving from blogger to wordpress on both Blekko and Google. Blekko wasn't just a bit better. It was immensely better.

    Monday, November 21, 2011

    Porting a mobile number to Google Voice

    We had two kids on our AT&T family plan when AT&T hit us with their smartphone tax. The cost of each kid phone went from @$16/month to $32/month (estimated real costs) and that includes a data plan we don't want.

    I think we know why AT&T is making these desperate price hikes, but we're not playing along. After reviewing several options we expect to save about $600 over the next two years with these 3 steps [1]:

    1. Cancel the phone account for our youngest. Turns out he's not interested in either phoning or texting. He'd prefer we put a fraction of his phone bill into games and movies. In retrospect he could have waited another year. So we've canceled his account -- with a twist. We're porting his AT&T number to Google Voice.
    2. Replace our $30/month family texting plan with a combination of Google Voice, WhatsApp and Facebook Messenger (yeah, it's still messy).
    3. Canceled a now useless SmartLimits account.
    4. Use DataMan Pro to help keep my son under his 200MB/month data limits. We disable Safari and YouTube on his phone, so iTunes is the main data drain. So far he's doing well.

    When we canceled #2's phone I decided to salvage the phone number. It's a memorable local number and when I recently added a GV line to my business number there were no local numbers available. I ended up choosing an area code from my former home town - Escanaba Michigan. Since I was going to cancel his phone with a memorable local number, I decided to make it mine.

    I followed Google's minimalist number porting directions. Unfortunately you can only do this with a mobile number [2] - at least for now. Here's how it went:

    1. In Voice Settings:Phones I clicked the Change/Port link.
    2. Checked lots of warning checkboxes.
    3. I tried following the phone confirmation directions on the old Nokia that currently holds my son's SIM card. (We pulled it from his iPhone when we got hit with the rate increase.) It didn't work -- Google couldn't recognize the touch tones!
    4. I put his SIM into his 3GS -- Google recognized those tones.
    5. I filled out my AT&T account information.
    6. I paid $20 into a new Google Wallet account (on my work account)

    In theory the transfer will be done in 2-3 days and my old GV business number will work for about 2 months before dying.

    In theory my son's AT&T number will disappear and that account will close. I'll check in 2-3 days. Of course since this is a family account things will probably be messier. He's not under any contract (no subsidized phone, he "brought his own phone"), but we'll see what happens. I'll update this post.

    john

    [1] Since we're paying for a data plan (200MB/month). [2] It's convoluted, but I assume you can move a landline number to a mobile number, then from there to Google Voice. I'm thinking about that ...
    [2] Presumably we could move it to a family mobile account, then from there to Google Voice. Bit expensive and a hassle.

    See also:

    Update 11/22/2011: The next day my AT&T account showed #2 was gone. I tested the number and it called Google Voice. I called AT&T and was told the account had been cancelled. Since AT&T bills monthly service in advance (who new?) I've already paid for the billing cycle that ends in 6 days. There's no rebate on that $12 fee. Any expenses incurred this month (overage fees, long distance) will show up on next month's bill. So this went smoothly.

    Sunday, November 20, 2011

    Google Apps and Google Account integration problems

    Over the past year Google has been consolidating previously separate Google Apps and Google/Gmail accounts.

    For example, consider kateva.org. At one time if I wanted the Google Apps users jgordon@kateva.org to have Reader access, I had to create a Google/Gmail account with the username jgordon@kateva.org. They were separate services. After the merger they are supposed to be unified. The merge process was, unsurprisingly, rocky. Some things could transfer, some not. Relics of the discarded identity may remain in an orphaned Google/Gmail account with a peculiar URL.

    It's still not working. Emily, for example, has problems authenticating with some Google services. Relics of her old identity produce odd error messages, especially with Google Reader. Some third party apps, don't work at all. Reeder.app for example. Seems she's not alone ...

    Reeder

    ... Having issues signing in with your Google Apps account? Some users reported that changing the password did the trick. If this does not help, enabling 2-step verification and creating an application specific password should get Reeder working again. Please see this help article (Getting started with 2-step verification) for more information...

    I wonder if current problems are tied to Google's troubled and incomplete migration to two factor authentication.

    We'll try Reeder's fixes, though two factor is not something I want to inflict on Emily. I fear James Fallows and Ezra Klein greatly overstate the usability of Google's work.

    Beyond this immediate glitch, these problems reinforce my sense of where Google 2.0 is going. The train has changed direction, and I need to get off. Unfortunately, Google 1.0 crushed the competition, so there's nothing to get off too. It's a 100 mile walk through the Sahara to the next watering hole. It will take years for niche vendors to move into the spaces Google has opened up.

    Update:  What I did to try to clear up the Google Apps vs. Google authentication issues.

    First I found the email notification services associated with the account merger we performed in July 2011.

    After the merge/migration of last July her old account data was associated with a modification of her old Google/Gmail username.  The domain is gtempaccount.com, the username is the old email address with % replacing @:

    emily%kateva.org@gtempaccount.com (not her real domain).

    I entered her old password was taken to a set of dialogs similar to those I saw in July. The dialogs told me data was successfully migrated. There were bugs of course; Google is supposed to be able to show data associated with her current accounts and that failed. Nonetheless I felt reasonably sure what we cared about had been migrated. So I found the tiny "delete account" link, walked through the warnings process, and deleted the remnants of  her old independent Google/Gmail account.

    Then, a few minutes later, I tried logging into Reeder. It worked.

    I never changed her Google password and I didn't try two step verification. All I did was delete the remnants of her old account.

    I think this Google bug shows up after account mergers between Google Apps and Google/Gmail when the same password was used for both.

    Thursday, November 17, 2011

    Navigon and the dark side of the iOS marketplace

    One of the downsides to the iOS App Store model is that vendors can change the rules -- and it's very hard to avoid an update.

    NAVIGON used to bundle maps withe the purchase price. At $50 it was a good price, and even though there was no commitment to map updates they were updated. Yes, it was a 1.8 GB download -- but that was a rare event.

    The price is even better than it appeared, because if a family shared an iTunes account the $50 covered all family iOS devices.

    Now Navigon has moved to the in-app purchase model. The default "update" is "free" and only 48MB, but the maps are in-app purchases and they are not free. Old maps are removed during the "update" (and so are "favorites", which is not nice). I am not certain, but I suspect in-app purchases are tied to a phone and iTunes account, not to an iTunes account alone. So each user in a family will buy their own maps. (I seem to be the only one whose noticed this.)

    This may not be a terrible deal for new users, but old users are moving Navigon to a 1 star rating.

    Unfortunately there's no way to prevent app updates and no way to keep an old version of an app. iTunes will nag forever. So I made a copy of Navigon 1.8.2.ipa and put it in a safe place. That way when it's "updated" I can delete the update and restore the original.

    PS. What should Navigon had done? Forget the evil "update" trick. Create and sell Navigon "Pro" as a separate app and stop updating Navigon 1.

    See also:

    Update 11/19/11: I tried a few experiments

    • I "locked" NAVIGON 1.8.2.ipa in the Finder then tried updating. Alas iTunes ignored the Finder lock, it just deleted 1.8.2 and kept v2.
    • I dragged 1.8.2 into the iTunes app window and iTunes let me replace v2. It, however, put v2 back on my free update list.
    • I changed permissions on 1.8.2 so I had read-only permissions. Then I tried the Update again. This time iTunes installed v2 and showed it in the app list. However the 1.8.2 file was still in Mobile Applications. I quit iTunes, deleted 2.0 (must put in trash and empty trash) and restarted. iTunes still listed 2.0, but when I tried it I was asked to locate the missing file. I pointed it to 1.8.2. The available update appeared again.

    So it looks like while I can't truly fool iTunes, by changing permission I can protect 1.8.2 from deletion. If I accidentally update to 2.0 I can revert.

    Wednesday, November 16, 2011

    Another iCloud sync issue - Google Calendar side effects ...

    Three lessons from this recent Google/iCal/iCloud synchronization problem

    Google Calendar Known Issues - Google Calendar Help

    ... Setting up iCloud sync caused events to be unexpectedly wiped from Google Calendar for some of our users who were syncing information between iCal and Google Calendar. This unwanted deletion took place between 10/11 and 10/14. We have since restored deleted events and invitees. Please note we’re only able to restore invitees who are Google Calendar users; guests who are non-Google Calendar users (i.e. Outlook users, Yahoo! users) could not be recovered and will need to be re-invited manually. In response to the above issue, we have stopped deleting events if the delete request comes from iCal. Until further notice, deleting any event in iCal on Mac OS will not remove this event from Google Calendar, but all other requests like creating events or changing existing events will be synced properly...

    Synchronization is H... Ok. You knew that.

    iCloud has bugs. Ok, you knew that.

    Google 2.0 doesn't give a s*. That's different.

    Monday, November 14, 2011

    My reader shares are back for now - thanks to Keakon.

    My Google Reader shared items are back. My memory is transiently restored ...

    How To Restore Sharing Options And Old List Spacing In Google Reader

    Reader Sharer is a simple Chrome add-on that restores the sharing functionality to Google Reader..

    It's in the Chrome extension store...

    Implemented features:
    1. The "Your shared items".
    2. The "People you follow" view.
    3. The "Notes" view.
    4. The "Your liked items" view.
    5. Share/unshare an item (keyboard shortcut: Shift + F).
    6. Share/delete an item with note (keyboard shortcut: Shift + D).
    7. Like/unlike an item (keyboard shortcuts: L).
    8. Display whether an item has been shared/liked or not.
    9. Support both list view and expanded view.
    10. Recover some old style for improving readability.
    
    Features unavailable yet:
    None?
    
    Can't implement features:
    1. Add/delete/display comments for an item. It seems the comment API is not available now.
    
    Source code:
    https://bitbucket.org/keakon/reader-sharer/

    Currently has 6,400 users. That's far higher than I'd expected.

    Source code on Atlassian bitbucket. I think a Firefox version is pending.

    The author is "keakon". His blog is Chinese, Google tried to translate it for me but froze. I don't think Google translate likes Blogger's new dynamic pages.

    Now if I could figure out a way to save this microblogging archive ...