**Show HN:** 「シンプルな Org‑Mode Web アダプタ」

2026/02/17 1:19

**Show HN:** 「シンプルな Org‑Mode Web アダプタ」

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

要約

Japanese Translation:

「Org Web Adapter」は、ユーザーがブラウザ上で Org-mode ファイルを直接閲覧・編集できる軽量なローカルウェブアプリです。
Python サーバー(

main.py
)1 つで動作し、CSS を備えた HTML テンプレートを提供し、数式表示には CDN から読み込む MathJax を使用します。
各 GET リクエスト時にサーバーは指定されたノートディレクトリをスキャンし、ナビゲーション・メインコンテンツ・バックリンクの 3 パネル UI を構築、POST
/edit
による編集をサポートします。
インターフェースには localStorage に保存されるライト/ダークテーマ切替があり、デスクトップでは 3 カラムグリッド、モバイルでは縦に積み重ねられたレイアウト(ノート一覧は上限付き)に適応します。
認証や暗号化機能は組み込まれていませんので、信頼できるネットワークでのみ実行してください。デフォルト設定は
127.0.0.1:8000
ですが、CLI フラグ(
--host
--port
)または
config.yaml
で上書き可能です。典型的な使用例としては
python3 main.py --dir notes
--host 127.0.0.1 --port 9000
--config ./config.yaml
、および
--no-browser
が挙げられます。
サーバーは
scan_org_files
、リンク/バックリンク解決(
resolve_link_target
find_backlinks
)、HTML レンダリング(
render_org_to_html
render_line_with_links
)などのヘルパー関数を実装し、静的ファイル配信におけるパストラバーサル攻撃から保護します。
制限点としては、毎回すべての
.org
ファイルを再スキャンするため、大規模コレクションでは最適化されていないこと、および完全な Org パーサーではないことが挙げられます。将来的にはスキャン速度の向上、完全パース機能の追加、認証や暗号化の導入を検討しています。
個人知識ベースを Org ファイルで管理しているユーザーにとって、Adapter はブラウザから離れることなくノートを迅速に閲覧・編集できる便利な手段ですが、安全環境内で限定的に使用するべきです。

本文

Org Web アダプタ

Org ファイルを閲覧・編集できる軽量なローカルWebアプリです。

  • Pythonサーバー(
    main.py
    )一つ
  • HTMLテンプレート(
    templates/index.html
    )一つ
  • スタイルシート(
    static/style.css
    )一つ

このアプリはノートディレクトリ内の

.org
ファイルをスキャンし、3パネル構成のUIを描画します。

⚠️ 認証や暗号化機能はありません – 信頼できるネットワーク上でのみご利用ください。 ⚠️


画面イメージ

デスクトップモバイル
DesktopMobile

(

desktop.png
/
mobile.png
は実際の画像に差し替えてください。)


クイックスタート

  1. ノートディレクトリを

    notes/
    にシンボリックリンクします。

  2. 必要なら

    config.yaml
    でバインドアドレスとポートを書き換えます。

  3. 実行:

    python3 main.py
    

動作概要

サーバー (
main.py
)

ステージ説明
HTTPサーバー設定されたバインドアドレス/ポートで起動。
リクエスト処理
GET /
ごとにノートディレクトリを再スキャンし
.org
ファイルを取得。
リンク解決リンク/バックリンクのHTMLフラグメントを作成し、プレースホルダーへ注入:
{{NAV_ITEMS}}
{{MAIN_CONTENT}}
{{BACKLINKS}}

| | クライアント側JS (

templates/index.html
) | 検索・シャッフル・ソート・現在位置ジャンプ・テーマ切替を制御。 |

サーバーサイドコンポーネント

  • ファイル探索と解析

    • scan_org_files(...)
      : 再帰的に
      .org
      ファイルを検索。
    • タイトルは
      #+TITLE:
      、ID は
      :ID:
      から抽出。
  • リンク/バックリンク処理

    • resolve_link_target(...)
      :
      file:
      id:
      のリンクをサポート。
    • find_backlinks(...)
      : 選択ノートへリンクしているノートを取得。
    • build_backlink_counts(...)
      : ソート用にバックリンク総数を計算。
  • レンダリング

    • render_org_to_html(...)
      : 見出し(
      *
      ,
      **
      , …)と段落をシンプルなHTMLへ変換。
    • render_line_with_links(...)
      : テキスト中のOrgリンクをアプリ内リンクに変換。
    • truncate_label(...)
      : サイドバーラベルを32文字で切り捨て、末尾に省略記号。
  • 編集

    • POST /edit
      :選択した
      .org
      ファイルを書き込み、ステータスフラグ付きでリダイレクト。
  • 静的ファイル

    • serve_static(...)
      :
      static/
      配下のファイルをパス・トラバーサル保護付きで配信。

