Cramming a gaming GPU into your MacBook Pro

…without actually doing that

How we got here

After Apple released its (soon-to-be) previous generation Mac Pro, it probably didn't take long for them to realize they had a trash can fire on their hands, especially with regards to GPU performance. When Apple announced eGPU support for macOS in 2017's High Sierra release, it was hard not to see the announcement as anything more than an admission that Apple's top-of-the-line desktops and notebooks shipped with subpar GPUs due to their severe thermal constraints. Of course, because Apple has never considered AAA gaming to be an important function of its products, the Mac has always lagged behind Windows in GPU availability and support. But by 2017 (and until the new Mac Pro tower releases this fall), the situation has been especially grim: even for workstation tasks like video encoding and 3D modeling, the internal GPUs Apple has been selling are so bad that they're driving a nontrivial number of creative professionals—a market Apple actually does care about—off its platform.

The world may be excited to close the door on the ill-conceived trash can Mac Pro, but if it hadn't been for its glaring design flaws, Apple and Intel probably wouldn't have prioritized the engineering needed to make running an eGPU over Thunderbolt 3 a commercial reality.

To be continued…

You make less money than you used to. Blame your iPhone.

For years, economists have been puzzling over why, despite unprecedented technological innovation since the dawn of the Internet, productivity is flat. Really, nobody seems to know why! Look no further than this week's news to find a consensus opinion that the just-around-the-corner cure for lagging productivity numbers is—wait for it—more technological innovation.

Productivity is a curiously-named economic measure that essentially boils down to "amount of money you generate for your employer over time." And because the promise of most technology is to enable people to do work faster, we should expect technology's useful impact to be measurable, even with an (oversimplified) equation like Labor + Technology = Productivity.

But something has clearly gone wrong. If we work backwards, we already know productivity is flat. And we are equally certain that technology has improved over the last twenty years. That leaves just one variable for which a negative value could explain the productivity gap: maybe we're literally doing less useful work every day. Reflecting on my own experience, I'd go a step further and ask, what if recent technological advances are actually decreasing our productivity?

Keep reading…

10 Rules

Here it is, the post that enumerates all of the ways in which remote work has turned me into a total weirdo.

For almost a decade now I've been working from home, enjoying the unusual freedoms—and anxieties—that it brings. If a single theme has emerged, it's this: by default, I'm an undisciplined mess. When given the choice between short-term distractions and long-term goals, I'll take the passing hit of instant gratification every time. (This paragraph took me ten minutes to write because I was text messaging back-and-forth with @hone02.)

Only one thing can overcome my lack of self control: replace all my good intentions with hard and fast rules, then stick to them so rigidly that my constant fear of failure will inadvertently be put to productive use.

You'll never guess what happens next…

Giving the iPad a full-time job

[A translation of this post is available in Chinese and in Spanish ]

Programmers often describe their ideal tools with adjectives like "powerful", "feature-rich", and "highly-configurable". Few users are seen as wanting more from their computers than programmers.

This popular notion agrees with our general intuition that more capability intrinsically yields greater productivity. My lived experience suggests, however, that while capability is a prerequisite for productivity, the two hardly share a linear correlation. A dozen ways to do the same thing just results in time-wasting analysis paralysis. Apps packed with features to cover every conceivable need will slowly crowd out the tool's primary use. Every extra configuration option that I delight in tweaking is another if-else branch in the system, requiring its developers to test more and change less, slowing the pace of innovation.

But wait, there's more…

My counter-cultural iOS 11 wish list

In seven days, it will have been ten years since the keynote to end all keynotes.

A decade hence, I'm uncomfortable with declarations that the iPhone and iOS are "mature," however. Unlike other mature platforms that became commoditized and absorbed into daily life, smartphones have not receded into the periphery of our attention. If anything, the entire planet is more glued to their phones today than ever before. "Mature" is code for "set in stone", and it's my view that any device that's able to so thoroughly capture the attention of the human race as the iPhone-era smartphone demands continuous reinvestment. Past decisions should be constantly reconsidered.

