giant robots smashing into other giant robots

Written by thoughtbot

Episode #32: There is an excited you in there

Ben Orenstein is joined this week by Daniel Jalkut, the developer of MarsEdit and other fine software. Ben and Daniel discuss the origin of Daniel’s twitter username, his history at Apple and his work there, and how it influences what he builds today. They also discuss the challenges of running your own company, and how Daniel’s priorities and rule systems help him get things done, how the success of MarsEdit takes up his attention at the exclusion of other ideas, and how he thinks about failure. Then then go on to talk about App Store versus direct sales, why Daniel still sells his software outside the app store as well as in it, and what the breakdown of sales are like there, as well as Daniel’s thoughts on App Store pricing and the benefits of being in the app store. Finally, Daniel tells us why he thinks git is like a PC and Mercurial is like a Mac, why he dislikes git, what he thinks makes a good podcast, how his podcast has changed, and much more.

sikachu

The Hitchhiker’s Guide to Riding a Mountain Lion

roar

Earlier today, OS X Mountain Lion was released for all users in the Mac App Store. As a member of the Mac Developer Program, I decided to tame this wild cat early on, jumping on the beta tester bandwagon since the Developer Preview 4. Here are some of the things you should consider as you make the switch to this shiny new operating system.

The Upgrade Process

After I downloaded the 4GB installer from the Mac App Store, the whole upgrade process took me about 45 minutes on my 15” 2010 Macbook Pro with an SSD drive. It was a simple and straightforward process as the installer takes care of everything.

Once the installer is done, we need to do some additional work to get up to speed once again and be able to compile Ruby (using RVM or rbenv) or install packages using Homebrew. Hold on to your champagne for now.

Getting Xcode + Command Line Tools Installed

You can get Xcode from the Mac App Store. You’ll need at least version 4.4 of Xcode for it to work with OS X Mountain Lion. After the installation, open up Xcode in your /Applications folder. You’d want to go to Xcode -> Preferences -> Downloads tab then install the “Command Line Tools.” After you’re done, quit Xcode and fire up Terminal.

Fix Homebrew + install GCC

After the upgrade, Apple will set the ownership of your /usr/local folder to root. You can easily fix this by running this command in Terminal:

sudo chown -R `whoami` /usr/local

Next, you need to update Homebrew:

brew update

If you need to install any Ruby that’s older than 1.9.3, such as 1.9.2, 1.8.7 or REE, you’ll need to install GCC 4.2. Apple does not ship the Command Line Tools with gcc-4.2 compiler anymore (you can check by running which gcc-4.2), so you need to install it via Homebrew. By default, Homebrew doesn’t include any formula that ships with the OS in the main repository, so you’ll have to enable homebrew-dupes repository by using brew tap

brew tap homebrew/dupes
brew install apple-gcc42

Voila! Now you can compile any library that requires non-LLVM GCC.

Note: If you were using a binary package from MySQL website to install your MySQL server, you will need to change the ownership of your MySQL data directory back by issue this command:

sudo chown -R mysql:mysql `brew --prefix`/mysql

Reinstall X11

Now, if you’re still using some application that depend on X11, such as Divvy or gitk, you’ll need to install X11 as well. Apple has already removed X11 support from their operating system, but you can still get the X11 package from XQuartz. I’ve been using their 2.7.2 release, and it’s working fine for me.

Word to the Wise: Backup Your System

Before performing any major upgrade, always make sure that you have the latest backup of your Mac. If you already have Time Machine set up, all you need to do is intiate another manual backup. It’s also a good idea to verify your backup afterward to make sure that it’s working.

If you have been leading a carefree life and did not bother setting up Time Machine, or would like to make sure that you can come back to Lion if something is broken, I would suggest using Carbon Copy Cloner to clone your internal hard drive to an external one. (Once the upgrade is done, I would still recommend you set up Time Machine.)

ROAR!!!

Finally, your developer machine has been upgraded to OS X Mountain Lion. I hope you’ll enjoy the new features as much I do. Happy coding!

Updates

When installing Ruby 1.8.7 with rbenv, there were compilation issues due to an issue with Tk. After digging through the output log, it turns out it was looking for an Xlib header and failing. This can be resolved by exporting an additional include path to GCC:

export CPPFLAGS=-I/opt/X11/include

cpytel

More on the Mac

Ok, so I’ve finally convinced myself to use Safari. Now that I’ve gotten used to it, with the native UI widgets and overall good performance I wonder what was holding me back in the beginning – I’m still not sure.

For programming, I’ve been giving TextMate a try, but with the 30 day trial eventually ending (funny how that happens), I’ve decided to give something else a spin before purchasing it, so I’ve been using JEdit, and I must say that it is solid. It was key to turn on font smoothing (textmate spoils you in that department), and install some plugins before really being able to use it.

cpytel

Week 1 as a mac user

Well, its been exactly one week since I first got my MacBook Pro (the standard 2GHz model), and I thought I’d share some thoughts from a new Mac user.

  1. Macs are cool. From the way they look (both externally, and on the screen) to the way they work, Macs satisfy a lot of the need for something cool that a lot of tech people have, myself included.
  2. Macs are just slightly different enough to give you a few hangups. This is to be expected, of course, since its an entirely different platform, but there are some things that are slightly different and they really throw me off, particularly in the typing department. The biggest one of these is the Home/End difference. On Windows, the Home and End keys take you to the beginning and end of the current line, respectively. On the Mac, the Home and End keys take you to the beginning and end of the entire document (and the crazy,crazy combination Command Left/Right takes you to the start and end of the line). I’ve tried both the properties change you can make and the program DoubleCommand which will remap these to what I’m more familiar with, but it doesn’t work for some reason. Probably because I’m using Synergy and a Dell keyboard on my Windows box.
  3. iCal needs an upgrade. iCal seems like an great program, and I really want to use it, but the fact that it can’t publish and subscribe to the same Calendar, and the fact that SSL support is broken are deal breakers.
  4. I can’t use Safari. Why?. For the most part, I’ve attempted to make a concious effort to give the “default mac way” of doing things a try before I don’t do them anymore, but for some reason I can’t bring myself to use Safari, and I can’t figure out why. I constantly go back to Firefox. It may have been the fact that tabbed browsing wasn’t enabled by default, but I’ve fixed that and still haven’t been satisfied.
  5. Mail.app is very good. I’ve switched from Thunderbird to Mail.app and not looked back.

Anyway, those are some initial thoughts… Can’t wait to see what week 2 brings.