background top icon
background center wave icon
background filled rhombus icon
background two lines icon
background stroke rhombus icon

Скачать "C++ Разработчик учит Python"

input logo icon
Оглавление
|

Оглавление

0:00
Введение, что мы будем делать, теория
3:21
Настройка проекта
4:47
Первые строчки Python
13:20
Добавляем С в Python(ЧТО?), отключаем GIL(ЧТО?)
22:14
Тесты производительности(+50% прирост)
23:40
Тесты на Linux в бонуске(segfault)
25:42
Еще тесты(нагрузка процессора на back-end-е)
26:37
Архитектура и итоги(как вообще это все заработало?)
Теги видео
|

Теги видео

winderton
виндертон
wndtn
программирование
снуля
с нуля
основы
начинающим
roadmap
карта изучения
python
пайтон
java
джава
C++
unux
linux
vs code
visual studio code
разработка
туториал
computer science
алгоритмы
структуры данных
javascript
assembly
компилятор
интерпретатор
операционная система
уроки
программист
что нужно знать
как стать
hello world
rust
web
машинное обучение
AI
нейронные сети
информатика
html
css
js
react
gamedev
С++
API
АПИ
С++ программист
Субтитры
|

Субтитры

subtitles menu arrow
  • enАнглийский
Скачать
00:00:01
комментариях пишите типа выложить
00:00:02
что-нибудь на питоне и Ну что ж мне
00:00:05
кажется я пришел к чему-то интересно
00:00:06
помимо вот этих технологий у нас будет
00:00:08
приложение которое интегрируется с
00:00:10
каким-то сторонним API так называемую
00:00:12
баунт нагрузка будем разгружать
00:00:13
синхронным питоном и я пишу на си плюс
00:00:16
плюс а вроде как считается перформанс
00:00:18
ориентированным языком И поэтому я хочу
00:00:19
добавить мод для обработки так
00:00:21
называемой CPU Bound нагрузки то есть
00:00:22
каких-то сложных для процессоров
00:00:24
вычислений И даже если вы ничего не
00:00:26
понимаете то я постараюсь объяснить
00:00:27
вообще всё что мы делаем от остановки
00:00:29
каждого модуля вплоть до развёртывания
00:00:31
настройки проекта на удалённом серваке
00:00:33
работать всё это будет в вебе поэтому
00:00:35
для примера клиент серверной архитектуры
00:00:37
Я выбрал Telegram и у нас дефолту будет
00:00:39
как бы мобильный десктопные и любой
00:00:40
другой клиент плюс мне не нужно будет
00:00:42
писать фронтен самому но обо всем по
00:00:45
порядку с самого начала минутка теории
00:00:47
чтобы вы легче всё понимали и впитывали
00:00:49
напряжение ролика если что кстати там
00:00:51
будут тайм-коды чтобы каждый мог
00:00:52
посмотреть что конкретно ему интересно
00:00:54
во-первых самая база Что значит
00:00:56
приложение интегрируется со сторонним
00:00:58
API у многих есть какой-то открытый
00:01:01
интерфейс которому вы можете
00:01:02
подключиться уже из своих программ
00:01:03
например подключиться к Ютубу сказать
00:01:05
Пришли мне все описания роликов из вот
00:01:07
этого плейлиста далее Что такое вообще
00:01:10
CPU Bound и ieobound нагрузка первый
00:01:13
пример у нас два сценария первый есть
00:01:15
какой-то Task QX который супер нагружает
00:01:17
процессор например одни из самых
00:01:18
медленных операций которые выполняют
00:01:20
современные процессор это деление и
00:01:22
какие-нибудь не знаю тригонометрические
00:01:23
функции вроде синуса и косинуса во
00:01:25
всяких бенчмарках это активно используют
00:01:27
типа тут не будет математики что не
00:01:29
переживайте это просто пример что
00:01:30
нахождение какого-нибудь числа Пи это
00:01:32
сложно для процессора и называется это
00:01:34
CPU Bound нагрузка пример номер два Если
00:01:37
же все ваши операции упираются скорость
00:01:38
сети скорость записи чтения какого-то
00:01:40
файла с диска или ожидания запроса из D
00:01:42
это IO bount нагрузка отправили какой-то
00:01:45
запрос к серверу и ждёте пока он придёт
00:01:46
процессор как правило простаивает
00:01:48
процентов 90 времени как эти проблемы
00:01:51
решаются программировании конкретно
00:01:52
Python первое про нагрузку процессора
00:01:55
использовать модуль Multi Processing
00:01:56
который расправляет вычисление на
00:01:58
несколько процентов на нескольких реа
00:01:59
ядрах основная проблема тут это
00:02:02
несколько процессов первая здесь это
00:02:05
создание новых процессов вообще не
00:02:06
дешевая операция А их взаимодействие
00:02:08
оверхед номер два то есть обмен данными
00:02:10
между этими процессами в простонародье
00:02:12
это называется ipc rinda подсветки
00:02:14
миникейшен В общем это не самая простая
00:02:15
штука потому что как минимум чтобы
00:02:17
передать объект между процессами объект
00:02:19
должен быть реализован и здесь
00:02:21
реализован соответственно если кратко то
00:02:22
стерилизация Это очень дорого
00:02:24
мультитрейдинг дешевле гораздо дешевле
00:02:26
особенно в скеле То есть если мы
00:02:28
планируем масштабировать и создавать
00:02:29
большие потоков потому что поток это
00:02:32
более Такая легковесная сущность с точки
00:02:34
зрения операционной системы в сравнении
00:02:35
с процессом как минимум и самое важное
00:02:37
потоки шарят одну и ту же область памяти
00:02:39
внутри одного процесса то есть обмен
00:02:40
данными между ними реализован гораздо
00:02:42
проще но сейчас будет сложно в питоне
00:02:45
есть так называемый Гил или блок
00:02:46
интерпретатора где так сложит поток или
00:02:48
говоря проще в каждой конкретный момент
00:02:50
времени может работать только этот самый
00:02:52
залоченный поток А другие ждут И вообще
00:02:54
не важно сколько их там фейк параллельно
00:02:56
так называемые это про задачи по
00:02:58
нагрузке именно CPU в случае же решение
00:03:00
проблемы номер два а именно IO Bound
00:03:02
нагрузки то в питоне она решается
00:03:04
асинхронным программированием которые в
00:03:06
питоне официально появилось несколько
00:03:07
лет назад и до этого люди писали
00:03:08
питоновские генераторы
00:03:10
йолт фронт не хочу создать впечатление
00:03:11
что я что-то об этом знаю ребят отнюдь
00:03:13
это самые верха который вы изучаете в
00:03:15
первые недели Итак короче достаточно
00:03:17
теории давайте уже начнем что-то делать
00:03:18
начинаем очень просто с нашего
00:03:20
интерфейса опять же чтобы щупать было
00:03:22
удобно все приложения сделаем это всё
00:03:23
внутри телеграм-бота как вообще пишутся
00:03:25
бот и что это такое Бот сокращён от
00:03:28
робот - Это программа которая выполняет
00:03:29
какие-то действия через интерфейсы
00:03:31
предназначенные для людей в доках для
00:03:33
разработчиков Telegram есть целый прямо
00:03:34
инструкция как это сделать на нескольких
00:03:36
языках конкретно это питоны тут целых
00:03:37
семь библиотеках мы просто берём первую
00:03:40
потому что она называется Python
00:03:41
Telegram Вот и просто потому что на
00:03:43
первое описание это библиотека
00:03:45
предоставляет чистый питоновский
00:03:47
асинхронный интерфейс для 5 телеграмма
00:03:48
бла бла бла бла но вообще на самом деле
00:03:51
то что нужно во-первых это моя версия
00:03:52
питона писать я буду на ней но
00:03:54
протестируем всё и на самый последний Я
00:03:56
думаю не будет особых проблем плюс Я всё
00:03:58
делаю на Маке но потести и на линуксе
00:04:00
прямо тут же в репке есть какой-то
00:04:02
веб-сайт где сходу показан сэмпл который
00:04:03
называется itfan поэтому Просто берем
00:04:06
его и проверяем кстати вот плагин кому
00:04:08
интересно который предлагает мне пути в
00:04:10
терминале называется фиг пожалуйста
00:04:12
стандартная частота пим папка внутри
00:04:14
файл Main Test и все работает далее
00:04:16
чтобы не захламлять комп чем-то лишним я
00:04:18
буду пользоваться питоновской
00:04:19
виртуальной средой смысл который в том
00:04:20
что у меня создается что-то вроде
00:04:22
изолированного контейнера внутри
00:04:24
которого я делаю все что хочу с питоном
00:04:25
и его библиотеками доступно Это только
00:04:27
внутри этой папке И кстати для супер
00:04:29
лентяев то просто захочет взять
00:04:31
исходники у себя собрать я добавлю
00:04:32
инструкцию как это делать и Файлик
00:04:34
requiermans текст который по факту вроде
00:04:36
как есть сбил система питания поправьте
00:04:38
Если ошибаюсь дальше чтобы сам сэм
00:04:40
проработал Нам нужен токен Где его взять
00:04:41
справедливости ради подмечу то что я уже
00:04:43
делал одного телеграм-бота на все плюс
00:04:44
полгода назад и я знаю да типа плюс там
00:04:47
Telegram бот Это был чисто эксперимент Я
00:04:50
к тому что тогда я узнал что примерно
00:04:51
нужно делать конкретно есть так
00:04:53
называемый бот Фазер внутри которого вы
00:04:55
и берём этот самый токен токены если что
00:04:57
нужен для как бы аутентификации с самим
00:04:59
и грамотно такой знаете рукопожатие
00:05:01
перед работой и вообще эти принес
00:05:02
слишком детально все объясняю это на
00:05:05
будущие видосы Напишите дамыми плюс тут
00:05:07
можно составить и другие настройки вроде
00:05:08
изменения описания Аватара картинки
00:05:10
начальной активации всяких модов вроде
00:05:12
инлайна который кстати нам возможно
00:05:13
нужен будет до плюс отсюда же всё
00:05:15
удаляем его коем токены чтобы 15-летние
00:05:18
хакеры не пробивали через этот токен на
00:05:20
что вы подписаны со своего основного
00:05:21
аккаунта в общем бот Фазер это Как ваша
00:05:24
админка и ребята Если вы вдруг сейчас
00:05:26
увидите что я делаю что-то неправильно
00:05:27
то напишите плиз коммент об этом с
00:05:29
пометкой поэтому я проверю все эти
00:05:30
комментарии уверен что многие из вас
00:05:31
пишут на питоне лучше чем Я итак токен
00:05:33
сэмпл первый запуск и
00:05:39
работает Давайте только сразу будем все
00:05:41
делать симпатично и не знаю правильно и
00:05:44
будем хранить токен в скрытом файле
00:05:45
который предназначен как раз таки для
00:05:47
подобных данных за это пальцем отвечает
00:05:48
модуль Dot N В который также ставим
00:05:50
внутри наш виртуалки в сам файл
00:05:52
переносим токен и дергаем его тут
00:05:58
круто есть бот который работает умеет
00:06:00
здороваться Но мы же не ради этого сюда
00:06:02
пришли Да мы хотим большего и по
00:06:04
случайности счастливой Я вспоминаю один
00:06:06
кейс который был связан с одним из моих
00:06:07
знакомых где девочка по имени Женя
00:06:09
постоянно говорила мне на диск на диск
00:06:11
скина диск скин диск и так далее чтобы
00:06:14
понимали никогда в жизни намеренно
00:06:16
ничего не закидывал на диск Но вот
00:06:17
просто так получилось и если мы сейчас
00:06:19
свяжемся эти мысль одно то получим
00:06:21
примерно следующее У нас есть Python У
00:06:23
нас есть Telegram и у нас есть тот самый
00:06:25
диск Google drive Я предлагаю за основу
00:06:27
взять то что мы возьмем Telegram и
00:06:29
скажем как ты его Google диском и
00:06:30
заставим их вместе работать пишем
00:06:32
ключевые запросы попадаем на ещё одну
00:06:33
приветственное страничку где есть играет
00:06:35
Как работать с API Google диском и
00:06:37
смотрите ребят почему-то многие люди до
00:06:39
сих пор боятся в доков и прямо постоянно
00:06:41
ищут какие-то тут сериалы смотрят видосы
00:06:43
на Ютюбе прям как сейчас но по сути
00:06:44
сейчас 2022 год и в доке уже давно не
00:06:47
такие какими они были 10 лет назад они
00:06:48
пишутся людьми в первую очередь для
00:06:50
людей кроме рефер спасибо Кстати одни из
00:06:54
самых крутых токов это доки посту и
00:06:56
скоро будет по расту да Поэтому если
00:07:00
хотите побыстрее его увидеть там будет Я
00:07:02
считаю что интересный проект лайкайте
00:07:04
10к быстро сделайте 10к быстро его
00:07:07
выложу Итак к нашим баранам Квик Старт
00:07:09
от Гугла все что нужно сделать это
00:07:11
включить API и получить тоже что-то
00:07:12
вроде токена который мы получали в т.г
00:07:14
для работы с TG только тут чтобы
00:07:16
работать E5 Гугла конкретно с моим
00:07:18
аккаунтом нужно тоже получить ряд
00:07:19
секретных данных только этот называется
00:07:21
не токи на creat Dance первыми же
00:07:23
строчками тут сразу идет инструкция как
00:07:25
это сделать поэтому кликаем и делаем всё
00:07:27
по ней клик клик клик еще один клик и
00:07:29
вот он Файлик секретиками который мы
00:07:31
пока просто скачиваем и квадрате
00:07:33
смотреть как там всё это работает ставим
00:07:35
как тут сказано суппортящую клиентскую
00:07:37
библиотеку для работы с Гуглом и они тут
00:07:39
сразу тоже предлагают затестить первый
00:07:41
уже сэмпл поэтому тестим копируем его и
00:07:43
вставляем наш Файлик но как бы нужно не
00:07:45
просто его В тупую Да копипастную
00:07:47
ставить а сделать всё это интерфейсу
00:07:49
работает через телеграммовскую
00:07:50
библиотеку которая у нас уже есть как
00:07:51
основа поэтому Давайте посмотрим как это
00:07:54
делать в телеграме
00:07:55
Вот еще один сэмпл так это уже такой
00:07:57
более подробный симпатичный
00:07:58
телеграммовский сэмпл смотрим что они
00:08:00
тут пишут в начале какой-то ряд
00:08:02
вспомогательных импортов далее функции
00:08:03
логирования это кстати реально удобно и
00:08:05
затем идет та самая синхронная функция
00:08:07
Start с двумя аргументами из которых
00:08:09
можно доставать кучу прям полезной
00:08:10
информации как например не знаю мы
00:08:12
уводим этот вот текст в наши диалоговое
00:08:14
окна Бота и в моей не мы создаем объект
00:08:16
с нашим токеном А дальше добавляем
00:08:17
хендлер или на русском языке обработчик
00:08:19
нашей этой самой функции Start вроде как
00:08:22
просто типа по факту у нас как бы есть
00:08:23
функция которая добавляется в обработчик
00:08:25
вот и всё поэты логике Я просто пишу еще
00:08:28
одну функцию И добавляю её ещё один
00:08:30
handler уже для вот этого вот с Гугла
00:08:32
Правильно правильно Только берём ещё вот
00:08:34
этот Файлик карденшал Джейсон
00:08:36
перетаскиваем его в корень создаём ещё
00:08:37
одну функцию не знаю лист файл например
00:08:39
закидываем всё сэмпла который будет
00:08:41
выводить все файлы с диска до очевидно
00:08:45
на канал и Добавляем еще один комент
00:08:47
хендлер И тестим кстати commond handler
00:08:50
из названия Да что это как бы обработчик
00:08:51
команд То есть все что мы пишем через
00:08:53
слэш
00:09:00
метана диски Надеюсь есть какие-то файлы
00:09:02
поэтому тестим пишем команду лист и Да
00:09:05
работает кстати для удобства Давайте
00:09:06
сразу добавим сюда список команд чтобы
00:09:08
их постоянно не печатать прям сразу
00:09:10
вызывать и тут же какой-нибудь не знаю
00:09:12
описание примерно такое аватарку скажем
00:09:14
вот эту и картинку чтобы все выглядело
00:09:16
мило например вот эту я не знаю
00:09:18
насколько это правда мило Напишите Окей
00:09:21
немного пока Google Мы достаем наш
00:09:22
секретки авторизуемся и связываемся с E5
00:09:24
Гугла У них тут комментарии прямо на все
00:09:26
на это есть дальше вытаскиваем все файлы
00:09:27
которые есть и выводим их в консоль
00:09:30
только давайте сразу забудем вот эти вот
00:09:32
два телеграмовских параметров чтобы
00:09:33
выводить файлы не просто в консоль как
00:09:35
бы на серваке прямо в бозе сразу на
00:09:37
клиенте просто дергаем эту функцию
00:09:39
message прям внутри этого же самого
00:09:40
цикла проходимся по листу файлс который
00:09:42
состоит из словарей где есть как бы имя
00:09:43
и ID файлы просто выводим не знаю скажем
00:09:46
имя
00:09:47
Окей немножко алгоритмов и структур
00:09:49
данных Да можно изначально создать лист
00:09:52
с именами вытащив их отсюда и просто в
00:09:54
одном вызове функции вывести одним
00:09:55
сообщением все файлы разницы
00:09:57
производительности как бы в кавычках
00:09:58
особо не будет как это можно проверить
00:10:00
Да например не знаю стандартам
00:10:01
профайлером и снэквизом это такой
00:10:03
инструмент для профайлинга где можно как
00:10:05
минимум посмотреть Сколько времени
00:10:06
занимает runtime конкретные функции или
00:10:08
вообще всей программы и вообще такое
00:10:10
отступление реакции человека в среднем
00:10:12
где-то 200 миллисекунды если у вас
00:10:13
приложение выбирается это число
00:10:14
пользователь думает что все работает
00:10:16
моментально и без дела И он просто
00:10:18
быстрее крикнет даже не успевает по
00:10:20
природе людской когда вас какая-то
00:10:21
программа есть вроде этой то вы вот так
00:10:23
вот по чуть-чуть тестировать разные
00:10:25
кусочки доверяете производительность
00:10:26
грубо говоря на миллисекунды в конечном
00:10:28
итоге если вас изначально был отклик 1
00:10:30
секунда то можно постараться и во всех
00:10:32
местах всё подтюнить выиграть и получить
00:10:35
финальные 250 секунд такая вот лирика
00:10:41
Окей что там еще есть у Гугла тут уже
00:10:43
очевидно для вас да что делать можно
00:10:44
вообще все что угодно любого рода
00:10:46
менеджмент вашего диска и Давайте не
00:10:47
знаю для примерку нить еще фичу добавим
00:10:49
загрузка файлов скажем и Смотрите тут
00:10:51
Google сразу предлагает такой
00:10:52
максимально обширный Спектр того что
00:10:53
вообще можно делать например добавить
00:10:54
вот доп аргумент вроде за нолями
00:10:56
загрузки то есть отвалился Интернет то
00:10:58
она возобновляется ровно так же как это
00:11:00
делает FTP протоколде но как видите Тут
00:11:03
всем при захочет кожаные значения как в
00:11:04
принципе во всех сэмплах а нам для
00:11:06
интерактивности нужна какая-то динамика
00:11:07
поэтому мы сначала будем грузить файл на
00:11:09
наш сервер на наш комп через интерфейс
00:11:11
Telegram А уже оттуда его доставать и
00:11:13
перетаскивать в Google Диск для этого
00:11:15
переключаемся вот таки ТГ и чекаем как
00:11:17
они реализовали делая это очень просто и
00:11:18
тупо Просто ищу сэмпл с кодом ключевым
00:11:20
словам downloadload Files и так далее у
00:11:23
них это называется код снипец как и у
00:11:25
многих и тут мы сразу видим как заливать
00:11:27
файлы в Telegram небольшой резюме Перед
00:11:29
тем как мы пойдём дальше чтобы чётко
00:11:31
понимали что мы делаем и успевали за
00:11:32
мной У нас есть какой-то сервер либо наш
00:11:35
комп либо какой-то удалённый где мы их
00:11:37
запускаем наше приложение телеграм-бот и
00:11:39
через этот интерфейс Telegram Бота
00:11:40
который нам просто по стандарту отправка
00:11:42
сообщений загрузка файлов меню можно
00:11:44
добавить вообще что угодно то есть через
00:11:45
него мы можем загрузить файл и он будет
00:11:47
лежать либо у нас на компе либо на
00:11:49
каком-то удаленном сервере где
00:11:50
собственно и запускается антигранбот
00:11:51
Надеюсь Понятно поэтому Давайте
00:11:53
попробуем этим сниппетом просто
00:11:54
загружаем файл сначала к нам на ком и
00:11:56
просто чтобы было почиститься дадим
00:11:58
отдельную папку для всех загруженных
00:11:59
файлов и укажем это через кастомный путь
00:12:03
[музыка]
00:12:06
плюс Давайте сразу вынесем в отдельную
00:12:08
функцию идентификацию чтобы опять же
00:12:10
просто было почище далее во все за
00:12:12
хардкодиные места Со снимки так угла мы
00:12:13
добавим наш динамические данные в виде
00:12:15
имени файла и путей всё это достаётся и
00:12:18
как раз-таки из-за апдейт и контексте
00:12:19
телеграммовских аргументов мы можем так
00:12:21
делать потому что создатели Спасибо
00:12:29
так сразу тут еще один хендер куда
00:12:31
Передаем уже эту новую функцию но тут
00:12:33
сразу небольшое изменение конкретно не
00:12:35
команд хендлер А messagender обработчик
00:12:37
команд предназначен очевидно до для
00:12:39
команд который мы вводим через слэш а
00:12:40
обработчик сообщения обрабатывает а все
00:12:42
виды сообщений в том числе и медиа
00:12:44
сообщения это очень важно то что нужно
00:12:46
только я первым параметром сюда сразу
00:12:48
передаю фильтр на такой знаете Очень
00:12:49
широкий фильтр то есть функция будет
00:12:51
обрабатывать прям все сообщения я не
00:12:53
шарю но думаю как минимум для отдельных
00:12:55
видов сообщений Вроде документов видосов
00:12:57
и фоток нужны отдельные Но и так всё
00:12:59
работает Окей тестим эту землю Документ
00:13:02
и во-первых посмотрите сначала файл
00:13:04
появляется В нашей папке
00:13:06
А уже отсюда грузится в Google Drive и
00:13:10
работает кайф Надеюсь шаблон сейчас стал
00:13:13
более понятен мы можем добавить все что
00:13:15
есть у Гугла и сделать такой знаете Full
00:13:16
менеджер диска чисто из Telegram Бота
00:13:19
вот так вот просто когда будете все это
00:13:21
скелети будут какие-то проблемы Пишите в
00:13:23
комментарии попробуем просто вместе со
00:13:24
всем этим разобраться но у нас есть еще
00:13:27
вторая часть более такая темная грязная
00:13:29
это все была ебанут нагрузка с
00:13:31
асинхронными функциями то есть наш
00:13:33
процессор по сути ничего не делает все
00:13:35
это упирается в работу сети и запись
00:13:36
сечения файлов в общем что угодно только
00:13:39
не CPU А что если мы хотим добавить
00:13:41
функционала по нагрузке процессора
00:13:42
вариации просто куча можно по сути
00:13:45
сделать какой-то найти промежуточный
00:13:46
layer который будет брать видосы которые
00:13:48
мы грузим монтаж тех какой-то клип
00:13:50
накладывать музыку сжимать их и
00:13:52
выгружать на драйв уже готовые
00:13:53
препродакшен видосы диван кроффорд делал
00:13:56
что-то похожее с FM тегам вот в этом
00:13:57
ролике получилось Кстати прикольно и
00:14:00
ребята можем сделать что-то похожее на
00:14:01
это вы просто только дайте мне знать
00:14:04
Итак следующая фича конкретно на бренде
00:14:06
мы сейчас добавим модуль для обработки
00:14:08
сложных вычислений именно на процессоре
00:14:09
и делать это будет не просто питона
00:14:11
питон в связке со старым добрым си более
00:14:13
того делать он это будет в нескольких
00:14:15
потоках реальных то есть мы отключим
00:14:17
петуновский Гил дата потенциально
00:14:19
создаст кучу новых проблем синхронизации
00:14:21
рейс Condition и счетчиком ссылок на
00:14:22
объекты и так далее но тема
00:14:24
многопоточности это прям отдельная тема
00:14:26
для отдельного ролика Я хочу показать
00:14:27
вам возможности чтобы в принципе можете
00:14:29
так делать Сейчас будет грязь делать
00:14:32
монтаж видосов на бэкенте как кроуфорда
00:14:34
это круто но мы сделаем что-то попроще
00:14:35
для смотрибельности и наглядности пример
00:14:37
для начала первый модуль пусть будет
00:14:39
большая как-нибудь локация и бинарный
00:14:41
поиск по массиву заодно проверим
00:14:42
работает ли это все вообще
00:14:45
там же сразу файл с парой простых
00:14:48
функций Если знаете то тут нет ничего
00:14:50
сложного мы выделяем память для массива
00:14:52
данных размера N и инициализируем этот
00:14:54
массив цикле размером который Передаем
00:14:56
то есть один миллион элементов элемент
00:14:58
от 0 до 1 миллиона -1 далее бинарный
00:15:01
поиск с нуля иммиграции ваших любимых
00:15:03
алгоритмов и я сделаю сейчас супер
00:15:05
отмороженную штуку так вообще никогда не
00:15:07
делайте мы внутри функции поиска
00:15:10
элементов будем вызывать наши функции
00:15:11
для локации генерации данных чтобы вы
00:15:14
наглядно успели увидеть как работает ваш
00:15:16
процессор линейно в нескольких потоках и
00:15:19
в нескольких процессах
00:15:22
сразу проверим что получается и большая
00:15:25
задержка Потому что выделяем много
00:15:26
памяти и затем бинарный поиск который
00:15:28
работает супер быстро Изи затем чтобы
00:15:31
вызывать этот хищный код из-под питона
00:15:33
нам нужна штука которая называется сайта
00:15:35
это суперсет питона который позволяет
00:15:37
вызывать си прямо из питона плюс писать
00:15:39
носи прямо внутри питона но чтобы все
00:15:42
это работало нужно немножко потанцевать
00:15:43
с бубном сначала ставим его виртуалку и
00:15:45
добавляем Файлик до интерфейса питона и
00:15:47
си который назовем Просто незамысловато
00:15:48
nokill внутри него будет все супер
00:15:51
интуитивно и достаточно просто первый
00:15:53
сидев это как раз таки сайтовский
00:15:55
синтаксис будет экспорт наших смешных
00:15:56
функций конкретно бинарного поиска для
00:15:58
начала кстати писать эти функции можно
00:16:00
прямо файле а Конкретно вот в этом
00:16:02
седельно но мы их экспортируем из наших
00:16:04
смешных файлов потому что это просто
00:16:06
прикольно затем создаем промежуточную
00:16:08
функцию которая будет вызывать нашу
00:16:09
хищную только что экспортированную
00:16:10
функцию и в конце создаем уже
00:16:12
питоновскую версию которая будет дергать
00:16:14
нашу и то что возвращает хищное будет
00:16:15
записывать в переменный результат то что
00:16:18
и возвращает бинарный поиск сейчас все
00:16:20
станет понятнее плюс наверное
00:16:22
самое важное Обратите внимание на то что
00:16:25
я тут ставлю Ту самую аннотацию на угил
00:16:27
то есть мы Выключаем Lock интерпретатора
00:16:28
и сейчас все будет работать в реальной
00:16:30
многопоточности Потому что если тут
00:16:32
оставить уит Гил то работать будет
00:16:34
только один поток и смотрите такой
00:16:36
небольшой мотивационное отступление
00:16:37
чтобы вы более четко понимали что я беру
00:16:40
все это не из головы и не в качестве
00:16:41
того что мне нечего сказать это что это
00:16:43
возможное будущее всех вас питонистов
00:16:45
это редкость и поэтому та самая
00:16:47
реализация питона который мы все
00:16:49
пользуемся есть еще и другие но это наш
00:16:51
так сказать Мейн который мы ставим софт
00:16:53
сайта активная работа а до контраста
00:16:56
Этот проект который называется nokill
00:16:58
прям как мой файлик это форк этого
00:17:00
самого репозитория сипает как вы видите
00:17:01
но тут уже ребята потеют на протяжении
00:17:03
100 тысяч коммитов над тем чтобы мы
00:17:05
пользовались реальным многопоточностью в
00:17:07
питоне Что скажете вообще и ребят на
00:17:10
фоне вот инфы хочу вам кое-что
00:17:12
предложить тем кто до сюда дошел или
00:17:13
кликнул тайм-код 20К лайков и мы фоткаем
00:17:17
вот типа это репку добавим туда
00:17:18
какую-нибудь новую фичу и вы будете
00:17:20
считаться челами которые понимают fronte
00:17:22
обязательно потому что я вам это
00:17:23
объяснил и более того модифицировали его
00:17:25
думаю это будет прикольный кейс в вашем
00:17:27
резюме А для меня просто супер потное
00:17:30
видео Итак у нас есть файл Score
00:17:32
функциями У нас есть сайт файл чтобы
00:17:34
этими функциями пользоваться уже в самом
00:17:36
питоне теперь пишем питоновский файл где
00:17:38
мы все эти функции и опишем создаем
00:17:40
новые файлики его так назову прям
00:17:41
перформанс то сразу пишем один декоратор
00:17:43
супер стандартный который поможет нам
00:17:45
смотреть Сколько времени прошло от
00:17:46
начала до конца выполнения конкретной
00:17:48
функции как конкретно он работает
00:17:50
смотрите функция внутри которой есть
00:17:52
функция обзорчик где есть вызов функции
00:17:54
которые мы декорируем где передвизовом
00:17:56
декорированные функции мы начинаем отчет
00:17:58
времени А после того как эта функция
00:17:59
завершилась завершаем отчет времени и
00:18:01
возвращаем просто отформатированную
00:18:02
строчку со временем мы результатом Изи и
00:18:06
чтобы протестить все то что мы сейчас
00:18:07
пытаемся сделать нам нужны три основных
00:18:09
функции это Линейная многопоточная и
00:18:11
многопроцентная тут же их и описываем
00:18:13
первая Линейная то есть там Все
00:18:15
вычисления будут происходить по очереди
00:18:17
в одном потоке как и работает питон
00:18:19
асинхронность тут Не сработает потому
00:18:21
что все это нагружает именно профессора
00:18:23
ни любого рода А вот вывод IOWA
00:18:25
распространивать фейк потоки которые
00:18:27
будут ждать минут x24 на 7 ничего не
00:18:28
изменит поэтому следом идет та самая
00:18:31
интересная многопоточная функция у нас
00:18:33
до этого было смотрите 5 вызовов сишных
00:18:35
функций поэтому тут мы создаем ровно 5
00:18:36
потоков по одному вызову в каждый просто
00:18:38
в каждом потоке вызываем наш поиск
00:18:40
начинаем эти потоки и завершаем их После
00:18:42
выполнения тут мы еще возвращаем лист с
00:18:45
результатами которым я не говорил в
00:18:46
сайтамском файле но попробую объяснить
00:18:48
это тут смотрите мы в потоке Передаем
00:18:50
функцию которую и дергаем и результат
00:18:52
который функция это возвращает мы
00:18:54
записываем вот этот вот лист это просто
00:18:56
самый тупой способ как достать
00:18:57
возвращаемое значение функции которые мы
00:18:59
вызываем потоки лучше я просто ничего не
00:19:00
придумал и чисто для контраста третьей
00:19:02
функции уже с питоновский
00:19:03
мультипроцессингом то же самое как с
00:19:05
потоками только структура данных не риск
00:19:07
питоновский так называемый шейер-лист
00:19:09
как раз потому что процесс изолированы
00:19:11
друг от друга и мы явно Марком данных
00:19:14
как расшаренный объект по памяти между
00:19:16
несколькими процессами О чем я и говорил
00:19:18
в начале прописи простой лист тут не
00:19:20
прокатит чтобы теперь использовать то
00:19:23
что находится в файле Pax нам нужно все
00:19:25
это дело скомпилировать и собрать те кто
00:19:27
пишут на питоне для вас это супер чуждо
00:19:28
но ребята носились и плюс постоянно этим
00:19:30
занимаются компиляция и сборка но сайты
00:19:33
разработчики все это понимают тоже
00:19:34
пытается максимально упростить Весь
00:19:35
процесс поэтому работать это следующим
00:19:37
образом создаем Файлик с этап и
00:19:39
добавляем туда следующее Если что то вся
00:19:42
эта информация лежит во вдохах и даже то
00:19:43
что мы сейчас сделаем это на самом деле
00:19:45
не такая уж и сложная штука Итак что
00:19:47
должно быть файле с этап файл который
00:19:49
нужно скомпилировать
00:19:51
[музыка]
00:19:52
модуль который мы создаем и будем
00:19:54
использовать и функции сетап которые
00:19:56
просто все это дело собирает воедино
00:19:58
только давайте только билдом немножко
00:19:59
опять же все структурируем для
00:20:00
читабельности Примерно вот так вот папка
00:20:03
с модулями папка с питоном наши файлы
00:20:05
виртуальной среды и в корне Мейн и
00:20:07
всякие там секретики
00:20:09
Билд и все собирается только я добавил
00:20:12
сюда еще флаг минус B а не имплей
00:20:15
стандартный который показан тут реале
00:20:16
это как раз таки для создания отдельной
00:20:18
папки для бинарников но тут есть такая
00:20:20
сразу одна небольшая проблемка что если
00:20:21
мы сбил Дим сейчас все еще раз то ничего
00:20:23
не будет ничего не перебил потому что у
00:20:25
нас появляется уже сгенерированный
00:20:26
хищный файл плюс бинарный кибит система
00:20:28
думает что как бы Зачем все любить вот
00:20:30
все же у тебя уже есть то есть даже
00:20:31
когда мы изменим что-то смешных файлах А
00:20:33
мы изменим то она ничего не переберёт
00:20:35
поэтому допишем такой простецкий Баскет
00:20:37
Почему не пайтон скрипт Хороший вопрос
00:20:39
потому что бар сейчас есть везде даже в
00:20:42
холодильнике в часах и так далее а
00:20:43
поэтому ещё нет Поэтому чем больше
00:20:46
ребята первыми двумя строчками удаляем
00:20:47
наш лишний модуль вот этот далее удаляем
00:20:49
старый бинарники вызываем Ту самую
00:20:51
команду для билда и переносим тот самый
00:20:53
массивный сгенерированный хищный файл
00:20:55
например не знаю к нам в папку
00:20:57
и сейчас когда мы дергаем уже этот
00:20:59
скрипт то все перебирается и
00:21:01
раскидывается по своим местам скорее
00:21:03
всего это можно делать и средствами
00:21:04
билсистемы сайта но я просто лентяем или
00:21:07
не это гуглить Поэтому просто дописываем
00:21:09
билд-систему сами и теперь уже в самом
00:21:12
Боте чтобы все было симпатичнее добавим
00:21:13
кнопочку с инлайн клавиатурой опять же
00:21:16
просто сразу смотрим примеры Как они это
00:21:18
делают Потому что тут есть каркас вообще
00:21:19
для любого Бота инлайнбот как раз таки и
00:21:22
нам нужны вот эти вот две функции
00:21:24
во-первых описание кнопочка первая
00:21:26
функция и вторая то что происходит когда
00:21:28
мы на эту кнопочку будем нажимать
00:21:30
давайте пока оставим только одну кнопку
00:21:32
изменим текст и уже во второй функции
00:21:34
описываем саму логику сразу за Хард кожи
00:21:37
сюда вот такой вот индекс который будем
00:21:39
искать затем вытаскиваем этот индекс тут
00:21:41
и уже ищем его нашим хищным бинарным
00:21:43
поиском дергаем все три функции Линейная
00:21:46
мультипоточная и мульти процессная
00:21:48
последние штрихи конкретно в нашем
00:21:50
интерфейсе А в мы не добавляем Как
00:21:52
сказано sample handler для команды А я
00:21:54
назвал ее просто сайтом первая функция и
00:21:56
уже в callback query хендлер саму
00:21:58
кнопочку вторая функция то есть
00:22:00
понимаете да commond handler и для
00:22:02
слежка команд сообщение для всех видов
00:22:04
сообщений в том числе Медиа и колдакт
00:22:06
хендлеры для всяких кнопочек и клавиатур
00:22:08
тестим и Момент истины
00:22:12
Как вы видите примерно секунду уходит на
00:22:14
то чтобы выделить Вот столько вот памяти
00:22:16
для каждого звоночка сам себе поиск
00:22:19
очень быстрый но результат вы видите
00:22:20
сами если сейчас убрать примерно секунды
00:22:22
из каждой локации и оставить только
00:22:24
поиск то производительный случай с
00:22:25
реальной настоящий накопоточкой примерно
00:22:27
50 процентов
00:22:29
мультипроцессинг как минимум на Маке
00:22:31
тоже проигрывает но все равно быстрее
00:22:32
чем линейный и просто чтобы вы понимали
00:22:35
50 процентов перформанса это гигантские
00:22:37
цифры то что мы сейчас сделаем это
00:22:38
синтетика Но если бы вы работали в
00:22:40
каком-нибудь Гугле я не знаю выиграли те
00:22:42
же самые 0,5 процентов перформанса
00:22:44
Google был вас очень любил заплатил бы
00:22:45
вам денег а сам бы сэкономил не знаю Я
00:22:47
предполагаю миллионы долларов и Давайте
00:22:49
такую вот последнюю часть сделаем
00:22:51
следующим образом затестим сервере
00:22:54
потому что покрывают большую часть
00:22:55
серверов в интернете если вы будете
00:22:57
разрабатывать Этот проект или какой-то
00:22:58
другой плюс разворачивать где-то в
00:23:00
интернете то работать скорее всего это
00:23:01
будет именно на ринуксе плюс Давайте
00:23:03
добавим еще какую-нибудь модуль для
00:23:05
теста производительности и я вам в конце
00:23:07
еще раз резюмирую нарисовал архитектуру
00:23:09
и принцип работы и смотрите у меня нет
00:23:12
Linux только Мако винда но я сделаю все
00:23:14
это в Облаке seletella потому что у них
00:23:15
там Linux точно есть что такое вообще
00:23:17
selectel это компания которая
00:23:19
предлагается какие там облачные решения
00:23:20
для ваших проблем и не только Проще
00:23:22
наверное будет показать на примере
00:23:23
создаем сервак с последнего бунты и
00:23:26
самым дешевым железом один процессор 500
00:23:28
Мб оперативки 5 Гб SSD более того от
00:23:31
этого процессора мы будем пользоваться
00:23:32
только 10 процентами мощности вот через
00:23:34
этот опцию sharedline это супер хватит
00:23:37
чтобы опуститься со мной функционал
00:23:38
работы с Google диском Но самое
00:23:40
смышлёное из вас уже понимаете У нас
00:23:41
сейчас примерно ждёт когда я буду
00:23:42
распараллевать вычисления на несколько
00:23:43
реальных потоков когда у меня есть
00:23:45
только одно ядро по факту короче в день
00:23:48
это будет стоить примерно 10 руб
00:23:49
поднимаем сервер он работает далее
00:23:52
обновляем тут всё что можно Потому что
00:23:53
это Fresh Linux
00:23:57
далее Я просто вынесу все зависимости
00:23:59
проекта в рекламе с тексте и просто
00:24:01
Заливаю весь крупный github А после
00:24:03
этого на серваке все с гитхаба выкачиваю
00:24:10
Все заново собираем под Linux потому что
00:24:13
алгоритмы менять вообще ничего не нужно
00:24:16
далее запускаем и тестим
00:24:20
файл заливаются файлы заливаются файлы
00:24:23
выводятся файлы выводятся Но если же мы
00:24:26
сейчас потестим наши модули для
00:24:27
производительности то получим сходу что
00:24:29
да в signation Fold Почему Хороший
00:24:32
вопрос потому что мы выделяем память
00:24:34
больше чем у нас есть виртуалки мы можем
00:24:37
сделать две вещи чтобы это пофиксить
00:24:39
либо просто выделять меньше памяти
00:24:41
либо добавить ресурсов в виртуалку
00:24:44
первая Изя мы просто можем изменить
00:24:46
количество выделяемой памяти в нашем
00:24:48
System файле под максимальные
00:24:49
возможности сервака
00:24:55
а второе в секторе прям на ходу можно
00:24:57
изменять конфиги например вот так вот
00:25:01
стоить это правда будет X100 но большие
00:25:03
вычисления несут большую ответственность
00:25:05
рестарт тест и Да работает кайф тесте
00:25:10
наш цепи бант нагрузку и Да теперь все
00:25:13
окей никаких сегмента и шин фолтов
00:25:15
только смотрите сразу да идеальный
00:25:17
пример разница операционной колоссекс и
00:25:19
Линекс бунты на линуксе мультипредсетинг
00:25:22
работает даже чуть быстрее но я более
00:25:24
чем уверен что если посидеть и
00:25:25
покопаться то multiting все же будет
00:25:27
выигрывать Это то насколько я понимаю
00:25:29
принцип работы операционных систем я
00:25:31
могу быть не прав также те кто будет это
00:25:33
собирать и подгонять под свои проекты
00:25:34
помимо поиск мы можем добавить еще
00:25:36
что-то без всяких там локаций громадных
00:25:37
например не знаю вычисление числа Пи
00:25:39
который активно используется в той же
00:25:40
графике показываю насколько легко и
00:25:43
просто расширять этот функционал создаем
00:25:45
еще одну функцию модуля это самая
00:25:47
стандартное нахождение числа пи по
00:25:49
формуле Лейбница затем также вычисляем
00:25:50
все линейно многопоточно и
00:25:52
многопроцессное
00:26:01
уже можете сами выбирать что вам
00:26:04
конкретно нужно плюс для красоты добавим
00:26:06
сюда в бот Еще вот такую штуку опять же
00:26:08
из официальных сэмплов у них это
00:26:09
называется conversation handler где у
00:26:11
нас будет уже две кнопки и два теста
00:26:13
соответственно
00:26:22
также проверяем две кнопочки работает
00:26:24
сначала поиск и работает и потом находим
00:26:28
уже число Пи и работает Супер Теперь
00:26:32
давайте подрезюмируем весь этот
00:26:33
коротенький экскурс в разработку
00:26:35
программного обеспечения у нас катет
00:26:38
интерфейса есть telegram-бот для работы
00:26:39
с каким-то сторонним сервисом конкретно
00:26:41
Google диском Где вся сетевая нагрузка
00:26:43
загружается синхронностью мы
00:26:45
подключаемся к открытому E5 Google Диск
00:26:47
и вместо того чтобы прям в самом диске
00:26:48
нажимать всякие кнопки можем управлять
00:26:50
этим диском из-под этого самого
00:26:52
телеграм-бота делать это можно не только
00:26:54
Google диском А вообще чем угодно чего
00:26:56
есть открытый API Если вы будете писать
00:26:58
на питоне то скорее всего часть вашей
00:27:00
работы будет заключаться именно в работе
00:27:01
с различными API помимо Google диска у
00:27:04
нас проекте есть фича по обработке
00:27:05
каких-то грузок которые также достаточно
00:27:07
Легко скелятся но сам интерфейс я не
00:27:10
тронул конкретно Так и что воплотить в
00:27:12
клиентском окне телеграма потому что все
00:27:14
это настраивается очень легко и под
00:27:15
вкусы каждого плюс Я супер не шарю их
00:27:18
дизайне где какую кнопочку оставлять да
00:27:19
ребята если вам нравится ролики с
00:27:21
написанием кода и вообще какой-то
00:27:22
разработкой то ставьте лайки я буду
00:27:24
делать такого больше если вам нравится
00:27:26
Конкретно этот проект и вы хотите дать
00:27:28
какую-то ему жизнь то ставьте 10 лайков
00:27:30
будет 10к прямо сяду подумаю и выключу
00:27:32
вам что-нибудь интересное надеюсь так же
00:27:34
если у вас будут какие-то конкретные
00:27:36
вопросы или проблемы относительно
00:27:37
конкретно этого проекта то Пишите в
00:27:39
комменты будем вместе разбираться для
00:27:41
тех кто любит читать в описании будет
00:27:42
ссылочка на статью где описан весь
00:27:44
процесс разработки плюс весь код будет
00:27:46
на гитхабе Но от меня как обычно только
00:27:48
добра
00:27:52
[музыка]

