プログラミング
以下の追記部で紹介した話です。 qiita.com 本文 lazy-initが無効な場合、Bean初期化処理中であればblockしても特に問題は起きません。 このため、Bean初期化時のwarmup目的でblockすることもできます。 一方、lazy-initが有効な場合、アクセス時のコンテキ…
qiita.com この記事はSwift/Kotlin愛好会 Advent Calendar 2023の3日目の記事になりました。 Kotlin言語には、JetBrainsの管理する公式Slackワークスペースが有ります。 kotlinlang.slack.com このワークスペースでは、現在:thank-you-color:として以下のス…
一度ローカルからプロジェクトを消した上で、以下のようにcloneし直すことで解決します。 git clone -c core.symlinks=true https://github.com/<your_name_here>/<your_repository_here> 参考にさせて頂いたサイト github.com github.com 文脈 自分はokioをビルドしようとしてこの問題に当たりまし</your_repository_here></your_name_here>…
自分が取り組んでいるKotlin製OSSプロジェクトにて、Gradle 7.6.2 -> Gradle 8.3の移行をやった際にハマったことのメモです。 github.com きっかけ このプロジェクトには、GitHub ActionsでKotlin x Javaのバージョンを組み合わせ毎の挙動を確認するグリッド…
TL;DR gradle.propertiesでorg.gradle.jvmargsに-Dfile.encoding=UTF-8を指定するのが良さそう jmh-gradle-pluginに指定する方法は無さそう 背景 jmh-gradle-plugin(me.champeau.gradle.jmh)は、環境に合わせた文字コードでhumanOutputFileを出力します。 こ…
やりたいこと flywayによるマイグレーションでテーブルが追加された場合に、共通のトリガー設定SQLを動かすようなことをします。 生で書いてしまった場合1度しか実行されないため、これを実現するには工夫が必要です。 やり方 Callback機能を利用することで…
この辺り知識が薄いので、もっと良いやり方が有りましたらコメント頂けると嬉しいです。 やり方 FLATTEN関数を使えばできるようでした。 support.google.com 例えば、「E2:E40の範囲からB2より大きいものをFILTERした結果とG2:G40の範囲からB2より大きいもの…
TL;DR gradle.kts利用の場合、引数をpluginsブロックで参照することはできないようだった 代替案としては、環境変数に設定 -> System.getenvで読み出す形式にするのが一番シンプルそうだった やり方 紹介する内容は以下からの抜粋です(余計なdiffが入ってし…
TL;DR 自分が遭遇した問題の原因はorg.jmailen.kotlinterプラグインとKotlinバージョン間の互換性が無いことだった プラグインバージョンを確認するのが良いかも 起きたこと Kotlinプラグインのバージョンを1.7.21 -> 1.5.32に変更した所、Caused by: java.l…
「Swift/Kotlin愛好会 Advent Calendar 2022」の枠が空いていたので急遽書いてみました。 qiita.com GitHubでは、画像のように、リポジトリ内の言語割合をカラフルに表示してくれます(画像はKotlinリポジトリより)。 この表示でのKotlinは紫っぽい色ですが…
やること テーブル別でUPDATED_ATカラムへのトリガー設定を行っている状況が有ったとします。 -- 関数作成 CREATE OR REPLACE FUNCTION trigger_set_timestamp() RETURNS TRIGGER AS $$ BEGIN NEW.UPDATED_AT = NOW(); RETURN NEW; END; $$ LANGUAGE plpgsql…
H2データベースを使ってR2DBCのpostAllocate/preReleaseの挙動を確認するためのSpring WebFluxプロジェクトを作成していた所、Cannot determine database's type as ConnectionFactory is not options-capable. To be options-capable, a ConnectionFactory …
以下の記事を書いていて、「DSLContextを使い捨てたら非効率なのでは?」と感じたので、管理方法を考えてみたメモです。 その他の便利要件も含めています。 あくまでメモなので、これがどれ位性能に影響するか等は未検証です。 qiita.com 前提 トランザクシ…
お詫び 過去公開していた記事では、Spring WebFluxで複数リクエストを同時に処理する場合を考慮していませんでした。 JDBC接続 x Spring WebFluxでトランザクション管理をすると壊れる可能性が有るため、やらないことをお勧めします。 「R2DBC接続でトランザ…
やり方 dependenciesにjooqGenerator("jakarta.xml.bind:jakarta.xml.bind-api:3.0.0")を追加すれば生成が通りました。 dependencies { /* 略 */ jooqGenerator("jakarta.xml.bind:jakarta.xml.bind-api:3.0.0") /* 略 */ } 補足 implementationだと通りませ…
Run/Debug ConfigurationsのEnvironment variables(に限らず任意の項目)は表示されない状態になっていることが有る 特にSpring Bootで遭遇しやすいかも Modify optionsから設定を行うことで表示することができる 画像付きの操作方法は↓の記事の一部として…
対処 io.r2dbc:r2dbc-postgresqlをorg.postgresql:r2dbc-postgresqlに直せば通ります。 背景 r2dbc-postgresqlは0.9以降でリポジトリの移行が行われています。 github.com
TL;DR ローカル関数を利用するとパフォーマンスが低下する このため、パフォーマンスが重要な場面ではローカル関数を利用すべきでない 文脈 日頃からお世話になっているintellij-rainbow-bracketsのコードを読んでいた所、以下のコードを見つけました。 gith…
記事執筆時点で、FlowにはgroupByが実装されていません。 kotlin.github.io 一方、FluxにはgroupByが実装されています。 projectreactor.io (kotlinx-coroutines-reactiveが入っているような環境では)FlowとFluxは相互変換できるため、検討の余地が有ると…
やり方 marp: trueを設定する を設定する 設定後のヘッダーは↓のようになります。 --- marp: true # header: 'header text' # footer: '![height:50](image1.png)' --- 背景というか やり方そのものは↓にちゃんと書いてあるんですが、自分は…
↓の続きです。 wrongwrong163377.hatenablog.com 問題の内容 value classを引数に含む関数をkotlin-reflectを用いて呼び出す処理には、以下のような問題が存在していました。 "KotlinReflectionInternalError" when using `callBy` on constructor that has …
定義したもの import org.jooq.Field import org.jooq.Record inline fun <reified T> Record.read(field: Field<*>): T = this[field, T::class.java] 使い方 以下のように使います。 import org.jooq.Field import org.jooq.Record // FOOテーブルに定義された文字列</reified>…
PowerShellでgit tagすると、タグの量が多ければエンターを連打しないと続きが出てこない ファイルに出力すれば全て取れる コマンドはgit tag > ${対象ファイル名} 練度の低さがバレてしまう
状況 JUnit5のParameterizedTestで、MethodSourceが空Streamを返した場合、以下のようなエラーになります。 Configuration error: You must configure at least one set of arguments for this @ParameterizedTest org.junit.platform.commons.PreconditionV…
TL;DR ローカルのJavaバージョンを16から1.8に変更することで成功するようになった 本文 当該のgradlewはバージョン6.xで生成されたもので、これはJava 16には対応していません。 gradlewの再生成ができない状況だったため、ローカルのJavaバージョンを1.8に…
今まではIntellij IDEA Ultimateの無料トライアルはアカウント登録も不要な完全無償で行えていました。 このため、ライセンス発行までどうしても時間がかかる場合なんかには無料トライアルで済ませることができていました。 一方、今日見た所アカウント登録…
TL;DR コンテンツをChromeで開き、開発者ツールでbackgroundを設定することで、背景色を変えてプレビューできる カラーパレットから色を変更すればより分かりやすく確認できる 変更対象とする要素は、有ればbody、無ければ一番外側の要素が安定 Chromeに限ら…
TL;DR 問題が起きているディレクトリを一旦削除して作り直し、ファイルを配置し直した所解決した 恐らくDbUnit等の不具合ではなかったと思われる 状況 SpringDbUnitでテストを作成していた所、DatabaseSetupアノテーションに設定したファイルがjava.lang.Ill…
ここで紹介する方法は正規の更新手段でなく、設定ファイルに変更が入っていたりすると動かなくなることも考えられるため、実行は自己責任でお願いします。 自分のMac環境で、Docker DesktopからDownload Updateを押しても実行が上手く行かず、更新できない状…
TL;DR DB跨ぎの外部キーが絡む状態でDatabseSetupすると、外部キーの元になるinsertがコミットされずにデッドロックが発生する エラーメッセージはCaused by: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock wait timeout exceeded;…