[REBOL] Endless looping processes. Re:(8)

2000-05-17 Thread fred-ml

Hello s,

Tuesday, May 16, 2000, 3:19:18 PM, you wrote:

shc There are 2 exe's on the NT Server 4.0 Resource kit cd called (i think) 
shc tlist.exe and kill.exe. Run tlist.exe from the command line, which will give 
shc you a list of running processes and an ID. Then run kill.exe XXX where XXX 
shc is the process id. In my experience, this will kill anything. This may cause 
shc other problems, though, because I don't think it kills processes 
shc "gracefully". Just a suggestion

Sounds interesting, will take a look at this when some process locks.

I kind'a switched positions and now I test the webscripts on my
workstation, wonder why I didn't do this in the first place =)

Regards, Fredrik Bergstrom

--

[ PowerWebs have a good Webhotel for everyone, supports Rebol to =) ]
[ www.powerwebs.se  ]

PowerWebs AB
Wåxnäsgatan 10
S-653 40 Karlstad
Sweden
Tel: +46-(0)54-103377
Fax: +46-(0)54-103376
ICQ# 7654213





[REBOL] load/next - bug?! Re:(6)

2000-05-17 Thread lmecir

Hi,

just my two cents...

 [EMAIL PROTECTED] wrote:

I suggest inline-strings and blocks should be read-only,
  
   This might be an idea, but then you have more problems when
you
   save and then load strings... No, I don't think this would
be a
   good solution.
  
 
 [...]
  What's your reservation with load and save? I have no idea
yet.
  (and later) a write-protected saved string is changeable after
  load? or loaded blocks are then write-protected? hm.
thinking..

 If literal strings should be made "write-protected" (a better
 approach wuold be a sort of copy-on-modify for series, this has
 been discussed and was proposed mainly by Ladislav), then every
 string you are loading form your data will be made
write-protected
 (because it is "literal").

[...]

My suggestion is a little bit different. If you want to have
"Protected Literals" ("Immutable Literals" can
be the term the others may prefer), you can use a simple strategy.

1) You can have two different types:

immutable-block!
mutable-block!

, where the usual literals such as [] are of Immutable-block!
type.

This principle doesn't lead to a big deformation of Rebol, it is
already there - see the object! or list! types. They (sort of)
don't have "normal" literals, you often use expressions like:

make object! [...] or make list! [...] instead

2) For every mutable type you create its immutable counterpart
type.

3) Values of immutable-block! type contain only immutable values.

4) The expressions:

do blk

func args body

work normally for immutable-blocks Blk, Args, Body. If you want to
use them for mutable-blocks, they work like:

do make immutable-block! blk
func make immutable-block! args make immutable-block! body

, this doesn't lead to a big complication for the code, because it
is (sort of) present already - Args/Body are deep copied even now

5) The [a: []] "paradox" doesn't exist anymore, because [] is
immutable. If you want to have a mutable value, you must write:

[a: make mutable-block! []]

, but the last is safe.

Ladislav




[REBOL] emacs colors Re:(4)

2000-05-17 Thread fred-ml

Hello sterling,

Tuesday, May 16, 2000, 7:15:44 PM, you wrote:


src print emacs-mode: read http://www.rebol.org/rebol.el

Thank you.

Now I'm not this good at emacs, the program is very good, but i
cannot figure out where to put the rebol.el file and how to
include/start it in emacs.

I tried:
ESC-x load-file pathrebol.el
(add-hook 'rebol-mode-hook 'turn-on-font-lock)

neither one works, may be because this isn't the right way?

Regards, Fredrik Bergstrom

--

[ PowerWebs have a good Webhotel for everyone, supports Rebol to =) ]
[ www.powerwebs.se  ]

PowerWebs AB
Wåxnäsgatan 10
S-653 40 Karlstad
Sweden
Tel: +46-(0)54-103377
Fax: +46-(0)54-103376
ICQ# 7654213





[REBOL] Timeouts. Re:(2)

2000-05-17 Thread agem


 Dear Rebolers,
 
 seems there's some demand for a timeout, may I 
 suggest to make it possible to snap in a user
 defined function that'll be called when the 
 timeout occurs? This would make it possible to
 end the program controlled, of course you'll
 have to pay attention not to start the next
 loop there ...

 
Should help much. normaly there is a stable base and a new
feature, and this kills the programm? the timeout-code
would be the first thing good tested.
and short. [write error, quit] :)
with something like an error-message (where it was) as arg?

