LINUX.ORG.RU

Сообщения Turbid

 

vim - как хитро выделить колонку

Форум — General

Допустим, у меня есть блок кода:

user = Table(
    "user",
    metadata,
    Column("id", Integer, primary_key=True),
    Column("email", String, nullable=False),
    Column("username", String, nullable=False),
    Column("registered_at", TIMESTAMP, default=datetime.utcnow),
    Column("role_id", Integer, ForeignKey(role.c.id)),
    Column("hashed_password", String, nullable=False),
    Column("is_active", Boolean, default=True, nullable=False),
    Column("is_superuser", Boolean, default=False, nullable=False),
    Column("is_verified", Boolean, default=False, nullable=False),
)

Нужно чтобы в буфере оказалась колонка:

id
email
username
registered_at
role_id
hashed_password
is_active
is_superuser

Я у кого-то видел такое в видео, причем не в vim, а в PyCharm.

 , ,

Turbid
()

freeipa - ошибка после восстановления из бекапа

Форум — Admin

На proxmox в lxc-контейнере вертелись два инстанса freeipa. После неудачного обновления контейнеры откатили на неделю назад штатными средствами бекапов proxmox. После этого перестало пускать в веб-морду:

Login failed due to an unknown reason.

и отрабатывать sudo-правила, хотя авторизация по ключу на сами сервера работают, сервисы которые были завязаны на ldap получают учетки.

В логах сыпет такое:

Sep 26 15:47:17 ipa.tc.example.ru systemd[1]: ipa-dnskeysyncd.service holdoff time over, scheduling restart.
Sep 26 15:47:17 ipa.tc.example.ru systemd[1]: Stopped IPA key daemon.
Sep 26 15:47:17 ipa.tc.example.ru systemd[1]: Started IPA key daemon.
Sep 26 15:47:21 ipa.tc.example.ru ipa-dnskeysyncd[18373]: ipa-dnskeysyncd: CRITICAL Kerberos authentication failed: Major (851968): Unspecified GSS failure.  Minor code may provide more information, Minor (2529639106): Credentials cache permissions incorrect (filename: /tmp/ipa-dnskeysyncd.ccache)
Sep 26 15:47:21 ipa.tc.example.ru systemd[1]: ipa-dnskeysyncd.service: main process exited, code=exited, status=1/FAILURE
Sep 26 15:47:21 ipa.tc.example.ru systemd[1]: Unit ipa-dnskeysyncd.service entered failed state.
Sep 26 15:47:21 ipa.tc.example.ru systemd[1]: ipa-dnskeysyncd.service failed.

Файла, на который ругается, нет:

# ls -la /tmp/ipa-dnskeysyncd.ccache
ls: cannot access /tmp/ipa-dnskeysyncd.ccache: No such file or directory
# ipactl status     
Directory Service: RUNNING
krb5kdc Service: RUNNING
kadmin Service: RUNNING
named Service: RUNNING
httpd Service: RUNNING
ipa-custodia Service: RUNNING
ntpd Service: STOPPED
pki-tomcatd Service: RUNNING
ipa-otpd Service: RUNNING
ipa-dnskeysyncd Service: RUNNING
ipa: INFO: The ipactl command was successful

ntp не стартует т.к. он внутри контейнера, как я понимаю. Не помню - работал ли он до восстановления из бекапа.

# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)
# rpm -q ipa-server
ipa-server-4.6.8-5.el7.centos.12.x86_64

 , , ,

Turbid
()

Каково это - использовать вторичный дистрибутив? Часть 2

Форум — Talks

Первая часть

@cocucka пишет:

фиксануть что-то – пожалуйста. Участвуй в движухе opensource на здоровье

ну да, читаем прекрасную новость с опеннета:

После перехода на новую модель сопровождения дистрибутива, допускающую применение собственных патчей, разработчики Alma Linux устранили в пакете iperf3 уязвимость (CVE-2023-38403) и попытались передать подготовленное исправление в CentOS Stream, так как уязвимость оставалась неисправленная в RHEL и CentOS Stream. Сотрудник Red Hat отказался принимать исправление, сославшись на правило, допускающее устранение только важных проблем.

Уязвимость CVE-2023-38403 была оценена инженерами Red Hat как несущественная, а исправления для подобных проблем включаются в пакеты лишь при необходимости, обусловленной наличием запросов от клиентов или потребностями бизнеса. Представитель Alma Linux выразил недоумение, так как для включения в CentOS Stream передан уже готовый патч, устраняющий проблему, и от Red Hat не требовалось самостоятельно создавать исправление, а нужно было лишь рецензировать готовое изменение, принятое в кодовую базу проекта iperf.

