Utilities
Homebrew is like MacPorts or Fink, except that it actually works
It has come to my attention that some of my dear friends are still using MacPorts or (shudder) Fink to install UNIX packages on OS X.
Please. Stop that.
I'm here to show you a better way.
Meet my friend Homebrew.
Homebrew is a bit like MacPorts or Fink, but a lot more awesome.
Homebrew is built on Git and really simple Ruby "recipes".
Homebrew installs everything in version-specific isolated folders, then symlinks into /usr/local where local code really belongs. No more of this /opt business. It's crazy simple to create your own Homebrew packages, just in case you have to install something from source.
Homebrew compiles an optimized version for your Mac. But sometimes it installs a binary version, if, you know, compiling would take days.
It's crazy simple to modify existing Homebrew recipes... Because it's built on Git, any upstream changes can be automatically merged into your custom recipe.
You're not dependent on a central repo. If you like my recipes, simply `git-pull` my repo and install from there.
Homebrew is a good citizen. While MacPorts and Fink play fast and loose with versions and dependencies, often leaving you with multiple copies of the same thing or existing libraries, Homebrew tries really hard not to mess with things that are installed elsewhere.
i.e. You'll never have to worry about PHP running one version on the CLI and another through Apache.
Homebrew plays nice with ruby gems, easy_install, pear/pecl, CPAN, etc.
Homebrew comes with bash-completion, so you can tab-complete all your package names. That's pretty hot.
If you don't like how something is done in Homebrew: fork, clone, commit, push and convince mxcl to accept your changes :)
For usage examples and more documentation, check out the Homebrew website.
So what are you waiting for?
Subscreen partitioning is a Cinch
First, a Confession
It's hard to admit that I'm jealous of anything Windows. But I've been jealous of the subscreen partitioning feature in Windows 7. It's really cool.
Back in the day, most monitors were small. In most cases, applications were useless unless they were fullscreened. But times have changed. Modern monitors are enormous compared to their predecessors. Unfortunately, Windows users don't seem to have moved past the fullscreen paradigm1. Keeping several applications simultaneously visible is pretty much more efficient in every way. But most Windows users are too stuck in the fullscreen app paradigm to know any better. Windows 7 is looking to change this.
Windows 7 ships with a "snap to subscreen" feature that's just rad. And it's really intuitive. Grab a window and drag it to the top of the monitor, and the window will snap to fullscreen. Drag the window to a side and it will snap to a vertical split. This makes it easier to effectively use the monstrous monitors available these days.

The implementation is not quite perfect—as of the last time I checked—but it's a great start. Windows is still pretty crap at using multiple monitors, and snapping windows to a subscreen is no exception. Ideally, a window should be able to snap to the internal divisions between screens, allowing a vertical split on each monitor. Currently it only works on the outermost edges of the outside monitors.
The "snap to maximize" is also a bit worthless. True, there are occasions where an app should take up the whole monitor. But a more generally useful case would be a horizontal split, to compliment the available vertical split. Unfortunately the fullscreen is so entrenched in the Windows psyche that this will prob'ly never be fixed.
As exciting as this development is, screen partitioning is not enough to convince me to switch back to Windows. So I set out on a quest to find a subscreen window resizer. I'm happy to report that I've found it! I've been using these two utilities for quite a while—one for at least a year—and they fit the bill perfectly.
Enter Cinch
Cinch, by Irradiated Software, is an amazing implementation of subscreen partitions for OS X. It's simple, mouse driven, and gives great user feedback. Dragging a window to the left or right edge of the screen will resize the window to fill half the screen. Dragging it to the top of the screen will fill the screen. And dragging a Cinched window away from the edge will snap it right back where it came from. If that sounds a bit confusing, check out the screencast on the product page and it'll make perfect sense.
Unlike the Windows implementation, Cinch can snap to internal divisions between screens. Sometimes it's a bit tough to hold it at the edge just right to get the window to snap, but the functionality is there. Irradiated suggests making just a bit of a monitor position offset to give you an edge to run the cursor up against, and I've found that to work just fine.


