Raam Dev » thoughts essays journal notes contact about subscribe rss

Posts Tagged: User Interfaces

Vimperator Plugin Causing Accidental Post Publishing

After several drafts on my new tech blog mysteriously appeared publicly as published, I discovered that the new WordPress keyboard shortcut for Publish is the same as the Previous Tab shortcut in Vimperator (the Firefox plugin that allows me to browse the web using only the keyboard). Regardless of what mode I’m in (Insert mode or Normal mode), pressing CTRL+P publishes the post and switches to the previous tab.

Zoomism: Navigate by Zooming

Zoomism allows you to navigate the site entirely by zooming. It’s actually really fun and works quite well — a lot more adventurous than scanning and clicking URLs on a page. The site is using Flash to make all this happen so obvious downsides exists (e.g., you cannot select text or easily save images), however I think there is real potential in this concept. I would love to have a tool that allowed me to generate a gigantic map of an entire website that I can explore by zooming!

Browsing the Web with only a Keyboard

The beauty and simplicity of the keyboard has always impressed me. As a kid, my Asian gaming friends taught me the importance of utilizing as much of the keyboard as possible (and the skill improvement was so great it often resulted in being accused of cheating). Many of the applications I use on a daily basis (which used to require a GUI) have been replaced by console-based, keyboard-only alternatives (in particular, instant messaging, email, IRC, and text editing). Each time I switched to a keyboard-only alternative, my productivity (and sanity) have improved immensely.

One application I thought would always require the assistance of my tailed friend was web browsing. While text-based browsers like Elinks and Lynx have made a fantastic effort, they simply don’t allow for the rich browsing experience provided by a full browser like Firefox. I had come to accept that maybe the future of keeping my hands in one place was lost to the ever-growing web-based world.

And then, randomly and entirely by chance, I discovered a way to browse the web using nothing but my keyboard: Vimperator, a Firefox plugin that turns the browser into a fully keyboard-accessible interface using vim bindings. It solves the problem of needing to click links and buttons beautifully. Simply pressing the letter f while in command-mode tags all visible links with a number. Typing that number clicks the link or button (you can also just start typing part of a word in the link and then press enter).

Firefox using the Vimperator plugin

It definitely takes some getting used to, but it is much faster than using a mouse! All the browser functionality is available through the keyboard, including tab management (I use tabs a lot). To open a new tab and type a URL, just press Esc to make sure you’re in command-mode and then type t google.com. To close a tab, press d (think “delete-tab”). If you decide to try Vimperator and you freak out when your menu and address bar disappears, press Esc to get into command-mode and then type :set guioptions+=mT and press Enter. The :help section is very useful for learning more.

My purist mentality has often made me wonder if I could live entirely on the command line, or if everything I currently do in a GUI could at least be done without a mouse. I think it’s more the latter than the former; it’s about efficiency. Even when I’m using a mouse with the GUI, I find myself constantly searching for keyboard shortcuts. The mouse just feels so alien for anything but artistic stuff (i.e., working with shapes, graphics, etc) and gaming. It feels like a crutch; like a cane for someone with a typing disability.

I’ve been using Vimperator for two days now and I have already made several important observations regarding my web browsing usage. Without the mouse, I don’t doodle. I don’t scroll up and down pages randomly looking at stuff or skipping and then rereading text, all of which waste valuable time. Instead, I’m browsing more efficiently and with more purpose. Another thing I noticed (now that my mouse usage has almost dropped in half) is that when I do reach for the mouse my hand actually feels uncomfortable.

If you’re a vim user, or you enjoy the command-line, give Vimperator a shot. You may find yourself very frustrated at first but try to stick with it for a few days and see how it changes your browsing habits. You may be in for a surprise.

A Realization that GUI Dependence can be Harmful

After an arduous three days without my laptop, I finally have it back in my possession. I managed to get by using an old Thinkpad running Linux, a Windows XP desktop, and a spare G4 Mac Mini running OS X (all three of which saw very, very little use while I had my MacBook Pro). Every bit of my email is stored server-side (IMAP) and any important files were accessible on a backup drive, so it was really only the computing environment that changed.

Despite only the environment changing however, I observed something interesting: I felt a lot less creative and even mentally (and perhaps even emotionally) handicapped without my laptop. It’s the first time I can remember feeling that way from something as simple as a piece of electronic machinery. I’m convinced it was the graphical user interface (GUI) I became attached to and, being someone who hates feeling attached or in any way dependent, the experience has encouraged me to continue moving towards console-based solutions for my daily computing needs.

Maintaining things on a remote console means the environment will stay the same regardless of the computer I’m using to connect. The “computing environment” essentially becomes the console window itself. Advantages to using console-based programs are numerous, that is once you get past the learning curve. But the same way a one-finger typist isn’t very productive until he learns to type, console-based apps won’t allow you to be productive until you become familiar and comfortable with the environment.

For all real-time communication (IRC, AIM, and Jabber) I’ve switched to using screen + irssi + BitlBee. Previously, I was using irssi for IRC and Adium for instant messaging. For email, I’ve been meaning to set up mutt for quite some time, but both the complexity and my daily reliance on email have caused me to procrastinate.

But I realized my console-migration doesn’t need to end with IRC, IM, and email. For example, when my coworker mentioned the idea of an IRC Twitter interface, I looked for one and discovered tircd, an IRC proxy to the Twitter API. This made me realize that even things like posting to my blog could be done through IRC with the right proxy (similar to the way I’m currently blogging from the command line). And if a particular IRC proxy does not exist, I can just as easily write one myself and share it with the community!

An Example of Bad HTML Form Usability

While recently reconfiguring a Netgear FVS-124G router I was astounded by the blatant misuse of HTML form elements. In the router configuration there was a list of services that were forwarded to various computers. (I would call it port forwarding but Netgear has its own way of doing things — another usability mistake.) The router was being configured for a new office so none of the existing dozen-or-so entries were valid and needed to be removed.

Bad Netgear Usability

Since the list used Radio Buttons (wrong) instead of Check Boxes (correct), I was only able to select a single entry at a time, delete it, click Continue on the following confirmation page, and then return to the list to start the process all over again. Sure, the Radio Buttons could be a way to prevent someone from accidentally deleting a whole selection, but that’s what confirmation boxes are for.

You’d think someone as big as Netgear would have gotten their act together by now and worked out some of these really silly usability issues. For that matter, they (along with Linksys) should do away with their interface all together and adopt DD-WRT!

Where in the world is Raam?

Join the Facebook Community

Raam Dev » thoughts essays journal notes contact about subscribe rss

Powered by WordPress and other Open Source Software
Uncopyright by Raam Dev