分类: 开发

Cogitator:用于链式思维提示的Python工具包

2025-05-19
Cogitator:用于链式思维提示的Python工具包

Cogitator是一个强大的Python工具包,用于在大型语言模型(LLM)中实验和使用链式思维(CoT)提示方法。CoT提示通过引导模型在得出最终答案之前生成中间推理步骤,从而提高LLM在复杂任务(如问答、推理和问题解决)中的性能。它还可以通过提供对模型推理过程的洞察来提高LLM的可解释性。该工具包旨在简化使用流行的CoT策略和框架进行研究或将其集成到AI应用程序中的过程。它包含一个可定制且可扩展的基准测试框架,用于评估不同CoT策略在各种数据集上的性能。

有效监控Node.js应用:指标、告警与最佳实践

2025-05-19
有效监控Node.js应用:指标、告警与最佳实践

本文深入探讨了如何有效监控Node.js应用程序。它涵盖了运行时指标(内存、CPU)、应用程序指标(请求速率、响应时间)和业务指标(用户行为、转化率)的监控方法。文章强调了监控指标的重要性,并详细介绍了如何收集这些指标以及设置有意义的警报,避免常见的监控误区,例如误解内存锯齿模式、忽略百分位数等。此外,文章还介绍了如何将指标与业务价值联系起来,以及如何在生产环境之外使用指标,例如基准测试、负载测试和A/B测试。

开发

macOS核心音频守护进程中的类型混淆漏洞

2025-05-19

一名谷歌Project Zero安全工程师通过知识驱动型模糊测试,发现并利用了macOS核心音频守护进程(coreaudiod)中的一个高危类型混淆漏洞。该漏洞存在于Mach IPC消息处理中,攻击者可通过操纵Mach消息来绕过沙箱限制,最终可能导致代码执行。研究人员公开了其自定义模糊测试工具,并详细描述了漏洞利用过程以及苹果的修复方案。

开发

别再用IP地址猜测用户语言了!

2025-05-19
别再用IP地址猜测用户语言了!

许多网站使用IP地址来确定显示语言,但这是一种过时的、不可靠的方法。IP地址只能告诉你请求的来源,并不能反映用户的语言偏好。VPN、旅行和多语言国家等因素都会导致错误。浏览器发送的`Accept-Language` header包含用户的语言偏好信息,这是更准确、免费且易于使用的方案。尊重用户的语言偏好,使用`Accept-Language` header,并允许用户更改语言设置,才能提供更好的用户体验。

开发 语言设置

解密Area5150的“Lake”特效:一个精确到像素的8088模拟器传奇

2025-05-19
解密Area5150的“Lake”特效:一个精确到像素的8088模拟器传奇

本文讲述了作者如何使用总线嗅探器和解码器,最终调试其IBM 5150模拟器MartyPC中Area5150演示的“Lake”特效。起初,作者承认在模拟“Wibble”和“Lake”这两个特效时使用了特定于标题的hack。但通过深入研究IBM CGA的特性,特别是缺乏垂直同步中断,作者最终克服了挑战。文章详细解释了如何利用动态时钟技术、扫描线轮询和自定义垂直同步中断,最终实现了对“Lake”特效的完美模拟,并分享了其调试过程中的各种问题和解决方案,包括对CGA寄存器、定时器中断和DMA逻辑的精确建模。最终,MartyPC成功地以无hack的方式运行了“Lake”特效,展现了模拟技术的精湛与对复古技术的热爱。

开发 IBM 5150

Morph:无需构建步骤的嵌入式全栈HTMX库

2025-05-19
Morph:无需构建步骤的嵌入式全栈HTMX库

