• 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
r4wp4382
r3wp44224
total:48606

results window for this page: [start: 25101 end: 25200]

world-name: r3wp

Group: View ... discuss view related issues [web-public]
Anton:
14-Aug-2005
James, what do you want to do with your grid of toggles ? (sounds 
like could be used for an audio application, like drum patterns). 
Do you want them to have different texts and colors as well, etc. 
?
Anton:
14-Aug-2005
In my recent explorations of the view system, I found it necessary 
to see what is going on.

This program shows detect, engage and over functions in action for 
a face and its subface:
http://www.lexicon.net/antonr/rebol/doc/event-flow-diagram.r
james_nak:
14-Aug-2005
Anton, again thanks for your expert help. What I am trying to do 
is to set up a grid that has 15 minute increments as toggles for 
a whole day. To make it easier for the user, I wanted to have the 
4 columns: morning, afternoon,evening and night. Your program helped 
me with getting the rows to be different but the columns were the 
same. Just minutes ago the idea came to me that perhaps I have been 
approaching it all wrong and the simple answer (although not too 
elegant perhaps) was to just create 4 individual lists across. It 
works so now I can clean up my "scratch" app and move on to making 
the actual tool. Thanks Anton. You don't know how much you have helped.
Anton:
15-Aug-2005
You can notice some other quirky bugs related to resizing the window 
and backdrop, too.
Chris:
15-Aug-2005
; It seems snappier to apply backdrop and effects to 'lay itself, 
and works with resize:
lay: layout [size 200x200 backcolor blue]
lay/effect: [gradient]
view/options lay [resize]
Anton:
15-Aug-2005
Yes, that's probably better. Pekr, BACKCOLOR and BACKEFFECT change 
the color and effect of the window face, while BACKDROP creates a 
new face and puts it in the window-face/pane (like any other style).
Pekr:
15-Aug-2005
E.g., with some older scripts, I used 'panel, for grouping buttons, 
as it allowed me for kind of "sub-layout" (reset coordinates). My 
typical screen will feature "menu buttons" (as I don't want to use 
menu, as none is standard in VID yet and choise is ugly - both in 
look and in behavior), grid, and I want "Add, Edit, Delete" buttons 
(probably on the right side of grid, alligned to top of grid vertically 
etc.
MikeL:
15-Aug-2005
Petr,  In a recent production application, here is what we recommended 
to the users in a web based environment and they liked enough to 
support us with our standards group:

1. tab boxes to cut down on many screens (or to give appearance of 
that) and saves on some trips to the server
2. flyout menus to allow more intuitive navigation

3. breadcrumbs to show they where they are now and how to get back 
to a higher plane

This was a pretty big step forward from the very plain html screens 
which they had been using before with more roundtrip activity.

We prototyped the system in HTML using REBOL CGI functions and got 
some pretty detailed flow before the project was launched.

Maybe your many screens solution should look at those things. I am 
assuming you are creating a View application.
Anton:
16-Aug-2005
and try the above demo again.
Anton:
16-Aug-2005
I have fixed it to handle face edges, *and...* iterated pane functions 
:-)
Anton:
16-Aug-2005
load-thru/update http://www.reboltech.com/index.r; and try above 
demo again
Volker:
16-Aug-2005
Cool. Searching for an my old drag-drop-demo now :) And the button-list 
is cool too btw :) Maybe that complete state-saving should be supported 
by rebol, and focus could include a focal-index .
Volker:
17-Aug-2005
I think thats a big project, patching a lot of styles. and that focal-thing 
must be done internal. For now i prefer only to think about it. But 
then you are good at workarounds :)
Volker:
18-Aug-2005
maybe its possible to suggest a file, and if the user does not change 
the text that name is returned? need experimenting.
Benjamin:
20-Aug-2005
Again is there a way to know how many data is beeing saves to a file 
? write-net ? for example or is it just not possible w / rebol ? 
writing and reading both should share the callback option
Anton:
20-Aug-2005
Yes, it is possible. Will take a while to implement and bug-test, 
though. Ports must be opened in direct mode, eg. port: open/direct 
url
Robert:
20-Aug-2005
I have an iterated face function. This funciton stores some information 
that is than used later by an other function.


