I used to use LunarVim a lot, but it had a big install process and I would always run into errors with different versions of neovim.
I saw some starter templates for making your own config but they all had a bunch of files (usually 10+) and a lot of code.
Then I read this article about making a config in 1 file and started working off that.
At this point I’ve implemented every feature (that I used) from LunarVim, and I’m on to adding more.
The file is 196 lines as of Jan 2026.

Fossil fuel is actually renewable energy because the production is pipelined.
If it takes 1 million years from the time an animal dies at time N, then the fuel will “mature” at N+1e9
Animals have been continuously dying since the beginning of time, so we actually “produce” a stable amount of fossil fuel every day.

An explanation of the concept of pipelining from digital hardware design.
One prominent idea in the Unabomber manifesto is that technology has created an absence of material need,
and our lives have been replaced by a set of meaningless “surrogate activities”.
We use the term “surrogate activity” to designate an activity that is directed toward an artificial goal
that people set up for themselves merely in order to have some goal to work toward, or let us say,
merely for the sake of the “fulfillment” that they get from pursuing the goal.
Given this definition, most things we enjoy today (art, music, games) would be considered as surrogate activities.
Here is a rule of thumb for the identification of surrogate activities.
Given a person who devotes much time and energy to the pursuit of goal X, ask yourself this:
If he had to devote most of his time and energy to satisfying his biological needs,
and if that effort required him to use his physical and mental faculties in a varied and interesting way,
would he feel seriously deprived because he did not attain goal X?
If the answer is no, then the person’s pursuit of goal X is a surrogate activity.
The writer also claims that primitive humans were fulfilled through material need and thus didn’t do surrogate activities.
Many primitive peoples, when they don’t have work to do, are quite content to sit for hours at a time doing nothing at all,
because they are at peace with themselves and their world.
But most modern people must be constantly occupied or entertained, otherwise they get “bored,”
i.e., they get fidgety, uneasy, irritable.
The idea that primitive humans didn’t entertain themselves is wrong. Primitive humans engaged in tons of art, music, and games.
Here are some examples:
Bear cave painting (~30,000 BC)

Music

Natives invented lacrosse

I think this is a strong counterexample to the ideas of the power process and surrogate activities and stuff like that.
Entertainment is a fundamental part of what it means to be human, not a mindless distraction.
Also, I think this opens up a lot of further analysis refuting the author’s theories. Hopefully I can expand on these in further writing.
Latest:
- It’s crazy how fast the M1 chips are.
- Github provides 3x M1 CPUs in CI (for free). It compiles the project in just 3 minutes (as opposed to the 4x CPU ubuntu machines taking >30 minutes).
- I don’t wanna spend crazy time on this because it isn’t the target hardware, but still cool and useful for development I guess.
Jan 15: Fuzzer
- I’m really happy with this fuzz test.
- Basically it generates a random sequence of inputs (like KEY_W, KEY_X, etc.) and sends them to the program.
- The goal is to run random commands for 30 seconds without segfaulting
- On linux it’s crashing pretty much every time because of the audio server stuff… This is like super important actually… I’m working on it…
Jan 4: Dockerfile
- I’m still learning docker but… I saw in openpilot how they use a base image and another image on top of that
- Definitely on the roadmap, I think it can make CI even faster. Also standardize the environment and stuff
- Thanks to @powei-lin for adding clang-format to the repo
Dec 31: cache CI
- I started using cachev4 + ccache within github actions and it’s really good.
- The average ci time is ~3 minutes down from 30
- Right now the main bottlenecks are the CMake generation step (which can’t be cached?) and installing apt dependencies
- But I’m happy enough with the speed for now.
Ever since I heard the tame impala live album, I wanted the Juno 106.
The only thing was, it was insanely expensive, and I knew my parents would never let me get it, so I decided to make my own.
Original Synth

To start off, I chose the teensy 4.1 for this project because of the high price-performance ratio, and because of the teensy audio library, which makes the programming a lot easier
First, I wrote the software using the Teensy Audio Library. I used PureData to create a virtual midi instrument, which made testing a lot easier

Architecture
First, there are 4 oscillators, the volume of which are controlled by a mixer.
They then go through the high and low pass filters, and are then modulated by the envelope.
The signal is then duplicated and sent into the flangers, and ultimately ends is output as a stereo signal that goes to the SGTL5000
There’s more complexity than this, as most of these blocks are modulated in turn by the LFO and envelope.
Hardware
Once I had the software done, I started working on the hardware.
In this case, it was pretty simple, I had midi in and out, and then a bunch of sliders buttons, and leds, which you use to change parameters.
