Firefox で大規模ダウンロードの再開可能化を実現する

2026/10/13 4:36

Firefox で大規模ダウンロードの再開可能化を実現する

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

要約▶

日本語翻訳:

Firefox 28 およびその以降のバージョンから、デフォルトの

network.http.response.timeout
は 300 秒に設定されています。この設定は、大規模なダウンロードを再開することを妨害し、ダウンロードが失敗としてマークされる前に既存の
.part
ファイルを無視したり、隠蔽されたリトライプロセスを乱したりすることで、それらの一般的な安定性を低下させます。この不安定性は 2005 年以降から知られていた問題ですが、一時的な
.part
ファイルを手動でシャッフルすることは複雑かつ危険であり推奨されません。信頼性の高い解決策として、
about:config
で
network.http.response.timeout
を 0(またははるかに大きな値)に設定することです。これにより、サーバーが再開機能をサポートしている場合、大規模なダウンロードの再開が可能になります。サーバーのサポートがない場合、どの構成変更も成功しません。大規模な転送での最大の安定性のために、ユーザーまたは組織は、現代の Firefox デフォルトよりも堅牢な再開機能を提供する
wget -c
などのコマンドラインツールへの切り替えを検討すべきです。この解決策は実験的なテストで支えられていますが、Firefox のソースコードによる確認はまだされていません。

本文

Firefox 大規模ダウンロードの再取得とタイムアウト設定に関する検証報告

現状の問題点

  • Firefox 28 以降(2014 年以降のすべてのバージョン)では、以下の設定値がデフォルトで固定されている。
    • network.http.response.timeout
      : 300 秒
  • この設定により、以下の不具合が発生しているように見える。
    • 大規模なダウンロードの再取得(レジューム)。
    • ダウンロード全体の安定性。

推奨される対処方法

about:config
を経由して以下の変更を行うことで、問題を改善できる可能性がある。

  • 設定内容:
    network.http.response.timeout
    の値を変更
    • 値:0 または 非常に大きな数値 に設定
  • 効果:
    • 大規模なダウンロードの再取得が可能になる。
    • ダウンロードの安定性が若干向上する。

技術的な背景と仕組み(仮説)

本件の原因について、実験的な検証結果に基づく見解を示す。

  • サーバー側の要件: サーバーが「ダウンロードの再取得」をサポートしていなければならない。
    • サーバー側で対応していない場合、ブラウザの設定変更では解決しない。
  • Firefox の実装特性(推測)
    • Firefox の再取得機能は、.part ファイルの内容ではなく、接続のタイムアウト時間に依存しているようだ。
    • タイムアウト設定が有効でない限り、既存の
      .part
      ファイルを無視することがある。
  • 歴史的文脈:
    • Firefox の再取得機能は概ね安定性が低い。
    • この問題は2005 年以来知られている問題である。

その他の回避策と注意点

wget を使用する場合

  • Firefox 以外のツールとして、以下のコマンドを使用すると有効である。
    wget -c -O "$filename" "$url"
    
  • 利点:
    wget
    は全体的に比較的安定している。

Firefox の内部動作について

  • Firefox はユーザーに「失敗」と判断される前に、背後でリトライを実行している可能性がある。
    • 実験結果から、このプロセスは少なくとも部分的に
      network.http.response.timeout
      と関連している。
    • タイムアウト時間を超過すると、このリトライプロセスが妨げられる可能性が高い。

今後の調査余地

  • Firefox のソースコード内の詳細な実装確認は未実施である。
    • 原因となる具体的なコード箇所を見つける方法が明確ではないため、調査は留まっている状態。

同じ日のほかのニュース

一覧に戻る →

2026/10/13 6:40

AI は道具です。それを巧みに使うには技術が必要です。

## 日本語翻訳: 本稿の核心的な論点は、大規模言語モデルは自律的な「自動化」ではなく、人間の技量が必要なツールであるというものである。これは、AI が独立した意思あるいは悪意を持って行動するという考え方を否定するものであり、ソフトウェアが「反逆する(rogue)」ように振る舞うなど、業界特有の成り行きや陰謀論的なナラティブに煽られておりやすい。物理的な器具が悪用され得るように、LLM もエンジニアリング上の制限によって予期せぬ出力を生み出すに過ぎず、エージェント性の喪失によるものではない。人間による判断が依然として中核をなすのは、ユーザーが盲目的に制御権を委ねるのではなく、フィードバックループ内で結果を検証し、プロンプトを見直し、変更を検証するからです。本稿は AI を記述するために使用される擬人化された言語を批判しており、「陰謀」などの用語は技術的な問題が存在する場所に人間の動意を不当に暗示することを示唆しているとしています。 今後の議論では、AI を別個の存在として描く枠組みから転じ、解釈への問いかけや誤りへの認識においてユーザーの専門性を育むことに焦点を移すべきです。開発者および企業に対しては、恐怖を煽る比喩ではなく正確な工学用語を採用することで、より良いリスク管理と説明責任を実現できます。真の熟達とは、どのような質問が重要かを理解し、熟練した運用と盲目的な委任を見極めることであり、不完全なパフォーマンスがツールの有用性や作業者の責任を否定するものではありません。

