[comp.windows.x] Not impressed with MacX

hrf900@fac5.anu.oz.au (Hugh Fisher) (11/28/90)

There've been a lot of postings about X  on the PC, so I
thought people might be interested in the Apple side
of personal computing. Here is a quick review of MacX.

MacX is an X11 Release 4 server by Apple, which comes with
MacTCP for the actual networking. It will run on any Macintosh
with System 6 and requires 2M of RAM. I tried it on an SE/30
with an EtherNet adaptor.It costs $A275, which I guess is
$150-$200 in the US of A. MacX is not the same as the X
Windows development tools available for A/UX - it is just a
server for users of X clients.

Installing is easy enough: drag everything onto your hard disk
and reboot so that the communications INITs are working. After
that you just launch MacX like any other application.

You connect to a client program by issuing a 'Remote Command',
filling in a dialog with details of the host, your userid, and
the command itself, eg "xterm -display "Opus:0" -sb". This is
a bit tedious, but once set up you can save the lot and it
becomes a regular menu option, so now I just choose "xterm"
from the menu and the connection is made automatically. Once
you've got xterm open you can start other clients yourself.

The server seems quick enough on the SE/30, with response time
on tasks such as xeyes tracking and pop up menus comparable to
a Sun 3/80. The main problem was the tiny screen.

So much for the good points, on to criticism which is more fun.

One of Apples 'enhancements' is that instead of typing in your
host name, display number, etc you put -display "(R)display"
in the command and the actual name will be substituted at
execution. Gee, that's wonderful - why can't Unix let you do
that? Gosh us Apple owners have an advanced system...

Next is window management. Using the Apple window manager, you
have a choice of Mac-style window adornment, document without
grow box, document with grox box and zoom, etc. You can choose
these from the menu at any time, but Apple have thoughtfully
allowed you to specify these on the command line as well. How?
With the -borderwidth option, of course! Isn't it obvious that
-bw 2 means round cornered rectangle window?

Then there are the multiple screens. The default in MacX is
that there is no root window, all your X stuff just floats on
the desktop and is managed by the Mac Toolbox like the others.
To run an X window manager, you need a root window, which is
one big Apple window which all the others get put in. You also
have to specify that the clients be added to this root window,
by using screen number 1 (3 for color) instead of the default.
If you really do have multiple screens attached to your Mac,
they are treated as one big screen and cannot be referred to
individually.