フロントエンドコンポーネント

ファイル用途
templates/index.html
基本レイアウト、サイドバコントロール、フィルタ/ソート/シャッフル用小規模JSコントローラ、MathJax初期化。
static/style.css
デスクトップの3列グリッドとモバイル時のスタックレイアウト;ノートリストとバックリンクは独立したスクロール領域。モバイルでは5件程度が見えるようにカット。

設定

デフォルト設定は

config.yaml
から読み込まれます。

bind_addr: 127.0.0.1   # バインドするホスト/IP
bind_port: 8000        # TCPポート(1〜65535)

config.yaml
が存在しない場合は上記のデフォルトが使用されます。

CLI フラグ:

フラグ効果
--host <addr>
bind_addr
をオーバーライド。
--port <num>
bind_port
をオーバーライド。
--config /path/to/config.yaml
別の設定ファイルを使用。

便利な実行例

python3 main.py --dir notes
python3 main.py --host 127.0.0.1 --port 9000
python3 main.py --config ./config.yaml
python3 main.py --no-browser

主な機能

ノート閲覧

  • 再帰的に
    .org
    ファイルを検出。
  • サイドバーにノートリストを表示し、アクティブノートをハイライト。
  • タイトル/パスで検索フィルタ。

サイドバ並べ替えコントロール

  • シャッフル。
  • バックリンク数(降順)でソート。
  • 作成日時(昇順)でソート。
    (タイムスタンプが無いノートは古いものとして扱う)

ナビゲーション

  • 現在のノートへジャンプするボタン。

バックリンク

  • 右サイドバーに現在のノートを参照しているノート一覧。
  • file:
    id:
    の両方のリンク解決をサポート。

編集

  • 選択ノートの「編集/プレビュー」切替。
  • ブラウザからファイルへ変更を書き込み。
  • 保存成功/エラーに対するインラインステータスメッセージ。

数式レンダリング

  • MathJax を使い
    $…$
    デリミタでインライン数式を表示。

UI 動作

  • ライト/ダークテーマ切替(
    localStorage
    に永続化)。
  • デスクトップ:サイドバーは独立したスクロール領域。
  • モバイル:ノートリストは自前のスクロール領域でカット。
  • サイドバテキストは省略記号付きに切り捨て、ツールチップで全文表示。

プロジェクト構成

.
├── main.py                # サーバー・解析・レンダリング・ルーティング
├── templates/index.html   # ページテンプレート + UI動作JS
├── static/style.css       # スタイリングとレスポンシブレイアウト
├── config.yaml            # バインド設定
├── notes/                 # ノートディレクトリ(シンボリックリンク可)
└── old_notes/             # 別のローカルノートスナップショット

制限事項

  • 完全なOrgパーサーではありません。レンダリングは意図的に簡易化されています。
  • ノートはリクエストごとに再スキャンされます。小規模セットには問題ありませんが、大量集合では最適化が必要です。
  • MathJax は CDN から読み込むため、ネットワーク接続が必須です。

同じ日のほかのニュース

一覧に戻る →

2026/02/17 3:41

14歳のマイルズ・ウーは、重量の万倍を支えられる折り紙パターンを折りました。

