World: r3wp
[Core] Discuss core issues
older newer | first last |
Gabriele 11-Aug-2009 [14448x3] | it would be very nice if proper auth methods were added to HTTP and all those APIs were changed to use it, and be RESTful, and so on, then maybe we could talk of a standard http scheme that behaves correctly "by default". |
how things are now, HTTP is (mis)used in varioius ways, and you have to handle the exceptional cases yourself. | |
don't you agree, that the way R3 handles the issue is the best way? R2 can probably be made to behave similarly. (I've actually been thinking of backporting R3's HTTP for a long time...) | |
Graham 11-Aug-2009 [14451x2] | I don't know how R3 handles http .. not looked at it. |
I guess I just don't like the idea of a protocol hiding data from me,... | |
Graham 15-Aug-2009 [14453] | what's the difference between 'join and 'rejoin ? |
Sunanda 15-Aug-2009 [14454] | The number of args: join "a" ["b" "c"] rejoin ["a" "b" "c"] |
Graham 15-Aug-2009 [14455] | >> text: "hello world" == "hello world" >> bin: make binary! 1 == #{} >> join text bin == "hello world" >> rejoin [ text bin ] == "hello world#{}" |
BrianH 15-Aug-2009 [14456] | JOIN takes 2 parameters, REJOIN just takes one, and is slightly slower because it has to retrieve the first parameter from what would be the second parameter of JOIN. |
Graham 15-Aug-2009 [14457] | A different outcome. |
Sunanda 15-Aug-2009 [14458] | Looks like a bug to me, Graham. |
Graham 15-Aug-2009 [14459x2] | Opinions? |
Looks like a bug to me too. | |
Sunanda 15-Aug-2009 [14461] | R2 work around? to-string rejoin [#{} "hello" #{}] == "hello" |
Graham 15-Aug-2009 [14462x3] | not for me .. thanks! |
I was constructing a payload for a http post, and need a combination of string and binary data. I used rejoin... and got an unexpected outcome. | |
So, I guess I'll just have to use repeated appends instead to build the payload. | |
BrianH 15-Aug-2009 [14465x2] | ajoin: funco [ "Reduces and joins a block of values into a new string." [throw] block [block!] ][ make string! reduce block ] Faster than JOIN or REJOIN. |
Sorry about the funco, I copied that from R2/Forward. | |
Graham 15-Aug-2009 [14467] | let me guess .. part of your rebol3 backport ?? |
BrianH 15-Aug-2009 [14468] | Of course. |
Graham 15-Aug-2009 [14469x2] | does it build a series without corrupting binary data ?? |
perhaps i need 'bjoin :) | |
BrianH 15-Aug-2009 [14471] | Yes. The mezzanine is faster than the native version, but the native doesn't have the intermediate block overhead. |
Graham 15-Aug-2009 [14472x2] | Where is it? |
'funco i.e. | |
BrianH 15-Aug-2009 [14474] | It's just another name for FUNC (where FUNC is redefined in R2/Forward). |
Graham 15-Aug-2009 [14475x2] | ask-brian: funco [ ask-brian ] |
oops... missing the second block! | |
BrianH 15-Aug-2009 [14477] | Just use FUNC :) |
Graham 15-Aug-2009 [14478x3] | Nope... seems to give the same problems as rejoin |
ajoin: func [[throw!] block [block!]][make string! reduce block] >> ajoin [ "hello" make binary! 1 ] == "hello#{}" | |
apologies .. Sunanda's workround works viz to-string rejoin [ #{} .... ] | |
Ashley 15-Aug-2009 [14481] | Wow, that make string! change to join/rejoin yields about a 300% speed increase! Definiately one to backport to R2. |
Graham 15-Aug-2009 [14482] | doesn't help with 'ajoin though ... need to coerce to binary first |
Sunanda 15-Aug-2009 [14483] | Graham -- glad the workaround works. But it is R2 only. R3 has other problems. |
Graham 15-Aug-2009 [14484] | not too fast .. it exhibits different behaviours |
Ashley 15-Aug-2009 [14485] | Just needs a bit of datatype coercing added. |
Graham 15-Aug-2009 [14486x4] | this has always got me rejoin [ <text> "hello" </text> ] == <texthello</text>> |
rejoin [ "" <text> "hello" </text> ] == "<text>hello</text>" | |
which is I guess one should use 'reform when constructing strings for web output. | |
this fix allows me to upload a binary document using the googleapi .. eg. docx | |
Ashley 15-Aug-2009 [14490] | First cut QAD on join/rejoin, still about twice as fast the originals: join: make function! [ "Concatenates values." value "Base value" rest "Value or block of values" ][ either series? value [ make type? value reduce [value rest] ][ make string! reduce [value rest] ] ] rejoin: make function! [ "Reduces and joins a block of values." block [block!] "Values to reduce and join" ][ either empty? block: reduce block [block] [ make either series? first block [type? first block] [string!] block ] ] |
Graham 15-Aug-2009 [14491] | try rejoin with using #{} as the first element! |
BrianH 15-Aug-2009 [14492] | Ashley, that JOIN doesn't work for block types. It should be: >> join [a b] [1 2] == [a b 1 2] Yours returns [[a b] [1 2]]] |
Graham 15-Aug-2009 [14493x4] | Anyone can tell me why my googledocs object won't clone? http://rebol.wik.is/Googledocs gdoc: make object! googledocs [] ** Script Error: Invalid argument: object ** Near: gdoc: make object! googledocs [] |
crap | |
still asleep ... | |
ignore | |
Graham 17-Aug-2009 [14497] | Has anyone done any work with OAUTH ie. open authentication? |
older newer | first last |