ZIP シンクルを使用して、ZIP ファイルを圧縮してサイズを小さくします。

2026/05/17 9:26

ZIP シンクルを使用して、ZIP ファイルを圧縮してサイズを小さくします。

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

要約

Japanese Translation:

ZIP Shrinker は、libdeflate を用いた高性能な Deflate 圧縮を適用することで、標準的な ZIP アーカイブおよび APK、EPUB、JAR といった秘密に作られた形式のファイルサイズを大幅に削減するブラウザベースのツールです。主なメカニズムには、コメントやディレクトリエントリーなどの不要なメタデータを削除し、さらにサイズを小さくすることがあります。.tar.bz2 などの異例な形式はより高い圧縮を提供する可能性がありますが、レガシーソフトウェアと互換性を損なう場合があり、本ツールは完全な後方互換性を維持し、ダウンロードしたファイルが古いシステムでも動作することを保証します。この技術は WebAssembly ラッパー(

libdeflate.js
)とオープンソースのコードベースを用いて検証が行われています。主要な成果としては、Linux v6.19 のソースコードを 5% 以上削減し、Romeo & Juliet EPUB を 18% 以上削減し、Signal などの Android アプリを約 30% 削減したことが挙げられます。このイノベーションは、ソフトウェアの配布を簡素化し、帯域幅の使用量を削減し、ストレージコストを下げる一方で、互換性や性能を損なうことなく実現します。

本文

「ZIP Shrinker」を作成しました。これは、ZIP アーカイブを縮小するためのシンプルで使いやすいブラウザ拡張ツールです。さらに、APK や EPUB、JAR など、「内部では実際には ZIP 形式」であることが多いフォーマットにも対応しています。ぜひお試しください!

動作原理

このツールの高階層での動作は以下の通りです:

  1. ZIP アーカイブ内のすべてのファイルを、より高い圧縮率で再圧縮します。
  2. すべてのメタデータを削除します。
  3. ディレクトリに関するエントリを削除します。

再圧縮について

通常、ZIP ファイルは「Deflate」と呼ばれるアルゴリズムで圧縮されています。いくつかのツールがこの Deflate で圧縮されたデータを再圧縮し、より小さくすることができます。その代わりとして、計算に時間を費やす必要があります。私はこれらのツールの一つである「libdeflate」を採用し、ZIP の各圧縮エントリに適用しました。採用理由は性能によるものです。Zopfli などの代替案はわずかに小さい成果を得られる場合もありますが、実行時間の方がはるかに長くなるためです。

本プロジェクトの一環として、libdeflate の WebAssembly(WASM)ラッパーである

libdeflate.js
も作成しました。(WASM で作業する時間は、常に楽しく感じられます!)

メタデータとディレクトリの削除について

ZIP ファイルの各エントリには、コメントなどの追加メタデータを格納できる場合があります。これらは通常使用されず、存在している場合もこのツールはそれらを削除します。これにより保存されるバイト数は大抵少ないですが、害はありません。

ディレクトリの削除については、やや慎重な判断が必要です。通常、ファイルエントリが存在すれば、それが含まれるディレクトリも存在することが前提とされます。例えば、「foo/bar.txt」というファイルエントリがあれば、「foo」ディレクトリが存在するとみなされるのです。一部の ZIP ではディレクトリとして独立したエントリが含まれていますが、ほとんどの抽出ツールはそれらを必要としないため、これらのエントリを削除します。この操作の副次的な効果として、空ディレクトリも同時に削除されてしまいます。これが問題となる場合はお知らせください。

全プロジェクトの仕組みに興味がある方は、完全なソースコードをご確認ください。

どれほど効果的ですか?

このツールが果たせる役割を確認するために、いくつかの ZIP ファイルでテストを行いました。いくつかの事例的な結果を示します:

  • Linux 6.19 ソース:15.8 MiB(5.62% の削減)
  • プロジェクト・グテンベルクからの『ローメオとジュリエット』EPUB:51.2 KiB(18.16% の削減)
  • Android 向けの Signal v8.3.4(APK):25.6 MiB(30.06% の削減)

厳密な科学的検証ではありませんが、参考になる結果です。

なぜこのプロジェクトに取り組んだのか

この概念実証(Proof-of-concept)は、バックワード互換性を損なうことなく ZIP ファイルを小さくできることを示しています。アーカイブを誰かに送信する際にご利用いただくこともでき、また帯域幅やサーバーコストの削減にも有用です。例えば、プロジェクト・グテンベルクが同手法を用いてすべての EPUB を再圧縮すれば、一定の経費節減が可能になるかもしれません。

もちろん、ZIP が常に最も効率的な形式とは限りません。通常では

.tar.bz2
のような他のアーカイブ形式の方が小さくできる場合もよくあります。ただし、それらはバックワード互換性がありません!

さらに、ZIP は Deflate 以外の圧縮方法もサポートしています。これらは一般的ではありませんが、これらを利用してもより小さな結果を得ることが可能です。

より小さな ZIP をご希望でしたら、ぜひ本ツールを試してみてください。

同じ日のほかのニュース

一覧に戻る →

2026/05/19 10:30

LLM による「過去六ヶ月の要約」――わずか五分で読み解く

