Задать вопрос
  • Какой выбрать движок (CMS, Редактор) с поддержкой регулярных выражений для редактирования html сайта?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

    2ord
    @2ord
    что будет эффективней, держать постоянно в памяти 5 больших массивов, чтобы искать по ним нужную информацию, или каждый раз искать по .txt файлу.
    Эффективнее использовать язык запросов SQL к СУБД (например, SQLite).
    Преимущество в централизованном хранении данных и стандарте доступа к ним.
    Один-два запроса к СУБД могут заменять порой довольно приличное количество кода (порой даже нетривиального).

    Исходим из предположения, что типичный студент навряд ли будет писать что-то высокотехнологичное и поэтому, скорее всего, СУБД и будет самым оптимальным доступом к данным.

    Если нужно что-то специализированное для данных, то нужно уточнять какова структура данных. Тогда могут понадобиться NoSQL.
    Ответ написан
    4 комментария
  • Как внедрить полнотекстовый поиск?

    2ord
    @2ord
    Вот предлагаемый порядок для исследования возможностей поиска:
    1. Postgres: full text search
    2. Sphinx Search или форк Manticore Search : можно также подключить к существующей СУБД.
    3. ElasticSearch (если Sphinx не подойдёт по каким-то причинам)
    Ответ написан