Desktop tools I use - 2017 edition
I love reading Uses This where people share their tools and workflows. I’ve sniped some great tools from their posts. And back in 2004 when I started the blog, one of my most popular posts was about the tools I’d moved over to as an Apple switcher and early adopter. Time for a 2017 refresh post.
The first thing that amazes me is how much the character of my desktop and tools have changed over a decade. I’ve also changed my tastes considerably to tool selection and usage. I’ve shifted over time to moving to simpler, well-designed tools, with a much greater emphasis on text formats and simpler syncing and future-proofing, as well as adding much fewer things judiciously rather than trying to jumping to the next shiny thing unless it has a clear and compelling value over my current stack in productivity or problems it can solve.
On the Dock
I don’t really use the Dock for starting apps though I’ve never been able to come to grips with it not being on the desktop. The primary way I launch apps is via the excellent Alfred.
Alfred ends up replacing Quicksilver for me (I
thought QS was the better product). Alfred is Launcher, Calculator, File Mover,
Clipboard, Snippet Manager, search shortcut, and has a couple of workflows I use
to go faster. It’s great and I have to admit it drive me nuts whenever I am
using someone else’s machine who doesn’t have
⌘-Space set to launch the popup
window for it.
I’ll speak about what I use on the command line in another section, since I’m a pretty heavy CLI user and I’ve actually got a few CLI programs which I use that may surprise people but they may want to use. I use it with tmux and tmuxp (which I think is better than tmuxinator) so it has multiple windows and panes available which I can quickly move between, as well as allowing me to resume disconnected sessions for remote servers. It ends up being an integral part of my workflow. Apple's terminal program has improved substantially over time to the point that I am fine using it now rather than iTerm2.
It’s incredible how much the web browser has replaced desktop apps with better-than-desktop experiences. Besides a multitude of SaaS applications that end up being part of getting stuff done for work, Chrome ends up having two pinned tabs for Mail and Calendaring in GMail and GCal handling my Inbox and Scheduling and a third tab for Trello which is how I coordinate more than a few non-work projects and tasks for my EA on a shared board.
I ❤️ Taskpaper. It is the app I use for GTD and a primary reason I feel I’m productive (or appear so to other people). I have a long post on the system I use with it, which allows me to figure out all the things I need to do and manage higher level tasks and my energy. I love it’s simplicity and absolutely adore the fact it's simply a marked up text file since it makes my task history future-proof, easily searchable, and portable. It’s not perfect though. I often find myself wishing for a few more key features mashed up with how bullet journaling works and to make it a little more mobile friendly as well. As it stands though, it's still my go-to for keeping my life, work and projects organized.
While I used the command line jrnl for a while and a roll-my-own markdown system based the work I did on Kobayashi, it is hard to not use Day One. The developers have done a great job and I love the way the mobile app works, which was super handy when I was travelling through Africa for keeping track of my thoughts and (especially) I love the picture integration. I also love the Dropbox integration and the simple text based format of posts (though xml), which sadly is something the Developer removed in the latest version of the app. So, I am still using the Classic version though quite concerned about when the developer might stop supporting the great features it has. Again, much like Taskpaper, it still lacks a few things I’d love to have, and often fantasize about developing a CLI, app and mobile version based on text files and with encryption and photos included, but I can’t imagine how much work getting to the level of polish Day One is currently at. Great app though. I’ve got a daily template set up as a snippet in Alfred which I use to keep things consistent and make sure I am reflecting on the important things.
Bear is a fairly new thing and one I have to say I’m surprised I am so happy about. I’ve been trying to ditch Evernote for quite a while now as the company took what was a simple service offering and tried to justify the ridiculous multiples its stock was at. Bear, surprisingly, ended up being it. For one thing, it has a great Evernote format import (though I did a heavy cull before the import.). In this, it replaces three things:
- A note taker and list keeper that works and, and (perhaps more importantly)
- A web clipper that takes web pages and keeps them in Bear as a “keeper” drawer)
- Syncs between my desktop and mobile for ubiquitous data capture and referral
It also has some pretty great features like an “auto-folder” feature which works with you just putting a hashtag in the text of the note you create (sounds strange, but think of it like adding tags a la google mail) which is great.
About my only bugbear with it is that it uses iCloud sync rather than Dropbox, but it makes up for it by allowing you to easily get your notes out if you choose which is also great.
Prior to Bear, I was using a combo of Notational Velocity (AltNV) and 1Writer on mobile to sync up notes via Dropbox, which worked, but lacked polish (as well as notational vim a plugin for vim that works much like AltNV.).
In the Menu Bar
Handling IT for organizations like Amnesty and Getup makes one justifiably paranoid about security so I got into the habit of making sure my machine was locked down. Plus travelling a lot means a lot of internet cafés (and some countries) where it’s just smarter to make sure you’re tunnelling. For that, I use TorGuard, which not only tracks no logs on you, but also provides multiple, fast global access points to keep your browsing safe with industrial strength encryption.
Running Wakatara means my hours get tracked for both budgetary and audibility purposes, and so that we can invoice our lovely customers. While Harvest has a kick-ass mobile app (seriously, it’s great), I find I use the desktop timer and menu bar timer when I’m on my laptop. Just putting in a good word for Harvest here, it's easy to use, great for both staff time tracking and for running the business side of the company. We ran Neo on it and I don’t think I ever heard anyone complain about it. Definitely a service you want to pay for if you’re running a small business and, at least three years ago, won in the shootout of time and business trackers we were looking at. I’m still a big fan (though so wish it would keep a text based log for historical records on my machine. I like text.).
Besides the ridiculously cute whale icon, the OSX native version of Docker is just damn handy to have around.
Besides the fact I've tried to move all my development work over to Docker and
Docker Compose, it has completely changed my workflow around developing and
deploying applications (in much the same way that heroku was a revelation when
it showed up on the scene.), particularly more complex ones. If you haven't
started using containerization in your workflow, I highly recommend you
prioritize it. It makes a distinct difference in how you manage your local dev
environment. And the fact is, it's super handy to run disposable containers on
your machine and nicer than maintaining an environment via
homebrew. There's something to be said for using
docker run --rm --name mysql -e MYSQL_ROOT_PASSWORD=password -p 3306:3306 -d mysql:5.7 to
sping up an ephemeral MySQL DB and managing more complex apps through a Docker
Compose compose.yml file and a simple
docker-compose up is revolutionary.
iTunes has become a car crash of an application unfortunately, with Apple trying to push everything through it, subscribe you to Apple Music, videos, podcasts, and syncing to your phone all shmooshed into one app.
Vox is a great, uber-stylish, and super-slick music player with a nice menu bar controller, integration with Spotify and, my favourite feature… will use my Sonos soundbar in the living room as an output source for music which makes it phenomenal to play music in the house and as a centralized music system including online services (if you don’t like Vox, but like this idea, you might want to check out the open source Tomahawk. Personally, I think Vox is awesome.).
I not only use Dropbox to easily share files, but it also ends up being a nice extension drive for my desktop, with a lot of commands line tools’ config files and data being kept in dropbox to easily sync between machines and mobile devices. It’s handy, simple, cheap, provides versioning of files as backups, and even handles conflicts in a way I endorse (creating a second file marked conflicted copy and letting you resolve the issue.). Great service. Hard to beat. Worth every penny.
Few people worry about backups until it’s too late, unfortunately. Despite me telling everyone I know when they get a computer to make sure they’re backing up (I mean, you care about the data, not the apps or the machine really, right?), I’ve got a too-long list of friends who end up calling me when their machines inevitably fail and they are in a spot.
[Update Aug 2017] Crashplan has decided to exit the consumer market and its Home plan is no longer available as it winds it down. I've moved back to using Arq again, though am now using it to backup to Dropbox to take advantage of the spacious 1TB I have there (and avoid additional S3/Glacier costs on Amazon). It's working great. Highly recommend it as an alternative and especially like the way it encrypts things before they ever leave your machine so you don't need to worry about someone else holding the encryption keys. As another nice bonus, the software for Arq is native so runs much more smoothly and with lower resources than Crashplan's java based app.
Crashplan just works. It has clients across mac,
windows, and linux, has multiple versions of the file historically and works in
the background to quietly back up to the cloud (which you should do) and you
can also backup for free to other computers . Another great choice is Arq for
this but I moved over last year as my S3 costs started mounting. Good program
though and responsive developer.
I have to also admit I’ve been looking with interest at Restic simply since I like the way the developer has been talking about it, and the ease of backups, though not sure I want to bet my backups on it quite yet. I do like the fact its encrypted and assumes an untrustworthy storage partner (which, in my opinion, Crashplan and even Amazon S3/Glacier are.).
Oh, and in case you’re wondering, automated backups did save my bacon IRL from a total laptop failure while travelling in 2012 (in Tonga, no less) and had me back up and working within hours when I got back to Australia and purchased a new machine.
The Clock 3
I have to coordinate with other time zones quite a bit, so I’ve used a number of programs over the years which give me quick access to the time in foreign time zones and a month calendar view. This provides a week number (which ends up being useful for my Taskpaper system) at a glance, the day of the week, the time and the date as well as a pull down of all the time zones I generally need to know about.
The Clock also has a nice “Break” feature as well which will lock you out of your system and dynamically resets if you’re not at the machine. I’ve superceded this with my Fitbit this days, but it’s handy if you’re working straight through too much.
Doing a lot of development work, I end up on the command line a lot, and the fact of the matter is there are still a wealth of things you can do much more efficiently on the command line and programmatically given the knowledge. I manage all the updates, installs, and removals via the excellent Homebrew where I can or via ruby gems, python pip, or nopm install. Always use package managers if you can. These are things I use.
tmux and vim
It’s funny how much tux and vim have become a part of my workflow. I’ve been using vim since the age of dot since one of my first jobs was as administrator for the faculty Computing Labs in my Uni, but I would never say I’ve mastered it completely and I'm amazed at some of the people who are complete speed demons. I’ve integrated tmux so the two work together but the fact of the matter is a nice tmux and vim config not only gets you access to some amazing programs which I think are better than their gui counterparts, but can act as a complete dev environment with some (significant) buffing. While I tend to use vim for small edits and such though, for most development work, I’ve moved over to using Atom for most things.
I try to make sure I limit the amount of info hitting my inbox and websites I surf, which means I still use rss and atom feeds a great deal (in fact, I get annoyed when sites don’t have it.). I generally skim them very quick and then drill down on something I want to see, so really the advantage of newsbeuter is letting me absolutely zoom through feeds, look quickly at summaries of what I want and then decide whether I launch that in a browser to actually take a look. So very, very fast. It replaced NetNewsWire and Reeder as my newsreaders though both of those are quite good as well if you want a gui client.
After various breaches at LastPass and PassPack in the past, and my aforementioned security penchant, I use an old school, heavy encryption cli client for storing passwords on my machine that are pgp encrypted. Passpie is a quick, great little program that I have actually introduced people to and I think works great. While perhaps lacking some of the web integration features of commercial clients, I have to admit I’ve grown to love it, though it does generally mean I need my laptop with me most of the time if I want to access a site (a bit of a pain when Just have my mobile with me.). I’ve aliased a number of commands on it to make it even a faster part of my workflow, but can’t recommend it enough. The developer is also ultra responsive on bug reports or feature requests.
I have to admit to having a great love of weechat. It’s ridiculously fast and efficient and just amazing for keeping irc running in the background and out of sight. While I’ve sort of superseded it slightly with limechat which I ended up using a lot more below, I still often use it while travelling or when I happen to be in terminal.
If anything, my biggest issue with it is also one of the things I love about it, the extreme degree of extreme and the fact that with all the options it’s very inaccessible for beginners and you need to sink quite a bit of time into getting it working and looking the way you want. I spent quite a bit of time customizing it to get it to where I want, and if you don’t want irc taking up desktop space, this is a fantastic option though things like configuring it to work with ZNC or another Bouncer is much trickier than using, say Limechat below.
This is a fairly new addition since I needed to track small business expenses and reimbursements a little bit better because I wanted to forego a full time bookkeeper till Wakatara got up to scale. Ledger) is really just a command line reporting parser that expects a text file of a certain format and adhering to double entry accounting principles and then gives you the info you need to understand the shape of your business.
I have to admit, I was a little bit sceptical about it at first, but have really warmed to it especially since a number accounting programs bookkeepers I know have suddenly complained about upgrade or feature lock costs and, in general, don’t have ways to get their data out of the systems easily (though I hear good things about Xero, except the cost.).
I can’t think of anything more portable and future-proof than a simple version controlled text file that has a cli interface that understand a Chart of Accounts and can do your reporting for you from the command line. Another thing I love is that I can enter in things in multiple currencies and it’s smart enough to separate them out, give me cost and current value of those and still understand the various currencies (literally, there are entries in £, US$, CA$, HK$, € already!). Still a bit of a novel experiment, but will let’s see how it goes. My guess is this will be more for tracking and providing info to the people who will eventually do the accounting, but I like the control provided. If you need a gui interface, check out GnuCash as well. I am quite interested in what open-source friendly businesses are running their back-end accounting ops in.
Other Useful Tools
I have to admit, Atom kind of snuck up on me. I had been using vim or sublime text for things for quite some time (I still love the speed of sublime and vim) but the plugin ecosystem and quick improvements to Atom (as well as it being open source) sort of won me over and I have to admit, I am using it more and more as my primary IDE for coding in ruby, js, python, elixir, or elm these days. I think it still could be a bit faster and more stable, but very impressed with its trajectory and velocity to date, and the ecosystem is incredible.
If I have any real profession, it’s that I’m what we call a data scientist nowadays, though I find it wasn’t half so sexy a profession as when I was actually doing it for my daily bread. In any case, I’ve migrated from R with R-Studio to Python in Rodeo to using Python with Jupyter and have to admit I’m super surprised, but it’s come a long way since I first thought it was not a competitor to R. If you aren’t already using it and are a data scientist, you should do yourself a favour and check it out. Besides the fact jupyter notebooks can form the base of reproducible research (and you can dockerize more complex environments!) it is just a very reasonable way to “sketch” your data science projects and research and then provide a direct path to productionizing them with developers (if you even need em) since Python has really become the de facto language for data science these days.
When you need those bittorrent files, I still think nothing beats Transmission. Simple interface, no-nonsense network throttling, security built-in and runs in a very lightweight package. This is one thing I’ve been using for ages now and felt no need to change.
Calca (and Numi)
Calca is another one of those great little OS X programs that I really love. It’s really just a text editor that understands math (and will even do plots!), so you can place fairly elaborate formulae in it and get reliable answers out of it. Super handy for business and the fact they are simple text files mean that you can have someone sanely check your logic and numbers without getting neck deep in spreadsheets with hidden and esoteric formulae.
Interestingly enough, this ended up being a business life saver when we kept having problems with complex calculations in spreadsheets going awry, so this was actually the program we used for estimating costing on complex projects at Neo (as well as I use it personally for a host of financial and life calculations.). Quite simply it rocks. I prefer it to a competitor Numi which really needs a way to save files for it to be as useful for me (though I like the fact Numi understands foreign currencies and has Alfred integration which are very strong arguments in its favour.).
Calca feels like it has not been updated in ages though (about 3 years, I think - the copyright notice on my version reads 2014) so it definitely feels like it could use some of the features that Numi has to close the gap while still keeping its roots though my fear is that the author has moved over to making a windows version and intends to stay there, so you might be better off going to Numi (which, to be fair, does allow exports in text format to save files rather than using Apple’s Cloud files.).
Video and Streaming
On the laptop, VLC is my go-to player for video files due to the fact it will play just about anything you throw at it. You can even upload files to AppleTV with it by installing the free tvOS app, though those are in cache and will be erased at some point when memory gets low on your AppleTV.
What generally happens is I’ll try to get mv4 or mp4 version of a file, play it in Quicktime and then use that to stream via AirPlay (as flawed as it is) to the AppleTV.
A handy thing here is you’re getting a lot to files in mkv format is to use Subler and then have it extract the h.264 portions of the video and audio to a new file for you out of the mkv container and then use the new file to stream to Airplay via Quicktime.
While I’m a big fan of weechat since I can keep it running in a tmux tab and out of the way (though the config of it is quite painful), I have to admit I’ve been using Limechat a lot more again lately. It’s free, open source, painless and easy to use, and seems to use plenty of smart defaults (like logging channels).
I’ve got Limechat connected up to a ZNC irc bouncer which logs things for me while I’m not on fire and plays things back to me when I’m reconnected. Super handy.
While I’m handy on the command line with most industry standard databases, this is one area where using a graphical client to make quick edits (especially while developing) is hard to beat.
Since most of my work these days is in Postgres instead of mysql, I invested in the excellent Postico which is a great little client (with a quirk here and there) for interacting with your Postgres DBs.
For MySQL, though I use it a lot less these days, SequelPro is the successor to CocoaMySQL and most likely the inspiration for Postico.
For MongoDB (which I don’t use personally but which I’m migrating plenty of
clients away from), I have to say the most useful client out there seems to be
Robomongo though I do also like
Genghis which is a simple
gem install genghisapp.
It's amazing how 13 years of computing have sculpted changes as well as what has not changed at all. In any case, I hope there's a few things here that you can poach and start using yourself. I'll add some more things here (for example, graphics manipulations programs etc) as they become notable or not what everyone uses (for instance, a number of programs I think just everyone uses, like Sketch and Tweetbot are just not on the list here) and would love to hear from anyone who has a specific tool they think I should be looking at, particularly if it's open source and cross platform.