• 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
r4wp158
r3wp1415
total:1573

results window for this page: [start: 101 end: 200]

world-name: r4wp

Group: #Red ... Red language group [web-public]
Andreas:
3-Jan-2013
I think Kaj rather meant the name "issue", not the syntactical form 
(#...).
PeterWood:
4-Jan-2013
Yes. The data is stored in REBOL blocks. The "key" for each block 
is an issue value typically of the form #999999999 (though the length 
may vary).
PeterWood:
4-Jan-2013
One reason it would be bad to adopt a different literal form for 
the issue! datatype from REBOL (whether any-word! or any-string!) 
is that it would make it more difficult to exchange data between 
REBOL and Red.
DocKimbel:
5-Jan-2013
Peter: I agree partially with your last argument: it wouldn't change 
anything about data exchanging with REBOL (as the literal #... form 
exists in both languages), but it would make some code testing for 
issue! (vs keyword!) incompatible between them.


The point in making issue! work as a word is fast comparison wherever 
it been used as a keyword or an ID (usually used for lookups). It 
is not a trivial performance difference, it is between one and two 
orders of magnitude faster with words than with strings.
Kaj:
5-Jan-2013
Peter, no, I did not mean to use FUNC. I like to standardise on the 
full, comfortable form. In a compiler, the overhead is no problem
DocKimbel:
6-Jan-2013
I agree with Andreas, the change to issue-as-word (== keyword) has 
been motivated mainly but preproc directives, so, we certainly don't 
want to change their syntax, there is no problem there to fix.


My question was about adding or not an issue-as-string datatype and 
what literal form would it then have.
DocKimbel:
9-Jan-2013
About reflection, will there be a compile option to turn it off, 
for commercial code that should stay closed?


What I planned so far is a compile option to switch between different 
modes of bundling the functions/routines source code into the final 
executable. Main options are: 

- in form of native "build instructions" (the current behavior)
- in form of compressed text


The latter option will generate smaller executables, but will be 
slow down boot time a little, as it will require the interpreter 
to process it. The former option provides a high level of obfuscation, 
that requires a lot of work to decompile (cracking REBOL's SDK protection 
is probably an easier job).
Kaj:
9-Jan-2013
Hm, I guess interpreted functions make it hard to leave out the source 
in some form. That would be another argument for being able to designate 
it per function
DocKimbel:
9-Jan-2013
So the "interpreted functions" do not exists at compile-time nor 
in the executable in source form, as their are created at runtime.
DocKimbel:
14-Jan-2013
Gregg: so far, I also think #3 is the best as it is the most compact 
form (when defining a lot of constants, all can fit in one PROTECT 
block). I would probably use set-words instead of words though.
Bo:
2-Mar-2013
Sometimes, I'm such a dunce!  Something Kaj said in the past hit 
me as I lay awake in bed at 4:45am this morning.  IIRC, he said that 
Red/System could be used to extend R3.  My problem is that I need 
to perform some advanced processing on jpg images.  I wanted to do 
this natively in Red/System, but had issues getting the jpgs loaded 
into bitmap form.  R3 can already load jpgs into bitmap form, so 
why not  call a Red/System compiled executable to do the processing?
DocKimbel:
9-Mar-2013
red>> a: %dev
== %dev
red>> type? a
== file!
red>> length? a
== 3
red>> append a %/red/hello.red
== %dev/red/hello.red
red>> length? a
== 17
red>> find a slash
== %/red/hello.red
red>> index? find a slash
== 4
red>> form a
== "dev/red/hello.red"
red>> mold a
== "%dev/red/hello.red"
red>> a/1
== #"d"
red>> last a
== #"d"
red>> a/5: #"R"
== #"R"
red>> a
== %dev/Red/hello.red
Gregg:
26-Mar-2013
For FORM I have:
	"Returns a string representation of a value."
and for MOLD:
	"Returns a loadable string representation of a value."
DocKimbel:
26-Mar-2013
FORM is used to create a human-friendly format. The description should 
hint for that.
Gregg:
26-Mar-2013
FORM:  "Returns a user-friendly string representation of a value."
Gregg:
26-Mar-2013
OR

FORM:  "Returns a value as a user-friendly string."
DocKimbel:
4-Apr-2013
(implicit FORM applied to arguments not directly compatible)
Pekr:
5-Apr-2013
beware of Ren - new form is appearing ....
Gregg:
12-Apr-2013
; JS-like MAP. The order of args to the function is a bit odd, but 
is set

; up that way because we always want at least the value (if your 
func takes

; only one arg), the next most useful arg is the index, as you may 
display

; progress, and the series is there to give you complete control 
and match

