by adam mathes
archive · subscribe

Q3 2017 Video Game Consumption

There was only one game for me the last few months.

Rez Infinite

Rez Infinite on Steam

I originally played Rez on Dreamcast in college.

I bootlegged it and burned it to compact disc because it had only been released in Japan or something and I was a college student with a less strict view of intellectual property in 2001. (Also, I had faster internet 16 years ago than today.)

The bootleg version crashed when I beat the game. I never saw the ending or unlocked Beyond Mode. I played Rez enough to knew I loved it. But I didn’t really experience Rez.

· · ·

I finally bought a PS2 way late, in 2004, and bought Rez (which was hard to find in the US.)

I played it deeply since it didn’t like, crash at the end when you unlock all the new stuff.

I experienced Rez. I loved Rez.

· · ·

Rez is a rail shooter – which is a genre that barely even exists anymore. Enemies come at you, and your character moves “on rails” through a 3D environment.

But you just focus on shooting things quickly.

Rez is a rail shooter that takes place in a computer. You are a hacker trying to purge a system, but the story is, it doesn’t matter.

(It does matter, but that’s… we don’t have time for that.)

What matters is that unlike normal sound effects and music, Rez invokes a near synesthesia by tightly coupling the sound, electronic music, vibration, and gameplay.

It’s the details and the multi sensory interactivity coming together that makes it… unique.

· · ·

*Rez*HD for XBox 360 Live came out in 2008.

I experienced Rez again.

But I began to practice Rez.

I would play Direct Assault mode (which takes about an hour) every day after work for days on end.

I unlocked pretty much everything I never got to 100% on the Level 5 to get pink butterflies because I’m not insane or that good, but I did become a Morolian which is its own amazing form of a true happy ending.

· · ·

Almost a decade later, in June of 2017 I decided I needed to play Rez again. I began with a Dreamcast emulator on my PC because I had no way to easily play XBLA games - and it’s funny because 16 years later a bootlegged copy running in a virtual Dreamcast doesn’t crash when I beat it, so I could continue on to Beyond mode.

Life is very strange sometimes.

Some people meditate when they want to find inner truth and peace in times of need but for me I reached for a game that was designed as a synesthesia art project and eventually shipped a vibrator accessory.

But, earnestly, because it was my practice.

And I beat it again, many times, because I needed to.

· · ·

Then, out of nowhere, Rez Infinite (which was a PS4 exclusive, thus inaccessible to me) was announced and immediately released for PC, with VR support.

There are so few genuine surprises in life anymore, and even fewer that fill me with pure joy.

This was one of them.

· · ·

Rez Infinite enables Rez to be played at higher resolutions and on PC, but most importantly, it enables VR support on HTC Vive (which I own.)

I’ve written a little about VR but, in some ways, all my experiences with VR weren’t important before **RezInfinite.

In VR, Rez isn’t a practice or a thing to even know or love.

Rez Infinite is Rez. But I’m in it.

It’s everywhere. All around me.

I am Rez.

You are Rez, when you’re there.

We are a way for Rez to know itself.

· · ·

The mechanics within VR made Rez– which at times had been a frustratingly difficult experience that I memorized and wrote into my brain and damaged my thumbs and made my eyes water – easier. Natural. At times almost trivial.

By fully immersing myself – by becoming one with Rez – I could do almost anything in the game.

(I saw the butterfly ending on my first playthrough.)

And it was even more satisfying and amazing than the first time I played the bootleg 16 years ago.

My heart swells every time I hear Fear in Level 5.

Fear is the mind killer.

· · ·

Rez was a masterpiece.

Rez Infinite is a master work, fully realized, that somehow presaged a new medium and makes better use of it than most works birthed in the VR era.

I needed it to exist, and I’m grateful that it does.

People debate video games as art, but it’s hard to explain that Rez Infinite as art is almost missing the point. It’s just beyond our normal understanding of experiences.


Lost Time On Titlebars

Let’s pretend during a weekend of record heat I decided the best use of my time is to create a MacOS desktop of terminals and editors with less chrome and a more consistent color scheme.

Well, we don’t have to pretend.

Window Management

Amethyst is a tiling window manager. It’s great.

Alternatives –

  • kwm and its successor chunkwm but I’ve always found the setup and usage too complicated
  • use XQuartz and i3 or dwm or something, but I want to be able to use MacOS apps, not just X stuff

Minimal System Chrome

Hide the menu and dock by default.

System Preferences > Dock > Automatically hide and show the Dock

System Preferences > General > Automatically hide and show the menu bar

It’s pretty hard to get rid of MacOS system adornments like title bars, or change to square windows.

So I just changed the background to a solid image color to fake it.


I rely on Aquamacs as my primary editor. I love it.

To import and set the theme via .emacs –

; tomorrow night theme
(load "~/emacs/color-theme-tomorrow.el")

Natural Title Bars

I adapted the “natural title bars” from these patches –



– into my fork of the Aquamacs source tree.

I didn’t integrate it into Aquamacs UI, because, uhh, I don’t know how to do that.

So instead, we drop to a terminal for –

defaults write org.gnu.Aquamacs TransparentTitleBar DARK

Great! Now we have an Emacs for MacOS that has a transparent title bar, and all we had to do was create a 200mb binary from source code and set NSUserDefaults from the command line.

Colored Tab Bar

But the tab bar doesn’t match the title bar and it’s like, why even bother if we’re not going to finish this.

Luckily it’s customizable, because everything in emacs is.

Added to .emacs to change the colors of the tabs to match my theme –

(require 'tabbar)
;; Tabbar settings
 'tabbar-default nil
 :background "#002451"
 :foreground "#ffffff"
 :box '(:line-width 1 :color "#002451" :style nil))
 'tabbar-unselected nil
 :background "#002451"
 :foreground "#ffffff"
 :box '(:line-width 5 :color "#002451" :style nil))
 'tabbar-selected nil
 :background "#003f8e"
 :foreground "#ffffff"
 :box '(:line-width 5 :color "#002451" :style nil))
 'tabbar-highlight nil
 :background "#002451"
 :foreground "#ffffff"
 :underline nil
 :box '(:line-width 5 :color "#002451" :style nil))
 'tabbar-button nil
 :box '(:line-width 1 :color "#002451" :style nil))
 'tabbar-separator nil
 :background "#ff9da4"
 :height 0.6)
(tabbar-mode 1)

A Brief Diversion into iTerm2

I normally use the stock but you can change color of iTerm2 title bars with proprietary escape codes!

Like this –


echo -e "\033]6;1;bg;red;brightness;0\a"
echo -e "\033]6;1;bg;green;brightness;36\a"
echo -e "\033]6;1;bg;blue;brightness;81\a"

The problem is iTerm2 is slow.

Turns out iTerm2 feels significantly laggier than good old

This is actually not my imagination, you can benchmark it.

In fact, pretty much all of the “cool” terminals like are insanely slow. I don’t know how any of you guys use Hyper. Or any of these weird electron/javascript/frankenstein native/web apps, really.

Back to Emacs

Anyway those results made me think I should try to embrace eshell in my emacs of choice.


Emacs (and thus Aquamacs) offers a number of terminal and terminal-alikes. Including but probably not limited to shell, eshell, term, and ansi-term.

shell is the minimal one for little mini-buffers and things, you probably don’t want that.

term and ansi-term function as terminals, but seem just different enough to not work the way you want the minute you like ssh somewhere.

eshell is the weirdest and most interesting and I’ve been trying to grok it. Everyone knows that your shell and editor are separate, but what eshell pre-supposes is, maybe they aren’t?

Like everything in emacs, I will never truly embrace and understand it because of my distaste for Lisp.

So I spent like an hour figuring out how to customize the prompt and other bits to something saner –

;; eshell
(setq eshell-prompt-function
      (lambda nil
         car (split-string (system-name) "\\.")
         (abbreviate-file-name (eshell/pwd))
         "$ ")))
(setq eshell-prompt-regexp ".*$ ")
(setq eshell-highlight-prompt nil)

