Martin Pool's blog

Using a Dvorak keyboard for a year, and pain avoidance

About a year and a half ago I switched to using a Dvorak keyboard layout everywhere rather than the more common Qwerty, as one of several measures to avoid keyboard-related wrist pain. After blogging about how I was going to switch I said no more about it, partly because ironically enough my typing speed temporarily decreased quite substantially. Marius asked me what happened.

I did stick with Dvorak and I'm glad I switched. I would recommend it to anyone who uses a computer for a substantial amount of time.

It really does seem to require less stretching and remarkably less hand movement. However it may be that part of this effect is just improving touch typing, being more aware of what finger is used for what key — in other words if one somehow forgot Qwerty and then sytematically re-learned it, it might give some of these benefits.

If you do want to switch, I'd recommend just jumping in: don't try to cut over gradually, don't put stickers on your keyboard, don't rearrange the keycaps. I put a printout of the layout near my screen and just kept looking when I got lost until I'd memorized it. At the peak of switching I would type sentences in my mind in idle moments.

Command keys, and vim in particular take a bit of adaption. I found it best to just use mouse actions instead for a while, and then slow down and think about the letter of the key before pressing it. Once I'd adapted it generally worked well. I used to use emacs a lot and rarely do so now, and going back to it is very difficult because what I do remember is in muscle memory.

Passwords can be very difficult, as people tend to remember commonly-used ones by muscle memory rather than as characters. It may be wise to write them down somewhere safe, at least for the transition period.

I can't really touch-type Qwerty now: I don't hunt-and-peck but I do need to look at the keyboard when I rarely have to use it — hotel computers, boot loaders, other people's computers and so on. On the other hand I have no trouble using a Qwerty layout on my phone, I suppose because it's a different mental context.

Some people like to pry off the keyboard caps and rearrange them to correspond to the Dvorak layout. I didn't do this, and I wouldn't recommend it, for a few reasons. I think that to learn Dvorak, you need to be able to touch-type it without looking at the keycaps, if only so that you can use it on machines where you can't (or may not) modify the hardware. Conversely, sometimes you may need to type Qwerty on your own machine, or you may want to lend it to someone who can't touch type Qwerty.

Perhaps most important, the little nubs on the (physical) F and J keys really matter to me now, and if I'd moved the keycaps they'd be in completely the wrong place. Dvorak makes the "home row" concept much more important, and my hands really feel at home with the nubs under my index fingers.

The transition is easiest on a Mac: you can easily put a little switcher on the menu bar, and even use it to display an Aussie flag rather than insisting on showing the stars and stripes. On Ubuntu it works pretty well, with a few nits: the text-mode recovery environments tend to "forget" that you wanted Dvorak during upgrades, the GNOME panel indicator likes to show the rather unhelpful labels of "USA" and "USA2" (with unpredictable meanings) and in some places like the screen-lock dialog there's no indication of which layout is active.

Vista I found generally pretty poor, as it wants to set the layout per-application not per-session. I very casually play WoW on Windows, which needs both typing of text and control through keys, and so far found it's best to leave my keyboard layout in Dvorak so I can type text in the way I'm used to, and then rebind all the keys so they have the same position: the WASD diamond comes out as <AOE.

I only later heard of the Colemak layout, which is supposed to be like Dvorak but better optimized for actual typing patterns, including those that occur in programming. It may well be; the hassle of the Dvorak transition is far enough in the past and the benefits are clear enought that I'm open to trying it. Dvorak does have the advantage that although it is used by a minority of people, it is widely available: if you borrow a random person's terminal the odds are low that it will already be in the Dvorak layout, but the odds are very good that you can easily and quickly change it. This is probably not true for Colemak (as of 2008).

More later on other RSI avoidance techniques...

Mostly switched to Dvorak...