Описание:

Привет. Как выглядит программирование на Python со стороны типА, которые пишет на С++? Смотрим что получилось, а самое важно, КАК так получилось. Статья с инструкцией: https://selectel.ru/blog/tutorials/telegram-bot-on-python-c/ Гибкие облачные серверы от 15 рублей в день: https://selectel.ru/services/cloud/sharedline/ erid: 2VtzqwpEYo5 Я wndtn, мне 20 c чем-то лет, и я изучаю computer science и программирую ~10 лет. Я into С++, и всякие low-level штуки. У меня есть небольшой проект, xplatform, который вы сможете найти на github, и через него практиковаться в изучении всей базы программирования, и если вам повезет(если вы упорный), вы станете хорошим программистом %) Если нужна помощь в программировании 1 на 1, чекайте ссылки . всем добра Телега - https://t.me/wndtn ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ Весь код - https://github.com/Winderton/python-c-multithreaded-tgbot Лайв Кодинг Сериализации - https://www.youtube.com/watch?v=xWTCUftFQPo Лайк Кодинг Системы Событий - https://www.youtube.com/watch?v=hGsQUaLOWF0 Лайв Кодинг Сокетов - https://www.youtube.com/watch?v=h2g59-9cAuQ Подробнее про ООП - https://www.youtube.com/watch?v=zqxVI_kEdq8 Как работает hello, world детально - https://www.youtube.com/watch?v=02v1nWgkC1w Про структуры данных - https://www.youtube.com/watch?v=K4sYJHuNgmE Про память подробно - https://www.youtube.com/watch?v=UNknX2TRsQQ "Если не найдешь тут какую-то ссылку из видео, то пиши коммент, я сразу ее добавлю". ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ Подпишись сюда: Telega и чатик - https://t.me/wndtn Boosty(менторинг для РФ) - https://boosty.to/wndtn Patreon(для остальных стран) - https://www.patreon.com/winderton Instagram - https://www.facebook.com/unsupportedbrowser Github проекта(код с канала) - https://github.com/winderton ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ Оборудование: Камера - Sony a7ii Объектив - SIgma F1.4 DG Микрофон - AudioTechnica at2035 Звуковая карта - Scarlett Solo Петличка - Rode smartlav+ Клавиатура - HyperX Alloy Вторая клавиатура - apple magic keyboard(black edition) Монитор DELL 25' Монитор Asus mg248q Iphone 11 pro(зеленый) CAMLINK elgato - для стриминга JBL headset ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ Музыка: technica - Unviverse technica - AI technica - Tech ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ 0:00 Введение, что мы будем делать, теория 3:21 Настройка проекта 4:47 Первые строчки Python 13:20 Добавляем С в Python(ЧТО?), отключаем GIL(ЧТО?) 22:14 Тесты производительности(+50% прирост) 23:40 Тесты на Linux в бонуске(segfault) 25:42 Еще тесты(нагрузка процессора на back-end-е) 26:37 Архитектура и итоги(как вообще это все заработало?)

