Working on a Mac

Introduction

At my new job (at TripAdvisor), we were given the following choice for the work computer:
  • Linux workstation
  • Macbook Pro

The vast majority of my computing life has been spent on Windows, so either choice would present a significant change. I picked the Macbook Pro because I like the portability of a laptop: it lets me easily work from home, I can bring it with me to a meeting and also use it for non-work purposes. As I will be spending a lot of time on this thing, I will be posting my impressions of the transition here.

The Hardware

  • MacBook Pro
  • Intel Core 2 Duo 2.2 Ghz (dual core)
  • 2GB ddr2 800 RAM
  • 15" widescreen display, 1440*900
  • nVidia Geforce 8600GM GT
  • 120GB HD
  • OSX 10.5 Leopard

Since Macs and PCs use essentially the same hardware nowadays, there is nothing unusual here. It's a very solid system with enough horsepower to let me run Eclipse, a web server and half a dozen apps at the same time reasonably well. The only standout feature is the built in webcam, which has been largely useless to me, but is a neat toy with some fun software.

The only noticeable difference with Apple's hardware is the meticulous effort Apple takes in the look and feel. The whole notebook has a nice steel look with lots of rounded edges. The Apple logo on the back of the LCD lights up when you are using it and the tiny LED on the front of the laptop will slowly pulsate when you put it to sleep. Even the wires are made out of a nice white plastic and have simple very Apple-esque designs.

Overall, it's an attractive package, which is far more than I can say for my last laptop, the IBM ThinkPad T43. Apple takes real pride in its design and it's not shy about telling you that: when you open the box the laptop comes in, the first thing you see is a large piece of black cardboard, in the middle of which is proudly proclaimed, in elegant white text:

"Designed by Apple in California"




...of course, it doesn't say built by Chinese and Mexicans in sweat shops :)


The Software - The Good

There is one thing OS X has going for it that I desperately want in windows: the search box in the top right corner of almost every application window. You can see it in Finder, Spotlight, the Mail program, System Preferences, iCal, iTunes and tons of other programs. In each case, the program indexes its contents (the song names in iTunes, your email in Mail, etc) and as you type something into the search box, it instantly filters the results to just items that contain the search terms. It makes launching a program, finding files, finding emails, etc extremely quick and efficient. It's available to some extent on Windows with third party apps such as Launchy and Google Desktop, but system wide integration in OS X is incredibly nice.

OS X comes preloaded with a ton of software. Given that Microsoft was sued for including Internet Explorer with Windows, I don't know how Apple gets away with it, but OS X users should be happy. Some of the software I really like: iTunes is a very solid media manager. The Mail program and iCal blow away Outlook and its calendar, and you only get Outlook if you shell out extra money on MS Office. iMovie (from watching others use it) seems very impressive, especially when stacked up against Windows Movie faker.

iPhoto, iChat, and Safari I'm less thrilled with. They get the job done, but aren't anything out of the norm. Widgets (which are available for XP and Vista) I don't like on any OS. The Preview app, which is unique only for its "cover flow" ability is very pretty, but honestly, fairly useless. Thumbnail view, while not as pretty, is a much more efficient way to find something visually. Finally, spaces is a neat (although very old) idea, and the execution is decent, but as I have multiple monitors at work, I have no use for it. I also haven't tried GarageBand or Time Machine yet, although I hear good things.

OS X can also be fairly intelligent and well integrated. It does a lot for you (sometimes too much) that can be quiet useful. For example, as soon as you plug a monitor into the DVI port, it turns it on and extends your desktop onto it. In Windows, I'd have to dig through several annoying menus (which differ widely depending on your video card) to enable the second monitor. If you highlight a date or time in the Mail program it gives you the option to add an event for that time to iCal. If you have an icon for your user in OS X, Adium (a nice multi protocol chat client) will automatically use it as your buddy icon. Network computers are effortlessly visible in Finder which, as odd as it sounds, can sometimes make it easier to connect to even Windows networks on a Mac.

The Software - The Bad

Given the specs, OS X wasn't as responsive as I'd expect. It's by no means slow, but when launching apps and multitasking, there's a small amount of lag. I would guess that, like Windows Vista, all the extra graphical effects cause a bit of a slowdown.

Some small keyboard issues really irritate me on OS X. I understand the Apple button replacing the Windows button, but the changes are far deeper than that and oddly inconsistent. For example, if you push the Alt button in Windows, it highlights a menu at the top of the application. Alt + F often highlights the File menu. You can then use your arrow keys to browse the menu. OS X, as far as I can tell, doesn't have this. You either need to know the keyboard shortcut ahead of time or use the mouse.

The home and end buttons go to the beginning and end of a page, which is unlike every other OS on the planet, where they go to the beginning and end of a line. To emulate the proper behavior of home and end in OS X, you have to use apple button + arrow keys. This is an awkward combo to push and in Firefox, this actually will activate the back and forward buttons of the browser, which is a serious issue! Moreover, when using Firefox, instead of CTRL + T to open a new tab, you use Apple + T. But to switch between tabs, it's CTRL + Tab, same as in Windows. Obviously, some of this frustration is just the pain of switching between OS's, but a lot of it is inconsistent and illogical and could have been avoided.

