LINUX.ORG.RU

Сообщения annerleen

 

Не понимаю поведение apt (dpkg)

Привет, ЛОР!
Я хочу поговорить с тобой о удивительном поведении пакетного менеджера в Debian (и Debian-based дистрибутивах).

Я долго пытался поймать подобное поведение, но всё же мне удалось.

Надеюсь, кто-то из заядлых дебианщиков объяснит мне, какого хчем такое поведение обусловлено и как можно этого избежать.


Итак:

1. Я решил установить пакет photocollage, пакетный менеджер (конечно же, с опцией --no-install-recommends в конфиге) любезно установил этот пакет с удоволетворением всех зависимостей:

➤  sudo apt install photocollage                                                                                                                                 
[sudo] password for ann: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libimagequant0 python3-pil
Suggested packages:
  python-pil-doc python3-pil-dbg
Recommended packages:
  python3-olefile
The following NEW packages will be installed:
  libimagequant0 photocollage python3-pil
0 upgraded, 3 newly installed, 0 to remove and 12 not upgraded.
Need to get 591 kB of archives.
After this operation, 2,103 kB of additional disk space will be used.
Do you want to continue? [Y/n] 
Get:1 http://ftp.ee.debian.org/debian stable/main amd64 libimagequant0 amd64 2.12.2-1.1 [32.5 kB]
Get:2 http://ftp.ee.debian.org/debian stable/main amd64 python3-pil amd64 5.4.1-2 [395 kB]
Get:3 http://ftp.ee.debian.org/debian stable/main amd64 photocollage all 1.4.3-2.1 [164 kB]
Fetched 591 kB in 0s (1,927 kB/s)     
Selecting previously unselected package libimagequant0:amd64.
(Reading database ... 118144 files and directories currently installed.)
Preparing to unpack .../libimagequant0_2.12.2-1.1_amd64.deb ...
Unpacking libimagequant0:amd64 (2.12.2-1.1) ...
Selecting previously unselected package python3-pil:amd64.
Preparing to unpack .../python3-pil_5.4.1-2_amd64.deb ...
Unpacking python3-pil:amd64 (5.4.1-2) ...
Selecting previously unselected package photocollage.
Preparing to unpack .../photocollage_1.4.3-2.1_all.deb ...
Unpacking photocollage (1.4.3-2.1) ...
Setting up libimagequant0:amd64 (2.12.2-1.1) ...
Setting up python3-pil:amd64 (5.4.1-2) ...
Setting up photocollage (1.4.3-2.1) ...
Processing triggers for libc-bin (2.29-7) ...
Processing triggers for desktop-file-utils (0.23-4) ...
Processing triggers for mime-support (3.62) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...


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

➤  sudo apt purge photocollage                                                                                                                                   
[sudo] password for ann: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  photocollage*
0 upgraded, 0 newly installed, 1 to remove and 12 not upgraded.
After this operation, 550 kB disk space will be freed.
Do you want to continue? [Y/n] 
(Reading database ... 118289 files and directories currently installed.)
Removing photocollage (1.4.3-2.1) ...
Processing triggers for mime-support (3.62) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for desktop-file-utils (0.23-4) ...


И тут, эээ, интересный вопрос.

Какого, собственно, фига apt удаляет пакет, но не удаляет его зависимости? Это вообще законно?

Сколько ещё пакетов были установлены как зависимости, но не удалены вместе с тем пакетом, с которым были установлены? Доколе?

 

annerleen ()

Долгая отправка почты

Привет, ЛОР!
Столкнулись со следущей проблемой: письма по SMTP (скриптом) отправляются примерно 5 секунд.

Отправка с локального домена на локальный домен, при этом с удалённого хоста.

Из того, что удалось отпрофайлить навскидку — EHLO и, собстенно, SASL авторизация занимает примерно 0.1 секунду, всё остальное — думает над отправкой.

master.cf

