מדריך: כתיבת ניסויים ל

Download Report

Transcript מדריך: כתיבת ניסויים ל

‫מדריך‪ :‬כתיבת ניסויים ל‪projectimplicit-‬‬
‫כדי להעביר קבצים מהמחשב שלך לשרת האינטרנט (ובחזרה) שמסוגל להראות אותם ולהריץ‬
‫ניסוי‪ ,‬יש לעשות שימוש בתוכנה בשם ‪.SecureFX‬ניתן להוריד את התוכנה מכתובת זו‪:‬‬
‫‪( http://www.bgu.ac.il/~baranany/fx.exxe‬להתקנתה‪ ,‬יש לשנות את הסיומת מ‪ exxe-‬ל‪)exe-‬‬
‫זה ‪ ,SecureFX‬לפעמים לא רואים בכלל את קבצים בהתחלה‪ ,‬אלא הכל ריק חוץ משורת המשימות‬
‫למעלה‪ .‬כדי להתחבר לשרת‪ ,‬יש ללחוץ על כפתור ה‪Quick Connect-‬‬
‫אחרי שלחצת על ‪ ,Quick Connect‬זה הדיאלוג‬
‫שתראי‪.‬‬
‫במסך הבא (משמאל) יש למלא את‬
‫הסיסמה‪smuyA :‬‬
‫כך יש למלא אותו וללחוץ על ‪( Connect‬ה‪-‬‬
‫‪ hostname‬הוא ‪ ,dw2.psyc.virginia.edu‬ה‪-‬‬
‫‪ username‬הוא ‪ .ybalab‬לא צריך לשנות כלום)‬
‫כאן יש ללכת לפולדר המתאים לניסוי שאת רוצה לעבוד עליו (במקרה הזה‪ ,‬הניסוי לדוגמה אצל יובל(‪.‬‬
‫שימי לב‪ :‬לא פותחים קבצים על השרת עצמו‪ .‬מעתיקים את הקבצים אל המחשב‪ ,‬עורכים אותם‪ ,‬ואז‬
‫מחזירים לשרת‪.‬‬
‫* שימי לב‪ :‬שמות הקבצים חייבים להיות באותיות קטנות‪.‬‬
‫כזכור‪ SecureFX ,‬זו בסך‪-‬הכל תוכנה שמאפשרת העברת קבצים‪ .‬את הקבצים עצמם את כותבת‬
‫על המחשב שלך בעזרת תוכנות עריכה‪ .‬תוכנה פשוטה וחינמית היא ‪Notepad2‬‬
‫(‪ .)http://www.flos-freeware.ch/notepad2.html‬לאחרונה אני משתמש בעיקר ב‪-‬‬
‫‪ ,Notepad++‬אך תוכנה זו פחות טובה כרגע בעריכת טקסטים בעברית‪.‬‬
‫מעלים את הקבצים לאינטרנט באמצעות ‪ copy‬מהסייר (‪ )windows explorer‬אל ‪.SecureFX‬‬
‫הקובץ הראשי של הניסוי הוא הקובץ‬
‫שמסתיים ב‪ .expt.xml-‬הוא מתאר מה ירוץ‬
‫בניסוי‪ .‬באתר של ‪ project implicit‬יש‬
‫תוכנית שיודעת לקבל קובץ ‪ expt‬כזה‬
‫כפרמטר ואז להריץ את הניסוי המתואר‬
‫בה‪ .‬במילים אחרות‪ ,‬יש ‪ url‬שבאמצעותו‬
‫אפשר להפעיל תוכנית שמקבלת את ה‪-‬‬
‫‪ expt‬כמידע ומהמידע הזה היא יודעת‬
‫לייצר ניסוי שלם‪.‬‬
‫ה‪ url-‬הזה נראה ככה‪:‬‬
‫‪https:dw2.psyc.virginia.edu/implicit/Launch?study=/user/ybalab/dina/study2/dina1m-am.expt.xml‬‬
‫במקום לכתוב את ה‪ url-‬הזה בשורת הכתובת בדפדפן בכל פעם שאני רוצה להריץ את הניסוי לבדיקה‪ ,‬אני‬
‫משתמש בקובץ ‪ html‬שבו אחד הלינקים הוא ל‪ url -‬הזה‪ .‬זהו הקובץ ‪ .begin.htm‬הנה הקוד שלו‪:‬‬
‫אפשר לראות את הקובץ הזה (ולא רק את הקוד שלו) וללחוץ על הלינק לתחילת הניסוי בכתובת הבאה‪:‬‬
‫‪https://dw2.psyc.virginia.edu/implicit/user/ybalab/yuval/arabe/begin.htm‬‬
‫נסי להבין את הכתובת‪ :‬היא מתחילה בכתובת של שרת הבדיקות שיושב בוירג'יניה והחל מ‪ user-‬היא מתארת‬
‫למעשה את התיקיות שאת רואה ב‪.SecureFX-‬‬
‫כאמור‪ ,‬הקובץ הראשי של הניסוי‬
‫הוא הקובץ שמסתיים ב‪.expt.xml-‬‬
‫הוא מתאר מה ירוץ בניסוי‪ .‬הקובץ‬
‫כתוב בפורמט ‪ ,xml‬פורמט שהוא‬
‫בעצם פרוטוקול דרכו מעבירים מידע‬
‫בין תוכניות שונות‪ .‬במקרה הזה‪,‬‬
‫אנחנו מעבירים מידע לתוכנית‬
‫שיודעת להריץ ניסוי‪.‬‬
‫יש שני חלקים במידע שהתוכנית מצפה לקבל ממך לגבי‬
‫הניסוי‪.‬‬
‫בחלק הראשון המוגדר תחת ה‪ tag-‬הנקרא ‪,Definitions‬‬
‫תגדירי שמות של משימות ואילו קבצים יריצו את‬
‫המשימות הללו‪ .‬בדרך כלל‪ ,‬כל קובץ הוא פשוט עמוד‬
‫שאותו התוכנית תציג‪.‬‬
‫לפעמים זה קצת יותר מורכב‪ .‬למשל‪ ,‬המשימה המכונה כאן ‪ jewh1‬היא‬
‫משימת ‪ .IAT‬את ה‪ IAT-‬מריצים בעזרת קובץ מסוג ‪ .jsp‬זה קובץ כללי שיודע‬
‫להריץ ‪ ,iat‬והוא נמצא בספרייה כללית‪ .‬הקובץ שלך כאן הוא ‪.jewarabh1.xml‬‬
‫זהו קובץ שמגדיר את ה‪ iat-‬וקובץ ה‪ jsp-‬מקבל אותו כפרמטר שמסביר לו אילו‬
‫קטגוריות וגירויים יופיעו ב‪.iat-‬‬
‫הסבר חוזר באמצעות קובץ ‪ expt‬אחר‬
‫בקובץ ה‪ expt-‬נמצא המידע‬
‫שהתוכנית מצפה לקבל ממך‬
‫לגבי הניסוי‪ .‬לקובץ שני חלקים‪.‬‬
‫ה‪ Definitions-‬וה‪.Map-‬‬
‫בחלק הראשון המוגדר תחת‬
‫ה‪ tag-‬הנקרא ‪,Definitions‬‬
‫תגדירי שמות של משימות ואלו‬
‫קבצים יריצו את המשימות‬
‫הללו‪ .‬בדרך כלל‪ ,‬פשוט מדובר‬
‫בעמוד שאותו התוכנית תציג‪.‬‬
‫את שם הניסוי את קובעת ב‪ tag-‬שנקרא ‪.Study‬‬
‫אם זה ניסוי בעברית בישראל‪ ,‬השם תמיד‬
‫יתחיל ב‪.israel-‬‬
‫הסבר חוזר‪ :‬לפעמים הגדרת המשימה קצת יותר מורכבת‪ .‬למשל‪ ,‬המשימה המכונה כאן ‪homo1bad‬‬
‫היא משימת ‪ .Single-Target IAT‬את ה‪ ST-IAT-‬מריצים באמצעות קובץ ‪ jsp‬שנמצא בספרייה כללית‬
‫(ולא בספריה של הניסוי המסוים הזה)‪ .‬זהו הקובץ המצוין בתוך ה‪ tag-‬הנקרא ‪ Task‬במשימה המכונה‬
‫כאן ‪ .homo1bad‬קובץ ה‪ jsp-‬הזה יודע להריץ ‪ ST-IAT‬אבל הוא צריך נתונים כדי לדעת מה להציג ב‪ST--‬‬
‫‪ .IAT‬הנתונים הללו נמצאים בקובץ ‪ homo1bad.xml‬המצוין כ‪ attribute-‬בשם ‪( file‬ראו למטה)‪.‬‬
‫עוד קבצים מיוחדים‬
‫שקיימים הם שאלוני ‪xml‬‬
‫בפורמט קבוע יחסית‪ ,‬אך‬
‫כאן אין דוגמה לכאלו‪ .‬לכן‬
‫נדון בשאלוני ‪ xml‬בעמוד‬
‫מאוחר יותר‪.‬‬
‫החלק השני החשוב בקובץ‬
‫‪ ,expt‬מלבד החלק של ה‪-‬‬
‫‪ ,Definitions‬הוא החלק‬
‫המכונה ‪ .Map‬בחלק זה‬
‫מתואר הניסוי‪ .‬כאן‪ ,‬אנחנו‬
‫רואים ניסוי מאוד פשוט‪,‬‬
‫והמפה מבקשת להציג‬
‫משימה אחת אחרי השנייה‪.‬‬
‫ה‪ map-‬משמאל מורכבת יותר‪ .‬בתוך ‪Branch‬‬
‫אפשר לקבץ כמה משימות ביחד‪ ,‬ואפשר גם‬
‫להציג אותן בסדר רנדומי או לבחור רק אחת‬
‫באופן רנדומי‪.‬‬
‫בנוסף‪ ,‬ניתן לראות שבתוך ‪ Task‬אפשר לשים עוד‬
‫‪ .Tasks‬בדרך‪-‬כלל‪ ,‬כש‪ tag-‬נסגר מיד אז יש סלאש‬
‫(‪ )/‬בסוף לפני ה‪ .>-‬אם ה‪ tag-‬עדיין לא נסגר אין‬
‫את הסלאש ומתישהו צריך להגיע סגור‪ ,tag-‬כמו‬
‫למשל >‪ .</Branch‬או כמו >‪ </Task‬במקרה של‬
‫ה‪ Task-‬המכונה ‪ instreal‬בדוגמה משמאל‪.‬‬
‫למשל‪ ,‬בדוגמה משמאל בתוך הענף המכונה‬
‫‪ ,msr1‬נמצאות שתי קבוצות של משימות‪ .‬קבוצה‬
‫אחת נמצאת בתוך ‪ tag‬של ‪ Task‬בשם ‪,instreal‬‬
‫והקבוצה השנייה של משימות נמצאת בתוך‬
‫‪ Branch‬בשם ‪ .imsr‬מכיוון שב‪ Branch-‬העליון‪ ,‬זה‬
‫המכונה ‪ msr1,‬מצוין ”‪ ,select=“1‬זה אומר‬
‫שהתוכנית תבחר אחת מקבוצות המשימות (אלו‬
‫שבתוך ה‪ Task-‬המכונה ‪ instreal‬או אלו שבתוך‬
‫ה‪ Branch-‬המכונה ‪ )imsr‬ולא תציג את הקבוצה‬
‫האחרת‪ .‬כלומר‪ ,‬ה‪ select=“1”-‬אומר לתוכנית‬
‫שעליה לבחור אחד מבין שני הבלוקים שנמצאים‬
‫בתוך ה‪ :Branch-‬ה‪ instreal-‬או ה‪.imsr-‬‬
‫שימו לב ש‪ imsr-‬היא בעצמה ‪.Branch‬‬
‫בבארנץ' ‪ imsr‬אין ”‪ .select=“1‬כלומר‪ ,‬לא יבחר רק‬
‫ענף אחד בתוכו‪.‬‬
‫כמה ענפים שונים קיימים תחת ‪?imsr‬‬
‫יש לנו את ‪ instiatr‬שזו ‪ task‬שבתוכה נמצא ‪Branch‬‬
‫בשם ‪,riat‬‬
‫ויש גם את ‪ riep‬שזה בראנץ' נוסף‪.‬‬
‫היות שב‪ imsr-‬לא צוין ש‪ ,select=“1”-‬אז כל התת‪-‬‬
‫ענפים שלו ייבחרו‪ .‬אבל כן צוין ש‪random=“true”-‬‬
‫ולכן הם יבחרו בסדר אקראי‪ .‬כלומר‪ ,‬לפעמים כל‬
‫מה שיש בתוך ‪ instiatr‬יופיע לפני ‪ ,riep‬ולפעמים‬
‫ההפך‪.‬‬
‫מה קורה בתוך ‪ ? instiatr‬דבר ראשון יש את‬
‫‪ ,instiatr‬אז ה‪ task-‬הזו תופיע‪ .‬לאחריה‪ ,‬מתחיל ה‪-‬‬
‫‪ .riat Branch‬שימו לב שאצלו מוגדר ה‪-‬‬
‫”‪ random=“true‬וגם ”‪ .select=“1‬זה אומר‬
‫שהענפים שבתוכו יבחרו באקראי‪ ,‬ורק אחד מהם‬
‫יבחרו‪ .‬כלומר‪ ,‬או ש‪ iatrace1-‬תרוץ או ש‪iatrace2-‬‬
‫תרוץ‪ .‬במקרה של הניסוי הזה‪ ,‬ככה מגרילים בין‬
‫נבדקים שני ‪-iat‬ים עם ‪ block-order‬שונה‪.‬‬
‫בקובץ ה‪ expt-‬משמאל‪ ,‬ישנן כמה‬
‫הגדרות מעניינות‪.‬‬
‫יש משימות שהן קבצי ‪ jsp‬שמקבלים‬
‫‪ ,xml‬כמו הגדרת ה‪ iat-‬שראינו קודם‪.‬‬
‫יש גם משימות שמוגדרות עם ‪type‬‬
‫בשם ‪ .xform‬ה‪ xform-‬מייצר שאלון‬
‫בעזרת קובץ ‪ xml‬מתאים‪ .‬כלומר‪,‬‬
‫ההגדרה הזו אומרת לתוכנית שמריצה‬
‫את הניסוי שהמשימות האלו הן שאלון‪,‬‬
‫והתוכנית יודעת להשתמש בקובץ ה‪-‬‬
‫‪ ,xml‬כדי לייצר את השאלון‪.‬‬
‫יותר מאוחר נראה כיצד כותבים את ה‪-‬‬
‫‪ xml‬שמתאים ל‪.xform-‬‬
‫בינתיים‪ ,‬לגבי ה‪ ,expt-‬נוסיף שכאשר השאלון הוא בעברית‪ ,‬אז מוסיפים עוד דבר‪-‬מה להגדרה‪,‬‬
‫כדי ליישר את הטקסט לימין‪:‬‬
‫כתיבת ‪IAT‬‬
‫כאמור‪ ,‬התוכנית יודעת להריץ את ה‪ IAT-‬באמצעות שורה כזו‪:‬‬
‫משמעות השורה‪ :‬תריצי את הקובץ ‪ iattask5.jsp‬ותעבירי לקובץ ה‪ jsp-‬הזה את קובץ ה‪xml-‬‬
‫שנקרא ‪ .jewarabh1.xml‬בנוסף‪ ,‬תשתמשי בפרמטרים נוספים לגבי ה‪ IAT-‬שנמצאות בקובץ‬
‫‪( paramheb.xml‬בקובץ הפרמטרים מוגדרים מאפיינים כמו המקשים שבהם נשתמש‪ ,‬משך‬
‫הזמן בין צעד לצעד (‪ ,)ITI‬הכתובת שממנה ייטענו התמונות‪ ,‬ועוד)‪.‬‬
‫אם אין ‪( path‬כלומר‪ ,‬כתובת התיקיות) בשם הקובץ‪ ,‬אז התוכנית יודעת לחפש את הקובץ‬
‫באותה תיקיה שבה נמצא קובץ ה‪.expt-‬‬
‫אפשר גם להגדיר ‪ Task‬של ‪ IAT‬בלי להגדיר קובץ ‪ .properties‬במקרה כזה‪ ,‬התוכנית תשתמש‬
‫בקובץ פרמטרים שהוא ברירת המחדל‪ .‬לרוב לא עושים זאת‪ ,‬כי לרוב התמונות נמצאות בתוך‬
‫תיקיית ה‪ images-‬שלכם (ותיקיית התמונות מוגדרת בקובץ הפרמטרים)‪ .‬אך‪ ,‬אם משתמשים‬
‫בתמונות שכבר קיימות בתיקיית התמונות הכללית של האתר‪ ,‬או משתמשים במילים ולא‬
‫בתמונות‪ ,‬אז בדרך‪-‬כלל לא צריך להגדיר קובץ פרמטרים משלכם‪.‬‬
‫קובץ ה‪ jsp-‬נמצא משמאל‪.‬‬
‫קובץ ‪ jsp‬הוא בעצם קובץ‬
‫שהשרת יודע לייצר ממנו‬
‫קובץ בפורמט שהדפדפן יודע‬
‫לקרוא‪ .‬כלומר‪ ,‬הדפדפן פונה‬
‫אל השרת ומבקש שישלח את‬
‫קובץ שיוצא כשמעבדים קובץ‬
‫‪ jsp‬מסוים‪ ,‬והשרת עושה‬
‫כבקשת הדפדפן‪ .‬קובץ ‪jsp‬‬
‫הוא כמעט כמו קובץ ‪ ,html‬רק‬
‫שבמקרה של קובץ ‪html‬‬
‫השרת לא עושה כלום חוץ‬
‫מלשלוח את הקובץ אל‬
‫הדפדפן‪ ,‬בעוד שבמקרה של‬
‫קובץ ‪ ,jsp‬השרת עושה קצת‬
‫עבודה לייצור הקובץ שהוא‬
‫ישלח לדפדפן‪.‬‬
‫כל דבר שנמצא בתוך >‪ <% %‬כתוב בשפת תִ כנות הנקראת ‪ ,java‬והוא נועד לייצר כל מיני חלקים‬
‫מהקובץ‪ ,‬כל פעם שהדפדפן מבקש להראות את הקובץ‪.‬‬
‫האמת היא שזה לא מאוד חשוב‪ ,‬כי‪ ,‬לפחות במקרה של ה‪ ,iat-‬את לא תשני לעולם את ה‪.jsp-‬‬
‫בדרך‪-‬כלל‪ ,‬קובץ ה‪ jsp-‬אפילו לא‬
‫נמצא בתוך התיקיה שלך שבה‬
‫מופיעים הקבצים האחרים בניסוי‬
‫שלך‪.‬‬
‫כל מה שחשוב להבין במקרה‬
‫הזה‪ ,‬הוא שקובץ ה‪ jsp-‬הזה מריץ‬
‫תוכנית פלאש ושולח לתוכנית‬
‫הפלאש הזו את קובץ ה‪xml-‬‬
‫שהגדרת מקודם‪ ,‬כפרמטר‪.‬‬
‫תוכנית הפלאש תדע להשתמש‬
‫בקובץ ה‪ xml-‬כדי להבין מה אמור‬
‫להופיע ב‪ iat-‬שהיא (תוכנית‬
‫הפלאש) תייצר‪.‬‬
‫מה זה תוכנית פלאש? פלאש זו‬
‫תוכנה שהדפדפן יודע להריץ‪,‬‬
‫והתוכנה הזו יודעת לעשות דברים‬
‫דינאמיים‪ .‬למשל‪ ,‬ב‪,youtube-‬‬
‫לפחות נכון ל‪ ,2010-‬משתמשים‬
‫בפלאש כדי להריץ את הסרטים‪.‬‬
‫מה שתצטרכי לשנות בדרך‪-‬כלל זה את קובץ ה‪ xml-‬שנשלח לתוכנית הפלאש‪ .‬כזכור‪ ,‬הגדרת באיזה‬
‫קובץ ‪ xml‬ייעשה שימוש בכל משימה בתוך קובץ ה‪:expt-‬‬
‫במקרה‪ ,‬את קובץ ה‪ xml-‬הזה‪ ,‬תוכלי למצוא בכתובת זו‪:‬‬
‫‪https://dw2.psyc.virginia.edu/implicit/user/yba/slnc2/iatrace1.xml‬‬
‫שם המשימה מוגדר כאן‬‫שם המשימה יופיע בנתונים‪ ,‬והוא יעזור לך להבחין בין ‪-iat‬‬‫ים שונים‪ ,‬במידה שיש לך יותר מ‪ iat-‬אחד בניסוי‪.‬‬
‫לאחר מכן מגדירים את ארבע הקטגוריות של ה‪.iat-‬‬‫לכל קטגוריה יש מספר שבו נשתמש מאוחר יותר‬‫כדי להסביר אילו קטגוריות יוצגו בכל בלוק‪.‬‬
‫שם הקטגוריה כפי שהוא יופיע ב‪ iat-‬מוגדר ב‪-‬‬‫‪.CategoryName‬‬
‫בתוך הקטגוריה מוגדרים כל גירוייה‪ .‬כאן‪ ,‬כל‬‫הגירויים הם תמונות‪ .‬התמונות הללו מופיעות‬
‫במקרה בתיקיה המשותפת לכל הניסויים תחת‬
‫‪( /common/en-us/image‬מיצאו ב‪.)SecureFX-‬‬
‫ב‪ 2010-‬חל שינוי ולא ניתן להוסיף תמונות חדשות‬
‫לתיקייה זו‪ .‬לכן‪ ,‬כדאי להכין תיקיית תמונות לכל‬
‫ניסוי‪ ,‬תחת תיקיית הניסוי‪.‬‬
‫אפשר גם שהגירויים יהיו מילים‪:‬‬
‫אפשר גם לדאוג לכך שכל המילים‬
‫תיכתבנה בצבע מסוים‪:‬‬
‫הצבע מוגדר ב‪ .hexa-‬מה זה‬
‫אומר? בהזדמנות אסביר‪,‬‬
‫בינתיים‪ ,‬גוגל יענה‪.‬‬
‫אגב‪ ,‬אפשר גם לשלוט בגודל הפונט ולא רק בצבעו‪ .‬זאת בעזרת ‪ attribute‬בשם ‪.fontSize‬‬
‫לאחר הקטגוריות‪ ,‬יש להגדיר את הבלוקים‪.‬‬
‫החלק שיוצא כאן מהתמונה הוא ההוראות בפתיחת הבלוק (בתוך ה‪ .)Instruction-‬את ההוראות‬
‫כותבים בשורה אחת ארוכה‪ .‬בתוך ‪ [CDATA‬מתארים טקסט בשפת ‪.html‬‬
‫מספר הבלוק מתחיל מאפס והוא תמיד מקביל למספרו בתוך הקובץ (כלומר‪ ,‬חובה לכתוב את בלוק ‪0‬‬
‫לפני שכותבים את בלוק ‪.)1‬‬
‫בתוך ‪ TrialCount‬מגדירים את מספר הצעדים‪.‬‬
‫בתוך ‪ BlockPairingDefinition‬מגדירים את הקטגוריות שתוצגנה‪ .‬במקרה הזה‪ ,‬יוצגו שתי קטגוריות‬
‫בלבד‪ ,‬הקטגוריה שמספרה ‪ 0‬והקטגוריה שמספרה ‪ .2‬אני חושב ש‪ 2-‬תופיע מימין ו‪ 0-‬משמאל‪.‬‬
‫כשיש ארבע קטגוריות‪ ,‬ה‪ BlockPairingDefinition-‬ייראה כך‪:‬‬
‫ב‪ BlockPairingDefinition-‬הגדרת הקטגוריות היא בפורמט של ימין‪-‬שמאל‪-‬ימין‪-‬שמאל‪ .‬כלומר‪,‬‬
‫בדוגמה כאן‪ 2 :‬מימין‪ 0 ,‬משמאל‪ 1 ,‬מימין‪ 3 ,‬משמאל‪ .‬אז‪ ,‬קטגוריות ‪ 2‬ו‪ 1-‬יהיו מימין וקטגוריות ‪ 0‬ו‪3-‬‬
‫יהיו משמאל (אגב‪ ,‬יכול להיות שאני מתבלבל והסדר הוא שמאל‪-‬ימין‪-‬שמאל‪-‬ימין‪ .‬טרם מצאתי סיבה‬
‫להבחין בין שתי האפשרויות האלו)‪.‬‬
‫בסוף קובץ ה‪ xml-‬של ה‪ iat-‬מגדירים את הודעות הפידבק שתיראה הנבדקת‪:‬‬
‫ה‪ cutoff-‬זה בעצם ציון ה‪ -65 .IAT-‬אומר שבלוקים ‪ 2‬ו‪ 3-‬היו הרבה יותר מהירים מבלוגים ‪ 5‬ו‪65. .6-‬‬
‫אומר שבלוקים ‪ 6- 5‬היו הרבה יותר מהירים‪.‬‬
‫איך אני יודע שאלו בלוקים ‪ 2‬ו‪ 3-‬מול בלוקים ‪ 5‬ו‪ ?6-‬הללו מוגדרים ב‪ .ReportBlocks-‬התוכנית‬
‫מפחיתה את המהירות בבלוקים המצוינים אחרונים מהבלוקים המצוינים ראשונים‪.‬‬
‫אם היינו הופכים את סדר הבלוקים ל‪ <ReportBlocks>5,6,2,3</ReportBlocks> :‬אז התוכנית‬
‫היתה מפחיתה את ‪ 2‬ו‪ 3-‬מבלוקים ‪ 5‬ו‪ .6-‬במקרה כזה אם ‪ 2‬ו‪ 3-‬יותר מהירים‪ ,‬אז המספר ייצא חיובי‪,‬‬
‫בעוד שאם ‪ 5‬ו‪ 6-‬יותר מהירים המספר יהיה שלילי‪.‬‬
‫ליתר דיוק‪ ,‬זו הנוסחה‪:‬‬
‫)‪(Mean(block1, block2)-mean(block3, block4))/stddev(block1, block2, block3, block4‬‬
‫כלומר‪ ,‬ההפרש בממוצע המהירויות בשני הבלוקים‪ ,‬חלקי השונות בכל הצעדים בכל ארבעת הבלוקים‬
‫הללו‪ .‬את אף פעם לא משנה את ה‪ ,cutoffs-‬רק את הודעות הפידבק בהתאם למשמעות של ה‪-‬‬
‫‪.cutoff‬‬
‫חוץ מה‪ ,IAT-‬יש גם שיטות מדידה אחרות‪ ,‬ולכל אחת מהן פורמט ה‪ xml-‬המתאים לה‪ .‬בגירסאות‬
‫עתידיות של המסמך‪ ,‬אפרט עוד בנושא‪.‬‬
‫כזכור‪ ,‬קובץ הגדרות נוסף שמקבלת תוכנית‬
‫הפלאש‪ ,‬הוא קובץ הפרמטרים (שהוגדר ב‪-‬‬
‫‪ attribute‬בשם ‪ .)properties‬את הקובץ ה‪-‬‬
‫‪-default‬י‪ ,‬ניתן לראות בכתובת זו (הוא מוצג היטב‬
‫בפיירפוקס)‪:‬‬
‫‪https://dw2.psyc.virginia.edu/implicit/commo‬‬
‫‪n/en-us/flash/default.xml‬‬
‫בדרך‪-‬כלל‪ ,‬הפרמטר היחיד שיעניין אתכם הוא‬
‫‪ ,IMAGE_URL‬כי שם תכתבו את כתובת תיקיית‬
‫התמונות שלכם‪ .‬למשל‪:‬‬
‫‪/implicit/user/ybalab/yuval/arabe/images/‬‬
‫אם תרצו‪ ,‬משום מה‪ ,‬לשנות את המקשים‪ ,‬שימו לב שהם‬
‫כתובים ב‪ .ascii-‬ניתן למצוא טבלת ‪ ascii‬בקלות‬
‫באינטרנט‪.‬‬
‫בניסויים בעברית‪ ,‬יש צורך להשתמש בקובץ פרמטרים‬
‫אחר‪ .‬למשל כאן‪:‬‬
‫‪https://dw2.psyc.virginia.edu/implicit/common/en‬‬‫‪us/flash/israel.xml‬‬
‫כתיבת שאלון‬
‫שאלונים ניתן להציג בשני סוגי קבצים‪ xml :‬וה‪ .html-‬ה‪ html-‬מאפשר הרבה יותר גמישות‪ ,‬אבל דורש‬
‫יותר ידע בתכנות‪ .‬לכן‪ ,‬כל עוד ה‪ xml-‬מסוגל לבצע את מה שאתם רוצים שיבצע‪ ,‬מומלץ להשתמש בו‪.‬‬
‫ב‪ Text-‬הראשון כותבים הוראות‬
‫כלליות‪( .‬אפשר גם להוסיף ‪ text‬לכל‬
‫בלוק)‬
‫לאחר מכן יש בלוקים‪ .‬במקרה משמאל יש רק‬
‫בלוק אחד‪ ,‬אבל ניתן להשתמש בכמה‪.‬‬
‫בכל בלוק‪ columns ,‬מגדיר כמה שאלות יהיו בכל‬
‫טור‪.‬‬
‫ניתן להכניס את השאלות ל‪ ,Random-‬ואז‬
‫השאלות יופיעו בסדר רנדומלי‪.‬‬
‫ה‪ ID-‬של השאלה חשוב במיוחד‪ ,‬כי הוא שם‬
‫המשתנה שבו יישמר המידע‪ .‬אם באותו שאלון‬
‫יש שתי שאלות עם אותו ה‪ ,ID-‬הן ידרכו אחת‬
‫על השנייה‪.‬‬
‫ה‪ value-‬של כל תשובה הוא הערך שיישמר‪ .‬עדיף להשתמש בערכים מספריים‪ ,‬אך‬
‫אין חובה כזו‪.‬‬
‫ניתן להשתמש בכמה שאלות וכמה בלוקים שרוצים‪.‬‬
‫ב‪ Text-‬של כל שאלה מופיע הטקסט‬
‫של השאלה‪.‬‬
‫אפשרויות מתקדמות שלא מתוארות כאן‪ ,‬אך‬
‫ניתן לממש אותן‪:‬‬
‫טקסט חופשי כתשובה‪.‬‬‫תלויות בין שאלות (ששאלה אחת תופיע רק אם‬‫הנבדקים ענו בצורה מסוימת לשאלה אחרת)‪.‬‬
‫אפשרויות מרכזיות שלא קיימות בשאלוני ‪xml‬‬
‫ומצריכות כתיבת השאלון ב‪:html-‬‬
‫אי‪-‬אפשר להציג תמונות‪.‬‬‫אי‪-‬אפשר להכריח נבדקים להשיב לשאלות‪.‬‬‫אי‪-‬אפשר להכריח נבדקים להשיב תשובות‬‫מסוימות לשאלות (במקרה שבו רק רוצים לבחון‬
‫את הריכוז שלהם)‪.‬‬
‫מטלות אחרות‬
‫בניסויי אינטרנט‪ ,‬ניתן להריץ גם מטלות זולת ‪ IAT‬ושאלונים‪ .‬ישנן מספר אפליקציות פלאש שנכתבו‬
‫כדי להריץ ‪ GNAT ,ST-IAT ,AMP ,EP ,SPF‬ו‪ .BIAT-‬כולן נכתבו על בסיס ה‪ ,IAT-‬אבל כותבים ‪xml‬‬
‫קצת שונה בשביל כל אחת מהן‪ ,‬וכל אחת מהן מוגדרת באמצעות ‪ jsp‬שונה (ראו איך מוגדר ה‪.)IAT-‬‬
‫בניסוי ההדגמה בעברית (‪ )http://www.bgu.ac.il/~baranany/labexmp.zip‬נמצאות דוגמאות ל‪ IAT-‬בעברית‪ .‬כרגע יש‬
‫שם גם שתי דוגמאות ל‪ AMP-‬ולו‪ ,EP-‬אבל שימו לב שההוראות שמופיעות בין הבלוקים לא‬
‫מעודכנות‪ ,‬ויש ליצור שקופיות חדשות בשבילן‪.‬‬
‫בדיקת הניסוי‬
‫כזכור‪ ,‬את קבצי הניסוי אנחנו‬
‫מעתיקים לשרת שיושב‬
‫בוירג'יניה‪ .‬כדי להריץ את‬
‫הניסוי‪ ,‬אני ממליץ להכין קובץ‬
‫בשם ‪ ,begin.htm‬ולהעתיק‬
‫אותו אל התיקייה שלכם על‬
‫השרת‪.‬‬
‫משמאל מופיע קוד לדוגמה של‬
‫קובץ כזה‪ .‬את הקובץ הזה‬
‫אפשר להוריד מכתובת זו‪:‬‬
‫‪https://dw2.psyc.virginia.ed‬‬
‫‪u/implicit/user/yba/m13/be‬‬
‫‪gin.htm‬‬
‫בקובץ זה קישורים שמפעילים את הניסוי‪ .‬כזכור‪ ,‬קובץ ה‪ expt-‬מתאר לתוכנית שמריצה ניסויים מה‬
‫יש בניסוי שלכם‪ ,‬ובאופן כללי איך להריץ אותו‪ .‬כדי להפעיל את התוכנית שמריצה ניסויים‪ ,‬מפעילים‬
‫קובץ בשם ‪ .Launch‬הקישורים שבתמונה (הערכים של ה‪ )href-‬מפעילים את התוכנית הזו‪ ,‬ונותנים‬
‫לה קובץ ‪ expt‬כפרמטר‪.‬‬
‫כתובת קובץ ה‪ expt-‬מתחילה אחרי ה‪ ,implicit-‬בתיקייה ‪ ,user‬ולאחריה שאר התיקיות עד‬
‫שמגיעים לקובץ ה‪ expt-‬שלכם‪ .‬במילים אחרות‪ ,‬יש לכתוב =‪ study‬ואז לכתוב את ה‪ path-‬אל קובץ‬
‫ה‪ expt-‬שלכם‪ ,‬אבל ה‪ path-‬הוא יחסית לתיקייה הנקראת ‪.implicit‬‬
‫בהחלט סביר שלא הבנתם את מה שהרגע קראתם‪ .‬לכן‪ ,‬תסתכלו על הקוד הכתוב למעלה‪ ,‬ותנסו‬
‫להסיק מה אתם צריכים לשנות בו כדי להפעיל את ה‪ expt-‬שלכם‪.‬‬
‫אחרי שיצרתם קובץ ‪ begin.htm‬ושמתם אותו בתיקייה שלכם ב‪( dev2-‬זה השם של השרת‬
‫שהתחברתם אליו בעזרת ‪ ,)secureFX‬אז אפשר לגשת אליו דרך הדפדפן‪ ,‬בכתובת שמופיעה‬
‫בשורת הכתובת בתמונה זו‪:‬‬
‫בדף זה יש שני קישורים‪ ,‬כי‪ ,‬כפי שניתן לראות בשקופית הקודמת‪ ,‬יצרתם ב‪ html-‬טבלה עם שתי‬
‫שורות‪ ,‬ובכל שורה קישור אחר‪ .‬לעיתים קרובות‪ ,‬אני מכין קובץ אחד מלא של כל הניסוי‪ ,‬וקובץ נוסף‬
‫לבדיקת הניסוי בשלבים‪ .‬בדרך‪-‬כלל אני קורא לקובץ זה ‪ ,d.expt.xml‬והקישור אליו הוא הקישור‬
‫התחתון (ראו הדוגמה בשקופית הקודמת)‪.‬‬
‫בדרך‪-‬כלל‪ ,‬כשמתחילים להריץ‪ ,‬אז תקבלו מסך שגיאה‪ .‬למשל‪:‬‬
‫תמיד כדאי לקרוא את הודעת השגיאה כדי לנסות להבין אותה‪ .‬במקרה הזה‪ ,‬השגיאה פשוטה – לא‬
‫קיים קובץ ה‪ d.expt.xml-‬שהקישור שלי ניסה להפעיל‪ .‬זה אומר שאני צריך לברר אם הוא נמצא‬
‫בתיקייה האמורה‪ ,‬ואם כתבתי את הקישור נכון ב‪begin.htm-‬‬
:‫בעיות נפוצות אחרות‬
:‫ למשל‬.xml-‫פעמים רבות הבעיה היא שיש שגיאת סינטקס ב‬
-‫ ב‬doit ‫ בשם‬task ‫הגדרתי פעמיים‬
.Definition
Could not load task: doit study:/home/dev2users/dev2//user/yba/tmp/lateneg/lateneg.expt.xml
Task must specify URL: <Task id="doit"/> Stack Trace:
‫ אבל‬,Map-‫ ב‬doit ‫ בשם‬task ‫הגדרתי‬
.Definitions-‫ ב‬task ‫לא הגדרתי כזו‬
Could not load: /home/dev2users/dev2//user/yba/tmp/lateneg/lateneg.expt.xml
Error on line 108 of document : The element type "Task" must be terminated by the matching end-tag "</Task>". Nested exception: The
element type "Task" must be terminated by the matching end-tag "</Task>".
Stack Trace: org.dom4j.DocumentException: Error on line 108 of document : The element type "Task" must be terminated by the matching
end-tag "</Task>". Nested exception: The element type "Task" must be terminated by the matching end-tag "</Task>".
at org.dom4j.io.SAXReader.read(SAXReader.java:482)
‫ של‬tag ‫ פתחתי‬.‫ לא בסדר‬xml-‫ה‬
.‫ אבל לא סגרתי אותו‬,Task
‫ גם‬,‫ הבעיה היא אחת משלוש הבעיות שהוזכרו למעלה‬,‫כלל‬-‫ בדרך‬.‫לא תמיד ההודעה אינפורמטיבית‬
.‫כשהודעת השגיאה לא מסבירה זו במפורש‬
well- ‫ שלכם הוא‬xml-‫אחד הדברים לעשות כשיש הודעות שגיאה לא אינפורמטיביות היא לבדוק אם ה‬
check if " ‫" או‬validate xml" ‫ אני מחפש בדרך כלל‬.‫ ניתן לחפש אתרים בגוגל שעושים זאת‬.formed
http://www.w3schools.com/Xml/xml_validator.asp :‫ למשל‬."xml if well formed
‫ הבדיקה‬,‫ אם יש טעות סינטקס‬.‫ ובודקים‬,‫ לחלון הטקסט באתר‬,‫ שלכם‬xml-‫מעתיקים את הטקסט מה‬
.‫תצביע על הבעיה‬
,‫ ולהריץ אותו שוב ושוב‬,d.expt.xml ‫ לקובץ‬expt-‫ היא להעתיק את ה‬,‫דרך נוספת למצוא את הבעיה‬
.‫ עד שתמצאו מה בדיוק הבעיה‬,Map-‫ או ללא חלק מה‬,tasks-‫כל פעם ללא אחת מה‬
‫לאחר שהניסוי מצליח לרוץ‪ ,‬עדיין עלולות להיות בעיות בכל ‪ Task‬ו‪ .Task-‬בעיה נפוצה ב‪ IAT-‬היא‬
‫קבלת הודעה ‪ .Failed to Load‬בדרך כלל זה אומר שיש לכם טעות בהכנת ה‪ .XML-‬שווה לבדוק‬
‫באמצעות ‪( xml validator‬ראו שקופית קודמת)‪ .‬אם אין בעיה ב‪ ,XML-‬תשוו עם קובץ ‪ IAT‬שעובד‪,‬‬
‫ותנסו להבין מה שכחתם לכלול ב‪ XML-‬שלכם‪ .‬גם כאן‪ ,‬ניתן לפעמים לפשט את ה‪ ,XML-‬כדי לבחון‬
‫מה הבעיה‪.‬‬
‫תקלה נפוצה אחרת עם ה‪ ,IAT-‬היא שהתוכנית נתקעת בזמן שהיא מנסה להעלות את התמונות‪ .‬אם‬
‫היא נתקעת על אפס‪ ,‬אז כנראה שהתמונות לא נמצאות בתיקייה שבה ה‪ IAT-‬מחפש אותן‪ .‬ה‪path-‬‬
‫של התיקייה מוגדר ב‪ properties file-‬שהגדרתם לכל ‪ task‬של ‪ ,IAT‬כשהגדרתם את ה‪TASK-‬‬
‫בקובץ ה‪ .expt-‬אם לא הגדרתם ‪ ,properties file‬וקבצי התמונות נמצאים בתיקייה שלכם‪ ,‬אז צריך‬
‫להגדיר ‪ properties file‬ל‪ ,IAT-‬לכתוב בו את ה‪ path-‬הנכון למשתנה ה‪ ,IMAGE_URL-‬ואז להגדיר‬
‫את ה‪ properties-‬ל‪ IAT-‬ב‪ .expt-‬חלק זה הוסבר מוקדם יותר‪ ,‬אז תחזרו להוראות לגבי כתיבת‬
‫הניסוי‪ ,‬כדי להבין זאת טוב יותר‪.‬‬
‫מה צריך לבדוק בניסוי?‬
‫‪ .1‬בדקו שנתתם שם מתאים לניסוי‪ .‬השם מופיע בקובץ ה‪ ,expt-‬כ‪ id-‬של ה‪ .Study tag-‬הוא תמיד‬
‫מתחיל ב‪ ybalab.-‬ולאחר מכן שם התיקייה‪ ,‬ואז בדרך‪-‬כלל ‪ .0001‬למשל‪.ybalab.gita1.0001 :‬‬
‫‪ .2‬בדקו שהניסוי רץ מתחילתו עד סופו בכל התנאים האפשריים‪ .‬אם התנאים מוגרלים‪ ,‬אז כדאי‬
‫להכין קובץ ‪ d.expt.xml‬שבו תריצו כל פעם תנאי ניסוי אחר‪ ,‬ללא הגרלה‪ ,‬כדי שתוכלו לבחון את‬
‫כל התנאים‪.‬‬
‫‪ .3‬בדקו שה‪ debriefing-‬עובד כראוי‪ ,‬בכל התנאים האפשריים‪.‬‬
‫‪ .4‬בדקו שנתתם ‪ IATName‬שונים לכל קובץ ‪ .IAT‬ה‪ IATName-‬יישמר בדאטה בהמשך‪.‬‬
‫‪ .5‬בדקו שבכל שאלון לכל שאלה יש שם שונה‪ .‬בדקו שבכל שאלה‪ ,‬לכל תשובה אפשרית יש ערך‬
‫שונה‪.‬‬
‫‪ .6‬בדקו שב‪ MAP-‬אין שני ‪ Tasks‬עם אותו השם‪ .‬אם אתם משתמשים באותו הקובץ מספר פעמים‪,‬‬
‫הגדירו כמה ‪ Tasks‬ב‪ Definitions-‬שמצביעות על אותו הקובץ‪ .‬מותר לחזור על אותו הקובץ‪ ,‬אבל‬
‫לא על אותו שם של ‪.Task‬‬
‫‪ .7‬חשוב מאוד לבדוק שהשפה תקינה ונכונה‪.‬‬
‫‪ .8‬חשוב גם לוודא שהנבדקים לומדים הרבה מהדיבריפינג‪ .‬לעיתים קרובות‪ ,‬הנבדקים הם מתנדבים‬
‫וחשוב שהם יקבלו תמורה‪ ,‬כדי שהם ימשיכו להגיע לאתר ויתנדבו לניסויים נוספים‪.‬‬
‫מה צריך לבדוק בניסוי?‬
‫‪ .11‬בדקו שהנתונים נשמרים כראוי‪ .‬כל עוד אתם על שרת הבדיקה‪ ,‬יש בדרך‪-‬כלל שיטה פשוטה לעשות‬
‫זאת‪ .‬השתמשו בקישור הבא‪ ,‬או קישור דומה לו‪:‬‬
‫‪https://dw2.psyc.virginia.edu/implicit/research/data/resdata.jsp?study=ybalab&days=2‬‬
‫ה‪ jsp-‬הזה שולף קבצי דאטה שניתן לראות אותם מיד מהדפדפן‪ .‬הוא ישלוף את כל הנתונים שנצברו‬
‫לניסויים שיש בשמם את המילה ‪ ybalab‬מהיומיים האחרונים‪ .‬ניתן לשנות את הערך שבא אחרי ה‪-‬‬
‫=‪ study‬וגם את הערך של מספר הימים המוגדרים אחרי ה‪.day= -‬‬
‫מה בודקים בנתונים‪ :‬שכל המשתנים שאתם מצפים שיישמרו אכן נשמרו‪ ,‬ושאין שום דבר שבולט לכם‬
‫כבעייתי‪.‬‬
‫לאחר הבדיקה‪ ,‬הגיע הזמן להעביר את הניסוי מ‪ ,dev2-‬שהוא שרת הפיתוח‪ ,‬ל‪ dev1-‬שהוא שרת‬
‫הבדיקה‪ .‬בשונה מ‪ ,dev2-‬השרת ב‪ dev1-‬הוא בדיוק אותו השרת כמו שרת הייצור (השרת שבו‬
‫הניסוי ירוץ בסופו של דבר)‪ .‬לכן‪ ,‬אם ניסוי עובד כראוי ב‪ ,dev1-‬אז רבים הסיכויים שהוא ירוץ כראוי‬
‫גם בשרת הייצור‪.‬‬
‫איך מעבירים ל‪ ?dev1-‬מבקשים מיואב להוסיף את תיקיית הניסוי ל‪ .dev1-‬לאחר שהניסוי עלה ל‪,dev1-‬‬
‫יש לבדוק אותו שוב‪ ,‬בהתאם לסעיפים שכבר פורטו‪ .‬הכתובת ל‪( dev1-‬בדפדפן) היא בדיוק כמו‬
‫הכתובת ל‪ dev2-‬רק עם ‪ http‬במקום ‪.)http://dw2.psyc.virginia.edu/implicit( https‬‬
‫אחרי שבטוחים שהניסוי עובד‪ ,‬מבקשים מיואב לבקש מהאחראי לכך בוירג'יניה‪ ,‬להעביר את הניסוי‬
‫לשרת הייצור‪ .‬כעבור כ‪ 24-‬שעות‪ ,‬הניסוי אמור להיות בשרת הייצור‪ ,‬מוכן לפעולה‪.‬‬
‫יום לאחר התחלת ההרצה‪ ,‬צריך להתחיל לבדוק את הנתונים‪ .‬אם מדובר בניסוי שמצטרפים אליו‬
‫עשרות נבדקים ביום‪ ,‬אז חשוב לעשות זאת במהירות רבה‪ .‬אם זהו ניסוי שאנחנו למעשה מריצים‬
‫במעבדה‪ ,‬הזמן פחות קריטי‪ ,‬אבל חשוב לעשות זאת בטרם הצטרפו נבדקים רבים‪.‬‬
‫כדי להוריד את קבצי הנתונים‪ ,‬יש לעשות את הדבר הבא‪ ,‬מיד עם העלאת הניסוי לשרת הייצור (אפשר‬
‫גם לפני‪-‬כן)‪:‬‬
‫‪ .1‬בכתובת ‪https://rde.projectimplicit.net/‬‬
‫‪ .2‬שם משתמש‪ .ybalab :‬סיסמה‪ybalabybalab :‬‬
‫‪ .3‬למטה‪ ,‬יש ללחוץ על כפתור ‪.create‬‬
‫‪ .4‬לכתוב את שם הניסוי (כפי שהוא מוגדר בקובץ ה‪ .)expt-‬למשל‪.ybalab.yuval.arabeleft.0001 ,‬‬
‫‪ .5‬לבחור ‪.Data Access Study‬‬
‫‪ .6‬לסמן את הניסוי בתור‪.‬‬
‫‪ .7‬ללחוץ ‪.submit‬‬
‫‪ .8‬כעת תוכלו לעבור ל‪ pending-‬למעלה‪ ,‬ותראו שהניסוי ממתין לאישור‪.‬‬
‫‪ .9‬ברגע שהניסוי יאושר‪ ,‬יואב יקבל אימייל ואולי יידע אתכם‪ .‬בכל מקרה‪ ,‬ניתן לבדוק מדי פעם אם‬
‫הניסוי אושר‪.‬‬
‫‪ .10‬לאחר שהניסוי אושר‪ ,‬הוא יהיה תחת תור ה‪( running-‬ניתן לעבור אליו באמצעות הסרגל העליון של‬
‫אתר ה‪.)rde-‬‬
‫‪ .11‬בחרו את הניסוי שמעניין אתכם‪ ,‬ולחצו ‪.data access‬‬
‫‪ .12‬בחרו ‪ Research‬ו‪( Warehouse-‬הערה‪ :‬אם ה‪ jsp-‬לשליפת דאטה משרתי הבדיקות (‪ dev1‬ו‪-‬‬
‫‪ )dev2‬לא עבד‪ ,‬ניתן לבחור ‪ Research‬ו‪ ,Test-‬כדי להוריד את הדאטה שנצבר בעת הבדיקות‬
‫שלכם בשרתי הבדיקות)‪.‬‬
‫‪ .13‬להוראות נוספות כיצד לקרוא‪ ,‬יש מדריך נוסף של האתר האמריקאי‪.‬‬
‫‪ .14‬קובץ ה‪ zip-‬שתורידו‪ ,‬יכלול כמה קבצי ‪ .txt‬כדי לקרוא אותם ב‪ ,sas-‬ראו את המדריך המתאים‪.‬‬