My Profile Photo

Aravind Vasudevan


An inquisitive polyglot developer and Machine Learning enthusiast.


  1. Introduction to Aspect Oriented Programming

    In a medium to large codebase, many-a-time, you might notice code that shouldn’t be in some class/method by design but is necessary. This can be anything from simple logging to transaction handling. As the codebase scales, this keeps adding up to a point where the code becomes laborious to manage. …


  2. Bootstrapping your vimrc

    When I first started with vim, I had trouble understanding how vim configuration worked and it was hard for me to use the plain vim. So I had to copy the .vimrc of a friend and as time moved, I kept adding over it to a point where my vim started slowing down. So, last week I spent some time on rewriting my .vimrc from scratch and I made another “light-weight” version of .vimrc and aliased to ‘vi’ for minor editing in my system and for using it in a colleague’s / ssh machine. I then realized that I’ve made a perfect .vimrc for a novice to build upon. Here, I present to you my sexy and slim .vimrc: …


  3. Concurrency and Parallelelism

    We live in a universe where literally every system can multiprocess (Some claim that the universe itself is a parallel system but I’m going to leave that for another blog) but most of our programs are sequential. This is mainly because parallel systems are arduous to design. …


  4. Writing your first JSP and Servlet using Vim

    Moving to Java from scripting languages can be a tedious process. A lot of times, it is hard to understand what the IDE does in the background to serve our web application. Hence, I’m writing these quick bite-sized notes as I learn. …


  5. Hacking out an object detector using brain.js

    Two weeks back, I had to demo my final year project which uses Deep Learning. Being a novice myself, I know how difficult it is to wrap our minds around DL. So, I wanted to build an intuitive demo with real-world applications which would help me to explain my project. (The world has had enough MNIST classifiers!). …


  6. Undoing screw-ups in Mercurial

    In the last three months of using Mercurial at my internship, I have screwed up a lot of times. From adding wrong files to pushing bad commits, I have done it all. So, as the end of my internship is nearing, I’m making a list of fixes that I learned during this journey. …


  7. Moving to Antergos from Ubuntu

    Nine months ago, I decided that I had enough with Windows and planned to completely move to GNU/Linux (Yeah, it’s not Linux, it’s GNU/Linux). Since I own only one laptop, I do not prefer distro jumping and needed to settle down with something. After googling for a while, I picked Ubuntu. …


  8. My day 1 of learning Kotlin

    I was reluctant to learn Android until now because of Java. With all the new languages out there, Java’s verbose nature and lack of syntactic sugar is not the most pleasing language to code in. Even though language alternatives like Scala, Clojure, and Kotlin exist for Android, I stuck with hybrid app development due to the lack of proper documentation for these alternatives. …


  9. Web Scraping 101 (part 2): Build an Anna University Result Scraper

    This is the follow-up to Web Scraping 101: Build a simple web scraper using PHP. If you haven’t seen it yet, I’d highly recommend you to read that before continuing. …


  10. Web Scraping 101 : Build a simple web scraper using PHP

    There are times when we want to extract data from a website. In most cases, you are provided with an API, but that’s not always plausible. So, when a website does not provide an API, the only way to get the data from the website is to scrape it off yourself. …