きり丸の技術日記

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

技術

新着順 人気順

【Tips】電話番号の種類別桁数まとめ

電話番号の桁数と聞くと何桁の番号を思いつくでしょうか。 大半の人が10桁の固定電話番号、11桁の携帯電話番号の2種類思い浮かべるでしょう。 一般的に使われる番号としては間違いではありません。 7割~8割の人は10桁、11桁の電話番号しか使わないのではな…

ハードウェア予約済みのメモリを減らす(軽くなるかも)

最近、自宅のPCでプログラミングをしていると非常に重くなり、フリーズを頻発してしまっています。そのため、早めに買い換えたいのですが、買い替えるまでに対応できることがないか思考錯誤したときのメモ。 なお、これを行ったことにより改善ができたわけで…

【技術】SVNを改めて調べる + 俺の考えるSVNブランチ戦略

以前、ブランチ戦略について自分が纏めた記事を書きました(当記事の最後にリンクあります)。 ただ、Gitについて書いたはずなのに「SVNブランチ戦略」で検索される方が一定数いらっしゃいます。ここ2年くらいSVNについてはもう触っていませんが、自分の知識…

YAMLのブロックを変数化し、変数を参照して共通化する(アンカーとエイリアス)

設定ファイルの一部値を修正漏れが発生したことで、障害が発生した 経験は無いでしょうか。また、タイムアウト値等の連携システムごとに大きく変わらない設定値を記載するのを面倒に感じたことは無いでしょうか。 今回の記事では、YAMLのアンカー、エイリア…

OracleのFOR UPDATEの排他ロックを解除する

既に同様の記事がありますが、自分の備忘録として残しておきます。 トランザクションをCOMMITしたり、ROLLBACKしたりすると、FOR UPDATEで行ったロックが外れます。しかし、デバッグしながら動作検証する等々でCOMMITもROLLBACKもせずに処理を終了してしまう…

Java 8以降、Javaで文字列の日付存在チェックする(閏年でないときの閏日チェック)(Check leap day)

JSON等でデータのやりとりをする時には、直接日付型を渡すことができません。文字列で渡す必要があります。 ただし、日付に関しては閏年が存在するため、単純な正規表現では文字列の異常値を検出できません。 今回の記事では、Javaで文字列の日付が存在する…

Excelで時刻を時間単位の数値に変更する(1:15 -> 1.25H)

時間計算で混乱したのでメモ。 環境 Microsoft Office Home and Business 2019 Microsoft® Excel® 2019 MSO (16.0.14228.20216) 64 ビット ユースケース 分単位の稼働を時間単位で計算したい 対応 時刻表示のまま、24を掛け算すると時間単位の数値に変換で…

JavaのMockitoで部分モックをしたい・本物のメソッドを呼びたい(PartialMock, Answer)

JavaのMockitoを使って、対象クラスをモックにすることがあります。ただし、該当クラスのメソッドすべてではなく一部だけモックにして、他は本物のメソッドを呼びたいことがあります。 今回は、モッククラスから本当のメソッドを呼ぶ方法、デフォルト設定で…

UMLは覚えておくべき(ユースケース記述編)

はじめに UMLは覚えておくべき(概念編) の続編です。 個人的に、ユースケース記述はアジャイル開発では必須だと考えています。 アジャイル開発でなくても、自分の整理のために作っておくのは有効です。 TDD,BDDをもっとうまくする訓練にもなるので、一度は作…

MissingGreenletが起きたときの対応

処理高速化のためにSQLAlchemyを非同期処理で使用していると、気を付けないとMissingGreenletというエラーが発生します。その対策をブログにします。 環境 Python 3.12.3 sqlalchemy 2.0.30 ゴール AsyncSessionを使用している最中に、次のエラーが出たとき…

【Docker】Dockerのログをリアルタイム監視して追い続けたい(tail -f したい)

5分で読み終わります。 最近、Dockerを本番環境運用するために色々調べてます。 普段触らないから、分からないことばかり…。 解決したいこと dockerのログをリアルタイム監視したい。 解決策 「-f」を付けるだけで、「tail -f」みたいな動きをします。 docke…

SpringでAPIからファイルをダウンロードする(Java)

この記事では、JavaのSpringBootを使って、APIからファイルをダウンロードする機能の実装メモを残します。ResponseBodyがないため、@Controllerでも、@RestControllerのどちらで定義しても構いません。 クラウドを使用している場合はAWSであれば、S3で保存し…

Javaでnullを文字列結合したら"null"になるので回避する策を模索した話

※ 20221117 更新 直接的には関係ないですが、こちらも一つの解決策です。 【設計論】文字列だと単純にラップした型でも便利 - きり丸の技術日記 本番環境までは流れなかったものの、Javaで雑に文字列結合していたせいで、"null様"を出してしまいました。 回…

【Tips】GTimeReportでGoogleカレンダーの予定一覧を出力する(業務時間のうち会議にかかった時間の分析に使用できる)

※ あくまで出力結果から分析できるという話です。分析の話自体は、この記事ではしません。 Googleカレンダーの予定を表形式、スプレッドシート、Excel(xls, xlsx)に出力してくれるG Time Reportというサイトがあります。 カレンダーの情報を一覧化すること…

UMLは覚えておくべき(概念編)

