Tue, 26 Sep 2006

Mark X keyboard

I have a new version of the keyboard, which I built for EuroFoo and EuroOSCON. This keyboard is much sturdier than the predecessors. It's made from plywood, shapelock, a pair of metal hinges, and a battery box with a switch on it.

Fortunately this keyboard has a couple of mistakes in it. I'd like to make all my mistakes before I go to plastic molding. One mistake is that my fingers are too splayed outwards. It's just not comfortable. Another is that the keys aren't exactly beneath my fingers. And the worst is that the thumb position is parallel to the palm. It's quite clear to me that the thumb must be pointing at the fingers. The thumb must be open a good 3/4" to get the correct effect.

Next keyboard will have more of a hook over the palm. The current one needs pressure from the thumb to hold it in place. This gets tiring after a little while.

View from the bottom (Thumbnail) The hinges fold out for thumb and first knuckle (Thumbnail) View from the fingertips (Thumbnail) View from the bottom of the hand (Thumbnail)

Posted [16:27] [Filed in: chordite] [permalink] [Google for the title] [digg this]

Mon, 25 Sep 2006

Recognition versus Recollection

I originally posted this on Advogato on 4 Jun 2000. Advogato might be shut down, so I'm reposting it here.

Jim Gettys gave a keynote speech at Linux Expo, wherein he spoke of the need to support disabled users. He's quite right. We need to support them -- not out of any bleeding-heart concern for them. We need to support them because the interfaces that enable them to use computers *at all* enable us to make better use of them. A good interface is a good interface whether you can't see or can't hear or can't type or can do all of these. In particular, people who can't see have trouble with a GUI, and people who can't type have trouble with a command-line.

You may have noticed some tension between users of the command line and the GUI. There is a very simple explanation. The command line is based on recollection, and the GUI is based on recognition. This paper explains why each has its place, and explores ways in which they can be combined. We start by explaining how a "pure" version of each works, how they are combined in real life, and how we can use this perspective to find new avenues for exploration.

Contrasting the two

With a recollection interface, you must recall the correct next step (for example, to get a directory listing you must remember "ls"). With recognition, you have to recognize that what you are looking at is a listing of files. With recollection, you must supply the "-l" parameter to ls to get all information on files. With recognition, you have to recognize the "View" menu, and the "Details" entry underneath it.

Recognition is more approachable because it does not require much training. Recollection is more efficient because it wastes no time on the recognition search. As a consequence, class distinctions have been brought into the mix. Typically, new users prefer recognition because they can get more done. Experienced users prefer recollection because they can get more done.

These class distinctions are not firm, however, because new users are only new for a short period of time. Usage *is* training, and the more they use a recognition interface, the more they wish they had a recollection interface. Experienced users are not evenly trained, and in any case have to learn new software from time to time. They often wish they had a recognition interface, knowing the while that they'll soon wish they weren't forced to use it.

Recollection Interfaces

Exactly how does a recollection interface work? Actually, initially by recognition. The first step to recollection is to understand the current context. Most often in a recollection interface, only a small set of the possibilities is valid. In the Palm Pilot stroke interface, only some of the possible gestures are valid. Three of the gestures are prefix gestures that change the context.

Or consider the Unix command line. It typically starts with a verb followed by modifiers followed by nouns. The verb is distinguished from the nouns because it is the first word entered. In order for a user to accurately enter a verb, they must first recognize that the command line is empty.

So, in order to reduce the number of choices one must recollect, a recollection interface retains a context. A typical recollection interface will have a zero point -- a home position, along with a way to clear all context. The control-U character is often used in Unix to clear all characters currently being typed.

A recollection interface will always have a way to remove part of the input, or to clear back to a certain context. Input mistakes are an inevitable part of the human-machine interface. The command-line interface uses Back Space, the Palm pilot uses a left-moving stroke, a pie menu uses a "click in the middle of the pie".

Recognition Interfaces

Recognition interfaces are easier to learn because the possibilities are tabulated and categorized. The canonical recognition interface uses a hierarchical menu. Another form is a button bar. The advantage of a recognition interface is clear: the user need only recognize which command they desire.

One cost of a recognition interface is the need to scan through a large number of commands to locate the desired one. Commands are always grouped together by function to help reduce this cost.