These are irritating, but the kludge on the mouse buttons is
downright awful. Given that the Mac mouse has one button, how
would you simulate the three usually found on Unix boxes? I,
and all the programmers I asked this, expected some sort of
command-shift option as you press the button. What you actually
do is press the option and left arrow keys to simulate the
middle button and and option-right arrow for the right (You
can change this to just left arrow or right arrow, but then
those keys don't work normally.)

So, to get the middle button menu in twm you hold down the option
and left arrow keys with one hand, move the mouse down the menu
with the other, and release the keys when the mouse is over the
item you want. ACK!

In conclusion, I think that MacX would be good value if you just
wanted to look at the output from X clients, but I wouldn't
recommend it as a substitute for an X terminal.

Disclaimer: these opinions are entirely my own, not my employers.

coolidge@cs.uiuc.edu (John Coolidge) (11/29/90)

[Crossposting to comp.unix.aux added, as MacX will be bundled with A/UX
 in the next release]

hrf900@fac5.anu.oz.au (Hugh Fisher) writes:
>So much for the good points, on to criticism which is more fun.

>One of Apples 'enhancements' is that instead of typing in your
>host name, display number, etc you put -display "(R)display"
>in the command and the actual name will be substituted at
>execution. Gee, that's wonderful - why can't Unix let you do
>that? Gosh us Apple owners have an advanced system...

I'm not sure I understand this: do you like, or dislike, this feature?
It's certainly appreciated by me: I use MacX under A/UX and keep the
preferences file in an NFS volume. With the (R)display option I can
use the same MacX setup no matter which machine I'm logged into,
instead of having to switch setups for each mac.

>Next is window management. Using the Apple window manager, you
>have a choice of Mac-style window adornment, document without
>grow box, document with grox box and zoom, etc. You can choose
>these from the menu at any time, but Apple have thoughtfully
>allowed you to specify these on the command line as well. How?
>With the -borderwidth option, of course! Isn't it obvious that
>-bw 2 means round cornered rectangle window?

I agree that borderwidth is not an intuitive option; however, how
would you have specified the window style from Unix? The set of
command-line options to X programs is already established, and
there isn't a window-style option; on the other hand, the border
width option doesn't make any sense when describing Mac style
windows, which already have a set appearance. On the whole I find
this a fair if unappealing compromise. An alternative might have
been to require a '.windowstyle' declaration in the resources
database or a per-client setting in MacX; however, that doesn't
address setting style from the command line. It also doesn't
address having clients with multiple window styles (I'm running
epoch with two different styles, for instance).

>Then there are the multiple screens. The default in MacX is
>that there is no root window, all your X stuff just floats on
>the desktop and is managed by the Mac Toolbox like the others.
>To run an X window manager, you need a root window, which is
>one big Apple window which all the others get put in. You also
>have to specify that the clients be added to this root window,
>by using screen number 1 (3 for color) instead of the default.
>If you really do have multiple screens attached to your Mac,
>they are treated as one big screen and cannot be referred to
>individually.

Again, how would you prefer things to be arranged? There are
clearly at least two required screens: rooted and rootless. Color
and B/W are useful options as well. Making b/w rootless the
default (0.0) seems to be reasonable to me; that's almost the
only mode I ever use (on color machines I'll occasionally use
0.2). While it would be nice to address multiple physical
screens directly, the utility of having the different display
modes easily selectable outweighs it for me.

>These are irritating, but the kludge on the mouse buttons is
>downright awful. Given that the Mac mouse has one button, how
>would you simulate the three usually found on Unix boxes? I,
>and all the programmers I asked this, expected some sort of
>command-shift option as you press the button. What you actually
>do is press the option and left arrow keys to simulate the
>middle button and and option-right arrow for the right (You
>can change this to just left arrow or right arrow, but then
>those keys don't work normally.)

This is the X11 way of mapping middle and right buttons on the
Mac keyboard. The MIT X11 server uses the same system; thus,
MacX is not to blame for the policy. It might be nice to have
the option of using modifiers and the mouse button; however,
how would you represent shift-left, control-left, etc. in that
case? My only gripe about the keyboard is the brain-damaged
policy of putting meta on the uparrow key instead of on option
(where it is in the MIT server); this causes me no end of grief
with emacs. It would be very nice if this were a configurable
option instead of the only game in town. I'd rather have to go
over to the arrow keys to find options than go over there to
find meta...

>In conclusion, I think that MacX would be good value if you just
>wanted to look at the output from X clients, but I wouldn't
>recommend it as a substitute for an X terminal.

It depends on your application. I like to be able to use mac
tools, CommandShell, etc. I can't do that with full-screen X11R4
and I can't do it on an X terminal, and there's only so much
real estate on my desk what with the piles of manuals, papers,
CD's, disks, etc... :-). MacX is a very good compromise between
not having X and not having the mac as a mac --- and I'd be quite
unhappy without epoch and a few other X tools :-).

--John

--------------------------------------------------------------------------
John L. Coolidge     Internet:coolidge@cs.uiuc.edu   UUCP:uiucdcs!coolidge
Of course I don't speak for the U of I (or anyone else except myself)
Copyright 1990 John L. Coolidge. Copying allowed if (and only if) attributed.
You may redistribute this article if and only if your recipients may as well.

cwilson@NISC.SRI.COM (Chan Wilson [Animal]) (11/29/90)

In article <1990Nov28.150000.3600@csc.anu.oz.au> hrf900@fac5.anu.oz.au (Hugh Fisher) writes:
>There've been a lot of postings about X  on the PC, so I
>thought people might be interested in the Apple side
>of personal computing. Here is a quick review of MacX.
[....]
>These are irritating, but the kludge on the mouse buttons is
>downright awful. Given that the Mac mouse has one button, how
>would you simulate the three usually found on Unix boxes? I,
>and all the programmers I asked this, expected some sort of
>command-shift option as you press the button. What you actually
>do is press the option and left arrow keys to simulate the
>middle button and and option-right arrow for the right (You
>can change this to just left arrow or right arrow, but then
>those keys don't work normally.)

I think awful is a bit harsh for the mouse button kludge.  I've been
using MacX and X11R4 constantly for about 3 months now, and I would
much rather see the current setup than some seriously derranged
command-shift hack.  After using X for a while, there actually 
begins to be a glimmering of logic behind the layout.  The mousebutton
itself is the first button.  <- is the second button.  -> is the third
button.   All in a nice row.  

But hey, it's obviously a matter of taste.  Me myself, this topic will
become irrelivent as soon as my 3 button mouse comes in.   Then I just
need to unpatch the server so I've got the arrow keys back and 
option is enabled.

For those of you interested in 3 button mice for Macs running X windows, 
contact Advanced Gravis at 800/663-8558.  The only 3 button mouse for
Macs running X windows.  (yah, i'm aware of the 3 button mouse for macivory.)

Enjoy!

--Chan

Chan Wilson                                  Chief Hard-Question Answer Person
SRI Intl. Network Information Systems Center
333 Ravenswood Ave., EJ287			Internet: cwilson@nisc.sri.com
Menlo Park, CA., 94025				Phone: (415)859-4492
    "If I want to be a surfer this month, I bloody well will be."

mouse@LIGHTNING.MCRCIM.MCGILL.EDU (11/29/90)

> MacX is [...].
> So much for the good points, on to criticism which is more fun.

Ain't it though? :-)

> [T]he kludge on the mouse buttons is downright awful.  Given that the
> Mac mouse has one button, how would you simulate the three usually
> found on Unix boxes?

I know this was a rhetorical question, but I can't resist answering it
anyway.

I wouldn't simulate them.  I would have the X server provide a pointer
device with only one button.  That's what you have, after all.

Kludges to support broken clients that blindly assume the presence of
(at least) three buttons on the pointer device only ensure that said
broken clients don't get fixed.

					der Mouse

			old: mcgill-vision!mouse
			new: mouse@larry.mcrcim.mcgill.edu

mouse@LIGHTNING.MCRCIM.MCGILL.EDU (11/29/90)

[ re MacX ]

>> One of Apples 'enhancements' is that instead of typing in your host
>> name, display number, etc you put -display "(R)display" in the
>> command and the actual name will be substituted at execution.  Gee,
>> that's wonderful - why can't Unix let you do that?  Gosh us Apple
>> owners have an advanced system...
> I'm not sure I understand this: do you like, or dislike, this
> feature?

Well, he *did* put it under "criticism", and the wording is a bit
overblown.  I think he's criticizing.

I tend to agree; it's a poor substitute for having a real operating
system with some analog to a DISPLAY environment variable (as an
example of such an analog, consider logical names under VMS).

> It's certainly appreciated by me: I use MacX under A/UX and keep the
> preferences file in an NFS volume.  With the (R)display option I can
> use the same MacX setup no matter which machine I'm logged into,
> instead of having to switch setups for each mac.

Seems to be xinit should put hostname:0 (or something similar) into the
DISPLAY environment variable.

What, no xinit analog?  No hostname either?  No $DISPLAY analog, even?
Gosh you Apple owners have an advanced system....

>> Next is window management.  Using the Apple window manager, you have
>> a choice of Mac-style window adornment, document without grow box,
>> document with grox box and zoom, etc.  You can choose these from the
>> menu at any time, but Apple have thoughtfully allowed you to specify
>> these on the command line as well.  How?  With the -borderwidth
>> option, of course!  Isn't it obvious that -bw 2 means round cornered
>> rectangle window?
> I agree that borderwidth is not an intuitive option; however, how
> would you have specified the window style from Unix?

I wouldn't expect to.  That's a window manager function; I expect to
control it by telling the *window manager* things, not by telling the
*client* things!

>> Then there are the multiple screens.  The default in MacX is
>> [rootless - X windows are Mac windows].  To run an X window manager,
>> you need a root window, which is one big Apple window which all the
>> others get put in.  If you really do have multiple screens attached
>> to your Mac, they are treated as one big screen and cannot be
>> referred to individually.
> Again, how would you prefer things to be arranged?

How about the way everybody else does it?  You start the X server, it
takes over your screen, keyboard, and mouse, and there you are.  No
fash with a root window that is actually inside a Mac window, or is
partly invisible because of multiple monitors, or doesn't even exist.
(Multiple monitors should be separate screens.  If the hardware
differs, they should offer visuals with different capabilities.)

>> These are irritating, but the kludge on the mouse buttons is
>> downright awful.  Given that the Mac mouse has one button, how would
>> you simulate the three usually found on Unix boxes?

I've already addressed this in another post.  In short: make the X
pointer device match reality - make it have only one button.

> The MIT X11 server [...].

There's an MIT X11 server for the Mac?  Where and how can one get it?

> My only gripe about the keyboard is the brain-damaged policy of
> putting meta on the uparrow key instead of on option (where it is in
> the MIT server); this causes me no end of grief with emacs.  It would
> be very nice if this were a configurable option instead of the only
> game in town.

Good heavens, can't you xmodmap it back to something saner?

					der Mouse

			old: mcgill-vision!mouse
			new: mouse@larry.mcrcim.mcgill.edu

x@springer.Apple.COM (Steve Peters) (11/30/90)

In article <9011290206.AA00343@lightning.McRCIM.McGill.EDU>,
mouse@LIGHTNING.MCRCIM.MCGILL.EDU writes:
|> I wouldn't simulate them.  I would have the X server provide a
pointer
|> device with only one button.  That's what you have, after all.
|> 
|> Kludges to support broken clients that blindly assume the presence
of
|> (at least) three buttons on the pointer device only ensure that said
|> broken clients don't get fixed.

We thought about this, briefly, very briefly. A quick poll of our field
convinced us that we we would never again sell an X product if we were
to adopt such an approach. The hard, ugly, X reality ( ;-) ) is dressed
with 3 buttons.
--
Steve Peters
X Project Leader
Apple Computer, Inc.
peters@apple.apple.com

zimmer@cod.NOSC.MIL (Thomas L. Zimmerman) (11/30/90)

>complaints about the way  MacX treats the display variable, window boarders
>rooted vs. non-rooted windows, etc.

The folks doing the complaining seem to be missing the whole point of
MacX. It is not intended to be a consistent X environment like that on
a UNIX workstation. For that you can run A/UX and real X11R4. In that
environment X Windows works exactly like it does on my Sun (except
for the stupid one button mouse). MacX does do some things different than
a normal X Server, but I consider these to be valid enhancements or
compromises - especially when you consider that the majority of Macintosh
users are not "power users". MacX is an excellent attempt at bringing the
ability to run X Windows to the "rest of us". It should be easy to use and
primarily it should complement the MacOS environment. Thus the preference
for rootless windows, default display variable passing, and the rest
of the differences cited. 

I have both a MacFX and a SPARCStation. The mac
normally runs the normal MacOS and I make heavy use of MacX to talk to
the Sun. The Sun runs X Windows all the time.  I move back and forth
regularly and have no problems (exceptt the mouse :-)). I love being able 
to mix up the X windows clients with my favorite Mac applications. If MacX 
worked like many of you seem to think it should all I would have is a very 
expensive X terminal. (I know, some people think that would be an 
improvement :-)) I suspect we will see this same issue when the X Servers
for Windows become generally available and I predict that the poor
braindead people who like DOS and Windows ;-) aren't going to want to
give up their applications just to run X either.

--------------------------------------------------------------------------
Lee Zimmerman		zimmer@nosc.mil
Naval Ocean Systems Center, Advanced Concepts and Development Branch
--------------------------------------------------------------------------
-- 
Lee Zimmerman, Naval Ocean Systems Center, Code 421, San Diego, CA, 92152
{arpa,mil}net: zimmer@nosc.mil
uucp: {ihnp4,akgua,decvax,dcdwest,ucbvax}!sdcsvax!nosc!zimmer

barmar@think.com (Barry Margolin) (11/30/90)

In article <1990Nov28.234514.9078@julius.cs.uiuc.edu> coolidge@cs.uiuc.edu writes:
>hrf900@fac5.anu.oz.au (Hugh Fisher) writes:
>>Isn't it obvious that
>>-bw 2 means round cornered rectangle window?
>An alternative might have
>been to require a '.windowstyle' declaration in the resources
>database or a per-client setting in MacX; however, that doesn't
>address setting style from the command line. It also doesn't
>address having clients with multiple window styles (I'm running
>epoch with two different styles, for instance).

