Welcome to my website! My topics of interest are distributed systems, storage/databases, compilers, and programming languages. I also dabble in generative art from time to time. You can read my /blog where I write about my professional/research interests.

My personal website and personal ramblings are at https://moontowercomputer.club/~aneesh and https://moontowercomputer.club/~aneesh/blog respectively!

recent blog posts

How does joining a thread actually work?

As part of my research I’ve been playing around with something similar to dynamic linking. In particular, part of my work has led me to having programs that may need multiple copies of libc in the same address space (yes, it’s not safe, I know). I noticed that this would sometimes cause multithreaded programs to hang while calling pthread_join. Join (pun intended) me to understand a bit about how threads work and what was happening under the hood.

Making a Tilde Server

In the spirit of a new year, I’ve decided to finish up some old in-progress blog posts. Here’s some work I did early last year to set up a multi-user home server that provides some basic webhosting for Moontower Computer Club.

One Decade of Programming Later...

It’s been a decade since I started really thinking of myself as a programmer. Here’s some thoughts and reflections about my journey.

see all my posts here

projects

MonkeyWrench

  • MonkeyWrench
    • Generative AI powered tool to help use browser devtools
    • Lowers the barrier of entry to using the JS console to automate tasks or debug scripts
    • Watch a demo of the prototype here

rainbow

  • rainbow
    • Static analysis tool for C/C++ to reject invalid callgraphs, powered by clang and Cypher
    • Some example usecases are:
      • Prevent functions that assume locks are held from being called without a lock
      • Prevent functions using collective MPI operations from being called during another collective operation
      • Prevent secure functions from being called from insecure contexts

  • sPyCy
    • A python implementation of graph database with an openCypher frontend for testing openCypher tools, or for embedding openCypher in other projects.
    • Try the in-browser demo at the link above! Or try a demo of sPyCy being used to implement a webscraper here!

video-synth

  • video-synth
    • A synthesizer for visual effects! Chain together various filters and transformations and build temporal functions to animate them. The UI is definitely a work in progress and is hard to use.
    • Supported browsers:
      • Firefox (Desktop and mobile)
      • Chrome (Desktop and mobile)

what is a filesystem

  • what is a filesystem?
    • An interactive book based of the corresponding content from the cs241 coursebook
    • Features a visualization of disk blocks in a ext2/minix-like filesystem and has a command line simulator with support for commands like ls, cat, hexdump and many more!
    • Supported browsers:
      • Firefox (Desktop and Mobile)
      • Chrome (Desktop and Mobile)

  • camera theremin | Blog post
    • An online theremin that turns your webcam into a musical instrument!
    • Supported browsers:
      • Firefox (Desktop and Mobile)
      • Chrome (Desktop and Mobile)