PythoFF

Menu

Sign in:

read us on

wxPython 4 and PubSub

The Publish-Subscribe pattern is pretty common in computer science and very useful too. The wxPython GUI toolkit has had an implementation of it for a very long time in wx.lib.pubsub. This implementation is based on the PyPubSub package. While you could always download PyPubSub and use it directly instead, it was nice to be able to just run wxPython without an additional dependency. However, as of wxPython 4.0.3, wx.lib.pubsub is now deprecated and will be removed in a future version of wxPython. So now you will need to download PyPubSub or PyDispatcher if you want to use the Publish-Subscribe pattern easily in wxPython. Installing PyPubSub You can install PyPubSub using pip. Here’s how to do it: pip install pypubsub PyPubSub should install quite quickly. Once it’s done, let’s find out how to use it! Continue reading wxPython 4 and PubSub →

home/2019/03/28/42126151b9179f3c9df642e52d51737ce4edc2c0.jpg

How to Stand Out in a Python Coding Interview

In this step-by-step tutorial, you'll learn how to take your Python coding interview skills to the next level and use Python's built-in functions and modules to solve problems faster and more easily.

Book Review: Mission Python

A couple of months ago, No Starch Press asked me if I would be interested in reading one of their new books called Mission Python: Code a Space Adventure Game! by Sean McManus. I enjoy reading new tech books, but it’s hard to work them in when I’ve been so busy this past year. However one of my resolutions for 2019 is to read through my backlog of tech books, so I decided to tackle this one next! Quick Review Why I picked it up: Originally, the publisher asked me check the book out, but I was also interested because I think game programming is intriguing Why I finished it: I mostly skimmed this book, but it’s definitely worth a read to see how to put a game together I’d give it to: Developers that want to learn how quickly and easily it is to write a 2D game in Python Continue reading Book Review: Mission Python →

PyDev of the Week: Miro Hrončok

This week we welcome Miro Hrončok (@hroncok) as our PyDev of the Week! Miro teaches at Czech Technical University and helps out with the local PyLadies chapter. He is also involved with the Special Interest Group for Python in Fedora as he works for Red Hat in addition to his teaching position. You can check out some of the projects he is involved in over on Github or check out his website. Let’s take a few moments to get to know Miro better! Can you tell us a little about yourself (hobbies, education, etc): I’m a guy from Prague, Czech Republic, in my late twenties, yet both of my parents are from Košice, Slovakia, so I’m kinda both Czech and Slovak. I’ve studied Pascal at a gymnasium and later did my bachelors and masters in Computer Science/Software Engineering at the Faculty of Information Technology, Czech Tecnical University in Prague. Most of my hobbies are related to computers and technology but apart from that I have two Irish Wolfhounds and I love to ski. One of my dogs when she was little My technological interest has always been connected to Free and Open Source Software (and Hardware), starting with the Czech Linux community when I was a teenager, co-founding the RepRap 3D Printing Lab during my early years at the university and joining Fedora and later Red Hat, now working in the Python Maintenance team, also pro-active in the Czech Python community. Continue reading PyDev of the Week: Miro Hrončok →

home/2019/03/28/52d43b493e4b980d2548d4b023783026312396c7.jpg

Python for Programmers eBook Giveaway

UPDATE: All copies of the book have now been claimed! Thanks for checking it out! Pearson recently contacted me about doing a giveaway of their new Python book, Python for Programmers: with Big Data and Artificial Intelligence Case Studies I have 5 copies of the eBook to giveaway. All you need to do to claim a copy is tweet this article and tag me @driscollis and then send me a direct message on Twitter with the link or send the link to me via the Contact form on this blog. Here’s some more information about the book from their website: Written for developers with a background in any high-level language, Introduction to Python and Data Science for Programmers explores the Python language and Python APIs in depth, applying the Deitels’ signature live-code approach to teaching programming. Paul Deitel and Dr. Harvey M. Deitel present concepts in the context of fully tested programs, complete with syntax shading, code highlighting, line-by-line code walkthroughs, and program outputs. They feature hundreds of complete Python programs with nearly 20,000 lines of proven Python code, and hundreds of tips to help you build robust applications. You’ll start with an introduction to Python using an early classes and objects approach, and then rapidly move on to more advanced topics. Throughout, you’ll enjoy the Deitels’ classic treatment of object-oriented programming. By the time you’re finished, you’ll have everything you need to build industrial-strength Python applications.

