Eric Anderson said to me, "Relax, Adam, Everything is Deeply Intertwingled." Good advice, I know I've heard that somewhere before.
It's hard to relax when you're living in a box. I'd estimate that I spend between 10% and 20% of my life in a browser, and half of that time is spent in a <TEXTAREA> like the one I'm typing in right at this moment to flesh out this post. The reason I cannot relax is that Web forms have not evolved in fifteen years -- there's still so few text editting features that I find myself manually searching and replacing sometimes. There aren't many activities more useless than eyeballing a <TEXTAREA> looking for text sequences when I know this is what computers were friggin' invented to do.
Worse, I find that sometimes I hit the wrong key and move off the browser page and all the typing I've done gets completely wiped out. <TEXTAREA>s have no automatic save feature -- even iTunes has that! Every time I get burned by this I tell myself to relax and to use a real text editor and then cut-and-paste into the Gmail form or the Typepad form or the Flickr form or the comment form on someone's blog or community or any of the next generation of weblications. But when you spend so much time living in a <TEXTAREA> like I do, that becomes tedious and inevitably I fall back to typing without a net and without editting and saving features in a <TEXTAREA>. Browsers need to improve, not just me. And I won't relax till that happens.
Are you listening Internet Explorer 7? Opera? Firefox? The Google calendar/browser/blogger/picasa (calbroblopic? :) team with one Adam to unite them all? Make it so life in a <TEXTAREA> isn't the sucky experience we've grown to expect. I guess Konqueror/Safari scores best so far, with Undo, Redo, Find, Replace, and Spell-Check, and when I hit the back button it (usually) saves the content of the forms -- but it still isn't a full-blown editor. HTML forms are some of the least friendly UI in applications today.
Geeks need a reality check, and we need it soon. Joel on Software says, "[Things you can't really do well in a web application] are not all big issues. Some of them will be solved very soon by witty JavaScript developers." The world's greatest witty JavaScript developers are like a beer: "They look good, they smell good and you'd step over your own mother just to get one."
Firefox (finally) gave me undo in my <TEXTAREA>, which is tremendously useful. Please don't stop there. Let me save. Actually, save automatically for me. Let me search. Actually, let me search-and-replace. Let me spellcheck. But only when *I* want to spellcheck. Let me define shortcuts. Actually, let me define shortcuts and macros. And don't force WYSIWYG on me like Typepad seems to think I want. I don't want it, and it often creates more trouble than it's worth. (While I'm dinging Typepad, let me deduct 100 shares from their place in heaven for not escaping the title of a typepad post -- I practically crashed the application because I tried to put aerodynamic angle brackets around TEXTAREA in the title of this post.)
I'm not the first person to ask for this, and I won't be the last. The best articulation that comes to mind is Clay Shirky's rant, Why are browsers such terrible writing instruments?, and his top three feature requests are:
- Autosave on quit or crash. My browser, to a first approximation, is my workspace. Let me say "Restore all windows and contents to where they were before the quit." (ed.: Session saver saves tabs but not content.)
- Multiple undo for reload and tab closes. Oops, I didn’t mean to remove the window I had that post in — bring it back. (My memory of Windows, especially, was that this happened often, partly because the left hand hovers over the CTL key, and CTL-R re-loads.)
- Let me re-size or tear off the form field itself, and give me undo in it as well.
There’s tons more stuff here, of course — some WebDAV+RSS combo so I can make any folder a drafts or publish folder (blosxom style), or tie existing word processors to form fields, so that SubEthaEdit would auto-open when I wanted to post, but really, the browser has been around for a long time now; why should anyone even have to make an argument that autosave, undo, and re-sizing are good functions for an app to support?
But even more than this list, I want the people who write browsers to care that they are seriously and increasingly important writing environments, and that the current display bias leaves the average browser someplace between sucktastic and actually unusable on the sub-optimality-o-meter.
Cory Doctorow spends more time writing than I do, and he says, "I do *all* my composition in BBEdit -- it really saves my ass on numerous occassions. I want a local proxy that captures all my submitted forms and drops their content into lightly structured ASCII files." Amen, brother.
JP tells me to shut up and listen to Zwoddy's mantra, "Perhaps an ice cream sandwich would bolster my self-esteem." Well, I don't want an ice cream sandwich. I want a decent text editor in a web browser. And I won't relax till I get it.
BBEdit, then apply Markdown to HTMLize.
Posted by: whump | March 06, 2005 at 02:14 PM
Picking nits: Konquerer is the rendering part of Safari, not the UI part. Unless you meant Konquerer /and/ Safari. But whatever.
A potential conflict I could see with some of your proposals is in taking control away from page authors (e.g. who so far assume text areas won't be resized into other parts of the layout) and the browser makers. I'm not saying this conflict is best solved through status quo, but I believe it's not just a case of of lazy/content programmers.
I think tools like Greasemonkey and Pithhelmet could make up the difference, at least as a workaround before someone goes and implements a Web 2.0-friendly browser. I think all three of your ideas could be addressed through a JavaScript file that gets appended to each page request (and some cookie action for state info).
Posted by: Dan Phiffer | March 06, 2005 at 06:06 PM
I'm looking at this:
"taking control away from page authors ... and the browser makers"
And thinking I meant to say this:
"taking control away from page authors ... and giving it to the browser makers"
But more importantly:
"taking control away from page authors ... and giving it to the end-user"
This might be related to all the fuss about Google's toolbar. I'd say the conflict is just a side effect of moving from a somewhat print-like web (pages are "documents") to a more interesting and useful one (pages are a "context").
Sorry to blather like this in your comments.
Posted by: Dan Phiffer | March 06, 2005 at 09:21 PM
Mozex (http://mozex.mozdev.org/) lets you edit the contents of a textarea in your favorite editor.
Posted by: Jason | March 08, 2005 at 10:02 AM
There's no doubt about it... IntegrityIsJobOne when it comes to recording my knowledge. I thought OS X mail sucked until Mozilla Thunderbird threw away one of my drafts when my laptop battery died or something. The mailer in my sidekick knows better than that. I'm back to Mail on OS X. (I use evolution on linux).
The difference between a browser and an authoring tool is a big one. I don't know if I ever expect my browser to be a reliable authoring tool.
About that proxy that saves posts, I want that too... KeepPostRecords.
Posted by: Dan Connolly | March 08, 2005 at 07:18 PM
Good points, but I've always just used Xemacs along side the browser, and then cut and paste into the text field. I agree that the browser based authoring experience sucks when I'm unable to do this, and, of course, why should I have to.
Ed
Posted by: Ed Burns | March 10, 2005 at 07:43 PM
Let me re-size or tear off the form field itself, and give me undo in it as well.
I wrote a GreaseMonkey script to do just that. Grab it here.
Posted by: David Schontzler | March 11, 2005 at 11:43 AM
Holy box Batman ! LOL
Posted by: Paul | March 12, 2005 at 05:02 AM
Autosave has been done for the gmail specific case with the Humane Gmail userscript.
But... You could most of this with an extension for the general case. In fact, it's so obvious I wonder why it hasn't been done.
Upgrade textareas so that:
* They automatically periodically save themselves to some local backup.
* They can be torn off into their own windows to be resized at will.
* They can be spellchecked
Hmm...
Posted by: Aaron | March 27, 2005 at 09:37 AM
Seconded the mozex extension -- very useful. It hasn't been updated for a while, so with current versions of Firefox the options dialog doesn't come up at Tools->Extensions. However, once installed you can navigate to the config screen directly via the following chrome url:
chrome://mozex/content/mozexPrefDialog.xul
Once configured, you can right click on any text area, choose 'Mozex -> Edit Textarea' and it will launch your preferred editor with the text inside. Save the file and click on the textarea to copy the edited text back in.
You can even quit your web browser, restart and navigate back to the original page you're editing and it will know to update the right textarea field. It's a bit hacky but it works.
This post was edited using Vim.
Posted by: Darren | March 28, 2005 at 05:10 PM
The SpellBound extension will give you your spell-checking.
Posted by: James | March 29, 2005 at 01:57 AM
And although I know I must sound like an Opera fan here (which I am in a way), but Opera pretty much does the same as Konqueror/Safari, although you have to install ASpell to do the spellcheck thing.
Actually it is KHTML which is the rendering engine of both Konqueror and Safari. Those two are but interfaces for the rendering engine.Posted by: Frenzie | March 29, 2005 at 02:10 AM
Omniweb lets you edit the content of all textareas in an external editor, with additional features. It also autosaves the currently opened tabs, but that can be done in Safari with SafariStand. For those interested, more Safari add-ons at Pimp My Safari.
(And now, as usual : Cmd-A, Cmd-C, Submit).
Posted by: Ned Baldessin | March 29, 2005 at 02:21 AM
UndoCloseTab saves the contents of forms after you close and then reopen them. It saves up to 3 tabs by default, but that's configurable. There's also a Resizeable Textarea extension if you don't use greasemonkey.
Posted by: James | March 30, 2005 at 06:29 AM
In literally 5 minutes I wrote Save-textarea-to-cookie. Only tested in firefox, but I guess it sould be x-browser. It's a hack, not a solution. There are limits too, i.e. max 4k (AFAIK). It could be done better with Ajax, I guess.
Posted by: Carl-Christian Salvesen | April 06, 2005 at 01:19 AM
Opera already has undo, redo, find and spell check. So only we need it save and replace text functions.
Posted by: FataL | April 06, 2005 at 07:21 AM
When you move forward and back in opera, it saves the textarea content (and all other inputs).
Posted by: graste | April 06, 2005 at 11:35 AM
I read this post a while ago, and I must say that I didn't really care about it.
Then today, I lost a whole bunch of writing twice within 5 minutes!
I'm a believer. Safari, please give me undo (but thanks for the spell check)!
Posted by: Daniel Morrison | April 06, 2005 at 11:59 AM
Not ASCII, UTF-8 at least...
Posted by: Juan | April 07, 2005 at 06:24 AM
2. Tabbin extention:
http://www.extensionsmirror.nl/index.php?showtopic=1572&hl=tab+bin
3. Resizeable Textarea:
http://www.extensionsmirror.nl/index.php?showtopic=2796
Anything else? (except 1.)
Posted by: AkaXakA | April 07, 2005 at 12:04 PM
Opera 7+ has save. It isn't pretty, but you can select whatever text you want and "copy to note". You could, alternately, work directly within the notes window (which autosaves) and whenever you're ready, right click in your form and "insert note". Notes have other uses as well, but none of them address the author's textarea woes.
Opera can also open any previously closed "tab" within the current session with full forwards and backwards history. Hitting ctrl+z will open the last closed page.
Posted by: c. s. | April 09, 2005 at 09:28 AM
I have to second those earlier recommendations for SpellBound. I don't know what I'd do without it. My spelling has actually improved since I started using it to double-check my textareas.
Also, Jed Brown has made some Firefox extensions that you may find useful. QuickNote provides features similar to the note-taking functions described by c.s.
BBCode is another one of his extensions that I use a lot. It provides right-click access to several BBCode and XHTML/HTML formatting options (you have to turn XHTML on via the settings). One of the handiest features is the ability to pull an URL from the clipboard and turn selected text into a hyperlink.
Posted by: Adam Messinger | April 09, 2005 at 12:06 PM
How does a Greasemonkey user script that auto-saves text as you type and gives you the option to restore it later sound? Can be used for drafting, restoring text after a lost session, restoring text after a PC crash, and so on.
http://www.ilovejackdaniels.com/javascript/greasemonkey-user-scripts/
(terrible self-promotion, I know, but this article was one of the two that started me writing the script).
Posted by: ILoveJackDaniels | April 11, 2005 at 08:20 AM
Hm... it wouldn't be difficult to implement some sort of timed backup mechanism in a web-app. You can have a bit of DHTML code that waits until you've stopped typing for some amount of time, and automatically posts what you have to a temporary data store via XMLHttpRequest. Maybe I'll add something like that to ilohamail if I find the time...
Posted by: Ryo Chijiiwa | April 21, 2005 at 06:23 PM
While this won't help with editing comments on other peoples' blogs, it could improve your blogging experience:
Instead of blogging via web browser, use a dedicated tool. Apps like MarsEdit and Ecto include all those features you were craving for, and are supported by most different blog systems.
I've posted some of my experiences here:
http://bergie.iki.fi/midcom-permalink-9496e99a793a6e8761a7813a64f9c567
Posted by: Henri Bergius | July 06, 2005 at 08:30 AM