Posts for: #2022/06

jjug ccc 2022 spring 参加

1時に寝て7時に起きた。前日、お酒飲んでたくさん雑談したので疲れ果てて寝てた。

jjug ccc 2022 spring

私の発表は朝10:25からだったけれど、その1つ前が同僚の発表なので見とこうと思って9時前にはオフィスに着いてたと思う。twitter のハッシュタグを開いたり、スライド資料のツィートの文面を用意したり、発表者用のTシャツを着たりなど、いろいろ発表前にできそうな準備をしておいた。zoom と youtube live の両方で配信しているせいか、zoom でのやり取りと youtube live のチャット欄でのやり取りが混ざって、発表者も運営も混乱していたように思う。jjug のスタッフさんも当日にあれこれ指示を出していたりもして配信プラットフォームが複数になるとややこしいよなとか思いながら眺めてた。

Track C の発表を午前中いっぱい、私のも含めて3つみてたんだけど、おそらく関係者以外で発表を聴いている人はかなり少なかったのではないかと推測する。まず twitter のハッシュタグも youtube live のチャット欄もほとんど書き込みはなく、質問もないから jjug のスタッフさんが質問するという、予想していた通りの展開になった。同僚と私の発表はぽっと出の発表なので視聴者が少なくてもわかるんだけど、その後のてらだよしおさんの発表もクラスメソッドさんのレポートを書いている人しかコメントしてなかったように思う。

オンラインイベントだからリアルタイムに視聴しないのか、日曜日または朝だから少ないのか、また機会があれば中の人にも聞いてみる。昨日の疲れもあって、会社ブログの記事を書いたら眠くなってきたので、午後から帰って寝てた。

ワーケーションの定義を教えてもらった

0時に寝て7時に起きた。前日は移動による運動量が多かったせいか、なぜかよく眠れた。

ストレッチ

今日は朝から調子よいなと思っていた通り、開脚幅は開始前161cmで、ストレッチ後163cmだった。ここ数週間は162cmが上限になっていたので久しぶりに163cmにになった。先週末に休息の時間を多めに取ったせいか、腰の張りもいつもよりは小さかったように思う。

カフーツさん訪問

ストレッチを終えてから神戸駅の近くのカフーツさんに行ってきた。コワーキングスペースのあるイベント でみかけた縁で ブログJelly Vol.120 に参加した。イベントの趣旨としてはブログを書いて、参加者に共有して、ブログの内容について参加者同士でコメントしあうといったもの。参加者は3人だったので必然的に濃いコミュニケーションになった。

私は、明日の jjug ccc 2022 の参加報告ブログの下書きを書いたものの、まだ公開はできないのでリポジトリにコミットした markdown を共有しつつ、既に公開済みのワーケーションの記事をイベントの参加者に共有してみた。いとうさんはワーケーションにも詳しい方なのでワーケーションの定義を間違えているよと教えてくれた。その間違いは私だけでなく、一般的 (日本?) にもよく誤解されているという。まず2泊3日のような短期の滞在をワーケーションとは呼ばない。

日本の「ワーケーション」という言葉の使い方は間違ってて、冒頭、お書きのように、海外で言うところのワーケーションは1ヶ月〜3ヶ月、そこに滞在して地元に溶け込んで観光ではなくて「余白」を作って楽しむ、というものなんですよね。バケーションなので。会社員はムリですが(はっきり言いますけど)、デジタルノマドなリモートワーカーは自分の時間と仕事をコントロールできるので全然OKなわけで、なのでみんな会社員やめたらいいのにと思ってます。

ぼくらの解釈は「余白」はあらかじめなにも予定しない時間、ということです。行った先の成り行きでやることを決める、そのための余剰の時間ですね。だから普段やらないことをやってもいいし、本読んで内省してもいいし、ボ〜っと一日過ごしてもいいし。でも、行った先の地元の人たちとつながる、そこに余白を使うことが望ましいと思います。でもそれも出会い頭が面白いですね。

ワーケーションについてなんやらかんやら雑談しているうちに、いとうさんもテンション上がってきて有料記事をプレゼントするからこれ読めってノリで記事を紹介していただいた。

