最近はISUCONの過去問を解いています。今回はnotify_slackを利用してalpの集計結果をSlackで通知する方法をまとめます。 以下の流れで説明していきます。 notify_slackを利用してテキストをSlackで通知する notify_slackのインストール Slackアプリの作成 no…
ISUCONの練習でnetdataのinstallシェルスクリプトを書いていたらshとbashの違いでハマったので、忘備録として残していきます。 問題 #!/bin/bash ... bash <(curl -Ss https://my-netdata.io/kickstart.sh) --no-updates --dont-wait --stable-channel --dis…
ISUCONの過去問をやっていてIntelliJでDDLからER図を作成したくなったので方法をまとめます。 やりたいこと ローカルにあるDDLファイルからER図を作成したい 環境 IntelliJ IDEA Ultimate 2020.3 手順 DDLを用意する。 今回はisucon7-qualifyを使用します。 …
iikanji.hatenablog.jp ↑こちらの去年の記事で、RedisのKeyspace Notificationsについて書いたのですが、その中でSpring SessionはRedisのKeyspace Notificationsを自動で設定してくれる、と書きました。 今回は、その設定をしているConfigureNotifyKeyspace…
UriComponentsBuilderが提供するencodeメソッドとUriComponentsが提供するencodeメソッドの違いがわからず調べたのでまとめてみます。 今回、使用したSpring Framework のバージョンは5.3.3です。 そもそもUriComponentsBuilderとは? Spring Frameworkが提…
Spring Frameworkでは、UriComponentsBuilderやServletUriComponetnsBulder, MvcUriComponentsBuilder, もしくはUriBuilderインターフェースを実装したクラスを使うことでURIを簡単に作ることができます。 たとえば、以下のコードのようにUriComponetsBuilde…
Java 8から標準ライブラリとして提供されているClockというクラスを利用して、現在時刻を取得することができます。 Clock (Java Platform SE 8) 現在時刻を取得するためにSystem.currentTimeMills()やLocalDateTime.now()などのstatic methodを呼び出して利…
AlfredからIntelliJ IDEAのプロジェクトをマウスやクリックを使わずに開けたら便利だなーと思って設定したので、やり方をまとめていく。 Alfred Powerpackを有効にする https://www.alfredapp.com/shop/ からSingle LicenseかMega Supporterを購入する。 お…
2020年、自分がどういったテーマについてどれだけインプット, アウトプットしたのかを振り返っていく。 2020年で読んだ本 今年は以下の本を読んだ。 他にも何冊か読んだが、記憶にあまり残っていないので割愛。 リファクタリング 既存のコードを安全に改善す…
Redis Keyspace Notificationsとは Redisには、キーに影響を与えるコマンドが実行されたタイミングや、キーが期限切れになったタイミングなどにRedisのPub/Subチャネルを介してクライアントにイベントを通知するRedis Keyspace Notificationsという機能があ…
Spring Session Data Redisのソースコードを読んだので備忘録としてまとめていきます。 ソースコードは以下を読みました。 github.com Spring Session Data Redisのパッケージ構成 Spring Session Data Redisのクラスは全部で13ファイル RedisSessionReposit…
Thoughtworks社が半年ごとに公開しているTechnology RadarのVol.23が最近公開されていたので一通り読んでみました。 その中でMutation testingという技術が気になったので、今回はこれについて書いていきます。 Mutation testingとは Mutation testingとは、…
今回は、SchemaSpyを使ってERドキュメントを自動生成する方法をまとめていきます。 SchemaSpyは、ER 図やテーブルの情報をHTMLで出力することができるJava製ツールです。公式サイトやSchemaSpy を使って自動で ER 図生成してみた | メルカリエンジニアリング…
背景 Spring Bootでは@PutMappingや@DeleteMappingなどを使うことでPUT/DELETEメソッドのHTTPリクエストを受け取ることができます。 一方でHTML5では、PUT/DELETEメソッドを送信することができないため、直接HTMLからサーバにリクエストを投げる場合には、HT…
前回、前々回に続いて技術書典で知った面白そうな本を読んだのでまとめます。 今回は【ダウンロード版】AWSをはじめよう ~AWSによる環境構築を1から10まで~ - mochikoAsTech - BOOTH を読みました。 booth.pm 前回、前々回はこちら iikanji.hatenablog.jp …
iikanji.hatenablog.jp ↑の前回の記事に引き続き、技術書典で何冊か購入した本の中から【ダウンロード版】DNSをはじめよう ~基礎からトラブルシューティングまで~ 改訂第2版 - mochikoAsTech - BOOTH を読んだので、読書メモとして書いていきます。 booth.…
技術書典のシーズンなので、何冊か良さそうな本を購入しました。 その中で #マンガでわかるDocker ③ 〜AWS編〜 【ダウンロード版】#jawsdays #技術書典 - 湊川あいの、わかば家。 - BOOTH を読んだので読書メモとして書いていきます。 booth.pm この本は…
はじめに Consumer Driven Contract Testingとは Spring Cloud Contract Spring Cloud Contractを使ってみる 環境 Provider Consumer ProviderにSpring Cloud Contractを導入する pom.xmlの設定 CDCの作成 YAMLの場合 Javaの場合 Kotlinの場合 Groovyの場合 …
今回は、Spring Bootで実装したREST APIのコードから、APIを叩くクライアントコードを自動生成する方法を書いていきたいと思います。 今回やりたいこと 環境 やることの流れ REST APIを実装する 自動生成に必要なライブラリ/プラグインをpom.xmlに追加する s…
前回のエントリで、Spring FrameworkにおいてString型のフォーム値が未入力の場合に、空文字ではなくnullを受け取る方法を説明しました。 この方法では、List型のフォーム値が未入力の場合は空文字のリストになってしまうので、今回はこれをnullのリストで受…
Spring Frameworkで未入力のフォームの値をデフォルトで設定されている空文字ではなく、nullで受け取る方法をまとめます。 環境は以下です。 Spring Boot 2.3.1.RELEASE Thymeleaf 3.0.11.RELEASE Kotlin 1.3.70 以下のようなフォームと、フォームの値を格納…
Spring Framework のエラーメッセージ周りで詰まって調べたところを忘備録としてまとめてみる。 DefaultMessageCodesResolverとは? バリデーションによって作られたエラーコードからメッセージコードを作成するクラス。 オブジェクトやフィールドに対するメ…
HandlerInterceptorが呼ばれる流れを追ってみる。 ソースコードのバージョンはSpring Boot 2.3.0.RELEASE。 HandlerInterceptorは以下のようにpreHandle, postHandle, afterComplitionを実装することで、Controllerのメソッド(ハンドラ)の前後に任意の処理を…
Thymeleafのth:hrefで変数の値に応じて動的にクエリパラメータをつける方法を備忘録として残しておきます。 やりたいこと th:hrefでURLを生成するときに以下のように変数の値に応じて動的にクエリパラメータをつけたい。変数の値が空の場合はクエリパラメー…
Safariでブラウザの「戻る」「進む」ボタンを押したときの挙動でハマったところがあったので備忘録としてまとめます。 bfcacheとは SafariやFirafoxでは「進む」「戻る」操作を行うと、bfcache(back forward cache)という仕組みでページを復元します。 bfcac…
Kotlinのファイル読み込みの方法はいくつかありますが、今日はjava.io.Fileを使ったファイル読み込みでKotlinが提供している便利な関数について書いていきたいと思います。 java.io.Fileの拡張関数 Kotlinでは、java.io.Fileの拡張関数として便利な関数がkot…
「コンピュータシステムの理論と実装」を読んだメモを書いていきます。 コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方作者:Noam Nisan,Shimon SchockenオライリージャパンAmazon 前回コンパイラの実装については、以下の記事に書いていま…
「コンピュータシステムの理論と実装」を読んだメモを書いていきます。 コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方作者:Noam Nisan,Shimon SchockenオライリージャパンAmazon 前回のコンパイラ(字句解析器、構文解析器)の実装の記事は…
「コンピュータシステムの理論と実装」を読んだメモを書いていきます。 コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方作者:Noam Nisan,Shimon SchockenオライリージャパンAmazon 前回は↓ iikanji.hatenablog.jp メモ 第9章 高水準言語 今…
「コンピュータシステムの理論と実装」を読んだメモを書いていきます。 コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方作者:Noam Nisan,Shimon SchockenオライリージャパンAmazon 前回は↓ iikanji.hatenablog.jp メモ 前回実装したVM変換…