Simple Thread’s Favorite Developer Things

Simple Thread’s Favorite Developer Things

Oprah Winfrey is famous for many reasons, but one of the most popular episodes of her eponymous talk show was her yearly “Favorite Things” Show — it’s actually so popular, years removed from Oprah, she still publishes her annual list.

In Favorite Things, Oprah shared noteworthy or impactful products which audience attendees would be awarded much to their joy, shock, disbelief and ecstasy.

So how does this apply to Simple Thread?

As a distributed team, Simple Thread gathers weekly to take part in a “Continuous Learning” activity. Sometimes the meetings are a book club, other times a team member will present a mighty feat of engineering. Recently, we used a Continuous Learning meeting to share some of our favorite tips and tricks amongst ourselves.

People’s minds were blown.

Thanks to these productivity hacks, team members have expressed nothing short of the same elation found on Oprah’s Favorite Things episode.

My guess? They just tried TabNine for the first time …

So prepare yourselves! Simple Thread wanted to share some of our favorite things with you!!!

Disk & File Utility Favorite Things

ncdu :: NCurses Disk Usage 
command-line disk utility for Unix systems

Comments: ncdu is good for finding what’s using disk space on servers you’re ssh’ed into. It uses ncurses to present a text interface to let you navigate folders, delete files.
Al Tenhundfeld

:: [Free Trial]
macOS/iOS graphical file comparison tool

CommentsGood for highlighting character-level changes, useful as git difftool and mergetool. This tool easily spot the differences in text and image files. Review changes in seconds with the world’s most advanced iOS and Mac diff tool. Also be sure to check out Beyond Compare – another file comparison tool, for Mac/Windows/Linux. BC is not as graphically polished as Kaleidescope, but touts itself as more of a “data comparison tool” than a file comparison too. For example, it can compare more than just local files, like FTP folders or S3 buckets. Also, it has better support for comparing structured data like CSV diff shows and columns and rows, not just text.
Al Tenhundfeld

OS Automation Favorite Things

Copy’em Paste ::
Clipboard Manager for Mac OS X

Comments: Stores my clipboard history so I can access multiple recent copies when I paste. Works on images and other files as well as text.
Spencer Hansen

Automation of OS X

Comments: At its core, Hammerspoon is a simple bridge between the operating system and a Lua scripting engine. I’m gradually improving my Hammerspoon config so that I can do more Mac stuff without touching the mouse.
Mike Green

text expander
:: [Free Trial]
macro to text binder

Comments: As a bizdev person I am jealous of our team’s coders as they live their best D.R.Y. lives. TextExpander is my chance save countless keystrokes by binding text-based macros to key combinations. I use it to post repeated messages like links to my calendar app, commonly shared phone numbers or Zoom links and boilerplate emails. So, instead of remembering and typing out my full Calendly page link for a 30-minute call, I can simply type :b30 and presto! Text Expander even incorporates field functions to customize repeated tasks like boilerplate emails. What’s more? It supports Shell, Apple and JavaScript so could work with line commands and scripts!
— Brian Bassett

Command Line Favorite Things

Grip :: GitHub
Local Markdown file previewer

Comments: Grip is awesome for previewing Markdown files locally before committing them. It opens up a local web server to feed up styled Markdown files to preview in the browser. Lately I’ve become of big fan of tools that feel unixy. Since Grip is just a web server converting a Markdown file to PDF is a snap. The functionality is baked right into chrome.
Alex Baldwin

:: GitHub
general-purpose command-line fuzzy finder

Comments: Another command-line tool, think of fzf as a simplified interactive grep. We use it to search command histories, file lists and build app specific developer search tools. It also has a nice integration with the VIM editor via fzf.vim. This lets us quickly search commits, recently accessed files, files in git status as well as snippets.
Alex Baldwin, Mike Green, Stephen Kiningham

:: GitHub
command-line utility, to prepend timestamp information

Comments: Kind of like moreutils’s ts, super helpful if you want to know how long each step is taking on a script. It appends a live timestamp to each line of stdout.
Alex Baldwin

:: GitHub or fx :: GitHub
lightweight and flexible command-line JSON processor

Comments: We all like a JSON salad, but hey who has time to slice and dice your favorite open-formatted data? Like a simpler sed, jq is a command line tool for slicing, filtering, transforming and even slap-chopping your JSON data. The trick is building enough intuition and muscle memory with this tool so that you don’t forget to use it for three months and be delighted when you rediscover it again.
Mike Green, Al Tenhundfeld

:: GitHub
create and manage tmux sessions easily.

Comments: Tmuxinator allows me to have project specific tmux sessions that spin up with one command with everything I need neatly organized and running. For rails projects it is especially nice to bring up a session with the server running, the console up and the editor open.
Casey Ellett

Silver Searcher (Ag)
:: GitHub
A code-searching tool similar to ack, but faster.

