• Concurrency Categorization

    These days, when writing native mobile applications, there is an expectation that your app should be responsive despite needing to perform massive amounts of slow I/O and other operations. We must offload the slow work from the main thread. There are many ways to offload work from the main thread across the Android and iOS platforms. If you agree with my assumptions that I’ll outline below, I believe that at its core, there are six dimensions to consider when evaluating a method for performing and handling asynchronous work:

    Read More
  • Kotlin, the somewhat obscure modern Android-friendly programming language

    Swift is a terse functional programming language with high Objective-C interoperability used for iOS development.

    Read More
  • Crumpets and Gödel's T

    Gödel's T is a simple, but extremely powerful language that really excited me when I first learned about it in Bob Harper's 15-312 class at CMU. I think even those unfamiliar with programming language theory could still benefit from understanding how Gödel's T works. In this post, I'll assume minimal familarity with formal PL theory and explain how this language works and show how to use it. Hopefully you'll find it fascinating too!

    Read More
  • Directory Temporal Locality in Zsh

    I tend to work with many terminal windows or tabs whenever I'm doing something productive. cd-ing over to the directory where I'm currently working always bothered me. However, I wasn't satisfied with others' solutions, so I rolled my own that exploits temporal locality. In this post, I'll explain why I chose it, what it is, and how it works.

    Read More
  • Moving ADB to the Firefox Process

    This summer, as an intern on the Firefox OS Simulator team at Mozilla, I started moving ADB, the Android Debug Bridge, (also used by Firefox OS) into the Firefox process. This post will give an overview of the Firefox OS simulator add-on and ADB, as well as talk about motivations for doing the ADB move.

    Read More
  • Obligatory Blog Post about Blog

    Many times when people roll their own blogs, they begin with a post describing their blog. I spent a lot of time thinking about and working on this site, so if you are considering building a blog this post may save you some time. I'm breaking this post down into the design constraints, design, and implementation of my site.

    Read More