Skip to content

Instantly share code, notes, and snippets.

View darknoon's full-sized avatar

Andrew Pouliot darknoon

View GitHub Profile
@interface A : NSObject
- (void)doSomething;
@end
@implementation A
- (void)doSomething;
{
@darknoon
darknoon / burst.vsh
Created June 17, 2011 18:34
Antialiased burst from color stripes
//Declare a 2D texture as a uniform variable
uniform sampler2D texture;
uniform float samples;
void main()
{
vec2 poissonDisk[8];
poissonDisk[0] = vec2(-0.613392, 0.617481);
@darknoon
darknoon / gist:4482025
Created January 8, 2013 07:46
Safe KVC macro by Andrew Pouliot. In the public domain.
//o is an object type, k is the key on which to check validity
//returns a NSString constant of the relevant key
#define KVC(o, k) (0 && sizeof(o.k) ? @#k : @#k)
//Usage:
ObjectWithMethodCalledKeyName *object = ...;
[object addObserver:self forKeyPath:KVC(object, keyName) options:0 context:NULL];
- (void)_setValue:(CGFloat)value forAnimatedKey:(NSString *)animationKey
{
POPSpringAnimation *ps = [self pop_animationForKey:animationKey];
if (!ps) {
ps = [POPSpringAnimation animation];
ps.property = [POPAnimatableProperty propertyWithName:animationKey initializer:^(POPMutableAnimatableProperty *prop) {
prop.readBlock = ^(DEViewerView *view, CGFloat *vs) {
vs[0] = [[view valueForKey:animationKey] floatValue];
};
prop.writeBlock = ^(DEViewerView *view, const CGFloat *vs) {
@darknoon
darknoon / OutlineView.m
Last active September 6, 2016 05:11
This is the simplest way I could figure out how to make a view-based NSOutlineView
@interface AppDelegate : NSObject <NSApplicationDelegate, NSOutlineViewDataSource, NSOutlineViewDelegate>
@end
@implementation AppDelegate {
NSWindow *_w;
NSDictionary *_data;
}
@darknoon
darknoon / whatthe.cocoascript.js
Created March 22, 2017 23:11
JSON.stringify doesn't really work on NSDictionary plist types does it…
const colorList = {
Haus: '#F3F4F4',
Night: '#333',
Sur: '#96DBE4',
'Sur Dark': '#24828F',
Peach: '#EFADA0',
'Peach Dark': '#E37059',
Pear: '#93DAAB',
'Pear Dark': '#2E854B',
};
@darknoon
darknoon / createStructure.cocoascript.js
Created March 24, 2017 18:11
Create any arbitrary structure when you don't have a constructor exported for it
// Recursively create a struct
function makeStruct(def) {
if (typeof def !== 'object') {
return def;
}
const name = Object.keys(def)[0];
const values = def[name];
const structure = MOStruct.structureWithName_memberNames_runtime(name, Object.keys(values), null);
@darknoon
darknoon / ObjCClass.api.js
Created March 24, 2017 21:46
How to use ObjCClass library
const MyClass = new ObjCClass({
classname: 'MyClass',
superclass: NSButton,
_private: 'initial',
init() {
log("my custom init code. no need to call super here ");
this._private = 'test';
},
#ifndef DBG_MACH_CHUD
#define DBG_MACH_CHUD 0x0A
#define DBG_FUNC_START 1
#define DBG_FUNC_END 2
#define DBG_APPS 33
#define KDBG_CODE(Class, SubClass, code) (((Class & 0xff) << 24) | ((SubClass & 0xff) << 16) | ((code & 0x3fff) << 2))
#define APPSDBG_CODE(SubClass,code) KDBG_CODE(DBG_APPS, SubClass, code)
@darknoon
darknoon / flow.log
Created September 1, 2017 23:32
Flow errors
This file has been truncated, but you can view the full file.
Error: node_modules/apollo-client/node_modules/graphql-tag/node_modules/graphql/type/definition.js.flow:108
108: GraphQLList<GraphQLOutputType>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ GraphQLList. This type is incompatible with
1196: export class GraphQLNonNull<T: GraphQLNullableType> {
^^^^^^^^^^^^^^^^^^^ union: GraphQLScalarType | GraphQLObjectType | GraphQLInterfaceType | GraphQLUnionType | GraphQLEnumType | GraphQLInputObjectType | type application of class `GraphQLList`
Member 1:
203: GraphQLScalarType |
^^^^^^^^^^^^^^^^^ GraphQLScalarType
Error:
108: GraphQLList<GraphQLOutputType>