Tech09 Feb 2010 01:09:19 by Marco

Well, now that Internet Tethering works again on non-carrier iPhones (i.e., those that are unlocked and not in use on an iPhone-carrier network) I’ve finally been able to upgrade while still keeping tethering working. This has required an update of my Vodafone carrier bundle, so that is now available on-line in the same spot as before (here). I refer you to my earlier post, Updated Vodafone NL Carrier settings, for instructions on how to install it.

Happy tethering!

General18 Jun 2009 10:51:23 by Marco

Update: the ipcc has been updated to work on iPhoneOS 3.1.3. It should still work on 3.0, too.

With the new 3.0 iPhoneOS a new carrier bundle is needed so as to enable a few new features. So I’ve uploaded a new Vodafone NL Carrier bundle, in IPCC format. Because this is the format Apple uses for their carrier updates, a jailbroken phone is not needed.

Simply download the IPCC, here, and put it on your desktop. Download that file such that it does not get processed after the download finishes. In Safari this can be accomplished by option-clicking the link. Note: IPCC files are really renamed zip files. Browsers try to be clever so the file might be renamed to end in .zip or .ipcc.zip. Make sure the file name ends in .ipcc or iTunes won’t recognise it.

You’ll need iTunes 8.2 with carrier testing enabled. On a Mac, this is done by typing:

defaults write com.apple.iTunes carrier-testing -bool TRUE

in a Terminal window, and restarting iTunes. Then, connect your phone to your computer, option-click the ‘Check for Update’ button and select the ipcc file. It should apply immediately.

This IPCC file does the following:

  • Sets a carrier logo to eliminate scrolling ‘Voda…’
  • Disables ‘call forwarded’ notification when calling
  • Enables editing of data settings (APN, etc.)
  • Enables internet tethering
  • Enables MMS (settings preinserted)

Note: I had to restart my phone to get the MMS settings recognised.

Tech13 Sep 2008 17:57:35 by Marco

I knew pretty soon after it was released that I wanted an iPhone. Shiny and new, so it must be made mine. It had a few show-stopper problems, however:

  • I detest SIM-locked phones.
  • A two-year contract is even worse.
  • T-Mobile is shit.

Luckily, all these problems could be solved thanks to the nice people just south of us. Except they’re completely out of stock. Italy to the rescue: Telecom Italia Mobile (TIM) has shitlots of them and are willing to sell you just the phone, without SIM-locks and without a contract. Excellent. Off we are. (In reality it’s just coincidence that I happened to be going there, but let’s pretend we’re decadent.)

In Italy, all was fine. I bought the phone, stuck my SIM-card in and activated it. It took a few seconds to recognise it wasn’t anywhere near my home network so it looked for other interesting ones. Vodafone happens to also have an Italian presence, so of course my SIM instructs the phone to use that network. ‘Voda IT’. Good. We’re all set.

And then we got back to the Netherlands. Vodafone doesn’t sell iPhones here, so my phone has no idea of this network, unlike in Italy. The carrier name here, therefore, is ‘Voda…’ most of the time. That I can live with, but due to the phone not having any settings for this network it would also pop up a notice every time I initiated a call: “Call-forwarding activated”.

This is because Vodafone will redirect any callers to Voicemail for you if they call while you’re on the phone. Even if you don’t have voicemail: in that case, they’ll get a recording saying you’re unavailable. Fine, but the popup is annoying.

There is only One Way to fix this: Carrier Bundles.

iPhone uses Carrier bundles to set carrier-specific information, such as the APNs for data services, whether or not to use the network for Time info, if you can edit the APNs, the carrier logos, etc., and among those settings is a ‘Display Call Forwarding’ setting. This we need to turn off. There are two ways:

  • Edit the ‘Unknown Carrier’ bundle, which will apply the settings to all unknown networks, or
  • Create a ‘Vodafone NL’ bundle.

The former will always fix the popup, but will also apply to other SIMs inserted into your phone which you may not want. And if you edit a logo here, it’ll always show up even if you’re on another country’s unknown network. Bad.

So instead I made a Vodafone NL bundle that contains logos in the same style as the other Vodafone carrier bundles (so it says ‘Voda NL’) and with the right internet settings and such.

I feel this may be useful to more people than just me, so here it is:

Download Vodafone NL carrier bundle.
Note: a newer version of this file exists, for iPhoneOS 3.0. Find it here.

