つれづれ
一年以上、放ってました。
仕事が、RPAのプロジェクトマネジャーになってしまったり、家事が忙しくなったりで、なかなか時間がとれず、頓挫してた感じ。
であれば、その内容を書いてしまえばいいのか、と開き直りました。
新しいもの好きなのはどうやらこの昔かららしいので、そういうことを書いてもいいかなあ、と。
ということで、新規一転して、こちらでも、興味を持った新しいことを書いていきます。
29日目 金額を取り出す正規表現
なぜか、正規表現へと進んでしまった。昔から、正規表現は憧れだが、なかなか実践する時間を取れない。まあ、物事というのはそういうものなのだが。
¥ 123,000
¥455円割引
というAmazonの金額表示文字列から金額を取り出す試み。改行されているのがポイント。
とうとう、正規表現に足を踏み入れてしまった。
検証サイトで、極めて単純に、以下を試みる。
(このサイト、素晴らしい)
[0-9]{0,3}[0-9]{1,3}
本の金額を取りたいので、さすがに100万円以上にはならないだろう。
テストサイトで検証。うーむ、二行目もゲットしてしまうのか…。
28日目 Pythonっぽいと思われるコーディング
私は(目隠しをされて?)COBOLでかかれた勘定系基幹システムを長年保守開発していた。もちろんプログラマとしての活動は極めて短いのだが、ひたすら40年前に書かれた業務ロジックを読み続けたものだ。
そうすると、今、Pythonを書こうと思っても、COBOLのように、ダラダラとコーディングしてしまう。だが、本来はこんなはずではない、ということもよくわかっている。
本屋でPython本を立ち読みすると、どうやら、以下のようなコーディングのようだ。
def AAA():
xxxxxx
xxxxxx
def BBB():
xxxxxx
xxxxxx
if name == ‘main‘:
AAA()
こうした形式に書き換えてみよう。
27日目 棚卸し
さしあたり、グラフを書くところまで進めた。その後、4営業日休んだ。
このあと、何をやるのか、課題認識を棚卸しをしてみる。
- 現在は、都市名から日の出日の入り時刻を算出。これを位置情報からゲットする。(Astral)
- AstralというPIPモジュールを使っているが、自前で計算する算出方法を入手した。自力で実装する(これは、Pythonというより、天文学的好奇
- Web上に実装してみる。(Web)
- グラフを書いたが、サマータイムの考慮を行いたいがどうか?(Datetime)
- もう少しきれいなコードを書きたい(コーディング規約、お作法)
- Gitを使う(Git)
踏まえて、順次少しずつ進めよう。
26日目 日の出日の入り時刻のグラフを書く
日の出時刻と日の入時刻を秒換算した配列に対して、minとmaxを使い、配列の最小値と最大値をゲットした、
ここで得られた最小値と最大値をグラフに反映する。
結果は以下の通り。
25日目 日の出日の入り時刻のグラフ化
先日までのグラフは、日の出日の入り時刻の前日差をグラフにしていたが、今回は、実際の日の出日の入り時刻をグラフにしてみた。
これは、時刻を秒数に換算して表示している。
下限値を調整しないとわかりにくいので、明日以降調整することにした。
24日目 そもそもなぜPython?
そもそも、何故Pythonなのか?
一昨年だったか、仕事場の後輩に誘われたのがきっかけだ。みんな時間がなくて頓挫したのだが、iOSでも動かせるPuthonistaというアプリを発見したり、pipやpyenvの概念を理解したりして、有益な時間だった。
その後、時間がなくなり、Pythonはお休みしたが、今年になり、まあ、もう少しやってみるか、と思い再開。
AppleWatchを使い始めてから、日の出日の入り時間に関心が向いてしまい、それをPythonで検証してみよう、というのが、このプロジェクトの始まり、というわけ。
最初の目標だったグラフも書けてしまい、Pythonで様々なことができそう。
構成管理とか、構造とか、まだやることはあるのでしばらく継続。基本的は営業日に更新する。
23日目 なやみ
現在悩んでいるのは、プログラムの構造だ。どのような粒度でモジュールを分けるのか。あるいは、モジュールないでは、どのような粒度でdefで区切るのか。いまいちよくわからない。
今の書き方は、COBOLのような書き方になっている。
これじゃあねえ、という感じだ。
22日目 Singaporeは? Osloは?
シンガポールの日の出、日の入りの前日差を確認してみた。
なんと、早くなったり、おそくなったり。
次にオスロ。3月頃に極大な差違がでる。これはどうやらサマータイムを導入しているから、だ。うーむ、どうやって処理すべきか。
UCTに変換するか。だが、そうすると日付が変わり、差違が正しく表示されないかもしれない。次の課題だ。日付処理に関する次の課題だ。
21日目 グラフをリファイン
方々調べて、以下のような記載としてみた。
- figureでグラフのサイズを変更する。
- subplotで、figure内に配置するグラフ数、レイアウト、位置を指定。
- graphDateには日付を設定してみた。
結果は以下の通り。上段が日の出の前日差、下段が日の入りの前日差。先日触れた疑問点が可視化された。
日の出、日の入りそれぞれ、春分と秋分付近の前日差の増減が相似形になっていない。
地球の自転と公転が以下の結果を生じさせているんだと思う。おそらくは、公転方向と時点方向の問題と推察。継続調査。