• Как правильно использовать Docker в Ubuntu?

    Alex_Geer
    @Alex_Geer
    System Engineer
    Есть удобный инструмент предоставляющий web-gui для управления docker.
    portainer.io

    А вообще что может быть лучше и удобней терминала? Все же предельно удобно и понятно. Все ошибки как на ладони. Ни чего не упустишь. Советую привыкать к терминалу. Это лучшее решение.
    Ответ написан
    Комментировать
  • Как заблокировать все функции бота пока пользователь не подпишется на канал?

    @Everything_is_bad
    пробовал реализовать это через глобальную переменную
    да когда вы уже поймете, что вам нужно персистеное хранилище (а глобальными переменные новички вообще пользоваться не умеют), упал твой бот или ты его перезапустил, всё, обнулилась твоя переменная. Используй нормальную СУБД, причем не sqlite, с ней будет проблема, потому что боты работают в конкурентной среде, а тут еще и async
    Ответ написан
    2 комментария
  • Что я делаю не так Python?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    знатоки, которые подскажут, что я забыл

    Вы забыли изучить особенности работы вашей операционной системы с типами файлов.
    Вам нужно прописать ассоциацию *.py файлов с python.
    Однако в любом случае это странный способ запускать питоновские скрипты. Обычно это делают в консоли через venv.
    Но так как вы хотите тоже можно, конечно. Для очень специфических нужд...
    Гуглите, короче, как прописывать ассоциации файлов в вашей системе.
    Я в винде ничего не делал уже лет 10, не помню где там оно.
    Ответ написан
    Комментировать
  • Зачем использовать свою АТС, если есть облачная?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    которая гораздо удобнее и легче в настройке
    Ровно до тех пор, пока у вас не появляются нестандартные запросы. Например, перевод входящего звонка в зависимости от графика работы подразделений, меняющегося по праздникам и выходным. Или использование нескольких очередей с самостоятельной регистрацией в них операторов и интерфейсом, отображающим отвеченные и пропущенные звонки в этой очереди. Или дать возможность регистрироваться под одним номером с нескольких телефонов (рабочий аппарат сотрудника, софтфон на смартфоне сотрудника, софтфон на домашнем компьютере сотрудника). Или связать напрямую свой Asterisk с Asterisk организации-партнёра/клиента для прямых звонков.
    Чистый Asterisk очень гибок в настройке, способен работать напрямую с базами данных, LDAP/AD и запускать внешние скрипты.
    Ответ написан
    3 комментария
  • Как замаскировать переменную внутри контейнера?

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

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

    Поэтому, сейчас всё чаще используются специальные сервисы по хранению секретов.
    Я вам рекомендую посмотреть, например, в сторону Hashicorp Vault и его Dynamic Secrets:
    https://www.hashicorp.com/products/vault

    Вот статья об интеграции в Gitlab:
    https://docs.gitlab.com/ee/ci/examples/authenticat...

    Видео о том, что это такое, и как это работает:
    https://youtu.be/VYfl-DpZ5wM?si=SutHlBsLe70qCIVm
    На русском: https://youtu.be/-HIy89Vyobg?si=O4e8AL1SSCm8ImV1
    Ответ написан
    1 комментарий
  • На каком виртуальном сервере процессор мощнее?

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

    @rPman
    Во первых, виртуальные серверы не подходят для числодробилок (исключение - использование GPU или других сопроцессоров типа FPGA, там обычно они делятся по честному), потому что физический сервер будет разделен между несколькими пользователями, и даже если ты наберешь тарифным планом максимальное количество процессоров/ядер, часть ресурсов (для серверных - 3-5%, а для десктопных железок до 10-30% в очень специфических случаях) будут тратиться на обслуживание виртуализации.

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

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

    Поэтому правильный ответ - процессор мощнее на физическом железе (bare metall) без виртуализации. При необходимости, для своих нужд, ты сможешь на нем запустить систему виртуализации (или лучше паравиртуализации).

    p.s. тебе верно советуют, не смотреть на гигагерцы.
    Все очень зависит от того как и какая задача запускается. Оптимизация кода, выбор архитиктуры (например 32-битная на 64-битной будет работать по другому, где то хуже где то лучше), глобальные параметры (размеры буферов пакетной обработки, количество запущенных воркеров/потоков, настройки кеширования и тюнинг файловой системы ос или выбор конфигурации хранилища,..). Это вопрос исследования, и только эксперименты могут дать какой то адекватный ответ. Еще раз - тестируй на реальном железе.
    Ответ написан
    Комментировать
  • Есть ли способ восстановить перезаписанный, а не удаленный файл?

    @rPman
    за много много денег можно попытаться что то сделать, если ssd диск был обесточен как можно быстрее после удаления и отнесен в соответствующюу фирму.

    Там специалисты должны выпаять чипы памяти (или подключиться к ним с помощью специализированного железа и софта) и проанализировать их содержимое.

    Внутри ssd есть своя как бы файловая система, скорее всего похожая на cow, где каждая следующая запись пишется в новое место, даже если это один и тот же сектор с точки зрения пользователя (это нужно для равномерного распределения записей по ячейкам), значит можно раскрутить этот лог назад, если система не успела исполнить для этих участков trim. Но, к сожалению, записи происходят сразу по всему объему диска (современные чипы памяти это многоуровневые цепочки бит, запись которых происходит циклически, первые биты записываются быстро, последующие биты в цепочках - медленно, когда происходит запись, сначала контроллер пишет данные в каждые первые биты этих цепочек и запускает фоном процесс перераспределения, чтения записанных данных в первые биты и перезапись их в глубь каждой цепочки, это медленнее, как минимум именно так реализуют кеширование записи на дешевых пользовательских накопителях (а может и на всех). Именно поэтому примерно 20% свободного места на диске будут записаны на максимальной скорости а затем скорость упадет в десяток раз именно потому что свободных 'первых бит' не остается и контроллер ждет окончание перераспределения.

    p.s. напоминаю, что любые операции записи на этот диск уменьшают шансы восстановления данных, например если на этом диске хранится ОС и был ее запуск, или на этот же диск устанавливал приложения для восстановления данных.
    Ответ написан
    Комментировать
  • Как настроить автоматическое подключение к wireguard при включении сервера?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Добавить systemd-юнит с запуском wg и сказать ему systemctl enable <service-name>.
    Ответ написан
    Комментировать
  • Как убрать фиксированную вложенность в VS Code?

    Get-Web
    @Get-Web
    Front-End Developer
    В конфиг настроек добавить:
    "editor.stickyScroll.enabled": false

    Либо открываем Файл > Настройки > Параметры (CTRL+,), находим Editor>Sticky Scroll: Enabled, убираем галочку:
    66074370ce502720488745.jpeg
    Ответ написан
    Комментировать
  • Возможно ли установить VLESS XTLS Reality клиента на Mikrotik rb5009?

    b1ora
    @b1ora
    Настройка Микротик РФ
    RB5009 поддерживает контейнеры
    Можно попробовать через него
    Ответ написан
    Комментировать
  • Бот дискорда падает в Rate limited, что делать?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    Начни с документации
    Давайте по порядку. В документации дискорда очень четко прописаны лимиты для вебсокета и чуть менее четко для HTTP. Цитировать оттуда не буду, думаю там все понятно.

    В общем виде ошибка 429 говорит, что в один из двух лимитов вы не укладываетесь. Чтобы не происходила ошибка можно перед выполнением действий проверять блокировку через AutoShardedClient.is_ws_ratelimited, но это не лечение проблемы, а только обработка.
    Для лечения нужно перехватывать ошибку в глобальном обработчике и по стеку вызовов смотреть на каком действии она происходит. Если приложите стектрейс к запросу, можно будет по нему сказать конкретнее. Только убедитесь чтобы логи не обрезались как у вас выше. Может быть и так было бы понятно, но эндпоинт https://discord.com/api/v10/channels/1215300998588... весь не видно. Учитывайте что она может и в разных когах происходить об этом ниже.

    В целом дискорд не любит, когда боты делают что-либо без явных действий пользователя. Причем чем больше бот, тем строже, поскольку для них это больше нагрузки. К примеру в коде, который вы приложили есть обновление статуса каждые 10 секунд. Будем объективны, пользователям плевать что у бота в статусе, но эти запросы так же идут в общий рейт лимит. Я бы советовал поставить или большое значение (5-10 минут) или вообще избавиться от этой карусели.
    Аналогично пройдите по остальному коду, который не приложен и посмотрите есть ли периодические запросы без явных команд: например обновления каких-нибудь сообщений по таймерам. Если есть увеличивайте таймеры в 2 раза (повторять до исправления) или подумайте как предоставлять функционал без этого.
    Ответ написан
    2 комментария
  • Как создать правильно API запрос на Python?

    @o5a
    Ошибка в том, что вместо запятых в тексте должны быть &.
    Но лучше вообще вручную так строку не составлять. Для этого есть встроенная функция, которая сама конвертирует в строку, а заодно учтет и кодирование для спецсимволов и кириллицы.

    from urllib.parse import urlencode
    
    params = {
        "text":  'russia',
        "day": 1,
        "month": 1
    }
    
    param_str = urlencode(params)
    # формируем полную ссылку
    api_url = f'https://api.api-ninjas.com/v1/historicalevents?{param_str}'
    print(api_url) # https://api.api-ninjas.com/v1/historicalevents?text=russia&day=1&month=1
    Ответ написан
    3 комментария
  • Какую книгу порекомендуете для изучения auditd Linux?

    r1412s
    @r1412s
    Если люди будут писать книги на каждую утилиту сисадмина то не знаю...
    Есть man auditd,есть статейки неплохие https://habr.com/ru/articles/553036/
    Ответ написан
    Комментировать
  • Как найти первую стажировку или работу джуна по python?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Не нужно искать стажировку.
    С учетом что у тебя нет коммерческого опыта (шансы работа) / (шансы стажировка) > 1

    2. При поиске работы не нужно откликаться только на вакансии без опыта, откликайся на все ну и что, что у тебя будет автоматических отказов > 99 процентов, есть еще 1. Некоторые вакансии предполагают выполнение тестовых заданий. В некоторых вакансиях написано требуется опыт при этом зарплата сильно ниже рынка. Твоя первая задача это научится хоть какой-то фидбек получать от потенциального работодателя, созвон хотя бы. Стремись попасть на собеседование даже если у тебя нет шансов его пройти.

    3. Говори что официально не работал, но есть не официальный опыт. Сделай порфолио, что бы было что показать в резюме.

    С таким подходом на каждые 200 откликов твоя ожидаемая величина 2-5 потенциальных фидбека, 0-2 собеседования. Дальше, как справишься. Подводя итог, когда некое событие маловероятно то лучший рецепт это активность. Не нужно самому добровольно себя обесценивать. Скорее всего рынок заплатит тебе мало, но это совершенно не одно и тоже, когда ты сам, себя обесцениваешь подходом дайте шанс, я почти ничего не умею, но научусь и т.д. и т.п.
    Ответ написан
    1 комментарий
  • Можно ли настроить роутер так, чтобы ip адрес не менялся каждый раз?

    NeiroNx
    @NeiroNx
    Программист
    Можно, обращаетесь в поддержку провайдера и говорите "я хочу статический ip адрес".
    Ответ написан
    21 комментарий
  • Веб-приложение на Django и фоновый процесс обработки данных, как сделать?

    @Everything_is_bad
    2 или 3
    Ответ написан
    Комментировать
  • Как перенаправить траффик отдельного python скрипта через VPN?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Может есть какой то способ перенаправить траффик отдельного файла через США (где взять этот айпишник или что там нужно)?

    1. Найти proxy/vpn с нужным регионом.
    2. Python usage proxy example или перенаправлять трафик локально средствами os или программ по типу wireshark.
    Ответ написан
    2 комментария
  • Какой поставить прокси на предприятие?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Локальная PKI у вас развёрнута, для начала? Иначе не знаю, чего вы там при повсеместном, слава тебе, господи, распространении HTTPS, собираетесь контролировать.

    Сквид не устарел.
    Ответ написан
    3 комментария