My Journey to Finally Ditching My Desktop PC
I'm a bit crazy when it comes to computer hardware.
I'll admit it, I sort of obsess over what most people would consider minor details.
I've long had this dream of having the perfect workstation for getting my work done.
This dream has changed and morphed over time, but I like to think it's getting better and better.
My first desktop PC consideration
Back in 2010, when I first got a remote job working for TrackAbout, I wrote about how I was trying to decide on what kind of developer workstation I wanted to set up.
Up until that point, I was working at companies that provided a PC for me, rather than giving me a budget and letting me decide how to work, so that is why this saga begins here.
I debated going with a laptop or a desktop, but at that time, it was pretty apparent to me that I could get a whole lot beefier hardware for a lot less money by going with a desktop, and portability wasn't a big concern to me, so I decided to go with a desktop.
I also wanted to be able to hook up 4 external monitors and I figured I could use my cheap, light laptop to remote desktop into my powerful desktop machine and have the benefits of both worlds.
So, I decided to go with a desktop and I optimized the budget I had in this order: SSD drive, RAM and extra monitors.
I also considered whether or not to virtualize my development environment. My thinking there was that if I had a virtualized development environment, I could keep it separate and contained and I could put it on an external drive to take with me. But, logic prevailed and I realized that 90% of the time, I'd be sitting at my desk working in my development environment, so it made sense to run on the bare metal to get the best performance out of my hardware.
Trying out virtualization
Back in July of 2011, I tried out a little virtualization experiment with my desktop machine.
I basically broke my development environment into 5 different virtual machines, each relating to the different tasks I would be doing on them and trying to break out servers and services that didn't need to be running all the time on their own machines.
Here is what the VM setup looked like:
- Web Development Machine
- Mobile Development Machine
- SQL Server Machine
- Other / Side Project Development Machine
- Test Dangerous Stuff Machine
You can probably guess that this didn't work out well, for a variety of reasons.
Essentially it came down to:
- Everything was pretty slow
- Lots of applying Windows Updates and common tool updates all the time
- VMWare didn't work so great with 6 monitors
Oh yeah, I added two monitors at that time, so I had a 6-monitor setup as well.
Anyway, I ended up nixing that idea, but I took away some learning from it.
Got a new hardware budget
TrackAbout was generous enough to give developers new hardware every two years, so in July of 2012, I had to again make the decision of desktop PC or laptop.
The choice was a bit closer this time, but I still felt that I could get a lot of bang for my buck by going the desktop route, and since I was still deathly afraid of flying, travel and portability wasn't a big concern for me.
I also had paired down to 4 monitors, since I found 6 to be a bit overwhelming and not all that useful, and I didn't see a good option for running 4 monitors from a laptop at that time. (Some existed, I just didn't think they were very good.)
I still really wanted to have a virtualized development environment though, so I decided to try again.
This time I went with a really beefy machine:
- Intel i7-3930K CPU @ 3.20Ghz (6 core x 2)
- 32 GB RAM
- 2 x ADM Radeon HD 7700
- 2 x Kingston HyperX 3K 128GB, RAID 0
It's even pretty beefy by today's standards—at least at the time of writing this post.
This was also the first PC, in years, that I had not built myself. Instead I picked out the parts and had a custom PC built by iBUYPOWER. Amazingly, they could build the PC for about the same price it would cost me to buy all the parts and do it all myself. (The only exception was the hard drives, which I put in myself.)
The plan for virtualization this time was a lot less ambitious.
I just wanted to have one, portable, virtual machine that I could load on to an external USB drive if I needed to and I wanted the ability to transfer that machine to new hardware in the future.
I only created one VM, and it had all my dev stuff in it.
This actually worked pretty good, I even took my existing PC, virtualized it and simply copied the virtualized PC onto the new hardware and just booted it right up. No interruption of work, even though I completely switched hardware—pretty cool.
There were some issues, but I was pretty happy with that setup.
Getting my first MacBook Pro
As my fear of flying was conquered, and my portability needs increased with the growth of this blog and the opportunities that came from it, I finally decided to get a MacBook Pro. (Ok, I was also tempted quite a bit by the retina display that was just announced.) This was around November of 2012.
I didn't have a huge amount of use for this machine at the time, since my desktop was so much more powerful, but I figured the MacBook was portable and I could load my dev VM on it and work, even when away from home.
It turned out transferring around 100 gigs over a wireless connection wasn't an easy task, so I invested in some pretty cool USB 3.0 enclosures and some fast SSDs. Now I had a development PC on a portable USB 3.0 drive—pretty cool.
Making developer training courses full-time
My PC needs significantly changed when I decided to leave full-time, salaried employment, and go out on my own, starting with a year of making courses, for Pluralsight, full-time.
On February 14th of 2013, I officially became unemployed. (It's hard to believe it's only been a little over 2 years.)
I basically did not need a development environment anymore, since there was no difference between work and non-work.
So, I ditched the development VM and went back to the bare metal and installed everything I needed on my hard drive.
I went from writing a lot of code to writing a lot and doing a whole lot of video editing.
The poor MacBook Pro mostly sat on my desk doing nothing. What a huge investment into a PC that I wasn't even using.
Every once in a while, I'd use it when traveling, but mostly to browse the web, write blog posts and answer email—sigh.
Adding two 4k monitors
In November of 2013, I decided the best upgrade I could really do would be to add a 4k monitor to my setup.
I wanted to simplify things and not have to have 4 monitors with all the cords crowding my desktop. So, I decided to buy a Seiki SE39UY04 39-Inch 4K monitor, with a beautiful resolution of 3840 x 2160. (I was able to use this app, Display Fusion, to logically split my 4K monitor into 4 monitors, so that I could continue to work as if I had 4 monitors, but actually only have one.)
Since I was doing so much video editing, a 4K monitor made a lot of sense.
I liked this setup so much—and the prices on those 4K monitors dropped so much—that I decided to get a second one.
So, I ended up having two, yes two, 4K monitors hooked up to my desktop machine.
It was pretty cool—and I did keep the setup for a long time—but, it wasn't really all that practical.
I eventually tested out going back to one 4K monitor and it turned out I liked having one better than two. Two was just too overwhelming and it forced me to have a split in the screens right where I was looking. Plus, I couldn't really see the outer edges very well, so I was effectively using only one monitor worth of space in the middle anyway.
Oh look, a shiny Surface Pro 2
So, I actually didn't blog about the experiment I ran in 2014, but I tried several different things, in an attempt to be more portable.
In 2014, my needs changed again. I was no longer producing as much video and I was hiring out most of my editing. I decided to stop producing Pluralsight courses and instead to focus on growing Simple Programmer as much as possible. I also was traveling quite a bit, speaking at different events and doing things like going to Hawaii for 2 months.
I wanted to see if I could get a super-portable option that would allow me to replace my desktop PC and still run my 4K display.
My first contender was the Surface Pro 2.
This seemed like a pretty awesome tablet / laptop combination that would be ultra-portable and had a pen that I thought I'd use.
It turned out I was wrong. After getting my Surface Pro 2, I quickly discovered that the resolution on the display was way too small, I didn't really use the pen, the machine was not nearly powerful enough to come close to replacing my desktop, and the trackpad on the the type cover was abysmal.
It was quickly returned to the Microsoft store.
Trying my first ultrabook
My next experiment was a Lenovo Yoga Pro 2. It was one of the first ultrabooks to have a very nice resolution display at 3200 x 1800 and it was touchscreen, which was awesome for Windows 8.
After the Surface Pro 2 experiment, I knew I needed a much bigger display and much more power.
I tried it out for a while, but found that it just didn't pack enough horsepower for me and it was difficult to use high resolution display with Windows 8. Most applications just looked strange when I adjusted the DPI settings. Also, I didn't really use the touch capabilities or fold it into different contortions and hooking it up to a 4K display made it lag like hell.
The biggest problem I had though, was the trackpad; compared to a MacBook trackpad, it just plain sucked.
When I compared the Yoga Pro 2 to my MacBook Pro– the one collecting dust, I realized that the MacBook Pro was pretty much superior in every way except for portability.
So, I sold the Yoga Pro 2 and tried to utilize the MacBook Pro a little more—even though I still felt it couldn't replace my desktop.
Maybe the Surface Pro 3 is the answer…
When the Surface Pro 3 was announced, I got really excited.
It seemed like the perfect answer to the problems I was facing.
The Surface Pro 3 was much more powerful, they had improved the trackpad on the type cover and the display was bigger.
I was heading to Hawaii for 2 months, so I definitely needed something portable. So, I thought this would be a good candidate for making my main workstation.
They were even going to release a really cool docking station which would allow me to use it like a desktop computer.
I have to admit I was impressed with the Surface Pro 3. I used it the entire time I was in Hawaii and it worked really well.
The trackpad still annoyed me, and the screen resolution was still a bit small, but for everyday work, the Surface Pro 3 was pretty nice.
However, when I tried to play some games on it, it really crawled.
When I got home from Hawaii, I had to make a choice: sell the MacBook Pro or sell the Surface Pro 3. It didn't make sense to have both.
I almost sold the MacBook Pro, but then I realized that it was still a lot more powerful of a machine, could run OS X, and had a far superior trackpad, so once again I kept it and the Surface Pro 3 went up on Ebay.
I also had found the Surface Pro 3 to be difficult to use on your lap. I found myself just wanting a regular laptop.
Finally going all laptop
That brings us to today.
Right now I am writing this post on a 13″ MacBook Pro that is hooked up to my 4K monitor.
About a week ago, I had a nice long heart-to-heart with myself and tried to decide what I really wanted in my PC experience—at least today.
I had a lot of history to draw upon.
Technology has changed quite a bit in the last few years and things that weren't possible before, are much more possible now.
My needs have also changed quite a bit.
Right now, I don't write all that much code. I spend a majority of my time writing, recording podcasts and tweaking websites.
I wondered if I even needed a powerful machine at all, and briefly considered the new gold and super-light MacBook.
But, I quickly realized that I would occasionally need to edit some video and that I would need a machine that had at least some horsepower.
I had my 15″ MacBook Pro that I was using more and more, but the problem was that it just wasn't very portable. It was big and heavy.
Finally, it occurred to me that the new 13″ MacBook Pro would probably be a good option, because, if I maxed it out, it would not only be plenty powerful enough to replace my desktop, but it would also be pretty portable as well.
So, last week, I ordered a completely maxed out 13″ MacBook Pro with an i7, 16 GB of RAM and a 1 TB SSD.
A while back I bought one of these, Pluggable USB 3.0 Docking Stations, and all I have to do is plug my MacBook Pro into it and hook up an HDMI cable, and I can get a full desktop experience.
I went ahead and sold my 15″ Retina MacBook Pro and I'm in the process of selling my desktop PC, which you can check out here, if you are interested. (It may not be available by the time you read this… sorry.) That's how serious I am about this new setup!
A few small issues
Now, there were a few small issues with my single 13″ MacBook Pro setup, but I've worked out most of them already.
First, I do still need to run Windows for some things, so completely switching to OS X is not a possibility.
Fortunately, you can easily run Windows on Macs now. So, what I decided to do was to take 100 GB of the 1 TB disk I have on this baby and use Boot Camp to make a Windows partition. I also installed Parallels so that I could either directly boot into Windows or run Windows in a VM.
I'm mostly working in OS X now, but when I need to switch to Windows I can do that pretty easily.
The second issue was that I was running some programs in the background on my desktop all the time. Originally I thought I'd just use Parallels and runs those applications from a Windows machine on my MacBook, but I realized I don't have my MacBook on all the time and Parallels running in the background all the time takes up a lot of battery.
So, I decided to get a Windows based cloud VM to run any background apps I needed to run.
I tried to use Azure at first, since I have free Azure credits every month as part of Bizspark, but that did not work out at all.
I spun up the lowest tier VM I could, but it was so horribly slow that I couldn't even remote desktop into it. It was basically completely unusable. Which is a shame, because I like Azure and I wanted to use Azure for this.
I could have opted for a more powerful VM, but I didn't want to get locked into something around the $50+ a month range after my Bizspark expired, just to run one single app.
I decided to give Amazon's EC2 instances a try and that worked out extremely well. For some reason that same price tier EC2 instance (at about $13 a month) was much more powerful than the equivalent Azure one. So, even though I have to pay for Amazon, but Azure is free, I decided to pay the $13 a month for EC2.
The only other major issue is that my USB 3.0 docking station required me to plug in a USB cable, an HDMI cable and the power cable.
I'd like to find a good MacBook Pro docking station that has a single connector, or make this process as easy as possible, but it's really not that big of a deal.
Other than those small issues, everything seems to be working great.
For the first time ever, I don't see myself ever needing a desktop PC again.
Where I'd like to go from here
At this point, I'd like to get a better docking station—like I said before—and I'd also like to do one more monitor upgrade.
The Seiki 4K monitor I have has been working great, but there are a lot more options out there now.
I do like having a single, very high resolution monitor now, but it's a bit difficult to see the edges of the Seiki display, since the monitor is 39″.
Ideally, I'd like to eventually get a curved 5K display. I've heard that some are in the works, so perhaps when I get back from my trip to Europe for the next 3 months, I'll sell my Seiki and pick up one of those.
I'm also thinking about replacing my current mechanical keyboard with a Mac-specific one, since switching between the keyboards it a bit annoying. (Although, I do find it difficult to work on Windows on a Mac keyboard.)
I do feel my current setup will work fine for whatever I end up doing in the future—and I really do love the portability.
It's nice to be able to just take my MacBook and go.
If you're looking to give your career a boost, then you may want to consider starting up a blog of your own. You can check out my course on this for a few solid tips.