The blog of a very opinionated girl who loves coding, writing, and dancing!

getopts: A Story


It looks like I’m in a shell scripting fever lately… which is a great thing! You know, shell scripting is an amazing, very underestimated tool. How many things could’ve been easily tackled as shell scripts but aren’t… (sad noises) So this post is a bit of a follow-up to the last one: let’s dive into some more POSIX shell scripting! One thing I was doing in the very worst possible way in my shell scripts was parsing CLI arguments.…
Read more ⟶

Beware The POSIX Meme (apropos wc)


There’s this meme in some dark places of the Linux community: Standard compliance is always greener on the other side of the fence, namely on the BSDs, Plan 9-based/inspired systems, etc. Sometimes I believe people who say those kind of things have never seriously worked with any of those systems and just like to vent off baseless rants. Today I’m here to debunk some misconceptions I’ve come across repeatedly, some of which I myself believed because I just followed the meme.…
Read more ⟶

Worse Is Better


The other day I read that phrase, Worse is better… and it clicked with me. Not a very original statement, I know; just another iteration of Perfect is the enemy of good, but sometimes is not the words, but the phrasing. You don’t need a PhD in Linguistics to know this (but I happen to be one!) The point is that I’ve been struggling against the code of scalc for quite some weeks.…
Read more ⟶

A Tale Of strlcpy()


Oh… my… what a week! Apart from my Busy VIP Girl Life, in the code department it’s been rough. You might’ve seen some of it on my sourcehut feed… but let’s concentrate on cras today, because I think it’ll be interesting for you all folks. So, cras had a very nasty bug. I don’t feel like doing a huge analysis of it, because it’s actually trivial: string overflows yielded very, very bad things.…
Read more ⟶

Gmail And Zoom Are the Worst


May I scream into your screen, please, dearest reader of this humble site? Pleeeeease Ok, here it goes: I HATE GMAIL AND ZOOM!!!!!! Wow, that felt awesome. Now you might be wondering a couple of things about me and my unhealthy relationship with some software and services: Why the hell are you still using them? What went wrong this time? What’s your plan to abandon those ships? Let me start with the last one.…
Read more ⟶

How to Introduce A Critical Bug In Your Code


So, let me tell you folks a story about how to introduce a critical, total wrecking bug in just one line and, of course, releasing it as a bugfix release itself! Enter schain 2.0.3, the worst possible release EVER… featuring myself as lead developer! \o/ OK, this is not meant as a self-inflicted punishment session, but as a very practical reminder of how not to do things when you’re coding. I hope this serves you, my dear reader, as well as myself.…
Read more ⟶

Man Pages Are Hard


If you follow my stuff on sourcehut you’ve probably noticed that I went into a sort of documentation rampage this last couple of days. Mostly, “discharging” information from README files onto each project’s manpage. I was a bit tired of having redundant information in two places and I also had noticed that some stuff was completely missing from both! Horrible! Manual pages have this reputation that they’re hard to write, arcane, and obscure.…
Read more ⟶

scalc: It's Alive! \o/


YES! I’m happy to say that scalc has grown up from being a simple git repo to a full-fledged project hub with its own mailing lists and all the fuzz! It’s alive! \o/ So, what is all this about? Not much really: it’s a simple calculator. I don’t think it’d be advisable to do your taxes with it, I’m sorry. Although I have been using it to do some “real life” math,1 scalc is actually more an exploration I set out to make to test an idea.…
Read more ⟶

Ari In The Shell


So yesterday I pushed a new git repo online: wsclean. Nothing fancy at all: it’s just a very simple shell script that helps me to clean my source files from useless tabs and spaces that sometimes are left over due to oversight, quick edits, you name it. It’s a bit messy, I guess? But the gist of it is that it calls sed to find and replace (what I consider) unneeded whitespace characters, using a regexp.…
Read more ⟶

What Does 'static' Really Mean


Welcome to the first episode of Ari teaches you why C is awesome, a series which I don’t have any plans for and probably will lead to nowhere in particular. In fact, it’s not even a series. Move along! Because of covid scalc,1 I’ve been into thinking about how and when static variables are a good thing in C. You know, in programming everything is a trade-off and static variables are, in some way, a cheaty way to get something like a global variable, but keeping local scope… if you declare it inside a procedure, that is.…
Read more ⟶