Tadachika Oki の日記

私の日々の雑感です。https://sites.google.com/site/tadachikaoki0/

真言宗十八本山の巡拝

高野山真言宗を信仰している。仏教には真言宗とよばれる弘法大師 (空海) が開いた宗派があり、高野山真言宗は、真言宗の宗派のひとつで高野山に総本山がある。 (参考 URL: http://www.koyasan.or.jp/shingonshu/)

真言宗十八本山とよばれる、真言宗における複数の宗派を含む総本山のグループがあり、ふとしたきっかけで巡拝することにした。

最初に参拝したのは数年前で、東寺だった。京都駅に近かったため参拝しやすかった。日々の暮らしに疑問を持ち、何やらあれこれ考えこんでいた時期だったと思う。

そして、仏教と密教に興味を持ち、高野山金剛峯寺へ参拝した。それから、真言宗に興味を持った延長で、智積院西大寺大覚寺、そして仁和寺と参拝した。

並行して、独学で仏教を学ぼうと思って本を買い漁っていた時期があったが、根本的にこういうことはどうやら違い、基本的に、仏教は師に就いて対面で伝授されるものらしい。また、昔、自分が勉強・研究した分野の方法論やフィルタで近づいてどうこうできるものでもないらしい。「ああ、知的好奇心で近づくものでもなさそうだな。」とこの辺で気がついた。

「在家として仏教をどう支えるか、向き合うか。」という問いをここ数ヶ月間考えていて、それに対する一つの答え方としての巡拝にたどり着いた。心静かに巡拝し、日々の自身の生活と仏教と向き合うことを念頭に置いている。

昨日は、須磨寺を参拝した。巡拝はつづく。

キューのシェルスクリプトによる実装 (キューの状態遷移の履歴をファイルとして保存)

[動機]

シェルスクリプトのコーディング能力向上。

・キューを手続き型言語 (C 言語等) で実装したことはあるが、

 ファイルの入出力ベースで状態遷移の履歴込みで

 実装することによるノウハウを貯めたかった。  (※)

 ※ あくまでも内発的な動機付けで、特にこういうノウハウの

 必要性が世間にあるわけではない。

 速く省メモリで動く実装を目指しているわけではなく、

 時間計算量や空間計算量の議論等もここではとりあえずおいておく。 

 

[予備知識]

・キューがどのようなものかわかっていること。

シェルスクリプトがある程度書けること。

 

[主な考え方]

・キューを様々なキューの状態を表すファイルを複数もつディレクトリとみなす。

・キューの状態を一意で表すために、ミリ秒単位でファイル名を付ける。

 

[キューの状態の例]

1

2

3

先頭行から要素を挿入し、最終行から要素を取り出し標準出力する。

 

[スクリプト: 4 種類]

キュー自体の作成: ディレクトリと空ファイルの生成

(キュー自体を削除する場合は rm -f によるディレクトリ削除をする。)

$ cat create.sh

DATE=`date +"%Y%m%d%H%M%S%3N"`

mkdir queue_${DATE}

touch queue_${DATE}/queue_${DATE}

  

キューにおける要素の存在性チェック:

$ cat empty.sh

QUEUE_NAME=$1

QUEUE_NEWEST=`ls -1  ${1}/* | tail -n 1`

cat ${QUEUE_NEWEST} | wc -l

 

キューへの挿入: 第 1 引数にキューの名前を、第 2 引数に挿入する要素を指定する。

$ cat enqueue.sh

QUEUE_NAME=$1

DATE=`date +"%Y%m%d%H%M%S%3N"`

QUEUE_NEWEST=`ls -1  ${1}/* | tail -n 1`

cp ${QUEUE_NEWEST} ${1}/queue_${DATE}

if [ `sh empty.sh ${QUEUE_NAME}` -gt 0 ] ; then

 sed -i "1s/^/${2}\\n/" `ls -1 ${1}/* | tail -n 1`

else

 echo ${2} >>  `ls -1 ${1}/* | tail -n 1`

fi

 

キューからの取り出し (標準出力した上で最後の行を削除) :

第1 引数にキューの名前を指定する。

$ cat dequeue.sh

QUEUE_NAME=$1

DATE=`date +"%Y%m%d%H%M%S%3N"`

QUEUE_NEWEST=`ls -1  ${1}/* | tail -n 1`

cp ${QUEUE_NEWEST} ${1}/queue_${DATE}

if [ `sh empty.sh ${QUEUE_NAME}` -gt 0 ] ; then

 cat ${QUEUE_NEWEST} | tail -n 1

 sed '$d' ${QUEUE_NEWEST} > ${1}/queue_${DATE}

else

 echo -n > ${1}/queue_${DATE}

fi

 

[使い方]

キュー自体の作成

$ sh create.sh

 

キューへの挿入

$ sh enqueue.sh queue_20170818151740370 1

$ sh enqueue.sh queue_20170818151740370 2

$ sh enqueue.sh queue_20170818151740370 3

 

キューからの要素の取り出し

$ sh dequeue.sh queue_20170818151740370

1

$ sh dequeue.sh queue_20170818151740370

2

$ sh dequeue.sh queue_20170818151740370

3

$ sh dequeue.sh queue_20170818151740370

$

Categorical Data IDE のビルド

和文で書かれたビルド方法について特に見当たらなかったので、書いておけばどなたかに有益だろうと思い書いた。 (ぼくは開発者とかでなくて、 functorial query language に興味をもっているだけのいちプログラマです。)

 

前提知識:

 

・git のインストール方法。

EclipseJava プロジェクトを インポートする方法。

 

Step 1. github からソースコードを取得。

 git clone https://github.com/CategoricalData/fql.git

Step 2. Eclipse JDT の最新版を下記から入手。 

 http://www.eclipse.org/jdt/

Step 3. Eclipse で Step 1. で取得したフォルダ fql を

 Java プロジェクトとしてインポート。

 

注意: maven でもビルドできるが環境による。 Eclipse によるビルドを推奨しているとのこと。

 

github.com

某ゲームについて

某ゲームに対してああだこうだ言ったり思うことはあるけど、某ゲームが人の動きも、よくわからんもやっとしたルールもさらっと越境させていく感じは痛快ではある。

どんな哲学も学問も凝った技術も、予測もできなかったろうし、成し得なかったことが起きているように思う。 (作った側はもちろん考えていたのだろうけど。)

娯楽は娯楽として家の中で細々やるものだと思っていた。それがこれだからね。

この否定も肯定もしたくない感じがなんとも言えない。

カレンダーにおける予定の圧縮表現 2

この記事の応用について書く。 

salmonsnare.hatenablog.com

 

目次

1. ある週に毎週予定があることの表現

2. 日程調整のための表現

 

1. ある週に毎週予定があることの表現

 

毎週月曜日に予定があることを 2 部グラフを用いて表現すると、以下のようになる。

f:id:salmonsnare:20160716162541j:plain

 

2. 日程調整のための表現

A さんと B さんとの間で素朴な日程調整を行うことを考える。まず、A さんと B さんともに今月の予定が決まっていて、既に予定のある日が重複しているかを確認した上で、どの日に予定を入れるかを決める。

 

A さんと B さんの今月の予定を 2 部グラフで表現したとき、この 2 個の 2 部グラフに共通する辺集合をもつような 2 部グラフで、既に予定のある日が重複していることを表現できる。

 

この例だと、A さんと B さんの予定が重複している日は、第 3 週の月曜日であることがわかる。

f:id:salmonsnare:20160716163312j:plain