Posts for: #Life

個人開発の日

0時に寝て6時に起きた。午後から昨日作った機能拡張のテストをしながらコードの修正やテストコードを追加したりしていた。

ストレッチ

今日の開脚幅は開始前161cmで、ストレッチ後161cmだった。先週はワクチン接種後にダウンして寝込んでいて数値が悪かったのが元に戻った感じ。それでもまだ復調にはいたらないのか、右の肩甲骨が硬いのと腰の張りもすごかった。3月からずっとだらだらした生活を送っているのでもうちょっと生活をびしっとしないといけない。インフラエのお仕事を引き受けてから深夜早朝に作業する機会が増えて生活のリズムを崩しているのもあるとは思う。歳をとって体調がよくない日が増えるという話しを聞いたけど、私もストレッチを始める前はそうだったような気がするけど、毎週ストレッチに通うようになってからそういう印象が解消した。もう1年以上通っているから間違っていないと思う。毎週どこそこが悪いといったことも書いたりはしているけど、それはストレッチをする上でのよくないところや前週よりも成果が出ないところの話しであって、日常生活を送る上ではまったく影響はない。ストレッチは正義。

Go Conference 2022 Spring Online

ストレッチを終えてから Go Conference 2022 Spring Online に参加した。いくつか発表を聞きながらコードを書いたりもしていた。一番よかったのはたいちさんの DBアクセスライブラリkra の発表かな。taichi/kra というライブラリも知らなかったので機会があれば今度使ってみようという気になった。私も sql 好きだし、orm の弊害の話しも共感できてよかったと思う。orm 使うなという話しではなく、それぞれの用途にあわせて使い分けたい。

堅牢なインフラコード

23時に寝て5時に起きた。

駐輪場の定期更新

3ヶ月ごとの更新。ちょうどいまのお仕事の契約と同じ更新月になっている。前回と同じ金額だったのでまだ駐輪場の料金は値上げされていない。世界的にインフレしているのに日本が全然インフレしていない理由の1つとして不動産が値上げしていないからというのを日銀の記事で見かけた気がする。どこかのタイミングで不動産関連の値上げも始まるのかもしれない。

インフラコードの抜本的リファクタリング

約2週間かけて、新規インフラ環境の構築、既存インフラの cdk/cf と同期されていなかったインフラ (rds, security group, croudfront, api gateway, waf) の同期など、インフラコードの大きな変更をやり終えた。一部 fromLookup でインポートしているリソースもあるが、いま完全に cdk/cf 管理なインフラとなった。ここからはせっかく cdk でコードを書いているので、モジュール化や共通化など、再利用可能なリソースとして定義して、複数の Stack でコードを再利用するといったリファクタリングをしていく。ひとまずこのことをボーナスステージと呼ぼう。いま完全に同期されたインフラがあるため、インフラ上のリソースの差分が出なければリファクタリングは正しいことが保証される。cdk は Stack 間の依存関係 も定義できるため、適切な依存関係を定義することでより堅牢なインフラコードとなるはずである。具体的には次のような依存関係になる。然るべき堅牢なインフラコードに書き換えていく。

  • DatabaseStack
    • BackendStack
      • GatewayStack
        • FrontendStack

病み上がり

半日寝込んでいて3時に起きて7時に起きた。午後から、昨日寝込んでいたときに届いていたレビュー依頼の内容をレビューして、コードのリファクタリングをした。その後、病み上がりで調子が出ないので今日は気分転換しようと決めた。ストレッチを受けているときの、トレーナーさんの同じ体勢でいるのはよくないという言葉を思い出して、自転車でちょっとサイクリングして、その後、漫画喫茶に行って漫画読んでた。

ストレッチ

今日の開脚幅は開始前158cmで、ストレッチ後160cmだった。昨日は発熱でずっと寝込んでいたせいか、体が硬くなってしまっていていつもよりストレッチを受けていて辛い部位が多かった。トレーナーさん曰く、ずっと同じ体勢でいるのが体にとってよくないとのこと。普段よりも肩甲骨まわりの筋肉が硬くなってしまっていたらしい。病み上がりで体調が整っていないときにストレッチを受けるのも復調させるための準備としてちょうどよかったのかもしれない。

ワクチンの副反応でダウン

3時に寝て6時に起きた。1時までインフラ作業して帰ってきて、ワクチン接種のせいか、あまりうまく眠れなかった。朝に熱を測ったら37.2℃だったのでぎりぎり平熱だった。

