Hi All,
I've been attempting to use the Ma Client Server package on Squeak 5.0 using the instructions on http://wiki.squeak.org/squeak/2978 http://wiki.squeak.org/squeak/2978. The instructions there appear to be out of date. Is there another source of documentation available? The wiki lists the last edit date of that page in Sep 2016. So I assume the package is still being maintained. Please let me know if that is not the case.
Also, the version of Squeak 5.1 on the Squeak.org http://squeak.org/ does not launch on MacOS. The Squeak 5.0 image provided on Aida/web site does, which I am using.
Thanks in advance.
Kind regards,
Hari
The all-in-one? I just downloaded it and it did launch (MacOS 10.10.5) -- might be something on your end?
On 1/4/17 1:20 PM, Hari Balaraman wrote:
Also, the version of Squeak 5.1 on the Squeak.org http://squeak.org/ does not launch on MacOS.
Hello,
I guess, you are using macOS Sierra? For me Squeak 5.1 from all-in-one is working fine with the latest VMs from https://bintray.com/opensmalltalk/vm /cog. Like this one https://bintray.com/opensmalltalk/vm /download_file?file_path=cog_macos32x86_squeak.cog.spur_201612312257.tar.gz
Regards, Nikolai
On Wed, Jan 4, 2017 at 9:20 PM, Hari Balaraman hari.balaraman@icloud.com wrote:
Hi All,
I've been attempting to use the Ma Client Server package on Squeak 5.0 using the instructions on http://wiki.squeak.org/squeak/2978. The instructions there appear to be out of date. Is there another source of documentation available? The wiki lists the last edit date of that page in Sep 2016. So I assume the package is still being maintained. Please let me know if that is not the case.
Also, the version of Squeak 5.1 on the Squeak.org http://squeak.org/ does not launch on MacOS. The Squeak 5.0 image provided on Aida/web site does, which I am using.
Thanks in advance.
Kind regards,
Hari
Hi Nikolai, Thanks for the tip. It worked. I hope that download links on the website are updated in due course. The Sierra beta has been out since July and the final release was in September. Kind regards, Hari
-- View this message in context: http://forum.world.st/Ma-Client-Server-Squeak-launch-issues-tp4928722p492908... Sent from the Squeak - Dev mailing list archive at Nabble.com.
Hi Hari, Ma Client Server code and documentation is up-to-date and maintained. #listenOn:answer: was renamed to #processOn:using:. I've just updated that page to reflect that.
On Wed, Jan 4, 2017 at 12:20 PM, Hari Balaraman hari.balaraman@icloud.com wrote:
Hi All,
I've been attempting to use the Ma Client Server package on Squeak 5.0 using the instructions on http://wiki.squeak.org/squeak/2978. The instructions there appear to be out of date. Is there another source of documentation available? The wiki lists the last edit date of that page in Sep 2016. So I assume the package is still being maintained. Please let me know if that is not the case.
Also, the version of Squeak 5.1 on the Squeak.org http://squeak.org/ does not launch on MacOS. The Squeak 5.0 image provided on Aida/web site does, which I am using.
Thanks in advance.
Kind regards,
Hari
I just fixed a couple of other issues with that page.
On Wed, Jan 4, 2017 at 12:20 PM, Hari Balaraman hari.balaraman@icloud.com wrote:
Hi All,
I've been attempting to use the Ma Client Server package on Squeak 5.0 using the instructions on http://wiki.squeak.org/squeak/2978. The instructions there appear to be out of date. Is there another source of documentation available? The wiki lists the last edit date of that page in Sep 2016. So I assume the package is still being maintained. Please let me know if that is not the case.
Also, the version of Squeak 5.1 on the Squeak.org http://squeak.org/ does not launch on MacOS. The Squeak 5.0 image provided on Aida/web site does, which I am using.
Thanks in advance.
Kind regards,
Hari
Hi All,
I was wondering if there is a way to figure out the IP addresses of various network interfaces on a host machine. I've looked at some traffic on the list from a few years ago (6-7 years ago) that appeared to indicate there was no way to do this. As far as I could tell, there was a workaround using (running regularly) shell script that would write interface information to a file that could then be scooped up by the image.
I was wondering if things have changed.
I'd like an application to be aware of and be able to provide the IP address and port it is listening on for requests from the outside world (not localhost.)
Thanks in advance.
Kind regards,
Hari
YES You could know your local and internet Ip
I have this in Work (PasteUpMorph) reportPublicIP "Report the public IP of this computer World reportPublicIP."
| addrString m s stream | stream := HTTPSocket httpGet: 'http://checkip.dyndns.com'. stream upToAll: 'IP Address: '. stream := stream upTo: $<. Socket initializeNetwork. addrString := stream upTo: $<. m := RectangleMorph new color: (Color r: 0.6 g: 0.8 b: 0.6); extent: 118@36; borderWidth: 1. s := StringMorph contents: 'Public IP:'. s position: m position + (5@4). m addMorph: s. s := StringMorph contents: addrString. s position: m position + (5@19). m addMorph: s. self primaryHand attachMorph: m.
For local Transcript show: NetNameResolver localHostAddress printString
On Mar 4, 2017, at 14:40, Hari Balaraman hari.balaraman@icloud.com wrote:
Hi All,
I was wondering if there is a way to figure out the IP addresses of various network interfaces on a host machine. I've looked at some traffic on the list from a few years ago (6-7 years ago) that appeared to indicate there was no way to do this. As far as I could tell, there was a workaround using (running regularly) shell script that would write interface information to a file that could then be scooped up by the image.
I was wondering if things have changed.
I'd like an application to be aware of and be able to provide the IP address and port it is listening on for requests from the outside world (not localhost.)
Thanks in advance.
Kind regards,
Hari
HI all,
if you are running a web server you can use this to replace the http://checkip.dyndns.com suggested by Edgar (Hi Edgar!):
<?php $ip = getenv('HTTP_CLIENT_IP')?: getenv('HTTP_X_FORWARDED_FOR')?: getenv('HTTP_X_FORWARDED')?: getenv('HTTP_FORWARDED_FOR')?: getenv('HTTP_FORWARDED')?: getenv('REMOTE_ADDR'); echo trim($ip);?>
This does a pretty good job of reporting back the IP address of a connection from php. I was using https://api.ipify.org/ but a number of companies wrongly reported that as a virus and blocked it. Having your own code make it easier to get people to allow the connection especially if they are adjusting proxy servers for your server addresses anyway.
I use the client IP address to calculate the distance from the client connecting to each server so that I can select the closest one and reduce latency.
All the best,
Ron Teitelbaum www.3dicc.com
On Sat, Mar 4, 2017 at 3:21 PM Edgar De Cleene edgardec2005@gmail.com wrote:
YES You could know your local and internet Ip
I have this in Work (PasteUpMorph) reportPublicIP "Report the public IP of this computer World reportPublicIP."
| addrString m s stream | stream := HTTPSocket httpGet: 'http://checkip.dyndns.com'. stream upToAll: 'IP Address: '. stream := stream upTo: $<. Socket initializeNetwork. addrString := stream upTo: $<. m := RectangleMorph new color: (Color r: 0.6 g: 0.8 b: 0.6); extent: 118@36; borderWidth: 1. s := StringMorph contents: 'Public IP:'. s position: m position + (5@4). m addMorph: s. s := StringMorph contents: addrString. s position: m position + (5@19). m addMorph: s. self primaryHand attachMorph: m.
For local Transcript show: NetNameResolver localHostAddress printString
On Mar 4, 2017, at 14:40, Hari Balaraman hari.balaraman@icloud.com wrote:
Hi All,
I was wondering if there is a way to figure out the IP addresses of various network interfaces on a host machine. I've looked at some traffic on the list from a few years ago (6-7 years ago) that appeared to indicate there was no way to do this. As far as I could tell, there was a workaround using (running regularly) shell script that would write interface information to a file that could then be scooped up by the image.
I was wondering if things have changed.
I'd like an application to be aware of and be able to provide the IP address and port it is listening on for requests from the outside world (not localhost.)
Thanks in advance.
Kind regards,
Hari
On Mar 5, 2017, at 01:46, Ron Teitelbaum ron@usmedrec.com wrote:
I use the client IP address to calculate the distance from the client connecting to each server so that I can select the closest one and reduce latency.
Hi Ron. Could you elaborate more?. I
Hi Edgar,
You can use the IP Address to get a location. We use http://freegeoip.net, then you just need to do some math to get the distance. http://www.movable-type.co.uk/scripts/latlong.html
Here is more info on what we are using it for http://www.3dicc.com/immersive-terf-global-router-framework/
All the best,
Ron Teitelbaum www.3dicc.com
On Sun, Mar 5, 2017 at 2:25 AM Edgar De Cleene edgardec2005@gmail.com wrote:
On Mar 5, 2017, at 01:46, Ron Teitelbaum ron@usmedrec.com wrote:
I use the client IP address to calculate the distance from the client connecting to each server so that I can select the closest one and reduce latency.
Hi Ron. Could you elaborate more?. I
Very thanks, is very valuable info to me.
On Mar 5, 2017, at 11:49, Ron Teitelbaum ron@usmedrec.com wrote:
Hi Edgar,
You can use the IP Address to get a location. We use http://freegeoip.net http://freegeoip.net/, then you just need to do some math to get the distance. http://www.movable-type.co.uk/scripts/latlong.html http://www.movable-type.co.uk/scripts/latlong.html
Here is more info on what we are using it for http://www.3dicc.com/immersive-terf-global-router-framework/ http://www.3dicc.com/immersive-terf-global-router-framework/
All the best,
Ron Teitelbaum www.3dicc.com http://www.3dicc.com/
On Sun, Mar 5, 2017 at 2:25 AM Edgar De Cleene <edgardec2005@gmail.com mailto:edgardec2005@gmail.com> wrote:
On Mar 5, 2017, at 01:46, Ron Teitelbaum <ron@usmedrec.com mailto:ron@usmedrec.com> wrote:
I use the client IP address to calculate the distance from the client connecting to each server so that I can select the closest one and reduce latency.
Hi Ron. Could you elaborate more?. I
You are very welcome!
Ron
On Sun, Mar 5, 2017, 1:19 PM Edgar De Cleene edgardec2005@gmail.com wrote:
Very thanks, is very valuable info to me.
On Mar 5, 2017, at 11:49, Ron Teitelbaum ron@usmedrec.com wrote:
Hi Edgar,
You can use the IP Address to get a location. We use http://freegeoip.net, then you just need to do some math to get the distance. http://www.movable-type.co.uk/scripts/latlong.html
Here is more info on what we are using it for http://www.3dicc.com/immersive-terf-global-router-framework/
All the best,
Ron Teitelbaum www.3dicc.com
On Sun, Mar 5, 2017 at 2:25 AM Edgar De Cleene edgardec2005@gmail.com wrote:
On Mar 5, 2017, at 01:46, Ron Teitelbaum ron@usmedrec.com wrote:
I use the client IP address to calculate the distance from the client connecting to each server so that I can select the closest one and reduce latency.
Hi Ron. Could you elaborate more?. I
You can always use OSProcess/CommandShell to run netstat on Linux and MacOS. Do a search for OSProcess for more information.
Sent from my iPhone
On Mar 4, 2017, at 12:21, Edgar De Cleene edgardec2005@gmail.com wrote:
YES You could know your local and internet Ip
I have this in Work (PasteUpMorph) reportPublicIP "Report the public IP of this computer World reportPublicIP."
| addrString m s stream | stream := HTTPSocket httpGet: 'http://checkip.dyndns.com'. stream upToAll: 'IP Address: '. stream := stream upTo: $<.
Socket initializeNetwork. addrString := stream upTo: $<. m := RectangleMorph new color: (Color r: 0.6 g: 0.8 b: 0.6); extent: 118@36; borderWidth: 1. s := StringMorph contents: 'Public IP:'. s position: m position + (5@4). m addMorph: s. s := StringMorph contents: addrString. s position: m position + (5@19). m addMorph: s. self primaryHand attachMorph: m.
For local Transcript show: NetNameResolver localHostAddress printString
On Mar 4, 2017, at 14:40, Hari Balaraman hari.balaraman@icloud.com wrote:
Hi All,
I was wondering if there is a way to figure out the IP addresses of various network interfaces on a host machine. I've looked at some traffic on the list from a few years ago (6-7 years ago) that appeared to indicate there was no way to do this. As far as I could tell, there was a workaround using (running regularly) shell script that would write interface information to a file that could then be scooped up by the image.
I was wondering if things have changed.
I'd like an application to be aware of and be able to provide the IP address and port it is listening on for requests from the outside world (not localhost.)
Thanks in advance.
Kind regards,
Hari
On Sat, Mar 04, 2017 at 08:47:03PM -0800, John Pfersich wrote:
You can always use OSProcess/CommandShell to run netstat on Linux and MacOS. Do a search for OSProcess for more information.
As luck would have it, I just updated the SqueakMap entries for OSProcess and CommandShell yesterday, so you can easily install them from SqueakMap. Please use the latest versions of OSProcess/CommandShell regardless of what version of Squeak you have.
Repositories: http://www.squeaksource.com/OSProcess http://www.squeaksource.com/CommandShell
Information: http://wiki.squeak.org/squeak/708 http://wiki.squeak.org/squeak/1914 http://wiki.squeak.org/squeak/6023
Dave
Sent from my iPhone
On Mar 4, 2017, at 12:21, Edgar De Cleene edgardec2005@gmail.com wrote:
YES You could know your local and internet Ip
I have this in Work (PasteUpMorph) reportPublicIP "Report the public IP of this computer World reportPublicIP."
| addrString m s stream | stream := HTTPSocket httpGet: 'http://checkip.dyndns.com'. stream upToAll: 'IP Address: '. stream := stream upTo: $<.
Socket initializeNetwork. addrString := stream upTo: $<. m := RectangleMorph new color: (Color r: 0.6 g: 0.8 b: 0.6); extent: 118@36; borderWidth: 1. s := StringMorph contents: 'Public IP:'. s position: m position + (5@4). m addMorph: s. s := StringMorph contents: addrString. s position: m position + (5@19). m addMorph: s. self primaryHand attachMorph: m.
For local Transcript show: NetNameResolver localHostAddress printString
On Mar 4, 2017, at 14:40, Hari Balaraman hari.balaraman@icloud.com wrote:
Hi All,
I was wondering if there is a way to figure out the IP addresses of various network interfaces on a host machine. I've looked at some traffic on the list from a few years ago (6-7 years ago) that appeared to indicate there was no way to do this. As far as I could tell, there was a workaround using (running regularly) shell script that would write interface information to a file that could then be scooped up by the image.
I was wondering if things have changed.
I'd like an application to be aware of and be able to provide the IP address and port it is listening on for requests from the outside world (not localhost.)
Thanks in advance.
Kind regards,
Hari
Thanks Edgar, Ron, John, David, for the excellent suggestions! Kind regards, Hari
-- View this message in context: http://forum.world.st/Figuring-out-external-IP-addresses-of-network-interfac... Sent from the Squeak - Dev mailing list archive at Nabble.com.
On 4 March 2017 at 09:40, Hari Balaraman hari.balaraman@icloud.com wrote:
Hi All,
I was wondering if there is a way to figure out the IP addresses of various network interfaces on a host machine. I've looked at some traffic on the list from a few years ago (6-7 years ago) that appeared to indicate there was no way to do this. As far as I could tell, there was a workaround using (running regularly) shell script that would write interface information to a file that could then be scooped up by the image.
I was wondering if things have changed.
I'd like an application to be aware of and be able to provide the IP address and port it is listening on for requests from the outside world (not localhost.)
Thanks in advance.
Kind regards,
Hari
I'm unaware of any Squeak library doing this, but sounds like you want an FFI interface to the iphlpapi DLL, on a Windows box. That will let you iterate over interfaces, addresses of interfaces, and so on. It's in Delphi, but you can see the APIs can be used here: https://github.com/frankshearar/SipStack/blob/master/src/IdNetworking.pas
frank
Hi All, Is there a way to secure access to the changes file or to fold the changes from within the image back into the image rather than have them written into the changes file? The reason I ask is that I am deploying an client app and I see that the changes file is a text file that exposes all my code. Thanks in advance for all suggestions. Kind regards, Hari
Hello, disable preference #warnIfNoChangesFile and do not deploy changes file. Vaidotas
On Tue, Apr 18, 2017 at 4:58 AM, Hari Balaraman hari.balaraman@icloud.com wrote:
Hi All, Is there a way to secure access to the changes file or to fold the changes from within the image back into the image rather than have them written into the changes file? The reason I ask is that I am deploying an client app and I see that the changes file is a text file that exposes all my code. Thanks in advance for all suggestions. Kind regards, Hari
Hi Vaidotas, My app downloads code updates from the server and files them in. Will this be possible with your suggestion? I'm looking at "openSources: sourcesName andChanges: changesName forImage: imageName" in FileDirectory. It appears to need this file. I wonder if I can encrypt and decrypt writing and reading sources. Kind regards, Hari
-- View this message in context: http://forum.world.st/Ma-Client-Server-Squeak-launch-issues-tp4928722p494255... Sent from the Squeak - Dev mailing list archive at Nabble.com.
Hi Hari,
that's a simple experiment. Disable warnIfNoChangesFile and warnIfNoSourcesFile, move both files away and open your image.
Now if browsing code all your temp vars will be named t1, t2 ... that's all. The rest can be decompiled due to the dynamic nature of Smalltalk.
If you look how mcz are read an written (they are just zipped files) you could use the same technique to en- and decrypt code you file in instead of zipping and unzipping them. Look at: GZipReadStream>>fileIn:
But please read my reply to your other mail.
Cheers,
Herbert
Am 18.04.2017 um 18:02 schrieb Hari:
Hi Vaidotas, My app downloads code updates from the server and files them in. Will this be possible with your suggestion? I'm looking at "openSources: sourcesName andChanges: changesName forImage: imageName" in FileDirectory. It appears to need this file. I wonder if I can encrypt and decrypt writing and reading sources. Kind regards, Hari
-- View this message in context: http://forum.world.st/Ma-Client-Server-Squeak-launch-issues-tp4928722p494255... Sent from the Squeak - Dev mailing list archive at Nabble.com.
On 18-04-2017, at 9:02 AM, Hari hari.balaraman@icloud.com wrote:
Hi Vaidotas, My app downloads code updates from the server and files them in. Will this be possible with your suggestion?
This is a bit of a problem, or at least it was last time I checked. I was going to include a mechanism to allow updating Scratch, which obviously would involve installing code. With no changes file we run across an issue where the trailer bytes of the method want to know the file position of the changes file… which we have not got.
I’m pretty sure this used to work once upon a time but given how long we’ve been doing this stuff that could be a very long time ago. Right now what happens is that the Browser>defineMessageFrom:notifying: code leads us to Behavior>defaultMethodTrailerIfLogSource: which *would* handle the problem of a missing changes (or source) file if only the value of ‘logSource’ were appropriate. Ambling back up the stack a bit to ClassDescription>compile:classified:withStamp:notifying: shows us that a plausible culprit is #acceptsLoggingOfCompilation. This simply returns ‘true’ in most implementations, whereas I think it should probably be looking a bit more deeply.
One option might be to add a new method to the SourceFileArray classes to check if there is a [changes,source] file connected. Another might be to add a new subclass that simply knows there is no writeable file - which obviously would require a bit more deployment setup but might work out cleaner.
As a minimal fix I think we could solve this by a) add #hasWriteableChanges to SourceFileArray, default returning false. b) add ditto to each of the current subclasses, returning whether the file at 2 is not nil c) extend at least ClassDescription>acceptsLoggingOfCompiliation to ^SourceFiles hasWriteableChanges, with the other implementors of #acceptsLoggingOfCompiliation being a bit less obvious to me.
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim The generation of random numbers is too important to be left to chance.
On 18-04-2017, at 11:26 AM, tim Rowledge tim@rowledge.org wrote:
As a minimal fix I think we could solve this by a) add #hasWriteableChanges to SourceFileArray, default returning false. b) add ditto to each of the current subclasses, returning whether the file at 2 is not nil c) extend at least ClassDescription>acceptsLoggingOfCompiliation to ^SourceFiles hasWriteableChanges, with the other implementors of #acceptsLoggingOfCompiliation being a bit less obvious to me.
I’ve submitted an exemplar set of changes to the inbox since I do not know what we ought to do with classes such as UnscriptedPlayer. See inbox/Files-tpr.169 & Kernel-tpr.1075
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Strange OpCodes: TVO: Type Various Obscenities
We are using
ChangeSet class > newChangesFromStream: aStream named: aName
To load changes to a deployed 4.1 image with no changes file.
All the best,
Ron Teitelbaum
On Wed, Apr 19, 2017 at 4:59 PM tim Rowledge tim@rowledge.org wrote:
On 18-04-2017, at 11:26 AM, tim Rowledge tim@rowledge.org wrote:
As a minimal fix I think we could solve this by a) add #hasWriteableChanges to SourceFileArray, default returning false. b) add ditto to each of the current subclasses, returning whether the
file at 2 is not nil
c) extend at least ClassDescription>acceptsLoggingOfCompiliation to
^SourceFiles hasWriteableChanges, with the other implementors of #acceptsLoggingOfCompiliation being a bit less obvious to me.
I’ve submitted an exemplar set of changes to the inbox since I do not know what we ought to do with classes such as UnscriptedPlayer. See inbox/Files-tpr.169 & Kernel-tpr.1075
tim
tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Strange OpCodes: TVO: Type Various Obscenities
On Thu, Apr 20, 2017 at 12:10 AM, Ron Teitelbaum ron@usmedrec.com wrote:
We are using
ChangeSet class > newChangesFromStream: aStream named: aName
To load changes to a deployed 4.1 image with no changes file.
Yes, filing in code without a changes file used to work fine. Do we know what change broke it?
- Bert -
Hari,
do you know and if not are you interested to disable programmer facilities in your deployed image ?
Cheers,
Herbert
Am 18.04.2017 um 03:58 schrieb Hari Balaraman:
Hi All, Is there a way to secure access to the changes file or to fold the changes from within the image back into the image rather than have them written into the changes file? The reason I ask is that I am deploying an client app and I see that the changes file is a text file that exposes all my code. Thanks in advance for all suggestions. Kind regards, Hari
Hi Herbert, 'disableProgrammerFacilities' appears (from the comment) to disable snapshotting, which I do need to do within my client. However, I do disable debugger, halos, browser, workspace... selectively using a switch in my app, which I am looking to control using an username and password. Kind regards, Hari
-- View this message in context: http://forum.world.st/Ma-Client-Server-Squeak-launch-issues-tp4928722p494256... Sent from the Squeak - Dev mailing list archive at Nabble.com.
Hi Hari,
It seems you want to hide your sources from your users. Under that assumption:
As I wrote in my other reply removing sources and changes still gives very readable code in the browser.
A VM which ignores StartUpList will give anyone who has your image most of your sources. Especially your encryption can be easily avoided from there. Maybe there even is a tool which already loads an arbitrary image into the simulator for debugging.
http://wiki.squeak.org/squeak/518 collects the details on deployment, the changeset it refers to may need some rework for recent images. (In case you didn't already know, I got the pointer from Hannes.)
Cheers,
Herbert
Am 18.04.2017 um 18:06 schrieb Hari:
Hi Herbert, 'disableProgrammerFacilities' appears (from the comment) to disable snapshotting, which I do need to do within my client. However, I do disable debugger, halos, browser, workspace... selectively using a switch in my app, which I am looking to control using an username and password. Kind regards, Hari
-- View this message in context: http://forum.world.st/Ma-Client-Server-Squeak-launch-issues-tp4928722p494256... Sent from the Squeak - Dev mailing list archive at Nabble.com.
Hi Herbert,
Thank you for your suggestions. Yes I do want to hide my code, especially as I'm encrypting communication from client to server (which is a whole other ball of wax...), and browser, workspace, debugger use, are in any case turned off so readability in the browser is not required.
That said, I think I have found a solution without having to dig further into which processes write to the changes file from a filein or a snapshot method and try to encrypt and decrypt for file access:
After I file in a update from the server, I saveSession and then use:
FileDirectory default copyFileWithoutOverwriteConfirmationNamed:'samplefile.changes' toFileNamed:'[imagename].changes'
I think I will have to first check for the existence of samplefile.changes in the image directory, if it is there [if not, error and blow up the universe in a fit of fury] save session, and then overwrite with the sample.changes.
I've tried creating classes, saving session, replacing the changes file, and then when I restart my image, the new classes are still there. So fingers crossed.
Kind regards,
Hari
-- View this message in context: http://forum.world.st/Ma-Client-Server-Squeak-launch-issues-tp4928722p494273... Sent from the Squeak - Dev mailing list archive at Nabble.com.
squeak-dev@lists.squeakfoundation.org