Posts for: #2022/10

オフィスの引っ越しが確定

2時に寝て5時前に起きて7時に起きた。いつも通り淡々と開発してた。

窓付きオフィスの契約

窓付きのオフィスを法人契約に切り替える 手続きを進めていた。登記事項証明書を写真に撮って必要書類をまとめて申請していた。無事に審査も通過して契約書が送られてきたので内容を精査して、クラウドサインだったので契約締結も円滑に進められた。いま風に言えば DX だろうけれど、契約を紙の書類でやらなくてよいのは手間暇が少なくて嬉しい。すぐに契約金も支払って引っ越しの日程を12月3-4日と定めた。取引先に迷惑がかからないよう、土日にこっそりと引っ越しする。なにもしていないのに自分の希望が叶うといった事象が起きると生きていてよかったなと思うことが多い (大袈裟過ぎるが) 。そんなこと人生で稀にしかないと思うんだけど、長生きしているとたまにそういうことがある。オフィスの引っ越しできるのが嬉しくて多くの人に話してしまった。

イベントはしご

1時に寝て4時に起きて6時に起きた。

jackson の tips

jackson で調べているとググったときに stackoverflow に書いてある内容が、機能的には正しいけれど、deprecated になっているアノテーションが多々ある。そのときに新しいやり方はどう設定していいか分からないということがある。今日たまたま実装した処理に2つアノテーションが出てきたので備忘録として書いておく。

@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
  • デシリアライズするときに my_field のようなスネークケースのフィールド名を myField のメンバーにマッピングする
@JsonIgnoreProperties(ignoreUnknown = true)
  • デシリアライズするときに json に存在してクラスに存在しないフィールドを無視する
  • データ構造の移行時にエラーを出さないとか、不要なフィールドがあるときに設定するとよい

上司道 リーダーはレジリエンスを高める自己肯定感を学ぼう

以前 SECI モデルのワークショップ に参加して、同じチームにおられた方が 上司道 という勉強会コミュニティを運営しているのでお誘いを受けた。せっかくの縁だと思ったのでコミュニティに参加した。その勉強会で 日本セルフエスティーム普及協会 の工藤氏による自己肯定感の紹介イベントがあったので試しに参加してみた。

軽く私の自己肯定感をチェックしてみると普通。低くも高くもない。私はどこかのタイミングで他人と比較するのをやめた。それは自己肯定感を高めるためにはよい慣習らしい。そのおかげで私は自己肯定感が低くはないようにみえる。自己肯定感には社会的と絶対的の2つの構成概念がある。

  • 社会的自己肯定感
  • 絶対的自己肯定感

重要なのは絶対的の方になるらしいが、多くの人は社会的の方が割合として大きいらしい。社会的に頼っていると、キャリア戦略に失敗したり、会社でリストラされたりすると自尊心が傷つきやすくなる。私もこのタイプだと思う。近い将来リストラされることを想定して自分の会社を作ったという背景もある。自分の会社があると、自分で自分をリストラしない限りは集団に帰属しているという社会的欲求を満たせる。それが社会的自己肯定感と関係があるように思える。いまの私の環境は自尊心が傷つきやすい状況ではないため、あまりセミナーの内容には関心をもてなかった。それよりも参加者が共有していた自尊心を脅かされる状況の経験談にひどいものが多くて、それらと比べると私の環境は恵まれていて世の中に感謝する気持ちになった。

後藤達也さんのオンラインミーティング

たまたま21時半からコアメンバー向けの zoom ミーティングを行うという投稿をみかけたので参加してみた。2時間ぐらいやってたのかな?軽く聞いて帰ろうと思っていたものの、なんだかんだで最後まで参加していた。

軽く計算すると note のメンバーシップだけで約774万円/月の売上になる。すごい。

(500 * 9577) + (3016 * 980) = 7,744,180

こんな儲かっているサブスクリプションの新規募集を停止する背景として、これ以上コアメンバーが増えてもコミュニティとしての運営が難しくなるからやりたくないのだという。例えば、すでに3000人いるが、この人数でオフ会を開催することはできない。月々の料金を高くしてメンバー数を減らすというのが経済学的な解であることは理解しているが、後藤さん1人で提供しているようなサービスに月980円を超える料金をとることに抵抗感があるから値段をあげたくないと話されていた。とても謙虚な人だと思う。コミュニティ運営を難しくせず料金もあげないという戦略からコアメンバーをこれ以上増やさないという判断をしたそうだ。

