Jecel -
I have been following the self-interest theads occasionally. Your current challenge, I take it, is to provide a lightweight remote GUI front end to Self applications. I would suggest that you contact Passport Corporation in Paramus, NJ. They have developed a Java Remote Presentation Protocol that allows them to Web enable any application previously developed in their proprietary language (Passport). This protocol sends high-level commands (something like: "create_main_window,<myWinId>,2,4,500,600") to a remote Java windowing system (Swing). The remote GUI has a significant amount of intelligence allowing local events to be processed as automated GUI actions. For example, clicking on a folder tab will automatically cause the associated tab's content window to be brought to the front while the tab-control automatically repaint and redirects focus to the first sensitive object in the content window. There is much more to tell about this technology which was actually written up in some Hurwitz Publications and an IDC Application Development Tools Bulletin entitled "Examining the Internet, Enterprise Development, and IntRprise" [May 1997, IDC #13396 Vol: 1 Tab: Vendor Strategies]. Check it out. I think you'll be surprised.
Jack H. Schwartz Chief Technical Officer VP, Software Development Skila Inc. 1200 MacArthur Blvd. Mahwah, NJ 07430 http://www.skila.com Jack@Skila.com
-----Original Message----- From: Jecel Assumpcao Jr. [mailto:jecel@merlintec.com] Sent: Tuesday, February 22, 2000 4:54 PM To: self-interest@egroups.com Subject: [self-interest] Re: remote GUI
Thanks to David N. Smith, Stefan Matthias Aust and John Hinsley for their feedback on the remote GUI problem. I'll lump all my comments here to save bandwidth.
Berlin: it looks need, but I don't see that it will really be more lightweight than X. They claim to be inspired by NeWS, which is a good thing, but I don't see how they can send new functionality over to the server that wasn't there before (from what I know about Corba). In any case, this is for the future and I need something for the next few weeks...
VNC at 128kbps: this obviously is a case of personal taste. But since I will be serving several clients over a single 33kbps link, it seems that this isn't a good choice for me.
X in Java (http://wiredx.net): since the students would have to download a Java 2 plug-in and do a lot of configuration before using this, it really isn't an option (though it would be the least work for me since it would talk to Self as it is now). In fact, it is very likely that their PCs won't have enough resources in any case. Plus there is the 33kbps limitation I mentioned above.
I guess I will have to make the clients way more intelligent so I can use a higher level protocol. Since the students will have to download something in any case, something in Squeak might be the right choice for this project.
As long as I am lumping different stuff together, I might as well comment Stefan's observation here:
Compared with Self on Squeak, the Java version performs much better -especially with HotSpot. It's still not comparable with the real Self
system
I think, but the advantage is that I can easily script existing Java code.
I
did a very small example with Swing. And I've to say that a lot of Smalltalkers (and Self fan) here and on the Squeak list are biased. Java
is
better than you think :-)
The problem is that there are several different Javas out there. When I write a program in Java, I limit myself to what will work on the Java included in the old Netscape or Internet Explorer that the user might be using. So that colors my impression of the language. Of course I can get much better results by requiring that the user download Java 2 (like the wiredX people do) and that they only use IE on Win98 or later, but then what is the point?
-- Jecel
------------------------------------------------------------------------ You can save up to $200 on your auto insurance at Esurance. Personalize your auto insurance so that you only pay for what you need. Call 1-800-926-6012 or go to http://click.egroups.com/1/1283/5/_/8257/_/951253747/
eGroups.com Home: http://www.egroups.com/group/self-interest/ http://www.egroups.com - Simplifying group communications
[Jack Schwartz wrote about the Java Remote Presentation Protocol and Passport]
Thanks for the tip! Looking at their web site, it seems that this tool is intended for business applications. I think what I describe below is more demanding than filling in forms and such.
I should have been more specific about what I want to do: basically the idea is to have a shared space on the internet similar to Kansas (infinite scrollable space) where the users can draw and "chat". Everything done in this space is permanent so people coming in later can see what was discussed and add their (non real time, in this case) contribution.
This is easy to program in Self (it is almost done already, after all :-) and would work fine on a high speed LAN with people using X Windows. But I see now that it is too ambitious to try that over a 33kbps modem.
A solution is for everyone to have their copy of the application running locally with a copy of the "state of the world". Every change is sent to the server and relayed to all other users (and saved to be sent to those who log in later). In fact, it would be interesting to be able to work offline: you connect and update your local state in a single batch operation, then you disconnect and can browse the drawings and discussions at your convenience adding comments and picture, then you connect again so others can see what you have changed.
The first design is doable now, but needs a remote GUI that works on slow connections (which I no longer think is possible). The second design needs to have Self running on the client machines (PCs), or I need to do it in some other language.
-- Jecel
At 19:26 23.02.00 -0300, Jecel Assumpcao Jr. wrote:
I should have been more specific about what I want to do: basically the idea is to have a shared space on the internet similar to Kansas (infinite scrollable space) where the users can draw and "chat".
This is actually exactly the same type of application I wanted to create recently. We (that is www.baltic-online.de) stopped development when we noticed that our very generic approach was too slow.
I started with the assumption, that if X would be fast enough, then a specially written light-weight protocol similar to X could be fast enough to support a few (up to 10) clients over ISDN (which was our assumed minimum). I did this in Java and it worked very well with the exception that cursor movements where very sluggish and because of a high lag time, it was remotely nearly unusable.
We're now using a different approach that uses local UIs with only shared models located in a central object database.
But interestinly, drawing and chatting, actually a collaborate whiteboard was exactly our goal, too.
This is easy to program in Self (it is almost done already, after all :-) and would work fine on a high speed LAN with people using X Windows. But I see
now
that it is too ambitious to try that over a 33kbps modem.
Something that is faster than X is SLIM, the protocol used by Sun to connect SunRay1 terminals to a central server. There's a paper available online about that protocol but I didn't find an exact specifiction how to implement that protocol. They say however, it's a very simple protocol consisting of only 5 commands which are centered around bitmap copy. The paper tries to prove that SLIM is not slower than X, ofen faster and better for multi-media applications like playing movies.
At work, we've only SunRays, so I can say that it works quite well for typical business stuff like doing accounting or development. (It slows down Squeak, though, but this might be because Squeak is already slower on X than on Windows)
bye -- Stefan Matthias Aust // Bevor wir fallen, fallen wir lieber auf.
I thought the SunRays required a minimum of 10Mbps switched ethernet to the server, with 100Mbps switched recommended. That would seem to imply that the protocol is much less efficient than X? I could very easily be wrong, though.
Jerry
-----Original Message----- From: Stefan Matthias Aust [mailto:sma@3plus4.de] Sent: Friday, February 25, 2000 2:03 PM To: self-interest@egroups.com Subject: [self-interest] Re: remote GUI
At 19:26 23.02.00 -0300, Jecel Assumpcao Jr. wrote:
I should have been more specific about what I want to do: basically the idea is to have a shared space on the internet similar to Kansas (infinite scrollable space) where the users can draw and "chat".
This is actually exactly the same type of application I wanted to create recently. We (that is www.baltic-online.de) stopped development when we noticed that our very generic approach was too slow.
I started with the assumption, that if X would be fast enough, then a specially written light-weight protocol similar to X could be fast enough to support a few (up to 10) clients over ISDN (which was our assumed minimum). I did this in Java and it worked very well with the exception that cursor movements where very sluggish and because of a high lag time, it was remotely nearly unusable.
We're now using a different approach that uses local UIs with only shared models located in a central object database.
But interestinly, drawing and chatting, actually a collaborate whiteboard was exactly our goal, too.
This is easy to program in Self (it is almost done already, after all :-)
and
would work fine on a high speed LAN with people using X Windows. But I see
now
that it is too ambitious to try that over a 33kbps modem.
Something that is faster than X is SLIM, the protocol used by Sun to connect SunRay1 terminals to a central server. There's a paper available online about that protocol but I didn't find an exact specifiction how to implement that protocol. They say however, it's a very simple protocol consisting of only 5 commands which are centered around bitmap copy. The paper tries to prove that SLIM is not slower than X, ofen faster and better for multi-media applications like playing movies.
At work, we've only SunRays, so I can say that it works quite well for typical business stuff like doing accounting or development. (It slows down Squeak, though, but this might be because Squeak is already slower on X than on Windows)
bye -- Stefan Matthias Aust // Bevor wir fallen, fallen wir lieber auf.
------------------------------------------------------------------------ Get what you deserve with NextCard Visa! Rates as low as 2.9% Intro or 9.9% Fixed APR, online balance transfers, Rewards Points, no hidden fees, and much more! Get NextCard today and get the credit you deserve! Apply now! Get your NextCard Visa at: http://click.egroups.com/1/913/5/_/8257/_/951510759/
-- Check out your group's private Chat room -- http://www.egroups.com/ChatPage?listName=self-interest&m=1
Thanks for the input, Stefan and Jerry. I am guessing that the Sun Ray protocol is very similar to VNC, and that it also works best over fast networks.
In the end, I decided that the only way to work over the networks I will be using is to have the whole application on the client machines, including replicas of the shared model. The server would then work as a kind of hub, receiving state updates from the clients and retransmitting those to all other clients. One advantage of this design is that it can allow you to work offline as well, which is important for those with dial-up connections.
Unfortunately, I think I will be forced to use Perl for the server and Squeak for the client. Hopefully, I'll be able to replace both with Self versions before the projects ends in June.
Perl: I can run Self on the server, but my site has a 33kbps link. If the server is simple enough, then writing it in Perl will allow me to run it on any hosting provider (Rapid Site, in this case). I would much prefer Python to Perl, but many sites don't announce it being available...
Squeak: the client machines are underpowered Windows PCs. Self doesn't run on PCs yet, and when it does it will first be in Linux and it will be slow (I am supposing that the SIC won't be ported). A stripped down Squeak image can be 3MB or less, and clients don't need source and changes files. So it looks to me like a smaller download and simpler install than Java2.
Some time ago, I wrote a simulator for a chorded keyboard I designed in Self. It took me just about three minutes to get it working. I wasn't able to fully test it since the Sun keyboard doesn't allow you to press more than three keys at a time. To let other people try it (who didn't have SparcStations) I started to rewrite it in Squeak. I didn't get very far before I had to give up due to Squeak's lack of keyUp events. The I tried VisualBasic, but found that the version I had didn't generate .EXE files so I would only be able to distribute the program to those who already had VB. I considered JavaScript, but found each version of the language handled events very differently so I would have to write a special version for each browser! So I finally tried Java, using only vi and linux.jdk-1.0.2-pl1 as my development tools. Though it was my third complete rewrite of the program, this one took me much longer. The primitive tools weren't so much of a problem, but the totally misleading descriptions of the paint and update functions made we waste some two days until things were working reasonably well.
The ideal solution (not counting being able to upload "Selflets" to client machines) would be to be able to write the application in Self and have people be able to use it with their normal browsers. For a while (in 1995, I think) there was a machine at Sun outside their firewall and running Self so anyone with a X server could connect and play around. It wasn't very usable on my 14400 modem, but things are a bit faster these days.
-- Jecel
self-interest@lists.selflanguage.org