CLI is King! Long Live CLI!

I love command line tools. It's kind of funny, because there was a time when I was really getting into making JS front-ends for my Python back-end apps, but that was before I realized how much distraction comes with pretty GUIs.

It's very easy for me to get distracted by irrelevant details when I'm presented with something like, say the browser. I end out with so many tabs open that it's ridiculous - most of the time my browser tabs are only favicons. And there has been more than once where I've not even had that.

I think the main reason that I do such things is the same reason some people have a messy desk - they're not done with those things and so they want to keep them in front of them to remind them that they actually need to do that thing. In my case, though, it's usually several weeks before I decide whether or not I'm going to do something with a tab. Or I keep it open because there was some information found on the page that I think I will want to reference later in regards to something I'm working on. It's not uncommon for me to have 5-10 tabs open to different places in the API docs for some project that I'm looking at. I think that's mostly fine. But it's really easy to get sucked into YouTube, or Twitter, or Facebook, or something else. At least it is when these companies have their full-fledged gamification/habit looping tools brought to bear down on me.

But I've started fighting back. I want to take my control of my life, not what these companies most want for me.

I've always been into the command line for most things (which shouldn't be much of a surprise, given the fact that I'm currently using Pelican to generate my blog), but lately I've been able to get a lot of nice things going on.

For instance, I use alpine as my email client. I can connect to Gmail, and my work recently went to Outlook 365 or whatever that Microsoft product is called, and it actually supports IMAP access, oh frabjuous day, calloo callay! Seriously, it's way better than mucking with WebDAV to try and interact with scraping the Exchange OWA site. That was such a pain.

So I've got my mail client.

Google Reader was probably the saddest shutdown that I've ever experienced. Just a little more disappointing than Google Wave (as an aside: Google Wave was amazing! I absolutely loved chatting at the speed of thought - or typing anyway). But I found a substitute that actually works well enough for me:

Newsbeuter. It works great and lets me read my RSS in the command line, which is so lovely. To subscribe to a feed I just add the feed URL to a text file. They also have the ability to export a list or read URLs, which would be handy if you wanted to run it on multiple different machines. Of course, if you know how much I enjoy webcomics you might be wondering how that works. Actually it's way better than I used to think, largely because of ITerm2 and terminology. Both of these browsers allow you to click on URLs in the window (even connectbot on my Android phone lets me scan for URLs), which will then pop up the comic in the browser. So that's pretty awesome. I used to spend kind of a silly amount of time refreshing comics in the morning to see if there was anything new from my favorites, but now that I'm subscribing to their RSS feeds again, it's pretty awesome.

I read a neat article recently that led me to this approach to GTD called The Secret Weapon. I really enjoyed the approach, but there's one problem: the focus is using Evernote, which is a browser/native app. In the past I had come across this tool called TagSpaces, which basically is just an approach to organize your files by putting the metadata information about the file into the name of the file itself, so do-this-thing[work].txt would be a file that's been tagged "work".

So I started just kind of manually creating my files with the right filenames. That didn't last very long because it was super annoying. So in true scratch-your-itch fashion, I created shibboleth, a tagspaces+TSW approach to the problem. It basically is just a little command line app that lets you list your stuff by priority, and easily see the contents/edit the files. That's about it. Oh, and you can "select" your active task. Right now it's very very basic, and just takes care of the specific needs that I have, but it works great for that.

Anyway, the command line is awesome. I've found that I tend to be a lot more productive the more focus I can have in operating on the command line.

Oh, yeah, and I do use tmux (and tmate for pairing), and though I do tend to have several windows and panes open I think I'm doing a pretty good job at keeping them managed and having a specific purpose, like one for my database connection, and one for my email. It makes things a bit more segregated.

I also use something called termdown, which is just a stopwatch/timer. So I typically will use termdown -b 25m to run my pomodorii throughout the day. The -b makes it blink so I know when I need to take a break.