It’s just data

OS X First Impressions

I didn’t buy the mac-mini for iTunes, iPhoto, iMovie, GarageBand or the like.  While I may explore those later, I probably won’t.  Nor is it my intent to move my mail.  My intended use for this machine is mostly to run a browser and a few shell windows.

While Ubuntu’s approach is a delightful mix of YAGNI coupled with the ability to quickly and easily snap on more function as you need it; this Mac’s approach is definitely batteries included.  I say “this Mac” because I see Dave Thomas pointing to instructions that require quite a bit more than I had to do.

First step of any desktop OS (at least on Windows, Ubuntu, and OS X) is the same: locate the command prompt / terminal and drag it to the taskbar / panel / dock.  Much to my surprise, the fonts on the terminal window wasn’t all that great.  Turning on anti-aliasing and switching to Courier helped.

Initial version of .bash_login:

source /etc/bashrc
set -o vi
export PS1="\u@\h:\w\$ "
export RUBYOPT=-rubygems
export PATH=/Users/rubys/bin:$PATH
export EDITOR=vi

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'
    ;;
*)
    ;;
esac

I found that most tools I care about are already installed: vim, svn, ssh, apache, ruby, gem, irb, python.  With the exception of Python, none of those are automatically installed on Ubuntu.  On the Mac, all I needed to do is go into System Preferences -> Sharing and enable Web Sharing and Remote Login.

To date, all I’ve installed is Xcode (insert CD and click) and rails (gem install rails).  Both went smoothly.  The majority of the time was spent trying to figure out how to get the CD to eject.  Installing MYSQL is still yet to be done.  Perhaps that will be harder.

Much to my surprise, the Mac seems well suited for someone who prefers the keyboard over the mouse.  A number of differences to learn, things like: ⌘-W instead of Alt-F4.  Home and End are page oriented instead of line oriented.  Creating a second terminal isn’t done from the dock, it is done by entering ⌘-N from the keyboard when a Terminal window has the focus. I’m sure that all of this is tailorable, but I want to learn the system before adapting it too much.  The mouse is nice too: this is the first time in my life that I have a scroll wheel, and I’ve already found it to be quite handy.

A few things definitely have a cygwin-ish uncanny valley feeling to them.  vi /Users/rubys/Sites/index.html, for example.  Yech.


If tabs are your thing, you can also do ⌘-T to create a second terminal in a tab in the current window, instead of in a new window.

Posted by Paul D. Waite at

You should try Monaco as Terminal’s font.

Posted by David, biologeek at

If you feel like some of your command line tools are missing, have a look at MacPorts. Since you already have XCode installed, you should be able to compile and install anything that is not included by default in OSX.

Posted by Eric-Olivier Lamey at

Since you’re going to be spending much of your time in Terminal (a Cocoa app), you should check out Services (hint: hilite some text, then look at the Services option in the application’s first menu (i.e. Terminal for Terminal, Safari for Safari...))  Using the app ThisService you can write Services (think right-click applets) in any installed scripting language.  I’ve got ones that invoke Tidy, pipe text through Markdown and/or SmartyPants, do word counts, etc.

Also, check UnicodeChecker, a very handy application for working with character sets, encoding, escaping, etc.  It also has many functions which will work from the Services menu.  Highly recommended.

If you’re unsatisfied with your Terminal font choices, font installation is as simple as you’d expect — double-clicking .ttf or .otf files runs the most excellent Font Book app which gives you options for previewing the font, installing it systemwide or for a single user, etc.

Posted by d.w. at

When I was switching, the best piece of advice I received was “Cmd-H is your friend.”  That’s helped to send VPN windows and the like to places where they are less annoying.

A year or two ago, I began using a newline at the end of <code>PS1</code> (on all operating systems) after seeing a colleague using that style.  That’s been a welcome change.  YMMV.

Posted by Jeremy Smith at

For more keyboard love, you’ve got to have Quicksilver: [link]