Another cost of a recognition interface is the large amount of screen real-estate occupied by the interface. This problem may be addressed several ways. The items may be represented by small pictures of the function of the command. Since these pictures do not always invoke the right concept, they are sometimes accompanied by words which pop up when the mouse cursor hovers over the picture.

Entire groups of commands may be removed from the screen, only to reappear when the mouse cursor is clicked or hovers over a special area of the screen. A new set of commands are added, which expose the groups of commands. This is how a menu bar works. Sometimes the entire menu bar itself disappears.

But this creates another cost -- locating the hidden command. If a method is used to collapse some of the commands, then a command must be located in its collapsed location. This combines the difficulty of a recollection interface with a recognition interface.

Combining both interfaces

Each technique can and should borrow from the other. The solution to the shortcomings of each is to combine both approaches. It's necessary, though, to preserve the full virtues of both, and not produce a compromise.

GUIs often have a primitive, bastard-stepchild recollection interface. One may often press the two-key sequence "Alt-F O" to Open a File. The Alt modifier introduces the beginning of a command. Essentially it starts a very short command-line interface. However, it's only ever used to introduce the verb of the command. Little attention is paid to the nouns. For example, an advanced recollection system would allow one to type Alt-F O /etc/passwd <Enter>.

A command line interface could do something similar. The FO command would open a file, prompting the user for the name of the file. The F? command would list all the File commands, and simply ? would list all the types of commands.

The TOPS-10/Kermit/Cisco interface

An example of a very well-done recollection interface with recognition assist is the command interface first used in TOPS-10, later used in some implementations of the Kermit data transfer protocol, and currently available on Cisco's IOS. This interface has two magic characters which may be typed at any time: HT (tab) and question-mark. The tab character would complete the current item being entered, according to the current context. If entering a command, the command line would be consulted. If entering a filename, the list of files would be consulted. if a question-mark character is entered, the list of possibilities is printed.


Rarely do GUIs implement a recollection interface well. Rarely do command-line interfaces implement a recognition interface well. We can do better. We should do better.

Posted [16:06] [Filed in: opensource] [permalink] [Google for the title] [digg this]

Sun, 24 Sep 2006

Art? Or Craft?

I attended EuroFoo Camp and EuroOSCON last week in Brussels, Belgium. Had fun renewing friendships (Piers, Simon, Gerv, Kristijan Zimmer, Ewan, Zak, Suw, Rob, Simon Wardley), and making new ones (Debbie, Emily Zotto, Fabienne Serriere, Jim Purbrick (aka Babbage Linden), and Paul Hudson).

Had an interesting chat with Debbie on the flight from Brussels to JFK. She was wondering why her programmers work from 9 to 5 and don't personally invested in the products, whereas open source developers live, eat, and drink the code practically every waking moment. I speculate that it's similar to the difference between art and craft. You can craft a sweater, or you can create a piece of artwork in the form of a sweater.

I think that open source developers are artists, whereas closed source programmer bees are crafters. Both art and craft take talent, but art requires passion. There's plenty of passion among open sourcers.

UPDATE: tigert points out that Apple has been able to fire up such passion from its coders and designers, so the dividing line isn't between open and closed source.

Posted [00:30] [Filed in: opensource] [permalink] [Google for the title] [digg this]

Sat, 23 Sep 2006

The Tech Conference Show - MAKE Fest

Ewan Spence interviewed me on the Chordite for The Tech Conference Show - MAKE Fest.

Posted [12:26] [Filed in: chordite] [permalink] [Google for the title] [digg this]

Thu, 14 Sep 2006

Playing with the big boys

My Nokia 770 playing with the big boys at FOSSSL 2006 in Sri Lanka:
Nokia 770 holding its own (Thumbnail)

Posted [11:12] [Filed in: 770] [permalink] [Google for the title] [Tags , , ] [digg this]

Sun, 10 Sep 2006

Ride starting Sun Sep 10 16:10:06 2006

36.37 km 119322.53 feet 22.60 mi 9783.00 seconds 163.05 minutes 2.72 hours 8.32 mi/hr

