[REBOL] [ANN] rebXR experimental pre-release

2004-05-24 Thread Andreas Bolka

Fellow Rebolers!

I'm sure some of you remember Maarten Koopmans' excellent asnyc://
tutorial sent to the list some time ago. What you might not know, is
that Maarten also did some most excellent work combining a standalone
server (based on async://) with rebXR.

Based on Maarten's stuff, I have a new rebXR version in the works,
which includes a standalone server and maybe an async client. Here is
an experimental pre-release of that rebXR version.

You can fetch it at:
- http://earl.strain.at/rebol/rebXR/rebXR-experimental-20040524.zip

Included is a "make-lib.r" script, which combines all rebXR modules
(except the cgi-server module) into a single file, rebxr.r. The async
server is started via

  xmlrpc-serve port-number allowed-methods

So a full async XML-RPC "add" server would be:

-- snip --
do %rebxr.r

sample-add: func [ a b ] [ return a + b ]

xmlrpc-serve 9090 [ sample-add ]
-- snap --

I'd appreciate any bug reports (preferrably via personal email) and
hope to get out the new stable version of rebXR "Real Soon Now" :)

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: probe/dump-binary survey

2004-05-04 Thread Andreas Bolka


Tuesday, May 4, 2004, 4:48:10 AM, Volker wrote:

> Now instead of "send" i could not resist to press "hack", and here
> is:

thanks for sharing!

i found it exciting that this piece of code uses loads of typical
REBOL idioms - i.e. it can be considered a piece of REBOL wizardry :)

> ;the code
> dumpers: copy[]
> add-dump: func[guard dump-how][
>  insert dumpers reduce[guard dump-how]
> ]
> dump: func[val][
>  bind dumpers 'val
>  foreach[guard dump-how] dumpers [
>   if attempt guard [attempt dump-how break]
>  ]
>  :val
> ]
> add-dump [true][probe val]

> ;demo, dumping an object smart
> ctx: context[type: 'my-type id: 1 lots-of-data: [1 2 3]]
> dump 1
> dump ctx

> add-dump ['my-type = val/type][
>   print ["my-type" val/id "has" length? val/lots-of-data "elements"]
> ]
> dump 1
> dump ctx

> ;demo-output
> ;first unsmart
> 1  
> make object! [ 
> type: 'my-type 
> id: 1 
> lots-of-data: [1 2 3] 
> ] 
> ;now smarter
> 1 
> my-type 1 has 3 elements 

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: probe/dump-binary survey

2004-05-03 Thread Andreas Bolka


Monday, May 3, 2004, 11:54:45 AM, Gregg wrote:

> This is interesting. I've always thought of PROBE as "show me the
> value" where the inlining aspect was the big benefit, but that it
> didn't add as much as it could for certain types of values (e.g.
> binary! and bitset!).

that's interesting indeed ;) different mindsets :)

i'd strongly urge for 'probe to be not modified for exactly the same
reasons anton, romano and maxim have expressed before.

i see probe as a way to inspect data and be able to immediately use
the probe's output (e.g. feed the probe'd data back into a REBOL
console).

> What about a refinement on PROBE that makes it produce DUMPed
> output?

no problem with that ;) however i don't how the refinement would
produce a benefit compared to adding just another function (named
dump, for example :)

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: dump-binary

2004-05-02 Thread Andreas Bolka


Sunday, May 2, 2004, 2:50:44 AM, Jaime wrote:

> dump-bin: func [
>   "Print ASCII info for entire binary. (for debugging)"
>   bin [binary!]
>   /local v t c r pad pl len chars tmp
> ][

> ..

I just have to metoo: Jaime, that's great! I've been working with
something similar for years, but your dump-bin is just sooo much
better!

I hope this will make it's way into REBOL/Core in one form or another.

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: hook while downloading from html port

2004-04-14 Thread Andreas Bolka


Wednesday, April 14, 2004, 6:45:13 AM, Maxim wrote:

> I was wondering, if its possible to put a hook somewhere (even if
> deep) within the port or more specifically the html port handler, so
> that we can update something elsewhere, do statistics or print out
> transfer rate for example...

I guess you rather mean the http ports, but anyway: I think that
should be achievable by using async:// networking. But sorry, haven't
done it (yet) and no so I've no example handy.

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: HTTP Post with dynamic values

2004-04-12 Thread Andreas Bolka


Monday, April 12, 2004, 11:47:29 PM, Tom wrote:


> write to-file join var-X ".txt" read/custom url ['POST rejoin [
>   "M12_SEL_DINI=" var-1
>   "&K01=WINQ120&K02=89T4810&K03=" var-3
>"bla bla"
> ]]

i fear you are missing a 'reduce here:

write to-file join var-X ".txt" read/custom url reduce [
  'POST
  rejoin [
"M12_SEL_DINI=" var-1
"&K01=WINQ120&K02=89T4810&K03=" var-3
 "bla bla"
  ]
]

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: [words] strange thing...

2004-03-26 Thread Andreas Bolka


Friday, March 26, 2004, 1:41:04 PM, Robert wrote:

>>> test: ["a" "b"]
> == ["a" "b"]
>>> b: to-word form test
> == a b
>>> b
> == a b
>>> type? b
> == word!

> So it's possible to create words that have spaces?? But you can
> never access it directly. Wondering if this is intended, because the
> docs state other rules for words.

It's possible to create loads of "invalid" words with to-word.
Similarly, for example:

>> b: to-word ","
== ,
>> b
== ,
>> type? :b
== word!
>> set :b 'test
== test
>> get :b
== test
>> :,
** Syntax Error: Invalid word -- :,
** Near: (line 1) :,
>> ,: 'test
** Syntax Error: Invalid word -- ,:
** Near: (line 1) ,: 'test

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: ANN: snuffstream

2004-03-10 Thread Andreas Bolka


Monday, March 8, 2004, 9:26:57 PM, Maarten wrote:

> Async http 1.0 file server for progressive downloads of divx, mp3,
> MPEG-2: http://www.surfnetters.nl/maarten/snuffstream.zip

> As little as 259 kB it gives little load on your system when sending
> out multiple divx's and mp3's.

Wow! I must confess, I'm impressed! To summarize my first experiences:
Snuffstream performs reasonably good, in fact it performs so good,
that measuring it against Apache made sense.

Considering Snuffstream's size, it's memory and CPU usage while
running I'm inclined to say that is a very interesting product,
although I'm (obviously) not yet able to tell about long-time
performance or various issues that may arise in "real world"
deployment.

>From what I can tell at the moment, I consider Snuffstream a viable
HTTP server for static file serving purposes, especially when a
"personal" server (e.g. running on your "desktop" machine) is
required. It's a serious competitor to established products in this
sector, especially when we consider Snuffstream's "just drop it
somewhere" installation.

Further, due to it's size and reasonable performance, embedding
Snuffstream in custom applications that require static HTTP file
serving seems to be an obvious fit.

Finally, Snuffstream seems to be _very_ suited for it's marketed
purpose, namely as VLC server.

Once I have more data on long-time stability, I'll report again :)
Finally, some test results that lead me to above conclusions:

1) Downloading a 481 MB file first with wget and then with Firefox.

Snuffstream:
  - wget: download at 5.38 MB/s
  - Firefox: download at roughly 4.0 MB/s
  - Both: the process's CPU usage stays between 2% to 10%
  - Both: process size keeps constantly at around 5 MB

Apache:
  - wget: download at 7.58 MB/s
  - Firefox: download at roughly 3.9 MB/s
  - Both: CPU usage at 0%
  - Both: process size total (2 processes) at around 6.5 MB

2) Simulated load requesting a 9 byte .txt file. Snuffstream's
config.r has been modified to serve *.txt as text/plain.

  2.1) 1 worker, 100 sequential requests:
  - snu: 150 req/sec,  6.8 ms avg time per req
  - apa: 400 req/sec,  2.6 ms avg time per req

  2.2) 2 parallel workers, 100 sequential requests each:
  - snu: 150 req/sec, 13.3 ms
  - apa: 400 req/sec,  4.9 ms
  
  2.3) 10 parallel workers, 10 sequential requests each:
  - snu: 150 req/sec, 67.0 ms
  - apa: 380 req/sec, 25.0 ms

  2.4) 50 parallel workers, 2 sequential requests each:
  - snu: 100 req/sec, 500.7 ms
  - apa: 200 req/sec, 250.3 ms

3) Simulated load requesting a 3 KByte .gif file. Snuffstream and
Apache are both configured to serve this as application/octet-stream.

  3.1) 1 worker, 100 sequential requests:
  - snu: 150 req/sec
  - apa: 400 req/sec

  3.2) 10 parallel workers, 10 sequential requests each:
  - snu: 144 req/sec
  - apa: 380 req/sec
  

My test setup: A P4-M 1.6, 512 MB RAM, 7200 RPM IDE HDD, WinXP SP1.
Snuffstream version as avail from Maarten's site, Apache 2.0.48,
downloads using GNU Wget 1.8.2 and Mozilla Firefox 0.8. Load tests
using a slightly customized version of ApacheBench Version 2.0.40-dev
(Revision: 1.120, apache-2.0).

Disclaimer: These tests make no scientific claim. Test setup
information is provided for informal purposes.

-- 
Best regards,
 Andreas



-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: async interface

2004-03-09 Thread Andreas Bolka


Thursday, March 4, 2004, 4:33:29 PM, Romano wrote:

> I should like to define a common (standard) interface for async
> protocols.

> I proposed some time ago an object! style, like the View feel,
> instead of the awake function.

> What do you think?

Sorry if that's missing the point, but I'm currently using something
like the following in my async:// experiments:

