Najciekawsze momenty społeczności GDE: Lars Knudsen

Lars Knudsen jest ekspertem ds. programowania w Google i porozmawialiśmy z nim o tym, jak urządzenie za 10 USD może ułatwić osobom z niepełnosprawnościami korzystanie z komputerów.

Monika Janota
Monika Janota

Lars występujący na scenie z 2 innymi prelegentami.

Monika: Co Cię zainspirowało do zostania programistą? Na czym się teraz skupiasz?

Lars: Mam studia magisterskie z inżynierii, ale technika interesuje mnie znacznie wcześniej. Gdy byłem dzieckiem w latach 80., mój ojciec był właścicielem firmy komputerowej, która zajmowała się projektowaniem graficznym. Czasami, zwłaszcza podczas letnich wakacji, zabierał mnie ze sobą do pracy. Niektórzy z jego pracowników mnie obserwowali. Jeden z naprawdę mądrych ludzi powiedział mi kiedyś: „Lear, muszę coś zrobić, ale tu jest instrukcja obsługi w języku C, a tam jest komputer. Oto jak uruchomić kompilator C. W razie jakichkolwiek pytań proszę o zapytanie”. Zaczęłam pisać krótkie teksty, które były tłumaczone na język zrozumiały dla komputera. Wydawało mi się to magiczne. Gdy zaczęłam pracę w wieku 11 lat, mogłam tworzyć małe aplikacje dla kolegów i koleżanek z klasy lub używać ich w szkole. Tak to się zaczęło.

Przez lata pracowałam dla wielu firm, takich jak Nokia, Maersk i Openwave. Początkowo, podobnie jak w wielu innych zawodach, po pewnej wiedzy wydaje się, że da się zrobić wszystko, ale z czasem okazuje się, że każda firma ma swój własny sposób działania.

Po kilku latach pracy w firmie medycznej założyłem w 1999 r. własną firmę. Pracowałem jako niezależny kontrahent, dzięki czemu miałem(-am) możliwość szybkiego poznania wielu organizacji. Po podpisaniu pierwszych 5 umów dowiedziałem się, że każda firma uważa, że odnalazła idealną konfigurację, ale wszystkie są zupełnie inne. W tym czasie zetknęłam się też z wieloma różnymi technologiami, systemami operacyjnymi itp. Gdy skończyłam 20 lat, mój sposób myślenia się zmienił. Na początku koncentrowałam się wyłącznie na jednej technologii i chciałam dowiedzieć się wszystkiego o niej. Z czasem zacząłem myśleć o łączeniu technologii w celu poprawy naszego życia. Szczególnie zależy mi na tym, by ograniczyć przepaść między zespołem A a zespołem B. Staram się przekazywać jak największą wiedzę do regionów, w których ludzie nie mają możliwości posiadania komputera lub bezpłatnego studiowania na uniwersytecie.

Nadal współpracuję z partnerami zewnętrznymi, ale w miarę możliwości wybieram projekty, które mają pozytywny wpływ na środowisko lub społeczeństwo. Pracuję nad wbudowanym oprogramowaniem dla firmy oferującej aparaty słuchowe o nazwie Oticon. Jeśli chodzi o oprogramowanie, pracowałam nad wszystkim, od najmniejszych mikrokontrolerów po chmurę. spora część moich działań odbywa się w internecie. Staram się łączyć technologie, gdy tylko ma to sens.

Monika: Czy przed dołączeniem do programu dla Ekspertów Produktowych Google istniałeś(-aś) w społecznościach dla programistów?

Lars: Tak, brałam udział w spotkaniach i konferencjach. Pierwszy kontakt ze społecznością ze społecznością nawiązałem, pracując dla firmy Nokia. Około 2010 roku spotkałem Kennetha Rohde Christiansena, który wcześniej stał się GDE. Zainspirował mnie do sprawdzenia, jak technologie internetowe mogą być przydatne dla ambitnych specjalistów z dziedziny technologii w krajach rozwijających się. Tworzenie i wdrażanie rozwiązań w języku C++, C# lub Java wymaga pewnego doświadczenia, ale każdy, kto ma dostęp do komputera, przeglądarki i notatnika, może zacząć tworzyć aplikacje internetowe i niezwykle szybko się uczyć. Można stworzyć w pełni funkcjonalną aplikację przy ograniczonych zasobach i zacząć pracować od zera. Dlatego właśnie nazywam internet bardzo demokratycznym stosem technologicznym.

