Mouse Gestures in Javascript
christodd writes "I have become big fan of mouse gestures, a feature included in Opera, Mozilla, and MyIE2. There's even a plugin for IE. Other programs like StrokeIt and Cocoa Gestures are also based around the concept. I can't believe nobody else has thought of this before, but what about mouse gestures in javascript? Turns out that it is incredibly simple to implement, and really handy for those 'feature incomplete' web browsers. Unfortunately, for the total user experience, we'd have to upgrade the whole internet..."
dont forget fvwm, create your own mouse gestures, 'Strokes', and bind them to any action/command.
KICKS ASS.
I'm all for the idea of faster, better, stronger ways of browsing. I happen to think that mouse gestures and browser level code should be based in the browser, and controlled by the browser. Like look at all the gestures you get with Mozilla.
(mo: Don't invent the wheel: we have it already)
The problem I forsee with the jscript use, is a misuse of the mouse gesture jscripts by unethical sites. Because it's the planet Earth, and The Internet, half of the sites will impliment this correctly, the other half will use it as a joke, or for annoying adverts (browser interstitials) and thus cause the whole thing to be crap.
If it's at a browser level, websites can't fuck with it. So ideally, browsers will want to add the ability to block javascript mouse control, and promptly add this cool feature at a browswer level. I'm all for the idea of mousegestures, but I'm against the ability to tell a website to fuck off using them. (mo: KISS).
Or you could have your filtering proxy (like Proxomitron or Privoxy) insert the JavaScript code on every page. Though personally, I'd just use a browser that suppots it.
Another annoying feature that wannabe web designers can add! Oh well. At least I don't have to worry about it. *Makes sure Disable Javascript is checked*
Crushing dreams at the speed of sarcasm
I did something like this a dozen years ago for a CAD program - was seriously happy stuff. In that environment, it was excellent to have the common operations mapped to simple gestures that could be done anywhere on the screen.
In the world of a clumsy third button on the mouse, it's a little stickier. Handy goodies, is about time someone cooked up the same ideas in a more 'portable' form.
It would be nice if, for once, web technology was developed that made content more accessable to people with disabilities instead of less.
"Ask not what your country can do for you." --John F. Kennedy
I've never been much of a fan of mouse gestures. Whenever you see someone using them, there's a rapid flick of the wrist in some angled direction... that can't be good for you if repeated often...
:-).
In general I don't have much sympathy for RSI sufferers. (I was going to put sufferers in quotes, but thought better of it
I use a keyboard something like 8 hours a day, and have done for the last 15 years, programming computers. If anyone is a prime candidate, it's me, and no RSI as yet. On the other hand, I'm reasonably careful - I don't hammer the keyboard, and I try to rest all my forearms on the desk in front of the keyboard. Sensible things to minimise the effect... unlike "gestures", which are just a disaster waiting to happen, IMHO.
Simon
Physicists get Hadrons!
If that site is supposed to be a demo, it does not serve the purpose well; it doesn't work at all in Mozilla (1.5).
Because moving the mouse all the way up to the "back" button is exhausting. Personally, I won't be satisfied until all computer control is done via blinking.
I'm not a nerd. I'm just here for the free food.
Actually ... mouse gestures are better implemented as Pie Menus.
-russ
Don't piss off The Angry Economist
In KDE 3.2 you can control the entire desktop with mouse-gestures, not just browser.
Lesbian Nazi Hookers Abducted by UFOs and Forced Into Weight Loss Programs - -all next week on Town Talk.
Honestly, it's a pretty stupid idea. Let me illustrate why: scroller mice. Once you get used to a scroll mouse, then you have to use a computer that just has a normal mouse, it's a major pain.
If you depend on every web page to implement mouse gestures, then you'll get this effect from page to page while you're browsing! It would be annoying to no end. And it's not an easily visible thing you can check for, unless each web page also uses some kind of cheesy "Gestures Enabled" logo. And each site might implement it differently, so that strokes mean different things from page to page. I repeat: stupid idea.
A user interface tool should be just that: part of the user interface. Just like a keyboard or mouse, gestures take time to become accustomed to. A user interface feature needs to act the same way no matter what you're doing.
...
My first ooops with javascript gestures: I tried to select/copy the text to send it to a few pals so that in case (more like when) it get's slashdotted they can read it. I selected the text at the top, pulled down and to the right, and the window closed (as it should).
It only took a few seconds to notice the status bar at the bottom which indicates if a gesture will be activated when you release the click... keep an eye on that when using using these. You can see if the gesture is 'blank' = it's not going to run an action. Quite handy, pretty cool. I've already grabbed the
"Whoever would overthrow the liberty of a nation must begin by subduing the freeness of speech."--Benjamin Franklin
(mo: in other words, modus operandi, Mozilla)
Rather than say ie, which is a sick twisted way for Microsoft boobs to get in my head, I replace it with mo, for Mozilla. It doubles for the term modus operandi, but in a kind of twisted way to mean "in other words", or the "specific meaning".
Okay you can all laugh at me now.
Actually... Mozilla's gestures *are* implemented in javascript. Download the Optimoz MozGest .xpi file (or find it on your hard drive), open the .xpi file in winzip, and there's all the .js implementation for it.
I'm a HUGE fan of mouse gestures. I used them for 3 years with a program called Pointix on Windows - which I dearly miss now that I'm on Linux.
It worked at the OS level so the gestures worked in EVERY program.
Circle left was the back button in ANY web browser. Circle right was the forward button.
Right Click + Drag scrolled ANY window in the direction of the drag.
Text editors, email clients, spreadsheets, Photoshop. It worked everywhere because all the programs used a function in the OS for the scroll bars.
I could use my computer 10% faster - it made my life easier. How's that for a use? (I never use things just because "they're cool". That's not enough reason for me.)
A quick search through the USPTO database shows that in fact Amazon has already claimed the mouse-gestures patent, specifically referencing Javascript. Not only that, but they've also patented the one-gesture purchase, apparently to be implemented on their site at some point in the future.
It doesn't stop there, however. IBM claims that they patented this back in the 1980s, but didn't specifically mention a mouse but rather a generic input device. And SCO, in one of their counterclaims, says that gestures are part of the original UNIX and that in fact there are over a million instances of copyright infringement in both IBM and Amazon's patent filings.
And, if only that were the end of it. Disney has jumped into the fray with claims that Steamboat Willie has mouse gestures in it, reducing this to a boiling cauldron of copyright, patents, and trademark issues.
Perhaps the author of the Javascript code should look more carefully into possible IP infringement issues before posting what amounts to a boast on Slashdot about how novel and clever they've been.
Hope this helps.
Curmudgeon Gamer: Not happy
This is inane.
Repeat after me:
"Web Standards."
It belabors the obvious to point out that this will never be implemented my more than a tiny fraction of sites, that it actively interferes with normal point/click/drag behaviors (like highlighting text? click, drag left->right?) and that learning PER-SITE navigation is simply ridiculous.
It's not that no-one's thought of it before, it's that it's a bad idea on the face of it.
La via sola al paradiso incommincia nel inferno
A Thneed's a Fine-Something-That-All-People-Need!
It's a click. It's a scroll. It's a forward. It's a back.
But it has OTHER uses. Yes, far beyond that.
You can use it for cookies. For bookmarks! For links!
Or reloads! Or about anything you can think!"
-- appologies to Dr Seuss.
I don't get the fascination with mouse gestures. Is it really that much more convenient than clicking a button or pressing a key? From the Mozilla gestures page:
p -Right. How did I ever live without these things?
View Source - Left-Down-Right-Down-Left (draw a squarish S)
Is right-clicking and choosing "view source" such a chore that you'd rather draw "S" shapes instead?
Reload (bypass cache) - Up-Down-Up
I dunno, pressing "F5" always seemed to work for me.
Personally I think the obsession with mouse gestures boils down to the typical geek fascination with things that, impractical and useless they may be, are just "exciting" for some reason.
Hey look, Slashdot implemented gestures.
Submit post - Left-Right-Up-Down-Down-Down-Up-Left-Down-Right-U
You're right that these "gestures" we're talking about do sound like exactly what the medical literature says causes RSI problems. Wrist-turning moves, over and over, are the basic cause of computer-related RSIs.
But your sample of one is a crock when it comes to dismissing everyone who has pain from this. Extremely useful "knowledge," that -- except all it does is arm you to dismiss other people and feel smug about not having been unlucky yourself. I used to work in bookstores in college, and some of the older clerks had RSI pain from shelving. Not something they were privileged to avoid in their jobs.
To think people are submitting articles to JAMA (003 Jun 11;289(22):2963-9 -- "Computer use and carpal tunnel syndrome: a 1-year follow-up study") trying to figure out whether carpal tunnel is associated with keyboards or mice or a combination. All we had to do was ask you and you could tell us it was a matter of being "reasonably careful." (Note -- those are quotes.)
Hey, guess what that study (and others) have indicated? It's mouse use, not the keyboard, that seems to be a main culprit. RSIs from computer use are almost always related to wrist movement. Trackballs (with a wrist rest especially) seem to be less problematic. Hmm, maybe we could use this information to prevent other people from undergoing a lot of pain, encourage trackballs instead... Oh, sorry, we don't have any sympathy for those people, 'cause they injure themselves out of a lack of common sense. No need to publish medical recommendations to guide businesses in their purchasing, for example. Morons. Let 'em "suffer."
"Fundamentalism" isn't about divine morality. It's about human authority.
And as I've asked before, is a virus written in C++ a reason why C++ should be retired?
Using HTML in email is like putting sound effects on your phone calls. Just say <strong>no</strong>.
Don't pick some of the more obtuse and complicated mouse gestures and then say "Hey, this sucks!" Of course you wouldn't like them if they were all like that!
I can't speak for Moz, as I haven't used it with gestures much, so this is Opera-related:
I'll tell you why mouse gestures rule. Page navigation. I tend to flip back and forth between pages a LOT, especially on sites like Slashdot. Click into a story, check out some comments, read a sub-comment, go back to the main story comments, go forward to see if I've read it correctly, go back, etc.
In Opera, going back and forth is a simple right-click and drag left or right, to go backwards and forwards in history respectively. MUCH nicer than constantly having to move mouse up the the back button, click. Move mouse down to comment link, click. Move mouse up to the back button, click.
Now, there may be keyboard shortcuts for back and forth than some people find handy, but for me, those 2 mouse gestures alone are like a scroll wheel. I'd never live without, and when forced to, it really, really sucks.
Endless arguments over trivial contradictions in books written by ignorant savages to explain thunder in the dark.
Actually, current thinking disputes this. The reason RSI didn't affect typists (on mechanical typewriters) is due to the extra weight of the keys. The key return supplied enough movement that you wouldn't have to use any effort to lift your fingers the keys did it, whereas now you raise and lower the fingers in quick succession with a serious of poorly-coordinated muscle movements, causing pulling and straining. (This is also why most concert pianists find it impossible to play on a cheap Casio keyboard -- the poor return action means extra work leading to an inability to play fast.)
As an RSI sufferer (albeit mostly recovered) I find that I can't use a laptop keyboard for more than 15 minutes.
That said, I find the keyboard vastly preferential to the mouse. (I use the keyboard to navigate Windows menus -- there's a tip for the guy and his Maya gestures.) Also, one of the worst things I found was click-and-drag. The short travel buttons on a mouse need a not-inconsiderable amount of pressure to hold down....
Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
Note MozGest adds much more functionality besides "moving the mouse".
- Rockers: Hold one button, press other to perform action
- Wheel rockers: Hold a button and rotate wheel to perform action
- Custom gestures: You don't like some? Remove it! You'd prefer it done otherwise? Modify assignment. You have a new amazing idea? Write it, bookmarklet style in "custom gesture" field. Pissed off with LMB disturbing with selection? Switch to RMB!
Plus for those who protest against "flick of wrist" - I think moving your hand 2mm left to launch "back" is less stressing than moving it 5cm, to reach the "back" button.
Problem: Performance. With multiple heavy pages opening, on average hardware, it slows down seriously and sometimes gestures don't get recognised.
45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
"why netscape thought it a good idea to allow any site an almost arbitrary level of control over my browser is beyond me."
;)
It's 1994. The top of the line computers are 66Mhz. You want to market a server product that allows people to serve thousands of computers, without requiring super big iron support. You have a client program (Netscape Navigator) to go with your server product (Netscape webserver). Suddenly, it becomes clear to you -- distributed computing. Have the client side do some of the heavy lifting; it also allows other automation features on the client side not possible with HTML (at the time). You make this "Javascript" which is to other scripting languages as Java was to C and C++, and market it aggresively as a product solution.
Most people end up using it to have a trail of images after your mouse cursor, or the equivalent of xsnow
Only now are people even bothering to say, "maybe I don't want web pages being able to do absolutetly anything via a scriptable interface" However, there are still beneficial uses for Javascript (such as making web forms "smarter" about doing a first check before submitting it [since it costs more CPU/transfer time for the server to do it, this saves modem users the pain of a typo returning an error page], or seeding things with values), I don't think it should totally be stripped out. Just redesigned with security in mind, ala Java applets.
--
Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
HTML and all its extensions should focus on providing the document's contents and structure. The method of navigation is entirely up to the browser application, and should not be decided by the web designer.
" (your server MUST check input, forget about doing that in javascript)."
"(such as making web forms "smarter" about doing a first check before submitting it [since it costs more CPU/transfer time for the server to do it, this saves modem users the pain of a typo returning an error page],"
I did not say "Don't ever check on the server side." I said, "additional checking which allows users on slow links to not be punshed for typos that can be corrected by a little client-side scripting."
More checks are better than fewer.
--
Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
This could all have been handled much better with a declarative constraint based forms validation extension. Then the features you describe above could be built into the browser where they belong rather than being invented differently on every damn web site.
Looking for an Information Security student project suggestion?
Try http://dotcrimeManifesto.com/