-- snip --
async-handler: context [
; default error handler
on-error: func [ port [port!] error [error!] ] [
print mold disarm error
true
]

; default async event handlers
on-connect: func [ port [port!] ] [ false ]
on-close:   func [ port [port!] ] [ attempt [ close port ] true ]
on-read:func [ port [port!] ] [ false ]
on-write:   func [ port [port!] ] [ false ]

; default dispatcher
handle: func [ port [port!] state [word! error!] ] [
either error? state [
on-error port state
] [
switch state [ 
connect [ on-connect port ]
close   [ on-close port ]
read[ on-read port ]
write   [ on-write port ]
]
]
]
]
-- snap --

The 'handle dispatcher is to smoothly use object!'s based on the above
as 'awake handler.

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: upcomming tool [glayout]

2004-03-02 Thread Andreas Bolka


Tuesday, March 2, 2004, 4:21:34 PM, Maxim wrote:

> just tought I'd let you all in on glayout.

> Its an integration of the core functionality of the
> second-generation glass layout engine RIGHT INTO VID :-)

> this will let you build uis based on the nested row/column layout
> mechanism.

sounds interesting. if you know a bit about java i'd suggest having a
look on jgoodies forms (http://www.jgoodies.com/freeware/forms/) which
is by far the best layout engine i've ever worked with. may be
inspiring ...

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: Can I define an anti function?

2004-02-24 Thread Andreas Bolka


Monday, February 23, 2004, 8:55:15 PM, Ladislav wrote:

> Question: Is the guess about Rebol correct? (I will post my answer
> later)

I'll second Gabriele's answer: The reasoning seems to be intriguing at
first glance, but it's (at least partly) wrong.

A (naive) demonstration:

  anti: func [ f ] [ func first :f compose [ not (second :f) ] ]

  f: func [ a b ] [ = a b ]
  anti-f: anti :f

  f 1 2
  ; == false
  anti-f 1 2
  ; == true

The above obviously does not cope with functions where 'return is
used, however I'm not going into more detail here, as I'm really
looking forward to Ladislav's answer (which will be more correct than
mine could ever be, anyway).

But let me explain why I weakened my above statement with 'at least
partly'. In Scheme the following is perfectly legal:

  (define (anti f) (lambda args (not (apply f args
  (define (f a b) (equal? a b))
  ((anti f) 1 2)
  ; == #t

In REBOL however, my naive approach given above would not give the
desired results in this case (anti :f 1 2), as anti :f does not return
a "loaded" function, i.e. we'd have to force it's application by using
'do:

>> do anti :f 1 2
== true
>> do anti :f 1 1
== false

In my opinion, that is the perfect REBOL equivalent to the special
Scheme form used above. However, Scheme purists may argue with me on
that point :) Nevertheless, even in Scheme, I imagine the "typical"
use of anti would be:

  (define anti-f (anti f))

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: No-wait

2004-02-23 Thread Andreas Bolka


Monday, February 23, 2004, 9:47:33 PM, Paul wrote:

> However, I was using the small reference of code to demonstrate the
> blocking aspect of the port despite no-wait. So I have a fix for my
> problem but not a good definition of what no-wait does. From /core
> docs:

>   Nowait port will not wait for data

> However it seems that the port does sit and wait.

It does not. 'wait will not block on the client port, but only on the
server port. Use 'wait on the server port with a timeout value (e.g.
0.02) if you don't want to block while waiting for a client to
connect.

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: No-wait

2004-02-23 Thread Andreas Bolka


Monday, February 23, 2004, 4:31:01 AM, Paul wrote:

> Even that still blocks. Need a way of not waiting for the port data
> if nothing is there.

But here, only the "accept" (i.e. the wait on the listen port) blocks.
You can overcome this by adding a "timeout":

  port: open/direct/no-wait tcp://:7000
  x: 0
  forever [
  print x + 1
  x: x + 1
  if not none? tmp: wait reduce [ port 0.02 ] [
 data: first tmp
 ; data is bound to a "client" port
  ]
  ]

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: No-wait

2004-02-22 Thread Andreas Bolka


Sunday, February 22, 2004, 10:42:06 PM, Paul wrote:

> Problem is that when I try copy I get:

> ** Script Error: Cannot use copy on this type port
> ** Where: forever
> ** Near: data: copy port

Your example was:

  port: open/direct/no-wait tcp://:7000
  x: 0
  forever [
  print x + 1
  x: x + 1
  data: first wait port
  ; HERE
  ]

At the point I marked with HERE, you have a _server_ port bound to the
word 'port and a _client_ port bound to 'data. Basically,

  data: first wait port

_accepts_ a new client. After HERE you can do copy on 'data, e.g.:

  tmp: copy data

and copy will behave here, as Maarten described.

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: decode-cgi bug (?)

2004-02-19 Thread Andreas Bolka


Thursday, February 19, 2004, 5:18:19 PM, Will wrote:

> there seems to be a bug in your function:

 >>> decode-cgi "a=1&b=&c=3"
> == [a: "1" b: "1" c: "3"]

thanks for reporting, will. fixed:

decode-cgi: func [
 {Converts CGI argument string to a list of words and value strings.}
 args [any-string!] "Starts at first argument word"
 /local list nv-pair value name name-chars val
][
add-nv: func [ list name value /local val-ptr ] [
if none? name [ return ]

value: dehex replace/all any [ value (copy "") ] "+" " "
either val-ptr: find list to-set-word name 
[ change/only next val-ptr compose [ (first next val-ptr) (value) ] ]
[ append list compose [ (to-set-word name) (value) ] ]
]

list: make block! 8
name-chars: complement charset "&="
nv-pair:[ copy name some name-chars 
  (val: none) value (add-nv list name val) | "&" ]
value:  [ "=" value | "&" | [ copy val to "&" skip | copy val to end ] ]

parse/all args [ some nv-pair | none ]
list
]

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: oss revisited (briefly!) -- GROOVY

2004-02-17 Thread Andreas Bolka


Tuesday, February 17, 2004, 9:08:15 PM, Maxim wrote:

>> Max wrote:

>>> IMHO  Java is dying... slowly but surely.

>> I disagree. Java seems to be doing much *better* these days. Lots
>> of cool projects and people building farmeworks which interoperate.

> that's news to me... thanks for setting records straight ! I guess
> I'm burying myself too deeply in python and rebol.

> Is it still slow?

if you don't behave, just as slow as any other language when you don't
behave.

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: crash

2004-02-15 Thread Andreas Bolka


Monday, February 16, 2004, 1:32:21 AM, Will wrote:


> Hello,

> can anybody confirm or is this known?

> /core 2.5.6 (osX 10.3.2)
 >>> to port! %/a
> Bus error

crashes on /core 2.5.6 on win32 (2.5.6.3.1) and linux (2.5.6.4.2).

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: oss revisited (briefly!)

2004-02-13 Thread Andreas Bolka


Friday, February 13, 2004, 5:16:27 PM, Petr wrote:

> Joel Neely napsal(a):

>> Having a definitive specification makes it possible to learn more
>> efficiently then trial-and-error or ask-somebody-when-stumped, and
>> also makes it possible to distinguish implementation defects (bugs)
>> from cases of I-didn't-understand-that-feature.

> Yes, but I also wonder WHO of us uses Java productively? [..] it
> looks more like each cell phone company implements functions by
> themselves, not by porting some standard code.

Please don't mix up Java and J2ME. The latter is only _one_ part of
the former.

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: decode-cgi bug (imbedded spaces in names)

2004-02-10 Thread Andreas Bolka


Tuesday, February 10, 2004, 12:47:11 AM, Tim wrote:

> I want to note that I modified decode-cgi so that a block of string
> pairs is returned rather than a block of alternating to-set-word
> types and strings.

> Reason for it: A rebol cgi program might be processing a form in
> which field names have imbedded spaces.

I think that it will be rather hard to get that kind of data to a CGI
in real world scenarios. You won't be able to pass it via method GET's
query string, as a blank is not a valid character there. So your url
will either look like http://foo/bar?first%20one=1 or like
http://foo/bar?first+one=1.

Quite the same holds for method POST. If you submit a 'input
type="text" name="first one"' with a value of "1" a browser will send
'first+one=1' as entity body.

However, if one _manually_ does a POST this kind of bad data is
certainly possible. For example

read/custom http://foo/bar [ post "first one=1" ]

will send 'first one=1' as entity body.

So, what's the point of those lengthy explanations? While this is a
scenario that is only created by 'broken' tools, 'decode-cgi should
certainly cope with this broken data.

Incidentially, my patched version of decode-cgi does _somehow_ cope
with it:

>> o: make object! b: decode-cgi "field one=1&fieldtwo=2"
>> probe o

make object! [
field one: "1"
fieldtwo: "2"
]
>> print mold b
[field one: "1" fieldtwo: "2"]
>> get in o to-word "field one"
== "1"

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: decode-cgi bug (?)

2004-02-09 Thread Andreas Bolka


Monday, February 9, 2004, 11:07:27 PM, Hallvard wrote:

> I know some people say "garbage in - garbage out", but one can't
> always control what comes into one's programs as input. Here's what
> came to one of mine:

> http://www.bbc.co.uk/cgi-perl/h2/h2.cgi?state=threads&board=cult.tamaraswift&&sort=T

thanks for reporting that, hallvard! i've extended my patched version
of decode-cgi to cope with that as well:

>> decode-cgi "state=threads&board=cult.tamaraswift&&sort=T"
== [state: "threads" board: "cult.tamaraswift" sort: "T"]

-- snip --
decode-cgi: func [
 {Converts CGI argument string to a list of words and value strings.}
 args [any-string!] "Starts at first argument word"
 /local list nv-pair value name name-chars val
][
add-nv: func [ list name value /local val-ptr ] [
if none? name [ return ]

value: dehex replace/all any [ value (copy "") ] "+" " "
either val-ptr: find list to-set-word name 
[ change/only next val-ptr compose [ (first next val-ptr) (value) ] ]
[ append list compose [ (to-set-word name) (value) ] ]
]

list: make block! 8
name-chars: complement charset "&="
nv-pair:[ copy name some name-chars value (add-nv list name val) | "&" ]
value:  [ "=" value | "&" | [ copy val to "&" skip | copy val to end ] ]

parse/all args [ some nv-pair | none ]
list
]
-- snap --

if someone wants to submit it to the view 1.3 effort, do not hesitate
to do so.

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: Threading continued

2004-01-29 Thread Andreas Bolka


Thursday, January 29, 2004, 7:31:50 PM, Maxim wrote:

> Who writes servers in rebol... not many of us...

I do. Although REBOL tries to punish everyone who does. So maybe
that's another reason why not many write servers in REBOL - it's
simply missing crucial features for some scenarios.

-- 
Best regards,
 Andreas

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: Threading continued

2004-01-29 Thread Andreas Bolka


Thursday, January 29, 2004, 5:05:11 PM, Maarten wrote:

> I have got some code and some questions. I have a working version of
> 'eval a function that takes a block of code and evaluates it like
> 'do.

Great! (And you have an interesting timing Maarten ... but that's
another story ;)

> Question: is this a thing any of you want despite the performance
> hit of 400% ?

You should know my answer: YES!

> It is easy for me to get there, but I need to know if there is
> anybody who'd like to see it available.

Yep, I'd definitely like to see it available. If you decide to not
release it, a personal mail would be fine too ... :)

-- 
Best regards,
 Andreas

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: ANN: RebDB Pseudo-Relational Database

2004-01-26 Thread Andreas Bolka


Monday, January 26, 2004, 4:58:09 AM, Ashley wrote:

> Some time ago I set out to fill this gap, and am now proud to
> release the fruits of my labour: RebDB v1.0, free for both
> commercial and non-commercial use. Software, plus extensive
> documentation, can be found at: http://www.dobeash.com/RebDB/

Congratulations, Ashley!

-- 
Best regards,
 Andreas

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] the utility of 'bind

