https://blog.miguelgrinberg.com/feed

https://blog.miguelgrinberg.com/index (RSS)
visit blog
The Ultimate Guide to Error Handling in Python
7 Oct 2024 | original ↗

I often come across developers who know the mechanics of Python error handling well, yet when I review their code I find it to be far from good. Exceptions in Python is one of those areas that have a surface layer that most people know, and a deeper, almost secret one that a lot of developers don't even know exists. If you want to test yourself...

How LLMs Work, Explained Without Math
5 May 2024 | original ↗

I'm sure you agree that it has become impossible to ignore Generative AI (GenAI), as we are constantly bombarded with mainstream news about Large Language Models (LLMs). Very likely you have tried ChatGPT, maybe even keep it open all the time as an assistant. A basic question I think a lot of people have about the GenAI revolution is where does...

How To Add Dark Mode Support To Your Website
1 Jan 2024 | original ↗

You may have noticed that I have recently added a dark mode to this blog. The default color theme now follows the theme setting in your operating system by default, and you can also select which mode to enable from the top navigation bar. Nice, right? I have implemented this feature entirely in the front end, using CSS and a touch of JavaScript....

Eliza-GPT: The Classic ELIZA Chatbot Running On OpenAI's Chat Completions API
28 Dec 2023 | original ↗

ELIZA is possibly the first chatbot ever created, dating back to 1966. It was created by Joseph Weizenbaum as an early experiment in natural language processing (NLP). ELIZA is able to hold a conversation in English with a human, and is programmed through a set of pattern matching rules to respond to the user in ways that are similar to how a...

Microdot: Yet Another Python Web Framework
26 Dec 2023 | original ↗

I just realized that I have never written on this blog about Microdot, my very own web framework for Python. I have released Microdot 2.0 a few days ago, so I guess this is a good time to make a belated announcement, and tell you why this world needs yet another Python web framework. But before I tell you about the reasons and the history of...

Announcing the Flask Mega-Tutorial, 2024 Edition
3 Dec 2023 | original ↗

Today I'm super-excited to share that I have made available a major update to the Flask Mega-Tutorial, which I'm calling the "2024 Edition". In the following sections I'll re-introduce the tutorial in case you have not seen it before, and I'll also go over the changes and improvements in this revised edition.

The Flask Mega-Tutorial, Part XX: Some JavaScript Magic
3 Dec 2023 | original ↗

This is the twentieth installment of the Flask Mega-Tutorial series, in which I'm going to add a nice popup when you hover your mouse over a user's nickname.

The Flask Mega-Tutorial, Part XXI: User Notifications
3 Dec 2023 | original ↗

This is the twenty first installment of the Flask Mega-Tutorial series, in which I'm going to add a private message feature, along with user notifications that appear in the navigation bar without the need to refresh the page.

The Flask Mega-Tutorial, Part XXII: Background Jobs
3 Dec 2023 | original ↗

This is the twenty second installment of the Flask Mega-Tutorial series, in which I'm going to tell you how to create background jobs that run independently of the web server.

The Flask Mega-Tutorial, Part XXIII: Application Programming Interfaces (APIs)
3 Dec 2023 | original ↗

This is the twenty third and last installment of the Flask Mega-Tutorial series, in which I'm going to tell you how to extend microblog with an application programming interface (or API) that clients can use to work with the application in a more direct way than the traditional web browser workflow.

↑ these items are from RSS. Visit the blog itself at https://blog.miguelgrinberg.com/index to find other articles and to appreciate the author's digital home.