Pharo-users
By thread
pharo-users@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
June 2017
- 100 participants
- 622 messages
Re: [Pharo-users] Are we able to run pharo images in a read only environment?
by Tim Mackinnon
FYI: I managed to get it to work - I still get the message about trying to save the changes file and it not being possible - however my error was not specifying âno-default-preferences and also around correctly escaping the command line - the âevalâ command is a bit tricky as you need to escape any â characters as they are badly interpreted.
Thus I had to do the following:
const child = exec('./pharo Pharo.image --no-default-preferences eval "Lambda processJSON: \'' + JSON.stringify(event).replace(/"/g,'\\"') + '\'"', (error) => {
}
It looks like a simple lambda execution takes about 2700 to 2900ms
Tim
> On 28 Jun 2017, at 01:01, Tim Mackinnon <tim(a)testit.works> wrote:
>
> Hi Sven, I'm curious how you are running your image.
>
> I am following this tutorial - https://aws.amazon.com/blogs/compute/scripting-languages-for-aws-lambda-run… <https://aws.amazon.com/blogs/compute/scripting-languages-for-aws-lambda-run…>
>
> And am running pharo like the GO example by exec'ing via node js.
>
> My aim was to write an Alexa service in pharo vs nodejs like I have been doing.
>
> I was assuming I can call pharo via the eval option and stringify the Jaon Alexa Paramus and return a result via Stdout... well in theory, and the work to make pharo play better in wider ecosystem.
>
> It should work, and it seems you did make it work... but how?
>
> Like you, I am wondering when I run it on an ec2 instance (non lambda), why it takes so long to load? It feels like it can be faster?
>
> Tim
>
> Sent from my iPhone
>
>
>
> Sent from my iPhone
> On 27 Jun 2017, at 20:21, Sven Van Caekenberghe <sven(a)stfx.eu <mailto:sven@stfx.eu>> wrote:
>
>>
>>> On 27 Jun 2017, at 18:05, Tim Mackinnon <tim(a)testit.works <mailto:tim@testit.works>> wrote:
>>>
>>> Hi - I am trying to run a pharo image in lambda (as an experiment) - however I get an error from Pharo about not being able to write to the changes file?
>>>
>>> As I am just evaluating some code - Iâm not really coding, so donât need a changes file - is there a command line option to not require it?
>>
>> That is really strange, it should just work (it does for me using the zero config scripts).
>>
>> I would try to use absolute (resolved) paths as much as possible.
>>
>>> Also, am I running pharo the most efficient way - Iâm using eval on the command line and referencing a class with a class method - but is this the best way?
>>
>> Yes, that is ok.
>>
>>> Thanks,
>>>
>>> Tim
>>>
>>> "errorMessage": "Command failed: ./pharo Pharo.image eval \"Lambda processJSON: '{\"key3\":\"value3\",\"key2\":\"value2\",\"key1\":\"value1\"}'\"\n'Pharo cannot write to the changes file named /var/task/Pharo.changes.\n\nPlease check that you have write permission for this file.\n\nYou won''t be able to save this image correctly until you fix this.'\n\u001b[31mError: Can't find the requested origin\n\u001b[0mUnixResolver(PlatformResolver)>>cantFindOriginError\n[ self cantFindOriginError ] in UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed: in Block: [ self cantFindOriginError ]\nUnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:\nUnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:\nUnixResolver>>home\n[ self home / '.config' ] in UnixResolver>>preferences in Block: [ self home / '.config' ]\nUnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:\nUnixResolver>>preferences\nUnixResolver(FileSystemResolver)>>resolve:\nSystemResolver(FileSystemResolver)>>unknownOrigin:\nSystemResolver(FileSystemResolver)>>resolve:\nInteractiveResolver>>unknownOrigin:\n[ self unknownOrigin: origin ] in InteractiveResolver>>resolve: in Block: [ self unknownOrigin: origin ]\nIdentityDictionary(Dictionary)>>at:ifAbsent:\nInteractiveResolver>>resolve:\nFileLocator>>resolve\nFileLocator(AbstractFileReference)>>exists\nGlobalIdentifierStonPersistence(GlobalIdentifierPersistence)>>shouldCallPreviousPersistence\nGlobalIdentifierStonPersistence(GlobalIdentifierPersistence)>>ensure:\nGlobalIdentifier>>ensure\nGlobalIdentifier class>>initializeUniqueInstance\nGlobalIdentifier class>>uniqueInstance\nSystemSettingsPersistence class>>resumeSystemSettings\n[ :persistence | persistence resumeSystemSettings ] in PharoCommandLineHandler>>runPreferences in Block: [ :persistence | persistence resumeSystemSettings ...etc...\nBlockClosure>>cull:\nSystemDictionary(Dictionary)>>at:ifPresent:\nSmalltalkImage>>at:ifPresent:\nPharoCommandLineHandler>>runPreferences\nPharoCommandLineHandler>>activate\nPharoCommandLineHandler class(CommandLineHandler class)>>activateWith:\n\u001b[0m",
>>> "errorType": "Error",
>>> "stackTrace": [
>>> "'Pharo cannot write to the changes file named /var/task/Pharo.changes.",
>>> "",
>>> "Please check that you have write permission for this file.",
>>> "",
>>> "You won''t be able to save this image correctly until you fix this.'",
>>> "\u001b[31mError: Can't find the requested origin",
>>> "\u001b[0mUnixResolver(PlatformResolver)>>cantFindOriginError",
>>> "[ self cantFindOriginError ] in UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed: in Block: [ self cantFindOriginError ]",
>>> "UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:",
>>> "UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:",
>>> "UnixResolver>>home",
>>> "[ self home / '.config' ] in UnixResolver>>preferences in Block: [ self home / '.config' ]",
>>> "UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:",
>>> "UnixResolver>>preferences",
>>> "UnixResolver(FileSystemResolver)>>resolve:",
>>> "SystemResolver(FileSystemResolver)>>unknownOrigin:",
>>> "SystemResolver(FileSystemResolver)>>resolve:",
>>> "InteractiveResolver>>unknownOrigin:",
>>> "[ self unknownOrigin: origin ] in InteractiveResolver>>resolve: in Block: [ self unknownOrigin: origin ]",
>>> "IdentityDictionary(Dictionary)>>at:ifAbsent:",
>>> "InteractiveResolver>>resolve:",
>>> "FileLocator>>resolve",
>>> "FileLocator(AbstractFileReference)>>exists",
>>> "GlobalIdentifierStonPersistence(GlobalIdentifierPersistence)>>shouldCallPreviousPersistence",
>>> "GlobalIdentifierStonPersistence(GlobalIdentifierPersistence)>>ensure:",
>>> "GlobalIdentifier>>ensure",
>>> "GlobalIdentifier class>>initializeUniqueInstance",
>>> "GlobalIdentifier class>>uniqueInstance",
>>> "SystemSettingsPersistence class>>resumeSystemSettings",
>>> "[ :persistence | persistence resumeSystemSettings ] in PharoCommandLineHandler>>runPreferences in Block: [ :persistence | persistence resumeSystemSettings ...etc...",
>>> "BlockClosure>>cull:",
>>> "SystemDictionary(Dictionary)>>at:ifPresent:",
>>> "SmalltalkImage>>at:ifPresent:",
>>> "PharoCommandLineHandler>>runPreferences",
>>> "PharoCommandLineHandler>>activate",
>>> "PharoCommandLineHandler class(CommandLineHandler class)>>activateWith:",
>>> "\u001b[0m",
>>> "ChildProcess.exithandler (child_process.js:204:12)",
>>> "emitTwo (events.js:106:13)",
>>> "ChildProcess.emit (events.js:191:7)",
>>> "maybeClose (internal/child_process.js:886:16)",
>>> "Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)"
>>> ]
>>> }
>>>
>>>
>>
>>
June 28, 2017
Re: [Pharo-users] PharoJS
by Norbert Hartl
Sorry for being late with my reply. Comments at the bottom.
> Am 22.06.2017 um 20:01 schrieb askoh <askoh(a)askoh.com>:
>
> Norbert:
>
> I appreciate you explanation of Amber and PharoJS. I feel at a lost
> understanding the plethora of Smalltalk + Web frameworks. Is there a place
> where there is a pros and cons comparison of frameworks:
> Seaside, SqueakJS, PharoJS, Amber, Caffeine, VisualWorks Appex, Illiad,
> Aida, Teapot, etc?
>
> The sheer number of frameworks just makes it difficult for anyone to commit.
> It is terrifying. Can we discuss and consolidate the best features into one
> or two and kill the rest?
>
No, I don't think that would work. The web is a combination of resource linking and remote procedure calls. Web technology is really complex and is able to serve a huge amount of use cases. I don't think there can be one framework solving all the problems for all the use cases. So every framework focusses on a different aspect.
I would turn your comment around. If you want to be successful in the web environment you need to learn about the fibres it is made of. As soon as you dive into I think all those frameworks will separate before your eyes quickly.
Maybe it is good that you first come up with a problem you want to solve. With that specific information there are a lot of people here that can guide you. I'm being one of them. So just ask.
Hope that helps,
Norbert
June 28, 2017
Re: [Pharo-users] Are we able to run pharo images in a read only environment?
by Tim Mackinnon
Hi Sven, I'm curious how you are running your image.
I am following this tutorial - https://aws.amazon.com/blogs/compute/scripting-languages-for-aws-lambda-run…
And am running pharo like the GO example by exec'ing via node js.
My aim was to write an Alexa service in pharo vs nodejs like I have been doing.
I was assuming I can call pharo via the eval option and stringify the Jaon Alexa Paramus and return a result via Stdout... well in theory, and the work to make pharo play better in wider ecosystem.
It should work, and it seems you did make it work... but how?
Like you, I am wondering when I run it on an ec2 instance (non lambda), why it takes so long to load? It feels like it can be faster?
Tim
Sent from my iPhone
Sent from my iPhone
> On 27 Jun 2017, at 20:21, Sven Van Caekenberghe <sven(a)stfx.eu> wrote:
>
>
>> On 27 Jun 2017, at 18:05, Tim Mackinnon <tim(a)testit.works> wrote:
>>
>> Hi - I am trying to run a pharo image in lambda (as an experiment) - however I get an error from Pharo about not being able to write to the changes file?
>>
>> As I am just evaluating some code - Iâm not really coding, so donât need a changes file - is there a command line option to not require it?
>
> That is really strange, it should just work (it does for me using the zero config scripts).
>
> I would try to use absolute (resolved) paths as much as possible.
>
>> Also, am I running pharo the most efficient way - Iâm using eval on the command line and referencing a class with a class method - but is this the best way?
>
> Yes, that is ok.
>
>> Thanks,
>>
>> Tim
>>
>> "errorMessage": "Command failed: ./pharo Pharo.image eval \"Lambda processJSON: '{\"key3\":\"value3\",\"key2\":\"value2\",\"key1\":\"value1\"}'\"\n'Pharo cannot write to the changes file named /var/task/Pharo.changes.\n\nPlease check that you have write permission for this file.\n\nYou won''t be able to save this image correctly until you fix this.'\n\u001b[31mError: Can't find the requested origin\n\u001b[0mUnixResolver(PlatformResolver)>>cantFindOriginError\n[ self cantFindOriginError ] in UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed: in Block: [ self cantFindOriginError ]\nUnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:\nUnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:\nUnixResolver>>home\n[ self home / '.config' ] in UnixResolver>>preferences in Block: [ self home / '.config' ]\nUnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:\nUnixResolver>>preferences\nUnixResolver(FileSystemResolver)>>resolve:\nSystemResolver(FileSystemResolver)>>unknownOrigin:\nSystemResolver(FileSystemResolver)>>resolve:\nInteractiveResolver>>unknownOrigin:\n[ self unknownOrigin: origin ] in InteractiveResolver>>resolve: in Block: [ self unknownOrigin: origin ]\nIdentityDictionary(Dictionary)>>at:ifAbsent:\nInteractiveResolver>>resolve:\nFileLocator>>resolve\nFileLocator(AbstractFileReference)>>exists\nGlobalIdentifierStonPersistence(GlobalIdentifierPersistence)>>shouldCallPreviousPersistence\nGlobalIdentifierStonPersistence(GlobalIdentifierPersistence)>>ensure:\nGlobalIdentifier>>ensure\nGlobalIdentifier class>>initializeUniqueInstance\nGlobalIdentifier class>>uniqueInstance\nSystemSettingsPersistence class>>resumeSystemSettings\n[ :persistence | persistence resumeSystemSettings ] in PharoCommandLineHandler>>runPreferences in Block: [ :persistence | persistence resumeSystemSettings ...etc...\nBlockClosure>>cull:\nSystemDictionary(Dictionary)>>at:ifPresent:\nSmalltalkImage>>at:ifPresent:\nPharoCommandLineHandler>>runPreferences\nPharoCommandLineHandler>>activate\nPharoCommandLineHandler class(CommandLineHandler class)>>activateWith:\n\u001b[0m",
>> "errorType": "Error",
>> "stackTrace": [
>> "'Pharo cannot write to the changes file named /var/task/Pharo.changes.",
>> "",
>> "Please check that you have write permission for this file.",
>> "",
>> "You won''t be able to save this image correctly until you fix this.'",
>> "\u001b[31mError: Can't find the requested origin",
>> "\u001b[0mUnixResolver(PlatformResolver)>>cantFindOriginError",
>> "[ self cantFindOriginError ] in UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed: in Block: [ self cantFindOriginError ]",
>> "UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:",
>> "UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:",
>> "UnixResolver>>home",
>> "[ self home / '.config' ] in UnixResolver>>preferences in Block: [ self home / '.config' ]",
>> "UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:",
>> "UnixResolver>>preferences",
>> "UnixResolver(FileSystemResolver)>>resolve:",
>> "SystemResolver(FileSystemResolver)>>unknownOrigin:",
>> "SystemResolver(FileSystemResolver)>>resolve:",
>> "InteractiveResolver>>unknownOrigin:",
>> "[ self unknownOrigin: origin ] in InteractiveResolver>>resolve: in Block: [ self unknownOrigin: origin ]",
>> "IdentityDictionary(Dictionary)>>at:ifAbsent:",
>> "InteractiveResolver>>resolve:",
>> "FileLocator>>resolve",
>> "FileLocator(AbstractFileReference)>>exists",
>> "GlobalIdentifierStonPersistence(GlobalIdentifierPersistence)>>shouldCallPreviousPersistence",
>> "GlobalIdentifierStonPersistence(GlobalIdentifierPersistence)>>ensure:",
>> "GlobalIdentifier>>ensure",
>> "GlobalIdentifier class>>initializeUniqueInstance",
>> "GlobalIdentifier class>>uniqueInstance",
>> "SystemSettingsPersistence class>>resumeSystemSettings",
>> "[ :persistence | persistence resumeSystemSettings ] in PharoCommandLineHandler>>runPreferences in Block: [ :persistence | persistence resumeSystemSettings ...etc...",
>> "BlockClosure>>cull:",
>> "SystemDictionary(Dictionary)>>at:ifPresent:",
>> "SmalltalkImage>>at:ifPresent:",
>> "PharoCommandLineHandler>>runPreferences",
>> "PharoCommandLineHandler>>activate",
>> "PharoCommandLineHandler class(CommandLineHandler class)>>activateWith:",
>> "\u001b[0m",
>> "ChildProcess.exithandler (child_process.js:204:12)",
>> "emitTwo (events.js:106:13)",
>> "ChildProcess.emit (events.js:191:7)",
>> "maybeClose (internal/child_process.js:886:16)",
>> "Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)"
>> ]
>> }
>
>
June 28, 2017
Re: [Pharo-users] Pharo6 bootstrap how to
by Tim Mackinnon
This is great work - I think ultimately we can show the strengths of Smalltalk on images running in unusual places.
Tim
Sent from my iPhone
> On 27 Jun 2017, at 12:05, Pavel Krivanek <pavel.krivanek(a)gmail.com> wrote:
>
>
>
> 2017-06-26 18:19 GMT+02:00 Tim Mackinnon <tim(a)testit.works>:
>> This is very interesting⦠what would you need in that image to use the remote debugging demoâd at Pharo Days 2017 - as Iâm assuming for a server environment with a web-app, you could have a lean core image and then remotely attach to it to understand what was going on? With enough infrastructure to inspect objects etc, but locally you could look up things with GT tools?
>>
>> Or have I got the wrong end of the stick on this?
>
> With Denis we are trying to clean all dependencies so the remote IDE will be able to work on a small headless images.
>
> Cheers,
> -- Pavel
>
>>
>> Tim
>>
>>> On 26 Jun 2017, at 15:29, Pavel Krivanek <pavel.krivanek(a)gmail.com> wrote:
>>>
>>> You need to do it manually. You should probably start with own copy of BaselineOfIDE and then try to remove packages you don't need. You should do it slowly and check if you are still able to generate a working image.
>>>
>>> -- Pavel
>>>
>>> 2017-06-26 16:09 GMT+02:00 Hilaire <hilaire(a)drgeo.eu>:
>>>> So in pratical term, how do you create a baseline?
>>>>
>>>> Hilaire
>>>>
>>>> Le 26/06/2017 à 15:43, Pavel Krivanek a écrit :
>>>> > We have the BaselineOfBasicTools that is something in the middle. It
>>>> > already contains Workspace and Nautilus (but not GTPlayground).
>>>> > BaselineOfIDE corresponds to the standard Pharo distribution so you will
>>>> > not save space. You should probalby create own baseline and select what
>>>> > you need.
>>>> >
>>>> >
>>>> >
>>>> > For the later I really want to have an easier browser, something to
>>>> > build on GLamour, if I understand correctly. But it will be another
>>>> > topic, later.
>>>> >
>>>> >
>>>> > Glamour is part of BaselineOfIDE so you will need it or create own baseline.
>>>> >
>>>>
>>>> --
>>>> Dr. Geo
>>>> http://drgeo.eu
>>>>
>>>>
>>>
>>
>
June 27, 2017
Re: [Pharo-users] ZnConstants missing 511 in default Pharo 6.0 32 image?
by Tim Mackinnon
Ah - I see. Is this where the minimal images would help? As in CI would just take a base image and just load zn and hence run the new initialise anyway and so avoid this?
I'm a bit confused how how base images are built to even have this problem
In a world of CI?
Tim
Sent from my iPhone
> On 27 Jun 2017, at 17:55, Sven Van Caekenberghe <sven(a)stfx.eu> wrote:
>
>
>> On 27 Jun 2017, at 18:30, Tim Mackinnon <tim(a)testit.works> wrote:
>>
>> Yes ZnConstants initialize
>> Works,
>>
>> When I inspected the constants before this, it seemed to have everything except 511 (the last one).
>>
>> Is there a load error in Pharo - as if the initialise code is correct, and the images are built with a CI process - Iâm wondering how it gets into that state?
>
> When a class is loaded, class side #initialize methods are run (so classes are re-initialized) if their source code changed (compared to what is already in the image). When 511 was added, the #initialize did not change, hence it was not run. That is why I currently add a comment like "Forced source code change for automatic initialization: 20170510" where I change the date when needed.
>
>> Tim
>>
>>> On 27 Jun 2017, at 15:02, Sven Van Caekenberghe <sven(a)stfx.eu> wrote:
>>>
>>> Hi Tim,
>>>
>>>> On 27 Jun 2017, at 15:50, Tim Mackinnon <tim(a)testit.works> wrote:
>>>>
>>>> Hi - I have been slowly working my way through some of the pharo components and tutorials and when trying out ZnEasy with a password protected api, I got a talkback when I mistyped a password.
>>>> It looks like ZnConstants in a fresh Pharo 6.0 32 image excludes 511 from its constants. The code looks correct (and its defined in the initialize method - ) but when I tried a ZnEasy call which returned 511 I got a walkback showing it as an unrecognized code? (The walkback is looking for 511 in ZnConstants httpStatusCodes).
>>>>
>>>> Is there some problem in the build process, or is this some type of user error?
>>>>
>>>> Tim
>>>
>>> You should get
>>>
>>> ZnStatusLine code: 511. "a ZnStatusLine(511 Network Authentication Required)"
>>>
>>> If that is not the case, do
>>>
>>> ZnConstants initialize.
>>>
>>> What does ZnConstants class>>#initialize look like for you ?
>>>
>>> The latest version should read like
>>>
>>> initialize
>>> "Forced source code change for automatic initialization: 20170510"
>>>
>>> self initializeHTTPStatusCodes
>>>
>>> Sven
>>
>>
>
>
June 27, 2017
Re: [Pharo-users] PharoJS
by Craig Latta
Hi--
Aik-Siong writes:
> Craig Latta is doing something interesting[1] with SqueakJS which is
> an optimized Smalltalk VM in JavaScript and HTML5. It is supposedly
> able to run Smalltalk fast inside the browser and access the
> JavaScript world freely. I think this route will benefit greatly from
> WebAssembly.
I'm also making it run Pharo.
thanks,
-C
[1] https://caffeine.js.org
--
Craig Latta
Black Page Digital
Amsterdam :: San Francisco
craig(a)blackpagedigital.com
+31 6 2757 7177 (SMS ok)
+ 1 415 287 3547 (no SMS)
June 27, 2017
Re: [Pharo-users] PharoCloud drops VM hosting and focuses on Ephemeric Cloud
by mikefilonov
Hi Yuriy,
>So is it for static applications only?
Short answer is "no".
The ephemeric cloud only restricts saving files to local disk. This means,
only Image persistence is not working with Ephemeric cloud.
However, any other form of persistence works. You can connect Images in
Ephemeric cloud to databases (ex.:
http://docs.swarm.pharocloud.com/article/usecase_do_mongo ), file stores,
REST API services... Basically, in ephemeric cloud only code is static, but
data is not.
If you have a concrete use case, contact me at support(a)pharocloud.com (or in
pharo discordapp chat) and we can discuss options for you project.
--
View this message in context: http://forum.world.st/PharoCloud-drops-VM-hosting-and-focuses-on-Ephemeric-…
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
June 27, 2017
Re: [Pharo-users] Are we able to run pharo images in a read only environment?
by Esteban A. Maringolo
2017-06-27 16:15 GMT-03:00 Sven Van Caekenberghe <sven(a)stfx.eu>:
>> On 27 Jun 2017, at 21:00, Esteban A. Maringolo <emaringolo(a)gmail.com> wrote:
>> It would be good to know how fast does the image boot and start
>> execution in the context of a service billed at the sub second scale.
>
> Sadly I have the impression we lost some speed:
[SNIP]
> But it is really hard to find the cause.
>
> That being said, these lambda servers can only work well if they keep instances alive for longer when there is enough traffic.
AFAIU the purpose of AWS Lambda is to have "fire and forget" kind of
functions, mainly stateless consumers of single purpose functions,
with "infinite" transparent scalability.
Like for processing ads clicks/impressions, receiving data from lots
of mobile/IoT devices, etc.
Regards,
Esteban A. Maringolo
June 27, 2017
Re: [Pharo-users] Are we able to run pharo images in a read only environment?
by Sven Van Caekenberghe
> On 27 Jun 2017, at 18:05, Tim Mackinnon <tim(a)testit.works> wrote:
>
> Hi - I am trying to run a pharo image in lambda (as an experiment) - however I get an error from Pharo about not being able to write to the changes file?
>
> As I am just evaluating some code - Iâm not really coding, so donât need a changes file - is there a command line option to not require it?
That is really strange, it should just work (it does for me using the zero config scripts).
I would try to use absolute (resolved) paths as much as possible.
> Also, am I running pharo the most efficient way - Iâm using eval on the command line and referencing a class with a class method - but is this the best way?
Yes, that is ok.
> Thanks,
>
> Tim
>
> "errorMessage": "Command failed: ./pharo Pharo.image eval \"Lambda processJSON: '{\"key3\":\"value3\",\"key2\":\"value2\",\"key1\":\"value1\"}'\"\n'Pharo cannot write to the changes file named /var/task/Pharo.changes.\n\nPlease check that you have write permission for this file.\n\nYou won''t be able to save this image correctly until you fix this.'\n\u001b[31mError: Can't find the requested origin\n\u001b[0mUnixResolver(PlatformResolver)>>cantFindOriginError\n[ self cantFindOriginError ] in UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed: in Block: [ self cantFindOriginError ]\nUnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:\nUnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:\nUnixResolver>>home\n[ self home / '.config' ] in UnixResolver>>preferences in Block: [ self home / '.config' ]\nUnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:\nUnixResolver>>preferences\nUnixResolver(FileSystemResolver)>>resolve:\nSystemResolver(FileSystemResolver)>>unknownOrigin:\nSystemResolver(FileSystemResolver)>>resolve:\nInteractiveResolver>>unknownOrigin:\n[ self unknownOrigin: origin ] in InteractiveResolver>>resolve: in Block: [ self unknownOrigin: origin ]\nIdentityDictionary(Dictionary)>>at:ifAbsent:\nInteractiveResolver>>resolve:\nFileLocator>>resolve\nFileLocator(AbstractFileReference)>>exists\nGlobalIdentifierStonPersistence(GlobalIdentifierPersistence)>>shouldCallPreviousPersistence\nGlobalIdentifierStonPersistence(GlobalIdentifierPersistence)>>ensure:\nGlobalIdentifier>>ensure\nGlobalIdentifier class>>initializeUniqueInstance\nGlobalIdentifier class>>uniqueInstance\nSystemSettingsPersistence class>>resumeSystemSettings\n[ :persistence | persistence resumeSystemSettings ] in PharoCommandLineHandler>>runPreferences in Block: [ :persistence | persistence resumeSystemSettings ...etc...\nBlockClosure>>cull:\nSystemDictionary(Dictionary)>>at:ifPresent:\nSmalltalkImage>>at:ifPresent:\nPharoCommandLineHandler>>runPreferences\nPharoCommandLineHandler>>activate\nPharoCommandLineHandler class(CommandLineHandler class)>>activateWith:\n\u001b[0m",
> "errorType": "Error",
> "stackTrace": [
> "'Pharo cannot write to the changes file named /var/task/Pharo.changes.",
> "",
> "Please check that you have write permission for this file.",
> "",
> "You won''t be able to save this image correctly until you fix this.'",
> "\u001b[31mError: Can't find the requested origin",
> "\u001b[0mUnixResolver(PlatformResolver)>>cantFindOriginError",
> "[ self cantFindOriginError ] in UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed: in Block: [ self cantFindOriginError ]",
> "UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:",
> "UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:",
> "UnixResolver>>home",
> "[ self home / '.config' ] in UnixResolver>>preferences in Block: [ self home / '.config' ]",
> "UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:",
> "UnixResolver>>preferences",
> "UnixResolver(FileSystemResolver)>>resolve:",
> "SystemResolver(FileSystemResolver)>>unknownOrigin:",
> "SystemResolver(FileSystemResolver)>>resolve:",
> "InteractiveResolver>>unknownOrigin:",
> "[ self unknownOrigin: origin ] in InteractiveResolver>>resolve: in Block: [ self unknownOrigin: origin ]",
> "IdentityDictionary(Dictionary)>>at:ifAbsent:",
> "InteractiveResolver>>resolve:",
> "FileLocator>>resolve",
> "FileLocator(AbstractFileReference)>>exists",
> "GlobalIdentifierStonPersistence(GlobalIdentifierPersistence)>>shouldCallPreviousPersistence",
> "GlobalIdentifierStonPersistence(GlobalIdentifierPersistence)>>ensure:",
> "GlobalIdentifier>>ensure",
> "GlobalIdentifier class>>initializeUniqueInstance",
> "GlobalIdentifier class>>uniqueInstance",
> "SystemSettingsPersistence class>>resumeSystemSettings",
> "[ :persistence | persistence resumeSystemSettings ] in PharoCommandLineHandler>>runPreferences in Block: [ :persistence | persistence resumeSystemSettings ...etc...",
> "BlockClosure>>cull:",
> "SystemDictionary(Dictionary)>>at:ifPresent:",
> "SmalltalkImage>>at:ifPresent:",
> "PharoCommandLineHandler>>runPreferences",
> "PharoCommandLineHandler>>activate",
> "PharoCommandLineHandler class(CommandLineHandler class)>>activateWith:",
> "\u001b[0m",
> "ChildProcess.exithandler (child_process.js:204:12)",
> "emitTwo (events.js:106:13)",
> "ChildProcess.emit (events.js:191:7)",
> "maybeClose (internal/child_process.js:886:16)",
> "Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)"
> ]
> }
>
>
June 27, 2017
Re: [Pharo-users] Are we able to run pharo images in a read only environment?
by Sven Van Caekenberghe
> On 27 Jun 2017, at 21:00, Esteban A. Maringolo <emaringolo(a)gmail.com> wrote:
>
> Interesting experiment.
>
> It would be good to know how fast does the image boot and start
> execution in the context of a service billed at the sub second scale.
Sadly I have the impression we lost some speed:
~/pharo64$ ./pharo Pharo.image printVersion
[version] 6.0 #60499
~/pharo64$ time ./pharo Pharo.image eval '42 factorial'
1405006117752879898543142606244511569936384000000000
real 0m1.276s
user 0m0.985s
sys 0m0.171s
while before
~/pharo/build$ ../bin/pharo Pharo.image printVersion
[version] 4.0 #40620
$ time ../bin/pharo Pharo.image eval '42 factorial'
1405006117752879898543142606244511569936384000000000
real 0m0.526s
user 0m0.434s
sys 0m0.045s
But it is really hard to find the cause.
That being said, these lambda servers can only work well if they keep instances alive for longer when there is enough traffic.
> Esteban A. Maringolo
>
>
> 2017-06-27 13:05 GMT-03:00 Tim Mackinnon <tim(a)testit.works>:
>> Hi - I am trying to run a pharo image in lambda (as an experiment) - however
>> I get an error from Pharo about not being able to write to the changes file?
>>
>> As I am just evaluating some code - Iâm not really coding, so donât need a
>> changes file - is there a command line option to not require it?
>>
>> Also, am I running pharo the most efficient way - Iâm using eval on the
>> command line and referencing a class with a class method - but is this the
>> best way?
>>
>> Thanks,
>>
>> Tim
>>
>> "errorMessage": "Command failed: ./pharo Pharo.image eval \"Lambda
>> processJSON:
>> '{\"key3\":\"value3\",\"key2\":\"value2\",\"key1\":\"value1\"}'\"\n'Pharo
>> cannot write to the changes file named /var/task/Pharo.changes.\n\nPlease
>> check that you have write permission for this file.\n\nYou won''t be able to
>> save this image correctly until you fix this.'\n\u001b[31mError: Can't find
>> the requested
>> origin\n\u001b[0mUnixResolver(PlatformResolver)>>cantFindOriginError\n[ self
>> cantFindOriginError ] in
>> UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed: in Block: [
>> self cantFindOriginError
>> ]\nUnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:\nUnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:\nUnixResolver>>home\n[
>> self home / '.config' ] in UnixResolver>>preferences in Block: [ self home /
>> '.config'
>> ]\nUnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:\nUnixResolver>>preferences\nUnixResolver(FileSystemResolver)>>resolve:\nSystemResolver(FileSystemResolver)>>unknownOrigin:\nSystemResolver(FileSystemResolver)>>resolve:\nInteractiveResolver>>unknownOrigin:\n[
>> self unknownOrigin: origin ] in InteractiveResolver>>resolve: in Block: [
>> self unknownOrigin: origin
>> ]\nIdentityDictionary(Dictionary)>>at:ifAbsent:\nInteractiveResolver>>resolve:\nFileLocator>>resolve\nFileLocator(AbstractFileReference)>>exists\nGlobalIdentifierStonPersistence(GlobalIdentifierPersistence)>>shouldCallPreviousPersistence\nGlobalIdentifierStonPersistence(GlobalIdentifierPersistence)>>ensure:\nGlobalIdentifier>>ensure\nGlobalIdentifier
>> class>>initializeUniqueInstance\nGlobalIdentifier
>> class>>uniqueInstance\nSystemSettingsPersistence
>> class>>resumeSystemSettings\n[ :persistence | persistence
>> resumeSystemSettings ] in PharoCommandLineHandler>>runPreferences in Block:
>> [ :persistence | persistence resumeSystemSettings
>> ...etc...\nBlockClosure>>cull:\nSystemDictionary(Dictionary)>>at:ifPresent:\nSmalltalkImage>>at:ifPresent:\nPharoCommandLineHandler>>runPreferences\nPharoCommandLineHandler>>activate\nPharoCommandLineHandler
>> class(CommandLineHandler class)>>activateWith:\n\u001b[0m",
>> "errorType": "Error",
>> "stackTrace": [
>> "'Pharo cannot write to the changes file named
>> /var/task/Pharo.changes.",
>> "",
>> "Please check that you have write permission for this file.",
>> "",
>> "You won''t be able to save this image correctly until you fix this.'",
>> "\u001b[31mError: Can't find the requested origin",
>> "\u001b[0mUnixResolver(PlatformResolver)>>cantFindOriginError",
>> "[ self cantFindOriginError ] in
>> UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed: in Block: [
>> self cantFindOriginError ]",
>> "UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:",
>> "UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:",
>> "UnixResolver>>home",
>> "[ self home / '.config' ] in UnixResolver>>preferences in Block: [ self
>> home / '.config' ]",
>> "UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:",
>> "UnixResolver>>preferences",
>> "UnixResolver(FileSystemResolver)>>resolve:",
>> "SystemResolver(FileSystemResolver)>>unknownOrigin:",
>> "SystemResolver(FileSystemResolver)>>resolve:",
>> "InteractiveResolver>>unknownOrigin:",
>> "[ self unknownOrigin: origin ] in InteractiveResolver>>resolve: in
>> Block: [ self unknownOrigin: origin ]",
>> "IdentityDictionary(Dictionary)>>at:ifAbsent:",
>> "InteractiveResolver>>resolve:",
>> "FileLocator>>resolve",
>> "FileLocator(AbstractFileReference)>>exists",
>>
>> "GlobalIdentifierStonPersistence(GlobalIdentifierPersistence)>>shouldCallPreviousPersistence",
>> "GlobalIdentifierStonPersistence(GlobalIdentifierPersistence)>>ensure:",
>> "GlobalIdentifier>>ensure",
>> "GlobalIdentifier class>>initializeUniqueInstance",
>> "GlobalIdentifier class>>uniqueInstance",
>> "SystemSettingsPersistence class>>resumeSystemSettings",
>> "[ :persistence | persistence resumeSystemSettings ] in
>> PharoCommandLineHandler>>runPreferences in Block: [ :persistence |
>> persistence resumeSystemSettings ...etc...",
>> "BlockClosure>>cull:",
>> "SystemDictionary(Dictionary)>>at:ifPresent:",
>> "SmalltalkImage>>at:ifPresent:",
>> "PharoCommandLineHandler>>runPreferences",
>> "PharoCommandLineHandler>>activate",
>> "PharoCommandLineHandler class(CommandLineHandler
>> class)>>activateWith:",
>> "\u001b[0m",
>> "ChildProcess.exithandler (child_process.js:204:12)",
>> "emitTwo (events.js:106:13)",
>> "ChildProcess.emit (events.js:191:7)",
>> "maybeClose (internal/child_process.js:886:16)",
>> "Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)"
>> ]
>> }
>>
>>
>
June 27, 2017