2004-01-21 Thread Andreas Bolka


I will spare you my thoughts about REBOL's contexts and 'bind (for
now) but I have a practical question:

What is the utility of 'bind? No, I don't necessarily mean the typical
cases where bind is needed to prevent errors. What I'm really thinking
about are situations, where REBOL's behaviour regarding contexts and
bind is actually contributing towards an elegant solution for a real
problem.

I think I remember various parse-based solutions posted to the list,
that utilized bind. This is basically a question to those who
understand _and_ use 'bind to actually solve problems: What do you use
it for? Do you think REBOL's behaviour in those regards is practical?
Are you aware of elegant solutions based on 'bind?

-- 
Best regards,
 Andreas

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: interpreter crash with 'unique and list!

2004-01-15 Thread Andreas Bolka


Thursday, January 15, 2004, 4:32:56 PM, Paul wrote:

> What is interesting is that it didnt break on my first attempt but I
> pasted it a second time in the interpreter and then it gave the same
> error. So I'm thinking its something to do with the memory
> management.

Jup, just use larger sizes (e.g. unique make list! array 10) and
it will most likely always break on first attempt :)

-- 
Best regards,
 Andreas

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] interpreter crash with 'unique and list!

2004-01-14 Thread Andreas Bolka


using REBOL/Core 2.5.6.3.1 (win32) or REBOL/Core 2.5.6.4.2 (linux),
the following expression crashes the interpreter:

>> unique make list! array 15000
Invalid data type during recycle
** Press enter to quit...

[Submitted to feedback as (Feedback Id #41ej11430)]

-- 
Best regards,
 Andreas

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: Is Rebol OO?

2004-01-12 Thread Andreas Bolka


Monday, January 12, 2004, 2:35:51 PM, Romano wrote:

>> Sorry if this is a stupid question, but is REBOL Object Oriented?

> Yes, like Self:
> http://research.sun.com/self/language.html

Or maybe rather not like Self as REBOL misses Self's crucial
capability for inheritance (Self's parent slots).

-- 
Best regards,
 Andreas

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: http://www.rebol.net/cookbook/recipes/0038.html not working for newbie

2004-01-11 Thread Andreas Bolka


Monday, January 12, 2004, 4:21:44 AM, Kai wrote:

> When using it exactly as shown (log-data %log.txt "Opened"), I
> receive

> ** Script Error: attempt has no value
> ** Where: log-data
> ** Near: attempt [write/append file data]

> Any ideas?

Looks like you are using an older version of REBOL that misses the
'attempt function. I'd suggest upgrading to a recent version, but you
could also simply add attempt yourself:

attempt: func [
{Tries to evaluate and returns result or NONE on error.}
value
][
if not error? set/any 'value try :value [get/any 'value]
]

-- 
Best regards,
 Andreas

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: Is Rebol OO?

2004-01-11 Thread Andreas Bolka


Monday, January 12, 2004, 2:50:07 AM, A wrote:

> Gregg wrote:

>> While VB was object based, it didn't really support the three main
>> OO features (as they are generally interpreted), so it wasn't
>> considered OO.

> What were those three features?

encapsulation, inheritance, polymorphism (I guess).

-- 
Best regards,
 Andreas

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: Is Rebol OO?

2004-01-11 Thread Andreas Bolka


Sunday, January 11, 2004, 11:03:43 PM, Trevor wrote:

> Has anyone actually done this - built an OO framework in REBOL?

I've actually built a very simplistic implementation of
prototype-based OO (as in e.g. Self, JavaScript or Io) some time ago.

I could dig it up, but it was really just a very ugly proof of concept
and then prototype-based OO is not what is nowadays commonly
associated with OO :)

-- 
Best regards,
 Andreas

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: Is Rebol OO?

2004-01-11 Thread Andreas Bolka


Sunday, January 11, 2004, 9:20:51 PM, A wrote:

> Here's an example of OO code in C#:

> p = new Panel ();
> Button Cancel = new Button ();
> Cancel.Text = "Cancel";
> Cancel.DialogResult = DialogResult.Cancel;
> Cancel.FlatStyle = FlatStyle.System;
> p.Controls.Add (Cancel);
> CancelButton = Cancel;
> Button OK = new Button ();
> OK.Text = "OK";
> OK.DialogResult = DialogResult.OK;
> OK.FlatStyle = FlatStyle.System;
> p.Controls.Add (OK);

> The above creates a Panel control, and adds two buttons, one marked
> "Cancel", the other marked "OK". If it were expressed as a Rebol
> dialect, I'd use something like:

> Panel [
> Button/System "Cancel" 'Cancel
> Button/System "OK 'OK
> ]

> Which one would you prefer? :)

I wouldn't start with such kinda "peas and apples" comparisons unless
you discuss the various possibilities of REBOL and C#.

One could imagine even better REBOL dialects and even worse C# stuff.
(Why not go down to IL level in C#? That would look far more ugly, I'm
sure!) On the opposite, a bad REBOL dialect could look just as bad as
the C# code, whereas with XAML you could just write:

http://schemas.microsoft.com/2003/xaml";>
   Cancel
   OK


-- 
Best regards,
 Andreas

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: Is Rebol OO?

2004-01-11 Thread Andreas Bolka


Sunday, January 11, 2004, 6:52:50 PM, Behrang wrote:

> Sorry if this is a stupid question, but is REBOL Object Oriented?

No.

Although this basically boils down to what you consider to be "object
oriented" ;) Under the aspects commonly considered, "standard" REBOL
is clearly not object oriented. However, due to the flexibility of
REBOL, it's possible to build an object system on top of REBOL (just
as object systems have been built on top of e.g. Lisp/Scheme).

-- 
Best regards,
 Andreas

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: Words with no value error

2004-01-08 Thread Andreas Bolka


Friday, January 9, 2004, 3:18:05 AM, Anton wrote:

> Yes, as Andreas shows, there problem is when the try block returns
> an unset! value. eg:

Thanks, Anton, for making something useful out of my being
unconcentrated :)

As a sidenote, anybody ever compiled a list of all native!'s that
return unset! ?

-- 
Best regards,
 Andreas

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: Words with no value error

2004-01-08 Thread Andreas Bolka


Thursday, January 8, 2004, 6:03:04 PM, M&F wrote:

> I have a question about the " Script Error: xxx has no value"
> problem.

> I have seen that there's no way to trap such an error, which is not
> a syntax one.

if error? try [ an-unset-value ] [ ... ]

-- 
Best regards,
 Andreas

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: 'do vs 'reduce

2004-01-06 Thread Andreas Bolka


Tuesday, January 6, 2004, 5:24:10 AM, Volker wrote:

> Am Montag 05 Januar 2004 17:59 schrieb Gregg Irwin:

>> Hi Andreas,
>>
>> AB> i was wondering if, letting refinements and non-block! parameters
>> AB> aside, 'do is really just a "last reduce", in other words, if (a
>> AB> simplified) do could be precisely expressed as:
>>
>> AB>   do: func [ bl [block!] ] [ last reduce bl ]
>>
>> Well, both cause evaluation. If LOAD were used (thinking about binding
>> issues), and having not done any tests, my feeling is that you're
>> probably right. Knowing how Carl likes to build things, I can't
>> imagine he'd want two separate evaluators in REBOL. :)
>>

> similar, but
> 1) [do %file.r]  <> [reducce %file.r]

that's what i meant with "non-block!" parameters. there are similar
differences when you pass an url! or string! as parameter.

> 2) 'do can give arguments to expressions. the only function with a dynamic
> number of arguments:
!>>> reduce func[a][a * a] 5
> == 5 ; reduce-result is thrown away
!>>> do func[a][a * a] 5
> == 25 ; 5 is past to func by do. 'do fetches actually 2 arguments in this
> case.

same stuff here. not a block! is passed, and do behaves "specially"
(apply/invoke style) when a function! is passed as first parameter.

-- 
Best regards,
 Andreas

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] 'do vs 'reduce

2004-01-05 Thread Andreas Bolka


