契約更新の打ち合わせ

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

契約更新

4月末が3ヶ月契約の区切りなので契約更新の打ち合わせをした。更新はするのだけど、契約条件が現状の働き方とあわなくなってきたのでその調整のための打ち合わせ。いくつか私の懸念やプロジェクト管理について話していて認知の歪みが起きている箇所を特定できた。いま開発の計画がストーリーポイントから見積もったスケジュールになっていて、これが私からみてデタラメな計画になっている。チームが習熟すれば精度が上がっていくというスクラムマスターの説だが、現時点ではデタラメな計画だから想定外のタスクや進捗遅れが起きてもそれが直接的に反映されない。タスクは増えるが、計画は何も変わらないということがすでにいくつも発生していて、それをおかしいと言っているのがメンバーの中で私だけという状況になっている。前に勤めていた会社でも全く同じことがあった。私だけが開発スケジュールの遅延を2ヶ月前に察していて、他のメンバーは締め切りの2週間前になって気付くということが過去にもあった。

いまのプロジェクトが納期に対して実際に遅れるかどうかは納期が来ないとわからないが、少なくともタスクが増えて納期が固定なら残業して終わらせるしかないと私は考えていた。しかし、開発のトップは計画を延期すべきだと考えていることがわかった。延期してよいのだ。プランニングをしていてどんなに遅延があっても計画を絶対に変えようとしないので期限が必達なのだと私が勘違いしていた。おそらく単純にストーリーポイントから見積もっているスケジュールだから、個々のタスクが増えたり遅れたりしても、それらを全体の計画にどう調整していいのかが誰もわからないのだと推測する。これもストーリーポイントの弊害の1つではあるが。

カスタムドメインの設定

3時に寝て7時半に起きた。前日の深夜にオフィスの掃除をしてた。シェアオフィスなので掃除機をかけると音がうるさくて周りに迷惑なので誰もいない時間帯を見計らって行う必要がある。

逆イールド

会社を経営する上で経済の状況は大きな影響を受けるので機をみて経済の勉強もしている。直近40年近くの統計では、米国債金利において、2年債の金利が10年債の金利を追い越してしまう現象が発生した場合、その1年後ぐらいに景気後退期がやってくる。この現象を 逆イールド と呼ぶ。

なぜ逆イールドが発生すると景気後退となるのか。国債とは政府の借金。金融機関、年金、個人、海外などが貸している。金利は複雑で様々な要因で決まるので一概に言えないが、大雑把にまとめると経済の力や金融政策、世のおカネの量で決まる。政策金利によって3ヶ月債や2年債は大きく影響を受ける。利上げを急ぎでやろうとしている理由は高いインフレがある。米国は約40年ぶりの高インフレとなっている。FRB は約2%のインフレを目標としているが、現状は遥かに高い水準になるので金利を上げてインフレを抑制しようとしている。FRB は次の2つの使命を負っている。

  • 物価の安定
  • 雇用の最大化

いま物価が急上昇しているため、このまま金融緩和を続けるとさらに物価が上昇して悪い影響を及ぼしてしまう。いまは金融緩和を縮小して利上げをしていく必要がある。しかし、利上げは景気に対して悪影響となる可能性がある。どのぐらい利上げすればよいのかは実際には誰もわからない。最悪の状況として次がある。

  • スタグフレーション: 高インフレのまま景気が減速する現象

スタグフレーションが発生すると経済対策や金融政策で対応しづらい非常にまずい状況となる。経済学者によっても意見が分かれるので、まだスタグフレーションが起こるとは限らない。しかし、起こる可能性があるという見方も出てきているらしい。

英語のテックブログ開設

先日作った backlog-github-integration-action の記事を書くことにした。会社のプロダクトとして作ったツールで汎用的なものや業務として保守していくものは積極的にアピールしていきたい。基本的に私は日本市場をあてにしていないのと、せっかく会社を作ったのだし、海外の会社と取り引きできるようになりたいという野望もある。プロダクトの情報発信は英語が基本で、余裕があったら日本語も書くといった優先度でやっていく。

