Najciekawsze momenty społeczności GDE: Lars Knudsen

Lars Knudsen jest ekspertem Google Developers. Rozmawialiśmy z nim o tym, jak urządzenie za 10 USD może ułatwić osobom niepełnosprawnym dostęp do komputerów.

Monika Janota
Monika Janota

Lars prezentuje na scenie z dwoma innymi prelegentami.

Monika: Co zainspirowało Cię do zostania deweloperem? Na czym się obecnie skoncentrujesz?

Lars: Mam już tytuł magistra inżyniera, ale moje zainteresowanie technologią zaczęło się znacznie wcześniej. Gdy byłem dzieckiem w latach 80., tata należał do firmy komputerowej, która zajmowała się projektowaniem graficznym. Czasami, szczególnie w okresie wakacji, zabiera ze mną do pracy. Czasami niektórzy pracownicy go obserwowali. Pewien naprawdę mądry człowiek powiedział mi kiedyś: Oto jak uruchomić kompilator C. Jeśli masz jakieś pytania, przyjdź i zapytaj mnie”. Zaczęłam pisać krótkie teksty, które zostały przetłumaczone na coś, co komputer jest w stanie zrozumieć. Wydawało mi się to magiczne. Gdy zaczynałam pracę, miałam 11 lat. Około siódmej klasy mogłam tworzyć małe aplikacje dla kolegów z klasy lub wykorzystywać je w szkole. Tak to się zaczęło.

Przez lata pracowałem dla wielu firm, takich jak Nokia, Maersk i Openwave. Na początku, podobnie jak w wielu innych zawodach, gdy wiesz nieco wszystko, wydaje Ci się, że możesz zrobić wszystko, ale z czasem przekonasz się, że każda firma ma swoje podejście.

Po kilku latach pracy w firmie medycznej w 1999 roku założyłam własną firmę. Pracowałem jako niezależny kontrahent, dzięki czemu miałem okazję szybko poznać wiele organizacji. Po sfinalizowaniu pierwszych 5 umów wiem, że każda firma znalazła idealną konfigurację, ale każda z nich jest zupełnie inna. Miałem wtedy ze sobą kontakt z wieloma różnymi technologiami, systemami operacyjnymi itp. Po dwudziestu latach moje myślenie uległo zmianie. Na początku koncentrowałam się wyłącznie na jednej technologii i chciałam dowiedzieć się o niej wszystkiego. Z czasem zaczęłam myśleć o łączeniu technologii, by poprawić jakość naszego życia. Szczególnie zależy mi na zwężaniu między tym, co nazywamy zespołem A i B. Staram się przekazywać jak najwięcej informacji do regionów, w których ludzie nie mają możliwości posiadania komputera czy bezpłatnego studiów.

Nadal pracuję jako kontrahent w przypadku partnerów zewnętrznych, ale w miarę możliwości staram się wybierać projekty, które mają w jakiś sposób pozytywny wpływ na środowisko lub społeczeństwo. Obecnie pracuję nad oprogramowaniem osadzonym dla aparatu słuchowego o nazwie Oticon. Jeśli chodzi o oprogramowanie, pracuję nad wszystkim, od najmniejszych mikrokontrolerów po chmurę. Duża część mojej działalności dotyczy internetu. Staram się połączyć technologie, gdy ma to sens.

Monika: Czy przed dołączeniem do Programu dla Ekspertów Produktowych Google angażowałeś się w społeczności programistów?

Lars: Tak, brałem udział w spotkaniach i konferencjach. Pierwszy raz nawiązałem kontakt ze społecznością, gdy pracowałem dla Nokia. Około 2010 roku poznałem Kennetha Rohde'a Christiansena, który stał się GDE, a niedrogie. Zainspirował mnie do zapoznania się z przydatnością technologii internetowych dla ambitnych specjalistów z branży technologicznej w krajach rozwijających się. Tworzenie i wdrażanie rozwiązań w językach C++, C# lub Java wymaga kilku lat doświadczenia, ale każdy, kto ma dostęp do komputera, przeglądarki i notatnika, może zacząć tworzyć aplikacje internetowe i szybko się uczyć. Można stworzyć w pełni funkcjonalną aplikację przy ograniczonych zasobach i rozwijać się od zera. Dlatego nazywam internet bardzo demokratyzujący stos technologiczny.

