• Техническая сторона организации трансляций и формирования видеопотоков в сети интернет?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Есть два врианта - для браузеров - это WebRTC, nginx-rtmp и их аналоги.

    Не для браузеров - это протоколы H323 и SIP + специальный софт либо специальное железо.

    Тут можно очень долго расписывать и рассказывать как что устроено, очень много нюансов. Так как это все выросло из телефонии, в технологии есть много общего с ней, например, разделение на "сигнализацию" и контент:

    Имеется отдельный протокол (webRTC, H323, SIP), который отвечает за передачу метаданных и настройку соединения и отдельный протокол (RTP), отвечающий за сам медиапоток (аудио отдельно, видео - отдельно)

    Сигнализация, как правило, работает по TCP, медиаданные, как правило, идут по UDP. Использование UDP связано с тем, что потеря нескольких пакетов никак не влияет на поток медиаданных (ну заикнется собеседник, или картинка размажется).

    Архитектура для трансляции в браузер примерно такая

    1) Источник медиаданных - файл, поток с видеокамеры/микрофона, микс из захвата экрана и камеры (obs-studio)
    2) Транскодер(ы) - решение, которое перекодирует исходный поток в несколько выходных форматов
    - с разным разрешением
    - с разным кодеком, для лучшей совместимости с устройствами. Например, старный iPhone кушает только вполне конкретный профиль h264, а машине с линуксом лучше подавать VP8, потому что h264 нужно доустанавливать руками - он проприетарный.
    3) Сервер(ы) вещания - это может быть nginx-rtmp, icecast или что-то проприетарное. Они как раз обеспечивают выдачу медиапотока в нужном виде - HLS (формат Apple, его кушают старые iPhone, WebM - почти универсальный формат, жрут все современные браузеры, WebRTC - еще более универсальный формат)

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

    MrDecoy
    @MrDecoy
    Верставший фронтендер
    То, о чём Вы спрашиваете, официально называется WAI-ARIA.
    Тут можно скачать бесплатно экранного диктора и с помощью него тестировать свои сайты, осуществляя навигацию по ним с помощью табуляции, а так же открывая специальное меню с помощью горячих клавиш (командная кнопка приложения, которую назначите, по умолчанию ins+f7, или f6? Не помню уже точно :-) )

    Доклады Вадима Макеева на ютубе:
    https://www.youtube.com/watch?v=MWJKwn_gKR4
    https://www.youtube.com/watch?v=ssJsjGZE2sc

    Если действительно умеете соблюдать семантику, то, скорее всего, Вы уже сделали достаточно.
    Рускоязычные ресурсы по доступности:
    https://weblind.ru/
    specialbank.ru/guide (В данный момент чёт не работает, но должен)
    Есть курс, где учат именно этому: https://kurmak.info/
    Статья на хабре: https://habr.com/ru/post/40730/ (там внизу есть полезные ссылки)
    Тут можно найти информацию по этому вопросу, в том числе перевод статей из первой ссылки англоязычных ресурсов

    В подкасте Веб-стандарты упоминается об этом очень часто. Тут можно прослушать все выпуски, а так же покопаться в выпусках и поискать упоминания доступности и статьи про это.

    Есть англоязычные ресурсы
    Про доступные компоненты: https://inclusive-components.design/ (нажимаете в хроме справа сверху "перевести страницу" и профит)
    Есть спецификация: https://www.w3.org/TR/wai-aria-1.1/#usage (аналогично, перевод в браузере и профит)
    MDN: https://developer.mozilla.org/en-US/docs/Learn/Acc...
    Ответ написан
    1 комментарий
  • Как сделать адекватную обработку event в JS?

    lugindev
    @lugindev
    Вам не нужно вешать обработчик на каждую кнопку. Когда логика будет чуть сложнее у вас получится монолит с огромной вложенностью. Достаточно одного обработчика на родителе это лучше как с точки производительности так и с точки дальнейшей поддержки кода. Я написал немного кода для вас. Там есть обработчик и другие фишки. Думаю вам будет интересно разобраться с ним. https://jsfiddle.net/edc9qayw/3/
    Ответ написан
    1 комментарий
  • Как сделать адекватную обработку event в JS?

    ArsenyMatytsyn
    @ArsenyMatytsyn Куратор тега JavaScript
    Руководитель frontend направления, предприниматель
    1. Слушатели добавляй через addEventListener.
    2. Вот это isTaskAdded = false скорее всего можно сократить до isTaskAdded = !isTaskAdded в конце условий.

    В остальном, при беглом взгляде выглядит не так уж плохо. Смущают только глобальные переменные. Но тут я не очень объективен, ибо повернут на инкапсуляции и адепт функционального программирования.

    А куча библиотек возникла до 2015-го года, когда JS был не просто языком, где куча дерьма, а просто языком в общем и целом из дерьма. Тот же jQuery боготворили, а сейчас это проклятый архаизм. И все в общем перевернулось именно со стандартом ES6\ES2015, а с последующими обновлениями стало только лучше.

    В принципе тенденции последних лет можно охарактеризовать, как весьма благоприятные: нормальный PHP, f-строки в Python, окончательная и бесповоротная смерть IE.
    Ответ написан
    1 комментарий
  • Что должен знать в Linux Python разработчик?

    Если Вы на профессиональном уровне владеете Python, то скорее всего, Вам не составит труда освоить базовые навыки Linux. Как правило, глубокие знания не требуются. На начальном уровне можете освоить минимальный уровень, например:
    https://yandex.ru/turbo?text=https%3A%2F%2Fru.hexl...

    Далее, если понадобится, более углубленное: книга "Внутреннее устройство Linux" Брайан Уорд - https://itsecforu.ru/wp-content/uploads/2018/01/uo...
    Ответ написан
    1 комментарий
  • Что должен знать в Linux Python разработчик?

    Sergei_Erjemin
    @Sergei_Erjemin
    Улыбайся, будь самураем...
    Для веба -- настроить nginx, uwsgi (или альтернативный CGI), развернуть виртуальное окружение, иногда крутить настройки SQL (понимать какие буфера на то влияют, иногда репликации) -- знать минимум. Но ведь нужны бывают и многопоточные решения на несколько серверов, а значит докерс, оркестрация... ну и пошло-поехало...

    Но в принципе --это все "дефолтные команды".
    Ответ написан
    5 комментариев
  • Будет ли подобное использование eval безопасным?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    такой eval нельзя использовать лишь потому, что это небезопасно. Фактически, если использование eval не усугубит ситуацию, то почему бы не использовать.
    Довольно сумасшедшая идея ходить с открытой раной по улице. Но в защищенной среде в больнице между перевязками - это штатная ситуация, хотя и не отменяет необходимости быть осторожным.

    Оголённые провода в жилом помещении - это недопустимо, но в фазные шины с правильной маркировкой в электрощитовой, наверно, допустимы.
    Это касается не только eval.
    Однажды я слышал от студента примерно следующие рассуждения, когда ему требовалось написать простейший калькулятор:
    eval использовать нельзя (небезопасно), поэтому я пользовательский ввод записываю в питоновский файл и этот файл импортирую как модуль...
    Ответ написан
    7 комментариев
  • Будет ли подобное использование eval безопасным?

    adugin
    @adugin Куратор тега Python
    Используйте безопасный eval:
    from ast import literal_eval as eval
    Ответ написан
    1 комментарий
  • Почему перестал работать Emmet в VS?

    IlyaVishnikin
    @IlyaVishnikin
    измени бинды для эмета или джанго темплейта в настройках
    PS. https://code.visualstudio.com/docs/getstarted/keyb... тут написано о биндах
    Ответ написан
    3 комментария
  • Почему не подключаются модули в pip?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    Когда вы выполняете команду pip install example, вы устанавливаете пакет из репозитория pypi.org.
    В вашем же случае нужно - pip install ./dist/ProjectName.tar.gz
    Ответ написан
    1 комментарий