• 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
r4wp250
r3wp2441
total:2691

results window for this page: [start: 301 end: 400]

world-name: r3wp

Group: !AltME ... Discussion about AltME [web-public]
Izkata:
10-Mar-2005
Well, AltMe didn't error, but it didn't change any dividers, either.. 
 oh well
Brock:
25-Mar-2005
The intention of restricting guest account is along the lines of 
adding more restrictions on users.  For example, now, anyone can 
delete/rename/create groups.  It would be better to have this limited 
to to either the creator of the group or another level of world masters.
Sunanda:
11-Jul-2005
Gregg -- resync bug.....It appears to require those afflicted to 
logon as another user (eg guest in the old days) to kick start the 
resync of their real userid.....So two ideas...either:
[1] some of us need two ids

[2] create a special userid ("resync") and some of us will need to 
know the password.
Ingo:
9-Sep-2005
While I'm at it ... am I the only one where links get distorted in 
display? Klicking works, but long links seem, are displayed wrong 
... they either wrap to the next line (partly overriding the text 
there), or part of the link isn't displayed.
Group: RAMBO ... The REBOL bug and enhancement database [web-public]
Anton:
18-Mar-2005
Well now, that is not always true either !
form [{} {} {} {} {}] ; a whole bunch of empty strings
;== ""  ; <--- empty string
form [{} {a} {} {} {}] ; one character added
;== "a   "  ; <--- three trailing spaces
Group: Core ... Discuss core issues [web-public]
eFishAnt:
30-Dec-2004
I want to sort [ A14 A2 B300] by either letter (the default of sort) 
or by the number...which is more of a challenge.  I have a crude 
way I am doing this...(this is a block of words, BTW)...what is the 
best "REBOL" way to sort by the number?
Tomc:
10-Jan-2005
with only two states for logic 'either makes more sense
Cyphre:
14-Jan-2005
...then you can either work on the array directly using C code or 
copy it into new array etc.
Group: Script Library ... REBOL.org: Script library and Mailing list archive [web-public]
Henrik:
28-Sep-2006
the IRC channels I visit can be a bit the same. It's like being a 
stranger walking into a bar full of people who know each other very 
well. either you are accepted or not.


The elitist thing is not meant at anyone here, but I think it can 
be seen as elitist from the outside. :-)
Maxim:
29-Sep-2006
either tool sets or individual utility functions.
Maxim:
29-Sep-2006
many things either do not work or have no useable examples in how 
to use them.
Gregg:
30-May-2007
In ConText, I use bold+blue for for branching and a few other important 
funcs (if, either, all, etc.), navy for other funcs, green for datatypes, 
red for numbers, dark red for strings, gray for comments; brackets 
are dark gray, but go black to show matching pairs when you're on 
one.
Gregg:
30-May-2007
My thinking behind the bold+blue was driven by the concept of cyclomatic 
complexity (McCabe), and making things jump out that indicate complexity 
in code. I know if I see a lot of bold+blue stuff on the screen, 
I either need to think real hard, or rewrite it. :-)
Sunanda:
9-Oct-2007
If you are a member of this Altme world, then you may also have been 
a member of its predeccessors: REBOL World and REBOL2 world.

There is now a private archive of those worlds on REBOL.org:
http://www.rebol.org/cgi-bin/cgiwrap/rebol/aga-index.r


However, you will only see them if your REBOL.org membership profile 
says you were a member -- they were *private* worlds, so we cannot 
make the posts publicly available.

If you were a member of either world and want access to the archive, 
please just ask -- just let me know your World user name and your 
REBOL.org member name.
Sunanda:
1-Nov-2008
Do you mean comments _in_ a script; or comments about a script (ie 
the discussion threads)?

Either way, yes -- check the link in my previous post for the syntax 
and some examples.
Izkata:
1-Mar-2009
nothing happens if I click on "help", either..
sqlab:
14-Apr-2009
Mike

I checked your library example from the I'm new group producing errors.

There is probably a weakness, as the script does not regard comment 
lines.
A short enhancement would be
   
parse-ini-file: func [
    file-name [file!]
   /local ini-block
    current-section
    parsed-line
    section-name
][
 ini-block: copy []
    current-section: copy []
    foreach ini-line read/lines file-name [
		if #";" <> first ini-line [ ; do not process comment lines
			section-name: ini-line
			error? try [section-name: first load/all ini-line]
			either any [
				error? try [block? section-name]
				not block? section-name
			][
				parsed-line: parse/all ini-line "="
				append last current-section parsed-line/1
				append last current-section parsed-line/2
			][
				append ini-block current-section
				current-section: copy []
				append current-section form section-name
				append/only current-section copy []
			] ;; either
		]
    ] ;; for
 append ini-block current-section
 return to-hash ini-block
 ]
