Ларс Кнудсен — эксперт по разработчикам Google, мы говорили с ним о том, как устройство за 10 долларов может сделать компьютеры более доступными для людей с ограниченными возможностями.
Моника: Что вдохновило тебя стать разработчиком? Какова ваша нынешняя профессиональная направленность?
Ларс: Я получил степень магистра инженерных наук, но на самом деле мой интерес к технологиям начался гораздо раньше. Когда я был ребенком в 80-х, мой отец владел компьютерной компанией, занимавшейся графическим дизайном. Иногда, особенно во время летних каникул, он брал меня с собой на работу. Время от времени некоторые из его сотрудников следили за мной. Был один очень умный парень, который однажды сказал мне: «Ларс, мне нужно кое-что поработать, но вот руководство по C, а там компьютер. Вот как вы запускаете компилятор C. Если у вас есть какие-либо вопросы, приходите и спросите меня». Я начал писать короткие тексты, которые переводились на язык, понятный компьютеру. Мне это показалось волшебным. Когда я начал, мне было 11 лет, и примерно в седьмом классе я смог создавать небольшие приложения для своих одноклассников или для использования в школе. Вот так все и началось.
На протяжении многих лет я работал во многих компаниях, включая Nokia, Maersk и Openwave. Вначале, как и во многих других профессиях, из-за того, что ты немного знаешь, ты чувствуешь, что можешь все, но со временем ты узнаешь, что у каждой компании есть определенный способ ведения дел.
После нескольких лет работы в медицинской компании в 1999 году я начал свой собственный бизнес. Я работал внештатным подрядчиком и благодаря этому имел возможность быстро познакомиться с несколькими организациями. Выполнив первые пять контрактов, я обнаружил, что каждая компания думает, что нашла идеальную настройку, но все они совершенно разные. В то время я также познакомился с множеством различных технологий, операционных систем и т. д. Когда мне было чуть больше двадцати, мое мышление изменилось. Вначале я был строго сосредоточен на одной технологии и хотел узнать о ней все. Со временем я начал задумываться об объединении технологий как о способе улучшения нашей жизни. Меня особенно интересует сокращение разрыва между тем, что мы называем командой А и командой Б в мире. Я стараюсь передать как можно больше знаний в регионы, где люди не могут позволить себе роскошь иметь компьютер или бесплатно учиться в университете.
Я продолжаю работать подрядчиком для внешних партнеров, но, когда это возможно, стараюсь выбирать проекты, которые оказывают какое-то положительное влияние на окружающую среду или общество. В настоящее время я работаю над встроенным программным обеспечением для компании Oticon , производящей слуховые аппараты. Что касается программного обеспечения, я работал над всем: от мельчайших микроконтроллеров до облака; многое из того, что я делаю, вращается вокруг Интернета. Я пытаюсь комбинировать технологии всякий раз, когда это имеет смысл.
Моника : Участвовали ли вы в сообществах разработчиков до того, как присоединились к программе Google Developer Experts?
Ларс: Да, я занимался митапами и конференциями. Впервые я познакомился с сообществом, когда работал в Nokia. Примерно в 2010 году я встретил Кеннета Роде Кристиансена , который стал GDE раньше меня. Он вдохновил меня увидеть, как веб-технологии могут быть полезны начинающим техническим специалистам в развивающихся странах. Разработка и развертывание решений с использованием C++, C# или Java требует нескольких лет опыта, но каждый, у кого есть доступ к компьютеру, браузеру и блокноту, может начать разрабатывать веб-приложения и учиться очень быстро. Можно создать полнофункциональное приложение с ограниченными ресурсами и начать работу с нуля. Вот почему я называю Интернет очень демократизирующим набором технологий.
Но вернемся к сообществу: через некоторое время я заинтересовался веб-стандартизацией и тем, какие проблемы могут решить новейшие веб-технологии. Перед выпуском я экспериментировал с новыми возможностями браузера. В то время я работал в Nokia, занимаясь разработкой флагманского устройства на базе Linux — N9. Браузер, который мы создали, был основан на WebKit, и я получил большой опыт разработки функций для большого проекта с открытым исходным кодом. Спустя годы после ухода из Nokia я участвовал в веб-конференциях и встречах, поэтому имело смысл присоединиться к сообществу GDE в 2017 году.
Мне очень нравится общественная работа и все, что мы делаем вместе, особенно саммиты разработчиков Chrome перед пандемией, где мне приходилось помогать с дежурством на стенде вместе с группой замечательных инженеров Google и других GDE.
Моника: Какой совет вы бы дали молодому разработчику, который только начинает свою профессиональную карьеру и не знает, какой путь выбрать?
Ларс : По своему опыту я бы сказал — если вы можете себе это позволить — подумайте о работе фрилансером в паре разных компаний. Таким образом, вы столкнетесь с кодом в самых разных формах и на разных стадиях разработки. Вы познакомитесь со множеством операционных систем и языков и научитесь решать проблемы разными способами. Это мне очень помогло. Когда мне было двадцать с небольшим, я приобрел опыт работы старшим разработчиком. Такой подход поможет вам быстрее достичь своих профессиональных целей.
Кроме того, развлекайтесь, исследуйте, играйте с оборудованием и программным обеспечением. Подумайте о том, чтобы создать что-то, что решит реальную проблему — возможно, для ваших друзей, семьи или местного бизнеса. Не бойтесь заняться тем, чего вы никогда раньше не делали.
Моника: Какое будущее ждет веб-технологии?
Ларс: Я думаю, что уже пару лет Интернет вполне способен предоставить платформу для крупных полевых приложений, как для потребителей, так и для бизнеса. Что касается сервера, веб-технологии предлагают удобство работы, особенно для разработчиков внешнего интерфейса, которые хотят создать внутренний компонент. Им теперь легче начать. Я знаю людей, которые использовали и Firebase, и Heroku для выполнения своей работы. И эта тенденция будет расти — веб-технологий будет достаточно для создания сложных решений любого рода. Я считаю, что веб-возможности — Project Fugu 🐡 действительно раскрывают этот потенциал.
Глядя на это с несколько иной точки зрения, я также думаю, что если мы предоставим полную документацию и подробные статьи не только на английском, но и на других языках (например, испанском и португальском), мы раскроем большой потенциал. в Латинской Америке и других регионах, конечно. Тамошние разработчики зачастую недостаточно хорошо знают английский, чтобы полностью понять все соответствующие статьи. Мы также должны дать им возможность учиться как можно раньше, еще до поступления в университет, еще в родных городах. Они могут использовать эти навыки, чтобы помочь местным сообществам и предприятиям, прежде чем они покинут дом и, возможно, никогда не вернутся.
Томас: Вы прошли долгий путь от разработки на языке C на случайном компьютере до взлома аппаратного обеспечения. Как ты это делаешь?
Ларс: Я начал разбирать много оборудования, которое было у меня дома. Мой отец не всегда радовался, когда мне не удавалось собрать его обратно. Со временем я научился создавать небольшие устройства, но по-настоящему это стало популярным гораздо позже, примерно в то время, когда я присоединился к Nokia, где я получил опыт встраиваемых систем. У меня была возможность создавать небольшие заставки и компоненты для телефонов Series 30. Я был по-настоящему увлечен этим и действительно мог мыслить нестандартно. Они поручили мне создать игру Snake для этих устройств. Это был очень интересный опыт. Основное различие между созданием встроенных систем и большинством других вещей (включая Интернет) заключается в том, что вы оставляете небольшой след — у вас мало места или памяти для использования. При создании Snake доступная мне оперативная память составляла менее одной трети буфера кадра (около 120 x 120 пикселей). Мне пришлось придумать способы алгоритмического объединения компонентов на экране, чтобы они выглядели статичными, как если бы они были плитками. Я многому научился — это был переход от более крупных систем к небольшим встраиваемым решениям.
Томас: Набор навыков типичного фронтенд-разработчика сильно отличается от набора навыков человека, создающего встроенное оборудование. Как бы вы посоветовали фронтенд-разработчику изучить аппаратное обеспечение и начать мыслить в двоичном формате?
Ларс: Я думаю, что первым шагом будет рассмотрение некоторых API-интерфейсов Fugu , которые работают в Chrome и Edge и сегодня встроены во все основные системы. Это все, что вам нужно на старте.
Другое дело, что наборы инструментов для создания встроенных решений требуют сложного обучения. Если вы хотите создать собственное оборудование, начните с Arduino или ESP32 — чего-то, что легко купить и стоит довольно дешево. При наличии подходящей среды разработки вы сможете запустить свой проект в кратчайшие сроки.
Вы также можете купить пульсометр или мультисенсорное устройство, которые уже используют службы Bluetooth GATT, поэтому вам не придется создавать собственное оборудование или прошивку — вы можете использовать то, что уже есть, и начать экспериментировать с веб-интерфейсом Bluetooth API, чтобы начните с ним общаться.
Существуют также устройства, использующие последовательный протокол — для них вы можете использовать Web Serial API ( также Fugu ). Недавно я рассматривал возможность использования WebHID API , который позволяет вам общаться со всеми устройствами пользовательского интерфейса, к которым у каждого есть доступ. Я нашел в своем подвале несколько старых программ, которые уже много лет не поддерживались ни одной операционной системой, но благодаря реверс-инжинирингу мне потребовалось несколько часов, чтобы снова включить их.
Существуют разные подходы в зависимости от того, что вы хотите создать, но веб-разработчику я бы посоветовал приобрести надежный сенсорный блок, например, Thingy 52 от Nordic Semiconductor; у него много датчиков, и вы можете без особых усилий подключиться к своему веб-приложению.
Томас: Подключение к устройству — это первый шаг, но затем эффективное общение с ним — это совсем другое дело. Почему вы не сдались, столкнувшись с препятствиями? Что мотивировало вас продолжать работу?
Ларс: Лично для меня самым важным был социальный аспект решения проблемы. Когда я начал работать над собственными встраиваемыми проектами, у меня было видение и желание построить научную лабораторию в коробке для развивающихся регионов. Моя жена из Мексики, и я видел там некоторые школы; некоторые из них, расположенные за пределами больших городов, довольно ветхие, без доступа к материалам и оборудованию, которые есть в нашей части мира.
Страсть к созданию чего-то, что потенциально может быть использовано для помощи другим, — вот что поддерживало меня. Мне также очень понравилась поддержка сообщества. Я обратился к некоторым людям в Google, и все они мне очень помогли и терпеливо ответили на все мои вопросы.
Томас: У многих людей дома есть какое-то оборудование, но они не знают, что с ним делать. Как вы находите вдохновение для всех своих замечательных проектов, в частности для проекта под рабочим названием SimpleMouse ?
Ларс: Ну, в последнее время я действительно возрождаю много старого оборудования, но для этого конкретного проекта — название еще не задано, но назовем его SimpleMouse — я использовал свой опыт. Ранее я работал с некоторыми решениями по обеспечению доступности и увидел, что некоторые из них больше не работают; для их запуска вам понадобится старая Windows XP с установленным определенным программным обеспечением. Вы не можете их обновить, вы можете использовать их только дома, потому что вы не можете переместить свою установку.
Из-за этого я задавался вопросом, как объединить свои навыки в мире встраиваемых систем с проектом Fugu и что сейчас возможно в Интернете для создания дешевого, доступного оборудования в сочетании с простым для понимания программным обеспечением с обеих сторон, чтобы люди могли опираться на это. .
Для этого конкретного проекта я взял небольшой USB-ключ с рефлексивным чипом nRF52840. Он обменивается данными через Bluetooth с одной стороны и USB с другой. По сути, вы можете запрограммировать его на что угодно с обеих сторон. А потом я подумал об устройствах, которые управляют компьютером — мышке и клавиатуре. Некоторым людям с ограниченными возможностями может быть сложно управлять этими устройствами, и я хотел им помочь.
Первым делом я убедился, что любая операционная система будет видеть USB-ключ как мышь. Вы можете управлять им из собственного приложения или веб-приложения — прямо через Bluetooth. После этого я создал веб-приложение — простой шаблон, который люди могут расширять по своему усмотрению с помощью веб-компонентов. Благодаря этому каждый может управлять своим компьютером с помощью веб-приложения, которое я создал всего за пару часов на телефоне Android.
Наличие такой настройки позволит любому человеку в мире, имеющему некоторый опыт работы в Интернете, за считанные дни создать индивидуальное решение для людей с ограниченными возможностями, которые хотят управлять своим компьютером. Самое приятное то, что вы можете взять его с собой куда угодно и использовать с другими устройствами. Это будет точно такой же опыт. Для меня портативность и доступность устройства очень важны, поскольку люди больше не ограничены использованием своих собственных устройств и больше не ограничены одним местом.
Томас: У вас была возможность протестировать устройство в реальной жизни?
Ларс: На самом деле во время моей последней поездки в Мексику я обсуждал это с живущим там веб-профессионалом; сейчас он изучает возможности локального использования устройства. Там оборудование очень дорогое, но USB-ключ обычно стоит около десяти долларов США. Сейчас он проверяет, можем ли мы создать там локальные установки, чтобы опробовать это. Но здесь, в Дании, я еще не проводил официальных испытаний.
Томас: Многие устройства, предназначенные для помощи людям с ограниченными возможностями, действительно дороги. Планируете ли вы сотрудничать с какой-либо конкретной компанией и запустить ее в производство за небольшую часть стоимости этого дорогостоящего оборудования?
Ларс: Да, определенно! Я уже говорил об этом с местным производителем оборудования. Конечно, устройство не заменит все эти узкоспециализированные решения, но оно может стать первым шагом к созданию чего-то большего — например, использования распознавания голоса, уже доступного для веб-технологий. Это будет простой способ управления устройствами с помощью телефона Android; он может работать с любым устройством.
Возможность создавать в сети все, что вы хотите, и использовать это для управления любым хост-компьютером открывает множество возможностей.
Томас: Выпускаете ли вы свой проект Zephyr с открытым исходным кодом? Какую лицензию вы используете? Есть ли планы по монетизации проекта?
Ларс: Да, решение с открытым исходным кодом. Я не назначал для него конкретной лицензии, но думаю, что Apache 2.0 будет подходящим вариантом. Эту лицензию используют многие крупные компании, в том числе Google. Когда я работал над SimpleMouse, я не думал о монетизации проекта — это не было моей целью. Но я также думаю, что было бы разумно попытаться каким-то образом запустить его в производство, а вместе с этим и стоимость. Конечная цель — сделать его доступным. Мне бы хотелось, чтобы это было реализовано с низкими затратами и в больших масштабах.