Many Topics (was: Killer Application)
[1/4] from: greggirwin:mindspring at: 17-Aug-2002 9:29
Hi Dick, (and thanks to Andrew, Joel, et al for tackling lots of questions)
<< Where is the formal documentation that describes IOS? >>
There is some markteting on the REBOL web site, but the "official" stuff you
will probably need to request an eval of IOS to get to. Even then, the
standard eval servers I think are targeted less at developers and more at
end users. It's a good place to start though.
<< I want a unique number which is 1 greater than the last one obtained,
worldwide. >>
Let's see, write a server that generates the number and serve it's
functionality up via CGI or Rugby (a remote brokering/RPC engine written in
REBOL). Locally, it can just write to a file on the server where it lives.
Lots of issues surrounding that kind of thing though, regarding
availability, scalability, etc.
<< What can Rebol do that is not just a scalar operation? >>
Joel gave an answer on this, but if it's not what you're after, I don't
understand the question (as Andrew didn't).
<< Has anyone constructed a multi-user spreadsheet with Rebol? >>
Rebocalc is a single user spreadsheet. I don't think it's been extended too
heavily by many people (some though), but I'm also not clear on what you
mean by "multi-user". I.e. as in multi-user database, or as in live
collaboration across the net, or something else? In any case, I'd say
probably not.
<< What do you mean by "It blurs the lines"? >>
Code is data and data is code. You might say that about any interpreted
language, but REBOL goes *way* beyond the "build a string and pass it to
eval" model. Much more like you can do stuff in assembly. That's one line it
blurs, another is the creation of domain-specific languages. In most
languages you write functions to do that. You can do that in REBOL too, but
you can also write dialects, driven by real parsers, that allow you to
create powerful new "mini languages" *very* easily. These languages are not
REBOL, but the understand the same wide range of datatypes and so are often
similar to REBOL in many ways.
<< Has a dynamic generalized RDBMS table browser been written in Rebol?
Something like Toad? >>
I don't know what Toad is, but not AFAIK.
<< RE: Printing example >>
REBOL and IOS both run on top of "true" operating systems, so there may be
an entirely different set of things to deal with. Must it be a cross
platform solution? Should it allow finding, and printing to, printers
anywhere in the world? Can you "Print To" other formats in addition to just
hard-copy? Do you use the OS print services or go around them? Etc.
<< What is a 'true application'? >>
Good question. Something that performs a task, or allows you to perform a
task, other than just viewing data. How's that?
<< What is a 'full GUI' ? >>
Another good question! :) A display that may contain a variety of UI gadgets
for entering data, triggering actions, monitoring progress, etc.
<< What is 'data persistence' ? >>
The ability to store and retrieve data across sessions of an application.
HTH!
--Gregg
[2/4] from: reffy:ulrich at: 17-Aug-2002 13:29
Hi List,
I want to thank each of you that have responded to my questions.
You are most likely aware of the insidious nature of the many changes in software trends
and such that occur over a lifetime. The technology curve is a killer eventually. I have
grown sour and disappointed with so much that has come about and have become quite skeptical
of this and that. This is the basis for asking questions in hopes of finding out that
Rebol is the magic bullet for some things I want to try to do. Of course, I don't want
to go down yet another rabbit trail, so bear with me as I ease into this thing called
Rebol.
To the authors of Rebol, it is becoming apparent to me that you have some very interesting
concepts and I wish to learn them of course.
When I resort to humor, rest assured it is with good intention and not designed to intimidate,
humiliate, or otherwise piss someone off. You are welcome to return it in kind if it
stimulates you enough :-)
My main interest now is in collaborative things. Multiuser spreadsheet is a simple example
where each cell(or group of cells) can be locked/shared, etc. I would like to extend
this concept down to the scalar item level (and maybe block in Rebol) so that some general
mechanisms can be put in place for developing applications for community/group use.
It might be the case that IOS already has some of these mechanisms in place, guess I
will somehow have to figure that out.
Again, I appreciate your help and look forward to learning more and more about Rebol.
Dick
[3/4] from: reffy::ulrich::net at: 17-Aug-2002 15:38
Hi List,
You guys are smart!!
In a GUI ...
How can you have a common panel variable which can be set to another maybe complex panel?
Such that the view appears to morph, with one panel area (that may be larger or smaller).
For example, how about this layout:
TP
HP
BP
IP
SP
Where:
TP is a TitlePanel
HP is a Heading Panel
BP is a Button Panel
IP is an Item Panel
SP is a Status Panel
Idea is that the BP and IP are the body so to speak. On a button press, the BP changes
to another set of buttons, and the IP is tailored for that new mode/view. The IP might
be where you show the fields of the current record.
Together BP and IP can be thought of as a mode such as Browse, Find, Add, Modify, Remove,
etc.
On press of Find button, the buttons now read ShowIndex, Clear, FindAll, Find, Esc. The
IP takes on the appearance of a search form.
Esc would return to the previous Browse view. I have had trouble doing this in various
languages and I am thinking in Rebol it might be much easier. Any thoughts on how to
do this properly?
Thanks,
Dick
[4/4] from: gscottjones:mchsi at: 17-Aug-2002 16:29
From: Dick
> In a GUI ...
>
> How can you have a common panel variable which can be set to another maybe
complex panel?
> Such that the view appears to morph, with one panel area (that may be
larger or smaller).
> For example, how about this layout:
<interesting but not altogether understood specification snipped>
> Idea is that the BP and IP are the body so to speak. On a
> button press, the BP changes to another set of buttons, and
> the IP is tailored for that new mode/view. The IP might be
> where you show the fields of the current record.
<more snipping>
Hi, Dick,
I believe that I caught the gist of what you are seeking. I only had 5
minutes, so I hacked a pre-existing demo script to achieve the kind of
effect that you seem to be describing. Of course, this example addresses
none of your specification; it only is meant to demonstrate the simplicity
of REBOL's gui and the Gregg's idea of throw away pages/reblets.
--Scott Jones (script follows)
REBOL [Title: "Subpanels"]
main: layout [
vh2 "Subpanel Examples"
guide
pad 20
bpanels: box 160x140
return
box 2x140 maroon
return
panels: box 220x140
]
bpanel1: layout [
button "Panel 1" [
bpanels/pane: bpanel1
panels/pane: panel1
show [bpanels panels]
]
button "Panel 2" [
bpanels/pane: bpanel2
panels/pane: panel2
show [bpanels panels]
]
button "Quit" [quit]
]
bpanel2: layout [
button "Alt Panel 1" [
bpanels/pane: bpanel1
panels/pane: panel1
show [bpanels panels]
]
button "Alt Panel 2" [
bpanels/pane: bpanel2
panels/pane: panel2
show [bpanels panels]
]
button "Quit" [quit]
]
panel1: layout [
origin 8x8
h2 "Panel 1"
field "Field 1"
field "Field 2"
button "The Answer" [alert "I know nothing."]
]
panel2: layout [
origin 8x8
h2 "Panel 2"
across
txt "X:"
slider 150x16
return
txt "Y:"
slider 150x16
return
check [panel2/color: maroon show panel2]
txt "Don't click this"
return
check [panel2/color: silver show panel2]
txt "Click this"
return
]
bpanel1/offset: 0x0
bpanel2/offset: 0x0
panel1/offset: 0x0
panel2/offset: 0x0
bpanels/pane: bpanel1
panels/pane: panel1
view main