日々常々

ふつうのプログラマがあたりまえにしたいこと。

2023年のふりかえり

ことし10本目のエントリ。 毎回このブログの1単位を「記事」と呼ぶか「エントリ」と呼ぶかとかで無駄に悩んだりします。「本記事」とか「本投稿」とかそういう、書いている文章内のスコープを指すの。 で意識的には「エントリ」を使ってるんだけど、これはは…

いま使ってる音を鳴らす装置たち

なんだかんだで色々あるなぁと。音質の違いなんてわかる耳をしていない私なので、たぶん費用対効果そんな良くないんだけど、まぁ。 違う端末間で接続切り替え面倒、Bluetoothのマルチ接続もできなくはないんだけど、それやるとSlack通知音とかが別の端末で鳴…

Kindleアプリの入れ替えで一括解除しようとしたら間違えて削除してしまった間抜けの記録

買ったコンテンツを間違えて消しちゃって、サポートに問い合わせたけどごく一部しか復元できず、再購入するしかなくなりました。その一部始終を記録しておきます。 私のKindle事情 MacのKindleアプリは「Kindle for Mac」とかで、長らく出来がイマイチなもの…

SpringBootでAsyncを使う時に知っておきたいExecutorのこと

SpringFramework 6.0.11 SpringBoot 3.1.2 @Async と @EnableAsync の使い方 SpringFrameworkで @Async を使うとかんたんにメソッドを非同期で実行できます。 @Component class AsyncComponent { @Async void method() { // 時間のかかる処理 } } 使う側は単…

「コーヒーの味はわかんないけどなんとなく豆挽いて手で淹れるのがいいなぁ」

ぶっちゃけコーヒーの銘柄とか覚えてないけど、なんとなく好きだなーいまいちだなーとかはある。 あ、ブルーマウンテンだけはわかる気がする。あんま好きじゃない方に属するけど、飲む飲まないで言うと飲む感じ。 その程度の味覚だけど「毎日一人分のコーヒ…

Javaのバージョンの取り扱い(2023年6月)

ツイート したらそれなりに反応があったので、少し丁寧に書いておこうかなと。 水物な内容なので、自動でつく投稿日時以外にもタイトルに「2023年6月」を入れて強調しておきます。 しょーとあんさー よくわかんないならJava17にしておきましょう。 前提 ツイ…

たすけてあっぷる、iPhoneのロック画面に閉じれないモーダルダイアログが出たの!

(絶望してるときのツイート) 一見ロック画面に表示されるただのダイアログなんですが、どちらのボタンを押しても閉じてくれません。 経緯 ノイズキャンセリングヘッドセットはBoseのQC35IIを使ってます。 Bose QuietComfort 35 wireless headphones II ワ…

API仕様をHTMLファイルで出力する(SpringBoot+Redocly CLI)

このエントリでの「API」はHTTP APIです。Javadocなどでドキュメント化できるAPIではないです。この件に関してはいつかブログとか書くかもだけど、いまは ツイートを参照してください。 SpringBoot 3.1.0 springdoc-openapi 2.1.0 springdoc-openapi-gradle-…

ローカルでSonarQubeを触ってみる(MavenとJaCoCoと)

SonarQube 9.9.1-community Maven 3.9.1 これはなに SonarQubeよくわからん人向け。 「何できるもんなんだろ」とか「現場でSonarQube使ってるものの、設定とか影響範囲わからなくて怖い」とか、色々とあると思う。ローカルでいじくれるとイメージも湧きやす…

Mac mini M2が届いたのでセットアップのメモ

Mac miniが届いたのでセットアップのメモ が 2020-11-15 なので、 P2Y2M22D ぶり。2ならび。 前回は1週間で届いたけど、今回は3週間弱。発表直後だしね。M1出る直前にIntellのを買ってジリジリしてたのだけど、メモリとか使うソフト(主にDocker)の対応とか…

内部構造から学ぶPostgreSQL設計・運用計画の鉄則

届いてた pic.twitter.com/StH3T8GYiW— いろふ (@irof) 2022年11月26日 改訂3版。定番なのかな?少し前にTwitterのTimeLineに流れてきたのをポチって忘れてたのが届きました。やはり物理本は良い……。 [改訂3版]内部構造から学ぶPostgreSQL―設計・運用計画…

3月末のSpringFrameworkのRCEを紐解いてみる

https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement Spring Shell がかわいそうなのでSpring4Shellって呼び方はしてほしくないなーと。でもCVEの番号なんて覚えれないので、通称は欲しい。この名前で広まっちゃったから検索に使っ…

GradleWrapperの追加や更新の手順

Gradle 7.3.2 Gradleを使っているプロダクトだと、基本的にGradleWrapperを使うと思います。 プロジェクト作成時に最新のGradleを使うかと思いますが、Gradleの更新でたまにビルド時間短縮とかもあるんで、新機能使わなくてもWrapperも更新していきたいとこ…

Javaで「ライブラリの最新版がある」と言うときの基礎知識

Log4j 2のバージョンアップのやりかた で "「Mavenリポジトリ」の指すもの" を軽く書きましたが、いい機会なのでもう少し書いておきます。 最新版は使える? https://twitter.com/irof/status/1469139048954724354 こういうツイートをしまして。 見てる順番…

Gradle+SpringBootでLog4j 2のバージョン更新(DependencyManagementPlugin不使用)

Log4j 2のバージョンアップのやりかた からの派生。 特化した内容なので別エントリにします。 2021-12-13追記: 今気づいたけどSpring公式ブログの[Log4J2 Vulnerability and Spring Boot](https://spring.io/blog/2021/12/10/log4j2-vulnerability-and-sprin…

Log4j 2のバージョンアップのやりかた

「Log4j 2に脆弱性があるらしい、バージョンアップしたら治るらしい。」 本日話題のこのテーマで軽く書いておきます。 未完です。 未完公開の言い訳。更新した内容は最後に書いてます。大きな間違いは(今のとこ)ないので、よかった。 2021-12-20追記: 2.17…

Apache POI 5.1.0出てた

irof.hateblo.jp の後続エントリ。 5.1.0でサイズは戻ったです。(少なくとも私が使う範囲は) 依存ツリーも4.1.2の頃とだいたい同じ見た目。 左が5.1.0で右が5.0.0(の前1/3くらい)です。これがまんまjarの数になる。 4.1.2 -> 5.1.0で見るとほとんど差は…

JUnitのNestedなMethodSourceの注意点

JUnit 5.8.1 Java 17.0.1 IntelliJ IDEA 2021.2.3 JUnit5での @MethodSource のおさらい JUnit5にはパラメタライズドテスト用の @ParameterizedTest があり、様々な方法でパラメーターを与えられます。 その中でもパラメーターにある程度柔軟性が欲しい場合…

公式ドキュメントを読めというけど

公式ドキュメントだからと言って、考えなしにそのコードを切り貼りしてはいけないんです。 っていう私の失敗談。露悪趣味はありません。 Javaの公式ドキュメントとしてJSLのAPI仕様(Javadocと呼ばれたりする)があります。 コード例が載ってると「挙動理解…

技術から入ってもいいと言う話

システム開発の分野は技術の移り変わりが早く(これも他の分野と比べたことないので「早い気がする」と言うだけなのだけど)、なんらかの成功を収めた企業などの採用しているものがバズワードとなって一気に広まったりします。この時、その技術だけを追って…

コード、区分、フラグ、IDと名前。

システム開発ではよくコードや区分、フラグと呼ばれるものを扱います。 これらが混同していたり、曖昧になっていたりすることは多いので、その辺りを整理しておきます。 IDや名前なんかもこの文脈に登場するので、ついでに。 コード コードはエンコード/デ…

ローカルクラスとしてrecordを使う

irof.hateblo.jp こちらで書いた「Local record classes」を使う時の注意。 触ってると案外使う機会が出てきそうな感触があったので、気をつけるところを書いておきます。 ローカルクラス そもそもローカルクラスってあまり使わないものなんで存在も認識され…

recordのネスト、ついでに他も

record Outer(int a) { record Nest(int b) { } } こんなことしたらどうなるんだろうと気になりまして。 record が単にクラスのシンタックスシュガーであれば、NestはインナークラスになるのでOuterのインスタンス変数、ここでは a にアクセスできるんですが…

IntelliJ IDEAで複数のクラスをマージする

IntelliJ IDEA 2021.2.3 値オブジェクトなクラスを呼吸をするように作っていると「あれ、これ同じじゃ?」となることがたまにあります。 使用箇所が少なければ手作業でマージしてもいいのですが、多くの箇所で使っているクラスだと大変。 文字列の一括置換で…

IntelliJ IDEAのGradleが使うJDKバージョン設定箇所

IntelliJ IDEAでGradleのタスク実行しようとしたら意図したバージョンで動作しなくて文句言われる場合の設定。複数のJDKを設定していなかったら起こらないと思います。 IntelliJ IDEA 2021.2.3 あ、Mavenも大体一緒です。 設定する場所 Build, Execution, De…

Recordを使ってく上で気にしとくこと

Java16で導入されたRecordですが、Java17リリースによりこれから一気に使われていくことかと思います。 Java17雑感で「データクラスを新しく作るならRecordを使ってみる」とか書いたんで「よしRecordを使おう!……ところで何気にしなきゃなんだっけ?」な私向…

開発環境のJDKセットアップ

最近「どこどこのサイトからダウンロード」とかしてないなぁ、と思ったので。 IntelliJ IDEA Community Edition 2021.2.2 SDKMAN 5.12.4 macOS(メイン) SDKMAN!にお任せ。 IntelliJ IDEAからはAdd JDKで ~/.sdkman/candidates/java に入ってるのの主だった…

テストでのデータベース単位の捉えかた

データベース(に限らずあらゆる永続化リソース)を使用するテストをいかにして行うかはいつだって悩みの種です。この悩みは「どうやったらデータベースを使用するテストを行えるかわからない」ではなく「なんとかやってるけど、不満のようなものがある」と…

Java17雑感

LTSとなるJava17が出ました。組織が今後もJavaを使っていけるかの試金石になるバージョンだと思います。 実際のとこLTSだから特別安定してるとかそんなことはないと思うし、6バージョン(3年)ごとにLTSにするってのもたぶんOracleさんが言ってみただけで、…

とりあえずSpringBootアプリケーションをherokuで公開する

手順の全て mkdir {てきとうななまえ} cd {てきとうななまえ} curl -O https://start.spring.io/pom.xml -d dependencies=web -d javaVersion=8 Applicationクラス作成(後述) git init git add . heroku create heroku git:remote -a {createで作られたも…