きり丸の技術日記

技術検証したり、資格等をここに残していきます。

2023-01-01から1年間の記事一覧

JavaScriptでundefinedのときにデフォルト値を設定する(Null合体演算子 ??)(JavaのOptional.orEleseみたいなの)

地味に知らなかったので。 前提 JavaScript 対応 Null合体演算子??を使用する。 const item = { "A": "1" }; console.log(item.A.toString()); // "1" console.log(item.B?.toString()); // undefined console.log(item.A.toString() ?? "100"); // "1" cons…

IntelliJ IDEAで必要なファイルだけをrevertしたい(revert selected)

コミット全体をRevertするのではなく、特定のファイルだけをRevertかけたい時の操作を記載します。 環境 IntelliJ IDEA 2022.3.3 対応 GitタブでRevertしたいコミットログを探し、対象のファイルを右クリックします。 選択した変更を元に戻すを選択すると、…

Git Rebaseするときに自動でstashとstash popするオプションや設定(autostash)

Git Rebaseをする際に、ローカルの修正が残っている場合はgit stash, git stash popをしないと実行できません。 毎回そのコマンドを入力するのは面倒ですが、オプションや設定でstashコマンドを実行せずに済むのでそれを記事にしました。 環境 git version 2…

画面全体はportrait(縦)なのにiframeで最小化を実装したらlandscape(横)で判定された

タイトルの出オチ記事。 前提 Chrome 2023/05/02時点 原因 portrait, landscapeは画面のwidthとheightの縦横比で決まる iframeの画面サイズは親画面サイズに依存しない 上記2つの原因により、iframeで作られた画面を最小化(ヘッダだけ見える状態にする)す…

PythonでJSONを一部項目を無視して比較したい(I want to compare JSON in Python while ignoring certain items by deepdiff)

PythonでJSONを比較したいという記事を過去に書きました。しかし、日付項目等々の固定しづらい項目を無視して比較するというユースケースが達成できていませんでした。 今回の記事では、一部項目を無視して比較する方法を記載します。 前提 Python 3.11 Deep…

GitHubのPRをブランチ名でフィルタしたい(filtering pr by branch name in github)

基本的には公式ヘルプ読んでください。 環境 GitHub 2022/11/04時点 対応 base:ブランチ名で特定のブランチに対するPRをフィルタリングできます。fromではなく、toのブランチ名を指しています。ブランチを切るときのbaseとして考えると、意味合いは正しいの…

