Destaques da comunidade do GDE: Lars Knudsen

Lars Knudsen é um Google Developer Expert. Conversamos com ele sobre como um dispositivo de US $10 pode tornar os computadores mais acessíveis para pessoas com deficiência.

Monika Janota
Monika Janota

Lars apresentando no palco com outros dois palestrantes.

Monika:o que inspirou você a se tornar desenvolvedora? Qual é seu foco profissional atual?

Lars:eu tenho um mestrado em engenharia, mas meu interesse por tecnologia começou muito antes disso. Quando eu era criança, nos anos 80, meu pai tinha uma empresa de computação que trabalhava com design gráfico. Às vezes, principalmente durante as férias de verão, ele me levava para trabalhar com ele. Às vezes, alguns dos funcionários dele ficavam de olho em mim. Um cara muito inteligente me disse uma vez: "Lars, preciso terminar um trabalho, mas aqui está um manual de C e um computador. Veja como iniciar um compilador C. Se você tiver alguma dúvida, pergunte para mim." Comecei a escrever textos curtos que foram traduzidos para algo que o computador pudesse entender. Parecia mágico para mim. Eu tinha 11 anos quando comecei e, por volta do sétimo ano, consegui criar pequenos aplicativos para meus colegas de classe ou para serem usados na escola. Foi assim que começou.

Ao longo dos anos, trabalhei para muitas empresas, incluindo a Nokia, a Maersk e a Openwave. No início, como em muitas outras profissões, você sabe um pouco e sente que pode fazer tudo, mas com o tempo você aprende que cada empresa tem uma certa maneira de fazer as coisas.

Depois de alguns anos trabalhando para uma empresa de produtos médicos, abri minha própria empresa em 1999. Trabalhei como freelancer e, graças a isso, tive a chance de conhecer várias organizações rapidamente. Depois de concluir os cinco primeiros contratos, descobri que cada empresa achava que tinha encontrado a configuração perfeita, mas todas eram completamente diferentes. Naquela época, também tive contato com muitas tecnologias diferentes, sistemas operacionais etc. Por volta dos meus 20 anos, minha mentalidade mudou. No início, eu estava estritamente focado em uma tecnologia e queria aprender tudo sobre ela. Com o tempo, comecei a pensar em como combinar tecnologias como uma forma de melhorar nossas vidas. Tenho um interesse especial em diminuir a lacuna entre o que chamamos de equipe A e a equipe B no mundo. Tento transferir o máximo de conhecimento possível para regiões em que as pessoas não têm o luxo de ter um computador ou estudar na universidade sem custos.

Continuo trabalhando como terceirizada para parceiros externos, mas, sempre que possível, tento escolher projetos que tenham algum impacto positivo no meio ambiente ou na sociedade. Atualmente, estou trabalhando em um software integrado para uma empresa de aparelhos auditivos chamada Oticon. No que diz respeito a software, tenho trabalhado com tudo, desde os microcontroladores mais minúsculos até a nuvem. Muito do que faço gira em torno da Web. Estou tentando combinar tecnologias sempre que faz sentido.

Monika: você já participava de comunidades de desenvolvedores antes de entrar no programa Experts do Google Developers?

Lars:Sim, participei de reuniões e conferências. Eu me conectei à comunidade pela primeira vez enquanto trabalhava na Nokia. Por volta de 2010, conheci Kenneth Rohde Christiansen, que se tornou um GDE antes de mim. Ele me inspirou a ver como as tecnologias da Web podem ser úteis para aspirantes a profissionais de tecnologia em países em desenvolvimento. Desenvolver e implantar soluções usando C++, C# ou Java requer alguns anos de experiência, mas qualquer pessoa que tenha acesso a um computador, navegador e bloco de notas pode começar a desenvolver aplicativos baseados na Web e aprender muito rápido. É possível criar um aplicativo totalmente funcional com recursos limitados e aumentar a capacidade do zero. Por isso, chamo a Web de pilha de tecnologia muito democrática.

Mas voltando à comunidade, depois de um tempo, fiquei interessado na padronização da Web e em quais problemas as tecnologias mais avançadas da Web poderiam resolver. Testei novos recursos em um navegador antes do lançamento. Eu trabalhava para a Nokia na época, desenvolvendo para um dispositivo principal baseado em Linux, o N9. O navegador que criamos foi baseado no WebKit, e tive uma ótima experiência desenvolvendo recursos para um grande projeto de código aberto. Nos anos após deixar a Nokia, me envolvi em conferências e encontros pela Web. Por isso, fez sentido participar da comunidade do GDE em 2017.

Eu realmente gosto do trabalho da comunidade e de tudo o que estamos fazendo juntos, especialmente as Chrome Developer Summits antes da pandemia, em que pude ajudar com o plantão de estande com um monte de engenheiros do Google e outros GDEs incríveis.

Monika:que conselho você daria a um jovem desenvolvedor que está começando a carreira profissional e não tem certeza de qual caminho seguir?