Morph是一个基于HTMX的嵌入式全栈库,用于构建超媒体驱动应用程序,无需构建步骤。它结合了SSR、SPA和Island架构的优点,同时坚持使用纯HTML、CSS和JS。作者在使用Deno和Deno Deploy优化Telegram Web App开发过程中创建了Morph,因为它比传统的基于React或Vue的复杂前后端分离方案更轻量、简单且经济高效。Morph目前运行在Hono之上,未来可能支持其他后端。其核心优势在于:组件可以调用返回超文本(其他组件)的API;所有组件都在服务器端渲染并访问服务器端上下文;组件可以独立渲染和重新渲染;组件形成层次结构,可以互相嵌套并从API返回;极少或无需客户端JavaScript;无需构建步骤;无需预先设计API数据结构;可以嵌入到任何Deno/Node/Bun项目中。Morph非常适合不需要将前端和后端拆分成单独服务的场景,例如小型Telegram机器人、桌面应用程序或内部工具等。

开发 全栈框架

sshsync:高效管理多台远程服务器的命令行工具

2025-05-19
sshsync:高效管理多台远程服务器的命令行工具

sshsync是一个快速、简洁的命令行工具,用于通过SSH在多台远程服务器上运行shell命令。它支持同时操作所有服务器或特定分组,非常适合系统管理员、开发者和自动化工作流程。sshsync利用异步SSH连接,支持分组配置、SSH超时设置、文件推送/拉取、操作历史记录和日志、以及预演模式。安装方式:`git clone https://github.com/Blackmamoth/sshsync.git; cd sshsync; pipx install .` 它使用`~/.ssh/config`中的SSH别名,并存储分组信息在`~/.config/sshsync/config.yaml`。

开发

从零开始实现Llama:一个不哭泣的实践指南

2025-05-19
从零开始实现Llama:一个不哭泣的实践指南

本文详细记录了作者从零开始实现缩小版Llama模型的过程,用于训练TinyShakespeare数据集。作者采用迭代式方法,逐步实现论文中提到的RMSNorm、旋转位置编码(RoPE)和SwiGLU激活函数等关键组件,并通过测试和可视化手段确保每个组件的正确性。文章强调了迭代开发的重要性,并分享了诸多调试技巧,例如检查张量形状、使用断言和可视化工具等,为读者提供了宝贵的实践经验。最终,作者成功训练出一个能够生成莎士比亚风格文本的模型,并对模型的性能进行了评估。

开发 模型实现

Goboscript:将文本编程带入Scratch世界

2025-05-19
Goboscript:将文本编程带入Scratch世界

Goboscript 是一种将文本代码编译成 Scratch 项目的编程语言。它允许开发者使用文本编辑器编写 Scratch 项目,并将其编译成 .sb3 文件,可在 Scratch 编辑器、TurboWarp 或 Scratch 网站上打开。Goboscript 简化了高级 Scratch 项目的创建,支持版本控制、代码重构和代码复用。它还拥有强大的宏系统、局部变量以及代码优化和问题检测功能。该项目荣获 FOSS HACK 25 一等奖,并获得 50,000 印度卢比奖金。

开发 Scratch

用Unix命令行工具排序IPv6地址的挑战

2025-05-19

本文探讨了使用Unix命令行工具(如sort)排序IPv6地址的难题。IPv6地址的十六进制表示法、缺少前导零以及'::'缩写表示法,使得直接使用sort命令进行排序变得复杂。作者指出,解决这个问题需要将IPv6地址转换为完整形式,或者使用编程语言(如Perl或Python)进行排序,因为现有Unix工具难以直接处理IPv6地址的特殊格式。

硅谷科技公司软件工程师薪资大揭秘

2025-05-19

这份数据展示了硅谷众多科技公司软件工程师的薪资水平,涵盖了各种职位级别和专业方向,从初级软件工程师到资深架构师,从后端开发到机器学习,应有尽有。数据显示,高级软件工程师的薪资普遍较高,年薪多在20万到60万美元之间,而资深和首席工程师的薪资则更高,甚至超过百万美元。不同公司和职位对技能的要求也有所不同,这反映了科技行业对人才的巨大需求和竞争。

开发

