beat issueshttps://gitlab.idiap.ch/groups/beat/-/issues2015-05-07T10:08:10Zhttps://gitlab.idiap.ch/beat/beat.web/-/issues/156Saved search is not displayed2015-05-07T10:08:10ZAndré AnjosSaved search is not displayedIf I click (from the user micro-site, Databases panel), on this query for the AT&T database:
https://www.beat-eu.org/platform/search/?query=db:atnt%20type:results
And I save this search, with its default name, and then I go back to...If I click (from the user micro-site, Databases panel), on this query for the AT&T database:
https://www.beat-eu.org/platform/search/?query=db:atnt%20type:results
And I save this search, with its default name, and then I go back to the micro-site, "Searches" panel and click on the saved search, I cannot see it properly.Tutorial for the FG2015 ConferenceFlavio TARSETTIFlavio TARSETTIhttps://gitlab.idiap.ch/beat/beat.web/-/issues/160Attestation of a failed experiment?2015-05-08T08:03:27ZManuel GüntherAttestation of a failed experiment?I have a failed experiment, which was caused by a programming issue. However, the platform allows me to ask for an attestation for that experiment (at least I can see the ``Request an attestation`` button.
Does that make any sense, or c...I have a failed experiment, which was caused by a programming issue. However, the platform allows me to ask for an attestation for that experiment (at least I can see the ``Request an attestation`` button.
Does that make any sense, or can we disable or remove the button in case of failed experiments?https://gitlab.idiap.ch/beat/beat.web/-/issues/159Type casting between int64 and uint64 not possible2015-05-09T08:06:40ZManuel GüntherType casting between int64 and uint64 not possibleI recently stumbled upon an error message, which I don't quite agree with. I wanted to write the ``number_of_positives`` to the plot/isoroc format. Since I am using python, I simply used the ``len(...)`` function. However, I got the erro...I recently stumbled upon an error message, which I don't quite agree with. I wanted to write the ``number_of_positives`` to the plot/isoroc format. Since I am using python, I simply used the ``len(...)`` function. However, I got the error message:
```
TypeError: cannot safely cast attribute `number_of_negatives' on dataformat `plot/isoroc/1.data_type' with type `int64' to `uint64' without precision loss
```
which looks weired to me. In C++, the cast from ``int`` to ``unsigned`` **always** succeeds, so I don't understand, why this is not the case in BEAT.
*(In fact, is there any automatic cast that would succeed in BEAT?)*
So, what do you think about that? Should we allow the automatic conversion from ``signed`` to ``unsigned``?API Documentationhttps://gitlab.idiap.ch/beat/beat.web/-/issues/162Use fingerprinting to ensure that the latest version of static files are alwa...2015-05-11T07:28:37ZPhilip ABBETUse fingerprinting to ensure that the latest version of static files are always used by the usersWe were bitten several times those last few days by out-of-date JS and CSS files being used by the browsers.
A quick search revealed that the solution to this problem is called **fingerprinting** (https://developers.google.com/web/fun...We were bitten several times those last few days by out-of-date JS and CSS files being used by the browsers.
A quick search revealed that the solution to this problem is called **fingerprinting** (https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching?hl=en#invalidating-and-updating-cached-responses)
In short: in the HTML pages, instead of importing *toolchains/js/models.js* we should import *toolchains/js/models.js?v4*, with the version number changing at each release.
The server will not care about the *?v4* part, but the browser will see it as a totally new URL, not already in its cache.
I am a bit surprised that the *django.contrib.staticfiles* app doesn't support that option...API Documentationhttps://gitlab.idiap.ch/beat/beat.web/-/issues/154Edit button in non-editable algorithm2015-05-11T14:53:00ZManuel GüntherEdit button in non-editable algorithmI have an algorithm that belongs to a failed experiment:
https://www.beat-eu.org/platform/algorithms/siebenkopf/ROC/
The experiment was not deleted yet, and I should not be able to edit the algorithm.
However, there is an ``Edit`` b...I have an algorithm that belongs to a failed experiment:
https://www.beat-eu.org/platform/algorithms/siebenkopf/ROC/
The experiment was not deleted yet, and I should not be able to edit the algorithm.
However, there is an ``Edit`` button, which I can click and which leads me to the algorithm editing page.
Nevertheless, when I try to ``Save`` the algorithm, I get the error message:
```
Algorithm not created, please fix the errors below
{"detail":"The algorithm isn't modifiable anymore (either shared with someone else, or needed by an attestation)"}
```
So, it seems that the algorithm knows that it is not modifiable, but still the ``Edit`` button exists.API DocumentationPhilip ABBETPhilip ABBEThttps://gitlab.idiap.ch/beat/beat.web/-/issues/161Creating an experiment from the toolchain page2015-05-11T15:02:35ZLaurent EL SHAFEYCreating an experiment from the toolchain pageCurrently, we cannot create an experiment from the toolchain page.
In contrast, to create an experiment, the first thing to do is to select a toolchain.
Since the workflow is to first create a toolchain, and next to configure an expe...Currently, we cannot create an experiment from the toolchain page.
In contrast, to create an experiment, the first thing to do is to select a toolchain.
Since the workflow is to first create a toolchain, and next to configure an experiment, it would be nice to add a button such as 'create an experiment' from the toolchain page. This would prevent to have to click several times before reaching the desired page.API Documentationhttps://gitlab.idiap.ch/beat/beat.web/-/issues/167beat.web.toolchain.utils imports non-existing function 'experiment_to_json'2015-05-12T15:23:27ZLaurent EL SHAFEYbeat.web.toolchain.utils imports non-existing function 'experiment_to_json'beat.web.toolchain.utils currently tries to import the non-existing function 'experiment_to_json' from beat.web.experiments.utils.beat.web.toolchain.utils currently tries to import the non-existing function 'experiment_to_json' from beat.web.experiments.utils.API Documentationhttps://gitlab.idiap.ch/beat/beat.web/-/issues/165`dataset-name` in search causes 500 internal error2015-05-12T16:11:21ZLaurent EL SHAFEY`dataset-name` in search causes 500 internal errorWhen selecting the field `dataset-name` in a search, pressing the `apply` button will cause a 500 internal error.When selecting the field `dataset-name` in a search, pressing the `apply` button will cause a 500 internal error.BEAT TourLaurent EL SHAFEYLaurent EL SHAFEYhttps://gitlab.idiap.ch/beat/beat.web/-/issues/166Dataformat validation on beat.web is incomplete2015-05-12T16:18:35ZLaurent EL SHAFEYDataformat validation on beat.web is incompleteWhen creating the following dataformat on beat.web,
```
{
"bla": "uint32",
"blo": "uint24"
}
```
a 500 internal error is generated instead of a proper error message.When creating the following dataformat on beat.web,
```
{
"bla": "uint32",
"blo": "uint24"
}
```
a 500 internal error is generated instead of a proper error message.BEAT Tourhttps://gitlab.idiap.ch/beat/beat.web/-/issues/138Global algorithm parameters are not removed properly2015-05-12T17:12:18ZLaurent EL SHAFEYGlobal algorithm parameters are not removed properlyIf:
1. I fork an experiment that uses a given algorithm (e.g. tutorial/pca/1),
2. Replace this algorithm (e.g. by tutorial/pca/2)
(3. This algorithm is not used by any other block of the experiment)
Then:
I am unable to run this e...If:
1. I fork an experiment that uses a given algorithm (e.g. tutorial/pca/1),
2. Replace this algorithm (e.g. by tutorial/pca/2)
(3. This algorithm is not used by any other block of the experiment)
Then:
I am unable to run this experiment, and I get the following alert message:
(...) The experiment isn't valid, since (...) globals: found parameter section for algorithm `tutorial/pca/1' which is not used anywhere in the experiment.
API DocumentationPhilip ABBETPhilip ABBEThttps://gitlab.idiap.ch/beat/beat.web/-/issues/143In an experiment setup: database changes when removing/changing algorithms2015-05-12T17:14:43ZManuel GüntherIn an experiment setup: database changes when removing/changing algorithmsThe is an issue with the experiment editor. After forking an old experiment, and changing an algorithm (for example one for scoring), the database entry is modified, switching to a completely unrelated database, or even becomes empty.
I...The is an issue with the experiment editor. After forking an old experiment, and changing an algorithm (for example one for scoring), the database entry is modified, switching to a completely unrelated database, or even becomes empty.
It seems that the same applies, when a new experiment is created.API DocumentationPhilip ABBETPhilip ABBEThttps://gitlab.idiap.ch/beat/beat.web/-/issues/168New {% fingerprint %} not working well for ToS and disclaimer2015-05-13T06:36:52ZAndré AnjosNew {% fingerprint %} not working well for ToS and disclaimerWe need to fix this ASAP - it is the first contact the user has with our platform.
Following the mail:
```text
Internal Server Error: /platform/tos/
Traceback (most recent call last):
File "/remote/sw/beat.env.deploy/usr/lib/p...We need to fix this ASAP - it is the first contact the user has with our platform.
Following the mail:
```text
Internal Server Error: /platform/tos/
Traceback (most recent call last):
File "/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/core/handlers/base.py", line 111, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/remote/sw/beat.web/src/beat.web/beat/web/navigation/views.py", line 239, in terms_of_service
context_instance=RequestContext(request),
File "/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/shortcuts.py", line 25, in render_to_response
return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)
File "/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/template/loader.py", line 170, in render_to_string
t = get_template(template_name, dirs)
File "/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/template/loader.py", line 144, in get_template
template, origin = find_template(template_name, dirs)
File "/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/template/loader.py", line 132, in find_template
source, display_name = loader(name, dirs)
File "/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/template/loader.py", line 44, in __call__
return self.load_template(template_name, template_dirs)
File "/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/template/loader.py", line 50, in load_template
template = get_template_from_string(source, origin, template_name)
File "/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/template/loader.py", line 156, in get_template_from_string
return Template(source, origin, name)
File "/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/template/base.py", line 132, in __init__
self.nodelist = compile_string(template_string, origin)
File "/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/template/base.py", line 162, in compile_string
return parser.parse()
File "/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/template/base.py", line 290, in parse
compiled_result = compile_func(self, token)
File "/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/template/loader_tags.py", line 201, in do_extends
nodelist = parser.parse()
File "/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/template/base.py", line 290, in parse
compiled_result = compile_func(self, token)
File "/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/template/loader_tags.py", line 175, in do_block
nodelist = parser.parse(('endblock',))
File "/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/template/base.py", line 288, in parse
self.invalid_block_tag(token, command, parse_until)
File "/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/template/base.py", line 343, in invalid_block_tag
(command, get_text_list(["'%s'" % p for p in parse_until])))
TemplateSyntaxError: Invalid block tag: 'fingerprint', expected 'endblock'
```API DocumentationPhilip ABBETPhilip ABBEThttps://gitlab.idiap.ch/beat/beat.web/-/issues/90Harmonisation of experiments web API2015-05-13T15:25:18ZAndré AnjosHarmonisation of experiments web APIWe presently have our web API for experiments in a bit of an inconsistent state:
1. Some of the calls go through <base>/experiments
2. Some others go through <base>/experiments/configuration
This is not the case for other platform...We presently have our web API for experiments in a bit of an inconsistent state:
1. Some of the calls go through <base>/experiments
2. Some others go through <base>/experiments/configuration
This is not the case for other platform objects (such as data formats, toolchains, or else). This creates a slight complication for API users.
@philip.abbet: is this just legacy behaviour or is there a good reason for keeping it this way?API DocumentationSamuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.web/-/issues/145Unify toolchain creation page so all happens in a single form2015-05-13T15:28:25ZManuel GüntherUnify toolchain creation page so all happens in a single formWhen I try to create a new version of a toolchain, such as:
https://www.beat-eu.org/platform/toolchains/tutorial/full_lbphs/2
I can only see and edit the description of the toolchain, but the toolchain itself is not shown, and I cannot...When I try to create a new version of a toolchain, such as:
https://www.beat-eu.org/platform/toolchains/tutorial/full_lbphs/2
I can only see and edit the description of the toolchain, but the toolchain itself is not shown, and I cannot edit it.
The same applies, when a new toolchain is created.API Documentationhttps://gitlab.idiap.ch/beat/beat.web/-/issues/172Database admin page "View on site" re-direction is broken2015-05-18T06:41:24ZAndré AnjosDatabase admin page "View on site" re-direction is brokenThere is missing import for `reverse`, apparently, following the received report:
```text
Internal Server Error: /platform/admin/r/19/19/
Traceback (most recent call last):
File "/remote/sw/beat.env.deploy/usr/lib/python2.7/site-...There is missing import for `reverse`, apparently, following the received report:
```text
Internal Server Error: /platform/admin/r/19/19/
Traceback (most recent call last):
File "/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/core/handlers/base.py", line 111, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/contrib/admin/sites.py", line 227, in wrapper
return self.admin_view(view, cacheable)(*args, **kwargs)
File "/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/utils/decorators.py", line 105, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/views/decorators/cache.py", line 52, in _wrapped_view_func
response = view_func(request, *args, **kwargs)
File "/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/contrib/admin/sites.py", line 206, in inner
return view(request, *args, **kwargs)
File "/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/contrib/contenttypes/views.py", line 31, in shortcut
absurl = get_absolute_url()
File "/remote/sw/beat.web/src/beat.web/beat/web/databases/models.py", line 157, in get_absolute_url
return reverse(
NameError: global name 'reverse' is not defined
```API Documentationhttps://gitlab.idiap.ch/beat/beat.web/-/issues/174Limit on the length of expe names ?2015-05-18T07:35:49ZSébastien MARCELLimit on the length of expe names ?I forked the expe mobio_male-gmm_100Gx10I-isv_50Ux10Ix4R-dct_12Bx8Ox45C-seed101
and tried to re-run it labelled as mobio_male-gmm_100Gx10I-isv_50Ux10Ix4R-dct_12Bx8Ox45C-seed101-rr1 .
but got the error message
"Traceback (most recent...I forked the expe mobio_male-gmm_100Gx10I-isv_50Ux10Ix4R-dct_12Bx8Ox45C-seed101
and tried to re-run it labelled as mobio_male-gmm_100Gx10I-isv_50Ux10Ix4R-dct_12Bx8Ox45C-seed101-rr1 .
but got the error message
"Traceback (most recent call last):\n File \"/remote/sw/beat.web/src/beat.web/beat/web/experiments/models.py\", line 131, in create_experiment\n experiment.save()\n File \"/remote/sw/beat.web/src/beat.web/beat/web/experiments/models.py\", line 306, in save\n super(Experiment, self).save(*args, **kwargs)\n File \"/remote/sw/beat.web/src/beat.web/beat/web/common/models.py\", line 90, in save\n super(Shareable, self).save(*args, **kwargs)\n File \"/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/db/models/base.py\", line 589, in save\n force_update=force_update, update_fields=update_fields)\n File \"/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/db/models/base.py\", line 617, in save_base\n updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)\n File \"/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/db/models/base.py\", line 698, in _save_table\n result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)\n File \"/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/db/models/base.py\", line 731, in _do_insert\n using=using, raw=raw)\n File \"/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/db/models/manager.py\", line 92, in manager_method\n return getattr(self.get_queryset(), name)(*args, **kwargs)\n File \"/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/db/models/query.py\", line 921, in _insert\n return query.get_compiler(using=using).execute_sql(return_id)\n File \"/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/db/models/sql/compiler.py\", line 920, in execute_sql\n cursor.execute(sql, params)\n File \"/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/db/backends/utils.py\", line 65, in execute\n return self.cursor.execute(sql, params)\n File \"/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/db/utils.py\", line 94, in __exit__\n six.reraise(dj_exc_type, dj_exc_value, traceback)\n File \"/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/db/backends/utils.py\", line 65, in execute\n return self.cursor.execute(sql, params)\nDataError: value too long for type character varying(100)\n\n"
I understand that there should be limit for the labels (100 chars correct ?) however it will be good to have a way to know it before pressing GO ! It could be possibly highlighted with a another color similarly than when the label already exists.Samuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.web/-/issues/170Sort protocols on a database page2015-05-18T07:35:49ZLaurent EL SHAFEYSort protocols on a database pageCurrently, the protocols are listed in a random order on a database page. We should likely sort them in alphabetical order.Currently, the protocols are listed in a random order on a database page. We should likely sort them in alphabetical order.BEAT Tourhttps://gitlab.idiap.ch/beat/beat.web/-/issues/98Free text area for the experiments and search2015-05-19T11:55:31ZTiago de Freitas PereiraFree text area for the experiments and searchWould be nice in the experiment session to have free text space.
Sometimes you want to highlight something that is beyond the results itself.
Consider to add a free text space in the experiment session.
I think the same for the se...Would be nice in the experiment session to have free text space.
Sometimes you want to highlight something that is beyond the results itself.
Consider to add a free text space in the experiment session.
I think the same for the search area.
When you save a search, would be nice to say something about it (this will be the bridge between an eventual publication and the source code).
API DocumentationPhilip ABBETPhilip ABBEThttps://gitlab.idiap.ch/beat/beat.web/-/issues/163Dataformat validation is still unprotected2015-05-19T12:33:19ZAndré AnjosDataformat validation is still unprotectedFollowing an analysis from @laurent.el-shafey, the data format errors you saw passing by are related to a lack of protection (missing try/except clauses) during their validation.
Here is one of the backtraces:
```text
File "/remot...Following an analysis from @laurent.el-shafey, the data format errors you saw passing by are related to a lack of protection (missing try/except clauses) during their validation.
Here is one of the backtraces:
```text
File "/remote/sw/beat.web/src/beat.web/beat/web/common/serializers.py", line 203, in get_declaration
return obj.json()
File "/remote/sw/beat.web/src/beat.web/beat/web/common/models.py", line 298, in json
return simplejson.loads(self.load_contents('file'),
File "/remote/sw/beat.web/src/beat.web/beat/web/common/models.py", line 272, in load_contents
f.open()
File "/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/db/models/fields/files.py", line 79, in open
self.file.open(mode)
File "/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/db/models/fields/files.py", line 49, in _get_file
self._file = self.storage.open(self.name, 'rb')
File "/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/core/files/storage.py", line 35, in open
return self._open(name, mode)
File "/remote/sw/beat.env.deploy/usr/lib/python2.7/site-packages/django/core/files/storage.py", line 172, in _open
return File(open(self.path(name), mode))
IOError: [Errno 2] No such file or directory: u'/remote/prefix/dataformats/40/07/robert/FaceBoundingBox/1.json'
```API Documentationhttps://gitlab.idiap.ch/beat/beat.web/-/issues/171Fix UTF-8 character decoding error on RST parsing2015-05-20T06:56:43ZAndré AnjosFix UTF-8 character decoding error on RST parsingCurrently, if the user types a UTF-8 character on a database documentation (full-length `description` field), the system generates a 500 error trying to parse it. It is harmless in the sense the object is not created nor the system gets ...Currently, if the user types a UTF-8 character on a database documentation (full-length `description` field), the system generates a 500 error trying to parse it. It is harmless in the sense the object is not created nor the system gets into any funny state, just annoying.
Here is some bogus document to try:
```text
In CASMEⅡ, we provide 5 classes of micro-expressions
```
We should protect the relevant pages.API Documentation