いとうさんと 「余白」 という概念について議論していて、ずっと自分の中にあった言語化できていなかった概念とも紐付いた。本当によいキーワードを知ることができた。ワーケーション中にはらさんと話していたときに 時間をかければできるものじゃないことをやった方がいい と感じことに言葉を割り当ててくれた。昔の開発と比べて、いまの開発は余裕やゆとりが全然ないと私は思っていて、開発者が自由に調査したり開発したりできなくなっているように感じている。それは「リーン」という概念が幅をきかせていて無駄を減らし、効率を上げることばかりを邁進した結果として「余白」もなくしてしまっているように思う。開発に限らず課題管理の文脈でも、メタ課題の抽出や分類・整理も、他人のチケットにコメントをすることも「余白」の1つと言えるかもしれない。

13時に訪問して、ブログを書き終わったのが15時過ぎで、それから17時過ぎまで適当に作業をやって、その後ビールを飲みながら3人で雑談していて、気付いたら23時20分になっていた。基本的に私は人見知りなので初対面の人たちとそんな長く話すこととかないんだけど、なぜか意気投合していろんな雑談をしていた。コワーキングやワーケーションという分野と課題管理の分野は交錯する点や共通点がいくつかあって、私が課題管理の文脈からこうじゃないか?と言うと、異なる視点からいとうさんが答えるみたいなやり取りになって盛り上がっていた。別分野の経験豊富な方と話すことで多くの気付きを得られるのも「余白」がもたらす価値と言えるのかもしれない。

接待もどき

親戚と親の来訪

姪が体調悪くて病院で検査を受けるという話しで姉夫婦が車で神戸にやってきて、それに便乗して親もやってきた。朝から道案内したりとかしてた。お昼ご飯は ヒシミツ醤油 というお店に行った。週末とか前を通ると10人は並んでいる。なんでこんなに人気があるんだろう?とずっと不思議に思ってた。どうやら醤油も売っているんだけど、醤油によくあう和食の定食も食べられる飲食店らしい。ご飯が8種類あってお替り自由なのでバリエーションの広さを楽しめる。普通のランチよりちょっと贅沢な雰囲気がするので接待などにも向きそう。但し、ランチのピーク時間外さないと並ばないといけない。

その後、親戚のお土産に 亀井堂総本店のバターサンド を買ってきた。西元町にあるお店で、4年ほど前にたまたまお店の前の通りかかったきっかけで買ってみたらおいしかったのでそれからずっと印象に残っていて、4年ぶりに買ってみた。老舗のお菓子なので接待のお土産にはちょうどよさそうな気がする。たまたま親戚がきたから接待モードになってお店とお土産を開拓してた。

バッチ処理のプラットフォーム検討

昨日の続き。aws batch の機能説明や faq を読んでいたらよさそうなので触ってみた。事前に次の3つのリソースを設定しないといけない。

  • コンピューティング環境
  • ジョブキュー
  • ジョブ定義

これらの設定をした後、ジョブというリソースを発行することでジョブ定義の処理が実行される。ecs, fargate, ec2, ec2 spot instace から環境を選べる。ec2 spot instance を使えば安くていいかと思っていたんだけど、セキュリティを考慮すると外部のよく分からんインスタンスでバッチ処理を実行するのは懸念があるなぁと思い始めてやめることにした。aws lambda の代わりに aws batch を使うのはセキュリティの懸念さえなければ悪くはないんだけど、インフラの面倒さはどっちも同じぐらいで immutable infrastructure でバッチ処理のようなものを作るのはなかなか面倒くさい。

チームメンバーと3つの選択肢について議論した。

  • aws batch を使う
  • eks (k8s) を使う
  • github actions を使う

github actions の self-hosted runner に ec2 spot instance を使う記事もみかけた。これもいいかなと思ったんだけど、aws batch 同様、セキュリティの懸念は払拭できないのでダメだと断念した。

消去法で eks (k8s) でやることにした。CronJob を使って実装していくことになりそう。

バッチ処理のインフラ構築に着手

0時に寝て5時に起きた。なんか体調がいまいちな雰囲気。

