• Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r4wp

[!REBOL3] General discussion about REBOL 3

GrahamC
16-Jan-2013
[521x3]
https://github.com/rebol/r3/blob/master/src/boot/actions.r
So, is it just a case of adding the /args or whatever refinement 
there?
Should get some concensus on this as it will affect all the schemes, 
and may need a little rewriting of the http scheme which uses write 
to pass options
Chris
16-Jan-2013
[524x2]
I certainly see a read/args as being quite distinct in purpose from 
write.  I use it with my sandbox scheme (http://reb4.me/r/wrt) to 
filter directory contents.


 read/custom wrt://system/ [thru %.r] ; shows only rebol scripts in 
 this folder
	write wrt://system/ [thru %.r] ; means something else entirely
On the http scheme, it could be the difference between adding a query 
string to a GET request (read/custom), and adding post data on a 
POST/PUT request (write).
GrahamC
16-Jan-2013
[526x2]
with read you're expecting some content back, with write, you're 
not
Should we even use write in the http scheme?
Chris
16-Jan-2013
[528x2]
I'm appreciative of a return value from write. For example, on a 
hypothetical Twitter scheme, write twitter:// "My Tweet" would return 
the new tweet id.
Similarly most http write operations return a value of some kind.
GrahamC
16-Jan-2013
[530]
so, the http scheme should stick to read for sync ops
Chris
16-Jan-2013
[531]
I see read/get as synonymous, write/post or put, delete/delete.
GrahamC
16-Jan-2013
[532]
and HEAD ?
Chris
16-Jan-2013
[533]
info?
GrahamC
16-Jan-2013
[534]
the thing is that GET sends information and gets something back. 
 Same as POST.  What's the difference?
Chris
16-Jan-2013
[535x2]
Intent.
Content.
GrahamC
16-Jan-2013
[537]
But are we expecting the casual user to understand this?
Chris
16-Jan-2013
[538x2]
I believe it's more consistent.
A casual user of http, for sure : )
GrahamC
16-Jan-2013
[540x2]
So, if you're reading a HTTP form, you can either use GET or POST 
 ....
So, what is the user supposed to do ... use READ or WRITE ?
Chris
16-Jan-2013
[542]
GET/READ, POST/WRITE.
GrahamC
16-Jan-2013
[543x2]
Sounds like duplication
the http scheme author has to then support both methods of doing 
the same thing
Chris
16-Jan-2013
[545]
Not at all. Particularly if you consider the HTML form -- GET sends 
parameters in the URL, POST sends parameters in the body. And consider 
the usage of each: GET is usually some type of search/filter facility, 
POST is sending data to be stored.
GrahamC
16-Jan-2013
[546x2]
Well, I usually use POST to collect a token to allow me to proceed 
on the site
People don't like sending passwords in the URL
Chris
16-Jan-2013
[548]
For a developer, the intent is far clearer.

	read/custom http://google.com[q "Gordon Strachan"]

 write http://my-site.com[title "A Blog Post" content "Today I..."]
GrahamC
16-Jan-2013
[549x2]
It would be simpler if we just used 

GET and POST instead of read/write
Looks like it's time to setup one's own r3 build environment to test 
these things out
AdrianS
16-Jan-2013
[551x3]
Graham, would you prefer have functions for all HTTP methods (get, 
post, put, delete, head, options, trace, connect) ?
btw, is boot/host-init.r not meant to be used? Seems to be pretty 
much identical to mezz/prot-http.r minus the header. Is the first 
produced from the latter? If so, why is it checked in?
The last question is addressed at anyone who'd know...
GrahamC
16-Jan-2013
[554x2]
Adrian, the actors are used to provide a series abstraction on ports. 
 But as developers I think it might be clearer to have specific methods. 
 Otherwise you're reading the options block to see exactly what is 
being done.
though I guess we can always put wrappers around the read/write
BrianH
16-Jan-2013
[556x2]
Chris, WRITE dest block is the replacement for READ/custom.
Graham, HTTP GET is supposed to be repeatable without side effects, 
and thus safe to cache. HTTP POST is supposed to generate side effects, 
and thus not be safe to cache.
Chris
16-Jan-2013
[558]
I welcome the change to Write, but lament the change to Read. Even 
if they appear the same, I see them as having semantically different 
objectives.
BrianH
16-Jan-2013
[559x2]
You have to see it in terms of the whole model. READ and WRITE don't 
just operate on HTTP and files, they can operate on a wide variety 
of port types.
An HTTP POST is not a read, for instance, it's more like a write 
because it is supposed to have side effects.
Chris
16-Jan-2013
[561x3]
I agree with that.
I'm not sure how removing read/custom (or renamed read/args) has 
any bearing on other types...
Where for HTTP (or my sandbox port example above), it is actual functionality 
that is lost.
GrahamC
16-Jan-2013
[564]
SOAP requests are often GET
BrianH
16-Jan-2013
[565x2]
SOAP's behavior is considered to be bad, as far as HTTP use is concerned.
There was a proposal to enhance READ with something like an /options 
or /types option, I can't remember which, but it's not in CureCode. 
It was Carl's idea, but it might be in a blog, chat or another AltME 
world. I only remember it because I was waiting for that feature 
to enhance the clipboard scheme's handling of other datatypes.
GrahamC
16-Jan-2013
[567]
It severely restricts what you can pass to the scheme actors without 
any suitable refinements
Chris
16-Jan-2013
[568]
Don't see it on the blog.
BrianH
16-Jan-2013
[569]
WRITE is as unrestricted as READ/custom was. One of the ways that 
R3's port model was sped up was to restrict the number of options 
passed to the actions.
Chris
16-Jan-2013
[570]
/options is better than nowt, but I'd maintain a /params (/args) 
refinement would be beneficial to at least a few different schemes.