
The Canon Cat - lispython
http://www.jagshouse.com/swyft.html
======
avdempsey
My uncle was one of the programmers on the Cat project, he still has a working
production unit. The Cat is a handsome little machine. There's something
elegant about its lack of silos: all of your (textual) data is in one space
that you leap around with the aid of dedicated search forwards/backwards keys,
reprogramming or extending the system itself is likewise a keystroke away. It
obviously wasn't a commercial success, but the user was indisputably the boss
of the thing.

~~~
keithpeter
_" but the user was indisputably the boss of the thing."_

Thanks for posting: I read Raskin's _The Humane Interface_ some time ago. I
wondered then and now if the fact that the user was the boss was actually part
of the problem with sales? Reasonably steep learning curve?

------
Theodores
This wasn't an isolated incident of innovation from Canon. Can anyone remember
their 486 laptop with built in printer/scanner?

The 'note jet' had the same form factor as a normal notebook of the era. The
printing part was roughly where you would expect the function keys to be,
under the hood there was a miniature inkjet cartridge that could be swapped
out for a scanning cartridge. The paper line was pretty good, going under the
keyboard. I can't remember there being a paper tray.

In those days 'executives' struggled to plug a printer in so it solved the
'check connections' problems they faced. It also looked very cool, distinctly
'from the future'. Actually the idea was from the past - this was a take on
the standalone electronic typewriter. I always felt the idea needed to live
on, not least for travelling salesmen that need some sales order printed out
and signed whilst at a customer's site.

They dropped the model when the Pentium came along for the idea never to be
seen again.

~~~
huxley
You can relive the memories by reading the 1993 NY Times review:

[http://www.nytimes.com/1993/04/18/business/the-executive-
com...](http://www.nytimes.com/1993/04/18/business/the-executive-computer-
canon-s-new-laptop-packs-a-nice-printer-inside.html)

~~~
mikeash
I loved this bit:

"The Note Jet is also a harbinger of future generations of mobile computers
that offer many features that executives now enjoy in their offices. If a
laser-quality printer can be tucked inside a notebook PC, it probably won't be
long until we see built-in cellular telephones with answering machines,
wireless pagers and beepers, send and receive facsimile capabilities with a
built-in scanner, and even video cameras for remote teleconferencing."

I was reading this from a tiny computer containing a built-in cellular
telephone with (remote) answering machine, wireless paging and beeping (text
messaging), send and receive facsimile capabilities (e-mail or other
messaging, with images) with a built-in scanner (camera), and even two video
cameras for remote teleconferencing. This paragraph struck me as remarkably
prescient.

------
mikecane
I had a Canon CAT. The praise for it is overrated. It was never as simple as
people claim nor really any joy to use. The hardware itself also tended to die
suddenly. When mine died I went to repair place where I happened upon the
Canon rep. He said the CAT's motherboard was prone to suddenly dying and the
only solution was to buy a new CAT.