Standard Unix X clients accept an argument (I think it's "-rm") that allows
arbitrary resource settings to be specified for that client.  Wouldn't that
address setting style from the command line and having clients with
different styles?
--
Barry Margolin, Thinking Machines Corp.

barmar@think.com
{uunet,harvard}!think!barmar

barmar@think.com (Barry Margolin) (11/30/90)

In article <9011290612.AA00580@lightning.McRCIM.McGill.EDU> mouse@LIGHTNING.MCRCIM.MCGILL.EDU writes:
>>> One of Apples 'enhancements' is that instead of typing in your host
>>> name, display number, etc you put -display "(R)display" in the
>>> command and the actual name will be substituted at execution.  Gee,
>>> that's wonderful - why can't Unix let you do that?  Gosh us Apple
>>> owners have an advanced system...
>I tend to agree; it's a poor substitute for having a real operating
>system with some analog to a DISPLAY environment variable (as an
>example of such an analog, consider logical names under VMS).

Even on "real" operating systems environment variables don't cross machine
and OS-type boundaries.  The problem this is trying to solve is that the
user is issuing the command on one system (the Mac) but it will be executed
on some other system, which could presumably be running any OS.

What's needed is a standard protocol for running remote X clients in such a
way that the display identity is passed along in an OS-independent manner.
MacX is presumably using some de facto standard protocol such as the BSD
rexec() mechanism; all this can do is pass the user name and a command
line, so even if the Mac had environment variables it couldn't pass them.
Substituting into the command line seems like a reasonable workaround for
this missing protocol.

Similar kludges are used in the Unix world.  We have an "xrsh" shell script
that invokes rsh but adds commands to the command line that set DISPLAY on
the remote system (appropriate handling special cases such as
"unix:<whatever>").  It's no less a kludge than the mechanism MacX uses.

>Seems to be xinit should put hostname:0 (or something similar) into the
>DISPLAY environment variable.
>
>What, no xinit analog?  No hostname either?  No $DISPLAY analog, even?
>Gosh you Apple owners have an advanced system....

What are you talking about?  Of course there's a $DISPLAY analog: what do
you think it replaces "(R)display" with?  The problem is that the xinit
analog is run on a different host from the clients.

>> I agree that borderwidth is not an intuitive option; however, how
>> would you have specified the window style from Unix?
>I wouldn't expect to.  That's a window manager function; I expect to
>control it by telling the *window manager* things, not by telling the
>*client* things!

OK, so how would you tell the window manager these kinds of things?  In
general, it is done by telling the client (e.g. with the -geometry option),
who then tells the window manager.  I suppose it could be done
interactively in a manner analogous to placement, but just as a client can
provide defaults to the WM or ask it not to provide manual placement, it
should be able to specify defaults and suggestions for border options.  The
problem here is that this window manager provides capabilities that clients
aren't yet prepared to control.

>How about the way everybody else does it?  You start the X server, it
>takes over your screen, keyboard, and mouse, and there you are.  No
>fash with a root window that is actually inside a Mac window, or is
>partly invisible because of multiple monitors, or doesn't even exist.

If the X server takes over the display completely, how do you use all your
Macintosh applications?  Maybe someday the Macintosh toolbox will be able
to translate Window Manager calls into X operations while the X server has
control of the display, but that day isn't here yet.  Until then, the X
server must coexist with the builtin window manager.

>(Multiple monitors should be separate screens.  If the hardware
>differs, they should offer visuals with different capabilities.)

That's a matter of opinion.  The Macintosh OS designers decided to treat
multiple monitors as pieces of a big virtual display.  This allowed
existing applications to make use of them immediately.


>>> These are irritating, but the kludge on the mouse buttons is
>>> downright awful.  Given that the Mac mouse has one button, how would
>>> you simulate the three usually found on Unix boxes?
>
>I've already addressed this in another post.  In short: make the X
>pointer device match reality - make it have only one button.

You're right, by the "mechanism, not policy" rule.  But at least admit that
it is a hard problem.

The actual situation is that most clients have an implicit expectation of
minimal functionality from the X server.  As far as these clients are
concerned, an X server without less than three buttons is as crippled as
one without an "A" key.

Before we trash all the clients that expect three buttons, how about all
the ones that require *color*, and don't fall back to patterns when
confronted with a monochrome display.  I'm getting sick of all these
X-based network management packages that insist on using color, since I am
not likely to be upgrading my Lisp Machine to color.

>> The MIT X11 server [...].
>There's an MIT X11 server for the Mac?  Where and how can one get it?

I think assume he was referring to the one that runs under A/UX, which I
think has been around for a while.

--
Barry Margolin, Thinking Machines Corp.

barmar@think.com
{uunet,harvard}!think!barmar

erc@pai.UUCP (Eric Johnson) (11/30/90)

Problem: The Macintosh has a one-button mouse, but far too many X
programs require a three-button mouse. That's also why PC X terminal
emulators and HP (both of which extensively use two-button mice)
emulate the "middle" mouse button (button 2) by having the user
hold down both physical mouse buttons at once. Der mouse, who usually
gives great advice, doesn't want to emulate "missing" mouse buttons:

In article <1990Nov29.110947@springer.Apple.COM>, x@springer.Apple.COM (Steve Peters) writes:
> In article <9011290206.AA00343@lightning.McRCIM.McGill.EDU>,
> mouse@LIGHTNING.MCRCIM.MCGILL.EDU writes:
> |> I wouldn't simulate them.  I would have the X server provide a
> pointer
> |> device with only one button.  That's what you have, after all.
> |> 
> |> Kludges to support broken clients that blindly assume the presence
> of
> |> (at least) three buttons on the pointer device only ensure that said
> |> broken clients don't get fixed.

Unfortunately, from xterm on, just about every client that uses the
mouse uses more than one button. Most Athena wdiget-based programs,
such as xterm, use button 1 to select and button 2 to paste (they
could probably do without button 3).  Most window managers, including twm,
use more than one mouse button for various purposes. Twm also has
an extensive set of Meta-button functions--although twm is much better
than uwm in this regard. (Mwm seems better in using mouse buttons.)

Now, I know all this can be configured, but it's a mighty pain. And,
just try to explain all this mess to new users. Ugh. I agree that the
programs should be changed to provide simpler interfaces that use 
the mouse in a less confusing manner (new users typically have a hard
time determining which mouse buttons do what). But, will these X clients
change? Probably not. Even if I were to volunteer :-), I have a feeling
that the X Consortium has a lot more say about programs like xterm
and the Athena widget set than I do. Same with the OSF for Motif and AT&T/Sun
for Open Look.

The bottom line: we're stuck with three-button mice. If you don't have
a three-button mouse (which I don't when using a PC as an xterm under
Hummingbird's software), you have to emulate a three-button mouse, or else
you won't be nearly as productive using X, as you would be using a three-button
mouse. ("Won't be nearly as productive" is a euphemism for "life 
will be hell.")

> We thought about this, briefly, very briefly. A quick poll of our field
> convinced us that we we would never again sell an X product if we were
> to adopt such an approach. The hard, ugly, X reality ( ;-) ) is dressed
> with 3 buttons.

> Steve Peters
> X Project Leader
> Apple Computer, Inc.
> peters@apple.apple.com

By the way, with Macintosh emulations of X, I've had a much better time
using the large Apple keyboard, often called the "Saratoga" keyboard
(named after the aircraft carrier because of the large size). I didn't
like my arrow keys being eaten up since I use text editors a lot. (The 
standard Mac scheme was that the <- and -> keys, I believe, act as mouse
keys, while [SpecialKey]<- and [SpecialKey]-> gets you the real arrow
keys. I personally like arrow keys that act as arrow keys.) The
"Saratoga" keyboard looks a lot like a PC-style keyboard, although many
Mac folks would hate to admit that.

Have fun,
-Eric

-- 
Eric F. Johnson               phone: +1 612 894 0313    BTI: Industrial
Boulware Technologies, Inc.   fax:   +1 612 894 0316    automation systems
415 W. Travelers Trail        email: erc@pai.mn.org     and services
Burnsville, MN 55337 USA

rmtodd@servalan.uucp (Richard Todd) (11/30/90)

mouse@LIGHTNING.MCRCIM.MCGILL.EDU writes:

>> It's certainly appreciated by me: I use MacX under A/UX and keep the
>> preferences file in an NFS volume.  With the (R)display option I can
>> use the same MacX setup no matter which machine I'm logged into,
>> instead of having to switch setups for each mac.

>Seems to be xinit should put hostname:0 (or something similar) into the
>DISPLAY environment variable.

>What, no xinit analog?  No hostname either?  No $DISPLAY analog, even?
>Gosh you Apple owners have an advanced system....

  Well, MacX was written for MacOS, which by the standards you and I use
doesn't even come close to being an advanced operating system :-).  It 
is interesting that, even for those using MacX under A/UX, they don't 
have some sort of xinit equivalent (or just have the standard xinit with 
a config file setup to launch MacX, since it *is* possible to start up MacOS
programs under A/UX from the shell prompt...)  

>I wouldn't expect to.  That's a window manager function; I expect to
>control it by telling the *window manager* things, not by telling the
>*client* things!

  Alas, they seem to be providing by default that is just as configurable as
is the standard window management facilities of MacOS -- i.e., not at all.  

>>> Then there are the multiple screens.  The default in MacX is
>>> [rootless - X windows are Mac windows].  To run an X window manager,
>>> you need a root window, which is one big Apple window which all the
>>> others get put in.  If you really do have multiple screens attached
>>> to your Mac, they are treated as one big screen and cannot be
>>> referred to individually.
>> Again, how would you prefer things to be arranged?

>How about the way everybody else does it?  You start the X server, it
>takes over your screen, keyboard, and mouse, and there you are.  No
>fash with a root window that is actually inside a Mac window, or is
>partly invisible because of multiple monitors, or doesn't even exist.
>(Multiple monitors should be separate screens.  If the hardware
>differs, they should offer visuals with different capabilities.)

Ah.  Well, they obviously could have done this that way, but evidently one
of the design goals of MacX is that it *doesn't* take over the screen--you
still have access to those MacOS applications that are still running and
can "see" them (and, if necessary, click on their windows and interact with
them).  (Rumour has it that they even manage to support cut-and-paste
between X applications and MacOS ones properly; that sounds like a
decidedly non-trivial bit of programming...)  This simultaneous access
pretty much demands that you have the individual X windows appear as MacOS
windows and handled by a MacOS-style window manager; the "root window"
approach is evidently a concession for those Wrong Thinkers who stubbornly
prefer to use twm, etc., instead of the MacOS style of window management.

>> The MIT X11 server [...].

>There's an MIT X11 server for the Mac?  Where and how can one get it?

Same place as you get MIT X11 for a Sun, etc. : expo.lcs.mit.edu or other
friendly archive site that has the X11R4 distribution.  Of course, the 
X11R4 distribution only will compile under Unix (A/UX) and not MacOS, and
can't share the screen with MacOS.  But if (like me) you think a Mac without
Unix is just an overpriced paperweight, and you only use MacOS applications
on rare occasions, it's terrific.  (As it happens, I'm running MIT X11R4
and writing this message with Epoch right now on my Mac IIx....)
  I should mention here that Apple also sells their own X11R4 package for