dapr のアップグレード準備

1時に寝て7時に起きた。寝る前に閃光のハサウェイを見始めたら夜更ししてしまった。

dapr の Highly-available モードの検証

先週からテスト環境で dapr の Highly-available mode を試している。ついでに dapr の 1.8.x へのアップグレードも行う。Dapr v1.8 is now available をみると、一番上に書いてあるのだから pubsub サービスの Dead letter topics がもっとも注目すべき新機能と言えるのだろう。これは pubsub のミドルウェアすべての Dead letter topics の機能が実装されたことを言っている。うちは rabbitmq を使っていて、それは次の pr で v1.5 で追加されていて、うちの環境では v1.7 から実運用していた。rabbitmq は Dead letter topics 対応が始まった初期のうちに実装されたと言える。

現時点での dapr の最新の安定版は 1.8.5 になる。

Highly-available を有効にする設定ファイル values.yml の書き方は次になる。

global:
  ha:
    enabled: true

来週には本番環境への適用&アップグレード作業を行うので wiki の作業手順のドキュメントを書いてた。

helm リポジトリ設定の更新。

$ helm repo add dapr https://dapr.github.io/helm-charts/
$ helm repo update
$ helm search repo dapr --versions | grep 1.8.5
dapr/dapr	1.8.5        	1.8.5      	A Helm chart for Dapr on Kubernetes

任意の設定を施した values.yml を指定して dapr をアップグレードする。

$ helm upgrade dapr dapr/dapr --version 1.8.5 --namespace dapr-system --values ./values.yml --wait

dapr はデフォルトで dapr-system という名前空間を使う。アップグレードした helm のパッケージ情報を確認する。

$ helm list -n dapr-system

副反応終わり

0時に寝て7時半に起きた。久しぶりによく寝た。ワクチン接種の副反応はおさまり体調は回復した。昼間は UI 改善やバグ修正をしていた。

インフラ勉強会

引き継ぎを兼ねて cdk の使い方、簡単な本番環境向けのデプロイ作業を共有した。wiki に一通りの説明は書いてあって、実際に cdk アプリケーションのソースや設定をみたり、cloud formation のドリフトを検出して解消するのを実践したりしてた。そんな中、別の不具合もみつけた。rds のデータベースのバージョン情報が次のように差分として出力される。

Resources
[~] AWS::RDS::DBInstance GodPostgreSQL/Instance1 GodPostgreSQLInstance1857D2683
 └─ [-] EngineVersion
     └─ 13.6

少し前にたまたま cdk のバージョンを 2.44.0 にアップグレードしてあったのだけど、この差分は 2.44.0 以降で発生する。次の issue の説明によると、メジャーバージョンをまたぐ rds のアップグレードを cdk で実行すると、Stack が回復不能な状態になるのでそのワークアラウンドとしてバージョン情報をみえなくしてしまって、誤って cdk で rds のアップグレードできないようにしているとのこと。この差分はとくに気にする必要なく、一度デプロイしてしまえば次回からは出力されなくなる。インフラにも影響は与えないとのこと。

過去にマイナーバージョンアップは試したことがあって、やはりエラーにはなるのだけど、実際のインフラはアップグレードされて、それで運用上は問題なかったようにみえる。但し、cdk 正しく rds のアップグレードを扱えないというのは確かであるようにみえる。

安静状態

2時に寝て8時に起きた。前日遅くまで飲み歩いてたのと、ワクチン接種後の発熱もあったから安静にしようと思って基本的に一日中寝てた。

はっくばー再訪

0時に寝て2時に起きて眠れなくて4時過ぎまでだらだらして7時に起きた。お昼に勉強会を終えて (ワクチンによる37.1℃の発熱で) 軽くしんどかったので2時間ほど寝てた。

ストレッチ

