Skip to content

Instantly share code, notes, and snippets.

View mattknox's full-sized avatar

matt knox mattknox

View GitHub Profile
require "rubygems"
require "rbench"
require "set"
RANGE = (1..1000)
ARRAY = RANGE.to_a
SET = Set.new(ARRAY)
HASH = ARRAY.inject({}) {|m, x| m[x] = true; m}
WORST_CASE_COMPLEXITY = ARRAY.size + 1
@mattknox
mattknox / about.md
Created August 22, 2011 07:09 — forked from jasonrudolph/about.md
Programming Achievements: How to Level Up as a Developer
@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'
/*
* 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
# inject our logger into CouchRest HTTP abstraction layer
module HttpAbstraction
def self.get(uri, headers=nil)
start_query = Time.now
log = {:method => :get, :uri => uri, :headers => headers}
response = super(uri, headers=nil)
end_query = Time.now
log[:duration] = (end_query - start_query)
CouchRest::Logger.record(log)
module CouchRest
class Logger
def initialize(app, db=nil)
@app = app
@db = db
end
def call(env)
log['started_at'] = Time.now
- simple
- public over private
- personal vanity
- internet is global
- permalinks
- one important item per page
- don't break the browser
- don't wanker in technology
- a medium is not a grande
- break convention for your users
1: C
2: PHP
3: JavaScript
4: C++
5: Java
6: Ruby
7: Emacs Lisp
8: Python
9: Perl
10: C Sharp