<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>django on gabi cavalcante</title><link>https://gabicavalcante.dev/tags/django/</link><description>Recent content in django on gabi cavalcante</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 12 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://gabicavalcante.dev/tags/django/index.xml" rel="self" type="application/rss+xml"/><item><title>Reliability in Django and Celery: how tasks get lost</title><link>https://gabicavalcante.dev/posts/reliability-in-django-and-celery/</link><pubDate>Wed, 12 Aug 2026 00:00:00 +0000</pubDate><guid>https://gabicavalcante.dev/posts/reliability-in-django-and-celery/</guid><description>&lt;p&gt;Every Django project I have worked on reaches the same moment. A request is too slow, someone moves the slow part into a Celery task, and the page gets fast. Quietly, the function has stopped being a function. It became a message, handed to a broker you do not control, to be run by a worker that might die halfway through. This post is my study guide for everything that can go wrong in that handoff, and what to do about each case.&lt;/p&gt;</description></item><item><title>Creating PDFs with LaTeX and Django</title><link>https://gabicavalcante.dev/posts/creating-pdf-with-latex-and-django/</link><pubDate>Tue, 01 Oct 2019 00:00:00 +0000</pubDate><guid>https://gabicavalcante.dev/posts/creating-pdf-with-latex-and-django/</guid><description>&lt;p&gt;When I started at my new job, the first task was: reports. It was a good way to learn the codebase, but when I opened the file that generated the PDFs, I found something really messed up. Every element (columns, rows, title…) had its position defined by hand, in centimeters. So a task that should have been quick was going to take much longer.&lt;/p&gt;</description></item><item><title>Python, Django and GitHub CI</title><link>https://gabicavalcante.dev/posts/python-django-ci/</link><pubDate>Mon, 30 Sep 2019 00:00:00 +0000</pubDate><guid>https://gabicavalcante.dev/posts/python-django-ci/</guid><description>&lt;p&gt;GitHub Actions was introduced last year, and it’s an API for cause and effect on GitHub. You can orchestrate any workflow, based on any event, you can have your workflow run on push events to master and release branches, or only run on &lt;code&gt;pull_request&lt;/code&gt; events that target the master branch, or run every day of the week at Friday 02:00. The workflows are code in a repository, as you will see in this project, so you can create, share, reuse, and fork.&lt;/p&gt;</description></item></channel></rss>