The Droid Saga, Episode III: Rescue Of the ROMs

The Droid Saga

Episode III: Rescue Of the ROMs

It is a period of uncertainty on Bill’s Droid. Having been tempted by the power of Android 2.2, he manually installed Verizon’s pushed build of Android 2.2 FRG01B.

The networking stack was buggy and Verizon ceased the push immediately — but the damage was done:  the Droid was crippled. The Droid was eventually flashed back to Android 2.1 and then a “factory build” of Android 2.2 FRG22 was installed.

Peace returned to Bill’s Droid, but rumblings of discord continued. The Droid was now rooted, and the enormous power this represented could not be ignored …

Wireless Tether

I can’t adequately stress the sheer utility of Wireless Tether on the Droid. Now, no matter where I go, I can get on the Internet via any device capable of WiFi.

I also can’t stress just how well this works. If the Droid is itself connected to WiFi, tethered devices use WiFi; connected to 3G, tethered devices use 3G. Bandwidth is limited by the Droid’s upstream connection and/or the bandwidth limitations of WiFi.

This really works, something I had occasion to discover in a very concrete way.

As I mentioned previously, WiFi seemed a bit flaky under FRG22. It was better than craptastic FRG01B, but not as good as Android 2.1. It seemed possible that the networking stack was still buggy. To know for sure, the Droid would need a different networking stack.

ROM Manager

Enter ROM Manager, a program that makes installing different custom ROMs on rooted Droids a dream.

I’ve flashed ROMs on other devices. It generally goes well, but on the occasions when it goes badly, it usually goes very badly. I’ve bricked a phone doing it, and I’ve no desire to brick a second. I certainly couldn’t afford a new one right now.

Consequently, I’ve not flashed ROMs on my Droid. However, I’m now confident enough to at least bring it back to FRG22 that I decided to see if ROM Manager was as good as the Market description says.

It is. In fact, it entirely exceeds my expectations about what ROM management software can do. In fact, I’m not even going to post instructions for using it. They would be: download it from the market to your rooted Android device. Follow the instructions. It will reboot a few times when you make changes, usually warning you when it will do so.

Otherwise, just watch the text streaming past as ROMs install.

In a few minutes, the Droid was running the most recent release candidate of Cyanogen: version 6.0.0 RC2.

The utility involved in this ROM is fantastic. I have no idea how it stacks up against other ROMs, and I’m not likely to find out soon.

I might have, but after going to this ROM, WiFi was considerably better, but still not as good as Android 2.1. Furthermore, the 3G connection was really fast. Not HD video streaming fast, but much faster than under 2.1 or FRG22.

As I mulled over the possibility of a different ROM, there was another in a series of massive thunderstorms in central Iowa, USA. It was during this that I found the real culprit.

On two occasions, I’ve accidentally fallen behind far enough on my cable payment that the cable company cut my Internet connectivity. Because of how the network operates, this isn’t immediately apparent unless you power-cycle your router.

The router (and everything else in the house) power-cycled repeatedly during the thunderstorm as power blinked or was lost for a period of several minutes. When it seemed stable again and I started powering on my computing equipment, nothing would connect to the Internet. A quick check of the router revealed I was now on the cable company’s private network, which had only occurred before when they’d turned me off.

A quick check of my cable company’s Web site (via my Droid-tethered laptop) revealed that yes, I’d allowed my bill to go unpaid that long. A quick check of my bank’s Web site (also via tether) revealed what I already knew: that my unemployment-era bank account wouldn’t have the money to pay for reconnection and the back balance until Friday morning.

The reality is that my home network was stuck without bandwidth for at least a week. I could survive if everything except my laptop has no bandwidth. However, as an IT professional, my work and employability is badly impacted without a near-constant Internet connection.

Leave it to the Droid to save the day.

With the newfound 3G speeds combined with WiFi tethering, my laptop now had access to the 3G network. It’s not the 20MB of my cable connection, but it’s good enough to do work.

In fact, it’s so good that I’ve started to look at the feasibility of adding a second Android device to my Verizon account and dedicating it solely to WiFi tethering. With an Android device dedicated to WiFi tethering, I could eliminate the cable and its bill.

Technically, the drawback is significantly-decreased bandwidth. This has a drawback for me personally:

For more than two years, I’ve not turned on my TV except to use it as a monitor for a computer or game console. The only time it’s used as a TV are when my daughters visit, and summer visitation just ceased. They won’t be back in the house for months, so it’s just me.

(I’m unclear:  how disconnected with the TV culture does it make me that I was unaware that several channels considered important by teenage girls had really bad reception?  Furthermore, that when I looked at it and realized the cause was physical connectivity upstream, that my first thought was that it was probably decreasing my bandwidth?)

