Digital sovereignty is currently the order of the day. It seems European leaders suddenly opened their eyes and realized they were living in a fairy tale. Many practitioners and organizations have been alerting to this need for years (decades?). They were ignored. Nevertheless, this is not the topic of this post, even though it could [ ]
It all started with a post on Lobste.rs, someone asking how others manage their SSH keys. It was a question that I had already asked myself multiple times, so I was genuinely interested in reading about what others had to say. There must be a better way than storing them encrypted on your disk and [ ]
Since I started using DuckDuckGo in the early 2010s, one of my favorite features that made me stay around to this day was the !bangs. Essentially, if you want to search on a particular website, you don t need to open that page before starting to search. With bangs, you just use the appropriate 2 or [ ]
Here we are at the end of another year, so I will share again the two books I enjoyed the most. Before starting, here are the links to similar posts covering the previous years: This time, after thoughtful consideration, I finally included one Portuguese book. It may not be that interesting for an international audience, [ ]
The good part of having a personal blog is that I can write about whatever comes to my mind. Today I was thinking of how people find the software they use, how many people end up using the same apps because they don t know any alternatives, and the fact that many creators (especially open-source ones) [ ]
Another Friday, another Django related post. I guess this blog is becoming a bit monothematic. I promise the next ones will bring the much-needed diversity of contents, but today let s explore a very useful feature of the Django s ORM. Ok… Ok… it s more of a feature of PostgreSQL that Django supports, and it isn t available [ ]
This week, I ll continue on the same theme of my previous “Django Friday Tips” post. Essentially, we will keep addressing small annoyances that can surface while developing your multilingual project. The challenge for this article shows up when a given string from a package that is a dependency of your project is either: As we [ ]
One year ago, I checked the top 1 million “websites” for a security.txt file and then posted the results in this blog. As it was described at the time, I used a tool written by someone else who had already run this “experiment” in 2022. You can look at the post, if you are keen [ ]
Since late January, the python package index (PyPI) supports archiving projects/packages. This is, in fact, a very welcome feature, since it clearly tells without any doubt when a package is no longer maintained and will not receive any further updates. It makes it easier for the person looking for packages, to know which ones deserve [ ]
Here we go again for another post of this blog s irregular column, entitled Django s Friday Tips. Today let s address a silent issue, that any of you that have formerly worked with internationalization (i18n) almost certainly already faced. You add a string that must be translated: You then execute the manage.py makemessages --locale pt command, go [ ]
Another year went by, and another batch of books was consumed. Just like I did last year, I want to share the ones that I enjoyed the most. But what kind of metric is that? Truth be told, it is not an objective one. Last year, I clearly described it like this: I don’t mean [ ]
I ve been participating in the Fediverse through my own mastodon instance since 2017. What started as an experiment to test new things, focused on exploring decentralized and federated alternatives for communicating on top of the internet, stuck. At the end of 2024, I m still there. The rhetoric on this network is that you should find [ ]
Spam is everywhere. If you have an email account, a mailbox, a website with comments, a cellphone, a social media account, a public form, etc. We all know it, it is a plague. Over the years, there have been multiple attempts to fight spam, with various degrees of success, some more effective than others, some [ ]
In practice this already happened a couple of years ago, now we are just making it official. For those who don t know, Hawkpost is a side project that I started while at Whitesmith back in 2016 (8+ years ago). I ve written about it here in the blog on several occasions. To sum it up, it [ ]
Ironically, according to my experience, the .well-known directory doesn t do justice to its name. Even in use cases that would fit nicely in its original purpose. But I m getting a bit ahead of myself. Let s first start with what it is, then move to discuss where it s used. But we ll do this rapidly, otherwise this [ ]
PyCon US happened in May, this month, the 154 videos gradually started being published on YouTube. Between now and then many other interesting conferences took place. That s a lot of talks, presentations, and content to be digested. The truth is, I and most people, won t watch it all since our time is limited. One option, [ ]
This week, I m back at my tremendously irregular Django tips series, where I share small pieces of code and approaches to common themes that developers face when working on their web applications. The topic of today s post is how to implement a counter that isn t vulnerable to race conditions. Counting is everywhere, when handling money, [ ]
Earlier this year, I decided to explore Redis functionality a bit more deeply than my typical use-cases would require. Mostly due to curiosity, but also to have better knowledge of this tool in my “tool belt”. Curiously, a few months later, the whole ecosystem started boiling. Now we have Redis, Valkey, Redict, Garnet, and perhaps [ ]
The last couple of years have been dominated by the advancements in the Artificial Intelligence (AI) field. Many of us witnessed and are currently experiencing some sort of renaissance of AI. It started with generated images from prompts, then it was all types of written content, and in the last few weeks we ve seen astonishing [ ]
A few years ago, I covered here in the blog the “security.txt spec”. A standard place with the security related contacts, designed to help researchers, and other people, find the right contacts to report vulnerabilities and other problems. At the time, I added it to my personal domain, as an example. When I wrote the [ ]
Bitcoin Atlantis is just around the corner. This conference, happening here in Madeira, is something unusual for us locals. The common pattern is that we have to fly to attend such conferences. I plan to attend the event, and I will be there with an open mindset, since there are always new things to learn. [ ]
To be sincere, I have a strong preference for written content. There is something with audio and video (podcasts and streams) that doesn t fit very well with me or how I consume content when I m at the computer. Nevertheless, there is a lot a great content that is only available through podcasts. So sometimes I [ ]
Reporting application errors to a (small) list of admins is a feature that already comes built in and ready to use in Django. You just need to configure the ADMINS setting and have the application ready to send emails. All application errors (status 500 and above) will trigger a new message containing all the details, [ ]
Today, let s go back to the topic of the first post in this series of Django tips. At the time, I focused on the python manage.py check --deploy command. In this article, I will explore the feature on which it is built and how it can be quite handy for many other scenarios. So, the [ ]
If you are a frequent reader of this blog, you might already know that I created a small tool to generate a simple webpage plus an RSS feed, from the content of multiple other RSS sources, called worker-planet. This type of tool is often known as a “planet”: In online media a planet is a [ ]
We reached the end of another year, and generally, this is a good time to look back, to evaluate what was done, what wasn t done and eventually plan ahead. While dedicating some time to the first task, it occurred to me that I should share some of this stuff. I doubt it will be useful [ ]
Occasionally, modern baby monitors hit the news, but not for the best reasons. Sometimes for the lack of security, other times for exploitative practices, etc. This also applies to many other categories of products that we can include in the so-called Internet of Things . After reading a recent article about the topic, some comments with [ ]
The possibilities of the ActivityPub protocol, and what it can bring to the table regarding interoperability in the social media landscape, are immense. It is specially welcome after a decade (and half?) plagued by the dominance of centralized walled gardens that almost eradicated the diverse ecosystem that previously existed. It is used by many software [ ]
No matter how much you try to delay and how many reasons you find to postpone, eventually the time comes. You need to update and upgrade your software, your system components, your apps, your dependencies, etc. This happens to all computer users. On some systems, this is an enjoyable experience, on other systems as painful [ ]
Ten years ago, after it became clear to almost everyone that all our online activity was being tracked and stored, I wrote a blog post about simple steps a person could take to improve their privacy online. Essentially, it contains a few recommendations that everyone could follow to reduce their fingerprint without much effort. It [ ]