koboriakira.com

2020年4月7日、火曜日。

午前中に配偶者がグズったのを鎮めたあと、そのまま起きっぱなし。家電量販店のスタッフが家に来てくれて、食洗機の導入について見積もりをしてもらった。恐縮してばっかり。

昼はマクドナルドでテイクアウトをした。ちょっと買っただけなのに1000円もしたので驚き。まだハンバーガーが70円ぐらいだった時代に生きていたが、今日をもって更新することにしよう。こうして大人になる。


MacbookProのデータがちょっと溜まってきたので再インストールを実施。2ヶ月半ぶり2度目。

前回やったことをリスト化したり、インストールするアプリケーションは brew cask installでまとめたり、それらをシェルスクリプトにしたりと、かなり工夫をしたので一瞬で終わる予定だった。しかし始めてみるとCatalinaになった影響で、シェルがbashからzshに変わったことが大きく影響し、かなり時間をくってしまった。

とくに .bash_profile などを .zshrcなどに載せ替えるのが大変だった。プロンプトの書き方も変わっていたようで、見様見真似ですこしずつ改修をしていった。というかまだzshの使い方がわからない。

そんな感じで最初につくった「再インストールバッチ」の大部分を編集しながら再インストールをしたので、完了直後に思い切って再度インストールを実施してみた。今度は思い通りに1時間程度で終わり、実際の作業は数分で環境構築ができるようになった。このブログも昨日と同じ感覚でかけるし、Pythonもnodeも好きなバージョンを選べる。非常に大きな一歩だと思う。


配偶者が『テラスハウス』を見ていたのが視界に入ったので、なんとなく一緒に見た。

「テラハ」は正直に言ってもう役目を終えたと思う。なんて書くと「バチェラーに負けたのか」と受け取られるかもしれないので説明するが、ジョブ理論に照らし合わせれば間違いなくインスタやYoutubeの「モーニングルーティン」に負けたのである。

テラハもそれを薄々感じているのか、「男女のオシャレでヘルシーな共同生活」を押し出すのではなく、むしろ「生活感」を出すようにシフトした。すごい雑に言えば 「シェアハウスあるある」へシフトしている のだと思う。

なんでそんなことになったのか。端的にテラスハウスに「憧れ」を投影する人が減ったからだろう。憧れの人生、恋愛、暮らしはインスタに取って代わった。たとえばさ、あそこに出てる男女に「テラスハウス出演権」と「インスタのフォロワー○万人増加」のどちらを選ぶか聴いてみたらいい。

ちなみにバラエティ的な面白さはバチェラーと「オオカミ君」にとられたことも書いておこう(名前うろおぼえ。調べたら『オオカミちゃんには騙されない』でした)。そんなわけで、テラスハウスは僕にとっては南キャン山里のワードセンスを楽しむ番組になっていた(それで面白いんだからビックリする)。

そしてそんな中でひとり奮闘している 木村花選手に強いエールを。どんな相手でもロックアップから始める姿勢、攻めも受けもきっちりやりきる覚悟。それらは私が今日唯一学んだことだ。


2020年4月6日、月曜日。 珍しく午前中に起床。サボり気味だった掃除洗濯を早めに済ます。早めに買いものを終えて、ホットクックでいくつか常備菜を準備。


