>> >> 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 <s...@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 >>> >>> > >