Posts for: #2023/08

年一ゲストの podcast 収録

夕方に寝て晩ご飯食べてきて23時に寝て7時に起きた。起きてから podcast のネタ帳を書いていた。本当は前日の夜に書くと宣言したものの、夜は眠くて普通に寝てた。

mongodb のインデックス追加

テスト環境の履歴テーブルにドキュメントが135万件ほど入っている。管理画面の履歴一覧を表示すると、一覧がレンダリングされるのに約1秒かかるようになった。遅い。インデックスなしでフルスキャンしているのでデフォルトのソートキーのインデックスが必要なことはすぐに想定できた。実際に compass でクエリを explain で実行してみるとフルスキャンしていることと、どのぐらいの時間がかかっているのかを計測できた。

デフォルトのソートキーのインデックスを追加すると explain の画面で数十 msec かかっていた時間が解消された。ソートキーに対して自動的にインデックスが使われることもわかった。

管理画面からも数十 msec で一覧が表示されるようになった。私の感覚ではひと昔のデータベースは10万件を超えたら1秒ぐらいかかった気はするが、いまはマシンスペックもミドルウェアの性能も上がっているのでそれが100万件超になったんだなという印象。実運用だとすぐに発生する問題が普通の開発をしていると気付きにくくなる懸念があることを学んだ。

podcast 収録

お仕事を終えてから、年一ゲストとして出演している terapyon channel の podcast の収録へ行ってきた。本当は6月頃に出演依頼が来ていたのを、私がお手伝いしている開発のプレスリリースや事例紹介が終わってからの方が話せる内容が多くてよいということで延期してもらっていた。事例紹介はまだ公開できていないけれど、別に事例紹介なくても先方にうちの会社が手伝っていることを公開してよい許可はもらっているので podcast の中で話してもまったく問題ない。

昨日てらださんとたまたまやり取りしていたときに、せっかく東京に来ているのでオフラインで収録しては?と言ったらその方向になって、翌日即収録という行き当たりばったりやっつけ計画で話しが進んだ。非商用の podcast で話すのでそこまで品質に責任をもつ必要もない。19時半にてらださんの会社のオフィスへ伺い、20時頃から収録を始めて、なんやらかんやら盛り上がって言いたい放題言って、2時間経っていた。オンラインで収録するよりも、オフラインの方がずっと多くのことを短い時間で話せるように感じた。相槌うったり会話の掛け合いがしやすいので間が短い気がする。内容的にはちょっと話し過ぎで聞く人は疲れて最後まで聞いてもらえないかもしれない。その後、近くの居酒屋さんへ飲みに行って1時間ほど飲んで24時前にはホテルへ戻ってきた。楽しかったー。

てらださんの近況の中に llm を使ってサービスを開発するときに LangChain というツールがあって、これを使うと簡単にいろんな言語処理ができて楽しいといったことを共有してもらった。いまは触る余裕がないけれど、覚えておきたい。

移動と会議と眠気の日

1時から3時まで仮眠して、それから準備していつも通り5時15分に家を出た。なぜかお盆前なのに新幹線はめっちゃ空いていてパーソナルスペースが広くて車内で2時間ほど寝ていた気がする。仮眠したつもりだったが、やっぱり16時前後になると眠くて眠くてお仕事にならなくなった。夕方にホテルに戻って寝てた。新幹線の移動日はたいていパフォーマンスが悪い。

プロジェクトの進捗報告

出張したときの月例報告の9回目。前回の進捗報告はこちら

いつもは水曜日にやっているけれど、今回は先方の出席者の都合がよくなかったので火曜日に変更した。午前中にはチームでの定例会議をやっているので本日2つ目の会議。資料作り の中でも書いたけれど、開発がやや遅れてもう1つイテレーションをこなした上で QA を2つイテレーションするという計画を伝えた。スケジュールの前倒しするように言われる可能性もあるかなとは考えていた。しかし、とくに計画については何も言われなくて、私の想定する計画通りでよいかのように進んだ。メンバーにスキルアップしてもらう教育的な側面から時間をかけているところもあるので、そういった学習コストを容認するという判断だったのかもしれない。いずれにしても最後の締めに向けて懸念点はなく、いまはひたすらに邁進するだけ。その他、設計についての考え方やメンバーの育成について共有したりしていた。

