きり丸の技術日記

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

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

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

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

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

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ライブラリのCsvMapperでCSVを読み込む

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

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

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

Jenkinsのパイプラインで起動したシェルを永続化する(ProcessTreeKiller回避)

Jenkinsのパイプラインから起動することで、常に最新の資材が展開されているnodeサーバを建てようとしました。 しかし、Jenkinsサーバでコマンドを打つとnodeサーバが起動するものの、Jenkinsのパイプラインからコマンドを実行すると起動しません。Jenkins上…

REST APIのレスポンスJSONでデータが無い時の表現

REST APIで対象の項目にデータが無い時の表現方法が分からなかったので纏めました。 大きくは2つ、派閥があります。 null undefined データ項目を定義しない null派閥 RFC8259でJSONが定義されています。 JSONの値としては、オブジェクト、配列、数値、文字…

GitHubに連携しているソースをIntelliJ IDEAからブラウザで開く(Jump to the GitHub version of a file)

私の中ではよく使うユースケースですので、忘れないようにメモ。 ブログを書いていると、記事に出現したソースをGitHubにPushし、ブログ側にリンクを張ることがよくあります。 その際に、masterではなくコミットハッシュ値付でリンクを張ることで、GitHub側…

エンティティを渡すだけでDBのユニットテストのセットアップしたい(SimpleJdbcInsertとBeanPropertySqlParameterSource)

皆さんはDBのユニットテストを行うとき、どのようにテストのセットアップを行っていますか。 私はSimpleJdbcInsertを使用しています。テーブル名とInsert対象のカラムと値のマップを渡すだけで更新してくれるので、個人的には使いやすいと思っています。 し…

Rust製のコード行数をカウントするtokei(時計)を使う

コメントを除外し、有効なコードの行数(LoC)をカウントするtokei(時計)というツールがあります。 エンジニアの生産性をコードの行数で測れるわけではありませんが、Rust製のツールということで素振りしてみました。 環境 tokei GitHub Codespaces 特徴 …

【Java】WinでもFile.separatorを使わずにスラッシュでディレクトリを表現できる

タイトルの出オチ記事。 Windows環境でディレクトリを表現するときは、次の表現はすべて同じディレクトリを指します。 String path1 = "tmp\\dummy"; String path2 = "tmp" + File.separator + "dummy"; String path3 = "tmp/dummy"; Linux等の環境では、デ…

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

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

Oracle19cのイメージをローカルでDockerビルドする

OracleのDatabaseで開発することになりました。サクっと環境構築したかったので、Dockerでローカル環境を構築しようとしましたが、Docker Hubにはイメージが提供されていません。ですので、自分でOracleDatabaseのイメージをビルドする必要があります。 今回…

SpringSecurityが導入されているControllerをWebMvcTestでテストする【SpringBoot】

以前にControllerをテストする記事を書きました。しかし、SpringBootTestの使い方しか分からなかったので、WebMvcTestのやり方を理解していませんでした。 ですが、ToshiakiMaki@makingさんのサポートにより、なんとかWebMvcTestでのテストができるようにな…

SpringBootで特定の環境のみFlywayが動かないようにする

既存のシステムが利用しているDBに相乗りしてアプリケーションを作ることがあります。 ユニットテストのためにDBマイグレーションできるFlywayは使いたいが、相乗りする本番環境DBは管理していないので余計なことはしたくない。 今回の記事では、SpringBoot…

FlywayとSpringで検証環境と本番環境で投入するデータを変更する

仕事ではDBマイグレーションとしてFlywayを使用しています。ただ、表やテーブル等のDDLのみで、マスタデータ等のDMLは手動で管理していました。ですので、FlywayでDMLも管理することにしました。 しかし、そのまま適応してしまうと検証環境と本番環境のデー…

gradleでのbootRun時にプロファイルを指定できるようにする

ローカルでプロファイルを指定してbootRunすることはあまりありませんが、地味に便利だったので記事にします。 なお、bootRunタスクに限らず他のタスクでも使用できます。 環境 gradle 6.7 Java 11 Spring Boot 2.3.5 RELEASE ゴール gradleのbootRun時のオ…

JavaでFTPを使ったアップロードを実装してテストも行う(commons-net)

JavaでFTPを使ったアップロード機能を実装したので、未来の自分のため残しておきます。ダウンロード機能も簡単に実装できるようですが、仕事では扱わなかったので、必要なときにまた実装します。要望があったら頑張って書きます。 なお、ソースコードをガン…

【Docker】クライアントからプライベートリポジトリへのアクセス時に発生するX509エラーを回避する

社内に構築しているプライベートリポジトリに対して、Dockerでログインしようとしたが掲題のエラーが発生したので、回避した時のメモ。 ゴール 次のコマンドでログインが成功するようにする。 docker login private-repository 次のエラーが出たら失敗。 Err…

LAPRAS SCOREをPythonで取得し、GitHub ActionsでGitHub Profileを更新する

私は自分の力を客観的に判断するために、LAPRAS様を利用しています。LAPRAS様でLAPRAS SCOREなるエンジニアの能力を数値化したものがあり、そちらを利用してGitHub Profileに貼り付けていましたが、自分でキャプチャして画像化したものなので一定期間更新し…

【シェル】Expectで特定の文字を検出したら、別のコマンドを打って環境構築を自動化する

参考元の記事が優秀ですので、この記事は「やってみた」レベルの記事になります。詳しいことは参考元記事を参照してください。このコマンドを忘れていたので、私のメモ用記事でもあります。 環境構築時、ディスプレイに「password:」が出力されたら、自動的…

【Java】ドットでSplitしたい時は\\.で区切る

タイトルだけで終わる出落ち記事。 30分引っかかったので、1時間で記事にして残す。 方法 ドット(.)は正規表現の特殊文字。 ですので、ドットをエスケープする必要がある。 String[] versions = "1.0.10".split("\\."); 本当にやりたかったこと Gitでmaste…

Flyway+Springでデフォルトの接続スキーマを設定ファイルで指定する

複数のスキーマがあるDBに対して、Flyway+Springでアクセスしようとしたときに半日くらい設定に苦労したので、メモとして残しておきます。 環境 Flyway 5.2.4 PostgreSQL 13 SpringBoot 2.3.5.RELEASE Java Java 11 YAML 設定方法 spring: datasource: drive…