harryのブログ

ロードバイクとか模型とかゲームについて何か書いてあるかもしれません

enumのせいで人類はまだObject.entries()に完璧な型付けできないよねぇと言う話

  • type-fest に ObjectEntries が入った
  • 組み込みの Object.entries() の型定義が改善されない理由の一般的な説明
  • enum のせいで人類は Object.entries() に完璧な型付けをできない
  • そんなわけで今日も乱立する Object.entries() の型定義

type-fest に ObjectEntries が入った

2026/10/14、遂に type-fest に ObjectEntries (ObjectEntry) が入ったようですね(めでたい

github.com

このコミットだけ見て、個人的には「結構割り切ったなぁ~」と言う印象を受けました *1

export type ObjectEntry<BaseType> = [keyof BaseType, BaseType[keyof BaseType]];

ただ、main ブランチの実装が異なっていたので history を確認したところ、直後のコミットで以下の定義に変更されていました

なるほどなるほど、頑張ってますね

`ObjectEntry`: Keep each key paired with its own value, and keep a ge… · sindresorhus/type-fest@8a3c03d · GitHub

export type ObjectEntry<BaseType extends object> =
    // `never` has every key, so it would otherwise give a pair for each kind of key. The check is not distributive, so a generic `BaseType` is not read through its constraint.
    [BaseType] extends [never]
        ? never
        : {
            // `Object.entries` yields every key as a string, because every property key is a string or a symbol at runtime, so a numeric key arrives as its string form. A string key is kept as it is, so a string enum or a branded key keeps its type.
            [Key in Exclude<keyof BaseType, symbol>]: [(Key & string) | `${Key & number}`, BaseType[Key]]
        // A mapped type indexed by its own keys, rather than a conditional type, pairs each key with its own value and still resolves for a generic `BaseType`. A type with only symbol keys has no entry at all, because `Object.entries` never yields one.
        }[Exclude<keyof BaseType, symbol>];

*1:関連する issue を subscribe してたので、このコミットで close されたメールで飛んできた

続きを読む

ラスオリR+版ラヴァジャー30段階を攻略する

  • 前書き
  • 編成
    • 分隊1
    • 分隊2
  • 動画
  • Appendix
    • 前準備
      • 変化の聖所第2区域クリア
      • BR最適化回路 & BRモジュール堀り
      • BR突撃回路 & BRモジュール堀り
    • R+版 Patch Notes

前書き

  • 総力戦開始直後、しばらくはコロッサス君が続くものだとばかり思って準備してたら、早々にラヴァジャーに切り替わって萎え散らかしたやつ
    • コロッサス編成は、ラヴァジャーの機動型不可の段階で出番があるので完全に無駄ではないが…
  • 前回は29段階クリアで詰んだが、今回で30段階クリアできたので、一応記事として残しておく

編成

  • 本国版の以下を参考に編成する
    (未実装の SSS OS が使われてたりするので、そこだけアレンジする)
  • グランクリュ・チョコレートは 1 個で良い(重要)
  • 戦闘は、分隊1から分隊2に交代してオートでOK

arca.live

続きを読む

Edgeではてなブログとか特定サイトでスタイルが適用されない問題

  • tl;dr
  • なにもしてないのに壊れた(なにもしてないのに壊れた)
  • 調査と解決方法
  • 余談

tl;dr

  • 多分、原因は Edge のトラッキング防止機能
    • アドレスバーのカギアイコンや以下の設定ページでブロックされてるものが確認可能
    • edge://settings/privacy/trackingPrevention/blockedTrackers
  • 対処方法 (以下いずれか)
    1. edge://settings/privacy/trackingPrevention で「厳重」から「バランス (推奨)」に変更する
      • 独自ドメインを含めたすべてのサイトが正常になりそう
    2. edge://settings/privacy/trackingPrevention/trackerExceptions で例外を設定
      (厳重のままで、独自ドメインは諦める)
      • [*.]hatenablog.com
      • [*.]hatenablog.jp
      • [*.]hateblo.jp
      • [*.]hatenadiary.com
      • [*.]hatenadiary.jp
続きを読む

クレカ不正利用未遂にあった話

  • tl; dr
  • ある日、突然のSMS認証
  • 翌日の電話問合せ
  • その後の対応
  • 再発行カード到着後
  • おわりに

tl; dr

前提とまとめ

  • カードはヨドバシゴールドポイントカード・プラス (Visa)
  • 個人では 1Password を使用しており、全サイト・サービスで異なるパスワードを設定している
  • 3D セキュア (Visa Secure) によって不正利用が防がれた
  • 未遂の場合、取引明細に残らないため、直接問い合わせる必要がある
    • 電話: 9:30 ~ 18:00 (年中無休)
    • Web フォーム問い合わせもあった
  • 3D セキュア認証が発生したサイト・サービスは教えてもらえる
  • 電話での問い合わせ (調査) 中からカードが停止される
    • 調査の結果、問題がなければ停止解除されると思うが
    • 今回は普通に停止のまま再発行になった
  • カード停止後、Web 明細は見れなくなる
    • 当月の明細は閲覧手段がなくなる
    • 明細郵送の申し込みしてない場合、過去の明細を見る手段もなくなる
      • 切り替えが必要なカード引き落としを洗い出すの難しくなる
  • カード再発行は 2 週間前後かかると言われる
    • 実際には 1 週間で届いた
  • サブスク系のカードは登録しなおす(新カード届くまで & 届いた後)
    • YouTube のメンバーシップ特典
    • ChatGPT・Claude などの月間サブスク
    • 直近で契約更新がありそうなサービス
    • etc.
  • サービスによっては自動で再発行後のカードに切り替わる

ある日、突然のSMS認証

在宅勤務の Web 会議中にカード利用の SMS 認証が届いた、もちろん内職しながら買い物をしていたわけではない。

見知らぬ、認証

続きを読む

ABCでRustのアレどう書くの

なにこれ

  • AtCoder Beginner Contest でよく使うAPI/記法/スニペットをまとめておく
  • 自分用メモ
    • いちいち AI に聞くのがダルイ
    • 書きかけだが、下書きから見るのダルいので公開しておく
    • 適宜更新予定

余談

書いてる最中にルールが変更されたっぽい
生成AIの技術向上に伴うABC,ARC,AGCにおけるルール変更について - AtCoder

この記事では分からないこと

続きを読む

IIDXでの爪剥がれ/爪割れ対策

  • 前書き
  • 爪剥がれ対策
  • 爪割れ対策
    • テーピング
    • テープの持ち運び
  • 剥がれ/割れ両対応
    • テーピング
    • テーピングのみの段位プレイ動画
  • 試した結果やめたこと
    • ゲーミングフィンガーキャップ
    • サイクルグローブ
  • 試してないこと
  • おわりに

前書き

  • IIDX やってると爪が割れたりボタンとの摩擦で剥がれてきたりする
    • プレイ楽曲が難しくなるにつれて起きるようになった
    • ボタンの叩き方が悪い可能性はある
  • 仮に 叩き方が悪いとして、矯正完了までプレイしない選択肢は無いので対策している
  • 紆余曲折あったが、現状やってる対策をまとめておきます
続きを読む

RO初心者向け蜃気楼YE Inferno不完全情報

  • これなに
  • なんで書いたの
  • 対象読者
  • 蜃気楼の塔YE Inferno
  • 基礎知識
  • これだけはやるなリスト
  • 事前準備
  • 直前準備
  • 受付開始後
  • 第1層
    • 前半
    • 後半
  • 第2層
    • 道中とボス戦
    • ルート別必要耐性
      • 火
      • 水
      • 風
      • 地
  • 第3層
    • 3-1
    • 3-2
    • 3-3
  • 第4層
    • 4-1
    • 4-2
  • 終了後
  • 参考リンク
  • Appendix
    • 参加のメリット・デメリット
    • 転送装置毎の雰囲気
    • 別に知らんでもいいこと
    • 精錬祭観光スポット巡り

これなに

  • 蜃気楼の塔YE 難易度 Inferno の 不完全な 情報まとめ
    • ふわっとしたところや誤っているところがあると思われる
    • 自己責任でご参照ください

なんで書いたの

  • 古い記事が多く、分かりやすそうな記事があまりないため作成
    • 2026年現在、難易度 Hard は存在しない
  • この記事より分かりやすくて正確な情報源が出たら削除するかも *1

普通に参加者多いし、この記事要らんのでは…

対象読者

  • 蜃気楼YE Inferno に参加してみたい人
  • 蜃気楼YE でなにをすればよいのか分からない人
  • あまり装備が整ってない人

蜃気楼の塔YE Inferno

ragnarokonline.gungho.jp

  • 4次職向けの蜃気楼の塔YE
    • 「おっ何か面白そうな塔があるやん!調査してみよ!あっモンスターは冒険者さんおなしゃーっすw」
      「えぇ…」
  • Lv 201 ~ 260 まで参加可能
  • Inferno は、Yggdrasill2 鯖に人が集まっている
    • ティアマト攻城戦含め、Extra は Yggdrasill、Inferno は Yggdrasill2 に集まっている *2
    • Yggdrasill2 鯖にキャラを引き継いで行くこと
      • 調査団キャンプ3 (Inferno) なので、「2-3 開催」と表現されることも *3
      • イベントなどでキャンプ3が満員になると、キャンプ4 (2-4) に行く人も
  • 木曜 & 日曜 の 15:00 と 22:30 開催 (週 4 回)
  • 報酬などは #参加のメリット・デメリット をご参照ください

調査団キャンプ一覧

登録したルートから殲滅していき、他 PT (ルート) と合流していく流れ

© Gravity Co., Ltd. & Lee MyoungJin(studio DTDS). All rights reserved.
© GungHo Online Entertainment, Inc. All Rights Reserved.
当コンテンツの再利用(再転載・配布など)は、禁止しています。

*1:この記事が検索妨害になるため

*2:負荷分散の意味合いが強い?

*3:蜃気楼YE Extra は 1-5 開催です

続きを読む