Entrou em vigor hoje no Brasil a Lei 15.211/2025 , também chamada Estatuto Digital da Criança e do Adolescente, ou ECA Digital. Confesso que eu não fazia idéia de que essa lei estava em discussão. Neste post pretendo apenas coletar algumas informações que encontrei enquanto pesquisava sobre o assunto. O principal ponto polêmico dessa lei no mundo Linux é o artigo 12, que prevê que sistema…
I started making a series of videos reading the texts from the book Via Latina: de lingua et vita romanorum . This is a Latin textbook written entirely in Latin, with illustrations and margin explanations to help the reader. In my videos, I try to explain the text in Latin as well, to the best of my ability (and a lot of dictionary searching), with an occasional comparison or reference to other…
Debian 13 ( trixie ) was released in August 2025. I did the upgrade from Debian 12 yesterday. These are some notes on issues I hit along the way. Before all Before I did anything, I made a copy of my / filesystem. I usually have (at least) two system partitions on my computer, so I can try other systems without messing up the main one, or back up the current system before messing it up. I…
[This post is also available in English .] No dia 2 de julho, juntei-me às fileiras das 374 mil pessoas com autorizações de residência expiradas que não conseguem renová-las por pura incompetência do governo. Essa situação bizarra começou ainda em 2020, quando o governo publicou o Decreto-Lei 10-A/2020 , que estabeleceu “medidas excepcionais e temporárias” devido à pandemia. Na época, como as…
[Este post também está disponível em Português .] On July 2, I joined the ranks of the 374 thousand people with expired residency permits in Portugal who are unable to renew them through the sheer incompetence of the government. This bizarre state of affairs started back in 2020, when the government issued Decree-Law 10-A/2020 , which established “exceptional and temporary measures” due to the…
(Expanded from a recent Mastodon post .) A couple of days ago, I was looking at Twitch’s terms of service , and I noticed this (reformatted a bit for ease of reading, and emphasis mine): 8. User Content […] a. License to Twitch (i) Unless otherwise agreed to in a written agreement between you and Twitch that was signed by an authorized representative of Twitch, if you submit, transmit, display,…
A long time ago, I wrote a script, meant to be called via a window manager shortcut, that would read a YouTube (or other video website) URL from the clipboard, extract the video URL with yt-dlp -g , and pass it to vlc or mpv to play. This would play it directly from the stream, without downloading the video first. Then YouTube stopped providing single audio+video streams, and started to provide…
Since times immemorial, this blog has received requests from Facebook's crawler bot, facebookexternalhit . Usually these would come within a few hours or days of me publishing a new post, and I've always assumed that this was either someone sharing the post on Facebook, or someone subscribing from some kind of Facebook-integrated feed reader, which was all fine and well. Some months ago, I started…
[This post is part of a series on Ruby semantics .] In the third installment of this series, we are going to have a look on one of Ruby’s most prominent features: blocks. A block is a piece of code that can be invoked with arguments and produce a value. Blocks can be written like this: {|arg1, arg2, ...| body} Or like this: do |arg1, arg2, ...| body end These forms are equivalent, except for…
[This post is part of a series on Ruby semantics .] I’m still trying to wrap my head around all the intricacies of variable/name scope in Ruby. These notes are part of my attempt to figure it all out, so take it with a grain of salt, and feel free to send corrections and additions in the comments. As I explained in the previous post, the focus of these notes is not on how to use the language, but…