Earlier this week I thought I'd try a Dvorak keyboard. It's been fairly successful so far: I used it all day yesterday. I'm still clearly slower than I was, but my error rate and accuracy are improving and I see some more words are becoming "automatic". Passwords are especially tough because they're often known by muscle memory and not echoed to the screen, but I now generally get them right.

There is one very odd effect: I find myself trying to "speak in Dvorak": not mangling the words but just unnecessarily pausing to think about how they're spelled.

Switching to Dvorak?

I'm typing... this.. slowly.. on a Dvorak keyboard.

It's very popular among people at Canonical — which is confusing if you go to someone else's machine — so I thought it was worth a try.

I've been using Dvorak for an hour a day or so this week and I can now type without looking at my cheat sheet (much) but still not very fluently. I have to think about the spelling of words rather than that being subconscious/automatic. And I notice that I've learnt keyboard shortcuts as positions, not as letters, so they have to be retrained separately. I'm very dependent on the positioning dots as I haven't relabelled my keyboard.

I can believe this will be better for my wrists than QWERTY, which is my main goal. I'm more aware of where my fingers are, there are less bad reaches and they are more often on the home row. (And now back to QWERTY to get some work done.)

More notes on the hp msa1000 under Linux

Further random observations about using the hp msa1000 under Linux:

