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.