ワクチン接種翌日だったけれど、問題なくストレッチへ行くことができた。行く前にオフィスで体温を計測したら36.9℃だった。Dr.stretchの店頭で計測したら36.1℃だった。腕で簡易的に測る計測器の精度はそんなもんかなとか思ったりした。今日の開脚幅は開始前156cmで、ストレッチ後160cmだった。左腕は注射したばかりなので気を遣ってもらいながらストレッチをしてもらった。右足の太ももとふくらはぎに張りがあって疲労が溜まっているようにも思えた。毎週ストレッチしているから体調を維持できている側面は大きいと思う。

VR 空間での勉強会

【三宮.dev オンライン】VR開催!4周年記念LT大会 に参加した。Mozilla Hubs というサービスを使って vr 空間での部屋で勉強会を行った。1年前は cluster というサービス で開催していた。hubs というサービスを使うのが私は初めてだったのだけど、まだ不安定なところがあるのか、マイクがうまく接続できなくて参加者間で聞こえる・聞こえないといった状況が何度か発生していた。

参加者が使い慣れていないツールで勉強会を開くと、操作がわからなかったりマイク・スピーカー接続トラブルによるコミュニケーションが取りにくかったりしてなかなか難しいなと周りをみながら思った。ブラウザで vr 空間を自由に移動したり、アバターの位置関係を考慮して声の聞こえ方が変わったりするのは付加価値としておもしろいのだけど、移動することにそもそも意味がないとか、話者から遠いと声が聞こえにくくて近くに移動しないといけないとか、実務的な勉強会の運営としてはあまり意味がない。hubs の vr 空間で遊んでみて、vr の付加価値とイベントとしての付加価値をどうつなげるかといったことが今後の課題になってくるように思えた。

はっくばー再訪

近所にあるはっくばー に再訪してきた。2回目。プレオープンから3ヶ月以上経過してどんな雰囲気になっているのか興味本位で見に行ってきた。三宮.dev の slack で募ったら3人参加表明してくれて、勉強会後に2人さらに増えて、私を含めて6人で行ってきた。はっくばー行く前に軽く串カツ屋さんで晩ご飯を食べてから訪問した。勉強会を終えてから参加者で晩ご飯食べに行くというのが、コロナ前は普通のことだったのが随分と久しぶりのイベントのように感じた。はっくばーではオーナーの学生さんが1人で営んでいた。ここ3ヶ月ぐらいはずっと1人でまわしているらしい。プレオープンのときにその場でアルバイトになった人たちや手伝うとか威勢のよいことを言っていた人たちは半年も経たないうちにいなくなったんだというのが伺えた。

うちらが行ったときにもう1組グループがいた。そこに3年前ぐらいに神戸の勉強会コミュニティを作りたいと言っていたのにたった2回の勉強会でやめた人もいて、相手もこちらを覚えていたみたいで3年ぶりに話しをした。オーナーの意向でもう一組のメンバーとうちらのグループと半々で雑談しようということになった。そうしているうちにさらに8人ぐらいのグループがやってきた。キカガク という会社の会長さんが、起業家育成のサービスをやっていて、そのサービスの受講生と一緒に来られた。たまたま私がいる席にその会長さんが来られたのでサービスの内容や起業についての雑談をしていた。その会長さんはしっかりした考えをもっていて、全くスタートアップではないけれど、スモールビジネスの起業家を育てるためのビジネスをやりたいという話しだった。共感できるところもいくつかあった。

うちらは21時頃に訪問して、その後は3組のグループがいたことになる。オーナー曰く、過去一番の大盛況だったらしい。グループが3組いて雑談している (20人ぐらい) のが過去一番と言っているぐらいなので三ノ宮という場所ならそんなものだろうとは思えた。あとはっくばーで久しぶりに会った知人について、一緒に働いたことのある人たちからの評判がかなり悪かった。うまく言えないけど、私も信頼できない人だと感じていた。そういう人は普段の行動や態度に表れているのだろうと思えた。たまたま行ったときが過去一番の盛況ぶりだったのでオーナーの学生さんと雑談する時間を取れなかった。またもう1回、暇そうなときに行ってみてオーナーさんの話しも聞いてみたいと思う。

