I am a Software Engineer. I am currently working as a Director, VP of Products and VP of Engineering at codeTact Inc.
terraform
aws
go
opentofu
OpenTofuでセルフビルドしたterraform-provider-awsを使う
Terraformを本格的に使っているとProviderに手を入れたくなることがある.久しぶりに,手を入れてセルフビルドしたProviderを使う必要に迫られたのだが,ローカルにあるProviderを直接使う方法を完全に失念していた.最近,TerraformからOpenTofuに移行したこともあり,折角なのでOpenTofuでセルフビルドしたProviderを使う方法を調査した.
Takafumi Asano
iac
OpenTofuを使ってみる
HashiCorp, Inc.のIBMによる買収が発表されたため,OpenTofuに移行することを決めた.オフィシャルドキュメントを見れば導入において基本的に困ることはないのだが,インストーラスクリプトを軽く読んだりしたので,そこで得た知見や考えたことなどを記録しておく.
windows
clock
cmos
utc
Linuxとのデュアルブート環境におけるWindowsでの時刻のずれ
Linuxとのデュアルブート環境において,LinuxからWindowsに切り替えると,Windowsの時間のずれが毎回発生する.調べてみたところ,起動時に参照するCMOS Clockの扱いに起因するものだと分かったので,Windows側のCMOS Clockの扱いを変更することで対処した.
ime
japaniese
google
WindowsのGoogle IMEにおける日本語入力切り替えショートカットをfcitx-mozcに合わせる
私はLinux,,macOS,Windowsを使っているが,全ての環境でIMの切り替えショートカットを`Ctrl+Space`としている.しかし,Windows環境ではクリーンインストールをして以来,この設定をしていなかったので,Google IMEにショートカットの設定をするついでに,備忘録としてこの記事を書いた.
vscode
Visual Studio Code version 1.86.0-insiderで引数password-store=gnomeが機能しない
Visual Studio Code version 1.86.0-insidersではpassword-store引数に対するgnomeおよびgnome-keyringの指定が機能しない.調べたところ,これはVS Codeの依存するElectronのバージョンが25.9.7から27.1.3に更新されたことに起因しているようだ.この更新によりChromiumのバージョンも上がり,password-storeが受け入れる引数が変更された.libsecretを使用している場合,この問題はpassword-storeにgnome-libsecretを指定することで解決することができる.
terrarofm
terraform v1.5.4でAWS SSOの資格情報を使用している場合に資格情報が正しく使用されない問題
aws ssoで取得した資格情報を使ってterraform planを実行したところError: error configuring S3 Backend: no valid credential sources for S3 Backend found.というエラーが出た. この問題はGitHub上でIssueとしてあがっており,すでにPull Requeslも出ていることから近いうちに解消されると思われる.ひとまず短期的にはIssueに記載されている~/.aws/configファイルを修正するワークアラウンドで対処することにした.
nixos
home-manager
home-manager管理下でVisual Studio Code Insidersを使う
GitHub Copilot ChatのLimited Public Betaを試そうとしたが,GitHub Copilot ChatのExtensionはVS Codeのバージョンとして1.81.0以上を要求する. これを書いている現在,最新のStableは1.80.1であるため,Insiders Buildを使用する必要がある.Insiders Buildの導入はNixOS Wikiでも方法が紹介されているので,インストールするだけであれば特段難しいことはなかったのだが,home-managerでVS Code Insiders Buildを導入し問題なく動作させるまでにそこそこのYak Shavingが必要だった.
linux
picom
picomでWindowの透過を無効にする
以前からCompositorとしてpicomを使用してWindowsの透過設定をしている. 今回,VS Code Insidersを導入したのだが,エディタが透過するのは個人的に何も嬉しくないので透過しないように調整をしたいと考えた. こういった修正は頻繁にやらないので,透過率を割り当てるためのアプリケーションのWindow Manager Classを調べるのに少し余計な時間を使ってしまった.次回以降の時間節約のために,備忘として記事に残すことにした.
troubleshooting
webcam
hello
Windows 11 ProでWindows Hello face authenticationが動かなくなった
以前機能していたWindows Hello face authenticationがあるときから使えなくなってしまった.再び使えるようにするために,インターネット上で見つけた様々な対処を実行し,新しいハードウェアを購入し,最終的にはOSのクリーンインストールまで実行したが問題は解決しなかった.最終的に,カメラを接続しているUSBポートを変更することによって回復した.
wsl2
git
gpg
WSL2上でgitの署名にYubiKeyを使う
私はGPGを使用してGitのcommitに署名をしている.署名に使用する鍵はYubiKeyに格納してあるので,GPGがUSB Smart Cardを利用できる環境である必要がある.LinuxやmacOS,Windows上では直接的に困ることはないのだが,WSL2上でUSB Smart Cardを認識させるにはhackが必要であった.一度設定してしまえばしばらく必要がなくなるものだが,再びこれを構成する必要が出たときには確実に忘れている自信があるため,備忘として記事に残すことにした.
flatpak
NixOSでFlatpakを使う
Jamiを使うにあたって,Flathubに登録されているFlatpakも試してみた.結局,最終的にはFlatpakではなくNixで提供されているパッケージを使うことにしたのだが,その過程でNixOSにFlatpakの導入と削除をおこなったので,その経緯を記録として残しておく.
jami
sip
NixOSでSIP Phoneを使う
自社でAsteriskの運用をしている都合から,テストのためのSIP対応のソフトフォンが必要となった.これまではmacOS上でZoiperを使用してきたのだが,NixOS上にはソフトフォンをなにも入れていなかったので,使ったことがないjamiを使ってみることにした.公式でパッケージングされたものではないことに起因すると思われるマイナーな問題があったが,無事内線と外線のテストに使うことができた.
canon
NixOSでCanon PIXUS XK70を使う
NixOS(Linux)でCanon製のプリンタであるPIXUS XK70を使う設定を行った.基本的に,macOS,iOS対応のネットワークプリンタはIPP EverywhereやApple AirPrintに代表されるドライバーレス印刷に対応しているため,AvahiとCUPSを構成すれば使うことが出来る.XK70はインクジェット複合機であるためスキャナも具備していることから,それも合わせてNixOSで使えるよう設定を行った.
microsoft
NixOS上のVS CodeでMicrosoftのC/C++ Extensionを使用する
VS CodeにはMicrosoft謹製のC/C++ Extensionがある.このExtensionにはバイナリが含まれているため,NixOSではそのまま使用することができず,cpptools client: couldn't create connection to serverというエラーが出る.これはNixOSの構成に起因するもので,通常であればpatchelfを使用して実行時リンカー(ELFインタープリター)を置き換えるなどの対応が必要なのだが,幸いnixpkgsに当該Extensionが登録されているため,自分で修正することなくこれを使うことができる.この記事では,home-managerを使用してこれを導入した.
gatsby
Gatsby + Contentfulの環境でMDX 2を使う
Gatsby v5とgatsby-source-contentfulの組み合わせで,MDX 2を使用する構成を組んだ.2022年11月28日現在,gatsby-plugin-mdx-v4がsourceとして使用できるのはファイルのみであるため,このプラグインを使用することは残念ながらできない.そのため,直接MDX Compilerを呼び出すという,何のひねりも無い方法で目的の構成を実現した.
yubikey
PIV Smart Card上の鍵を使用してリモートホストのgit commitに署名をする
Local Machineに接続されたPIV Smart Cardの署名鍵を利用して,Remote Machine上でのgit commit時に署名する方法を調べた.手がかり自体は検索で発見することができたし,手順自体はGPGのドキュメント通りに設定すれば問題なく動作した.
powershell
PoweShellの開発環境を整える
PowerShellスクリプトを書く機会に出会ったので,Linux上でvscodeを使用してPowerShellの開発環境を整備した.Microsoft謹製のPowerShell Extensionを使うことで,容易に十分な開発環境を整えることが出来るのだが,PowerShellとのインテグレーションや静的コード解析ツールであるPSScriptAnalyzerの使用に関して,いくつかドキュメントを読むだけではわからない問題にぶつかった.実際にはどれも大した問題ではないのだが,調査には少々時間を使ったので記録を残すことにした.
github actions
cloudflare pages
nix
Cloudflare Pagesへのデプロイ
新しいサイトの配備先にCloudflare Pagesを使うことに決めたのだが,PureScriptを使用するなど,一般的なGatsbyの構成ではないことに起因して,Cloudflare Pagesが提供してくれるビルドシステムをそのまま使うことができなかった.代替手段として,GitHub Actionsを使用したCI/CD環境を整備した.
essey
kvm
monitor
何もしていないのにKVMが壊れた!
自信の備忘のために残す.昨日まで正常に稼働していたKVMが突然,今日の朝から画面を出力しなくなった.KVMの問題を疑い様々な切り分けをしたが,結果問題があったのはモニターであり,モニター背面パネルにある主電源OFF/ONによって解消した.
essay
WordPressからGatsbyへ
個人で保有していたWordPressサイトがいつの間にか完全に死んでいた.ここ数年まともに運営していたわけではないので当然なのだが,最近文書を書く能力の衰えを感じてきたので,日常的になにかアウトプットする場をGatsbyで作ってみることにした.この記事から得られるものはなにもない.