**Tc – テオドール・キャルヴィンによる言語非依存テストフレームワーク**

2025/12/23 7:03

**Tc – テオドール・キャルヴィンによる言語非依存テストフレームワーク**

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

要約

Japanese Translation:

概要

「tc v1.0.0 – island hopper」フレームワークは、軽量で言語非依存のテストツールです。

input.json
を標準入力から読み取り、
expected.json
を標準出力に書き込むことで、任意のプログラミング言語のテストを実行します。

テストはディレクトリ構成で整理されます。各スイートには

run
実行ファイルと、JSON ファイルを保持するサブフォルダが入った
data/
フォルダがあります。このフレームワークは Bash 4.0+ と jq のみを必要とし、期待出力の動的値に対してパターンマッチング(
<uuid>
<timestamp>
<number>
<string>
など)を使用します。

カスタムパターン(例:メールアドレス、ipv4、電話番号)は

TC_CUSTOM_PATTERNS
環境変数で定義できます。主なコマンドは次のとおりです。

  • tc <path>
    – テスト実行
  • tc new <test-path>
    – 新しいテストスイートの scaffold
  • tc list
    ,
    tc tags
    ,
    tc explain
  • --parallel
    (自動CPU検出または明示的なワーカ数)で並列実行

TTY と非TTY ターミナルでは出力が異なります。TTY ではヘリコプター スピナー付きのクリーンな単一行ステータスと fail‑fast 動作が表示され、非TTY では詳細ログが発生します。これは

TC_FANCY_OUTPUT
変数で制御されます。

プロジェクトには実験的な AI 主導ツール tc-kit も含まれており、仕様からテストを生成し spec‑kit と統合できるため、将来的な自動化の可能性が示唆されています。

Ruby, Go, Python, JavaScript, Rust のマルチ言語デモは、同一のテストスイートがすべての言語で通過することを示し、本当に言語非依存であることを証明しています。

Unix の

tc
(トラフィックコントロール)と衝突しないように、ユーザーは
$PATH
./tc/bin
を追加してください。リポジトリは https://github.com/ahoward/tc でホストされており、MIT ライセンスの下で公開されています。

このバージョンはすべての重要ポイントを網羅し、不必要な推測を排除し、主旨を明確かつ読みやすい形で提示しています。

本文

tc – テオドール・カルヴィンのテストフレームワーク 🚁

Unixハッカー向けの言語非依存テスト


テオドール「tc」カルヴィン

  • ヘリコプターパイロット、フレームワーク名の由来、伝説的存在
|=o=o=o=o=o=o=o=o=o=o=o=|
      tc v1.0.0 – アイランドホッパー
           |                   どんな言語でも、どこでもテスト
       ___/ \___      (o)       🚁 安全に飛び、しっかりテスト
     (( tc      ))======\
       \_______/        (o)
         ^   ^
      ^-----------^

TL;DR

何をするの?
言語非依存型テストフレームワーク。1度書いたテストを Bash、Python、Rust、Go など任意の言語で実行できます。

どうやって動くか?
テストはディレクトリ単位です。各プログラムは

stdin
から
input.json
を読み取り、
stdout
expected.json
を出力するだけです。

はじめに

# クローン&インストール
git clone https://github.com/ahoward/tc.git
cd tc

# PATHに追加(Unix の traffic‑control コマンドと衝突しないように)
export PATH="$PWD/tc/bin:$PATH"

# バージョン確認
tc --version

# hello‑world サンプルを試す
tc examples/hello-world

# 最初のテスト作成
tc new tests/my-feature

PATH 設定(Unix の
tc
と衝突しないように)

# 現在のセッションで追加
export PATH="$PWD/tc/bin:$PATH"

# 永続化したい場合はシェル設定へ追記 (任意)
echo 'export PATH="$PWD/tc/bin:$PATH"' >> ~/.bashrc   # または ~/.zshrc

# 確認
which tc        # ./tc/bin/tc が表示される(/usr/sbin/tc ではない)
tc --version    # tc v1.0.0 – island hopper と表示

tc
は何?

  • シンプルなテストフレームワークで、以下が可能です。
    • 同じテストスイートで任意の言語をテスト
    • テストをディレクトリ構造と JSON 入出力で整理
    • jq
      だけで動く(依存はゼロ)
    • 実装を書き換えずにコードを別言語へ移植

