Maven Enforcer Pluginの実行をスキップする


とあるMavenプロジェクトを mvn clean install しようとしたところ、次のエラーになり正常終了しませんでした。

[WARNING] Rule 0: org.apache.maven.plugins.enforcer.BannedRepositories failed with message:
Current maven session contains banned repository urls, please double check your pom or settings.xml:
central - http://my.internal.repo/xxx
snapshots - http://my.internal.repo/yyy
Read more ⟶

MyBatisでストアドプロシージャを実行する


(もしかしたら以前どこかで書いたかも…)

MyBatisでストアドプロシージャを実行する必要に迫られたことがありましたが、オフィシャルリファレンスを見てもどこにもストアドプロシージャについて記述がないので困った記憶をふと思い出しました。

Read more ⟶

td-agentにプロキシを設定する


sudo systemctl edit td-agent

で編集画面を開き、次を記述:

[Service]
Environment="HTTP_PROXY=http://myproxy.example.com:8080"
Read more ⟶

finalと実質finalの違い


https://ja.stackoverflow.com/a/63099/2808 を見ていて気づいたのですが、 実質final というのは脳内(コンパイラ)で final を補完してくれる、というような処理が行われるわけではないのですね。

Read more ⟶

Spring Bootでは -parameters オプションは有効化されている


MyBatisの設定項目として useActualParamName というものがあります。マニュアルの説明によると、

ステートメントの引数を参照する際、メソッドシグネチャで宣言されている名前で参照できるようにします。 このオプションを有効にする場合、プロジェクトを Java 8 (コンパイラオプション -parameters 付き)でコンパイルする必要があります。 (導入されたバージョン: 3.4.1)

Read more ⟶

Hello Project Panama


追記: Hello Project Panama, on Java17 に Java17 版を記載しました。

はじめに

今個人的にすごく知りたいのはこちらです。ご回答よろしくお願いします!!!!

(質問読んでもらえれば(というかタイトル見てもらえれば)わかると思うんですけど、別に Java がわからん、とか Rust がわからん、という質問では無いです。念の為。もちろん Java も Rust もわからない(多分コード正しくない)ですけどそれは別の話。)

Read more ⟶

Nodeのnative moduleをRustで書いてみる(Neon)


RustプログラムのGUIにElectronを使うことを考えています。

その前調査としてNodeのネイティブモジュールとしてRustプログラムを利用できるようにする Neon というツールを使ってHello, worldしてみることにしました。

Read more ⟶

`fluent-plugin-bigquery` のパラメータ `request_timeout_sec` 、未設定の場合はどうなるの?


要旨

fluent-plugin-bigqueryREADME を読んでいると、 request_timeout_sec のデフォルト値が nil になっている(その下の request_open_timeout_sec には 60 が設定されているのに)のが気になりました。

結論としては、 request_timeout_sec は最終的に httpclientsend_timeout 及び receive_timeout パラメータとして利用され、未設定の場合は そこで指定されているデフォルト値である send_timeout = 120, receive_timeout = 60 が採用されるようです。

Read more ⟶

Spring BootのRestTemplateで text/plain;Windows-31J なRESTレスポンスを処理する


要旨

JSONを返してくるのだけれどMIME typeが text/plain;charset=Windows-31J なレスポンスを、RestTemplateで扱いたい。

@GetMapping(produces = "text/plain;charset=Windows-31J")
public String response() {
    return "{\"text\": \"こんにちは世界\" }";
}
Read more ⟶

reqwest使おうとしたけどよくわからん


はじめに

年の瀬にスクレイピングしたくなって Rust 勉強し始めたけれど、直前に reqwest ライブラリに更新が入ったみたいでコピペコーディングが阻まれた。

知っとかないといけなかったこと

  • 今回の更新 reqwest 0.10.0 で async/await がデフォルトになった(ので従来のサンプルコードは動かなくなった)。
  • Cargo には feature flag(feature toggle) 機能があって、reqwest やら(オフィシャルサンプルで利用している)tokio やらもこれを利用している。
  • tokioを用いる必要があった。
    • 自分が見ていた(古い)サンプルではfuturesfutures::executor::block_onを利用していたので当初それをコピペったのだが次のエラーが出た: ’not currently running on the Tokio runtime.',
    • async/await 構文が標準に取り込まれた、ということは非同期ランタイムを別のものにすげ替えることが可能、みたいなイメージを持っていたのだが、そうではなさそう。
    • おそらく自転車本の補遺が言うところの「非同期エコシステム」が関係する話題。

サンプルを動かすには

https://github.com/seanmonstar/reqwest

Read more ⟶

Rustでライブラリを作成する


はじめに

他の言語で言うところの"ライブラリ"は、Rustでは "ライブラリクレート"(library crate) と呼ぶようです。

Read more ⟶

RestTemplateBuilderに関する覚書


RestTemplateBuilder

  • RestTemplate は Spring Framework(spring-web)だけれども RestTemplateBuilder は Spring Boot。
  • Java の世界の なんちゃらBuilder (StringBuilderとか Lombok のBuilderアノテーションとか、ざっくり総称で Effective Java 版 Builder とでも呼ぶべきか)の使い方は、「まず builder のインスタンスを生成します」から始まるので RestTempalteBuilder もそれだと思っていた。
    • つまり、このクラスインスタンスは Spring Boot のデフォルト状態でインジェクション可能だけれども、このインジェクションされたRestTempalteBuilderインスタンスのスコープは(Spring のデフォルトであるところの)singleton-scope ではない と思っていた。
      • だってbuilderインスタンスが singleton-scope なら、あるbeanbuilderに設定したものが他所のbeanにも波及しちゃうじゃない。
  • けどResttemplateAutoConfigurationの Bean 定義部分どう見ても singleton-scope にしか見えない。何か自分の知らない記法(あるいは暗黙的解釈)がなにかまだあるのか? また 何か Spring マジックが発動しているのか…?

と思ってたけど、RestTemplateBuilderの状態設定メソッド(このへん)見て気づいた、 設定メソッドの中で new RestTemplateBuilder() やっとるんかーい!

Read more ⟶

https://hatena.ne.jp/ にアクセスできてるとお思いで?


はじめに: 試した環境

Windows10 の現時点での最新安定版 Google Chrome および Firefox を用いました。

  • Google Chrome 78.0.3904.108
  • Firefox 70.0.1

また実行に際しては、キャッシュ等の影響を避けるため、Chrome ではゲストモード、Firefox では今回新規作成したプロファイルで確認しました。

Read more ⟶