少し前にたまたま hashnode がイケてるというのをタイムラインでみかけたのを思い出した。せっかくなので調べてみたら、どうも Custom Domain を無償、且つお手軽に設定できるのが訴求点になっているらしい。カスタムドメインを使うと、url に統合性があってカッコいいという以外にも信頼できるドメインに対して SEO が行われるため、優良な記事を書いていると自社ドメインの信頼があがっていくといったメリットがある。コストがかからないならカスタムドメインを使わない理由は何もない。そして設定したものが次になる。

ネームサーバーにカスタムドメインの設定をしていて間違って少しはまった。

間違った設定

cname blog hashnode.network

正しい設定

cname blog hashnode.network.

最後にドット . が必要になる。これで blog.kazamori.jp の名前解決が hashnode.network として解決される。

$ dig blog.kazamori.jp
...
;; ANSWER SECTION:
blog.kazamori.jp.	198	IN	CNAME	hashnode.network.
hashnode.network.	46	IN	A	76.76.21.21

CNAME レコードを滅多に設定しないのでドットで終わらないといけない規則を忘れてた。設定後、dns の propagation に最大24時間ほどかかる。世界のどこからでもアクセスできるようになるには24時間ぐらいかかるかもしれないけど、ローカルで動作検証するなら数分で反映されてた。

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割といったところかな。今週末から来週にかけてぐらいが見頃だと思う。

第3期の年度末

目次

0時に寝て6時に起きた。昨日に引き続き、日中はフロントエンドのバグ修正をやって午後は本番リリースの守り神みたいなことをやって、夜は請求書を作ってた。

年度末

今年度最後の請求処理をして本当に四半期が終わるんだなぁとしみじみと感傷に浸ってた。財務の試算表と貸借対照表を軽く眺めてた。今期は赤字なので別によいところはないんだけど、また振り返りをやろうとは考えている。貸借対照表を「ちんしゃくたいしょうひょう」と読んでいて間違ってますよとツッコミもらった。なぜか素で間違えた。お仕事終えてから焼き鳥屋さんに寄ってマスターと2時間ほど雑談して帰ってきた。

暇つぶしのフロントエンド開発

0時に寝て4時に起きた。起きてから sns のタイムラインを眺めてぼーっとしてた。

フロントエンド開発

先週からタスクがなくて (社員さんが多忙で今スプリントのタスク洗い出しができていない) だらだらしていて、来週から引き取ろうと思っている cdk 周りのインフラ構築の調査を事前に始めようかと考えていた。そういう話を社員さんにしたらフロントエンドの開発を手伝ってほしいと言われた。

種々雑多なフロントエンドの ui に関する改善要望が十数個あがっていて対応できないのでちょっとでもやってほしいという依頼。少し前に 初めてフロントエンド開発 に着手して、4つほど PR を送ってマージされた。にも関わらず、社員さんに「開発環境の作り方わかりますか?」と質問を受けた。ちょっときょとんとして「前に PR をいくつか送りましたが、なにか他にやらないといけないことがありますか?」と質問に質問で返した。社員さんもテンパっているのか、過去に私がフロントエンドの PR を出していたことを認識してなかったみたい。vue.js も nuxt も全くわからないので開発スタイルも以前のまま。

全然わからない。俺たちは雰囲気で開発している。

5つほど ui 改善のチケットを fix した。難しいことはわからないので私でもできそうな簡単なものから選択して直していった。そしたら、翌日のデイリースクラムで業務の人たちからすごい勢いで直してくれてるみたいにめっちゃ感謝された。もともと社員さんが他のタスクに忙しくていまできないって業務の人たちに前日断っていたタスク群を、いま手持ちのタスクが何もないので暇を持て余してますという私が fix しているんだから、世の中、訳がわからない。私は普段バックエンド開発している人間だから業務の人たちに感謝されることはおろか、やっていることさえ理解されない方なんだけど、たまに ui とか改善すると感謝されて嬉しいという気持ちは他の開発者よりも強いかもしれない。

