Geekery, Technology

After being on computers for 25 years, I did something I’ve never done before: I purchased a Mac. For the last 10 or so years, I’ve owned PCs or laptops that were setup to boot to Windows or some flavor of Linux. That flavor of Linux has been Ubuntu for a long time. Until 12.04, and Unity came along, this was a pretty happy experience. I stuck in the 10.x versions, only dabbling in the 11.x versions until 12.04 came out. I’ve written many blog posts regarding Ubuntu and the use of Ubuntu over the years. I’ve even written open source software for it. You could even say I was a fanboi for a while, trying to push all my friends and family away from the evil of Mac or Windows to the open beauty that was Ubuntu.

Over my years of computing, I too had developed a completely biased sense against the Apple ecosystem. The oft-touted cries of “walled garden” or “my device, my rules” or “locked into Apple” arguments were valid to me. I couldn’t, for the life of me, understand why people were paying so much money for something that seemed so obviously wrong. My mind has been changed and I would like to share the story of how it happened since I’m much, much happier for it.

Here’s a screenshot of the very last time I booted into my Ubuntu installation to push some files onto an external drive:
Goodbye Ubuntu

This is representative of the constant, buggy struggle that Ubuntu became for me. All I had was a dual monitor setup on an NVIDIA card with an Intel chipset. Nothing particularly special or weird, it was a rig I had built to play Battlefield 3 back when I used to still be a gamer. I decided that, in addition to my laptop being a dual-boot machine, I needed my PC to dual-boot since I would be working from home.

The Struggle

The first struggle came when trying to setup a wireless USB adapter. I was able to find a driver and fire up the abomination that was NDISwrapper. Unfortunately, I had to end up Googling around for hours to find a solution consisting of modifying the driver itself before the USB adapter would work. Once it was actually working, it would just randomly stop every once in a while. This never occurred in Windows. This required me to remove and re-insert the USB adapter, constantly. I actually moved my PC onto my desk instead of on the floor because I got sick of bending over to take care of this.

Next, came the display. Ubuntu, for some reason, labeled my two monitors as “Laptop” and treated it as a single screen. This meant I could not use the regular display configuration. I was forced to use the NVIDIA display configuration utility. This also meant I constantly struggled with apps not knowing how to go to a full screen properly, weird issues dragging windows around, and other oddities.

Onto the window manager. Beyond the frequent crashing for no particular reason, there were constant glitches. Leave the computer for a while and come back? Title bars for windows would become glitchy and unreadable. Restoring a window from being minimized? Sometimes it’ll just be white. Go ahead and minimize and restore it again to fix. Icons randomly disappearing from the dock, requiring a restart of Unity? Yup, pretty consistent there too. Not only this, but the experience felt laggy. On the beefy machine it was running on, I expected the performance to be smooth and responsive but it was quite the opposite.

Unfortunately, none of these bugs were consistent enough to recreate reliably which meant I just had to deal with it until it because so infuriating that I would have to find a fix.

I decided enough was enough and Unity was not going to work for me. At the login screen, it’s possible to select GNOME instead of Unity so I gave that a shot, assuming going back to GNOME would work. As soon as it booted in I was greeted by a monitor that didn’t work and a window full of error messages. After Googling around for a while, I found some configuration changes to make in my xorg.conf file and was able to actually get it working. I was met with even more errors and problems so I decided it wasn’t going to work for me. I decided to switch back into Unity.

When I came back? All of my settings were gone. All of my changes to use a sane Alt-Tab in the CompizConfig Settings Manager, my keyboard shortcuts, everything. I was back to what it was when I first installed. Extremely frustrated, I decided to give the Mint side of things a try and give Cinnamon a shot. Again, a few weird problems, but got that running as well. Cinnamon didn’t quite fit the bill either. I ran into a display issue or two and found myself actually missing a few things from Unity so I decided I was going to dig in and really give Unity a shot. I didn’t want to jump ship to an entirely different flavor of Linux because I had already invested so many years in getting used to the Ubuntu experience.

When I purchased a printer for my computer? Of course Ubuntu had no idea what to do with it. Of course there was a run around necessary to get it working. Even the mouse had problems. My old Logitech MX500, for one reason or another, would spam the logs in dmesg whenever I was using the scroll buttons on it. Sound would skip while listening to music using anything Flash or HTML 5 related like Grooveshark or Pandora. The whole system would lock up occasionally pegging a quad core CPU for no reason at all. Sometimes, it would just crash entirely.

How I Want to Spend My Time