i was wondering if, letting refinements and non-block! parameters
aside, 'do is really just a "last reduce", in other words, if (a
simplified) do could be precisely expressed as:

  do: func [ bl [block!] ] [ last reduce bl ]

-- 
Best regards,
 Andreas

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: Center object & screen res.

2004-01-04 Thread Andreas Bolka


Sunday, January 4, 2004, 1:01:23 PM, Defiant wrote:

> With the small adjustment of  removing the 200x100 (to allow for full
> screenage) it works perfectly and its consistent in all screen resolutions.

> This information would be an ideal ( how to ) forum entry! ; )

There is still the REBOL cookbook - http://www.rebol.net/cookbook/

> screen-size: system/view/screen-face/size
> view center-face layout [
> size screen-size
> b: button "OK" [unview]
> do [b/offset: screen-size / 2 - (b/size / 2)]
> ]

-- 
Best regards,
 Andreas

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: Why no Forum? [OT]

2004-01-04 Thread Andreas Bolka


Sunday, January 4, 2004, 2:51:10 AM, Defiant wrote:

> The great thing about forums is the ability to make advanced
> searches

At least my email client is quite capable of doing quite advanced
searches, and once you are able to access a standardized repres of
emails (e.g. mbox) you are only limited by your imagination :)

> and section the sub forums into catogories. A rebol forum could have
> subs such as newbee section, liscensing and distribution, code help,
> view, core, etc...

Premature categorization has it's good and bad sides, nevertheless,
this _could_ still be emulated on a mail list, we even had an
experiment here, recently. Another possibility would be to simply
split mail lists (e.g. rebol-core-list, rebol-view-list).

> Another great thing about having a forum is that you can make common
> questions sticky so vets aren't answereing the same newb questions
> time and time again.

Yep, that's what FAQ's are about ;) No problem to achieve that with
mail lists ;) One could for example prominently link the FAQ at the
place you put your subscription information, or post the FAQ once per
month.

-- 
Best regards,
 Andreas

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: [series] Series performance was Re: MySQL-protocol.r

2004-01-03 Thread Andreas Bolka


Saturday, January 3, 2004, 7:37:04 AM, Ashley wrote:

> Operation   Block! List!  Hash!
> ==  =  =  =
> first / last1,961,614  2,038,423  1,936,023
> pick / poke / at1,844,334504  1,846,456
> find / select (1)   1,546,259  1,538,385  1,399,606
> find / select (2)  52 51  1,402,559
> foreach13 20 19
> insert 81  1,087,684 19
> insert tail 1,032,956861,769723,152
> change  1,572,834  1,569,881  1,307,086
> head / tail / next  1,883,858  1,916,338  1,816,748
> remove 80  1,493,110 54
> remove tail 1,127,093  1,187,992  1,115,157

> (1) First value in series
> (2) Last value in series

nice table, thanks ashley!

-- 
Best regards,
 Andreas

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] [ANN] vanilla 0.6

2003-12-23 Thread Andreas Bolka


Speaking for Christian and myself, after years and years (and, uhm,
years) of hard and diligent work we are proud to release the hitherto
longest-awaited Vanilla release ever: 0.6!

Vanilla is a simple, extensible hypertext system and framework for
developing small-scale web applications written in REBOL. Some
examples for areas where Vanilla has proven to be incredibly useful:
as supporting medium for project teams, as an personal idea store, as
idea interconnector, as competitive monitoring tool, as todo list, as
centrally administered contact database and as blogging tool.

The official homepage of vanilla is http://www.vanillasite.at/ - there
you'll find the full release notes, documentation, downloads and more.

Enjoy! Have fun and Merry Christmas! :)

-- 
Best regards,
 Andreas Bolka
 Christian Langreiter

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: Hashes in Rebol

2003-12-09 Thread Andreas Bolka


Tuesday, December 9, 2003, 12:47:53 PM, Konstantin wrote:

> Once again sorry for question which may be obvious for experienced
> Rebol programmers, but how can I

> 1. Remove  pair from hash

remove/part find hash key 2

> 2. Change value associated with the particular key

change find/tail hash key newvalue

-- 
Best regards,
 Andreas

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: page-breaks in html or pdf?

2003-12-05 Thread Andreas Bolka


Friday, December 5, 2003, 11:49:00 AM, Petr wrote:

> I chcecked out and did not find any way of how to issue something
> like page-break in html. It is probably not even possible.

there are two CSS properties named page-break-before and
page-break-after. by using e.g.

   span style="page-break-after: always;"

you could achieve what you want. however, i don't know which browsers
respect those attributes.

-- 
Best regards,
 Andreas

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] test - ignore

2003-12-03 Thread Andreas Bolka

pling plong ploing ...

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: PayLoad 1.2

2003-12-03 Thread Andreas Bolka


Tuesday, December 2, 2003, 1:39:48 PM, Olivier wrote:

> PayLoad has been updated. In this update (1.2), the size of the
> executable file is reduced.

Yeah, great! It now even works on my strange winxp ;) Thanks Olivier!

-- 
Best regards,
 Andreas

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: REBOL mailing list problems

2003-12-01 Thread Andreas Bolka


Monday, December 1, 2003, 8:45:47 PM, Carl wrote:

> It is quite possible that he simply made a mistake with his email
> client (or a REBOL script) that caused the flood.

Telling from a personal exchange, it was definitely no mistake but
quite the opposite.

Nevertheless, if he's off the list now, the problem should be gone.
Too much time and bandwith was already wasted, so f'up to /dev/null :)

-- 
Best regards,
 Andreas

-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: vim again

2003-11-27 Thread Andreas Bolka


Thursday, November 27, 2003, 4:47:23 PM, Maxim wrote:

> why would you want to use vi style of cryptic text editing in the
> year 2003?

because editing in vim is ultra-efficient, once you get used to it.
even in the year 2003, and recent developments (like jef raskin's
LEAP(tm) for "the humane environment") look very familiar to vim users
;)

> I work in ultra edit and man, I don't see how I could code faster
> (within a text editor)!

how much keystrokes would you need to delete the next 7 paragraphs of
text?

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: what a subject ;-)

2003-11-22 Thread Andreas Bolka


earlier:

> is anyone into adding [tag] in the subject of list messages to
> create easy rule wizards for use by all?

Saturday, November 22, 2003, 4:46:44 PM, moliad wrote:

> when I suggested the idea it was to add the topic as a concept, not
> as content.

> wadaya think?

i now regret that i simply scanned over the original thread.

i guess i'm not the only one on this list who reads a whole lot of
other ml's as well. or more generally, i guess i'm not alone with
getting quite a lot of email each day ;) so i'm not following every
thread on rebol-L closely, but scan over most of the messages diving
deeper when something sounds interesting.

the whole subject tag mess has made my (human) scanning process much
more harder, recently. in other words, scanning over rebol-L's
messages is much slower because of those messy subjects.

as my interest in a given messge is usually not bound to a categorical
classification  but  rather  to the topic at hand, my brain has not to
skip  over all those tags and discard their dis-information - a rather
exhausting process :) an example: i don't know wether i want to read a
message about e.g. [VID] - it might be a message about the event
handling in VID, which i'd really read, or it might be a message about
some low-level details i'm not currently interested. as i sai: just
knowing that it's classified as [VID] does not help.

if you'd use descriptive subjects in the first place, you might not
need the subject tag at all. one subject tag is reasonable, but as
soon as two tags show up, the whole thing becomes really messy and
quite useless to me as _human_ agent.

if you really want to do classification for non-human agents, i'd
suggest simply adding a custom header (e.g.
"X-REBOL-L-Classification") to your messages.

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: PayLoad 1.1 beta (Windows)

2003-11-17 Thread Andreas Bolka

Hi Olivier!

Monday, November 17, 2003, 8:45:05 AM, Olivier wrote:

> PayLoad has been updated to support Microsoft Windows. You can
> download the experimental version of this freeware encapsulator
> from: http://rwst.no-ip.com/payload/payload_1_1_windows.zip

crashes on me. more specifically:

winxp sp1, rebol 2.5.6, the following test script:

-- snip --
REBOL [ title: 'test file: %test.r ]
print "Hello, World!"
-- snap --

creating an out.exe with:

payload test.r rebol256.exe out.exe

trying to start out.exe brings up microsofts error report dialog.

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: Another day, another project

2003-11-07 Thread Andreas Bolka


Friday, November 7, 2003, 1:39:54 PM, Maarten wrote:

> Gregg will develop an SSL tunnel installer that will interact with a
> portal to get its configuration parameters. For the installer he
> will develop an install toolkit/dialect (as a side-effect).

an installer for stunnel (as in http://www.stunnel.org/) or for some
other SSL tunneling toolkit?

> If you're an SDK user you'll be able to generate *cross-platform*
> installers. As the toolkit will be open source (as well as the
> Stunnel installer) this will hopefully be a GOOD alternative to all
> those 30Mb Java installers as well.

sounds nice, indeed.

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: build a dhcpd with Rebol?

2003-10-27 Thread Andreas Bolka


Monday, October 27, 2003, 7:25:44 PM, Eric wrote:

> Ok, I'm mostly a newbie to Rebol but not programming in general.
> Anyway, I'm looking for info as to whether it could be possible to
> build a dhcp daemon with Rebol.

DHCP uses UDP as transport protocol, afair. REBOL does support UDP, so
building a DHCP daemon should be possible :)

> IF this is possible, does anyone have any pointers where to start
> looking(besides the RFC's that I'm already starting to tear
> apart)...a simple code example wouldn't be unwelcome.

I suggest that you take a look at the networking stuff in the
REBOL/Core Users Guide (http://www.rebol.com/docs-core.html)

There is a tip how to use server ports in REBOL in the REBOL Cookbook,
(http://www.rebol.net/cookbook/) and it might be helpful even though
it's about TCP server ports.

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: build a dhcpd with Rebol?

2003-10-27 Thread Andreas Bolka


Monday, October 27, 2003, 7:25:44 PM, Eric wrote:

> a simple code example wouldn't be unwelcome.

an ultra simple echo server + client:

-- server --
REBOL [ title: 'server ]
srv: open udp://:9001
forever [
cli: wait srv
print copy cli
]

-- client --
REBOL [ title: 'client ]
foo: open udp://127.255.255.255:9001
insert foo "bar"
close foo

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: REFERER to a URL in REBOL?

2003-10-23 Thread Andreas Bolka


Thursday, October 23, 2003, 6:49:59 PM, carlos.lorenz wrote:

> I need a way of getting the REFERER of a URL in my CGI. Any help?

referer: select system/options/cgi/other-headers "HTTP_REFERER"

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: reading back checksum/secure

2003-10-21 Thread Andreas Bolka


Tuesday, October 21, 2003, 8:42:31 PM, Carlos wrote:

> Considering the following code, how can I get :pwd back in plain
> English?

>>> pwd: ask "Enter password: "

> Enter password: mypass

> == "mypass"

>>> write %password.txt checksum/secure pwd

>>> pwd: read %password.txt

> == "รง'ร‘FJรก$6รจยง&รš[/^Qร˜8^[&"

you can't, and that's what one way hash algorithms are designed for.

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: Multithreading with Rebol

2003-10-17 Thread Andreas Bolka


Friday, October 17, 2003, 2:11:47 PM, Robert wrote:

> On Tue, 14 Oct 2003 19:18:36 -0400, Brian Parkinson
> <[EMAIL PROTECTED]> wrote:

>> I want to set up (say) a Rugby server, which will accept client
>> connections and process them. I'd like each connection to be handled in
>> its own thread (let's keep it simple and leave thread pools, resource
>> utilization and the like out of this) as I need each client's response
>> to be in reasonable time (pretend the processing involves I/O or
>> something). I'm kinda astonished that I can't do this in Rebol proper.
>> Unless I'm missing something real obvious, the only way that I can do
>> this is to rely on code that implements a cooperative multitasking
>> queue (a la Rugby) or roll my own (!).

> Hi, don't bee fooled by all this multi-threading hype. For example,
> have a look at www.xitami.com and theire LRWP protocol. This is done
> using a cooperative multi-tasking. Very cool and fast, and it can be
> coupled with Rebol quite easy.

The problem I see w/ coop multi-tasking (and I've implemented two coop
mt server frameworks in REBOL) is that it's a viral, an all-or-nothing
approach. If I have e.g. disk IO, I've to impl a simple file IO in a
coop way, i.e. decompositing it into a state machine w/ small tasks
that preferrably don't block. If I've some computing intensive
algorithm, once more, I've to state it in a coop way. And I (my very
personal opinion based on my experiences with that kind of stuff in
REBOL) find that decomposition rather boring and the result quite hard
to maintain. Imho, first class continuations would help in this
situation, but that's another topic.

So, when you control the whole application, it's at least possible to
completely adhere to a coop oriented programming approach. Once I want
to cleanly integrate with external apps or other libraries, yeah,
problems may arise - who guarantees that the library of my choice does
not use blocking IO, for example?

I'm in no way an expert in the theoretical issues surrounding this
topic, nor am I a REBOL guru. So it may well be that I've missed some
nifty ways to write something that won't require complete changes in
all my coding habits. So - questions, corrections and suggestions are
welcome :)

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: CMS in REBOL?

2003-10-15 Thread Andreas Bolka


Wednesday, October 15, 2003, 10:06:06 PM, Carlos wrote:

> I like the flexibility it gives me when all I want is to have some
> dinamic data (news, photos, ect) published in a hurry.

> I am very inclined to write a CMS myself using REBOL but first I'd
> like to know if is there any that I could start from.

You could have a look at vanilla -
http://www.langreiter.com/space/vanilla :)

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: execute external programs /core OS X

2003-10-15 Thread Andreas Bolka


Wednesday, October 15, 2003, 4:37:25 AM, Will wrote:

> This could be helpful:

>>> set-browser-path " "
> == " "
>>> browse "uptime > b"
>>> a: read %b   
> == { 4:02  up 162 day, 22:20, 3 users, load averages: 0.64 0.61 0.73
> }

cool :) thanks will.

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: pleac

2003-10-12 Thread Andreas Bolka


Hi Joel,

Sunday, October 12, 2003, 2:36:46 PM, Joel wrote:

> How about a slightly more REBOL-intensive variation?

> rot13: func [s [string!]] [
>  foreach char s [
>  prin any [
>  select/case "anabobcpcdqderefsfgtghuhivijwjkxklylmzm" char
>  select/case "AZABOBCPCDQDEREFSFGTGHUHIVIJWJKXKLYLMZM" char
>  char
>  ]
>   ]
>  prin newline
> ]

sorry the nit-picking, but i guess the first #"Z" in the second
sequence should rather be an #"N" :)

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: How to copy file ?

2003-10-12 Thread Andreas Bolka


Sunday, October 12, 2003, 4:11:01 AM, Ashley wrote:


>> the problem with copying files that way, is that it doesn't seem to
>> really scale. i.e. it seems to be impossible to copy a 600mb file
>> (rebol crashes, at least on win32 the last time i tried).

> The crash is probably due to the fact that read tries to copy the
> entire 600mb file into memory *before* then writing it to disk. For
> large files, copying portions at a time using ports could be the
> answer. I use the following function to copy files to a DVD (2048
> being the 2Kb DVD block size).

dcopy: function [
source-file [file!] "Source file"
target-file [file!] "Target file"
]


thanks ashley, that looks good!

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: How to copy file ?

2003-10-11 Thread Andreas Bolka


Saturday, October 11, 2003, 10:20:13 AM, A wrote:


> Patrick wrote:
>> I am surprised not to find a "file copying" command

> I'm fairly sure there isn't one. You can always write your own.
> Here's a simplistic version:

> File-Copy: func [Destination [file! url!] Source [file! url!]] [
> write/binary Destination read/binary Source
> ]

the problem with copying files that way, is that it doesn't seem to
really scale. i.e. it seems to be impossible to copy a 600mb file
(rebol crashes, at least on win32 the last time i tried).

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: steel latest news.. pretty long... Ignore if you wish..

2003-09-16 Thread Andreas Bolka


warning upfront: licensing discussion ahead.

executive summary:

- have a look at the Creative Commons "Attribution-NonCommercial-
  ShareAlike License" as that might be what you want
  (http://creativecommons.org/license/results-one?license_code=by-nc-sa)

- double-licensing (free for non-commercial, seperate commercial
  license) is tricky and harder than you might think, especially when
  contributions of others are to be merged into the "main" code-base.
  before embarking on double-licensing adventures, you should have a
  clear idea about your intentions (i.e. "what do I want to be my
  rights and obligations regarding the software", "what do I want to
  be the righty and obligations of contributors to my software")
  
Tuesday, September 16, 2003, 10:45:47 PM, Maxim wrote:

> Basically, anyone who works on a OSI certified project HAS to share
> his code

that's simply wrong. maybe you're mixing up GPL and other
OSI-certified licenses here. there are quite a lot OSI-certified
licenses (e.g. the MIT or BSD licenses), that do _not_ require
contributors to share their code.

GPL-licensed use however, requires exactly what you state -
modifications to the code most be released under GPL which also
enforces the release of modified code.

> and cannot really make any commercial license usefull.

users of your software licensed under a commercial license are only
bound to this commercial license.

however, GPL can make dual-licensing quite hard (as I explained in an
earlier mail). the practices of Mysql AB show one possible solution to
GPL/commercial-license dual-licensing issues.

> anyone in the world can copy a gpl bound project and then make
> profit from it,

hmm - your statement is a bit vague. there are several ways a
gpl-licensed user can "make profit" with the software, one is e.g.
stated in GPL's ยง1:

You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange
for a fee.

another possibility would be to charge for service offers which are
based on the GPL-licensed software. however, any modifications to the
software are bound to the GPL and _must_ therefore be released under
GPL terms. that's why the GPL is often called a "viral license."

> I am not charging any money and I do not wish anyone else to do so
> with my work, and sacrifices.

maybe you should get a clearer view of your wishes first. if you
simply want to allow free use in non-commercial projects, you need a
license that allows exactly that: free use in non-commercial projects.

however, this only states how the software is to be _used_ but does
not state how _changes_ to the original software are to be handled.

you could enforce that modifications of your software are released
with the same license the original software was released. so you would
be allowed non-commercial use of those contributions. (**)

if one of those contributions is really that huge or important and you
want to make it available to your commercial customers, you would then
have to negotiate a custom license with the copyright holder of the
contribution. typically you would pay an appropriate amount for this
license, or agree to share some percentage of your profit with the
contributor. if the contributor grants you re-licensing rights for
free - be happy :)

but you sound a bit, like you would like to allow all people to
contribute but only you are allowed to relicense stuff commercially
and then make profit. although there are licensing possibilities to
enforce this particular mode, as you might see, this is quite unfair -
why should only you get paid for your stuff while you exploit
contributors for your personal profit?

> So... I will build my own license - the SCL - Steel Community
> License.

unless you have good license lawyers I would really discourage from
building an own license as this is hard and very time-consuming work
and unless you are familiar with the applicable laws, the chance is
very high that the license you create is invalid and the terms of the
license are not binding.

instead I'd suggest to have a look at the Creative Commons licenses[1]
especially at the "Attribution-NonCommercial-ShareAlike License" [2]
as this might be what you want.

you could also have a look at the OSI-certified licenses [3] and see
if some license there matches your needs.

[1] http://creativecommons.org/license/
[2] http://creativecommons.org/license/results-one?license_code=by-nc-sa
[3] http://www.opensource.org/licenses/


final warning: IANAL :)


**: this would also allow you to bundle and non-comercially distribute
the contributions with the "main" code-base. that means, you would be
able to incorporate contributed changes and release the results from
your web-site free for non-commercial use.

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: CGI POST Protocol

2003-09-16 Thread Andreas Bolka


Tuesday, September 16, 2003, 9:38:33 PM, MeF wrote:

> I have already looked at the docs and example scripts but I have not
> found anything that can help me.

Page 12-25 (pdf-page 373) in the REBOL/Core User Guide contains a
section on "Posting CGI request".

> I would like to know a way to send data to a web-server as if it
> received it from a normal page with a form and using the POST
> protocol.

> In detail, I want to skip a front page asking for a password interactively 
> by sending the needed data to the web-server directly through REBOL and so 
> obtaining directly the second protected page.

read/custom http://page/ [ post "name1=value1&name2=value2" ]

or

post-data: "name1=value1&name2=value2"
read/custom http://page/ compose [ post (post-data) ]

-- 
Best regards,
 Andreas


-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.



[REBOL] Re: Vanilla forms mechanics ? [OT]

2002-10-20 Thread Andreas Bolka

Sunday, October 20, 2002, 5:34:23 AM, Jason wrote:

> Can anyone give me a quick tutorial on how to make forms in Vanilla?

> I'm looking at the existing examples, but getting a bit confused
> what syntax goes where, how to call my own dynasnips etc..

quite OT on the REBOL ml. v've CC'ed this reply to the vanilla ml.

-- 
Best regards,
 Andreasmailto:andreas.bolka@;gmx.net

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Re: REBOL/BASE testing

2002-10-15 Thread Andreas Bolka


Saturday, October 12, 2002, 6:38:21 PM, RebOldes wrote:

> As you can see the Rebol/BASE is almost 3 times faster. It really
> worhts to rewrite some of the server-side scripts to be runable with
> it:-))

