きり丸の技術日記

技術・エンジニアのイベント・資格等はこちらにまとめる予定です

TeraTermで自動ログインできるようにマクロ作成を素振りする

転職して開発端末はMacでしたが、特定のサーバを作業するときはセキュリティの関係でWindowsの踏み台サーバから操作する必要がありました。 その踏み台サーバには、データベースの操作にA5M2、ターミナルにTeraTerm等々のよく使われているWindowsのソフトが…

Javaで法律に従った暦による期間計算

以前、法律に従った暦上の計算方法を記事にしました。 当記事ではJavaで法律に従った暦による期間の計算を求める方法を記します。 環境 Java 15 ユースケース 月次で契約するサブスクリプションサービスを実施しています。中途半端な日に解約されてしまうと…

【Tips】暦上の期間計算の定義(1ヵ月の定義、パターン記載)

「1ヵ月」って定義難しいですよね。2月は28日なのに、3月は31日だったり、月に含まれる日数は異なります。1ヵ月、3ヵ月等の契約をするときは、暦で計算することが普通です。「1ヵ月 = 30日」で計算すると楽ではあるのですが…。 どのように定義するかを悩んで…

Javaで○○様等の○○を埋める(MessageFormat)

あまり明示的に書くことが無かったので、MessageFormatを知りませんでした。 この記事では、メール等のタイトルや文言に対して、MessageFormatを使うことで「○○様」というフォーマットから「きり丸様」という文言を導き出すことをゴールとします。 環境 Java…

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

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

仕事は終わりから逆算して考える

新人のころから言われてきていて、30目前になってもまだ上手く仕事ができないことがあるので、見つめなおすためのポエム。全ての仕事に当てはまるわけではないので、ご注意ください。 この記事は要約すると「ホウレンソウをしっかりしよう」です。 当たり前…

腐敗防止層を意識して綺麗なドメインを保ちたい

Qiitaに書いた記事のお引越し記事です。 本記事は ドメイン駆動設計#1 Advent Calendar 2019 20日目の記事です。 こんにちは、会社でエリックエヴァンスのDDDの輪読会が開催されていて、半年経ってようやく飲み込めてきた程度のレベルのきり丸です。 注意 私…

トヨタで学ぶソフトウェアの品質管理:自動化とニンベンの自働化(AutomationとAutonomation)

トヨタの品質管理には、自動化(Automation)とは異なるニンベンの付いた自働化(Autonomation)という概念があります。海外でも英語でも判別できるように異なるスペルが存在します。日本語では同音異句なので、口頭では英語の方が分かりやすいでしょう。 こ…

200記事突破しました

2021/04/15(木)に投稿した記事で200記事を突破しました! 投稿数を確認してみると、100記事を突破したのが2020/09なので、8ヵ月で100記事を書きました。3日に1投稿、週に2-3記事を書いたことになりますね。12月がアドベントカレンダーということもあり、投…

JavaでNullPointerException回避する方法をまとめる

今日も小ネタ。 NullPointerExceptionを回避するのは簡単だけど、もうちょっとスマートに書けない? ということを纏める記事。 余談ですが、NullPointerExceptionは「ぬるぽ」とか大文字取って「NPE」とか呼んでます。以後、「NPE」で統一します。 環境 Java…

【Tips】GoogleDriveでバックアップするなら元ファイルを最新とすべき

小ネタだけどよくやらかすのでメモ。 ファイルをコピペして、特定のバージョンを示すためにバックアップを残すことはよくあると思います。 GoogleDriveのスプレッドシートでは、履歴を持つことができ、更に復元できます。 しかし、バックアップのファイルの…

JavaでNullを意識せずにNullableな配列項目をStream APIで処理する

