Here s an unavoidable fact: the software project you re working on has some flaws that no one knows about. Not you, your users, nor anyone in your team. These could be anything from faulty assumptions in the UI to leaky abstractions in the architecture or an error-prone release process. Given enough time, these flaws will be Continue reading Forcing Functions in Software Development
Multicast DNS service discovery, aka. Zeroconf or Bonjour, is a useful means of making your node app (e.g. multiplayer game or IoT project) easily discoverable to clients on the same local network. The node_mdns module worked out-of-the-box on my Mac. Unfortunately things weren t as straightforward on a node-alpine docker container running on Raspberry Pi Zero, Continue reading Publishing your…
Note: this article assumes you re somewhat familiar with the idea of Test-Driven Development. Automated tests improve (minimally) the quality of your code by revealing some of its defects. If one of your tests fails, in theory this points to a defect in your code. You make a fix, the test passes, and the quality of Continue reading How to Improve Your Tests by Being an Evil Coder
Anti-Fragile by Nassim Nicholas Taleb is a goldmine of practical ideas for software developers, despite it not being a software development book. Redundancy is one example of such an idea that is explored. Taleb explains how having some redundancy reduces fragility, and means we don’t need to predict the future so well. Think of food Continue reading Beyond DRY Why Redundancy Makes Your Code More…
Last month I was fortunate enough to spend two weeks traveling around southern China including Hainan, Guangzhou, Macau and Hong Kong. It was an awesome trip; I would particularly recommend stopping by Hong Kong for a few days to check it out if you get the chance. It s an amazing, vibrant city. At some Continue reading 10 Tips for Exploring Foreign Cities
Both the Developer Console and Google Analytics can display your app s active users the number of users that opened your app at least once on each day. Knowing the number of active users is a good start to getting an idea of user engagement, but the problem with looking at it in isolation is Continue reading What percentage of your users use your app daily?
This is an excellent talk by Alex Faaborg at Google I/O 2013 about cognitive science principles and how they apply to interface design. Here s a summary of some of the main points and how they could be used to improve your apps: We can search for objects of the same colour much faster than searching Continue reading Google I/O 2013 Cognitive Science and Design, and how it applies to Android apps
9 patch images in Android are great but if you happen to have a family of graphics to convert, it can get pretty tedious. I had a collection of button graphics that needed converting to 9 patches using the same stretchable regions. Rather than do it all by hand with Photoshop or GIMP (and inevitably Continue reading Android: 9 patching a family of images the easy way
I recently added a feature to StarCraft 2 Build Player to start playing build orders when the users phone is nudged. The idea is so you don t have to waste precious seconds looking down at your phone to tap the Play button, instead you can just mindlessly bump your phone on your desk and you re Continue reading Android Device Nudge Detection Helper Class