## 📰Impression
### [[🦉Various Complements]] v6.0.0リリース
先週から開発を続けていた[[🦉Various Complements]]のv6.0.0がついに正式リリースされた。
<div class="link-card">
<div class="link-card-header">
<img src="https://github.githubassets.com/favicons/favicon.svg" class="link-card-site-icon"/>
<span class="link-card-site-name">GitHub</span>
</div>
<div class="link-card-body">
<div class="link-card-content">
<div>
<p class="link-card-title">Release 6.0.0 · tadashi-aikawa/obsidian-various-complements-plugin</p>
</div>
<div class="link-card-description">
🎇 Shiny New Things
Intelligent suggestion prioritization (#114)
This feature optimizes the order of...
</div>
</div>
<img src="https://opengraph.githubassets.com/ded371b83047f9226de111ad156d58c61fc7a6cd52a7a0dd31c80a7aece4b240/tadashi-aikawa/obsidian-various-complements-plugin/releases/tag/6.0.0" class="link-card-image" />
</div>
<a href="https://github.com/tadashi-aikawa/obsidian-various-complements-plugin/releases/tag/6.0.0"></a>
</div>
最大のウリである[Intelligent suggestion prioritization](https://tadashi-aikawa.github.io/docs-obsidian-various-complements-plugin/1.%20Features/Intelligent%20suggestion%20prioritization/)は、どのタイミングでデータを永続化し、どのタイミングで削除するかについてかなり試行錯誤した。

永続化のタイミングは最後に[[内部リンク]]を挿入してから5秒間挿入がなかった場合となった。理想は[[Obsidian]]終了直前だったが、確実に処理を行うことは難しそうだったからだ。最後の挿入から5秒以内に[[Obsidian]]を終了した場合、最後の挿入がカウントされないが、大した影響はない。むしろ、5秒以内に閉じる方が稀だろう。
スコアリング(挿入履歴を考慮した候補の並び順)については公式ドキュメントを参照してほしい。愛用している[[zoxide]]のロジックを参考にさせてもらいつつ、多少カスタマイズしている。
### [[🦉Various Complements]] v6.1.0-beta
v6.1.0のbeta版をいくつかリリースした。最も重要な対応は[[Front matter complement]]のパフォーマンスアップだ。
たまたま気が向いたので[[Twitter]]のエゴサーチをしたところ、ファイル数増加に伴いfront maが重くなってしまう投稿を見かけた。ヒアリングしてみると、ファイルの切り替え時に1秒以上固まってしまうとのこと。パフォーマンスはそれなりに気を付けて開発していたのもあり、すぐに改善へ取り掛かった。
具体的には、[[フロントマター]]の補完候補更新を全更新から差分更新に変更した。ただ、ファイル保存のたびに処理が走ると、数十msのラグが生じそうだったため、候補の最終更新はファイル移動時にした。ファイル保存時はindexの更新だけ行い、あとでコミットするイメージだ。
ユーザーの環境によるが、最終的に==10~100倍==程度処理が高速化された。もともとのロジックが乱暴だったのもあるが、[[Twitter]]から課題を拾い上げ、1日で検討からリリースまでできたことは非常に良い体験だった。協力いただいた方にも感謝🙏
v6.1.0のリリースはもう少し時間が必要なため、[[BRAT]]をお使いの方はbeta3をインストールしてほしい。
<div class="link-card">
<div class="link-card-header">
<img src="https://github.githubassets.com/favicons/favicon.svg" class="link-card-site-icon"/>
<span class="link-card-site-name">GitHub</span>
</div>
<div class="link-card-body">
<div class="link-card-content">
<div>
<p class="link-card-title">Release 6.1.0-beta3 · tadashi-aikawa/obsidian-various-complements-plugin</p>
</div>
<div class="link-card-description">
✨ Improvements
Improve performance of Front matter complement (indexing faster tens of times).
</div>
</div>
<img src="https://opengraph.githubassets.com/734096461dfaae82140ada2f264ad8d38a495bb5f64a12e6cffd25d1792d7d88/tadashi-aikawa/obsidian-various-complements-plugin/releases/tag/6.1.0-beta3" class="link-card-image" />
</div>
<a href="https://github.com/tadashi-aikawa/obsidian-various-complements-plugin/releases/tag/6.1.0-beta3"></a>
</div>
### [[Windows Terminal]]バージョンアップ
[[Windows Terminal]]をv1.7からv1.12へバージョンアップした。
色々な変更が入ったと思うが、最も嬉しかったのは==PowerShellのターミナルに絵文字が入力できるようになったこと==だ。今までは文字化けしてしまい使えなかったため、絵文字が必要な場合は[[IntelliJ IDEA]]や[[VSCode]]を起動する必要があった。これからは[[Windows Terminal]]内で完結できそうだ。
## 🎇Shiny Outputs
### 🦉My products
- [[🦉Various Complements]]
- [Various Complements v6.0.0-beta7リリース](https://github.com/tadashi-aikawa/obsidian-various-complements-plugin/releases/tag/6.0.0-beta7)
- [Various Complements v6.0.0リリース](https://github.com/tadashi-aikawa/obsidian-various-complements-plugin/releases/tag/6.0.0)
- [Various Complements v6.1.0-beta1リリース](https://github.com/tadashi-aikawa/obsidian-various-complements-plugin/releases/tag/6.1.0-beta1)
- [Various Complements v6.1.0-beta2リリース](https://github.com/tadashi-aikawa/obsidian-various-complements-plugin/releases/tag/6.1.0-beta2)
- [Various Complements v6.1.0-beta3リリース](https://github.com/tadashi-aikawa/obsidian-various-complements-plugin/releases/tag/6.1.0-beta3)
- [[🦉Embedded Code Title]]
- [Embedded Code Title v0.5.3リリース](https://github.com/tadashi-aikawa/obsidian-embedded-code-title/releases/tag/0.5.3)
## 👀Medias
[[👤uhyo]]さん執筆の[[📚プロを目指す人のためのTypeScript入門]]を購入した。まだ3章手前までしか読んでいないが、期待通りの丁寧な説明で安心して読める。初級者向けということもあり、今のところはほぼ知っている知識ばかりだが、逆に『ならプロと名乗ってもいいかな』という安心感が得られる。([[TypeScript]]の本を買うのは7年間で恐らく初めて)
<div class="link-card">
<div class="link-card-header">
<img src="https://blog.uhy.ooo/favicon-32x32.png?v=5f198fd162f88f8e58a6d0d02a9bd2a5" class="link-card-site-icon"/>
<span class="link-card-site-name">blog.uhy.ooo</span>
</div>
<div class="link-card-body">
<div class="link-card-content">
<div>
<p class="link-card-title">【宣伝】『プロを目指す人のためのTypeScript入門』4月22日発売! - uhyo/blog</p>
</div>
<div class="link-card-description">
皆さんこんにちは。先日、私が書いたTypeScriptの入門書『 プロを目指す人のためのTypeScript入門 』が発表されました。この本は4月22日発売で、すでにネット書店などでは予約受付中です。...
</div>
</div>
<img src="https://blog.uhy.ooo/static/84d952fa11dec3cb354a5e69fb3fac59/1a4ae/book.jpg" class="link-card-image" />
</div>
<a href="https://blog.uhy.ooo/entry/2022-04-11/typescript-book/"></a>
</div>
会社でも後進育成時に[[TypeScript]]の教科書としてお世話になっている[[📚サバイバルTypeScript]]書かれた誕生秘話。Web分野全体のおさらいにもなり、歴史的背景を学べるので良かった。
<div class="link-card">
<div class="link-card-header">
<img src="https://typescriptbook.jp/img/logo.svg" class="link-card-site-icon"/>
<span class="link-card-site-name">typescriptbook.jp</span>
</div>
<div class="link-card-body">
<div class="link-card-content">
<div>
<p class="link-card-title">TypeScript誕生の背景 | TypeScript入門『サバイバルTypeScript』</p>
</div>
<div class="link-card-description">
TypeScriptは、JavaScriptでも大規模なアプリケーションを開発しやすくすることを目的に開発されたプログラミング言語です。
</div>
</div>
<img src="https://tsbook-og-image.vercel.app/TypeScript%E8%AA%95%E7%94%9F%E3%81%AE%E8%83%8C%E6%99%AF.png?pattern=cross&md=0&fontSize=75px&textColor=%23ffffff&textStrongColor=%238340BB&overlay=https%3A%2F%2Fraw.githubusercontent.com%2Fyytypescript%2Fog-image%2Fmain%2Fpublic%2Fogp-overlay.svg" class="link-card-image" />
</div>
<a href="https://typescriptbook.jp/overview/before-typescript"></a>
</div>
## 📚Inputs
- [[📜Front matter complementを差分更新にしてみる]]
- [[📜Object.keysで返却できないプロパティがある]]
- [[Code Editor Shortcuts]]
- [[Object.getOwnPropertyNames]]
- [[Object.getPrototypeOf]]
- [[Object.keys]]
- [[Rustでディレクトリを作成する]]
- [[Rustでパスをjoinする]]
- [[Rustでファイルを作成し書き込む]]
- [[std.fs.create_dir_all]]
- [[std.io.write_all]]
- [[Zipkin]]
- [[後方参照]]