One of the quickest ways to increase your productivity on the computer is to go commando: stop using the mouse. When you stop relying on the mouse for everything, you're forced to learn the keyboard shortcuts. Jeremy Miller calls this the first step to coding faster. I agree.
Keyboard shortcuts are almost always more efficient than using the mouse to point and click your way around the computer – but you'll never learn them if you keep leaning on your trusty mouse to do all the work. Stop for a moment, resist taking the easy way out with the mouse, and force yourself to learn at least one new keyboard shortcut per day. Yes, it's a tiny bit of extra work. But it will pay off down the road: you'll spend less time mousing around, and more time getting things done.
I'm not anti-mouse by any means. I remember when mice were new; I'd never want to go back to the bad old days of keyboard-only interfaces. But most people I've observed using the computer these days rely almost exclusively on the mouse, to the detriment of their overall computer experience. Here are a few examples of how even the simplest keyboard shortcuts can make your daily routine easier:
That's just the tip of the iceberg. Most applications have tons of useful keyboard shortcuts; you just have to put down your mouse long enough to discover a few of them. It's a shame more applications don't go out of their way to make keyboard shortcuts more discoverable. At the very least, I'd like to see Office 2007 type behavior where, as you press the keyboard accelerator key, all the possible keyboard shortcuts "light up".
Unfortunately, navigating through websites is nearly impossible without a mouse, due to the highly mouse-centric nature of HTML. I've given up on trying. But it is possible, if you're a die-hard. Unless you enjoy pressing the tab key umpteen million times, you'll definitely want to check out Jon Galloway's mouseless computing recommendations, wherein he conquers the HTML keyboard challenge.
For best computing results, try to use your mouse and your keyboard to the fullest. But to do that, you've got to actively wean yourself off the mouse. Try going commando every now and then. It will be awkward and painful at first. You'll be sorely tempted to switch back to your old faithful mouse to get things done. Resist this urge! I guarantee whatever you're trying to do is possible – and ultimately quicker – if you persist with the keyboard.
"Unfortunately, navigating through websites is nearly impossible without a mouse, due to the highly mouse-centric nature of HTML. I've given up on trying."
You can navigate in Firefox by hitting "/" and then typing in the text of the link that you want to go to. It doesn't neatly solve the problem of more graphics-heavy interfaces, but when you're just surfing around pages with lots of text and a few links, /-typeahead-searching plus PageUp/PageDown is an improvement over the mouse.
Corey Porter on March 27, 2007 2:03 AMThe implied meaning of the image with the crossed-out mouse is 'Don't use mice branded Microsoft'. :)
nick on March 27, 2007 2:06 AMI can't wait for the day when the cursor follows my eye movements so I no longer need to waste my time switching between the keyboard and mouse. Hook up a camera that monitors where I'm looking and places the cursor there. Couple that with some basic voice commands and I'd be happy to get rid of my mouse.
Kevin Taylor on March 27, 2007 2:09 AMcoding with a mouse considered harmful =o)
http://ebersys.blogspot.com/2007/03/programming-with-mouse-considered.html
BTW, Linux users-- try tilda. It pulls a terminal down from the top of the screen like the Quake2 console on a keypress. I have it configured to come down when I press F1. Then you can run programs maximized (no more stupid window micromanagement) but still have a terminal handy for any quick purpose.
And OSX users get the same with Visor. Very cool stuff. And there's also a dashboard terminal (also Visor's much better) so you can have 2 different terminals available at any time on fast-access shortcuts
You can navigate in Firefox by hitting "/" and then typing in the text of the link that you want to go to
Or you enable typeahead and you don't even need to hit "/" ;)
Masklinn on March 27, 2007 2:11 AMI picked up the habit of keeping my left hand on the 'board and my right on the mouse from one of the best photoshop guys I've seen. This way, you always have access to whichever method is fastest.
max cascone on March 27, 2007 2:12 AMTest subjects consistently report that keyboarding is faster than mousing, but the stopwatch consistently proves mousing is faster than keyboarding.
I have no doubt that for *certain activities* the mouse is faster. The problem with Tog's statement is that he doesn't qualify it at all.
HTML is a fine example of a UI that's much faster to use with a mouse. Navigating HTML via keyboard, even with the Firefox plugins that make it easier, is still quite painful.
But there's just no way you can tell me that this:
1. Move the mouse to the username field.
2. Click the mouse button.
3. Type a username.
4. Move the mouse to the password field.
5. Click the mouse button.
6. Type a password.
7. Move the mouse to the login button.
8. Click the mouse button.
is faster than this:
1. Type a username.
2. Press the Tab key.
3. Type a password.
4. Press the Enter key.
It's un-possible!
navigate in Firefox by hitting "/" and then typing in the text of the link that you want to go to
That's not really navigation, it's incremental search. It is admittedly a fine line, but not quite the same thing. Try "finding" an image you need to click on, for example.
Jeff Atwood on March 27, 2007 2:15 AMTotally. I work with developers that use the mouse with toolbar buttons to step through code in the VS debugger. It absolutely pains me to watch it.
My favorite feature of Vista is the integrated search in the Start Menu, just because it makes it so much easier to launch apps using only the keyboard.
Kevin Dente on March 27, 2007 2:19 AMYou didn't read the Apple study. I went through it rather closely a while back, and from what I remember it has nothing to do with the actual speed of command execution - you're absolutely right, you can always put commands in faster with the keyboard - and everything to do with leaving your mind free to attempt higher thought. I like to think of it in terms of RAM - when clicking with a mouse, you're just clicking. You're not thinking, "Hm. Is paste-just-formats ctrlshftp or ctrlshftaltp." You're thinking about whether the equation you're pasting is going to apply to the fifteen cells on your left. So your RAM isn't loading a whole bunch of (say) CISC operations. It's running a smooth UI you don't need to think much about.
So for mundane tasks you consistently repeat, you're completely right. Stop using the mouse and you will get faster. But if you're talking about memorizing every single key combo in the interface, well, that tends towards extremely specified knowledge. Which can speed you up, but can also limit you when choosing the next tool...
There's one particular co-worker of mine who claims to know every little trick and shortcut there is to know for working with Office. He might. But when you look at things he has actually attempted to accomplish, well, the results are not as effective as they should be. Know anyone like this?
Dylan Brams on March 27, 2007 2:25 AMYou know, I've been keyboarding around for a long time, now... but there is a danger: whenever an application forces itself to the fore and throws a message box with a dismiss button automatically selected. I hate dismissing those automatically. It's a lot of why I detest the MessageBox in general... Just a few simple measures... a few changes at the API level... and we'd never have the problem again...
Anyhow, back on topic: I didn't really start falling back in love with Mac OS until X came along and started letting me keyboard my way through. Now I use XP for the majority of my work, but I still hop into OS X for funsies every now and again. It's not a chore like it used to be.
Jae on March 27, 2007 2:26 AM
"It's un-possible!"
This is the mark of distinction between real engineers and psuedo-engineers.
Real engineers rely on science, and make their decisions based on science.
Pseduo-engineers try to emulate what they think makes real engineers real, and spread *opinion* based on logic such as "there's just no way you can tell me that" and "It's un-possible!"
Further, productivity is not measured in speed of "coding". Unless you're a monkey implementing pre-designed features without any creativity, speed of entering lines of code is the least factor for your productivity.
Are you a typist or an engineer? Are you a coder or a programmer?
If you are a VS.NET user, you can enable tooltips for menus that show the keyboard shortcut to the menu item.
Tools Customize... check "Show shortcut keys in ScreenTips"
Now, when I find myself needing to dig in the menu for a command, I make a point of learning the keyboard shortcut instead. Shift-Alt-Enter ftw!
Susan Warren on March 27, 2007 2:29 AMIt's easy to demonstrate the truth of Tog's report, which Ben pointed out. In fact, I often do this when I am helping someone out, and they are at the keyboard. I will use their mouse to highlight individual characters (and sometimes words) from adjacent lines/applications and right click (because I'm a power-mouse user, and don't need to travel up to the menu bar, which is a remnant of the days of keyboards) and choose Copy. Then I move the mouse to the destination window, right-click again (it's really easy) and choose paste. Usually by the fifth character, the person I'm helping says I am just moving too fast to keep up, and asks me to please use their keyboard, so I will be slow enough they will understand what I'm doing. It's great fun and helps in reductio ad absurdum contexts, too!
--dang
Unix developers have been doing it this way since the beginning.
mike on March 27, 2007 2:39 AMThought I'd add my personal favorite for any coders using VS. If you use the General Development Settings in VS2005, CTRL+i does an incremental search (it searches as you type one character at a time), and if it doesn't get what you want the first time, press CTRL+i again and it'll search for the next instance of it. If later on you want to search for the same thing, pressing CTRL+i twice will automatically search for the last thing you searched for.
I use it all the time.
Ari Roth on March 27, 2007 2:41 AMNot all appls follow a standrd keyboard shortcuts. The most evil one, I think, is ctrl+y. Mordern appls redo while many oldies delete the current line!
I prefer the Eclipse way. You can choose your keyboard shortcuts.
Jay and Dylan, you seem to see this entry as disavowing the mouse. That's not my intent. I want to see people balance their use of the mouse with use of the keyboard, too.
when clicking with a mouse, you're just clicking. You're not thinking
Really? So when you mouse over something you know *exactly* what that thing is going to do before you click on it? Or maybe you mean thinking in terms of "which mouse button do I click" versus "which of these 104 keys do I press", but even Raskin himself admits the one-button mouse was a huge mistake in retrospect.
speed of entering lines of code is the least factor for your productivity
Well, obviously if someone is typing "All work and no play makes Jack a dull boy" into an editor at 200 wpm, that isn't getting us anywhere. *Yes*, we are all typists as well as programmers. The faster you make your mistakes, the quicker you can correct them.
Speed and efficiency aren't the only factors, but they're still important. Consider speed of iteration..
http://www.codinghorror.com/blog/archives/000788.html
Jeff Atwood on March 27, 2007 2:58 AMfor VS.NET users - Visual C# 2005 Keyboard Shortcut Reference Poster
Unfortunately, using keyboard shortcuts can be _literally_ painful. Keep in mind the small number of us that are genetically doomed to suffer through keyboard pain when using what I call "the claw". Any two key combo done on the same hand will send incredible pain into my wrist. Well, in all honesty, the first one is fine, but after about 10 cycles of ctrl+c and ctrl+v, I'm screaming for my mouse (or my reprogrammable gamepad). When I need to do a two key press, I have to hold down the meta key with one hand and then press the key with the other hand, loosing the benefit of keeping one hand on the mouse.
It may be hard to believe, because it doesn't seem that hard, but repetative stress syndrome is a real thing.
The only reason I bring this up is that I've heard nerds mocking people for not using keyboard shortcuts. Not that anyone really cares what obnoxious nerds do, say, or think. I just like putting them in their place.
You wouldn't make fun of someone who used a crutch to walk (or would you?)
Daniel D on March 27, 2007 3:16 AMJeff spake thusly:
Try "finding" an image you need to click on, for example.
If the page's author used proper /alt/ (?) tags, then you just have to mouse over the image...oh. ;^)
Tarkin on March 27, 2007 3:16 AMInstead of using Internet Explorer or FireFox, use Lynx -- the text based web browers -- for browsing (http://lynx.browser.org/).
I don't know what the current state of development is, and it doesn't work with a lot of the websites. But, one of the nice features was the way you could quickly zero down to a particular part of a webpage without tabbing through the whole thing. It was great for filling in forms.
I still use VIM as my editor of choice for development. I have yet found another editor that's faster. Version 7 does syntax highlighting and smart syntax indenting. Plus, VIM uses regular expressions in its find and replace function. What more could you want?
David on March 27, 2007 3:24 AMAnother obstruction to productivity just as big as ONLY using a mouse is a qwerty keyboard. ...although a switch to dvorak is somewhat more painful than learning the basic keyboard shortcuts.
Brendan on March 27, 2007 3:38 AMYou wouldn't make fun of someone who used a crutch to walk (or would you?)
No, but it's sort of amusing since Jon moved to the keyboard precisely because the *mouse* was causing him RSI pain.
http://weblogs.asp.net/jgalloway/archive/2006/06/14/Mouseless-Computing.aspx
And voice interfaces will make us hoarse. I guess you can't win.
Jeff Atwood on March 27, 2007 3:46 AMGo vim. I'm 5x more productive than in VS. I've created a script that'll even do my laundry. It's pretty gnarly. out.
joshua on March 27, 2007 3:53 AMMouseless browsing is very well possible on most websites when using the Opera webbrowser. It has 'spatial navigation', this means that you can focus links and form elements by holding Shift and pressing the arrow keys. Opera then finds the next focusable item in the arrow direction. Not as fast as using the mouse, but much more usable than the endless Tab parade.
Opera uses the Tab key only to move focus between form elements - this makes it much easier to navigate forms that contain lots of links with the keyboard. Like, for example, a webmail interface with checkboxes for each message.
Rijk on March 27, 2007 4:05 AMI'm not a programmer, but as a tester I've looked up certain keyboard shortcuts in order to make my life easier since I test web applications that require a lot opening/closing browser windows and a lot of logging back in and copying username/passwords from another program.
Sarah on March 27, 2007 4:16 AMA friend has shown me some mouseless software that makes the life easier.
For example the Conkeror extension to/modification of Firefox. I think its the most elegant way to navigate a website without the mouse. Every link on the page gets a little number you just type the number and the browser brings you there. Textfields and buttons also gets a number so its easy to get to them too. (get it at http://conkeror.mozdev.org/).
Also Emacs and Ratpoison can make the day a lot easier. There is simply no need to use the mouse when you use these.
At the end of the day it's just an interface mechanism. I'm all for agile physical interface mechanisms - but at the same time - the number one problem in software development is poorly thought out code spew. I have seen too many poor programmer's proud of their ability to pour out mindless code at mind-numbing rates.
Even though the question of optimized physical interfaces is fun in itself; I have never seen a situation where keystrokes over mice have slowed down/sped up the time needed to hit a milestone. Programmers could also learn touch-typing, but this wouldn't help them get their job done any faster.
The basic point is that thinking and reading code are what good programmers spend most of their time doing. If a programmer is creating several hundred new lines of code each day this is generally way too much.
Any time a programmer is proud of the sheer mass of code they have written you can be sure they have completely missed the point of programming altogether. And any belief that physical interface mechanisms are helping get your job done faster as a programmer is probably equally unsound.
Programming is one area where less is very often more.
For all of you that like using the keyboard, checkout Launchy (www.launchy.net). It lets you pick a directory to index (typically your start menu) and then you can press alt+space and type something in and it will search for it (as you type) and you press enter to launch. It's open source, too.
amazon10x on March 27, 2007 5:09 AMThat's nothing, they do it on tv shows on movies all the time. Ever watched CSI ?
- "could you zoom in on that part of the photograph ?"
- "sure."
(clickety click)
- "there."
Konqueror browser has a nice feature called Access Keys for keyboard navigation of websites. If you press and release ctrl without any other keys the first 36 links and form elements on the page get a small rectangle with a letter or a number displayed beside it. When corresponding key is clicked that element receives a click event. (see http://www.flickr.com/photos/pip/81113206/ for a screenshot) It could use some improvements in both the usability and eye-candy department, especially for the sites that try to fit the sitemap on the sidebar, but it's actually quite nice to use.
(This post is brought to you by the letter P)
Ants Aasma on March 27, 2007 5:38 AMVery interesting....and I use commando tactics all the time. However, for web sites thats quite annoying.
For instance, try going to "October 2005" in your archive when you first load your site.
Now thats a lot of tabbing. If only the Tab "boundary" was clearer then maybe it would be easier to just hold down tab until you see it go to some place.
Also if you want to go Navy Seal - Black Ops, try turning your monitor off and running a screen reading software like Jaws. NOW THATS TRULY HARDCORE!!! (I used it a lot for research and I liked it so much I would use it for reading text at a really fast speed).
A company called Humanized makes a great program for Windows that makes working without a mouse easier: http://www.humanized.com
It works a little like Quicksilver, but it's a lot more, too.
Stephen on March 27, 2007 6:41 AM
Leaving the mouse/keyboard argument alone for a while (Plan 9 lovers also trot out the Apple study cited above, and given the programming interface in Plan 9/Inferno (Acme) was designed around a three-button mouse, it's worth checking out if you're curious to see a completely mouse-driven programming interface).
I find a Wacom pen interface to be much faster than a mouse -- the tablet maps well to a widescreen monitor, so there's a very strong physical association between position with the pen and position with the cursor. You can hold it in your hand (the pen, not the tablet) while you type some keys, so hybrid tasks are easier.
Therac-25 on March 27, 2007 6:45 AMSuch a pity Web pages are absolutely not sutable for mouseless browsing. I've planned once a plugin for the browser, which would associate each link with a number, let's say after pressing a special magic key. Like Win+G -- all links gain numbers -- you type the number. Alas, it's still a dream. Maybe anybody else can make it?
MaS on March 27, 2007 6:48 AM@MaS:
https://addons.mozilla.org/en-US/firefox/addon/1341
https://addons.mozilla.org/en-US/firefox/addon/2317
(Someone already has....)
Therac-25 on March 27, 2007 7:02 AMI second the ratpoison comment. It's a great wm. That plus gnu screen and vim results in very little mouse usage. The only things I use it are for using my browser and my mail reader (although I've been meaning to get around to using mutt)
E on March 27, 2007 7:02 AMOops! Should have read all the article first and check the links. Anyway, no such plugins for Maxthon yet AFIAK.
MaS on March 27, 2007 7:04 AMIn firefox you can hit your ' key (the single quote) to only search through the links on the page.
Damien on March 27, 2007 7:09 AMAlso important is touch typing. I've been coding for about 8 years now, and only learned to touch type last year (after several false starts). While I've seen dramatic improvements in raw productivity, it's the less tangible benefits that have surprised me.
I find I'm more likely to learn and use the keyboard shortcuts discussed here. My ergonomics are better. I feel more comfortable with lightweight, keyboard-centric text editors. I am much quicker in a terminal now which I find more productive than gui based shells (particularly on unix/cygwin).
My coding has improved too; cumbersome things like documenting and unit testing your code become less of a burden. I learn faster because I can prototype code quickly and feel out language features. Interactive shells like irb become a playground where you can introspect the code at close to thinking speed.
cheers
Tim
That's the thing about searching for something, every program has a different way of doing it. A few possibilities: Ctrl-F, Alt-F, Ctrl-E, / (slash), ' (single quote).
That being said, I'm all for keyboard shortcuts, however, I hate the "default input" mode where you have to use key modifiers like the Control, Alt, Windows, Meta, Alt-Lang, et cetera to do extra functions. I would rather have input be more modal like it is in vi. Modal keyboard interfaces are going to be faster still than non-modal key modifier based interfaces.
Whoops, I forgot my main point. I was going to suggest a keyboard like this one:
http://www.cdw.com/shop/products/default.aspx?EDC=461017
It is a desktop keyboard based on the Thinkpad notebook keyboards, so it has the Trackpoint thing in the middle. If you haven't used one lately, there have been a couple of improvements. When you hold the middle mouse button (down by your thumb) it causes the track pointer to go into a scroll mode that you can use to scroll around documents.
Brendan Dowling on March 27, 2007 7:24 AMBrendan Dowling wrote:
I hate the "default input" mode where you have to use key
modifiers like the Control, Alt, Windows, Meta, Alt-Lang, et
cetera to do extra functions.
Agree 100%. That's why I loved XTreeGold. C = copy, etc.
MaS on March 27, 2007 7:28 AMI use the keyboard for almost anything, but two things consistantly bite me:
* In Windows Explorer, there is no keyboard shortcut for New Folder.
* In MacOS, Apple-Q is quit, and Apple-W is close a window. You have no idea how many times I've accidentally quit an application trying to close just one window of it.
In firefox, there is actually a better search key over "/" if you're looking for navigable links. You can use the "'" key and firefox will do an incremental search only for anchor links. When it's highlighted, you can just hit enter to navigate it.
This doesn't solve the problem that Jeff points out for images that you want to click, but it solves 80% of the links that I want to click on.
With either search type, you can use cmd-G to find the next occurrence of it's type (on OSX, I'm sure it's probably alt-G or ctl-G on windows/unix) and cmd-shift-G to do a reverse search.
cmd-1 through cmd-9 can also be used to select different tabs (this works in a number of other programs besides firefox as well).
Ted Naleid on March 27, 2007 8:55 AMIf you switch to the Dvorak keyboard layout, Apple-Q and Apple-W end up on separate hands. So, just learn to type all over again and your problem is solved!
Jerry Kindall on March 27, 2007 9:09 AM@ Ben Hollis
For a new folder in windows explorer you can do alt + F, alt + W, alt + F and it will create a new folder. (this is assuming no file is highlighted)
Josh on March 27, 2007 9:19 AMThe pathetic fact is that every other application uses different shortcuts for the same functionality.
What do you guys have been countering for getting a "Find" in different applications? I've a few:
Ctrl+F
Ctrl+E
Ctrl+L
F3
F5
F12
It's annoying when I hit Ctrl+F and I get an email to be forwarded in Outlook. What a shame.
Kevin Lee on March 27, 2007 9:35 AMI must agree that VIM is amazing, and you'll never touch another fancy-pants IDE once you've gotten over the horrible learning curve.
But the best VIM tip ever has nothing to do with VIM:
http://www.vim.org/tips/tip.php?tip_id=75
The caps lock key is the biggest waste ever of keyboard real estate, and re-mapping it to CTRL is almost as big a leap in productivity as giving up your mouse.
Dan on March 27, 2007 9:55 AMIn Windows Explorer, there is no keyboard shortcut for New Folder
Alt+F, W, F? Or use the right-click equivalent menu (ctrl+f10) key.
Jeff Atwood on March 27, 2007 10:12 AMStill waiting for that eye-controlled computer. Until I get an eye cramp or blink at the wrong time or something. Maybe a brain-controlled computer? Then what happens when my thoughts stray, as they inevitably do? *sigh* Can't win for trying.
Jae on March 27, 2007 10:31 AMIs it possible to navigate through different links in blog posts using only keyboard?
Harharan Ragunathan on March 27, 2007 11:05 AMA great example of software that uses the "light up shortcuts" is Inkscape: http://www.inkscape.org/
What an awesome piece of UI...
Edward Ocampo-Gooding on March 27, 2007 11:08 AMJeff, Opera has a tutorial dedicated to those who'd like to browse without a mouse.
http://www.opera.com/support/tutorials/nomouse/
Many people are reluctant to try Opera though. If it had AdBlock, it would be perfect.
dfs on March 27, 2007 11:14 AMI definitely don't recommend going commando. Using just a handful of shortcuts is enough to boost productivity by a huge margin. It's the usual Pareto Principle. If you try to remember a lot more than these, you are entering the region of diminishing return: allocating your precious memory for shortcuts infrequently used.
This is my policy for choosing shortcuts:
- Used very frequently (obvious)
- Consistent on most platforms you use
- Consistent on most applications you use
- Easy to remember (no more than 2-key combination)
- No need to remember shortcuts for tasks that immediately requires you to use the mouse anyway.
For me, remembering about 20 shortcuts is enough (did you say I need memory upgrade?) At the top of the list are these generic shortcuts:
ctrl-z undo
ctrl-x cut
ctrl-c copy
ctrl-v paste
ctrl-a select all
ctrl-f find
Cheers,
From Ben, ages ago:
* Test subjects consistently report that keyboarding is faster than mousing.
* The stopwatch consistently proves mousing is faster than keyboarding."
Mousing may "be" faster. Although, I'm skeptical about what the tasks were, I'll concede that mousing is probably faster for selecting text unless you type 80+wpm. However, "feeling" faster isn't useless, particularly when you are storing large chunks of some mental model in your head(like maybe a program). I'd bet that CONSTANTLY solving visual search tasks induces enough of a cognitive load to muck with serious programming tasks.
Alex Fairley on March 27, 2007 12:04 PMIn my house, "going commando" means doing with out underwear.
Me: You do any laundry this weekend?
Wife: No, sorry. Didn't get to it.
Me: No, problem. I'll just go commando.
Tim Elhajj on March 27, 2007 1:19 PMThe best key to use for shortcuts are the F keys, and only a few programs actually use them. Only one key required. I wish that F1 wasn't always help, how many times have you pressed that by mistake? Generally, I would prefer that the first few F keys change what window or panel or dialog or field has focus, making them quick replacements for the mouse. Then it should be the most commonly typed (not neccesarily the most "important") actions.
One problem is that the range of keyboard shortcuts is pretty limited these days. Windows itself has taken up many of the ALT keys, and some of the F keys.
I've also set up some of those keys I never use (the windows key, right-ctrl, insert, home, end, scroll lock, printscrn/sysreq, pause/break) to do basic window management stuff like cycle the windows, maximize, close etc. faster than the normal key combinations, and so I can also remap the F keys to do more common application actions.
If you use Linux, try out the "ion" window manager: http://modeemi.fi/~tuomov/ion/ . (There are also a few others.)
"Lighting up" shortcut keys is an excellent idea, and really should be built in, requiring no extra programmer effort to enable.
Reed
BTW, Linux users-- try tilda. It pulls a terminal down from the top of the screen like the Quake2 console on a keypress. I have it configured to come down when I press F1. Then you can run programs maximized (no more stupid window micromanagement) but still have a terminal handy for any quick purpose.
http://tilda.sourceforge.net or apt-get install tilda. There's also a similar program based on KDE libraries instead of gnome libraries, that one might have a few extra features too.
Reed on March 27, 2007 1:37 PMAhem... http://www.asktog.com/TOI/toi06KeyboardVMouse1.html
The money quote:
"We’ve done a cool $50 million of R D on the Apple Human Interface. We discovered, among other things, two pertinent facts:
* Test subjects consistently report that keyboarding is faster than mousing.
* The stopwatch consistently proves mousing is faster than keyboarding."
Esc, cancel whatever... Why don't programmers use this key for cancel?
It was cancel before the mouse and hopefully it will be cancel after the mouse.
rabid wolverine on March 27, 2007 1:49 PM"[...]If you try to remember a lot more than these, you are entering the region of diminishing return: allocating your precious memory for shortcuts infrequently used. "
You shouldn't try to learn a bunch of shortcuts which are likely to be interesting at once and then try to remember those shortcuts later. Instead you should use shortcut for functionalities that you actually use a lot and use those shortcuts until you don't even have to use your brain when using the functionalities.
I was surprised when I read the article basic textbox shortcuts http://www.codinghorror.com/blog/archives/000563.html : I use most commands without realizing it!
If I have to select text from the beginning of the text to the cursor position i'll use the shortcut for it without even thinking about it but if someone would ask me how to do it I'd be unable to answer, maybe I'd say that I don't know if it exist!
Bram Moolenaar, the maker of vim, has a nice presentation about using keyboard/editors everyone should see: 7 Habits For Effective Text Editing 2.0
video : http://video.google.com/videoplay?docid=2538831956647446078
text version : http://www.moolenaar.net/habits.html
A sample :
"There are three basic steps:
1. While you are editing, keep an eye out for actions you repeat and/or spend quite a bit of time on.
2. Find out if there is an editor command that will do this action quicker. Read the documentation, ask a friend, or look at how others do this.
3. Train using the command. Do this until your fingers type it without thinking. "
It correlates well with the second advice from the book code complete : Think about your work. Don't just do something. Think about what you are doing and find a better way to accomplish it.
In fact, keyboard browsing HTML page work very well with the Mouseless Browsing extension for Firefox.
https://addons.mozilla.org/fr/firefox/addon/879
To my surprise, after a few minutes, I was even able to browse faster with the keyboard than the mouse.
sebsauvage on March 28, 2007 2:18 AM 1. Type a username.
2. Press the Tab key.
3. Type a password.
4. Press the Enter key.
I agree, keyboard short-cuts certainly make life easier... but are Tab and Enter keystrokes seriously considered "short-cuts"?
Even my mom uses Tab filling out forms!!
Kevin on March 28, 2007 2:19 AM@Seth Root,
That is an unqualified disaster of an interface. It might be entertaining as a game or a demo or a "Media Information Studies" term project, but it's bad for a whole pile of reasons as a real interface.
It combines the worst aspects of keyboard interfaces that have been discussed here (high level cognition, determination of context) with that of mouse interfaces (moving hand, precise motion, switching your motor skills to another mode), while managing to be brutally unforgiving in practice (oh, you didn't want to open that menu? too bad you moved the mouse there by accident). That doesn't even consider accessibility...
Therac-25 on March 28, 2007 2:26 AMJust a quick tip: for faster navigation in firefox, there's an easy extension called Hit-a-Hint (https://addons.mozilla.org/en-US/firefox/addon/1341).
Michel Grootjans on March 28, 2007 2:56 AMI'll give this a shot, as soon as I can, but for now my theory is that mouse+keyboard is faster and better than mouse-only, or keyboard-only.
The log-in example seems quite slow with a mouse-only approach, but I usually use both mouse and keyboard:
1. Move mouse to username textbox and click it, ONLY if the username box does not have focus by default;
2. type username;
3. tab to get to the password textbox;
4. type password;
5. tab to get to the 'login' button (sometimes redundant, e.g.: the 'login' button is the only button on the login form, for web application/sites).
I don't know.. I like the idea of going key-mmando (sorry, going commando brings to mind bad images for me) to see if I can learn new stuff and find better ways to do things I am currently doing with my mouse+keyboard combination, but in the end I think a more 'holistic' approach is the better answer.
F.O.R.
One of the quickest ways to feel more productive while actually being less productive is to stop using the mouse. Nuff said.
http://asktog.com/TOI/toi06KeyboardVMouse1.html
http://www.asktog.com/TOI/toi22KeyboardVMouse2.html
http://www.asktog.com/SunWorldColumns/S02KeyboardVMouse3.html
Brenden, whilst modal interfaces are faster for those who know how to use them, for novices and people who generaly use computers they are a pain. Take the modal Caps Lock key; most people I know hate it because half of their text ends up capitalised. Consider that a lot of people need to look at the keyboard to type, so aren't looking at the screen. By the time they've typed a sentance with the Control modifier accidently left on they've closed the document, not saved it and created 3 shortcuts on the desktop. Woops.
I personaly use the web with a combination of mouse and keyboard. To navigate, it's pretty much all the mouse (with gestures or context menus and whatnot). I only ever really use the keyboard to fill out forms. I find it much quicker (without masses of training, all of which would be ruined when I move from one browser at home with x feature to a browser at somewhere like college that doesn't have it) to use the mouse to navigate.
[ICR] on March 28, 2007 3:27 AMIt may be hard to believe, because it doesn't seem that hard, but repetative stress syndrome is a real thing.
Actually, using the *mouse* causes me repetitive stress pain. Something about how my fingers hover over the buttons.
I prefer to alternate mousing with using keyboard shortcuts for relief. Programs should give you the choice.
Phil M on March 28, 2007 3:54 AMHere's the granddaddy of Dvorak-debunking articles, that all the rest quote:
http://wwwpub.utdallas.edu/~liebowit/keys1.html
You can see that, whatever issue one may take in my use of "bean-counters" and "haytuhs", my specific characterizations are correct. It credits Dvorak with being at least 2% faster (the smallest result from several studies cited); it doesn't address comfort whatsoever; their conclusion that Dvorak isn't superior stems from considering the only relevant issue to be whether it's sufficiently superior for a business to recoup an investment in retraining its staff.
"It's completely deniable! My fingers and hands don't "travel" at all on my QWERTY keyboard"
One wonders how you imagine typing occurs without the fingers traveling. Here's a Mac program to facilitate calculating the difference:
http://www.integrity.com/homes/tomandkaren/Keymileage/
The portion of my statement I was submitting as undeniable is the greater finger travel required with QWERTY. It's well-established, but, as you demonstrate, it's not actually undeniable, if one is sufficiently creative in one's denial.
That additional finger travel would engender additional strain seems inescapable, but, as I said, I don't have evidence. It's conjecture. My own experience constitutes anecdotal evidence; I submitted it anecdotally.
"If QWERTY really is so much more uncomfortable and injury-prone than Dvorak, why does almost nobody use it?"
I said that it "probably" caused more hand strain and "quite possibly" more injury. I said explicitly that there isn't hard evidence. Your straw man doesn't resemble what I actually said.
There are many, many things we do in daily life for which there are alternatives that engender less strain. Most people, most of the time, can take the additional strain without noticeable effect, and never bother thinking about alternatives. I did a decade of QWERTY typing without feeling strain. If it weren't for a lot of other bigger things I was doing wrong, that might well have continued to be the case.
Ubiquity is self-maintaining. In popular thought, learning to type means only learning to type QWERTY. Most people are never exposed to a keyboard labeled in Dvorak (I've never had one); no one would want to learn to type on a mislabeled keyboard. And once one has learned to touch-type, it would take a dramatic reason to consider re-learning.
"What was your typing speed on QWERTY? Were you ever really trained on it?"
Somewhere around 110 wpm. I took a typing course in high school, and had correct form. I worked my way through college as a typesetter, much of which work was straight typing, so I had plenty of practice.
"Did you ever injure yourself on it?"
I had a debilitating repetitive stress injury that left me in non-stop pain from fingertip to shoulder in both arms for months. A dozen doctors told me I'd never work 40 hours a week at a computer job again, and that I'd be substantially impaired for the rest of my life. I've proved them wrong.
Switching from QWERTY to Dvorak was one of very many changes I made in my recovery. I absolutely do not claim that it is discretely the case that QWERTY caused the injury, or that Dvorak cured me. I also absolutely believe it was one of many things that helped. Not the biggest, almost certainly not sufficient to have made the difference between pain and its absence, but something that helped.
"Do you know anybody else who was injured, who then switched to Dvorak and reported being fine?"
I know several people with stories like mine, in which switching to Dvorak was one of many changes made while recovering from injury. All of them feel switching was helpful; I'd be very surprised if any of them ascribed primacy to it.
"Is it not remotely possible that the improvement in "comfort" is psychological?"
I used to be in non-stop pain. Now, I'm not. Is it remotely possible you'll believe me when I tell you that the difference isn't merely psychological?
We're on the same side that the question could and should be resolved by study and evidence. And, as we've both said, neither of us have it.
Zed on March 28, 2007 4:04 AM@ Jeff:
IBM makes (or used to make; not sure what has gone to Lenovo and what hasn’t) keyboards with a trackpoint. I’ve contemplated getting one… for those times when using the mouse is effective. It would mean not having to take any hand off the keyboard in order to operate the mouse. I was surprised at how precisely I could point with a good trackpoint (like the ones on modern Thinkpads) even without any practice.
@ Daniel D:
Any two key combo done on the same hand will send incredible pain into my wrist.
Use vim (or any vi clone you like). It’s an occasionally mentioned factoid in Emacs-vs-vi wars that all the major Emacs gurus suffer from RSI. The vi gurus, not so.
@ Ben LKM:
* Test subjects consistently report that keyboarding is faster than mousing.
* The stopwatch consistently proves mousing is faster than keyboarding.
That’s fine and dandy, but it simply doesn’t apply to all tasks.
For apps you only use rarely, the mouse is almost always faster, since you spend a lot more time in discovery/exploration mode, which is awkward to do with the keyboard.
If an app has good keyboard support and you’re proficient enough with it to have committed a large set of shortcuts to muscle memory, there’s no way someone with a mouse will beat you. This applies overwhelmingly to text editors. And yes, this is based on fact not conjecture. There are enough editor fanatics who have actually timed various tasks using the keyboard, mouse, or some combination thereof where applicable (primarily I know of Emacsians and vi-ers who’ve done so, unsurprisingly, but I bet there are BBEditors, Textmateys and maybe Ultraediters who have done the same).
Other tasks, like webbrowsing or image manipulation, are intrinsically pointing-heavy and therefore slow and awkward to operate with a keyboard, no matter what. I find I’m fastest in such a case if the app also offers lots of single-stroke shortcuts, particularly if they’re on keys on the left half of the keyboard. Then I can use my right hand to operate the mouse for pointing and selecting and my continue to use my left to interleave keyboard-based triggering of actions. That combination lets you can go dizzyingly fast.
In both cases the key generally seems to me to be single-stroke keyboard commands. (Small wonder my weapon^W editor of choice is vim.) Or at least you should be able to keep the same modifier key(s) depressed – as in Emacs’ mostly-exclusive use of Ctrl. Having to sprawl fingers from modifier to modifier costs a lot of time. That might explain Tog’s results – from casual use, it seems to me that the gratuitous extra Cmd modifier requires more monkey-fingering while keyboarding on the Mac as compared to other systems. Although that might just be an impression; I haven’t used Macs enough to know for sure.
Aristotle Pagaltzis on March 28, 2007 4:36 AM@ [ICR]:
whilst modal interfaces are faster for those who know how to use them, for novices and people who generaly use computers they are a pain.
Sure, how is that topical? I didn’t think the subject was how to be more efficient as a casual user who can’t even type without looking at the keyboard. (There’s a pretty obvious drastic win available to such people, if they do want to become faster: *learn to type without looking at your hands*.)
Aristotle Pagaltzis on March 28, 2007 4:44 AMSeriously in regard to the tilda and ratpoison comments, you can't go wrong with ion3. It was designed for keyboard use. The scratchpad is so nice and intuitive for imitating tilda. Easily modified and just a great design.
OK admittedly there must be a line where you get maximum efficiency out of of using not just the keyboard or mouse but a combination of the two. Jeff loves using examples where you start off in the username field and the next field is the password field and the form has been setup for a default submit. NOT REAL WORLD FOR MOST PEOPLE!
Go to the Washing Mutual Bank website: www.wamu.com
Do you by default end up in the login form elements? NO
Number of TABs to get to the username: 19
Once in the username field I am able to type my username, press TAB, then my password and then press return.
So what's faster, pressing TAB 19 times or using my mouse.
OK Jeff - so now your saying let's not bring the web into it because of the way HTML works.
The fundamental shift that needs to occur is the way shortcuts are used. Primarily in the past they are a combination of some special key like CTRL or ALT with a 1 character such as an alphabetic or numeric key. However, some of the larger applications have a massive amount of options and features.
It would be insane to have to type something other then Ctrl+B for Bold. But what if Ctrl+B was already taken. Well is it any faster to type Ctrl+H (hotkey command) to get the app to wait for longer input and then type BLD and then return.
Hmmm what's the timing on that....
Ctrl+H BLD ENTER
or
Mouse to the B on the toolbar
Tough call there, there are some pretty fast mousers out there.
But what if that "Bold" option was in some sub-menu somewhere that wasn't easily accessible?
I say five me MEANINGFUL hotkey commands and I will use the keyboard. Make me remember weird shortcuts per application, I don't think so.
Tim on March 28, 2007 5:05 AMUpdate for those who use Maxthon and want to navigate with the mouse, there's such a plugin - LinkClicker:
http://forum.maxthon.com/index.php?showtopic=26380
Not brilliant, but better than nothing.
not a big deal, use the internet with Lynx, it will teach you a lot.
live tv on March 28, 2007 5:32 AMI like using the Z and X keys in Opera to go back and forward between pages. Makes sense, since it's for the left hand. Firefox uses Alt and the arrow keys. This makes it 2 a handed operation and slows down the navigation.
5h4m on March 28, 2007 5:59 AM"I can't wait for the day when the cursor follows my eye movements " Thank you for that. Now lookup "Nystagmus"
http://en.wikipedia.org/wiki/Nystagmus
for example. May that never be the default!
As for web browsing, what happened to accesskey?
http://www.w3.org/TR/WCAG10-HTML-TECHS/#link-accesskey
What browsers actually support this? I know of no way to find out if this is supported in a document in any of IE, Firefox or Opera.
As a result I have not bothered to provide it anything I have written.
And what if thee are more than 36 links in a document? I'd love to know how to support that properly.
well, I think, that apple-study is not correct.
Imo you cannot say "Mouse Keyboard by stopwatch, discussion dead."
At first, I think,, there are applications optimized for mouse usage and there are applications optimized for keyboard usage. As everyone states, try web browsing without a mouse. sick. Or try playing quake without a mouse. Mechwarrior2 anyone?
However, take a look at those hardcore-editors. vi and emacs. Those are optimized for keyboard usage.
I use vim very much myself and I do NOT think what key I need to do stuff. I know it. I do not need seconds to find the keys to kill that line and insert another one. thats just caps-dd-i. With caps = esc. At least, iirc. Usually I just do not know what I type really, I just type what I want to be in that code. Who cares what the precise commands look like?
However, I usually have major problems with my mouse, especially if it is about text-editing and a little squiggly editors. Usually it ends up with something like "ok, selected 2 characters too many, gotta get them off, darn, one short, ok, right again, ok, have it all, ctrl-c, scroll...".
Thus, I think there are not only keyboard-programs and mouse-programs, but also mouse-*people* and keyboard-*people*. As I said, I just know what I want and my fingers somehow tell vim what to do. Same goes for my brother, btw.
Btw: usually, vims shortcut fit my way of thinking way more than the mouse could ever do. I rather think "ok, take that 10 lines, paste them somewhere else and wrap a function around that." (refactoring) ok? what happens? 10ddGO, type function header. done. with a mouse, Id have to select all that 10 lines, carefully watching to get that 10 lines, scroll down, paste it, remove the cursor and type. Ok, maybe that is faster, but I dont really think so.
Thus, I think, there are 2 factors always.
The user: is he a mouse-user or a keyboard-user?
The program: is it optimized for mouse-usage or keyboard-usage?
And THEN you might say:
if you put a keyboard-user into a mouse-optimized program with several half-hearted shortcuts, a mouse-user might be faster in a keyboard-optimized program with some half-hearted mouse-support.
However, an experienced keyboard-user in a keyboard-optimized program will be faster.
Just for fun:
Today, at highschool, we had to apply a quick fix to some exercise. no problem, vim it, use regex to jump to problem, kill problematic line, insert solution, write, close vim.
After that, I asked some mouse-fanatic wether my fix whould do the job and all he said was "I dunno, that file was closed again when I just realized it was open already". ;)
The free market's choosing the "best" is a canard. Being charitable, the statement is a tautology; being uncharitable, it is not as universally correct as it sounds. Like any hill-climbing system that doesn't distrust what it finds, it suffers from picking local minima -- and getting stuck. QWERTY is one example.
Local minima aren't necessarily bad, they're just... locally minimal. Pick some other metrics (like, staying on topic, percentage of vowels on the home row, and degree of per-keypress alternation between use of left and right hand when typing English), and you may well find some other spot (probably over some enormous dirty great bump in your original graph) that minimizes them better.
Alt+F, W, F? Or use the right-click equivalent menu (ctrl+f10) key.
I use that all the time. The only nuisance is the (now extremely rare) event that I am on a Win9x machine. Then I think it is ALT+F, W, W (or something like that).
Eric D. Burdo on March 28, 2007 6:47 AMHow on Earth would NOT using your mouse enable you to figure out that control and enter will add www. and .com to the URL for you? I could stop using my mouse until the end of time and I would not figure out that out unless I read it somewhere.
But now that I have read it here... I'll start using it :)
Billkamm on March 28, 2007 6:50 AMI guess I should have researched this further. All this time, I thought I was the only one who believed using a keyboard is faster than using a mouse.
Long live vi!
Great article, I'm bookmarking it.
David H. on March 28, 2007 7:00 AMHonestly, I think it's just up to the individual... There are certain shortcuts that are almost instinctive. Others feel simply unnatural to do -- where I'd rather enter a Cheat Code into a game of Contra than save a couple mouse clicks in some apps...
I will admit, though, that I've needed to know the keyboard shortcuts in the past for troubleshooting and whatnot. Sometimes it was mandatory because a disgruntled hourly-employee had taken the mouse ;) But for coding... eh... to each their own, I suppose.
P.S.- I couldn't live without basic Tab+Enter control these days. I find myself loathing any interfaces that don't support such simplicities.
Kevin F. on March 28, 2007 7:14 AM@ hgs:
Both IE, Firefox and Opera support access keys (and I guess Safari and Konqueror as well). Press Shift+Esc in Opera 9 to see a list of links with access keys on a page (and then use the defined key to access them). In FF2, press Alt+Shift+key to activate the access key, in IE press Alt+key. Of course, the IE method (also in FF1.x) clashes with browser menu access, and both IE and FF don't offer a method out-of-the-box to discover the defined access keys, so you have to rely on the page describing them. All in all this is not the most succesful accessibilty help, no matter how the W3C promotes it.
Rijk on March 28, 2007 7:19 AMForget controlling the cursor with eyes What we need is a focus-follows-thought option in the window manager. :)
It's actually not all that science fiction as it sounds, there is lot's of work going on on brain-computer interfaces. On a rudimentary level it already works.
Ants Aasma on March 28, 2007 7:29 AMMy best keyboard speed trick is using "alt" to highlight a drop down menu, and then press the appropriate hotkeys for the menu option I want. So saving in most apps becomes alt,F,S. It speeds up ALL KINDS of operations in almost every application out there. I get more comments of "holy crap, what did you just do?" doing this trick than anything else. Plus, it's a sequence rather than a combo, so you don't get "claw pain" as someone mentioned earlier.
JayRF on March 28, 2007 7:49 AMSometimes a mouse just won't work.
Use a screen reader, close your eyes and you will soon feel the need to learn keyboard shortcuts. Thanks to a friend I had the opportunity to do just that. She needed to keyboard her way through documents, email as well as websites. I managed to learn a few shorts cuts from her. I believe she sees things better than most even though she has extreme vision loss. She is my inspiration.
Wendy on March 28, 2007 7:54 AMThat Dvorak keyboard layout looks pretty interesting, especially since it's free and easy to try out.
From http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard -
As of 2005, Barbara Blackburn is the fastest typist in the world, according to The Guinness Book of World Records. Using a Dvorak Simplified Keyboard, she has maintained 150 words per minute for 50 min, 170 word/min for shorter periods of time, and has been clocked at a peak speed of 212 word/min. Blackburn failed her typing class in high school, first encountered the Dvorak layout in 1938, quickly learned to achieve very high speeds, and occasionally toured giving speed-typing demonstrations during her secretarial career.
Jarrod on March 28, 2007 7:54 AMis there an alt-d equivalent on OS X?
Don't forget the space bar for page down while browsing, and shift - spacebar to page up
Nick on March 28, 2007 7:55 AMConspiracy trivia:
Typewriter is the longest word you can spell using only the top row of a qwerty keyboard.
Jarrod on March 28, 2007 7:59 AMThe alt-d equivalent on OS X is cmd-l. And for Firefox on Windows it's ctrl-l.
Rrd on March 28, 2007 8:15 AMThe problem with the tog site is that it doesn't list the specifics of the study, or I at least I couldn't find them. At one point he said they compared the speed of using the cursor to change all the e's to |'s using the keyboard and the mouse. This is a ridiculous test, because if you have an ounce of brain you would search and replace. If you do that a lot and have the shortcut well-learned enough to touch type it then using keyboard is faster, otherwise mouse over the menu. If the entire 50million dollars was spent on useless tests like this, the study is worthless.
david on March 28, 2007 8:16 AMFor games and general navigation I agree, but I am absolutely certain that if anything to do with input speed is slowing down your coding, you are just not thinking enough.
Refactoring (which you should probably be spending as much time on as coding) even works better with a mouse for the most part--as does any selection-based task,
This also goes for languages that let you save a few lines of code here or there. Not that I'm in any way in favor of redundancy, I just think that using default values and skipping declarations is going in the wrong direction.
Code needs to be 100% declarative. It should set out exactly what is going on, and the flow should be obvious (as opposed to things like C++ overloaded operators). It should read more like a book than some terse summary.
Browse through Sun's Java library classes sometime to see "Good code"--It's written to be understandable, it's simple and it's very obvious what is going on. Where the code may not be obvious the comments are.
"Unfortunately, navigating through websites is nearly impossible without a mouse"
Not so! Firefox has the "find as you type" feature (renamed in current version to "search for text when I start typing"). This feature is the only reason I still use firefox: The page loads, you see a link you want to activate, just start typing the first few letters of that link. It will find and place focus on that link - now hit enter.
You can navigate rapidly through web pages this way. Don't know what I'd do w/o it.
DudeNumber4 on March 28, 2007 8:57 AMI had a friend, Duane, that used to call me a 'mouse cripple' because I couldn't work without it.
Doug Karr on March 28, 2007 9:07 AM" "It's un-possible!"
This is the mark of distinction between real engineers and psuedo-engineers.
Real engineers rely on science, and make their decisions based on science...."
This burns me up. No, in this specific case (that Jeff described) Jeff is using common sense. You sir, are just being arrogant. A double blind peer reviewed scientific experiment is not required in all cases and may sometimes do nothing but cloud the issue and make scientists feel superior.
DudeNumber4 on March 28, 2007 9:10 AMI have to back up the comments about the Dvorak keyboard. I'm disappointed only two people have made it so far.
It's really hard at first, just like learning to type again, but very much worth it.
One problem: it makes using the mouse even harder. Keys under Dvorak are positioned so that you use a finger on your left hand then a finger on your right, alternating, as much as possible. If you're forced to type with one hand while keeping the mouse in the other (pretty rare, but it happens when I play online crosswords, which are all terribly designed) your left hand jumps from one side of the keyboard to the other all the time. A real pain. Also happens if I've got a cup in my hand.
Apparently there are Dvorak-type layouts optimised for either left- or right-hand usage also, which would be great for amputees.
One final problem: you'll eventually lose your qwerty skills which is inconvenient when you're forced to use someone else's machine. I could actually quite comfortably use both for quite a few years, but over the last couple I've finally lost my qwerty skills.
Magnum on March 28, 2007 9:18 AMThe comments to this entry are closed.
|
|
Traffic Stats |