top | item 15063841

The ‘here is’ key

241 points| davecheney | 8 years ago |dave.cheney.net | reply

54 comments

order
[+] kps|8 years ago|reply
Not mentioned in the article is that ENQ is a standard ASCII character (0x05, and previously abbreviated WRU for “Who are you?”) that causes the device on the other end of the line to send back its answerback message.

On electromechanical teletypes¹ the answerback message was ‘programmed’ by breaking off tabs from a rotating drum, like an inverse music box.

¹ https://en.wikipedia.org/wiki/Teletype_Model_33

[+] dmix|8 years ago|reply
I was curious how it worked and I found a picture of the answerback 'drum' where you break off tabs (lower left):

http://www.pdp8.net/asr33/pics/main_back.shtml

> In the lower left is the answer back drum. By breaking off the little tabs where you program a 20 character sequence that the teletype can send when the "HERE IS" key is pressed or if enabled when the WRU (ENQ, ascii 5) character is received.

It seems you actually break off the tabs, it's not just a repeatable customizable configuration.

[+] wodenokoto|8 years ago|reply
It is kinda funny that Apple didn't do anything about Caps Lock when they redesigned their keyboard with the touch bar.

I cannot imagine professionals or casual users who would need quick access to turning caps lock on and off. When you need caps lock over shift, it is because you are planning to write a lot of all cap text, and so, taking a second to turn it on via the touch bar seems okay. It is prime to be relegated to the touch-bar, while plenty of professionals use ESC all the time while touch-typing.

While they were at it, the switch window `command+~` short cut is almost unreachable on non-us like keyboard layouts.

If they were gonna break professional users keyboard workflow, why not fix some of the more glaring mistakes in current keyboard layout while they were at it?

[+] Jakob|8 years ago|reply
> Apple didn't do anything about Caps Lock

They did. Under System Preferences > Keyboard > Modifier Keys… you can now map Caps Lock to Escape which you couldn’t before. It’s just not activated by default.

> the switch window `command+~` short cut is almost unreachable

Change it under System Preferences > Keyboard > Shortcuts > Keyboard: Move focus to next window

[+] jpttsn|8 years ago|reply
Well, who would you rather fight, people who rely on CAPS LOCK or people who rely on Escape?
[+] tikhonj|8 years ago|reply
On my old Thinkpad X1 Carbon, the Caps Lock key was replaced with Home and End keys. I thought it was a brilliant idea, although I immediately remapped them to Backspace and Control respectively. The laptop also had a primitive touch-bar in place of the function keys which I actually rather liked, although the implementation was lacking. (And, unlike Apple, they kept a physical Esc key!)

Unfortunately, both of these changes were not particularly popular. I think people only disliked the Home/End keys in place of Caps Lock because it was weird and different—I saw a lot of whining online, but nobody ever complained about not being able to use Caps Lock any more!

To some extent, I see where people are coming from: I regularly use at least two different external keyboards as well as my laptop keyboard, so it's hard to get used to a weird layout in just one place out of three. I'm an early adopter at heart and willing to power through the inconvenience for what I see as a better design but I also understand that it's too much bother for other people. (And, honestly, the upside isn't that big!)

On later generations, ThinkPad switched back to a more standard layout. I wouldn't be surprised if Apple wanted to avoid a similar reaction in changing the keyboard layout too much, especially since their touchbar was already a big enough change to stir up controversy.

[+] mattnewton|8 years ago|reply
You can map caps lock to escape (I map it to control). The bigger complaint I have heard is muscle memory from vim people used to the Mac layout.
[+] reaperducer|8 years ago|reply
>I cannot imagine professionals or casual users who would need quick access to turning caps lock on and off.

Then you have a very limited imagination. There are lots of reasons that people need and use caps lock.

Off the top of my head-- Broadcast jorunalism. Every news story you hear on TV or radio is written in all caps. The same is true of the speeches by most professional public speakers.

[+] madsushi|8 years ago|reply
Caps Lock is a very fast tool for typing capital letters. Yes, toggling Caps Lock on/off for capital letters can be faster than using Shift.

One of the world's fastest typists uses this technique: http://seanwrona.com/typing.php

[+] Macha|8 years ago|reply
On my Irish keyboard layout (and therefore presumably the UK one also), it's mapped to command-` by default, i.e. the same physical keys as command-~ on a US keyboard. This is also common across every OS for shortcuts relying on tilde in video games for example)
[+] zeta0134|8 years ago|reply
I'm going to be anecdotal again, but I use caps lock fairly regularly when I'm writing code. It's very useful for COMPILE_TIME_CONSTANTS and MY_MACRO_THAT_SCARES_SMALL_CHILDREN in C++ code especially.
[+] fokinsean|8 years ago|reply
yeah I always remap caps lock to control, however this gets me into trouble when I help out a coworker on their machine.
[+] susam|8 years ago|reply
I have a project that provides a little tool for Windows and a lot of documentation for Windows, Linux and Mac to map Caps Lock to Escape as well as remapping keys in general.

