I <3 Steve McConnell*
Coding Horror
programming and human factors
by Jeff Atwood

October 13, 2007

Mouse Ballistics

Let me be completely honest with you. I have a full-blown mouse fetish. I've owned every single major mouse model from Microsoft and Logitech since the bad old days of the original Microsoft "Dove bar" mouse, and the Logitech MouseMan. I remember quite clearly bringing home my first mouse, an add-on for my Apple //c, and demonstrating this novel method of input to friends. I've been obsessing over these essential input devices since way before the days when USB was just a glint in Intel's collective eye; I have more than my share of mousing experience.

These days, I can't claim experience with every mouse under the sun; there are too many models out there. Mice have long since split into two distinct family trees: premium "performance" mice for gamers and enthusiasts; less expensive vanilla models for everyone else. As an enthusiast and a gamer, I've followed the enthusiast mouse family tree with great gusto. My current mouse of choice is the Microsoft Habu. But that was way back in March. Since then two very interesting new models have emerged.

The Microsoft Sidewinder Mouse:

Microsoft Sidewinder Mouse

The Logitech G9 Mouse:

Logitech G9 Mouse

I've now used both models for a few days, long enough to generate some informed opinions. They do have a quite a few things in common, things I'd consider relatively standard for current generation enthusiast mice:

  • Five buttons (left, center, right, back, forward)
  • Weight cartridges for adjustable "heft"
  • Textured aluminum scroll wheels
  • Hardware DPI adjustable "on the fly" with visual indicators
  • Oversize glide pads on the bottom
  • Mouse settings are permanently stored in on-board firmware

Each model also has a few unique features of its own:

Microsoft SidewinderLogitech G9
  • LED display that shows the current DPI setting
  • Glide pads can be swapped out; includes three sets, of varying slickness
  • Accessory box is weighted and doubles as cable anchor
  • Record macro button in front of the thumb buttons
  • Quick launch button on body
  • Vertical side button arrangement
  • Grip body can be swapped out; two different bodies are provided
  • DPI indicator LED color can be changed in software
  • Wheel can be switched between gear and frictionless modes
  • Offers one more DPI setting (4 total)

I noticed that neither of the mouse wheels allow horizontal (left-right) scrolling. This is a good thing, because horizontal scrolling has always struck me as a dubious sort of feature at best. I think you'd need something other than a wheel to do it justice, more like a mini-trackball, and even then I'm not sure the complexity is worth it. How often do you need to scroll horizontally? I'd rather have a firm, bi-directional mouse wheel that's locked to up-down, anyway.

So which one do I prefer? My old Habu wasn't exactly chopped liver-- nor was the Logitech MX 518 I used before that-- but on the whole, I prefer the Logitech G9. The Sidewider is arguably the more innovative model, but I have a few concerns with it:

  1. It is a large mouse. The shape, while unusual, is plenty comfortable-- but bulky. I prefer smaller mice in general.
  2. The thumb buttons are in an unusual location. I've trained my thumb to move up, not forward. Every time I hit the "back" thumb button, I have to think and stretch a bit to reach it.
  3. It's a bit more awkward in general. Even with equivalent DPI and mouse speed/acceleration settings, I miss small click targets that I had no problem hitting with the G9 or the Habu. I don't think it's a technical limitation; it might be a consequence of the fit.

The G9, on the other hand, is a flawless mouse upgrade. I have no complaints whatsoever-- it's a solid step forward in every respect. Well, there is one minor niggle worth mentioning: the body, because it's designed to be interchangeable, is a tiny bit loose when you pick up the mouse. If you frequently pick up the mouse to adjust the position, you might find that annoying. Also, the frictionless mouse wheel option is fun-- it reminds me of the spinner control in classic arcade games like Tempest-- but useless in practice. It is an option, not a requirement, so I don't deduct anything for that. I'll stick with the Sidewinder at work for a while longer and see if I can adapt. I admire all the innovation at a relatively low price (for this type of enthusiast mouse, at least), but I am sorely tempted to buy another G9.

During all this mouse testing, I spent a lot of time normalizing the pointer speed between the control panel mouse options and the DPI settings in the mouse's hardware. I don't think I realized until now how essential it is to enable mouse pointer acceleration for best pointer "feel" with any mouse. I strongly recommend that you double check to make sure this this feature is enabled. It's available in Control Panel, Mouse, Pointer Options under "Enhance Pointer Precision".

Control Panel, Mouse, Pointer Options, Motion

What does Enhance Pointer Precision do? It's a simple concept. When enabled, the pointer moves more precisely when you move the mouse slowly, and more nimbly when you move the mouse quickly. It decouples pointer movement ever so slightly from a basic 1:1 relationship with mouse movement, and introduces something called the mouse acceleration curve.

The translation from physical mouse movement to pointer movement is more sophisticated and more subtle than you might think. It's all documented in an excellent Microsoft article on mouse ballistics. It introduced me to the amusing concept of the mickey: the smallest unit of measurement that the mouse's hardware can produce.

Let's think about this like programmers. If it was our job to translate mouse mickeys into pointer movements, how would we do it? Our first order of business is to figure out how fast the mouse is moving on the table or mousepad-- the mouse velocity.

Formula for transforming mouse units to physical units

The accuracy of the mickeys coming from our mouse is strongly influenced by the bus update rate. The math proves it. I talked about this in an earlier post on Mouse DPI and USB Polling Rate. The good news is that fancy enthusiast mice always override the default 125 Hz USB update rate. Both of these mice bump it up to 500 Hz as soon as they're plugged in, which I verified using the Direct Input Mouse Rate tool.

