Posts for: #2024/11

sveltekit の base path 設定

昨日遅くまで作業していたせいか、体調があまりよくなくて19時でお仕事を終えて帰って休んでいた。21時過ぎにはベッドに入って寝てた。

base path 移行とビルド

リバースプロキシのルーティング検証 を終えて path based routing を採用することに決まった。そのため、nginx の設定にあわせて sveltekit の ui の base path を設定し直し、テスト環境にデプロイして検証していた。デプロイ先の制約によって base path が変わるというのはよくある状況なので sveltekit も Configuration pathssvelte.config.js に base path が設定できるようになっている。当初は環境変数で切り替えできるように設定して修正したものの、実際にビルドしてコンテナでテスト環境へデプロイしてみると有効にならない。adapter-node を使ってビルドしたソースコードを調べてみると svelte.config.js に設定した値がリテラルで埋め込まれていることがわかった。node.js サーバーの起動時に環境変数などを参照して動的に設定することはできない。次の issue が登録されている。

ビルド時にパスを固定にしないと、他のスクリプトソースやアセットの管理で煩雑になるところがあるのだろうと推測する。本当は環境変数で起動時に動的に変更できると、お客さんの環境にあわせて base path の値を変えたりもできるが、現状ではこちらが決めた値を固定で使ってもらうしかないことがわかった。

休み明けの残タスクに追われた

前日は十分に休みつつも夜遅くまで事務手続きをやって週始め。昨日作った請求書を送付して会計処理もした。

法人税の中間申告 (続き)

税務署からの通知は 自治体のそれから約1ヶ月遅れて 届く。朝からお手伝い先の社内で管理している gitlab サーバーに接続できない。障害が発生していたようで復旧するまで1-2時間ほど隙間時間ができた。その間に e-tax で法人税および地方法人税、それから消費税の中間申告/納付をした。eltax と比べて e-tax の中間申告は手順が少なくて簡単にできる。いまシステム移行しているようで、古いシステムと新しいシステムの全く違う UI を行き来する、めちゃくちゃな UI の違和感さえ我慢すれば簡単に手続きできた。

先週分の残作業や溜まっていた issue の整理

先週の金曜日をお休みしていたマージリクエストをレビューしたり、修正済みの issue をメンバーに検証してもらっていたところで修正漏れがあったりして fix した。その過程で仕様を変えたりもしたのでテストケースも修正したりした。週初めで元気があったせいか、作業の区切りも悪かったせいか、早くお仕事を終えて日記を書こうと思っていたのに21時過ぎまでやって疲れてしまって、すぐ帰ってそのまま寝てた。

疲労回復のための余暇

朝から起きていたものの、開発合宿疲れのせいか、起き上がる気力がなくて夕方まで家でのんびりしていた。お腹が空いて外へ出掛けたことをきっかけにそれから活動していた。イベントは楽しいし得るものも多いが、その疲労も確実にくる。前回の開発合宿は忙しい時期に休みもなく 精神的に疲弊した 記憶がある。こうやって書いておくと当時の様子を思い出せるので日記を書いておくと役に立つ。今後も開発合宿のようなイベントの後に休日がある日程を設けていく。今日のバドミントン練習もお休み。

経費の精算

夕方からオフィスで経費精算をしていた。11月に入ったのでお客さんへの請求書も発行していないことに気付いて請求書を作ったりしていた。11月1日にお休みをとったから忘れていた。その後に開発合宿の経費の整理をいろいろやってた。今回は約15万円ほど会社の経費を使ったことになる。予算通りではあるが、改めて精査してみるとインフレの影響で食費や宿泊費のすべての値段が上がっていることを実感する。

バドミントンの予定登録