Нагрузки на CPU в момент отправки почти нет (~10% smtpd), оперативной памяти свободно примерно 3ГБ из 4ГБ.


Из-за чего может быть такая задержка и что можно предпринять, чтобы снизить задержку хотя бы до 1 секунды?
Началось, ориентировочно, с обновления Debian Oldstable до Stable.

 

annerleen ()

Портировать модуль с MongooseIM для ejabberd

MongooseIM — форк ejabberd (XMPP-сервер, написанный на Erlang).

Задача:

- Портировать mod_jingle_sip (модуль для прозрачной трансляции звонков из Jingle/XMPP в SIP и наоборот) в ejabberd (структура модулей у них похожая, однако есть достаточно mongooseim-специфичных вещей)

- Добавить поддержку XEP-0262 (ZRTP/Jingle), а протокол XEP-0320 (DTLS-SRTP/Jingle) сделать опциональным (т.е. на выбор ZRTP или DTLS-SRTP).

За всё это предлагаю эквивалент €700 в Bitcoin.
Также по итогам работы нам возможно (!) потребуется разработчик под подобные штуки (erlang/C) на постоянной основе (но это пока не точно!)


Спасибо за внимание.

 , , ,

annerleen ()

Jingle, freeswitch, mod_dingaling и вот это вот

Привет, ЛОР!
У кого-то есть удачный опыт поднимания вот этого вот всего?

Пытаюсь поднять мост между XMPP и SIP, десктопные клиенты просто не видят возможность инициации вызовов (хотя судя по XML-логу, mod_dingaling афиширует поддержку Jingle).

Если в обезьянка-mode отключить проверки в том же Gajim, можно попробовать позвонить, однако на выходе получаем «<text xmlns=«urn:ietf:params:xml:ns:xmpp-stanzas»>Content audio (created by initiator) does not exist</text>»

Полный лог
Конфиг:

<profile type="component">
   <param name="name" value="JID"/>
   <param name="server" value="XMPPSERVER"/>
   <param name="password" value=""/>
   <param name="dialplan" value="XML"/>
   <param name="context" value="from-universe"/>
   <param name="exten" value="_auto_"/>
   <param name="auto-login" value="true"/>
   <param name="auto-reply" value="Press *Call*"/>
   <param name="use-jingle" value="true"/>
   <param name="rtp-ip" value="auto-nat"/>
   <param name="ext-rtp-ip" value="auto-nat"/>
   <param name="use-rtp-timer" value="true"/>
</profile>


С параметрами rtp-ip, ext-rtp-ip, STUN-серверами и пр. игрался — без толку..

P.S. если точно знаете решение проблемы ­— можно за денежку ☺

 , , ,

annerleen ()

Gitea / Git / Hg

Привет, ЛОР.
У меня сегодня пятница, поэтому хочу поговорить про (d)VCS, SCM и прочие матерные аббривеатуры.


А вопрос, собственно, следущий...

Сейчас используем Kallithea и hg, сколько раз пробовал с git подружиться ­— всё никак, не слишком упоротый какой-то он.
Но постепенно её фич начинает не хвататать, да того же банального issue tracker'а не завезли.

От DVCS (пока что!) нужно самое минимальное — коммиты да чейнжлоги. (но уже чувствую, как придётся учить людей в тимворк и волосы на одном месте дыбом встают, ага)


А, точно! Вопросы.
Комрады, кто-то использовал Gitea в продакшене хотя бы на протяжении года?
А то как-то 1000 открытых багов на гитхабе совсем немножко настораживают.

Второй вопрос, можно ли полноценно пользоваться git и SCM, подняв зеркало hg2git?
Или это всё же костыль и изврат и придётся конвертировать репозитории?


И третий, собственно, вопрос, — чем всё сконвертить, чтобы удобно, с сохранением коммитлогов и прочего?
В гугле, естественно, забанили, и он предлагает целый спектр решений от шелл-скриптов до платных Ънтерпрайздных конвертилок под различные оффтопики.

 , ,

