r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[Core] Discuss core issues

Graham
19-May-2009
[13800x2]
page: read/custom [ scheme: 'http host: "twitter.com" target: "direct_messages/new.xml" 
user: "my-twitter-id" pass: "mypassword" ]  [ POST "text=This was 
also sent from a Rebol&user=synapse_emr" ]


This sends a private tweet to a user ... not clear from the API docs 
what the call is to just tweet ... anyone know?
ooops ... wrong group.
Maxim
19-May-2009
[13802]
this is easy to figure out using firebug  ;-)


redirect the html page to a server you have cheyenne running and 
save out the whole http request, you will have url and post data 
:-)
Graham
19-May-2009
[13803x2]
just reinstall wireshark
But there is a  twitter restful api ... just can't find it there. 
  Must be blind.
Janko
19-May-2009
[13805]
too bad accumulate is not in the core, I totally ditched python for 
any further work because guido v.r. removed the basic (quite poor) 
functional constructs it had
Steeve
19-May-2009
[13806]
If that so, most of existing mezzanines should be fired into external 
modules.
Because i use mezzanines only to test some ideas.

But if have to do the "real work", then i use only natives. Don't 
ask why, it's obvious.
Graham
19-May-2009
[13807]
Don''t you end up then writing your own mezzanines?
Janko
19-May-2009
[13808]
to me one of great beauties of rebol is that all stuff are expressions 
like "either" and by so composable ..  and that you don't need explicit 
return statements.. two of big features that I think aid more functional 
(not imperative) design of programs...
Steeve
19-May-2009
[13809x2]
but they they have to be strictly adapted for their purposes, so 
i remove code related to needless use cases.
speed is a priority especially with Rebol which can be really slow 
if you don't take care
Janko
19-May-2009
[13811x4]
functional:

reduce [ "hi " (either is-male? gender [ "boy" ] [ "girl" ]) , "how 
are you?" ]

vs imperativeish:
a: "hi "
either is-male? gender [ append a "boy" ] [ append a "girl" ]
append a " How are you?"
a
so although I got impression from Carl's blogposts that he thinks 
rebol should be practical vs. functional , I think a lot of it's 
power and elegance and practicality come from functional aspects 
of it (just expressing my opinion)
( ok, my memory was bad, Carl only said rebol is not Pure Functional 
PL , which is totally different thing and I don't want it to be pure 
functional :) )
http://www.rebol.com/article/0206.html
Steeve
19-May-2009
[13815x2]
i think the power of rebol comes from the big amount of small code 
schemes so that by combining only some of them you can do all you 
want.
It's the main difference with other functional languages.
The amount of natives schemes and data types.
Adding more and more natives schemes (like matrix operations on series) 
is the way to get Rebol more and more powerful
Maxim
19-May-2009
[13817x3]
the unification of series management is one of the major sources 
of code reduction in rebol.
the other is the fact that series are mutable, and many functions 
edit the input series directly.
even more so in R3  :-)
Graham
19-May-2009
[13820]
This works ... posting a message is actually called updating your 
status!


 page: read/custom [ scheme: 'http host: "twitter.com" target: "statuses/update.xml" 
 user: "my-twitter-id" pass: "mypassword" ]  [ POST "status=Playing 
 with REBOL and the Twitter API" ]
Steeve
19-May-2009
[13821x2]
interesting, can you post other messages than "status=" ?
(never used twitter)
Graham
19-May-2009
[13823]
http://apiwiki.twitter.com/Twitter-API-Documentation
Henrik
22-May-2009
[13824]
is there a quick way to tell if an integer overflows?

I'm missing an overflow? function:

overflow? 632479375863785946758934675892
== true
BrianH
22-May-2009
[13825]
int-overflow?: func [n [number!]] [error? try [to-integer n]]
Henrik
22-May-2009
[13826]
hmm.. yes, thanks.
Maxim
22-May-2009
[13827]
unfortunately this might not work... to-integer sometimes returns 
a decimal... unlesss its been fixed for 2.7.6
BrianH
22-May-2009
[13828]
It should work - always return integer! or error! - if the input 
is a number! (as specified in the type test of the argument. TO-INTEGER 
would  only have that problem with string input.
Maxim
22-May-2009
[13829]
aaah yes... missed the input type ... sorry.
Graham
26-May-2009
[13830x2]
any good reason apart from the fact that data is a block that this 
is not allowed?

forskip data: [ 1 2 3 4 ] 2 [ ]
but you have to do:

data: [ 1 2 3 4 ]
forskip data 2 [ ... ]
Maxim
26-May-2009
[13832x2]
cause the word is being used as the index.
probably cause in the time frame of evaluation the set word happens 
after the forskip hits it.
Graham
26-May-2009
[13834]
Is that a good reason?  :)
Maxim
26-May-2009
[13835]
the assignment I mean.
Izkata
27-May-2009
[13836]
USAGE:
    FORSKIP 'word skip-num body

Yep, the set-word gets assign to word, the [1 2 3 4] gets assigned 
to skip-num, and 2 gets assigned to body, because of the lit-word 
argument in forskip
Graham
27-May-2009
[13837x2]
Maybe this should be changed so that a default word is used instead 
...
if a lit-word is not supplied as an argument but a block
Izkata
27-May-2009
[13839]
Perhaps split the iteration word argument from the data argument, 
like 'foreach has?
Graham
27-May-2009
[13840]
seems a reasonable suggestion.
BrianH
27-May-2009
[13841x2]
FORALL and FORSKIP are faster than FOREACH in R3 because they don't 
have a local word that requires a BIND/copy of the code.
You don't notice this in R2 because they're mezzanine and all of 
that overhead is greater, but it is noticable in R3 where they are 
native.
Dockimbel
27-May-2009
[13843]
Wouldn't it be more efficient to just BIND instead of BIND/copy body 
blocks in loops by default, and additionnally provide a /copy refinement 
in the (very) rare cases where you don't want the body block to be 
modified? Is it a design decision or did I missed some obvious reason?
BrianH
27-May-2009
[13844]
You have to BIND/copy or *EACH would not be recursion-safe (or task-safe 
in R3).
Dockimbel
27-May-2009
[13845]
I thought about the upcoming task! support but forgot about the "recursion" 
case. I might have wrote only 3 or 4 functions in 10 years of coding 
in REBOL that fall in that case (that's why in R2, it could have 
been no-copy by default). But tasking in R3 should make it more frequent 
I guess.
BrianH
27-May-2009
[13846]
I guess I write more recursive code than you do :)
Dockimbel
27-May-2009
[13847]
That's very possible, I use recursion only when the gain in code 
size or clarity looks obvious. Also, not having tail-call optimization 
doesn't push you much toward recursive approach in the general case.
BrianH
27-May-2009
[13848]
I use it for building or processing recursive data structures - it's 
faster for that, tail-call-optimized or not. I only switch to iteration 
and hacks if the data blows the stack, which is rare.
Dockimbel
27-May-2009
[13849]
The recursive calls limit used to be quite low (150-200 calls), has 
that limit been extended in recent 2.7.x versions?