エアバドミントンの予定登録、磯上体育館の抽選確認/確定、中学校体育館の予約、冬期スポーツ教室 の申し込みなど、バドミントンに関する予定の登録などを行った。自分のモチベーションコントロールが難しくなっていて、ゆっくり休みたいという気持ちはありつつも、なにも予定を入れないとただだらだら過ごしてしまうという懸念もある。バドミントンは今後がんばりたいのでどんどん練習の予定を入れてしまう。

秋の城崎温泉の終わり

昨日で大雨が過ぎ去って朝から快晴だった。近くの公園へ行って3人でバドミントンの打ち合いを30分ほど軽くやってみた。せっかくバドミントンの道具を持っていったので少しでもみんなで出来てよかった。

朝からお風呂へ行ったり雑談したりお土産を買ってきたりしながら11時にチェックアウトする。行きと同じ参加者と2人で帰路につく。時間があるので篠山城跡に寄り道してから神戸へ帰ってきた。周辺でお昼ご飯を食べてから篠山城跡へ行ってみる。11月3日は文化の日なので美術館、博物館、資料館などが無料拝観になったりするらしい。篠山城大書院 も無料公開されていた。初めて入ってみた。大書院 (おおしょいん) と読む。中は広くて資料展示や10分ほどで歴史のダイジェスト動画を流していた。明治の初期には篠山県と豊岡県があったんやというのも初めて知った。

明治4年(1871年)7月14日の廃藩置県により篠山藩は廃され、篠山県となる。さらに同年11月には篠山県も廃され豊岡県に編入、明治9年(1876年)8月には兵庫県に編入された。

wikipedia:篠山藩

常設展示かどうかはわからないが、有志の方が手作りでつくった戦国武将の甲冑が展示されていて見事だった。写真を撮っていいのかわからなかったが、ダメとは書いてなかったし、本物でもないからいいかなとおさめてきた。

帰りの車の中でも政治や課題管理など、いろいろ雑談しながらゆっくり帰ってきた。途中、2箇所で渋滞につかまった。車のナビ通りにいくと渋滞になっているところを google map で回避できるルートを使うとうまく抜けられた。みんな車のナビをみて移動するから同じルートで渋滞になってしまうのかもしれない。google map はリアルタイムで利用者が投稿した渋滞情報を更新しているようでそれを参照して迂回ルートを提案しているらしい。渋滞に捕まりそうなときは車のナビではなく、助手席で google map のルート検索をしてもらうとよいことを学んだ。同乗の参加者を神戸空港まで送り終えて今回の開発合宿を終えられた。

今回は私の準備不足でなにも出来なかったが、無事にイベントを終えられてホッとした。家に帰ったら疲れてなにもする気がなくなってそのままぐったりしていた。イベントをやっているときはスケジュールをこなすことに必死だけど、終わりはいつも達成感と、物足りなさや反省に加えて寂しさも混ざって複雑な心境になる。

秋の城崎温泉の中日

居間で1時半から6時頃まで寝てた。今日のバドミントンは雨天中止。朝から大雨、河川洪水、土砂災害警報と出ていた。雨も夜までずっと降り続いていた。

起きてから昨日、移動途中のサービスエリアで買っておいた丹波黒枝豆を茹でてみる。大粒で少し甘みがあっておいしい枝豆だった。普通の枝豆とは少し趣が違うようなのでお土産にもよさそうに思えた。おやつ代わりに茹でた枝豆を食べていた。

その後、午前中に雑談しながら発表資料を作り終えた。今回の開発合宿は余裕がなくてすべてにおいて準備不足だったが、そのうちの大きな反省として発表資料を事前に作らなかったことがあげられる。きのいえにいると、なんやらかんやら周りと雑談して盛り上がるので自分の作業がまったく進まない。ワーケーションは「余白」が大事になる。普段話さない人たちと雑談するためのイベントでもある。

