来週の出張準備

1時に寝て何度か起きて6時半に起きた。気分転換も兼ねた非日常の小旅行を終えてまた元の生活へ戻していく。

ドキュメント書き

昨日の続き。ドキュメントの一部レビューをお願いしているところがあるので別のところのドキュメントを書いていた。その過程で ldap の anonymous bind の設定ができないような制御になっていることに気付いてその設定を修正したりした。ドキュメントを書いていてバグをみつけた。

近況報告の資料作り

四国から帰ってきたばかりなのに来週は東京へ行かないといけない。開発はほぼ完了しているのでなにも憂いはないが、出張のタイミングで大きなふりかえりや次の開発フェーズの要件の発散などもやりたい。そのための資料の準備がまったくできていないことに昨日の夜、気付いた。明日・明後日ぐらいで準備して、できるだけ事前に参加者に共有したい。いまは忙しくないのだけど、なぜか空き時間をうまく作れなくても毎日バタバタしている感がある。

今日は月例の近況報告の資料を作っていた。客観的に、このタイミングで私を契約終了としてもよいだろうし、私の感覚的には次の開発フェーズを3-4ヶ月みて、その後にチームのメンバーにこのプロダクト開発を委譲するといった段取りがよいのではないかと考えている。そういった話しも来週はしてくるつもり。長く残ったとしても今年度いっぱいが区切りとしてよいのではないかな。

家に帰るまでが旅行

実家へ帰って疲れていたせいか、21時過ぎから寝てしまって2-3時間ごとに起きて5時半に起きた。親はもっと早くから起きているからその時間から朝ご飯が出てくる。

ドキュメント書き

持ち帰ったばかりの机とバランスチェア を使って初めてのリモートワーク。とくに問題なく作業できたのでよさそうに思う。今日は早くお仕事を切り上げるために7時からお仕事を始めた。issue の対応を見守りながらドキュメントをまとめて書いていた。新規追加した機能やまったく違う仕組みに置き換えたものがあるため、ドキュメントの変更量が多い。

お昼にメンバーからも qa テストの完了報告が届いて、私も自分がもっている issue ではバグ修正もすべて終えていて、あとはドキュメントと最後の GA 向けのパッケージングぐらい。いつもそう思うけれど、終わってみれば順調に予定通り開発のイテレーションを完了できた。今回は機能開発に約3ヶ月、QA に1ヶ月の約4ヶ月のイテレーションとなった。開発の状況をみながらマイルストーン (2週間) を増やしたりもした。その程度の調整もした上で予定通りと言える。3ヶ月のイテレーションに対して、私がマネジメントをしていれば前後2週間程度のズレしか出ない。こんなの当たり前だと思うが、以前お手伝いしたスクラム開発でのストーリポイントでは2ヶ月の見積もりに対して4ヶ月を要した。見積もりがめちゃくちゃだったと言える。

帰路に着く

てらださんが鳴門から淡路島南 IC に15時30分に着くという予定を教えてもらっていた。そのため、15時にお仕事を切り上げて、迎えに行って、それから神戸に一緒に帰ってきた。

たこせんべいの種類

帰路の途中で たこせんべいの里 へ立ち寄った。津名一宮 IC のすぐ近くにある。おそらく私は行ったことなかったと思う。長居するような観光施設ではないが、立ち寄ってみたらそれなりにおもしろかった。てらださんの奥さんがたこせんべい好きらしくて、いろいろ教えてくれた。50種類ぐらいある。たこせんべいっていろいろ入っていることは知っていたけど、こんなに多くの種類があるとは知らなかった。たこせんべいの個別試食ができて、コーヒーも飲めて、工場見学して、お土産にせんべい買って帰った。16時半には出発した。

新神戸駅

快調に高速道路を走って、3号神戸線を迂回して7号北神戸線から神戸へ戻る。道中で若宮-芦屋間で渋滞18kmとか出ていた。いつものこと。てらださんに 3号神戸線のうんちく をたくさん語って満足。この日のためのネタだ。17時には新神戸駅に到着して送り届けられた。無事に旅程をこなせてよかったと私がほっとした。

小旅行の所感

てらださんがオープンセミナー参加のために香川県へ来られるという話しを聞いて、車も買ったばかりだし地元だから案内しようと考えた。その延長で LT 発表しようと思いつき、ある記事を翻訳したらちょっとバズって世の中の役に立ったのかもしれない。