設計の見直しとリファクタリング

2時ぐらいに寝て起きたかどうかあまり覚えていないが7時に起きた。あまり寝た気がしない。

エージェントアプリケーション開発

昨日の続き 。一晩寝かした甲斐があったのかどうか、意識的にはわからないが、少なくともつまづくことなく1つずつ設計の見直しや処理をパラメーター化していって一通りプロトコルの差異以外のところは整理できた。今日は自分のコードを書く余裕はなかったけれど、1日かけて既存の設計の見直しを終えられたことをうまくいったと自分で肯定しておこうと思う (他人からみたらそうじゃない可能性はある) 。

関数は1つの機能のみを実装して、入力しか依存関係をもたないようにシンプルにすべきという基本概念がある。その基本概念をちゃんと理解できていないと、設計のアンチパターンの1つとして、渡すパラメーターがどんどん増えていってしまうことに気付いた。まずは既存の処理やフローを変えずに設計を見直したのでそうなってしまっている。また後で時間があったら、インターフェースを明確にして根本的な設計を見直してもよいかもしれない。

真夏の休出 第1週

2時に寝て6時に起きてだらだらしてたらいつの間にか2度寝して9時に起きた。8月は開発の佳境なので基本的には土日を働く予定。

晩ご飯を外食して、夕方から NieR:Automata Ver1.1a というアニメが2期決定というニュースをたまたまみて、1期のコンテンツを見始めた。品質の高い作品だとは思うけれど、世界観 (設定) が私の頭の中のなにかとあわない。世界観の違和感や矛盾を受け入れ難いものがあって引っかかりを覚えるような作品だった。もともとゲームが原作らしい。人によって評価が分かれそうに思えた。

事例紹介のたたき台

先日のプレスリリース の続き。こういった会社の正式な文章を書くのは、その労力以上に面倒臭さが上回って後回しにしてしまう。簡潔な文章なので、過去の体裁やフォーマットなどをみながらやればすぐにできた。今回は私はマネージャーとしてプロダクト開発しているので、うちが作ったんよ的なノリでちょっと前のめりにプロダクト紹介をしてみた。私がもっている課題管理のノウハウを駆使して開発プロジェクトをうまくまわした工夫も書きたいところだけど、そうすると事例紹介と課題管理のプラクティスの話しがごっちゃになって訳の分からん記事になってしまう。事例紹介とは別に、今回の事例をベースに課題管理のプラクティスの記事を別途ブログに書こうと思った。他にもお客さん先のテックブログにも書かないといけない記事が2つ溜まっている。私は文章を書くのが遅いからなかなか捌けない。日記を書いて練習しているうちに早く書けるようにならないかな?と期待しているが、まだまだそんな予兆はみえない。

syncrepl を使ったエージェントアプリケーション開発

昨日のレビュー対応したものがマージされた 。それをもって自分たちのアプリケーションのコードを書かないといけない。以前に ldap の dirsync というプロトコル をメンバーが実装して、それを使ったアプリケーションのコードがある。その実装といくつか共通部分を再利用しつつ、プロトコルの違うところだけを追加できるようにしたい。既存のエージェントアプリケーションのソースを読みながら、どういう風に設計していくかのイメージを膨らませておいた。今日のところはコードを読んで頭の中に入れて考えるだけ。この状態で一晩寝かすと、寝ている間に脳が無意識に考えてくれて効率がよいはず。これは休日の時間のよい使い方だと思う。

go-ldap の syncrepl 機能のレビュー対応

1時に寝て何度か起きて7時に起きた。今週もよく働いたからバテバテ。

ストレッチ

