Search This Blog

Thursday, September 23, 2010

Leap of Faith: Migrating from Windows to Mac


(image credit: snow leopard from openclipart.org)

The Journey from Windows to OS-X



I've been a windows user for over 15+ years. Very recently, I had the need to simultaneously program on Android as well as iPhone. While it was pretty simple to get an Android development environment up and running on my laptop, iPhone development mandatorily requires a mac. Having to maintain two laptops and switch between them is a pain, so I thought this was the right time to fully migrate to a Mac laptop and take the leap of faith. So off I bounced to the Apple Store and asked a rep "I need a laptop so I can write programs for iPhone". I felt incredibly stupid saying this. It sounded like I was an antique way out of his league. The sales guy promptly flashed out a spanking new mac-book pro and told me this is all I needed to get started. The specs looked fine - 2.4 Ghz core 2 duo, 4 gig RAM, Wireless-N, 250GB Harddisk et al, so I knew it was a good configuration, hardware wise. Having never used the OS, I had no clue on how it would perform, but what the heck. I bought it and took it to office. I opted not to go for the slightly cheaper macbook and I'm glad I did not.



While I am a newcomer to the  OSX world, I am not a newcomer to Apple. Having embraced the iPhone 3GS, Iphone 4 and iPad a few years earlier, I quite expected Apple to live up to the standards of these devices when it comes to the laptop. I knew, however, that I depend on a lot of Windows applications which may or may not be available for the Mac, but like they say, I took the "leap of faith". I also knew that the "sticker price" for a macbook pro ($1199) was not going to stop there. Apple runs a dictatorial ship - it forces you to change your tools/equipments/habits to fully experience the benefits of their platforms...





My Windows laptop was a lovely Sony Vaio SZ650 - a very light (2.8lbs) high performance laptop which I've been using for the past 3 years and loved it. So here are my experiences, the challenges I faced and how I overcame them (and those I haven't found a way out yet):






Hardware & Aesthetics:



1) The macbook pro is a beautiful piece of work. The all aluminum uni-body with the backlit keyboard feels very solid and reliable



2) Love the glowing logo (remember, this is a section on aesthetics…)



3) The MagSafe connector's magnetic snap-on is wonderful. I can understand how it can stay tight as well as pop out if someone were to trip on your wire (it happened to me once - I was working on my laptop connected to a power source in the airport and a passenger strode by with her rolling bag yanking my power source out of my laptop across the room. Quite a nasty yank, that was)



4) I love the snapout wire organizing feature of the brick - you just wrap your wire all around it and it stays in place. Much better than the 'velco strip' solution of all the windows laptops I've had so far (IBM, Toshiba, Dell, Sony)



5) I like the fact that its DVD drive does not slide the dock out. You just push the DVD inside your laptop through the slot. Seems like a much more robust design rather than a flimsy tray sliding out

6) The multi-touch trackpad is great and the 'click anywhere' feature is nice too. However, I prefer 'tap to click' over 'click to click' (like in my Vaio) as it lends itself to 'quieter navigation' (useful when I'm working next to my sleeping son). While this laptop had a tap to click, I found it too sensitive and I was often making mistakes in Finder by automatically moving files around etc. I disabled it.



User Interface:



Naturally, having owned Apple products before, I expected the UI as well as Useability to far exceed Windows. Snow leopard did not disappoint there. Some highlights:



1) The Expose' functionality is super-duper. (For those who don't know what I am taking about, Expose' is a tool to easily switch between multiple windows that are open). Its really really useful when you have a lot of windows open and need to quickly dig out a window hidden deep inside. Beats windows task switch hands down.



2) Love the Dashboard overlay. I often need to use sticky notes and check time in multiple timezones. I don't want them to be omnipresent in my taskbar - I'd like to see it only when when I need it. A quick F4 and it pops right up and disappears back with the elan than you expect from Apple.



3) Love the F11 functionality - all windows on the screen slide out and you can access your desktop (okay, this is similar to show/hide desktop in windows, but with a million zings more of panache ;-) )



4) The dock rocks. Aesthetically wonderful and stable. I've tried various docs like RocketDock etc in Windows but after a while I've always uninstalled them - they make explorer slow, or are buggy, or are bloated.



OS functionality:



1) The Finder. Oh the finder. HUGELY superior to explorer. Let me list a few of the important 'whys' (for me) a) Great multi-column view option. If you think the column gets too narrow for a filename, double click on the parallel bars at the bottom right of the column and it auto adjusts to the largest file name b) Spotlight search - excellent and FAST search - keeps showing you locations where you search keyword occurs in files in real time. Much much faster than indexed search in windows. You will get used to it very quickly



2) Performance. While I've heard other wise from some folks, I've found Snow Leopard to be extremely stable. In the past few weeks that I've owned the macbook, I've been doing some heavy duty coding, image editing, document authoring with large files etc. Never an issue, never a crash. Xcode crashed on me once, though. Tough luck, but in general nothing to complain about. Boot up is very very fast compared to XP.



3) Cleaner App management - I love this. My biggest problem with Windows was if I ever installed an app and then removed it, it would still leave behind all sorts of gunk in the registry, system32 and what-not. In Mac, most of the app is bundled in a directory in the /Applications folder, some data in ~Library/Application Support and in /Library/Preferences. If you remove data from these places, your app is gone. (The exception is those apps that launch a service - you may need to stop the service, delete additional files from /Library/LaunchAgents and/or /Library/LaunchDaemons, and some associated plist files...)



4) Unix roots. Just more stable and clean. And with a UI thats far ahead of any Linux distro ever (including Ubuntu)



5) Access to most  unix tools (especially after you install macports). If you are a power user, you love the terminal. You will want to drop into it and skip the UI once in a while. You can do that well here. win CMD sucks. I hate it. When I used the command prompt in windows, I felt like it was intentionally designed to make you  feel like scum-of-the-earth for having to use it.



6) Excellent battery life. I've used it for 6-7 hours without a hitch. Apple says 10 hours. I'll try it one day over a long haul flight. (No, I did not watch a movie all that time - I was emailing/editing/browsing)



7) Bundled multimedia apps are great: iMove and yada yada. I'm not a power multimedia user....



8 ) Automator - haven't tinkered much with it, but reading about it seems like its very powerful. Need to tinker when I get some time (google for it if you don't know what it is)



9) Application Performance: I've found snow leopard is spiffy to load all apps. The exception is Microsoft Office - it loads slower than in windows. I am told Office 2011 will be much faster. Don't know. Not that its SLOW, but its slow-er than the Win version. The only other time I've found an app to run slower was because it was for PowerPC and I was running on Intel (the new macs are all intel based). I never realized it, but when I went to System Profiler, it told me that app was for "PowerPC". I was surprised how it ran on my Mac. I then realized that Apple included a platform called Rosetta, that converts PPC to Intel code on the fly. Of course it would be slow! I'm happy it ran! Anyhow, after I upgraded the app to the latest version, it was super fast, because it was for native Intel platforms. Something for you to remember.



Programming:



1) If you are into mobile programming, I'd be surprised if you are not into iPhone and Android. Clearly these are two of the most wanted skills right now. The reason I bought a mac was so I could program for iPhone (Android works well in windows). Having one laptop for both beats having two. Eclipse runs great, and so does Xcode. Android and iPhone, covered. Also, if you need to recompile custom kernels for Android and are stressing that the MacOS filesystem does not support case-sensitiveness in filenames, there is an easy fix. Create a virtual disc, format it with HFS+ with case sensitive support and build your kernel there. Google around for some more patches on how to get a compile for Snow Leopard. Once you have applied these, you'll forget about it.



2) I have been a long time VIM user. For MAC, get MacVim. No worries. (Although I see myself using it lesser these days as Eclipse and Xcode are better for mobile programming IDEs with their own editors)



And now, the most important thing: Windows compatibility apps:



Remember, I've been a long time windows user. I've gotten used to many things and I need compatibility. More importantly, all my colleagues are windows users. They'll go nuts if I start using different formats, talk about odd things like 'Data and Resource forks' and what not.



So how does the macbook deal with windows compatibility? Rather, how did I fare in bridging the gap?