私はなにも用事がなければ出掛けないことが多い。いまは基本的にずっと会社のお仕事をしているし、そんな毎日でも不満もない。だからこそ、なおさらこういった縁の機会が大事だとわかるようになってきた。てらださんが来られなければ、この3泊4日の小旅行はあり得なかった。そして 車中泊の経験 も得られなかった。新しいことを学ぶ機会そのものが尊い。旅程を通して関わってくれた周りの人たちに感謝したい。

これは昔はらさんからも助言をいただいたことを覚えている。私が交際費を年間で2-3万円しか使っていなかったときのこと。

放っておいて会社にお仕事が舞い込んだりしない。
いまのお仕事がずっと続くことはあり得ない。
将来のために新しい縁を自分から探しに行かない限り、会社を継続できない。

鳴門観光と車中泊のまとめ

1時に寝て6時前に起きた。あまり深くは眠れていないとは思うけど、車の中で眠ると途中で起きた気がしない。いつもより浅く長く眠れた気がする。今日はお休みをとってアテンドに徹する。

道の駅 くるくるなると

午前中はとくに用事がなかったので、どこかで作業できないかと考えてながら走っていてよさそうな道の駅をみつけた。まったく調べずにたまたま通りかかって寄ってみたらすごくよかった。食べものも独自メニューがあって、お土産もたくさんあって、外にはテラス席が設けられていてそこでパソコンを開いて作業をしていた。外のテラス席だと、電波1でぎりぎり wifi 接続できる程度。快適にインターネットをするのは厳しい。後になって 2F の休憩スペースがあることに気付いた。そこだと快適だったのかもしれない。

他人にお勧めできるかどうか、自分でも海鮮丼を頼んでみた。メニューより小ぢんまりしていて普通サイズではあるが、道の駅にしては十分においしかったと思う。

北灘漁協直送とれたて食堂

12時40分に鳴門駅でてらださんと合流してお昼ご飯を食べに来たところがここ。くるくるなるとも候補の1つだったのだけど、時間もあったし、私が相対比較したかったのもあって移動。10時にくるくるなるとで朝ごはんを食べたばかりでややお腹に溜まっていた。その分を差し引いて、この食堂の海鮮丼もおいしかった。価格帯が同じぐらいなので魚の品質レベルはどちらも大差ないように思えた。しかし、鳴門わかめのおみそ汁がついて、器が大きくて見栄えもよく、料理としての完成度はこちらの方が格上だった。相対的に他者にお勧めするなら断然こっちだなとわかってよかった。

うずしおの観潮船

15時40分の観潮船に乗った。塩の満ち引きだから朝と夕方の見どころの時間がある。残念ながらきれいに渦がまいているのはみえなかった。しかし、雨上がりで虹がかかっているのをみれたのでそれはよかった。うず潮は淡路島と徳島県の間にしかない自然現象になる。他でみれないという視点からお客さんがきたときに連れて行くのはよいと思う。それほどすごいものじゃないけど、ここにしかないという特別なものではある。淡路島からも福良から観潮船が出ているらしい。今度それも乗ってみようと思う。

2泊3日の車中泊の所感

行き当たりばったりで出掛けて初めて車中泊で旅行した。まったくなにも準備せず、普通のお泊りセットだけもって出掛けた。おかげで自分の無知と必要なものがたくさんわかった。

  • カーチャージャー
    • スマホのバッテリーがなくなると不安になるので必須
  • モバイルバッテリー
    • カーチャージャーは運転していないと充電できないため、車外でも充電できる安心感のためにあるとよい
    • カーチャージャーでモバイルバッテリーも充電しておけば、いつでもどんな状況でもスマホを充電できる
  • 拠点となる車を長時間駐車してもよさそうな場所の確保
    • 知らない地域では右往左往してしまうし、車は未知に迷うと小回りがきかないから疲れる
      • 拠点となる場所を最低限調査してから行くべき
    • 拠点の候補
      • 道の駅
        • 駐車場が広く24時間トイレを使える
      • スーパー銭湯
        • お風呂に入って疲れを取れるし長く休憩できる
      • 大きめのドラッグストア
        • やや郊外で駐車場が広い傾向があるから邪魔になりにくい
      • 駐車場の広いコンビニエンスストア
        • 道の駅が近くにないときの代替となるところ
  • エンジンを切ってエアコンがなくても過ごせる季節に行く
    • エンジンをかけていないとエアコンのコンプレッサーは動かない
    • アイドリングは騒音になるため、周りに民家などがあればマナー違反だという
    • 暑い時期さえ外せば、毛布などをもっておけばエンジンを停止して休める
  • 移動を急かされる焦燥感のようなストレスを受ける
    • ここにずっと居ていいわけではないため、居場所がないというストレスがある
    • ホテルで泊まるときのような、一息つくという感覚を持ちにくく疲労しやすい (と思える)
      • これはいくらかスーパー銭湯でリフレッシュできる