隔週の雑談

顧問のはらさんと隔週の打ち合わせ。今日の議題は次の通り。徐々に熱が出てきてしんどかったせいか、情報共有の報告程度で終えた。

  • 今期の予算策定
  • 次のお仕事を探す段取りの見通し
    • 現プロジェクトの区切りが5月末にあることから次の契約更新のタイミング (7月末) で契約終了する可能性がある
  • 延期したワーケーション の再計画
    • 6月か7月ぐらいがよさそう

ワクチンの副反応

朝オフィスで測ったときは37.2℃でこのぐらいなら普通にお仕事できるかなと始めたんだけど、段々体温が上がってきて10時ぐらいには37.9℃になって、しんどいから一旦家に帰って横になって、デイリースクラムだけ家から参加した。その後もずっと寝込んでた。何回か起きて熱を測ったら最高38.5℃まで上がった。厚労省のサイトによると、3回目の副反応は2回目と同等とある。私は2回目の副反応はここまでひどくなかったのでこの差はファイザーとモデルナの違いなのかもしれない。熱が出て寝込むとか、数年に1回ぐらいの頻度でしか起きない。病気になったらこのぐらいしんどいんだなという、しんどさを思い出すのにちょうどよかったのかもしれない。

コロナワクチン3回目

22時に寝て3時に起きた6時に起きた。季節の変わり目のせいか、いつも眠い。

ワクチン3回目接種

2回目は昨年の9月27日 に接種した。6ヶ月以上経たないといけないので3月27日以降に接種資格を得て、実際に接種券が届いたのが4月7日だった。神戸市は初回のときにまごまごしたので他の自治体よりも遅れている。これまでファイザーを2回接種したので今回はモデルナを受けてみることにした。モデルナを扱っていてネット予約できるもっとも近くの診療所を予約した。オフィスから自転車で15分ぐらいのところ。16:30の予約なのに16時過ぎぐらいに行ったら普通に受け付けしてくれてすぐに接種もできた。16:05に接種終えて16:20まで待機してオフィスに戻ってきて普通にお仕事してた。その1時間半後に熱を測ったら37.0℃だった。その後もやや熱っぽいけど、平気とは言えば平気。

インフラ移行作業

昨日の続き。フロントエンドのテスト環境が壊れる可能性があるため、他メンバーが使っていない夜に移行作業を行う。POの人たちがQA検証を19-21時ぐらいにやっていることが多いので21時以降に作業すると連絡しておいた。なかなか大変だった。最悪の場合、数時間テスト環境を使えませんと伝えていたものの、その通りで4時間ぐらい検証作業をしていた。cloudfront の distribution 設定を CloudFrontWebDistribution から Distribution へ移行して、新しいやり方であるマネージドポリシーを使うようにした。この設定が意図した振る舞いにならなくて検証作業に時間を割いた。

cloudfront 経由で web api を呼び出すルートがあってキャッシュを無効にしたいのだが、無効にしたキャッシュポリシー (ttl をゼロにする) を作るとヘッダーの設定ができない。次のようなエラーになる。

The parameter HeaderBehavior is invalid for policy with caching disabled.

(cloudfront): Cache Policy cannot forward Authorization header. #13441 によると、maxTTL を1秒にして Authorization ヘッダーをオリジンに転送するようには設定できる。キャッシュメソッドは GET と HEAD なので実運用上は問題ないとは思うが、この回避策がないかどうかを調べて検証していた。結果としてはなかった。Configuring CloudFront to forward the Authorization header には Authorization ヘッダーを転送する方法は次の2通りとある。

  1. cache key に含める
  2. Managed-AllViewer という origin request policy をすべての viewer requests に含める

最終的には1番目のやり方で対応はしたが、2番目のオリジンリクエストポリシーを設定する方法も検証してみた。オリジンリクエストポリシーを単体で設定することはできなくて、キャッシュポリシーも一緒に設定しないといけないことからキャッシュポリシーの設定の影響を受けて意図したように Authorization ヘッダーの転送はできなかった。

  • cache policy: Managed-CachingDisabled
  • origin request policy: Managed-AllViewer

開発が遅れる空気

昨日は0時過ぎまでオンライン飲み会で雑談していて、それから1時に寝て6時過ぎに起きた。

ストレッチ