哲学

シンプル • ポータブル • 言語非依存 • Unix • スペック駆動
🤖 AI時代では、スペックとテストが永続的で実装は消費されるもの。
テスト=スペック、コード=ビルドアーティファクト

🔬 実験: マルチ言語 DAO デモ –

projects/
examples/multi-lang-dao/
に Ruby, Go, Python, JavaScript, Rust で同一インターフェースを実装し、全て同じテストスイートに合格。

ビジョン: 消費型アプリケーション – 言語は自由に切り替え、テストは永続。詳細は

docs/THEORY.md
を参照。


コマンド

コマンド説明
tc
すべてのテストを実行(KISS!)
tc <suite-path>
単一テストスイートを実行
tc <path> --all
ディレクトリツリー内の全テストを実行
tc <path> --tags TAG
タグにマッチするスイートのみ実行
tc <path> --parallel
すべてを並列実行(CPU自動検知)
tc <path> --parallel N
N 個のワーカーで並列実行
tc new <test-path>
新しいテストスイート生成
tc init [directory]
README付きテストディレクトリ初期化
tc list [path]
メタデータ付き全テストスイート一覧
tc tags [path]
利用可能なタグを表示
tc explain <suite>
テストスイートの内容説明
tc --version
バージョン表示
tc --help
ヘルプ表示

出力モード

  • TTY モード(端末): 単一行ステータスにヘリコプタースピナー、失敗時は即停止
  • 非 TTY モード(CI/CD): 従来の詳細ログ出力
    上書き:
    TC_FANCY_OUTPUT=true/false

ドキュメント

  • 完全なドキュメント | →
    tc new
    ガイド | → システムアダプタ理論 (WIP)

サンプル構造

my-feature/
├── run                    # 実行ファイル: input.json を読み取り、JSONを stdout に出力
└── data/
    └── scenario-1/
        ├── input.json     # テスト入力
        └── expected.json  # 期待結果

tc my-feature
で実行 → ✓ 合格 / ✗ 不合格


パターンマッチング

expected.json
内で動的値に対して簡易パターンをサポートします。

{
  "id": "<uuid>",
  "status": "pending",
  "created_at": "<timestamp>",
  "count": "<number>",
  "message": "<string>"
}

パターン

パターン意味
<uuid>
UUID v4 の形式を検証
<timestamp>
ISO 8601 タイムスタンプ (
YYYY-MM-DDTHH:MM:SS
)
<number>
任意の JSON 数値
<string>
任意の文字列
<boolean>
true
または
false
<null>
null 値
<any>
何でも一致

ネストしたオブジェクトや配列要素、正確な値と混在しても動作。設定不要で自動検知。

カスタムパターン

環境変数

TC_CUSTOM_PATTERNS
で定義可能:

export TC_CUSTOM_PATTERNS="email:^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
ipv4:^([0-9]{1,3}\.){3}[0-9]{1,3}$
phone:^\+?[0-9]{10,15}$"

expected.json
で使用:

{
  "email": "<email>",
  "server": "<ipv4>",
  "contact": "<phone>"
}

形式:

パターン名:正規表現
(1 行に 1 パターン、標準正規表現)


機能一覧

テスト実行

  • 単一スイート実行
  • JSON の順序非依存比較
  • パターンマッチング (
    <uuid>
    ,
    <timestamp>
    など)
  • タイムアウト管理
  • 結果永続化 (
    tc-result
    ファイル)
  • 階層的テスト探索 (
    --all
    )
  • タグベースフィルタリング (
    --tags
    )
  • 並列実行 (
    --parallel
    , CPU コア自動検知)
  • TTY での単一行アニメーションステータス(ヘリコプター 🚁、スピナー、カラー)
  • 失敗時は即停止(TTY モードではログパス表示)
  • 最終統計サマリー(色付きカウント: 合格/不合格/エラー、累積時間)
  • 非 TTY 用の詳細出力
  • 機械可読ログ (
    JSONL
    形式
    tc/tmp/report.jsonl
    )

