I’m reasonably confident that although it might not always work, the OurSelf code won’t screw up my servers in a way which is hard to fix, so I’ve removed the need for an invite to try out an online Self world.
Let me know if you try it and it works (or doesn’t!). As a reminder, you choose a server near you and get a link to a morphic desktop, and also to a console. After 20 minutes or so the trial is deleted so don’t worry about breaking anything.
Also if you are interested in playing more seriously (saving snapshots etc) or want to try a shared world, send me an email.
The existing trial world is very boring! My next step is to start to add interesting applications to play around with.
:) Russell
I'm amazed! I was able to get a gas tank going. And turned on the spy, but it obliterated the desktop, till I turned it off with the console. Wow!!
What would it take to get ui1 to work?
Where is this really running? How is it working??
Thank you so very much!
- David
On Nov 24, 2020, at 8:29 PM, Russell Allen mail@russell-allen.com wrote:
I’m reasonably confident that although it might not always work, the OurSelf code won’t screw up my servers in a way which is hard to fix, so I’ve removed the need for an invite to try out an online Self world.
Let me know if you try it and it works (or doesn’t!). As a reminder, you choose a server near you and get a link to a morphic desktop, and also to a console. After 20 minutes or so the trial is deleted so don’t worry about breaking anything.
Also if you are interested in playing more seriously (saving snapshots etc) or want to try a shared world, send me an email.
The existing trial world is very boring! My next step is to start to add interesting applications to play around with.
:) Russell
Self-interest mailing list Self-interest@lists.selflanguage.org http://lists.selflanguage.org/mailman/listinfo/self-interest
The short story is:
4 cheap cloud servers, running in Sydney, Silicon Valley and Tokyo and one in Sydney as a manager. When you start a trial Self world through the webpage, the Self management code connects to one of those servers, and runs Self with your snapshot in a security jail. The Self VM connects to a X11 server, which is turned into a VNC remote desktop connection, which is then carried over a WebSocket to your browser. There are quite a few moving parts unfortunately.
There are a strictly limited number of Self instances which can run at any one time, but there’s scope to scale up or out.
So what you see in your browser is effectively a X11 desktop with a full screen window open, which is why when you started the spy it covered up the Self desktop. I think there is a key combo which you could have used to switch back and forth.
I hadn’t thought about ui1, but it it should be possible to get it to work since it uses X11. If I get some time I’ll try it out.
On the back end, ie not the trial worlds, each running Self instance has access to a persistent directory which can be used for the transporter so I have been developing the system recently entirely through the web. I can export modules to a git repo then push that to GitHub, and can also rebuild my snapshot from those sources from within Self (or by cheating and ssh-ing into the server).
What you probably didn’t try was the morphic multiuser code. Jason Grossman and I did a test the other day and it worked nicely. The system gave us both a username/password and a url to log on. We then each got a view of the shared desktop etc. It would be interesting to see how many people we can do at once.
Russell
On 25 Nov 2020, at 3:46 pm, David Ungar ungar@mac.com wrote:
I'm amazed! I was able to get a gas tank going. And turned on the spy, but it obliterated the desktop, till I turned it off with the console. Wow!!
What would it take to get ui1 to work?
Where is this really running? How is it working??
Thank you so very much!
- David
On Nov 24, 2020, at 8:29 PM, Russell Allen mail@russell-allen.com wrote:
I’m reasonably confident that although it might not always work, the OurSelf code won’t screw up my servers in a way which is hard to fix, so I’ve removed the need for an invite to try out an online Self world.
Let me know if you try it and it works (or doesn’t!). As a reminder, you choose a server near you and get a link to a morphic desktop, and also to a console. After 20 minutes or so the trial is deleted so don’t worry about breaking anything.
Also if you are interested in playing more seriously (saving snapshots etc) or want to try a shared world, send me an email.
The existing trial world is very boring! My next step is to start to add interesting applications to play around with.
:) Russell
Self-interest mailing list Self-interest@lists.selflanguage.org http://lists.selflanguage.org/mailman/listinfo/self-interest
Dave has probably forgotten about this, but shortly after 4.0 was released in ‘95 I set up a SPARCstation with Self on the open internet which could be accessed via X11 from anywhere in the world. For a few years Sun Labs owned and operated sunlabs.com and staff could easily get a machine on the Internet without a firewall or NAT. I set up a password-less account which would run a copy of a clean image in a chroot-ed directory. When the session ended everything was wiped and reset to a clean state. As might be expected in hindsight, net bandwidth and latency to most parts of the world was insufficient back then. After a couple of years one or more machines in that domain got hijacked for nefarious purposes and the whole experiment was shut down shortly after that. I wonder if there’s anyone reading this who remembers trying it out (kjx or Jecel, perhaps?).
You know, I think I woud've at least tried it - but I have a vague memory of it not really working very well at all across the pacific - J
On 25/11/2020, at 19:17PM, Mario Wolczko mario@wolczko.com wrote:
(kjx or Jecel, perhaps?).
That would be the gremlins doing their best to uphold Randy's condensed geography theory illusion.
On Nov 25, 2020, at 3:10 AM, kjx kjx@ecs.vuw.ac.nz wrote:
You know, I think I woud've at least tried it - but I have a vague memory of it not really working very well at all across the pacific - J
On 25/11/2020, at 19:17PM, Mario Wolczko mario@wolczko.com wrote:
(kjx or Jecel, perhaps?).
Self-interest mailing list Self-interest@lists.selflanguage.org http://lists.selflanguage.org/mailman/listinfo/self-interest
Thanks, Mario. Sorry, I had forgotten, indeed.
- David
On Nov 24, 2020, at 10:17 PM, Mario Wolczko mario@wolczko.com wrote:
Dave has probably forgotten about this, but shortly after 4.0 was released in ‘95 I set up a SPARCstation with Self on the open internet which could be accessed via X11 from anywhere in the world. For a few years Sun Labs owned and operated sunlabs.com and staff could easily get a machine on the Internet without a firewall or NAT. I set up a password-less account which would run a copy of a clean image in a chroot-ed directory. When the session ended everything was wiped and reset to a clean state. As might be expected in hindsight, net bandwidth and latency to most parts of the world was insufficient back then. After a couple of years one or more machines in that domain got hijacked for nefarious purposes and the whole experiment was shut down shortly after that. I wonder if there’s anyone reading this who remembers trying it out (kjx or Jecel, perhaps?).
Self-interest mailing list Self-interest@lists.selflanguage.org http://lists.selflanguage.org/mailman/listinfo/self-interest
Not that this is a replacement for the radar view, but would it be difficult to do display scaling which could be connected to multitouch scaling gestures?
Btw, is anyone working on an Apple Silicon port of Self?
On Nov 25, 2020, at 8:55 AM, David Ungar ungar@mac.com wrote:
Thanks, Mario. Sorry, I had forgotten, indeed.
- David
On Nov 24, 2020, at 10:17 PM, Mario Wolczko mario@wolczko.com wrote:
Dave has probably forgotten about this, but shortly after 4.0 was released in ‘95 I set up a SPARCstation with Self on the open internet which could be accessed via X11 from anywhere in the world. For a few years Sun Labs owned and operated sunlabs.com and staff could easily get a machine on the Internet without a firewall or NAT. I set up a password-less account which would run a copy of a clean image in a chroot-ed directory. When the session ended everything was wiped and reset to a clean state. As might be expected in hindsight, net bandwidth and latency to most parts of the world was insufficient back then. After a couple of years one or more machines in that domain got hijacked for nefarious purposes and the whole experiment was shut down shortly after that. I wonder if there’s anyone reading this who remembers trying it out (kjx or Jecel, perhaps?).
Self-interest mailing list Self-interest@lists.selflanguage.org http://lists.selflanguage.org/mailman/listinfo/self-interest
Self-interest mailing list Self-interest@lists.selflanguage.org http://lists.selflanguage.org/mailman/listinfo/self-interest
On Nov 25, 2020, at 9:29 AM, Steve Dekorte steve@dekorte.com wrote:
Not that this is a replacement for the radar view, but would it be difficult to do display scaling which could be connected to multitouch scaling gestures?
Btw, is anyone working on an Apple Silicon port of Self?
Might be a fun project after I retire.
On Nov 25, 2020, at 8:55 AM, David Ungar ungar@mac.com wrote:
Thanks, Mario. Sorry, I had forgotten, indeed.
- David
On Nov 24, 2020, at 10:17 PM, Mario Wolczko <mario@wolczko.com mailto:mario@wolczko.com> wrote:
Dave has probably forgotten about this, but shortly after 4.0 was released in ‘95 I set up a SPARCstation with Self on the open internet which could be accessed via X11 from anywhere in the world. For a few years Sun Labs owned and operated sunlabs.com http://sunlabs.com/ and staff could easily get a machine on the Internet without a firewall or NAT. I set up a password-less account which would run a copy of a clean image in a chroot-ed directory. When the session ended everything was wiped and reset to a clean state. As might be expected in hindsight, net bandwidth and latency to most parts of the world was insufficient back then. After a couple of years one or more machines in that domain got hijacked for nefarious purposes and the whole experiment was shut down shortly after that. I wonder if there’s anyone reading this who remembers trying it out (kjx or Jecel, perhaps?).
Self-interest mailing list Self-interest@lists.selflanguage.org mailto:Self-interest@lists.selflanguage.org http://lists.selflanguage.org/mailman/listinfo/self-interest
Self-interest mailing list Self-interest@lists.selflanguage.org http://lists.selflanguage.org/mailman/listinfo/self-interest
On Nov 25, 2020, at 9:29 AM, Steve Dekorte steve@dekorte.com wrote:
Not that this is a replacement for the radar view, but would it be difficult to do display scaling which could be connected to multitouch scaling gestures?
Oooo, that would be way cool, though yeah I guess the “view” part of radar view would still be useful.
Mario Wolczko wrote on Tue, 24 Nov 2020 22:17:27 -0800
I wonder if there's anyone reading this who remembers trying it out (kjx or Jecel, perhaps?).
I am pretty sure I didn't try it.
The day Self 4.0 came out was a holiday in Brazil (Carnaval) so I couldn't go to the univerity. But I was able to connect to a Sun 4 machine from home using a 300 bps modem and rsh. I downloaded Self into the remote machine and ran it, with a tunnel from there to a X11 server on my home Linux PC (4MB 40MHz 386). I had to hold the mouse button for 15 seconds or so to have a menu pop up but I was able to play around with the cool new Morphic GUI.
Given the huge bandwidth limitations, I don't think the latency to a Sunlabs machine would have been a problem for me.
-- Jecel
Impressive persistence!
Reminds me a bit of the first time I brought up Berkeley Smalltalk at UC. It was on an AED bitmapped display connected over a 9600 baud serial line to a shared VAX. The first thing that happened was the whole screen was painted maybe black pixel by pixel which took about 20 seconds. Then the whole screen was painted maybe white, or maybe halftone which took another 20 seconds then each window was painted about three times it was extremely slow. Plus a bug in my font code in BitBLT which caused it to say Welcome to SnailTalk.
You and I must have some character trait in common for us to both be willing to put up with that kind of performance!
- David
On Nov 25, 2020, at 10:07 AM, Jecel Assumpcao Jr jecel@merlintec.com wrote:
Mario Wolczko wrote on Tue, 24 Nov 2020 22:17:27 -0800
I wonder if there's anyone reading this who remembers trying it out (kjx or Jecel, perhaps?).
I am pretty sure I didn't try it.
The day Self 4.0 came out was a holiday in Brazil (Carnaval) so I couldn't go to the univerity. But I was able to connect to a Sun 4 machine from home using a 300 bps modem and rsh. I downloaded Self into the remote machine and ran it, with a tunnel from there to a X11 server on my home Linux PC (4MB 40MHz 386). I had to hold the mouse button for 15 seconds or so to have a menu pop up but I was able to play around with the cool new Morphic GUI.
Given the huge bandwidth limitations, I don't think the latency to a Sunlabs machine would have been a problem for me.
-- Jecel _______________________________________________ Self-interest mailing list Self-interest@lists.selflanguage.org http://lists.selflanguage.org/mailman/listinfo/self-interest
We dreamed of drawing the display in a minute. The first time I ran my VM on a Perq1 it took hours to paint the first screen.
On Nov 25, 2020, at 10:57 AM, David Ungar ungar@mac.com wrote:
Impressive persistence!
Reminds me a bit of the first time I brought up Berkeley Smalltalk at UC. It was on an AED bitmapped display connected over a 9600 baud serial line to a shared VAX. The first thing that happened was the whole screen was painted maybe black pixel by pixel which took about 20 seconds. Then the whole screen was painted maybe white, or maybe halftone which took another 20 seconds then each window was painted about three times it was extremely slow. Plus a bug in my font code in BitBLT which caused it to say Welcome to SnailTalk.
You and I must have some character trait in common for us to both be willing to put up with that kind of performance!
- David
On Nov 25, 2020, at 10:07 AM, Jecel Assumpcao Jr jecel@merlintec.com wrote:
Mario Wolczko wrote on Tue, 24 Nov 2020 22:17:27 -0800
I wonder if there's anyone reading this who remembers trying it out (kjx or Jecel, perhaps?).
I am pretty sure I didn't try it.
The day Self 4.0 came out was a holiday in Brazil (Carnaval) so I couldn't go to the univerity. But I was able to connect to a Sun 4 machine from home using a 300 bps modem and rsh. I downloaded Self into the remote machine and ran it, with a tunnel from there to a X11 server on my home Linux PC (4MB 40MHz 386). I had to hold the mouse button for 15 seconds or so to have a menu pop up but I was able to play around with the cool new Morphic GUI.
Given the huge bandwidth limitations, I don't think the latency to a Sunlabs machine would have been a problem for me.
-- Jecel _______________________________________________ Self-interest mailing list Self-interest@lists.selflanguage.org http://lists.selflanguage.org/mailman/listinfo/self-interest
Self-interest mailing list Self-interest@lists.selflanguage.org http://lists.selflanguage.org/mailman/listinfo/self-interest
Well, we did have to walk up a good hill to get to the CS building from the BART station.
On Nov 25, 2020, at 1:02 PM, Mario Wolczko mario@wolczko.com wrote:
We dreamed of drawing the display in a minute. The first time I ran my VM on a Perq1 it took hours to paint the first screen.
On Nov 25, 2020, at 10:57 AM, David Ungar ungar@mac.com wrote:
Impressive persistence!
Reminds me a bit of the first time I brought up Berkeley Smalltalk at UC. It was on an AED bitmapped display connected over a 9600 baud serial line to a shared VAX. The first thing that happened was the whole screen was painted maybe black pixel by pixel which took about 20 seconds. Then the whole screen was painted maybe white, or maybe halftone which took another 20 seconds then each window was painted about three times it was extremely slow. Plus a bug in my font code in BitBLT which caused it to say Welcome to SnailTalk.
You and I must have some character trait in common for us to both be willing to put up with that kind of performance!
- David
On Nov 25, 2020, at 10:07 AM, Jecel Assumpcao Jr jecel@merlintec.com wrote:
Mario Wolczko wrote on Tue, 24 Nov 2020 22:17:27 -0800
I wonder if there's anyone reading this who remembers trying it out (kjx or Jecel, perhaps?).
I am pretty sure I didn't try it.
The day Self 4.0 came out was a holiday in Brazil (Carnaval) so I couldn't go to the univerity. But I was able to connect to a Sun 4 machine from home using a 300 bps modem and rsh. I downloaded Self into the remote machine and ran it, with a tunnel from there to a X11 server on my home Linux PC (4MB 40MHz 386). I had to hold the mouse button for 15 seconds or so to have a menu pop up but I was able to play around with the cool new Morphic GUI.
Given the huge bandwidth limitations, I don't think the latency to a Sunlabs machine would have been a problem for me.
-- Jecel _______________________________________________ Self-interest mailing list Self-interest@lists.selflanguage.org http://lists.selflanguage.org/mailman/listinfo/self-interest
Self-interest mailing list Self-interest@lists.selflanguage.org http://lists.selflanguage.org/mailman/listinfo/self-interest
Self-interest mailing list Self-interest@lists.selflanguage.org http://lists.selflanguage.org/mailman/listinfo/self-interest
On Wed, Nov 25, 2020 at 3:26 PM David Ungar ungar@mac.com wrote:
Well, we did have to walk up a good hill to get to the CS building from the BART station.
Uphill both ways, in the snow?
On a different note, wasn't there someone working on a 64-bit x86-64 port? Or am I making that up?
Best, Kyle
Well, no snow in Berkeley, just sea breezes, and very cheap, questionable quality Chinese food. And volleyball atop a nuclear reactor. Ah, the good times!
I'm not sure if Russel was working on such. It's a serious undertaking, but would be nice to have. Since I've been an Apple fan for a century, if I do one, it might be to see what performance can be gotten from Apple Silicon. OTOH, I might rather do a Korz VM. (Korz published with Ossher and Kimelman, inspired by Us, published with, you guessed it, Randy.))
On Nov 25, 2020, at 4:26 PM, Kyle Hayes kyle.hayes@gmail.com wrote:
On Wed, Nov 25, 2020 at 3:26 PM David Ungar <ungar@mac.com mailto:ungar@mac.com> wrote: Well, we did have to walk up a good hill to get to the CS building from the BART station.
Uphill both ways, in the snow?
On a different note, wasn't there someone working on a 64-bit x86-64 port? Or am I making that up?
Best, Kyle
Self-interest mailing list Self-interest@lists.selflanguage.org http://lists.selflanguage.org/mailman/listinfo/self-interest
I looked into what to do with the current VM but it was too big a job for my available time and skills. To get back on Apple we need both 64 bit and ARM.
Other options were to move to another VM (Truffle looks really promising - there is a TruffleSqueak which is very fast, but suffers the same compilation pauses as Self 3 - or Cog, the Squeak VM), which was feasible but a bit sad :( or to do a Klein style VM using Self, which would be great fun but also too big a project.
Of course no matter what VM, I won’t be able to run Self on my iPad because Apple doesn’t allow third party JITs or reflective systems which can save and load code...
In a sense OurSelf is my attempt at an end run around all of this.
There’s only a couple of things on my radar to do with the current Self VM:
(1) port to FreeBSD, because OurSelf is currently running the VM in Linux emulation mode and I’d love to be able to ditch that as a requirement (2) merge and update the work I did a few years back allowing on the fly primitives to be created in Self, because that opens up a lot of possibilities in respect of talking to OS libraries and so on
Russell
On 26 Nov 2020, at 12:29 pm, David Ungar ungar@mac.com wrote:
Well, no snow in Berkeley, just sea breezes, and very cheap, questionable quality Chinese food. And volleyball atop a nuclear reactor. Ah, the good times!
I'm not sure if Russel was working on such. It's a serious undertaking, but would be nice to have. Since I've been an Apple fan for a century, if I do one, it might be to see what performance can be gotten from Apple Silicon. OTOH, I might rather do a Korz VM. (Korz published with Ossher and Kimelman, inspired by Us, published with, you guessed it, Randy.))
On Nov 25, 2020, at 4:26 PM, Kyle Hayes <kyle.hayes@gmail.com mailto:kyle.hayes@gmail.com> wrote:
On Wed, Nov 25, 2020 at 3:26 PM David Ungar <ungar@mac.com mailto:ungar@mac.com> wrote: Well, we did have to walk up a good hill to get to the CS building from the BART station.
Uphill both ways, in the snow?
On a different note, wasn't there someone working on a 64-bit x86-64 port? Or am I making that up?
Best, Kyle
Self-interest mailing list Self-interest@lists.selflanguage.org mailto:Self-interest@lists.selflanguage.org http://lists.selflanguage.org/mailman/listinfo/self-interest
Self-interest mailing list Self-interest@lists.selflanguage.org http://lists.selflanguage.org/mailman/listinfo/self-interest
David Ungar wrote on Wed, 25 Nov 2020 10:57:35 -0800
Impressive persistence!
Reminds me a bit of the first time I brought up Berkeley Smalltalk at UC. It was on an AED bitmapped display connected over a 9600 baud serial line to a shared VAX. The first thing that happened was the whole screen was painted maybe black pixel by pixel which took about 20 seconds. Then the whole screen was painted maybe white, or maybe halftone which took another 20 seconds then each window was painted about three times it was extremely slow. Plus a bug in my font code in BitBLT which caused it to say Welcome to SnailTalk.
Great story!
The Tektronix guys described nearly the exact same thing in their chapter in the Smalltalk "green book"[1]. Their 68000 prototype board didn't have any graphics of its own, so they connected it via a serial port to one of their commercial graphics terminals.
You and I must have some character trait in common for us to both be willing to put up with that kind of performance!
Putting up with it once is a very educational experience. On the other hand I find unacceptable things that other people think is normal, which is why I keep designing replacements for them.
A friend once asked about buying a mini clone of the Altair. I told him it would be very interesting to actually toggle in a whole program using the front panel switched. But he might not want to do it a second time, and certainly not a third. So it would not be a good use of his money.
I can imagine sitting in front of a terminal watching the pixels slowly coming in and dreaming of a Smalltalk On A RISC chip (sorry, RISC-III is the politically correct name now ;-)
-- Jecel
On Nov 25, 2020, at 1:47 PM, Jecel Assumpcao Jr jecel@merlintec.com wrote:
David Ungar wrote on Wed, 25 Nov 2020 10:57:35 -0800
Impressive persistence!
Reminds me a bit of the first time I brought up Berkeley Smalltalk at UC. It was on an AED bitmapped display connected over a 9600 baud serial line to a shared VAX. The first thing that happened was the whole screen was painted maybe black pixel by pixel which took about 20 seconds. Then the whole screen was painted maybe white, or maybe halftone which took another 20 seconds then each window was painted about three times it was extremely slow. Plus a bug in my font code in BitBLT which caused it to say Welcome to SnailTalk.
Great story!
Thank you.
The Tektronix guys described nearly the exact same thing in their chapter in the Smalltalk "green book"[1]. Their 68000 prototype board didn't have any graphics of its own, so they connected it via a serial port to one of their commercial graphics terminals.
Yes, what today's younger adults won't know is how much of a revolution it was, to have multiple, overlapping windows, pop-up (even 15-second) menus, instant execution, fix-and-continue, and objects! The standard of the day was 24x80 glass ttys.
You and I must have some character trait in common for us to both be willing to put up with that kind of performance!
Putting up with it once is a very educational experience. On the other hand I find unacceptable things that other people think is normal, which is why I keep designing replacements for them.
Amen, brother!
A friend once asked about buying a mini clone of the Altair. I told him it would be very interesting to actually toggle in a whole program using the front panel switched. But he might not want to do it a second time, and certainly not a third. So it would not be a good use of his money.
Yup!
I can imagine sitting in front of a terminal watching the pixels slowly coming in and dreaming of a Smalltalk On A RISC chip (sorry, RISC-III is the politically correct name now ;-)
Exactly!!
-- Jecel _______________________________________________ Self-interest mailing list Self-interest@lists.selflanguage.org http://lists.selflanguage.org/mailman/listinfo/self-interest
David, Five years before I saw Smalltalk, I built a windowed IDE in C for a FORTH-like language (called DE before I’d heard the term IDE) of my own design, which rendered on a 25x80 monochrome text screen. Exactly six resizable and maximizable/restorable, non-overlapping windows; no icons; no menus; no mouse. Each window could display any of: selectable list of global functions; editable function source with settable breakpoints; function symbolic object code; contents of RAM (heap); contents of call stack; contents of value stack; contents of local variable; source trace; object trace; application I/O console. Where a value referenced something else symbolically, the symbol was shown; eg READ_LINE+0014H, RAM+1210H. The IDE ran entirely in RAM on a 128K IBM PC clone. The output was a symbolic object-code file. An STSC APL*PLUS program then compiled this to binary – eventually taking 5 hours. It took me 9 months to use this language and IDE to implement I-APL, a complete, standard-conforming APL interpreter which compiled to 26K of object code which ran under a VM. The VM was then implemented on a number of platforms (by other members of the I-APL project), including CP-M, Apple II, IBM PC, BBC Micro, etc. It took me one month (1st-30th September 1987) to design the language and implement the IDE. On schedule! My take-away? Overlapping windows are overrated, and maybe even counterproductive to dev (see most IDEs of the past 20+ years: they use minimizable-in-place windows and docking). I do love my mouse now, but tabbing through the windows was easy in my IDE. My Smalltalk/V dev setup was always 3 non-overlapping windows: Transcript, Workbench (my idea: ListBox+TextEdit where I could define & run small pieces of code), and one CHB for the app. A second, overlapping, CHB, usually minimized, was used for browsing non-app classes. Of course walkback windows and inspectors overlapped (but when I get around to writing a Smalltalk dev environment, they won’t.) Menus *might* be a design choice left over from when graphics displays had much lower resolutions, to save on real estate. (Look at the welcome proliferation of toolbars.) In those days, IBM keyboards had 10 function keys arranged in 2 columns on the left. I stole WordStar’s 2-function-key commands (one from the left column, one from the right) allowing 25 commands at my fingertips without having to hit CTRL or ALT. These were my ‘menu shortcuts’ and all I needed. And I still find icons annoying: they’re not scalable, ie eventually they all look like a multicoloured splodge. Same with emojis. Okay, maybe my eyesight isn’t as good as it used to be. As you can probably tell, I’m still resting on this particular laurel. Cheers, Paul
Paul,
What you did was very cool! Quite an achievement, and great taste to implement APL.
Back in the day, the ST group at PARC did overlapping windows, and the Mesa folks did Spaces, IIRC, non-overlapping windows. Although I have heard from many who prefer the non-overlapping ones, I stronger prefer the overlapping sort, at least given the particular systems I have been to. I can give quasi-rational reasons for the preference--no machine can figure out what I need to be able to see as well as I can--but my best guess would be that it comes down to a combination of brain wiring (n.b. the "typical mind fallacy") and the "incidental" aspects of the experience. For instance, how verbose the language is, how the IDE lays out windows (e.g. Xcode insists on putting certain things in certain places), and whether the new window jumps "into the hand". That last was a Smith-ism, which turned out to be fantastic, IMO. Ask for implementors, and just put it down where you like. Whether next-to, or overlapping. For my money, Morphic/Self was maybe two hours better at the 3am test than any of the "modern" IDEs I've used.
Our debugger reified each frame, so you could see as many as you wanted to, at once. Could yank them out, rearrange them, make a column morph of just the slots you wanted to see. And it was much less tool-centric than ST, or almost anything I've seen after.
Menus and icons are two more stories. I suspect the hierarchical radial ones might be OK, but haven't used them. The guy with the best insight on this stuff is Randy Smith.
- David
On Nov 25, 2020, at 4:56 PM, Paul Chapman paul@igblan.free-online.co.uk wrote:
David,
Five years before I saw Smalltalk, I built a windowed IDE in C for a FORTH-like language (called DE before I’d heard the term IDE) of my own design, which rendered on a 25x80 monochrome text screen. Exactly six resizable and maximizable/restorable, non-overlapping windows; no icons; no menus; no mouse. Each window could display any of: selectable list of global functions; editable function source with settable breakpoints; function symbolic object code; contents of RAM (heap); contents of call stack; contents of value stack; contents of local variable; source trace; object trace; application I/O console. Where a value referenced something else symbolically, the symbol was shown; eg READ_LINE+0014H, RAM+1210H. The IDE ran entirely in RAM on a 128K IBM PC clone. The output was a symbolic object-code file. An STSC APL*PLUS program then compiled this to binary – eventually taking 5 hours.
It took me 9 months to use this language and IDE to implement I-APL, a complete, standard-conforming APL interpreter which compiled to 26K of object code which ran under a VM. The VM was then implemented on a number of platforms (by other members of the I-APL project), including CP-M, Apple II, IBM PC, BBC Micro, etc.
It took me one month (1st-30th September 1987) to design the language and implement the IDE. On schedule!
My take-away?
Overlapping windows are overrated, and maybe even counterproductive to dev (see most IDEs of the past 20+ years: they use minimizable-in-place windows and docking). I do love my mouse now, but tabbing through the windows was easy in my IDE. My Smalltalk/V dev setup was always 3 non-overlapping windows: Transcript, Workbench (my idea: ListBox+TextEdit where I could define & run small pieces of code), and one CHB for the app. A second, overlapping, CHB, usually minimized, was used for browsing non-app classes. Of course walkback windows and inspectors overlapped (but when I get around to writing a Smalltalk dev environment, they won’t.)
Menus *might* be a design choice left over from when graphics displays had much lower resolutions, to save on real estate. (Look at the welcome proliferation of toolbars.) In those days, IBM keyboards had 10 function keys arranged in 2 columns on the left. I stole WordStar’s 2-function-key commands (one from the left column, one from the right) allowing 25 commands at my fingertips without having to hit CTRL or ALT. These were my ‘menu shortcuts’ and all I needed.
And I still find icons annoying: they’re not scalable, ie eventually they all look like a multicoloured splodge. Same with emojis. Okay, maybe my eyesight isn’t as good as it used to be.
As you can probably tell, I’m still resting on this particular laurel.
Cheers, Paul _______________________________________________ Self-interest mailing list Self-interest@lists.selflanguage.org http://lists.selflanguage.org/mailman/listinfo/self-interest
IMO, there are many factors that determine whether overlapping or non-overlapping windows are best. One example of a factor that people often don't mention is what position your monitor is in. In some monitor positions, I want to be looking mainly at the centre of the monitor, and in others looking at the edges of the monitor is okay. I find it very difficult to place non-overlapping windows in ways that respect changes of monitor position. I say this with sadness - I tried hard to like non-overlapping windows, for years, because they would have given me a better choice of OS window managers.
My conclusion is that the Self way is the best thing to have as a default.
Jason
David & David,
no machine can figure out what I need to be able to see as well as I can
Because I didn’t know in advance what my workflow would look like, I deliberately designed DE so that any of the six windows could display any of the available views. This would be my approach in a non-overlapping Smalltalk environment, which at least partially answers your objection.
Morphic/Self was maybe two hours better at the 3am test than any of the "modern" IDEs
3am? That’s my primetime. :)
Our debugger reified each frame, so you could see as many as you wanted to, at once. Could yank them out, rearrange them, make a column morph of just the slots you wanted to see.
This approach looks great, but I still say it can be achieved with non-overlapping windows. Yes, allow lots of windows. But also allow the user to design and save bespoke non-overlapping layouts which suit her workflow.
Is the I-APL code available anywhere, such as github?
Sadly, no. It might be on a buried CD-ROM somewhere in my flat. If I ever get around to sorting out my archives, I might find it.
I first encountered APL when searching through wastebaskets in room 404 (!) of the Electrical Engineering building at Imperial College, London, for poorly overprinted passwords. It was initially indecipherable, since there were no keywords. So I’d enjoy posting my source code without syntax or semantic definitions to similarly confuse modern programmers. :)
I can, however, point you to a copy of my only published paper, on the development of I-APL, delivered at APL88 in Sydney, which I retrieved from Sci-Hub recently because of course it’s otherwise behind a paywall.
http://igblan.co.uk/i-apl/paper.pdf
It calls out some of the claims in my last post as falsehoods! Memory is sometimes unreliable.
Cheers, Paul
Paul -- Thanks! I will read your paperwith interest. I had had ideas around an APL system back then too. David
On Thu., Dec. 3, 2020, 07:46 Paul Chapman, paul@igblan.free-online.co.uk wrote:
David & David,
no machine can figure out what I need to be able to see as well as I can
Because I didn’t know in advance what my workflow would look like, I deliberately designed DE so that any of the six windows could display any of the available views. This would be my approach in a non-overlapping Smalltalk environment, which at least partially answers your objection.
Morphic/Self was maybe two hours better at the 3am test than any of the
"modern" IDEs
3am? That’s my primetime. :)
Our debugger reified each frame, so you could see as many as you wanted
to, at once. Could yank them out, rearrange them, make a column morph of just the slots you wanted to see.
This approach looks great, but I still say it can be achieved with non-overlapping windows. Yes, allow lots of windows. But also allow the user to design and save bespoke non-overlapping layouts which suit her workflow.
Is the I-APL code available anywhere, such as github?
Sadly, no. It might be on a buried CD-ROM somewhere in my flat. If I ever get around to sorting out my archives, I might find it.
I first encountered APL when searching through wastebaskets in room 404 (!) of the Electrical Engineering building at Imperial College, London, for poorly overprinted passwords. It was initially indecipherable, since there were no keywords. So I’d enjoy posting my source code without syntax or semantic definitions to similarly confuse modern programmers. :)
I can, however, point you to a copy of my only published paper, on the development of I-APL, delivered at APL88 in Sydney, which I retrieved from Sci-Hub recently because of course it’s otherwise behind a paywall.
http://igblan.co.uk/i-apl/paper.pdf
It calls out some of the claims in my last post as falsehoods! Memory is sometimes unreliable.
Cheers, Paul
David,
PS. This appeared on my Twitter today: film of December 3rd 1968 announcement of CDC 7600. This is the computer I was using at Imperial College. https://umedia.lib.umn.edu/item/p16022coll91:52 PPS. I’d never heard the terms IDE, VM or bytecode when I wrote DE and I-APL, hence my awkward terminology. Cheers, Paul
Paul --
Those were great machines. I never saw one. IBM 360/145 with APL microcode at UVic while I was there. We had a lots of fun on their Selectic terminals with APL type-balls installed. I wrote a one-liner Simplex Method LU Decomposition in APL, and a two-liner Tic-Tac-Toe.
Did you hear about Snibble? It was a Forth-like language with a simple priority parser on top so that it had infix notation, and I had correspondence with someone at Imperial College about it in the early 70s.
David
On Thu, Dec 3, 2020 at 9:30 AM Paul Chapman paul@igblan.free-online.co.uk wrote:
David,
PS. This appeared on my Twitter today: film of December 3rd 1968 announcement of CDC 7600. This is the computer I was using at Imperial College. https://umedia.lib.umn.edu/item/p16022coll91:52
PPS. I’d never heard the terms IDE, VM or bytecode when I wrote DE and I-APL, hence my awkward terminology.
Cheers, Paul
On Dec 3, 2020, at 7:46 AM, Paul Chapman paul@igblan.free-online.co.uk wrote:
David & David,
no machine can figure out what I need to be able to see as well as I can
Because I didn’t know in advance what my workflow would look like, I deliberately designed DE so that any of the six windows could display any of the available views. This would be my approach in a non-overlapping Smalltalk environment, which at least partially answers your objection.
Yes, that's better than the IDE I'm stuck with today. Could I resize them? Change the number of them? Probably hard given the hardware constraints you had.
Morphic/Self was maybe two hours better at the 3am test than any of the "modern" IDEs
3am? That’s my primetime. :)
It varies with my age! Or at least the penalty for going late does.
Our debugger reified each frame, so you could see as many as you wanted to, at once. Could yank them out, rearrange them, make a column morph of just the slots you wanted to see.
This approach looks great, but I still say it can be achieved with non-overlapping windows. Yes, allow lots of windows. But also allow the user to design and save bespoke non-overlapping layouts which suit her workflow.
What if the user is a male? ;)
Seriously, what we had was a big outliner for the whole stack, each frame being a section you could expand. If all you did was expand a few, you had effectively non-overlapping windows, (or panes). But then you could yank them out, so each one was a whole window, or stick them back into a column of entities only related by you. Randy's genius!
Is the I-APL code available anywhere, such as github?
Sadly, no. It might be on a buried CD-ROM somewhere in my flat. If I ever get around to sorting out my archives, I might find it.
Yeah, BS (Berkeley Smalltalk), is in the same state, only worse.
I first encountered APL when searching through wastebaskets in room 404 (!) of the Electrical Engineering building at Imperial College, London, for poorly overprinted passwords. It was initially indecipherable, since there were no keywords. So I’d enjoy posting my source code without syntax or semantic definitions to similarly confuse modern programmers. :)
Let them eat glyphs! :)
I can, however, point you to a copy of my only published paper, on the development of I-APL, delivered at APL88 in Sydney, which I retrieved from Sci-Hub recently because of course it’s otherwise behind a paywall.
http://igblan.co.uk/i-apl/paper.pdf http://igblan.co.uk/i-apl/paper.pdf
It calls out some of the claims in my last post as falsehoods! Memory is sometimes unreliable.
Thanks, I'll take a look! Yes, much of "reality" is falsehoods. As long as I can get up in the morning, and find something to eat in the house reality isn't a total loss.
Cheers, Paul
Paul,
Just skimmed your paper, looks like some great work. I'm wondering what the morals of the story are. What did the experience teach you? Did it change you?
TIA
- David
On Dec 5, 2020, at 10:55 AM, David Ungar ungar@mac.com wrote:
On Dec 3, 2020, at 7:46 AM, Paul Chapman <paul@igblan.free-online.co.uk mailto:paul@igblan.free-online.co.uk> wrote:
David & David,
no machine can figure out what I need to be able to see as well as I can
Because I didn’t know in advance what my workflow would look like, I deliberately designed DE so that any of the six windows could display any of the available views. This would be my approach in a non-overlapping Smalltalk environment, which at least partially answers your objection.
Yes, that's better than the IDE I'm stuck with today. Could I resize them? Change the number of them? Probably hard given the hardware constraints you had.
Morphic/Self was maybe two hours better at the 3am test than any of the "modern" IDEs
3am? That’s my primetime. :)
It varies with my age! Or at least the penalty for going late does.
Our debugger reified each frame, so you could see as many as you wanted to, at once. Could yank them out, rearrange them, make a column morph of just the slots you wanted to see.
This approach looks great, but I still say it can be achieved with non-overlapping windows. Yes, allow lots of windows. But also allow the user to design and save bespoke non-overlapping layouts which suit her workflow.
What if the user is a male? ;)
Seriously, what we had was a big outliner for the whole stack, each frame being a section you could expand. If all you did was expand a few, you had effectively non-overlapping windows, (or panes). But then you could yank them out, so each one was a whole window, or stick them back into a column of entities only related by you. Randy's genius!
Is the I-APL code available anywhere, such as github?
Sadly, no. It might be on a buried CD-ROM somewhere in my flat. If I ever get around to sorting out my archives, I might find it.
Yeah, BS (Berkeley Smalltalk), is in the same state, only worse.
I first encountered APL when searching through wastebaskets in room 404 (!) of the Electrical Engineering building at Imperial College, London, for poorly overprinted passwords. It was initially indecipherable, since there were no keywords. So I’d enjoy posting my source code without syntax or semantic definitions to similarly confuse modern programmers. :)
Let them eat glyphs! :)
I can, however, point you to a copy of my only published paper, on the development of I-APL, delivered at APL88 in Sydney, which I retrieved from Sci-Hub recently because of course it’s otherwise behind a paywall.
http://igblan.co.uk/i-apl/paper.pdf http://igblan.co.uk/i-apl/paper.pdf
It calls out some of the claims in my last post as falsehoods! Memory is sometimes unreliable.
Thanks, I'll take a look! Yes, much of "reality" is falsehoods. As long as I can get up in the morning, and find something to eat in the house reality isn't a total loss.
Cheers, Paul
David,
Could I resize them? Change the number of them?
Resize, yes, including quick maximize/restore. Change the number? No. Six seemed like a good compromise between screen space and flexibility.
I'm wondering what the morals of the story are. What did the experience teach you? Did it change you?
It taught me that my instincts were pretty good. The extra time spent designing a DSL and then building an IDE paid off with a fourfold improvement in development time compared with my first APL interpreter. That’s pretty remarkable for two projects whose end products were functionally identical. I was lucky that my first paid programming job, in my gap year when I was 19, happened to be writing a compiler, in FORTRAN IV, for a FORTRAN-like DSL for a market research company. Rather precociously, I started by rewriting the spec and sending it back. This was greeted with approval (The MD - an old term for CEO - of that company and I undertook other projects over subsequent years, including that first APL interpreter.) My rewrite simplified and unified various concepts. Thus I serendipitously became a specialist in language design and implementation, although professionally I had many ‘ordinary’ contracts as well. If anything changed me it was encountering Smalltalk five years later. My hobby programming language of choice switched almost overnight from APL to Smalltalk. And it was the reification of lexical closures which sealed the deal. I’d always wanted to reduce APL’s greed for memory by implementing ‘deferred execution’ (now known as ‘lazy evaluation’) for certain APL idioms, to eliminate the frequent need to compute large intermediate arrays. This would’ve been hard in a low-level language. When I brought a Smalltalk/V install home from work (I later bought Smalltalk/V with my own money!), I had a proof of concept for deferred execution (what is now called ‘lazy evaluation’) running in a few days. I’ve only written in Smalltalk once on a paid project, in 1997. But for another project, in 1998-2000, I implemented a DSL in VB6 (not my choice!) built around a datatype which was a piecewise linear function (in this case, a banded tax and benefits system). I demonstrated a proof of concept to my new boss on day two of the contract – by bringing my Smalltalk into the office and prototyping the datatype. This appeared to confirm to him that he’d hired the right guy off the street. We’re still friends. Cheers, Paul
Paul --
Very interesting. Is the I-APL code available anywhere, such as github?
Thanks David
On Wed, Nov 25, 2020 at 4:56 PM Paul Chapman paul@igblan.free-online.co.uk wrote:
David,
Five years before I saw Smalltalk, I built a windowed IDE in C for a FORTH-like language (called DE before I’d heard the term IDE) of my own design, which rendered on a 25x80 monochrome text screen. Exactly six resizable and maximizable/restorable, non-overlapping windows; no icons; no menus; no mouse. Each window could display any of: selectable list of global functions; editable function source with settable breakpoints; function symbolic object code; contents of RAM (heap); contents of call stack; contents of value stack; contents of local variable; source trace; object trace; application I/O console. Where a value referenced something else symbolically, the symbol was shown; eg READ_LINE+0014H, RAM+1210H. The IDE ran entirely in RAM on a 128K IBM PC clone. The output was a symbolic object-code file. An STSC APL*PLUS program then compiled this to binary – eventually taking 5 hours.
It took me 9 months to use this language and IDE to implement I-APL, a complete, standard-conforming APL interpreter which compiled to 26K of object code which ran under a VM. The VM was then implemented on a number of platforms (by other members of the I-APL project), including CP-M, Apple II, IBM PC, BBC Micro, etc.
It took me one month (1st-30th September 1987) to design the language and implement the IDE. On schedule!
My take-away?
Overlapping windows are overrated, and maybe even counterproductive to dev (see most IDEs of the past 20+ years: they use minimizable-in-place windows and docking). I do love my mouse now, but tabbing through the windows was easy in my IDE. My Smalltalk/V dev setup was always 3 non-overlapping windows: Transcript, Workbench (my idea: ListBox+TextEdit where I could define & run small pieces of code), and one CHB for the app. A second, overlapping, CHB, usually minimized, was used for browsing non-app classes. Of course walkback windows and inspectors overlapped (but when I get around to writing a Smalltalk dev environment, they won’t.)
Menus *might* be a design choice left over from when graphics displays had much lower resolutions, to save on real estate. (Look at the welcome proliferation of toolbars.) In those days, IBM keyboards had 10 function keys arranged in 2 columns on the left. I stole WordStar’s 2-function-key commands (one from the left column, one from the right) allowing 25 commands at my fingertips without having to hit CTRL or ALT. These were my ‘menu shortcuts’ and all I needed.
And I still find icons annoying: they’re not scalable, ie eventually they all look like a multicoloured splodge. Same with emojis. Okay, maybe my eyesight isn’t as good as it used to be.
As you can probably tell, I’m still resting on this particular laurel.
Cheers, Paul _______________________________________________ Self-interest mailing list Self-interest@lists.selflanguage.org http://lists.selflanguage.org/mailman/listinfo/self-interest
Interleaving...
On Nov 24, 2020, at 9:47 PM, Russell Allen mail@russell-allen.com wrote:
The short story is:
4 cheap cloud servers, running in Sydney, Silicon Valley and Tokyo and one in Sydney as a manager. When you start a trial Self world through the webpage, the Self management code connects to one of those servers, and runs Self with your snapshot in a security jail. The Self VM connects to a X11 server, which is turned into a VNC remote desktop connection, which is then carried over a WebSocket to your browser. There are quite a few moving parts unfortunately.
Wow, amazing. I'm impressed.
There are a strictly limited number of Self instances which can run at any one time, but there’s scope to scale up or out.
The future is even better than flying cars.
So what you see in your browser is effectively a X11 desktop with a full screen window open, which is why when you started the spy it covered up the Self desktop. I think there is a key combo which you could have used to switch back and forth.
Oh, thanks.
I hadn’t thought about ui1, but it it should be possible to get it to work since it uses X11. If I get some time I’ll try it out.
Thanks in advance.
On the back end, ie not the trial worlds, each running Self instance has access to a persistent directory which can be used for the transporter so I have been developing the system recently entirely through the web. I can export modules to a git repo then push that to GitHub, and can also rebuild my snapshot from those sources from within Self (or by cheating and ssh-ing into the server).
Very cool!
What you probably didn’t try was the morphic multiuser code. Jason Grossman and I did a test the other day and it worked nicely. The system gave us both a username/password and a url to log on. We then each got a view of the shared desktop etc. It would be interesting to see how many people we can do at once.
Yes, it would. No, didn't try it.
Wow, Russell. I'm really touched to see this. Thanks again!
- David
Russell
On 25 Nov 2020, at 3:46 pm, David Ungar ungar@mac.com wrote:
I'm amazed! I was able to get a gas tank going. And turned on the spy, but it obliterated the desktop, till I turned it off with the console. Wow!!
What would it take to get ui1 to work?
Where is this really running? How is it working??
Thank you so very much!
- David
On Nov 24, 2020, at 8:29 PM, Russell Allen mail@russell-allen.com wrote:
I’m reasonably confident that although it might not always work, the OurSelf code won’t screw up my servers in a way which is hard to fix, so I’ve removed the need for an invite to try out an online Self world.
Let me know if you try it and it works (or doesn’t!). As a reminder, you choose a server near you and get a link to a morphic desktop, and also to a console. After 20 minutes or so the trial is deleted so don’t worry about breaking anything.
Also if you are interested in playing more seriously (saving snapshots etc) or want to try a shared world, send me an email.
The existing trial world is very boring! My next step is to start to add interesting applications to play around with.
:) Russell
Self-interest mailing list Self-interest@lists.selflanguage.org http://lists.selflanguage.org/mailman/listinfo/self-interest
Self-interest mailing list Self-interest@lists.selflanguage.org http://lists.selflanguage.org/mailman/listinfo/self-interest
Very cool.
When I made the radar view, I never thought I’d be using it at an insomniatic moment while laying on my back in bed poking at a small glass slab!
—Randy
On Nov 24, 2020, at 8:29 PM, Russell Allen mail@russell-allen.com wrote:
I’m reasonably confident that although it might not always work, the OurSelf code won’t screw up my servers in a way which is hard to fix, so I’ve removed the need for an invite to try out an online Self world.
Let me know if you try it and it works (or doesn’t!). As a reminder, you choose a server near you and get a link to a morphic desktop, and also to a console. After 20 minutes or so the trial is deleted so don’t worry about breaking anything.
Also if you are interested in playing more seriously (saving snapshots etc) or want to try a shared world, send me an email.
The existing trial world is very boring! My next step is to start to add interesting applications to play around with.
:) Russell
Self-interest mailing list Self-interest@lists.selflanguage.org http://lists.selflanguage.org/mailman/listinfo/self-interest
There's a good joke in there somewhere....
Guess you made that view too interesting. Maybe it needs a rotating spiral to help put one back to sleep.
On Nov 25, 2020, at 7:23 AM, Randy randy.smith@gmail.com wrote:
Very cool.
When I made the radar view, I never thought I’d be using it at an insomniatic moment while laying on my back in bed poking at a small glass slab!
—Randy
On Nov 24, 2020, at 8:29 PM, Russell Allen mail@russell-allen.com wrote:
I’m reasonably confident that although it might not always work, the OurSelf code won’t screw up my servers in a way which is hard to fix, so I’ve removed the need for an invite to try out an online Self world.
Let me know if you try it and it works (or doesn’t!). As a reminder, you choose a server near you and get a link to a morphic desktop, and also to a console. After 20 minutes or so the trial is deleted so don’t worry about breaking anything.
Also if you are interested in playing more seriously (saving snapshots etc) or want to try a shared world, send me an email.
The existing trial world is very boring! My next step is to start to add interesting applications to play around with.
:) Russell
Self-interest mailing list Self-interest@lists.selflanguage.org http://lists.selflanguage.org/mailman/listinfo/self-interest
Self-interest mailing list Self-interest@lists.selflanguage.org http://lists.selflanguage.org/mailman/listinfo/self-interest
self-interest@lists.selflanguage.org