And after a year like 2016, I like to hope that Apple is reconsidering some of the decisions they've made about how their platforms have influenced life on earth, including our politics.

But wait, there's more…

Warm Takes on Microsoft's Surface Pro 4

First, some background

I embarked on a spiritual journey this week to answer these questions: do all the developers I see switching (or threatening to switch) to Windows see something that I don't? Has Microsoft actually turned the Windows user experience around? Is the combination of Microsoft's hardware & software superior to Apple's on the Mac?

At the heart of these questions: hope. Hope that people have placed in Microsoft's embrace of open source, its in-house hardware design, and its broadened cross-platform support. My suspicion at the outset of this experiment was that the recent, near-universal praise of Windows is, instead, mostly hype—fueled in large part by a general frustration that Apple has been the only serious contender for developer mindshare for over a decade. Most of the people I know switching to Windows of-late are furious about Apple's apparent product direction, and I'm biased to think their praise of Windows represents a sort of motivated reasoning. But I can't test my bias without seeing Windows appraised by someone who, like me, is a genuine fan of Apple's products… reluctantly, I figured I'd do it myself.

So, last week, I bought a Surface Pro 4 from the local Microsoft Store and put it through its paces on my own terms and carrying my own biases. I'm not a dispassionate reviewer, poring over each feature checkbox and assessing its objective quality. I'm just someone who really likes using iOS and macOS, but is interested in challenging Microsoft's products by asking them to "make me switch." These are my initial notes.

Okay, I'm interested…

Registering a Microsoft Surface Pro 4

I'll have a lot more to say about my experiments in trying out Windows over the coming days, but as a special Christmas bonus edition, I thought I'd share the steps that were apparently required for me to register my Surface Pro 4 with Microsoft.

As I got in bed last night, I activated tablet mode for the first time and while perusing the don't-call-it-Metro tile page, I saw an app called "Surface". I have one of those, I thought, I should tap that!

At first blush, the purpose of the app is to introduce you to the Surface's features, process device registration, solicit customer feedback, and so forth. The first thing the app asks of its users is to register the Surface device for benefits that include both requesting (and cancelling!) hardware service. Since part of my aforementioned experiment is to begrudgingly click "yes" to every asanine pop-up and prompt the operating system throws at me, I decided to go ahead and register the device.

Keep reading…

Giving Windows a Chance

I bought a Surface Pro 4 tonight. Over the next week I'm going to share my notes on getting used to it. And over the next month I'm going to attempt to do all of my open source work from it. but tonight, I want to first comment on the state of the Mac and PC so that I can get my own initial perspective and biases on the table.

Subsequent posts in this series include: this and this.

Keep reading…

How-to: Thanksgiving for Millennials

My wife & I have been returning to my parents house for Thanksgiving every year since we graduated college. Customarily, people stop schlepping home to exploit the free labor of their parents' holiday cheer around the time they have kids—but for a growing number of millennials who aren't interested in bringing children into the world, this presents a dilemma: do I expect my mom to cook me turkeys until she is physically unable?

Short answer: mostly, sure. [Love you, mom!]

Longer answer: this year in particular, having logged over 25 weeks traveling, I was eager to stay home for the holidays for once. I still wanted a traditionally large and wasteful Thanksgiving feast, but I just didn't have it in me to drive three hours for one.

Keep reading…

Nero may have fiddled while Rome burned, but at least he didn't gawk

It's time we had a talk about the news.

From the first time I heard a modem chime, I've been on a mission to discover, curate, and editorialize as much news as possible. Over the years, I've written for a variety of outlets — called "web sites" at first, then "blogs" for a while, and now subsumed by the lifeless social media platforms to which we all contribute. From the mid-nineties until I graduated college, I slowly optimized this information funnel — broadening the aperture of content I could absorb each day, while tightening my own editorial voice. Being informed calmed my anxieties about the unknown world, whereas honing a distinct persona gave me a sense of control as I navigated it.

