Skip to content

Instantly share code, notes, and snippets.

@andhapp
andhapp / dot.powrc.sh
Created November 17, 2015 22:57 — forked from flarik/dot.powrc.sh
Pow's .porwrc config file for use with RVM's config files .rvmrc or .ruby-version (+ optional .ruby-gemset)
if [ -f "${rvm_path}/scripts/rvm" ]; then
source "${rvm_path}/scripts/rvm"
if [ -f ".rvmrc" ]; then
source ".rvmrc"
elif [ -f ".ruby-version" ] && [ -f ".ruby-gemset" ]; then
rvm use `cat .ruby-version`@`cat .ruby-gemset`
elif [ -f ".ruby-version" ]; then
rvm use `cat .ruby-version`
@andhapp
andhapp / nginx.conf
Created October 17, 2015 20:50 — forked from plentz/nginx.conf
Best nginx configuration for improved security(and performance). Complete blog post here http://tautt.com/best-nginx-configuration-for-security/
# to generate your dhparam.pem file, run in the terminal
openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048

OS X 10.10 Guide

Here's what I did to get things working.

1. Install Xcode 6

Yep, over at: https://developer.apple.com

2. Install the Command Line Tools (CLT)

define(function(){
var instance = null;
function MySingleton(){
if(instance !== null){
throw new Error("Cannot instantiate more than one MySingleton, use MySingleton.getInstance()");
}
this.initialize();
}
#!/usr/bin/env ruby
puts "Run this in another terminal:"
puts ""
puts " sudo ./trace-gc-standalone.sh #{$$}"
puts ""
puts "... wait for the 'Ready!' message, switch back here and press enter to start."
GC::Profiler.enable
$stdin.gets
# See:
# * http://thepugautomatic.com/2014/03/simpledelegator-autoloading-issues-with-rails/
# * https://groups.google.com/forum/#!topic/rubyonrails-core/PjGUK72BmFA
# * https://gist.github.com/henrik/9314943
require "delegate"
class RailsCompatibleSimpleDelegator < SimpleDelegator
def self.const_missing(name)
if ::Object.const_defined?(name)

This is a proof-of-concept of a couple of concurrent data structures written in Ruby.

The implementations are heavily commented for those interested. There are benchmarks (with results) included below. The results are interesting, but, as always, take with a grain of salt.

Data structures

AtomicLinkedQueue is a lock-free queue, built on atomic CAS operations.

class Foo
def self.foo; end
def foo; end
end
tp = TracePoint.new("call") do |trace|
p [trace.defined_class, trace.method_id, trace.event, trace.lineno]
end
tp.enable
TracePoint:
disable 1
enable 1
Object:
require 1983
load_dependency 485
[] 18
hash 15
initialize 6
@andhapp
andhapp / proxy.rb
Created November 24, 2013 23:50 — forked from torsten/proxy.rb
#!/usr/bin/env ruby
# A quick and dirty implementation of an HTTP proxy server in Ruby
# because I did not want to install anything.
#
# Copyright (C) 2009 Torsten Becker <torsten.becker@gmail.com>
require 'socket'
require 'uri'