Skip to content

Instantly share code, notes, and snippets.

@ttilley
ttilley / gist:1737625
Created February 4, 2012 12:42
mac sandbox and code signing conveniences
//
// CodeSignConveniences.h
//
// Created by Travis Tilley on 2/4/12.
// Copyright (c) 2012 Travis Tilley. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <Security/CodeSigning.h>
@ttilley
ttilley / htman.sh
Created December 28, 2011 23:46
open man page in browser on mac
function htman() {
TMPPATH="${TMPDIR:=/tmp/}${@}$RANDOM.html"
groffer --html --html-viewer-tty=cat -- ${@} > "${TMPPATH}"
[[ "$?" == "1" ]] && return 1
${BROWSER:=/usr/bin/open} "${TMPPATH}"
}
@ttilley
ttilley / fix-jruby-cext-xcode4-boo.diff
Created March 15, 2011 13:54
a bit of a hack to just use the installed system rather than a specific SDK, as xcode4 only ships with 10.6 SDK, and using that specifically would both be limiting and also, btw, not work (the JDK paths become incorrect).
diff --git a/cext/src/Makefile b/cext/src/Makefile
index 67116ce..8e1d954 100644
--- a/cext/src/Makefile
+++ b/cext/src/Makefile
@@ -154,7 +154,7 @@ endif
ifeq ($(OS), darwin)
PLATFORM = Darwin
- MACSDK = /Developer/SDKs/MacOSX10.5.sdk
+ MACSDK = /
(function (a) {
jQuery.browser.mobile = /android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|5
@ttilley
ttilley / uacss.js
Created March 8, 2011 03:23
plain javascript port of dojo's uacss module
(function(){
var state = {};
var n = navigator,
ua = n.userAgent,
av = n.appVersion,
tv = parseFloat(av);
if(ua.indexOf("Opera") >= 0){state.isOpera = tv;}
state.isKhtml = (av.indexOf("Konqueror") >= 0) ? tv : 0;
@ttilley
ttilley / fsevent_watch.c
Created March 2, 2011 19:40
FSEvents filesystem watcher, added some forward-thinking structure in preparation for metadata, basic commandline option handling
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <CoreFoundation/CoreFoundation.h>
#include <CoreServices/CoreServices.h>
// Default flags for FSEventStreamCreate
class QuerySetDoubleIteration(Exception):
"A QuerySet was iterated over twice, you probably want to list() it."
pass
# "Skinny" here means we use iterator by default, rather than
# ballooning in memory.
class SkinnyManager(Manager):
def get_query_set(self):
return SkinnyQuerySet(self.model, using=self._db)
func tupleToArray<T, U>(var tuple: T, _ resultType: U.Type) -> [U] {
let count = sizeof(T) / sizeof(U)
return withUnsafePointer(&tuple) { ptr -> [U] in
let eltPtr = UnsafePointer<U>(ptr)
return Array(0..<count).map({ eltPtr[$0] })
}
}
// This yields a linear gradient spanning from top to bottom
+linear-gradient(color_stops(white, black))
This yields a linear gradient spanning from bottom to top
+linear-gradient(color_stops(white, black), "bottom")
This yields a linear gradient spanning from left to right
cdoc.string.quicksilver: (string, abbreviation, offset) ->
offset: or 0
len: abbreviation.length
return 0.9 if len is 0
return 0.0 if len > string.length
for i in [len...0]
sub_abbreviation: abbreviation.substring 0, i