June 8, 2025
Thankful for Coffee
It's always at the end of the month, when the fridge is most empty, when the weight of the recession is most heavy, that I lose most of my energy and motivation to keep going with the projects I want to work on. Social media sucks too, but what's new? I feel like I don't have many ways to decompress, but I digress.
Since my last entry, I took a break to work on Project Linal, and converted a cool 2-in-1 laptop to run on arch so I can SSH into my desktop to work on projects remotely. It was cool aside from the fact that since it's a newer model laptop, all of its ports are type-C, and without an integrated keyboard, it was a pain booting into the arch iso. But alas we did it. I even experimented with using systemd-boot instead of grub, and I can't tell if it's either the lack of packages, or the bootloader itself, but systemd-analyze gave a sub-15s boottime. Also its battery life has nearly doubled since making the switch to linux. Working with wifi and bluetooth was different, but not insanely difficult. My goal is to use this laptop at coffee shops or whenever I want a change of scenery, but I haven't found a place I'd like to work in.
That being said, I did work on adding a function to calculate determinants of a matrix using LU decomposition; apparently, it's computationally quicker and more efficient than standard Leibniz formula. Setting up the for-loops for the row operations was a bit of a challenge mentally, but we got it. Right now it just throws an error whenever it encounters division by zero, but I plan on adding some kind of pivoting method.
May 24, 2025
Thinking about Project Linal
I've started learning C just to give myself something to do -- python wasn't scratching the itch anymore. On day 1, I just learned basic syntax, types, some functions from the standard libraries, an even made a small function that prints the initials from a given string; Day 2, learned about pointers and scopes, especially how the compiler prioritizes them; Day 3, messed around with memory allocation and wrote a function that dynamically allocates memory and stores data from user input; Day 4, started the basics for Project Linal -- a custom library for linear algebra operations -- with defining structs for vectors and matrices, along with creating them and filling them based on certain filler functions (User input, Zero matrix, Identity, etc). Finally, on day 5, I made a dot_product function for vectors, a transpose_matrix function, and combined them to make a function for matrix multiplication. I tested it with two random matrices, and got my first segfault (I messed up the indices lol), so that was fun, but once I fixed it, the computation was instantaneous. C is super fast -- I knew it was, but the result printed as soon as the last entry was submitted.
I know there are libraries already out there, but I'm tired of the mindless affinity for "just getting it done" that I see a lot from computer programming folks. I don't want to patch together code that was patched together just to achieve some ends; I want to waste my time learning what makes my machine go. I want to know the in's and out's. If that means reinventing the wheel, let's reinvent it. It's my machine, and it's my life.
Project Linal
June 8, 2025
I had finished a function to return the determinant of a matrix using LU decomposition. It's pretty fast. I still have to add pivoting, so the function is kinda useless for matrices with zeroes on the diagonals. It should be simple though.
May 24, 2025

Just to catch up, I added structs for vectors, matrices, and functions for creating, filling, and freeing them. I worked on a dot product function for vectors, a transpose function for matrices. With those, I created a function for multiplying matrices. I'm currently on a little break while I find motivation and inspiration and what other operations to add.
Project Science
Not yet started.
codezorra@gmail.com
@codezorra