Wróćmy jednak do społeczności – po pewnym czasie zainteresowałem się standaryzacją witryn internetowych i tym, jakie problemy mogą rozwiązać najnowocześniejsze technologie internetowe. Przed premierą eksperymentowałam z nowymi funkcjami w przeglądarce. Pracowałem wtedy dla firmy Nokia, opracowując flagowe urządzenie N9 z systemem Linux. Stworzona przez nas przeglądarka była oparta na technologii WebKit. Mam pewne doświadczenie w tworzeniu funkcji dla dużego projektu typu open source. Po wyjściu z Nokii brałem udział w konferencjach internetowych i spotkaniach, więc w 2017 r. chciałem dołączyć do społeczności GDE.

Bardzo podoba mi się praca społeczności i wszystko, co wspólnie robimy, szczególnie przed pandemią Chrome Developer Summit, gdzie miałam okazję pomagać w obowiązkach razem z innymi inżynierami Google i innymi członkami społeczności GDE.

Monika: Jakiej rady udzielisz młodemu programiście, który dopiero zaczyna karierę zawodową i nie jest pewny, którą ścieżkę wybrać?

Lary: z własnego doświadczenia – jeśli możesz sobie na to pozwolić – rozważ pracę freelancera w kilku różnych firmach. Dzięki temu będziesz mieć kontakt z kodem w różnych formach i na różnych etapach programowania. Poznasz wiele systemów operacyjnych i języków oraz nauczysz się rozwiązywać problemy na wiele sposobów. Dzięki temu nabyłam dużo doświadczenia jako doświadczonego programisty po dwudziestu latach. Takie podejście pomoże Ci szybciej osiągnąć cele zawodowe.

Poza tym możesz się bawić, odkrywać, bawić się sprzętem i oprogramowaniem. Rozważ zbudowanie czegoś, co może rozwiązać prawdziwy problem – może to być dla znajomych, rodziny lub firmy działającej lokalnie. Nie bój się przejść do czegoś, czego nigdy nie robisz.

Monika: Jaką przyszłość spodziewają się technologie internetowe?

Lars: od kilku lat uważam, że internet w pełni stanowi platformę dla dużych zastosowań – zarówno dla klientów indywidualnych, jak i biznesowych. Technologie internetowe zapewniają płynną obsługę serwerów, zwłaszcza programistom frontendu, którzy chcą utworzyć komponent backendu. Teraz znacznie łatwiej mogą zacząć z niej korzystać. Znam osoby, które do tego celu używały Firebase i Heroku. Ten trend będzie się rósł – technologie internetowe wystarczą do utworzenia złożonych rozwiązań dowolnego rodzaju. Uważam, że projekt Web Capabilities – Project Fugu 🐡 pozwala naprawdę wydobyć ten potencjał.

Patrząc na to z nieco z innej perspektywy, uważam, że jeśli udostępnimy pełną dokumentację i szczegółowe artykuły nie tylko w języku angielskim, ale także w innych językach (np. w języku hiszpańskim i portugalskim), odblokujemy ogromny potencjał w Ameryce Łacińskiej i innych regionach. Tam programiści często nie znają angielskiego na tyle dobrze, by w pełni zrozumieć wszystkie istotne artykuły. Powinniśmy też dać im możliwość kształcenia się jak najszybciej, jeszcze przed początkiem studiów, jeszcze w ich rodzinnym mieście. Mogą wykorzystać te umiejętności, aby pomagać lokalnym społecznościom i firmom, zanim wyjdą z domu i być może nigdy do niego nie wróci.

Thomas: Przeszłeś długą drogę od programowania w C na losowym komputerze, aż do hakowania sprzętu. Jak to zrobiłeś?

Lary: Zaczęłam rozbierać na części sprzęt, który miałam w domu. Mój tata nie zawsze był szczęśliwy, kiedy nie potrafiłam go złożyć. Z biegiem czasu nauczyłam się tworzyć małe urządzenia, ale bardzo później wszystko zaczęło się dziać, gdy dołączyłem do Nokii, gdzie miałem własne doświadczenia. Miałem okazję zbudować małe wygaszacze ekranu, komponenty na telefony z serii 30. Byłam bardzo pasjonatywna i mogłam po prostu myśleć nieszablonowo. Przypisał mi zadanie utworzenia gry w węża na te urządzenia. To było bardzo interesujące doświadczenie. Główna różnica między tworzeniem systemów wbudowanych a większością innych elementów (w tym internetu) polega na tym, że zostawiasz niewielkie ślady – nie masz zbyt wiele miejsca ani pamięci do wykorzystania. Podczas tworzenia Węża dostępna ilość pamięci RAM była mniejsza niż jedna trzecia bufora ramki (około 120 x 120 pikseli). Musiałam wymyślić sposób algorytmicznego ponownego łączenia komponentów na ekranie, tak aby wyglądały statyczne, jakby były kafelkami. Sporo się dowiedziałam. Chodziło o przejście z większych systemów na małe, wbudowane rozwiązania.

