איך להמנע מבושות כשאקספלורר משתדרג?

והפעם פוסט מיוחד למתכנתים שעובדים בממשלה ובמוסדות ממשלתיים.

לפני פרק זמן מסוים הייתי צריך לעשות תאום מס לאשתי. ללא מחשבה מיותרת נכנסתי עם הדפדפן שלי לאתר רשות המיסים על ממנת לשלוח את הפרטים שלי לממשלה. כמובן שקיבלתי את ההודעה הזו:

בשלב זה, הישום תומך בדפדפן Internet Explorer בלבד!
בשלב זה, הישום תומך בדפדפן Internet Explorer בלבד!

אין לי כוח להכביר מילים על כך שממשלת ישראל מכריחה אותי בשנת 2014 להשתמש בדפדפן הזה. ואיזה סוג מתכנת אתה צריך להיות כדי לעשות browser detection ועוד להוסיף חטא על פשע ולהקפיץ alert (שנת 2014 להזכירכם) למשתמשים. בואו נעמיד פנים ששפכתי אש וגופרית במשך חצי עמוד ונמשיך הלאה.

חיטטתי במשך חצי שעה בתפריט ה'התחל' של החלונות כדי להעלות באוב את הדפדפן. ניערתי אותו מהאבק ונכנסתי בששון ובשמחה אל אתר רשות המיסים… מה רבה הפתעתי כאשר ראיתי את הדבר המופלא הבא:

הסבר טכני מפורט על הכנסת אתר רשות המיסים ל compatibility list.
הסבר טכני מפורט על הכנסת אתר רשות המיסים ל compatibility list.

דף זה מסביר (למי שאין לו כוח לקרוא) כיצד עלי להכניס את אתר רשות המיסים אל רשימת ה-compatibility של אינטרנט אקספלורר 11. עלי לעשות את זה, כך מוסבר בנועם רב בדף, על מנת שאוכל להשתמש ביישום.
זה ב-ד-י-ו-ק השלב שבו התפוצצתי.

כפי שאתם יודעים, בעבר המאוד רחוק הייתי כלכלן ואני מגלה עניין בדיונים השונים על כלכלה. בזמן האחרון יש טרנד לדבר על פריון ומדידת הפריון. הפריון של העובד הישראלי נחשב כנמוך במיוחד ולא מעט כותבים ישראלים בתחום הכלכלה כגון גיא גרימלנד, אורי כץ וכמובן שבעיקר גיא רולניק עוסקים בפריון (יחד עם עוד מלא נושאים אחרים). באופן עקרוני מודדים פריון באופן הבא: קחו את התוצר המקומי הגולמי: בגדול סך המוצרים והשירותים שמדינה ייצרה ומחלקים אותם בסך שעות העבודה שכולם עבדו. מה שיצא זה הפריון. כמובן שככל שהתמ"ג גבוה יותר והשעות שהושקעו בו מעטות יותר, כך הפריון הוא גבוה יותר.

ולמה קשקשתי על זה? בואו ונסתכל על פאר היצירה של המתכנתים הישראלים בממשלה כפי שאנו רואים אותו כאן. ראשית, היה מי שזיהה את הצורך: האתר לא עובד טוב באינטרנט אקספלורר 10 ומעלה. למה הוא לא עובד טוב? כי הם תומכים יותר טוב בתקנים. הבעיה קיימת. מה עושים איתה? הולכים למעצב גרפי על מנת שיעצב חלון קופץ, הולכים למנהל המוצר או מנהל אחר על מנת שיכתוב את הטקסט וההסבר לחלון הקופץ – גם עבור אינטרנט אקספלורר 10 וגם עבור 11. הולכים למתכנת שיפיק סקריפט שהוא פאר היצירה שיפתח בפני המשתמש את החלון הזה:


if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) { //test for MSIE x.x;
    var ieversion = new Number(RegExp.$1) // capture x.x portion and store as a number
    if (ieversion >= 10)
    window.open("../shaamtemplates/IE10modal.htm", "_blank", "height=700, width=1000 ,scrollbars=1");
    
}
else
    if(!!window.MSStream)
	window.open("../shaamtemplates/IE11modal.htm", "_blank", "height=700, width=1000 ,scrollbars=1");
    else
        alert("בשלב זה, היישום תומך בדפדפן Internet Explorer בלבד !");

