2019-08-19-01-steam以外何もしてない - project-enigma

2019-08-19-01-steam以外何もしてない

>> Site top >> weblog >> 月別アーカイブ >> 2019年08月のlog >> 2019-08-19-01-steam以外何もしてない

最終更新日付:2019/08/19 20:26:14


steam以外何もしてない

2019 年 08 月 19 日

最近は更新が月イチペースになってしまっている。2019年は最初の3ヶ月くらいは頑張って頻繁な更新を心掛けてたんだけどねぇ。

活動が停滞しているって感じは全くなくて、この1ヶ月の間も steam だけは山のようにコミットを続けていた。しかし、それ以外の活動は完全に停止。まぁ今に始まったことでもないし、そもそも色々なコトを同時並行的に作業するのは大の苦手だ。克服したいと思っている苦手ではあるから、開き直るつもりはないんだけど。

 

ちなみに、前回書いた「一般化された Value クラスの導入」作業はどうにか完了した。その後も色々必死こいて作業していたけれど、一体何をやっていたんだろう。最近のコミットログから抜き出してみよう(細か過ぎるのは消してある)。

末尾に * をつけてあるのは、一般化された Value クラスの導入に関連した作業だ。この大きな変更によって、コマンドのパラメータはすべて整数などの数値や文字列としてパースされるようになった。しかし、たとえばデータIDなんかは(確率は非常に低いが)数字だけからなる文字列になる場合がある。そういう「数字だけからなる文字列」がたまたまサブコマンドの結果として別コマンドの入力になってしまうと、数値として解釈されてしまう。これでは具合が悪いので、あまりキレイではないが付け足しの仕様をでっちあげたというわけ。

field / rpn コマンドへの --assign-to オプション追加はもう少しだけ前向きだ。例えば、タスクデータ @1 に対して field PRIORITY @1 とした場合、そのタスクのプライオリティが出力される。これを変数に受けることももちろんできる。以下のような感じだ。

VAR=`field PRIORITY @1`

しかし、ここで起きていることを良く考えるとあまり嬉しくない。結局のところ、数値であるところの PRIORITY フィールドを標準出力に(サブコマンドの出力として)書き出し、それを VAR 変数に設定する際に改めてパースすることになるのだ。しかも、先の付け焼刃な仕様によって、上記 VAR 変数は結局数値でなく文字列を格納することになってしまう。だから、数値として扱うためには以下のようなアホなことをしなければならなくなってしまったのだ。

VAR=`field PRIORITY @1`
VAR=$VAR

これは我慢ならなかった。一般化された Value の導入を後悔したほどだ。なので、数値を返す(ことがある)コマンドには --assign-to オプションを追加した。それが field / rpn だ。以下のようにすれば 1 行で数値のまま変数に格納できる。しかしこうやって書いてみると、あんまり前向きでもないな。

field --assign-to VAR PRIORITY @1

あとはなんだ。rpn コマンドへの ratio オペレータの追加はそれなりに楽しかった。連分数展開を使って、浮動小数点数を分数に変換するやつだ。いつ使うんだ、という気がしないでもないが、まぁそこはそれ。お楽しみもないとね。

‥‥‥とまぁ、そんなわけで最近は steam の開発以外は何もしていない。やりたいことが無いわけじゃないんだけど、なかなか気持ちが向いていかない。まとまった時間がとれないこともあるだろうけど、たぶんそれだけじゃない。そのことを考える度に、老いたなぁと思う。

 

コメント

このページにコメントする

 

このページのタグ

Page tag : steam

 

 


Copyright(C) 2005-2019 project-enigma.
Generated by CL-PREFAB.