午後は『[Clean Architecture](/tags/Clean Architecture) 達人に学ぶソフトウェアの構造と設計』を読みなおすことにした。とりあえず第Ⅰ部。

  • 第1章: 設計とアーキテクチャ* ソフトウェアの設計=アーキテクチャは、システム構築・保守にかかるリソースを最小限に抑えることを目的とする* 「動くものを作る」姿勢だと、時間経過に応じてチーム・プロダクトの生産性は落ちていく* そのようにして生産性が落ちたプロダクトは、スクラッチから再設計されても同じように崩壊するだろう* 第2章: 2つの価値のお話* ソフトウェアは、「振る舞い(仕様)」と「アーキテクチャ」の2つの価値を持つ* 現場では「振る舞い」が優先されるが、 「アーキテクチャ」を優先させなければならない* 「完璧に動作するが変更できないプログラム」と「動作しないが変更の用意がプログラム」のどちらがよいか?

  • 「アーキテクチャ」は第Ⅱ領域、「振る舞い」は第Ⅲ領域* 開発者はステークホルダーとしてビジネスマネージャー(最近なら「プロダクトオーナー」だろうか)と闘争し、アーキテクチャの重要性を伝える責務があるそして第Ⅱ部。

  • 第3章: パラダイムの概要* 3つのプログラミングパラダイムは、「何をすべきでないか」という枠組みを提供した* 「構造化プログラミング」は、直接的な制御の移行に規律を課す* 「オブジェクト指向プログラミング」は、間接的な制御の移行に規律を課す* 「関数型プログラミング」は、代入に規律を課す* 3つのパラダイムは、アーキテクチャの重要な関心事とそれぞれ対応する* 構造化: 機能(の分割)

  • オブジェクト指向: コンポーネントの分離* 関数型: データ管理* 第4章: 構造化プログラミング* 構造化プログラミング以前、goto文の時代は、プログラムの処理はあちこちへ飛んでいた。そのためモジュールの分割、それぞれのモジュールの証明(テスト)ができなかった* 構造化プログラミングは、goto文を「順次」、「選択(if/then/else)」、「反復(do/while)」で置き換える発想である* 構造化によりプログラムは大きな機能を小さな機能に無限に分割することができた。今日のプログラミングはこれが基本* モジュールを分割することで、分割された機能は「反証可能」なものになった* 科学が「真であること」を証明できないように、テストも「正しく動作すること」を証明できない。可能なのは「誤った動作をすること」を証明することである(感想: だからTDDはfailから書き始める)

  • 第5章: オブジェクト指向プログラミング* 優れたアーキテクチャの基本は、オブジェクト指向設計の原則と似ている* オブジェクト指向の重要な点は、 ポリモーフィズム を安全に提供することにある* ポリモーフィズムによって、上位モジュールが下位モジュールに依存していた関係性を逆転することができる(依存関係逆転)

  • プラグイン・アーキテクチャ(OSは個別のIOデバイスに依存しないようにする)を元にした発想* ポリモーフィズムを利用することで開発者は、依存関係を制御の流れと関係なく好きなように制御できる* 依存関係を逆転・制御することで、一緒くたになっていたコンポーネントを独立してデプロイ・開発することができるようになった* 第6章: 関数型プログラミング* 関数型プログラミングの特徴は、可変変数を持たないことだ* 可変変数を持たないことで、競合・デッドロック・並行更新のトラブルを排除することができる* この「不変性」を実際に使うためには、サービスを「可変コンポーネント」と「不変コンポーネント」に分離させることが重要* (第3章からのまとめでを含めて)ソフトウェアは、「順次」「選択」「反復」と「間接参照」で構成されている。

とくにポリモーフィズムが大事だということがハッキリと伝わってくる。アナロジーを思いついたのでnoteポリモーフィズムと野菜炒め〜『クリーン・アーキテクチャ』を理解するためにを寄稿してみた。

---それでPythonで依存関係の制御を行おうと、実際のコーディングを勉強。InjectInjectorの2つのライブラリがよく使われているみたいで、とりあえず Inject から使ってみようか。次の2つのQiitaをもとに勉強する。


2020年4月5日、日曜日。 コンビニでコピーをとる以外には家にいた日。外出自粛というより日常を送っていたらそうなった、ってだけ。 SlackApp用のLambdaプロジェクトはいったん完成。App(ボット?)に対してメンションを送れば、その内容をもとにコマンド(呼び出すAPI)を使い分けるようになった。以前にGolangでも作ったのだけれど運用面を考えればPythonのほうがよかった。

とりあえず「モノがつくれる」レベルにはなったので、そろそろPythonのプログラミング技術をちゃんと勉強しようと思う。個人的にはコーディングよりもモジュール・パッケージ構成のベストプラクティスを知りたい。とくにクリーン・アーキテクチャをどうやって実現しているのか。書籍はあまり見つからなかった。

ちなみにできるかぎり端末を汚さないようにしていたが、やはりnpmは必要そうなのでちゃんとnodebrewを学んだ。 export PATH=$HOME/.nodebrew/current/bin:$PATH でパスを通しておけば nodebrew useで指定したバージョンをcurrentに配置して使える、ということを理解して「なるほどな〜」って感じ。こういう少しの成長が大切。


EDINETのxbrlファイル解析は、デモ製品が完成した。自分の作ったプログラムでは、良品計画、河西工業、ムゲンエステートあたりが「超割安」と判断されている。とくに良品計画は「10倍でも不思議じゃない」ぐらいの値になった。明日実際に有価証券報告書を見たりしてみよう。


2020年4月4日、土曜日。 最近夜型が当たり前になってきた。昨日からずっと30年前のフジテレビのスタジオで暮らしている。

食洗機の手配を早速済ました。再来週には設置してもらえそうで恐縮してばかりだった。店員さんに最近の状況を聞いたら「むしろ外出自粛で自宅にこもることが増えるので家電を買い換える人は増えたかも」とのこと。

あとはパッカーズのブログを更新。デビン・ファンチェスがコルツから加入。それなりに実績のあるプレーヤーなので楽しみ。


AWS CLIをDocker経由で利用できるように、公式がAWS CLI v2 Dockerimageを公開。Dockerイメージの公開と操作方法を解説してくれた。

たとえば下記のコマンドを利用することで、ホスト内の設定やCredentials(.aws)とカレントディレクトリをコンテナと共有させてawsコマンドが使える。

$ docker run —rm -ti -v ~/.aws:/root/.aws -v $(pwd):/aws amazon/aws-cli 公式ではこれを aws エイリアスとしておくことを推奨している。バージョンが気になる人は指定すればOK。

