Things to love (mostly) about your Android phone – part 1

It’s been less than a week since I’ve been playing with my Android phone (the G1) and to recap briefly, I purchased it already rooted (an absolute must for any gagdet lover and tinkerer). It’s not a trivial undertaking, but looks harder than it really is. Since getting it, I’ve unlocked my G1, performed a wipe (4X and counting), damaged my recovery image and learned how to repair said recovery image and tested a fair amount of free and paid apps for my phone. In this post, I’d like to talk about the singular issue of ROM updates.

First, here’s what stings about my transition to the Android phone/system

  1. I live in Microsoft Outlook. Slight exaggeration, but that’s how I keep track of activities and plan things. If you plug your Android phone to your Windows PC expecting ActiveSync to pop-up, you’ll be sorely disappointed. The Android system‘s calendaring properties are tied rather deeply to Google’s. So, I’ve been reduced to downloading and installing Google’s Calendar Sync Program and doing a 1-way sync from Microsoft Outlook to my Gmail Calendar. Then, when setting up my new Android phone, I added my Google account and my phone’s calendar automagically gets populated with items in my online Google calendar.
  2. If you go the Google Calendar Sync program route, be very aware that this program has been known to create duplicate and triplicate entries if you choose to do 2-way syncing. I learned this the hard way. After trial and error (read: 2 phone wipes), I settled on the following steps to get a “clean” sync of my Outlook calendar to Google (and my phone eventually) easily:
    • This tip will be of most use to people who live in Microsoft Outlook (like me). If you’ve been living and breathing in Google Calendar, you’ve got nothing to worry about. I’m not ready to give up my data to the “Cloud” without any assurances that I’ll be getting said data back without having to jump through too many hoops. I’ve got my Outlook contacts and calendar organized *just* how I like it and I don’t like to mess with a good thing. 😛
    • Download and install the Google Calendar Sync program and choose the 2-way sync. Backup/Export your Google Calendar to an external hard drive & a second location; If there are only a few entries, go ahead and delete them. This worked best for me when my Google Calendar was already empty. Be warned that even I don’t have the 2-way sync enabled (see a list of known problems with Google Calendar Sync) because as I said earlier, I get duplicate entries in my Microsoft Outlook calendar and then propagates to my Google Calendar. It’s a nightmare. Don’t even think about deleting your calendar entries on your phone because you’ll have to do it one painstaking click at a time.
    • Safest option for now would be to select the 1-way sync from your Outlook calendar to Google calendar. You avoid duplicate entry hell and you simply get to manually update your Microsoft Outlook Calendar with any entries you’re missing from Google Calendar (if you do this, make sure you delete the entries from Google Calendar because you’ll end up with duplicate entries).
    • If you decide to experiment for yourself, be prepared to wipe your phone when (not if) you experience the duplicate/triplicate entry thing because a wipe actually easier than manually deleting these new entries. Visit the Troubleshooting page for Google Calendar Sync.
    • As always, make full backups of your Microsoft Outlook calendar/contacts and do the same for your Google Calendar and Contacts.
  3. I don’t have a data plan. In my neck of the woods, what a data plan costs amounts to a half-a-month’s worth of rent. Not having a constant internet/data connection means I can’t take advantage of several cool applications like Google Maps turn-by-turn driving directions, Seesmic for Android, Barcode Scanner, Yelp, et cetera. These applications require internet connectivity and unless you have a MiFi on you all the time, you’re stuck with applications that can be used offline as well. Until I got an Android phone, I haven’t wished this badly that I had a data plan. Just an FYI.

With *that* out of the way, here are two things I worry about with custom ROMs are (in order of decreasing importance):

  1. maintenance of the ROM: With built-in carrier software, you’ll know updating is as easy as an OTA (over the air) update. These custom ROM are either created and maintained by a community or a person. Based on my experience with custom ROMs for my ATT Tilt, updating involves more than just downloading the ROM and there are several ways for the updating process to go wrong.
  2. performance of the ROM i.e. if my device is sluggish: The CyanogenMod ROM is pretty stable, but I’ve consistently had issues with the screen’s responsiveness to my touch. It is, however, the most popular ROM for Android devices, but I haven’t tested other ROMs for comparison.

I won’t even attempt to write a “How to Root your G1” article because I haven’t actually performed the rooting process. However, there’s nothing stopping me from writing about my tried methods for updating/flashing ROM to an already rooted device. 🙂 For updating your already-rooted device’s ROM, here are 2 vectors for doing just that:

Clockworkmod ROM Manager

