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
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. 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.
Alphred
This little workflow allows you to post to App.net right from Alfred.
Battery
This one does what it says on the tin--shows you the status of your battery.
Dash
Dash may be one of my favorite apps, and its Alfred workflow makes it even better.
Datestamped Note
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.
Github Workflow
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.
Pinboard
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.
Skyping Alfred
This workflow lets you read and send Skype chats right in the Aflred window!
Sprint.ly Workflow
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.
Toggle Caffeine
There are many workflows on the Alfred forums that toggle Caffeine on and off. Pick one and go.
Weather
Yet another way to get weather on your computer.
ZSH
ZSH and, specifically, Oh-My-ZSH make the typical bash shell weep with jealousy. Between ZSH and Alfred I find myself staying in the zone longer when I’m head down on a project.
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.
Conclusion
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.