Political JavaScript: progress.js

By Rich Jones

The theme music to this post is Omodaka - Hietsuki Bushi.

As you surely noticed, there was a coordinated black-out of various websites on January 18th in protest of SOPA/PIPA (if you don't know why these are bad, you must be living under a rock, and you should read the EFF's reasons why those bills threaten online free speech).

To help others participate in the protest, I wrote a small piece of JavaScript which other website and blog owners could embed on their sites to black out their pages on the 18th, and display a short message about why they were protesting and what to do about it. I called it Blaccupy.js and you can see it on GitHub here. But I wasn't the only one who had the idea..

Great Minds..

Zachary Johnson, SaraJo, CloudFlare, AmericanCensorship and many others wrote similar scripts. ZJ's script was used on over 4,500 sites and CloudFlare's reached up to 18,000,000 people. Clearly, it worked. Particularly, the element of virality which simple, embeddable scripts provide was extremely effective.

However, although these bills have been shelved for now, they will return in some form or another. We must remain vigilant in defending free speech and an uncensored internet. I propose that we band together and develop this idea further, turning it from a tool which spreads awareness into a tool which spreads action.

We Can Do Much Better

HTML5 and Flash components enable modern websites to do some pretty remarkable things right in the browser. Things like detecting a user's location, making phone calls and sending faxes.

Instead of just blacking out a website and writing about SOPA, our tools should inform visitors about the issue and give them an instant, convenient way to make a phone call to their representative, right on the site of the owner who embedded our script.

I have created a crude demo of what this might look like. (Source on GitHub here).

Technology, Challenges

Twilio and HelloFax should be able to provide the technology to make the calls and send the faxes in the browser. MaxMind provides the GeoIP lookup in the example, although this should be possible with pure HTML5 functionality.

The big issue stopping me from making this right now is the data. I know Zip-Code/Congressional Contact information databases must exist because I see websites like the EFF using them. However, I cannot find one myself - can you help? Either a machine-readable database or a service with an API would be extremely useful. Anybody with familiarity with the Twilio (or any other online, embeddable VoIP service) API who is interested in this idea should please get in touch as well.

An Activist Internet

As Jon Stewart pointed out so well, this legislation is coming from people who don't have a fucking clue about the technology they are trying to regulate. It is 2012, and this is absolutely unacceptable. We don't just need to win - we need to knock them on their asses.

We, the geeks, we are the internet. We run this thing - we are in control. The technology to convert our users into activists for causes we know are important is very close at hand. With a few simple lines of JavaScript, the right datasets and the right APIs, we can drastically increase citizen action when it comes to internet issues.

Let's build something great!