香川観光

2時に寝て車中泊して6時に起きた。初めて車中泊を試してみた。

車中泊の所感

エンジンをかけたたままエアコン入れてシートを倒して普通に眠れた。私は昔からオフィスで椅子を並べて寝たり、机に寄りかかって寝たりするのになにも抵抗がなかったから、車で寝ていてもまったく抵抗がない。これは宿泊費を削減できていいなと思えた。

カーチャージャーが大活躍

音楽を流しながら寝たため、朝起きて気付いたらスマホのバッテリーがなくなっていた。そっか。ホテルに泊まっていないと電源がないことに気付いた。これはやばい。慌ててセブンイレブンへ行って PD対応 カーチャージャー 20W USB-C×1ポート USB-A×1ポート KP132UCモデル を購入した。

要否に関係なく、私のような人間はスマホが使えないと不安になる。車中泊にとってカーチャージャーは必需品だということに気付いた。あとカーチャージャーから接続するには適度な長さのケーブルも必要になる。さらに保険のためにモバイルバッテリーも常備しておこう。たまたまほぼ放電してたモバイルバッテリーがリュックに入っていることに気付いて、カーチャージャーからモバイルバッテリーに充電して、機をみてモバイルバッテリーからスマホに充電するといった運用をしていた。これでほぼスマホのバッテリーを心配する必要はなくなって、この後の旅程も安心して過ごすことができた。

その後、多摩電子工業さんのオンラインサイトみていたら TKP147UCK なら type-c で 65W の電力を供給できる。これなら m2 macbook にも充電できるんじゃないかと思う。衝動買いで購入してみたのでまた後日テストしてみる。macbook のバッテリーも気にする必要がなくなれば、車中泊の運用の幅が広がる気がする。

朝風呂

6時過ぎに起きてお風呂に入ろうと思って 天然温泉きらら へ行った。お風呂もサウナも普通で特別に言及するようなスーパー銭湯でもないが (別に悪いわけではない) 、朝6時から開いているところがもっとも素晴らしいと言える。車中泊でスマホも macbook も放電してしまったため、充電も目的の1つにはあった。和室の休憩スペースに電源コンセントがあってことなきを得た。お風呂に入ってから1.5時間ほど充電しつつ macbook で作業をしていた。充電が溜まると安心できた。wifi も30分起きに接続し直す不便さだけ我慢すればフリーでは使えた。

鬼ヶ島 (女木島)

鬼ヶ島観光協会 へ行ってきた。スーパー銭湯で今日の行き先を調べていて、よさそうにみえた。まだ10時のフェリーに間に合うと気付いて慌てて準備して高松港へ向かった。お昼から雨の予報だったが、結果的に女木島から戻ってくるまで雨は降らなかった。

昼食のうどん

14時前に女木島から高松港へ戻ってきてお昼ご飯。てきとうに食べログを検索して 讃岐うどん えん家 といううどん屋さんに入った。実は昨日のお昼もここで食べて連日でやってきた。昨日のうどんがおいしかったので、また別のメニューを頼んでみようと寄った次第。駐車場がないところだけが懸念点かな。

泉谷アーチダム

うどんを食べてからだから15時前ぐらいかな?徳島県へ移動を始める。途中から雨も普通に降ってきて疲れた。雨振りだったのもあり、山道は怖く、ダム湖は汚れていた。私は高い所が苦手なのでダムの堤防の上から眺めるのも怖くて、苦労して行ったのにすぐに帰ってきてしまった。それが16時半ぐらい。

閉館前の会館

そのまま徳島市へたどり着き、たまたまみつけて 阿波おどり会館 へ入ってみた。17時はまわっていたと思う。施設の展示などはもう終わっていて、1F のお土産屋さんだけが開いていた。軽く眺めてみて、あまりパッとしなくて印象に残らなかった。

夜風呂

