Structures and Strings

Monday, June 6th, 2016 at 11:59 pm

My new piece for Motherboard unpacks the recent changes to Twitter’s character limits. In short, the big news is not that the tweets are growing longer, it’s that they are now being treated as data structures, not text strings.

Twitter has always performed text analysis of the tweet content to detect elements and extract them as distinct entities to discrete data fields. Now the separation is fixed and formal: They’re auxiliary data points, not part of the message content, and as such they will need to be specifically interpreted by any program, site, or service that integrates with Twitter. This means that tweets are no longer just text; they are turning into something entirely new.

more

Web Safe

Thursday, April 7th, 2016 at 12:32 pm

blue

Web Safe 2k16 is a strange, beautiful project in which writers sift through their memories of the early internet using a specific color as a prompt. I wrote about blue.

How To Block Genius.com Annotations

Monday, March 28th, 2016 at 11:45 am

dunce

(image by alansheaven)

Update, 2016.05.25: I’d recommend using Genius Blender, a simple JavaScript one-liner, over the methods described below. You can read more about the security issues surrounding Genius in my new article for the Verge.

Over the weekend I wrote a tool to break the annotation functionality of genius.com.

Slow down. You wrote a what to do what to who now?

Genius, formerly known as Rap Genius, is a web site that allows users to annotate blocks of text that appear on other sites. It’s very cool technology; you can just visit any page on the internet using a Genius redirect link, and it will show up with all sorts of additional information which has already been appended by other people. I wrote some code which lets site owners break the Genius annotations for their site, as well as a WordPress plugin which makes that code much easier to use.

If it’s cool, why do you want to break it?

There are two sides to that coin. The existence of the technology they’ve developed should be concerning to anybody who wants to put something on the internet. Not everything needs or deserves freeform annotation by users, and some things – some people – may be actively or disproportionately harmed by it. Genius has made special arrangements with some sites, such as the New York Times (which is also my employer), but hasn’t provided a way for smaller users to either opt in or opt out. This means they’re effectively forcing it on everyone.

I’m also firmly of the opinion that we’ll all be better off if functionality like this is handled by a standards body like the W3C, or a non-profit like the WikiMedia Foundation, or at least an open-source software project. Annotations are a pretty fundamental expression of the nonlinear ways we talk, write, and think, so I’m nervous about the possibility that the content and mechanisms could end up owned by a single for-profit tech startup.

Why did you do this now?

A few days ago Ella Dawson wrote a very upsetting blog post about how Genius was functionally equivalent to forcing crude, violent, or hateful user comments onto a web site she created as a safe space to write about the sensitive work she does. When she reached out to Genius for help, the solution they suggested was “don’t look at the annotations.” This bothered me, so I stayed up all night tinkering and figured out how to make a defensive tool.

Read the rest of this entry »

Audio Metadata

Tuesday, March 22nd, 2016 at 9:00 am

 
meter

For VICE/Motherboard, here’s an obsessive deep dive into the minute details of music metadata, and how information about the songs we love is being co-opted for questionable ends by streaming services like Spotify and Google Play.

Format shifts have already altered the mechanics of music simultaneously several times over the past few decades, and the recent rush toward streaming services like Spotify and Google Play now positions a technology company between the listener and the material. Surely remote cloud storage is a new audio format at least as much as the Walkman?

This is a new kind of consumer relationship, and the play button has a different meaning for each side; to the business, it does more than just switch on entertainment. As a result, there’s now a sort of subtle power play occurring over control of the metadata which surrounds the music and connects it to search fields, filters, and playlists. This is unfortunate, because our ability to meaningfully engage with something depends first and foremost on whether we can find it at all.

more

(Discuss on Hacker News, if you want.)

d3-xray

Friday, March 18th, 2016 at 5:00 pm

d3-xray-demo

I made a new gizmo! d3-xray is a bookmarklet which lets you debug data binding in D3.js by mousing over the graphical elements instead of editing the project code.

Opinions Are Like Software Applications

Wednesday, March 9th, 2016 at 6:00 pm

siri-cant-help

For New York magazine, an attempt to explain how Apple’s institutional priorities can be understood by looking at its source code, and what that might mean for the big pending legal battle with the FBI over encryption in the iPhone:

One reliable peril of advanced technologies is that the details of implementation usually aren’t yet common knowledge among most people — often including judges and lawyers, regrettably — but the compulsion of speech, or software-as-speech, isn’t made any more acceptable simply because fewer people know how to interpret it. The FBI’s demands in this case rely on that confusion: Its application for the order to compel Apple to provide them with the custom software states that “writing software code is not an unreasonable burden for a company that writes software code as part of its regular business.” This phrasing contains a subtle gamble: that both the courts and the public will conceive of the software as a tangible artifact produced by an incomprehensible factory in the clouds, rather than fully considering its design and development a coordinated act driven by human motivations, politics, and principles.

more

Email Is Immortal

Tuesday, March 8th, 2016 at 9:00 pm

email

On the occasion of its inventor’s passing, I wrote up a theory for New York about why it has been so hard for a more modern email replacement to take off.

That is, it will remain impossible to build a better communication system until the primary goal is actually communication itself. But by and large, we don’t invest much in creating new open standards, specifications, and protocols around which entirely new classes of tools can be built — we’re too busy trying to sell apps! The funding structure of the technology world is largely set up to fight interoperability.

more

Twitter timelines

Thursday, March 3rd, 2016 at 6:25 pm

dali-clocks

My first story for Motherboard, the tech vertical at VICE, is about the darker side of Twitter’s recent experiments with polls and non-chronological timelines.

As polls spread highly structured tweet content, algorithmic presentation meanwhile creates a testable structure around the more chaotic tweets. Since the implicit contract with users would no longer be based on publicly verifiable values like timestamps, a fully algorithmic Twitter would actually just be an experimental Twitter, a service in which the content can be constantly tweaked and manipulated in order to see how users will react.

more

Alien vs. Star Wars

Tuesday, December 29th, 2015 at 6:00 pm

alien-anthology-star-wars

Over at the Message, I have a meandering analysis of the new Star Wars film which tries to connect it to the narrative schism that was created in between Aliens and Alien³ when handing off that franchise between directors.

Successful serials and franchises are small miracles given the complicated competing interests introduced by the business scale of modern blockbusters like the Star Wars saga. Empires are built around their marketing and production, but even writing a sensible core narrative is already hard enough. Weaving stories out of smaller pieces can be incredibly difficult, because in isolation, each piece tends to pull in its own direction, and it’s only through careful and deliberate oversight that they might eventually coalesce into something rational. With that in mind, please sit tight for a moment and pardon this immediate tangent. We’ll get to Star Wars in due course, but in order to contextualize where it’s going, it may actually help to start with Alien.

more

Drupal Philosophy

Wednesday, December 2nd, 2015 at 12:00 pm

drupal-guys

Here’s a strange interview I did with the lead developer of Drupal, a software project which is dramatically re-architected for every release, about general philosophies of change.

You’re sort of explaining striking a balance between hierarchical values and non-hierarchical values. How do you manage the relationship between those two types of concerns, and when there’s a new concern that appears, how do you determine whether it’s a hierarchical concern or a non-hierarchical concern?

Let’s say you go to a restaurant and you order fish. You don’t care which truck brought the fish to the restaurant, do you? Sometimes it’s as obvious as that. You have to do what’s right for the operator, the fish is fresh and what have you, but we don’t care what truck gets the fish to the restaurant. Everybody understands that, even the truck driver. Maybe it’s not a great analogy.

more

Breaking Bad was a UI Problem

Friday, November 20th, 2015 at 12:00 am

breaking-bad-television

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.

more

Software Naming Conventions

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

scrabble

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.

more

Clusterfucks (A Working List)

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

scorpion

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.

span

Literate Programming

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

candles

Lately I’ve been doing a lot of coding in CoffeeScript, which is a very elegant language, but my favorite feature is actually just a workflow. Instead of first coding and then later annotating the code, with “literate mode” 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

retina

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.
more

It’s Time To Choose!

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

shin-jimin

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.

more

memento.js

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

memento

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

all-work-no-play

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

pixels

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

Passive Voice

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

fox

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.

more