Categories
server admin

WordPress note: Curl != Curl

Gah. The world of PHP modules is a horrid mess. And sites going OAuth-compulsory are highlighting of late just how much so…

I just had a plugin fail, with no error message, even though I had it all installed correctly, and all pre-requisites.

After much messing about (much wasted time), it turns out that this plugin needs:

  1. libcurl (which is not the same as curl)
  2. php5-libcurl (which is not the same as libcurl)

So … when a WP module claims it needs “curl”, it could mean any of three things. I knew about the first two, but not the third. Even if it says it needs “libcurl” that’s still not specific enough.

In this case, the WP module embedded a 3rd-party OAuth module that used “the other libcurl” – so it needed *both* of them. Ha!

Categories
fixing your desktop

Phone numbers, and making iPhones and Androids switch networks

Short note for anyone with my cell number: I’ve finally got my new number working in an iPhone, so within the next day or so I should be running both UK numbers again (my old UK number has been phone-less for about 8 months now).

It’s been a long journey, and a small accident, to get to that point. This might help someone else moving an iPhone from O2 / AT&T / etc to a new network.

Or trying to get a T-Mobile SIM to work on a modern Sony Ericsson phone (maybe other Android phones too).

From iPhone to Google Nexus One

I run a small iPhone/Android dev company. At the start of this year, we didn’t do Android, but I planned to do so by summer 2010.

It’s part of our ethos to avoid client work with a platform until we know the platform well ourselves. So, as well as writing some Android apps (e.g. the shoot-em-up I blogged about earlier this year), I switched from my iPhone to a new Nexus One as my personal phone. The plan was to use it daily for a month or two and get to understand the platform.

We’ve got a lot of phones, and for testing purposes (and for client meetings) they all need data plans. Paying a contract for each would cost us thousands of dollars a year if we’re not careful. So, instead, we use 3’s £5/month 1-month contract, which gives you 1gb data, free incoming calls, and expensvie (£0.55/minute) outgoing calls.

Randomly, the number I got for the Nexus One was palindromic – much easier to remember than my own number – so I didn’t bother switching SIMs.

O2 iPhone refuses 3 SIM

After a couple of months, frustrated with the legion of critical bugs on the Nexus phone (and on Android itself), I tried to switch back to iPhone.

Ah. Hmm. Well.

My iPhone was a (legitimately) unlocked 3G. i.e. I’d had it more than 12-months, and (as per the carrier policy) they’d remotely removed the carrier lock (this costs £15 if I remember correctly – cheeky bastards).

But it wouldn’t accept the 3 SIM. Just came up with variations on “No SIM” and “No Service”.

The O2 SIM was noticeably thicker than the 3 SIM, so I wondered if it was a seating problem, physically. Vigorous squeezing of the phone got rid of the “missing SIM” messages permanently – but still no service.

All the following failed to work:

  1. soft reboot
  2. hard reboot (hold power button, then slide to confirm)
  3. re-sync
  4. run battery to dead, recharge, power-up

Xperia X10 Mini – the (almost) perfect phone

This Summer, the manufacturers went wild with new Android phones. So, a few months ago, we got a broad range of new handsets to cover the different hardware profiles (many of which hadn’t previously existed in meaningful numbers “on the street”).

I saw the X10 mini, and fell in love. Despite being made by Sony “snatch defeat from the jaws of victory” Ericsson, this is (almost) the phone I’ve been waiting 15 years for. It’s tiny, fits very easily in the hand/pocket, and has every feature of a modern smartphone (even includes an FM tuner). Plus a speaker that produces great sound quality, despite it being a phone. You can get it in two versions – with or without pop-out hardware keyboard.

(obviously, it’s from Sony, so they fucked up the software. If they’d done *nothing*, the phone would have been better, but they spent time and money replacing the OS apps which work with Sony apps that don’t work. Fortunately, this is Android, so you can download “real” software from the Market. A minor annoyance, you’re stuck with the icons for the Sony crap – the only way to remove them is to jailbreak the phone. Yet again, Sony reduces their own sales because they don’t have the courage to tell their own software teams “sorry, your output isn’t good enough”)

