Breaking Bad was a UI Problem

Thursday, November 19th, 2015 at 11:51 pm


For the Message, a theory about the influence of Netflix on television scripts:

Nearly forty percent of American homes pay for access to a streaming video service like Netflix, Hulu, or Amazon Prime Video. A theory: even excluding forays into original programming, their prevalence has now started to shape the material they present. As we’ve seen from a decade of arms races in SEO and social media, content evolves to jockey for position with its audience.


Software Naming Conventions

Monday, November 2nd, 2015 at 3:59 pm


A strange piece for the Message which attempts to illuminate the absurdity of our current approach to naming software.

If you can’t Google your way to something, it’s almost as though it doesn’t even exist, but luckily the filename suffixes used for coding scripts, such as .js and .py, are linguistic (linguistic.js) anomalies which all but create their own SEO (seo.js). Businesses strategize based on their Google rankings relative to competitors for the same reason that tweets are usually weighed in favorites and retweets — on an impersonal internet, visibility (visibility.js) is almost synonymous with value. Publishing any code at (at.js) all creates an instant presence which would be hard to build in other ways. The tech industry is our modern gold rush, drawing swarms of opportunists westward (westward.js), and memorable terminology is one of its new land grabs.


Clusterfucks (A Working List)

Friday, October 30th, 2015 at 1:00 pm


Just in time for Halloween, a list of things that should scare you about modern technology:

Tech has always generally moved faster than government in most senses, but increasingly it now outpaces the agencies we’ve been conditioned to trust, not just the municipal parks struggling to put pool schedules online. Very real threats form in dark corners of the internet precisely because the people who hang out there can buy drugs and weapons, and trying to limit the transactions quickly led to untraceable online currency. These are functions we theoretically employ vast literal armies of government agents to manage.


Literate Programming

Friday, October 30th, 2015 at 12:30 pm


Lately I’ve been doing a lot of coding in CoffeeScript, which is a very elegant language in general, but my favorite feature is actually something called “literate mode”: instead of first coding and then later annotating the code, with Literate CoffeeScript you first write out descriptions of your logical structures, and then inside that framework you start to embed the executable code. It’s a very interesting way of working, so a few days ago I put together a small shell script which allows me to apply a “literate” workflow to any other kind of code.

Blood, Guts

Wednesday, September 30th, 2015 at 12:00 pm


I’m so excited to have started as a contributor to The Message, the chaotic in-house tech and culture vertical at Medium – thrilled to be working alongside all these geniuses. First up, here’s a look back at the circumstances that have occasionally driven me to write scripts to solve personal issues:

I’d often react to a case of information overload by trying to find a way to pare it down, little data processors which attempted to solve the problems I’ve had in my life over the past decade. I realize these are very strange artifacts to feel nostalgic about, but we don’t get to choose these things.

It’s Time To Choose!

Saturday, September 26th, 2015 at 12:30 pm


I hope you had a great summer! I wrote about one last round of potential Song of the Summer candidates for the Awl, again excluding anything in English.

I can’t remember the last time I saw a teen pop group this large in the U.S.—there are eight members, including one drummer who doesn’t participate in the choreography. Here they swap out leads so quickly and stitch together the vocals so tightly that the singers are still all but indistinguishable by the end; it’s a five-minute song, so that’s 37.5 seconds allotted to each member, if we allow no time for breathing. To keep things under control, they’re sometimes split into two color-coded sub-groups, just like the blue and gold teams from the early-nineties X-Men.



Sunday, September 20th, 2015 at 11:30 pm


I mostly threw together that last post so I could clear my plate for some new action happening over on GitHub: memento.js, which binds data sets along a timeline for dynamic recall during media playback.

My excitement about this code cannot be overstated.

D3 Text Wrapping

Sunday, September 20th, 2015 at 11:00 pm


It’s been more than a year since I posted it on GitHub, so I suppose I should finally acknowledge the existence of my text wrapping plugin for D3.js. It has already been discovered by some folks (including Mike Bostock, who enthusiastically described it as “generalized somewhat.”) But I probably waited too long, because it’s been outmoded, sort of! You should probably use Gregor Aisch’s d3-jetpack instead, unless a) you want the performance boost of wrapping using native HTML text handling in foreignObjects instead of infuriating SVG positioning math or b) you need scrollable text content in divs using CSS overflow:auto or similar.

Color Palettes

Wednesday, September 16th, 2015 at 6:30 pm


Wrote about a disaster from my youth that revolved around pixelated graphics.

Passive Voice

Thursday, September 3rd, 2015 at 9:30 pm


The newest installment of Facepalm Pilot, my technology-driven column for McSweeney’s, focuses on grammatical structures and the way they influence our understanding of the world.

As a thought experiment, let’s examine in extremely close detail a set of iterative changes that can be made to a single simple grammatical structure.


Where Is The Song of the Summer?

Wednesday, August 26th, 2015 at 6:00 pm


Wrote about some great pop songs from Botswana, Macau, and French Polynesia for the Awl:

Some of the samples harken back to the nineties heyday of white R&B/pop. They’re spliced in here with a heavy-handed aggression, though, a refreshing change from the usual misty-eyed nostalgia, so it sounds like nothing else so much as bludgeoning the New Radicals to death with Paula Abdul.


