Skip to content

Instantly share code, notes, and snippets.

@gmcmillan
gmcmillan / .gemrc
Created October 7, 2010 14:53
site5
---
gemhome: /home/USERNAME/.gems
gempath:
- /home/USERNAME/.gems
- /usr/lib/ruby/gems/1.8
@gmcmillan
gmcmillan / parser.rb
Created April 4, 2012 17:59
my.cnf parser
def self.parse_config(file)
config = {}
File.open(file).each_line do |line|
line.strip!
# skip lines with comments or blank lines
next if /^\#/.match(line)
next if /^\s*$/.match(line)
# store which group in the config the line belongs to (e.g. [mysqld])
@gmcmillan
gmcmillan / chef.rb
Created July 26, 2012 22:25
Simple Ruby class for manually querying the Chef REST API (using Net::HTTP instead of Chef's REST resources)
require 'base64'
require 'time'
require 'digest/sha1'
require 'openssl'
require 'net/https'
require 'json'
class ChefAPI
# Public: Gets/Sets the http object.
@gmcmillan
gmcmillan / rdio.scpt
Created November 29, 2012 17:27
rdio.scpt
on appIsRunning(appName)
tell application "System Events" to (name of processes) contains appName
end appIsRunning
on shortenUrl(str)
set curl_cmd to "curl -s https://www.googleapis.com/urlshortener/v1/url"
set json to " -H 'Content-Type: application/json' -d '{\"longUrl\": \"" & str & "\"}'"
set grep_cmd to "grep -Eo 'http:\\/\\/goo\\.gl\\/[0-9A-Za-z]*'"
set command to curl_cmd & json & " | " & grep_cmd
do shell script command
irb(main):002:0> "AaAAaAA".match('\A[a-zA-Z]')
=> #<MatchData "A">
root@cvm01 [/var/cpanel]# /usr/local/cpanel/bin/fetch_cpconf_value access_log
/usr/local/cpanel/logs/access_log

1. Install Xcode

2. Use XCode to install Command Line Utilities (GCC)

Open Xcode. Click the "Xcode" button in the top left of the screen near the Apple logo, then click "Preferences", then click "Downloads".

3. Install rbenv:

@gmcmillan
gmcmillan / parse_ini.rb
Created January 21, 2013 17:58
Simple parser for my.cnf/ini files without needing an external library.
class Config
# The path to the config file as a String.
attr_reader :file
# Attributes used while config is parsed.
#
# Example:
# [mysqld] # group
# param = val # param, val
@gmcmillan
gmcmillan / download_all_chef_cookbooks.rb
Created February 13, 2013 01:21
Quick ruby script to download all cookbooks (all versions) from a Chef server.
#!/usr/bin/env ruby
cookbook_list = `knife cookbook list -a`.split("\n")
cookbook_list.each do |line|
line.strip!
line.match(/^([a-z0-9]+\-[a-z0-9-]+|\w+)\s+(\d\.\d\.\d|.+)$/)
name = $1
versions = $2
FileBench Version 1.4.4
filebench> load webserver
98008: 3.236: Webserver Version 2.1 personality successfully loaded
98008: 3.236: Usage: set $dir=<dir>
98008: 3.236: set $filesize=<size> defaults to 16384
98008: 3.236: set $nfiles=<value> defaults to 1000
98008: 3.236: set $dirwidth=<value> defaults to 20
98008: 3.236: set $nthreads=<value> defaults to 100
98008: 3.236: set $iosize=<size> defaults to 1048576
98008: 3.236: run runtime (e.g. run 60)