夜はやることなくて暇だったのでそのままスーパー銭湯の あらたえの湯 へ向かった。営業は深夜1時まで。連続してスーパー銭湯へ行ったため、相対的に比較してしまって、朝のきららよりもあらたえの湯の方が格段によかった。施設も大きく、お風呂の種類もたくさんあって、休憩スペースも広い。一言で例えると、リンスインシャンプーしかないのとシャンプーとリンスは別々といった格の違いがすべてという感じ。値段は同じきららが700円、あらたえの湯が900円 (土日祝料金) だった。私なら200円多く払っても後者かな。

土曜日だったせいか、高校生ぐらいの若い人たちが集団で遊んでいた。電源席もあいていて、もともとそんな減ってなかったが、余裕をもって充電しながら作業をした。20時頃から休憩スペースで作業して、22時で高校生は帰りなさいとアナウンスが流れて、それからお風呂に入って0時半には料金を支払ってスーパー銭湯を出た。

車中泊

連泊の車中泊。スーパー銭湯の駐車場にいても閉め出されることはなかったと思うけど、もしものときのためにすでに閉店しているドラッグストアの広い駐車場に移動してそこで寝てた。夜中雨が強くなってきて、車で寝ていると雨の音を聴きながら眠ることができる。私は眠るときに雨音とかもまったく気にならない。車中泊には部屋の中にいると忘れてしまうことを思い出させてくれるものがある。

久しぶりの異文化懇親会

22時頃には戻ってきたそれから準備したらよいところを、だらだらしてうたた寝して気付いたら2時になっていた。もうこのまま寝て朝起きてから準備しようと3時50分にアラーム設定して起きた。それからお風呂入ってストレッチして荷造りして5時18分に三ノ宮を出発した。

実家

6時21分に実家へ着いた。休憩せずに一気に帰ると約1時間ぐらい。先月ジモティーで譲ってもらっていた机とバランスチェアを実家へ持って帰った。朝ご飯を食べてからバランスチェアを組み立てる。ちょうど机と椅子がよい感じにリモートワーク可能な環境になった。

9時半頃まで実家でのんびり過ごして、言うても暇なので少し早めに香川県へ向けて出発した。

オープンセミナー

オープンセミナーとは、中四国地域で開催されている勉強会らしい。コロナ禍前はもっとたくさん開催されていたそうだが、いまは香川、広島、岡山といった地域で復活しているらしい。オープンセミナー2023@香川 に参加した。高松市の高松港の真横にある eーとぴあ・かがわ という行政っぽいコミュニティ施設のイベントスペースを借りて開催された。実家から10分休憩を1度取った上で約1時間30分で着いた。実家から高松市まで1時間半とみておくとよさそう。

てらださん:Pythonの現状からデータ分析やLLM活用への発展

てらださんの応援も兼ねて参加してみた。基調講演のような位置づけ。参加者の python 習熟度のレベルをみながら話す内容をあわせていた。

  1. あまり知らない
  2. ちょっと知っている
  3. がっつり使っている

最初は python の用途や得意・不得意といった、入門的な話しから始めつつ、徐々に最近の話題へと展開していた。

python の用途

  • システム系
  • web 系
  • データ分析や科学技術計算系
  • iot 系
  • 3d グラフィックス

苦手なこと

  • web フロントエンド
  • デスクトップ gui アプリ開発
  • 速度重視の低レイヤーの処理
  • 趙大規模なミッションクリティカルな分野の処理

python は年1リリース & 5年サポートになっている。

いまホットな話題として llm (large language model) がある。 私は chatgpt 以外のものはまったくわからないが、 oss で無料使えるツールや学習モデルがどんどん公開されているらしい。日本語に特化したものも出てきているみたい。

llm のツールチェーンを使って、任意のドキュメントに chatgpt のような質問で検索できるシステムの構築方法を紹介していた。 私が知らなかった技術として、インデクシングすると全文検索インデックスを作成する代わりにベクトル化をしてベクトル DB に保存する。 もっとも煩雑なところがドキュメントのベクトル化してベクトル DB に格納し、検索するときもクエリをベクトル化して、ベクトルの近似計算を行って検索結果を取得できる。 検索結果から回答の文章を生成するところを openai の api を使っているとのこと。有償なのでここだけお金がかかる。自前でやるには強力な gpu をもつマシンがないと処理が追いつかないといった話しだった気がする。 ai の学習モデルをホスティングするサービスとして Hugging Face というものが有名らしい。 github ではなく、なにかしらモデルを管理するときに都合のよいことがあるみたい。 web ui には streamlit を使っていた。私はまったく使ったことはないが、fin-py で紹介しているのを何度かみた感じでよいイメージをもっている。

