Skip to content

Instantly share code, notes, and snippets.

View sneeu's full-sized avatar
🦀
Hi

John Sutherland sneeu

🦀
Hi
View GitHub Profile
@sneeu
sneeu / fb_test_users.py
Created May 30, 2011 17:19
Generates a bunch of Facebook test users, and dumps the values to stdout as CSV.
import csv
import json
import logging
import urllib2
import urlparse
APP_ID = ''
APP_SECRET = ''
PERMISSIONS = ['user_about_me', 'email', 'user_events', 'rsvp_event', 'offline_access', 'publish_stream']
@sneeu
sneeu / mandel.clj
Created July 2, 2011 19:18
Generates a Mandelbrot fractal as a PNM image.
; Example http://www.flickr.com/photos/sneeu/5894879494/
(ns mandel
(:require [clojure.string :as string]))
(defn mandel
"Generates a Mandelbrot image as a seq of seqs."
[size max-iteration scale depth]
(let [width (first size)
height (second size)
mandel-limit (fn mandel-limit [x0 y0 x y i]
(function ($) {
$(function () {
$('img').each(function () {
var i = $(this);
if (this.width > this.height) {
i.addClass('landscape');
} else if (this.width < this.height) {
i.addClass('portrait');
} else {
i.addClass('square');
@sneeu
sneeu / dither.py
Created September 6, 2011 08:59
Upscale an image to double with & height, and put a dithering pattern over it.
from PIL import Image
def dither(im):
width, height = im.size
avg_color = tuple([n / 2 for n in sorted(im.getcolors(width * height))[-1][1]])
new_im = Image.new("RGBA", (width * 2, height * 2), avg_color)
for x in xrange(0, width):
import base64
from django.http import HttpResponse
LOGO_DATA = "R0lGODlheABDAOZqAH+CuDk3RyglKszN4qGky9PV57K01ENCWIOGuYKDs1JScpCSwsLE3qqs0ExLY1tcg93e7Ds4PG5xpWptnWFjjXV5sXt+teXm8JmcxoyNwbm62Wtrkk5Oa3F0qXp6o4iLvXJ0o3RzmI6QwVpbfuLj73t9raSl0G1wonJ2rJWWyLu92XR4roWIu5KVw9jZ6pKSxGRmkmtun6WozpSWxS4rL1NRaLO012xqjFxbdoqNv2ZolmhqmpyfyDEuOa6w05yczVVWeJ6hypaZxYGCr2dplz89ULy+2l5giZiZyIyOv4mKuldYfLa319XX6CIeIGxvns7Q5L/A3Hd7tHZ4p19efZmZzG5vmHN3riIeH////5COj1lWV8fGx+7u9dXU1fb2+oKAgayqq3Ryc/Hw8Z6cnePi40tISbm4uWdkZYmJtgD/AEdGX9/g7ZuczGlrnG9zp4yMuri52bi615qbzKeqz9vc65qcyWZkhGhniaeo0m5woIuLucbH4MfJ4WlsnJeYyyH5BAEAAGoALAAAAAB4AEMAAAf/gGqCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXlm0/bXOYnp+gP3l5Nj4acUwaGkwGPj4NMgRBPBhCLQtJIjkfGTkiLymgwqENGgx9TQVQUAN9fAxRUSpyrK90sbNCMy26HwgAFhYVVyglFgkZwcPrjCZxfC5sbBAQdS7JA9QysyIf/iwAEQgEQLDgN4LhpKxA8UbCCT87nkwZkoSdRTVBbAxgQ+KCRxIk8jUQskCKyZMoU6pceXJcBwkTduiAQeEIBStDRFzEFIQJFI4eL7gwQqcFy6NIk6K88iYGjCNHHoxYcsSDzp2Qfmh0AYEjBCMEWCgdSzbplRM6HiwBokDBiCkz/7AuMqGhQBMXdQoYSFK2r1+kHWAsUcCBgwM8CeQayhNlAJQCA3zk+LtyAYbLm
Handlebars.registerHelper('ifequal', function (l, r, fn) {
if (l === r) return fn();
return '';
});
Handlebars.registerHelper('unlessequal', function (l, r, fn) {
if (l !== r) return fn();
return '';
});
Ben Dan Dom Jamie John Keith Stuart
server {
listen 80 default;
access_log /var/www/sagan/logs/nginx.access.log;
error_log /var/www/sagan/logs/nginx.error.log;
location / {
root /var/www/sagan/static/;
try_files $uri $uri/index.html @proxy;
}
@sneeu
sneeu / ns.clj
Created December 1, 2011 16:52
Importing in Clojure
# As `require.clj` above.
(ns project
(:require clojure.string
[clojure.set :as set]))
# As `use.clj` above.
(ns project
(:use clojure.string
[clojure.set :only [intersection]]))
@sneeu
sneeu / php_identify_middleware.py
Created February 29, 2012 16:57
Identify a Django as a PHP site, by showing the PHP logo on certain times.
import base64
from django.http import HttpResponse
LOGO_DATA = "R0lGODlheABDAOZqAH+CuDk3RyglKszN4qGky9PV57K01ENCWIOGuYKDs1JScpCSwsLE3qqs0ExLY1tcg93e7Ds4PG5xpWptnWFjjXV5sXt+teXm8JmcxoyNwbm62Wtrkk5Oa3F0qXp6o4iLvXJ0o3RzmI6QwVpbfuLj73t9raSl0G1wonJ2rJWWyLu92XR4roWIu5KVw9jZ6pKSxGRmkmtun6WozpSWxS4rL1NRaLO012xqjFxbdoqNv2ZolmhqmpyfyDEuOa6w05yczVVWeJ6hypaZxYGCr2dplz89ULy+2l5giZiZyIyOv4mKuldYfLa319XX6CIeIGxvns7Q5L/A3Hd7tHZ4p19efZmZzG5vmHN3riIeH////5COj1lWV8fGx+7u9dXU1fb2+oKAgayqq3Ryc/Hw8Z6cnePi40tISbm4uWdkZYmJtgD/AEdGX9/g7ZuczGlrnG9zp4yMuri52bi615qbzKeqz9vc65qcyWZkhGhniaeo0m5woIuLucbH4MfJ4WlsnJeYyyH5BAEAAGoALAAAAAB4AEMAAAf/gGqCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXlm0/bXOYnp+gP3l5Nj4acUwaGkwGPj4NMgRBPBhCLQtJIjkfGTkiLymgwqENGgx9TQVQUAN9fAxRUSpyrK90sbNCMy26HwgAFhYVVyglFgkZwcPrjCZxfC5sbBAQdS7JA9QysyIf/iwAEQgEQLDgN4LhpKxA8UbCCT87nkwZkoSdRTVBbAxgQ+KCRxIk8jUQskCKyZMoU6pceXJcBwkTduiAQeEIBStDRFzEFIQJFI4eL7gwQqcFy6NIk6K88iYGjCNHHoxYcsSDzp2Qfmh0AYEjBCMEWCgdSzbplRM6HiwBokDBiCkz/7AuMqGhQBMXdQoYSFK2r1+kHWAsUcCBgwM8CeQayhNlAJQCA3zk+LtyAYbLm