חניה בתל-אביב. מה אפשר לומר. רצף המילים בעצמו כבר מעלה בחלקנו אסוסיאציות נוראיות של בזבוז זמן, תסכול, וכעס נורא. כשזה לא עובד, זה הורס לך את היום. מה עוד אפשר לעשות?
אמש, כשהוצאתי את הכלבה, עצרה אותי מישהי ברחוב לשאול אם מותר לה לחנות איפה שחנתה. סיטואציה לא נדירה כל-כך, בהתחשב ברמת המורכבות של החוקים ורמת המעורפלות של השלטים. קיבלתי ממנה את הפרמטרים הדרושים: חנתה בצד ימין, יש לה תו איזורי אבל לא של איזור 1, והיא רוצה לחנות עד הבוקר. שקללתי אותם יחד עם הנתונים בשלט שבתחילת הרחוב, ומסרתי לה את החדשות המשמחות: כן, מותר לה. ערב טוב. אבל תוך כדי שהיא מודה לי, במבט שני על השלט, אני מבין שזה דווקא לא ברור כל-כך: על-אף שהשלט מציין שלושה חוקים שונים לגבי החניה בצד הרחוב, דווקא המקרה הנוכחי נופל בסיטואציה שאינה מוגדרת בשלט. הנחתי שאם המקרה לא מוגדר המשמעות היא שמותר לחנות — אני די בטוח שכך מנוסח החוק — אבל, לא חבל שהשלט לא נותן תמונה מלאה?
מהנדס ממשקי-המשתמש שבי מתעורר ושואל את השאלה: מה לא עובד בשלט הזה? האם אני יכול לתכנן שלט ברור יותר, יעיל יותר? כנראה שכן. האם כדאי לי לעשות את זה? אין לי תוכניות טובות יותר ליום שבת שמשי זה, אז בואו ננסה.
תוכן השלט, למקרה שהטקסט לא ברור מהתמונה:
- חניה בצד זו מוגבלת
- מ-17:00 עד 09:00 למחרת החניה מותרת רק לרכב הנושא תו חניה לאיזור 1
- חניה בתשלום א׳-ה׳ מ-09:00 עד 17:00, ו׳ וערבי חג מ-09:00 עד 13:00
- חניה חינם לרכב הנושא כל תו חניה אזורי של תל-אביב-יפו
השלט הארוך והמסורבל הזה מנסה להעביר הרבה מידע. למזלנו (לא באמת), עברתי באוניברסיטה קורס שלם על סמנטיקה פורמלית בו למדנו להצרין משפטים בשפה טבעית לצורה של לוגיקה פורמלית, כלומר פורמט מדויק שלא משתמע לשתי פנים וניתן לייצר ממנו חוקים לוגיים ברורים.
מה הכוונה? נקח לדוגמא את המשפט הבא בעברית:
ילד אחד חיבק את כל הילדות.
ממשפט זה ניתן להסיק ש: (1) יש ילד (2) כל ילדה חובקה ע״י הילד הזה. או בכמתים לוגיים:
$$\exists x. boy(x) \wedge \forall y. girl(y) \Rightarrow HUG(x, y)$$
כלומר במשפט הקצר הזה מסתתרים שני כללים לוגיים, המחוברים באמצעות וגם. חדי העין ישימו לב שהמשפט לא מבטיח כלל שיש ילדות בעולם – רק שאם יש ילדות, אז כל אחת חובקה ע״י הילד. לרוב בשפה חופשית אנחנו כן מוסיפים את ההנחה הזו, על-אף שלא צוינה במשפט. המחקר הבלשני מפריד בין סמנטיקה לפרגמטיקה בדיוק בשביל דברים כאלו. אבל זו כבר סטייה מהנושא.
הכל ברור עכשיו? ברור שלא. שנאתי את הקורס הזה. אבל בואו ננסה להשתמש בזה בשביל השלט הקטנצ׳יק.
\( \forall d \in DRIVERS, time \in TIME \) | |||
\( EVENING(time) \Rightarrow \) | |||
\( ZONE1(d) \Rightarrow FREE \) | |||
\( \neg ZONE1(d) \Rightarrow NO \) | |||
\( \neg EVENING(time) \Rightarrow \) | |||
\( RESIDENT(d) \Rightarrow FREE \) | |||
\( \neg RESIDENT(d) \Rightarrow \) | |||
\( MORNING(time) \Rightarrow PAY \) | |||
\( \neg MORNING(time) \Rightarrow FREE \) |
די פשוט, לא? האמת שדי התעצלתי, לא הייתי מקבל הרבה נקודות על הפתרון הזה. וחוץ מזה עכשיו אני די מתחרט על החיטוטים במחברות מהקורס, כי אני לא בטוח שזה עזר כל-כך. כן הבנו פה דברים חדשים, שלא ברורים מקריאה שטחית של השלט, כמו למשל שלחונים ללא תו חניה בכלל עדיין יש אפשרות לחניה בחינם (בסופי-שבוע ובחגים). אבל הכתיב הפורמלי מוסיף מורכבות משל עצמו. יכלנו להבין את אותם הפרטים אם היינו מפשטים את המידע לצורה אחרת, קריאה יותר:
ערב | בוקר | סופ״ש | |
---|---|---|---|
תו איזורי 1 | חינם | חינם | חינם |
תו איזורי אחר | אסור | חינם | חינם |
ללא תו | אסור | בתשלום | חינם |
בטבלה קיבלנו את אותה רמת הדיוק, אבל קל לנו יותר להתמודד עם המידע. אנחנו מאומנים בקריאה של טבלאות, הן גיליונות נתונים בעבודה והן לוחות זמנים של רכבות. כשהמידע הוא דו-מימדי, טבלה היא פתרון קלאסי: אנחנו מזהים את שני הקריטריונים שמאפיינים את שני המימדים (במקרה הזה, זמן במימד הרוחבי ותו במימד האנכי), עוקבים אחרי האצבע ומוצאים את המשבצת המתאימה לרגע הזה. כמו חיפוש משבצת במפה באטלס, לפני עידן גוגל מאפס.
אפשר לעשות עוד צעד אחד קטן, כדי לשפר את הממשק של הטבלה באופן משמעותי.
ערב | בוקר | סופ״ש | |
---|---|---|---|
תו איזורי 1 | חינם | חינם | חינם |
תו איזורי אחר | אסור | חינם | חינם |
ללא תו | אסור | בתשלום | חינם |
הקידוד בצבעים תורם להבנה מהירה יותר של המשמעות של כל משבצת. הוא מתקשר לשפה גרפית שאנחנו מכירים כבר ממקומות אחרים, בירוק אנחנו בסדר ובאדום לא. עולם התחבורה מלא כמובן בדוגמאות כאלו. למעשה, בהשוואה לתמרורים אחרים, ההסתמכות של שלט החניה של עיריית תל-אביב על טקסט היא תמוהה – לא פלא שהמשמעות של השלט לא ברורה.
בצורה דומה, אפשר להצרין ולתרגם שלטי חניה דומים ולקבל תוצאה קונסיסטנטית וברורה יותר.
יתרה מכך, אם נניח שבבנין העירייה לא משעמם וברוב המוחלט של המקרים אין וריאציה רבה בחוקים, אלא רוב הרחובות מתאימים לאחד מתוך שלוש-ארבע קבוצות מוגדרות, ניתן לאותת את הקבוצה הזו למשתמשים. חונים חדשים יוכלו להתעלם מכך, אך עם קצת ניסיון יהיה מספיק לזהות את הצבע המאפיין או את שם הקבוצה – במקום לקרוא כל שלט ושלט.
|
|
|
נחמד. אחרי שחשבתי על זה והרצתי בראש כל מיני רעיונות לשלטים כאלה, השלב הבא היה לחפש באינטרנט דוגמאות מוצלחות. אכן, ניקי סיליאנטנג, מעצבת אמריקאית, זיהתה ב-2010 בעיה כזו ופצחה במה שהיא קוראת לו ״guerrilla parking sign redesign״ — היא תכננה עיצוב חדש לשלטים שמבוסס על תצוגה גרפית של הזמן ועל קידוד צבעים. די דומה לטבלאות שציירתי פה. את העיצוב הזה היא הדפיסה כפלאיירים ותלתה לצד שלטי חניה רשמיים ברחבי ברוקלין, בתוספת מקום פתוח בו התושבים בסביבה יכולים לכתוב לה הערות ולתת לה פידבק. במהרה הפרויקט קיבל כיסוי יפה בתקשורת והיא הוזמנה להציע את העיצוב לעיריות ומועצות שונות — נכון לעכשיו 9 ערים בארה״ב מפעילות פיילוטים המבוססים על העיצוב החדש שהיא הציעה. סיליאנטנג מתארת את השתלשלות הפרויקט וממשיכה לעדכן לגביו בבלוג ייעודי, To Park or Not to Park.
אז שוב אני לא ממציא חדשני. את האקזיט שלי לא אעשה פה. אבל מה עם תל-אביב?
נראה שכללי החניה בתל-אביב הם פשוטים יחסית: אין לנו מגבלה אבסולוטית על מקס׳ זמן חניה; החוקים לרוב מתייחסים לאותם בלוקי זמן (א׳-ה׳ 17:00-09:00 וכו׳) ולא משתנים בין ימות השבוע (בערים רבות לו״ז החניה מותאם ללו״ז ניקיון הרחובות, כך שלכל רחוב יש יום בשבוע בו אסור לחנות בו); בסופי השבוע ניתן לרוב לחנות בחינם בכל רחוב. הסיבוך היחיד שיש לנו הוא התו האיזורי, המקנה לתושבי האיזור המקומי לחנות בחינם תמיד, ולתושבי איזורים אחרים לחנות בחינם בחלק מהזמן. חלק מצדדי הרחובות אף מוקדשים בלעדית לבעלי התו המקומי, כדי לספק מקומות חניה לתושבי הרחוב.
אז אמור להיות די פשוט לממש רעיון דומה לתל-אביב.
שלטים ברורים יותר \(\Leftarrow\) אנשים שמחים יותר \(\wedge\) אכיפה פשוטה יותר.
אממ כן, סליחה. בלי עוד הצרנות.
אם חוששים משינויים גדולים, אפשר אפילו לשלב את הטבלה בשלט הקיים, כאמצעי עזר.
האם העירייה שלנו חדשנית ורספונסיבית מספיק כדי לקבל רעיון כזה וליישם בעצמה? או שמא גם כאן דרוש פרויקט גרילה?