Rails Tutorial 第8章〜第11章 読了
base_64の八卦とメタプログラミングの黒魔術
Ruby on Rails Tutorial の第8章〜第11章をよみおえました。
第8章は、ログイン機能の整備、
第9章は、ログイン情報を記憶させる方法、
第10章は、ユーザーの更新機能、
第11章は、アカウントの有効化
についてでした。
個人的に面白かったのは、第9章の記憶トークンについて。
これは、コンピューターが管理する秘密情報で、
通常ランダムな文字列を生成しているそうです。
そして、このために相応しいのが、urlsafe_base64 というメソッド。
…メソッドというのは、「魔法の呪文集」くらいの感じでいいと思います。
「A〜Z、a〜z、0–9、”-“、”_” のいずれかの文字(64種類)からなる22のランダムな文字列を返」(第9章)すようです。
それにしても、64ですか!?
私は易占が好きで、よく自分でも立てるので、
64と聞いたとき、すぐに浮かんだのは八卦。
乾・坤・震・巽・坎・離・艮・兌
の8つのことですが、
例えば、ー(陽)が3つで乾、- -(陰)が3つで坤を表します。
残りの6つも、この ー と – – の組み合わせでできています。
(アイキャッチ参照)
さらに、この8つを重ねることで(掛け合わせて)、
計64通りのかたちを生み出します。
この64通りのそれぞれに意味があると考えているのが、易です。
私は、遊びで Excel VBA で易占いを作ったことがありました。
ランダム関数という関数を使って、
ボタンをクリックすると、
ランダムな数字が選ばれ(→ 奇数か偶数かを1と0で表し、
それを6回繰り返し、6桁の数字にする)
それに対応する「卦(か)」(乾とか坤とか)が表示される占いです。
base_64の考え方が、これとほぼ同じだったので驚きました!
実際は知りませんが、
一般のオンラインのタロット占いとか易占いなども、
ランダム関数を使っているのかな、と推測しているので、
よほどシンクロ率の高い人が本気で占うのではない限り、
答えは表面上だけのものかなと・・・。
(あんまり当たらない・・・と)
私の場合も、コイン易で占うときは、
それなりに気持ちを込めますから、かなりきっちりした答えが易から得られますが、
自分で作ったエクセル易占いは、殆ど当たりませんでした…。
それはともかく、
偶然かもしれないけれど、「64」が多くの事象を表すための、
最も効果的で最も簡潔な数だということに、シンクロのようなものを感じた章でした。
さらに、メタプログラミングの概念にも感動したのが、第11章です。
プログラムがプログラムを生む!
メタプログラミングは、「黒魔術」と呼ばれているそうです。
プログラムがプログラムを産むからです。
それは場合によってはかなり怖い・・・。
この実態については、
おいおい書いていこうと思います。
しかし、最先端の文明の利器は、
なんと魔術的なことか!
古代人が、直接、世界の神秘と関わろうと(操ろうと)したことを、
現代人は、コンピューターという道具を通して行おうとしているだけなのかもしれない・・・
そんなことも考えた章でした。
(感謝! Nicols Damian VisceglioによるPixabayからの画像)