L123:Lotus 1-2-3 のようなターミナル上のスプレッドシートソフトでありながら、現代の Excel と互換性を持つ製品です。

2026/04/28 4:53

L123:Lotus 1-2-3 のようなターミナル上のスプレッドシートソフトでありながら、現代の Excel と互換性を持つ製品です。

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

要約

Japanese Translation:

本テキストの主な焦点は、Rust で積極的に開発が進められているターミナル系スプレッドシート「l123」であり、それはレガシーな Lotus 1-2-3 Release 3.4a の体験を忠実に再現したものです。DOS エミュレーターや単なる視覚的なオマージュとは異なり、「l123」は IronCalc エンジンによって動作するネイティブアプリケーションであり、真の式処理を可能としつつ、最新の .xlsx ファイルとの往復互換性(グラフには SVG/PNG のエクスポート機能も)を提供します。このソフトウェアは 1993 年のコマンドライン哲学に厳格に従っており、スラッシュメニュー、3 行のコントロールパネル、WYSIWYG アイコンパネル、そして現代のグラフィカル clutter を排したレガシー構文(例:

@SUM
#AND#
)を使用したキーボードファーストなワークフローを特徴としています。現在、マイルストーン M10 にあり、開発の焦点はテーマ、ヘルプドキュメント (
docs/SPEC.md
等に所在)、および将来の読み取り専用 .WK3 サポートにあります。インストールは Rust stable(
git clone
cargo build
)を通じて容易です。MIT ライセンスの下で提供され、このプロジェクトは今日の歴史的なワークフローを維持する必要がある経験豊富なレガシーユーザーのためにユニークに役立っています。そのモジュール化されたアーキテクチャにより、計算エンジンを交換することが可能であり、長期的な適応性を確保しています。

本文

A Lotas 1-2-3 様式のターミナル電卓表計算ソフトであり、現代の Excel と互換性を持っています。l123 は、斜線メニュー、3 ラインコントロールパネル、キーボード主導のワークフロー、WYSIWYG アイコンパネルなど、クラシックな DOS 時代のスプレッドシート体験を再現します。その上には現代的な式エンジンとネイティブの .xlsx 二重書き込み(round-trip)機能を実装しています。相互作用モデルは、DOS 版 Lotus 1-2-3 Release 3.4a(1993 年)を対象としています。計算および I/O レイヤーは、Rust、IronCalc、UTF-8 を採用しています。

✦ ステータス 現在、開発が続いています。ドキュメント/PLAN.md に記載されたマイルストーン計画を追跡しています:

マイルストーンスコープ状態
M0グリッド、ポインタナビゲーション、ワークスペース起動✅ 完了
M1コントロールパネル、モード、最初の文字入力✅ 完了
M2エンジンワイヤーアップ、式、再計算✅ 完了
M3メニューシステムおよび MVP 斜線コマンド✅ 完了
M4.xlsx と CSV の二重書き込み✅ 完了
M53D シート、GROUP、命名範囲、元に戻す(undo)✅ 完了
M6プリント(ASCII、PDF、ラインプリンター)および範囲検索✅ 完了
M7グラフ:7 つのチャートタイプ、F10 ビュー、SVG/PNG 保存✅ 完了
M8R3.4 の WYSIWYG アイコンパネル(マウス対応)✅ 完了
M9マクロ:/X、{BRANCH}、{IF}、Learn計画済み
M10ポリッシュ:起動スプラッシュ、文脈ヘルプ、テーマ🚧 進行中

API キーバインディングおよびファイルパスは、v1.0 公開前に変更される可能性があります。

✦ インストール Rust stable(rust-toolchain.toml で固定)が必要です。

git clone git@github.com:duane1024/l123.git
cd l123
cargo build --release
./target/release/l123            # または:cargo run -p l123

既存のワークブックを開く場合は、以下を実行してください。

設定を確認または初期化するには、以下を実行します。

l123 config          # 有効な設定とそのソースを表示
l123 config --init   # サンプル構成を ~/.l123/L123.CNF に書き込む

