Перейти до вмісту

Season of KDE 2022 з KDE Eco

Четвер, 3 березня 2022 | Karanjot Singh


Красно дякую команді KDE за запрошення до цієї надзвичайної спільноти у межах щорічної програми Season of KDE.

Про себе

Мене звати Каранджот Сінгх (Karanjot Singh). Я студент-першокурсник спеціальності «комп'ютерна інженерія» у Інституті інформаційних технологій Джейпі, Нойда, Індія. Я працював, як розробник, у межах декількох проєктів із вільним відкритим кодом (FOSS), зокрема у межах Kharagpur Winter of Code у 2021 році (KWoC’21). Втім, я уперше беру участь у проєкті із такою великою спільнотою. Я дуже люблю FOSS, розв'язувати задачі та удосконалювати ефективність процесів. Я отримую задоволення від вивчення нових технологій та створення соціально корисних речей. Також я вважаю, що внесок до FOSS є найкращим способом набути досвіду у розробці програмного забезпечення.

Над чим я працюватиму?

Як частина передового проєкту із забезпечення сталого розвитку, KDE Eco має метою вимірювання і зниження споживання енергії у KDE і вільному програмному забезпеченні. Це потребує імітації поведінки користувача. Цього можна досягти плануванням та створенням стандартних сценарії користування. Мною буде створено стандартні сценарії користування у різних програмах із акцентом на типові текстові редактори, зокрема Kate, KWrite, Vim, Nano, Emacs, Calligra Words та LibreOffice. Сценарії буде приготовано за допомогою одного з багатьох доступних інструментів імітації. Нижче наведено мій план SoK’22:

Розклад Season of KDE 2022
Figure : Розклад Season of KDE 2022

Мотивація роботи над проєктом KDE Eco

Думаю, KDE Eco є дуже доброю ініціативою для розробки ресурсо- та енергоефективного вільного програмного забезпечення. Якщо хтось користується FOSS і бачить, що програмне забезпечення є прозорим щодо його енергоспоживання, що використання програмного забезпечення може продовжити термін роботи обладнання і зменшити вплив цифровізації на природу, я надихаюся цим. Я завжди хочу бути частиною чогось, що допоможе майбутнім поколінням, а мета KDE Eco є саме такою. Також я переконаний, що KDE Eco допоможе мені стати кращим розробником програмного забезпечення.

Чому я вже навчився?

Коли я починав роботу над цим проєктом, у мене було три питання.

Як можна дізнатися, що програмне забезпечення є ресурсо- і енергоефективним?

Як можна виміряти енергоспоживання програмного забезпечення?

Чи це впливає на щось?

Ці питання можуть спасти на гадку будь-кому, хто обмірковуватиме ідею ефективності програмного забезпечення.

Якщо ви користуєтеся програмним забезпеченням, ви бачите лише інтерфейс, з яким ви взаємодієте. Просто повідомте вашому телефону, що вам треба, і магічним чином отримаєте результат — інформацію на екрані або пакунок, який доставлять вам до дверей. Але технології та інфраструктуру за цим визначають інженери, розробники програмного забезпечення, які роблять так, щоб усе це працювало.

Інтерфейс і складні процеси
Figure : Інтерфейс і складні процеси

Просто уявіть: що, якби ми проаналізували енергоспоживання типового програмного забезпечення і зробили його прозорішим? Що, якщо б користувачі могли дізнатися, як саме споживає енергію їхнє програмне забезпечення, і могли вибирати програму, яка є заощадливішою? Це було б чудово!!!

Над цією проблемою працюють проєкти KDE Eco, Free and open source Energy Efficiency Project (FEEP) та Blauer Engel For FOSS (BE4FOSS).

Як зауважено FEEP, дизайн і реалізація програмного забезпечення має значний вплив на споживання енергії системами, частиною яких воно є. Із належними інструментами можна визначити і зменшити споживання електроенергії. Ці удосконалення в ефективності роблять внесок у стабілізацію використання енергії, як одного зі спільних ресурсів нашої планети.

3 кроки екосертифікації
Figure : 3 кроки екосертифікації

BE4FOSS підтримує FEEP збиранням і поширенням відомостей, пов'язаних із екосертифікацією Blauer Engel (BE), офіційною міткою захисту середовища, яку надає уряд Німеччини. Як повідомлено на сайті KDE Eco, отримати мітку Blauer Engel можна у три кроки: (1) Вимірювання, (2) Аналіз, (3) Сертифікація.

  1. Вимірювання у відповідних лабораторіях, зокрема у лабораторії KDAB у Берліні
  2. Аналіз за допомогою статистичних інструментів, зокрема OSCAR (Open source Software Consumption Analysis in R)
  3. Сертифікація шляхом подання звіту щодо виконання критеріїв Blauer Engel

