beat issues
https://gitlab.idiap.ch/groups/beat/-/issues
2018-08-28T10:12:15Z
https://gitlab.idiap.ch/beat/beat.web/-/issues/505
the experiment fails without any failure in any block
2018-08-28T10:12:15Z
Zohreh MOSTAANI
the experiment fails without any failure in any block
I was running experiments on the beat platform. The experiments were big and I started them 4 days ago. Today I received notification that the experiments failed. When I checked them there were no error anywhere.
The state of the exper...
I was running experiments on the beat platform. The experiments were big and I started them 4 days ago. Today I received notification that the experiments failed. When I checked them there were no error anywhere.
The state of the experiment is failed however the blocks are either passed or cancelled. This is strange and I do not know where the problem might be.
https://gitlab.idiap.ch/beat/beat.web/-/issues/504
strange behaviour regarding an analyzer in beat platform
2018-11-30T16:03:45Z
Zohreh MOSTAANI
strange behaviour regarding an analyzer in beat platform
I ran two different experiment on beat platform and both of them used the same database (replay/3) and the same analyser (Kanma/iqm_spoof_eer_analyzer/1). The number of positive and negative scores regardless of what the experiment is sh...
I ran two different experiment on beat platform and both of them used the same database (replay/3) and the same analyser (Kanma/iqm_spoof_eer_analyzer/1). The number of positive and negative scores regardless of what the experiment is should be the same, since it only depends on the database. However for one of the experiments these numbers were wrong.
| | exp1(correct) | exp2(wrong) |
| ------------------- |:--------------:| -----------:|
| dev_numNegatives | 300 | 297 |
| dev_numPositives | 60 | 60 |
| test_numNegatives | 400 | 260 |
| test_numPositives | 80 | 80 |
|Scientific Python 2.7| 0.0.4 | 1.0.0 |
Then I ran the experiment with the wrong numbers in my local beat using beat.cmdline and beat.editor ( python 3.6 with the latest version of bob and beat). This time the numbers were correct!
I was wondering if you have any idea what might be the problem and how can I debug it further.
https://gitlab.idiap.ch/beat/beat.editor/-/issues/147
database name does not check validity if the name is not matching the pattern...
2018-08-24T22:52:16Z
Zohreh MOSTAANI
database name does not check validity if the name is not matching the pattern rule
I made a new database with name "replay-me" and it was valid. I assumed that if the name has a problem the editor will tell me. So I made an experiment using this database and it was invalid no matter what I did. Finally I ran the invali...
I made a new database with name "replay-me" and it was valid. I assumed that if the name has a problem the editor will tell me. So I made an experiment using this database and it was invalid no matter what I did. Finally I ran the invalid experiment and I get:
```
Failed to load the experiment `zmostaani/zmostaani/sbhatta-iqm-face-antispoofing-test/2/newantispoofing':
* /datasets/dev_probes/database: 'replay-me/1' does not match '^[a-zA-Z_][a-zA-Z0-9_]*/[0-9]+$' (rule: /properties/datasets/patternProperties/^[a-zA-Z_][a-zA-Z0-9_-]*$/properties/database/
pattern)
* /datasets/test_probes/database: 'replay-me/1' does not match '^[a-zA-Z_][a-zA-Z0-9_]*/[0-9]+$' (rule: /properties/datasets/patternProperties/^[a-zA-Z_][a-zA-Z0-9_-]*$/properties/database
/pattern)
* /datasets/train/database: 'replay-me/1' does not match '^[a-zA-Z_][a-zA-Z0-9_]*/[0-9]+$' (rule: /properties/datasets/patternProperties/^[a-zA-Z_][a-zA-Z0-9_-]*$/properties/database/patte
rn)
Error: Error occured
```
I changed the name of the database to "replayme" and the experiment was valid afterwards. I think these patterns should be considered when checking the name chosen for the database.
https://gitlab.idiap.ch/beat/beat.web/-/issues/503
The experiment stays in state cancelling when stopping the experiment
2018-08-31T09:02:11Z
Zohreh MOSTAANI
The experiment stays in state cancelling when stopping the experiment
When I stop an experiment the blocks that were running stays in the 'cancelling' state and they never change to 'cancelled' plus there is nothing to resume a stopped experiment. I can only fork it again to be able to run it.
When I stop an experiment the blocks that were running stays in the 'cancelling' state and they never change to 'cancelled' plus there is nothing to resume a stopped experiment. I can only fork it again to be able to run it.
https://gitlab.idiap.ch/beat/beat.backend.python/-/issues/16
The input to a block gets the object from index method of View while the name...
2018-09-18T12:27:44Z
Zohreh MOSTAANI
The input to a block gets the object from index method of View while the name from get method of View
I am running an experiment locally using beat.editor. I defined the replay-attack database (using both my own code and the one in beat.examples (https://gitlab.idiap.ch/beat/beat.examples/blob/master/advanced/databases/replay/4.py) (usin...
I am running an experiment locally using beat.editor. I defined the replay-attack database (using both my own code and the one in beat.examples (https://gitlab.idiap.ch/beat/beat.examples/blob/master/advanced/databases/replay/4.py) (using the grandtest protocol). I get the following error in both cases.
```
(beat_py3) zmostaani@helvetix02:/remote/idiap.svm/user.active/zmostaani/experiments/beat$ beat exp run zmostaani/zmostaani/sbhatta-iqm-face-antispoofing-test/1/replay2-antispoofing-iqm-lda-2
Index for database replay/2 not found, building it
Index for database replay/2 not found, building it
Index for database replay/2 not found, building it
Running `zmostaani/iqm_features/1' for block `Feats_IQM_Train'
Start the execution of 'zmostaani/iqm_features/1'
Traceback (most recent call last):
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/bin/beat", line 11, in <module>
sys.exit(main())
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/click/core.py", line 722, in __call__
return self.main(*args, **kwargs)
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/click/core.py", line 697, in main
rv = self.invoke(ctx)
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/click/decorators.py", line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/beat/cmdline/decorators.py", line 75, in _decorator
value = view_func(*args, **kwargs)
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/beat/cmdline/experiments.py", line 569, in run
return run_experiment(config, name, force, docker, local, quiet)
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/beat/cmdline/experiments.py", line 212, in run_experiment
with executor:
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/beat/core/execution/local.py", line 182, in __enter__
self._prepare_inputs()
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/beat/core/execution/local.py", line 194, in _prepare_inputs
databases=self.databases
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/beat/backend/python/helpers.py", line 195, in create_inputs_from_configuration
start_index=start_index, end_index=end_index)
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/beat/backend/python/database.py", line 174, in setup
start_index=start_index, end_index=end_index, pack=pack)
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/beat/backend/python/data.py", line 569, in setup
previous_value = getattr(obj, output_name)
AttributeError: 'Entry' object has no attribute 'class'
```
In get method there is 'class' but in the index there is not, because beat is using namedtuple for making the Entry points and this function does not allow to have name 'class' as an Entry. Even if I define a dictionary instead of namedtuple in my database the python backend is chainging it to namedtuple.
```
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/beat/backend/python/database.py", line 157, in setup
Entry = namedtuple('Entry', sorted(objs[0].keys()))
File "/idiap/user/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/collections/__init__.py", line 404, in namedtuple
'keyword: %r' % name)
ValueError: Type names and field names cannot be a keyword: 'class'
```
I have two questions
- why not use simple dictionaries in python backend instead of namedtupe
- why the input of block is trying to access objects in index instead of get.
Please let me know if you need more information.
https://gitlab.idiap.ch/beat/beat.cmdline/-/issues/45
The script `beat.py` should be gone
2018-08-27T15:37:08Z
André Anjos
The script `beat.py` should be gone
After replacing it by `main_cli.py`, I think this is now duplicated code which serves no purpose. @flavio.tarsetti, please check and make an MR which removes this file (https://gitlab.idiap.ch/beat/beat.cmdline/blob/1.4.x/beat/cmdline/sc...
After replacing it by `main_cli.py`, I think this is now duplicated code which serves no purpose. @flavio.tarsetti, please check and make an MR which removes this file (https://gitlab.idiap.ch/beat/beat.cmdline/blob/1.4.x/beat/cmdline/scripts/beat.py).
Flavio TARSETTI
Flavio TARSETTI
https://gitlab.idiap.ch/beat/beat.editor/-/issues/146
The page refreshes everytime I try to change the name of a block in a toolchain
2018-08-22T06:50:08Z
Zohreh MOSTAANI
The page refreshes everytime I try to change the name of a block in a toolchain
I am trying to make a new toolchain. When I want to change the name of the block the small box for adjusting the inputs and outputs of block refreshes. It closes and opens again in a split second. It happens only when changing the name o...
I am trying to make a new toolchain. When I want to change the name of the block the small box for adjusting the inputs and outputs of block refreshes. It closes and opens again in a split second. It happens only when changing the name of the block but not when changing the inputs and outputs name and it happens by writing or deleting each letter. Very annoying! I would really appreciate if you could give a temporary solution to me if it will take time to fix this issue. Please let me know if you need any information.
https://gitlab.idiap.ch/beat/beat.editor/-/issues/145
New algorithms should come with an input & output in the first group
2019-02-26T09:51:19Z
Jaden DIEFENBAUGH
New algorithms should come with an input & output in the first group
Pretty sure this is a requirement of non-analyzer algorithms, so it would make sense to do this step for the user
Pretty sure this is a requirement of non-analyzer algorithms, so it would make sense to do this step for the user
[v1] Ongoing patching until [v2] is ready
Jaden DIEFENBAUGH
Jaden DIEFENBAUGH
https://gitlab.idiap.ch/beat/beat.editor/-/issues/144
fix connection line ids prepending '#' to id name
2018-12-19T19:02:44Z
Jaden DIEFENBAUGH
fix connection line ids prepending '#' to id name
Obviously my wires crossed at some point - the `line`s in `ToolchainConnections` have ids that start with '#', making it very hard to select a line by id:
```js
document.querySelector('#\\#training_data-measurements-training_alg-measurem...
Obviously my wires crossed at some point - the `line`s in `ToolchainConnections` have ids that start with '#', making it very hard to select a line by id:
```js
document.querySelector('#\\#training_data-measurements-training_alg-measurements');
```
Woops!
Toolchain Editor: Fixes
https://gitlab.idiap.ch/beat/beat.editor/-/issues/143
The connection in the toolchain is not being updated properly
2018-12-19T19:02:44Z
Zohreh MOSTAANI
The connection in the toolchain is not being updated properly
I made a toolchain from scratch by looking at tutorial/eigenface/1 . I made some mistakes in connecting the endpoints but at the end I corrected them and all the names and connections in my toolchain were the same as this toolchain. Then...
I made a toolchain from scratch by looking at tutorial/eigenface/1 . I made some mistakes in connecting the endpoints but at the end I corrected them and all the names and connections in my toolchain were the same as this toolchain. Then I used my toolchain in an experiment but it was not working. It said that the toolchain is not valid because certain connections are wrong. Looking at the json file of the toolchain, it turned out that the correct connections are added to the list of connections without the previous wrong ones being removed from them and therefore the error. I must say that in the beat editor gui everything seemed correct and valid.
Toolchain Editor: Fixes
Jaden DIEFENBAUGH
Jaden DIEFENBAUGH
https://gitlab.idiap.ch/beat/beat.cmdline/-/issues/44
The connection in the toolchain is not being updated properly
2018-08-08T14:39:24Z
Zohreh MOSTAANI
The connection in the toolchain is not being updated properly
I made a toolchain from scratch by looking at tutorial/eigenface/1 . I made some mistakes in connecting the endpoints but at the end I corrected them and all the names and connections in my toolchain were the same as this toolchain. Then...
I made a toolchain from scratch by looking at tutorial/eigenface/1 . I made some mistakes in connecting the endpoints but at the end I corrected them and all the names and connections in my toolchain were the same as this toolchain. Then I used my toolchain in an experiment but it was not working. It said that the toolchain is not valid because certain connections are wrong. Looking at the json file of the toolchain, it turned out that the correct connections are added to the list of connections without the previous wrong ones being removed from them and therefore the error. I must say that in the beat editor gui everything seemed correct and valid.
https://gitlab.idiap.ch/beat/beat.cmdline/-/issues/43
cache should be cleared to run new experiments even if the changes are in the...
2018-08-18T04:34:25Z
Zohreh MOSTAANI
cache should be cleared to run new experiments even if the changes are in the database block.
from What I understood from the documentation of beat.editor about cache system, it seems that if you change something in a block, beat should rerun that block and all the blocks depending on it. But it is not the case.
I changed the ro...
from What I understood from the documentation of beat.editor about cache system, it seems that if you change something in a block, beat should rerun that block and all the blocks depending on it. But it is not the case.
I changed the root folder for the database atnt/5 in the prefix given in beat.tutorial.prefix to run the experiment test/tutorial/eigenface/1/atnt , but I had to clear the cache, otherwise it would still point to the wrong address for the database, even-though the json file was updated immediately.
https://gitlab.idiap.ch/beat/beat.editor/-/issues/142
cannot unassign an algorithm to a block in the experiment.
2018-12-19T19:02:44Z
Zohreh MOSTAANI
cannot unassign an algorithm to a block in the experiment.
After choosing an algorithm for a block in an experiment it is not possible to assign no algorithm to that block. It is only possible to choose from certain algorithms. This is not the case for the Database though. If there is a problem ...
After choosing an algorithm for a block in an experiment it is not possible to assign no algorithm to that block. It is only possible to choose from certain algorithms. This is not the case for the Database though. If there is a problem in the toolchain and you want to find out where the problem is it would be a good option to unassign an algorithm without deleting the whole block.
Experiment Editor: Fixes
https://gitlab.idiap.ch/beat/beat.cmdline/-/issues/42
cannot unassign an algorithm to a block in the experiment.
2018-08-07T14:18:05Z
Zohreh MOSTAANI
cannot unassign an algorithm to a block in the experiment.
After choosing an algorithm for a block in an experiment it is not possible to assign no algorithm to that block. It is only possible to choose from certain algorithms. This is not the case for the Database though. If there is a problem ...
After choosing an algorithm for a block in an experiment it is not possible to assign no algorithm to that block. It is only possible to choose from certain algorithms. This is not the case for the Database though. If there is a problem in the toolchain and you want to find out where the problem is it would be a good option to unassign an algorithm without deleting the whole block.
https://gitlab.idiap.ch/beat/beat.editor/-/issues/141
[branch] cross-tab-sync pending branch still alive ?
2018-08-07T17:55:21Z
Flavio TARSETTI
[branch] cross-tab-sync pending branch still alive ?
@jdiefenbaugh I see this dangling branch "cross-tab-sync" you have created months ago - seems quite old, but you added some commits in there. (maybe some important commits)
What do we need to do with this one ? Could you have a check an...
@jdiefenbaugh I see this dangling branch "cross-tab-sync" you have created months ago - seems quite old, but you added some commits in there. (maybe some important commits)
What do we need to do with this one ? Could you have a check and let me know ? Thanks
Jaden DIEFENBAUGH
Jaden DIEFENBAUGH
https://gitlab.idiap.ch/beat/beat.cmdline/-/issues/41
the plot function does not work properly
2018-08-10T09:52:54Z
Zohreh MOSTAANI
the plot function does not work properly
I am following the documentation on beat.editor (https://www.idiap.ch/software/beat/docs/beat/docs/master/beat.editor/doc/user.html). I have a working conda environment with all the necessary packages and python 3.6 installed. I could ru...
I am following the documentation on beat.editor (https://www.idiap.ch/software/beat/docs/beat/docs/master/beat.editor/doc/user.html). I have a working conda environment with all the necessary packages and python 3.6 installed. I could run the experiment in the tutorial but when I wanted to plot the results I got the following error. Any idea what might be the problem? Thanks.
`beat exp plot --show test/test/iris/1/iris`
`Traceback (most recent call last):
File "/idiap/temp/zmostaani/miniconda3/envs/beat_py3/bin/beat", line 11, in <module>
sys.exit(main())
File "/idiap/temp/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/click/core.py", line 722, in __call__
return self.main(*args, **kwargs)
File "/idiap/temp/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/click/core.py", line 697, in main
rv = self.invoke(ctx)
File "/idiap/temp/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/idiap/temp/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/idiap/temp/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/click/core.py", line 895, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/idiap/temp/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/click/core.py", line 535, in invoke
return callback(*args, **kwargs)
File "/idiap/temp/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/click/decorators.py", line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File "/idiap/temp/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/beat/cmdline/decorators.py", line 75, in _decorator
value = view_func(*args, **kwargs)
File "/idiap/temp/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/beat/cmdline/experiments.py", line 783, in plot
output_folder
File "/idiap/temp/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/beat/cmdline/experiments.py", line 496, in plot_impl
experiments = pull(webapi, configuration.path, [name], force, indentation, format_cache)
File "/idiap/temp/zmostaani/miniconda3/envs/beat_py3/lib/python3.6/site-packages/click/core.py", line 722, in __call__
return self.main(*args, **kwargs)
TypeError: main() takes from 1 to 5 positional arguments but 7 were given`
Flavio TARSETTI
Flavio TARSETTI
https://gitlab.idiap.ch/beat/beat.editor/-/issues/140
Update Algorithm schema (and editor?)
2019-02-26T18:00:07Z
Jaden DIEFENBAUGH
Update Algorithm schema (and editor?)
As of https://gitlab.idiap.ch/beat/beat.core/merge_requests/31#note_33390 , the algorithm schema in beat.core has been updated. Depending on the schema changes, there might need to be editor changes as well...
As of https://gitlab.idiap.ch/beat/beat.core/merge_requests/31#note_33390 , the algorithm schema in beat.core has been updated. Depending on the schema changes, there might need to be editor changes as well...
[v1] Ongoing patching until [v2] is ready
https://gitlab.idiap.ch/beat/beat.editor/-/issues/139
Add Jinja2 template for plotter editor
2018-10-02T12:13:23Z
Jaden DIEFENBAUGH
Add Jinja2 template for plotter editor
Turns out, the plotter editor doesn't have a template file!
@flavio.tarsetti this would be a great intro issue to see & work with the whole system
Turns out, the plotter editor doesn't have a template file!
@flavio.tarsetti this would be a great intro issue to see & work with the whole system
Flavio TARSETTI
Flavio TARSETTI
https://gitlab.idiap.ch/beat/docs/-/issues/6
[documentation - day] Proposition
2018-12-17T20:55:16Z
Flavio TARSETTI
[documentation - day] Proposition
**List of all the packages on gitlab concerning beat :**
```
beat.tutorial
beat.examples
beat.env.python27
beat.core
beat.deploy
beat.env.web
beat.web
beat.env.develop
beat.cmdline
beat.backend.python
beat.env.backend
beat.env.docker
be...
**List of all the packages on gitlab concerning beat :**
```
beat.tutorial
beat.examples
beat.env.python27
beat.core
beat.deploy
beat.env.web
beat.web
beat.env.develop
beat.cmdline
beat.backend.python
beat.env.backend
beat.env.docker
beat.backend.cxx
beat.env.scripts
beat.env.python
beat.env.system.python
beat.env.cxx
beat.env.client
beat.env.db.examples
beat.env.db
beat.env.rankone
beat.editor
weeklies
beat.presentation.technical
ci.env.editor
beat.tutorial.prefix
docs
beat.env.pytorch
```
**List of packages in the aggregated documentation**
```
beat.cmdline
beat.core
beat.backend.python
beat.web
beat.editor
```
From which:
* `beat.core` documentation on _beat.core components_. It's a `User Guide`
* `beat.cmdline` documentation on command-line client. It's a `User Guide`
* `beat.backend.python` documentation on various API aspects. It's an `API Guide`
* `beat.editor` documentation on how to edit _beat objects_. It has an `Installation Guide` and `User Guide` with an additional breakdown on how to edit each objects, and also a `Development Guide`, a possible `API Guide` for the Flask server
* `beat.web` documentation on the platform's architecture. It has an `Administrator Guide` and also an `API Guide` and finally the platform `User Guide`
**Miscellaneous information**
* The information about `how to write algorithms` targets what is now `legacy` and is `not v2 compatible` #5
**Proposition**
* Let's target "ONLY" for now the list of packages from the aggregated documentation (beat.core, beat.cmdline, beat.backend.python, beat.editor, beat.web) with an upper package `beat` which would pin all those packages at a specific version for a proper release.
* We could imagine having a consistent track for each of these packages (I am not sure to what extend this makes sense as beat.cmdline for example doesn't have an API Guide or Development Guide):
* Installation Guide
* User Guide
* API Guide (When required)
* Administrator/Development Guide
**Open questions**
* I was previously in favor of having a `User Guide` for all the packages then an `API Guide` for all of them again, etc. etc. but to what I see this would seem confusing. I would keep the proposition above and we should write more documentation (such as a Development Guide) for all the packages and we should spend time writing a `beat.tutorial` documentation which would regroup all the User Guide of `beat.web`, `beat.cmdline` and `beat.editor` only. Does this make sense ?
https://gitlab.idiap.ch/beat/docs/-/issues/5
[beat.web] documentation on algorithm
2018-12-17T21:50:13Z
Flavio TARSETTI
[beat.web] documentation on algorithm
@andre.anjos:
I think this answers the question:
[8._Algorithms___beat_2018.06.pdf](/uploads/c82a54740e60b9089bb1d5f1f74f9c3e/8._Algorithms___beat_2018.06.pdf)
Please see attached file.
So do we have documentation on how to write algo...
@andre.anjos:
I think this answers the question:
[8._Algorithms___beat_2018.06.pdf](/uploads/c82a54740e60b9089bb1d5f1f74f9c3e/8._Algorithms___beat_2018.06.pdf)
Please see attached file.
So do we have documentation on how to write algorithms on beat.web (1.4 branch) ?
From my point of view the answer is yes. Do we agree ?
If yes we can close this issue.