More Summer Songs

Wednesday, July 22nd, 2015 at 6:00 pm


My worldwide pop chart watch for the Awl continues.

In a world teeming with earnest YouTube bedroom confessionals, maybe finding the good ones becomes more rewarding? Everybody please take care when stampeding down to the pawn shop to buy ukuleles.


I cannot stop listening to “Playback.”

BrooklynJS and Multiverse JSON

Wednesday, July 22nd, 2015 at 5:30 pm


Belatedly, I gave a short talk last week at BrooklynJS, New York’s nerdiest JavaScript event. I unveiled Multiverse JSON, a lightweight new specification for configurable editorial projects which are stored as structured data and compiled with Python before reading or publishing. More importantly, I gave the entire presentation using a sock puppet.

It’s Still Number One Somewhere

Thursday, June 25th, 2015 at 6:00 pm


In a manner of speaking, The Awl has picked up the remnants of my erstwhile Spin column about foreign language pop songs. For the next few months, I’ll be covering the phenomenon of the “song of the summer,” but specifically excluding anything with English lyrics.

The Japanese songwriter’s new single is so relentlessly upbeat and optimistic that it almost reads as 2015’s response to Pharrell’s “Happy,” but it’s also somehow simultaneously weirder than anything currently happening in mainstream American pop. There are the unexpected production flourishes derived from disco, of course – shades of Michael Jackson’s “Rock With You,” or perhaps at least the lightweight adaptation of it he might have performed during a guest appearance on Sesame Street thirty years or so ago.


Exporting Twitter Problems

Wednesday, June 17th, 2015 at 1:00 am


Twitter’s new anti-harassment tool is lame! I wrote about why it actually kinda sucks for Wired.

The mere creation of a list doesn’t give due respect to the phenomenal complexity of online hate and abuse. The list is black and white – an account name is either present or absent, the CSV list item is either imported or it isn’t. But there is no single standard for harassment online; it’s not a simple toggle switch, so the tools built around it can’t be as simple as binary filters.

Writers of Color

Tuesday, June 16th, 2015 at 12:00 am


Durga Chew-Bose, Jazmine Hughes, Buster Bylander and I were all tired of hearing that it’s too difficult to find non-white writers, so we decided to do soemthing about it. At the heart of our Writers of Color project is a directory of professional listings for writers which is queryable by location and topical specialties (and, for those who want to poach from competitors, searchable by publication name). We’ll also be retweeting opportunities posted to our audience at @writersofcolor, as well as compiling a public Twitter list for the editors to follow and explore. I’ve uploaded the WordPress plugin that makes all the magic happen to GitHub, in case you’d like to try something similar for a different group or industry. We unveiled all this by taking over the Today in Tabs newsletter, where I served as Bijan Stephen’s guest intern.

Seriously, I’ve had enough of this shit!

CSI Cyber

Thursday, May 14th, 2015 at 5:30 pm


For Wired, a breakdown of the narrative techniques used on the new CBS internet crime drama CSI: Cyber to turn technical concepts into plot points.

Salient visual distinctions between different pieces of code are immensely valuable to programmers trying to read it—numbers appearing in blue, variables in green, that sort of thing—but this example oversimplifies the practice to the point of uselessness: “Oh! There’s malware!” hiccups one of the good guys as the evil red code starts to scroll into view. Dramatic visuals surrounding an incidental clue presented on a computer is by now a common tactic on police procedurals—Access Denied! Match Not Found!—but it seems reasonable to expect a little more nuance and accuracy from a show which is entirely about those computers and the challenges we face in relating to them.


Cartoon Cereal Ads

Sunday, March 8th, 2015 at 2:20 am


Here is a new installment of Facepalm Pilot, my McSweeney’s column about technology and stupidity, with an interactive data visualization which attempts to analyze the nutritional characteristics of the various cartoon characters used to advertise sugary breakfast cereals to kids.

When frazzled parents finally concede defeat on the daily battlefield that is breakfast, their kids are often delighted, since they are unable to steel themselves against expert marketing campaigns for which they are the coveted target demographic. Television aimed at children is funded primarily with ads in which brightly colored cardboard boxes are hawked by brightly colored cartoon characters during commercial breaks between shows featuring slightly different brightly colored cartoon characters. But there may still be a partial compromise on the horizon: by assessing the nutritional profiles of the mascots being used to sell the cereals, perhaps we can begin to understand underlying patterns by which we can help keep children healthy while also indulging their mascot preferences.


The Way We Scabbadeedlybop Now

Thursday, January 15th, 2015 at 10:38 am


For Mental Floss magazine, a catalog of the various ways in which lyrics web sites like Genius attempt to represent the purely phonetic syllables used in scat singing, as with the bizarre 1994 one-hit wonder I’m The Scatman.

How does the modern internet treat this most bizarre of cultural artifacts when its only goal is to capitalize on it as an ad surface? On some level these snapshots seem to point toward subjective perceptions of art and the love it can inspire in us, but they are then promptly torn into nonsensical shreds by the brutal Darwinism of online marketing.

[ Stop It Stop It Stop It ]

Tuesday, January 13th, 2015 at 2:06 pm


I wrote a pretty intense essay for Matter about that awful thing that recently happened (whatever it was).