LINUX.ORG.RU

Форум

Активные теги:

 , , , , , , , , , , , , , ,

Настройка и использование сканера Xerox Workcentre 3335 через usb под Linux

Форум — Linux-hardware

В организации у нас полно ксероксов 3335 под каждое АРМ. И до этого стояла винда и все в целом работало. Но тут пришёл черёд уходить винде на покой и заменить весь софт майков на софт отечественный/опенсорсный. По этому теперь в организации всем ставится Linux, а именно Alt Linux 10 (именно десятый, т.к. лицензия). Со многими проблемами, вытекшими из массового перехода на новую систему по итогу удалось справится, но только не со сканером от 3335. И так, что дано: ставится ось Alt Linux 10 с KDE по умолчанию, убирается всё лишнее, кроме использования сканера, принтера. Помимо имеющегося skanpage в кде ставится ещё и naps2. И вот с принтером всё просто, для него достаточно было найти .ppd файл и он работает, а со сканером нужно потанцевать. Разработчики SANE заявляют что он работает, с той оговоркой, что верхний податчик отсканирует только 1 страницу (это не проблема, этим податчикам всё равно особого доверия нет уже), но только с версии 1.3.1. На альте 10 же стоит по умолчанию версия 1.2.1. Ладно, потанцевал с бубнами и смог из сизифа взять 1.4.0 версию. Теперь сканер может быть обнаружен по умолчанию. Но сразу работать он отказывается и вообще тут тоже чтобы хотя бы запустить операцию сканирования нужно достичь совершенно непонятно чего. Примерный алгоритм работы со сканером:

  1. Найти сканер в naps2, при создании профиля или при включении skanpage. Сделать это нужно всегда обязательно два раза, т.к в первый раз сканер не будет найден. Для skanpage почему-то нужно ещё и перезайти в саму программу.
  2. Запуск первого сканирования. Первое задание сканирования… проваливается и программа сообщает нам что сканер занят или сканирование прервано или ошибка Input/Output (пока что понять из-за чего какая ошибка появляется не могу, однако думаю как-то связано с тем, насколько долго ждать перед тем чтобы начать задание сканирования чтобы мфу ушло в сон). И при этом мфу спокойно что-то там сканирует.
  3. Запуск второго сканирования. Теперь уже с вероятностью в 90% сканирование пройдёт штатно. Иногда будет такое, что сканирование никак не продолжится потому что «сканер занят», ещё с прошлого раза, но либо нужно дольше подождать, либо перевоткнуть usb от принтера. После нормального же сканирования можно достаточно долго пускать задания на скан, и пока задания есть всё будет хорошо работать. Но стоит отвлечься и нужно будет всё повторять заново для полноценной работы.

Хотелось бы избавиться от этого странного обряда инициации мфу. На винде всё работало нормально, но там и вендор дрова нормальные поставил. Вариантов переделать всё так, чтобы эти мфу (которых примерно штук 40) использовались по сети нет.

Те же проприетарные драйвера pantum6500 или драйвера ULD от Xerox Workcentre 3225 (которые на бэкенде smfp) работают складно с соответствующими мфу. Кстати тот же 3225 не работает на бэкенде xerox_mfp из sane - при его использовании мфу перезагружается, хотя на их сайте без каких-либо примечаний написано что всё работает.

Какие ещё действия я делал:

  • В тупую увеличил срок входа в режим энергосбережения у мфу с 1 минуты до 4. Как будто чуть сподручнее стало использовать, но всё же стадию этой «инициализации» это не устраняет, а это то что мне нужно по итогу.
  • Собрал в системе без сизифа sane 1.4.0 и поставил вместо стандартного scanimage симлинк на его scanimage, но подозреваю что программы могут брать бэкенд из /usr/lib64/sane.d/. Работает также, т.е. особого успеха нет.
  • Использовал sane 1.2.1 но просто прописал vid, pid в /etc/sane.d/xerox_mfp.conf, а также добавил соответственные udev правила, скопированные из пакета sane 1.4.0. Оно работает точно также как и sane 1.4.0, опять же - нет результатов.
  • Пробовал по всякому использовать переменные окружения по типу SANE_USB_WORKAROUND для usb3 подключения или SANE_XEROX_USB_HALT_WORKAROUND тоже пробовал, хотя в его описании написано что это для старых ксероксов, но оно не помогает.