But optimizations that lack a limiting factor run the risk of becoming too successful. My voracious appetite for novel content was so far outside the norm that a developer working on Google Reader once contacted me to ask what I was accomplishing by using the service — apparently it was unusual that I'd been reading an average of 900 articles a day at an uninterrupted pace for over 7 years.

Keep reading…

Phone-free Field Trips

The degree to which we're constantly connected via our phones is well-documented, thoroughly-researched, and intuitively understood by over a billion people. But we tend not to do much about it, because the benefits of being connected seem far more concrete than the relatively intangible benefits of being disconnected.

This week, I was forced to reckon with this in a stark enough way to convince me to take action.

Keep reading…

Why I don't eat before dark

I often tell people the only reason I blog or speak is to guard against having the same conversation over and over again. So, here I go again:

  • The first thing I eat every day is dinner, meaning I don't eat breakfast, lunch, or daytime snacks
  • I run 3 miles every day, without exception. In spite of my travels taking me all over the world, I'm pretty sure I haven't missed a run in two years

Doing these two things has improved my health considerably, saves a lot of time and money, and has improved my ability to focus on my work.

But wait, there's more…

Japanese Travel Survival Guide

As an American that's regularly traveled to Japan over the past ten years — in trips ranging from 2 weeks to 7 months — I've accumulated a few observations and tips that have made getting around significantly easier.

Travel Light

I travel with a carry-onable back pack. Anything larger would be obnoxious when negotiating trains/bus stations. Specifically, I travel with an Osprey Porter 46. Even with that, I usually plan my day around dropping it off as quickly as possible (even if it's prior to check-in, hotels will always hold it for you). Large, hard-shell rolling luggage is popular in Japan but since they're probably only taking it straight to the airport or back, the same strategy wouldn't make much sense for touring Japan itself.

If you ever need to ditch your bag before arriving at wherever you‘re staying, search any major train station for coin lockers large enough to cram it in (coin lockers are typically deceptively deep and spacious). Typically, you insert your bag first (to ensure it fits), then insert coins to engage the lock and release the key. Increasingly, coin lockers are going digital, able to break change or pay with ICOCA/SUICA and alert you to other locker locations with vacancy, often printing a claim receipt with a keycode to unlock your locker with. All coin locker payments are per-use, so once you unlock your bag, you'd need to pay to use it again. If you can't find a bay of coin lockers, try asking a station employee: "コインロッカーはありますか?(coin-row-kah wa ah-ree-mahs ka?)".

To be continued…

Installing a Content Blocker on iOS 9 Public Beta

After spending 3 weeks abroad, literally afraid of opening anything resembling an article in Safari, I was eager to come home, install a beta operating system, and take advantage of iOS 9's now-famous content blocking API. There are a few projects on GitHub that do this, but the most evolved seems to be Block Party.

Let's try out installing a content blocker on an iPhone for ourselves. The instructions below are mostly complete and a bit inane, so it's up to you whether you're better off just waiting the 4–6 weeks until iOS 9 is released to the public.

First, there are some pre-requisites:

With these in place, it's time to open BlockParty.xcodeproj

But wait, there's more…

How to Internet in Japan

If you're reading this, then perhaps you enjoy having fast, easy access to the Internet. If so, and you're heading to Japan anytime soon, then perhaps this guide will be of use to you.

When traveling to Japan, access to their mostly-excellent wireless network is not always easily attained. In the past, I've used T-Mobile's free unlimited international roaming as well as mobile hotspot rental services, but both have significant drawbacks — extreme throttling and terrible battery life, respectively.

Here, I'll document a much more convenient way to get Internet access, by way of purchasing a prepaid data-only SIM card. First, a few prerequisites:

  • An unlocked phone that can join international GSM networks (this guide covers my use of an iPhone 6, but virtually any GSM smartphone is supported)
  • The means to make your way to the first floor of a Yodobashi camera, though other electronics stores ("Denkiya-san") may work as well
  • (Somewhat ironically) an Internet connection, to download a configuration profile
  • Roughly $35

But wait, there's more…

Constants and Variables

They're a million million worlds. All different and all similar. Constants and variables. -Elizabeth, Bioshock Infinite

A lesson I learned early in my career as a programmer was to be wary of accidental creativity. If you're the type of person who really cares about getting the details right, it's critical to first decide which details truly matter. Not doing so is a recipe for endless frustration, as one will inevitably be distracted and defeated each day — sweating more arbitrary decisions than meaningful ones.

There is a bunch of prior art on this point, from studies on the paradox of choice to cognitive depletion and even Steve Jobs turtleneck lore. It's pretty intuitive, after all, that eliminating routine decisions should free up energy for our brains to do other (presumably more valuable) things. However, we tend not to see many interesting examples of the types of constants people set for themselves. And even more importantly, there is rarely discussion on the aspects of our lives that people might intentionally keep variable.

I guess I'll go first.

You'll never guess what happens next…

How-to make your iPhone Dimmer than Dim

When I'm trying to read my iPhone (or iPad) in bed, I'm liable to wake up my spouse with the device's backlight, even when the screen is set to its lowest brightness setting. Moreover, it's hard for me to fall asleep immediately after staring at a relatively bright screen.

Up until last night I thought I was just out of luck unless I installed flux, which would never be worth the security and stability issues raised by jailbreaking a device. Fortunately, Olivier Lacan commiserated and relayed a tip that iPhone's accessibility settings can be lightly abused to decrease the strength of the backlight below its lowest setting. (We've known the hardware is capable of this given that iBooks has always allowed you to.)

