Saturday, July 28, 2012

Technology defeats the do not call list

I've been getting repeated calls from 459-121-8344. There are web reports on this number, it's supposedly a telemarketer scam.

AT&T will block this number -- for about $6 a month. I tried reporting it as a violation of the do-not-call registry but of course 459 isn't a real area code (it's spoofed). So it can't be reported.

Google Voice will block these numbers.

I suppose if the problem continues I'll have to port my mobile number to GV.

Update 7/31/2012:

I got several more calls, and I tried AT&T support (611). The representative estimates AT&T is getting about 20,000 complaints a week. So the pressure is building for them to provide a free version of the $5/month 'smart limits' call blocking service. He recommended one of those paper things with stamps on them sent to:

AT&T Customer Service
PO Box 246
Artesia, CA 90702

Be polite, do mention that you're on the do-not-call list (even though cell phones shouldn't need to be added, add your number anyway), and request that AT&T provide free call blocking similar to the smart limits service.

In the meantime I added 459-121-8344 to my Contacts list so I could give it a custom ringtone. Later I'll make a ringtone that's a simple soft beep so I don't even hear it.

Friday, July 27, 2012

An AppleScript to prevent the iCloud CRLF bug - normalize line endings

Yesterday I wrote perhaps the fifth AppleScript of my life, and I purged an iCloud paralyzing cloud of "Groups" created as a side-effect of iCloud's CRLF bug.

In the course of writing that brief AppleScript, I benefited from the extraordinary community built known as MacScripter. As I basked in my small victory against the uncaring forces of Appledom, I thought once again of fixing my Address Book's mixed CRLF/LF line terminations with AppleScript. I joined MacScripter and asked for advice.

In response,  Nigel Garvey wrote me a script. I suppose for him it was easier to write the solution than to try to explain it!

I ran it on my Snow Leopard primary address book (of course I made an archive backup). After a few seconds it returned "missing value". I've seen that when scripts complete, though it doesn't seem to be an ideal response.

In any case, I didn't see any evidence of windows style CRLF line terminators. When I exported test addresses as vCard they didn't show unexpected numbers of \n characters; though I continue to have some extra line feeds at the end of notes (but they seem to have LF terminations, not CRLF).

I took an exported archive and imported it into my Mountain Lion machine, then sent it to iCloud. I then viewed on my Lion machine. On all devices I see 1824 contacts and no duplicated notes. The only problem I came across were the extra LF at the end of notes, but they did not appear to be replicating. I think they are benign LF life feeds, not dangerous CRLF pairs.

I believe Mr Garvey's script worked. If you are one of the very few people who ever used MobilMe to sync Windows/Outlook and OS X/Address Book you should back up your Address Book, run this AppleScript, then confirm. Then consider migrating to the Cloud.

Thursday, July 26, 2012

iCloud group replication resolved by AppleScript

It's been a month since my disastrous MobileMe to iCloud migration. Over the course of a week I figured out a convoluted solution for iCloud's CRLF/LF end of line bug, but I was left with "metastatic group replication" in my primary iCloud account/quaternary AppleId [1]. Each of about five Address Book groups had been replicated about 50-100 times (only one of the replicants has associated contacts).
 
The Groups were in iCloud - not Address Book. So even deleting my Address Book Library files didn't remove them. Bento couldn't see them. Mountain Lion didn't help. The only option appeared to be tedious manual deletion. My iCloud account was poisoned.
 
Today I figured out a solution. I had to learn a bit of AppleScript [2] but I'll recover. It was worth it (in ML Address Book has been renamed Contacts):
tell application "Contacts"
repeat 50 times
set theGroup to group "MyGroupName"
delete theGroup
end repeat
save
end tell

It's a crude hack. I had to change "MyGroupName" five times, and when the replicant count dropped I had to reduce the repeat number so it would execute. (One could drop the count  parameter and see if the repeat loop stops when it errors with "missing value"; that would be much faster. I was being cautious.)

At one point Contacts didn't respond very well. I quit and restarted and completed the process.

When I was done I confirmed iCloud's web view was also Group free. Then I purged all the Contacts in that account [3], it's now pristine.

I'm sure an AppleScripter could turn this into a general script for removing all groups all at once. Or could get very clever, and only remove groups that had no contacts (so one could salvage the group/contact relationships).

I didn't need that. My problem has been fixed.

Incidentally, I think iCloud sync works a lot better in ML than Lion. iCloud updated very quickly. 