Another odd thing is that when you close a program by clicking the red circle in the top left corner (the x)... it doesn't actually close. The window disappears and makes you think the program is closed, but secretly, the program keeps running. Your only clues are that the program still shows up when you Apple + Tab between programs. To actually close it, you have to use the menu or push Apple + Q. This seems like a very non user-friendly design, which is odd coming from Apple.

Browsing for files in Finder - largely because of the way user accounts are handled in Unix - is a bit unintuitive as well. It's often hard to see the proper file hiearchy, it's even more difficult to see files above your user's file hiearchy (this is somewhat by design) and the shortcuts in the left pane ("Macintosh HD", "Desktop", "Applications") only add to the confusion as you have no idea where in this hiearchy they fit. This is painful to someone coming from Windows, where I'm used to seeing every file and folder on the entire system. It is somewhat mitigated due to the wonderful aforementioned search feature but the file layout really should be cleaner.

Conclusion

Despite everything I say above, to be perfectly honest, during day-to-day usage, there is not much difference between OS X 10.5 and Windows XP. In the end, I'm still browsing the web with Firefox, coding in Eclipse, browsing files and folders, typing commands at a prompt and so on. Despite all the marketing hype, these two OS's are not polar opposites. They both do a few things very well and a few things very poorly. Everything in between - which is probably 98% of what you do with your computer anyway - is a matter of personal preference.

Personally, I would not buy a Mac for myself for a few of reasons:

* I build my own PC's, out of just the parts I want, which you can't really do with a Mac, although that's slowly starting to change as Macs use more and more standard hardware.
* Macs have far fewer games available.
* Actually, in general the amount of software available for the PC is greater than for the Mac. This is largely because the PC market is so much larger, but it's certainly worth considering.

Apple has come a long way from the original iMac and I'm relieved to say that OS X is a very solid OS. Given that the pre ~10.2 Mac OS's used to make me gag, this is pretty high praise. And who knows, maybe after using it for long enough at work, it'll start to grow on me. Or drive me nuts. We'll see.

New job

It has been officially announced at work, so I guess I can post it here now too: I'm changing jobs. After a year and a half of working at Cisco, I'm heading over to TripAdvisor (TA). It should be an interesting change, going from a massive company (60,000 employees) to a small one (~150 employees), 12-14 month release cycles to 2 week release cycles, and working on VoIP software/hardware to working on a website. I'm a bit nervous, but also very excited.

TA is in Needham, MA, so my commute will be about 9 miles and 10 minutes shorter. It seems like a great group of engineers, a comfortable work environment and apparently, a very solid revenue stream. They are redesigning their site and adding new features focused around the latest web 2.0 wave, including social networking, video, and the like. For example, a bunch of people already have TA's "where I've been" application on Facebook, which is a map where you put pins on places you've visited.

The interview with TA went well - a good variety of personality, experience and technical questions - and as usual, I came out of the interview knowing more than when I came in. I also had a second interview with them where I met the company's VP and CEO, which was cool. Of course, it made me laugh: at Cisco, we all feel "privelaged" to watch the CEO (John Chambers) on IPTV. And his visits to the Boxborough campus, which happen once every few years, are special events.

Why am I leaving Cisco? Cisco has treated me very well, I work with a lot of smart engineers, I have a great manager and I've put together some cool projects. I'm not miserable and would still recommend Cisco to a lot of people. There really isn't one major thing that bugs me, but if there's anything I can complain about, it's that Cisco isn't really a software company. Their bread and butter is hardware and most of the processes are tied into it. For example, release cycles are so long that software is often obsolete before it goes out the door. We spend an enormous amount of time planning a project and seem to refuse to accept that you just can't plan & predict everything. All the internal websites and tools look like they were built circa 1996 and add a huge amount of overhead to everything we do.

Many of these are a result of being a huge company. Many of these are constantly improving. But the software industry moves real quick and it takes an agile company to do something truly cutting edge and impressive. You can call Cisco a lot of things, but agile is not one of them. I'm young, motivated and it looks like TA can provide the kind of fast paced environment I need. I think it'll also be a great way to see how an Internet company is run. Of course, the big offer I got from TA helped the decision along as well.

I was also told that TA's standard starter package for a new employee consists of:
  1. Macbook Pro
  2. 30" display
  3. iPod

Not sure how I feel about developing on a Mac - I'm sure I'll get used to it - but #2 and #3 sound just fine. My mind is already racing with ways to improve the TA website. For example, I think it would be cool if the website had a "trip planner" section: a place where you can enter each of the destinations, how you're getting between them, the hotels you'll stay at, restaurants to eat at and so on. You can use it to plan the trip as well as tie in your reviews, pictures and videos when you come back. Other people should be able to comment on it, suggest improvements, ask questions and so on. You could store each set of travel plans in a "wishlist" of dream vacations and users should be able to rate them, with the most popular trips visible on the front of the site.

At any rate, it should be interesting working on a website that gets ~2 million unique visitors a day. My work will be visible to the world and my mom will finally be able to see what I do. Hell, up until recently, she thought I worked at the other Sysco - you know, the food company. Trucks would drive by and she'd proudly point out to her friends "that's where my son works." Oh well.