フォトリーダーのために、コードをまとめるシェルスクリプト

タグ: PHP   Laravel  

小ネタを一つ。

最近、もう余り流行っていないですがフォトリーディングと言う技術があります。速読の一種と捉えられていますが、実際は書籍の中から注目する場所を勘で見つけ出す技法と言ったほうが良いでしょう。

NASAは否定したとレポートされていますが、実際はNASAが依頼した学者が否定しているだけで、NASA自身が研究したわけではありません。実際にできる人もいるので、全くでたらめというわけでもないでしょう。

簡単に言えば、脳が画像を読み取るスピードは、文字として認識する速さよりずっと早いので、図形として一度無意識に記憶し、後ほどそこから学習対象のヒントを得ようと言うものです。

私はできません。理由は簡単。指先がガサガサで本をスピーディーかつリズミカルにめくれないからです。素早くめくろうとすると苦労して、それがストレスとなり、集中できないからです。

コンピューターなら、一々めくらなくてもいいですね。それとテキストファイルであれば特別な道具はいりません。ページダウンキーを押し続ければ、キー入力のリピート機能で自動的にめくられていきます。

ふと思いついて、フレームワーク全部のファイルをフォトリーディングしてみようと思いました。一々オープンしていたのでは操作が面倒なので、巨大なテキストファイル一つにまとめてしまおうと思いました。

ただまとめるのは簡単ですが、ファイルパスがあったほうがきっと「脳」は認識しやすいと思い、ファイルの先頭部分に挿入します。

そんなことを考え、作成したシェルスクリプトです。

#!/bin/bash

rm all-in-one.php

find $1 -name '*.php' | xargs -i -n 1 sed -e "1s+^+\n# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\\n# ファイル名:{}\\n# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\\n\\n+" -e "1s+${1}/++" {} >> all-in-one.php

フレームワークのディレクトリーを引数に指定し実行します。結果はall-in-on.phpファイルにまとまります。

ファイルがでかいので、エディターは軽いやつが良いようです。私はvimを使いました。ページめくりはキー入力のリピート設定で調整しましょう。特別なツールは必要ありません。

当方のvimでは一秒に30回のリピートの場合、テキストが描写しきれていないようです。コードハイライトのオーバーヘッドでしょう。20回なら表示されるようです。

後は、フォトリーディングの書籍やWebページでやり方は調べてください。皆さんが、フレームワークの天才になっても知りませんよ。 :D