The problem I have is that the iterated function is executed when 
the VIEW command is exectuted. How can I call my other function AFTER 
the iterated function was exectued (the drawing is finished)? I thought 
that the iterated function is called at the time the LAYOUT command 
is used. Than I could call my other function before issuing a VIEW 
and it all would work. (BTW: The fact that the iterated function 
is called on VIEW and not LAYOUT should be documented).
Volker:
20-Aug-2005
Think of iterated function as another way of "show". Only that this 
show is called multiple times on a real show. One time for each row. 
so you can feed different data (and offsets!). Looks like multiple 
faces, needs space for one.
james_nak:
20-Aug-2005
HI again. I was wondering how you would approach this matter: I have 
a block of objects (all the same type - they are records of first 
name, last name, unique id, etc) I want to find the index of a particular 
object by unique id. I usually just go through a loop and check each 
object's id for a match and that works but is there a better way? 
 Thanks.
MikeL:
20-Aug-2005
James,  I have always (like sometimes) found it is better not to 
use index values but to use the REBOL block structure and expose 
the unique key separately in your data structure. e.g. 

data: [
    a [
        name "A"
        last-name "Alphabet"
    ]    
    b [
        name "B"
        last-name "Alphabet"
    ]
]

foreach [id blk] data [
    print [id blk/name]
]


The only reason that I can see to know the index is if you want to 
use it to index into a related data block / table but it would be 
better (in my opinion) to set the keys to allow that.  You don't 
need to know the index in this example because you can get the data 
block using the REBOL path notation.  Either 
select data 'b 
or data/b
or data/b/name
Geomol:
22-Aug-2005
Is there a way to copy a part of an image from a certain position 
to another image at a certain position? Something like:

change/part at image1 5x5 at image2 10x10 20x20


That should take 20x20 pixels from image2 at position 10x10 and put 
them in image1 at position 5x5, but it takes from the start of image2, 
so it doesn't work as intended.
Anton:
22-Aug-2005
Ahh.. Actually, yes, you can't control the start of image2. Yes, 
I asked about this soon after the release and was told it's not that 
important to implement in CHANGE. So you have to make a temporary 
image with the part of image2 that you want first.
Anton:
22-Aug-2005
Robert, you can see http://www.rebol.com/docs/view-system.html#section-10
for more insight on how pane functions work.

An iterated face function is there to save memory, so it must be 
executed every time the display is refreshed. It creates the illusion 
of many faces by moving one face around very quickly.
It does not create and position new faces like LAYOUT.

