RC Return Statement

The Recurse Center is a free, three-month self-directed program for people who want to get better at programming. I attended fall batch 2 in 2016 from September to December. If you aren’t aware of Recurse Centre, take a couple of minutes to go through recurse.com and read the rest of the piece. Every day we open a significant amount of doors to get to desired places. Some doors are unique but look dull and plain, but the incredible universe behind the door hides excitement, adventures, gems, friends, and insights. [Read More]

Grokking algorithm: Book Review

Grokking algorithm - An illustrated guide for programmers and other curious people is the book by Aditya Y. Bhargava about understanding algorithms. The book is different from other algorithm books. The book explains the chosen concepts with illustrated guide like cartoons, xkcd and doesn’t let the followers lost in the sea of mathematical formulas or procedure. The book discusses a handful of foundational topics on algorithms like Big O notation, Binary Search, Sorting, Recursion, Hash Tables, graphs, greedy algorithm, dynamic programming. [Read More]

2016 Books

I was watching one of my favorite Tamil writer S Ramakrishnan’s video about books. Somewhere in the middle of the talk, he suggests the audience to write down the list of books they read this year and share with others. Irrespective of how short or tall the list is, undoubtedly people will pick up from the list someday. I bought the idea and documenting the book list. English Read The 5 Elements of Effective Thinking Quiet: The Power of Introverts in a World That Can’t Stop Talking - The book is about introverts, what constittues who they are and their world - My Review The Fire Next Time Jonathan Livingston Seagull Animal Farm - Satire on Russian Revolution - My Review The Metamorphosis Outliers: The Story of Success - the factors that contribute to high levels of success Man’s Search for Meaning - Hope during adversity - My Review How to Stay Sane Currently reading The Gifts of Imperfection: Let Go of Who You Think You’re Supposed to Be and Embrace Who You Are Nonviolent Communication: A Language of Life Grokking Algorithms An illustrated guide for programmers and other curious people Mirrors: Stories of Almost Everyone - World historic events in few sentences The Trial Flowers for Algernon Dropped the ball Surely You’re Joking, Mr. [Read More]

RC Week 1011

EDHT I continued to work on the project and added the few features. Data replication - One of the main features of DHT is replicate the data across a subset of nodes in the cluster. Remember not all nodes! Depending on the number of copies to store, say N, the data is stored in N - 1 nodes starting from the primary node in the anti-clockwise direction. Routing - Every node in the cluster has equal responsibility, and there is no master. [Read More]

RC Week 1010

This week has mostly been calm and cold in New York. EDHT Distributed Hash Table implementation in Erlang is slowly coming along. The project now supports multi-node communication. The project uses bitcask which riak uses. Erlang’s Key/Value store data is local to the single process. Building Key/Value store from the ground up requires reinventing wheel and time consuming. The leveraging existing library made sense. Bitcask takes care of persisting the data to the disk and can access data without race conditions so far. [Read More]

RC week 1001

This week I spent most of the time on working with Zulip, Erlang and EDHT. Zulip This week, we (Stan, Jennifer and I) continued efforts on implementing message reaction. We made decent progress and had a good create reaction frontend. During the journey, we discovered an interesting bug. Debugging the bug on production minified JS with the debugger was fun. We are close to completing the completing the initial version. It’s still a few days away from closure. [Read More]

RC week 1000

This week has been quiet, bikeshedding, holiday week and unproductive week so far in RC. Zulip Zulip is a Python-based open source group chat. RC uses zulip for the internal chat. Unlike GitHub, zulip doesn’t support inline emoji reaction for messages. I am collaborating with Arpith and Stan Zheng to add the missing feature. The first time I came across the limitation of Django’s values method. If you’re considering setting up a group chat for your community or company, try out zulip! [Read More]

RC Week 0111

This week most of the time I spent learning Distributed Hash Tables and Erlang. That means I didn’t write a significant amount of code for the project. I am reading DynamoDB paper which is Distributed Hash Table and Distributed Key/Value store. Some implementation like etcd and consul provides Distributed Key/Value store but replicates all data across nodes. So those aren’t Distributed Hash Table. I am reading the one sections at a time. [Read More]

Side Project Feasibility

It’s common for developers to work on side projects. The reason why developers work on a side project is a long list of imaginable and unimaginable reasons. My main reason to work on a side project is to learn how things work or to build a utility program for use. One of my recent projects is to monitor the internet traffic and aggregate the traffic based on the domain name - bandwidth monitor. [Read More]

RC Week 0110

This week, I reached the first milestone of the project - imon which I worked on for past couple of weeks. imon is a command-line utility to record all network traffic and classify the data according to the domain name. Here is a high-level presentation of the project.I am looking for code review on the project and happy to answer any questions. I wrote a blog post about my experience with Rust. [Read More]