RSSAmplifier

Blog

Elias Dorneles

Elias Dorneles's blog

eliasdorneles.comRSS feed ↗20 posts

Latest posts

Reflections after two years of tinkering with Zig and Odin for audio stuff

After many years of Python as my main programming language, I started learning Zig around the end of 2023 . One of my goals was to tinker with audio programming, and I thought my life would be simpler if I could avoid C++. I'm now wondering if maybe I should learn C++ anyway... 🤔 What can I say, I get excited about programming languages! Ever since I was in college, 20 years ago, I enjoy learning…

zenmarked for Markdown editing + my history with lightweight markup languages

It's been a wild ride for lightweight markup languages the last few decades! Let's go through some of the different markup languages I've used during the past 20 years or so. Some of these I learned by personal interest, some because I was forced to use, and each has its own feel. Markup languages I've used or dabbled with BBCode : Like many people using the Internet in the 2000s, I was exposed to…

Fluid blogging again -- with images!

Okay, I am very excited about this! I just built a blog post manager/editor that I am using right now writing these lines, and it's so cool! It was fully vibecoded and it works like a charm! Let's recap with... A little blogging history It all started with Wordpress The very first posts of this blog were written in 2011, in a Wordress.com website that is actually still available , except it's…

Full revamp of my drum game

In the past week I've fully revamped my drum game that I had initially written like 10 years ago. Play it here The Revamp Story Before: The drum game 2 years ago After: The game after revamp Did I use agent coding? Well, yes, I did! I also used Gemini for some help improving the copy. Actually I used this game project to try Claude Code again, since I had paid for an annual subscription which I…

Introducing MooMoolah -- simple monthly budget planning

I wanted a simple, lightweight way to keep track of my money, but without the tedious task of logging every single expense. What I wanted was something that could take my typical income and most important recurring expenses, then give me a rough, actionable forecast for the months ahead. I tried using a Google Sheets spreadsheet, but I got tired of fighting with it, trying to get it to do what I…

Learning Odin

Over the past month or so I've been learning Odin and I'm enjoying it so much that I'm breaking the silence on the blog. I was quite into Zig for a while, but Odin seems more mature at this point and, honestly, much more learnable and easier to make things work. Writing Odin makes me remember what it was like when I started writing Python -- that feeling of "it can't be this easy, can it??" . I…

So I'm releasing a single!

I have written a few songs over the years, their lyrics are scribbled down on a personal archive and there are some terrible home-made (phone-made!) recordings of them laying around, stuff that I've shared with friends and family over WhatsApp and the like. This one is different! I've written this song while writing a short autobiography, as an existential therapy exercise, and I was trying to…

The Joy of YAML

I haven't written much on the blog on the last few years, I don't know, I didn't felt like I had much to say. There is so much being said on the Web, lots of great stuff, but also tons of crap too, and I didn't feel like adding to the noise. I've learned loads of stuff, but not in the mood for sharing, and anyway the most important stuff wasn't related to tech. But today I've got the itch to…

Em busca de conteúdo francófono

Faz pouco mais de um ano que estou morando na França, e ainda estou descobrindo onde encontrar bom conteúdo francófono na internet. O Netflix tem vários filmes e algumas séries, mas acho que poderia melhorar muito o catálogo francófono. Quando eu estava no Brasil não haviam muitas opções, e o catálogo é melhor estando aqui na França, mas ainda deixa muito a desejar. Ainda bem que tem bastante…

Cool Linux apps you might not know

Trying to ship the old blog post drafts Here are some cool Linux apps you might not know yet. sm -- or, screen message sm is a small app to display text big and fullscreen. Simple as that. Flameshot flameshot is an awesome app for making screenshots. I've mapped my PrintScr key to launch flameshot gui . Play it slowly Play It Slowly is an app to play an audio or video slower (or faster), while…

Post Pycon blues

When I arrived at Cleveland's airport a few weeks ago to attend Pycon , the customs agent didn't know that there was a tech conference happening in town. I'm sure many other people knew something was going on, because I was welcomed by a screen just after she checked my documents and let me in. It was a nice gesture, and it surely put a smile on my tired sleepy face! Pycon is a great conference,…

Meta-blogging

I've been wanting to write since a little while but whenever I sit to write a post I end up on an endless yak-shaving of making small adjustments to the blog. I know that if I wanted to optimize my blogging flow for writing I should start using something like Medium, or maybe even go back to good-ol' Wordpress. But I don't want to increase the exposure of my readership (who are these people…

Urwid is great!

Ever since I started using the awesome pudb debugger for Python programs I've been curious about the urwid library , an user interface library for console-based applications that the debugger uses. The examples in the gallery are just gorgeous! So last week I decided I would write a console-based game and learn Urwid in the process. I decided to implement a Solitaire clone (specifically, the…

Lazy evaluation as alternative to state machines, maybe

Some days ago I read this nice article talking about co-routines as an alternative to state machines . The most popular use case for co-routines in Python has been asynchronous I/O, and there are a bunch of Python things that use them (like Twisted , Tornado and the standard library module asyncio which appeared in Python 3.4). Apart from the async stuff, I find quite hard to think up use cases…

Pybee is awesome

I've recently discovered the BeeWare project, also known as pybee , and it's bloody awesome. I had stumbled upon it before at Pycon US earlier, they had a booth set up and their website said "BeeWare, the IDEs of Python". I didn't gave much attention at it at first, because I've kinda given up on IDEs some time ago. Every now and then I try Pycharm (which seems to be one of the best UI for Python…

On getting productive with Git

I remember the first time I submitted a pull request in GitHub and some reviewer asked me to squash the commits . I had no idea what they were talking about. I didn't have any friends who knew Git, I was pretty much a noob on Git and GitHub. It's easy to forget how scary this stuff can be for someone just starting out with their first open source contribution. First-timer OSS contributor asked to…

You're not alone

I've shared this text almost as-is internally at @Scrapinghub, the company I work at. As it had a good response, I'm sharing it here after some minor editing. I wrote it mainly to my programmer friends, but many people will probably relate to it. Here are some things that I want to share with you: If you’ve ever felt that you’re a mediocre developer at best, even though you show up and do your…

Trying out something new

If you liked these drawings, you may like this video teaching you to draw in a few minutes .

Learning from DAS screencasts - season 3

Here is a summary of my learning from watching season 3 of Destroy All Software screencasts . Which kind of code should go into Models? Gary is fond of an architecture style for web applications, which is equivalent to the so-called clean architecture described by Brandon Rhodes here : Following this architecture, the code inside model classes (in Rails, this would be Active Record classes) should…

Regex metacharacters differences across several environments

Here is a table helpful for learning regular expression metacharacters differences across several languages and environments. Language/environment Optional More Brackets Border Or Group Apache, Bash, egrep, Java, JS, Perl, PHP, Python, Ruby, VBScript, .NET ? + {,} \b | () Gawk, Openffice.org ? + {,} \<,\> | () awk, Mawk, Expect ? + N/A N/A | () C, Lex, Tcl ? + {,} N/A | () Find, Emacs ? + N/A \b…