1作者: victordg1 天前原帖
ChatGPT 应用程序 SDK 的学习曲线较陡,尤其是在 OAuth 方面,您是提供者,而 ChatGPT 是客户端(而不是反过来)。这可能会让您感到困惑。 <p>本技能教您如何正确构建 ChatGPT 应用程序:</p> <pre><code> - MCP 服务器设置(Node.js/Python) - 使用 PKCE 和动态客户端注册的 OAuth - 使用 window.openai API 开发小部件 - 20+ 常见问题及解决方案 </code></pre> 如何安装: <p>npx skills add https://github.com/vdel26/skills</p> <p>GitHub:</p> <p>https://github.com/vdel26/skills</p> <p>希望能收到关于在构建 ChatGPT / MCP 应用程序时遇到的遗漏问题的反馈。</p>
2作者: tokkyokky1 天前原帖
嘿,HN, 这是一个使用 Go 1.26 的实验性 simd/archsimd 包的 CSV 解析器。 我想看看新的 SIMD API 在实际中的表现。CSV 解析主要是“在缓冲区中查找这些字节”——加载 64 字节,进行比较,获取位置的位掩码。最有趣的部分是正确处理块边界(引号和行结束符可能会跨块分割)。 - 可以作为 encoding/csv 的替代品 - 在 AVX-512 上,未加引号的数据速度提高了约 20% - 带引号的数据速度较慢(仍在优化中) - 对于非 AVX-512 的情况提供标量回退 需要设置 GOEXPERIMENT=simd。 [https://github.com/nnnkkk7/go-simdcsv](https://github.com/nnnkkk7/go-simdcsv) 欢迎对边缘案例或 SIMD 实现提供反馈。
1作者: gamarino1 天前原帖
在过去的几个月里,我一直在重新思考动态语言运行时如何与现代硬件进行交互。最终的成果是ProtoCore及其首个主要实现ProtoJS。 大多数动态运行时(如Python、Ruby,甚至是JS引擎)通过全局解释器锁(GIL)或复杂的内存屏障来处理并发,因为在多个线程之间管理可变状态是非常困难的。 在ProtoCore中,我采取了不同的路径,基于三个支柱: 1. 默认不可变性:所有核心数据结构都是不可变的。我们不使用锁,而是通过结构共享来提高内存效率。这在本质上消除了对象级别的数据竞争。 2. 硬件感知内存模型:对象与缓存行对齐(64字节单元),以防止伪共享并优化缓存局部性。 3. 标记指针:我们为小整数使用56位嵌入负载,这意味着大多数数值操作不需要堆分配。 为了验证这一架构,我构建了ProtoJS。它使用QuickJS进行解析,但用ProtoCore原语替换了整个运行时。这允许真正的工作线程执行(“延迟”),在不复制或涉及GIL相关争用的情况下,共享不可变对象。 当前状态: - ProtoCore:100%测试通过率(50/50测试),并于今天完成了全面的技术审计。 - ProtoJS:第一阶段完成,展示了真正的并行执行和低于1毫秒的垃圾回收暂停。 我是一名电子工程师(现在是一名大学教授),我想看看应用低级硬件原理是否能够解决高级并发的“混乱”。 我很想听听你对这种以不可变性为首的系统编程方法的权衡看法。 ProtoCore(引擎):https://github.com/numaes/protoCore ProtoJS(JS运行时):https://github.com/gamarino/protoJS