Готовим варианты загрузки

popular icon
Популярные
hd icon
HD видео
audio icon
Только звук
total icon
Все форматы
* — Если видео проигрывается в новой вкладке, перейдите в неё, а затем кликните по видео правой кнопкой мыши и выберите пункт "Сохранить видео как..."
** — Ссылка предназначенная для онлайн воспроизведения в специализированных плеерах

Вопросы о скачивании видео

mobile menu iconКак можно скачать видео "C++ Разработчик учит Python"?mobile menu icon

  • Сайт http://unidownloader.com/ — лучший способ скачать видео или отдельно аудиодорожку, если хочется обойтись без установки программ и расширений. Расширение UDL Helper — удобная кнопка, которая органично встраивается на сайты YouTube, Instagram и OK.ru для быстрого скачивания контента.

  • Программа UDL Client (для Windows) — самое мощное решение, поддерживающее более 900 сайтов, социальных сетей и видеохостингов, а также любое качество видео, которое доступно в источнике.

  • UDL Lite — представляет собой удобный доступ к сайту с мобильного устройства. С его помощью вы можете легко скачивать видео прямо на смартфон.

mobile menu iconКакой формат видео "C++ Разработчик учит Python" выбрать?mobile menu icon

  • Наилучшее качество имеют форматы FullHD (1080p), 2K (1440p), 4K (2160p) и 8K (4320p). Чем больше разрешение вашего экрана, тем выше должно быть качество видео. Однако следует учесть и другие факторы: скорость скачивания, количество свободного места, а также производительность устройства при воспроизведении.

