Skip to content

Instantly share code, notes, and snippets.

Andrey Chernih andreychernih

Block or report user

Report or block andreychernih

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@andreychernih
andreychernih / unicorn.init.erb
Created Sep 5, 2014
Monitor unicorn workers with monit
View unicorn.init.erb
#!/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"
View tags.csv
Source Target Weight Type
video android 2 Undirected
video mediacodec 1 Undirected
video mediamuxer 1 Undirected
@andreychernih
andreychernih / delicious_graph.rb
Last active Aug 29, 2015
Delicious tags to graph edges
View delicious_graph.rb
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))
@andreychernih
andreychernih / results.txt
Created Jul 3, 2014
Ruby linear search and binary search performance testing
View results.txt
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)
View roman_to_int.rb
class RomanToInt
def initialize(roman)
@roman = roman.downcase
end
def to_int
result = 0
roman = @roman
exceptions.each do |exception, exception_value|
View dummy_hash_map.rb
class MyHashMap
BUCKETS = 100
attr_reader :iterations
def initialize
@values = []
@iterations = 0
end
View benchmarks.rb
%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
View typhoeus.rb
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
View em_http_request.rb
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
View net_http.rb
require 'net/http'
def download_net_http(urls, thread_count)
queue = Queue.new
urls.map { |url| queue << url }
threads = thread_count.times.map do
Thread.new do
Net::HTTP.start('our-s3-bucket.s3.amazonaws.com', 80) do |http|
while !queue.empty? && url = queue.pop
You can’t perform that action at this time.