Skip to content

Instantly share code, notes, and snippets.

View armadsen's full-sized avatar

Andrew Madsen armadsen

View GitHub Profile
@armadsen
armadsen / BuildLibFLAC.sh
Created February 15, 2013 19:52
Quickly thrown together script to build libFLAC as a 64/32-bit universal binary on Mac OS X 10.8.
#!/usr/bin/env bash
# Put this script in the libFLAC source directory, and make sure it's executable (chmod +x BuildLibFlac.sh), then run it (./BuildLibFLAC.sh)
# Note that this was written to be used on 10.8 with Xcode 4.6 and FLAC 1.2.1. It may/will need to be changed for future versions of the OS, tools, and/or FLAC
env CFLAGS="-arch x86_64" CPPFLAGS="-arch x86_64" LDFLAGS="-arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -mmacosx-version-min=10.5" ./configure --disable-asm-optimizations --enable-static --disable-shared --disable-ogg
make clean; make
cp src/libFLAC/.libs/libFLAC.a ./libFLAC64.a
make clean;
#import <Foundation/Foundation.h>
@interface MyClass : NSObject
{
id varA;
}
@property (nonatomic, strong) id varA;
@end
@armadsen
armadsen / MethodInProtocolsRequiredExample.m
Last active December 10, 2015 04:28
Complete example/test program for quick and dirty function to determine if a method in an Objective-C protocol is required or optional. Example for my answer to this stackoverflow question: http://stackoverflow.com/questions/14043930/how-to-identify-a-protocol-method-is-optional-during-runtime/14044086#14044086
#import <Foundation/Foundation.h>
#import <objc/runtime.h>
@protocol TestProtocol <NSObject>
@required
- (void)methodA;
@optional
- (void)methodB;
@end
@armadsen
armadsen / KVODependentToManyBug.m
Created November 5, 2015 22:12
Example program attached to Radar #
#import <Foundation/Foundation.h>
@interface Foo : NSObject
@property (nonatomic, strong) NSArray *bars;
- (void)addBar:(NSString *)bar;
- (void)removeBar:(NSString *)bar;
@end
@armadsen
armadsen / PublicKeyDecryptUsingCSSM.m
Last active October 12, 2015 00:55
Demonstrates the use of CSSM for decrypting using a public key, which is not supported by the Security Transforms API on Mac OS X.
NSData *ORSDecryptDataWithPublicKey(NSData *dataToDecrypt, SecKeyRef publicKey)
{
const CSSM_KEY *cssmPubKey = NULL;
SecKeyGetCSSMKey(publicKey, &cssmPubKey);
CSSM_CSP_HANDLE handle;
SecKeyGetCSPHandle(publicKey, &handle);
CSSM_DATA inputData = {
.Data = (uint8_t *)[dataToDecrypt bytes],
.Length = [dataToDecrypt length],
@armadsen
armadsen / AdvancedArduino.md
Last active August 29, 2015 14:20
Deckset Markdown file for my presentation, "Arduino and iOS" at CocoaHeads SLC, May 5, 2015.

build-lists: true autoscale: true

#Advanced Arduino ###(or Arduino and iOS)

####Andrew Madsen ####CocoaHeads SLC - May 5, 2015

@armadsen
armadsen / responds.m
Last active August 29, 2015 14:17
Tiny demo of -respondsToSelector:
/* Compile and run with:
$> clang responds.m -ObjC -std=c99 -framework Foundation
$> ./a.out
*/
#import <Foundation/Foundation.h>
@interface Foo : NSObject
- (int)bar;
@end
@armadsen
armadsen / EventCellDrawRect.m
Created March 16, 2015 14:09
-[EventCell drawRect] for CustomDesignedAgenda (DevMountain Lesson 25 - Custom Interfaces)
- (void)drawRect:(CGRect)rect
{
[super drawRect:rect];
UIColor *color = [UIColor colorWithWhite:1.0 alpha:0.2];
[color setFill];
[color setStroke];
// Draw stripe on right
CGRect sideLineRect = CGRectMake(CGRectGetMidX(self.marker.frame) - 1.5,
@armadsen
armadsen / Lesson17.m
Last active August 29, 2015 14:16
DevMountain Lesson 17 (Submodules, AVFoundation, CocoaPods) copy/paste blocks
git submodule add https://github.com/AFNetworking/AFNetworking.git External/AFNetworking
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.timeapi.org/utc/now"]];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
operation.responseSerializer = [AFHTTPResponseSerializer serializer];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, NSData *responseObject) {
NSString *response = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
NSLog(@"response: %@", response);
@armadsen
armadsen / FakePeople
Last active August 29, 2015 14:15
Fake People
+ (NSArray *)allTheFakePeople {
return @[
@{imageNameKey: @"1",
nameKey: @"Some Dude",
phoneNumberKey: @"888-888-8888",
jobKey: @"Garbage Collection"},
@{imageNameKey: @"2",
nameKey: @"Chris Sacca",
phoneNumberKey: @"920-558-1033",