Skip to content

Instantly share code, notes, and snippets.

@davedelong
davedelong / Copy DerivedData Folder
Created March 8, 2011 00:16
Copies the derived data directory for the current Xcode4 project or workspace.
(************************************************************************************
Copies the derived data directory for the current Xcode4 project or workspace to the clipboard
The copied path is in POSIX form suitable for pasting into a Terminal instance.
Created 03/04/2011 by Ben Dolman
This code is in the public domain
************************************************************************************)
set derivedDataDir to (path to current user folder as string) & "Library:Developer:Xcode:DerivedData:"
tell application "Xcode"
@davedelong
davedelong / gist:1236778
Created September 23, 2011 05:07
Snippet to discover the BOM of a text encoding
NSData *bom = nil;
NSStringEncoding encoding = ...;
NSData *a = [@"a" dataUsingEncoding:encoding];
NSData *aa = [@"aa" dataUsingEncoding:encoding];
if ([a length] * 2 != [aa length]) {
NSUInteger characterLength = [aa length] - [a length];
bom = [a subdataWithRange:NSMakeRange(0, [a length]-characterLength)];
}
@davedelong
davedelong / gist:4114242
Created November 19, 2012 21:48
Removing unused tags from Evernote
//
// main.m
// Tag Cleaner
//
// Created by Dave DeLong on 11/17/12.
// Copyright (c) 2012 Dave DeLong. All rights reserved.
//
// requires https://github.com/evernote/evernote-sdk-mac
xlog = log --graph --pretty=format:\"%C(yellow)%h%Creset %ad %s%C(cyan)%d%Creset %C(green)[%an]%Creset\" --date=short
__block void(^block)(int) = ^(int i) {
printf("%d", i);
if (i > 0) {
block(i-1);
} else {
block = nil;
}
};
block(9);
@davedelong
davedelong / gist:6270317
Last active May 16, 2020 02:51
A straight-forward way to inject NSViewControllers into the AppKit responder chain
@interface DDControlledView : NSView
@property (weak) IBOutlet NSViewController *viewController;
@end
@implementation DDControlledView
- (void)setNextResponder:(NSResponder *)aResponder {
NSViewController *controller = self.viewController;
@davedelong
davedelong / main.m
Created August 28, 2013 23:02
Making sure I get how base-64 encoding works.
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSString *str = @"Base64 is a group of similar binary-to-text encoding schemes that represent binary data in an ASCII string format by translating it into a radix-64 representation. The term Base64 originates from a specific MIME content transfer encoding.";
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
char table[] = {
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f',
@davedelong
davedelong / gist:7371853
Last active May 16, 2020 02:51
Delegate proxying (`protocol_methodForEach()` is a custom function that does just what its name implies)
@interface DDDelegateProxy : NSProxy
+ (id)proxyForDelegate:(id)delegate conformingToProtocol:(Protocol *)protocol;
@property (weak, readonly) id delegate;
@property (strong, readonly) Protocol *protocol;
/*!
* Set a default return value for a method on the delegate's protocol.
* \param value This must be a block that returns the default value. Bad Things will happen if it's not.
@davedelong
davedelong / gist:8342577
Created January 9, 2014 21:41
Find non-Mac App Store apps
mdfind "kMDItemAppStoreIsAppleSigned !=1 && kMDItemContentType = \"com.apple.application-bundle\" && kMDItemCFBundleIdentifier != "com.apple.*"" -onlyin /Applications