Skip to content

Instantly share code, notes, and snippets.

@tcopeland
tcopeland / gist:982911
Created May 20, 2011 13:43
Nagios Passenger memory check
#!/usr/local/bin/ruby
require 'rubygems'
gem 'passenger'
require 'phusion_passenger'
require 'phusion_passenger/platform_info'
require 'phusion_passenger/admin_tools/memory_stats'
require 'optparse'
include PhusionPassenger
$ sudo puppet apply --verbose manifests/site.pp
/usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': iconv will be deprecated in the future, use String#encode instead.
Could not load confine test 'operatingsystem': cannot load such file -- puppet/provider/confine/operatingsystem
Could not load confine test 'operatingsystem': cannot load such file -- puppet/provider/confine/operatingsystem
Could not load confine test 'operatingsystem': cannot load such file -- puppet/provider/confine/operatingsystem
Could not load confine test 'operatingsystem': cannot load such file -- puppet/provider/confine/operatingsystem
Could not load confine test 'operatingsystem': cannot load such file -- puppet/provider/confine/operatingsystem
Could not load confine test 'operatingsystem': cannot load such file -- puppet/provider/confine/operatingsystem
Could not load confine test 'operatingsystem': cannot load such file -- puppet/provider/confine/operatingsystem
Could not load confine test 'operatingsystem': cannot
$ vagrant init lucid64
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
bogle> $ vagrant up
[default] Importing base box 'lucid64'...
[default] The guest additions on this VM do not match the install version of
VirtualBox! This may cause things such as forwarded ports, shared
folders, and more to not work properly. If any of those things fail on
# From charlest here:
# http://www.vanityfair.com/online/daily/2012/07/microsoft-downfall-emails-steve-ballmer
Taking platform developers and throwing them against hard goals and deadlines kills your ability to adapt. Management
and project stakeholders end up making too many decisions about the technology away from the people who know it
best – the people building it. To show progress and keep management happy, engineers shift their focus to tangible
deliverables and ignore the pieces management can't understand, like the underlying architecture. You start going
down the path of building lots of bells and whistles, but nothing solid that you can competitively leverage.
# Use Kernel#tap
# wrong
x = [1,2]
x << 3
return x
# right
[1,2].tap {|y| y << 3 }
irb(main):014:0> puts RUBY_VERSION ; n = 5000 ; Benchmark.bm {|x| x.report { n.times {' '.strip.empty?} } ; x.report { n.times { ' ' =~ /^\s*$/ } } }
2.1.5
user system total real
0.010000 0.000000 0.010000 ( 0.007651)
0.000000 0.010000 0.010000 ( 0.005907)
irb(main):016:0> puts RUBY_VERSION ; n = 5000 ; Benchmark.bm {|x| x.report { n.times {' '.strip.empty?} } ; x.report { n.times { ' ' =~ /^\s*$/ } } }
2.2.0
user system total real
0.000000 0.000000 0.000000 ( 0.001773)
@tcopeland
tcopeland / gist:d3abe559e14391282c446d548b4a22fa
Last active August 13, 2017 04:22
synvert rule to combine flash with redirect_to
Synvert::Rewriter.new 'rails', 'redirect_with_notice' do
description <<-EOS
Combines flash setting and redirect to.
flash[:notice] = "huzzah"
redirect_to root_path
=>
redirect_to root_path, notice: "huzzah"
EOS
within_file 'app/controllers/**/*rb' do
within_node type: 'def' do
a = {zzz: [{b: 1, c: 2}, {b:3, c:4}]}
# slight variant on https://stackoverflow.com/questions/10676608/ruby-deleting-all-instances-of-a-particular-key-from-hash-of-hashes
class Hash
def deep_reject_key!(key)
keys.each {|k| delete(k) if k == key || self[k] == self[key] }
values.each do |v|
v.deep_reject_key!(key) if v.is_a? Hash
v.each {|i| i.deep_reject_key!(key) if i.is_a? Hash } if v.is_a? Array
module Arel
module Visitors
class MyWhereSsqlWithoutSql < Arel::Visitors::ToSql
def initialize(inner_visitor, *args, &block)
@inner_visitor = inner_visitor
super(*args, &block)
end
private
class TravelOption < ApplicationRecord
has_many :travels
end
class Travel < ApplicationRecord
belongs_to :travel_option
end
>> TravelOption.joins(:travels).where(location_id: 1).select(:location_id, :price, :tour_id).map(&:tour_id)