2022-01-01から1年間の記事一覧
小ネタ。「今年の12月に解約したい。日割りが必要ない日付を教えてほしい」といった、解約する「年月」までは把握しているが、解約する「年月日」までは分からないといったケースに対応するロジックをJavaで求めます。 環境 Java 17 対応 暦上の1ヵ月の定義…
小ネタ。いつもset([data for data in datum])のように、List型を経由してたので、備忘録。なお、タイトルの出オチ記事です。 環境 Python 3.8 対応 ブレース(brace, {})でくくると、set型になります。 ブラケット(bracket, [])でくくると、list型になり…
WindowsのVS Codeのデフォルトターミナルを変更したかったので、Git Bashに変更する方法を残します。 環境 VS Code 1.64.2 Windows 11 Git Bash 4.4.23 方法 VS Codeのsettings.jsonを開く。 $HOME/AppData/Roaming/Code/User/settings.json settings.jsonに…
Java Advent Calendar 2022の8日目の記事です。指摘コメントよろしくお願いします。 Javaに限らず、interfaceは使い道を理解することは難しいです。この記事では、私が普段使用しているinterfaceの使い方実例を記すことで、情報共有を行うことを目的としてい…
性能試験でJMeterを使用しているのですが、24時間負荷をかけ続ける長期安定の性能試験を使用するときに失敗したのでメモとして残します。 環境 CentOS 対応 nohupと負荷をかけたいコマンドを記載する。 nohup コマンド & # nohup jmeter xxxx & 失敗した理由…
JavaのMockitoを使って、対象クラスをモックにすることがあります。ただし、該当クラスのメソッドすべてではなく一部だけモックにして、他は本物のメソッドを呼びたいことがあります。 今回は、モッククラスから本当のメソッドを呼ぶ方法、デフォルト設定で…
MyBatisのアノテーションで親クラスのデータ取得時に、子や孫クラスを一緒に取得する方法(EAGER LOAD)、必要になってから取得する方法(LAZY LOAD)を記載します。 なお、常に子クラスと一緒に扱うときはEAGER LOAD, 必要に応じて子クラスを使用する場合は…
自宅で再現できなかったので原因はわかっていません。しかし、対策はうまくいったので残します。 MyBatisにてLazyLoadで取得したエンティティの子データをJavaでgetter経由で取得しようとしました。その時にClass Not Foundが発生しました。詳細なメッセージ…
1組の乱太郎、2組のきり丸、3組のしんべヱの情報が欲しい、といった組と名前の両方をキーにした検索をしたい時があります。 この記事では、単純にANDで結合できず、複数の条件を組み合わせた複合でのキーを検索条件として実行する方法を記載します。 環境 My…
タイトルではToStringを加工するような書き方をしていますが、処理イメージを伝えるものですのでToStringは使用しません。 デバッグのためにLombokで大量のフィールドをもつクラスをToStringで出力すると、当然大きな文字列となります。基本的には全フィール…
掲題のとおり、ビジネス統計スペシャリスト エクセル分析ベーシックを受験し、合格したので合格記を記します。 前提 Excelは最低限のSUMやVLOOKUPしか知らない 普段業務では使用していない 合格日 2022年10月12日(水) 合格した時の点数 925点。 合計1000点…
Pythonで可変長引数のメソッドしか用意されていないものの、処理上は配列にしてパラメータを渡すしかないことがあります。 今回の記事では、配列を可変長引数に渡せるようにする方法を残します。 環境 Python 3.9 方法 配列の変数に対して*を付与すると、可…
Docker環境のPoetryで構築しているアプリケーションがありましたが、poetry add libraryではライブラリの追加ができませんでした。 今回の記事では、Docker環境のPoetryで構築しているアプリケーションに対してライブラリを追加して、poetry add libraryと同…
PythonのFastAPIのStreamingResponseでGeneratorを使用しながら、UTF-8 BOMのファイルをダウンロードさせるAPIを作成しました。ただ、作成したファイルを確認したところ、ファイルの途中で余計なBOM(\ufeff)が付与されてしまっていました。 今回の記事では…
JavaでGradleで開発していると、build.gradleに静的解析タスクであったり、コード自動生成タスクであったり、間接的なタスクが増えることがあります。 今回は不要なタスクを別ファイルのgradleファイルに分割する方法を記事にします。 環境 Java 17 Gradle 7…
OpenAPI Generatorの使用方法については、基本的にSwagger Codegenと同じようにカスタマイズできます。 今回の記事では、OpenAPI Generatorの生成コードをカスタマイズします。 環境 OpenAPI-Generator-CLI 6.2.0 ゴール 任意のカスタマイズしたコードを生成…
Javaで現在行を取得する方法を記載します。 環境 Java 17 対応 現在スレッドのlineNumberを取得すれば、現在行が取得できます。 return Thread.currentThread().getStackTrace()[2].getLineNumber(); 0番目 Threadクラス 1番目 この処理している行 2番目 呼…
JMeterでproxy設定をする記事は見つかりましたが、proxyを経由しない設定が公式マニュアルを見ないと見つからなかったので、記事にします。 環境 JMeter 5.5 対応 CLIでの設定 起動時のオプションで-Nを付与すると、proxyを経由しなくなります。 jmeter -N *…
※ 特に見どころはありません。 業務都合にて、「アプリケーションをメンテナンスモードに切り替えても、参照系APIだけは参照できるようにしたい。更新系APIは拒否したい。」との要望が出てきました。 そもそも、「そんなこと可能?」ということを素振りした…
URLに記述していてもサーバにデータは送らない箇所があり、それをURIフラグメントと呼びます。具体的には次のURLのうち、#以降の#:~:text=nainaistarを指します。 https://nainaistar.hatenablog.com/#:~:text=nainaistar URIフラグメントは、リンク先のWeb…
Excelとスプレッドシートの両方でも活用できる方法です。 「04/18」と表示したい場合、セルの書式設定を変更して目的のフォーマットで表示するのが一般的だと思います。 しかし、「【日報】きり丸 04/18」のような固定文言 + 今日の日付をCONCAT関数を使用し…
職場でE2EツールとしてPlaywrightを使用しており、ソースコードをPythonで書いています。そのときのPlaywrightの環境構築手順はこちら。 ただ、Playwright単体はどの言語で書かれても問題ないものの、どうしてもテストライブラリ等のエコシステムは言語によ…
よくある内容の記事ですので、特別な内容はありません。私が迷わないようにするための記事です。 日付と日付を比較することは簡単ですが、日付の開始日と終了日をまとめた期間と期間を比較して、重複があることをチェックするのはたいへんです。なお、次の式…
Recursionというアメリカ発のオンラインでプログラミング、コンピュータサイエンスを学べるサービスがあります。今回の記事では、Recursionを有料会員を使用した感想を記載します。 結論だけ記載すると、非常に良質な学習ができてよいサービスだと感じました…
掲題の事象が発生しました。結論を出すと、ただの私の認識誤りです。ただ、よくある内容ですので、二度目が発生しないようにメモします。 Pythonと記載していますが、同様の条件が揃えば他のライブラリでも発生しうる内容です。JavaのMyBatisでも似た事象は…
JavaだとMapのvalueを取得する際に、取得できなかった場合のデフォルト値を返すgetOrElseメソッドが用意されていますが、JavaScriptにはありません。今回の記事では、その同等の挙動を簡潔に書けるようにします。 環境 TypeScript 4.7.4 CodeSandboxで検証 …
ストラテジーパターンというGoFのデザインパターンが良いコード悪いコードでも紹介されていたので、素振りします。 自分の言葉で上手な言語化ができていないので、メリットは参考情報や良いコード悪いコードの購入、または別の方の記事を参考にしてください…
Javaのオープンチャットに「staticメソッドをMockitoでモックして値を返したい。NestするとNullが返るので、それを回避したい」という要望があったので、素振りしました。 環境 SpringBootStarterTestを基本としています。 Java 17 org.springframework.boot…
環境 GitHub Codespaces @google/clasp 2.4.1 前提 .clasp.jsonファイルのparendIdにスプレッドシートのIDが記載されていること。(create claspで作成された.clasp.jsonであること) { "scriptId": "GASエディタのID", "rootDir": "./src", "parentId": [ "…
JavaのStream APIにて、複数キーでCollectors.groupingByする方法を記載します。 環境 Java 17 対応 前提として、次のrecordの項目を元に、Collectors.groupingByをします。 public record Book(String id, String language, int year, String salesTerritor…