Self X demo
Randall.Smith at Eng.Sun.COM
Wed Oct 25 09:19:13 UTC 1995
> COOL BEANS!
> As requested, I thought I'd let you know how using the new Self-Via-X
> server went. I first had to allow the X connection through our firewall
> (since I am President/Sys. Admin/Janitor of Glyphic, this didn't involve
> too much arm twisting!)
> My first attempt was via an X server (eXodus by White Pine) running on my
> PowerMac. This came up fine and everything looked beautiful... except that
> I only have a 832x624 screen! The demo is VERY biased to 1024x800! In
> fact the "panner" object is almost totally offscreen (if it were, I'd have
> been stuck!)
Yow! Good point! we're just using the standard release, in which we
tailored the screens to fit Sun displays comfortably.
> My second attempt was via X-Free86 running on a 486DX4/100Mghz Linux
> machine (with a 1024x800 screen). While the colors were a little off (the
> colormap also goes nuts when you move outside the Self window - a
> combination of how Self handles color and how the server handles color -
> eXodus is more intellegent about it), and the speed a little less
> responsive (eXodus implements more of the optional X protocol, including
> stuff to make better use of the connection) - over all: IT WORKED! I had
> a blast running Self.
> As for speed issues: I have an ISDN line to the Internet that runs usually
> at 56kb/s, but can bump on to 128kb/s on demand. During my run, it never
> went up to 128kb/s, probably because the traffic is really very bursty and
> averages (over the interval of 90sec that my router uses to measure these
> things) well below 56kb/s.
Yes, I would guess that you could make use of the
higher bandwidth to capture those bursts.
> It was quite usable, though a bit sluggish,
> especially the first time any particular menu came up. Are you cacheing
> these in the X server or am I seeing the compile delay?
Probably the compilation delay (guess).
> Over all the feel
> was reminescent of early Smalltalks! Probably next time I try it, I'll
> force the line to 128kb/s and see if makes any difference.
> I came accross these problems with me and/or the demo:
> * I managed to loose the panner at one point - total death: there seems to
> be no way to navigate without it, and there are no instructions on how to
> use it other than the arrows. I accidentally somthing-clicked in the map
> part of it and my screen went to some outer-limits of the world:
> unfortunatly the panner was nowhere to be seen.
You can use the background menu to make a factory window, from which a
new panner (acutally "radar view") can be plucked, and directly carried
across windows into your world. Or perhaps quicker given the latency
concerns of opening a new window, make a new shell from the background
window, type in "radarView copy" then middle button select from the top
of the resulting outliner "show morph".
> * I mistyped some code, and got a debugger up in a new X window when I ran
> it (I had typed "deposit 50" in an evaluator rather than "deposit: 50".
> Unfortunately I just closed the new X window - leaving my world user
> interface process hung in a debugger I could no longer get to: You should
> allow X windows to be closed w/o confirmation... or you should restart the
> main UI process after some dead-man timeout...
Hmm, an innocent error like yours should not cause the ui to fail like
that. Anyway, again, for the normal release you have a shell to type
into for emergencies. The timeout for a new UI might be a good idea,
but even that would not solve corrupted world display code, for example.
> * Obvious minor nit: the demo asks you to save a module, only in this
> configuration you don't have write access to the directory. Oh well. It
> would be nice if I could write to it, and when the server finally shuts
> down, you could mail me the files in the directory (just tar it!) and then
> wipe it clean. I would like to have seen the module save output file.
Wow. Weird and cool! We'll see...
> * I couldn't get the web browser to work - some error about unable to reach
> the host in the URL I gave it. Since it was a machine on the same subnet I
> was running the demo on, and URL into our public web server, this is
> probably a firewall/filter problem on your end.
We're mystified on this one. Mario tried it again here and seems okay (?)
> On self as a whole:
> UI2 is very nice: Congratulations John and Randy! Two quirks come to mind:
> (A) Setting properties on a nested collection of morphs to get them to
> layout the way you want requires ALOT of mousing around. In Codeworks we
> solve this by when you get the properties of an Aligner (our equivelant to
> a matrix of row and column morphs), you can set the layout properties of
> whole rows or columns of embedded views (our equivelent of morphs) at the
> same time from the same window. You sort of have this in the core sampler,
> but that is in the Z plane, and in the X and Y directions would be more
Get it...yes, a table morph might be a nice addition, plus extra tools
for layout too, I suppose. Sigh, more tools...
> (B) The philosophic its-built-in-itselfness comes through rather heavily -
> while loads of fun us programmer weenies, it sometimes gets in the way:
> Right button menu Dismiss on a Right Button Menu to get it to go away is
This is odd...how often did you have to do that and why?
> Similarly, since the buttons are press-hold-release, and they
> retain the last option you choose as the default, (a terrible combination
> in my view,) it is very easy to accidentally delete parts of the
> programming interface: Dismiss any morph, then accidentally momentarily
> press right button over somthing useful in the interface (like the little
> buttons in outliners) - there go your buttons into the void! (Remember:
> Right button is under the ring finger, the one that you have least moter
> control over. On a sensitive mouse, random extra right clicks are not
> unprecidented.) Perhaps things like outlines should be "locked" from morph
> operations until expressly "unlocked" since most of the time most
> programmers don't want to pull apart the outliners (even though it IS neat
> that you can...)
There is supposed to be a time sensitivity in there so that nothing
happens if you click then release too quickly.
I really like the remember-the-last-selection behavior.
> Random musings:
> I can't wait to see/play with Self with the distributed shared environment!
> I wonder if there is a "lesser" form of this that could be designed where
> the shared object protocols were such that different language systems could
> participate. Obviously I'm thinking it would be cool to be running
> Codeworks/Glyphic Script on one machine, sharing an object space with a
> Self system on another. While certain types of interactions are clearly
> not going to be possible (probably can't inherit from each other's objects)
> - others should be easy (such as using the UI of each other's objects, and
> storing each other's objects). Glyphic Script isn't so far from Self that
> this would inordinately hard (as opposed to trying to do it with, say,
> ADA...) Hmmmmm....
Hmmm indeed! Wow. Actually it sounds pretty difficult.
Thanks very much for your thoughtful comments!
More information about the Self-interest