Sunanda:
15-Apr-2009
Cut'n'paste ought to work. Though the download format is safer as 
it has been less processed (no escaping of embedded HTML codes etc).

I can sympathise -- I generally notice _any_ new device I buy (from 
computers to wrist watches) won't work for the first half hour or 
so, But as soon as I start to think that either it's defective, or 
I am very stupid, then it starts to play fair.

Animism is still a good first attempt at understanding the universe 
:-)
Sunanda:
24-Jun-2009
Just replied to a Feedback message sent to REBOL.org about the Script 
Library:
 
> When will the current script library "die"?

[The questioner suggests that R3 incompatibilities may mean we simply 
purge all R2 scripts to create an R3-only Library]

My response......

Thanks for the question. The simple answer is: I hope never.

***


Coincidentally, I have just started an exercise in seeing how many 
of my contributions to the Script Library will port with few or no 
changes.  The results are encouraging so far:
   http://www.rebol.org/art-display-article.r?article=j26z


I know some of my scripts will be obsoleted by R3. They can stay 
in the Library as R2-only resources.  I am hoping many of the rest 
will be code compatible between R2 and R3, so they will work either 
way.

***

Ladislav has also commented on his early porting experience:
  http://www.rebol.org/art-display-article.r?article=w24v

There is some discussion of the issue on the REBOL3 AltME world:
  http://www.rebol.org/aga-display-posts.r?post=r3wp453x15753

***

The Library has a flexible tagging method for scripts, see:
   http://www.rebol.org/st-topic-index.r

We can very easily add tags for (say)
   R3-ready
   R2-only


Or whatever seems the best set to help partition the scripts into 
R2, R3, or both.

Hope that helps a little!
Group: I'm new ... Ask any question, and a helpful person will try to answer. [web-public]
Ladislav:
12-Apr-2005
Normand: don't you mean this?:

odd?: func [i] [either i = 0 [false] [even? i - 1]]
even?: func [i] [either i = 0 [true] [odd? i - 1]]
odd? 11
Normand:
28-Apr-2005
Co-recursive types:
>> owed: func [x] [either paid? x [negate x][false]]

>> owed?: func [x] [either all [integer? x negative? x] [true] [false]]
>> paid: func [x] [either owed? x [negate x] [false]]

>> paid?: func [x] [either all [integer? x positive? x] [true] [false]]
>> a: 5
== 5
>> owed a
== -5
>> owed? a
== false
>> owed? b: owed 5
== true
>> a: paid b
== 5
>> paid? a
== true
>> paid? paid -5
Henrik:
21-Jun-2006
I made a function for this to interface MySQL:

keyed: func [keys [block!] values [block!] /local out] [
  out: copy []
  if not any [empty? keys empty? values] [
    repeat i length? keys [
      insert tail out reduce [

        keys/:i either block? first values [values/1/:i][values/:i]
      ]
    ]
  ]
  out
]
Group: Make-doc ... moving forward [web-public]
Henrik:
11-Jan-2005
=include doesn't work either.
Group: Parse ... Discussion of PARSE dialect [web-public]
sqlab:
7-Jun-2005
You can either put your parse in a catch [] and throw a true if not 
flowtext 
or something like this
parse/all/case test-text [
	some [

   copy camelcase-word [upper-case some rest-chars upper-case any rest-chars] 
   (
		 	if not empty? text [?? text clear text]
		 	print ["CamelCase word found:" camelcase-word]
		)

  | copy flowtext [some [rest-chars | upper-case] any delimiters] (
			append text flowtext
		)
		| copy flowtext [some delimiters] (
			append text flowtext
		)
	] to end
]
Gabriele:
22-Jun-2005
hmm, either use append/only, or as you say add it manually. submit 
this example to rambo if you think it's a bug.
Group: MySQL ... [web-public]
Pekr:
8-Aug-2005
I am not sure about protocol handlers either ... I start to not understand, 
what is rebol - it is not language, nor it is stand-alon platform 
... I want clean design ... Base + SDK is the answer imo ...
JaimeVargas:
9-Jan-2006
Well. Those are the terms of the GPL, you either license or release. 
With commercial licenses there is not even an option.
JaimeVargas:
9-Jan-2006
Any how. Need to go. GPL is just some biz terms, that you either 
decide to play with or not. If you don't like the terms the reimplement 
the functionality yourself, or get it from somewhere else.
Coccinelle:
12-Jan-2006
Here is the correction of the init function :
;------ Public interface ------

    init: func [port [port!] spec /local scheme args][

;    	either args: find spec #"?" [                              
                   ; removed

;    		spec: sys-copy/part spec args                             
 ; removed

;    		fast-query: dehex sys-copy next args                   ; removed

;    	][                                                         
                                       ; removed

;    		fast-query: none                                          
              ; removed

;    	]                                                          
                                        ; removed
        if url? spec [net-utils/url-parser/parse-url port spec] 
        scheme: port/scheme 
        port/url: spec 
        if none? port/host [

            net-error reform ["No network server for" scheme "is specified"]
        ] 
        if none? port/port-id [

            net-error reform ["No port address for" scheme "is specified"]
        ]

     either all [port/target args: find port/target #"?"] [           
                   ; added

      port/target: sys-copy/part port/target args                      
       ; added

      fast-query: dehex sys-copy next args                             
       ; added

     ][                                                               
                                                 ; added

      fast-query: none                                                 
                       ; added

     ]                                                                
                                                 ; added
        if none? port/target [

      net-error reform ["No database name for" scheme "is specified"]
        ]
        if none? port/user [port/user: make string! 0]
        if none? port/pass [port/pass: make string! 0]
        if port/pass = "?" [port/pass: ask/hide "Password: "]
    ]
