LINUX.ORG.RU

Сообщения annerleen

 

Zhabogram 0.8 — Транспорт из Telegram в Jabber

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

Zhabogram — транспорт (мост, шлюз) из сети Jabber (XMPP) в сеть Telegram, написанный на Ruby. Преемник tg4xmpp.

  • Зависимости:

    • Ruby >= 1.9
    • ruby-sqlite3 >= 1.3
    • xmpp4r == 0.5.6
    • tdlib-ruby == 2.0 и скомпилированная tdlib == 1.3
  • Возможности:

    • Авторизация в Telegram, в т.ч. с двухфакторной авторизацией (паролем)
    • Синхронизация списка чатов с ростером
    • Синхронизация статусов контактов с ростером
    • Добавление и удаление Telegram-контактов
    • Поддержка VCard с аватарками
    • Отправка, приём, редактирование и удаление сообщений
    • Обработка цитат и пересланных сообщений
    • Отправка и приём файлов и специальных сообщений (поддержка фото, видео, аудио, документов, голосовых сообщений, стикеров, анимаций, геолокаций, системных сообщений)
    • Поддержка секретных чатов
    • Создание, управление и модерирование чатов/супергрупп/каналов
    • Сохранение сессий и автоматическое подключение при входе в сеть XMPP
    • Получение истории и поиск по сообщениям
    • Управление аккаунтом Telegram

Для установки потребуется собственный Jabber-сервер. Рекомендуется получить API ID и API HASH в Telegram для более стабильной работы. Подробную инструкцию можно найти в файле README.md.

Фичреквесты и баг-репорты принимаются на noreply@sportloto.eu.

>>> Mercurial-репозиторий

 , ,

annerleen ()

Telegram в Jabber (Zhabogram v0.8)

Форум — Talks

Привет, ЛОР!
Позволю себе наглость создать ещё одну тему про транспорт 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 ()

Zhabogram 0.1 — Транспорт из Telegram в Jabber

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

Zhabogram — транспорт (мост, шлюз) из сети Jabber (XMPP) в сеть Telegram, написанный на Ruby, преемник tg4xmpp.
Данный релиз посвящается команде Telegram, которая решила, что третьи лица имеют право затрагивать историю переписки, находящуюся на моих устройствах.

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

>>> Mercurial-репозиторий

 , ,

annerleen ()

telegram <.>jabber

Форум — Talks

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

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

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

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

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

Спасибо.

______________________________________________________________

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

 ,

annerleen ()

Lua type checking library

Форум — Development

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

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

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

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

 

annerleen ()

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

Форум — Desktop

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

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

 

annerleen ()

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

Форум — Development

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

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

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

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


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

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

 

annerleen ()

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

Форум — Talks

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

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

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

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

 

annerleen ()

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

Форум — Job

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

Есть замечательный 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 ()

Котокрыса

Галерея — Скриншоты

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

Что тут у нас?
Железо: Lenovo Thinkpad T480.
Софт:

— Debian GNU/Linux testing (buster)
— XFCE 4.12
— Fish 3.0 (пакеты для Debian брать здесь)
— Firefox ESR (текущие падают, не было печали)
— Mesa 18.3 и nvidia-drivers 410.78 из experimental

Остальное всё стандартное для Debian и/или видно на скриншоте.
Доброе утро!

>>> Просмотр (2560x1440, 1150 Kb)

 ,

annerleen ()

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

Форум — Admin

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

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

Задача:

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

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

 

annerleen ()

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

Форум — Development

Привет, ЛОР.

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

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

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

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

 

annerleen ()

Firefox постоянно падает

Форум — Desktop

Хочу спросить, у всех так?
Если нет, из-за чего может быть?

Скачивал бинарную сборку с офф.сайта, Beta, Nightly — результат один — краш.
Баг-рапортъ есть.

