MacSurf 1.68 – OS 9 向け NetSurf がリリースされました

2026/07/08 1:24

MacSurf 1.68 – OS 9 向け NetSurf がリリースされました

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

要約

日本語訳:

元要約は明確で包括的かつ読みやすいものであるため、以下の改善版として再掲する。

まとめ

MacSurf 1.68 は、Classic Mac OS ユーザーに対して画期的なマイルストーンを象徴し、陳腐化したエンジンを macQJS(現代の ES2023 標準に対応したネイティブ JavaScript インタープリタ)で置き換えることで実現されました。この更新により、暗号化されたウェブサイトにアクセスするためにプロキシが必要不再是なく、レガシーの PowerPC ハードウェア上で直ちに真の TLS 1.3 暗号化および持続的なログインが可能となりました。ブラウザは désormais 実際に使用可能な体験を提供しており、点滅するテキストカーソル、適切なテキスト選択、Scrap Manager を通じた信頼性の高いカット/コピー/ペースト機能、修正されたウィンドウ管理、そして大幅に短縮された起動時間(約 17 秒から 1 秒未満)が備わっています。仮想環境における若干の装飾的なバグや、重負荷の HTTPS サイトに対する一部のリダイレクト問題が残存しており、これらは将来的な修正対象です。GitHub など一部のサイトに対して影響を及ぼす特定の不具合に制限されるものの、このリリースはデュアルブートや外部コンパニオンを使用せずに開発者が現代の JavaScript 機能と改善された CSS レンダリングを活用することを可能にします。本質的に、MacSurf 1.68 はブラウザを一過性の歴史的背景のものから、古いシリコンと現代的なウェブ機能を橋渡しする機能性あるツールへと変革させ、ユーザーを効率よく現代のフォーラム(例:XenForo サイトである 68kmla など)やサービスと対話することを可能にします。

本文

MacSurf 1.68 — 「macQJS」

MacSurf 1.68 は、Classic Mac OS(PowerPC、Mac OS 9.1–9.2.2)向けのネイティブウェブブラウザです。

概要

  • 環境要件: PowerPC マシンのみ対応(検証環境:Power Macintosh G3、iMac G4)。
  • 主要機能:
    • 真正な HTTPS 機能とモダンな JavaScript エンジンを採用。
    • プロキシやコンパニオンマシンの設定不要。
    • OS 9.1 以降(特に 9.2.2)での動作を目標に開発。
  • バージョン命名の由来: 「1.68」は、開発サイクルを牽引してきたコミュニティおよびウェブサイト 68kmla.org に献じます。

💰 MacSurf 継続的運営のご支援

MacSurf はフルタイムの開発が必要なプロジェクトです。本物の Mac OS 9 ハードウェアにもたらすためには、以下のような膨大な作業が必要です:

  • ネイティブな TLS 1.3 の実装。
  • 真正な JavaScript エンジン のポート。
  • PowerPC 向けにクロスコンパイルされた NetSurf のレンダリングパイプライン全体の構築。

開発を継続するため、プロジェクトが自ら維持可能な収益を生むことが不可欠です。もし古い Mac を再びオンライン環境に戻したい場合は、以下の寄付プラットフォームをご検討ください。

後援者様には開発ログへのアクセス権と、次の機能開発に関する発言権もいただけます。


🎉 68kmla.org へのご礼

今回のリリースは「1.68」というバージョン番号で命名し、68k/PowerPC Mac コミュニティのハブである 68kmla.org を記念いたしました。

  • 開発の場: このサイトは毎日テスト対象であり、最も厳し目のレンダリング・ログイン・JavaScript 問題がここで発見され解決されました。
  • コミュニティへの感謝: バグには我慢強く、詳細なフィードバックと励ましを惜しみなくお出しくださいました。その受け入れ姿勢が MacSurf を前に進ませる大きな理由です。
  • 達成感: 「本物の Mac OS 9 マシン」から掲示板(68kmla)へのレスを表示・ログイン・投稿を実現させたことは、開発者にとって最大の目標の一つでした。

