|
||||
|
||||
"לוח הבקרה" של משרד הבריאות הפסיק להתעדכן מיום ראשון האחרון בערב. ניסיתי לברר מה קורה אצלם באמצעות השיטה אותה גליתי ושעליה ספרתי בתגובה 739461 אבל הפעם ענתה לי אישה שאמרה שהם לא מטפלים בקורונה ועלי לפנות ל"קול הבריאות" הזכור לרע (האם השינוי הוא מסימני ממשלת "השינוי"?). אני כבר יודע שלפנות ל"קול הבריאות" הוא מהלך חסר תוחלת, ונותר רק לחכות. |
|
||||
|
||||
לכתבנו נודע שיש תקלה ואין צפי לגבי זמן התיקון. את קו הבריאות באמת לא ניתן להשיג, אבל הם פתחו אפשרות לשלוח להם הודעות ווטסאפ והשרות הזה דווקא פועל להפליא1. לחברת החשמל, אגב, המושג "אין צפי" נשמע לא מספיק ידידותי למשתמש ולכן הם מודיעים מייד עם פתיחת התקלה על צפי לזמן תיקון של ארבע שעות, ואת זה הם אמורים לעדכן עם התקדמות התיקון אלא שאינם טורחים (לפחות במקרים בהם זה היה חשוב לי ולכן בדקתי). ניסיתי לשכנע אותם שבהרבה פעמים המידע הזה חשוב ללקוחותיהם ושמן הראוי שחלק מהטיפוטל בתקלות יכלול עדכון זריז ככל האפשר לגבי המצב והצפי לחזל"ש. אז ניסיתי. ____________ 1- החלק של המשלוח. הם לא התחייבו לענות. |
|
||||
|
||||
תן לי לנחש - הם הגדירו שני בייטים למספר היומי של החולים, וכשזה עבר את המספר הזה (~65K, ממש באזור המדווח) המערכת קרסה. ועכשיו צריך לשנות את כל הגדרות המשתנים. |
|
||||
|
||||
הנתון המעודכן לגבי אתמול - 71 אלף מאומתים - הוא בול בפוני לפי ההיפותיזה שלי :) |
|
||||
|
||||
שלשום עוד יותר טוב עבור התיזה שלך: "למעשה, מתחילת החודש ועד שלשום – אז נרשם שיא של יותר מ-65 אלף מאומתים ביממה אחת". (חוכמת הדיעבד שלי מתפלאת מאד איך לא הריצו במשרד הבריאות סימולציות עם מספרים גדולים בשבועות בהם התכוננו לגל הזה, שבסך הכל מתנהג כצפוי. האתר היפה שהם העלו בזמן קצר יחסית דווקא מעיד על יכולות לא מבוטלות שלהם). |
|
||||
|
||||
תיאוריה סבירה בהחלט. מעלה אצלי זכרונות מהימים בהם היינו עושים שמיניות באויר כדי לחסוך כל ביט בזכרון, ולא פחות חשוב, על הדיסק. לפעמים זה הגיע עד כדי שמירת התאריך בשני בתים: 7 ביטים עבור השנה ("באג אלפיים") 4 עבור החודש ו-5 עבור היום בחודש, עם כל הסרבול וההאטה המתחייבים. לא חשבתי שבימים אלה יש עוד מישהו שמגדיר משתנים בינאריים שתופסים פחות מארבעה בתים, אבל ייתכן שבמשרד הבריאות עוד מועסקים עובדים שרכשו את ההרגלים שלהם יחד איתי. |
|
||||
|
||||
בטח שיש עוד 'מישהו', גם אצלנו (במוצר שאני עובד עליו) כשיש כמות נתונים גדולה, להקטין משתנה מfloat (32 ביט) לשני בתים זו תרגולת רצויה ומועילה. יש היום גם אפשרות לfloat16, אבל עדיין לא נפוצה באופן גורף. |
|
||||
|
||||
כן, אני משער שפה ושם עוד מתייחסים לעניינים האלה, אבל מסופקני אם זה קורה במערכות BO כמו זאת עליה אנחנו מדברים עכשיו. א-פרופו פינת הנוסטלגיה: שנים אחרי כן, כשאחד מהצעירים בסביבתי אמר בנון-שלנטיות "אז נגדיר מטריצה של 100 מגה" כמעט התעלפתי. בשנים בהם קיבלתי את ההכשרה ובהן התגבשו הרגלי העבודה שלי התוכנית כולה היתה מוגבלת בגודלה למשהו כמו 256 K בתים. בעצם גם שנים אח"כ עוד עבדתי עם מערכת תוכנה אחת מעצבנת שהיתה בה הגבלה חמורה עוד יותר על גודל התכנית (אם כי שם המשתנים הוגדרו בנפרד, בשטח נוסף של 64K אאז"נ). ולעניין משרד הבריאות: איזה כיף יהיה אם יתברר שהתקלה נובעת מוירוס מחשבים! |
|
||||
|
||||
אני טוען מזה שנים1 שהגאונות ההנדסית של ביצועי התוכנות על מחשבי שנות השמונים עולה לאין ערוך על אלה של היום, כשכל תוכנה היא כמה ג'יגה בייט זכרון. אני בספק אם אפילו אחוזון יחיד מתוך מהנדסי התוכנה של היום מסוגלים לכתוב סימולטור טיסה שירוץ על מחשב עם 48K זכרון2. 1 ובטח מישהו תכף יחזק את זה בציטוט נשבח שלי מהאייל 2 איזה סימולטור, אפילו מחשבון הם לא יצליחו לכתוב על מחשב כזה. אולי Hello world. |
|
||||
|
||||
מספרם של אותם יחידי סגולה לא היה גבוה אז, ואני לא בטוח שהוא השתנה לרעה. כשנתקלתי לפני כמה שנים בפעם הראשונה בקטע הקידוד הזה (כמדומני בבלוג של גדי אלכסנדרוביץ'): float Q_rsqrt( float number ) המחשבה הראשונה שחלפה במוחי היתה שהשטח התקדם מאד מאז אותם ימים בהם היינו כותבים בקובול "add 1 to a". המחשבה השניה היתה שגם אז היו בטח כמה גאונים שתכנתו ברמה הזאת, ובעצם אולי אפילו הכרתי שטחית מי מהם. העובד הממוצע, אני בטוח שאין צורך להגיד, היה שש ליגות נמוך יותר. מה שכן, העבודה דרשה הכרות עם המחשב ברמה הרבה יותר קרובה לשפת מכונה מה שקורה היום: אמנם רוב הקידוד נעשה בשפות "גבוהות" - כלומר לא באסמבלר - אבל לא היו אמצעי ניפוי שגיאות מתקדמים, כך שנאלצנו לפענח תצלומי זכרון, מה שקרוי Dump.
{ long i; float x2, y; const float threehalfs = 1.5F; x2 = number * 0.5F; y = number; i = * ( long * ) &y; // evil floating point bit level hacking i = 0x5f3759df - ( i >> 1 ); // what the fuck? y = * ( float * ) &i; y = y * ( threehalfs - ( x2 * y * y ) ); // 1st iteration // y = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, // this can be removed return y; } |
|
||||
|
||||
אני לא נחתום, אז אעיד על עיסתי. לפני מספר שנים הייתי צריך לכתוב אפליקציה מורכבת למדי שלרשותה עמדו 64 KB של זיכרון RAM בלבד. התוכנה עצמה רצה מה-Flash שהיה קצת יותר גדול - 256 KB (למעשה כפול, אבל היו שם שני עותקים + Bootrom), אבל כל זכרון העבודה היה ה-RAM גם בגלל זמני כתיבה ארוכים וגם בגלל מגבלה על מספר מחזורי קריאה-כתיבה. היה לא פשוט והצריך פתרונות מחוץ לקופסה (למשל, חישוב של CRC בלי Look-up table). |
|
||||
|
||||
איזי, לא היה לנו לרגע ספק שאתה שם למעלה באחוזון העליון. |
|
||||
|
||||
משרד הבריאות הבריטי נהג לאסוף נתונים בקבצי CSV(!) ולעבד אותם באקסל(!!) בגרסא ישנה(!!!) שתמכה רק ב-64k עמודות. |
|
||||
|
||||
תיקון קל: שורות, לא עמודות. זה אחד מאותם דברים שלו היו קורים כאן היינו אומרים שזה יכול לקרות רק בישראל. |
|
||||
|
||||
זאת כבר לא שמועה. מנכ"ל המשרד מספר על כך בכבודו ובעצמו, ומביע תקווה שהתקלה תתוקן בהקדם. |
חזרה לעמוד הראשי | המאמר המלא |
מערכת האייל הקורא אינה אחראית לתוכן תגובות שנכתבו בידי קוראים | |
RSS מאמרים | כתבו למערכת | אודות האתר | טרם התעדכנת | ארכיון | חיפוש | עזרה | תנאי שימוש | © כל הזכויות שמורות |