mac

Setting Up a New Mac, My Way

Over the past couple of weeks, I've set up a few Mac OS X machines to do development of iOS and Android apps. Doing this used to be an all-day chore, but things like app stores, iCloud, and Dropbox have streamlined the process a lot.

(I could streamline the process even more by cloning an existing drive or virtual machine, but I'd rather install everything from scratch to avoid the presence of old cruft.)

As a reminder to myself, and to help out anyone else who needs to do this, here is my procedure for setting up an OS X machine the way I like it:

  1. Install/re-install OS X.
  2. During the OS X setup process, use the same login account name and password that I use on other computers, and provide the Apple IDs for iCloud and iTunes (which are different, in my case).
  3. Open System Preferences and do the following:
    • In the General panel, set Sidebar icon size to Small and Show scroll bars to Always.
    • In the Mission Control panel, uncheck the Automatically rearrange Spaces based on most recent use box.
    • In the Mouse and Trackpad panels, set all speeds to two ticks less than the maximums, and enable all the gestures.
    • In the Keyboard panel, set Key Repeat and Delay Until Repeat all the way to the right, and check the Use F1, F2, etc. keys as standard function keys box
    • In the Keyboard panel, go to the Shortcuts tab, select Services, and then enable the New Terminal at Folder service.
    • In the iCloud panel, enable everything.
    • In the Sharing panel, set the Computer Name to something unique (not "Kristopher's computer") and enable Remote Management, Remote Login, and File Sharing.
    • Set up Time Machine
    • If this is a virtual machine, go to the Desktop & Screen Saver panel and turn off the screen saver, and go to the Energy Saver panel and set the sleep sliders to Never.
  4. Use the Software Update... menu item to install any system updates that are available, and reboot if necessary.
  5. If this is a virtual machine, install VMWare Tools or Parallels Tools.
  6. Download and install these packages (using serial numbers and licenses stored in 1Password):
  7. Open the App Store app and install these applications (skipping any that are not needed):
    • Xcode
    • CodeRunner
    • OS X Server
    • Moom
    • PopClip
    • Alfred
    • Pages
    • Soulver
    • Evernote
    • Sketch
    • Skitch
    • Pixelmator
    • MultiMarkdown Composer
  8. Open Xcode, accept the license agreement and download simulators and documentation. On a Terminal command line, execute xcode-select --install to install the command-line tools.
  9. Install Homebrew
  10. Open the Terminal application and run java. Download and install the JDK when prompted.
  11. Download and install the ADT Bundle. (Note: This is old; now Android Studio is the thing to download and install.)
    • After installation, launch the Eclipse application. Choose the Android SDK Manager menu item, and install/update everything in these subtrees:
      • Tools
      • Android 4.3 (or whatever the newest API level is)
      • Extras
    • Choose Help > Install New Software.... Click the Add... button. Add this repository and install the Eclipse Color Theme plugin:
      • Name: Eclipse Color Theme Update Site
      • Location: http://eclipse-color-theme.github.io/update/
    • Download and install latest the HAXM driver from https://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager. (If that link is broken, go to https://software.intel.com/en-us/android/ and look for a HAXM download link.)
  12. Set up ~/.bashrc to run my shared scripts that are in ~/Dropbox/bin.
  13. Execute this in Terminal: chflags nohidden ~/Library
  14. Set up ssh keys for Bitbucket and GitHub.

Then to verify everything is ready to go, I use Git to grab the source code for an iOS app, and build it and run it, and then do the same for an Android app.

(For my Windows setup, see Setting Up Windows, My Way.)

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 far away from civilization, and a trip to the Apple Store requires D-Day-like preparation. So, the SuperDrive sat on the desk for a while. Then my wife figured out the problem:

It was upside-down.

Yep, we were trying to use the SuperDrive when 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 Soviet 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?

Syndicate content