Posts by Category

academia

How to Do Research Meta Discussion

2 minute read

Published:

These are the notes from a lab meta discussion on doing research, reading papers, and finding ideas. The ideas are presented in no particular order.

app-dev

A Reddit-Style Comment System in Golang

3 minute read

Published:

Preparing for job interviews, I found this question on Glassdoor. The problem was to design a commenting system similar to Reddit’s. Here, I use this problem to show how to problem solve using Golang’s ease of HTTP/API development. I will present my Golang implementation which is based on grpc.

blockchain

Running Games on the Blockchain

4 minute read

Published:

The year is 2019, and one of the computer science memes that refuses to die is the blockchain. People in my lab use “but what if we put it on the blockchain” as some sort of sick joke. However, IBM’s recent work Hyperledger Fabric presents a “distributed operating system for blockchain applications.” An operating system you say? Let’s see if there is some truth to this meme by implementing Pong on the blockchain.

coding

Running Games on the Blockchain

4 minute read

Published:

The year is 2019, and one of the computer science memes that refuses to die is the blockchain. People in my lab use “but what if we put it on the blockchain” as some sort of sick joke. However, IBM’s recent work Hyperledger Fabric presents a “distributed operating system for blockchain applications.” An operating system you say? Let’s see if there is some truth to this meme by implementing Pong on the blockchain.

coffee

Charging the Roaster

2 minute read

Published:

I don’t consider myself an expert (yet), but I am frequently finding the need to share and record my coffee related opinions in some manner. I hope that part of this blog can serve as both a simple knowledge repository as well as the home for my opinions. Some of the topics I want to cover are -

distributed systems

The Raft Consensus Protocol

9 minute read

Published:

Raft is a protocol that solves the distributed systems problem of consensus. Specifically, Raft allows a network of machines to agree on the entries in an append-only log. When an entry is committed to the log on one machine, the protocol gaurantees no other machine will ever commit a different entry at the same index.

Evaluation of GoMR Against Spark

8 minute read

Published:

I created GoMR to solve a simple problem: make it efficient and painless to deploy MapReduce jobs on a single, moderately powerfull machine. Despite not having as pretty of an interface as today’s competitor, Apache Spark, I believe I was successful in achieving this goal. As well, the system and applications are written in my favorite language, Go.

GoMR: A MapReduce Framework for Golang

11 minute read

Published:

In a world of big data and batch processing, MapReduce is unavoidable. But my recent experience of getting Hadoop up and running for single-node debugging was a nightmare. Here, I present my implementation of the MapReduce framework written in my favorite language, Go, and designed for a single machine.

Time, Clocks, and Leslie Lamport

6 minute read

Published:

In the paper Time, Clocks, and the Ordering of Events in a Distributed System, Leslie Lamport defines the happens before relationship for distributed systems. This is a seminal work that is fundamental to the understanding of distributed systems. It addresses the simple yet profound problem of answering the question, “What happened when?” This is an overview of that paper and a summary of the key ideas.

golang

The Raft Consensus Protocol

9 minute read

Published:

Raft is a protocol that solves the distributed systems problem of consensus. Specifically, Raft allows a network of machines to agree on the entries in an append-only log. When an entry is committed to the log on one machine, the protocol gaurantees no other machine will ever commit a different entry at the same index.

making

Charging the Roaster

2 minute read

Published:

I don’t consider myself an expert (yet), but I am frequently finding the need to share and record my coffee related opinions in some manner. I hope that part of this blog can serve as both a simple knowledge repository as well as the home for my opinions. Some of the topics I want to cover are -