Essential

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?

Get Homebrew

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.

Windows 7 subscreen partitions

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.

Cinch maximize window

Cinch subscreen partitioning

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.

SizeUp's impressive feature set

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.

SizeUp partitions

SizeUp shortcuts

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.

Get Cinch

GetSizeUp

  1. 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

Apple's built-in screenshot app is pretty okay, but it's not quite seamless enough. When I want to file a bug report, or post a humorous screenshot to Flickr, or snap a screenshot to post on Technophobe, I turn to Skitch. Skitch has system-wide hotkeys, so it's just as convenient as the built-in Mac screen grab utility. It also has has the most crucial image editing features built right in, and when you're finished, you can even drag your image into an email or IM, or post your screenshot on the web with a single click. Skitch's single-window editor 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. Highlighting and annotating is crazy easy! 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):
Syndicate content