Skip to content

Instantly share code, notes, and snippets.

@boundsj
boundsj / gist:9245097
Created February 27, 2014 05:52
protips
remember to change framework search paths for cedar specs to $(SRCROOT)/Specs/Frameworks to work on CI (i.e. travis)
@boundsj
boundsj / MyTextView.h
Created June 9, 2014 13:55
Subclass with Internal Delegate and Message Forwarding
#import <UIKit/UIKit.h>
@interface MyTextView : UITextView
@end
@boundsj
boundsj / TapableTextView.m
Last active August 29, 2015 14:05
Tappable Attributed UITextView
// in a tap gesture recognizer handler in view controller
// assuming you have a text view in controller called "myTextView"
- (void)myTextViewTapped:(UITapGestureRecognizer *)recognizer {
// get tap location in view in question
CGPoint location = [recognizer locationInView:self.myTextView];
// adjust location for text view's offsets
location.x -= self.myTextView.textContainerInset.left;
location.y -= self.myTextView.textContainerInset.top;
### Keybase proof
I hereby claim:
* I am boundsj on github.
* I am boundsj (https://keybase.io/boundsj) on keybase.
* I have a public key whose fingerprint is 8C6A AF5D 5922 5BF4 45A2 1278 54F0 7E43 1D15 92FF
To claim this, I am signing this object:
@boundsj
boundsj / node-on-ec2-port-80.txt
Created October 26, 2011 05:06 — forked from kentbrew/node-on-ec2-port-80.md
How I Got Node.js Talking on EC2's Port 80
THE PROBLEM:
Standard practices say no non-root process gets to talk to the Internet on a port less than 1024. How, then, could I get Node talking on port 80 on EC2? (I wanted it to go as fast as possible and use the smallest possible share of my teeny tiny little micro-instance's resources, so proxying through nginx or Apache seemed suboptimal.)
THE TEMPTINGLY EASY BUT TOTALLY WRONG SOLUTION:
Alter the port the script talks to from 8000 to 80:
}).listen(80);
@boundsj
boundsj / .profile
Created March 13, 2012 04:28
My .profile
################################################################
# jesse's .profile
################################################################
# set path so that the bin folder that brew uses comes before
# the /usr/bin
PATH=/usr/local/bin:$PATH
@boundsj
boundsj / create_template_postgis.sh
Created March 13, 2012 14:24
Create the postgis template on a mac that had postgis installed from brew
# path taken from brew install notes
POSTGIS_SQL_PATH=/usr/local/share/postgis
# Creating the template spatial database.
createdb -E UTF8 template_postgis
createlang -d template_postgis plpgsql # Adding PLPGSQL language support.
# Allows non-superusers the ability to create from this template
psql -d postgres -c "UPDATE pg_database SET datistemplate='true' WHERE datname='template_postgis';"
@boundsj
boundsj / findnear.py
Created April 30, 2012 22:48
Find and count all the things nearby a place
import math
import pymongo
from pymongo import Connection
earth_radius_in_miles = 3959.0
radians_to_degrees = 180.0 / math.pi
radius = (0.0189393939 / earth_radius_in_miles) * radians_to_degrees # 100 foot radius
bbox_earth_radius = 3959.0 # miles
bbox_dist_from_center = 0.1 # miles
@boundsj
boundsj / cosine_sim_examples.py
Created June 24, 2012 20:27
Cosine Similarity Examples
# -*- coding: utf-8 -*-
from math import sqrt
def vector_length(vector):
"""
Compute length (aka magnitude, Euclidiean norm) of vector.
This gives the ordinary distance from the origin to the point x,
a consequence of the Pythagorean theorem.
@boundsj
boundsj / test.js
Created July 20, 2012 19:31
Node global, module, export exercise
var user1 = require('./user.js'),
user2 = require('./user.js'),
assert = require('assert');
// initialize the value in user1
user1.name("test");
// set it to another value in user2
user2.name("ohai");
// user1's value has been changed
assert.equal(user1.name(), "ohai", "oops");