2026/10/13 1:13

C で構築されたモダンな Web アプリ

## Japanese Translation: 本テキストは、2026 年に C と CGI を OpenBSD 上で構築された独自の商用 Web アプリケーション「marketyour.games」について説明しています。このプロジェクトは現代のフレームワークよりも極度な簡潔性とセキュリティを優先しており、「BCHS」スタック(OpenBSD、C、httpd、SQLite)を採用し、外部のフレームワークや独立したデータベースサーバーは一切使用しません。核心的な革新点は、アプリケーション全体が静的にリンクされた単一のバイナリとして動作し、ランタイム依存関係がゼロであるというアーキテクチャにあります。デプロイはファイルを 1 つだけフォルダに配置するだけであり、古いバージョンを置き換えるだけで済みます。再起動やダウンタイムも不要です。 セキュリティは OpenBSD のデフォルト設定を通じて強制されており、httpd に対して `chroot` を適用し、C プログラムに対して `pledge` および `unveil` などのツールを使用して制約を課します。アーキテクチャは、すべての HTTP リクエストごとに新しいプロセスをフォークし、コードから直接アセットを提供することでメモリ内に完全に収まり、すべてのトラフィックを httpd を介して CGI バイナリにルーティングするという方式に基づいています。このアプローチでは JavaScript テンプレート言語を使用しない(プログレッシブ改善に従う)とともに、安定した CGI 1.1 規格に準拠しますが、使いやすさを犠牲にして制御性を追求します。 主な利点としては、サプライチェーンリスクが著しく低減すること—依存するのは C コンパイラーと 3 つのライブラリ(`libcurl`、`libsodium`、組み込み済みの `libcjson`)のみ—、そして GDB のような標準ツールによるデバッグが容易であることです。アプリケーションは通常の実行ファイルだからです。しかしながら、この手法では開発者がデータを解析するためのロジック(クッキー、クエリ、フォーム)やカスタムヘッダーの管理を自ら実装する必要があり、複雑な依存関係グラフではなく、基本的な HTTP 概念と Vim のような古典的なツール(プラグインなし)を活用する姿勢を選択します。

2026/10/13 4:40

ZX Spectrum 向けのデモシーンイントロを作成する

## Japanese Translation: 著者は、標準的な 128KB の ZX Spectrum にて手書きのレトロなイントロを成功裏に作成し、高度に最適化されたアセンブリ言語プログラミングにより複雑なビジュアルとオーディオを実現した。2 ヵ月間(2025 年 12 月から開始)にわたり、約 19KB のコード(具体的には 10287 バイトのメインルーチン)を書き下し、内蔵 ROM を書き換えることでカスタムフォント「Cartoon」を用いたスムーズなスクロールテキストを作成し、また Amiga モジュール「Milkman」を変換して 3 チャネル AY サウンドトラックを生成した。限られたメモリ制限を管理するため、アセットは BASIC ロードに分割され、ルーチンはオーバーヘッドを避けるために特定のアドレスでハードコーディングされた。技術的な最適化としては、Z80 RL 命令を用いてスクロールテキストの回転を実現し、スキャンライン衝突を避けるために Ruby で生成した座標テーブルを事前計算してスターフィールド効果を再現し、さらにサウンドチップから直接振幅レジスタを読み取ってバウンス VU メーターを実装している。プロジェクトは 1980 年代後半の Amiga クrack イントロに触発され、本物の Spectrum +3上でローカル TNFS サポートのある Makefile 駆動のビルドシステムを用いて開発された。最終的な.tap ファイルは Web ブラウザまたは pouet.net を経由して入手でき、レトロなハードウェア上で高忠実度な体験を提供し、極限を効率的に達成したコーディングの実証として立っている。

Firefox で大規模ダウンロードの再開可能化を実現する | そっか~ニュース