跨平台渲染的挑战:为什么SDL GPU API选择这种Shader方案?

2025-05-19
跨平台渲染的挑战:为什么SDL GPU API选择这种Shader方案?

游戏开发者面临跨平台高效渲染的难题。不同平台(Windows、macOS、Linux、游戏主机等)使用不同的图形API(Vulkan、Metal、Direct3D等),Shader的处理尤其复杂。本文作者作为FNA项目(XNA框架的当代移植)的维护者,在创建跨平台图形抽象库Refresh的过程中,提出了一个SDL GPU API方案,支持SPIR-V、HLSL、DXBC、MSL等多种Shader格式。作者解释了这种多格式方案的缘由:GPU架构的差异性和厂商利益的冲突导致难以实现Shader ISA标准化,将Shader视为内容而非代码,并根据不同需求选择合适的编译流程更灵活高效。该方案既能处理现有Shader(如XNA的FX bytecode),又避免了自行创建Shader语言的巨大工作量和风险,最终实现跨平台渲染的实用性目标。

数据库设计的真相:原则与实践

2025-05-19

本文探讨了数据库设计的核心原则,指出其重要性在于准确反映业务现实。作者批评了软件开发者缺乏数据库设计正规训练的现状,导致普遍采用临时方法,从而引发数据异常和不一致等问题。文章列举了若干数据库设计原则,包括正交设计原则、表达完整性原则、完全规范化原则等,并着重介绍了作者提出的“本质指称原则”,强调使用自然键标识关系,避免使用代理键带来的语义脱节。通过SQL代码示例对比,作者阐明了遵循这些原则能够避免不良设计带来的高昂代价,最终构建出准确可靠的信息系统。

开发

开发者名片:用 npm 打造个性化终端体验

2025-05-19
开发者名片:用 npm 打造个性化终端体验

作者在构建个人网站时,希望添加一个更具个性化的“关于我”页面。最初的想法是在社交图标上方添加 `npx connect`,然而,这被一位开发者指出存在误导性。 这位开发者建议使用 npm cards,这是一种在终端运行的个性化名片。受到启发,作者创建了自己的 npm 卡片 `npx ashleywillis`,它会在终端显示作者的信息和社交链接。这个小项目体现了开发者社区的互助精神和对细节的关注,也展示了如何在技术中融入个性和人情味。

开发

KDE Plasma迎来全新虚拟机管理器Karton

2025-05-18
KDE Plasma迎来全新虚拟机管理器Karton

KDE Plasma桌面环境即将迎来一个全新的虚拟机管理器Karton。由Google Summer of Code 2025项目资助,Waterloo大学学生Derek Lin正在开发这款基于Qt Quick和Kirigami的虚拟机管理器。Karton旨在提供原生KDE体验,使用libvirt API管理虚拟机,并计划支持跨平台运行。目前开发重点在于核心功能,例如新的域安装程序(使用libosinfo代替virt-install)、自定义SPICE查看器以及更精细的虚拟机配置选项。Karton计划于7月14日完成中期评估,9月1日最终提交。

开发 Karton

AI时代,初级开发者何去何从?

2025-05-18
AI时代,初级开发者何去何从?

人工智能正在改变编程,但初级开发者并没有被淘汰,他们的角色正在进化。AI负责编写模板代码,初级开发者则专注于调试、系统设计和协作等高级技能。公司不能忽视初级开发者的培养,因为他们是未来高级工程师的来源。成功的初级开发者会将AI作为学习工具,而非依赖,验证AI的输出并理解其背后的原理。他们需要提升阅读和理解代码的能力,并学习如何与AI协同工作,在AI的辅助下快速成长,成为更全面的工程师。

GNU自由文档许可证详解:一份赋予文档自由的协议

2025-05-18