The msa1000 seems to have two internal SCSI channels, one for the left 7 disks and one for the right seven (DISK101-107 and DISK108-114 respectively.) It may be that spreading logical units across both channels gives better performance. (Or it may not; I haven't measured it or seen anything in the docs.)

Through the serial interface or the HP client you can allocate disks into logical units in various ways. There are a choice of raid levels, and you can assign hot spares. The raid configurations are relatively constrained though: you can only allocate whole disks, and existing units can be expanded but not shrunk. Therefore, as the manual suggests, you should think hard about your requirements before you start.

The simplest default setup is perhaps this: make a single unit containing DISK101-113 in raid level 5, with DISK114 as a hot spare.

Each logical unit appears to Linux as a separate SCSI disk, e.g. sda, etc. It works OK to just use this block device directly, but many programs (eg the RHEL installer) feel scared of devices with no partition table, so it seems like a good idea to create one, even if there's only a single partition.

The msa1000 will typically be attached via a FC HBA card such as the QLogic qla2300. Different kernels may discover this controller earlier or later than an on-board SCSI card, so the drive ordering may not be consistent: the drive may appear as sdb under a different kernel.

Given all the above, it seems like a good idea to me to use LVM, the Linux Logical Volume Manager, on top of the raw units. This has several advantages. LVM's discovery mechanism will hide any renumbering of units from the OS, giving you simple and stable names like "home". LVM allows you to shrink logical volumes, and to allocate volumes of arbitrary size, not just one disk at a time.

So what I've been doing is chopping off several disks as say UNIT0. That appears to Linux as sda. I make one big partition filling the whole unit, and then make an LVM physical volume on that. That PV gets added into one big volume group, from which storage can be flexibly allocated. If your requirements change, as they probably will, this lets you reallocate storage without needing to rebuild everything from scratch.

It probably doesn't make any sense to do raid in LVM; that can be more efficiently done by the msa1000. LVM may impose a performance cost — I haven't measured it — but if you're sure you just want e.g. one big filesystem it might be easier to do it straight on the device.

(Note that LVM has changed slightly under Linux 2.6; nodes appear by default under /dev/mapper. If you want to share volumes with Linux 2.4 you need to explicitly ask for metadata format version 1.)

The serial console works well. It runs at 19200 baud, rather than the more common 9600 8N1. A good way to get at it from Linux is as follows:

stty -F /dev/ttyS0 19200 
cu -l /dev/ttyS0

Make sure to use the right serial port. On hp ia64 machines, ttyS0 is typically the magic remote console, not the first external serial port. On laptops, ttyS0 is sometimes discovered as an infrared port. Look in /proc/tty/drivers/serial may indicate which ones are connected.

(Disclaimers: Read the manual first. Please appreciate our quality responsibly.)

No more hp ia64 workstations

Computerworld reports

Hewlett-Packard Co. has stopped selling workstations based on Intel Corp.'s Itanium 2 microprocessor, a company spokeswoman confirmed today.

Citing market conditions, the company ceased selling workstations based on the 64-bit processors on Sept. 1. That's just two months after the first processor based on Intel's 64-bit architecture for x86 systems, called EM64T (Extended Memory 64 Technology) 64-bit x86 architecture, began shipping. [...]

HP will continue to provide support for the Itanium workstations until 2009, HP's Sowards said.

The decision to get out of the workstation business has no impact on HP's Itanium-based server products, Sowards said. "HP continues with successful Integrity server line," she said.

ia64 debian firegl XFree86 config

I thought that getting the ATI FireGL Z1/X1 card that ships in the hp zx6000 to work on Debian would be a big pain; it turned out to be only a small pain.

This is the secret plan (lifted from a RHEL3 install and tweaked): XF86Config-4

That seems to work with the kernel and xserver-xfree86 4.3 that comes with debian without needing any binary junk. I think it doesn't get AGPGART or 3D working very well, but 2d is fast and that's enough for me for the moment.

...

I have to admit the RHEL3 installation process is very slick. On the other hand, Red Hat's new business model means you lose one of the great advantages of open source, that you can just download and use it without all the hassles of getting media, authorization keys, etc. The price doesn't bother me, but the lack of clarity in their licence does.

toey, resurrected

I have an old Thinkpad whose screen backlight has died, making it pretty useless as a laptop. (I suppose it might work pretty well for a blind person who relied only on speech-synthesis output.)

I woke it up again last night as a headless audio player, sitting near my stereo. I can SSH in and play things through cplay. The sound quality through a NAD amp and Piega speakers is really good; far better than I would have expected. It's not quite as good as a CD, but tolerably close.

It does have an S-Video output, so it might be possible to connect it to the TV, if X is capable of setting up that output.

last says it had been down for just under a year. It gives me a strange happiness to wake it up and let it do something useful again.

serial/network console on rx2600 linux

Getting the serial/network console to work on rx2600 is more difficult than it should be.

The trick is:

Use the EFI menu to configure exactly one UART as the input/output/error channel. (I find it works better to use the PCI rather than PNP hardware path, but that may be just superstition.)

Choose Cold Reset from the EFI menu. Merely booting Linux after changing the devices won't work!

Boot with linux console=ttyS0.

$10000 worth of dogfood

My day job is developing Linux software for hp Itanium2 servers. I'm going to try using an hp zx6000 as my workstation.

Initial impressions: (strictly my personal opinion):

The hardware is very tidy indeed. Clearly a lot of thought went into the mechanical design.

The machines have really neat manageability support: an onboard service processor so that you can get to the bootup and OS console over the lan and similar tricks.

Sadly the firmware support for this is less friendly than it might be. I think everyone who has tried to install such a machine has had the experience of the machine hanging at bootup... except it's not really hung, it's just talking to the wrong console port. Once you find and follow the right instructions it's fine. (Installing Linux on hp Itanium 2-based Servers and Workstations may be the right one, or you may find an update on hp.com.)

It's very quick. I have not run it back to back against a brand-new top-end Xeon or Opteron but it's much faster than most PCs.

My unit has a FireGL card, which seems to have only binary drivers, which is a pain if you need to run anything but the specified redhat release.

Thank goodness for Debian. Having a single system which is freely available and nearly the same across different hardware is great.

Palm T3, going cheap

I have a brand new Palm Tungsten T3 that I don't need. Want to buy it?

This has four times as much memory as my first PC, and a thousand times more than my first computer. Amazing.

Dave Winer on Rob Enderle

Dave Winer on Rob Enderle:

Enderle's presence is a warning sign. I see a quote from him I get the message. The reporter is out of ideas and has decided to cut corners.

Plus lots more from iwethey.

Intel to Remove Xeon's Advantages to Push Itanium

Intel to Remove Xeon's Advantages to Push Itanium:

After nearly a decade of 64-bit processing in the RISC server market, it might be reasonable to accept that 64-bit computing for Intel X86 processors was a foregone conclusion. Since 1996, Intel has been making the case publicly for its 64-bit Itanium and its EPIC (explicitly parallel instruction computing) instruction set. It has not been an easy run for Intel, but the company has a plan to make Itanium take off: Remove the advantages that 32-bit Xeons have on Itaniums, and stress the advantages the Itanium architecture brings.

Whenever a discussion of Xeon versus Itanium begins, it inevitably ends with a discussion of a 64-bit variant of the Pentium 4 core. So let's get this out of the way right now. Itanium is a radically new core that Intel and HP designed for the long haul, and they expected a very long ramp up. One of the things that was not on the public roadmaps that executives in Intel's Enterprise Platforms Group was presenting yesterday in a meeting with press and analysts was the co-called "Yamhill" 64-bit version of the Pentium 4 processor that people have been talking about for several years.

It is no secret that some of the server vendors--especially those who are not enthusiastic about the jump from the P4 to Itanium instruction sets and/or who have their own RISC/Unix markets to protect--would love to see Itanium go the way of all flesh and to see Intel bring out an Opteron-like processor that supports 32-bit and 64-bit modes on the same P4 core. No server maker admits this publicly, but privately they sure do.

Compaq W200 wireless card

My Compaq N410c laptop has a W200 wireless card, which is connected via a special USB port. I just got it working using the Orinoco-USB drivers on 2.4.24.

From the archives: Jim Butterfield

From Compute! Sept 1982, reprinted on commodore.ca:

The Butterfield homestead is a modest brick house within walking distance of downtown Toronto. It is comfortably cluttered with books" plants, computers, and three cats. Even the attic is pressed into service as storage space for whatever books and computers Jim Butterfield cannot cram into his small office.[...]

"I decided to find out what this 'micro' stuff was all about and started watching the current magazines," he says. "1 finally decided to purchase when I saw a completely pre-built machine called a KIM 1, which had a 6502 microchip in it. That turned out to be like a return to the past. Everything we had been doing a dozen years before on the large $1.5 million computer, we were doing again on this little $250 board including making the same mistakes." [...]

Lecturing and teaching, such as the machine language course he conducts each month for a special interest division ofTPUG, provide him with feedback about problems and areas where people need more information. He has a reputatifor being generous with his time, and his phone in open from 10 a.m. to 10 p.m. Monday to Friday.

"If somebody phones me up and asks a question which shows they just haven't bothered trying it themselves. then I will sometimes be a little short, because it does seem like a waste of my time," he says. "But most people who call do so because they're stuck on something. It's just a question of getting another opinion. If I get a number of inquiries in a certain area, that's usually a signal that it's time for me to write an article about it. It's a very good way of keeping posted on what's bothering people at the moment."

Butterfield is equally generous with his software. He rarely sells any of his programs. "I would like to foster an environment where people pass out their software with reasonable generosity. I think that by showing a good example, I might sort of lead the way in that." Often he distributes his work on TPUG's library disk.

Still, Butterfield'vehemently supports an author's copyright: "I believe very strongly that the person writing an original program has the right to do as he chooses with that program. If he chooses to sell itor to request that it not be copied except for a fee, then he has absolutely that right."

However, he feels that a person who takes money for software is obligated to support that program by upgrading it and furnishing the means to modify it, if necessary. "That's another good reason to give programs away. I really feel that most people who put down a lot of money for software feel that they are not buying a disk or cassette tape, but they are buying a service..'

SAS and SATA

Good technical overview of SAS (Serial Attached SCSI) and SATA (serial ATA).

N410c

/evo-N410c-acpi-static--2003-11-06.diff: kludgy patch to make ACPI work on the HP Compaq Evo N410c laptop, and a kernel configuration. A far better description of how to make this work is here.

I haven't tested it very much yet but this does at least allow X to run and prevents the machine going into thermal shutdown.

Magic SysRq over telnet

Cute Itanium tricks department:

On the hp Integrity Itanium servers, you can telnet into the management processors and talk to the Linux host's serial console. In particular you can use this to talk to the ELILO boot loader, and to look at oopsies.

One cool thing I recently discovered is that you can send a TELNET BREAK which is translated into a serial break, which has a similar effect to pressing SysRq on a regular keyboard. That is, you can get a list of processes, sync the disks, or unmount the disks for a semi-graceful reboot.

To send a break from the standard Unix telnet client, hit Ctrl+] then type send brk. You need to pause for a second or so after typing this because the break locks out other activity on the serial port.

