Skip to content

Instantly share code, notes, and snippets.

@benwilber
benwilber / main.rs
Created May 21, 2017 21:30
My first rust program
extern crate clap;
extern crate reqwest;
#[macro_use]
extern crate serde_derive;
#[macro_use]
extern crate serde_json;
use std::env;
use std::fs::File;
use std::io::{self, Read, BufReader};
@benwilber
benwilber / slugger
Created September 13, 2015 06:53
generate self-contained, executable app archives
#!/bin/bash
trim() {
local var="$*"
var="${var#"${var%%[![:space:]]*}"}"
echo -n "${var%"${var##*[![:space:]]}"}"
}
parseprocfile() {
local IFS=":"
@benwilber
benwilber / running.sh
Last active September 13, 2015 03:46
self-contained, executable app slug creator
$ mkdir helloworld
$ cd helloworld
$ git init .
$ virtualenv .venv
$ .venv/bin/pip install Flask
$ echo "*.pyc" > .gitignore
$ cat <<EOF > app.py
from os import getenv
from flask import Flask
@benwilber
benwilber / django_groupby.py
Created September 2, 2015 02:31
lame groupbys in django
from itertools import groupby
from operator import attrgetter
from django.db import models
class Item(models.Model):
name = models.CharField(max_length=255)
class ItemCountAggregate(models.Model):
item = models.ForeignKey(Item, related_name="count_aggregates")
@benwilber
benwilber / timespec.yacc
Created August 26, 2015 00:04
at timespec
/*
* Abbreviated version of the yacc grammar used by at(1).
*/
%token <charval> DOTTEDDATE
%token <charval> HYPHENDATE
%token <charval> HOURMIN
%token <charval> INT1DIGIT
%token <charval> INT2DIGIT
%token <charval> INT4DIGIT
import av
from av import AV
video_codec_opts = {"moov": "start"} # put the moov header at the front of the file
audio_codec_opts = {'codec': 'libfdk_aac'} # default libfaac
with open("source.mov") as fd:
vid = AV(fd)
vid.resize(720, 480)
vid.transcode_video(av.H264, **video_codec_opts)
import os
import struct
from io import BytesIO
from pycoin.block import Block
def read_uint32(fd):
return struct.unpack(b'<I', fd.read(4))[0]
def parse_file(block_file):
@benwilber
benwilber / timespec
Created March 10, 2014 22:51
yacc grammar for gnu's `at` command
/*
* Abbreviated version of the yacc grammar used by at(1).
*/
%token <charval> DOTTEDDATE
%token <charval> HYPHENDATE
%token <charval> HOURMIN
%token <charval> INT1DIGIT
%token <charval> INT2DIGIT
%token <charval> INT4DIGIT
@benwilber
benwilber / pager_generator.py
Created June 20, 2013 00:17
use generate as simple pager
import cPickle as pickle
class Pager(object):
def __init__(self, sequence, start_index=0):
self.sequence = sequence
self.start_index = start_index
def __iter__(self):
@benwilber
benwilber / gist:4040475
Created November 8, 2012 18:03
Libraries