Skip to content

Instantly share code, notes, and snippets.

View greymd's full-sized avatar
😉
Nanchatte

Yasuhiro Yamada greymd

😉
Nanchatte
View GitHub Profile
@greymd
greymd / gist:d89a2fd6605771c2273118b047b7b5ae
Last active July 28, 2017 16:30
Wikipediaの数の性質を500まで集める
# スクレイピング
seq 500 \
| while read n;do echo "$n"; w3m -dump -cols 999 "https://ja.wikipedia.org/wiki/$n" | sed -n '/性質\[編集\]/,/\[編集\]/p' > "$n" ;done
# 最も性質が多い数は。。
seq 500 | while read f; do echo -n "$f "; cat "$f" | grep '•' | grep -c .; done | sort -k2,2n
.
.
.
@greymd
greymd / same2.egi
Created July 27, 2017 10:20
Filter numbers which has 2 same factors with Egison
#!/usr/bin/env egison
(define $main
(lambda [$args]
(each display
(farray-same2 farray))))
(define $farray
(filter 1#(eq? (length %1) 3)
(map (p-f $) (take 100 nats))))
@greymd
greymd / make_init.php.bash
Created July 25, 2017 07:22
Create loading file from multiple php class files under lib directory.
#!/bin/bash
THIS_DIR="$(cd "$(dirname "${BASH_SOURCE[0]:-${(%):-%N}}")"; pwd)"
files=("$(find ${THIS_DIR-}/lib -type f)")
class_lines=("$(printf '%s\n' "${files[@]}" \
| xargs -n 1 grep -m 1 -E '^(abstract )?class' \
| sed -r 's/^.*class ([A-Za-z]+)/\1/')")
class_names=("$(printf '%s\n' "${class_lines[@]}" | awk '{print $1}')")
remove_buildin_classes () {
@greymd
greymd / osc_copy.vim
Last active August 22, 2020 14:41
OSC52 copy with Vim
" Clipboard integration by Operating System Controls from Vim
" Usage:
" Yank something and run :OscCopy
" or
" Copy range in visual mode and run :'<,'>OscCopyRange
" From: https://stackoverflow.com/questions/1533565/how-to-get-visually-selected-text-in-vimscript
function! GetVisualSelection()
let [lnum1, col1] = getpos("'<")[1:2]
@greymd
greymd / Test.java
Created July 19, 2017 17:06
Prime numbers with Java
import java.util.HashMap;
import java.util.Map;
class Test {
public static void main(String args[]) {
int num = 100;
Map<Integer, Boolean> list = new HashMap<Integer, Boolean>();
for (int i = 2; i <= num; i++) {
list.put(i, true);
}
@greymd
greymd / 2015Cm.egi
Created July 14, 2017 20:45
【話題の一行問題】東大数学2015第5問【2015Cmが偶数】をEgisonで解く
; 【話題の一行問題】東大数学2015第5問【2015Cmが偶数】をEgisonで解く
; https://www.youtube.com/watch?v=MfrT_QGCkRo
(define $main
(lambda [$argv]
(each display
(match
(map 1#(2#[%1 %2 (modulo %2 2)] %1 (comb 2015 %1))
(take 2015 nats))
(list [integer integer integer])
@greymd
greymd / quine.bash
Last active June 27, 2017 23:37
Quine.bash
Q ()
{
type Q | sed '1d;$aQ'
}
Q
@greymd
greymd / 山田エルフ.sh
Last active June 4, 2017 01:03
山田エルフ.sh
yes 山田エルフ \
| head -n 5 \
| awk -vFS= -vOFS=" " 'NR==1{system("echo "$0"|rev|tr -d \\\\n");print $2$3$4$5};NR<6{s=$(NR+1);for(i=0;i<4-NR;i++)printf OFS;printf s;for(i=1;i<NR;i++)printf OFS;printf s;for(i=1;i<NR;i++)printf OFS;print s;}'
# -- Result
# フルエ田山田エルフ
#    田田田
#   エ エ エ
#  ル  ル  ル
# フ   フ   フ
@greymd
greymd / atest.md
Last active May 15, 2017 01:11
bash-4.0 here string bug

コマンド置換$(...) の 中に制御構文(ifやwhile)を 入れて更にその中にヒアストリング<<<を使うとbash 4.0.0のみシンタックスエラーが発生する。

  • パッチバージョンが上がった bash 4.0.44ではこのバグは修正されている。
  • ヒアストリングではなくecho(1)などではエラーは発生しない。
  • ヒアドキュメントでは発生しない。

再現

下記のatest.shを用意する。

@greymd
greymd / gist:d9e1f2778e06f2ca7ff1ec37bd3121a7
Last active May 12, 2017 07:55
play with tmux-xpanes
```
mkfifo /tmp/p{1..4} 2>/dev/null; sleep 1; while true; do echo ハゲ; sleep 1 ;done | tee /tmp/p1
stdbuf -oL cat /tmp/p1 | stdbuf -oL sed -n = | tee /tmp/p2
stdbuf -oL cat /tmp/p2 | stdbuf -oL factor | stdbuf -oL tee /tmp/p3
stdbuf -oL cat /tmp/p3 | while read n; do echo $n | awk 'NF==2{print $2;}'; done
```
cat cmd | xpanes -e
cure precures | cure tr '[:precure_name:]' '[:girl_name:]' | nl | awk '{print "sleep "$1"; cure echo -p "$2" | say -v Kyoko"}' | xpanes -e