(defun m-eshell-mode-hook ()
  (setenv "TERM" "xterm-color")
  (setenv "PAGER" "cat")

(add-hook 'eshell-mode-hook 'm-eshell-mode-hook)

term feels slowish, especially over ssh, which got me to finally figure out how to use tramp mode for remote editing. Which is nice.

eshell does feel responsive, mostly, except when you output a ton of text. Being able to edit commands, pipe to buffers, there’s something interesting to it, but it’s… weird.

Getting used to using Aquamacs frames/windows instead of windows is also kind of icky.

Who knows if I’ll stick with it – when it’s 105° out you make questionable decisions.


But it looks cool?

OpenBSD – As Little Unix As Possible

Operating systems, like religion or politics, is a subject best not discussed in polite society.

But why let that stop me. Anyway, sorry in advance.

· · ·

After a few months of tinkering I finally switched the server that powers this web site and my various remaining projects from Ubuntu to OpenBSD and it’s great. I love it.

Really, it’s great.

I’d like to claim this was a serious decision and not merely bike shedding. (Which is a popular geek term to refer to Parkinson’s Law of Triviality, which was popularized by the more popular than OpenBSD FreeBSD community.)

I’d also like to claim everything on my server is still working and not going to break.

Those claims are not verifiable.


Linux used to feel like the contrarian alternative OS for discerning computer enthusiasts but now that Linux powers the Android phones that half the world keeps in their pocket it feels less like an act of rebellion to use it and more the OS of choice for corporate super states. So probably this like 80% fashion and 5% post-facto rationalization and 15% completely legitimate rationales.

· · ·

Everything about modern operating systems is basically impossible and incomprehensible, as a general rule.

That’s what makes OpenBSD so great. It really breaks that rule.

The Incoherence of Modern Linux

I run my own Unix server and web sites and programs and experiments for fun.

Fun for me is taking things from idea to software, learning how stuff works, making computers do interesting things, and creating and sharing stuff.

Depending on what I’m doing I want to get into the “guts” of things and be close to the machine.

I’ve been using Linux in various ways on desktops and servers for 20 years. (I first used Red Hat linux the summer of 1997 during high school, after spending a weird summer getting a taste of overpriced Sun Workstations.)

But the last few years of using Ubuntu on this server have felt off.

Maybe it was the second time Ubuntu changed init systems and I had to learn yet another one. Or maybe when I looked at top and didn’t recognize a bunch of stuff. (Mostly systemd’s processes and dependencies and god knows what else Ubuntu has on by default.)

Linux has always sort of seemed like a beautiful mess – and never particularly coherent, but it never bothered me that much, until recently.

Recently, I’ve just been kind of annoyed with it. It feels – nonsensical.

Minimal Viable Unix

OpenBSD takes a different approach.

It’s quiet. Things are off by default. You have to figure out how to turn them on, and in the process learn enough about them to run them responsibly.

The initial set of “base” software is spartan by modern standards, but more than enough to do what I need. Installing software from ports and packages is straightforward.

When I look at the process list, there are no surprises.

It’s just enough operating system.


Things don’t happen unexpectedly.

The system follows the principle of least astonishment. Things are predictable, in a good way.

The filesystem hierarchy makes sense.

The installer is text based and runs in a few minutes.

Releases happen regularly, every six months.

It all comes together and feels solid and coherent, rather than just disparate unrelated pieces.

Reading through Absolute OpenBSD: UNIX for the Practical Paranoid, I felt like I grokked what was going on..

Sane Documentation

People mention the quality of OpenBSD documentation, but it was hard to realize how bad things were in Linux or MacOS or other places until I started to use a system with really good, well written, comprehensive man pages.

Rather than futzing around on the web with varying sources of questionable quality, or reading manual pages that that too often are inconsistent with the actual working version of the software, OpenBSD man pages just work and are great.

It’s the first system where reading the manual seems to not just be reasonable advice to start, but most of the advice you’d need to solve the bulk of problems.


In an alternate reality I became a weird grizzled systems administrator, but in this world I’m a product manager who tinkers with this stuff on the side.

I’m tired of the operating system I use feeling like shifting sand – arbitrarily changing things and breaking and being inconsistent.

I don’t need my Unix server to break backwards compatibility every few years in random, unpredictable ways, I want it to have some stability and continuity over the years in how it works and how I maintain it.

I’m not averse to learning new things and adopting new technologies, but I want it to be for valid reasons, not just a random walk wherever the whims of some random corporate benefactor lead.

I want /etc/motd work as expectednot be a descent into madness.


Systemd may possibly be an NSA Plot.

I mean, probably not? But if the software you rely on is so confusing people think that may be a reasonable explanation for its complexity, that seems worrisome. (Remember when I said operating systems were like religion or politics and apologized in advance? Now it makes sense, right?)

The biggest security flaw in any system I’m using is generally me and the software I write, not low level operating system exploits, so security is not really my focus.

I appreciate OpenBSD’s focus on security, mostly because it leads to making the system easier, more coherent, and better. A focus on minimizing risk, attack surface, and making coherent, understandable, robust systems seems to have led the project to a good place.

Why Not

Hardware compatibility – some hardware appears to be harder to get working (or, purposefully doesn’t work as a result of not taking close source binary blobs to get some things working). This doesn’t matter to me on servers, but does matter to me on a desktop (I’ve in too deep with MacOS, Thunderbolt 3, and this stupid 5k monitor I bought.

Performance – me and my personal projects are extremely unpopular so this is not really an issue for me. If you are working on something where scale and performance at the OS level actually matter, you probably have strong feelings about which Linux kernel you’re using and low level optimizations and file systems and things I don’t worry about. OpenBSD performance is fine for me.

Virtualization – support for OpenBSD in modern VPS hosts is a bit rarer. Vultr is probably the easiest to get it working. I managed to get it to work on Linode but that is probably more trouble than its worth.

Updates – things can be slightly more complicated than apt-get upgrade, though you can get pretty close if you try.

Support – OpenBSD doesn’t seem intended to solve everyone’s problems, or be the most accessible or easy to start or use software, and the community is a lot less interested than (for example) the 90’s linux community about convincing anyone to use their software. (IE, people are smart and helpful but you probably can’t expect the same support from the software or small community compared to some of the alternatives.) Which is fine, for me, but if you’re just trying to figure out how to use Unix for the first time, maybe just stick with Ubuntu.

Or go with OpenBSD because it’ll be cooler and more interesting and make more sense and everyone will be like “wtf” when you tell them that’s what you use.

Further Reading

Canonical Books For Product Managers

This is a first attempt at creating a canon of books for product managers in technology companies.

This is not a value judgment that these are necessarily the “best” books or a comprehensive list – but a clear declaration that these are influential enough that being familiar with the ideas, concepts, and vocabulary represented is relevant to effective product management.

It is a value judgment in the sense that I have read and recommend them.

The Design of Everyday Things

Pioneered or popularized concepts like “affordances” along with a highly useful framework for thinking about usability, design, and the evaluation of products. This is the one book above all others I recommend for those looking to understand and develop product, design, and usability insight.

The Mythical Man-Month

Why is software development hard? Why is nothing ever on time? Why doesn’t adding more engineers to a stalled project accelerate it? Will we ever get better at any of it? These essays by Brooks exploring these issues have turned out to be both prescient, timeless, and a fascinating time capsule as decades have gone by. Software is still fundamentally about conceptual integrity, managing complexity, and the nonlinear increase in communication that comes with large scale software.

High Output Management

Something of a cult classic in Silicon Valley now, this is a surprisingly practical guide to management. How should someone who has an infinitely large possible space of work prioritize? (Answer: understand what high leverage activities are, and do those.) There’s something oddly satisfying in the simplicity and clear guidance – I’ve found it tremendously useful as I take on more direct people management roles in my career.

The C Programming Language

If you want to understand the technological underpinnings of pretty much our entire modern computing infrastructure, you should understand UNIX and C. I firmly believe there is no better book about any programming language than K&R. The book in many ways mirrors the language it documents – simple but powerful, straightforward but opinionated, and concise.

The Innovator’s Dilemma

You’ve probably heard something called “disruptive” a billion times by now. A few of them actually reflect the distinction between sustaining and disruptive innovations as defined here, but after reading this, you’ll know the difference.

Backed by extensive case studies and quantitative research, The Innovator’s Dilemma posits that the reasons great companies soar, plateau, and then decline is rarely due to bad management or incompetence. Instead, it is because highly qualified managers apply decision making criteria and processes that all but guarantee the next innovation will be more likely to thrive outside the current successful business.

In many ways the follow-up “The Innovator’s Solution” encompasses the first book but has more practical advice on how to positively effect organizations to compensate for these issues.

The Lean Startup: How Today’s Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses

Vanity metrics, learning milestones, pivots, growth engines – The Lean Startup began by applying the Toyota Way (lean manufacturing) concepts to technology products and software, but goes on to define and document a very coherent approach to rapid product and business model ideation, iteration, measurement, and growth. This is another one where you should probably read the source material since you’ve likely heard these things misapplied a dozen times in bad blog posts and offhand.

Video Game Consumption Q2 2017

I abandoned a lot more games and returned them these past few months than previously because apparently I hate video games right now, mostly.

Thimbleweed Park

Ron Gilbert set out to make a game that felt like a “lost” Lucasarts adventure and succeeded at that and beyond. It’s a great game. It may spend a bit too much time in self-aware nostalgia for some players, but the writing, puzzles, wit, and charm more than make up for it.

And also you can turn the in-jokes off with a menu option, along with changing toilet paper orientation and fonts.

Kickstarter nostalgia-fueled adventure game revivals tend to just be heartbreaking disappointments, this is the exception.


Phoenix Wright Ace Attorney: Spirit of Justice

The Apollo Justice: Ace Attorney sequel nobody asked for but turns out we all needed, and they had to brand as Phoenix Wright this time.

A 3DS-digital-download only in the US until Capcom decides to sell this on iOS for a fraction of the price, this is probably the most difficult of the legally available in the US Ace Attorney games to play (you’ll need a 3DS, but really, if you never got a 3DS go now and get a New 2DS XL, you deserve it.)

Anyway, as always, Ace Attorney games are the best things in the world and and I’m glad we exist in a piece of the multiverse with them.


Ace Attorney Investigations: Miles Edgeworth

Previously, I meant “Phoenix Wright” games are the best. “Ace Attorney” games featuring Miles Edgeworth are actually just pretty good, not the best in the world.

It’s clear they were hampered by trying to distinguish from the “main” entrants in the series, and so tried to add in some third-person adventure-game style gameplay in addition to the dialog but that doesn’t work that well.

The “combining logic” and clues in Edgeworth’s head is a neat idea, but is somewhat convoluted in practice.

But it’s still Ace Attorney – writing, wit, characters, and weirdness is all there.


Star Trek: Bridge Crew

It’s Star Trek VR! Finally. We as a people have accomplished that.

It’s easy to get very in-character playing, as you’re talking to the crew in multiplayer. And to get loud and animated.

Star Trek Bridge Crew actually has voice recognition even in single player so you can give verbal orders to the crew! Not just multiplayer.

I mean, I wasn’t actually using that or playing multiplayer when my wife asked me what was going on with all the noise, but I could have been.

Like all of our current “first gen” VR experience we will laugh at how awkward and ludicrous they are when the technology gets better, and this is as awkward as they come. You can forgive it because it’s star trek but it is sort of objectively meh to and use a simulated touchscreen in VR with HTC Vive controls, and it’s JJ Abtrams Trek, not real Next Gen or DS-trek.



This is the spiritual successor to System Shock 2 that I thought I always wanted but the amount of jump scares from furniture and cups and inanimate objects turning into terrifying aliens in the first 2 hours made it impossible for me to continue.

At some point I think I’ll figure out a way to play this – it seems like it would be good?


Cave Story

Seems weird that I never completed Cave Story (I remember getting annoyed with some part of many years ago and losing interest.)

Anyway, despite buying and trying to play Cave Story+ it turns out playing the original pixelated version at 16x9 using nxengine-evo was much more pleasing.

I get that it’s pretty good, and the art, sound, and design are great – it has character, but I don’t quite see why it has achieved such a cult following.


The Case for Freeing MacOS

Professionals and power users have been upset with Apple’s high end computers for some time, but the last six months it’s come to a boiling point.

I don’t think much in the last round of updates will change that.

I’ve worked enough in big companies to understand the external perception and internal reality diverges a lot more than people know, so it’s hard to know how this happened.

I’m not particularly interested in the explanations – for me the interesting point is one of strategic misalignment and the opportunity for Apple to do something really bold to address it.

Why Pros Are Angry

Basically, if you want the absolute fastest processing and graphical power, you are hampered if you want high power, high thermal, desktop computing. Apple isn’t just losing on a price/performance perspective – in some cases it’s not even competing anymore. The 2013 Mac Pro essentially being not updated for years is the most grievous offense, but the more recent MacBook Pro without decent GPUs or keyboards and instead idiotic touch UIs is just offensive to those of us who actually work on computers for a living.

Exhibit 1 – The 2016 MacBook Pro

Exhibit 2 – The 2013 Mac Pro is ancient

Exhibit 3 – The 201x Mac Pro Announcement “coming next year-ish maybe!”

Exhibit 4 – The Hackintosh

Basically, people are unhappy, and often the best option is to make an illegal hacked up machine from parts that has better performance. Or just use a Windows/Linux PC with better components.

What Is The Point Of The Mac

Today Apple is, from a business perspective, an iPhone company.

The iPhone is the most successful consumer product in the history of consumer products in just about any objective measure. It is unclear if or when we will ever see another consumer product as successful in my lifetime.

Given what I understand of Apple’s functional internal structure (rather than business units) – one would expect all the other product lines to suffer as Apple puts more and more of their efforts into the business that makes all their other businesses seem small.

Interesting is that in my experience this is true even if benevolant management recognizes this as a problem and tries to adjust staffing / compensation / priorities to invest in other things. Because the potential rewards and recognition from working on “winning” supported projects end up influencing individual’s project decisions, this can be challenging. The rich get richer in that successful projects attract better talent. See also: The Innovator’s Dilemma

People like me look at the Mac as a general purpose computer with which to do interesting things (write, program, create art, type in terminal windows for a few decades). Historically the Mac has been Apple’s primary product that is created and sold at high margins.

The problem is that isn’t the Mac’s purpose anymore from a macro business perspective – it’s to support the iPhone.

The purpose of the Mac is to enable the creation of software and content experiences that make iPhones better.

And since the current market scale between laptops, smartphones, and new devices and experiences is unlikely to change, this is likely the reality for the next decade. There will be more smartphone users than computer users, and they will have a faster upgrade cycle. It’s a market that makes others seem tiny.

So it may be time to embrace that reality.

(Note that this equation changes if iPhones/iPads become platforms to create iOS software, but there’s been little to indicate that is planned in the near term.)

Apple Trucks

When computer products are compared to automobiles, the trite analogy now is that desktop and laptop computers like the Mac are trucks, while smartphones and tablets are cars.

Most people just need a car. Sometimes you might need a truck for specific purposes. Businesses need trucks.

The analogous problem here is that Apple’s car business is so large it seems almost irrational to care about the trucks.

But you need the trucks to make cars – they haul in the parts and people needed.

The problem is trucks have stagnated to the point where the truck drivers who bring the parts to assemble their cars are miserable and looking to buy something else.

The weird thing is Apple only allows Apple-trucks to bring them parts for Apple-cars, so when they stop buying Apple trucks, Apple cars suffer.

Commodify Your Complement

Many of the big successes in the tech business world have come from a strategy of commodifying your complement. The classic example was Microsoft creating a standard operating system that worked on a plethora of commodity computer hardware. Anybody could assemble PC’s, so fierce competition followed, which made PC’s cheaper and more prevalent.

Which was great for Microsoft, because every PC sold meant another Windows license.

Windows was the product, PC’s the complement that became further commodified – you could buy any IBM PC compatible system and run Windows and do what you needed.

Pundits suggested Apple follow this same course (and they briefly did in the 90’s with clone manufacturers before Steve Jobs returned) but it never really made sense because Apple computers weren’t about commodity hardware and solving all problems – they were about charging a premium for an integrated experience that worked (this was much harder in the 90’s, Windows “worked” on all kinds of hardware, but poorly.)

So it’s 2017 and I’m making the totally discredited suggestion Apple sell its OS and let hardware manufacturers compete in hardware?

Sort of.

Understand Your Complement

My hypothesis is that Apple needs as many developers using their software as possible to maintain dominance in smartphones and the next generation of hardware (AR, VR, whatever).

Their current high margin computers is making this somewhere between hard (programmers) and impossible (virtual reality developers, though the most recent WWDC keynote and external GPU enclosure is suggesting they are trying to take this from impossible down to hard.)

Let’s take things to one extreme for the sake of argument.

Free MacOS

MacOS is already “free” – Apple has stopped charging for upgrades. The cost of MacOS is just hidden in the cost of buying a Mac, and Apple wants everyone to have the latest version for ease of maintenance and market size for developers.

But what if MacOS was free and ran on commodity hardware (which it basically does, already, if you bend the law and make a Hackintosh.)

A few interesting things happen here.

The first is less direct Mac profits – via cannibalization of the existing Mac product lines.

But there’s some potentially offsetting gains that are better in the long run –

  1. More MacOS users – via decreased cost of hardware, increased hardware support
  2. Increased innovation on the platform – via (1) and more students, starving garage developers, hobbyists choosing MacOS
  3. Better, stickier app ecosystem on iOS and new Apple hardware – via happier, larger pool of developers
  4. Support for virtual reality, augmented reality, and other hardware-dependent hacking becomes easier
  5. The demand for Apple services (iCloud, Music, etc) goes up significantly, especially for current iPhone users who also adopt MacOS powered desktop/laptops

There’s less extreme iterations on this –

  • MacOS supports more hardware but licenses are only available with an iOS device purchase
  • MacOS licenses are sold to support some homebrew hardware but with limited/no customer support

Why Not

Crappy, ugly, commodity hardware is fundamentally “off-brand” for Apple, and the nature of enabling MacOS to work across more hardware fundamentally leads to experiences that are sub-optimal compared to the fully integrated Mac hardware/software stack today.

There’s also a serious strategic discussion of whether the potential gains offset the revenue declines and other issues.

It’s easy to pontificate on these things externally, it’s a lot harder to make these decisions when you have hard numbers in front of you and shareholders to be accountable to.

And it’s hard to cannibalize existing business lines as an executive, people generally fight tooth and nail for short term gains over long term strategy that has risks.

Why Yes

Apple is a beloved company that is having trouble coming up with its next hit.

Hits take time and Apple has a cash hoard that can buy time, acquisitions, or a few small countries, any of which might help them at this point.

Getting developers on their side – getting a small army of Apple lovers tinkering to make the best tricked out, hot-rodding Macs instead of Windows and Linux boxes – may be one of the things that has immeasurable “brand lift” (imagine the ads linking Apple II homebrew computer club users and today’s garage hackers doing AR on weird looking Mac hardware) and helps cultivate a new generation of developers.

And there’s something fundamentally “Apple” about making desktop computers simple, easy, and affordable. That’s what the Apple computer was, deep down, and everything good (Apple II, Mac, iPhone) that followed.

It may be that by giving more software away, Apple will make their software and services available to more people, make them happier, and improve long term businesses.

Or it may just lose them a lot of money – if it was an obvious win, they’d probably already be doing it.

Either way, I’m typing this on a MacBook Pro with abysmal keyboard and Touchbar and it’s insane to me that this is the best they can do.

If they don’t start shipping better hardware or freeing their OS, Apple will lose key influencers.

Serious Changes

Today I thought about how I wanted to change some things.

Then I opened .emacs

;; cursor
(setq blink-cursor-mode 0)
(setq default-cursor-type 'box)

Cursors should not blink. Cursors should be boxes, not lines.

Small victories, tiny bits of autonomy.


I love this art from the 15-year anniversary of the Ace Attorney franchise by Takuro Fuse.

There’s something beautiful in this image split between Phoenix, starting alone with his mentor, next to himself years later as the mentor, surrounded by the people he’s bonded with.

· · ·

I finished Spirit of Justice yesterday.

Ace Attorney games are a precious thing in this modern world. I hope there’s another 15 years ahead.


Birthday coffee for a birthday vacation.

Video Game Consumption: Q1 2017

I played surprisingly few games the last couple months.

Glittermitten Grove

Beneath the surface, it’s a masterpiece.

(Trust me – I’m in it.)


Deus Ex: Mankind Divided

The original Deus Ex came out in 2000, and is now a cult classic. It was ambitious and brilliant and weird and also a bit of a mess because it tried to do so much.

But the essence of Deus Ex was that it used a first-person-shooter engine to create a first-person action adventure that wasn’t just about shooting things. Violence and shooting is one tool to solve problems, but by itself would almost never work. Stealth, exploration, and outwitting your opponents through clever use of skills and the environment was key. (That and the conspiracy theory / illumnati are real stuff.)

Despite the most recent entry Deus Ex: Human Revolution being a masterwork in the action RPG genre and revitalizing it, this time it feels like the series has run out of steam and ideas. The gameplay and mechanisms feel repetitive and dated rather than fresh after 5 years. The storyline is both incomprehensible (even for Deus Ex) and seems completely unfinished and unsatisfying. It feels plodding and boring. Rather than leave me wanting the next chapter, I felt bored.

Huge disappointment.


Dishonored 2

Where Mankind Divided fails, Dishonored 2 succeeds. As an action-stealth-play-as-you-want RPG, it enables all sorts of different, varied play styles. Lethal or non-lethal, loud or stealthy, indirect or head-on, and all manners in between.

The characters, voice acting, plot and more seem improved.

Dishonored made Dunwall feel real and interesting. The most remarkable thing is how vibrant and larger and varied yet cohesive the larger Empire of the Isles becomes in this sequel, and how exciting it is each time we see more of it. The level design and setting combines with the mechanics and story to create something spectacular.

The choices and how you play again feel like they have weight and impact the world. Choosing to sow chaos has repercussions. Seeing how Emily and Corvo have changed over the years was actually interesting. Very much enjoyed this one.


Ace Attorney: Dual Destinies

Despite more or less buying a 3DS to play this game, I never actually completed it. (I got through the first case and stopped.) Part of it was playing on a 3DS annoyed me.

I then bought it for iOS when it came out and played through the second case and stopped. I got bored.

This time, though, for whatever reason, the love of Phoenix Wright games overtook me again as I completed the other three cases.

If you have never played Ace Attorney, the iOS re-releases are the easiest way to experience them, despite the flaws in the ports it’s a lot easier than tracking down Nintendo GBA imports or DS versions now.

Anyway, I love these games so much, and I hope they keep making them forever.


How to build a tolerable gaming PC

The nice thing about building your own PC is you get exactly the parts you want.

The bad thing about building your own PC is it’s hard to know exactly what you want.

The last time I built a computer (about 2.5 years ago) was my first time building one completely from scratch in the modern era. (I’d cobbled together some tiny linux boxes from barebones PC’s, but hadn’t done the whole thing, and not for gaming.)

This is something I probably should be leaving to professionals. But I wanted the satisfaction of doing it myself.

I ended up with something that worked and ran modern games effectively on a weird 34” ultrawide monitor but it looked sort of absurd and I’m pretty sure I never got the thermal situation right – fans were loud and always running and it seemed to generated what I thought was an inordinate amount of heat.

This is also the bad thing about building your own computer – how do you even know you did it right?

It’s complicated.

Anyway, I learned a lot –

  • many cases are embarrassingly ugly
  • many parts wants to generate obnoxious lights
  • if you’re not careful you will end up with a weird looking monstrosity that has branded lighted logos flashing everywhere

Clearly I did not learn “just let the pros do it next time” because I’m stubborn.

So spurred on by my need for Thunderbolt 3 support discussed yesterday, I embarked on a new PC building mission.

Part Picking

Fractal Design Define R5

A beautiful but functional monolith, without obnoxious branding, windows, or colors.

Focuses on quiet computing so includes sound dampening and quiet fans.

I bought the “blackout edition” which makes even the internals and fans and everything black. It’s nice.

Intel Core i5-7500 3.4GHz Quad-Core Processor // BX80677I57500

Chose the i5 since it seems like overkill for gaming already and wanted less power/heat than dealing with the i7.

Cooler Master Hyper 212 EVO 82.9 CFM Sleeve Bearing CPU Cooler

This is a super popular cooling solution that was recommended to me.

Seems OK. It was kind of a pain to install but seems far quiet and more effective than using the stock cpu fan like I did last time. If I do another build I might try something different / quieter / more expensive.

Asus PRIME Z270-A ATX LGA1151 Motherboard

Decision was driven by the need to support Thunderbolt 3 and the latest generation of Intel chips. ASUS hardware and software and BIOS etc. seems relatively inoffensive and functional.

Went with the “stock” Z270 board – seemed unclear what value most of the higher end motherboards with various add-ons actually did.

Asus ThunderboltEX 3

The add-on card needed to drive my LG UltraFine 5K display via a PC over Thunderbolt.

Corsair Vengeance LPX 16GB (2 x 8GB) DDR4-3200 Memory

Damn RAM is fast now. Very fast.

Samsung 960 Evo 500GB M.2-2280 Solid State Drive

These tiny little M2 drives are mind-boggling. Progress in size/speed/cost even over the past 2 years is significant. Definitely splurged on this because I was sick of worrying about disk space.

EVGA SuperNOVA GS 550W 80+ Gold Certified Fully-Modular ATX Power Supply

Has been super quiet and efficient.

Video Card

I transplanted my old EVGA GeForce GTX 980 Ti into this one as it doesn’t seem quite worth it to upgrade yet. If I was buying something I think I’d go with the EVGA GeForce GTX 1070 or 1080.

See also: the PCPartPicker list for this build.


Everything actually went really smoothly this time other than I was somewhat confused on how to properly set up the CPU cooler. I think it went ok, but I did spend like an hour watching YouTube videos of people doing it first.

Also I plugged in the ATX power but forgot the separate CPU power and spent 30 minutes checking everything but that – rookie mistake, but, whatever. Helps to build character? It makes the end product feel like more of a triumph, maybe.


I have a system that is quiet, sleek, and just has a single white LED on top to indicate power and no other annoyances that is not embarrassingly loud or flashing ugly lights under my desk.

LG 5K Monitor with a Windows PC

Despite being officially unsupported, the LG UltraFine 5K Display can mostly work with a Windows PC that supports Thunderbolt 3.

You can even use your existing GPU to drive it with the right hardware. The USB-C ports on the monitor are recognized and works properly. The speakers work too. (They’re terrible, but they work.)

Major caveat: Only 4k as max resolution, 5K is trickier right now.

This is fine for my usage – gaming on PC, everything else on Mac. But if you’re looking for true 5K you may need to get the pricier Dell 5K monitor or try one of the few motherboards that claim to support 5K out of the box mentioned below.



I used an Asus Z270A-prime which isn’t on that list but Asus explicitly notes is compatible.

I suspect most recent Intel boards with a 5-pin thunderbolt header will work, as it did for John Griffin who used a similar setup as me but with a Gigabyte motherboard.

After connecting the add-on card to the motherboard, you do an external connection from the Displayport on your GPU card to a mini-displayport input on this card with the included cable.

Then connect to the LG 5K monitor with the Thunderbolt-3 cable.

The display powered up and worked at boot instantly for me, including showing the POST screens.

Support for the USB-C hub and speakers on the monitor required me to make a few BIOS changes to enable Thunderbolt-3. I guess TB3 support needs to be enabled explicitly, but somehow the Displayport passthrough on the card doesn’t require it? Which was convenient but very confusing.

What Works

On a PC with Windows 10 –

  • 4K – 3840×2160 @60hz
  • Speakers – (but again, why) and volume
  • Hot swapping the cable between Mac/PC
  • USB-C hub (probably)

What doesn’t work –

  • brightness adjustments (though maybe that’s fixable)
  • reliable USB device recognition on hot-swaps
  • the webcam (haven’t tried to figure out why)

The USB-C hub passthrough was recognized and appeared to work, but wasn’t reliable for me on hot swaps. It was always fine on a fresh boot.

That’s hard to debug or speak definitively on as I’m only using it with legacy USB-A peripherals (keyboard, mouse, speakers) that are connected to a cheap Amazon Basics hub, which is then connected via Apple’s USB-A to USB-C adapter. (I think the USB-A hub is the unreliable part.)

Hot swapping the cable generally worked fine, except for flakiness in recognizing USB devices, and sometimes plugging individual devices in and out of the hub fixed it. It worked enough of the time that I suspect swapping out my old USB-A hub may fix it.


I bought the 2016 Macbook Pro a few months ago, and part of my excitement around it was the LG UltraFine 5K Display that Apple announced at the time.

It’s a native resolution of 5120×2880 at 27”, so it has the same screen real estate as a 27” 2560×1440 but doubling the clarity and pixels per inch. It looks really good!

My challenge with it was I have a gaming PC running Windows so I can play real computer games and use my HTC Vive and I didn’t really want to have two monitors on my desk. I also really like having my monitor act as a USB hub and KVM since I use both a Mac laptop and a desktop PC.

Previously I was using the LG 34UM95 34” ultrawide monitor for this – it supported Thunderbolt 2 input from my mac and Displayport from the PC, and happily swapped the USB devices between them.

So I’m losing the KVM aspect with this setup – I have to actually swap the cable between the desktop and laptop.

But the gains – 5K retina resolution on the screen I use most makes a huge difference – and while I enjoyed the 21×9 aspect ratio for gaming it is much less hassle and equally nice to go back to 16×9 but up the resolution to 4K. (Performance of 3440×1440 and 4K on my GPU, a 980TI, is usually about the same.)

Other Compatibility Notes

The LG UltraFine 5K will also work with older Macbook Pros I tried, but at lower resolutions.

As noted in Apple’s support page, most Macs from the past 3 years will drive it at 4K – 3840×2160 at 60hz – the 2014 Macbook Pro I tested worked as expected.

Not noted on that page but tested and verified by me: my first generation 2012 Macbook Pro with Retina Display will drive the display via the Thunderbolt 3 (USB-C) to Thunderbolt 2 adapter, but only at 2560×1440. I couldn’t get USB devices to be recognized or work, just video.

While it doesn’t make sense to buy this monitor except for a recent generation Macbook Pro that can drive it at 5K, you will (in most cases) be able to use this as a secondary display for older machines if needed, which is nice.

Alternatives on the pc side – the Gigabyte GC-Alpine Ridge looks like it should also work, and has dual Thunderbolt 3 ports, and (seemingly) two Displayport inputs. It claims to enable 4K video, and I suspect it’s possible that it supports dual stream and could drive 5K in some cases but nobody seems to be able to actually buy this card in the US or test it from what I could determine.

Gigabyte also produces some motherboards natively support 5K output over Thunderbolt 3 –

I assume these would be limited to the integrated graphics on the board, so wouldn’t be interesting for my gaming setup, but at least one person has gotten the Z170X Designare to drive 5K on the tonymacx86 boards.


The LG Ultrafine 5K is on sale (30% off) at Apple through the end of March so if what was holding you back was PC compatibility, there’s now at least a few documented examples of it working. Mostly.

It’s still early days of super-high resolution displays, so things are a little trickier to get working. I suspect in a year or two 5K and 8K monitors and supporting motherboards and GPUs will be much more prevalent. If you want to live on the bleeding edge now, you have to be picky about your parts.

But What About Your Personal Brand

Gershon, a professor of anthropology at the University of Indiana, Bloomington, spent a year interviewing and observing job seekers and employers in Silicon Valley and around the US. Her new book, Down and Out in the New Economy: How People Find (Or Don’t Find) Work Today explains that branding is largely a boondoggle advanced by inspirational speakers and job trainers. It doesn’t help people get jobs. But it does make us more accepting of an increasingly dehumanized job market that treats workers as products rather than people. […]

When people think of themselves as brands, they are speaking the language of reputation, appearance, and marketing. It’s hard to switch from that to a discussion of moral responsibility. […]

“Maybe instead of thinking about people as property or businesses, we could think of people as craftsman.”

Noah Berlatsky – Our obsession with personal branding reveals a dark truth about the future of work Quartz

So the conclusion was your personal brand won’t help you get a job. But it may make you more accepting of dehumanization in the postmodern economy.

The book: Down and Out in the New Economy, Ilana Gershon [via]

Throw Away Your Operating System

I’ve been thinking about the complexity of modern technology stacks. See You probably like bad software from earlier this week.

Some of the interesting approaches to dealing with this eschew operating systems almost entirely.

Finding ways to reduce attack surfaces, create more maintainable systems in a world where the cost of hardware approaches zero is critical because we’re going to have a lot more of them.

Nobody (or company) is going to be able to effectively manage an infinite number of unix systems spread across dozens of devices indefinitely. I can barely maintain one unix server running this site and I have a computer science degree and two decades of experience running it.

Some interesting approaches / existing work –

unik – The Unikernel Compilation and Deployment Platform

UniK (pronounced you-neek) is a tool for compiling application sources into unikernels (lightweight bootable disk images) rather than binaries. UniK runs and manages instances of compiled images across a variety of cloud providers as well as locally on Virtualbox. UniK utilizes a simple docker-like command line interface, making building unikernels as easy as building containers.

Unikernels are interesting – throw out the OS and write monolithic kernels with a single application on top. Somewhere between “research concept” and “possibly a production-ready technology” but this toolkit makes testing and applying unikernels in various current forms pretty straightforward – I had some basic Go code running on a rump kernel very quickly.

Unikernels – rethinking cloud infrastructure

Unikernels are specialised, single-address-space machine images constructed by using library operating systems. Unikernels shrink the attack surface and resource footprint of cloud services. They are built by compiling high-level languages directly into specialised machine images that run directly on a hypervisor, such as Xen, or on bare metal. Since hypervisors power most public cloud computing infrastructure such as Amazon EC2, this lets your services run more cheaply, more securely and with finer control than with a full software stack.

gokrazy is a pure-Go userland for your Raspberry Pi 3 appliances

For a long time, we were unhappy with having to care about security issues and Linux distribution maintenance on our various Raspberry Pis. Then, we had a crazy idea: what if we got rid of memory-unsafe languages and all software we don’t strictly need?


MirageOS is a library operating system that constructs unikernels for secure, high-performance network applications across a variety of cloud computing and mobile platforms. Code can be developed on a normal OS such as Linux or MacOS X, and then compiled into a fully-standalone, specialised unikernel that runs under a Xen or KVM hypervisor.

Library OS in OCaml.

Rump Kernels

Rump kernels enable you to build the software stack you need without forcing you to reinvent the wheels. The key observation is that a software stack needs driver-like components which are conventionally tightly-knit into operating systems — even if you do not desire the limitations and infrastructure overhead of a given OS, you do need drivers.

Uses NetBSD drivers and enables a large amount of existing software to more or less “just work” as a unikernel – some example packages include mysql, nginx, leveldb, haproxy, rust, tor, zeromq.

Unshareable Concepts

I’m uninterested in the latest viral content.

I want more exposure to things that are good, even if you don’t want to share them. Or can’t share them in a moment easily.

Or things that won’t get repeatedly re-shared because they are actually complex and require thought and therefore less likely to be a meme.

Or they matter too much to you to share without thought.

Engagement optimized social media underexposes these things systematically.

It’s like we have a biological ecosystem where the most infectious virus won, and we’re slowly seeing all the complex organisms die.

This is a hard problem. All the incentives around attention and money are generally going the opposite direction.

· · ·

If you enjoyed these posts, please join my mailing list