#451: Databases are a Fad
About the show
Sponsored by us! Support our work through:
Connect with the hosts
- Michael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky)
- Brian: @brianokken@fosstodon.org / @brianokken.bsky.social
- Show: @pythonbytes@fosstodon.org / @pythonbytes.fm (bsky)
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 10am PT. Older video versions available there too.
Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it.
Michael #1: PostgreSQL 18 Released
- PostgreSQL 18 is out (Sep 25, 2025) with a focus on faster text handling, async I/O, and easier upgrades.
- New async I/O subsystem speeds sequential scans, bitmap heap scans, and vacuum by issuing concurrent reads instead of blocking on each request.
- Major-version upgrades are smoother:
pg_upgrade
retains planner stats, adds parallel checks via-jobs
, and supports faster cutovers with-swap
. - Smarter query performance lands with skip scans on multicolumn B-tree indexes, better
OR
optimization, incremental-sort merge joins, and parallel GIN index builds. - Dev quality-of-life: virtual generated columns enabled by default, a
uuidv7()
generator for time-ordered IDs, andRETURNING
can expose bothOLD
andNEW
. - Security gets an upgrade with native OAuth 2.0 authentication; MD5 password auth is deprecated and TLS controls expand.
- Text operations get a boost via the new
PG_UNICODE_FAST
collation, fasterupper
/lower
, acasefold()
helper, and clearer collation behavior for LIKE/FTS.
Brian #2: Testing is better than DSA (Data Structures and Algorithms)
- Ned Batchelder
- If you need to grind through DSA problems to get your first job, then of course, do that, but if you want to prepare yourself for a career, and also stand out in job interviews, learn how to write tests.
- Testing is a skill you’ll use constantly, will make you stand out in job interviews, and isn’t taught well in school (usually).
- Testing code well is not obvious. It’s a puzzle and a problem to solve.
- It gives you confidence and helps you write better code.
- Applies everywhere, at all levels.
- Notes from Brian
- Most devs suck at testing, so being good at it helps you stand out very quickly.
- Thinking about a system and how to test it often very quickly shines a spotlight on problem areas, parts with not enough specification, and fuzzy requirements. This is a good thing, and bringing up these topics helps you to become a super valuable team member.
- High level tests need to be understood by key engineers on a project. Even if tons of the code is AI generated. Even if many of the tests are, the people understanding the requirements and the high level tests are quite valuable.
Michael #3: Pyrefly in Cursor/PyCharm/VSCode/etc
- Install the VSCode/Cursor extension or PyCharm plugin, see https://pyrefly.org/en/docs/IDE/
- Brian spoke about Pyrefly in #433: Dev in the Arena
- I’ve subsequently had the team on Talk Python: #523: Pyrefly: Fast, IDE-friendly typing for Python (podcast version coming in a few weeks, see video for now.)
- My experience has been Pyrefly changes the feel of the editor, give it a try. But disable the regular language server extension.
Brian #4: Playwright & pytest techniques that bring me joy
- Tim Shilling
- “I’ve been working with playwright more often to do end to end tests. As a project grows to do more with HTMX and Alpine in the markup, there’s less unit and integration test coverage and a greater need for end to end tests.”
- Tim covers some cool E2E techniques
- Open new pages / tabs to be tested
- Using a pytest marker to identify playwright tests
- Using a pytest marker in place of fixtures
- Using page.pause() and Playwright’s debugging tool
- Using assert_axe_violations to prevent accessibility regressions
- Using page.expect_response() to confirm a background request occurred
- From Brian
- Again, with more and more lower level code being generated, and many unit tests being generated (shakes head in sadness), there’s an increased need for high level tests.
- Don’t forget API tests, obviously, but if there’s a web interface, it’s gotta be tested.
- Especially if the primary user experience is the web interface, building your Playwright testing chops helps you stand out and let’s you test a whole lot of your system with not very many tests.
Extras
Brian:
- Big O - By Sam Who
- Yes, take Ned’s advice and don’t focus so much on DSA, focus also on learning to test.
- However, one topic you should be comfortable with in algortithm-land is Big O, at least enough to have a gut feel for it. And this article is really good enough for most people.
- Great graphics, demos, visuals. As usual, great content from Sam Who, and a must read for all serious devs.
- Python 3.14.0rc3 has been available since Sept 18.
- Django 6.0 alpha 1 released
- Python Test Static hosting update
- Some interesting discussions around setting up my own server, but this seems like it might be yak shaving procrastination research when I really should be writing or coding. So I’m holding off until I get some writing projects and a couple SaaS projects further along.
Joke: Always be backing up
Episode Transcript
Collapse transcript
00:00
00:06
00:10
00:18
00:19
00:27
00:33
00:38
00:46
00:54
01:01
01:07
01:13
01:19
01:27
01:31
01:38
01:43
01:45
01:48
01:53
01:57
02:10
02:14
02:21
02:22
02:24
02:28
02:30
02:34
02:36
02:42
02:44
03:02
03:14
03:16
03:19
03:21
03:31
03:34
03:36
03:38
03:41
03:53
03:54
04:00
04:11
04:16
04:20
04:26
04:33
04:38
04:45
04:54
05:00
05:04
05:11
05:18
05:24
05:29
05:33
05:36
05:37
05:43
05:45
05:47
05:49
05:51
05:55
06:01
06:02
06:03
06:05
06:07
06:12
06:13
06:16
06:17
06:20
06:23
06:26
06:27
06:31
06:35
06:35
06:43
06:47
06:49
06:55
07:06
07:10
07:12
07:15
07:22
07:30
07:34
07:41
07:44
07:47
07:51
07:55
07:56
08:02
08:04
08:07
08:09
08:11
08:15
08:17
08:24
08:30
08:36
08:41
08:46
09:11
09:14
09:17
09:21
09:24
09:26
09:32
09:33
09:37
09:39
09:40
09:41
09:46
09:51
09:54
09:56
10:01
10:02
10:05
10:13
10:22
10:33
10:52
10:56
11:04
11:10
11:18
11:20
11:21
11:24
11:28
11:29
11:34
11:35
11:40
11:41
11:42
11:44
11:47
11:49
11:55
11:58
12:03
12:05
12:08
12:14
12:14
12:16
12:18
12:19
12:20
12:26
12:28
12:28
12:32
12:33
12:34
12:35
12:35
12:37
12:39
12:40
12:43
12:45
12:50
12:59
13:04
13:06
13:07
13:11
13:15
13:23
13:30
13:35
13:41
13:47
13:53
14:00
14:06
14:10
14:17
14:17
14:20
14:21
14:24
14:30
14:35
14:39
14:43
14:47
14:48
14:53
14:55
14:59
15:01
15:04
15:06
15:08
15:14
15:17
15:22
15:26
15:31
15:34
15:35
15:37
15:43
15:44
15:48
15:50
15:54
15:57
15:58
15:59
16:04
16:06
16:09
16:15
16:20
16:24
16:26
16:27
16:28
16:29
16:36
16:42
16:48
16:55
16:57
16:58
17:00
17:06
17:10
17:11
17:15
17:19
17:23
17:31
17:34
17:40
17:45
17:53
18:01
18:08
18:14
18:18
18:28
18:35
18:40
18:48
18:51
18:54
18:57
18:59
19:04
19:07
19:10
19:10
19:12
19:13
19:18
19:22
19:26
19:33
19:36
19:39
19:40
19:43
19:47
19:50
19:52
19:55
19:59
20:00
20:08
20:10
20:11
20:21
20:27
20:28
20:29
20:29
20:32
20:34
20:40
20:45
20:51
20:56
21:01
21:06
21:12
21:17
21:18
21:21
21:25
21:25
21:26
21:30
21:33
21:34
21:40
21:43
21:46
21:51
21:52
21:55
21:59
22:03
22:04
22:05
22:10
22:15
22:18
22:21
22:24
22:25
22:28
22:30
22:31
22:32
22:33
22:35
22:36
22:38
22:40
22:40
22:45
22:46
22:48
22:53
22:54
22:58
23:03
23:06
23:07
23:09
23:11
23:13
23:14
23:15
23:18
23:20
23:20
23:23
23:25
23:29
23:29
23:33
23:34
23:35
23:37
23:38
23:39
23:40
23:41
23:41
23:42
23:43
23:44
23:46
23:46
23:51
23:52
23:52