sandboxing a world

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

sandboxing a world

projectVALIS
Hi all, 

I'm just now getting into squeak and finding it a delightful programming environment. I am, however, curious as to why some features don't seem readily available. First and foremost, why isn't there a stripped down version of the VM that runs Squeak programs and nothing else? That is, why isn't it possible to distribute Squeak program to users in the way Java developers distribute Java programs? 

To put this another way, let's say I'm a Squeak developer and I want to distribute my program to a community of people that does X. Under the current paradigm, all the people that do X also have to be Squeak savvy people if they are going to make use of my program. They have to be savvy enough to know what it is, install it, run it, install my program, and run my program. Moreover, they have to know enough about the Squeak interface to know what to do if they accidentally close my program window. Conversely, with Java, the user doesn't have to know anything about Java beyond downloading JVM. In this way, I can distribute my program to everyone that does X without having to worry about whether or not they also know anything about Squeak. 

So why isn't something like this available? 


David Holiday 
-------------------------------------------------
San Diego State University






_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: sandboxing a world

Herbert König
Hi David

replying to the contents of your mail not to the subject. Sandboxing is a different matter.

There are several ways to distribute Squeak as an application. The Squeak all in one is an example.

Disclaimer: I never distributed a packaged Squeak application myself.

An overview:

When Squeak is saved it starts just where it was saved, e.g. with an animation (or your app) runnig.

There's a startup list in which you can enter messages which are sent on system startup. (e.g. start and initialize your app)

Squeak can take a command line parameter which is the name of a file with Smalltalk source which will be executed. This may start your app.

There's a lockdown script which can be used to make the dev tools unavailable to the end user.

Scratch and Etoys are examples of applications with the development tools hidden.

In the preferences you will find options to disable the search for a sources and changes file and other things you may find useful for distributing an application.

You can resource-hack the icon of Squeak and just replace the splash screen with your own picture.

If you want an installable package, people use some of the freely available installer generators.

Not sure if this list is exhaustive.

As a first start I suggest you download the all in one from squeak.org. Then bring your image in a state that you would call "My application running". Save that image.  Use that image and changes to replace the image and changes in the all in one (Assuming you use Squeak 4.4 for your app). Voila, you have a one click application that runs on Win, Linux, Mac.

Due to the nature of Smalltalk there is no different VM for an application. There is no difference beteween e.g. the compiler or your application. Both are just objects that get sent messages. The VM runs both in the same way.

Then maybe you can ask more specific questions.


Cheers

Herbert

Am 13.10.2013 10:23, schrieb David Holiday:
Hi all, 

I'm just now getting into squeak and finding it a delightful programming environment. I am, however, curious as to why some features don't seem readily available. First and foremost, why isn't there a stripped down version of the VM that runs Squeak programs and nothing else? That is, why isn't it possible to distribute Squeak program to users in the way Java developers distribute Java programs? 

To put this another way, let's say I'm a Squeak developer and I want to distribute my program to a community of people that does X. Under the current paradigm, all the people that do X also have to be Squeak savvy people if they are going to make use of my program. They have to be savvy enough to know what it is, install it, run it, install my program, and run my program. Moreover, they have to know enough about the Squeak interface to know what to do if they accidentally close my program window. Conversely, with Java, the user doesn't have to know anything about Java beyond downloading JVM. In this way, I can distribute my program to everyone that does X without having to worry about whether or not they also know anything about Squeak. 

So why isn't something like this available? 


David Holiday 
-------------------------------------------------
San Diego State University







_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners


_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: sandboxing a world

Ben Coman
In reply to this post by projectVALIS
David Holiday wrote:
Hi all, 

I'm just now getting into squeak and finding it a delightful programming environment. I am, however, curious as to why some features don't seem readily available. First and foremost, why isn't there a stripped down version of the VM that runs Squeak programs and nothing else? That is, why isn't it possible to distribute Squeak program to users in the way Java developers distribute Java programs? 

To put this another way, let's say I'm a Squeak developer and I want to distribute my program to a community of people that does X. Under the current paradigm, all the people that do X also have to be Squeak savvy people if they are going to make use of my program. They have to be savvy enough to know what it is, install it, run it, install my program, and run my program. Moreover, they have to know enough about the Squeak interface to know what to do if they accidentally close my program window. Conversely, with Java, the user doesn't have to know anything about Java beyond downloading JVM. In this way, I can distribute my program to everyone that does X without having to worry about whether or not they also know anything about Squeak. 