Volker

 
 regards,
 
 Ingo
 
 
 Those were the words of [EMAIL PROTECTED]:
  Dear Rebol-list,
  
  Hello, I'm having some problems with my Rebol processes, quite often I
  end up with a endless process, taking about 30% of the CPU.
  
  Shouldn't there be the possibility to set some kind of timeout?
  
  So the Rebol process will die after a period of seconds that the
  timeout is set to ?
 
 --  _ ._
 ingo@)|_ /|  _| _  We ARE all ONE   www._|_o _   _ ._ _  
 www./_|_) |o(_|(/_  We ARE all FREE ingo@| |(_|o(_)| (_| 
 http://www.2b1.de/Rebol/ ._|  ._|
 
 
 




[REBOL] Question on Secure (repost) Re:(2)

2000-05-17 Thread agem



do compose/deep[secure[(my-dir) allow]]

attention to the 'level in secure, this means, the compose is not evaluatet!
you have to hack a bit more :)

 source secure
secure: native [
{Specify security policies (access levels and directories). Return prior settings.} 
'level [word! block!] "Levels are: quit, throw, ask, and allow."
]

i suggest with default protection before:
do compose/deep[secure[net ask file ask (my-dir) allow]]

Volker

  But if I try using:
 
  downloaddir: %/d/anti%20virus%20downloads/
  == %/d/anti%20virus%20downloads/
 
   secure [downloaddir allow]
  ** Script Error: Invalid argument: downloaddir.
  ** Where: secure [downloaddir allow]
 
  it doesn't. Shouldn't either way work?
 
 'secure doesn't evaluate the block passed to it. Try using 'compose like
 this:
 secure compose [(downloaddir) allow]
 and see if that works better for you. Or you could do this:
 
 DirPermission: 'allow
 secure reduce [downloaddir DirPermission]
 
 'reduce-ing the block first.
 
 Andrew Martin
 Fully condensed...
 ICQ: 26227169
 http://members.xoom.com/AndrewMartin/
 --
 
 
 
 




[REBOL] load/next - bug?! Re:(7)

2000-05-17 Thread agem


 Hi,
 
 just my two cents...
 
  [EMAIL PROTECTED] wrote:
 
 I suggest inline-strings and blocks should be read-only,
   
This might be an idea, but then you have more problems when
 you
save and then load strings... No, I don't think this would
 be a
good solution.
   
  
  [...]
   What's your reservation with load and save? I have no idea
 yet.
   (and later) a write-protected saved string is changeable after
   load? or loaded blocks are then write-protected? hm.
 thinking..
 
  If literal strings should be made "write-protected" (a better
  approach wuold be a sort of copy-on-modify for series, this has
  been discussed and was proposed mainly by Ladislav), then every
  string you are loading form your data will be made
 write-protected
  (because it is "literal").
 
 [...]
 
 My suggestion is a little bit different. If you want to have
 "Protected Literals" ("Immutable Literals" can
 be the term the others may prefer), you can use a simple strategy.
 
 1) You can have two different types:
 
 immutable-block!
 mutable-block!
 
 , where the usual literals such as [] are of Immutable-block!
 type.
 
 This principle doesn't lead to a big deformation of Rebol, it is
 already there - see the object! or list! types. They (sort of)
 don't have "normal" literals, you often use expressions like:
 
 make object! [...] or make list! [...] instead
 
 2) For every mutable type you create its immutable counterpart
 type.
 
 3) Values of immutable-block! type contain only immutable values.
 
 4) The expressions:
 
 do blk
 
 func args body
 
 work normally for immutable-blocks Blk, Args, Body. If you want to
 use them for mutable-blocks, they work like:
 
 do make immutable-block! blk
 func make immutable-block! args make immutable-block! body
 
 , this doesn't lead to a big complication for the code, because it
 is (sort of) present already - Args/Body are deep copied even now
 
 5) The [a: []] "paradox" doesn't exist anymore, because [] is
 immutable. If you want to have a mutable value, you must write:
 
 [a: make mutable-block! []]
 
 , but the last is safe.
 
 Ladislav

 
Yes. and [block!] is the name for mutable and [copy]'s are mutable,
(except with refinement) and rebol-code lookes like before.
but we have a handy warning.
BTW, how about a link to the creation-point of a value?
this would help me, i often have this "you need a block here!"
and have to look around where the var is assigned,
especially when using locals (no good look-in).
Exec-Lists had such a debug-text-field :)

BTW2: What happens if i change the body of a running function yet?!

Volker




[REBOL] Question on Secure (repost) Re:(3)

2000-05-17 Thread Al . Bri

Hi, Volker.
Call me idiot, but I didn't understand what you're trying to say here:

 do compose/deep[secure[(my-dir) allow]]

 attention to the 'level in secure, this means, the compose is not
evaluatet!
 you have to hack a bit more :)

  source secure
 secure: native [
 {Specify security policies (access levels and directories). Return prior
settings.}
 'level [word! block!] "Levels are: quit, throw, ask, and allow."
 ]

 I suggest with default protection before:
 do compose/deep[secure[net ask file ask (my-dir) allow]]

How is your solution better than:
DirPermission: 'allow
secure reduce [downloaddir DirPermission]
?

Andrew Martin
Who's been called an idiot today! :-( But I don't believe them... :-)
ICQ: 26227169
http://members.xoom.com/AndrewMartin/
--




[REBOL] apache?

2000-05-17 Thread etcha





do i need to have apache/rebol to use 
rebol?
as i am unable to get core working to display 
simple cgi.
i have set permissions. is there anything i am looking out 
for?

etcha


[REBOL] load/next - bug?! Re:(9)

2000-05-17 Thread Petr . Krenzelok



[EMAIL PROTECTED] wrote:

 Hi,

 [...]

  BTW, how about a link to the creation-point of a value?
  this would help me, i often have this "you need a block here!"
  and have to look around where the var is assigned,
  especially when using locals (no good look-in).
  Exec-Lists had such a debug-text-field :)
 
  BTW2: What happens if i change the body of a running function
 yet?!
 
  Volker
 

 BTW: I cannot imagine any simple way how to accomplish it.

 BTW2: If you change the body of a running function, the behaviour
 of it changes (a self modifying code).


REBOL []


x: func [par1 par2][
 print "inside function 'x"
 print par1
 print "+"
 print par2
 count par1 par2
]

count: func [parm1 parm2][
 print "--"
 print parm1 + parm2
 insert tail second :x compose [+ random 300]
]

print "Original function: "
print mold :x
x 100 25
print newline
print "Inline changed function: "
x 100 30
print mold :x

:-) Just note the last line:
 count par1 par2 + random 300 + random 300

Why random 300 is there two times?

-pekr-


 Ladislav




[REBOL] stack space Re:(2)

2000-05-17 Thread mjelinek

Oops, yes this was a bug, now fixed. The reason I jumped to conclusions was
because I ran out of stack space once with REBOL on the Amiga and it clearly
WASN'T a bug (the same program ran on NT without error). As I said, on the
Amiga it was easy to increase the stack size and the program ran fine.

