Google デベロッパー エキスパートの Lars Knudsen 氏に、10 ドルのデバイスで障がいのあるユーザーがパソコンをより使いやすくする方法について話を聞きました。

Monika: デベロッパーになったきっかけは何ですか?現在、どのような業務に携わっていますか?
Lars: 私は工学の修士号を取得しましたが、実はテクノロジーへの興味はずっと前からありました。私が子どもだった 80 年代、父はグラフィック デザインを扱うコンピューティング会社を経営していました。特に夏休みには、父が私を職場に連れて行ってくれることもありました。時には、彼の社員が私を監視することもありました。ある非常に優秀な社員が私にこう言いました。「ラース、仕事を終わらせる必要があるんだけど、C のマニュアルがここにあるし、コンピュータが向こうにある。C コンパイラを起動する方法は次のとおりです。何か質問があれば、いつでも聞いてください」と伝え、コンピュータが理解できる形に翻訳される短い文章を書き始めました。まるで魔法のようです。プログラミングを始めたときは 11 歳で、中学 2 年生頃には、クラスメート向けの小さなアプリや学校で使用するアプリを作成できるようになりました。これが始まりです。
これまで、Nokia、Maersk、Openwave など、多くの企業で働いてきました。他の多くの職業と同様に、最初は少し知識があるだけで何でもできる気がするかもしれませんが、時間が経つにつれて、各企業には独自のやり方があることに気付くでしょう。
医療機器会社で数年間働いた後、1999 年に自分のビジネスを立ち上げました。私はフリーランス契約社員として働いており、そのおかげで複数の組織を迅速に知ることができました。最初の 5 件の契約を完了した後、どの企業も完璧な設定を見つけたと考えていますが、その設定はすべてまったく異なることがわかりました。その頃、私はさまざまなテクノロジーやオペレーティング システムに触れていました。20 代前半の頃、私の考え方が変わりました。最初は、1 つのテクノロジーに絞って、そのすべてを学びたいと思っていました。時間の経過とともに、生活を改善する方法としてテクノロジーを組み合わせることについて考えるようになりました。私は、世界中の A チームと B チームの差を縮めることに特に興味があります。コンピュータを所有したり、大学で無料で学んだりできない地域に、できるだけ多くの知識を伝えようとしています。
外部パートナーの契約社員として引き続き働いていますが、可能な限り、環境や社会に何らかのプラスの影響を与えるプロジェクトを選ぶようにしています。現在、Oticon という補聴器メーカー向けに組み込みソフトウェアを開発しています。ソフトウェアに関しては、最小のマイクロコントローラからクラウドまで、あらゆるものに携わってきました。主にウェブ関連の業務を担当しています。必要に応じてテクノロジーを組み合わせるようにしています。
Monika: Google Developers Experts プログラムに参加する前は、デベロッパー コミュニティに参加していましたか?
Lars: はい、ミートアップやカンファレンスに参加していました。初めてコミュニティに接続したのは、Nokia に勤務していたときです。2010 年頃、私より前に GDE になった Kenneth Rohde Christiansen に出会いました。彼の話を聞いて、発展途上国の技術者を目指す人々にウェブ技術がどのように役立つかを理解することができました。C++、C#、Java を使用してソリューションを開発してデプロイするには、数年の経験が必要ですが、コンピュータ、ブラウザ、メモ帳にアクセスできる人なら誰でも、ウェブベースのアプリケーションの開発を開始し、非常に速く習得できます。限られたリソースで完全に機能するアプリケーションを構築し、ゼロから増強できます。そのため、私はウェブを非常に民主的なテクノロジー スタックと呼んでいます。
コミュニティに戻ると、しばらくしてウェブ標準化と、最先端のウェブ技術で解決できる問題に興味を持つようになりました。リリース前にブラウザで新しい機能を試しました。当時、私は Nokia で Linux ベースのフラグシップ デバイス N9 の開発に携わっていました。作成したブラウザは WebKit ベースで、大規模なオープンソース プロジェクトの機能を開発する貴重な経験を積むことができました。Nokia を退職した後、私はウェブ カンファレンスとミートアップに参加していたので、2017 年に GDE コミュニティに参加するのは理にかなっています。
コミュニティ活動や、一緒に取り組んでいるすべての活動を楽しんでいます。特に、パンデミック前の Chrome Developer Summit では、Google の優秀なエンジニアや他の GDE と一緒にブース業務を担当できたことが思い出に残っています。
Monika: プロとしてのキャリアをスタートしたばかりで、どの道を進むべきか迷っている若いデベロッパーに、どのようなアドバイスをしますか?
Lars: 私自身の経験から、余裕がある場合は、複数の企業でフリーランスとして働くことをおすすめします。これにより、さまざまな形式のコードと開発のさまざまな段階に触れることができます。さまざまなオペレーティング システムと言語を学び、さまざまな方法で問題を解決する方法を学びます。これは私にとって大きな助けとなり、20 代でシニア デベロッパーとしての経験を積むことができました。このアプローチにより、キャリア目標をより早く達成できます。
ハードウェアとソフトウェアを楽しみ、探索し、遊びましょう。友だち、家族、地元のビジネスなど、実際の問題を解決する何かを構築することを検討してください。これまでにしたことのないことに挑戦することを恐れないでください。
Monika: ウェブ技術の将来はどうなるのでしょうか?
Lars: ウェブは、コンシューマ向けとビジネス向けの両方で、大規模なフィールド アプリケーションのプラットフォームを提供できる能力を数年前から備えています。サーバーサイドでは、特にバックエンド コンポーネントを構築するフロントエンド デベロッパーにとって、ウェブ技術はシームレスなエクスペリエンスを提供します。利用を開始しやすくなりました。Firebase と Heroku の両方を使用してこの作業を完了した人もいます。この傾向は今後も強まり、あらゆる種類の複雑なソリューションを構築するのに十分なウェブ技術が登場します。ウェブ機能 - Project Fugu 🐡 は、その可能性を最大限に引き出します。
少し別の視点から見ると、英語だけでなく、スペイン語やポルトガル語などの他の言語でも、包括的なドキュメントと詳細な記事を提供すれば、中南米だけでなく、他の地域でも多くの可能性を秘めていると思います。多くの場合、デベロッパーは関連するすべての記事を十分に理解できるほど英語を理解していません。また、大学入学前、あるいは地元に住んでいるうちに、できるだけ早い段階で学習する機会を提供することも必要です。彼らは、そのスキルを地域のコミュニティや企業を支援するために使用し、その後、故郷を離れ、二度と戻らないかもしれません。
Thomas: ランダムなコンピュータで C 開発を行うことから、ハードウェアをハッキングするまで、長い道のりを歩んできました。どのようにして
Lars: 家にあったさまざまなハードウェアを分解し始めました。組み立て直せなかったとき、父はいつも不機嫌でした。時間の経過とともに、小型デバイスの構築方法を学びましたが、本格的に取り組むようになったのは、Nokia に入社して組み込みの経験を積んだ頃です。シリーズ 30 スマートフォン用の小さなスクリーンセーバーやコンポーネントを作成しました。私はこの仕事に情熱を注ぎ、既成概念にとらわれずに考えることができていました。これらのデバイス用に Snake ゲームを作成するというタスクを割り当てられました。とても興味深い経験でした。組み込みシステムの構築と他のほとんどのもの(ウェブを含む)との主な違いは、フットプリントが小さいことです。使用できるスペースやメモリが限られています。Snake をビルドしている間、使用可能な RAM はフレームバッファの 3 分の 1 未満でした(約 120 x 120 ピクセル)。タイルのようにして静止したように見えるように、画面上のコンポーネントをアルゴリズム的に再結合する方法を考え出す必要がありました。大きなシステムから小型の組み込みソリューションへの移行は、多くのことを学ぶ機会となりました。
Thomas: 一般的なフロントエンド デベロッパーのスキルセットは、組み込みハードウェアを構築するデベロッパーのスキルセットとは大きく異なります。フロントエンド デベロッパーにハードウェアを調べてバイナリで考え始めるよう促すにはどうすればよいですか?
Lars: まず、Chrome と Edge で動作し、現在すべての主要なシステムに組み込まれている Fugu API の一部を確認することをおすすめします。最初に必要なものは以上です。
また、組み込みソリューションを構築するためのツールチェーンは習得が難しいという問題もあります。独自のカスタム ハードウェアを構築する場合は、Arduino または ESP32 から始めましょう。これらは購入が簡単で、比較的安価です。適切な開発環境があれば、プロジェクトをすぐに稼働できます。
心拍数モニターやマルチセンサー ユニットを購入することもできます。これらのデバイスはすでに Bluetooth GATT サービスを使用しているため、独自のハードウェアやファームウェアを構築する必要はありません。既存のデバイスを使用して、Web Bluetooth API を試して通信を開始できます。
シリアル プロトコルを使用するデバイスもあります。このようなデバイスには、Web Serial API(Fugu とも呼ばれます)を使用できます。最近、WebHID API の使用を検討しています。この API を使用すると、誰でもアクセスできるすべてのヒューマン インターフェース デバイスと通信できます。地下室で、何年もどのオペレーティング システムでもサポートされていない古いデバイスを見つけました。リバース エンジニアリングのおかげで、数時間かけてデバイスを再び有効にすることができました。
構築する内容に応じてさまざまなアプローチがありますが、ウェブ デベロッパーには、Nordic Semiconductor の Thingy 52 などの堅牢なセンサー ユニットをおすすめします。このユニットには多くのセンサーが搭載されており、ウェブ アプリケーションに簡単に接続できます。
Thomas: デバイスに接続するのは最初のステップですが、効果的に話しかけるというのは、まったく別の話です。障害に直面してもあきらめなかったのはなぜですか?仕事を続けるモチベーションは何でしたか?
Lars: 私個人としては、問題解決の社会的側面が最も重要でした。独自の組み込みプロジェクトに取り組み始めたとき、私は、途上国向けに科学ラボを箱に収めるというビジョンと願望を持っていました。妻はメキシコ出身で、メキシコの学校をいくつか見学しました。大都市の外にある学校のいくつかは、かなり粗末で、私たちの地域にあるような教材や機器を利用できません。
他の人の役に立つものを作りたい、という情熱が私を突き動かしました。また、コミュニティのサポートも非常に役立ちました。Google の担当者数人に連絡しましたが、全員が非常に親切で、私の質問にすべて丁寧に答えてくれました。
Thomas: 多くの人が家で何らかのハードウェアを所有していますが、その使い方がわからないというケースは少なくありません。素晴らしいプロジェクト、特に仮称 SimpleMouse のプロジェクトのインスピレーションはどこから得ているのですか?
Lars: 最近、古いハードウェアを復活させる作業をたくさん行っていますが、このプロジェクト(名前はまだ決まっていませんが、SimpleMouse と呼びましょう)では、その経験を活かしました。以前、いくつかのユーザー補助ソリューションを扱ったことがありますが、そのうちのいくつかは動作しなくなっています。それらを実行するには、特定のソフトウェアがインストールされた古い Windows XP が必要です。これらの設定は更新できません。また、セットアップを移動できないため、自宅でのみ使用できます。
そのため、組み込みシステムの世界で培ったスキルをプロジェクト Fugu と組み合わせて、低価格で手頃なハードウェアと、両方の側でわかりやすいソフトウェアを組み合わせて、ユーザーがその上に構築できるようにするにはどうすればよいかと考えました。
このプロジェクトでは、リフレクティブ チップ(nRF52840)を搭載した小型の USB ドングルを使用しました。一方は Bluetooth で、もう一方は USB で通信します。基本的には、両側で何でもプログラムできます。次に、パソコンを操作するデバイスであるマウスとキーボードについて考えました。障がいのある方にとって、こうしたデバイスの操作は難しい場合があります。そうした方々をサポートしたいと思いました。
まず、どのオペレーティング システムでも USB ドングルがマウスとして認識されるようにしました。ネイティブ アプリまたはウェブアプリから Bluetooth に直接接続して操作できます。次に、ウェブ アプリケーションを作成しました。これは、ウェブ コンポーネントを使用して自由に拡張できるシンプルなテンプレートです。おかげで、Android スマートフォンで数時間で作ったウェブアプリで、誰でもパソコンを操作できるようになりました。
この設定により、ウェブの経験がある人なら誰でも、コンピュータを操作したい障がいのある人向けに、数日で非常にカスタマイズされたソリューションを構築できるようになります。どこにでも持ち運べて、他のデバイスでも使用できるのが便利です。まったく同じエクスペリエンスになります。デバイスの携帯性と手頃な価格は非常に重要です。ユーザーは自分のデバイスに限定されなくなり、場所にも制限されなくなります。
Thomas: デバイスを実際にテストする機会はありましたか?
Lars: 実は、前回メキシコを訪れた際に、現地のウェブ プロフェッショナルとこの件について話し合いました。その方は現在、現地でデバイスを使用できるかどうかを調査しています。現地では機器が非常に高価ですが、USB ドングルは通常 10 米ドル程度です。現在、そこでローカル設定を構築して試すことができるかどうかを確認しています。デンマークではまだ正式な試験運用を行っていません。
Thomas: 障がいのあるユーザーを支援するように設計されたデバイスの多くは非常に高価です。特定の企業と協力して、高価な機器の価格のほんの一部で製品化することを計画していますか?
Lars: はい、もちろんです。すでに、現地のハードウェア メーカーに相談しています。もちろん、このデバイスが高度に特化したソリューションすべてに取って代わるわけではありませんが、ウェブ技術ですでに利用可能な音声認識など、より大きなものを構築するための第一歩となる可能性があります。Android スマートフォンを使用してデバイスを簡単に操作できるようになります。あらゆる種類のデバイスに対応しています。
ウェブ上で自由に作成し、作成したものを使って任意のホストコンピュータを制御できるだけで、さまざまな可能性が開けます。
Thomas: Zephyr プロジェクトはオープンソースとしてリリースされますか?どのようなライセンスをお使いですか?プロジェクトを収益化する予定はありますか?
Lars: はい、このソリューションはオープンソースです。特定のライセンスを指定していませんが、Apache 2.0 が適切だと思います。Google を含む多くの大企業がこのライセンスを使用しています。SimpleMouse を開発していたとき、私はプロジェクトを収益化することを考えませんでした。それは私の目標ではありませんでした。ただし、何らかの方法で本番環境に導入することも意味があると思います。これにはコストがかかります。最終的な目標は、低コストで大規模に実装されることを願っています。