これまでも慢性的に右足全般は悪かったのだけれども、今日は左足の張りがある (痛い) ところと右足の張りがある (痛い) ところが全然違うことに気付いた。トレーナーさんによるとさらに今日はいつもより上半身の腕も硬かったという話しだった。これから1ヶ月か、1ヶ月半ほどは開発の佳境で忙しくなる (座っている時間が長くなる) ので体調がよくなることはないと思う。今日の開脚幅は開始前155cmで、ストレッチ後158cmだった。普段通りなのでこの調子なら問題ない。

syncrepl のレビュー対応

先日のレビュー対応 の修正。通信プロトコルの処理を実装するには想定したパケット (byte 列) をデコードしないといけない。そのために誤っているとすぐに panic する。開発しているときは既存の処理の振る舞いと競合してあちこちで panic してデバッグが容易ではなかった。そこで既存処理とは分割して先ずは実装した。その後、プロトコルの仕様と対応するパケットを理解してしまえば、どこを直せばよいか把握できているので既存の処理と共存させることはとくに難しくなかった。私の先入観であちこち変更しないといけないのでは?と思い込んでしまっていたのをレビューアの指摘で気付くことができた。感謝。

これでレビュー対応を終えた。pr を送ってから2週間放置されていた。そこでレビューしてくれないかとお願いしたら2人のメンテナーがすぐにレビューしてくれた。これは 非同期検索 でのやり取りを経て私の信頼があがっていたためと思われる。この機能はお仕事の開発にも使う。ちょうどいま開発の佳境に際して花を添えるよいタイミングと言える。

進捗報告の資料作り

気付いたら来週は出張の週になる。月例報告のための資料を作っていないことに今日気付いて慌てて資料を作った。いまは開発の佳境の時期なので、開発方法論に新しいことを試しているわけでもないし、この1ヶ月のやったことの進捗を報告するだけ。内容は固まっていて資料を作るのはそんなに大変ではない。理想的なスケジュールだと9月上旬で開発完了を目指していたが、それは無理そうだと判断した。その次のイテレーションで完了できるように目指す。さらに追加でバッファのイテレーションももう1つある (と私が勝手に思っている) 。2つイテレーションを伸ばすと開発は1ヶ月の遅延となる。このぐらいのブレは私の中では許容範囲だけれども、一般の会社だと認められるのかどうか、開発マネジメントの機微によって分かれるのかもしれない。

人事を尽くして天命を

3時に寝て6時に起きて7時に起きた。夜更しして youtube の動画をみてた。今日も差分比較の開発というよりは、既存の id 連携の機能の調査を主にしていた。ms の azure の api とか、振る舞いが怪し過ぎて本当にひどい。

ホリエモンの動画

たまたまみかけて中野さんが出演していたから夜中にみてた。ホリエモンの動画に出ているのでいまやときの人って感じがする。中野さんによると、ビッグモーターの問題は1年前から取り上げていたらしく、さらにいま問題になっているのとは別の、営業の詐欺っぽい売り方 (中野さんは元営業らしい) に懸念を表明していたようだ。いま発生している問題は板金部門によるものなので、もしかしたら今後に指摘されていくのかもしれない。そして、たまたま本を書いていた時期と重なって出版もするらしい。この方の話を聞いていると、ちゃんと準備して勉強して、たくさん働いて、やることをやって、いまよい時を得たようにみえる。こういう働き方を私も目指したい。出版されたら本を買って読んでみようと思う。

syncrepl 機能の pr の続き

go-ldap への syncrepl の pr の続き。いまお仕事の開発に忙しくてまったくこちらのレビュー対応をする余裕はない。メンテナーのうちの1人が approve してくれた。もう1人はコードを一元管理できるようにしてほしいということなので週末にその対応をする。普通の検索と syncrepl を使った persistent search を同じコードで保守するのが本当に保守コストを下げるのかどうか、私はやや懐疑的なのだけれども、メンテナーから単一のコードですべてを管理したいという要望があるのでその意見自体には従うつもり。既存の処理に影響を与えないよう、またレビューしやすいように分割して開発して pr を送ったものの、それを1つに統合するというタスクが残課題となる。

