Skip to content

Instantly share code, notes, and snippets.

View mildmojo's full-sized avatar
💃
Not much. You?

Tim mildmojo

💃
Not much. You?
View GitHub Profile
@mildmojo
mildmojo / LexitronCreateAxes.cs
Last active August 29, 2015 14:08
Bolt-on Lexitron arcade cabinet compatibility for Unity
/* LexitronCreateAxes.cs
*
* 1. Place this script in your project's Assets/Editor/ directory.
* 2. Open Edit -> Project Settings -> Input and verify that there are four "Lexitron" axes.
* 3. Delete this script.
*
* All of this code shamelessly swiped from:
* http://www.plyoung.com/blog/manipulating-input-manager-in-script.html
* http://answers.unity3d.com/questions/26994/running-a-script-when-unity-starts.html
*/
@mildmojo
mildmojo / gulpfile.js
Created May 29, 2015 16:35
Make gulp look more like rake
/*
gulpfile.js
Gulp lacks a native way to provide task documentation or break tasks
into multiple files. This gulpfile reads './tasks/*.js' and can list
all available tasks with `gulp` or `gulp tasks`. If you set a .desc
property on your task functions, those descriptions will show up in
`gulp tasks` output. Tasks without descriptions will be omitted
from this output (but still visible with `gulp -T`).
@mildmojo
mildmojo / config.ru
Created June 21, 2012 18:07
Sitewide Rack HTTP basic auth with exceptions for publicly-accessible paths
require File.expand_path("../init", __FILE__)
require 'rack/ssl-enforcer'
# Require HTTPS for all requests (not required; remove if unavailable)
use Rack::SslEnforcer
AUTH_CREDS = { user: 'user', pass: 'password' }
# Create a middleware to add HTTP basic auth to all but the whitelisted paths
class ProtectedApp
@mildmojo
mildmojo / gist:3641946
Created September 5, 2012 18:24
Getting the exit status from the command at the head of a pipeline in dash vs. bash
DASH
----
Not actually supported by POSIX alone. Googled from http://www.spinics.net/lists/dash/msg00327.html:
$ exec 3>&1 # duplicate original stdout
$ result=$(
exec 4>&1 >&3 3>&- # move cmd subst stdout, and restore original
{ ./main.sh; echo $? >&4 # run command, and record its status
} | head -n 3)
$ echo $result # status from ./main.sh
@mildmojo
mildmojo / active_record_left_join.rb
Created November 16, 2012 22:27
Adding #left_joins to ActiveRecord::Base
# Adds left joins to ActiveRecord.
#
# = Description
#
# This patch adds a #left_joins method to ActiveRecord models and relations. It
# works like #joins, but performs a LEFT JOIN instead of an INNER JOIN.
#
# = A warning about +count+
#
# When using with #count, ActiveRecord 3.2.8 is hard-coded to act as if
@mildmojo
mildmojo / arel_math_named_functions.rb
Created November 22, 2012 02:29
ARel named function helpers
# Collection of helpers for math-related ARel NamedFunctions.
#
# Include this in classes that need to do trig with DB functions. Lets you write
# cleaner code, like:
#
# dist = acos(sin(lat) * sin(arel_lat_field) +
# cos(lat) * cos(arel_lat_field) * cos(arel_lng_field)) * EARTH_RADIUS_KM
# band_num = round(dist / ring_width, 0)
# band_num.to_sql
# # => round(abs(acos(
@mildmojo
mildmojo / heartbeat.js
Last active October 21, 2015 21:52
Heartbeat.js - find event loop blocking code by looking for blown timeouts
// Heartbeat log script for node.js. Use this to sniff out code that blocks
// your event loop; heartbeats will take longer if the event loop is
// blocked.
// Just require('./heartbeat.js'); ==OR== require('./heartbeat.js')(3000);
module.exports = go;
var DEFAULT_HEARTBEAT_MS = 2000;
var startedAt, loop;
go();
@mildmojo
mildmojo / setup_teardown_helper.js
Last active November 3, 2015 18:16
Jasmine-node helpers: per-describe `setup` and `teardown` functions
/*
setup_teardown_helper.js
Setup and teardown helper functions for jasmine-node (jasmine 1.3).
IMNSHO, every damn test runner should provide the following hooks:
startup (global; runs once before any setups or specs begin)
setup (describe-local; runs once before any specs in a `describe`)
beforeEach (describe-local; runs once before each spec in a `describe`)
afterEach (describe-local; runs once after each spec in a `describe`)
@mildmojo
mildmojo / GoogleAnalytics.cs
Last active December 11, 2015 22:09
Reporting Unity game events to Google Analytics from the Unity Webplayer. Calls out to the Google javascript library loaded on the page, so the class is configuration-free.
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
/* Google Analytics integration. Web page must be configured for GA with Google's javascript snippet.
*
* Based on a comment from 2010 found here:
* http://blog.mostlytigerproof.com/2009/10/06/gathering-statistics-using-google-analytics-and-unity-3d/
*
* Analytics category/action/label/value descriptions:
@mildmojo
mildmojo / haters.rb
Last active December 20, 2015 08:29
Script for pulling out all the Twitter haters blogged at http://gamerfury.tumblr.com (all sorts o' trigger warnings on that one).
#!/usr/bin/env ruby
#
# haters.rb
#
# Finds all the Twitter users posted to http://gamerfury.tumblr.com and prints
# them, newline-delimited, to STDOUT. Require this file in your own script to
# access ScumbagHaterFinder directly.
#
# Tested with Ruby 2.0.0.