SlideShare una empresa de Scribd logo
1 de 50
Descargar para leer sin conexión
Python of Things
Борисов Кирилл
PyCon Russia 2017
О докладчике
• Имя ему - Кирилл Борисов
• 10 лет программирует за деньги
• 5 лет души не чает в Python
• Работает в Яндексе и не знает забот
Disclaimer
• Докладчик - не настоящий сварщик электронщик
• Докладчик не несет ответственности за убитое
время
• Доклад никак не связан с работой
О чем этот доклад?
• На дворе - 2017 год
• Интернет вещает из каждой урны и зубной щетки
• Победить это нельзя, самое время присоединиться
• Python + прямые руки = интересные результаты
Internet of Things
Великая куча вещей
Internet of Things
• Различные устройства связаны между собой
• Все они собирают данные…
• …либо воздействуют на окружающий мир
• Работают автономно
Грубая схема
Зарождение идеи
Устройство с высоты птичьего полета
Weatherful
• Индикатор пригодности погоды для прогулок
• Данные забирает из Яндекс.Погоды
• Отображать разные цвета для каждого часа
• Должен работать на Питоне! (sic!)
• Работает от батарейки
Большой конструктор
Source: https://amperka.ru
GPIO
Ввод-вывод на каждый день
Source: https://www.raspberrypi.org/documentation/usage/gpio-plus-and-raspi2/
Что это?
• Физический интерфейс для связи с миром вокруг
• Может работать на вход, так и на выход
• Цифровой интерфейс
• Залог успеха Raspberry Pi и Arduino
Примерная схема
Большой конструктор
Source: https://adafruit.com
Связь c внешним миром
“Major Tom to Ground Control…”
Source: https://i-o-t.ru
Wi-Fi
• Высокая скорость передачи данных
• Типичная модель работы - точка доступа + клиенты
• Большие расходы на обеспечение связи
• Самый массовый способ связи с Интернетом
Bluetooth
• Беспроводная связь двух устройств
• Высокая скорость передачи данных
• Применяется для связи с приложением на смартфоне
• Потребляет много энергии в пассивном режиме
Bluetooth Low Energy
• Развитие идеи Bluetooth
• Цель - минимизация энергопотребления
• Требует поддержки со стороны ОС смартфона
• Ещё не достигла такой же популярности
Message Queue Telemetry Transport
Простое решение для простой проблемы
Source: https://i-o-t.ru
MQTT
• Работает по принципу “Publish-Subscribe”
• Реализован поверх TCP/IP
• Для ограниченных в ресурсах устройств
• Практически незащищен
Принцип работы
Наша схема
Большой конструктор
Что нам нужно?
• Маленький размер
• Имеет GPIO-выходы
• Может соединяться с Wi-Fi
• Способен запускать Python
Raspberry Pi
Продукт, запустивший тысячи проектов
Source: https://www.sparkfun.com/products/retired/11546
Raspberry Pi
• Размером с кредитную карту
• Полноценный компьютер с Linux
• Множество GPIO входов-выходов
• Широко распространен
Raspberry Pi 3 Raspberry Pi Zero W
CPU
1.2 GHz,

4 ядра
1 GHz,
1 ядро
Память 1 GB 512 MB
Порты 4 USB
1 USB On-The-Go
1 USB для питания
Связь
Wi-Fi (b/g/n)

Bluetooth 4.0 (BLE)

Ethernet-порт
Wi-Fi (b/g/n)

Bluetooth 4.0 (BLE)
Размер 85,6 × 53,98 × 17 мм 66 x 30,5 x 5 мм
gpiozero
• Основная цель - уменьшение избыточности
• Встроенные “батарейки” для многих вещей
• Хорошая документация и много примеров
https://github.com/RPi-Distro/python-gpiozero/
Пример
from gpiozero import LED
from time import sleep
led = LED(25)
while True:

