What's Wrong with the Web - or, why CMSs failed

The Internet. It has network in its name. Well sorta. The internet is basically a bunch of content scattered all over the place. Some of this content is static or server-generated, and the rest is user-generated content. That's what put the 2.0 in Web 2.0 (yes, believe it or not, its not just about flashy presentation ... or at least, used to be). But....why? You might ask. You upload a photo to flickr, then you upload the same photo to youtube, then you futz with the original photo in photoshop and have to upload it both places again. Has this ever happened to you?

Its a violation of DRY on a massive scale. Some webservices are "smart". They let you, in a limited way, use content on other web sites. I'm sure you've seen "share this on facebook" or "add this widget to wordpress". Groan. Some services, like flickr, even allow manipulation of photos on the web. Next...video editing?

But when it comes right down to it, its much easier for me to manipulate content on my computer. I'm writing this document in emacs. Its my text editor. Okay, so I'm old fashion and like text. But that's an aesthetic choice. Maybe you use something horrible like MS Word to write your content. And maybe you cut and paste to write to your blog. I mean, really. Do you want to use a plain old text area to write things? One fuck up and...you lost a post it took you an hour to write. Or you copy and paste from Word and the formatting is wrong (big surprise). Maybe you've even installed a plugin in your browser that lets you use your text editor instead of the crappy textarea functionality that's built it. Just don't navigate away from that page. The web has you trained to jump through a lot of hoops to do it their way. Because, lets face it, a blog without the web is not a blog.

I like to keep my content where I live. That is, on my computer, where I can edit it and manipulate it to my heart's content. I upload a photo to flickr. Sure, they have pretty awesome editing software to manipulate images. But its not photoshop. Hell, its not even the GIMP! Just for fun, I fired up picnik on flickr when I started this paragraph. And its still loading. And I'm not that fast of a writer. And where are all my damn filters? Let alone command line tools that will let me batch manipulate images. Eh, its not bad, I'll admit. But its also not great.

What is great about the internet is...networking! I can interact with other people. People can see my content! Wow! Like random people I've never met that are just interested in the same thing! That's pretty cool. If only I could combine the ability to keep my content where I want with the ability to share stuff.

Oh wait, I can! I can do anything I want with computers! So here's what I'll do. I'll keep my content where I like it....my computer. Maybe if I was one of those people that liked putting their stuff in storage (who are these people?), then I'd put it on some, well, content-server. But in any case, the days of uploading things would be over for me. Done deal! Then, the content that I want on the internet, I'll start serving. Wait, really? I can have my own website that looks exactly how I want, with a blog, and my photos, and my resume, and my stories, all arranged how I want? OMG! (sorry!) Its not even that hard, is it? Maybe if I'm one of those people, I'd do it all with wordpress. Maybe if I was one of of those people who wants to be really slick, I'd combine wordpress and some other pieces of software to do it how I want. I mean, if I was a word junkie, I'd probably blog in word, save to a "folder" (shudder!) called, oh, C:wherever_windows_puts_thingsblog. And it would be on the internet! And all of my friends could see it! And I'd get my own domain name, like k0s.org.

Okay, that was easy. So...why don't people do this? The most common excuse is "its hard". But its not, really. Sure, not all the tools to do this exist in one place. But bundling them together is easy. I like keeping files on the filesystem personally. You know, where I can find them? The filesystem is highly underrated as a database. And it has these tools that let you manipulate the database far better than anything in MySQL or PostgreSQL. Their called "programs". Because all programs know about files. So yeah. Content on the filesystem. Serve the stuff you want. Edit however. Maybe if you're one of those crazy people (like, ahem, me) you're working from your friend's computer and want to edit your files. Well, there's ssh. okay, that's pretty weak. But its actually an argument for my approach. What if I wanted flickr on my computer? Doy? Oh wait, its a webservice, not software. I'm screwed. But you didn't realize it until I said it.

Which brings us to the real problem. People don't do this because web services want you to use them to keep your content. Kinda weird, right? I mean, you keep your money in a bank. But you don't keep different kinds of money in different banks, really (at least I don't, but then again, I'm a poor person). Maybe that's my problem. Maybe I'm just one of those people that likes to see all of his money, er, content in one place. But I'm still gonna have to blame the webservices here. Let's say I want to add a photo to flickr. Well, I upload it, right? I can't...say, point to a URL and say "yeah, that one". Wait, why not? I can click on the URL, download it, and upload it to flickr. So...its possible, right? Then flickr will make a copy for me. It must be that computers just can't do that. Oh wait! They can! I keep forgetting that computers can do whatever you tell them to do.

So yeah, why can't I just point to a URL? I mean, WTH? Flickr can fetch it. If its really smart, it will keep a cached copy, check the etags every so often, and if you changed the phot, update your cached copy. In fact, I want to do that with everything!

That's my vision of the web. I don't really believe that content should necessarily be centralized. I mean, as long as I can work on content however I want, I don't really care where it lives, any more than as long as I can get my money out of the bank, I don't care where it lives either. But when you start telling me, "Yeah, blog this here...and use twitter, even though its more of a pain that bitsyblog...and use flickr to edit your photos, even though you like the GIMP"...that's when I call a web-timeout and say, "Sounds like you're working for your computer!" in the best 40s-esque voice I can muster. Web services should be services. Its really best if they don't hold the master copies of content. What is flickr? Well, really, its a place where you put your photos so people can look at them. What is twitter? Well, its a place where you put your microblogs so you can tweat at your friends. But what if I want to blog in my own way? What if I want to edit my own photos? What if I want to make my own movies? Do I do this through the web too?

I hope the answer is a resounding no, at least for now. I think the browser is a wonderful platform, and I hope it continues to evolve in a content-agnostic way. I mean, the browser killed word (sorry, word-heads, its true. get over it. I don't have to read your proprietery POS documents anymore). But while I hope the day comes when I can make a movie over the internet...it sounds pretty painful for now. mencoder is wonderful. But I'd hate to use it on a website. Likewise a C compiler