i would rewrite a lot of them, if only rebol/base was available for
linux/unix.

-- 
Best regards,
 Andreasmailto:[EMAIL PROTECTED]

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Re: System Port Trap Example

2002-10-13 Thread Andreas Bolka

Sunday, October 13, 2002, 9:21:34 AM, Romano wrote:

>> The code below will detect both CTRL-C and REBOL ESCAPE key.

> On my 1.2.8.3.1 only escape.

> And this expression:
> get-modes system/ports/system 'system-modes
> gives as result:
> [window winmsg endian]

> so the following code will be never executed:

>   if find get-modes system/ports/system 'system-modes 'signal [
[...]

> What it useful for?

the result depends on the operating system you're working on. for
example on linux you'll get the following:

>> get-modes system/ports/system 'system-modes
== [signal read-fd write-fd except-fd signal-names endian]

as of course rebol will most likely not receive windows messages on
linux :)

-- 
Best regards,
 Andreasmailto:andreas.bolka@;gmx.net

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Re: XML.com Embedded Markup Considered Harmful [Oct. 02, 1997]

2002-10-11 Thread Andreas Bolka

Friday, October 11, 2002, 5:27:37 PM, Petr wrote:

> I looked at it too (only a very quick review though), and it looks
> too academic to me :-) How can it be practically usefull? Too much
> new terms around last months - RFM, Naked Objects, Associative data
> models, etc., but how is it all usefull? Practicall example, etc.?

hmm, an associative data model is not that academic after all:

"Memory that is addressed by content rather than by address; content
addressable is often used synonomously. An Associative Memory permits
its users to specify part of a pattern or key and retrieve the values
associated with that pattern."

- http://c2.com/cgi/wiki?AssociativeMemory

-- 
Best regards,
 Andreasmailto:andreas.bolka@;gmx.net

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Re: build-markup and Apache set-up?

2002-10-02 Thread Andreas Bolka


Wednesday, October 2, 2002, 9:25:06 PM, Petr wrote:

> - PHP is precompiled with Apache in most cases, so let's assume it
> is so. The only thing the team needs is to put resulting page
> wherever they want into their web-site structure

> - now REBOL - no Apache module, only X time slower CGI interface is
> left. CGI scripts are supposed to be placed mostly into /cgi-bin or
> so subdirectory, but I want such page to be placed everywhere in
> web-site directory structure - simply an equivalent of PHP. How to
> set apache for that?

PHP can run in two modes:
- as native module
- in cgi redirection mode

It actually should be possible, two let RSPs behave quite similar to
PHP pages.

CGI redirection mode is actually quite interesting:

- you register a MIME type with an extension, e.g.
application/x-httpd-rebol with .r or .rsp

- then you tell apache, that whenever an resource of type
application/x-httpd-rebol gets requested, it should take the file and
pipe it thru an CGI.

so you'll need some components:

- an http-accessible directory where CGIs can be executed (usually
cgi-bin)

- a small rebol CGI, that reads everything it gets from stdin,
processes this with build-markup and 'prints the result to stdout

- an appropriate apache configuration to do CGI redirection of all
.rsp files to this CGI

i assume that you've got a place where to put CGIs. Now add the
following lines to your apache config:

AddType application/x-httpd-rebol .rsp
Action application/x-httpd-rebol "/cgi-bin/rsp.cgi"

Write the small REBOL CGI outlined before, and place it into your
cgi-bin directory (using the extension .cgi).

Give it a try and do not hesitate to ask if problems arise :)

-- 
Best regards,
 Andreasmailto:[EMAIL PROTECTED]

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Re: CGI directory access questions

2002-09-05 Thread Andreas Bolka


Thursday, September 5, 2002, 12:33:24 PM, Jason wrote:

> Q: Is it possible to write to another directory via CGI?

Of course it is - if you're allowing the CGI to do so.

I guess you've a unix rights problem - you'd better have a look wether
the CGI is allowed to write to your target directory.

-- 
Best regards,
 Andreasmailto:[EMAIL PROTECTED]

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Re: arghh!@#$ => HELP please with http upload

2002-09-01 Thread Andreas Bolka


Sunday, September 1, 2002, 3:52:33 AM, Jason wrote:

> arghh!@#$  =>> HELP..

> Please, does anyone have a tested, working example of http upload
> script in REBOL with its HTML form?

For a very basic example, use the following two things:
- one cgi handling the HTTP POST
- a HTML containing the form

put the cgi into the cgi directory of your webserver (cgi-bin) and
modify the first line to properly reference your rebol.exe.

put the html into the documents directory of your webserver (htdocs)
and eventually modify the action="" to properly target the cgi.

here we go, the html first [no proper (X)HTML, i hope you'll forgive
:)]

--- snip - echo-post.html ---


  File1:  
  File2:  
  
  

--- snap ---

and now the (very basic) cgi:

--- snip - echo-post.r ---
#!c:\utils\rebol252.exe -cs
REBOL []

decode-multipart-form-data: func [ 
  p-content-type p-post-data 
  /local list ct pd bd delim-beg delim-end mime-part 
] [
  list: copy []
  if not found? find p-content-type "multipart/form-data" 
[ return list ]

  ct: copy p-content-type
  pd: copy p-post-data
  bd: join "--" copy find/tail ct "boundary="

  delim-beg: join crlf crlf
  delim-end: rejoin [ crlf bd ]

  mime-part: [
( ct-dispo: content: none ct-type: "text/plain" )
thru bd
thru "content-disposition: " copy ct-dispo to crlf
opt [ thru "content-type: " copy ct-type to crlf ]
thru delim-beg copy content to delim-end 
( handle-mime-part ct-dispo ct-type content )
  ]

  handle-mime-part: func [ 
p-ct-dispo p-ct-type p-content 
/local fieldname 
  ] [
p-ct-dispo: parse p-ct-dispo {;="}
fieldname: select p-ct-dispo "name"

append list to-set-word fieldname
either found? find p-ct-type "text/plain" [
  append list content
] [
  append list make object! [
filename: select p-ct-dispo "filename"
type: copy p-ct-type
content: either none? p-content 
  [ none ] 
  [ copy p-content ]
  ]
]
  ]

  use [ ct-dispo ct-type content ] [
parse/all pd [ some mime-part ]
  ]

  list
]

len: load any [ system/options/cgi/content-length "0"]
post-data: make string! (len + 10)
while [len > 0]
  [ len: len - read-io system/ports/input post-data len ]

tmp-post: 
  decode-multipart-form-data 
system/options/cgi/content-type 
post-data

print "Content-type: text/plain^/"
print mold tmp-post
--- snap ---

I hope that helps :)

-- 
Best regards,
 Andreasmailto:[EMAIL PROTECTED]

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Re: multipart/form-data

2002-08-31 Thread Andreas Bolka


Friday, August 30, 2002, 8:01:27 PM, Gabriele wrote:

> On Friday, August 30, 2002, 7:22:32 PM, you wrote:

>> When you store some REBOL code into a vanilla snip, look out for
>> {}'s in the original code, as these are valid string delimiters in
>> REBOL but special characters in vanilla.

> BTW Andres and Chris, what about using something different, or at
> least allowing the user to disable this kind of processing for some
> snips? This is mainly a problem if you want to include CSS styles in
> a template.

A method to partially disable text parsing is already designed, if
you'd like to implement it, contact me off-list.

And if you want to use CSS stylesheets right now, use external
stylesheets and include them in your template.

-- 
Best regards,
 Andreasmailto:[EMAIL PROTECTED]

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Re: multipart/form-data

2002-08-30 Thread Andreas Bolka


--

comment [ ; for Jason only
When you store some REBOL code into a vanilla snip, look out for {}'s
in the original code, as these are valid string delimiters in REBOL
but special characters in vanilla.

Use my original code as posted on the mailing list as you've one of
these "escpaing mistakes" in the file you attached to your last mail.
]

--

In your example, tmp-post will look like the following:

[
   MAX_SIZE: "10"
   description: "describe me"
   filename: make object! [
 filename: "E:\FLASH\jasonMX\buddha.jpg"
 type: "image/pjpeg"
 content: {JFIFHH File }
   ]
]