[1] I have 4 AppleIDs. Two or three of them have iCloud accounts. One has all of my iTunes and AppStore purchases. One was my MobileMe account. A third, which I've never used, acquired, apparently by email transfer, all of my Apple device records. Does Apple have any idea how screwed up their AppleID/iCloud accounts are?

[2] Of which Jamie Zawinski wrote: "I used to think that PHP was the biggest, stinkiest dump that the computer industry had taken on my life in a decade. Then I started needing to do things that could only be accomplished in AppleScript."

[3] They're safe in Snow Leopard until I move my primary machine to Mountain -- which might be sooner than expected. ML seems to be everything Lion should have been.

Wednesday, July 25, 2012

Mountain Lion - my experience

I've never installed an OS on its debut. I generally wait 5-6 months for the .4 release.

This time was different. I really don't like Lion (Apple removed it rather quickly from the App Store, didn't they?). I also have a MacBook Air that I really don't rely on -- so I could sacrifice it.

Notes so far ...

  • I backed up the installer prior to installation. (I did the same thing for Lion. Glad I did since it's now gone from the App Store. I'll have it if someone needs it.)
  • In addition to the 4+GB installer there were GB or so of iWork and iLife and firmware updates to apply.
  • The Guest account was reenabled. I removed it.
  • I was able to add a keyboard shortcut of cmd-opt-S for Save As... (instead of cmd-opt-shift-S). It's good to have Save As back. I also changed Settings:General so I'm asked if I want to save changes on exit (I may change it back to default).
  • Unsurprisingly, my broken iCloud Contacts database (hundreds of replicated groups) is still broken. Contacts sucks less than it did though.
  • It doesn't feel any faster or slower than Lion.
  • I'd read Notational Velocity didn't work. Works fine for me. I run as a non-admin user fwiw. Sync to SimpleNote worked to. That's a relief.
  • There's supposed to be a LaunchBar bug with Contacts, but mine was fine. I have iCloud disabled so maybe that helps.
  • My Time Capsule backup was gone after the upgrade. Good thing I wasn't relying on it. When I ran TM it showed no backups. I used the option-click trick to get TM to validate my backup and now the backups are all accessible through Time Capsule. I think this may be related to the 7.6.1 firmware bug with older Time Capsules.
  • I enabled voice dictation; that's not automatic. (Lately it's working on my iPhone, but I doubt it works as well on the desktop. Unrelated to this, but Siri is actually working again.)
  • None of my apps were moved into an 'incompatible application folder'. This machine has always run Lion, so that's not surprising.
  • Chrome seems fine, I'd heard it had problems. Maybe Google fixed 'em. I had to make it my default browser again.
  • There are new Parental Controls for the Game Center. I didn't see any other changes there.
  • I think I'll like Messages. It does remind me though that I'm going to have to come up with some way to fix my broken iCloud account. I don't think Apple will be much help.
  • What's with Video Chat being in both Messages and FaceTime? Isn't that a bit odd?
  • I like the unification of App Store and system updates.
  • For kicks I tried using Google's m.google.com ActiveSync service as an Exchange Account. Didn't work - couldn't contact server.

Overall it feels like a less broken version of Lion. Maybe I'll upgrade my main machine in September rather than February.

Tuesday, July 24, 2012

My Apple purchase records jumped from true AppleID to one I've never used. This is what I think happened.

I made a rare "Genius" consultation today. The visit confirmed that there's no "safe" Apple-approved way to fix broken glass on an AT&T carrier-unlocked iPhone [1].

That was bad, but along the way we tried checking the devices associated with my Apple ID. That would include several iPhones, iMac i5 27", MacBook Air, iPad, iPods, etc, etc.

Except there were NO devices associated with my Apple ID. All of my registration information was gone. Vanished.

Fortunately the 400+ iTunes purchases associated with that Apple ID appear to be intact [3]. So what happened?