So why isn't something like this available? 
  
Refer to http://squeak.preeminent.org/tut2007/html/205.html
noting that it is for an older version of Squeak.

cheers -ben

David Holiday 
-------------------------------------------------
San Diego State University
[hidden email]







  

_______________________________________________ Beginners mailing list [hidden email] http://lists.squeakfoundation.org/mailman/listinfo/beginners


_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: sandboxing a world

David T. Lewis
In reply to this post by projectVALIS
On Sun, Oct 13, 2013 at 01:23:56AM -0700, David Holiday wrote:
> Hi all,
>
> I'm just now getting into squeak and finding it a delightful programming environment. I am, however, curious as to why some features don't seem readily available. First and foremost, why isn't there a stripped down version of the VM that runs Squeak programs and nothing else? That is, why isn't it possible to distribute Squeak program to users in the way Java developers distribute Java programs?
>
> To put this another way, let's say I'm a Squeak developer and I want to distribute my program to a community of people that does X. Under the current paradigm, all the people that do X also have to be Squeak savvy people if they are going to make use of my program. They have to be savvy enough to know what it is, install it, run it, install my program, and run my program. Moreover, they have to know enough about the Squeak interface to know what to do if they accidentally close my program window. Conversely, with Java, the user doesn't have to know anything about Java beyond downloading JVM. In this way, I can distribute my program to everyone that does X without having to worry about whether or not they also know anything about Squeak.
>
> So why isn't something like this available?

Hello David,

Here are a couple of links that explain how to approach distribution:

http://wiki.squeak.org/squeak/5892

http://wiki.squeak.org/squeak/3563

One of the things you will notice is that no special VM is needed. The
VM is just a program that brings the object environment to life. All of
the really interesting things happen in the objects, and you have full
access to them as soon as the VM brings them to life. For that reason,
preparing your application for deployment is a matter of preparing it
to present the things that constitute your application, and hiding or
removing the rest.

HTH,
Dave

_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: sandboxing a world

kilon
I have to say that by very far, smalltalk and especially squeak and pharo have the best distribution system I have seen in 25 year messing with coding and most popular programming languages. The all inclusive language+IDE+libraries with no installation required at all is huge plus. Languages like Java and Python require that your user has already a huge runtime installed just to be able to run an app. 

Also smalltalk approach beats hand down native apps too. Why ? Because though you hide the IDE from the user does not mean that IDE is not there (and then VM and loads of refactoring libraries) to help you collect info or even automagically deal with problematic situations. Native apps at best would deal with exception handling and thats it. Bundling in big refactoring tools or a hidden IDE would consider an overkill. But for smalltalk apps distributed as standalone they have a huge libraries of tools to deal with many different kind of coding problem, underground, without disturbing user experience one tiny bit.  Because each time you distribute a squeak/pharo app you distribute the whole Smalltalk system. 

And it packs a lot of power in 80 MBs.  


On Sunday, 13 October 2013, 16:39, David T. Lewis <[hidden email]> wrote:
On Sun, Oct 13, 2013 at 01:23:56AM -0700, David Holiday wrote:
> Hi all,
>
> I'm just now getting into squeak and finding it a delightful programming environment. I am, however, curious as to why some features don't seem readily available. First and foremost, why isn't there a stripped down version of the VM that runs Squeak programs and nothing else? That is, why isn't it possible to distribute Squeak program to users in the way Java developers distribute Java programs?
>
> To put this another way, let's say I'm a Squeak developer and I want to distribute my program to a community of people that does X. Under the current paradigm, all the people that do X also have to be Squeak savvy people if they are going to make use of my program. They have to be savvy enough to know what it is, install it, run it, install my program, and run my program. Moreover, they have to know enough about the Squeak interface to know what to do if they accidentally close my program window. Conversely, with Java, the user doesn't have to know anything about Java beyond downloading JVM. In this way, I can distribute my program to everyone that does X without having to worry about whether or not they also know anything about Squeak.
>
> So why isn't something like this available?

Hello David,

Here are a couple of links that explain how to approach distribution:

http://wiki.squeak.org/squeak/5892

http://wiki.squeak.org/squeak/3563

One of the things you will notice is that no special VM is needed. The
VM is just a program that brings the object environment to life. All of
the really interesting things happen in the objects, and you have full
access to them as soon as the VM brings them to life. For that reason,
preparing your application for deployment is a matter of preparing it
to present the things that constitute your application, and hiding or
removing the rest.

HTH,
Dave


_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners



_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners