Gyroscope (software)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Antradar Gyroscope
DeveloperAntradar
Initial releaseNovember 20, 2008; 17 years ago (2008-11-20)[1]
Stable release
16.7 / May 17, 2020; 5 years ago (2020-05-17)
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Written inPHP and JavaScript
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    PlatformCross Platform
    LicenseBSD License
    Websitewww.antradar.com/docs-gyroscope-doc

    Gyroscope is an open-source PHP framework and a code template system for building web backend systems. Gyroscope uses a specific and yet flexible user interaction model to reveal and explore the inner-relations of a database.

    User Interaction Model

    [edit | edit source]

    The Gyroscope UI represents typical data relations such as one-to-many, many-to-many and foreign-key-reference with application-level visual concepts. For example, tables are typically shown as "Entry Points". The most significant columns in a data table are used to display the records in a "List View". Each item in the list view opens the record in a Tab where the rest of the columns are displayed in a key-value format.

    One-to-many (1-N) relations are shown in the form of "Related Records". For example, in a Company Directory application a company may have multiple contact persons. In the "Companies" list view, each item points to a Company record. In the tabbed company record view, the basic information such as company name and address are displayed in the main section of the details view. The "Related Contacts" are listed on the side. Click on a contact item will open the contact details in a separate tab.

    Many-to-many (N-N) relations are displayed as two 1-N views mirroring each other. For example, in a Film-Actor database where a film may have multiple actors, and an actor can be in multiple films, the Film details view lists the actors on its "Related Records" section. Clicking on an actor would pivot the view, by displaying in a separate tab, the basic information of the actor, putting his/her related films on the side.

    Tabs in Gyroscope are not browser tabs. They are logically tabs within the web application. Gyroscope's tab system ensures that no duplicate tabs can open for the same record.

    Compatibility

    [edit | edit source]

    The Gyroscope backend runs on all versions of PHP. Developer features such as the Code Generator requires PHP 5.4 and above because of the use of parent scoping in anonymous functions.

    On the client side, Gyroscope supports all the XHR-enabled web browsers. This include legacy browsers as ancient as Internet Explorer 5.5. Features from modern browsers progressively enhance the Gyroscope user experience. For example, web socket, desktop notification, speech synthesis and voice recognition are used if they are available in the browser.

    Gyroscope is agnostic of the data layer. Any data source that supports CRUD operations can drive a Gyroscope application. The default code generator uses MySQL syntax.

    Architecture

    [edit | edit source]

    Gyroscope uses the Loader-Content-Handler-Handler (LCHH) architecture instead of explicit Model-View-Controller (MVC). In the LCHH architecture, a Loader, or a "DIV" container with a unique identifier is populated with default Content. Visual affordances, also known as "triggers" that are included in the Content invoke client-side handlers. These JavaScript handlers then sends XmlHTTPRequestObject (or AJAX) requests to Server-side Handlers. The Server-side scripts then perform updating, insertion or deletion functions before piggybacking the updated View back to the original Loader via AJAX callback and DOM update. The benefit of the LCHH architecture is that its execution path is identical to the life cycle of an HTTP request. This design has both performance and debugging advantages.[2]

    LCHH can be viewed as a subtle variant of MVC where the focus is on the View (Loader, Content) and Controller (Client-side Handler and Server-side Handler). The implementation of the data source, or the "Model" is largely left to developer's discretion.

    Gyroscope release timeline

    [edit | edit source]

    <timeline> DateFormat = dd/mm/yyyy ImageSize = width:1600 height:700 PlotArea = left:10 right:10 bottom:20 top:10 Colors =

     id:canvas      value:rgb(0.97,0.97,0.97)
     id:grid1       value:rgb(0.80,0.80,0.80)
     id:grid2       value:rgb(0.86,0.86,0.86)
     id:Timeperiod  value:red
     id:Timeperiod2 value:rgb(0.86,0.56,0.56)
     id:gris        value:gray(0.7)
     id:noir        value:black
     id:blanc       value:white
     id:classic     value:rgb(0.9,0,0)
     id:babel value:rgb(0.99,0.95,0.32)
     id:codegen     value:rgb(1,0.6,0)
     id:nova    value:rgb(1,0.3,0.1)
     id:dexter value:rgb(0.66,0.04,0.4)
     id:aperture value:rgb(0.13,0.61,0.01)
     id:intel value:rgb(1,0,0.6)
     id:modules	value:rgb(1,0.6,0.6)
     id:transit	value:rgb(0.6,1,0.6)
    

    Period = from:01/01/2007 till:19/03/2018 TimeAxis = orientation:horizontal format:dd/mm/yyyy ScaleMajor = unit:year increment:1 start:01/01/2007 gridcolor:grid1 ScaleMinor = unit:month increment:3 start:01/01/2007 gridcolor:grid2 AlignBars = justify BackgroundColors = canvas:canvas bars:canvas BarData =

     bar:Timeperiod
     barset:Timeperiod2
    

    PlotData =

    1. Top bar
     width:18 fontsize:12 textcolor:noir align:center shift:(0,-6)
     bar:Timeperiod color:Timeperiod
     from:start      till:end        color:gris
     from:20/11/2008 till:19/04/2014 text:"Classic"  color:classic  textcolor:white
     from:19/04/2014 till:31/10/2014 text:"Codegen" color:codegen textcolor:white
     from:31/10/2014 till:11/12/2015 text:"Nova" color:nova textcolor:white
     from:11/12/2015 till:09/06/2016 text:"Babel" color:babel textcolor:black
     from:09/06/2016 till:10/10/2017 text:"Aperture" color:aperture textcolor:white
     from:10/10/2017 till:end text:"Dexter" color:dexter textcolor:white
     
    
    1. Main
     width:12 fontsize:8 textcolor:codegen anchor:from align:left color:noir shift:(3,-5)
     barset:Timeperiod2
     from:20/11/2008 till:07/12/2010 text:"1.x"
     from:09/01/2009 till:08/12/2009 text:"1.2"
     from:08/12/2009 till:07/01/2010 text:"1.4"
     from:07/01/2010 till:28/03/2010 text:"1.5"
     from:28/03/2010 till:27/06/2010 text:"1.6"
     from:27/06/2010 till:11/09/2010 text:"1.7"
     from:11/09/2010 till:08/10/2010 text:"1.8"
     from:08/10/2010 till:07/12/2010 text:"1.9"
    
     from:07/12/2010 till:02/07/2013 text:"2.x"
     from:30/07/2011 till:29/10/2011 text:"2.1.7"
     from:29/10/2011 till:23/11/2011 text:"2.2"
     from:23/11/2011 till:21/12/2011 text:"2.3"
    
     from:21/12/2011 till:02/07/2013 text:"2.4"
     from:09/04/2012 till:29/04/2012 text:"2.6.2"
     from:29/04/2012 till:29/01/2013 text:"2.7"
     from:29/01/2013 till:29/03/2013 text:"2.8.2"
     from:29/03/2013 till:02/07/2013 text:"2.9.4"
     
     barset:break
     
     from:02/07/2013 till:26/12/2013 text:"3.x"
     from:07/07/2013 till:11/07/2013 text:"3.2"
     from:11/07/2013 till:17/07/2013 text:"3.3"
     from:17/07/2013 till:18/07/2013 text:"3.5"
     from:18/07/2013 till:26/07/2013 text:"3.6"
     from:26/07/2013 till:06/12/2013 text:"3.7"
     from:06/12/2013 till:21/12/2013 text:"3.8.4"
     from:21/12/2013 till:26/12/2013 text:"3.9"
     
     from:26/12/2013 till:21/05/2014 text:"4.x"
     from:18/01/2014 till:22/02/2014 text:"4.1.2"  
    
     from:22/02/2014 till:07/03/2014 text:"4.2.2"
     from:07/03/2014 till:14/03/2014 text:"4.3.2"
     from:14/03/2014 till:01/04/2014 text:"4.4.1"
     from:01/04/2014 till:03/04/2014 text:"4.5.1"
     from:03/04/2014 till:09/04/2014 text:"4.6"
     from:09/04/2014 till:19/04/2014 text:"4.7"
     from:19/04/2014 till:14/05/2014 text:"4.8"
     from:14/05/2014 till:21/05/2014 text:"4.9"
     
     barset:break
     
    
     from:21/05/2014 till:10/01/2015 text:"5.x"
     from:04/06/2014 till:10/06/2014 text:"5.2.1"  
     from:10/06/2014 till:07/07/2014 text:"5.3"
     from:07/07/2014 till:25/07/2014 text:"5.3.1"
     from:25/07/2014 till:09/08/2014 text:"5.4"
     from:09/08/2014 till:10/08/2014 text:"5.4.2"
     from:10/08/2014 till:17/09/2014 text:"5.5"
     from:17/09/2014 till:19/10/2014 text:"5.6"
     from:19/10/2014 till:22/10/2014 text:"5.6.2"
     from:22/10/2014 till:28/10/2014 text:"5.8"
     
     from:28/10/2014 till:31/10/2014 text:"5.9"
     from:31/10/2014 till:09/11/2014 text:"5.9.1"  
     from:09/11/2014 till:21/11/2014 text:"5.9.2"
     from:21/11/2014 till:05/12/2014 text:"5.9.3"
     from:05/12/2014 till:16/12/2014 text:"5.9.5"
     from:16/12/2014 till:22/12/2014 text:"5.9.7"
     from:22/12/2014 till:18/01/2015 text:"5.9.8"
     
     barset:break
     
     from:18/01/2015 till:05/07/2015 text:"6.x"
     from:22/02/2015 till:10/03/2015 text:"6.2"
     from:10/03/2015 till:20/03/2015 text:"6.3"  
     from:20/03/2015 till:08/05/2015 text:"6.3.2"
     from:08/05/2015 till:22/05/2015 text:"6.4"
     from:22/05/2015 till:30/05/2015 text:"6.5"  
     from:30/05/2015 till:02/06/2015 text:"6.5.1"
     from:02/06/2015 till:05/06/2015 text:"6.6"
     from:05/06/2015 till:14/06/2015 text:"6.7"  
    
     from:14/06/2015 till:17/06/2015 text:"6.7.1"
     from:17/06/2015 till:24/06/2015 text:"6.8"
     from:24/06/2015 till:02/07/2015 text:"6.8.1"  
     from:02/07/2015 till:08/07/2015 text:"6.8.2"
     from:08/07/2015 till:13/07/2015 text:"6.9"
    
     barset:break
    
     from:22/07/2015 till:05/12/2015 text:"7.x"
     from:22/07/2015 till:11/08/2015 text:"7.0"
     from:11/08/2015 till:04/09/2015 text:"7.1"
     from:04/09/2015 till:18/09/2015 text:"7.2"
     from:18/09/2015 till:19/09/2015 text:"7.3"
     from:19/09/2015 till:30/09/2015 text:"7.4"
     from:30/09/2015 till:20/10/2015 text:"7.5"
     from:20/10/2015 till:29/10/2015 text:"7.6"
     from:29/10/2015 till:22/11/2015 text:"7.7"
     from:22/11/2015 till:05/12/2015 text:"7.8"
     from:05/12/2015 till:11/12/2015 text:"7.9"
    
     barset:break
    
     from:11/12/2015 till:09/06/2016 text:"8.x"
     from:11/12/2015 till:31/12/2015 text:"8.0"
     from:31/12/2015 till:14/01/2016 text:"8.2"
     from:14/01/2016 till:08/02/2016 text:"8.3"
     from:08/02/2016 till:11/03/2016 text:"8.4"
     from:11/03/2016 till:07/04/2016 text:"8.5"
     from:07/04/2016 till:12/04/2016 text:"8.6.1"
     from:12/04/2016 till:17/04/2016 text:"8.7.1"
     from:17/04/2016 till:16/05/2016 text:"8.8"
     from:16/05/2016 till:09/06/2016 text:"8.9"
               
    

    </timeline>

    See also

    [edit | edit source]

    Lua error in mw.title.lua at line 392: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').

    References

    [edit | edit source]
    1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).