お昼頃に マルサン精肉店 ですき焼き用の但馬牛を買いに行く。店員さんと話しながら1人200gを基準に購入する。但馬牛のリブロースを200g、鹿児島産の赤身肉を100gとした。但馬牛はとてもおいしかったが、リブロースの霜降りの脂身があるため、量は食べられない。実際に食べてみた所感としてはリブロースを150g、赤身肉を100gでよかったと思える。足りないよりは余る方がよいのでこのぐらいは許容範囲と言える。お店では陳列棚にお肉を並べていなかったため、100gの単価がわからなかった。私の先入観でお肉はそう高くないだろうと考えていた。実際に買ってみたらリブロースが3000円/100g、赤身肉が1900円/100gだった。先に値段を聞いてから他の部位とも調整して買うべきだった。インフレしているのもあると思うが、5人分のお肉の料金が8人でカニを購入したのと同じぐらいの金額になってしまった。失敗。

午後からまた別のお風呂へ入りにいったついでに かみや民藝店 さんの前を通りかかって入ってみた。陳列されている麦わら細工を見学してからオーナーさんに話しかけてみた。この麦わら細工を作っているのは日本で城崎温泉と伊勢の2箇所しかないらしい。昨年、お土産に麦わら細工のストラップを購入してから気になっていた。

お土産を買ってきてから、うちの会社のロゴは幾何学模様だからこの麦わら細工で作れないかと考えていた。うまくできればオリジナルな会社のノベルティになるのではないかと。オーナーさんに聞いてみたところ、うまくできるかどうかは実際に作ってみないと分からないものの、特注のようなものも引き受けているという。基本的にすべて手作りで作るため、既成品を作るのも特注品を作るのも手間暇はあまり変わらないらしい。

  • カスタムメイドの追加費用はない
  • 最低発注数のようなものはない
  • 納期は急いでいないからいつでもよい

1つ2500円前後で作ってくれるという。まず試作品としてうちのロゴの色違いで2つを作ってもらうことにした。それをみてから実際にノベルティとして発注するかどうかを決める。麦わら細工でノベルティの試作品交渉がうまくいった。

晩ごはんに関西風のすき焼きを作って食べる。まず肉を焼いて溶き卵でそのまま食べる。焼いて食べるときのインパクトは大きい。よいお肉だったのもあっておいしかったと思う。焼いて食べた後は普通に煮込むすき焼きを作る。最初に焼いて食べるお肉のインパクトが大きかった分、煮込んで食べたときの印象が薄くなってしまう感じがした。2回に分けて鍋を作ったが、最初は野菜が足りなくてすき焼きに煮込む水分が少なかったように思えた。鍋いっぱいの野菜を多めに入れてから煮込むとよさそう。

晩ごはんを食べ終えてから2日目の親睦会に入る。3人で発表していく。私はこの10ヶ月間の運動や体重減やバドミントンを始めた話しをまとめてみた。準備不足もあって単体と経緯をまとめただけでなにを伝えたいか、よくわからない発表になってしまった。はらさんは「ロールモデルを歩く」という主題で自分がなりたい人に、自分がなっていけるような生き方をしていくという話しをされた。それを聞いていて参加者からこれからは「風の時代」になっていくとか、経済的な価値よりも精神的なつながりを大事にする価値観が重要視されるのではないかといったコメントもあった。60歳になってものづくりをしている人は周りからみて迷惑になっているのではないか?若い人たちからみて年配の作る人は迷惑ではないか?50代になると受託開発の単価が下がる問題への対応。40代のうちから単価をあげず最初から高くないから下がらないという戦略もある。

私がいま独立して会社をやっている理由を端的に表すと「組織に馴染めない」ということがあげられる。それについても聞いてみた。

  • ai を相手に話せば、若い人に迷惑をかけずにやり取りできるのではないか?
  • 老化しないための研究が発展して不老不死のような状況もみえてくるのではないか?
  • 50代になると選択肢がなくなっていく
    • サラリーマンとして我慢してやっていく
      • その生き方も強いと言える
    • 組織と折り合いをつけられているならそれは能力の1つと言える
  • 50代で潜伏していた人はあまりいない