https://www.opennet.ru/opennews/art.shtml?num=59520

 , , ,

Turbid
()

Deploy конфигурации/скрипта на сервер

Форум — Development

Мой кейс: я отлаживаю сложный диалплан на Lua для Asterisk на тестовом сервере. Docker и прочие контейнеры тут не подходят - есть работа с железом (DAHDI).

Сейчас я просто ковыряюсь в NeoVim через SSH, но дошел до той стадии когда пора заливать в Git.

И тут вилка:

  1. Продолжить ковырять через SSH с периодическими коммитами (бакап)

  2. Писать на десктопе, но это будут постоянные качели пуш/пулл между сервером и рабочей машиной.

  3. Через что-то вроде remote плагин для VSCode.

Идеологически правильным вижу второй вариант - он же и останется после введения сервера в продакшн. Но что-то как-то муторно на каждый чих commit => push > pull > module relad pbx_lua.so

Может есть какой-то метод про который я не слышал?

Мне нужно погружаться в CI/CD, хуки и т.д., да?

 ,

Turbid
()

Как проверить - дергает ли программа файл каждый раз или держит в буфере?

Форум — General

Суть - наткнулся на комментарий, где @zmc жалуется что Asterisk на исполнение одного контекста несколько раз дергает lua-файл с диалпланом:

local log, err = io.open("/tmp/pbx_lua.log","a")

if log then
  log:setvbuf("no")
  log:write('--- iteration ---\n')
  log:close()
end

extensions = { 
   lua = { 
      ["000"] = function(context, extension)
         app.Verbose("---------------- Test LUA Call -------------------------")
      end 
  }
}

Я проверил - так и есть, несколько итераций на простом контексте.

Лучше новый tcp коннект, чем такое.

Но вопрос - а точно ли он дергает каждый раз файловую систему для перечитывания скрипта? Или держит в буфере? Если второе - то вроде как и не страшно.

$ stat /etc/asterisk/extensions.lua 
  File: /etc/asterisk/extensions.lua
  Size: 2491            Blocks: 8          IO Block: 4096   regular file
Device: 900h/2304d      Inode: 4718730     Links: 1
Access: (0644/-rw-r--r--)  Uid: (  106/asterisk)   Gid: (  112/asterisk)
Access: 2023-03-14 17:36:50.566980520 +0300
Modify: 2023-03-14 17:36:46.975001482 +0300
Change: 2023-03-14 17:36:46.975001482 +0300
 Birth: 2023-03-14 17:36:46.975001482 +0300

