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

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

Monika Janota
Monika Janota

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

Monika: מה גרם לך להפוך למפתחת? מהו תחום ההתמחות המקצועי הנוכחי שלך?

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

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

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

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

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

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

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

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

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

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

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

Monika: מה צפוי לקרות לטכנולוגיות האינטרנט בעתיד?

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

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

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

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

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

Lars: לדעתי, השלב הראשון הוא לבדוק כמה מ-Fugu APIs שפועלים ב-Chrome וב-Edge, ושמוטמעים בכל המערכות העיקריות כיום. זה כל מה שצריך בהתחלה.

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

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

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

יש גישות שונות בהתאם למה שרוצים ליצור, אבל למפתחי אתרים הייתי ממליץ לרכוש יחידת חיישנים איכותית, אולי Thingy 52 של Nordic Semiconductor. יש בה הרבה חיישנים, ואפשר לחבר אותה לאפליקציית האינטרנט בקלות רבה.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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