A/UX, which reportedly includes some internal Consortium bug fixes that won't
make it out publically until X11R5 (whenever that materializes) plus assorted
speedups; it's also a good deal for those who aren't up to or don't have the
disk space to compile MIT X11R4 themselves.

>> My only gripe about the keyboard is the brain-damaged policy of
>> putting meta on the uparrow key instead of on option (where it is in
>> the MIT server); this causes me no end of grief with emacs.  It would
>> be very nice if this were a configurable option instead of the only
>> game in town.

>Good heavens, can't you xmodmap it back to something saner?

Dunno, but I will add a small correction of fact: meta isn't mapped to the
option key under MIT X11R4; it's mapped to the "Command" key, whose
function is already spoken for under MacOS.

In summary, I'd like to say this: MacX certainly looks like it has a good deal
of what we Unix X types would call braindamage.  But given that it has to work
under a thouroughly braindamaged operating system, and that the design goal
was to make X applications fit in well with the MacOS environment, they 
probably did as good a job as one has any hope to expect.  
--
Richard Todd	rmtodd@uokmax.ecn.uoknor.edu  rmtodd@chinet.chi.il.us
	rmtodd@servalan.uucp
"Cancelling a posted message means posting a cancel message."-Maarten Litmaath

liam@cs.qmw.ac.uk (William Roberts) (12/01/90)

My only "purist" complaint about MacX is that it tells lies: the information 
returned when you make a connection always claims to support colour (and may 
even lie about the screen size). The Mac system knows the truth, so why 
doesn't MacX?

My non-purist complaint is that MacX doesn't seem able to use the fonts 
already installed in the System, requiring you instead to duplicate everything.
--

William Roberts                 ARPA: liam@cs.qmw.ac.uk
Queen Mary & Westfield College  UUCP: liam@qmw-cs.UUCP
Mile End Road                   AppleLink: UK0087
LONDON, E1 4NS, UK              Tel:  071-975 5250 (Fax: 081-980 6533)

abm@alan.aux.apple.com (Alan Mimms) (12/01/90)

