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.


Published 2016-08-28

Several years ago I was looking for an easy-to-use todo list manager. There are tons of apps and websites that tackle todo lists. All of these suck in various ways. Websites are only useful if you're online. Not all websites work great on mobile devices. Desktop apps don't always have mobile client counterparts. Apps use proprietary file formats, making it hard to switch from one solution to another over time. Many apps stuff in a bunch of functionality I'll never use or actively don't want.

I spent a long time looking for a solution. I eyeballed todo.txt, and was initially very excited by it. Plaintext. Command-line friendly. I was a Dropbox user at the time, so that was an easy way to synchronize my todo list between devices. But todo.txt wasn't easy to use on a mobile device. It lacked a mobile client at the time. I toyed with exporting my list to a web page for review, or just suffering through without mobile.

I eventually did settle on todo.txt, and used it pretty reliably for about a year. I did without it on my phone. Then I stopped using Dropbox. I kept my todo.txt, but only used it on a single device. Eventually I used this less and less, until I stopped tracking my todos at all.

I was never a heavy todo list maker, so my productivity didn't diminish noticeably. But I did find myself yearning to jot down things to do so that I wouldn't forget them. This set me back on the search for a todo solution.

There is now an official todo.txt Android client, but it uses Dropbox for file synchronization. I'm no longer a Dropbox user, so that's not particularly helpful.

I recently discovered Syncthing. The Syncthing mobile client made it supremely easy for me to get my todo.txt file onto my phone in any location I wanted it. Then I found Simpletask Cloudless, a todo.txt compatible task manager with no built-in sync solution. By pointing Simpletask at my Syncthing-synchronized todo.txt, I now have full access to my todo list on my phone, and my computers.

I can't recommend todo.txt enough. I almost always have a terminal window open on whatever computer I'm using, so my todo list is only two keystrokes away: t<enter>. Adding new items is frictionless, so I can be sure to record tasks as they come to me. It's easy to apply contexts (home, work, etc) and projects. I can always directly view or edit the todo.txt file itself if I need to make massive changes, or forget the script's command interface for lesser-used activities.

Simpletask is a great addition to my workflow. It's as easy to use as todo.txt itself. Since I don't want Syncthing running all the time, I simply launch Syncthing, and then launch Simpletask. Simpletask pays attention to changes to the files, so I don't need to wait for Syncthing to finish synchronizing: Simpletask will update my todo list when any sync changes are applied. When I'm done, I can close Simpletask, then wait a minute or two to ensure that the changes have been picked up by my other Syncthing clients. Then I can exit Syncthing and go about my life.

It seems rare in this day to find such easy-to-use tools. No clutter, lots of flexibility, cross-platform, and a real focus on the human being using them.


Published 2016-08-28

I have two laptops, two servers, a phone, and a tablet. I have a variety of content and media spread across all of these devices. Some of the data can only live in one place. I can't put my employer's files on my personal devices, and I elect not to put some personal data onto my employer's laptop. But some data, like my todo list or my collection of notes, I do want to have available on whichever device I might have at hand.

Dropbox was the first real solution for me to this problem. It was easy to enable synchronization of my data through Dropbox. I pretty quickly hit the 5GB limit they offered to free accounts, so then I needed to start selecting which data to synchronize, rather than just sync all of it. Google Docs, and eventually Google Drive, offered much the same value with greater capacities, but many of the same technical and operational challenges.

All of these offerings had one major problem: my data resided elsewhere, outside of my control. It's not that I worry that Dropbox or Google employees will be looking inside the contents of my files. It's just a personal preference to have more control over my stuff. Even a service like Spideroak, which makes it impossible (or purports to, at any rate) for employees to access the contents of my data, still don't sit quite right with me. What happens if one of these providers has an outage? What happens if they change their pricing model, or simply close up shop?

ownCloud was a very appealing solution for me for a long time. I installed and managed ownCloud, and used it to solve a variety of data sync and sharing issues. The recent ownCloud / nextCloud split left me pretty dissatisfied with both options, and I've also started to realize that even ownCloud isn't quite what I want in a solution. ownCloud offers a lot of functionality I simply don't use; and while it's neat that it can edit a variety of documents online, the reality is that I don't want to use my browser to edit all of these kinds of documents. Additionally, managing ownCloud's dependencies on my server is getting tiresome: I support technology all day long professionally. In my personal life, I want greater simplicity.

I recently discovered Syncthing. It offers a slightly different approach to file synchronization than other tools. It uses a global discovery server, but all data transfer is only between devices participating in a shared sync. This means that my laptops and my phone send data only to each other, and not via a third party (outside of the ISPs involved in moving the bits, obviously).

Syncthing allows me to choose which directories to share. It also lets me share different directories with different devices. This means I don't need to sync all of my data with all of my devices: I can instead sync just the things I need.

Syncthing is open source, which is important to me. It's a single binary that listens on a single port, which makes it play well with home routers and firewalls. It offers a relatively easy way to configure it, and has a strong focus on security. The documentation was clear enough to get me up and running very quickly. I now have a Syncthing daemon running on my Mac laptop and on my Fedora server. I'll be installing it on my lesser-used Fedora laptop soon enough. I'm basically using my server as a backup copy of some variable data, in the event of problems with my laptop. But I could easily use the data on my server just as easily as I use it on my laptop.

I've also installed the Android Syncthing client onto my phone. I've configured this to run only on demand, rather than all the time, so as to minimize battery drain. I don't need to sync things to my phone in realtime all the time. I'm content to launch the client as needed to fetch the latest data, and leave it running while I manipulate things. When I'm done, I shut the client down.

So far, I'm quite pleased with Syncthing. It has opened up some new conveniences for me, and I'm looking forward to being better organized.

Published 2016-08-28

There are lots of services that allow you to share files with other people, but they all have various costs associated with them. Sometimes the costs are financial. Sometimes it's simply the time and energy required to execute an upload. Many of these services are commercial in nature (if even just through advertising revenue), and so their interfaces reflect that nature.

Recently, someone wanted to share a simple photo with me. It wasn't something that was worth uploading to Flickr. It wasn't something that was intended to live forever. It was just a quick "Here, this is what I was talking about". The effort of making that photo available for viewing took much longer than it did for me to look at the photo and gain the information provided by it.

This struck me as a silly problem, and one I had it in my power to resolve in some modest way. Many of the folks with whom I interact have their own websites running on their own servers. Why bother using something like Dropbox or Google Drive or even Imgur when we have perfectly good web servers at our disposal?

So I wrote, a simple little shell script to take an input file, send it to a server of my choice, and return back the URL of the uploaded file. It has almost no features, and I'm sure it will break spectacularly in any number of use cases. But in my testing it does the job of taking a file and making it available to someone else.

It's released under an MIT license. Feel free to use it. If it makes your life just a tiny bit better, that'll make me very happy!

← Older Posts

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

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