Salta fins al contingut

«Season of KDE» 2022 amb KDE Eco

3 de març 2022  | Karanjot Singh

Estic molt agraït a l'equip de KDE per convidar-me a formar part d'esta comunitat increïble a través del seu programa anual «Season of KDE».

Quant a mi

Soc Karanjot Singh. Soc un estudiant d'enginyeria informàtica de primer any de l'Institut Jaypee de Tecnologia de la Informació, Noida, Índia. He treballat com a desenvolupador en diversos programes de programari lliure i de codi obert (FOSS) com Kharagpur Winter of Code el 2021 (KWoC'21). No obstant açò, esta serà la meua primera contribució a un projecte amb una comunitat tan gran. Estic molt apassionat pel FOSS, resolent problemes i millorant l'eficiència dels processos. M'agrada explorar i aprendre noves tecnologies i construir coses per a causes socialment útils. També crec que contribuir al FOSS és la millor manera d'obtindre experiència en el desenvolupament de programari.

En què estaré treballant

Com a part d'un projecte pioner de sostenibilitat, KDE Eco té l'objectiu de mesurar i reduir el consum d'energia del programari KDE/lliure. Açò requerix emular el comportament de l'usuari, el qual es pot aconseguir mitjançant la planificació i la creació de scripts d'escenaris d'ús estàndard. Jo crearé els scripts d'escenaris d'ús estàndard per a diverses aplicacions, amb un enfocament en editors de text habitualment utilitzats com Kate, Vim, Emacs, Calligra Words, i LibreOffice. Prepararé estos escenaris d'ús amb una de les moltes eines disponibles d'emulació. A continuació hi ha la meua línia de temps del SoK'22:

Línia de temps de la «Season of KDE» 2022
Figure : Línia de temps de la «Season of KDE» 2022

Motivació per a treballar en el projecte de KDE Eco

Crec que KDE Eco és una iniciativa molt bona per a desenvolupar recursos i programari lliure eficient des del punt de vista energètic. Quan algú utilitza el FOSS i descobrix que el programari és transparent sobre el seu consum d'energia, que l'ús del programari pot ajudar a prolongar la vida útil del maquinari i reduir l'impacte ambiental de la digitalització, açò m'excita. Sempre vull formar part d'alguna cosa que contribuïsca a les generacions futures i KDE Eco servix per a este propòsit. També crec que KDE Eco m'ajuda en el meu viatge per a convertir-me en un millor desenvolupador de programari.

El que he aprés fins ara

Quan vaig començar amb este projecte, tenia tres preguntes.

Com podem saber quan el programari és eficient en recursos i energèticament?

Com podem mesurar el consum d'energia del programari?

I açò marca alguna diferència?

Estes preguntes poden arribar fins a la ment de qualsevol quan se pensa en la idea de l'eficiència del programari.

Quan utilitzeu programari, el que veeu és només la interfície amb la qual esteu interaccionant. Només digueu al vostre telèfon el que vulgueu i les coses apareixeran màgicament: si és informació en la pantalla o un paquet lliurat a la porta. Però les tecnologies i la infraestructura que hi ha darrere són determinades per enginyers de programari que fan que tot açò funcione.

IU vs. processos complexos
Figure : IU vs. processos complexos

Imagineu: i si analitzem el consum d'energia que hi ha darrere del programari utilitzat habitualment i el fem més transparent? I si els usuaris pogueren saber quanta energia necessita el programari i pogueren triar l'aplicació que fora millor per al medi ambient? Açò seria genial!

Les iniciatives KDE Eco, Free and open Source Energy Efficiency Project (FEEP) i Blauer Engel For FOSS (BE4FOSS) estan treballant intensament en estos temes.

Com ha indicat el FEEP, el disseny i la implementació de programari té un impacte significatiu en el consum d'energia dels sistemes dels quals forma part. Amb les eines correctes, és possible quantificar i reduir el consum d'energia. Este augment d'eficiència col·labora amb un ús més sostenible de l'energia com un dels recursos compartits del nostre planeta.

3 Passos de la certificació eco
Figure : 3 Passos de la certificació eco

BE4FOSS dona suport a FEEP mitjançant la recopilació i difusió d'informació relacionada amb la certificació eco de Blauer Engel (BE), l'etiqueta ambiental oficial atorgada pel govern alemany. Com s'indica al lloc web KDE Eco, l'obtenció de l'etiqueta Blauer Engel es produïx en 3 passos: (1) Mesurar, (2) Analitzar, (3) Certificar.

  1. MESURAR en laboratoris dedicats, com el de KDAB de Berlín
  2. ANÀLISI utilitzant eines estadístiques com OSCAR («Open source Software Consumption Analysis in R», Anàlisi de consum del programari de codi obert en R)
  3. CERTIFICACIÓ amb la presentació de l'informe sobre el compliment dels criteris de Blauer Engel

Al SoK'22, prepararé escenaris d'ús estàndard per a diversos editors de text, de manera que els escenaris d'ús es puguen utilitzar en la fase 1 per a obtindre una certificació ecològica de BE.

Què he fet i què faré en les setmanes següents

Durant les últimes tres setmanes, he provat diverses eines d'automatització, en particular Actiona, xdotool, i GNU Xnee, per a decidir quina d'estes eines seria millor per a implementar escenaris d'ús estàndard.

Mentre utilitzava Actiona, vaig escriure alguna documentació perquè esta informació també fora beneficiosa per a qualsevol que volguera contribuir a KDE Eco.

Mentre provava xdotool, vaig trobar un problema amb una fuita de memòria. En executar Valgrind en la busca de «xdotool», es va perdre més memòria assignada pel XQueryTree. Probablement hi ha altres llocs on la memòria està assignada i no s'allibera després. No he fet una revisió exhaustiva. No obstant açò, «xdotool» dona més control sobre el sistema i, fins i tot amb alguns problemes, esta és l'eina que he trobat més útil.

També vaig provar GNU Xnee que em pareixia interessant, ja que registra l'eixida i l'emmagatzema en un fitxer separat. A més, proporciona una repetició de reproducció que es pot utilitzar per a automatitzar tasques a la velocitat que es vullga.

Al final, he decidit preparar tots els escenaris d'ús amb «xdotool», almenys inicialment, ja que la majoria dels editors de text utilitzen funcions de teclat en lloc d'activitat de ratolí i açò facilitarà l'adaptació de l'script a sistemes diferents. No obstant açò, després del SoK'22 tinc previst preparar escenaris d'ús també amb Actiona, de manera que puga aprendre les diferències entre estes eines. Amb relació a açò, també hi ha un debat en curs sobre reutilitzar els escenaris d'ús estàndard per a provar la capacitat de resposta i el rendiment en maquinari antic o de gamma baixa.

Preparació d'escenaris d'ús estàndard
Figure : Preparació d'escenaris d'ús estàndard

En les pròximes setmanes, a més, treballaré per a solucionar un problema conegut d'Actiona. El problema és que Actiona emula el comportament de l'usuari mitjançant l'emmagatzematge de la posició dels clics basats en coordenades de píxels, el qual pot fer que la transferència d'un script a un altre sistema siga difícil. Per exemple, este problema va sorgir recentment quan es preparava un escenari d'ús estàndard per a GCompris. Vaig trobar la solució de redimensionar la pantalla a una resolució mínima de la pantalla i incloure el codi al començament de l'script d'Actiona. Sempre que l'script s'executa en un sistema diferent, es redimensiona automàticament a la resolució mínima per a coincidir amb els píxels mentre s'executa l'script. Es tracta senzillament d'una idea i encara no s'ha provat. Dedicaré temps addicional per a este intent de solucionar el problema amb l'ajuda de l'equip de GCompris.

El repositori de GitLab que conté escenaris d'ús estàndard (actualment GCompris utilitza Actiona) es pot trobar ací.

Vinculació amb la comunitat (SoK'22)

Done les gràcies al meu mentor Joseph P. De Veaugh-Geiss per dedicar temps per a ajudar-me proporcionant recursos i orientació durant el projecte. També vaig assistir a la reunió mensual de la comunitat de KDE Eco el 9 de febrer de 2022, on el professor Dr. Stefan Naumann, Achim Guldner i Christopher Stumpf del Umwelt Campus Birkenfeld van fer un debat sobre el mesurament del consum d'energia dels sistemes distribuïts i l'ampliació dels criteris de concessió de l'etiqueta Blauer Engel. Va ser una reunió interessant en la qual es van debatre els problemes d'automatització amb aplicacions mòbils, així com les proves de client-servidor. Joseph també em va presentar als investigadors de l'Umwelt Campus que van mesurar el consum d'energia d'Okular; Emmanuel Charruau, que està treballant amb l'script de GCompris; i Nicolas Fella, que actualment treballa amb «xdotool» per a la seua tesi del màster sobre el consum d'energia del programari.

Gràcies per prendre el temps per a llegir esta actualització. Si algú vol fer un seguiment de les idees presentades ací sobre els pros i els contres de diferents eines d'automatització en implementar els escenaris d'ús estàndard, hi ha un assumpte de GitLab al repositori de BE4FOSS on podem debatre més.

També estic disponible en la instància de Matrix de KDE a drquark:kde.org.


Article escrit per d'acord amb la llicència CC-BY-SA-4.0.