My semi-lucid ramblings which get shouted into the void (ie. a somewhat monthly journal).
But Why?#
Well… why not?
The less sarcastic answer is that I’m human, and have a tendency to forget things that happen to me.
I want to create a memory palace so that I have something to look back on once I’m older. These writings serve that purpose.
These journal entries also serve the dual purpose of letting me document longer running projects of mine. Hopefully, having an imminent deadline of writing a substantial monthly post motivates me to stop procrastinating.
So I got checked out by my doctor, and it seems like the back pain that I experienced was just a very severe muscle spasm. I don’t show any signs of having a herniated disk, and I seems to have maintained full mobility and flexibility in my spine. I can even touch my toes again! Going forward, I’m going to need to be more cautious when doing stand-up, but other than that, I got off easy....
I managed to injure my lower back like an idiot this week. The day immediately after, I had difficulty walking and sitting without grimacing. Considering that I need to sit down for extended periods of time during the day, this was troubling. As a result, I fell down a spiral of Youtube videos and WebMD posts (not the best idea in hindsight…) to try and fix my problem.
I managed to find some stretches (things like piriformis muscle stretch, child’s pose etc....
I spent most of January just relaxing. For me, “relaxing” involved writing a chess engine, trudging my way through an online FPGA course, and video games (what a strange definition).
The chess engine went pretty well: I managed to get a working prototype in Typescript up and running. It’s butt-ugly and has a terrible UI, but it works. I made a half-hearted attempt to train a neural-net to act as the evaluation function during the tree search, but ran into issues with convergence....
Happy New Year!
The semester is over, and I passed all my classes, and that’s all that matters!
First, I finished integrating my POVFan, and it works! (see below)
It doesn’t look like a continuous image, since the frame rate of my camera is much higher than the angular frequency of the motor. But in person, you see a continuous image (the “framerate” of your eyes can’t keep up with the rotation speed of the blade)....
The bad news:
It’s midterm season ATM, so life could be better. I got my first roach. Don’t know how I haven’t encountered one in the 5 years I’ve been in New York, but here we are. Dealt with it immediately though. The good news:
With regards to the Lox Rust compiler, I managed to implement functions and closure (closures are such a pain…). I’m now starting down the barrel of writing a garbage collector for the VM, which would require a fundamental restructuring of the codebase....
The good news:
Classes are going well so far. I’m learning about classical mechanics in the framework of Lagrangians and Hamiltonians in greater depth than I have every done before. In previous classes, we just stopped at deriving Hamilton’s equations. So far, we are exploring the theorems associated with phase space in greater detail Electricity and Magnetism gives me an excuse to read Jackson Computational physics covers a smattering of numerical techniques as they are applicable to physics....
So I graduated college at the beginning of this month. It still feels kind of surreal that I’ve spent the last two decades of my life in school! Granted, I am going to NYU for another 5-6 years for grad school, hence the academic journey is not finished yet. But for now, it’s over.
I spent the last 4 summers either doing research/ working, so I’m planning on spending this summer just relaxing....
The good news:
I made good progress on writing opcode implementations for the ARM7TDMI. Got through the ALU and some branching instructions for the THUMB set. Also realized that I don’t need to provide my own stack keeping track of the order of entry of CPU modes since the SPSR registers effectively do just that when switching (if you want to do nested interrupts of the same type, that’s on the programmer, not on me)....
The bad news:
Finals are coming up. I’m seeing much cramming and hastily written code in my future. The good news:
I finished my LoxVM (see here for the repository). I ended up giving up on writing a garbage collector for the VM, since it turns out to be kind of hard to do graph problems in Rust. Not impossible, but more work that I expected. Schoolwork also started piling up, so I really wanted to finish this project so that I could focus on that stuff....
The good news:
I managed to get a deeper understanding of the GBA architecture. This entailed reworking the memory and ownership model that I had previously sketched out. I also got a better feel for how to synchronize all of the different hardware pieces together (namely, that the CPU executes a single instruction which takes X cycles to complete. Each piece of hardware then banks X internally. After each piece of hardware updates it’s internal state, it determines if it needs to perform any actions....