Project URL: https://github.com/susam/uncap#uncap

[+] reitanqild|8 years ago|reply
Maybe they actually learned something after they mixed up the position of fn and ctrl with no way to fix it.

Was one of a few serious ux problems that made me leave Apple only three years after initially being very exited about it.

[+] scott_o|8 years ago|reply
It sounds like this was an automatic thing, the host could query the terminal and would get a response without any user input.

So that still leaves me with the question of why the key exists?

What use cases would you have for voluntarily sending the host your "identification"? Was this used for authentication?

[+] Animats|8 years ago|reply
It's for Telex service. You dialed up another Teletype machine to send a message to it. At startup, the other end was interrogated to print its answer-back on both Teletypes, to confirm that you'd reached the right destination. Then you could type to the other end, or send a paper tape and have it print or punch at the other end.
[+] samlittlewood|8 years ago|reply
I seem to remember that being used as an attack vector at college: Identify a terminal that was logged on as root (albeit physically inaccessible), then find a way of getting message to it, then send a string that programmed answerback and then triggered it. Usual payload was moving your 'special' version of a common suid program into place, possibly along with a tweaked version of 'sum'.

This started with 'write' etc. but became an escalating arms-race.

[+] kpcyrd|8 years ago|reply
Do you happen to know if this is still supported in eg. xterm?
[+] binarycrusader|8 years ago|reply
A colleague had this to say:

I remember a spate of answerback hacks with vt100s. the remote host could program the message by sending an escape sequence, and then get the vt100 to type the string back. you could make the tty execute commands that would give the attacker privs, and stuff like that. The main fix was hardening mail clients to filter escape sequences; simpler days to be sure, but the basic flaw (non-filtered text) still occurs in html forms

[+] kazinator|8 years ago|reply
I noticed there are some commonalities between this keyboard and the Japanese layout on PC keyboards.

For instance, note the co-location of * and : characters on the same key. It's not in the same place on the Japanese layout, but the co-location is the same.

Another shared feature between the two is the co-location of the = and - (equals and dash).

Next, the tilde in the general same area on the Japanese layout as on this terminal, close to the Return key.

Lastly, the correlation between the numeric row keys and their Shift glyphs is almost the same on the Japanse layout and this terminal!

           1 2 3 4 5 6 7 8 9 0
   JPN-PC: ! " # $ % & ' ( ) <blank>  __ same!
   ADM-DA: ! " # $ % & ' ( ) <blank>
   US-101: ! @ # $ % ^ & * ( )
There may be other similarities; this is just what I noticed at a glance.
[+] kps|8 years ago|reply
ASCII:

  0x2n:  <blank>  ! " # $ % & ' ( )  * +  , - . /
  0x3n:        0  1 2 3 4 5 6 7 8 9  : ;  < = > ?
Look familiar? This is called a bit-paired keyboard¹ — every pair (or triple, in the case of control characters) of characters on a key differ in encoding by flipping one bit, which is relatively easy to do in hardware. The ADM-3A had no processor.

¹ https://en.wikipedia.org/wiki/Bit-paired_keyboard

[+] jwr|8 years ago|reply
FWIW, I just noticed that the Commodore 64 keyboard used the same numeric row layout as ASM-DA and the Japanese layout. Common legacy.
[+] gpvos|8 years ago|reply
Many VTxx emulators still have this answerback function. Look in the PuTTY configuration under Terminal, "Answerback to ^E" (^E = ENQ).
[+] ChuckMcM|8 years ago|reply
And, if you were sneaky you could find out where someone was chatting to by sending the answer back see and if you didn't like the computer center system programmer you could send a wall(1) with it and crash the Gandalf terminal server.
[+] work_account|8 years ago|reply
But what does the RUB key do?
[+] mmphosis|8 years ago|reply
RUB. When the RUB (rubout) key is typed while holding down the SHIFT key, a non-displayable rubout code (ASCII DEL) is transmitted to the computer. The cursor is not advanced and the character code stored in display memory is not overwritten. RUB is normally used to tell the computer that a previous character should be deleted. https://amaus.net/static/S100/learSiegler/terminal/Lear%20Si...
[+] MaggieL|8 years ago|reply
RUBOUT punched all the bits on punched paper tape. You could use it to actually edit the tape by feeding the tape back into the punch, if you created slack space with some NULs, which didn't punch any holes at all. RUBOUT the characters you didn't want, and punch the replacements into the NUL spaces.

Important to remember that ASR-33s weren't designed to be use with computers.

[+] gpvos|8 years ago|reply
A genie appears who will grant you three wishes.