-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
As an experiment, I'm trying to install an interesting looking Web server, Aida on Squeak 4.6.
Short summary: this works with Aida 6.4 but not with Aida 6.8.
Instructions from https://www.aidaweb.si/download
i := Installer monticello http: 'http://squeaksource.com'. i project: 'SPort'; install: 'Sport-2.031'. i project: 'Swazoo'; install: 'Swazoo-2.4final.2'.
up to this point ok, works fine, in a Squeak4.6 image (update #15117)
i project: 'Aida'; install: 'Aida-6.8final.2'.
hangs after a while with:
Initializing Aida-6.8final.2 MessageNotUnderstood: TimeStamp class>>localOffsetSeconds
Then I abandon the install.
Testing with 6.3final.2 :
i := Installer monticello http: 'http://squeaksource.com'. i project: 'Aida'; install: 'Aida6.3-final.2'.
works without errors.
Testing with 6.4final.2 :
i := Installer monticello http: 'http://squeaksource.com'. i project: 'Aida'; install: 'Aida6.4-final.2'.
also works without errors (using the same Swazoo and SPort as before).
In addition this seems to work fine, I can connect to:
and the Aida webserver is running fine.
Regarding the error with Aida 6.8:
When I check Squeak6.0 alpha it seems since 2016 there is a DateAndTime class method localOffsetSeconds which is inherited by TimeStamp.
I try to fileOut in Squeak6.0 that method. I select the method localOffsetSeconds and right click "fileOut".
This seems to create a file DateAndTime\ class-localOffsetSeconds.st
However the implementation seems to use
Time posixMicrosecondClockWithOffset second
which I think is absent in Squeak 4.6, so I fear that just fileIn of this method will not work in Squeak 4.6.
When I actually try it, fileIn works, but the error changes to : automaticTimeZone MessageNotUnderstood, so the simple fileIn method is not sufficient to backport the differences between Squeak6.0 and Squeak 4.6 back to 4.6.
Actually it seems best to contact the Aida mailing list and the Aida developers to try to ask for support Squeak 4.6 (which is offered by Aida 6.4 but not by Aida 6.8 it seems).
However perhaps there is a small chance that there is a way to "backport" any missing Squeak6.0 messages to Squeak 4.6 or otherwise fix the problem ?
David Stes
Hi David,
I ran Aida6.4.final.1 on Squeak 4.3 'production like' which means deployed on a public server with few visits. But it crashed around once a month. So if you just want something stable to learn about Aida I suggest that version. Sport 2.031 Swazoo-2.3final.2 were the other versions. After that I stopped following Aida but forgot the reasons why. I'm still subscribed to the Aida list but saw no message in years. Aidaweb.si even has an Entry from 2020, it was super quiet around 2014 when I made my last changes to my own code.
It could run 10 Selenium based test clients in parallel until Squeak used 100% CPU on a cheap virtual server. Which was much more than Seaside could handle at that time. (Or I cold handle with Seaside :-)
Cheers,
Herbert
Am 15.12.2020 um 19:33 schrieb stes@PANDORA.BE:
visits As an experiment, I'm trying to install an interesting looking Web server, Aida on Squeak 4.6.
Short summary: this works with Aida 6.4 but not with Aida 6.8.
Instructions from https://www.aidaweb.si/download
i := Installer monticello http: 'http://squeaksource.com'. i project: 'SPort'; install: 'Sport-2.031'. i project: 'Swazoo'; install: 'Swazoo-2.4final.2'.
up to this point ok, works fine, in a Squeak4.6 image (update #15117)
i project: 'Aida'; install: 'Aida-6.8final.2'.
hangs after a while with:
Initializing Aida-6.8final.2 MessageNotUnderstood: TimeStamp class>>localOffsetSeconds
Then I abandon the install.
Testing with 6.3final.2 :
i := Installer monticello http: 'http://squeaksource.com'. i project: 'Aida'; install: 'Aida6.3-final.2'.
works without errors.
Testing with 6.4final.2 :
i := Installer monticello http: 'http://squeaksource.com'. i project: 'Aida'; install: 'Aida6.4-final.2'.
also works without errors (using the same Swazoo and SPort as before).
In addition this seems to work fine, I can connect to:
and the Aida webserver is running fine.
Regarding the error with Aida 6.8:
When I check Squeak6.0 alpha it seems since 2016 there is a DateAndTime class method localOffsetSeconds which is inherited by TimeStamp.
I try to fileOut in Squeak6.0 that method. I select the method localOffsetSeconds and right click "fileOut".
This seems to create a file DateAndTime\ class-localOffsetSeconds.st
However the implementation seems to use
Time posixMicrosecondClockWithOffset second
which I think is absent in Squeak 4.6, so I fear that just fileIn of this method will not work in Squeak 4.6.
When I actually try it, fileIn works, but the error changes to : automaticTimeZone MessageNotUnderstood, so the simple fileIn method is not sufficient to backport the differences between Squeak6.0 and Squeak 4.6 back to 4.6.
Actually it seems best to contact the Aida mailing list and the Aida developers to try to ask for support Squeak 4.6 (which is offered by Aida 6.4 but not by Aida 6.8 it seems).
However perhaps there is a small chance that there is a way to "backport" any missing Squeak6.0 messages to Squeak 4.6 or otherwise fix the problem ?
David Stes
Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
Hi Herbert Koenig,
Thanks for your feedback.
I ran Aida6.4.final.1 on Squeak 4.3 'production like' which means deployed on a public server with few visits. But it crashed around once a month.
I have meanwhile also Aida 6.8 running, but on Cog VM 5.0 (not on Squeak 4.6).
It seems an interesting Web Framework, I like it.
The fact that it sometimes crashed does not seem so abnormal to me, after all it looks like quite a big piece of software.
Perhaps also it was the underlying Squeak VM that crashed ? Or was it just the webserver that you had to restart without restarting the Squeak VM ?
In any case an uptime of a month seems reasonably good to me.
Regards and thanks again for the feedback, David Stes
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
I've found a solution or workaround to make Aida 6.8 final2 run on Squeak 4.6.
It is working fine on Squeak 5.0 but was throwing a 'doesNotUnderstand', during initialization, in the Squeak 4.6 case.
I think that it is actually very easy to fix the problem.
The problem is in the category Swazoo for DateAndTime from the Swazoo 2.4.
If - after loading Swazoo 2.4 - I open the implementation of
fromMilliseconds: anInteger | ms uSec offset | offset := self localOffsetSeconds. ms := anInteger - (self epochOffset * 1000). uSec := ms * 1000. ^ self utcMicroseconds: uSec offset: offset
it can be seen that the above is using #'localOffsetSeconds' which I think is Squeak 5/Squeak 6 specific.
This is related I think to a "change in the Squeak Epoch" between 4 and 5.
Anyway this is not such a difficult thing to change, because when I replace the above by:
fromMilliseconds: anInteger ^ self fromSeconds:(anInteger/1000)
I'm not sure the above is correct.
But it helps because with the above implementation, I can load Aida 6.8final2, just fine in Squeak 4.6 !
This is thanks to the fact that I use with the above fromSeconds: the implementation of Squeak 4.6 which is totally different than in Squeak 5.
The nice thing is that the Aida 6.8 server starts fine in Squeak 4.6, and when I connect to http://localhost:8888 the Aida 6.8 pages load OK.
So it seems very easy to fix, although I'm not sure that my simple implementation of "fromMilliseconds:" as above, is correct.
But it helps to run Aida 6.8 on both Squeak 5 and Squeak 4.6.
David Stes
On Sat, Dec 19, 2020 at 09:26:38PM +0100, stes@PANDORA.BE wrote:
I've found a solution or workaround to make Aida 6.8 final2 run on Squeak 4.6.
It is working fine on Squeak 5.0 but was throwing a 'doesNotUnderstand', during initialization, in the Squeak 4.6 case.
I think that it is actually very easy to fix the problem.
The problem is in the category Swazoo for DateAndTime from the Swazoo 2.4.
If - after loading Swazoo 2.4 - I open the implementation of
fromMilliseconds: anInteger | ms uSec offset | offset := self localOffsetSeconds. ms := anInteger - (self epochOffset * 1000). uSec := ms * 1000. ^ self utcMicroseconds: uSec offset: offset
it can be seen that the above is using #'localOffsetSeconds' which I think is Squeak 5/Squeak 6 specific.
This is related I think to a "change in the Squeak Epoch" between 4 and 5.
Anyway this is not such a difficult thing to change, because when I replace the above by:
fromMilliseconds: anInteger ^ self fromSeconds:(anInteger/1000)
I'm not sure the above is correct.
Yes, your solution is correct, and I would prefer your implementation over the method quoted above for any version of Squeak.
On older versions of Squeak, the result might not have time zone offset that you expect, so check for that. But the magnitude will be correct in any case.
Dave
But it helps because with the above implementation, I can load Aida 6.8final2, just fine in Squeak 4.6 !
This is thanks to the fact that I use with the above fromSeconds: the implementation of Squeak 4.6 which is totally different than in Squeak 5.
The nice thing is that the Aida 6.8 server starts fine in Squeak 4.6, and when I connect to http://localhost:8888 the Aida 6.8 pages load OK.
So it seems very easy to fix, although I'm not sure that my simple implementation of "fromMilliseconds:" as above, is correct.
But it helps to run Aida 6.8 on both Squeak 5 and Squeak 4.6.
David Stes
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
David T. Lewis wrote:
Yes, your solution is correct, and I would prefer your implementation over the method quoted above for any version of Squeak.
On older versions of Squeak, the result might not have time zone offset that you expect, so check for that. But the magnitude will be correct in any case.
Perhaps there are reasons to use an implementation that is not defined, in terms of fromSeconds:
One of the reasons could be the time zone as you indicate.
Another may be the resolution (precision) of the time.
I guess that it makes more sense to define fromSeconds: in terms of fromMilliseconds: rather than the reverse which I'm doing here.
In any case, a Swazoo implementation could perhaps use different implementations in the case of Squeak 4.6 and in the case of Squeak 5/6.
It could use something like a check to see whether self respondsTo: localOffsetSeconds and if not use the implementation in terms of fromSeconds:
David Stes
On Sun, Dec 20, 2020 at 03:43:36PM +0100, stes@PANDORA.BE wrote:
David T. Lewis wrote:
Yes, your solution is correct, and I would prefer your implementation over the method quoted above for any version of Squeak.
On older versions of Squeak, the result might not have time zone offset that you expect, so check for that. But the magnitude will be correct in any case.
Perhaps there are reasons to use an implementation that is not defined, in terms of fromSeconds:
One of the reasons could be the time zone as you indicate.
Another may be the resolution (precision) of the time.
I guess that it makes more sense to define fromSeconds: in terms of fromMilliseconds: rather than the reverse which I'm doing here.
NO! You did it right the first time :-)
Dave
In any case, a Swazoo implementation could perhaps use different implementations in the case of Squeak 4.6 and in the case of Squeak 5/6.
It could use something like a check to see whether self respondsTo: localOffsetSeconds and if not use the implementation in terms of fromSeconds:
David Stes
beginners@lists.squeakfoundation.org