• Home
  • About
  • GitHub
  • Keybase
  • LinkedIn
  • Projects
  • Subscribe
  • Twitter
  1. Settings Aliases for Git Sources

    I'm sure many of you go to places like the GitHub or GitLab UI to copy the URL to clone a repository. I thought I'd share a small configuration I found recently in my .gitconfig that helps save some time when setting remotes in Git repositories (or cloning new ones). Before I fou…

    Approximate 2 min read published April 28, 2020
  2. Some Thoughts on Rust's Async/Await Debate

    Update 2023: I'm happy to say that the syntax selected has proven itself as a good choice, and getting used to it really wasn't as much of a pain point as I had anticipated. I'm going to leave my original post here for reference, but know that I think the direction taken by the R…

    Approximate 10 min read published May 09, 2019
  3. Building Simple APIs with Hyper and Usher

    When writing a web service, I often lean towards using tools that are as minimal as possible. One pretty obvious reason for this is the avoidance of dependencies you either don't want or don't need in your project. Whilst I'm not someone who goes out of their way to avoid depende…

    Approximate 15 min read published May 03, 2019
  4. Easy Concurrency Locking in Erlang/Elixir

    Out of the box, Elixir and Erlang offer a very powerful tool for serializing access to a resource via the GenServer included in OTP and surfaced in the Elixir standard library. As a GenServer processes messages it receives both in order and synchronously, it becomes a great tool…

    Approximate 7 min read published March 03, 2019
  5. Visualizing Developer Download Counts

    This short post is about a small application I wrote to track developer stats, named My Dev Statistics. If you want to skip to the finished product, you can find the application on both the iOS App Store and Google Play. For a long time now, I've wanted to build something small a…

    Approximate 6 min read published December 22, 2018
  6. Writing MapReduce Jobs Using Rust and Efflux

    During my work life, I spend a lot of time working with MapReduce-style workflows, particularly with Hadoop infrastructure. A lot of this work is spent with larger amounts of data in order to implement the batch layer of the Lambda architecture. Due to this, the largest concern i…

    Approximate 10 min read published November 28, 2018
  7. Simulating Distributed Clusters for Elixir Unit Tests

    During the recent addition of distribution to Cachex, I realised that testing distributed behaviour is quite annoying. Although there's a tonne of useful inside the OTP standard library, it's not particularly obvious if you don't know what you're looking for. Most projects (such…

    Approximate 6 min read published November 23, 2018
  8. Quickly Concatenating Files in Amazon S3

    Amazon S3 is a storage solution used by pretty much everyone these days. Due to this there are naturally a bunch of tools for doing almost everything you can think of with S3. This post is about a tool I wrote to retrieve concatenate files efficiently in S3 buckets. If you don't…

    Approximate 4 min read published November 04, 2018
  9. Cachex v3.1 and the Return of Distributed Caches

    If you work with Elixir on web services, you may have come across a library I work on named Cachex. Although the name makes it somewhat obvious, this is a library based on caching expensive data in memory. It works inside your application layers using the Erlang Term Storage (ETS…

    Approximate 7 min read published October 13, 2018
  10. Optimizing Docker Images for Maven Projects

    I recently wrote a post on optimizing Docker images for Rust projects, which turned out to be quite popular, so I figured I'd follow it up with another for those Java developers out there who have to painfully sit through slow Maven builds inside Docker. Just like the other post,…

    Approximate 7 min read published August 25, 2018
Page 0
Page 1 of 4
Page 2

© Isaac Whitfield.