воскресенье, 14 декабря 2025 г.

Релиз r49-20251214

 


Версии компонентов:
  • libtoxic v7.6.4
  • cr49 v1.3.0
  • Qr49 v3.12.13
Изменения:
  1. Qr49: исправлена ошибка, связанная с появлением некорректных символов в имени по умолчанию для шаблона импорта данных при его сохранении;
  2. Qr49: новый формат дата-время;
  3. libtoxic: новый формат дата-время;
  4. libtoxic: исправлена ошибка выбора допустимого значения gCO по циклу R96_I8;
  5. Общее: сборка под Windows выполнена с использованием Qt версии 5.15.18.

вторник, 3 декабря 2024 г.

Релиз r49-20241109



Версии компонентов:
  • libtoxic v7.6.2
  • cr49 v1.3.0
  • Qr49 v3.12.11
Изменения:
  1. libtoxic: в отчет по результатам расчета выбросов твердых частиц (текстовый вариант) добавлены параметры wfei и w_status;
  2. libtoxic: в отчет по результатам расчета выбросов твердых частиц (вариант HTML) добавлен параметр wfei;
  3. libtoxic: в файл с отладочными данными добавлен параметр wfei;
  4. libtoxic: исправлена ошибка в функции формирования отчета по результатам выбросов газообразных вредных веществ (вариант HTML);
  5. Qr49: оптимизирована функция loadAllSourceData;
  6. Qr49: устранена ошибка переключения языка интерфейса из главного меню;
  7. Общее: сборка под Windows выполнена с использованием Qt версии 5.15.15.

четверг, 7 января 2021 г.

Emacs Lisp. Представление чисел в различных системах счисления (dec, hex, bin)

При работе с текстом мне постоянно приходится менять представление чисел, переводя из одной системы счисления в другую. Что я хотел сказать? Emacs прекрасен. Взял и накидал несколько функций на elisp. Теперь, выделив число в тексте, можно быстро представить его в другой системе. Ниже привожу листинг.

;; convert decimal to binary
(defun pa23-dec2bin (start end)
  "Convert decimal to binary."
  (interactive "r")
  (let ((var 0) (res ""))
    (setq var (string-to-number (buffer-substring-no-properties start end)))
    (while (not (= var 0))
      (setq res (concat (if (= 1 (logand var 1)) "1" "0") res))
      (setq var (lsh var -1)) )
    (if (string= res "") (setq res "0"))
    (delete-region start end)
    (insert res) ) )

;; convert decimal to hexadecimal
(defun pa23-dec2hex (start end)
  "Convert decimal to hexadecimal."
  (interactive "r")
  (let ((var 0) (res ""))
    (setq var (string-to-number (buffer-substring-no-properties start end)))
    (setq res (upcase (format "%x" var)))
    (delete-region start end)
    (insert res) ) )

;; convert hexadecimal to binary
(defun pa23-hex2bin (start end)
  "Convert hexadecimal to binary."
  (interactive "r")
  (let ((var "") (res ""))
    (setq var (string-to-number (buffer-substring-no-properties start end) 16))
    (while (not (= var 0))
      (setq res (concat (if (= 1 (logand var 1)) "1" "0") res))
      (setq var (lsh var -1)) )
    (if (string= res "") (setq res "0"))
    (delete-region start end)
    (insert res) ) )

;; convert hexadecimal to decimal
(defun pa23-hex2dec (start end)
  "Convert hexadecimal to decimal."
  (interactive "r")
  (let ((var 0) (res ""))
    (setq var (string-to-number (buffer-substring-no-properties start end) 16))
    (setq res (number-to-string var))
    (delete-region start end)
    (insert res) ) )

;; convert binary to decimal
(defun pa23-bin2dec (start end)
  "Convert binary to decimal."
  (interactive "r")
  (let ((var 0) (res ""))
    (setq var (string-to-number (buffer-substring-no-properties start end) 2))
    (setq res (number-to-string var))
    (delete-region start end)
    (insert res) ) )

;; convert binary to hexadecimal
(defun pa23-bin2hex (start end)
  "Convert binary to hexadecimal."
  (interactive "r")
  (let ((var 0) (res ""))
    (setq var (string-to-number (buffer-substring-no-properties start end) 2))
    (setq res (upcase (format "%x" var)))
    (delete-region start end)
    (insert res) ) )

вторник, 5 января 2021 г.

cmake и wxwidgets на archlinux

Так уж получается, что потянуло меня опять по ряду причин на WxWidgets. Системой моей по-прежнему является ArchLinux, а для сборки программ я предпочитаю cmake. Подготовил файлы, запускаю

cmake -G "Unix Makefiles"

и получаю сообщение об ошибке

Расследование привело меня к файлу /usr/lib/wx/config/gtk3-unicode-3.0, на который есть символическая ссылка в /usr/bin. Вот только называется файл-ссылка wx-config-gtk3, а cmake хотел просто wx-config.