Lars: Eu diria que, pela minha experiência, se você puder, considere trabalhar como freelancer para algumas empresas diferentes. Assim, você vai conhecer o código em muitas formas e estágios de desenvolvimento. Você vai conhecer diversos sistemas operacionais e linguagens e aprender a resolver problemas de várias maneiras. Isso me ajudou muito. Eu ganhei experiência como desenvolvedor sênior aos meus 20 anos. Essa abordagem vai ajudar você a alcançar suas metas profissionais mais rapidamente.

Além disso, divirta-se, explore e brinque com o hardware e o software. Crie algo que resolva um problema real, talvez para seus amigos, familiares ou uma empresa local. Não tenha medo de se aventurar em algo que você nunca fez antes.

Monika:qual é o futuro das tecnologias da Web?

Lars:Acho que, há alguns anos, a Web já é capaz de oferecer uma plataforma para grandes aplicações de campo, tanto para o consumidor quanto para as empresas. No lado do servidor, as tecnologias da Web oferecem uma experiência perfeita, especialmente para desenvolvedores de front-end que querem criar um componente de back-end. Agora é mais fácil para eles começarem. Conheço pessoas que usavam o Firebase e o Heroku para fazer o trabalho. E essa tendência vai crescer: as tecnologias da Web serão suficientes para criar soluções complexas de qualquer tipo. Acredito que o Web Capabilities - Project Fugu 🐡 realmente libera esse potencial.

Olhando por um ponto de vista um pouco diferente, também acho que, se fornecermos documentação completa e artigos detalhados não apenas em inglês, mas também em outros idiomas (por exemplo, espanhol e português), poderíamos desbloquear muito potencial na América Latina e em outras regiões, é claro. Os desenvolvedores geralmente não sabem inglês bem o suficiente para entender todos os artigos relevantes. Também precisamos dar a eles a oportunidade de aprender o mais cedo possível, mesmo antes de começarem a universidade, enquanto ainda estão nas cidades de origem. Eles podem usar essas habilidades para ajudar comunidades e empresas locais antes de saírem de casa e talvez nunca mais voltarem.

Thomas:Você percorreu um longo caminho, de desenvolvimento em C em um computador aleatório para hackear hardware. Como você fez isso?

Lars:Comecei a desmontar muitos hardwares que eu tinha em casa. Meu pai não ficava feliz quando eu não conseguia montar. Com o tempo, aprendi a criar alguns dispositivos pequenos, mas isso realmente decolou muito mais tarde, quando entrei na Nokia, onde tive minha experiência em dispositivos embarcados. Tive a oportunidade de criar protetores de tela pequenos, componentes para os smartphones da série 30. Eu era muito apaixonado por isso e conseguia pensar fora da caixa. Ele me deu a tarefa de criar um jogo Snake para esses dispositivos. Foi uma experiência muito interessante. A principal diferença entre criar sistemas embarcados e a maioria das outras coisas (incluindo a Web) é que você deixa uma pequena pegada, ou seja, não tem muito espaço ou memória para usar. Durante a criação do Snake, a RAM disponível era de menos de um terço do frame buffer (cerca de 120 x 120 pixels). Tive que encontrar maneiras de reunir os componentes na tela de forma algorítmica para que eles parecessem estáticos, como se fossem blocos. Aprendi muito. Foi a mudança de sistemas maiores para soluções pequenas e integradas.

Thomas:o conjunto de habilidades de um desenvolvedor de front-end típico é muito diferente do de alguém que cria hardware integrado. Como você incentivaria um desenvolvedor de front-end a analisar o hardware e começar a pensar em binário?

Lars:Acho que a primeira etapa é analisar algumas das APIs Fugu que funcionam no Chrome e no Edge e que são integradas a todos os principais sistemas atuais. Isso é tudo o que você precisa no início.

Outra coisa é que as cadeias de ferramentas para criar soluções integradas têm uma curva de aprendizado íngreme. Se você quiser criar seu próprio hardware personalizado, comece com o Arduino ou o ESP32, que são fáceis de comprar e bastante baratos. Com o ambiente de desenvolvimento certo, você pode colocar seu projeto em funcionamento rapidamente.

Você também pode comprar um monitor de frequência cardíaca ou uma unidade de vários sensores, que já usam os serviços Bluetooth GATT. Assim, não é necessário criar seu próprio hardware ou firmware. Basta usar o que já existe e começar a experimentar a API Web Bluetooth para começar a se comunicar com ela.

Há também dispositivos que usam um protocolo serial. Para esses casos, você pode usar a API Web Serial (também Fugu). Recentemente, comecei a usar a API WebHID, que permite conversar com todos os dispositivos de interface humana a que todos têm acesso. Encontrei alguns antigos no meu porão que não tinham suporte de nenhum sistema operacional há anos, mas, graças à engenharia reversa, levei algumas horas para reativá-los.

Há abordagens diferentes, dependendo do que você quer criar, mas para um desenvolvedor da Web, eu recomendaria uma unidade de sensor sólida, talvez um Thingy 52 da Nordic Semiconductor. Ele tem muitos sensores e você pode conectar ao seu aplicativo da Web com muito pouco esforço.