you'd probably use it as follows:

  cgi-obj: construct tmp-post

or if you use some older rebol

  cgi-obj: make object! tmp-post

and then access the filename of the uploaded file via

  cgi-obj/filename/filename

or you could write the content to a file

  write/binary %somefile.jpg cgi-obj/filename/content

all of these should work :) good luck! :)

Friday, August 30, 2002, 2:04:01 PM, Jason wrote:

> -7d22e4fe68
> Content-Disposition: form-data; name"MAX_SIZE"

> 10
> -7d22e4fe68
> Content-Disposition: form-data; name="description"

> describe me
> -7d22e4fe68
> Content-Disposition: form-data; name="filename";
> filename="E:\FLASH\jasonMX\buddha.jpg"
> Content-Type: image/pjpeg

>   JFIFHH File written by Adobe Photoshop 5.2  .etc etc
> etc

> Q2: How to I access the tmp-post object? For example the filename or
> description?

> Q3: How to save just the image contents as a jpeg file, and link it
> for display.

-- 
Best regards,
 Andreasmailto:[EMAIL PROTECTED]

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Re: Commercial-quality REBOL programmers needed

2002-08-17 Thread Andreas Bolka


Saturday, August 17, 2002, 2:37:08 AM, Andrew wrote:

> I've got more dialects for creating CSS stylesheets, working with
> databases and HTML form manipulation (like XForms but better); all
> of which are still in developement.

Any chance to have a look at the current state of the form
manipulation dialect :) ?

-- 
Best regards,
 Andreasmailto:[EMAIL PROTECTED]

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Re: REBOL/Core 2.5.3 Released

2002-08-04 Thread Andreas Bolka


Saturday, August 3, 2002, 6:08:19 AM, Carl wrote:

> A new REBOL/Core has been released for testing purposes.
> Check out the list of changes and find out where to get
> it at:

>  http://www.reboltech.com/downloads/changes.html

-- snip --
2.15. ALTER added to Core

The ALTER function found only in View is general purpose and has been
made available in all version of REBOL.
-- snap --


'alter in new /core is broken:

>> s: [ 1 2 3 4 5 6 ]
== [1 2 3 4 5 6]
>> alter s 4
== [2 3 4 5 6]

a quick look at the 'source reveals the problem

  either temp: find series value [remove series] [append series value]

should read

  either temp: find series value [remove temp] [append series value]

[submitted to feedback]

-- 
Best regards,
 Andreasmailto:[EMAIL PROTECTED]

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Re: Decode-CGI

2002-06-04 Thread Andreas Bolka


Monday, June 3, 2002, 7:26:57 PM, Will wrote:

> I get this error using your patch:
[...]

strange set-word! handling differences betweend 2.5.0 and 2.5.2 -
appended version is working with 2.5.0 and 2.5.2.

--- snip ---
decode-cgi: func [
{Converts CGI argument string to a list of words and value strings.}
args [any-string!] "Starts at first argument word"
/local list equate value name name-chars val plus-to-space
] [
add-nv: func [ list name value /local val-ptr ] [
value: either none? value
[ copy "" ]
[ form dehex (replace/all value "+" " ") ]

either none? val-ptr: find list to-set-word name [
append list compose [ (to-set-word name) (value) ]
] [
idx: index? next val-ptr
poke list idx compose [ (pick list idx) (value) ]
]
]

list:   make block! 8
name-chars: complement charset "&="
equate: [ copy name some name-chars value ]
value:  ["=" value
 | "&" (add-nv list name "")
 | [copy val to "&" "&" | copy val to end]
   (add-nv list name val)
]

parse/all args [ some equate | none ]
list
]
--- snap ---


-- 
Best regards,
 Andreasmailto:[EMAIL PROTECTED]

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Re: Decode-CGI

2002-06-01 Thread Andreas Bolka


Saturday, June 1, 2002, 4:03:14 AM, Andrew wrote:

> I've noticed there's a problem with Rebol's standard decode-cgi
> function.

[...source...]

> Note that 'plus-to-space is created inside 'decode-cgi each time
> it's used. It can also be easily replaced with 'replace/all.

actually plus-to-space is a scaled down version of replace/all (have a
look at source replace). however, in the sense of reuse, using replace
is ok ;)

> Also, CRLF aren't converted to Rebol's newline.

this is most likely an application level problem - normal CRLFs should
not pass up to decode-cgi, only CRLFs which are hex-encoded. and i
think those should be passed thru to the app.

HOWEVER, there are two more important problems (imho):

1. decode-cgi is not able to properly parse "empty params" like name2
in "name1=val1&name2&name3=val3"

>> decode-cgi "name1=val1&name2&name3=val3"
== [name1: "val1" name2&name3: "val3"]

2. decode-cgi requires post-processing when it parses a string
containing multiple parameters with the same name:
"name=val1&name=val2"

>> decode-cgi "name=val1&name=val2"
== [name: "val1" name: "val2"]

this list is quite ok, but it does not make sense to 'make object!
this or even 'do it. naturally, multiple parameters with the same name
map to a list, imho:

>> decode-cgi "name=val1&name=val2"
== [name: ["val1" "val2"]]

so here is another patched decode-cgi :) [also submitted to feedback]

; --- snip ---
decode-cgi: func [
   {Converts CGI argument string to a list of words and value strings.}
   args [any-string!] "Starts at first argument word"
   /local list equate value name name-chars val plus-to-space
][
   add-nv: func [ list name value /local val-ptr ] [
  name: to-set-word name
  value: either none? value 
 [ copy "" ] 
 [ form dehex (replace/all value "+" " ") ]

  either none? val-ptr: find list name [
 append list compose [ (name) (value) ] 
  ] [ 
 idx: index? next val-ptr
 poke list idx compose [ (pick list idx) (value) ] 
  ]
   ]

   list: make block! 8
   name-chars: complement charset "&="
   equate: [ copy name some name-chars value]
   value:  [ "=" value 
   | "&" (add-nv list name "") 
   | [ copy val to "&" "&" | copy val to end ]
  (add-nv list name val)
]

   parse/all args [some equate | none]
   list
]
; --- snap ---

-- 
Best regards,
 Andreasmailto:[EMAIL PROTECTED]

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Re: Google + SOAP

2002-04-29 Thread Andreas Bolka


Sunday, April 28, 2002, 2:25:04 AM, Petr wrote:

> Christian Langreiter wrote:

>>But there has not been an answer on my high-performance server
>>quetsion yet - I just don't hope because there isn't any ;-)

> You haven't answered why you consider Rugby being blocking one ;-) I
> tried Ruby several times and it does some 250 RPC echos in a sec ...
> So, what is enough for you? :-)

i think chris' considers rugby beeing no option as it is not able to
accept a concurrent call while it is processing one.

250 echo (!!!) calls / sec might be fine, but as soon as the funcs
beeing called actually do something, you'll never get there ;)

consider the following: we have two clients, let's call the peter and
carla and we have a server (a rugby server) which exports a func
called 'long-running-func'. to produce a result, this func takes 10
secs at average.

peter calls long-running-func on server.
1 sec later, carla tries to call long-running-func on server too, but
rugby is not able to accept calls in this stage.

carla has to wait the average 10 seconds until peter's call finished.
only then her call gets processed!

chris' original question:
> "What is the "official RT way" to write high-performance, concurrent
> servers in REBOL?"

the concurrent is the key!

[maarten, no offense intended! i don't want to imply that this
behaviour is rugby's fault]

-- 
Best regards,
 Andreasmailto:[EMAIL PROTECTED]

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Re: Google + SOAP

2002-04-22 Thread Andreas Bolka


Sunday, April 21, 2002, 2:48:04 PM, Graham wrote:

> I could have attempted to programmatically discover the syntax for
> the soap body as in the form displayed here ...

> http://www.compkarori.com/soap/index.shtml

> If you plug in the google wsdl file, my script does seem to produce
> something. But as it was, I had forgotten I had written the above,
> and did it manually!! :(

Graham, those things look great. Are the avail to for download
somewhere?

-- 
Best regards,
 Andreasmailto:[EMAIL PROTECTED]

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Re: R: pwd cd ls - anyone ??

2002-04-20 Thread Andreas Bolka


Saturday, April 20, 2002, 4:53:42 PM, Alessandro wrote:

> since Rebol is a powerful system in console mode, I'm using my
> Rebol/Command licence to create a Rebol shell (I called it ReSH) to
> embed the power of Rebol with a file system management confortable,
> by adding many functions that no other shell has (since other shell
> are not programming languages!).

almost all good shells "are programming languages" :) an interesting
project anyway!

-- 
Best regards,
 Andreasmailto:[EMAIL PROTECTED]

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Re: Google + SOAP

2002-04-20 Thread Andreas Bolka


Saturday, April 20, 2002, 5:32:00 AM, Carl wrote:

> I think it's good to invent some smart way to make Web Services
> easier via REBOL.

Most people on the list will agree to that :)

> So, that's the best way to get there from here? For example:

I think you've got an important typo here, that explains the (imho)
strange replies.

Shouldn't it be "So, WHAT'S the best way to get there from here?" ?

I'm very interested in the "best way" too, so go on dear REBOLers and
reply as if this was the question :)

-- 
Best regards,
 Andreasmailto:[EMAIL PROTECTED]

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Re: GVIM Editor

2002-03-12 Thread Andreas Bolka


Tuesday, March 12, 2002, 12:50:41 PM, Joel wrote:

> "Dr. Louis A. Turk" wrote:
>> 
>> Sorry to ask a non-rebol question, but I'm trying to learn vim to
>> edit rebol scripts. I'm in a situation in which I have to cut and
>> paste data from another program into a rebol script. It seems that
>> vim can't do this.
>>

> It can.
> to insert after the current cursor position.  In vim 6.0

> "+p

[assuming you are using vim6.0]

as you are trying to learn vim, maybe you'd like to have that command
explained.

