【R2DBC】Could not resolve io.r2dbc:r2dbc-postgresqlへの対処

対処 io.r2dbc:r2dbc-postgresqlをorg.postgresql:r2dbc-postgresqlに直せば通ります。 背景 r2dbc-postgresqlは0.9以降でリポジトリの移行が行われています。 github.com

【Kotlin】ローカル関数の利用はパフォーマンス低下につながる

TL;DR ローカル関数を利用するとパフォーマンスが低下する このため、パフォーマンスが重要な場面ではローカル関数を利用すべきでない 文脈 日頃からお世話になっているintellij-rainbow-bracketsのコードを読んでいた所、以下のコードを見つけました。 gith…

【Kotlin coroutine/Java Reactor】Flow.groupByしたい場合Flux.groupByが使えるかも

記事執筆時点で、FlowにはgroupByが実装されていません。 kotlin.github.io 一方、FluxにはgroupByが実装されています。 projectreactor.io (kotlinx-coroutines-reactiveが入っているような環境では)FlowとFluxは相互変換できるため、検討の余地が有ると…

【Marp】公式のダークテーマを使う

やり方 marp: trueを設定する を設定する 設定後のヘッダーは↓のようになります。 --- marp: true # header: 'header text' # footer: '![height:50](image1.png)' --- 背景というか やり方そのものは↓にちゃんと書いてあるんですが、自分は…

【日記】kotlin-reflectのvalue classを引数に含む関数呼び出しに関するバグ修正に携わった

↓の続きです。 wrongwrong163377.hatenablog.com 問題の内容 value classを引数に含む関数をkotlin-reflectを用いて呼び出す処理には、以下のような問題が存在していました。 "KotlinReflectionInternalError" when using `callBy` on constructor that has …

【jOOQ】Recordからの値読み出しを省力化する【Kotlin】

定義したもの 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>…

【日記】Kontributorになった

