**Ki Editor – AST(抽象構文木)を直接操作するエディタ**

- **目的**  
  Ki Editor は、ソースコードのAST(Abstract Syntax Tree)を直接扱うことで、正確な変換と解析を可能にするよう設計されています。

- **主な特徴**  
  - *ASTベース編集*: すべての変更は木構造上で行われるため、文法的に正しい状態が保証されます。  
  - *モジュラー型プラグイン*: 特定のASTノードを対象とした軽量プラグインで機能拡張できます。  
  - *ライブプレビュー*: 変更内容をリアルタイムで表示し、変換効果を可視化します。  
  - *Undo/Redo スタック*: AST の変更履歴を保持し、安全に実験できるようにします。

- **コアコンポーネント**  
  1. **パーサー** – ソースコードをASTへ変換します。  
  2. **トランスフォーマー** – ユーザー定義または組み込みのルールでASTに変更を加えます。  
  3. **ジェネレーター** – 修正済みのASTを再びソースコードへシリアライズします。  
  4. **エディタインターフェース** – ノード選択、プラグイン適用、結果表示のためのUIです。

- **使用フロー**  
  1. ファイル読み込み → パーサーがASTを構築  
  2. トランスフォーメーションプラグインを選択するか、カスタムルールを書き込む  
  3. 変換適用 → トランスフォーマーがASTを更新  
  4. コード生成 → ジェネレーターで出力を書き込み  
  5. ライブプレビューで変更内容を確認

- **拡張性**  
  - *プラグインAPI*: ノード訪問者、コンテキストヘルパー、カスタムエラー処理用のフックを公開します。  
  - *言語サポート*: 新しい言語用パーサーを追加すると、Ki Editor はファイル拡張子に応じて自動で適切なものを使用します。

- **メリット**  
  - *正確性*: AST によって編集が言語の文法を尊重することが保証されます。  
  - *性能*: 木構造上で作業するため、大規模コードベースでも効率的です。  
  - *保守性*: パーシング、変換、生成の分離によりデバッグが容易になります。

2026/03/07 19:29

**Ki Editor – AST(抽象構文木)を直接操作するエディタ** - **目的** Ki Editor は、ソースコードのAST(Abstract Syntax Tree)を直接扱うことで、正確な変換と解析を可能にするよう設計されています。 - **主な特徴** - *ASTベース編集*: すべての変更は木構造上で行われるため、文法的に正しい状態が保証されます。 - *モジュラー型プラグイン*: 特定のASTノードを対象とした軽量プラグインで機能拡張できます。 - *ライブプレビュー*: 変更内容をリアルタイムで表示し、変換効果を可視化します。 - *Undo/Redo スタック*: AST の変更履歴を保持し、安全に実験できるようにします。 - **コアコンポーネント** 1. **パーサー** – ソースコードをASTへ変換します。 2. **トランスフォーマー** – ユーザー定義または組み込みのルールでASTに変更を加えます。 3. **ジェネレーター** – 修正済みのASTを再びソースコードへシリアライズします。 4. **エディタインターフェース** – ノード選択、プラグイン適用、結果表示のためのUIです。 - **使用フロー** 1. ファイル読み込み → パーサーがASTを構築 2. トランスフォーメーションプラグインを選択するか、カスタムルールを書き込む 3. 変換適用 → トランスフォーマーがASTを更新 4. コード生成 → ジェネレーターで出力を書き込み 5. ライブプレビューで変更内容を確認 - **拡張性** - *プラグインAPI*: ノード訪問者、コンテキストヘルパー、カスタムエラー処理用のフックを公開します。 - *言語サポート*: 新しい言語用パーサーを追加すると、Ki Editor はファイル拡張子に応じて自動で適切なものを使用します。 - **メリット** - *正確性*: AST によって編集が言語の文法を尊重することが保証されます。 - *性能*: 木構造上で作業するため、大規模コードベースでも効率的です。 - *保守性*: パーシング、変換、生成の分離によりデバッグが容易になります。

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