Currently, you need a jailbroken phone and some SSH skills to get it installed. The process is as follows:

  • Copy the bundle (it’s a directory, technically) to your phone’s “/System/Library/Carrier Bundles” directory. This can be done using scp -r or some other tool that is capable of transferring entire directories.
  • Create a Symlink in the same directory, pointing to the bundle, called “20404″. This is the network identification number (204 for The Netherlands, 04 for Vodafone Libertel N.V.) This you can do by cd’ing into the directory and typing “ln -s Vodafone_nl.bundle 20404″).
  • Reboot the phone. Killing Springboard does not appear to suffice.

As of now, you should have ‘Voda NL’ in your status bar, and not be bothered by the Call Forwarding popup.

General15 Feb 2008 03:35:25 by Marco

With my beloved Macbook Pro in the shop for repairs involving the trackpad and keyboard, I’ve temporarily switched to a regular Macbook to which I’ve restored a backup from Time Machine. This is great: just boot the Leopard DVD, tell it you want to restore a backup, let it sit for an hour and a half and you’re done. It has your system ready to go, just as it was. Even on different hardware. (Of course, there are some requirements to doing it this way, like the hardware being compatible, drive large enough, etc.)

However after a day, I noticed something: Time Machine had stopped backing up and wouldn’t show my old backups in its whiz-bang interface. Telling it to back up to my existing drive would just make it start all over again. Problem!

As it turns out, this happens only because not only did I switch drives (this, of course, is the normal use case for a full-system backup app), I also switched machines. And Time Machine keeps track of what machine it was backing up from, possibly to avoid issues with two different machines backing up to the same drive that also happen to have the same name.

It wasn’t immediately obvious where it saves this info, though. None of the files in the backup directory seemed to contain any machine-specific information. Some digging revealed that the computer’s MAC-address is stored as an Extended Attribute in the backup’s top-level folder. This information can be revealed with the ‘xattr’ command (-l for listing, -w for writing):

bash-3.2# xattr -l *
Portia: com.apple.backupd.BackupMachineAddress:
0000   30 30 3A 31 36 3A 63 62 3A 39 30 3A 66 65 3A 34    00:16:cb:90:fe:4
0010   31 00                                              1.

Ok, so in theory I can just change that and be on my way again. Wrong! The backup folders are protected by ACLs so strong even the root user can’t break through them. Trying to change anything about these folders (including the permissions, deleting them, etc.) just results in an ‘Operation not permitted’ error:

bash-3.2# chmod -N Portia
chmod: Failed to clear ACL on file Portia: Operation not permitted

bash-3.2# xattr -w com.apple.backupd.BackupMachineAddress 00:16:cb:90:62:0d Portia
[Errno 1] Operation not permitted: 'Portia'

Luckily, there’s a way around this problem: simply disable the ACLs on the drive. This is done using fsaclctl, like so (my backup volume is called ‘Thingz’):

fsaclctl -p /Volumes/Thingz -d

-p for the path to the drive, -d to disable.

After executing that, OSX will simply ignore any ACLs present. They’re still there, just not used.

So to get to the point, here’s how to change a Time Machine backup so it’ll work from another machine, given a known MAC-address (as can be extracted from ‘ifconfig’). In the example below, the drive is at ‘/Volumes/Thingz’, the MAC-address of the new machine is 00:16:cb:90:62:0d and the machine’s name is ‘Portia’.

First, disable Time Machine (unselect the backup drive and turn it off), then, adapt the following to your needs:

cd /Volumes/Thingz
fsaclctl -p /Volumes/Thingz -d
xattr -w com.apple.backupd.BackupMachineAddress 00:16:cb:90:62:0d Portia
fsaclctl -p /Volumes/Thingz -e

Tell Time Machine to use the drive as a backup drive again, and it should continue right where it left off, with all the backups available again in the flying interface.

Small print, at regular size
I can not guarantee that this will work for everyone. It seems to work just fine for me, however. I am not responsible if you wipe all your backups because you tried this. Thanks.

General25 Dec 2007 08:48:23 by Marco

I mean, those Philips Living Colours lamps have been out there being sold to the general public for what, just about a year now? And no one google knows about has had the idea of computering it up? Seriously?

Obviously the internet has lost its cool.

So now I have one of those lamps (which, by the way, are really nice) and all I can do with it so far is use the remote to make it change colour.

General16 Dec 2007 22:22:56 by Marco

