Published 2016-10-22

I recently bought a new Google Nexus phone, and switched my cellular service to Google Project Fi. This service does not work with Google For Domains accounts, so I had to set it up with my ancient and neglected plain ol' GMail account. This presented an interesting opportunity, and some interesting challenges.

This was a blank phone, devoid of apps or content I'd accumulated over the years as an Android user. I could add my Google For Domains account to the phone to get access to all of that, but the question was: why? A great many of the apps I'd installed were rarely used. Why bring all that cruft onto a brand new device?

I've been contemplating how to leave Google for a couple of years. I dislike the fact that all of Google's services are funded by advertising, and by building up deep knowledge of me and my personal habits to feed to advertisers. The singular account that is used throughout all of Google's services certainly makes it easy for me to consistently enjoy those services; but it makes it really hard to elect to use different providers for different services.

(Yes, I am acutely aware of the irony of buying a Google branded phone and using a Google branded cellular service, while also trying to minimize my use of Google solutions.)

I've stopped using Chrome, in favor of Firefox. I set the default search engine to DuckDuckGo. I use an ad blocker and Privacy Badger to make a modest effort at minimizing how much I am tracked.

I've been looking at FastMail as an alternative to Google Mail, Calendar, and Contacts. It looks perfectly serviceable for my tasks, and by paying a modest annual fee I can clearly speak with my wallet. If FastMail introduces changes I dislike, I can stop paying them and instead pay someone else. But I'm not the only user of email in the domain, and so any migration needs to consider those people's needs as well.

In the short term, I did add my Google For Domains account to my new phone. It caused me a surprising amount of friction, as I had to enable features for that account and disable those same features for my GMail account. I had to ensure I was using the right account for each service. No single configuration was taxing, but over time it grew to be very annoying, given the number of apps and services I had installed.

Two weeks ago I made the switch to FastMail and removed my Google for Domains account from my phone. It was surprisingly easy. My sister, the other primary user of an email address, was able to import all of her old mail, calendar items, and contacts with only minimal guidance from me. I strive for Inbox Zero, so I didn't have any email to migrate. It was a trivial matter to export my calendars and contacts and to import those into FastMail. The DNS MX records were updated, and everything has been fine since!

The timing for switching my email has been convenient, as personally identifiable web tracking gets more and more commonplace. At least now Google can't parse my inbox for how to advertise to me. Not that I was likely to see many of those ads, anyway.

The FastMail Android app is perfectly serviceable, but does not directly integrate with the Android calendar or contacts applications. After some brief searching, I found DAVdroid. This has been a well behaved sync solution, and I'm happy to recommend it. I'm also to happy to donate money to this project.

DAVdroid also turned me on to F-Droid, an alternate repository of free and open source Android applications. It's a little clunky, but it allows me to install a great number of interesting and useful Android applications without going through the Google Play Store. DAVdroid, Pinboard, Simpletask Cloudless, and a handful of other apps have all made their way to my phone through F-Droid.

I had tried both AndStatus and Twidere as alternate Twitter clients, but I found both to be lacking. I did find the WebApps Sandbox, though, which allows me to use the Twitter mobile client in an easy way. I'm still on the fence as to whether I want to even keep using Twitter; but that's a post for another day.

The new phone was an opportunity to limit my Google footprint. My GMail account could be used for Google services that are strictly necessary, and I could start using other services from other providers using whatever account I chose. It's been an interesting exercise to identify functionality that I desire, and find solutions in F-Droid.

Another interesting benefit of all of this effort has been for my 2012 Nexus 7" tablet. I had been regularly applying system updates, but with each new version of Android the tablet would get slower and slower. Apps took a long time to respond to input; switching apps took a long time; it was generally not fun to use any more. I flashed an older version of CyanogenMod, and elected to not install the Google Apps. The performance was noticeably improved. F-Droid allowed me to get useful apps installed quickly. I took a gamble and upgraded to the latest nightly snapshot of CaynogenMod available for this device (CM 12.1, or Android 5.1), and the performance has remained perfectly acceptable.

Of course, not installing Google Apps means not using the Google Play Store which means it's more hoops for me to jump through to install apps that aren't on F-Droid. Some of these (like the Sonos controller) I'm willing to live without on my tablet, since I can install them on my phone. Others, like the Kindle app, I'm willing to forego altogether because Amazon is just as guilty of pervasive personal data collection. My local library has plenty of books available for me to read, so I'm not missing much there.

I'm under no illusion that all of this effort will somehow keep me completely anonymous on the Internet. I know it won't. But I feel relatively confident that I'm striking a decent balance, for the time being, between sacrificing all of my privacy versus not enjoying any of the benefits of the modern era.

Note Taking