Switched the 3 SIM, and … perfect. Worked first time. Just the iPhone being a PITA, then.

AT&T refuses to serve foreigners

So, fast forward to last week. I was in New York for the UK Digital Mission. Last time I was in USA, about 6 months ago, I walked into an AT&T store and bought a pre-pay 3G SIM for my phone. Worked fine. I had to lie about my phone(s) – I’d read on the internet that AT&T would ask “is this for an iPhone?” and if you said yes, they would refuse to *allow* you to buy it – even if you then promised to stick it in a non-iPhone instead.

This time, AT&T new york stores just flatly refused. Maybe they don’t sell pre-pay any more – I don’t know, I couldn’t be bothered with this “lie to the retail store to get them to sell you their product” game any more. I’d spotted a T-Mobile store just round the block, so I went there instead.

…so, on to T-Mobile USA. Ah, but: T-Mobile + Android = FAIL

The T-Mobile SIM wouldn’t work in the iPhone (no surprise, given the previous problem)

The T-Mobile SIM wouldn’t work in the Sony Ericsson phone either. Hmm. Now, that’s odd.

The store reps followed their usual practice – re-configure settings, switch to GSM mode (cheap SIM), switch airplane mode off and on again. Nothing.

Eventually, after 15 minutes of me and the store reps trying everything we could think of, I did a hard reboot of the Android phone (explicit power-off, and restart – takes a couple of minutes to come back on). Voila! Instant re-acquisition of the network.

Amazingly, if I took the SIM out, and popped it back in again (not even powering off phone, or putting in a different SIM), it *permanently* lost the T-Mobile network again … not coming back until I did a hard reboot again.

Finally, OS 4 “fixes” the iPhone

I got home from NYC. New desktop, new iTunes install, plugged in the iPhone to do some compatibility testing for one of our client apps.

I get the popup messages from Apple telling me there’s a new OS download available for this phone, do I want it installed? or just downloaded? or ignored?

Obviously, it would be catastrophically bad if I installed the OS download – although Apple publically pretends they support old OS versions, they privately *deliberately* prevent developers from doing this. If you upgrade an old phone OS, you can’t go back (unless you jailbreak the phone, which causes other problems in your QA process).

But I figured I might as well accept the OS download, so it’s on this desktop for later install.

Apple software: world’s worst user-interface design

If you select “download but don’t install”, it then asks if you want to check-for-new-and-install … or not.

Actually, although it’s the same dialogue it uses for “check-for-new-and-install”, the text is supposed to read:

At Apple, we were too lazy to update our scripts. This dialogue is literally useless. Please hit the “Check” button, or else I will cancel your previous action.

…I’ve been through this game a few times before, and I know the secrets now. Although it *has already done* the check, you have to tell it to check again. Or else it (silently) cancels the download.

And here’s where it gets weird…

Coincidentally, I had the 3 SIM sitting in the phone. I’d put it there for safe keeping while I was in USA, since I now had the T-Mobile SIM in the Android phone.

As soon as itunes started downloading the new iOS build (which takes a while), the iPhone switched to “first time install” mode.

i.e. the lock-screen disappeared, replaced by a picture of a USB cable, and the text “Emergency only” flashing up in different languages (spanish, french, etc).

…meanwhile, iTunes popped up a message “updating carrier settings”.

Oh, Rly?

Ya Rly – 5 seconds later, I had carrier signal. My old 3G iPhone is now working perfectly with 3.

So, apparently, *merely downloading* a new iOS version causes iTunes to do the carrier updates it it supposed to do automatically on sync.

My guess is that it actually did a firmware update of the phone, without telling me. If so, this is a mildly evil thing for Apple to do, since it fundamentally alters the hardware. It’s only a guess – specific per-carrier “fixes” are a standard part of firmware updates, and IIRC you can’t do one without the other on iPhone – but given the dialogues are already self-evidently the wrong ones, I’d not be too surprised.

(incidentally, why are the dialogues wrong? Basically … Apple doesn’t care about software quality. This comes up time and time again with iTunes, iWork, and OS X: the hardware may be great, but the software contains basic bugs that even a junior QA person would spot immediately)