Skip to content

Instantly share code, notes, and snippets.

I may be slow to respond.

Pau Pérez Fabregat sauloperez

I may be slow to respond.
View GitHub Profile
sauloperez / https
Created Feb 4, 2014
Test HTTPS connection from Ruby
View https
#!/usr/bin/env ruby
# Usage: $ https <host> [path]
require 'net/https'
h =[0], 443)
h.use_ssl = true
h.ssl_version = :SSLv3
h.verify_mode = OpenSSL::SSL::VERIFY_PEER
sauloperez / gist:8971804
Created Feb 13, 2014
Get Rails callback names
View gist:8971804 { |cb| cb.kind.eql?(:before) }.collect(&:filter).each { |c| puts "#{c}\n" }
View redch.conf
description "start passenger stand-alone"
# When to start the service
start on filesystem or runlevel [2345]
# When to stop the service
stop on runlevel [!2345]
# Automatically restart process if crashed
sauloperez / gist:771cfba97cf6e2397e95
Created May 2, 2014
IEEE locally-assigned MAC addresses
View gist:771cfba97cf6e2397e95
# Generates IEEE locally-assigned MAC addresses
# @return [String] following the pattern [0-9A-Fa-f][26AEae][0-9A-Fa-f]{10}
def mac
mac = ('%0.2X' % rand(256))[0, 1] + %w(2 6 A E).sample
mac << (1..5).map { "%0.2X" % rand(256) }.join
# Some required stuff
sudo apt-get install -y git build-essential curl
# Install RVM and Ruby 2.1.2
gpg --keyserver hkp:// --recv-keys D39DC0E3
curl -sSL | bash -s stable
source ~/.rvm/scripts/rvm
rvm install 2.1.2
rvm use --default 2.1.2
sauloperez / gist:5788542
Created Jun 15, 2013
Latex graphicx package configuration to allow figures span two columns
View gist:5788542
% declare the path(s) where your graphic files are
% and their extensions so you won't have to specify these with
% every instance of \includegraphics
% or other class option (dvipsone, dvipdf, if not using dvips). graphicx
% will default to the driver specified in the system graphics.cfg if no
sauloperez / toc.rb
Created Oct 21, 2016
Markdown TOC generator
View toc.rb
#!/usr/bin/env ruby
FILENAME = ARGV[0], 'r') do |f|
f.each_line do |line|
forbidden_words = ['Table of contents', 'define', 'pragma']
next if !line.start_with?("#") || forbidden_words.any? { |w| line =~ /#{w}/ }
title = line.gsub("#", "").strip
sauloperez / beat_the_refactoring_blerch
Created Apr 20, 2017
Beat the refactoring blerch
View beat_the_refactoring_blerch
Have you seen Matthew Inman's (The Oatmeal) comic about why he runs? It's
a classic. In it he talks about his inspiration for taking up long-distance
running. He imagines his tendency to slack off and sit on the couch as a little
creature he calls "The Blerch". It follows him around, tempting him to stop
moving and scarf down junk food.
I run too, though nothing close to the distances Inman runs. In my experience,
refactoring as a skill has a lot in common with running or any other athletic
sport. You can exercise your refactoring muscles, by deliberately working
through the steps with discipline, like we talked about in the last email. As
sauloperez / dalyed_job_checks.rb
Created Oct 25, 2017
Snippets to check Delayed Job data
View dalyed_job_checks.rb
# Failed
Delayed::Job.where('failed_at IS NOT NULL')
# Active
Delayed::Job.where('failed_at IS NULL AND locked_by IS NOT NULL')
# Queued
Delayed::Job.where('failed_at IS NULL AND locked_by IS NULL')
# Destroy
sauloperez / gist:7026493
Created Oct 17, 2013
JavaScript WebSockets adapter
View gist:7026493
// WebSocket Adapter
// -------------------
// It forwards all WebSocket events to the application
// event aggregator (or event bus). The intention of
// this is to decouple the specific websockets implementation
// from the application's use of it.
var WSAdapter = function(options) {
if (options && !options.eventBus) {