Lars Knudsen 是 Google 開發人員專家,我們提到
Monika:促使您成為開發人員的原因為何?你目前的專業領域是什麼?
Lars:我聽過工程部門主管 MSc,但其實我很早就對科技感興趣了。80 年代小時候,我父親擁有一家處理平面設計的運算公司。有時他會陪我陪伴在暑假,尤其在暑假期間更是如此。有時候,有些員工會留意我。有些是聰明的傢伙,曾經跟我說:「Lars,我需要做一些工作,但這裡有 C 手冊,上面有一台電腦。以下說明如何啟動 C 編譯器。如有任何問題,歡迎與我們聯絡。」我開始撰寫短篇文字,然後翻譯成電腦能理解的用語。這對我來說似乎有魔法。我 11 歲時剛起步,大約七年級生,因此能夠製作小型的應用程式供同學或在學校使用。這就是一切的開始。
多年來,我曾任職於 Nokia、Maersk 和 Openwave 等許多公司。就像許多其他職業一樣,雖然您知道這一點,因此會想盡辦法,但學到每間公司都有特定的作業模式。
在一家醫療公司任職幾年後,我在 1999 年創立了自己的事業。我擔任自由接案承包商,因此得以快速認識多個機構。完成前五項合約後,我發現每間公司認為他們的設定方式皆十分合適,但其實完全不同。當時,我也接觸過許多不同的技術、作業系統等等。在我早期發展階段,我的思維卻改變了。一開始,我只著重採用一項技術,希望能全面瞭解某項技術。與此同時,我便開始思考如何結合運用科技來提升生活品質。我希望把世界上 A 和 B 團隊之間的差距縮小。我試著盡可能將知識傳遞到沒有進階電腦經營或大學課業的區域。
我會繼續擔任外部合作夥伴的承包商,但會盡可能選擇對環境或社會有正面影響的專案我目前正在為名為 Oticon 的助聽器公司開發嵌入式軟體。以軟體來說,我一直在處理細節,從微小的微控制器到雲端很多我都在搜尋網路我正在嘗試適時搭配採用多種技術。
Monika:加入 Google Developers 專家計畫之前,您是否曾經參與開發人員社群?
Lars:是,我曾參與聚會和會議。我在 Nokia 工作時初次與社群連絡。大約 2010 年,我認識了 Kenneth Rohde Christiansen,她在我之前就成為 GDE。他鼓勵我看到網路技術如何協助有抱負的開發中國家/地區的科技專業人員提供協助。使用 C++、C# 或 Java 開發及部署解決方案需要多年經驗,但所有能存取電腦、瀏覽器和筆記本的人都能開始開發網路應用程式,並迅速學習。您可以建構功能完備的應用程式,在資源有限的情況下,從零開始發展,因此,我稱之為網路普及的技術堆疊。
但回到社群後,我才開始對網頁標準化,並研究出借助邊緣網路技術可解決哪些問題。在推出新功能前,我曾在瀏覽器中測試新功能,當時我的工作是協助 Nokia 開發一款以 Linux 為基礎的旗艦裝置 N9。我們打造的瀏覽器是以 WebKit 為基礎,在開發大型開放原始碼專案功能時,我在其中獲得一些經驗。在離開 Nokia 後的幾年內,我便參與了網路會議和聚會,所以在 2017 年加入 GDE 社群就很合理。
我非常喜歡社群工作和合作的一切,尤其是在疫情前的 Chrome 開發人員高峰會。在這場活動中,我和許多優秀的 Google 工程師和其他 Google 開發人員會一起提供協助攤位職責。
Monika:對於剛開始進入專業職涯,且不確定該採取何種行動的年輕開發人員,您會給予什麼建議?
Lars:我從自己的經驗來看,如果可以負擔過,不妨考慮為幾間不同公司提供服務。如此一來,您將會以許多不同形式和開發階段看到程式碼。除了可取得眾多作業系統和語言的資訊,我們也會協助您瞭解如何透過多種方式解決問題。這讓我在同住時,從資深開發人員中獲得許多經驗。以便更快達成專業目標。
除此之外,孩子可以盡情探索、玩玩硬體和軟體。不妨考慮開發可解決真正問題 (也許是你的朋友、家人或當地商家)。勇於挑戰從未實際過的挑戰賽,
Monika:網路技術未來趨勢為何?
Lars:我認為,網路發展成熟的幾年後,就足以為消費者和企業提供大型現場應用程式的平台。在伺服器端,網路技術可提供流暢的使用體驗,對於想要建構後端元件的前端開發人員而言更是如此。這樣他們就能立即上手。我知道廣告客戶同時使用 Firebase 和 Heroku 來完成工作。隨著這股趨勢不斷成長,網路技術就足以建構各種複雜的解決方案。我相信Web Capabilities - Project Fugu 🐡? 能真正發揮這個潛能。
從稍不同的觀點來看,我也認為如果除了英文提供完整的說明文件和深入文章,而且提供其他語言 (例如西班牙文和葡萄牙文) 的內容,我們也能大幅提升拉丁美洲和其他地區的潛力。開發人員經常對英文不太熟悉,無法充分瞭解所有相關文章。我們也應提供學生在大學畢業前及早開始學習的機會,即便他們還在家鄉也沒關係。他們可能會在回家的路上利用這些技能,為當地社區和商家提供協助,甚至可能不再回訪。
Thomas:從隨機電腦執行 C 開發作業,到入侵硬體,已歷久彌新。你是怎麼做到的?
Lars:我開始拆解很多家都在家中的硬體。我爸爸總是不盡興,當我無法再次組子的時候。有時間的話,我也學到如何製造一些小型裝置,但後來我加入 Nokia 的那一陣子後,將獲得嵌入式體驗。我曾經為 Series 30 手機打造小型螢幕保護程式,也就是元件。我對這項產品充滿熱情,也能夠跳脫傳統思維。他們指派了任務給我為這些裝置打造一款貪食蛇遊戲。這次經歷很有趣建構嵌入式系統與大部分其他用途 (包括網頁) 的主要差別在於,佔用少量空間,沒有太多可用空間或記憶體可用。在建構蛇時,我可用的 RAM 不到影格緩衝區的三分之一 (約 120 x 120 像素)。我必須想出方法,透過演算法重新彙整畫面上的元件,讓元件看起來像圖塊一般。我學到許多,這從大型系統變為小型的嵌入式解決方案。
Thomas:一般前端開發人員的技術能力與建構嵌入式硬體的人員截然不同。您會如何鼓勵前端開發人員查看硬體,並開始從二進位檔思考?
Lars:我想首先瞭解一些可在 Chrome 和 Edge 中運作的 Fugu API,而且這些 API 已內建在所有主要系統中。這樣就大功告成了!
另外,建構內嵌解決方案的工具鍊必須相當容易學習。如要自行打造自訂硬體,建議選擇 Arduino 或 ESP32,這類產品可以輕鬆購買且便宜。有了合適的開發環境,您就能立即啟動並執行專案。
您也可以購買心率監測器或多感測器設備,這些設備已經使用 Bluetooth GATT 服務,因此無需自行打造硬體或韌體。您可以使用現有裝置,開始試用 Web Bluetooth API 以開始通訊。
也有裝置採用序列通訊協定,因此你可以針對這類裝置使用 Web Serial API (也可用 Fugu)。我最近一直在研究如何使用 WebHID API,這個 API 能讓你與所有使用者都能使用的所有人機介面裝置交談。我在地下室發現某些多年來尚未支援的作業系統,但多虧了反向工程,我花了幾小時才能重新啟用這項功能。
視想建構的內容而定,方法各有不同,但我對網頁程式開發人員說,想取得一個穩固的感應器單位,也許是北半導體的 Thingy 52。內建許多感應器,而且您可以輕鬆連結到網頁應用程式。
湯瑪士:連線到裝置是第一步,但我們會以有效的方式與裝置交談,這是其他原因。你為什麼在遇到障礙物後不放棄?促使您繼續努力的動力為何?
Lars:對我來說,解決問題的社會層面是最重要的。開始製作自己的內嵌專案時,我有個願景,且希望為開發中的地區在方塊內打造一個科學實驗室。我太太是來自墨西哥,在那裡有些學校有些人是大城市之外的景象,也無法使用我們自己所在地區的材料和設備。
我對於打造各種事物的熱情,是能夠幫助他人的動力,而這正是我的興奮之情。我也很喜歡社群支援服務。我聯繫了幾位 Google 員工,他們都非常有幫助,也非常迅速地回答我的所有問題。
Thomas:很多人在家會使用某種硬體,但不知道該如何處理。如何尋找所有出色的專案靈感,尤其是 SimpleMouse 的工作名稱?
Lars:不久前,我確實翻新了許多舊硬體,但以這項專案來說,名稱尚未設定,但我稱之為 SimpleMouse - 我上次使用經驗了。我之前使用了一些無障礙解決方案,但發現有些功能已無法運作。您必須具有舊版 Windows XP,而且安裝特定軟體才能執行。您無法遷移這些設定,而且只能在家中使用,因為您無法遷移設定。
因此,我想知道如何將內嵌世界的技能與 Project Fugu 結合,以及目前網路上可以達到的成果,打造出便宜、平價的硬體,以及對雙方來說都容易理解的軟體,幫助大家進行建構。
在這個專案裡,我用了反應晶片 nRF52840 的小型 USB 連接器,手錶的其中一邊可透過藍牙連線,另一側的 USB 也能進行通訊。基本上,您可以設計成兩面皆用的程式。接著再回想一下會操控電腦的裝置,也就是滑鼠和鍵盤。有些身心障礙者可能會覺得這些裝置難以使用,而我希望能提供協助。
我首先確認的是,所有作業系統都能看到 USB 硬體鎖做為滑鼠。您可以直接透過藍牙從原生應用程式或網頁應用程式控制裝置。之後,我開發了一個網頁應用程式,這個簡單的範本可讓使用者使用網頁元件,隨心所欲進行擴充。多虧了這個!我只要花幾個小時,就能在 Android 手機上透過網頁應用程式控制電腦,
設置這些機制後,全球任何人都能透過網路體驗,在短短幾天內建構出高度自訂的解決方案,任何想要掌控電腦的身心障礙者都能使用。最棒的是,您隨時隨地都能使用,而且還能與其他裝置搭配使用。兩者的體驗相同。對我來說,裝置的可攜性和平價是非常重要的,因為使用者不再受限於自己的裝置,而不再受限於單一地區。
Thomas:你試過在現實生活中測試裝置了嗎?
Lars:我上次去墨西哥之旅時,我曾經和住在墨西哥的網路專業人士討論;他正在瞭解這款裝置能在本機使用的可能性。隨時隨地設備成本相當高昂,但 USB 連接器通常約為 $10 美元。他正在確認是否能在當地建置當地設備,然後試試看。不過我還沒在丹麥進行正式試用。
Thomas:許多專為協助身心障礙者設計的裝置非常昂貴。您是否計劃與任何一家公司合作,並以成本低廉的費用將公司生產製造?
Lars:是的,當然!我已經在跟當地硬體製造商溝通了,當然,裝置不會取代所有高度專業的解決方案,但可做為建構規模更大的第一步,例如使用語音辨識功能,且網路技術早已推出。這可讓您輕鬆使用 Android 手機控制裝置;這項服務可與各種裝置搭配使用
只要能夠在網路上建構任何您想要的功能,並用來控制任何主機電腦,將開創無限的可能性。
Thomas:您以開放原始碼的形式發布 Zephyr 專案嗎?您使用的授權類型為何?是否有計畫透過這個專案營利?
Lars:是,解決方案採用開放原始碼。我並未將特定授權放在授權上,但我認為 Apache 2.0 會是可行的。許多大型公司都在使用這項授權,包括 Google。處理 SimpleMouse 時,不會考慮透過專案營利,這不是我的目標。不過我認為嘗試將內容運用到實際執行或許會很合理,但這會產生一定費用。終極目標是實現目標。我希望以低成本推動了大規模的導入作業。