Because the Lifehacker guide Olivier linked was a bit hard-to-follow, I figured I'd help by illustrating a how-to do this with a few GIFs.

Okay, I'm interested…

Studying Japanese with a Nintendo 3DS & Google Translate

I was interested in using videogames to practice my Japanese reading and listening comprehension, so after some initial thinking, I decided to buy an imported New Nintendo 3DS. Here are some notes on how I went about that and what I'm doing to use games primarily as an educational tool.

Buying the device

There are lots of import sites out there that will get you a good deal on Japanese game products, but I wanted to (a) get fast, reliable shipping, (b) have some kind of return policy, and (c) not risk customs headaches. As a result, I decided to buy the device off Amazon's US site from a third-party merchant using Fulfillment by Amazon so that I could get Amazon Prime shipping and Amazon support for returns.

I ended up purchasing this model (Amazon referral link) and then hunted for an Amazon Prime-able merchant under the sellers list, like so:

Next, I picked up a new 64GB SDXC card (Amazon referral link) and formatted it to FAT32 using Mac OS X's Disk Utility (here's an instructional video if you're not familiar with how to do this).

To be continued…

Will your iPad's Apple SIM allow you to buy ala carte prepaid data from AT&T?

When Apple announced iPad Air 2, I was most excited by the prospect of Apple SIM. That excitement waned when we learned AT&T would lock Apple SIMs to its network upon their activation (so much for that layer of indirection enabling competition). Still, I held out hope that maybe an Apple SIM could be used to purchase pre-paid data from an iPad and then be plopped into and used by an unlocked iPhone 6.

Let's see how that went.

Okay, I'm interested…

Unrequired Love

This post presumes you're familiar with the concept of tools that introduce a module format (whether it's Require.js, Browserify, or something else) to JavaScript code that runs in the browser. I'll arbitrarily refer to the over-arching meme as capital-R "Require" for the rest of this post. Also, keep in mind that this post is only discussing "JavaScript that runs in browsers". It's not at all concerned with Node.js or npm or anything having to do with dependency management of JavaScript in that ecosystem.

You'll never guess what happens next…