led.on()
sleep(1)
led.off()
sleep(1)
MicroPython
Новый Python для новых условий
Source: https://www.sparkfun.com/products/retired/11546
Микроконтроллеры
• Вычислительные устройства малой мощности
• Специализированное железо
• Имеют на борту ЦАПАЦП, таймеры, и т.д.
• Малые объемы оперативной памяти
MicroPython
• Написан с нуля по подобию Python 3.4
• Предназначен для работы на микроконтроллерах
• Работает на “живом железе”
• Имеет много специфики
Пример
from machine import Pin
from time import sleep
led = Pin(15, Pin.OUT)
while True:

led.high()
sleep(1)
led.low()
sleep(1)
Тонкости MicroPython
• Несколько отличий от синтаксиса Python
• Функциональность отличается для разных устройств
• Сильно урезанный набор “батареек”
• Позволяет использовать REPL на устройстве
pyboard
Плата, с которой всё началось
Source: https://www.sparkfun.com/products/retired/11546
pyboard
• Референсная плата
• Основная платформа разработки MicroPython
• Удобна для изучения MicroPython
• 2 порта CAN, ЦАП, АЦП, 2 I2C, 2 SPI, 3 (!) UART
• Отсутствует Wi-Fi и Bluetooth
WeMOS d1 mini
Дешево и сердито
Source: https://www.sparkfun.com/products/retired/11546
WeMOS d1 Mini
• Создан на основе ESP8266 со встроенным Wi-Fi
• Весьма дешевая (~300 рублей с AliExpress)
• Скудные ресурсы: 256 Kb RAM, 1 МБ флэша
• Мало портов: 1 АЦП, 1 I2C, 1 SPI, ~1 UART
Конечный результат
Конечный результат
Домашнее чтение
Книги - это хорошо
Source: https://ourdelhistruggle.com/2008/12/02/delhis-sunday-book-market/
Make:
Electronics
Second Edition
Charles Platt
Simple
electronics
with
GPIO Zero
Phil King
Python
for
Microcontrollers
Donald Norris
Дополнительные ссылки
“Я покажу тебе, как глубоко уходит кроличья нора”
• https://www.raspberrypi.org/

Официальный сайт “Raspberry Pi Foundation”
• https://raspberrypi.ru

Русскоязычное сообщество пользователей
• https://circuits.io/

Дружелюбный симулятор электронных схем.
• https://micropython.org/

Сайт с говорящим названием, на котором вы
можете узнать всё о MicroPython.
• http://amperka.ru/

Интернет-магазин, для тех кто занимается
радиоэлектроникой в свободное время.
• http://fritzing.org/

Отличная утилита для рисования красивых

схем и иллюстраций.

- Вопросы?
Вперед,

на следующий доклад!
- Спасибо!
lensvol
borisov.kir@gmail.com

Más contenido relacionado

Similar a «Python of Things», Кирилл Борисов, Яндекс

CodeFest 2013. Лузин А. — Бэкенд-винегрет: как подружить разные ЯП на ваших с...
CodeFest 2013. Лузин А. — Бэкенд-винегрет: как подружить разные ЯП на ваших с...CodeFest 2013. Лузин А. — Бэкенд-винегрет: как подружить разные ЯП на ваших с...
CodeFest 2013. Лузин А. — Бэкенд-винегрет: как подружить разные ЯП на ваших с...
CodeFest
 
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest
 
Мобильность на Колёсах: об инструментах и полезных вещах
Мобильность на Колёсах: об инструментах и полезных вещахМобильность на Колёсах: об инструментах и полезных вещах
Мобильность на Колёсах: об инструментах и полезных вещах
ITCrowd Almaty
 
Сергей Беляев: Интернет-телевизор - самый недооцененный сегмент разработки #uwdc
Сергей Беляев: Интернет-телевизор - самый недооцененный сегмент разработки #uwdcСергей Беляев: Интернет-телевизор - самый недооцененный сегмент разработки #uwdc
Сергей Беляев: Интернет-телевизор - самый недооцененный сегмент разработки #uwdc
JetStyle
 
CodeFest 2014. Турецкий А. — Puppet как отправная точка в компании
CodeFest 2014. Турецкий А. — Puppet как отправная точка в компанииCodeFest 2014. Турецкий А. — Puppet как отправная точка в компании
CodeFest 2014. Турецкий А. — Puppet как отправная точка в компании
CodeFest
 