When I’m at a computer, its because I want to get things done. Gone are the days where I have time to tinker around and spend countless hours Googling for some obscure mail archive to find I need to change “bop” to “boop” in /etc/something/config.ini. The amount of time that I had to spend doing this crap was growing instead of shrinking. This is not a good direction for an operating system to go.

Over the years, I’ve developed enough acumen to get a lot done in short periods of time. I’ve found that I work in extremely productive bursts. This means, when I’m ready to get down to business: I’m ready to get down to business. I don’t want anything getting in my way. The glitches I had experienced in previous versions of Ubuntu were ones I could fix, get out of the way, and not have to worry about again. They were re-produceable, identifiable, and the fixes worked for me.

With Unity and 12.04, the glitches were random, weird, didn’t offer any useful information, and were downright annoying. Some fixes would work for a while then stop working. Some bugs, like the aforementioned blank window, I simply couldn’t figure out after a couple hours of Googling so I just got used to them as best I could.

Hours Googling, being frustrated, and being bumped out of the zone due to random glitches was no longer acceptable for me.

Making the Switch

I knew I had to make a switch. At my most recent job, I was given an iPhone 3G (at a time when the 4 was new) and it was the first Apple product I’d owned. It was an okay device but it was a hand-me-down and I was much more impressed by the 4. By the time the iPhone 4S came around, I was eligible for an upgrade. I decided to take the plunge and it literally changed something inside me. My immediate thought after experiencing the device was: “I want to build things for this.”

Exploring many options for iOS development, I looked into building a Hackintosh for a while until I realized it wasn’t going to be as stable an experience as I wanted. Since I could still get the development done I needed to and had recently built a gaming rig, I couldn’t justify the switch. So I just dreamed of eventually having some spare dough around to drop on a Mac, but wasn’t terribly serious about buying one.

Fast forward a year or two and it was Christmas time. I wanted to get something nice for myself that I would enjoy. I struggled back and forth again over justifying the cost for dropping into the Mac ecosystem. Back and forth I went until I decided, yet again, I couldn’t quite justify the switch. I bought myself a New iPad ensuring I would be able to return it if I didn’t like it. Of course, I loved it. My wife gave up her Kindle Fire usage and we shared the iPad. It was incredibly powerful, had a beautiful screen, and was light years beyond any tablet experience in terms of responsiveness, design and construction. I had another “I want to build things for this” moment.

Now the desire for iOS development was getting stronger. The MBP Retina came out and I was absolutely drooling over it. I wanted one so bad, but, I still couldn’t justify the cost. “I’m not building anything in iOS, yet. Maybe I’ll hate the OS and be stuck with a $2,500 bad decision. Walled garden. Non-customizable.” Those were the thoughts that were keeping me from taking the plunge.

Taking the Plunge

Eventually, I was sick and tired of not being able to spend time developing in the zone due to random glitches and small problems. I didn’t want to spend hours or days finding solutions. In short:

I was tired of spending time on my computer working on my operating system instead of working on my projects.

I carefully considered all my options. We don’t have an actual Mac store here, so I didn’t have the pleasure of being able to identify, play with, and choose the right Mac for me. I had to go on specs, the advice of others, and my gut instinct.

I wanted the MBP retina, of course. My friend got one and it was an absolutely incredible machine. The design, the responsiveness of the SSD architecture, the retina display; it was beautiful and I was jealous.

Since it was my first foray into the Mac environment, I didn’t want to be disappointed. I decided that I would be much happier if I purchased something on the lower end, in case my pre-conceived notions about the OS were correct. I had a choice between the Air, the MBP and the Mini. My local store was constantly out of the upgraded versions and Apple does not ship here.

I decided the base MBP would be the best decision for me. The reason being: I had no idea where I was going to feel a bottleneck on the OS during my development. Would I really be CPU bound? Would not having SSD really slow things down that much? I had no previous experience so I had no idea if those things were worth it. The MBP was upgradeable, so I could fix anything I perceived as a shortcoming in my experience. With the Air I was locked in and I didn’t know enough to know whether that was okay with me. The store was constantly out of the upgraded Mac Mini version, so I settled on the last, base 13″ MBP they had in the store.

I was elated bringing the box home. The unboxing was, of course, elegant and easy as my previous Apple products had been. The physicality of the product was awesome. I turned it on, went through the simple configurations, and was up and running pretty quickly. While waiting for the initial setup to complete, I started reading about the various things I could do with my new OS. I started reading about the trackpad and the gestures that were possible. I checked out some things that were “must install” for every user and started to make a list of the OS X apps I had always wanted to try.