Thomas: umiejętności typowego programisty frontendu bardzo różnią się od umiejętności osoby tworzącej sprzęt. Jak można zachęcić dewelopera frontendu do zastanowienia się nad sprzętem i rozpoczęcia myślenia binarnego?

Lars: w pierwszej kolejności warto przyjrzeć się niektórym z interfejsów API Fugu, które działają w Chrome i Edge oraz są wbudowane we wszystkie główne systemy obecnie używane. To wszystko, czego potrzebujesz na początku.

Inną rzeczą jest to, że łańcuchy narzędzi do tworzenia wbudowanych rozwiązań wymagają długiej nauki. Jeśli chcesz stworzyć własny sprzęt, zacznij od Arduino lub ESP32. Jest to coś, co jest łatwe w zakupie i w przystępnej cenie. Dzięki odpowiedniemu środowisku programistycznemu możesz błyskawicznie rozpocząć pracę nad projektem.

Możesz też kupić pulsometr lub urządzenie z wieloczujnikami, które korzystają już z usług Bluetooth GATT. Nie musisz więc tworzyć własnego sprzętu ani oprogramowania – aby rozpocząć komunikację z interfejsem Web Bluetooth API, możesz użyć tego, co już jest w pakiecie, i eksperymentować z interfejsem Web Bluetooth API.

Istnieją też urządzenia korzystające z protokołu szeregowego – do tego celu można użyć interfejsu Web Serial API (również Fugu). Niedawno zajmuję się interfejsem WebHID API, który umożliwia komunikację ze wszystkimi urządzeniami interfejsu, do których każdy ma dostęp. Znalazłam w piwnicy stare, które od lat nie były obsługiwane przez żaden system operacyjny, ale dzięki inżynierii wstecznej ich ponowne włączenie zajęło mi kilka godzin.

Są różne sposoby w zależności od tego, co chcesz zbudować. Jednak deweloperowi stron internetowych zalecam zakup solidnej jednostki czujnika, na przykład Thingy 52 firmy Nordic Semiconductor. Ma ona dużo czujników, więc bez problemu podłączysz się do swojej aplikacji internetowej.

Thomas: Połączenie się z urządzeniem to pierwszy krok, ale później mówienie do niego z pełną mocą – to zupełnie coś innego. Dlaczego nie poddajesz się po zmierzeniu z przeszkodami? Co zachęciło Cię do dalszej pracy?

Lars: Dla mnie osobiście najważniejszy aspekt rozwiązywania problemu był kluczowym aspektem społecznościowym. Gdy zacząłem pracować nad własnymi projektami, miałem wizję i chciałem zbudować laboratorium naukowe w pudełku dla regionów rozwijających się. Moja żona jest z Meksyku i widziałam tam kilka szkół. Niektóre znajdują się poza dużymi miastami, są dość obszerne, bez dostępu do materiałów i sprzętu, które mamy w naszej części świata.

Prawdziwą pasję trzymała mnie pasja do tworzenia czegoś, co mogłoby pomóc innym. Poza tym podobało mi się wsparcie społeczności. Skontaktowałam się z kilkoma pracownikami Google – wszyscy byli niezwykle pomocni i cierpliwie odpowiedzieli na wszystkie moje pytania.

Thomas: Wiele osób ma w domu jakiś sprzęt, ale nie wie, co z nim zrobić. Jak znaleźć inspirację do wszystkich swoich wspaniałych projektów, a zwłaszcza do projektu o pracującej nazwie SimpleMouse?

Lars: Ostatnio ostatnio wzorowywałem się do renowacji starego sprzętu, ale w tym konkretnym projekcie, nazwa nie została jeszcze ustawiona, ale nazwam to SimpleMouse, udało mi się wykorzystać swoje doświadczenie. Podczas pracy nad rozwiązaniami ułatwień dostępu widzę, że niektóre z nich po prostu już nie działają. Do ich uruchomienia potrzebny jest stary system Windows XP z określonym oprogramowaniem. Nie możesz ich zaktualizować. Możesz ich używać tylko w domu, ponieważ nie możesz przenieść konfiguracji.