ブログ記事のレビュー

昨日の続き。会社ブログの担当者にもレビューも通って体裁を整えて会社ブログにも転記された。あとは情シスグループのリーダーレビューが最終チェックになるみたい。

aws batch

バッチ処理のインフラを構築しようと考えていて、これまで aws lambda で作られているのが非効率だなと思うようになってきた。aws batch を使えないかを検討している。いまバッチ処理のための web api のエンドポイントを実装するスタイルになっていて、この流れでやっていくと将来的にバッチ処理が api サーバーに増えていく。たまたま負荷の高いバッチ処理と通常のリクエストがスパイクするとサーバーを過負荷にして通常業務に影響を及ぼす懸念がある。ec2 を作って cron でバッチ処理動かせばいいやんという気もするけど、せっかく cdk を使っているのでフルマネージドな仕組みで構築できればカッコいいなとも思ったりする。

インフレ研究会

たまたまみかけたので fin-py のインフレ研究会に参加した。前は twitter spaces でやっていて、私はスマホに twitter アプリが入っていないから参加しにくくて微妙だった。最近は brave talk でやっているのでパソコンからも参加しやすくなった。物価、金利、中央銀行の金融政策などの話しを私はまったくわからないのでほとんど聞いているだけ。聞いているうちに世の中のお金の流れが少しずつわかってくればいいかな。国債の値段が下がれば金利が上がるみたいなそういう話しを聞いてそうなんだという感じ。

設計談義は楽しい

0時に寝て4時半に起きてだらだらして2度寝して8時に起きた。

jjug のセッションの紹介

jjug の公式アカウントがランダムにセッションのページを紹介している。私のセッションのリンクが今日ツィートされた。この日記を書いている時点で3つの「いいね」が付いている (1つは私なので除く) 。大して人気の出るような内容ではないし、なにかを期待しているわけでもないけど、誰からも関心を持たれなかったらそれはそれで発表者として寂しいなという気持ちもあって、ついつい見てしまった。ほんの2-3人でもいいから当日は発表を聴いてくれると嬉しい。そして、その流れで質問をしてくれればと考えている。もし当日、誰も聴いてくれなかったらスタッフの人が質問してくれるんやろか?

ブログ記事のレビュー

朝一で昨日書いた記事を読み返しながら推敲した。やっぱり一晩寝ると、文章の粗が目立ってみえて細かい表現をあちこち直していた。その後に身近な人たちに記事のレビューをお願いして、概ね問題なさそうなので会社ブログの担当者にもレビュー依頼した。その返事はまだ返ってきていない。

設計ミーティング

先週から始めた 設計ミーティング の2回目。時間は2時間も抑えられていて話題がなければ解散するといったやり方。今日もなんだかんだで2時間丸々話していた。うちらの開発チームは開発者で共有すべき開発情報や設計の考え方などの情報共有が不足しているんだなと、多くの時間を割いても話題が尽きないことからも実感した。私は設計を練るのが好きなのでそれ自体も楽しい。スクラムイベントで会議の時間が多い上にこのミーティングは追加で実務の時間を奪うという懸念が大いにある。しかし、2-3ヶ月やったらアプリケーションの設計や品質に何かしらよい影響を与えそうな雰囲気はしている。代わりに他のスクラムイベントを削ることはできないだろうか。

ゴーストライター

0時に寝て6時に起きた。夜になにか作業をしようと考えていたけど、帰って晩ご飯食べたらだらだらしてた。

ブログ記事の執筆

今度の jjug ccc にチームの同僚と一緒に登壇する。同僚の発表スライドをみていて15分で話すには詳細を説明できないことに気付いた。せっかくイベントで発表して、よいプラクティスもできたのにもったいないとか思い始めて、発表の補足資料となるブログ記事を書きたいと私が言い始めた。先方ものってきてくれて、会社ブログを管理している社内の担当者を紹介してくれてそこに技術記事を書こうという打ち合わせをした。聞くところによると会社のテックブログはまだなく、技術記事も1つもないという話し。今回が初めての技術記事を公開する試みになるらしい。それはともかく、note の新エディタ が使えるようになっていたので初めて試してみた。新エディタの紹介記事を眺めてて画像のキャプションも入れられるようになったのにも気付いた。箇条書きの機能が増えたところはよいけど、勝手に段落がフォーマットされる感じが私の好みではない。エディタが勝手にフォーマットするのではなく、書き手が明示的に指示したときだけフォーマットされるような仕組みを私は好む。とはいえ、一般人は自動的によしなにやってくれる方がよいのかもしれない。半日ぐらいあーでもない、こーでもないと試行錯誤しながら一通りアウトラインに沿った草稿を書き上げた。

