Skip to content

Instantly share code, notes, and snippets.

@chadsmith

chadsmith/jailbreak.js

Last active Aug 29, 2015
Embed
What would you like to do?
Paywall
chrome.webRequest.onBeforeRequest.addListener(function(details) {
return { cancel: true };
}, {
urls: [ "*://*.ppjol.net/*", "*://*.ppjol.com/*" ]
}, [ "blocking" ]);
{
"name": "Kansas.com Jailbreak",
"icons": {
"48": "icon48.png",
"128": "icon128.png"
},
"version": "2.0",
"manifest_version": 2,
"description": "Browse Kansas.com without the paywall.",
"background": {
"scripts": [ "jailbreak.js" ]
},
"permissions": [
"*://*.ppjol.net/*",
"*://*.ppjol.com/*",
"webRequest",
"webRequestBlocking"
]
}

#I stood out from the flock

As many of you know, I was recently fired from my agency job after a post on Twitter upset the local paper. It was explained, that I had to be terminated in order to protect the reputation of the company.

I am writing this, not to disparage the agency, but to clarify the events in order to preserve my personal reputation.

##I'm a bit of a prankster

The position I formerly held provided a great opportunity to advance my mobile and web development skills to no end, partially due to the sheer volume of work for which I was responsible (I was the only developer in my office) and partially due to my own persistence and curiosity. Being that it's an agency, and a pretty fun place to work, pranks were not uncommon. It is a company with squirt guns enshrined on the wall, whose entire brand is largely built on standing out.

It wasn't unusual for every phone in the office to ring at precisely the same time, with Peter Griffin, Rick Astley or an overly excited camel on the other end to remind my coworkers it was Wednesday.

I created apps and JavaScript plugins to track emails and web page visits, others to crash particular outdated browsers. I made captchas that required users to drag a puppy to a trash can; created a system for tracking and quantifying employees' fitness habits (and then used it in a desk lamp). I strategically hid logos and on-brand messages in the source code of web pages and said hello to a few companies through their analytics. And I occasionally had moments of inspiration that led to humorous apps I built on personal time. One of which made it so I could quickly purchase domain names people mentioned too loudly in coffee shops.

I don't remember all the details of the last prank that got the attention of agency leadership, other than one managing partner was upset and the other thought it was hilarious. The majority of the time though, no one knew or cared to ask how my pranks worked.

##Complaints

The plugin and events that lead to my termination started with complaints. A few years ago, the website of a local paper implemented an annoying ad, which would appear inside a modal window every time a user tried to view a page. It wasn't actually a paywall, and actually wasn't that bad of an ad, but it hindered the reader's ability to quickly see the content they wanted to see (not to mention all the other ads on the site).

I heard enough complaints about it that I checked it out, and found that all of their ads could be blocked with a few lines of CSS. Rather than blocking everything (like AdBlock Plus), I made a Chrome extension that focused solely on the pop-up ad. I posted a link to the extension on Twitter, received a few laughs, end of story.

Fast forward a couple years (and a handful of the pranks I mentioned above). A few months ago, the same paper relaunched a new responsive site and added another modal window. This one kicked in after a handful of visits, but wouldn't go away until after you signed in. Enough people complained about my old plugin no longer working that I updated it and tweeted about it earlier this week.

This time, the paper was pissed.

The new plugin didn't do anything more than the last one, but targeted third-party JavaScript rather than their CSS. This technique is similar to how an IT person might firewall your company from accessing YouTube or Facebook. Technically, it doesn't even check for or need the news site to run. (I'm guessing it will work on any McClatchy web property too, since they all use the same third-party provider.) And the kicker is it doesn't do anything more than what you can achieve with Chrome DevTools or by disabling JavaScript.

I'll save the UX and paywall arguments for another conversation and focus on what happened next instead.

No more than thirty minutes after I tweeted the link, one of my bosses came over, shouting about a conversation she'd just had with the paper, and wanting to know why the *#$& I would do such a thing. I don't remember the exact conversation, but was surprised and disappointed by the fact that the paper had an issue with something I tweeted, and took it up with my employer instead of me. Nothing in the plugin or on my profile suggested a link between the two.

Side note: This happened once before when a local entrepreneur complained to agency leadership that I'd tried to "sabotage" his business by telling a potential customer of his (a personal friend of mine) that he did not invent the technology he was selling as he claimed he did. (He was reselling an online product instead.)

Anyhow, I explained to my boss that the night before I simply updated an extension I'd published years ago and waited to post it when people would notice. I tried to explain the simplicity of the plugin and said I would clarify that the post on my own personal Twitter account, was in fact, my own personal tweet. She came back a while later, calmer, and said she discussed it further with the paper, but that I'd have to chat with the managing partner later.

I went about my day, slightly concerned, but focused on finishing up a large website I was excited about. Around 3:00 that afternoon, I started receiving emails saying the passwords for several key accounts had been changed. That's what happens when you control pretty much every technical aspect within an agency and are about be let go. I received a few more password change notifications, sent a couple texts to friends who knew what was transpiring, and wished some coworkers (including the one changing the passwords) only the best moving forward.

At about 3:35, I met with the managing partner and creative director. They discussed "the seriousness" of my actions, stated that there were potential legal issues*, how it could potentially damage the agency's reputation and that I had to be let go. I completely understand their reasons, since Wichita is a small town and all, and am disappointed my time there was cut short. Especially since it was for doing something innovative at a place that strives to stand out.

*Part of the conversation entailed how they (including the paper) thought the plugin was malicious and involved an attack on the newspaper's website to take down their entire payment system. This could not be further from the truth.

I tried to explain how everything worked prior to being escorted out, but it doesn't seem like anything was understood - as some of my former coworkers shared that they were told I was fired for hacking the newspaper's site.

I'm writing this, and sharing the source code to clarify that no crimes were committed when making the plugin, and no legal action has been taken as of this time.

The paper still hasn't contacted me directly about their complaint, but it looks like they must have taken some of my advice, as the modal window is no longer as invasive. The plugin has also been removed.

I had talked about leaving the agency for a while, but probably would not have without a push like this. So far, being fired has opened up a whirlwind of opportunities, all of which I am excited to pursue.

Keep an eye on my Twitter for an announcement on what's next.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.