NPO法人NEMTUS 松岡さん、後藤さん 「ブロックチェーン概要説明 & Symbolブロックチェーンの特徴・活用事例紹介」

NEM を広めるための NPO 法人らしい。ブロックチェーンの技術説明のスライドがめちゃくちゃわかりやすく作られていた。2人で発表していて、前半は技術的な解説、後半は事例紹介となっていた。事例紹介であちこちで使われているのはわかるけれど、その大半はブロックチェーンを使わなくてもできるものばかりだった。ブロックチェーンの特性が活きるアプリケーションはグローバルな仮想通貨のような用途以外にみつかっていないという気がする。既存の web 技術でもできるものをブロックチェーンに置き換えても、効率の悪さ (コスト高) をどうやってカバーするのかを説明しないのは不誠実なようにも感じられた。せめてスマートコントラクトを絡めて話さないと伝わらないんじゃないかと思う。

製造業 dx を意識したときの、iot 用 db 設計の注意点

会社名は公けに書かれていないから伏せておく。名前だけ聞くと、創業400年という、財閥系の JTC の会社の情シス部門のようなお仕事をされていた。工場の運用改善のために iot と社内システムをすべて内製/自前で構築しているという。工場から生データを収集し、それをデータベースに正規化して、分析して日々の業務の運用改善にあてるという、ストーリーは当たり前のもの。工場の売上は数千億円といった規模になるという。例えば4-5人のチームをアサインすると2000万円ほどの経費がかかるが、1000億円の0.1%を改善すれば1億円になるのでペイするという。そういった考え方で工場の運用改善をしているうちに、いまのチームは30人といった規模になったという。

事業会社で自分たちで技術を勉強してがんばっているようにみえる。発表のところどころの細かいところの認識が誤っていて、web のシニアエンジニアかアーキテクトがいれば、もっと効率のよいシステムを運用できるのになぁと思いながら聞いていた。あとで懇親会で詳しく聞いてみると、このチームは凄くてハードウェアまでカスタマイズできるという。基盤や回路まで自分たちで設計して作ったりもする。またメーカー品が自分たちの用途の機能を提供していなかったら、サポートを無視して勝手にメーカー品のハードウェアをカスタマイズして自分たちの用途にあったデータを取得できるようにカスタマイズしてしまうといったことも話していた。

ハードウェアの基盤開発から組み込みのプログラミング、データベース、web と1つのチームですべてやっているという。なかなかこれだけの技術スタックを1チームですべて一気通貫でやっているところはないと思う。web 技術のところではいくつかツッコミ所はあったんだけど、これだけの広い分野をみていると、それは些事だなとちょっと反省した。私が自分の得意な分野だけをみていい気になっていたような気持ちになって反省した。

懇親会で話していて、iot のシステムは基本的に安くて儲からないと話していて、しかし、ここに web システムを付けるだけで付加価値として売上の金額が上がるという。それは多くの iot メーカーは web に疎いため web システムを作れないらしい。ハードウェアと web の両方の技術に精通している会社/組織というのは意外に少ないらしく、iot + web が儲かるモデルとして話されていた。たしかに私は web に精通しているが iot はまったく分からないので納得感があった。

LT

これが私のお仕事の部分だけど、会社としてイベントに登壇してきた。マーケティング活動の1つやね。

懇親会

17時から懇親会で21時過ぎまで飲んでいた。私は車で参加していたのでソフトドリンク。知らないイベントの懇親会で、あまりよく知らない人たちと技術の話題でわいわい盛り上がるのは久しぶりで楽しかった。昔の it 勉強会はこんな感じだったなとコロナ禍の終わりも実感した。

懇親会の参加者には組み込みやハードウェアに詳しい方が何人もいて、私のような web 系の方が少数派でちょっといつもとは違ったメンバーで聞く話しもとても新鮮味があった。iot やハードウェアの話しにさっぱり付いていけなかった。web 系の勉強会やイベントにしか行かないというのも、一種のエコーチェンバーだなと実感した。

あと飲み

