Archives
2024
- Sat 04 May 2024
- Fabric.js Tutorial Part 6
- Sat 04 May 2024
- Fabric.js Tutorial Part 5
- Sat 04 May 2024
- Fabric.js Tutorial Part 4
- Sat 04 May 2024
- Fabric.js Tutorial Part 3
- Sat 04 May 2024
- Fabric.js Tutorial Part 2
- Sat 04 May 2024
- Fabric.js Tutorial Part 1
- Tue 20 February 2024
- Make Lively Movement Animation with PyTweening's Tweening Functions
- Mon 15 January 2024
- Book Review: Geometric Patterns with Creative Coding
2023
- Thu 09 November 2023
- What's New in the 3rd Edition of "Automate the Boring Stuff with Python"
- Thu 15 June 2023
- Using ChatGPT-4 to Review My Recursion Programming Book
- Tue 28 March 2023
- Book Review: Python Distilled
- Tue 28 March 2023
- Book Review: Python in a Nutshell
- Fri 27 January 2023
- How to Install Pygame on Windows, macOS, and Linux
2022
- Sun 20 November 2022
- How to Run Pip From The Python Interactive Shell with pipfromrepl
- Sat 19 November 2022
- Python Linter Comparison 2022: Pylint vs Pyflakes vs Flake8 vs autopep8 vs Bandit vs Prospector vs Pylama vs Pyroma vs Black vs Mypy vs Radon vs mccabe
- Tue 15 November 2022
- I Want To Help Everyone And I Will Fail
- Mon 31 October 2022
- Installing Brython to Get Python in Your Browser
- Sun 30 October 2022
- 17 Online Python IDEs and Interactive Shells/REPLs
- Sat 29 October 2022
- How Computers Store Data with Binary Numbers
- Mon 10 October 2022
- Is Python Compiled or Interpreted?
- Thu 25 August 2022
- How to Run Pip From The Python Interactive Shell
- Tue 23 August 2022
- Introducing Humre: Human-Readable Regular Expressions
- Mon 22 August 2022
- Which Al Sweigart Python Books Should I Start Reading?
- Tue 09 August 2022
- New Book: The Recursive Book of Recursion by Al Sweigart
- Sun 20 March 2022
- How Many Recursive Cases and Base Cases Does a Recursive Function Need?
- Fri 11 March 2022
- Bootstrap 5 Boilerplate Code for New Web Pages
- Wed 09 March 2022
- Make Fractals in Python Turtle with the FractalArtMaker Module
- Wed 23 February 2022
- How to Use Python 3.11's New TOML Parser, tomllib
- Mon 21 February 2022
- Downloading Web Pages and Files in Python 3 and 2 Without the Requests Module
- Fri 18 February 2022
- I Like Al Sweigart's Books, What Can I Read to Get Into Game Programming?
- Thu 03 February 2022
- What Kind of Computer Do I Need to Learn Programming?
- Thu 13 January 2022
- Book Review: Make Python Talk
- Thu 13 January 2022
- Book Review: Serious Python
- Thu 13 January 2022
- Book Review: Tiny Python Projects
2021
- Tue 28 December 2021
- How to Represent a 2D Grid in Python Code
- Mon 27 December 2021
- JavaScript Books That Misspell "JavaScript": How Amazon Became a Minefield of Low-Quality Programming Books
- Mon 20 December 2021
- How to Test Multiple Variables Against a Single Value and a Single Variable Against Multiple Values in Python
- Sun 07 November 2021
- How, As a Kid, I Taught Myself to Code
- Mon 04 October 2021
- 22 Examples of Recursive Functions in Python
- Fri 24 September 2021
- What is a Python Generator? (Implementing Your Own range() Function)
- Sun 05 September 2021
- Recursion Is Not A Superpower: An Iterative Ackermann
- Sat 28 August 2021
- ccwd - A Copy Current Working Directory Command
- Mon 02 August 2021
- Algorithmic Art with the BitFieldDraw Module
- Sat 10 July 2021
- Book Review: The Charisma Machine by Morgan G. Ames
- Sat 03 July 2021
- Combinations and Permutations in Python with itertools
- Sat 26 June 2021
- New Book: The Big Book of Small Python Projects
- Sun 07 March 2021
- Al Sweigart's PyTennessee 2020 Opening Keynote
- Sat 06 March 2021
- Calm Programming Video Series
- Mon 11 January 2021
- Text Recognition in Python with pytesseract
- Mon 11 January 2021
- A Quick Pip Guide: How to Install Python Modules
2020
- Thu 24 December 2020
- Installing the ComputerCraft Mod for Minecraft 1.16 (and later)
- Fri 18 September 2020
- Two Weird Tricks to Help Learn the Git Command Line
- Thu 26 March 2020
- Free Coupon Codes for My Online Courses
2019
- Tue 31 December 2019
- Reading Guide to Automate the Boring Stuff, Second Edition, for Readers of the First Edition
- Sun 24 November 2019
- Type Hints for Busy Python Programmers
- Tue 12 November 2019
- Book Review: Code This Game! by Meg Ray (Odd Dot 2019)
- Sun 20 October 2019
- Live Online Python Class on Twitch on October 21, 2019
- Mon 07 October 2019
- What's New in the 2nd Edition of "Automate the Boring Stuff with Python"
- Thu 15 August 2019
- Python Error Messages: Gotta Catch Em All
- Wed 05 June 2019
- Pythonic Ways to Use Dictionaries
- Fri 01 February 2019
- Hashable Objects Must Be Immutable
2018
- Sun 09 December 2018
- Book Review: The Little Schemer
- Mon 22 October 2018
- A Curriculum for Python Packaging
- Wed 17 October 2018
- Writing Bots to Play Zombie Dice
- Fri 24 August 2018
- PyOhio 2018 Recursion Tutorial
- Fri 17 August 2018
- The Zen of Python, Explained
- Mon 21 May 2018
- Python's Fake Increment and Decrement Operators
- Mon 05 February 2018
- Python Tuples are Immutable, Except When They're Mutable
- Fri 02 February 2018
- How To Ask For Programming Help
2017
- Wed 05 April 2017
- Lessons Learned from Creating a Udemy Course
- Tue 14 March 2017
- How to Install Django 1.10.6 and Python 3.6.0 on Dreamhost Shared Hosting
2015
- Mon 21 September 2015
- "Automate the Boring Stuff with Python" online course now available!
- Tue 15 September 2015
- APIs, not apps: What the future will be like when everyone can code
- Tue 01 September 2015
- Further Reading: Intermediate Python Resources
- Tue 10 March 2015
- 3rd Edition of "Invent Your Own Computer Games with Python" Released
2014
- Sat 20 December 2014
- Translate Your Python 3 Program with the gettext Module
- Wed 17 December 2014
- Programming a Bot to Play the "Sushi Go Round" Flash Game
- Thu 11 December 2014
- Making a Text Adventure Game with the cmd and textwrap Python Modules
- Sat 06 December 2014
- Announcing the "Invent with Python" Bookshelf
- Tue 02 December 2014
- Why is Object-Oriented Programming Useful? (With a Role Playing Game Example)
- Thu 20 November 2014
- IDLE Reimagined
- Tue 30 September 2014
- No, Seriously, Why Should I Learn to Code?
- Tue 11 February 2014
- "Let's Create Software" Tutorial: Bus Routes Overlaid on Google Maps
2013
- Sun 15 December 2013
- Why Is HTML Not A Programming Language?
- Wed 02 October 2013
- "Invent with Scratch" Screencast Series
- Mon 30 September 2013
- Downloading Imgur Posts Linked From Reddit with Python
- Thu 20 June 2013
- Decimal, Binary, and Hexadecimal Odometers
- Thu 13 June 2013
- Source Code Makeover: Demon Kingdom, Part 2
- Wed 12 June 2013
- Source Code Makeover: Demon Kingdom, Part 1
- Tue 11 June 2013
- Comments on John Resig's "Programming Book Profits" (and on Self-Publishing)
- Wed 05 June 2013
- Text Adventure vs. MUD vs. Roguelike vs. Dwarf Fortress
- Mon 22 April 2013
- Multithreaded Python Tutorial with the "Threadworms" Demo
- Mon 15 April 2013
- "Hacking Secret Ciphers with Python" Released
- Tue 19 February 2013
- What Professional Games Use Pygame?
2012
- Thu 27 December 2012
- Why I Recommend Against Hackety Hack
- Mon 10 December 2012
- 8-bit NES Legend of Zelda Map Data
- Wed 21 November 2012
- Programming AI Bots for Zombie Dice
- Tue 30 October 2012
- PygButton - Designing a Button UI Module for Pygame
- Thu 27 September 2012
- Am I Too Old to Learn Programming?
- Fri 17 August 2012
- How Does Compression Work?
- Mon 13 August 2012
- Source Code Makeover: Square Shooter, Part 3
- Fri 10 August 2012
- Source Code Makeover: Square Shooter, Part 2
- Thu 09 August 2012
- Source Code Makeover: Square Shooter, Part 1
- Mon 30 July 2012
- Need a Game Idea? A List of Game Mechanics and a Random Mechanic Mixer.
- Wed 18 July 2012
- Using Trigonometry to Animate Bounces, Draw Clocks, and Point Cannons at a Target
- Mon 09 July 2012
- 16 Common Python Runtime Errors That Beginners Find
- Thu 21 June 2012
- A Common Programmer Mistake: Dog is not the Opposite of Cat
- Wed 16 May 2012
- A Modest Proposal: Please Don't Learn to Code Because It Will Damage Your Tiny Brain
- Thu 03 May 2012
- Implement a "Save Game" Feature in Python with the shelve Module
- Fri 06 April 2012
- Stop Using "print()" for Debugging: A 5 Minute Quickstart Guide to Python’s logging Module
- Sun 25 March 2012
- How to Code a Twitter Bot in Python on Dreamhost
- Mon 19 March 2012
- CircleMUD Data in XML Format for Your Text Adventure Game
- Sun 18 March 2012
- “How much math do I need to know to program?” Not That Much, Actually.
- Sat 03 March 2012
- Nobody Wants to Learn How to Program
- Mon 20 February 2012
- "I Need Practice Programming": 49 Ideas for Game Clones to Code
- Fri 10 February 2012
- New Book: "Making Games with Python & Pygame"
2011
- Fri 09 December 2011
- Pyganim - A Pygame module to make sprite animation dead simple.
- Tue 29 November 2011
- The Things I Dislike About IDLE That I Wish Someone Would Fix
- Fri 21 October 2011
- My awesome exciting indie Pygame games: "Look At This Rock" and "Look At This Rock 2: A Different Rock"
- Fri 21 October 2011
- Pygame Basics Chapter
- Sun 16 October 2011
- Chinese Translation of "Invent with Python" Started
- Fri 07 October 2011
- Pygame Cheat Sheet
- Wed 28 September 2011
- List of Street Names, List of Last Names
- Tue 20 September 2011
- JavaScript Cipher Wheel
- Sun 18 September 2011
- Virtual Caesar Cipher Wheel program
- Sat 17 September 2011
- New Game Source Code: Simon Gesture (Simon clone with mouse gestures)
- Sat 10 September 2011
- Pygcurse - A "curses" Emulator Built on Pygame
- Wed 07 September 2011
- Rough Drafts of My Next Two Books Are Available
- Fri 19 August 2011
- Nobody Cares About a Few Million Nanoseconds
- Thu 11 August 2011
- Recursion Explained with the Flood Fill Algorithm (and Zombies and Cats)
- Fri 24 June 2011
- New Game Source Code: Gemgem (A Bejeweled clone)
- Mon 13 June 2011
- New Game Source Code: Star Pusher (Sokoban clone)
- Fri 10 June 2011
- New Game Source Code: Four in a Row
- Mon 16 May 2011
- Great Pygame Example Site
- Mon 09 May 2011
- "MooseGesture" - Python Mouse Gestures Module
- Sat 30 April 2011
- Free Music, Sound Effects, Tiles, and 2D Art to Use in Your Games
- Sun 06 March 2011
- New Game Source Code: Squirrel Eat Squirrel
- Fri 25 February 2011
- New Extra Game: Connect Four clone
- Sat 12 February 2011
- 1000th Book Sold!
- Wed 09 February 2011
- Cipher Disk Cutout
- Mon 03 January 2011
- Code Comments Tutorial: Flippy
2010
- Fri 03 December 2010
- I am Boycotting Amazon for the Holidays
- Thu 18 November 2010
- Code Comments Tutorial: Tetromino
- Fri 29 October 2010
- Code Comments Tutorial: Snakey
- Fri 08 October 2010
- Code Comments Tutorial: Slide Puzzle Game
- Thu 30 September 2010
- Code Comments Tutorial: Simulate - A "Simon" Clone
- Tue 28 September 2010
- Code Comments Tutorial: Memory Game
- Mon 27 September 2010
- "I Want To Teach My Kid How to Program", A Guide
- Thu 09 September 2010
- Code Comments Tutorial: Ink Spill - A "Flood It" Clone
- Wed 01 September 2010
- The Top 10 Pygame Tutorials
- Fri 25 June 2010
- Gorillas.py: A Remake of Gorillas.bas
- Thu 08 April 2010
- Printed book still being edited.
- Fri 26 February 2010
- "Invent with Python" printed book on the way!
- Tue 05 January 2010
- Version 9 of the Invent Your Own Computer Games with Python PDF is Available
2009
- Tue 24 November 2009
- New Appendices for "Invent Your Own Computer Games with Python"
- Mon 02 November 2009
- Lessons Learned from Writing a Technical Book to Teach Programming
- Thu 29 October 2009
- What's New in the Second Edition of "Invent Your Own Computer Games with Python"