Will:
26-Apr-2006
read-field: [
		(null-flag: false)
		read-length s: (either null-flag 
[field: none]
			[field:	sys-copy/part s len s: skip s len]) :s
	]
Dockimbel:
10-Jun-2006
This should work: either insert db-port [ping] [print "port opened"][print 
"port closed"]
Group: Linux ... [web-public] group for linux REBOL users
Henrik:
4-May-2006
yes, either LILO or GRUB
Group: SDK ... [web-public]
Sunanda:
15-May-2005
Not see it under REBOL.
But is sounds like you have an older (or newer!) copy of MFC42.

Or you may have both in different folders, and the wrong one is first 
in the path.

Either way, the first step usually is to get the appropriate version 
to execute.
Volker:
1-Dec-2005
The #if and #either commands will put the results of their blocks 
into the output file. For example:
    version: #if [new-version] [2.3.4] [1.2.3]
will result in:
    version: 2.3.4
Group: !RebGUI ... A lightweight alternative to VID [web-public]
Anton:
4-Mar-2005
Well, you can see it both ways. And I don't think this argument is 
winnable by either side.
Gregg:
5-Mar-2005
As long as there is a glossary that let's you translate from familiar 
terms, I think you're OK using REBOL's native terms, though they 
were foreign to me when I started.

Window or dialog?

 Or Screen or Form or Layout. A Dialog is usually something other 
 than the main screen in an app. You sometimes need to use all those 
 terms if you're speaking in the domain of an application, so use 
 wha'ts appropriate in each context. 

Face or graphical object?

 Or Control or Widget. Tough call on this one. I was used to Control 
 from VB, and Face confused me as it could be a layout as well. I 
 like distringuishing between layouts and controls. Hmmm Maybe a hierarchical 
 tree.

Facet, attribute, property or descriptor?

 I like either Attribute or Property. I can live with Facet in REBOL, 
 it's shorter, and it makes sennse if you think in terms like "let's 
 discuss this facet of the business". 

Style, widget or template?
	Style, definitely.
Vincent:
5-Mar-2005
anim: make face [
	    image:  none
	    rate:   1
		edge:	none
		font:	none
		feel:	make feel [
			engage: func [face act event] [
			    if event/type = 'time [
			        face/image: first face/data

           face/data: either tail? next face/data [head face/data][next face/data]
				    show face
	    		]
 		    ]
		]
	]
Vincent:
5-Mar-2005
check: make face [
    edge: none
    data: false
    para: make para [origin: 14x0]
    effect: copy [draw [
        pen 96.96.96 fill-pen 255.255.255 box 0x0 12x12
        pen none line 0x7 5x12 11x0 line 0x6 6x12 12x0
    ]]
    feel: make feel [
        redraw: func [face act pos][
            if act = 'show [

                face/effect/draw/9: either do face/data [255.0.0][none]
            ]
        ]
        engage: func [face act event][
            if event/type = 'down [
                face/data: not do face/data
                show face
            ]
        ]
    ]
]
shadwolf:
6-Mar-2005
anim: make face [
		edge:	none
		font:	none
		para:	none
		feel:	make feel [
			engage: func [face act event] [
				if event/type = 'time [
					face/image: first face/data

     face/data: either tail? next face/data [head face/data] [next face/data]
					show face
					recycle
				]
			]
		]
		rate:	1
	]