Published 2016-08-28

In college, I was a pretty good note taker. I found that my study sessions were generally just quick reviews of the notes I'd taken. I'd largely committed the information to memory by the act of listening to the prof and then writing the information down. I had a pretty good memory, too, so I'd always viewed note taking as something helpful, but not entirely necessary, for learning.

As I've progressed in my professional career, the number and variety of things I need to remember has grown tremendously. I haven't been keeping regular notes from conversations, meetings or incidents; instead relying on my memory. The combination of age, professional demands, and home life are making it harder and harder for me to keep everything in my head.

Years ago I saw a tweet praising NValt as the best way to take and track notes. I downloaded it and started using it casually. It didn't come naturally to me, so I didn't write very many notes. Eventually I stopped using it, but never bothered to delete it.

My recent organization efforts have me revisiting my note taking strategy (or lack thereof!). Playing again with NValt suggests that it will be a good tool. It's a low-friction way to record and find notes. I can pair the plaintext context and project labels from my todo.txt usage, easily marking notes @work or @home.

The most likely -- and important -- time to take notes is usually during a meeting. I've been making a conscious effort to not take my laptop with me to meetings because I want to minimize distractions and reduce the urge to multitask. I do take my phone with me into meetings, though, so it seems like a decent option for note taking.

NValt doesn't have a mobile version. There is Notational Acceleration, which is a mobile version of the original Notational Velocity from which NValt was derived. All three products can sync notes with other devices through Simplenote, but this is a depressingly closed-source solution from Automattic, and therefore a non-starter for me. Notational Acceleration doesn't store its data in a place that I can easily access without rooting my phone, so that makes synchronizing notes between phone and laptop harder.

Since NValt notes are just plaintext files on my laptop, I can use any plaintext editor on my phone if I can just get the notes onto my phone. Syncthing to the rescue again! I've spent a little time trying out different options. iA Writer is nice, but I had trouble opening files from directories other than ones it wants to use by default.

Monospace is what I've landed on for now. It's an extremely simple app, with almost no features. This is perfect for me, because all I want is an app to edit text files. It loads a directory of notes, and displays their titles by default. Since NValt note titles are meaningful (@home Write blog post about +monospace), I get a similar user interface to NValt. I don't currently have a huge collection of notes, so I can manually scan the list for the things I need to read or edit. Creating a new note is simple with Monospace.

Monospace isn't without faults, of course. I paid for the in-app upgrade, and while my credit card was charged the app doesn't seem to recognize the transaction. Monospace does not ignore traditionally hidden filenames, so all the dot files in my notes directory show up. Worse, all the dot files show up as title-less notes! This is a super minor nuisance, but one I'd love to see fixed.

I may well ditch Monospace for another plaintext editor in the future. That's one of the reasons why I value plaintext data so much: I have much more flexibility in selecting the tools I want. Suggestions are of course welcome! Email me if there's one you really like.

Jelly Bean

Published 2012-11-20

I bought a Samsung Galaxy S3 smartphone this weekend. Last night I flashed it with the latest stable build of CyanogenMod.

I've been watching the Android ecosystem mature over the last couple of years. For reasons I can't really recall now, I opted several years ago to purchase an Apple iPhone instead of an Android phone. I've never really regretted that decision -- the iPhone is indubitably an excellent product -- but I've chaffed at many of the decisions that Apple makes on my behalf. As a long-time Linux user, I'm comfortable poking around in options screens to tweak my systems to operate in ways that I like.

The initial transition to the Galaxy S3 was fairly seamless. I've been a long-time Google Apps user, so all of my email and contacts defined in GMail simply showed up on my phone when I authenticated my account. The friction of finding where the various UI buttons were located was minimal: smartphone UI and UX design is sufficiently sophisticated now that finding the "compose" button on any screen is pretty intuitive. The biggest mental hurdle for me was getting used to the two "physical" buttons on the Galaxy S3: the "menu" button at the bottom left of the screen, and the dedicated "back" button at the bottom right of the screen. After a day of use, these buttons became second nature.

Samsung's TouchWiz interface lies atop the stock Google Android experience. I didn't find anything terribly problematic about Samsung's efforts here. While I might grumble about the quantity (and relative uselessness) of some of the pre-loaded applications, the actual interface controls were very friendly. I particularly liked the camera application's use of the entire display as viewfinder.

But the reason I bought an Android device is because I wanted the "pure" Google experience, unmarred by carrier bloat. I'm a Verizon subscriber, which means that the new Google Nexus 4 smartphone is unavailable to me. In order to truly experience the native Google experience, I am required to flash a custom firmware onto my phone. CyanogenMod is the leading contender here, so I spent several hours researching my options, and the process for each.