[183143.945718] Chrome_~dThread[14951]: segfault at 0 ip 00007f7b47f1df56 sp 00007f7b3f4b9aa0 error 6
[183143.945723] Chrome_~dThread[15305]: segfault at 0 ip 00007fb64cb74f56 sp 00007fb644110aa0 error 6
[183143.945725]  in libxul.so[7f7b445b0000+4dce000]
[183143.945728] Code: 8b 0d d6 7e 75 03 48 89 01 c7 04 25 00 00 00 00 2d 02 00 00 e8 7b b9 69 fc 48 8d 05 9c 1a 5b 01 48 8b 0d b5 7e 75 03 48 89 01 <c7> 04 25 00 00 00 00 df 09 00 00 e8 5a b9 69 fc 66 2e 0f 1f 84 00
[183143.945732] Chrome_~dThread[14639]: segfault at 0 ip 00007f2a4703df56 sp 00007f2a3e5d9aa0 error 6
[183143.945734]  in libxul.so[7fb649207000+4dce000]
[183143.945736]  in libxul.so[7f2a436d0000+4dce000]
[183143.945739] Code: 8b 0d d6 7e 75 03 48 89 01 c7 04 25 00 00 00 00 2d 02 00 00 e8 7b b9 69 fc 48 8d 05 9c 1a 5b 01 48 8b 0d b5 7e 75 03 48 89 01 <c7> 04 25 00 00 00 00 df 09 00 00 e8 5a b9 69 fc 66 2e 0f 1f 84 00
[183143.945742] Code: 8b 0d d6 7e 75 03 48 89 01 c7 04 25 00 00 00 00 2d 02 00 00 e8 7b b9 69 fc 48 8d 05 9c 1a 5b 01 48 8b 0d b5 7e 75 03 48 89 01 <c7> 04 25 00 00 00 00 df 09 00 00 e8 5a b9 69 fc 66 2e 0f 1f 84 00
[183143.946017] Chrome_~dThread[15147]: segfault at 0 ip 00007f0f8027af56 sp 00007f0f77816aa0 error 6 in libxul.so[7f0f7c90d000+4dce000]
[183143.946025] Code: 8b 0d d6 7e 75 03 48 89 01 c7 04 25 00 00 00 00 2d 02 00 00 e8 7b b9 69 fc 48 8d 05 9c 1a 5b 01 48 8b 0d b5 7e 75 03 48 89 01 <c7> 04 25 00 00 00 00 df 09 00 00 e8 5a b9 69 fc 66 2e 0f 1f 84 00
[183143.946174] Chrome_~dThread[14729]: segfault at 0 ip 00007f155cf07f56 sp 00007f15544a3aa0 error 6 in libxul.so[7f155959a000+4dce000]
[183143.946183] Code: 8b 0d d6 7e 75 03 48 89 01 c7 04 25 00 00 00 00 2d 02 00 00 e8 7b b9 69 fc 48 8d 05 9c 1a 5b 01 48 8b 0d b5 7e 75 03 48 89 01 <c7> 04 25 00 00 00 00 df 09 00 00 e8 5a b9 69 fc 66 2e 0f 1f 84 00
[193987.740233] Chrome_~dThread[16354]: segfault at 0 ip 00007f7092da7cd6 sp 00007f7089e3aa80 error 6
[193987.740237] Chrome_~dThread[985]: segfault at 0 ip 00007f21f4aadcd6 sp 00007f21ebb40a80 error 6
[193987.740240] Chrome_~dThread[16625]: segfault at 0 ip 00007f16c41cdcd6 sp 00007f16bb260a80 error 6
[193987.740243]  in libxul.so[7f21f0ded000+5317000]
[193987.740246]  in libxul.so[7f16c050d000+5317000]
[193987.740249] Code: 8b 0d b6 5a 84 03 48 89 01 c7 04 25 00 00 00 00 2d 02 00 00 e8 53 9b 34 fc 48 8d 05 03 da 7a 01 48 8b 0d 95 5a 84 03 48 89 01 <c7> 04 25 00 00 00 00 df 09 00 00 e8 32 9b 34 fc 66 2e 0f 1f 84 00
[193987.740251]  in libxul.so[7f708f0e7000+5317000]
[193987.740254] Code: 8b 0d b6 5a 84 03 48 89 01 c7 04 25 00 00 00 00 2d 02 00 00 e8 53 9b 34 fc 48 8d 05 03 da 7a 01 48 8b 0d 95 5a 84 03 48 89 01 <c7> 04 25 00 00 00 00 df 09 00 00 e8 32 9b 34 fc 66 2e 0f 1f 84 00
[193987.740258] Code: 8b 0d b6 5a 84 03 48 89 01 c7 04 25 00 00 00 00 2d 02 00 00 e8 53 9b 34 fc 48 8d 05 03 da 7a 01 48 8b 0d 95 5a 84 03 48 89 01 <c7> 04 25 00 00 00 00 df 09 00 00 e8 32 9b 34 fc 66 2e 0f 1f 84 00
[193987.740349] Chrome_~dThread[31379]: segfault at 0 ip 00007f43ce0decd6 sp 00007f43c5171a80 error 6 in libxul.so[7f43ca41e000+5317000]
[193987.740354] Code: 8b 0d b6 5a 84 03 48 89 01 c7 04 25 00 00 00 00 2d 02 00 00 e8 53 9b 34 fc 48 8d 05 03 da 7a 01 48 8b 0d 95 5a 84 03 48 89 01 <c7> 04 25 00 00 00 00 df 09 00 00 e8 32 9b 34 fc 66 2e 0f 1f 84 00
[193987.740440] Chrome_~dThread[1641]: segfault at 0 ip 00007f1aeb0d7cd6 sp 00007f1ae216aa80 error 6 in libxul.so[7f1ae7417000+5317000]
[193987.740446] Code: 8b 0d b6 5a 84 03 48 89 01 c7 04 25 00 00 00 00 2d 02 00 00 e8 53 9b 34 fc 48 8d 05 03 da 7a 01 48 8b 0d 95 5a 84 03 48 89 01 <c7> 04 25 00 00 00 00 df 09 00 00 e8 32 9b 34 fc 66 2e 0f 1f 84 00