All my entertainment is via the Internet. I watch YouTube and Hulu a lot. If I find something I particularly like, I typically acquire it. When the BBC airs new episodes of Doctor Who, Torchwood, or The Sarah Jane Adventures, I have new HD episodes within a couple of hours of transmission thanks to BitTorrent.

(I’ve even kept up on the K-9 TV series, but I’ve yet to force myself to watch all the episodes. It’s not bad, just a bit too much of a children’s show. The Whoniverse will work with a children’s show like The Sarah Jane Adventures, but K-9 just feels forced.)

In any case, a decision to go 100% wireless means my sole entertainment source would be curtailed. I’m not sure I want to pull that trigger.

It’s technically feasible, however — possibly even financially so. If one purchased a newer, fastier, sexier Android device for personal use (Droid X, I’m thinking of you!), then the Droid could be flashed with a very simple, stripped-down ROM with only the WiFi tether app constantly running.

Oh, did I mention that the Droid can also do firewalling with DroidWall?

It’s true that Verizon is basically giving away a wireless tether device, the MiFi 2200. Unfortunately, it’s attached to their idiotic limited data plans. The smartphone data plan is unlimited.

The fact that this is so eminently possible proves the general utility of the Android platform. There’s no technical reason that one couldn’t produce a WiFi router using it.

In fact, if some bright cookie really thought about it, they’d mass-produce an Android device to do just that, only with one or more wired network connections.

At present, I’m crunching numbers. I probably won’t go through with it, particularly if I find a job that will easily pay my cable bill. I prefer 20MB/s on a largely empty spur of a cable modem infrastructure. Short of a job, this is a high-utility, low-cost way for an individual have high-speed Internet connectivity at the cost of a Verizon unlimited data plan.

Would that my power company was so eminently exploitable in terms of reducing one’s bill — though I’m also crunching numbers for converting most of the appliances and lighting in the house to USB

The Droid Saga, Episode II: The Revenge Of Flash

The Droid Saga

Episode II: The Revenge Of Flash

It is a period of chaos on Bill’s Droid. Having been tempted by the power of Android 2.2, he installed Verizon’s pushed build of Android 2.2 FRG01B to his Droid.

The networking stack was buggy and Verizon ceased the push immediately. Nevertheless, Bill’s Droid was bitten by the bug.  Networking — particularly wireless — was almost impossible.

The Droid is crippled, and it seems no hope remains to return peace and freedom to the Droid …

Having gotten sick of waiting for an official FRG22 to appear and fix my numerous FRG01B bugs, I decided to flash back to 2.1, then install FRG22 as blogged here. My results:


The flash/upgrade process worked like a charm.


Apparent speed of the device has increased dramatically. I’m not clear that it appears any faster than 2.1, but running craptastic FRG01B for a day has colored my perceptions.


The networking issues aren’t as bad. They are not fixed, however. My guage for this is YouTube.

I watch a lot of YouTube videos. Prior to the upgrade they would all consistently stream virtually laglessly. This was always particularly apparent at home where I have 20MB virtually to myself on a fortuitous cable modem infrastructure spur.

After the upgrade, YouTube videos are timing out a lot. They’ll first lag, then time out.

While YouTube is most apparent, it’s not just YouTube. All Web sites seems sluggish, on either Browser or SkyFire. I’m hope that this is impacting my Flash experience (see below).

I’m installing some specific networking tools to see if I can determine exactly what’s going on. I’ll post more as I do.


The Gallery works as advertised. I find this interesting, considering how badly broken by networking issues it was in FRG01B. I would expect it to have improved, but not to appear totally lagless.

Apps that need Internet connectivity vary. None respond as rapidly as under 2.1u1. Google Voice is noticably sluggish. Even the mobile Google Reader site, which used to be instantaneous, lags.

One of the few apps that appears unaffected is GMail.

Trap! is still a bit slow, but nowhere near as horrible as under FRG01B.

2D Graphics Bug

On the positive side, the 2D graphics bug introduced in the 2.1 upgrade has been corrected. LagTest consistently shows 60fps with no sudden dips down to 20fps.


As mentioned previously, I have coined a new phrase to describe my experience with Flash on the Droid:

Craptastically fraktacular.

It’s awful. Really, really awful. It’s as though Adobe, Google, Verizon, Motorola, et al, rickrolled us:

Look, Flash on the Droid! It’s frakking awesome!

It’s definitely not awesome. It is frakked, however — indeed, it’s craptastically fraktacular!

