Blog

A Fresh 2012

Books to Read

  • A Feast for Crows (just started)
  • A Dance with Dragons
  • 1Q84

Movies to Watch

Concerts to Attend

  • Capitol Hill Block Party
  • Bumbershoot

Flashing a new Android ROM is painless

Maybe I should phrase that as “can be painless”. Using Titanium Backup on Android makes flashing to a new ROM a breeze. I figured I’d walk people through the steps of flashing a ROM that requires wiping all of your existing data. Moving from different types of ROMs usually requires wiping data because of incompatibilities. The new ROM might not understand how the old ROM stored data in a certain database, yadda yadda. If you don’t wipe, you’ll often get apps that force close (FC) as they encounter data in format they just don’t understand. Here’s a step-by-step process of moving to a new ROM and restoring all of your data:

  1. Make sure you have root access on your current build. Almost every single stock build can be rooted without having to wipe your data. There are a few exceptions, the Galaxy Nexus being one of them. One of the steps to getting root on the Gnex involves unlocking the bootloader. This is directly supported by Google, but the process of unlocking the bootloader will completely wipe the device. Google does this for security reasons.
  2. Back up your apps and system data using Titanium Backup PRO. Sure, you can install the free version of Titanium Backup but then you’d have to restore your apps one-by-one, manually. Spend the roughly $7 on the PRO version, for your sanity. Once installed, run TB and do a batch backup: Menu > Batch > tap on “Backup all user apps + system data”. This will take some time, roughly 10 minutes for every 50 apps you have installed.
  3. Install ROM Manager. This is the easiest way to flash a custom recovery to your phone. In a nutshell, recovery is a separate bootable OS for your phone. ROM Manager lets you install Clockwork Mod (CWM) recovery, a powerful system for maintaining your device. From within ROM Manager, you can flash CWM and then perform a full device backup. If you ever flash a ROM that isn’t 100% fool-proof, I’d recommend a full backup first.
  4. Download the ROM of your choice. XDA is the most comprehensive source for ROMs though the quality of discussion on RootzWiki is exponentially higher. Most ROM posts will explain how to install the ROM; there might be a few additional steps you’ll need to perform based on the ROM you choose. Just copy the ROM zip file to your SD or internal storage of your device.
  5. Wipe your data and flash the new ROM. From within ROM Manager, tap “Reboot into Recovery”. Wait for the system to boot into a text-centric UI. On most phones, you navigate up and down using the volume buttons and choose a list item using the power button. The touch screen does not function in CWM. The first step is to wipe your data: “wipe data/factory reset”. Once this is complete, navigate to “install zip from sdcard” > “choose zip from sdcard” and then find the ROM zip file you downloaded and copied over earlier. The flash may take a few minutes. Once complete, navigate to the top level of the UI until you see “reboot system now”. The first boot will take quite a bit longer than usual.
  6. Enjoy your new ROM! Wait, what about all my data? You jerk!
  7. Log in to your Google account. This will restore all of the contacts stored with Google, your email from Gmail, and any calendar entries from Google Calendar. It _might_ restore some of your apps, but that process is extremely flaky and unreliable. I personally use ridiculously strong passwords that I can never remember so I use the password vault Keepass. Before I log in to my Google account, I connect the phone to my computer and copy over my Keepass file. From the device, I then download KeepassDroid. Now I have access to all my passwords before even getting Market access.
  8. Reboot. For some reason, custom ROMs like to be rebooted after every major event. Logging in to your Google account is one of those events. As soon as the device says you are successfully logged in, reboot.
  9. Install Titanium Backup. Open the Market and after accepting the ToS, don’t worry about installing any from My Apps other than Titanium Backup. Titanium Backup will restore all of your apps in a way that the Market understands. To your device, all of your apps will seem like they were installed from the Market (if that app is available on the Market). This means the apps will get updates and everything like normal.
  10. Restore your user apps. From within TB: Menu > Batch > run “Restore missing apps”. Do not restore your system data! Remember how I said custom ROMs might not understand some system data so we did a data wipe? If you restore the system data, you’ll get this issue.
  11. Reboot. Major event, reboot.
  12. Backup your new ROM. The device should have all of your apps restored and should be running smoothly. You’ll still be missing a few things like your launcher setup, your wifi settings and a few other system items. Before we try to selectively recover that data, use ROM Manager to create another full backup. You can use this backup incase apps start FCing after you restore some system data.
  13. Restore some system data. We won’t be using batch mode in TB here, we only want to restore a few bits of data. If you want your wifi settings, look for “Wi-Fi Access Points”. Launcher shortcuts, look for “[Desktop]” followed by some other characters. If you used a custom launcher like LauncherPro, your shortcuts should have already been restored. TB cannot backup widgets so any widgets will have to be placed manually. Other keywords to look for include [BOOKMARKS], [ALARMS], [PLAYLISTS], [SMS/MMS PREFS], [VOICEMAIL], [SMS/MMS/APN], [WALLPAPER/SETTINGS], [SETTINGS/BLUETOOTH] and [USER DICT]. If any of these backups offer the ability to restore and app and data, only restore the data.
  14. Reboot. Major event, reboot.
  15. [OPTIONAL] Re-authorize other Google apps.  Many Google applications (Voice, Reader, et cetera) don’t require you to enter your username and password, they can simply add permission requests to your Google accounts on device. After you restore data for those apps, you’ll need to launch them and accept the permissions request to use the apps.
  16. Enjoy your new ROM! For real, this time.