Дебаггером поймать не удаётся.
С чистым профилем — тоже безрезультатно.

Firefox ESR работает, но там другая проблема (отключение аппаратного ускорения не помогает)

Куда копать?

 ,

annerleen ()

Увольняюсь из systemd хейтеров

Форум — Talks

Привет, ЛОР!
Решил тут уволиться из systemd-хейтеров.

Предыстория.

Поднимали мы тут инстанс btcpay, соответственно, нужно было позаботиться о том, чтобы демоны btcpayserver с его прислужниками, а так же bitcoind, litecoind постоянно были запущены, не падали и перезапускались если вдруг что.

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

Ну, и поехали, минута в гугле и был написан следущий юнитскрипт:

[Unit]
Description=btcpay
After=network.target

[Service]
Type=simple
Restart=on-failure
RestartSec=3
User=btcpay
Group=btcpay
WorkingDirectory=/var/btcpay/btcpayserver-1.0.3.36
ExecStart=/var/btcpay/btcpayserver-1.0.3.36/run.sh --chains btc,ltc --externalurl https://btcpay.ourdomain.name

[Install]
WantedBy=multi-user.target


И ещё один --

[Unit]
Description=bitcoind
After=network.target

[Service]
Type=simple
Restart=on-failure
RestartSec=3
User=btcpay
Group=btcpay
ExecStart=/var/btcpay/bitcoin/bitcoin-0.17.0/bin/bitcoind

[Install]
WantedBy=multi-user.target


 # systemctl enable bitcoind && systemctl enable btcpay && reboot


Выкуриваем сигаретку, пинаем сервер — опа!
Всё поднялось и работает. Если что упадёт — перезапускает.
Логи показывает по $ journalctl -u bitcoind.
Ну что ещё нужно для счастья на сервере?

#вся_суть_systemd_хейтеров

_____________________________________________________________

А вот за то, что его прибивают гвоздями к десктопному линуксу и без него, например, не работает networkmanager — это всё ещё крайне и крайне печально.

 

annerleen ()

NFC Field и считывание координат

Форум — Development

Добрый вечер, ЛОР!

Дано: 60 уникальных «меток», есть «поле» размером, допустим, 1х1 метр, эти метки распределены по полю.
Задача: детектить, когда и откуда метку убрали и положили.

Первое на ум пришло NFC, верно ли?
Есть ли какой-то способ одним NFC-ридером определить «координаты» (относительно него, например) убранной/поставленной метки?

Решение с 60 NFC-ридерами кажется каким-то оверкиллом.
Не обязательно это должно быть NFC, может, есть что-то другое?