What LAYOUT allows you to do is set up the pane function that will 
be used afterwards when SHOW is used or VIEW is used and events start 
flowing.
Geomol:
22-Aug-2005
Makes me wonder about the difference between 'at' and 'skip'. Both 
are actions.
Henrik:
23-Aug-2005
say I have: layout [a: tog true of 'panel b: tog of 'panel c: tog 
of 'panel]


what's the correct way for setting b to true so that a, b and c still 
behave as part of 'panel?
[unknown: 5]:
23-Aug-2005
Someone had contacted me a month or so ago and asked for my modified 
text-list and was looking to make some updates.  I don't recall who 
it was but if your here - can you tell me if you improved such.
Henrik:
25-Aug-2005
not so wonderful:
>>layout [a: field "rebol" b: field "rules"]


>>fields: make object! [atext: in a 'text btext: in a 'text] ; how 
to bind a/text and b/text correctly?
>>fields/atext
== text ; word! incorrect

or:

>> fields: make object! compose [atext: (in a 'text)  btext: (in 
b 'text)]
>> fields/atext
== "rebol"

but then:
>>set in fields 'atext "test" ; incorrect way, apparently
>>fields/atext
== "test" ; good

>>a/text
=="rebol" ; but it didn't propagate back to the face....
Henrik:
25-Aug-2005
ok, that works, and if I would want to traverse all textfields in 
one go I started with:

>> set fields/atext "test" ; which works for one field

for multiple fields, I want to set each fields from an object:

>> inserts: make object! [atext: "rebol" btext: "rocks!"]

>> foreach i next first fields [attempt [set get in fields i get 
in inserts i]]
>> show [a b]


Fields are now changed properly in one go. Now I need to show the 
values in the foreach loop. I also need to allow the elements in 
the inserts object to be of arbitrary order.
Henrik:
25-Aug-2005
and do it multiple times with different strings, only the last one 
is set
Henrik:
25-Aug-2005
hm... something with string lengths and the size of the textfield. 
:-) forget it.
Anton:
25-Aug-2005
set [a b c d] 1  ; this sets all of A B C and D to the same value, 
1.
Henrik:
25-Aug-2005
basically I'm interested in taking the contents of an object and 
put it in various faces in a layout in one go
BrianW:
26-Aug-2005
hrm. Having issues getting "show" to work right for me. Time to dig 
a little and see what I can find out...
james_nak:
27-Aug-2005
Rebol Lesson #3:  "An object can contain variables that refer to 
functions that are defined within the context of the object." Therefore, 
don't assume an object's path leads one to having a value '"shoved 
into" it replacing the current value. In other words, sometimes all 
it takes is noticing that there isn't a ":" (colon) following the 
path. In Judeo-Christian lingo: "Thou shall not murder a function 
held in an object."  Man, I didn't notice that scroller_object/redrag 
holds a function and just requires a value to be passed to it!  When 
will I ever learn? Thanks MikeL. The phrase, "The code?" caused me 
to notice that.
james_nak:
28-Aug-2005
Oh Anton-san, you very wise. The step was set correctly but it was 
indeed the # of "shows" that were being performed. I just check the 
before and after offset and do the show if necessary. Thanks.
Geomol:
29-Aug-2005
Is there a way to draw a dot with the draw dialect? I'm looking for 
a way to do it with the draw dialect, and not just a poke in the 
image, so e.g. line-width will take effect. A line, where start- 
and end-point is the same, is not shown. A circle with radius 1 is 
not a dot, but slightly larger. Any ideas?
Anton:
29-Aug-2005
No, and even smaller does not work either:
Anton:
30-Aug-2005
Yes, they use an image and the EXTEND effect, indeed:
	print mold svv/vid-styles/btn/init
	? .png
	layout [b: btn "hello"]  b/effect
Geomol:
30-Aug-2005
A single dot is not a problem. I would like line-width to take effect. 
Thanks for the input, but these are all work-arounds. I think, we 
need a dot command in draw. I've started work on a DeLuxe Paint like 
paint program. Lines, boxes, circles and so works ok, but if the 
user just make a dot, I have a problem. It should work with line-width 
> 1 too.
Henrik:
30-Aug-2005
Generic newbie-like question: I was spying on source request-dir 
and am baffled as to how it works? There are many function names, 
I can't seem to access directly, such as F-LIST and DIROUT. Where 
do they come from?

request-dir: func [
    "Requests a directory using a popup list."
    /title "Change heading on request." title-line
    /dir "Set starting directory" where [file!]
    /keep "Keep previous directory path"
    /offset xy
][
    if block? dirout [
        dirout: layout dirout
        max-dirs: to-integer f-list/size/y - 4 / f-txt/size/y
        center-face dirout
    ]
    set-face f-title any [title-line "Select a directory:"]
    if not all [keep path] [
        path: copy either where [clean-path where] [what-dir]
    ]

    if all [not empty? path slash = last path] [remove back tail path]
    last-path: path
    result: none
    show-dir
    either offset [inform/offset dirout xy] [inform dirout]
    result
]
Henrik:
30-Aug-2005
crude prototype, but it helped me find the file I had been looking 
for :-) I don't know how  to do actual multi columns with the internal 
text-list. the plan was to allow scrolling (I can't get that working) 
and when you click on a search result, the file pops up in the viewtop 
editor. feel free to perfect it...
Henrik:
30-Aug-2005
(and post it here again!)
Geomol:
31-Aug-2005
Top looks wrong, bottom is correct (and need translate).
Henrik:
31-Aug-2005
and animbrushes?
Geomol:
31-Aug-2005
Good to know, Cyphre. And thanks guys! Preciate it. I hope, this 
'little' project will turn out well. I need a DPaint program to do 
the graphics for a phone-game, I'm involved in.
Geomol:
1-Sep-2005
:-) New version uploaded with guide-lines for rectangle, circle and 
so, and 2 new drawing tools, ellipse and filled ellipse.
Geomol:
1-Sep-2005
There seem to be a small anomaly, when doing thick circles and ellipses, 
in the right side, where the circle/ellipse starts and ends. It may 
have something to do with "line-cap round", but if that is left out, 
there will be a tiny gap, when drawing really thick circles/ellipses.

Maybe Cyphre should check it out!?
Henrik:
1-Sep-2005
I changed BITMAP-SIZE to 1024x768 and as I suspected it really slows 
down now...
Henrik:
1-Sep-2005
it could be a graphics driver problem, but I also tried it on my 
linux laptop and it's also very slow there.
Geomol:
1-Sep-2005
Henrik, it must be something special with your setup, and you get 
slow console output on the
do http://www.rebol.com/speed.r

speed-test, as we talked about. You could post your speed output 
here somewhere and specify your setup. Maybe others have a solution!
Henrik:
1-Sep-2005
I have an ATI Radeon 9500 graphics card with the latest Catalyst 
drivers and the test is run on a Celeron 2.6 Ghz PC with 640 MB of 
PC133 memory
Henrik:
1-Sep-2005
but I've always had this problem that painting large surfaces in 
REBOL takes a long time on my machine and it doesn't really matter 
what drivers I use
Geomol:
1-Sep-2005
:-) Just fixed a bug with line tool, if start and end point is the 
same. Well, that's progress! ;-P
Brock:
1-Sep-2005
Speaking of shift, wasn't the cirlce tool actually an elipse, and 
holding shift created the same x-y offset, same with rectangle tool. 
Shift made a square?
Geomol:
2-Sep-2005
In DPaint IV on my Amiga here, circle and ellipse are 2 tools, and 
shift has no impact, but you're right with rectangle being square, 
when shift is down. Implementing that...
Anton:
2-Sep-2005
Geomol, I don't see why you can't wait for the mouse down before 
deciding on the axis direction. If shift happens to be pressed when 
you get the down event, then you enter "shift-down" mode, and on 
subsequent move events, either shift is pressed, so decide and "quantize" 
to a horizontal/veritcal direction, or not, so allow any direction 
as usual.
Group: I'm new ... Ask any question, and a helpful person will try to answer. [web-public]
Kaj:
11-Oct-2011
However, before objects, you should be thinking functional programming 
and data dialects
james_nak:
15-Oct-2011
Todun, just some of my thoughts. I think you are changing the order 
of the cards ito indicate the difficulty of a question. When you 
are saving the %temp-cards.txt, you are at a particular position 
in your series because of the  "qa: next qa"  so when you save/all 
it is saving the series from the current position to the end. If 
you want to save the whole series, you can add  "head qa" which will 
bring the pointer back to the first  item for the save but leave 
your pointer at the current question.
It may help to do some simple tests:
>> a: [1 2 3 4 5 6 7 8 9 10]
== [1 2 3 4 5 6 7 8 9 10]
>> a: next a
== [2 3 4 5 6 7 8 9 10]
>> save %test.txt a
>> read %test.txt
== "2 3 4 5 6 7 8 9 10"
>> save %test.txt head a
>> read %test.txt
== "1 2 3 4 5 6 7 8 9 10"
 move/to a 5
