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]

Reply via email to