🚀 メインニュース:真正な JavaScript エンジン「macQJS」の実行

1.5 以降の最大の変更点は内部実装です。MacSurf の JavaScript エンジンが刷新されました。

  • 廃止: 旧エンジンの Duktape(ES5)。
  • 新採用: Classic Mac OS 向けにポートされた QuickJS、つまり 「macQJS」

これにより、PowerPC / Mac OS 9 環境において、現代的な ES2023 JavaScript をネイティブに実行できるようになりました。

なぜこれが重要なのか?

  • モダンな JS の直接実行:
    • 旧エンジンは ES5 限定であり、MacSurf は独自の手動トランスパイラ(ES6→ES5)を使って事前処理していました。
    • トランスパイラは廃止され、
      async/await
      によるミニファイドバンドルの破損も解消されました。
    • let
      /
      const
      、矢印関数、クラス、テンプレートリテラル、Promise、ジェネレーターなどを直接実行可能にしました。
  • サイトのスクリプトの正執行:
    • JS を簡略化する必要がなくなり、実際のサイトバンドルをデバイス上でそのまま実行できます。
  • 安全性の確保:
    • ヒープメモリ上限と実行時間制限(約 20 秒)により、悪意のあるスクリプトによるフリーズや OOM(メモリ不足)を防ぎます。