------
jvilk
And now you can relive this classic computer in your browser, courtesy of
JSMESS [1] (although, at the moment, it doesn't run at 100% speed).

Information on key bindings and how you can e.g. activate the FORTH
interpreter can be found here [2], although I couldn't get the FORTH
interpreter working (I'm not sure if the browser/Emscripten can properly
distinguish between ALT keys).

[1]
[http://jsmess.textfiles.com/messloader.html?module=cat](http://jsmess.textfiles.com/messloader.html?module=cat)

[2]
[http://mamedev.org/source/src/mess/drivers/cat.c.html](http://mamedev.org/source/src/mess/drivers/cat.c.html)

------
sanoli
I've always been a fan of the way the Cat works. So much so that my main work
tool is pretty much a copy of the Cat on modern hardware. It beats, and has
been beating for a bunch of years now, any alternative that I try to give a
go.

PS. Notational Velocity and NValt are pretty awesome too.

~~~
simbolit
can you elaborate? what is your main work tool?

~~~
fit2rule
The mischief in me wants to say that its probably emacs or something .. ;)

~~~
sanoli
Emacs would be perfect for this, if it weren't so dammn complex/complicated.
The learning curve is too steep for someone who just wants to write and isn't
a programmer.

------
tqs
From one perspective, Jobs and Raskin ended up going down two opposite paths.

Raskin emphasized that "modes" were a major cause of UI problems. Essentially
you want a UI that the user can habituate to as strongly as possible, so that
all one's attention can be focused on the actual task and all of the
administrivia you need to do tell the computer your intention are handled
subconsciously. Like touch typing at a higher level.

The issue with modes is that they break habituation. If performing a given UI
gesture does one thing in one mode and another thing in another mode, you
can't make that gesture a habit. For example: Cmd+Z is a conventional gesture
that many applications interpret as undo. If the keyboard shortcut changed
between applications (or worse Cmd+Z meant something else in another
application/mode), it wouldn't be so habitual and you'd be less productive.

Raskin was very serious about no modes. The Cat for example didn't even have
an on/off mode. It would go to sleep to save power, but if you started typing
it would buffer all your key strokes and have them in your document by the
time the thing woke up. That is, you didn't have to switch from off mode to on
mode! And because you were always in a document (that is, there were no
separate application modes), you knew that typing some words always did the
same thing, so the scheme really worked.

On the other hand, Apple has really pushed, especially since iOS, on the "App"
model. Applications are, of course, giant modes. And the strategy has been to
push a separate App (mode) for every single use of the machine. So rather than
learning a few powerful gestures and then combining them to do disparate
tasks, users need to learn a separate, surface-level gesture complex (App) for
each individual task they want to do on their machine.

Which is more efficient or appealing? On what time scale of use?

Did Apple end up this way because Apps are a more natural fit for a
consumerist model? "Want to do this task with your machine? Don't bother
figuring out how you can do it yourself. There's an App for that!" No Modes vs
Buy More Modes?

Raskin's book, The Humane Interface, talks extensively about his UI design
philosophy. In addition to explaining the above problems with modes, he
discusses how to actually design a computer system with no modes (I believe an
elaboration of what he did with the Cat). He also explains other really
important UI principles and their ramifications, for example, "The user's data
is sacred" (hence undo).

PS:

Raskin's definitions: A _gesture_ is defined as an action that can be done
automatically by the body as soon as the brain "gives the command". So Cmd+Z
is a gesture, as is typing the word "brain". What constitutes a single gesture
will be different depending on the user! A _mode_ is defined as any situation
_not at the user 's locus of attention_ that would cause a gesture to perform
an action different from another mode. So "pseudomodes" where the user holds
down a modifier key or holds the mouse button while performing a drag gesture
get around this since they keep the user's locus of attention on the fact that
they are performing the pseudomode.

I think both the above definitions are still a bit problematic but Raskin's
definitions are better than any other that I've heard. I hope there are more
people who study and discuss these deep UI design issues! What do you think
about modes?

~~~
fit2rule
>>>Did Apple end up this way because Apps are a more natural fit for a
consumerist model? "Want to do this task with your machine? Don't bother
figuring out how you can do it yourself. There's an App for that!" No Modes vs
Buy More Modes?

Bingo! Evidence that this is the case: not many computers ship with compilers
onboard any more. OS vendors want you to continue to invest in their platform
- Apps just happen to be a way to do that. There is a vested interest in
making developer tools as weighty and difficult (for the PITS) as possible ..
why learn programming when you can just buy an app? In many ways, we've gone
completely backwards in the computer industry - users have to spend a lot more
time and effort to maintain their platforms than they should have to.. same is
true of developers, as well. The fuss and nonsense required to just get a
window up on the screen being one case in point. We're all scrambling to learn
these new - but not necessarily better - technologies, because the OS vendors
have a vested interest in capturing the minds of their users.

~~~
matthewmacleod
_There is a vested interest in making developer tools as weighty and difficult
(for the PITS) as possible .. why learn programming when you can just buy an
app?_

This is nonsense. You appear to be arguing that every computer user should be
able to develop software - equivalent to arguing that every driver should be
able to build a car.

You know why modern computers don't ship with development tools? Because they
are no longer used exclusively by people who are computer programmers. They're
mass-market devices now, and one of the requirements of that is that they need
to allow users to perform tasks without learning how to develop software - an
act that is totally orthogonal to actually performing those tasks.

Coupled with this, those people who _are_ developers and require access to
development tools have immediate access to them, thanks to the Internet. You
can immediately download SDKs and IDEs for both Windows and MacOS, and every
major Linux distribution comes bundled with a compiler. Same for Android,
iPhones, etc. - it would be nothing but a waste to provide development tools
when the vast majority of users do not require them, and when they are so
easily available elsewhere.

I'm also completely unclear what "fuss and nonsense required to just get a
window up on the screen" you think exists, given the ~10 lines of code which
is required to do this on any platform.

~~~
fit2rule
Its not nonsense - it used to be that you _could_ write a new application for
your computer if you wanted to, easily enough, and you'd have the exact same
tools as anyone else would have - because the computer shipped with them.

The 'developers' arose as a class of society simply because computer use
became decoupled from application development.

>>10 lines of code to make a window

But this doesn't actually do something. Used to be, you could write a
functional application with 10 lines of code -but now, because computing is
being run by Fashion Directors (I agree with you on this, btw) where 'trends'
are more important than actual use, we get a lot of weight added to the truss
normally bearing the load of 'usefulness' to the user.

I don't consider that we've actually made a lot of progress with human
computer interaction over the decades since the Canon Cat was around. In many
ways, I think we've been side-tracked in the computer industry. The rise of
Windows, for example, set the whole computer industry back 10 years ..

~~~
matthewmacleod
_Its not nonsense - it used to be that you could write a new application for
your computer if you wanted to, easily enough, and you 'd have the exact same
tools as anyone else would have - because the computer shipped with them._

Yes, it is nonsense. Development tools are easily and freely available to
anybody who wants to use them.

 _The 'developers' arose as a class of society simply because computer use
became decoupled from application development._

Developers exist because development of applications is inherently more
complex than use of applications, almost by definition.

 _But this doesn 't actually do something_

It displays a window.

 _Used to be, you could write a functional application with 10 lines of code_

You still can, and you'll be able to accomplish a lot more than you could 25
years ago.

 _but now, because computing is being run by Fashion Directors (I agree with
you on this, btw) where 'trends' are more important than actual use, we get a
lot of weight added to the truss normally bearing the load of 'usefulness' to
the user._

I don't agree with you. Computers are being designed to aid users in
accomplishing tasks, which is exactly what they should do. That they are not
required to understand the internal workings is a _good_ thing.

~~~
fit2rule
I believe that the reason its so difficult to understand the internal workings
is the intention of the OS vendors - and this is not an altruistic purpose! If
computers were very easy to develop for, a lot of people who have a vested
interest in maintaining their control and secrecy might have to re-educate
themselves. What I see happening in the industry is the same thing that
happens in Class-based societies - as soon as there is an opportunity to draw
a line, it is drawn - and we then have two classes of people.

Repeat, ad infinitum ..

------
FrankenPC
This is an outline for a computer designed for the Person In The Street (or,
to abbreviate: the PITS); one that will be truly pleasant to use, that will
require the user to do nothing that will threaten his or her perverse delight
in being able to say: "I don't know the first thing about computers"

Interesting perspective :D

------
Al-Khwarizmi
It took a while for me to realize that there was a scrollbar, leading to more
content apart from the ad at the top.

