GithubHelp home page GithubHelp logo

yoda's Introduction

Real-time data collection for IDEs

Description

Integrated development environments (IDEs) have been around for a few decades already, yet none of the modern IDEs was able to successfully integrate their source code editors with the actual data stream flowing though the code. Ability to display the actual data running through the system promises many potential benefits, including easier debugging and code recall, which results in significantly lower code maintenance costs. The goal of this project is to design a proof-of-concept system in one programming language that allows full code instrumentation (like Python). This system should be able to seamlessly capture all values for all variables in source code and store them somewhere, with further possibility to easily retrieve saved values. The system should also provide an API to the storage in order to make the data accessible for navigation and display in third-party applications.

Specification and scope of the project

Database

  • The used database engine is MongoDB | done
  • The database will be seperated in two parts : user information for the interface and data from the runs
  • During the project different ways of storing the variables have to be tried in order to optimize the database in terms of space and time
    • Should the collections be user centered or file centered ?
  • Entries from the runs will contain the following identifiers :
    • a git commit identifier and a timestamp | done
    • a identifier for the author of the run | done
    • a identifier to know from which file the run is. | done

Software

  • Use the Mongoengine | done
  • Extend the actual code to include more objects. (Low priority)
  • Establish a connection with the git repository to get the commit identifier. | done
  • Inner classes.
  • Loops :
    1. Inter-function navigation in the loop
    2. Variable storing techniques : full, sample (then what size ?), ranges (if applicable), other ?
    3. Conditions --> proportion of execution times (how often?)
    4. Ability to plot values distribution for a specified variable in aggregations. | done

Interface

  • Develop an interface in HTML/Python in order to visualize the results. | in progress
  • The framework "Flask" will be used to develop the interface | done
  • In this interface the user should have at least these possibilities :
    • Filter the different runs by date, commit identifier and author of the run | done
    • Delete a run | done
  • The user should be able to open at least two different runs in order to be able to compare them. | in progress

Experiments

  • Detailed workflow on experiments

yoda's People

Contributors

dragoon avatar dchenaux avatar

Stargazers

Michael Luggen avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.