[REBOL] Re: Liquid Project : connection with datas...
From: moliad:aei:ca at: 18-Oct-2003 12:39
Hi Andrew,
thanks for all the info in this mail.
Without knowing it, you have cornered a bug in the release... I put the wrong
zip file on-line ... DOH!!!
It has been fixed, maybe you should just download this new zip (which has the
same version of the files) and adds the rsrc path and files wherever you chose
to put the libraries.
at least colorbox.r should now run !
don't forget to run colorbox.r that's the application which demoes the whole
liquid-vid outfit.
More comments inline.
----- Original Message -----
From: "A J Martin" <[AJMartin--orcon--net--nz]>
> Max wrote:
> > By looking at the liquid-vid tutorials,
> > http://www.rebol.it/~steel/liquid-vid/tutorials.html
> >
> I downloaded the zip file from:
> http://www.rebol.it/~steel/downloads/packages.html
> then I unzipped Steel so that all the files appeared like this:
>
> >> change-dir %/c/Rebol/Steel/
That's specifically what you don't have to do, to get at libs.
Usually, libs and apps are in separate directories but you can still load the
libs, without any knowledge of where they where installed.
> Then I added these lines to my %User.r:
>
> steel-library-path: [%/C/Rebol/Steel/ %/C/Rebol/Steel/]
> do %/C/Rebol/Steel/open-library.r
>
> That's because I couldn't get %library_setup.r to work properly for me. (It
> kept making paths to %Steel/Library/ which didn't exist.)
weren't you able to delete all paths and browse to new ones ?
in any case, this installer was temporary... a completely new lib installer is
planned for the new library engine, integrated within the open-library.r
equivalent.
> Then after running Rebol/View, you need to 'do these lines:
> liquid-vid: open-library 'liquid-vid 0
> stylesheet: liquid-vid/style
the first line ends-up loading several files in one line (liquid.r,
steel-console, liquid-vid.r, steel-utils.r)
the second one is only needed because of a little shortcomming in vid, in that
it does not support object paths anywhere.
> Then the tutorials at:
>
> http://www.rebol.it/~steel/liquid-vid/tutorial-hello.html
>
> and:
>
> http://www.rebol.it/~steel/liquid-vid/tutorial-slider.html
>
> The library part seems very complicated to me. :-/ I don't know what
> advantage the library system system has over a simple 'do?
basically, you only need to keep a repository of all files you could/need to
include in any application, and whenever you need it, it just opens without
path. for most small scripts and applets, this is less of a problem since you
often only load one or two files which are the backbone of your app. But will
all the code I see flying around, I find its a shame that everytime you want to
use code from someone else, you have to be sure that it causes no collisions,
executes no code behind your back and whatever.
the library engine, is an attempt at unifiying the way we share reusable code.
If for example, someone has a math lib, he just needs to share it as a standard
lib and anyone knows how to get at it. If a unified repository (like rebol.org
for example ;-) is available for everyone to put his stuff, then all the files
in such a sharable directory would be usable and exclusively safe. no chance of
variable or function name clash in any steel library.
Basically, everything is stored in an object and when you load a library, your
word is set to a new or shared instance of the object stored in the file. all
the rebol header is also stored within the object, so you can do some run-time
checks.
The new library mechanism now also properly supports versioning! You can ask
for a minimal version of any shared code. so that when you share your code, if
the other person doesn't have the same library in his setup, you can make sure
he knows about it.
There is much more to the library engine, but I'll wait to release the v1.0 to
make an official anouncement and put an exhaustive page on steel's web site...
you're right that it is a little overhead compared to just a 'do, but in the
end, it makes life simpler, especially if you consider that you can load other
things than just shared code in the library. It also lets us share code which
uses shared code, without needing to distribute the other code with it.
thanks for the feedback, I wish I had more...
-MAx