Bazel rules to auto generate files at compile time

Auto generated files in a project are pretty common. There are generally 3 scenarios for this in a project that needs auto-generated files: An external pre-built tool generates files pre-compilation and then the generated files get checked in to the tree The tool is compiled in-tree but is again used to generate files pre-compilation and then check them into tree The tool is built during the main build step and then it also generates the needed files just in time. [Read More]

Java "Object" in C++ using std::variant

I’m going through this brilliant book, Crafting Interpreters, these days to learn more about how interpreters are built. My attempts so far have been ameturish, as I’ve never had a formal CS course, and this looked useful to upskill my toolkit. However, the book implements the interpreter in Java (at least the first part, which I am going through now) and I’m trying to follow along in C++ instead since I don’t have much experience in Java, neither an inclination to learn it. [Read More]

Automatic notes backup on macOS with hammerspoon

I’m a backup nerd and like to back-up everything I do. Not just that, I like to version them too so I can go back in time to any point. git serves as a good tool for me for versioning wherever small data/text files etc are concerned and then I back this up with remote git servers like my own git server on a raspberry pi at home, a gitlab server and a github server. [Read More]

Fixing the Raspberrypi 4 Ethernet disconnection problem

I added a Raspberry Pi 4B recently in my ever expanding homelab. To get the best network with the new gigabit ethernet port on the raspi, and still save power, I added a PoE hat to it so I could power the raspi as well as provide it data through the ethernet port. Everything worked fine except that I ocassionaly got into situations where the raspi stopped responding suddenly. Initially I thought that it’s crashing due to some issues and used to just restart it manually. [Read More]

Migrating my hugo blog from Gitlab/AWS S3 to Github Pages with Actions

Until Now - The State of the union This blog is generated using hugo, an awesome static site generator. So far, the workflow I used to deploy it was: Push commit to the source repository on GitLab GitLab CI kicks off on receiving the push CI downloads latest version of hugo and generates the static site Runs aws-cli to sync the new files to AWS S3 S3 serves the static site Cloudflare provides: DNS services (so I can use https://shantanugoel. [Read More]