- Michael Jelinek

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, May 16, 2000 4:42 PM
To: [EMAIL PROTECTED]
Subject: [REBOL] stack space Re:

out of stack space usually means an infinite loop with recursion.
so increasing it to any amount, no matter how huge, is futile.
fix the bug instead.




[REBOL] emacs colors Re:(5)

2000-05-17 Thread sterling


Here's what I've got...
The first line insures that where I put my rebol.el file is in the
load path, it loads the file, requires it (whatever that's worth I
don't know exactly), then adds the hook and associates .r files.

(setq load-path (cons "/usr/lib/xemacs/site-lisp" load-path))
(load "rebol")
(require 'rebol)
(add-hook 'rebol-mode-hook (lambda () (font-lock-mode 1)))
(setq auto-mode-alist
  (cons (cons "\\.r\\'" 'rebol-mode) auto-mode-alist))
))

Sterling

 Hello sterling,
 
 Tuesday, May 16, 2000, 7:15:44 PM, you wrote:
 
 
 src print emacs-mode: read http://www.rebol.org/rebol.el
 
 Thank you.
 
 Now I'm not this good at emacs, the program is very good, but i
 cannot figure out where to put the rebol.el file and how to
 include/start it in emacs.
 
 I tried:
 ESC-x load-file pathrebol.el
 (add-hook 'rebol-mode-hook 'turn-on-font-lock)
 
 neither one works, may be because this isn't the right way?
 
 Regards, Fredrik Bergstrom




[REBOL] emacs colors Re:(5)

2000-05-17 Thread jeff



   Howdy, Fredrik 

  ( and other brothers and sisters of the EMACS faith (-: ): 


  Okay, you may want to byte-compile the file first:

   M-x byte-compile-file

  This will produce "rebol.elc". Then you might put this in
  your home directory.  You may need to add your home
  directory to the search path. Add this to your .emacs:

(setq load-path (cons "/path/to/your-home-dir" load-path))

  After that you can add this line:

(load "rebol") 

  To associate the mode with .r files add:

(setq auto-mode-alist
  (cons '("\\.r$" . rebol-mode)  
auto-mode-alist))



Now here's a real handy piece of elisp to rebol glue code:


(defun go-rebol ()
  (interactive)
  (progn 
(mark-whole-buffer)
(write-region (buffer-string) 0 "/path/to/somewhere/.temp.r")
(switch-to-buffer (process-buffer (setq proc (start-process "subrebol" "subrebol" 
"/path/to/rebol" "-s" 
"/path/to/somewhere/.temp.r"
(comint-mode)
)
)
(global-set-key "\M-e" (quote go-rebol))


   ;- changing all the paths to where ever they are.
 
   Now you can be in a buffer making a script, type M-e and it
   will pass your script to rebol and start it in a separate
   buffer.

   Good luck!


   If any one out there has some experience dealing with emacs
   modes, the rebol.el emacs mode could use your help.  There
   are still a couple things wrong with the way it parses
   strings in particular and where it places close square
   brackets. 


   -jeff

 src print emacs-mode: read http://www.rebol.org/rebol.el
 
 Thank you.
 
 Now  I'm not this good at  emacs, the program is very good,
 but i cannot figure out where  to put the rebol.el file and
 how to include/start it in emacs.
 
 I tried:   ESC-x load-file pathrebol.el (add-hook
 'rebol-mode-hook 'turn-on-font-lock)
 
 neither one works, may be because this isn't the right way?
 
 Regards, Fredrik Bergstrom
 
 --
 
 [ PowerWebs have  a  good Webhotel  for  everyone, supports
 Rebol to =) ] [ www.powerwebs.se ]
 
 PowerWebs AB Wåxnäsgatan 10 S-653  40 Karlstad Sweden  Tel:
 +46-(0)54-103377 Fax: +46-(0)54-103376 ICQ# 7654213
 
 
 




[REBOL] Re: rebol ecommerce site Re:

2000-05-17 Thread collins-e

On 17-May-00, [EMAIL PROTECTED] said about the subject [REBOL] rebol ecommerce
site Re::

Hi,

 very cool...REBOL View and Command will make this much easier and more 
 comprehensive for you in the near future...we're plugging away!  dan

Thanks. Rebol/Command will certainly be of benefit for a larger scale
version of such a system.

Anyone else have any comments on the system or suggested improvements ?

Kind Regards, 
Ed.
-- 
_
\___ \ /\ / ___// ICQ: 34895924
 |  \ \\_/\_// __//   TWF Home : http://www.worldfoundry.com/
 |_ /__\/_//  CEG Home : http://www.worldfoundry.com/ceg/
=
The World Foundry LLC - Amiga PPC - Explorer 2260 - Maim  Mangle

Injustice anywhere is a threat to justice everywhere.
-- Martin Luther King, Jr.




[REBOL] rebol ecommerce site Re:(3)

2000-05-17 Thread rrm

I just want to tell you how impressed I am with your work.  The site looks
great and the total use of REBOL is awesome.  I was wondering if your
content is store in a database or flat file.  How did you deal with REBOL's
data limitations?

-Original Message-
Anyone else have any comments on the system or suggested improvements ?




[REBOL] Re: data storage (was: [REBOL] rebol ecommerce site Re:(3))

2000-05-17 Thread RChristiansen

This subject brings something else to mind I would like to share...

I am looking forward to REBOL/Command in the hopes that the BeOS version will support 
read/write access to extended BeOS File System attributes. Extended BFS attributes are 
a simple, reliable way to store and retrieve data in fast, robust, journaled file 
system.

Within the next few weeks or months, the new BeOS kernel-based networking environment 
dubbed "BONE" is expected to be released in a point release upgrade for the BeOS. BONE 
is rumored to be just as robust and stable as Linux. Meanwhile, Apache 2.0 when 
completed will support the BeOS.


I was wondering if your
 content is store in a database or flat file.  How did you deal with
 REBOL's data limitations?




[REBOL] Re: rebol ecommerce site Re:(3)

2000-05-17 Thread collins-e

On 17-May-00, [EMAIL PROTECTED] said about the subject [REBOL] rebol
ecommerce site Re:(3):

Hi,

 I just want to tell you how impressed I am with your work. The site looks

Thanks.

 great and the total use of REBOL is awesome. I was wondering if your
 content is store in a database or flat file. How did you deal with REBOL's
 data limitations?

I had to go for a flat file database considering the rebol/core limitations
with databases.

Kind Regards, 
Ed.
-- 
_
\___ \ /\ / ___// ICQ: 34895924
 |  \ \\_/\_// __//   TWF Home : http://www.worldfoundry.com/
 |_ /__\/_//  CEG Home : http://www.worldfoundry.com/ceg/
=
The World Foundry LLC - Amiga PPC - Explorer 2260 - Maim  Mangle

Things I'd Do If I Ever Became An Evil Overlord

77. If I have a fit of temporary insanity and decide to give the hero the
chance to reject a job as my trusted lieutenant, I will retain enough
sanity to wait until my current trusted lieutenant is out of earshot
before making the offer.




[REBOL] [REBOL]Finding characters in strings

2000-05-17 Thread tim

Hi:
I have written a function to find the matching index
for a character in a string:

;code follows:
char-pos: func [str[string!] ch[char!] /local result]
[
  result: find/case str ch
  either equal? result none [return 0]
  [return index? find/case str ch]
]
;I have had to use find/case twice because if 
;  I use 
index? find str ch
; and i submit a character that is not found in str
; I get the following error message from the interpreter
** Script Error: index? expected series argument of type: series port
How can I change this function so that I don't have to call
find/case twice?

Thanks In advance
Tim




[REBOL] [REBOL]Finding characters in strings Re:(2)

2000-05-17 Thread mjelinek

Not being used to the any/all construct (below) I find it a little hard to
read. It does produce terse code, but then the original example could have
been shortened up considerably too (if this is all there was to the
problem).

To solve the problem in the original context, the second 'find (in the
original example) could simply have been replaced by the previous 'find
result in 'result. Thus:

char-pos: func [str[string!] ch[char!] /local result] [
   result: find/case str ch
   either equal? result none [return 0] [return index? result]
]

Reducing this example could look like:

char-pos: func [str[string!] ch[char!] /local result] [
   either result: find/case str ch [index? result] [0]
]

- Michael Jelinek

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, May 17, 2000 2:19 PM
To: [EMAIL PROTECTED]
Subject: [REBOL] [REBOL]Finding characters in strings Re:




   Howdy Tim:

   I'm a big fan of ANY and ALL for instance like that

char-pos: func [str [string!] ch [char!] /r][
any [all [r: find/case str ch index? r] 0]
]

 Hi:
  I have written a function to find the matching index
 for a character in a string:
 
 ;code follows:
 char-pos: func [str[string!] ch[char!] /local result] [
result: find/case   str  ch   either equal?  result  none
[return 0] [return index? find/case str ch]
 ] ;I have  had to use find/case twice  because  if ; I  use
 index? find str ch ; and  i submit a  character that is not
 found in  str ; I get the  following error message from the
 interpreter **   ScriptError: index?  expected   series
 argument of   type: series  port   How can Ichange this
 function so that I don't have to call find/case twice?
 
 Thanks In advance Tim
 
 




[REBOL] Syntax highlighting for GoldED

2000-05-17 Thread weirddream

Hello,

when talking about syntax highlighting...

is there any syntax highlighting module for Amiga's GoldED? 

Thanks, Bolek
-- 
--you've been/byl jsi contacted/kontaktovan
---
[EMAIL PROTECTED]
-www.volny.cz/weirddream






[REBOL] [REBOL]Finding characters in strings Re:(2)

2000-05-17 Thread tim

Thank you Jeff:
It works without the redundant call all right
Tell me - how r is returned with a specific call to return?
Regards
Tim
P.S. will read Docs on ANY and ALL
At 01:18 PM 5/17/00 -0800, you wrote:


   Howdy Tim:

   I'm a big fan of ANY and ALL for instance like that

char-pos: func [str [string!] ch [char!] /r][
any [all [r: find/case str ch index? r] 0]
]

 Hi:
  I have written a function to find the matching index
 for a character in a string:
 
 ;code follows:
 char-pos: func [str[string!] ch[char!] /local result] [
result: find/case   str  ch   either equal?  result  none
[return 0] [return index? find/case str ch]
 ] ;I have  had to use find/case twice  because  if ; I  use
 index? find str ch ; and  i submit a  character that is not
 found in  str ; I get the  following error message from the
 interpreter **   ScriptError: index?  expected   series
 argument of   type: series  port   How can Ichange this
 function so that I don't have to call find/case twice?
 
 Thanks In advance Tim
 
 






[REBOL] [REBOL]Finding characters in strings Re:

2000-05-17 Thread ingo

Hi Tim,

this would be my version ...

char-pos: func [str[string!] ch[char!] /local result] [
   either found? result: find/case str ch [index? result][0] 
]  


regards,

Ingo



Those were the words of [EMAIL PROTECTED]:
 Hi:
   I have written a function to find the matching index
 for a character in a string:
 
 ;code follows:
 char-pos: func [str[string!] ch[char!] /local result]
 [
   result: find/case str ch
   either equal? result none [return 0]
   [return index? find/case str ch]
 ]
...

--  _ ._
ingo@)|_ /|  _| _  We ARE all ONE   www._|_o _   _ ._ _  
www./_|_) |o(_|(/_  We ARE all FREE ingo@| |(_|o(_)| (_| 
http://www.2b1.de/Rebol/ ._|  ._|




[REBOL] CGI Error

2000-05-17 Thread louisaturk

I'm having trouble getting set up.  What is causing the following error 
message?  I it caused by me or my ISP?

Many thanks in advance.
Louis

CGI Error
The specified CGI application misbehaved by not returning a complete set of 
HTTP headers. The headers it did return are:




[REBOL] Windows NT 4.0 / Apache / Rebol Configuration

2000-05-17 Thread Jonathan . Saunders

I am running Windows NT 4.0 (I believe with SP5) with Rebol/Core
2.2.0.3.1 (which is the latest version as far as I can tell) and
Apache 1.3.9.

My goal is to get Rebol running with Apache and CGI. (I figure I
should be able to CGI working first before I move on to anything
more advanced.)

If anyone has an NT 4.0 / Apache / Rebol setup running and can
provide some help, I would appreciate it!

My script (sample.r) looks like this:

#!e:\rebol\rebol.exe --cgi
REBOL []

print "Content-Type: text/plain^/"
print ["Welcome to my time and date page!"
   " The time and date is" now]

If I run the program using the command "e:\rebol\rebol.exe
sample.r", the Rebol console opens and the script output is
display (good).

If I run the program using the command "e:\rebol\rebol.exe --cgi
sample.r", the Rebol console doesn't open (good) but there is no
output to the CMD.EXE console (bad).

Based on one of the e-mails in this list, I tried "e:\rebol
rebol.exe --cgi sample.r | more". This gives me output to the
CMD.EXE console (good).

I'm assuming I need to get the "" version working before I have a
chance of getting Apache CGI working.

I have a second problem...

When I bring up http://server/cgi-bin/sample.r in the browser I
get an error:

Internal Server Error
The server encountered an internal error or misconfiguration
and was unable to complete your request.

The error log says:

(2)No such file or directory: couldn't spawn child process:
e:/program files/apache group/apache/cgi-bin/sample.r

If I cut and paste that pathname to the CMD.EXE window and change
the forward slashes to back slashes and put quotes around the
whole thing, I can do a DIR on it and see the file exists.

I have set up the file associations as follows:

E:\assoc .r
.r=rfile
E:\ftype rfile
rfile=e:\rebol\rebol.exe --cgi "%1" %*

If I remove the --cgi from the above command and type "sample.r"
in the CMD.EXE window, the Rebol script runs in a Rebol window as
expected. If I put the --cgi back in and type "sample.r" in the
CMD.EXE window, I get the behavior I mentioned above where the
output doesn't show up.

Now, it seems from the error log that there is something else
wrong with my configuration such that, even if I get the script
output to appear, Apache still won't run the script. I can put
Perl scripts in the cgi-bin directory and they work in the
browser.

Thanks for any help!

/jonathan




[REBOL] [REBOL]Finding characters in strings/Comparing

2000-05-17 Thread tim

Hello You'All:
Being my own most demanding critic, I wrote a function
to find the matching index of a character in a string.
I submitted that function, and have gotten three versions
of an improvement upon the algorithm. All are obviously
an improvement over mine.

I would love to see some input and discussion as to what 
is the most efficient of the three functions. Forgive me,
but I just can't help myself - my first paying programming
work was writing C and Assembly for a 286. I've always been
miserly when it came to machine overhead.

I wouldn't consider readability to be an issue, because
this would not be a function that would need any maintenance.

Here goes:
char-pos0: func [str [string!] ch [char!] /ndx]
[
  any[all [ndx: find/case str ch index? ndx] 0]
]
char-pos1: func [str[string!] ch[char!] /local result]
[
   either result: find/case str ch [index? result] [0]
]
char-pos2: func [str[string!] ch[char!] /local result]
[
   either found? result: find/case str ch [index? result][0]
]




[REBOL] CGI Error Re:

2000-05-17 Thread kevin

Louis wrote:
 CGI Error
 The specified CGI application misbehaved by not returning a complete set of 
 HTTP headers. The headers it did return are:

Is your script printing a Content-type header as the first thing it 
does, followed by a blank line?

print "Content-type: text/html^/^/"

Kev


Kevin McKinnon, Network Engineer [EMAIL PROTECTED]
Sunshine Communications http://www.sunshinecable.com

PGP Public Key: http://www.dockmaster.net/pgp.html   PGP 6.0 www.pgp.com




[REBOL] CGI Error Re:

2000-05-17 Thread louisaturk

I should have mentioned that I am trying to get the cgiemailer.r  script 
from rebol.com to work.  I haven't changed anything except the path in 
cgiemailer.html.

Louis

At 06:23 PM 5/17/00 -0500, you wrote:
I'm having trouble getting set up.  What is causing the following error 
message?  Is it caused by me or my ISP?

Many thanks in advance.
Louis

CGI Error
The specified CGI application misbehaved by not returning a complete set 
of HTTP headers. The headers it did return are:




[REBOL] CGI Error Re:(2)

2000-05-17 Thread louisaturk

Kev,

My last post was directed to you, but I forgot to put your name on 
it.  Sorry.  Thanks for the help.

Louis

At 04:07 PM 5/17/00 -0700, you wrote:
Louis wrote:
  CGI Error
  The specified CGI application misbehaved by not returning a complete 
 set of
  HTTP headers. The headers it did return are:

Is your script printing a Content-type header as the first thing it
does, followed by a blank line?

print "Content-type: text/html^/^/"

Kev


Kevin McKinnon, Network Engineer [EMAIL PROTECTED]
Sunshine Communications http://www.sunshinecable.com

PGP Public Key: http://www.dockmaster.net/pgp.html   PGP 6.0 www.pgp.com




[REBOL] CGI Error Re:(2)

2000-05-17 Thread louisaturk

Here's the script:

#!rebol -cs

REBOL [
 Title: "Sends Email via CGI Form"
 Date:  20-July-1999
 File:  %cgiemailer.r
 Purpose: {
 Uses a Web form to send an email message.
 }
]

print "Content-Type: text/html^/^/"  ;-- Required Page Header

print "htmlbodyh2Results:/h2"

cgi: make system/standard/email decode-cgi system/options/cgi/query-string

either all [
 email? try [cgi/to: load cgi/to]
 email? try [cgi/from: load cgi/from]
][
 print [B "Sending Email to" cgi/to /B]
 send/header cgi/to cgi/content cgi
][
 print "BInvalid email to or from address/B"
]

print "/bodyhtml"

And here is the HTML:


HTML

HEAD
 META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1"
 TITLEuntitled/TITLE
/HEAD

BODY BGCOLOR="white"

FORM ACTION="http://worldmerchantltd.com/www/cgi-bin/cgiemailer.r" 
METHOD="GET"
H2FONT FACE="Arial, Helvetica"Send an Email Message:/FONT/H2
P
TABLE BORDER="1" CELLSPACING="1" WIDTH="75%" BGCOLOR="silver"
 TR
 TD WIDTH="9%" BGCOLOR="#3C6F99"
 P ALIGN="RIGHT"BFONT COLOR="white"To:/FONT/B
 /TD
 TDINPUT TYPE="TEXT" NAME="to" SIZE="40"/TD
 /TR
 TR
 TD WIDTH="9%" BGCOLOR="#3C6F99"
 P ALIGN="RIGHT"BFONT COLOR="white"From:/FONT/B
 /TD
 TDINPUT TYPE="TEXT" NAME="from" SIZE="40"/TD
 /TR
 TR
 TD WIDTH="9%" BGCOLOR="#3C6F99"
 P ALIGN="RIGHT"BFONT COLOR="white"Subject:/FONT/B
 /TD
 TDINPUT TYPE="TEXT" NAME="subject" SIZE="40"/TD
 /TR
 TR
 TD WIDTH="9%" BGCOLOR="#3C6F99"
 P ALIGN="RIGHT"BFONT COLOR="white"Message:/FONT/B
 /TD
 TDTEXTAREA NAME="content" ROWS="10" COLS="40"/TEXTAREA/TD
 /TR
/TABLE
/P

PINPUT TYPE="SUBMIT" NAME="Submit" VALUE="Send Message"
/FORM

/BODY

/HTML

At 04:07 PM 5/17/00 -0700, you wrote:
Louis wrote:
  CGI Error
  The specified CGI application misbehaved by not returning a complete 
 set of
  HTTP headers. The headers it did return are:

Is your script printing a Content-type header as the first thing it
does, followed by a blank line?

print "Content-type: text/html^/^/"

Kev


Kevin McKinnon, Network Engineer [EMAIL PROTECTED]
Sunshine Communications http://www.sunshinecable.com

PGP Public Key: http://www.dockmaster.net/pgp.html   PGP 6.0 www.pgp.com




[REBOL] [REBOL]Finding characters in strings/Comparing Re:

2000-05-17 Thread icimjs

Hi Tim,

you wrote:
[...]
I would love to see some input and discussion as to what 
is the most efficient of the three functions. 
[...]

If you compare char-pos1 to char-pos2 then the only difference is that
char-pos2 adds a call to found? to char-pos1. It's probably safe to
speculate that char-pos1 should be more efficient.

if you accept that, then the field is narrowed down to char-pos1 vs.
char-pos0. You can speculate about these two, but without knowing the
implementation details of all, any and either, the degree of confidence in
the result of this speculation is a little lower.

As a matter of principle, either accomplishes what the combined any and all
accomplish. At face value I tend to think that char-pos1 should be more
efficient, since it consists of one (native) function call, where the
combination all/any requires two function calls. I doubt that any and all's
implementations can be that much more efficient than either's
implementation, that parsing and calling any and all would still be more
efficient than a single parse/call to either.

If you compare this speculation to some (inaccurate) measurements, I appear
to be on the right track:

 start: now/time loop 100 [char-pos0 s c] print now/time - start
0:00:46
 start: now/time loop 100 [char-pos1 s c] print now/time - start
0:00:42
 start: now/time loop 100 [char-pos2 s c] print now/time - start
0:00:54



I wouldn't consider readability to be an issue, because
this would not be a function that would need any maintenance.

Here goes:
char-pos0: func [str [string!] ch [char!] /ndx]
[
  any[all [ndx: find/case str ch index? ndx] 0]
]
char-pos1: func [str[string!] ch[char!] /local result]
[
   either result: find/case str ch [index? result] [0]
]
char-pos2: func [str[string!] ch[char!] /local result]
[
   either found? result: find/case str ch [index? result][0]
]




;- Elan  [: - )]




[REBOL] CGI Error Re:

2000-05-17 Thread icimjs

Hi Louis,

you wrote:
I'm having trouble getting set up.  What is causing the following error 
message?  I it caused by me or my ISP?

Many thanks in advance.
Louis

CGI Error
The specified CGI application misbehaved by not returning a complete set of 
HTTP headers. The headers it did return are:

If this is the complete error message, then the Content-type: text/html is
not being reported. Provided that your script does print the string
Content-type: text/html before it outputs anything else, at least that
string should appear in the reported headers. If the first thing being
printed by your script is the Content-type ... thing, and the error you
report is the complete text of the error reported by your ISP, then at
least something is wrong with their error reporting mechanism. 
1. Perhaps their error reporting mechanism has a bug and is suppressing the
Content-type header? 
2. Or their bug is that they are missing the Content-type header you are
printing, and therefore they report that they did not receive any headers? 
3. Perhaps they should not be displaying an error at all? 
4. Perhaps something is wrong with your configuration on their machine and
therefore the Content-type header you are printing is not reported to them?

Do you happen to know their configuration? What OS are they using? Webserver?



;- Elan  [: - )]




[REBOL] CGI Error Re:(3)

2000-05-17 Thread icimjs

Hi Louis,

a little off-topic, but it is more efficient to collect your output in a
string and print the complete string in one go, using a single call to
print. Like so:

output: make string! 1000

insert output {Content-Type: text/html^/^/
htmlbodyh2Results:/h2}

cgi: make system/standard/email decode-cgi system/options/cgi/query-string

either all [
 email? try [cgi/to: load cgi/to]
 email? try [cgi/from: load cgi/from]
][
 append output "B Sending Email to cgi/to /B"
 send/header cgi/to cgi/content cgi
][
 append output  "BInvalid email to or from address/B"
]

print [output "/bodyhtml"]




At 07:32 PM 5/17/00 -0500, you wrote:
Here's the script:

#!rebol -cs

REBOL [
 Title: "Sends Email via CGI Form"
 Date:  20-July-1999
 File:  %cgiemailer.r
 Purpose: {
 Uses a Web form to send an email message.
 }
]

print "Content-Type: text/html^/^/"  ;-- Required Page Header

print "htmlbodyh2Results:/h2"

cgi: make system/standard/email decode-cgi system/options/cgi/query-string

either all [
 email? try [cgi/to: load cgi/to]
 email? try [cgi/from: load cgi/from]
][
 print [B "Sending Email to" cgi/to /B]
 send/header cgi/to cgi/content cgi
][
 print "BInvalid email to or from address/B"
]

print "/bodyhtml"

And here is the HTML:


HTML

HEAD
 META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1"
 TITLEuntitled/TITLE
/HEAD

BODY BGCOLOR="white"

FORM ACTION="http://worldmerchantltd.com/www/cgi-bin/cgiemailer.r" 
METHOD="GET"
H2FONT FACE="Arial, Helvetica"Send an Email Message:/FONT/H2
P
TABLE BORDER="1" CELLSPACING="1" WIDTH="75%" BGCOLOR="silver"
 TR
 TD WIDTH="9%" BGCOLOR="#3C6F99"
 P ALIGN="RIGHT"BFONT COLOR="white"To:/FONT/B
 /TD
 TDINPUT TYPE="TEXT" NAME="to" SIZE="40"/TD
 /TR
 TR
 TD WIDTH="9%" BGCOLOR="#3C6F99"
 P ALIGN="RIGHT"BFONT COLOR="white"From:/FONT/B
 /TD
 TDINPUT TYPE="TEXT" NAME="from" SIZE="40"/TD
 /TR
 TR
 TD WIDTH="9%" BGCOLOR="#3C6F99"
 P ALIGN="RIGHT"BFONT COLOR="white"Subject:/FONT/B
 /TD
 TDINPUT TYPE="TEXT" NAME="subject" SIZE="40"/TD
 /TR
 TR
 TD WIDTH="9%" BGCOLOR="#3C6F99"
 P ALIGN="RIGHT"BFONT COLOR="white"Message:/FONT/B
 /TD
 TDTEXTAREA NAME="content" ROWS="10" COLS="40"/TEXTAREA/TD
 /TR
/TABLE
/P

PINPUT TYPE="SUBMIT" NAME="Submit" VALUE="Send Message"
/FORM

/BODY

/HTML

At 04:07 PM 5/17/00 -0700, you wrote:
Louis wrote:
  CGI Error
  The specified CGI application misbehaved by not returning a complete 
 set of
  HTTP headers. The headers it did return are:

Is your script printing a Content-type header as the first thing it
does, followed by a blank line?

print "Content-type: text/html^/^/"

Kev


Kevin McKinnon, Network Engineer [EMAIL PROTECTED]
Sunshine Communications http://www.sunshinecable.com

PGP Public Key: http://www.dockmaster.net/pgp.html   PGP 6.0 www.pgp.com




;- Elan  [: - )]




[REBOL] [REBOL]Finding characters in strings/Comparing Re:(2)

2000-05-17 Thread tim

Hey Elan!
This is really important info, as far as
I am concerned. The side effect is that you also
showed me how to do simple bench-marking.
I had speculated myself that char-pos1 would be
the fastest.
Thanks, and good luck with the book!
Tim
At 04:53 PM 5/17/00 -0700, you wrote:
Hi Tim,

you wrote:
[...]
I would love to see some input and discussion as to what 
is the most efficient of the three functions. 
[...]

If you compare char-pos1 to char-pos2 then the only difference is that
char-pos2 adds a call to found? to char-pos1. It's probably safe to
speculate that char-pos1 should be more efficient.

if you accept that, then the field is narrowed down to char-pos1 vs.
char-pos0. You can speculate about these two, but without knowing the
implementation details of all, any and either, the degree of confidence in
the result of this speculation is a little lower.

As a matter of principle, either accomplishes what the combined any and all
accomplish. At face value I tend to think that char-pos1 should be more
efficient, since it consists of one (native) function call, where the
combination all/any requires two function calls. I doubt that any and all's
implementations can be that much more efficient than either's
implementation, that parsing and calling any and all would still be more
efficient than a single parse/call to either.

If you compare this speculation to some (inaccurate) measurements, I appear
to be on the right track:

 start: now/time loop 100 [char-pos0 s c] print now/time - start
0:00:46
 start: now/time loop 100 [char-pos1 s c] print now/time - start
0:00:42
 start: now/time loop 100 [char-pos2 s c] print now/time - start
0:00:54



I wouldn't consider readability to be an issue, because
this would not be a function that would need any maintenance.

Here goes:
char-pos0: func [str [string!] ch [char!] /ndx]
[
  any[all [ndx: find/case str ch index? ndx] 0]
]
char-pos1: func [str[string!] ch[char!] /local result]
[
   either result: find/case str ch [index? result] [0]
]
char-pos2: func [str[string!] ch[char!] /local result]
[
   either found? result: find/case str ch [index? result][0]
]




;- Elan  [: - )]






[REBOL] Suppressing == false Re:

2000-05-17 Thread tim

Hello:
Frequently when I use rebol code that evaluates
a condition, the interpreter spits out
== false
I'd like to be able to suppress that.

I've got a basic template to trap error messages.
It goes like this (complements of other list members):
if error? set/any 'err
try
[
  print "yes"
]
[
  err: disarm err
  print reform bind (get in (get in system/error err/type) err/id) in err
'type
]
since the code: print "yes" is syntactically correct, 
I get "== false" in the output.
How do I get rid of that?

Thanks
Tim






[REBOL] CGI Error Re:(3)

2000-05-17 Thread news . ted

 print "/bodyhtml"

This should be /html - but that would not have caused the error you
reported.

Here's a generic email script that I've been using. The form uses the
same variable names you see here (TO, FROM, SUBJECT). Note that you can
add variables in the form, and REBOL will automatically be appended
them to the content. The thing I've been meaning to add is a way to
redirect the user to a confirmation page from the HTML form.

--

#!/usr/bin/rebol --cgi
REBOL[Title: "Contact CGI" ]

;- Configure Internet Mail, if necessary
; set-net [ ] 

;- Create object based on system/standard/email with usual defaults.
;- (!) Added FROM_NAME for personal name
email-obj!: make object! [
TO: none
CC: none
BCC: none
FROM: none
FROM_NAME: none
REPLY-TO: none
DATE: none
SUBJECT: none
RETURN-PATH: none
ORGANIZATION: ""
MESSAGE-ID: none
COMMENT: none
X-REBOL: {2.2.0.3.1 "The Internet Messaging Language (TM)
WWW.REBOL.COM"}
MIME-VERSION: none
CONTENT-TYPE: none
CONTENT: none

]

;- Retrieve HTML form variables from either CGI Environment or Standard
Input
email-obj: make email-obj! decode-cgi either
system/options/cgi/request-method = "GET"
[system/options/cgi/query-string] [make string! input]

;- Tweak email object
set in email-obj 'FROM to-string join email-obj/FROM_NAME [" "
email-obj/FROM ""]
set in email-obj 'REPLY-TO email-obj/FROM
set in email-obj 'SUBJECT join "[CONTACT] " email-obj/SUBJECT
;- (!) Work around bug in send - skips first line of CONTENT thinking
it's the SUBJECT
set in email-obj 'CONTENT join email-obj/SUBJECT [crlf
email-obj/CONTENT]

;- Send it - Message is in email-obj
send/header to-email email-obj/TO "" email-obj

;- Confirm it
print {Content-Type: text/html

!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"
html
head
!-- base href="" --
titleContact Confirmed/title
body
p align=centerThank you for contacting us./p
/body
/html
}
;- END OF PRINT

;- Done
quit



-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel 716 425-0252; Fax 716 223-2506.
-- http://www.husted.com/





[REBOL] read-io

2000-05-17 Thread max

Can anyone tell me what it means when read-io returns -1?


Thanks,
Max





[REBOL] Question on Secure (repost) Re:(4)

2000-05-17 Thread mdb

 Not sure what to say, Andrew. Don't take this personally but your solutions
didn't work whereas Volker's did.

Yours:

downloaddir: %/d/anti%20virus%20downloads/
== %/d/anti%20virus%20downloads/
 secure compose [(downloaddir) allow]
** Script Error: Invalid argument: compose.
** Where: secure compose [(downloaddir) allow]
 DirPermission: 'allow
== allow
 secure reduce [downloaddir DirPermission]
** Script Error: Invalid argument: reduce.
** Where: secure reduce [downloaddir DirPermission]

=
Volker's


 do compose/deep[secure[(downloaddir) allow]]
== [net allow file [allow read ask write ask execute]]
 do compose/deep[secure[(downloaddir) allow]]
== [net allow file [allow read ask write ask execute]
%/d/anti%20virus%20downloads allo
w]


Mike.
===
- Original Message -
From: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Wednesday, May 17, 2000 2:29 AM
Subject: [REBOL] Question on Secure (repost) Re:(3)


 Hi, Volker.
 Call me idiot, but I didn't understand what you're trying to say here:

  do compose/deep[secure[(my-dir) allow]]
 
  attention to the 'level in secure, this means, the compose is not
 evaluatet!
  you have to hack a bit more :)
 
   source secure
  secure: native [
  {Specify security policies (access levels and directories). Return prior
 settings.}
  'level [word! block!] "Levels are: quit, throw, ask, and allow."
  ]
 
  I suggest with default protection before:
  do compose/deep[secure[net ask file ask (my-dir) allow]]

 How is your solution better than:
 DirPermission: 'allow
 secure reduce [downloaddir DirPermission]
 ?

 Andrew Martin
 Who's been called an idiot today! :-( But I don't believe them... :-)
 ICQ: 26227169
 http://members.xoom.com/AndrewMartin/
 --





[REBOL] Question on Secure (repost) Re:(5)

2000-05-17 Thread Al . Bri

Mike wrote:
 Not sure what to say, Andrew. Don't take this personally but your
solutions didn't work whereas Volker's did.

I won't take it tooo personally. I can call my self an idiot for not
checking it? :-)

'source doesn't evaluate it's argument. I didn't check for that. :-(

 source secure
secure: native [
{Specifies security policies (access levels and directories). Return
prior settings.}
'level [word! block!] "Levels are: quit, throw, ask, and allow."
]

Note the little tick { ' } by 'level.

I'm used to the arguments being evaluated.

Andrew Martin
Making new records in personal idiocy. :-D
ICQ: 26227169
http://members.xoom.com/AndrewMartin/
--