In article <1990Nov29.230100.18696@Think.COM>, barmar@think.com (Barry Margolin) writes:
|> In article <1990Nov28.234514.9078@julius.cs.uiuc.edu> coolidge@cs.uiuc.edu writes:
|> >hrf900@fac5.anu.oz.au (Hugh Fisher) writes:
|> >>Isn't it obvious that
|> >>-bw 2 means round cornered rectangle window?
|> >An alternative might have
|> >been to require a '.windowstyle' declaration in the resources
|> >database or a per-client setting in MacX; however, that doesn't
|> >address setting style from the command line. It also doesn't
|> >address having clients with multiple window styles (I'm running
|> >epoch with two different styles, for instance).
|> 
|> Standard Unix X clients accept an argument (I think it's "-rm") that allows
|> arbitrary resource settings to be specified for that client.  Wouldn't that
|> address setting style from the command line and having clients with
|> different styles?

I hope to be able to correct this and a few other things at which people
are sniping about MacX in a future release (can you say "2.0"?).
Good suggestion, and it's one that was obvious from approximately the
day AFTER the last possible date that such things could be changed in
MacX 1.0 during the "now I've got time to catch my breath" stage just
before MacX shipped.

Such is life when products are produced by too few people working too
hard.

|> --
|> Barry Margolin, Thinking Machines Corp.
|> 
|> barmar@think.com
|> {uunet,harvard}!think!barmar

-- 

Alan Mimms (alan@apple.com, ...!apple!alan)   | My opinions are generally
A/UX X group                                  | pretty worthless, but
Apple Computer                                | they *are* my own...
"Laugha whila you can, monkey boy..." -- John Whorfin in Buckaroo Bonzai
"Never rub another man's rhubarb" -- The Joker in BatMan

abm@alan.aux.apple.com (Alan Mimms) (12/01/90)

In article <2776@redstar.cs.qmw.ac.uk>, liam@cs.qmw.ac.uk (William Roberts) writes:
|> My only "purist" complaint about MacX is that it tells lies: the information 
|> returned when you make a connection always claims to support colour (and may 
|> even lie about the screen size). The Mac system knows the truth, so why 
|> doesn't MacX?

Because MacX can display output from color-only clients (of which there
are a FEW) on a monochrome screen (either depth converting or not) it
is pretty reasonable to lie about this.  Especially since MacX is
set up to permit choice of color or monochrome visuals by choice of
"screen number".

|> 
|> My non-purist complaint is that MacX doesn't seem able to use the fonts 
|> already installed in the System, requiring you instead to duplicate everything.

I would suggest you RTFM.  MacX has full support of the System file's
fonts, available and reorderd into ISO-Latin/1 for you as you like.
You can assign them X-style names using the Font Director's alias functionality or use them using the normal MacX
naming convention for the (i.e., "Chicago-12").

|> --
|> 
|> William Roberts                 ARPA: liam@cs.qmw.ac.uk
|> Queen Mary & Westfield College  UUCP: liam@qmw-cs.UUCP
|> Mile End Road                   AppleLink: UK0087
|> LONDON, E1 4NS, UK              Tel:  071-975 5250 (Fax: 081-980 6533)

-- 

Alan Mimms (alan@apple.com, ...!apple!alan)   | My opinions are generally
A/UX X group                                  | pretty worthless, but
Apple Computer                                | they *are* my own...
"Laugha whila you can, monkey boy..." -- John Whorfin in Buckaroo Bonzai
"Never rub another man's rhubarb" -- The Joker in BatMan

mikey@sgi.com (Mike Yang) (12/02/90)

In article <9011290206.AA00343@lightning.McRCIM.McGill.EDU> mouse@LIGHTNING.MCRCIM.MCGILL.EDU writes:
>I wouldn't simulate them.  I would have the X server provide a pointer
>device with only one button.  That's what you have, after all.
>
>Kludges to support broken clients that blindly assume the presence of
>(at least) three buttons on the pointer device only ensure that said
>broken clients don't get fixed.

I'm sorry, but this is just getting silly.  While I understand your
attempt to accomodate the "lowest common denominator" the sad fact is
that almost all X configurations have three-button mice.
Unfortunately, most Macintoshes do not.

Where do you draw the line?  Motif tries to handle the case on
configurations with no mice at all.  Do you propose that all non-Motif
applications which assume that there is a mouse "fix" themselves so
that they no longer do?

Some applications can get by quite easily with using only the left
mouse button.  However, for those that can't, hindering those users
with a "standard" configuration is unacceptable.  Special handling of
the rare case in the application itself is also wrong, since the extra
work needs to be duplicated among all applications, and will most
likely be done in an inconsistent manner.

It is unfortunate that the Mac has a one-button mouse as a standard,
just as HP systems have a two-button mouse.  However, their X
server designers made the right decision in providing a "standard"
method of simulating the extra buttons.  The users may not like it,
but the solution was the best.

Thankfully, I work for a company where the LCD system has 8-plane
color and a three-button mouse.

-----------------------------------------------------------------------
                 Mike Yang        Silicon Graphics, Inc.
               mikey@sgi.com           415/335-1786

mayer@hplabsz.HPL.HP.COM (Niels Mayer) (12/02/90)

In article <1990Dec1.200407.17688@relay.wpd.sgi.com> mikey@sgi.com (Mike Yang) writes:
>It is unfortunate that the Mac has a one-button mouse as a standard,
>just as HP systems have a two-button mouse.

WRONG!

HPs have whatever I/O devices you order them with. Before X, HP promoted a
two-button mouse. With the advent of X, three button mice were made
available, and there's all sorts of other devices that you can throw onto
HP's Human-Interface Loop (HIL) as well, e.g. trackballs, pucks, styluses,
knob boxes, button boxes, or whatever.

I personally dislike mice, so I use a three button trackball instead (HP
Part # M1309A). There's also an HIL-to-quadrature adaptor available that
will allow you to interface to PC input devices that you can find at your
local/mailorder microcomputer supplier.

(PS: Don't ask me for part numbers and more info -- call your HP sales rep)

-------------------------------------------------------------------------------
	    Niels Mayer -- hplabs!mayer -- mayer@hplabs.hp.com
		  Human-Computer Interaction Department
		       Hewlett-Packard Laboratories
			      Palo Alto, CA.
				   *

mouse@LIGHTNING.MCRCIM.MCGILL.EDU (12/03/90)

> Problem: The Macintosh has a one-button mouse, but far too many X
> programs require a three-button mouse.  [That's why servers using
> mice with fewer than three buttons often fake the "missing" ones.]
> Der mouse [...] doesn't want to emulate "missing" mouse buttons:

>>> I wouldn't simulate them.  I would have the X server provide a
>>> pointer device with only one button.  That's what you have, after
>>> all.  Kludges to support broken clients that blindly assume the
>>> presence of (at least) three buttons on the pointer device only
>>> ensure that said broken clients don't get fixed.

> Unfortunately, from xterm on, just about every client that uses the
> mouse uses more than one button.

That doesn't mean they aren't broken.  To pick an analogy in another
realm, NULL is traditionally defined as 0, and much of the X code uses
it in contexts where integer 0 is desired.  Does this then mean that
NULL must always be 0?  No, it means that there's a lot of broken code
around.  See also the "all the world's a VAX" syndrome (which is now,
mercifully, beginning to fade away (to be replaced by "all the world's
an 8086 :-)).  (Try building X on a machine which has NULL defined as
(void *)0 and you'll see what I mean.)

For that matter, I have seen at least three X clients that break if you
don't use PointerRoot focus, in that if the mouse is not inside their
window they ignore keystrokes, even if the window manager has given the
keyboard focus to the window in question.  Shall we therefore require
all window managers to use PointerRoot focus?

Just because a given brokenness is widespread doesn't make it any less
broken.  And since I, unlike

>> We thought about this, briefly, very briefly. A quick poll of our
>> field convinced us that we we would never again sell an X product if
>> we were to adopt such an approach. The hard, ugly, X reality ( ;-) )
>> is dressed with 3 buttons.

>> X Project Leader
>> Apple Computer, Inc.

don't have a customer base that must be catered to no matter how
unreasonable they get, I can refuse to support such brokenness.  My
X11R4 on the NeXT presents a pointer device with only two buttons.  I
have received two different patches to implement the "missing" button
by chording the two existing buttons.  Neither one will go in (though I
will distribute them with the thing, once I get around to rebuilding
the distribution.)

In another note, someone from SGI said that it had the luxury of always
being on an 8-bit PseudoColor server with a 3-button mouse.  I can just
see programs from such a person[%] blindly assuming an 8-bit
PseudoColor visual as the default.  Does this then mean that all
servers must provide an 8-bit PseudoColor visual?  No, it means that
such programs are broken!

X has always promised the existence of a pointer device.  I'm not sure
whether it promises the existence of at least one pointer button.  It
has never promised more than one button.

[%] I don't remember who this person was, and don't mean this
    personally - I have no basis for judging the portability of your
    code, never having seen any of it.

					der Mouse

			old: mcgill-vision!mouse
			new: mouse@larry.mcrcim.mcgill.edu

raveling@Unify.com (Paul Raveling) (12/04/90)

In article <1990Nov29.110947@springer.Apple.COM>, x@springer.Apple.COM
(Steve Peters) writes:

	[About 1-button mice]

> ... The hard, ugly, X reality ( ;-) ) is dressed
> with 3 buttons.

	My view is that the ugliest part of reality is that some
	[Apple] systems have a mouse with only one button.  Given
	a choice of using additional buttons or modal coding via
	multiple clicks or shift keys, extra buttons are easier
	to use.

	In fact, sometimes I even wish for a 5-button mouse --
	and X is ready for it, even if "normal" clients aren't.

	BTW, the one-button mouse was a key factor in my decision
	a few years ago to buy a PC-AT clone instead of a Lisa.
	Since then Apple's attempt to claim look & feel as its
	private property has become a bigger reason to avoid an
	otherwise decent product IM[H?]O.


------------------
Paul Raveling
Raveling@Unify.com

mls@cbnewsm.att.com (mike.siemon) (12/04/90)

In article <1557@pai.UUCP>, erc@pai.UUCP (Eric Johnson) writes:
> 
> Problem: The Macintosh has a one-button mouse, but far too many X
> programs require a three-button mouse...  Der mouse, who usually
> gives great advice, doesn't want to emulate "missing" mouse buttons:

I didn't read der Mouse that way, but rather as encouraging X programmers
to code at a level where functionality maps to hardware with SOME chance
of remapping to fit reality.

Let me point out (without, I hope, sounding too much like an ad, since
my point here is more one of general software architecture) that OPEN
LOOK provides (and compliant O.L. applications use) just this scheme --
one's prgram gets SELECT or ADJUST or MENU notifications, and the toolkit
sees to mapping these from actual button pushes -- a user may configure
to any of 3, 2 or 1 button mice (or can even configure a 3 button mouse
to operate like MacX :-)).  What OPEN LOOK provides as toolkit *can* be
done -- with a bit more work -- by pure X applications.
-- 
Michael L. Siemon		In so far as people think they can see the
m.siemon@ATT.COM		"limits of human understanding", they think
...!att!sfsup!mls		of course that they can see beyond these.
standard disclaimer				-- Ludwig Wittgenstein

mikey@eukanuba.wpd.sgi.com (Mike Yang) (12/04/90)

In article <9012030339.AA05092@lightning.McRCIM.McGill.EDU>, mouse@LIGHTNING.MCRCIM.MCGILL.EDU writes:
|> In another note, someone from SGI said that it had the luxury of always
|> being on an 8-bit PseudoColor server with a 3-button mouse.  I can just
|> see programs from such a person[%] blindly assuming an 8-bit
|> PseudoColor visual as the default.  Does this then mean that all
|> servers must provide an 8-bit PseudoColor visual?  No, it means that
|> such programs are broken!
|> 
|> [%] I don't remember who this person was, and don't mean this
|>     personally - I have no basis for judging the portability of your
|>     code, never having seen any of it.

I wasn't claiming that applications which assumed 8-bit color are
portable and aren't broken.  I was just acknowledging the portability
problem but pointing out that at SGI, when we develop software for our
platforms which *don't* have to work on other vendor's hardware, we
thankfully can assume simple things like color.

I agree that applications which are meant to run across hardware
platforms should work with some lowest common denominator.  I just
don't agree how with you on how low this should be.

-----------------------------------------------------------------------
                 Mike Yang        Silicon Graphics, Inc.
               mikey@sgi.com           415/335-1786

mouse@LARRY.MCRCIM.MCGILL.EDU (12/04/90)

[ MacX, one-button mice, and faking "missing" buttons ]

> ... attempt to accomodate the "lowest common denominator" ...

> Where do you draw the line?  Motif tries to handle the case on
> configurations with no mice at all.  Do you propose that all
> non-Motif applications which assume that there is a mouse "fix"
> themselves so that they no longer do?

No.  X has always promised the existence of a pointer device.  It has
never promised the existence of at least three buttons on the pointer.
(I am not sure whether it promises the existence of any buttons.)  IMO,
Motif goes overboard if it tries to accommodate servers with no pointer
device.

					der Mouse

			old: mcgill-vision!mouse
			new: mouse@larry.mcrcim.mcgill.edu

schoch@sheba.arc.nasa.gov (Steve Schoch) (12/05/90)

In article <9011290206.AA00343@lightning.McRCIM.McGill.EDU>, mouse@LIGHTNING.MCRCIM.MCGILL.EDU writes:
|> I wouldn't simulate them.  I would have the X server provide a pointer
|> device with only one button.  That's what you have, after all.
|> 
|> Kludges to support broken clients that blindly assume the presence of
|> (at least) three buttons on the pointer device only ensure that said
|> broken clients don't get fixed.

Related question:

	I'm using twm.  I sometimes use it on a X server with a two-button
mouse.  Is there anyway to test for this in .twmrc and change the button
mapping?

	Steve

erc@pai.UUCP (Eric Johnson) (12/05/90)

    [A discussion regarding systems that have fewer than three mouse buttons
    and what to do about it, since so many X programs wrongly assume three 
    mouse (pointer) buttons are available...]

lightning.McRCIM.McGill.EDU!mouse (der Mouse) writes...
>>> ...I wouldn't simulate them...
>>> ...[if you do simulate the "missing" mouse buttons, it would]
>>> ensure that said broken clients don't get fixed.

I wrote...
>> Unfortunately, from xterm on, just about every client that uses the
>> mouse uses more than one button.

lightning.McRCIM.McGill.EDU!mouse writes...
> That doesn't mean they aren't broken.  

    No offense, but I really don't care what's considered broken and what 
    isn't. What I worry about includes time and hassles. How much time and
    how much hassle is it going to take to get a working system? 

    A real example: I tried to set up Interactive's 386/ix with a system
    that had a two-button Microsoft mouse. The X version was a customized R3
    that ISC delivered and it came with the uwm window manager. (This was a 
    few versions ago.) Uwm was essentailly unusable out of the box, because
    you needed the third mouse button (which was NOT emulated).

    The end system was intended for my boss, a new X user at the time. I'm
    sorry, but it's rather hard to explain not only how to get X going but
    that nothing will work as documented and that everything must be
    reconfigured--using a very primitive and confusing configuration
    mechanism (for a graphical interface, X is pretty hard to configure).

    The ISC people seem to have changed their tune now, but originally they
    followed your advice. Maybe you're correct. I don't care (again, no
    offense intended). All I know is that the hassle level went way up. Maybe
    I should have ported R4 (386 Unix vendors are only now offering R4 and
    only some of them at that), because R4 twm is much better with these
    issues, but frankly, I didn't have the the time. Again, I care about
    time and hassles.

    Another real example: Early versions of the Sun OpenWindows X/NeWS server
    presented a StaticColor visual as the default, instead of the more common
    PseudoColor visual. Technically, the Sun version was correct, and I'm sure
    Rosenthal et al could quote all the religious dogma to that effect. I
    really don't care. What it meant was that a lot of software (especially
    the X contrib stuff) simply wouldn't work. At that point, it didn't matter
    who was correct, just that I had to spend a lot of time getting things to
    run. Now, I still see no good reason for the StaticColor default. Using a 
    PseudoColor default would have also been technically correct and would have
    made my life a lot easier since I was using a lot of non-technically-
    correct software. The bottom line: I was a lot less productive, I wasted a 
    lot of time and I dealt with a lot of grief (eventually I went back to the 
    MIT R4 since I only have 8 MB of RAM on my SPARC 1). Yes, that X contrib 
    stuff should have been "fixed" (and still should be for much of it). I'm 
    not holding my breath, though.