Wróćmy jednak do społeczności – po jakimś czasie zainteresowałam się standaryzacją sieci i problemami, jakie mogą rozwiązać nowoczesne technologie internetowe. Eksperymentowałem(-am) z nowymi funkcjami przeglądarki przed ich udostępnieniem. Pracowałem wtedy dla firmy Nokia, opracowując dla niej flagowe urządzenie z systemem Linux – N9. Stworzona przez nas przeglądarka była oparta na technologii WebKit i mam doskonałe doświadczenie w programowaniu funkcji na potrzeby dużego projektu open source. Po odejściu z Nokii uczestniczę w konferencjach internetowych i spotkaniach, więc korzystne było dołączenie do społeczności GDE w 2017 roku.

Bardzo lubię pracę społeczności i wszystko, co robimy, zwłaszcza przed pandemią Chrome Developer Summit, podczas której pomagam w pracy na stoisku wraz z grupą wspaniałych inżynierów Google i innych pracowników firmy GDE.

Monika: Co doradzisz młodemu programiście, który dopiero zaczyna karierę zawodową i nie wie, którą ścieżkę wybrać?

Lars: Z mojego doświadczenia wynika, że jeśli możesz sobie na to pozwolić, rozważ podjęcie współpracy na zasadach freelancera dla kilku różnych firm. Zetkniesz się z tym kodem w wielu różnych formach i etapach programowania. Poznasz wiele systemów operacyjnych i języków oraz dowiesz się, jak rozwiązywać problemy na różne sposoby. Dzięki temu zdobyłam duże doświadczenie jako starszy programista, gdy skończyłam 20 lat. Takie podejście pomoże Ci szybciej osiągnąć cele zawodowe.

Oprócz tego świetnie się baw, odkrywaj i baw się na sprzęcie i oprogramowaniu. Zastanów się nad stworzeniem czegoś, co rozwiązuje rzeczywisty problem – na przykład dla znajomych, rodziny lub lokalnej firmy. Nie bój się podejść do czegoś, czego nigdy wcześniej nie robiłeś.

Monika: Jakie są przyszłość technologii internetowych?

Lars: Myślę, że od kilku lat internet w pełni jest w stanie zapewnić platformę do obsługi dużych aplikacji w terenie, zarówno dla klientów indywidualnych, jak i biznesowych. Po stronie serwera technologie internetowe zapewniają bezproblemową obsługę, zwłaszcza w przypadku programistów frontendów, którzy chcą stworzyć komponent backendu. Mogą łatwiej rozpocząć pracę teraz. Znam ludzi, którzy korzystali z Firebase i Heroku, aby zrealizować swoją pracę. Ten trend będzie się rozwijać – technologie internetowe wystarczą do tworzenia dowolnych złożonych rozwiązań. Uważam, że umiejętności internetowe – Projekt Fugu 🐡 naprawdę uwalniają ten potencjał.

Patrząc na to z innego punktu widzenia, myślę też, że udostępnienie pełnej dokumentacji i obszernych artykułów nie tylko w języku angielskim, ale także w innych językach (np. hiszpańskim i portugalskim) otworzyłoby przed Tobą wielki potencjał w Ameryce Łacińskiej i innych regionach. Deweloperzy często nie znają języka angielskiego na tyle dobrze, aby móc w pełni zrozumieć wszystkie istotne artykuły. Trzeba też dać im możliwość uczenia się tak szybko, jak to możliwe, jeszcze zanim rozpoczną studia, a jednocześnie mieszkają w jego rodzinnym mieście. Dzięki tym umiejętnościom mogą pomóc lokalnym społecznościom i firmom, zanim opuszczą dom i mogą nigdy nie wrócić.

Tomek: Od pisania kodu C na losowym komputerze do hakowania sprzętowego dużo się działo. Jak udało Ci się to osiągnąć?

