Многопроцессность, многопоточность, асинхронность в Python и не только. Что это и как работает?


Запускаем мощную платную обучающую программу, интересно принять участие? Пройдите опрос — simpoll.ru/run/survey/c44b6a04

Сказать спасибо можно здесь — boosty.to/digitalize.team

Сегодняшний выпуск — о том, как заставить наше приложение летать! Поговорим о процессорах, о том, как они работают, о многоядерных CPU и Hyper-Threading, о процессах, потоках и многопоточности, а также об асинхронности или кооперативной многозадачности. Будет насыщенно!

0:00 О чём пойдёт речь
0:30 О многозадачности на единственном ядре CPU
1:42 О тактовой частоте процессоров и многоядерных CPU
3:07 Потоки, они же Threads
4:26 Состояние гонки, оно же race condition
5:20 Hyper-Threading и гипер-потоки
7:56 Потоки на многоядерных CPU
8:24 GIL в Python
9:16 Как обслужить тысячу HTTP запросов?
10:09 Асинхронность, кооперативная многозадачность
14:20 Как работает асинхронность
15:31 Выводы

/****************** about ******************/

Меня зовут Алексей Голобурдин, я программирую с 2004 года и на этом канале делюсь своим опытом. Я основатель и руководитель компаний:

— Диджитализируй digitalize.team, разрабатываем сложные IT системы для бизнеса;
— Salesbeat salesbeat.pro, комплексный модуль доставки для интернет магазинов.

Если у вас есть проект на разработку, пишите нам на hi@digitalize.team.

С другими предложениями, а также если вам нужна одна или несколько индивидуальных консультаций/уроков по разработке (3000 руб/час), пишите мне на alexey@salesbeat.pro.

Мои соц сети:
www.facebook.com/a.goloburdin
www.instagram.com/alexeygoloburdin/
vk.com/a.goloburdin

---

Именование переменных, классов и методов в коде


Запускаем мощную платную обучающую программу, интересно принять участие? Пройдите опрос — simpoll.ru/run/survey/c44b6a04

Поддержать канал и получить доступ к закрытым видео — boosty.to/digitalize.team

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

Именование переменных, классов и методов в коде — эта тема кажется простой и, пожалуй, даже не заслуживающей внимания. Все согласны, что называть переменные надо правильными именами и… И, в общем-то всё. Что такое эти правильные имена? Почему часто мы читаем чужой код и чувствуем, что его проще переписать, чем модифицировать? Почему вообще так много плохого, нечитаемого, дурно пахнущего кода появляется каждый день?

Правильный нейминг это не панацея и не серебряная пуля. Однако серьёзный подход к именованию это критически важная особенность качественного кода, равно как безответственный нейминг это наиболее частая особенность кода плохого. В чем же разница между плохим и хорошим неймингом и как научиться писать код, который не захочется через месяц выбросить? Давайте разбираться.

Писать код в Vim или IDE? — www.youtube.com/watch?v=yog7sNQOryM

Ищем ботов в Instagram на Python — www.youtube.com/watch?v=IBmWSr4_9XA

Запуск среды разработки в Tmux — www.youtube.com/watch?v=P10cuGj-J8E

/****************** about ******************/

Меня зовут Алексей Голобурдин, я программирую с 2004 года и на этом канале делюсь своим опытом. Я основатель и руководитель компаний:

— Диджитализируй digitalize.team, разрабатываем сложные IT системы для бизнеса;
— Salesbeat salesbeat.pro, комплексный модуль доставки для интернет магазинов.

Если у вас есть проект на разработку, пишите нам на hi@digitalize.team.

С другими предложениями, а также если вам нужна одна или несколько индивидуальных консультаций/уроков по разработке (3000 руб/час), пишите мне на alexey@salesbeat.pro.

Мои соц сети:
www.facebook.com/a.goloburdin
www.instagram.com/alexeygoloburdin/
vk.com/a.goloburdin

---

91а О Compiz. Ч1.


Поговорим немного о Compiz. Общие правила установки и добавление в автозапуск.
Emerald для Ubuntu — Mint.
yadi.sk/d/ohwibpL03WvuzN

Мои сборки можно скачать по следующим ссылкам:
Mint NW
Яндекс диск
yadi.sk/d/LRvOsmjx3LTaUE
Mega
mega.nz/#F!tHRAlCgC!pgrdEHEwYQKDgwwpS_YgVA

Lubuntu NW
Яндекс диск
yadi.sk/d/HeW-YFjZ3LTchD
Mega
mega.nz/#F!VagglSIQ!mWMzN6UEqnO-KqLOwmAXBg

Сборки МХ (Test Builds)
Яндекс диск
yadi.sk/d/pbSR1_Jj3QEoeZ
Mega
mega.nz/#F!FKwiCKoS!ogB-n8xJoFIu6YBhDywNmQ

Последние сборки на Гугл драйве.
drive.google.com/open?id=1-jZbVgzNAzWLiHncbIIs3-GSsw3YTzOp

Посильная помощь каналу — money.yandex.ru/to/410019152018457
Карта Сбербанка — На странице сайта prostolinux.my1.ru/index/o_sajte/0-8

Евгений Борисов, Барух Садогурский — Приключения Сеньора Холмса и Джуниора Ватсона в мире разработки


. *У вас в голове звучит музыка из вашего любимого сериала про Шерлока Холмса*

— Шерлок, почему опять ничего не работает?