> For that matter, I have seen at least three X clients that break if you
> don't use PointerRoot focus, in that if the mouse is not inside their
> window they ignore keystrokes, even if the window manager has given the
> keyboard focus to the window in question.  Shall we therefore require
> all window managers to use PointerRoot focus?

> Just because a given brokenness is widespread doesn't make it any less
> broken.  

    You're absolutely right. The problem is, what do you do today? Now, I'd
    first like to say that I appreciate all the effort you spend trying to
    help people on the net, and help them write "non-broken" X code.

    But, when I see statements like "this is broken and should be fixed"
    or "get a real computer" (not attributed to you) and the like,
    warning flags go up. 

    I, and a lot of others (at least I suspect a lot) must live in a world 
    where we need to do work today. All the religious dogma just doesn't sit 
    well with me. Sure, all this "broken" stuff should be fixed. But, there's 
    nothing wrong with trying to make things continue to work out in the mean 
    time. HP, for example, now ships three-button mice. If you happen to have 
    an old two-button mouse, though, the nice HP folks have a means of emulating
    the "missing" button. Is it elegant? I don't know. Is it broken? I don't 
    care. Is it convenient? Yes. That's the bottom line.

> And since I, unlike...[]...
> don't have a customer base that must be catered to no matter how
> unreasonable they get, I can refuse to support such brokenness. 

    I don't have this luxury. Furthermore, I don't find it unreasonable 
    to ask for a graphical environment that works. Our users, who are generally
    reasonable, expect the whole system to work right. If it doesn't, it's
    our problem. So, I generally don't have the luxury of laying blame either.
    It doesn't matter if the problem is in the hardware, the operating
    system, the networking interface drivers, the X server or our X clients,
    the problem falls into our laps and we have to deal with it. In such
    a situation, I don't care who (or what) is to blame, I just want to
    get the problem solved.

> My X11R4 on the NeXT presents a pointer device with only two buttons.  I
> have received two different patches to implement the "missing" button
> by chording the two existing buttons.  Neither one will go in (though I
> will distribute them with the thing, once I get around to rebuilding
> the distribution.)

    If I may make a suggestion, maybe then you'll want to "fix" various
    pieces of common X software that seem to require a third button.
    (I actually think this would be a good idea. Just watch new X
    users for awhile and you'll see a lot of confusion when they try
    to figure out which mouse button to use.)

> In another note, someone from SGI said that it had the luxury of always
> being on an 8-bit PseudoColor server with a 3-button mouse.  

    Having a homogenous hardware platform is a nice luxury, but another
    luxury I don't have. Perhaps that person at SGI would like to
    send me a loaner system?

> I can just
> see programs from such a person[%] blindly assuming an 8-bit
> PseudoColor visual as the default.  Does this then mean that all
> servers must provide an 8-bit PseudoColor visual?  No, it means that
> such programs are broken!

  Encouraging people to write better code is a good thing, and you
  seem to do this. Putting up with "broken" things is part of what
  I have to do since I live in an imperfect world. Perhaps you don't.

> X has always promised the existence of a pointer device.  I'm not sure
> whether it promises the existence of at least one pointer button.  It
> has never promised more than one button.

> [%] I don't remember who this person was, and don't mean this
>    personally - I have no basis for judging the portability of your
>    code, never having seen any of it.

   I take no offense at all and hope you don't either. I think, though,
   that we come from rather different backgrounds, since our main
   differences seem to be one of attitude. When we (BTI) needed to
   port our software to UNIX, we knew two things: 1) that we had to 
   support a number of different architectures and flavors of UNIX and
   2) that we absolutely required graphics--lots of graphics (our
   package is designed for factory automation). Luckily, C programs are
   fairly portable on UNIX-based systems. But, at the time, graphics
   was the tough one. After looking around, we saw that our only hope
   was using the X Window System (X10 originally). X was available on a
   number of platforms and the source was also available, thus allowing
   us to port X if the need arose (which it hasn't yet).

   X was the only reasonable hope we had at writing graphics-intensive
   code that could run on a number of platforms, without rewriting all
   the code for each platform.

   We didn't choose X because we thought the X model was the "right"
   (or one true proper) way to do things. We didn't choose X because
   of its network orientation (although that has proven to be a great
   advantage). We choose X because it worked and it was the only thing 
   that worked (i.e., met our criteria).

   If I were to look around today, I'd make the same conclusions. X
   is still hard to learn. X is still hard to program. X is still hard 
   to use. But, X is still the only real choice. So, I'm willing to put up
   with a lot of things that don't work completely right, so long as
   they manage to get the job done. 

   Maybe now you can see where I'm coming from, even if you don't agree.
   Don't take this personally, OK?

>					der Mouse
>
>			old: mcgill-vision!mouse
>			new: mouse@larry.mcrcim.mcgill.edu

Have fun,
-Eric

   P.S. Shouldn't it be der Maus (das Maus? -- I don't have my Deutsch/
   English dictionary handy)?


