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!

Alice Cooper

Published 2016-05-07

The second concert I ever attended was Alice Cooper, on the Raise Your Fist and Yell tour. I was thirteen years old. I wasn't at that time a fan of Alice Cooper, but I was familiar enough with the theatrics of his work to know that I wanted to see him when the show came to town. I convinced my parents to take my friend Devin and me.

I remember being nervous around all of the large, black-clad fans milling around before the show. I remember being scared of the guy down the row from me smoking a joint. I remember the opening act, Frehley's Comet, led by former KISS lead guitarist Ace Frehley. I remember only some of Cooper's on-stage fright show, but I do remember enjoying it. I don't remember any of the music.

That concert made me an Alice Cooper fan, though, and I've enjoyed his works ever since. I've enjoyed his various cameos, and I've long wished for an opportunity to see him perform live again.

That desire came true last night.

Alice Cooper

There was no opening act, so the concert was two solid hours of Alice Cooper performing some of his greatest hits. The show opened with Vincent Price's monologue for "The Black Widow", and then the first part of that song was played before transitioning to another song I unfortunately didn't know. There were only two songs in the whole evening with which I had no familiarity. "Under My Wheels" was played very early in the evening, as was "Billion Dollar Babies". A few songs I didn't expect made it into the lineup, including "Is It My Body," "Poison," and "Cold Ethyl".

And of course there were theatrics. There were plenty of electric sparks, scary characters, a live snake, a 12' tall monster running around the stage, and the guillotine, which severed Cooper's head and shot blood out onto the audience.

Alice Cooper

Alice Cooper

The band was great, and full of energy. They were every bit the showmen that Cooper was, making for a great show to watch as well as to listen. Cooper didn't run around the stage, and he wasn't screaming his vocals out. He gave a solid, enduring performance and knew, from years of experience, exactly how to work the crowd. I had a grin on my face the entire time because I was having so much fun.

The audience was as interesting as the show. A lot of aging rockers, many of them worse for the wear. There weren't too many teens, but there were a surprising number of adolescents and family groups. It was nice to see parents taking their kids to the show. Everyone that I saw appeared to be having as much fun as I was.

Alice Cooper

The band played four tributes to departed rock heroes, one song each from Keith Moon, Jim Morrison, Jimi Hendrix, and David Bowie. All four songs were beautifully performed, and the crowd ate it up. The band closed with "Eighteen", and did a single encore of "Elected".

Alice Cooper

During the song, Cooper introduced "the candidates" and two performers in Trump and Clinton masks came out and monkeyed around for a bit. This was the only part of the show I didn't like. It wasn't an overtly political statement, but I felt it was a distraction from what I came to watch. It was clownish and silly, and not in the same tone as the rest of the theatrics of the show.

Like the first time I saw Alice Cooper, there were still plenty of large, black-clad fans. And there were a lot of people smoking joints. I kept looking to see a wide-eyed teenager experiencing his second concert, but that kid never showed up.


Published 2016-04-08

I've had for almost two decades. This site has experienced a number of transformations in that time. I've spent a lot of time looking for a visual presentation that I like. My tastes have changed over the years. I've spent a lot of time mucking around with CSS, divs and spans, and color choices.

None of those things are why I chose, way back when, to host a blog. I have a blog to share my thoughts with the world. The contents of the blog are the thing, not the way the blog looks. I'm not trying to impress anyone with the presentation of my thoughts, so why was I spending so much time fiddling with CSS?

To that end, I've completely abandoned any kind of visual styling, relying solely on plain HTML. The primary "reader" of this site is googlebot, which doesn't give a wet slap about pixel alignment, color choices, or fonts. Presumably some portion of human readers are using a feed reader of some sort, so any effort at a beautiful design are rendered moot. And for everyone else visiting this site the old fashioned way, they're not losing out on any kind of "experience".

I've been composing all of my emails in plaintext for years. Plaintext is easy to deal with. It's easy to copy and paste. It's machine readable. The same benefits hold true for this site. Why is my computer sending your computer a bunch of extra information about how to present my words? Why am I worrying about browser incompatibilities, nuances of mobile, or anything else? Your web browser, regardless of platform, knows how to render headers, images, and hyperlinks. If you want the font to be larger or smaller that's your choice, not mine.

I certainly appreciate a well crafted site. I admire those who can bend CSS to their will, and who work hard to build a beautiful experience. That's not me, though, so I'm going to focus on words again.

← Older Posts

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

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