WireGuard notes
Wireguard (abbrev WG below) is a modern VPN solution that ships by default on modern Linux-es and is easily installable on Windows/Mac/BSD etc., It is written by a security expert, and uses an easily explainable architecture to try and avoid security vulnerabilities.
It builds on primitives like network tunnelling interfaces and namespaces on Linux - by adding a layer of authentication and encryption to traffic as you’d expect from a VPN solution. WG in server mode uses port 51820/udp by default and this must be available to any clients that need to connect. The same WG binary works either as a server or a client, depending on how you set it up.
Checking out Deepseek R1
In which I attempt to re-invent Flappy Bird
Last updated Jan 31, 2025
I’ve been struck with insomnia and feeling ill, so I’ve decided to mess around with DeepSeek R1 this morning to keep myself distracted. Like almost everyone in technology today, I’m hearing all this talk about DeepSeek R1 being the best of best so I decided to give it a try to “auto code” something non-trivial.
I’ve been meaning to learn a little bit of game development to see if I could make small 2D games for fun. Unfortunately for me, I do not have the creativity to design games, so I’m going to try and re-implement Flappy Bird. Using Rust. And Bevy. I’m somewhat familiar with Rust but have absolutely no idea how an entity-component-system (ECS) game engine works or what that means for game development.
Don't use PAN numbers as passwords!
If you’ve ever paid taxes in India, you probably know what a Permanent Account Number is. If you don’t, the Indian Tax Authorities would like a word. Your PAN identifies you as a tax-payer and it shows up on your tax records. You get a little card that has your name and number on it, which you can also use as proof of ID, depending on who’s asking.
From time to time, I keep getting email from different Indian organisations like banks and mutual fund management companies. These are not meant for me, some person with the same name decided to give my email address as theirs. I’ve tried a bunch of times to get them to remove my email from their system, but I always run into a weird situation where they ask me to prove that I’m not who they think they are. Very frustrating.
Ham or spam?
In continuing with my tradition of irregular posts about unrelated topics, finally had a bit of time to revisit what
I do to currently push to my Blog. The past me wrote a “deploy.sh” script that for reasons
unknown uses a git submodule to track changes to the site - i.e. the generated files in public
. I then hosted the
public submodule in a separate github repo (this one). The way it worked was, I cloned the blog source code repository -
made updates, and updated the git submodule. Annoying and error-prone.
Adventures Wasm: Part One
Adventures in WebAssembly Land
This is Part 1 of my notes on trying out WASM for a non-trivial task. Stay tuned for more fun.
I’ve been on the hype-train again, and the flavour of the month (year? decade?) is Web Assembly. During breaks between the job that I’m paid to do, I like to keep up to date on new things and sharpen my technical skills to keep up with the clever people on my team. In this post you can follow my adventures in learning about an unfamiliar tech stack.
Hello, 2020. Goodbye!
In what feels like an annual tradition, I’ve decided to try and write a blog post before the year runs out. Too late! This year has been overwhelming in more ways than I can count. With everything rushing by, I’ve not really had a moment to think and process all that’s happening around me. But I’m also grateful for all the amazing things that happened to me in 2020 and it feels like I should at least list them out.
Header files voodoo
Trying to build a Qt project on Linux today. Turns out, (some) Qt programmers are case insensitive when it comes to including heAdEr fiLEs in C++ source. This is fine on Windows and macOS, but on an OS with a case sensitive filesystem like ext4
, this causes a whole lot of problems. gcc
and g++
try and fail to find coolHeader.h
if it’s called CoolHeader.h
. I’m sure that this isn’t an uncommon problem, but I couldn’t find a solution that didn’t involve serious sed
-fu.