-- 
Eric F. Johnson               phone: +1 612 894 0313    BTI: Industrial
Boulware Technologies, Inc.   fax:   +1 612 894 0316    automation systems
415 W. Travelers Trail        email: erc@pai.mn.org     and services
Burnsville, MN 55337 USA

mattf@cac.washington.edu (Matthew Freedman) (12/06/90)

So far in the discussion of Mac-X under MacOS nobody has mentioned
anything about problems with the performance. For my application, the
performance is so bad as to make Mac-X unusable. Since nobody else seems to
be experiencing these difficulties, maybe I am doing something wrong (I
hope so, I really want to be able to support MacX).

I have developed a medium size Motif 1.0 application on a DecStation 3100.
It has three seperate windows and a moderate number of pull-down
menus, buttons, sliders etc. I recently ran it on a Macintosh IIci, under 
Mac-X, or more precisely ran it on the DecStation, but displayed it
under Mac-X.  Everything works, but it is *slow*. I mean real slow. It
takes on the order of 5-10 seconds just to pull down a menu. And at
least 10 seconds to expose a window.  

Other standard X clients seem to work reasonably fast, although I haven't
tried too many.  I can't think of any client with the same level of
complexity in terms of the number of individual widgets to compare my
program against.

Does anybody have any ideas what the problem could be?  Is it the large
number of individual widgets/gadgets that X has to deal with in any
application with a nice GUI?  Is there something wrong with Motif?  Is
it just the layering that is going on with Mac-X under finder?  Would
moving to Motif 1.1 make a difference? Would not running in color make
a difference?

I haven't tried A/UX yet, has anybody had any experience with Motif
displayed in that environment?

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
= Matthew M. Freedman                                                 =
= U. of Washington Information Systems       mattf@cac.washington.edu =
= 4545 15th Ave. NE; 4th Floor               (206) 543-5593           =
= Seattle, WA  98105                                                  =
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

mouse@LIGHTNING.MCRCIM.MCGILL.EDU (12/06/90)

I think this has mostly been carried as far as is reasonable in a
public list, most of which doubtless is muttering "shut up and stop
wasting my bandwidth, already!".

So I'll try to restrict myself....

> From: timbuk!cs.umn.edu!sialis!dmshq!com50!pai!erc@uunet.uu.net  (Eric Johnson)

Eric writes much stuff to the effect of "yes, it may be broken, but we
still want something that mostly works today".  This is a valid point,
and for environments like his[%], faking the missing buttons may be the
right thing to do.

[%] I feel confident making gender assumptions based on a given name of
    "Eric".  Please feel free to correct me if I'm wrong, Eric....

I suppose what I'm trying to do is to urge people writing new software
to ensure that it degrades gracefully - falling back on function keys
or double clicks[$] or shift/control/meta clicks or menus or some such.
While I think that it would have been better if MacX (to get back to
the example that started this) had provided only one button to clients,
I certainly understand why they chose otherwise.  And though I don't
like it, I can see that from their point of view they made the right
decision.  But I wish it had been an option, turned off by default.

[$] I'm trusting that R5 will provide something permitting proper
    multiple-click support.

>> My X11R4 on the NeXT presents a pointer device with only two
>> buttons.
> If I may make a suggestion, maybe then you'll want to "fix" various
> pieces of common X software that seem to require a third button.

(Or a second button, for that matter.)  That's a good suggestion.
There are problems with it.

One: I find I don't even have the time to fix the server, or my own
clients, that I use, that make the same (invalid) assumption.

The other: I do not consider myself competent to fix, say, twm; I would
have to understand it first, which would take even more time.

>>					der Mouse
>    P.S. Shouldn't it be der Maus (das Maus? -- I don't have my
>         Deutsch/English dictionary handy)?

If it were supposed to be German, I believe "die Maus" would be
correct.  But it's not; it's actually a contraction of a name my family
uses for me.

					der Mouse

			old: mcgill-vision!mouse
			new: mouse@larry.mcrcim.mcgill.edu

jmw9681@USAV01.GLAXO.COM ("J. Michael Word") (12/11/90)

I recently had the fortune to witness a demonstration of Mac-X and I was
very surprised at the slooooooow speed of the server running on a MacIIfx!
Beside it was a 386 running the X server which comes with PCSA and the PC
was running several times faster than the Mac.  It didn't seem to help
if we set the Mac to monochrome either...  I'd love to see an explanation
for why Mac-X is such a pig.  (Given the circumstances, all I could really do
to test the performance was run ico.  Your mileage may vary.)

Mike Word
jmw9681@usav01.glaxo.com

mattf@cac.washington.edu (Matthew Freedman) (12/12/90)

In article <9012101615.AA21897@expo.lcs.mit.edu> jmw9681@USAV01.GLAXO.COM ("J. Michael Word") writes:
>I recently had the fortune to witness a demonstration of Mac-X and I was
>very surprised at the slooooooow speed of the server running on a MacIIfx!

>...  I'd love to see an explanation
>for why Mac-X is such a pig.  (Given the circumstances, all I could really do
>to test the performance was run ico.  Your mileage may vary.)

I have been trying to get an explanation for awhile. I have large
motif-based application, which we would love to make available to all
of our Macintosh users on campus, but it is way to slow.  Like 5-10
seconds to pull down a menu, 10 seconds minimum to redraw an entire
window.

Has anybody had any experience with eXodus from White Pine? Is it any
better?

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
= Matthew M. Freedman                                                 =
= U. of Washington Information Systems       mattf@cac.washington.edu =
= 4545 15th Ave. NE; 4th Floor               (206) 543-5593           =
= Seattle, WA  98105                                                  =
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

abm@alan.aux.apple.com (Alan Mimms) (12/12/90)

In article <9012101615.AA21897@expo.lcs.mit.edu>, jmw9681@USAV01.GLAXO.COM ("J. Michael Word") writes:
|> I recently had the fortune to witness a demonstration of Mac-X and I was
|> very surprised at the slooooooow speed of the server running on a MacIIfx!
|> Beside it was a 386 running the X server which comes with PCSA and the PC
|> was running several times faster than the Mac.  It didn't seem to help
|> if we set the Mac to monochrome either...  I'd love to see an explanation
|> for why Mac-X is such a pig.  (Given the circumstances, all I could really do
|> to test the performance was run ico.  Your mileage may vary.)
|> 

Ok.  This is something I've wanted to get off my chest for a LONG time.
I am the one responsible for the pigginess of MacX 1.0's performance
in color.  Leave it at no one else's door but mine.  I did it.

It's slow because of a couple of things: (1) MacX works by keeping every
top-level (immediate child of the root) rootless window as a separate
offscreen pixmap and periodically (very often) copying the resulting (changed
parts of the) pixmap using Quickdraw's CopyBits operation into the Macintosh
window which is displaying the corresponding X11 window.  This duplicated
effort of drawing and then copying the bits onto the screen takes some time. 
(2) I was unaware of a special case in the Copybits call at the time MacX 1.0
shipped which makes it slower than it has to be.

Better performance can be had by: making sure the depth and visual supported by the physical screen the MacX windows are on matches what MacX is advertizing to the X11 world (i.e., use an 8-bit color screen for 8-bit color X11 display).  Since MacX has the ability to depth-convert on the fly, you may not be aware that this is happening -- and slowing you down big-time.

Also, turn OFF the Smooth Animation option in the Miscellaneous Preferences dialog.  This serves to batch together copy operations to the screen, improving many types of interactive performance several-fold.

The "ico" program is particularly a bad example for MacX because it does a LOT
of drawing operations overlapping the same area.  If you have smooth animation
on, which makes it look smoother but flickery, it slows down a lot.  I submit
that the cases we optimized for -- typical interaction and pulldown menus and
the like -- are the ones you really care about.  But they don't resemble ico very much.

What all this apparent cruft get you is something which some people see as a
mere convenience and other people scream for: the ability for the X11 world to
live completely comfortably within the Macintosh windowing world, cutting and
pasting text and graphics between the two worlds effortlessly, using Macintosh
techniques for all window management things where possible, and generally
making the X11 world a bit more familiar for the Macintosh user while also
ending up with a very useful X11 server, window manager, font compiler, color
management facility, and session manager.  That was the goal, and I believe it
has been achieved pretty well.

