Netlify:简单静态托管,通过netlify.toml文件配置CORS。 Vercel:简单静态托管,在vercel.json配置中添加headers。 Cloudflare Pages:简单静态托管,使用简单的_headers文件配置。 GitHub Pages:中等静态托管,使用Cloudflare作为解决方法。 Nginx:中等Web服务器,在站点配置中添加headers。 Apache:简单Web服务器,通过.htaccess文件配置。 Next.js:简单框架,在next.config文件中添加headers。 Express.js:简单框架,使用cors中间件包。 WordPress:简单CMS,通过functions.php、.htaccess或插件添加CORS headers。 Cloudflare:简单CDN,使用Transform Rules添加headers。
## 模拟286处理器:深入虚拟现实
受“什么是真实?”的哲学问题启发,本项目通过尝试模拟1980年代的286计算机处理器来探索现实的边界。目标是使处理器启动并运行简单的汇编代码,并质疑如果建立在模拟信号之上,*它*的现实是否更不真实。
该项目的核心是将物理80C286处理器与树莓派Pico连接。由于处理器的57个引脚超过了Pi的能力,使用了MCP23S17 I/O扩展器来管理通信。这需要仔细的接线、引脚映射以及使用MicroPython进行软件开发,以控制扩展器并模拟必要的信号——时钟、复位、地址和数据。
在克服了扩展器内部硬件寻址的挑战后,系统成功执行了一个加载到模拟内存中的简单加法程序。该过程涉及仔细发送指令和数据、处理字节顺序(小端序)以及解释处理器标志。
最终,该项目表明处理器无论其电信号的来源如何都能正常工作,模糊了物理现实和虚拟现实之间的界限。虽然这只是一个小小的步骤,但它为探索外围设备实现和进一步深化模拟打开了可能性。
## VMPrint:现代网络的确定性排版
VMPrint是一个纯JavaScript、零依赖的排版引擎,旨在生成像素级精确的PDF,为无头浏览器或复杂的PDF库提供稳定且高性能的替代方案。它通过使用版本化的JSON指令流来构建文档,解决了现有方案的权衡——繁重的依赖、不可预测的布局和内存问题。
该引擎运行在两个阶段:**布局**(确定字形位置、分页和格式化)和**渲染**(将布局转换为PDF或其他格式)。这种分离允许实现可重现的布局、通过JSON快照轻松调试,以及未来扩展到SVG或Canvas等格式。
VMPrint具有体积小(约2MiB)、渲染速度快,并支持多语言文本(拉丁文、CJK、从右向左),具有准确的文本塑形和断字功能。它设计可在任何地方运行——从Cloudflare Workers到浏览器——在不同环境中提供相同的输出。
VMPrint的构建重点是恢复TeX和PostScript等传统排版系统的精度,旨在为开发者提供可靠的工具,以生成出版质量的PDF。目前处于预发布阶段(v0.1.0),并积极寻求贡献。