Iced 0.14 has been released (Rust GUI library)

2025/12/08 6:27

Iced 0.14 has been released (Rust GUI library)

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

要約

Japanese Translation:


iced‑wgpu 0.14.0 リリース概要

iced‑wgpu 0.14.0 は 2023年12月7日にリリースされ、幅広い新機能、パフォーマンス向上、バグ修正、および依存関係の更新を追加し、いくつかのレガシー項目を削除しました。

新機能

  • リアクティブレンダリング(動的UIアップデート) – #2662
  • タイムトラベルデバッグ – #2910
  • アプリコード用アニメーションAPI – #2757
  • ヘッドレスモードテスト – #2698
  • ファーストクラスのエンドツーエンドテスト – #3059

パフォーマンス & グラフィックス強化

  • 同時画像デコード/アップロード – #3092
  • 新しいデバッガと開発ツール基盤(comet) – #2879
  • comet 用カスタムパフォーマンスメトリクス – #2891
  • スマートスクロールバー – #2922
  • graphics::layer::Stack
    での基本レイヤー統合 – #3033

ウィジェット & UI 改善

  • テーブル、グリッド、センサ、フロート、およびピンウィジェットを追加。
  • 自動スクロールサポート;ツールチップ遅延調整。
  • Markdown サポート:インクリメンタルパース、画像処理、タスクリスト。
  • 列/行の新しい
    wrapping
    メソッド。

ウィンドウ & システム機能

  • window::Settings
    maximized
    ,
    fullscreen
    ,
    transparent
    ,
    closeable
    ,
    minimizable
    を追加。
  • macOS 専用キーショートカットと Control 修飾子サポート。
  • vsync
    フィールドを追加;X11/Wayland 用機能フラグを導入。

依存関係の更新

  • wgpu → 27.0, image → 0.25, cosmic-text → 0.15。
  • resvg 0.45, wasmtimer 0.4.2, openssl 0.10.70, forked winit 0.30.8。

バグ修正

  • UI 再描画バグ、IME 処理エラー、Chromium WebGPU 起動失敗、不正なメッシュ/矩形計算、レイアウト/レンダリング回帰など、200件以上の問題を解決。

削除された項目

  • Overlay
    is_over
    メソッド。
  • winapi, palette, once_cell 依存関係。
  • ショートハンド
    color!
    マクロサポート。
  • Compositor::screenshot
    の Surface 引数。

ドキュメント & API 変更

  • Markdown キャッシュに Rc を Arc に置き換え。
  • サンプル(clock, gallery)を更新。
  • ヘルパー関数を公開;Rust 2024 エディションへ移行;キーボード購読を統一。

この概要は、リリースノートからすべての主要ポイントを網羅し、未検証の推論を加えずに明確で読みやすい構成を維持しています。

本文

リリース – 0.14.0

hecrj によって 12 月 07 日 20:53 に公開


