Classic_-_Concepts@cup.portal.com (03/05/89)
I have the problem of too many ideas (3 games in my head right now) and too little time to implement even 1/4 of them. Since there might be people out there with more time and fewer ideas, I thought I'd propose this one on the net. I tend to type fast (83+ on a broken-down Selectric, 90++ on a word- processor), but even that isn't fast enough to keep up with thought processes (I get frustrated trying to write stories, journals, etc. because I lose the thought by the time my fingers catch up). It occurred to me that probably everyone would like to be able to type/write faster, especially hunt-and- peckers and that the computer offers an unprecedented opportunity to provide a way to do this within an editor or wordprocessor. Here is the idea: Remember speed-writing? The alternative to cryptic shorthand languages? Well, why not implement a form of speed-writing within a word-processor? you could have a dictionary of short forms of words similar to speed-writing abbreviations which would be then parsed out, either: 1. as you type 2. when you hit a return (I'd prefer this, less intrusive) (this should also be 'disablable' <- forgive the awful word) 3. at the end of paragraphs or .... It should definately have a configurable dictionary. That way if the user is not comfortable with some of the abbreviations or wants to add some for proper names, etc. s/he would have that option. If the parser were based on current speed-writing languages, then those who already know it could learn it quickly and those who don't would be using a system which at least has some trial and error and research behind it. However, something to think about is that abbreviations which are appropriate for hand-written speed, might not be the best for keyboard (qwerty) speed, so perhaps there is a graduate project here to develop 'keyboard speedwriting' recommendations and paramaters. Anyway, the reason I posted this on the Amiga.tech is because I'd like see it implemented on the Amiga, of course. I'd like to see it on the Amiga first! I don't know if anyone else has thought of this idea. I haven't seen anything else on it, but then I haven't actively researched it. These musings usually pop into my head just before I fall asleep and half of them disappear by morning. Well, the goal would be to type 150-250 words per minute. Why not?! That's what computers are for. Actually, the goal is to improve anyone's typing by 50%-300% or more. Anyone interested in pursuing this?? The actual implementation seems to me to be very straightforward. The difficult part would be deciding on whether to use current speedwriting forms or to develop or find ones appropriate to keyboard input. \_ )\_ _/ `/)\_ __ // __ _____________________________________________ `\\)\_ / '~// /// Julie Petersen (LadyHawke@cup.portal.com `\\//\\/|'//' /// Classic_-_Concepts@cup.portal.com) (\/Yyyy/' __ /// "There are days when spelling Tuesday simply /Yyyy/' \\\ /// doesn't count."- Rabbit in Winnie the Pooh //\\ LadyHawke \\/// _______________________________________________ ///\\\
mp1u+@andrew.cmu.edu (Michael Portuesi) (03/06/89)
Classic_-_Concepts@cup.portal.com writes: > Well, why not implement a form of speed-writing within a word-processor? > you could have a dictionary of short forms of words similar to speed-writing > abbreviations which would be then parsed out, either: > 1. as you type > 2. when you hit a return (I'd prefer this, less intrusive) > (this should also be 'disablable' <- forgive the awful word) > 3. at the end of paragraphs or .... GNU Emacs already has this, in two modes. One is abbrev mode, which expands abbreviations from a configurable dictionary. The second is dabbrev (dynamic abbrev) mode, which expands abbreviations by searching backwards through the current buffer until it finds the first word containing the abbreviation as an initial substring, then using the found word as the expansion. Now all you have to do is port GNU Emacs to the Amiga. -- Michael Portuesi / Information Technology Center / Carnegie Mellon University INET: mp1u+@andrew.cmu.edu / BITNET: mp1u+@andrew UUCP: ...harvard!andrew.cmu.edu!mp1u+ "You just don't get off a spaceship and run." --Avon
ejkst@cisunx.UUCP (Eric J. Kennedy) (03/06/89)
In article <15381@cup.portal.com> Classic_-_Concepts@cup.portal.com writes: > I tend to type fast (83+ on a broken-down Selectric, 90++ on a word- >processor), but even that isn't fast enough to keep up with thought processes >(I get frustrated trying to write stories, journals, etc. because I lose the >thought by the time my fingers catch up). It occurred to me that probably >everyone would like to be able to type/write faster, especially hunt-and- >peckers and that the computer offers an unprecedented opportunity to provide >a way to do this within an editor or wordprocessor. Here is the idea: > > Remember speed-writing? The alternative to cryptic shorthand languages? > > Well, why not implement a form of speed-writing within a word-processor? >you could have a dictionary of short forms of words similar to speed-writing >abbreviations which would be then parsed out, either: Some interesting ideas, here. UN*X vi does some of this, with its abbreviation capability. I've added this capability to Uedit as part of my vi emulator. It's done with Uedit's "preKey" command. The "preKey" command is executed every time you press a key (or a mouse button or select a menu item), *before* the command bound to the key is executed. It's not difficult to test for the end of a word, copy the word into a buffer, look for the word in a list of abbreviations, and make the substitution if its found. I also use Uedit's spelling checker on the word for real time spell checking, while I'm at it. I think Uedit would be an excellent test bed for ideas like yours, if not for a final system. You can remap the keyboard at will; use the ideas below to make templates, abbreviations, whatever; you can even use an internal timer to execute commands after certain periods of delay. The preKey command below is straight from my custom configuration. It looks for a list of abbreviations and expansions in buffer 32 of the form abv abbreviation csa comp.sys.amiga cats Commorodore Amiga Technical Support etc. It obviously doesn't do all of what you're asking for, but it's a step in the right direction. To experiment with this, you either need to be using the spell-checking version of Uedit, or modify the command to skip the spell-checking stuff. ---------------- <preKey: .. Uncomment the next two lines when debugging a preKey command! .. if (eqNum(macroNum,shftAltCtl-esc)) killKey(preKey) .. ESCAPE HATCH! .. if (eqNum(macroNum,shftAltCtl-esc)) killKey(virtual-kp2) .. ESCAPE HATCH! if (not spellerUp) if(isEmpty(buf32)) return if (eqNum(inputChar,0)) return .. do not mess up scrolling etc! if (eqNum(macroNum,65)) return .. do not test when backspacing! or(n50,inputchar,32) if(geNum(n50,97)) if(geNum(122,n50)) return ..return if alpha if(eqNum(inputChar,"'")) return if(is(curFile,alpha)) return equateLoc(curFile,locA,atCursor) .. save cursor loc .. is not alpha, check preceding word clearRgn(buf54,all) .. erase last word from buffer moveCursor(curFile,sWord) .. move cursor to start of word to chk if(moveCursor(curFile,sChar)) ..Do not flag words that begin if(is(curfile,"\\")) ..with \, for tex commands. { equateLoc(curFile,atCursor,locA) .. put cursor back where it was return } else moveCursor(curFile,eChar) insertRgn(buf54,sFile,curfile,word) .. store just that 1 word insertChar(buf54," ") ..add space at end of word moveCursor(buf54,sFile) .. so speller sees the word insertChar(buf54,eLine) ..add return before word .. Now word is bracketed by a carriage return and a space. .. This is for matching abbreviations in buf32, and it does not .. effect spell checking. if(isEmpty(buf32)) goto label(1) if(not getFlag(curFile,userLocalB)) goto label(1) moveCursor(buf32,sFile) setSearch(buf54) if(search(buf32,locA,locB,1)) { moveCursor(buf32,eWord) moveCursor(buf32,eChar) equateLoc(buf32,locA,atCursor) moveCursor(buf32,eLine) equateLoc(buf32,locB,atCursor) clearRgn(curFile,word) insertRgn(curFile,atCursor,buf32,loc) goto label(99) ..do not spell check replacements } label(1) if(spellerup) if (not spell(buf54)) .. bad word { beepDisplay putMsg(buf54) } label(99) equateLoc(curFile,atCursor,locA) .. put cursor back where it was > -- Eric Kennedy ejkst@cisunx.UUCP
peter@sugar.hackercorp.com (Peter da Silva) (03/06/89)
In article <15381@cup.portal.com>, Classic_-_Concepts@cup.portal.com writes: > Well, why not implement a form of speed-writing within a word-processor? > you could have a dictionary of short forms of words similar to speed-writing > abbreviations which would be then parsed out... The 'vi' editor on UNIX already does this. Type ':abbr csa comp.sys.amiga' Then when you type 'csa ' You get 'comp.sys.amiga '. Any whitespace keys it off... -- Peter "Have you hugged your wolf today" da Silva `-_-' ...texbell!sugar!peter, or peter@sugar.hackercorp.com 'U`
451061@UOTTAWA.BITNET (Valentin Pepelea) (03/06/89)
Michael Portuesi <mp1u+@andrew.cmu.edu> writes in Message-ID: <sY4O6Qy00VsfA0U45y@andrew.cmu.edu> > Now all you have to do is port GNU Emacs to the Amiga. It's been done already. An entire Fish disk has been devoted to it, and I'm talking about the real thing, not MicroEmacs 3.9e. > Michael Portuesi / Information Technology Center / Carnegie Mellon University Valentin _________________________________________________________________________ "An operating system without Name: Valentin Pepelea virtual memory is an operating Phone: (613) 233-1821 system without virtue." Bitnet: 451061@uottawa.bitnet Usenet: cunyvm.cuny.edu!451061@uo... - Ancient Inca Proverb Planet: Um, the second one from the...
UH2@PSUVM.BITNET (Lee Sailer) (03/06/89)
In article <15381@cup.portal.com>, Classic_-_Concepts@cup.portal.com says: > > Remember speed-writing? The alternative to cryptic shorthand languages? > > Well, why not implement a form of speed-writing within a word-processor? >you could have a dictionary of short forms of words similar to speed-writing >abbreviations which would be then parsed out, either: This was done rather well back in the early 70s for mainframes. I believe the creator's name was Stuart Lamb, who was a Berkeley or Stanford linguist. I saw it demoed, and it worked great. It never caught on I guess, perhaps because tho it is a good technical hack, it turned out to be useless to 99% of the typing world.
scotth@harlie.SGI.COM (Scott Henry) (03/07/89)
From article <8903061529.AA11042@jade.berkeley.edu>, by 451061@UOTTAWA.BITNET (Valentin Pepelea): > >> Now all you have to do is port GNU Emacs to the Amiga. > > It's been done already. An entire Fish disk has been devoted to it, and I'm ^^^^^^ Not bloody likely on only ONE disk, just the elisp directory is over 3MB, the on-line help (info) directory in > 1MB, and I would be surprised if the executable could be shrunk much below 500KB. GNU Emacs is a memory hog when its running! You may be thinking about mg[1a|1b|2a|2b], which DO fit on one disk, but is most emphatically NOT GNU Emacs! Its piggishness is the main reason I stopped working on the port, as much as I would like to have it at home, also. If someone has done the port, though, I am very interested! Could you tell me more info? > >> Michael Portuesi / Information Technology Center / Carnegie Mellon University > > Valentin -- --------------------- Scott Henry <scotth@sgi.com> #include <std_disclaimer.h>
mp1u+@andrew.cmu.edu (Michael Portuesi) (03/07/89)
451061@UOTTAWA.BITNET (Valentin Pepelea) writes: > Michael Portuesi <mp1u+@andrew.cmu.edu> writes in > Message-ID: <sY4O6Qy00VsfA0U45y@andrew.cmu.edu> > > > Now all you have to do is port GNU Emacs to the Amiga. > > It's been done already. An entire Fish disk has been devoted to it, and I'm > talking about the real thing, not MicroEmacs 3.9e. > The editor to which you are referring is MG, which is a variant of MicroEmacs that has the "look and feel" of GNU Emacs. It lacks the Lisp language that miracles like abbrev and dabbrev mode are written in. A real port of GNU Emacs would occupy much more than just one disk in Fred Fish's collection. One disk would barely be enough to hold the executable binary. -- Michael Portuesi / Information Technology Center / Carnegie Mellon University INET: mp1u+@andrew.cmu.edu / BITNET: mp1u+@andrew UUCP: ...harvard!andrew.cmu.edu!mp1u+ "You just don't get off a spaceship and run." --Avon
Classic_-_Concepts@cup.portal.com (03/09/89)
I've had some thoughts since the original post re: speedwriting implemen- tations within wordprocessors: a. In a sense, if the abbreviations are switchable to/from abbrevia- ted state, then it would also, secondarily, work as a type of simple compression algorithm. If words are truncated by an average of 50% while being typed, then file size, also, is reduced by half. b. Learning the abbreviations is not restrictive, since you could begin to use them as you became familiar with them; there would be no necessity of learning the whole system at once. c. Rob Peck suggested that a character-sequence or hot-key or some keystroke other than the RETURN character might be a better way to cause parsing out of the short forms. I agree. d. Abbreviations which might be appropriate for speedwriting are not always great for speedtyping. Most people don't know their numbers too well, so using '2' as an abbreviation for two or too might not be easier to type (long stretch, look at the keyboard, slow, slow). e. Abbreviating short words would be less useful than long ones, so you wouldn't want to 'waste' an abbreviation on 'at' or 'and', although some words, like 'the' are so commonly used, that perhaps a 't' would be suitable. I'm excited to see there's some interest and prior work on this. Is there more forthcoming? Good sources for a dictionary?