Why my iPod Touch sucks
When the Microsoft Zune came out, and I found out that they use a proprietary extension of MTP that makes it only usable with the Zune software, I swore I’d never buy it. Little did I know that the new iPod Touch I bought to watch videos on the bus would be equally useless – unlike every other iPod, they decided to rewrite the entire transport layer, from USB storage to who-the-hell-knows-what.
While there are valid reasons that Apple decided to do this, their typical Apple-esque secrecy means that syncing music from my Linux desktop to my iPod is a 15+ step process, and any mistake will mean that iTunes bricks your device, which means starting from step #1. Furthermore, any failure syncing over wireless (a very flaky, error-prone procedure) will also brick it.
I know what you’re saying, “just use iTunes LOL”. Well that doesn’t work either – moving all of my music to my laptop isn’t an option, and setting up your iTunes library to go over the network is equally painful / flaky. iTunes treats the drive as if it’s local, so it does all sorts of retarded things like trying to do trickery with file locks and set file watches.
For fuck’s sake, there is no reason that this should be hard. Just implement the standard. Hell, I’ll even give you a bonus protocol. Here’s to hoping the EU sues Apple and forces them to publish all of their protocols.
In the meantime, my best option right now is to write my own FuseFS: basically, it’ll take a path as its argument and “cache” it at the file level, copying it to a temporary directory. When the temp directory gets too big, files get deleted according to MRU. This way, I can point iTunes at it, and it won’t act as slow. I suspect I’ll also have to have a block-based cache too, because iTunes will try to read the tags from lots of files at once, making it just as slow as a regular net drive.
