On Fri, 28 Jan 2011, arnulf wrote:
Date: Fri, 28 Jan 2011 11:33:06 +0100
From: arnulf <[email protected]>
To: [email protected]
Subject: Re: Rivet namespace and Rivet package
just a comment to Massimo's question, sorry there is no dowload yet, as I am
still in a pre alpha state with ATWF.
ATM I am thinking about having "Reporting Tools With TCL" as the first "real"
application to run with ATWF and doing so I found I should have an interface
language like XUL or XAML or some other XML kind of thing for describing the
widgets and actions etc. for a GUI using CSS files for the look and feel and
a small css interpreter, to do the configure for a Tcl/TK GUI and perhaps to
have a similar functionality based on the same interface using javascript or
.... for supporting browsers on the other hand. I have also looked at xml2gui
and am still in the brain storming phase.
So right now my stack of work to be done is still increasing instead of
decreasing, but I hope to soon stop at least the increasing.
Arnulf
If I can suay you to *NOT* use xml, and instead, use a JSON like language.
It is *SO* easy to parse ... uses very few terminals, and like TCL, is
whitespace delimited.
I've attached a JSON like scripting example from which I generate SQL DDL
for a database independant schema tool ... such a schema can also be used
to generate forms with a rich data definition language ... and these can
be used to generate tcl/PHP/or whatever ... no XSLT, no XML-schema, no
complicated parsing ... but very expressive nonetheless ....
Rob Sciuk
--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=
Robert S. Sciuk http://www.controlq.com 259 Simcoe St. S.
Control-Q Research tel: 905.576.8028 Oshawa, Ont.
[email protected] fax: 905.576.8386 Canada, L1H 4H3
t_Repo Castor {
driver : sqlite
dbms : /u0/database/Castor.mst
user : [
maestro
admin
]
pass : [
0096d401b9a69e5346887f7de069fbd0
21232f297a57a5a743894a0e4a801fc3
]
server : localhost
}
t_Schema CAStor {
revision : 0.001
date : 2010.05.06
security : [
1000
1000
]
comment : "This is the local schema for the CAStor file enumeration utility."
t_Class filTable {
key : [
device
inode
]
t_Field device {
type : db_Integer
label : Device
}
t_Field inode {
type : db_Integer
label : Inode
}
t_Field path {
type : db_String
length : 2048
label : Path
}
t_Field name {
type : db_String
length : 2048
label : Path
}
t_Field mtime {
type : db_Timestamp
label : "Modification Time"
}
t_Field hash {
type : db_String
length : 80
label : "SHA1 Hash"
}
t_Field osize {
type : db_Integer
label : "Original File Size"
}
t_Field owner {
type : db_Integer
label : "File Owner"
}
t_Field grp {
type : db_Integer
label : "File Group"
}
t_Field mode {
type : db_Integer
label : "Permissions"
}
}
t_Class CAStor.filGen {
key : [
device
inode
mtime
]
t_Field CAStor.filGen.device {
type : db_Integer
label : Device
}
t_Field CAStor.filGen.inode {
type : db_Integer
label : Inode
}
t_Field CAStor.filGen.mtime {
type : db_Timestamp
label : "Modification Time"
}
t_Field CAStor.filGen.hash {
type : db_String
length : 80
label : "SHA1 Hash"
}
t_Field CAStor.filGen.osize {
type : db_Integer
label : "Original File Size"
}
}
t_Class CAStor.dirTable {
key : [
device
inode
]
t_Field CAStor.dirTable.device {
type : db_Integer
label : Device
}
t_Field CAStor.dirTable.inode {
type : db_Integer
label : Inode
}
t_Field CAStor.dirTable.path {
type : db_String
length : 2048
label : Path
}
t_Field CAStor.dirTable.name {
type : db_String
length : 2048
label : Path
}
t_Field CAStor.dirTable.mtime {
type : db_Timestamp
label : "Modification Time"
}
t_Field owner {
type : db_Integer
label : "File Owner"
}
t_Field grp {
type : db_Integer
label : "File Group"
}
t_Field mode {
type : db_Integer
label : "Permissions"
}
t_Field CAStor.dirTable.status {
type : db_Enum
values : [
Normal
Ignore
Backup
Critical
]
}
}
t_Class CAStor.wrkTable {
key : [
status
device
inode
]
t_Field CAStor.wrkTable.status {
type : db_Enum
values : [
Unchanged
Modified
Added
Deleted
Ignored
]
}
t_Field CAStor.wrkTable.device {
type : db_Integer
label : Device
}
t_Field CAStor.wrkTable.inode {
type : db_Integer
label : Inode
}
}
t_Trigger Castor.ins_filTable {
source : filTable
target : wrkTable
action : insert
when : after
insert : [ Added new.device new.inode ]
}
t_Trigger Castor.upd_filTable {
source : filTable
when : after
action : update
vars : hash
target : wrkTable
insert : [ Modified old.device old.inode ]
}
t_Trigger Castor.upd_genfile {
source : filTable
when : after
action : update
vars : [ mtime hash osize ]
target : filGen
insert : [ old.device old.inode old.mtime old.hash old.osize ]
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]