annerleen ()

Почему уродуют софт?

Привет, ЛОР.

Многобукв не будет, просто вопрос.
В сабже.

Пример: вот был XFCE 4.12.
Там была замечательная вещь под названием Orage.
Это легковесный календарик, который умел в добавление ивентов и напоминания, замечательно интегрируясь в системную панель.

Xfce переписали на Gtk3.
Orage больше нет. Замены не завезли.

Итого: после порта на Gtk3 функциональность (лично для меня) рабочего окружения заметно упала, при этом (!) потребление памяти выросло в полтора раза.


Пошто, товарищи?
Может, задонатить им или разработчика нанять, чтобы портанули календарик?

С Xfce то некуда бежать.

 ,

annerleen ()

OTR в Gajim 1.0+ (Gtk3)

С выходом Gajim 1.0 на Gtk3 разработчики дропнули поддержку OTR-шифрования, объяснив это тем, что нинужна это небезопасно/технически невозможно/ещё куча разных оправданий.

В общем, делать было совершенно нечего...

В общем, вопрос: это кому-то кроме меня нужно? (если да, не поленюсь и допилю до production-ready, если нет — для себя «и так сойдёт»)

 

annerleen ()

Bounty Python3 Gajim

Привет, ЛОР!

Есть, значит, один Jabber-клиент, Gajim.
Есть у него такой плагин/фича HTTP Upload Plugin

Если перетащить файл drag-and-drop'ом в окно чата, файл передаётся посредством этого плагина: https://i.imgur.com/39p3R7o.png.
(Хотя я не уверен, что это не одна _из_ реализаций способа передачи файлов — может, дело совсем не в плагине, но это вряд-ли играет роль)

Задача
При нажатии Ctrl+V в окне чата, в том случае, если в буфере обмена находится что-то отличное от текста (например, изображение) — действовать так же, как и при drag-n-drop'е в окно чата — инициировать передачу файла.


Предлагаю $250 в BTC эквиваленте (либо по курсу на карту любого российского банка) за реализацию данной возможности.


Думаю те, кто знаком с PyGTK, с лёгкостью справятся.
Если где-то есть неучтённый подводный камень — покажите, да, условия могут поменяться.

 ,

annerleen ()

Количество подключенных USB-устройств

Доброго времени суток!
Дано: Linux-машина с двумя USB3.0 портами, в каждом — USB3.0 хаб на 7 портов, к каждому подключено по четыре USB2 устройства.

В dmesg:

[ 861.015836] usb 3-6: Not enough host controller resources for new device state.
[ 870.028315] usb 3-8: Not enough host controller resources for new device state.
[ 870.028334] usb 3-8: can't set config #1, error -12

Вопросы:

- Где и какой лимит на количество подключенных устройств?
- Что такое «usb 3»? Номер шины? Bus 003 в lsusb — это оно?
- Внешние PCI-USB3 контроллеры попадают под этот лимит или они спасут ситуацию?
Если на них тоже есть этот лимит — то какой?

Спасибо.

 ,

annerleen ()

Учился делать Telegram-бота

Привет, ЛОР!
Есть один...

В общем, пытался в Python и Telegram API, не уверен в правильности кода и/или некоторых решений, хочу, чтобы Python-гуру оценили код и подсказали что и где неплохо бы исправить.

Бот ещё не допилен, но желающие могут его себе, т.к. все известные мне с похожим функционалом — closed-source, а значит скорее всего сливают логи из ваших чатов доброму создателю.

Из возможностей — разного рода рулеточки, статистика (WIP), запись логов и что-то ещё.
Можно легко добавлять свои собственные команды, если хоть немного знакомы с удавом.
А, ну и я осилил интерфейс конфигурирования бота с собстенными конфигами для каждой конфы — этого вообще нет нигде (ибо ограничения Telegram API) и реализовывать пришлось через одно место.