shadwolf:
6-Mar-2005
Vincent in anim: face/data: either tail? next face/data [head face/data] 
[next face/data]
Vincent:
6-Mar-2005
the image isn't evaluated in "face/data: either tail? ..." it's just 
a pointer affectation
Graham:
8-Mar-2005
I'm either in a rebol console or a dos shell :(
Vincent:
20-Mar-2005
over: func [face act pos] [
    face/effect/draw/pen: either act [active-color][edge-color]
    show face
]
Ashley:
21-Mar-2005
The "problem" with either approach (sub-face / draw) is that RT have 
two technologies (TMD / AGG) that could dramatically impact any implementation 
... but we have no idea when these will be available. :(
shadwolf:
29-Mar-2005
insert tail sub/pane make item-f [;menu item
						type: 'item
						text: itm
						offset: oft
						root: sub

      font-colors: either dis? [[172.168.153 172.168.153]] [font-colors]
						font: make font [align: 'left color: font-colors/2]

      para: make para [wrap?: false origin:  22x1 + (lineh * 1x0)]
						size: 0x2 + get-tsize/fnt itm font
Vincent:
9-Apr-2005
construct: func [
    block [block!] /with object [object!]
/local nb spec values name value
][
    if not with [object: object!]
    spec: copy []
    values: copy []
    parse/all :block [
        any [
            to set-word! (nb: 0) some [
                set name set-word! (nb: nb + 1 append spec :name)
            ]
            set value skip (

                insert tail values nb insert/only tail values :value
            )
        ]
    ]
    append spec none
    object: make object spec
    foreach [nb value] values [
        loop nb [
            set in object (to-word first spec) 

                either find [true false none on off] :value [do value][:value]
            spec: next spec
        ]
    ]
    object
]
Ashley:
10-Apr-2005
Ah, nailed the radio-group problem under 1.2.1 by replacing this 
line:

	pos: pos + either size/y > 20 [0x20] [as-pair width 0]

with these two:


 tmp: either size/y > 20 [0x20] [as-pair width 0] ; required for 1.2.1
	pos: pos + tmp
shadwolf:
11-Apr-2005
redraw: function [face act pos] [test-size test-wid] [
			     
				if act = 'show [face/pane/1/size: face/size - 0x20
					either not dir-buttons [
					 	dir-buttons: true
					 	test-wid:  last face/pane
			    		test-size: test-wid/offset/x + test-wid/size/x
						if greater? test-size face/size/x  [
			    			insert tail face/pane face/l-arw: make arrow [
		        				size: 20x20
			    				offset: as-pair (face/size/x - 40) 0
			    				data: 'left
			    				action: [print "you clicked left" ]
		     				] do face/l-arw/init
			    			insert tail face/pane face/r-arw: make arrow [
		        				size: 20x20
			    				offset: as-pair (face/size/x - 20) 0 
			    				action: [print "you clicked right" ]
			    				data: 'right
		     				] do face/r-arw/init
	     				]
		     		 
	     			][	
	     				face/r-arw/offset: as-pair (face/size/x - 20) 0 
	     				face/l-arw/offset: as-pair (face/size/x - 40) 0 
	     			]
		     		

       print "la liste des bouttn est plus grande  que ce que l'on voit!!!" 
		    	]
shadwolf:
11-Apr-2005
tab-panel: make face [
		color:	none
		pane:	[]
		l-arw: none 
		r-arw: none
		dir-buttons: false
		feel:	make default-feel [
			redraw: function [face act pos] [test-size test-wid] [
				if act = 'show [face/pane/1/size: face/size - 0x20
; 					
; 				 	test-wid: face/pane/1
; 		    		test-size: test-wid/size/x
; 					if greater? test-size face/size/x  [
; 						either not dir-buttons [
; 				 			dir-buttons: true
; 		    				insert tail face/pane face/l-arw: make arrow [
; 	        					size: 20x20
; 		    					offset: as-pair (face/size/x - 40) 0
; 		    					data: 'left
; 		    					action: [print "you clicked left" ]
; 	     					] do face/l-arw/init
; 		    				insert tail face/pane face/r-arw: make arrow [
; 	        					size: 20x20
; 		    					offset: as-pair (face/size/x - 20) 0 
; 		    					action: [print "you clicked right" ]
; 		    					data: 'right
; 	     					] do face/r-arw/init
; 	 					][	
; 	 						face/r-arw/offset: as-pair (face/size/x - 20) 0 
; 	 						face/l-arw/offset: as-pair (face/size/x - 40) 0 
; 	 					]
; 	     			]

; 			    print "la liste des bouttn est plus grande  que ce que l'on 
voit!!!" 
		    	]
			]
		]
		
		init:	has [tab-offset last-tab] [
			;	create main display area
			insert pane make face [ offset: 0x20 edge: default-edge]
			;	add tabs
			tab-offset: 0x0

   insert tail pane make face [ offset: 0x0 pane: [] color: none ]
			container: last pane

   insert container/pane make face [ offset: 0x0 pane: [] color: none]
			foreach [title spec] data [
				insert tail container/pane/1/pane make face [
					offset:	tab-offset
					size:	1x20
					pane:	[]
					text:	title
					effect:	reduce ['round edge-color 5 'draw copy []]
					resize:	none
					font:	make default-font [align: 'center valign: 'bottom]
					para:	default-para
					feel:	make default-feel [
						over: func [face act pos] [
							either act [

        insert face/effect/draw compose [	; compose required for AGG betas
									pen over-color
									line 3x1 (as-pair face/size/x - 4 1)
									line 2x2 (as-pair face/size/x - 3 2)
									line 1x3 (as-pair face/size/x - 2 3)
								]
								show face
							][

        if face/parent-face/parent-face/parent-face/pane/1/pane <> face/data 
        [	; clear unless selected
									clear face/effect/draw
									show face
								]
							]
						]
						engage: function [face act event] [pf old-face] [
							if event/type = 'down [
								pf: face/parent-face
								pf3: pf/parent-face/parent-face

        if pf3/pane/1/pane = face/data [return]	; has a new tab been selected?
								clear face/effect/draw
								old-face: pick pf/pane pf3/data			; find previous tab
								old-face/resize: pf3/size				; remember last size
								old-face/size: old-face/size - 0x1		; deflag old
								clear old-face/effect/draw
								face/size: face/size + 0x1				; flag new
								face/feel/over face true 0x0
								pf3/data: index? find pf/pane face		; set new pane#
								pf3/pane/1/pane: face/data				; init tab panel
								if pf3/size <> face/resize [				; recursive resize
									span-resize pf3/pane/1 pf3/size - face/resize
									face/resize: pf3/size
								]
								show pf3
							]
						]
					]
				]
				last-tab: last container/pane/1/pane

    last-tab/size/x: 10 + first size-text last-tab	; set tab title width

    display/layout "" spec last-tab					; generate tab spec into tab 
    pane
				last-tab/data: last-tab/pane					; swap pane into data
				last-tab/pane: none								; clear pane
				last-tab/resize: size							; original panel size

    tab-offset/x: tab-offset/x + last-tab/size/x	; set offset for next 
    tab title
			]
			print "size et countainer a la con !!"
			probe size/x
			container/size: as-pair size/x 20
			probe container/size/x
			container/pane/1/size: container/size

   container/pane/1/pane/1/size: container/pane/1/pane/1/size + 0x1	; 
   flag 1st tab
			data: 1								; set pane#
			pane/1/pane: container/pane/1/pane/1/data			; init tab panel

   container/pane/1/pane/1/feel/over container/pane/1/pane/1 true 0x0	; 
   flag first as active
		]
	]
Robert:
28-Apr-2005
How does this line work?
	| set arg word! (

  either in widgets arg [append-widget widget: arg] [attribute-color: 
  get arg]
	)


append-widget checks for 'widget but 'widget is set after the call 
to 'append-widget


Further, in the parse-rule the above line comes last. But it parses 
the widget words. When do the parameters get parsed? I would have 
expected this rule to be the first after the keyword rules.
Robert:
28-Apr-2005
the datatypes are unique. Each on only shows up once. I don't see 
any optional parameters. The parameters can either be of type A or 
B, ok. But that can be handled in the action block of the matching 
switch. And there we can reposition the spec block to skip those 
handled cases.
Brock:
1-May-2005
Either way, current method works like a charm.
Group: XML ... xml related conversations [web-public]
Sunanda:
30-Oct-2005
No problem.....I didn't mean that either, Brian:

 ['item "*&&^&*"] is a ['name data] pair, as an alternative to the 
 more "object" design
 [item: "*&&^&*"] 
The first approach makes deletions much easier.
Graham:
22-Jun-2009
This seems to work for me ...

obj2xml: func [ obj [object!] out [string!]
	/local o 
][
	foreach element next first obj [
		repend out [ to-tag element newline ]
		either object? o: get in obj element [
			obj2xml o out
		][
			repend out [ o newline ]
		]		
		repend out [ to-tag join "/" element newline ]
	]
]
Graham:
22-Jun-2009
using this 

obj2xml: func [ obj [object!] out [string!]
	/local o 
][
	foreach element next first obj [
		repend out [ to-tag element newline ]
		either object? o: get in obj element [
			obj2xml o out
		][
			repend out [ o newline ]
		]		
		repend out [ to-tag join "/" element newline ]
	]
]
Graham:
22-Jun-2009
format-xml: func [ xml
    /local out space prev
][
    out: copy ""
    spacer: copy ""
    prev: copy </tag>
    foreach tag load/markup xml [
        either tag = find tag "/" [
            ; we have a close tag
            

            ; reduce the spacer by a tab unless the previous was an open tag
            either not tag? prev [
                ; not a tag
                remove/part spacer 4
            ][
                ; is a tag
                if prev = find prev "/" [
                    ; last was a closing tag
                    remove/part spacer 4
                ]
            ]
        ][ 
            either tag? tag [
                ; current is tag
                ; indent only if the prev is not a closing tag
                if not prev = find prev "/" [
                    insert/dup spacer " " 4
                ]
            ][
                ; is data
                insert/dup spacer " " 4 
            ]
        ]
        repend out rejoin [ spacer tag newline ]
        prev: copy tag
    ]
	view layout compose [ area (out) 400x400 ]
]

obj2xml: func [ obj [object!] out [string!]
	/local o 
][
	foreach element next first obj [
		repend out [ to-tag element ]
		either object? o: get in obj element [
			obj2xml o out
		][
			repend out any [ o copy "" ]
		]		
		repend out [ to-tag join "/" element ]
	]
]
Maxim:
23-Jun-2009
its just that in my tests, either you can create, read or set some 
of the datatypes via path notation.  so only string based types allow 
full XML qualification.
BrianH:
23-Jun-2009
Your paths can't access multiple subelements of the same type, or 
embedded text. It might have worked for that customer but not the 
general case. No namespace support either.
Maxim:
24-Jun-2009
the downside is that access either needs a wrapper func, or is done 
via indexes...


actually attributes could be an object, since their names are mutually 
exclusive within an element.
Graham:
28-Jun-2009
fix-object: func [ obj [object!]
	/local prev
][
	foreach element next first obj [
		if object? o: get in obj element [
			; is object, so check to see if has value?
			either "value?" = form next first o [
				set in obj element trim/head/tail get in o 'value?	
			][
				fix-object o
			]		
		]
	]
]

this fixes up the object created by xml-to-object
Gabriele:
29-Jun-2009
why not    either in o 'value?      ?
Gabriele:
29-Jun-2009
you can add value? to /local and then do   either value?: in o 'value? 
 [ ...  get value?]
Graham:
29-Jun-2009
I think I tried

either 'value? = next first o

but I couldn't figure out why that didn't work ...
Graham:
5-Jul-2009
so, this is an attempt to remedy this 

fix-object: func [obj [object!]
	/local o value?
] [
	foreach element next first obj [
		if object? o: get in obj element [
			; is object, so check to see if has value?
			either value?: in o 'value? [
				set in obj element trim/head/tail get value?
			] [
				fix-object o
			]
		]
		if block? o [
			foreach ob o [
				fix-object ob
			]
		]
	]
]
GrahamC:
13-Oct-2010
this is something I wrote a couple of years back ... maybe it will 
help