GNU自由文档许可证(GFDL)旨在确保文档的自由复制、分发和修改,无论商业或非商业用途。它采用“Copyleft”策略,确保衍生作品也保持自由。GFDL规定了版权声明、不变章节、封面文字等细节,以平衡作者权益和文档自由传播。许可证还涵盖了批量复制、修改、组合和翻译等情况,并对违规行为的处理做了明确说明。GFDL为自由软件提供自由文档,也适用于任何文本作品。

Python 构造理论模拟器:代码中的量子引力与电磁学

2025-05-18
Python 构造理论模拟器:代码中的量子引力与电磁学

一个用Python实现David Deutsch构造理论框架的项目,通过代码展现了从简单的任务和分支基底到量子引力与电磁学的核心概念。它包含一个能够从任务列表中自举的“通用构造器”,演示了自复制和构造理论的强大功能。该项目支持不可逆和量子任务、计时器和时钟、可替代性和连续动力学等,并包含引力二体、库仑耦合和洛伦兹力等耦合任务。

开发 构造理论

arXivLabs:与社区合作的实验性项目

2025-05-18
arXivLabs:与社区合作的实验性项目

arXivLabs是一个允许合作者直接在arXiv网站上开发和分享新功能的框架。参与arXivLabs的个人和组织都认同并接受了arXiv关于开放性、社区、卓越和用户数据隐私的价值观。arXiv致力于这些价值观,并且只与遵守这些价值观的合作伙伴合作。如果您有想法能够为arXiv社区增值,请了解更多关于arXivLabs的信息。

开发

Rust错误处理库Stack Error:优雅调试,高效开发

2025-05-18
Rust错误处理库Stack Error:优雅调试,高效开发

Stack Error是一个Rust库,旨在简化错误处理。它在`anyhow`的便捷性和`thiserror`的灵活性和自定义性之间取得平衡,提供信息丰富的错误消息和类型化数据,方便调试和运行时错误处理。通过宏和自定义错误类型,Stack Error 帮助开发者构建更易于调试和维护的应用程序,减少了在错误处理上不必要的时间消耗,让开发者能够专注于核心业务逻辑的编写。

开发

Roam Research的兴衰:双向链接的承诺与现实的差距

2025-05-18
Roam Research的兴衰:双向链接的承诺与现实的差距

Roam Research曾凭借其双向链接功能风靡一时,被视为笔记软件的革命性产品。然而,作者却放弃了Roam,因为他发现自己大部分时间都在纠结于笔记的存放位置,而非实际使用笔记。双向链接虽然解决了初期“笔记归档”的焦虑,但随着时间的推移,庞杂的链接反而降低了笔记的检索效率。作者认为,Roam需要改进搜索功能,并通过自动化分类系统,简化笔记管理,才能真正提升用户体验。

开源实验性浏览器引擎Veav:支持大部分CSS和基本网络功能

2025-05-18
开源实验性浏览器引擎Veav:支持大部分CSS和基本网络功能

Veav是一个实验性的网页浏览器引擎,支持大部分显示类型(网格除外)、标准CSS级联行为、分页、打印成PDF以及所有CSS单位。它能够加载HTML和XHTML文档,但网络功能非常基础,仅支持http://和file://协议。开发者提供了详细的兼容性和功能跟踪WPT状态页面,并给出了基于Arch Linux的安装和运行指令,需要安装一系列依赖包并使用`clang-prefixed-release`编译器。项目还附带了Tldraw格式的架构图。

开发

FFmpeg Diss Rust: 2万美元悬赏能否弥补性能差距?

2025-05-18
FFmpeg Diss Rust: 2万美元悬赏能否弥补性能差距?

开源多媒体框架FFmpeg近日对Rust编写的AV1解码器rav1d发起挑战,认为其性能与C语言编写的dav1d相比仍存在差距,并讽刺道“Rust如此优秀,你竟然需要2万美元才能使其达到C语言的速度”。这一言论引发了关于Rust在性能、成本和内存安全方面的权衡的讨论。虽然Rust因其内存安全性和性能而受到青睐,甚至得到美国白宫的认可,但其在Linux内核中的集成也面临阻力。这场争论凸显了在选择编程语言时,开发者们对性能和安全性的不同考量。

