פתגם ידוע אומר שאין דבר קבוע יותר מהזמני, וגם כשאנחנו כותבים קוד זמני יש לו נטיה מרגיזה להגיע עד הקוד הסופי ולחולל שם צרות. הנה שיטה קטנה שהמצאתי כדי למזער נזקים מהסוג הזה.
ארכיון הקטגוריה: באגים
זבל סיני זול
כולם יודעים ש"מה שזול עולה ביוקר", ושהמחיר הנמוך של מוצרים אלמוניים מסין מתבטא באיכות הירודה שלהם. אבל איך מתבטאת בפועל איכות ירודה? הנה שתי דוגמאות מהחיים.
B עבור "ביזיון"
לפני חודש וקצת התלהבתי מה-ATmega328PB, עד כדי כך שבחרתי בו כבסיס לפרויקט של לקוח. מסתבר שהשמחה היתה מוקדמת מדי: נראה שלג'וק הזה יש חיסרון אחד משמעותי ש"שכחו" לציין במסמכים הרשמיים, ושאלמלא הייתי זהיר במיוחד, היה מחריב לי את כל הפרויקט. וזו רק ההתחלה!
סטנדרטים? מי צריך את זה?
סיפור קצר ומקומם על סימון של רכיבים, ועל למה חייבים לקרוא תמיד את ה-datasheet של כל רכיב ורכיב…
צ'יפים ישנים, צרות חדשות
אם יש לכם לוחות ארדואינו לא מקוריים ישנים (דגמי Duemilanove או Uno עם שבב תקשורת של Prolific או FTDI), ומערכת הפעלה Windows חדשה, סביר להניח שהלוחות יפסיקו – או כבר הפסיקו – לעבוד. למה זה קורה ומה עושים?
במקרה הכי גרוע
נניח שאומרים לכם לפתח מערכת מבוססת ארדואינו, עם האילוץ הבא: בכל שעה של פעילות המערכת, יש סיכוי של אחד למאה שבייט מסוים איפשהו במיקרו-בקר ישתנה פתאום לערך אקראי, או שהלחמה כלשהי תתנתק למשך מספר שניות. האם תסכימו לקבל עבודה כזו? ומה תעשו כדי למנוע, או לפחות למזער, את הנזקים הפוטנציאליים?
מה המהירות האמתית של Serial?
חקירה קצרה שמוכיחה כי בעולם המיקרו-בקרים, אסור להניח שום הנחות ואי אפשר לסמוך על אף אחד.
לצפות לבלתי-צפוי
כל פרויקט, גם אם הוא נראה בהתחלה פשוט וקל, יכול להיקלע לקשיים טכניים שמעולם לא נתקלנו בהם. הדרך היחידה לפתור אותם היא לשמור על ראש פתוח, להשקיע ולא לוותר – מה שעשוי להיות קשה במיוחד כשמדובר בפרויקט ללקוח. הנה דוגמה.
סיפור קצר על Brown Out
לפני שנה ומשהו יצרתי אורות מהבהבים לכבאית צעצוע של הילדים, ולאחרונה התבקשתי ליצור אורות דומים, אך הפעם כיחידה עצמאית. התכנות וההרכבה הלכו בקלות – בכל זאת, לומדים מהניסיון – אבל מתקפה חוזרת של באג מוזר הכריחה אותי לשים לב לנושא שדי התעלמתי ממנו עד היום.
Programmer Not Responding
זהו סיפור של תעלומה ומסתורין, בו חקירה מקיפה ועקשנית מצליחה לחשוף כנגד כל הסיכויים את האמת מאחורי הבלתי-אפשרי לכאורה, ולהחזיר לחיים מקרה אבוד. או, במילים פשוטות יותר, איך תיקנתי לוח ארדואינו מקולקל.