Comments: Need to find things? Need to find them quickly? Done.
— Justin Etheredge

:: GitHub
Tracks your most used directories, based on ‘frequency’.

Comments: I swap between all my most used projects with this command. No more cd what/parent/folder/did/i/put/that/in/again.
Alex Baldwin

:: GitHub
Simplified and community-driven man pages

Comments: Man pages tend to trade thoroughness for simplicity. Sometimes all you need is a quick overview of a command with an example.
Alex Baldwin

ssh-copy-id ::

Install your public key in a remote machine’s authorized_keys

Comments: Nifty little utility that allows you to install your keys on a server for passwordless authentication.
Al Tenhundfeld

:: GitHub
The Plaintext File Manager

Comments: I like being able to operate on my directory files like OSX’s finder app but I hate leaving my terminal. I built Roamer because Ranger felt a bit too heavy for simple file operations. Another set of commands that although similar are not quite the same as my VIM editor. I kept saying to myself… I wish this was just regular ol’ plain text.
Alex Baldwin

An interactive process viewer for Unix

Comments: This utility is used on just about every TV show featuring “hackers” for its colorful ASCII interface. It’s a system activity viewer like top that displays information on active processes running on your computer, their resource usage, etc. What makes it better than Top is its search feature, customizable table columns and sorting, process tree view, and the ability to display graphs and gauges. This is visible in the background whenever a character on a show says “I have access”.
— Mike Green

:: GitHub
A VIM-inspired file manager for the console

Comments: Command line file manager with Vim-like key bindings, because when you’ve got that muscle memory, you tend to want to use it everywhere you can. Why reach for arrow keys when you can just use HJKL?
— Mike Green

Terminal-based tool for monitoring the progress of data through a pipeline

Comments: Ever tried loading up an enormous database dump and been tempted to cancel it because it seemed like it was taking way too long and something must’ve gone wrong? pv helps you by letting you monitor the progress of your data. Example pv -btrep database.sql.gz | gunzip | mysql -uroot db_name. You can use pv like cat to start a pipeline, or you can insert it into a pipeline between any two commands. It can tell you how much data has moved through the pipeline, how long it’s taken, and estimate how much time is left until it’s done.
— Mike Green

:: GitHub
An ncurses-based text-mode interface for git

Comments: Tig (git spelled in reverse) is great for browsing your git repository without having to ever leave the terminal.
— Justin Etheredge

Vim Plugin Favorite Things

TabNine :: [Licensed]
all-language autocompleter

Comments: Relative to other tab completion options in Vim, FIVE STARS to TabNine because it actually works! I use it in Sublime too (also five stars) though Sublime’s default is fine too. It would fall short of Intellisense on statically typed code, but for Ruby, Javascript, etc. it’s amazing.
Stephen Kiningham

 :: GitHub
A Git wrapper so awesome, it should be illegal.

Comments: Do basically anything you can do with Git, without leaving your editor. Fugitive has a simple status, commit, and blame interface that reduce friction and context switches when working with revision control.
— Mike Green

:: GitHub
Asynchronous linting/fixing for Vim and Language Server Protocol (LSP) integration.

Comments: Automatically check the syntax of the file you’re currently editing, usually each time you save it, by running it through format-specific linting programs like ESLint, Rubocop, etc.
— Mike Green

:: GitHub
Provides Vim commands for the built-in fzf Vim integration.

fzf has Vim integration, but you have to create your own commands. Fzf.vim provides them to you.
— Justin Etheredge

:: GitHub
Vim bookmark plugin.

Comments: When I’m reading complex code path flowing through 25 files it can be difficult to keep track of points of interest. With this plugin maintaining a list is only one keystroke away.
— Alex Baldwin

:: GitHub
Vim motions on speed!

Comments: I only use one option from this plugin but I use it every couple minutes. nmap <tab> <Plug>(easymotion-jumptoanywhere) to jump to an arbitrary location in a text file using only the keyboard.
— Alex Baldwin

:: GitHub
Quoting/parenthesizing made simple.

Comments: Operate on opening/closing characters the vim way. Converting double quotes to single quotes is as simple as cs"'. Or change those single quotes to a paragraph element with cs'<p>.
— Alex Baldwin

:: GitHub
A Vim plugin which shows a git diff in the gutter (sign column) and stages/undoes hunks.

