Miguel Grinberg's Avatar

Miguel Grinberg

@miguelgrinberg.com.bsky.social

I write software. And from time to time, I write or speak about writing software.

383 Followers  |  52 Following  |  35 Posts  |  Joined: 18.10.2023  |  1.7295

Latest posts by miguelgrinberg.com on Bluesky

A Python screenshot that shows that str.split() breaks a string and groups multiple spaces into a single break, while str.split(" ") breaks at every single space, creating additional empty elements in the split list.

A Python screenshot that shows that str.split() breaks a string and groups multiple spaces into a single break, while str.split(" ") breaks at every single space, creating additional empty elements in the split list.

Python tip: the str.split() method does something completely different when called without arguments vs. passing a separator character. I spent more time than I'm willing to admit today debugging a string parser, and this was the main issue!

01.08.2025 19:25 β€” πŸ‘ 3    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0
Preview
Benchmarking MicroPython In the Q&A session following my EuroPython 2025 presentation about the Microdot web framework, a member of the audience asked me what the performance of MicroPython running on a microcontroller…

New blog post: Benchmarking MicroPython blog.miguelgrinberg.com/post/benchma...

31.07.2025 14:55 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

This means a lot coming from you @daniel.feldroy.com, thanks!

27.07.2025 09:38 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Certainly! github.com/miguelgrinbe...

21.07.2025 14:11 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image Post image

And here is the list of Microdot features, both for the core part (just 765 lines of code!) and the optional features. I am really proud of having been able to pack so much stuff in so few lines of code!

21.07.2025 11:19 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

This is the slide of my #EuroPython presentation about my Microdot web framework for Python and MicroPython in which I compare its size against well known frameworks.

21.07.2025 11:19 β€” πŸ‘ 7    πŸ” 2    πŸ’¬ 1    πŸ“Œ 0

However, Generative AI as a topic crept pretty much into every hallway conversation at #EuroPython. Even though I'm tired of hearing about GenAI and being asked what I think of it, I was surprised to find much more people than I expected aligned with my views and sharing my concerns.

21.07.2025 09:11 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I'm back from #EuroPython. I have to congratulate the organizers for including a well balanced selection of topics in the program, with a lot of options for those of us who are tired of hearing about Generative AI.

21.07.2025 09:11 β€” πŸ‘ 7    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Miguel Grinberg and me

Miguel Grinberg and me

The man, the myth πŸ‡¦πŸ‡· @miguelgrinberg.com

18.07.2025 23:49 β€” πŸ‘ 8    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0

And I'm off to #EuroPython. I hope to meet some of you in Prague this week!

15.07.2025 05:37 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Why Generative AI Coding Tools and Agents Do Not Work For Me People keep asking me If I use Generative AI tools for coding and what I think of them, so this is my effort to put my thoughts in writing, so that I can send people here instead of having to repeat…

Why Generative AI Coding Tools and Agents Do Not Work For Me blog.miguelgrinberg.com/post/why-gen...

14.06.2025 15:49 β€” πŸ‘ 10    πŸ” 3    πŸ’¬ 0    πŸ“Œ 1

