Значит так, бенчмарк есть и работает, но есть проблемы с практичностью интерфейса, например кнопка "Save Settings", справа вверху ей точно не место потому переношу вниз поближе к кнопке закрытия меню:
|
|
|
Раз уж заговорил про кнопку "выход", то нужно бы и такую кнопку сделать, ибо не каждый современный пользователь сможет выйти из моего бенчмарка без кнопки выхода если вдруг переключит в полноэкранный режим, да, Alt+F4 банально и стандартно, но кто знает какие извращения могут быть в разных дистрибутивах линукса для закрытия приложения...
В любом случае кнопку выхода нужно сделать, как-никак это базовая вещь которая обязана быть в наличии, прямо как настройка формата даты и времени в часах операционной системы, или обводка/тень у белого текста на белом фоне, и т.п.
|
|
|
Как такое сложное действие было реализовано? Это было действительно очень сложно, целую строчку кода пришлось написать...
А дальше я принялся работать над разделом системной информации, хочу кое-что проверить, а для этого нужно разделить платформы, ведь в среде Linux нельзя вызвать WMI Info и т.п., а в среде Windows нельзя вызвать утилиты для Linux:
Для чего я собственно это делал... По идее я хотел вывод скрипта neofetch направить в Godot, но что-то пошло не так...
|
|
|
Думаю теперь ясно что именно пошло не так, neofetch использует цветовую разметку терминала, а она не поддерживается в моём случае, отсюда и куча лишнего мусора в выводе:
Как отключить всю эту похабщину? По идее можно прописать ряд аргументов для neofetch, и я так сделал, не сразу конечно получилось как надо, но последний результат меня вполне устраивает:
|
|
|
Правда позже выяснился неприятный факт, в одном дистрибутиве всё работает, а в другом нет...
|
|
|
Впрочем, и эту проблему удалось решить, теперь можно без лишних телодвижений вызвать neofetch не выходя из моего бенчмарка:
Ещё добавил вывод информации о процессоре разными методами, правда все они выглядят так себе ибо под терминал подгонялись, вряд ли разработчики предполагали что в качестве терминала будет выступать ChimbaBench...
|
|
|
|
Ну ничего страшного, терминальное уродство потом можно будет переоформить, сейчас главное чтобы оно работало, и следующим шагом я добавил утилиту dmidecode, да, она требует root права для работы, но работая в линуксах и так нужно теребить root права направо и налево, потому не вижу проблем:
|
|
|
Кстати, уже заметили предпросмотр всей страницы в зоне полосы прокрутки? Весьма полезная вещь, особенно когда выведено очень много информации, хотя есть и незначительный баг, при первом выводе часть текста может быть спрятана под этим новым элементом, но при повторном вызове текст нормально переносится, в общем баг есть, но не критичный, потому оставлю как есть пока:
|
|
|
|
Конечно же нужно сделать уведомление если вдруг команда не будет работать в каком-нибудь дистрибутиве Linux, выйдет весьма нехорошо если пользователь будет получать "ничего" в ответ:
Так как у меня много однотипной рутины в коде, имеет смысл провести рефакторинг грубо говоря, почему грубо говоря? Потому что я не только улучшил код, но и изменил функционал, хотя здесь всё ещё есть весьма много косяков которые нужно исправить:
|
|
|
И да, при нажатии кнопки USB Info я вызываю сначала команду lsusb и сразу же usb-devices, что я себе позволяю! На самом деле ничего страшного, ведь ещё в первых версиях ChimbaBench я позаботился о том, чтобы последующие вызовы диалогового информационного окна просто добавляли новые данные в вывод, потому у меня всё прекрасно работает:
|
|
|
|
Дальше нужно разобраться с dmidecode утилитой, вообще на ресурсе pkgs нашлись скомпилированные бинарники данный утилиты для дистрибутива Slackware, и оно в принципе даже работает:
Работает пока на сцену не выползает болото зависимостей характерное дистрибутивам Linux... Да, моя Slackware видимо уже слишком устарела, чтобы запустить dmidecode версии 3.5, GLIBC_2.34 видите ли не нашёлся, чем не принуждение к обновлениям? Это ещё похлеще принудиловка к обновлениям чем у Microsoft по сути...
|
|
|
|
Потому я загрузил Ubuntu 13.04 и скомпилировал dmidecode версии 3.5 в среде давно брошенного дистрибутива в котором тот самый GLIBC достаточно старой версии, чтобы быть в любом более новом дистрибутиве:
Почему мне вообще нужно было заниматься такой дичью? Правильно, потому что разработчики софта не сделали исполняемый файл приложения, они лишь рассказали что приложение вроде как есть под всякие дистрибутивы и даже в составе инструментов, но адекватного исполняемого файла нет, только исходный код.
Радует лишь одно, мне не пришлось плясать над бубном, чтобы скомпилировать dmidecode, к сожалению далеко не с каждым приложением так везёт.
В итоге несчастный dmidecode прекрасно работает как в древней Ubuntu 13.04, так и в Debian 11.6, и даже в Slackware 15.0, вообще именно так и должен работать любой софт, но линуксоидные извращенцы они такие, вечно всё переделывать и доделывать за ними нужно:
|
|
|
|
|
|
|
|
В общем одной проблемой меньше, кстати, ChimbaBench работает даже в Ubuntu 13.04, правда в виртуальной машине доступен только OpenGL 2.0 со всеми вытекающими последствиями, но работает ведь!
Правда есть другая проблема, я конечно вывожу код ошибки в случае если что-то пошло не так, но заставлять пользователя насиловать поисковую систему и форумы, чтобы узнать что значит тот или иной типичный код ошибки, это было бы так характерно для линуксоидных кривых поделок... К счастью у меня сейчас хоть и кривая поделка, но не линуксоидная:
|
|
|
На текущий момент я выделил лишь основные коды завершения работы приложений, и некоторые из них явно нужно изменить чтобы описание было более понятным для пользователя даже без помощи интернета:
Хорошо, а что будет если всплывёт специфический код ошибки? Всякое ведь бывает, например я случайно удалил код 127 из ассоциативного массива... Но ничего страшного, в описании будет просто "Null":
Так гораздо лучше, казалось бы, мелочь, но из таких мелочей как раз и состоит всё:
Протестировав новый функционал на работоспособность можно вернуть массив с описаниями ошибок в нормальное состояние, в том числе путь к скрипту который был преднамеренно искажён ради тестов:
В общем меня пока устраивает работа нового функционала:
|
|
|
|
|
А вот так это выглядит со стороны исходного кода, ещё я думал предоставить пользователю терминал внутри своего бенчмарка, но кому этот терминал сдался когда можно просто нажать уже готовую кнопку и получить информацию?
|
|
|
Хм, вот всё и работает как положено, но есть одна проблема... Интересно, что же здесь не так? Что потерялось весьма незначительное, но крайне полезное для пользователя?
|
|
|
Правильно, здесь нужна кнопка "сохранить"! Теперь не нужно вручную копировать информацию из окна сообщений, ведь я добавил кнопку сохранения текста в файл.
А чтобы не разводить помойку в системе пользователя, приложение само собой всё сохраняет рядом с исполняемым файлом в отдельной папке, а чтобы сохранённые файлы не перемешивались я добавил в имя текущую дату и время в адекватном формате ISO8601:
|
|
|
|
Мне всё равно даже если в часах дистрибутива у пользователя извращённый формат даты и времени по вине неполноценных гномов, версия которых уже перевалила за 40, а разработчики до сих пор так и не осилили настройки формата даты и времени...
Ладно, пожалуй на этом пора заканчивать ChimbaBench версии 2.1, только поправить парочку кнопок, хотя это не такая уж и большая проблема как два крестика в интерфейсе Slackware для закрытия окна, причём работает только левый крестик, а правый вовсе исчезает порой:
|
|
|
Хотя есть и баг с сохранением информации в файл, сохранение работает только в среде Linux, в среде Windows не сохраняет, но пока особо нечего сохранять в среде Windows потому этот баг исправлю в других версиях ChimbaBench.
Информации в некоторых случаях действительно много, потому кнопка сохранения в файл очень полезна:
|
|
|
|
|
|
|
|
И да, сцену я не трогал, потому она осталась без изменений:
В общем на этом всё, версия 2.1 завершена, в итоге я создал нечто действительно похожее на аналог AIDA64, в отличие от всяких GTK Stress Testing и иных названных аналогами утилит...
Теперь мне не нужно насиловать терминал если захочу быстро собрать информацию о системе, достаточно будет просто нажать пару кнопок и готово, теперь я так подумал, а почему бы не автоматизировать сбор всей информации... Ну да ладно, это уже оставлю на следующие версии.
Где найти ChimbaBench: ( https://github.com/Shedou/ChimbaBench ).
И напоследок оставлю забавный комментарий из предыдущих статей, он меня даже рассмешил:
P.S. Странно это постоянно повторять, но я не программист, а потому делаю как получается, это всяко лучше пустого звона от фанатиков Linux которые вообще ничего не сделали полезного для дистрибутивов :)
Благодарю за внимание, больше интересных статей в блоге Hard-Workshop.