Skip to content

Instantly share code, notes, and snippets.

@preble
preble / RandomAppDelegate.swift
Last active August 29, 2015 14:02
Random app in Swift
import Cocoa
class AppDelegate: NSObject, NSApplicationDelegate {
@IBOutlet var window: NSWindow
@IBOutlet var label: NSTextField
func applicationDidFinishLaunching(aNotification: NSNotification?) {
// Insert code here to initialize your application
}
@preble
preble / gist:b819c22f6de4d68a5606
Created November 7, 2014 16:22
NSView extension: insetSubview(_:dx:dy:)
extension NSView {
func insetSubview(subview: NSView, dx: CGFloat, dy: CGFloat) {
addSubview(subview)
subview.translatesAutoresizingMaskIntoConstraints = false
let constrain = { (attribute: NSLayoutAttribute, constant: CGFloat) in
subview.addConstraint(NSLayoutConstraint(
item: subview,
attribute: attribute,
relatedBy: .Equal,
@preble
preble / IdentifierGenerator.swift
Created February 7, 2015 14:30
Generate random identifiers in the style of Xcode.
public class IdentifierGenerator {
private let characters = Array("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
private let separator = "-"
public func generateIdentifier() -> String {
let numCharacters = UInt32(characters.count)
func randomCharacter() -> Character {
let index = Int(arc4random_uniform(numCharacters))
return characters[index]
@preble
preble / demo_foreign.c
Last active August 29, 2015 14:21
Demonstration of calling a Wren method from the current embedding API. More on Wren: http://wren.io/ Derived from: https://github.com/munificent/wren/issues/194
#include <assert.h>
#include <string.h>
#include <stdio.h>
#include "wren.h"
void logFromWren(WrenVM *vm) {
//double x = wrenGetArgumentDouble(vm, 0); // returns 0 in this setting
const char *message = wrenGetArgumentString(vm, 1);
printf("logFromWren: %s\n", message);
}
#include "WProgram.h"
void UpdateDMD();
void Bounce();
void SetAllDots(byte value);
void SetDot(byte col, byte row, byte value);
void FrameToSerial();
#define pinDisplayEnable 3 // DMD pin 1
#define pinRowData 4 // One pin 3
#define pinRowClock 5 // DMD pin 5
#define pinColLatch 6 // DMD pin 7
Index: Framework/BGHUDTableViewHeaderCell.m
===================================================================
--- Framework/BGHUDTableViewHeaderCell.m
+++ Framework/BGHUDTableViewHeaderCell.m
@@ -73,7 +73,7 @@
}
- (void)_drawThemeContents:(NSRect)frame highlighted:(BOOL)flag inView:(id)view {
-
+
@preble
preble / RandomThreadSafetyTest.m
Created September 3, 2012 15:16
Test thread safety of random number generators.
// Testing thread safety of rand() and random(); for more see:
// http://adampreble.net/blog/2012/09/mtrandom-an-objective-c-random-number-generator/
// Created by Adam Preble on 9/3/12
// Copyright (c) 2012 Adam Preble. All rights reserved.
//
#import <Foundation/Foundation.h>
#if 1
#define test_srandom srandom
@preble
preble / glerrcheck.h
Created October 24, 2012 14:04
glGetError() test macro
// A macro I wrote a few years back to assist in checking OpenGL error codes.
// Add to a .h or at the top of your implementation file:
#define GLERR do {\
GLuint glerr;\
while((glerr = glGetError()) != GL_NO_ERROR)\
fprintf(stderr, "%s:%d glGetError() = 0x%04x", __FILE__, __LINE__, glerr);\
} while (0)
// Sprinkle in "GLERR;" after failure-prone OpenGL calls.
@preble
preble / DispatchSyncThrows.swift
Created June 27, 2015 00:25
An overload of dispatch_sync that throws any error thrown by the closure. (Swift 2)
import Foundation
/// Call a throwing block synchronously.
func dispatch_sync(queue: dispatch_queue_t, block: () throws -> ()) throws {
var error: ErrorType?
dispatch_sync(queue) {
do {
try block()
} catch let caughtError {
error = caughtError
@preble
preble / gist:5117339
Last active December 14, 2015 16:48
iOS & Cocoa Resources