The Grand Windows Laptop Experiment

2016-12-07 19:28:09 by jdixon

If you follow me on Twitter, you might remember my rants (well, among many other people) regarding their new 2016 MacBook Pro line of laptops. There've been an abundance of reviews online, criticizing Apple for their "courage" to remove ports and functional keys that are still a mainstay in most users' workflows, and for actual performance regressions in most real-world scenarios. I think these changes reflect a desire by Apple to cater to their larger mass consumer audience, while at the same time streamlining a Mac product line facing an eroding market due to our increasingly mobile-first world.

The Indignation

Whether or not you agree with their product choices, there's a clear backlash against Apple by the professional user community that's supported them for years (I've used Apple laptops almost exclusively going back to 2002). IT and creative pros alike are acutely affected by these changes. I fall into the former camp, using my 13-inch Retina MacBook Pro nearly round-the-clock for both work tasks and personal entertainment. This hardware revision came across at best as indifference towards my work and productivity, and at worst as an attack on my livelihood. Obviously this isn't the case, but to many of us who rely on powerful, familiar, and competent computers for our daily tasks, it leaves us looking for alternative platforms (most IT folks are generally wary of vendor lock-in and I'm no exception).

When I'm not doing software development with iTerm2, bash, OpenSSH, Sublime Text 2, Vagrant and VirtualBox, I'm keeping in touch with my friends and peers with Tweetbot, iMessage, and Slack, playing Rocket League in Steam, or watching videos in Netflix and YouTube. Most of these applications are supported in both OS X (sorry, I can't bring myself to call it macOS yet) and Windows 10, so I felt empowered to dump the Apple platform and try switching to a Windows laptop.

The Hardware

If you're in the market for a new Windows laptop, and you value portability, I have good news for you. Not only are there some fantastic products across the major vendors (HP, Lenovo, Microsoft, Dell), but most of them manage to squeeze a lot of power and battery life into small, well-designed, durable chassis. Some of my favorites include:

  • HP Spectre x360
  • Lenovo Yoga 900
  • Dell XPS 13
  • Microsoft Surface Book

But for me, I knew I also wanted to squeeze some light gaming out of this system. Generally speaking, you can't expect much gaming performance from ultrabooks, but I was reading some really good reviews for the newest iteration of Razer Blade and Razer Blade Stealth laptops. The former is a portable beast, equipped with a 14" QHD+ touchscreen or 1080p matte screen, and driven by the NVIDIA GeForce GTX 1060 GPU. While it lacks the featherweight portability of an ultrabook, it manages to squeeze a ton of computing power into a unibody frame roughly the size of the 2015 MacBook Pro.

The Razer Blade Stealth is a far more modest machine in terms of spec, but the form factor is downright delicious. I was drawn in by its size and weight, falling somewhere between a 12" MacBook and its Pro sibling. The fit and finish are top-notch, with tolerances rivaling modern Apple laptops. Aside from its integrated graphics support, the Stealth checked off all of my requirements in quick order.

A trip to the Microsoft Store convinced me that the Stealth was a very capable machine. The employees were happy (frankly, the Microsoft employees were delightful; Apple should watch out here) to let me install Steam and Rocket League on both Razer laptops, playing a few games on each to get a feel for their, ahem, "professional capabilities". Despite the lack of a dedicated GPU, the ultrabook still managed a very respectable 60 fps (frames per second) at 1280x800 resolution with settings at high quality. I'd found my new laptop.

The Christening

Outside of brief passing glances at Staples and Best Buy, this was my first real interaction with Windows 10. The new tile-oriented flat design is colorful and modern, a big departure from my previous Windows OS experiences. Most elements were intuitive, although I soon found myself missing the navigation gestures and shortcuts from OS X. Friends jumped in and offered suggestions online, and I was quickly hopping around with Windows' Task View, Virtual Desktops, and a few useful (although limited) touchpad gestures.

Note: If you like Apple's ctrl+arrow desktop switcher, you'll find its Windows analog with ctrl+windows+arrow. Unfortunately, I rely very heavily on the Mac's three-finger swipe gesture. There simply isn't anything comparable in Windows. 😞

Although I initially struggled with the location of the ctrl key in the standard Windows keyboard layout, I was able to swap the left-hand ctrl and alt keys using the open source SharpKeys utility. This placed the control key next to the spacebar, where my stubby fingers could benefit from muscle memory; Windows' control key and Apple's command key correspond pretty well for common tasks (copy, paste, application switcher, etc).

Over the course of the next few days, with the help of friends like @gwaldo and @jordansissel, I recreated a comfortable development environment and workflow using a combination of familiar tools (ST2, Heroku Toolbelt, Vagrant, Virtualbox) and new alternatives (Git for Windows, Chocolatey). There were some hiccups along the way but nothing that couldn't be worked around:

  • vagrant ssh didn't want to work in Windows' Linux Subsystem shell or Powershell, worked fine in git-scm's shell
  • drive mapping felt brittle and incompatible across the different Windows shells
  • Chocolatey is a nice analog to Homebrew for Mac, but it left me without a working psql when I installed the "newest" PostgreSQL package (9.3.x)

With a working git and ssh environment, I was easily distracted by the occasional Rocket League game. At this point I was very content with my choice. Work sessions at home, as well as mid-day trips to the coffee shop for a change of scenery, were enjoyable and productive. If you'd asked me then for my impression of Windows 10 and the Razer hardware, I would've responded with a genuine "better than expected".

The Seven Day Itch

Frustration and regret became palpable over the course of a week. First and foremost, there is simply no support for Apple's iMessage service in Windows. I didn't realize it earlier, but I rely very heavily on the Messages app in OS X for communicating with my family and friends. This is an Apple-only feature, and I can see why now. Having to dig the iPhone out of my pocket every time I got a text from my wife or kids was a major disruption to my focus on work. On the Mac, I can easily glance at the on-screen notification, and choose to ignore it or command-tab over to the Messages app for a quick response.

Only slightly less disappointing (although very surprising) was the lack of quality Twitter clients for Windows 10. I'm a big fan of Tweetbot's single-column design on the Mac, and their overall feature set across both Mac and iOS apps. I was at a complete loss to find anything similar for Windows. If you like Tweetdeck, you'll probably be satisfied with their web client. I gave it an honest try, but I couldn't get comfortable with the multi-column layout (I'd tried it years ago on Mac, same result).

Even at this point, things were relatively sane. I was bothered, but not yet annoyed. My problems were largely centered around communications apps. Given some hard choices and a little more time (and lots of patience), I could probably find suitable workarounds. Then something unexpected happened.

I bought a monitor.

The Slope of Deflated Expectations

Unlike most IT professionals, I've never been very comfortable with an external monitor. I think this is because I usually try to extend to the second display and find it jarring moving from one screen size to another (duh). I'm not sure what the impetus was but I suddenly found myself interested in large-screen external display (cough, gaming, cough). Fast forward a day and I was sporting a 27-inch 1080p display in my home office.

This time around I decided to mirror my display, and the experience was transformative. Previously I found myself routinely moving around the house and coffee shops for a change of scenery, but now I find myself invisibily anchored to the desk more often than not. Unfortunately, this also introduced a new class of hurdles that I hadn't anticipated when I started this adventure.

I hate mice. I can't emphasize this enough, I really dislike the computer mouse, wired or wireless, in virtually all of its different incarnations. I acknowledge that it's a primary input device for most of the computing public, but I've become increasingly dependent on the Mac laptop trackpads and their software-enabled gestures.

With display mirroring enabled and the laptop lid closed for work, I needed some sort of trackpad (or in Windows-ese, touchpad). Apple makes the best trackpads in the industry, but they don't have any official support or drivers for Windows systems (outside of Bootcamp). An earlier attempt at using these drivers to get my old Magic Mouse working under Windows left me unconvinced that investing $129 in a new trackpad, in the off-chance that it would work with unsupported drivers, would be a wise decision.

So I went shopping for alternatives. As it turns out, Apple is also one of the only manufacturers of external track/touchpads. Logitech used to make a wireless glass touchpad, but it's discontinued and they only offer drivers up to Windows 8.

Though the little nagging issues continued to mount, I was still hoping to find long-term workarounds for all of these items (and more, e.g. Windows DPI scaling on large displays). My anger at Apple for "messing up" their Pro line hadn't dissipated much. I still had my 13-inch retina MacBook Pro, but I managed to get all of my work done in Windows using a (yuck) mouse.

And then it happened. Erratic pointer movement on the display. It only happened when I was using the external display and the laptop lid closed. The mouse wasn't moving, and in fact, moving the mouse around had no effect on the behavior. Pressing lightly on the lid cleared it up, leading me to suspect heat issues with the touchpad or touchscreen.

I was able to quickly rule out the touchpad by disabling it using the device manager and waiting for the problem to surface again. However, I really didn't want to have to disable the appropriate Human Interface Device every fucking time I used the external display with the lid closed. Sadly, there's no feature in Windows 10 to support this seemingly common use case.

Enough was enough.

The Disentanglement

Don't get me wrong, I would love to have an alternative to Apple. And while Windows 10 and the greater Microsoft ecosystem have made huge steps forward in the past decade, they still have a ways to go before they compete with Apple's "just works" experience. I acknowledge that much of this stems from the competitive marketplace over there, but they also benefit from that competition in terms of vendors pushing themselves that much harder for our dollars.

I think Microsoft has made some excellent product decisions over the last few years with the introduction of the Surface Pro, Surface Book, and more recently, the Surface Studio (if and when it ships early next year). I hope that they continue along this path, going beyond basic hardware and software driver support, to consider the entire user experience and the myriad use cases for mobile professionals like myself: gesture navigation, window management, and automated device management could all sorely benefit from more usability testing.

I've had numerous discussions with like-minded engineers who've successfully made the plunge. They're very happy with their decisions and I'm just as happy for them. As more of us make the transition to Windows, I have no doubt that there will be more - and better - software offerings, e.g. Twitter clients. I'm going to keep my eye on the Windows landscape in the coming months; my frustration with Apple (the company and their current laptop lineup) continues, and the current crop of ultrabooks are just too damn good to be ignored.

Regardless, I'm back to my MacBook Pro for now. Check back with me in 2017.


at 2016-12-07 22:19:09, anonymous wrote in to say...

I have to support vagrant and virtalbox on windows. There are various issues related to the filesystem which make it a deal breaker for me. Be careful with the case insensitive filesystem. Also atom and git 'corrupt' the filesystem when changing branches until you restart atom. Performance is terrible in vagrant due to having to use the native virtualbox filesystem instead of nfs.

at 2016-12-08 21:11:37, Avdi Grimm wrote in to say...

FWIW, I have a Razer Blade, and while it is an impressive piece of engineering and a beast of a portable video editing machine, I won't be buying another of their machines.

I could cite a number of little quality issues, but the relevant one to this article is the way the mouse pointer goes wonky every time my cat decides to sit on the (closed) lid of the laptop whole I have it docked. The lid is too thin and flexible, and the TouchPad doesn't deactivate when closed, and thus, problems.

So, yeah. I hear ya. One downfall of the PC ecosystem has always been the variable quality of the PC manufacturers

at 2016-12-10 16:32:08, Jason Dixon wrote in to say...

@Avdi hey dude, good to see you over here. I definitely feel your pain. I really wanted it to work for me but it might take another year or two for the Windows hardware and software ecosystem to mature a bit. I hope.

at 2017-01-08 14:14:54, Rob wrote in to say...

Regarding Chocolatey - Sometimes some of the packages on the community repository for Chocolatey get a little outdated. There has been significant effort with a newer tool that does automatic updating of packages on the community repository. Some that I maintain have gotten a bit stale, so there is a process of moving those packages over to a core community maintainers team where those packages can be kept up to date by a group of folks, and PostgreSQL is one of them.

Add a comment:




max length 4000 chars