Short and sweet: If your phone is rooted and you’re not quite a commandline guru is: Download the ClockworkMod ROM Manager app. Here’s why you should download and support the developer by paying $3.99 for this app. You can search for “Clockworkmod” in the Android Market app on your phone or scan the QR code for the Clockworkmod app on this site: You will need the free Barcode Scanner application to do this.

  • ClockworkMod ROM Manager has a simple user interface for managing, updating and backing up your current ROM. Granted CyanogenMod has an updater that’s downloadable via the Android market so if that’s all you care about, feel free to use this updater. However, this ROM manager is easier to understand.
  • the ClockworkMod ROM Manager app has an easy way for you to boot into Recovery mode if you need to wipe and start from scratch on your device. Granted, the other way i.e. pressing the “Home” key while pressing the “Power” button to turn on the device, shouldn’t be too hard for anyone to manage. In fact, it even offers an alternative to its own Clockworkmod Recovery image which is the popular Amon Ra Recovery image.
  • This ROM Manager offers a dead simple way to partition your microSD card so that you can install Android apps on it! The ability to install apps to your microSD card is a feature serious and casual Android users need. Other methods of partitioning your microSD card involved commandline-fu which I write about later on. An 8GB class 6 microSD card is strongly recommended for this purpose. I’ve been using a Transcend Class 6 microSD card for over a year. CyanogenMod v 5.0.8 includes a utility called Apps2SD which will detect if you have this specially partitioned microSD card and it will default to installing apps on your microSD card!

Amon Ra Recovery image

Short and sweet: If you want to be able to do more with your recovery image and can handle typing commands into a terminal-like application, I heartily recommend the Amon Ra Recovery image. If you’re ready to make the ‘upgrade’ from the Clockworkmod Recovery Image to the Amon Ra recovery image, you can flash the Amon Ra recovery image to your phone via the ClockworkMod ROM Manager. Otherwise, follow these instructions first on flashing a recovery image. If that doesn’t work, try these instructions. You won’t be able to update your ROMs via the ROM Manager, but doing it the Amon-Ra way isn’t so bad.

  • Amon Ra recovery image is free as in beer and speech. The ROM manager requires the $3.99 fee in order for the “check ROM updates” feature and a bunch of other features to be activated.
  • You can have finer control over the microSD partitioning process. With ClockworkMod ROM Manager, you’re limited to a maximum of 512mb and a maximum of 128mbs for the ext (it doesn’t say if it’s ext2, ext3 or ext4) and swap partitions on the microSD card, respectively. That’s sufficient for some, but I’ve got an 8GB class 6 microSD card so I gave my /ext partition 1gb ob space with a 96mb swap partition and upgraded my /ext2 partition to an /ext3 one. This was done via the Amon Ra recovery image. More than anything, I foresee myself using apps more than storing data on my phone so my setup works for me. For super users, check out AndroidAndMe on the subject of manually partitioning your microSD card. Fun. 🙂
  • Amon Ra has keyboard shortcuts that work and you can get into the console to repair and fix things your little heart desires! 🙂 Clockworkmod Recovery doesn’t have an option to get into the console that I found.


  • By rooting your device, your carrier already forsakes you (voided warranty). You run the risk of bricking your device. If your phone gets bricked/engulfed-in-flames/ or if you suffer rooters’ remorse (TM), that’s your painfully-fixable problem. Caveat emptor. You’ve been warned. 😛
  • When troubleshooting, visit’s Wiki is your best friend. Do not attempt any advanced tricks without double-checking with the Cyanogenmod Wiki.

Up next, some important apps I’ve found useful on my Android journey. Enjoy and comment away! 🙂

Unlocking the Tmobile G1 phone

TL;DR – Pay less than $20 to have an unlock code for your phone from!

So, I got an Android phone, specifically, the T-Mobile G1. Yes, it’s no longer officially supported by T-Mobile and second, I’m with AT & T! However, the person I purchased the device from had done the hardwork in rooting the G1 and flashing the CyanogenMod ROM v. 5 onto the G1. See this excellent XDA forum post on why you should root your G1. Due to some mixed signals, I was under the impression the phone was unlocked. Alas, I was to discover that a Rooted G1 does NOT an Unlocked G1 make. After I got the G1 phone, I giddily popped my ATT SIM and got this dialog box: “SIM network unlock PIN”.