I’m fairly sure that in endo-speak, I’m a dinosaur now. So just to get me out of that list and prevent Planet Botfu from turning into Planet Safari_Al (though yes, I am two months late with that), some random words.

Requisite. Lucrative. Tantamount. Unintrusively. Flagrant.

There you go.

General05 Jul 2007 04:47:51 by Marco

So if you happen to want to look at the images inside the iPhone, that is the bunch of PNGs no image viewer will shake a stick at, now you can. Just download my bit of code from svn://svn.poop.nl/pub/iphone-fixpng. Tested on OSX/Intel. There are instances where it will break, though you shouldn’t run into those with images from the iPhone.

You’ll have to compile it yourself. Install libpng into /usr/local and type ‘make’ in a shell.

Convert the PNGs into readable files by running fixpng input.png output.png. Then if you feel so inclined to make them pretty, you can flip the R and B channels around by running something along the lines of flipchannels input.png output.png.

Update: Also tested using a PowerPC Mac, so the Makefile in svn compiles to Universal Binaries now.

Tech05 Mar 2007 00:11:55 by Marco

Ignorant as I am of the IMAP protocol (though I’m a native speaker of SMTP), it appears that there’s a better way to tell your client to fetch new mail from the server: the IDLE command.

And Michael Rothwell was nice enough to add it to Mail.app by way of this plugin. Essentially what it does on supporting mail servers is open up a second connection, select your INBOX and then just ‘IDLE’. If new mail arrives in that mail box, the server will tell you about it.

Quite a bit less elaborate than my applescript version, but so much more reliable.

Tech25 Feb 2007 17:18:13 by Marco

I’m sending in this post from FOSDEM, which means that my biggest complaint (actually, I think only complaint) for last year has been solved: the WiFi works! Bit of a weird implementation (lots of separate networks names instead of roaming) but I can see why they chose to do that: the broadcast traffic on a big roaming LAN with hundreds of laptops is enough to smother the average wifi connection. Of course last year’s FOSDEM was powered by a couple (my guesstimate is about 3 or 4) Linksys WRT54Gs and their built-in antennae. This year I’m seeing professional towers with omni-antennas and an unidentifiable grey box that houses the actual access point.

Anyway, thumbs up.

Life08 Dec 2006 04:47:05 by Marco

Buying two Wiis took me all of about 10 minutes. Part of those minutes were spent walking between three stores.

Actually that’s not entirely truthful. My friend Nadya and I had tried Wednesday afternoon at Schiphol after a store clerk said on the phone that they had Wiis in stock, only to return empty-handed and one of us somewhat depressed. I suppose trying to get one two days before the launch was pushing our luck.

Skip to thursday, one day before the release. I’m buying a bluetooth headset in Haarlem to try out for a project at work, and on my way back to the bus I pass the Vroom en Dreesmann. I figure ‘Hey, may as well try’ and go inside. After asking the clerk if he had any Wiis he said ‘yep’, and opened the box he had received them in, which was right in front of him. He must have just gotten them himself. Unfortunately he could only sell me one of them as the rest were reserved. Better than none, I figure, so I buy it. Of course that still leaves one to find for Nadya, who would have been very very depressed if I had managed to find myself a Wii while she would have to wait. So I try Van Leest, the closest store that might have them. “We’re getting them only this afternoon”. Ok, crap. Next. Free Record Shop, 10 meters onwards (even though it’s the one shop I never go to because they overcharge on CDs). They have four on display at the counter. I ask the clerk for one, he packs it up and I leave the store with a second Wii.

No waiting lines involved, no pre-orders, no angry crowds trying to start a fight and no robbing of goods. I have m4d shopping sk1llz.

Next I’ll try my luck at getting some actual games. I’m ogling Wii Play at least, which appears to be fairly popular. This may or may not have something to do with the fact that it comes with a free Wiimote.

Wii with new message

Oh, and it’s really fun to play with. The Wii may not stack up to the raw processing power of the PS3 and XBOX360, but the Wiimote makes it a lot more fun to play with. The PS3 and the 360 are pretty much the same as the previous models, except they can do better graphics and such. The same goes for the Sony PSP and Nintendo DS. (Though granted, I prefer the PSP). It’s innovation versus brute force. In this case, innovation wins for me. As a plus side to this lesser processing power: the Wii is much cheaper, at EUR 249,- here in .nl.

Next Page »