2018年05月15日

さっそくNode-REDの書き方で躓いてしまった…。定数的な変数の保持と再利用ってどうすんだろ

昨日、Node-REDを覚えたので使いたいなぁ…なんてことを何気なく書きまして、色々実験していました。
現在、自宅内のRaspberry Piで行わせている処理の中に次のような流れのものがあります。

(cronで特定の日付日時で起動開始)
  1. 特定のIDと本日日付時刻を利用して作成した文字列でファイル名を作成し、変数Aにファイル名に入れる。
  2. ffmpegで音声ファイルをm4aファイルに変換し、変数Aの名称で保存する。
  3. 変数Aの名称のファイルを、scpでサーバ上へアップロードする。

実際にはもう少し複雑なことをやっていますが、単純かして上のような流れです。これを、Node-RED化したい。
考えた流れは次の通り。

injectで特定のIDを文字列として日時指定起動。
1でファイル名を作成し、msg.payloadに入れる。
2は[exec]でffmpegを実行し、出力ファイル名はmsg.payloadを引数として渡すようにする。
3は[exec]でsshpass&scpを実行し、転送元ファイル名を………どうやって渡そうか……?

いきなり困ってしまった。2でmsgは[exec]の出力(標準出力か、標準エラー出力か、戻り値)になってしまっているので、それを3に渡すことはできない。
何かmsg.payloadを保存しておく方法は無いか…と考えて、globalというものがあることを知った。


injectで特定のIDを文字列として日時指定起動。
1. ファイル名を作成し、msg.payloadに入れる。
2. msgをglobal内の変数に保管する。
3.[exec]でffmpegを実行し、出力ファイル名はmsg.payloadを引数として渡すようにする。
4.globalからmsgに変数に内容を復元。
5.[exec]でsshpass&scpを実行し、転送元ファイル名はmsg.payloadを引数として渡すようにする。

と、これで上手くいきそう。

と思ったのだが、よくよく考えてみたら、この流れは最大3多重で発生する可能性がある。つまり、後から実行された流れがglobalに保存したmsgを上書きしてしまう。コレじゃダメだ。

調べてみると、uuidを設定してその値ごとに保存/復元する方法等、いくつか方法はあるらしいけど、なんだか元々のシェルで書く方法より難しくなりそうな気がしてきた。できれば、こういった技術は物事を単純化させるために使いたい。

うーん、こういう混み入った場合の書き方のベストプラクティスを収集しておく必要がありそうだなぁ。

続きを読む
posted by ayacy at 00:00 | Comment(0) | TrackBack(0) | プログラミング

2018年03月27日

久々にCOBOLを使っていて、文法を調べたいときにどう検索したら良いか…

COBOLで

01 A.
  03 B PIC X(10).

ってな感じにWORKING-STORAGE SECTIONが作られているとき、Bの2バイト目から3バイト分アクセスしたいとしよう。
で、Bという名前の指定だけでは被るとしよう。つまり OF Aを付けないと一意に特定できないとする。

このとき、

B(2:3) OF A

と書くことができるのか、

B OF A(2:3)

と書くべきかなのをインターネットで簡単に調べたいとき、どういうキーワードでインターネット検索するのが適切か迷う。

posted by ayacy at 00:00 | Comment(0) | TrackBack(0) | プログラミング

2018年03月06日

疲れた脳に甘い物って

最近、本業の方でプログラミングをする機会が復活してきまして。
ようやく生きた心地がしてきました。
COBOLとJavaですけどね。

先日、会社からの帰りがけに、なんかすんげぇドリンクが売っていました。

6723E61C-7E86-4079-BB4C-F5701862A90D.jpeg

プレボスは普通です。
が、それ以外の桃味のコーラといい、ショートケーキドリンクといい、イチゴ味バニラミルクドリンクといい、なかなかチャレンジ性の高いドリンクが増えてきたなぁ、と。

とりあえず、家族からの求めに応じて、このうち2つを買って帰ることになりました。
23EE9DD3-C592-4E85-9D0F-716DB10AFC48.jpeg

このうち、イチゴ味のバニラミルクについては、ちょっと飲んでみました。
まぁ、皆さんが想像するとおりの味です。一時的な幸せを感じることはできるが、常時飲みたい感じではない。

プログラミングで脳が疲れているから、たまには甘い物を飲むのも良いだろう、たまには。と、自分の中で理由付けをして飲むわけです。最近、ハラの出っ張りもヤバくなってきていますからね。

世の中の深夜残業者や受験生も、そんな理由で甘い物を口にしているケースも多いはず。

ただ、どうも最近は、どんなことはないという説が主流になってきているそうで。
血糖値の上昇で、セロトニンという物質が増えて精神は安定しますが、逆にドーパミンが減って、神経の信号伝達が悪くなり、思考効率は悪くなるんだとか。

積極的すぎる甘い物の取り過ぎは、血糖値が上がりすぎてこの状況が起きてしまうので、血糖値が緩やかに上昇しそうなモノを選んで口にする方が良さそうで。


続きを読む
posted by ayacy at 00:00 | Comment(0) | TrackBack(0) | プログラミング