a) VIM has a system known as "registers" - you can think of it as
quick buffers. registers are named by a single character which can be
any of {a-zA-Z0-9.%#:-"}

registers are accessed by "x - x beeing a valid register name
(character)

b) copy/paste/delete [y, p, d] can be optionally used with explicit
source/destination register. you can yank a piece of test into
register a and another text into b and then paste one of those texts
whenever you want.

c) + is the register refering to the clipboard (and therefore is a
read-only register)

now "+p should be clear ;)

-- 
Best regards,
 Andreasmailto:[EMAIL PROTECTED]

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Re: ANN: VI/Emacs tag generator in/for REBOL

2002-03-01 Thread Andreas Bolka


Thursday, February 28, 2002, 2:25:37 PM, Maarten wrote:

> Says it all, doesn't it. Made by my good friend Ernie, on the REB in
> the script lib, category Advanced.

yeah! ernie, my deepest gratitudes! ;)

-- 
Best regards,
 Andreasmailto:[EMAIL PROTECTED]

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Re: ANN: rebxr standalone edition available

2002-02-21 Thread Andreas Bolka


Tuesday, February 19, 2002, 12:45:11 PM, Maarten wrote:

> Just uploaded rebxr (XML-RPC for REBOL) standalone edition. It is
> Andreas' fine XML-RPC stuff built into a standalone mini-webserver.
> [the one from Rugby]

great ;) - thanks maarten! i'll include it in some way in future
packages. (as i assume its BSD-style licensed ;)

-- 
Best regards,
 Andreasmailto:[EMAIL PROTECTED]

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Re: Binary reading from stdin

2002-02-18 Thread Andreas Bolka


Monday, February 18, 2002, 12:44:54 PM, Gabriele wrote:

>>I'm trying to write a program that reads binary data from fd 0
>>(stdin). Is there any way to accomplish that with REBOL?

> stdin is system/ports/input. You'll have to do something like:

> set-modes system/ports/input [binary: yes]
> data: copy system/ports/input

that's exactly what i do - but it does not seem to work. i'm quite
sure that it's the fault of my program (not the callers fault).

. set-modes system/ports/input [ binary: true lines: false ]
. probe get-modes system/ports/input [ binary lines ]
. probe copy/part system/ports/input 8

; [binary: true lines: false]
; #{}

when i try to read-io, read-io returns -1. system/ports/input looks as
attached:

. probe system/ports/input

[i replaced every occurrence of paths with /path/to/script]

make object! [
scheme: 'file
host: none
port-id: none
user: none
pass: none
target: %input
path: %/path/to/script/
proxy: none
access: none
allow: none
buffer-size: none
limit: none
handler: none
status: none
size: none
date: none
url: none
sub-port: none
locals: none
state:
make object! [
flags: 67633697
misc: [0 0 "/path/to/script/input"]
tail: 0
num: 0
with: "^/"
custom: none
index: 0
func: 1
fpos: 0
inBuffer: none
outBuffer: none
]
timeout: none
local-ip: none
local-service: none
remote-service: none
last-remote-service: none
direction: none
key: none
strength: none
algorithm: none
block-chaining: none
init-vector: none
padding: none
async-modes: none
remote-ip: none
local-port: none
remote-port: none
backlog: none
device: none
speed: none
data-bits: none
parity: none
stop-bits: none
rts-cts: true
user-data: none
awake: none
]

-- 
Best regards,
 Andreasmailto:[EMAIL PROTECTED]

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Binary reading from stdin

2002-02-17 Thread Andreas Bolka

Hi REBOLs!

I'm trying to write a program that reads binary data from fd 0
(stdin). Is there any way to accomplish that with REBOL?

-- 
Best regards,
 Andreas  mailto:[EMAIL PROTECTED]

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Re: Editor to use

2002-02-17 Thread Andreas Bolka


Wednesday, February 13, 2002, 9:23:24 AM, Alexander wrote:

>   Which editors do you use for developing?

vim - www.vim.org

gvim for windows is a mighty editor and does everything you want. and
it's free and if you ever switch to another platform, you don't have
to relearn another editor. as vim is avail for quite a lot of
platforms ;)

-- 
Best regards,
 Andreasmailto:[EMAIL PROTECTED]

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Re: Cookies

2002-02-10 Thread Andreas Bolka


Saturday, February 09, 2002, 1:01:10 PM, Joe wrote:

> how can I access cookies, which ware send to me ?

select system/options/cgi/other-headers "HTTP_COOKIE"

-- 
Best regards,
 Andreasmailto:[EMAIL PROTECTED]

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Re: Vanilla HELP! :)

2002-02-05 Thread Andreas Bolka


Tuesday, February 05, 2002, 5:56:03 AM, Charles wrote:

>A wikiwiki?
>I'm going to go lie down, now.

sorry ;)

http://www.c2.com/cgi/wiki?OneMinuteWiki

-- 
Best regards,
 Andreasmailto:[EMAIL PROTECTED]

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Re: Vanilla HELP! :)

2002-02-04 Thread Andreas Bolka


Monday, February 04, 2002, 6:57:38 AM, Charles wrote:

> So um.. what /is/ Vanilla? I went to vanillasite.at and just got
> "HELO" on a blank page. I'm not seeing a description of just what it
> is at langreiter.. what is it?

it's basically a wikiwiki written in REBOL - although in reality its
quite enhanced already ;) documentation is rare langreiter.com is
rebuilding, but you'd better subscribe vanilla-pudding at yahoogroups
where this discussion would better fit ;)

-- 
Best regards,
 Andreasmailto:[EMAIL PROTECTED]

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Re: Vanilla HELP! :)

2002-02-02 Thread Andreas Bolka


Friday, February 01, 2002, 3:25:51 AM, Ryan wrote:

> Also, please check into the CGI non-parsing headers problem which
> was pointed out in a different response. IIS is easy to administer
> and it would be nice to be able to run Vanilla on IIS.

that is an IIS feature - it'd be better if microsoft breaks it ;)

vanilla uses redirection extensively to present proper things after a
user logged in or registered.

one would be able to circumvent the IIS bug by using a kinda trick:
rewrite your http-redir function to NOT write out an http header but
print a simple html page with a meta http-equiv redirection.

but that is just plain ugly - i would suggest to urge for a fix at
microsoft.

-- 
Best regards,
 Andreasmailto:[EMAIL PROTECTED]

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Re: A Rebol Challenge. The Monty Hall Puzzle

2001-12-16 Thread Andreas Bolka


16 Dec 2001, 08:47:34, Reichart wrote:

> P.S. this problem was presented to two of my engineers and myself
> many many years ago. We were told that the "staff" scientist at the
> company of the presenter all got it wrong. So the three of us worked
> on it together for about 25 minutes. Came to our conclusion, then
> wrote a computer program to "prove it." I then wrote a layman's
> description of "why." Which I found was needed because SO MANY
> PEOPLE CAN NOT ACCEPT THE ANSWER. Especially statisticians! Too
> funny. If anyone wants a copy, I will dig it up.

I'd like to have a copy ;)

-- 
Best regards,
 Andreasmailto:[EMAIL PROTECTED]

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Re: ANN: Rugby 4.4exp with XML-RPC

2001-12-13 Thread andreas . bolka

> Done already! That was easy thanks to the excellent work of Gavin and
> Adreas.

Thanks for your great work, Maarten! I've already thought about integrating
XML-RPC with Rugby, but you've been way faster ;)

-- 
Regards, Andreas

GMX - Die Kommunikationsplattform im Internet.
http://www.gmx.net

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Re: ANN: rugby 4.3

2001-11-21 Thread Andreas Bolka


Wednesday, November 21, 2001, 7:21:56 PM, Petr wrote:

> btw: does anyone here know, how does Jabber work in the principle?
> Is it request broker like Rugby is, or? 

jabber opens a port to a server over which all traffic flows. just
like IRC or ICQ.

jabber has problems with working behind HTTP proxies as well.

-- 
Best regards,
 Andreasmailto:[EMAIL PROTECTED]

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] Re: 'do - question

2001-11-12 Thread Andreas Bolka


Monday, November 12, 2001, 6:46:20 AM, nitsch-lists wrote:

> was in translations mood yesterday.
> script %launch-by-do.r below.
> complete (german) "ide" in "volker"-rebsite.

great, thanks ;)

-- 
Best regards,
 Andreasmailto:[EMAIL PROTECTED]

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] 'do - question

2001-11-10 Thread Andreas Bolka

Hi Rebols!

One question related to 'do: is there a chance for a block beeing
"done" to halt the "doing"-process.

Some example for clarification:

-- snip --
[
   REBOL []
   bl: [
   print "a"
   print "b"
   if ... [ ??? ]
   print "c
   ]

   do bl
]
-- snip

When the '...' condition holds, the "do" should stop.

-- 
Best regards,
 Andreas  mailto:[EMAIL PROTECTED]

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.




[REBOL] ANN: rebXR 1.0 released

2001-11-10 Thread Andreas Bolka


Hi Rebols!

Mike Berrisford has pointed to it already, but I thought I'd do a
personal announcement as well ;)

I've just released rebXR 1.0 - XML-RPC for REBOL. Yeah, there were two
XML-RPC implementations out there already, but I had some reasons for
making another one.

Recently I stumpled upong Gavin McKenzie's brilliant XML libraries,
which make using XML with REBOL easy and funny ;) With that kinda
weapon, I decided to build a stable, usable XML-RPC implementation.

Have a look at it!
- http://earl.strain.at/space/rebXR

Thanks fly out to Chris Langreiter for mental support, to Gavin
McKenzie for his great XML libs and to Dave Winer for the nice work
known as the XML-RPC spec!

-- 
Best regards,
 Andreas  mailto:[EMAIL PROTECTED]

-- 
To unsubscribe from this list, please send an email to
[EMAIL PROTECTED] with "unsubscribe" in the 
subject, without the quotes.