The number of mickeys/inch is similarly influenced by the capabilities of the mouse's sensor hardware, also known as DPI. It should more accurately be called MPI, mickeys per inch. A "dot" isn't a dot at all; it's a completely arbitrary unit, nothing more than the smallest unit of movement that the hardware can measure. The Sidewinder ranges from 200 DPI to 2000 DPI; the G9 from 200 DPI to 3200 DPI. This is dynamically switchable via the buttons on the mouse, and configurable in software as well. Don't get hung up on the fact that the Sidewinder "only" goes up to 2000 DPI; the packets going over the wire only allow a mickey size between 0 and +127, so there's a practical limit on how precise you can be.

Now that we have mouse velocity in the physical world, let's determine how that will map to pointer velocity on the virtual world of our screen.

Formula for transforming pointer movement to physical movement

Screens are bounded by obvious, concrete physical limitations. Refresh rate is typically fixed at 60 Hz for modern LCD displays. Screen resolution varies from 800 x 600 to astronomically huge for those that can afford 30" displays, but the DPI ranges are fairly similar for most monitors.

Let's try plugging in some typical values into our formulas:

Vmouse = 3 mickeys * 500 Hz / 1600 DPI = 0.9375 inches/sec
Vpointer = 3 mickeys * 60 Hz / 80 DPI = 2.25 inches/sec

You can immediately see the disconnect-- 1 inch of physical mouse movement resulted in 2.25 inches of screen pointer movement. There's a physical to virtual gain of 2.4x. Without the mouse acceleration curve, this is as sophisticated as it gets. We might use a simple multiplier based on the pointer speed slider, but that's about it. The relationship is linear. We're doing a basic one to one mapping.

But with "Enhance Pointer Precision", we use a variable curve to determine how far the pointer moves for any given mouse speed. The different colored curves shown here represent different values of the pointer speed slider with acceleration enabled.

Mouse transfer function graph

It is possible to edit these curves via the SmoothMouseXCurve and SmoothMouseYCurve registry settings, but there's absolutely no documentation I could find on these settings, so be careful. Getting the curve right is crucial. According to the article, the mouse acceleration curves in Windows were determined by a usability study. For example, many people dislike the default mouse acceleration curve in OS X:

So what's wrong with Mac OS X's mouse acceleration curve? Simply put, it's the wrong shape. For mouse motion to feel natural (at least for most people), the curve has to start by moving upward fairly moderately, then gradually flattening out as the value of X increases. Mac OS X's, curve, however, starts off by being too steep, staying too steep for too long, and then flattening out too abruptly. In practical terms this means that, frequently, as a user tries to use the mouse to move the pointer from point A to point B, the pointer motion feels sluggish. The user then tries to compensate for the sluggishness by moving the mouse faster, and the pointer suddenly goes flying across the screen and overshoots point B. A comfortable and useful curve is actually shaped like a curve. Mac OS X's curve, however, is shaped more like a cliff.

Windows may have better curves, as long as that "Enhance Pointer Precision" checkbox is ticked.

Who knew mouse ballistics could be this sophisticated? Heck, who knew that mouse ballistics even existed until now? Experiment with the "Enhance Pointer Precision" setting for yourself, but I believe it should always be enabled-- it results in mouse pointer movement most people will find both easier to control and more accurate.

[advertisement] Axosoft OnTime 2007 is a bug tracker that manages requirements, tasks, and help desk incidents. It's designed to help teams ship software on time. Available for Windows, Web, and integrated with VS.NET 2005. Installed or hosted. Free single-user license.

Posted by Jeff Atwood    View blog reactions

 

« A Visual Explanation of SQL Joins Torrent Informatics »

 

Comments

Huh. On my new machine (Vista x64), it's enabled by default. I don't have any custom mouse drivers installed or anything like that either. I have a Logitech G3 (i think) cordless.

Thanks for explaining the whole thing about Mac OS X's mouse acceleration curve. It always "felt wrong" to me for some reason, in that way where I just couldn't explain it...

Dave Markle on October 14, 2007 05:07 AM

I'm quite happy with Logitech MX500 and don't believe there would be any productivity gain switching it to anything else. Don't believe in cordless devices either.

alex on October 14, 2007 05:29 AM

I prefer trackballs.

dc on October 14, 2007 05:33 AM

I started reading your site yesterday when following a link from Digg or Reddit on SQL Joins. I thought I would make an FYI comment...I'm new to Macs (having got my first this month) after 20+ years of using computers of the Win or *nix varieties. The iMac comes with a nifty little mouse that takes some getting used to. It has one button but is sensitive to clicking on the right or left side for two button functionality. It has a trackball for scrolling vertically or horizontally. FInally it has a set of buttons on either side of the mouse which can be set to do various things.
Your site is a good catch, glad to be another reader.

rubyisbeautiful on October 14, 2007 05:39 AM

@dave: I double checked, and you're right-- it seems to be on by default in a clean VM instance of XP. I'd assume it's on by default in Vista as well. Not sure what's going on with my machines, it was off at work for sure.

@alex: Of course, if you're happy with your mouse, there is no reason to switch. And a lot of it comes down to shape as well-- that's one nice thing about the G9, with the two bodies that offer different shapes. The website alludes to other shapes being available for sale at some point, but I don't see anything on that.

Still, I think the 800 DPI of the MX500 is a little low by today's standards. I use 1600 DPI as my baseline setting, and I'll drop down to 200/400 DPI for precision work in image editing. I could get the same effect by visiting control panel and slamming the pointer speed slider all the way to the left, but it's very easy to click a button on the mouse and change it instantly.