オフィスとワクチン

0時に寝て悪夢で3時にうなされて7時に起きた。

隔週の雑談

顧問のはらさんと隔週の打ち合わせ。話題が多くて予定していた時間に終わりきらなくて1つの話題は次回に持ち越した。今日話した内容は次の通り。

  • 新しいお仕事の業務内容についての共有
  • 旅費規定と就業規則についての話題
  • 知人の社内ツールのフィードバックに向けての情報共有

知人が社内で使っているタスク管理ツールに招待してくれたので軽く触ってみた。想定していたよりもずっと作り込みされててすごいなぁと感心しつつ、知人の役に立つかどうかはわからないけど、課題管理の専門家としていくつかフィードバックをまとめて送付した。はらさんがその社内ツールは tailwind css を使って開発しているのではないかと予想していた。実際に当たっているかどうかは知人に確認しないとわからないが、tailwind css というフレームワークはユーティリティファーストな考え方で css は何も書かずスタイルの class だけを書けばよいので開発が早く、全体の統一感のようなものも作りやすいとのこと。私が使う機会があるのかどうかはわからないけど、そういうフレームワークがあるんだなと知って学びになった。

窓付きのオフィスの連絡

先日みつけた 窓付きオフィスの内覧前に 契約が決まってしまって断念したことを書いた。神戸旧居留地オフィス にはもう1つ窓付きの部屋があるのだけど、そこに空きが出たら連絡してくださいとダメ元でお願いしていた。なんでもお願いするものだとか、世の中親切な人がいるとか、そういう類の話しで本当に11月末で部屋が空くので引っ越しますか?といった連絡がきた。感謝。

7F-14 11月末空き予定・申込あり ¥62,700 ¥11,000 2名 6.08㎡ 完全個室/棚・窓あり

前回に内覧済みなのでその返信で申し込みもした。すでにサイトの情報が更新されていて「申込あり」とは私のことだ。既存の契約移行のやり取りをしていたら、いまのオフィスは個人名義で借りていることに気付いた。ちょうど会社を作るには会社の住所が必要で会社ができる前に契約する必要があったから個人名義での契約になっている。この機に法人契約に変えようと決めた。法人契約の手続きのために登記事項証明書を取り寄せる必要がある。登記ねっと からオンラインで申請したので水曜日までには郵送で届くはず。その書類を写真に撮って電子データに変換して手続きをしないといけない。法人の身分証明の用途で使うだけなので登記事項証明書そのものが紙である必要性はまったくないが、どうやらこの書類は電子データは提供されていないようだ。会社の手続きでよく使う書類の1つなので電子データとして扱うニーズは高いと思うのだけど、悪用とかセキュリティの側面から意図的に紙の運用にしているのかな?

ワクチン4回目接種

3回目は4月14日 に接種したのでちょうど6ヶ月が経過した。11月に東京出張するのでその保険の意味もあっていま接種するしかないと慌てて予約した。4回目のワクチンはオミクロン対応らしい。3回目と同じクリニックを予約して前回は待ち人おらずだったのだけど、今回は20分早く行ったら前に2人並んでいて予定の10分前ぐらいに注射してもらうことができた。いまこの日記を書いていて、接種直後は36.0℃だったのがその後5時間経って36.9℃になった。まったくしんどくないので平気だけど、そろそろワクチンも本気を出してきた感じか。

サイトコントローラーの障害は大変そう

0時に寝て3時に起きて6時半に起きた。だいぶよく眠れるようになってきた。

サイトコントローラーの障害

お手伝いしている宿泊業のシステムでトラブルが発生している。厳密には外部サービスになるのだが、複数のオンライン予約サイトの違いを吸収して単一のインターフェースを提供する宿泊業のハブシステムのような存在をサイトコントローラーと呼ぶらしい。週明けから全国旅行支援という新しいGoToトラベルが開始されて、その予約が想定以上のトラフィックになっていてサイトコントローラーがダウンしてしまった。web 開発者向けに例えれば aws の s3 が落ちて大半のサービスに影響が出てなんもできないみたいな状況かな。

