Hi, So here is a little anecdote from the real world. I was planning to update the OS on my Linux server, from Ubuntu 18.04 LTS to 20.04 LTS (Long Term Support). This small (Digital Ocean, 1GB RAM, 1 Core) cloud server runs 3 Pharo images with public facing web sites. The machine itself reports: $ uptime 12:37:50 up 530 days, 21:46, 1 user, load average: 0.02, 0.04, 0.01 which means it hasn't been powered down or didn't restart in 530 days. I was surprised to discover that 2 of the Pharo images on that machine did just as well: $ ./repl.sh Connecting to Telnet REPL at locahost:41011 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Neo Console Pharo-7.0+alpha.build.660.sha.2eb9bd2f41e7b0bd8f9f4190906910f83c178ab1 (32 Bit) pharo> get system.uptime 405 days 20 hours 29 minutes pharo> quit Bye! $ ./repl.sh Connecting to Telnet REPL at locahost:41001 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Neo Console Pharo4.0 of 18 March 2013 update 40620
get system.uptime 530 days 21 hours 44 minutes quit Bye!
So both Pharo 7 and Pharo 4 kept on doing their jobs for a very long time. I think this is a testament to the stability of Pharo and to what is possible. Regards, Sven -- Sven Van Caekenberghe Proudly supporting Pharo http://pharo.org http://association.pharo.org http://consortium.pharo.org
Clearly amazing ð Is it the setup you use ? https://ci.inria.fr/pharo-contribution/job/EnterprisePharoBook/lastSuccessfu... Cheers, Cedrick PS: btw Sven, we (with a group of students did a naive and simple url shortener that would fit nicely to default zinc demos ;-) Here is the script for accessing registered urls (sweet): server := (ZnServer startDefaultOn: 9999) onRequestRespond: [ :request | | key | key := request requestLine uri segments last. dataBase at: key ifPresent: [:val | ZnResponse redirect: val ] ifAbsent: [ZnResponse badRequest: request]. ].
Le 12 mai 2020 à 10:06, Sven Van Caekenberghe <sven@stfx.eu> a écrit :
Hi,
So here is a little anecdote from the real world. I was planning to update the OS on my Linux server, from Ubuntu 18.04 LTS to 20.04 LTS (Long Term Support). This small (Digital Ocean, 1GB RAM, 1 Core) cloud server runs 3 Pharo images with public facing web sites.
The machine itself reports:
$ uptime 12:37:50 up 530 days, 21:46, 1 user, load average: 0.02, 0.04, 0.01
which means it hasn't been powered down or didn't restart in 530 days.
I was surprised to discover that 2 of the Pharo images on that machine did just as well:
$ ./repl.sh Connecting to Telnet REPL at locahost:41011 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Neo Console Pharo-7.0+alpha.build.660.sha.2eb9bd2f41e7b0bd8f9f4190906910f83c178ab1 (32 Bit) pharo> get system.uptime 405 days 20 hours 29 minutes pharo> quit Bye!
$ ./repl.sh Connecting to Telnet REPL at locahost:41001 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Neo Console Pharo4.0 of 18 March 2013 update 40620
get system.uptime 530 days 21 hours 44 minutes quit Bye!
So both Pharo 7 and Pharo 4 kept on doing their jobs for a very long time. I think this is a testament to the stability of Pharo and to what is possible.
Regards,
Sven
-- Sven Van Caekenberghe Proudly supporting Pharo http://pharo.org http://association.pharo.org http://consortium.pharo.org
Hi Cédrick,
On 12 May 2020, at 11:27, Cédrick Béler <cdrick65@gmail.com> wrote:
Clearly amazing ð
Is it the setup you use ?
https://ci.inria.fr/pharo-contribution/job/EnterprisePharoBook/lastSuccessfu...
Yes, more or less. Apart from the infrastructure around it (like monitoring and automatic (re)starts), the fact is simple that the image started and kept working for 400+ days.
Cheers, Cedrick
PS: btw Sven, we (with a group of students did a naive and simple url shortener that would fit nicely to default zinc demos ;-)
Here is the script for accessing registered urls (sweet):
server := (ZnServer startDefaultOn: 9999) onRequestRespond: [ :request | | key |
key := request requestLine uri segments last. dataBase at: key ifPresent: [:val | ZnResponse redirect: val ] ifAbsent: [ZnResponse badRequest: request]. ].
Yes, that does look nice: it is very concise. I would like to see the whole code, any pointers ? Sven
Le 12 mai 2020 à 10:06, Sven Van Caekenberghe <sven@stfx.eu> a écrit :
Hi,
So here is a little anecdote from the real world. I was planning to update the OS on my Linux server, from Ubuntu 18.04 LTS to 20.04 LTS (Long Term Support). This small (Digital Ocean, 1GB RAM, 1 Core) cloud server runs 3 Pharo images with public facing web sites.
The machine itself reports:
$ uptime 12:37:50 up 530 days, 21:46, 1 user, load average: 0.02, 0.04, 0.01
which means it hasn't been powered down or didn't restart in 530 days.
I was surprised to discover that 2 of the Pharo images on that machine did just as well:
$ ./repl.sh Connecting to Telnet REPL at locahost:41011 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Neo Console Pharo-7.0+alpha.build.660.sha.2eb9bd2f41e7b0bd8f9f4190906910f83c178ab1 (32 Bit) pharo> get system.uptime 405 days 20 hours 29 minutes pharo> quit Bye!
$ ./repl.sh Connecting to Telnet REPL at locahost:41001 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Neo Console Pharo4.0 of 18 March 2013 update 40620
get system.uptime 530 days 21 hours 44 minutes quit Bye!
So both Pharo 7 and Pharo 4 kept on doing their jobs for a very long time. I think this is a testament to the stability of Pharo and to what is possible.
Regards,
Sven
-- Sven Van Caekenberghe Proudly supporting Pharo http://pharo.org http://association.pharo.org http://consortium.pharo.org
PS: btw Sven, we (with a group of students did a naive and simple url shortener that would fit nicely to default zinc demos ;-)
Here is the script for accessing registered urls (sweet):
server := (ZnServer startDefaultOn: 9999) onRequestRespond: [ :request | | key |
key := request requestLine uri segments last. dataBase at: key ifPresent: [:val | ZnResponse redirect: val ] ifAbsent: [ZnResponse badRequest: request]. ].
Yes, that does look nice: it is very concise.
Yes, the concise code was what I liked and this is because of your design. I was doing it live with students in something like 10 minutes⦠so thanks for making me feel like a magician to them ;-)
I would like to see the whole code, any pointers ?
We finish the project in two weeks time, so Iâll send the resulting code. We need to do the shortUrl registration page. Basically, for now, this code snippet only need : dataBase := (Ordered)Dictionary new. I want to keep it concise. One objective is keeping the dictionary (dataBase) size controlled as itâs intended to be a demo app. Iâm thinking of limiting this size (dataBase) to n entries (100, 1000 ?). There could be eventually be an option to grow the size (but by validation). Another objective (but they wonât do it if I donât do it myself) is to keep track of the history of clicked url for statistic purposes (probably one of next semester projet ^^). Itâs kind of a very nice and simple example to show students client/server concepts, hashing techniques, QRcode usage (short-url are a must-have for them), etc⦠and so concise in Pharo⦠probably a good candidate too for the dev-blog. Iâll keep you informed - maybe by PR as I finally start to get my head around git :) Cheers, Cédrick
Sven
Le 12 mai 2020 à 10:06, Sven Van Caekenberghe <sven@stfx.eu> a écrit :
Hi,
So here is a little anecdote from the real world. I was planning to update the OS on my Linux server, from Ubuntu 18.04 LTS to 20.04 LTS (Long Term Support). This small (Digital Ocean, 1GB RAM, 1 Core) cloud server runs 3 Pharo images with public facing web sites.
The machine itself reports:
$ uptime 12:37:50 up 530 days, 21:46, 1 user, load average: 0.02, 0.04, 0.01
which means it hasn't been powered down or didn't restart in 530 days.
I was surprised to discover that 2 of the Pharo images on that machine did just as well:
$ ./repl.sh Connecting to Telnet REPL at locahost:41011 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Neo Console Pharo-7.0+alpha.build.660.sha.2eb9bd2f41e7b0bd8f9f4190906910f83c178ab1 (32 Bit) pharo> get system.uptime 405 days 20 hours 29 minutes pharo> quit Bye!
$ ./repl.sh Connecting to Telnet REPL at locahost:41001 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Neo Console Pharo4.0 of 18 March 2013 update 40620
get system.uptime 530 days 21 hours 44 minutes quit Bye!
So both Pharo 7 and Pharo 4 kept on doing their jobs for a very long time. I think this is a testament to the stability of Pharo and to what is possible.
Regards,
Sven
-- Sven Van Caekenberghe Proudly supporting Pharo http://pharo.org http://association.pharo.org http://consortium.pharo.org
On 13 May 2020, at 12:04, Cédrick Béler <cdrick65@gmail.com> wrote:
PS: btw Sven, we (with a group of students did a naive and simple url shortener that would fit nicely to default zinc demos ;-)
Here is the script for accessing registered urls (sweet):
server := (ZnServer startDefaultOn: 9999) onRequestRespond: [ :request | | key |
key := request requestLine uri segments last. dataBase at: key ifPresent: [:val | ZnResponse redirect: val ] ifAbsent: [ZnResponse badRequest: request]. ].
Yes, that does look nice: it is very concise.
Yes, the concise code was what I liked and this is because of your design.
I was doing it live with students in something like 10 minutes⦠so thanks for making me feel like a magician to them ;-)
I would like to see the whole code, any pointers ?
We finish the project in two weeks time, so Iâll send the resulting code. We need to do the shortUrl registration page. Basically, for now, this code snippet only need : dataBase := (Ordered)Dictionary new.
I want to keep it concise. One objective is keeping the dictionary (dataBase) size controlled as itâs intended to be a demo app.
Iâm thinking of limiting this size (dataBase) to n entries (100, 1000 ?). There could be eventually be an option to grow the size (but by validation).
Another objective (but they wonât do it if I donât do it myself) is to keep track of the history of clicked url for statistic purposes (probably one of next semester projet ^^).
Itâs kind of a very nice and simple example to show students client/server concepts, hashing techniques, QRcode usage (short-url are a must-have for them), etc⦠and so concise in Pharo⦠probably a good candidate too for the dev-blog.
Iâll keep you informed - maybe by PR as I finally start to get my head around git :)
No need for that, at the moment, I would just like to see what you did. I would like to see if it would be a good demo candidate. In any case, the focus of the examples should be on HTTP, not the stuff around it.
Cheers, Cédrick
Sven
Le 12 mai 2020 à 10:06, Sven Van Caekenberghe <sven@stfx.eu> a écrit :
Hi,
So here is a little anecdote from the real world. I was planning to update the OS on my Linux server, from Ubuntu 18.04 LTS to 20.04 LTS (Long Term Support). This small (Digital Ocean, 1GB RAM, 1 Core) cloud server runs 3 Pharo images with public facing web sites.
The machine itself reports:
$ uptime 12:37:50 up 530 days, 21:46, 1 user, load average: 0.02, 0.04, 0.01
which means it hasn't been powered down or didn't restart in 530 days.
I was surprised to discover that 2 of the Pharo images on that machine did just as well:
$ ./repl.sh Connecting to Telnet REPL at locahost:41011 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Neo Console Pharo-7.0+alpha.build.660.sha.2eb9bd2f41e7b0bd8f9f4190906910f83c178ab1 (32 Bit) pharo> get system.uptime 405 days 20 hours 29 minutes pharo> quit Bye!
$ ./repl.sh Connecting to Telnet REPL at locahost:41001 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Neo Console Pharo4.0 of 18 March 2013 update 40620
get system.uptime 530 days 21 hours 44 minutes quit Bye!
So both Pharo 7 and Pharo 4 kept on doing their jobs for a very long time. I think this is a testament to the stability of Pharo and to what is possible.
Regards,
Sven
-- Sven Van Caekenberghe Proudly supporting Pharo http://pharo.org http://association.pharo.org http://consortium.pharo.org
I would just like to see what you did.
I would like to see if it would be a good demo candidate.
In any case, the focus of the examples should be on HTTP, not the stuff around it.
Yes sure. Basically, here is the full playground I did with them (so in 10 minutes), doing a manipulation each line (the script was done gradually from halt) : I doing it a server delegate lie the ZnImageExampleDelegate with a new dict each time the server is started. Iâll send it later. Cheers, Cédrick
Hi, I couldn't resist: https://github.com/svenvc/zinc/commit/264cbd3160f665f776232c02d013ce533df18f... This is based on your core idea, but adds an html/page/form to shorten URLs which can also be used programmatically. There are also some functional tests. Sven
On 13 May 2020, at 13:55, Cédrick Béler <cdrick65@gmail.com> wrote:
I would just like to see what you did.
I would like to see if it would be a good demo candidate.
In any case, the focus of the examples should be on HTTP, not the stuff around it.
Yes sure.
Basically, here is the full playground I did with them (so in 10 minutes), doing a manipulation each line (the script was done gradually from halt) :
<GraphiqueCollé-13.png>
I doing it a server delegate lie the ZnImageExampleDelegate with a new dict each time the server is started.
Iâll send it later.
Cheers, Cédrick
Just perfect ! Thanks Sven
Le 13 mai 2020 à 17:47, Sven Van Caekenberghe <sven@stfx.eu> a écrit :
Hi,
I couldn't resist: https://github.com/svenvc/zinc/commit/264cbd3160f665f776232c02d013ce533df18f...
This is based on your core idea, but adds an html/page/form to shorten URLs which can also be used programmatically. There are also some functional tests.
Sven
On 13 May 2020, at 13:55, Cédrick Béler <cdrick65@gmail.com> wrote:
I would just like to see what you did.
I would like to see if it would be a good demo candidate.
In any case, the focus of the examples should be on HTTP, not the stuff around it.
Yes sure.
Basically, here is the full playground I did with them (so in 10 minutes), doing a manipulation each line (the script was done gradually from halt) :
<GraphiqueCollé-13.png>
I doing it a server delegate lie the ZnImageExampleDelegate with a new dict each time the server is started.
Iâll send it later.
Cheers, Cédrick
Hello Sven This is the kind of thing I like to see. Gives me more confidence in recommending Pharo to management for production use. Just some things that still concern me though: Why are people surprised at discovering that Pharo is capable of such uptimes? Are people experiencing instability with Pharo in production settings? If so, what kind of instability are people experiencing? Thanks, Vince -----Original Message----- From: Pharo-users <pharo-users-bounces@lists.pharo.org> On Behalf Of Sven Van Caekenberghe Sent: Tuesday, 12 May 2020 6:06 PM To: Pharo users <pharo-users@lists.pharo.org> Subject: [Pharo-users] Uptime EXTERNAL: Do not click links or open attachments if you do not recognize the sender. Hi, So here is a little anecdote from the real world. I was planning to update the OS on my Linux server, from Ubuntu 18.04 LTS to 20.04 LTS (Long Term Support). This small (Digital Ocean, 1GB RAM, 1 Core) cloud server runs 3 Pharo images with public facing web sites. The machine itself reports: $ uptime 12:37:50 up 530 days, 21:46, 1 user, load average: 0.02, 0.04, 0.01 which means it hasn't been powered down or didn't restart in 530 days. I was surprised to discover that 2 of the Pharo images on that machine did just as well: $ ./repl.sh Connecting to Telnet REPL at locahost:41011 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Neo Console Pharo-7.0+alpha.build.660.sha.2eb9bd2f41e7b0bd8f9f4190906910f83c178ab1 (32 Bit) pharo> get system.uptime 405 days 20 hours 29 minutes pharo> quit Bye! $ ./repl.sh Connecting to Telnet REPL at locahost:41001 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Neo Console Pharo4.0 of 18 March 2013 update 40620
get system.uptime 530 days 21 hours 44 minutes quit Bye!
So both Pharo 7 and Pharo 4 kept on doing their jobs for a very long time. I think this is a testament to the stability of Pharo and to what is possible. Regards, Sven -- Sven Van Caekenberghe Proudly supporting Pharo https://urldefense.com/v3/__http://pharo.org__;!!I_DbfM1H!U29_nUf8k6rmGjsp2A... https://urldefense.com/v3/__http://association.pharo.org__;!!I_DbfM1H!U29_nU... https://urldefense.com/v3/__http://consortium.pharo.org__;!!I_DbfM1H!U29_nUf...
Hi vince Iâm often working in the alpha version and it is stable but from time to time I have some crashes. In headless mode and interaction you have processes that can lock the system or others and we got some GC memory corruption. This is why we will introduce TaskIt-Core in Pharo 90. S
On 14 May 2020, at 00:21, Vince Refiti <vince.refiti@trapezegroup.com.au> wrote:
Hello Sven
This is the kind of thing I like to see. Gives me more confidence in recommending Pharo to management for production use.
Just some things that still concern me though: Why are people surprised at discovering that Pharo is capable of such uptimes? Are people experiencing instability with Pharo in production settings? If so, what kind of instability are people experiencing?
Thanks, Vince
-----Original Message----- From: Pharo-users <pharo-users-bounces@lists.pharo.org <mailto:pharo-users-bounces@lists.pharo.org>> On Behalf Of Sven Van Caekenberghe Sent: Tuesday, 12 May 2020 6:06 PM To: Pharo users <pharo-users@lists.pharo.org <mailto:pharo-users@lists.pharo.org>> Subject: [Pharo-users] Uptime
EXTERNAL: Do not click links or open attachments if you do not recognize the sender.
Hi,
So here is a little anecdote from the real world. I was planning to update the OS on my Linux server, from Ubuntu 18.04 LTS to 20.04 LTS (Long Term Support). This small (Digital Ocean, 1GB RAM, 1 Core) cloud server runs 3 Pharo images with public facing web sites.
The machine itself reports:
$ uptime 12:37:50 up 530 days, 21:46, 1 user, load average: 0.02, 0.04, 0.01
which means it hasn't been powered down or didn't restart in 530 days.
I was surprised to discover that 2 of the Pharo images on that machine did just as well:
$ ./repl.sh Connecting to Telnet REPL at locahost:41011 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Neo Console Pharo-7.0+alpha.build.660.sha.2eb9bd2f41e7b0bd8f9f4190906910f83c178ab1 (32 Bit) pharo> get system.uptime 405 days 20 hours 29 minutes pharo> quit Bye!
$ ./repl.sh Connecting to Telnet REPL at locahost:41001 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Neo Console Pharo4.0 of 18 March 2013 update 40620
get system.uptime 530 days 21 hours 44 minutes quit Bye!
So both Pharo 7 and Pharo 4 kept on doing their jobs for a very long time. I think this is a testament to the stability of Pharo and to what is possible.
Regards,
Sven
-- Sven Van Caekenberghe Proudly supporting Pharo https://urldefense.com/v3/__http://pharo.org__;!!I_DbfM1H!U29_nUf8k6rmGjsp2A... <https://urldefense.com/v3/__http://pharo.org__;!!I_DbfM1H!U29_nUf8k6rmGjsp2A...> https://urldefense.com/v3/__http://association.pharo.org__;!!I_DbfM1H!U29_nU... <https://urldefense.com/v3/__http://association.pharo.org__;!!I_DbfM1H!U29_nU...> https://urldefense.com/v3/__http://consortium.pharo.org__;!!I_DbfM1H!U29_nUf... <https://urldefense.com/v3/__http://consortium.pharo.org__;!!I_DbfM1H!U29_nUf...>
Stéphane Ducasse http://stephane.ducasse.free.fr / http://www.pharo.org 03 59 35 87 52 Assistant: Julie Jonas FAX 03 59 57 78 50 TEL 03 59 35 86 16 S. Ducasse - Inria 40, avenue Halley, Parc Scientifique de la Haute Borne, Bât.A, Park Plaza Villeneuve d'Ascq 59650 France
participants (4)
-
Cédrick Béler -
Stéphane Ducasse -
Sven Van Caekenberghe -
Vince Refiti