最終的にやったことをまとめた記事を投稿しました。 wrongwrong163377.hatenablog.com やったこと JetBrains/kotlinにGitHubでPRを出し、マージしてもらいました。 当該PRは以下です。 github.com このPRの内容 このPRに関しては全てテストです(変更行数は2…

このブログの運用と何をどこにアウトプットするかについて

プログラミング系の内容をQiitaに書きはじめ、趣味向けのサブブログを立ち上げ、その割に何をどこに書くかの話をまとめていませんでした。 ということで、今更ですが、このブログの運用と何をどこにアウトプットするかについてまとめます。 サブブログに何を…

【Windows】特定フォルダへの書き込み(ファイル作成)を禁止する

やること あるディレクトリへのファイル作成を禁止します。 注意点 自分はプログラムからの書き込みを禁止しようと考えてこれを実行しましたが、これをやるとプログラムが正常に動かなかったです。 やり方 操作したいフォルダを右クリック -> プロパティを開…

【PowerShell】git tagを全て取得する

PowerShellでgit tagすると、タグの量が多ければエンターを連打しないと続きが出てこない ファイルに出力すれば全て取れる コマンドはgit tag > ${対象ファイル名} 練度の低さがバレてしまう

【Java】Unable to make private static int java.time.OffsetDateTime.compareInstant(java.time.OffsetDateTime,java.time.OffsetDateTime)...への対処

TL;DR Java 16でAssertJのassertThatを使ってOffsetDateTime同士を比較するとエラーになる場合がある Mockkに関しては直接の原因じゃない? 原因はJDK内部のカプセル化の強化 Java 11に変えるか、オプションを指定することで解決できる 本文 冒頭に書いたよ…

【SpringBoot】java.lang.NoSuchFieldError: Companionで処理が失敗する状況への対処【OkHttp】

TL;DR 自分の場合、Dependency Management PluginによってOkHttpのバージョンが書き換わったことが原因だった com.squareup.okhttp3:okhttp:4.xが期待される所でcom.squareup.okhttp3:okhttp:3.14.9が利用されていた gradleのdependenciesに利用したいバージ…

【JUnit5】MethodSourceで空Streamをエラーにしたくない場合の対処

状況 JUnit5のParameterizedTestで、MethodSourceが空Streamを返した場合、以下のようなエラーになります。 Configuration error: You must configure at least one set of arguments for this @ParameterizedTest org.junit.platform.commons.PreconditionV…

1年のアウトプットを振り返る

毎年やっている振り返りですが、今年もやります。 wrongwrong163377.hatenablog.com アウトプットまとめ まず今年1年で行った主なアウトプットです。 外部OSSへのコントリビュート FasterXML/jackson-module-kotlin square/moshi mockito/mockito-kotlin Jet…

【gradle】gradlewの実行がGeneral error during semantic analysis: Unsupported class file major version 60で失敗する問題への対処

TL;DR ローカルのJavaバージョンを16から1.8に変更することで成功するようになった 本文 当該のgradlewはバージョン6.xで生成されたもので、これはJava 16には対応していません。 gradlewの再生成ができない状況だったため、ローカルのJavaバージョンを1.8に…

【日記】Intellij IDEA Ultimateの無料トライアルがJetBrainsアカウント必須になっているっぽい

今まではIntellij IDEA Ultimateの無料トライアルはアカウント登録も不要な完全無償で行えていました。 このため、ライセンス発行までどうしても時間がかかる場合なんかには無料トライアルで済ませることができていました。 一方、今日見た所アカウント登録…

画像や動画の透過情報をChromeで確認する

TL;DR コンテンツをChromeで開き、開発者ツールでbackgroundを設定することで、背景色を変えてプレビューできる カラーパレットから色を変更すればより分かりやすく確認できる 変更対象とする要素は、有ればbody、無ければ一番外側の要素が安定 Chromeに限ら…

【DbUnit】DatabaseSetupで、特定ディレクトリに配置したファイルがUnable to load dataset from ${ファイル名}となって読み込めない問題への対応【Spring】

TL;DR 問題が起きているディレクトリを一旦削除して作り直し、ファイルを配置し直した所解決した 恐らくDbUnit等の不具合ではなかったと思われる 状況 SpringDbUnitでテストを作成していた所、DatabaseSetupアノテーションに設定したファイルがjava.lang.Ill…

MacのDocker Desktopが更新できない問題への対処

ここで紹介する方法は正規の更新手段でなく、設定ファイルに変更が入っていたりすると動かなくなることも考えられるため、実行は自己責任でお願いします。 自分のMac環境で、Docker DesktopからDownload Updateを押しても実行が上手く行かず、更新できない状…

【DbUnit】DB跨ぎの外部キーが絡む状態でDatabseSetup時にLock wait timeout exceeded; try restarting transactionになる問題への対処【Spring】

TL;DR DB跨ぎの外部キーが絡む状態でDatabseSetupすると、外部キーの元になるinsertがコミットされずにデッドロックが発生する エラーメッセージはCaused by: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock wait timeout exceeded;…

【kotlinx-metadata】KmValueParameter.typeはnullにならない

TL;DR KmValueParameter.typeは実際の所non-nullだが、定義上nullableになっている ドキュメントも「KmValueParameter.typeがnon-nullならKmValueParameter.typeはnull」というような記述になっている ※0.3.0時点の話 本文 使っていて疑問を感じたので質問を…

【Kotlin】Intellij IDEAでjava.lang.OutOfMemoryError: Java heap spaceでコンパイルが失敗する状況への対処

Kotlin 1.3.71のプロジェクトで、バージョンを1.4や1.5に上げた所、java.lang.OutOfMemoryError: Java heap spaceでコンパイルが失敗する状況になりました。 Preferences -> Build, Execution, Deployment -> Compilerで、Shared build process heap size (M…

【MySQL】SQL_CALC_FOUND_ROWS + SELECT FOUND_ROWS()でLIMIT前の行数をカウントする方法はMySQL8.0.17で非推奨化している

本文 タイトルとMySQLの公式ドキュメントに書かれている内容が全てです。 dev.mysql.com 「SQL_CALC_FOUND_ROWS SELECT FOUND_ROWS()」というような形で検索しても非推奨化している旨がパッとは出てこなかったためこの記事を書きました。 補足 公式ドキュメ…

【Spring】SQLにパラメータとしてJSON配列を設定したい場合、JSON_ARRAYを使う

NamedParameterJdbcTemplateに対して発行するクエリで、JSON配列をパラメータとして設定する所で詰まったので、備忘用のメモです。 状況 以下のような処理を行うクエリを作成していました。 select JSON_OVERLAPS(/* テーブルから取得したJSON配列 */, /* パ…

【Confulence】テンプレートに画像を添付できない問題をGoogle Drive経由で回避する

Confulenceには現在テンプレートに画像を添付できない不具合が有ります。 jira.atlassian.com この不具合は2021年7月に「今後3ヶ月以内(最長11月内?)のリリースを目指す(意訳)」というコメントが残されていますが、すぐにでもなんとかしたい方向けの記…

Intellij IDEAで、Kotlinプラグインを1.5にアップデートしたらビルドができなくなった問題への対処

2021/5/14追記 幾らか試した雰囲気では、File->Project Structure->Project ->Project SDKのバージョンが1.8(Java 8)だとこの問題が出るように見えました。 ここをJava 12以降(試したのが12と16だっただけで、それ以前でできないかは見ていません)にする…

【日記】初めてOSSにコントリビュートできた話

とても小さなドキュメント修正ですが、google/kspにコントリビュートした/人生初のコントリビュートができた話を書きます。 当該PR github.com 何をやったか あるドキュメントでgradleのrepositories設定でmavenCentralの順番が後ろになっていた問題を修正し…

【uBlock】YouTubeで「インターネットに接続してください」「現在オフラインです。接続を確認してください。」と出てしまう状況への対処【アドブロック】

YouTubeで、以下の画像のように「インターネットに接続してください」「現在オフラインです。接続を確認してください。」と出てしまう状況への対処法をまとめます。 やり方 ここで紹介する方法は2021/3/23に id:Yuki2718 氏より当記事のコメントにて共有頂い…

【日記】自分の記事を機械翻訳して無断転載していたページの広告を剥がした

TL;DR 日本語記事を機械翻訳で転載して広告収入を得ているサイトがそれなりに有るっぽい 当該サイトがGoogle広告を使っている場合、DMCAテイクダウンを成立させれば検索から除外可能 この余波か当該サイトに広告が表示されなくなっていた 見かけたらどんどん…

【Gradle】jmh-gradle-pluginでjava.lang.NoClassDefFoundErrorが出る場合の対処

TL;DR Orikaの依存をjmhImplementationではなくimplementationで定義した所解決しました。 Orikaに限らず、ライブラリによってはjmhImplementationだと上手く動かないようです。 問題 jmh-gradle-pluginでOrika 1.5.4を利用したベンチマークを作成していた所…