Also, FWIW, I really like the aluminum scroll wheels. Much more durable-- I've had plain rubber scroll buttons wear heavily on prior mice that I use. Lots of scrolling!

Jeff Atwood on October 14, 2007 05:42 AM

It is also interesting to try out the Nintendo WiiMote's Pointer. It is directly mapped to the direction you point. Once you get used to it is VERY intuitive but unfortunately bad for pixel-accurate clicking.

Daniel Lehmann on October 14, 2007 05:43 AM

I personally have a Microsoft Wireless IntelliMouse Explorer 2.0. It is the perfect shape for my hand, it can go a while without charging the batteries (a month or two), and I see no reason to change. For my laptop I almost always use the touchpad, which I have grown to love. I keep some cheap Logitech USB mouse in the bag primarily for when I let others use it.

Unfortunately, I'm now on another PC. I'm using a generic Dell that came with the system. At least it is optical.

Jake on October 14, 2007 06:07 AM

"I think you'd need something other than a wheel to do it justice, more like a mini-trackball, and even then I'm not sure the complexity is worth it. How often do you need to scroll horizontally?"

Like Ruby is beautiful said, indeed the Apple MightyMouse has as trackball that will let you scroll up/down/left/right. Most of the time I really like it, and appreciate the functionality. It lets me keep my browser window just large enough for most sites, while giving me the ability to scroll easily to the right for sites with a bit wider layout.

I miss the functionality when I'm in Windows.

But, I think it comes down to how the application authors' implement its use. I cannot stand it in NeoOffice, where it is way too sensitive to left/right, and it's backward from the other apps I've been using it on (or at least it seems that way).

Sammy Larbi on October 14, 2007 06:13 AM

"An an enthusiast and a gamer," <-- As an? And the mouse precision check box seems to be a standard for Dell machines. Nice post Jeff.

Craig Woodward on October 14, 2007 06:18 AM

There isn't only mouse ballistics, there is also greasymouse (X windows only, probably) that lets the mouse pointer slide a bit further when the pointing device is already at rest. Mostly for fun, though.

I'n a trackball type anyway, and hope that mine will last some time to come (including availability of PS/2 ports).

Andreas Krey on October 14, 2007 06:30 AM

I had no idea I had precision on. It definitely feels really weird without it on, it's a great feature!

Ambrose Bonnaire-Sergeant on October 14, 2007 06:40 AM

Both mice seem to have a cable. Does the old rumor that wireless mice have a noticeable action lag still hold true ? I used to hear pro gamers say that when they were new, but I haven't heard it in years. What would you say ? Is that your reason to use the much more restrictive cable variant ?

Personally, I think the lack of 'decay' that laser mice have is the most important feature - I dread to think back to the old ball mice, that somehow would always deteriorate within what felt like no time at all. My current laser one I've used so long that the print of the model name has rubbed off and it's still working perfectly (it's a MS Intelli Eye Explorer, don't ask me when they made those).

A bit of novel trivia: I bought my first mouse, which I considered a silly and useless tool before, for this game: http://en.wikipedia.org/wiki/Civilization_(computer_game), Ah, the memories. Of course I was like 12 then.

J. Stoever on October 14, 2007 06:41 AM

Recently bought the G9 and it the best mouse i have ever used.

Nearly all of the mice that are out on the market are bulky that require the user to "palm" the mouse. Fortunately, there are some people that like to "finger tip" hold their mice, especially your hand has a tendency to sweat.

Lee on October 14, 2007 07:11 AM

The mouse acceleration settings (AKA "enhance pointer precision" - it's existed in various forms for years) unfortunately can apply in games, depending on the circumstances. While that's useful for god games etc. where the mouse pointer is visible on screen, for first-person shooters it's far more hinderance than help; if you're playing with these options be careful that it doesn't mess up gameplay for you.

Logitech's drivers have an option to disable all mouse acceleration whenever in a full-screen game - it defaults on, and I'd highly recommend you leave it that way. Mouse acceleration can really screw with your aim.

Personally, I prefer leaving acceleration entirely disabled, with the mouse sensitivity rather higher than normal. While it makes pixel-accurate clicking slightly slower, I find it's preferable to be able to "feel" a fixed one-pixel movement than have to move the mouse slowly until it nudges it over the pixel boundary.

Jamie Craig on October 14, 2007 07:12 AM

@J. Stoever

Both mice seem to have a cable. Does the old rumor that wireless mice have a noticeable action lag still hold true ? I used to hear pro gamers say that when they were new, but I haven't heard it in years. What would you say ? Is that your reason to use the much more restrictive cable variant ?

Even recently I have tried using a wireless mouse and i can't stand them. I can visually see the lag between the mouse and the movement of my hand, and I tried a high end mouse (MX Revolution). Some users don't notice it all. The friend that I borrow the mouse from to try it out said he had no idea what I was talking about when I mentioned the lag.

Lee on October 14, 2007 07:15 AM

I've had a Mac OS X machine as my primary for awhile and hadn't noticed the effect you mentioned, so I played with it a bit. You're totally right. And then I realized -- this is a laptop, I'm almost always just using the trackball, and what you mentioned is actually perfect for fingers on trackball... It goes back and forth between slow positioning for accuracy and "flick" scrolling to get farther across the screen.

Of course, it makes sense that it still sucks to use with a mouse :-)

Noah Gibbs on October 14, 2007 07:17 AM

I changed the left\right tilt scrolling on my mouse to be forward and back. I think that is the best use of the tilt wheel feature.

