wiki:preliminaryoverview

preliminary overview

  • generate web & gui applications from same source
    • applications could run locally (gui)
    • cloud-enabled (web)
      • direct service for quick computations
      • queue mechanism for long computations
    • generator in perl
    • sources as text files
    • benefits
      • can add features create new interfaces etc with minimal effort
      • changes to target code can be done without effecting the "base" logic
        • i.e. if we generate Qt4 GUI code and want to move to Qt6, our underlying modules don't need to change
        • text files allow "mouse-free" generation
          • this means that further automation is easy
        • can later target an application managing the application itself
  • editable text files
    • json formats
  • registries
    • extend as needed
    • standard fields possible for every type
      • short_description
      • long_description
    • data types
      • basic
        • int, float, double, long double, string, complex etc
      • derived types
        • ip addr etc
      • multidimensional
        • vector
        • matrix
      • sets
      • lists
      • combinations
      • csv
      • structured
        • saxs/sans data
        • structure data
          • pdb
      • hdf5
    • user-interface elements
      • may only be available for specific targets
    • modules
      • modules are the basic processing elements
      • inputs
        • list of data types
      • outputs
      • chain
      • fan-in, fan-out
      • e.g.
        • input csv output saxs .dat (a conversion module)
        • input pdb, additional data output simulated saxs data (a saxs simulator)
        • input pdb, output collection of pdbs (MD or docking simulation)
        • input data, output plot image
        • units conversion module (?)
    • targets
      • contains logic, description for conversion of code to targets
  • application
    • collection of modules
  • genapp
  • test targets
    • sastbx
    • haddock
    • somo hydrodynamic calcs
    • gnuplot
  • notes
    • html5 boilerplate
  • e.g. a module may only run on 32 bit linux
    • generating a GUI application for windows would call a server to handle those modules
    • generating a GUI application for 32 bit linux would call locally
  • generate multiple targets simultaneously
    • output/rev123/gui/qt4/{win32,win64,linux32,linux64,osx}
    • output/rev123/web/
  • initial mock ups
    • test 0 sqrt
      • goals
        • screen elements
        • input / output pathway
        • gui:qt
          • local execution
        • web
          • REST service based execution
          • local (vm?) server
    • test 1 calculator
    • test 2 2d plotting
    • test 3 saxs calculator

  • boilerplate elements.html
  • create sample implementation in html
  • sample for gui/qt
Last modified 4 years ago Last modified on Jan 28, 2014, 9:55:35 AM