Mark Lutz's "Blog" Page

This page is an index to both noteworthy content and recent posts at this

website

. The header and footer wish to note their objection to calling this a "Blog" because that word is both fluid and trendy. But this qualifies on most counts (and "Posts" got 30% fewer hits). Below you'll find:

A

Featured

section which showcases premium content here

Curated

posting lists

that group items by date and category

In the former, tap icons or titles to visit pages. In the latter, higher means newer (roughly), and ⎋ means off-site for hover-challenged gadgets. As of 2022, the latter's posts have also begun relocating to a continuation

page

for space. Most items on this page are not book-specific; for resources that are, see your book's

support page

.

Best-of bits:

general

,

programs

, and

Android

.

General

Learning Python 6E

— The Next Chapter

icon
icon

Thirty years in the making, 2025's Learning Python covers the many mods of Python and its world in the last dozen years. It also slims down in the process, in part by dropping Python 2.X.

Teaching Python

— 25 Years of Spam (so far)

icon
icon

Some history, opinion, and comedy from my first quarter century+ of Python training, writing, and promotion. Includes photos from the crusade: tap its top-of-page scroll or see the next item.

Teaching Python

— The Photos

icon
icon

The image gallery that accompanies the prior item, updated in 2025 to demo new gallery tools. Pictures and narration of travel, books, and gadgets, served with a healthy side order of snark.

Python Changes 2014-2024

— Frankenthon Lives!

icon
icon

A technical and subjective-but-fair look at Python's expansion and convolution since the publication of Learning Python, 5th Edition. Keep your arms and legs inside the car at all times...

Class Workbook

— Free Python Tutorial

icon
icon

The HTML workbook from my former classes. It lacks the words and interaction that went with it, has holes where live demos belong, and is now quite dated, but you may find some of it useful.

Python Strings

— The Web Cut

icon
icon

An early-draft tutorial on Unicode and byte strings in Python, that went on to fame and fortune in large books and evolved separately here. Read the tangled tale and kiss your ASCII goodbye.

Frigcal

— Calendar Sans Login

icon
icon

A basic calendar app for both PCs and Android that's coded in Python and uses a simple folder of ICS files for calendar content. Get Frigcal and keep the bad actors out of the moments of your life.

thumbspage

— Image-Gallery Builder

icon
icon

A program that uses Python, HTML, CSS, and JavaScript to turn a folder of images into a gallery viewable both online and offline in any desktop or mobile browser. Plus rotating space monkeys.

Mergeall

— Sync sans Cloud

A cross-platform GUI+script that does fast backup and change propagation for content folders, no clouds required. With Mergeall, your stuff is your property, not someone else's point of control.

ziptools

— Python's zipfile "++"

A program+library that creates and extracts zips on all platforms, with tools Python's zipfile module lacks: symlink archiving, DST/timezone neutrality, and much more. Think zipfile on steroids.

tagpix

— Organize Those Photos

A tool that merges photos, adds origin dates to make them unique, and automatically handles duplicates—ideal for folks who let their picture folders grow out of control (and we know who we are).

Programs Central

— Get Free Apps Here

The distribution center for more free programs and software written in the Python programming language, which run on both PCs and smartphones and come with privacy baked in. Track this!

Mergeall on Android

— Wishful Syncing?

Run Mergeall on your Android smartphone to sync content to and from a USB drive. No phone rooting or card removal required, though Android bugs and permissions keep it interesting.

Tkinter on Android

— Yes, It Works

Use desktop-level Python Tkinter GUIs on your Android devices, as long as you're willing to run an app's IDE, code around a few glitches, and tolerate freemium advertising. Hey—it's Android.

Android 11

— Just Say No

Learn about Android's latest agenda-laden release, which narrows USB access, slows shared storage to a crawl, and slashes utility. Because we're not to be trusted with our own phones.

Android Deltas Sync

— Just Say Yes

Use Python to sync folders between your PC and phone by USB, despite Android 11's removal of POSIX USB access and Samsung's removal of microSD cards. Bust your content out of Big-Tech prison today!

PC-Phone USB Sync

— The Last Word

Sync folders between PCs and phones by USB, with a Python-coded standalone app that negates Android lockdowns, sports a seamless UI, and runs everywhere. Despite Google's best efforts. Tap Note