Debian GNU/Linux testing/unstable kate console
Linux ia64 2.4.22-showmem #29 SMP Wed Oct 29 14:59:35 EST 2003
                                                                                
kate login:
telnet> send break
SysRq : HELP : loglevel0-8 reBoot tErm kIll saK showMem Off showPc
unRaw Sync showTasks Unmount
                                                                                
telnet> send break
pSysRq : Show Regs
                                                                                
Pid: 0, CPU 1, comm:              swapper
psr : 0000101008026018 ifs : 8000000000000000 ip  :
[<e000000004415440>]    Not tainted
ip is at (no symbol)
unat: 0000000000000000 pfs : 000000000000050a rsc : 0000000000000003
rnat: 8000000000000013 bsps: 000000000001003e pr  : 80000000ff605935
ldrs: 0000000000000000 ccv : 0000000000000000 fpsr: 0009804c8a70433f
csd : 0000000000000000 ssd : 0000000000000000
b0  : e0000000044155f0 b6  : e000000004402d60 b7  : e000000004415440
f6  : 1003e2e8ba2e8ba2e8ba3 f7  : 1003e000000000b0b5c99
f8  : 1003e0000000000fd086b f9  : 1003e000000000adf5c99
f10 : 000000000000000000000 f11 : 1003e000000000b0b5c99
r1  : e000000004c6ea80 r2  : 0000000000000000 r3  : 0000000000000000
r8  : 0000000000000000 r9  : e0000040fffa8050 r10 : 0000000000000000
r11 : 0000000000000000 r12 : e0000040fef87e30 r13 : e0000040fef80000
r14 : e0000040fef87dd0 r15 : e0000040fef80028 r16 : 0000000000000000
r17 : 0000000000000000 r18 : e000000004a78688 r19 : e0000040fef80038
r20 : 0000000000000000 r21 : 0000000000000000 r22 : e0000040fef80028
r23 : e000000004415440 r24 : 0000000000000000 r25 : 0000000000000000
r26 : 0000000000000000 r27 : e0000040fef80e90 r28 : 80000000ff606535
r29 : 0000000000000001 r30 : 0000000000000000 r31 : 0000000000000001