So you let Claude loose on the code, let it try and fail a few times (we don't know how many/for how long) and led it to find you which flag can be used here. Still impressive that it found you a solution, but it would be useful to see the entire context for this session and not just the last bit.

07.06.2025 15:07 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I feel you are underselling yourself here. A person of your experience doesn't just "copy paste". You must have realized that adding an option with such a vague name as "--all-features" could be trouble, correct? Even before seeing the build still failing you must have known this option had to go.

07.06.2025 15:04 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0

The bug that was addressed by Claude in this example was introduced in a previous commit in that same PR, when the --all-features flag was added to the wasm build. Was this flag added by you, or by Claude in a previous attempt? In other words, is Claude here fixing your mistake or its own?

07.06.2025 13:28 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Deciphering Glyph :: I Think I’m Done Thinking About genAI For Now Deciphering Glyph, the blog of Glyph Lefkowitz.

I kinda hated writing this but I needed to do it.

Maybe now, finally, I can stop writing it in little fragments here and there, and just let it go and do something else.

https://blog.glyph.im/2025/06/i-think-im-done-thinking-about-genai-for-now.html

05.06.2025 05:25 β€” πŸ‘ 21    πŸ” 63    πŸ’¬ 9    πŸ“Œ 5
Miguel Grinberg

Miguel Grinberg

Join Miguel Grinberg @miguelgrinberg.com at EuroPython for "Microdot, the impossibly small web framework for Python and MicroPython.". Talk: ep2025.europython.eu/SVTXGC

03.06.2025 12:03 β€” πŸ‘ 3    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Preview
Create a React + Flask Project in 2025 My article on creating a React + Flask project is one of the most visited on this blog. Can you believe that I wrote it over 5 years ago?In this article and video I'm going to share how I'm building…

Here is how I create a React + Flask project in 2025: blog.miguelgrinberg.com/post/create-...

31.05.2025 18:16 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Video thumbnail

Spring Best Sellers Sale Week 4
The Pragmatic Polyglot
40% Off – This Week Only!
Code: 2025POLYGLOT at checkout

Titles on sale this week include -
- The New and Improved Flask Mega-Tutorial by @miguelgrinberg.com
pragprog.com/titles/...

02.05.2025 20:17 β€” πŸ‘ 0    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

In case you haven't heard, The Pragmatic Bookshelf is offering my Flask Mega-Tutorial ebook on sale at 40% off between today and May 7th. Use promo code "2025POLYGLOT" at checkout to receive the discount! pragprog.com/titles/d-mgf...

30.04.2025 14:21 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Just received confirmation that my talk on Microdot has been accepted at #EuroPython2025 in Prague. I look forward to seeing some of you in July and sharing an update on this project!

30.03.2025 10:37 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

The code featured in my Flask Mega-Tutorial is released under the MIT license, so you can use it. The text of the tutorial, however, is not, and I prefer for it to not be used in derivative works.

21.03.2025 13:29 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Thanks! The link is now updated.

16.03.2025 23:06 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Font Ligatures for your Code Editor and Terminal The other day I shared my code editor window during a video call with a client, and he immediately did a double take. "How did you make your code look like that?", he wanted to know. Have a look at…

The new blog post on font ligatures is published! blog.miguelgrinberg.com/post/font-li...

13.03.2025 16:13 β€” πŸ‘ 0    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Post image

I'm working on a blog article about implementing font ligatures in code. Keep an eye out for it in a day or two if you are interested in sprucing up your code editor!

11.03.2025 20:33 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
A Review of The Quick Python Book, Fourth Edition I've been given a review copy of The Quick Python Book, Fourth Edition by Naomi Ceder, published by Manning. Since I often get asked for Python book recommendations, I thought it would be a good idea…

A review of The Quick Python Book, 4th Edition blog.miguelgrinberg.com/post/a-revie...

28.02.2025 12:55 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

Sometimes, we find outstanding self-published titles we 'd truly feel proud to distribute. It's wonderful when our audience agrees.

Right now, 3 of those distribution titles are on our bestsellers list!
pragprog.com/best_se...

@miguelgrinberg.com
Minh Quang Tran
@staffannoteberg.bsky.social

21.02.2025 14:00 β€” πŸ‘ 5    πŸ” 3    πŸ’¬ 0    πŸ“Œ 0
Post image

New at PragProg: Python / Flask Framework
Journey through a realistic web development project using Python and the Flask framework, taking incremental steps from start to finish.

New and improved 2024 edition

pragprog.com/titles/d-mgf...

@miguelgrinberg.com
#Python #FlaskFramework #Flask

07.02.2025 01:18 β€” πŸ‘ 5    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0
Preview
The New and Improved Flask Mega-Tutorial Overarching tutorial for Python beginner and intermediate developers that teaches web development with the Flask framework.

My Flask Mega-Tutorial ebook is now also available from The Pragmatic Bookshelf store, without DRM!

I'm super excited to offer this additional channel for those who do not want to be locked in to Kindle.

pragprog.com/titles/d-mgf...

05.02.2025 16:42 β€” πŸ‘ 5    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0

New blog post: Dynamic Forms with Flask blog.miguelgrinberg.com/post/dynamic...

29.01.2025 15:07 β€” πŸ‘ 6    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Video thumbnail

I'm currently working on a Flask tutorial for my blog about forms that have dynamically growing lists of items. It is surprisingly tricky, but a lot of fun!

27.01.2025 12:42 β€” πŸ‘ 2    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

@miguelgrinberg.com is following 20 prominent accounts