Scott on October 14, 2007 07:17 AM

I have been using both Logitech and Microsoft mice since both released version 1 of their mices eons ago. Overall, I like Logitech's better. I am just an occasional gamer and right now I prefer using wireless mice. So far the best I have used among the lot (non bluetooth) is the Logitech VX Revolution with its flywheel equiped scroll wheel. You can set a switch in this wheel so it will scroll either smoothly or with a click.

The last generation Microsoft wireless mouse IMHO, had flawed scroll wheels... no detent, just smooth scrolling action. This was no good for games.

cyclo on October 14, 2007 07:35 AM

I too am a mouse enthusiast (Snob says wife), and I must say I did not are for the G9. I am currently using my Razor Death Adder at home and the logitech G5 at work. The Death Adder is very similar to the Habu, but IMO better in everyway. Give it a try. BTW, check out http://www.esreality.com/?a=longpost&id=1265679&page=1 for some interesting "benchmarks" of mice. Pretty interesting.

Beau on October 14, 2007 07:37 AM

Hey Now Jeff,

Nice post, I value your opinion, I was wondering if you ever tried a vertical mouse?

Coding Horror Fan,
Catto

Catto on October 14, 2007 08:28 AM

I'm finicky about mice as well, but in the opposite direction. I bought a PS/2 to USB converter specifically so I could attach an older mouse to my Linux-PC laptop. It has 2 buttons + click-wheel and is an old-style ball mouse instead of optical. (Optical sucks on certain surfaces, and I'm willing to clean out the ball tracker every month.)

I declined to buy this instead of a more modern mouse because it has *perfect* click-characteristics. The buttons are neither sloppy nor hard to press, and the audible click feedback matches the tactile feedback. The click-wheel is perfectly grippy, too. (The brand is "micro innovations", which I had not heard of before.)

Tim McCormack on October 14, 2007 08:33 AM

@Catto:
I have an Evoluent Vertical Mouse. UGH. It leads to undue pressure on the side (butt) of the hand. It seems ergonomic at first, then after a few days comes a lot of pain.

I also have a Contour Design mouse which is decently ergonomic but has bad tracking.

I'm still looking for a great ergonomic mouse.

Adam DiCarlo on October 14, 2007 08:43 AM

Thanks for the interesting article.

The Macintosh had some kind of mouse acceleration from the beginning, but I don't think that was the case in early versions of Windows. I just remember when going from the Macintosh to Windows in the old days, the mouse felt sluggish.

However, now I mostly use Windows XP, and the mouse feels very natural. When I occasionally use a Mac now, the mouse feels strange. I don't know if its just what I'm accustomed to, or the Macintosh remained the same and Microsoft came up with a superior method, or somehow the Macintosh got worse.

Greg Graham on October 14, 2007 09:40 AM

Have you tried the MS Natural?

http://tinyurl.com/3x5x45

To me it is the most interesting choice out there and I have some friends who swear by it. I still haven't made the switch though.

Danny on October 14, 2007 10:33 AM

Anyone know how to get the windows pointer speed past maximum by a registry edit or something.

I have a laptop with a trackpad and with it set at maximum pointer speed and enhanced pointer precision enabled it's still not quite quick enough for my taste compared to how much I move my finger.

Pete on October 14, 2007 10:35 AM

I have a MX500, bought it around 4 years ago I think. It's great, but I'll probably switch to a MX Revolution because I'm trying to get rid of all the wires I can.

Ricardo on October 14, 2007 11:16 AM

Are there wireless versions?

I think I may be far too attached to my MX1000 to go back to wired mice...

TM on October 14, 2007 12:06 PM

I just recently switched to a wireless Logitech G7 and it is absolutely the best mouse I've ever used. I've always been wary about wireless lag, but this mouse is absolutely incredible and I can't notice any lag whatsoever.

It also uses two rechargeable battery packs so you're not constantly buying batteries, which is really nice. It comes with two packs and one sits in the wireless receiver and charges while you use the other. When the batteries are running low, I can swap out the fresh pack in about 3 seconds flat.

Bob Somers on October 14, 2007 12:37 PM

I've had the logitech MX 500 in all its flavours (currently using the 518) and for me its the perfect mouse.

There are situations where horizontal scrolling might actually be useful, a heavily zoomed in image in photoshop being one example, but then again it would have to be a trackball like you pointed out.

I decided to turn pointer acceleration off in favour of a higher mouse speed.

Christian Klauser on October 14, 2007 01:00 PM

Quite interesting article.

Maybe that's why I like a LOT more to use the trackpad than the mouse (mini logitech tilt-wheel) in OS X.

The pointer movement with the trackpad certainly feels very different and way more comfortable than with the mouse. I even don't care that the tp only has one button (is easy to get used to this, but then I'm no gamer or anything alike).

maeghith on October 14, 2007 02:11 PM

Any recommendations for a new keyboard? My old PS/2 Microsoft Natural Keyboard Elite is a bit dated and is nowhere near the white color it once was.

Thanks!

micah on October 14, 2007 02:35 PM

A short trip to the dishwasher should return your keyboard to its former colour, and even a braindead monkey could take out the electronics.

J. Stoever on October 14, 2007 02:44 PM

I FPS-game with my mice, but I don't have the latest hardware. I'm still rocking with a IntelliMouse Optical (2001, 5 buttons).

I use at work my Microsoft Wireless Notebook Presenter Mouse 8000 (2006, mouse with a fricken laser pointer), but I wouldn't use it for gaming, because it has "startup lag". I even set all the "drain battery faster" options but no dice. Its as if the mouse, if idle for more than a minute or so, "disconnects" from the PC. I suspect battery life preservation and this mouse wasn't designed for gaming.