Решение проблемы:

sudo ln -s /usr/lib/wx/config/gtk3-unicode-3.0 /usr/bin/wx-config

И наш 

cmake -G "Unix Makefiles"

теперь отрабатывает без ошибок.

вторник, 7 января 2020 г.

Настройка шрифтов в Arch Linux

Хотелось бы еще раз остановиться на вопросе настройки шрифтов в Arch, так как, столкнувшись с чистой установкой, которую не делал уже не знаю даже сколько лет, пришлось искать информацию для решения некоторых проблем, и это оказалось непросто.
  1. Устанавливаем желаемую версию интерпретатора freetype2 в файле /etc/profile.d/freetype2.sh. Для этого необходимо раскомментировать строку export FREETYPE... и отредактировать ее. Лично я предпочитаю версию 35 (classic mode), ибо только она дает прекрасное сглаживание шрифтов (в основном я использую шрифты семейств Dejavu и Ubuntu).
  2. Настраиваем шрифты, создавая/удаляя символические ссылки (symlinks) в /etc/fonts/conf.d на соответствующие файлы в /etc/fonts/conf.avail. Для себя я считаю необходимым добавить ссылки на следующие файлы:
    10-hinting-full.conf
    10-sub-pixel-rgb.conf
    11-lcdfilter-default.conf
  3. Настраиваем шрифты в окружении рабочего стола. Я использую xfce4, поэтому привожу снимок окна для этого DE.
  4. Если необходимо перезагрузиться, перезагружаемся и убеждаемся, что шрифты во всех приложениях выглядят идеально, просто прекрасно, за исклюнием некоторых, использующих qt5 (например, virtualbox и vlc). В следующих пунктах решаем эту проблему.
  5. Проверяем, установлен ли пакет qt5ct. Если нет, его необходимо установить.
  6. В файле /etc/profile дописываем пару строк:
    export QT_QPA_PLATFORMTHEME="qt5ct"
    export QT_AUTO_SCREEN_SCALE_FACTOR=0

    Сколько же у меня ушло времени на поиск второй строки. Весь интернет говорит только о первой (а этого мало, эффект ноль), и только установив на виртуальную машину manjaro и поковырявшись в ней, я понял что нужно.
  7. Выбираем желаемые шрифты для приложений, использующих qt5 в конфигураторе qt5ct. Достаточно просто выбрать шрифты, создавать fonts.conf не нужно.
Ну вот и все. Теперь абсолютно все программы выглядят замечательно и пользоваться системой приятно, глаза благодарны.
Вот так теперь выглядят шрифты в разных приложениях.
 
UPD 2023-04-29
 
При переходе некоторых приложений на использование библиотеки gtk4 отрисовка шрифтов у них поломалась. Шрифты выглядят размыто. Для исправления этой ситуации необходимо создать файл конфигурации ~/.config/gtk-4.0/settings.ini, в котором прописать параметры gtk-hint-font-metrics, gtk-xft-antialias, gtk-xft-hinting, gtk-xft-hintstyle и gtk-xft-rgba. Привожу содержимое моего файла.
 
[Settings]
gtk-hint-font-metrics=1
gtk-theme-name=Adwaita
gtk-icon-theme-name=elementary
gtk-font-name=DejaVu Sans ExtraLite 10
gtk-cursor-theme-name=Adwaita
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=1
gtk-menu-images=1
gtk-enable-event-sounds=0
gtk-enable-input-feedback-sounds=0
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintfull
gtk-xft-rgba=none
gtk-application-prefer-dark-theme=0
 
UPD 2024-12-08
 
Пишу, конечно, с большим опозданием, но, как говорится, лучше поздно, чем никогда. Пара новостей. Во-первых, разработчики gtk4, похоже, никак не уймутся и опять поломали отрисовку шрифтов. Мне это порядком надоело. Я использовал две программы на gtk4: transmission и pavucontrol. Первую заменил на qbittorrent, а вторую вообще выкинул. Во-вторых, так как уже достаточно приличное количество программ перешло с qt5 на qt6, то пришлось внести поправки в файлы /etc/profile и ~/.profile. А именно заменить строки
export QT_QPA_PLATFORMTHEME="qt5ct"
export QT_AUTO_SCREEN_SCALE_FACTOR=0
на
export QT_QPA_PLATFORMTHEME="qt6ct"
export QT_AUTO_SCREEN_SCALE_FACTOR=0
export QT_ENABLE_HIGHDPI_SCALING=0

Разумеется, должна быть установлена утилита qt6ct, с помощью которой выставлены желаемые настройки шрифтов. Да, еще одно изменение в моей системе касательно шрифтов. С семейства ubuntu я давно уже перешел на Dejavu Sans, чего и всем желаю. По мне так это самые приятные шрифты.