今日の開脚幅は開始前161cmで、ストレッチ後162cmだった。今週はインフラエンジニアを始め、深夜と早朝に作業するため、生活が不規則になってしまった。そのせいか、腰と右股関節の張りが強いように感じた。1日は散歩に行ったり、深夜に一駅離れたスーパーに買いものに行ったり、すこし運動っぽいことも生活に取り入れるようにはしている。今週疲弊した身体をストレッチでほぐせたのでまた一週間がんばろうという気持ちになった。

インフラ作業

昨日からの仕掛り中の作業をテスト環境に反映させた。昼間は環境を壊してしまうとテストや検証作業を止めてしまうリスクがあるため、開発者や業務の人たちが使っていない時間を見計らって環境変更の反映や cdk の検証などをやりたい。必然的に土日も都合がよくて気付いたら2時間半ほど作業してた。

開発が遅れる空気

私は勘と経験で納期の1-2ヶ月前に開発が完了しないとわかるときがある。これまでなぜわかるのか自分でもよくわかっていなかった。便宜上「遅れる空気を読む」とでも言おう。私だけわかっても他者に伝えられない、もしくは伝えても無視されることが多かったので必要以上に指摘しないようにはしている。伝えて意図がわからない人たちにそれ以上言っても無駄だから。なにかしら条件があるのではないかと思い当たるところを書き出してみる。

  • チームメンバー (開発者) にタスクが遅れているという認識がない
    • 経験が浅いと見積もりの精度が低いため、全体像に対する進捗を正確に把握できない
    • シニア開発者がアドバイスしてもその内容を理解できなくて役に立たないこともある
  • 遅れている開発者が遅れを取り戻すための施策 (たとえば残業) をしない
    • 認識していないために残業しないから当然に遅れる
    • 認識していても残業を嫌う開発者は一切残業しない
  • 未知の問題や状況に対して「わからない」「困っている」といった報告をあげられない
    • 心理的安全性が低いと、無能だと思われたくなくて開発者が助けを求められない
  • マネージャーやリーダーといったスケジュール管理に影響力のある担当者が上位の意思決定者に事実ではなく自身の解釈を述べる
    • 例「このタスクは8割程度完了していて、あともう少しで終わりそうです」
      • 遅れているタスクはこういう報告が何度もあがる
      • 「いつ完了しますか?」と尋ねると予定日時を回答できない
  • マネージャーやリーダーが技術に疎く、実務担当者の言うことをそのまま受け入れる
    • 経験が浅い開発者の見積もり精度は低いため、大きく計画が狂うことがある
    • 私はソースコードを読んだ上でこの実装では品質基準を満たさないと判断したりしている
  • 上位の意思決定者と現場のリーダーとの人間関係が希薄だと建前の報告になる
    • 心理的安全性が低いと、現場の機微やもやっとしたことが共有されない

こういう空気を私は読んでいて、あるとき「この開発はもう間に合わないですね。」といきなり上長に言い始める。周りはまだ日程に余裕があるのになぜ?とびっくりする。開発って日々の積み重ねなので、日々の活動が正しい努力になっていないと1-2ヶ月後に成果が出ないというのは私からみたら自明だという話し。

jjug の cfp に応募した

0時に寝て5時に起きた。

ストレッチ

今日の開脚幅は開始前161cmで、ストレッチ後164cmだった。先週とあまり変わらずといったところ。今日は腰の張りが強かった。トレーナーさんは左の張りが強いと言ってたんだけど、私は右の方が体感的に張りが強いように感じた。もう1年以上担当してくれたトレーナーさんが4月いっぱいで転勤になるらしい。社内制度で広島に最低でも半年間は転勤になるという。広島が終わっても神戸に戻ってくるとは限らず、また別の地域へ転勤になる可能性もあるという。きっと優秀な社員だから転勤するんだろうなと思えた。20代後半ぐらいの若もので個人でも筋トレが好きでボディービルダーの大会などにも参加していると聞いた。趣味と業務が近いのでトレーナーとしてのパフォーマンスも高いのだろうと推測する。若い人はなんでも挑戦して経験した方がよいと私も応援した。5月から後任で別のトレーナーに変わる。新しいトレーナーさんに変わることで前のトレーナーさんとの相対評価もできる。これはこれで楽しみでもある。

JJUG CCC 2022 Spring の cfp 応募