Skim is the best PDF reader: [link]

Growl is a sweet event/notification framework that many OSX apps plug in to: [link]

Posted by Elliot Metsger at

The default file system for OS X is case aware but not case sensitive. For example, you could do ‘vi /users/rubys/sites/index.html’ and edit the right file. However, you couldn’t, for example, tab-complete that path w/o the correct case (eg /use<tab> wouldn’t work, you would have to use /Use<tab>)

Posted by Jim Jagielski at

However, you couldn’t, for example, tab-complete that path w/o the correct case

bashrc to the rescue:
set completion-ignore-case true

Posted by Seth A. Roby at

I really don’t like the idea of using:

export RUBYOPT=-rubygems

You can get a similar effect by simply requiring rubygems from within your .irbrc file.

I worry that with all the tutorials that have been written instructing people to set the RUBYOPT variable like this, eventually we’ll start seeing people writing code that loads up gems without first making sure rubygems was actually loaded.  IE, code will run perfectly in one person’s environment, but won’t run anywhere that RUBYOPT hasn’t been set.

I may be worrying needlessly, but hey, someone’s gotta do it.

Posted by Bob Aman at

Bob: I totally agree; that was something that caused quite a few head-scratches when I was deploying planet Mars. Once you realize what’s going on it’s an easy fix, but require ‘rubygems’ is only one line; if your code needs it you should add it to your code.

Posted by Phil at

You may wanna check out iTerm. The keyboard navigation is still quite a bit nicer than the default OSX terminal and it has a lot of other customizations you can do.

Posted by mikeal at

As others say.. try iTerm.  I prefer it to Terminal.app.

And you must install MacPorts.  Then ‘sudo port install mysql’ and forget about it.  In fact you may want to consider installing ruby, python, etc. via MacPorts (all to /opt/local/...) and then make certain the /opt paths precede your /usr paths in your PATH.  This way you can track the latest versions without stomping on the OS X install.

Posted by Stephen Waits at

I actually haven’t found iTerm needed on Leopard. Also, why did you need to install Rails? It should have been installed with Leopard.

Thanks for the prompt tips. I couldn’t get the set completion-ignore-case true to work, but I will find it!

Posted by James Deville at

If you like Ubuntu’s (or Debian, I guess) package manager.  Try fink: [link]  It adds all the apt-get functionality that makes life easy.

Posted by Dustin Whitney at

With the exception of Python, none of those are automatically installed on Ubuntu

Vim is as well. Pretty sure POSIX demands that vi (or some behemoth distantly descended from it) be present.

- Chris

Posted by Chris Cunningham at

Jim: yea, but did you look at that file?  ^m’s scattered throughout and all one line.  Yech.

Bob: I’ve been a victim of that too, so I empathize.  But not wanting to continue to be a victim, and seeing that that will be the default with Ruby 1.9 (and successor), I decided to succumb.

Chris: Ubuntu comes with vi, and makes it easy for you to replace it with vim.  OS X comes with vim.

Posted by Sam Ruby at

Personally, I’d rather know immediately that there’s a problem, rather than discovering when I go to deploy something somewhere.

Posted by Bob Aman at

MacVim [link] is a really nice gvim port.

Posted by Ryan Tomayko at

I’ve gotta disagree with the keyboard friendliness.
It’s not.
Windows, KDE, and Gnome are still better. Much much better (in most ways, but not all).
The only things better keyboard-wise about OS X in my opinion is that they (in some cases) use the “apple” key in the way Microsoft should be using the windows key and their accessibility features for blind people to navigate with the keyboard are very very good (for blind people). But windows (& kde & gnome) built in support of being able to access almost everything on your screen using alt+arrow keys and letters is MUCH MUCH BETTER for people who LOVE using the keyboard but who aren’t blind.

Posted by anonymous at