Декораторы в Python: понять и полюбить

Декораторы — один из самых полезных инструментов в Python, однако новичкам они могут показаться непонятными. Возможно, вы уже встречались с ними, например, при работе с Flask, но не хотели особо вникать в суть их работы. Эта статья поможет вам понять, чем являются декораторы и как они работают.

Искусство парсинга или DOM своими руками

Привет, Хабр! Недавно я задался идеей создать простой язык разметки наподобие markdown, который отлично подходил бы для моих задач, а именно — быстрого написания лекций с форматированием и возможностью вставки математических формул «на лету», с применением одной лишь клавиатуры. Чтобы перевести текст, написанный в таком формате, в более понятную форму, например, документ LibreOffice Writer, нужен синтаксический анализатор, проще говоря — парсер. Поскольку я привык делать велосипеды, то направился в поисковые системы с запросами «parser example», «html to DOM», «how to parse html» и др. К моему разочарованию, на всех найденных ресурсах либо приводились элементарные примеры типа калькулятора Страуструпа с рекурсивным спуском, либо использовались готовые решения, такие как flex, bison, llvm и yacc. Библиотек, предназначенных для парсинга строго определённых языков, нашлось ещё больше (gumbo, jsoup, rapidjson, инструменты Qt и др.) Ни то, ни другое не входило в мои планы по написанию парсера своей разметки на C++ с использованием лишь стандартной библиотеки, поэтому моим источником знаний об искусстве парсинга вместо электронных ресурсов стали методички технических институтов. О том, как взять текст и построить из него AST (абстрактное синтаксическое дерево), о некоторых подводных камнях, на которые я натыкался в процессе, о возможных ошибках я сегодня и расскажу. Сразу оговорюсь, — если ваша цель — свой скриптовый язык или что ещё сложнее, этой статьи будет недостаточно для его реализации. В идеале нужно на отлично знать теорию автоматов и дискретные структуры. Но в качестве отправной точки можно пока ограничиться и моим опытом, которым я щедро поделюсь под катом. Это не совсем то, что я задумывал изначально, зато идеально подходит для примера. Парсить мы будем HTML, как простой и всем знакомый язык.

home/2019/03/07/079f6f636429dc0779cc7b6aa67dbbe2db41a938.jpg

Виртуальный Джинн на 8 марта — или как удивить своих сотрудниц в самый весенний день

Завтра по всему миру мы будем отмечать самый женский день в году. И это прекрасно! Но это значит, что сегодня — день, когда мы поздравляем наших дорогих сотрудниц. И каждый год мы (мужская часть трудового коллектива) думаем, как бы сделать это по-особенному… Цветы, вечерний банкет — все эти милые банальности приятны, но в 21-м веке всем хочется чего-то технологичненького и современненького. Вот мы в Just AI думали-думали и таки придумали! Под катом — уже готовый туториал, который вы тоже можете запустить прямо сейчас и превратить обычное 8 марта в море позитива!

home/2019/03/07/f691c4b6a1cbd3f80a58178e365154ae7438d477.jpg

Создаём собственный игровой контроллер

Источник вдохновения На игровых выставках разработчики Objects in Space показывали демо своей игры с контроллером на кокпите огромного космического корабля. Он был дополнен загорающимися кнопками, аналоговыми приборами, световыми индикаторами состояния, переключателями и т.д… Это сильно влияет на погружение в игру: На сайте игры выложен туториал по Arduino с описанием коммуникационного протокола для подобных контроллеров. Я хочу создать то же самое для своей игры В этом примере я потрачу примерно 40 долларов, чтобы добавить красивые, большие и тяжёлые переключатели на кокпит симулятора гонок. Основные затраты связаны с этими самыми переключателями — если бы я использовать простые переключатели/кнопки, то цена была в два раза ниже! Это настоящее оборудование, способное выдерживать 240 Вт мощности, а я буду пускать по ним только примерно 0,03 Вт. Предупреждение: я решил сэкономить, поэтому оставляю ссылку на дешёвый китайский веб-сайт, где закупаю кучу разных компонентов/инструментов. Один из недостатков покупки компонентов по дешёвке заключается в том, что часто у них нет никакой документации, поэтому в статье я решу и эту проблему.

