TSKaigi 2025 気になった記事メモ
TSKaigi 2025 に行けなかったけど、タイムテーブルをざっと眺めて資料を見ておきたいものをピックアップしておくだけの記事。
- TypeScriptとReactで、WAI-ARIAの属性を正しく利用する | TSKaigi 2025
- TypeScriptとは何であって何でなく、誰のもので、どこへ向かうのか | TSKaigi 2025
- 型安全なDrag and Dropの設計を考える | TSKaigi 2025
- 技術書をソフトウェア開発する - jsprimerの10年から学ぶ継続的メンテナンスの技術 | TSKaigi 2025
- TSでシステムが堅牢になっていくさまをスポンサーになるたびに報告 〜型定義から始めるリファクタリング編 | TSKaigi 2025
- React19で変化したuseReducerの型から学ぶTypeScriptの型推論 | TSKaigi 2025
- TS特化Clineプログラミング | TSKaigi 2025
- "良い"TSのコードを書く為のマインドセット | TSKaigi 2025
- バリデーションライブラリ徹底比較 | TSKaigi 2025
- Standard Schema: スキーマライブラリの統一規格とは何か | TSKaigi 2025
- スキーマと型で拓く Full-Stack TypeScript | TSKaigi 2025
- 生成AI時代にフルスタックTypeScriptの夢を見る | TSKaigi 2025
- TypeScriptで実践するクリーンアーキテクチャ ― WebからもCLIからも使えるアプリ設計 | TSKaigi 2025
- SignalとObservable―新たなデータモデルを解きほぐす | TSKaigi 2025
参考にしたいメモ
ゲーム用PCのグラボを交換したメモ
NVIDIA RTXからAMD RADEONにグラボの交換をしたので、その覚書。
- RADEONのドライバーをダウンロードしておく
- NVIDIA Appを削除
- OSのアンインストールメニューから
- NVIDIAのドライバー・アプリ削除
- http://faq3.dospara.co.jp/faq/show/9119?site_domain=default#anc03
- デバイスドライバーから当該デバイスのアンインストール
- LANケーブル抜く(インターネット接続を切る)
- 再起動
- グラボ交換作業
- PC起動する
- この時LANケーブル接続しなおしておいてOKだと思う
- RADEONのドライバーインストール
LANケーブルを抜くのは、起動時に勝手に接続されているグラボに対応するドライバーをOSが適用しようとするのを防ぐため(らしい)。
AMD Adrenalin(NVIDIA App的なもの)でfpsとかのオーバーレイ表示するには↓ www.amd.com
不用意に font-feature-settings を使うと日本語表示がおかしくなる
CSSでOpenTypeフォントの機能を制御できるようになった結果、欧文ページで font-feature-settings: "dlig"; が指定してあると、日本語に機械翻訳して読もうとした時に合字になって欲しくないところまで合字になってしまう。
— りんご🍏夜明けのリモートワーカー (@mstssk) April 17, 2024
「〜になります。」が「〜になり〼。」になる。
<div style="font-feature-settings: 'nalt';"> 本日は晴天なり </div>
環境にインストールされているフォント次第だと思うので、手元のスクショも。

記事を書いたきっかけのツイート
参考
Logicool M750を買ったけど、すぐM590に出戻りした
タイムライン
- 愛用のLogicoolのマウスM590が2年以上使い倒し表面が摩耗したりしてきたので、買い替えを検討。
- M590は生産終了しておりLogicoolのラインナップから消えている。
- 性能的にほぼ上位互換のM750のS/Mサイズを購入。
- 一日使ってみた所、大きさなどが絶妙に手に合わず、変に疲れたりしてしまい、ストレスの方が大きかった。
- Lサイズを求めて電気屋に行ったところ、M590の在庫があったので結局またM590を買った。
サイズ感について
側面の滑り止め加工が触り心地が悪くて使っていてストレスがあったというのもあるんですが、合わなかった最たる原因はサイズかなと思っています。 ※数値は後述の参考記事より。
| M750 S/M | M590 | M750 L | |
|---|---|---|---|
| 横幅 | 108mm | 103mm | 118mm |
| 奥行 | 61mm | 64mm | 66mm |
| 高さ | 38mm | 40mm | 42mm |
実際使ってみた所、使いづらいというか、使っていて腕がどんどん疲れてくるという現象に悩まされました。 どうやらマウスに手を乗せて預けるような持ち方をしているため、より小さいM750 S/Mだと手の重さを預けきれずに意図せず腕の力で支えるような持ち方になっていたようです。 そのため、ずっと腕が緊張した状態になり、異常に疲れたのだと思います。
本体の形状も見比べてみた所、M590だと全体が卵形で後ろ側が大きめだったのですが、全体的にコンパクトになったM750だと後ろ側が膨らんでいない形でした。 そのため、M590で同じ感覚で手を乗せられなかったようです。
大きさの問題だと気付いたので、Lサイズはどうなんだろうと思い、サンプルを触って確認できたらなと思いながら電気屋に行った所、M590の在庫があったので結局この原稿もM590を使いながら書いています。
ちなみに、遂にこのM590でおそらく3台目で、前身となった機種を使っていたころから数えて6年以上このモデルをつかっています。
ですが、次に買い換える頃にはM590を手にいれることはできないだろうと思い、その時にまたサイズ感で購入ミスをしないように自戒のためこの記事を書きました。
参考記事
サイズ情報を引用させていただいた記事
- ロジクール M590 レビュー/クリック音が小さい静音マウス。オフィスや寝室でも気にせず作業が出来る | モノペディア https://mono-pedia.jp/logicool-m590/
- Logicool M750 Signatureレビュー!4,500円でMX Master3Sと機能性は同じです。 | TECHYOU(テックユー) https://tech-you.jp/logicool-m750signature-review/
- この記事の著者の方はLogicoolのサイト上のガイドではMサイズ相当の手の大きさなのですが、Lサイズの方が持ちやすいと書かれています。🍏の手の大きさも同じくらいなので、やっぱりLサイズがよかった感。
Logicool M750を買ってみたけど、M590より中ボタンが硬いな…
— りんご🍏夜明けのリモートワーカー (@mstssk) February 11, 2023
Easy-Switchボタンが裏面に行ったのはちょっと不満点だけど、しばらく使ってみて次第だとは思う。
それ以外は純粋に後継機らしい使い勝手で良さげ。
うーん。M590を使い倒しすぎたせいか、M750が微妙に感じてしまう。親指があたる辺りの触り心地が悪くて、使っている間ずっと気持ち悪さを感じる。
— りんご🍏夜明けのリモートワーカー (@mstssk) February 12, 2023
あと使っていて妙に疲れる原因がわかった気がする。
— りんご🍏夜明けのリモートワーカー (@mstssk) February 12, 2023
M590よりM750のほうが手の平で覆う手前側が低いRになっているから、手を支えてくれないんだ。
同じ手の載せ方で使うと、手を支えてくれないから常に筋肉が緊張した状態になってどんどん疲れる。
これはLサイズのM750を買わなかったのが悪いかも。
M750 Lサイズを見に電機屋に行ったらM590の在庫があったのでそっちを買ってしまった。これであと2年は戦える。
— りんご🍏夜明けのリモートワーカー (@mstssk) February 12, 2023
改めて調べてみたら、形状の差もあるだろうけど、M590よりM750 S/Mサイズのほうが単純にちょっと小さいんだよな。形状の差もあり、手の大きさに合わなかった。
— りんご🍏夜明けのリモートワーカー (@mstssk) February 12, 2023
逆にM750 Lサイズはちょい大きいので、買うとしたらこっちだったんだろうな。
次買うときはサイズ感に気をつけよう。
PUBG: NEW STATE でちょくちょく勝てるようになってきたのでプレイングのメモを残す
2021年末に最近見てるYouTuberさんたちがPUBGをやってたので、影響されて2022年の年明けからPUBG: NEW STATEをプレイしてました。
一月半くらいやってきて時たまドン勝もできるようになってきたので、今までプレイしてきた中でメモを公開します。
ただし、勝利のコツというよりは、FPS/TPSの初心者がまず生き残ってチャンスを掴むためにこういう状況には気をつけろ、というのが殆どです。
以下、プレイし始めてから今までその時々で気付いたことのメモ:
- 車とかで走っていて撃たれたら逃げ切る。相手の場所がわからない状態で車を降りない。
- 無防備な状態で車の音や射撃音が聞こえたら、すぐ逃げる。
- 近くに敵がいるとわかっている状態で外に出るな。
- 建物の側にいる敵を轢こうとしても建物に逃げられて撃たれるだけなのでさっさと離脱する。
- 終盤で車での立ち回りできないと倒されるかプレイゾーンで死ぬので、ガソリンorバッテリーは必ず確保。
- 銃声フェイク https://www.youtube.com/watch?v=qjYfk8Dx8ME
- どんな時でもできるだけ射線を切った位置から狙撃する。
- (特にエリアが狭い状態で)小屋に立て籠ると突っ込んできた敵に対処しずらいので岩陰とかの方がマシかも。
- 撃ち合いの時、頭の高さを狙う。そうしないと相手のヘッドショットが先に当たって結局負ける。
- 車両を維持できないのなら素直に物陰で乗り捨てて、こそこそ歩いた方が堅実では?
- 車が来たら撃つ前に逃げろ。
- 障害物がないところで立ち止まるな。
- 打ち損じたからといって前に出て自分の優位な位置取りを無くさない。
- 敵を倒した後、その位置で回復してると銃声を警戒した敵がこっちを見て見つかるので、他の位置を取る。
- 最終円で敵を探しに行くのは無謀なのて、相手の位置がわからないうちは動かない。粘って粘ってこちらの位置を知らせないようにする。ドローンは必須かも。
- 最終円あたりではどこから狙われるか判らないので必ずスモークを焚いてから回復する。見つかって撃たれて死ぬよりは生存しそう。
- 余所に向かってる車両を撃っても有効打にはならないので、見つからないように隠れておくのがよい。
- より高い位置がある状態で屋根に登ると狙われる。
- 位置がわからない敵に狙われている時はとにかく身を隠しながら逃げる。
- 真ん中取りに失敗したら円の縮小と同時に動く方がいい。敵達も動かざるを得ない状況じゃないと一方的に狙われる。
- 撃ってきている時点でバレてるんだから、確実に身を隠せる場所に移動する。
- 車に乗っていて撃たれてる時に身を乗り出して撃ち返すとこっちが中りやすくなるだけなのでただ乗ったままのほうが生存率は高そう。
- 物音などの違和感を大事に。
- ゆっくり敵を探す暇はないので、常に動いて狙いをつけさせないまま探すか、粘って隠れ続ける。
- 建物の中でも必ず射線を切った位置で買い物する。
- 屋上とか射線が通るところで潜んでると違う方向から狙われるので屋内に行こう。
- ショットガンで置き撃ち中らないのでやめよう。
- SRのまま車を運転しない。すぐ戦闘できるよう必ずARをすぐ打てる状態で運転する。
- 人を轢こうとしにいくのはミスして自爆しがちなのでやめよう。木などの障害物がある場合は特に。
- 補給物資は落ちてしばらくしてから取りに行っても狙われるだけ。
- 物音が聞こえたら一度すぐ隠れる。それから安全に索敵する。
- 建物に車で止まる前にぐるっとまわって人がいないか確認する。
- 敵のだいたいの位置がわかっても詳細な位置がわからなければ、突っ込んでも明後日の場所を探しているうちに撃たれるだけ。
- クリアリングはちゃんと敵がいそうな隅を見る。
- 最終円で敵が見当たらない時、常に安全確保を優先して動く。敵に突っ込む必要はない。
- 補給物資を漁る時は常にスモーク焚こう。どこかしらか狙われやすいので。
- 車動かしながらドリンク飲むのは手間取って狙われがちなのでやめよう。
- 平原で岩陰に隠れる時、背後の射線通る所を一度クリアリングする。
- 車両は敵の死角で降りる。
- 物陰にいると解ってる敵にはグレネード投げて誘き出して撃とう。
- 相手が隠れていてもTPP視点でこっちを見ている可能性を考えよう。
- 車マジ大事。
- 対面してるときにしゃがむと相手が頭撃ちやすいので、立とう。
- 平地でSRに抜かれた仲間は助けに行けばこちらもやられる。諦めて、スナイパーの位置を見つけるのを最優先にする。
- 撃たれたら、すぐ近くの物陰より一つ下がった物陰があればそこに移動して戦域を見渡せる位置を取るのが良さそう。
- 建物の外壁の角に隠れて止まっていると、突っ込んで来た敵に先に撃たれるので、動き続けて良い位置を取りに行こうと動いてみよう。
- 角から出て撃つときは前に出ずに、すぐ角に隠れられるようにする。すぐ隠れないと、相手の返り討ちでやられる。
- 2階に立てこもっている相手と戦う場合は、階段側にグレネード投げて奥に退かせてから階段を登る。
- 確殺は後回しでいい、ノックダウンしたら周りを警戒する。パルスが近かったら勝手に死ぬので自分が安全地帯に移動を優先。
- 安全地帯が狭くなってきてる時に移動をギリギリまでしないでいると、先に車両を撃たれるので、ちょっと早いかなくらいのタイミングで移動したほうがよい。まだ移動が必要なタイミングで籠城は弱い。
- 最終円あたりでは如何に安全な位置を取るかが重要。敵と撃ち合うよりまず自分がより安全な位置を取る事を優先したほうが勝率は高そう。敵の位置を探っている間に敵が移動してしまっていて取り残されたり、一方的に撃たれる位置を取られたりしてしまう。
さて、これで一区切りついたので明日からは禁じられた西部を旅します。
JSConf 2021 資料まとめ
JSConf 2021を完全に見逃したので、後で見返すための資料まとめ。
Twitterで検索して出てきたものだけ。
録画アーカイブ
- JSConf.jp Track A - YouTube https://www.youtube.com/watch?v=fC4oZJmvfI0
- JSConf.jp Track B - YouTube https://www.youtube.com/watch?v=5H3Sswp5qYg
- JSConf.jp Track C - YouTube https://www.youtube.com/watch?v=Rmvt9Gt0VMk
時間帯別資料
12:10 - 12:40 基調講演
- JavaScript エコシステムを維持する OSS の努力と課題 - Speaker Deck https://speakerdeck.com/sosukesuzuki/javascript-ekosisutemuwowei-chi-suru-oss-falsenu-li-toke-ti
12:50 - 13:20
- (未発見 トラックA)
- Webフロントエンドのリプレースを支えるテストの考え方 / JSConf JP 2021 - Speaker Deck https://speakerdeck.com/berlysia/jsconf-jp-2021
- (未発見 トラックC)
13:20 - 13:50
- (未発見 トラックA)
- Universal DevTools for all environments - Speaker Deck https://speakerdeck.com/cola119/universal-devtools-for-all-environments
- (未発見 トラックC)
14:00 - 14:30
- Web ベースのカジュアルゲーム「block pong」の実装とビジネス https://www.slideshare.net/t-kihira/web-block-pong
- JavaScript(TypeScript)で メディアサイトを インフラから構築する方法 / jsconf-jp-2021 - Speaker Deck https://speakerdeck.com/hideokamoto/jsconf-jp-2021
- (未発見 トラックC)
14:30 - 15:00
- Deno のこれまでとこれから JSConf JP 2021 https://kt3k.github.io/talk_jsconfjp2021/#1
- AMP キャッシュを超えるシステムを自社ドメインで実現する方法 / How to implement a system that goes beyond amp-caching on your domain - Speaker Deck https://speakerdeck.com/ka2jun8/how-to-implement-a-system-that-goes-beyond-amp-caching-on-your-domain
- (未発見 トラックC)
15:10 - 15:40
- (未発見 トラックA)
- 関数型プログラミングのデザインパターンひとめぐり https://www.slideshare.net/100005930379759/ss-250735852
- (未発見 トラックC)
15:40 - 16:10
- (未発見 トラックA)
- GraphQL と Prisma から考える次のN年を見据えた技術選定 / Architecture decision for the next N years at StudySapuri - Speaker Deck https://speakerdeck.com/qsona/architecture-decision-for-the-next-n-years-at-studysapuri
- Helpfeel小咄2選 Web WorkerとMutationObserver - Speaker Deck https://speakerdeck.com/akiroom/helpfeelxiao-duo-2xuan-web-workertomutationobserver
16:20 - 16:50
- アクセシブルなフロントエンド開発のこれまでとこれから https://speakerdeck.com/yamanoku/the-past-and-future-of-accessible-front-end-development
- モバイルブラウザにおけるClient-side MLアプリケーションのプロダクション開発事例 / JSConf JP 2021 - Google スライド https://docs.google.com/presentation/d/1fwqrHrEEcNBeLYkiy49r5qGx83UXpX705E31GbyAy3k/edit
- Next.js でリアーキテクトした話 / story-of-re-architect-with-nextjs - Speaker Deck https://speakerdeck.com/takefumiyoshii/story-of-re-architect-with-nextjs
17:00 - (トラックAのみの時間帯) - 18:10
- 関数型プログラミングのデザインパターンひとめぐり https://www.slideshare.net/100005930379759/ss-250735852
- 組織フェーズを見据えたWebフロントエンドのアーキテクチャと変遷 - Speaker Deck https://speakerdeck.com/shibe23/zu-zhi-huesuwojian-ju-etawebhurontoentofalseakitekutiyatobian-qian
- Bundle Side Optimization in Future JavaScript - JSConf JP 2021 - Speaker Deck https://speakerdeck.com/yukukotani/bundle-side-optimization-in-future-javascript-jsconf-jp-2021
- 加速するEdge Computing - Speaker Deck https://speakerdeck.com/shinyaigeek/jia-su-suruedge-computing
18:10-18:40 スポンサーLT
- 同時多発的に価値創出していく Ubie Discoveryのフロントエンド開発 / 20211127 JSConf JP Ubie Discovery - Speaker Deck https://speakerdeck.com/empitsu/20211127-jsconf-jp-ubie-discovery
- GraphQL 導入の反省と再挑戦 / jsconf jp 2021 - Speaker Deck https://speakerdeck.com/izumin5210/jsconf-jp-2021
- スタディサプリにおける TypeScript 活用事例と今後の展望 / jsconf-jp-2021 - Speaker Deck https://speakerdeck.com/indigolain/jsconf-jp-2021
- 5分でできる生産性改善~ESLint Custom Rule を作ろう~ - Speaker Deck https://speakerdeck.com/chloe463/5fen-dedekirusheng-chan-xing-gai-shan-eslint-custom-rule-wozuo-rou
18:50 - 19:20
- (未発見 トラックA)
日本語の文字単位diffオプションをgit aliasに設定する
まとめ
- ある正規表現を指定することで、日本語文章のdiffを文字単位で見れるようにできる
- それをgit aliasに設定したかったけど、正規表現のエスケープ周りでうまくいかなかった
- スクリプトファイル化したものをgit aliasで実行することで解決した
日本語を文字単位でdiffを見るいい感じの方法
gitで日本語の文章を扱っていると、行ではなく文字単位でdiffが見たかったりする。
そういう場合、↓の記事で紹介されているdiffのオプションがとても便利で重宝しています。
git diff --word-diff=color --word-diff-regex=$'[^\x80-\xbf][\x80-\xbf]*' またはショートハンドで git diff --color-words=$'[^\x80-\xbf][\x80-\xbf]*' と実行すると、空白文字は無視して文字単位での挿入・削除だけが表示できる。
例えば簡単な例で、 id:mstssk がJSer.infoさんに出したtypo修正のdiffで試してみると、次のように削除した文字列と追加した文字列だけがインラインで表示できている。

ただgit aliasに設定するとエラー
これをgit aliasとして .gitconfig に次のように設定し git diffr や git showr <commit> のように簡単に実行したかったが、この書き方では正規表現が問題になるらしく実行時にbad configエラーが発生してしまった。
[alias] diffr = diff --color-words=$'[^\x80-\xbf][\x80-\xbf]*' showr = show --color-words=$'[^\x80-\xbf][\x80-\xbf]*'
頑張ってエスケープしようとしたが、通るやり方を結局見つけられなかった。 普通のaliasでやる方法もあるが、個人的にはgitのaliasとして設定しておきたい。
同じことで悩んだ方の記事: Git Diff で日本語の文章も綺麗に差分を出す - Neo's World
しばらくは diffr = diff --color-words="[^€-¿][€-¿]*" という正規表現を使わない設定の仕方で回避していたが、これは正規表現から文字の実態に置き換える時に盛大に間違えていて、動作したりしなかったりの駄目な設定だった。
外部のシェルスクリプトとして実行してしまえばいい!
どうにかならんもんかと最近あらためて見直したところ、git aliasなんだから外部化してしまえばええやん、と思い至った。
git aliasは ! を先頭につける書き方をすると任意の外部コマンドやシェルスクリプトを実行できるので、やりたいことをシェルスクリプトにしてそれを呼び出す様にしてしまえばいい。
むかーし自分の過去blogにも書いていたやり方だったのに、すっかり忘れていた。
というわけで、次のような感じに設定してうまくいきました。
~/.gitconfig
[alias] diffr = !~/path-to-shell-dir/git-color-words.sh diff showr = !~/path-to-shell-dir/git-color-words.sh show
git-color-words.sh
#!/bin/bash cmd=$1 shift git $cmd --color-words=$'[^\x80-\xbf][\x80-\xbf]*' $*
前述のファイル内容はサンプルで、実例はdotfilesリポジトリを適当に参照してください。