REBOL IOS, many Q's. :)
[1/18] from: edanaii:cox at: 28-Apr-2002 22:10
Greetings all,
I just signed up for this list on Saturday, curious about the latest
developments regarding REBOL IOS. I've known about REBOL for sometime,
practically since the beginning and have always been curious about it,
but my curiosity exploded when I heard about REBOL IOS.
For some time, I've felt that the current generation of DOSes were not
complete, that the needed to be expanded somehow. Naturally, I was
excited when I read the article about "The Language that became an OS",
I've always felt that DOS (any flavor) should be more robust and usable.
So, now, I am intensely curious about this new development. What can
anyone tell me about REBOL IOS. I know it integrates network computers
together, but I'd like to know much more about this technology. Is it
event driven, for example, can it detect events that occur on the host
machine? Can communication pipe lines be set up between hosts, so the
event occuring locally is communicated to a watching machine?
And that's just for starters... :)
What can anyone tell me? Inquiring minds, wanna know.
--
Sincerely, |
Ed Dana | Faith is believing what you know ain't so.
Software Developer | -- Mark Twain
1Ghz Athlon Amiga |
[2/18] from: g:santilli:tiscalinet:it at: 29-Apr-2002 13:03
Hi Ed,
On Monday, April 29, 2002, 7:10:58 AM, you wrote:
ED> What can anyone tell me? Inquiring minds, wanna know.
What can I tell? Try it out. Ask RT for evaluation; it is a great
communication system. And, it's REBOL, so you can actually
implement whatever you want on top of it.
Regards,
Gabriele.
--
Gabriele Santilli <[g--santilli--tiscalinet--it]> -- REBOL Programmer
Amigan -- AGI L'Aquila -- REB: http://web.tiscali.it/rebol/index.r
[3/18] from: greggirwin:mindspring at: 29-Apr-2002 9:09
Hi Ed,
<< Is it event driven, for example, can it detect events that occur on the
host
machine? Can communication pipe lines be set up between hosts, so the
event occuring locally is communicated to a watching machine? >>
I believe it uses polling to keep machines in sync, and the "desktop"
functionality is currently centered around file sync'ing and client-side
function calls to the server that post data (post-funcs).
As Gabriele said, you can build anything you want on top of it, or alongside
it. We have a server proces that uses Rugby to perform certain remote
procedure calls which runs along with the IOS server.
You really have to experience it.
--Gregg
[4/18] from: edanaii::cox::net at: 30-Apr-2002 18:28
Gregg Irwin wrote:
>Hi Ed,
><< Is it event driven, for example, can it detect events that occur on the
<<quoted lines omitted: 8>>
>procedure calls which runs along with the IOS server.
>You really have to experience it.
I intend to.
I've already signed up and got my evaluation User ID. I'll probably get
everything set up this Saturday.
The problem for me is that I'm still not sure as to exactly what REBOL
IOS is. Is it an OS? Is it a suite of applications? Or is it both? I
assume the answer is both.
Also, since I'm responsible for the movement of data to and from our ODS
(Operation Data Store), I'm curious about REBEL IOS's strengths in this
department. Which is why I asked the question that I did.
I've been asked by our "Technology Architect" to investigate REBOL's CGI
capabilities, as well. So I'm hoping a few members on this list can clue
me in on them.
For starters:
1) How well does REBOL manage libraries across disparate systems,
keeping them synchronous. I assume "very well". :)
2) How does it manage script complexity, where info/data is dependent on
code (I.e. Perl, C, etc...)?
3) Can it move data without XML, or is it dependent on it?
I know REBOL does much more than this, but I am interested in it from a
data perspective.
Thanks for any and all answers, in advance. :)
--
Sincerely, | Life is pain, Highness. Anyone who says
Ed Dana | differently is selling something.
Software Developer | -- The Princess Bride.
1Ghz Athlon Amiga |
[5/18] from: greggirwin:mindspring at: 30-Apr-2002 22:52
Hi Ed,
Since your signature contained a quote from The Princess Bride, I feel
compelled to reply. :)
<< I've already signed up and got my evaluation User ID. I'll probably get
everything set up this Saturday. >>
Should take you about 5 minutes.
<< The problem for me is that I'm still not sure as to exactly what REBOL
IOS is. Is it an OS? Is it a suite of applications? Or is it both? I
assume the answer is both. >>
It is both; it is neither; and it is much much more. Cryptic enough for you?
;)
Simply put, it is a client side piece, called Link, that connects to the
server piece (called Serve, just as you would expect). Link appears as a
window, called the Desktop, that is your main point of navigation. It's very
much like the View desktop if you've played with that. On the desktop are a
number of little applications (reblets) along with folders that contain
files, other reblets, etc. None of this is terribly exciting from its
description, I know.
What's exciting is the first time you fire up Link and it synchronizes you
with everything that's published on the server quickly and reliably. Now you
can publicly Conference, privately Message, submit feedback, browse the
Expert FAQ list, see Who is on line, see what News has been posted, see if
anything interesting is happening on the shared Calendar, check out what
others have published, etc. Hmmm, still not very exciting.
So, not being excited by this so far, you decide to get a second opinion.
You fly to Paris and unpack your Link client from the single floppy you
brought with you. You connect and, BOOM, everything is there, just as if you
were at home.
I wrote a little utility and published it on IOS. One day, Messenger popped
up and someone said "Can I add a couple features to it?" I said that was no
problem, made sure I had published the latest version I had, and a short
time later, a new version appeared with their changes. Messenger came up
again and they said "Hmmm, I'm seeing a bug that causes..." I opened the
code they had published, fixed the bug, and republished it (after testing it
of course :). If I didn't like the end result, I'd just pull up History for
the script and republish an eariler version.
<< Also, since I'm responsible for the movement of data to and from our ODS
(Operation Data Store), I'm curious about REBEL IOS's strengths in this
department. Which is why I asked the question that I did. >>
IOS is built on REBOL, the language, and REBOL is a "messaging language".
Eventually, as the clouds are lifted from our eyes, we'll begin to
understand what that really means to us as developers. In the meantime, it's
a very net-aware language with ties to a few interop mechanisms and the
ability to create new ones without much difficulty.
<< I've been asked by our "Technology Architect" to investigate REBOL's CGI
capabilities, as well. So I'm hoping a few members on this list can clue
me in on them. >>
Others will have to speak to that, as it's not my area, but I've see lots of
great things done with it. Sometimes there's an initial setup hurdle or two
it seems, just because it's not mainstream, but I haven't seen any horror
stories posted.
<< 1) How well does REBOL manage libraries across disparate systems,
keeping them synchronous. I assume "very well". :) >>
If you mean managing REBOL scripts, general purpose or otherwise, that's
very general and could be done a number of ways. If you're using IOS, it's
seamless. You publish. It syncs.
<< 2) How does it manage script complexity, where info/data is dependent on
code (I.e. Perl, C, etc...)? >>
I'm not sure exactly what you mean, but REBOL is very different in how the
code/data line is not just blurred, but can disappear entirely. You could
write a lot of solutions in REBOL very much like you would in other
languages and, while a little different syntactically, there wouldn't be
much overall difference. When you stop thinking in terms of how you would do
it in other languages, and just think of how you *want* to do it, volumes of
code can disappear and the remaining pieces communicate more clearly. The
REBOL code I write is totally different from what I would write in other
languages, and I still haven't let go of "the old ways" as much as I want
to. :)
<< 3) Can it move data without XML, or is it dependent on it? >>
There are some XML libs, and some built in support for XML, but REBOL's
native format is all it needs.
I hope I don't sound too evangelistic. I just love working with this
language.
HTH!
--Gregg
[6/18] from: atruter:hih:au at: 1-May-2002 16:00
Thanks Gregg,
Even though I didn't post the original questions, your "chatty" style of
explanation has actually given me an understanding of what IOS can do for
us. I am especially interested in the concurrent remote development
possibilities, does IOS facilitate / enable source versioning and control?
ie. can I check-out / lock scripts that are being worked on? How is
divergence handled (version A is modified by me to become B, while someone
else modifies A to become C, now B and C need to be merged to become B
proper)?
Regards,
Ashley
[7/18] from: greggirwin:mindspring at: 1-May-2002 0:46
Hi Ashley,
<< does IOS facilitate / enable source versioning and control?
ie. can I check-out / lock scripts that are being worked on? How is
divergence handled (version A is modified by me to become B, while someone
else modifies A to become C, now B and C need to be merged to become B
proper)? >>
IOS itself doesn't do version control beyond storing compressed versions of
published files. As long as your local version is newer than the latest
published version, it warns you by turning the icon red, to let you know
you're out of sync (unpublished). Now, if someone else should publish a
later version, your local work may get clobbered when it syncs up and sees a
newer version on the server. I don't know if it looks "back" to see if your
local version matches *any* of the published version's timestamps, but I
don't think it does.
I know of at least one person working on some REBOL based diff/merge
technology, but I don't know how it might integrate with IOS.
--Gregg
[8/18] from: jason:cunliffe:verizon at: 1-May-2002 9:20
Gregg Irwin
<[greggirwin--mindspring--com]>
> Simply put, it is a client side piece, called Link, that connects to the
...snip...
Gregg
Thank you. That is the best simple description I've read yet on REBOL/IOS :-)
Some version of your description is needed for press release, on RT site, and
for potential client arguments. Perhaps an illustrated one would be even better.
Perhaps an IOS comic ala Scott McCloud's Reinventign Comics / I can't stop
thinking
http://scottmccloud.com/
./Jason
[9/18] from: carl:cybercraft at: 2-May-2002 8:50
On 02-May-02, Jason Cunliffe wrote:
> "Gregg Irwin" <[greggirwin--mindspring--com]>
>> Simply put, it is a client side piece, called Link, that connects
<<quoted lines omitted: 3>>
> Thank you. That is the best simple description I've read yet on
> REBOL/IOS :-)
I agree, and I've already forwarded it to a few people too.
> Some version of your description is needed for press release, on RT
> site, and for potential client arguments. Perhaps an illustrated one
> would be even better. Perhaps an IOS comic ala Scott McCloud's
> Reinventign Comics / I can't stop thinking
> http://scottmccloud.com/
Not a bad idea, actually.
--
Carl Read
[10/18] from: edanaii:cox at: 1-May-2002 18:27
Gregg Irwin wrote:
>Hi Ed,
>
><< The problem for me is that I'm still not sure as to exactly what REBOL
>IOS is. Is it an OS? Is it a suite of applications? Or is it both? I
>assume the answer is both. >>
>
>It is both; it is neither; and it is much much more. Cryptic enough for you?
>;)
>
Ah yes, I begin to understand now. ;)
>Simply put, it is a client side piece, called Link, that connects to the
>server piece (called Serve, just as you would expect). Link appears as a
<<quoted lines omitted: 13>>
>brought with you. You connect and, BOOM, everything is there, just as if you
>were at home.
Very nice, and very much what I understand about it. As a tool, it
certainly has potential for our Sales Force, over here.
>I wrote a little utility and published it on IOS. One day, Messenger popped
>up and someone said "Can I add a couple features to it?" I said that was no
<<quoted lines omitted: 4>>
>of course :). If I didn't like the end result, I'd just pull up History for
>the script and republish an eariler version.
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.
><< Also, since I'm responsible for the movement of data to and from our ODS
>(Operation Data Store), I'm curious about REBEL IOS's strengths in this
<<quoted lines omitted: 4>>
>a very net-aware language with ties to a few interop mechanisms and the
>ability to create new ones without much difficulty.
But can it, for example, perform actions that occur to a file, either
remotely, or on the local machine?
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?
>I hope I don't sound too evangelistic. I just love working with this
>language.
>
Nah... You clearly like the product, that's not a bad thing. :)
A few more questions, for anyone that can answer them.
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?
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?
--
Sincerely, |
Ed Dana | This is the worst kind of discrimination! The
Software Developer | kind against me!
1Ghz Athlon Amiga | -- Bender, Futurama.
[11/18] from: carl:cybercraft at: 2-May-2002 15:18
On 01-May-02, Gregg Irwin wrote:
> So, not being excited by this so far, you decide to get a second
> opinion. You fly to Paris and unpack your Link client from the
> single floppy you brought with you. You connect and, BOOM,
> everything is there, just as if you were at home.
By "there", I assume you don't mean everything's updated onto the
floppy from server-side, do you? ie, to be practical, wouldn't you
have to move Link to the computer you're using? Or is it possible
with IOS to have it so what you publish is only stored server-side?
--
Carl Read
[12/18] from: greggirwin:mindspring at: 1-May-2002 22:28
Hi Carl,
<<
> So, not being excited by this so far, you decide to get a second
> opinion. You fly to Paris and unpack your Link client from the
> single floppy you brought with you. You connect and, BOOM,
> everything is there, just as if you were at home.
By "there", I assume you don't mean everything's updated onto the
floppy from server-side, do you? ie, to be practical, wouldn't you
have to move Link to the computer you're using? Or is it possible
with IOS to have it so what you publish is only stored server-side?
>>
Sorry for the confusion. When you unpack your Link client, you would
presumably unpack it onto the hard drive of a machine. When you sync up,
you'll have a local copy of everything. While you can fit many reblets on
the head of a pin, you may not be able to make them dance. :)
--Gregg
[13/18] from: al:bri:xtra at: 2-May-2002 16:51
Installed from floppy onto the hard disk. Unless it's one of the things
which fit onto a USB port and pretend to be a hard disk drive. They're about
128MB in size.
Andrew Martin
ICQ: 26227169 http://valley.150m.com/
[14/18] from: greggirwin:mindspring at: 1-May-2002 23:07
<< Installed from floppy onto the hard disk. Unless it's one of the things
which fit onto a USB port and pretend to be a hard disk drive. They're about
128MB in size. >>
Oooohhhhh. I hadn't thought about *thaa-aat*. :)
--Gregg
[15/18] 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
[16/18] from: carl:cybercraft at: 2-May-2002 19:12
On 02-May-02, Gregg Irwin wrote:
> Hi Carl,
> <<
<<quoted lines omitted: 12>>
> reblets on the head of a pin, you may not be able to make them
> dance. :)
That's what I expected, but it got me thinking about whether it'd be
possible to not have stuff stored locally. Of course you'd always
have to be online for it to work, but for cases where you need to use
others' computers but don't want to install Link on them, let alone
have all your data placed on their drives, it could be useful. But
as Andrew pointed out, there's plenty of better alternatives to
floppy disks these days for carting your data around. It'd be a neat
trick from just a floppy though. (:
--
Carl Read
[17/18] from: rebol:optushome:au at: 2-May-2002 19:04
> 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?
In this case you can have a reblet that you click on and make it sleep in
the background (doesn't even show on the taskbar if you don't want it too),
the script would ask link to notify of particular events (a call back) like
so
e.g insert-notify 'fileset-downloaded 'file-set-name :on-file
("on-file" being the function you've written to be called when a file
arrives.)
Also when you first run your app, it can check to see if files have been
syncronised to its file-set while it wasn't on-line or running.
If you need your app to run from the moment Link is connected (without user
intervention) then that would require a customised desktop (also easy).
Cheers,
Allen K
[18/18] from: edanaii:cox at: 4-May-2002 11:18
Gregg Irwin wrote:
>Hi Ed,
><< Let's say, for example, that I have a process that needs to be aware of
<<quoted lines omitted: 10>>
>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.
OK, now I begin to understand. It is not an OS in the traditional sense,
perhaps not an OS at all. I think it is better characterized as a server.
Not that I am saying this is bad, not at all. It still has a lot of
potential. Just not the potential I was hoping for.
That aside, it still definitely has uses, possibly for my development
team, and definitely for my companies sales force.
>HTH!
>
It did. :)
--
Sincerely, | When we remember we are all mad, the mysteries of
Ed Dana | life disappear and life stands explained.
Software Developer | -- Mark Twain
1Ghz Athlon Amiga |
Notes
- Quoted lines have been omitted from some messages.
View the message alone to see the lines that have been omitted