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 押下 ボタンクリックでボタ…

git worktree を試してみる

Git

備忘録。モノリポで、あるブランチで作業中に別ブランチで開発した他のアプリケーションを立ち上げてローカルで結合したい。そんなときに git worktree が使えそう。 git-scm.com $ git worktree list /Users/kntmr/workspace/repo e562a08b4f7 [feature/ser…

IntelliJ IDEA で Thymeleaf の templates を hot swapping したい

備忘録。IntelliJ IDEA で Thymeleaf の templates の hot swapping が動かないと思ったら、IntelliJ 側の設定が必要なのか。Eclipse 歴が長いもので...。 あ、IntelliJ 側の設定が必要なのか。Build project automatically と compiler\.automake.allow.whe…

Spring Security + RBAC (Role, Authority)

簡易的ですが、Spring Security + RBAC のサンプルを作りました。 kntmr/playground/spring-security-rbac - GitHub 今回、User と Role は 1 対 1 にしています。あと、Thymeleaf 側では、Permission (hasAuthority) ではなく、あえて Role (hasRole) を使…

ふりかえり

転職して3ヶ月。この期間にやったことなどをふりかえってみたり。 やったこと オリエンテーション (人事制度説明とか) 各種アカウント準備 PCセットアップ 開発環境構築 アラート解析 デバッグ (軽微/小規模なもの) エンハンス 問い合わせ対応 最初は、業務…

Ingress のルーティングを nginx-hello で試してみる

Ingress のルーティングを nginxinc/NGINX-Demos の nginx-hello を使って試してみる。 まずは Ingress Controller を有効にする。 $ minikube addons enable ingress Verifying ingress addon... The 'ingress' addon is enabled $ kubectl get pods -n k…

Kubernetes on Minikube/HyperKit

備忘録。 Kubernetes を Minikube で試してみる。(ローカルでマルチノードクラスタを構築する場合は kind を使う) $ minikube version minikube version: v1.15.0 今回は HyperKit 上に Kubernetes を起動する。デフォルトは Docker が使われるっぽい。他に…

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

自宅で元旦を迎えました。年末年始に帰省しなかったのは久しぶりかもしれない。2020年はリモートワークがメインになったりいろいろと変化がある年だったような気がする。 2019年のふりかえりと2020年に向けて - kntmr-blog GraphQL Vue.js + TypeScript OCJP…

Homebrew Bundle & Google Drive File Stream

Mac で移行しやすい環境を構築する。突然、PC が故障して他の PC に移行することになるかもしれないし。ちなみに、過去に Windows を使ってたときも Google Drive File Stream を使ってたっけ。 Homebrew Bundle パッケージ管理は Homebrew Bundle でバック…

子供とネットを考える Advent Calendar 2020

子供とネットを考える Advent Calendar 2020 の24日目の記事です。枠が空いてたので書きます!とは言ってもこの記事の内容自体は今年の夏に書いたものです 小学生の娘が日頃から iPad でインターネットを使うようになりました。主に YouTube などの動画コン…