Tech articles

  • Efficient Disk concurrency through eio

    Getting concurrency right is often tricky. Recently, I’ve been playing around with eio, an IO concurrency library for OCaml. In particular, I was inspired by a discussion post asking how to implement an efficient directory copy using eio. The post attracted many suggestions and I was curious to understand which optimizations benefits eio the most. Turns out, this problem was a one-way ticket down the rabbit hole… Here’s how it went!

  • Understanding blockchain

    I’ve recently started reading about blockchain. To consolidate my understanding, I’ve put together an executive summary about what this technology is all about.

  • Drawing boundaries for the Xen ecosystem

    The Xen ecosystem is quite ironic. It’s main product is hypervisor that cleanly separates hardware resources. However, when it comes to the organization of it’s ecosystem though, the lines between tools and terminology are blurred and complicated. My post today is my understanding and attempt to draw boundaries to help myself and other beginners compartmentalize parts of the ecosystem. I will detail the 4 big components: Xen hypervisor, Xen-project, Xenserver and XAPI.

  • Disciplined indexing with Binary-search

    The topic for today’s article was churned up out of frustration thanks to the classic “off-by-one” error. The especially annoying thing is that Binary-search is one of those elementary algorithms that you should be able to produce without hiccup. Except that it’s happened now a couple times that I spend way too long figuring out where I’m messing up the indices. With this article, I put forth a set of “rules” to think about when implementing binary search in future.

  • Breaking down Dynamic-Programming

    Dynamic-Programming (DP) is one of those things that makes my brain overheat. To a first approximation, DP is an algorithmic trick that improves the time complexity of otherwise exponential algorithms. DP manages this because it avoids doing unnecessary re-computation - A common feature that causes problems to grow exponentially. Instead of re-computing something we’ve already done before, DP says “let’s store this result because I’ll have to refer back to it”. Sound simple? In practice, not so much. This post tries to provide a clear step by step to approach such problems.

  • Continuation-Passing-Style for the pragmatic layman

    I’ve always found continuation-passing-style (CPS) one of the more an elusive concept to grasp. Today I came across a simple tree traversal problem that helped me work through some of that complexity.

subscribe via RSS