Два в одном: программируемый по Wi-Fi монитор качества воздуха и стрелочные часы

В свое время мне понравился монитор качества воздуха из публикации Сергея Сильнова «Компактный монитор домашнего воздуха (CO2, температура, влажность, давление) с Wi-Fi и мобильным интерфейсом». В мониторе качества воздуха (далее – монитор) из проекта Сергея информация с датчиков температуры, влажности, давления, содержания СО2 в воздухе обрабатывается контроллером ESP8266 и отображается на монохромном экране несколькими кадрами. Кроме того, в мониторе через форму в браузере сохраняется в памяти ESP8266 ключ идентификации сервиса Blynk и автоматически отправляются данные на Blynk. Монитор имел одну серьезную проблему: он зависал на стартовом кадре при выключении-включении или даже «промигивании» напряжения питания монитора. Я повторил проект с несущественными изменениями, а для устранения зависаний монитора добавил в схему альтернативное питание. Простое, как грабли: обмотка реле находилась под напряжением адаптера AC/DC, а его контакты переключали питание с адаптера на батарейки, когда исчезало напряжение в сети 220В. Мой мнимый успех продержался до первого длительного отключения электроэнергии в доме (у нас такое бывает). Дешевые батарейки разрядились раньше, чем появилось напряжение в розетках, а я вернулся к отправной точке. После фальстарта, я решил не искать простых решений.

Book Review: Serious Python

No Starch Press asked me to do a technical review of one of their upcoming books, “Serious Python: Black-Belt Advice on Deployment, Scalability, Testing, and More” by Julien Danjou last year. I had never worked with No Starch before, but decided to give them a try and see how they differed from Packt Publishing. I ended up liking their process and the book was fun to read as well. It should be noted that No Starch did not ask me to do a book review. They only wanted me to do a technical review for them before the book was published. I am writing this review because I think this book should get a little bit more notice. Also I interviewed its author a few years ago, so you might want to check that out too. Quick Review Why I picked it up: Originally, the publisher asked me to do a technical review Why I finished it: The book covers intermediate level material and has an engaging writing style I’d give it to: Beginners that want to grow beyond just knowing Python’s syntax Continue reading Book Review: Serious Python →

home/2019/03/06/b1dc6f96ed664b3c87036d9efc5bf232dd76c43e.jpg

Using PyInstaller to Easily Distribute Python Applications

In this step-by-step tutorial, you'll learn how to use PyInstaller to turn your Python application into an executable with no dependencies or installation required. This is great if you want to distribute applications to users who may or may not be Python developers.

home/2019/03/04/2f29e7955eaa799ff22117658caf7049a473c491.jpg

Refactoring Python Applications for Simplicity

In this step-by-step tutorial, you'll learn how to refactor your Python application to be simpler and more maintainable and have fewer bugs. You'll cover code metrics, refactoring tools, and common anti-patterns.

home/2019/03/04/ffca0ae9d8f252f4d9eea009e152320fb4c3acf1.jpg

Трансформируем рабочее место в лежачее за 200$

По мнению австралийского нейрофизиолога Дарена Липники, люди лучше решают творческие задачи в лежачем положении. Это связано с норадреналином, не дающем нам расслабиться пока тело находится в вертикальном положении. Мысль о работе с компьютером лёжа впервые пришла ко мне ещё во времена студенчества, когда после сидения на дешёвом офисном стульчике очень затекала поясница. Беглый поиск в интернете показал, что офисная мода об этом молчит, а недорогие самодельные решения существуют, но выглядело это всё так сомнительно и неэстетично, что отбивало всякую охоту повторять подвиги умельцев.

PyDev of the Week: Mariusz Felisiak