要約

Japanese Translation:

改善された要約

この記事では、開発者がテキストを直接編集するのではなく、言語の基本的な構造単位である構文ノードを操作してコードを編集できる新しいマルチカーソル構造エディタを発表しています。このアプローチにより、大規模な変更やリファクタリングが高速かつ直感的になります。主な特徴は次のとおりです。

  • ノードとの一次インタラクション:プログラムの構造を直接操作できる機能
  • 複数カーソル:同時に複数の構文ノードで並行操作が可能になり、コーディング効率が向上
  • 標準化された選択モード:単語・行・全構文要素を一貫して扱える

マウスやキーボードによる細かい操作の必要性を減らすことで、このエディタは開発者の意図とコード上で実際に行われるアクションとのギャップを埋めます。コード操作における前例のない柔軟性と一貫性を提供し、将来のIDEがより多くの構造編集機能を採用するための触媒となる可能性があります

本文

マルチカーソル構造エディタ


イントロダクション

一次級の構文ノード操作。コーディング意図と実際の行動とのギャップを埋め、マウスやキーボードで煩わしい操作を避けつつ、構文構造を直接操作します。

マルチカーソル

コーディング効率を飛躍的に向上させます。複数のカーソルを駆使して同時に構文ノードを操作できるため、大規模な編集やリファクタリングが革新的に簡単になります。

モーダル編集の再定義

選択モード は、語句・行・構文ノードなどを横断した移動を標準化し、比類なき柔軟性と一貫性を提供します。

同じ日のほかのニュース

一覧に戻る →

2026/03/08 5:43

CAS番号(化学物質登録番号)

## Japanese Translation: CasNumは、コンパスと定規を用いた幾何学的構成により任意精度算術を実装するPythonライブラリです。数値は平面上の点としてエンコードされ、加算・乗算・除算・論理ゲートなどの演算は、線/点、円、直線と円の交点などの5つの基本的な幾何学プリミティブから構築されます。最適化には、2倍による特殊ケース乗算や剰余計算で最高位ビット(2のべき乗)を除去する手法が含まれています。 このライブラリはGame BoyエミュレータのALUに組み込むことを想定しています。CasNumを統合するには、PyBoy の `opcodes_gen.py` を編集するだけで、他のエミュレータコードは変更されません。使用例としては、単純なRSA実装(`python3 -m examples.rsa`)や、幾何学ベースの算術のみで動作させるポケットモンスター 赤版(`python3 -m examples.basic`)があります。初回起動に約15分かかりますが、その後はPython の `lru_cache` によりほぼ 0.5–1 FPS で再起動できます。 ビュアースクリプト (`casnum/cas/viewer.py`) は幾何学的構成を可視化し自動ズームします。RSA例では手動ズームが必要になる場合があります。依存関係は、sympy(コア)、可視化用のオプション pyglet、テスト用 pytest‑lazy‑fixtures、RSA 用 pycryptodome、および任意で Euclid Postulate V です。インストールは `git clone --recursive` の後に `pip install -r requirements.txt` を実行します。使用している ROM(`2048.gb`)は zlib ライセンス、CasNum コアコードは MIT ライセンス、PyBoy は LGPL v3.0 でライセンスされており、このプロジェクトはオープンソースや教育プロジェクトに適しています。

2026/03/08 6:56

3T ブラインドスポット:米国の非営利団体