Pythonでメソッド呼び出し元がNoneパラメータを渡さないようにする(doesn't call none parameter in Python)

メソッド呼び出し元で引数が指定されていない場合は、デフォルト値を与えられます。キーワード引数を使用すると、任意のパラメータに値を与えられます。 ただし、意図的にメソッド呼び出し元でNoneを渡してしまった場合、デフォルト値を使用できません。 今…

Pythonの辞書型の値がNoneならキーを削除する(value-is-none-so-remove-key-in-Python-dictionary)

辞書型の値がNoneの場合に、キーを削除したいことがあったので残します。 前提 Python 3.11 対応 辞書型の値がNoneのとき、キーを削除するのは次のコードです。 {k: v for k, v in dict.items() if v is not None} dict = {"a": "1", "b": "2", "c": None} a…

AWS 認定ソリューションアーキテクト(AWS SAA-C03)の合格記

掲題のとおり、AWS認定ソリューションアーキテクト(SAA-C03)を受験し、合格したので合格記を記します。 前提 AWSは本業でほぼ使ったことがない 副業で使ってはいるが、基本的にAWSにログインして操作することはない 合格日 2023年03月30日(木) 合格した…

Dockerfileを静的解析できるhadolintを使う(Haskell Docker Linter)

Dockerfileを静的解析できるhadolint(Haskell Docker Linter)を使ってみました。詳細は公式やほかの方のブログを見てください。 環境 20230312時点 対応 Dockerfileが存在するディレクトリで、次のコマンドを実行するとDockerfileに対してlintをかけられま…

Pythonで関数とNoneの型ヒントをつけたい(Resolve TypeError: unsupported operand type(s) for |: 'function' and 'NoneType')

Pythonで関数とNoneが取りうるパラメータに対して、Union型で型ヒントを与えようとしたところエラーになったので解決方法をメモします。 環境 Python 3.9 対応 Union型を使わずに、Optional型でヒントを与えます。今回ハマっていたのは、sqlalchemyでand_条…

Git LFSでプロキシを経由させる・させない(HTTPS_PROXY, NO_PROXY)

Git Large File System(Git LFS)のツールを使っていて、プロキシを経由させたり、経由させないようにする方法が見つからなかったのでメモします。 環境 Mac zsh 対応 次の設定値を使用します。大文字と小文字で設定値の優先度が異なります。 # 上に記載し…

SpringのValueに初期値を与える(エラーを起こさずにnullも初期値にする)

小ネタ。@Valueで初期値を与えたい時の記法をメモします。マッピングするプロパティがない場合、BeanCreationExceptionが発生してしまうので、それが発生しないようにします。 環境 Java 17 SpringBootTest 2.7.4 ゴール SpringのValueで初期値を渡す マッピ…

SpringでRedisを使う(データベース、キャッシュとしての使い方)

本業はJavaのバックエンドエンジニアなのですが、Redisを使ったことがないので、素振りします。 今回の記事では、データベース、キャッシュとしての機能を検証することをゴールとします。メッセージブローカー、キューとしての挙動は記載いたしません。 環境…

SpringのDisabledIfを素振りする

条件によってはテストを実行しないアノテーション、JUnit5のDisabledIfだけでなく、SpringのDisabledIfもあります。 基本的にはJUnit5のDisabledIfシリーズで十分なことが多いのですが、Spring側で用意されているものも素振りします。 環境 Java 17 SpringBo…

vmwpを終了したい(kill vmwp)

ピアソンVUEの自宅受験(OnVUE (オンビュー) - オンライン監督)をしたかったのですが、vmwpのプロセスの殺し方が分からなかったので残します。 環境 Windows 対応 vmwpはWSLで使用されているようです。そのため、WSLを停止したらvmwpは殺しきれるはずです…

Flywayで特定のDBだけSQLを実行する(Spring, vender, Postgres)

小ネタ。なお、私のユースケースを満たせていなかったので、調査結果だけです。 環境 Java 17 org.flywaydb 8.5.13 org.springframework.boot 2.7.7 対応 設定ファイルの変更 PostgresやOracle等々で実行するSQLを変更するために、spring.flyway.locationsに…

Gitのコミット時間を変更する(git commit --amend --date="`date -R`")(git squash と組み合わせる)

小ネタ。 環境 Git git version 2.24.1.windows.2 対応 次のコマンドを実行すると、最新のコミット更新時間が現在時刻になります。また、特定の時間に更新したい場合は、Git internal format、RFC2822、ISO 8601形式のどれかで渡してください。 # 現在時刻で…

Javaで1行でNull許容の配列を作りたかった

結局、願ったとおりに動かなかったので、思考錯誤したときのメモだけ残します。 環境 Java 17 対応 Collections.singletonList(T o)を使用することで、1行でnull許容した配列を作成できます。 動作確認 1行で配列を作成する方法は、List.of(), Arrays.asList…

IntelliJ IDEA ULTIMATEでOpen APIのコードを生成する

小ネタ。以前、OpenAPI Generatorをカスタマイズしたコードを生成する(Swagger Codegenとほぼ同じ)という記事を書きました。 上記の記事では、openapi-generatorのjarをCLIで実行してソースコードを生成しています。その検証中に、IntelliJ IDEA ULTIMATE…

何をもってN月第1週とする?

普段N月M週という表現で何となく通じていますが、具体的な定義があるかをしらべました。 結論を先に述べると、明確な定義をしている表現はありませんでした。ですが、週について色々と調べたのでまとめておきます。 木曜日を起点として1年を週に分割する(IS…

Pytestにてネストしたテストケースを作成する

JUnit 5だと@Nestedアノテーションを付与すると、テストクラス内にさらにテストクラスを用意できます。 Pytestでも同様にテストクラスをネストさせたかったのですが、ググってもすぐには出てこなかったので、自分のブログにまとめます。 環境 Pytest 7.1.1 …