06 января 2024

Viber 21.0.0.1 не запускается в Debian 12

Viber перестал запускаться в Debian 12 после обновления до версии 21.0.0.1. При запуске в консоли выдаёт ошибку

$ /opt/viber/Viber 
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: minimal, minimalegl, vnc, wayland-egl, wayland, eglfs, offscreen, xcb, linuxfb.

zsh: IOT instruction  /opt/viber/Viber

Для отладки проблем с плагинами Qt нужно запустить приложение с переменной окружения QT_DEBUG_PLUGINS=1

$ QT_DEBUG_PLUGINS=1 /opt/viber/Viber

[output skipped]

qt.core.plugin.factoryloader: Got keys from plugin meta data QList("linuxfb")
qt.core.plugin.factoryloader: checking directory path "/opt/viber/platforms" ...
qt.core.library: "/opt/viber/plugins/platforms/libqxcb.so" cannot load: Cannot load library /opt/viber/plugins/platforms/libqxcb.so: (libxcb-cursor.so.0: невозможно открыть разделяемый объектный файл: Нет такого файла или каталога)
qt.core.plugin.loader: QLibraryPrivate::loadPlugin failed on "/opt/viber/plugins/platforms/libqxcb.so" : "Cannot load library /opt/viber/plugins/platforms/libqxcb.so: (libxcb-cursor.so.0: невозможно открыть разделяемый объектный файл: Нет такого файла или каталога)"
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: minimal, minimalegl, vnc, wayland-egl, wayland, eglfs, offscreen, xcb, linuxfb.

zsh: IOT instruction  QT_DEBUG_PLUGINS=1 /opt/viber/Viber

Xcb плагин не может найти libxcb-cursor.so.0, нужно проверить зависимости у /opt/viber/plugins/platforms/libqxcb.so

17 декабря 2023

Что нужно помнить про Cloud IAM и Kubernetes RBAC в GKE

Чтобы разграничить права пользователей по namespace нужно использовать Kubernetes RBAC, т.к. Cloud IAM не позволяет гранулярно задать привилегии внутри namespace. Сделал простую роль для namespace (Role/RoleBinding) и кластерную роль для просмотра namespace, storageclass и прочих ресурсов, которые не имееют привязки к namespace.

процессе отладки возникла проблема что пользователь, который должен видеть список namespace и оперировать ресурсами в пространстве имён "abc-dev", смог создать ресурс в пространстве имён "xyz-dev". Если проверять через kubectl auth can-i create secret --as user@example.com --namespace xyz-dev то возвращает false, но при этом ресурс создаётся.

11 декабря 2023

Тестер ёмкости аккумуляторов ZB2L3 V2.3s

 Это обзор бюджетного тестера ёмкости аккумуляторов ZB2L3 V2.3s. В интернете хватает обзоров похожих модулей, но в процессе проверки моего экземпляра я столкнулся с отличиями и решил написать об этом.

Что заявил в описании модуля продавец:

  • Максимальное входное напряжение 15V (разрешение вольтметра 0.01V, точность 1%+0.02V)
  • Максимальный ток 3A (разрешение амперметра 0.001A, точность 1.5%+0.008A)
  • Напряжение окончания разряда 0.5V - 11.0V (точность установки 0.1V)
  • Максимальная измеряемая ёмкость 9999Ah
  • Автоматическое определение напряжения окончания разряда
  • Отключение нагрузки при достижении напряжения окончания разряда

10 декабря 2023

Debian 12.3 image release delayed

 По привычке запустил sudo apt update && sudo apt upgrade, но несколько пакетов ядра не смогло скачать:

Не удалось загрузить пакет.:

E: http://deb.debian.org/debian bookworm/main amd64 linux-image-6.1.0-14-amd64 amd64 6.1.64-1 is not (yet) available (403 Access denied - broken package [IP: 151.101.86.132 80])

E: http://deb.debian.org/debian bookworm/main amd64 linux-image-amd64 amd64 6.1.64-1 is not (yet) available (403 Access denied - broken package [IP: 151.101.86.132 80])

А в почте нашлось уведомление от Debian:

08 декабря 2023

Эмуляция Google Cloud Storage

Для тестирования Spark с хранилищем S3 мы используем MinIO. Это позволяет запускать тесты локально в Docker не имея доступа к реальной инфраструктуре. Недавно дошли до тестирования Spark с Google Cloud Storage и мне довелось разрабатывать аналогичный тест.

В году этак 2019, я искал способ эмулировать GCS для тестирования приложений, но тогда ничего работающего не нашлось.

07 декабря 2023

Электронная нагрузка 75W

Мой проект электронной нагрузки 300W (почитать можно тут, тут и тут) всё ещё не готов к повседневному использованию, хотя и перешагнул стадию "куча проводов на столе". Чтобы не сидеть без электронной нагрузки неопределенное время, собрал простенькую полностью аналоговую электронную нагрузку небольшой мощности  (100V / 5A / 75W).

За основу взята схема с форума cxem.net, но в моём варианте пересчитаны номиналы компонентов для тока до 5A. В итоге нагрузка может потреблять до 75W, а кратковременно и все 80W, но не стоит так делать.

05 декабря 2023

Миллиомметр своими руками

Иногда приходится работать с низкими сопротивлениями (например токовыми шунтами), которые обычный мультиметр измерить не в состоянии. Для этого нужен миллиомметр, но покупать готовое устройство ради пары измерений в год мне не хочется.

По закону ома любое сопротивление можно вычислить зная ток и падение напряжения на сопротивлении. Для измерений буду использовать ток 100mA, который стабилизируется LM317 а чтобы избежать потерь на проводах буду использоваться подключение Кельвина. Падение напряжения на измеряемом сопротивление будет измеряться мультиметром.