Задать вопрос
  • Как узнать, хранятся числа в компьютере в прямом, дополнительном или обратном коде?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Нынче достаточно сложно найти компилятор с однобайтовым int. Поэтому стоило бы явно использовать типы навроде int8_t.

    Вот тривиальнейшая программа, которая берёт знаковый int8_t -2 и беззнаковый uint8_t по тому же адресу, затем печатает их оба. В общем-то, вполне наглядно.

    #include <stdint.h>
    #include <stdio.h>
    
    int8_t x = -2;
    uint8_t* y = &x;
    
    int main() {
        printf ("x = %d\n", x);
        printf ("y = %d\n", *y);
    }
    Ответ написан
    Комментировать
  • Где OpenWatcom в Debian!?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Open Watcom использует лицензию, которая считается FSF несвободной и потому OpenWatcom НЕ МОЖЕТ находиться в официальных репах.

    Только мучиться с его компиляцией или ставить через snap.

    См. также https://habr.com/ru/articles/957428/
    Ответ написан
    4 комментария
  • Почему callback_query_handler в telebot не работает?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Вот смотри:

    message: Message

    Чему равно message после такой инструкции? Как по-твоему оно должно работать? Попробуй его напечатать.

    Программировать нужно не методом тыка, а понимая язык, на котором пишешь.
    Ответ написан
    Комментировать
  • Откуда скачивать bitnami/kafka?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Идём сюда:

    https://hub.docker.com/r/bitnami/kafka

    Там на странице находим:

    Important Notice: Upcoming changes to the Bitnami Catalog

    Beginning August 28th, 2025, Bitnami will evolve its public catalog to offer a curated set of hardened, security-focused images under the new Bitnami Secure Images initiative⁠. As part of this transition: ...

    Starting August 28th, over two weeks, all existing container images, including older or versioned tags (e.g., 2.50.0, 10.6), will be migrated from the public catalog (docker.io/bitnami) to the “Bitnami Legacy” repository (docker.io/bitnamilegacy), where they will no longer receive updates.


    Удивляемся, идём сюда: https://hub.docker.com/r/bitnamilegacy/kafka/tags и находим то, что нам нужно.
    Ответ написан
    1 комментарий
  • API Avito передача x-avito-messenger-signature в Webhook по какому алгоритму?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    По длине подписи скорее всего там HMAC-SHA256 с секретным ключом, который указывается при настройке. Если это так, то должны помочь рецепты про такой же способ подписи x-hub-signature-256 из интернетов.
    Ответ написан
    Комментировать
  • FireWall (Linux) для VLESS (Nekoray) и с разными профилями VPN (IP, Port). Как настроить Kill Switch?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Убрать default route в системе. Вручную прописать роуты до необходимых адресов (VPN-сервера, DNS). При падении VPN не будет в системе ни одного лишнего маршрута и трафик не сможет никуда уйти.

    Как вариант, дефолт сделать так: ip route add unreachable default с метрикой больше любого роута в VPN. Либо зарезать средствами iptables. Но это уже средствами network-manager или что там используется может быть сложнее сделать.
    Ответ написан
    Комментировать
  • Реклама в моем телеграм канале без разрешения?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    1. Есть реклама самого телеграма. Выглядит как отдельный рекламный пост (чаще всего в конце канала, но иногда в длинном списке непрочитанных постов может быть и посреди них). Пользователи Telegram Premium эту реклмау не видят, и скорее всего у тебя как раз включён Premium, а у знакомого - нет.

    2. Ещё если пользователь использует сторонний MTProto proxy для подключения в телегу, то телега позволяет прокси показывать пользователю дополнительные "спонсорские" каналы в списке.

    3. Ну и бывают сторонние клиенты, разработчики которых тоже могут пихать свою рекламу. Такой вариант тоже возможен.
    Ответ написан
    3 комментария
  • Как передать реальный IP при переадресации NAT с помощью iptables?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Нужно убрать SNAT в POSTROUTING и на приёмнике маршрутизировать ответные пакеты в VPN. Тогда сервер-получатель будет видеть реальные адреса. Но придётся или весь интернет на той стороне завернуть в VPN (сделать дефолтный роут в VPN, что может быть неприемлемо), или упражняться с policy routing.

    Объяснения по поводу настройки policy routing см. Сложная маршрутизация на linux роутере. Как правильно готовить policy based routing?

    Второй вариант - поставить на VPS nginx и передавать IP в заголовках http. На той стороне доработать/донастроить своё веб-приложение, что оно умело брать IP из заголовка X-Forwarded-For или X-Real-Ip. Но это только для http.
    Ответ написан
    2 комментария
  • Как смонтировать сетевую папку из Windows на чтение и запись без рута в Debian 13?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Можно использовать gvfs-mount или в более новых версиях gio mount, рут не требуется. Для поддержки smb надо будет поставить gvfs-backends. Шара будет смонтирована в ~/.gvfs или /run/user/UID/gvfs. В графических файловых менеджерах (thunar, dolphin, doublecmd итд) должно отражаться как сетевой диск. В них же часто можно вручную подключить smb://-ссылку через строку адреса или отдельный пункт меню и даже добавить её в закладки, чтобы она там всегда была.

    Прям сейчас запустил vlc и нашёл смонтированную таким образом сетевую шару в разделе other locations - networks при открытии файла.
    Ответ написан
    Комментировать
  • Хороший ли вариант использовать Wordpress для API форума?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Если это будет именно "форум", с разделами, темами итд, то нет, WP не очень подходит для этого. У него и дизайн не такой, и структура базы, так что допиливать придётся много. И прямо на php, не такой знакоый js-код на фронте. До кучи, допиливать придётся и плагины. Богатство WP и одновременно его ахиллесова пята - это именно плагины - без них его практически никто не использует, но их регулярно приходится доделывать под многочисленные нюансы конкретной инсталляции. А использование "не по назначению" это очень даже большой нюанс.

    Если же нужно "коллективный блог", как хабр, с "хабами", они же по сути тэги постов, то WP под это допилить всяко проще. чем под форум. Но так как WP изначально индивидуальный блог, то тоже не всё так просто.

    PS: С точки зрения минимизации расходов на инфраструктуру и разработку оптимально вообще не делать фронт-бэк архитектуру и какой-то сложный кастом. Это лишние усилия и ресурсы на внедрение и самое главное поддержание (то, что многие недооценивают!), а большого смысла для собственно "форумной" функциональности тут вообще нет. Поэтому я бы посоветовал ограничиться стандартным популярным движком, подходящим под нужную задачу и активно поддерживаемым разработчиками, а не пилить свой очень слишком мудрый комбайн.
    Ответ написан
    3 комментария
  • Физическое устройство для управления Ubuntu Server?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Если близко к "серверу" есть устройства (монитор/клавиатура/мышь), подключенные к обычному компьютеру или ноутбуку, то простой вариант это поставить KVM Switch. Тогда переключаться на "сервер" можно будет буквально одной кнопкой.
    Ответ написан
  • Продвинутые пользовательские стили сайтов, не ограниченные одним css?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Необязательно использовать юзерскрипты (хотя они тоже бывают полезны), переопределить только css можно с помощью расширения Stylus https://github.com/openstyles/stylus
    Ответ написан
    1 комментарий
  • Как установить библиотеки python вручную?

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

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

    Делаем pip download нужный_пакет, получаем много файлов (с зависимостями). Эти файлы закидываем на целевой хост и устанавливаем по инструкции из интернета "pip install from local directory".

    Я когда-то это делал для сложного проекта, где была такая прорва зависимостей на пару гигов, что вручную можно было бы рехнуться. Для наибольшего успеха желательно иметь аналогичную среду - в моём случае нужна была конкретная версия centos7, поэтому я использовал образ докер вот так:

    docker run -it --rm -v `pwd`/pkg:/pkg centos:7.7.1908


    Внутри ставил python3.6, всякие нужные библиотеки (мне там нужно было ldap, postgres-devel и всякое такое) и делал pip download в /pkg.

    В целом, можно и свой микрорепозиторий пакетов сделать вместо pypi.

    Таков путь.
    Ответ написан
    Комментировать
  • Как настроить доступ к сайту?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Поддержка же ответила. Запускать надо на порту 8000:

    python manage.py runserver 0.0.0.0:8000

    UPD: Оказалось проблема в firewall (ufw).
    Ответ написан
    2 комментария
  • Как отправить подарок от имени бота телеграм?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Метод есть: https://core.telegram.org/bots/api#sendgift

    Если в любимой библиотеке этот метод ещё не реализовали в свежей версии, всегда можно вызвать метод напрямую мимо библиотеки:
    https://api.telegam.org/bot{TOKEN}/sendGift?user_id={id_юзера}&gift_id={id_подарка}&pay_for_upgrade=True


    Тут pay_for_upgrade управляет тем, оплатит ли подарок бот со своего баланса или юзеру придётся самому его оплатить.
    Ответ написан
  • Как в контейнере opensuse/tumbleweed добавить локаль 866?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Внутри контейнера надо отдельно сгенерировать эту локаль:

    localedef -i ru_RU -f IBM866 ru_RU.IBM866

    (тут локаль будет названа ru_RU.IBM866, но можно назвать как угодно, в том числе ru_RU.CP866 upd: лучше так не делать и оставить имя с названием кодировки по умолчанию, см. комментарии).

    Рецепт работает в любом Linux, но в минималистичных образах обычно много чего вырезают для уменьшения размера, поэтому каталог /usr/share/i18n пустой или значительно подчищен. В случае с opensuse нужно доустановить пакет glibc-i18ndata.

    Образец Dockerfile:

    FROM opensuse/tumbleweed
    
    RUN zypper in -y glibc-i18ndata && localedef -i ru_RU -f IBM866 ru_RU.IBM866
    ENV LC_ALL=ru_RU.IBM866
    Ответ написан
    8 комментариев
  • Как передать UTM-метки с сайта в AMO Crm через Whatsapp?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Нельзя. В WhatsApp Business API максимум можно сохранить реферал из фейсбучной рекламы (если клиент придёт из неё), просто ссылку повесить и получить из неё какие-то параметры даже там не получится.

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

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Отредактировать сообщение с заменой клавиатуры:
    msg = bot.send_message(chat_id=my_chat_id, text='Привет', reply_markup=первая_клавиатура)
    bot.edit_message_text(chat_id=my_chat_id, message_id=msg.message_id, text='Привет ещё раз', reply_markup=вторая_клавиатура)
    Ответ написан
    Комментировать
  • Как сделать так, чтобы рамка не разрывалась между страницами?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Самое простое - обернуть в \begin{samepage} ... \end{samepage}. Это может помочь.

    Но это, строго говоря, не гарантирует неразрыв всего блока, а лишь делает "высокий штраф" на разрыв внутри него.

    Можно также вручную напихать внутрь блока \nopagebreak между всеми абзацами или использовать хуки (в достаточно новом LaTeX) как в этом ответе.
    Ответ написан
    Комментировать
  • Безопасно ли загружаться с загрузочной дискеты MS-DOS?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Поддержка NTFS есть только сторонними средствами (кажется, от Paragon Software например).

    Поддержка LFN на FAT есть с помощью сторонней утилиты doslfn. Но работает не особо эффективно и ещё кажется оно не умело в кэширование с диска, что очень чувствовалось. Нужно ещё понимать, что крайне мало софта для DOS умеет работать с LFN, буквально редкие экземпляры. Типа DOS Navigator и самых последних версий Volkov Commander.

    Кстати, я ещё находил какое-то решение, которое позволяло некоторые консольные win32-приложения запускать в DOS. В частности, после отключения пары неработавших плагинов завёлся Far 1.7 и даже с поддержкой LFN.

    Кэширование нативное в DOS отсутствует полностью, и это весьма заметно, что все операции синхронно производятся с диском. Но есть сторонние средства, в том числе решение от Microsoft - smartdrv.

    Если специально ничего не делать деструктивного, то DOS просто не будет видеть разделов NTFS вообще и ничего не сломает.

    В целом, если хочется поддержки NTFS, более перспективно LiveCD с виндой. Я когда-то сто лет назад для себя сделал из XP упрощённый LiveCD с одним cmd.exe в качестве Shell, который запускался на тестовой виртуалке всего с 24 Мб оперативной памяти. Вполне годится для замены Recovery Shell в случае если он не запускается.
    Ответ написан
    Комментировать