• Какие могут быть причины зависания Ubuntu 22.04 при выходе из спящего режима?

    1. Приложи сюда вывод от команды
    sudo grep 'login keyring' /var/log/auth.log | grep -v \"sudo\" | tail -100
    , обрамив в тег кода и желательно в спойлер.
    2. Какая графическая карта и драйвер установлены?

    Добавлено:
    Установи драйвер для NVIDIA
    Ответ написан
  • Почему не хватает оперативной памяти на убунту?

    1.
    Если что swap отключен.
    В Ubuntu? Стало быть, в Windows файл/раздел подкачки есть, а Ubuntu не надо? Включи тогда и проверь, что ли? Ведь без него при отсутствии памяти система будет сокрушаться из-за отсутствия ресурсов и порой будет "подвисать", пока OOM не определится какой процесс надо "грохнуть".
    2. Рекомендую установить пакет earlyoom, который должен отреагировать на нехватку памяти быстрее, чем штатный OOM.
    В терминале sudo systemctl status earlyoom покажет сколько памяти доступно и какой объём подкачки используется.
    Ответ написан
  • Как вывести нагрузку на бота?

    Не бот нагружают, а устройство, на котором он работает. Есть такой обобщающий термин: APM. Погугли его как отдельно, так и в сочетании с Node.js. Можно много чего узнать: про потребление CPU/памяти, про время исполнения кода и пр.
    Ответ написан
  • Как отправлять массово 150 асинхронных запросов в минуту через pool, при этом чтобы была задержка в 150 запросов в минуту?

    Например, при помощи алгоритмов Sliding Window (скользящее окно) и Leaky Bucket (протекающее ведро).

    https://habr.com/ru/articles/448438/
    https://www.geeksforgeeks.org/leaky-bucket-algorithm/
    Ответ написан
    Комментировать
  • Какой выбрать движок (CMS, Редактор) с поддержкой регулярных выражений для редактирования html сайта?

    Регулярные выражения слабо подходят для модификации HTML.
    Данные вещи могу реализовать с помощью подключения VSCODE-ом по SSH, но проблема в том, что нужен доступ для конечного пользователя, а подключение по SSH
    Клиент будет массово редактировать HTML при помощи регулярных выражений? О, господи! А что за категория клиентов?
    Возьми какой-то парсер HTML.
    Ответ написан
  • Какой есть бесплатный визуальный редактор Markdown для собственного сайта?

    TinyMCE (WYSIWYG) изначально поддерживает HTML, но с плагином Text Pattern поддерживает разметку Markdown.
    Ответ написан
  • Есть ли функция в fiber, подобная функции set в gin которая записывает пару ключ/значение в определенном контексте?

    В контекст можно передать нужные пары ключ-значение с WithValue
    ctx := context.Background() // исходный контекст
    ctx = context.WithValue(ctx, "foo1", "bar1") // переопределенный
    ctx = context.WithValue(ctx, "foo2", "bar2") // переопределенный

    И это безотносительно фреймворка
    Ответ написан
    1 комментарий
  • Какой тип обмена использовать в этом случае?

    Если нужна доставка одного и того же сообщения нескольким сервисам, то fanout подходит.
    Если нужно разослать сообщение по разным подкатегориям по маске (скажем, регионам), то можно использовать обмен типа topic.
    https://dev.to/larapulse/dealing-with-rabbitmq-exc...
    Ответ написан
    Комментировать
  • Сеть есть, а доступа к интернету Ethernet нет, что делать?

    Нужно выяснить есть ли физически линк. Если нет, то что-то не так с проводом. Проверь есть ли мигание лампочек (активность) на сетевом порту в коммутаторе.
    Получен ли IP адрес на компьютере?
    Если адрес таки получен, то можно пропинговать адреса соседних компьютеров.

    А если используется только коммутатор, то почему не используется маршрутизатор перед ним? Получается, тогда используются IP адреса провайдера ISP ... Сколько адресов куплено у ISP? 1 или больше?
    Ответ написан
  • Как сделать рассылку «ползучей»?

    А есть ли данные по распределению времени спустя которое пользователь приходит с момента рассылки?

    Нужно учитывать также и время, наиболее оптимальное для пользователя. Вот, пришла ему рассылка в неудобное время. Что будет делать пользователь? Или проигнорирует её вообще или отложит сеанс на потом.

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

    И, возможно, нужно подумать также о том как решать проблему с одновременным посещением пользователей. Почему бот упирается в лимит и какой именно? Вычислительных ресурсов не хватает? Чего-то другого?
    Ответ написан
  • /usr/bin/env: ‘python\r’: No such file or directory - Не получается запустить чужой проект с помощью docker, как исправить?

    Надо откатить свои изменения в файле manage.py и попробовать заново.
    Ответ написан
    Комментировать
  • Какую БД выбрать для хранения и обработки большого кол-ва сообщений?

    пока что около 10тыс сообщений в сутки, но будет больше.

    Можно взять Sphinx Search с адаптером для Postgres, где и хранить все сообщения. Или только Postgres, для простоты и лёгкого старта. Полнотекстовый поиск есть и в нём.
    Или RediSearch (модуль-новинка в Redis) - но насколько я понимаю, всё будет в памяти экземпляра, что может быть дороговато со временем.
    Если сильно вырастите со временем, тогда можете смотреть на ElasticSearch (осознание о необходимости придёт на некотором этапе).
    Ответ написан
    1 комментарий
  • Как правильнее реализовать consumer'a rabbitmq в микросервисе grpc на go?

    Если я верно понял, вопрос о том как сделать так, чтобы можно было слушать gRPC и RabbitMQ с одного сервиса.
    Тогда можно в теле main.go
    app := NewApp()
    app.Start()

    в структуре App можно декларировать ссылки на хэндлеры соединений для gRPC, RabbitMQ.

    func (a *App) Start() {
      go listenGRPC()
      go listenMQ()
    }


    Микросервис запустит 2 горутины, каждая из которых будет слушать и обрабатывать свои соединения независимо.
    Ответ написан
    Комментировать
  • Почему происходит зависание при cUrl https?

    Судя по симптомам, объём данных может быть достаточно большой, что приводит к раздуванию памяти и последующим погружением ОС в работу с разделом подкачки.
    Для начала, стоит обратить внимание на размер данных в заголовке Content-Length. Поэтому приложению нужна память на этот объём и на процесс обработки полученных данных, который включает в себя парсинг JSON, на который требуется даже больше памяти, чем сам JSON.
    Учитывать и то, что на машине разработчика обычно запущены IDE, веб-браузер и много других программ.
    Ответ написан
    Комментировать
  • Как управлять памятью wsl?

    скрипт на сайте сжирает уйму памяти и выкатывает ошибку 500 на любом хостинге
    Очевидно, что проблема именно в приложении, а не в среде, в которой оно запущено. Скрипту (на PHP?) позарез понадобилась память. Что он делает? Правильно, просит (по-разному в разных языках) у ОС. А ОС спрашивает: сколько нужно? Столько то? На, бери. Ещё? Ну на! Ещё?
    (отвечает грубо)
    А ну нафиг! Зажрался, отвали!
    . Что происходит, когда программе не дают память? Она падает. Но есть нюансы: в ОС как Linux есть механизм отслеживания "жручих" приложений и если какой-то негодный процесс мешает всем жить в ОС, то его нещадно "прихлопывают". Он даже пикнуть (в свой журнал событий) не успевает. И всё, собственно говоря.

    Мораль: много не жрать. Следить за диетой.

    Ладно, и как теперь быть?
    Читать в статье. Особенно про APM


    Но может быть достаточно и проверить какой конкретный экшн вызывает ошибку 500. Зная его (при наличии логирования запросов), можно получить параметры для воспроизведения ошибки.
    Ответ написан
    Комментировать
  • Какие можно использовать технологии/форматы для хранения бинарных пользовательских данных в десктопном приложении?

    Хочется хранить весь профиль пользователя (то, что обычно называют Vaults или Spaces в похожих приложениях) включая бинарные файлы (библиотеки изображений, мультимедиа, документов и т.п. файлов) в едином файле с быстрым доступом, вместо иерархии папок на файловой системе.

    Хранить в архивах ZIP, TAR/PAX, конечно, можно, но не сильно удобно: вместо работы с файлами придётся работать с библиотеками для работы с архивами: то записать в архив, то прочесть с него. С точки зрения производительности вряд ли будет столь же эффективно, как с файловой системой (даже с иерархией папок).

    Можно просто держать пользовательские настройки и файлы - отдельно. И ничего особо мудрить тогда не нужно и будет очень универсально. Хотя, с точки зрения кросс-платформенности, скорее всего, будет не так всё хорошо. Но если пользоваться библиотеками поддерживающими кросс-платформенность - так лучше, конечно.

    В настольных приложениях общие настройки и данные хранят в /etc , /usr/share , /usr/lib (Linux) , пользовательские - согласно спецификациям XDG и в Windows - в своих директориях.

    Медиа-файлы, конечно, должны быть доступны приложению простым образом, без необходимости писать/читать в/из архив(а). Особенно, если необходимо запустить ассоциированное с типом файла внешнее приложение, как видео-проигрыватель.

    Более гибкий вариант: использовать SQLite или какую-то K/V СУБД (тот же Redis!). В добавок к кросс-платформенности получаем возможность простым API работать с данными, не занимаясь мелочью типа открыть-закрыть файл, (де)сериализовать данные (настройки всякие), записать/прочесть блок данных. Ими занимается драйвер СУБД (обычно библиотека) и сама СУБД.

    Дополнительный гибридный вариант - использовать файлы локально и удалённо (с SDK): допустим с каким-нибудь объектным хранилищем, по протоколу S3 или другому. Как вариант, даже, использовать драйвер VFS для прозрачной работы с неким хранилищем, которое с точки зрения настольного приложения будет работать, как обычная ФС.

    Для примеров можно взять типичные приложения типа веб-браузера или какого-нибудь мессенджера и посмотреть какие технологии используются в них.
    Ответ написан
    Комментировать
  • Является ли сайт информационной системой?

    Да, является, согласно разным критериям.
    https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%84%D...
    Ответ написан
    Комментировать
  • Как залить бота на хостинг?

    Ошибка: Name or service not known

    Нужно иметь домен с таким именем:
    your.domain


    WEBAPP_HOST, WEBAPP_PORT так же надо определить.
    Ответ написан
    Комментировать
  • Как можно регулярно обновлять модель?

    Для периодического выполнения задач можно использовать гем whenever, при помощи которого можно запускать ежедневную Rake задачу. Можно и с помощью cron, но не столь удобно, как с гемом.
    Эта задача может ежедневно сверять дату и проверять в СУБД для каких пользователей нужно обновить атрибут модели (баланс или что-то другое).
    Ответ написан
    Комментировать
  • Не открывается exe файл после компиляции gcc. Что делать?

    Консольная программа (которая не имеет графического интерфейса как Calculator) может работать только в сеансе терминала. Для этого нужно открыть cmd или powershell.
    Если запускать вне терминала (с Рабочего стола), то программа запустится и очень быстро закроется, поскольку она выполняет свою задачу и сразу завершается. Чтобы увидеть результаты работы (какой-то вывод на экран), нужно вставить действие для ожидания от пользователя, допустим getch();
    И не забыть инклюды
    #include <stdio.h>
    #include <conio.h>
    Ответ написан
    1 комментарий