Протягом SoK'22 я готуватиму стандартні сценарії користування для різноманітних текстових редакторів, щоб цими сценаріями можна було скористатися на кроці 1 для отримання екосертифікації BE.

Що вже зроблено і що буде зроблено протягом найближчих тижнів

Протягом останніх трьох тижнів мною було виконано перевірку різноманітних засобів автоматизації, зокрема Actiona, xdotool та GNU Xnee для визначення того, який з них був би найкращим для реалізації стандартних сценаріїв користування.

Користуючись Actiona, я написав документацію, яка буде корисною для усіх, хто хоче зробити внесок до проєкту KDE Eco.

Працюючи з xdotool, я виявив проблеми із витоком пам'яті. Запускаючи Valgrind для пошуку в xdotool, я помітив витрату пам'яті для запитів щодо розміщення від XQueryTree. Ймовірно, існують інші місця, де програма отримує пам'ять і не звільняє її згодом. Інтенсивну перевірку я ще не робив. Втім, xdotool надає користувачу більший контроль над системою. Незважаючи на певні проблеми, це інструмент, який я вважаю найкориснішим.

Також я тестував GNU Xnee. Цей інструмент, зокрема, цікавий тим, що записує виведені дані і зберігає їх у окремому файлі. Також у ньому передбачено можливість повторного відтворення дій, якою можна скористатися для автоматизації завдань із довільною вибраною швидкістю.

Врешті, я вирішив готувати усі сценарії користування за допомогою xdotool, принаймні спочатку, оскільки більшість текстових редакторів використовують функціональні можливості клавіатури, а не роботу з мишею, а це робить простішою адаптацію скриптів до різних систем. Втім, після SoK'22 я планую також приготувати сценарії користування з використанням Actiona, щоб вивчити відмінності між цими інструментами. Крім того, маємо також обговорити зміну стандартних сценаріїв користування для тестування здатності реагування та швидкодії на застарілому та малопотужному обладнанні.

Приготування стандартних сценаріїв користування
Figure : Приготування стандартних сценаріїв користування

Крім того, протягом найближчих тижнів я працюватиму над виправленням відомої проблеми в Actiona. Проблема полягає у тому, що Actiona імітує поведінку користувача, зберігаючи позицію клацання на основі координат за пікселями, що призводить до проблем при перенесенні скрипту на інші системи. Наприклад, із цією проблемою ми нещодавно зіткнулися при приготуванні стандартних сценаріїв користування для GCompris. Моє вирішення цієї проблеми полягає у зміні роздільності екрана до мінімальної і включенні відповідного коду на початку скрипту Actiona. Під час кожного запуску скрипту на будь-якій системі він автоматично переводить її до мінімальної роздільної здатності так, щоб пікселі зображення на усіх системах збігалися між собою протягом роботи скрипту. Це лише ідея, яку я ще не перевіряв. Я відведу час на цю спробу усунути проблему за допомогою команди розробників GCompris.

Сховище GitLab, у якому містяться стандартні сценарії користування, над якими я працюю (зараз це GCompris з використанням Actiona), можна знайти тут.

Зв'язок зі спільнотою ( SoK’22 )

Вдячний моєму ментору, Жозефу П. Де Веа-Ґайссу (Joseph P. De Veaugh-Geiss), за витрачений ним час, надані ресурси та настанови під час виконання проєкту. Також я відвідав щомісячну зустріч спільноти KDE Eco 9 лютого 2022 року, де професор, доктор наук Штефан Науманн (Stefan Naumann), Ахім Ґулднер (Achim Guldner) та Крістофер Штумпф (Christopher Stumpf) з Umwelt Campus Birkenfeld вели обговорення вимірювання енергоспоживання розподілених систем та розширення критеріїв присудження Blauer Engel для таких систем. Це була цікава зустріч, де ми обговорювали проблеми автоматизації для програм для мобільних пристроїв, а також тестування систем «клієнт-сервер». Також Жозеф познайомив мене з дослідниками Umwelt Campus, які вимірювали енергоспоживання Okular; Еманюелем Шарруо (Emmanuel Charruau), який працює над скриптом для GCompris; та Ніколасом Феллою (Nicolas Fella), який зараз працює з xdotool, накопичуючи матеріал для магістерської дисертації щодо енергоспоживання програмного забезпечення.

Дякую за те, що ознайомилися із цим оновленням. Якщо ви хочете стежити за розвитком ідей, які було викладено у цьому дописі, перевагами та недоліками різних систем автоматизації при реалізації стандартних сценаріїв користування, маю для вас запис вади GitLab у сховищі BE4FOSS, де ми можемо обговорити ваші питання.

Також зі мною можна поспілкуватися в екземплярі Matrix KDE, drquark:kde.org.


Статтю надіслано , умови ліцензування — CC-BY-SA-4.0.