<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>WEB/SUN</title><description>Sunny 关于 AI、Flutter、SwiftUI 与 Web Motion 的技术文章、实验和资料库。</description><link>https://websun.test/</link><item><title>Agent 状态机：退出条件、暂停语义与失败恢复</title><link>https://websun.test/blog/ai-agent-state-machine-recovery/</link><guid isPermaLink="true">https://websun.test/blog/ai-agent-state-machine-recovery/</guid><description>把 Agent 循环改写成有预算、有互斥终态、可序列化暂停并能按故障类型恢复的应用状态机。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>Agent Runtime</category><category>State Machine</category><category>Recovery</category><category>Human in the Loop</category></item><item><title>Codex `/goal` 长任务：用规格、检查点与证据定义完成</title><link>https://websun.test/blog/ai-codex-goal-verifiable-long-running-work/</link><guid isPermaLink="true">https://websun.test/blog/ai-codex-goal-verifiable-long-running-work/</guid><description>把短目标连接到仓库内长规格，以互斥文件所有权、里程碑提交、测试证据和最终清理推动可验证的长期任务。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>Codex</category><category>Goal Mode</category><category>Long-running Work</category><category>Verification</category></item><item><title>上下文预算工程：压缩、缓存与记忆不是同一件事</title><link>https://websun.test/blog/ai-context-budget-compaction-memory/</link><guid isPermaLink="true">https://websun.test/blog/ai-context-budget-compaction-memory/</guid><description>将当前上下文、可恢复压缩、前缀缓存和长期记忆拆成四套语义，设计有预算、可撤销且不会把模型猜测永久化的状态系统。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>Context Window</category><category>Compaction</category><category>Prompt Caching</category><category>Memory</category></item><item><title>AI Evals 与持续回归：让每次模型变化都有证据</title><link>https://websun.test/blog/ai-evals-continuous-regression/</link><guid isPermaLink="true">https://websun.test/blog/ai-evals-continuous-regression/</guid><description>建立版本化数据集、分层 grader、人工校准、trace 诊断和发布门禁，把模型、提示词、工具与检索变化纳入持续回归。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>AI Evals</category><category>Continuous Regression</category><category>Trace Grading</category><category>Quality Gates</category></item><item><title>MCP 能力边界与安全模型：协议会连接，授权仍由你负责</title><link>https://websun.test/blog/ai-mcp-capability-security-boundaries/</link><guid isPermaLink="true">https://websun.test/blog/ai-mcp-capability-security-boundaries/</guid><description>从 Host、Client、Server 与 resources/prompts/tools 的协议角色出发，建立服务器信任、能力过滤、OAuth、审批和输出隔离五层边界。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>MCP</category><category>OAuth</category><category>Tool Security</category><category>Prompt Injection</category></item><item><title>模型路由与成本工程：让 Batch、缓存和降级服从质量门禁</title><link>https://websun.test/blog/ai-model-routing-batch-cache-cost/</link><guid isPermaLink="true">https://websun.test/blog/ai-model-routing-batch-cache-cost/</guid><description>用能力约束、离线评测、时效等级和真实 usage 设计模型路由，再把异步批处理与相同前缀缓存放到正确路径。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>Model Routing</category><category>Batch API</category><category>Prompt Caching</category><category>Cost Engineering</category></item><item><title>多 Agent 编排：拆分边界、交接所有权与重复工作控制</title><link>https://websun.test/blog/ai-multi-agent-orchestration/</link><guid isPermaLink="true">https://websun.test/blog/ai-multi-agent-orchestration/</guid><description>从单 Agent 出发，仅在契约真正变化时拆分专家，并用明确所有权、任务账本和合并协议控制交接与重复执行。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>Multi-Agent</category><category>Handoffs</category><category>Orchestration</category><category>Task Ledger</category></item><item><title>多模态输入与图片生成：从模型候选到人工验收资产</title><link>https://websun.test/blog/ai-multimodal-image-human-review/</link><guid isPermaLink="true">https://websun.test/blog/ai-multimodal-image-human-review/</guid><description>设计图片输入预检、结构化视觉观察、可追溯候选生成、机器校验与人工验收，让“生成成功”不再等于“可以发布”。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>Multimodal</category><category>Vision</category><category>Image Generation</category><category>Human Review</category></item><item><title>从提示词到生产 AI 系统：六层架构与可验证边界</title><link>https://websun.test/blog/ai-production-system-architecture/</link><guid isPermaLink="true">https://websun.test/blog/ai-production-system-architecture/</guid><description>把一次成功的模型调用拆成输入契约、编排、能力、执行、评测与体验六层，建立能上线、能回退、能解释的 AI 系统。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>AI Architecture</category><category>Responses API</category><category>Evals</category><category>Safety</category></item><item><title>Prompt Injection 防线：数据安全、审计与可控降级</title><link>https://websun.test/blog/ai-prompt-injection-data-security-audit-fallback/</link><guid isPermaLink="true">https://websun.test/blog/ai-prompt-injection-data-security-audit-fallback/</guid><description>从不可信内容到高权限工具划出可执行的信任边界，用最小权限、双阶段审批、隐私化审计、对抗评测与功能降级限制提示注入影响。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>Prompt Injection</category><category>Data Security</category><category>Audit</category><category>Defense in Depth</category></item><item><title>RAG 评测集与失败分析：从总分回到断裂的那一层</title><link>https://websun.test/blog/ai-rag-evaluation-failure-analysis/</link><guid isPermaLink="true">https://websun.test/blog/ai-rag-evaluation-failure-analysis/</guid><description>构建带证据与可回答性标注的 RAG 评测集，分别测数据、召回、上下文、生成和引用，用反事实实验定位失败模块。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>RAG Evaluation</category><category>Information Retrieval</category><category>Faithfulness</category><category>Failure Analysis</category></item><item><title>RAG 证据管线：切分、混合检索、重排与可核验引用</title><link>https://websun.test/blog/ai-rag-retrieval-pipeline/</link><guid isPermaLink="true">https://websun.test/blog/ai-rag-retrieval-pipeline/</guid><description>从带版本和权限的文档摄取开始，设计结构化切分、稀疏与稠密召回、重排、上下文装配以及逐条可验证引用。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>RAG</category><category>Information Retrieval</category><category>Reranking</category><category>Citations</category></item><item><title>实时 AI 语音：把流式、延迟与打断做成一套状态机</title><link>https://websun.test/blog/ai-realtime-streaming-voice-interruption/</link><guid isPermaLink="true">https://websun.test/blog/ai-realtime-streaming-voice-interruption/</guid><description>拆解实时语音的传输、断句、首段音频与播放延迟，并用可核验的游标、取消和截断语义实现自然打断。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>Realtime API</category><category>Voice</category><category>Streaming</category><category>Interruption</category></item><item><title>Responses API 运行时：状态、流式事件与工具循环</title><link>https://websun.test/blog/ai-responses-api-runtime/</link><guid isPermaLink="true">https://websun.test/blog/ai-responses-api-runtime/</guid><description>用一个可恢复的运行时模型理解 Responses API：如何选择会话状态策略、消费 SSE 语义事件，并正确闭合工具调用循环。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>Responses API</category><category>Streaming</category><category>Function Calling</category><category>State Machine</category></item><item><title>结构化输出不是 JSON.parse：Schema、拒绝与业务验证</title><link>https://websun.test/blog/ai-structured-outputs-schema-validation/</link><guid isPermaLink="true">https://websun.test/blog/ai-structured-outputs-schema-validation/</guid><description>从 Structured Outputs 的严格 Schema 到运行时状态分类和领域校验，建立不会把“可解析”误当作“可执行”的数据边界。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>Structured Outputs</category><category>JSON Schema</category><category>Zod</category><category>Validation</category></item><item><title>工具调用的四道闸门：参数、权限、幂等与安全</title><link>https://websun.test/blog/ai-tool-calling-boundaries/</link><guid isPermaLink="true">https://websun.test/blog/ai-tool-calling-boundaries/</guid><description>将模型的函数调用视为待审意图，经由严格契约、服务端授权、幂等执行与审计证据后，才允许触达真实系统。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>Function Calling</category><category>Authorization</category><category>Idempotency</category><category>Prompt Injection</category></item><item><title>动效也要有静态答案：Flutter 无障碍、Widget 与 Golden 测试</title><link>https://websun.test/blog/flutter-accessible-motion-widget-golden-tests/</link><guid isPermaLink="true">https://websun.test/blog/flutter-accessible-motion-widget-golden-tests/</guid><description>为 Flutter 动效设计减少动态效果分支，并用 Widget、Semantics、无障碍规则、Golden 与 VoiceOver/TalkBack 分层验证交互和视觉。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>Flutter</category><category>无障碍</category><category>Widget Test</category><category>Golden Test</category><category>Reduce Motion</category></item><item><title>不要判断“是不是平板”：Flutter 自适应与响应式跨平台界面</title><link>https://websun.test/blog/flutter-adaptive-responsive-cross-platform/</link><guid isPermaLink="true">https://websun.test/blog/flutter-adaptive-responsive-cross-platform/</guid><description>以可用空间、输入能力、内容密度和平台政策驱动 Flutter 布局，组织断点、导航、分栏、折叠屏和多窗口，而不是用设备名称猜界面。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>Flutter</category><category>自适应设计</category><category>响应式布局</category><category>跨平台</category><category>LayoutBuilder</category></item><item><title>一只时钟，多种意义：Ticker、AnimationController 与 Tween 动效架构</title><link>https://websun.test/blog/flutter-animation-ticker-controller-tween/</link><guid isPermaLink="true">https://websun.test/blog/flutter-animation-ticker-controller-tween/</guid><description>拆开 Flutter 显式动画的时钟、进度、映射与渲染职责，处理生命周期、中断、可访问性和多属性编排，而不是堆叠控制器。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>Flutter</category><category>AnimationController</category><category>Ticker</category><category>Tween</category><category>动效架构</category></item><item><title>加载不是一个布尔值：Flutter 异步 UI、状态与错误恢复</title><link>https://websun.test/blog/flutter-async-ui-error-recovery/</link><guid isPermaLink="true">https://websun.test/blog/flutter-async-ui-error-recovery/</guid><description>用数据、运行阶段、请求身份和可恢复错误建模 Flutter 异步界面，处理 FutureBuilder、刷新保留、竞态、重试、一次性副作用与全局错误边界。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>Flutter</category><category>异步 UI</category><category>状态管理</category><category>错误恢复</category><category>FutureBuilder</category></item><item><title>几何交给 Canvas，颜色交给 GPU：CustomPainter 与 Fragment Shader</title><link>https://websun.test/blog/flutter-custom-painter-fragment-shader/</link><guid isPermaLink="true">https://websun.test/blog/flutter-custom-painter-fragment-shader/</guid><description>用 CustomPainter 管理几何与重绘边界，用 FragmentProgram 和 FragmentShader 生成像素颜色，并为交互、性能、语义和后端差异设计降级。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>Flutter</category><category>CustomPainter</category><category>FragmentShader</category><category>Canvas</category><category>GPU</category></item><item><title>别盯着平均 FPS：用 DevTools、帧预算与证据链定位 Flutter 性能</title><link>https://websun.test/blog/flutter-devtools-frame-budget-performance/</link><guid isPermaLink="true">https://websun.test/blog/flutter-devtools-frame-budget-performance/</guid><description>从可复现动作、profile 真机录制、UI/Raster 慢帧分类，到 CPU、布局、绘制、内存与单变量回归，建立可审计的 Flutter 性能定位流程。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>Flutter</category><category>DevTools</category><category>性能分析</category><category>帧预算</category><category>Timeline</category></item><item><title>从 Widget 到像素：Flutter 3.44 渲染链路与 Impeller</title><link>https://websun.test/blog/flutter-rendering-pipeline-impeller/</link><guid isPermaLink="true">https://websun.test/blog/flutter-rendering-pipeline-impeller/</guid><description>沿着 Widget、Element、RenderObject、Layer、Scene 与 Impeller 逐层追踪一帧，建立定位 Flutter 构建、布局、绘制和栅格问题的责任地图。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>Flutter</category><category>Impeller</category><category>渲染管线</category><category>性能</category></item><item><title>不只是一条长列表：用 Sliver 组织编辑式滚动布局</title><link>https://websun.test/blog/flutter-sliver-editorial-layout/</link><guid isPermaLink="true">https://websun.test/blog/flutter-sliver-editorial-layout/</guid><description>从 Viewport 的约束与几何协议出发，把标题、章节、列表、网格和留白编排进同一滚动叙事，同时保留懒加载、语义与滚动位置。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>Flutter</category><category>Sliver</category><category>CustomScrollView</category><category>滚动布局</category><category>编辑设计</category></item><item><title>Canvas、Shader 与视觉效果：先选择渲染边界，再追求像素</title><link>https://websun.test/blog/swiftui-canvas-shader-visual-effects/</link><guid isPermaLink="true">https://websun.test/blog/swiftui-canvas-shader-visual-effects/</guid><description>区分语义 View、Canvas 即时绘制和 SwiftUI Shader，建立可降级、可访问并能用 Instruments 验证的视觉效果管线。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>SwiftUI</category><category>Canvas</category><category>Metal Shader</category><category>VisualEffect</category></item><item><title>Dynamic Type、VoiceOver 与 Reduce Motion：把无障碍做成系统能力</title><link>https://websun.test/blog/swiftui-dynamic-type-voiceover-reduce-motion/</link><guid isPermaLink="true">https://websun.test/blog/swiftui-dynamic-type-voiceover-reduce-motion/</guid><description>从语义结构、可重排布局和运动替代方案出发，为 SwiftUI 建立贯穿设计、实现与测试的无障碍工程闭环。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>SwiftUI</category><category>Accessibility</category><category>Dynamic Type</category><category>VoiceOver</category><category>Reduce Motion</category></item><item><title>SwiftUI Instruments 与 Cause &amp; Effect：从卡顿症状追到更新源头</title><link>https://websun.test/blog/swiftui-instruments-cause-effect/</link><guid isPermaLink="true">https://websun.test/blog/swiftui-instruments-cause-effect/</guid><description>用 Xcode 26 SwiftUI Instrument、Cause &amp; Effect Graph 与对照录制定位长更新、高频失效和不必要依赖。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>SwiftUI</category><category>Instruments</category><category>Cause and Effect</category><category>性能分析</category></item><item><title>Layout Protocol 深潜：把提议、测量与放置写成可验证算法</title><link>https://websun.test/blog/swiftui-layout-protocol-custom-layout/</link><guid isPermaLink="true">https://websun.test/blog/swiftui-layout-protocol-custom-layout/</guid><description>从 SwiftUI 的尺寸协商出发，实现带缓存的流式标签布局，并处理未指定尺寸、边界原点、布局切换和常见性能陷阱。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>SwiftUI</category><category>Layout</category><category>自定义布局</category><category>性能</category></item><item><title>NavigationStack 系统设计：让深链与状态恢复共享一条路由管线</title><link>https://websun.test/blog/swiftui-navigationstack-deep-link-restoration/</link><guid isPermaLink="true">https://websun.test/blog/swiftui-navigationstack-deep-link-restoration/</guid><description>用轻量 Route 数组驱动 NavigationStack，把 URL 解析、业务校验、场景恢复与失效降级统一成可测试的导航状态。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>SwiftUI</category><category>NavigationStack</category><category>Deep Link</category><category>状态恢复</category></item><item><title>Observation、State 与数据流：先确定所有权，再谈刷新</title><link>https://websun.test/blog/swiftui-observation-state-data-flow/</link><guid isPermaLink="true">https://websun.test/blog/swiftui-observation-state-data-flow/</guid><description>用“谁拥有、谁读取、谁写入”三个问题，建立 SwiftUI Observation 的可扩展数据流，并厘清 State、Bindable、Environment 与旧式 ObservableObject 的边界。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>SwiftUI</category><category>Observation</category><category>State</category><category>数据流</category></item><item><title>Scroll Transition 与滚动视觉：把几何留在渲染路径</title><link>https://websun.test/blog/swiftui-scroll-transition-performance/</link><guid isPermaLink="true">https://websun.test/blog/swiftui-scroll-transition-performance/</guid><description>用 scrollTransition 和 visualEffect 构建位置驱动视觉，同时避免 GeometryReader 写回、身份抖动与 lazy 容器估算失真。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>SwiftUI</category><category>ScrollTransition</category><category>VisualEffect</category><category>滚动性能</category></item><item><title>Transaction、Phase 与 Keyframe：为 SwiftUI 动画选择正确的时间模型</title><link>https://websun.test/blog/swiftui-transaction-phase-keyframe-animation/</link><guid isPermaLink="true">https://websun.test/blog/swiftui-transaction-phase-keyframe-animation/</guid><description>从状态更新事务出发，区分普通动画、PhaseAnimator 与 KeyframeAnimator，并处理多轨时间、打断、每帧成本和 Reduce Motion。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>SwiftUI</category><category>Animation</category><category>Transaction</category><category>KeyframeAnimator</category></item><item><title>Astro 多页面 View Transitions：把页面切换与运行时清理放进同一条生命周期</title><link>https://websun.test/blog/web-motion-astro-view-transitions/</link><guid isPermaLink="true">https://websun.test/blog/web-motion-astro-view-transitions/</guid><description>区分浏览器原生跨文档过渡与 Astro ClientRouter，设计可回退的页面快照、脚本重挂载和精确 cleanup。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>Astro</category><category>View Transitions</category><category>ClientRouter</category><category>Motion Runtime</category></item><item><title>GSAP × Astro ClientRouter：让每次切页都有初始化与精确清理</title><link>https://websun.test/blog/web-motion-gsap-astro-client-router-lifecycle/</link><guid isPermaLink="true">https://websun.test/blog/web-motion-gsap-astro-client-router-lifecycle/</guid><description>把 GSAP context、matchMedia 与 Astro 路由事件组合成页面级动效作用域，解决重复监听、残留 ScrollTrigger 和切页后脚本失效。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>GSAP</category><category>Astro</category><category>ClientRouter</category><category>ScrollTrigger</category><category>Motion Runtime</category></item><item><title>RAF、Observer 与 Page Visibility：把网页动效变成可治理运行时</title><link>https://websun.test/blog/web-motion-raf-observer-visibility-governance/</link><guid isPermaLink="true">https://websun.test/blog/web-motion-raf-observer-visibility-governance/</guid><description>用单一帧时钟、Intersection/Resize Observer、页面可见性和统一 cleanup 管理动效，消除离屏 RAF、布局抖动与切页泄漏。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>requestAnimationFrame</category><category>IntersectionObserver</category><category>ResizeObserver</category><category>Page Visibility</category><category>Performance</category></item><item><title>Web 动效基础：从意图、缓动到合成层的完整工程模型</title><link>https://websun.test/blog/web-motion-rendering-easing-properties/</link><guid isPermaLink="true">https://websun.test/blog/web-motion-rendering-easing-properties/</guid><description>用渲染管线、属性成本、时间函数和可清理运行时建立 Web 动效基础，避免把 GPU、60 FPS 与 will-change 当成魔法词。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>Web Motion</category><category>Rendering Pipeline</category><category>CSS Animations</category><category>Web Animations API</category><category>Performance</category></item><item><title>CSS Scroll-driven Animations：把滚动变成时间线，而不是主线程事件洪水</title><link>https://websun.test/blog/web-motion-scroll-driven-progressive-enhancement/</link><guid isPermaLink="true">https://websun.test/blog/web-motion-scroll-driven-progressive-enhancement/</guid><description>区分 scroll progress 与 view progress timeline，用 @supports、静态内容和 IntersectionObserver 建立可回退的滚动动效。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>CSS</category><category>Scroll-driven Animations</category><category>Scroll Timeline</category><category>Progressive Enhancement</category></item><item><title>Three.js Shader Typography：从可读 DOM 到可回收的 GPU 字体系统</title><link>https://websun.test/blog/web-motion-three-shader-typography-dom-fallback/</link><guid isPermaLink="true">https://websun.test/blog/web-motion-three-shader-typography-dom-fallback/</guid><description>以语义文字为基础、Three.js 着色器为增强，完整设计字形来源、纹理清晰度、交互坐标、上下文丢失、性能测量与 DOM 回退。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>Three.js</category><category>Shader Typography</category><category>WebGL</category><category>Progressive Enhancement</category><category>Accessibility</category></item><item><title>Variable Font 作为交互系统：从字体轴到指针运行时</title><link>https://websun.test/blog/web-motion-variable-font-interaction-system/</link><guid isPermaLink="true">https://websun.test/blog/web-motion-variable-font-interaction-system/</guid><description>用字体轴合同、CSS 高层属性、帧合并输入和静态回退构建可读、可操作且可测量的变量字体交互。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>Variable Fonts</category><category>Typography</category><category>Pointer Events</category><category>CSS Fonts</category></item><item><title>WebGPU 能力检测、兼容性与降级：不要把 navigator.gpu 当成绿灯</title><link>https://websun.test/blog/web-motion-webgpu-capability-fallback/</link><guid isPermaLink="true">https://websun.test/blog/web-motion-webgpu-capability-fallback/</guid><description>从安全上下文、adapter、features、limits、device lost 到 WebGL/Canvas/DOM 回退，建立不依赖 UA 猜测的 WebGPU 渐进增强路径。</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>WebGPU</category><category>Capability Detection</category><category>Progressive Enhancement</category><category>GPU</category><category>Browser Compatibility</category></item></channel></rss>