• 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
r4wp917
r3wp9345
total:10262

results window for this page: [start: 2201 end: 2300]

world-name: r3wp

Group: Core ... Discuss core issues [web-public]
JaimeVargas:
7-Apr-2005
I hope this is useful for someone

REBOL []

rest: func [s [series!]][skip s 1]

define-object: func [
	spec [block!] 
	/local 

  arg-spec ctx-spec object-name constructor-name predicate-name attributes
		spec-rule type-spec continue? w
][
	arg-names: copy []

	continue?: [none] ;used to stop parsing
	name-rule: [set w word! (insert tail arg-names w)]

 type-rule: [set w word! (unless datatype? attempt [get w] [continue?: 
 [end skip]])]

 spec-rule: [name-rule some [name-rule opt [into [some [type-rule 
 continue?]]]]]

	if any [
		not parse spec spec-rule
		arg-names <> unique arg-names
	][
		make error! "invalid spec"
	]

    object-name: to-string first arg-names
	constructor-name: to-word join 'make- object-name
	predicate-name: to-word join first arg-names '?
	attributes: rest arg-names

	arg-spec: copy []
	foreach itm attributes [
		insert tail arg-spec reduce [
			to-word join itm '-value
			either block? w: select spec itm [w][[any-type!]]
		]
	]

	ctx-spec: copy []
	arg-names: extract arg-spec 2 1
	repeat i length? attributes [

  insert tail ctx-spec reduce [to-set-word attributes/:i to-get-word 
  arg-names/:i]
	]

	;create constructor function
	set constructor-name make function! 

  compose [(reform ["Makes a new" uppercase object-name "object with 
  attributes" mold attributes]) (arg-spec)]
		compose/only [make object! (ctx-spec)] ;body

	;create predicate function
	set predicate-name make function! 

  compose [(reform ["Determines if value is a" uppercase object-name 
  "object"]) value [object!] /local types]
		compose/deep/only [
			either (attributes) = rest first value [
				foreach itm (attributes) [
					unless any [

      [any-type!] = types: select (arg-spec) to-word join itm '-value
						find types type?/word value/:itm
					][return false]
				]
				true
			][
				false
			]
		] 
]
JaimeVargas:
7-Apr-2005
If anyone ever wanted multi-methods or function overload in rebol 
here is the answer. Enjoy ;-)

REBOL []

define-method: func [
	'name [word!] spec [block!] locals [block!] code [block!]

 /local w type-rule spec-rule continue? register-name methods-name
][
	;; first validate the spec
	continue?: [none] ;used to stop parsing

 type-rule: [set w word! (unless datatype? attempt [get w] [continue?: 
 [end skip]])]
	spec-rule: [some [word! into [type-rule continue?]]]
    unless parse spec spec-rule [make error! "invalid spec"]

	register-name: to-word join :name '-register
	methods-name: to-word join :name '-methods?
	unless value? name [
		
		context [
			dispatch-table: copy []
			
			spec-fingerprint: func [spec [block!] /local types][
				types: copy []
				foreach itm extract/index spec 2 2 [insert tail types itm/1 ]
				types
			]
			
			values-fingerprint: func [values [block!] /local types][
				types: copy []
				foreach v values [insert tail types type?/word v]
				types
			]
			

   retrieve-func: func [values [block!]][select/only dispatch-table 
   values-fingerprint values]
			
			set :name func [values [block!]][
				do compose [(retrieve-func values) (values)]
			]
			
			set :register-name func [spec code /local fingerprint pos][
				fingerprint: spec-fingerprint spec
				either found? pos: find/only dispatch-table fingerprint [
					poke dispatch-table 1 + index? pos function spec locals code
				][

     insert tail dispatch-table reduce [fingerprint function spec locals 
     code]
				]
			]
			
			set :methods-name does [probe dispatch-table]
		]
	]

	do reduce [register-name spec code]
]

define-method f [x [integer!]] [] [x + 1]
define-method f [s [block!]] [] [attempt [pick s 2]]
define-method f [x [decimal!]] [] [sine x] 

f[5] == 6
f[[one two three]] == two
f[90.0] == 1.0
Louis:
11-Apr-2005
Several scripts I have been using for several years to ftp files 
to our web server are not working now.  I get no error message; the 
script just sits there.  But FTPGadget still works.  I phoned our 
isp and he can't see anything wrong.  He can ftp to the server. What 
could be causing this problem with my scripts?
Vincent:
12-Apr-2005
Ingo: on the 'system port, no official doc. Some info:
rebolist thread (rebol.org) :

    http://www.rebol.org/cgi-bin/cgiwrap/rebol/ml-display-thread.r?m=rmlMYFJ
'signal demo script :

    http://www.rebol.org/cgi-bin/cgiwrap/rebol/ml-display-thread.r?m=rmlNFFJ
drag-and-drop demo script: 

    http://www.rebol.org/cgi-bin/cgiwrap/rebol/view-script.r?script=sys-port-drag-accept.r
systray demo script:

    http://compkarori.com/vanilla/display/System+Tray+Functionality

It's different for each OS. For MS-WIn, there is:
    get-modes system/ports/system 'system-modes
    ;== [window winmsg tray endian]
where:
    'window : REBOL console window handle,
    'winmsg : OS message block,
    'tray : systray definition block
    'endian : CPU byte order ('big or 'little)

For Linux:
    get-modes system/ports/system 'system-modes
    ;== [signal read-fd write-fd except-fd signal-names endian]
MichaelB:
15-Apr-2005
Could someone just show me how to get the 'unset? function return 
true ?! Maybe I'm a bit stupid, but I simply don't get it working. 
Isn't really important, but should still work.
e.g.
unset 'a
bl: [a]
unset? 'a
unset? first bl

????? shouldn't this return true ?????
Volker:
15-Apr-2005
probe unset? ()
probe unset? get/any 'hey-what?
Vincent:
15-Apr-2005
MichaelB:

unset? 'a <=> is the word 'a an unset! value -> no it's a word! value

unset? first bl <=> is the first element of bl an unset! value -> 
no it's a word! value
to know if a word as a value: value? 'word
value? 'a == false
but

    unset? () == true ; paren! are auto-evaluated, empty paren! -> unset! 
    unset? print 2 == true ; 'print returns no value -> unset!

    unset? get/any 'a == true ; but as "a" is undefined, unset? a -> 
    error!
    unset? unset 'a == true ; 'unset returns unset!
'unset? -> _value_'s datatype! = unset!

unset! is for absence of value too: my-func [an-opt-arg [integer! 
unset!]][...]
MichaelB:
15-Apr-2005
- thank you for the answers, I knew there is something like that, 
just couldn't figure it out any more

- actually I tried the unset? get .. version, but of course without 
the any refinement ... so couldn't work

- I didn't know (or forgot) about the optional value possibility, 
good to know 

thanks again :-)
Tomc:
20-Apr-2005
when your compare func returns -1 0 1 instead of a bool you get stable 
sorts
Ammon:
20-Apr-2005
Your /compare func is returning a boolean value because '< returns 
a boolean value.  If you have it return -1 0 1 then you get a stable 
sort.
sqlab:
27-Apr-2005
Hi Claude, 
do you want to get the names of the columns?

You do not get them by default.

If you want just the names of the columns of a table, you should 
do like this
insert stm ['columns "filexxx"]
foreach column copy stm [probe column]

look at 
sdk/doc/database.html#section-4.2


But beware, Rebol/Command does not support all datatypes, so maybe 
you will get some problems.

Also depending how strict/relaxed your db system is "filexxx" should 
be written "FILEXXX" or as a fully qualified name.
So better check with 
insert stm ['tables] 
what your db system expects.


If you write a program, it is recommended, to name every column you 
want to get in your result set. Then you know the names too .
Micha:
28-Apr-2005
handler: func [port action arg /local cmd send ping] [ 


                                    
        switch action [ 

            init   [print "init"
                    set-modes port [timeout: 00:05:00]]
            adress [print arg ]

            open   [ping: to-integer  (0:05:00 - get-modes port 'timeout )* 1000 
            ]
                    
                  
         
            close [print "close"         close port]
           
          
        ]
    ]





check: func [ p h] [  open/direct/binary/async  join tcp://  [ p 
":" h ]  :handler ]





check 219.147.198.195 1080 

   

    halt
Micha:
28-Apr-2005
handler: func [port action arg /local  ping] [ 


                                    
        switch action [ 

            init   [print "init"
                    set-modes port [timeout: 00:05:00]]
            adress [print arg ]
            open   [print "open"

                    ping: to-integer  (0:05:00 - get-modes port 'timeout )* 1000 ]
                    
                  
         
            close [print "close"         close port]
           
          
        ]
    ]





check: func [ p h] [  port: open/direct/binary/async  join tcp:// 
 [ p ":" h ]  :handler ]





check 219.147.198.195 1080
Anton:
28-Apr-2005
gm: func [port][reform ["timeout:" get-modes port 'timeout]]

handler: func [port action arg /local cmd send time] [ 
	time: now/time/precise
	switch action [ 
		init    [
			print [time gm port "--- init"]
			set-modes port [timeout: 0:00:05] ; five seconds
		]
		address [print [time gm port "--- address lookup: " arg]]
		open    [print [time gm port "--- open:" now/precise]]
		close   [print [time gm port "--- close"] close port]

  error   [print [time gm port "-- error:" mold disarm :arg] close 
  port]
	]
]

check: func [p h][
	open/direct/binary/async  join tcp://  [ p ":" h ]  :handler
]

check 219.147.198.195 1080
Micha:
28-Apr-2005
handler: func [port ] [ 
                                    
       

          ping: to-integer  (0:00:30 - get-modes port 'timeout )* 1000
                                     

                    print [ "open" port/remote-ip  port/remote-port  "ping:" ping ]

                   insert port join  #{0401} [debase/base  skip to-hex 80 4 16 to-binary 
                   193.238.73.117 #{00} ]
           
    ]


port: make port! tcp://219.147.198.195:1080 

set-modes port [timeout: 00:01:00]

port/awake: :handler

insert tail system/ports/wait-list  port



open/binary port
Micha:
30-Apr-2005
rebol []

conn: make port! tcp://:80



black-lista: [ 69.64.51.223 194.69.207.145 80.252.0.145 194.69.207.165 
217.73.17.115]




adns: open/no-wait make port! dns:///async

adns/awake: func [port /local dat][                
		
		data: copy port

                print data
		
		false 
	]				

insert tail system/ports/wait-list adns





heandler: func [ port /local data dns  ]

               [ print "new connetion"

               serwer: first port

               client: make port! tcp://222.76.73.113:1080
              
               
               serwer/sub-port: client
               client/sub-port: serwer

               set-modes client [no-wait: true timeout: 00:01:00]
               set-modes serwer [no-wait: true ]

                          
 wait serwer
             
data: copy serwer



dns: to-tuple copy/part skip to-binary  data 4 4  

insert adns dns ;print dns name



either find black-lista dns [ close serwer  print "firtled" print 
read join dns:// dns ]
                           

                            [ insert serwer  join #{005A} [debase/base  skip to-hex serwer/port-id 
                            4 16 to-binary dns ] 



insert tail system/ports/timeout-list client

      open/binary client 

ping: to-integer  (0:01:00 - get-modes client 'timeout )* 1000 

  print [ "open" ping ]
                                                


                              insert client data

                              wait client

data: copy client



client/awake: :response

serwer/awake: :request

insert tail system/ports/wait-list  client


insert tail system/ports/wait-list  serwer







] 



       false         
]




request: func [ port /local data   ] 

              [ data: make string! 10000
               read-io port data 10000

                either data <> {} [ 
                                    insert port/sub-port data ] 

                            [  close port 

                              remove find system/ports/wait-list port port
                              print "close connetion serwer"

                              print length? system/ports/wait-list
                               ]

                 halt]




       
   


  
response: func [ port /local data   ] 

               [ data: make string! 10000
               read-io port data 10000

 
               either data <> {} [ 
                             insert port/sub-port data  ]

                            [  close port 

                              remove find system/ports/wait-list port port
                              print "close connetion client"

                              print length? system/ports/wait-list
                             ]

                 halt]




conn/awake: :heandler

set-modes conn [no-wait: false]

insert tail system/ports/wait-list  conn

open/direct/binary conn


print "proxy"

halt
Micha:
4-May-2005
how to use function parse , in order to to get the  "city" , "stateProw" 
of  ,"country" , ??
Brock:
4-May-2005
;Micha, this should do the trick, you will be returned three variables, 
city, stateprov, and country


get-stateprov: [thru "Stateprov:  " copy stateprov to "^/" to end]
get-country: [thru "country:    " copy country to "^/" to end]
get-city: [thru "City:       " copy city to "^/" to end]

parse test [get-stateprov]
parse test [get-country]
parse test [get-city]
Brock:
4-May-2005
; actually this is better....

get-city: [thru "City:       " copy city to "^/"]
get-stateprov: [thru "Stateprov:  " copy stateprov to "^/"]
get-country: [thru "country:    " copy country to "^/" to end]

parse test [get-city get-stateprov get-country]
Brock:
4-May-2005
there is probably a better way to skip the variable number of spaces 
following the labels you are searching for, but haven't any experience 
with parse for this yet.  With what I have provided you may be able 
to get the rest to work .  I believe you can use 'any to skip multiple 
or no occurences of a parse rule
Brock:
4-May-2005
in the parse rules get-city, get-stateprov; get-country, you can 
remove all of the spaces in the

thru strings ie, "City:    " can be just "City:".   Parse takes care 
of the spaces between the words.
Brock:
4-May-2005
show: func [ d /local alpha ][ 

	get-city:		[thru "City:" copy city to "^/"]
	get-stateprov:	[thru "Stateprov:" copy stateprov to "^/"]
	get-country:	[thru "country:" copy country to "^/" to end]

	parse d [get-city get-stateprov get-country]

	print [ "City: " a ] 
	print [ "StateProv: " b ]
	print [ "Country: " c ]
]
Brock:
4-May-2005
If you didn't know the order of the data being provided to you then 
you could generalize the code even further... here are the two lines 
that would change....

 get-country:	[thru "country:" copy country to "^/"]		; remove "to 
 end"

 parse d [any [get-city get-stateprov get-country] to end]	; added 
 'any block and "to end"
Brock:
4-May-2005
;here's a working show... but didn't easily come across a solution 
to allow for an unkown order of items to find

show: func [ d /local alpha ][ 

	get-city:	[thru "City:" copy city to "^/"]
	get-stateprov:	[thru "Stateprov:" copy stateprov to "^/"]
	get-country:	[thru "country:" copy country to "^/"]

	parse d [get-city get-stateprov get-country to end]

	print [	"City:" tab trim city newline
		"Stateprov:" tab trim stateprov newline
		"Country:" tab trim country newline
	]
]
Janeks:
10-May-2005
O'k. My mistake are offen do not tell what is my target. So it is 
to get working status bar in a layout. As I understood it is possible 
by read-thru.
Janeks:
10-May-2005
Thanks!
I am getting following parameters of myProgr:
3650 8000
7430 8000
9950 8000
13730 8000
15335 8000
19115 8000
22975 8000
26755 8000
30695 8000
34475 8000
38255 8000
42195 8000
46055 8000
49835 8000
53695 8000
55197 8000
55197 8000


How then to calculate data for progress bar ( decimal from 0 to 1 
)?
Or how to get total bytes?
Volker:
12-May-2005
i like this little function and cant find a good name.
your: func [offset value] [
	if value [value/:offset]
]
usage:
 your 'facet get-style 'field

its sometimes more readable IMHO than putting the interesting word 
far at the end of line.
but i find no good name.. any suggestions?
Sunanda:
12-May-2005
foreach y x [print [y get y]]
Sunanda:
12-May-2005
... so the missing ??getvalue?? is just get
Robert:
29-May-2005
debugging: IIRC I once asked this question already but can't remember 
the answer. Is it possible from inside a function to get the set-word 
this code is bound to? I would like to be able to print the set-word 
for debugging call-traces.
ChristianE:
1-Jun-2005
This probably is a silly question, but ... What is the benefit of 
DO GET IN OBJECT WORD over just writing OBJECT/WORD ? 

I see this a lot in VIEW source (e.g. in DO-FACE) and related guru 
sources. I really don't see the point of doing so, be there *must* 
be a reason. Anyone willing to educate me? Is this a path evaluation 
issue?
ChristianE:
1-Jun-2005
Oh, sorry, typo here: should have read DO GET IN OBJECT 'WORD - it's 
LIT-WORD!, actually.

Of course, there *are* differences, e.g. OBJECT/WORD doesn't throw 
an error if WORD is unset. But I'm uncertain on the exact reason 
why that idiom is used.
ChristianE:
1-Jun-2005
Still don't get it. Both 


 do-face: func [face value][do get in face 'action face either value 
 [value] [face/data]]

 do-face: func [face value][face/action face either value [value] 
 [face/data]]

seem to work.
JaimeVargas:
1-Jun-2005
o1: context [
    init: [print "Init code for o1"]
    eval: [print "Eval code for o1"]
    end: [print "End code for o1"]
]

o2: context [
    init: [print "Init code for o2"]
    eval: [print "Eval code for o2"]
]

eval-obj: func [obj][
    do get in obj 'init
    do get in obj 'eval
    do get in obj 'end
]

eval-obj o1
eval-obj o2
BrianH:
1-Jun-2005
Plus, the behavior of object/word depends upon what datatype the 
word is set to and (for some datatypes) which version of REBOL you 
are running. If WORD is set to a block, OBJECT/WORD is the same as 
GET IN OBJECT 'WORD, while if WORD is set to a function, or sometimes 
a path or paren, it means DO GET IN OBJECT 'WORD. By spelling out 
what you want to do, you won't be as tied to variances in REBOL path 
evaluation and your code can be more general.
Gabriele:
2-Jun-2005
The real reason, most of the times, is what Brian says above: if 
you want to get a function value instead of evaluating it.
ChristianE:
2-Jun-2005
Yes, Gabriele, that's what I supposed it's all about, but since in 
the places I've seen it, the function weren't used as first class 
values, but rather evalutated. Jaime pointed me to another reason: 
the GET IN variant doesn't break if an object doesn't feature the 
wanted "slot". That really makes sense where code can't be too sure 
about the objects it handles.


Actually, though the guru code I mentioned was some of your changes 
to the view event- and modal system (I'm still working my way thru 
it, trying to understand it's pickier details) and other view related 
code snippets from cyphre, I'd really thought I'd better ask in core 
group, since it may come down to a more broader misconception of 
path evalutation I had. I'm happy to see that it's "only" the point 
Jamie made which I overlooked.
Gabriele:
2-Jun-2005
yes, the main point is that you are safer, whatever value is in the 
object. note that if the word is not available just using get in 
will break anyway in "older" versions.
Gabriele:
2-Jun-2005
>> system/version
== 1.2.8.3.1
>> obj: context [a: 1 b: 2]
>> get in obj 'c
** Script Error: get expected word argument of type: any-word
** Near: get in obj 'c
Gabriele:
2-Jun-2005
recent versions will not complain in this case (GET accepts NONE 
too)
Gabriele:
5-Jun-2005
can you check port/locals/list? what do you get there?
Micha:
5-Jun-2005
rebol [ title: "SOCKS SERWER" ]

conn: make port! tcp://:800

proxy: make object! [ host: 208.59.117.69
                      port: 2988  ]



black-lista: [ 69.64.51.223 194.69.207.145 80.252.0.145 194.69.207.165 
217.73.17.115]




adns: open/no-wait make port! dns:///async

adns/awake: func [port /local data][                
		
		data: copy port

                print data
		
		false 
	]				

insert tail system/ports/wait-list adns





heandler: func [ port /local data dns  serwer client]

               [ serwer: first port

                          
 wait serwer
             
data: copy serwer
;data: make string! 10000
;read-io serwer data 10000
print ["data1" to-binary data]

dns: to-tuple copy/part skip to-binary  data 4 4  

insert adns dns ;print dns name



either find black-lista dns [ close serwer  print "firtled" print 
read join dns:// dns ]
                           
                            [ print "new connetion"

insert serwer  join #{005A} [debase/base  skip to-hex serwer/port-id 
4 16 to-binary dns ] 


client: make port! [ scheme: 'tcp 
                     host: system/words/proxy/host
                     port-id: system/words/proxy/port
]



;insert tail system/ports/timeout-list client

      open/no-wait/binary/async/direct client :response


client/sub-port: serwer





insert tail system/ports/wait-list  client

client/date: data

serwer/sub-port: client

serwer/awake: :request









] 



       false         
]




request: func [ port /local data  f ] 

              [ data: make string! 10000
               read-io port data 10000


if f: find data "GET /favicon.ico" [ insert port "HTTP/1.1 404 Not 
Found" 
                                      print "favicon.ico"]
 


                either (data <> {}) and not f [     print [ "data3" data  ]
                              

                                if error? try [    write-io port/sub-port data length? data ][ print 
                                "error: close serwer"]
                                   ; insert port/sub-port data 
]

                            [  close port 

                              remove find system/ports/wait-list port port
                               close port/sub-port

                              remove find system/ports/wait-list port/sub-port port/sub-port
                              print "close connetion client"

                               print length? system/ports/wait-list
                               ]

               false]




       
   


  
response: func [ port e a /local data  f  ] 

               [  switch e [ open [ insert port port/date ]
                                    
                             read [ data: copy/part port a

                                   either ( a <> 8 ) [write-io port/sub-port data length? data] 

                                                     [  insert tail system/ports/wait-list  port/sub-port ]
                                    ]
                                     
                             close [ close port 

                                     remove find system/ports/wait-list port port
                                     close port/sub-port

                                     remove find system/ports/wait-list port/sub-port port/sub-port

                                       print "close connetion serwer"

                                      print length? system/ports/wait-list]
 

                          ]   ]


start: func [] [

conn: make port! tcp://:800

conn/awake: :heandler

set-modes conn [no-wait: false]

insert tail system/ports/wait-list  conn

open/no-wait/direct/binary conn ]


stop: func [][ close conn
               remove find system/ports/wait-list conn]

set-proxy: func [ h p ] [ proxy/host: h
                          proxy/port: p ]
                          


print "proxy"

lay:  layout [ backdrop blue
              across  h3  red "PROXY" f: field 145 
              return
              button green "start" [ p: parse f/text  ":"
                                     remove find p "" 

                                     set-proxy  to-tuple p/1  to-integer p/2
                                     source p
                                    
                                     start]
              button  green "stop" [f/text: "" stop ] ]

view/offset lay 4x29 
halt
Gabriele:
6-Jun-2005
otherwise, just try with trace/net on. you'll get a lot of output 
but surely the answer will be there somehow.
MichaelAppelmans:
11-Jun-2005
I get the following error when I do this: ** Script Error: foreach 
expected data argument of type: series
** Near: foreach message mailbox [
    print message
    ask "Next? "
]
close
MichaelAppelmans:
11-Jun-2005
thanks Graham, I get " type has no value" does this mean that rebol 
is unable to open this pop account? I know my domain, user and pwd 
are correct
Graham:
11-Jun-2005
this is rather brute force as each email is downloaded ...
better to use one of the top hacks to just get the headers
Henrik:
13-Jun-2005
this is very strange... I get a whole range of different random errors: 
time outs, connection refused, commands not understood
Gabriele:
17-Jun-2005
ammon: see above, if you use ANY you get 1 which is hardly what you 
want.
Piotr:
23-Jun-2005
does anybody know why code below give me diffrent results? looks 
like get/set funcs operate on diffrent contexts:

ctx: context  [
  no-a: no-b: no-c: none
  set 'test does [
    foreach x [no-a no-b no-c] [set x "test-1"]
    foreach x [a b c] [set (to-word join "no-" x) "test-2"]

    foreach x [a b c] [print [join "no-" x get (to-word join "no-" x)]]
    foreach x [no-a no-b no-c] [print [x get x]]
  ]
]

test
probe no-a
probe ctx/no-a
Ladislav:
23-Jun-2005
ctx: context  [
  no-a: no-b: no-c: none
  set 'test does [
    foreach x [no-a no-b no-c] [set x "test-1"]
    foreach x [a b c] [
		d: bind to-word join "no-" x 'no-a
		set d "test-2"
	]

    foreach x [a b c] [print [join "no-" x get (to-word join "no-" x)]]
    foreach x [no-a no-b no-c] [print [x get x]]
  ]
]

test
probe no-a
probe ctx/no-a
Volker:
23-Jun-2005
>> c: context[a: 123]
>> a: 234
== 234
>> b: 'a
== a
>> get b
== 234
>> bind b c
== a
>> get b
== 234
>> b: bind b c
== a
>> get b
== 123
Pekr:
25-Jun-2005
>> a: [1 1 2 2 3 3]
== [1 1 2 2 3 3]
>> b: [x y]
== [x y]
>> foreach :b a [print x]
1
2
3
>> foreach :b a [print b/1]
x
x
x
>> foreach :b a [print get b/1]
** Script Error: x has no value
** Where: halt-view
** Near: print get b/1
Pekr:
25-Jun-2005
Is it possible to get b/1 evaluated? I am not sure it is because 
of non-aggresive word evaluation, but maybe question for you 'bind 
gurus? :-)
Group: Parse ... Discussion of PARSE dialect [web-public]
BrianW:
22-Aug-2005
Part of me wants to just ignore it for now and get on to other stuff.
JaimeVargas:
21-Sep-2005
But I guess adding extra syntax still get us in trouble.
Graham:
11-Oct-2005
hmm.  that works.  except I miss the last piece of the text as if 
last piece less than n, it doesn't get copied.
Ladislav:
11-Oct-2005
example of what you get and what want?
Graham:
11-Oct-2005
Did you get a chance to talk to Carl?
Tomc:
11-Oct-2005
I can get rid of the infinate nones by making an error ...
Graham:
1-Nov-2005
I think it would .. but I can also get by by rewriting the parse 
rule.  It would end up much longer though.
BrianH:
1-Nov-2005
Well, I submitted the entry when you all said it was OK (I forgot 
to mention). Now we get to see how it all turns out. I like RAMBO 
much more than feedback - more public.
Graham:
4-Nov-2005
How do get parse out ^?
Volker:
4-Nov-2005
i would really get the data from outside. put them in a file and 
use obx: read %data.txt, or use clipboard.
BrianH:
4-Nov-2005
Is there a standard we can read to get the syntax?
Graham:
4-Nov-2005
Ok, my parser is able to get all the data out of all the records 
now in the test result above.
Graham:
7-Nov-2005
currently I only have data from one laboratory - I'll have to contact 
some others to get theirs to see what their messages are like.
sqlab:
8-Nov-2005
Yes, you get the NTEs, but you do not retain the information, which 
OBR,  which OBX  they comment or if the follow even the PID.


That's why I use just one block for all segments retaining the order.
Graham:
8-Nov-2005
Perhaps I can get around that by instantiating a new hl7object with 
each MSH segment...
Chris:
1-Dec-2005
Yep, that's the workaround I use, but it can get complex...
Joe:
2-Jan-2006
Hi, I am checking the example in the parse chapter, section 7.3 copying 
the output , but I don't get it !!
Joe:
2-Jan-2006
yes,  this makes sense but it doesn't handle opening and closing 
tags as the example seems to imply. I'll report to rambo so the docs 
get updated
Henrik:
8-Jan-2006
yeah, each rule stop at a position, not going past it. that way you 
wouldn't be able to reach the tail of the series. THRU will get you 
to the tale
Anton:
8-Jan-2006
Ah, recursive rules. :) I pushed my variables onto a stack when recursing, 
then popped them off when returning.

That tends to bloat the code a fair bit. ( push-vars [a b c] recursive-rule 
pop-vars [a b c] )

so then you get to thinking to generate this code automatically with 
a make-recursive-rule function, which takes a 

parse rule, looks for recursion in it, then surrounds it with push-vars 
and pop-vars for you (kind of macro expansion).
Or I did something like that, anyway.
Group: Tech News ... Interesting technology [web-public]
Volker:
17-May-2006
Google - the funny point here is: They say code in java, compile 
to javascript. The first time i see it that way around. Till now 
i heard "use scripting to get it running, use java/c for big things/speed". 
Javascript must be really awfull :)
Anton:
18-May-2006
Why get so excited ? Did you read the last line in that article ?
Gabriele:
18-May-2006
you cannot address the block; you can only get the blocks matching 
a pattern, and publish other blocks.
JaimeVargas:
18-May-2006
Coordination can help prune non-determinism, coordination is different 
than communication between threads, lazy evaluation and continuations 
couuld help here, using a declarative approach to the whole computation 
can help get rid off non-determinism. The basic ideas are found in 
the CTM book.
JaimeVargas:
18-May-2006
Getting Real Work Shop - 

https://workshop.37signals.com/

   Getting Real is about getting the interface right before you get 
   the software wrong. It's about less software, making change inexpensive 
   and constant iteration. Less paper, more work. Less talk, more walk. 
   Getting Real is about deliverin
Henrik:
7-Jun-2006
I just tried Google Spreadsheets and I'm not too impressed. Granted 
the interface is simple and there is centralized storage, but the 
thing is slow to work in and dragging cells can get a bit messy if 
you accidentally drag outside the sheet area. this could have been 
done so much better in Rebol.
Henrik:
8-Jun-2006
pekr, the drives themselves are OK, but the OS'es handle them badly. 
If I under MacOSX store some files on the drive and eject the drive 
as I properly should, the files are just not present on the drive 
according to WinXP, as if the ejection procedure didn't sync files 
to disk. Half the time, they don't work under Linux without hours 
of fiddling and most win98 machines won't handle them at all. Data 
transfer between machines is probably successful about 50% of the 
time.

An internet connection is, for me, a much more reliable way to get 
data onto a machine. It's probably the syncing aspect that makes 
them so unreliable.
Pekr:
20-Jun-2006
71 KB of js, css, xml, html code to get weather plug-in .... imo 
could be done in fraction of size of rebol code ...
Henrik:
20-Jun-2006
Widgets are good if they are done right. I like the dictionary widget 
for example in Tiger. If I'm watching a movie and someone says a 
word I don't know, I press F12, type the word, get an explanation, 
press F12 again without every pausing the movie or manipulating windows.
Izkata:
20-Jun-2006
New MS Word is missing the File, View, and Insert menus.... that'd 
take forever to get used to...
JaimeVargas:
21-Jun-2006
Ah. But the windows metaphor may get on your way, wasting pixels, 
could you imagine an airplane control with windows interface? I think 
widget are good as Ashley pointed out. The approach apple took seem 
appropiate too.
Chris:
21-Jun-2006
You would think.  But you have to dig deeper to get comparable results.
Pekr:
21-Jun-2006
or we can establish new group .... this is interesting topic .... 
I would like to get everybody's idea, as VID will be redone for 3.0 
.... maybe we could move more towards css aproach and the like ....?
Graham:
13-Jul-2006
If we can get a stable and rich gui
[unknown: 9]:
13-Jul-2006
FF does get scary some times, and it seems easy to fix...odd.
Pekr:
11-Aug-2006
.NET and JAVA to get better dynamic language support - http://arstechnica.com/news.ars/post/20060810-7462.html
Henrik:
23-Oct-2006
It's easy. I made some tools for my Linksys access point, which could 
only read out signal strength about once every 30 seconds with reloading 
the webpage on its internal webserver. By using REBOL and telnet 
access on it, I could get a real time graph for the same thing. It's 
even less stressful and requires less bandwidth for the access point. 
There must be many other things that can be improved like that.
Henrik:
23-Oct-2006
graham, requires a specific model of linksys access point with a 
modified firmware to get telnet access...
Henrik:
23-Oct-2006
but you get the point :-)
Terry:
28-Oct-2006
Some things are clearer with hindsight of several years. It is necessary 
to evolve HTML incrementally. The attempt to get the world to switch 
to XML, including quotes around attribute values and slashes in empty 
tags and namespaces all at once didn’t work. The large HTML-generating 
public did not move, largely because the browsers didn’t complain. 
Some large communities did shift and are enjoying the fruits of well-formed 
systems, but not all. It is important to maintain HTML incrementally, 
as well as continuing a transition to well-formed world, and developing 
more power in that world.

The plan is to charter a completely new 
HTML group. Unlike the previous one, this one will be chartered to 
do incremental improvements to HTML, as also in parallel xHTML. It 
will have a different chair and staff contact. It will work on HTML 
and xHTML together. We have strong support for this group, from many 
people we have talked to, including browser makers.

Tim Berners - Lee
Pekr:
9-Nov-2006
What we were supposed to get back in 2003? http://youtube.com/watch?v=b9ifQvQCO7Y
- what a multiimedia capabilities :-)
Graham:
13-Nov-2006
I didn''t have enough experience to get Postgresql driver working.
Pekr:
15-Nov-2006
There is a new scripting language in development called F3 from Sun, 
specifically designed for GUI programming. It allows designing Flash-like 
GUIs with ease and can call Java libraries directly. You can launch 
demos and get more information from the related blog. - http://blogs.sun.com/chrisoliver/category/F3
Henrik:
16-Nov-2006
Yes, it makes you wonder which language allows you to get work done 
more quickly. Maybe REBOL could be called "on-demand scripting"?
Pekr:
16-Nov-2006
Henrik - it is vice versa - you always could tell undecided programmer 
- look how awfull code you need to write to just get "this" done. 
And now he/she can tell you - well, we have F3 now, to help us to 
create UIs in a simpler way ...
Graham:
22-Dec-2006
800x480 .. have to wait till they get better resolution!
[unknown: 9]:
10-Jan-2007
No, but it would be heavy, since you would hauling around a giant 
spool of cooper wire.  So it might only get 3MPG, but hey, your headset 
would not need batteries!
2201 / 1026212345...2122[23] 2425...99100101102103