Went out and back on the Rutland Trail. Surprised that there were so few people on the trail on such a beautiful day. I saw one couple on an ATV, a family on four ATVs, one other bicyclist (but close to Winthrop -- he didn't seem prepared to go any distance), and two walkers. Trail was nearly dry the entire way. Only two puddles with visible water.

Saw two date nails in ties used to make a bridge. Gonna pull 'em since they're facing upwards and going to get worn away eventually. The visible one was "30", which usually means 1930. That's one old tie! Of course, when the Rutland ceased operation in 1963 it was only 33 years old; a relatively new tie. It's been 43 years since the Rutland used that tie.

Posted [19:29] [Filed in: bicycling] [permalink] [Google for the title] [Tags , , ] [digg this]

Sat, 09 Sep 2006

Ride starting Fri Sep 8 13:13:23 2006

55.82 km 183142.20 feet 34.69 mi 12925.00 seconds 215.42 minutes 3.59 hours 9.66 mi/hr

This is part of my series on Riding the Rutland.

Longest ride this season for me: 35 miles. Felt like a wimp on the way back because I was riding into a 15 mph wind, and hit a bonk. Ouch. But the way out was simply marvelous, riding with the wind. Hit the Rutland railbed shortly after crossing into Clinton County. I rode all the way from Chateaugay because I wanted to make the ride longer (mistake), and because I wasn't sure quite where I could get on the railbed. There is practically nothing left of the railbed all the way from Chateaugay to the Clinton County border, because it ran so close to the highway. In many cases it ran straight through people's back yards. No way they would tolerate use of it as a trail. It could only have survived if somebody had bought it and preserved it as a trail, but nobody was doing that in 1963.

Going east from Chateaugay, the first point at which the railbed is still a right of way is at County Line Road. Unfortunately, it's also gated and posted no trespassing. I went to the next road, CR 9, and found it gated and posted on both sides. Got the owner's name going east, and went back to the convenience store at the corner of US 11. Called the owner, Richard Decoss. Too bad -- not home. I thought I'd ask the store clerk if she knew him. She was nonplussed because .... he's the owner of the store, Dick's Country Store and Music Oasis. and he was over in the other room. Asked him for permission and got it, no problem!

I was able to ride from there straight through to Churubusco. It's labelled as snowmobile trail 8C. In the hamlet, the railroad went through people's front yards, so they went to the effort of obliterating any trace of it. No problem since there's a road parallel to the railbed about 70' to the north. Hopped back on the railbed, which is now a full-fledged dirt road. It's used to get to a stone quarry which used to be rail-served. East of Clinton Mills, the railroad goes through a short (10') cut. Somebody is mining the stones from the edges of the cut, putting them on pallets and shrink-wrapping them.

The railroad heads due south at this point, continuing on through field, forest, and wetland. Lots of wetlands. Goes about 30' over a small creek on a fill. Good thing it was a fill and not a bridge, although .... I'll bet that if you dig down into the fill, you'll find that it was originally a wooden trestle. As the trestles got old, the railroads would build a culvert over the stream, and use dump cars to bury the trestle. Cheaper and less disruptive of railroad operations than building a new trestle.

At Bull Run Road, the other side of the road was posted "No ATVs", and was severely grassed-over. Somebody mows it; you can see that, but I think they're associated with the snowmobile club. I went in a little ways, since I wasn't riding an ATV, but the grass got too tall for me beyond Brandy Brook, and I could see that the railbed was brushed over beyond that. So I turned back. I took a look at Brandy Brook to see if the bridge abutments had any USGS bench marks, and found one on the north side of the west abutment.

Turned around and headed home. On the way, I ran into Ellenburg Depot to see if the southern end of that section was accessible. No hope. The depot itself is an active business strongly signed "No Trespassing. All Visitors Report to Office." It's likely that they're trying to discourage ATVers or snowmobilers from attempting to use the railbed. Other than the depot being an obvious depot (and on Station Road, to boot), there is no sign of the railroad. The highway crews took out the north abutment of the bridge over US11 and the Great Chazy River, but the south abutment remains as a beautiful cut stone structure.

I turned and went home, uphill and upwind. The rest of this posting comes from other research (automobile) trips.

