Webserver in Self
mail at russell-allen.com
Sun May 18 08:55:21 UTC 2008
Thanks for your help.
I hacked up a small and extremely simple webserver based on the socketServer code. The
transporter code goes in applications/. I'm not sure if I can attach it to an email so I've put
it up on the web at: http://russell-allen.com/self/downloads/files/webserver.self
File in with: bootstrap read: 'webserver' From: 'applications'
Setup default with: webserver registerServlet: (webserver exampleServlets fileServlet copy)
Start with: webserver start
Go to: http://localhost:8080/
I'd appreciate it if anyone has a change to try to file it in and possibly comment on how
'selfish' it is in style.
Some notes and comments I made while writing it:
- although I worked out how to write out a module from the materials, I had more trouble
reading it in again. I eventually found a note on Jecel's site with the magic incantation
(bootstrap read: 'webserver' From: 'applications'); I couldn't find a suitable way to do it
- I was pleasantly suprised how nice Self morphic was for *writing* code (the word isn't
quite right - it felt more like construction than writing)
- On the other hand, the inspectors were hard to *read* code with. My continual question
was "What methods does a string understand anyway?" and "How do I open a file?"; it was
hard to answer this without opening millions of inspectors all over my nice nebraskan
- I kept on writing stuff like "method: a = (|| a print )" and getting an error because I
needed a space between the bars.
- syntax differences from Smalltalk I haven't yet internalised: the use of capital letters in
message names, block notation; I kept writing: "[:k | k print]", slots between the bars; I
kept writing "| var1 var2 | code"
- it was most frustrating that the inspectors for arrays/lists/dictionaries showed the
normal slots and not a more useful view of what was actually in the collection
PS: I've just noticed that the Transporter has declared my code to be (c) Sun and Stanford,
which it obviously isn't. Is there a way to change this?
More information about the Self-interest