Troubleshooting

PennController for IBEX Forums Troubleshooting

Tagged: 

This topic contains 58 replies, has 11 voices, and was last updated by Jeremy Jeremy 16 hours, 47 minutes ago.

Viewing 15 posts - 16 through 30 (of 59 total)
  • Author
    Posts
  • #7502
    Avatar
    afarin
    Participant

    That works, thanks so much!

    #7600
    Avatar
    monicado
    Participant

    Hi Jeremy,

    I’m wondering if you have any advice on the following. I’m running an experiment (https://farm.pcibex.net/r/ldGLsD/) in which people have to watch some videos and decide between some other videos. The issue that keeps coming up is that every once in a while the preload will simply take forever for participants to download or will simply not download at all. The file is not too big (~55MB), so a long download is a little surprising. I’ve warned participants (at many points) to use a desktop and to do the experiment on firefox. And, they have told me that, indeed, they are. Yet, this keeps happening for what appears to be a somewhat “random” subset of participants. In my many tests of the experiment, I haven’t ever encountered the problem.

    Do you think this is a server issue? I’m currently hosting on Dreamhost using a shared hosting service. I’ve talked to them to see if there is a server issue on their end, but they didn’t report any outages during the times my participants were having issues. But, I was considering moving to a VPS to get a bit more control to see if this might help. But, I wanted to see if you think there is something else I can be doing to get these downloads more consistent?

    #7601
    Jeremy
    Jeremy
    Keymaster

    Hi Monica,

    This is an issue I’ve been working on. I’m currently writing the next release of PennController. It’s still a beta, but hopefully it should be stable enough to run your experiment. I’ve uploaded it to a copy of your project and the preloading seemed much improved:

    https://github.com/PennController/penncontroller/blob/master/dist/PennController.js

    Let me know if you still experience issues

    Jeremy

    #7602
    Avatar
    monicado
    Participant

    I’m somewhat relieved to know that this isn’t an issue on my end and very grateful that you’ve already got a fix in the works!! Lucky me!!

    From your earlier message, my understanding was that I don’t have to change anything, my experiment is now operation on the beta version of PennController. Assuming I’ve understood you correctly, I’ve just tested the experiment out on my own computer and it seems to work fine. But, that doesn’t say much since I can’t seem to get a “bad” preload anyway (for me, the preload is always very quick / instantaneous).

    Do you have any suggestion about how to see if the new preload for others (aside from running a new batch of participants)?

    As always, thanks so much for your help and attention! 🙂

    #7603
    Jeremy
    Jeremy
    Keymaster

    In my case preloading was taking a while when I tried the experiment at your link a couple time, then I uploaded version 2.1-beta and preloading went much faster

    Unfortunately I don’t know what exactly caused the issue, so not sure how you can test it systematically

    Jeremy

    #7629
    Avatar
    noedoc1
    Participant

    Hi Jeremy!

    I’m importing an old experiment form IBEX and I’m having some problems.

    1. It’s a SPR experiment and I have comprehension questions in some items so I decided to do two templates: one for the items without questions and one for the items with questions. I’m getting this error and I don’t understand what I’m doing wrong:

    [14:15:34] Found an existing Text element named “ ”–using name “ 4” instead for new element (newTrial: 20)

    This is the demonstration link: https://farm.pcibex.net/r/gfhJxp/

    2. The second problem I have is that I have four answer options and I want participants to answer pressing 1, 2, 3 or 4. I also want the answers to be presented randomly. However, the way that I’ve programmed it, the “2” key is linked to the second answer that I programmed, but not necessarily to the second answer displayed in the experiment. I tried placing the keys after the shuflle() command, but that didn’t work either. Do you know if there’s a way around this? Here’s what I have so far:

    
    newText("¿Quiénes pueden subirse a la montaña rusa?")
        .center()
    ,
        newButton("1", "les niñes")
        .print()
    ,
        newButton("2", "los adultos")
        .print()
    ,
        newButton("3", "personas mayores de 10 años")
        .print()
    ,
        newButton("4", "todos")
        .print()
    ,
    newSelector()
        .add(getButton("1"), getButton("2"), getButton("3"), getButton("4"))
        .shuffle()
        .keys("1", "2", "3", "4")
        .log()
        .wait()
    )
    

    As always, thanks so much for all your help!

    Noelia.

    #7630
    Jeremy
    Jeremy
    Keymaster

    Hi Noelia,

    1. This is just a warning, not an error: you have more than one Text element named ” ” in your trial. If you were to use getText(" ") later in that trial, PennController would have to guess which of those Text elements you mean, so you’re being warned that the next three Text elements are being named with a 2, 3 and 4 suffix. I took a look at your code and you don’t actually need those Text elements, you could do that:

    defaultText.print(),
    defaultButton.css("margin","0.5em").print()
    ,
    newText("<p>¿Quiénes pueden subirse a la montaña rusa?</p>")
        .center()
        .css("font-size", "large")
    ,
    newButton("1", "les niñes"),
    newButton("2", "los adultos"),
    newButton("3", "personas mayores de 10 años"),
    newButton("4", "todos")
    ,
    newSelector()
        .add(getButton("1"), getButton("2"), getButton("3"), getButton("4"))
        .shuffle()
        .keys("1", "2", "3", "4")
        .log()
        .wait()

    2. Are you saying that when you press the “2” key when, for example, the shuffle command made the Button named “3” appear as the second option, you see “2” where you would expect “3” in the results file? I tried adding and waiting for a Button element after the Selector element’s wait command, and I see that the framed button does correspond to the key I press (ie. the button displayed second in a top-down order is framed, regardless of which button it is)

    Jeremy

    #7631
    Avatar
    noedoc1
    Participant

    Hi Jeremy!

    1. Thanks for the coding tip! I included this and saved a few lines.

    2. I am saying the other way around. However, you are right I double checked the results and I don’t know what I saw the first time, but it is correct now. I have the keys linked to the position in which the options are displayed and that’s how I need them, so perfect!

    I have one more question. As I said before, I have two templates (sentences with questions and sentences without) and I want all the items to be randomized. I have just run the experiment complete and I saw that the items are always one with question and then one without, but I also want this to be mixed. For example, I need something like: sentence_noquestion, sentece_w/question, sentence_noquestion, sentence_noquestion, sentece_w/question, sentence_noquestion, sentece_w/question, sentece_w/question, sentece_w/question, sentence_noquestion and so on.
    If I want that to occur, is this the right code?

    
    Sequence("welcome", "practice1", "practice2", shuffle("practice3", "practice4", "practice5"), "practice6", "start", "setcounter", rshuffle("sentence_noquestion", "sentence_w/question"), SendResults(), "end")
    

    This is the link to the experiment: https://farm.pcibex.net/r/gfhJxp/

    And thanks again for all the help!

    Noelia.

    • This reply was modified 9 months, 2 weeks ago by Avatar noedoc1.
    • This reply was modified 9 months, 2 weeks ago by Avatar noedoc1.
    • This reply was modified 9 months, 2 weeks ago by Avatar noedoc1.
    #7635
    Jeremy
    Jeremy
    Keymaster

    Hi Noelia,

    Simply use randomize(anyOf("sentence_noquestion", "sentence_w/question")) instead of rshuffle("sentence_noquestion", "sentence_w/question") (Reference)

    Jeremy

    #7636
    Avatar
    noedoc1
    Participant

    Thanks, Jeremy! That worked perfectly!

    #7662
    Avatar
    monicado
    Participant

    Hi Jeremy,

    I wanted to follow up on that preloading time issue I mentioned before.

    Indeed, it seemed like folks were able to preload much faster (Thanks again for the fix!), at least for the people working in Chrome. However, I think there was an issue in Firefox. Participants were able to load just find in Firefox before the new Beta Penncontroller, participants afterwards reported not being able to load at in Firefox. Once they switched over to Chrome the files loaded almost instantly. Just thought you should know for later versions!

    Happy new year!
    Monica

    #7663
    Jeremy
    Jeremy
    Keymaster

    Hi Monica,

    Thank you for following up! It’s funny, when I edit the experiment you shared above (https://farm.pcibex.net/r/ldGLsD/) and upload PennController 2.1 beta to the Modules folder and then test it on Firefox, everything just runs smoothly: I don’t experience any preloading time and the videos play back normally. It’s actually when I don’t upgrade to 2.1 beta that I experience preloading times. This will be hard to troubleshoot…

    Anyway, happy new year to you too!

    Jeremy

    #7733
    Avatar
    Aref
    Participant

    Hi, Jeremy.
    I want to design a masked priming experiment and I’ve been trying to use the template masked priming experiment in the projects part to understand how it works (I’m new to coding!). One problem that I’m having is that I can’t use the code that you mention in the advanced tutorial section to tidy the results so that I can calculate the RTs. I’m trying this code:

    tidied_results <- results %>%
      filter(PennElementName == "target" | PennElementName == "answerTarget") %>%
      select(Group, Condition, Expected, PrimeType, PennElementName, Value, EventTime) %>%
      group_by(Group, Condition) %>% 
      mutate(event = case_when(PennElementName == "target" ~ "target_onset_time",
                               PennElementName == "answerTarget" ~ "selection_time"),
             selection = case_when("F" %in% Value ~ "word",
                                   "J" %in% Value ~ "non-word",
                                   FALSE ~ NA_character_),
             EventTime = if_else(EventTime == "Never", NA_real_, suppressWarnings(as.numeric(EventTime)))) %>%
      ungroup() %>% 
      select(-PennElementName, -Value) %>%
      pivot_wider(names_from = event, values_from = EventTime)
    
    tidied_results %>% view()

    The problem is that I get more than one value in the ‘target_onset_time’ and ‘selection_time’ columns.
    What am I doing wrong?
    Thanks

    #7736
    Jeremy
    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

    #7737
    Avatar
    Aref
    Participant

    Thank you so much, Jeremy. It worked.

Viewing 15 posts - 16 through 30 (of 59 total)

You must be logged in to reply to this topic.