Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

> Demo of the Canon Cat computer released in 1987 with 'leap' feature [video] - https://news.ycombinator.com/item?id=29423545 - Dec 2021 (1 comment)

> Leap Technology (keyboard vs. mouse on a Canon Cat machine, ca 1987) - https://news.ycombinator.com/item?id=22042900 - Jan 2020 (1 comment)

Wow, thanks! I did miss that story (same video in both HN discussions) which is very relevant to my interests.

Watching the video, I find that the way I move around code in Emacs is very similar to the “Leap” technique in the Canon Cat, with exactly the benefits they claim. I even have a dedicated “Leap” thumb key in my keyboard, a programmable Dygma Raise (https://dygma.com/) where I mapped one of the thumb keys to the “Find” keycode, and then that in Emacs to incremental search.

It is still limited to the current buffer, whereas the Canon Cat’s Leap seems to work across documents. I hadn’t thought of that but there are ways to do it in Emacs, for instance searching interactively in all open buffers: https://stackoverflow.com/questions/2641211/emacs-interactiv...



sort by: page size:

I saw Jef Raskin demo the Canon Cat in the 1980s when I was working at Stanford.

One of the more interesting concepts behind the interface was, everything was stored in one "circular" file, with marks for document beginnings and ends. By "circular" I mean that if you leapt forward from file to file, you'd eventually return to your starting point. The idea was, it's hard to remember the names of documents, let alone where in the filesystem you might have saved them. But you can usually remember something about the document -- some piece of text, etc. Using the leap keys you could quickly find the document you were looking for. Modern OSes allow for such searching, but at the time the idea of not worrying about file locations or names seemed very forward thinking.

Jef had research to show that "leaping" was superior (or at least, your productivity was faster) when comapred to other computer interfaces -- provided the user was used to using leap keys. Later I saw Andy Hertzfeld give a talk on Multifinder, and I thought the contrast between the two engineers was stark. The Canon Cat gave you one way to interface with the system (which was "the best way"), while Andy's interface gave you multiple ways to do the same task. Andy said something like "different people interact with the system differently" and he wanted to support all they ways they might want to do their work.


The Cannon Cat was Jef's vision, and it didn't even have a GUI.

> Canon Cat is primarily the creation of Jef Raskin, the originator of the Macintosh project at Apple. After leaving the company in 1982 and founding Information Appliance, Inc., he began designing a new computer closer to his original vision of an inexpensive, utilitarian "people's computer".

It features a text user interface, not making use of any pointer (mouse), icons, or graphics. All data are seen as a long "stream" of text broken into several pages. Instead of using a traditional command line interface or menu system, the Cat makes use of its special keyboard, with commands being activated by holding down a "Use Front" key and pressing another key. The Cat also uses special "Leap keys", which, when held down, allows the user to incrementally search for strings of characters.

https://en.wikipedia.org/wiki/Canon_Cat


Incremental search as I'm used to the term certainly existed long before and still exists now: did the Cat do something different?

Were the Cat and the Epson HX20 both programmed in Forth? I may be getting the two of them confused. I remember hearing that one or both ended up buggy because the software effort bogged down.


This is interesting. Can you elaborate more on what had you learned?

BTW, there's a Canon Cat emulator that runs on the browser at: https://archive.org/details/canoncat


Ever run 'rm' from shell history with Ctrl-r with a quick muscle memory and next moment the file was gone?

A cat needs to step on up arrow and enter to repeat a command as well.


Indeed. A really easy way to test this out on a modern Unix-ish system is to launch a terminal emulator, run cat, and then type Alt+a followed by Esc a. And then for bonus, type Ctrl+[ a. The output should look like this:

  $ cat
  ^[a^[a^[a

Cool!

Back in the early 00's, there was a Linux kernel module or program to detect and eliminate feline keyboard input.


cat has been (ab)used to output files to a terminal for a long time. BSD 1 has a program cat3a [0] that Bill Joy wrote in 1977(!) to quickly write files to an ADM-3A terminal [1]. If you look at the keyboard it has arrows on the HJKL keys which is where vi got its navigation from. (Also the escape key was next to Q!)

[0] https://github.com/dspinellis/unix-history-repo/blob/BSD-1-S... [1] https://en.wikipedia.org/wiki/ADM-3A


Or they just used cat: "When I'm writing programs, I can type them in half the time with cat because the programs are six lines - a #include, main and a for loop and one or two variables."

This is so fucking cool. `cat` doesn't work in Terminal. Probably put a bunch of basic commands for someone curious.

So the "improper" use of cat, for printing files on screen, dates back to at least 1983. I consider it legitimized.

Can't you just use `cat`?

People use cat to look at the file first, then hit up arrow, add a pipe, etc.

yo dawg, I herd you like nyan cat, so I put a nyan cat in your emacs so you can nyan while you program

Today I learned that you can type content into a new file with `cat`. So far I only used it for printing and concatenating files.

Looks like the source code to this already leaked:

1 PRINT "Meow"

2 GOTO 1


I use cat like this all the time. It means I can easily change whatever program I'm using to interact with the program (e.g. switching `tr` to `sed`).

There's a POSIX utility named "cat" and cats already know what it does, but if a man wants to know, he just types the following words into the terminal and then presses <Enter>:

man cat


No, real programmers use cat.
next

Legal | privacy