Destaques da comunidade do GDE: Lars Knudsen

Lars Knudsen é um Especialista desenvolvedor do Google, falamos 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 se apresentando no palco com dois outros palestrantes.

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

Lars:Fiz meu mestrado em engenharia, mas meu interesse nessa tecnologia começou muito antes. Quando eu era criança, nos anos 80, meu pai tinha uma empresa de computação que trabalhava com design gráfico. Às vezes, especialmente 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 fazer algumas coisas, mas aqui está um manual C e tem um computador lá. Veja como iniciar um compilador C. Se você tiver alguma dúvida, é só me chamar." Comecei a escrever textos curtos que foram traduzidos para algo que o computador conseguia 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 tudo começou.

Ao longo dos anos, trabalhei para muitas empresas, incluindo Nokia, Maersk e Openwave. No início, como em muitas outras profissões, porque você sabe um pouco, 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 médica, abri meu próprio negócio 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 toda empresa acha que encontrou a configuração perfeita, mas todos são completamente diferentes. Naquela época, também tive contato com várias tecnologias, sistemas operacionais etc. Por volta dos 20 anos, minha mentalidade mudou. No começo, eu me concentrava apenas em uma tecnologia e queria aprender tudo sobre ela. Com o tempo, comecei a pensar na combinação de tecnologias como uma forma de melhorar nossas vidas. Tenho um interesse particular em diminuir a lacuna entre o que chamamos de equipe A e a equipe B no mundo. Eu tento transferir o máximo de conhecimento possível para regiões onde as pessoas não podem ter um computador ou estudar na universidade sem custo financeiro.

Continuo trabalhando como prestador de serviços para parceiros externos, mas, sempre que possível, tento escolher projetos que tenham algum impacto positivo no meio ambiente ou na sociedade. No momento, estou trabalhando em um software de incorporação para uma empresa de aparelhos auditivos chamada Oticon. Quanto ao software, tenho trabalhado em tudo, desde os menores microcontroladores até a nuvem, muito do que eu faço gira em torno da Web. Estou tentando combinar tecnologias sempre que faz sentido.

Monika: Você participava de comunidades de desenvolvedores antes de participar do programa Especialistas do Google Developers?

Lars: Sim, participei de encontros e conferências. Eu me conectei pela primeira vez com a comunidade enquanto trabalhava para a 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 implementar soluções usando C++, C# ou Java exige alguns anos de experiência, mas todos que têm acesso a um computador, navegador ou bloco de notas podem começar a desenvolver aplicativos baseados na Web e aprender muito rápido. É possível criar um aplicativo totalmente funcional com recursos limitados e ter uma evolução do zero. É por isso que chamo a Web de uma pilha de tecnologia bastante democratizada.

Mas volto à comunidade: depois de um tempo, me interessei pela padronização da Web e pelos problemas que as tecnologias de vanguarda da Web poderiam resolver. Testei novos recursos em um navegador antes do lançamento. Na época, eu trabalhava para a Nokia, desenvolvendo para um dispositivo principal baseado em Linux, o N9. O navegador que criamos era baseado no WebKit, e tive muita experiência com o desenvolvimento de recursos para um grande projeto de código aberto. Nos anos depois de sair da Nokia, participei de conferências e encontros on-line, então fazia sentido participar da comunidade do GDE em 2017.

Gosto muito do trabalho da comunidade e de tudo o que estamos fazendo juntos, especialmente as Conferências de Desenvolvedores do Chrome pré-pandemia, onde pude ajudar com esta função com vários engenheiros do Google e outros GDEs incríveis.

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

Lars: Eu diria por experiência própria (se você puder pagar), considere trabalhar como freelancer para algumas empresas diferentes. Dessa forma, você será exposto a códigos em várias formas e estágios de desenvolvimento diferentes. Você conhecerá vários sistemas operacionais e linguagens, além de aprender a resolver problemas de várias maneiras. Isso me ajudou muito. Ganhei experiência como desenvolvedor sênior com 20 anos. Essa abordagem ajudará você a atingir seus objetivos profissionais mais rapidamente.

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

Monika: O que o futuro reserva para as tecnologias da Web?

Lars: Há alguns anos, a Web foi totalmente capaz de fornecer uma plataforma para grandes aplicativos de campo, tanto para consumidores quanto para empresas. No lado do servidor, as tecnologias da Web oferecem uma experiência perfeita, especialmente para desenvolvedores front-end que desejam criar um componente de back-end. É mais fácil para eles começarem agora. Conheço pessoas que usam o Firebase e o Heroku para trabalhar. 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 aproveita esse potencial.

Analisando de um ponto de vista um pouco diferente, também acho que se fornecermos uma documentação completa e artigos detalhados não apenas em inglês, mas também em outros idiomas (por exemplo, espanhol e português), abriremos um grande potencial na América Latina (e em outras regiões, é claro). Os desenvolvedores desse país geralmente não falam inglês bem o suficiente para entender todos os artigos relevantes. Também devemos dar a eles a oportunidade de aprender o mais cedo possível, mesmo antes de entrarem na universidade, quando ainda estiverem em suas cidades natal. Eles podem usar essas habilidades para ajudar comunidades e empresas locais antes de sair de casa e talvez nunca voltar.

Thomas: Você fez um longo caminho desde o desenvolvimento em C em um computador aleatório até a invasão de hardware. Como você fez isso?

