Paxos Consensus Protocol, Part 1

Paxos is a protocol created by Leslie Lamport that allow distributed nodes to reach agreement on mutually shared state. You can read the original paper here. What makes this protocol powerful is its ability to preserve linearizability across node failures and network partitions. I had the fortunate experience of implementing a paxos library for a distributed systems school project. Here I will talk about, from my perspective, what “preserving linearizability” mean and how Paxos works at an implementation level.

Read More

Thoughts on Functional Programming

This past semester my Programming Languages class exposed us to several functional languages: Lisp/Scheme, SML and Scala (to a lesser extent). Before this exposition I really had no clue about what functional programming is. FP is a ubiquitous term used in all software/cs talks, most of the time I’ll just pretend to know what people are talking about. However, quickly I will realize that knowledge acquired from a 5 min wikipedia read just barely scratches the surface on this topic.

Read More

Arch Linux WiFi

I am dual booting a MBPr with OSX and Arch Linux. For those new to Arch Linux, here are some WiFi related tips that I for a clean install.

Read More

Hello World

Dear visitor, welcome to my own personal blog! This is my literal “Hello World”. I’ve never really felt the need to have a blog up until recently. To be honest, I’m not a big fan of writing essays. These days I feel that my brain’s memory capacity is reaching its limit. I believe that the human brain also have a limit just like computer hard drives :). So I will treat this blog as a memoir for me to remind my future self what an adventure it was. Warning: this blog may contain substantial grammatical errors from this point on…