Lars: Zacząłem rozbierać mnóstwo sprzętu, który miałem w domu. Mój tata nie zawsze był szczęśliwy, gdy nie potrafiłam jej z powrotem połączyć. Z czasem nauczyłam się, jak budować małe urządzenia, ale naprawdę zajęło to dużo czasu, gdy dołączyłem do Nokii, gdzie poczułem się świetnie. Udało mi się stworzyć małe wygaszacze ekranu, komponenty do telefonów z serii 30. Było to dla mnie naprawdę pasjonujące i mogłam myśleć nieszablonowo. Przylecili mi zadanie stworzenia gry w węża na te urządzenia. To było bardzo interesujące. Podstawową różnicą między tworzeniem systemów wbudowanych a większością innych rzeczy (w tym także w internecie) jest to, że bazują one na niewielkich ilościach i nie mają dużo miejsca ani pamięci. Podczas budowania węża dostępna pamięć RAM miała mniej niż jedną trzecią bufora klatek (około 120 x 120 pikseli). Musiałam wymyślić sposoby na algorytmiczne łączenie komponentów na ekranie, tak aby wyglądały one statyczne jak kafelki. Wiele się nauczyłam – przechodząc z większych systemów na małe, wbudowane rozwiązania.

Tomek: Umiejętności typowego programisty frontendu bardzo różnią się od umiejętności osoby, która buduje sprzęt do obsługi frontendu. Jak zachęcasz programistę frontendu, aby zajrzał do sprzętu i zaczął myśleć w modelu binarnym?

Lars: Myślę, że pierwszym krokiem jest zapoznanie się z niektórymi interfejsami API Fugu, które działają w Chrome i Edge, oraz są wbudowane we wszystkie obecne systemy. To wszystko, czego potrzebujesz na początek.

Kolejną rzeczą jest to, że łańcuchy narzędzi do tworzenia wbudowanych rozwiązań wymagają trudnej nauki. Jeśli chcesz zbudować własny sprzęt, zacznij od rozwiązania Arduino lub ESP32 – rozwiązania, które jest łatwe do kupienia i dosyć niedrogie. Dzięki odpowiedniemu środowisku programistycznemu możesz błyskawicznie rozpocząć projekt.

Możesz też kupić pulsometr lub jednostkę z wieloczujnikami, które korzystają już z usług GATT Bluetooth, dzięki czemu nie musisz tworzyć własnego sprzętu ani oprogramowania układowego – możesz wykorzystać już oprogramowanie i zacząć eksperymentować z interfejsem Web Bluetooth API, aby się z nim komunikować.

Niektóre urządzenia korzystają też z protokołu szeregowego – do nich możesz użyć interfejsu Web Serial API (także Fugu). Ostatnio rozważałem użycie interfejsu WebHID API, który umożliwia komunikację ze wszystkimi urządzeniami, z których każdy ma dostęp. Znalazłem w piwnicy stare urządzenia, 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.

Jest wiele różnych rozwiązań w zależności od tego, co chcesz stworzyć, ale programista stron internetowych powinien kupić solidny czujnik albo np. Thingy 52 firmy Nordic Semiconductor. ma wiele czujników i niewielkim nakładem pracy można połączyć z aplikacją internetową.

Tomek: Pierwszym krokiem jest połączenie się z urządzeniem, a później wydajną rozmowę z urządzeniem to coś zupełnie innego. Dlaczego nie poddaliście się po napotkaniu przeszkód? Co zachęciło Cię do dalszej pracy?

Lars: Dla mnie osobiście najważniejszym była dla mnie społeczny aspekt rozwiązania problemu. Gdy zacząłem pracować nad własnymi projektami, miałem wizję i chciałem zbudować laboratorium naukowe w pudełku dla rozwijających się regionów. Moja żona jest z Meksyku i zobaczyłam kilka tam szkół. niektóre z siedzibą poza dużymi miastami są całkiem zniszczone bez dostępu do materiałów i sprzętu, które mamy w naszej części świata.

To pasja do tworzenia czegoś, co mogę wykorzystać, by pomóc innym. Właśnie to utrzymywała motywację. Bardzo podobała mi się też pomoc społeczności. Skontaktowałam się z kilkoma pracownikami Google, którzy byli bardzo pomocni i cierpliwie odpowiadali na wszystkie moje pytania.

Tomek: wiele osób ma w domu jakieś sprzęty, ale nie wie, co z nim zrobić. Skąd czerpiesz inspirację do wszystkich swoich niesamowitych projektów, a zwłaszcza projektu pod nazwą SimpleMouse?