Lars: Comecei a desmontar todo o hardware que tinha em casa. Meu pai nem sempre ficava feliz quando eu não conseguia juntar tudo de novo. Com o tempo, aprendi a criar alguns dispositivos pequenos, mas deu certo muito mais tarde, quando entrei na Nokia, onde adquiri minha experiência incorporada. Tive a chance de criar protetores de tela pequenos, componentes para os smartphones Series 30. Eu era muito apaixonada por isso e conseguia pensar fora da caixa. Me atribuíram a tarefa de criar um jogo da cobra para esses dispositivos. Foi uma experiência muito interessante. A principal diferença entre a criação de sistemas incorporados e a maioria das outras coisas (incluindo a Web) é que você deixa uma pequena pegada; você não tem muito espaço ou memória para usar. Ao criar o Snake, a RAM que eu tinha disponível era menos de um terço do buffer do frame (cerca de 120 x 120 pixels). Tive que pensar em maneiras de reagrupar componentes na tela usando algoritmos para que eles ficassem estáticos, como se fossem blocos. Aprendi muito, foi a mudança de sistemas maiores para soluções menores e incorporadas.

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

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

Outra coisa é que os conjuntos de ferramentas para a criação de soluções incorporadas têm uma curva de aprendizado íngreme. Se você quiser criar seu próprio hardware personalizado, comece com o Arduino ou o ESP32, algo fácil de comprar e bastante barato. Com o ambiente de desenvolvimento adequado, você coloca seu projeto em funcionamento rapidamente.

Você também pode comprar um monitor de frequência cardíaca ou uma unidade multissensor, que já usa os serviços Bluetooth GATT para que você não precise criar seu próprio hardware ou firmware. Você pode usar o que já está disponível e começar a testar a API Web Bluetooth para começar a se comunicar com ela.

Há também dispositivos que usam um protocolo serial. Para eles, você pode usar a API Web Serial (também Fugu). Recentemente, estou estudando o uso da API WebHID, que permite a comunicação com todos os dispositivos de interface humana a que todos têm acesso. Encontrei alguns modelos antigos no meu porão que não eram compatíveis com nenhum sistema operacional há anos, mas, graças à engenharia reversa, demorei algumas horas para reativá-los.

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

Thomas: Conectar-se ao dispositivo é o primeiro passo, mas, depois, falar com ele de forma eficaz. Isso é outra coisa. Por que você não desistiu depois de enfrentar obstáculos? O que te 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 incorporados, tinha a visão e a vontade 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á. alguns que estão localizados fora das grandes cidades são bem ruins, sem acesso aos materiais e equipamentos que temos em nossa parte do mundo.

A paixão por criar algo que poderia ser usado para ajudar outras pessoas, foi o que me motivava a continuar. Também gostei muito do apoio da comunidade. Entrei em contato com algumas pessoas do Google, e todas elas foram extremamente prestativas e responderam com paciência 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 especial o que temos sob o nome de trabalho SimpleMouse?

Lars: Recentemente, estou reformulando 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. Já trabalhei com algumas soluções de acessibilidade e vi como algumas delas simplesmente não funcionam mais. você precisaria ter um Windows XP antigo com alguns softwares instalados para executá-los. Não é possível atualizar esses dados. Eles só podem ser usados em casa porque não é possível mover a configuração.

Por isso, me perguntei como combinar minhas habilidades do mundo incorporado com o projeto Fugu e o que agora é possível na Web para criar hardware barato e econômico combinado com software fácil de entender de ambos os lados, para que as pessoas possam desenvolver isso a partir disso.

Para esse projeto em particular, usei um pequeno dongle USB com um chip reflexivo, o nRF52840. Ele se comunica por Bluetooth de um lado e USB do outro. Você pode, basicamente, programá-lo para ser qualquer coisa em ambos os lados. E então pensei nos dispositivos que controlam um computador: mouse e teclado. Algumas pessoas com deficiência podem ter dificuldade para operar esses dispositivos, e eu queria ajudá-las.

A primeira coisa que fiz foi garantir que qualquer sistema operacional pudesse ver o dongle USB como um mouse. Você pode controlá-lo por um aplicativo nativo ou da Web, diretamente pelo Bluetooth. Depois disso, criei um aplicativo da web, um modelo simples que as pessoas podem estender da maneira como quiserem, usando componentes da Web. Graças a isso, todo mundo pode controlar seus computadores com um app da Web que eu criei em apenas algumas horas em um smartphone Android.

Essa configuração permitirá que qualquer pessoa no mundo com alguma experiência na web construa, em questão de dias, uma solução muito personalizada para qualquer pessoa com deficiência que queira controlar seu computador. O legal é que você pode levá-lo para qualquer lugar e usá-lo com outros dispositivos também. Será exatamente a mesma experiência. Para mim, a portabilidade e a viabilidade do dispositivo são muito importantes, porque as pessoas não estão mais limitadas a usar seus 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 minha última viagem ao México, conversei sobre isso com um profissional da Web que mora no país. agora ele está analisando as possibilidades de usar o dispositivo localmente. Lá, o equipamento é muito caro, mas um dongle USB normalmente custa cerca de dez dólares. Agora ele está verificando se é possível criar cenários locais para fazer um teste. Mas ainda não fiz testes oficiais aqui na Dinamarca.

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

Lars: Sim, com certeza! Já conversei 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 o primeiro passo para criar algo maior, por exemplo, usando o reconhecimento de voz, já disponível para tecnologias da Web. Será uma maneira fácil de controlar dispositivos usando seu smartphone Android. pode funcionar com qualquer tipo de dispositivo.

Ser capaz de 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 de 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 solução. Muitas das principais 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 faria sentido colocar em produção de alguma forma, e isso tem custos. O objetivo final é disponibilizá-los. Eu adoraria que ele fosse implementado com baixo custo e em grande escala.