Hashcards: A plain-text spaced repetition system

2025/12/15 1:55

Hashcards: A plain-text spaced repetition system

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

Hashcards は、すべてのフラッシュカードデータをプレーンマークダウンファイル(例:

Cards/Math.md
Chemistry.md
)として保持する軽量でローカル優先のスペースドリピテーションアプリです。ウェブ UI を起動すると (
hashcards drill <path>
localhost:8000
を開く)、レビュー履歴は SQLite データベースに保存されますが、カード自体は Git に対応し続けます。各カードはテキストのハッシュでコンテンツアドレス化されているためです。インターフェイスは作成をスムーズにすることを優先しており、クローズ削除は Mochi の冗長な
{{ }}
ではなく
[ ]
を使い、単一行ブロック(例:
Q: … A:
C: …
)でカードを定義します。

著者は Anki の煩雑な UI、“すべて期限切れを学習” ボタンの欠如、WYSIWYG エディティング、そして不安定なプラグインサポートを批判しています。Mochi は過度に冗長なクローズ構文、ノートタイプ自動化がないこと、および長期的には性能が劣る単純な倍率ベースのスケジューラーという欠点があります。Hashcards はこれらの痛みを解消し、最小限の摩擦、最適なスケジューリングのための高度な FSRS アルゴリズム、および任意のエディタや Unix ユーティリティ(例:

wc
awk
)でカードを編集できる機能を提供します。デッキは Git でバージョン管理・ブランチ化・マージが可能で、サードパーティサービスなしにユーザーがデータを完全にコントロールできます。

将来的には CSV ベースのカードインポート、Python で書かれたノートタイプロジック、および Git 主導の共有ワークフロー拡張をロードマップに含めています。これらの機能は協力を容易にし、コンテンツ生成を自動化するとともに、開発者が Hashcards を自身のプロジェクトへ拡張できるようにし、オープンソーススペースドリピテーション エコシステムを形成する可能性があります。

本文

hashcards(ハッシュカード)

hashcards はローカルファーストのスペースドリピテーションアプリで、Anki や Mochi に似た機能を備えています。Anki と同様に、最先端のスケジューリングアルゴリズムである FSRS(現行最強)を使って復習を管理します。

hashcards の特徴は データベースを使用しない ことです。代わりにフラッシュカードコレクションは Markdown ファイルのディレクトリ構造として保存されます。

Cards/
  Math.md
  Chemistry.md
  Astronomy.md
  …

各ファイル(=「デッキ」)は次のような形式です。

Q: シナプス小胞の役割は何ですか?
A: ニューロトランスミッターをシナプス末端で放出するために貯蔵します。

Q: ニュリートとは何ですか?
A: 神経細胞から伸びる突起:軸索または樹状突起のいずれかです。

C: 話し言葉は [ブローカ―] 領域で [生成] されます。
C: 話し言葉は [ベルニッケー] 領域で [理解] されます。

カードは通常のメモと同じように書き、軽量マークアップで基本的な(質問/回答)カードやクローズドリープラッシュを表現します。学習するには:

$ hashcards drill <cards ディレクトリへのパス>

localhost:8000
で Web インターフェースが起動し、カードをレビューできます。性能と履歴は SQLite データベースに保存されます(同じディレクトリ内)。カードは内容アドレス化されており、テキストのハッシュ値で一意に識別されます。

なぜこの設計なのか?

  • 好きなエディタで編集 – Markdown ファイルを開くだけ。
  • バージョン管理 – Git でコレクションを保存すれば、変更履歴の追跡・GitHub への共有・ブランチ統合が可能です。
  • スクリプト対応
    wc
    awk
    のような Unix ユーティリティでカードを検索・更新したり、CSV/JSON などからデッキを生成するカスタムスクリプトを書けます。
  • オープンフォーマット – データベースの不透明なバイナリではなく、人が読めるテキストです。
  • フリクションレス作成 – クローズドは
    […]
    で表現し、追加キー入力不要。

私が求めていたもの

  1. 高速カード作成
    スペースドリピテーションの最大のボトルネックはレビューではなく、知識をカードに変換することです。カード作成が面倒だと数が減り、学習量が制限されます。

  2. 既存カードの簡単編集
    教科書は更新されるものです。定義が変わったら多くのカードを修正しなければならない場面もあります。hashcards ではデッキが Markdown ファイルそのままで、関連カードが隣に並び、場所を移動せずに編集できます。

  3. 所有権と透明性
    フラッシュカードをプレーンテキストの Git ファイルとして保存すれば、完全な制御と共有・公開が可能です。