超がつく小ネタ。よく忘れるのでブログ化。 環境 Java 15 結論 Optional型のofNullableメソッドでNullでも問題なく処理できるようにする。 そのあと、Stream APIのflatMapメソッドとCollection型のstreamメソッドを組み合わせる。 Optional.ofNullable(detai…

IntelliJ IDEAでGradleのテストが遅いときに試す(タスクランナーの変更)

小ネタ。処理が遅いと同僚が困っていたので、教えたら劇的に改善しました。 環境 IntelliJ IDEA Ultimate 2020.3 タスクランナーを変更する Gradleの設定画面から、ビルド及び実行に使用(Build and run using)とテストの実行に使用(Run tests using)をデ…

JavaのBigDecimalをまとめる(リストのBigDecimalの計算も)【2021年】

自分が知りたかったBigDecimalの知識を集める記事。なお、基本型を扱う関係上、新規性は多くありません。強いて言えば、2021年でも扱えるってことくらいですかね。 環境 Java 15 この記事を読んでわかること一覧 precisionとscale(有効桁数と精度) 型宣言 …

【2021】SpringBootでpropertiesやymlの設定ファイルが読み込めることのテストを書く

去年書いた記事で使用していたクラスがDeprecatedになっていたので、新しく更新します。 前回の記事を書いた時にアップデートしておけばよかったです。 変更点 ConfigFileApplicationContextInitializer から ConfigDataApplicationContextInitializer に変…

2021/03の第4週に読んで参考になった記事の紹介

今週も読んで参考になった記事をまとめます。 気が向いたら、同じ内容を自分のブログとしても書きます。Zennのスクラップみたいな感じにしようと思っています。カテゴリも「スクラップ」にしました。 IntelliJ IDEAにて「Command line is too long」でテスト…

エンティティを渡すだけでDBのユニットテストのセットアップしたい・改

前にデータセットアップを面倒くさがって、BeanPropertySqlParameterSourceを使ってパラメータの項目名を取得していました。その時の記事。 そのまま使用していると、自分の目的通りには使えなかったので結局自作しました。 その時のメモ。 環境 Java 15 H2 …

ノートPCが急に休止状態になったりスタンバイになったときに疑うこと(Thinkpad L13の磁気リードスイッチ)

最近、会社のWindows端末を新しくしたのですが、なぜか何もしていなくても急に休止状態になることがありました。 今後のノートPCも同じような仕組みで急に休止状態になることもあるかもしれないので、共有兼メモとして残しておきます。 環境 Thinkpad L13 ww…

2021/03の第3週に読んで参考になった記事の紹介

役に立ったけど自分でブログにするほどじゃないし、元々の記事やヘルプが優秀だからそちらを参照してほしいという物を集める記事。 つまり、この記事自体には中身はありません。まぁ、本の紹介記事があるなら、ブログの記事を紹介する記事だってあっていいは…

AWS 認定 クラウドプラクティショナーの合格記(AWS CLF)

掲題の通り、「AWS 認定 クラウドプラクティショナー」を受験し、合格したので合格記を記します。 合格日 2021年03月13日(金) 合格した時の点数 1000点満点で、869点でした。 700点が合格ラインですので、かなり余裕で合格できたことになりますね。分から…

SpringBootでRequest前後に処理を挟むインターセプタを実装する(テストコードもあり)

JavaでRequestの前後に処理を挟むことができるインターセプタを実装したので、メモをします。 実装方法は色んな書いてあるものの、テストまでは書いてないことが多いのでそこで差別化を図ります。 環境 Java 15 SpringBoot 2.4.1 ユースケース APIの流量制御…

基本型以外を使って設計レベルアップ!(Primitive ObsessionとFCC)

いいコードとは、悪くないコードのことを指すと考えています。 そして、悪くないコードを目指していくには、Code Smellsに注目すると改善できます。 今回の記事では、Code SmellsのなかのPrimitive Obsession(基本データ型の執着)に注目します。 Primitive…

時間もお金も使い切ってしまう(パーキンソンの法則)

あとで自分で忘れたものを調べるための知識シリーズ。正式名称をどこかにメモしないと、私は忘れるので。 パーキンソンの法則とは 1958年のイギリスの歴史学者・政治学者シリル・ノースコート・パーキンソンが著作「パーキンソンの法則:進歩の追求」て提唱…

IntelliJ IDEAでGradleの依存関係更新時にライブラリがダウンロードできないときの対処

1度覚えたら多用するので2度調べることはありませんが、誰かが検索する可能性を考えてブログにします。 IntelliJ IDEAではキャッシュを使用して実行しているのか、誰かがbuild.gradleを修正して依存ライブラリが増えても自動でダウンロードされません。この…

2020年度の確定申告終わりました!

はじめての確定申告が終わりました! エンジニアとしての副業を今後もしていきたいですね。不動産投資もしているので、物件を売るまでは確定申告と向き合わなければならないのですが…。 正直、今年で一番確定申告で苦労したと思うので、確定申告の記録を残し…

Gradleでのビルド後のファイル名の設定方法

小ネタです。地味に知らなかったので、自分で纏めました。 環境 Java 15 Gradle 6.6.1 ※ なお、Spring Initializr で生成されていることを想定しています。 コマンド 次のコマンドでビルドすることを想定しています。 ./gradlew build 指定したファイル名で…

JavaでRESTが簡単にテストできるRest-Assuredを素振りしてみた

JavaでRESTが簡単にテストができるとされるRest-Assuredというライブラリを知ったので素振りしました。ですので、あまり深い話はこの記事ではしません。 なお、印象としてはSpringのMockMvcを使っているのであれば、わざわざ追加でRest-Assuredを導入はしな…

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

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

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

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

組織は無能で構成される(ピーターの法則)

どの組織にも当てはまるわけではありません。また、現在所属している組織が無能で構成されているということをアピールしたいわけでもありません。 有能な人間は能力の限界まで昇進できる 一般職としては有能だが、管理職としては無能な場合は昇進できない等…