テスト生成

  • スキャフォールド生成 (
    tc new
    )
  • ディレクトリ初期化 (
    tc init
    )
  • メタデータフラグ (
    --tags
    ,
    --priority
    ,
    --description
    )
  • テンプレートシステム (
    --from
    ,
    --list-examples
    )
  • TDD ワークフロー(テストが失敗するまで実装を進めない)

発見 & メタデータ

  • 全テストリスト表示 (
    tc list
    )
  • タグ一覧 (
    tc tags
    )
  • スイート説明 (
    tc explain
    )
  • AI フレンドリーなメタデータ形式

品質保証

  • tc
    自身をテストする(ドッグフーディング)

ロードマップ

  • パターンベース選択
  • 分散テスト実行

AI 主導開発

tc-kit: AI で自動テスト生成 (実験的)
spec‑kit と連携し、仕様からテストを自動生成。AI アシスト開発ワークフローに最適。

クイックスタート:

# スペックからテスト生成
/tc.specify

# 実装してテスト合格へ
edit tc/tests/my-feature/user-story-01/run

# 検証・洗練
/tc.validate
/tc.refine

詳細は

AI.md
を参照。


インストール

必須: Bash 4.0+、

jq

# jq のインストール
brew install jq                     # macOS
sudo apt-get install jq             # Ubuntu/Debian

# tc をクローン
git clone https://github.com/ahoward/tc.git
cd tc

# PATH に追加
export PATH="$PWD/tc/bin:$PATH"

# バージョン確認
tc --version

PATH 設定は TL;DR セクションを参照。


ライセンス

MIT ライセンス –

LICENSE
をご覧ください。


☕ とヘリコプターで作成

「チョッパーが燃料満タンで準備完了。コードをテストしよう。」 — tc 🚁 安全に飛び、しっかりテスト


同じ日のほかのニュース

一覧に戻る →

2025/12/23 4:15

**イラスト付きトランスフォーマー**

## Japanese Translation: 記事は「Attention is All You Need」で紹介されたTransformerアーキテクチャと、従来の再帰型や畳み込み型ニューラル機械翻訳モデルに比べてその注意力ベース設計がトレーニングを高速化する方法について説明しています。 Transformerはエンコーダスタック(通常6層)とデコーダスタック(同じく6層)で構成されます。各層には以下の要素があります: 1. **自己注意**では、トークン埋め込み(512次元ベクトル)がクエリ・キー・バリュー行列にそれぞれ64次元へ射影されます。ドット積スコアは \(\sqrt{64}\) で縮小し、softmax を適用して値を重み付けし、合計します。 2. **マルチヘッド注意**では、各層に8セットの Q/K/V 射影が使用されます。すべてのヘッドからの出力は連結され、最終的な重み行列 \(W_O\) を通じて射影されます。 3. フィードフォワードニューラルネットワーク(ReLU の間にある2つの線形層)。 すべてのサブレイヤは残差接続とその後のレイヤ正規化で包まれています。 位置エンコーディング(512次元の正弦/余弦ベクトル)は埋め込みに加算され、モデルがトークン順序を知り、訓練時より長いシーケンスを扱えるようにします。デコーダでは自己注意がマスクされ、将来位置は \(-\infty\) に設定されるため、オートレグレッシブ生成が保証されます。 最終的なデコーダ出力は線形射影されてロジットベクトル(次元はターゲット語彙サイズ ≈10 000 単語)となり、その後 softmax で単語確率を得ます。訓練では、これらの分布とワンホットエンコードされた目標トークン間のクロスエントロピー損失が最小化され、逆伝播により最適化されます。 デコーディングは貪欲法またはビームサーチで行うことができ、記事では将来的にデコーディング戦略と大規模語彙や長いシーケンスへの訓練を改善する予定だと述べています。本文は元論文、Tensor2Tensor コード、Jupyter ノートブック、および後続のTransformerバリアントを参照し、Twitter での訂正を歓迎しています。 産業界において、Transformers を採用すると NLP プロジェクトが加速し、翻訳品質が向上し、言語集約型サービスへの展開が拡大します。

2025/12/23 4:37

**超音波による癌治療:サウンドウェーブで腫瘍と戦う**