here

. The latest buzz:

Python

,

programs

,

books

,

etcetera

.

Python

3.X got f-strings, :=, type hints, match, and async—but no fix for

this

Python 3.10's

switch

; because we couldn't do without one for 30 years?

Python 3.9 convolutes the language and breaks your code;

surprise!

Python Tkinter GUIs finally come to

Android

—advertising

included

python.org ends support for the still-widely-used Python 2.X,

rudely

Python 3.8 is briefly reviewed on

Python Changes

Python 3.7 broke generators too: read the posthumous

coverage

Expanded 3.6 topics—number

underscores

, f-string

interpolation

New Unicode article: mistaking CP-1252 for Latin-1

kills

(quotes)

Python 3.7 earns honorable mention on

Python Changes

Python 3.5's bytes string formatting gets a more thorough

drubbing

Updated 3.5 foibles: type

declarations

and core-language

coroutines

Popular searches: 3.X

strings

, Windows

launcher

, fun with

decorators

Programs

A new

Frigcal

sports a seamless Android

app

(and runs on PCs

too

)

thumbspage

3.0 adds touchpad swipes, HTML tags in notes, and

more

Frigcal

and

PyEdit

both get facelifts and finally do

emojis

(sort of)

The new

PC-Phone USB Sync

app caps a five-year Android

odyssey

Why

Mergeall

uses modtimes instead of checksums to grok

changes

Android Deltas

Sync

phones

,

fun

, and fighting Big-Tech

evil

thumbspage

grows image

notes

like

this

; test-drive

here

,

here

,

here

Just in time for the hõlidäys?—Mergeall adds Unicode

normalization

ziptools

gets faster uncompressed

zips

, and Mergeall does delta

sets

The curiously convoluted case of exFAT and FAT32 on

Linux

Linux file associations and app launcher: a

how-to

for

PyEdit

et al.

All apps

: how to fix blurry Tkinter GUIs on

Windows 10

(and 11)

The latest

ziptools

adds

permissions

, UTC

timestamps

, and

zip@

Use

Mergeall

to sync your content with a USB drive on Android:

how-to

This site now displays code files nicely with

this script

This site has finally grown

search

, using

this script

Books

⎋ $3K per stolen book to build a $1T AI chatbot?...

priceless

Full makeover—LP6E is now in production and

coming soon

The publisher page ends its mission with a

preface

Note to the reader: Python isn't easy; it's just

easier

Books are back? O'Reilly restarts direct book

sales

, and Amazon turns

red

⎋ The show goes on: O'Reilly ends its

conferences

and sells access to

you

The latest publisher

follies

(and one reason my books aren't being

updated

)

A new Chinese translation of Learning Python 5E is out:

cover

,

page

,

etc

Collateral damage?—pages like

this

and

this

lost to publisher morph

O'Reilly

stops selling books

at its site to push online/video subscriptions

⎋ Shockingly, a few videos and AI queries aren't enough to master

anything

Etcetera

⎋ Python code does evil in the movie

Toy Story 5

⎋ Android registers developers and convolutes

sideloading

Google Play ❤️s malicious reviews from hacked

accounts

Android 15's dodgy 6-hours-per-day limit for sync-app

services

Chrome on Android overlays

toolbars

and snatches

downswipes

macOS: AppleDoubles flood

exFAT

, translocation kills

autosaves

Windows Storage Sense might make programs

crash

Google Play badly needs a paradigm shift: tap "Why Free?"

here

GUI apps on Windows WSL2 Linux: marginal but

hopeful

Android 11+ casualty: Pydroid 3 loses shared

storage

(and scope)

Android 13 locks down app-specific storage;

poorly

The Windows-Chrome scrollbar

blues

Lessons learned from a four-year flirtation with

Android

Android 12's "phantom" process killer also kills Termux and

Python

How Android 11

broke

my Python programs (so far)

Android 10 11 may be as locked down and limited

as iOS

Why does Mac OS hate independent developers

so

?

A desktop developer in the

mobile corral

Edge considered harmful: overlaid

lower-left links

In defense of

critical thinking

in open-source software

Gmail users: Be afraid. Be very

afraid

...

You can find more posts like these on the blog continuation page:

Read more here