## Japanese Translation: **概要** 米国の非営利セクターは年間 **3兆ドル** を管理しており、これはイギリスのGDPを上回る金額ですが、そのうち実際にプログラム費用に充てられるのは **約36%(1,800億ドル)** に過ぎません。残りはオーバーヘッド、スタッフ給与、資金調達に使われています。登録済み非営利団体は **180万人以上** であり、その多くは収益が5万ドル未満の場合 IRS Form 990 の提出義務から免除されているため、セクター全体の大部分が公衆の監視から隠れています。 寄付者の信頼感は低下しています。**米国の寄付者の32%が5年以上前よりも慈善団体に不信感を抱いています**(BBB Wise Giving Alliance)、世界的にも三分の一が非営利団体への信頼を失っています(Gallup)。財務的負担は顕著で、**調査対象の非営利団体の36%が2024年末に営業赤字を報告し、10年間で最高水準となりました**。また **41%しか全職員に生活賃金を支払えません**。資金提供者は通常オーバーヘッドを約15 % に抑えるよう指示しますが、多くの非営利団体は管理費に **31 % 近くを使っており、過小報告やコーナーカットが頻発する** ― これは「非営利組織の飢餓サイクル」と呼ばれる現象です。 企業会計との大きな違いは顕著です。IRS Form 990 は年間一度提出され、公開までに **12–18か月** を要し、監査済み財務諸表や詳細なプログラム内訳が欠如しています。一方で公的企業は **10-K(年次)、10-Q(四半期)、8-K(重要事象)** を提出し、60日以内に監査済みの声明を求められます。このコンプライアンス中心の枠組みが可視性の問題を生み出し、寄付者の信頼を侵食しています。 国際的には、英国で実施された研究で **ウガンダの井戸の45%が非営利団体によって資金提供されましたが、機能していませんでした**。これにより 2億1,500万〜3億6,000万ドル相当のリソースが無駄になっています—非効率性の重大さを示しています。既存技術(カメラ・センサー・衛星画像)はリアルタイムで成果を追跡できる可能性がありますが、現在の報告規則ではそのような機能は義務付けられていません。 非営利セクターの将来は、コンプライアンス重視から真の透明性と説明責任への転換にかかっています。この変革なしには、非営利団体は営業赤字と寄付者の懐疑心を続けるでしょう。変革が実現すれば、信頼を回復し持続可能な資金調達を確保できる可能性があります。

2026/03/06 16:17

既存のブリックからLEGO NXTファームウェアをダンプする(2025)

## Japanese Translation: > 著者はPybricksプロジェクトで作業している際、オリジナルのファームウェアバージョン 1.01を動作させていた中古Lego NXTを入手し、このファームウェアの保存コピーが存在しないこと(利用可能なのは新しい 1.03のみ)に気づきました。 > > NXTのAT91SAM7S256 MCU上では、SAM‑BA PEEK/POKE を呼び出すことはできますが、それを行うとファームウェアを書き換えてしまい、古いMCUにはモダンなデバッグインターフェースが欠けているためJTAGも実用的ではありません。ロボットのプログラムは制限付きメモリ内で動作するバイトコードVMで走るので、著者は低レベル機能に焦点を当てました。 > > PyUSB を介して USB 「Read IO Map」コマンドを送信し、`0x100d3d`(フラッシュの約 3 KiB)に位置するVMの書き込み可能な関数ポインタ `pRCHandler` を読み取りました。32 KiB の書き込み可能 MemoryPool は NOP とカスタム ARM コードで埋めることができ、`pRCHandler` をこのプール内のアドレスにリダイレクトすることで任意の直接コマンドをそのコードとして実行させることができます。 > > 著者は、受信パケットから4バイトのアドレスを読み取り、そのアドレス上のワードを返す組み込みアセンブリを挿入し、元のハンドラを置き換えました。この乗っ取られたハンドラを利用して、USB経由で「direct」コマンドをバイト単位で送信し、フラッシュ領域全体(`0x00100000–0x00200000`)を読み取り、完全なファームウェアとユーザーデータを `nxtpwn-dump.bin` にダンプしました。 > > この脆弱性は、ストックファームウェアを実行している任意のNXTで機能し、未改変デバイス上でもベアメタルコードが動作できることを示しています。これにより、保存ツールや自己複製型マルウェアなどの可能性が開かれ、NXTファームウェアの整合性チェックにおける脆弱性も浮き彫りになっています。