1) Install VirtualBox. Its free, and fast. Install XP in it for those once in while times when you need windows (and I'll tell you why). I did not see the need to buy parallels or fusion, or even try them. Virtual box was excellent for my needs. AND HERE IS A TIP: DO NOT SHUT XP DOWN EACH TIME. Yup. Instead, use the "Save state" button of Virtual Box. It stores a copy of the OS state on disk and when you bring it back up, it pops up with a working XP version in 10 seconds flat. How convenient is that? Update - Jun 2012: I settled on Parallels Desktop, eventually. VB was good, but too limited when it came to sharing items between Mac and XP. Both VMWare Fusion and Parallels Dekstop had much superior sharing features. Parallels was the fastest of the lot too, in terms of startup/sleep. 



2) Email: My company uses Lotus Notes. For many reasons, which I won't go into details right now, I think its a fabulous 'groupware client' if you need those features (and we do). Fortunately, my office IT had a mac version. If you need LN for mac, install 8.5.2 and not 8.5. 8.5.2 is just better in many ways (again won't go into details here). PS: A tip - for all you LN mac users who are frustrated by people are receiving HQX attachments of files you send out - its a simple fix - change MIME encoding in LN to use Base64 instead of Mac encoding and its past.



3) Office Productivity tools: (PPT/Word/XLS): Yep, this is 70% of my day job. It is my survival equipment. Simply put, if you want full MS compatibility and not have your colleagues pull their hair out with the stuff you send, continue using Microsoft. OpenOfice, NeoOffice and what-not are disastrous in the compatibility area. They all advertise compatibility, but any semi-complex document messes up.  And herein lies the Mac challenge. I use MacOffice 2008. I'd like to say its almost there, but not fully there. It does a good job at word, recognizes smart objects in ppt, but won't load excel sheets with VB Macros. It is just this ONE TIME (Actually another two times as well in the next few points), when I need to use my XP VM and use XLS (Our travel reports XLS uses VB Macros). MacOffice 2008 clipart integration is also horrible. Its 2001-ish. Online cliparts are not integrated. You need to open their webpage. These issues are however  short-lived. I know Mac Office 2011, with a release in Oct of this year will fix that. Then I'm done. I'll still keep the XP VM (just in case, and the fact that I find it uber-cool to run both and keep switching for fun). Update - Mar 2011: Office 2011 for Mac may be a big improvement but its still a piece of junk compared to windows. It's slow, crashes often and does NOT have all the features. I still use office in  virtual box.



4) Synchronization: OUCH. Here is the deal. Macs use HFS while Win uses NTFS (or FAT32). Its a b*tch trying to synchronize. The tools I've tried include SilverKeeper, which came close, but insisted on creating a multi-gigabye 'Sparse File' which would store attribute details of HFS in a windows drive so that sync works. Nope, I don't want it. How did I fix that? Well, I've been a long time user of SyncBackSE. Its a great sync software and paying for it was well worth it. Instead of beating my head with directly syncing from snowleopard to my network drive (an NTFS formatted 2TB western digital drive), I installed SyncBack in VirualBox XP and I launch synback from there - I share my sync point between my mac and the XP instance . It syncs great so far. Problem solved.



5) Password Keeper. This is a small one - I'll replace with a native app soon, but I've been a long time Password Corral user. Its free and does its job. All my other computers are PC and that is why I need to keep then in sync (above point) as well as use the synced data on different PCs. Password Corral does not have a Mac Version. I could run it in xVM as well, but its not an intensive app like SyncBack SE. Instead, I simply installed WineBottle (a wine based Mac tool for running Windows apps in Mac) and it created an applicaiton bundle so I can launch password corral directly from snow leopard. Its a little slow (as it internally also launches an X server), but I use it infrequently and those few extra seconds of delay are ok. Like I said before, I bet there are multi-port password apps there (free) which I will replace with shortly. (Update: 24 Sep 2010: I've replaced Password Corral with KeePass, an open source secure password desktop app, with a mac port called KeePassX)



6) Those Nasty .DS_Store files: Mac users never see it. In my case, I use windows based network shares a lot. I noticed that each time I access them and udpate files, Mac leaves these .DS_Store and ._ files around there which irks my colleagues. Simple fix. Download TinkerTool, and check the option that says "disable leaving DS_Store files in network drives". That's all. Your windows colleagues won't howl. There is a minor disadvantage in that if you visit that drive again, your folder preference won't be remembered. Not a big thing for me. (PS: Tinkertool is a greal tool for changing other settings as well - you can do them using the terminal as well, but this app makes it much easier)