## Japanese Translation: PyCon US 2026 における「2025 年 11 月の転換点」に関する振り返りは、AI ランドスケープが標準ハードウェア(例:Mac Mini)上で動作する実践的なローカルツールおよび個人用 AI アシスタントへと劇的に移行していることを示しました。2025 年後期から 2026 年初頭にかけての期間は、「最良」という称号を巡る過激な競争によって特徴づけられていました。11 月単独でわずか 2 ヶ月の間にトッププロバイダーにおけるリーダーシップは 5 回交代し、Claude Sonnet 4.5、GPT-5.1、Gemini 3、Codex Max などを経由した後、最終的に Claude Opus 4.5 に落ち着きました。この時代は、コーディングエージェントにおいて OpenAI や Anthropic の検証可能な報酬に基づく強化学習(Reinforcement Learning from Verifiable Rewards)への取り組みにより、単発的な動作から信頼できる日常利用ツールへと移行したことで推進されました。 顕著な技術的進展としては、Google が実用的なオープンウェイトモデルとして Gemma 4 シリーズをリリースしたことや、中国の研究所が GLM-5.1(1.5TB モデル)を公開したことが挙げられます。これらのモデルは、動物がエスクーターに乗っている様子やバージニア北部のカナザが自転車に乗っているような不可能なタスクのアニメーション生成といった驚くべき能力を発揮しました。特定のコミュニティプロジェクトは「Warelay」として始まりましたが、「OpenClaw」という名称を最終的に採用し、人気のあるローカル「個人用 AI アシスタント」の代名詞となりました。2026 年 2 月には新規モデルに対する需要が高まりシリコンバレーで Mac Mini が品切れになった一方で、一部のプロジェクトはセキュリティ懸念とパフォーマンスの問題のため廃止されました。全体のテーマは、自律的にホストされる知能のブームであり、ラップトップ搭載のモデルが業界リーダーと比較して期待を大きく上回る性能を発揮し始めた点にあります。

2026/05/17 1:49

Android スマートフォンを业余無線局トランシーバーに変えてください。

## Japanese Translation: kv4p HT は、Android スマートフォンとの統合を目的として設計されたオープンソースの VHF/UHF アマチュア無線トランスceiver です。専用バッテリーや外部充電器の必要性を排除するため、スマートフォンから電力を供給します。カスタム PCB(v2.0e)、SA818-V/U または DRA818V/U モジュール、SMA メスアンテナなどの部品の使用により構成され、SMS 風のメッセージングおよび位置情報ビーコン機能(APRS)を含む高度なデータ通信タスクをサポートします。法的に運用するためには、少なくとも技師級のアマチュア無線免許証を保有している必要があります。製品には保証がありません。フルデザインと GPL3 ライセンスの ESP32 ファームウェアは GitHub 上に公開されており、3D プリンター用ファイルも用意されているため、DIY による組み立てが可能で、モジュール/PCB のハンダ付け、接着ゲルパッドによる装着、3D プリント製ケースの取り付けを伴います。新規ユーザーは、事前に組み立て済みのベンダーキットを購入しない場合は、ソフトウェアを手動でフラッシュする必要があります。本システムは、2017 年以降の Android 8 以上のデバイスとのみ互換性があります。リアルタイムクローズドキャプション、PTT 用のハプティックフィードバック、アニメーション制御など、アクセシビリティ機能により、多様なユーザーにとって使いやすさが向上しています。

2026/05/19 13:24

コーデックス・マキシング(Codex-maxxing)

## Japanese Translation: この文は、短命なチャットセッションから、複雑な知識労働に適した耐久性のある長時間稼働型コーディングエージェントへの転換を描いています。これらのエージェントは、「compaction(コンパクト化)」という機能を用いて古いのメッセージを剪定し、コスト超過やコンテキスト制限を防ぎつつ不可欠な履歴を保持しながら、数ヶ月間自動化された動作を持続させます。ユーザーは「Chief of Staff」のようなメガスレッドをピン留めして好みを蓄積し、Command-1 から Command-9 などのショートカットを通じてワークストリームを舵取りできますが、オフキャッシュのスレッドは新規の短寿命スレッドよりも高いコストを支払う可能性があります。エージェントは Codex および Wispr Flow を通じて音声入力を受付けることができ、システム全体での口述が可能になり、タイピング単独よりも豊富なコンテキストを実現します。ユーザーはツール呼び出し後(steering)に新たな方向性を注入し、ステップが完了するのを待たずにエージェントを誘導できます。共有メモリシステムはチャット外に Obsidian クォート内にアーティファクト(AGENTS.md を含む)を保存しており、これらを検証、編集、差分表示することを可能にします;GitHub でリポジトリとしてホストされる場合、クラウドツールを通じてメモリの更新内容を確認でき、審査されていない対話の「vibes(雰囲気)」が蓄積するのを防ぎます。$slack、$gmail、$calendar、$browser、@chrome、および@computer といったコネクタは、ローカルのウェブ表面、認証済みのブラウザ状態、Twitter やデスクトップアプリなどの GUI アプリケーションなど、追加機能を提供します。Hatch Pet などのインストール可能なスキルは再利用可能なワークフローをパッケージ化し、エージェントが再教育なしでタスクを繰り返せるようにします。リモートコントロール機能により、ユーザーは作業マシン上で長時間稼働するタスクを開始し、モバイルデバイスからステップを承認することで進捗を持続させつつ管理できます。スレッドローカルハートビートは、Slack/Gmail を 30 分ごとに、フィードバックを 15 分ごとにといった再帰的なチェックをスケジュールし、ユーザーの常在なしでループを稼働させます。ゴールはエージェントに明確な仕上げラインと成功基準を与え、例えば元の単一テストを全てパスしながら Python Rich を Rust に移行する場合などに適用されます。サイドパネルはアーティファクト(Markdown、PDF、スプレッドシート)を検証し、ウェブ表面(index.html、Storybook、Slidev)を操作し、ループを壊さずに変更を確認する作業領域として機能します。

ZIP シンクルを使用して、ZIP ファイルを圧縮してサイズを小さくします。 | そっか~ニュース