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

כשמי שעובד איתנו ניסה את התוכנה בעיירה רחוקה, יכולנו לראות את היומנים שלה כמעט בזמן אמת. מתוך היומנים ראינו מחשב קטן בהרבה מזה שאנחנו בונים עליו: 4 ג׳יגה־בייט זיכרון (RAM, מרחב העבודה של המחשב בזמן שתוכנות רצות), לעומת 64 ג׳יגה־בייט במחשב הפיתוח שלנו. בהתחלה חשדנו בזיכרון. אחר כך גילינו שהמעבד הוא שהגביל. כך או כך, לא לקחנו בחשבון את גודל המחשב, וזה שינה את החשיבה שלנו.
מה זה יומן?
יומן (Log) הוא מה שתוכנה רושמת על עצמה: מה התחילה, מה סיימה, מה השתבש, עם השעה של כל שורה. כשמשהו מתקלקל רחוק מאיתנו, היומן מאפשר לקרוא מה קרה.
ציון ברגע רצה על מחשבים שלא נגענו בהם מעולם. הם נמצאים בבתי ספר, לעתים הרחק מאיתנו, בקהילות שבהן התמיכה הטכנית דלה או לא קיימת. כשמשהו משתבש, איש לא שולח דוח תקלה מסודר, ולא תמיד מורה אפילו שמה לב לבעיה לפני יום המבחן.
לכן שאלנו את עצמנו מההתחלה שאלה פשוטה: איך רואים מה התוכנה עושה שם, בלי לבקש מאף אחד לעשות כלום?
בקצרה
- היומנים ממחשב של מי שניסה את התוכנה בעיירה רחוקה הראו מחשב קטן בהרבה משלנו: 4 ג׳יגה־בייט זיכרון, לעומת 64.
- התוכנה כותבת יומן של אירועים ומעלה אותו בערך כל חצי דקה. אם אין אינטרנט, התור פשוט מחכה.
- היומנים אמורים לשאת אירועים ולא שמות תלמידים או תוכן מבחנים. בלי הכתובת של שירות ההעלאה שלנו, התכונה כבויה.
- בהתחלה חשדנו בזיכרון, ואחר כך גילינו שהמעבד הוא שהגביל. אי אפשר לשנות את החומרה של המשתמש, ולכן הקוד מנהל את העומס בזהירות: בדיקת זיכרון פנוי, תצוגה קלה יותר, הערכה של זמן הבדיקה לפי הקצב האמיתי של המחשב ובדיקה של מחשב חלש.
רעיון ישן ששרד את המעבר ל־Go
הגרסה הראשונה של הרעיון מופיעה בהיסטוריית הפרויקט ב־19 בפברואר 2026, כשהתוכנה עוד הייתה בנויה על Electron (נפתח בלשונית חדשה): תור קטן ששומר דברים להעלאה ומעלה אותם כשאפשר. כשעברנו ל־Go (נפתח בלשונית חדשה) העברנו אותו איתנו, ומסמך ההחלטה שלנו (פתק קצר שכתבנו כשבחרנו בין אפשרויות) מ־15 במאי 2026 מתאר את התכנון.
מה זה תור?
תור (Queue) הוא שורת המתנה. התוכנה מעמידה בתור כל יומן, שולחת אותם אחד אחרי השני כשאפשר, ושומרת את אלה שלא נשלחו עד שהחיבור חוזר.
הרעיון במילים פשוטות:
- התוכנה כותבת יומן תוך כדי עבודה: מה קרה, שורה אחרי שורה.
- רכיב עזר ברקע מעלה את יומן היום בערך כל חצי דקה, ומחזיק תור של כל מה שעוד לא נשלח, שמור בדיסק. אם המחשב נסגר באמצע, התור שורד ומנסה שוב אחר כך.
- אם אין אינטרנט, שום דבר לא נשבר. התור פשוט מחכה.
- ההעלאה מגיעה לאחסון בענן שאנחנו מפעילים, בענן הפרטי שלנו. במחשב אין סיסמה או מפתח לאחסון הזה, אלא קישור העלאה מוגבל בזמן שיכול לכתוב דבר אחד בלבד. מי שימצא את הקישור יוכל, במקרה הגרוע, להניח שם קובץ אחד.
מה זה רכיב עזר ברקע?
רכיב עזר ברקע (Worker) הוא חלק קטן מהתוכנה שעושה עבודה בשקט בצד, כדי שהחלק הראשי לא ייתקע. כאן הוא מטפל בהעלאה בזמן שהתוכנה ממשיכה לעבוד.
בחרנו בזה על פני החלופות מסיבות פשוטות, שמסמך ההחלטה מונה:
- שירות יומנים של צד שלישי היה דורש מפתח סודי בתוך כל עותק של התוכנה.
- כניסה מרחוק למחשב של בית ספר אינה אפשרית, כשאין לבתי הספר כתובת קבועה או איש מחשבים.
- לבקש ממורה למצוא קובץ יומן ולשלוח אותו במייל זה לא תהליך תמיכה.
מה נשלח ומה לא
היומן הוא תיעוד של אירועים תפעוליים: התוכנה עלתה, שלב הסתיים, שלב נכשל, ועובדות מסוימות על המחשב שבו היא רצה. הכלל שכתבנו הוא שיומנים לא נושאים שמות תלמידים, תוכן מבחנים או פרטים אישיים אחרים, ותכננו את היומנים סביב הכלל הזה.
לכל התקנה יש זהות אקראית שהתוכנה יוצרת לעצמה בהפעלה הראשונה. ממנה התוכנה גוזרת שם קוד ידידותי משתי מילים ומספר, כדי שנוכל להבדיל בין התקנות בלי לשאול איזה בית ספר הוא איזה. השם לא אומר מי בית הספר.
ההעלאה מתרחשת רק אם לתוכנה נמסרה כתובת של שירות ההעלאה שלנו. בלי הכתובת הזו כל התכונה כבויה, התוכנה רצה לגמרי בלי חיבור, ושום יומן לא יוצא מהמחשב. מסמך ההחלטה אומר שזו ברירת המחדל בכל התקנה שבה לא הדלקנו את זה במכוון.
הדאגה: האם זה בכלל יעבור?
מי שעובד איתנו בדק את התוכנה בעיירה רחוקה. בקהילה שהתוכנה מיועדת לה, רבים משתמשים בשירותי אינטרנט מסונן, מסנן שנמצא בין המחשב לאינטרנט ומחליט לאילו אתרים ושירותים מותר להגיע, ולא היה לנו מושג אם חיבור לענן הפרטי שלנו יעבור או ייחסם. חסימה הייתה אומרת שאנחנו עיוורים.
זה לא נחסם. היומנים הגיעו, ויכולנו לראות אותם כמעט בזמן אמת בזמן שעבדו עם התוכנה.
ההפתעה: המחשב היה קטן
בהתחלה האשמנו את הזיכרון. ביומנים של המחשב ההוא ראינו את המפרט שלו: 4 ג׳יגה־בייט זיכרון, לעומת 64 ג׳יגה־בייט במחשב הפיתוח שלנו. לא לקחנו את זה בחשבון, וזה שינה את החשיבה שלנו.
במחשב גדול כמעט הכול עובד. במחשב קטן, תוכנה שמחזיקה הרבה בזיכרון או עושה הרבה דברים בבת אחת נהיית איטית או קורסת. בנינו על מכונה גדולה פי כמה מזו שחשובה באמת.
מה יצא מזה:
- החלק שמייצר את קובצי ה־PDF של המבחנים בודק עכשיו כמה זיכרון פנוי לפני שהוא מתחיל כל עותק נוסף, ונעצר כשהמחשב עמוס.
- תצוגת הדף של המבחן עוברת למצב קל יותר במחשב חלש. ההחלטה מתקבלת בזמן הריצה, ולכן אותו עותק של התוכנה מתאים גם למחשב מהיר וגם למחשב איטי.
- מסך הסריקה מעריך כמה זמן תימשך בדיקת המבחנים לפי הקצב של אותו מחשב בפועל, כדי שמחשב איטי לא ייראה תקוע.
- הבדיקות האוטומטיות שלנו כוללות עכשיו תרחיש של “מחשב חלש”, עם שתי ליבות ו־4 ג׳יגה־בייט, תחת עומס כבד.
התצוגה הקלה יותר מגיעה ממסמך החלטה מ־23 באוקטובר 2026, והערכת הזמן ממסמך החלטה מ־25 באוקטובר 2026.
מה אנחנו לא יכולים לטעון
חשוב לנו להיזהר, כי מדובר בבית ספר. היומנים אמורים לשאת אירועים ולא תוכן. לא ערכנו ביקורת שמוכיחה שיומן לעולם לא יכול להכיל משהו אישי, ובקוד שקראנו לא מצאנו מסך שבו מוסבר לבית הספר שיומנים נשלחים. מסמך ההחלטה אומר שהשליחה אמורה להיות בלתי נראית למורה. אנחנו חושבים ששווה להסביר זאת לבתי הספר בפשטות, ומעדיפים לומר מה שאנחנו יודעים על פני משפט שנשמע טוב יותר מהעובדות.
מה למדנו
לראות את המכונה היה חשוב יותר ממה שציפינו. מחשב קטן בעיירה רחוקה לימד אותנו משהו שבנייה על מחשב גדול לא לימדה אותנו אף פעם. אם אתם שולחים תוכנה למקומות שאי אפשר לבקר בהם, דאגו שתוכלו לראות אותה, והיו ישרים לגבי מה שאתם רואים מול מי שעובדים איתה.
נ״ב: גילינו אחר כך שחשדנו בגורם הלא נכון. זה לא היה הזיכרון, אלא המעבד. כל הדרך, מהרגע שהסריקה הגולמית מגיעה ועד שהמורה רואה את הציונים, מוגבלת על ידי המעבד (CPU) של המחשב. הגענו למסקנה הזאת בעזרת כלי בדיקה מוכנים של מיקרוסופט. אין הרבה מה לעשות בעניין, כי זו החומרה של מי שמשתמש בתוכנה. מה שאפשר לעשות הוא לכתוב את הקוד כך שינהל את העומס בזהירות, כדי שמחשב צנוע לא יקרוס בגללנו.
שום דבר בסיפור הזה לא מתאים לחיפוש.
עוד סיפורי מקרה לקריאה
קודם כול בלי אינטרנט, אבל האם יש אינטרנט? מלמדים תוכנה לבדוקציון ברגע עובדת בלי אינטרנט, ובכל זאת כמה תכונות צריכות אותו. להבדיל בין שני המצבים התברר כקשה יותר מלשאול את הדפדפן או להסתכל על הכבל.
“למה אי אפשר פשוט לסרוק?” איך התחילה ציון ברגעהכול התחיל במייל אחד, עם שאלה פשוטה. זה הסיפור כפי שבעל הפרויקט מספר אותו: החיפוש הראשון, השוואה ללוטו, זיכרון מילדות על מילוי עיגולים, ולמה בנינו קורא משלנו.