GitHubの検索機能がおかしく、変なものがヒットしてしまい、gh-diary が意図通り動かなかった。

$ gh issue list --search "'2022-06-06' in:title"

Showing 5 of 5 issues in r7kamura/diary that match your search

#30  2022-06-05    about 9 hours ago
#29  2022-06-04    about 1 day ago
#28  2022-06-03    about 2 days ago
#27  2022-06-02    about 3 days ago
#26  2022-06-01    about 4 days ago

今回このIssueは初めて手動でつくった。

RedditとStackOverflowの投稿を見つけた。StackOverflowの方に、無理です……と回答しておいた。「いや出来ますよ?」という回答が来ると恥ずかしいかもしれないが、それはそれで答えが知れて嬉しいし、無理だと信じている者が1人居る、という情報を残しておくことできっと誰かの役に立つだろう。

二重引用符だといけると何人かから教えてもらった。動く方法が分かって良かった。gh-diaryも二重引用符を使うように修正しておいた

iPhoneで配信するとたまに画面が暗くなる問題があり、画面が写り込んでいることと、iVCamが自動で何かやることが悪い影響を及ぼしているのではないか、と考えている。たしかに自動調整が有効化されている項目が何個かあったので、PC側でも、iPhone側でも無効化してみた。

WSL2のdevcaontainerで git pull したら完全に停止して困っていた問題、ホスト側の .bashrc に

eval "$(ssh-agent)"

を追加したら解決した。これはログイン時にのみ実行すればいいと思うので、多分 .bash_profile で良い。


デバッグの過程として、まず

ssh -T git@github.com

でも再現することを確認し、次に

ssh-add -l

でも再現することを確認した。この状態で、ホスト側で起動したシェルで適当に

eval "$(ssh-agent)"

を実行。これ自体では解決はしないのだけど、ssh-agent がホスト側で問題無く実行できるということはこれで確かめられる。

その後、冒頭のように .bashrc にこれを記述してから試してみると、問題が解消された。

最初、次のページを見たときは「git pull で問題が出る点は似ているが、permission deniedと表示される訳ではないから違うのかも」と思っていたが、解決してから振り返ると、問題としては同じものだったようだ。

To get VS Code to use your SSH keys from your WSL2 instance inside a Docker container running on the WSL2 backend, you need to tell WSL2 to create an ssh-agent at startup, and add your ssh key to the agent. When VS Code attaches to a container running on the WSL2 backend, it will automatically pick up the running ssh-agent, and allow you to authenticate with your WSL2 SSH keys inside your container.

という情報が明示されていて良かった。

それから、シェルを起動するたびにいちいち ssh-agent を起動していは無数に ssh-agent が起動してしまうことになるし、何よりそのたびに ssh-add を実行しなければいけず、SSH鍵にパスフレーズを付けている場合にこれは非常に手間である。そこで、keychainを導入してシェルスクリプトを生成し、このシェルスクリプトをシェル起動時に読み込ませることにした。

image

Google IMEの他にデフォルトのMicrosoft IMEが存在していて、たまにこれに切り替わったり、Windows + Spaceを間違って押したときに切り替わってしまったりと、たいへん不便だった。言語の設定 > 日本語 > オプション > キーボード からMicrosoft IMEを取り除くことで、この問題が解消された。削除と言うと怖い響きだが、これは簡単に元に戻せるらしい。また、WindowsアップデートなどでMicrosoft IMEが勝手に追加される場合もあるので、このときは同様の処理を行わなければならない。

devcontainerで使うためのinstall.shでは、sudoを付けていると動かない、ということが分かった。

なんかことあるごとに "dotfiles.repository": "r7kamura/dotfiles" の設定がリセットされるのだけど、常にこの設定を使うようにVSCodeのユーザー設定に伝える方法はないのだろうか。設定画面にGUIで項目はないものの、普通にJSONにこれを書き込めば意図通り動くのか? とりあえず足してみた。

ホストの ~/.config/gh/hosts.yml にghの認証情報が含まれているのだけど、コンテナでghコマンドを使うために、これをコンテナでも再利用したい。Dockerのマウント時にこれを指定すれば良いような気がするが、dotfilesでghを使うという話だから、これはリポジトリ固有の話ではないし、しかしinstall.shはコンテナの中で実行されると思うので上手く動かなさそうだし、どうしたものか

docker-composeを使うようにして、gitignoreしたdocker-compose.override.ymlで設定する、というworkaroundが良い気がするなあ

Railsのメソッド定義を省略してテンプレートだけが存在するバージョンのアクションでは、before_actionが実行されないらしいということをjpmobileの開発者に教えてもらった。マジか……。

Started GET "/" for ::1 at 2022-06-06 10:49:51 +0900
   (0.4ms)  SELECT sqlite_version(*)
Processing by HomeController#index as HTML
  Rendering layout layouts/application.html.erb
  Rendering home/index.html.erb within layouts/application
  Rendered home/index.html.erb within layouts/application (Duration: 0.7ms | Allocations: 341)
  Rendered layout layouts/application.html.erb (Duration: 1.0ms | Allocations: 619)
Completed 200 OK in 5ms (Views: 2.4ms | ActiveRecord: 0.0ms | Allocations: 3042)

こういう感じでログが出るので、明らかに HomeController#index というactionがありそうだし、当然 before_action も実行されるだろ、と思いそう。

Railsのメソッド定義を省略してテンプレートだけが存在するバージョンのアクションでは、before_actionが実行されないらしいということを教えてもらった

実際に確認したところ、これは誤りだった。

影響力の低いネガティブな情報、をニュースサイトなどからフィルタリングしたいかも、という話をした。

jpmobileにPull Requestを出した。