データベースを介したテストではまった話し

1時に寝て7時に起きた。帰りにふらっと仲のよい焼き鳥屋さんに寄ったらちょっとしたハプニングがあって長居してしまった。他に来ていたお客さんのカップルが別れ話を始め、こじれてややこしい状況になって、この騒動が一段落しないと席を立てない空気になってしまって終わるのを待ってた。マスターの知り合いらしくて、そのお客さんが帰ってから当事者たちの背景を聞いたりしてた。人生いろいろあるよなぁ。

spring の Transactional アノテーション

spring フレームワークには Transactional というアノテーションがある。SpringBootTest を使ったテストのときに使うと、テストメソッドの終了時に自動的にデータベースへの書き込みがロールバックされて便利なことを テストコードのリファクタリング をしていたときに気付いた。

スレッドプールを使ってマルチスレッドで並行実行する処理を書いてそのテストを書いてみたら意図した結果にならない。なんでだろう?と2時間ほどはまってデバッグしていた。テストデータの書き込みが、実際にはデータベースにコミットされていないので、テストを実行しているスレッド以外のワーカースレッドからデータベースにアクセスしてもテストデータを参照できないからだと気付いた。データベースのトランザクションに細工すると、こういうはまりどころがあるなぁと気付いて Transactional を使わずに普通にテストを書いた。その分、自分でテストメソッドが呼ばれてコミットされたテストデータを削除する必要がある。調べていたときに他にも副作用がいろいろあるよという記事もみつけた。

オーディオコンテンツにお金を払う

前日の夕方から寝たり起きたりでたくさん寝て7時に起きた。体力を回復した。

ワーケーション記事の執筆

せっかくの機会なので会社ブログにもワーケーションのふりかえりを書いた。

いまのところ、会社のサイトをみてお仕事が来るような会社でもないんだけど、今後のマーケティングをしていく中でどんな会社なのかをみられることも増えていくと思う。そのときに会社という法人の人となりがわかるようなコンテンツがたくさんあるとよいのではないかとも考えている。基本的には技術記事をメインにするつもりだけど、たまにはそうじゃない記事もあるのはよいだろう。最近はお仕事ばかりで全然、技術記事を書けていない。私は書くのが遅いので、書けることや書きたいことに対して10分の1ぐらいしか書けず、コンテンツがまったく育たない。今後のマーケティングの課題でもあるなぁ。

プレミアムリスナーになってみた

いつからかな?2016年か2017年と思ってバックナンバーを遡って最初の放送を調べたら2017年5月30日が初回の放送だった。おそらく初期の時期から聴き始めたように思う。ベンチャーニュースで言いたい放題 というオーディオコンテンツがある。パーソナリティの話しがおもしろくて2-3年は聴いていた。起業した前後で余裕がなくて聴いていない時期が1年ほどあるけど、最近また余裕をもてるようになったので聴き始めた。5年前からずっと続いているし、いまも私が聴きたいと思うコンテンツを提供していることのすごさを実感する。そういった敬意も含めて プレミアムリスナー になることにした。購入はアプリ経由だと1480円、web 経由だと1000円になる。プラットフォームの制約があるのだろうけど、こんなことして apple に怒られないのかな?と心配になる。web 経由の方がお得ですよと普通に書いてある。プレミアムリスナーになると、プレミアムコンテンツを聴けるようになるが、おそらく配信されたばかりは期間限定で誰でも聴けて、時間が経ったらプレミアムリスナーしか聴けなくなるようなコンテンツにみえる。いままで何年も聴いてきたのと、今後も続けてほしいという願いも込めての料金支払いなので私はとくに不満はない。

