Season of KDE 2022 com o KDE Eco
Estou muito agradecido à equipa do KDE por me ter convidado a fazer parte desta espantosa comunidade através do seu programa anual Season of KDE.
Acerca de Mim
Chamo-me Karanjot Singh. Sou um estudante de engenharia informática do primeiro ano no Instituto de Tecnologias de Informação de Jaypee, em Noida, na Índia. Trabalhei como programador em vários programas de 'Software' Livre e de Código Aberto (FOSS), como o Winter of Code de Kharagpur em 2021 (KWoC’21). Contudo, será a primeira vez que contribuo para para um projecto com uma comunidade assim tão grande. Sinto uma grande paixão pelo FOSS, pela resolução de problemas e na melhoria da eficiência dos processos. Gosto de explorar e aprender novas tecnologias e e de construir coisas para causas úteis a nível social. Também acredito que a contribuição para o FOSS é a melhor forma de ganhar experiência no desenvolvimento de 'software'.
No Que é Que Vou Estar a Trabalhar
Como parte de um projecto pioneiro de sustentabilidade, o KDE Eco tem o objectivo de medir e analisar o consumo de energia de 'Software' Livro do KDE. Isto obriga à emulação do comportamento do utilizador, o qual poderá ser conseguido se planear e programar alguns Cenários-Padrão de Utilização. Irei estar a programar alguns desses cenários para várias aplicações, com um foco nos editores de texto mais usados, como o Kate, KWrite, Vim, Nano, Emacs, Calligra Words e LibreOffice. Irei preparar estes cenários de utilização com uma das várias ferramentas de emulação disponíveis. Segue-se o meu Cronograma do SoK’22:
Motivação por Trás de Trabalhar no Projecto KDE Eco
Penso que o KDE Eco é uma iniciativa muito boa para desenvolver 'Software' Livre eficiente a nível de recursos e energia. Quando alguém usar o FOSS e descobrir que o mesmo é transparente quanto ao seu consumo de energia, então usar esse 'software' poderá ajudar a prolongar o tempo de vida do 'hardware' e a reduzir o impacto ambiental da digitalização, o que é empolgante para mim. Quero sempre fazer parte de algo que contribua para as gerações futuras e o KDE Eco serve esse propósito. Também acredito que o KDE Eco me ajuda na minha jornada para me tornar um melhor programador de 'software'.
O que Aprendi Até Agora
Quando estava a começar neste projecto, tinha três questões.
Como é que podemos saber se o 'software' é eficiente a nível de recursos e de energia?
Como é que podemos medir o consumo de energia do 'software'?
E será que faz alguma diferença?
Estas questões poderão surgir na mente de qualquer um ao pensar na ideia de eficiência de 'software'.
Quando usa o 'software', o que vê é apenas a interface com que interage. Basta dizer ao seu telefone o que deseja e as coisas aparecerão de forma mágica - seja sob a forma de informações no ecrã ou um pacote entregue na sua casa. Mas as tecnologias e infra-estruturas por trás disso são determinadas por engenheiros de 'software' que fazem todo esse trabalho.
Basta imaginar: E se analisarmos o consumo de energia por trás das aplicações normalmente usadas e o tornarmos mais transparente? E se os utilizadores pudessem aprender quanta energia as suas aplicações necessitam e se pudessem escolher a aplicação que fosse melhor para o ambiente? Isto seria óptimo!!!
As iniciativas do KDE Eco 'Free and open source Energy Efficiency Project' (FEEP) e a 'Blauer Engel For FOSS' (BE4FOSS) estão a trabalhar a fundo nestas questões.
Como referido pela FEEP, o desenho e a implementação do 'software' tem um impacto significativo no consumo de energia dos sistemas onde está instalado. Com as ferramentas correctas, é possível quantificar e descodificar o consumo de energia. Este aumento de eficiência contribui para uma utilização mais sustentável da energia como um dos recursos partilhados no nosso planeta.
A BE4FOSS apoia a FEEP com a recolha e difusão de informações relacionadas com a certificação ecológica da Blauer Engel (BE), o emblema ambiental oficial atribuído pelo governo alemão. Como referido na página Web do KDE Eco, a obtenção do emblema da Blauer Engel ocorre em 3 passos: (1) Medir, (2) Analisar, (3) Certificar.
- MEDIR em laboratórios dedicados, como no KDAB Berlim
- ANALISAR com ferramentas estatísticas como o OSCAR (Open source Software Consumption Analysis in R)
- CERTIFICAR através da submissão do relatório de cumprimento dos critérios da Blauer Engel
No SoK'22, irei preparar alguns Cenários-Padrão de Utilização para vários editores de texto, para que esses cenários de utilização possam ser usados no Passo 1 para obter a certificação ecológica da BE.
O Que Foi Feito & O Que Será Feito nas Próximas Semanas
Para as últimas três semanas que passaram, testei várias ferramentas de automação, em particular o Actiona
, o xdotool
e o GNU Xnee
, para decidir quais destas ferramentas seria melhor para implementar os Cenários-Padrão de Utilização.
Ao usar o Actiona
, escrevi alguma documentação para que esta informação pudesse também ser benéfica para alguém que quisesse contribuir para o KDE Eco.
Ao experimentar o xdotool
, tive um problema com fugas de memória. Ao executar o Valgrind sobre a pesquisa do 'xdotool', tenho mais memória perdida alocada pelo XQueryTree. Existem provavelmente outros locais onde a memória é alocada e não é libertada depois. Não fiz uma verificação abrangente. Contudo, o 'xdotool' dá mais controlo sobre o sistema e, mesmo com alguns problemas, achei que esta é a ferramenta mais útil para o objectivo.
Testei o GNU Xnee
também, o qual me pareceu interessante por registar o resultado e o guardar num ficheiro separado. Para além disso, oferece um leitor que poderá ser usado para automatizar os testes à velocidade que desejarmos.
No fim, optei por preparar todos os cenários de utilização com o 'xdotool', pelo menos a título inicial, dado que a maioria dos editores de texto usam funções por teclado em vez de actividades com o rato, o que tornará mais simples adaptar o programa para os diferentes sistemas. Contudo, após o SoK'22 planeio preparar cenários de utilização com o Actiona, assim que consiga aprender as diferenças entre estas ferramentas. Numa nota relacionada, existe também uma discussão em curso sobre a adaptação dos Cenários-Padrão de Utilização para testar a performance e a capacidad ede resposta no 'hardware' mais antigo ou de gama baixa.
Nas próximas semanas, irei trabalhar adicionalmente na correcção de um problema que é conhecido pelo Actiona. O problema é que o Actiona emula o comportamento do utilizador, guardando a posição dos 'clicks' baseados em coordenadas em pixels, os quais poderão tornar desafiante a transferência de um programa para outro sistema. Por exemplo, este problema ocorreu recentemente ao preparar um Cenário-Padrão de Utilização para o GCompris. Vim com a solução de dimensionar o ecrã para uma resolução mínima e incluir o código no início do programa do Actiona. Sempre que o programa for executado num sistema diferente, o mesmo dimensionar-se-á para a resolução mínima para corresponder aos pixels enquanto se faz o programa. Isto é apenas uma ideia e ainda não foi testada. Iremos dedicar algum tempo para esta tentativa de resolução do problema com a ajuda da equipa do GCompris.
O repositório do GitLab que contém os Cenários-Padrão de Utilização em curso (de momento com o GCompris a usar o Actiona) podem ser consultados aqui.
Laços com a Comunidade ( SoK’22 )
Estou grato ao meu mentor Joseph P. De Veaugh-Geiss por tomar algum tempo a ajudar-me com recursos e acompanhamento durante o projecto. Também assisti à reunião mensal da comunidade do KDE Eco em 9 de Fevereiro de 2022, onde o Prof. Dr Stefan Naumann, Achim Guldner e Christopher Stumpf da Umwelt Campus Birkenfeld conduziram uma discussão sobre a medição do consumo de energia em sistema distribuídos e o alargamento dos critérios de certificação da Blauer Engel aos mesmos. Esta foi uma reunião interessante onde discutimos problemas para a automatização de aplicações móveis, assim como os testes cliente-servidor. O Joseph apresentou-me também aos investigadores do Umwelt Campus que mediram o consumo de energia do Okular; o Emmanuel Charruau, que está a trabalhar com o programa GCompris e o Nicolas Fella, que está a trabalhar de momento com o 'xdotool' para a sua tese de Mestrado sobre o consumo de energia do 'software'.
Obrigado por ocuparem algum tempo a ler esta actualização. Se alguém quiser acompanhar as ideias aqui apresentadas, tendo em conta os prós e contras das diferentes ferramentas de automação a implementar os Cenários-Padrão de Utilização existe um problema registado no GitLab no repositório do BE4FOSS onde poderemos discutir posteriormente.
Também estou disponível na instância de Matrix do KDE em drquark:kde.org.
O artigo foi contribuído por Karanjot Singh segundo os termos da licença CC-BY-SA-4.0.