; how JS does it. Now, should the series value be passed as the head 
of the
; series, or the current index, using AT?
map-js: func [

 "Evaluates a function for each value(s) in a series and returns the 
 results."
	series [series!]

 fn [function!] "Function to perform on each value; called with value, 
 index, and series args"
	/only "Insert block types as single values"
	/skip "Treat the series as fixed size records"
		size [integer!]
][
	collect [

  repeat i length? series [   ; use FORSKIP if we want to support /SKIP.
			keep/only fn series/:i :i :series ; :size ?
		]
	]
]
;res: map-js [1 2 3 a b c #d #e #f] :form
;res: map-js [1 2 3 a b c #d #e #f] func [v i] [reduce [i v]]
;res: map-js [1 2 3 a b c #d #e #f] func [v i s] [reduce [i v s]]
;res: map-js "Hello World!" func [v i s] [pick s i]
Gregg:
29-Apr-2013
rejoin: func [

 "Returns a new string (or same series type as block/1) made from 
 reduced values."
	block [block!]
	/local op
][
	either empty? block: reduce block [block] [
		op: either series? first block [:copy] [:form]
		append op first block next block
	]
]
Kaj:
5-May-2013
Yes, but it's important to have them in a more structured form
Arnold:
9-May-2013
Very much so and connecting it to my MySQL database as well! But 
that is not yet possible at this time. I do not see a use for a form 
if I cannot save information from it.

R2 has all these possibilities, on rebol.org are various examples 
of scripts. For Red we might train our patience muscle of finance 
Nenad in the 'right' direction.
Kaj:
15-Jun-2013
It's deceiving to write this in a form that looks like C. The Red 
evaluation rules compute this as
DocKimbel:
27-Jun-2013
I have a Cortex A9 device (USB stick form factor) where the starting 
delay is not noticeable. Anyway, I just need to rearrange the bridge 
low-level code to make it much faster, not a problem.
Bo:
2-Jul-2013
So, I'd have to form the file in Rebol, convert it to binary (in 
Rebol) and remove the CRs from the binary, then use write/binary 
to write it out.
DocKimbel:
17-Jul-2013
I was thinking you would be happy with that move. As the newcomers 
keep showing up on Red, it's time to make it closer to the final 
form.
Kaj:
24-Jul-2013
I published three links in that form in the Announce channel, just 
not of download.r. There are many files, and people are already tired 
of my links
Kaj:
28-Jul-2013
The C library binding has form-hex, or you could use print-form
Arnold:
28-Jul-2013
Ah read documentation again. Constant form, macro substitution. #define 
should be hardcoded, non variable so faster in executing.
Gerard:
28-Jul-2013
;-----------------------------
mystr: "^/"        ; a newline character
print "test-1" probe mystr print length? mystr

mystr: "^(line)"   ; a newline character (alternative)
		     ; last one is converted into "^/"
print "test-2" probe mystr print length? mystr

mystr: "\n"        ; two characters, \ and n
print "test-3" probe mystr print length? mystr

;-----------------------------
mystr: "Jon 'Maddog' Orwant"  ; literal single quote inside 
                              ; double quotes
print "test-4" probe mystr print length? mystr

mystr: {Jon "Maddog" Orwant}  ; literal double quote inside 
                              ; braces (also used for multilines)
print "test-5" probe mystr print length? mystr
;-----------------------------
mystr: {
This is a multiline string literal
enclosed in single braces.
}
print "test-6" probe mystr print length? mystr

mystr: "^(line)"   { a newline character (alternative)
		      the last one is converted into "^/" by Rebol}
print "test-7" probe mystr print length? mystr

;-----------------------------

; There si no way to change the delimiters for strings
; No way either to define strings using "Here Documents" form

;-----------------------------
Group: Announce ... Announcements only - use Ann-reply to chat [web-public]
Kaj:
15-May-2013
I finally got my OpenGL binding for Red/System in a form suitable 
for publishing:

http://red.esperconsultancy.nl/Red-OpenGL/dir?ci=tip


Currently, the only available backend is for PicoGL, which does software 
rendering with the TinyGL library and shows it through SDL.
Group: Ann-Reply ... Reply to Announce group [web-public]
Kaj:
15-May-2013
For the R3 bridge, there's a Red example and a Red/System example 
in source form. No binaries at the moment
Group: Rebol School ... REBOL School [web-public]
Kaj:
10-Oct-2012
#! /usr/bin/env r2
REBOL []

here: what-dir

program: dirize clean-path here/../../../cms/files/program/PowerMezz

do program/mezz/module.r

load-module/from program

module [
	imports: [
		%mezz/trees.r
		%mezz/load-html.r
		%mezz/html-to-text.r
	]
][
;	print mold-tree load-html read http://osslo.nl/leveranciers

	make-dir %data

	for id 1 169 1 [
		print id

  page: load-html read join http://osslo.nl/leveranciers?mod=organization&id=
  id


  content: get-node page/childs/html/childs/body/childs/div/childs/3/childs/2

		body: get-node content/childs/table/childs/tbody
;		print form-html/with body [pretty?: yes]
;		print mold-tree body

;		item: get-node body/childs/10/childs/2
;		print form-html/with item [pretty?: yes]
;		print mold-tree item
;		print mold item

		record: copy ""
		short-name: name: none

		unless get-node body/childs/tr/childs/th [  ; Missing record
			foreach item get-node body/childs [

    switch/default type: trim get-node item/childs/td/childs/text/prop/value 
    [
					"Logo:" [

;						if all [get-node item/childs/2/childs/1  get-node item/childs/2/childs/1/childs/1] 
[
;							repend record

;								['icon tab tab tab tab		get-node item/childs/2/childs/a/childs/img/prop/src 
 newline]
;						]
					]
					"Naam:" [
						if get-node item/childs/2/childs/1 [
							repend record

        ['name tab tab tab tab		name: trim/lines html-to-text get-node item/childs/2/childs/text/prop/value 
         newline]
						]
					]
...					"Adres:" [

      unless empty? trim/lines html-to-text form-html/with get-node item/childs/2 
      [pretty?: yes] [
							street: get-node item/childs/2/childs/1/prop/value
							place: get-node item/childs/2/childs/3/prop/value

							number: next find/last street #" "
							street: trim/lines html-to-text copy/part street number

							unless empty? street [
								repend record ['street tab tab tab tab	street newline]
							]
							unless empty? number [
								repend record ['number tab tab tab tab	number newline]
							]
							unless place/1 = #" " [
								where: find  skip place 5  #" "

        repend record ['postal-code tab tab tab	copy/part place where  newline]

								place: where
							]
							unless empty? place: trim/lines html-to-text place [
								repend record ['place tab tab tab tab 	place newline]
							]
						]
					]
					"Telefoon:" [

      unless #{C2} = to-binary trim/lines html-to-text form-html/with get-node 
      item/childs/2 [pretty?: yes] [
							repend record

        ['phones tab tab tab tab	trim get-node item/childs/2/childs/text/prop/value 
         newline]
						]
					]
					"Website:" [

      if all [get-node item/childs/2/childs/1  get-node item/childs/2/childs/1/childs/1] 
      [
							repend record

        ['websites tab tab tab		trim get-node item/childs/2/childs/a/childs/text/prop/value 
         newline]
						]
					]
					"E-mail:" [

      if all [get-node item/childs/2/childs/1  get-node item/childs/2/childs/1/childs/1] 
      [
							repend record

        ['mail-addresses tab tab	trim/all get-node item/childs/2/childs/a/childs/text/prop/value 
         newline]
						]
					]
					"Profiel:" [

      unless #{C2} = to-binary trim/lines html-to-text form-html/with get-node 
      item/childs/2 [pretty?: yes] [
							repend record [
								'description newline
									tab replace/all

          trim html-to-text form-html/with get-node item/childs/2 [pretty?: 
          yes]
										"^/" "^/^-"
									newline
							]
						]
					]
				][
					print ["Onbekend veld: " type]
				]
			]
			write rejoin [%data/
				replace/all replace/all replace/all any [short-name name]
					#" " #"-"
					#"/" #"-"
					#"." ""
				%.txt
			] record
		]
	]
]
Sujoy:
11-Oct-2012
Kaj: 
love your r2 bindings for zeromq 
i've been trying to implement the push-pull ventilator example

ventilator:
REBOL []

do %zmq.r

pool: zmq/new-pool 1
socket: zmq/open pool zmq/push
zmq/serve socket tcp://*:5555

ventilate: func[][
  print "sending"
  u: form time/now/precise
  zmq/send socket to-binary u 0
]

wait 0:00:60 [
  ventilate
]

worker:
REBOL []

do %zmq.r

pool: zmq/new-pool 1
socket: zmq/open pool zmq/pull
zmq/connect socket tcp://*:5555

data: copy #{}

forever [
  zmq/receive socket data 0
  prin ["."] 
  print to-string data
]

...but the worker crashes
JohnM:
14-Nov-2012
Thanks for the welcome back message.
 

 I left off asking about the mySQL driver. So I want to insert into 
 a database a random number the code already generated and associate 
 it with an email address that was provided by a CGI form. Have yet 
 to create this in the real world but for now let us assume I will 
 call the database "customers". The people who process the credit 
 card and collect the email address advised me that the address will 
 be labelled "trnEmailAddress".


 After finding the mySQL driver Here is what I figured out using placeholders 
 for things like password, etc. Would appreicate knowing if this is 
 correct.

; Loads MySQL driver
do %mysql-driver/mysql-protocol.r
; Opens connection to MySQL server
db: open mysql://[[user][:pass]@]host[:port]/database


; Send query to database server. Enters random number from above. 
customers is probably the name of the database I will create

insert db ["INSERT INTO customers VALUES (?,?)" "trnEmailAddress" 
"token"]



 Next I need to insert an existing PDF file (an e-book) into a directory 
 created by the script. The directory will be named after a random 
 number that was earlier generated by the script. I am astounded that 
 I can not find the command to copy a file. So the variable assigned 
 to this random number is called "token".

 So I have the following.

make-dir %token/


 How do I copy a file into this new directory? Also, is that the corecct 
 way to make a directory?
afsanehsamim:
16-Nov-2012
guys ,i explained my mini project in database and game room ...they 
suggest me this room ! plz help me . my project is about one crossword 
which should show on web page !  i created html form and cgi file 
... when user enter value and press submitt it should save in database 
! my problem is i can not save value from form into database(MYSQL)... 
i am using mysql driver...i can make connectivity and retrieve data 
but i ca not save values ! plz guide me ,i do not have experience 
in REBOL... :(
Andreas:
16-Nov-2012
Basically, you create an HTML file and put it on your webserver. 
Let's call it "form.html":


<form action="form.cgi"><input type="text" name="word"><input type="submit"></form>


Then you create a REBOL CGI matching the "action" used above, so 
"form.cgi", and also put it on your webserver:

#!/usr/local/bin/rebol278 -cs
REBOL []
cgi-values: construct decode-cgi system/options/cgi/query-string


;; Now you can access the "word" value submitted via the HTML form
;; as cgi-values/word.

;; Let's echo the value back to the user, as an example:
print rejoin [
  "Content-type: text/html" crlf
  crlf
  cgi-values/word
]
MaxV:
2-Jan-2013
Did you use the code on the blog post? It's different form the one 
here, I added the font support for Linux: you have to ad the path 
where are the font. Read carefull the post.
Endo:
1-Feb-2013
you can also use SAVE/ALL to save in serialized form:
>> o: context [a: 1] save/all %file.r o p: load %file.r type? p
== object!
BrianH:
1-Feb-2013
In this case, you keep your code and data separate because code is 
best saved with MOLD and reconstructed with DO, but data of types 
that don't have a normal literal form (but aren't affected by binding) 
are often better saved with MOLD/all and restored with LOAD. The 
main thing is that we don't have a literal syntax to declare word 
bindings; instead, we have a way to construct them with code. Same 
goes for cyclic or DAG structures that aren't strictly nested. So, 
if you need to create such things, you need to run code. And you 
need to keep your untrustworthy data that you can't safely DO separate 
from that code.
caelum:
28-Feb-2013
I found set-net in prot-setnet.r and included it with the same includes 
of GrahamC above, and now I get this error:

** Script Error: Invalid path value: pop
** Where: forskip
** Near: forall settings [
    if (item: first settings) = 'none [item: none] 
    if word? item [item: form item] 
    do first ...


Not sure where to go from here as I don't know what I am looking 
at in terms of errors.
Endo:
20-Mar-2013
Bo: There is Viktor Pavlu's "REBOL Essentials" in pdf form.
GrahamC:
8-May-2013
copy/part tail form idx -1 will give you the last number
PatrickP61:
8-May-2013
:-D   Oh my gosh, i couldn't get copy/part tail form idx - 1 working 
because I thought it was IDX subtract 1.  Ooops, you meant -1 as 
part of copy/part!!!!
Bo:
8-May-2013
>> help copy
USAGE:
    COPY value /part range /deep


So, copy/part takes two parameters:  (1) the start index, and (2) 
the range


If you rewrite the copy/part like I did below, it is much easier 
to see how it is split up:

copy/part
	tail form idx	;parameter 1
	-1		;parameter 2
Bo:
8-May-2013
I'm not saying to use that format for writing your scripts, but as 
a visual aide, it may help.  Also, you could make it kind of lisp-y 
like this:

copy/part (tail form idx) (-1)
DideC:
17-Jul-2013
Understanding your cade form the interpreter point o view :
Group: Databases ... group to discuss various database issues and drivers [web-public]
afsanehsamim:
17-Nov-2012
guys when i enter correct value in form the above join query works 
properly... i need help for writing queries which other condition,it 
means if user enter wrong value ,it joins with first table but dose 
comparing indicidually  and shows error message.
Group: !REBOL3 ... General discussion about REBOL 3 [web-public]
Cyphre:
18-Dec-2012
Well, to save you some time you should get the R3 form repository 
either from Andreas or me on github. These repos are work in progress 
for Win/mingw at the moment (maybe others have simmilar repos as 
well)
Cyphre:
18-Dec-2012
r3 form=r3 fork
PeterWood:
4-Jan-2013
Also should load not recognise the literal form of issue!:

In REBOL 2:
>> my-issue: #00000001
== #00000001
>> save %mi.txt my-issue

then in R3:

>> my-issue: load %mi.txt
== "#00000001"

>> type? my-issue
== string!
GrahamC:
16-Jan-2013
So, if you're reading a HTTP form, you can either use GET or POST 
 ....
Chris:
16-Jan-2013
Not at all. Particularly if you consider the HTML form -- GET sends 
parameters in the URL, POST sends parameters in the body. And consider 
the usage of each: GET is usually some type of search/filter facility, 
POST is sending data to be stored.
Cyphre:
18-Jan-2013
Once we manage to integrate the algorithms in form of natives it's 
just matter of adding the other cipher suites handling into the current 
TLS scheme.
Ladislav:
6-Mar-2013
(in the form of a new public repo)
BrianH:
16-Mar-2013
The existing LOOP is used quite often, so any replacement for it 
won't go in R3 by default. However, the main reason LOOP is used 
is because it doesn't have the overhead that a lot of the other loops 
have, less than the other natives even. Its simplicity and definite 
form are its strengths - a loop with a more flexible form would be 
need to process that flexibility at runtime, which would add inefficiency 
that could easily be avoided by making that choice at development 
time by choosing the loop that meets your needs. And any loop construct 
that requires any kind of manual reducing of its arguments in order 
to have it take the result of an expression is a definite no-go. 
I just got rid of that in REWORD.


I like http://issue.cc/r3/884as a replacement for FOR. It keeps 
the local binding (unlike Marco's CFOR above, sorry) and is flexible 
in behavior without being flexible in form (it has a very simple 
implementation).
DocKimbel:
13-Apr-2013
That should be more in line with Red's type naming. So:

* Float!: +1 (though I'm not against real!, float! is more CS than 
maths)

* Decimal! for a BCD type (could use money literal form, so, +1 for 
renaming money!)
Cyphre:
22-Jul-2013
Geomol, some notest regarding alpha channel:

The alpha values seems to be left out.

I'ts not left out..that's only the way "mold" of image! datatype 
works. So I the image have "fully transparent" alphachannel it is 
just not shown by mold to make the output more readable.

But it seems, the alpha channel is separate from RGB values.

The alphachannel is always present in the image! datatype (ie. internally 
it's always 4 components = 32bit bitmap). Again it's just the way 
"molding" of the datatype displays the content.


AFAIK You can construct the image! with alphachannel in various ways 
for example:

separated alpha:

>> i: make image! [2x2 #{0102030405060708009A0B0C} #{11121314}]
== make image! [2x2 #{
0102030405060708009A0B0C
} #{
11121314
}]

same example but the RGBA compoments together:

>> i: to image! #{0102031104050612070809130A0B0C14}
== make image! [4x1 #{
0102030405060708090A0B0C
} #{
11121314
}]

>> i/size: 2x2
== 2x2

>> i
== make image! [2x2 #{
0102030405060708090A0B0C
} #{
11121314
}]

>>

Same way you can get the values in different form:

>> i/rgb
== #{0102030405060708090A0B0C}

>> i/alpha
== #{11121314}

>> to binary! i
== #{0102031104050612070809130A0B0C14}


For more I'd suggest you read the image! datatype docs here: http://www.rebol.com/docs/image.html

AFAIK The docs were written for R2 but should hold pretty much also 
for R3.

world-name: r3wp

Group: I'm new ... Ask any question, and a helpful person will try to answer. [web-public]
Normand:
12-Apr-2005
Speaking of double bind, I have no clue of the how-to to this clue. 
 In Ocaml we can make co-recursive definitions, also with negation. 
 But when I try this on Rebol, it claims the value before I have 
the time to define it:  a: not b and b: not a.   Interp: ** script 
error, b has no value.  What is the method ?  Or are we out of paradise? 
 I could use that as a form of loop, or a form of lexical closure 
to model some linguistic phenomenas.  But how?  We know the problems 
of complement of complement, but as a function value it should be 
feasible.
Normand:
28-Apr-2005
--Type inference from a newbee point of view:

What if I wanted to form true (but un-native) datatypes ?  To program 
them, I shall use the same method as other types in Rebol: 

To mention the type as its value : seasoning!: seasoning!, like the 
definition of the type money!: 'money.

Rather, I would like to do type inference as they do, for example 
in ML (I adapt the example from Felleisen's LittleMLer):

So I would need to define a new type and verify the type of a word 
with type?
seasoning!: ('salt or 'pepper)
Unfortunately this does not seems possible 
** Script Error: Cannot use or~ on word! value
** Near: 'salt or 'pepper
In Rebol:
>> source integer!
integer!: integer!
type? 1
== integer!
but
natural!: (0 or natural +1)
Type inference:
seasoning? salt
Would like the answer == seasoning
is-of-type? 'salt seasoning
Would like the answer == true

Am I forced to turn to Ocaml to do this?  I am stuck.  Thanks for 
any help!
Normand:
22-Jun-2005
I am trying to add a newline to separate blocks of hashs I add to 
a file withe the save command.

[idkey: 1 objectname: "article" creator: "Lec, Norm" fulltitle: "Title 
1" pageread: "1"] {#"^^/"} [idkey: 2 objectname: "article" ...
with the line: append bib mold/all newline

Unfortunately I dont find the way to dispose the blocks in a pleasing 
format because the newline separating them is in source format.

I did try a dozen of combination with reduce, form mold and compose 
and the various newline forms I know ^/ "^/" but to no avail.

It shure is stupid but I am stock with this.  If I use write I am 
OK, but would like to learn the trick with save. Thanks.
Anton:
14-Apr-2006
page: read http://www.rebol.com

images: copy []

use [whsp ws non-end-tag strd p1 p2 delim non-delim][

	whsp: charset " ^-^/" ; whitespace
	ws: [any whsp] ; a rule for any number of whitespace characters
	non-end-tag: complement charset ">" ; all characters except ">"
	strd: charset {"'} ; string delimiters, double and single quote
	parse/all page [
		any [
			thru "<img" [
				ws "src" ws "=" ws 

    p1: [strd (delim: form p1/1) | (delim: ">")] (non-delim: complement 
    union whsp charset delim)

    p1: any non-delim p2: (append images copy/part p1 p2) ; keep the 
    url
				| non-end-tag
			] | skip
		]
	]

]


new-line/all images on ; add hidden newlines to the images block 
so it molds nicely
print mold images
Group: CGI ... web server issues [web-public]
Sunanda:
5-Jun-2005
It's fairly straigt-foward (I think!).


.......If you have no multi-part data, then just used the "standard" 
read-cgi  -- but remember that on some platforms no input returns 
"" while on others it returns none
http://www.rebol.com/docs/words/wread-io.html


.....If you have multi-part data (say an uploaded file), then use 
Andreas' decode-multipart-form script:

 http://www.rebol.org/cgi-bin/cgiwrap/rebol/ml-display-message.r?m=rmlKVSQ


.....If the form could have both or neither (ie there may or may 
not be a file uploaded), then each of the above solutions will fail 
(Carl's when there is. and Andreas's when there isn't)....So wrap 
the full code in a few attempts to handle that.
MikeL:
5-Jun-2005
Steve, If it is a small number of fields, you can change the html 
submit action from a 'Post to a 'Get then you will see the fields 
in the URL when submitted.   Just take a copy of the HTML page if 
it is not yours and look for the Action word in the Form to change 
then run it yourself.
Volker:
5-Jun-2005
Andreas script does the same (thanks for link sunanda ;) 

You find there a 'read-post-data, thats read-cgi with another name. 
and that is used in 'decode-multipart-form-data.
Volker:
5-Jun-2005
A second source of information are the environment-vars passed by 
the server. They are in system/options/cgi.  'decode-multipart-form 
needs system/options/cgi/content-type. There youself can look what 
the datas are too. if it is "multipart/form-data", use 'decode-multipart-form. 
i don't know the other types, just send a script a form and dump 
it.
François:
25-Jul-2005
read-cgi: func [
        "Read CGI form data from GET or POST."
        /local data buf
    ][

        if found? find/any system/options/cgi/request-method "POST*" [
            data: make string! 1020
            buffer: make string! 16380

            while [positive? read-io system/ports/input buffer 16380][
                append data buffer
                clear buffer
            ]
            return data
        ]

        if found? find/any system/options/cgi/request-method "GET*" [
            return system/options/cgi/query-string
        ]
        test-data ; if in test mode
    ]
Jean-François:
28-Aug-2005
buy the way, the ZIP in Zip code stands for Zone Improvement Plan.


So, I guess when making an international form to input adress, we 
should maybe ask for "postal code" or " post code", it might be more 
generic then ZIP code.
RebolJohn:
15-Nov-2005
Hello everyone..
I have a CGI problem/question.


I have a Win-apache-rebol server that isn't propagting the cgi info 
properly..
Upon posting.. the query-string is empty.
I am not sure what I am missing..

Details:

page1.rcgi
========================
#!c:\rebol\rebol.exe -cs
rebol []
print "content-type: text/html^/"
print "<html><body>"
print "  <form action='page2.rcgi' method='POST'>"

print "    <input type='text' name='var01' size='16' value='test'>"
print "    <input type='submit' name='go' value='Lookup'>"
print "  </form>"
print "</body></html>"


page2.rcgi
========================
#!c:\rebol\rebol.exe -cs
REBOL [ ]
print "content-type: text/html^/"
print "<html><body>"
print mold system/options/cgi
print "<hr>"
print "</body></html>"



if I .. ( decode-cgi system/options/cgi/query-string ), my vars are 
all undefined.

Also, looking at the 'print mold system/options/cgi' shows   query-string=""

if I change page1 form-action to ... "action='page2.rcgi?x=123"

then the query-string on page2 gets populated with x=123 and the 
value 123 gets assigned to 'x'
when I 'decode-cgi'.

However, my form fields NEVER get populated.
Does anyone have any advice?

John.
Sunanda:
15-Nov-2005
Glad to help......Get is probably better unless the form data exceeds 
1k or so.
Pekr:
5-Dec-2005
I just today was supposed to do quick small form maintanance using 
Rebol. My friend gave-up on php, as he can't code. So - basically 
it all worked, I just have few questions:
Graham:
12-Dec-2005
This is an odd one.  I have a form that records a user's email address, 
the time they filled in the form, and their ip address.

A user did so, and got two subscription notices - timed 30 seconds 
or so apart.  So, both were his email address, but the ip address 
of the later one was from Google!
Graham:
12-Dec-2005
My deduction is that somehow google is tracking his movements, and 
submitted the form themselves to get the content ...
Graham:
12-Dec-2005
Yep, that was it.  Mediapartners-Google/2.1 submitted the form again. 
 It looks like if you have the Google search bar, it submits all 
your internet traffic to google, who then go and try and index that 
site - including submitting your email address to a form!!
Graham:
12-Dec-2005
Gabriele, it was supposed to be a POST form, but looking now at the 
source, I see I typed "type=post" instead of "method=post", so it 
turned out to be GET.
Louis:
8-May-2006
OK, now that cgi is working, I want to make a form that will allow 
people to give their name and email address to be saved in a rebol 
db file on the server for me to download at my convenience. Has anyone 
already done this so that I don't have to reinvent the wheel?
Janeks:
16-Aug-2006
I found that in my case on Linux RebViev needs linux-gate.so.1!

I tried to google for "download linux-gate.so.1", but there was a 
lot of links for different things and it seems form me that it is 
included in some installation packgage.

Could some body help with this library  an is it worthwile (will 
RebView takes it from current dit)?
Alek_K:
16-Feb-2007
(ok - used feedback form)
btiffin:
19-Apr-2007
Hi,  question for the webheads.


   In short.  Can a form call a cgi action that processes data but doesn't 
   output any Content-type

(or anything for that matter) without the browser status coming up 
with "waiting for reply".


   I've got a client that wants a form for requesting more info, but 
   they want to leave the user on

the same screen, so I thought I could have a %process.cgi that takes 
the data and plays with it

and then have an intrinsic  onsubmit=alert(...)  to inform the user 
that the request has been submitted.

The %process.cgi doesn't 
print "Content-type ..."


it doesn't print anything, as I was hoping to leave the same browser 
screen up.

Am I living in lalaland?


Should the %process.cgi just redirect back to the original page with?


print "location: /original.html^/content-type: text/html^/"  or is 
that deprecated now?  It works under my test heads, Cheyenne and 
nonIE browser, but is there a bigger better way?  Or do I tell the 
client that the browser needs a new page and I can add a back link 
(not preferred).

Thanks for listening
btiffin:
19-Apr-2007
The form comes with a note about Javascript...so far anyway.  I'm 
showing off the

print "location: " umm, redirect, to them right now as we speak.
btiffin:
19-Apr-2007
I'll reinform them of the potential problems of having this type 
of form on their page.
DanielSz:
25-Jul-2007
Hello, I need to send multipart/form-data to a server for uploading 
a file from the console. I've been googling and searching the script 
archive, to no avail. Can anyone help?
DanielSz:
25-Jul-2007
Thanks for the help. The recipe from the rebol cookbook show you 
how to upload a file provided the server runs a rebol script too. 
The server I'm uploading a file to doesn't. It expects multipart/form-data. 
Maybe the %cgi.r by Cal Dixon provides a solution. I'll investigate 
further. More hints will be appreciated, as well...
DanielSz:
25-Jul-2007
In other words, the rebol script has to send values to a form on 
the server issuing something like that in the header: Content-Type: 
multipart/form-data; boundary=----------6l5Xq9lJYPaaypknAH8Des etc. 
Surely someone has done this before (I hope)...
btiffin:
25-Jul-2007
My bad. http://www.rebol.org/cgi-bin/cgiwrap/rebol/art-display-article.r?article=x60w
 but unfortunately this article skips over the info for multipart/form.
DanielSz:
26-Jul-2007
I played with Oldes script a bit, didn't get far. I think there's 
no other option than follow Graham's advice and delve in the http 
scheme. I had hoped to find something in the script archive, oh well... 
I saw that even in the Ruby and Python community there's some confusion 
on how to achieve multipart form submissions with CGI. (Python default 
http library also uses  "application/x-www-form-urlencoded" and not 
""multipart/form-data", but there's a library called HTTPFileUploader 
that does the job). Last time I tried to hack the http scheme I wasn't 
so succesful. This time, if I need help, I'll ask for help.
DanielSz:
26-Jul-2007
The script should be able to post a multipart form as described in 
rfc1867. It should be able to post a number of fields, for example: 
Content-Disposition: form-data; name="userid", and finally it should 
be able to upload a file in binary data.
Group: Cookbook ... For http://www.rebol.net/cookbook/requests.html [web-public]
Henrik:
19-Jul-2005
sunanda: they are not meant to be published on my site, I simply 
wanted to approve them here before handing them to Carl (which I 
actually have, but he hasn't responded other than "Cool!", but hasn't 
done anything :-)).


I was thinking about a very simple extension to webserv.r which simply 
submits a form to a modified makedoc2.r processor, which generates 
a page, sectioned so that you can edit small parts of it.
Group: PgSQL ... PostgreSQL and REBOL [web-public]
Oldes:
22-Jun-2005
At this moment I'm testing it for logging messages into DB form this 
experimental chat I'm working on: http://box.lebeda.ws/~hmm/and 
it was running without problems, the chat is working and data stared. 
I will make more tests after I finish some app. design things.
Group: Rebol/Flash dialect ... content related to Rebol/Flash dialect [web-public]
james_nak:
1-Mar-2006
Volker, I've just begun to really get into the dialect so I can't 
comment on how one "translates" the actionscript into it, however, 
the actionscript pdf is at least a start into trying to figure out 
the examples.

At this point, I am taking one of the examples from the flash actionscript 
pdf and rework it into the dialect form. Before I had this documentation 
I was just guessing at the whole process.
Group: RT Q&A ... [RT Q&A] Questions and Answers to REBOL Technologies [web-public]
Pekr:
28-Nov-2005
Please, could RT post a small update in a form of short blog article 
about current state of developments? 14.11. was missed without single 
note ...
Gabriele:
15-Jun-2006
do-uninstall: does [
	attempt [delete data-path/bypass-install]
	if get-face ckd [

  if confirm reform ["Please confirm that you want to delete all files 
  in" to-local-file data-path][
			attempt [delete-dir data-path]
		]
	]
	found? all [
		attempt [unlink-rebol form system/product true]
		attempt [unassociate-file true]
		attempt [unregister "REBOL" form system/product true]
	]
]
Group: Windows/COM Support ... [web-public]
Cyphre:
20-Jul-2006
(or at least provide the framework in library form with documentation 
so people can use it)
Graham:
17-Sep-2006
I would like to be able to send the drugs to this form for checking 
for interactions.
Group: Tech News ... Interesting technology [web-public]
[unknown: 9]:
15-Jan-2006
Quick review of the Dell 2405fpw 24" 1920x1200 LCD.  Worth every 
penny. About $1K US.


Although, there is not system to show 4:3 ratio information form 
older video cards, so either buy a new video card that supports wide 
view, or deal with stretched video.

It is BRIGHT, and swivels portrait or landscape.
Group: Plugin-2 ... Browser Plugins [web-public]
Anton:
4-May-2006
It's a simple "proto-form", good for development while we think and 
argue about a good update mechanism.
Pekr:
7-May-2006
as for browser preference, for me it is IE, FF, Opera, other ...., 
I can see Opera dominating embedded space (PDAs, cell-phones), but 
maybe it is because penetration of OS-X here is nearly non-existant 
... but as someone pointed out - whole world except MS uses Netscape 
API plug-in and even for IE, you can develop ActiveX, which wraps 
the same plug-in, so maybe RT would not have to develop separate 
versions .... otoh we are talking wrappers only anyway, the main 
part is View in .dll form ...
Allen:
15-May-2006
Yes. You should try disabling third party cookies in your browsers 
and see how much stuff is leaked to  through that., easy enough to 
steal from a form a user just filled out ;-)
Group: Games ... talk about using REBOL for games [web-public]
Mario:
4-Jun-2007
ICarii: "original c++ code" [...] "converting to rebol was a big 
mindset change"  => Maybe I am late but what about a small "REBOL 
for C++ game programming Guide"? It might be in the form of good 
comments in the mahjong.r code or an Article on rebol.org
ICarii:
2-Jul-2007
card artwork for the new version of rebtower is located at http://rebol.mustard.co.nz/rebtower-card-art.zip
 this includes all card stats etc. in their final form.  I'm halfway 
through the art.. 21/40 done.
101 / 15731[2] 345...1213141516