obj2xml: func [obj [object!] out [string!]
	/local o
] [
	foreach element next first obj [
		if all [ not function? o: get in obj element o] [
                        ; not a none tag
				repend out [to-tag element]
				either object? o [
					obj2xml o out
				] [
					repend out any [o copy ""]
				]
				repend out [to-tag join "/" element]
		]
	]
	out
]
Oldes:
13-Nov-2010
I just created this function to convert the data tree returned from 
REBOL's default parse-xml function back to the same string:
context [
	out: copy ""
	emitxml: func[dom][
		foreach node dom [
			either string? node [
				out: insert out node
			][
				foreach [ name atts content ] node [
					out: insert out join {<} [name #" "]
					if atts [
						foreach [att val] atts [ 
							out: insert out ajoin [att {="} any [val ""] {" }]
						]
					]
					out: remove back out
					
					either all [content not empty? content] [
						out: insert out #">"
						emitxml content
						out: insert out ajoin ["</" name #">"]
					][
						out: insert out "/>"
					]
				]
			]
		]
	]
	set 'xmltree-to-str func[dom][
		clear head out
		emitxml dom
		head out
	]
]
Group: DevCon2005 ... DevCon 2005 [web-public]
Gabriele:
27-Apr-2005
ammon: that's very strange. the server's in the USA btw, so it's 
not that far from you either.
Pekr:
16-Jun-2005
btw - what is your suggestion? Rome or Milano? I was not in either 
...
Graham:
16-Jun-2005
You don't need cgi either, you can use 

set-net [ "form" 216.40.214.39 ]

in your script, and then 'send the results to you.
Group: Rebol School ... Rebol School [web-public]
denismx:
4-Apr-2006
All the docs seem to be either dictionnaries of the language or very 
specific examples of how-tos that give you the application described. 
Nice and usefull but not for becoming proficient from zero (or near 
zero).
denismx:
19-Apr-2006
I remember writing a program in Pascal that modified itself either 
in memory or rewriting itself on disk with variations.
Anton:
22-Apr-2006
Ok, so here's my frequency table:
    6 compose 
    5 as-pair 
    5 func 
    4 do 
    3 show 
    2 all 
    2 copy 
    2 find 
    2 form 
    2 get 
    2 in 
    2 pick 
    2 print 
    2 to-image 
    2 use 
    1 * 
    1 + 
    1 - 
    1 <> 
    1 = 
    1 append 
    1 bind 
    1 center-face 
    1 change 
    1 clear 
    1 context 
    1 do-events 
    1 either 
    1 first 
    1 foreach 
    1 if 
    1 join 
    1 layout 
    1 load-thru 
    1 make 
    1 mold 
    1 object? 
    1 reduce 
    1 remold 
    1 remove-each 
    1 repeat 
    1 second 
    1 select 
    1 to-pair 
    1 to-path 
    1 view
Anton:
22-Apr-2006
47 if 
    35 all 
    17 func 
    14 find 
    13 in 
    13 not 
    13 print 
    12 do 
    12 either 
    12 get 
    10 = 
    10 next 
    9 clear 
    9 exit 
    9 insert 
    9 pick 
    8 compose 
    7 any 
    6 foreach 
    6 mold 
    6 tail? 
    5 - 
    5 as-pair 
    5 last 
    5 none? 
    5 object? 
    5 paren? 
    4 head 
    4 reduce 
    4 show 
    4 while 
    3 break 
    3 copy 
    3 remold 
    3 remove 
    3 same? 
    3 tail 
    3 use 
    2 * 
    2 + 
    2 <> 
    2 context 
    2 forall 
    2 form 
    2 make 
    2 prin 
    2 return 
    2 set 
    2 to-image 
    2 to-time 
    2 view
Group: AJAX ... Web Development Using AJAX [web-public]
Ashley:
8-Dec-2005
it needs to create a javascript dialect

 - then instead of waiting for someone else to do it, either create 
 one yourself or start a project of like-minded individuals. ;)
