覚えたら書く

IT関係のデベロッパとして日々覚えたことを書き残したいです。twitter: @yyoshikaw

CVE-2022-21449 が対象となるJavaバージョンはどれ?

Javaの脆弱性である CVE-2022-21449 が巷で話題・問題になってますが、 CVE-2022-21449は、ECDSA(楕円曲線デジタル署名アルゴリズム)のJavaの実装に欠陥があるため、不正なデジタル署名に対する検証が 誤って成功してしまう というものです。 この脆弱性に…

Files.lines(Path) 利用時は try-with-resources とともに利用する

久しぶりに Java 触ったときに何の悪気もなく以下のようなコードを書いてしまいました。 public class FilesTrial { public static void main(String[] args) throws IOException { Path path = Paths.get("/home/hogehoge/dummy.txt"); Files.lines(path).f…

WSL版のAlmaLinux をインストールする

Windows の WSLで CentOS 代替 の Linux を使いたいなーと思っていたら、ちょうど以下のニュースリリースが出てました。 せっかくなので、Red Hat Enterprise Linux(RHEL)とのバイナリ互換がある AlmaLinux をWindows環境にインストールしてみました。 前…

AWS EC2インスタンスで L2TP/IPSec クライアントの設定をした際のメモ

思いっきり上記内容を参考にさせてもらって環境構築した際のメモです。 ここでは、Amazon Linux 2 AMI (HVM) - Kernel 4.14, SSD Volume Type - ami-09662e4f2b2fb67f9 を使用しています EC2にElasticIPを割り当てている前提としています。 環境構築のための…

psqlでnull を明示的に表示したい

Postgres の psql を使って SELECT の SQL を実行した場合に、対象のカラムの値が null なのか 空文字列なのか区別がつきにくいです。 そういった場合は、nullを明示的に分かりやすい文字列で表示する設定を行うのがよいです。 たとえば、値が null なら "(n…

Java - Streamの先頭に値を追加したい

Java の Stream(java.util.stream.Stream)で扱っているデータ群の先頭に別の値を追加したい場合 Stream.concat メソッドを使うのがよいと思います。 ■ソースコードサンプル ["Dta1", "Data2", "Data3", "Data4"] というデータ群の先頭に "|| Title ||" と…

Mavenプロジェクトの依存関係にローカルのjarファイルを追加する

すぐ忘れるので自分用のメモです。 ローカルにしかないような ライブラリ(jarファイル)を Mavenプロジェクトの依存関係に追加する場合は pom.xml に以下のように記述します。 <dependency> <groupId>anything-groupId</groupId> <artifactId>anything-artifactId</artifactId> <version>anything-version</version> <scope>system</scope> <systemPath>${basedir}/l</systempath></dependency>…

Windows 11 で Internet Explorer を起動する

Windows 11 環境で、IE(Internet Explorer)のデスクトップアプリケーションを起動することは流石にできないと思ってました。 が、実は起動する手段が存在することを今さらながらに知りました。 一応自分のPCでも起動することができたので、それに関するメ…

WSL環境へのPostgreSQLのインストール作業メモ

Windows 11のWSL(Ubuntu)環境に PostgreSQL をインストールした際の実行メモです。 ■まずは sudo apt update で パッケージ一覧を更新 sudo apt update ■Postgres をインストール sudo apt install postgresql ■Postgres の再起動を実行 sudo /etc/init.d/…

Selenide - Webサイトへアクセスする

以前、Selenium と Chrome (ChromeDriver)を使用してWebサイトへのアクセスを確認しました。 Selenium を使うと手数が増えてしまうようなので、各プログラム言語ごとにSeleniumのラッパーが存在しています。 Java用のライブラリをとして存在している Seleni…

Java - ある月の最初の〇曜日・最後の〇曜日 の日付を取得したい

例えば、ある月の最初の水曜日の日付を取得したい、ある月の最後の水曜日の日付を取得したい。 というケースが出てくる場合があります。 それを Java でやるサンプルです。 こういった場合は、java.time.temporal.TemporalAdjusters クラスを利用するのがよ…

Windows 11 - エクスプローラーの初期表示フォルダをPCにする

Windows 11 でエクスプローラを開くと初期表示フォルダが クイックアクセス になっていますが、 初期表示フォルダを PC に変更したいケースもあります。 そのような場合は以下手順で出来ます。 1) エクスプローラを開きます。 2) 右上の ・・・ となっている部…

Selenium - WebDriverを使用してWebサイトへアクセスする(Java + Chrome)

Selenium の WebDriver(ChromeDriver) で Weサイトへアクセスするサンプルです。 Selenium といえば、Python を利用している例をよく目にしますが、ここでは Java の例となっています。 前提条件 実行環境に ChromeDriver がインストールされており、Path…

Chrome - クライアント証明書を自動選択する

よほどセキュリティの厳しいWebサイト(サービス)にアクセスすることが無い限りは出くわさないのですが、 Webサイトによっては、クライアント証明書による認証を必要とするケースがあります。 クライアント証明書は通常一度OSやWebブラウザに登録すればそれ…

Windows - SeleniumのChromeDriverをインストールする