社員の給与は最低賃金より高いのでは?

晩ご飯を食べるために20時頃に帰ってきて晩ご飯食べて21時過ぎからそのままだらだら寝てた。起きたら23時ぐらいであれ?と思ってその後も2-3時間ごとに起きたりもしながら寝てた。差分比較の開発が半分は過ぎたけれど、調査のコストも大きくてまだ継続している。

インフレ研究会

久しぶりに エンジニアのためのインフレ研究会 #7 に参加した。話している内容を聞きながら普通にお仕事してた。こういう軽い雑談を聞きながら作業をするのは気楽でよい。雑談の話題の1つに最低賃金の話しが出た。私の感覚では時給労働者だからアルバイトやパートのスタッフの給料があがるのが主なのかな?と考えていたけど、正社員にも影響あるでしょうという話しになっていた。

例えば東京だと1080円になるらしい。仮にこの金額で給与を計算すると 8 * 20 * 1080 = 172,800 円になる。学卒者の初任賃金 をみると、令和5年の学歴別初任給が次になる。高卒者の初任給も最低賃金よりは高く設定されている。

  • 大学: 212,500 円
  • 短大: 200,000 円
  • 専修: 200,000 円
  • 高校: 183,300 円

この統計が世の中のすべてではないのかもしれないけど、一般論として社員の給与が最低賃金より下回るといったことは起きないのではないか?と私は考えている。もちろんいろいろな税金を支払うと手取りはもっと低くなってしまうのはあるけれど、それはまた別の問題。

空調工事への期待

1時に寝て3時に起きて6時半に起きた。差分比較の開発をやってもやっても終わらなくていろいろ忙しい。

空調工事のお知らせ

先日の 暑さ対策委員会 の続き。

3週間前から運営会社に毎週電話してその後の進捗を聞いたりしていた。毎回違う担当者が出て、なにかしら調査や対応をやっている的な話しを聞きつつ、また来週に進捗を連絡しますと言われて、一度も進捗報告がきたことがない。3回無視されているのでそろそろ怒ってもいいんじゃないかと思っていたところ。ふとエレベーターの横に空調工事をするという張り紙があった。8月8日の夜間に「空調冷媒切替工事」を行うらしい。軽く調べたらエアコンの効きが悪化する原因の1つとして冷媒の機能不全はありえるらしい。調査してそのことが原因として判明したのか、疑わしいところだから試しに工事してみるのか、そういったことを先方から連絡してきてほしい。また3週間前には断熱のブラインドも導入すると言ってたのだけど、それは一体どうなったのか。8月8日はちょうど東京へ出張するタイミングなのですぐに検証することはできない。

プロダクトのプレスリリース

昨日は普通に帰ってきて晩ご飯を食べてそのまま休んでいた。23時に寝て何度か起きて7時に起きた。昨日の続き。まだ差分比較の開発を継続している。

プレスリリース

昨年の11月から開発しているプロダクトのプレスリリースが出た。4月末で1次リリースして、もうすぐ2次リリースになるタイミングなので2次リリースの機能をもってお客さんに出せるレベルになってきたという判断なのかもしれない。

なんにせよ、自分がやったことの成果がカタチとなってみえたことでちょっと嬉しかった。また近いうちに会社の事例紹介も書く。

ストレッチ

土日に実家へ帰っていたのでその代替として夜にストレッチへ行ってきた。19時40分からで私が最後のお客さんだった。開発の佳境で毎日忙しく机に向かっているのと、週末に実家へ帰ってなんやかんやで作業していたせいか、すねの外側の筋やふくらはぎの筋がぱんぱんになっていてかなり硬かった。今日の開脚幅は開始前151cmで、ストレッチ後157cmだった。あまり調子はよくなかったものの、いつもと違うリズムでストレッチへ行ったのでまぁいっかという所感。トレーナーさんにもう8月に入りましたねと言われて時間の過ぎたるの早さを感じる。