Android : flashing :: programming : ?

Your editor will confess that he still feels a certain childlike joy at the prospect of reflashing an expensive device that he depends on, possibly bricking it, then painfully restoring all of the settings and discovering all of the new bugs which have been added. It’s the sort of adrenaline experience that others, perhaps, seek through horror movies, bungee jumping, investing in equities, or PHP programming

Jonathan Corbet, The end of the road for the Nexus One, Linux Weekly News

iTunes feed extractor

The downside of Apple’s iPod/iPhone being so popular is that so many podcasts only publish iTunes links, instead of the more standard RSS/Atom feeds. And I know of OS X and Windows users who detest iTunes — imagine how Unix users feel!

Well, the feeds are still there, but hidden from plain sight — turns out, though, that if you pretend to be iTunes, you can actually trick the iTMS server into giving you the raw data. And with Python 2.6’s built-in support for Apple’s property lists, extracting the feed is a trivial matter.
Continue reading

On (not) reinventing the wheel

I used to dual-boot Moblin and Fedora on my old netbook — but when I had it replaced due to battery and SSD failures, I stopped doing it on the new netbook, instead exclusively booting Fedora, and relegating MeeGo to a USB stick with persistent overlay. Thankfully, MeeGo’s image creation tool (mic2) is derived from Fedora’s livecd-tools, so I can simply use the latter to burn the MeeGo image to USB with overlay, without messing with the image by hand.

(as an aside, the only way to flash an image to a partition, instead of wiping the entire disk, is using Fedora’s tool, and by extension MeeGo’s — but with the latter, only if one used the Fedora-derived command-line tool, mic-livecd-iso-to-disk instead of the recommended ones)

There are several reasons for this, in no particular order:


Moblin supports ext3 but not ext4; MeeGo adds btrfs to this mix but there’s still no ext4 support. I buy the rationale that ext4 is the SVN of file systems, and that we’ll eventually all migrate to btrfs anyway. But on the other hand, btrfs is not quite there yet — I switched back to ext4 after the SSD failure, when I realized that btrfsck does not yet handle bad sectors properly, unlike e2fsck. With other Linux distributions increasingly switching to ext4 — which can be easily migrated to btrfs later on — the trade-off (slight disk usage increase vs easy access to other Linux partitions) is surely in favour of supporting ext4.

Moblin/MeeGo also does not support LVM, which is used by default by Fedora’s installer, but this is a minor issue — someone deciding to use MeeGo and Fedora can just partition the disk without using LVM.

connman vs NetworkManager

I used to be agnostic as to how my network connections are configured — as long as it just works. This is why my new netbook is a Sony — because unlike other vendors (shame on you, especially, Dell) it does not use a Broadcom WLAN chip with a proprietary, badly-documented, buggy Linux driver (shame on you, Canonical, for helping develop it if only had Canonical put its considerable weight to getting specs and firmware released). Instead, it has a nice Atheros chip.

The same is true when it comes to the software stack. At the beginning I did not pay much attention to the connman vs NetworkManager controversy — prior to version 0.7, NetworkManager had its warts, and connman happened to work just fine on the home wireless networks I tried. This changed when I try connecting to a work network that uses 802.1X security. The MeeGo GUI does not support this, and the developers don’t consider this important at all. The command-line tool is badly documented — documentation is non-existent — and throw cryptic error messages. Makes one wish Java-style checked exception is more widely used; that way, at least developers have to *think* about the exception propagation, instead of just exposing them by neglect to the users.

GNOME 3.0, Fedora MeeGo stack

Fedora 13 already comes with a preview of GNOME 3.0’s shell, and work is in progress on having  MeeGo available. There are some annoying integration issues — the network-manager-netbook applet that integrates the Moblin/MeeGo desktop with NetworkManager is not as well supported as the default connman-based applet, and MeeGo’s window manager has some incompatible modifications that has not been merged back upstream. But, like NetworkManager’s Dan Williams, I believe that the way to improve the Linux desktop is to improve the existing tools that work across all sorts of devices, rather than reinventing them to solely target mobile devices, and in the process having to solve the same technical issues over and over again.