וכמובן שיש איש QA שצריך לדבג את זה, ושעות עבודה נוספות אם יש צורך בשינויים (ותמיד יש) מפה לשם הגענו לכמה וכמה שעות טובות שהוקדשו לדבר הזה.

א-מ-מ-ה? בהיי טק האמיתי, כאשר מתכנת נתקל בצורך להתאים את האפליקציה שעובדת רק עם אינטרנט אקספלורר 9 (למשל). הוא יודע שכל מה שצריך על מנת לגרום לאינטרנט אקספלורר 10 ו-11 לרנדר את האפליקציה כאינטרנט אקספלורר 9 זה להכניס ל-HTML את תגית המטא הזו:


<meta http-equiv="X-UA-Compatible" content="IE=9">

הכנסת הקוד שלעיל פשוט גורמת לכל אינטרנט אקספלורר מגרסה 10 ו-11 (וגם הבאות בעתיד הנראה לעין) להריץ את העמוד במוד תאימות לאחור. וכך פותרים בעיה ב-15 דקות + זמן ה-QA. זה הכל. אפשר אפילו להמנע מלהכניס את זה לקוד של האפליקציה שלנו ולגרום לשרת עצמו להחזיר header שיכלול את המידע הזה. ואז אפילו לא צריך לגרום למתכנת לעבוד 15 דקות אלא ל-SysAdmin.

וכך ילדים, בעיה שאני ואחרים פותרים ב-15 דקות, נפתרת בממשלה בכמה שעות עבודה – וזו הסיבה שבעטיה מגיעים לפריון נמוך. ומי משלם על כל השעות האלו? ומה הקשר בין זה לבין יוקר המחיה? על זה נותיר לכותבים ולבלוגרים הכלכליים, שאותם ציינתי קודם לכן, לענות.

אז מה הלקח?

אם במקרה גם לכם יש את הבעיה הזו – כי בעבר בניתם אתר לא תקני למשל, או ששוכרים אתכם לפרויקט הצלה של פרויקט שלא נבנה היטב – דעו לכם שאפשר לקבוע לפי איזה גרסה אינטרנט אקספלורר ירנדר את העמוד. נכון – זה לא תמיד עובד טוב ומושלם, אבל ברוב הפעמים זה עובד.
אם אתם נתקלים בבעיה כלשהי – אולי שווה להשקיע עוד מעט זמן בלפתור אותה כמו שצריך. המידע על המטא תגית הזו לא נמסר לי משמים או הופיע לי בחלום – מיקרוסופט עצמה מפרטת עליו בדוקומנטציה המאוד ברורה שלה. נפלא מבינתי איך מישהו שנשכר לפתור בעיה מסוימת לא משקיע מעט זמן בלמצוא פתרון אמיתי לבעיה ומטפל רק בסימפטום.

במאמר הבא שיוקדש למתכנתי הממשלה, אני מתכוון להסביר על דברים מדהימים נוספים: מרכבות ברזל ללא סוסים, שירותים בתוך הבית והמצאת הגלגל. שווה לכם לקרוא!

פוסטים נוספים שכדאי לקרוא

בינה מלאכותית

Safeguards על מודל שפה גדול (LLM)

פוסט בשילוב עם פודקאסט וסרטון על ההגנות שאפשר להציב על LLM בסביבת פרודקשן

תמונה של עציץ, רספברי פיי ורמקול
רספברי פיי

לגרום לעציץ שלכם לדבר

כך תשתמשו ברספברי פיי, חיישנים וגם בינה מלאכותית שמותקנת על הרספברי פיי (כן) כדי ליצור… עציץ המדבר.

מיקרו בקרים

חיבור מצלמה למיקרובקר

חיבור מצלמה למיקרו בקר ויצירה של מצלמת אבטחה מרחוק בעלות של 20 שקל.

רספברי פיי

התקנת OpenCanary על רספברי פיי

מה זה OpenCanary ואיך אפשר להתקין אותה על רספברי פיי ולשדרג את אבטחת הרשת הביתית או המשרדית.

תמונה מצוירת של רובוט שמנקה HTML
יסודות בתכנות

סניטציה – למה זה חשוב

הסבר על טכניקה פשוטה וידועה מאד שאנו מפעילים על מידע לפני שאנחנו מציגים אותו ב-HTML באפליקציה או באתר.

גלילה לראש העמוד