RFC: Rebol Framework
[1/30] from: robert::muench::robertmuench::de at: 31-Aug-2002 15:06
Hi, in case you haven't followed the other discussions. I just published my
current documentation about a possible Rebol framework.
http://www.robertmuench.de/rebol-framework.html
Note: This page isn't reachable via my homepage yet. You have to use the direct
link. And be warned: It's a mix of English and German.
Let me know what you think. Robert
-- Binary/unsupported file stripped by Listar --
-- Type: application/ms-tnef
-- File: winmail.dat
[2/30] from: robert:muench:robertmuench at: 1-Sep-2002 18:49
> -----Original Message-----
> From: [rebol-bounce--rebol--com] [mailto:[rebol-bounce--rebol--com]]
> On Behalf Of Robert M. Muench
> Sent: Saturday, August 31, 2002 3:07 PM
> To: Rebollist
> Subject: [REBOL] RFC: Rebol Framework
Hi, just a short update: I got most of the framework running. I won't
call it a framework yet, because it assumes that you use the
associative data model
and "nakedobject" concepts. From "nakedobjects"
I just use the idea about business objects and direct screen
representaton. Not the GUI part, as I'm not that convinced about it,
yet.
Anyway, before I will release what I have (only about 500 line of code
needed so far) I will add a graphical graph browser thing. Maybe I make
it to include toughgraph already. We will see... Stay tuned. Robert
[3/30] from: petr:krenzelok:trz:cz at: 1-Sep-2002 20:25
Robert M. Muench wrote:
>>-----Original Message-----
>>From: [rebol-bounce--rebol--com] [mailto:[rebol-bounce--rebol--com]]
<<quoted lines omitted: 10>>
>representaton. Not the GUI part, as I'm not that convinced about it,
>yet.
I don't want to sound negative, but GUI part is imo least important. I
think that n-tier rameworks has its puprose still, as such aproach
provides you with kind of plug-in mechanism - don't you like simple
storage? So just use some kind of db, while your above layer still can
call the same function name and does not require to change. Abstraction
is usefull sometimes :-)
Well, I will wait for more material from your part, but two parts I will
be interested in mostly are:
- FSM - workflow - what gets what state upon what conditions, where is
it forwarded, what action occures, etc. - strong workload organisation ...
- distribution - what model is used beneath the surface? Will it work
upon IOS, will it use any kind of P2P? Any other server model? What
workload is it able to handle? Will it be fast enough? Will it allow
off-line functinality where it does make sense etc etc etc ..
-pekr-
[4/30] from: robert:muench:robertmuench at: 2-Sep-2002 15:44
> -----Original Message-----
> From: [rebol-bounce--rebol--com] [mailto:[rebol-bounce--rebol--com]]
<<quoted lines omitted: 3>>
> Subject: [REBOL] Re: RFC: Rebol Framework
> I don't want to sound negative, but GUI part is imo least important.
Hi, no problem but I don't agree ;-)). IMO a useful GUI is very
important. Why care about a good backend implementation when I can't use
it? The basic direction of the GUI part must be included.
> I think that n-tier rameworks has its puprose still, as such aproach
> provides you with kind of plug-in mechanism
Plug-In for what? That's the question. If the plug-in component needs to
know to much about its environment to be implemented you have a lot of
side-effects. Plug-in in the spirit of the STL is OK.
> don't you like simple storage?
Yes, and that's why I don't like databases ;-))
> So just use some kind of db, while your above layer still can
> call the same function name and does not require to change.
> Abstraction is usefull sometimes :-)
Right, but mostly not achieved ;-).
> - FSM - workflow - what gets what state upon what conditions,
> where is it forwarded, what action occures, etc. - strong workload
> organisation ...
Don't know yet.
> - distribution - what model is used beneath the surface?
Simple Rebol blocks as mentioned in my paper.
> Will it work upon IOS
Yes.
> will it use any kind of P2P?
Any kind? It uses IOS nothing more at the moment.
> Any other server model?
May be possible but that's not in my radar at the moment.
> What workload is it able to handle?
6 TB of data if you add 6 TB of memory ;-)). You can handle a lot with
it, if this will fit your needs depends on your requirements. I don't
know.
> Will it be fast enough?
How fast is fast enough? I don't know.
> Will it allow off-line functinality where it does make sense
Yes.
You see, let's get things running first. Than let's play around with
what we have to gain some experience and after all this is done, let's
think about optimization. You can't optimize before you know what's the
problem is. Robert
[5/30] from: robert:muench:robertmuench at: 20-Sep-2002 16:34
Hi, it took some time but IMO I have a quite OK prototype running that's
available for download. Point your browser too:
http://www.robertmuench.de/rebol-framework.zip
You get some data-files and the main program (rebol-framework.r).
How to use it:
- The business object "dialect" is from line 618. Very rudiementary but
OK for a start. Define your own objects and you are able to use them
instantly.
- Searching is done by hacking in some value in the search-field. Only
exact matches work.
- Relations between left side (master) and right side (detail) can be
set with the double-arrow-button in the middle.
- Pressing the graph button will give you a layout of your semantic net.
- Clicking on a node will set the node into the middle of the screen and
indicate the actual button.
- Buttons can be dragged around.
That's it for now. Most infrastructure stuff work, so we now can start
to make it sexy. My next steps are:
- Try to integrate the "nakedobjects" idea.
- Create a prototype for a report-dialect: sum all time-entry nodes that
have a person with name="Robert" and a project with id="15"
Let me know what you think. Robert
[6/30] from: petr:krenzelok:trz:cz at: 21-Sep-2002 6:42
Robert M. Muench wrote:
>Hi, it took some time but IMO I have a quite OK prototype running that's
>available for download. Point your browser too:
<<quoted lines omitted: 14>>
>That's it for now. Most infrastructure stuff work, so we now can start
>to make it sexy. My next steps are:
there seem to be XY bugs ... pressing middle button, monitor, debug
button - all crash an app. There should be also some kind of simple
example of how to actually use it.
>- Try to integrate the "nakedobjects" idea.
>- Create a prototype for a report-dialect: sum all time-entry nodes that
>have a person with name="Robert" and a project with id="15"
>
>Let me know what you think. Robert
>
I looked at sources and it lead me to idea, that I will probably gather
some screenshots of our old DOS Clipper app generator called Zachary.
Very good production app could be generated by it. I especially find
highly insufficient (unless I miss something) to define field type as
only being a datatype. In Zachary, we were able to define e.g.
- how to initialise the field (e.g. by other field in db, joining some
other fields in db, etc.)
- is it part of index expression? If so, which one? 1, 2, 3 ...(index
firstname + lastname + age)
- can be edited?
- is visible?
- represented by collumn in browse?
- VTG - variable to get - a cool feature - e.g. VTG("AB") allowed us to
type only A or B chars (used for floppy sellection).
- mask - (999)-(999 999) - e.g. phone-number
- min - max value
- field type - could be other than just datatype! We had something like
- M - menu, R - Report, U - user code
- relations/validations - is field validated? If so - does it need to
exist in child db? Or it must not exist? Can user add new new value, if
it does not exist in child db?
- updates - a cool one. e.g. - imagine typical storage management
system. You have stock-db, you have material-entry-db, and
material-outgoing-db. In your material-outgoing-db, you set field called
e.g. 'amount, as updating field 'amout in stock-db, and the equation is
decrease
. You does not need to care of anything else - if you give 5
pieces of mouse to some customer, the amount of mouses in your stock-db
will be decreased. If you cancel order of your user, it will be added
back to stock-db ...
- and - very important - conditions, conditions, conditions! conditions
for access, conditions for update, conditions for browse
- the fine thing was - you could first define .dbf in your FoxPro or so
tool, then you could go to Zachary, name your procedure, press import,
and basic definitions were created for you - then you just went to
screen-painter, and imported desired fields. Assigned given procedure
name to menu field 1, and voila - your app was done ...
- you could export your procedure definition to global repository - wow
- repository based shared development in DOS times - we were kinds,
noone could do what we did with Zachary back at that time.
Then there was one executable, which went thru your app definitions and
generated executable ... in clipper. But - app definitions are just that
- it could as well be used to generate code in other language ...
Some overview found:
http://www.incredibleprogram.com/html/zachary_overview.html
So, I don't understand a bit, where is your app framework positioned?
What can be defined? What has to be maintained in code by ourselves? etc.
-pekr-
[7/30] from: robert:muench:robertmuench at: 22-Sep-2002 11:06
> -----Original Message-----
> From: [rebol-bounce--rebol--com] [mailto:[rebol-bounce--rebol--com]]
<<quoted lines omitted: 3>>
> Subject: [REBOL] Re: RFC: Rebol Framework
> there seem to be XY bugs ...
What are XY bugs? Problems with coordinates?
> pressing middle button, monitor, debug button - all crash an app.
?? Monitor is to fire up anamonitor, so no value for you. Debug is just
to probe some info to the CLI. Using the middle button you have to have
some data on the master and detail side to link. Anyway, I check into
that.
> There should be also some kind of simple
> example of how to actually use it.
Well, good idea: How about writing some short "how to get started" and
post it to me ;-)).
> I looked at sources and it lead me to idea, that I will probably
gather
> some screenshots of our old DOS Clipper app generator called Zachary.
Ok, what can be seen there?
> Very good production app could be generated by it. I especially find
> highly insufficient (unless I miss something) to define field type as
> only being a datatype.
As I wrote: This is just a very Q&D first move. It's not anything near
the business object dialect that I have in mind.
> In Zachary, we were able to define e.g.
> - how to initialise the field (e.g. by other field in db, joining some
> other fields in db, etc.)
Ok, but remember this is not a relational data-model. I don't have done
any query dialect etc. that will work on a graph-based structure.
> - is it part of index expression? If so, which one? 1, 2, 3 ...(index
> firstname + lastname + age)
?? What kind of index you refer too? The only ID used is an object id,
that's it. Searching will be field-based on a full-record base. So you
can search for any content in specified fields or in all fields.
> - can be edited?
> - is visible?
Yes, all GUI sugar. First things first. I concentrate to get the base
working than making it sexy.
> - VTG - variable to get - a cool feature - e.g. VTG("AB")
> allowed us to type only A or B chars (used for floppy sellection).
Choice?
> - mask - (999)-(999 999) - e.g. phone-number
No, generic rules will be used.
> - min - max value
No, generic rules will be used.
> - field type - could be other than just datatype! We had
> something like - M - menu, R - Report, U - user code
If possible I want to avoid types at all and only apply rules.
> - relations/validations - is field validated? If so - does it need to
> exist in child db? Or it must not exist? Can user add new new
> value, if it does not exist in child db?
Rules will be used.
> - updates - a cool one. e.g. - imagine typical storage management
> system. You have stock-db, you have material-entry-db, and
> material-outgoing-db. In your material-outgoing-db, you set
> field called e.g. 'amount, as updating field 'amout in stock-db, and
the
> equation is "decrease". You does not need to care of anything else -
if
> you give 5 pieces of mouse to some customer, the amount of mouses in
> your stock-db will be decreased. If you cancel order of your user, it
> will be added back to stock-db ...
To much SAP working, he? Rules will be used.
> - and - very important - conditions, conditions, conditions!
> conditions for access, conditions for update, conditions for browse
And again, I will use rules for this.
> - the fine thing was - you could first define .dbf in your
> FoxPro or so tool, then you could go to Zachary, name your procedure,
> press import, and basic definitions were created for you - then you
> just went to screen-painter, and imported desired fields. Assigned
given
> procedure name to menu field 1, and voila - your app was done ...
My idea is to just write a set of procedures and rules where these
procedures can be used. For example: You write a sum-function that uses
all objects of type rate, combine them with the data provided by objects
of type time-entry that are in relation to persons that have a
team-member relation with a project. Sounds complicates, I'm sure it is
and the challange is to find a way to make this kind of specification
useable through a dialect.
> - you could export your procedure definition to global repository -
wow
Yes, no problem because application logic is decoupled from data and
from the datamodel (!) :-))
> - repository based shared development in DOS times - we were kinds,
> noone could do what we did with Zachary back at that time.
We will see...
> Some overview found:
> http://www.incredibleprogram.com/html/zachary_overview.html
Thanks for the link. IIRC I once heard about zachary, but I'm going to
have a look at it.
> So, I don't understand a bit, where is your app framework positioned?
> What can be defined? What has to be maintained in code by
> ourselves? etc.
Ok, I try from what I have and where we will go to:
1. Users can define all kind of business-objects (BO).
- Business-objects have a class.
- You can define more than one business-object per class.
- The class definition uses paths idea to be able to
specify specializations for BO.
- Objects are build just from name/value pairs.
- Two records of one BO don't have to have the same name/value pairs.
2. Users can define all kind of relations.
- Same that applies to BO applies to relations.
3. Relations are the "semantic", BO are the data.
4. You apply generic functions on the datamodel that use the "semantics"
and the "data" for input.
5. You apply rules to define in which situation what makes sense.
6. You don't have a single application that does one job. You have a
datamodel, a set of functions and all these together are your "single"
application that will be all you need.
Robert
[8/30] from: petr:krenzelok:trz:cz at: 22-Sep-2002 14:54
Heh, I just hope you don't consider my email being rant or so :-) I just
tried to give some feedback :-) In fact, it's a bit sad more ppl are not
attracted in something like having app/networking framework. Maybe it's
just general problem of Rebol user-base - we are just few ....
>>there seem to be XY bugs ...
>>
>>
>
>What are XY bugs? Problems with coordinates?
>
no, I just started the script, entered some info, pressed buttons and
got app crash ... :-)
>>There should be also some kind of simple
>>example of how to actually use it.
>>
>>
>
>Well, good idea: How about writing some short "how to get started" and
>post it to me ;-)).
>
to write some, I need to clearly understand how it works, what does it
do, etc. :-)
>>Very good production app could be generated by it. I especially find
>>highly insufficient (unless I miss something) to define field type as
<<quoted lines omitted: 3>>
>As I wrote: This is just a very Q&D first move. It's not anything near
>the business object dialect that I have in mind.
Ah, now I understand ... more on that later ....
>>- is it part of index expression? If so, which one? 1, 2, 3 ...(index
>>firstname + lastname + age)
<<quoted lines omitted: 3>>
>that's it. Searching will be field-based on a full-record base. So you
>can search for any content in specified fields or in all fields.
that answer my question, thanks .... In dbase we had to define which
field is part of what index, to be able to perform fast searches.
>>- VTG - variable to get - a cool feature - e.g. VTG("AB")
>>allowed us to type only A or B chars (used for floppy sellection).
<<quoted lines omitted: 5>>
>>
>No, generic rules will be used.
What do you mean by generic rules here? Imo it more relates to have
profi-field style, accepting some kind of mask, etc. E.g. imagine field
type for date entry, IP address entry, which automatically skips #"."
(dots), etc. Users like it. So, above mask just means users are not
allowed to enter other char than number, and other chars "-() " are
skipped/can't be deleted, etc.
>Rules will be used.
>
several of your answers refer to Rules. What do you mean by "rule" in
regards to business object, its field, property, etc?
>To much SAP working, he? Rules will be used.
>
I don't like SAP. It has the most crappy language (ABAP) I seen so far.
Too complex to maintain too ...
>>Some overview found:
>>http://www.incredibleprogram.com/html/zachary_overview.html
>>
>>
>
>Thanks for the link. IIRC I once heard about zachary, but I'm going to
>have a look at it.
>
Just don't spend your free time too much looking at old architecture. It
is me who has to understand first, what your architecture offers ...
>>So, I don't understand a bit, where is your app framework positioned?
>>What can be defined? What has to be maintained in code by
<<quoted lines omitted: 18>>
>datamodel, a set of functions and all these together are your "single"
>application that will be all you need.
It sounds good. What about providing small example? Very primitive one,
to your 1 - 5 points ... I am especially interested to understand first,
how rules will be defined, if rules/relations can be later dynamically
added during the system production life, what exactly do you mean by
attributes
etc.
So, I still need to understand, what are going to be possibilities of
rebol-framework system. I would like to see some open, not too much
complex architecture, providing us with ability to define/express
business relations, as needed. It has to provide user/programmer with
the feeling, like you have with Rebol - expressive freedom. As in
relational model - you have to think in terms of relational-db
capabilities. If such framework can be created, I am fully after it.
PS: do you know anything about UML? The question is, if we are not
going to reinvent the wheels, as I read about similar BO systems, being
described by language called UML. Many systems can import it, etc. I
don't know anything concrete about it yet though ...
-pekr-
[9/30] from: robert:muench:robertmuench at: 22-Sep-2002 17:05
> -----Original Message-----
> From: [rebol-bounce--rebol--com] [mailto:[rebol-bounce--rebol--com]]
<<quoted lines omitted: 4>>
> Heh, I just hope you don't consider my email being rant or so :-)
> I just tried to give some feedback :-)
Hi, no problem, feedback is welcome but should be aligned with the state
of work ;-). So yes, your points are valid and I will take them into
account once the framework is stable enough. I just consider the
feedback that makes sense (for me) at this point ;-))
I hope you made it to get the prototype to work.
> In fact, it's a bit sad more ppl are not
> attracted in something like having app/networking framework.
> Maybe it's just general problem of Rebol user-base - we are just few
I don't know too. I hoped that more people would have a look at it...
Maybe the prototype is still to basic. We will see.
> no, I just started the script, entered some info, pressed buttons and
> got app crash ... :-)
Ok, I really thought you meant some GUI layout stuff ;-)). What did you
done?
> to write some, I need to clearly understand how it works,
> what does it do, etc. :-)
Yep, we are going through this together :-)). I'm a big fan of how-to's
from people who didn't made the stuff as I know most of my implicit
assumptions but you don't as you saw when pressing the first button ;-)
> that answer my question, thanks .... In dbase we had to define which
> field is part of what index, to be able to perform fast searches.
Right, and the charm of the associative datamodel is, that this is no
longer necessary. The relations are decoupled from the data. The longer
I think about it the more I like the concept. It will add some more
development effort but that's ok.
> What do you mean by generic rules here? Imo it more relates to have
> profi-field style, accepting some kind of mask, etc. E.g.
<<quoted lines omitted: 3>>
> allowed to enter other char than number, and other chars "-() " are
> skipped/can't be deleted, etc.
You are right. But I want to decouple the rules for an "IP address"
field from the code of the style. I would like to be able to attach a
set of rules for an "IP address" field. Something like:
ip-address-rule: [
seperator: "."
symbols numbers and "."
skip seperator
post-condition dns-lookup = true
]
This is a set of rules. I want a rule engine that can take thousands of
those rules and check them. Independent of the context the rules are
used for. You can use the same for data integrety:
address-rules: [
if delete than no-order-open = true
mandatory name, mobile
fuzzy-lookup name
post-condition address-lookup = false
]
This is a dialect a user can attach to some objects or constellation of
objects. I as a developer might not know all conditions and situations
to check, it could even be the case that you would like to have other
checks. So, I don't want to lock you in my code, you should be able to
tell my application what you want it to be.
> several of your answers refer to Rules. What do you mean by "rule" in
> regards to business object, its field, property, etc?
For an overview about the idea have a look at:
http://www.businessrulesgroup.org and http://www.ilog.com
> I don't like SAP. It has the most crappy language (ABAP) I
> seen so far. Too complex to maintain too ...
:-) Same with me.
> It sounds good. What about providing small example? Very
> primitive one, to your 1 - 5 points ... I am especially interested to
> understand first, how rules will be defined, if rules/relations can be
> later dynamically added during the system production life, what
exactly
> do you mean by "attributes" etc.
For this I have done the prototype ;-). Anything expect the rules can be
seen, but you can understand how rules could be applied.
> So, I still need to understand, what are going to be possibilities of
> rebol-framework system. I would like to see some open, not too much
> complex architecture, providing us with ability to define/express
> business relations, as needed.
That's exactly what it will do. Try for example to add a BO of your own.
Start the prototype and you will be able to fill-out a form and store
your data, set it into relation to other records. The only thing missing
is the rule part yet.
> It has to provide user/programmer with
> the feeling, like you have with Rebol - expressive freedom. As in
> relational model - you have to think in terms of relational-db
> capabilities. If such framework can be created, I am fully after it.
It's even more free than the relational model. Just add what you need it
and let the datamodel content grow. It will be a picture of your
situation. No need to know what an index, field, table, etc. is.
> PS: do you know anything about UML?
Yes.
> The question is, if we are not
> going to reinvent the wheels, as I read about similar BO
> systems, being described by language called UML.
UML can be used to model your BO you need and to see what relations you
have. There is nowhere mentioned you have to tranform this into a
relational-model. That's what is done mostly today, but it's not
mandatory. You could use UML to understand your problem, and use my
framework just to "implement" it with very few effort.
1. You would add all your needed BO
2. You would add all your needed relations
(the type not if 1:1 or 1:N, that's semantic)
3. You would add a set of rules for the semantic
And than just use it, your are finished. And the nice thing is, it will
be compatible with the rest of your BO. So, if you see you missed
something just add it on-the-fly. Robert
[10/30] from: jason:cunliffe:verizon at: 22-Sep-2002 11:39
> I don't know too. I hoped that more people would have a look at it...
> Maybe the prototype is still to basic. We will see.
Hi
Somehow the Framework RFC flew by me... There's been so much else I have had my
head into recently. I am really interested in the Framework stuff but I need to
catch up on what you're doing.
Where's best to start?
concept
code
docs
thanks
./Jason
[11/30] from: petr:krenzelok:trz:cz at: 22-Sep-2002 19:01
Robert M. Muench wrote:
>>-----Original Message-----
>>From: [rebol-bounce--rebol--com] [mailto:[rebol-bounce--rebol--com]]
<<quoted lines omitted: 13>>
>feedback that makes sense (for me) at this point ;-))
>I hope you made it to get the prototype to work.
you can call me a stupid, but after start I am looking at some UI,
buttons of which the meaning escapes my understanding, the only thing I
can do is to select some predefined/available BOs from choice menu. Then
I can enter some values in the fields, but neither I know when/where are
the values saved, or what happens with them altogether. So please,
explain following:
1) why two panels? What is the meaning of <> button? Each time I press
the button, it crashes the app.
** Script Error: Cannot use path on none! value
** Where: associate
** Near: foreach [label data] master/pane/pane [
if all [not none? data/text not empty? to-string data/text]
[repend _master [to-word label/text data/text]]
]
_master:
2) what is field under choice good for? It has no name, I can enter
something there, but what is it supposed to be used for?
3) When I am trying to press Graph:
** Math Error: Attempt to divide by zero
** Where: move-nodes
** Near: last-max-motion / max-motion
It would be good if those bugs would be corrected before we continue ...
>>to write some, I need to clearly understand how it works,
>>what does it do, etc. :-)
<<quoted lines omitted: 3>>
>from people who didn't made the stuff as I know most of my implicit
>assumptions but you don't as you saw when pressing the first button ;-)
I can write some how-to's, once I get mysefl thru initial phase :-)
>You are right. But I want to decouple the rules for an "IP address"
>field from the code of the style. I would like to be able to attach a
<<quoted lines omitted: 19>>
>checks. So, I don't want to lock you in my code, you should be able to
>tell my application what you want it to be.
hmm, dialect. Dialect should probably contain limited set of options to
use, we have to document/present it somehow to users. Maybe in initial
phase set of rules could be presented by block of blocks of rebol code
being executed? IIRC Maarten did something like that with his pre and
post conditions. I don't remember how his system was called ...
>For an overview about the idea have a look at:
>http://www.businessrulesgroup.org and http://www.ilog.com
>
OK, thanks for the links ....
I hope that associative model is the future for us ...
-pekr-
[12/30] from: gscottjones:mchsi at: 22-Sep-2002 12:16
From: "Petr Krenzelok"
...
> you can call me a stupid, but after start I am looking
> at some UI, buttons of which the meaning escapes
<<quoted lines omitted: 4>>
> happens with them altogether. So please, explain
> following:
...
Hi, Robert,
I can tell that you have worked hard on getting the framework together in
order to be presentable for list comments. But, like Petr, I have tried to
get something to work, and have gotten no further than Petr. I am not
asking that you stop what you are doing to explain it to me; I certainly
realize that it is a work in progress. But please don't assume that there
is little interest, because I do *not* believe this to be the case
(especially for those of us who have a good idea of where you are headed.
For those who don't, they probably will once the see it in action.). All I
ask is that at a stage that is comfortable for you, that maybe you could
give us (me) some more clear idea how we can help. Thanks.
Most Sincerely,
--Scott Jones
[13/30] from: gerardcote:sympatico:ca at: 22-Sep-2002 16:05
Hi Robert,
as stated before, I planned to test your App Framework to give you some feedback. The
first try was not satisfying because I
couldn't run it witht the old /View.
Now that I've downloaded the Beta, all seems fine and I got it to work.
Furthermore, since :
1. You are really busy
2. You would like to get some real input from other users - to help you understand what
is known from others that don't have done
the work and then cna't use the implicit assumptions you are now doing.
3. Many ppl of this List have requested some examples or explanations
I will try my hands at giving you all some input but please I'm like most of you - except
for Robert - I'm just trying and testing
the concepts.
First I already looked at the inside of the many data files accompanying the main script
with my favorite Ultra-Edit Text Editor.
---------------------- Reformated Contents of the "Objects-list.r" data file submitted
by Robert ----------------
index 7 values [[type contact/company name "BrainNet" city "Bonn" updat 3-Sep-2002/10:07:40+2:00
id 1
_updated 18-Sep-2002/14:34:47+2:00]
[type contact/person surname "Michael" lastname "Streng" updat 3-Sep-2002/10:07:20+2:00
id 2
_updated 18-Sep-2002/14:38:03+2:00]
[type note subject "Rebol Prototype gezeigt" updat 3-Sep-2002/10:07:20+2:00 id 3]
[type note subject "Test" updat 3-Sep-2002/10:07:40+2:00 id 4]
[type note subject "Testnotiz" _updated 18-Sep-2002/14:38:03+2:00 id 5]]
----------------- End of the Reformated Contents of the "Objects-list.r" data file
submitted by Robert ---------
Here is what follows from this inspection :
I found one contact/company was named "BrainNet".
Then I looked at the following :
------------------- Robert's "How to use it" instructions ------------------
1- The business object "dialect" is from line 618. Very rudiementary but
OK for a start. Define your own objects and you are able to use them
instantly.
2- Searching is done by hacking in some value in the search-field. Only
exact matches work.
3- Relations between left side (master) and right side (detail) can be
set with the double-arrow-button in the middle.
4- Pressing the graph button will give you a layout of your semantic net.
5- Clicking on a node will set the node into the middle of the screen and
indicate the actual button.
6- Buttons can be dragged around.
------------------- End of Robert's "How to use it" instructions -----------
Following the above "How-to use it" instructions (reproduced and numbered below for reference),
I first tried the second and fourth
one as follows :
a- Select a Contact/Company with the top left rotary button
b- Enter the search-field with the name "brainnet" since only exact matches are accepted
for now
c- Press the Graph button located under the left search-field
Immediately the Framework replies with some information in some of the fields
ID == 1
Name == BrainNet
City == Bonn
d- Going on the right side, I tried to select "Note" from the Top right Rotary button
e- Press the related Graph button on the right side
Then a Graph is displayed showing the following linked names (Sorry for the quality of
the links rendering)
Rebol Prototype (ID == 3)---------- Michael/Streng (ID == 2) -------------- TestNotiz
(ID == 5)
|-------- BrainNet/Bonn (ID == 1) ---- |
|
Test (ID == 4)
and I presume that these are the relations coming from the relations-list.r data file
(reproduced below for reference)
---------------------- Reformated Contents of the "Relations-list.r" data file submitted
by Robert ---------------
index 27 values [[master 1 detail 2 relation-type test updat 3-Sep-2002/10:06:48+2:00
id 1]
[master 2 detail 3 relation-type test updat 3-Sep-2002/10:07:20+2:00 id 2]
[master 1 detail 4 relation-type test updat 3-Sep-2002/10:07:40+2:00 id 3]
[master 1 detail 5 relation-type test _updated 18-Sep-2002/14:34:47+2:00 id 25]
[master 2 detail 5 relation-type test _updated 18-Sep-2002/14:38:03+2:00 id 26]]
---------------------- Reformated Contents of the "Relations-list.r" data file submitted
by Robert ---------------
I also reproduced below another copy of the original "Objects-list.r" for the readers
convenience when comparing the objects IDs
used in the relations :
---------------------- Reformated Contents of the "Objects-list.r" data file submitted
by Robert ----------------
index 7 values [[type contact/company name "BrainNet" city "Bonn" updat 3-Sep-2002/10:07:40+2:00
id 1
_updated 18-Sep-2002/14:34:47+2:00]
[type contact/person surname "Michael" lastname "Streng" updat 3-Sep-2002/10:07:20+2:00
id 2
_updated 18-Sep-2002/14:38:03+2:00]
[type note subject "Rebol Prototype gezeigt" updat 3-Sep-2002/10:07:20+2:00 id 3]
[type note subject "Test" updat 3-Sep-2002/10:07:40+2:00 id 4]
[type note subject "Testnotiz" _updated 18-Sep-2002/14:38:03+2:00 id 5]]
----------------- End of the Reformated Contents of the "Objects-list.r" data file
submitted by Robert ---------
As you can see, this is a first experiment only. I have yet to test my own objects-list
creation with some relations defining using
the double arrow <> button - but testing it when doing some graphing - before reading
its role as described in the "How-to"
completely freezed the Framework.
Very nice work Robert, I am very glad of this first result and I must send you my sincere
thanks for this marvelous start-up. I'll
try to send a follow-up as soon as I can but I think that now many other readers will
add to the testers list !!!
Regards,
Gerard
[14/30] from: bmuangkhot:yaho:o at: 24-Sep-2002 9:12
Remarque : message transféré en pièce jointe.
___________________________________________________________
Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français !
Yahoo! Mail : http://fr.mail.yahoo.com
-- Attached file included as plaintext by Listar --
Received: from [195.115.41.103] by web20707.mail.yahoo.com via HTTP; Mon, 23 Sep 2002
10:02:48 CEST
Date: Mon, 23 Sep 2002 10:02:47 +0200 (CEST)
From: =?iso-8859-1?q?Brice=20Muangkhot?= <[bmuangkhot--yahoo--fr]>
Subject: Re: [REBOL] Re: RFC: Rebol Framework
To: [rebol-list--rebol--com]
In-Reply-To: <004f01c2625b$d0061240$[6401a8c0--mchsi--com]>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Content-Length: 1550
Hi Robert and All,
I am new in Rebol but as far as I understand the Rebol Framework idea from
Robert seems terrific to me regarding Associative Model of Data concept.
If I understand well, the concept is invented by Simon Williams from
Lazy Software http://www.lazysoftware.com. This concept seems provide another
abstrcation level to a database. Lazy Software has implemented already the
products like Sentence and Sentence/View with the concept. These product
is developped with Java as a Servlet running on Application servers Tomcat,
Websphere, etc.. These products provide mainly two functions: Data persistence
and a development tool exploiting the concept.
I don't yet understand very well what Robert is trying to do, but if he is
trying to implement the AMD concept with Rebol,so this is the killer Framework
;-)). Congratulation for your effort Robert!
Robert, I know that you work hard to implement this, I don't want to disturb
you
to explain me more.
I join our fellows Scott, Petr and Gerard to back you. I am new in Rebol, may
be
I can help to test your framework.. ( So far, I got the same experience with
your framework than Scott and Petr)..
Cheers,
Brice
PS. Many documents/white paper about Assoctiative Model of data can be found at
http://www.lazysoftware.com
Simon Williams has written also a book "The Associative Model of Data" you can
order online.
--- "G. Scott Jones" <[gscottjones--mchsi--com]> a écrit : > From: "Petr
Krenzelok"
[15/30] from: greggirwin:mindspring at: 24-Sep-2002 9:43
Brice, et al
Andrew Martin did an initial cut of a Setences system some time back I
think. Andrew?
--Gregg
[16/30] from: robert:muench:robertmuench at: 24-Sep-2002 15:58
> -----Original Message-----
> From: [rebol-bounce--rebol--com] [mailto:[rebol-bounce--rebol--com]]
<<quoted lines omitted: 5>>
> Framework idea from Robert seems terrific to me regarding
> Associative Model of Data concept.
Hi, that's correct.
> If I understand well, the
> concept is invented by Simon Williams from Lazy Software
> http://www.lazysoftware.com.
Correct, too. IIRC it was Petr who mentioned this some time ago. I read
the whitepaper but not more. My idea will use some more ideas and
combine them into one framework. What else do I want to use:
1. Name / Value pair idea for record-layout. Much the idea of LDAP not
columns in a database. Using templates for business-objects that can be
exteneded etc.
2. Using the nakedobject idea for functions that can be applied to the
data-objects, relations.
I haven't solved all problems yet but up to now it seems to work fine.
> These products provide mainly two functions:
> Data persistence and a development tool exploiting the concept.
Right. I have done the data-persistence with Rebol too (at the moment)
but I'm currently checking to implement a DLL that handles the
assocciative datamodel. With this is would be possible to handle
thousands of nodes and links.
> I don't yet understand very well what Robert is trying to
> do, but if he is trying to implement the AMD concept with
> Rebol,so this is the killer Framework ;-)). Congratulation
> for your effort Robert!
Thanks, and yes that's exactly what I want to do.
> Robert, I know that you work hard to implement this, I don't
> want to disturb you to explain me more. I join our fellows
> Scott, Petr and Gerard to back you. I am new in Rebol, may be
> I can help to test your framework.. ( So far, I got the same
> experience with your framework than Scott and Petr)..
No problem, I just followed the open-source rule: release early, release
often. So I hope that the basic "how-to's" are ramping up and that most
of you make it to have a first look at it. Further version will become
more stable, convinient etc. Robert
[17/30] from: robert:muench:robertmuench at: 24-Sep-2002 15:58
> -----Original Message-----
> From: [rebol-bounce--rebol--com] [mailto:[rebol-bounce--rebol--com]]
<<quoted lines omitted: 4>>
> Now that I've downloaded the Beta, all seems fine and I got
> it to work.
Hi, oh thanks for the info, didn't had in mind that we still have those
different versions...
> 1. You are really busy
I wouldn't be if my customers wouldn't be so chaotic ;-))
> 2. You would like to get some real input from other users -
> to help you understand what is known from others that don't
> have done the work and then cna't use the implicit
> assumptions you are now doing.
Yes, and if it sounded to rough from my side sorry. I'm doing my mails
on the fly the day over and preferr shorter mails over good wording ;-)
> 3. Many ppl of this List have
> requested some examples or explanations
I hope the really quick & dirty stuff got you started.
> a- Select a Contact/Company with the top left rotary button
> b- Enter the search-field with the name "brainnet" since only
> exact matches are accepted for now
Ok, you could even have just hacked in your search. The correct template
will be selected for you.
> c- Press the Graph button located under the left search-field
Ok, you got me: The graph button just works on the right side :-| The
effect you see is because searching is done as soon as the cursor leaves
the search field. So you think searching is done by pressing graph, but
it's because you leave the field. The left-graph button has no
functionality yet.
> d- Going on the right side, I tried to select "Note" from the
> Top right Rotary button
You will see the template for a note. You don't have to select a
template just to press graph. These are not related.
> e- Press the related Graph button on the right side
> Then a Graph is displayed showing the following linked
> names (Sorry for the quality of the links rendering)
Perfect! So it's working :-)))
> that these are the relations coming from the relations-list.r
> data file (reproduced below for reference)
Correct.
> As you can see, this is a first experiment only.
Hey, that's great! :-))
> I have yet
> to test my own objects-list creation with some relations
> defining using the double arrow <> button - but testing it
> when doing some graphing - before reading its role as
> described in the "How-to" completely freezed the Framework.
Yep, the prototype isn't bullet-proof... So you have to be careful ;-)
> Very nice work Robert, I am very glad of this first result
> and I must send you my sincere thanks for this marvelous
> start-up. I'll try to send a follow-up as soon as I can but I
> think that now many other readers will add to the testers list !!!
Thanks a lot for this "how-to-get-started" from a user's POV. I hope
Gerard's notes help others too. Robert
[18/30] from: gerardcote:sympatico:ca at: 23-Sep-2002 11:07
Hi Robert,
I have played a little more with Framework and I found this new stuff in my understanding
of the App. :
1. I tried to look if there was some symmetry in the use of the left and right GRAPH
buttons.
Answer is NO. the right GRAPH button can ONLY display the RELATIONS-LIST graph and
it never permits the user to create a new OBJECT like the left GRAPH button does.
2. I also tried to create and relate a new OBJECT to one that I know of that already
exists -
For example, I tried to create a new note named MY-NOTE-2 and relate it to the
contact/person named Michael. Here is how I proceeded - a bit cumbersome but it worked
:
a- Select the contact/person witht the top left rotary button
b- Entering the left search-field with the looked for name Michael
c- Activate the left GRAPH button to get more data about Michael
- this gives you some feedback that you've got the right person.
d- With the top right rotary button, select the desired type of OBJECT to create.
Here I selected a NOTE because I want to Relate/Associate a new NOTE with Michael.
e- Enter the name for the new OBJECT to be created. Here I typed MY-NOTE-2 and pressed
Enter.
The Framework answered by letting me see a new EMPTY Attributes-list related with a new
NOTE OBJECT. The Fields now displayed on this list are the ones I have already seen in
the
OBJECT-TEMPLATE-LIST.R data file : Id, Subject, Text, _created and _updated.
Note that of these 5 fields only the last 4 can be edited since the Id is supposed to
be allocated in a
UNIQUE way by the server App (according to your SPECS!!!).
I completed the Subject and Text fields for testing purpose.
f- Finally I pressed on the double arrows button (<>) and it seemed to work
In fact it worked flawlessly ;-)) as can be seen by doing the last following step ...
g- Press the Right GRAPH button to redisplay the new set of relations.
We immediately get a visual feedback on where the new link is located.
Again Robert, this is a Great Usable Work to start with. Congratulations for your first
FUNCTIONAL step.
However before going further, could you take into account the following suggestions -
may be this will start more remarks done by
the future readers of your Framework :
1. Rename the left GRAPH button to display fields or anything other that fits better
what its purpose is.
2. Even if the creation is working, it's much based on intuition and even if this a natural
way to do, this would
request more feedback in the way that creation has been done correctly - and this should
be received at the
same time the creation process is tried - or just after but the user should have nothing
to request more to get
this information. for the moment we have to request a new GRAPH display.
However I am conscious this is just a FUNCTIONAL DEMO - and a dawn good one. So please
don't
comment it - I already took this into account. It's just a reminder for you when time
will be plentiful with you ;-))
3. The process would seem more natural to me if we also used the left part for the creation
part of a new
OBJECT instead of using the right part - but I understand that after the creation process
is exhausted we have
to get the new OBJECT on the right side for adding the relation with another OBJECT located
in the left pane.
May be you are right to do so but as I said before the creation process seems a bit unconventional
to use.
4. May be you could add some list for displaying in text mode the actual relations existing
between the OBJECT
located in the left pane - this could be used before and after a new addition is done
for a quick check.
5. I am sure that you will find some nice way to get any relation existing between any
2 OBJECTS out of the list of
relations. May be the previous item - relations list text display - could be used to
do just that.
Much like the Easy VID User Interface can be used to start launching of example CODE,
may be this approach
could be used here too to Add, Edit, Delete the OBJECTS and their RELATIONS.
Please think of it. some similar way of doing things could be a very nice approach to
suggest for any new tool
creator using REBOL ;-)) When it applies to the situation at hand for sure !!!
Other than that I don't really know about how my new RELATION was added since when I
asked for the original files (Objects-list.r
and Relation-list.r), none of them was modified. So you must have created them dynamically
in memory but did you plan to do an
update when going out of the App ?
I'm sure you did plan for it, didn't you ?
Keep up the good work, Robert !!!
Regards,
Gerard
[19/30] from: petr:krenzelok:trz:cz at: 24-Sep-2002 19:24
Robert M. Muench wrote:
>>-----Original Message-----
>>From: [rebol-bounce--rebol--com] [mailto:[rebol-bounce--rebol--com]]
<<quoted lines omitted: 24>>
>data-objects, relations.
>I haven't solved all problems yet but up to now it seems to work fine.
well, I will have to wait a bit for what your system is apto. I also
hope someone here is interested in workflow systems, as we will need it
probably too (simply defining in an abstract way, what states e.g. Order
comes thru - new, financial department, transport department, back,
to-repair, finished ....)
Other idea of interest should/could be - how well will the system scale?
Does it require central repository storage? Could IOS be used to have it
synced? Will rebol community come with own IOS like system, featuring
some principles of grid-computing? P2P, strong distribution, search,
load-balancing capabilities, etc. stuff? :-) Would any such system be an
advantage to Robert's framework?
Hey Doc, we want your Uniserve to start with :-)
>>These products provide mainly two functions:
>>Data persistence and a development tool exploiting the concept.
<<quoted lines omitted: 4>>
>assocciative datamodel. With this is would be possible to handle
>thousands of nodes and links.
Shouldn't it be implemented in rebol first? It would at least allow us
to run it on platforms, where your .dll will not be ported ;-)
-pekr-
[20/30] from: bmuangkhot:y:ahoo at: 24-Sep-2002 22:07
Hi Gregg,
Thanks alot, pardon me for the catching up ;-))
Brice.
--- Gregg Irwin <[greggirwin--mindspring--com]> a écrit : > Brice, et al
[21/30] from: al:bri:xtra at: 25-Sep-2002 9:18
Gregg wrote:
> Andrew Martin did an initial cut of a Setences system some time back I
think. Andrew?
It eventually mutated/evolved into using Rebol block! values, that hold
name-value pairs, so as to get the most versatility. Then it got combined
into Naked objects (blocks for Rebol). There's some discussion on my
[Web_Dialect--yahoogroups--com] list about Naked Objects (Blocks) for
Rebol/View, in regards to drag and drop objects/blocks. Once I'm done with
my latest wiki update (getting file upload to work nicely, and display time
and date files nicely), I'll be onto naked blocks again, for HTML (no
drag/drop) and Rebol/View (drag/drop).
Andrew Martin
ICQ: 26227169 http://valley.150m.com/
[22/30] from: robert:muench:robertmuench at: 25-Sep-2002 13:38
> -----Original Message-----
> From: [rebol-bounce--rebol--com] [mailto:[rebol-bounce--rebol--com]]
<<quoted lines omitted: 7>>
> permits the user to create a new OBJECT like the left GRAPH button
> does.
Hi, ok here are some clarifications:
1. The graph button has nothing to do with creating new objects.
2. The graph button on the left side has no functionality yet. It can be
added by some chars and I will do it.
3. New objects are created by the <-> BUTTON (this will be changed in
the next version, it's just a quick hack) if you didn't searched an
existing record first.
> 2. I also tried to create and relate a new OBJECT to one that
> I know of that already exists - For example, I tried to create
> a new note named MY-NOTE-2 and relate it to the contact/person
> named Michael.
Ok, that's possible.
> a- Select the contact/person witht the top left rotary button
This step isn't necessary, the correct BO reference will be found if you
do a search.
> b- Entering the left search-field with the looked
> for name Michael
Correct.
> c- Activate the left GRAPH button to get more data about Michael
Ok, now you can see the relations.
> d- With the top right rotary button, select the
> desired type of OBJECT to create. Here I selected a NOTE
> because I want to Relate/Associate a new NOTE with Michael.
Correct.
> e- Enter the name for the new OBJECT to be created. Here I typed
> MY-NOTE-2 and pressed Enter.
Correct.
> The Framework answered by letting me see a new EMPTY Attributes-list
> related with a new NOTE OBJECT. The Fields now displayed on
<<quoted lines omitted: 3>>
> since the Id is supposed to be allocated in a UNIQUE way by the server
> App (according to your SPECS!!!).
Correct. This all is just debugging output for me.
> f- Finally I pressed on the double arrows button (<>) and it seemed
> to work.
Right. Now the new record is created AND the new relation is created and
stored.
> In fact it worked flawlessly ;-)) as can be seen by doing the last
> following step ...
Great :-))
> g- Press the Right GRAPH button to redisplay the new set of relations.
:-)) That's how it should work.
> Again Robert, this is a Great Usable Work to start with.
> Congratulations for your first FUNCTIONAL step.
Thanks, even if it took us some time to get it done for you all.
> However before going further, could you take into account the
> following suggestions - may be this will start more remarks
> done by the future readers of your Framework :
Yes, of course.
> 1. Rename the left GRAPH button to display fields or anything
> other that fits better what its purpose is.
How about "Layout", "Graphlayout", "Relationgraph"?
> 2. Even if the creation is working, it's much based on
> intuition and even if this a natural way to do, this would
<<quoted lines omitted: 4>>
> this information. for the moment we have to request a
> new GRAPH display.
Yes, I will add "save", "delete" buttons.
> 3. The process would seem more natural to me if we also used
> the left part for the creation part of a new
<<quoted lines omitted: 4>>
> May be you are right to do so but as I said before the
> creation process seems a bit unconventional to use.
Yes, this is still to-be-determined. The problem is that if we get
devided sub-graphs, the layout won't be that easy and nice at the
moment. So I want to asure that we have a connected graph. Anyway,
that's something to work on.
> 4. May be you could add some list for displaying in text mode
> the actual relations existing between the OBJECT located in the left
> pane - this could be used before and after a new addition is done
> for a quick check.
Hmm... How about doing a three-pane. Left and right and below where the
graph is drawn. After adding new relations to an object we could just
show the relations for the master object in the first level.
> 5. I am sure that you will find some nice way to get any relation
> existing between any 2 OBJECTS out of the list of relations.
Yep, I'm thinking about this. This won't be easy, we will see...
> Much like the Easy VID User Interface can be used to
> start launching of example CODE, may be this approach
> could be used here too to Add, Edit, Delete the OBJECTS
> and their RELATIONS.
The idea is, that you can click a node and will get the data-record on
the left or right side. There you can edit the object, add new relations
etc. You can right click the node and now the framework will offer you
only those functions that make sense in the context of
data-field-content, relations etc.
> Please think of it. some similar way of doing things
> could be a very nice approach to suggest for any new tool
> creator using REBOL ;-)) When it applies to the
> situation at hand for sure !!!
That's the idea! For example: I'm using the bug-reporter reblet of IOS
for my make-doc-pro stuff. I would like to move this data into my
framework, add the object-definition and voila we have added a
bug-reporter functionality to it.
> Other than that I don't really know about how my new RELATION
> was added since when I asked for the original files
> (Objects-list.r and Relation-list.r), none of them was
> modified. So you must have created them dynamically in memory
> but did you plan to do an update when going out of the App ?
Yes, the files are written back to disk if you exit the application. So
everything is persistent (that's how it should work). Robert
[23/30] from: robert:muench:robertmuench at: 25-Sep-2002 13:38
> -----Original Message-----
> From: [rebol-bounce--rebol--com] [mailto:[rebol-bounce--rebol--com]]
<<quoted lines omitted: 7>>
> states e.g. Order comes thru - new, financial department, transport
> department, back, to-repair, finished ....)
Hi, yes of course this will be a part. But as I wrote earlier I see it
the following way:
1. You have to recognize a situation/context where a specific workflow
needs to be started.
2. You have to have a component that will ensure this workflow will be
processed.
For the point 1 I would like to use a rule-engine approach. The
rule-engine will fire an event if a specific situation is recognized.
Than the workflow engine will take over. This component now knows how to
do it, whereas the rule-engine knows what to do when.
> Other idea of interest should/could be - how well will the
> system scale? Does it require central repository storage? Could IOS be
> used to have it synced?
Ok, lot of questions:
1. I don't know how good it scales.
2. For now I would like to keep the central storage pattern currently
used.
3. Yes, these files can be synced via IOS. That's my next step I want to
try. I would like to be able to work on such a graph in a group.
> Will rebol community come with own IOS like system, featuring
> some principles of grid-computing?
I don't know. But linking a lot of graphs should easly be possible. At
the moment we only have relations between objects, but we can have
relations between relations as well ;-))
> P2P, strong distribution, search,
> load-balancing capabilities, etc. stuff? :-) Would any such
> system be an advantage to Robert's framework?
We will see... IMO yes: P2P for distribution, the rest I don't know.
> Shouldn't it be implemented in rebol first? It would at least
> allow us to run it on platforms, where your .dll will not be ported
;-)
Yes, of course. It's just a concept check to see if the idea can be
implemented with other approaches as well. And I can tell you: Yes, it's
possible :-)) I just checked it yesterday. A lot of work to do, but the
basic concept works. Robert
[24/30] from: petr:krenzelok:trz:cz at: 25-Sep-2002 14:39
>>well, I will have to wait a bit for what your system is apto. I also
>>hope someone here is interested in workflow systems, as we
<<quoted lines omitted: 13>>
>Than the workflow engine will take over. This component now knows how to
>do it, whereas the rule-engine knows what to do when.
OK, I am starting to understand, where all the concept leads, although I
will wait for some results. I also read
http://www.nakedobjects.org/introduction.html , but I have to say, that
from my experience I don't fully agree to automatic UI generation. I
would prefer whole framework to function as repository of objects, all
their logic and relation, and not trying to guess what is the best way
for user to see his/her data presented. So, I would probably prefer some
kind of "Screen painter", with ability to import certain items. E.g. -
how will you represent block? Will it be combo-box, list-box, or more
complicated grid? You want list, I want grid - what then? :-)
And if not, I will probably have to change UI generation code of
framework anyway. It is all about your users. "My" users are used to
navigate UI via keyboard, Esc closes window, enter edits on grid, insert
inserts new record on grid, delete deletes it, etc. etc ... others will
have another experience ...
... my opinion should not be regarded being a demagogy. It just
represents some pov. I will wait for what can be achieved first, before
I decide to go further ....
btw: what about access rights aka roles? Will it be possible to define
some via rules? :-) How engine will work with them? Eh, can't wait for
for rules to work :-)
-pekr-
[25/30] from: robert:muench:robertmuench at: 25-Sep-2002 17:39
> -----Original Message-----
> From: [rebol-bounce--rebol--com] [mailto:[rebol-bounce--rebol--com]]
<<quoted lines omitted: 4>>
> OK, I am starting to understand, where all the concept leads,
> although I will wait for some results.
Hi, ok. First try will most likely use the finit-state-machine (FSM)
from Gregg.
> I also read http://www.nakedobjects.org/introduction.html , but I have
to
> say, that from my experience I don't fully agree to automatic UI
generation.
Same with me. And I like a lot about nakedobject but not the GUI part.
I'm not sure about drag & drop either. I'm more using my keyboard to
work fast. I'm more in th Norton commander league :-)). I'll like the
clear approach to create a direct relation between data-objects and
screen representations. Anyway, we just take what
makes sense.
> I would prefer whole framework to function as repository of
> objects, all their logic and relation, and not trying to guess what is
the
> best way for user to see his/her data presented.
Mostly agreed.
> how will you represent block? Will it be combo-box, list-box, or more
> complicated grid? You want list, I want grid - what then? :-)
You take grid, I take list ;-)) that's my goal. There is no direct link
between data and screen representation. Sometimes grid makes sense,
sometimes a list. It depends on the decision you want to make and what
kind of support data you need.
> btw: what about access rights aka roles? Will it be possible
> to define some via rules? :-) How engine will work with them? Eh,
can't
> wait for for rules to work :-)
IMO access rights are just that: rules. A role is more like a container
for a set of rules ;-)). You see what I mean... Robert
[26/30] from: robert:muench:robertmuench at: 6-Oct-2002 18:09
Hi, I have updated my rebol-framework effort. What has changed:
- Search is much better: Supports sub-string search
- You now can just save a record with a "save" button
- clicking on a node in the graph-layout will show the record
- Snapshot button added for screen shots
Further I have written some short how-tos so that using it is easier for
you. You can find it on my homepage: www.robertmuench.de The project is
now accesible via my Rebol project section.
Ok, here is a list of things you could help me with if you want:
1. I need an arrow-line keyword. Currently I'm using line to draw a
connection between two nodes. I would like to use an arrow: arrow start
end The arrow should be at end.
2. Problem: I have two nodes with specific width and height. The nodes
can have different parameters for these two. I need a function that
draws a straight line between those nodes in that the source starts from
the middle of the first node (height/2, width/2) and the end of the line
ends on the edge of the node so that an arrow is still seen be the user.
I hope you understand what I mean.
3. Any idea for enhancing the GUI would be welcome.
4. I'm sure my code isn't well optimized yet. Are there are any simple
methods to indicate the hot-spots in my code?
5. Anyone interested in the graph-layout stuff?
As always let me know what you think about it. Robert
[27/30] from: robert:muench:robertmuench at: 8-Oct-2002 15:23
> -----Original Message-----
> From: [rebol-bounce--rebol--com] [mailto:[rebol-bounce--rebol--com]]
<<quoted lines omitted: 3>>
> Subject: [REBOL] RFC: Rebol Framework
> Hi, I have updated my rebol-framework effort.
Hi, no feedback from anybody? Robert
[28/30] from: greggirwin:mindspring at: 8-Oct-2002 11:27
Hi Robert,
Sorry, I haven't been following your Framework project too closely. I think
the lack of feedback may also be due to the lack of overall list activity
what with bugbear hammering things.
--Gregg
[29/30] from: robert:muench:robertmuench at: 21-Oct-2002 17:42
Hi, I have updated my rebol-framework effort. What has changed:
- seperated definition for business-object in extra file
(play around with object-templates.r to create your own BOs)
- date! and area! types now add default-functionality to labels (try BO
note & project)
- some more bugs fixed
- stuff I don't remember... ;-) I think I will start to use bug report
to keep track of all changes and bugs.
I'm still seeking for some people how want to help me with some coding
power. Independent development is possible so you don't need to
understand everything. I'm seeking for stand-alone functions that I can
integrate than. So let me know :-))
1. As you can see in 'objecttemplate2gui this is where all this nice
default-code is added. I'm seeking for people who want to write such
short stuff like get-date, view-notes etc. What kind of default
functionality would further be useful?
2. How about defining Bos? I'm sure most of you can do it. We need to
collect them all, agree an a well done definition and use them ;-). I
would like to list those Bos and there description on my web-site as
well.
Here is my old list of things you could still help me with if you want:
1. I need an arrow-line keyword. Currently I'm using line to draw a
connection between two nodes. I would like to use an arrow: arrow start
end The arrow should be at end.
2. Problem: I have two nodes with specific width and height. The nodes
can have different parameters for these two. I need a function that
draws a straight line between those nodes in that the source starts from
the middle of the first node (height/2, width/2) and the end of the line
ends on the edge of the node so that an arrow is still seen be the user.
I hope you understand what I mean.
3. Any idea for enhancing the GUI would be welcome.
4. I'm sure my code isn't well optimized yet. Are there are any simple
methods to indicate the hot-spots in my code?
5. Anyone interested in the graph-layout stuff?
As always let me know what you think about it.
--
Robert M. M=FCnch
IT & Management Freelancer
Mobile: +49 (0)177 2452 802
Fax : +49 (0)721 8408 9112
Web : http://www.robertmuench.de
[30/30] from: anton:lexicon at: 22-Oct-2002 20:24
Robert,
Do a demo of arrow360 style here:
http://www.lexicon.net/anton/rebol/gui/demo-arrow360.r
or Desktop/REBOL.com/Sites/Anton/gui/demo-arrow360.r
I wanted to modify so it can be specified using only
easy dialect similar to yours below, but it has a simple
dialect using "base" and "tip", and overall size
must be specified.
Anton.
Notes
- Quoted lines have been omitted from some messages.
View the message alone to see the lines that have been omitted