开发 AV1解码器

RISC OS 3.11 图形界面:一场与众不同的桌面体验

2025-05-18

本文深入探讨了1992年发布的英国Acorn电脑公司RISC OS 3.11操作系统图形界面。与同时代的苹果System 7相比,RISC OS 3.11拥有独特的Pinboard和Icon Bar桌面布局,以及基于三键鼠标的创新交互方式。其菜单系统直接整合对话框,并巧妙地利用鼠标按键实现多种操作,极大地减少了对键盘修饰键的依赖。窗口管理方面,RISC OS 3.11独特地处理窗口焦点和堆叠顺序,并支持原地最小化。文件操作方面,它摒弃了标准的打开和保存对话框,而是采用拖放和菜单输入的方式,并允许用户自定义文件类型。总而言之,RISC OS 3.11 的图形界面设计大胆独特,至今仍值得我们学习和借鉴。

开发

Rust版Model2Vec:速度提升1.7倍

2025-05-18
Rust版Model2Vec:速度提升1.7倍

一个名为`model2vec-rs`的Rust库实现了Model2Vec静态嵌入模型的加载和推理,速度比Python版本快1.7倍。该库支持从Hugging Face Hub加载预训练模型,并提供命令行接口和自定义编码参数,方便用户创建文本嵌入。基准测试显示,Rust版本每秒处理8000个样本,而Python版本仅为4650个样本。

开发 Model2Vec

告别付费笔记应用:我打造了自己的安全私密的知识库

2025-05-18
告别付费笔记应用:我打造了自己的安全私密的知识库

厌倦了付费笔记应用的隐私顾虑和高昂成本,作者决定自己动手,搭建了一个安全、私密且持久的个人知识管理系统(PKMS)。他分享了从Obsidian到最终构建自托管PKMS的历程,强调了数据安全和自主控制的重要性。这个系统基于开源平台Directus,使用Markdown存储笔记,方便跨设备访问和数据迁移。作者认为,虽然搭建过程看似复杂,但实际上非常简单,并鼓励更多人尝试构建自己的知识库,以更好地管理和利用个人知识。

间隔重复记忆系统:高效学习的秘密武器

2025-05-18

间隔重复记忆系统(SRS)巧妙结合测试效应和间隔效应,让你轻松记住成千上万的事实。SRS不只适用于死记硬背,还能帮助你深入理解概念。首个此类系统Supermemo由Piotr Wozniak创建,并普及了“间隔重复”这一术语。它高效且灵活,让记忆成为一种选择。

开发 Supermemo

Buckaroo:Jupyter 的现代数据表格

2025-05-18
Buckaroo:Jupyter 的现代数据表格

Buckaroo 是一款为 Jupyter 打造的现代数据表格,它简化了最常见的探索性数据分析任务。它提供高性能的数据表格,支持排序、值格式化和无限滚动。此外,还包含摘要统计、直方图、智能采样、自动清理和低代码 UI 等额外功能,所有功能都具有合理的默认值,可以根据你的工作流程进行自定义。Buckaroo 支持 Pandas 和 Polars DataFrame,兼容 JupyterLab、Jupyter Notebook 等多种环境。

开发

开源软件实验室OSL寻求长期稳定发展

2025-05-18
开源软件实验室OSL寻求长期稳定发展

俄勒冈州立大学开源软件实验室(OSL)在获得一年的资金支持后,正积极寻求长期稳定发展。他们面临着两个主要挑战:一是寻找一个经济高效的新数据中心和硬件,以替换现有的20多年历史的过时设备;二是确保多年度资金承诺,以覆盖运营和未来基础设施升级的成本。OSL 正在积极寻求数据中心空间和硬件捐赠,并呼吁企业和个人提供长期支持,以确保其持续为开源社区提供服务。

开发
1 2 83 84 85 87 89 90 91 213 214