21時過ぎから23時まで、てらださんと飲んでいた。てらださんは酔っ払ってどんどん呑むんだけど、酔い潰れるみたいな状態にはならなくて、余裕があるのかないのかよく分からないけど、呑むペースが速いなと感心していた。コミュニティの話し、教育の話し、経営の話し、政治の話し、わりといろんな話しをして時間でお開きにした。

車中泊

その後、車を移動して、24時間空いているサウナで泊まろうと近くまで行ったものの、あまり外観の雰囲気がよくなくて、そのまま駐車場に車を泊めて車中泊にした。1時頃だったと思う。駐車場料金がホテル代のようなものになった。あとで調べたらアイドリングしたまま車中泊するのは、付近に家があると騒音がうるさいらしくマナー違反だという。歓楽街だったので周りは若者が遊んでいて、もともとうるさい場所だったと思うのでそれほど迷惑にはならなかったと思いたい。

お休み前の勉強会

22時に寝て24時に起きて2時に起きて4時に起きて6時に起きた。晩ご飯食べてからオフィスに戻る元気がない。本当は明日の出張に備えて今晩、実家へ帰ろうと思っていたが、まったく準備ができていないので明日の早朝に帰ることにした。

slog 勉強会

チーム勉強会向けに、今日は軽い話題として slog のブログ記事をピックアップしてみた。この内容を deepl で翻訳して社内の wiki に書いてそれをメンバーと共有した。

うちのプロジェクトの logger はすべて slog に移行済みではあるが、一部 slog を使う前に実装したログ関数があって、そのカスタムログ関数の移行だけまだできていない。アプリケーションの振る舞いには影響を与えないし、急ぐ必要もないので先送りにしているだけ。次の開発フェーズでカスタムログ関数周りもすべて移行して slog で万全の状態にしたい。そのための予備知識として slog でこんなことができるという全体像は理解できた。とてもよい記事だったと思う。

LT 資料の推敲

先日 LT 資料のたたき台 を作成した。いくらか寝かして週のどこかの空いている時間に推敲しようとずっと頭の中にはあったものの、現実にはさぼっていて前日に最終見直しをしている。でも、見直した方がよいところのアイディアは2-3個思いついてはいる。少し手直ししたら明日のイベントに備えて早めに寝る。

組織やプロジェクト横断的なメトリクスの視覚化

0時に寝て4時に起きてもう1回ぐらい起きて6時半に起きた。

もうすぐ期限がやってくる。私が担当している issue 対応はあらかた終わってメンバーに「大きいもので見落としある?」って尋ねて「ない」って返ってきたのでもうクローズに向けて調整していく感じ。今週末から月曜日と3日間お休みする (土日も含めて休むというのも変ではあるが) ので一安心。

dirsync 周りのリファクタリング

ずっとレビューが放置されていた。おそらくいま go-ldap のプロジェクトで最も活発なメンテナーが夏休みだったのではないかと推測する。昨日帰ってきたようで怒涛のレビューをされていて、私が3週間前に送っていた pr もレビューしてくれた。

概ね同意してくれて public な関数名をより適切な関数名に変えたところを、1度公開したものは互換性を維持するために deprecated のコメントをして残しておいてと言われたところだけ修正した。修正後、数時間ですぐにマージしてくれた。感謝。

go-ldap にいくつかコントリビュートした機能はうちのプロダクトのシステムに使われていて、それなりの qa テストをやった上で動いているので一定の品質は担保していると思う。直近1年間のコントリビューター を参照すると、私は2番目に貢献しているようにみえる。こういう見える化が自分のモチベーションになるならそれはそれでよいと思う。

組み込みの課題管理のプロダクトを作る上で、個人がみたいメトリクスを簡単に集計できるような機能を提供しようと考えている。それは自分が伸ばしたいスキルやプラクティスに対して、会社やプロダクトを横断的に計測できる仕組みがあるといいと私は考えている。とくにいまどきはプログラマーが転職するのは当たり前だが、転職したら前の会社でやっていたメトリクスがみれないとか、別の会社でのメトリクスと相対比較したいとか、そういうニーズはあるなと私自身が感じているからでもある。

go イベントのパネルディスカッション

mercari.go #23 Go1.21 パネルディスカッション オンライン開催 に参加した。視聴者が少なかったのか、youtube のコメント欄でちょくちょくツッコミもいれたら現場で拾ってくれておもしろかった。私が関心のあった話題を3つあげてみる。