7) Remote Desktop connections: There are multiple ways. You can use VNC, you can use RDP clients, or you can use HTTP based solutions. I've been using LiveMesh from microsoft. It works great through firewalls, lots of good features and very fast. Mac has a LiveMesh client, but not for screen sharing. So for this, I switch back to xVM and run live mesh there. My needs are brief - quick control/copy etc. and then get out. Hence xVM based performance is fine.



What apps would you need that don't come with the mac? Here is my list:



1) Pay for LittleSnitch. I did. Awesome app. Monitors outbound connections with a very nice UI and allows you to allow/block. I wish there was a good freeware avaialble that was as good, but there isn't (as good, there are ones that are not good). Considering the functionality, I expected it more to be of the $9.99 category, but its $30. Anyhow, kudos to them for a nifty app.



2) FTP client: I used Filezilla in Windows. There is a MAC client for it too, but CyberDuck is cuter and aesthetically better. Its free



3) MacVim: gVIM's mac port if you are an avid VIMer. I am. If you prefer, get TextWrangler instead. Both Free.



4) IM/Chat: I used Pidgin for windows. I use Adium for Mac. Much better interface. Free.



5) Multi-DVD spanner backup: I am a photographer. I need to make sure I don't lose old images - you never know when a guy wants to purchase a print you took 5 years ago. I backup to my network drive, as well as to DVDs each year. Get DVD Spanner. It's free. It spans your backup across multiple discs. [Honest admission: I am yet to use this tool]



6) Media Player/Converter: I like to have ONE tool that can play all media formats and ONE tool that can convert from anything to anything. In Windows, I used VLC and HandBrake. I use the same two tools for MAC too. Both free (If you need your own DVDs in native format, however, there is no Mac freeware like DVDFab for windows. You need to buy MacTheRipper 4 (or download its freeware version 2).



7) VPN: I use an OpenVPN server at home so I can connect to my home devices while I am on travel or at office. MAC has a freeware solution called Tunnel Brick which I use now. Works just great (for $9.99 there is Viscocity as well with a better UI. Price is fine, but I did not feel I needed it when Tunnel Brick did just great)





5) Encrypted drives: I keep all my personal/sensitive data in encrypted drives. Before I sync, I mount them, sync and then unmount so sync works great and my data is secure. I use TrueCrypt. Its there for Windows and Mac. Free.



6) SVN: If you need to program, you likely need to connect to an SVN. While Mac has some good clients like SmartSVN and SVN client from the tigris folks, starting snow leopard, Apple removed finder integration, so you won't see the green or red status icons inside Finder. You will need to use their own SVN browser apps. That's not nice, but that's life. I mostly use command line anyway, but hope this gets better. Both SmartSVN and tigris SVN client (SCPlugin) are free (SmartSVN has a free and paid version. The free version gives me everything I need)



7) Browser: I love Chrome. More than Safari. Chrome for Mac is great. Its free.



8 ) CardScan: My role is customer facing. I meet a gazillion customers and exchange cards. CardScan is an essential utility. While I run Cardscan using my xVM today (oops there goes another use of xVM), there is a problem: It does not recognize lotus notes databases made by LN for Mac. Bummer. My workflow is that cards I scan are auto-synced with Lotus Notes, which in turn syncs all contacts with our LN server. We have LN Traveler installed, which in turn OTA pushes all of them to my iphone. There is a solution for this ofcourse, CardScan sells the Mac version at an exorbitant $250+ fee. I'm going to have to bite and install it. No other way. Once I do, I'll forget about this too :-) Update: Sometime in 2012: I bought cardscan on Mac, and it's a terrible terrible product. Its OCR is vastly inferior to the Windows version, crashes often and offers very limited sync. Read a post titled 'sync dystopia' in Jun 2012 on my blog for more details on that :-)



