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

    shurshur
    @shurshur
    Святослав Хусамов, так советы те же: пусть бизнес решит, сколько он может брать с потребителей, чтобы и свои расходы покрывать, и потребители не убежали к конкурентам. Это очень тонкий вопрос.

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

    shurshur
    @shurshur
    DollyPapper, есть системный вызов select (а также poll и некоторые другие реализации примерно того же). Суть их в том, что передаётся массив файловых дескрипторов, и либо в некоторых случаются события - тогда системный вызов досрочно возвращает программе список тех, где они произошли - либо случается таймаут. Собственно, event loop содержит в себе список всех асинхронных дескрипторов ввода-вывода (сеть, файлы, консоль итд), и когда программа вызывает операцию, явно или неявно дёргающую асинхронный движок, тот делает select на всё что у него есть и затем передаёт управление какой-то из тех задач, где произошёл ввод-вывод. Собственно, становится понятно, почему если операций, относящихся к движку, в программе мало, то асинхронный подход работает плохо.
  • Какой дистрибутив linux выбрать для домашнего сервера?

    shurshur
    @shurshur
    CityCat4, CentOS и сейчас есть. Как на него повлияло изменение способа сопровождения - это другой вопрос.

    Сам systemd - это именно технический вопрос. А вот его волевое внедрение хотя бы в один дистрибутив - это вопрос политической решительности.

    Человек, который не понимает весь спектр проблем и задач, которые стоят перед системой инициализации, вряд ли сможет понять, почему на самом деле мир Linux перешёл на systemd. Ну, вот, скажем, в Debian есть start-stop-daemon, а в RH - daemon - и они ни фига не одинаковы. А что есть в других дистрибутивах? Весь этот зоопарк поддерживать в софте неудобно, поэтому init-скрипты чаще всего ничего этого просто не использовали, а применяли самые тупые работоспособные решения-костыли для запуска и ни одного решения для поддержки упавшего сервиса.

    А что делать для того, чтобы переопределить параметры сервиса? В Debian это /etc/default, в RH - /etc/sysconfig, в Gentoo - /etc/conf.d...

    В systemd решено большое количество задач, которые реально встречаются. Параллельный запуск, сложные зависимости, управление ресурсами, override описания, отслеживание падения и перезапуск...

    Если говорить о сколько-нибудь развитых альтернативах systemd, то можно вспомнить openrc. В нём есть параллельный запуск, который по умолчанию отключен. Не знаю уж как сейчас, а несколько лет назад он феерически глючил... Зато да, всё на bash-скриптиках, сложные зависимости, большие возможности для кастомизации через описание функций, и вообще в Gentoo всегда очень много делали интересных штук. Но это уже не sysvinit, он там фактически только запускает openrc и больше никак не используется.
  • Снижается версия Python почему?

    shurshur
    @shurshur
    Почти всё верно, за исключением того, что activate считывается через source в контекст текущего bash, а не запускает отдельный.
  • Какой самый дешевый сервис для отправки уведомлений в Viber?

    shurshur
    @shurshur
    Александр Степанов, минимальный месячный прайс - это требование самого Viber. К сожалению.
  • Как рассчитать дифференциальную оплату за услугу несколькими потребителями?

    shurshur
    @shurshur
    Святослав Хусамов, например, оказываем услуги хостинга, P1 - цена за аренду места в стойки, P2 - цена за киловатт-час электричества, P3 - цена за террабайт трафика. Какие цены задать? А фиг знает. Пусть бизнес сам решит, какие цены выставить, исходя из своих расходов и реалий рынка. Тут нет никаких секретных механизмов.
  • Снижается версия Python почему?

    shurshur
    @shurshur
    EVG82, когда мы вызываем activate, virtualenv активируется в текущей сессии. При закрытии сессии и повторном логине virtualenv не действует. Это довольно заметно, кстати, по наличию имени virtualenv в приглашении командной строки (virtualenv так уже много лет делает).

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

    shurshur
    @shurshur
    Богдан Николенко, pass_context давным-давно не нужен этому декоратору. Проблема совем не в этом, и в другом ответе её указали правильно.
  • Правда ли что операции с 8 битными числами происходят медленнее, чем с 64 битными?

    shurshur
    @shurshur
    Евгений Обыкновенный, что мешает написать тривиальный benchmark для проверки этого утверждения применительно к указанным операциям?
  • Какой дистрибутив linux выбрать для домашнего сервера?

    shurshur
    @shurshur
    pfg21, но почему-то все популярные дистрибутивы, кроме отдельных редких, на systemd перешли. Потому что профит от его использования есть.
  • Может ли Telegram бот читать каналы?

    shurshur
    @shurshur
    Александр Дио, это API, используемое клиентами Телеграма (десктопными, мобильными, а также альтернативными типа Telegram X). Там другой протокол, бинарный, и есть отдельные библиотеки, которые его реализуют (например, tdlib, ну или популярна библиотека telethon для python).
  • Как просмотреть файл прошивки .bin?

    shurshur
    @shurshur
    Для начала погуглить на тему эмулятора этого устройства. Для некоторых могут найтись. Например, есть цископрошивки, которые можно запускать в dynamips.
  • Как покинуть discord сервер по его идентификатору в discord.py?

    shurshur
    @shurshur
    LimeGeeg,

    В первом трейсе вызывается несуществующий leave_guild

    Во втором guild имеено неопределеное значение, а не экземпляр класса discord.Guild.

    А вот как примерно надо делать выход:

    guild = bot.get_guild(id_гильдии)
    await guild.leave()
  • Где посмотреть идеи для проекта OpenSource?

    shurshur
    @shurshur
    nik19, обычно люди объединяются на почве каких-то интересов или работы над похожими задачами. Например, кто-то запилил ценную (для себя) утилиту и опубликовал её на гитхабе, другому она весьма пригодилась, но после доработок, и он вернул свои улучшения через PR автору. Или вот сидят какие-то люди в дискорде на некоторую тематику и решают чёта вместе запилить. Они для этого не идут на специальный ресурс абстрактной направленности, ориентированный на инициативное создание принципиально новых опенсорсных проектов. Поэтому таких и нет, в общем-то.

    О том, как проекты появляются, могу на примере одного своего рассказать. Есть в телеграме чатик людей, интересующихся языками. Там некоторые научились писать на глаголице (альтернативная кириллице славянская письменность, давно исчезнувшая). Проблема в том, что её мало кто понимает (это ж выучить ещё один совершенно незнакомый алфавит надо). Поэтому были жалобы и даже требования запретить писать глаголицей в чате. И кто-то предложил написать бота, который будет глаголицу переводить. Я заинтересовался и предложил написать. Первая версия бота была очень короткой и очень простой, но зато правило про непонятные письменности появилось ("нельзя много писать непонятной письменностью, если в чате нет для неё бота"). Потом я уже ради интереса расширил бота, добавил в него интерактивное меню с кнопками, настройки для конкретного чата, inline-режим и некоторые другие интересные штуки. Теперь есть поддержка русского и украинского языка, а также ещё одна шуточная кириллическая письменность - "тифинагица" (тифинаг - письменность африканских берберов, восходящая к древнеливийскому письму). Также я написал дискорд-версию, которая сначала была такой же простой и убогой, как первая версия телеграм-бота, но теперь тоже имеет и менюшку, и настройки, и вообще очень красиво и клёво, самому приятно. А начиналось всё со спонтанного "а не сделать ли такую штуку бряк-бряк за пару вечеров?"

    И всё это опубликовано на гитхабе, потому что мне не жалко, а люди иногда могут и ценные улучшения предложить.
  • Как избежать ошибку How to avoid HTTP error 429?

    shurshur
    @shurshur
    avdoshka89, ограничения часто работают примерно так: первые, скажем, 100 запросов ограничения нет, а начиная со 101 берётся среднее число запросов в окне 10 минут и требуется, чтобы было не более 10 запросов в минуту, например. Тогда если сделать 100 запросов разом, то следующие 10 минут все запросы будут вызывать ошибку, сколько ни ограничивай их количество. Так что это не показательно.
  • Как сделать смену inline menu по нажатию на кнопки в TelegramBot (TeleBot)?

    shurshur
    @shurshur
    Nick Sl, просто создать клавиатуру заново, содержащую кнопки текущего контекста.
  • Как переделать условие на python 3.10?

    shurshur
    @shurshur
    Yrets169, по коду кажется, что второй if надо сдвинуть внутрь первого. Но в целом приведённого куска недостаточно для понимания, что именно ожидается.