Z tego względu zacząłem zastanawiać się, jak połączyć swoje umiejętności z wbudowanego świata z projektem Fugu oraz jakie możliwości można obecnie zrobić w internecie, aby stworzyć tanie i przystępne cenowo sprzęt w połączeniu z przejrzystym oprogramowaniem.

Do tego projektu użyłem niewielkiej wtyczki USB z układem lustrzanym nRF52840. Po jednej stronie urządzenie komunikuje się przez Bluetooth, a przez USB po drugiej. Możesz go zaprogramować tak, aby był dowolny po obu stronach. W pewnym momencie przyszedłem na myśl o urządzeniach, które sterują komputerem – o myszy i klawiaturze. Niektóre osoby z niepełnosprawnościami mogą mieć trudności z obsługą tych urządzeń, dlatego chciałam im pomóc.

Najpierw sprawdziłem, czy każdy system operacyjny widzi klucz USB jako mysz. Możesz sterować nim z poziomu aplikacji natywnej lub aplikacji internetowej bezpośrednio przez Bluetooth. Następnie udało mi się utworzyć aplikację internetową – prosty szablon, który użytkownicy mogą dowolnie rozszerzać za pomocą komponentów sieciowych. Dzięki temu każdy może sterować swoim komputerem w aplikacji internetowej, którą stworzyłem w ciągu zaledwie kilku godzin na telefonie z Androidem.

Dzięki takiej konfiguracji każdy z doświadczeniem w internecie może w ciągu kilku dni stworzyć bardzo spersonalizowane rozwiązanie dla osób z niepełnosprawnościami, które chcą sterować swoim komputerem. Największą zaletą jest to, że możesz mieć go zawsze przy sobie i używać razem z innymi urządzeniami. To będzie dokładnie tak samo. Dla mnie duże znaczenie mają przenośność i przystępność urządzeń, ponieważ ludzie nie muszą już ograniczać się do własnych urządzeń i nie muszą ograniczać się do jednego miejsca.

Thomas: Czy udało Ci się przetestować urządzenie w rzeczywistości?

Lars: Podczas mojej ostatniej podróży do Meksyku rozmawiałam o tym z internetowym zawodowcem, który właśnie analizuje możliwości korzystania z urządzenia lokalnie. Sprzęt, który tam znajdziesz, jest naprawdę drogi, ale klucz sprzętowy USB kosztuje zwykle około 10 dolarów. Teraz sprawdza, czy moglibyśmy stworzyć w nim lokalne konfiguracje i je wypróbować. Ale nie jestem jeszcze w stanie sprawdzono oficjalnych testów w Danii.

Thomas: Wiele urządzeń przeznaczonych dla osób z niepełnosprawnościami jest bardzo drogich. Czy planujesz współpracę z jakąś konkretną firmą i uruchamiasz ją za ułamek ceny tak drogiego sprzętu?

Lars: Tak, zdecydowanie. Rozmawiałem już w tej sprawie z lokalnym producentem sprzętu. Oczywiście urządzenie nie zastąpi wszystkich tych wysoce wyspecjalizowanych rozwiązań, ale może być pierwszym krokiem do stworzenia czegoś większego, np. dzięki wykorzystaniu rozpoznawania mowy, które jest już dostępne w technologiach internetowych. To prosty sposób na sterowanie urządzeniami za pomocą telefonu z Androidem – działa z każdym rodzajem urządzenia.

Tylko możliwość tworzenia dowolnych treści w internecie i używania ich do sterowania każdym komputerem hosta otwiera wiele możliwości.

Thomas: Czy publikujesz swój projekt Zephyr jako oprogramowanie open source? Jakiego rodzaju licencji używasz? Czy planujecie zarabiać na projekcie?

Lars: tak, rozwiązaniem jest oprogramowanie typu open source. Nie dodałem do niej konkretnej licencji, ale sądzę, że rozwiązaniem będzie Apache 2.0. Z tej licencji korzysta wiele większych firm, w tym Google. Gdy pracowałem nad SimpleMouse, nie myślałem o zarabianiu na projekcie – nie było to moim celem. Myślę też, że warto byłoby spróbować w jakiś sposób wykorzystać ją w produkcji, co wiąże się z kosztami. Podstawowym celem jest jej udostępnienie. Chętnie zobaczyłbym wdrożenie na dużą skalę niedrogo i na dużą skalę.