私はいろんな仕事やプロジェクトを転々としてきたのもあり、何年も同じことをずっと続けていることそのものに尊敬の念がある。ベンチャーニュースで言いたい放題は5年継続していることになる。5年も続くとコンテンツそのものの価値や信頼、それに関するスキルもすごく上達すると思う。これまで私はプログラミングという文脈ではスキルを磨いてきたが、コンテンツを作っていくというところは素人なのでそういうところを見習いたいと考えている。そんなことも考えながら、気に入っているオーディオコンテンツにお金を払うことに決めた。

ワーケーションの精算

1時に寝て7時に起きた。ふとんなしで寝ても寒くない季節になった。天気も悪かったので15時ぐらいから帰って、ドラクエタクトしたり、読み溜めてた LINE マンガ読んだり、疲れたら寝たりして普通に休んでた。

ストレッチ

今週はバテバテになっていて、先週から引き続き、右股関節や右腰に張りが強い。右側が少し前に出たような形状になっているらしく、姿勢か癖かで右側に負荷が偏るなにかになっているみたい。今日の開脚幅は開始前159cmで、ストレッチ後161cmだった。現状維持といったところ。今週末は休もうと思っている。参考がてらトレーナーさんに休むときにどうするかを聞いてみた。ジムへ行って運動した後、それから考えるらしい。私の場合、起きたらひとまずオフィスへ行ってなんか調べものして過ごすことが多い。サードプレイスへ出掛けるのはわりと多くの人に共通する行動なのかなとか思えた。

ワーケーションの精算

今週はバタバタしていてまったく余裕がなかった。ワーケーションのお金の精算をした。同行者からも料金の一部を徴収しているのでこの金額すべてが経費ではない。食費や入浴料金、お土産を除くと次になる。

  • 宿泊費 (県民割引を適用後)
    • 1泊目: 26,000 (3人)
    • 2泊目: 27,000 (4人)
  • 交通費
    • レンタカー: 23,760
    • ガソリン代: 2,424
    • 高速道路代: 5,230
    • 駐車場代: 800
  • 接待
    • 居酒屋: 9,200
  • 合計: 94,414

入浴料金を会社の経費にできるかどうかは福利厚生費ならできるらしい。但し、うちは社員がいないので福利厚生費を計上できない。原則として役員には福利厚生費を適用できない。福利厚生とは社員の生活や仕事の充実や向上を目的とするため、役員はそれを提供する側になる。とはいえ、役員と社員が一緒に利用する妥当な金額の福利厚生費なら認められるらしい。

高速道路の料金を etc の利用履歴から取得できないかな?と考えてググると、ETC利用照会サービス というのをみつけた。初期登録するにはカード番号と直近の利用履歴、車両番号と車載器管理番号が必要になる。レンタカーの領収書には車載器管理番号までは記載されていなかったので店舗に電話して尋ねると快く教えてくれた。これでETC利用照会サービスに登録できたものの、登録後に利用明細が表示されるまで4時間かかるという。バッチ処理のタイミングなのか、なにかわからないけど、4時間は長過ぎでしょとか思いながら待った。待った甲斐があって明細は csv と pdf 出力できた。記録としてデータを残す上でダウンロード機能はありがたい。

リファクタリングとオブジェクト指向プログラミング

0時に寝て8時に起きた。先週末の疲れが溜まってバテバテ。直近の1週間で睡眠時間が短いときは3-4時間しか寝てないのでなんか朝起きれなくて調子悪いなと思ったら単純に睡眠不足よね。なんか安心した。

既存ロジックのリファクタリング

ちょっと前にタイムラインで「値オブジェクト」の定義の話題で盛り上がっていた。私は詳しくないのでどちらが正しいのかの白黒を付けられないが、値オブジェクトがどういうものかの定義を知らなくても、オブジェクト指向プログラミングとしてデータ + メソッドでカプセル化していくモジュールの概念からすると普通のことであって、それの特殊ケースに名前が付いている・付いていないという議論だったのではないかと思う。