Almost Defeated by Brake Pads

If the instructions say “Put on the shim then the squealer”, make sure you’re not confusing the shim and the clip. If the instructions say “Remove the 12mm bolts nearest to the axle”, they are actually 14mm. If the instructions say “installation is the opposite of removal”, you best have a video of exactly how you removed everything.

Trying to swap pads and rotors on the Miata shouldn’t have been this difficult. The biggest issue was getting the pad (and clips) back into the caliper frame. I was confused as the instructions say you might need to move the shims and squealer from the old pads to the new pads. The shim is thin piece of metal that attaches to the back of the pad. My new pads had those, but did not come with a new squealer. The clips that hold the pads into the frame came out with the pads, so I confused those clips with the shims. The instructions had me trying to install the clip and pad as a single unit into the frame. My first good idea as to put the clips into the frame first then insert the pads.

Even with the clips pre-installed, I was getting the shim caught on the frame when trying to install the pad. I tried repeatedly until I realized the shim was getting caught on the inner side of both the top and bottom of the pad. Only then did I realize the pads were supposed to be inserted at a slight angle first (sort of like a memory module in a computer) and then snapped into place. That took another 20 minutes to figure out. Go me. Two hours later, one rotor and set of pads replaced, only three more sets to go!

iOS can take the top smartphone spot again

I’m starting to feel that the only reason people choose Android is because of a few small but significant problems with the iOS, the iPhone and Apple.

To the uninformed first-time smartphone purchaser, the iPhone 4 is the clear choice. Apple marketing is emotionally-engaging, the industrial design is top-notch, the device offers hardware that is still unrivaled (retina display), the base OS offers all of the features you would expect and the application quality and availability is astounding. Apple offers all of this at a subsidized price that set the bar. I remember when Windows Mobile devices were $299 or more on contract. If the iPhone 4 is $199, a device must offer an extremely compelling experience to be priced higher.

If the iPhone 4 is such a fantastic product, why is Android selling so well? Android is a very sufficient product and the only smartphone platform that comes close to the quality and breadth that iOS offers. If Android is only second best, is it selling well because of what Android does better or because of what Apple fails at? Both.

The most important difference is that Android offers multiple form factors. Apple offers a 3.5″ screen while Android offers 2.55″, 2.8″, 3.0″, 3.1″, 3.2″, 3.4″, 3.5″, 3.6″, 3.7″, 4.0″, 4.1″, 4.2″ and 4.3″ screens. Apple offers a basic touchscreen form while Android offers touchscreen, slide-out landscape keyboard, portrait keyboard, dual screens and more. If you would have picked a 3.5″ touchscreen device anyway, this is not an advantage for Android.

While it may not be a form factor issue, the fact that Android is available on every major carrier helps Android sales and exposure. If the Apple was available on the four big US carriers from Day 1, it’s possible that T-Mobile and Verizon wouldn’t have been major supporters of Android. Without the $90M Droid launch ad campaign, Android would not have the market share it does today.

While iOS is a fantastic product, Android offers a few key experiences that are simply better. Free turn-by-turn navigation as a sub-product of Google Maps is a tremendous advantage. If you are a Gmail user, the dedicated Gmail app on Android is more efficient than using the Mail app on iOS. If you view Flash sites…. haha, just kidding, Flash support on Android is a detriment to the platform. Is that it? Maps and Gmail are the only experiences that are better on Android than iOS? Disappointing.

Apple could quickly fix these few issues. Offer a few more form factors, beef up Maps and offer a native Gmail client. Done. Unlike other articles, I don’t feel that it would be a detriment to the iOS platform to offer extra form factors. The iPhone and iPad already support external keyboards; developers can design applications with a keyboard in mind already. Sure, Apple would have to be smart considering how many freaking accessories exist for the current line of products, but that’s a surmountable issue. Apple has bigger problems than what experiences Android does better.

