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

World: r4wp

[!REBOL3] General discussion about REBOL 3

GrahamC
16-Jan-2013
[509x4]
As you can see, there's no error handling yet .. I thought there 
was a field in the scheme object to store errors but I've lost it.
Pavel used a read/lines to format the date in local date format. 
 I replaced that with write options
So, you can 

read time://time.nist.gov to get the date

or

write time://time.nist.gov [ GMT }

to get the date back in GMT.
We kept the http-error from Gab's prot-http.r until we figure out 
what to do about errors
Chris
16-Jan-2013
[513]
Read/Write appears to be awkward -- is there any planned replacement 
for read/custom?  I'd suggest that read/args (or read/params) would 
make more sense than write in the above example...
GrahamC
16-Jan-2013
[514]
Well, currently 'read doesn't have a custom refinement.  But I guess 
that can be added and then we can use that.
Chris
16-Jan-2013
[515]
I know, I'm just hoping there will be...
GrahamC
16-Jan-2013
[516]
But why would you want to diverge from R2's read/custom in favour 
of read/args?
Chris
16-Jan-2013
[517x2]
Could be quite elegant used alongside codecs.
Args (params, whatever) is more specific. read/custom is a bit woolly.
GrahamC
16-Jan-2013
[519x5]
where is 'read defined?
Just searching the sources now ...
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.