— Это элементарно, друг мой! Во-первых, вы пытаетесь запустить пятый Spring на Java 7. Во-вторых, после пары месяцев использования Groovy вы совершенно перестали уважать точки с запятой. Ну а в-третьих, в вашем ноутбуке сдохла батарея.

Да, это будет необычный доклад. В нем Холмс и Ватсон раскроют несколько загадок, с которыми вы сталкивались, сталкиваетесь или будете сталкиваться при каждодневной разработке. Кишок сборщиков мусора и байткода не будет, зато будут инструменты, библиотеки и фреймворки, которые озадачивают рядовых разработчиков в каждодневной рутине, приводят к простою, профукиванию дедлайнов и затяжным депрессиям. Практически, в этом докладе Шерлок и Ватсон спасают ваш лоб от фейспалмов и граблей, на которые кто-то уже наступал.

[ Видели этот доклад на JPoint или онлайн? Не беспокойтесь, мы оставили зажигательный формат, но набрали нового материала! ]

Протокол DHCP | Курс "Компьютерные сети"


Протокол динамической конфигурации хостов DHCP — Лекции по курсу «Компьютерные сети» — www.asozykin.ru/courses/networks_online

Как можно поддержать курс:
1. Яндекс Кошелек — money.yandex.ru/to/410014298228017
2. PayPal — www.paypal.me/asozykin
Заранее спасибо за помощь!

Добавляйтесь в друзья в социальных сетях:
вКонтакте — vk.com/avsozykin
Facebook — www.facebook.com/asozykin
Twitter — twitter.com/AndreySozykin

Протокол DHCP позволяет назначать IP-адреса компьютерам в сети автоматически.

Протокол использует архитектуру клиент-сервер, которые обмениваются сообщениями в режиме запрос-ответ.

Сообщения DHCP:
— DISCOVER — Поиск DHCP сервера
— OFFER — Предложение IP-адреса DHCP сервером клиенту
— REQUEST — Запрос IP-адреса DHCP клиентом
— ACK — Подтверждение назначения IP-адреса DHCP клиенту
— NACK — Запрет использования запрошенного DHCP клиентом IP-адреса
— RELEASE — Освобождение IP-адреса
— INFORM — Запрос и передача дополнительной конфигурационной информации

Для получения IP-адреса используются следующие сообщения: DISCOVER, OFFER, REQUEST, ACK (сокращенно DORA).

DHCP сервер выдает IP-адрес DHCP клиенту на ограниченное время, которое называется время аренды (lease time). После его окончания IP-адрес освобождается, но
DHCP клиент может продлить использование IP-адреса при необходимости.

Кроме IP-адреса, по DHCP также назначаются дополнительные параметры конфигурации сети. Для передачи этих параметров служат DHCP опции. Примеры часто используемых опций:
— Маска подсети
— Маршрутизатор по умолчанию
— Адреса DNS-серверов
— Имя домена
— Адреса серверов времени
— Маршруты

Практические занятия по курсу «Компьютерные сети» —
goo.gl/YP3l83

Практика «Протокол DHCP в Wireshark» -https://youtu.be/WaP4SZY0GJQ

Мой канал с краткими и понятными объяснениями сложных тем в ИТ и компьютерных науках:
goo.gl/kW93MA

Протокол HTTP | Курс "Компьютерные сети"


Протокол передачи гипертекста HTTP.
Страница курса — www.asozykin.ru/courses/networks_online

Hypertext Transfer Protocol (HTTP) – протокол передачи гипертекста, основа World Wide Web
Тим Бернерс-Ли в ЦЕРН предложил концепцию Web в 1989 году.

Uniform Resource Locator (URL) – уникальное положение ресурса.

В стеке TCP/IP протокол HTTP находится на прикладном уровне. Используется протокол транспортного уровня TCP, порт сервера 80. HTTP работает в режиме запрос-ответ.
Данные передаются в текстовом виде.

Версии протокола HTTP:
HTTP 0.9 – экспериментальная версия ЦЕРН, 1991
HTTP 1 – первая официальная версия протокола, 1996
HTTP 1.1 – расширение первой версии HTTP, 1997. Кэширование, постоянное соединение, аутентификация. Используется сейчас
HTTP 2 – современная версия HTTP, 2015. Вводится в эксплуатацию

Структура пакета HTTP:
— Метод запроса/статус ответа
— Заголовки (не обязательно)
— Тело сообщения (не обязательно)

Методы HTTP:
GET – запрос Web-страницы
POST – передача данных на Web-сервер
HEAD – запрос заголовка страницы
PUT – помещение страницы на Web-сервер
DELETE – удаление страницы с Web-сервера
TRACE – трассировка страницы
OPTIONS – запрос поддерживаемых методов HTTP для ресурса
CONNECT – подключение к Web-серверу через прокси

Статусы HTTP:
1XX – информация
2XX – успешное выполнение (200 ОК)
3ХХ – перенаправление (301 – постоянное перемещение, 307 – временное перенаправление)
4ХХ – Ошибка на стороне клиента (403 – доступ запрещен, 404 – страница не найдена)
5ХХ – Ошибка сервера (500 – внутренняя ошибка сервера)

Практические занятия по курсу «Компьютерные сети» — goo.gl/YP3l83

Мой канал с краткими и понятными объяснениями сложных тем в ИТ и компьютерных науках:
goo.gl/kW93MA