ACPI on an Evo N610c

I have an Evo N610c that I am trying to get working with Linux.

This machine doesn't have useful APM support, so power management will only work with ACPI. If you run a kernel with APM, it will work fine on AC power, but lock up fairly quickly when suspended, as other people have documented.

The stock 2.4.21 ACPI support doesn't recognize enough of the hardware to be useful. Possibly an ACPI patch for 2.4.21 would make it work, but I'd like to stay with a maintstream kernel if I possibly can.

2.6.0test2 looks more promising: it will detect all the hardware, can control the fans from software, and does not crash. It can even do an orderly shutdown when the power button is pressed, courtesy of acpid. However it cannot suspend yet, either through ACPI or swsup. It needs more investigation.

2.6.0test2 also recognizes the touchpad/clitmouse, but gpm and X11 don't see the events from it. Apparently the Synaptics touchpad is like a PS/2 mouse, but not quite the same. Strangely enough it did work with the plain ps2 driver in 2.4, so perhaps something is broken in Synaptics support.

Manageability on HP Itanium Linux Servers

I've just been using and exploring the Management Processor (MP) on an HP rx2600 Linux Itanium server. It's really slick. I'm very impressed.

The MP is basically a daughterboard containing an ARM7 embedded processor, which has a serial and 10/100 ethernet port, and a simple VGA controller. It's tied into the main motherboard through I2C, PCI and other (?) connections, so it can see what's happening but is independent from the main processors. The board has a little bit of RAM, ROM, and NVRAM.