本当は締め切りが先週末だったんだけど、募集期間が1週間伸びたのでちょうど作ったばかりのツールで応募してみた。今回はオンラインイベントなので事前にビデオを撮って送るらしい。当日は質疑応答の時間 (10分間) だけオンラインで参加すればよいという感じ。地方在住で物理的に東京に行けないという開発者にも発表しやすいと言えるかもしれない。内容的には初心者向けなので GitHub Actions というネタがいまどきどのぐらい参加者の関心を集めるか、他のプロポーザルとの競争がどのぐらいか次第かな。

生田川公園のお花見予定

cfp を投稿して14時頃に気分転換がてら生田川公園に再訪した。今日は絶好のお花見日和なのでどのぐらい人がいるかを調べるために行ってきた。昨日の夜よりはたくさん人がいて、そこそこ賑わっていた。だいたいの桜の木の下は集団にスペースをとられていた。とはいえ、お花見をするためのスペースが全くないというわけでもないのでよい場所を気にしないなら普通に10人ぐらいの集団でお花見はできそう。個人的には川に入って川遊びしているのが楽しそうにみえた。公園管理者に怒られないならちょっとやってみたい。

帰ってきてから 三宮.dev のすみよしさんと連絡をとって4月10日(日) 11:00 - 16:00 で開催することに決めた。来週中には大半が散ってしまうかも?だけど、実際にやってみてイベント開催の経験値を積むリハーサルの意図もある。bizpy はもはや全く神戸のコミュニティではなくなってしまったけれど、またいつか盛り返す可能性もあるかもしれない。その日のために素振りはしておきたい。

お花見の場所探し

0時に寝て5時過ぎに起きた。

spring framework の脆弱性対応

起きてタイムライン眺めてたら spring framework の脆弱性の公式アナウンスが出ていたのですぐに準備してオフィス行って7時前から脆弱性対応の作業をしてた。

大学の研究室にいた頃、root staff と呼ばれるシステム管理者をやっていた。研究室のネットワークをすべて freebsd で自分たちで構築していたので os の脆弱性が公表されると研究室のすべての os のパッチ適用をやっていた。具体的にはパッチの当たった kernel をビルドして再起動するといった作業。

それを2年間やっていたせいか、脆弱性情報が公開されるとすぐに対応する癖みたいなものがついた。7時前から作業して検証して7時11分に PR を作成した。レビューアは誰も作業を始めてないけど。金曜日は非稼働日なので私が作業しなくてもよいのだけど、ここまでやったら安心して他の作業に移ることができた。

生田川公園の桜

地元のコミュニティでオミクロン株の感染が落ち着いてきたのでリアルお花見をしたいねという話題があがっている。私自身、お花見に毎年参加するような人間でもないけれど、たしかにコロナ禍になってからはお花見やってないだろうし、個人的にも数年はお花見やってないからやってもいいかなという気持ちにはなった。近場だと 生田川公園 という場所があり、特筆するほど桜がとてもきれいという場所ではないが、一応は桜があって、お花見するスペースもあって、形としては成り立つようなところ。お仕事を終えてから自転車で開花状況を見に行った。19時頃に行って寒くても何組かはお花見している集団はいた。開花状況は7-8割といったところかな。今週末から来週にかけてぐらいが見頃だと思う。

まん延防止等重点措置解除後の飲み会

0時に寝て2時に起きて5時に起きた。日中は昨日から着手したカスタム github action の開発をしていた。

ストレッチ

今日の開脚幅は開始前161cmで、ストレッチ後165cmだった。今日は右股関節の違和感と左の腰の張りが強かった。今週は少しだけストレッチをやった。お仕事が落ち着いてきて次の課題への谷間で気力が削がれていてメリハリがなくなっている。また生活を見直しつつ運動やストレッチに時間を割くようにしていきたい。

会員制バーで雑談

1月に行って からの再訪。前回はまん延防止等重点措置が実施される前だったのでお客さんはうちら2人だけだった。今回は解除された直後だったせいか、うちらの他に4人お客さんがいた。バーのマスターと友だちというわけではないけど、同じ経営者として経営がうまくいくといいなと思ってしまうのでお客さんが入っていると嬉しく思う。地域コミュニティを主催しているすみよしさんと一緒に行ってきた。今回はコースではなく、適当に料理も頼みながら普通に飲んでた。電話で予約をとったときに食べものについて確認したせいか、マスターも気をきかせて前菜を用意してくれていたみたい。前菜とパスタとおつまみでわりとお腹がふくれて、あとはお酒を飲んでた。