mobile menu iconПочему компьютер зависает при загрузке видео "C++ Разработчик учит Python"?mobile menu icon

  • Полностью зависать браузер/компьютер не должен! Если это произошло, просьба сообщить об этом, указав ссылку на видео. Иногда видео нельзя скачать напрямую в подходящем формате, поэтому мы добавили возможность конвертации файла в нужный формат. В отдельных случаях этот процесс может активно использовать ресурсы компьютера.

mobile menu iconКак скачать видео "C++ Разработчик учит Python" на телефон?mobile menu icon

  • Вы можете скачать видео на свой смартфон с помощью сайта или pwa-приложения UDL Lite. Также есть возможность отправить ссылку на скачивание через QR-код с помощью расширения UDL Helper.

mobile menu iconКак скачать аудиодорожку (музыку) в MP3 "C++ Разработчик учит Python"?mobile menu icon

  • Самый удобный способ — воспользоваться программой UDL Client, которая поддерживает конвертацию видео в формат MP3. В некоторых случаях MP3 можно скачать и через расширение UDL Helper.

mobile menu iconКак сохранить кадр из видео "C++ Разработчик учит Python"?mobile menu icon

  • Эта функция доступна в расширении UDL Helper. Убедитесь, что в настройках отмечен пункт «Отображать кнопку сохранения скриншота из видео». В правом нижнем углу плеера левее иконки «Настройки» должна появиться иконка камеры, по нажатию на которую текущий кадр из видео будет сохранён на ваш компьютер в формате JPEG.

mobile menu iconСколько это всё стоит?mobile menu icon

  • Нисколько. Наши сервисы абсолютно бесплатны для всех пользователей. Здесь нет PRO подписок, нет ограничений на количество или максимальную длину скачиваемого видео.