Skip to content

Instantly share code, notes, and snippets.

View YuukiToriyama's full-sized avatar
🚲
On Cycling

ToriChan YuukiToriyama

🚲
On Cycling
  • Kyoto, Japan
View GitHub Profile
@YuukiToriyama
YuukiToriyama / embed_text_in_ascii_art.sh
Last active April 26, 2019 08:33
シェル芸でアスキーアートに想いを込めよう
cat << EOF | sed 's/1/_/g'| tr "\n" " " > tmp; yes "Androidノカチ!マケタリユウ,アシタマデニカンガエトイテクダサイ.ホナ,イタダキマス!" | head -20 | grep -o . | xargs -I@ sed -i 's/0/@/' tmp; cat tmp | tr " " "\n"; rm tmp
1111111111111111111111111001111111111111
1111111111111111111111100001111111111111
1111111111111111111110000001111111111111
1111111111111111111100000011111111111111
1111111111111111111100001111111111111111
1111111111111111111100111111111111111111
1111111000000000000010000000000000111111
1111000000000000000000000000000000000111
1100000000000000000000000000000000000011
@YuukiToriyama
YuukiToriyama / article.md
Created April 14, 2019 17:21
dcコマンドで再帰計算

dcコマンドを使って計算しよう

最初の例: フィボナッチ数列を出力

echo "[lA p c lA lB + d sN lB d sA lN d sB lFx]d sF 1 sA 1 sB lFx" | dc | head -100

おおまかに説明すると、[ ]d sFが函数Fを定義する部分で、lFxによって定義した函数Fを実行しています。[ ]d sFのsとはsaveの意味で、式[ ]をレジスタFに保存するという意味があります。 ここでは函数Fもとい[ ]の中にそれを読み出して実行するlFxが含まれているため、再帰的な計算が可能になっているわけです。

例1:円周率の計算

@YuukiToriyama
YuukiToriyama / distort_arc.sh
Created April 13, 2019 10:33
imagemagickの画像を扇状に変形させるオプションを使って幾何学模様を作る
# pattern:でhs_diagcrossを指定すると網目模様を出すことができ、それを利用しています。
convert -size 1000x1000 pattern:hs_diagcross -virtual-pixel Tile -distort Arc 360
@YuukiToriyama
YuukiToriyama / 💩.sh
Created April 11, 2019 15:39
Cheap edition unko.tower
function tower_unko() { seq 1 $1 | xargs -I@ bash -c 'yes "+" | head -@ | xargs' | awk 'BEGIN{print " 👑"}{print "(", $0, ")"}'; }
tower_unko 5
# 👑
#( + )
#( + + )
#( + + + )
#( + + + + )
#( + + + + + )
@YuukiToriyama
YuukiToriyama / codepoint_to_character.rb
Created April 11, 2019 12:42
コードポイントから文字に起こすメソッド(仮)
#!/usr/bin/ruby
# 16進形式のUnicodeコードポイントをキャラクタに変換します
class String
def to_char()
self.to_i(16).chr("UTF-8")
end
end
# example「漢」
@YuukiToriyama
YuukiToriyama / caotic_view.sh
Created April 9, 2019 04:21
ImageMagickを使ってサイケ・アートをつくる
# convertコマンドのグラデーション機能の一つであるオペレーター「plasma」を使うとサイケデリックな画面を生成することができます。
# また、オプション「-swirl "角度"」を使うと画面をひん曲げることができます。
convert -size 500x500 -swirl 360 plasma:fractal clockwise.png
convert -size 500x500 -swirl -360 plasma:fractal anti-clockwise.png
# 時計回りに360度、半時計回りに360度変形させた2つの画像をcompositeコマンドを使って合成しています。それぞれの画像の差分を取って重ね合わせるため、-composeオプションにはdifferenceを指定しています。
composite -compose difference clockwise.png anti-clockwise.png output.png