Python + Raspberry Pi GPIOКирилл Борисов
Несколько лет тому назад Интернет лихорадила тяга к Raspberry Pi, одноплатному компьютеру от одноименного фонда. Многие покупали себе "малинку" или её многочисленные клоны, вертели в руках и в лучшем случае делали из неё домашний сервер. Но мало кто догадывался, что загадочный разъем на этой плате хранит в себе потенциал для чего-то большего: от моргания светодиодами до управления сервомоторами, подключения внешних дисплеев и многого другого.
Имя ему - GPIO.
Python-технология которую легко продавать!Aleksey NakorenkoЭта презентация расскажет простым языком о том, что за технология Python, какие у нее сильные и слабые стороны, кто ее использует и для каких проектов она подходит.
Wargaming.net: Архитектура современных 3D движковDevGAMM ConferenceДоклад будет рассказывать о современных подходах проектирования ПО. Основной темой будет построение компонентных архитектур на примере архитектуры сцены 3D движка. Будет рассмотрен классический объектно-ориентированный подход организации сцены, его плюсы и минусы, и в качестве альтернативы будет показан компонентно ориентированный подход организации сцены. Доклад позволит слушателям понять, как разрабатывать сложные системы, которые впоследствии можно легко поддерживать.
Netty jprof 2019_pdfAndrey MizurovNetty’s popularity continues to grow, and we’ll recall its main components, and walk along
WebSocket c Selectivity Compression as the main transport for web games, and Long-Polling is the key to saving stubborn old people.
Natural Language Processing (NLP) with .NET for #dotnetby meetup-29Sergey Tihon(LUIS) from Azure Cognitive Services and IBM Watson. We will also take a look at popular NuGet packages like Stanford.NLP.NET, OpenNLP.NET, and others.
Мониторинг быстродействия web-проекта / Владимир Буянов (Ultimate Guitar)OnticoРИТ++ 2017, Root Conf
Зал Пекин + Шанхай, 5 июня, 10:00
Тезисы:
http://rootconf.ru/2017/abstracts/2643.html
Знаете ли вы, что видят пользователи после деплоя вашего кода на продакшн?
В своем докладе я расскажу:
* Почему мониторинг должен показывать не только, работает сайт или нет, и почему это важно.
* Как мы следим за производительностью кода через мониторинг.
* Как мониторить сайт глазами пользователя.
* Какие метрики наиболее полезны и как их обрабатывать.
* Какие проблемы и как можно обойти автоматикой.
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...OnticoМы посвятили два месяца исследований и разработки сокращению времени запуска нашего приложения. В докладе мы расскажем все, что нам удалось узнать на собственном опыте о приемах и хитростях ускорения приложений под iOS, поделимся конкретными рецептами и расскажем о результатах проделанной работы.
- Что можно и нужно оптимизировать?
- Как сократить время от нажатия на иконку до показа экрана запуска?
- Инструменты анализа производительности: не только Time Profiler.
- Что быстрее: XIB или создание UI в коде?
- Замеры скорости запуска как часть Continuous Integration.
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...SECONНабор практических приемов, которые позволяют создавать сложные многопоточные, параллельные, распределенные серверные приложения программистам без опыта сетевого и многопоточного программирования, работы с базами данных.
Как мы делаем Banki.ruRoman IvlievКартинки к моему рассказу о том, как мы делаем Банки.ру. Некоторые слайды очень неоднозначны без текста. Тезисы тут: http://nastachku.ru/lectures?lecture_id=630#lecture_630
Видео тут https://www.youtube.com/watch?v=m5QuiTZwMrU
Публично доступные блокчейн сети для цифровых паспортов на основе IoTданныхSergey LonshakovПрезентация для доклада с мероприятия Цифровой завод в Москве сентябрь 2019 года
Доклад Антона Турецкого на CodeFest 2014. "Puppet как отправная точка в компа...Badoo Development
Вы понимаете, что жить в компании без документации и ее поддержки плохо, но от этого написанием заниматься нет времени/желания? Я с вами согласен. Как это перебороть? Ответ прозвучит на докладе
Вам приходится поддерживать различные програмные продукты, не только те, что общедоступны и практики «развертки на местности» общеизвестны? Я расскажу, как облегчить эту нелегкую участь.
Вам важно получить готовую к нагрузкам конфигурацию за минимум времени? Этот доклад для вас, приходите.
Вам хотелось бы иметь представление о програмной архитектуре, не читая кучу сопроводительной документации, а лишь «окинув взглядом»?
Вы все еще думаете, что бекапы данных ваших сервисов — это отдельная головная боль? Мир не стоит на месте, я готов поделиться своими соображениями на этот счет
Хотите посмотреть на альтернативную точку зрения выдачи доступов на сервера? приходите
Основная цель доклада — это показать, что большую часть работы и сопровождения ПАК можно перенести на небольшое количество продуктов. В нашем случае это: xCAT -> Puppet, если не вдаваться в бОльшие дебри =)
Отладка в Python: 2016 editionКирилл БорисовСпросите любого программиста и он честно вам ответит, что 90% процентов его времени уходит на поиск ошибок. Подпишусь под этим и я, сменивший за долгие годы множество языков и фреймворков. Действительно, "человеку свойственно ошибаться". Так что же делать, если из человека это свойство не выбить? Как сократить это бездарно потраченное время?
Тот же программист вам и ответ: "отлаживать, конечно". Это искуство сродни магии, доступно всем и покоряется немногим. Но к счастью, помимо проверенной временем практики "вставь сюда print" к услугам питонистов целый зоопарк инструментов.
В этом докладе я постараюсь обобщить самые частые практики отладки, описать их плюсы/минусы и как они соотносятся с Python. Кроме этого, мы совершим обзорный экскурс по экосистеме и посмотрим, чем можно помочь себе в этой нелегкой борьбе. Для особенных эстетов мы рассмотрим техники получения информации из уже запущенного кода. Buckle up!
======
Ссылки
======
Python Debugger Uncovered
https://www.youtube.com/watch?v=2sEPipctTxw
How I built a power debugger out of the standard library and
things I found on the internet
https://www.youtube.com/watch?v=g8kF9tuYZ6s
Architecture of Open Source Applications: GDB
http://www.aosabook.org/en/gdb.html
Advanced Python Debugging Techniques Using GDB
https://www.youtube.com/watch?v=rB9rPdMRxIA
pdb – Interactive Debugger
https://pymotw.com/2/pdb/
bdb — Debugger framework
https://docs.python.org/2/library/bdb.html
«Scrapy internals» Александр Сибиряков, Scrapinghubit-people- Scrapy is a framework for web scraping that allows for extraction of structured data from HTML/XML through selectors like CSS and XPath. It provides features like an interactive shell, feed exports, encoding support, and more.
- Scrapy is built on top of the Twisted asynchronous networking framework, which provides an event loop and deferreds. It handles protocols and transports like TCP, HTTP, and more across platforms.
- Scrapy architecture includes components like the downloader, scraper, and item pipelines that communicate internally. Flow control is needed between these to limit memory usage and scheduling through techniques like concurrent item limits, memory limits, and delays between calls.
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrainsit-peopleThe document discusses debugging in Python 3.6. It describes tracing and frame evaluation debuggers. Tracing debuggers slow code execution significantly by calling the tracing function on every line. Python 3.6 introduced a new frame evaluation API that allows evaluating frames directly, avoiding the performance issues of tracing. The document demonstrates how to build a debugger using this approach, including setting breakpoints and stepping through code by inserting temporary breakpoints on each line. Frame evaluation allows building a debugger that is faster than tracing debuggers without significant performance penalties.
More Related Content
Similar to «Python of Things», Кирилл Борисов, Яндекс (20)
Natural Language Processing (NLP) with .NET for #dotnetby meetup-29Sergey Tihon(LUIS) from Azure Cognitive Services and IBM Watson. We will also take a look at popular NuGet packages like Stanford.NLP.NET, OpenNLP.NET, and others.
Мониторинг быстродействия web-проекта / Владимир Буянов (Ultimate Guitar)OnticoРИТ++ 2017, Root Conf
Зал Пекин + Шанхай, 5 июня, 10:00
Тезисы:
http://rootconf.ru/2017/abstracts/2643.html
Знаете ли вы, что видят пользователи после деплоя вашего кода на продакшн?
В своем докладе я расскажу:
* Почему мониторинг должен показывать не только, работает сайт или нет, и почему это важно.
* Как мы следим за производительностью кода через мониторинг.
* Как мониторить сайт глазами пользователя.
* Какие метрики наиболее полезны и как их обрабатывать.
* Какие проблемы и как можно обойти автоматикой.
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...OnticoМы посвятили два месяца исследований и разработки сокращению времени запуска нашего приложения. В докладе мы расскажем все, что нам удалось узнать на собственном опыте о приемах и хитростях ускорения приложений под iOS, поделимся конкретными рецептами и расскажем о результатах проделанной работы.
- Что можно и нужно оптимизировать?
- Как сократить время от нажатия на иконку до показа экрана запуска?
- Инструменты анализа производительности: не только Time Profiler.
- Что быстрее: XIB или создание UI в коде?
- Замеры скорости запуска как часть Continuous Integration.
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...SECONНабор практических приемов, которые позволяют создавать сложные многопоточные, параллельные, распределенные серверные приложения программистам без опыта сетевого и многопоточного программирования, работы с базами данных.
Как мы делаем Banki.ruRoman IvlievКартинки к моему рассказу о том, как мы делаем Банки.ру. Некоторые слайды очень неоднозначны без текста. Тезисы тут: http://nastachku.ru/lectures?lecture_id=630#lecture_630
Видео тут https://www.youtube.com/watch?v=m5QuiTZwMrU
Публично доступные блокчейн сети для цифровых паспортов на основе IoTданныхSergey LonshakovПрезентация для доклада с мероприятия Цифровой завод в Москве сентябрь 2019 года
Доклад Антона Турецкого на CodeFest 2014. "Puppet как отправная точка в компа...Badoo Development
Вы понимаете, что жить в компании без документации и ее поддержки плохо, но от этого написанием заниматься нет времени/желания? Я с вами согласен. Как это перебороть? Ответ прозвучит на докладе
Вам приходится поддерживать различные програмные продукты, не только те, что общедоступны и практики «развертки на местности» общеизвестны? Я расскажу, как облегчить эту нелегкую участь.
Вам важно получить готовую к нагрузкам конфигурацию за минимум времени? Этот доклад для вас, приходите.
Вам хотелось бы иметь представление о програмной архитектуре, не читая кучу сопроводительной документации, а лишь «окинув взглядом»?
Вы все еще думаете, что бекапы данных ваших сервисов — это отдельная головная боль? Мир не стоит на месте, я готов поделиться своими соображениями на этот счет
Хотите посмотреть на альтернативную точку зрения выдачи доступов на сервера? приходите
Основная цель доклада — это показать, что большую часть работы и сопровождения ПАК можно перенести на небольшое количество продуктов. В нашем случае это: xCAT -> Puppet, если не вдаваться в бОльшие дебри =)
Отладка в Python: 2016 editionКирилл БорисовСпросите любого программиста и он честно вам ответит, что 90% процентов его времени уходит на поиск ошибок. Подпишусь под этим и я, сменивший за долгие годы множество языков и фреймворков. Действительно, "человеку свойственно ошибаться". Так что же делать, если из человека это свойство не выбить? Как сократить это бездарно потраченное время?
Тот же программист вам и ответ: "отлаживать, конечно". Это искуство сродни магии, доступно всем и покоряется немногим. Но к счастью, помимо проверенной временем практики "вставь сюда print" к услугам питонистов целый зоопарк инструментов.
В этом докладе я постараюсь обобщить самые частые практики отладки, описать их плюсы/минусы и как они соотносятся с Python. Кроме этого, мы совершим обзорный экскурс по экосистеме и посмотрим, чем можно помочь себе в этой нелегкой борьбе. Для особенных эстетов мы рассмотрим техники получения информации из уже запущенного кода. Buckle up!
======
Ссылки
======
Python Debugger Uncovered
https://www.youtube.com/watch?v=2sEPipctTxw
How I built a power debugger out of the standard library and
things I found on the internet
https://www.youtube.com/watch?v=g8kF9tuYZ6s
Architecture of Open Source Applications: GDB
http://www.aosabook.org/en/gdb.html
Advanced Python Debugging Techniques Using GDB
https://www.youtube.com/watch?v=rB9rPdMRxIA
pdb – Interactive Debugger
https://pymotw.com/2/pdb/
bdb — Debugger framework
https://docs.python.org/2/library/bdb.html
«Scrapy internals» Александр Сибиряков, Scrapinghubit-people- Scrapy is a framework for web scraping that allows for extraction of structured data from HTML/XML through selectors like CSS and XPath. It provides features like an interactive shell, feed exports, encoding support, and more.
- Scrapy is built on top of the Twisted asynchronous networking framework, which provides an event loop and deferreds. It handles protocols and transports like TCP, HTTP, and more across platforms.
- Scrapy architecture includes components like the downloader, scraper, and item pipelines that communicate internally. Flow control is needed between these to limit memory usage and scheduling through techniques like concurrent item limits, memory limits, and delays between calls.
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrainsit-peopleThe document discusses debugging in Python 3.6. It describes tracing and frame evaluation debuggers. Tracing debuggers slow code execution significantly by calling the tracing function on every line. Python 3.6 introduced a new frame evaluation API that allows evaluating frames directly, avoiding the performance issues of tracing. The document demonstrates how to build a debugger using this approach, including setting breakpoints and stepping through code by inserting temporary breakpoints on each line. Frame evaluation allows building a debugger that is faster than tracing debuggers without significant performance penalties.
«Gevent — быть или не быть?» Александр Мокров, Positive Technologiesit-peopleGevent is a concurrency library for Python that uses greenlets, or lightweight coroutines, to provide asynchronous operations and non-blocking I/O. It allows developing highly concurrent applications using a simple and familiar synchronous style. The document compares gevent to other concurrency options like asyncio and discusses how it provides features like asynchronous task execution, event loops, and inter-greenlet communication using queues and callbacks.
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...it-peopleThe document discusses what serverless computing is and how it can be used for building applications. Serverless applications rely on third party services to manage server infrastructure and are event-triggered. Popular serverless frameworks like AWS Lambda, Google Cloud Functions, Microsoft Azure Functions, and Zappa allow developers to write code that runs in a serverless environment and handle events and triggers without having to manage servers.
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologiesit-peopleThe document describes a talk on optimizing Python performance through just-in-time compilation. It discusses how the CPython interpreter works by evaluating bytecode through an evaluation loop. It then talks about how PyPy achieves faster performance through jit compilation of hot loops detected via tracing. The talk dives into the RPython language used to implement PyPy and shows an example of compiling a small Python program to C with RPython. It also discusses using partial evaluation to specialize an interpreter for constant inputs.
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn Systemit-peopleThe document appears to be a transcript of Python code being executed in an interactive Python shell. It contains examples testing the behavior of built-in functions and operators like sorted(), reversed(), isinstance(), sum(), float("nan"), is, min(), and comparisons like ==, <, on various data types including lists, tuples, and dictionaries.
«(Без)опасный Python», Иван Цыганов, Positive Technologiesit-peopleThe document discusses various security vulnerabilities in Python web applications. It begins with an overview of the OWASP Top 10 security risks, with sections focusing on risks related to using components with known vulnerabilities (A9) and insufficient attack protection (A7). For A9, it provides examples of vulnerabilities in popular Python packages and recommends checking changelogs and vulnerability databases. For A7, it recommends implementing attack protections like login attempts logging, rate limiting, and use of a web application firewall. The document also covers security misconfiguration (A5), giving examples like using default settings in production and exposing tracebacks.
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...it-peopleThe document discusses best practices for writing tests in Swift, including recommendations to:
- Write clean, readable tests that focus on asserting a single truth
- Use a domain-specific language in tests for clarity
- Structure tests with "given-when-then"
- Mock dependencies through protocols to enable test isolation
- Favor partial mocks over fully mocking to limit complexity
2. О докладчике
• Имя ему - Кирилл Борисов
• 10 лет программирует за деньги
• 5 лет души не чает в Python
• Работает в Яндексе и не знает забот
3. Disclaimer
• Докладчик - не настоящий сварщик электронщик
• Докладчик не несет ответственности за убитое
время
• Доклад никак не связан с работой
4. О чем этот доклад?
• На дворе - 2017 год
• Интернет вещает из каждой урны и зубной щетки
• Победить это нельзя, самое время присоединиться
• Python + прямые руки = интересные результаты
6. Internet of Things
• Различные устройства связаны между собой
• Все они собирают данные…
• …либо воздействуют на окружающий мир
• Работают автономно
9. Weatherful
• Индикатор пригодности погоды для прогулок
• Данные забирает из Яндекс.Погоды
• Отображать разные цвета для каждого часа
• Должен работать на Питоне! (sic!)
• Работает от батарейки
11. GPIO
Ввод-вывод на каждый день
Source: https://www.raspberrypi.org/documentation/usage/gpio-plus-and-raspi2/
12. Что это?
• Физический интерфейс для связи с миром вокруг
• Может работать на вход, так и на выход
• Цифровой интерфейс
• Залог успеха Raspberry Pi и Arduino
15. Связь c внешним миром
“Major Tom to Ground Control…”
Source: https://i-o-t.ru
16. Wi-Fi
• Высокая скорость передачи данных
• Типичная модель работы - точка доступа + клиенты
• Большие расходы на обеспечение связи
• Самый массовый способ связи с Интернетом
17. Bluetooth
• Беспроводная связь двух устройств
• Высокая скорость передачи данных
• Применяется для связи с приложением на смартфоне
• Потребляет много энергии в пассивном режиме
18. Bluetooth Low Energy
• Развитие идеи Bluetooth
• Цель - минимизация энергопотребления
• Требует поддержки со стороны ОС смартфона
• Ещё не достигла такой же популярности
19. Message Queue Telemetry Transport
Простое решение для простой проблемы
Source: https://i-o-t.ru
20. MQTT
• Работает по принципу “Publish-Subscribe”
• Реализован поверх TCP/IP
• Для ограниченных в ресурсах устройств
• Практически незащищен
26. Raspberry Pi
• Размером с кредитную карту
• Полноценный компьютер с Linux
• Множество GPIO входов-выходов
• Широко распространен
27. 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 мм
28. gpiozero
• Основная цель - уменьшение избыточности
• Встроенные “батарейки” для многих вещей
• Хорошая документация и много примеров
https://github.com/RPi-Distro/python-gpiozero/
29. Пример
from gpiozero import LED
from time import sleep
led = LED(25)
while True:
led.on()
sleep(1)
led.off()
sleep(1)
32. MicroPython
• Написан с нуля по подобию Python 3.4
• Предназначен для работы на микроконтроллерах
• Работает на “живом железе”
• Имеет много специфики
33. Пример
from machine import Pin
from time import sleep
led = Pin(15, Pin.OUT)
while True:
led.high()
sleep(1)
led.low()
sleep(1)
34. Тонкости MicroPython
• Несколько отличий от синтаксиса Python
• Функциональность отличается для разных устройств
• Сильно урезанный набор “батареек”
• Позволяет использовать REPL на устройстве
36. pyboard
• Референсная плата
• Основная платформа разработки MicroPython
• Удобна для изучения MicroPython
• 2 порта CAN, ЦАП, АЦП, 2 I2C, 2 SPI, 3 (!) UART
• Отсутствует Wi-Fi и Bluetooth
37. WeMOS d1 mini
Дешево и сердито
Source: https://www.sparkfun.com/products/retired/11546
38. WeMOS d1 Mini
• Создан на основе ESP8266 со встроенным Wi-Fi
• Весьма дешевая (~300 рублей с AliExpress)
• Скудные ресурсы: 256 Kb RAM, 1 МБ флэша
• Мало портов: 1 АЦП, 1 I2C, 1 SPI, ~1 UART
46. • https://www.raspberrypi.org/
Официальный сайт “Raspberry Pi Foundation”
• https://raspberrypi.ru
Русскоязычное сообщество пользователей
• https://circuits.io/
Дружелюбный симулятор электронных схем.
47. • https://micropython.org/
Сайт с говорящим названием, на котором вы
можете узнать всё о MicroPython.
• http://amperka.ru/
Интернет-магазин, для тех кто занимается
радиоэлектроникой в свободное время.
• http://fritzing.org/
Отличная утилита для рисования красивых
схем и иллюстраций.