This is kind of similar to the debug monitor features you might have encountered on Sun machines or Macs, but putting it on a separate board has a few interesting features. One is that the MP is active whenever the machine has mains power, even if the main processors and fans are shut down, and it can bring it back up. Another is that the MP ought to be less intrusive with the operation of a machine: a debug monitor typically halts the whole machine while its active, whereas this allows the machine to keep running.

An enormously cool thing about the way the MP is implemented is that its console appears to Linux as a regular UART. Simply by booting with console=ttyS0 you can get all the Linux boot information routed through the management processor. That in turn allows a few interesting possibilities: sending them to a serial console of course, or across a telnet connection, or logging them in NVRAM so they can be inspected later. Similarly if the kernel panics, you get that information in a telnet window where it can be easily saved, not on a screen where it has to be copied down.

Other nice features:

One downside of the current implementation is that the network interface is not active by default, and you apparently can't get into it through the VGA console. So to enable all this functionality, as far as I can make out, you have to start out with a null modem connection, which can be a bit difficult. But there may be some way around that that I just have not discovered yet.

I was at first a bit confused about the interaction between the MP and the EFI (Extensible Firmware Interface) pre-boot system, but it looks like they're more or less separate and complementary.

I suppose these features are taken for granted by the high-end Unix audience, but this is the first time I've personally seen them in a machine that is within shouting distance of i386 bang/buck, at least for some applications. Not needing to traipse down to machine rooms to work out whats wrong, and being able to get accurate information about a problem without needing to reproduce it or suspend operation should be a boon for serious users.

All this, and it also keeps my feet toasty warm!

Mac OS X System Overview

Mac OS X System Overview

New York Times and Anarchy Online

The NYT just doesn't seem to be having a good time with journalistic integrity recently. [Economist registration required] Here's an extensive complaint from a prominent AO player who was profiled by them recently. I'm not sure where the truth lies but when I first read it the NYT article seemed a bit incredible.

Linux on a Compaq Evo N800w

I'm installing Red Hat Linux 7.3 on a Compaq Evo N800w. (No, it's not mine unfortunately, it's for a colleague.)

Considering that 7.3 is much older than the hardware it does pretty well. There are a couple of traps: USB doesn't work with the default 7.3 kernel, or with the kernel on the LNX-BBC 2.1 either for that matter. Booting with the kernel parameter nousb fixes that.

Also, Red Hat's Kudzu hardware detection program locks up when scanning the machine, so you need to boot single user and disable it.

Aside from that everything seems to work. The Radeon 9000 video card is partially supported in XFree86 4.2, and reportedly has better acceleration in 4.3.

The machine looks pretty nice. The screen is enormous and crisp, and probably pretty fast with the proper drivers installed. It's less heavy than some other full-featured machines like the IBM A21, in part because HP/Compaq has finally been smart enough to drop the floppy drive. (Getting a floppy drive on a new laptop in 2003 is like getting a tail on your child....)

Archives 2008: Apr Feb 2007: Jul May Feb Jan 2006: Dec Nov Oct Sep Aug Jul Jun Jan 2005: Sep Aug Jul Jun May Apr Mar Feb Jan 2004: Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan 2003: Dec Nov Oct Sep Aug Jul Jun May