beat issueshttps://gitlab.idiap.ch/groups/beat/-/issues2015-05-05T17:43:45Zhttps://gitlab.idiap.ch/beat/beat.web/-/issues/134Search page alerts with a 404 for a given experiment (when plotting)2015-05-05T17:43:45ZAndré AnjosSearch page alerts with a 404 for a given experiment (when plotting)The search results page is getting a 404 error when looking up data for an experiment in which the author name and the toolchain author names match.
This is because of this "simplification" we used to have, in which an experiment full...The search results page is getting a 404 error when looking up data for an experiment in which the author name and the toolchain author names match.
This is because of this "simplification" we used to have, in which an experiment full name could be shortened if the author name of the experiment matched the author name of the toolchain. So, this used to work:
```text
<url>/experiments/<user>/<toolchain>/<number>/<label>
```
Basically, that meant our code had to have this branching all the time: does it contain 4 or 5 bits? To avoid this and simplify the code everywhere, since a few commits, the 4-tiered version was deprecated. Experiments should be referred by their full name (i.e., the 5-tiered thingy):
```text
<url>/experiments/<experiment-user>/<toolchain-user>/<toolchain-name>/<toolchain-version>/<label>
```
Somewhere in the search, this simplification is still being done and, therefore the 404.
@flavio.tarsetti: Could you please remove all instances of this?Tutorial for the FG2015 ConferenceFlavio TARSETTIFlavio TARSETTIhttps://gitlab.idiap.ch/beat/beat.web/-/issues/125Cannot update toolchain description2015-05-05T12:11:47ZLaurent EL SHAFEYCannot update toolchain descriptionIt is currently not possible to update a toolchain (short/long) description.
When clicking on the save button, nothing happens and the user is stuck with the edition form.
It is currently not possible to update a toolchain (short/long) description.
When clicking on the save button, nothing happens and the user is stuck with the edition form.
Tutorial for the FG2015 Conferencehttps://gitlab.idiap.ch/beat/beat.web/-/issues/126Special (accented) characters in toolchain/algorithm description causes error2015-05-05T11:03:36ZLaurent EL SHAFEYSpecial (accented) characters in toolchain/algorithm description causes errorI've noticed the following problem with special (accented) characters. When they are used in a toolchain/algorithm description, installing these contributions will just work fine. However, when I try to load the toolchain/algorithm page,...I've noticed the following problem with special (accented) characters. When they are used in a toolchain/algorithm description, installing these contributions will just work fine. However, when I try to load the toolchain/algorithm page, the page cannot be loaded properly, and the following error occured:
```
Subject: [BEAT] ERROR (EXTERNAL IP): Internal Server Error:
/api/algorithms/user/
From: no-reply@beat-project.eu
To: E-MAIL ADDRESS
Date: Tue, 05 May 2015 09:33:03 -0000
Message-ID: <20150505093303.27891.45893@futurix08.idiap.ch>
Internal Server Error: /api/algorithms/user/
Traceback (most recent call last):
File "/idiap/project/beat/beat.env.develop/usr/lib/python2.7/site-packages/django/core/handlers/base.py", line 137, in get_response
response = response.render()
File "/idiap/project/beat/beat.env.develop/usr/lib/python2.7/site-packages/django/template/response.py", line 103, in render
self.content = self.rendered_content
File "/idiap/project/beat/beat.env.develop/usr/lib/python2.7/site-packages/rest_framework/response.py", line 59, in rendered_content
ret = renderer.render(self.data, media_type, context)
File "/idiap/project/beat/beat.env.develop/usr/lib/python2.7/site-packages/rest_framework/renderers.py", line 99, in render
separators=separators
File "/idiap/project/beat/beat.env.develop/usr/lib/python2.7/json/__init__.py", line 250, in dumps
sort_keys=sort_keys, **kw).encode(obj)
File "/idiap/project/beat/beat.env.develop/usr/lib/python2.7/json/encoder.py", line 210, in encode
return ''.join(chunks)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 546: ordinal not in range(128)
```Tutorial for the FG2015 Conferencehttps://gitlab.idiap.ch/beat/beat.web/-/issues/127Algorithm description cannot be edited properly2015-05-05T11:02:38ZLaurent EL SHAFEYAlgorithm description cannot be edited properlyLet's consider the algorithm [tutorial/cropping_rgb/3/](https://www.beat-eu.org/platform/algorithms/tutorial/cropping_rgb/3/).
This algorithm has both a short and long descriptions (as shown by clicking on `more`).
However, if we pre...Let's consider the algorithm [tutorial/cropping_rgb/3/](https://www.beat-eu.org/platform/algorithms/tutorial/cropping_rgb/3/).
This algorithm has both a short and long descriptions (as shown by clicking on `more`).
However, if we press on edit, the long description field will be filled with a filename `http://www.beat-eu.org/platform/api/algorithms/tutorial/cropping_rgb/3/fe/30/tutorial/cropping_rgb/3.rst` instead of the real content of the long description.Tutorial for the FG2015 Conferencehttps://gitlab.idiap.ch/beat/beat.web/-/issues/120Saving an invalid algorithms at admin micro-site causes a 500 error2015-05-05T06:54:12ZAndré AnjosSaving an invalid algorithms at admin micro-site causes a 500 errorThis used to work. Now, if the algorithm is invalid (for example, uses an invalid data format on its declaration), the website generates a 500 error.
Desired behavior: It should gracefully indicate that the declaration is invalid, and...This used to work. Now, if the algorithm is invalid (for example, uses an invalid data format on its declaration), the website generates a 500 error.
Desired behavior: It should gracefully indicate that the declaration is invalid, and the problem.Tutorial for the FG2015 ConferenceSamuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.web/-/issues/122Creation of *public* algorithm/library/plotter from the admin page causes 500...2015-05-04T21:08:36ZLaurent EL SHAFEYCreation of *public* algorithm/library/plotter from the admin page causes 500 errorWhen using the admin page, the creation of algorithm/library/plotter leads to an internal error 500, when sharing is set to public.
There is no problem when the sharing attribute is set to private.When using the admin page, the creation of algorithm/library/plotter leads to an internal error 500, when sharing is set to public.
There is no problem when the sharing attribute is set to private.Tutorial for the FG2015 Conferencehttps://gitlab.idiap.ch/beat/beat.web/-/issues/96Inspect the experiment datasets2015-05-04T16:42:23ZTiago de Freitas PereiraInspect the experiment datasetsWhen a experiment is opened, it is not possible to see the dataset setup.
When a experiment is opened, it is not possible to see the dataset setup.
Tutorial for the FG2015 Conferencehttps://gitlab.idiap.ch/beat/beat.web/-/issues/49Django Superuser should have access to all website2015-05-04T16:39:08ZAndré AnjosDjango Superuser should have access to all websiteCurrently, the Django super user can edit any object using the admin interface, but it cannot inspect the object using the normal user interface. This is a bit inconsistent. We should modify this behaviour so that, if the user is a super...Currently, the Django super user can edit any object using the admin interface, but it cannot inspect the object using the normal user interface. This is a bit inconsistent. We should modify this behaviour so that, if the user is a super-user, it is granted access to all site objects in all views.Tutorial for the FG2015 ConferenceSamuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.web/-/issues/87Locked attestation page content2015-05-04T14:36:13ZSébastien MARCELLocked attestation page contenton locked attestation pages, for instance https://www.beat-eu.org/platform/attestations/1444752237/,
will it be possible to add more information such as at the very latest the results (error rates, plots).
Indeed, locked attestation ...on locked attestation pages, for instance https://www.beat-eu.org/platform/attestations/1444752237/,
will it be possible to add more information such as at the very latest the results (error rates, plots).
Indeed, locked attestation are supposed to be inserted in publications under review, so that a reviewer can click on the attestation link and verifies the claims/results of the paper.
So it will makes sense that the page shows those results.Tutorial for the FG2015 Conferencehttps://gitlab.idiap.ch/beat/beat.web/-/issues/89Django experiments/Results table could be largely simplified2015-05-04T13:13:37ZAndré AnjosDjango experiments/Results table could be largely simplifiedCurrently, our Results table contains 4 columns that store data types: one for integers, one for floats, one for booleans and one for "everything else". In order to know how to read the data, the platform consults the value of the "type"...Currently, our Results table contains 4 columns that store data types: one for integers, one for floats, one for booleans and one for "everything else". In order to know how to read the data, the platform consults the value of the "type" column" and then reads the corresponding field, with an adequate de-serializer.
In order to support the new plotting standard, the choice of implementation would be to add a "__type__" field on chart data (saved at the "Data value" column), which implies in a hack to ignore such a field on beat.core.
The way to solve this cleanly could go through:
1. Re-write the Result table so that all results are represented by strings or binary blobs
2. Condition the readout of Result tables to the type of the data object, as defined in the "type" column, which would have to be set to a "string" type.
This technique would remove 3 columns from the table, simplifying it, at the cost of reviewing the code that uses/displays results.
Because all results would be expressed into string (or binary), no need to worry about issue #83 anymore, would this solution be taken.Tutorial for the FG2015 ConferenceLaurent EL SHAFEYLaurent EL SHAFEYhttps://gitlab.idiap.ch/beat/beat.web/-/issues/113Algorithm ptome/fingervein-miura_scoring/2 causes webpage crashes2015-05-04T13:12:40ZLaurent EL SHAFEYAlgorithm ptome/fingervein-miura_scoring/2 causes webpage crashesThe algorithm ptome/fingervein-miura_scoring/2 causes webpage crashes.
After selecting it in an experiment, the webpage get stuck on the algorithm selection and an error "'Uncaught TypeError: Cannot read property 'length' of undefined...The algorithm ptome/fingervein-miura_scoring/2 causes webpage crashes.
After selecting it in an experiment, the webpage get stuck on the algorithm selection and an error "'Uncaught TypeError: Cannot read property 'length' of undefined' " is reported in the JS side.Tutorial for the FG2015 ConferenceLaurent EL SHAFEYLaurent EL SHAFEYhttps://gitlab.idiap.ch/beat/beat.web/-/issues/115Creation APIs doesn't check the validity of the specified contribution name2015-05-04T13:09:27ZPhilip ABBETCreation APIs doesn't check the validity of the specified contribution nameThe creation API for toolchains, algorithms and data formats allows an empty string to be passed as the name of the new contribution.
Only the fact that the name is a string is checked.The creation API for toolchains, algorithms and data formats allows an empty string to be passed as the name of the new contribution.
Only the fact that the name is a string is checked.https://gitlab.idiap.ch/beat/beat.web/-/issues/119Recursive behavior of can_be_deleted()2015-05-03T20:56:02ZAndré AnjosRecursive behavior of can_be_deleted()I think that the behavior of `can_be_deleted()`, at least on Libraries is not 100% correct. An object can be deleted if it is not used by another object. So, I think the straightfoward way to check for it would be to just verify if any a...I think that the behavior of `can_be_deleted()`, at least on Libraries is not 100% correct. An object can be deleted if it is not used by another object. So, I think the straightfoward way to check for it would be to just verify if any algorithm is using that library. If that is the case, it cannot be deleted. Else, if nobody references this library, then it can be deleted.
Could you please confirm?Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.web/-/issues/118beat.web.algorithms.Algorithm & related code cannot handle Libraries on save()2015-05-03T20:04:28ZAndré Anjosbeat.web.algorithms.Algorithm & related code cannot handle Libraries on save()As it is currently implemented, the Algorithm class on beat.web cannot handle an existing JSON (for example through an upload via the command-line), which references libraries. Its `save()` method will not updated the library relationshi...As it is currently implemented, the Algorithm class on beat.web cannot handle an existing JSON (for example through an upload via the command-line), which references libraries. Its `save()` method will not updated the library relationship as it should.
The JSON of an algorithm (or library for that matter), already contains a mapping description, which defines which libraries it uses. Upon `save()`, the field `referenced_libraries` should be updated.
I think the issue comes from the fact you can add a library w/o going through the `save()`, whereas I think the system was designed in such a way you must always go through the `save()`.
This means that any modification operation should:
1. Load the old JSON
2. Allow the user to modify it
3. Overwrite the old JSON on the object with the new one (at the file field)
4. Call the object's save() method
This strategy should automatically update the `referenced_libraries` field. This strategy also assures that we have a consistent representation of the object w.r.t. beat.web and beat.core.
We allow for no other way to modify this object.Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.web/-/issues/99Normal registration and minimal profile page2015-05-01T16:08:43ZAndré AnjosNormal registration and minimal profile pageFor the tutorial in May, we absolutely need to put in place a minimal registration page (or revive the one we have) and let users change passwords and reset their secret tokens via a profile page.
Here are the features:
- [x] Reviv...For the tutorial in May, we absolutely need to put in place a minimal registration page (or revive the one we have) and let users change passwords and reset their secret tokens via a profile page.
Here are the features:
- [x] Revive registration
- [x] Allow users to reset their passwords using their profile page
- [x] Allow users to re-generate their secret tokens using their profile pageTutorial for the FG2015 ConferenceSamuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.web/-/issues/83Django FloatField does not handle +/-inf and NaN values2015-04-27T09:58:37ZLaurent EL SHAFEYDjango FloatField does not handle +/-inf and NaN valuesThe current version of Django (1.7.1) has a FloatField implementation that does not support special floating point values such as +/-inf and NaN.
The following Django ticket mentions this issue:
https://code.djangoproject.com/ticket/...The current version of Django (1.7.1) has a FloatField implementation that does not support special floating point values such as +/-inf and NaN.
The following Django ticket mentions this issue:
https://code.djangoproject.com/ticket/4287
This is currently a problem with our analyzers that store results as FloatField in the SQL database.
When such a value is passed from the scheduler to the web (e.g. in the block_finished method), an error occurs (500: internal server error), which leads to the messsage to be continuously sent and misprocessed.
We need to find a workaround for this.Tutorial for the FG2015 ConferenceSamuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.web/-/issues/112Global variables are currently ignored by experiment execution2015-04-23T09:58:24ZLaurent EL SHAFEYGlobal variables are currently ignored by experiment executionIt seems that global variables are currently ignored by experiment execution, while they are displayed properly on the experiment page.
I don't know if the problem is at the beat.web or beat.core level.
To reproduce the problem:
1. ...It seems that global variables are currently ignored by experiment execution, while they are displayed properly on the experiment page.
I don't know if the problem is at the beat.web or beat.core level.
To reproduce the problem:
1. Create a simple Eigenface experiment and run it.
2. Fork it and update the 'global' number of pca components parameter.
3. After pressing go on the forked experiment, it will complete very fast and leads to the exact same results.Tutorial for the FG2015 ConferenceLaurent EL SHAFEYLaurent EL SHAFEYhttps://gitlab.idiap.ch/beat/beat.web/-/issues/114Antispoofing toolchains are broken2015-04-23T09:06:06ZLaurent EL SHAFEYAntispoofing toolchains are brokenThe antispoofing toolchains (ivana7c/simple-antispoofing-updated/1 and smarcel/face-antispoofing/1) on the platform are currently broken.
After configuring the experiment, pressing go leads to the following error:
in beat/web/experim...The antispoofing toolchains (ivana7c/simple-antispoofing-updated/1 and smarcel/face-antispoofing/1) on the platform are currently broken.
After configuring the experiment, pressing go leads to the following error:
in beat/web/experiments/models.py (line 142, create_experiment experiment.save())
beat/web/experiments/models.py (line 297, raise SyntaxError() "The experiment isn't valid due to the following errors: toolchain data is not valid, because: /representation/connections/classifier_dev.scores/analyzer.scores_dev_pos not listed on /connections; /representation/connections/classifier_test.scores/analyzer.scores_test_pos not listed on /connections; /representation/connections/dev_probes.class/analyzer.scores_dev_neg not listed on /connections;")
Tutorial for the FG2015 ConferenceLaurent EL SHAFEYLaurent EL SHAFEYhttps://gitlab.idiap.ch/beat/beat.web/-/issues/101Worker: missing easy deactivation action2015-04-20T16:26:07ZAndré AnjosWorker: missing easy deactivation actionIt should be possible to quickly deactivate a number of workers from the configuration, w/o removing all of the configuration from its place. This would allow us to adjust the farm size on demand.
Items to be executed:
- [x] Add a ...It should be possible to quickly deactivate a number of workers from the configuration, w/o removing all of the configuration from its place. This would allow us to adjust the farm size on demand.
Items to be executed:
- [x] Add a field on each worker indicating its state (active/deactive)
- [x] Add an action to the worker admin to deactivate/activate workers in batch
- [x] Modify the configuration logic so that, if a worker is active, is the same as it not belonging to the configuration
- [x] Display this information adequately on the scheduler/backend pageTutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.web/-/issues/109Cannot submit experiments with the green "Go" button2015-04-15T13:45:58ZAndré AnjosCannot submit experiments with the green "Go" buttonApparently, also a missing CSRF token somewhere.
PS: Would it be possible to scan for those missing places automatically?Apparently, also a missing CSRF token somewhere.
PS: Would it be possible to scan for those missing places automatically?Tutorial for the FG2015 ConferenceSamuel GAISTSamuel GAIST