too much security

> NSDate dateWithTimeIntervalSince1970:23510262*60
2014-09-13 13:42:00 +0000  

one letter away from my ideal job title

a podcast feed for WWDC videos

I use Instacast to manage my NSScreencast and Sketchcasts video subscriptions. It's a convenient way to search the descriptions, watch the videos, and keep track of what I've already watched.

I wanted something similar for Apple's WWDC videos but couldn't find anything, so I put one up at http://camazotz.com/wwdc/index.xml. It's an Atom feed for the years 2010–2014.

Gist of Ruby code used to generate the feed here.

iOS 8 beta 2 release notes

Jetsammed, really? Was jettisoned unavailable?

detecting debug vs ad hoc vs app store

Yes, the Right Way is to define another build configuration for ad hoc builds, but I've always regretted making Xcode projects any more complicated than they already are. This works and the runtime cost is minimal.

Update: As of 09/16/15, the file embedded.mobileprovision is still found in adhoc builds, but no longer seems to be present in TestFlight builds. Based on this, I'm also checking for an App Store receipt URL where the filename is sandboxReceipt.

typedef NS_ENUM(NSUInteger, AppBuildType) {  
  AppBuildTypeDebug,
  AppBuildTypeAdHoc,
  AppBuildTypeAppStore,
};
[...]
@property (assign, readwrite, nonatomic) AppBuildType appBuildType;
[...]
#ifdef DEBUG
  self.appBuildType = AppBuildTypeDebug;
#else
  #ifdef RELEASE
    NSString *embeddedProfilePath = [NSBundle.mainBundle pathForResource:@"embedded" ofType:@"mobileprovision"];
    NSString *appStoreReceiptFilename = [NSBundle.mainBundle.appStoreReceiptURL lastPathComponent];

    if ([NSFileManager.defaultManager fileExistsAtPath:embeddedProfilePath] ||
        [appStoreReceiptFilename isEqualToString:@"sandboxReceipt"]) {
      self.appBuildType = AppBuildTypeAdHoc;
    }
    else {
      self.appBuildType = AppBuildTypeAppStore;
    }
  #else
    #error Halt and catch fire.
  #endif
#endif