2022年3月7日(月)リタイヤ生活1443日目

今日も快晴で気持ちのいい1日だった。
もう3月なので、花粉が飛び始め、
すぐに桜の花がほころびる時期になる。
ただ、今、桜の木を見ても、
あまり芽がふくらんでいない。
近所では、梅の花を見るだけだ。

 

今日は特に予定が無く、
家内と、近くのショッピングモールに出かけた以外は、
家で、プログラミングの続きをやっていた。

プログラミングの内容は、
最近、サークルで近くの市民センターの予約を受け持ったので、
LINEの特定のグループに、その予約日や抽選日を通知したり、
センターからの予約受付メールや当選メールを転送するものだ。

 

サークルの代表メールアカウントをGmailで作って、
それをLINEグループに転送するのは、
GAS(Google App Script)とLINE Notifyで作成した。
記述言語がJavascriptで、今まで使ったことはなかったが、
内容や構文的にもあまり目新しいところはなく、
プログラミングすることができた。

 

唯一、日付を引数とする関数適宜では、
意外な事が起ったが、これはたぶんCall By Addressではないか
と推測して、関数内でCall By Value的になるように対処したら、
正常に動いた。
後から調べたら、ネットに掲載されているプログラムで、
日付を引数にする場合には同じ対処をしているのを見つけた。
これを予め知っていたら、余計な苦労をしなかったのに、
と思う反面、このトラブルを経験しなかったら、
何でこんな無駄と思える処理を入れているのかと、
不審に思うところだった。
トラブル解決も良い勉強だ。

 

後は、事務局からの何種類かのメールを受信する際に、
無駄な部分をカットして、要約をLINEに転送する処理で、
どこまでが事務局からのメールで
固定した文章になっているのか問題だった。
固定的な文章をパターンマッチングで置換・削除すると、
その部分が変更された時に、
プログラムが上手く動かなくなってしまう。
これも幾つか試行錯誤して完成させた。

 

後は、予約日や抽選日に、
当日やるべき事をLINEグループに通知するプログラムで、
2ヶ月後の日程を予約するところで少し苦労した。
例えば6月30日の2ヶ月後は8月30日、
翌日の7月1日の2ヶ月後は9月1日になる。
このままだと、8月31日が飛んでしまい予約ができない。
実際の市民センターのカレンダーと見比べながら、
ロジックを構築し、これもなんとか完成できた。

 

これで今回のプログラミングは一応完成。
最近は、Pythonを使っていたので、
初めてのJavaScriptで少し苦労したのと、
やはり年齢のせいか、
プログラミングロジックを組み立てるのが
ずいぶん遅くなっている。
年々、頭の回転が鈍っているのを実感したが、
それを進行させないためにも、
プログラミングは良いトレーニングだと思う。