Lars: Ostatnio często regeneruję dużo starego sprzętu, ale w tym konkretnym projekcie nie określono jeszcze nazwy, ale nazwijmy ją SimpleMouse. Skorzystałem ze swojego doświadczenia. Wcześniej pracowałem nad ułatwieniami dostępu i zauważyłem, że niektóre już po prostu przestają działać. wymaga to starego systemu Windows XP z odpowiednim oprogramowaniem. Nie da się ich zaktualizować. Korzystać z nich tylko w domu, bo nie można przenieść konfiguracji.

Dlatego zacząłem się zastanawiać, jak połączyć moje umiejętności ze świata osadzonego w projekcie Fugu i co teraz jest możliwe w internecie, aby tworzyć tani i przystępny sprzęt w połączeniu z łatwym do zrozumienia oprogramowaniem po obu stronach.

Do tego projektu wzięłam małą wtyczkę USB z układem refleksyjnym, czyli nRF52840. Komunikuje się on przez Bluetooth po jednej stronie, a przez USB po drugiej. Możesz to zaprogramować tak, by działał po obu stronach. Pomyślałam też o urządzeniach do sterowania komputerem – myszy i klawiaturze. Niektóre osoby niepełnosprawne mogą mieć trudności z obsługą takich urządzeń, dlatego chciałam im pomóc.

Zacząłem się upewnić, że w każdym systemie operacyjnym będzie widoczny klucz USB jako mysz. Możesz sterować nią z aplikacji natywnej lub internetowej – bezpośrednio przez Bluetooth. Potem stworzyłem aplikację internetową – prosty szablon, dzięki któremu można dowolnie dostosowywać komponenty sieciowe. Dzięki temu każdy może sterować swoim komputerem za pomocą aplikacji internetowej, którą utworzyłam w kilka godzin na telefonie z Androidem.

Dzięki takiej konfiguracji każdy użytkownik 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. Co ważne, możesz go zabrać ze sobą, gdziekolwiek jesteś, i używać go też z innymi urządzeniami. Proces będzie taki sam. Uważam, że przenośność i przystępność cenowa urządzenia są dla mnie bardzo ważne, ponieważ użytkownicy nie są już zmuszeni do korzystania z własnych urządzeń i nie są już ograniczeni do jednego miejsca.

Tomek: Czy miał(a) Pan/Pani możliwość przetestowania urządzenia w rzeczywistości?

Lars: Podczas mojej ostatniej podróży do Meksyku omówiłam to z pracownikiem sieci, który tam mieszka. zastanawia się teraz nad możliwościami lokalnego użycia urządzenia. Sprzęt jest tam naprawdę drogi, ale klucz USB zwykle kosztuje około 10 USD. Obecnie sprawdza, czy możemy utworzyć w tym miejscu konfigurację lokalną, aby ją wypróbować. Nie mam jeszcze za sobą oficjalnych prób w Danii.

Thomas: wiele urządzeń przeznaczonych dla osób z niepełnosprawnościami jest bardzo drogich. Czy Pana/Pani firma planuje rozpocząć współpracę z jakąś konkretną firmą i uruchomić ją za ułamek ceny drogiego sprzętu?

Lars: Tak, zdecydowanie. Rozmawiałem już na ten temat z lokalnym producentem sprzętu. Oczywiście urządzenie nie zastąpi wszystkich wyspecjalizowanych rozwiązań, ale może być pierwszym krokiem do stworzenia czegoś większego – na przykład wykorzystania rozpoznawania głosu, które jest już dostępne w technologiach internetowych. To łatwy sposób na sterowanie urządzeniami za pomocą telefonu z Androidem. może współpracować z każdym urządzeniem.

Samo możliwość utworzenia w sieci, czego tylko chcesz, i wykorzystania jej do sterowania komputerem hosta otwiera wiele możliwości.

Thomas: czy udostępniacie swój projekt Zephyr jako oprogramowanie typu open source? Jakiego rodzaju licencji używasz? Czy planowane jest zarabianie na projekcie?

Lars: Tak, rozwiązanie jest typu open source. Nie przydzieliłem do tego konkretnej licencji, ale sądzę, że Apache 2.0 to rozwiązanie. Z tej licencji korzysta wiele dużych firm, w tym Google. Gdy pracowałem nad SimpleMouse, nie myślałem o zarabianiu na tym projekcie. Nie był to moim celem. Myślę też, że dobrze byłoby spróbować w jakiś sposób wprowadzić go do produkcji, co wiąże się z kosztami. Ostatecznym celem jest jego udostępnienie. Zależy mi na tym, by wdrożono ją na dużą skalę przy niskim koszcie.