RAPID-MIX_API issueshttps://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues2017-08-17T14:33:08Zhttps://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/8Add GF to Rapid API2017-08-17T14:33:08ZMichael ZbyszyńskiAdd GF to Rapid API@mgill009 @mick
If I can get my hands on the Gesture Follower code, I'll integrate it into the RapidLib.@mgill009 @mick
If I can get my hands on the Gesture Follower code, I'll integrate it into the RapidLib.Michael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/11Windows and Linux Builds for examples2017-09-21T13:19:47ZMichael ZbyszyńskiWindows and Linux Builds for examplesWe should setup a windows build system to create windows binaries for C++ examplesWe should setup a windows build system to create windows binaries for C++ examplesMichael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/7Merge 3rd party dependancies (json and catch)2017-08-17T14:30:14ZMichael ZbyszyńskiMerge 3rd party dependancies (json and catch)We have added dependancies to json.cpp and Catch cpp to the rapidmix-api.
These dependancies are also part of XMM and json.cpp is part of RapidLib. How can we resolve these duplicates in this repository?We have added dependancies to json.cpp and Catch cpp to the rapidmix-api.
These dependancies are also part of XMM and json.cpp is part of RapidLib. How can we resolve these duplicates in this repository?https://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/3Decide: submodule, subtree, read-tree2017-08-30T13:10:42ZMichael ZbyszyńskiDecide: submodule, subtree, read-tree@Joseph @francisco
I think none of us like git submodule for our external repositories. I had been considering git subtree. Francisco used git read-tree. We should come up with one, simple solution for our public repository.@Joseph @francisco
I think none of us like git submodule for our external repositories. I had been considering git subtree. Francisco used git read-tree. We should come up with one, simple solution for our public repository.Francisco BernardoFrancisco Bernardohttps://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/6GVF does not import/export JSON models and breaks the architectural pattern2017-11-27T17:21:56ZFrancisco BernardoGVF does not import/export JSON models and breaks the architectural patternThis could be a "Nice to have" feature
@baptisteThis could be a "Nice to have" feature
@baptistehttps://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/4Document background classes2017-09-29T09:22:11ZMichael ZbyszyńskiDocument background classesUsers of classifiers (DTW or kNN) want to know when there is no gesture that matches what has been trained. We need to document how the possible use of a "background" class, or rejecting bad matches by thresholding.Users of classifiers (DTW or kNN) want to know when there is no gesture that matches what has been trained. We need to document how the possible use of a "background" class, or rejecting bad matches by thresholding.https://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/15Have run() return a struct2017-12-01T09:02:41ZMichael ZbyszyńskiHave run() return a struct@Joseph has added a struct to machinelearning.h which could hold many types of possible algorithm outputs. How far to integrate this into the whole API?
``` c++
/** @brief A generic ouptut struct to fit all kinds of models */
t...@Joseph has added a struct to machinelearning.h which could hold many types of possible algorithm outputs. How far to integrate this into the whole API?
``` c++
/** @brief A generic ouptut struct to fit all kinds of models */
typedef struct runResults_t {
std::vector<double> likelihoods;
std::vector<double> regression;
std::vector<double> progressions;
std::string likeliest;
} runResults;
```https://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/16Stackoverflow presence2017-09-21T16:16:08ZFrancisco BernardoStackoverflow presenceFrancisco BernardoFrancisco Bernardohttps://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/18"Hello World" is lame2017-12-04T16:14:23ZMichael Zbyszyński"Hello World" is lameThe current "hello world" example on the website is not very inspiring. It demonstrates something that is music-centred and esoteric. And, it doesn't work very well. Can this be improved? Or, should we abandon "hello world"?
One big pr...The current "hello world" example on the website is not very inspiring. It demonstrates something that is music-centred and esoteric. And, it doesn't work very well. Can this be improved? Or, should we abandon "hello world"?
One big problem is that this example should run without any 3rd party dependancies. Unfortunately, that means very limited input potential.
Also, how inspiring is "hello world" supposed to be?Michael ZbyszyńskiMichael Zbyszyńskihttps://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/54API methods for training data quantification2018-01-19T14:25:20ZFrancisco BernardoAPI methods for training data quantificationThe quantity of data should be made visible on the high level interfaces — quantity of data can have multiple aspects to it — (e.g., #recorded Rounds, #examples per round, #total memory consumption). In one instance, one participant no...The quantity of data should be made visible on the high level interfaces — quantity of data can have multiple aspects to it — (e.g., #recorded Rounds, #examples per round, #total memory consumption). In one instance, one participant noticed the memory of the browser was reaching 3GB, and found this unusual, and also observed the consequences in training time.
Recommendation: Participants would benefit from API methods (namely in the training data class) that provide metrics about quantity or volume of data. This should help developers in design by making them explicit through the visual interface metaphors they develop. It should also be explained in the documentation the consequences of dealing with large data sets (e.g., training time, impact on the classification results outcomes, etc.)https://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/21Regression requires additional explanation on the website2017-09-21T13:30:55ZFrancisco BernardoRegression requires additional explanation on the websiteRegression requires additional explanation, mainly with regards to :
* why is it different from interpolation
* why it doesn’t converge to the initial values
* ...Regression requires additional explanation, mainly with regards to :
* why is it different from interpolation
* why it doesn’t converge to the initial values
* ...https://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/23Providing the big picture of ML concepts and how they relate to our API2017-09-21T13:28:11ZFrancisco BernardoProviding the big picture of ML concepts and how they relate to our APIThere is no element in the documentation that provides a broad, encompassing and big picture of ML concepts and how our API provides them. Users at eNTERFACE17 suggested some useful artefacts for help with this, such as mind maps or info...There is no element in the documentation that provides a broad, encompassing and big picture of ML concepts and how our API provides them. Users at eNTERFACE17 suggested some useful artefacts for help with this, such as mind maps or infographics.
This should include terms such as "features", "feature vector", "model", "classifier", "instance", "example", "label", etc.
Recommendation: Provide a mind map embedded in a webpage of the RAPID-MIX API, which relate fundamental ML concepts to what our API offers to end users. There is a glossary of terms by Ron Kohavi (http://robotics.stanford.edu/~ronnyk/glossary.html) that could be mapped to this React MindMap component (https://github.com/learn-anything/react-mindmap). Checkout this example (https://learn-anything.xyz/machine-learning/machine-learning-libraries)https://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/24Introduce supporting technologies (git, terminal, node, etc) or link to curat...2017-09-20T12:00:55ZFrancisco BernardoIntroduce supporting technologies (git, terminal, node, etc) or link to curated 3rd party resourcesSupporting technologies such as git, terminal, node, server-side technologies should be explained better.
Recommendation: Either with a very succinct explanation about rational and procedure, and/or a link to a good external resource th...Supporting technologies such as git, terminal, node, server-side technologies should be explained better.
Recommendation: Either with a very succinct explanation about rational and procedure, and/or a link to a good external resource that is compatible with our and language style.https://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/25Provide further resources for the different underlying algorithms2017-09-20T12:10:27ZFrancisco BernardoProvide further resources for the different underlying algorithmsThe conceptual part about algorithms was considered both important and lacking. Users asked for more insights about how the algorithms worked.
Recommendation: Provide a succinct explanation with links to further resources, links to ext...The conceptual part about algorithms was considered both important and lacking. Users asked for more insights about how the algorithms worked.
Recommendation: Provide a succinct explanation with links to further resources, links to external 3rd party resources, such as videos, papers, etchttps://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/26Providing an incremental approach for learning how to use the API2017-09-20T12:16:21ZFrancisco BernardoProviding an incremental approach for learning how to use the APIUsers suggested of structuring documentation with an "incremental approach", as "recipes", or short stories. Nature of Code was reference of providing a good incremental approach.
Recommendation: Provide guides grounded on specific u...Users suggested of structuring documentation with an "incremental approach", as "recipes", or short stories. Nature of Code was reference of providing a good incremental approach.
Recommendation: Provide guides grounded on specific use cases that show how to implement an incremental approach. For instance, the mouse examples are good candidates to illustrate how to start how to evolve from a barebones example with pre-defined data, to using real-time data, to mixing classification and regression, through to building up a more compelling use case grounded on real world scenario.https://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/28Self-explanatory code and commenting practices2017-09-20T12:31:53ZFrancisco BernardoSelf-explanatory code and commenting practicesUsers considered code comments as important as documentation. Code comments compete with the main documentation, particularly for certain users who bypassed documentation completely, or who prefer to refer to it much later in the explora...Users considered code comments as important as documentation. Code comments compete with the main documentation, particularly for certain users who bypassed documentation completely, or who prefer to refer to it much later in the exploration and development workflow, for troubleshooting for instance.
Recommendations:
* Examples' code should be comprehensively commented in sections with “magic numbers” (e.g. number 5 in RapidStream, number of Gaussians, etc.)"
* Examples such as the RapidStream would benefit from adding the rationale and usefulness for each feature in the UI.https://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/30Design patterns for using the RAPID-MIX API2017-09-20T12:59:27ZFrancisco BernardoDesign patterns for using the RAPID-MIX APIRAPID-MIX API users, as developers, would benefit from design patterns for macro or frequent use operations, that should be consistently implemented across examples.
Recommendations:
* Users would benefit from having the "record"...RAPID-MIX API users, as developers, would benefit from design patterns for macro or frequent use operations, that should be consistently implemented across examples.
Recommendations:
* Users would benefit from having the "record", "train" and "run" controls and modes made as visible and explicit as possible. A design pattern that unifies this kind of usage across examples, would provide a stronger scaffolding for understanding the RAPID-MIX workflow.
* Participants didn’t explore much feature selection in their process, sticking to what was given by default. Participants would benefit from a design pattern, or any scaffolding, that structures feature selection and the features meta-information across the examples.
* There aren’t many examples that save/load the “configuration data” (training data set or model). It would be useful to provide a design pattern for API examples that offers selection between pre-trained models (inputing stored training data, either from local or remote storage) and a new model to be trained from scratch, so that they can explore other features of the pipeline working with data, a feature selection and ML algorithms and parameters tuning.
* A design pattern that makes explicit the fast, realtime, and iterative nature of data streams, could benefit the users in understanding how to design with data. This could be achieved by rendering the feature vector or frame of data that is passed as input for training
https://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/31Contrasting examples2017-09-20T12:40:44ZFrancisco BernardoContrasting examplesWe have insufficient examples that contrast how to use different machine learning tasks (classification vs regression).
Recommendation: Create examples that demonstrate how to use classification AND regression, or classification AND DTW"We have insufficient examples that contrast how to use different machine learning tasks (classification vs regression).
Recommendation: Create examples that demonstrate how to use classification AND regression, or classification AND DTW"https://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/32Explain the relation between inputs, classes, outputs and mapping2017-09-20T12:47:14ZFrancisco BernardoExplain the relation between inputs, classes, outputs and mappingOn the same note, how the relation between how inputs (or features) and outputs (or labels) is set was cumbersome. Some participants tried to train the same model with a different number of inputs.
Recommendation: In the case of compos...On the same note, how the relation between how inputs (or features) and outputs (or labels) is set was cumbersome. Some participants tried to train the same model with a different number of inputs.
Recommendation: In the case of composite labels (e.g. multiple regression outputs associated to the parameters of a synthesiser), it would be helpful to explain incrementally the rationale behind this, specially given this is one element that originates from our domain of practice and that makes our API highly opinionated.https://gitlab.doc.gold.ac.uk/rapid-mix/RAPID-MIX_API/-/issues/33API documentation fragmentation2017-09-20T13:04:40ZFrancisco BernardoAPI documentation fragmentationUsers' feedback reports about how the documentation of the different components is fragmented: different sites; different content, design and user experiences, and potentially, different authors.
Recommendations:
* There should be a ...Users' feedback reports about how the documentation of the different components is fragmented: different sites; different content, design and user experiences, and potentially, different authors.
Recommendations:
* There should be a common medium, method and style for documentation, which will reduce the adoption friction.
* ORM for MySQL, Postgres, loadash, underscore, KNX, and Processing, were given as reference examples of good documentation.