Someone once said, "Good developers are lazy." Now, that's not an excuse to be lazy. However, it does make the point that good developers will quickly realize when they should automate or streamline a tedious task. I'd like to share two changes that I've made in the past six months that I've found beneficial in my constant quest for efficiency.
Disclaimer: I know workflow posts are the dreaded time-sink of most developers (after all, working on your workflow feels like work, right?), but bear with me, I honestly think the ideas in this post will be beneficial.
Alfred is a workflow-aholic's dream app. Alfred is unfortunately Mac only; however, there are Windows/Linux alternatives. Alfred is a free download, and there's an upgrade to it, which we'll get to in a minute.
At its core, Alfred is an application launcher. Trigger Alfred's hotkey, and a semi-transparent, floating window pops up over the current project on your screen. From this window, you can launch apps, find files, initiate web searches, and much more. There's an upgrade to Alfred called the Powerpack, and the Powerpack throws Alfred into overdrive.
The Powerpack enables Workflows, along with other features. Here's a short screen cap of how most workflows work. In this gif I'm using the Pinboard workflow:
Essentially, Alfred Workflows are a GUI Framework for cobbling together custom scripts, actions, and system actions. The following is a list of all the workflows I currently use.
This little workflow allows you to post to App.net right from Alfred.
This one does what it says on the tin--shows you the status of your battery.
Dash may be one of my favorite apps, and its Alfred workflow makes it even better.
This is one I put together. It's extremely basic. It simply creates a new note in nvAlt with the date prepended to the title.
The Github Workflow lets you browse Github users and repos from Alfred. Simply start typing the repo name to begin browsing repos. Alternatively, typing an "@" and then a username will begin filtering through usernames. This is super convenient when I need to jump to another repo to see some documentation, or browse an issue.
The Pinboard Workflow is super smooth. Once you've authenticated, you use the workflow by typing "pb. " As Jeremy has pointed out, Pinboard is a fantastic bookmarking service. This workflow simply enhances it by making all those Stack Overflow questions, blog posts, and documentation pages I've saved immediately available at my fingertips.
Search Open Browser Tabs
This nifty little workflow searches your open Safari or Chrome tabs.
This workflow lets you read and send Skype chats right in the Aflred window!
If you're a user of Sprint.ly, I definitely recommend checking out this workflow. You can view every aspect of any project in Sprint.ly.
There are many workflows on the Alfred forums that toggle Caffeine on and off. Pick one and go.
Yet another way to get weather on your computer.
Sidenote: if you haven't taken the time to get fully comfortable with the command line, do it!! I firmly believe if you really want to start automating tasks and leveraging the incredible resources we developers have, you need to figure out the command line. Here are some resources to get started:
ZSH's hallmark feature is its autocompletion ability, and it's fantastic. ZSH will autocomplete pretty much any command, and if it doesn't out of the box (say, for Bower), then I'm sure there's an Oh-My-ZSH Plugin that facilitates it.
The other popular feature of Oh-My-ZSH is the customizable prompt. ZSH transforms the prompt into another indicator on your machine. On my current prompt I see at a glance the path to the directory I'm in, the current charge of my laptop battery, and the git branch I'm in (if I'm in a git repo). The git branch will even indicate a "dirty" state (untracked files, uncommitted changes). This ability alone makes ZSH worth the upgrade.
I highly encourage you to take the time to install and configure ZSH. While it does take some configuring to get it just right, you will not regret it.
Honestly, this is just the tip of the iceberg. If you want additional app recommendations or ideas, check out Jeremy's post, which references such gems as Dash, nvAlt, and others. I would encourage you to continue actively looking for ways to improve and streamline friction points in your workflow. I've found that not only does it benefit my work to make things smoother, but I become a better developer in the process.