Archive for the ‘Hardware’ Category

Thoughts on desktop Linux incompatibilities with iPhone and Android

Friday, September 19th, 2008

Linux users want music-player/phone integration. Linux users want to sync all of their data — contacts, emails, calendars, bookmarks, documents, ebooks, music, photos, videos — at the touch of a button. Linux users want 3G data rates. Linux users want a state of the art, coordinated mobile platform.

If FLOSS developers are so prone to scratching their own itches, why doesn’t there exist such a thing?

Because large scale mobile device companies box us out.

The iPhone Platform

I believe that Linux users who purchase their iPhone with the intent of jailbreaking it to fake compatibility are doing the Linux community a great disservice. They are purchasing a device which is made with the intent of not working with your computer. There’s no more mass storage device. There’s no longer a known iTunesDB format. The iPhone goes so far to obscure our intended usage that the community-recommend method of gaining functionality was to use an arbitrary code execution exploit. This is what we’re driven to do. Do you want to support this behavior with your $200-500?

From a technological standpoint, our historical success at reverse engineering is very cool. It demonstrates the community’s technical prowess through our ability to overcome artificial barriers. Despite the coolness factor, however, we can not and should not rely on our ability to kluge around obstacles in our path. Why? Because it doesn’t allow us to make any definitive progress. It constantly puts us several steps behind the capabilities of a “properly” functioning device, both due to the difficulty of finding a solution and the misdirection of creative energy. One can’t reasonably expect to build a working, Linux-compatible platform on top of a series of hacks that could potentially break with any minor release.

Even more insulting is the message that alternative solutions that work within the system are unwelcome. In my mind, the rallying cry of the Linux community should be “iPhone != iTunes“. Ideally, the community could write an iTunes replacement application that played Ogg Vorbis and FLAC files. Let’s enumerate some problems that this would solve for FLOSS developers and enthusiasts:

  1. We wouldn’t have to reverse engineer the new iTunesDB format (or anything having to do with iTunes).
  2. We wouldn’t have to reverse engineer the new iPhone USB protocol.
  3. We would be starting a platform with a solid base that we could build upon. We would no longer be at the mercy of a development shop that clearly doesn’t care about our demographic.
  4. We could have it connect to a small socket server on our local machines and automatically sync music over WiFi.
  5. We could play Ogg Vorbis files, for God’s sake!

We could write a whole suite of totally legitimate applications for the iPhone to perform compatible iPhone-native-application-like functionality, all within the artificial constraints of the iPhone! There’s nothing stopping us — except for the distribution mechanism. If Apple is at all amenable to our cause, the rejection of competitive apps will have to stop. Again: we should not have to void our warranties to use our product in legitimate ways on our competitive computing platforms.

Sadly, even if iTunes-store enlightenment came to fruition, we’d still be screwed. Platform restrictions disallow several key abilities. Case in point, we could not background our iTunes-replacement music player while we browsed the web (or did anything else, for that matter). We find ourselves at the mercy of the exposed API and Human Interface restrictions. Although this is unfortunate, it’s decidedly better than founding a platform on our ability to hack around the poor design decisions of others.

The Android Platform

I’m much less well informed about the Android platform and the upcoming HTC Dream mobile device. Nobody is well informed at this point — almost exactly one month from the expected release date — much to the chagrin of potential customers. There are early indications that Linux desktop compatibility will not be supported natively on this platform either. As a Linux user, I can only cross my fingers and hope that Android will be as open as Google makes it out to be, while keeping a close watch on the potentially hazardous centralized distribution model.

Food For Thought

Since this article is supposed to contain my “thoughts on” the subject, I feel I should also share this little tidbit that keeps rattling around in my head. I’m not drawing any conclusions, just providing the reader with another, incomplete step in my thought process.

Monopoly law exists, in part, to disallow certain practices that are thought to be detrimental to “consumer welfare”. From Wikipedia (emphasis added):

Competition law does not make merely having a monopoly illegal, but rather abusing the power that a monopoly may confer, for instance through exclusionary practices.

Update: September 20, 2008

An application named MailWrangler was also barred from the Apple Store for vaguely duplicating the functionality of Mail.app. From Angelo DiNardi’s article (same link as above):

Normally to check multiple Gmail accounts in mobile Safari you would have to log in and out of all of the accounts, typing the username and password for each. Using just the Apple Mail application you aren’t able to see threaded views, your google contacts, archive (quickly), star, etc without going through the hassles that are present when using Gmail’s IMAP on the iPhone.

This is another case of barring an application that offers features for a smaller demographic. I personally can’t see why Apple is so “afraid” — let third party apps spring up for specialized features, so long as they don’t violate the device’s terms of use. If you feel like incorporating those features into Mail.app somewhere down the road, the other applications will die out naturally.

I feel sincere sympathy for Angelo; however, on the desktop Linux side we’re at an even greater disadvantage — for us, there isn’t even similar functionality available on the iPhone platform. To just sync our music, we have to void our warranties. The only thing we can possibly do without voiding our warranties is write an app with similar functionality to the iTunes music player and acquire it through the Apple Store. Forbidding us from doing this makes legitimate desktop Linux use impossible — for what advantage?

IDE Cable Termination

Thursday, January 10th, 2008

I never gave much thought as to how IDE cables are terminated. Recently, I broke an exceptionally small IDE cable that lives in my hard drive enclosure — I can never figure out how to pull IDEs out by the head, and so I always end up yanking on the cable, often detrimentally. :)


In breaking the head of the cable, I found out that this IDE (and I assume this holds for all IDEs) is “vampire tapped”, reminding me of 10BASE5 Ethernet technology. Effectively, all 40 of the insulated wire sheaths are pierced by sharp spikes in the terminator. I’m not sure if this vampire tap method also holds for the three-head IDEs (board/master/slave) — I’ll have to dismantle one of those in the future. It might be fun to look into IDE arbitration protocol at some point to figure out how those three-head IDE cables work properly. Are they a single bus with three vampire taps, or two separate buses with the middle device acting as an arbiter?


At any rate, it’s real hard to get one of these terminators situated right after you knock it out of place. There are holes from the previous termination that you have to place just right. So far as my external enclosure is concerned, it looks like I’ve gotta find a new cable. :/

Hoarding Hard Drives

Wednesday, January 9th, 2008

Cleaning out the basement, among a bunch of other junk, I found 6 hard drives (which I thought was a large number of hard drives). For some reason I thought it’d be fun to enumerate them…

  1. IBM Deskstar 75GXP, 46.1GB, 7200rpm
  2. Maxtor DiamondMax VL 30, 23.0GB, 5400rpm
  3. IBM Deskstar 40GV, 20.4GB, 5400rpm
  4. Maxtor DiamondMax 6800, 10.1GB, 5400rpm
  5. Maxtor DiamondMax 2160, 8.4GB, 5400rpm
  6. Western Digital Caviar AC22500, 2.5GB, 5400rpm

The average size of a hard drive in my basement is 18.42GB!