JJUG CCC 2022 Spring に行ってきた #jjug #jjug_ccc

JJUG CCC 2022 Spring に参加しました。オンライン開催。簡単に所感をまとめます。 jjug.doorkeeper.jp 所感 久しぶりにリアルタイムで参加しました。質疑応答ができるのがリアルタイムのいいところ。時間の都合上、4セッションくらいしか参加できなかったけ…

Spring Security の PasswordEncoder を移行したい

備忘録。 セキュリティ要件の変更などにより、Spring Security の PasswordEncoder (エンコード方式) を移行したいケースがあるとする。 AbstractDaoAuthenticationConfigurer#passwordEncoder を変更して DB に格納しているパスワードをマイグレーションす…

プロダクトマネジメントのすべて 03

前回の続き。積読中の『プロダクトマネジメントのすべて』を (細々と) 読み進める。 プロダクトマネジメントのすべて 02 - kntmr-blog 今回は「ステークホルダーをまとめプロダクトチームを率いる」のところ。ちょっとやりすぎかもしれないけれど、バックロ…

プロダクトマネジメントのすべて 02

前回の続き。積読中の『プロダクトマネジメントのすべて』を読み進めてる。が、あまり進捗よくない...。 プロダクトマネジメントのすべて 01 - kntmr-blog 前回は基礎知識のところを読んだので、今回は冒頭の「プロダクトの成功」を斜め読み。ここでも前回と…

プロダクトマネジメントのすべて 01

しばらく積読しちゃってた『プロダクトマネジメントのすべて』を読む。 https://www.amazon.co.jp/dp/B08W51KLQJwww.amazon.co.jp まずは前提知識として「プロダクトマネージャーに必要な基礎知識」から...。特に、Chapter 19 は参考になりました。プロダク…

CloudFront の TooManyInvalidationsInProgressException を CallerReference で抑止したい

前提 CloudFront のキャッシュを利用するシステムで、ユーザーの操作をトリガーに、条件に合致するオブジェクトパスに invalidation リクエストする仕様。 困ったこと com.amazonaws.services.cloudfront.model.TooManyInvalidationsInProgressException: Pr…

問いのデザイン: 創造的対話のファシリテーション

『問いのデザイン』を読んでみました。 www.amazon.co.jp ワークショップとかをやるわけではないけれど、スクラムイベントをファシリテーションしたり、チームメンバーと 1on1 したりするので、そのあたりに活かせるものがないかなと期待して読んでみました…

xargs と curl で並列にリクエストを投げる

備忘録。 パフォーマンステストで Vegeta を使うことがたまにある。 Vegeta attack - kntmr-blog ただ、単純にたくさんリクエストを投げるだけなら xargs + curl が使えそう。あと、Vegeta だとレスポンスヘッダとかが見れないっぽいが、この方法ならなんと…

.a.i.SimpleAsyncUncaughtExceptionHandler : Unexpected exception occurred invoking async method ...

備忘録。 @Async で非同期に処理するメソッドの中で例外が発生した場合、表題のようなエラーが出力される。 2022-01-26 22:44:58.608 ERROR 3401 --- [ task-1] .a.i.SimpleAsyncUncaughtExceptionHandler : Unexpected exception occurred invoking async m…

2021年のふりかえりと2022年に向けて

謹賀新年。年末年始は帰省先で過ごしています。2021年はあっという間に終わってしまった感。 2020年のふりかえりと2021年に向けて - kntmr-blog 仕事に関しては、たぶんこれまでとは違った価値観を身に付ける必要がある気がする。とはいえ、すぐに身に付くよ…

AWS CLI で CloudWatch メトリクスを取得する

調べる機会があったのでメモ。CloudWatch メトリクスは GetMetricData で取得する。 aws.amazon.com 今回は、10分間のメトリクスを取得する例。日時はオフセット付きでも指定可。(2021-12-24T09:00:00+09:00) $ aws cloudwatch get-metric-data \ --metric-d…

CloudFront のキャッシュを Lambda から invalidation する

調べる機会があったのでメモ。 前提 Lambda 関数はこんな感じで作成。IAM ロールは別途用意。 ランタイム: Python 3.8 アーキテクチャ: x86_64 サンプルコード 今回は、invalidation するオブジェクトパスをパラメータで指定できるようにする。パラメータ未…

イミュータブルでゆこう に参加した #現場から学ぶモデル駆動設計

イミュータブルでゆこう に参加しました。簡単に所感をまとめます。 modeling-how-to-learn.connpass.com 所感 イベントとリソースを区別したりイベント (コト) に注目するというのは、頭では分かっていても実際に設計するときにちゃんと実践できるだろうか.…

ふりかえり

転職して1年。転職3ヶ月以降の期間をふりかえってみたり。 kntmr.hatenablog.com やったこと 前半は主にマーケ寄りの施策を担当し、いくつかの新機能をリリース。 夏頃にエンジニアチームの体制が再編成されて、toB 寄りの開発チームのリーダーを担当。とあ…

モデルベースで要件定義をやってみた に参加した #現場で役立つモデル駆動設計

