Skip to content

Instantly share code, notes, and snippets.

View OneSadCookie's full-sized avatar

Keith Bauer OneSadCookie

View GitHub Profile
@OneSadCookie
OneSadCookie / blockinvoke.m
Created September 20, 2011 18:21
block hilarity
#import <objc/runtime.h>
#import <Foundation/Foundation.h>
int main()
{
Class c = [^(){} class];
BOOL ok = class_addMethod(
c,
@selector(invoke),
imp_implementationWithBlock(^(void (^self)(void)){
@OneSadCookie
OneSadCookie / edid-decode source URL
Created October 22, 2010 23:24
EDID decoding on the Mac, to find out what resolutions and rates the Mac is seeing reported.
http://cgit.freedesktop.org/xorg/app/edid-decode/plain/edid-decode.c
compile with:
gcc edid-decode.c -o edid-decode
get EDID from IORegistryExplorer (mine, an old 24" Apple Cinema Display, is attached).
Convert to binary with this command:
ruby -e 'File.open("edid", "wb").write(File.read("edid.txt").split.map { |s| ("0x"+s).to_i(16) }.inject("", "<<"))'
@OneSadCookie
OneSadCookie / keybase.md
Created July 23, 2019 11:00
keybase.md

Keybase proof

I hereby claim:

  • I am onesadcookie on github.
  • I am onesadcookie (https://keybase.io/onesadcookie) on keybase.
  • I have a public key ASBQklqH9TTCtV8ht0YGzxtp_m4vsT9p0A01sR6FqpBbRAo

To claim this, I am signing this object:

import Foundation
protocol SerializableToUserDefaults {
static func read(from defaults: UserDefaults, key: String) -> Self
func write(to defaults: UserDefaults, key: String)
}
extension String: SerializableToUserDefaults {
static func read(from defaults: UserDefaults, key: String) -> String {
return defaults.string(forKey: key)!
@OneSadCookie
OneSadCookie / gist:8258995
Created January 4, 2014 18:49
static typed uniforms
- glProgramUniformMatrix4fv(_shaders->program(_vs_spotlight), glGetUniformLocation(_shaders->program(_vs_spotlight), "m"), 1, GL_TRUE, (GLfloat const *)&m);
- glProgramUniformMatrix4fv(_shaders->program(_vs_spotlight), glGetUniformLocation(_shaders->program(_vs_spotlight), "mv"), 1, GL_TRUE, (GLfloat const *)&mv);
- glProgramUniformMatrix4fv(_shaders->program(_vs_spotlight), glGetUniformLocation(_shaders->program(_vs_spotlight), "v"), 1, GL_TRUE, (GLfloat const *)&v);
- glProgramUniformMatrix4fv(_shaders->program(_vs_spotlight), glGetUniformLocation(_shaders->program(_vs_spotlight), "mvp"), 1, GL_TRUE, (GLfloat const *)&mvp);
- glProgramUniformMatrix4fv(_shaders->program(_vs_spotlight), glGetUniformLocation(_shaders->program(_vs_spotlight), "shadow_mvp"), 1, GL_TRUE, (GLfloat const *)&shadow_mvp);
- glProgramUniform4fv(_shaders->program(_vs_spotlight), glGetUniformLocation(_shaders->program(_vs_spotlight), "worldspace_light_pos"), 1, (GLfloat c
#!/bin/sh
echo "package depdenencies for $1:"
ldd $1 | perl -pe 's|.*?(/.*?)\s*\(.*|\1|' | grep -v linux-gate | xargs -n 1 dpkg --search | perl -pe 's|(.*?):.*|\1|' | sort | uniq
Desktop 🐶 while true; do ruby -e '$a = File.read("nouns.txt").split("\n"); puts "You only get one #{$a[rand($a.length)]}"'; done
You only get one swallow
You only get one sheep
You only get one goat
You only get one start
You only get one truck
You only get one willow
You only get one dragonfly
You only get one baby
You only get one soccer
Desktop 🐶 cat > test.c
#include <stdio.h>
void bar() { printf("hi\n"); }
void foo() { bar(); }
int main() { foo(); }
Desktop 🐶 cc test.c -Wl,-map -Wl,test.map.txt
Desktop 🐶 cat test.map.txt
# Path: a.out
# Arch: x86_64
# Object files:
test.m:25:4: error: weak receiver may be unpredictably set to nil
[-Werror,-Wreceiver-is-weak]
[a doStuff];
^
test.m:25:4: note: assign the value to a strong variable to keep the object
alive during use
@OneSadCookie
OneSadCookie / gist:6443465
Created September 4, 2013 22:03
for alex
Desktop 🐶 cat test.c
static int foo(int b)
{
int a;
if (b)
{
a = 3;
}
return a;
}