発表を終えて、0時ぐらいから知人のトラブルプロジェクトの話しを聞いていた。自身の経験則から私ならどう考えてどう行動するかと考えながら雑談していた。抜本的に改善しないといけない状況だが、プロジェクトの状況からどうにもならない、かなり高い確率で失敗の未来がみえている。雑談をしていて課題管理や業務の教え方について思うことが出てきたのを、忘れないように書き殴っておいた。この話しをできただけでもこの開発合宿は価値があった。

  • 若いメンバーは「わからない」「できない」が言えた時点で正しいとする

    • そこから先の問題を表現する練習を積み重ねる
    • これは文章でやり取りするよりも、口頭で話しながらできるようになってもらう
    • 専門用語が出てくれば、なにが/どうわからないかを短文で説明してもらう
      • その後に具体的に論理を説明しながらわからない内容を長文で説明してもらう
  • 問題の本質を理解するための問答ではなく、私が言ったことを理解するための問答になっていた

    • 文章で指摘した方が後で読み返せて調べられるし、証拠も残ってよいだろうと考えていたが、人によってはそのやり方が最善でもなかった
    • 口頭で問題の本質を確認したり、相手が何を理解出来ているかを質問して考えてもらう時間をもっと取るべきだった
      • 教え方・教わり方に個人差がある
        • 文章だからわかりやすいとか、口頭だから曖昧になるというわけでもないことを学んだ
  • プロダクト開発のコアな役割を担ってしまうと品質をとるか、成長を促すかのトレードオフに直面する

    • 私の価値観ではプロダクトの品質をあげる方を選んでしまった
      • プロジェクトに入る前にお客さんにどちらかの2択を決めてもらう
        • メンバーの成長を優先か、プロダクト/プロジェクトの品質を優先するか
          • お客さんが選ばなければ、逡巡と葛藤の結果、最終的に私は品質を優先する
  • 業務の進め方が一定水準に満たないメンバーをどう対応するかa

    • コードレビューならマージしない、やり直しをしてもらうスキームを作るべきだった
    • 最初からうまくできるわけはないから、やりながら慣れていってもらうことを優先して導入を甘めにしてしまった
      • 問題の本質を理解できていないようにみえても指摘したことを修正したらマージしていた
        • 問題の本質を理解するよう促したり、モブプロしたりしてもっと時間をかけて基本を指導して最低水準を設けるべきだった
        • もっと話して時間をかけてゆっくりしっかり指導していくべきだった
          • 最初に業務を遂行する上でのスキルの基準を示すべきだった
  • リーダークラスのできる人、チームを相手に課題管理を教えるのか、新人や経験の浅い人たちも含めて課題管理を教えるのかでやり方が異なる

    • 前者はみて学んでくれる
      • 実践しながら勝手にできるようになっていくのでプロジェクトが進む
    • 後者は成長を主目的とする
      • 品質や機能開発を停滞させても業務の進め方をしっかり指導することが中長期的に大事になる
  • 課題管理のビジネスをする上でマネージャーとして実践的に入るのはよい

    • 終わりのスキームを最初から作っておく必要があった
    • マネージャー (&遊撃) でプロダクト開発のコアな役割を担ってしまうと抜けられなくなる
      • クロージングをどうすればよいかを悩み始めた
      • 課題管理の OJT を実践的に1ヶ月で終えられるようなコンテンツづくりやノウハウのパッケージングをしていく必要がある
        • 現状ではうまくいけば半年、そうじゃなかったら1年ぐらいかかる
    • プロダクト開発の初期で私からメンバーにマネージャーを移行するスキームを作っておく
  • マネージャーは厳しいことを指摘しないといけない

    • なぜ厳しいことを指摘するのかの背景や理由を説明できるようになる
    • 厳しいことを言っても人間関係を崩さないだけの人間力も必要になる

秋の城崎温泉へ