Доклад Антона Турецкого на CodeFest 2014. "Puppet как отправная точка в компа...
Доклад Антона Турецкого на CodeFest 2014. "Puppet как отправная точка в компа...Доклад Антона Турецкого на CodeFest 2014. "Puppet как отправная точка в компа...
Доклад Антона Турецкого на CodeFest 2014. "Puppet как отправная точка в компа...
Badoo Development
 
Отладка в Python: 2016 edition
Отладка в Python: 2016 editionОтладка в Python: 2016 edition
Отладка в Python: 2016 edition
Кирилл Борисов
 

Similar a «Python of Things», Кирилл Борисов, Яндекс (20)

Хорошо поддерживаемое приложение
Хорошо поддерживаемое приложениеХорошо поддерживаемое приложение
Хорошо поддерживаемое приложение
 
CodeFest 2013. Лузин А. — Бэкенд-винегрет: как подружить разные ЯП на ваших с...
CodeFest 2013. Лузин А. — Бэкенд-винегрет: как подружить разные ЯП на ваших с...CodeFest 2013. Лузин А. — Бэкенд-винегрет: как подружить разные ЯП на ваших с...
CodeFest 2013. Лузин А. — Бэкенд-винегрет: как подружить разные ЯП на ваших с...
 
Lecture1
Lecture1Lecture1
Lecture1
 
ITGM #9
ITGM #9ITGM #9
ITGM #9
 
Async Python
Async PythonAsync Python
Async Python
 
Natural Language Processing (NLP) with .NET for #dotnetby meetup-29
Natural Language Processing (NLP) with .NET for #dotnetby meetup-29Natural Language Processing (NLP) with .NET for #dotnetby meetup-29
Natural Language Processing (NLP) with .NET for #dotnetby meetup-29
 
Innovecs Meetup Lifestory
Innovecs Meetup LifestoryInnovecs Meetup Lifestory
Innovecs Meetup Lifestory
 
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
 
Мониторинг быстродействия web-проекта / Владимир Буянов (Ultimate Guitar)
Мониторинг быстродействия web-проекта / Владимир Буянов (Ultimate Guitar)Мониторинг быстродействия web-проекта / Владимир Буянов (Ultimate Guitar)
Мониторинг быстродействия web-проекта / Владимир Буянов (Ultimate Guitar)
 
Мобильность на Колёсах: об инструментах и полезных вещах
Мобильность на Колёсах: об инструментах и полезных вещахМобильность на Колёсах: об инструментах и полезных вещах
Мобильность на Колёсах: об инструментах и полезных вещах
 
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
 
Микросервисы: первая кровь
Микросервисы: первая кровьМикросервисы: первая кровь
Микросервисы: первая кровь
 
Сергей Беляев: Интернет-телевизор - самый недооцененный сегмент разработки #uwdc
Сергей Беляев: Интернет-телевизор - самый недооцененный сегмент разработки #uwdcСергей Беляев: Интернет-телевизор - самый недооцененный сегмент разработки #uwdc
Сергей Беляев: Интернет-телевизор - самый недооцененный сегмент разработки #uwdc
 
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
 
Как мы делаем Banki.ru
Как мы делаем Banki.ruКак мы делаем Banki.ru
Как мы делаем Banki.ru
 
Публично доступные блокчейн сети для цифровых паспортов на основе IoTданных
Публично доступные блокчейн сети для цифровых паспортов на основе IoTданныхПублично доступные блокчейн сети для цифровых паспортов на основе IoTданных
Публично доступные блокчейн сети для цифровых паспортов на основе IoTданных
 
CodeFest 2014. Турецкий А. — Puppet как отправная точка в компании
CodeFest 2014. Турецкий А. — Puppet как отправная точка в компанииCodeFest 2014. Турецкий А. — Puppet как отправная точка в компании
CodeFest 2014. Турецкий А. — Puppet как отправная точка в компании
 
Доклад Антона Турецкого на CodeFest 2014. "Puppet как отправная точка в компа...
Доклад Антона Турецкого на CodeFest 2014. "Puppet как отправная точка в компа...Доклад Антона Турецкого на CodeFest 2014. "Puppet как отправная точка в компа...
Доклад Антона Турецкого на CodeFest 2014. "Puppet как отправная точка в компа...
 