There is an enormous community of Android enthusiasts using and developing solutions for doing exactly what I wanted to do. I'm not trail blazing, by any stretch. Indeed, I'm actually quite late to the game, and this has caused me no small amount of frustration. The enthusiast community has developed its own lingo, and currently assumes that all users are equally familiar with the ins and outs of flashing. This presents a major hurdle to new participants like myself.

I understand the concepts behind rooting, flashing, and superuser privileges, as well the different between locked and unlocked bootloaders. I do not, however, have any immediate understanding of terms like "ODIN" or "CWM". Nor am I intimately familiar with version numbers of existing Samsung firmware, or the differences between them (or, indeed, the sequence of their releases). Many of the tutorials I've found for flashing my phone presume a level of understanding that I am demonstrably lacking. This was frustrating.

After reading several tutorials, watching a number of YouTube videos, and performing an inordinate number of Google searches, I finally found what I thought was the best process for me.

Since mine was a brand new phone, with no data on it that I didn't already have somewhere else (ie: my GMail data), I didn't feel compelled to perform any kind of backup. If you're reading this because you want to flash your phone, you'll need to decide for yourself if you need to backup anything.

Since I was using a MacBook, many of the guides I found did not pertain to me. The guide that most applied to me was Mac Root Tool for S3 [Casual for Verizon S3]. This involves a Java application that roots the phone and optionally installs an unlocked bootloader. Notably, this solution does not install the CyanogenMod custom firmware. It merely performs some (but not all!) of the steps necessary to make such an installation possible.

The instructions state:

  1. Open this file
  2. Select Root with DebugFSRoot and Do It
  3. Select Flash Unsecure Aboot and Do It
  4. Use Odin or CWM to flash kernels to your device

The first two steps were easy enough. The third step confused me for several minutes until I realized that the "Flash Unsecure Aboot" required me to scroll down in the selector list. Once located and selected, this option gave a number of dire warnings about rendering my device unusable. I spent a good chunk of time trying to confirm whether this tool would work with the current version of my phone's firmware. This required a number of visits to various Android forums, and an awful lot of scrolling up and down. Finally satisfied, I clicked the "Do It" button, and felt remarkably underwhelmed when nothing much happened.

Step 4 didn't make much sense to me. Now that I've successfully flashed my phone, I do understand what they mean, and probably could have used them to finish the deal. But on my first attempt through this process, I didn't know what to do.

With a rooted phone, I now needed to unlock the bootloader. The recommended procedure was to download an app from the Google Play store called "ez_unlock". Once installed, the app simply showed me a white screen. Clearly something was wrong. I tried steps 1 and 2 from the Casual app again, but each time the ez_unlock app simply showed me a white screen.

More Google searching revealed that the way to tell if your running device is rooted is the presence of a new application called "Super User". I looked, and indeed that application was now present. I had not previously executed it. I clicked on it. It launched. I poked around, but couldn't find anything useful to do within in.

After launching the Super User app, I then tried the ez_unlock app again. This time it worked! It's (still) not clear to me if one needs to launch Super User first, but it seems probable. At the least, it can't hurt. ez_unlock allowed me to unlock the bootloader, which means I was now ready to install a custom firmware.

From the Google Play store I installed ROM Manager, and performed an in-app purchase to get the ROM Manager Touch upgrade. (An aside: I'm more than happy to give a couple dollars to the ingenious folks who produce tools to make this process easier.) This allowed me to download the latest stable version of CyanogenMod and the latest versions of various Google applications. This all worked without a hitch. My phone rebooted, and I was delighted to see the CyanogenMod splash screen.

After three or four minutes of the CyanogenMod splash screen, my delight turned to concern. Clearly something hadn't worked correctly. Several attempts to remedy the situation proved fruitless.

More Google searching took me back to the official CyanogenMod wiki for Galaxy SIII Full Update. This page specifically recommends using a microSD card to store the CyanogenMod image. I had not done this, because I do not yet have a microSD card for my Galaxy S3.

I used Angela's phone to download the latest stable CyanogenMod for the Verizon Galaxy S3, as well as the latest version of Google Apps, and copied these files to her microSD card. I installed this card into my phone, and followed the instructions for Flashing CyanogenMod using the Recovery Method. This worked flawlessly.

After a reboot, I was presented with the CyanogenMod splash screen, and then with the setup process for new devices. I set up my device, added my Google account, and within moments had a fully functional Android 4.1 "Jelly Bean" installation.

The tl;dr moral of the story here is to use a microSD card when attempting to flash your Verizon Samsung Galaxy S3 smartphone.

home / contact / flickr / github / keybase / linkedin / twitter

The contents of skippy are licensed under a Creative Commons Attribution 4.0 International License.