Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
zenwalker

Макс

0xABADBABE
  • 56
    вклад
  • 0
    вопросов
  • 61
    ответ
  • 34%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Как я могу настроить суточные лимиты для пользователей телеграм бота?

    zenwalker
    Макс @zenwalker
    0xABADBABE
    Не совсем понятно, зачем вам здесь БД. Реализуйте token bucket в памяти, уничтожайте его раз в сутки. Подход с горутиной сработает.
    Ответ написан более года назад
    Комментировать
    Комментировать
  • Что будет за использование чужих ассетов в проекте с открытым исходным кодом?

    zenwalker
    Макс @zenwalker
    0xABADBABE
    Как я должна указывать права на эти самые ассеты и могу ли вообще их использовать?

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

    Репозиторий под открытой лицензией

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

    Какие последствия этого и можно ли как-то через упоминание автора избежать писем добра?

    Упоминание автора вы можете сделать только при условии, что он на это согласен: либо ввиде пункта в тексте лицензии (то есть там есть пункт а-ля «разрешено использовать при наличии ссылки на автора»), либо ввиде личного согласия автора о том, что он не будет иметь претензий к такой форме использования.

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

    P.S.: Не юрист.
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • При добавлении Count выбивает ошибку: 'int' object is not iterable. Выводится JSON. Нужно узнать количество объектов.Как быт??

    zenwalker
    Макс @zenwalker
    0xABADBABE
    0. оформляйте код правильно
    1. get_queryset должен возвращать именно QuerySet. Вы возвращаете Count
    1. скорее всего вы хотите q.count(). Count — агрегатная функция, используемая в agregate и annotate, что немного другое.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как сделать авторизацию на сайте, через переадресацию на ЕСИА(Гос-услуги)?

    zenwalker
    Макс @zenwalker
    0xABADBABE
    https://partners.gosuslugi.ru/catalog/esia
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Почему не работает POST запрос?

    zenwalker
    Макс @zenwalker
    0xABADBABE
    Сообщение об ошибке говорит о том, что у вас где-то всплыл нулевой указатель. Скорее всего здесь:

    res, err := client.Do(req)
    defer res.Body.Close()


    Вы не сделали проверку err на пустоту, при этом res.Body = nil, так что defer не может найти функцию Close у того, чего нет. В этом err уже будет содержаться ошибка, описывающая, что именно пошло не так. Я подозреваю, что дело в адресе:

    url := "localhost:6000/..."

    Адрес указан без схемы, там должен быть http:// или https://.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как создать виртуальное окружение с устаревшей версией python?

    zenwalker
    Макс @zenwalker
    0xABADBABE
    Используйте утилиту virtualenv для создания окружения, в ней можно явно указать бинарник питона, который будет использоваться.

    virtualenv -p python3.6 venv
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как отправить запрос к сайту с каждой строчкой из файла?

    zenwalker
    Макс @zenwalker
    0xABADBABE
    Чтение файлов: https://gobyexample.com/reading-files
    Работа с HTTP: https://gobyexample.com/http-clients
    Запись файлов: https://gobyexample.com/writing-files
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как с помощью requests.get(url) убрать по бокам \n и b?

    zenwalker
    Макс @zenwalker
    0xABADBABE
    response.text.strip()
    Ответ написан более трёх лет назад
    5 комментариев
    5 комментариев
  • Почему данный код работает не правильно?

    zenwalker
    Макс @zenwalker
    0xABADBABE
    Не разбирался, но вы что-то совсем намудрили с переводом числа в строку.
    Кратность числа можно узнать через деление по модулю (оператор %)

    n % 3 == 0
    n % 5 == 0

    решение задачки

    result = 0
    for n in range(1000):
        if n % 3 == 0 or n % 5 == 0:
            result += n

    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Почему сервер на Docker не справляется с aiohttp запросами?

    zenwalker
    Макс @zenwalker
    0xABADBABE
    1. Если docker на сервере стоит за nginx или другой проксей, там может быть выставлено ограничение на ответ бэкенда (у nginx по умолчанию 30 сек), после чего соединение рвется, а клиент получает 504.

    2. aiohttp применен не к месту, вызываемая здесь https://github.com/rahiel/open_nsfw--/blob/master/... функция classify() — не асинхронная и будет блокировать процесс, до тех пор, пока не завершится. Одним словом, у вас обычное однопоточное приложение, из коробки несколько одновременных запросов такое решение обработать не сможет. Нужно либо запускать несколько контейнеров, с балансировщиком перед ними, либо как-то менять подход, например запускать классификатор в отдельном пулле процессов через loop.run_in_executor() или разнести API и классификатор в разные сервисы, поставив между ними очередь сообщений.
    Ответ написан более трёх лет назад
    5 комментариев
    5 комментариев
  • Django 2. Как сделать чтобы форма регистрации наследовалась от 2 моделей, например встроенной модели user и моей модели UserProfile?

    zenwalker
    Макс @zenwalker
    0xABADBABE
    Создайте Form (не ModelForm а просто Form) с нужным вам набором полей. Реализуйте в нем метод save, где указанные поля разложите в нужные модельки.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как с 0 выучить английский до уровня intermediat?

    zenwalker
    Макс @zenwalker
    0xABADBABE
    Репетитор по скайпу для меня так же не зашел, качество звука ужасное, связь тормозит, час занятий — ничтожно мало, нужно как минимум два.

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

    zenwalker
    Макс @zenwalker
    0xABADBABE
    1. В комментарии к одному из ответов вы упомянули, что используете db_index=True, но для полнотестового поиска вам нужен специальный индекс. Покурите вот этот раздел документации постгреса: https://www.postgresql.org/docs/9.5/static/textsea...

    2. Избавьтесь от запроса name_rus__iexact=name_rus, ваш SearchVector это покрывает.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Почему после запуска Celery не возобновляет невыполненную задачу?

    zenwalker
    Макс @zenwalker
    0xABADBABE
    Не понимаю, с чего вы взяли, что задача должна продолжить выполнение. Воркер вытащил задачу из очереди. Если после этого он внезапно умер, обратно в очередь она не вернется.

    Про правильную остановку воркеров, чтобы они не умирали посреди выполнения задач, читайте в доках: docs.celeryproject.org/en/latest/userguide/workers...
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как визуализировать расстояния с помощью Python?

    zenwalker
    Макс @zenwalker
    0xABADBABE
    Раз вы рассматриваете API карт Яндекса/Гугла, то задача тут скорее про JavaScript, а не Python. Посмотрите документацию к API карт. Нарисовать точки, по событию клика — нарисовать линии, все довольно тривиально. На готовое решение рассчитывать не стоит.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Залить Проект на Github?

    zenwalker
    Макс @zenwalker
    0xABADBABE
    Так написано же, сделай
    git push --set-upstream origin master
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как правильно сформировать ссылку на скачивание файла?

    zenwalker
    Макс @zenwalker
    0xABADBABE
    Добавьте эту директорию в urls.py. Следующим образом:
    import os
    from django.conf import settings
    from django.conf.urls.static import static
    
    urlpatterns = [
        ...
    ]
    
    urlpatterns += static('/reports/', document_root=os.path.join(settings.BASE_DIR, 'reports'))

    Подробнее можно почитать здесь.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как скрестить Django + Tornado?

    zenwalker
    Макс @zenwalker
    0xABADBABE
    Официальное решение для вебсокетов в Django — Channels.
    По сути, отдельный сервер, который общается с джангой через редис.
    Ответ написан более трёх лет назад
    12 комментариев
    12 комментариев
  • Как сменить язык пользователю на сайте Django?

    zenwalker
    Макс @zenwalker
    0xABADBABE
    Вместо 'django_language' используй константный LANGUAGE_SESSION_KEY из django.utils.translation. Думаю проблема в этом. Сейчас ты сохраняешь яызык в сессию под каким-то левым ключем. У LANGUAGE_SESSION_KEY не такое значение.

    from django.utils.translation import LANGUAGE_SESSION_KEY
    
    def select_lang(request, code):
        ...
        request.session[LANGUAGE_SESSION_KEY] = code
        ...
    Ответ написан более трёх лет назад
    3 комментария
    3 комментария
  • Как Вы измеряете быстродействия кода на Python?

    zenwalker
    Макс @zenwalker
    0xABADBABE
    Самый простой вариант — посчитать разницу времени до и после выполнения.

    import time
    
    start = time.time()
    your_code_here()
    end = time.time()
    print(end - start)
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • 4
  • Следующие →
Самые активные сегодня
  • solidcreature
    Николай Миронов
    • 10 ответов
    • 0 вопросов
  • Drno
    • 6 ответов
    • 0 вопросов
  • rPman
    • 6 ответов
    • 0 вопросов
  • Mike_Ro
    Михаил Р.
    • 6 ответов
    • 0 вопросов
  • mayton2019
    • 5 ответов
    • 0 вопросов
  • SoreMix
    soremix
    • 3 ответа
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации