It's a contentious time to be a software engineer. Some of us really love agentic coding, others hate it with passion. Some say it makes them super-productive, for others it's just useless slop. Little over a year ago, I thought agentic coding was just a fad, I was even annoyed by the AI auto-complete. That is, until I tried Cline (VS Code plugin) in November 2024. It was then that I…
We like step-by-step learning. I have been using and learning GStreamer multimedia framework for the last +5 years, during this time I have also sent back some contributions. My first contribution was the implementation of the Rust version of the HLS sink element in 2021 ( hlssink3 ). But I cannot say that I had completely grasped the framework concepts, it is a very large project and full of…
You know those moments right before falling asleep when your mind wanders and suddenly you get an idea you just have to try out? That's exactly what happened to me last night. Living in Amsterdam as a non-Dutch speaker, I've struggled to keep up with local news and understand the cultural context behind the stories. Sure, I could use Google Translate, but I wanted something more……
When writing code in any programming language, choosing the appropriate constructs is crucial for creating readable and maintainable code, and in Rust is no different. In this post, I will discuss a specific dilemma I find myself thinking often about: deciding between using combinators or match clauses. Let's consider an example where in an application we need to retrieve the value of an…
A few days ago I had to deflate some compressed content using Rust. I quickly found the flate2 crate, it is well maintained and has a very high usage. I decided it would be a great fit for my little project, a CLI tool to download, decompress, and store in a local SQLite3 some content from AWS S3. I wrote my small CLI tool, and it seemed to work perfectly on the first run. It was all nice until…
A curated collection of blogs and podcasts from creators whose content I regularly enjoy. Blogs Netflix Techblog - Learn what my co-workers and I are working on Kevquirk - Provides consistently high-quality material across various topics Stephen Diehl - Features commentary examining digital finance and contemporary scams Podcasts The Pragmatic Engineer - Relevant content for sowftware engineers or…
"I'm Rafael, really like technology and programming. This is my personal blog where I post anything that comes to mind." I'm a technology enthusiast and programmer. This is my personal blog where I share solutions to everyday technical problems and topics that interest me. I write about solutions discovered through my daily work and development activities. Topics I Write About I explore…
A while ago, I started working with GStreamer . I wasn't familiar with the framework before, and took me a while to grasp how it works. I have recently created a mental model which has been helping me understand how to use GStreamer API and I thought sharing it here could also help others. GStreamer is a multimedia framework. It is meant to be used to create applications that can manipulate…
Today I was working on a project that uses GStreamer and reads content using the SRT protocol on my macOS. The SRT elements could not be found in my system after installing GStreamer using Homebrew . I’ve installed all the GStreamer sub-packages from Homebrew. $ brew install gstreamer gst-plugins-base \ gst-plugins-good gst-plugins-bad \ gst-plugins-ugly gst-libav \ gst-rtsp-server…
I quite frequently stumble upon people in the Python community being misled to think that using async Python code will make their APIs “run faster”. Async Python is a great feature and should be used with care. One point that I constantly find being overseen is the mix of sync and async code. The general rule is that we should never mix blocking code with async code. I would like to present in…