Задать вопрос
  • Почему перемещение объявления и инициализации переменной на новую строчку кода влияет на результат работы программы?

    shurshur
    @shurshur
    vurdalaq, нет, компилятор каждую переменную положит в свою область памяти.

    Правда, и тут можно накосячить. Например, нам нужно хранить строки до 10 символов, выделим переменную char s[10]; затем запишем в неё строку каким-нить образом (например, функцией strcpy). Фигня в том, что на строку в 10 символов нужно 11 байт, включая нулевой байт в конце строки. И если это не учитывать, то мы вылезем за границу масива символов, попадём в другую переменную и испортим её значение.

    А, и ещё вместо strcpy полезно сразу привыкнуть использовать strncpy. Вдруг нам подсунут строку длиной 20, а мы выделили только 11 байт?
  • Почему Телеграм-бот не находит в БД sqlite3 подписчика чтобы удалить?

    shurshur
    @shurshur
    Ross_F1, у телебота можно отключить треды (кажется, threaded=False в инициализации или в bot.polling, лень смотреть в документацию). Либо можно переместить всю работу с базой в отдельный тред и делать запросы только в нём. Есть даже готовые модули, которые реализуют такую прослойку, например, sqlite3worker.
  • Как установить сетевой драйвер без интернета Lubuntu 14.04?

    shurshur
    @shurshur
    Nertsan -, загрузчик мобильного устройства обычно ни с каких флешек даже не пытается. Тут скорее надо не инсталлятором пользоваться, а упражняться с debootstrap. Короче, это очень сложная затея, задача даже не со звёздочкой, а с десятью.

    Я бы лучше рекомендовал купить Raspberry Pi или его аналоги, можно даже не самых новых ревизий, можно найти б/у недорого, например, я прям ща нашёл на авито RaspberryPI 2 за 1500 рублей в Москве, плюс несколько предложений за 2000. Это намного проще, чем страдать с кривыми проприетарными дровами и корявым загрузчиком.

    Как вариант, может оказаться, что в месте установки этого радиуса уже есть роутер, который поддерживает установку openwrt, можно его перепрошить и установить сервер на нём. Или можно под это дело роутер обновить/заменить.

    Кстати, старые роутеры тоже можно купить недорого, порой даже дешевле RPi, можно даже найти те, которые openwrt поддерживает идеально.
  • Как парсить с wildberries?

    shurshur
    @shurshur
    Greenberg2, меня алиэкспресс время от времени задалбывает (к счастью, стал реже, раньше мог каждые 10 минут пихать) и у Яндекса иногда начинает крышу сносить (у него как раз капча ща какая-то упоротая стала, попробуй найди символы, которые там нередко еле проглядываются). Плюс иногда зарубежные сайты технического характера кидают на cloudflare, в том числе такие, на которые я уже не раз ходил, но к счастью обычно без капчи.
  • Как установить сетевой драйвер без интернета Lubuntu 14.04?

    shurshur
    @shurshur
    Ubuntu_Pro, зависит от того, что указывал пользователь при установке.
  • Какой сборщик логов прост в освоении?

    shurshur
    @shurshur
    Самое простое - взять рактически любой штатный логгер на линуксе, хоть rsyslog, настраиваем чтобы слушал сеть и на устройствах настроить логгирование в него. Самому логгеру настроить ротирование по вкусу либо штатными средствами (если у него они есть), либо через logrotate. Проще некуда.
  • Как защитить себя юридически при email-рассылках?

    shurshur
    @shurshur
    Но добавлю, что по закону согласие на рассылку нельзя получать через эту рассылку! Его надо получить каким-нибудь другим способом.
  • Как создать линуксфон из андроида?

    shurshur
    @shurshur
    Noder SS, а можно модель телефона и какая система устанавливалась?
  • Как парсить с wildberries?

    shurshur
    @shurshur
    Greenberg2, в RU именно таких не видел. Но видел много других, в том числе весьма замысловатых.
  • Может ли IP адрес быть валидным именем хоста?

    shurshur
    @shurshur
    Глубоко ТЕОРЕТИЧЕСКИ - да, может. Но надо понимать, что все домены НА САМОМ ДЕЛЕ на уровне DNS имеют точку в конце имени. И имя 123.123.123.123. (с точкой на конце) - не то же самое, что IP-адрес 123.123.123.123 (без точки).

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

    Так что это довольно бестолковая идея...
  • Почему не отправляется почта с хостинга Timeweb, хотя с локального сервера отправляется?

    shurshur
    @shurshur
    Возможно там древний php, я бы посмотрел минимальную версию для свежешь phpmailer и сравнил с тем что на сервере.
  • FTP или BEGET? Спасите, что не так?

    shurshur
    @shurshur
    Мне кажется, имеет смысл рассмотреть предположение, что предыдущие неудачные выгрузки файлов задним числом всё же выполняется, но получаемый файл получается нулевой длины и затирает успещно загруженный... Правда, всё равно непонятно как...
  • Где хранить бэкапы сайта?

    shurshur
    @shurshur
    Алексей Поваров, есть rsnapshot, который на базе rsync умеет делать дифференциальные и инкрементальные бэкапы. Но в реальности я бы смотрел в сторону чего-нить более серьёзного, типа borg.

    Если просто делать наивно rsync, то да, в копии будет испорчено при очередной синхронизации.

    Вообще, есть и такая стратегия, когда используется lsyncd, который держит почти моментальную копию дерева файлов в каталоге на втором сервере. Тогда даже промежуток времени между регулярными бэкапами будет закрыт - всегда будет актуальная или практически актуальная копия сайта.

    Вариант - под систему или под раздел с данными подсунуть drbd с онлайн-репликацией - но это уже намного сложнее и чаще всего используется для виртуальных машин, причём лучше на "короткой" дистанции - типа два соседних сервера (можно даже подключить их по 10 Гбит/с или FibreChannel). И это умеют всякие proxmox из коробки. Но для виртуалки, купленной у хостера, это не особо годится.
  • Как удалить последние 2 сообщения в телеграм боте?

    shurshur
    @shurshur
    Тынай Бакасов, если бот отправит двум разным пользователям или пользователь быстро отправит два разных сообщения - то вся нумерация легко поедет и удалиться может не то, что надо (в том числе у другого пользователя!). Я уж не говорю о том, что способ выдачи id может изменить телеграм на своей стороне, например, начать выдавать их с другим инкрементом или вообще без какой-либо монотонности. Если изначально соблюдать API как надо, то бот это без проблем переживёт и будет работать, а если нет...

    Я могу пример привести из своей практики. Есть интеграция, в которой id выдают блоками по 1000 штук два независимых сервиса, один выдаёт нечётные, другой - чётные (чтобы не пересекались). Некоторые клиенты ошибочно думали, что id монотонны и всегда возрастают, но это не так: когда очередной блок берётся с другого генератора, чем в предыдущий раз, очередные id могут измениться в сторону снижения. Причём чем дольше длится интеграция, тем больше расхождение может накопиться (хотя в нормальной ситуации должно быть приблизительно поровну).

    Причём это когда-то много лет назад было переделано из простых sequence в базе в рамках повышения отказоустойчивости. И это там реально работает. Так, при тормозах, кратковременной или полной недоступности базы основной функционал сервиса сохраняется. Причём он может так работать не один час, и такие аварии там несколько раз бывали.

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

    PS: Я кстати был реально уверен что удалять бот чужие сообщения из личного чата не может. Но вероятно перепутал с редактированием - тут был кто-то, кто очень хотел ботом редактировать текст сообщения пользователя.
  • Как удалить последние 2 сообщения в телеграм боте?

    shurshur
    @shurshur
    Отвратительный способ решения, потому что id не обязаны быть последовательными, и можно удалить не то, что нужно.
  • Как дать перманентный бан за мультиак на сайте?

    shurshur
    @shurshur
    pddev, отечественные тоже в пролёте. Куча людей попросту откажется регистрироваться.
  • Как дать перманентный бан за мультиак на сайте?

    shurshur
    @shurshur
    Владимир Коротенко, причём тут деньги? Люди даже с ума сходят абсолютно бесплатно.
  • Как дать перманентный бан за мультиак на сайте?

    shurshur
    @shurshur
    pddev, советую не реагировать, Владимир известный на этом сайте... сторонник понятно какой идеологии
  • Бесплатный онлайн переводчик для сайта?

    shurshur
    @shurshur
    Можно поднять свой сервер LiberTranslate, можно осваивать всякие почти готовые решения типа EasyNMT, скачивать готовые обученные модели... Да, не супер качественно и не особо быстро без хорошей видеокарты, но зато очень недорого.

    Также можно обратить внимание на то, что тексты на сайтах, вообще говоря, показываются далеко не один раз. И каждый раз их переводить не нужно, достаточно перевести один раз всё заранее или переводить конкретный текст в нужный язык при первом обращении. В зависимости от объёма сайта, это может очень существенно снизить общие затраты на перевод.