開発背景

  • macQJS は独立したプロジェクトとして他社の Classic Mac OS ソフトウェアでも利用可能です。
  • エンジン移行には数ヶ月を要し(修正番号 #482–554)、堅牢化のためのハードウェア検証とクラッシュ安定化工程(修正番号 #565–577)も含まれていました。

🐛 致命的バグの解決(Showstoppers)

以前は重大な不具合でしたが、現在は確立された動作状態です:

  • テキストカーソル:入力フィールドやテキストエリアに点滅するカーソン(caret)が表示され、タイピングの着地点が視覚的に確認できます。
  • テキスト選択: クリック&ドラッグでの選択動作が正しく機能し、カット/コピー/ペーストが Mac Scrap Manager と連携します。
  • ログインセッション維持: ログイン後のリダイレクトで「ログアウト状態」の古いキャッシュ版が表示される問題が解消されました。
  • アローキー動作改善: カーソル移動やスクロールに対応。「ビューポート全体を横にズラす」という不具合が修正されました。
  • Tab キー対応: フォームフィールド間の移動が可能になり、キーボードだけでフォーム入力完了できます。
  • 起動時間の短縮: 初回ページ表示までの約 17 秒のフリーズ(同期 JS ベンチマーク実行)を削除。現在 1 秒未満 で起動します。
  • オーバーレイクリック修正: クッキーバナーなどの「Accept」ボタンが予期される位置で反応し、背景へ通ってしまう現象が解消されました。
  • ウィンドウライフサイクル: 2 つ目のウィンドウを開いても、1 つ目が閉じられなくなりました。
  • 機能拡張: ウィンドウの最大化(ズームボックス)機能と「About MacSurf」画面へのアクセスが可能になりました。

📊 メイン機能・改善エリア別詳細

🟢 JavaScript エンジン(macQJS)

  • WITH_QUICKJS
    フラグで制御可能にしました。
  • 独自トランスパイラと旧式ハンドクラフト JS API を廃止(一部バンドルを破損させていたため)。
  • ナビゲーションごとに新しい JS ドメインを生成し、変数衝突を防ぎました。
  • メモリ制限と実行時間制限により暴走スクリプトから守られています。

🟢 サイト互換性(68kmla / XenForo)

  • レプライ/投稿エディタ: 動作を回復しました。(
    parentNode-null
    →jQuery Sizzle→XF.Element というカスケードエラーによるクラッシュが修正)。
  • ES5 シム適用: 必死の XenForo 機能バンドル(ライトボックス、メディアギャラリーなど)は、解析時のエラーをスルーするよう改善され、読み込み速度向上に寄与しました。

🟢 テキスト入力とキーボード操作

  • <input>
    /
    <textarea>
    内に点滅するカーソル表示(
    native place_caret
    )。
  • マウスクリック&ドラッグによるテキスト選択が可能。
  • メニュー「Edit」または Cmd キーでカット/コピー/ペースト(Scrap Manager クリップボード利用)。
  • Tab / Shift-Tab: 文書内順序にフィールドを切り替え可能(
    <form>
    不要)。
  • アローキー、Home/End、Page Up/Down が正しく動作し、「ビューポートズレる」バグ修正済み。

🟢 ブックマークと使いやすさ

  • ブックマークメニュー: クリック可能な項目として保存・維持されます。
  • ダウンロードマネージャー:
    • HTTPS ダウンロードが正常に機能。
    • 「Downloads」フォルダへ自動保存(HFS でファイル名クリーン化)。
    • モーダルなしのライブバイト進捗表示と各行ごとのキャンセル機能付き。
  • ウィンドウ最大化: 画面全体を埋め、元に戻せるようになりました。
  • データ整理: アプリケーションフォルダ隣に「MacSurfData」フォルダが新設され、Cache、Downloads、ブックマーク、ログを一元的に管理します。(起動デスクトップへの散らばりを防ぎます)。
  • 「About MacSurf」: メニュー項目が正常に動作します。

🟢 ネットワーキングとログイン

  • セッション維持: ログイン後のリダイレクトでキャッシュ問題を回避。
  • クッキー保存: 「MacSurfData」フォルダ内に保持し、再起動でも状態が維持されます。
  • User-Agent 準拠: ホストごとのオーバライドと RFC-6265 準拠のクッキージャーを実装。

🟢 レンダリングと CSS

  • スプリットスクロールバー修正:(INT_MAX の幅による横スクロール空白キャンバス問題) が解決され、XenForo フォーラムがフル幅で表示可能に。
  • Web フォント対応:
    @font-face
    アイコンフォント(Material Design Icons / FontAwesome)の描画が可能になりました。
  • テキスト結合改善: 単語間のスペース崩れ("softwareand" など)や、フォント計測と描画の不整合が修正されました。
  • SVG 回帰問題修正: インライン SVG がアルファコンポジティングで消滅する現象を解決。
  • ステイキー修正: クッキーバーなどのオーバーレイヒットテストおよび白色ページベースの背景不具合が解消。
  • CSS Grid対応: トラック上限を 8 コラムから 16 コラムへ引き上げ、12 コラムグリッドの収縮を防止。

🟢 パフォーマンス

  • 起動速度: イベントループ開始前の診断 JS を削除し、起動を劇的に高速化。
  • ディスクキャッシュ: イメージと Web フォントを 64 MB の予算で LRU 方式でディスクへキャッシュ(再訪問時にもう一度ダウンロードする必要なし)。
  • プレップド GWorld キャッシュ: ビームされた準備済みバッファをキャッシュし、スクロールのしなり(jank)を除去。
  • ボックス構築高速化: HTML→ボックス変換を大規模処理単位へ調整し、スケジューラ往復ラウンドを約 10 倍高速化

🟢 安定性

  • 長時間使用およびクラッシュ安定性の大幅な向上(ボックスウォーク寿命保護、コンテンツレジストリライブネスチェックなど)。

⚠️ 既知の問題点

現時点で以下の制限や不具合があります:

  1. GitHub と一部の重厚な HTTPS サイト:
    • TLS 接続自体は成功しますが、リダイレクト後の URL パースクイックが原因で失敗しています。
    • 単一の非 SSL(http)サイトの macsurf.org から最新リリースをダウンロードすることをお勧めします。
  2. Tab キーの到達範囲:
    • 現在、リンクやボタンまで到達せず、テキストフィールドのみ対象です。(次のサイクルで解決予定)。
  3. XenForo ナビゲーション表示:
    • ログイン済みアカウントの一部ナビゲーションが灰色背景になる場合あり(プログレッシブエンスアンチメントの適用が遅いため)。
  4. position: fixed オーバーレイ:
    • ステイキー以外のカセティング認識ヒットテストに失敗する場合があります。
  5. QEMU 環境でのウィンドウ最大化:
    • 視覚的に誤っている場合がありますが、これはエミュレーター特有の事象であり、実機 G3/G4 ハードウェア上では正常です。

📥 ダウンロードとアップデート

最新ビルドは macsurf.org から入手してください。 GitHub などの重い HTTPS サイトが完全に動作していない間も、単純な非 SSL(http)バージョンをご利用いただき、Mac OS マシンのローカル環境から最新版をダウンロードできます。


💖 支援について

本プロジェクトが皆様にとって有用であれば、継続のご支援をお願いします:

同じ日のほかのニュース

一覧に戻る →

2026/07/08 3:24

Kokoro を活用したローカル動作・CPU対応で高品質な TTS(テキスト対話)

## Japanese Translation: 2026 年 3 月 31 日にリリースされた Kokoro-82M は、わずか 8200 万パラメータだけで英語・中国語・ヒンディー語の極めてリアルな声を生成する特段に軽量な Text-to-Speech モデルです。CPU 上で完結するように設計されており、高価な GPU の依存を回避できます(GPU はローカルの LLL推論用に留保されます)。同モデルは AMD Ryzen チップを搭載した標準的なプロセッサ、Intel Core i7 システム、Apple M シリーズ CPU にもデプロイ可能です。ベンチマーク結果では、各種ハードウェア上で合成時間が 5 秒以内となっています:Intel Core i7-4770K で約 4.7 秒、Apple M2 Pro で 4.5 秒、短かい段落では AMD Ryzen 7 8745HS で低至くとも 1.5 秒です。 最も簡単なデプロイ方法では、プリダウンロード済みの音声モデルを含む Kokoro-FastAPI コンテナイメージ(約 5 GB)を使用します。ユーザーは `podman run -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-cpu` コマンドで Podman を使用してサービスを開始し、`localhost:8880/web` でウェブ UI にアクセスすることで、オーディオを直接生成・再生できます。コンテナは OpenAI 互換の音声 API を公開しており、JavaScript(`./speak.js`)および Python(`./speak.py`)スクリプトなどの実装例があります。音声モデルは環境変数 `TTS_VOICE` を使用して選択でき(全リストは HuggingFace で確認可能)、出力は MP3 ファイルとして保存され、SoX がインストールされている場合は自動再生も可能です。 音声認識と Text-to-Speech の両方が必要なアプリケーション向けには、オプションの Speaches コンテナ化サービスが Whisper とシームレスに統合され、また OpenAI API 互換性もサポートしています。リソース要求を低く抑えつつ、簡潔なデプロイオプションを提供することで、Kokoro-82M は自然で多言語の音声合成を開発者のワークフローや広範なアプリケーションに統合するためのハードルを大幅に低下させます。

2026/07/07 21:38

StreetComplete:1 つの小さなクエストで OpenStreetMap を修正していくプロジェクト

## Japanese Translation: StreetComplete は、誰でも現在地から OpenStreetMap の精度を向上させるシンプルな方法を提供します。アプリは生地図上に不足している情報を簡単な「クエスト」として表示し、利用者に特定の場所を訪れて短く質問に答えるよう促し、データギャップを埋めます。このアプローチにより、高度な編集スキルや専用ソフトがなくても OpenStreetMap が最新の状態を保つことができます。ユーザーがタスクを完了すると、その貢献は瞬時にグローバルデータベースで更新され、直ちにその名前でクレジットされます。このメカニズムにより、地図の改善は情報を収集した実際の観察者まで追跡可能になります。したがって、ナビゲーションや地域発見のためのストリートレベルの詳細はより正確かつ信頼性が高まります。究極的には、このツールはマッピングを民主化し、無関心な訪問者を能動的な貢献者に転換させます。これにより、遠隔編集や大規模な専門チームに依存することなく、簡単な現場での相互作用を通じて正確な地理データが継続的に拡張されるコミュニティが育まれます。

2026/07/07 23:23

Chat Control バージョン 1.0 と 2.0 の解説

## Japanese Translation: 欧州連合(EU)は、企業に対し、子供による性虐待資料(CSAM)を検出するために私信をスキャンすることを義務付ける有効期限を迎えた暫定権能(チャットコントロール 1.0,規制 EU 2021/1232)の復活を図ろうとしている。当初 2024 年 8 月 3 日に有効期限が切れる予定だったこの措置は、2 回延期された——最初に 2026 年 4 月 3 日(2024 年 4 月 29 日の議決)、続いてさらに 2028 年 4 月まで(2025 年 12 月 18 日の提案)。2026 年 3 月 26 日、下院での投票で改正案 34 が否決されず、その一方で不特定の写真やテキストの自動評価を禁止する改正案 34 が僅差(307 対 306)で可決されたことを受け、無効化措置に基づく自発的スキャンの法的根拠は 2026 年 4 月 4 日に終了した。にもかかわらず、主要プラットフォーム(Google、Meta、Microsoft、Snap)は自発的に引き続きスキャンを行うと発表した。 しかし、立法上の行き違いが生じている:欧州議会の LIBE 委員会は 2026 年 3 月 2 日に延期を拒否し、欧州議会は 2026 年 3 月 11 日、広範な自動分析に対する保護性指令を採用し、理事会は同年 3 月中旬に欧州議会の条件を拒否した。これに対し、EU の大使たちは 2026 年 6 月 26 日に手続の簡素化を通じて暫定復活を推進することに合意し、理事会は同年 7 月 2 日にも自らの立場を採用した。2026 年 7 月 7 日、欧州議会は緊急手続を承認するため 331 対 303 の投票を行い、その際に関連する委員会を bypass して、有効期限を迎えた特別措置を迅速処理する手続きをとった。この議題に対する法的拘束力のある投票は木曜日(7 月 9 日)に予定されており、絶対多数である 361 人の欧州議会議員の賛成が必要となる。 同時に、「チャットコントロール 2.0」と呼ばれる恒久解決策を確立するための努力も停滞している。委員会は 2022 年 5 月 11 日、プラットフォームに対し暗号化全体(エンドツーエンド)を迂回して検出と報告を行うことを求める恒久規制を提案した。2023 年 11 月、欧州議会は E2E スキャンに反対する保護性指令を採用し、視覚情報のみを対象とした分析、特定の裁判所命令の要件のみを受け入れること、また年齢認証の義務化を拒否することを要請した。2025 年 12 月から 2026 年 5 月までの 4回のトリログ(三回協議)ラウンドに加えて、2026 年 6 月 29 日の「最終」ラウンドも失敗に終わったが、チャットコントロール 2.0 に関する合意は依然として達されていない。 2026 年 6 月 10 日、理事会の法務部は、裁判所の承認なしに行われる自発的スキャンは、EU 基本権憲章第 7 条(プライバシーとデータ保護)に抵触する一般化されたスキャンであるとして警告した。恒久 CSA 規制について 5回のトリログラウンドが完了後なお合意に至らず、2025 年 10 月にドイツの議長国としての任務でリスク評価と軽減義務への重点が移行している状況において、EU は児童安全の強化とデジタル権限の維持という狭いバランスを navigate しなければならない。7 月 9 日の緊急投票は、国家関連のスキャン手続に議論を伴う形で再び導入することを強いるリスクがあり、これにより憲法上の保護や公共の信頼に関連する新たな法的課題が引き起こされる可能性がある。