Skip to content

Instantly share code, notes, and snippets.

@akanehara
akanehara / h.py
Last active August 29, 2015 14:23
H(n) -> n - H(H(H(n-1))) として H(2015) を求める
# coding:utf-8
import functools
import time
# 関数をメモ化します
# すべての引数はハッシュ可能でなければなりません
def memoize(f):
memo = {} # キャッシュ
@functools.wraps(f) # 関数fのメタ情報(定義名やパラメタなど)を関数gに引き継ぐ
@akanehara
akanehara / hss.sh
Last active September 2, 2015 07:41
案件ごとの ssh config 切り替えめんどくさい&ホスト定義名何やったっけ対策
function hss() {
conf="$HOME/.ssh/$1.config" # ~/.ssh/なまえ.config としてconfigを配置しておく
case $# in
1) # configに定義されているホスト一覧
awk '/^Host/{print$2}' $conf | column
;;
2) # ホストに接続
ssh -F $conf $2
;;
*) # つかいかた
while true; do (echo "HTTP/1.0 200 OK";echo;echo;echo "meow.") | nc -l 10000; [ $? -ne 0 ] && break; done
@akanehara
akanehara / color.sh
Last active November 16, 2015 10:12
for x in 0 1 4 5 7 8; do for i in $(seq 30 37); do for a in $(seq 40 47); do echo -ne "\e[$x;$i;$a""m\\\e[$x;$i;$a""m\e[0;37;40m "; done; echo; done; done; echo "";
@akanehara
akanehara / shunit2-skelton.sh
Last active December 26, 2017 02:42
shUnit2ずぼらスケルトン
#!/bin/sh
oneTimeSetUp()
{
echo oneTimeSetUp
}
oneTimeTearDown()
{
echo oneTimeTearDown
@akanehara
akanehara / gist:3335284fb2f56bb534c5
Last active March 10, 2016 02:28
ズンドコ一行野郎
E0="ズン";E1="ドコ";while :;do eval echo "\$E$(($(od -vAn -N1 -tu4</dev/random)%2))";done|awk '{print}/ズン/{z++}/ドコ/{if(4<=z){print"キ・ヨ・シ!";exit(0)};z=0}'|tr '\n' ' ';echo
@akanehara
akanehara / 2016-holidays.sh
Last active April 14, 2016 05:24
2016休日 (土・日・祝・振替休日)
{ echo '2016/03/21' '振替休日';
curl -s http://www8.cao.go.jp/chosei/shukujitsu/syukujitsu.csv |
nkf |
gtail -n+3 |
gawk -F',' '$2{print$2,$1}{fflush()}' |
while read d s; do echo "$(gdate -d"$d" +'%Y/%m/%d') $s"; done;
gseq 20160101 20161231 |
gdate -f - +'%Y/%m/%d %w' 2> /dev/null |
gawk '$2=="0"{print$1,"日曜日"}$2=="6"{print$1,"土曜日"}{fflush()}';
} | gsort -k1,1 -u
@akanehara
akanehara / gist:8cc840a60f960cb153dfa8b960d90e64
Last active February 9, 2017 06:47
Home-brew シェル芸準備
# Mac
brew install xz coreutils findutils homebrew/dupes/diffutils homebrew/dupes/grep gnu-sed gawk gnu-tar parallel nkf jq nmap openssl
$(brew --prefix coreutils)/libexec/gnubin
$(brew --prefix findutils)/libexec/gnubin
$(brew --prefix gnu-sed)/libexec/gnubin
$(brew --prefix gawk)/bin
# Other
# GNU Parallel
defaults write -g InitialKeyRepeat -int 12
defaults write -g KeyRepeat -int 0
@akanehara
akanehara / gist:2804468251c6d8a00337be48cf5e3116
Last active June 29, 2016 01:48
Redmine作業時間ユーティリティ(OS X | BSD)
nkf timelog.csv | awk -v Date="2016/05/23" -F',' 'BEGIN{OFS="\t"}$2==Date{print$1,$4,$5,$6;d=$2;h+=$7;l++}END{;print l" Rows";print h"[h]",h/8"[day/man]";print d}' | tail -r | tee >(tail -n+4 | pbcopy)
pbpaste | sed -E -e $'s/^[\t\s]*//' | awk -F'\t' '$2~/[0-9]{4}\/[0-9]{2}\/[0-9]{2}/' | awk -F'\t' '{k=$2;gsub(/\//,"",k);d[k]=$2;r[k]=r[k]$1"\t"$4"\t"$5"\t"$6"\n";h[k]+=$7;l[k]++}END{OFS="\t";for(k in d){print d[k],h[k]"[h]",h[k]/8"[day/man]",l[k]" Rows";print r[k]}}'