gonew の提供

For a long time now, we have heard from Go developers that getting started is often the hardest part.

Experimenting with project templates

go で新規プロジェクトを始めるときにテンプレートからプロジェクトのレイアウトを作ってくれるユーティリティとして gonew というツールが公式から提供されたらしい。知らんかった。私も新しいリポジトリ作るときに標準的なものはファイルを基本コピペしているのでこういうのできれいに作れると嬉しいかもしれない。 

derrors の是非

pkgsite という pkg.go.dev というサイトのリポジトリの internal として実装されている derrors というパッケージがある。defer を使って必ず関数がエラーを返すときに wrap するという、ユニークな発想で実装されたツール。明示的なコードを書くという go の文化とはあわない気はするけど、ユニークな使い方ではあるのでおもしろい。

この延長でエラーが発生したときにレポートを生成する derrors のユーティリティもあったりする。google がやっていることだから、わりと開発者間でもこれと同じものを自前で実装する開発者が増えているといった話しも聞く。

go 2 はもうリリースされない

The answer is never. Go 2, in the sense of breaking with the past and no longer compiling old programs, is never going to happen. Go 2 in the sense of being the major revision of Go 1 we started toward in 2017 has already happened.

Backward Compatibility, Go 1.21, and Go 2

これまでの go の言語処理系の開発の中で非互換な変更について「go 2 で」とプロポーザルだったり、issue の議論で先送りされてきた。最近コア開発者の Russ Cox 氏が (現時点で) go 2 はもう出ないと宣言した。go は既存のプログラムをコンパイルできない状態で新しいバージョンを出すことはしない。この背景の1つとして、誰もがジェネリクスの導入で go の互換性は崩れると思っていたものが互換性を維持して導入できたことが大きいと思う。(現時点で) go 2 はもうリリースされないらしい。

openldap サーバーのデバッグ

1時に寝て3時に起きて5時に起きて6時半に起きた。あとひと踏ん張りなのでこのまま突っ切る。

openldap 2.5 の ldappasswd の振る舞い

openldap サーバーでパスワードを変更時の平文パスワードを連携するために カスタム overlay モジュール を使っている。前回の改修をしたときは openldap 2.4 向けのみの振る舞いを検証していた。今回は開発フェーズでは openldap 2.5 向けにもモジュールをビルドしてパッケージングしていた。その qa テストをしていて ldappasswd だけ、意図したパスワード連携が行われないという。

開発時に私が振る舞いを検証したつもりが ldapadd, ldapmodify は確認済みだったが、ldappasswd の確認をしていなかった。これは完全に私のミスで2つのフックポイントに対してカスタム overlay モジュールが動くのだから ldappasswd も大丈夫だろうと見通していた。しかし、そうではなかった。それぞれにフックポイントのコールバック設定があって、フックポイントもロジックが違うのだから当然ではあるのだけど、ちゃんと動作検証をしないといけないという、初歩的なミスをした。こんなこともあるんやと反省した。

gdb でデバッグしていて原因は 2.5.3 に含まれる次の修正だとわかった。私が検証していた openldap サーバーのバージョンは 2.5.14 だった。

簡潔に言えば、なんらかの不具合対応でもともと設定してあるコールバックを別のものに上書きしていた。カスタム overlay モジュールが設定したコールバックが別のものに上書きされてしまって意図した振る舞いをしないという現象が起きていた。これは明らかに openldap のリグレッションなので 2.5.15 で修正されてた。

たまたまピンポイントにバグを踏んだ形にはなったが、qa テストという別の人がテストをする仕組みでこのバグを検出できたことがうちの開発の品質基準を担保していることの表れでもある。

生きるということは嬉しいこと半分、辛いこと半分なのですよ。 采王

開発フェーズの完了まであと2週間

0時に寝て何度か起きて7時に起きた。オーバートレーニング気味で夜帰ってきてゆっくり過ごしている。

定例会議

次のマイルストーンでこの開発フェーズを完了させる。その最後の打ち合わせとなる定例会議。話題が多過ぎて、始める前から今日の会議は1時間におさまらないんじゃないかと話しながら始めて10分ほどオーバーして終えた。会議時間が私の感覚とも一致していてよかった (違う) 。

