# 🏆MVP ## 実戦 型パズルのスライド作成 [[👩‍🏫実戦 型パズル]]を公開した。 <iframe src="https://tadashi-aikawa.github.io/slides/202411-type-actual-battle" width="100%" height="400px" /> <div style="display: flex; justify-content: center"> <a href="https://tadashi-aikawa.github.io/slides/202411-type-actual-battle">🖥️ 全画面表示する</a> </div> 内容としては、現場に近いリアルなシナリオの中で、どうやって[[TypeScript]]の有益な型に関する技術を適応していくかというもの。内容としては初級者向けくらいで中級者には物足りないと思う。ただ、9分という短い時間の中で多少駆け足でも話しきる構成にすること、ちゃんと読めば理解可能であるように作るのはかなり大変だった。 スライドは[[Marp]]を使っている。この度、[[📒Articles]]のように[[📒Slides]]というページを作成し、少し前に作った [[👩‍🏫ターミナルに欠かせない2つのツール mise & Starship]] もあわせて掲載している。よければそちらも確認してみてほしい。 # 🥈RUP ## Silhouette ★50 達成 [[🦉Silhouette]]の★数が50を超えた。これを書いている時点では52。 <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"> <p class="link-card-title">GitHub - tadashi-aikawa/silhouette: Obsidianでシンプルにタスクを管理するためのプラグイン</p> <p class="link-card-description">Obsidianでシンプルにタスクを管理するためのプラグイン. Contribute to tadashi-aikawa/silhouette de ... </p> </div> <img src="https://opengraph.githubassets.com/00a2093a124ee3e4fe32782ac9ef7a10ce8f3f0202cf5164a8f1be81e96beabd/tadashi-aikawa/silhouette" class="link-card-image" /> </div> <a href="https://github.com/tadashi-aikawa/silhouette"></a> </div> もともと[[🦉Silhouette]]は自分で使う用に作っていたので、[[コミュニティプラグイン]]には登録せず、READMEなどもすべて日本語にしていた。理由は以下の通りである。 - 自分自身が[[Todoist]]や[[Toggl]]をすぐにやめたかった - そのため1週間弱でつくった - [[Obsidian Tasks]]という有名なプラグインがあった - 敢えて競合する意味合いも感じない - グローバル対応するとカレンダー周りが大変そうだった - [[🦉Various Complements]]で学習済... せっかくだし、『自分と同じような思想をもつ誰かの役に立てば...』くらいの気持ちでREADMEもちゃんと書いて公開していたわけだ... が、そのようにターゲットが限られたユーザーの中でスターを50もいただけたことは素直に嬉しい。私と同じような価値観でタスク管理をしている人がそれだけいるということだ...と思っている。 現状、私は[[🦉Silhouette]]は使っておらず、タスク管理には[[🦉Silhouette.nvim]]を使っている。というのもタスク管理や時間管理の大半はプライベートよりも仕事において需要があり、そこで使うのは[[Obsidian]]ではなく[[Neovim]]であるという単純な理由からだ。その結果、[[🦉Silhouette]]と[[🦉Silhouette.nvim]]を切り替えるのも面倒になり、家でも[[🦉Silhouette.nvim]]を使うようになった。[[Obsidian]]はあくまで[[PKM]]のためのツールとして利用している。 # 🪙OPA ## qfscope.nvimの導入 2週間前に[[Telescope live grep args]]を導入したという話をした。 > [[📰2024年44週 Weekly Report#quicker.nvim と Telescope live grep args を追加]] [[Telescope live grep args]]は素晴らしいプラグインだが、少し操作に癖があり玄人向けで気になっていたところ、偶然[[qfscope.nvim]]を見かけた。 <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"> <p class="link-card-title">GitHub - atusy/qfscope.nvim</p> <p class="link-card-description">Contribute to atusy/qfscope.nvim development by creating an account on GitHub.</p> </div> <img src="https://opengraph.githubassets.com/ad50d40f10031146c63a6c20d97d66b0ba4afea300ee13a817e5a95fa39e732e/atusy/qfscope.nvim" class="link-card-image" /> </div> <a href="https://github.com/atusy/qfscope.nvim"></a> </div> [[qfscope.nvim]]は、[[telescope.nvim]]の結果に対し、1キーで更に絞り込む機能を提供している。これがシンプルで直感的で心地よい。状況によっては少しもっさりすることもあるが、その辺は追々改善されていったら嬉しいなと思っている。(現時点でも困ってはいない) # 🚀Releases - [[🦉Silhouette.nvim]] - [Silhouette.nvim v0.7.0リリース](https://github.com/tadashi-aikawa/silhouette.nvim/releases/tag/v0.7.0) - 繰り返しタスクファイルに繰り返しパターンが記載されていなければ読み込みエラーにする - [[🦉Silhouette]] - [Silhouette v0.27.0リリース](https://github.com/tadashi-aikawa/silhouette/releases/tag/0.27.0) - 繰り返しタスクファイルに繰り返しパターンが記載されていなければ読み込みエラーにする # 👀Reading ## qfscope.nvimでtelescope.nvimの検索結果を絞り込む <div class="link-card"> <div class="link-card-header"> <img src="https://blog.atusy.net/favicon.ico" class="link-card-site-icon"/> <span class="link-card-site-name">Atusy's blog</span> </div> <div class="link-card-body"> <div class="link-card-content"> <p class="link-card-title">qfscope.nvimでtelescope.nvimの検索結果を絞り込む</p> <p class="link-card-description">telescope.nvimの検索結果をファイル名や該当行の内容で絞り込みたいときのために、qfscope.nvimを開発しました。</p> </div> <img src="https://blog.atusy.net/images/atusy-large.jpg" class="link-card-image" /> </div> <a href="https://blog.atusy.net/2024/11/11/qfscope-nvim/"></a> </div> ~~~ 控えめに言って神なので全員にオススメできる。拡張子でもファイルでも多少ファジーに絞り込めるのがすばらしい。 ※ 絞り込んだあとに左側のiconが消えるのは設定不足かな https://blog.atusy.net/2024/11/11/qfscope-nvim/ ~~~ ## TypeScript 5.8で条件付き戻り値型に対するナローイングができるようになりそう(特定の制約を満たす場合) - Mitsuyuki.Shiiba <div class="link-card"> <div class="link-card-header"> <img src="https://bufferings.hatenablog.com/icon/favicon" class="link-card-site-icon"/> <span class="link-card-site-name">Mitsuyuki.Shiiba</span> </div> <div class="link-card-body"> <div class="link-card-content"> <p class="link-card-title">TypeScript 5.8で条件付き戻り値型に対するナローイングができるようになりそう(特定の制約を満たす場合) - Mitsuyuki.Shiiba</p> <p class="link-card-description">数日前にTypeScri ... </p> </div> <img src="https://ogimage.blog.st-hatena.com/12704346814673909441/6802418398302001046/1731335451" class="link-card-image" /> </div> <a href="https://bufferings.hatenablog.com/entry/2024/11/11/232139"></a> </div> ~~~ 過去にこれやろうと思って諦めたか回避策でごまかした記憶があるのでアツイ。。 https://bufferings.hatenablog.com/entry/2024/11/11/232139 ~~~ ## テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話 <div class="link-card"> <div class="link-card-header"> <img src="https://d1eu30co0ohy4w.cloudfront.net/assets/favicon-bdd5839d46040a50edf189174e6f7aacc8abb3aaecd56a4711cf00d820883f47.png" class="link-card-site-icon"/> <span class="link-card-site-name">Speaker Deck</span> </div> <div class="link-card-body"> <div class="link-card-content"> <p class="link-card-title">テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話</p> <p class="link-card-description">TSKaigi Kansai 2024 での登壇資料です。https://kansai.tskaigi.org/talks/ysknsid25</p> </div> <img src="https://files.speakerdeck.com/presentations/650de7b18da44dfe9f496fc8ddedaab9/slide_0.jpg?32636510" class="link-card-image" /> </div> <a href="https://speakerdeck.com/ysknsid25/tesutokodopin-zhi-wogao-merutamenimutation-testingraiburaristrykerwoshi-zhan-dao-ru-sitemita"></a> </div> ~~~ 普通に使うと時間がすごいことになるのか。なるほど。 https://speakerdeck.com/ysknsid25/tesutokodopin-zhi-wogao-merutamenimutation-testingraiburaristrykerwoshi-zhan-dao-ru-sitemita ~~~ ## TypeScript、上達の瞬間 <div class="link-card"> <div class="link-card-header"> <img src="https://d1eu30co0ohy4w.cloudfront.net/assets/favicon-bdd5839d46040a50edf189174e6f7aacc8abb3aaecd56a4711cf00d820883f47.png" class="link-card-site-icon"/> <span class="link-card-site-name">Speaker Deck</span> </div> <div class="link-card-body"> <div class="link-card-content"> <p class="link-card-title">TypeScript、上達の瞬間</p> <p class="link-card-description">tl;dr焼肉</p> </div> <img src="https://files.speakerdeck.com/presentations/e960baefaf0342d5a119281c18650e04/slide_0.jpg?32637897" class="link-card-image" /> </div> <a href="https://speakerdeck.com/sadnessojisan/typescript-shang-da-noshun-jian"></a> </div> ~~~ 良い話。JavaScriptだけしか知らないと辛いよね。自分はJavaScriptもScalaもHaskellもRustもほぼ独学だったのでそこそこ時間はかかった。Javaだけは若手の頃に有識者に教わった記憶。 https://speakerdeck.com/sadnessojisan/typescript-shang-da-noshun-jian ~~~ ## TypeScriptの次なる大進化なるか!? 条件型を返り値とする関数の型推論 <div class="link-card"> <div class="link-card-header"> <img src="https://d1eu30co0ohy4w.cloudfront.net/assets/favicon-bdd5839d46040a50edf189174e6f7aacc8abb3aaecd56a4711cf00d820883f47.png" class="link-card-site-icon"/> <span class="link-card-site-name">Speaker Deck</span> </div> <div class="link-card-body"> <div class="link-card-content"> <p class="link-card-title">TypeScriptの次なる大進化なるか!? 条件型を返り値とする関数の型推論</p> <p class="link-card-description">2024-11-16 TSKaigi Kansai 2024</p> </div> <img src="https://files.speakerdeck.com/presentations/5b90df838fe14f54938de22c25b56291/slide_0.jpg?32642187" class="link-card-image" /> </div> <a href="https://speakerdeck.com/uhyo/typescriptnoci-naruda-jin-hua-naruka-tiao-jian-xing-wofan-rizhi-tosuruguan-shu-noxing-tui-lun"></a> </div> ~~~ 完璧と思ってた型定義がなぜか通らなくて、as castすると通った… ということは何度も経験してるけど、根っこの部分は一緒だったのだろうか…? https://speakerdeck.com/uhyo/typescriptnoci-naruda-jin-hua-naruka-tiao-jian-xing-wofan-rizhi-tosuruguan-shu-noxing-tui-lun ~~~ # 📚New Notes - [[--frozen-lockfile (pnpm install)]] - [[Luaからexコマンドを実行 (Neovim)]] - [[Neovimのビジュアルモードで選択したコマンドをターミナルで直接実行 (toggleterm.nvim)]] - [[lockfileのバージョンでインストール (pnpm)]] - [[qfscope.nvim]] - [[toggletermを使ってoil.nvimで表示中のディレクトリをターミナルで開く]] - [[toggletermを使ってカレントバッファのファイルが所属するディレクトリをターミナルで開く]] - [[ts-nodeとtsxの違い]] - [[tsx (Node.js)]] - [[カレントバッファのファイルが存在するディレクトリパスを取得 (Neovim)]] - [[カレントバッファのファイルタイプを取得 (Neovim)]] - [[絵文字をグレーアウト (CSS)]] - [[👩‍🏫ターミナルに欠かせない2つのツール mise & Starship]] - [[👩‍🏫実戦 型パズル]] - [[💽2024-11 更新履歴]] - [[📒Slides]] - [[📜2024-11-17 Node.js環境でのTypeScriptランタイムのtsxを使ってみる]] - [[📰2024年45週 Weekly Report]]