全国レベルのニュースになるぐらいの障害規模が大きいらしい。それだけユーザーが多いシステム/事業者なんだろうとは思う。システムと向き合う上で障害が発生するのは仕方ないが、フォールトトレランスは常に意識して設計・運用しないといけないことを、今回の障害を傍からみていて感じた。

java のちょっとした小技

java で1つのリストを複数のリストに分割したいときに List.subList というメソッドがある。複数の値を並行処理するときなど入力を分割するのに便利そう。使い方は次の通り。toIndex を超えると IndexOutOfBoundsException が投げられるのでそこだけ注意かな。

var total = myList.size();
var step = 20;
for (int i = 0; i < total; i += step) {
    var toIndex = i + step;
    if (toIndex > total) {
        toIndex = total;
    }
    var subList = myList.subList(i, toIndex);
    // do something
}

シャンプー

散髪屋さんのマスターからシャンプーを変えた方がいいんじゃないかとアドバイスされた。髪は油分と水分のバランスが大事らしく、シャンプーによって変わることもあるらしい。いつからか記憶にないけど、少なくとも学生時代から私はずっと メリット リンスのいらないシャンプー を使っている。20年ぐらい?こだわりがあるわけでもないし、このシャンプーを使っていて懸念があったことは一度もない。マスターから h&s scalp がよいとお勧めされた。せっかくの機会だから試してみようかなと思う。

踊龍を学ぶ

0時に寝て3時に起きて6時に起きた。わりとよく眠れた。朝一でバグに気付いて慌てて修正したりしていた。

リーダーとしての易経

「第四段階 踊龍 龍が飛躍する時」を読んだ。

龍の成長過程を年齢に当てはめると、潜龍は10代、見龍が20代、君子終日乾乾すが30代とある。実際には第3段階は量から質を磨く時なので相対的に長くなる。20代後半から40代ぐらいとみてもよい。そうやって40代には実力が十分に備わっていると言える。踊龍から飛龍になれるかどうかは実力だけではなれない。ここで時、つまりは好機をとらえる必要がある。ここでいう時とは時・処・位の3つを指している。飛龍になるには早すぎても遅すぎてもダメだという。機と期と気を観ないといけない。観るというのは洞察力を指している。

  • 機: 機会
  • 期: 期日
  • 気: 気運と兆し

志は変容したり、しぼんでいく。世の中の流れに押し流され、埋没してしまうこともある。志を失うと乾乾することも放棄して、やがて亢龍となり衰退していく。潜龍のときに抱いた志を持ち続けられていれば、龍の変遷過程を経てイメージが実際に実現できていて、踊龍で最終段階になっている。1つ1つのパーツが適所にはまり、描いてきた志のビジョンが明確になる。機が熟し時が満ちる。

いくつか分かるような分からないようなキーワードもあるし「兆しを観て適切な時に動け」と言われてもプラクティスというより精神論に近い。易経とは時の変化の法則性を理解して、人間が然るべき時を理解できるようにする学問ではあるが、一朝一夕ではないことが文章からわかる。それでもいくつか共感するところはあって、志とまで昇華しなくても思い付きでよいアイディアだと思ったことが1週間も経つとそう思わなくなったり、1ヶ月もするとやる気をなくしたりすることが私は多々ある。別の観点では、初期の挑戦というのは得てしてうまくいかない、いや大半が失敗する。余談だが本書の中に「潜龍用うるなかれ。」という言葉が出てくる。重用したり責任をもたせてはいけないとある。自分が潜龍だとしたら焦って早成を求めてはいけない。経験も実力もないこの時期にすべきことは志を抱くこと。

会社を始めて最初の2年で大きな失敗をしたときに課題管理を自社のビジネスにできないかと思い付いた。その後、3ヶ月間調べたり話したりして、その後1年間スクラム開発に勤しみ、そしてこれからプロダクトマネージャーとして実践する。決して順風満帆ではないが、たしかに時が変わり、やっていることも変わり続けている。そして、課題管理という分野における解像度は1年前よりも高くなった。易経の乾為天をフラクタルに考えるのは正しくないのかもしれないけど、製品開発のサイクルとみなしても理は通りそうな気もする。

自分史を易経から読み解く