BrianH:
30-Jan-2009
The ability for either Flash or Silverlight to improve in an open/free 
way, in the areas where they are currently strong - multimedia and 
video - is very limited because of all of the patents on multimedia 
codecs. In other ways, Silverlight has more potentiial right now 
for open/free development because MS actually provides developer 
support to the Mono/Moonlight project.
Group: Syncing ... Syncing technologies [web-public]
JaimeVargas:
4-Jan-2006
2) You either implement locks or smart merging.
Group: !RebDB ... REBOL Pseudo-Relational Database [web-public]
Graham:
9-Feb-2006
not here either http://www.colellachiara.com/soft/
Ashley:
16-Mar-2008
The "logic" is that db-update (and db-delete) are logical companions 
to both db-lookup and db-select ... so they have to operate comfortably 
in either mode (key or predicate). It is quite possible to have a 
db that *only* operates in "key" mode and *never* uses predicates! 
;)
Group: SQLite ... C library embeddable DB [web-public].
Ashley:
13-Feb-2006
1) how to influence where it stores/creates database?


Don't know, I've only been looking at all this for a day and havn't 
worked that out yet either.


2) if I would use separate file for some tables, if it would be able 
to join them


Yes. The ATTACH command lets you "hook up" to multiple databases, 
and you can prefix references with database name.