Пните в нужном направлении, пожалуйста.
Заранее спасибо!

 

annerleen ()

ООП в Python

Форум — Development

Добрый день, ЛОР.
Учусь ООП (точнее, его подобию) в Питуне.

Сходу вопрос: как можно разбить класс на несколько файлов?
Очевидное наследование, однако голова кипит и пока не могу сообразить, как и куда его пихать.

Допустим, есть класс, в нём есть метод logger(), который формирует и возвращает лог-строку с полезной информацией:

class BotInstance:

    chat_id = None
    users = []
    bot_debug = False

    def logger(self, message = ''):
        info = "[Chat {0}] [{1} users]".format(self.chat_id, len(self.users))
        return info + message


Как правильнее всего вынести эту функцию в отдельный файл?

 

annerleen ()

Выключить sleep mode при подключении bluetooth гарнитуры

Форум — Mobile

Сабж.
Чем такое можно реализовать на андроиде?

Спасибо заранее.

 

annerleen ()

Избежать кучи таблиц в Postgres'е

Форум — Development

Привет, ЛОР.
Вопрос такой: есть сервис, есть его БД в постгресе, у этого сервиса, допустим, 1000 пользователей.

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


1 вариант — табличка обработки вызовов для всех общая;

table_rules
---------------------------------
owner | phone | ruleid | ...


И к каждому правилу мы приписываем owner и phone, что, как мне кажется, не есть правильно.

2 вариант — табличка под каждый номер телефона:

table_12000000001_rules
---------------------------------
ruleid | ...


Но тогда в «корне» БД будут сотни, тысячи таких таблиц, что тоже, наверное, не есть хорошо.

Может, есть ещё какие-то варианты?
Как это грамотнее реализовать в postgresql?

 

annerleen ()

Настройка IPv6 DHCP

Форум — Admin

Добрый вечер, ЛОР.
Хочу поддаться веяниям моды и настроить себе IPv6.

Провайдер сию возможность даёт.
Интернеты по VDSL, модем Zyxel VMG1312-B10D в режиме бриджа.

При попытке запустить dhclient -v -6:

root@lightbringer ~ # dhclient -v -6 world0
Internet Systems Consortium DHCP Client 4.3.5
Copyright 2004-2016 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on Socket/world0
Sending on   Socket/world0
PRC: Soliciting for leases (INIT).
XMT: Forming Solicit, 0 ms elapsed.
XMT:  X-- IA_NA "\d<Y"
XMT:  | X-- Request renew in  +3600
XMT:  | X-- Request rebind in +5400
XMT: Solicit on world0, interval 1010ms.
RCV: Advertise message on world0 from fe80::200:5eff:fe00:1.
RCV:  X-- IA_NA "\d<Y"
RCV:  | X-- starts 1540999784
RCV:  | X-- t1 - renew  +0
RCV:  | X-- t2 - rebind +0
RCV:  | X-- [Options]
RCV:  | !-- Status code of no addrs, IA_NA discarded.
RCV:  X-- Server ID: 00:03:00:01:84:26:2b:61:31:71
PRC: Lease failed to satisfy.
XMT: Forming Solicit, 1010 ms elapsed.


Если мопед перевести в режим Routing, то он получает адрес и каким-то образом работает.

Шо это може быть?

 

annerleen ()

new macbook air

Форум — Talks

Ну чё пацаны, анонсировали новый Макпук Air :)

- Два USB-C порта, ни одного USB 3.0 Type-A порта
- 13.3" 2560 х 1600
- Впаянные SSD, RAM
- i5 8200Y
- ДО 12 часов автономной работы

*(!*№«ец... И это же покупать будут! За $1200 в базовой комплектации, и это в США!

Лет 5 назад восхищался высокотехнологичными, удобными прошками с отличными показателями автономности, а теперь что?
Эх, Стиви перевернулся в могиле раз девять вокруг своей оси от анонса.

___________________________________________________________________

P.S. этот псто написан с Thinkpad T480 с i7 8550U, 16G RAM, 512 NVMe SSD, 14" 2560x1440, NVidia MX150, который обеспечивает около 30 часов автономной работы, всё это ценой в €1600.
У меня всё.

 ,

annerleen ()

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