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

World: r3wp

[!REBOL3]

Dockimbel
19-Jan-2010
[26]
If you're not using innodb, you should switch it off by uncommenting 
skip-innodb in /etc/mysql/my.cnf (default place for the config file). 
This will save you ~70MB. For the remaining 49MB, I don't know, I 
guess that a good part of that is used by caches.
Maxim
20-Jan-2010
[27]
R3 is picking up speed.  


USERS are starting to take charge of various projects.  I just wanted 
to make everyone realize just how different & better the R3 ecosystem 
is today than it ever was for R2. 

congrats everyone  :-)
Pekr
20-Jan-2010
[28]
we need to get back to proper R3 releases though. You know, some 
few months ago, there was something like 80 tickets implemented per 
month. Now R3 development is a bit halted. It is important to finish 
some features, before jumping to different tasks. The most important 
right now is to enhance extensions and finish Host Kit (especially 
move View to command! interface), so that ppl can continue with their 
contributions. But that is not happening. I can see even some questions 
towards Extension usability to not being answered on R3 Chat. We 
should really refocus ....
Maxim
20-Jan-2010
[29x2]
having played with customizing the extension kit by merging some 
of the extension code into (on my own)... and building a generic 
call-back system for R3, I can see how it was a bit of a pain when 
Carl extracted View out of the core and put into an extension.  its 
not a trivial task and there are one or two things missing which 
where probably added to the last host kit and extension package to 
fill the gaps.


for one thing, Carl must have had to unify the source files and possibly 
re-organise a bit of the includes.  this is the kind of work that 
is tricky, painfull and extremely bug prone... with ZERO gratification. 
 it just craps out over and over, until you resolve all the dependencies, 
bugs, missing links and figure out how to re-organize code until 
the make tree "works".  


if it where just one OS/compiler it wouldn't be that bad for such 
a fluent C coder like Carl, but having to support ALL of them in 
a consistent way is very painfull and usually laborious.
AFAIK this is working at some level, but still not released at large 
by Carl.  possibly still some stuff to iron out.
Graham
20-Jan-2010
[31]
When is the next build coming?
Graham
21-Jan-2010
[32x4]
this is my code ...

		match-mark: func [msg generator /local r] [
			trace/function on
			?? msg
			?? generator
			r: find/part msg generator 5 
			?? r
			trace off
			r
		]
And this is the trace ...


