[Newbies] sandboxing a world

2013-10-13 Thread 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
neubu...@rohan.sdsu.edu






___
Beginners mailing list
Beginners@lists.squeakfoundation.org
http://lists.squeakfoundation.org/mailman/listinfo/beginners


Re: [Newbies] sandboxing a world

2013-10-13 Thread 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
neubu...@rohan.sdsu.edu 








___
Beginners mailing list
Beginners@lists.squeakfoundation.org
http://lists.squeakfoundation.org/mailman/listinfo/beginners


___
Beginners mailing list
Beginners@lists.squeakfoundation.org
http://lists.squeakfoundation.org/mailman/listinfo/beginners


Re: [Newbies] sandboxing a world

2013-10-13 Thread Ben Coman




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
neubu...@rohan.sdsu.edu







  
  

___
Beginners mailing list
Beginners@lists.squeakfoundation.org
http://lists.squeakfoundation.org/mailman/listinfo/beginners
  




___
Beginners mailing list
Beginners@lists.squeakfoundation.org
http://lists.squeakfoundation.org/mailman/listinfo/beginners


Re: [Newbies] sandboxing a world

2013-10-13 Thread David T. Lewis
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
Beginners@lists.squeakfoundation.org
http://lists.squeakfoundation.org/mailman/listinfo/beginners


Re: [Newbies] sandboxing a world

2013-10-13 Thread dimitris chloupis
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  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
Beginners@lists.squeakfoundation.org
http://lists.squeakfoundation.org/mailman/listinfo/beginners___
Beginners mailing list
Beginners@lists.squeakfoundation.org
http://lists.squeakfoundation.org/mailman/listinfo/beginners


Re: Re: [Newbies] sandboxing a world

2013-10-13 Thread David Holiday
Hi Herbert,

Thanks for getting back to me so quickly. As I understand you, it's
possible to create an application that prevents the user from seeing
anything but the application controls and widgets. Does this include the
Squeak world menu bar? I'm looking to avoid having a
window-within-a-window situation. Ideally, to the novice eye, the end user
would have no indication that this is a smalltalk application.

-david


> Send Beginners mailing list submissions to
>   beginners@lists.squeakfoundation.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
>   http://lists.squeakfoundation.org/mailman/listinfo/beginners
> or, via email, send a message with subject or body 'help' to
>   beginners-requ...@lists.squeakfoundation.org
>
> You can reach the person managing the list at
>   beginners-ow...@lists.squeakfoundation.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Beginners digest..."
>
>
> Today's Topics:
>
>1. sandboxing a world (David Holiday)
>2. Re: sandboxing a world (Herbert K?nig)
>
>
> --
>
> Message: 1
> Date: Sun, 13 Oct 2013 01:23:56 -0700
> From: David Holiday 
> Subject: [Newbies] sandboxing a world
> To: beginners@lists.squeakfoundation.org
> Message-ID: 
> Content-Type: text/plain; charset="us-ascii"
>
> 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
> neubu...@rohan.sdsu.edu
>
>
>
>
>
>
> -- next part --
> An HTML attachment was scrubbed...
> URL:
> http://lists.squeakfoundation.org/pipermail/beginners/attachments/20131013/52827f6b/attachment.html
>
> --
>
> Message: 2
> Date: Sun, 13 Oct 2013 11:21:46 +0200
> From: Herbert K?nig 
> Subject: Re: [Newbies] sandboxing a world
> To: beginners@lists.squeakfoundation.org
> Message-ID: <525a662a.2060...@gmx.net>
> Content-Type: text/plain; charset="iso-8859-1"
>
> 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 i