Access вроде не менялся после `module reload pbx_lua.so’. Это доказывает что файл больше не дергается и лежит в буфере?

 , , ,

Turbid
()

Пишу из горящего танка - KDE neon не готов к десктопу

Форум — Talks

neon позиционировали как стабильную базу на основе LTS Ubuntu и свежими кедами. И это было бы иделально если бы не такие факапы: https://forum.kde.org/viewtopic.php?f=309&t=177357

Если коротко - они зачем-то обновлили libjpeg-turbo8 и еще какие-то библиотеки, но т.к. они собирают только под amd64, то заруинили wine.

И это не первый раз. До этого у меня что-то не ставилось из ppa, т.к. они обновили Qt.

Короче - идея хорошая, но пользоваться таким нельзя. Вертаюсь на Debian.

 , , ,

Turbid
()

Ищу DokuWiki, только Markdown

Форум — Talks

Хотелка такая: максимально близкий аналог по функциям к DokuWiki, но хранение файлов не в txt, а md. Соответственно основной синтаксис - Markdown.

Никаких БД для хранения самих статей - хотелось бы иметь git с бекапом.

Поддержка LDAP/SSO обязательна.

Из ближайшего что подходит - Gitea. Но специализированного ничего нет? Просто предполагается что ей будут пользоваться не только бородатые программисты, а простые смертные.

 , , , ,

Turbid
()

Когда коту нечего делать - он добавляет проверку типов

Форум — Talks

Понадобилось мне тут накидать небольшой CRUD, я по старой памяти рачехлил Flask,а заодно и решил донастроить neovim как Python IDE с помощью новомодных lsp/pyright/cmp. И тут же наступил ногами в жир:

from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy(app)

class User(db.Model):     ■ Expected type expression but received "type"
    id = db.Column(db.Integer, primary_key=True)

Гуглинг привел к issue к pyright, а оттуда и на подобную к mypy.

И вот что там пишет один бедолага:

I’m removing Flask-SQLAlchemy from my code entirely. I’ve moved most references of db.* to sa.* and sa.orm.* so I could get type checking. Next step: replacing db.Model with a custom base model, then db.session.

This has been a nightmare year with perfectly functional code falling apart every few months as various framework libraries refactor themselves to fit into the constraints of static typing.

Static type checking has been an excellent development for Python – it’s significantly reduced the need for test coverage of data types, or defensive code to evaluate function parameters – but it’s also shrunk the dynamic nature of Python to the subset recognised by type checkers. My project now has an average of five # type: ignore lines per Python file, and I’ve spent way too much time this year on (a) researching ways to make an idiom type-compatible, and (b) giving up and adding an ignore.

 , , , pyrigth,

Turbid
()

Тормоза и фризы при отключении основного монитора

Форум — Desktop

KDE neon 5.26 на основе Ubuntu 22.04. Ноутбук с дискреткой Nvidia и встройкой AMD:

$ lspci | grep VGA
01:00.0 VGA compatible controller: NVIDIA Corporation TU117M [GeForce GTX 1650 Ti Mobile] (rev a1)
06:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Renoir (rev c7)

Nvidia в режиме PRIME on-demand.

Если в настройках экрана отключить встроенный экран, а оставить только внешний, подключенный по HDMI, то начинаются лютые фризы и тормоза. При этом в логах X-ов появляется:

(EE) AMDGPU(0): drmmode_do_crtc_dpms cannot get last vblank counter

Тут же возращаешь настройки назад и все ОК.

Гугл говорит что у народа такое бывает при выходе из спящего режима с отключением монитора.

Перемещено hobbit из general

 , , ,

Turbid
()

SIP-клиент

Форум — Talks

В продолжении темы @Xintrea от 2018 года: Боженьки, таки есть ли под Linux хоть один нормальный SIP-клиент?

Докладываю из горящего танка: по прежнему нет.

  1. Linphone Desktop - самый полноценный и рабочий вариант, но с 4 версии весь завязан на их фирменные сервисы и даже presence не включить без ковыряния в BD). Мы такое не любим.

  2. Jitsi Desktop - мёртв, последняя версия вышла в 2020 году, толком не развивался с 2016. Все бы ничего, но я даже контакт не могу добавить в список - тупо неактивна кнопка Add. Еще на Java - фу!

  3. Blink Qt - корявенько и нефункционально. Например, нельзя добавить в контакт из истории вызовов. Перевод вызовов и Presence вроде зявлены, но я не нашел как.

В итоге - все тот же MicroSIP через Wine. Единственный минус - не работает видео.

 blink-qt, , , ,

Turbid
()

KeePassXC 2.7.3

Новости — Open Source
KeePassXC 2.7.3
Группа Open Source

Вышла новая версия KeePassXC — кроссплатформенного менеджера паролей с графическим интерфейсом. Исходный код распространяется под лицензией GPLv2 или GPLv3.

( читать дальше... )

>>> Подробности

 , , , ,

Turbid
()

Asterisk 20

Новости — Open Source
Группа Open Source

Состоялся релиз новой LTS-ветки Asterisk 20 — свободной программной телефонной станции.

Некоторые нововведения по сравнению с версией 19.0.0:

( читать дальше... )

Одновременно представлены выпуски LTS-веток — Asterisk 18.15.0 и Asterisk 16.29.0 с исправлением ошибок и включением части перечисленных в новости нововведений.

>>> Подробности

 , , ,

Turbid
()

Автопереключение между темной и светлой схемой

Форум — Linux-org-ru

Вроде современный веб может определять светлая или темная тема сейчас у пользователя? Поправьте если ошибаюсь.

Хотелось бы автопереключение между tango и waltz в зависимости от текущей темы рабочего стола.

 , , , ,

Turbid
()

Astra зачем-то ищет программиста для KDE

Форум — Talks

https://astralinux.ru/information/job/40847129

Какие задачи:

Разработка ПО и доработка существующего на C++/Qt Работа с проектом KDE Разработка, мантейнерство пакетов Работа с opensource сообществом проекта KDE Разработка преимущественно десктоп приложений. Много работы с GUI, поэтому ищем человека с хорошим чувством вкуса и знанием основных принципов UX.

Какие варианты видим?

  1. fly-dm не взлетел и стоит задача переезда на KDE
  2. fly-dm таки таки ворует наработки KDE. KDE Frameworks под LGPL

 , ,

Turbid
()

Disk read/write request avg waiting time (w_await)

Форум — Admin

Проблема - в zabbix постоянно висят две ошибки по обоим дискам:

sda: Disk read/write request responses are too high (read > 20 ms for 15m or write > 20 ms for 15m)

sdb: Disk read/write request responses are too high (read > 20 ms for 15m or write > 20 ms for 15m)

Оба диска собраны в RAID1:

md2 : active raid1 sda4[2] sdb4[3]
      392050688 blocks super 1.2 [2/2] [UU]
      bitmap: 0/3 pages [0KB], 65536KB chunk

md0 : active raid1 sda2[2] sdb2[3]
      87824384 blocks super 1.2 [2/2] [UU]

md1 : active (auto-read-only) raid1 sda3[2] sdb3[3]
      7806976 blocks super 1.2 [2/2] [UU]

Сервер совершенно не нагружен.

Обратил внимание, что когда после аварийной перезагрузки пересобирался RAID, то ошибка под диску sda пропала. Ну и по графику видно - как только появляется реальная активность на дисках, то значения «Disk read/write request responses» падают.

Как так то?

 , ,

Turbid
()

Удаленный рабочий стол в Linux

Форум — Talks

Есть ли шанс, что в Linux появится нормальный удаленный рабочий стол?

Требования:

  1. Отзывчивость. Сейчас у меня в x2go в локалке задержки больше чем в оффтопике под anydesk или teamviewer через интернет.

  2. Подключение к текущей сессии. Насколько я понимаю, это решается костылями в x11vnc и штатно в x2go. Что с xrdp?

  3. Проброс звука. x2go с клиентом в оффтопике у меня не работает.

  4. Wayland. x11vnc, x2go и xrdp скоро превратятся в тыкву. Что-то маячит на горизонте для их замены?

 , , , ,

Turbid
()

Побочные эффекты функций

Форум — Development

В первом томе свого монументального труда А.В. Столяров пытается мне донести опасность побочных эффектов, приводя в пример функции и процедуры Pascal. И как C плох тем, что в нем только функции. В своем интерьвю он тоже про это упоминает.

Но я ничего не понел.

Возьмем его же пример свободной от побочных эффектов процедуры:

procedure NegotiateSize(var res: integer);
var
  h: integer;
begin
  repeat
    write('Enter H: ');
    readln(h)
  until (h > 0) and (h mod 2 = 1);
  res := h
end;

И аналогичную функцию с побочным эффектом:

function NegotiateSize: integer;
var
  h: integer;
begin
  repeat
    write('Enter H: ');
    readln(h)
  until (h > 0) and (h mod 2 = 1);
  NegotiateSize := h
end;

Объясните мне, где тут побочный эффект?

p.s. почему подсветка кода ломается на функции?

 , ,

Turbid
()

Asterisk 19.0.0

Новости — Open Source
Группа Open Source

Состоялся выпуск Asterisk 19 — свободной программной телефонной станции.

( читать дальше... )

Одновременно представлены выпуски LTS-веток — Asterisk 18.8.0 и Asterisk 16.22.0 с исправлением ошибок и включением части перечисленных в новости нововведений.

>>> Подробности

 , , ,

Turbid
()

Как в apt посмотреть список обновлений из backports?

Форум — General

Я всю жизнь пользовался aptitude и там можно было сделать так:

$ aptitude -t bullseye-backports search ~U
i A libldap-2.4-2                                                                 - OpenLDAP libraries                                                                     
i A libldap-common                                                                - OpenLDAP common files for libraries                                                    
i   mdadm                                                                         - Tool to administer Linux MD arrays (software RAID)                                     
i   zabbix-agent                                                                  - network monitoring solution - agent

В apt наконец тоже завезли шаблоны и я на него уже почти полностью перелез, но держит одна фигня:

$ apt -t bullseye-backports list --upgradable 
E: Command line option 't' [from -t] is not understood in combination with the other options.
$ apt -t bullseye-backports list ~U
E: Command line option 't' [from -t] is not understood in combination with the other options.
$ apt -t bullseye-backports search ~U
Sorting... Done
Full Text Search... Done
$ 
$ 
$ sudo apt -t bullseye-backports full-upgrade 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  libldap-2.4-2 libldap-common mdadm zabbix-agent
4 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 1 382 kB of archives.
After this operation, 37,9 kB of additional disk space will be used.
Do you want to continue? [Y/n]

Что за фигня, почему ключ -t работает только с install/upgrade?!

 , , ,

Turbid
()

tar command style

Форум — Talks

Пока вы обсуждаете всякую малозначащую ерунду типа systemd или pipewire, в мире Linux остаются действительно очень важные нерешенные проблемы, которые простой ЛОРовец стесняется обсуждать.

Одина из таких - какой стиль команд использовать простому крестьянину в tar?

Традиционный:

tar cfv etc.tar /etc

Модный UNIX:

tar -cvf etc.tar /etc

Или, может быть, вы любите длинные, но однозначные опции в GNU-style?

tar –create –file etc.tar –verbose /etc

Нам надо наконец-то решить и принять единый стиль - твердо и четко.

 , ,

Turbid
()

RSS подписка на новые темы