Google Developer Expert の Lars Knudsen は、10 ドル相当のデバイスによって障がいのある人々がパソコンをより利用しやすくなる仕組みについてお話を伺いました。
Monika: デベロッパーになろうと思ったきっかけは何ですか?現在、どのような専門的分野に重点を置いていますか?
Lars: 私はエンジニアリングの修士号を取得しましたが、実際、テクノロジーに興味を持ったのはもっと早くからのことです。私が 80 年代の子供だった頃、父はグラフィック デザインに携わるコンピューティング会社を経営していました。ときどき、特に夏休みの間は、私と一緒に仕事をしてくれます。ときどき、彼の従業員の中には私に注目してくれる人もいたでしょう。実に賢い人が私にこう言ったことがあります。「仕事をやらなくちゃいけないけど、C のマニュアルがあり、あそこにコンピュータがあるんだ。C コンパイラを起動する方法は次のとおりです。ご不明な点がございましたら、お気軽にお問い合わせください。」私は短いテキストを書くようになり、それをコンピュータが理解できるものにしました。魔法のように思えました。入社したのは 11 歳のときで、中学 1 年生頃には、クラスメートや学校で使うような小さなアプリを作ることができました。ここから始まりました。
長年にわたり、Nokia、Maersk、Openwave など、多くの企業で働いてきました。他の多くの職業と同様に、最初は少し知っているので、何でもできると感じるようなものですが、時間の経過とともに、各企業には決まったやり方があることを学んでいきます。
医療関連企業で数年間働いた後、1999 年に起業しました。フリーランスの契約社員として働いていたおかげで、複数の組織をすばやく知ることができました。最初の 5 件の契約を終えて、どの会社もそれぞれが完璧なセットアップは見つかっているものの、どれもまったく異なるものであることがわかりました。そのとき、私はさまざまなテクノロジーやオペレーティング システムなどに接する機会もありました。20 代前半頃、考え方が変わりました。当初は 1 つのテクノロジーに集中し、あらゆることを学びたいと考えていました。時間とともに、テクノロジーを組み合わせることを、私たちの生活を向上させる方法として考え始めました。特に、世界における A チームと B チームの間のギャップを小さくすることに興味があります。パソコンを手に入れたり大学で勉強したりする余裕のない地域に、できるだけ多くの知識を伝えようとしています。
外部のパートナーのために請負業者として働き続けますが、可能な限り環境や社会にプラスの影響を与えるプロジェクトを選ぶようにしています。現在、補聴器メーカーの Oticon で組み込みソフトウェアの開発に携わっています。ソフトウェアについては、ごく小さなマイクロコントローラからクラウドまで、あらゆることに取り組んできました。私の仕事の多くはウェブが中心です都合の良いときは常にテクノロジーを組み合わせるようにしています。
Monika: Google Developer Experts プログラムに参加する前は、デベロッパー コミュニティに参加していましたか。
Lars: はい、ミートアップや会議に出席していました。私は Nokia で働いていたときに、初めてコミュニティと交流しました。2010 年頃、私は Kenneth Rohde Christiansen に会いました。Kenneth Rohde Christiansen は、私より先で GDE となりました。彼は、発展途上国のテクノロジー専門家を目指す人たちにとってウェブ テクノロジーがいかに役立つかに感動しました。C++、C#、Java を使用したソリューションの開発とデプロイには数年の経験が必要ですが、コンピュータ、ブラウザ、メモ帳を使用できる人なら誰でも、ウェブベースのアプリケーションの開発を開始して、非常に短期間で学習できます。限られたリソースで完全に機能するアプリケーションを構築でき、ゼロから立ち上げることができます。だからこそ、私はウェブを「民主化」の技術スタックと呼んでいます。
コミュニティに話を戻しましょう。ウェブの標準化と、最先端のウェブ テクノロジーでどのような問題を解決できるかに興味を持ちました。リリース前にブラウザで新機能を試しました。当時、私は Nokia に所属し、Linux ベースの主力デバイスである N9 の開発に携わっていました。私たちが開発したブラウザは WebKit ベースでした。私は、大規模なオープンソース プロジェクトの機能開発で素晴らしい経験を積みました。Nokia を退社してから数年間はウェブのカンファレンスやミートアップに参加しました。2017 年に GDE コミュニティに参加するのは理にかなっています。
コミュニティでの活動や、私たちが一緒にしていることをとても楽しんでいます。特にパンデミック前の Chrome Developer Summit では、素晴らしい Google エンジニアや他の GDE とともにブースでの作業を支援しました。
Monika: キャリアを始めたばかりで、どの道を選べばよいかわからない若いデベロッパーにアドバイスをいただけますか。
Lars: 私自身の経験から、予算が許せば、いくつかの会社でフリーランスになることを検討すべきです。このように、開発のさまざまな形式と段階でコードに触れることができます。さまざまなオペレーティング システムと言語を理解し、さまざまな方法で問題を解決する方法を学びます。これが役立ちました。20 代でシニア デベロッパーとしての経験を積むことができました。このアプローチは、仕事上の目標をより早く達成するのに役立ちます。
さらに、ハードウェアやソフトウェアを存分に活用し、実際に試してみてはいかがでしょうか。真の問題を解決するもの(たとえば友人、家族、地域のお店など)を作ることを考えてみてください。今までやったことがないことに恐れないでください。
Monika: ウェブ テクノロジーの未来はどのようなものですか?
Lars: ここ数年、ウェブは、消費者向けと企業向けの両方に対して、大規模フィールド アプリケーションのためのプラットフォームを提供する能力を十分に備えていると思います。サーバー側については、特にバックエンド コンポーネントを構築するフロントエンド デベロッパーに、ウェブ テクノロジーによるシームレスなエクスペリエンスを提供します。簡単に始められるようになりました。Firebase と Heroku の両方を使用して業務を行っている方もいらっしゃいます。そしてこの傾向はさらに拡大するでしょう。どのような種類の複雑なソリューションでも、ウェブ テクノロジーで十分に構築できるようになるでしょう。Web Capabilities - Project Fugu 🐡? は、その可能性を引き出してくれると思います。
少し違う視点から見ると、完全なドキュメントと詳細な記事を英語だけでなく、他の言語(スペイン語やポルトガル語など)でも提供できれば、ラテンアメリカをはじめとする地域でも大きな可能性を引き出せるのではないかと思っています。米国のデベロッパーは多くの場合、関連するすべての記事を完全に理解できるほど英語に詳しくありません。また、子どもたちが母国にいる間に、たとえ大学に入学する前であっても、できるだけ早く学習する機会を提供する必要があります。彼らはこうしたスキルを活かして、地元を離れる前に地域社会や企業を支援したり、二度と家に帰ったりしないかもしれません。
Thomas: ランダムなコンピュータで C 開発を行うところから、ハードウェアのハッキングまではかなりの道のりでした。それをどのように行っていましたか?
Lars: 自宅にあった多くのハードウェアを分解し始めました。元にもどせなかった時、父はいつも喜んでくれませんでした。時間が経つにつれて、小型デバイスの構築方法を習得しましたが、かなり後になって、Nokia に入社して組み込み機能を手に入れた頃に、本格的に普及しました。先日、Series 30 スマートフォンの構成要素である小さなスクリーンセーバーを製作しました。私はとても情熱的で、既成概念にとらわれない考え方をしました。各デバイス用のヘビゲームを作るタスクを任されたの。とても興味深い経験でした。組み込みシステムの構築と他のほとんどのもの(ウェブを含む)の構築との主な違いは、フットプリントが小さく、使用できるスペースやメモリがあまりないという点です。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 の使用について検討しています。何年もの間、どのオペレーティング システムでもサポートされていなかった古いものを地下室で見つけました。しかし、リバース エンジニアリングのおかげで、再度有効にするのに数時間かかりました。
何を構築するかによってアプローチは異なりますが、ウェブ デベロッパーには、固体のセンサーユニット、おそらく Nordic Semiconductor の Thingy 52 を購入することをおすすめします。多数のセンサーが搭載されており、わずかな労力でウェブ アプリケーションに接続できます。
Thomas: デバイスに接続することが最初のステップですが、それを効果的に話しかけることはまったく別物です。障害に直面してあきらめなかった理由は何ですか?仕事を続けようと思った理由は何ですか?
Lars: 私にとっては、問題を解決するという社会的な側面が最も重要でした。組み込み型プロジェクトの仕事を始めたとき、発展途上地域用の箱に科学実験室を建てたいというビジョンと願望がありました。私の妻はメキシコ出身で、そこで学校をいくつか見かけました。大都市の外で暮らす地域では、私たちが住んでいる地域にある資材や機材が手に入らないまま、かなり見通しが悪いという人もいます。
人々の役に立つかもしれないものを作りたいという情熱が、私を動かし続けました。コミュニティ サポートもとても良かったです。Google の一部の従業員に問い合わせをしたのですが、皆さんがすべての質問に答えてくれたので、とても助かりました。
Thomas: 多くの人は自宅になんらかのハードウェアを所有していますが、それをどう活用すればよいのかわかりません。どのような素晴らしいプロジェクト、特に SimpleMouse という名のプロジェクトから着想を得るのでしょうか。
Lars: 私は最近、古いハードウェアを復活させていますが、このプロジェクト(名前はまだ決まっていませんが、SimpleMouse と呼んでください)では、私の経験を活かしています。以前、ユーザー補助ソリューションをいくつか使用しましたが、その中には機能しなくなったものがあります。古い Windows XP に特定のソフトウェアがインストールされている必要があります。実際に更新することはできません。設定を移動できないため、家でしか使用できません。
そのため、組み込み世界で得た私のスキルと「Fugu」プロジェクトをどのように組み合わせればよいのか、そして今ウェブで何が可能になるのかを考えました。安価で手ごろな価格のハードウェアと、両サイドにわかりやすいソフトウェアを組み合わせて、それを基に構築できると考えました。
このプロジェクトのために、私は反射型チップ搭載の小型 USB ドングルである nRF52840 を使ってみました。一方は Bluetooth、もう一方は USB で通信します。基本的には、両側で任意のものになるようにプログラムできます。そして、コンピュータを制御するデバイス、つまりマウスとキーボードについて考えました。障がいのある人の中にはデバイスの操作が難しいと感じる人もいることから、私はその人を支援したいと考えています。
最初に行ったのは、USB ドングルがすべてのオペレーティング システムでマウスとして認識されるようにすることでした。ネイティブ アプリケーションまたはウェブ アプリケーションから Bluetooth で直接操作できます。その後、ウェブ アプリケーションを開発しました。これは、ウェブ コンポーネントを使用して自由に拡張できるシンプルなテンプレートです。そのおかげで、Android スマートフォンでわずか数時間で作成したウェブアプリを使って、誰でもパソコンを操作できるようになりました。
このような設定を行うことで、ウェブの経験がある世界中の誰もが、自分のパソコンを制御したいと考えている障がいのある人のために、非常にカスタマイズされたソリューションを数日で構築できるようになります。どこにでも持って行けて、他のデバイスでも使用できます。まったく同じ操作になります。私にとって、デバイスのポータビリティと手頃な価格は非常に重要です。人々はもはや自分のデバイスに制限されなくなり、1 つの場所に制限されなくなったためです。
Thomas: 実際にデバイスをテストすることはできましたか?
Lars: 実は前回のメキシコ旅行中に、そこに住むウェブのプロフェッショナルと話し合ったことがあります。今度は、デバイスをローカルで使用することを検討しています。その機器は非常に高価ですが、USB ドングルは通常約 10 米ドルです。現在は、ローカル環境を構築して試すことが可能かどうか確認しています。しかし、私はデンマークではまだ公式の試験を行っていません。
Thomas: 障がいのある人を支援するために設計されたデバイスの多くは非常に高価です。特定の企業と提携して、その高価な機器のわずかな価格で製造する予定はありますか?
Lars: はい、もちろんです。この件については、すでに地域のハードウェア メーカーと話し合っています。もちろん、このデバイスがこれらの高度に専門的なソリューションすべてに取って代わるわけではありませんが、すでにウェブ テクノロジーで利用されている音声認識を使用するなど、より大きなものを構築するための第一歩となるでしょう。Android スマートフォンを使用して簡単にデバイスを操作できる。どのようなデバイスでも動作します。
ウェブ上で好きなものをビルドし、それを使用して任意のホスト コンピュータをコントロールできるだけで、多くの可能性が広がります。
Thomas: Zephyr プロジェクトをオープンソースとしてリリースしますか?使用するライセンスの種類を教えてください。プロジェクトを収益化する予定はありますか?
Lars: はい。このソリューションはオープンソースです。ライセンスは設定していませんが、Apache 2.0 がよいと思います。Google を含め、多くの大手企業がこのライセンスを使用しています。SimpleMouse に携わったとき、プロジェクトの収益化は考えていませんでした。それは私の目標ではありませんでした。ですが、なんらかの形で本番環境に投入しようとするのも理にかなっていると考えています。それには費用がかかります。最終的な目標は、これを利用できるようにすることです。これを低コストで大規模に実現していきたいと考えています。