モデルベースで要件定義をやってみた に参加しました。簡単に所感をまとめます。 modeling-how-to-learn.connpass.com 所感 途中で言ってたけど、ステークホルダが RDRA のモデルでコミュニケーションできるようになるのは理想の世界かもしれない。で、その…

AWS SDK for Java で S3 のファイルをまとめてダウンロードしたい

S3 のフォルダにあるファイルを zip でまとめてダウンロードしたい。今回は AWS SDK for Java の AmazonS3#getObject を非同期で呼び出して ZipOutputStream で書き出してみる。 サンプルコードはこちら。 github.com 前提 Java 11 Spring Boot 2.5.6 AWS SD…

Clipboard API

備忘録。 ある要素の click イベントで、Clipboard API を利用して要素内のテキストをクリップボードにコピーする。 document.querySelectorAll('.copy-to-clipboard').forEach((el)=> { el.addEventListener('click', (e) => { const text = e.currentTarge…

モデリングの学び方:座談会 に行ってきた #modeling_zadankai

モデリングの学び方:座談会 に参加しました。簡単に所感をまとめます。 modeling-how-to-learn.connpass.com 所感 現場でどうモデリングをやっているか、モデリングをどう学んできたか、などいろいろな話が聴けて面白かったです。最後に言っていた「本をき…

JSUG勉強会2021年その2 Spring GraphQL をとことん語る夕べ に行ってきた #jsug

JSUG勉強会2021年その2 Spring GraphQL をとことん語る夕べ に参加しました。今回はオンライン開催。簡単に所感をまとめます。 jsug.doorkeeper.jp 所感 Spring GraphQL は内部的には graphql-java を使っているようです。昔、graphql-java と Spring Boot …

AWS SDK for Java + KMS で S3 暗号化

備忘録。前回の続き。 AWS SDK for Java で署名付き URL 生成 - kntmr-blog Key Management Service (KMS) と AWS SDK for Java で、クライアントサイドで暗号化して S3 にアップロードする。 キー作成 (CMS) 事前に Key Management Service > カスタマー管…

AWS SDK for Java で S3 署名付き URL 生成

備忘録。S3 の 署名付き URL を AWS SDK for Java で生成する。AWS の設定周りについては正しいかどうかは自信がない...。 <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-s3</artifactId> <version>1.11.1034</version> </dependency>

JJUGナイトセミナー「オブジェクト指向プログラミング入門」に行ってきた #jjug

JJUGナイトセミナー「オブジェクト指向プログラミング入門」に参加しました。オンライン開催。簡単に所感をまとめます。 jjug.doorkeeper.jp 所感 Software Design 2021年3月号 の特集を執筆された3名によるセッション。設計やオブジェクト指向についてどう…

timestamp 型のカラムに integer 型のカラムの値の加算して date 型で比較する

備忘録。 例えば、created_at カラムに days カラムの値を日数として加算して、その結果を日付で比較するようなケース。使い道があるかは分からないけど。 以下は PostgreSQL の場合。 SELECT * FROM table t WHERE CAST(t.created_at + CAST(t.days || 'day…

Gradle dependency tree

備忘録。 以前、Eclipse + Maven を使ってたときは Eclipse の Dependency Hirarchy とかで見てたっけ。 Viewing and debugging dependencies - Gradle User Manual $ ./gradlew -q dependencies --configuration default

Future Tech Night #10 に行ってきた #future_tech_night

Future Tech Night #10 に参加しました。オンライン開催。簡単に所感をまとめます。 future.connpass.com 所感 前半は Java 8 から Java 16 で追加された API のおさらいみたいな感じでした。Record の機能は Lombok でまかなえるっていう意見が TL で流れて…

macOS をアップデートしたあと Command Line Tools のインストールが失敗する

ちょっとハマったので備忘録。brew install でパッケージをインストールしようとしたらこんなエラーが出力された。 Error: The following formula cannot be installed from bottle and must be built from source. Install the Command Line Tools: xcode-s…

ユニコーン企業のひみつ

先日、『ユニコーン企業のひみつ』を購入して読んでみました。 "ユニコーン企業のひみつ Spotifyで学んだソフトウェアづくりと働き方 - Jonathan Rasmusson" https://t.co/rDWjKW3Edo— kntmr (@knt_mr) 2021年4月26日 「チームに権限を与える」「チームを信…

Vegeta attack

以前から名前は知ってたけど、パフォーマンステストをするのに Vegeta が手軽に使えて便利そう。README にだいたい書いてあるけど取り急ぎ使いそうなところだけ備忘録。 github.com $ brew update && brew install vegeta $ echo "GET http://localhost:8080…

HIGH OUTPUT MANAGEMENT

以前、あるラジオで紹介されていた HIGH OUTPUT MANAGEMENT を購入して読んでみました。とは言っても購入したのは年初で、途中ちょっと積読しつつようやく読み終えた...。著者の Andrew Grove 氏はインテル社の CEO を務めていた方らしい。 「自身が率いる組…

リクエストの二重送信防止に UIEvent.detail を利用する

更新系のボタンクリックでローディングを表示して二重クリックを防止する実装をよく見かけるが、次のような操作をするとリクエストが二重送信できることがある。 ボタンクリック (ローディング表示) キーボードの Enter or Space 押下 ボタンクリックでボタ…