詳細なキーおよび環境変数のリストについては、docs/CONFIG.md を参照してください。

✦ キーボード(短縮版) キーボードが製品の核心です。

キー動作
/斜線メニューを開く
最初の文字メニュー項目へ降下(Enter 不要)
矢印キー / Tabポインタ移動;入画中の場合は確定して移動
Enterセル入力を確定
Esc1 レベル上位に戻る(メニュー、プロンプト、POINT アンカーなど)
Ctrl-Breakどこからでも READY に中断(abort)
. (POINT モード内)アンカーされる範囲のどの角か切り替え
F1文脈ヘルプ
F2現在のセルを編集
F3命名範囲一覧を表示
F4引用の絶対性 ($) を切り替え
F5セルへ移動(GOTO)
F9再計算
F10フルスクリーングラフビュー
Alt-F4元に戻す(undo)
Ctrl-PgUp / Ctrl-PgDn前または次のシート

マウスは、WYSIWYG アイコンパネル(17 つのアイコン、R3.4a レイアウト)向けにサポートされています。式は 1-2-3 構文を使用します:@SUM(A1..A5) という形式で、=SUM(A1:A5) のようにとは異なります。@ 記号と .. セパレータは必須です。論理演算子は #AND#、#OR#、#NOT# です。

READY モードで最初に打たれた文字がラベルか値かを決定します:桁数、+、-、.、@、#、$ は値の開始を意味し、それ以外の文字はラベルの開始を意味します(自動的に ' プレフィックスが挿入されます)。“は右揃え、「^」は中央揃え、「-」はダッシュでセルを埋めます。

✦ 現在動作している機能

3 ラインコントロールパネル(ライブモードインジケーター付き) 13 のモード(READY、LABEL、VALUE、EDIT、POINT、MENU、FILES、NAMES、HELP、ERROR、WAIT、FIND、STAT) 完全な斜線メニューツリー:docs/MENU.md に記載の全てのパスが到達可能;MVP セグメントは実行され、非-MVP セグメントは 3 ライン /Worksheet、/Range、/Copy、/Move、/File、/Quit に「まだ実装されていません」と表示されます IronCalc を通じた .xlsx の二重書き込み;.csv のインポートとエクスポート 3D ワークブック:A..IV シート、A:B3..C:D5 範囲、GROUP モード 命名範囲、@ 関数の MVP セット(docs/SPEC.md §15 を参照) コマンドジャーナルによる元に戻す(/WGD Other Undo で切り替え可能) 複数ファイルセッション(/File Open Before|After、Ctrl-End ナビゲーション) /Print File を ASCII、PDF、ラインプリンター出力へ;ヘッダー、フッター、マージン、ページ長、フォーマット済み / 非フォーマット済み / 表示通り / セル式モード;第 1 列に「|」を置くと印刷から行を隠す /Range Search Formulas|Labels|Both Find and Replace /Graph ツリー:Line、Bar、XY、Stack、Pie、HLCO、Mixed;タイトル、凡例、スケール、グリッド、カラー/B&W、データラベル F10 / /Graph View のフルスクリーンレンダリング(Unicode バー + ライン出力);Kitty / iTerm2 / Sixel イメージサポート(ratatui-image を介して) /Graph Save SVG へ(すべてのチャートタイプ向け plotters PNG 出力も可能) R3.4a WYSIWYG アイコンパネル:全 17 つのアイコン、マウス接続 起動スプラッシュ画面 カラム幅オプション(/WGC、範囲レベルでの設定/リセット)

✦ 今後予定

文脈ヘルプ(F1)、CRT テーマ、LMBCS コンポジションキー(M10、有効化済み) /Data ツリー:Fill、Sort、Query、Table、Distribution、Regression、Parse マクロ:/X、{BRANCH}、{IF}、{MENUBRANCH}、/Worksheet Learn .wk3 の読み取り専用インポート(値のみ)

✦ アーキテクチャ Rust ワークスペース、厳密なレイヤー構造:

l123-core ← タイプのみ、外部依存なし ↑ l123-parse, l123-menu ↑ l123-engine (IronCalc をトレイトでラップ) ↑ l123-cmd, l123-io, l123-graph, l123-print ↑ l123-ui (ratatui + crossterm;エンジン非依存) ↑ l123 (バイナリ)

IronCalc は Engine トレイトの背後に置かれ、交換可能です。1-2-3 の式構文(@SUM、..、#AND#)は、l123-parse で IronCalc に届く前に Excel 構文に変換されます。UI は IronCalc のタイプを直接見ることはありません。

✦ 信憑性契約(Authenticity Contract) l123 は以下の 2 つの約束を果たします(docs/SPEC.md §1 を参照):

有経験のある Lotus 1-2-3 R3.4a ユーザーは、何も読まずに l123 を冷態から操作できる。 ファイルは .xlsx と綺麗に二重書き込みされる。

SPEC §20 は挙動を列挙しています:3 ラインコントロールパネル、メニューアクセラレーター、POINT アンカーの意味、最初の文字ルール、@ 記号、形式タグ、矢印での確定、WYSIWYG アイコンパネルなど。契約の各項目は、tests/acceptance/ 以下のテストで少なくとも 1 つの受入トランスクリプトを持っています。

✦ 開発 厳格なレッド / グリーン / リファクタリングアプローチ。規約は CLAUDE.md に記載されています。

cargo test --workspace                                  # すべてのテスト
cargo test -p l123-ui --test acceptance                 # キーストロークトランスクリプト
cargo clippy --workspace --all-targets -- -D warnings   # リントチェック
cargo fmt --all                                         # フォーマット

受入トランスクリプトは .tsv ファイルで、入力キーと出力画面状態を記述します。指令構文については tests/acceptance/README.md を参照してください。UI で可視化されるすべての変化にはトランスクリプトが対応します。

公認ドキュメント(真理の源泉として扱う):

docs/SPEC.md — l123 は何か docs/PLAN.md — マイルストーンとリスクレジスター docs/MENU.md — 完全なメニューツリー

コードと文書が不一致の場合、まず文書を修正してください。

✦ 非目標(Non-goals)

DOS エミュレーターではありません。INT21h、コードページなし。文字列は UTF-8 です。 視覚的なオマージュではありません。機能的真実性、CRT のノスタルジーではない(緑色/アンバーテーマはストレッチゴールであり、目的ではありません)。 既存の .WK3 ファイル用マクロプレイヤーではありません。.WK3 の読み取り専用インポートはストレッチゴールで、書き込みは計画されていません。 1-2-3 計算コアのリ実装でもありません。その役割は IronCalc が担っています。 Lotus 1-2-3 for Windows や SmartSuite を目指していません。DOS 版 Release 3.4a のみ対象です。

✦ フィロソフィー スプレッドシートは悪くなったのではなく、単に重くなっただけです。l123 は、早期のスプレッドシートソフトウェア特有の速度、明瞭さ、キーボード主導の精度を復活させつつ、現代的なワークフローとの互換性を損ないません。

✦ 为什么?(Why?) / キーが問題だったわけではないからです。

✦ ライセンス MIT ライセンスによる。LICENSE を参照してください。

同じ日のほかのニュース

一覧に戻る →

2026/04/28 6:26

NPM ウェブサイトがダウンしています。 (注:ご提示いただいたテキストは、元の改行・余白・記号なしの状態を維持したまま整理済みです。特定の状況(例:障害報告時の注意喚起など)を想定している場合は、以下のような形式もご参照ください。) **NPM ウェブサイトがアクセス不能になっています**

## Japanese Translation: 2026 年 4 月 27 日にウェブサイトの障害が解消されていないものの、npm エコシステムは機能上正常に動作し続けています。`www.npmjs.com` の利用ができなかった一方で、パッケージのインストール、公開、検索、セキュリティ監査、およびレプリケーションフィードといった重要なサービスは現在「Operational(運用中)」の状態です。過去 90 日間の稼働メトリクスは堅牢なパフォーマンスを示しており、ウェブサイト以外のサービスでは稼働率が 100%、ウェブサイトでは 99.92% であり、これは 4 月 13 日から 26 日の間にはインシデントが起きていなかった安定期と対照的です。本件は、これが軽微な不具合なのかより深く対応が必要なのかを調査しており、npm に依存している企業が主要なワークフローが影響を受けていないため自信を持って進めることができます。

2026/04/28 5:44

トロントでの逮捕:3人の男性が、SMS ブラスト関連の事件で容疑から 44 の起訴罪状に直面している

## Japanese Translation: 「Project Lighthouse」のもと、トロント警察は、RCMP およびその他の機関と連携し、SMS ブラスターを関与した画期的なサイバー犯罪の捜査を進めています。これは、カナダでこの特定の攻撃ベクトルの初例となります。捜査は 2025 年 11 月に、セキュリティパートナーがトロント市中心部で稼働していたデバイスの存在を当局に通報したことから開始されました。このモバイル脅威は数か月の間にグレート・トロント・エリアの複数の車両から実行され、1300 万件を超える接続を妨害し、端末を正当なネットワークから切断して、銀行クレデンシャルを奪おうと設計された偽サイトへと誘導しました。準副頭長の Rob Johnson 氏は、この攻撃が 9-1-1 などの緊急サービスに影響を与える恐れがあり、なりすましや盗難の重大なリスクをもたらすと警告しました。3 月 31 日、警察はマークハムとハミルトンで捜索令状を実行し、2 人の容疑者から複数のブラスターを没収した一方、3 目の容疑者は 4 月 21 日に自首しました。この 3 人は現在、44 の告訴に直面しています。当局は、カナダではこの技術が新しいものの、犯罪者の個人データを収集しようとする意図自体は古いものであると強調しています。

2026/04/28 2:45

Easyduino:KiCAD 用のオープンソース PCBA 開発ボード

## Japanese Translation: The Easyduino プロジェクトは、マイコン開発基板における歴史的な断片化に対処するため、Arduino(Uno/Nano)、ESP32/ESP32 S3、Raspberry Pi Pico、STM32 Bluepill といった一般的な MCU 向けにオープンソースかつ KiCad ベースの設計を提供する。Eagle や Altium といった地域固有のツールに依存していた以前のバージョンとは異なり、Easyduino は標準化された 4 レイヤ銅スタックアップ(JLC04161H-7628)を通じてプラットフォーム間でソフトウェア、言語、慣習を統一し、配線の簡素化を実現する。部品は市場での入手可能性とコストに適応され、例えばオリジナルの UNO の USB シリアル変換チップの代わりに ATmega16U2 を使用したり、高価な 01005 パッシブ部品を避けるなどの対応が取られている。各プロジェクトフォルダには、メインの KiCad ファイル、README、必要に応じて非標準フットプリントライブラリ、および BOM(JLCPB が読み取れる Centroid ファイルを含む)や主要部品のデータシート、Gerbers、PDF スケーマ/PCB、写真が含まれる ProductionFiles ディレクトリが用意されている。開発は KiCad v8.0.0 で行われ、更新とテストは KiCad v10 で実施された。Jobsets は生産データの生成を簡素化する。ユーザーは最新版の KiCad をインストールし、ZIP ファイルをダウンロードするか Git を経由してクローンし、変更を行う際は「git add」で全体を追加する必要があることに注意せよ(KiCad v10 の Git ツールには制限があるため)。すべてのボードは CERN Open Hardware Licence Version 2 – Permissive の下で公開されており、ライセンスのコピーを含めれば必須のソースコード開示なしに商用利用が可能である。今後の作業としては、v1.1 RP2040 および ESP32S3 ボードの注文とテストならびに nRF52840 および RP2350A ドングルを開発する予定がある。クレジットは、KiCad に関するヒントを提供し、地上から v1.1 RP2040 ボードを新規設計した winsrrow に贈られる。ハードウェアの作成を全球でよりアクセス可能で一貫性のあるものにするという使命を継続する。