backlog の認可の仕組み

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

backlog の oauth 2.0 の仕組み

ユーザー単位の API キーの他、oauth 2.0 の認可の仕組みもある。OAuth Grant Types は Authorization Code と Refresh Token の2つをサポートしている。

手順はざっくりこんな感じ。

開発者向けのサイトからアプリケーションを作成して認可コードのリクエストを送る。

https://YOUR-SPACE.backlog.com/OAuth2AccessRequest.action?response_type=code&client_id=xxx&redirect_uri=http://localhost:18080/callback

リダイレクト先に query='code=zzz' な認可コードが届く。それを使ってアクセストークンを取得する。

{'access_token': 'xxx',
 'expires_in': 3599,
 'refresh_token': 'xxx',
 'token_type': 'Bearer'}

有効期限が1時間のアクセストークンを取得できる。次のようにして認証をパスできる。

$ curl -s -H "Authorization: Bearer xxx" 'https://YOUR-SPACE.backlog.com/api/v2/space' 

基本的にはユーザー単位の認証しかなくてアプリケーションアカウントの運用はできないみたい。backlog の課金プランをみると、基本的にはユーザー無制限っぽいのでアプリケーションアカウントを一般ユーザーで作成すれば、運用上問題にならないからアプリケーションアカウントを設けていないのではないかと思う。お手伝い先の管理者にインテグレーション向けの専用ユーザーを作成して API キーを github の secrets に登録してほしいという依頼を出した。

backlog-github-integration-action を運用し始めた

2時に寝て6時半に起きた。

backlog と github のインテグレーション action の試験運用

昨日作った backlog-github-integration-action を早速お手伝い先の github リポジトリと backlog に導入した。いま暇な時期というのもあって、誰からもクレームが出なかった。この閑散とした間隙を「乗るしかない、このビッグウェーブに」というノリで導入して運用して既成事実を作る。ses でお手伝いに行って課題管理のツールを作っているというのは頭おかしいと思うけど、周りからクレームが出る前に電光石火で運用にのせてしまう。実際に運用で使うといくつかバグがあって、いま latest の docker イメージを使ってカスタム action が動いている。バグがあったら修正して、./gradlew jib (docker push) で新しい docker イメージを gihtub packages に push して、不具合があった pr のジョブを再実行すれば再現環境でテストもできる。いくつかバグ修正をした。実際の運用のデータを使うとばらばらとバグがみつかる。運用で実際に使われていないツールはダメ、絶対。

backlog-github-integration-action を作った

0時に寝て7時に起きた。丸一日開発していた。構想1ヶ月、実装2日といったところか。

backlog と github のインテグレーション action

お手伝い先が backlog を課題管理システムとして使っている。backlog は git 連携 の機能をもっているが、これは nulab 社のクラウド上に git リポジトリを構築したものと連携する機能であって、github と連携する機能ではない。そこで github と backlog と連携するためのカスタム github action を作った。

カスタム github action を java で開発するのは普通にはやらないと思うが、いくつか理由があってお手伝い先が java しかできないというのと、nulab 社が提供している公式クライアント nulab/backlog4j が java しかないから。最初は go で実装しようと思って go のクライアントを試したんだけど、サンプルコードをかいたら一部の処理でエラーになって、そのエラーがよくわからなくてやる気がなくなってしまった。最新の rest api の仕様にそってメンテナンスされていないのかな?と思って、やっぱり公式クライアントしかないなと。他にも次のライブラリを使っている。

これまでは commons-cli を使ってきたけど、サブコマンドの機能を提供していない。もうメンテされてないかも?サブコマンドの機能をもつ argument parser がほしくて picocli を選択した。初めて使っていて、実装してみたらわりと私の好みでよく出来ていると思う。今後は cli ライブラリとして picocli を使っていこうと思う。

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

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を使うことにした。週末にある程度動くものを作りきれるかどうか。着手するまでが一番時間がかかので着手すればすぐにできそうな見通しはある。