Symbol vs. WeakMap

JavaScript has added a bunch of new stuff over the last several years whose purpose wasn’t immediately obvious to me, and Symbol was definitely one of those things. The basic idea is actually clearly expressed in the first paragraph of…

Building Custom Elements

Custom Elements, a.k.a. web-components, are (in my opinion) the way reusable, composable components ought to work, but the process of implementing them has not received as much love and attention as the many methods of creating reusable, composable components that…

xinjs turns 0.1.0

If you can’t beat em, join em? I wrote b8rjs after leaving Facebook during the hiatus between that and my next job. It was an attempt to distill everything I knew about front-end development into a small library, in part…

Typing in AR/VR

The first objection I typically get to my prediction that AR is the next big technology wave that will make existing personal computers obsolete is "what about text entry?"

The AR Tsunami

In a recent episode of his excellent podcast Cautionary Tales, entitled “Frankenstein vs. the Volcano“, Tim Harford looks at the impact of the explosion of Mt. Tambora (which was far more powerful than Krakatoa) on the world in the immediate…

Is SwiftUI a Good Idea?

There are two major options for developing iOS (and Mac) apps at this point. Cocoa/Storyboard and SwiftUI. The first is essentially a highly refined version of what NeXT shipped in 1987, while SwiftUI is an “it’s all code” approach with…

iOS Native in 10 minutes

The goal of textreceipts.com is to have zero friction and zero barrier to entry. It’s an app you can use without installing an app (you can literally use the app via sms, email (work in progress), or a web browser.…

Tomb Raider, 25th Anniversary

I only realized it’s 25 years since Tomb Raider first came out because the games are selling for insanely low prices on Steam. Tomb Raider remains one of my greatest gaming experiences (and the recent movie with Alicia Vikander was,…