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:
- sandboxing a world (David Holiday)
- 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
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
beginners@lists.squeakfoundation.org