Apple does a few things that end up infuriating users. Some people *hate* iTunes, some people *hate* the lack of customization and some people *hate* how iOS handles notifications. Boom, Apple fixed notifications with iOS 5 by straight-up copying Android. One problem down, two problems remain.

iTunes evolved from a WinAMP competitor that would only play music to an app that will play music, stream internet radio, play videos, create intelligent playlists, offer a store that provides music/movies/TV shows/books/applications, set up, sync and backup your device, trim ringtones, print jewel case inserts and more. The application is a resource hog, is unstable, is poorly organized and has lots of negative baggage. Android does no better here as Google does not provide unified desktop syncing app. You get to use a smattering of websites for most of your content (Gmail, contacts, Picasa photos), an official app for music syncing and nothing for other media types. With so much content already in the cloud and more coming (see the recent Market update that adds books and movies), maybe Android doesn’t need a desktop app at all. The iPhone, at least until iOS 5 is official, requires iTunes from the very beginning. 268,000 hits for “I hate iTunes” on Google is saying something.

Until the fourth version of iOS, you couldn’t set a homescreen wallpaper. “Any customer can have a wallpaper any color that he wants so long as it is black.” Apple is known for making strong decisions for the user but not allowing a wallpaper on the homescreen is very limiting. Before iOS 4, the only customization allowed was the organization of shortcuts on the homescreen, your lockscreen wallpaper and your ringtone. On any Android phone, you can set a wallpaper, set a live wallpaper, customize shortcuts and widgets, set your ringtone independently from your text message tone from your email tone et cetera, replace the entire launcher (homescreen and app drawer), set custom icons for all my apps at once or individually, change the startup and shutdown animations and more. None of those customizations require root access to the device. Considering how many people customize their iPhones using cases, gel skins and the like, it must be safe to say that people enjoy customization. The lack of deep customization may drive people away from the iPhone.

Apple can fix iTunes and the customization issues. Let’s tackle customization first. No would suggest that iOS 5+ should offer complete customization of all visual elements. The last thing Apple needs is for users to make their homescreen into a mobile MySpace. Jailbroken phones have access to theming engines like WinterBoard. Apple could provide similar theming functionality and offer new themes in the App Store. Intrepid tinkerers could create their own themes and sideload them, allowing for that class of user to go all-out.

Fixing iTunes may require breaking the monolithic application into several modules. There should at least be a division between the media management portion, the device management portion and the content acquisition portion. Sure, there is seemingly overlap when the user is configuring what media to sync to the device, but the division is still clear. iTunes becomes the media player, “iConnect” for syncing and management of your iPhone, iPad or iPod and “iTunes Store” for purchasing of all media content. If you pull iOS applications into the existing Mac App Store and rename it “App Store”, that’s your one stop shop for all applications. While these are all viable standalone applications, they should act as plug-in modules for each other. If you’ve already installed iTunes and want to purchase new content, clicking on a “Store” button will quickly download and install the store module. If you only use the application for playing content, you have no need for the complexity the full application offers. Split, simplify and stabilize.

Finally, some consumers are put off by the “cult of Apple”. These users were possibly burned by an Apple product in the past, don’t like to blindly follow trends or specifically want to stay away from the market leader. They are the types that will never use an Apple product, not even if the iPhone was the only smartphone available. Ignore those people as they are ignorant. If Android was the clear leader, they might find an excuse to avoid Android as well. You simply cannot win.

I love the competition we’ve seen in the mobile space since the iPhone first hit the market. I want that competition to continue as every smartphone user gets to benefit. I simply feel that iOS is closer to cornering the market than Android is catching up to iOS.

That can be my next tweet

http://yes.thatcan.be/my/next/tweet/

Once you get past the eye-searing design, this little tweetMangler can be pretty fun. It takes all of your existing tweets and then tries to make new ones based on what you’ve said previously. Some actually sound like English but it’s rare:

Subtle, real subtle. I prefer WhiskyPowerâ„¢. Which one?

Slightly ironic that bike. RAWRR, Danger smash! 50 gallons of Nook app get it a Netflix for multiple.

It’s rough around the term interwiki transclusion? It would have to get me next time.

Where? The Gods feat. Biz Markie by Bad Religion.

Boom! Every day but calls them Mexi-fries”.

Windows Phone, eh?

I love minimalism but PLEASE use a bit too noisy.

We’re sorry—there was a terrible idea. Anyone running CM7 on top of drinking all non-work functions.

I know that’s closing, I’m pretty today.

Essential Android Applications

Someone recently purchased an Android phone and asked what were some of the apps they should download. I started to list a couple off but decided I better write all this down. My list is a little nuts.

Launcher and widgets
Launcher Pro Plus – Fast, extremely customizable Launcher replacement. The pro version offers widget resizing, scrolling widgets and more.
Folder Organizer – Creates groups of applications, contacts or shortcuts. I use an extremely minimal homescreen that uses two widgets (showing date, time, weather and battery) and five shortcuts. I use a swipe-up gesture on those to reveal a folder of additional shortcuts. For the love of jebus, make sure you go into Preferences and disable the “Notify on new apps”.
Circle Battery Widget – The previously mentioned battery widget, customizable and clean.
gTabSiMiClock – The widget I use to show date, time and weather, another minimalist design.

Communication and internets
Awful – For reading the SA forums.
Baconreader – For reading reddit.
Google Reader – I’m reading RSS feeds a couple hours a day and this is still the best app for reading them on the go. It has offline sync support but with zero options. It’ll sync your “most read” feeds every hour. That works in a pinch if you don’t have internet access for a bit.
Plume – The only Twitter client that supports the ability to do background updates but doesn’t fire a notification when new tweets are loaded. My Twitter timeline has about a thousand new tweets each day, I know that when a Twitter app syncs, it’s going to find new tweets. I want my timeline to be updated at all times, I definitely don’t need to be told there are new tweets. The rest of the interface is really usable, though I prefer the design of Twicca.

Utilities
adbWireless – No need to carry around a USB cable, this allows you to debug your phone from anywhere.
AK Notepad – Simple notes app.
Dropbox – If you use Dropbox, this is a must. The app is simple as it basically just lets you upload or download a single file at a time.
KeePassDroid – In conjunction with Dropbox, I always have my latest password list no matter where I am.
OneBusAway – This is Seattle-specific, but this is a fantastic app for finding and tracking buses.
SwiftKey – I used to love Swype dearly, but the number of incorrect word suggestions has simply become overwhelming. SwiftKey is slower but more accurate and thus less frustrating.
Titanium Backup – If you are rooted, you must install this application. Other than the obvious ability to completely backup and restore your system, it lets you keep multiple backups of files and more.

Shopping
CraigsNotifica – Let’s you set up various searches and it’ll notify you when new items are posted to CL.
eBay – This app is pretty terrible, but I haven’t found a better app for repeated eBay searches.

Microsoft is always behind, never behind

Pundits are complaining that Microsoft’s tablet OS isn’t coming until fall 2012.  There has been a lot of backlash about MS being late to many games (tablets, smartphones, etc). 

Microsoft is never late to the game.  Microsoft’s Tablet PC was first released ten years ago.  Their first smartphone was in 2002.  Microsoft is never late.

…they just need someone else to show them the right way.  Both Tablet PC and Smartphone 2002 were hampered by the hardware: resistive touch screens with a stylus for the tablet and cramped screens with a d-pad and softkeys for the phone.  Fantastically, the solution for both was the large, capacitive touchscreen.  Unfortunately, Apple pioneered both, making Microsoft look like both the laggard and the copycat.

Microsoft had a decent chunk of the smartphone market with Windows Mobile and most of the tablet market with Tablet PC.  Both were niche markets, in comparison to today, and eroded mostly because the solutions didn’t meet consumer needs.  Apple (and others) have a huge head start in these markets and Microsoft is having trouble catching up.  WP7 is a great OS but it would have been fantastic if iOS didn’t exist.  Unfortunately, without the ideas put forth by iOS, WP7 wouldn’t exist.  I’m worried the next MS tablet solution will suffer the same fate.

Based on the rumors, the new tablet UI is tile-based, just like WP7.  Now MS is copying from two sources, Apple and themselves.

Another iPhone app UI by Jeremiah Shaw

The Shot

The Original Layout

I had to make some assumptions as to the purpose of this screen.  I’m assuming the user clicked on one of their tasks and this is the task update screen.   The previous Shot on Dribbble shows tips and encouragements, so I’m assuming that’s what “ask for help” is all about.  

The slider is gorgeous, but is it adjusting the timeframe (“now” versus “later”) or the completion percentage of the task?   Is the checkbox for marking the task as complete?

I’ll do the layout

The header was a bit cluttered with an assortment of actions.  If this is truly a task update screen, let’s make it a normal Cancel/Save header.  Of course, keep the custom button treatment.

We can keep the now/later indicator and the slider together.    The slider is so beautiful, make it bigger!    If that checkbox really is a “complete” control, let’s pull that out.   The user should be excited to complete a task, so make it a big beautiful button that has a clear call-to-action.   Additionally, have a help call-to-action.

The text at the bottom of the Shot was just helper text, right?   If so, we can still tuck that at the bottom of the screen.