«Season of KDE» 2022 amb KDE Eco
Estic molt agraït a l'equip del KDE per convidar-me a formar part d'aquesta 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 això, aquesta serà la meva 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'obtenir experiència en el desenvolupament de programari.
En què estaré treballant
Com a part d'un projecte pioner de sostenibilitat, el KDE Eco té l'objectiu de mesurar i reduir el consum d'energia del programari de KDE/lliure. Això requereix emular el comportament de l'usuari, que 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 el Kate, el Vim, l'Emacs, el Calligra Words, i el LibreOffice. Prepararé aquests escenaris d'ús amb una de les moltes eines disponibles d'emulació. A continuació hi ha la meva línia de temps del SoK'22:
Motivació per a treballar en el projecte de KDE Eco
Crec que el 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 descobreix 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ó, això m'excita. Sempre vull formar part d'alguna cosa que contribueixi a les generacions futures i el KDE Eco serveix per a aquest propòsit. També crec que el 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 aquest 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 això marca alguna diferència?
Aquestes preguntes poden arribar a la ment de qualsevol quan es pensa en la idea de l'eficiència del programari.
Quan utilitzeu programari, el que veieu é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ó a 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 això funcioni.
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 poguessin saber quanta energia necessita el programari i poguessin triar l'aplicació que fos millor per al medi ambient? Això seria genial!
Les iniciatives KDE Eco, Free and open Source Energy Efficiency Project (FEEP) i Blauer Engel For FOSS (BE4FOSS) estan treballant intensament en aquests temes.
Com ha indicat el FEEP, el disseny i la implementació de programari té un impacte significatiu en el consum d'energia dels sistemes que en forma part. Amb les eines correctes, és possible quantificar i reduir el consum d'energia. Aquest augment d'eficiència col·labora amb un ús més sostenible de l'energia com un dels recursos compartits del nostre planeta.
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 produeix en 3 passos: (1) Mesurar, (2) Analitzar, (3) Certificar.
- MESURAR en laboratoris dedicats, com el de KDAB de Berlín
- ANÀLISI usant eines estadístiques com l'OSCAR («Open source Software Consumption Analysis in R», Anàlisi de consum del programari de codi obert en R)
- 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 puguin utilitzar en la fase 1 per a obtenir 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'aquestes eines seria millor per a implementar escenaris d'ús estàndard.
Mentre utilitzava Actiona
, vaig escriure alguna documentació perquè aquesta informació també fos beneficiosa per a qualsevol que volgués contribuir a KDE Eco.
Mentre provava xdotool
, vaig trobar un problema amb una fuita de memòria. En executar el Valgrind en la cerca del «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 això, el «xdotool» dona més control sobre el sistema i, fins i tot amb alguns problemes, aquesta és l'eina que he trobat més útil.
També vaig provar GNU Xnee
que em semblava interessant, ja que registra la sortida 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 vulgui.
Al final, he decidit preparar tots els escenaris d'ús amb el «xdotool», almenys inicialment, ja que la majoria dels editors de text utilitzen funcions de teclat en lloc d'activitat de ratolí i això facilitarà l'adaptació de l'script a sistemes diferents. No obstant això, després del SoK'22 tinc previst preparar escenaris d'ús també amb Actiona, de manera que pugui aprendre les diferències entre aquestes eines. Amb relació a això, 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.
En les pròximes setmanes, a més, treballaré per a solucionar un problema conegut de l'Actiona. El problema és que l'Actiona emula el comportament de l'usuari mitjançant l'emmagatzematge de la posició dels clics basats en coordenades de píxels, que poden fer que la transferència d'un script a un altre sistema sigui difícil. Per exemple, aquest problema va sorgir recentment quan es preparava un escenari d'ús estàndard per al 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 de l'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 simplement d'una idea i encara no s'ha provat. Dedicaré temps addicional per a aquest intent de solucionar el problema amb l'ajuda de l'equip del GCompris.
El repositori de GitLab que conté escenaris d'ús estàndard (actualment el GCompris utilitza l'Actiona) es pot trobar aquí.
Vinculació amb la comunitat (SoK'22)
Dono 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 de l'Okular; Emmanuel Charruau, que està treballant amb l'script del GCompris; i Nicolas Fella, que actualment treballa amb el «xdotool» per a la seva tesi del màster sobre el consum d'energia del programari.
Gràcies per prendre's temps per llegir aquesta actualització. Si algú vol fer un seguiment de les idees presentades aquí sobre els pros i els contres de diferents eines d'automatització en implementar els escenaris d'ús estàndard, hi ha un assumpte del GitLab al repositori de BE4FOSS on podem debatre més.
També estic disponible a la instància de Matrix del KDE a drquark:kde.org.
Article escrit per Karanjot Singh d'acord amb la llicència CC-BY-SA-4.0.