== [6 7 8 9 10]
>> save %test.txt head a
>> read %test.txt
== "1 3 4 5 2 6 7 8 9 10"

etc. 


Also I like to add "probe" as in "probe qa" to different places in 
my code so I can see what is happening internally as I do stuff.


Finally, might I suggest that you actually approach the issue in 
a different way altogether? You can have a block that  has some metadata 
in it so that a question's difficulty can be assessed by other means 
such the word "hard" or some number such as 1 = easy and 10 = hard, 
for example. And allong with that you could keep track of how many 
times the person missed the question.
[ 1 "California"  "Sacramento"  1  1  0  1 ]

where the block above refers to  [ index Question  Answer  difficulty 
 Attempts Wrong Correct]

There's a lot more work to do this but if you can then search for 
the difficult questions, etc. Your program would control the order 
of the questions based on some filter such as difficulty, attempts. 
The user could just mark a question as difficult.

Anyway, just a thought.  I don't want to make your life hard and 
I need to go back to my own mess I started. I am in block-o-rama 
myself.
Henrik:
23-Oct-2011
for multi-line stuff, you can use the built-in very simple editor:

>> editor ""

write your script and save it and use CTRL-E (I think) to run it.
Duke:
23-Oct-2011
Sorry about the previous msg - still getting used to Altme :o