This week we welcome Mariusz Felisiak (@MariuszFelisiak) as our PyDev of the Week! Mariusz is a core developer of the Django web framework and a maintainer of the django-request package. You can follow Mariusz over on Github to see what he’s been up to. Let’s spend some time getting to know Mariusz! Can you tell us a little about yourself (hobbies, education, etc): Few facts from my life. I’m a software developer with over 11 years of experience in designing and implementing web applications. I graduated in Computer Science in 2010. I defended my PhD thesis related with numerical algorithms in 2018. I’ve done this after few years of coping in the same time with open source activities, daily job and PhD studies. It was a really intense time. I’m always eager to contribute to open source projects which takes a large part of my free time, or at least it took before my daughter was born 🙂 I have been in love with Python and Django for 10 years. From 2017 I’m a member of the Django Core Team and the Django Software Foundations. In the middle of March I’m starting as a Django Fellow so Django will become my daily work! The funniest thing is that I should have more “free-time” 🙂 I’m a huge fan of open source and communities that stand behind them, that’s why I’m trying to be as involved as possible. Outside of the tech world I’m a speedway fan who spends free-time on traveling and winter mountaineering. Continue reading PyDev of the Week: Mariusz Felisiak →

home/2019/03/03/87af65422d3514af42c90b4eb85935e8ac4fd943.jpg

Универсальная машина для проведения испытаний своими руками ч.1

В продолжение тем (первая, вторая) про испытательные машины, хочу собрать бюджетный вариант машины консольного типа, на небольшую нагрузку (20 кг), для испытания различных материалов…

home/2019/03/02/9116a41cda6f36cf54f2b406cfd0bd293ac9bdf6.jpg

Python и FPGA. Тестирование

В продолжение к первой статье, хочу на примере показать вариант работы с FPGA (ПЛИС) на python. В данной статье затрону подробнее аспект тестирования. Если фреймворк MyHDL позволяет людям, работающим на python, используя знакомый синтаксис и экосистему, заглянуть в мир FPGA, то опытным разработчикам ПЛИС смысл использования python не ясен. Парадигмы описания аппаратуры для MyHDL и Verilog похожи, а выбор в пользу определенного языка вопрос привычки и вкуса. За Verilog/VHDL выступает то, что на этих языках давно пишут прошивки, и по факту они являются стандартными для описания цифровой аппаратуры. Python, как новичок в этой сфере, может конкурировать в области написания тестового окружения. Значительную часть времени у FPGA разработчика занимает тестирование своих дизайнов. Далее я хочу на примере продемонстрировать как это делается в python с MyHDL. Допустим, есть задача описать на ПЛИС некое устройство, работающее с памятью. Для простоты возьму память, общающуюся с другими устройствами через параллельный интерфейс (а не через последовательный, например I2C). Такие микросхемы не всегда бывают практичны в виду того, что для работы с ними требуется много пинов, с другой стороны обеспечивается более быстрый и упрощенный обмен информации. Например отечественная 1645РУ1У и ее аналоги.

Sonoff Basic прошивка через Raspberry Pi

Эта инструкция не претендует на новизну. Приведенное тут вполне гуглится (правда на английском языке), но я долго искал с чего начать и решил помочь тем, кто встает на путь общения с Sonoff. Обзоров Sonoff Basic в интернете много в том числе на русском языке, также есть статьи и о том, как подключить его к локальным системам «Умный дом» предварительно перепрошив. Итак, если у вас нет USB-UART (еще не пришел из Китая), а блок Sonoff уже есть и есть Raspberry Pi, то эта статья для вас.

home/2019/03/01/de08b7c573b8dc3a68ecca491d65999bf177006c.jpg

Делаем ST-Link V2.1 из китайского ST-Link V2

Привет, Хабр! В данной статье расскажу как модифицировать ST-Link V2 до ST-Link V2.1. Возможно для кого-то это не будет новостью, но особой инфы по данной теме в инете не нашел. Кому интересно — прошу под кат.

AsyncIO Micropython: методы синхронизации в асинхронном программировании

В последовательном программировании я постоянно сталкиваюсь с очевидным желанием не останавливать работу программы в момент, когда целью отдельных задач(процессов) является периодические действия — например, опрос значений датчиков, или передача данных по расписанию на сервер, или ввод/вывод большого объема данных. Самое простое, конечно, дождаться завершения периодического события и затем, не спеша, продолжить выполнять другие задачи.