9) (Updated Sep 25) On Quicksilver: There is one app that is rated to be one of the very best. It's called QuickSilver. Its a very powerful launcher+ much more. If you are a QS fan, make sure you update the FileCompress plugin after install (forgot the link, but there is one updated in 2010, which works to produce ZIP files as well as works with "," operations which is very useful and works great with snow leopard). I've read its manual (127 pages - so you can image how powerful it is). Its is a super powerful application. However, my current feeling is that it aims to replace the User Experience of Snow Leopard inside its Object->Action interface which is fast, but, well, if I can do everything inside it, I'll stop using the better user interface of the OS. So I am not sure how much I will use it, even thought I tip my hat to the excellent power features. It's sort of in between a unix terminal and a GUI. The one QS feature I do intend to use a lot, however, is the Process Actions. Love the fact that I can select multiple running processes with "," and send them commands, run LSOF on them etc. Very handy. Who knows - maybe I will start using its other features too over time ;-) Update: Sometime in 2012: I've never found a need for QS. The inbuilt search of OSX is powerful enough.



The other things I needed to buy:



Remember I said earlier, when you move to Apple, you sell your soul to the Apple Gods. You need to learn their ways. Your own ways are irrelevant:) So what did I need to buy after the $1199 laptop?



a) I had to upgrade my monitor. Why? The pixel grid. simply put Windows font rendering technique makes fonts look sharp on lower ppi screens while Apple's font rendering chooses to be closer to the real font design. So apple fonts look great on higher ppi monitors like their own macbook pro screens or apple cinema displays but give you a miserable headache if you were to see it on a usual 19 inch 1280x1024 resolution screen. If you are interested, read or google for many other articles on "apple vs microsoft font rendering". There was no way I was going to buy an $800 apple cinema display, but nor was I going to let my eyes to to hell. After trying a few combinations, I finally settled on the Samsung SyncMaster BX2250. It packs a 1920x1080 display into a 21 inch monitor, so I get more dpi and as a result, the screen looks perfectly palatable and doesn't kill my eyes. It's not a cinema display, but hey, I don't need to kill my eyes. That's another $250 ( I tried the 1600x900 Syncmaster 2050 or something earlier, did not do a good job with the fonts)

b) I had to get an Apple keyboard. Win keyboards work too,  but you don't get access to the special keys of Mac which I am using all the time. $49.



c) Macbooks don't have docking stations. I for one think they are uber-useful.There are some solutions like BookEndz (crazy expensive at $250 and, er, ugly) and Henge Docks (nice price, great looks,  but don't like the idea of keeping my laptop vertical), but these are just wire organizers. So I had to buy a USB extender - that way all my USB devices (keyboard, iphone connector, cardscan) all sit behind it and when I come to office, I need to plug in just my power cord, the minidisplay and the one USB cord. $30 more.



d) Macbooks don't have a DVI/VGA out. They just have their mini-display ports. I don't like having to carry a 'display adapter' cable when I travel (I make a lot of presentations and mostly all projectors use VGA). Anyway, so you need to buy 2 adaptors (one to keep in your bag for travel and one in your office - if you are a frequent traveler you will appreciate the need for redundancy). Thats $29 + $29



e) Backup magsafe power adaptor (love them, but $80 - really!) - same reason as above



f) I am eventually gonna spring for CardScan for Mac - its a necessity for me - thats going to be $230

g) I bought a magic mouse too - but returned it. Complete junk as far as I was concerned. Great features, but FAIL on ergonomics.

h) I bought a wireless apple keyboard before I bought the wired one - again, returned it. Too small. Bluetooth was horrible. Keyboard disconnected when I would do heavy file uploads/downloads





Final thoughts:



a) Was my leap of faith worth it? Totally. Loving the notebook. Its sexy, great for programming, good for office productivity, rock solid. It also looks good with my iphone  and ipad ;-)

7 comments:

  1. @Peter, all good points. My only comment: You noted mac apps are cheaper. Is that really so? It looks like windows apps are cheaper and often free, but the equivalent mac app would be charged for.

    ReplyDelete
  2. Just perfect.Maybe I can try this way.

    ReplyDelete
  3. [...] Source : http://blog.roychowdhury.org/2010/09/23/leap-of-faith-migrating-from-windows-to-mac [...]

    ReplyDelete
  4. [...] while ago, I moved from windows to mac, as I documented here. In general, when I wrote that article, there was a good amount of euphoria about the entire [...]

    ReplyDelete
  5. Thank you for the auspicious writeup. It in reality was a amusement account it. Look complicated to far delivered agreeable from you! However, how can we keep in touch

    ReplyDelete
  6. Sustain superb piece of work, Someone said few web sites on this web site and i conceive that your particular internet site is rattling interesting and contains plenty of fantastic information.

    ReplyDelete