Building a building

Instead of reading two research papers for the month of March I’ve decided instead to read as much as possible (yes I know that’s not a measurable quantity) of The Architecture of Open Source Applications: Volume 1. I’d read the LLVM and HDFS chapters in the past and was blown away but how well written they were. I’m pretty excited to read the rest of the book.

My favorite album of 2014: The Amanuensis by Monuments

Of all the albums I listened to in 2014, The Amanuensis by Monuments is definitely by favorite. The powerful, soaring vocals, excellent bass and drum work, and FANTASTIC guitar riffs make this an absolute joy to listen to. My favorite track from the record is probably Horcrux.

I’m quite disappointed I missed seeing them (and Animals As Leaders and Devin Townsend Project) in December. I had tickets but was feeling a bit unwell the day of the concert and didn’t want to risk my upcoming vacation plans.

Goal Tracking: February Edition

At the beginning of the year I published a post outlining what some of my goals for the year were. In the spirit of being transparent, here is the progress I made on them over the course of February –

  1. No volunteering.
  2. Decent progress in eliminating shyness.
  3. No progress made on learning Rust or Erlang.
  4. 1 book read – All the Light We Cannot See by Anthony Doerr. An incredibly sad and beautiful book.
  5. 1 paper read – Read-Copy Update.

  6. 5 blog posts.
  7. Zero muscle ups.

2015 goal achieved – contributing to an open source project

This week I managed to achieve one of my goals for 2015 – contributing to an open source project.

The project I contributed to was a command line interface to GitHub Gist. I found this project on the trending Python repositories page and decided to check it out (pun intended).

I think this was a great first project to contribute to. The code base was relatively small and extremely well organized and structured. The author also had a list of issues that needed addressing that made it very easy for someone to jump in and contribute to the project. I found an issue I felt I would be able to resolve, and after some back and forth with the author, my pull request for the issue was merged.

Things I learned –

This was a fantastic experience, and I can’t wait to find the next project to contribute to!

Paper: Read-Copy Update

With multicore machines now the norm, writing code that scales and performs well in multithreaded scenarios is becoming extremely important. I was thus delighted to discover the paper on Read-Copy Update – a technique to implement data structures with no locking on reads. Modifications (writes or deletes) still use some sort of locking mechanism, but the idea is that the ratio of reads to modifications is so large that by eliminating the overheads of synchronization on the read path we improve the performance of our code significantly.

This paper is extremely well written with lots of code samples. I specifically liked section 7 that compared read-copy update with other locking algorithms. Section 3 is also great because it allows one to answer the question “Can I use read-copy update for my data structure and its expected access pattern?”

Read-copy update is a simple (at least in terms of the general idea; the actual code implementation is tricky) and elegant solution for building high performance concurrent data structures (for certain usage patterns). It is definitely a topic I will be exploring further in the future.

New goal for 2015 – contribute to an open source project

Every year I decide that I will contribute to an open source project but somehow it always falls under the radar. This year I’m going to make a more determined push (pun very much intended) to make at least a small contribution to one of the many open source projects out there. GitHub Showcases is an excellent feature that should hopefully help me in this endeavor.

EDIT – By “contribute to an open source project” I meant something that I don’t work on during my job. So projects like Rest.li and the Rest.li API Hub don’t count 🙂 It has to be something I do in my free time.