<-- trace == unset!
    --> ?? msg . .
        --> case [ any [ ... .
            --> any [ word? :name ...
                --> word? msg
            <-- word? == true
        <-- any == true
            --> ajoin [name ": " mold name...
                --> get msg .
            <-- get == "A0003 OK [READ-WRITE] SELECT completed"
                --> mold "A0003 OK [READ-WRIT... . . .

            <-- mold == {"A0003 OK [READ-WRITE] SELECT completed"}

        <-- ajoin == {msg: "A0003 OK [READ-WRITE] SELECT completed"}
            --> print {msg: "A0003 OK [REA...
msg: "A0003 OK [READ-WRITE] SELECT completed"
        <-- print == unset!
    <-- case == true
<-- ?? == "A0003 OK [READ-WRITE] SELECT completed"
    --> ?? generator . .
        --> case [ any [ ... .
            --> any [ word? :name ...
                --> word? generator
            <-- word? == true
        <-- any == true
            --> ajoin [name ": " mold name...
                --> get generator .
            <-- get == "A0003"
                --> mold "A0003" . . .
            <-- mold == {"A0003"}
        <-- ajoin == {generator: "A0003"}
            --> print {generator: "A0003"}
generator: "A0003"
        <-- print == unset!
    <-- case == true
<-- ?? == "A0003"

    --> find "A0003 OK [READ-WRIT... "A0003" true 5 . . . . . . . . . 
    . .
<-- find == none
    --> ?? r . .
        --> case [ any [ ... .
            --> any [ word? :name ...
                --> word? r
            <-- word? == true
        <-- any == true
            --> ajoin [name ": " mold name...
                --> get r .
            <-- get == none
                --> mold none . . .
            <-- mold == "none"
        <-- ajoin == "r: none"
            --> print "r: none"
r: none
        <-- print == unset!
    <-- case == true
<-- ?? == none
    --> trace false . .
Now if I change 

find/part to find, it returns true ...
posted to curecode
KeithM
21-Jan-2010
[36]
I was trying to download Rebol3 on Mac OS X today and I was not able 
to. Is there an updated alpha for R3?
Henrik
21-Jan-2010
[37x2]
Downloads are available here:

http://www.rebol.com/r3/downloads.html

but I can see the links are dead
I'll give you a private link. Hang on...
KeithM
21-Jan-2010
[39x2]
Yes, that is what I was curious about.
ok, thanks
Henrik
21-Jan-2010
[41]
link posted
KeithM
21-Jan-2010
[42]
thanks
Janko
21-Jan-2010
[43x3]
SQLite is not that appropriate for server side apps where there can 
be multiple processes writing into it. It's awesome for client apps 
(which chrome is) but I had some very bad experiences lately using 
it on server even without the multiple writers problem because I 
was aware of that and I used it in specific way.
By that I mean it was untolerable slow on some VPS where I assume 
same disc was used for streaming media, update was taking seconds 
while I could on the same system open a 1M rebol data file change 
it and save it back in almost no time. I couldn't get it why this 
is happening, and this was at neglegibly small database. I moved 
whole app that uses sqlite to some vps where it's almost alone on 
whole server because of this. And at Site Assistant where I used 
sqlite only for "mailbox" for bots (to send them work) I had to switch 
to mysql for this (it was the same server that blocked this heavily)
---
Graham
21-Jan-2010
[46]
This is a bit off topic !
Janko
21-Jan-2010
[47x2]
On a totally different note .. I don't know if this is doable or 
not, and if it makes sense, but I vould like to propose in discussion 
that at least native functions have some flag for if function is 
pure / side effects free or not ?
Graham: I was replying to discussion above about the need to move 
R3 chat to DB like SQLite or MySQL versus REBOL data files
Graham
21-Jan-2010
[49]
Yeah ... Carl was offtopic there too.
Janko
21-Jan-2010
[50x3]
My reason is this, big aspect of rebol is it's code / data duality 
and runtime interpretation of code, meaning you can send it around 
and all. But if I want to accept sent functions/code I want in many 
cases that they work as pure functions giving me some value out of 
my values (calculate something). Not modify anything / mutate my 
runtime env. without me knowing.
For example let's say there is rebol interpreter that holds some 
big data in memory and listens on some port. You send it a function 
that if will run on data items to determine if you want that item 
or not and send you the filtered items. If you could know that the 
function used for filter is pure e.g. only returns true false on 
some given item, and can't touch anything outside would be very nice 
even if you trust the source of filter function, and critical in 
cases where you cant.
(and in most cases you can't really trust anything you get over network)
Graham
21-Jan-2010
[53x2]
Typically such systems don't send functions around because they can't 
be trusted
So, Beer, Rugby and LNS don't do that....
Janko
21-Jan-2010
[55x2]
yes, but sending a function / code over is probably the most effective 
way to execute on the server side and also the most consistent, not 
that you have to invent some subdialect that you then interpret. 
If you knew function is pure or locked/prevented to touch anything 
outside it you could trust it.


And using code as data directly not reinventing some limited "code" 
for stuff like this is the whole strongpoint of rebol and lisps. 
That's why they say "Any sufficiently complicated C or Fortran program 
contains an ad hoc, informally-specified, bug-ridden, slow implementation 
of half of Common Lisp."


for example you have a database of users, you want to get all who 
are between age 20 and 30 ... you can send it  function [ user ] 
[ all [ gerater? user/age  20 lesser? user/age 30 ] ]


If you can't do this how else could you solve it so elegantly? And 
you would have to use/learn as client (and code on the server side) 
some limited and "a little different" language to do it
basically even better for this specifically would be that you could 
run a function in some sort of locked sandbox provided by runtime.
Graham
21-Jan-2010
[57x3]
If you run your own systems you can be as insecure as you like.
But most people would send the request as a dialect and let the other 
side do the query.
so, if you can cryptographically sign your function ... and then 
send it ... well.
Janko
21-Jan-2010
[60x3]
if each internal system is secure on it's own owerall security is 
better. for example if you controll the client in this story too 
you think you all is well, but you could still crash the server by 
mistake, for example owerwriting some global variable of it, and 
input data that you get from users (in case of an webapp) can then 
include various techniques for code injections (like they do now 
with SQL injections)
cryptograpically sending it wouldn't help in two examples I gave
because in both the main point is that you can't trust yourself 100%
Graham
21-Jan-2010
[63]
if you can't trust .. don't do it.
Janko
21-Jan-2010
[64]
what if runtime provided sandboxing. I know I know much too little 
about rebol but I imagine with all the good stuff  it does something 
like this would not be theoretically impossible ?
Sunanda
21-Jan-2010
[65]
A sandbox is a long-time wish of mine:
   http://www.rebol.org/ml-display-thread.r?m=rmlNVBC

REBOL3's security policies start to make it possible:
   http://www.rebol.com/r3/docs/functions/secure.html
Graham
21-Jan-2010
[66]
you would have to protect all your globals!
Janko
21-Jan-2010
[67]
yay! now it's a wish of two :)
Graham
21-Jan-2010
[68]
Let's move this to another group ...
Janko
21-Jan-2010
[69]
ok which one?
Graham
21-Jan-2010
[70]
You choose ...
Janko
21-Jan-2010
[71]
I can hardly ever find what to post where here :=)
Graham
21-Jan-2010
[72]
Try core ...
Graham
22-Jan-2010
[73]
Anyway to clear the screen in the console short of starting a new 
session?
Pekr
22-Jan-2010
[74]
you might try with con: open console://, but dunno how to proceed. 
Nor insert nor write works on that port ...
Graham
22-Jan-2010
[75]
>> probe system/schemes/console
make object! [
    name: 'console
    title: "Console Access"
    spec: none
    info: none
    actor: make native! [[end!]]
    awake: none
]