The first thing I did was hit up Google, but unfortunately scummy sites were popping up too many times in the SERPs (search engine results pages) for me to find any useful answer or pointer to what was going on! I even called ATT Support several times and told them the specific error I was getting. The support personnel kept giving me the PUK and PUK2 codes which (in hindsight) expectedly didn’t work! The PUK codes are for:

  • You’ve instituted a PIN lock for your SIM to prevent unauthorized usage.
  • You’ve forgotten the PIN for your SIM and with only 3 tries to get it right, it doesn’t take long for you to get ‘locked’ out of your SIM/Device.
  • Enter the PUK (or PUK2) codes. PUK stands for PIN Unlock Key and if you’re an ATT customer, you can get it by going logging into your MyWireless account. Navigating to the “My Account” tab and selecting “My Services”. From that screen, you can select your device and there’ll be a link that says “Unblock SIM card”. Clicking that will open up a new window that displays your PUK code.

ATT instructions for entering PUK code

So I visited DuckDuckGo and was able to figure out that: i) my phone was, in fact, still locked to T-Mobile ii) there were no problems with my SIM card and iii) I needed to get an unlock code fast or I’d be stuck with a pretty brick. So, if you’ve purchased a secondhand G1 and you’re getting a “SIM network unlock PIN”, chances are highly in favor of the phone being ‘locked’ to the original cellphone provider. Of course, if I had purchased this phone direct from T-Mobile at full price, I could’ve called their customer service and gotten the codes for free. This was clearly not an option for me so it was on to the next best thing. 🙂

If you haven’t followed my cellphone history, I went from owning a Palm Treo 650 to a Nokia E71x to an ATT Tilt and now, the G1. The Android system is completely new to me while I knew there were more complicated ways of unlocking the G1 (a.k.a. HTC Dream) for free, I wanted to get over this really big obstacle quickly & without bricking my phone. I then decided to pay money to get my new phone unlocked. There are *several* sites that claim to be the best and guarantee all sorts of things. However, a big caveat with many of these sites (overkill in my opinion, but that’s why I’m writing this article to keep you informed) is that getting your money back isn’t a simple matter of “the unlock code didn’t work”. You actually have to prove that it didn’t work! For instance, I’ll pick on the site I went with: The choice was easy i.e. they had an average of 4 stars from over 400 reviews which isn’t anything to sneeze at.

As I try to do before purchasing most things, I checked out’s their terms of use and conditions. The actual document is hard to find and I only got the full document after I had started the process of payment. So for your convenience, I uploaded the full “Terms & Conditions” for to my Scribd account. They have a moneyback guarantee, but on reading further, I found a few things that could easily void that guarantee:

  1. The information provided on the submission form when ordering the service is 100% correct (agreed).
  2. The instructions provided with the service have been followed exactly as stipulated (agreed).
  3. The target mobile phone is not stolen or blacklisted (on the fence because I purchased the phone off Craigslist and I don’t believe my phone was stolen or blacklisted. It might help if they provided a way to get off such a blacklist in case my phone had been wrongly labelled).
  4. The target mobile phone is not already unlocked (agreed).
  5. The software of the target phone has never been altered, changed or tampered with in any way (agreed and I took a chance anyway on using their service on a rooted G1. Your mileage may vary and the sheer fact that I attempted to unlock a rooted G1 is grounds for rejection of any requests for my money back).
  6. The IMEI number of the target phone has never been altered, changed or tampered with in any way (agreed This particular item (IMEI number) appears to be the critical element of ensuring the unlocking codes work).
  7. The phone has never undergone an attempted unlocking with codes in the past (on the fence Does it matter if these previous unlocking attempts happened with their service?).
  8. Even if you meet all those conditions above, reserves the right to request evidence and by that, they mean, either mailing your device to them or providing video evidence of you following the instructions! I don’t begrudge them for taking such extreme measures, but I sure would like to know before the fact that I should’ve filmed myself following the instructions.
  9. For the record, items 1 – 7 were culled from from‘s Customer Guarantee page). The items in parentheses are my comments on the items. I also did film myself unlocking the phone, but I don’t think that video will see the light of day. Something to do with my state of dishabille, reflective screens and me handling the camera. 😛

That said, the proof of the pudding is in the eating and delivered on the primary purpose of their existence: providing valid unlock codes to hundreds of devices.

  • They take credit card fraud seriously. It wasn’t a simple matter of plugging in my credit card information and getting the codes. I had to verify my phone number and authenticate with a PIN that was provided. Only then did my order status change to “verified” and according to the email I received, they quoted 25 minutes to generate the code for my handset.
  • In reality, the entire process was less than 15 minutes to get the unlock codes. Their instructions for entering the unlock code are simple and very clear about the need for accuracy during your order. In fact, they offer you the chance to correct an order if you’ve realized almost instantly that you mistyped the IMEI number.
  • On the first try, the unlock code they issued for my G1 worked. Thus, I heartily recommend you use for the specific task of unlocking your G1!
  • As of 07/26/2010, the service costs $19.99 so it’s a small price to pay in the scheme of things. 🙂 If things go south, make sure you haven’t run afoul of their dealbreaking issues and that you filmed the unlocking procedure as you did it (which I did).

