Jeremy

Forum Replies Created

Viewing 15 posts - 571 through 585 (of 1,522 total)
  • Author
    Posts
  • in reply to: Troubleshooting #7751
    Jeremy
    Keymaster

    Hi,

    Did you double-check which ) your .log commands were attached to? It’s a common issue to attach them to a PennController element instead of newTrial, in which case you are actually calling a different log command, eg:

    newTrial(
      newScale("yesno", "Yes", "No")
        .button()
        .print()
      ,
      newButton("Next")
        .print()
        .wait( getScale("yesno").test.selected()
    )    
    .log( "ID", GetURLParameter("id") )
    )

    In this code, although the indentation would be consistent with log attaching to newTrial, it actually attaches to the closing parenthesis of wait, so effectively to the Button element. You can see that there is a ) on the line under log that actually closes newTrial

    Jeremy

    in reply to: can't load results #7747
    Jeremy
    Keymaster

    Hi Anna,

    The database indicates that you have 9 submissions for that experiment received via the data-collection link, all from today (February 11) starting around 19:30GMT. Those submissions each have between 3500 and 5000 rows, so they probably took a little while to be added to the database. Let me know if the problem persists tomorrow

    Jeremy

    in reply to: End experiment between trials #7745
    Jeremy
    Keymaster

    Hi Marisol,

    Your code uses two Var elements to track accuracy: one named “ACCURACY,” which is global, and one named “acc,” which is not. You use another Var element, named “shouldend,” to determine whether the trial labeled “trytoend” should execute its code, which you set according to whether the value of “acc” is greater than 3. Because “acc” is a local Var element, it is set to 0 at the beginning of every trial, and because you only increase it by 1 during a trial (if the answer was incorrect) it can never reach 3, and you Var element “shouldend” is never to to true

    All you need to do is make your Var element named “acc” global (newVar("acc", 0).global()) and your code should work

    There is no command for the TextInput element that disabled a particular key. You would need to use a javascript function, for example if you want to prevent the participant from typing s or S you could do this:

    newTextInput("myInput", "").print()
    ,
    newFunction(()=>setTimeout(()=>document.querySelector("textarea.PennController-myInput").addEventListener("keydown",e=>{
        if (!e.key.match(/s/i)) return true;
        e.preventDefault();
        e.stopPropagation();
        return false;
    }),200)).call()

    Jeremy

    in reply to: Too many wrong passwords #7743
    Jeremy
    Keymaster

    Hi Juliana,

    I’m sorry for the inconvenience. I can’t address this issue at the moment, but will take care of it later today

    Jeremy

    in reply to: Audioupload #7741
    Jeremy
    Keymaster

    Just remember, you need at least one blocking UploadRecordings trial before SendResults to make sure the last recordings have successfully uploaded and a line with the corresponding’s zip filename has been added to the results file before it’s too late. Normally such a blocking UploadRecordings trial is automatically added, but you can always add one manually too just to be extra sure

    Jeremy

    in reply to: Audioupload #7739
    Jeremy
    Keymaster

    Hi Jones,

    Glad to read that you’ve fixed the PHP issue

    UploadRecordings trials will compress in a single zip archive all the recordings made at the time the trial is executed, which haven’t been uploaded yet. If you have a single MediaRecorder element in each trial and you insert an UploadRecordings trial after each recording trial, and assuming each UploadRecordings successfully uploads its zip archive in time before the next recording has completed, then each uploaded zip file will indeed contain a single recording. However, there are plenty of situations where zip files will contain more than one recording, as you can imagine. This is why you cannot name zip files based on single elements (or even single trials) and PennController simply randomly generates a unique filename

    I understand it might not make for the most straightforward data processing, but the results file lists all the filenames of the archives that were uploaded for a given submission (look for the UploadRecordings lines), so you can unzip the content of those files in a dedicated subfolder (which you can name after whatever participant-identifying string you use) and look for the recording files named after the MediaRecorder elements in those subfolders

    Jeremy

    in reply to: Troubleshooting #7736
    Jeremy
    Keymaster

    Hi,

    The problem is that I get more than one value in the ‘target_onset_time’ and ‘selection_time’ columns.

    Your group_by function needs to identify a single “target” and “answerTarget” line per tidy group, but group_by(Group, Condition) will get you at least 6 lines per tidy group (based on the content of list.csv in the Masked Priming template project: 6 A-transparent, 6 A-opaque, 6 A-nw_fillers, 6 B-transparent, 6 B-opaque and 6 B-nw_fillers, to be exhaustive). If you have more than one submission, you’ll have just as many times 6-lines, because you are not grouping by submission either

    You could use group_by(ID, Order.number.of.item) instead (assuming you don’t have more than one submission with the same ID). Just make sure to also include those columns in your select: select(ID, Order.number.of.item, Group, Condition, Expected, PrimeType, PennElementName, Value, EventTime)

    Jeremy

    in reply to: Comprehension question and rshuffle in self-paced reading #7735
    Jeremy
    Keymaster

    Hi again,

    For example, here’s what I used in the script (the .log() commands are appended to the end of newTrial):

    Yes, you are using newTrial().log correctly: it will add the values of row.Group, row.Item_ID and row.Condition to every single results line generated for the corresponding trial, whether for its start/end event, or for the Controller or Scale element

    But I found that no participant’s information has been stored. Do I need to add another command to “log” their responses?

    Yes, you need to use .log on the Html element to log its information

    Another issue is that each participant has been assigned a label consisting of digits and letters. I thought these labels were unique for each participant

    If you are referring to the values in the second column of the results file, they are “based on the subject’s IP address and various properties of their browser. Together with the value of the first column, this value should uniquely identify each subject.” If two submissions are sent using the same browser on the same device with the same IP, the MD5 hash will be the same for the two submissions. It is extremely unlikely, however, that the first column (Reception Time) would also have the same value, and if it does, either something went wrong and the same submission was submitted multiple times within a millisecond, or someone developed an algorithm to send multiple submissions in parallel; in either case, you should probably discard the submissions. Long story short: in the absence of a custom ID parameter, use the two first columns to uniquely identify your participants

    Jeremy

    in reply to: Audioupload #7734
    Jeremy
    Keymaster

    Hi Jones,

    I guess the first question to answer is, is there an issue with that PHP script in particular, or with executing any PHP script from your folder. You could try uploading another file called hello_world.php in the same folder with this content:

    <!DOCTYPE html>
    <html>
      <head>
        <title>Hello, World! Page</title>
      </head>
      <body>
        <?php
    	echo 'Hello, World!';
        ?>
      </body>
    </html>

    Then, if you also get a 500 error when visiting https://userpage.fu-berlin.de/jonesanam/audios/hello_world.php it means there is an issue with how PHP and PHP permissions are configured regarding your folder. Unfortunately, if that turns out to be true, and your IT cannot assist you, I’m afraid I won’t be of much help either

    If you see “Hello World,” we’d have to determine where in the PHP code the problem comes from

    Jeremy

    in reply to: Comprehension question and rshuffle in self-paced reading #7729
    Jeremy
    Keymaster

    Hi Jun,

    You need to use the newTrial().log command to append columns to your results lines. See an illustration in the advanced tutorial

    Another minor issue is that for some reason, the Item ID for each trial was incremented by a fixed number (maybe by the number of practice trials and number of instruction texts).

    Column #4 reports the order of creation of the trial: if you add newTrials above another newTrial then the latter will necessarily see its ID increase. Column #9 for each trial’s “Start” and “End” rows reports a similar information, except it applies to PennController trials exclusively

    So, all things considered, nothing went wrong: you can control what information you add to each line by using newTrial().log, and you can decide to use or not use the information in column 4. Alternatively, if you have an “ID” column in the CSV table that you use to generate your items, you can append it to your results lines using .log and use that in your analyses instead of column 4

    Jeremy

    in reply to: Cannot select radio scale buttons #7726
    Jeremy
    Keymaster

    Hi,

    Replace the line $("body").click(e=>e.target.type=="range"&&this.scales.push(e.target.parentElement.classList[1].replace(/PennController-/,''))); with

    $("body").click(e=>{
        if (e.target.type=="range")
            this.scales.push(e.target.parentElement.classList[1].replace(/PennController-/,''))
    }); }).call()

    in your “Uebung” trials

    Jeremy

    in reply to: Too many wrong passwords #7723
    Jeremy
    Keymaster

    Hello,

    When you have entered at least 6 incorrect passwords in a row, you cannot enter a new password for another 3 hours. After that, you can start entering new passwords again, within the same limit of 5 attempts. If you have forgotten your password, you can use the “Forgot your password?” link under the “Log in” button in the popup window that appears when you click “Log in,” and fill in the email address you used when you created your account

    Let me know if problems persist

    Jeremy

    in reply to: can't load results #7721
    Jeremy
    Keymaster

    Dear Clair,

    Thank you for your feedback. Sometimes it can take a while for submitted results to be added to the database, but three and a half day seems excessive. Refreshing your project’s page can help, but I will investigate the issue further

    Jeremy

    in reply to: Audioupload #7719
    Jeremy
    Keymaster

    Hi again,

    The server at userpage.fu-berlin.de indeed seems to impose narrower restrictions than the one at amor.cms.hu-berlin.de

    It is true that https://userpage.fu-berlin.de/jonesanam/stimuli/ is not publicly accessible, but the images you upload there are publicly accessible (see, for example, https://userpage.fu-berlin.de/jonesanam/stimuli/1erbsenradiopfanne.png)

    The PHP script’s address, however, returns a 500 error: https://userpage.fu-berlin.de/jonesanam/audios/saveRecordings.php. It might be that they refuse to serve PHP scripts altogether, or that something is wrong with part of the configuration somewhere. It’s really hard to tell, a 500 error is very generic. You said you made sure your PHP file is executable (you could try permission code 0644)?

    Jeremy

    in reply to: can't load results #7717
    Jeremy
    Keymaster

    Hello,

    I had about 10 participants in the experiment version, though the like below is for a demo.

    https://farm.pcibex.net/r/pPjouP/

    I see 7 submissions received for that experiment’s data-collection link, each consisting of 391 or 392 rows

    Hello. I’ve also got the same problem. The last time I was able to download my results was Tuesday night.

    Would you mind sharing the link to your experiment so I can look up the database?

    What happens exactly when you try to download your results? Do you see a number indicating how many lines have been downloaded so far? Do you use the main “Results” button, or do you first open the modal window with the “…” button to the right of “Results”? Do you make sure you are trying to download the set of results you are interested in (corresponding to the data-collection link for example)?

    Also, have you refreshed the page since the first time you tried and failed to download the results?

    Jeremy

Viewing 15 posts - 571 through 585 (of 1,522 total)