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

AltME groups: search

Help · search scripts · search articles · search mailing list

results summary

worldhits
r4wp1023
r3wp10555
total:11578

results window for this page: [start: 8101 end: 8200]

world-name: r3wp

Group: Core ... Discuss core issues [web-public]
amacleod:
15-May-2009
It allowed me to step through the face one find after another. Exactly 
what I wanted to do.
Maxim:
17-May-2009
gabriele, the /input  works !!!  damn why didn't I think of that.. 
I lost several hours trying to find other command-line ssh tools 
which would work... none really do... the putty tools really are 
the best ones out there.
Steeve:
19-May-2009
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:
26-May-2009
but you have to do:

data: [ 1 2 3 4 ]
forskip data 2 [ ... ]
Steeve:
27-May-2009
yep i use parse too, to do so. It doesn't need rerursives functions
Steeve:
27-May-2009
There is another one advantage of using your own stack, you can break 
the process where you want and continue it later.
Used to do incremental parsing (even with recursives rules).
Maxim:
30-May-2009
peterwood can I make a wish?


I really need a function which can detect if a file is binary or 
text... do you think its possible to have such capabilities in your 
module?
amacleod:
7-Jun-2009
I saw some third party tools to do it but they are nearly  half meg 
in size and I thought one line of rebol might do it..
amacleod:
7-Jun-2009
Rebol does not update changed time zone...Anyone know how to do this...I 
do not want to resart the application after the change just to get 
the new time zone..
Gregg:
11-Jun-2009
Modifying a series you're iterating over is always risky. Not only 
do you have to make sure you get it right, but there is always a 
possibility that iterators might change their behavior.
Janko:
13-Jun-2009
I sometimes have some stupid ideas of changing code and blocks into 
something else but I don't have a totally clear view yet if that 
is ok to do and what would be the right way to do that.
Ladislav:
13-Jun-2009
yes, of course, the function has to be able to do the job for all 
data in the block
Ladislav:
13-Jun-2009
BTW, (shameless plug) I am using INCLUDE instead of DO from the console 
when doing scripts, since I have an extensive INCLUDE-PATH, so I 
don't have to write the directory of the script, just its name
Ladislav:
13-Jun-2009
(that is why we use REBOL ;-) - to  be able to do everything on our 
own
Maxim:
13-Jun-2009
I do think that Carl is starting to open up to other people's ideas. 
 most of the bad decisions in R1 & R2 where not of Carl's design... 
so that usually makes one weary.
Pekr:
15-Jun-2009
How do I bind foreach word value to external block? I want to do 
this:

rec: [name last-name adress streeet]

foreach rec data [print [name last-name address street]]

I need to somehow "bind it" :-)
Pekr:
15-Jun-2009
I need to evaluate our phone provider CSV data for one year. And 
they mix cell phone and normal phone on the invoice, so I need to 
go down and download details. And as it is pread across per month 
files, I want to do simple counter in REBOL. With read/lines ... 
and subsequent foreach line data [ ... parse line "," .....] REBOL 
is really cool to do such data manipulations ...
PeterWood:
16-Jun-2009
Which is probably to be expected as the values referenced by the 
fields in the blocks have not been de-referenced. Looks as though 
you'll have to do it yourself:

>> stats
== 167686051