I contacted Apple support who, of course, had no idea what had happened. (I'm sure they thought I was merely senile, but the rep was very polite.) However Apple support's reverse number lookup on the phone I was using brought another of my unwanted four Apple IDs. That AppleID had "lots and lots of purchases".

Except I've never used that Apple ID when doing any kind of purchase or authorization. I always use the (.mac) Apple ID associated with my iTunes account. In fact, I only discovered that AppleID existed about 2 months ago!

So I checked what devices were associated with each of my Apple IDs. I went to Contact Apple Support and chose the Your Products option. This is what I found:

  • AppleID (used for all iTunes purchases and for all product registrations and authorizations): 0 items.
  • AppleID associated with an old developer account: 18 products going back to 2002 or so.
  • AppleID associated with an abandoned MobileMe account: 0 items
  • AppleID associated with a now broken iCloud account (formerly working MobileMe account): 0 items

So everything was now under a single AppleID, but it was an oddball AppleID that I've never used anywhere. How the heck did that happen? Why choose that AppleID rather than a complete strangers?

I don't know of course, but the most likely explanation is that the Apple's IT systems are kludged together.

I'm guessing that Apple had one IT systems that was used by iTunes and that an older system used for product registration. At some point in the past the "product registration system's" true "Key" was either a phone number or (more likely) an email address. Recently Apple lashed together the two systems, perhaps attempting to "join" on the email address.

That's where my May 2012 MobileMe/AppleID bug came in

... I've figured out the bug. It arose as a side-effect of changes to the way Apple IDs work, and it only impacts people who are still on MobileMe accounts and who have the same email address associated with two Apple accounts prior to the time Apple made that illegal...

I won't repeat the details of the bug here, but the workaround was to remove an authenticated email address from my primary AppleID and associate it with ... yes... that oddball developer account AppleID. 

I bet, in database terms, that email address was the "Foreign Key" that linked my iTunes controlled AppleID with my Mac purchase records. Moving the email address from one AppleID to another causes the database query to associate purchases with the AppleID I'd moved it to [2]. 

I could try moving the email BACK to my primary AppleID, but I'm afraid I'd lose my purchase associations altogether.

[1] Apple's only approved fix is a refurb substitution. Unfortunately, Apple will replace an AT&T-unlocked iPhone with a locked iPhone, the Apple product database doesn't correctly track AT&T changes to a phone's lock status. After replacement the IMEI does not match AT&T records, so the new phone cannot be unlocked.
[2] Reading my blog post from May I even noticed the problem then, but I was too tired to f/u on it: "Apple's Support Profile is supposed to show the products associated with my Apple ID. I think it used to. I don't see them any more. It says my home number is associated with a different Apple ID..." So maybe my home number was also associated with the moved email.
[3] Apple's iTunes group manages AppleIDs, not the Mac group. 

Sunday, July 22, 2012

Mobile broadband hope: Walmart, TruConnect, Netzero, Sprint, Amazon and why I'm waiting on my next iPhone

I recently reviewed the state of American mobile broadband, including mifi, tethering and iPad hotspots. Bottom  line - the Verizon/AT&T duopoly means the market is bleak and getting worse. I can believe Srinivasan's claim that "Mobile service providers are moving towards just one bundle of voice and data at $100 per month.

That's a lot of money, even for the 2%. It's ridiculously expensive for the mass market. If Verizon and AT&T succeed, they'll put immense pressure on Apple's margins -- and wipe out Google's margins completely.

Unless Google acquires T-mobile there's only one option in play - Sprint. The weak, wounded, third rate carrier that desperately needs friends.

Except the option isn't really Sprint, but rather MVNOs [2] that have negotiated access to Sprint's aging CDMA network.

Sprint, and its motley allies like TruConnect Mobile MiFi. It's a "mobile virtual network operator (MVNO) that sells 3G mobile data service for laptops and tablets such as the Apple iPad and the Kindle Fire via the Sprint wireless network" (wikipedia). They've recently partnered with Walmart to deliver Internet on the Go.

'Internet on the Go' seems promising -- buy a data block with, practically speaking, no expiration. There's only one glitch. The web site doesn't mention price.

Yeah, that's weird, but you can find the price listed on Walmart [4]. The current price seems to be $45 for 1 GB [1] That's a lot more than the US-standard monthly charge of $50 for 2GB. The big difference though, is that the 1GB doesn't expire. My wife, for example, does quite a bit on her iPhone and is often below 200MB/month (no video, no software installs, no purchases, etc). With similar usage I wonder if I could stretch that 1GB out to 3-4 months -- at which point it's relatively economical. [3]

Walmart is a potential disruptor. You know that Verizon and AT&T are keeping one eye on them, even as they put their other eyes on Google and Apple (they have lots of eyes).

Amazon is another potential disruptor, it's already a covert MVNO player

Then there are the small guys like NetZero offering a $35/month 2GB plan over the Clearwire WiMAX 4G Network  (alas, this Engadget review doesn't match current pricing). Ok, that's no better than Virgin, but the difference is their $10/month 500 MB plan and $20/month 1GB plan - if you can use ClearWire. [5]. Most importantly, NetZero doesn't have overage fees ...

A. With NetZero 4G Mobile Broadband there are no overage charges. Customers cannot accidently exceed their monthly data allotment. We alert our customers when they reach their data limit and, if they want to continue accessing the Internet, they can either quickly and easily update their data plan, or buy extra data "Top Ups" that are good through the end of their billing cycle.

That's big. NetZero's hard stop puts them in the same league as Walmart's data block plan, and moves then well ahead of TruConnect's capless per MB fee.

So things are more interesting in the US market than I'd thought. I'm going to be researching both Walmart and NetZero; I'm likely to try one of them with my MacBook Air.

This also contributes to a decision to hold off on getting a new AT&T iPhone. I want to wait a few months and see what happens in this rapidly changing world. I'd love to buy an unlocked device ($600-$700) and bet able to, say, get voice and data with tethering for, say, $50/month.

- fn -

[1] The recommended MiFi (Mobile Hotspot) costs $120. I wonder if the Virgin Mobile Broadband2Go MiFi 2200 would work, but I haven't researched that.

[2] It's forgotten now, but prior to Apple's AT&T announcement there was widespread speculation that the iPhone would run on an Apple MVNO. Alas, that was not to be. Watch this US MVNO list for potential disruptors.

[3] We have good Sprint service in most of MSP. Note that when one is paying for each bit fetched, Chrome's prefetch is a bug, not a feature.

[4] TruConnect's own package costs $40 per GB but $5/month. So if one assumes use of 4GB data per year Walmart's and TruConnect's cost are both $180/year. The catch is that that a data accident could run up a large TruConnect charge, but a Walmart credit provides a hard stop. The Walmart plan is a much better deal. 

[5] MSP can. So NetZero's cost could be as low as $120 (plus taxes/fees) for 6GB of data compared to Walmart at $180 for 4GB of data with equal overage prevention. NetZero relies on the quirky Clearwire network, Walmart uses the slowish Sprint network.

Update: I decided to gamble $50 and try NetZero using their 'free' 200MB option. My first experience was using their $#!$@ insane web site registration form, which does not appear to have been tested with Chrome. That led me to do a bit more research, which found sites like this. I couldn't find any reviews from people I trust, just a few 1 star user comments on a PC Magazine review.

On the other hand, while the Internet on the Go site said my area was covered, the Walmart.com web site mifi order form said it wasn't. (I think the first is correct.)

I think I'll give this a bit more time to settle out.

Update 7/28/12: A few similar Clearwire-based potential disruptors...

  • FreedomPop: Similar to NetZero, but less costly. They were supposed to launch in "mid-2012", but are still struggling. They got a wee bit of VC money a month ago.
  • TIng offers a Huawei Hotspot but their monthly rates aren't competitive.

Saturday, July 21, 2012

Carbon Copy Cloner is now commercial. Good change, bad execution.

[See update: The lack of notification was a screw-up.]

Carbon Copy Cloner, one of my best loved apps, is no longer donationware. It is now a commercial product with a 30 day trial period.

That's great -- except the contract transition occurred during what seemed like a routine (albeit big) upgrade. I didn't see any warning that this was an unusual upgrade; but I've been a CCC user (I donated before there were post-donation registration codes) for a long time. Maybe there was a warning, but it was way too subtle for me. I don't see any notice on the front page of CCC's web site.

This is what I wrote Mike Bombich, the author of CCC.

I absolutely don't mind paying for CCC; in fact I'm glad to have that opportunity. I donated to CCC before, but that was before you tracked donations. Time for me to pay up again. That's not my problem.

I'm shocked, however, by a CCC update that made a contract switch without warning.

What you should have done was to do an update first that warned users that CCC was going to end-of-life on the donation model. Then the infrastructure would be in place to notify users that the next update would cost.

I used to use SuperDuper. I didn't mind paying for it, I used CCC because it was better. Now I have to decide whether to continue with CCC, or go through the pain of transitioning back to an inferior product because of how you handled this.

An apology to your customers would help a lot.

Again, I fully support your transitioning to a commercial model. I'm glad you did that. I'd have happily paid if you'd only warned me prior to the update. Of course I would have updated.

But you didn't warn.

I'll see how he responds before I switch back to SuperDuper.

Update: Mike Bombich responded with a sincere apology. He's amended the splash screen and release note with this warning. This was one of those bad-day mistakes; something that was missed in beta testing. He has a record of prior donations; he'll grant a license even if a donation was made prior to the 'registration' feature. In my case I'm happy to pay, I got my $10 worth a long time ago.