すみよしさんとは2020年から勉強会に参加したりしていたのでもう2年ぐらいの付き合いになる。わりと仲良くなってコミュニティの在り方とか、神戸界隈のベンチャー情報とか、新しい技術のあれこれとかを話したりしている。飲みながらざっくばらんにそういった雑談をしていた。

カスタム github action 開発に着手

0時に寝て6時に起きた。

歯科検診

3ヶ月ごとの定期検診。本音は行くのが面倒くさいのだけど、こういう機会がないと検診に行かないので健康のためと思って通い続けている。基本的には30分強ぐらいで歯の掃除?みたいなことをやるだけ。下の歯の親知らずをまだ抜いていなくて、歯磨きでは届かないスポットがあって、そこが虫歯になりやすいのかな?3ヶ月に1回は掃除してもらえるのでたぶん役に立っているのだろう。今回は前にレントゲンをとって2年経ったので取り直ししましょうということで歯のレントゲンもとった。この歯医者さんにきてから2年経ったんだなということを実感した。よい歯医者さんだと思っているのでこれからも通うだろう。

カスタム github action 開発

前からやろうやろうと思っていて、他のことに時間を割かれてできていなかったことに着手した。久しぶりに gradle を触ったら使い方や設定方法を忘れてしまってドキュメントを読みながら再入門した。1つのアプリケーションであってもマルチプロジェクト構成がデフォルトになったみたい。これによってディレクトリの階層構造も変わっている。

今日のところは gradle 設定と main 関数と config のコードだけ書いた。java のバージョンも17を使うことにした。週末にある程度動くものを作りきれるかどうか。着手するまでが一番時間がかかので着手すればすぐにできそうな見通しはある。

workrooms 雑談会をした

0時に寝てたぶん夜中に起きて7時に起きた。

映像研には手を出すな

先日から 見始めて1週間ぐらいかけて12話を見終えた。個人的には4話の そのマチェットを強く握れ! がよかった。最初の4話をみて、この物語の演出や構成の仕組みが理解できて、その後の話しもみてみようという気になった。4話がおもしろかったから8話と12話も期待したんだけど、4話が私の中で一番はまった分だけ、8話と12話は期待し過ぎになってしまった。別におもしろくなかったわけではない。パブリック・エネミー という言葉が出てきて、こんな言葉を使ったことないし、人生で1度は言ってみたい言葉だなと思った。よくよく考えたらクリエイターって既存の価値観に捕われず新しい価値観を創造するのだから、それは従来の価値観や秩序をよしとする人たちからみたら秩序の破壊者にみえることもあって、クリエイターをパブリック・エネミーと呼ぶのはそれほど的外れでもないかもしれないなとか思ったりもした。

ストレッチ

今日の開脚幅は開始前161cmで、ストレッチ後162cmだった。今週もまったくやらなかったので先週より数値が悪くなった。そろそろ暖かくなってきたし、お仕事も一段落ついて落ち着いたので新たに生活のスタイルも変えていきたいと思う。そうやってさぼっていても週に1回はストレッチを受けられて本当にラッキーだと思う。

workrooms 雑談

てらださんが週末は暇だから Horizon Workrooms をしたいと話しているのをみかけて参加してみることにした。workrooms のよいところの1つとして、現時点では仮想空間内でパソコンを扱い難いので内職をしないことがあげられる。私はもはやパソコンを持ち込まないようにしていて、その場での会話に100%集中している。これが普通のオンライン会議ツールだと、自分が関心のない話題なら個人の作業を始めたり、外部とのインタラクションがあったりするとそれに反応したりする。そういったことをしないためのツールとして workrooms がいいなと思うところもある。これはただの運用の話しだけど。

workrooms で2時間ほど4人で雑談した。メタバースや仮想空間の技術への取っ掛かりの1つとして workrooms を始める人が私の周りでは少しずつ増えていて、徐々にメタバースに関するなにかは盛り上がっていくのかもしれないという雰囲気も出てきている。私の場合、月に1-2回は workrooms で雑談会をするようになってきた。私もただのユーザーではなく、なにかしらツールかコンテンツを作ったりする方に行くべきかもしれないけど、まだまだ他の現実のお仕事でできていないことが山ほどあって傍観している程度。