Зачем тред? Всё вышеописанное, да и просто так, чтобы, так скзть, добро не пропадало даром.
Спасибо за внимание.

NB! Если зашли в тред напомнить, что Телеграм не нужен — все и так это знают, не нужно на это тратить байты!

 ,

annerleen ()

Возможно ли в один запрос...

Есть таблица с направлениями и телефонными кодами вида:

billing=> select * from directions where id = 1075;
  id  |            direction            | code | min_len | max_len | int_code 
------+---------------------------------+------+---------+---------+----------
 1075 | United Kingdom Special Services | 4450 |      12 |      12 |     4450
 1075 | United Kingdom Special Services | 448  |      12 |      12 |      448
 1075 | United Kingdom Special Services | 4455 |      12 |      12 |     4455
 1075 | United Kingdom Special Services | 449  |      12 |      12 |      449
 1075 | United Kingdom Special Services | 4456 |      12 |      12 |     4456
 1076 | United Kingdom Freephone | 44800 |      10 |      14 |    44800
 1076 | United Kingdom Freephone | 44808 |      10 |      14 |    44808


Задача: получить список вида «id - direction - code (все с этим id)»
Как бы distinct on direction, но он, естественно, оставляет только первый code.

Вопрос: возможно ли одним запросом?

 

annerleen ()

Telegram в Jabber (Zhabogram v0.8)

Привет, ЛОР!
Позволю себе наглость создать ещё одну тему про транспорт XMPP в Telegram.

Новость на LOR
Скриншот
Mercurial-репозиторий (HTTP)

Отличия от первой версии

- Синхронизация статусов
- Поддержка VCard и юзерпиков
- Добавление и удаление Telegram-контактов
- Отправка, приём и редактирование сообщений
- Обработка цитат и forward messages
- Отправка и приём файлов
- Секретные чаты
- Создание и управление группами и каналами
- Поиск по сообщениям и получение истории с сервера
- Управление аккаунтом Telegram
- Сохранение сессий, автоматический реконнект, получение часового пояса от Jabber-клиента
- Выпилены Threads, полностью перешли на асинхронную модель событий, должно повысить стабильность
- Пытаемся выжить после неожиданного закрытия потока (такое бывает, да)

Зачем это всё?

- Общение в Telegram используя любой Jabber-клиент
- Возможность использовать свой XMPP-сервер, что положительно скажется на приватности и сохранности данных и сообщений

P.S. не нужно напоминать о том, что в Telegram регистрация по номеру телефона.
SIM-карты можно купить и без документов, а в крайнем случае — воспользоваться онлайн-сервисом по приёму SMS.

ann@westfall ~> sudo apt purge telegram-desktop
[sudo] password for ann: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libminizip1 libxxhash0
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  telegram-desktop*
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 44.4 MB disk space will be freed.
Do you want to continue? [Y/n] 

 , ,

annerleen ()

telegram <.>jabber

Привет, ЛОРчик! Это очередной нытик тред.

Недавно Паша Дуров & Ко. принесли в Telegram* очередную киллер-фичу — теперь собеседник может удалять любые сообщения из вашего с ним диалога.
Даже твои. Даже те, что ты отправлял год назад. И они тихо и незаметно исчезнут со всех девайсов.

У меня настолько бомбануло, что я решил с концами перекатиться на Jabber-транспорт, и пусть себе хоть обудаляются на здоровье.
Пилили мы как-то tg4xmpp, однако код там страшнее чикатило, ещё и на древних либах, поэтому было реешно перепиливать заново.

За пару бессонных ночей выкатился Жабограм, он уже умеет авторизацию, синхронизацию ростера, переписку, приём файлов и сохранение состояний.
Написан на Ruby+tdlib+xmpp4r.

Если у кого есть Jabber-сервер — милости прошу в бета-тестеры.
Остальные могут писать пожелания и предложения.

Спасибо.

______________________________________________________________

