Abstracting APIs
Assume you’re developing an XKCD comic browser on Android. The API offers two endpoints: info.0.json, which retrieves the JSON describing the current comic, comicNumber/info.0.json retrieves the JSON describing a specific...
Simple Java Puzzler
My first ever blog post was about Java operators I thought I knew. Ironically, after working with Java daily for the last couple of years, I still find things I...
Builders and Required Params
Ever since Effective Java 2 came out, the builder pattern became a defacto standard for instantiating objects with multiple parameters. NutritionFacts cocaCola = new NutritionFacts.Builder(240, 8) .calories(100) .fat(0) .sodium(35) .carbohydrate(27)...
Creating AndroidDeviceNames
A few days ago, I open sourced AndroidDeviceNames, a tiny Android library that transforms the device model into a user-friendly name. For example, SM-N910W8 becomes Samsung Galaxy Note 4 with...
Sync folders with Python
Manually comparing and synchronizing two folders can be tedious. Add long, confusing and very similar filenames and it’s no fun at all. We recently faced a similar situation at work....