Long story short,

  1. Follow the instructions on to the letter and you might not need a refund.
  2. Read the tems & conditions and specifically, what hoops you have to jump through in case you need a refund.

Cheers and don’t forget to stay tuned to my blog by subscribing and following me on Twitter (@janetalkstech)! Up next, my Android adventures and my ATT Tilt is up for sale ($100 gets it, a 256mb microSD card, wall charger and a USB cord). Disclosure: affiliate links are sprinkled. Support my site by clicking through. 🙂

Navigating Habari, the content management system – Part 1

It’s been over eight months since I migrated my blog (Jane Talks Tech!) from WordPress to Habari. It wasn’t done lightly and I did my due diligence by creating a test installation of Habari, making sure the importer worked, ironing out issues (credit entirely due to the devs in the Habari IRC channel) and finally pulling the trigger. That said, my experience with Habari has been a rollercoaster, but I’m still hanging on. 😛 I feel connected to this fledgling blogging system and believe it has a strong chance of surviving in the crowded content management space. Here are my thoughts on things that could make Habari even more of a contender today and ways you can help make it happen. So here goes:

There are a lot of Habari plugins listed in the official Habari repository. However, beating a dead horse, a small amount don’t work for the stable release version of Habari (i.e. v 0.6.4). Those that work are great at what they do and serves to tease me about the possibilities with Habari! I’m currently working on my bare-minimum and recommended list of Habari plugins. The list below picks on select plugins that would be pretty cool to have working in Habari v. 0.6.4:

  1. Polls: I found out about this plugin for creating polls, but it works with the bleeding edge or trunk version of Habari. According to a tweet by one of the Habari developers, version 0.7 of Habari might be hitting stores sometime in August. So until then, I’m hoping the community can help to polish some of the plugins.
  2. Video Embeds: Currently, besides grabbing the embed code from whatever video-sharing site you are on, there’s no relatively easy (as compared to WordPress) way to share videos. I’m thinking of a plugin that when activated, will allow you to plug in the unique ID number of the video and have it be recognized, etc. Not a biggie, but it removes yet another hurdle to the content-creation aspect of things. 🙂
  3. Photo Sharing support: When I started with Habari, I was a SmugMug user and I made good use of the fantastic SmugMug (#shamelessplug: coupon DGwxx0rcYaTWQ) silo plugin by Colin. Then, I switched to Zenfolio and wouldn’t you know it, no plugin for Zenfolio (#shamelessplug: Referral Code: WRC-655-RUY). Again, Zenfolio has code that can be embedded into blog posts as well as direct links, but man, I’d love to have a Zenfolio silo for Habari. 🙂 There are several photosharing sites and it’d be unfair to ask that the developers create site-specific plugins for the dozens of sites out there! This is where the community steps in and I’m hoping the next Habari developer on board has a Zenfolio website.
  4. Plugin/Theme discovery and updates: The official place to get plugins & themes from Habari is and One thing that would be nice is for there to be demo wherein people would preview themes without downloading, uploading and activating on a live blog or for the more technically inclined, a test blog. With the Habari plugin, I’d like to see some way to sort the plugins. Off the top of my head, perhaps it would be good to have folders corresponding to 0.x habari releases and then having *only* 0.x compatible plugins loaded in that directory. Plugin update notification is another pain, but so far, I’ve simply just check the plugin distribution site to see if there are changes. Perhaps an email subscription or a way to monitor changes to plugins would be a way of notifying users that plugins have been updated. Documentation with regards to plugin installation is an area that sorely needs help. A select few of the activated plugins on my blog use the neat ‘Help’ icon and some plugins lack readme files. Not a big deal because I’m a big fan of users educating themselves, doing due diligence by reading the manuals (in the case, the plugin.php files can be quite helpful) and asking for help before giving up. 🙂
    Habari Help icon

    One way I’ve been ‘trying’ to help is letting the devs know my problem(s) via Trac and writing on my blog about problems I’ve face and my workarounds or tweaks. Any CMS user will understand that with plugins and themes, there’s the almost-obligatory post-activation code and theme-tweaking (gravatar styling for comments, adding edit links to posts, adding code to certain parts of the themes as part of plugin installation, etc). Fact of life, but clearly documenting what needs to go where will go a long in easing the pain.

That said, I always find new Habari-powered blogs daily and I also check the Habari Plugins repository frequently. You can get an alternate listing of Available Habari Plugins and Available Habari Themes on the Habari Wiki. I also just found about an unofficial community theme repository called the Ziada Project which pales in comparison to the official repository so far.

Minor gripe: I’ve so many different Habari themes in the wild and speaking as a complete user & parasite, I selfishly wish that those coders who’ve created new/interesting themes should please consider releasing some themes. I’ll leave your link(s) in the footer/sidebar/wherever. 😛 Heck if I can’t get excellent themes for free, I won’t be opposed to paying for one! As I tweeted earlier, I can’t wait for the rise of premium themes in Habari. 🙂

So far, I’m still hooked on the Habari content management system for technical reasons I know nothing about and the fact that Habari comes with less cruft. The Habari cabal is aware of most of the shortcomings and from being a lurker on the habari-dev mailing list, they’re listening to feedback. With the demands of IRL work and personal stuff, they’ll get it done. 🙂 In fact, Trac is where much of the behind-the-scenes magic keeps happening as you’ll see stuff being fixed/updated.

For new users of Habari, if you run into trouble of *any* kind, the absolute best thing you can do is visit the Habari IRC channel.

Here’s how:

  1. Download and install an IRC client like mIRC or XChat or TurboIRC or .. My point is: there are several free options for getting an IRC client up & running.
  2. Once you have installed your IRC client, connect to the Freenode network which should be one of several options on whatever Chat/IRC client you have. Or you can click this link: irc:// and it should allow you to open the Freenode network in your default IRC client.
  3. Once you have connected to the Freenode IRC network, connect to the #Habari channel by typing #Habari when prompted to connect to a channel.
  4. Once in the Habari IRC channel, ask your question and make sure you are able to make on-the-fly changes to your blog and provide feedback to the developers.
  5. OR, did you know that there’s a Live Help for Habari plugin? Yes, you can pretty much forget everything I wrote in the first 4 bullet points and simply install the LiveHelp plugin. It connects you directly to the Habari IRC channel from the comfort of your Habari blog administration panel! I love it and it’s frankly easier to do that installing and all the fun stuff. 😛
  6. OR, if you don’t care to be logged into your blog’s administrative interface to use IRC, simply visit and join the channel #habari.

For users who have issues that could be considered bugs or if not fixable via IRC, you can always file a ticket in the Habari Trac system.

Here are some basic tips about using the Trac system:

  1. For issues that are NOT because of a plugin or theme being broken or incompatible, visit and create an account. It is extremely helpful if you can copy & paste the error codes you’ve seen into a text file and then upload that file as part of your bug filing. I’m also a fan of taking screenshots of the relevant details and uploading those as well. The point is that any helpful information that will lead to the solving of that bug is highly appreciated.
  2. For issues that ARE because of a plugin or theme being broken on incompatible, visit and as you can see, I am rather whiny. 🙂
  3. Whatever you do, be honest about the severity i.e. if it’s a wishlist for a plugin or an ‘extra’, don’t mark it as a showstopping bug or as major or urgent. Remember the golden rule. 🙂

For users happily coexisting with Habari and want to help out:

  1. Spread the word about Habari via tweets, articles, blog posts and posts on your social networks. I haven’t been too shy about contacting people as asking/letting them know about the new kid on the block. 🙂
  2. Contribute to Habari via creating plugins or themes for Habari and/or contributing to the codebase or helping with documentation.
  3. Notify the developers of security issues or file tickets about bugs.
  4. Join a Habari working group to dedicate yourself to any issues you’re passionate about.
  5. Join the Habari forums, Habari Users mailing list and/or the Habari Developers mailing list to be of assistance to newbies like me and developers new to Habari.

Either way, I’m eager for v. 0.7 of Habari.

It is thisclose to release and I’m excited to be a part of this burgeoning community even if my most significant contribution was a plugin request. 😀 For a list of blogs running Habari, visit I’m aware that because Habari’s still growing, it might not be for everyone. Here’s a link that describes how to migrate your content back to WordPress if that’s where you came from. Earlier this week, I did a test migration back to WordPress 3.0 with this same script and it worked. My posts, comments, user(s) and tags and pages were properly imported into the new WordPress installation, but my categories were gone i.e. all posts were listed as Uncategorized. I don’t think this is a dealbreaker. I’d be more worried if my tags weren’t imported because tags are another way of keeping things ‘categorized’ if you will. Just a FYI. 🙂

Tip for attempting a test migration from Habari to WordPress: use a new WordPress install with a new MySQL database and new username. It’s ridiculously easy to do on Dreamhost so you have no excuse not to. I just like things clearcut and that’s my only reasoning. 🙂