Thomas:Conectar-se ao dispositivo é a primeira etapa, mas falar com ele de forma eficaz é outra coisa. Por que você não desistiu depois de enfrentar obstáculos? O que o motivou a continuar trabalhando?

Lars:para mim, o aspecto social de resolver um problema foi o mais importante. Quando comecei a trabalhar nos meus próprios projetos integrados, tive uma visão e um desejo de criar um laboratório de ciências em uma caixa para regiões em desenvolvimento. Minha esposa é do México e eu vi algumas escolas lá. Algumas que ficam fora das grandes cidades são bem ruins, sem acesso aos materiais e equipamentos que temos na nossa região.

A paixão por criar algo que possa ser usado para ajudar outras pessoas foi o que me fez continuar. Também gostei muito do suporte da comunidade. Entrei em contato com algumas pessoas do Google, e todas foram extremamente prestativas e responderam pacientemente a todas as minhas perguntas.

Thomas:muitas pessoas têm algum tipo de hardware em casa, mas não sabem o que fazer com ele. Como você encontra inspiração para todos os seus projetos incríveis, em particular o que tem o nome provisório de SimpleMouse?

Lars:Bem, recentemente eu estava revivendo muito hardware antigo, mas para este projeto em particular, o nome ainda não foi definido, mas vamos chamá-lo de SimpleMouse, usei minha experiência. Eu trabalhei com algumas soluções de acessibilidade e percebi que algumas delas simplesmente não funcionam mais. Você precisaria ter um Windows XP antigo com determinados softwares instalados para executá-las. Não é possível atualizar esses dispositivos, só é possível usá-los em casa porque não é possível mover a configuração.

Por isso, pensei em como combinar minhas habilidades do mundo embarcado com o projeto Fugu e o que agora é possível na Web para criar hardware barato e acessível combinado com software fácil de entender em ambos os lados, para que as pessoas possam criar com base nisso.

Para esse projeto específico, usei um pequeno dongle USB com um chip reflexivo, o nRF52840. Ele se comunica com o Bluetooth de um lado e com o USB do outro. Basicamente, você pode programar para que ele seja qualquer coisa em ambos os lados. E então pensei nos dispositivos que controlam um computador: um mouse e um teclado. Algumas pessoas com deficiência podem ter dificuldade para operar esses dispositivos, e eu queria ajudar.

A primeira coisa que fiz foi garantir que qualquer sistema operacional reconheceria o dongle USB como um mouse. É possível controlar o dispositivo usando um aplicativo nativo ou da Web diretamente no Bluetooth. Depois disso, criei um aplicativo da Web, um modelo simples que as pessoas podem estender da maneira que quiserem usando componentes da Web. Graças a isso, todos podem controlar o computador com um app da Web que criei em apenas algumas horas em um smartphone Android.

Com essa configuração, qualquer pessoa no mundo com alguma experiência na Web pode criar, em questão de dias, uma solução muito personalizada para pessoas com deficiência que querem controlar o computador. O legal é que você pode levar o dispositivo para qualquer lugar e usá-lo com outros dispositivos. Será exatamente a mesma experiência. Para mim, a portabilidade e o preço acessível do dispositivo são muito importantes, porque as pessoas não precisam mais usar apenas os próprios dispositivos e não estão mais limitadas a um local.

Thomas:você teve a chance de testar o dispositivo na vida real?

Lars:na verdade, durante minha última viagem ao México, conversei com um profissional da Web que mora lá. Ele está analisando as possibilidades de usar o dispositivo localmente. Lá, o equipamento é muito caro, mas um dongle USB normalmente custa cerca de US$ 10. Ele está verificando se podemos criar configurações locais para testar. Mas ainda não fiz testes oficiais aqui na Dinamarca.

Thomas:muitos dispositivos projetados para ajudar pessoas com deficiência são muito caros. Você planeja cooperar com alguma empresa específica e colocá-la em produção por uma fração do preço desse equipamento caro?

Lars:Sim, com certeza. Já falei com um fabricante de hardware local sobre isso. É claro que o dispositivo não vai substituir todas essas soluções altamente especializadas, mas pode ser a primeira etapa para criar algo maior, por exemplo, usando o reconhecimento de voz, que já está disponível para tecnologias da Web. É uma maneira fácil de controlar dispositivos usando seu smartphone Android. Ele pode funcionar com qualquer tipo de dispositivo.

O fato de poder criar o que quiser na Web e usar isso para controlar qualquer computador host abre muitas possibilidades.

Thomas:você está lançando seu projeto Zephyr como código aberto? Que tipo de licença você usa? Há planos para monetizar o projeto?

Lars:Sim, a solução é de código aberto. Não coloquei uma licença específica, mas acho que a Apache 2.0 seria a melhor opção. Muitas grandes empresas usam essa licença, incluindo o Google. Quando trabalhei no SimpleMouse, não pensei em monetizar o projeto, esse não era meu objetivo. Mas também acho que faz sentido tentar colocá-lo em produção de alguma forma, e isso tem um custo. O objetivo final é disponibilizá-lo. Gostaria de ver a implementação a um custo baixo e em grande escala.