I'm taking the examples right from the URL in my previous msg. Is 
there a simple and bullet-proof way to enter the code at the REBOL 
console?
Henrik:
23-Oct-2011
When developing scripts, I like to use my favourite editor and hook 
up REBOL to a keyboard shortcut, which is a nice and quick way to 
study longer REBOL scripts.
Duke:
23-Oct-2011
BTW, I just C&P the code into the console, and BINGO!!!  :))
Duke:
24-Oct-2011
@Izkata I see that! Thanks. My problem was that CORE's "line continuation" 
symbol - [ - was confusing me. Is there a way to change that to another 
symbol? I was getting it mixed up with the code's own [ and ].
Pekr:
24-Oct-2011
in fact, we have two continuation chars, [, and {, and both make 
sense - the first one is the continuation of a program, or a block, 
the secong one is for a multiple line string
Duke:
24-Oct-2011
@Pekr  It might make sense to have 2 line continuation chars, but 
IMHO, it makes no sense to have those chars *the same* as symbols 
you'd find in REBOL code. It can become too confusing -especially 
for beginners. I suppose that is the reason why the console/prompt 
is set to >> and not {{ or ]] :)
Ladislav:
24-Oct-2011
The REBOL console is trying to be helpful in indicating that at least 
one 

]" or "}" needs to be supplied to complete an expression." - yes, 
and that is where I wanted to point out, that there is no "line continuation 
symbol", since what is going on is not that the interpreter encountered 
a "line continuation symbol" (it did not), but that it expect you 
to close the open block
Duke:
24-Oct-2011
@Ladislav Thanks for clearing that up!  At the moment, I'm simply 
reading http://www.rebol.com/docs/words/wswitch.htmland trying out 
the snippets to do 2 things:
1. Learn to use the REBOL console
2. Learn REBOL syntax etc


Entering those multiline snippets is what was a problem - until now. 
The console prints a "[" after each CR. For a noob, this chars looks 
and feel just like the ones IN the code. :))
Duke:
24-Oct-2011
@Ladislav  [quote]do read clipboard://[/quote]


I see! I'm on a Linux Xubuntu box - so I just highlight the text, 
and then right-click paste it into the REBOL console. I get to "see" 
the code, then the results, after a CR. Your method works OK, but 
all I get is the results -- don't seem like "a full meal deal" :)) 
Thanks ...
Duke:
24-Oct-2011
@Sunanda  Works like a HOT DAMN!!  Thanks! BTW, the command history 
still works after the result is printed - so a person can go back 
and re-do everything, and fix errors.
Duke:
25-Oct-2011
I just did a "Help type? at the console, and got:

TYPE? value /word


Does this output not seem counter-intuitive to you guys? Especially 
when the syntax is:

TYPE?/word/ value   ; I used the / char to indicate an option


