Skip to content

Instantly share code, notes, and snippets.


shunwen shunwen

Block or report user

Report or block shunwen

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View base.rb
name 'base'
description 'Create users and sudoers, configure ssh, set timezone and swap'
run_list "recipe[apt]", "recipe[user::data_bag]", "recipe[base::bootstrap]",
"recipe[build-essential]", "recipe[git]"
users: ['config'],
authorization: {
sudo: {
shunwen / Vagrantfile_example.rb
Last active Aug 26, 2018
Vagrant up with chef client
View Vagrantfile_example.rb
Vagrant.configure("2") do |config|
config.vm.hostname = "NODE NAME" # will be the node name on chef-server. = "BOX NAME"
config.vm.boot_timeout = 180 # Raise error when bootup takes too long
config.omnibus.chef_version = :latest # Use the latest chef version on this box :private_network, ip: "" # THIS CAUSES SSH PROBLEM, remove it
View knife_config_example.rb
# See for more information on knife configuration options
current_dir = File.dirname(__FILE__)
log_level :info
log_location STDOUT
node_name "YOUR OPSCODE USERNAME" # The actual name will be set when provisioning
client_key "#{ENV['HOME']}/.chef/USERNAME.pem"
validation_client_name "ORGANIZATION_NAME-validator"
validation_key "#{ENV['HOME']}/.chef/ORGANIZATION_NAME-validator.pem"
chef_server_url ""
mkdir test_prj
cd test_prj
berks init
create Berksfile
create Thorfile
create .gitignore
run git init from "."
create Gemfile
create Vagrantfile
shunwen / log_json_to_csv.rb
Created Sep 9, 2013
Replace Rails log with json format, then convert each json entries from the log file to csv.
View log_json_to_csv.rb
require 'json'
require 'csv'
SAMPLE_DATA = {"key1": "value1", "key2": "value2", "key3": "value3"}
headers = JSON.parse(SAMPLE_DATA).keys
input_lines = File.readlines "path/to/log/file"
parsed_line = 0
csv_file = "path/to/file.csv", "w"
View roman_numeral.rb
module RomanNumeral
VALUES_OF_LETTERS = { I: 1, V: 5, X: 10, L: 50, C: 100, D: 500, M: 1000 }
MODERN_ROMAN_PATTERNS = { CM: 900, CD: 400, XC:90, XL: 40, IX: 9, IV: 4 }
def self.i_to_old_roman int
i_to_roman int, VALUES_OF_LETTERS
def self.i_to_modern_roman int
shunwen / is_a.rb
Created Jul 31, 2013
Use #is_a? instead of #===
View is_a.rb
omg = [1,2,3]
omg ===Array # => false
Array === omg # => true
omg.is_a? Array # => true
tmp = 1
tmp.is_a? Array #=> false
shunwen / visit_url.rb
Created Jun 23, 2013
How to visit an url in Ruby
View visit_url.rb
# Not suitble for production
require 'open-uri'
require 'net/http'
require 'uri'
uri = URI.parse ""
response = Net::HTTP.get_response uri
# Use system call
shunwen / default_value_in_lambda.rb
Created May 13, 2013
Use default value in lambda
View default_value_in_lambda.rb
lambda { |*args| (args.first || default) }
shunwen /
Created Dec 25, 2012
Python local variable declared in for loop stays alive outside the loop.
bar = [1,2,3]
for foo in bar:
foo = foo + 1
print foo
You can’t perform that action at this time.