UMLは優秀だと思っていますが、何を覚えておくべきで、何は勉強しなくていいのか、という点を自分の言葉で言い換えなおしておくべきか纏めたことはありませんでした。 なので、今回の記事ではUMLの大事さ、覚えておくべきダイアグラムを纏めたいと思います。…

【Java】よく使うassertThatのメソッド集【AssertJ】

「assertThat」と検索すると私のブログに引っかかる人がいるようなので、この記事を書きました。ただ「AssertJ」と検索すると、たくさん有用な記事も見つかります。 なので、この記事は「AssertJ徹底解説」ではなく、「きり丸がよく使うAssertJのメソッド」…

echoコマンドで文字色や背景色を変更する

echoコマンドで出力する文字色や、背景色を変更できることを知っていましたか?こちらを覚えると、正常終了時には緑色で完了メッセージ、異常終了時には赤色で異常メッセージを出力することで、シェルの終了を視覚で検知することができます。 今回の記事では…

Gmailでテキストメールを受信して確認する(クライアント問わない方法)

Gmailでテキストメールを送信する方法はたくさん見つかったのですが、受信してテキストメールを確認する方法は見つからなかったのでブログにします。 なお、GmailではHTMLメールとテキストメールを選んで受信はできません。そのため、受信するではなく、受信…

IntelliJ IDEAでCheckstyleを適用する(自動フォーマットにも適用させる)

コードがコーディング規約に沿っているかを自動で確認してくれるCheckstyleというツールがあります。 ただし、導入してもチェックしかしてくれないので、手動でフォーマットする必要があります。軽微な修正であればIntelliJ IDEAのショートカットでフォーマ…

OpenAPI Generatorをカスタマイズしたコードを生成する(Swagger Codegenとほぼ同じ)

OpenAPI Generatorの使用方法については、基本的にSwagger Codegenと同じようにカスタマイズできます。 今回の記事では、OpenAPI Generatorの生成コードをカスタマイズします。 環境 OpenAPI-Generator-CLI 6.2.0 ゴール 任意のカスタマイズしたコードを生成…

Javaで特定の文字数まで0埋めや任意の文字で埋めたい(padLeft, padRightのような動き)

小ネタ。 環境 Java 17 対応 java.lang.Stringを使用します。内部的にはjava.util.Formatterを使用しています。 intの場合は%0{特定の文字数}d。Stringの場合は%{特定の文字数}sで半角スペースで左埋めしたあと、replace(半角スペース, 任意の文字)で半角ス…

Recursionの有料会員を使用した感想

Recursionというアメリカ発のオンラインでプログラミング、コンピュータサイエンスを学べるサービスがあります。今回の記事では、Recursionを有料会員を使用した感想を記載します。 結論だけ記載すると、非常に良質な学習ができてよいサービスだと感じました…

【Bash】別ファイルに定義した変数を使用する

小ネタ。なお、特に説明はしていませんが、関数も変数と同じように使えます。 環境 Bash GNU bash, version 5.0.17(1)-release (x86_64-pc-linux-gnu) Ubuntu 20.04.2 LTS GitHub Codespaces 概要 変数を使用したいシェルからsourceコマンドで変数を定義した…

【FTP】FTPを自分なりに整理する(特にActive ModeとPassive Mode)

「FTP? 簡単でしょ!」 とか思っていたら、何も知らなくて対応に2-3日持っていかれたので、自分が勉強したことをまとめるための記事。 結論 FTPはパッシブモードでアクセスする 制御コネクションとデータコネクションの2種のポートを開ける必要がある FTPと…

JavaのJacksonライブラリのCsvMapperでCSVを読み込む

JavaでCSVを読み込む方法を調べました。 最初は、SpringBootに組み込まれているObjectMapperで読み込めると思いましたが、ObjectMapperではCSV読み込みはできないようです。ですので、意図的にJacksonライブラリのCsvMapperを依存関係に含める必要があります…

Javaで数値から1桁ずつの数値配列に変換する(109を1,0,9の配列に変換する)

小ネタ。業務で使ったことは無いですが、LeetCodeで必要になることが多いので自分向けに整理します。 なお、もっとよりよいやり方があれば教えていただきたいです。 環境 Java 15 ゴール 入力値は数値 戻り値は数値の配列(Listでも配列でもOK) 最も早く変…

ピュアなJavaScript(ECMAScript)でQRコードを生成する(qrcodejs)

仕事で必要になったので、QRコード生成ライブラリのqrcodejsを素振りします。 Star数が10.5Kと調べたQRコード生成ライブラリの中でも多かったです。懸念点は2015年に更新が止まっていることですね。 ゴール QRコード生成ライブラリのqrcodejsを素振りする。 …

「ファイル名を指定して実行」「エクスプローラ」からcmdを管理者権限で実行する

小ネタ。 今まで、コマンドプロンプトの管理者権限の起動を右クリックから行っていたので、もうちょっと簡単にできないか探った記事です。 環境 Windows 10 ファイル名を指定して実行から管理者権限の起動 WindowsにてWin + Rキーを入力すると「ファイル名を…

Javaのラムダ式(Stream API)で複数キーでCollectors.groupingByする

JavaのStream APIにて、複数キーでCollectors.groupingByする方法を記載します。 環境 Java 17 対応 前提として、次のrecordの項目を元に、Collectors.groupingByをします。 public record Book(String id, String language, int year, String salesTerritor…

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

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