Both mice are symmetric, even though I'm right handed, I like the style.

Get the most out of your mouse! If you have the problem of trying to define more keys that the MS IntelliPoint software allows you to (for example, Backspace to Mouse 4), you can try a Registry trick:

http://www.terravirtua.com/index.php?idx=139

I look forward to a follow up articles on "best mouse pads", "replacing mouse feet", "mouse key binding", etc.

piyo on October 14, 2007 05:02 PM

It's always interesting to read opinions on new mouses, being kind of a fan of "high performance" mice myself.

There's one thing I have to disagree here, though... Namely, the pointer precision thing.


I really, really, dislike any mouse acceleration. You say it will make for more precise mousing - How exactly does making the mouse move more when moving the mouse fast than when moving it slowly will enhance precision? If you accidentally move the mouse slightly faster than usually, your cursor will end up in some other place than you wanted.

Also, like a commenter before me mentioned, it's a hinderance in FPS games, mostly because of the fact I mentioned above.


The only time I would use mouse acceleration is with laptop touchpads (or perhaps with crappy mice). That's where it helps a lot because you don't have much space to move around and if you increase overall pointer speed, you won't be able to do precise movements.

Jani on October 14, 2007 05:12 PM

Just to put in a word about mouse acceleration curves; as a competitive gamer, they are the bane of your existance. I understand, and even agree, that they make your regular mouse usage (ie, navigating windows and dialogs) feel smoother, but it absolutely ruins your ability to aim in FPS games.

You might completely disagree with me. I did when I was first told. But just try it (and the little checkbox doesn't do it, there are acceleration values embedded in the registry that must be changed, at least in XP, I don't know about vista. A quick google will give you a reg file containing the fix). I thought I was a half-decent shot before, but I always played a support role because I knew I wasn't the best. After I fully disabled it, and gave myself time to get used to it, I was doing far better and was able to hold my own against the best in my bracket.

Ryan on October 14, 2007 06:39 PM

For any serious 'competitive' gamer - I advice switching OFF mouse acceleration. As a long time CS player, this concept is drilled into you over and over again. There are even registry mouse fixes available from the CPL to ensure all forms of in-game and windows mouse acceleration settings are disabled.

I don't think anyone has said why as yet, so I'll attempt to explain.

Over time you develop a natural reflex in games - especially first person shooters. You want this natural reflex to map to the game exactly the same way, every single time. With mouse acceleration enabled, this reflexive action is hindered by software adjustments to the mouse input.

Your cursor should move to the same position on the screen each time no matter how fast you move the mouse. You should only be relying on distance of mouse movement - not the speed - for determining where your aim goes.

Let me try to visualise it for the readers.

There is a corridor 10 feet wide (in-game) which maps to say 10inches on your mouse pad. If you have your sites set to the corner of the left wall and someone appears at the right corner, you move your mouse 10 inches to the right and fire.

If you have mouse acceleration turned on - how far and how fast do you move your mouse? It's an added element of complexity added to the processing your brain has to do - and usually it's a best guess attempt only improved (but never perfected) with constant practice.

`Josh on October 14, 2007 08:36 PM

> A short trip to the dishwasher should return your keyboard to its former colour

Now that's an interesting idea..

http://www.boingboing.net/2005/05/30/clean-your-keyboard-.html
http://www.npr.org/templates/story/story.php?storyId=11029793
http://plasticbugs.com/index.php?p=263

Most people are doing this with no disassembly, just slapping the entire keyboard in the dishwasher, using plain water (no detergent) and no heat drying cycles. Then wait a few days for it to dry 100%. Sounds like it works, too.

Jeff Atwood on October 14, 2007 10:04 PM

HURRAY FOR MOUSE INNOVATION!

Does the G9's "frictionless" mouse wheel actually provide inertial scrolling (as simulated on the iPhone scroll) or does it just turn the wheel 'ticks' off?

Inertial wheel scrolling would REALLY come in handy when I have 5000 lines of code or a really long webpage/document and I want to quickly (but smoothly) cruise to the bottom without giving my index finger an extreme workout.

In the spirit of this post, I did a test: At the default "3 lines per tick" Vista mouse wheel setting, it took me 21 finger scrolls of the wheel to go from the top of this web page to the October 14th, 8:36PM comment entry. For older, more commented posts, I am forced to resort to the ancient practice of actually drag-clicking the scrollbar.

If the G9 truly provides inertial scrolling, I think it's a HUGE advancement.

Other Commentary Kudos:

Thumbs up:
-Finger-touch mouse movement (as opposed to palming the mouse).
-Mouse Acceleration ENABLED in Windows (especially with large multi displays)
-Mouse Acceleration DISABLED in FPS games

Matias Nino on October 14, 2007 10:45 PM

Logitech mice used to come with a program/driver called MouseWare, which, among other things, offered configurable accelleration. There was only one decent setting, if I remember correctly, so it's no problem that Windows lacks this configurability.

A thing that bothers me a lot is that XFree86/X.org do not have decent pointer acceleration. You can set a threshold and a multiplier for speeds above that threshold, so it's similar to OS X, if I understand you correctly. (But considering that Mac people actually do usability testing, their method is probably better than X's.)

Strangely, when I switched from Gentoo Linux to Ubuntu this problem disappeared, and my pointer now moves quite perfectly even in Linux. In fact, this was a major factor for me when deciding whether to switch distributions! I don't know how Ubuntu does it, and why this has not been backported to X.org, though.

Thomas on October 14, 2007 11:14 PM

The Sidewinder is a nice mouse overall but it has a gigantic "hump" near the base of the mouse. It's supposed to fit your palm but you need gorilla hands for that to work. It's like the mouse was designed by the people who made the original Xbox controller!

Chris Nahr on October 14, 2007 11:33 PM

Interesting read...but I'm still never giving up my Wacom tablets. I've been using tablets -- in absolute mode, not relative pointer positioning -- for 10 years, and I'm fairly certain it will take a miracle for me to ever go back to using a mouse.

Stephane Charette on October 14, 2007 11:34 PM

Tablet is a really nice mouse replacement. I've used one of them as well and it's amazing how natural it felt to just point and tap things with the pen. Two problems, though: how does it work with a three-monitor combination like Jeff has? I don't think very well, because you'd need a *very* wide tablet. The second thing is that if your tablet is of A4 size, it can be annoying to reach around it to type on the keyboard.

Jani on October 15, 2007 01:21 AM

There have been some changes in my mouse preferences over the last 8 months.

- middle (wheel) click is becoming very important. The way you can middle click to close windows / tabs is an emerging standard I like a lot-- and I use it all the time now. Most PC games actually assign something significant to the middle button now. It's presumed the middle button is there, and will be used.

- The forward button is slightly more important. It's still uncommon, but I missed this button terribly on the original Logitech G5. Logitech released a later version of the G5 that re-included the forward button.

> It's like the mouse was designed by the people who made the original Xbox controller!

I was thinking the same thing. It is a large mouse, for sure.

> actually provide inertial scrolling

The mouse wheel hardware itself is great-- yes, it is truly frictionless in that mode. The problem is that Windows can't quite deal with this mode. Even setting the mouse scroll to the minimum, 1 line at a time, the software can't quite make this feel natural.

Jeff Atwood on October 15, 2007 01:30 AM

I think they both look ugly :-)
Razor mice are still my favorites for gaming.

jan.g on October 15, 2007 01:44 AM

I'm still waiting for a mouse which has ctrl & shift keys on it, for operation with the thumb. This would provide true one handed operation for a lot more applications.

Matt Lacey on October 15, 2007 04:15 AM

Matt Lacey -
Just map the mouse buttons to the function keys? I'm sure there's profiles for some mouse software.

`Josh on October 15, 2007 04:44 AM