Google Chrome を Selenium で制御するための ChromeDriver を Windows (今回は Windows 11 環境) にインストールする方法です。 winget でインストールできればいいのですが、そうもいかないようなので。以下の手順でやりました。 ドライバのダウンロード…

Windows 11 への WSL2 のインストール

Windows 11 環境で WSL (WSL2)を有効化する手順です 管理者権限で PowerShell を起動して、 wsl --install を実行します ■実行例 PS C:\Users\ykiv> wsl --install インストール中: Linux 用 Windows サブシステム Linux 用 Windows サブシステム はインス…

winget で PowerShell 7.x をインストールする

Windows 11 環境で PowerShell のバージョン確認したら 5.x でした。 PowerShell 7.x の方が使い勝手がいいはずなので、PowerShell 7.x を winget を使ってインストールしてみます。 公式ドキュメント: これに従ってインストールするだけの話です。 以下で …

PowerShellのバージョン確認

PowerShell自体のバージョン確認方法をすぐ忘れてしまうので自分用のメモです。 バージョンを表示するには $PSVersionTable を実行すればよいです。 実行例は以下の通りです。 PS C:\Users\ykiv> $PSVersionTable Name Value ---- ----- PSVersion 5.1.22000…

winget - Windows用のパッケージマネージャー

Linux には当然のように存在し、Mac でも Homebrew というようなパッケージマネージャーが存在しています。 パッケージマネージャーを利用すれば、インストールしたいソフトウェアやドライバ、それらが依存関係を持つものをコマンド操作でインストールしたり…

Mac - SeleniumのChromeDriverをインストールする

Google Chrome を Selenium で制御するための ChromeDriver を Mac にインストールする方法です。 HomeBrew でインストールするのが手っ取り早いです。HomeBrewが入ってる前提で以下の通りです。 brew install chromedriver 私の環境では、HombeBrew のバー…

Mac - Homebrewのupdateでエラーになった

結構なこと触ってなかったMacbook で、Homebrew のアップデートをしようとして brew update を実行したら 以下のエラーになりました yMacBook:~ yki$ brew update Error: homebrew-core is a shallow clone. homebrew-cask is a shallow clone. To `brew upd…

Linux - bashワンライナーループ(seq + xargs)

bashのワンライナーループを seq と xargs を使って書く方法です。 上記は for でやってましたが、それを seq と xargs に置き換えたものです。 基本的に以下で実行できます。{n} 部分が実行回数です seq {n} | xargs -I@ sh -c '<something command>' or seq {n} | xargs -L 1 </something>…

Excelファイル開くときに読み取り専用を推奨する

ローカルで一人で作業している場合には問題になりにくいですが、共有ディレクトリにExcelファイルを置いて複数人で触る場合、 誰かが参照目的でファイルを開くと編集モードになってしまい、実際に編集したい人が編集操作ができない。 というようなケースがあ…

Kotlin - ByteArrayの16進表記の値を取得したい

Kotlin で ByteArray型のデータの 16進ダンプ(16進表記の文字列)を取得したい場合のやり方です。自分用のメモです。 Googleで検索すればいくらでも出てくる話です。 Kotlinの場合、Javaと違って 対象の型自体に関数を定義できるので、以下のように ByteArr…

Bash - 実行したシェルスクリプトが存在するディレクトリの絶対パス取得

Linuxで実行したシェルスクリプト自身が格納されているディレクトリの絶対パス(フルパス)を取得したい場合の方法です。 /hogehoge/fuga/fuga/exec_sample.sh を実行した場合に /hogehoge/fuga/fuga を取得したい という内容です。 実行されるシェルスクリ…

Chrome のリリーススケジュール

Googleで検索すればすぐ出てきますが、自分用のメモということで。 Chrome の今後のリリースス予定 Chromium, Chrome の今後リリーススケジュールを確認したいときは以下ページでできます。 アクセスすると以下のような感じです。今後の各バージョンがいつリ…

curlコマンドで対象ポートへの通信が可能か確認する

なぜか現場だとネットワーク通信がうまくいかないなぁ。という場合の原因は様々ですが、 原因の一つにファイアウォールによって特定ポートの通信が許可されていない というものがあります。 以下は、Linux 環境で curl コマンドを利用して、ファイアウォール…

DHMOの危険性に関して考えてみました

最近、ジヒドロゲンモノオキシド(DHMO)というものの存在を知りました。 他サイトからの引用となりますが、DHMOに関して以下のような記載があります。 DHMOの特徴 DHMO は無色透明・無味無臭の物質であり、毎年数千人規模の人を死に至らしめている。 • 酸性…

PowerShell - クリップボードの画像データをファイルに保存する

コピーした画像 や コピーしたExcelのセルのデータ などで 画像として保存可能なクリップボード上のデータを保存するためのPowerShellの例です。 Windows 標準の Windows PowerShell (PowerShell 5.x) であれば以下のようなコマンドで クリップボードのデー…

Azure SQL Database - SSHポートフォワーディングでのSSMSの設定

Azure SQL Database のDB に SQL Server Management Studio (SSMS) で手元のPC環境から接続したい、 だけど、会社のファイアウォールによって 1433 ポート(SQL Server接続用ポート)での通信が許可されていない。 だから、SSHポートフォワーディング(SSHト…