עמדת תכנות מינימליסטית: האתגר

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

תאורת LED של מקש Capslock. לא מובן מאליו.
תאורת LED של מקש Capslock. לא מובן מאליו.

כשהייתי צעיר – כן, השנים חולפות ואתם תשמעו יותר ויותר סיפורים כאלה… בכל אופן, כשהייתי בגיל התיכון או קצת אחרי, אם מישהו היה מציע מחשב עם מהירות מעבד 700MHz וזיכרון בנפח 512MB, ועוד כזה שאפשר להחזיק בכף היד, אנשים היו מוכנים להרוג למענו (או לפחות להציע עבורו עשרות אלפי שקלים, ואל תשכחו שגם השקל היה שווה יותר). לפני כשנה, כשהצעתי למכור Raspberry Pi B+ יד שנייה בפחות ממאה שקלים, אף אחד לא טרח אפילו להסתכל בכיוון.

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

בלי קשר, הסתקרנתי כבר מזמן לנסות מקלדת מכנית, אבל לא התחשק לי לשלם את העלות הגבוהה של מקלדת אנגלית-עברית בחנויות המקומיות. אלא שלתכנות אולד-סקול לא צריך עברית, וכך יכולתי להזמין מסין מקלדת אנגלית-בלבד במחיר שעוד נחשב סביר. התקנתי, אם כן, על הפיי הוותיק את מערכת ההפעלה המינימליסטית ונטולת הגרפיקה Raspbian Lite, שמגיעה עם עורך טקסט מינימליסטי עוד יותר (nano) וקומפיילר gcc. חיברתי למחשב הצנוע מסך HDMI ואת המקלדת החדשה (שמוגדרת "לגיימרים" ולכן יש בה אופציה לכל מיני מופעי אור מיותרים מתחת למקשים) והתחלתי לעבוד.

אני כבר אתכנת בחושך
אני כבר אתכנת בחושך

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

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

mkdir ~/usbstick

ולבסוף "מרכיבים" את הזיכרון הנייד על התיקייה הזו, כך:

sudo mount /dev/sda1 ~/usbstick

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

setterm -blank 0 -powerdown 0

שמח וטוב לכ כתבתי תוכנה קטנה או שתיים, ואז הבחנתי בעוד בעיה: מקש Capslock אמנם תפקד נכון, אבל הלד המובנה שבו לא נדלק, בעוד שהלדים של Numlock ושל Scroll lock כן פעלו. בהתחלה חשדתי במקלדת עצמה (סינית כאמור), אבל כשחיברתי אותה למחשב Windows הכול פעל כשורה. אז זה משהו בגרסה הזו של לינוקס.

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

echo keycode 58 = Caps_Lock |sudo loadkeys -

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

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

להרשמה
הודע לי על
6 Comments
מהכי חדשה
מהכי ישנה לפי הצבעות
Inline Feedbacks
הראה את כל התגובות

אתה יכול להתקין Octoprint על ה Raspberry Pi
ולשלוט על המדפסת מרחוק.

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

אני בכל זאת ממליץ, יש לך את כל המרכיבים. וסך הכל אתה צריך כרטיס microSD פנוי. התקנה של 10 דקות והכל עובד.
מומלץ אפילו רק לטובת סרטי ה stop-motion המעניינים שאפשר לעשות.