Comments: Track which lines which lines have been added, modified, or removed compared to your git repo. Also adds nice keybindings to jump between changes with ]c and [c or stage changes with <leader>hs.
— Mike Green

:: GitHub
The undo history visualizer for VIM.

Comments: Vim’s branching undo history is awesome for preserving changes that would otherwise be completely lost. However finding a series of changes you undid an hour ago can be tricky. undo tree gives you a nice visualization similar to git log --graph so you can dig it back up.
— Alex Baldwin

:: GitHub
A statusline plugin for vim.

Comments: Want a fancy little bar that sit at the bottom of Vim and provides statuses for a bunch of other apps and plugins you already use? Look no further.
— Justin Etheredge

Browser Extension Favorite Things

Octotree :: GitHub
GitHub filetree style display

Comments: An extension to show code tree for GitHub. It has an easy-to-navigate code tree, just like IDEs and it can also support both private repos or GitHub Enterprise. I can’t live without it.
—Stephen Kiningham


Scrum for Trello
Scrum for Trello adds functionality to the awesome for use in Scrum projects.

Comments: Scrum for Trello is a nifty little browser extension that helps to label and quantify cards in a visually appealing way for a team’s quick review from the board level. Using the extension, I can denote numerical status of “doneness” on a card (1/2, 3/5, 9/10) which then tinges the background of the card appropriately. SFT also allows you to add text/color labels to categories or items beyond Trello’s more simple Red/Orange/Yellow marking. I love using Scrum For Trello in team efforts just as much as I do in tracking my own personal projects.
—Mike Green

Pocket ::
Nifty extension for saving things you’ll never get back around to reading

Comments: Honestly, the biggest use I have for Pocket is to convince me to close tabs instead of leaving them open. If something is really interesting, I’ll go in Pocket and find it and eventually read it, but most things I never get back to. So really Pocket is a tool for helping me manage my FOMO.
—Justin Etheredge

Password Manager

Comments: 1Password’s browser plugins are awesome and make managing passwords ridiculously easy. If you’re not already using a password manager because you think it’ll be a pain, I recommend checking this out.
—Justin Etheredge

Window Management Favorite Things

Moom –
Moom makes window management as easy as clicking a mouse button—or using a keyboard shortcut, if you’re one of those types of people.

Comments: Let’s face it. Window management in most operating systems suck. Moom makes it suck a little less in OSX.
—Justin Etheredge

HazeOver automatically highlights the front window by fading out all the background windows.

Comments: We all have a million things open all the time. Sometimes it can be hard to find windows, or we just want to focus on a single window. HazeOver does that without forcing you to go full screen.
—Justin Etheredge

Development Tool Favorite Things

Postman ::
Powerful tool for API development

Comments: Postman helps you keep track of your API endpoints, document them, and execute them. You can share your workspaces across your team in order to help everyone work collaboratively. If it still doesn’t sound very impressive, just check it out.
—Justin Etheredge

The missing package manager for macOS

Comments: Package manager for macOS. Indispensable. If you’re a developer and using macOS, then you’re almost certainly already using Homebrew. If not, go get it now.
—Justin Etheredge

DevDocs ::
Combines multiple API documentations in a fast, organized, and searchable interface

Comments: DevDocs gives you a single place to search tons of API documentation. You can also use it as a Chrome plugin or desktop app.
—Mike Green

direnv is an environment switcher for the shell

Comments: direnv looks for a .envrc file in the current and parent directories and will load/unload environment variables into your shell. Really fast and easy to use.
—Mike Green

 :: and GitHub (MailHog)
A simple local SMTP server

Need a way to test mail deliveries from your app on your local environment? Mailcatcher sets up a local SMTP server that your app can send mail to, then you can open up a browser and view those emails. You’ll wonder how you ever lived without it! If you need something similar for a staging environment, check out Mailtrap.
—Al Tenhundfeld

Screensharing/Pairing Favorite Things

Slack ::
Chat, videoconferencing, screensharing

We use Slack for chat, and you probably already do as well. It seems like the whole world is these days. However, if you don’t pay for their premium service you might not be aware that they also do a pretty good job with videoconferencing and screensharing. For bigger groups we like Zoom, but Slack screensharing is so easy when you’re already in it all day.
—Al Tenhundfeld

Zoom ::
Easy screensharing and videoconferencing

Zoom is magical. I don’t know how they do it, but they manage to be head and shoulders above other services in terms of video quality and reliability. We use it constantly.
—Justin Etheredge

Terminal sharing

Comments: Tmate is great when you just need to share your terminal without all of the overhead of sharing your full screen.
—Mike Green

You get a productivity bump! And YOU get a productivity bump! And you …

We hope you enjoy some of these tools and tricks as much as we do! Maybe knowing that tmuxinator can help you manage your terminal sessions more easily, or that Copy'em Paste lives to keep those old copy-clippings for you will make you as happy as them!

Alas, since we don’t have Oprah’s production budget or marketing sway we can’t send you free versions. That said, most of these tools are open source or at least have some freemium use. So you can start realizing what time savers they are without even opening your wallet.

Hopefully these tools and tips will be a boon to your productivity. What are some of your favorite tools that we could include in our list? We’d love to hear about them in the comments!

Loved the article? Hated it? Didn’t even read it?

We’d love to hear from you.

Reach Out

Comments (2)

Leave a comment

Leave a Reply

Your email address will not be published. Required fields are marked *

More Insights

View All