エレガントなカールのウェブサイトを

2026/10/15 4:29

エレガントなカールのウェブサイトを

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

要約▶

Japanese Translation:

本記事では、nytpu.com のユニークで機能的な Web 端末のバージョンを紹介しており、ANSI エスケープコードを使用してコマンドライン内で直接レンダリングされます。これらのコード(

\x1b[
などという単純なテキストコマンド)は画面の色や形状を制御するため、特別なソフトウェアなしでブラウザをレトロなターミナルのように動作させることができます。著者は、複雑な外部ライブラリや ratatui などのツールに依存する代わりに、2022 年以降作成(4 年以上前に実装済み)の軽量フォーマット言語である Gemroff マークアップを使用して手動で構築しました。カスタムの静的サイト生成器が設定されており、HTTP、Gemini、Gopher プロトコルのいずれでも同時にコンテンツを配信します。特に、サーバーには curl などのクライアントとの互換性を確保するための
X-Original
ヘッダオーバーライドが含まれています。このプロジェクトは際立っており、trinkey のバージョンや proot.party のバージョンなど、以前試みられたものは既に 2026 年末時点で非機能的になっています。Windows ユーザーは標準のコマンドシェルがデフォルトでこれらのグラフィックをブロックするため、明示的に
curl.exe
を使用する必要がありますが、このセットアップはマルチプロトコルに対応したターミナル愛好家向けのシームレスなブログアクセスを提供します。ユーザーは
curl nytpu.com/gemlog/2026-03-18
または
curl nytpu.com
を通じて curl バージョンにアクセスでき、Windows の cmd.exe は ANSI エスケープコードをデフォルトで無効にしている点、PowerShell ではエイリアスではなく
curl.exe
を使用する必要がある点を留意してください。

本文

ターミナルで表示するための curl バージョンサイトを実現した話

📅 記事情報

  • 初版公開: 2026 年 3 月 18 日
  • 最終更新: 2026 年 10 月 14 日

💻 curl コマンドでのアクセス方法

以下のコマンドを実行することで、ターミナル上で動作するサイトを閲覧できます。

curl nytpu.com/gemlog/2026-03-18
# またはトップページへ
curl nytpu.com

※ Windows 利用者への注意

  • cmd.exe
    で ANSI エスケープコードが無効なのは OS の仕様です。
  • PowerShell では
    curl
    コマンドが
    Invoke-WebRequest
    に別名割り当てられているため、明示的に
    curl.exe
    を使う必要があります。

📝 この記事の背景

  • 以前に Fediverse 側で少しだけ投稿したが、詳細には触れていなかった。
  • 「複雑そう」と考えられがちだが、実際はそれほど複雑ではない。
  • 読者から「どのように実現したのか?」との質問を受け、7 ヶ月ぶりの記事として執筆するに至った。

💡 アイデアの源流

  • このコンセプトは以下の curl サイトから着想を得たもの(自発案ではない):
    • [
      trinkey.com
      ](https://curl trinkey.com) (※現在機能なし)
    • [
      proot.party
      ](https://curl proot.party) (※現在機能なし)
  • 両者とは異なるアプローチを採用しているが、非常に面白いコンセプトには感謝する。

🎨 クライアント向け ANSI マークアップの生成方法

1. 基本方針

  • インデックスページとAbout ページは完全に手書き。
  • ratatui
    ライブラリなどオンザフライ生成ツールを使う利便性はあるが、自前で書く方が効率的だと感じた。

2. 実装の詳細

  • ESC[` (\x1b[) を Vim レジスタに保存し、即座に貼り付ける。
  • グラフィック用エスケープコードは Wikipedia を参照して確認。
  • 統一されたスタイルを選び、Gopher バージョンのページを手本にした。

⚙️ ブログ全体を curl で閲覧する仕組み

1. Gemroff と SSG の活用

  • Gemroff: 独自開発のブログ用マークアップ言語(4 年以上前)。
  • 機能: プレーンテキストに ANSI マークアップを出力可能。
  • 活用方法:
    1. ドラフトプレビュー用に導入。
    2. 静的サイト生成器(SSG)に統合して自動生成。

2. テンプレートと構成

  • ブログ記事用・一覧用テンプレートを手書き。
  • SSG の設定ファイルにわずかな追加行を記述するだけで完了。

3. 「簡単」だった理由

  • 独自のカスタムマークアップ言語を使用。
  • 事前に設計段階で以下の判断を行っていたため:
    • HTML 単体のみをサポートしないモジュール化された SSG の採用。
    • サイトを HTTP / Gemini / Gopher の 3 つで同時ホストしている実績がある。

4. 限界と展望

  • 手書きページだけで完結するため、ちょっとしたトリック。
  • 閲覧時間は数分程度のため、真面目な用途には向かないかもしれないが、楽しむには十分。

🔧 サーバーサイドの実装 (Nginx)

実装ポイント

  • Nginx 設定をわずかに変更するだけで実現。
  • 他のサーバーでも同様のアプローチが可能と推測される。

重要なヘッダー設定

add_header X-Original true;
  • 目的: オバーライドヘッダーを追加し、HTTP レスポンスを無改ざんのまま取得しつつ、すべてのコンテンツを静的に配信する。

📢 結論

  • 最初は「なんとなく説明つき」と思っていたが、ウェブサーバーや ANSI コードの一般的な使い方とは異なるアプローチのため、読者の困惑も当然。
  • 今後もこうしたトリックを用いたサイトが増えると嬉しい。

⚠️ 三点リーダー(EM DASH)と LLM について

事実関係

  • Gemroffには 2022 年 11 月以来、三点リーダー専用のマークアップ要素が存在する。
  • LLM の課題:
    • 人間の文章で三点リーダーが使われていない場合、LLM はそれを学習していない。
    • 実際の著者からコピーされたテキストのみで訓練されているため、三点リーダーを使いこなせない。

私の見解

-一文に二十個もの傍注を挿し込む必要はない。

  • それによって三点リーダーを使おうとする思考自体は考えられない! ↩︎

同じ日のほかのニュース

一覧に戻る →

2026/10/15 4:26

がん患者さんが知っておくべきこと:2026年版

## 日本語訳: 口がん(例:扁平上皮癌)と診断された人にとって最も重要な点は、疾病の深刻さが初期段階での対話(AI ツールを含む)で相対化されうる可能性があるため、適切なタイミングで高品質な医療を受けるよう執拗に努力し続けることです。個人的な経験から、術後採取した腫瘍組織で行われた検査よりも、生検組織を用いた検査を優先しないことが危険な遅れを引き起こす可能性があることが示されており、したがって患者は可能な限り総合的な遺伝子検査と上級がんセンターでの第二の意見を迅速に求めるべきです。メジャーな医療機関(例:MD Anderson)は、医師と病理科医間の強い協力関係によりより迅速かつ正確な回答を提供することが多く、US News ランキングを指針としてローカルコミュニティ病院よりも 2〜3 時間のドライブ圏内であっても訪問する価値があります。実用的な戦略には以下が含まれます: - ノートとフォローアップのための整理されたシステムを作成すること(例:予約要約や質問用の専用フォルダー)。 - NCCN ガイダンスの「標準治療」フローチャートを使用して、期待されるプロトコルを理解し、効果的にアドボケーシィを行うこと。 - 標準的な経路が停滞した際に特に Sijbrandij Foundation のようなリソースを求助すること。 外科医を選ぶ際には、年間手術件数や合併症発生率について問いかけ、同様の処置を受けた他の患者と話すことを検討すべきです。必要であれば有給休暇やホテルを使用してトップクラスのカンターにアクセスすることもできます;多くの施設は保険を受け入れています。結局のところ、これらの能動的なステップはキャンセルや保険手続きによる遅延を防ぎ、適切な標準治療を受けることを確実にします。

2026/10/15 5:48

OpenCode 2.0

## Japanese Translation: OpenCode 2.0 は、数百万人の毎日ユーザーからのフィードバックに基づいた大きなアーキテクチャ見直しであり、パフォーマンス向上、バグ修正、およびほぼあらゆるエージェント機能をサポートするように設計された全く新しい API を導入しています。主要な変更点として、すべてのインターフェース(TUI、Web、デスクトップ)を単一の中央バックグラウンドプロセス (`opencodepid`) に統合し、`@opencode/client` を使用するクライアントはこれを自動で発見できるようになりました。システムは現在、ペアリングフロー (`/pair` または `opencode pair`) を通じてスケジューリングされたタスクや外部アプリケーションとのシームレスな接続をサポートしており、ネイティブアプリの開発が進行中です。 目立つ機能の一つには、「Code Mode」(`@opencode/codemode`)があり、Node.js VM の複雑性なしにエージェントが直接スクリプトを書くことを可能にする最小限の JavaScript インタプリターを使用します。これにより、すべての MCP サーバーはデフォルトで code mode で動作します。この更新では、長時間実行されるタスクのためにバックグラウンドサブエージェントと非同期シェルコマンドを導入し、セッション中にプラグインのアップデートを行うためのホットリロードも追加されています。新しい `@opencode/sdk` を使用することで、OpenCode をサーバーまたは Durable Objects 上のライブラリとして利用できるようになります。 このアップグレードには重要なbreaking changesが含まれています:バージョン 1.x のプラグインはもはや機能せず、`tui.json` などの設定ファイルは `json` フォーマットに移動しました。最新の 1.x リリースを使用するユーザーは、2.0 に更新してこれらの変更との互換性を維持するには、最初に `opencode upgrade --major` を実行する必要があります。

2026/10/15 6:11

Jev 1.14.0 をリリースし、ドリーマー向けの試み機能を同時に提供します

## Japanese Translation: jev 1.14.0(`jev-preview` チャンネルで利用可能)は、「危険区域」API ヘッダーをゲート化した実験機能を提供します。これには、composable images(`TypeSafe-Danger-Zone-Images: true` を有効化により提供され、ただし以前の 1.13.0 ビルドに比べて多モーダル入力におけるパフォーマンス低下が報告されています)、エラーなしのバウディングボックスを返す新しい「box」検出タイプが含まれます。ユーザーはさらに、より長いコンテキスト長(`TypeSafe-Danger-Zone-Long-Context: true`)およびデバッグ用の Jaggedness レポートへの参加を選択でき、これらは特定のヘッダーを通じて利用可能です。このアップデートは 1.13.0 に基づいており、以前のパフォーマンス低下を解決すると同時に多言語サポートを拡張しています。評価については、内部インテリジェンス指標は非一貫的な推測として扱い、公式ベンチマークはデータポリシーの懸念から開示ウェイトモデルのみを対象としており、ランキングが特定のアーキテクチャにバイアスがかかっている可能性があるため、個人の実験に頼るべきです。今後、`jev-latest` 別名は 1 週間以内に 1.14.0 を採用します。企業は廃止スケジュールを監視する必要があります:バージョン 1.13.0 に対する 60 日間の警告期間に続いて、新しいリリース用の 30 日間のウィンドウを確保し、古いバージョンが廃棄される前にシステムがこれらの構造的変化に適応できるようにします。ドキュメントは docs.typesafe.ai/go/images、docs.typesafe.ai/go/box、および docs.typesafe.ai/models#context-length で利用可能です。

エレガントなカールのウェブサイトを | そっか~ニュース