Felix' Ramblings
<< I Hate: Python
>> Decentralized Internet

2023.11.16
An Update on Various Things

It's been a while.

First, a quick status update on my life, before I cover some of them in more detail:

Bachelor Thesis

I have to admit: I initially just wanted to be done with the whole thing, but after spending that much time on it I can't help but feel a little bit proud of the result. With >60 pages, this bachelor thesis of mine has become quite the chonker. To put this into perspective: I expected to end up with roughly ~30 pages.

My thesis advisor, pretty much from the very beginning, knew that it'd be more in the ballpark of 50 or 60 pages. Granted, I used a lot of pictures / visualizations (which are mostly generated in LaTeX; not fun btw), which ended up taking a lot of space. Regardless, my advisor has been just super awesome (and way too lenient with my whole bullshit). His feedback invaluable as he always tried to make me understand of why he recommends certain changes. I was able to explore a lot of my ideas / try to approach things from various angles, and everytime I was out of ideas and asked him for advice, he always showed me new approaches which ended up fixing all the complaints / problems I had. No wonder this guy ended up becoming a doctor in the process, while it took me roughly a year to complete my 60 pages. Big oof.

Honestly, if the rest of my studies were more like this bachelor thesis, I'd probably be motivated to get a master's degree, and I would have way more fun along the way. The way this research topic combined theoretical constructions with (somewhat) practical applications is exactly the stuff the stuff that makes me go down rabbit holes. Just as an example: If a professor covered Boolean functions in class and explained how they can be efficiently represented in the computer, I'd probably fail that class hard because of sheer boredom. But give me a concrete, difficult problem and show me how Boolean functions can be used to solve said problem, and I'm super into it.

To sum my thesis up quickly: In this one niche of problem modelling and solving, at least two algorithms were introduced which, theoretically, solve a part of this problem more quickly. But these algorithms have not been benchmarked (and AFAIK one of which was never actually implemented in code). I did some benchmarking and behold: The theoretical improvements don't really show up in practice. The older, more naive and easier to implement algorithm ended up being the fastest most of the time. It's not the most interesting result, but it's a (somewhat) important result nonetheless.

And with the submission and defense of my thesis, my bachelors degree comes to an end. It's been 5 years. Utter insanity, but at least at the moment, no one seems to mind my incompetency. So I moved back to my parents' place. They have been super supportive (and, again, probably way too lenient on me slacking off and not doing shit). So the next step is to find a job and move out again.

Website Generator Shenanigans

My static website generator is in the third iteration now. To roughly sketch the approaches, here are the three iterations:

  1. Input -> Html
  2. Input -> Tokens -> Tree -> Html
  3. Input -> Tokens -> Html

Iteration 1 had no pre-processing what-so-ever, which resulted in a huge mess of code, lookaheads and trying to "escape" sequences in multiple places. Not Ideal, pretty error prone, and absolutely shite error handling.

Iteration 2 was a "side-grade". Error handling was better and there was less duplicated code. But the different stages overall increased the amount of code substantially and it made a bunch of things (e.g. nested lists) way more complicated than they needed to be. In hindsight, I'd say this approach was overengineered, and it wasn't even free of bugs. As I kept finding more errors, I decided that the whole tree approach wasn't worth the effort.

Iteration 3 just generates the html straight from the tokens. I still need to spend some time generating proper error messages, but I'm working with way less code, and most of the existing input files for this website just worked. Additionally, I added some features to the website, as can be seen by the Recordings section of the website.

I took the opportunity to add multithreading, which actually doesn't really do a lot until I add a ridiculous number of posts:

I also downloaded some Twitch archives of me playing my guitar, so if I'm bored I'll go through the recordings and look whether I can upload some audio excerpts from some older streams onto here.


<< I Hate: Python
>> Decentralized Internet
 Felix' Ramblings