World: r4wp
[!REBOL3] General discussion about REBOL 3
older newer | first last |
Cyphre 18-Jan-2013 [663] | thanks, have that one in the candidates list as well |
BrianH 18-Jan-2013 [664] | The time protocol mentioned in Vanity seems to need a change in design. There should never be a need for READ to have an /args option - that is what the path and query stuff are for. Instead of this: read/args time://time.nist.gov [ GMT ] it should be this: read time://time.nist.gov/gmt |
Andreas 18-Jan-2013 [665] | `There should never be a need for READ to have an /args option - that is what the path and query stuff are for` That's obviously problematic for systems which already make use of URLs including path and query components. |
BrianH 18-Jan-2013 [666] | Are you talking about HTTP, the only scheme that has query and paths built into the URL spec standard? Because we have WRITE for that situation. For other schemes, we can define our own meaning of the query (and in some cases path) so we don't break the model. |
GrahamC 18-Jan-2013 [667x3] | read time://time.nist.gov/gmt implies to me that there is such a url when there isn't |
or that they have such a REST service when they don't | |
write http://www.rebol.com[ HEAD ] is not a write but a read | |
BrianH 18-Jan-2013 [670] | Actually, it's sending a message to that server to which it is replying, but let's not quibble. We have other functions to get the head if you prefer. |
GrahamC 18-Jan-2013 [671] | I think you mentioned above that write should be used for non idempotent actions and read for the idempotent ones. |
BrianH 18-Jan-2013 [672x2] | There are more port actions than just WRITE and READ. Don't limit yourself to just those two. Most of the metadata operations for HTTP-like schemes are handled by QUERY. |
Or they would be if the scheme were fully implemented, as the http scheme in R3 is not. | |
GrahamC 18-Jan-2013 [674] | Query doesn't take arguments except the port |
BrianH 18-Jan-2013 [675] | And the mode, and it can take a url! or block spec. But there are other url! and port! actions than just those 3. |
GrahamC 18-Jan-2013 [676x2] | So, what should query do in the prot-http? |
It's hard to know how things are supposed to be written when the only example we have is apparently incomplete | |
BrianH 18-Jan-2013 [678] | Agreed. |
GrahamC 18-Jan-2013 [679] | So, it's up to us to decide since no one else is going to tell us |
BrianH 18-Jan-2013 [680x2] | There's a lot we can tell about the intended design by looking at the actions and their options. The actions were pared down deliberately, lowering overhead and getting rid of unnecessary options. Any action that can operate on a port is pert of the interface of ports, and the same goes for URLs. Plus, we have Carl's blogs and docs on the subject. |
And we have people who discussed the design with Carl. | |
Andreas 18-Jan-2013 [682x3] | There are far more URL schemes which have defined uses for the path/query components. |
Again, I think that adapting QUERY would be a nice alternative to READ/custom and give us a neutrally sounding general action. | |
The adaptation would be: make QUERY always take a second parameter, i.e. change from `QUERY target` to `QUERY target mode`. Let the MODE parameter be a block (or even unconstrained in type) to be used by the scheme implementation as seen fit. | |
Gregg 18-Jan-2013 [685] | Great news on all the crypto/TLS/HTTPS stuff guys! |
BrianH 18-Jan-2013 [686] | Andreas, QUERY already takes a parameter, but it's optional. QUERY/mode retrieves a particular bit of information, and QUERY without /mode returns an object full of standard bits of information. |
GrahamC 18-Jan-2013 [687x2] | what exactly does mode do? ) >> query/mode %tiger.png none == make object! [ name: %/E/r3gui/tiger.png size: 6515 date: 26-Apr-2009/9:12:54+13:00 type: 'file ] >> query %tiger.png == make object! [ name: %/E/r3gui/tiger.png size: 6515 date: 26-Apr-2009/9:12:54+13:00 type: 'file ] |
>> query/mode %tiger.png 'size == make object! [ name: %/E/r3gui/tiger.png size: 6515 date: 26-Apr-2009/9:12:54+13:00 type: 'file ] | |
BrianH 18-Jan-2013 [689x2] | I think that it is supposed to act like GET-MODES in R2, but it might not be implemented yet. |
Something scheme or type specific. | |
Andreas 18-Jan-2013 [691] | Andreas, QUERY already takes a parameter, but it's optional. Yes, and I propose to change that. |
Chris 18-Jan-2013 [692x4] | I've always thought of QUERY as requesting metadata. READ is for content. If you, say, READ a directory (which I suppose I have no idea if it's still the way it works (tm)) to get all the files in that directory -- why would you use a different keyword to get a filtered list of, say files beginning with 'a'? |
Where READ/args wins for me is that instead of, for example, composing a custom query string for HTTP -- you don't have to worry about that conversion. It's encoded and appended for you as defined by the port. | |
Compare: read join http://google.com/search?q=[url-encode a-query %&another-parameter= "Foo"] vs read/args http://google.com/search[q a-query another-parameter "Foo"] | |
read/args %folder/ [files beginning with "A"] | |
Andreas 18-Jan-2013 [696] | read %folder/a* :) |
Chris 18-Jan-2013 [697] | :P |
GrahamC 18-Jan-2013 [698x2] | Is there going to be a disputes resolution process here? |
If Carl is not going to be here to arbitrate, are Saphiron's builds going to be the default? | |
BrianH 18-Jan-2013 [700x2] | Are they accepting pull requests? If not, then they won't be the default. |
If they accept pull requests, they might have a shot of being an aggregator of development, like Linux maintainer repositories. | |
Andreas 18-Jan-2013 [702x2] | Anyone happens to know who we have as admins of the R3 project CureCode? |
Or in a related question: what's the intended meaning of the "reviewed" status for R3 CC tickets? | |
Robert 19-Jan-2013 [704] | We are (going to) accept pull-requests for our R3. IMO we need to move forward in those times where Carl isn't active. |
PeterWood 19-Jan-2013 [705] | Will you try to "sync" your changes with the "official" source in the future or let the sources diverge? |
Robert 19-Jan-2013 [706] | That's up to Carl. We will do pull-requests for our changes. But we are not going to wait. |
Gabriele 19-Jan-2013 [707] | Brian: Carl stated to me that QUERY was meant to return port state, not perform an action. But, I've never seen a final document that explains how R3 ports are supposed to work. |
GrahamC 19-Jan-2013 [708] | Gab, any idea of what the error is that corrupts the scheme after a forbidden read? |
Gabriele 19-Jan-2013 [709] | I'd have to review the code, the main problem with errors is that, again, port behavior is really not defined explicitly for that, and Carl never answered. |
GrahamC 19-Jan-2013 [710] | http://www.curecode.org/rebol3/ticket.rsp?id=1918&cursor=17 |
Gabriele 19-Jan-2013 [711] | I have a PDF with the state diagram for HTTP, that may help you figure out the error problem. It's also possible that it was intentional in the sense that it is safer to initiate a new connection in case of error (though, some errors should be exceptions to this). |
GrahamC 19-Jan-2013 [712] | It corrupts the very next new connection |
older newer | first last |