Mar 21

ATTN: Browser developers.

I’m pissed off at every browser developer out there. I’m talking to you ie, firefox, opera, safari, konqueror, galeon, lynx, and links.

Why?! Well you’re all a bunch of jerks. Why? Well I’ve been working on an upload progress bar. Yup something simple, something really simple, or so you would think.

For those of you who don’t know anything about uploads on a web page, they look a little like this:


<form enctype="multipart/form-data" method="POST">
<input type="file" name="somefile">
<input type="submit" value="Send File" />
</form>

That basically tells your browser, hey send this file when visitor presses submit.

What bothers me is I’ve spent the last 10 hours of my life working on something that isn’t going to work on all browsers, and should have been implemented in the browser to begin with.

To get your browser to show those upload progress bars on web pages, is a hideous hack.

It should have never been invented. Ya sure it’s nice to know how much you’ve uploaded to a web page, but it should NOT be up to the web developer to design one of those things.

The problem is when you see those the browser is actually contacting the server twice. Every time the status updates, your browser has connected to the server to get it. You also have the upload stream going. So adding an upload status bar on your web page actually makes the upload slower.

It’s stupid that this isn’t built into the browser to begin with. I mean come on guys, every thing out there has a progress bar, even rsync and wget – a command line programs – have progress bars. I can cp -v ./souce_dir ./destination_dir and get a print out of what has been copied. scp will show you the last file transfered.

Every instant messenger I’ve ever used has told me how much of a file has been sent to my friend on the other end when I’m uploading a file. Every ftp, sftp client has told me how much has been copied. Every time I do a drag and drop of files into other folders, on my desktop it has a progress bar. I’ve copied things over a network with samba, and gotten a progress bar.

So why is it that when I upload a file on a web page nothing comes up? Why is it that you’ll obsess for millions of man hours on proper rendering of a web page, and not implement such a simple, and useful feature?

It would take 1 person who has knowledge about your browser/project code less than 40 hours to add an upload progress dialog. Is a the size of a file divided by the number of bytes sent that hard to figure out with http? Is it that hard to create a dialog?

No it’s not, instead you waste thousands of collective hours for us web developers. Some of the unlucky ones have to recompile their apache server, and php just to do it, only to find out it works on some browsers, and not others. Plus the code isn’t portable if we change servers … we have to recompile all over again.

If 10 web developers like myself have spent 10 hours, then that’ is already 100 hours lost on it. Something that should have been in the browsers to begin with. Even if it took 1000 man hours for a browser developer add a progress upload bar it would dwarf in comparison the collective time web developers waste to implement it.

I know that their has been at least 1000 people who try to add an upload status bar to their web page. Chances are their has been 10,000. And at 1 hour each we still waste 9,000 hours.

I’d like to write a plugin for firefox that does it, but man … I have no clue where to start. It’s a daunting task for someone like me. I’d venture to guess it’d take 100 hours just to research it. You’ve got to be dedicated to want to learn xul for some things. Something as simple as fopen() in php is a whole new level of insanity in firefox when you’re wrighting an addon. You’ve got to have quite a few lines of code calling this service, and that service … then finally opening the code … sheesh.

Well I guess I’m at the end of my rope on this one. So I’ll give up, and watch the browser war, as they tout their “new features” and can’t even think to add something as simple as this.

Erm

Leave a Reply

You must be logged in to post a comment.