В режиме дебага пишет примерно следующее (в выводе использую версию sane 1.2.1 с донастройкой, как описывал выше):

SANE_DEBUG_XEROX_MFP=4 scanimage -L
[12:09:57.982714] [sanei_debug] Setting debug level of xerox_mfp to 4.
[12:09:57.982766] [xerox_mfp] sane_init: Xerox backend (build 13), version != null, authorize != null
[12:09:58.032779] [xerox_mfp] sane_xerox_mfp_get_devices: 0x7ffc4281d880, 0
[12:09:58.033066] [xerox_mfp] list_one_device: libusb:003:003
[12:09:58.033101] [xerox_mfp] usb_dev_open: open 0x5623c95fe750
[12:09:58.035527] [xerox_mfp] :: dev_command(INQUIRY[0x12], 70)
[12:09:59.035922] [xerox_mfp] usb_dev_request: sanei_usb_read_bulk: Error during device I/O
[12:09:59.035973] [xerox_mfp] dev_command: dev_request: Error during device I/O
[12:09:59.035998] [xerox_mfp] usb_dev_close: closing dev 0x5623c95fe750
[12:09:59.036309] [xerox_mfp] list_one_device: dev_inquiry(libusb:003:003): Error during device I/O

No scanners were identified. If you were expecting something different,
check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages).

Ну или иногда будет:

SANE_DEBUG_XEROX_MFP=4 scanimage -L
[12:11:08.613954] [sanei_debug] Setting debug level of xerox_mfp to 4.
[12:11:08.614003] [xerox_mfp] sane_init: Xerox backend (build 13), version != null, authorize != null
[12:11:08.664692] [xerox_mfp] sane_xerox_mfp_get_devices: 0x7ffe8030bce0, 0
[12:11:08.664965] [xerox_mfp] list_one_device: libusb:003:003
[12:11:08.665001] [xerox_mfp] usb_dev_open: open 0x55e232d26750
[12:11:08.665405] [xerox_mfp] :: dev_command(INQUIRY[0x12], 70)
[12:11:08.665565] [xerox_mfp] dev_inquiry: found Xerox/Xerox WorkCentre 3335
[12:11:08.665607] [xerox_mfp] usb_dev_close: closing dev 0x55e232d26750
device `xerox_mfp:libusb:003:003' is a Xerox Xerox WorkCentre 3335 multi-function peripheral

Ну и дополнительно ещё попробовал под убунту (тоже с кде для теста с тем же skanpage) запустить с такой же донастройкой как с sane 1.2.1 под альтом - всё тоже самое.

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

 , , ,

nfa
()

NVIDIA ищет Linux-разработчиков для работы над производительностью Vulkan и Proton

Форум — Games

Вот новость целиком

А если кратко то ищут, во-первых, инженера для диагностики узких мест производительности GPU и CPU в играх на базе Vulkan и Proton. Во-вторых, инженера для разработки высокопроизводительных решений динамической бинарной трансляции (DBT), которые должны «сгладить архитектурный разрыв» и обеспечить запуск x86-64 игр на Linux/ARM64 с производительностью, близкой к нативной.

Что-то очень крупное в лесу сдохло, раз Хуанг решил обратить свой взор на линукс, сюда он обычно только огромный болт клал. А тут, судя по вакансиям, он хочет залезть на полянку Габена.

 , ,

AleksK
()

Помогите с сетью. Fedora

Форум — Admin
cat /etc/fedora-release
Fedora release 40 (Forty)

Не работает сеть

ping 1.1.1.1
ping: connect: Сеть недоступна
ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 00:0c:29:61:f8:e4 brd ff:ff:ff:ff:ff:ff
    altname enp2s1
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:47:b8:68 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
systemctl status NetworkManager
● NetworkManager.service - Network Manager
     Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; p>
    Drop-In: /usr/lib/systemd/system/service.d
             └─10-timeout-abort.conf
     Active: active (running) since Tue 2026-02-24 03:02:34 MSK; 7min ago
       Docs: man:NetworkManager(8)
   Main PID: 1161 (NetworkManager)
      Tasks: 4 (limit: 4583)
     Memory: 8.5M (peak: 9.0M)
        CPU: 80ms
     CGroup: /system.slice/NetworkManager.service
             └─1161 /usr/sbin/NetworkManager --no-daemon

фев 24 03:02:34 localhost.localdomain NetworkManager[1161]: <info>  [1771891354>
фев 24 03:02:34 localhost.localdomain NetworkManager[1161]: <info>  [1771891354>
фев 24 03:02:34 localhost.localdomain NetworkManager[1161]: <info>  [1771891354>
фев 24 03:02:34 localhost.localdomain systemd[1]: Started NetworkManager.servic>
фев 24 03:02:34 localhost.localdomain NetworkManager[1161]: <info>  [1771891354>
фев 24 03:02:34 localhost.localdomain NetworkManager[1161]: <info>  [1771891354>
фев 24 03:02:34 localhost.localdomain NetworkManager[1161]: <info>  [1771891354>
фев 24 03:02:36 localhost.localdomain NetworkManager[1161]: <info>  [1771891356>
фев 24 03:02:37 localhost.localdomain NetworkManager[1161]: <info>  [1771891357>
фев 24 03:02:45 localhost.localdomain NetworkManager[1161]: <info>  [1771891365>

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

 

mark-v
()

Systemd-boot vs GRUB

Форум — Talks

Использует ли кто-нибудь systemd-boot? Какие у него плюсы и минусы? Есть смысл переходить?

 , ,

scanner
()

Как организовать на уровне API сортировку менюшек?

Форум — Development

В общем, делаю я к своему парсеру IDE потому что пытаться победить qговнокреатор я прекратил. Там такой кромешный звездец внутри, что буквально каждый шаг сравним с выгребанием таксофона в который насрал легион особо говнистых туристов.

Так вот, я там делаю интерфейс для плагинов чтоб уширять потом этот IDE и встал вопрос: само API ПРОСТО_ДОБАВЛЕНИЯ оно выражаясь на английски straightforward. Есть набор действий, которые должны стать активны или видимы только когда активна определенная вьюшка. То есть мы даем инфу по какому критерию их врубать, в какое меню их напихать и как их в меню сортировать.

/*
 * add menuitems which are specific only to this view
 */
void addActions(IView * owner, QList<QAction*> actions,
                const QString& menuname,
                int menu_priority);
/*
 * add menuitems which are specific to a feature
 */
void addActions(const QString& feature_name,
                QList<QAction*> actions,
                const QString& menuname,
                int menu_priority);

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

Например плагин foo создает меню «build» и «debug» а плагин bla - «analyze» и «debug» и в зависимости от порядка их старта будет либо analyze-debug-build или build-debug-analyze.

menu_priority это пока костыль страшный, хотелось бы что-то покрасивее.

Пока есть идея ввести категории менюшек. В креаторе это реализуется примерно так: помимо имени назначается строка -название категории вида «10.что-то-важное» «20.что-по-посередине» «50.бугага» «90.всамуюдальзасунуть»

Но возможно есть идея покрасивее. киньте совет.

 

ckotctvo
()

А как в LSP Spectrum Analyzer увеличить нужную полосу частот? Или другой анализатор посоветуйте.

Форум — Multimedia

Привет, LOR, и особенно @sadko4u.

Я, возможно, катастрофически туплю, но не могу понять, как в анализаторе растянуть нужную мне полосу частот во всю ширину гуя. Мышкой щупал - не нащупал. Описание говорит, что там есть некий «zoom fader, allows to adjust zoom on the frequency chart», а где он? Не вижу.

Ну или другой толковый анализатор аудио-спектра посоветуйте, люди. Мне нужно поглядеть НЧ где-то от 30 до 80 Гц, и с этим обычно все довольно плохо. Friture видел, он кривоват. Voxengo SPAN из венды пока лень заводить.

 

thesis
()

динамическая подсветка синтаксиса в vim

Форум — Development

Кто-то пробовал, как вот это работает: TagHighlight вот ссылка:

https://www.vim.org/scripts/script.php?script_id=2646

там 40кб питона, я сделал ф-цию в vim, которая работает на exuberant-ctags+gutentags, то есть, когда я запускаю vim в корне проекта, gutentags генерирует tags файл, дальше это работает вот так:

function! UpdateSyntaxFromTags()
    "echo "UpdateSyntaxFromTags"
    let l:tags_file = findfile('__tags_for_syntax', '.;')
    if !empty(l:tags_file) && filereadable(l:tags_file)
        silent execute '!grep -P "\t[tsgud]{1}(\t|$)" ' . l:tags_file .
            \ ' | awk "{print \"syntax keyword MyCustomType \" \$1}" | sort -u > ~/.vim/after/syntax/c_types.vim'
        silent! source ~/.vim/after/syntax/c_types.vim
        highlight link MyCustomType Type
    endif
endfunction

augroup __GutentagsSyntax
    autocmd!
    autocmd BufReadPost,BufEnter *.c,*.h,*.cpp call UpdateSyntaxFromTags()
    autocmd BufWritePost *.c,*.h call UpdateSyntaxFromTags()
    autocmd FileType c,cpp call UpdateSyntaxFromTags()
augroup END

просто интересно, на сколько стабильнее работает TagHighlight по сравнению с моим апгрейдом, дело в том, что мой бывает запаздывает, понятно почему, gutentags работает в фоне

 , ,

IvanRia
()

В сообществе Linux появился формальный план смены лидера проекта

Форум — Talks

Сообщество разработчиков ядра Linux утвердило план действий на случай ухода его автора Линуса Торвальдса. Документ описывает, как будет организовано управление проектом, если действующая модель больше не сможет работать.

План был разработан Дэном Уильямсом и обсуждён на саммите разработчиков Linux в Токио. Он не называет конкретного преемника, а описывает процедуру коллективного выбора одного или нескольких сопровождающих проекта. В экстренной ситуации в течение 72 часов должно быть собрано совещание ключевых мейнтейнеров. Если саммита давно не было, состав участников определит Технический совет Linux Foundation, который также координирует переход. Ранее финальные изменения в ядро проходили через репозиторий Торвальдса. Теперь в проекте зафиксирован механизм, который должен сохранить стабильную работу Linux — системы, управляющей огромным количеством устройств: от микроконтроллеров до суперкомпьютеров и даже космической техники.

Источник: https://4pda.to/2026/01/31/452359/v_soobschestve_linux_poyavilsya_formalnyj_p...

 , , линус торвальдс

sparkie
()

Стартап Taalas впаял нейросеть в кремний и получил рекордные 17 000 токенов в секунду

Форум — Science & Engineering

Канадский стартап Taalas вышел из стелс-режима и показал первый продукт — специализированный чип HC1 с «захардкоженной» Llama 3.1 8B. Модель не загружается в память, а буквально впаяна в кремний: веса зашиты в транзисторы на этапе производства. Результат — 17 000 токенов в секунду на одного пользователя, что почти в 10 раз быстрее текущих решений на GPU, при 20-кратном снижении стоимости производства и 10-кратной экономии энергии.

Основал Taalas Любиша Байич — основатель другого чипмейкера, Tenstorrent, и бывший директор проектирования интегральных схем в AMD. Вместе с ним компанию запустили его жена Лейла Байич (экс-AMD, экс-ATI) и Драго Игнятович (экс-AMD, экс-Tenstorrent). После того как в Tenstorrent пришел легендарный чип-дизайнер Джим Келлер и занял кресло CEO, Байич ушел — и через полгода начал строить Taalas с радикально другой идеей.

Суть подхода — тотальная специализация. Вместо того чтобы запускать модели на универсальных GPU, Taalas для каждой модели производит отдельный чип. Из более чем 100 слоев микросхемы кастомизируются только два верхних металлических — в них встраивается так называемая mask ROM recall fabric, где хранятся веса. Это позволяет TSMC выпускать готовый чип за два месяца вместо шести, типичных для обычного ИИ-процессора. Архитектура объединяет память и вычисления на одном кристалле, что снимает потребность в HBM, продвинутой упаковке, 3D-стекировании и жидкостном охлаждении.

Пока «захардкоженная» Llama — далеко не фронтирная модель, а агрессивная квантизация до 3 и 6 бит заметно снижает качество по сравнению с GPU-бенчмарками. Taalas это признает и позиционирует продукт как бета-сервис для разработчиков, которые хотят поэкспериментировать с инференсом на субмиллисекундных задержках. Чип поддерживает настраиваемое контекстное окно и дообучение через LoRA-адаптеры, так что минимальная гибкость сохраняется.

Компания привлекла более $200 млн (последний раунд — $169 млн от Quiet Capital, Fidelity и полупроводникового ветерана Пьера Ламонда), но потратила пока лишь $30 млн — на зарплаты 24 сотрудникам и разработку. Следующий чип на платформе HC1 будет рассуждающей моделью среднего размера (ожидается весной), а к зиме на платформе второго поколения HC2 обещают запустить передовую LLM. Если Taalas удастся масштабировать подход на большие модели, у Nvidia и конкурентов вроде Cerebras и Groq может появиться неожиданный соперник — из тех, кто предлагает не ускорять старую парадигму, а отменить ее.

https://cont.ws/@jozefdon/3218279

Подробности на taalas.com

Перемещено dataman из hardware

 , , , ,

demo13
()

Emacs: как заставить работать <kp-divide>, <kp-decimal> в русской раскладке?

Форум — General

Использую метод ввода «russian-computer», и все бы хорошо, но пользоваться нумпадом при этом невозможно — слэш транслируется в точку, точка в букву. Можно ли как-нибудь отключить трансляцию именно для клавиш нумпада?

 , ,

Zeta_Gundam
()

Создание кластера proxmox

Форум — Admin

Добрый день. Есть 2 сервера с vmware. Хотим приобрести еще один сервер и собрать кластер HA из 3-х нод на proxmox. И вот тут, т.к. с proxmox не работал, появляются вопросы.

  1. Прочитал в интернете, что с vmware на proxmox можно конвертировать ВМ. Если у кого-то есть опыт, то просьба подсказать насколько это верно и есть ли подводные камни? Стабильно ли работают ВМ после переноса?
  2. Можно ли сначала поднять ВМ на одной ноде proxmox, а потом создать кластер из 3-х нод, включая ту, что уже с ВМ? Не повредит ли это уже созданные ВМ?
  3. Т.к. отсутствует централизованное хранилище данных для хранения дисков ВМ, то сначала обратил внимание на ceph в proxmox, но походу пьесы выяснил, что ceph слишком прожорлив в отношении ядер ЦПУ и ОЗУ, а также требует отдельно 3 высокоскоростных сетевых интерфейса. И правильно ж я понял, что в результате потребуется 5 сетевых карт? На наших серверах всего 2 по 10ГБит/с. Поэтому такое себе удовольствие. Прочитал, что возможно может подойти drbd+clvm. Просьба подсказать можно ли использовать drbd+clvm для хранения ВМ в кластере Proxmox? Какие требования для него существуют? Есть ли еще какие-либо варианты для хранения дисков ВМ в кластере proxmox?

Спасибо.

 

sasha198407
()

Ядро крашится на ноутбуке без каких-либо полезных journalctl логов

Форум — General

Всем привет на форуме, уже заходил к вам за помощью 2 года назад с примерно похожей проблемой.

Проблема такова: в рандомный момент (более чем час после использования линукса, с несколькими systemctl suspend), ноутбук просто намертво зависает. SysRq не работает, только зажатие кнопки выключения.

Железо: Nvidia MX450, i7 1165G7, 16Gb DDR4 RAM, 32Gb swap.

Драйвера тестил: nvidia-575xx-dkms, nvidia-550xx-dkms, nvidia-580xx-dkms, nvidia-open 590xx, с pacman и с yay

Всего удалось собрать три лога с трёх крашей: https://gist.github.com/saintfts/ca4e3f7e89a872d81e094f4ebcb1e8f1

  1. Вроде как произошёл пока я лазил в браузере.
  2. Когда тестил базовый template flutter’а. Запустил flutter run, через полсекунды зависание системы намертво
  3. Зажал Space на 3 секунды, пока через tab была выбрана кнопка в приложении flutter (базовый темплейт, но с логикой just_audio. Кнопка - загрузить путь к файлу и запустить песню) - фриз

Прогонял память Memtest’ом несколько раз, всё работает отлично. Винда 10/11 работали безотказно.

Буквально 2 года подряд пытался сам найти причину этих крашей. Первая проблема со слишком частыми крашами и отвалами видеокарты ушла после того, как я сделал acpi_mask_gpe=0x6E в cmdline моего бутлоадера (оказалось, что на проприетарных дровах система страдала от «acpi storm» - счётчик в /sys/firmware/acpi/interrupts/gpe6E переваливал за несколько тысяч после вытыкания и втыкания кабеля зарядки в ноут. Теперь такая фигня.

Спасибо всем заранее! Я действительно старался решить проблему, но у меня уже сил нет.

 , , , ,

saintfts
()

ну хорошо. допустим обезъяны не нужны.

Форум — Talks

LLM, все дела, программистов и всех причастных (дизайнеров, художников и прочих бракоделов) на мороз.

очевидно дальше роботы. тонны роботов.

человекам делать-то что? социализм по все поля?

человек — суть то бесполезное, что нет смысла автоматизировать?

азимов — «профессия»?

 ,

Rastafarra
()

Сжигание чучела в luanti или как я Масленицу справлял

Форум — Talks

Здравствуйте! Вот и кончилась масленичная неделя. Ввиду отсутствия в моей стране мест, где сжигают чучела, я решил данную традицию исполнить в компьютерной игре luanti. Построил тогда большущее чучело из соломы. Друг подключился по локальной сети и я его поджёг, но оно еле-еле горело. Попытался изменить конфиг чтобы в сети тоже горело- тоже ничего. Потом друг заснял сам факт сгорания и отключился, а я досмотрел горение уже в одиночной игре, записав его на память через карту захвата с другого ноутбука /компьютер, на котором у меня майнтест маломощный, поэтому как-то так/. Вот ссылка на само видео: https://dzen.ru/video/watch/699b579c49106433d8f3fb6c

Поздравляю также всех форумчан с Масленицей. Надеюсь весна, которая придёт довольно скоро, будет для вас хорошим временем и увенчается только лучшими воспоминаниями!

 ,

dsalin
()

лаптоп начинает лагать после сна

Форум — General

Всем добрый день/ночь. В общем проблема максимально странная, если усыпить лаптоп, то он просто жестко лагает даже после перезагрузки, помогает сброс uefi в дефолты. Началось это буквально как недели две, я честно сказать даже не понимаю с какого конца подступить, Ведь после ребута тоже лагает… лагает в смысле мышка рывками, софт запускается секунды и тп - ноут это ThinkBook 14 G6+, Intel Ultra 9 185H, 32Gb RAM

 , лаптоп

Drolyk
()

Привет от Mamluk'а

Форум — Talks

Mamluk

Здравствуй! Напиши пожалуйста всем ЛОР-овцам, что я их простил от сердца! И пусть они меня простят, если кого чем-то задевал. Сегодня прощённое воскресение! И поздравь там команду Альт Линукс, Альту сегодня 25 лет! Зря я на ЛОР на них тянул. Теперь сам работаю под Альт К Воркстэйшин 11.2. И Макс, из их репозитория, самый свежий и безглючный! Как впрочем и всё остальное.

Илья, кстати, немного пришёл в себя и даже присоединился к тестированию Росы.

 

carasin
()

Пишем мессенджер. Подумаем об архитектуре БД для черновиков.

Форум — Development

Есть мессенджер, в котором несколько разных распределённых баз, ничего не знающих друг от друге и не имеющих распределённых транзакций. Одна база - это, условно, как отдельный постгрес, а распределённая - это значит пошарденая по какому-то ключу. Реально там не постгресы, а скорее рэдисы. То есть, каждая база - это несколько каких-то редисов. У баз есть кодовые имена, типа:

  • MESSAGE - хранит сами сообщения; это особая база, она хранит каждый чатик как вектор объектов Message, больше ничего не умеет. Зато умеет зверски быстро отдать любой подинтервал любого чатика или вставить мессагу в середину чатика длиной миллиард месаг за микросекунду.
  • LIKES - хранит лайки к чему-то, может вернуть число лайков под каким-то объектом по его ID, больше ничо не умеет. Ну и умеет гарантировать, что ты не лайкнул что-то 2 раза. Реакции короче.
  • ACCOUNT - хранит профили юзеров. Пароли там всякие, ID фотки аватара и что-то такое.
  • SESSION - хранит куки или какие-то залогиненные сессии; Буквально это хештаблица sid=uid.
  • ATTACH - хранит инфу про аттачи; буквально хештаблица attach_id = (кодовое filename в хранилище файликов, автор аттача, когда запощено, тип аттача, что-то ещё..)
  • ATTACH_HASH - хранит хеши известных файлов, дедупликация аттачей, чтобы 2 раза одно и тоже не хранить
  • ATTACH_UID - обратный индекс для аттачей uid=[список всех аттачей этого юзера, чтобы можно было все экстремистские материалы сразу майору слить когда террориста поймали]
  • LIBRARY - информация про чатики или группы или каналы. Длинный профиль и настройки чатика. Буквально хештаблица chat_id = (структура данных про этот чатик рассказывающая - кто создал, когда, полное имя, полное описание, аватарка, флаги разрешённых действий с чатиком, список модеров и владельцев и прочая херобаза)
  • CONTACTLIST - контактлисты юзеров. Ты в чатик зашёл, тебе его в контактлист захерачили. В мессенджер вошёл - твой контактлист вычитали и тебе вернули, чтобы ты мог в свои чатики или в свои контакты смотреть.
  • и т.п. Разных баз около 20 под каждый пук.

И тут мы захотели сделать черновики. Ну короче, запилили базу DRAFT и запилили функционал в клиента и в сервер. Набираемое в поле ввода периодически отправляется серверу, сервер это кладёт в отдельную базу «DRAFT». Когда клиент умер и переподключился, то открыв данный чатик ему подгрузят из DRAFT что он там набирал и он может продолжить. Всё как-бы хорошо, но есть приколы.

  1. Раньше постинг мессаги предполагал на backend 1 запрос в базу MESSAGE - запостил и готово, а теперь 2 запроса - надо ещё удалить эту мессагу из DRAFT.
  2. Если DRAFT упала и там что-то было, а ты уже запостил, то потом внезапно клиенту восстанет из ада старый черновик. Возможно это чем-то хорошо, ну мол лучше данные сохранить, чем потерять, но всё равно странновато.

Потом возникла идея, которую надо обсудить.

  1. Выкинуть базу DRAFT и сохранять черновик в базу MESSAGE в отдельную табличку в той же шарде. Когда юзер постит, сделать хитрее: выполнить в базе особо хитровыдуманную атомарную команду «move» которая атомарно-транзакционно переместит черновик как он есть в таблицу сообщений (тут предполагается, конечно, что мы доводим черновик перед этим до состояния финальной мессаги, то есть досылаем в черновик те изменения, которые юзверь сделал после последнего SAVE_DRAFT и до MSG_SEND). В постгресе такой «move» бы наверно делался как небольшая транзакция вида "BEGIN; вставить в MSG результат подзапроса из DRAFT; delete from DRAFT; COMMIT;). Решается сразу проблемы (1) и (2).

Но тут возникла такая приколюха:

  1. Если раньше база MESSAGE была нагружена на запись только тем, что туда постили финальные мессаги, то теперь каждые 2 секунды туда будет апдейт черновика от каждого кто печатает. То есть, это сразу кратный рост нагрузки в разы. Прям в разы. Потому что для каждого «поста» финального сообщения в чатик, который совершался и раньше, теперь этот пост ещё льётся нам каждые 2 секунды в эту базу в отдельную табличку апдейтом. Теперь если посмотреть на пишущую нагрузку в базу MESSAGE то добавление финальных сообщений в неё - это теперь не основная нагрузка, основная - куча апдейтов черновиков.

Короче как лучше не понятно. Ужирнить MESSAGE и забить болт или всё таки юзать схему с отдельной базуней DRAFT?

 

lesopilorama
()

Помогите с установкой драйверов на принтер на Ubuntu.

Форум — General

Помогите пожалуйста с установкой драйверов на принтер Пантум на Ubuntu.По ошибке вначале устанавливал драйвера на Астру.

Выскакивает такая ошибка:

Рабочий стол/Pantum Ubuntu Driver V1.1.123/install.sh’ 64bit system ru_RU.UTF-8

(installer_x86-64:6534): Gtk-WARNING **: 20:14:52.864: Unable to locate theme engine in module_path: «adwaita», 64bit system (Чтение базы данных … на данный момент установлено 351890 файлов и каталогов.) Подготовка к распаковке pantum_1.1.123-1_amd64.deb … Распаковывается pantum (1.1.123-1) … dpkg: ошибка при обработке архива pantum_1.1.123-1_amd64.deb (–install): попытка перезаписать «/etc/sane.d/pantum6500.conf», который уже имеется в пакете pantum-r 1.0.17-1astra1 dpkg-deb (подпроцесс): decompressing archive ‘pantum_1.1.123-1_amd64.deb’ (size=5003262) member ‘data.tar’: ошибка lzma при записи: Broken pipe dpkg-deb: ошибка: subprocess returned error exit status 2 dpkg-deb (подпроцесс): невозможно скопировать элемент архива из «pantum_1.1.123-1_amd64.deb» в канал разжимающего процесса: ошибка записи (Broken pipe) Ubuntu 22.04 ippusbxd:0 ipp-usb:1 При обработке следующих пакетов произошли ошибки: pantum_1.1.123-1_amd64.deb system return 0

:~$ dpkg -l pantum Желаемый=неизвестно[u]/установить[i]/удалить[r]/вычистить[p]/зафиксировать[h] | Состояние=не[n]/установлен[i]/настроен[c]/распакован[U]/частично настроен[F]/            частично установлен[H]/trig-aWait/Trig-pend |/ Ошибка?=(нет)/требуется переустановка[R] (верхний регистр в полях состояния и ошибки указывает на ненормальную ситуацию) ||/ Имя            Версия       Архитектура  Описание +++-==============-============-============-======================================= in  pantum         <нет>        amd64        (описание недоступно) in  pantum:i386    <нет>        i386         (описание недоступно)

 ,

eskulap71
()

Какой смысл «выбирать между линуксами»?

Форум — Admin

Создаю тему не ради холивара)

Просто я чет щас призадумался…

Если мы допустим делаем «бэкенд». Один фиг все будет в докере/кубере и т.п.

Тогда вопрос какая разница «какой линукс брать»? Ведь грубо говоря весь мир может ставить «убунту» и дальше все уже будет запускаться в докерах…

Зачем тогда нужен например Red hat? И почему он так популярен и зарабатывает так много денег?

Объясните плиз. Я правда не могу этого понять…

 

romanlinux
()

Нестандартная маршрутизация «роутер => USB модем»

Форум — Admin

В связи с тем, что провайдер как-то «палит» модем, когда он в роутере, отключил ISP соединение вообще, а использую компонент прокси, связанный с SBC в LAN, в который вставлен модем. Там debian bookworm, поднят NAT, всё в принципе работает, как хотелось.

Проблема в шлюзе по умолчанию. Когда (я так думаю) происходит обновление DHCP, обновляется маршрутизация, и снова приоритетом становится шлюз до роутера через eth0. Я его руками удалил вначале, чтобы приоритетом стал шлюз до модема. Снова удаляю, и снова всё работает.

Можно, конечно, отключить DHCP на роутере и включить на SBC с модемом, но не хотелось бы. Можно как-то прописать шлюзы с приоритетами, чтобы DHCP «не портил» это?

Если я в параметрах DHCP на роутере указываю шлюзом по умолчанию назначаю SBC, то соединение вообще теряется. Что-то неправильно делаю, но не пойму, что.

 , ,

DeadlineX
()

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