Welcome to OS X

The operating system came up and it was beautiful. The responsiveness, the elegance, and the simplicity were awesome. Being a consistent hater of trackpads over the years, it was one of the first things I played with. I had read reviews of it being incredible before and they were not exaggerating in the slightest. The gestures make sense and are very useful. The trackpad itself worked really well and wasn’t constantly triggered by my thumbs accidentally brushing them.

Then I started to dive into the operating system. What I found was absolutely shocking: it was far more customizable than I had ever dreamed. Want to move the dock around? Sure, go ahead. In Ubuntu? Nope. Want to change how the mouse scroll wheel works? There’s a program someone wrote for that. Every tiny adjustment I wanted was available either directly in the OS or through the installation of a simple program.

Ubuntu had introduced the ability to launch a program or find something from the dash and I had started to like it, even though it was buggy and extremely slow in a lot of cases. Spotlight? Completely blows it away. It’s fast, responsive, and gets me to the program or thing I’m looking for every time.

Every device I hooked up to the machine worked flawlessly. Printer? Plug it in, it finds what you need, and you’re good to go. Monitor? Plug it in and it recognizes it correctly and makes it available to start working right away. External hard drive? I plugged it in and it immediately asked me if I wanted to start using it for backups. It’s like the OS knew what I wanted and was eager to please every step of the way instead of the struggle I was used to. I didn’t have to tell it, nay smash it with a hammer in the face to force it, to get it to work. In other words:

OS X delivered the experience I wanted Linux to, and more.

What’s My PC Up to Now?

My PC now sits on the floor under the desk. Beyond grabbing some files off of it: it’s dormant. I keep it around in case I need to boot up Windows and test something or if I get the itch to start gaming again. But, I am now a 100% Mac convert.

The hardware is great. The OS is a constant pleasure. All my time that I want to spend developing or doing things is actually spent developing or doing things instead of the constantly interrupted, buggy experience I had before. Because it’s Unix-based, everything is familiar or easy to learn since I spend most of my time in a terminal.

Instead of finding a brand new and unfamiliar experience, I found the experience I was looking for Linux to be: a great and consistent environment for me to get things done.

