mac

Mac Software for Software Developers

A fellow developer who is getting his first Mac asked me what software he should get. Here is a list of Mac software that I, as a software developer, find useful.

"Speak Count of Words on Clipboard" Automator Service

As part of my "write a blog entry every day during November" commitment, I considered imposing a minimum word limit for each entry. I've decided against that, because I don't want to feel pressure to add filler, but before deciding that, I created an Automator service that would help me to count words.

A Little Service That Converts Files to EPUB Format

To make it easier to put content on my Sony Reader, I've created a service, using Automator, that will invoke calibre's ebook-convert tool on files selected in the Finder.

Building Emacs from Source for Mac OS X

There are a few binary Emacs packages for OS X floating around out there, but I always build it myself from the sources. This usually results in an Emacs that works the way I expect, rather than the way some "helpful" distributor thinks it ought to work.

I'll assume you have the developer tools and bzr installed, and know how to open Terminal and type some commands. Here are the commands you need to type:

bzr init-repo --2a emacs/

cd emacs

bzr branch bzr://bzr.savannah.gnu.org/emacs/trunk/

cd trunk

./configure --with-ns

make install

When this is complete, you'll end up with Emacs.app in the nextstep subdirectory. You can run Emacs.app from there, or copy it to your Applications directory.

Update 2010/10/29: Discovered that the Emacs team now uses Bazaar (bzr) rather than CVS. Updated the instructions accordingly, following advice from http://www.emacswiki.org/emacs/EmacsForMacOS and http://www.emacswiki.org/emacs/BzrForEmacsDevs. Also, found what appears to be a faithful binary distribution at http://emacsformacosx.com/.

Menubar Countdown 1.0 for Mac OS X Released

Lately, I've been experimenting with the Pomodoro Technique for time management. The basic idea is that you work in focused 25-minute bursts, with short breaks between bursts. You are supposed to use a kitchen timer to avoid getting distracted by looking at the clock.

Of course, as a computer guy I'd like my timer to be on my computer. I looked around for a Mac application that would provide an unobtrusive 25-minute countdown timer, but I didn't find any that I liked. So I decided to write my own.

Menubar Countdown is the result of that effort. It displays a countdown timer on the right side of the menu bar. It has menu items that allow you the user to start, stop, or resume the timer.

There are three options for what you want to happen when the timer reaches 00:00:00:

  • Play the system alert sound (which I never notice).
  • Display an alert window (which is effective, but you may not like the abrupt interruption).
  • Speak. This is my favorite option. You can specify what you want the application to say.

It's free software, distributed under the terms of the GNU General Public License.

Source code is included. Other neophyte Cocoa programmers might find it useful as an example of using such classes as NSStatusBar, NSStatusItem and NSUserDefaultsController, or for measuring absolute time in a Mac application.

You can download the application from my snazzy new corporate web site: Menubar Countdown product page.

New 15-inch MacBook Pro

A few days ago, I bought a 15-inch MacBook Pro. For those of you keeping score, that brings the number of Macintoshes in our household to five. We also have two iPhones and several iPods. I wish the local Apple Store had some sort of customer loyalty program.

I bought this machine for work. (My wife will snicker at this statement, but it's true.) I've been toting a Toshiba tablet with Windows XP to the office for the past couple of years, but with each passing month, I've hated it more. Most of my development work has been for Linux, and I haven't needed Windows much. So, I've decided I'll finally ditch PC's for good.

I will have VMWare Fusion running Windows, Linux, and FreeDOS. For a contract programming gig a couple years ago, I ran Windows on my 13-inch MacBook with Parallels, and that worked pretty well, so I'm confident that a beefier Mac with VMWare can handle all my Windows needs from now on.

The new Pro is pretty. For the past few days, I've been preparing it for service by installing all the necessary software. On Monday, I'll take it to work, but I'll also take my old Toshiba for a few days until I'm sure the new machine can take its place.

Troubleshooting the MacBook Air SuperDrive

My wife has a MacBook Air. One of the things that makes it so light is that it doesn't have an internal SuperDrive (writable DVD/CD). Apple sells a special external SuperDrive designed to specifically work with the MacBook Air.

Unfortunately, we couldn't get the SuperDrive to work. Any disc we inserted would be ejected, without being recognized by the computer. After a few days of struggling with this, we decided we'd take it back to the local Apple Store.

We live in the boonies, so a trip to the Apple Store requires D-Day-like preparation. So, the SuperDrive sat on the desk for a while. But then, my wife figured out the problem.

It was upside-down.

Yep, it was upside-down.

You see, Apple products aren't designed like other computer manufacturer's products. Most products have a shiny logo on the top of the product, and the bottom looks like a piece of military hardware. The MacBook Air SuperDrive has a shiny silver side, and a shiny side with an Apple logo.

It never occurred to us that the logo-side would be the bottom. She turned it logo-side-down, and now it works fine.

We feel really smart for figuring that one out. At least we didn't have to be told by a Genius at the Apple Store.

She Switched!

When I first started dating my fiancee, she made fun of my Macs. I told her I'd convince her to buy one herself someday. Her response: NEVER!!!

She kept that stance until she bought an iPhone. Then she started looking more closely at the Mac, saying stuff like "I really like that interface," and "I like how it turns on instantly when you open it."

Then she saw that MacBook Air commercial - the one where the computer fits in a manila envelope. For the first few weeks, she said it was cool, but she didn't really need one. About a week ago, she started trying to convince me that it would be a practical purchase. (I didn't need convincing; she was really trying to convince herself.)

