Skip to content

Instantly share code, notes, and snippets.

@chulkilee
chulkilee / find-duplicates.rb
Created March 6, 2014 19:07
Find duplicates in an array
require 'benchmark'
require 'set'
array_size = (ENV['TOTAL'] || 1_000_000).to_i
max_int = array_size / 5
array = 1.upto(array_size).map { rand(max_int) }
if ENV['CHECK']
@correct = array.group_by { |e| e }.select { |k, v| v.size > 1 }.keys.sort
end
#!/bin/bash -eux
packer_ver=0.5.2
packer_prefix=/opt
packer_arch=linux_amd64
mkdir -p ${packer_prefix}/packer-${packer_ver}
cd ${packer_prefix}/packer-${packer_ver}
wget https://dl.bintray.com/mitchellh/packer/${packer_ver}_${packer_arch}.zip
unzip ${packer_ver}_${packer_arch}.zip && rm ${packer_ver}_${packer_arch}.zip
@chulkilee
chulkilee / benchmark-md5.rb
Created October 2, 2014 19:27
Benchmark htauth gem to create md5 password
require 'benchmark'
require 'open3'
require 'htauth/md5'
SALT =
def run_open3
Open3.popen3('htpasswd', '-nbm', 'username', 'password') { | stdin, stdout, stderr | stdout.read }.strip.split(':')[1]
end
@chulkilee
chulkilee / add-eol.sh
Last active August 29, 2015 14:10
EOL
#!/bin/sh
sed -i '' -e '$a\' $1
#!/bin/bash -eu
# Dump all mysql databases in to separate files
# config
user=backup-db
dir=/home/backup-db/data/mysql
# runtime variables
ts=$(date +%Y%m%d%H%M%S)
dbs=$(sudo -i -u ${user} mysql -N -r -s -e 'SHOW DATABASES' | egrep -v '^information_schema|performance_schema$')
#!/bin/bash -eux
# http://docs.saltstack.com/en/latest/topics/tutorials/quickstart.html
# bootstrap salt minion
curl -L https://bootstrap.saltstack.com | sh
# make it masterless
sed -i 's/^#file_client: remote$/file_client: local/' /etc/salt/minion
@chulkilee
chulkilee / deploy.rake
Created January 23, 2015 01:53
capistrano deploy:check for local git repo
namespace :deploy do
namespace :git do
before :check, :local_repo do
on release_roles :all do
unless test "[ -d #{fetch(:local_repo_path)} ]"
execute :mkdir, '-p', fetch(:local_repo_path)
execute :git, "init --bare #{fetch(:local_repo_path)}"
end
end
end
@chulkilee
chulkilee / update-ldap-provider.rb
Created February 26, 2015 20:51
Update old LDAP provider name on gitlab
puts Identity.unscoped.group(:provider).count
users = User.includes(:identities).all
duplicated_providers = %w(ldap ldapmain).sort
old_provider = 'ldap'
new_provider = 'ldapmain'
users.each do |u|
next if u.identities.blank?
@chulkilee
chulkilee / Ipify.java
Created March 31, 2015 17:36
Print public ip address from Ipify
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
public class Ipify {
public static void main(String[] args) throws Exception {
URL url = new URL("http://api.ipify.org");
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));
for (String line; (line = reader.readLine()) != null;) {
System.out.println(line);
@chulkilee
chulkilee / open-git-remote-web
Created October 23, 2013 22:44
Open git remote in browser (mac)
#!/bin/bash
REMOTE=$1
if [[ -z "$REMOTE" ]] ; then
REMOTE='origin'
fi
PARSED=$(git remote -v | grep '(fetch)' | grep "^$REMOTE\t" | awk -F "\t| " '{print $2}' | sed -E -e 's/\.git$//' -e 's/^.+@//')
if [[ -z "$PARSED" ]] ; then
echo "Cannot find git remote: $REMOTE"