I really wanted to spend a lot more time on optimization, but there comes a
time when you have to ship SOMETHING or people begin to wonder why you're
hanging around all the time without producing any revenue (get the drift?).  MacX 1.0 shipped when we all felt that it had the fewest possible bugs (I only know of two even now) and the best feature set and corresponding documentation we could give it.  Sure, it's not the ultimate be-all and end-all of X11 servers.  Neither was the MIT X11R1 server.  Or DECwindows 1.0.  Or anybody else's 1.0 of anything I've ever used.

Don't think that we're not aware of this: I've been sleeping less and working
more because of it.  And I have achieved some remarkable speedups in the last
6 months or so since MacX 1.0 shipped and I got back from my vacation.  I
personally am not that impressed with MacX 1.0's performance either.  But it
works and is fast enough for pretty much everything I've ever wanted to use it
for (and I'm a speed freak).

There: I feel better.  While I can't really get up for apologizing to everyone for wasting their time (MacX 1.0 it DOES work -- and quite well, I might add), I personally wanted to say WHY.

|> Mike Word
|> jmw9681@usav01.glaxo.com

-- 

Alan Mimms (alan@apple.com, ...!apple!alan)   | My opinions are generally
A/UX X group                                  | pretty worthless, but
Apple Computer                                | they *are* my own...
"Laugha whila you can, monkey boy..." -- John Whorfin in Buckaroo Bonzai
"Never rub another man's rhubarb" -- The Joker in BatMan

abm@alan.aux.apple.com (Alan Mimms) (12/12/90)

In article <12775@milton.u.washington.edu>, mattf@cac.washington.edu (Matthew Freedman) writes:
|> In article <9012101615.AA21897@expo.lcs.mit.edu> jmw9681@USAV01.GLAXO.COM ("J. Michael Word") writes:
|> >I recently had the fortune to witness a demonstration of Mac-X and I was
|> >very surprised at the slooooooow speed of the server running on a MacIIfx!
|> 
|> >...  I'd love to see an explanation
|> >for why Mac-X is such a pig.  (Given the circumstances, all I could really do
|> >to test the performance was run ico.  Your mileage may vary.)
|> 
|> I have been trying to get an explanation for awhile. I have large
|> motif-based application, which we would love to make available to all
|> of our Macintosh users on campus, but it is way to slow.  Like 5-10
|> seconds to pull down a menu, 10 seconds minimum to redraw an entire
|> window.

Perhaps I can help?  I wrote a good fraction of MacX.  What communications
setup do you have (i.e., are you using TCP on Ethernet or LocalTalk or
what)?  What kinda CPU?  What kinda display device?  Where's your client
with respect to routers and your Macintosh?  What kinda CPU is the CLIENT
running on?

Motif (especially 1.0) did a HUGE amount of round-trip client requests for
practically every possible operation that you'd want to go fast.  But for
slow communications environments, this is not going to be fast.

If you'll give me some more information, I'll try to help you out...

|> Has anybody had any experience with eXodus from White Pine? Is it any
|> better?

I have.  It's pretty good.  You might want to try it.  If you're trying to
suck massive bits thru a tiny little 250kbit/sec straw, though, you'll
encounter at least as much trouble.  Also, I like mine better (sorry Terrell
:->).

|> 
|> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|> = Matthew M. Freedman                                                 =
|> = U. of Washington Information Systems       mattf@cac.washington.edu =
|> = 4545 15th Ave. NE; 4th Floor               (206) 543-5593           =
|> = Seattle, WA  98105                                                  =
|> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

-- 

Alan Mimms (alan@apple.com, ...!apple!alan)   | My opinions are generally
A/UX X group                                  | pretty worthless, but
Apple Computer                                | they *are* my own...
"Laugha whila you can, monkey boy..." -- John Whorfin in Buckaroo Bonzai
"Never rub another man's rhubarb" -- The Joker in BatMan

stripes@eng.umd.edu (Joshua Osborne) (12/13/90)

In article <1557@pai.UUCP>, erc@pai.UUCP (Eric Johnson) writes:
> 
> Problem: The Macintosh has a one-button mouse, but far too many X
> programs require a three-button mouse. That's also why PC X terminal
> emulators and HP (both of which extensively use two-button mice)
> emulate the "middle" mouse button (button 2) by having the user
> hold down both physical mouse buttons at once.
[...]

Which has got to be one of the worse was of emulating ever invented, or
at least what is implmented on the RT.  I can press MB1, release then
press MB3 (well, the second one on the mouse), the server will send a single
MB2 press event.  (you have to do this at the right speed, so the whole thing seems flakey untill you figure out what is going on, then you forget all about using the RT for *anything*)

Server writers:  if you must lie about mouse buttons, fine.  Just provide me
a way to get the damm things *not* to lie.  (other then getting a better mouse,
which is also a good option)
-- 
           stripes@eng.umd.edu          "Security for Unix is like
      Josh_Osborne@Real_World,The          Multitasking for MS-DOS"
      "The dyslexic porgramer"                  - Kevin Lockwood
"Don't over-comment"     - p151 The Elements of Programming Style 2nd Edition
                                   Kernighan and Plauger

abm@alan.aux.apple.com (Alan Mimms) (12/15/90)

[... much stuff which is only very peripherally related to MacX
concerning multi-button mouse emulation and flames about applications
that assume multi-button mice and flames about flames and flames about
the weather and other such stuff...]

Do you folks think we could maybe change the SUBJECT LINE associated
with this flamewar?  I personnally AM impressed with MacX (sorry for
lack of modesty).  While I think multi-button mice are nice (I have
three myself), this really is a somewhat misleading and depressing-to-me
subject line for such a discussion :-<...

Thanks, by the way, to all (about 10) of you who sent words of
encouragement and ego-stroking.  I REALLY appreciate it.  All this
"let's be professional" jive aside, it's nice to know there are SOME
people who appreciate what I've done over the last 3 years.  Thanks again.

-- 

Alan Mimms (alan@apple.com, ...!apple!alan)   | My opinions are generally
A/UX X group                                  | pretty worthless, but
Apple Computer                                | they *are* my own...
"Laugha whila you can, monkey boy..." -- John Whorfin in Buckaroo Bonzai
"Never rub another man's rhubarb" -- The Joker in BatMan

jordan@morgan.COM (Jordan Hayes) (12/16/90)

Mike Word <jmw9681@usav01.glaxo.com> writes:

	I recently had the fortune to witness a demonstration of Mac-X
	and I was very surprised at the slooooooow speed of the server
	running on a MacIIfx!

MacX is running concurrently with the Mac environment.  Try running the
X11R4 MIT server (or Apple's raw server) and you'll see much better
performance.  On a Mac IIfx running the MIT server, the machine feels a
whole lot faster than a Sun 3/60.

"ico -faces -colors ..." runs respectably even.

/jordan

bobo@pecan15.cray.com (Bob Kierski) (12/20/90)

In article <1990Nov28.150000.3600@csc.anu.oz.au>, hrf900@fac5.anu.oz.au (Hugh Fisher) writes:

|> 
|> So much for the good points, on to criticism which is more fun.
|> 
|> One of Apples 'enhancements' is that instead of typing in your
|> host name, display number, etc you put -display "(R)display"
|> in the command and the actual name will be substituted at
|> execution. Gee, that's wonderful - why can't Unix let you do
|> that? Gosh us Apple owners have an advanced system...

I found this "Feature" rather to be nice.  In a KSTAR environment where
your IP address isn't static, it's a pain to have to figure out what your
host name is "this week" and change all of your menu entries to match.
This was ONE of the bright things Mr. Mimms did.

|> ...


A few things that you have forgotten to mention are 1) frequently the Apple
window manager forgets which window events are supposed to go to and somehow
they go to the wrong place.  2) The Apple Window manager isn't ICCCM compliant
so it doesn't track IconPixmap, Icon Label, and Window Label properties.
3) Colors aren't represented correctly so if you tell (tv)twm to interpolate
menu colors, they look funny.  4)  There is no way to get it to listen on
any port number other than 6000.


|> These are irritating, but the kludge on the mouse buttons is
|> downright awful. Given that the Mac mouse has one button, how
|> would you simulate the three usually found on Unix boxes? I,
|> and all the programmers I asked this, expected some sort of
|> command-shift option as you press the button. What you actually
|> do is press the option and left arrow keys to simulate the
|> middle button and and option-right arrow for the right (You
|> can change this to just left arrow or right arrow, but then
|> those keys don't work normally.)

This is a real problem, but for $150 - $300 you can get a 3 button mouse.

--


Have a day,