Skip to content

Instantly share code, notes, and snippets.

Avatar

Ben Hundley FestivalBobcats

  • Fayetteville, AR
View GitHub Profile
@FestivalBobcats
FestivalBobcats / quinky.rb
Created Jul 1, 2014
Quinky (GroupMe haiku bot)
View quinky.rb
require 'json'
require 'typhoeus'
require 'ansi'
ACCESS_TOKEN = #
GROUP_ID = #
def register_bot(name, avatar_url=nil)
url = "https://api.groupme.com/v3/bots?token=#{ACCESS_TOKEN}"
body = {
@FestivalBobcats
FestivalBobcats / .bash_profile
Created Mar 14, 2014
Git branch and changes indicator for bash
View .bash_profile
__quiet() {
$1 2> /dev/null
}
parse_git_branch() {
__quiet 'git branch' | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
count_git_changes() {
count=$(__quiet 'git status -s' | wc -l)
@FestivalBobcats
FestivalBobcats / gist:7913652
Last active Dec 31, 2015
Migrating Elasticsearch index from one cluster to another.
View gist:7913652
require 'json'
require 'tempfile'
OLD_CLUSTER_ENDPOINT = '' # root endpoint
NEW_CLUSTER_ENDPOINT = '' # root endpoint
PER_PAGE = 3_000
def get_json(url)
JSON.parse(`curl -s '#{url}'`)
@FestivalBobcats
FestivalBobcats / TransportTest.java
Last active Dec 30, 2015
Connecting to Qbox.io Elasticsearch cluster with the Java TransportClient.
View TransportTest.java
import org.elasticsearch.action.bulk.BulkItemResponse;
import org.elasticsearch.action.bulk.BulkRequestBuilder;
import org.elasticsearch.action.bulk.BulkResponse;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.Client;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.ImmutableSettings;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.index.query.QueryBuilders;
@FestivalBobcats
FestivalBobcats / gist:6689477
Created Sep 24, 2013
importing stuff into qbox with tire
View gist:6689477
Tire.configure do
url QBOX_ENDPOINT
end
Tire.index(INDEX_NAME) do
delete_if_exists
create
end
json_filepaths.each do |filepath|
@FestivalBobcats
FestivalBobcats / gist:5623373
Created May 21, 2013
setting up auto-complete in ElasticSearch with test documents
View gist:5623373
require 'tire'
Tire.configure do
url "http://api.qbox.io/xxxxxxxx"
end
CONFIGURATION = {
mappings: {
product: {
properties: {
@FestivalBobcats
FestivalBobcats / gist:2898588
Created Jun 8, 2012
Produce one big image from a folder of images
View gist:2898588
# requires ImageMagick. very simple to install
# quick and simple image montaging
collage() {
# convert all images to png
# squash them into one grid-based .png
# cleanup
convert ./* MON%02d.png && montage ./MON*.png -geometry +0+0 __montage.png && rm ./MON*
}
@FestivalBobcats
FestivalBobcats / gist:1387748
Created Nov 23, 2011
beginning of a DSL for me to abuse embedding and linking in MongoDB
View gist:1387748
# Facets are little bits of info about visitors
# Each facet has it's own Mongo collection; however,
# Essential attributes of the facet are imbedded in an Impression.
# This greatly improves performance by avoiding extraneous lookups,
# but also links Facets to their respectful impressions, much like
# facet :has_many => :impressions
# The containing module serves to provide "facet definitions" --
@FestivalBobcats
FestivalBobcats / gist:1378576
Created Nov 19, 2011
1,679,616 unique 4-character ID possibilities. Each generated in < 2ms
View gist:1378576
module Arbiter
class Identity
@@data = Arbiter.db.collection('data')
@@coll = Arbiter.db.collection('page_ids')
def initialize
@length = identity_matrix['length']
@last = identity_matrix['last']
@idx = identity_matrix['idx']
View gist:1345428
require 'acceptance/admin/admin_spec'
feature 'Channel management', :js => true, :admin => true do
let!(:channel) { Fabricate(:channel) }
# TODO: make helper for doing something like
# on_page admin_channels_path do
# scenario...