• Не видит библиотеку, что делать?

    @res2001
    Developer, ex-admin
    в msys2 заголовки библиотеки ставятся в include/ncurses/
    Можете использовать так: #include <ncurses/ncurses.h>
    Можно использовать утилиту pkg-config для сборки, она выдаст правильные пути для заголовков и зависимости:
    pkg-config --cflags --libs ncursesw
    Ответ написан
  • Где арендовать сервер в Hetzner?

    @psiklop
    Получал письмо от Hetzner недавно, лавочка закрыта абсолютно для России. Для чего? Хороший хостинг, ну и что с того. Если же никак иначе, нужно современное железо или сверхнадежность - тогда вперед пользоваться всякими посредническими недо-сервисами которых на почве санкций открыли. Но теперь нужны уже не только карта, но и гражданство.

    И тут теряется преимущества хетзнера, хороший хостинг + дерьмовый посредник = дерьмовый хостинг
    Ответ написан
    4 комментария
  • Где искать оригинальный кабель для ноутбука?

    @ewgenc
    Если хочется оригинальный - написать в поддержку Honor и спросить. Или не ломать голову и купить кабель на 65 Вт, от Ugreen например.
    Ответ написан
    Комментировать
  • Как заставить работать одновременно фронтенд и бэкенд на одном порте?

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

    Ты можешь поднять nginx (ну или caddy, раз уже определился) на 80-м порту и настроить его на раздачу статики и проксирование запросов.
    MongoDB останется как есть.
    Ответ написан
    2 комментария
  • Как защитить CSV или JSON базу данных в мобильном приложении?

    2ord
    @2ord
    Данные принято хранить в СУБД, а не файликах. Может работать on-prem или на облачном хостинге. СУБД может быть реляционной (язык запросов SQL), ключ-значение, колоночная и т.д
    Как правило, мощный сервер не нужен. Даже если данных сотни ГБ. Но это зависит от того правильно ли спроектирована БД и типа самых популярных запросов к ней.
    Как правило, мобильные приложения не работают напрямую с СУБД и используется многоуровневая архитектура. Безопасность данных обеспечивается комплексом мер безопасности для мобильного приложения и северной части (читай про OWASP). Само по себе шифрование данных возможно, но этим заморачиваются обычно лишь особо параноидальные организации. Это требует знаний в разработке бэкэнда. Обычно используется веб-фреймворк и стек технологий типа LEMP или альтернативы.

    Есть вариант куда проще - можно рассматривать как промежуточный - миграция файлов в SQLITE (работать с ним из приложения при помощи SQL). Но я не знаю можно ли скачивать файл БД при установке на мобильное устройство. Иначе придётся запаковывать его в приложение. По идее можно, раз игры скачивают свой контент.

    Ещё есть вариант с Firebase. Кто знает, пусть напишет.
    Ответ написан
    1 комментарий
  • Как защитить CSV или JSON базу данных в мобильном приложении?

    @rPman
    100% защиты не будет, в конечном счете все упрется в стоимость защиты и атаки, и соответственно смысла это делать.

    Про размещение базы на сервере:
    * так ли твое приложение будет популярно, что ты беспокоишься о нагрузке?
    * можно использовать на сервере только часть базы (выбрать ту что больше жалко) а часть не самую важную, но по возможности объемную, дублировать в виде кеша на клиенте
    * есть интересный вариант, когда сервер возвращает только идентификаторы (само собой на сервере база целиком), а локально хранятся несвязные данные (можно даже строки раскидать по частям), этот вариант имеет смысл если нужно сэкономить на сетевом трафике (в т.ч. для пользователей), не подходит если эти данные часто меняются (чтобы не рассылать обновления всем пользователям) а так измененные данные можно так же с сервера брать.
    * ограничивай количество запросов от пользователя, иначе ушлый атакующий просто спарсит большой серией удачных запросов либо саму базу либо результаты ее работы, просто используя данные, выводимые на экран приложением (что то типа автокликера)
    Ответ написан
    1 комментарий
  • Как сделать чтобы задача запускалась в диапазоне 0:00 - 01:00?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Добавьте рандомный sleep в команду в кроне

    /usr/bin/sleep $(($RANDOM%61)) && yourjob.sh
    Ответ написан
    7 комментариев
  • Как сделать чтобы задача запускалась в диапазоне 0:00 - 01:00?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    В systemd-timer есть параметр, добавляющий разброс в указанном диапазоне. Задача в кроне со слипом - для 2023 года жуткий костыль и атавизм.
    Ответ написан
    Комментировать
  • Как сделать чтобы задача запускалась в диапазоне 0:00 - 01:00?

    @dronmaxman
    VoIP Administrator
    С помощью systemd
    Создайте файл `myscript.service`

    [Unit]
    Description=Мой скрипт
    
    [Service]
    ExecStart=/путь/к/вашему/скрипту.sh


    2. Создайте таймер для запуска скрипта `myscript.timer`

    [Unit]
    Description=Таймер для моего скрипта
    
    [Timer]
    OnCalendar=*-*-* 00:00:00
    RandomizedDelaySec=3600
    
    [Install]
    WantedBy=timers.target


    3. Активируйте и запустите таймер.

    sudo systemctl daemon-reload
    sudo systemctl enable myscript.timer
    sudo systemctl start myscript.timer


    Параметр `RandomizedDelaySec` устанавливает случайную задержку в секундах между запусками.
    Ответ написан
    1 комментарий
  • Как сделать чтобы задача запускалась в диапазоне 0:00 - 01:00?

    Viji
    @Viji
    DevOps Engineer
    что значит в диапазоне? Каждую секунду этого промежутка времени? Или начало в 00;00 и окончание в 01:00?

    в общем случае используют cron

    00 00 * * * /my_task.sh

    каждую ночь в полночь
    Ответ написан
    1 комментарий
  • Как сделать чтобы задача запускалась в диапазоне 0:00 - 01:00?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Запуск в случайное время - это такая себе наивная попытка сделать балансировку нагрузки.
    А хочется спросить что будет если случайность оказалась не очень удачливой и мы все таки
    пересекаемся с другим джобом? Тут лучше бы все-таки сделать retry-logic с повторами
    что если существует mutex, file, socket или еще бох знает какой разделяемый объект
    то мы берем паузу на 5 минут и потом просто делаем повтор попытки.
    Ответ написан
    2 комментария
  • Почему низкая частота процессора под нагрузкой?

    @alexalexes
    Пора обслуживать систему охлаждения - менять термоинтерфейс (если была термопаста - использовать термопасту, если были термопрокладки - термопрокладки, и т.д.). Смотреть в каком состоянии плоскость площадок радиаторов - если не в плоскость выведена (кривой охлад), то нужно применить физическую силу, чтобы это исправить.
    Ответ написан
    4 комментария
  • Что такое Docker простыми словами?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Недо-виртуалка, которая позволяет выделить одному процессу минимальное окружение, имитирующее полноценную ось.
    Широко применяется при необходимости проверить поведение некоей програмы в разных браузерах, разных СУБД, разных чего-нибудь-еще, когда неизбежно появление большого количества однотипно настроенных виртуалок.
    Ответ написан
    Комментировать
  • Как разогнать видеокарту на Ideapad 330-15ICH?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Есть ли какие-либо способы её обойти?

    Один такой тут недавно память пытался разогнать :) Скорее всего, отскочит заменой матери (хотя память тоже могла погореть).
    В ноутбуке, где каждый компонент работает на пределе тепловых возможностей - разгонять? Добить решили, чтобы не мучился?
    Ответ написан
    Комментировать
  • Persistence в Kali Linux?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    что может быть не так?

    Есть Универсальный Патч Бармина, решающий все проблемы с Kali у недокакеров. Ссылку давать не буду :)
    Ответ написан
    Комментировать
  • Реально ли заменить gulp на vite?

    bingo347
    @bingo347
    Crazy on performance...
    Есть сборщик gulp
    То что под gulp есть сборщики не делает сам gulp сборщиком. Gulp - task runner, запускалка задач. То есть сборщик под капотом может быть любой, хоть тот же vite.
    Теперь про vite, основная его фишка - это ускорение dev сборок и за счет этого ускорение самого процесса разработки. Достигает он это за счет того, что по сути не собирает Ваши исходники, а только применяет к ним трансформации, хотя зависимости все же собирает с помощью esbuild. При этом для прода вся сборка переадресуется на rollup. И то что в dev и в prod у Вас будут по сути разные сборщики изредка приводит к багам, которые воспроизводятся только в prod сборках. Rollup надо сказать тоже не идеален и на больших проектах порой ломает код, хоть и редко.
    Тут мое ИМХО и не более
    Rollup для сборки библиотек.
    Webpack для сборки конечных приложений.
    Vite интересен скорее интегрированным в него vitest, который позволяет писать unit тесты ближе к логике (привык я к хорошему в Rust).

    А по факту, смена сборщика чревата ошибками, сильными изменениями в структуре проекта и прочими подводными камнями.
    Если вопрос "стоит ли переезжать" появился только из hype-driven-development (погоней за модой по-простому), то ответ однозначный - нет, не стоит.
    Если же текущая сборка накладывает на Вас сильные ограничения и борьба с этими ограничениями занимает очень много времени, настолько, что потенциальные проблемы от смены сборки скорее всего займут времени меньше, то да, стоит переезжать.
    Ответ написан
    1 комментарий
  • Какой роутер лучше купить, чтобы пропускать VPN через VPN (ну и в целом)?

    @Drno
    Уже говорили.
    Кинетик. Микротик
    Ответ написан
    Комментировать