Отладка в Python: 2016 edition
Отладка в Python: 2016 editionОтладка в Python: 2016 edition
Отладка в Python: 2016 edition
 
R0boCamp2016 Євген Лохматов: IoT: проблеми і рішення, світові тренди
R0boCamp2016 Євген Лохматов: IoT: проблеми і рішення, світові трендиR0boCamp2016 Євген Лохматов: IoT: проблеми і рішення, світові тренди
R0boCamp2016 Євген Лохматов: IoT: проблеми і рішення, світові тренди
 

Más de it-people

«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
it-people
 
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
it-people
 
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
it-people
 
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАН«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
it-people
 
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
it-people
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
it-people
 
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
it-people
 
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
it-people
 
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
it-people
 
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
it-people
 
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
it-people
 
ЗАВИСИМОСТИ В КОМПОНЕНТНОМ ВЕБЕ, ПРИГОТОВЛЕННЫЕ ПРАВИЛЬНО, Гриненко Владимир,...
ЗАВИСИМОСТИ В КОМПОНЕНТНОМ ВЕБЕ, ПРИГОТОВЛЕННЫЕ ПРАВИЛЬНО, Гриненко Владимир,...ЗАВИСИМОСТИ В КОМПОНЕНТНОМ ВЕБЕ, ПРИГОТОВЛЕННЫЕ ПРАВИЛЬНО, Гриненко Владимир,...
ЗАВИСИМОСТИ В КОМПОНЕНТНОМ ВЕБЕ, ПРИГОТОВЛЕННЫЕ ПРАВИЛЬНО, Гриненко Владимир,...
it-people
 
"Как повысить мотивацию удаленных разработчиков и повысить значимость каждой ...
"Как повысить мотивацию удаленных разработчиков и повысить значимость каждой ..."Как повысить мотивацию удаленных разработчиков и повысить значимость каждой ...
"Как повысить мотивацию удаленных разработчиков и повысить значимость каждой ...
it-people
 

Más de it-people (20)

«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub
 
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
 
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
 
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
 
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
 
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
 
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАН«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
 
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
 
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
 
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
 
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
 
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
 
«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologies«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologies
 
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
 
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
 
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
 
ЗАВИСИМОСТИ В КОМПОНЕНТНОМ ВЕБЕ, ПРИГОТОВЛЕННЫЕ ПРАВИЛЬНО, Гриненко Владимир,...
ЗАВИСИМОСТИ В КОМПОНЕНТНОМ ВЕБЕ, ПРИГОТОВЛЕННЫЕ ПРАВИЛЬНО, Гриненко Владимир,...ЗАВИСИМОСТИ В КОМПОНЕНТНОМ ВЕБЕ, ПРИГОТОВЛЕННЫЕ ПРАВИЛЬНО, Гриненко Владимир,...
ЗАВИСИМОСТИ В КОМПОНЕНТНОМ ВЕБЕ, ПРИГОТОВЛЕННЫЕ ПРАВИЛЬНО, Гриненко Владимир,...
 
ПРАКТИЧЕСКИЙ ОПЫТ ИСПОЛЬЗОВАНИЯ REACT NATIVE + REDUX, Краснояров Станислав, R...
ПРАКТИЧЕСКИЙ ОПЫТ ИСПОЛЬЗОВАНИЯ REACT NATIVE + REDUX, Краснояров Станислав, R...ПРАКТИЧЕСКИЙ ОПЫТ ИСПОЛЬЗОВАНИЯ REACT NATIVE + REDUX, Краснояров Станислав, R...
ПРАКТИЧЕСКИЙ ОПЫТ ИСПОЛЬЗОВАНИЯ REACT NATIVE + REDUX, Краснояров Станислав, R...
 
"Как повысить мотивацию удаленных разработчиков и повысить значимость каждой ...
"Как повысить мотивацию удаленных разработчиков и повысить значимость каждой ..."Как повысить мотивацию удаленных разработчиков и повысить значимость каждой ...
"Как повысить мотивацию удаленных разработчиков и повысить значимость каждой ...
 

«Python of Things», Кирилл Борисов, Яндекс