Thursday, May 12, 2005

monkeyshines

Follow-up to the previous greasemonkey post:

Mark Pilgrim has written an excellent introduction to greasemonkey for people who are just getting started.

Then Scott Turner blew that right out of the water by creating an extension that puts greasemonkey power into your hands without requiring that you write code. The platypus extension for Firefox lets you manipulate any page to look the way you want it to (no ads, move this over here, change this font) and then save your changes as a greasemonkey script. With a little bit of work up front, you can make the pages you visit frequently look the way you want them to all of the time. It's the free-market model for the web: have it your way, a web of your own.

There's only one thing missing to make this bullet-proof: since advertising fuels the web, before long websites will start to counter your new-found freedom to view the web the way you want to by randomizing function names, class names, and IDs, rendering your greasemonkey scripts useless against a moving target. I'm working on an extension that will query databases and update your greasemonkey scripts transparently as the web mutates. Currently I am just having it check the master list of greasemonkey scripts, but in time I think it could develop into something similar to the way Winamp and CDex use freeDB to figure out the names of the songs on your CDs.

If there were more than one script for a specific site, a dialog could pop up to let you click through and see which one works best for you. Your choice would then act as a vote of confidence in that script, and a cookie would be set to remember your choice. If the server was pinged every time you visit a site for which you have a greasemonkey script, this would result in a sort of holographic consensus record that showed which version of the script to use as the default for people who don't already have a cookie set.

Hopefully this would make poisoning the well with bad data a losing situation for the marketers... sure, they can fight it all they want, but they're just going to alienate people who had already declared, in essence, that they are not the target audience the marketers are aiming for.