Задать вопрос
  • Как уменьшить размер PDF на сервере?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Можно вот таким скриптом на bash
    find . -name '*.pdf' | xargs -I % sh -c 'gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=%.tmp %; mv %.tmp %'

    Он находит все файлы, оканчивающиеся на .pdf в текущей директории и для каждого создает новый сжатый и по окончании заменяет старый новым сжатым.

    Но необходимо установить ghostscript - sudo apt install ghostscript
    Ответ написан
    1 комментарий
  • Зависит ли скорость записи в БД от количества в ней записей?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    В общем случае не зависит
    В каждом конкретном случае, если вдруг будет зависеть, надо разбираться отдельно.
    Сам по себе вопрос - это одна из тех проблем, которыми не следует забивать себе голову заранее.
    Ответ написан
    Комментировать
  • Как заблокировать доступ к ресурсу для конкретного региона?

    @Everything_is_bad
    Недавно проверял состояние сервера и заметил в логах много неудачных попыток входа на сервер (В основном через ssh)
    ну как первый раз в интернет вышел, уже сто лет такое, ssh вообще постоянно долбят, ставишь fail2ban, а еще лучше меняешь дефолтный порт и ставишь логин только по ключу. А регион блокировать, так себе идея.
    Ответ написан
    9 комментариев
  • Как сделать преобразование переменной в С++?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Если вопрос в том - как возвращать ошибку в качестве ответа, то есть решения:
    - Создать специальный класс Result, который будет содержать либо ответ, либо строку ошибки
    - Возвращать double.NaN - маркер ошибки
    - Кидать исключение

    UPD: если функция возвращает double, а ты хочешь передать std::string, то ничего не получится - типизация строгая
    Ответ написан
    1 комментарий
  • Почему на хостинге у многих есть папка public_html и почему она так называется?

    martin74ua
    @martin74ua Куратор тега Linux
    Linux administrator
    Раньше, когда трава была зеленее, интернет меньше и добрее, существовало вот такое в настройках веб сервера:

    # UserDir: The name of the directory that is appended onto a user's home
    # directory if a ~user request is received.
    #
    # The path to the end user account 'public_html' directory must be
    # accessible to the webserver userid. This usually means that ~userid
    # must have permissions of 711, ~userid/public_html must have permissions
    # of 755, and documents contained therein must be world-readable.
    # Otherwise, the client will only receive a "403 Forbidden" message.
    #
    # See also: httpd.apache.org/docs/misc/FAQ.html#forbidden
    #


    Т.е. можно было просто получить логин на сервер, где был запущен веб сервер и получить домашнюю страничку вида:
    example.com/~username

    И вот с тех древних времен так и потянулось... Каталог, в котором размещаются файлы сайта - public_html....
    Ответ написан
    4 комментария
  • Как выбрать строку по определенному числу?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Дружище, data quality у тебя ужасное. Такие данные не должны попадать в реляционную БД.
    Лучше их как-то подчистить и нормализовать. И потом и запрос по подчищенным данным пойдет
    быстрее и индекс можно построить.
    Ответ написан
    Комментировать
  • Как практиковаться в программировании?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Забей на программирование, это не твое.

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

    Найди ту деятельность, где у тебя глаза горят.
    Ответ написан
    4 комментария
  • Куда мне писать данный код?

    @maximq
    QA Engineer
    Там же снизу написано:
    Я использовал Postman для этой задачи, просто удобнее, когда всё наглядно и с user-friendly интерфейсом

    Эту команду можно импортировать в postman, после установки и запуска postman выбираем File - Import и нажимаем CTRL + V.
    Таким образом будет создан запрос для отправки.

    Что вообще собой представляет эта команда? Выполнив (отправив) этот запрос мы сообщаем телеграму, что необходимо зарегистрировать вебхук, куда ему (телеграму) следует отправлять нам уведомления — на какой сервер. В качестве сервера он принимает значение содержащееся в теле запроса - json объект, где есть ключ url — значение которого (домен API-шлюза) и будет принят для отправки на него уведомлений.

    Учитывая какой вопрос вы задали, предположу что бот у вас будет работать на вашем компьютере, соответственно и сервера то, возможно, нет. Вам нужен другой туториал по разработке бота (не вебхук бот), вот один из хорошо написанных.
    Ответ написан
    1 комментарий
  • Почему global не действует на переменную, инициализированную во внешней функции?

    @Vitsliputsli

    Почему следующий код на PHP печатает 7, а не 12?

    Потому что это не js. А global работает ровно так как описано в доке, по-другому никак, т.к. область видимости работает иначе в языке.
    А делать надо так, чтобы функция внутри себя не обращалась с произвольными данными извне, только с теми, которые вы заранее объявили. Только так можно контролировать код. А значит global не нужен.
    Ответ написан
    Комментировать
  • В чем разница записи массива через указатели?

    @res2001
    Developer, ex-admin
    Приоритет операции * выше, чем у -
    Ответ написан
    Комментировать
  • Что это за файл, и как его удалить?

    pindschik
    @pindschik
    ФЫВА ОЛДЖ
    1) То, что tcpsvcs.exe - системный процесс, еще не означает, что он не был подменен, в него не инжектирован вредоносный код (в том числе только в оперативке, а не на диске).

    2) Вы установили себе вредоносное ПО. То, подо что оно мимикрирует - не имеет значения. То ли это псевдо-торент, то ли "скачивальщик", то ли показыватель баннеров. Надо понимать - злоумышленникам нужен доступ к вашему ПК и он был получен, при чем с админскими правами. Название компании - это просто для вашего самоуспокоения, дескать это такое своеобразное ПО.

    3) Схема троянского ПО обычно такая: сайт-приманка; "дроп" - компонент который забрасывает на ваш комп
    полезную нагрузку; "троян" - сам компонент зловреда с полезной нагрузкой и удаленным управлением; дальше идет сервис в даркнете по продаже услуг, связанных с зараженными ПК, согласно покупок сервиса - вам будет по необходимости инсталлироваться то вредоносное ПО, на которое есть спрос: кража банковских данных, аккаунтов в соцсетях и мессенджерах, майнинг крипты и т.д.

    4) Ваши действия сейчас не соответствуют угрозе. У вас есть немного форы, пока злоумышленники продают базу в даркнете. Потом ее кто-то купит и начнется веселье. Срочно необходимо:
    а) с чистого устройства немедленно сменить все пароли доступа которые когда либо как угодно были на вашем ПК, в том числе в хранилище гугла. Включить двухфакторку везде, где это возможно.
    б) предупредить всех ваших контактов в соцсетях, мессенджерах и т.д. - что вы взломаны, и денег никому не давать.
    с) обойти все банки, которыми вы пользуетесь - заблокировать все онлайн операции и приложение.
    ... и только уже потом снести систему полностью, включая загрузочные разделы на жестком диске, перепрошить заново BIOS, и ставить винду по новой, с образа MSDN.

    Ну и молиться, что всё обойдется только этим, а легкомыслие - не приведет к действительно серьезному ущербу.
    Ну или быть легкомысленным и дальше, и однажды получите "привет" существенно серьезнее.
    Ответ написан
  • Какие ведутся документы при разработке ПО?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Например, сейчас мне необходимо сделать документ, который будет содержать информацию о том, какие дополнительные функции необходимо реализовать в уже существующем проекте.

    Техническое задание (ТЗ)?
    Ответ написан
    Комментировать
  • Зачем нужен интерфейс, если есть абстрактный класс?

    @Mercury13
    Программист на «си с крестами» и не только
    Разрешите добавить. Интерфейс, грубо говоря,— это абстрактный класс без данных и недописанных функций (каждая или полностью жизнеспособна в какой-то ситуёвине, или нулевая = полностью абстрактная, не путать с пустой). И причины этому две.

    1. Организационная. Говорит программистам: не ставьте тут абстрактный класс, если можно интерфейс. Так кузявее: не стоит подключать большую артиллерию, когда можно обойтись малой кровью.

    2. Техническая. Прикрывает один такой серьёзный жупел, как ромбическое наследование данных. Ромбическое наследование данных бывает двух видов.
    Пусть у нас такое:
    class Grandfather { public: int field; };
    class LeftFather : Grandfather {};
    class RightFather : Grandfather {};
    class Son : LeftFather, RightFather {};

    а) С дублированием, когда у сына два поля field, унаследованное через левого отца и через правого. Достаточно сделать функцию…
    void foo(LeftFather& x) { x.field = 42; }
    Как сохранить синхронизацию для левой и правой ветки наследования?
    б) С общим дедом, когда у сына одно такое поле (через виртуальное наследование Си++). Тут левая и правая ветки могут быть просто не готовы к тому, что поле будет меняться без её ведома.

    Ромбическое наследование функций не так вредно: ведь любая функция, извините, работает с данными. А значит, она или имеет дело с внешними данными (а значит, в обеих ветках сделает одно и то же), или нулевая, или просто комбинация таких же нулевых (InputStream.remainder() { return size() - pos(); }).

    Почему я говорю «в какой-то ситуёвине». Возьмём тот же remainder. Существуют потоки — скажем, закэшированный ввод с внешнего устройства — которые не имеют размера и позиции, но способны иметь остаток. Для каких-то потоков можно написать остаток более эффективный. Но это казуистика.
    Ответ написан
    Комментировать
  • Веб-сервер дома на виндовс для работы с python?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Начните с изучения Django и формирования более конкретных вопросов.
    Ответ написан
    Комментировать
  • На чем создать мобильное приложение?

    @caballero
    Программист
    а заем тут мобильное приложегние?
    сделайте несколько страниц в ERP и пусть работабт с ьраузера
    Ответ написан
    2 комментария
  • Proxmox - это Debian?

    @Drno
    да
    Ответ написан
    Комментировать
  • Как сохранить get параметр при переходе на другую страницу?

    @alexalexes
    Если вы хотите сохранить выбранный населенный пункт в вашем разрабатываемом сайте (интернет магазине), то вам не нужно тянуть этот параметр при каждой ссылке. Вам нужно при выборе города от пользователя получить этот параметр один раз и сохранить его либо в куках $_COOKIE, либо в сессионной переменной в $_SESSION, либо в базе данных в профиле пользователя.
    Далее, при любом обращении к любой странице вашего сайта доставать этот параметр из описанных выше источников и использовать как некую переменную контекста для выбора и формирования контента страницы.
    Ответ написан
    1 комментарий
  • Как установить готовый проект Laravel на VPS-сервер?

    delphinpro
    @delphinpro
    frontend developer
    Подключиться к серверу по ssh
    Если проект в гите, то настроить соединение с гитхабом (гитлабом и т.п.), то есть сгенерить ключи, добавить их в лк гитхаба и протестировать подключение.
    Когда соединение есть, клонировать проект из репы git clone ...
    Если не в репе, то просто залить по ftp файлы проекта
    Далее выполнить установку зависимостей
    composer install
    Смонтировать хранилище
    php artisan storage:link
    Установку зависимостей фронта и его сборку
    npm install
    npm run build

    Отредактировать файл .env, внеся в него необходимые настройки подключения к БД и прочие.
    Выполнить миграции и при необходимости сидирование
    php artisan migrate
    php artisan db:seed

    Первичное развертывание закончено
    Ответ написан
    Комментировать
  • Как исправить create_function на php 8?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    array_walk_recursive(
        $arConfig,
        static function (&$n)
        {
            $n = match($n) {
                "true" => true,
                "false" => false,
                default => $n,
            };
        },
    );
    Ответ написан
    Комментировать