רגע בולט לקהילה של GDE: לארס קנודסן

לארס נודסן הוא מומחה למפתחים של Google, ודיברנו איתו על האופן שבו מכשיר בשווי 10 $יכול להפוך מחשבים לנגישים יותר לאנשים עם מוגבלויות.

Monika Janota
Monika Janota

לארס מציג על במה עם שני דוברים נוספים.

Monika: מה נתן לך השראה להפוך למפתח? במה אתה עסוק כרגע?

לארס: קיבלתי את תואר ה-MSC בהנדסה, אבל למעשה העניין שלי בטכנולוגיה התחיל הרבה מוקדם יותר. כשהייתי ילד בשנות ה-80, לאבא שלי היה חברת מחשוב שעבדה בתחום העיצוב הגרפי. לפעמים, במיוחד במהלך חופשות הקיץ, הוא היה לוקח אותי לעבודה איתו. לפעמים חלק מהעובדים שלו שימו לב אליי. היה בחור ממש חכם שפעם אמר לי, "לא, אני צריך לעשות קצת עבודה, אבל הנה מדריך C, ויש שם מחשב. כך מתחילים מהדר C. אם יש לך שאלות, אשמח לעזור". התחלתי לכתוב טקסטים קצרים שתורגמו לדברים שהמחשב יכול להבין. זה נראה לי קסום. הייתי בן 11 בתחילת כיתה ז', והצלחתי ליצור יישומים קטנים לחברים שלי לכיתה או לשימוש בבית הספר. ככה זה התחיל.

לאורך השנים עבדתי בחברות רבות, כולל Nokia, Maersk ו-Openwave. בהתחלה, כמו במקצועות רבים אחרים, מכיוון שאתם יודעים קצת יותר, אתם מרגישים שאתם יכולים לעשות הכול, אבל עם הזמן אתם לומדים שלכל חברה יש דרך מסוימת לעשות דברים.

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

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

Monika: האם הייתם מעורבים בקהילות מפתחים לפני שהצטרפתם לתוכנית מומחי המפתחים של Google?

לארס: כן, השתתפתי בפגישות ובכנסים. יצרתי קשר לראשונה עם הקהילה כשעבדתי ב-Nokia. בסביבות 2010 פגשתי את קן רודה כריסטיאנסן, שהפך ל-GDE לפניי. הוא נתן לי השראה לראות איך טכנולוגיות באינטרנט יכולות להועיל לאנשי טכנולוגיה מתחילים במדינות מתפתחות. נדרשים כמה שנות ניסיון של פיתוח ופריסה של פתרונות באמצעות C++ , C# או Java, אבל כל מי שיש לו גישה למחשב, לדפדפן ולפנקס יכול להתחיל לפתח אפליקציות מבוססות-אינטרנט וללמוד מהר מאוד. ניתן לפתח אפליקציה שפועלת באופן מלא תוך שימוש במשאבים מוגבלים, ולהגדיל את החשיפה ללא צורך. לכן אני קורא לאינטרנט 'סטאק תוכנות דמוקרטי' מאוד.

אבל בחזרה לקהילה – אחרי זמן מה התעניינתי בתקינה של אתרים, ובאילו בעיות קיימות טכנולוגיות מתקדמות באינטרנט. התנסיתי ביכולות חדשות בדפדפן לפני ההשקה. עבדתי ב-Nokia באותו זמן ופיתחתי למכשיר דגל מבוסס Linux, ה-N9. הדפדפן שבנינו היה מבוסס WebKit וצברתי ניסיון רב בפיתוח תכונות לפרויקט קוד פתוח גדול. בשנים שאחרי העזיבה של Nokia, השתתפתי בכנסים ובמפגשים באינטרנט, ולכן היה הגיוני להצטרף לקהילת GDE ב-2017.

אני ממש אוהב את העבודה בקהילה ואת כל מה שאנחנו עושים ביחד, במיוחד בכנסים של מפתחי Chrome לפני מגפת הקורונה, שבהם סייעתי בעבודת הצוות לצד חבורה של מהנדסי Google מדהימים ומומחי GDE אחרים.

Monika: איזו עצות תיתנו למפתח/ת צעיר/ה שרק מתחיל/ה את הקריירה המקצועית שלו ולא בטוחים באיזה מסלול לבחור?

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

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

Monika: מה העתיד של טכנולוגיות האינטרנט?

לארס: אני חושב שבמשך כמה שנים האינטרנט מסוגל לספק פלטפורמה מלאה לאפליקציות בשטח גדול, גם לצרכנים וגם לעסקים. בצד השרת, טכנולוגיות אינטרנט מציעות חוויה חלקה, במיוחד למפתחי קצה קדמי שרוצים ליצור רכיב לקצה העורפי. קל יותר להם להתחיל לעבוד עכשיו. אני יודע/ת שאנשים השתמשו גם ב-Firebase וגם בהירוקו כדי לבצע את העבודה. והמגמה הזו תגדל – טכנולוגיות אינטרנט יספיקו כדי לבנות פתרונות מורכבים מכל סוג שהוא. לדעתי יכולות האינטרנט - Project Fugu 🐡 באמת מממשות את הפוטנציאל הזה.

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

תומאס: עברתם מאוד מפיתוח C במחשב אקראי ועד לפריצה לחומרה. איך עשית את זה?