## Japanese Translation: --- ### Summary 14歳のミレス・ウーは、ニューヨーク市にあるハンター・カレッジ高校(Hunter College High School)の9年生であり、彼がミウラ折り紙パターンについて行った研究で2025年 Thermo Fisher Scientific Junior Innovators Challenge の賞金25,000ドルのトップ賞を受賞しました。ウーは、コピー用紙、薄い厚手紙(light cardstock)、重い厚手紙(heavy cardstock)の3種類の紙を使用し、家族のリビングルームに設置した臨時実験室で **54 の異なるバリエーション**(108 回の試行)をテストしました。各折り紙は 64 平方インチで、ガードレールが 5 インチ間隔で配置されていました。初期重量推定は約50ポンドでしたが、最も強いパターンは **200 ポンド**まで耐え、正確な測定には 50 ポンドのエクササイズウエイトを必要としました。この結果、デザインは自身の重さの **10,000 倍以上** を支えることができること(ニューヨーク市のタクシーで4,000頭以上のゾウを運ぶに相当)を示しています。 この研究は、ハリケーンや山火事などの自然災害時に堅固で費用対効果が高く、簡単に展開できる **配備可能な緊急シェルター** を開発することを目的としています。ウーは、1枚または複数枚のミウラ折り紙シート(長方形/テント状構造)でアーチ型シェルターをプロトタイプ化し、横方向圧縮や多方向力に対する耐性を検証する計画です。 この業績はサイエンス協会の社長マヤ・アジャメラ(Maya Ajmera)によって注目されました。彼女はウーが生涯の折り紙趣味を厳密な構造工学へと変革したこと、創造性、リーダーシップ、チームワークを称賛しました。また、プリンストン大学のエンジニアグラウィオ・H・パウリーノ(Glaucio H. Paulino)は、設計をスケールアップするには非線形強度スケーリング、ジョイント設計、不完全性、ボッキング、多方向荷重抵抗の課題に対処する必要があると指摘しました。 ミウラ折り紙は日本の天体物理学者・宮浦耶(Koryo Miura)によって発明され、宇宙機関(例:日本のスペースフライヤー・ユニットや宇宙船のソーラーパネル)で使用されています。最近では、望遠鏡や衛星に適用できるブルームパターンも開発されています。ウーは6年前から紙折りを探求し、1960年代以降に拡張された折り紙の工学・医療・数学・建築への応用を知ったことで趣味から STEM 研究へとシフトしました。 Thermo Fisher Scientific Junior Innovators Challenge は1999年からサイエンス協会が主催する中学生向けの主要な全国STEM競技です。

2026/02/17 6:15

研究:自己生成型エージェントスキルは役に立たない (Note: This translation preserves the original meaning and maintains a natural, polite tone in Japanese.)

## Japanese Translation: 現在の要約は主要な発見とほぼすべての定量的詳細を捉えていますが、キュレーションされたスキルで影響を受けたタスク数を正確に追加し、著者数を修正することでさらに簡潔にできます。以下は若干改訂したバージョンです: > **要約:** > SkillsBench は 11 ドメインにわたる 86 タスクで大規模言語モデル(LLM)を評価し、「スキル」(事前定義された手順のステップ)がパフォーマンスに与える影響を測定するベンチマークです。キュレーションされたスキルが追加されると、平均合格率は「スキルなし」時より 16.2 pp 上昇します。効果は大きく異なり、ソフトウェアエンジニアリングでは +4.5 pp、ヘルスケアでは +51.9 pp に達します。実際に 84 タスクのうち 16 件がキュレーションされたスキルでマイナスの差分を示し、自身生成したスキルは全体として有益ではなく、モデルが消費する手順知識を信頼して作成できないことを示しています。わずか 2〜3 のスキルモジュールだけで完全なドキュメントよりも優れた性能を発揮し、これらのスキルを備えた小型モデルはそれらを持たない大型モデルと同等に競合できます。このベンチマークは 7,308 の対話軌跡で 7 つのエージェント–モデル構成をテストします。著者は複数機関からなる 38 人の研究者チームで、2026 年 2 月 13 日に公開され(ファイルサイズ 1,366 KB)、今後は最も効果的なスキルを選択してより効率的かつドメイン特化型 AI エージェントを構築する研究が進められることが示唆されています。

2026/02/17 5:34

Suicide Linux(2009)

## Japanese Translation: **改善された要約** この記事は、入力ミスしたコマンドを自動的に `rm -rf /` に書き換えてシステムを削除する「Suicide Linux」と呼ばれる皮肉な Linux ディストリビューションについて説明しています。Suicide Linux は、OS を使い続けられる時間を測るゲームや実験として提示されており、すべてのデータが失われるまでどれだけ長く使用できるかを試すものです。記事はその開発経緯を追っています:2011‑12‑26 の Debian パッケージとデモ動画、2015 年に自動修正機能がオプションであり標準の Linux 動作ではないことを明確化した説明、2017 年の Docker イメージ(`tiagoad/suicide-linux`)にソースコードが含まれていること、そして 2020 年に著者が自らそのパッケージを作成していないと認めたことです。記事は将来の改良点として、冗長な警告メッセージやランダムな単一ファイル削除などを追加し、実験を教育用途に安全にする提案も示しています。総じて、Suicide Linux は主に好奇心と学習ツールであり、システムの堅牢性をテストしたい開発者や「タイプミスアラート」スクリプトを作成したい人には有用ですが、一般的な Linux ディストリビューションに影響を与える可能性は低いと結論付けられています。

**Show HN:** 「シンプルな Org‑Mode Web アダプタ」 | そっか~ニュース