Skip to content

Instantly share code, notes, and snippets.

View dcollien's full-sized avatar

David Collien dcollien

View GitHub Profile
@dcollien
dcollien / gist:2364685
Created April 12, 2012 04:56
haskellbrot
import Data.Ratio
import Data.List
import Graphics.GD
type MandelNum = Double
maxIterations :: Int
maxIterations = 255
main :: IO()
@dcollien
dcollien / fancy checkboxes and radio buttons
Last active December 20, 2015 21:19
fancy checkboxes and radio buttons in CSS falls back to ordinary checkboxes if type="checkbox" is not supported
<!DOCTYPE html>
<style>
/* begin fancy checkbox and radio button css */
/* hide input elements we don't want to render. N.B. if type="checkbox" is not supported, this will
fall back to a normal checkbox */
label.input-fancy input[type="checkbox"], label.input-fancy input[type="radio"] {
display:none;
@dcollien
dcollien / colors
Last active December 21, 2015 01:28
Color Swatch
.turquoise.background {
background-color: #1ABC9C;
}
.turquoise.text {
color: #1ABC9C;
}
.turquoise.border {
border-color: #1ABC9C;
}
@dcollien
dcollien / c_json_servlet.c
Last active August 12, 2020 10:50
C program for a libevent server receiving JSON requests and replying with JSON responses over HTTP
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <event.h>
#include <evhttp.h>
@dcollien
dcollien / gist:7523295
Created November 18, 2013 06:04
Vectors are fun
<canvas></canvas>
<script>
var L, M, Vect, v;
M = {
TAU: Math.PI * 2,
vary: function(amt) {
return 2 * amt * (Math.random() - 0.5);
@dcollien
dcollien / workerRunner.py
Created August 18, 2014 09:17
Load text files and reverse their lines, running 4 processes at a time
import os
from multiprocessing import Pool
NUM_PROCESSES = 4
ALLOWED_EXTENSION = '.txt'
NEW_EXTENSION = '.reversed.txt'
OUTPUT_DIR = os.path.join(os.getcwd(), 'output')
def processFile(file):
# process a file, delegated over multiple processes
@dcollien
dcollien / arg_types.py
Last active August 29, 2015 14:07
Automatic Argument Conversion Decorator
import calendar
from datetime import datetime
import types
import json
from functools import wraps
def convert_arg(type_name, value):
converter = None
if not isinstance(type_name, basestring):
converter = type_name
@dcollien
dcollien / db.py
Created November 26, 2014 21:22
MongoAlchemy shortcut layer
from mongoalchemy.fields import DocumentField, StringField
from mongoalchemy.session import Session
from mongoalchemy.query import BadQueryException, BadResultException
from mongoalchemy.query_expression import QueryField
from mongoalchemy.document import DocumentMeta
from pymongo.errors import DuplicateKeyError
from pytz import utc
@dcollien
dcollien / GitHub_WebHook.coffee
Last active April 7, 2021 23:23
GitHub WebHook Endpoint in CoffeeScript
# Simple GitHub Webhook Listener
express = require 'express'
bodyParser = require 'body-parser'
crypto = require 'crypto'
bufPack = require 'bufferpack'
app = express()
PORT = process.argv[2] or process.env.PORT or 8081
AUTH_SECRET = process.argv[3] or process.env.SECRET_TOKEN or 'test'
@dcollien
dcollien / lunch.coffee
Created February 12, 2015 05:19
UrbanSpoon What's for Lunch in Sydney CBD?
request = require 'request'
lastLunches = ''
module.exports = (callback) ->
request {
url: "http://www.urbanspoon.com/api/ispin?p=1&n=7003&r=#{lastLunches}&l=70&v=6f"
}, (err, msg, data) ->
fields = (data.split '\t')
restaurantID = fields[0]