きり丸の技術日記

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

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

CSSでフォントをBoldよりもさらに太くしたい(text-shadow)

フォントのサイズはこれ以上調整できない、フォントの太さもBoldにしているのでこれ以上太くできない。 そんな時にtext-shadowを使うことで文字を太く見える方法があったのでメモします。もっとよりよい方法があれば教えていただきたいです。 ゴール フォン…

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

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

副業で気にするべきこと

7月から副業をしているのですが、仕事の進め方が本業と違い、うまくいきませんでした。 この記事では本業と副業の差分を棚卸し、来月以降の副業を円滑に進められるように振り返りをしていきます。なお、私個人の感想のため、現場によっては異なる可能性はあ…

HTML, CSSで表示領域を超える文言は3点リーダーの...で省略する(1行、複数行)

よく使うけど、毎回忘れるので。 環境 Chrome ゴール 表示領域を超えていれば文言を省略する 1行 複数行 アイコン + 文言の表示領域でも正しく省略する 1行で表示領域を超えていれば文言を省略する <div style="width:150px;border: 10px solid red"> <div class="wrap-text"> ルイズ・フランソワーズ・ル・ブラン・ド・ラ・ヴァリエ</div></div>…

Javaでカンマ区切りの文字列を作る(StringJoiner, StringBuilder, String)

小ネタ。JavaのStringJoinerを使うことで、カンマ区切りの文字列を簡単に作れます。 今回の記事は、StringBuilderを使ったカンマ区切りの文字列の作り方をメモします。既存のStringBuilderでのカンマ区切りの文字列を作り方も併記します。 環境 Java 15 クラ…

HTMLでブラウザの大きさによって表示する画像を変更する

ヘッダ画像等をスマートフォン、タブレット、PC等で表示分けをしたい、というユースケースで使える技。 環境 HTML 対応 sourceタグのmedia属性に目的の端末のウィンドウサイズを指定することで、端末ごとに画像を表示分けできます。 詳しいことは、MDN Web D…

Flexboxでtableのrowspanやcolspanのように結合したい

なぜ動いているかはちゃんと理解していませんので、解説はしません。ソースコードのみ残します。 ゴール HTMLのtableタグのrowspanやcolspanのように、縦列結合、横列結合をする。画像のように緑はrowspan=3、オリーブ色はcolspan2で結合しています。 ソース…

IntelliJ IDEAでMavenの依存関係をbuild.gradleにコピペするとGradleの依存関係に自動変換される

超小ネタ。Mavenでライブラリが書いてあるから、それをGradle用に書き直したいとコピペしていた時に気づきました。 なお、IntelliJ IDEAでこの機能名を探したのですが、見つかりませんでした。 環境 Intellij IDEA Ultimate 2021.1.2 機能 Spring Bootを例に…

Node.jsで実行中のOSがWindowsであることを判別する

小ネタ。 環境 Node.js v12.22.3 ユースケース WinとMac, Linuxで実行したいファイルが異なるので、事前に判別したい gradlew.batとgradlew等々 OSごとに最適なパスに切り替えたい 対応 process.platformがwin32であることを確認する。 const isWin = proces…

Javaで事前条件を満たしていないテストを安全に終了させる(AssumeTrue)

たとえばDBは本番環境ではOracle、テスト環境ではH2を使っているケースがあるとします。その場合、Oracleでは動くがH2では動かないSQLを作成してしまうことが考えられます。 他にも、本番環境はAmazon RDS for Oracleを使っているが、テスト環境で用意できて…

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

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

スプレッドシートでAセルにBセルの文言が含まれていることを確認する(Containsみたいなの)

AセルにBセルの文言が含まれていることを確認したかった時のメモ。 固定値がAセルに含まれていることを確認することは簡単でしたが、確認したい文言を可変にして確認する方法を調べるのに時間がかかりました。 環境 Google スプレッドシート 2021/06/17時点 …

PythonのPytestでParameterizedTestをする

PythonのPytestでもParameterizedTestをしたかったので、それを調べた時のメモ。ParameterizedTestのメリット等は特に解説しません。 環境 Python 3.8.6 Pytest 5.4.3 ゴール 2021年の各月の末日を求める。求める際にはParameterizedTestを使用する。 使い方…

Javaで標準入力と標準出力を使ったコードをテストする

標準入力と標準出力をテストしようとすることは基本的にはありません。標準出力ではなく、Loggerに書き込まれていることを確認することが多いでしょう。 しかし、知っておいて損はありません。今回の記事では、FizzBuzzを使って標準入力と標準出力のテストを…

『思考法図鑑 ひらめきを生む問題解決・アイデア発想のアプローチ60』の読書感想

翔泳社が翔泳社ブックアンバサダーを100名募集というサイトにて、翔泳社の本の感想をSNSを通じて発信するアンバサダーを募集していました。前回の第1回も参加させていただき、そのときのレポートはこちらになります。今回の第2回も当選させていただき、非常…

私が好きなアーキテクチャ(ポートアンドアダプター)を説明する