今日たまたま既存のある処理に機能を拡張するため、既存のコードを読んでいて、ロジックを扱うコンポーネントが肥大化していて、ここに手を入れていくとさらにコードの見通しが悪くなるように思えた。そのロジックコンポーネントの半分は出力用の DTO を生成する処理が占めていて、DTO を生成する処理をオブジェクトとして切り出すことでロジックコンポーネントを半分に分割できることに気付いた。パラメーターとして7つの値をそのオブジェクトの入力として、そのオブジェクトの内部であれこれやって、最終的に必要な DTO を出力できればよい。1つのコンポーネントを2つのコンポーネントに分割したことで、それぞれのコンポーネントのスコープにおけるメソッドが半分になったというだけの話し。一般的なカプセル化の話し。難しい話しをしなくても設計やオブジェクト指向プログラミングの基本的な考え方などをメンバーに教えていければいいんだけど、私はあくまで協力会社のお手伝いなので、教える業務は担っていない。次の契約更新のときにインフラやプログラミングを経験の浅い人たちに教えましょうか?みたいな話しもしたいと考えている。

コンテンツは狙ってバズらない

1時に寝て8時に起きた。昨晩はたくさん話してテンション上がって眠れなくてバテ気味。

serverless framework から cdk 移行の背景

木曜日はスプリントレビューがある。ステークホルダーが出席する唯一のスプリントイベントなので、大半はステークホルダーとの情報共有や質疑応答、プロジェクトにとっての大きい括りでの現状の共有になる。大半はお手伝い先の社員さん同士のやり取りで、協力会社の開発者は詳細が必要になったときだけ説明するといったイベント。前スプリントで 既存の lambda 関数を serverless framework から cdk へ移行 した。プロジェクトメンバーではないのだけど、業務のリーダークラスの方が cdk に関心をもって質問してくれた。聞くところによると、他プロジェクトでも cdk を使うようになってきているらしく、なぜいま移行しているのか?という質問だった。普段インフラ作業を孤独にやっているのもあって、業務の人が関心を示してくれたのが嬉しくて、変なスイッチが入っていろいろ説明した。serverless framework は2015年10月リリース、cdk は2018年7月リリースで、歴史的に serverless framework が普及して、その後に cdk が台頭してきたので実績や機能性から serverless framework が広く利用されている。但し、いま aws のインフラ管理をするのであれば、cdk は serverless framework 以上の管理ができることから cdk に一元管理した方がツールの学習コストを減らし、保守コストを下げることにつながるといった話しを丁寧に説明した。相手がそこまでの回答を求めていたかはわからないけど、関心を示してくれたことそのもので私が救われた気がした。

terapyon channel のコンテンツ公開

昨日の今日で公開された。ほとんど無編集だったのかな。web サイトのコンテンツ紹介の内容も手伝って夕方には公開された。

私の中ではいろんな話題を楽しく話せて充実感があった。一部にだけ関心をもつ人にも聞きたいところだけ聞けていいんじゃないかと思えた。基本的に自分の podcast を聞き直すことはないんだけど、今回は自分が充実感をもって話せたせいか、2回ほど聞き直しておもしろい話だなぁと自画自賛してた (笑) 。自分がよいものは周りもそう思うはずだと、ついつい先入観で考えがちだけど、全然そうじゃなかった。全くいいねがつかなかったので周りからみたら私の自己満足のコンテンツでしかなかった (笑) 。コンテンツあるあるだけど、狙ってコンテンツをバズらせるのは難しい。ブログでもがんばって書いた記事が全く読まれないことはあるし、手間暇かけずに軽く書いた記事がめっちゃバズったこともある。コンテンツがバズるかどうかは、最初にみた人たちが拡散するかにも依ってくる。いずれにしても、他者が関心をもつようなコンテンツかどうかは本人ではわからないというのは確かかな。

今期から会社のマーケティングも少しずつやっていく予定になる。自分がよいと思ったコンテンツに全く関心を示されないことは今後も多々あるだろう。作ったコンテンツを多くの人に見聞きしてもらおうと思ったらやることは1つだけで、当たるまでひたすら作り続けて、いつか当たるのを気長に待つという戦略しか、いまのところ思いつかない。