3) noticed there is brand new version of techfell protocol


Of the *four* sqlite scripts on REBOL.org %sqlite3-protocol.r is 
the one to use if you have a Pro licence.

4) those guys are really screwing with GPL license ...

Who? SQLite is PD as is %sqlite3-protocol.r
Ashley:
15-Feb-2006
Oops, that should be:


 port/locals/dbid: sqlite-open to-file either port/path [join port/path 
 port/target] [port/target]


as port/path contains none! when no path is provided. On that note, 
anyone know why port/path and port/target are set to string! not 
file! ?
Ingo:
9-Mar-2006
Hi Ashley,

trouble is, I will always have to copy, because where's the sense 
in getting data that may be changed next second by the next call? 
On the other hand, adding a /no-copy refinement, with 
either no-copy [clear buffer][buffer: copy []]

Would give me a fast way to securely get my data, and I guess it 
should not slow down those who want no-copy behaviour in any ingful 
way..
Ashley:
14-Mar-2006
If someone has an SDK licence could they confirm this strange behaviour 
by replacing the last line of %sqlite.r with:

attempt [delete %test.db]
connect/create %test.db
sql "create table t (c)"
sql "insert into t values (1)"
print mold SQL ["select * from t where c = ?" 1]
wait 2


and encapping it with either enpro or enface. Run both the script 
and the encapped version and compare the output ... I get an empty 
block returned by any statement that makes use of bind variables 
and is encapped. DOing %sqlite.r from an encapped script works fine, 
as does something like:

	do uncompress #{789C...

so my only guess is it's a binding issue of some sort.
Robert:
16-Mar-2006
To me this looks like either a strange character coding happens or 
that there are some 0x00 chars included, which are interpreted as 
string-end.
sqlab:
16-Mar-2006
I think, the internal memory is mingled, either in sqlite or in rebol, 
probably in the interface by the garbage collector.

I observed already some high memory consumption, until my pc was 
blocked.

I had this already with the earlier versions of sqlitex.r after some 
errors.

I would recommend that you use deliberately some [save].
Pekr:
16-Mar-2006
uhm, there is no parse inside sqlite.r ;-)

either string? statement [statement][first statement]