But most of the time I don't have my hand on my mouse. Thanks to great system-wide hotkeys, I spend a lot of time with my hands on the keyboard, which is the one place where both Windows 7 and Cinch fall short. And Irradiated Software thought of that too:
See Also: SizeUp
SizeUp; is a handy little app by the same company, and the perfect complement to Cinch. SizeUp lets you quickly reposition windows to fill half, quarter, or full screen via system-wide hotkeys or a menu extra. The hotkeys make tiling, moving and maximizing windows a cinch.

Multiple monitor support is seamless in SizeUp. Windows can be easily sent between monitors or Spaces. They even magically resize themselves relative to changes in monitor size. As you can imagine, this feature comes in handy on my desktop box.


Unfortunately, SizeUp can't work perfectly all the time. Some applications enforce a minimum or maximum window size, and some windows don't resize at all (a la iTunes' mini controller). When an app just doesn't want to cooperate, SizeUp does the best it can, putting the windows where you want them and getting them as close to the requested size as possible.
Both SizeUp and Cinch are under active development. And really rad.
- 1. It’s a bit humorous to see a 32 inch monitor with Microsoft Word taking up the full screen, but only showing a single page surrounded by wasted space... It’s also a bit sad.
My screenshot secret weapon: Skitch
The Skitch interface is intuitive and just complex enough. You can't retouch a photo in Skitch, but resizing or cropping is a snap. Skitch sports a handy -- and relatively full featured -- editor. It takes just a couple of clicks to quickly crop or resize, and to highlight, annotate and scribble on your photos or screen grabs.
I love the little touches with Skitch. Edits are never destructive. Everything can be undone, or deleted, or edited later. When post a screenshot it is saved to your history with layers, so you can come back later and remix things as you wish.
Perhaps the best feature of Skitch is the integral upload capability. A single click posts your image to Skitch's own sharing service, or to Flickr, or to an FTP server you control. Once it's uploaded, one more click copies the link, all formatted and ready to paste in an email message or blog post.
Skitch is a neat little package that captures my entire screen grab workflow from start to finish.
Get Skitch
If you need a little more convincing, check out this killer screencast (courtesy of the Plasq/Skitch crew):
Layers is the coolest screenshot app I've ever used
Don't get me wrong, I still use Skitch1 for quick and dirty screenshots and annotations. In fact, I use it more than Layers. But Layers gets my vote for coolest screenshot app of all time.
Everything. On. Your. Screen. Is. A. Photoshop. Layer.
Do I need to say anything else? Try it yourself, they have a free trial.


- 1. The observant among you will note that I wrote this review before I wrote about Skitch. Isn't retroactive continuity great?
This tip calculator isn't ugly, doesn't suck to use.
I'd tip that.
Tipulator is a cute little tip calculator and bill splitter by a rad company called Tap Tap Tap. I don't usually pull it out unless I'm splitting a particularly hideous bill, but it has come in handy a few times. I'm personally keeping an eye out for their grocery list app as well.


Stage Hand makes Mac Keynote presentations seamless.
"Get a remote" is one of Seth Godin's Nine Steps to Powerpoint Magic. But what if you don't use PowerPoint?
Stage Hand is the ultimate Keynote remote. It shows you slide notes and previews, keeps a timer, and lets you jump around your presentation with ease. I used this app for my last presentation, and it made the whole thing not just seamless, but amazing.

Jaadu is my desktop Mac's missing multitouch touchpad.
You might not like this as much as I do, but it's really stinkin' cool. With this software, you can use your touch screen as a touch pad or remote for your Mac. You can control movies or iTunes with a touch. I love this one, but YMMV.
If this app sounds cool, but you don't think you'll use the full functionality, check out Jaadu Click. It does a lot of the remote functionality, but is significantly cheaper. It's also a great way to test the app before dropping a handful of cash for the full meal deal.


Evernote's native iPhone app isn't too shabby.
Evernote is a cool system that lets you keep photos, notes, thoughts and more all in one online profile, which you can access from the web, or via a native app on your iPhone, iTouch or your Mac or PC. This app integrates well with Evernote. If you're an Evernote user, or you think you might be, this program is for you1.
Get Evernote for iPhone/iTouch


- 1. I just couldn't give this app more <3 because I'm not fully converted to Evernote in general. I'll get back to you once I've done more than poke at it.
Create cross-platform synergy with Synergy.
If you ever use more than one computer on the same desk, you need Synergy. Synergy is a protocol that allows several computers to seamlessly share the same keyboard and mouse. It's cross platform: I use it to control my Mac laptop, a desktop PC running Windows and a Linux box. I plop my laptop down on the desk, it automatically connects to my desktop computer, and I can use it just as easily as I would a second monitor.
The protocol is really slick. Once it is configured, move your mouse to the edge of the screen and the cursor jumps to the next computer. Keyboard control and window focus follow the mouse. It even shares your clipboard—you can copy something on one computer and paste it on the next. On most platforms Synergy can synchronize screen savers and sleep as well. Check out this quality illustration of the idea:
Image source: synergy2.sourceforge.net
Since Synergy is a protocol rather than a program, there are quite a few apps to use with it. I wouldn't use the official Synergy application on any platform other than Windows. Here are some great alternatives:
On a Mac, I recommend installing SynergyKM. It provides an easy to use preference pane, a graphical tool for aligning displays, and sweet keyboard remapping, so your ⌃, ⌥, ⌘ and Windows keys get along, no matter which keyboard or operating system you're using. It supports multiple profiles, so you can set your laptop up for home and work. It even claims to use Bonjour to automatically configure client computers1.



Linux configuration can get a bit tricky. The command line version gives you the greatest control, but takes a .conf file or two to get going. If you're not feeling up to that, check out QuickSynergy, a GTK 2 app that makes configuring Synergy a breeze. To automatically start Synergy when you boot up (or log in) check out this guide.
QuickSynergy sources and distro-specific instructions here
Image source: quicksynergy.sourceforge.net
And for the unfortunate Windows users, check out the official Synergy2 application. It works great on anything >= Windows 95, so if your computer has a mouse you should be set…
- 1. But that hasn't worked out for me yet. YMMV.
You need Growl notifications.
If there's one utility that should be installed on every Mac, it is Growl. Growl provides a unified system notification interface. By itself, it does nothing. But it allows all other apps to interact with the user in a clean and consistent manner. Growl is inherently Maclike, as it creates a consistent, attractive and unobtrusive way to let you know what's going on with your whole system.
Growl settings are almost too customizable, allowing each user to define exactly how notifications should appear and act. Notification styles range from small bezel windows to giant marquees to synthesized speech. Notifications can even be enabled, disabled or customized on a per-application basis. Check out some of the stock Growl themes. If none of those quite do it for you, choose from an extensive collection of third-party skins, or even create your own!
But just because you can tweak it doesn't mean you need to. Apps that use Growl "just work" out of the box. Once you install Growl you will be surprised how many of your applications already support it. The list of applications currently supporting Growl is huge: everything from download notices to incoming messages to update notifications are delivered via Growl. Growl "Extras" also exist for Mail.app, iTunes, hardware notifications1 and lots of other system apps.

- 1. HardwareGrowler saves you from yourself by growling when your flash drive has finished mounting or unmounting.
Jumpcut keeps your clipboard around a little longer.
One of my biggest problems with the "clipboard" paradigm is that it only holds on to the last thing I clipped. I'm forever forgetting that I just clipped something I wanted, and haphazardly replacing it by copying something new1.
Jumpcut gives the OS X clipboard a healthy sense of history. It's a simple little menu extra2 that keeps track of a configurable amount of recent clippings, just a hotkey or a mouse click away. If the top of the screen is too far, you can hit ⌃⌥V to pop up a bezel window that pages through all your recent snips. This slick little app has become an indispensable part of my workflow.


