Skip to content

Instantly share code, notes, and snippets.

View michaelklishin's full-sized avatar

Michael Klishin michaelklishin

View GitHub Profile
@geelen
geelen / haskell.sh
Created September 17, 2013 05:20
Real-world benchmarks
$ time ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.6.3
real 0m0.074s
user 0m0.006s
sys 0m0.012s
# run with "jruby --1.9 /path/to/this.rb" and wait 10 minutes
class Thing
def initialize
require 'cabin'
@logger = Cabin::Channel.new
sout = Logger.new(STDOUT)
@logger.level = :debug
@jespada
jespada / haproxy.cfg
Created March 9, 2013 21:03
haproxy(1.5) + ssl + websockets (see comments on how to create a .pem file)
defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
timeout connect 5s
timeout client 50s
timeout server 50s
@michaelklishin
michaelklishin / latency.txt
Created June 19, 2012 00:13 — forked from jboner/latency.txt
Latency Numbers Every Programmer Should Know
Latency Comparison Numbers
--------------------------
L1 cache reference 0.5 ns
Branch mispredict 5 ns
L2 cache reference 7 ns 14x L1 cache
Mutex lock/unlock 25 ns
Main memory reference 100 ns 20x L2 cache, 200x L1 cache
Compress 1K bytes with Zippy 3,000 ns
Send 1K bytes over 1 Gbps network 10,000 ns 0.01 ms
Read 4K randomly from SSD* 150,000 ns 0.15 ms
//Pinstats.
//Fetch the pinterest front page. Extract all the name elements
//and keep track of the gender of what you find
package main
import (
"code.google.com/p/go-html-transform/html/transform"
"fmt"
@pedroteixeira
pedroteixeira / SpamLord.java
Created March 11, 2012 23:15
coursera nlp pa1
// Modified SpamLord.java to call clojure code
public List<Contact> processFile(String fileName, BufferedReader input) {
List<Contact> contacts = new ArrayList<Contact>();
// for each line
Matcher m;
String email;
try {
List results = new spamlord().process(input);
@michaelklishin
michaelklishin / monger.querying.clj
Created November 14, 2011 09:10
Our new MongoDB query DSL in Monger, implemented in < 100 lines of Clojure
(with-collection "docs"
(find { :inception_year { $lt 2000 $gte 2011 } })
(fields { :inception_year 1 :name 1 })
(skip 10)
(limit 20)
(batch-size 50)
(hint "my-index-name")
(snapshot))
@jorgenpt
jorgenpt / jruby_timeout.rb
Created November 11, 2011 00:59
Workaround for JRuby's timeout not working well with IO.popen
# Workaround for IO.popen.readlines being allowed to block indefinitely even if
# wrapped in a Timeout::timeout call.
#
# Test case:
# $ time jruby -rtimeout -e "timeout(1) { IO.popen('sleep 10').readlines }"
require 'jruby'
module Timeout
def self.timeout(sec, klass=nil)
return yield(sec) if sec == nil or sec.zero?
anonymous
anonymous / gist:1134700
Created August 9, 2011 17:48
~/projects/jruby $ ant -q -Djruby.default.ruby.version=1.9
[echo] Updating Constants.java
[echo] ...using git revision = 19f613b, tzdata = 2010k
[javac] warning: [options] bootstrap class path not set in conjunction with -source 1.5
[javac] 1 warning
[apt] Since compiler setting isn't classic or modern, ignoring fork setting.
[apt] Since compiler setting isn't classic or modern, ignoring fork setting.
[jar] Warning: selected jar files include a META-INF/INDEX.LIST which will be replaced by a newly generated one.
BUILD SUCCESSFUL
@fritzek
fritzek / gist:1009970
Created June 6, 2011 09:05
mail template about letting devs know that tests are failing because they aren't including rake in their gem file
Hey <github-handle>
Thanks that you run your test on Travis-CI.
Just to let you know: your tests failing because you haven't included rake in your Gemfile.
Please be so kind to add rake and your tests should run as you expect.
Thanks again for using Travis-CI
your Travis-Team