I think I'll stick with my Microsoft Habu Mouse / Logitech G15 Keyboard for a little while.
The Habu left-side buttons (with different positions) are still unbeatable for me.

Filini on October 15, 2007 05:15 AM

Now we know why Jeff built his coding box like a gaming machine...

a on October 15, 2007 05:52 AM

Horizontal scrolling support is pretty useless, it's true. And that's why the Logitech mice that support side scrolling are better than their MS equivalents. The side wheel flicking is an intuitive and effective way of navigating forward and back while web browsing, and it's easy to remap it this way with the Logitech software. There is NO support for remapping these functions in Microsoft's drivers.

Casey Barton on October 15, 2007 07:28 AM

Since we're talking about mouse configs, has anybody tried configuring their outer buttons or left/right wheel click (for the Logitechers) to copy/paste? I've done this and my programming/browsing/misc productivity has shot through the roof!

As a sidenote, I'm using a trackball for my desktop, but have fallen in love with the Logitech VX Nano that I bought for my wife's new laptop. Heck I might even get it for my desktop!

Sean Patterson on October 15, 2007 08:19 AM

I love my Logitech MX Revolution.

Laser, Wireless, Rechargable with Cradle. Best mouse I've ever owned.

I used to hate Wireless mice, but since trying this once, its been awesome. So much I bought another one for work. So I own two. I notice no lag, but I also use them on a mouse pad, a large desktop size one.

Dustin on October 15, 2007 08:37 AM

In case you're wondering, as I was, what the three types of feet are that come with the Sidewinder Mouse: Teflon (white), a Teflon mix (gray) and non-Teflon (black).

I blindly used the "slickest" feet which I *thought* were the white ones, but I was never quite sure. Looks like I chose correctly.. this is from the "Things to try when reviewing the MS Sidewinder Mouse" document, here http://download.microsoft.com/download/6/d/8/6d849c30-a602-4825-bf6a-1db9a6353439/SideWinderRG_Things%20to%20Try.pdf

Jeff Atwood on October 15, 2007 11:02 AM

Jeff, have you looked into how the driver software that comes with the mice interacts / overrides / affects the "Enhance pointer precision" setting in the basic Windows driver?

For instance, Logitech SetPoint (I have an MX1000) has settings for selectable acceleration. None, Low, Medium, and High. All 4 of these behave entirely differently depending on whether the "Enhance pointer precision" setting is enable in the control panel, not to mention that each one has it's own slider for pointer speed! It makes one wonder if the two are counteracting each other, or the opposite, exaggerating.

I would have thought that when one installs an "advanced" mouse driver, it would disable the basic mouse driver settings in the Windows control panel to avoid this confusion and overload of possible settings combinations.

How did your testing fare using the MS and Logitech software along with the basic Windows settings?

KR on October 15, 2007 11:14 AM

Horizontal scrolling is extremely useful for visual designers, who consistently work with images or documents that do not fit 100% in their screen resolution.

I use it all the time with my Mighty Mouse (using a mini-trackball, as mentioned in a previous comment) at home if I have multi-page booklet-style documents I'm working with in InDesign or if I am zoomed into a document in Photoshop. It can also be somewhat useful in browser windows that have are not maximized.

