Macbook Pro Retina a treatise in patience


So what’s all the noise about this new Apple laptop? For me it was more about modern processors, better video processors, and well memory.. 16GB of memory to be exact. The realization that my 30″ Cinema HD display could really get it’s game on. So what’s the reality?

The waiting process, baseline estimates of 3-4 weeks with delivery dates in the 4-5 week timeframe. Payed for expedited shipping only to have Apple refund that after complaining about the waiting and poor communication. Apple also gave away super drives (a $78 value) to those dedicated customers who ordered early and complained.

Laptop arrived and I found several things to be fascinating;

1) The Macbook Pro Retina does not appear that it was ever intended to run OSX Lion, as basic things like USB3 did not work when shipped. (More on USB3 later)

2) If you have the Apple 30″ Display it really does matter if you have the dual-link dvi connector versus just the mini-display to dvi connector. With the later you only get 1024×768 and on that display its quite awkward.

3) 16GB of ram really does matter.

4) I am still core dumping from time to time with hard resets or lockups. Seems mostly I/O related. Doing heavy lifting with iPhoto… iPhoto crashes from time to time.

5) USB3 is really a great alternative to Thunderbolt. While most cost effective drives don’t have throughput over 5Gb/s, USB3 does 6Gb/s much better than USB2 that does 480Mb/s. Thunderbolt is overkill with it’s 10Gb/s+ ratings. My 7,200rpm drives do just fine (screaming fast) on USB3.

6) It’s all about the Retina, well not really.. I am concerned about Retina actually it seems that the GPU is maxed with the resolution requirements, and while that never really bothers me the main issue is the drives don’t really let you decrease resolution. So yes, you get really great built-in screen but there is kind of a so what factor. I was greatly disappointed that there was not a matt screen option for dealing with usage in direct sunlight. While the Retina is not as bad as the old glossy displays on the MBP, by no means do they match the Matt displays.

7) I am most disappointed in the lack of a Thunderbolt hub and firewire (yes I know Firewire is dead but I still have an old external iSight). The Thunderbolt to firewire is due out in “July” or so the stores don’t really know but thats the online rumors. I have yet to use my Thunderbolt to Gigabit Ethernet. And my initial attempt at using HDMI for an external display resulted in using the Mini-display to DVI cable instead for a much better picture.

Overall, I am excited for the release of the Mountain Lion on July 25th, 2012. It is my expectation that this was the intended OS for the Retina and we should see little annoyances go away. With the incremental patches from last week many annoyances (like USB3) already have been fixed. The upgrade using a Time Machine backup was pretty easy (as have been recovery in the past). I did have a problem where I had to manually restore the Applications directory but that was the only hiccup.

So far Time Machine backups on a GoFlex using USB3 has made backups much faster. I find myself more productive with the new capabilities. A common remark among friends that rings true… I never realized just how slow my old laptop really was and just how much that slowed everything down.

How to fix mach-o, but wrong architecture on OSX Snow Leopard for Ruby Gems Bundle Files

Ran into the annoying mach-o problem for compiled rubygem extensions on a few gems (mainly RedCloth and CSVScan). First pass at Google rendered a few people who had experienced similar problems but no real solutions. Finally broke down and figured out how to fix it.

First, what is the problem; in the land of OSX you have many architectures this includes the old PowerPC world, 32-bit (i386), and 64-bit (x86_64). In the old world everything was always 32-bit and nobody was the wiser, but with Snow Leopard the world changed and suddenly you could run things in 64-bit. So here’s the rub, 64-bit and 32-bit dont play nicely together. They are consider different architectures and even as Apple has done a great job to provide 32-bit emulation when you have a 64-bit app that tries to access a 32-bit library or vs versa things stop working.

The fix is pretty simple, figure out what architecture your primary application is, then re-compile the library to comply. This error pops up usually as a “mach-o, but wrong architecture” error. And this is true across all languages but in this case I will explain how I fixed my rubygems that had incompatible bundle files.

Step 1: Identify which architecture you need. This goes both ways, if you have a 32-bit app with a 64-bit library you need a 32-bit library to run. If you have a 64-bit app with a 32-bit library you need a 64-bit library. Easiest way is to use the “file” command. If you dont mind larger executables you can compile all architectures in, but this wastes space. Below see a few examples.

prompt$ file /usr/local/bin/ruby
/usr/local/bin/ruby: Mach-O executable i386


$ file /bin/ls
/bin/ls: Mach-O universal binary with 2 architectures
/bin/ls (for architecture x86_64): Mach-O 64-bit executable x86_64
/bin/ls (for architecture i386): Mach-O executable i386

In the case of RedCloth, removed the 64-bit bundle;
$ sudo /bin/rm /usr/local/lib/ruby/site_ruby/1.8/i686-darwin9.5.0/redcloth_scan.bundle

$ cd /usr/local/lib/ruby/gems/1.8/gems/RedCloth-4.2.2/ext/redcloth_scan/

Now you can edit your Makefile to include the ‘-arch i386’ or ‘-arch x86_64’, once again you can add one or both. For some reason most of the gem builds scripts don’t account for what version of ruby you run and default to 64-bit which is where the problem originates.

Edit your CFLAGS and ldflags or archflag and just add ‘-arch i386’ or ‘-arch x86_64’ to the lines. Run a make clean; make … then go back to the root of your gem and run the ruby setup.rb install. Make sure you dont re-run config as this will overwrite your Makefile changes. This will install your new bundle and you should be ready to go.