Yesterday, she bought a MacBook Air.

However, I can't really savor my victory. I'm too jealous of her new toy.

Leopard Impressions

Unlike the Windows world, where operating systems upgrades are sources of frustration and loathing, among Mac users upgrades are met with enthusiastic interest. I've been using Leopard (Mac OS X 10.5) for a few days now.

The performance improvements promised by Apple are real. Everything feels snappier. Spotlight is actually usable now.

My favorite new feature is Spaces. Some say "Big deal. It's just a virtual desktop manager. UNIX workstations have had those for years." True, but it is an improvement over the original Exposé feature. Unlike other virtual desktops, it is well-integrated into the rest of the UI. Dragging live windows between virtual workspaces is really cool.

Time Machine is pretty cool too. Again, some would say "Big deal. It's just a backup/restore application. I can do the same thing with rsync." What makes Time Machine special is its simplicity. You plug an external drive in, and the Mac asks "Do you want to back up your main drive to this drive?" If you answer "yes," then that's it: you now have automatic hourly, daily, and weekly backups. Unlike other backup systems, Time Machine keeps all these backups available, but conserves drive space by not making copies of files that have not changed from one backup to another.

Time Machine is one of those amazingly great things that seems obvious, now that somebody has done it. I expect Time Machine clones to appear for Windows and UNIX very soon.

I do have some complaints about Time Machine: the UI is a little hard to figure out the first time you see it (and there is no menu bar or online help available in the app), and my MacBook CPU usage goes to eleven for a couple of minutes every hour while it makes the backups. I may turn off the automatic backups and switch to manual backups (right-click the backup drive and choose "Backup Now").

The new version of the Safari web browser is a lot more usable than the previous version, but I went back to Firefox after a few days. Firefox has more "power-user" features than Safari does, and I can't live without them.

I have mixed feelings about the "Leopard look." On one hand, brushed metal has pretty much disappeared, so we can rejoice. But there are other things that, while they look cool, actually make it more difficult to see important information: translucent menus, the 3D Dock, subtle folder icons, too-dark windows, etc. But it's not as bad as Vista.

On the whole, it's a solid upgrade. In a way, it is a bit of a letdown, because it is really just a polishing of an already-good system. Of its touted "300+ new features," few are going to change the way one uses their Mac. I haven't found anything that makes me say "Wow!" but there are a lot of little new things that make me say "Hey, that's kinda neat."

For a good in-depth technical review of Leopard, see the Ars Technica review. From that review, it looks like it is a great time to be a Mac developer—lots of cool new APIs and debugging aids. (Unfortunately, I'm still a Windows whore.)

To sum everything up: the upgrade was definitely worth $129 and a few hours of time. My only regret is that I didn't buy the "family pack" so that I could also upgrade my old iMac G5. Is it time to buy a new iMac?

Leopard Upgrade

I've upgraded my MacBook from Tiger to Leopard. I hit a couple of snags along the way; maybe this will help someone else avoid the same issues.

1. When I first attempted to upgrade, the Installer wouldn't allow me to select my hard drive for the upgrade. I have been using a copy of my original hard drive, and the copy was apparently not partitioned with "GUID Partition Table." It was booting fine under Tiger, but apparently there are new rules for Leopard. The installer offered to erase my drive for me and partition it correctly, but I didn't want to lose all my applications and data. The moral: when partitioning a new drive for use as a boot disk, click the Options... button in Disk Utility's Partition page and select "GUID Partition Table" (the default selection is "Apple Partition Table").

2. After installation, the drive started booting, but then just sat on a blank blue screen for a long time. This is apparently caused by an old version of Unsanity's Application Enhancer. To remove this software and let Leopard boot, follow the "Solution 2" instructions given here: http://docs.info.apple.com/article.html?artnum=306857.

3. My wireless Mighty Mouse didn't work at first. The Bluetooth icon didn't show up in the System Preferences, and the menu bar showed the icon but the menu said that Bluetooth was unavailable. After rebooting a couple times, Bluetooth magically reappeared and the mouse worked as before.

After getting over those little bumps, Leopard appears to be working fine, and it is worth noting that the serious problems would not have occurred if I was using the original Apple-installed hard drive and I had not installed any hacky software. So, can't blame Apple.

Syndicate content