This tells me that the type? word is followed by an optional refinement, 
but always needs a "value" - in that order. The console help output 
seems to have it reversed. What do you think?
Endo:
25-Oct-2011
All the refinements are optional, it's a bit confusing for a beginner 
but otherwise it will be more confusing. Try:  help find

There are lots of refinement. HELP shows the normal usage and then 
the optional refinements and their arguments.
Henrik:
25-Oct-2011
The format is name, followed by arguments to that name. So VALUE 
is an argument to TYPE and the /WORD refinement has no arguments.
Henrik:
25-Oct-2011
Refinements are options, sometimes used in twos or threes, and the 
disadvantage here is that the argument list then can become hard 
to read. It's a good skill to create functions without too many refinements. 
I personally consider refinements to be one of the less stellar parts 
of REBOL.
Henrik:
25-Oct-2011
A refinement is latched onto a function, so that you know that the 
refinement is part of that function. Hence, you must type out the 
function name, followed directly by the refinement without spacing. 
Then you type the function arguments and after that, the refinement 
arguments.
Endo:
25-Oct-2011
The arguments has the same order with refinements after the non-optional 
arguments:

with a function that requires 2 arguments and have 2 refinements 
should be used as:


myfunc/ref1/ref2 arg1-to-func arg2-to-func arg-to-ref1 arg-to-ref2
Henrik:
25-Oct-2011
The problem with wording the help differently is that arguments and 
their orders passed, might be different, depending on which refinements 
you use. Therefore help is formatted the same as function headers. 
A way to understand it, is that anything that comes directly after 
the function name is obligatory. When the first refinement appears 
in the help string, anything after that is optional.
Duke:
25-Oct-2011
I'm getting TOTALLY confused here! I'm going to have to stop here 
and go study this - including all of you guys' advise - a bit more 
....
Endo:
25-Oct-2011
Duke: Don't be confused.

my-func/boo 6


If my-func requires an argument and /boo refinement does not require 
and additional argument, then 6 is for my-func.

if my-func and /boo both require args then you will get an error. 
my-func expects more arg.

if my-func doesn't require an arg but /boo does then it belongs to 
/boo
Endo:
25-Oct-2011
I faced a problem when I use a refinements, my function had an ref. 
/any

Then I forgot it and use ANY native. It gives error about using none, 
because the function wasn't called /any, so the word ANY was defined 
and its value was NONE. It was difficult to find the problem.
Geomol:
25-Oct-2011
And checking help for COPY:

>> ? copy
USAGE:
    COPY value /part range /deep

Read that as:
- COPY takes one argument called VALUE

- If you choose to use the /part refinement, you then need to give 
an additional RANGE argument

- If you choose to use the /deep refinement, no additional argument 
is needed.
Duke:
25-Oct-2011
@Geomol  I now understand the syntax of function arguments, function 
refinements and THEIR arguments. Endo summarized it well. However, 
I still think that the REBOL Help sub-system should reflect EXACTLY 
how the function should be written. Thta should be the programmer's 
first line of help. Like the Unix man pages. So, assuming that the 
* char indicates optional syntax, IMHO, ?copy should say:
USAGE: 
    COPY */part, /deep* VALUE */deep range* 


To me, that tells me exactly the order in which the optional refinements, 
the required function argument, and the optional refinement argument 
should be written. To me this makes more sense. :D
Henrik:
25-Oct-2011
COPY */part, /deep* VALUE */deep range*

 - not sure I understand this order, as it will fail to explain where 
 VALUE belongs and where RANGE belongs (it does not belong with /DEEP). 
 Anyhow, the notation is standard and should not change anywhere. 
 You only need to learn it once, so hopefully, this is not too much 
 of a hurdle.
Sunanda:
25-Oct-2011
The REBOL help system is remarkable concise and acts, usually, as 
an excellent aide memoire.


It has weaknesses too -- for example, it does not give hints as to 
which refinements are incompatible with others. eg HELP TRIM gives 
no clue that TRIM/HEAD/WITH is not acceptable.

