Quick tip - loading Android nine-patch drawables

Did you need to load a stretchy nine-patch drawable from your assets or the network, rather than directly via a resource? If so, you begin to realize that the foo.9.png file in your source is actually different from what's compiled into your apk, and you have to do something similar before you can use the goodness of NinePatchDrawables.

Generating RSA keys with BouncyCastle

Self-contained Java code to generate OpenPGP RSA keys using the BouncyCastle Java library. It's easy to miss important steps that improve the security of your code, and this post documents what I've learnt. The emphasis is on a complete working example that you can adapt for your needs.

Finding a gpg vulnerability by fuzzing

heatmap I recently found a GnuPG vulnerability while testing my java-based OpenPGP code. I'll use this as an excuse to post about testing security code and OpenPGP in particular, but put it in context with this real-life bug.

The Picasa .pmp format

I recently needed to dig into Picasa's internal databases to get some information that it appeared to store only there, and not finding the answer on the interwebs, here are my notes about their format. Please do let me know if you have more information about this file format.

Book Review: Grouped

Paul Adams is an insightful guy. I was wowed by his early thoughts on online social networks from back when he was trying to plug his ideas at Google.