Great, keep posting your experience as a switcher please. I’m going to switch (from ubuntu) pretty soon as well and I’ve found your posts and all the comments quite delightful. Thanks guys I’m taking note! ;-)

Posted by michele at

Put the following in .inputrc:

set completion-ignore-case on

And then you can try to figure this out.  Ouch.

Posted by Sam Ruby at

I’m with Tim (scroll to Tools heading) in thinking that Preview.app is just spectacularly good at dealing with large PDFs - such as specs.

Dan Benjamin regularly posts good info for installing MySQL on OS X but there’s tons of guidance out there and it mostly ‘just works’.

For playing with MySQL, CocoaMySql just rocks 98% of the time (and crashes the other 2%).

Have fun.

Posted by Josh at

Incidentally, SubEthaEdit has the best encoding- and newline-fixing I’ve seen in a text editor.  Between that and collaborative mode, I bought both SEE and TextMate.

Posted by Ed Brannin at

Preview.app is just spectacularly good at dealing with large PDFs - such as specs

I call bullshit.  Nobody reads specs.

Posted by Mark at

As others say.. try iTerm.  I prefer it to Terminal.app.

While iTerm was much necessary under e.g. Panther and Tiger (10.3 and 10.5), the slew of improvements in Leopard’s Terminal make it pretty much unnecessary, in my experience.

Posted by Masklinn at

I call bullshit.  Nobody reads specs.

Oh Mark, you old cynic, I didn’t actually say ‘read’, did I?

Preview is fantastic because I can look something up in a PDF version of a spec using the built in search which happens to be the quickest, most effective way I know of extracting key information from a mountain of words that would, as you say, usually go unread.

Posted by Josh at

I recently found that those iBlah apps you are not planning to use take up a lot of disk space. Binaries are mostly small but data files (like GarageBand instrument samples) are not. You can use “Disk Inventory X” or JDiskReport to find disk hogs like them.

Posted by Don Park at

Although you’re EDITOR=vi you might like that native OS X text boxes support common Emacs control-key bindings (and more can be added, natch).

Posted by Ken MacLeod at

Any thoughts yet on Apple’s newly announced MacRuby?

[link]

Seems like a Mac OS X version of JRuby in that it can seemlessly access Objective C and Cocoa technologies. Apparently they’ve also been talking to the Rubinius folks as they’re keen not to fork, but remain compatible.

Posted by dave at

You may find some of my experiences useful. Or not. YMMV.

Posted by Norman Walsh at

For reading PDF-s on screen, I find the anti-aliasing of Adobe Reader sharper and easier for the eyes than Preview.

Posted by Kristjan Kannike at

Here’s one way to Fix your Home and End keys on OSX.

Posted by Philip (flip) Kromer at

Another nifty thing to try: System Preferences → International → Input Menu → enable Character Palette and Keyboard Viewer.  Now turn on Keyboard Viewer, and learn some of what the Option key gives you:  “ ‘ ” ’ ™ ©  … °.  Try Character Palette to get access to lots of Unicode characters.  (Try “View All Characters”, “by Category”, and then use the search box to search by Unicode name.)

Posted by Amit Patel at

Sam Ruby: OS X First Impressions

When someone says in 2008 that this is the first time they’ve had a scroll wheel I think you can ignore their opinion about modern technology....

Excerpt from del.icio.us/spullara at

This may or may not interest you, but I found it awfully convenient - [link] integrates svn directly within the Finder. Of course, if you like Path Finder, svn is also integrated within that app. Either way, you can svn from the command line or GUI.

Posted by Chris Pirillo at

Uncanny Valley? Nah, Most Software Just Sucks

I was reading about Sam Ruby’s experience as an OS X switcher and he mentions the phrase uncanny valley which is an interesting theory on the emotive response of humans to technology (robotics actually) based on how similar the tech is to...

Excerpt from Brooks Andrus at

Sorry, not to double-comment... but I just ran across this: [link] - might help ya, might not.

Posted by Chris Pirillo at

Add your comment