Patching the web: on the uses of "View Source"

I've thought previously about how much the web needs a way for users to connect with developers in order to improve things.  This past week while at POSSE, Greg was talking about how to create a patch culture, and it brought this to mind again.

Since writing that post over a year ago, I've been experimenting with a reverse version of this, and I wanted to share so as to inspire others to do the same.  It's not something I can claim as my own idea, but it is something I am intentional about--I've been patching the web.

[caption id="" align="aligncenter" width="375" caption="Dispatchworkshop Amsterdam (photo credit - marc0047 @ flickr.com)"]Dispatchworkshop Amsterdam (photo credit - marc0047 @ flickr.com)[/caption]

By patching the web I mean the HTML, CSS, and JavaScript I encounter.  "Sure, people have been doing this for years...greasemonkey, stylish, et al." That's not what I do.  Rather than fixing this for me, or the people who will download a script I write, I prefer to make the fix, and send it to the website author directly.

Just in the past two weeks I've done it three times, and it's never taken me more than 15 minutes each time.  The most recent fix was to a page that had an out-of-print essay I needed.  I was going to be traveling without a computer, and needed to read it on the road.  So I hit 'print' and it proceeded to print a 2-inch strip of text down the centre of 50 pages.  What worked for layout on the screen (in this case, deeply nested blockquote elements) was disastrous in print.  I wrote a quick fix to his CSS to take advantage of the CSS media type and sent him an email.

I'm used to sending people patches, and knowing what to do with them when I get them from others.  It's not uncommon for me to get people sending me code out of the blue.  There's an existing patch culture within Mozilla and other developer circles.  But if you're a web content creator, you may not be used to this.  So it's important how you send your fix.

I never send a patch, unless I know I'm working with a developer who will know how to use it.  Instead, I let the person know that I like their site, tell them how I found it and how it's been useful to me, and that I think it could be improved with a slight tweak.  I then share what I've done, usually explaining the change, in case it is unclear (they didn't do this in the first place, so it often isn't).

The point is, unlike in existing patch cultures where we know there are bugs, and it's normal to be harsh on the code we fix, this is a site of essays (or whatever) that this person has put up because they love the content.  Just because I love developing the web doesn't mean that they do, and having me trash their code is not going to help anyone.  I never suggest more than is needed.  Sure, I might rewrite the whole thing if I was doing it from scratch.  But I'm not, and it doesn't need to be rewritten.  It's really good except that doing X would make it more usable without causing a lot of work.

Unlike writing a greasmonkey script for myself, which would fix the problem now, I'm left with no guarantee that the website author will implement my fix.  My experience is that they often do.  But if they don't, I've still done something important.  I've put "View Source" to work in the way it is meant to be used.  And I've contributed to the sense that the web is populated with people, people who read what you write, and people who will help you improve it if you're willing to let them.  You don't need an 'Edit' button to edit the web.

The web is HTML, CSS, JavaScript and people helping people do things.  We need a patch culture for the web, and I need you to help me do more of this.