Skip to content

Instantly share code, notes, and snippets.

View gist:9444822
A little node.js server for testing html5 ajax file uploads.
It serves up the current directory and receives uploads at /upload.
This is for use with xhr.send(file) where the entire request body is the file.
It just pauses one second between chunks so that client-side progress events
get a chance to fire. On my laptop it looks like the maximum chunk size is
around 40K, so you would still need images in the range of hundreds of kilobytes
to really be able to test it.
View static_server.js
var http = require("http"),
url = require("url"),
path = require("path"),
fs = require("fs")
port = process.argv[2] || 8888;
http.createServer(function(request, response) {
var uri = url.parse(request.url).pathname
, filename = path.join(process.cwd(), uri);
View SpecialWordsTokenFilter.cs
/// <summary>
/// Normally, we tokenize based on white space. But there are times we want to keep words across whitespace, e.g.
/// "in basket" should not become "in" "basket". This class allows you to do that.
/// </summary>
class SpecialWordsTokenFilter : TokenFilter
readonly TermAttribute termAttribute;
readonly Dictionary<string, string> TwoWords = new Dictionary<string, string>();
private Queue<string> bufferBuffer = new Queue<string>();
View limt_req_zone_whitelist
geo $limited {
default 1;
# Wordpress Jetpack ranges: 0; 0; 0; 0;
View gist:2bc923fb8978e6f5bfa5
http {
map $http_user_agent $limit_bots {
default '';
~*(google|bing|yandex|msnbot) $binary_remote_addr;
limit_req_zone $limit_bots zone=bots:10m rate=1r/m;
server {
View sentry-nginx.conf
user nobody;
worker_processes auto;
error_log logs/error.log notice;
worker_rlimit_nofile 65535;
pid /var/run/;
events {
accept_mutex off;
View gist:cc9eb8e61a1fbba964d5
location /aaa/ {
# internal;
set $upstream "";
set $referer "";
set $ref $arg_ref;
set $url $arg_url;
set $tohost "";
set $newuri "";
# add_header Content-Type text/plain;
View gist:4495bdf10f0221a11384
## Get the size of the image file using Lua.
## Cf.
location ~* \.(?:gif|jpe?g|png)$ {
set_by_lua $img_file_size '
function fsize (file)
local current = file:seek() -- get current position
local size = file:seek("end") -- get file size
file:seek("set", current) -- restore position
return size
View gist:26cf41177776408b7d43
# based on
# using code from
# "database scheme"
# database 0: id ~> url
# database 1: id ~> hits
# database 2: id ~> [{referer|user_agent}]
# database 3: id ~> hits (when id is not found)
# database 4: id ~> [{referer|user_agent}] (when id is not found)
# database 5: key "count" storing the number of shortened urls; the id is generated by (this number + 1) converted to base 62
View nginx.conf
# example location parts of nginx.conf
# add your own AWS keys, server lines etc, and set your aws domains, paths
http {
# you will need the luacrypto in the cpath, download from
lua_package_cpath "/home/justin/lua/luacrypto-0.2.0/src/l?.so.0.2.0;;";
server {
listen 80;