A fresh look at the HELP system may help improve it.
MagnussonC:
11-Nov-2011
Is it possible to open a web page and fill in username, password 
and press send? It is a POST form. I'm thinking of using it to check 
if some (of my own) web pages work and it is possible to login. I've 
tried read URL.
Geomol:
11-Nov-2011
And more here: http://www.rebol.com/docs/core23/rebolcore-13.html#section-13.5
MagnussonC:
11-Nov-2011
About the example 8.6 on read/custom and post. I can't find any info 
about the arguments for post. There is no help for this word. Can 
I send several arguments at once or do I write one post line for 
each form field?
Burtm10:
12-Nov-2011
Hello Helpful person.  I have a need for a local no-server database 
function and have explored the sqlite tools which I can get working 
OK But.  The data I want to be storing needs to be secure.  I have 
looked at the encodings.r and that will work but I was wondering 
if there was another way.  I have used Tsunami Records Manager in 
the past with good success.  I have used Euphoria which has an excellent 
inbuilt database function and I would like something similar if possible. 
 Any clues?
Endo:
14-Nov-2011
When I examine the functions in altjson.r and altwebform.r written 
by Christopher Ross-Gill, I see function definitions like below:


load-json: use [...<lots of words>...] [... <lots of definitions 
etc.> func [...] ]


is this method for hiding details in function body? or to make the 
function body cleaner?
PeterWood:
21-Nov-2011
This is a good place to ask questions about getting started with 
REBOL and getting used to AltME.
MagnussonC:
30-Nov-2011
... and I'm not sure what to make of the "make object!" in the resulting 
block.
BrianH:
30-Nov-2011
Shame on you, Izkata, for advocating the use of the old reflectors 
in the "I'm new" group. Don't teach bad habits :(
In R2 and R3:
>> foreach [key value] body-of X [print [key {->} value]]
a -> 1
b -> 2
c -> 3
>> foreach key words-of X [print [key {->} get key]]
a -> 1
b -> 2
c -> 3
BrianH:
30-Nov-2011
Yup, and that's more efficient too, but if you need the code to be 
R2 compatible, there're good reasons to make it R3 compatible too. 
For one thing, the code is cleaner and easier to understand and secure 
than old-style R2 code.
Izkata:
30-Nov-2011
(had several incompatibilities with 2.7.7 and never bothered to figure 
it out at the time)
BrianH:
30-Nov-2011
They're in R2/Forward too, and that's 2.7.6 compatible. Have you 
tried 2.7.8?
Endo:
1-Dec-2011
Try using FIRST, SECOND and THIRD on your object, that's what words-of 
and body-of do for object values.
>> bind remove first x x
>> third x
MagnussonC:
1-Dec-2011
Thank you all for the suggestions. I think it is my poor understanding 
of the LDAP syntax that's is the problem. I.e. how to get all users 
from the LDAP connection, and then loop through the user objects/blocks.
Endo:
8-Dec-2011
; use following to have the functionality. I have a very long script 
and I don't want to put it inside a IF block
do-block: [ long long script ]

foreach a b [ if any [a = 3 a = 5 ...] do-block] ;continue on other 
values of a.
Endo:
8-Dec-2011
Magnusso: I faced a problem parsing exported LDAP users using above 
CSVDE command-line tool.

Because it fails if you don't use -u argument and if your ldap data 
has some unicode data.

And if you use -u the exported file will be unicode and cannot be 
read/parse in R2.
Evgeniy Philippov:
13-Feb-2012
I think REBOL is a much better name since it includes "O" (holistic 
approach). All names without "O" are faulty. OBERON has two O's and 
MACHINE CODE has a single O :)
Evgeniy Philippov:
13-Feb-2012
O

 makes mind think it all holistically and perfectly. GOD has O, too. 
 Names without O don't force human recognition apparatum to loop at 
 quality assurance of a code that is being produced. REBOL has O, 
 too.
25101 / 4860612345...250251[252] 253254...483484485486487