לארס: התחלתי לפרק הרבה רכיבי חומרה שהיו לי בבית. אבא שלי לא תמיד היה מאושר כשלא הצלחתי להרכיב את זה מחדש. עם הזמן למדתי כיצד לבנות כמה מכשירים קטנים, אבל זה באמת הפך למציאות הרבה יותר מאוחר, כשהצטרפתי ל-Nokia, שבה קיבלתי את החוויה המוטמעת שלי. הייתה לי הזדמנות לבנות שומרי מסך קטנים, רכיבים לטלפונים מסדרה 30. ממש התעניינתי בזה, ויכולתי לחשוב מחוץ לקופסה. הם הקצו לי משימה לבנות משחק נחש למכשירים האלה. זו הייתה חוויה מעניינת מאוד. ההבדל העיקרי בין בניית מערכות מוטמעות לבין רוב הדברים האחרים (כולל אינטרנט) הוא שאתה משאיר טביעת רגל קטנה — אין לך הרבה מקום או זיכרון להשתמש בו. כשבניית Snake, נפח ה-RAM שהיה זמין לי היה פחות משליש ממאגר הנתונים הזמני של הפריים (בסביבות 120x120 פיקסלים). רציתי למצוא דרכים לחבר מחדש באמצעות אלגוריתם לרכיבים במסך, כדי שהם ייראו סטטיים, כאילו שהם אריחים. למדתי הרבה – זה היה המעבר ממערכות גדולות לפתרונות קטנים ומוטמעים.

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

Lars: נראה לי שהשלב הראשון הוא לבחון כמה מממשקי ה-API של Fuugu שפועלים ב-Chrome וב-Edge, שמובנים בכל המערכות העיקריות כיום. זה כל מה שצריך בהתחלה.

דבר נוסף הוא שלצרות הכלים לפיתוח פתרונות מוטמעים יש עקומת למידה תלולה. אם אתם רוצים לבנות חומרה מותאמת אישית משלכם, התחילו ב-Arduino או ב-ESP32 – משהו שקל לקנות ודי זול. עם סביבת הפיתוח המתאימה, תוכלו להפעיל את הפרויקט במהירות.

תוכלו גם לקנות מוניטור דופק או יחידת מולטי-חיישנים שכבר משתמשים בשירותי Bluetooth GATT, כך שאתם לא צריכים לבנות חומרה או קושחה משלכם. תוכלו להשתמש בכלים שכבר קיימים כאן ולהתחיל להתנסות ב-Web Bluetooth API כדי להתחיל לתקשר איתו.

יש גם מכשירים שמשתמשים בפרוטוקול טורי. בשבילם אפשר להשתמש ב-Web Series API (גם Fugu). לאחרונה ניסיתי להשתמש ב-WebHID API, שמאפשר לך לדבר עם כל מכשירי הממשק האנושיים שלכולם יש גישה אליהם. מצאתי כמה בתים ישנים במרתף שלא נתמכים על ידי אף מערכת הפעלה במשך שנים, אבל הודות להנדסה הפוכה, לקח לי כמה שעות להפעיל אותם מחדש.

יש גישות שונות בהתאם למה שאתם רוצים לבנות, אבל מבחינת מפתח/ת אתרים, עדיף להשיג יחידת חיישן מוצקה, אולי Thingy 52 מ-Nordic למחצה מוליך. יש הרבה חיישנים, ואתם יכולים להתחבר לאפליקציית האינטרנט שלכם במאמץ קטן מאוד.

תומאס: החיבור למכשיר הוא השלב הראשון, אבל אחר כך מדברים אליו ביעילות – זה דבר אחר. למה לא ויתרת אחרי שהתמודדת עם מכשולים? מה גרם לך להמשיך לעבוד?

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

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

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

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

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

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

הדבר הראשון שעשיתי היה לוודא שכל מערכת הפעלה תראה את מתאם ה-USB כעכבר. ניתן לשלוט בו מאפליקציה מקורית או מאפליקציית אינטרנט — ישירות דרך Bluetooth. לאחר מכן פיתחתי אפליקציית אינטרנט – תבנית פשוטה שאנשים יכולים להשתמש ברכיבי אינטרנט כדי להרחיב את מה שהם רוצים. הודות לכך, כולם יכולים לשלוט במחשב שלהם באמצעות אפליקציית אינטרנט שיצרתי תוך שעות ספורות, דרך טלפון Android.

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

תומר: הייתה לכם הזדמנות לבדוק את המכשיר בחיים האמיתיים?

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

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

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

היכולת לבנות כל מה שרוצים באינטרנט ולהשתמש בו כדי לשלוט בכל מחשב מארח פותחת אפשרויות רבות.

תומס: האם אתם מפרסמים את פרויקט Zephyr שלכם בקוד פתוח? מהו סוג הרישיון שלך? האם יש לך כוונה לייצר הכנסות מהפרויקט?

Lars: כן, הפתרון הוא בקוד פתוח. לא השתמשתי ברישיון ספציפי, אבל נראה לי שאפשר להשתמש ב-Apache 2.0. הרבה חברות גדולות משתמשות ברישיון הזה, כולל Google. כשעבדתי על SimpleMouse, לא חשבתי על מונטיזציה מהפרויקט — זו לא הייתה המטרה שלי. אבל אני גם חושבת שיהיה הגיוני לנסות לשלב אותו בסביבת הייצור, וזה עולה כסף. המטרה האולטימטיבית היא להפוך אותו לזמין. הייתי רוצה מאוד ליישם אותו בעלות נמוכה ובקנה מידה רחב.