Liked this post? You should follow me on Twitter @randomdrake or subscribe to my feed.

  • Dorv

    I mean, on its face, 90% of what I use it for Spotlight does as well. But I never open Calculator now, I just use Alfred. I always use Alfred to launch web searches (and I’ve tweaked those searches to give me exactly what I want).

    I love it.

  • Pingback: A Tale from a Mac Convert | Pixel Glitch()

  • I feel the same way. :)

  • Sameer Balasubrahmanyam

    I’m a hardcore Linux user. Ill be honest and say I’m a Linux fan boy. I use Ubuntu and arch. You make a few really good points. I’ve always believed osx was superior on the desktop. But how would you feel to pay twice the money to apple for a ram upgrade? AFAIK rMBP has the ram sticks soldiered so no upgrading. I’m no where close to being able to afford a Mac. Even if I did , I’d be horrified of giving 2.5k$ to someone who’s trying to lock me up.
    But the good thing is we can learn from osx and make Linux better. But it’s going to take years. Ubuntu 13.04 has significant performance improvements.

    Also , what kept you away from windows? Windows does most of the things you mentioned.

  • Hello Sameer. Thanks for reading! I actually didn’t end up purchasing a rMBP or an Air because neither of those was really upgradable. Since I didn’t know what I was getting into, I went for the base MBP because it was inexpensive and upgradable.

    As I’ve grown older, I’m more able to understand how my time is equatable to money. I eventually reached a threshold where it was worth it to “throw money at the problem,” as it were, in case it was worth it. It turned out to be worth it, for me anyway.

    In regards to Windows: pretty much all of the technologies I work with consider Linux to be the first class citizen. I did use cygwin running in mintty for a couple years at my last job. In the end, I found the environment to be more stable than the Ubuntu PC experience I wound up with.

  • Hello min. Thanks for reading!

    I’ve experienced my fair share of shunning since writing the article but there’s definitely been more positive than negative feedback. Sit and watch me roll around in vim, SSHing between machines, and doing some development and it won’t take long to realize that I enjoy the *NIX experience very much. I just find that Apple has developed the best version of it I’ve tried thus far.

  • Hello cttet. Thanks for stopping by!

    I worried about this when switching over to OS X. It didn’t take me long at all to discover Homebrew. It hasn’t failed me so far. I’ve got local environments setup for all my development needs: Apache, nginx, PHP, Ruby, Python, Django, MySQL, PostgreSQL, and so on.

    http://mxcl.github.com/homebrew/

  • Sameer Balasubrahmanyam

    I’m still pursing my CS so there’s time for me to earn dough for a Mac. Until then ill stick to Linux and contribute to the community. I’m glad you found your ‘soul os’. I have to admit the state of Linux desktop is wishy wush. It works for some. It won’t for some. Though we often neglect the hardware factor and we expect it to work flawlessly on any hardware. We have a long way to go.

  • Hello YLee. Thanks for stopping by!

    I still use Linux everywhere else (servers and MythTV), but when I see fellow Linux users struggle with basic desktop-usability issues I want to shake them until they get it through their heads that a truly usable Unix-based desktop OS has existed for more than a decade, even if it is made by Apple.

    It’s funny you mention this. A developer at my last job mentioned, more than once, that I should just give OS X a shot because it’s the best *NIX experience out there. So far, I’d have to agree.

  • Eugene Lastofavari

    There’s Windows 7 that’s working just fine to me.

  • I’ve had a similar story.

    I was always a Windows user with some linux tinkering as I always felt I was morally obligated to leave Windows. I would usually boot into ubuntu until something goes wrong but I always had to have a Windows environment as I love my iPod so have been tied to iTunes and even more so now with my iPad mini. Then I was recently given a hand me down 2008 white macbook and love it in every way, I get blown away by how much more productive I can be on it. Hopefully someday I’ll be able to afford a current gen macbook.

    p.s. for the die hard linux fan looking for a more stable, easy to set up distro I can recommend Fuduntu, I run it as a dual boot and find it infinitely superior to ubuntu for a casual user.

  • Pingback: Ежедневник kvarkson'a | 21 - 24 Февраля / Разочарования()

  • The Mac almost lost me in the late 1990s. I grew to love Linux during that time. OS X made me believe in the platform again, due to the really attractive combination of a mainstream operating system and Unix foundations. I love that there are Linux-style package managers for open source software on OS X, e.g. Homebrew [1]. I’ve also collected a few tips [2], geared towards people coming to the Mac from Linux.

    [1] http://mxcl.github.com/homebrew/
    [2] http://www.2ality.com/2011/03/mac-tips-not-only-for-switchers.html

  • Thanks!

  • Techpm

    Thank you for writing your experience, amazingly close to mine.

  • Techpm

    It’s a popular belief that only Apple solders RAM on some of their notebooks, however the fact is many other brands do the same, including ASUS (eg Zenbook UX31, UX21, etc) , Dell (eg XPS 15 and 12), Acer (e.g. Inspire S7), Vizio…

  • Aadric

    How did you deal with the different keyboard shortcuts? After 25 years of doing it one way If ind the Mac command key obnoxious. Its suspicious this didn’t garner a mention

  • Interestingly, I had exactly the opposite experience. Here are three examples:

    – Setting up a Django environment on OS X. I know that it’s doable since so many people do it; but unfortunately, when I tried to do it, I ended up fighting against incompatibilities between PostgreSQL and Python (the former shipped with 32 bits libs, the latter with 64 bits, or some non-sense like that). The problem was well-documented, and people recommend to just “recompile PostgreSQL”. We finally installed Ubuntu in a VM, and were done in 10 minutes.

    – Setting up a Fortran compilation environment, to link with astrophysical data processing libraries. On Linux: “apt-get install” and you’re done. On a Mac: discover that the Fortran compiler in our local XCode install doesn’t work. Try to install another; but then, realize that for some (still unknown) reason it won’t let us link with said libraries. Eventually, I had to learn the innards of the linker (and found it to be rather insanely complex compared to the GNU tools, even when taking into account that it has to support multiple platforms and “fat binaries”).

    – Installing a pre-built Qt application. On Linux: dpkg -i the damn .deb. On a Mac: install the dmg. Get some obscure error message when starting the app. After some Googling, understand that it’s a Qt version problem. Try 2 other Qt versions (they were “only” a few hundreds of MB each, mind you). Still doesn’t work. At the end of the day, I installed a full development environment (this Mac didn’t have XCode), recompiled the app, and it worked, but with interesting glitches (some icons were mirrored up side down, some menus would pop up off screen…). For the record, the Linux contender had a completely random version of Qt, and when I later recompiled on the Linux machine to add features to the program, I never experienced the same issues.

    So, don’t think that a Mac will solve all the problems. It’s nice to solve a class of problems. If that’s the class of problems that you experience the most, then of course, you should absolutely get a Mac :-) On the other hand, remember that some other issues are nicely addressed by Linux, and are very painful to work around on a Mac.

  • Pingback: Google()

  • Amblin

    I use Ubuntu on my desktop and my laptop. They almost always, “just work”. I use them to “get stuff done” and don’t tinker endlessly with them. I also have an MBP given to me by my employer that sits mostly idle. While I agree it would be nice if we could purchase any PC, piece of peripheral hardware or use any combination of video cards and have it also “just work”, but on Linux/Ubuntu it’s not reality. Anyone with “25 years in computers” and is using Ubuntu should know to Google *first* to find and purchase well compatible peripherals. Sure, this is work and not something the general public can do easily, but well worth the effort to stay away from Apple’s walled garden.

  • Hans

    Disclosure: I have a MBP, 6 Raspberry Pi’s, several Ubuntu servers and yes a laptop running tweaked Kubuntu.

    Now my next question is, if you LOVE the OS X so much, why dont you deploy your servers on OS X. I notice your other 2 blogs are

    Getting Started with Satchmo for Django on Ubuntu 12.04
    Deploying an Existing Django App to Heroku on Ubuntu 12.04

    Not OS X 10.8.2

    Interesting…

  • Hello Aadric. Thanks for stopping by!

    It actually didn’t take me very long to get used to the different keyboard shortcuts. For the most part, the Command key takes the places of Ctrl+ combinations I was used to. I was able to learn the various keyboard shortcuts and trackpad gestures available and I’ve been able to get plenty done without too much trouble at all.

    In fact, I applaud the MBP keyboard for putting the Ctrl key where it would be naturally on a regular keyboard. My Lenovo laptop has it in an odd position.

  • Pingback: 为什么我选择了 Mac (上)()

  • Pingback: 为什么我选择了 Mac (下)()

  • Pingback: click here to see the cams()

  • Pingback: It Just Works | Indigo Spot()

  • The last time when i wanted to use Qt and Fortran, och wait, there was never such a situation. Nevermind…

  • Matthew Von Stetina

    Funny reading this, because I just did almost the exact same thing and for very similar reasons. In my case, however, I opted for a refurbished Mac. I also tried Mint, Crunchbang (#!) and Debian before throwing in the towel out of frustration. http://fatedtoend.com/content/while-attempting-follow-my-own-guidelines-ive-gone-and-purchased-mac

  • Augustine Dunn

    How are you guys not running into the bugs that come with Apple writing their own non-playing-nice-with-others versions of things like readline and the like. Also: I found the lack of a platform blessed package manager positively rage inducing!

    That said: I am pretty much done with ubuntu as well.

  • xguse

    Now into Arch. Happy as a clam so far.

  • xguse

    It did not exist for a LONG PAINFUL time however. Now I tell all my mac friends to skip macports and fink. Homebrew finally gets Mac closest to a sanctioned pkg manager.

  • http://www.ubuntu.com/certification/make/

    This is what I refer to whenever I’m buying new hw

  • deepak__kapoor

    I can relate to your post after a similar experience. I went through a very similar journey. I used Windows machines for both work and at home for more than 15 years. Working as a software developer, I could only find work on Windows platform. This was mostly due to the fact that I did not push myself hard enough to check out the other side.

    My proper introduction to mac was during my regular lunch time visits to Apple store. I would go there and play around with those beautiful computers. I learned a lot during those visits. Staff at the store was very helpful in answering any questions. I started looking forward to lunch time so that I could go to Apple store and play with a mac. After few months I took the plunge and got myself a mac book pro. Since then I have broadened my horizons professionally. I have learned new programming languages, started reading more and above all enjoyed the experience every day.

    Mac because of it’s beauty is let’s say inviting.

  • Glad you enjoyed the post and found it relatable. I’m so happy you were able to find a piece of technology that works for you; it’s a great feeling.

  • Jeff Majors

    Unlike Linux which is “almost posix compatible”, Mac OSX is a certified true Unix. When you’re using a Mac OSX, you’re using Unix. Any certified Unix applications will run just fine on a Mac.

  • Pete Johnson

    You know why OSX just works? Because it runs on their hardware. Ubuntu works fine too if you buy hardware that supports Ubuntu.

  • Pingback: It Just Works | Indigo Spot()

  • Matt Foot

    ^ Typical example of why people run from Linux SCREAMING. Go away.

  • marc

    You’ve got a shitty hardware with shitty NVidia card with its blob. But yeah, I’m glad you’re happy with Mac :)