Instantly share code, notes, and snippets.

James Miller bensie

View GitHub Profile
View imagemagick.bash
#!/usr/bin/env bash
# Must be run on an Amazon Linux AMI that matches AWS Lambda's runtime which can be found at:
# As of Jan 10, 2019, this is:
# Amazon Linux AMI 2017.03.1.20170812 x86_64 HVM GP2 (ami-4fffc834)
# Lambda includes ImageMagick 6.7.8-9 preinstalled, so you need to prepend PATH
# with the folder containing these binaries in your Lambda function to ensure
View routes.rb
Rails.application.routes.draw do
scope module: "api" do
constraints subdomain: "api" do
match "/", to: "root#options", via: [:options]
match "*unmatched", to: "root#options", via: [:options]
resource :me, only: [:show, :update], controller: "me"
post "/me/access_tokens", to: "access_tokens#create"
delete "/me/access_tokens", to: "access_tokens#destroy"
View uploader.go
package main
import (
func uploadHandler(w http.ResponseWriter, r *http.Request) {

Keybase proof

I hereby claim:

  • I am bensie on github.
  • I am bensie ( on keybase.
  • I have a public key whose fingerprint is B720 6EF1 71C0 466C 38BF 65AC C5AB 1889 61E6 14A1

To claim this, I am signing this object:

View gist:e9b5cd8a16fe1d40210f
sudo apt-get install openjdk-7-jre-headless -y
sudo dpkg -i elasticsearch-1.2.2.deb
sudo service elasticsearch start
View api.rb
post "/shots" do
if params[:photo] && params[:photo].is_a?(Hash)
class UploadedFile < OpenStruct; end
paperclip =
tempfile: params[:photo][:tempfile],
path: params[:photo][:tempfile].path,
original_filename: params[:photo][:filename],
content_type: params[:photo][:type],
head: params[:photo][:head]
View api_macros.rb
require "json"
module ApiMacros
def json(content)
JSON.pretty_generate content
def decode_json(content)
JSON.parse content, symbolize_names: true
View crash.log
2013/12/30 17:45:48 Packer Version: 0.5.0 ccaf00c29e16752ffab552a1f04999590062b48a
2013/12/30 17:45:48 Packer Target OS/Arch: darwin amd64
2013/12/30 17:45:48 Built with Go Version: go1.2
2013/12/30 17:45:48 Detected home directory from env var: /Users/james
2013/12/30 17:45:48 Attempting to open config file: /Users/james/.packerconfig
2013/12/30 17:45:48 File doesn't exist, but doesn't need to. Ignoring.
2013/12/30 17:45:48 Packer config: &{PluginMinPort:0 PluginMaxPort:0 Builders:map[amazon-ebs:packer-builder-amazon-ebs amazon-chroot:packer-builder-amazon-chroot docker:packer-builder-docker googlecompute:packer-builder-googlecompute virtualbox-iso:packer-builder-virtualbox-iso vmware-iso:packer-builder-vmware-iso amazon-instance:packer-builder-amazon-instance digitalocean:packer-builder-digitalocean openstack:packer-builder-openstack qemu:packer-builder-qemu virtualbox-ovf:packer-builder-virtualbox-ovf vmware-vmx:packer-builder-vmware-vmx] Commands:map[build:packer-command-build fix:packer-command-fix insp
View gist:6789485
This file has been truncated, but you can view the full file.
0.000095 main(2): gphoto2 2.5.2
0.000105 main(2): gphoto2 has been compiled with the following options:
0.000111 main(2): + gcc (C compiler used)
0.000115 main(2): + popt (mandatory, for handling command-line parameters)
0.000120 main(2): + exif (for displaying EXIF information)
0.000125 main(2): + no cdk (for accessing configuration options)
0.000129 main(2): + no aa (for displaying live previews)
0.000134 main(2): + jpeg (for displaying live previews in JPEG format)
View copyexif.m
NSData *jpeg = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageDataSampleBuffer] ;
CGImageSourceRef source ;
source = CGImageSourceCreateWithData((CFDataRef)jpeg, NULL);
//get all the metadata in the image
NSDictionary *metadata = (NSDictionary *) CGImageSourceCopyPropertiesAtIndex(source,0,NULL);
//make the metadata dictionary mutable so we can add properties to it
NSMutableDictionary *metadataAsMutable = [[metadata mutableCopy]autorelease];