The Rutland railbed is completely overgrown on the south side of the river. There is essentially no sign that a railroad ever went through the area all the way through Dannemora Crossing, Forest, Irona (although there are ruins of rail-served buildings there), Altona, and Woods Falls. Finally, in Mooers Forks you can see several rail-served buildings, and on the north side of town some snowmobilers and ATVers have been able to carve out a few miles of the railbed. It continues on to Mooers, where it becomes overgrown again. The bridge over the Great Chazy River at Twin Bridges is out, and somebody has used the railbed as their driveway. Very little of the railbed is open between Mooers and Rouses Point.

Posted [12:57] [Filed in: bicycling] [permalink] [Google for the title] [Tags , , ] [digg this]

Thu, 07 Sep 2006

Stop Claiming Stagnation!

I'd like every leftist who is claiming that the average American is no better off now than 30 years ago to please stop doing that. Or, at least, if they can't stop, I'd like them to stop saying it on the Internet. Because, if wages are really no better, then they can't (in principle at least) afford to use the Internet.

Of course, I believe no such thing .... but they do, and if they believe that they are telling the truth, then they should act on that basis and stop posting their drivel to my Internet.

Posted [03:15] [Filed in: economics] [permalink] [Google for the title] [digg this]

Mon, 04 Sep 2006

Economics in Six Minutes

I don't often merely link to other people's writings, but this one is a gem. Economics in Six Minutes. Definitely worth six minutes of your life.

Posted [09:16] [Filed in: economics] [permalink] [Google for the title] [digg this]

Sun, 03 Sep 2006

ATV trails in New York State

In order to understand the ATV issue, you have to keep two points in mind: first, that because ATVs destroy the trails they ride on, nobody wants to share trails with them. Second, that because ATVers have been paying into a dedicated trail fund, they deserve their own trails.

There should be no question that ATVs destroy their trails. I like to ride my mountain bike on old railroad beds. Both the Rutland Trail (Norwood and eastward) and the Rivergate Trail (Philadelphia and north and west) have some places which ATVs have turned into mudpits. I haven't heard any ATV riders admit to this, but the evidence is right there. Just ride along these trails and you'll see for yourself.

When ATVs have dedicated trails with a management plan, this isn't a big problem. The Rivergate Trail is managed by the Rivergate Wheelers ATV club. They have purchased fill, and rented equipment to position it. They have repaired and replaced bridges. The Tri-Town ATV club is newer, not as well organized, and the Rutland Trail shows it. Both these clubs are voluntary organizations, which is great! But the ability of these clubs to generate funding is suppressed by the ATV trail portion of the state ATV registration fee.

When ATVs ride off their own trails, they create problems. Landowners really resent it when they see their trails rutted by ATV wheels. Snowmobilers have many trails on private property, whose owners' permission they have because they ride on snow, and don't harm the trail. Hikers burst a vein if they're hiking along a trail, and ATV riders come blasting down the trail, making noise and leaving behind an exhaust smell. Mountain bikers don't want to have to ride through the trail mudholes that ATVs create. Their sense of being in the wilderness is dashed by the presence of a motor vehicle. Both of these groups are harmed by ATV travel on multi-use trails, and yet they have no negative effects on ATV travel.

There's public funding available for multi-use trails. This is not a solution for ATV riders because of the trail damage. Multi-use means horse riders, who require special bridges so as not to scare the horses. Multi-use means walkers, who travel at a vastly different speed than ATVs. Multi-use means bicyclists, who require a firm surface, not a mudhole. Mixing these uses is just asking for an accident. Nonetheless the Rutland Trail is receiving multi-use funding this year. I count that as a good thing.

The solution to make peace with the ATV issue is for the state to put back the funding it stole from the ATV trail budget. Use that money already paid by ATV riders to start working on trails. Use the new, higher trail fee added on ATV registrations to create new trails.

Posted [15:39] [Filed in: economics] [permalink] [Google for the title] [Tags , , ] [digg this]

A War on Retreat

We need a War on Retreat, and a War on Flanking Charges. After all, we have a War on Terrorism. Why not have a war on every possible tactic?

Is there anybody else out there who thinks that attempting to eliminate a tactic of warfare is not possible? Or even if possible, not wise?

Posted [15:05] [Filed in: politics] [permalink] [Google for the title] [digg this]

NTSB's perspective

An AP article quotes Jim Hall, former chairman of the National Transportation Safety Board, as saying:

"This is a piece of equipment that could have saved 49 people from being burned to death," Hall said. "But because of the economic interest of the aviation industry," it is used in only a few planes.

