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 xpath-cheatsheet.js
// XPath CheatSheet
// To test XPath in your Chrome Debugger: $x('/html/body')
// http://www.jittuu.com/2012/2/14/Testing-XPath-In-Chrome/
// 0. XPath Examples.
// More: http://xpath.alephzarro.com/content/cheatsheet.html
'//hr[@class="edge" and position()=1]' // every first hr of 'edge' class
@shunwen
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.
config.vm.box = "BOX NAME"
config.vm.box_url = "BOX IMAGE DOWNLOAD URL WHEN BOX DOES NOT EXIST"
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
#config.vm.network :private_network, ip: "33.33.33.10" # THIS CAUSES SSH PROBLEM, remove it
View snippet.rb
def foo
some_function(true, { :before => {a: 1},
:after => {b: 2} })
call_block { do_something }
end
def bar
case @var
when 1
print [1..42]
@shunwen
shunwen / ssl_puma.sh
Created Jun 24, 2017 — forked from tadast/ssl_puma.sh
localhost SSL with puma
View ssl_puma.sh
# 1) Create your private key (any password will do, we remove it below)
$ cd ~/.ssh
$ openssl genrsa -des3 -out server.orig.key 2048
# 2) Remove the password
$ openssl rsa -in server.orig.key -out server.key
View flickrdl.rb
require 'flickraw'
require 'mini_magick'
require 'parallel'
def get_photo_urls_from_photoset(flickr, photoset_id)
total_pages = nil
current_page = 1
urls = []
opts = {
photoset_id: photoset_id,
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]"
default_attributes(
users: ['config'],
authorization: {
sudo: {
View vagrant_init_steps.sh
mkdir test_prj
cd test_prj
berks init
create Berksfile
create Thorfile
create .gitignore
run git init from "."
create Gemfile
create Vagrantfile
View knife_config_example.rb
# See http://docs.opscode.com/config_rb_knife.html 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 "https://api.opscode.com/organizations/ORGANIZATION_NAME"
@shunwen
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 = CSV.open "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
end
def self.i_to_modern_roman int
You can’t perform that action at this time.