1時前まで資料作りをして2時過ぎに寝た。神戸から城崎温泉まで3時間もあれば着くことはこれまでの経験でわかっていた。三ノ宮で8時半に待ち合わせてして出掛ける。出掛けていろいろやってたので今日のバドミントン練習はお休み。

開発合宿へ出掛ける

今回は一緒に車で移動するのは1人だけ。レンタカーを借りずに社用車で出掛ける。8時半に待ち合わせして9時半頃に 西紀サービスエリア で休憩。丹波産の黒豆は使っていないらしいが 黒豆せんべい を買ってみたらおいしかった。また今度買ってみようと思う。その後、出発したもののナビの案内がおかしい。中継地点として西紀 SA を設定していたため、出発した後も西紀 SA へ向かうようなループした案内になってしまった。中継地点を通過したことを登録するか、ナビのルート案内をやり直す必要があった。失敗。あとナビの目的地を城崎温泉駅にするよりも「但馬空港IC」のように高速道路の出口を指定した方が高速道路を使ったルート案内になるように思える。ナビの設定で回避できるかもしれないが、なるべく高速道路よりも下道を使うようなルート案内が行われてしまう。

やや運転トラブルはあったものの結果的には予定通りの11時半に きのいえ に到着した。スタッフさんもおられてそのまますぐにチェックイン手続してくれた。前回はクレジットカードの上限設定を超えて決済できなかった。今回は上限設定を見直していたので問題なく手続きできた。プロジェクターとの接続チェックで手間取った。wifi の接続先が 2.4g と 5g あり、プロジェクターが 2.4g を使っているためにラップトップも 2.4g に接続しないと接続できなかった。周波数をあわせないと接続できないというのを学んだ。

その後、12時半、14時半と電車や自分の車で来られた参加者と合流。今回の参加者は私も含めて5人。参加者が chromecast をもってきていた。プロジェクターに hdmi 接続で chromecast を接続し、chromecast はモバイルバッテリーから電源をとる。これで wifi 接続すれば、OS に関係なく chrome ブラウザなら画面共有できるようになる。ブラウザのタブ単体と画面全体のどちらでも共有できる。プロジェクターが提供する ios キャスト (airplay) やミラキャストは os ごとに設定を変えないといけないのでそれが面倒になる。いま chromecast は生産中止になっていて現行機種は Google TV Streamer になり、値段も16,000円とやや高い。このデバイスとモバイルバッテリーをもっておけば、開発合宿のような、不特定多数のラップトップで画面共有するときに便利なことを学んだ。

雑談しながら作業したり、お風呂へ行ったりしながら19時からイタリアンのビールレストラン GUBIGABU で晩ご飯にした。この時期はまだカニが解禁されていない。インフレのせいか、値段はやや高めになっていた。味はおいしかった。地ビール4種飲み比べ のメニューがあってそれぞれ飲んでみた。どれも特徴があって好みが分かれると思う。私は雪のビール (カニビール) が一番好みだった。最初の1-2品を頼んでみて量が少なかったのでそれからは2皿頼むことにした。5人という人数は料理の量やお皿を置く位置と席の配置が難しい。2皿ないとどちらか一方の端にいる人は料理を取れない。

21時頃に晩ご飯を終えて21時半から恒例の親睦会に移る。今回は初日に2人、2日目に3人と分けて発表してもらう。詳細は省くがおもしろかった。人数が少なくて時間も余裕があるからゆっくり雑談しながら発表内容についてあれこれ話しができてよかったと思う。人数が少ないから濃い話しや雑談になる。これは昨年よりも参加者数を少なくしたことのメリットだと思う。その後も作業したり雑談しながら25時半頃に寝た。私はいびきがうるさかったら申し訳ないから1Fで毛布にくるまって寝てた。暖房を入れておいたら寒くもなくよく眠れた。4時間ほど寝て1時間も深い睡眠があった。運転したり普段とは違うことをして疲れていたようにみえる。