{"pageContext":{"index":363,"total":364,"name":"2026-04-18","items":[{"node":{"frontmatter":{"title":"Animata：近200个动画React组件","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"frontend","url":"https://github.com/codse/animata","author":"Codse","translator":"","tags":["react"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"GitHub 推出堆叠 PR（Stacked PRs） 及配套 CLI 工具 gh stack","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"devops","url":"https://github.github.com/gh-stack/","author":"github","translator":"","tags":["git"],"priority":1},"html":"<p>gh‑stack 是 GitHub 官方推出、用于实现<strong>堆叠 Pull Request（Stacked PRs）</strong>的原生工具与工作流，形成线性依赖栈（stack），并自动处理分支间的依赖关系、级联变基（rebase）与合并流程；<strong>通俗说</strong>就是把原本又大又难 review 的代码拆成一串“糖葫芦 PR”，每个小 PR 依赖前一个，修改或合并其中任意一个，后续 PR 会<strong>自动同步更新、解决冲突</strong>， reviewer 可以逐个轻松评审，不再面对巨型 PR，GitHub 网页端还能直观看到依赖结构，CLI 用 <code class=\"language-text\">gh stack</code> 即可一键管理整条提交链，彻底解决传统多分支依赖混乱、冲突频发、合并繁琐的痛点。</p>"}},{"node":{"frontmatter":{"title":"MDN 前端重构 - Web Components,自定义服务端组件,按需加载","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"javascript","url":"https://developer.mozilla.org/en-US/blog/mdn-front-end-deep-dive/","author":"avatarLeo McArdle","translator":"","tags":["other"],"priority":1},"html":"<p>旧版系统基于 eject 后的Create React App与Webpack搭建，长期积累大量技术债：React仅作为静态内容外壳，通过<code class=\"language-text\">dangerouslySetInnerHTML</code>插入文档，与原生DOM逻辑分裂，开发启动耗时近两分钟，热更新与SSR调试体验极差。样式层面采用Sass与CSS变量混用，无作用域隔离，全量加载巨型CSS包，资源冗余严重，首屏渲染与交互性能持续劣化。</p>\n<p>为此，MDN团队彻底抛弃重型SPA思路，转向<strong>Lit+Web Components+自研服务端组件</strong>的现代化方案。交互模块封装为原生自定义元素，借助声明式Shadow DOM实现服务端直出与样式隔离，避免布局偏移与客户端重复渲染。服务端组件仅在Node环境运行，不向客户端下发JS，通过统一基类实现组件依赖自动追踪，配合Rspack构建映射关系，在渲染时精准注入当前页面所需CSS，从根源消除冗余资源。构建工具切换为Rspack后，启动时间从分钟级降至秒级，开发效率大幅提升。</p>\n<p>同时团队以Baseline标准作为兼容性依据，按需引入Polyfill，实现严格渐进增强：无JS环境仍可正常展示内容，JS加载后自动升级交互能力。整体架构回归以文档为核心、交互为孤岛的轻量化模式，兼顾性能、可维护性与Web标准一致性，彻底解决旧架构维护困难、性能低下、开发体验糟糕的核心问题。</p>\n<p><a href=\"https://github.com/mdn/fred/blob/main/components/server/index.js\">服务端源码</a></p>"}},{"node":{"frontmatter":{"title":"OWASP npm 安全速查清单","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"nodejs","url":"https://cheatsheetseries.owasp.org/cheatsheets/NPM_Security_Cheat_Sheet.html","author":"owasp","translator":"","tags":["npm"],"priority":1},"html":"<p>避免发布时泄露密钥，合理使用 .npmignore 与 package.json 的 files 字段并通过 --dry-run 校验；强制锁定依赖版本，使用 npm ci 确保确定性安装；禁用第三方包的生命周期脚本以防范恶意执行，必要时通过白名单工具放行合法脚本；定期用 npm outdated 和 npm doctor 检查依赖与环境健康；持续审计开源依赖漏洞并生成 SBOM；搭建私有 npm 代理 registry 实现制品管控与依赖缓存；遵循负责任披露流程、为账号开启 2FA、合理管理发布令牌；防范拼写劫持（typosquatting）与 AI 幻觉包攻击（slopsquatting）；采用 OIDC 可信发布提升发包安全；使用作用域包与私有 registry 防止依赖混淆攻击，全面降低 npm 生态下的供应链安全风险。</p>"}},{"node":{"frontmatter":{"title":"Google宣布将后退按钮劫持正式纳入搜索垃圾政策","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"frontend","url":"https://developers.google.com/search/blog/2026/04/back-button-hijacking","author":"Chris Nelson","translator":"","tags":["google"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"React Native为 iPad 复刻经典电子乐器Omnichord","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"mobile","url":"https://spin.atomicobject.com/recreate-omnichord-for-ipad/","author":"Georgia Martinez","translator":"","tags":["react native"],"priority":1},"html":"<p><a href=\"https://github.com/georgia-martinez/omnichord\">源码</a>\n这篇文章作者Georgia Martinez分享了如何用<strong>React Native</strong>为iPad复刻经典电子乐器<strong>Omnichord</strong>的完整过程。作者因原版设备昂贵，决定结合编程与音乐爱好自制App，技术栈选用React Native以快速开发iPad版本。音频通过React Native Audio API编程生成，采用三角波+双正弦波叠加、轻微失谐与低通滤波还原复古音色，并用ADSR包络塑造扫弦质感。和弦逻辑用TypeScript建模，通过枚举与音程映射实现大三、小三、七和弦等构建，扫弦板则按12段区域生成上升琶音。UI基于React Native Gesture Handler实现多点触控和弦按钮与滑动扫弦交互，支持组合按键触发复合和弦。项目已完成核心功能Demo，后续可扩展音量、音色、节奏等，源码已开源至GitHub。</p>"}},{"node":{"frontmatter":{"title":"一款让你亲手构建 GPU 的游戏","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"devops","url":"https://jaso1024.com/mvidia/","author":"jaso1024.com","translator":"","tags":["other"],"priority":1},"html":"<p>这篇文章介绍了一个名为“Build a GPU”的编程教育游戏，玩家通过逐步构建一个简化的GPU（图形处理单元）来学习计算机图形学和硬件原理。游戏采用渐进式教学方式，从基础的像素绘制开始，逐步引入光栅化、着色器、纹理映射、深度缓冲等核心GPU概念，并提供实时可视化反馈和可运行的代码编辑器，让玩家在实践中理解GPU如何将3D场景渲染为2D图像。项目开源，使用Web技术（如WebAssembly和Canvas）实现，强调动手实践与底层原理结合，目标是降低图形学和并行计算的学习门槛。</p>"}},{"node":{"frontmatter":{"title":"TanStack Start 推出的全新 React Server Components 实现方案","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"nodejs","url":"https://tanstack.com/blog/react-server-components","author":"Manuel Schiller, Tanner Linsley, and Jack Herrington","translator":"","tags":["react"],"priority":1},"html":"<p>传统RSC（如Next.js App Router）采用服务端优先模式，服务端掌控组件树，开发者需全盘接受框架规则，灵活性不足。而TanStack Start将RSC视为可获取、可缓存、可渲染的React Flight数据流，由客户端决定其获取、缓存和渲染方式，不封装黑盒规则。\n方案提供3个极简原生API，实现服务端转流与客户端解码，兼容现有工具链，可在服务端任意位置创建RSC，缓存方式自由，支持TanStack Query精细控制、Router自动缓存及CDN层缓存。同时弃用<code class=\"language-text\">use server</code>，改用<code class=\"language-text\">createServerFn</code>显式RPC调用，强化安全，规避主流RSC框架相关漏洞。\n该方案支持全场景架构，RSC完全可选，可适配纯客户端、混合、偏静态、纯静态等多种模式。实测显示，内容密集页（博客、文档）收益显著，gzip体积减少约153KB，性能大幅提升，但对客户端交互为主的页面优化有限。\n创新的Composite Components让服务端渲染固定UI并预留插槽，客户端填充交互内容，实现两端解耦。目前该功能处于实验性阶段，虽API可能优化，但已能灵活适配各类应用需求，践行“开发者掌控应用架构”的理念。</p>"}},{"node":{"frontmatter":{"title":"Little Snitch for Linux - 一款基于eBPF的开源网络监控工具","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"devops","url":"https://obdev.at/products/littlesnitch-linux/index.html","author":"Objective Development Software GmbH","translator":"","tags":["other"],"priority":1},"html":"<p>本文介绍了Little Snitch for Linux——一款面向Linux系统的网络连接监控与控制工具。该工具基于eBPF技术，通过内核级钩子实时监控应用程序的网络活动，使用户能够可视化地查看哪些应用正在连接哪些服务器、按需阻止未授权连接，并跟踪历史流量与数据量。它提供直观的Web界面（默认运行在<a href=\"http://localhost:3031/%EF%BC%89%EF%BC%8C%E6%94%AF%E6%8C%81%E6%8E%92%E5%BA%8F%E3%80%81%E8%BF%87%E6%BB%A4%E3%80%81%E6%97%B6%E9%97%B4%E8%8C%83%E5%9B%B4%E7%BC%A9%E6%94%BE%E7%AD%89%E4%BA%A4%E4%BA%92%E5%8A%9F%E8%83%BD%EF%BC%9B%E5%86%85%E7%BD%AE%E8%87%AA%E5%8A%A8%E6%9B%B4%E6%96%B0%E7%9A%84%E5%A4%9A%E6%A0%BC%E5%BC%8F%E5%9F%9F%E5%90%8D/%E4%B8%BB%E6%9C%BA/IP%E5%9D%97%E5%88%97%E8%A1%A8%EF%BC%88%E5%A6%82Hagezi%E3%80%81Steven\">http://localhost:3031/），支持排序、过滤、时间范围缩放等交互功能；内置自动更新的多格式域名/主机/IP块列表（如Hagezi、Steven</a> Black等知名列表），也支持细粒度自定义规则（按进程、端口、协议等）。安全方面，默认仅限本地访问，但可配置身份验证和TLS以防范本地恶意程序篡改。配置通过覆盖文本文件（如web_ui.toml、main.toml）实现，强调灵活性与可定制性。需注意其设计目标是隐私监控而非高保障安全防护：受限于eBPF的存储与复杂度限制，无法像macOS版那样进行深度包检测，在高负载下可能出现进程/IP映射不准确等问题，因此适用于阻止“电话回家”等常规隐私泄露行为，而不适用于对抗高级持续性威胁。</p>"}},{"node":{"frontmatter":{"title":"微软无预警终止开发者驱动签名账户导致VeraCrypt项目更新困难","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"javascript","url":"https://sourceforge.net/p/veracrypt/discussion/general/thread/9620d7a4b3/","author":"Mounir IDRASSI","translator":"","tags":["other"],"priority":1},"html":"<p>VeraCrypt项目核心开发者Mounir IDRASSI发布项目更新，通报其长期使用的Microsoft账户被无预警、无解释地终止，该账户用于Windows驱动程序和引导加载程序的数字签名。由于Microsoft拒绝提供申诉渠道且仅给予自动化回复，IDRASSI无法继续为Windows平台发布经合法签名的VeraCrypt更新，严重影响项目发展（因Windows用户占绝大多数），尽管Linux和macOS版本仍可正常更新。社区迅速响应，通过社交媒体曝光、联系媒体、寻求行业人士协助等方式推动事件进展；最终微软副总裁Scott Hanselman主动联系并协调内部团队介入处理，目前问题出现积极转机。讨论中还涉及未签名或即将过期证书对Secure Boot及系统/非系统卷加密的影响，并确认非系统卷使用不受影响，但系统加密将面临严重障碍。</p>"}},{"node":{"frontmatter":{"title":"officeParser - 多种office办公文件格式解析nodejs库","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"nodejs","url":"https://github.com/harshankur/officeParser","author":"Harsh Ankur","translator":"","tags":["office"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"前段项目的垂直目录结构","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"frontend","url":"https://tkdodo.eu/blog/the-vertical-codebase","author":"Dominik","translator":"","tags":["react"],"priority":1},"html":"<p>这篇文章指出传统前端项目按组件、钩子、工具、类型等技术类型划分的<strong>水平式代码结构</strong>，在项目变大后会导致目录臃肿、相关代码分散、维护跳转频繁、耦合严重且难以划分职责，而按业务功能领域组织的<strong>垂直代码架构</strong>，将同一功能的组件、逻辑、类型、工具等全部内聚在一个目录下，能大幅减少文件跳转、提升代码内聚性、降低耦合，更适配团队协作与项目扩展，同时通过明确公共接口避免随意引用，是更适合长期维护的稳健架构方式。</p>"}},{"node":{"frontmatter":{"title":"pompelmi - 开元反病毒软件calmAV的nodejs封装","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"nodejs","url":"https://github.com/pompelmi/pompelmi?tab=readme-ov-file","author":"pompelmi","translator":"","tags":["other"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"x-win - 获取Windows、MacOS和Linux上活跃和打开窗口的精确信息","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"nodejs","url":"https://github.com/miniben-90/x-win","author":"miniben-90","translator":"","tags":["other"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"GuppyLM - 完整展示从数据生成到推理部署的整个LLM工作流程","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"AI","url":"https://github.com/arman-bd/guppylm","author":"arman-bd","translator":"","tags":["other"],"priority":1},"html":"<p>GuppyLM是一个约900万参数的微型语言模型，由开发者arman-bd创建，旨在以通俗易懂的方式揭示大语言模型（LLM）的工作原理。该项目完全从零开始构建，包含数据生成（60K条合成对话，覆盖60个水族箱相关主题）、BPE分词器、极简版vanilla transformer架构（6层、384隐藏维度、6头注意力、ReLU前馈网络）、训练循环及推理接口，全部可在单块GPU（如Colab T4）上5分钟内完成训练。模型被设计为扮演一条名叫Guppy的小鱼，用简短、小写、具象化的句子谈论水、食物、气泡、温度等有限概念，刻意回避人类抽象概念（如政治、手机），从而突出模型能力边界与设计意图。项目支持多种使用方式：浏览器端WebAssembly实时聊天（无需安装，10MB量化ONNX模型）、Colab交互式聊天、本地命令行运行，甚至允许用户自行训练。其核心哲学是“去魔法化”——证明训练一个可工作、可理解的LLM无需博士学位或庞大算力，只需一个Jupyter Notebook和基本编程能力。</p>"}},{"node":{"frontmatter":{"title":"AI Edge Gallery - 开源的运行于iOS上的本地Gemma 4","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"mobile","url":"https://apps.apple.com/nl/app/google-ai-edge-gallery/id6749645337","author":"Google","translator":"","tags":["AI"],"priority":1},"html":"<p>AI Edge Gallery 是一款由 Google 开发的 iOS 应用程序，专为在 iPhone 等移动设备上本地运行开源大语言模型（LLM）而设计，强调完全离线、隐私保护和高性能。该应用最新版本正式支持 Google 全新发布的 Gemma 4 模型家族，成为其核心亮点。主要功能包括：Agent Skills（通过维基百科查询、交互式地图、可视化摘要卡等工具扩展模型能力，并支持从 GitHub 社区加载自定义技能）；AI Chat 中新增的 Thinking Mode（可直观查看模型分步推理过程，目前仅限 Gemma 4 等支持模型）；Ask Image（利用多模态能力识别物体、解视觉谜题或描述图像）；Audio Scribe（实时语音转录与翻译）；Prompt Lab（精细调节温度、top-k 等参数进行提示词测试）；Mobile Actions 和 Tiny Garden（基于 FunctionGemma 270m 微调的离线设备控制与趣味自然语言花园游戏）；以及完整的模型管理与硬件基准测试功能。所有 AI 推理均在设备端完成，无需联网，确保数据零上传。该应用为开源项目，面向开发者与 AI 爱好者，源码托管于 GitHub。需 iOS 17.0 或更高版本，应用大小为 35.4 MB，评级为 13+。</p>"}},{"node":{"frontmatter":{"title":"AI是强大的实现加速器但绝不能替代工程师核心领域的专业决策能力","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"AI","url":"https://lalitm.com/post/building-syntaqlite-ai/","author":"Lalit Maganti","translator":"","tags":["other"],"priority":1},"html":"<p>这篇文章是软件工程师Lalit Maganti撰写的深度反思性技术随笔，详细记录了他如何利用AI编程工具（特别是Claude Code）在三个月内完成一个原本计划搁置八年的SQLite开发者工具项目syntaqlite。作者长期在Google参与Perfetto项目，深感SQLite缺乏高质量的开发工具（如格式化器、语法检查器和语言服务器），但因其技术难度高（需精确解析SQLite无正式规范的400多条语法规则，且需从C语言源码中提取解析器）、工作量大且枯燥，一直未能启动。2025年底，随着AI编码代理能力显著提升，他决定尝试\"全AI驱动开发\"，初期采用\"vibe-coding\"方式让AI主导设计与实现，结果产出500多个测试但代码结构混乱、难以维护，最终全部推倒重来。第二阶段他转变策略：自己掌控所有架构决策，将AI降级为\"超级自动补全\"，严格审查每行代码、强化测试（尤其是与SQLite上游测试对齐）、并迁移到Rust以提升可维护性。文章系统分析了AI在不同场景下的价值与局限：在已知领域（如生成具体函数）极大提升效率；在学习新领域（如Wadler-Lindig排版算法）充当优秀导师；但在核心架构设计、API设计等需要历史经验、审美判断和人类直觉的领域则表现糟糕甚至有害。作者坦诚揭示了使用AI的代价：成瘾性、认知脱节、设计拖延、虚假安全感及对时间维度的缺失，并强调AI是强大的实现加速器，但绝不能替代工程师的设计思维与技术判断力。</p>"}},{"node":{"frontmatter":{"title":"告别 SIGSEGV：VisionCamera V5利用Nitro Modules重塑稳定性","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"mobile","url":"https://blog.margelo.com/whats-new-in-visioncamera-v5","author":"Marc Rousavy","translator":"","tags":["react native"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"Caveman - 压缩AI编程助手输出token而不损失技术准确性的开源工具","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"other","url":"https://github.com/JuliusBrussee/caveman","author":"JuliusBrussee","translator":"","tags":["other"],"priority":1},"html":"<p>Caveman是一个由JuliusBrussee开发的开源项目，旨在通过模仿\"原始人式\"极简语言风格（如\"New object ref each render. Inline object prop = new ref = re-render. Wrap in useMemo.\"）来大幅减少大语言模型（LLM）输出的token数量，同时保持100%的技术准确性。该项目作为Claude Code、Codex、Gemini CLI等多种AI编程助手的插件/技能，提供Lite/Full/Ultra和文言文四种强度模式，平均可节省约65-75%的输出token，提升响应速度约3倍，并降低使用成本。它还包含caveman-commit（简洁提交信息）、caveman-review（单行代码审查）、caveman-compress（输入文本压缩）等实用功能，并支持跨40+种AI代理平台的一键安装。项目强调\"技术实质不变，仅去除冗余表达\"，并经过严格基准测试和评估验证其效果。</p>"}},{"node":{"frontmatter":{"title":"前端 AI 为什么拉胯","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"frontend","url":"https://nerdy.dev/why-ai-sucks-at-front-end","author":"Adam Argyle","translator":"","tags":["AI"],"priority":1},"html":"<p>文章指出AI在前端开发领域表现糟糕，并非工具不够强大，而是前端工作本身的<strong>高语境、强视觉、强交互、强工程约束</strong>与大模型的能力存在本质矛盾：AI只能基于文本token生成模板化、表面化的代码，无法真正“看见”设计稿、理解像素级布局与视觉意图，不具备浏览器渲染与交互行为的实时感知，也难以处理复杂状态管理、性能优化、无障碍规范、跨浏览器兼容、响应式边界、动画时序与用户体验细节；同时，前端需求高度依赖业务逻辑、历史代码上下文、设计系统一致性和隐性工程规则，而大模型训练数据滞后、易产生幻觉、缺乏长期架构思维，只能完成简单复制粘贴式任务，无法胜任真实项目中需要判断、权衡、调试与迭代的高质量前端开发工作，因此在实际工程中远不如人类开发者可靠。</p>"}},{"node":{"frontmatter":{"title":"山姆·阿尔特曼或将掌控我们的未来——他值得信赖吗？","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"AI","url":"https://www.newyorker.com/magazine/2026/04/13/sam-altman-may-control-our-future-can-he-be-trusted","author":"Ronan Farrow and Andrew Marantz","translator":"","tags":["other"],"priority":1},"html":"<p>这篇文章是《纽约客》发表的深度调查报道，详细揭示了OpenAI首席执行官山姆·阿尔特曼（Sam Altman）在2023年被董事会突然解雇又迅速复职的“闪变事件”（the Blip）全过程，并深入挖掘了其长期存在的信任危机。报道基于对上百名知情人士的采访、大量内部文件（包括伊利亚·苏茨克维秘密撰写的70页指控备忘录）、会议记录、短信和法庭证词，系统性地呈现了阿尔特曼被多位核心同事——尤其是前首席科学家苏茨克维、安全主管简·莱克、董事会成员海伦·托纳和塔莎·麦考利——质疑其诚信与领导能力的证据链。这些指控涵盖系统性撒谎、隐瞒安全漏洞（如印度版ChatGPT未经安全审查即上线）、违背关键承诺（如“合并与援助”条款、超对齐团队资源承诺）、操纵董事会与员工、以及将商业利益凌驾于AI安全使命之上。文章还追溯了阿尔特曼早年在Loopt和Y Combinator时期就已显现的夸大倾向与信任问题，并详述了他如何在被解雇后凭借强大人脉（微软、Airbnb创始人等）发动一场精心策划的公关与政治反击战，最终迫使董事会集体辞职，由其亲信（萨默斯、泰勒）组建新董事会并主导一场缺乏透明度的内部审查，最终使其全身而退。报道进一步指出，阿尔特曼的权力扩张并未止步：他推动OpenAI转向营利模式、与沙特、阿联酋等威权国家建立巨额合作（如Stargate计划），深度介入美国国防项目（取代Anthropic成为五角大楼AI供应商），同时大幅弱化甚至解散核心安全团队，导致公司从“确保AGI造福全人类”的初心，滑向以产品、营收和地缘政治影响力为优先的轨道。文章最后警示，当AI技术日益渗透军事、政治与社会肌理，一个被广泛质疑其诚信、且不受有效制衡的个体，正掌握着可能决定人类文明未来的巨大权力。</p>"}},{"node":{"frontmatter":{"title":"将 Mac OS X(10.0) 移植到任天堂 Wii","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"mobile","url":"https://bryankeller.github.io/2026/04/08/porting-mac-os-x-nintendo-wii.html","author":"Bryan Keller","translator":"","tags":["other"],"priority":1},"html":"<p>本文详细记录了开发者Bryan Keller将Mac OS X 10.0（Cheetah）原生移植到任天堂Wii游戏主机的全过程。文章首先分析了Wii硬件（PowerPC 750CL处理器、88MB混合内存架构）与早期PowerPC Mac的兼容性，确认其理论上可行；接着阐述了移植策略：放弃移植Open Firmware和BootX，而是从零编写定制引导程序（基于ppcskel），实现内核加载、设备树构建与启动参数传递；随后重点描述了三大技术挑战的攻克：1）内核补丁——修改XNU内核的BAT内存映射、重定向调试输出、适配Wii内存布局；2）驱动开发——创建Hollywood SoC主驱动，继而开发SD卡存储驱动（利用Starlet协处理器IPC通信）、双缓冲帧缓冲驱动（解决Wii YUV视频编码与Mac OS RGB数据的色彩不兼容问题）；3）USB支持——通过伪造IOPCIDevice节点、逆向分析并修补IOUSBFamily驱动（最终获取Cheetah源码）实现键盘鼠标输入。项目最终成功实现了从SD卡启动、完整GUI界面显示及交互式桌面运行，使Wii成为一台功能完备的Mac OS X计算机。</p>"}},{"node":{"frontmatter":{"title":"极限实验安装几乎所有 Firefox 扩展","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"javascript","url":"https://jack.cab/blog/every-firefox-extension","author":"jack.cab","translator":"","tags":["other"],"priority":1},"html":"<p>作者通过 AMO API 爬取并处理分页、去重后，获得<strong>84235 个 Firefox 扩展</strong>，总计 49.3GB，并发现大量低质、恶意扩展与生态数据特征。通过批量写入配置目录实现强制安装，最终成功加载<strong>84194 个扩展</strong>，完成度 99.94%。实测中，超过 6000 个扩展已严重卡顿，全部加载后启动耗时约 40 分钟，扩展页加载 6 小时，内存占用 27–37GB，浏览器频繁崩溃、近乎瘫痪。实验以娱乐与压力测试为目的，直观展现了 Firefox 扩展机制在超大规模下的性能极限与实用性边界。</p>"}},{"node":{"frontmatter":{"title":"强烈反对强制App化趋势,网页版完全够用","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"mobile","url":"https://www.0xsid.com/blog/wont-download-your-app","author":"Sid","translator":"","tags":["other"],"priority":1},"html":"<p>文章以作者Sid的个人立场出发，批判了当前互联网服务普遍强制用户下载原生App而弱化甚至废弃网页版的趋势。作者指出，这种“应用优先”策略不仅侵犯用户自主权（如限制浏览器扩展、用户脚本、广告拦截等增强体验的能力），还常以暗黑模式（dark patterns）强化数据收集、推送通知和用户锁定；而多数App本质上只是封装API数据的“薄客户端”，却要求用户安装百兆级应用、授予敏感权限，实际功能却远不如网页版灵活可控。更讽刺的是，许多App在交互细节（如滚动惯性、手势响应、动画流畅度）上存在明显瑕疵，陷入“恐怖谷效应”，并未提供真正优越的原生体验。作者将此现象归结为“enshittification循环”：平台先靠开放网页积累用户，再故意降级网页体验以驱赶用户至App，最终将用户困在无法被广告屏蔽、更易被算法操控的封闭生态中——这一策略虽损害用户体验，却因提升留存率和商业指标而在企业内部获得正向激励。</p>"}},{"node":{"frontmatter":{"title":"嵌套 Promise 的真正用途","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"javascript","url":"https://blog.jcoglan.com/2026/03/23/uses-for-nested-promises/","author":"James Coglan","translator":"","tags":["other"],"priority":1},"html":"<p>本文重新探讨 JavaScript 嵌套 Promise 的价值，并回顾其早期函数式设计争议。Promise 的 <code class=\"language-text\">then</code> 会自动展平嵌套结构，虽易用却破坏了 <code class=\"language-text\">map</code> 与 <code class=\"language-text\">flatMap</code> 的严格分离，给类型与组合带来不便。作者在实现 EscoDB 的读写锁（RWLock）时发现，<strong>嵌套 Promise 是实现正确并发调度的关键</strong>。通过保留 <code class=\"language-text\">Promise&lt;Promise&lt;T&gt;&gt;</code> 结构，可让队列仅管理任务入队的原子性，而不等待任务执行，从而支持多读者并发；若被自动展平，则会退化为互斥锁，失去读写锁特性。文章最终指出：嵌套 Promise 代表<strong>发起异步但不等待</strong>的语义，在精细并发控制中不可或缺，自动展平并非在所有场景都最优。</p>"}},{"node":{"frontmatter":{"title":"阿耳忒弥斯II任务成功完成拍摄照片","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"other","url":"https://www.nasa.gov/gallery/lunar-flyby/","author":"NASA","translator":"","tags":["other"],"priority":1},"html":"<p>本文介绍了NASA阿耳忒弥斯II（Artemis II）任务期间宇航员在绕月飞行过程中拍摄的一系列历史性照片。这些于2026年4月6日（部分延至4月7-8日）拍摄的影像，是人类自阿波罗时代以来首次近距离飞越月球时获取的实景画面，涵盖月球远侧、地出（Earthrise）、地落（Earthset）、日食现象以及月表细节等珍贵场景。文中列举了数十张编号图像（如art002e009288、art002e016354等），展示了包括宇航员维克多·格洛弗（Victor Glover）、杰里米·汉森（Jeremy Hansen）、克里斯蒂娜·科赫（Christina Koch）和里德·威斯曼（Reid Wiseman）在内的乘组在猎户座飞船（Orion）内执行科学观测与摄影任务的过程，并特别强调此次飞越揭示了此前无人类亲眼见过的月球区域，同时致敬了1968年阿波罗8号的经典“地出”照片。文章还提及相关配套报道，如每日任务日程、科学官员介绍、发射倒计时及安全控制室支持等，凸显阿耳忒弥斯II作为载人重返月球关键验证任务的重要意义。</p>"}},{"node":{"frontmatter":{"title":"Project Glasswing - Anthropic牵头发起的全球性AI安全合作倡议","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"AI","url":"https://www.anthropic.com/glasswing","author":"Anthropic","translator":"","tags":["other"],"priority":1},"html":"<p>文章宣布启动“Project Glasswing”（玻璃翼计划），由Anthropic联合AWS、苹果、谷歌、微软、NVIDIA、Cisco、CrowdStrike、JPMorgan Chase、Linux基金会等十余家全球顶尖科技与安全机构共同发起，旨在利用前沿AI模型Claude Mythos Preview的超强代码分析与漏洞挖掘能力，主动防御AI时代日益严峻的网络安全威胁。该模型已自主发现数千个高危零日漏洞，涵盖所有主流操作系统、浏览器及关键开源项目（如27年未被发现的OpenBSD漏洞、16年未被检测出的FFmpeg漏洞、Linux内核提权链等），其能力远超此前最先进模型Claude Opus 4.6，在多项编程与安全评估基准（如CyberGym、SWE-bench系列）中显著领先。项目通过向合作伙伴及40多家关键基础设施组织提供Mythos Preview访问权限、总计1亿美元的API使用额度，以及400万美元对开源安全组织（如OpenSSF、Apache基金会）的直接捐赠，推动全行业协同开展自动化漏洞扫描、修复与安全加固。Anthropic强调，AI既带来攻击能力的“民主化”风险（使漏洞发现与利用门槛急剧降低），也提供了防御能力的“规模化跃升”机遇；因此必须立即行动，重构软件开发生命周期、漏洞披露机制、供应链安全标准及政府监管框架，确保AI赋能安全而非削弱安全。项目命名源自玻璃翼蝴蝶，寓意漏洞“隐形于无形”，也象征项目倡导的透明、协作与韧性。</p>"}},{"node":{"frontmatter":{"title":"推理工程（Inference Engineering）介绍","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"AI","url":"https://newsletter.pragmaticengineer.com/p/what-is-inference-engineering","author":"Gergely Orosz","translator":"","tags":["other"],"priority":1},"html":"<p>这篇文章核心介绍了<strong>推理工程（Inference Engineering）</strong>，它是大模型从训练完成到实际上线服务的关键环节，专注通过量化、KV缓存、推测解码、模型并行、预填充与解码分离部署等技术，优化模型推理的延迟、吞吐量与成本，解决开源大模型规模化落地时的性能与资源瓶颈，是当前AI产品化中决定服务速度、稳定性和性价比的核心工程能力。</p>"}},{"node":{"frontmatter":{"title":"插件收购变投毒：30 个 WordPress 插件集体被植入后门","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"devops","url":"https://anchor.host/someone-bought-30-wordpress-plugins-and-planted-a-backdoor-in-all-of-them/","author":"Austin Ginder","translator":"","tags":["git"],"priority":1},"html":"<p>买家Kris在Flippa以六位数价格收购Essential Plugin旗下30余款插件，于2025年8月在版本更新中植入PHP反序列化后门，潜伏8个月后于2026年4月激活，通过恶意模块下载后门文件、篡改wp-config.php，向Googlebot推送SEO垃圾链接，其控制域名通过以太坊智能合约解析，常规关停难以奏效。WordPress.org官方强制更新仅封堵插件通信，未清理已注入代码，随后永久关闭全部31个相关插件，作者账号被清空。此次攻击暴露插件所有权转让缺乏审核、代码监管滞后的信任漏洞，站长需自查插件、清理wp-config.php恶意代码并彻底移除后门模块。</p>"}},{"node":{"frontmatter":{"title":"真正的威胁不是AI而在于安于现状、逐渐丧失对自己所做之事的理解","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"other","url":"https://ergosphere.blog/posts/the-machines-are-fine/","author":"Minas Karamanis","translator":"","tags":["other"],"priority":1},"html":"<p>文章以虚构的两位博士生Alice和Bob为案例，深入探讨了AI大语言模型（LLM）在学术科研，特别是天体物理学领域中日益普及所带来的深层教育危机。Alice通过传统方式——反复阅读、手写笔记、自主编程、调试错误、亲手推导公式——在一年内完成了研究项目，虽过程艰难但构建了扎实的知识结构、物理直觉和独立思考能力；而Bob则全程依赖AI代理完成论文阅读摘要、方法解释、代码调试、写作甚至投稿，产出成果在形式上与Alice无异，却未经历任何认知建构过程，其理解能力并未实质性提升。作者指出，当前学术评价体系（重论文数量、期刊影响因子等可量化指标）完全无法区分二者，反而系统性地激励“认知外包”——将本应由人承担的思维训练过程让渡给机器。这并非技术故障，而是制度设计使然：学术机构真正需要的是可发表的“产品”，而非成长中的“科学家”。作者援引David Hogg的观点强调，天体物理学的本质价值不在于具体结果（如哈勃常数的精确值），而在于培养能思考复杂问题的人；一旦用AI绕过这一过程，科学就失去了不可替代的核心。更危险的是，这种退化并非戏剧性的崩溃，而是一种“舒适的漂移”——研究者逐渐丧失对自身工作的深层理解，仅知如何操作工具却不知其所以然。作者并非反对AI工具本身，而是坚决划清“工具辅助”（如查语法、格式）与“认知外包”（如代为推理、建模、诠释数据）的界限，并警示：真正的瓶颈从来不是模型能力，而是人类监督者是否具备那种经年累月“笨功夫”锤炼出的直觉与判断力；而这种能力，恰恰无法被加速或替代。</p>"}},{"node":{"frontmatter":{"title":"电子前沿基金会EFF因X平台影响力断崖式衰减与公共责任严重退化而主动退出","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"other","url":"https://www.eff.org/deeplinks/2026/04/eff-leaving-x","author":"Kenyatta Thomas","translator":"","tags":["other"],"priority":1},"html":"<p>电子前沿基金会（EFF）宣布将于2026年4月正式退出社交平台X（原Twitter），结束近二十年的运营。此举基于数据显著下滑：2018年每月获得5000万至1亿次曝光，而2024年月均仅约200万次，2025年全年总曝光仅约1300万次，单条帖文曝光量不足七年前的3%。EFF曾于2022年马斯克收购后提出三大改革诉求——透明内容审核（落实《圣克拉拉原则》）、真正端到端加密的私信安全、增强用户及开发者对体验的控制权，但这些承诺未被兑现；相反，人权团队被整体裁撤，多国本地化抗审查团队解散，平台公共价值严重退化。EFF同时解释其仍保留在Facebook、TikTok、Instagram等平台的原因：核心使命是服务最需要数字权利保护的边缘群体（如青年、有色人种、LGBTQ+社群、草根组织者），而这些人往往深度依赖主流平台进行互助、组织动员与信息传播（如堕胎基金用TikTok发布关键信息、小企业依靠Instagram获客），全面撤离既不现实也不公平；EFF在这些平台上的存在并非背书，而是持续揭露其算法偏见、监控广告和内容压制问题，并通过诉讼、立法倡导与直接交涉推动变革。未来，EFF将把资源集中于Bluesky、Mastodon、LinkedIn、Instagram、TikTok、Facebook、YouTube及自有网站eff.org，继续以实效为导向推进数字权利保护。</p>"}},{"node":{"frontmatter":{"title":"阅读任何代码前我常运行的 Git 命令","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"devops","url":"https://piechowski.io/post/git-commands-before-reading-code/","author":"Ally Piechowski","translator":"","tags":["git"],"priority":1},"html":"<p>这篇文章介绍了一种高效阅读陌生代码库的实用方法：在正式查看源码前，先通过几条 Git 命令对项目进行快速“体检”，以此判断代码维护状况、风险文件、团队贡献分布与开发节奏。具体可执行命令包括：查看近一年修改最频繁文件<code class=\"language-text\">git log --since=&quot;1 year ago&quot; --name-only --no-merges | grep -v &#39;^$&#39; | sort | uniq -c | sort -nr | head -20</code>，统计项目主要贡献者<code class=\"language-text\">git log --no-merges --format=&quot;%an&quot; | sort | uniq -c | sort -nr</code>，定位修复提交最多的问题文件<code class=\"language-text\">git log --since=&quot;1 year ago&quot; --no-merges -i --grep=&quot;fix\\|bug\\|issue&quot; --name-only | grep -v &#39;^$&#39; | sort | uniq -c | sort -nr | head -20</code>，查看月度提交活跃度<code class=\"language-text\">git log --no-merges --date=format:&quot;%Y-%m&quot; --format=&quot;%ad&quot; | sort | uniq -c</code>，以及检查回滚与热修复等救火式提交<code class=\"language-text\">git log --since=&quot;1 year ago&quot; --no-merges -i --grep=&quot;revert\\|hotfix\\|rollback&quot; --oneline</code>，借助这些命令能快速锁定高风险文件、过度依赖单人维护等隐患，让后续读代码更有针对性。</p>"}},{"node":{"frontmatter":{"title":"用 AI 视觉模型逛 Unicode 字符库","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"frontend","url":"https://charcuterie.elastiq.ch","author":"David Aerne","translator":"","tags":["AI"],"priority":1},"html":""}},{"node":{"frontmatter":{"title":"Claude Code 在 2 月更新后已无法胜任复杂的工程任务","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"AI","url":"https://github.com/anthropics/claude-code/issues/42796","author":"bcherny","translator":"","tags":["other"],"priority":1},"html":"<p>该GitHub Issue（#42796）是一份由资深工程师团队提交的深度技术分析报告，指控Anthropic在2026年2月推出的Claude Code模型更新（特别是\"redact-thinking-2026-02-12\"机制）导致其在复杂工程任务中严重退化。报告基于对6852个会话、17871个思考块和234760次工具调用的量化分析，指出从2月起模型的思考深度（estimated median thinking chars）骤降67%，3月全面启用思考内容屏蔽后质量急剧恶化。核心问题在于：模型放弃\"研究优先\"（read-before-edit）的工作流，转向\"编辑优先\"，导致大量未读代码即修改、违反项目规范、自我矛盾推理循环、频繁 prematurely stopping、滥用\"simplest fix\"策略等行为；配套的stop-hook脚本在3月8日后日均触发10次以上，而此前为零。报告还揭示了时间敏感性——5pm和7pm PST时段思考深度最低，暗示基础设施负载导致的动态配额而非固定预算；最终造成API请求量激增80倍、成本飙升122倍，却产出更差结果。作者呼吁Anthropic提供思考令牌透明度、分级服务及可监控的质量指标。</p>"}},{"node":{"frontmatter":{"title":"为提高舒适度而磨平MacBook边缘的过程","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"mobile","url":"https://kentwalters.com/posts/corners/","author":"kent walters","translator":"","tags":["other"],"priority":1},"html":"<p>这篇文章讲述了作者对其MacBook进行个性化改造的经历。由于MacBook的边缘设计非常锐利，给手腕带来了不适感，作者决定将这些尖角磨平。尽管这一举动可能会引起争议，但作者认为根据个人需求定制工具是很重要的。整个过程包括使用锉刀和砂纸逐步打磨，并且采取了保护措施以防止铝屑进入机器内部。最终，作者对改造后的效果感到满意，并鼓励其他人也尝试对自己的设备进行类似的修改。</p>"}},{"node":{"frontmatter":{"title":"用c语言libusb实现用户态USB通信指南","publish":true,"cover":"","showCover":null,"date":"2026-04-18","category":"c","url":"https://werwolv.net/posts/usb_for_sw_devs/","author":"WerWolv","translator":"","tags":["usb"],"priority":1},"html":"<p>这篇文章以<strong>Android Fastboot设备</strong>为例，为软件开发者通俗讲解USB基础与用户态USB驱动开发，核心是<strong>无需编写内核代码，用libusb就能实现USB设备枚举、通信与自定义驱动</strong>。文章先破除“写驱动必须写内核”的误区，说明用户态驱动更易编写调试；再讲解USB设备枚举原理，通过VID/PID识别设备，用lsusb查看设备信息与描述符；接着介绍libusb的使用，实现设备热插拔监听、通过控制端点获取设备状态与描述符；还清晰说明控制、批量、中断、同步四种传输类型，以及IN/OUT端点的单向通信规则；最后基于批量传输完成与Fastboot设备的指令交互，完整演示从设备识别到数据收发的用户态USB驱动开发全流程。</p>"}}]}}