• Надо ли конвертировать картинки в webp?

    neuotq
    @neuotq
    Прокрастинация
    Если у вас огромный трафик и стоит задача решить проблему снижения объемов то да. Нужно думать как генерировать webp, с учетом обратной совместимости и тп. Сейчас ему на смену готовится выйти еще больше оптимизированный AVIF(он на основе нового видео формата), который скорее всего его победит, как более универсальный и менее привязанный к Google.
    А так помним. Любая работа это деньги и время. Может вам лучше вложить это в другие, более важные для вашего проекта направления?
    Ответ написан
    Комментировать
  • Есть ли разница, в каком месте указывать all()?

    fox_12
    @fox_12 Куратор тега Django
    Расставляю биты, управляю заряженными частицами
    Этот вопрос раскрывается тут.

    .all() возвращает копию текущего QuerySet для последующей фильтрации или передачи в менеджер модели, когда нужно получить именно QuerySet

    Помимо этого - этот QuerySet кешируется, поэтому если данные в БД изменились - можно получить результаты повторно вызвав .all() для выражения.

    .filter() также возвращает QuerySet

    Поэтому записи означают:
    Entry.objects.all().filter(pub_date__year=2006) - получить копию queryset, и вернуть отфильтрованный queryset
    Entry.objects.filter(pub_date__year=2006).all() - получить отфильтрованный queryset и вернуть копию этого queryset

    а поскольку .filter() и так возвращает отфильтрованный queryset - то .all() в данном случае можно опустить

    type(Entry)
    class 'django.db.models.base.ModelBase'
    
    type(Entry.objects)
    class 'django.db.models.manager.Manager'
    
    type(Entry.objects.all())
    class 'django.db.models.query.QuerySet'
    
    type(Entry.objects.all().(pub_date__year=2006))
    class 'django.db.models.query.QuerySet'


    синтетический пример:
    query = Entry.objects   # - в query менеджер некоей модели
    
    for obj in query.all():  # вывели объекты
        print(obj)
    
    ... # тут к примеру проделали определенные манипуляции с некоторыми объектами
    
    for obj in query.all():  # вывели обновленный список объектов
        print(obj)
    Ответ написан
    Комментировать
  • Как создать сайт на GitHub Pages, в адресе которого нет репозитория?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    Если так хотите:
    5e6b631e8cdbf757181036.png
    тогда:
    5e6b63379e1b2511074908.png
    Обратите внимание на то, что когда вы загрузите в репозиторий index.html, нужно некоторое время подождать, пока он появится на GitHub Pages.
    Ответ написан
    Комментировать
  • Сколько предметов может хранить сервер в игре?

    @majstar_Zubr
    C++, C#, gamedev
    Во-первых, ознакомьтесь с моделью памяти C#, как работает сборщик мусора, какие есть кучи, как они заполняются и опустошаются, как работать с IDisposable, using, и оборачивать unmanaged ресурсы.

    Потому что на самом деле есть выбор: делать сервер на .Net либо на LLVM. В принципе, на LLVM garbage collector свой, и напридумать модно много чего интересного.

    Во-вторых вам нужно разобраться в архитектуре ОС. Дело в том, сервер не может "рухнуть" из-за каких-то абстракций, он может начать захватывать слишком много памяти, и в зависимости от настроек ядра и окружения вашего Linux, в котором запущен процесс сервера, могут происходить разные вещи, которые ограничены лишь с вашими желаниями.

    Но стоит так же упомянуть, что в зависимости от выбранной стратегии обработки соединений

    ( а относительно игровых движков, это просто сводится к названию используемых библиотек)

    1 инстанс сервера может держать 100к соединений, но ваш игровой room может обслуживаться и многими нодами, не обязательно одной. Более того, у вас может быть не одна nosql база данных, а целый кластер.

    Другими словами, вам стоит ознакомится с концепциями ACID, кластеризацией и микросервисной архитектурой. В завершение можете почитать про Kubernetes.

    Когда вы проработаете эти темы, вы сможете уточнить свой вопрос до конкретных технических требований и сами сможете на него ответить.

    PS: Касательно максимума соединений к абстрактным коням в вакууме, считается, что один демон, держащий 10к соединений - это граница highload. В конкретных цифрах обычно все сводится к доле процессорного времени за интервал допустимой задержки ответа сервера на конкретной платформе включая конкретное железо и конкретную сетевую карту + тесты доступа из точек по всей планете.
    Ответ написан
    Комментировать
  • Яндекс.Практикум - 1 урок. Функции. Python-разработчик. В чем проблема???

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Проблема в том, что вы не учитесь. Если мы этот практикум за вас решать будем, то и python-разработчиками тоже мы станем, а не вы.
    Ответ написан
    7 комментариев
  • Способ пакетной обрезки изображения?

    Zoominger
    @Zoominger
    System Integrator
    XnConvert поковыряйте, он должен помочь в вашем воровстве.
    Ответ написан
    Комментировать
  • Почему такая ситуация с координатами примерного местоположения в Google аккаунте?

    @granty
    Узнать достоверно его фактическое нахождение в моменты, когда он пользуется поиском и, соответственно указывается “примерное местоположение” в его аккаунте, нет возможности.
    Возможно, он просто отключает в аккаунте "Историю местоположений":
    spoiler
    5e461dd713d65458134421.jpeg


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

    1. Гео-координаты точек Wi-Fi
    Google собирает гео-координаты всех точек Wi-Fi. Достаточно один раз подключиться к ней со своего мобильного устройства с GPS модулем, или кто-то просто пройдёт рядом со своим мобильным телефоном с Android(подключаться не надо) - данные об этой точке с привязкой к гео-координатам будут отправлены в Google:
    - Wi-Fi следит за тобой
    - Google опубликовал способ скрыть точку доступа WiFi от использования её в своих сервисах геолокации.

    2. Базовые станции сотовых операторов
    На телефонах с ОС Андроид, Google имеет возможность прямого доступа к радиомодулю, замерять уровни сигнала базовых станций ОПСОСа и точно определять гео-координаты телефона даже с выключенным GPS.
    Гео-координаты этих базовых станций(БС) он регулярно получает от других Андроидов со включенным GPS, которые подключаются к этим БС.
    А вот на устройствах Apple у Гугла доступа до радиомодуля нет (там данные собирает сам Apple для своих нужд)

    3. IP-адрес
    Резервный неточный способ. Тем не менее, реклама в YouTube пока ещё таргетируется по IP-адресу

    Первые два способа позволяют точно определить ваше местоположение даже когда ваш IP-адрес изменен с помощью VPN. Поэтому на "регионозависимые" поисковые запросы Google и Яндекс(да, он тоже занимается этим) дают ответы с учётом вашего реального места положения.

    Поэтому ответить на ваш вопрос без дополнительной информации (и проведения тестов) невозможно.
    Вы можете работать через интернет МТС, но ваш сосед включил точку доступа WiFi на мобильнике со включенным GPS. Google тут же определил, что ваше устройство находится в зоне доступа "соседского" WiFi (подключаться к ней не надо, вы же видите доступные WiFi сети в радиусе действия), и точно узнал ваши гео-координаты.

    Если для получения таких координат абонент должен быть регулярно в городке, то, насколько часто?
    Не, Google показывает не "наиболее часто посещаемое", а ваше реальное местоположение (насколько точно он смог его определить) в момент фиксации события.

    PS: Большой брат постоянно следит за вами, используя для этого ваш же комп/телефон.
    Ответ написан
    2 комментария
  • Как обработать ответ командной строки стандартными средствами?

    Oxyd
    @Oxyd
    Linux enthusiast
    program > file
    program > file 2>&1
    program | program2
    program | program2 2>&1

    1. Стандартный вывод команды перенаправить в файл.
    2. Стандартный вывод и вывод ошибок перенаправить в файл.
    3. Стандартный вывод программы направить на стандартный ввод программы2, для обработки.
    4. Стандартный вывод и вывод ошибок направить на ввод программы2, для обработки.
    Ответ написан
    5 комментариев
  • Как сокращать слова с с помощью python?

    @MazAlVlad
    Создать множество с согластными.
    Создать множество с гластными.

    Разрезать строку на две строки по пробелу.

    Перебором брать буквы с получившихся строк и складывать пока не появится первая гласная, потом вторая, но вторую гласную не добавлять. Добавить '.'(точку)

    Соединить две обработанные строки.

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

    @anerev
    Посоветую поиск на сайте https://qna.habr.com/, в нескольких пикселях над вашим вопросом
    Ответ написан
  • Linux: Что делать с root после того как создал пользователя с обычными правами?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    Выполнять строго после того, как убедитесь в работе sudo и возможности подключиться по ssh другим пользователем.
    PermitRootLogin no в /etc/ssh/sshd_config (запрет на вход руту по ssh) и sudo passwd --lock root (запрет на локальный логин руту по паролю).
    Ответ написан
    Комментировать
  • Как лучше хранить список GPS-точек в PostgreSQL 9.6 с расширением postgis?

    x67
    @x67
    Вы упомянули постгис, соответственно нужно использовать его формат geom через st_makeline(). Ну или geojson в постгресовских jsonb полях.
    Это оптимальные варианты. Второй предпочтительнее для быстрой отдачи клиентам, а первый для фильтрации или обработки в постгисе. Так как истинный геоджсон может содержать несколько геометрий и надо писать кастомную функцию для преобразования в постгисовскую геометрию, я бы хранил и обрабатывал в постгисе, а в геоджсон или другой нужный формат преобразовывал бы опосля

    Хранить точки отдельно - дрочево при достаточно большом количестве точек. Да и сами точки без трека никакой полезной информации не несут ведь.
    Ответ написан
    Комментировать
  • Как передавать большие объёмы данных между серверами?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    А в чем проблема? 14 суток конечно немало но и объемы у вас хорошие.
    Настройте вторую площадку и копируйте данные.
    Вам выше посоветовали TeraCopy.

    Как я понял это какие то документы? Или банальный видеохостинг?

    В общем задачка вроде бы типовая. Если проект "горячий" то вам возможно стоит настроить Master-Slave конфигурацию для базы данных.
    Ответ написан
    2 комментария
  • Как сделать сохранение вывода текста в терминале постоянно в файл?

    takezi
    @takezi
    Intelligent people are full of doubts.
    Добавить в конец /etc/profile:
    function log2syslog
    {
       declare COMMAND
       COMMAND=$(fc -ln -0)
       logger -p local1.notice -t bash -i -- "${USER}:${COMMAND}"
    }
    trap log2syslog DEBUG


    Добавить в конец /etc/rsyslog.conf:
    local1.* -/var/log/cmdline

    Перезапустить rsyslog:
    /etc/init.d/rsyslog restart

    Аудит будет в файлах /var/log/syslog и /var/log/cmdline
    Ответ написан
    Комментировать
  • Как сделать так, чтобы хэши md5 совпадали у python и js?

    Строка должна быть также в utf8. Извините за говно код, но вот пример
    const md5 = require("pure-md5")
    const utf8 = require('utf8');
    console.log(md5.md5(utf8.encode("Привет")))
    Ответ написан
    Комментировать
  • USB микрофон, и динамики для raspberry pi?

    15432
    @15432
    Системный программист ^_^
    USB микрофоны - на алиэкспрессе по 3 бакса. Есть и по баксу

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

    @RidgeA
    конечно - на сайте mongodb
    Ответ написан
    Комментировать
  • Логгирование Python, как быстро сделать вывод ошибок в файл?

    qlkvg
    @qlkvg
    python backend developer
    прикрутите logging, пока не поздно. Один раз создать логгер и поменять все print на logger.info - дело где-то 5 минут. Взамен получите возможность быстрого переключения логирования в файл/консоль, разбивку сообщений по уровням (очень удобно отделять дебажные сообщения от информационных и диагностических), полноценное логирование исключений и еще кучу всяких плюшек.
    Ответ написан
    Комментировать
  • Как сформировать окрестность заданного метрического радиуса вокруг географически заданного центра в python?

    @vQFd4 Автор вопроса
    freeExec не, не забыл )) только тогда уж не круга, а сферического сегмента )) почему это важно, можно узнать, например, из книжечки Владимира Арнольда для детей от 5 до 15 ))
    Но даже, если считать, что искажения развертки нам неважны и мы будем использовать в качестве геометрического места точек, удаленных на заданное расстояние именно круг. То все равно возникают определенные проблемы с построением распределения на этой замечательной геометрической фигуре. Если для равномерного распределения еще все более-менее просто, чтобы задать равномерное распределение достаточно просто перейти к полярным координатам и использовать равномерно распределенные выборки для угла и радиуса, то для нормального распределения такой фокус уже не прокатит, то есть нормально распределенная выборка угла вращения и радиуса вовсе не даст мне двумерного нормального распределения на плоскости внутри круга по декартовым координатам, так что придется придумывать что-то похитрее.
    И касательно исходного вопроса. Я же не предлагаю вам нарисовать мне решение. Это, я думаю, вполне типовая задача, и я уверен, что почти наверное существует какой-нибудь модуль на питоне, который ее решает. А поскольку я питон начал использовать совсем недавно, пару недель назад, то я к сожалению не в курсе, что мне выбрать. Есть множество всяких модулей для работы с геоданными, но пока я в них нужной мне функциональности не нашел к сожалению. И я буду вам крайне признателен, если вы ткните меня в какой-нибудь модуль, где это есть.
    Ответ написан
    4 комментария