Skip to content

Instantly share code, notes, and snippets.

View lucashungaro's full-sized avatar

Lucas Húngaro lucashungaro

View GitHub Profile
@lucashungaro
lucashungaro / gist:02c40b4d618b93f3e44971889e7c33f3
Created April 8, 2016 18:04
Fix Homebrew issues after upgrading to El Capitan (errors such as /usr/local is not writable or cannot load such file --mach)
sudo chown -R $(whoami):admin /usr/local
cd /usr/local
git reset --hard
git clean -df
brew update
Profit!
@lucashungaro
lucashungaro / gist:06d1add1f39a57e05837
Created April 21, 2015 12:34
Microservices, RabbitMQ etc
https://speakerdeck.com/joshsz/rack-amqp-ditch-http-inside-soa
http://blog.carbonfive.com/2014/04/28/micromessaging-connecting-heroku-microservices-wredis-and-rabbitmq/
https://www.rabbitmq.com/tutorials/tutorial-six-ruby.html
http://highscalability.com/blog/2014/4/8/microservices-not-a-free-lunch.html
https://www.youtube.com/watch?v=vfs4sr1_o6s (Global Scaling at The New York Times Using RabbitMQ (from OSCON 2014))

Keybase proof

I hereby claim:

  • I am lucashungaro on github.
  • I am lucashungaro (https://keybase.io/lucashungaro) on keybase.
  • I have a public key whose fingerprint is DBDB D15C 2767 6225 056B 63AC 956A BAD9 2CFE 2097

To claim this, I am signing this object:

@lucashungaro
lucashungaro / config.ru
Created October 31, 2013 16:36
Unicorn + Heroku + worker_killer + GC vars tweak
# This file is used by Rack-based servers to start the application.
# GC_FREQUENCY = 8
# require "unicorn/oob_gc"
# GC.disable # Don't run GC during requests
# use Unicorn::OobGC, GC_FREQUENCY # Only GC once every GC_FREQUENCY requests
# # Unicorn self-process killer
require "unicorn/worker_killer"
@lucashungaro
lucashungaro / form_helper.rb
Last active January 27, 2017 10:14
Triggering an autocomplete select box with Capybara and Turnip
# on spec/helpers
module FormHelper
def fill_in_autocomplete(selector, value)
page.execute_script %Q{$('#{selector}').focus().val('#{value}').keydown()}
end
def choose_autocomplete(text)
find('ul.ui-autocomplete').should have_content(text)
page.execute_script("$('.ui-menu-item:contains(\"#{text}\")').find('a').trigger('mouseenter').click()")
end
class CardData
def initialize(node)
@card_data = node
end
def name
@card_data.search("name").text
end
def image
@lucashungaro
lucashungaro / gist:3784008
Created September 25, 2012 19:46
removing conditional and working with provided callbacks
class UserController < ApplicationController
def create
@user_creation = UserCreation.new(self)
@user_creation.on_success { redirect_to users_path }
@user_creation.on_failure { render :new }
@user_creation.please_create_an_user_as_admin(params[:user])
end
end
@lucashungaro
lucashungaro / gist:3001641
Created June 27, 2012 05:16
DIP snippet 4
# WARNING: pseudo code
class Authenticator
def initialize(user_repository = User)
@user_repository = user_repository
end
def authenticate(identifier, hashed_password)
@user_repository.find(:username => identifier, :password => hashed_password).present?
end
@lucashungaro
lucashungaro / gist:3001511
Created June 27, 2012 04:44
DIP snippet 3
class Game < ActiveRecord::Base
belongs_to :category
validates_presence_of :title, :category_id, :description,
:price, :platform, :year
end
 
class GamePriceService
attr_accessor :game
 
# we could use a config file
@lucashungaro
lucashungaro / gist:3001505
Created June 27, 2012 04:42
DIP snippet 2
class Game < ActiveRecord::Base
belongs_to :category
validates_presence_of :title, :category_id, :description,
:price, :platform, :year
end
 
class GamePriceService
attr_accessor :game, :json_parser
 
# we could use a config file