映画をよく観ます。
最近の映画館は、チケットをネット予約できるのがありがたいのですが、友人とよく行く、
などでは、予約時にチケットを発券するのに使う数字四桁のパスワードを設定する必要があります。
これを毎回考えるのがめんどくさい。いつも同じパスワードでいいじゃない、と言われるかもしれませんが、そこはそれ、いちおうシステム運用屋ですから。
で、調べ物の合間にチケット予約する時にパスワードを生成するために、OSXの ~/.bash_profile, Ubuntu の ~/.bashrc に仕込んでいるワンライナーたち。
alias rn4="cat /dev/urandom | LC_CTYPE=C tr -dc '0-9' | fold -w 4 | head -n 1"
alias rn4rb='ruby -e "puts (0..9).to_a.sample(4).join"'
alias rn4py='python -c "import random; print \"\".join(random.sample(map(str, range(10)), 4))"'
alias rn4ps='powershell -Command "(Get-Random -InputObject (0..9) -Count 4) -join \"\" "'
- rn4
- OSX では、LC_CTYPE=C が必要だが、Ubuntu では不要。この方法だと四つのうちに同じ数字が出ることもある。
- rn4rb
- (0..9).to_a は、[*0..9] と書いてもいいわけで。四つの数字に同じものは出ない。
- rn4py
- ruby と同じロジックを書いても、python では括弧が多重しがちになるなのがちょといや。
- rn4ps
- 仕事で powershell をよく使うので、Macbook や Ubuntu にも PowerShell をインストールしてある。作ってみたが非常に遅い。
いちばん軽く動くので、結局、/dev/urandom を使った rn4 ばかり使っているような。