Hakan on October 15, 2007 02:11 PM

Hi Jeff, cool entry you have.

However, there is something strange with mouse ballistics, that is: even when you uncheck the "enhance mouse pointer precision", there still is no linear relationship to mouse movement and pointer speed. This can be shown by two things: start on a vertical line somewhere on the left of your screen, move your mouse to the right fast (but don't hit the right edge), then go back to the left the same distance on your desk and see whether your pointer ends up on the same place. With my logitech no-name mouse it doesn't. With my Wacom tablet it does for the pen, and too for the mouse when I set it in absolute mode (in linux / X, forgot what the name for the mode is in windows) - when in relative mode (which the mouse normally is in) it behaves as the logitech does.

A less scientific test for this is trying to write your autograph - The bank still won't accept it as yours with a mouse set to absolute, but it is recognizable as autograph, which it isn't with a "normal" mouse even with the pointer precision off.

And about the scroll wheel: I'm no gamer at all, so I use logitech OEM mice*. They have a nifty feature, when you open them up and remove the spring, the mouse wheel is almost frictionless. You can then on long webpages just give the wheel a whack and it'll keep scrolling until you stop it, while not giving any problems with precision scrolling. Since I've discovered this I've performed this operation on all my mice (except the Wacom), but not all mice (no-names, microsofts) will work: some will "flicker" up and down when they are exactly inbetween two stops.

And about cleaning keyboards: I about yearly remove all the keys and put them in a bra-net (get a girlfriend if you don't know what it is) and just put it in the washer, including detergent (nonperfumed). Pop 'm back up (good blind typing practice) and your keys are as good as new.

Just two nostalgia questions:
1: Who still uses mouse mats? I just saw one today (unused) when I realised it must've been years ago I saw one. However, I don't miss cleaning mouse balls and especially the contact wheels.
2: Any linux users still remember the difference between color and black/white mice? There was a time when the logitech OEM mice of the same model came with the Logitech logo either in color or in b/w print, and only one would work. I actiually did go to the store to ask for a color (or B/w) mouse, but fortunally they didn't laugh at me (not in my face, at least).

Tijmen

Tijmen Stam/IIVQ on October 15, 2007 02:18 PM

Two replies to comments:
- In linux it's pretty standard that "select" is copy, and "middle click" is paste. In fact, usually it's a separate paste buffer from ctrl-c/v/x (or ctrl-ins/shift-ins if you prefer) so you have two paste buffers
- Also in linux, horizontal scrolling is done by scrolling (vertically) on the horizontal scrollbar

And one for myself:
- What I REALLY miss in the wacom PEN is the scrolling function and actually the reason I still use the mouse. Is there any pen that has a scroller that's not button-based? This can be a synaptics device (Ipod scrollwheel but linear), a real scrollwheel or a 1-D analog joystick button (that increases scroll speed when you hold it further)???

Tijmen Stam/IIVQ on October 15, 2007 02:25 PM

Two replies to comments:
- In linux it's pretty standard that "select" is copy, and "middle click" is paste. In fact, usually it's a separate paste buffer from ctrl-c/v/x (or ctrl-ins/shift-ins if you prefer) so you have two paste buffers
- Also in linux, horizontal scrolling is done by scrolling (vertically) on the horizontal scrollbar

And one for myself:
- What I REALLY miss in the wacom PEN is the scrolling function and actually the reason I still use the mouse. Is there any pen that has a scroller that's not button-based? This can be a synaptics device (Ipod scrollwheel but linear), a real scrollwheel or a 1-D analog joystick button (that increases scroll speed when you hold it further)???

Tijmen Stam/IIVQ on October 15, 2007 02:25 PM

"It is possible to edit these curves via the SmoothMouseXCurve and SmoothMouseYCurve registry settings, but there's absolutely no documentation I could find on these settings, so be careful."

I realize I am being lazy - but did you dig into this at all? I have just this week been thinking about creating my own curve. I was trying out an MX Revolution (already looks hopelessly outdated in comparison to the G9) and finding I couldn't match the "feel" of my MX 5/700 regardless of what acceleration level I chose. I'd read the MS article on pointer ballistics - but there was nothing anywhere within Google's reach defining the details of SmoothMouse?Curve.

Dan Cox on October 15, 2007 03:57 PM

@Sean Patterson:
I set my mouse 4 button to Enter and mouse 5 button to Backspace, since my left hand is always around the Control-Z,X,C,V area. Enter is for those pesky MsgBox with the one OK buttons. Backspace is for Internet Explorer/Windows Explore "Back" function and normal editing.

Unforutnately, the other buttons on my mouse can't seem to be redefined. Is this Intellipoint's fault?

Mentioned by Tijmen Stam/IIVQ:
"Also in linux, horizontal scrolling is done by scrolling (vertically) on the horizontal scrollbar"
I could have sworn you can do the same thing in windows. Testing out in Windows Explorer reveals that there is the same functionality. However, if there's a vertical scrollbar at the same time, then that takes precedence. Who decided that?

piyo on October 15, 2007 05:54 PM

> And about the scroll wheel

I will say that after using the finely tuned metal scroll wheels ( even in gear mode), it is very difficult to go back to the rubber ones. I feel like I'm scrolling through molasses.

> I have just this week been thinking about creating my own curve

Some of the mouse driver software will let you make fine adjustments to the acceleration, but I have yet to see any software that allows you to set up an acceleration curve per se.

> How did your testing fare using the MS and Logitech software along with the basic Windows settings?

I try very hard not to install additional mouse software, and stick with what's in the base OS. It's simpler that way. I find I almost never *need* the crazy additional features in the OEM mouse software drivers. However, as the settings for these mice are stored permanently in firmware, I did install the software once, used it set up the mouse to my preferences (DPI, LED color, things like that), then uninstalled it.

Jeff Atwood on October 15, 2007 06:23 PM

About Daniel's comment about the Wiimote above.

I recently acquired the Logitech MX Air for my living room media PC (really for using regular desktop apps on the same system) and I love it!

It took my 5 minutes to get used to it, it supports using it in "regular" mouse mode with quite high accuracy, its pixel accuracy in "air" mode blows the Wiimote out of the water and it looks good.

See: http://www.logitech.com/index.cfm/mice_pointers/mice/devices/3443&cl=us,en

Jacques Beaurain on October 15, 2007 07:13 PM

I've had an Evoluent Vertical Mouse for over a year. Actually, I have three: I alternate between a right-handed one and a left-handed one at work and have another right-handed one for home. This is the best nest of mice I've ever had.

The right one was a bit difficult to get used to since I had to retrain myself to hold the mouse the new way. With my left hand, this was not needed. My CTS symptoms have all but disappeared.

Mia on October 15, 2007 09:25 PM

Talking about mice...
Windows OS has an option "snap to"...to automatically move the mouse to the default button.
I use this feature, but sometimes I have a little problem: my intention is to click a certain button, but because a pop-up/dialog box/confirmation request window/etc appears just before I want to click, the mouse automatically moves to that window, so I click there even if not this was my plan. Do you know a way to set the OS to ignore the click on a window if this click comes too early for a human being to be able to see that window and to decide to click on that window. I mean, if a click comes after less that (let's say) 250 milisec the window appeared, that click is ignored.

George on October 16, 2007 06:01 AM

So, this in is contrast to the "Put the mouse down" article ? :)

AgntOrnage on October 16, 2007 07:14 AM

huh? any mouse works for me. Like BB King once said to a friend of mine: "if it has 6 strings I can play it".

John A. Davis on October 16, 2007 12:25 PM

Well, yeah, but I don't think BB would have been too happy with a Playskool toy guitar, either. Real artists require quality equipment.

Jeff Atwood on October 16, 2007 03:07 PM

I'm always in search of the perfect mouse, but I find so few. I've been with my Logitech MX1000 for awhile now and really like it - but the wirelessness kills me. It isn't the weight, it's the flaky reception the rf gets for some reason. I guess my keyboard try is below desk level and so if my desk gets messy, or my cat lies down too close to the receiver, all of a sudden things get jerky.

The problem is, I'm now addicted to the three thumb buttons. Mapped to a couple expose modes and my dashboard, it's reflexive. Sigh. The search continues.

felix on October 16, 2007 09:23 PM

What I've always wanted to see was either a mouse or a keyboard with an integrated mini-joystick like those found on Playstation controllers, or even smaller.

There are times when I want precision (e.g., sniping in an FPS) and times when I want to be able to very quickly move with no precision (e.g., rotating a sluggish turret, where a mouse requires you repeatedly pick up the mouse and move it to get to the desired target).

I've tried using a joystick to the side of my mouse and switching to it quickly when I need to move in "turret mode", but that's also very tedious.

I'd love a small integrated joystick to fill this gap -- has anyone ever seen something like this?

Vance on October 17, 2007 08:07 AM

The G9 does have left/right mouse wheel action. I purchased after this review. It's hot.

Bob on October 18, 2007 10:08 PM

non-linear response scared me away from EPP option: i was afraid it would continuously vary the ratio of response to my speed giving me no linearity whatsoever making it so that i was unable to be the primary actor, only able to respond to whatever the instantaeous ratio was. your graphs, with two inflection points, makes me much more comfortable with the notion assuming they are accurate, but i still somewhat lean towards fixed response on principle.

then again my primary is a overclocked trackball set to twitch and my secondary is a fairly slow clit.

rektide on November 7, 2007 02:43 PM

Thank you for mentioning the bit about Macs, with the link to the other guy's article on Macs and mice. I've been playing around with a Mac here at work and couldn't figure out why the mouse was so crappy feeling compared to all of the Windows machines in the lab. Now I feel better knowing about the name and the concepts for this experience (the whole mouse acceleration ballistics thing).

Bean on November 15, 2007 09:02 AM

I'm using the Sidewinder right now, and I must say this has been the best mouse I've ever owned so far. It was on sell for $50 at Circuit City so I couldn't pass it up. The Sidewinder is great for my large hands. It's wide enough to accommodate every finger including the pinky. As far as I can tell the only major failing would be the lack of customization for all the buttons. I'm sure that some persons outside of Microsoft will eventually fix that problem soon enough.

Ivan on December 4, 2007 09:38 AM

This is a Good One...

You are hereby bookmarked!

I was searching for a good source for the definition of Mickey as in Computer Mouse and found this one!

Good Writing.

Keep it up.

Ra.

P.S. 13th O' October is my Birthday! Guess this is a goody present... Thank You! :-)

Ra. on March 7, 2008 05:16 PM

I do notice after I enable enhance pointer precision, I get smoother pointer from my Logitech Marble Mouse. However, enhance pointer precision not staying checked after each reboot. Every time I need to go to Control Panel to activate it after every PC reboot or start PC.
How do I enable this feature all the time.

Heidel on April 1, 2008 12:48 AM







(hear it spoken)


(no HTML)




Content (c) 2008 Jeff Atwood. Logo image used with permission of the author. (c) 1993 Steven C. McConnell. All Rights Reserved.