---ついでにServerless Frameworkも勉強してみた。最初はAmazonのサービスかと思っていたが、どうやら違うようだ(これがさらに誤認識だったりして)。その程度の理解だけど、とりあえずメモ。

  1. あらかじめserverlessのサインアップとAWS、githubとの連携を済ませ、serverlessを(npmなどで)インストールしておく
  2. serverless login でターミナルからログイン
  3. serverless コマンドでプロジェクトを作成して、 serverless deploy でLambdaにアップすることができる
  4. serverless.yml を編集して設定可能。API Gatewayを作るだけならすごい簡単

やっと簡単にgit管理しながらLambdaのプロジェクトを作ることができた。次のコマンドでイベントを実行することもできるみたい。本当にどんどん便利になる。

serverless invoke —function {ファンクション名} -p {jsonファイルのパス} —log さっそくSlack App用のLambdaプロジェクトをServerless Frameworkで作成しなおしてみた。

ところでいつもjsonの扱いを間違えて1時間かかるので気をつけないと。とくにSlackからのwebhookの”body”は文字列であることを忘れないように。

chat.postMessage を使うまでにもめちゃくちゃ時間がかかった。公式のドキュメントがまちがっている?

トークンをヘッダに入れないといけないはずだけど、その旨が書かれてなかった。自明だからか。


2020年4月3日、金曜日。

会社の最終出社日。退職でもないし、こういう状況で社内の人数も少ないので、とくに送別の雰囲気もなく終わった。個人の性に合う、ほぼ理想に近い最終出社だったと思う。

帰りしな、家電量販店に寄って食洗機の導入を相談した。帰宅後は配偶者がカレーを食べたいというので作ったけれど、配偶者に合わせて甘口を食べた。ほぼ「カレーのような食べ物」だったけれど滋味はあった。陳腐な感想だけど年齢が一桁だった頃を思い出す。


EDINETのXBRL解析は、MySQLをインストールして「過去5〜10年のデータを溜め込む」ことができたので、数年間にわたっての「1株あたりの価値」を見ることができるようになった。ためしに気になっている株を適当に見てみた。

昨日考えていた現状の株価を出す機能の開発を忘れていたので、明日以降にやるつもり。また処理とDBを同じコンテナ内でやっているので、これを分離させてdocker-composeで管理できるようにもしてみたい。 そこまで終わったらQiitaに投稿して、アウトプットのまとめをしておこうかと思う。

---昨日の『アメトーーク』の「みちょぱスゴいぞ芸人」は、このブログでは本当に何度も言っているので言い疲れたけれど、それでも将来の記録のため書いておこう。今日の放送は、バラエティ好きとして大笑いしながら見つつも、自身に深く刻み込まれてしまった《コンプライアンス》が何度もレッドシグナルを出していた。絶対に炎上するぞこれ。 私だって素直にみちょぱを褒めたい(先に言うけど、つまるところ関係性のプロがみちょぱだ。やりたい/やってほしい役を察知してくれるから、どんなこともできる。個人的にはそこに対する負い目のようなものを感じている「にこるん」のほうが共感はするけれど)。しかしバラエティはドラマじゃない。

あの場で行われていることは現実だと認識されて(みんな居酒屋の隣の席を見ている気分になっているのだ。めちゃくちゃ的を得ているアナロジーでは)、みんな怒りを覚えている。

そんなことを考えていたら、さっそく炎上してそうなタイトルの記事が目に入った。読むのはやめておこう。

---そんな感じで無駄に疲れを感じていたら、たまたま志村けんといしのようこの「五時の夫婦」のyoutubeがレコメンドされた。気づいたら2時間ぐらい見てしまっていて、あっという間にいしのようこのファンになっていた。コンプライアンス疲れの行く先は、コンプライアンスのまだ無かった「あの素晴らしい頃」かって? だったら相当にダサいぞ。 とりあえずしばらくは、このコントにコンプライアンスの流れ弾が当たらないことを祈ろう。「インターネットによって現実と虚構を区別できなくなる」という警鐘は、あながち棄却できないかもしれない。時間と空間が消えたいま、2020年のテレ朝のスタジオだって、1990年のフジテレビのスタジオだって、ヤフコメの照準は合わせられるのだから。


理論株価

2020/04/09

2020年4月2日、木曜日。 先日のEDINETのXBRLファイルの解析について、 edinet_xbrlというライブラリを作っている人がいた。ファイルのダウンローダーもパーサーも備えていて、ほとんどこれに頼ればよいことがわかった。

おかげで『知ってそうで知らなかった ほんとうの株のしくみ』を参考に、気にしている株の「1株あたりの価値」を出すところまでできた。たとえば日本電気硝子株式会社は現在1,326円だが、計算では2,972円になってもいい、と出た(注:当然ながら適当な結果ですので、投資は自己責任で)。

まだ実際の株価は手動で見つけるしかないのでこれをスクレイピングで取得することで、安全圏の調査までを自動化できるようにしよう。