Small wonder that someone associated with the NTSB is in favor of more safety. Unfortunately, Hall's is a single-minded perspective. All he's taking into account is airplane safety. Thus, there is no limit to the amount of money which should be spent on airplane safety, as long as there are airplane crashes.

I hope that people interested in thinking like an economist can see the flaw in Hall's perspective. Airplanes are already safer than all other types of transportation. If you make airplane travel safer by increasing the amount of money spent on safety equipment, airplane travel will be more expensive. People will drive instead, which will make them less safer.

The irony here is that the anti-terrorism steps being taken to make airplane travel safer will make flying more expensive. More expensive in terms of the larger number of people needed to carry out these safety steps, and in the time needed to fly. These steps will probably not reduce the risk of terrorism, but will turn people away from safer airplanes to less safe automobiles.

Thank your government for making your travel less safe in the name of making it safer. After all, that's what you're paying them for: to force people to make their second-best choice rather than their first. No need to force them to make their first choice, eh?

Posted [13:20] [Filed in: economics] [permalink] [Google for the title] [digg this]

Sat, 02 Sep 2006

Spitzer, the economic ignoramus

Gentle readers, you are no doubt familiar with Elliot Spitzer's abysmal lack of understanding of economics ( Go Away Elliot, Go Away Elliot 2, Like A Spitzer With His Head Cut Off, and No Thanks Elliot). Well, he's at it again. He's quoted in the Watertown Daily Times (paid site, so no link) as saying, on his visit to Massena on Friday:

"We've got to educate our kids," he said. "In India last year there were 350,000 engineers. In the U.S. there were 70,000. How can we win the battle for new products when they're out-producing us?"

Practically every phrase is wrong.

  1. According to Reason Magazine, while India's central planning did create several high quality technical institutions, it was private colleges which stepped up to the plate. Four of five engineering students attend private colleges, making Elliots use of these engineering students to support public education a mockery of the truth.
  2. By "We've got to educate our kids" Elliot means the exclusive "we" -- that is, he means "the government", not "you". And yet in the India to which he compares us, private schools outperform public schools (pdf). These are for-fee profit-making schools. People willingly pay for them in India, so in India Elliot's "we" includes citizens.
  3. While it seems horrific that India has 350,000 engineers and the US only 70,000 (how can we win??), you need to remember that India's middle class is larger than the entire population of the US. Let's look at matters a different way. India's population is 1,095,351,995, and the US's is 299,630,441. There are 3129 people per engineer in India, and 4280 people per engineer in the USA. So rather than a 5 to 1 ratio, you have a 4 to 3 ratio.
  4. These engineers don't work in a vacuum. They need support services surrounding them to make them effective. India is loosening up its economy, but still exerts substantial central control. India's infrastructure is groaning under the load. A hotel room in Bangalore (which is India's Silicon Valley) costs $400 a night, if you can get it. The traffic in Mumbai (which I visit yearly) is getting worse and worse in spite of the building of new bridges and elevated highways. There are very few miles of high-speed highway in India. Their economy is very inefficient. The thought of their 300,000 engineers "winning the battle" against our 70,000 is simply laughable. The highest goal of many of those engineers is to come work in the US.
  5. Finally, speaking of "winning the battle", herein you have Elliot's compleat expression of his understanding of economics. It is nil. There is no battle in free market economies. It is not a war. We can all win. Indians do what they do best; we do what we do best; and then we trade. Applying militaristic terms to peaceful trade is more than wrong-headed. It is evil.
Posted [13:06] [Filed in: economics] [permalink] [Google for the title] [Tags ] [digg this]

Fri, 01 Sep 2006

Ride starting Thu Aug 31 16:19:54 2006

34.86 km 114369.61 feet 21.66 mi 7929.00 seconds 132.15 minutes 2.20 hours 9.83 mi/hr

Circumnavigated Norwood today. Crossed six railbeds; only one of them abandoned. Saw a bunch of Amish buggy tracks on the west side of the river. Stopped by the Vermont Railways engine house. Didn't see any engines outside. Took a little side trip down the Rutland Trail to see if the mudholes had dried up in the August heat. They had.

Posted [00:30] [Filed in: bicycling] [permalink] [Google for the title] [Tags , , ] [digg this]