<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Martin Fitzpatrick</title><link>https://www.martinfitzpatrick.com/</link><description>Python tutorials, projects and books</description><atom:link href="https://www.martinfitzpatrick.com/feeds/rss.xml" rel="self"/><lastBuildDate>Thu, 12 Jun 2025 08:00:00 +0000</lastBuildDate><item><title>Remaking the classic Atari game ET in 10 lines of SAM Coupé BASIC</title><link>https://www.martinfitzpatrick.com/remaking-the-classic-atari-game-et-in-10-lines-of-basic/</link><description>The &lt;a href="https://gkanold.server.deerpower.de/"&gt;Basic 10 Liner contest&lt;/a&gt; has been running for 11 years. This year (2021) the 10th competition,
and the first time I've heard of it, thanks to &lt;a href="http://www.breakintoprogram.co.uk/"&gt;Dean Belfield&lt;/a&gt;.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Sun, 07 Feb 2021 09:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2021-02-07:/remaking-the-classic-atari-game-et-in-10-lines-of-basic/</guid><category>sam-coupe</category><category>basic</category><category>8bit</category><category>games</category></item><item><title>6th Edition - Create GUI Applications with Python &amp; Qt, Released — PyQt6 &amp; PySide6 Books updated for 2025 with model view controller architecture, new Python/Qt features and more examples</title><link>https://www.martinfitzpatrick.com/pyqt6-pyside6-books-updated-2025/</link><description>The 6th edition of my book &lt;em&gt;Create GUI Applications with Python &amp;amp; Qt&lt;/em&gt; is now
available, for PyQt6 &amp;amp; PySide6.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Thu, 12 Jun 2025 08:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2025-06-12:/pyqt6-pyside6-books-updated-2025/</guid><category>pyqt</category><category>qt6</category><category>python</category></item><item><title>PyQt6 Book now available in Korean: 파이썬과 Qt6로 GUI 애플리케이션 만들기 — The hands-on guide to creating GUI applications with Python gets a new translation</title><link>https://www.martinfitzpatrick.com/pyqt6-book-now-available-in-korean/</link><description>I am very happy to announce that my Python GUI programming book
&lt;strong&gt;Create GUI Applications with Python &amp;amp; Qt6 / PyQt6 Edition&lt;/strong&gt; is now available
in Korean from &lt;a href="http://www.acornpub.co.kr/book/python-qt6"&gt;Acorn Publishing&lt;/a&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Thu, 04 May 2023 09:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2023-05-04:/pyqt6-book-now-available-in-korean/</guid><category>pyqt</category><category>qt6</category><category>python</category></item><item><title>Getting Started With Git and GitHub in Your Python Projects — Version-Controlling Your Python Projects With Git and GitHub</title><link>https://www.martinfitzpatrick.com/git-github-python/</link><description>Using a &lt;a href="https://en.wikipedia.org/wiki/Version_control"&gt;version control system (VCS)&lt;/a&gt; is crucial for any software development project. These systems allow developers to track changes to the project's codebase over time, removing the need to keep multiple copies of the project folder.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Mon, 20 Mar 2023 06:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2023-03-20:/git-github-python/</guid><category>python</category></item><item><title>Working With Classes in Python — Understanding the Intricacies of Python Classes</title><link>https://www.martinfitzpatrick.com/python-classes/</link><description>Python supports &lt;a href="https://en.wikipedia.org/wiki/Object-oriented_programming"&gt;object-oriented programming (OOP)&lt;/a&gt; through classes, which allow you to bundle data and behavior in a single entity. Python classes allow you to quickly model concepts by creating representations of real objects that you can then use to organize your code.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Mon, 06 Mar 2023 06:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2023-03-06:/python-classes/</guid><category>python</category></item><item><title>Getting started with VS Code for Python — Setting up a Development Environment for Python programming</title><link>https://www.martinfitzpatrick.com/getting-started-vs-code-python/</link><description>Setting up a working development environment is the first step for any project. Your development environment setup will determine how easy it is to develop and maintain your projects over time. That makes it important to choose the &lt;em&gt;right tools for your project&lt;/em&gt;. This article will guide you through how to set up Visual Studio Code, which is a popular free-to-use, cross-platform code editor developed by Microsoft, in order to develop Python applications.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Wed, 21 Sep 2022 09:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2022-09-21:/getting-started-vs-code-python/</guid><category>python</category></item><item><title>PyQt6, PySide6, PyQt5 and PySide2 Books -- updated for 2022! — New editions extended and updated, now 780+ pages</title><link>https://www.martinfitzpatrick.com/pyqt6-pyqt5-books-updated-2022/</link><description>Hello! Today I have released new digital editions of my PyQt5, PyQt6, PySide2 and PySide6 book &lt;em&gt;Create GUI Applications with Python &amp;amp; Qt&lt;/em&gt;.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Thu, 19 May 2022 09:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2022-05-19:/pyqt6-pyqt5-books-updated-2022/</guid><category>pyqt</category><category>qt6</category><category>python</category></item><item><title>DiffCast: Hands-free Python Screencast Creator — Create reproducible programming screencasts without typos or edits</title><link>https://www.martinfitzpatrick.com/diffcast-python-screencast-creator/</link><description>Programming screencasts are a popular way to teach programming and demo tools. Typically people will open up their favorite editor and record themselves tapping away. But this has a few problems. A good setup for coding isn't necessarily a good setup for video -- with text too small, a window too big, or too many distractions. Typing code in live means mistakes, which means more time editing or confusion for the people watching.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Wed, 26 Jan 2022 11:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2022-01-26:/diffcast-python-screencast-creator/</guid><category>python</category><category>mac</category></item><item><title>PySide6 tutorial now available — Complete course, updated for PySide2 &amp; PySide6</title><link>https://www.martinfitzpatrick.com/pyside-tutorial-now-available/</link><description>Hello! With the release of Qt6 versions of PyQt and PySide the course was getting a little crowded. So, today I've split the PySide tutorials into their own standalone &lt;a href="https://www.pythonguis.com/pyside2-tutorial/"&gt;PySide2 course&lt;/a&gt; and &lt;a href="https://www.pythonguis.com/pyside6-tutorial/"&gt;PySide6 course&lt;/a&gt;.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Fri, 14 May 2021 07:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2021-05-14:/pyside-tutorial-now-available/</guid><category>pyside</category><category>qt6</category><category>python</category><category>qt</category></item><item><title>PyQt6 Book now available: Create GUI Applications with Python &amp; Qt6 — The hands-on guide to making apps with Python</title><link>https://www.martinfitzpatrick.com/pyqt6-book-create-gui-applications-python-qt6/</link><description>Hello! Today I have released the first PyQt6 edition of my book &lt;strong&gt;&lt;a href="https://www.pythonguis.com/pyqt6-book/"&gt;Create GUI Applications, with Python &amp;amp; Qt6&lt;/a&gt;&lt;/strong&gt;.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Fri, 09 Apr 2021 15:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2021-04-09:/pyqt6-book-create-gui-applications-python-qt6/</guid><category>pyqt</category><category>qt6</category><category>python</category></item><item><title>PySide6 Book now available: Create GUI Applications with Python &amp; Qt6 — The hands-on guide to making apps with Python</title><link>https://www.martinfitzpatrick.com/pyside6-book-create-gui-applications-python-qt6/</link><description>Hello! This morning I released the first &lt;strong&gt;Qt6 edition of my PySide book &lt;a href="https://www.pythonguis.com/pyside6-book/"&gt;Create GUI Applications, with Python &amp;amp; Qt6&lt;/a&gt;&lt;/strong&gt;.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Mon, 15 Mar 2021 07:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2021-03-15:/pyside6-book-create-gui-applications-python-qt6/</guid><category>pyside</category><category>qt6</category><category>python</category><category>qt</category><category>pyqt</category></item><item><title>Using MicroPython and uploading libraries on Raspberry Pi Pico — Using rshell to upload custom code</title><link>https://www.martinfitzpatrick.com/using-micropython-raspberry-pico/</link><description>MicroPython is an implementation of the Python 3 programming language, optimized to run microcontrollers. It's one of the options available for programming your Raspberry Pi Pico and a nice friendly way to get started with microcontrollers.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Mon, 22 Feb 2021 08:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2021-02-22:/using-micropython-raspberry-pico/</guid><category>python</category><category>micropython</category><category>electronics</category></item><item><title>Writing Snake in 10 lines of SAM Coupé BASIC — Simple Snake game in 10 lines of BASIC</title><link>https://www.martinfitzpatrick.com/writing-snake-in-10-lines-of-basic/</link><description>The &lt;a href="https://gkanold.server.deerpower.de/"&gt;Basic 10 Liner contest&lt;/a&gt; has been running for 11 years. This year (2021) the 10th competition,
and the first time I've heard of it, thanks to &lt;a href="http://www.breakintoprogram.co.uk/"&gt;Dean Belfield&lt;/a&gt;.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Wed, 03 Feb 2021 19:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2021-02-03:/writing-snake-in-10-lines-of-basic/</guid><category>sam-coupe</category><category>basic</category><category>8bit</category><category>games</category></item><item><title>Writing a SAM Coupé SCREEN$ Converter in Python — Interrupt optimizing image converter</title><link>https://www.martinfitzpatrick.com/writing-a-sam-coupe-screen-converter-in-python/</link><description>The &lt;a href="/tag/sam-coupe"&gt;SAM Coup&amp;eacute;&lt;/a&gt; was a British 8 bit home computer that was pitched as a successor to the ZX Spectrum, featuring improved graphics and sound and higher processor speed.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Thu, 28 Jan 2021 14:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2021-01-28:/writing-a-sam-coupe-screen-converter-in-python/</guid><category>sam-coupe</category><category>python</category></item><item><title>Preserving the FRED disk magazine's text by decoding the Entropy Reader — Writing a SAM Coupé Reader parser in Python</title><link>https://www.martinfitzpatrick.com/preserving-the-fred-disk-magazine-by-decoding-the-entropy-reader/</link><description>FRED was the most popular disk magazine for the &lt;a href="/tag/sam-coupe"&gt;SAM Coup&amp;eacute;&lt;/a&gt; 8 bit home computer.Published by &lt;a href="https://www.worldofsam.org/people/colin-macdonald"&gt;Colin MacDonald&lt;/a&gt; out of sunny Monifieth, Scotland, the magazine ran from it's first issue in 1990 through to it's last (82) in 1998.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Fri, 22 Jan 2021 14:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2021-01-22:/preserving-the-fred-disk-magazine-by-decoding-the-entropy-reader/</guid><category>sam-coupe</category></item><item><title>Squeezing Space Invaders onto the BBC micro:bit's 25 pixels — MicroPython retro game in just 25 pixels</title><link>https://www.martinfitzpatrick.com/squeezing-space-invaders-onto-the-bbc-microbit/</link><description>How much game can you fit into 25 pixels? Quite a bit it turns out.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Thu, 21 Jan 2021 07:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2021-01-21:/squeezing-space-invaders-onto-the-bbc-microbit/</guid><category>python</category><category>micropython</category><category>games</category></item><item><title>Network Interface Design — Details of the SAM Coupé networking circuitry</title><link>https://www.martinfitzpatrick.com/samcoupe-network-schematics/</link><description>In the &lt;a href="/samcoupe-network"&gt;first part&lt;/a&gt; we looked at the information about the SAM Coupe network available in the user manual, technical manual and other examples of networking systems that may have influenced the design on the SAM Coupe. Next I'm going to look at the electrical design of the SAM Coupe and the other devices, to see if they really are compatible and whether we can knock together an interface to start reading the wire protocol.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Fri, 23 Oct 2020 09:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2020-10-23:/samcoupe-network-schematics/</guid><category>sam-coupe</category></item><item><title>SAM Coupé Network — Figuring out the SAM Coupé 8 bit home computer's networking abilities</title><link>https://www.martinfitzpatrick.com/samcoupe-network/</link><description>The &lt;a href="/tag/sam-coupe"&gt;SAM Coup&amp;eacute;&lt;/a&gt; was a British 8 bit home computer that was pitched as a successor to the ZX Spectrum, alongside improved graphics and sound and higher processor speed
it also had in built support for MIDI and networking. The manual talked up how the SAM was &lt;em&gt;ready to expand&lt;/em&gt; and the accompanying image captured my imagination, thinking of all the possibilities this little box had in it.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Wed, 23 Sep 2020 07:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2020-09-23:/samcoupe-network/</guid><category>sam-coupe</category></item><item><title>Create GUI Applications with Python &amp; Qt5, 4th Edition now available (PyQt5 &amp; PySide2) — The hands-on guide to make apps with Python</title><link>https://www.martinfitzpatrick.com/pyqt5-pyside2-book-4th-edition/</link><description>Hello! This morning I released a new update to my PyQt5 book &lt;a href="https://www.pythonguis.com/pyqt5-book"&gt;Create GUI Applications, with Python &amp;amp; Qt5&lt;/a&gt;. This is an enormous update, expanding it from 258 to &lt;strong&gt;665 pages&lt;/strong&gt; and adding &lt;strong&gt;211 complete code&lt;/strong&gt; examples.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Thu, 25 Jun 2020 12:06:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2020-06-25:/pyqt5-pyside2-book-4th-edition/</guid><category>qt</category><category>pyqt</category><category>pyside</category></item><item><title>LearnPyQt — One year in, and much more to come. — A quick retrospective on 2019</title><link>https://www.martinfitzpatrick.com/learn-pyqt-one-year-in-and-more-to-come/</link><description>It's been a very good year.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Tue, 31 Dec 2019 00:12:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2019-12-31:/learn-pyqt-one-year-in-and-more-to-come/</guid><category>qt</category><category>pyqt</category><category>pyside</category></item><item><title>Etch-A-Snap — The Raspberry Pi powered Etch-A-Sketch camera</title><link>https://www.martinfitzpatrick.com/etch-a-snap/</link><description>&lt;strong&gt;Etch-A-Snap&lt;/strong&gt; is (probably) the worlds first &lt;strong&gt;Etch-A-Sketch Camera&lt;/strong&gt;. Powered by a Raspberry Pi Zero (or Zero W) it snaps photos just like any other camera, but outputs them by drawing to an &lt;em&gt;Pocket Etch-A-Sketch&lt;/em&gt; screen. Quite slowly.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Sun, 07 Apr 2019 15:20:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2019-04-07:/etch-a-snap/</guid><category>etch-a-snap</category><category>etch-a-sketch</category><category>python</category><category>raspberry-pi</category></item><item><title>Gyroscopic 3D wireframe cube — Using a 3-axis gyro for live 3D perspective</title><link>https://www.martinfitzpatrick.com/gyroscopic-wireframe-cube/</link><description>This little project combines the previous &lt;a href="/3-axis-gyro-micropython/"&gt;accelerometer-gyroscope&lt;/a&gt; code with the &lt;a href="/3d-rotating-cube-micropython-oled/"&gt;3D rotating OLED cube&lt;/a&gt; to produce a 3D cube which responds to gyro input, making it possible to "peek around" the cube with simulated perspective, or make it spin with a flick of the wrist.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Fri, 11 Jan 2019 08:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2019-01-11:/gyroscopic-wireframe-cube/</guid><category>python</category><category>micropython</category></item><item><title>3-axis Accelerometer-Gyro — Measuring acceleration and orientation with an MPU6050</title><link>https://www.martinfitzpatrick.com/3-axis-gyro-micropython/</link><description>Measuring acceleration and rotation has a lot of useful applications, from drone or rocket stablisation to making physically interactive handheld games.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Tue, 01 Jan 2019 08:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2019-01-01:/3-axis-gyro-micropython/</guid><category>python</category><category>micropython</category></item><item><title>Dictionary Views &amp; Set Operations — Working with dictionary view objects</title><link>https://www.martinfitzpatrick.com/python-dictionary-sets/</link><description>The &lt;em&gt;keys&lt;/em&gt;, &lt;em&gt;values&lt;/em&gt; and &lt;em&gt;items&lt;/em&gt; from a dictionary can be accessed using the &lt;code&gt;.keys()&lt;/code&gt;, &lt;code&gt;.values()&lt;/code&gt; and &lt;code&gt;.items()&lt;/code&gt; methods. These methods return &lt;em&gt;view objects&lt;/em&gt; which provide a view on the source dictionary.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Sun, 30 Sep 2018 06:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2018-09-30:/python-dictionary-sets/</guid><category>python</category></item><item><title>Creating a 3D wireframe cube with MicroPython on an OLED display — Basic 3D model rotation and projection</title><link>https://www.martinfitzpatrick.com/creating-a-3d-rotating-cube-with-micropython-and-oled-display/</link><description>An ESP2866 is never going to compete with an actual graphics card. But it has more than enough oomph to explore the fundamentals of 3D graphics. In this short tutorial we'll go through the basics of creating a 3D scene and displaying it on an OLED screen using MicroPython.</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Martin Fitzpatrick</dc:creator><pubDate>Sun, 23 Sep 2018 07:00:00 +0000</pubDate><guid>tag:www.martinfitzpatrick.com,2018-09-23:/creating-a-3d-rotating-cube-with-micropython-and-oled-display/</guid><category>python</category><category>micropython</category><category>electronics</category></item></channel></rss>