Since the currently-available Flash 10 is still beta, I’ll reserve final judgment. However, in the interests of science I can report my experience:

I dare you tou play Falling Girl on a Droid.

Users with desktop browsers are now glued to their screen by this strange, incongruous game.  They can’t help but click it and move the girl around.  It’s one of the oldest, simplest games on the Internet.

Droid users see a girl falling slow as molasses in January at roughly 2FPS.

The simple control of click-and-hold doesn’t translate into press-and-hold on the handheld. There’s no way to interact with the game.

Even if you could, it’s so laggy as to be pointless. It’s possible that this is to some extent due to networking issues, but there’s also an unfortunate flaw in Adobe’s basic implementation of Flash:

Adobe essentially made a browser plug-in like the ones they make for desktops. The problem is that the Flash content I’ve seen so far simply wasn’t designed for a handheld device.

Unfortunately, heavily Flash-enabled sites that look amazing in a Web browser on a 15″ display tend to look terrible on a handheld. Text becomes illegible, and zooming in and out to alternate between seeing the content and being able to interact with it becomes painfully tedious.

Worse, as mentioned with Falling Girl, there is no intuitive control substitution. Flash works great when you have a mouse to click and hold, or to hover over content for more information. It doesn’t translate to a press-and-hold. I’ve no idea how to “hover” with my finger without also clicking.

After dealing with this craptastically fraktacular Flash on the Droid, I no longer have any interest in learning.

One of two things needs to happen with Flash-heavy sites:

Redesign the content to include a totally separate mobile interface, or stop using Flash.

All the Flash content sitting out there that’s been around as long as Falling Girl? It’s pretty much useless on a handheld. They’re going to have to completely re-think everything.

Flash videos are another matter entirely. They lag in general, but this may be due to underlying networking issues. I’ll forgo judgement until networking works again.

The problem with Flash videos is that the player is simply embedded into the Web site, the same as on a desktop — complete with tiny, miniaturized, impossible-to-manipulate controls.

The only way to deal with embedded Flash video on a handheld device is the thumbnail-and-player approach used by YouTube. Tap the thumbnail and the fullscreen player launches, with appropriate handheld controls.

As it stands, embedded Flash video is useless simply because the video controls become too tiny.

I’m not usually much of an Apple supporter (please, let’s not get started: it’s a topic for another day, and my thoughts on Apple are more complex than you think). However, if what I’ve experienced in the last few days with Flash 10b3, Steve Jobs may have a really, really good point.

We’ll see how it turns out, but unless the finally-released Flash 10 is dramatically different, it may pound some nails into Flash’s coffin.I don’t know how it’s going to work out, but it will be an interesting show to watch …


This proves to me that FRG01B’s networking stack was indeed buggy as a cockroach nest. It’s not clear, however, that FRG22 entirely fixes the problem.

As mentioned, I’ve installed some monitoring and networking tools to watch what’s happening under the hood a bit more closely. I’ve also now become conversant with ROM manipulation. A side-effect of this was root access to the Droid, which I’ve lacked since the 2.1 upgrade.

This has had some interesting benefits, not the least of which was wireless tethering. I am extremely impressed that the next time I see my daughters, I’ll be able to offer them wireless Internet for their laptops and handhelds. I plan to make the incredibly tedious drive from my ex-wife’s Chicagoland home to my Des Moines-area house a lot more pleasant by allowing them to be constantly connected to the Internet.

The tethering works, too — which is a bit of a puzzle, in fact. I had my Droid connected to the home router (20MB pipe). The Droid’s Internet connectivity is laggy through this pipe. However, when I tethered my laptop to the Droid, the laptop’s access speed was limited only by the wireless connections. It was by no means 20MB, but it was a workable multi-megabit connection.

Beyond the benefits of root access, ROM Manager makes the whole ROM replacement process so much simpler It’s highly probable that I’ll experiment with networking stacks by installing a variety of ROMs to see if networking is better under them.

I’ve flashed ROMs for other devices, but I’ve avoided it on the Droid so far. The device had so far outperformed all my expectations and I was in no hurry to be on the bleeding edge. However, having been forced to delve into it, I’ve become intrigued at the variety of images available.

I’m still experimenting, but as always I continue to be amazed at what the Droid can do.

Another Round With Doctors

I have diabetes (or, as Wilford Brimley insists that it be called, “die-uh-BETE-us”). It’s not bad, though I’ve had a couple of bad flare-ups in the last year. Enough so that when I went in to my GP a couple of weeks ago, she immediately flipped out.

I was having stomach problems — cramping that got pretty severe, nausea, all kinds of fun stuff. After some initial poking and prodding, she concluded that laxatives were in order.

