Limiting Android Localization to Supported LanguagesWhen you're working with an Android app that will be used in a variety of markets, localization is an important feature to support the different countries, date formats, number and currency formats that are used around the world. Android has deep support fo...

Swift Mutable, Hashable and CollectionsSwift sets have similar behaviour to Java sets when it comes to mutable objects: if you have a mutable object, wherein mutation of the object can result in a change to the hash value, that can lead to surprising behaviour. The collection may store the objec...

Host Key Verification and AnsibleI've been using Ansible to configure some instances on Amazon Web Services with a client, for two reasons: To make it repeatable in the future, if we want to configure an instance again, or another instance. Because I will be repeating it immediately now, m...

Host Key Verification and AnsibleI've been using Ansible to configure some instances on Amazon Web Services with a client, for two reasons: To make it repeatable in the future, if we want to configure an instance again, or another instance. Because I will be repeating it immediately now, m...

Host Key Verification and AnsibleWhen you connect to host for the first time over SSH, you are asked to verify the host key. When you use Ansible against a host for the first time, the same thing happens. If you are connecting to multiple hosts at the same time, bad things happen -- you g...

Using Ligature Fonts in IntelliJIntelliJ IDEA 2016.2 was released with improved support for programming fonts with ligatures. I tried a few of them to see how I felt about them. I do some Scala in IntelliJ, so I used Scala examples to compare how I felt about things. Hasklig Hasklig initi...

NSDecimalNumber and unsignedIntegerValueSo, if you have an NSDecimalNumber and you want to get the unsigned integer equivalent of it, you'd do [nsdn unsignedIntegerValue] , right? Wrong. Or, at least, risky. I hit a bug in NSDecimalNumber this week, and I thought I'd share it as a playground, whi...