Unix utilities, how cat works

At university we had an *introduction to operating systems* course where we basically learnt how basic unix utilities like `cat`, `ls`, etc, worked by programming them in C using the unix API.

2024-07-17

Everything is a file (descriptor)

Im sure that most of you who use (or have studied) unix like operating systems like linux or the BSDs know about their philosophy. But when you really think about it, what is that file descriptor thingy? And why would everything be a file?

2023-12-13

Non exceptional error handling and C++

For the longest time, error handling while programming has been a pain in the ass. Weird and inconsistent ways to detect errors on APIs, global variables to see what actually happened (looking at you, `errno`), treating errors as exceptional code paths that make it difficult to handle... you name it. What do you get with this? Confusion, a lot of confusion.

2023-01-30

Data or object oriented? That is the question

Let me tell you the story of how object oriented programming is not always the way to go. Unless you studied computer science on the 90s, every school, university or bootcamp tries to convince students that object oriented programming is **THE BEST** and how functional or procedural programming is for old people (I certainly felt that at university).

2022-11-04

How not to write performant code

Don't you feel like `malloc` is really slow? Most probably not, as the `malloc` implementation shipped on most standard libraries are probably older than me. Still, a fool past of myself thought that I could in 3 moths achieve what glibc achieved in most certainly triple the time. This is the story of how I ended up writing a memory allocator for my end of degree project for university.

2022-09-26

Thoughts on the linux desktop

Due to some hardware changes on my setup I’ve realized some issues regarding the current situation with the linux desktop (and distributions in general). So with this article I’ll try to explain my thoughts and propose some changes.

2022-03-08

Rendering adventures

I’ve always been amazed with computer graphics, and looking at recent advancements with ray tracing, and the great upgrade that Unreal Engine 4 supposed over Unreal Engine 3 with the physically based rendering (PBR from now on) work flow made me more curious.

2021-11-30

Journey to first completed project

With this article I will describe the journey of creating an application to create other applications… kinda crazy right! It really isn’t. What LMake is resembles more to what GNU Make is than to what a compiler is.

2021-11-04