memo.log

技術情報の雑なメモ

SBI証券投資信託売却注文した履歴を確認する

SBI証券投資信託売却した後、発注が完了するまでは「取引」→「投資信託」→「注文照会(取消)」→「投資信託」で確認できる。 「取引履歴」等みても、掲載が無いので、注文できてないのかな?と思った。

SBI証券┃株・FX・投資信託・確定拠出年金・NISA

(Windows)Obsidian でBIZ UD ゴシック(任意のフォント)を使う

最近はノートアプリにObsidianを使っているのだが、WindowsアプリのObsidianはデフォルトのフォントが微妙すぎる。しかも、選択できるフォントも良いのがない。

そこで、BIZ UDゴシックを設定したメモ。


  1. 以下のプラグインをインストール&有効化する

github.com

  1. 保管庫ごとに設定するようなので、 [保管庫のパス\.obsidian\fonts] フォルダにフォントファイル(.ttf)を置く

  2. プラグインの設定画面で選択&アプリ再起動

【Visual C#/Windows フォーム】出力タブにデバッグログを出力したい

Console.WriteLine(""); で表示されるかと思ったが、出なかった。

ぐぐっていたところ、以下の記事に答えが。

そもそもWindows Formsアプリケーションは「コンソール」アプリケーションではないので、出力すべきConsoleそのものがありません。 つまりやろうとしている事が的外れです。 Visual Studioの「出力」ウィンドウにメッセージを出したい場合は、System.Diagnostics名前空間のDebugクラスやTraceクラスを利用します。

teratail.com

Railsアプリ(+PostgreSQL)を Docker で動かすまでを1歩1歩確認していくメモ(docker-compose は使わない)

たいてい、出来合いの docker-compose を up して動かしていて、便利は便利なのだが、基本的なところがよくわからなくなるので、Dockerで1歩1歩動かしていってみる。

以下の Docker 公式ドキュメントを主に参考にしている。 docs.docker.jp

まずはデータベースの準備

PostgreSQLを起動する。以下のコマンドを実行すると 5432 ポートで接続を受け付けるようになる

  • POSTGRES_HOST_AUTH_METHOD = trust にすることで、ローカルからの接続にパスワードは不要になるようだ。
  • コンテナは使い捨てで (--rm) とする
docker run --rm --name postgres -e POSTGRES_HOST_AUTH_METHOD=trust -p 5432:5432 postgres:15

次にRailsの準備

database.yml の準備

以下あたりを編集しておく:

host: x.x.x.x # localhost だとDockerコンテナ内に向かってしまうみたいなので、ホストのIPアドレスを直打ちする。このへんはなにか別に上手いやり方ありそうだけど一旦ベタ書きで。
username: postgres # PostgreSQLのデフォルト
# password # なし `POSTGRES_HOST_AUTH_METHOD=trust` にしとけばいらないらしい

Docker イメージの準備

まず、Dockerfileを準備して、イメージを作成する。 docker run ruby:3.2.1 とかで、コンテナ内で色々と作業してからイメージとして保存するという手もあるのかもしれない(以下リンク参照)が、提携作業ならDockerfileに定義しておくのが定石かと。あと、 ADD とかでホストの資材をDocker内に入れるのを、コンテナの中に入ってから取ってこれるのかはよくわからないし。

Dockerに慣れる : 変更したコンテナイメージを保存する

というわけで今回のDockerfile:

FROM ruby:3.2.1
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs
# My Hobby :)
RUN apt-get install -y iputils-ping net-tools
RUN mkdir /myapp
WORKDIR /myapp
ADD Gemfile /myapp/Gemfile
ADD Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
ADD . /myapp

これをビルド

docker build -t [image name] ./

そしたらコンテナを実行

docker run --rm -p 3000:3000 [image name] bundle exec rails s -p 3000 -b '0.0.0.0'

一旦ここまででアプリの起動とDBへの接続はできたはず。 次からDBの中身を準備していく。

WinUI 3プロジェクトをデバッグ時に「"This application requires the Windows App Runtime Version 1.3"」

メッセージの通り、Windows App SDKの Version 13 をインストールしてみたが、解決しなかった。 結局、公式ドキュメントの以下を実施したら解決。

先ほど作成したプロジェクトが、手順 2 で "インストーラー" を使用してインストールした Windows App SDK のバージョンを対象にしていることを確認してください。 そのためには、Visual Studio で、[ツール]>[NuGet パッケージ マネージャー]>[ソリューションの NuGet パッケージの管理]>[更新] の順にクリックします。 必要に応じて、Microsoft.WindowsAppSDK NuGet パッケージへの参照を更新します。 インストールされているバージョンは、[インストール済み] タブで確認できます。

learn.microsoft.com

久しぶりにWindowsアプリの開発を進めているが、開発環境を整えるまでが一番大変だね。。なんにせよ公式ドキュメントをちゃんと読むに限る。(定期)

Terraformの go-plugin 等のソースにデバッグログを仕込むメモ

github.com

前提

Terraform Core(親プロセス) と Provider(子プロセス) は RPC のサーバとクライアントという関係で動作する。RPCに関する処理は上述の go-plugin リポジトリのコード等で動作する。

ざっくり手順

  • go-plugin のソースを手元に clone する
  • デバッグ出力を入れたい箇所に logger.Debug("hogehgoe") 等を記載する(fmt.Println 等で直接出力しようとしても、親プロセスならおそらく出力されると思うが、子プロセスは出力されないようなので、 logger を介するといいようだ)
  • 親子(Terraform Core / Provider)それぞれの go.mod に上記リポジトリへのパスがあるが、手元のソースをみるように go mod edit -replace する
  • 親子それぞれビルドする
    • ドキュメントにしたがうと Core は go install . 、 Provider は make build で多分いける
  • あとは適当なディレクトリに .tf ファイル作って実行する。実行するときはビルドしたバイナリを直接指定する。例: TF_LOG=TRACE /home/hoge/go/1.21.1/bin/terraform plan