Thank you everyone for your help! I've been looking at Squeak/Pharo for a few weeks because I've been creating a platform for knowledge workers to work with information that was going to be a javascript single page application. For various reasons I think it makes sense not to have a 'web-based' app and was looking for a way to create a beautiful interface atop a powerful tool that I could easily deploy to whatever platform the user may have. This was the last concern I had, so I'm going to go ahead and start whipping up some awesome code. 


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





On Oct 15, 2013, at 5:00 AM, beginners-request@lists.squeakfoundation.org wrote:

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-request@lists.squeakfoundation.org

You can reach the person managing the list at
beginners-owner@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. Re: sandboxing a world (Herbert K?nig)


----------------------------------------------------------------------

Message: 1
Date: Mon, 14 Oct 2013 22:25:22 +0200
From: Herbert K?nig <herbertkoenig@gmx.net>
Subject: Re: [Newbies] sandboxing a world
To: beginners@lists.squeakfoundation.org
Message-ID: <525C5332.8020308@gmx.net>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed

Hi David,

yes that's definitely possible. Back in 2006 and 2007 I did it
frequently for software used in the production of electronics. Meant for
users with no computer knowledge assumed. Those programs refused to be
resized in that they snapped back to their original size by changing the
World 's extent in the step method of the app. You may want to read the
World's extent to re-layout after resizing and only refuse to shrink
below a minimal size.

This was long ago and I assume it is not how you would do it today but
the process will be similar.

As a user of Windows I had a batch file with the following line:
Squeak_newVM.exe lockdown.image start.st

This starts the VM with a certain image and a Smalltalk script. So I
just copied my image and changes into that folder under a fixed name and
edited the class name in the script. Don't remember why I used a custom
VM there, but it was a minimal change I did. Maybe use the VM to fix the
window size.

The script read:
    "set up autostart"
    Smalltalk addToStartUpList: PrüfRepDatenApplication .  "The class
of my Application"
    "remove the Flaps. For a recent Squeak you also might want to
remove the menu bar at the top. Search Preferences for 'docking'"
    Flaps globalFlapTabsIfAny do:    [:aFlapTab | Flaps removeFlapTab:
aFlapTab keepInList: false]. "usually not enabled in modern Squeak"
    GZipReadStream fileIn: 'SqueakLockdown-nk.1.cs.gz' asFileName.
"this is the changeset which does the lockdown"
    Preferences disableProgrammerFacilities.    SmalltalkImage current
snapshot: true andQuit: true. "This must be on one line"

If you can't locate the the changeset, drop me an email, I will send it
to you so you can examine it.

In those days (and I assume still today) your class needed two class
side methods in category system startup:

startUp
    implemented as self startUp: nil
and strartUp: anIgnoredObject
    which did the initialization like self new buildGUI

Please refer to the other pointers for more up to date information. I
just want to give you an example illustrating the process. Especially
the program "Plopp" mentioned there was distributed on CD and was meant
for kids. I bought a copy so I know it was like any old windows program.

Cheers

Herbert


Am 13.10.2013 23:12, schrieb 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-request@lists.squeakfoundation.org

You can reach the person managing the list at
beginners-owner@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 <neuburge@rohan.sdsu.edu>
Subject: [Newbies] sandboxing a world
To: beginners@lists.squeakfoundation.org
Message-ID: <B8C798A9-A2CE-40A4-B0A8-86765205B84D@rohan.sdsu.edu>
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
neuburge@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 <herbertkoenig@gmx.net>
Subject: Re: [Newbies] sandboxing a world
To: beginners@lists.squeakfoundation.org
Message-ID: <525A662A.2060201@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 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
neuburge@rohan.sdsu.edu <mailto:neuburge@rohan.sdsu.edu>








_______________________________________________
Beginners mailing list
Beginners@lists.squeakfoundation.org
http://lists.squeakfoundation.org/mailman/listinfo/beginners
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
http://lists.squeakfoundation.org/pipermail/beginners/attachments/20131013/08bf24e2/attachment-0001.htm

------------------------------

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


End of Beginners Digest, Vol 90, Issue 2
****************************************





------------------------------

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


End of Beginners Digest, Vol 90, Issue 4
****************************************