Anki との比較

  • インターフェース – Anki の UI は使いにくい(特にレビュー画面)。
  • カード入力 – WYSIWYG エディタはキーボード⇔マウス切替を強いる。キー割り当ては覚えづらい。
  • プラグイン – 便利だが、動作が不安定で「ジャンク」になりやすい。
  • アルゴリズム – FSRS は Anki でも十分に機能します。

Mochi との比較

  • インターフェース – 直感的でショートカット豊富、遅延なし。
  • カード入力 – Markdown が便利だが、クローズは
    {{1::…}}
    のように冗長。hashcards は
    […]
    を使う。
  • ノートタイプ – Mochi には Anki の強力なノート型システムが無い。hashcards は Python スクリプトで拡張可能です。
  • アルゴリズム – 以前は単純乗数式だった Mochi が、最近 FSRS を採用。

デザイン決定

  • Markdown デッキ – ファイル一つにデッキをまとめる。カードは

    Q:
    A:
    C:
    (クローズ)で始まる。
    例:

    Q: カーボンの原子番号は何ですか?
    A: 6
    
    C: 原子番号は [カーボン] の [6] です。
    
  • 最小マークアップ – カードは行単位で書き、空白行で区切ります。質問・回答カードは

    Q:
    A:
    、クローズカードは
    C:

  • コンテンツアドレス化 ID – 各カードのハッシュが一意に識別します。

利点

  • どんなエディタでも編集可能で、ファイルブラウザからコレクションを操作できます。
  • Unix ユーティリティやカスタムスクリプトでカードを検索・フィルタリング・バッチ更新が可能です。
  • Git でバージョン管理し、ブランチやマージ、PR を活用できます。
  • GitHub 上にフラッシュカードを公開すれば、他者も閲覧・再利用できます。
  • CSV → Markdown などでデッキをプログラム的に生成し、Makefile で統合。

hashcards は洗練された UI と高度なスケジューラー、そしてテキストベースのフリクションレスワークフローを提供し、知識を「手元に残す」ことができます。

同じ日のほかのニュース

一覧に戻る →

2025/12/15 6:53

Anthropic Outage for Opus 4.5 and Sonnet 4/4.5 across all services

## Japanese Translation: アノマリーは複数のAnthropicサービスに影響を与え、特にSonnet 4.0、Sonnet 4.5、およびOpus 4.5モデルが対象でした。事件は2025年12月14日21:31(UTC)に初めて報告され、同日の21:46(UTC)に調査更新が行われました。この更新で問題は該当するモデルバージョンに起因することが確認されました。影響範囲は複数のAnthropicプラットフォームに及びます——claude.ai、platform.claude.com(旧console.anthropic.com)、Claude API(api.anthropic.com)およびClaude Codeです。タイムラインや次のステップについてはまだ発表されていません。

2025/12/15 6:05

2002: Last.fm and Audioscrobbler Herald the Social Web

## Japanese Translation: *変更は不要です。要約はすべての列挙された重要ポイントを正確に反映していますが、商業的実現可能性について小さな推測上の結論も追加されています。

2025/12/15 4:42

JSDoc is TypeScript

## Japanese Translation: > この文章は、JavaScript で JSDoc ベースの型付けを「TypeScript」と同様に扱えると主張しています。理由として、TypeScript の言語サービスがこれらのコメントを解釈し、プレーンな `.js` ファイルでも VS Code の IntelliSense を動かすためです。この議論は、2023 年 5 月に Hacker News に投稿された Svelte のリファクタリングに遡ります。Rich Harris は、型宣言を JSDoc に移すことは「TypeScript に反対する」立場ではなく、単なる別のアプローチだと説明しています。その後、多くのブログ記事が続き、JSDoc がビルドステップなしで TypeScript の全メリットを提供すると主張しました。 > > 著者は古いフロントエンドを JSDoc だけで書き直すことでこの手法を実証しています。ほとんどの TS 機能は表現可能ですが、ランタイム列挙型は除外され、ジェネリクスは冗長になるものの推論が向上することに注意しています。JSDoc 型付きパッケージでは、CTRL/CMD クリックで別の `.d.ts` ファイルではなくソースコードへジャンプできます。TypeScript ツール(例:OpenAPI/GraphQL タイプジェネレーター)は、`.ts` ファイルではなく JSDoc コメントとして型を出力するように設定可能です。また記事は Microsoft の初期 ScriptSharp 作業や TS における列挙型の歴史にも触れ、TypeScript の学習曲線が膨大な変更ログドキュメントから来ていることを指摘しています。将来的には、JSDoc だけで型付けする採用が広がれば、ツールチェーンはコメントベースの型を優先し、別途 `.ts` ファイルの必要性が減り、JavaScript チームにとってツールコストが低下すると著者は予測しています。