新機能

  • リアクティブレンダリング (#2662)
  • タイムトラベルデバッグ (#2910)
  • アプリケーションコード用のアニメーションAPI (#2757)
  • ヘッドレスモードでのテスト (#2698)
  • ファーストクラスのエンドツーエンドテスト (#3059)
  • 入力方式サポート (#2777)
  • ホットリロード (#3000)
  • 同時画像デコード & アップロード(その他多数) (#3092)
  • Comet デバッガと DevTools の基盤 (#2879)
  • Comet 用のプレゼンテーションメトリクス (#2881)
  • カスタムパフォーマンスメトリクス(Comet) (#2891)
  • スマートスクロールバー (#2922)
  • システムテーマへのリアクション (#3051)
  • テーブルウィジェット (#3018)
  • グリッドウィジェット (#2885)
  • センサーウィジェット (#2751)
  • フロートウィジェットとその他のカッコいい機能 (#2916)
  • ピンウィジェット (#2673)
  • 列ウィジェット用の Wrap メソッド (#2884)
  • スクロール可能ウィジェットに対する自動スクロールサポート (#2973)
  • ツールチップウィジェットへの遅延サポート (#2960)
  • テキスト::Shaping のオート戦略 (#3048)
  • インクリメンタル Markdown 解析 (#2776)
  • カスタマイズ可能な Markdown レンダリング & 画像サポート (#2786)
  • Markdown ウィジェットでの引用サポート (#3005)
  • Markdown ウィジェットでのタスクリストサポート (#3022)
  • デフォルトクアッドスナップに対するクリッス機能 (#2969)
  • graphics::layer::Stack の基本レイヤーマージング (#3033)
  • iced_wgpu と並行性基盤のヘッドレスモード (#2857)
  • 列 & 行ウィジェットでのプリミティブカリング (#2611)
  • winit シェルでの遅延コンポジタ初期化 (#2722)
  • ジャスティファイドテキストアラインメントサポート (#2836)
  • mouse_area へのダブルクリックイベント (#2602)
  • iced_wgpu::geometry::Cache のデフォルト実装 (#2619)
  • KeyReleased イベントにおける
    physical_key
    フィールド
    (#2608)
  • qr_code ウィジェットの
    total_size
    メソッド
    (#2606)
  • ウィジェットスタイル用 PartialEq 実装 (#2637)
  • Arc を介した iced_wgpu::Renderer への Send マーカー (#2692)
  • スクロールバーウィジェットの無効化状態 (#2585)
  • テーマパレットに警告色を追加 (#2607)
  • window::Settings に最大化 & フルスクリーンフィールド (#2627)
  • サイズ制御・リサイズ増分用の Window タスク (#2633)
  • ドラッグによるリサイズ用 Window タスク (#2642)
  • ウィジェットモジュール内のアラインメントヘルパー関数 (#2746)
  • time::repeat
    サブスクリプション
    (#2747)
  • progress_bar の縦方向サポート (#2748)
  • 画像ウィジェットの拡大縮小サポート (#2755)
  • text_editor の LineEnding サポート (#2759)
  • mouse::Cursor & Click 用 Mul 実装 (#2758)
  • Wasm ターゲット用アニメーションモジュールサポート (#2764)
  • DEPENDENCIES での dev shell 用 Flake (#2769)
  • Unfocus ウィジェット操作 (#2804)
  • Sipper サポートと QoL 改善 (#2805)
  • IME ウィンドウ用変数テキストサイズ (#2790)
  • is_focused
    ウィジェット操作
    (#2812)
  • ウィンドウのプレ・プレゼンテーション通知 (#2849)
  • 折り返し行のカスタマイズ可能な縦スペース (#2852)
  • text_editor 用インデント & アンインデントアクション (#2901)
  • Floating Images (#2903)
  • PaneGrid の
    min_size
    メソッド
    (#2911)
  • センサーウィジェット用の汎用キー (#2944)
  • Task 用 Debug 実装 (#2955)
  • canvas::Cache 上での
    draw_with_bounds
    メソッド
    (#3035)
  • 同期タスク実行 & RedrawRequested の一貫性 (#3084)
  • text_editor 上での
    id
    メソッド
    (#2653)
  • Padding 上での水平・垂直メソッド (#2655)
  • is_focused
    セレクタと find / find_all 操作
    (#2664)
  • combo_box::State に対する
    push
    &
    into_options
    (#2684)
  • mouse::Interaction の隠しバリアント (#2685)
  • pick_list & combo_box ウィジェットの
    menu_height
    メソッド
    (#2699)
  • toggler::Style への
    text_color
    (#2707)
  • combo_box ウィジェット上での
    text_shaping
    メソッド
    (#2714)
  • window::Settings 上の透明フィールド (#2728)
  • Closeable & Minimizable フィールド(window::Settings) (#2735)
  • window::monitor_size
    タスク
    (#2754)
  • Size & Vector の除算演算子 (#2767)
  • スクロール可能ウィジェットの隠しメソッド (#2775)
  • macOS 固有キーショートカット(Control 修飾) (#2801)
  • mouse::Interaction に追加バリアント (#2815)
  • Vsync フィールド(window::Settings) (#2837)
  • wgpu-bare フラグでデフォルト wgpu 機能を無効化 (#2828)
  • Size の比率メソッド (#2861)
  • ⌘ + Backspace & ⌘ + Delete macOS ショートカット (#2862)
  • テキストエディタでダブルクリック後の単語選択拡張 (#2865)
  • x11 & wayland フラグ (#2869)
  • checkbox ウィジェット上の
    label
    メソッド
    (#2873)
  • wgpu リソース管理を簡易化する
    shader::Pipeline
    トレイト
    (#2876)
  • select_range ウィジェット操作 (#2890)
  • grid!
    マクロヘルパー
    (#2904)
  • コンテナウィジェットの警告スタイル (#2912)
  • 現在のトグル状態を toggler::Status::Disabled に反映 (#2908)
  • 入力方式用カーソルサイズ認識 (#2918)
  • runtime::window 上での
    allow_automatic_tabbing
    タスク
    (#2933)
  • Color 用 FromStr & Display 実装 (#2937)
  • iced_graphics 内の
    text::Renderer
    トレイト(fill_raw メソッド付き)
    (#2958)
  • text ウィジェット用
    font_maybe
    ヘルパー
    (#2988)
  • Subscription 上での
    filter_map
    メソッド
    (#2981)
  • keyboard::Event::KeyPressed の
    repeat
    フィールド
    (#2991)
  • Markdown レンダリングに使用するフォントを制御する追加設定 (#2999)
  • window::Event 上の Rescaled 変種 (#3001)
  • ビーコンサーバーリッスンアドレス用環境変数 (#3003)
  • stack ウィジェット上での
    push_under
    メソッド
    (#3010)
  • keyboard::Modifiers の NONE 定数 (#3037)
  • overlay::menu::Style 上の Shadow フィールド (#3049)
  • mesh::Renderer トレイト内の
    draw_mesh_cache
    メソッド
    (#3070)
  • text_editor::Content 用 Efficient is_empty (#3117)
  • Point & Vector の Assign 実装 (#3131)
  • スクロール可能ウィジェットで Color ではなく Background スタイリングをサポート (#3127)
  • Windows 向け CornerPreference ウィンドウ設定 (#3128)
  • Editor API 用
    move_to
    メソッド
    (#3125)
  • toggler スタイルの Background & padding_ratio サポート (#3129)

変更点

  • Markdown キャッシュで Rc を Arc に置き換え (#2599)
  • button::Catalog & Style のドキュメントを改善 (#2590)
  • Clock 例題をタイクスと数字表示に更新 (#2644)
  • mouse::click::Kind に PartialEq & Eq 派生 (#2741)
  • Color::from_rgb8 / from_rgba8 を const としてマーク (#2749)
  • directories‑next クレートを directories に置き換え (#2761)
  • Widget::update が Event を参照で受け取るよう変更 (#2781)
  • Blurhash プレビュー付きギャラリー例題を改善 (#2796)
  • wasm-timer を wasmtimer に置き換え (#2780)
  • Palette 生成を微調整 (#2811)
  • Task::perform の Fn から FnOnce への境界緩和 (#2827)
  • iced_wgpu の quad シェーダーを単一 SDF 使用に改善 (#2967)
  • scrollable レイアウトで Limits::min を直接使用 (#3004)
  • Oklch を用いたテーマパレット生成の全面改修 (#3028)
  • 可変 Widget メソッドを導入 (#3038)
  • Layout ロジックで Shrink を Fill より優先 (#3045)
  • format! を concat! へ置き換え(文字列リテラル) (#2695)
  • window::run_with_handle をより強力な window::run に変更 (#2718)
  • パレットモジュールのカラーヘルパーを公開 (#2771)
  • iced_wgpu のデフォルト PowerPreference を HighPerformance に設定 (#2813)
  • button::DEFAULT_PADDING を公開 (#2858)
  • Markdown ウィジェットで Url 解析を String URI に変更 (#2992)
  • コンテナのアラインメントドキュメントを改善 (#2871)
  • input_method モジュールを公開 (#2897)
  • iced ロゴ用に組み込みアイコンフォントを使用 (#2902)
  • Layout::children が ExactSizeIterator を返すよう変更 (#2915)
  • syntect で fancy-regex を onig の代わりに有効化 (#2932)
  • toast 例題に警告ステータスを追加 (#2936)
  • scroll_to & snap_to を単一軸操作可能に改善 (#2994)
  • iced_tiny_skia の png-format フィーチャーを無効化 (#3043)
  • キーボードサブスクライブを統合し、1 つの listen サブスクライブへ (#3135)
  • Rust を 2024 バージョンに更新 (#2809)
  • wgpu を 22.0, 23.0, 24.0, 26.0, 27.0 にアップデート (#2510 / #2663 / #2832 / #3019 / #3097)
  • image を 0.25 に更新 (#2716)
  • cosmic-text を 0.13, 0.14, 0.15 に更新 (#2834 / #2880 / #3098)
  • resvg を 0.45 に更新 (#2846)
  • wasmtimer を 0.4.2 に更新 (#3012)
  • dark-light を 2.0 に更新 (#2724)
  • openssl を 0.10.70 に更新 (#2783)
  • winit フォークを 0.30.8 の修正でアップデート (#2737)

修正

(バグ修正の詳細はオリジナルの変更ログをご覧ください。)


削除

  • Overlay トレイトから
    is_over
    メソッドを削除 (#2921)
  • color! マクロの短縮表記サポートを削除 (#2592)
  • Compositor::screenshot の
    surface
    引数を削除 (#2672)
  • once_cell 依存関係を削除 (#2626)
  • winapi 依存関係を削除 (#2760)
  • palette 依存関係を削除 (#2839)

多大なる感謝を…

@edwloef, @rhysd, @DKolter, @pml68, @andymandias, @dtzxporter, @tarkah, @tvolk131, @alex-ds13, @B0ney, @bbb651, @JL710, @kenz‑gelsoft, @mfreeborn, @mtkennerly, @watsaig, @13r0ck, @airstrike, @bungoboingo, @EmmanuelDodoo, @karolisr, @Remmirad, @semiversus, @Ultrasquid9, @xosxos, @Zarthus, @7h0ma5, @7sDream, @Adam‑Ladd, @AMS21, @Atreyagaurav, @AustinEvansWX, @Azorlogh, @berserkware, @biglizards, @boondocklabs, @bradysimon, @camspiers, @chrismanning, @codewing, @csmoe, @davehorner, @DavidAguilo, @dcz‑self, @dejang, @dependabot[bot], @EleDiaz, @ellieplayswow, @Exidex, @Fili-pk, @flakes, @Gobbel2000, @GyulyVGC, @hammerlink, @hydra, @ibaryshnikov, @ids1024, @iMohmmedSA, @Integral‑Tech, @inthehack, @jakobhellermann, @janTatesa, @jbirnick, @jcdickinson, @Jinderamarak, @jsatka, @kbjr, @kgday, @kiedtl, @Konsl, @Koranir, @kosayoda, @Krahos, @l‑const, @l4l, @laycookie, @leo030303, @Leonie‑Theobald, @libkurisu, @lmaxyz, @mariinkys, @max-privatevoid, @MichelleGranat, @misaka10987, @mytdragon, @njust, @nrjais, @nz366, @OpenSauce, @Ottatop, @Redhawk18, @rhogenson, @rizzen‑yazston, @rotmh, @Rudxain, @ryco117, @Seppel3210, @sgued, @sopvop, @T‑256, @tafia, @thorn132, @tigerros, @tsuza, @vincenthz, @will‑lynas


同じ日のほかのニュース

一覧に戻る →

2025/12/08 2:18

I failed to recreate the 1996 Space Jam website with Claude

## Japanese Translation: ## 要約 著者は、Claude AI を使って 1996 年の Warner Bros の「Space Jam」ランディングページをスクリーンショットとアセットフォルダから再構築しようとしました。元のサイトは 200 KB 未満の単一 HTML ファイルで、絶対位置決め、テーブルレイアウト、およびタイル状の星空 GIF 背景に依存しています。 **プロセスと所見** 1. **初期試行:** Claude は概算レイアウトを生成しましたが、惑星軌道を誤った位置に配置しました。軌道パターンは認識できたものの、それを再現することには失敗しました。 2. **構造化プロンプト:** 著者は Claude に「知覚分析」「空間解釈」「再構築計画」の各セクションで理由を説明させ、正確なピクセル座標を要求しましたが、Claude はそれらを提供できませんでした。 3. **カスタムツール:** 精度向上のために 50 px → 5 px のグリッドオーバーレイ、ラベル付き座標参照点、色差比較、スクリーンショットサイドバイサイドビューア、およびスクリーンショットを 6 区域に分割するスクリプトを構築しました。 4. **結果:** Claude の調整は目標から 5–10 px 内に留まりましたが、正しい軌道半径(約 350–400 px)には決して収束しませんでした。内部レイアウトが生成されると、その後のフィードバックは元のスクリーンショットではなく、この誤ったモデルに基づいて行われました。 5. **トークナイズ仮説:** 著者は Claude が 16×16 パッチで画像をトークナイズしているため、細かい視覚的粒度が欠如し、セマンティック理解はあるもののピクセル精度が低いと考えました。 6. **ズームインテスト:** 200 % に拡大したスクリーンショットを提供して、大きなパッチで解像度が向上するか確認しましたが、Claude は依然として比例スケーリング指示に従いませんでした。 **結論** このタスクは未解決のままです。実験は Claude の空間推論限界をベンチマークとし、ピクセル単位で正確な画像再構築におけるモデルの現在の制約を示しています。

2025/12/08 7:18

How I block all online ads

## Japanese Translation: > **概要:** > 著者は、ウェブブラウザとモバイルアプリの両方で広告を排除するために長期的かつ多層的なアプローチを説明しています。彼は **Firefox + uBlock Origin** と最小限のフィルタリスト(組み込みのuBlockフィルタ、EasyList、AdGuard – Ads)と「広告でない不快要素」のためのカスタム非広告フィルタを使用します。 > DNS フィルタリングには **Pi‑hole(または AdGuard Home)** を Docker 上で $5 の DigitalOcean ドロップレットに稼働させ、WireGuard VPN の DNS サーバとして設定しています。トラフィックは **クラウドベースの VPN**(DigitalOcean、Hetzner、Azure、Google Cloud、または AWS)を経由し、プラットフォームが公的クラウド IP を検知して広告配信を減らします。 > この設定では **Cloudflare のキャプチャや HTTP エラー** が発生する場合があるため、著者は該当サイトで VPN を無効化しています。また、**Consent‑O‑Matic**(クッキーポップアップ)、**Buster**(キャプチャ)、**SponsorBlock**(動画広告)などのブラウザ拡張機能を推奨します。iOS では **Background App Refresh** をオフにするとデータ収集が減少し、Android では **ReVanced がアプリをパッチできますが、セキュリティリスクがあります** と指摘しています。 > 著者はこの統合戦略を 3 年以上使用しており、現在ほとんど広告を見ることはありません。プラットフォーム別の効果は異なります:YouTube は uBlock Origin + VPN(1週間〜1か月)が必要;Instagram は uBlock Origin のみで十分;Twitch は主に VPN に依存し、数日で効果が現れます;TikTok は両方のツールを使用しますが、数時間だけです。**AdMob** を利用するアプリも DNS ブロックの恩恵を受けます。 > 広告配信ネットワークは数日から数週間でパターンを観察し調整する可能性があるため、継続的な監視が必要です。著者は **Firebog** をブロックリストの良い情報源として引用し、正当なサイトを壊さないように許可リスト(allowlist)を維持する重要性を強調しています。

2025/12/07 23:37

Dollar-stores overcharge cash-strapped customers while promising low prices

## Japanese Translation: ドルジェネラルとファミリードラーは、棚に貼られたタグの価格よりも高い価格で顧客を頻繁に請求し、低所得層の買い物客に不釣り合いな過剰課金が広く発生しています。州検査と独立調査では、一部店舗でエラー率が88%に達するケースや、両チェーン全体で価格設定失敗が一貫して報告されています。 主な例としては、ノースカロライナ州ウィンザーのファミリードラーで23%のスキャンアイテムが過剰請求(同店の4回連続失敗)、オハイオ州ハミルトンのドルジェネラルで76%のエラー率(2022年10月)、ニュージャージー州バウンドブルックのファミリードラーで68%の不一致(2023年2月)があります。2022年1月以降、ドルジェネラルは4,300件以上、ファミリードラーは2,100件以上の価格失敗事例を記録しています。 アリゾナ州(60万ドル)、コロラド州(40万ドル)、ニュージャージー州・バーモント州・ウィスコンシン州・オハイオ州(最大100万ドル)など複数の州がチェーンと訴訟を和解し、連邦および州の司法長官は追加訴訟を提起しています。株主訴訟では、経営陣がシステム的問題を認識していたと主張されています。ニュージャージー州の連邦裁判所は、モバイルアプリ利用に関連する仲裁条項を理由にドルジェネラルに対する集団訴訟を停止し、消費者の救済手段を制限しました。 規制当局は現在の1検査あたり5,000ドル上限を超えるより厳格な執行や高い罰則を課すことができ、さらに州が調査を進めるにつれて追加の和解が生じる可能性があります。影響としては顧客信頼の低下、チェーンへの潜在的財務損失、評判へのダメージ、およびドルストア業界全体での価格設定と人員管理の強化への動きが挙げられます。

Iced 0.14 has been released (Rust GUI library) | そっか~ニュース