Skip to content

Instantly share code, notes, and snippets.

View matsadler's full-sized avatar

Mat Sadler matsadler

View GitHub Profile
@matsadler
matsadler / jruby-1.6.8.dev
Created June 20, 2012 09:03
ruby-build definition for jruby-1.6.8.dev
install_package "jruby-1.6.8.dev" "http://ci.jruby.org/snapshots/release/jruby-bin-1.6.8.dev.tar.gz" jruby
class Markov
attr_reader :order, :phrases
def initialize(corpus=[], order=3)
@order = order
@phrases = Hash.new {|h,k| h[k] = []}
add(corpus)
end
def add(corpus)
import System.IO
import Data.List
import qualified Data.Map as M
import System.Random
import Data.Maybe
import Control.Applicative
main = do
contents <- readFile "messages.txt"
gen <- getStdGen
@matsadler
matsadler / pr_geohash_ext.rb
Created August 2, 2012 11:51
Additions to the pr_geohash gem for distance calculation
require "pr_geohash"
module GeoHash
RADIUS_OF_THE_EARTH = 6371
RADIANS_CONVERSION_FACTOR = 180 / Math::PI
# decode geohash to a latitude/longitude point in the centre of the
# bounding box described by the geohash
def decode_point(geohash)
@matsadler
matsadler / project.js
Created October 7, 2012 20:29
JavaScript mercator projection
/*jslint vars: true */
// adapted from http://wiki.openstreetmap.org/wiki/Mercator#JavaScript
(function () {
var project = {};
if (typeof exports === "object") {
module.exports = project;
} else {
this.project = project;
@matsadler
matsadler / ruby_2_0_0_highlights.rb
Created November 2, 2012 14:13
A few examples of the ruby 2.0.0 preview 1 highlights given in http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/46348
# Ruby 2.0.0 preview 1 highlights
# A few examples of the highlights given in
# http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/46348
# Refinements
# ===========
# create a namespaced refinement
module NumberQuery
@matsadler
matsadler / sphinx_query_log.rb
Created November 9, 2012 12:51
simple ruby sphinx query log parser
require "time"
# Usage:
#
# SphinxQueryLog.each("path/to/query.log") do |entry|
# # do stuff with entry
# end
#
class SphinxQueryLog
@matsadler
matsadler / auto_pipeline.rb
Created November 28, 2012 09:32
Example of an auto-piplining HTTP client
require "net/http/persistent"
require "net/http/pipeline"
class DeferredProxy < BasicObject
def initialize(&generator)
@generator = generator
end
def method_missing(*args, &block)
@source ||= @generator.call
@matsadler
matsadler / ruby-2.0.0-in-detail.md
Last active December 14, 2015 16:29
Detailed rundown of many of the new features in Ruby 2.0.0.

Ruby 2.0.0 in detail

Keyword arguments

def wrap(string, before: "<", after: ">")
  "#{before}#{string}#{after}" # no need to retrieve options from a hash
end

# optional
@matsadler
matsadler / setenv.sh
Created May 22, 2013 09:47
Execute a command/script with environment variables read from a .env file. Use like `setenv mycommand arg1 arg2 etc` .env file should look like: VAR1=vlaue1 VAR2=value2
#!/usr/bin/env sh
set -e
dot_env=`cat .env`
env $dot_env $@