so it may as well be sqlite library, who is causing it ....
Ashley:
20-Mar-2006
The change to handle date properly is pretty simple in fact (starting 
at line#375):

					unless direct [
						val: either date? val [
							p: reform [val/year val/month val/day]
							all [val/month < 10 insert skip p 5 "0"]
							all [val/day < 10 insert skip p 8 "0"]
							poke p 5 #"/"
							poke p 8 #"/"
							p
						] [mold/all val]
					]
Ashley:
25-Mar-2006
Replace the column-text block in the SQL function with:

	[(
		either direct [
			[*column-text (sid) idx]
		][
			[
				s: v: *column-text (sid) idx
				while [s: find s {""}] [change/part s "" 2]
				load v
			]
		]
	)]

I've added this to the next build.
Ingo:
3-Apr-2006
Although, if you are not connected to any database, it raises an 
error just like any other function. 

I think it would be helpful to have a function to just check, maybe 
like ...


either none? database [ ... you hev to connect ....][ ... check whether 
the right database is corrected ...]
Group: Postscript ... Emitting Postscript from REBOL [web-public]
james_nak:
5-Apr-2006
A couple of thoughts: 1. ".doc" is probably more prevalent. I see 
a lot and I do work in the corporate world. In fact, most of my document 
correspondence with IBM is with either Word files or Excel spreadsheets. 
(Not that I am suggesting doing any one of teh two, though being 
able to create .doc and .xls files natively would be incredible). 
2. I use PS only to later translate them with Distiller to pdf. But 
then again,  I have the regular version of Acrobat so I can. It's 
not that I want to but Pekr has a point about the usefullness and 
popularity of pdf. 3. For professional printing use, I suppose PS 
is still very useful. But I think that is the high-end side.
Pekr:
6-Apr-2006
Graham - either give me native rebol post script viewer, or forget 
it. I will not install ghost script - being there, done that. Because 
- today, in corporate sphere, there are two output interfaces - browser, 
or PDF Reader - noone will install anything else. I do agree that 
to get things right using html/css in cross browser manner may be 
pretty difficult task, but imo that postscript should be somehow 
- hidden?
Gregg:
6-Apr-2006
(as a world master here) First, Pekr, I can see how Graham interpreted 
some of your comments as negative ("Graham - either give me native 
rebol post script viewer, or forget it. I will not install ghost 
script..."), and I don't think he's being arrogant. I understand 
your point about wanting people to spend effort on things that are 
valuable to REBOL, but what's valueable to each of us is *completely* 
different in many cases. 


I hope you two can stay on good terms, because you're both valuable 
to the community.
Group: !Liquid ... any questions about liquid dataflow core. [web-public]
Maxim:
24-May-2007
basically a connection based TCP i/o interface to any liquid network. 
 you define the ports, the protocol (on either end) and can then 
interface your Dataflow across machines  :-)  it would allow distributed 
processing without any understanding of such concepts.
Group: DevCon2007 ... DevCon 2007 [web-public]
Maxim:
5-Feb-2007
no web access either.
Maxim:
3-May-2007
Anyone organising a little tour? just a few cars, tagging along in 
paris either on wednesday or during the week-end after...
[unknown: 9]:
10-May-2007
Should I be waiting, or am I being skipped?  I'm good either way....
Anton:
10-May-2007
Either way, the Parisian landscape is deadly..
Group: DevCon2008 (post-chatter) ... DevCon2008 [web-public]
BrianH:
17-Dec-2008
Either Chrome doesn't work or it is no longer broadcasting. It's 
possible I just missed it.
BrianH:
17-Dec-2008
I mean the Viewer doesn't work either.
BrianH:
17-Dec-2008
Were you using the Presenter Chat interface for your broadcast, or 
the rooms interface? For that matter, do either of you use a laptop?
Group: reblets ... working reblets (50-100 lines or less) [web-public]
Maxim:
19-Mar-2009
rebol [
	title: "explore.r"
	version 1.0
	date: 2009-03-19
	author: "Maxim Olivier-Adlhoch"
	copyright: "2009(c)Maxim Olivier-Adlhoch"
	tested: "win xp"

 notes: "Add any dir to the dirs block.  options are self explanatory"
]

dirs: [
	%/C/ []
	%"/C/program files/" [expand]
	"%tmp%" [label "temp dir"]
	"" [ label "my documents"]
]

blk: []

explore-dir: func [path expand? /local cmd][

 call/shell rejoin [" explorer " either expand? ["/n,/e,"]["/n,"] 
 path ]
]

ctr: 1
foreach [item opts] dirs [
	ctr: ctr + 1
	expand?: found? find opts 'expand
	label: any [select opts 'label to-local-file item]
	append blk compose/deep [ 
		pad 20 
		(to-set-word setw: rejoin ["dir" ctr]) check (expand?) 
		pad 20 

  btn 200 left (label) [ explore-dir to-local-file item get in (to-word 
  setw) 'data ]
	]
	append blk 'return
]


view layout compose [across vtext right "expand?" vtext "folder" 
 return (blk)]
301 / 2691123[4] 56...2324252627