Mapstruct Spring Extensions を試してみる
はじめに
MapStruct の公式サイトを見ていると、 Mapstruct Spring Extensions なるサブプロジェクトが発足していたので、何者か調べようと試してみました。
結果、これは Spring の ConversionService の Converter と MapStruct の Mapper を統合して、実装を少し楽にしよう、というもののようでした。
STS(Eclipse) で Import Getting Started Content が進まない
Spring Tools 4 for Eclipse を利用していると、バージョンによって? プロジェクト新規作成時などで "Import Getting Started Content" というタスクが走るのですがこれが全く終わらないことがあります。
map で Result を引き回すときに Err を意識したくない その2
その1はこちらです:
その1では戻り値が i * 2 の i32 型になる話でしたが、その次に考えたかったのは Result が返ってくるメソッドで引き回すときの話でした。こんな感じで:
Servlet 5.1 で Samesite 属性を設定できるようになる
現在の Servlet API では Cookie に SameSite 属性を設定するメソッドがありません。
そのため、仕様外の、フレームワーク固有の方法だったり、低レイヤーの仕組みを使って設定する必要があります。
Android Firefox Webextensions 開発/デバッグ覚え書き
- 
HAXM を有効化するためには 今でも Hyper-V を無効化しておく必要があるらしいです。つまり Android 開発と WSL2 は両立できないということに。
…- 
私は最初 Hyper-V 有効か状態で開発環境インストールを進めたのですが、やはりインストール失敗しました。
 
 - 
 
Android Firefox に addons をインストールする方法
Firefox 69 以降かな? Fenix というコードネームになってから Android Firefox にインストールできる Webextensions(addons) に制約ができ、公式がお薦めとしているものだけしか通常の手順ではインストールできなくなりました。
Rust に reduce は、あります
ググっていると、ちょくちょく 「Rust に reduce は無い、代わりに fold を使え」という話が出てくるのが疑問だったのですが、 reduce が導入されたのって 1.51.0(2021-03-25)と、比較的最近だからなんですね。
しかしリリースノートを見てもこういう変更は載っていないのですね。 細かすぎるから? 気付いてない人は気付かないまま過ごしてそう…
Rust の Result を良い感じにまとめるには
…というのを検索する用語が "エラーハンドリング(error handling)" だということに気付くまでにも時間がかかるくらいの初級者です。
Rust でのエラーハンドリングについては歴史的変遷があるようで、ググると結局今はどうやったらええねん、という新たな疑問が湧いてきます。
Hello Project Panama, on Java17
はじめに
当時(Java14)は Project Panama 用にビルドされた JDK を利用する必要がありましたが、 Java17 では incubator ではあるものの JEP 412: Foreign Function & Memory API が標準 JDK に導入された
Tauri を GUI にして Rust と React に入門する
はじめに
Tauri という、 WebView を利用して GUI を実現する Rust 製フレームワークを試してみました。
Rust も React も入門書から陸続きで書き始められるので、余計なことに気を取られずに済みそうです(ただし、 JS - Rust 間のデータ受け渡しに利用する JSON オブジェクトのシリアライズ/デシリアライズに利用する Serde についての知識は少し必要になりそうでした)。
JPA Entity には Lombok の @Data(@EqualsAndHashCode) を使用すべきでない
問題になりそうなキーワード:
- 
lazy loading
 - 
collection
 - 
循環参照
 - 
mutability
 
@Data(@EqualsAndHashCode) を付与すると hashCode() は自動で算出されるようになりますが、JPA @Entity では上記のような理由で、ハッシュ値が計算できなかったり要件を満たせなくなったりします。
RestTemplateが採用するHTTPクライアント実装の順序
By default the built RestTemplate will attempt to use the most suitable ClientHttpRequestFactory
とありますが、具体的にどうやって決めているの?という話です。
ClientHttpRequestFactorySupplierをみると一目瞭然ですが、
- 
Apache HttpClient (
org.apache.http.client.HttpClient) がクラスパスに存在すればそれを採用する - 
OkHttp (
okhttp3.OkHttpClient) がクラスパスに存在すればそれを採用する - 
上記のものがいずれも無ければ
java.net.HttpURLConnectionを採用する 
Spring BootとTypeScriptで開発するためのプロジェクト設定(Gradle) - Polyfillも必要とする場合
はじめに
前回 は ts-loader を用いて TypeScript をビルドしました。
簡潔にセットアップできたのは良いのですが、実際にはPolyfillを行いたいので babel-loader をベースに再構築することにします。また、自動テスト( jest )も導入します。