Getting Cozy with Android

July 14th, 2009

Having been using a T-Mobile G1 “with google” for quite some time now, but it wasn’t until recently that I managed to actually make myself feel at home with the device.

The original wrap of Android that comes installed on the “with google” branded phones is pretty spartan, and only integrates Google’s apps.  This is understandable, of course, but I use flickr for photosharing and like to have access to facebook and twitter, too, and if they can be integrated directly into some of the other apps on the phone (the camera, for instance) it’d make my life simpler.  I like simpler.

Of course I’ve rooted my phone.  And I’ve played with the leaked HTC Hero ROM.  And it does everything I want, only it does it very, very slowly…so over several iterations of testing optimized Hero ROMs and flashing back to Cyanogen’s optimized Google image, I finally started narrowing down what it takes to achieve a happy medium.

I start with the latest-greatest (which isn’t always the absolute latest) build of JACHero (currently 2.63).  I install Open Home (I picked up the paid version – you should too) with the HTC Hero theme, the Glasklart icon pack, and Lock2 (haven’t paid yet, but it’s looking like I will).  I obliterate every last HTC widget from /system/app and follow that up with a good cleaning of /data/data, I set a security gesture, and remove the HTC lock screen.  I tell Lock2 not to disable the system lock screen, thus retaining my security gesture.  Clean off Quickoffice (seriously, will I ever use that? On a phone? Doubtful), make sure there’s no entries in /data/dalvik-cache for anything in /system/app or /data/app that has a compiled odex available.

Sync.

Reboot.

It’s all the bits of HTC Hero I want (minus the twitter widget, which makes me sad) — camera, People, Albums…and none of the lag and slow that I don’t.  Granted loading and switching out of some of the more memory-intensive HTC apps can still be a bit laggy, but that’s to be expected.  And it’s nothing like it was under Rosie / TouchFLO.

Now, the reason for using Lock2 is because once you remove the custom HTC lock screen app, whatever was open on your phone is clearly visible behind the system lockscreen.  If you set your phone down while reading email to attend to some other business, that email will be visible to anyone who wakes up the phone — displayed clearly right beneath the pattern entry field.  By running Lock2 when the phone locks itself, the only thing prying eyes will see under the security screen is the Lock2 interface.  Best of both worlds, though there’s an annoying extra gesture in the mix now…

The Hero build still has some issues, mind you – the LEDs don’t work, the camera button is useless, I still seem to miss an occasional text message, and I don’t know that bluetooth works yet, but it’s fast enough to be extremely usable and still give me the apps and integration I want, so I think I’ll stick with it.  BT is a non-issue for me, and other than the dropping SMS issue everything else is just minor annoyance.

The Language of URLs

November 18th, 2008

So, here’s a thought that occured rather spontaneously this afternoon.  What if URLs had a codified set of rules, akin to linguistic grammar?  Right now there is a minimal required form, that of protocol://host/<arbitrary-and-optional-stuff>, which is perfectly reasonable in a limited fashion.  What I’m suggesting is that <arbitrary-and-optional-stuff> have a set of rules as well.

Read the rest of this entry »

Personal Development

October 8th, 2008

Muddling through the interwebs, as I do every day, I came across a few interesting thoughts on personal development, “Business-2.0,” and blog categorization.

Starting with the last element, is the addition of a “Thoughts” category.  A good place to drop half-formed ideas, random thoughts, and things that just don’t fit elsewhere yet deserve better than ‘Uncategorized.’  I guess this post is one of those “Thoughts.”

Read the rest of this entry »

The Switch Case

October 3rd, 2008

While working on some code recently, I noticed a preponderance — neigh, an outright overabundance — of swith/case logic blocks to control content.  What’s worse is that the input variable to the switch block happened to be the value of a specific hash key, which got me to thinking — what is the purpose of a switch/case block, after all?

Read the rest of this entry »

More on Code as Data as Code

June 5th, 2008

As an addendum to yesterday’s little writeup on data-driven design, here’s another little (perl) trick I’m particularly fond of, that relies on storing perl code as a hash element. The cool thing about this approach is that you can actually have a configuration file written in, say, XML, that can then reference procedures which are actually defined in the configuration along with the rest of the parameters — allowing you to abstract it away from the core application 100%.

Read the rest of this entry »