Skip to content

Instantly share code, notes, and snippets.

View mattknox's full-sized avatar

matt knox mattknox

View GitHub Profile
@mattknox
mattknox / gist:1135211
Created August 9, 2011 21:11
asshat bizdev guy spews jargon, signifying nothing.
As a strategic consulting firm focused on Innovation and Growth Strategies, I wanted to take an opportunity to introduce myself and our firm. I understand that you and your colleagues may be in the midst of evaluating new initiatives in this area, hence the timing of this introduction.
I would like to present Harrison Hayes‘ approach to the creation and validation of market growth strategies and how our methodologies may fit your objectives at Twitter.
At Harrison Hayes, our suite of service includes:
Whitespace Opportunity Identification / Disruptive Ideation
Market Access/Market Landscaping / Emerging Market Analysis
Technology Scouting / New Product Validation
Market Adjacency Mapping
@mattknox
mattknox / Gemfile
Created August 9, 2011 03:42 — forked from victusfate/Gemfile
Rails 3.1 Beta 1 on Heroku Working Config
# source 'http://rubygems.org'
source :gemcutter
gem 'rails', '3.1.0.beta1'
# Asset template engines
gem 'json'
gem 'sass'
gem 'coffee-script'
gem 'uglifier'
class LcmFinder
attr_accessor :seen, :factors
def initialize
@seen = Set.new
@factors = Hash.new(0)
end
def factor(n)
cur = n
@mattknox
mattknox / humanize.rb
Created May 3, 2011 03:28
Numeric#humanize makes numbers more readable.
class Numeric
SCALE_TO_WORD = Hash.new do |h, i|
" * 10^#{i * 3}"
end.merge({ 1 => " thousand",
2 => " million",
3 => " billion",
4 => " trillion"
})
# in my unscientific test, no one really found names beyond trillion useful.
ls .rvm/gems/ree-1.8.7-2010.02/gems/ | perl -ne 's/(.*)-[.\d]+/$1/; print' | sort | uniq >~/gems
...change to a different ruby...
cat ~/gems | xargs gem install
@mattknox
mattknox / gist:703954
Created November 17, 2010 19:56
hamming numbers in haskell, common lisp and scheme
main = print (take 1000 hamming)
hamming = 1 : map (2*) hamming ~~ map (3*) hamming ~~ map (5*) hamming
where
xxs@(x:xs) ~~ yys@(y:ys) -- To merge two streams:
| x==y = (x : xs~~ys) -- if the heads are common, take that
| x<y = (x : xs~~yys) -- otherwise, take the smaller one
| x>y = (y : xxs~~ys) -- and proceed to merge the rest
(defun n-hammings (twos threes fives tail n out)
(if (= n 0)
/*
* Fabrizio Calderan, twitter @fcalderan, 2010.11.02
* I had an idea: could Inception movie be explained by a few javascript closures
* and variable resolution scope (just for fun)?
*
* Activate javascript console =)
*/
<script>
console.group("inception movie");
@mattknox
mattknox / gist:654006
Last active March 22, 2022 02:32 — forked from ryanking/gist:653962
Stop::CantTouchThis
module Stop
module CantTouchThis
def self.included(mod)
%w[instance_variable_get instance_variable_set].each do |m|
send(:protected, m)
end
eigenclass = class << mod; self; end
%w[const_set class_variable_get class_variable_set public_class_method attr attr_reader attr_writer].each do |m|
@mattknox
mattknox / init.el
Created September 15, 2010 19:13 — forked from aaroncampos/init.el
;; Helpful macro function
(defun my-macro-query (arg)
"Prompt for input using minibuffer during kbd macro execution.
With prefix argument, allows you to select what prompt string to use.
If the input is non-empty, it is inserted at point."
(interactive "P")
(let* ((query (lambda () (kbd-macro-query t)))
(prompt (if arg (read-from-minibuffer "PROMPT: ") "Input: "))
(input (unwind-protect
(progn
module MathFunctions
include InlineTest
def factorial(n)
(1..n).inject(1) { |acc, x| acc * x}
end
unit_test do
assert factorial(6) == 720
assert factorial(5) == 120