0時に寝て3時に起きて5時に起きて7時半に起きた。夜に紅茶を飲むのをやめて少し眠れるようになった。QA レビュー待ちのタスクが溜まっていて、リリース前でやることないから軽微なバグ修正してた。

リーダーとしての易経

週末に三ノ宮.devの勉強会がある。発表者が少なかったら私もなにかしら発表しようかと考えている。

テーマは「継続」でみなさんが継続していることについて色々教えてください!

継続と聞いて思い浮かべるのは過去に menta に書いた記事とかも見返していた。

いまになって 易経の本 も軽く読み直してみたいと考えている。もう10年以上プログラミングを学び続けてきたし、転職や起業など自分がやってきた歴史からふりかえるとなにか発見があるかもしれない。

易の三義

  • 変易: 森羅万象、すべてひと時たりとも変化しないものはない
  • 不易: 変化には必ず一定不変の法則性がある
  • 易簡: その変化の法則性を理解すれば、わかりやすいものになる

時は必ず変化するので、良い時は悪い時へ向かい、また悪い時は良い時へ向かう。変化するから成長と発展がある。

時の三要素

易経のいう時には時間だけでなく空間も含む。次の3つの要素で成り立つ。

  • 時: 時間、期、タイミング、兆し
  • 処: 環境、状況、場
  • 位: 位置、立場、社会的地位、人間関係

時・処・位を踏まえた判断と行動がリーダーには必要。

時の変遷過程の原則

易経の64の時の中でもっとも原則的な時の変遷をたどる龍の話しが乾為天 (けんいてん) という卦になる。次の6段階で力を蓄え、師に仰ぎ、繰り返し、試みて、変化を為し、衰退する。

  1. 潜龍: 変化の始まり
  2. 見龍: 目が開かれる時
  3. 君子終日乾乾す: 道を反復する
  4. 踊龍: 自ら試みる時
  5. 飛龍: 変化を起こす
  6. 亢龍: 平らかなものは必ず傾く

出張もくもく会を催す

0時に寝て8時に起きた。本当は休日なんだけど、運用に影響を与える変更の pr を金曜日に送っていて、その approve が出たのでマージ処理とデプロイをしてテストのお願いをしようと考えていたら、要件漏れがあることに気付いてその修正を行って再度 pr を出した。この変更はちゃんと検証しないといけない修正なのでできれば今日中にはテスト環境にデプロイしておきたかった。

出張もくもく会

出張中の隙間に当たる11月3日(木)は祝日でやることがない。普段の土日祝日は元気ならオフィスで調べものや自社のお仕事をしている。出張中だからコワーキングスペースに出掛けて作業しようという延長上で、いまシェアオフィスを借りている業者さんは全国展開しているので東京のコワーキングスペースの会議室も借りられるのであれば、会議室を1日借りてしまってもくもく会にしてしまおうと思い付いた。

会議室の予約システムからは東京のコワーキングスペースの会議室も予約できた。どうやって入室すればいいかわからないなと思ってサポートに電話してみた。そしたら、シェアオフィスの借り主が全国の施設を利用できるかどうかは契約次第らしい。最近の契約はそうなっているらしいが、私が契約したとき (約3年前) はどうだったかを忘れてしまった。たしか契約するときに関西は使い放題プランがサービスで付いていたのは契約書で確認できたが、関東はどうなるのかよく覚えていなかった。うちの施設に常駐しているコンシェルジュさんにどういう契約になっているのかを聞いてみた。すぐに調べてくれて問題ないと確認できた。せっかくなので connpass にイベントページを作ってみた。会議室なので8席しかない。この人数なら知り合い限定でよいとも考えている。とはいえ人が集まらなかったら寂しいので一応は一般枠も設けておく。一般枠は参加しにくいように金額設定しているが、様子をみてからあとで無料にする予定。

m2 macbook air が届いた

先日購入した macbook air が届いた。ひとまず起動してマシンの初期設定を行う。デスクトップまで起動して、最初にやることとして思い付いたのが google chrome をインストールして 1password のインストールと初期設定だった。すべての認証は 1password で管理しているのでこのサービスが使えないと業務できなくなる。また空き時間に少しずつ設定していく。