新人育成用に自分が知っている知識を棚卸するための記事です。なお、解釈が誤っている可能性は十分にあります。 キーワード ポートアンドアダプター ヘキサゴナルアーキテクチャ ミュータブル/イミュータブル 腐敗防止層 ポートアンドアダプター(ヘキサゴナ…

Mavenのproxy設定は1つしか有効に設定できない

タイトルの出オチ記事。これを知るためだけに4日くらい無駄にしました。参考先のブログに感謝です。 環境 Maven 3.6.0 結論 Mavenでproxyを通す設定は、~/.m2/settings.xmlに設定する必要があります。 ただし、~/.m2/settings.xmlに複数定義できても、設定は…

Pythonの標準ライブラリで先月今月来月の月初月末を求める(datetime, calendar)

Pythonの標準ライブラリを使って、先月今月来月の月初月末を求める方法がわからなかったので、記事にします。 なお、サードパーティ製のライブラリdateutilを使ったほうが楽に導き出せるようですが、この記事では標準ライブラリにこだわることにします。 環…

Pythonで記述されたPlaywrightの実行環境をDockerで用意する

最近、私の中でMicrosoft製のE2EツールのPlaywright(Star数25.6K)がアツイです。 今回、PlaywrightをCI環境で使いたかったため、実行環境をDockerで準備する手順を残します。また、CIでE2Eのシナリオを実行できるようにします。 環境 Python 3.8.6 Playwrigh…

DBからJavaのResultSetにLocalDateTimeやBigInteger等の基本型以外の型を直接設定する

TwitterやJavaのオープンチャットででたまーにResultSetから直接LocalDateTimeやBigIntegerを取得できずに、一旦Stringやjava.sql.Dateで取得した後に変換している、ということを見かけることがありました。直接LocalDateTimeやBigIntegerで取得することがで…

WSLでAWS Vaultを使えるように設定する

副業でWSL1にAWS Vaultを導入する必要があったので、その手順をメモします。なお、こちらのIssueコメントを読めば、9割完了です。英語が読める人はこちらを参考にしてください。 環境 WSL1 Ubuntu 20.04.2 LTS (Focal Fossa) AWS Vault v6.3.1 ※ WSL2でも同…

Javaで比較するときはObjects.equalsを使うのがオススメ

小ネタ。正直、記述量が増えるので好き嫌いで言うと嫌いですが、NullPointerException(以後、NPE)が発生しなくなるので安全に処理したい時はオススメです。 環境 Java 15 出現時期 java.util.Objects Java1.7 Java7の時代からあります。分かりづらいですが、…

AI-900: Microsoft Azure AI Fundamentalsの合格記

掲題の通り、「AI-900: Microsoft Azure AI Fundamentals」を受験し、合格したので合格記を記します。 前提 JavaのエンジニアでAIで何かをやった経験は無し Azureでの開発経験あり 構築はしてないので、一からやれと言われたら分からない AZ-900は所持 AI系…

【Tips】Google スプレッドシートの日付フォーマットを変更する

Googleスプレッドシートに関しては、公式ヘルプが優秀なので、画像以外は新規性ないです。 スプレッドシートの言語と地域を元に通貨・日付・番号フォーマットが決定されます。 言語と地域をアメリカ合衆国に設定していると、デフォルト日付フォーマットは「M…

営業は隠れた不安を発掘して解決策を売る(SPIN営業)

「営業は不安を売る」という、伝聞で聞いた話を忘れないようにメモします。なお、私は営業でもないし、伝聞なので正確なことは話せません。 大前提 価値に金を出す 相手が営業に応じて契約を結ぶとき、それは相手が営業してくれた内容に対して価値を認めてく…

Docker HubにDockerイメージをアップロードする(ECR等でも流用可能?)

自作のDockerイメージをDockerHubにアップロードすることができると、簡単に同一の環境を配布できます。DBをイメージ化すればマスタデータやトランザクションデータも含めて共有することもできますし、他システムに対して自システムをモックとしてコンテナで…

LombokでToString.IncludeとExclude、callSuperで便利にログ出力する

小ネタ。JavaにはLombokという便利なライブラリがあります。その便利なライブラリの中にあるToString、その中でもIncludeとExclude, callSuperを駆使すると便利だったので、ぜひ覚えてください。 この記事では、ToStringのInclude, Exclude, callSuperの3つ…

Dockerのコンテナ間通信をする方法をまとめる

コンテナ間通信をしたい時に、どのURLを指定すれば通信できるか分からなかったので、それを調べた時のメモです。 Dockerを単体でrunさせることは想定していないため、docker composeで起動する前提で記載いたします。 環境 Docker version 20.10.5, build 55…

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

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

Javaで起動後DBの値をキャッシュに持つ等をPostConstructで処理させる(SpringBoot)

Javaのオープンチャットにて、「SpringBootの起動時にDBアクセスしてマスタデータを保持することは可能ですか?」といった質問が出てきました。 この記事は、解決方法として挙げられたPostConstructという処理を理解していなかったので、PostConstructを勉強…