My Err99 Resolution

Err99 is a somwhat common error encountered by Canon DSLR users. Because it is something of a catch-all error code a variety of causes and resolutions can be found via google. In my case the error was fixed by a firmware upgrade while it was in the hands of Canon camera servicing personnel, so if you find you have exhausted all options, send it back to Canon!
For what it is worth, the Camera already had what I thought was the latest firmware, perhaps I downloaded the wrong version, or Canon worked some additional magic.


Another Galaxy Down

Found NGC 4594, aka the Sombrero Galaxy.

In addition also found what is probably cataracts in my eyes >.<




TIL: const, NSError, NSApplicationsupportDirectory

  • const char *foo; is not the same as char * const foo; The former declares a pointer to constant char, while the latter declares a constant pointer to char.
  • - [NSError localizedDescription] returns the object for key NSLocalizedDescriptionKey in the error's userInfo dictionary. I always wondered how to set it since there is no setLocalizedDescription:.
  • On iOS the application's Application Support directory doesn't seem to exist by default, unlike the Documents directory. This has to be created programmatically.



ICBM: iOS OTA Distribution Webapp

Finding myself in the position of needing to distribute several apps OTA and unable to use the more well known OTA services like testflightapp.com due to client concerns, I made my own, ICBM.

ICBM is a small python webapp built using my favourite webapp framework,  bottle. You just put your application along with icons and the Info.plist (not the binary one) into a directory, and ICBM will generate the required HTML page and manifest plist.


  • icbm.py
    • AwesomeApp/
      • AwesomeApp.ipa
      • Icon.png
      • Icon_512.png
      • AwesomeApp-Info.plist

More detail over at its github page: https://github.com/freespace/icbm.



How to Tell if You Will Like Sucker Punch

Can you relate to the following image? If so, then yes.