Skip to content

Instantly share code, notes, and snippets.

View freegenie's full-sized avatar

Fabrizio Regini freegenie

View GitHub Profile
@freegenie
freegenie / remote_git_collab.bash
Created February 19, 2013 11:11
bounch of bash functions to speed up collaborations on git based project hostings (github and bitbucket for now). Source it to your shell environment and enjoy!
function last-commit() {
git log --format=%H -n 1
}
function last-file-change() {
git rev-list --max-parents=1 --max-count=1 --format=oneline HEAD -- $1 | cut -d " " -f 1
}
function annotate-file() {
@freegenie
freegenie / deploy.rb
Created January 23, 2013 17:14
Snipped of code to finally have capistrano run db:schema:load on cold deploys. Paste this in your capistrano recipe.
namespace :deploy do
task :load_schema, :roles => :db, :only => { :primary => true } do
rake = fetch(:rake, "rake")
rails_env = fetch(:rails_env, "production")
migrate_env = fetch(:migrate_env, "")
migrate_target = fetch(:migrate_target, :latest)
directory = case migrate_target.to_sym
when :current then current_path
when :latest then latest_release
@freegenie
freegenie / unicorn.conf.rb
Created December 13, 2012 00:14
Unicorn after_fork block to have Rails write logs to a separare file for each worker.
after_fork do |server, worker|
log_path = Rails.root.join('log',"#{Rails.env}.#{worker.nr}.log")
new_logger = Logger.new(log_path)
new_logger.level = Logger::INFO
Rails.logger.flush
Rails.logger.close
Rails.logger = Rails.application.config.logger = ActiveSupport::TaggedLogging.new(new_logger)
@freegenie
freegenie / gist:3917284
Created October 19, 2012 10:05
hardware specs on linux
#!/bin/bash
startline() {
echo ""
echo ""
echo "---------- $1 -------------------------"
echo ""
}
startline "CPU"
@freegenie
freegenie / new_blog_post.rb
Created October 1, 2012 21:29
A simple script to automate blog posting
#!/usr/bin/env /Users/fregini/.rbenv/versions/1.9.2-p318/bin/ruby
#
# A simple script to automate the creation of a new blog post.
# An automator task will pick the file name in output and open
# it with the default editor.
#
require 'rubygems'
require 'active_support/all'
require 'pathname'
@freegenie
freegenie / simple_form.css
Created August 24, 2012 15:12
simple_form css
/* ----- SimpleForm Styles ----- */
.simple_form
div.input
margin-bottom: 10px
clear: both
label
float: left
width: 100px
@freegenie
freegenie / chef_boot.sh
Last active October 7, 2015 10:48
First installation file for chef
#!/usr/bin/env bash
# Copy this file into the home directory of the sudoer
# user that will run all chef recipes.
sudo apt-get -y update
sudo apt-get -y install build-essential zlib1g-dev libssl-dev libreadline5-dev libyaml-dev
sudo apt-get -y install rsync
wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p125.tar.gz
@freegenie
freegenie / paperclip.rake
Created June 8, 2012 09:54 — forked from mrrooijen/paperclip.rake
A Fix for Paperclip Rake Task (paperclip:refresh:thumbnails) - Compatible with ActiveRecord and Mongoid
module PaperclipMongoidPatch
class << self
def obtain_class
class_name = ENV['CLASS'] || ENV['class']
raise "Must specify CLASS" unless class_name
@klass = Object.const_get(class_name)
end
def obtain_attachments
name = ENV['ATTACHMENT'] || ENV['attachment']
@freegenie
freegenie / pre-commit.sh
Created May 15, 2012 19:57
pre-commit hook to avoid commit of :focus
#!/bin/bash
#
# pre-commit hook, avoid committing :focus on rspec examples
focus=', :focus'
result=$(git grep -n $focus -- */**/*_spec.rb)
if [ "$result" != '' ]; then
echo ""
echo "Refusing to commit a :focus tag in specs: "
echo ""
@freegenie
freegenie / Gemfile
Created March 10, 2012 22:18
EventMachine + ZeroMQ Pipeline Pattern
# vim: ft=ruby
source :rubygems
gem 'eventmachine'
gem 'em-zeromq', :path => '~/Work/em-zeromq'
gem 'sinatra'
gem 'zmq'