* — запрещено на территории РФ.

 ,

annerleen ()

Lua type checking library

Добрый вечер, ЛОР!
Пишем для своих целей, но может кому-то понадобится.

Что это: библиотека для проверки типов и размера (границ) переменных.
Зачем это: для проверки передаваемых значений извне в API, например.

Документация и примеры внутри.
Ссылка: https://pastebin.com/7dxm5J3u

Критика/идеи/предложения приветствуются.

 

annerleen ()

cgroups для браузеров

Привет, ЛОР!
Есть ли способ ограничить жор память браузерами (Firefox)?

Раньше работал cgroups, но теперь он плодит новые процессы, а лимит работает только на один процесс, а не на всю кучку.

 

annerleen ()

Реализация «групп»

Есть абстрактный веб-сервис, в нём есть пользователи, есть группы пользователей.

Вопрос, как это правильнее реализовать на уровне БД и почему?

Вариант 1.
------------------

В таблице `users` есть массив `groups[]`, в котором указаны группы, к которым принадлежит пользователь;


Вариант 2.
------------------

В таблице `groups` есть массив `users[]`, в котором перечислены члены группы;

 

annerleen ()

Если не <table>, то что?

Привет, ночной.
Сегодня вопрос такой.

Есть какая-то большая таблица с данными, которую нужно отображать на редактирование.
Пусть это будет такая.

Сейчас это огромная форма и она же таблица, и её открытие в, например, firefox >= 58 приводит к дичайшим тормозам даже на i7 8550U.

В связи с этим, нас не покидает ощущение, что делаем мы что-то не так.
Вопрос — как это реализовывается нынче так, чтобы всё это не тормозило на любом железе и работало с любым браузером? (читай без кучи js-фреймворков)

 

annerleen ()

Freeswitch mod_lua заменить Lua на Tarantool

Доброго времени суток, ЛОР!
Задача нынче следущая.

Есть замечательный FreeSwitch 1.8.2, в котором есть не менее замечательный модуль mod_lua, который линкуется с liblua5.2.

Есть не менее замечательный Tarantool, тот же Lua, однако с поддержкой лёгких потоков (fibers), да и к тому же работает раз эдак в 10 быстрее Lua, оставаясь обратно совместимым.
Беглым взглядомdiff'ом пробежал по заголовкам, которые шли в пакете tarantool-dev, и вроде бы как бы да, на первый взгляд всё совместимо.

Однако, при попытке «создать» mod_tarantool я потерпел фиаско, что в принципе неудивительно, так как Tarantool имплементирует Lua API 5.1, а mod_lua линкуется с liblua5.2.

Дальше мои знания, к сожалению, всё.

________________________________________________________________

Итак, уважаемые знатоки!
Предлагаю $200 в Bitcoin-эквиваленте тому, кто добавит поддержку Tarantool в Freeswitch 1.8.2.

 , ,

annerleen ()

Кто чем бэкапит кучу разных серверов?

inb4: rsync/tar+ssh/сам напиши, чо, не мужик шоле?

Знаю, что вопрос поднимался сотни раз, но на дворе 2019 год, как-никак, может, поменялось что?

Задача:

- Бэкапить данные с кучи мелких серверов на пару больших по ftp, ssh;
- Простенький веб-интерфейс со списком и статусом серверов, бэкапов, хранилищ;
- Возможность выполнять кастомные команды до/после бэкапа;
- Естественно, опенсорс;
- Шифрование сжимаемых и передаваемых по сети данных;

Пожалуй, всё.

 

annerleen ()

Альтернатива self-hosted gitlab

Привет, ЛОР.

Есть какая-то альтернатива self-hosted gitlab'у для нетребовательной команды из пары разработчиков?

Из требований только кастомизируемый веб-интерфейс к DVCS с возможностью скачать/просмотреть.

Gitlab ОЧЕНЬ жирный.

Git не принципиален, можно hg.

 

annerleen ()

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