Then she looked at my records. It turns out that they’re incomplete — which I told her. From her perspective, it looked as though I hadn’t had blood work for over a year, and when I’d had it last, my blood glucose was around 400. That’s bad. Around 100 is good.

I’ve been consistently flat right at 87 for months and told her so. After my most recent flare-up, I got the fear of Death put into me and really started watching my diet. I’ve also lost 40 pounds, not surprisingly. And some more hair, though I assume that’s unrelated.

Anyway, the interesting thing to me, as a sysadmin, was that I recognized the look that flashed in her eyes when she saw my records — followed by a flurry of logical but ultimately totally pointless tests.

I’ve seen that look before. Most sysadmins screw up from time to time. Remind me to tell you the time I pulled a company’s sole database server out from under the major application.  “The look,” roughly translated, means, “Oh, shit … I’ve screwed up big time. This guy hasn’t been checked for a year, his blood sugar’s been at dangerous levels for 12 months, and now he’s having permanent gastro-intestinal problems as a result! Shit, shit, shit, I’ve just frakked up big … !”

So I had tests. A couple of weeks worth, in fact. Missed more than a week of work because the pain and nausea were increasing. Last night, I very nearly went to the E.R. because my GP about had me convinced that my intestines were about ready to explode. It sure as hell felt like it.

Oh, one note on Magnesium Citrate: that crap is vile. I mean just utterly vile.  The interesting thing is that it’s flavored: lemon.  Sort of.  That’s what the label reads, anyway.

Anyway, in the last 24 hours, I’ve had two of those things roto-rooter their way through my system.  What struck me the first time was:  their marketing people considered this a “win”.  That is, this horrific, vomit-inducing, lemon-sugar concoction was considered the best flavor they could come up with.

Now, I used to work for a huge cookie manufacturer.  They had eight ovens a hundred yards long.  There was an entire research division of the company devoted to optimizing the taste of anything that came out of the factory and then coming up with a specific set of ingredients so that every single one of the millions of cookies pouring down the line every day tasted exactly the way they designed it.

No doubt the Magnesium Citrate people also have such a research division.  And this was the best they could come up with.  Wow.  That stuff must be really horrific if the current taste is the best they could do.

Today, I got ran the CT scanners and MRIs — this in addition to an X-rays earlier in the week and the one preceding.  Interminable periods of waiting, shuffled from one place to another, etc.  By the time I finally crawled back into bed, I was seriously considering getting a hunting knife and performing surgery on myself.

Now, I don’t mention this to garner pity:  it was a nasty couple of weeks, but life is like that sometimes.  I mention it because of my ultimate point:

There I was, about mid-afternoon, hoping to hear back from the GP about today’s tests soon.  Short of cancer, I’d’ve been thrilled with any positive results.  At least if there was a watermelon-sized benign tumor in my gut, they could perform surgery.

But no, all the tests were negative.  I’m healthy as a Mrs. O’Leary’s cow immediately before she was spooked.  The GP really had no clue.

On the one hand, this is good news, because it probably means there’s no long-term issues, diabetes-related or otherwise.  On the other hand, I’m about to go to the E.R. because I just can’t stand it any more.

At that point, the GP did something else I recognize:  she started spitballing.  In the IT world, this is what happens when you’ve done everything you know how to do, and then you just start looking around in general to see what there is to see.  Maybe this way you’ll stumble across some thread that will lead you in the right direction.

In this case, my GP’s ultimate trouble-shooting action was for me to take double the usual dosage of Prilosec.

Apparently Prilosec is some kind of damned near miracle cure if you have what it turns out I have:  a highly acidic stomach and possible ulcer.  Within four hours of taking two Prilosec tablets, I’ve become a new man.

In any case, the ultimate point is that during these madcap escapades, I’ve had something pointed out that I knew subconsciously never really put words to:

What the doctor does and what I do are two very similar things, process-wise.  We take an ailing system, look at what it’s doing that’s wrong, follow signs, signals, inter-process communication, and logs (pun intended).  We try this, we try that, and most of the time, if you’ve been around very long, you get to see the same kinds of things pretty repetitively.

But every once in a while, there comes along this one bitch of a case.  It won’t work, nothing you do helps, all the tests say everything is totally fine, and even the logs are pretty clean.  Well, as clean as logs ever get.

So you start just poking at random, seeing what little changes you can make and what effect you can attribute to that change.  Hopefully you hit one that’s somehow connected to the real problem.

And somehow, these bitch cases always seem to be somehow life or death — at least to the user.  You’ve seen ’em come and go, and somehow, despite all the whining, the world never ends.