Skip to content

Instantly share code, notes, and snippets.

View a-chernykh's full-sized avatar

Andrey Chernykh a-chernykh

View GitHub Profile
@a-chernykh
a-chernykh / Vagrantfile
Last active August 29, 2015 14:09
sample Vagrantfile which installs Ubuntu Trusty
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] # faster network
vb.memory = 1024
vb.cpus = 2
end
@a-chernykh
a-chernykh / unicorn.init.erb
Created September 5, 2014 11:31
Monitor unicorn workers with monit
#!/bin/bash
export RAILS_ENV=<%= node[:application][:environment] %>
export PATH=$PATH:/usr/local/bin
APP_ROOT=<%= node[:application][:path] %>/current
PID=<%= node[:application][:path] %>/current/tmp/pids/unicorn.pid
old_pid="$PID.oldbin"
Source Target Weight Type
video android 2 Undirected
video mediacodec 1 Undirected
video mediamuxer 1 Undirected
@a-chernykh
a-chernykh / delicious_graph.rb
Last active August 29, 2015 14:03
Delicious tags to graph edges
require 'delicious'
require 'json'
require 'csv'
TAGS_FILE = 'tags.json'
EDGES_FILE = 'tags.csv'
def get_tags
cache_tags unless File.exist?(TAGS_FILE)
JSON.parse(File.read(TAGS_FILE))
@a-chernykh
a-chernykh / results.txt
Created July 3, 2014 17:19
Ruby linear search and binary search performance testing
Searching for 648248 in sorted array
user system total real
linear 34.070000 0.040000 34.110000 ( 34.127835)
native binary 0.000000 0.000000 0.000000 ( 0.000203)
binary recursive 0.000000 0.000000 0.000000 ( 0.000334)
binary iterative 0.000000 0.000000 0.000000 ( 0.000258)
class RomanToInt
def initialize(roman)
@roman = roman.downcase
end
def to_int
result = 0
roman = @roman
exceptions.each do |exception, exception_value|
class MyHashMap
BUCKETS = 100
attr_reader :iterations
def initialize
@values = []
@iterations = 0
end
%i(net_http em_http typhoeus).each do |method|
Benchmark.bm(15) do |x|
(5..100).step(5) do |c|
x.report("#{method} #{c}") { send("download_#{method}", urls, c) }
end
end
end
require 'typhoeus'
def download_typhoeus(urls, concurrency)
hydra = Typhoeus::Hydra.new(max_concurrency: concurrency)
urls.each do |url|
request = Typhoeus::Request.new url
request.on_complete do |response|
write_file url, response.body
end
require 'em-http'
def download_em_http(urls, concurrency)
EventMachine.run do
multi = EventMachine::MultiRequest.new
EM::Iterator.new(urls, concurrency).each do |url, iterator|
req = EventMachine::HttpRequest.new(url).get
req.callback do
write_file url, req.response