>> a: make object! [                       
[    b: make block!  1000000                 

[    c: make block!  1000000                 

[    d: make block!  1000000                 

[    e: make block!  1000000                 

[    f: make block!  1000000                 

[    ]
>> stats

== 267690882
>> a/b: none

== none
>> a/c: none

== none
>> a/d: none

== none
>> a/e: none

== none

>> a/f: none

== none

>> recycle

>> stats
== 167687087
Henrik:
16-Jun-2009
this is very interesting. I think there should be an easier way to 
do this.
BrianH:
16-Jun-2009
Peter, here's some R3 fun. To do the initial block allocation in 
R3:
    a: make object! 5
    foreach w [b c d e f] [extend a w make block! 1000000]
or maybe this way:
    a: object [b: c: d: e: f:]
    foreach w a [set w make block! 1000000]
To clear your way:
    foreach w a [set w none]
Of course Steeve's method works too, and better :)
Maxim:
16-Jun-2009
henrik: the GC doesn't deallocate on demand... you can have several 
hundred megs of RAM allocated... and sundendly the RAM goes down. 
 and some things do not cause the rebol executables to shrink.


images, in my experience cause memory leaks, where they never get 
de-allocated from RAM under some circumstances.


in theory if you remove all references to a context, its content 
is supposed to deallocate, but when passing anything through view, 
all bets are off.

I've had 400MB pictures stay stuck in RAM, with absolutely no GC 
happening, not even going through view... just loading the image, 
without assigning it... its stuck  :-(
Maxim:
16-Jun-2009
oldes, about the load ... its not totally obvious why sometimes the 
images stay stuck in ram... but in this case it was huge png images. 
 and I did every recycle trick I new of... I tried solving this for 
2 hours... but nothing worked... not even allocating other stuff, 
and freeing it, to make sure the GC really did do a cleanup (in case 
is was count based).
Janko:
1-Jul-2009
I will post the code shortly so you can try it, but I am about to 
do big changes to it.. if actors will remain rebol objects then I 
will make whole lib more OO, refine the methods etc.. I have another 
option where actors would become just functions (this would make 
them more lightweight (which is important at actor systems) and it 
would enable some cool things, but I am not 100% if it will all work.
Janko:
1-Jul-2009
I have to admit I don't get what borwser (you mean like IE FF?) has 
to do with xmlrpc in this case ... and I.. aha this is a GUI app 
you you don't mean that xmlrpc-exec returns imediately (without waiting 
for result -- thats why I ask how you get the resut then) .. but 
that GUI doesn't block while waiting for it
Graham:
1-Jul-2009
It's now quite remote controlling a browser on another PC because 
all I can do is tell it to open a new page.
Janko:
3-Jul-2009
Apple grand central seems very interesting to me too .. I saw it 
when someone posted link here .. I was thinking that I would try 
to do taht model in rebol too .. I am interested in concurrency and 
this
Janko:
3-Jul-2009
I was thinking yes that cheyenne has to do something like this , 
but very efficiently since it has multiple worker processes to generate 
responses
BrianH:
3-Jul-2009
Erlang has been getting a lot of attention lately because it has 
a concurrency model that doesn't suck, which is amazing relative 
to most other systems. However, it's syntax is not great - we can 
do better :)
Janko:
3-Jul-2009
and if you want to do for example efficient message passing concur. 
it's also cruicial to have this sort of data.. because message is 
always a copy .. if you are using message passing for distr. compuring 
- only between computers then you have to copy anyway so it's no 
penalty .. but if you use message passing for concurrency /paralel 
execution on one computer then copying data for messages each time 
will have a high penalty , but it wouldn't with ropes for example
Janko:
3-Jul-2009
Graham, your comment about diagram inspired me to do some drawing 
.. http://www.itmmetelko.com/blog/img/actor-net-scheme_t.gifI added 
it to blogpos
Graham:
20-Jul-2009
and wanting to do it async while write/binary/append in the async 
handler
Ashley:
20-Jul-2009
Here's the finished code (which obtains REBOL compatable font names 
under Mac):

	fonts: copy []
	caps: make bitset! [#"A" - #"Z"]

 foreach file compose [(read %/System/Library/Fonts/) (read %/Library/Fonts/)] 
 [
		if %.dfont = suffix? file [
			s: form first parse file "."

   parse next s [any [mark: caps (insert mark #" ") 2 skip | skip] end]
			insert tail fonts s
		]
	]
	remove-each font-name fonts: sort unique fonts [

  (size-text make face [text: "A" font: make face/font [name: font-name 
  size: 10]]) =

  size-text make face [text: "A" font: make face/font [name: font-name 
  size: 12]]
	]


(the windows func to do this is http://www.reboltech.com/library/scripts/get-fonts-windows.r
)
Graham:
21-Jul-2009
I guess I could always make it a View app instead, and wait on  a 
port ... and use a timer to trigger the other stuff I need to do.
Pekr:
21-Jul-2009
under Windows, if you open file in one process, another one can't 
delete it. Easy enough. Prevents the case, where process does not 
remove the lock, but crashes. Then you would be in locked situation. 
But if app crashes, you can remove the log. Under linux, dunno how 
to do it. One chance is e.g. the need for process to update timestamp, 
and if timestamp is not updated, then app most probably crashed, 
so you can start another instance ...
Robert:
22-Jul-2009
I need to issue the combination ALT+RETURN into a string. How can 
I do this? Is there a control character for ALT like for CTRL?
ChristianE:
22-Jul-2009
Robert, you're mentioning Excel, so you're probably trying to do 
ALT+RETURN hard line-breaks with Excel thru comlib?

Maybe you can use the actual character code that Excel uses whenever 
one presses Alt+Enter. The web says Excel just inserts a line feed 
#"^/", have you tried that?
Graham:
27-Jul-2009
can't even do this

in object 'path/to/rebol
Graham:
4-Aug-2009
I guess I need to copy the function block of 'now ... but can you 
do that with natives ?
Gabriele:
4-Aug-2009
do you need all the refinements to work? otherwise, just make a fixed-now 
function or something like that.
BrianH:
4-Aug-2009
That's tricky to do without R3 or R2/Forward - the number of comparisons 
is exponential to the number or refinements.
Graham:
4-Aug-2009
the info? function appears to send a http HEAD to a URL, but the 
http protocol doesn't appear to allow a user to send a HEAD.
So, how does info? do it?
Gabriele:
5-Aug-2009
I don't remember if it's possible to do open/custom ... [method HEAD] 
or something like that.
Graham:
5-Aug-2009
I couldn't see a way to do that with the standard http protocol
Gabriele:
9-Aug-2009
No, the HTTP scheme is working correctly. AWS' behavior is non-standard, 
so it requires some level of custom programming. R3's scheme allows 
you to handle cases like this at a lower level for example, but by 
default it can't do better than that.
Geomol:
20-Aug-2009
It does? That's not clear from this example:


>> f: func ['w b] [use reduce [w] reduce [to set-word! w 1 'do 'b]]
>> f i [print i]
** Script Error: i has no value
Geomol:
20-Aug-2009
Changing 'b to b and it works:


>> f: func ['w b] [use reduce [w] reduce [to set-word! w 1 'do b]]
>> f i [print i]
1

(Still a bit confused.)
Geomol:
20-Aug-2009
It seems to work, if I put DO before function:


map: func [:function list /local result][result: clear [] foreach 
value list [append result do function value]]
Geomol:
21-Aug-2009
Do you want your function to find "ring" in this string: "this is 
a test string"?
Geomol:
21-Aug-2009
Chris wrote: "G: re. confused - try stepping through the function 
in the order it is interpreted.  Should be clear by the time 'use 
evaluates the two blocks..."


What I find a bit confusing is, when I have to BIND and when I don't. 
It's the context binding rules in REBOL, that is not 100% clear to 
me. Let me give a simple example:

>> b: [print i]
== [print i]
>> f: has [i] [i: 1 do b]
>> f
** Script Error: i has no value


This doesn't work, because the b block is defined outside the f function, 
outside f's function context. Therefore I have to bind b to f's context, 
like this:

>> f: has [i] [i: 1 bind b 'i do b]
>> f
1


That is clear, and I would expect USE to work by the same rules, 
but it doesn't quite, it seems to me:

>> f: does [use [i] [i: 1 do b]]
>> f
1


By some magic, this works without the need to BIND. I'm a bit confused 
by that.
Geomol:
21-Aug-2009
Ok, from a freshly started REBOL, this doesn't work:

>> b: [print i]
== [print i]
>> f: does [use [i] [i: 1 do b]]
>> f
** Script Error: i has no value

But this does work:

>> b: [print i]
== [print i]
>> f: does [use [i] reduce [to set-word! 'i 1 'do b]]
>> f
1


Is it because, when b is reduced, I kinda get a new fresh copy of 
the block? Like if I wrote the block, [print i], myself instead of 
using a reference to b?
Geomol:
22-Aug-2009
Yeah, and you would probably like it to be mold :a in the function 
to not do the same mistake, I did. In your first example, you have 
evaluation of a two times, first as (action?) leading to false, and 
then false is evaluated when doing mold a.
Graham:
25-Aug-2009
Given some Json data like this::

{
page
:"1","total":4,"records":"22",
rows

:[{"id":null,"cell":["Quantum of Solace","Marc Forster","2008","Daniel 
Craig","200"]},

{"id":null,"cell":["Casino Royale","Martin Campbell","2006","Daniel 
Craig","150"]},

{"id":null,"cell":["Die Another Day","Lee Tamahori","2002","Pierce 
Brosnan","142"]},

{"id":null,"cell":["The World is Not Enough","Michael Apted","1999","Pierce 
Brosnan","135"]},

{"id":null,"cell":["Tomorrow Never Dies","Roger Spottiswoode","1997","Pierce 
Brosnan","110"]},

{"id":null,"cell":["GoldenEye","Martin Campbell","1995","Pierce Brosnan","58"]},

{"id":null,"cell":["Licence to Kill","John Glen","1989","Timothy 
Dalton","36"]}]
}


using Rebol-to-json, what sort of Rebol data object do I need to 
create to produce that output?
Steeve:
28-Aug-2009
what do you mean Doc ? It has been always like that.

with /part you can specify a length or a terminal pointer to the 
serie.
What's wrong with that ?
james_nak:
28-Aug-2009
Yes, that's the way I do it. exactly. My problem is that I often 
add some field and have to go back and add it to all the functions.
james_nak:
28-Aug-2009
Looking at "bind" it appears it should work. It even describes an 
example which is what I want to do:


Binds meaning to words in a block. That is, it gives words a context 
in which they can be interpreted. This allows blocks to be exchanged 
between different contexts, which permits their words to be understood. 
For instance a function may want to treat words in a global database 
as being local to that function. 
Graham:
1-Sep-2009
Just wondering what it takes to write a "printer driver".  If I pretend 
to be a network printer listening on port 9100 ... can I just capture 
all the data coming to me or do I have to respond to interrogation 
as well?
Graham:
1-Sep-2009
Yes, that's how I do it now .. I just write to port 9100 to print 
PS on a  network printer.
Graham:
8-Sep-2009
I am using notepad++ at present to do the binary chop
Graham:
8-Sep-2009
I don't know what other people do to manage code of this size ....
Ashley:
10-Sep-2009
Mostly around driver letter and slash direction handling. I suppose 
the question then is, why doesn't to file! do what to-rebol-file 
does ... I don't see the point in using to-file to create an "invalid" 
file ... a bit like having both a to-decimal and to-rebol-decimal 
for example.
Pekr:
17-Sep-2009
yes. The same went for my news-scroller. I just tried to outline 
it in REBOL, thinking someone should do it in some PITL environment. 
Then I saw my brother using it in PC Shop on his LCD TV. I asked 
him - hey, wait till someone makes final version, and he replied 
- it works, no? And then I thought to myself - can I regard 2 pages 
of code being actually an application? :-)
Gabriele:
20-Sep-2009
I'd just use encloak with some random text. If you think it's easy 
enough to get a system specific key, you might do that, but I don't 
know if users will be happy to find out that their passwords don't 
work anymore when they upgrade their PC or move to another computer.
Maxim:
20-Sep-2009
its for a client app... so its not a big issue... its only so the 
software remembers the login for subsequent calls to the server... 
just like all the browsers & OS "do you want   xxxxxx   to remember 
this password"
Henrik:
4-Oct-2009
Ratio is giving me good opportunities to sharpen my skills. While 
writing a post, I bumped into this:

http://www.rebol.org/view-script.r?script=substr.r

What do you think? :-)
Steeve:
17-Oct-2009
to-block, do like LOAD, except it doesn't bound the words in the 
global context
Steeve:
17-Oct-2009
>> do probe to-block "1 + 1"
[1 + 1]
** Script Error: + word has no context
** Near: 1 + 1
Steeve:
17-Oct-2009
So, do a double first

>> value? first first to-block "[any {a}]"
== false
Maxim:
17-Oct-2009
so what I'll do is follow parse's functioning.  if a word maps to 
a function or a native, ignore it... I know my rules don't bind functions, 
cause they'd fail anyways.
Graham:
23-Oct-2009
actually all i wanted to do was to round the time off to remove all 
the seconds
Geomol:
23-Oct-2009
I also find this a bit strange:

>> do first [(1 + 2)]
== 3
>> do to paren! "1 + 2"
** Script Error: + word has no context
** Near: 1 + 2
Ladislav:
27-Oct-2009
not that I want to do nit-picking, but it should be noted, that the 
algorithms presented above are all O(n * n), while an O(n * log-e 
n) algorithm can be written, although such an algorithm is likely 
to be a bit more complicated
Henrik:
2-Nov-2009
Normal zero padding of decimals:

>> to-string .48
== "0.48"

Is it possible do to something like this:

>> magic-function .48
== ".48"


This would help in cases where you need to build a query string to 
search for plain text.
Henrik:
2-Nov-2009
hmm... thanks. it seems that the problem is a little different than 
that, however.


I'm just loading a string: "this-column contains 001" which is loaded 
incorrectly to [this-column contains 1], so I have to do this differently 
in the loading phase.
Gabriele:
4-Nov-2009
to make that a stable sort it needs to return -1, 0 or 1, not true 
or false. sign? on the difference would do the trick.
Pekr:
8-Nov-2009
reboltutorial claims, that copying files larger than 1GB fails with 
R2? Anyone having similar experience? http://reboltutorial.com/blog/do-you-need-to-copy-big-files/
btiffin:
12-Nov-2009
Ubuntu 9.04; rebcore (2.7.6) can     devmem: open/read/binary %/dev/mem
rebview hangs.


Do I need to care?   I don't need View for this little informational 
gathering app, but ...


We are planning for an embedded system BIOS tweak so we can label 
an Asset Tag in the SMBIOS;  REBOL won the race getting the information 
decoded for everyone to see; beat Python development by a few minutes 
(in a highly uncompetitive sharing information back and forth development 
"race")
Henrik:
14-Nov-2009
oops, I did it again:


The problem is that OS kernels do it differently, depending on their 
capabilities, so the current threading model used to create tasks 
may have to go.
Geomol:
16-Nov-2009
When you write

d: 'a/:c


d become a path! datatype, and it's not connected to your block, 
a, in any way. If you wanna expand the path, you can do something 
like:

>> join d 'h
== a/:c/h

Is that what you wanna happen?
Maxim:
16-Nov-2009
hehe I was writting up the EXACT same reply than geomol pointing 
out block and how to use do join x y ... had to for an exam at the 
dentist... I come back and geomol beat me to it  ;-)
Maxim:
16-Nov-2009
files append to themselves, blocks do lookup, strings return chars.


to be a series, in has to support insert, copy, first  which is why 
tuple isn't a serie.
BrianH:
16-Nov-2009
Geomol: "What defines a series in REBOL?"


A series has contents, sequence and persistent position. The characters 
that make up a file (contents) are in a specific order (sequence) 
and you can do an offset reference to a later offset in the filename 
(position). If you do FIRST %a it will return #"a" every time (persistent 
position). Being a series doesn't mean that it is sortable, though 
many are. Being sortable means also having the contents be comparable, 
and the series be modifiable.


We were careful to make sure that things that aren't really series-like 
were removed from the series! typeset in R3. R2 is less consistent 
in this regard, so you have some types attempting to act series-like, 
poorly - pots being the worst example.


Some of the functions that act on series also act (differently) on 
non-series, but not all.
BrianH:
17-Nov-2009
Well, paths are like blocks, not like filenames. You can't make them 
act like filenames without breaking them *in every other way*. You 
can build path just fine with JOIN and APPEND, you can fully evaluate 
them with DO, and you can partially evaluate them with get-paths 
without ever needing to use GET IN. Functionally, there is no problem 
with R3's current behavior except bugs 396, 861, 1236, 1339, and 
maybe 746 and 803.
james_nak:
18-Nov-2009
Anyone know a simple way to transform a block of sub-blocks into 
a single block while retaining the original type? I have [ [1] [2] 
[3]] and I'd like [ 1 2 3]. I can do with with form and parse but 
it  then I get ["1" "2" "3"].
Chris:
20-Nov-2009
do-protected: use [alert][
	alert: get in system/words 'alert
	func [txt][do bind to-block txt 'alert]
]

do-protected {alert "Foo"}
do-protected {print "Foo"}
Chris:
20-Nov-2009
isolate: func [words [block!]][
	use words compose/only [
		set (copy words) forall words [change/only words get words/1]
		first (copy words)
	]
]


do-protected: func [txt allowed][do bind to-block txt isolate allowed]
Janko:
27-Nov-2009
I have one question .. I don't want somebody to surprise me tomorrow 
on talk about rebol... if you use the "with" pattern for example 
for pop protocol

with-pop-do: func [ mbox addr code ] [ 
    set :mbox open addr
    do code
    close get :mbox
]
Janko:
1-Dec-2009
I am not joking about "pushed out eyes" ... I saw 2 that were programmers 
that were towards the end really intenselly looking at code I was 
showing and how I'll explain it.  


the whole thing about read http:// read %file ... open pop:// and 
process it as serries qute impressed one guy 


When I ended a couple of other programmers aproached me and asked 
me how this can be installed and if it's free etc .. and one pythonista 
said that email sending really impressed him, but otherwise he doesn't 
know yet .. there were also questions like "why this and not python" 
and "community size" and I had some explaining to do about code is 
data / data  is code big deal
Gregg:
2-Dec-2009
Talks often dont' go as planned Janko. I'm sure you did fine. 


For a less technical audience, I try to focus on how little code 
it takes to do useful things; and how readable that code can be. 
Having some simple GUI examples is important, because normal people 
don't want console apps. For programmers, I emphasize that REBOL 
isn't really a programming language; it's a messaging language. As 
Carl has said "It was designed for the semantic exchange of information 
between people and machines." So it's never REBOL compared to Python, 
or Ruby, but compared to those languages plus XML or JSON.
Geomol:
2-Dec-2009
I often find myself thinking about, how to categorize REBOL among 
other programming languages. I think, it's how the language wants 
us to make sentences and not just give commands, one on each line. 
In REBOL, we write:

insert back tail series my-value


and it feels natural. In other languages, you would do something 
like:

int sz = length (series);
Series *ptr = &series[sz - 1];
insert (ptr, my_value);

You could maybe do:

insert ( &series[length (series) - 1], my-value);


but it's just far from being as elegant as in REBOL. So most languages 
are like simple commands all the time, one after each other. With 
REBOL we make sentences. It's like a huge step up from many traditional 
programming languages.
Group: !RebGUI ... A lightweight alternative to VID [web-public]
Awi:
14-Jan-2011
REBOL []

do %rebgui.r
seat-layout: copy []

for slot 1 16 1[
	insert tail seat-layout compose/deep [panel 50 data []]
	for row 1 15 1 [
		foreach col [A B - D E] [

   insert tail last seat-layout compose/deep [button 7x5 blue (rejoin 
   [row col]) [display "test" [text "see me?"]]]
		]
		insert tail last seat-layout [return]
	]
]

display "test scroll panel" compose/deep [

 table options ["id" left .2 "name" right .8] data [1x2 "A to B" 3x4 
 "C to D" 5x5 "E to F"] return 
	calendar 
	scroll-panel 152x100 #HW data [after 4 (seat-layout)]
]
do-events
GrahamC:
15-Jan-2011
usually there are methods to do this ..  certainly there is for table/remove-row 
n
Awi:
17-Jan-2011
Ashley & Graham, just want to let you know that my reservation program 
using b218 is finished, and has been working perfectly. Many thanks 
for your work on RebGUI and all the support. Hopefully I can join 
the effort soon and give some work back to the community. (Currently 
I only have drop-list2 and text-list2, but both are incomplete and 
based on incomplete b218, so I think sharing them will do more confusion 
than help).
GrahamC:
17-Jan-2011
Maybe we should have moved RebGUI to github instead so people could 
fork and post their changes ... I guess we could still do so if Ashley 
restarts development.
Awi:
17-Jan-2011
Yes good idea, and if I'm not asking too much, just a small documentaion 
explaining the basic concept of 2x RebGUI, to get people (me) started. 
Currently my only reference is RebDOC and tour.r and diff-ing with 
117. For example I wanted to bring the b117 panel style (no border, 
silver background) back, I looked for some hours, and give up. Even 
some short points in this AltMe thread would be helpful. For example 
I found out how to do append-widget in 2.x through searching in google 
and found the chat history in altme.
Awi:
17-Feb-2011
To use this, just save it as slim-chat in rebgui/widgets, and then 
do create-distribution.r. It's fully syntax-compatible with the existing 
chat widget.
Gabriele:
21-Mar-2011
calling WAIT inside a vid face action is not really supported by 
REBOL. In practice, there are cases where you may need to do this, 
but it is always a bit tricky.
GrahamC:
16-Apr-2011
Do I have to track every event?
Henrik:
13-Jul-2011
I need to copy the entire state of a rebgui table for an undo system. 
Any idea how to do that? Deep copying the face object is far too 
slow, so I guess I need to access particuar values in the table that 
will then update the table properly when calling REDRAW.
GrahamC:
26-Aug-2011
Awi ... do you now have write access to the repo?
GrahamC:
1-Nov-2011
you have to do this:

insert clear head gui-table/data a-block
gui-table/redraw

as there is a reference to the data block elsewhere
8101 / 1157812345...8081[82] 8384...112113114115116