Skip to content

Instantly share code, notes, and snippets.

View fxposter's full-sized avatar

Pavlo fxposter

View GitHub Profile

chef-server-ctl cleanse

apt-get purge -y chef-server apt-get purge -y chef-server-core

rm -rf /etc/opscode /etc/chef-server /opt/chef-server /opt/opscode /var/opt /var/log/chef-server

dpkg -i chef-server_11.0.11-1.ubuntu.11.04_amd64.deb

chef-server-ctl reconfigure

@fxposter
fxposter / net-http-keepalive-without-block.rb
Created October 28, 2015 10:50
Net/HTTP with keep-alive, but without block
http = Net::HTTP.new(uri.host, uri.port)
http.start
request1 = Net::HTTP::Get.new(uri1)
response1 = http.request(request1)
request2 = Net::HTTP::Get.new(uri2)
response2 = http.request(request2)
http.finish
@fxposter
fxposter / gist:78a088533b0cee1ccb11
Created October 23, 2015 13:33
slim-ruby mysql error
Step 2 : RUN ! find /usr/local/bundle -iname '*.so' | xargs -I {} ldd {} | grep 'not found'
---> Running in 464610a57692
libmysqlclient.so.18 => not found
libmysqlclient.so.18 => not found
libmysqlclient.so.18 => not found
2015/10/23 16:02:08 Failed to process json stream error: The command '/bin/sh -c ! find /usr/local/bundle -iname '*.so' | xargs -I {} ldd {} | grep 'not found'' returned a non-zero code: 1
@fxposter
fxposter / hacking-chef.rb
Created October 20, 2015 19:57
Hacking Chef
@chef.eval_and_check_for_changes do |frame|
template "/etc/default/#{service_id}" do
source "service.erb"
variables :name => service_id, :port => frame.eval{@service.port}
mode 0755
end
end
@fxposter
fxposter / README.md
Created October 20, 2015 10:20
Ruby quiz

Представьте что у вас есть некий класс API, который вы хотите использовать. Но вместо того чтобы всегда и везде писать api.method(args) вы хотите просто писать use_dsl { method(args) } внутри вашего обьекта.

Имея следующие классы, соответственно, API и его клиента реализуйте метод use_dsl так, чтобы получить такой вот результат:

client = Client.new(ThirdPartyAPI.new)

client.run_local_variable
# Output:
@fxposter
fxposter / chef-docker.rb
Created October 20, 2015 12:03
Docker logrotate in chef recipe
logrotate_app 'docker' do
path ['/var/lib/docker/containers/*/*.log', '/var/log/docker.log']
rotate 30
frequency 'daily'
options %w[notifempty missingok compress delaycompress copytruncate]
end
describe PortChecker do
around :each do |block|
EventMachine.run(&block)
end
it 'succeeds immediately if port is open' do
success = false
failure = false
EventMachine.start_server('localhost', 11111)
t = Thread.new do
class A
sleep 10
def self.a
end
end
sleep 2
end
@fxposter
fxposter / group_by.clj
Last active October 7, 2015 03:07
group-by as a transducer
(defn group-by [f]
(fn [rf]
(let [groupped-value (volatile! (transient {}))]
(fn
([] (rf))
([result]
(rf (rf result (persistent! @groupped-value))))
([result input]
(let [key (f input)]
(vswap! groupped-value assoc! key (conj (get @groupped-value key []) input))
@fxposter
fxposter / Gemfile
Created April 19, 2012 11:40
Test environment for rails apps
group :development, :test do
gem 'rspec-rails', '~> 2.9' # rails generate rspec:install
gem 'factory_girl_rails'
end
group :test do
gem 'spork-rails' # spork rspec --bootstrap
gem 'capybara'
gem 'launchy'
gem 'timecop'