## Japanese Translation: ### Summary HistoSonics の Edison システムは、水で満たされた膜を通じて高強度超音波を届け、腫瘍内部で崩壊する空洞泡を生成し、周囲の健康な組織を保護しながらがん細胞を機械的に液化します。この技術は 2001 年にミシガン大学で Zhen Xu によって発見されました。彼女は 20 MPa を超える負圧のマイクロ秒バーストが過熱なしに泡を作り出せることを示し、後に 2009 年に HistoSonics を設立して商業化しました。 FDA は 2023 年に肝臓腫瘍用として Edison を承認しました。主要な腎臓癌研究は 2026 年に完了予定で、その後規制承認が期待されます。大規模な膵臓試験(5 年生存率 13 % を目標)が進行中で、初期結果では深部病変の成功した焼灼と良好な耐容性が示され、ヒストトリッピーを他治療法と組み合わせることで残存疾患に対処し免疫応答を誘発できる可能性が示唆されています。 HistoSonics は、その目的に特化したデバイスが物理学、生物学、および生体医学工学を統合し、ロボット制御・コンピュータガイドシステムで繊維組織(例:血管)を保護しつつ液化腫瘍残渣の自然除去を可能にすると主張しています。技術はまた、がんタンパク質を露出させることで免疫応答を刺激し、免疫療法と組み合わせた際に全身性抗腫瘍活性を高める可能性があります。 新しいガイダンス技術—超音波ではなく X 線画像—と治療エコーを解析するフィードバックシステムが開発され、組織破壊のリアルタイムモニタリングが改善されています。 2025 年 8 月にジェフ・ベゾスの所有グループが HistoSonics を 22.5 億米ドルで取得し、研究開発と市場拡大への新たな資源を提供しました。成功すればヒストトリッピーは肝臓・腎臓・膵臓以外の癌にも非侵襲的手術オプションを広げ、音波をがん治療における変革的モダリティとして位置付ける可能性があります。

2025/12/23 3:46

**GLM‑4.7:コーディング機能の進化**

## Japanese Translation: (combining missing details, removing unfounded inferences, keeping clarity):** --- ## Summary GLM‑4.7 は GLM‑4.6 に対し、複数の面で大幅な性能向上を示しています: - **コーディングベンチマーク:** SWE‑bench (+5.8 % で 73.8 %)、SWE‑bench Multilingual (+12.9 % で 66.7 %)、Terminal Bench 2.0 (+16.5 % で 41 %)。 - **ツール使用 & ウェブ閲覧:** τ²‑Bench と BrowseComp において顕著な向上を示し、モデルのツール実行とウェブサイトナビゲーション能力が改善されています。 - **複雑推論:** HLE ベンチマークで +12.4 %(42.8 %)に達し、チャット・創作執筆・ロールプレイシナリオでの性能も向上しています。 リリースには、新しい *思考モード* — Interleaved Thinking, Preserved Thinking, Turn‑level Thinking — が含まれ、ツール使用と複雑なエージェント操作を強化します。GLM‑4.7 は 17 の評価テスト(例:MMLU‑Pro, GPQA‑Diamond, AIME 2025, IMOAnswerBench, LiveCodeBench‑v6)で競合他社より優れた性能を示しています。 ### Availability - **API アクセス:** Z.ai、OpenRouter などのパートナー経由で利用可能。ユーザーは「glm‑4.7」を選択するか、API リクエストで直接呼び出すことができます。 - **ローカルデプロイメント:** 重みは HuggingFace と ModelScope に公開されており、vLLM および SGLang 推論用の公式ドキュメントがあります。 - **価格とアップグレード:** GLM Coding Plan の購読者は自動でアップグレードされます。新規ユーザーは Claude レベルの性能を約 1/7 の価格で、使用量上限が 3 倍になるメリットがあります。 ### Ecosystem impact リリースはすでに人気のコーディングエージェント(Claude Code, Kilo Code, Cline, Roo Code)へ統合されており、Vibe Coding の UI 改善と同時期です。手頃な価格で高性能なコーディング支援とオープンウェイトを提供することで、GLM‑4.7 はソフトウェア開発ワークフロー全体のコスト低減と生産性向上が期待されています。 --- **Key points retained:** All major quantitative gains, new thinking modes, benchmark superiority, availability channels, pricing structure, local inference support, and ecosystem integrations are explicitly mentioned. Unnecessary inferences have been removed, and vague phrasing (e.g., “clear performance boost”) has been replaced with concrete data.