Code Monkey home page Code Monkey logo

ampersandtarski / rap Goto Github PK

View Code? Open in Web Editor NEW
5.0 15.0 3.0 7.32 MB

RAP is a tool that lets you analyse Ampersand models, generate functional specifications and make prototypes of information systems. It is the primary tool for students of the Open University of the Netherlands in the course Rule Based Design.

JavaScript 10.73% HTML 29.38% PHP 26.14% CSS 0.02% Shell 1.52% Dockerfile 2.50% Scala 16.56% RobotFramework 0.90% PowerShell 6.70% TeX 5.54%
ampersand rule-based-modeling low-code prototyping-tool database analyse-ampersand-models

rap's People

Contributors

andreordina avatar frankteusink avatar franslot avatar freekordina avatar hanjoosten avatar klaasdijkstraordina avatar liweiyeh avatar lloydrutledge avatar lucsomers101 avatar michiel-s avatar miquelordina avatar sharvin1 avatar sheriffbalunywa avatar stefjoosten avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rap's Issues

RAP3 instructies voor file purge bij volle schijf?

Wat moet ik of een andere serverbeheerder doen om bestanden te wissen als korte termijn oplossing voor een volle schijf? Ik neem aan dat er bepaalde bestanden zijn die weg kunnen. En die kunnen we gewoon wissen, en zo mogelijke de originele archiveren op een andere schijf. En moeten we ook via MySQL data tabellen purgen? Stef en Gerard hebben iets dergelijks vorige jaar gedaan een paar keer met RAP2.

Ik neem aan bijvoorbeeld dat alle log-bestand misbaar zijn behalve de huidige. Die kunnen dan gewoon verplaatst zijn. De gebruikers zullen niks merken.

Ik neem aan dat we de script-bestanden in ./scripts/ ook kunnen verplaatsen. Blijft dan RAP3 gewoon online een draaiend? De gebruikers zullen zien dat hun oude scripts niet meer in het systeem zijn. Die zijn al gewaarschuwd dat ze hun benodigde code op eigen systemen moeten opslaan.

Is dat dan het enige probleempje voor de gebruiker, dat hun scripts weg zijn? Blijven hun accounts gewoon intact zodat je kunnen blijven inloggen? Moet dan gebruikersgericht subdirectories in ./scripts/ blijven hoewel nu leeg? Of kan de hele subdirectory tree onder ./scripts helemaal weg?

En kunnen we ruimte maken in ./MySQL/ door bestanden en subdirectories te verplaatsen? Of moeten we die helemaal niet aanraken? Of kunnen we via MySQL die ruimen.

Natuurlijk is de echte oplossing om meer ruimte op de server te maken. Dat moet binnenkort gebeuren. Maar als die verhoging later ook te weinig wordt dan duurt het minstens zo lang om meer ruimte te krijgen, of krijgen we die moeilijker of niet. In ieder geval zal het een tijdje duren, waarin deze file purge en belangrijk korte termijn oplossing wordt waardoor de studenten kunnen blijven werken.

En daarna moet RAP3 gerestart worden of is het genoeg dat er dan ruimte op de schrijf is?

Hopelijk als Stef weer online is kan hij deze purge uitvoeren, en dan ook de restart die nu nodig in vanwege de PHP probleem. In ieder geval misschien moet hij of ik die in de komende weken weer doen dus als er instructies of tips komen dan dank je wel!

-Lloyd

Problem with permissions

Symptoms

Something still goes wrong. I reset the Ampersand containers, bringing them down and up again.
image
Then I went to RAP3 and tried to make a new script. This failed.

Analysis

@wentinkj
When I click on "compile" nothing happens. In the error log I saw a permission error. The "scripts"directory has root as its owner. These phenomena are consistent with the passive behaviour of the application.

Relation 'isa[Concept][*]' is not defined

Observation

When I generare an atlas (using the feature branch commit 378e3d78dc27e016b627c3309312d964d844bb84) , I get the following error:

image

Reproduction

  1. Build Ampersand ( https://github.com/AmpersandTarski/Ampersand/tree/feature/MeatgrinderWithoutExpressions )
  2. Generate RAP3, using the normal switches:
ampersand.exe --meta-tables --add-semantic-metamodel --verbose RAP3.adl
  1. Login as a student
  2. press the + icon to create a new script.
  3. Add a script (I used DeliverySimple from the travis testset, but you can probably use any script)
  4. compile the script
  5. generate a formal specification document (this will enable the Atlas button)
  6. genarate an atlas.

Missing stuff (in concepts.json and other files)

I use Ampersand-v3.7.2 [development:21e1172]
I have installed the RAP3 stuff on my local machine.
I have NOT installed latex.

The picture below shows:

  1. that I have a script (not uploaded, just copied into the editor) that is correct
  2. that an analysis does not provide a link to the meatgrinder stuff.

image

ANALYSYS
First, we get an error indicating that the concept DatabaseName is missing, which causes line 228 in cli.php to produce an error.
After adding dbName :: Context * DatabaseName [UNI] in the RAP3.adl script, this error is gone, but we then still get an error - now about SQLPlug - as shown in the figure below.

image

DIAGNOSIS
The concepts.json file (and others perhaps) do not contain sufficient meatgrinder information to run the function loadPopInRAP3 correctly.

Request with regard to tutorial

The system "enrollment" that is used as an example system in the tutorial needs to be made available as an executable.
Second, the file enrollment.adl needs to be made available as downloadable file.

Select-all and copy in new script results in error

Actions:

  • Cmd-A in the editor with existing script
  • Cmd-C in the editor
  • new script
  • Cmd V in the editor

Result:
In the editor, the script is visible only once.
but the following rule violation comes up: Each ScriptContent may only have one Script in the relation content. In the details of the violation the code is visible twice.

There is no such problem when copying a script from another source (e.g. Gitbookpage)

Runtime RAP-switches made settable in localSettings.php

In the RAP3 interface we have "Show/hide notification" with a horn shaped icon in the menubar.
For ordinary users in the production version of RAP3, I would like to remove that icon from the menubar entirely. Can we do that already? How?
I would like to set the runtime switches on the RAP3 interface for the students in localSettings.php.

RAP3: MySQL error: Disk full, no space left on device

This error occured running RAP3 from commit fc8782f on Dec 26th, 2017.

http://rap.cs.ou.nl/RAP3

Wat ik verwachtte

Dat de schijf niet vol raakt, zodat studenten kunnen blijven werken.

Wat er gebeurde

De schrijf zit vol waardoor RAP3 niet meer kan draaien waardoor geen enkele student die kan gebruiken voor hun opdracht. Stef heeft een reboot gedaan die het even oplost maar dan kwam hetzelfde probleem snel weer terug.

Stappen om dit te reproduceren

Gewoon naar http://rap.cs.ou.nl/RAP3 gaan. Eventueel moet je een nieuwe script proberen te maken.

Screenshot / Video

image

Vele studenten meden deze nu, t/m donderdag. Dus voor alle studenten nu een showstopper.

Stef, korte termijn oplossing dat alleen jij kan is de bestanden te zippen of verplaatsen. Ik kan die zien maar niks ermee doen.

Mid-termijn oplossing is dat ik onze servicedesk heb gevraagd om meer schrijfruimte te regelen. Misschien is die de hele oplossing. Vorig jaar met RAP2 heeft een resource-vergroting dergelijke problemen flink minder vak gemaakt, maar was niet opgelost.

Nog een deel-oplossing?: Helpt het als we de studenten verzoeken om onnodige en niet-gebruikten scripts te wissen van hun accounts? Dat kan ik hun vragen maar alleen als het werkelijk helpt. Maakt deze actie meer ruimte op de schrijf? Worden bijhorende bestanden uit ./volume/scripts en ./volume/MySQL gewist?

Lange termijn oplossing: Dat de server bestanden zipt. Andere servers zippen de oude log-bestanden zelf en automatisch. Dus alle logs behalve degene die nu nog logberichten krijgt. Kan RAP3 ook alle script-bestanden in ./volume/scripts altijd zippen bij opslaan en unzippen bij lezen?

En wat is het verhaal met ./volumen/MySQL ? Misschien kan Stef kijken hoeveel ruimte MySQL/ gebruikt in vergelijking met scripts/. Ik kan die zelf niet inkijken. Kunnen we die zippen? Zijn er nog andere manieren op zuinig te zijn met MySQL bestanden?

Als ik meer informatie krijg over de grote van de directories en bestanden dan zet ik die hier.

Han, bedankt voor je bestand-grote tips in je e-mail. Die waren nuttig voor deze analyse.

Roles and functionalities associated with roles

If people log in to RAP3 (on http://ampersand.tarski.nl/RAP3), we have no idea who gets what functionality. We have over 10 roles in RAP3, and it is unclear which role comes with which functionalities.

I propose we only have the following roles:

  • User
    Every user has this role. It lets you write scripts, compile scripts, and generate functional specs, diagnosis, and atlas, and prototype. It also lets you run your prototype.
  • Prototyper
    Every user may assign himself this role by switching it on in the top right hand corner of the screen. It lets you generate and run prototypes.
  • Maintainer
    This role lets you assign roles, make and delete accounts,
  • Tutor
    Can do whatever a student can do, but a tutor also gets overviews over his own groups of students.

I have assigned some tutors to get their opinion on this. Please make some comments below to let me know.

Save the content without Save button, whenever the focus changes.

Problem

When I do some typing in the ACE area, and I leave it without first hitting the Save button, the typeing will vanish whenever the screen is refreshed. Refreshing can be done because the user changes the focus to some other field and modifies the value of that field.

Diagnosis

Normally, the Zwolle interface saves the content of any field when the focus of the control changes. We should do that too with the ACE field. The Save button should be omitted.

Deadlock in MYSQL database

A student reported an error mysql error 1213 (deadlock) during creating an account. see attached pdf that shows also the account being created.
img-20171227-wa0010

we have no further information.

Generation of conceptual diagrams

For some reason, at this time not for all concepts, relations, rules and pattersn a conceptual model is generated. For the analysis to show conceptual models, they should be generated with a more friendly name.

Plaatjes in PDF ook als individuele JPGs?

De documenten “Diagnose” en “Functioneel Ontwerp” worden in PDF-formaat gegenereerd. Kunnen de resources (afbeeldingen enz.) ook apart beschikbaar gemaakt worden? Zoals bijvoorbeeld als een HTML met <img src=> links naar de gegenereerde plaatjes? Zal handig zijn voor Rule-based Design studenten voor het maken van hun adviesdocumenten.

Suggestions for improving documentation

Documentation for students is great! I have studied the first few pages and I think offering the information in such steps is really helpful for students.
I have a list of improvements I would like to implement.

I heard several times that I should just implement what I think is OK, and I will, but I also want to give an idea of changes that are more than just typo's and restructuring. If there are any objections or tips, let me know.

Example:
https://ampersandtarski.gitbooks.io/documentation/why-ampersand.html

  • item 2 is too high in this list, but propably there to say it is easy. I would do it in the introductory text. So that the list is understandable.
  • The list 1-10 must be either ”how does it work” or ”reasons for ampersand”. It is now a mix and that makes is hard to understand. I suggest: the how does it work in the introductory text and than the advantages in the 10 items. first advantage: easy prototyping.
  • strange digit 3 in the header
  • item 1 skips too easily from domain language to Ampersand. ”translate these specifications from domain language into Ampersand-script. The statements in domain-language will be part of this script.”
  • link to ”declarative language” works, but the text is not for student target group. Here you loose them.

2002: php_netwerk_getaddresses: getaddrinfo failed: Temporary failure in name resolution

Versie van Ampersand (in de CLI: > ampersand --version)

http://rap.cs.ou.nl/RAP3

Wat er gebeurde

Gewoon naar http://rap.cs.ou.nl/RAP3 en meteen het bericht "2002: php_netwerk_getaddresses: getaddrinfo failed: Temporary failure in name resolution". Is twee keer gebeurd na een tijd van veel "MySQL disk full" berichten. De eerste keer heeft een restart het opgelost, maar dan is de schijf weer snel vol.

Screenshot / Video

rap2php

Deze bug gebeurt misschien alleen als bijwerking van andere problemen, zoals langdurende MySQL disk full problemen.

Running an Ampersand-script fails

Symptom

When working in RAP3 on Ordina's machine called Wolfram, I can generate a prototype but not run it. . Compiling a script, making a diagnosis and a functional specification works fine: the .pdf files appear when I click on the generated hyperlink. However, clicking the hyperlink of the prototype results in a blank screen with two messages:
afbeelding

Cannot make a new user account for selected User Identifiers

I have tried to make a user account with just a part of my own name. I would expect a green "+" somewhere to allow me to make a new user. However, this is obscured by the front-end, who is trying to help me spell my own name:
afbeelding

Everything works fine if I use a name that does not occur as a prefix of an existing user:
afbeelding

@RieksJ any inspiration on this? You can reproduce this behaviour on rap.cs.ou.nl/RAP3/

User stories in http://rap.cs.ou.nl/RAP3

In the student release of RAP3, some user stories have not been implemented yet. This issue is a reminder to fix that. If you want, you can add user stories to this issue. Please use the format: As a <role>, I want/must/would like/etc. <concrete action>, to <purpose>.

  • As a user I want to provide my name when I register a new account, to identify myself by my name.
    (DONE: I have disabled the name in the registration dialogue. The student can edit her name in her MyAccount menu.)
  • As an account manager, I want to create and delete accounts, to keep the accounts limited to students who are entitled to access RAP3.
    (DONE: I have enabled the Accounts-menu for creation and deletion of accounts)
  • As a user, I want to be forced to fill in my new password twice, to check if I spelled my new passwork the way I intended.
    (DONE: If you leave one or two passwords open or if you use different passwords, the Registreer button remains disabled)
  • As a tutor, I want to load a script of one of my students and compile it as my own, to reproduce the work of this student without interfering with her repository.
  • As a user, I want to see the exact version of RAP3 so that I can make issue reports more precise.
  • As a user who changes her password, I would also want two fields to type and re-type the new password.
    (DONE in the "MyAccount" interface. The user password changes after the user has provided two identical strings, but the user gets no confirmation that the password has changed... (TODO))
  • As a registering student, I would like to move from one field to another using TAB and I would like to see whether a field is active or not. This also nice during login.
    (WAITING: This involves front-end programming in PHP. This may take a while because we lack resources.)
  • As a user I want to be able to revert to older copies of my scripts so that destroying a working script is not a big disaster. In RAP2 this was a nice feature. A workaround would be the possibility to copy a script with a buttonclick.
  • When logging in, the student must click twice in the password field before typing the password. This might correspond to issue AmpersandTarski/Ampersand#476.
  • The refresh-button (F5) needs to be pushed quite frequently. This should not have to be necessary at all, because a novice won't understand this. This corresponds to issue #476.
  • The account management must be made usable for the role AccountMgr.
  • Disable the login-help functionality in the production version.
  • The Ampersand-role must not be allocated to a student.
  • It must be made obligatory to fill in the "opdracht" field when making a new script
  • Error reporting must be made readable
  • transaction functionality must be made to work (reference to other issue(s))
  • If a diagnosis/func-spec/prototype exists, don't recompile
  • fix the text of the functional specification. (Check all, fix the data structure)
  • Error: A Slim-error occurs if I try to compile an empty script.
  • Upon pressing the SAVE button, I would like the CompileToNewVersion function to be called automatically, without clicking on the compileren-checkbox.
  • Error: After logging out and then logging in under a different user, the name of the previous user hangs around as though it were my name.

Hardening the RAP4 application

The RAP3 application is currently live on URL http://rap.cs.ou.nl/RAP3. It has been built without much consideration of application security. That makes this issue more of an Epic than an issue. Let us start by thinking about the hardening required, making a list of measures and the reasons for wanting them. I have asked @hljonker (Hugo Jonker) to help us with this, so I added him to the team. I expect each item on the following task list to become an issue before we fix the issue. That creates room for sustainable solutions that affect future applications as well.

  • Run RAP3 exclusively on https, to prevent http-abuse
  • Prevent code injection by escaping all input fields
  • #291
  • Do not give access to web-pages by hand-tweaking of URLs (e.g. anyone can reinstall a database of a generated prototype even when AMPERSAND_PRODUCTION_MODE=true by typing the URL for installing the database directly into the browser.)

Since we have a working RAP3 repository installed at http://52.174.4.78/RAP3/ we can start thinking about consolidating the security measures required for rule repositories.

TODO list

RAP3 ERROR: No prototype generated because of rule violations. message.

Versie van Ampersand (in de CLI: > ampersand --version)

http://rap.cs.ou.nl

Wat ik verwachtte

Een prototype

Wat er gebeurde

Geen prototype, en geen foutmelding in RAP3

Stappen om dit te reproduceren

  1. Eerst compileren, daarna prototype aanmaken en bij een rule violations verschijnt er geen melding dat er er geen prototype is aangemaakt.
  2. Ik kan de melding in mijn eigen ampersand omgeving reproduceren maar RAP3 geeft geen melding.

Screenshot / Video

ERROR: No prototype generated because of rule violations.
ERROR: Service 'prototype' failed to build: The command '/bin/sh -c ampersand --proto=/var/www/html /src/$ADL_FILE --verbose && mkdir -p /var/www/html/log && chown -R www-data:www-data /var/www/html && sed -i "s|.*Config::set.dbHost.|Config::set('dbHost', 'mysqlDatabase', getenv('AMPERSAND_DB_HOST'));|" /var/www/html/localSettings.php' returned a non-zero code: 40

Context / Source van ampersand script

Spreekt voor zich.

thread blocked indefinitely in an MVar operation

Symptoms

When compiling a functional specification of Hawaii in RAP3, I got a SLIM error. I reproduced this error on the Windows command line interface (CLI). There I found that nine picture files were generated correctly and the tenth made Ampersand crash, saying "thread blocked indefinitely in an MVar operation".
Here is the evidence:
afbeelding
and here's how I repreduced the crash on the Windows CLI:
afbeelding

Analysis

The error message itself originates from Haskell. It has to do with parallelization. Bug dialogs on the internet fuel the hypothesis that there is a bug somewhere in one of the Haskell libraries that RAP3 uses. This is a nasty bug, because it shadows the underlying cause making this nasty to diagnose. One good version of this story is on http://blog.omega-prime.co.uk/?p=92. If this hypothesis turns out to be the culprit, it affects the maintainability of Ampersand and should therefore be solved. (But not by us, if the bug resides in one of the libraries we use.) I think we should make the effort to track it down a little bit further.

Another possibility might be the length of filenames. The file that makes ampersand crash has 318 characters, which is more than the 260 prescribed by Windows. I dove into this, only to find out that this is tricky matter. The full story by Microsoft itself is on https://msdn.microsoft.com/en-us/library/aa365247.aspx#maxpath. I could not formulate a proper hypothesis based on this. To me, the length of the filename is an unlikely hypothesis, because we would have seen it on previous occasions when running Hawaii through RAP3. However, If I run the command with a short output filename, e.g. \AmpersandJunkFiles\, it runs without errors.

Possible bug in Hawaii example system

I created the following error : "Expression of pairview results in more than one tgt atom."

In the initial database Brown was qualified for Rome. No students were registered for any trip.
I removed Latin from Browns qualifications. Now Brown is no longer qualified for Rome and this is visible in all applicable tabs. Now I register Brown for Rome anyway and both the rule-violation (correct) and the error message (bug?) come up.

Ontbreken conceptuele modellen van patterns door bug in template functioneel ontwerp

Versie van Ampersand (in de CLI: > ampersand --version)

Rap 3

Wat ik verwachtte

Ik verwachtte een functionele specificatie met daarin per pattern 2 conceptuele modellen, een met de relaties binnen het pattern en een met de rules binnen het pattern.

Wat er gebeurde

Tijdens het maken van ons adviesverslag lopen we tegen een issue aan.

We wilden graag toelichten welke patterns we onderkennen binnen ons proces en deze voorzien van de bijbehorende modellen. Per pattern (wij hebben er vijf) is er een model dat alle relaties weergeeft binnen een pattern en een model dat alle rules weergeeft binnen een pattern. Deze kan je uit de functionele specificatie halen die gegenereerd wordt door RAP 3.

Echter lijkt het alsof er een bug zit in de template van deze functionele specificatie in RAP3. Sinds de start van dit project lijkt het alsof hij een aantal concepten uit de template vast houdt die helemaal niet voorkomen in ons script.

Dit is het zelfde als je een voorbeeldscript gebruikt, bijvoorbeeld "enrollment" uit de RAP3 tutorial. Daardoor weten we zeker dat het niet aan ons script ligt.

Zie screenshots hieronder, wij onderkennen geen concepten zoals DateTime, Session en Role. En het voorbeeldscript "enrollment" onderkent dit ook niet. Toch wordt dit in beide gevallen wel in de functionele specificatie opgenomen.

Nou zou dit op zich geen probleem zijn als het een soort van extra was geweest (wat wij eerst dachten dat het een voorbeeld was), echter valt door deze bug 2 van de modellen weg die wij wel nodig hebben. Van 1 van onze patterns ontbreekt het model met de relaties binnen het pattern. En voor een andere pattern ontbreekt het model met de rules binnen dat pattern.

In de bijlage het functionele ontwerp van ons script (de bug is te zien op de pagina`s: 15 en 28). Ook in het logisch gegevensmodel komen deze random concepten voor die niet uit ons script komen (zie pagina 53). Ook zie je dit terug in de verschillende tabellen en diverse opsommingen in het verslag.

Omdat het dus niet uitmaakt welk script je erin zet (ons eigen of het voorbeeldscript) verwachten wij dat meer studenten deze bug hebben.

Stappen om dit te reproduceren

  1. Compileer een script met daarin diverse patterns met relaties en rules
  2. Download de functionele specificatie
  3. Zoek per pattern naar 2 modellen, 1 met relaties binnen pattern, 1 met rules binnen pattern
  4. Je ziet dat voor beiden soorten modellen er voor een pattern een ontbreekt en wordt vervangen door een conceptueel model met concepten die helemaal niet voorkomen in het script.

Screenshot / Video

image
Functionele specificatie2018-01-31T150948.pdf

Context / Source van ampersand script

Blank screen when Interface 'Context' should be shown

In RAP, I get a blank screen, where there should be a normal interface showing.

To reproduce: (I've had this myself, and I have seen the same behaviour at Rieks's machine, and tonight also at that of Stef.)

  1. Use ampersand.exe (built from ampersand/developement branch)
  2. Use Rap3.adl (ampersand-models/rap3 branch)
  3. Generate the prototype, using the flags --meta-tables -pYourFavoriteProtoDirWhatever
  4. Fire up the prototype, it will install the database (otherwise, make sure it is 'fresh', by reinstalling the database)
  5. Login as jan-de-student
  6. Use + to make a new script.
  7. edit (or load) a valid script.
  8. make sure you save it, using the blue 'Beware...' button.
  9. compile the script. A new 'scriptversion' will appear.
  10. check the checkbox at 'Analyse'. The context of the script will be loaded into the database. A link to that context will appear.

By now, the screen should look something similar to this one:

image

  1. Now click the link to the context.

Instead of the interface Context, (as specified in Analyse.ifc, which is included in the script), a more or less blank screen appears:

image

@Michiel-s Can you reproduce this? Do you have any idea what is going on?

Enroll doesn't work...

In de studentenomgeving hoort een demo-applicatie te draaien: http://rap.cs.ou.nl/Enroll.
Echter, hij draait niet. Kennelijk doe ik iets fout, maar ik weet niet wat.

De applicatie is gegenereerd via het dockerfile van AmpersandTarski/RAP3.

Ik kan de versie van Ampersand niet terughalen, maar ik ben er redelijk van overtuigd dat het Ampersand-v3.9.0 [HEAD:15225d7*] betreft.

Ik verwachtte dat hij spontaan zou draaien, maar nee hoor... Ik stel vast dat hij geen database aanmaakt, ofschoon de wachtwoorden in localsettings.php goed zijn ingesteld. (Om dat vast te stellen ben ik de container ingegaan met docker exec -it 70fab572e18c /bin/bash). Wellicht dat @hidde-jan of @hanjoosten even kunnen meekijken?

Ik wil graag dat Enrollment.adl wordt meegegenereerd met RAP3 (zie ook RAP3/Dockerfile) en dat alles in één klap werkt. Op dit moment gaat er nog wat fout met het ownership van volumes op de (virtuele) server...

add history pattern for scriptversions

@stefjoosten , wil jij de .adl bestanden van RAP aanpassen, zodat we de versiegeschiedenis kunnen gebruiken voor scripts?

  • History pattern aanbrengen
  • Op elke historische versie van een script, waarbij er een context bestaat, moet op die context een requestDestroy worden gepopuleerd.
  • Interface "Nieuw script" moet worden aangepast: Destroy! moet vervallen

Feedback to user when compiling a script that has violations of invariants

Current behaviour:

When the script of the user has a population that violates invariants, it is possible to generate a functional design and a diagnosis document. That works as expected.
When analisys is requested, ampersand exits with errorcode 40, and the reason is returned, placed in the debug logfile. The user however doesn't see anything, except that there is nothing going on, and that the analisys link isn't there.

Expected behaviour:

The error should be displayed in the screen, so that the user knows about the violations.

RAP3 does not deploy automatically

Reproducing the flaw

To install RAP3 on a server, go to that server, get the file https://github.com/AmpersandTarski/RAP/blob/master/docker-compose.yml and run docker-compose up -d. I did that with the sandbox server 52.232.97.91``, which is an Ubuntu server.

(The docker code for building RAP3 lives in https://github.com/AmpersandTarski/RAP/blob/master/RAP3/Dockerfile. The image resides in ampersandtarski/rap3 on docker hub.)

I expected 52.232.97.91/RAP3 to work just like that. However, this did not work. The machine was stuck.

Wachtwoord doorsturen en/of herstellen

Studenten vergeten soms de wachtwoorden voor hun accounts. Kan RAP3 een of beide van de functionaliteiten kringen voor wachtwoorden?:

  • Doorsturen?
  • Herstellen?

Huidige oplossing is dat de student een nieuw account maakt. Die kan een administrator ook verzoeken om zijn account te wissen, waardoor ze een nieuw account kan maken met hetzelfde wachtwoord. Maar dan is de student zijn of haar oude scripts kwijt, maar dan weten ze dat RAP3 geen scriptopslagplek is.

Retaining student work and accounts, when RAP3 is updated

This is more of an epic, because there are several things to be resolved here. I suggest we first think this through, so I urge participants to add your own knowledge and help me by pointing out which details have been missed. That is why I put in several assignees. The items that are checkcked have been done.

  • Before bringing a container down, the maintainer must export the population in the form of triples, so that a different data structure of the following version of RAP3 can be loaded even when the SQL table structure changes.
    • Export the database contents to a location outside the container, e.g. in the server on which the container runs. This solution works only if a new RAP3 has the same database structure.
    • Export a list of triples (which format?). This solution can also work when a new RAP3 has a changed database structure.
    • Export the data in Excel .xlsx format, allowing us to use the existing .xlsx importers for reloading.
  • Before bringing a container down, the maintainer must export the student scripts that are stored in the file system of the container. This may be done in one of several ways:
    • Attach a volume to the RAP3 container, keeping user's scripts outside the container, to retain scripts beyond the lifetime of the RAP3 container.
    • Copy the scripts outside the container to the server
    • Keep student scripts in a git repo outside the container. This also gives timelines on these scripts. Synchronizing with an external repo will then safeguard against the server going down.
  • Make a release script, automating the update from one version of RAP3 to the next.

RAP3 display reminder/warning to keep own copies of scripts on own file system.

Can one or more displays in RAP3 remind students that they should not rely on the RAP3 server to store their scripts, and that they should thus use files on their own, dependable file systems? I keep warning students about this in lectures and on the course site. But several rely on RAP3 anyway, and then can't find scripts they've put there previously. We now have 80 students and can get up to 200 at one time, so such messages even if stating the obvious should make a helpful difference.

I describe the RAP3 server to students as a temporary workspace with a bit of persistency, with temporary workspace names they can make up. That understands it, of course. But RAP3 is not a full-fledged secure file storage system, nor a full-fledged user account manager. It doesn't have to be, of course. But a number of users will keep expecting to be, and they need more emphatic communication.

Conceptueel model RAP3 systeemconcepten

Versie (in de CLI: > ampersand --version)

RAP3

Wat ik verwachtte

Momenteel heb ik een script gebouwd met daarin alle concepten en 28 relaties. Wanneer ik dit script compile en een diagnose uitvoer dan zie ik dat het script geen fouten signaleert, kortom: het script werkt naar behoren. Echter op het moment dat ik zowel in het diagnose document als in de functionele specificatie kijk naar het conceptuele model dan zie ik een conceptueel model van de systeemconcepten (Systemspecific: role, session, datetime) en geen conceptueel model van de door ons ingevoerde concepten.

Wat er gebeurde

Ik krijg enkel een conceptueel model van de systeem concepten te zien.

Stappen om dit te reproduceren

  1. alle bedrijfsregels verwijderd
  2. script met enkel de concepten gerunt
  3. script met zowel concepten als relaties gerunt

Screenshot / Video

https://prnt.sc/i4ykxi
https://prnt.sc/i4ylzz
https://www.scribd.com/document/369892653/Version2018-01-24T155409

Context / Source van ampersand script

Secured server connection?

A student has expressed concern because his case study has "non disclosure agreement" sensitive information that they in principle cannot set on an insecure server. My advice was to install RAP3 locally (safer than any online server) and/or to "anonymize' the data on the server. Perhaps we could package the OU RAP3 server within a broader package on the OU server that requires OU login. If it's important enough - I'll see how much further discussion there is on the course.

array_key_exists Bug

Copied from AmpersandTarski/Ampersand#663

Symptoms

I wanted to make a new script in RAP3. Auto commit changes and Auto save changes were switched off. When pushing the "new script" button, the Save/Cancel buttons appeared immediately. Before doing anything else, I pushed Save. Then this bug appeared:

afbeelding

The only possible location in the code was traced to cli.php on line 341:
afbeelding

Running an Ampersand-script fails

Symptom

When working in RAP3 on Ordina's machine called Wolfram, I can generate a prototype but not run it. . Compiling a script, making a diagnosis and a functional specification works fine: the .pdf files appear when I click on the generated hyperlink. However, clicking the hyperlink of the prototype results in:
image
This message corresponds with the contents of the error-log:
image

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.