qa テストでいろいろ issue が洗い出されていて、その中のアーキテクチャや仕様の抜本的な見直しを検討するのが2つ、管理画面の ui/ux に関する設計の2つ、よいことではあるが、私の設計の目が及ぶ範囲を超えて issue が上がるようになりつつある。本当はフロントエンド向けに ui/ux デザイナーがいれば画面設計について委譲したいところだが、そんな人はいないのでチームで話し合い、私が方針を決めて暫定的に修正していく。

また致命的な issue は出ていないという私の認識から、次の2週間でこの開発は収束させるという合意を行った。やや qa テストや issue の収束は遅れ気味ではある。いまから慌てても大きく変わることはないし、このチームは十分に私の課題管理の慣習にしたがって作業しているので、このまま成り行きでもうまく着地できるんじゃないかなと楽観的には考えている。その感覚は過去の経験からも来ているのだろうけど、もうこの歳になると脳ができることを自動的に判断している気がする。できるとわかっているから不安や焦燥感といった危機を感じられない。悪い言い方をするとさぼっているだけという見方もあるが、そういう感覚をここ2-3年で実感するようになってきた。

会議が終わってから私は reflection 関連のバグを2つ直した。

週末遊んで月曜日を迎える

21時に寝て何度か起きて7時に起きた。決して夜更ししているわけでもないのにずっと疲れている感があって早めに寝ていた。それでさらにお仕事が溜まる。

qa テストとバグ修正

先々週から qa テストが始まっていて、私はあまり参加できていないけれど、上がってくる issue のトリアージや致命的なバグの修正、インフラ周りの不具合の修正などをしている。1つは1つは難しくない小さい粒度のものだけれど、他の issue との関連があったり、アーキテクチャや既存の仕様そのものを見直した方がよいものもあったりと、背景の調査に時間がかかっていて、思ったよりも「ちぎっては投げちぎっては投げ」といった対応は取れていない。issue の優先順位付けしようにも、先に解決しないといけない issue があったり、この仕様はそもそもおかしいとか、よいことではあるのだけど qa でみつかる issue のトリアージが難しくなっている。それだけメンバーのシステムへの習熟度が上がって精度の高い issue をあげられるようになってきたという現れでもある。私がまごまごしているのは紛れもない事実ではある。

LT 資料のたたき台作り

3時に寝て朝起きたものの、体調がよくなくて10時まで寝てた。朝ご飯をゆっくり作って食べてからお昼前にオフィスへ着いた。

昨日の翻訳の手直し

昨日の推敲途中で公開した記事 の手直しから行う。後半眠くなってしまいチェックできてなくて、先に公開しちゃえってやったらいろいろ不備があって直していた。どうせ誰も読まないだろうと思ったら、ぽつぽつアクセスが増えてきてお昼ぐらいにはホットエントリーになっていたかもしれない。午前中に読んだ人はひどい記事の体裁でごめんなさいという気分だ。

この記事はうちの会社の社内 sns にしか共有していない (たぶん知人もなにもしていない) のに、ホットエントリーになっているのをみて、本当によい記事ならほとんど宣伝しなくても勝手に広まるというのを実感した。私は基本的に sns をやめようと考えていて facebook 以外はほぼやっていない。facebook を年賀状のような使い方にしている。年に1回、私の近況を見にきた方が近況を分かるようにだけしている。あとはお仕事の依頼がたまにくるのでそういった人たちとのインタフェースとして置いておく。とはいえ、依頼がきても9割は断るしかないというのがうちの会社のいまの辛いところでもある。以前2つの会社のお仕事を掛け持ちして大失敗したため、色気を出さず、できないお仕事は受けないというのを徹底している。

LT 資料の作成

来週 オープンセミナー2023@香川 で LT してくる。そのための資料のたたき台を作った。課題管理に関する話題なので会社として発表してこようと思う。会社用のスライドテンプレートを使って2回目の発表となる。こういったマーケティング活動も、本当は昨年からどんどんやるつもりが、まったくお仕事がうまく進んでなくて後手後手後手といった状況。昨年は1年の計画のうち1割しかやっていなかった。

  • 貧すれば鈍す
  • 窮すれば濫す
  • 貧乏暇なし

こういう言葉が似合う。がんばってもがんばってもお仕事が終わらず、もしかしたら加齢でパフォーマンスも落ちているのか、モチベーションコントロールが出来てなくて集中力が低いのかもしれない。あと実家のいろいろも少しある。そんなことを言ってももうどうにもならんので、今年初めてのマーケティング活動なのでがんばって話してこようと思う。