[REBOL] Re: REBOL IOS, many Q's. :)
From: greggirwin:mindspring at: 1-May-2002 23:05
Hi Ed,
<< But this synchronization, I presume applies to more than just REBOL
scripts, as you've pointed out above, it applies to just about any kind
of documents. >>
Yes. When you get your eval running, you'll see some Word and Excel docs
that launch directly from the desktop. I think it doesn't like AVI files,
and maybe some other media files, but most associations on Windows should
work.
<< Let's say, for example, that I have a process that needs to be aware of
the arrival of a file. Rather than creating a daemon that constantly
runs and watches for it, can IOS fire off a process the moment the file
arrives? In other words, is it aware of the activities that it performs
and can that awareness be passed on to scripts? >>
IOS/Serve, as I understand it, isn't watching for files. It's waiting for
you to call it and say you have some new data to publish. Each reblet has
its own "post-func" function (someone please correct me if I err in my
description here) that tells the server what to do when it publishes data.
Reblets also generally insert some callback functions (insert-notify) so
they can be notified when certain events happen. If you're doing everything
in IOS then the answer is probably yes. If the file just shows up in a
directory, then you need a process running to watch for it.
<< You mention that IOS has two components, a client (called LINK) and a
server (called SERVE). What can you tell me about Serve? Is it a binary
that sits on a host OS? Is it be the sole OS on the box? Or both? >>
It's a binary that sits on the host OS. There's a CGI proxy that sits on the
server and talks to Serve. The Link clients make their requests through a
standard web server so you don't have to do any fancy firewall stuff.
<< Scripts, I've noticed, are extremely small and efficient. How is it
CPU-wise? Since it handles encription and compression on the fly, how
CPU intensive is it? Since it is distributed, can it share the load with
other CPU's? >>
Our server doesn't get nearly enough traffic to register the impact. RT
would have to speak to that but their core stuff tends to be very fast. The
place you can cause an impact is with GUIs on the client side. Sometimes I
forget there's a 24 bit compositing system working full time in there, and
how hard it has to work, because it's so easy for me to create some large
faces and apply a few effects to them. In most cases you can pre-render an
effected
image and use that...but I digress.
REBOL is single threaded. It's almost too easy to create other processes
(someone just posted an example here recently) and have them talk via ports,
but a single copy of Serve, unless I'm mistaken, won't take advantage of an
SMP machine. Now, if you want to run more than one Serve server...
You should also look into Rugby if you haven't already.
HTH!
--Gregg