分类: 开发

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

2025-06-04
arXivLabs:与社区协作的实验性项目

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

开发

无需付费API!高效的坐标转州/省份JavaScript库

2025-06-04
无需付费API!高效的坐标转州/省份JavaScript库

一家初创公司每年花费数千美元使用Google Maps API进行反向地理编码,仅仅为了确定用户的州/省份。作者对此感到不满,于是开发了一个名为`coord2state`的轻量级JavaScript库,它可以直接根据经纬度坐标确定美国各州。该库基于美国人口普查局的边界数据,通过Douglas-Peucker算法简化边界,在0.01°的容差下,体积仅为260KB,精度高达99.9%。作者在GitHub和NPM上开源了这个库,为开发者提供了一个经济高效的替代方案。

开发

Elide Gradle 插件:显著提升 Java 编译速度

2025-06-03
Elide Gradle 插件:显著提升 Java 编译速度

Elide Gradle 插件利用 Elide 运行时,显著提升了 Gradle 项目的依赖解析和 Java 编译速度。Elide 将 javac 编译器构建为原生镜像,并将其集成到 Elide 二进制文件中。该插件通过修改 Gradle 构建配置,使用 Elide 的工具链代替 Gradle 自带的工具链,从而跳过 JIT 预热,实现高达 20 倍的编译速度提升。此外,Elide 还提供优化的 Maven 依赖解析和获取功能,将依赖项下载到本地缓存,从而加快构建速度。

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

2025-06-03
arXivLabs:与社区协作者的实验性项目

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

开发

快速与慢速系统调用:信号如何唤醒阻塞的系统调用

2025-06-03

本文深入探讨了操作系统中快速和慢速系统调用的核心区别。快速系统调用(如`getpid()`)立即返回,而慢速系统调用(如`read()`)可能因等待外部事件而阻塞。文章重点介绍了信号如何中断阻塞的慢速系统调用,并通过代码示例演示了`EINTR`错误的处理以及`SA_RESTART`标志的使用。此外,文章还分析了磁盘I/O的特殊性以及内核对不同类型系统调用的处理机制,并比较了各种I/O模型(阻塞I/O、非阻塞I/O、I/O多路复用、信号驱动I/O、异步I/O和I/O Uring)的优缺点。

开发 I/O模型

用iPhone当AirPlay接收器?AirAP让它成为现实!

2025-06-03
用iPhone当AirPlay接收器?AirAP让它成为现实!

AirAP是一款用Swift编写的原生iOS AirPlay服务器,它能让你的iPhone化身AirPlay接收器,播放来自Mac、Apple TV或其他iOS设备的音频。想象一下,深夜工作时将Mac音频转到iPhone耳机,避免打扰他人;或者开发者快速切换音频输出设备;又或者将iPhone纳入多房间音频系统。AirAP让这一切成为可能,只需安装应用并连接同一Wi-Fi即可。

开发

严重漏洞:Requests库存在.netrc凭据泄露风险

2025-06-03
严重漏洞:Requests库存在.netrc凭据泄露风险

Python的Requests库(广泛用于网络请求)被发现存在严重安全漏洞(CVE-2024-47081)。攻击者可利用特定API调用,导致存储在.netrc文件中的凭据泄露给第三方。该漏洞源于库对URL的处理方式,早在2024年9月就已报告,但至今仍未修复。目前建议用户在每次API调用中显式指定凭据以作为临时解决方案。

Alfred 工作流:一键访问 Google Cloud 服务

2025-06-03
Alfred 工作流:一键访问 Google Cloud 服务

还在为繁琐的 Google Cloud 服务访问而烦恼?这款 Alfred 工作流让一切变得轻松快捷!只需在 Alfred 中输入 `gcp`,即可模糊搜索 250 多项 Google Cloud 服务及子服务,并直接搜索 20 多项服务的 GCP 资源。它支持一键复制、粘贴或打开 GCP 控制台链接,还提供缓存、日志查看等实用工具。更重要的是,它安全可靠,仅使用本地 gcloud CLI 进行身份验证,绝不接触凭据。快来体验吧!

开发 Alfred

Go语言错误处理的最佳实践:避免哨兵错误和错误类型

2025-06-03

本文探讨了Go语言中三种错误处理策略:哨兵错误、错误类型和不透明错误。作者认为,哨兵错误和错误类型会造成代码耦合,不推荐使用。最佳实践是不透明错误处理,仅在需要时通过接口断言检查错误行为,并使用`github.com/pkg/errors`包优雅地处理和记录错误,避免重复处理和信息丢失。

开发

苹果用Swift重写密码监控服务,性能提升40%

2025-06-03
苹果用Swift重写密码监控服务,性能提升40%

苹果将密码监控服务从Java迁移到Swift,取得了显著成效。新服务每天处理数十亿请求,性能提升40%,并改善了可扩展性、安全性及可用性。迁移的动力在于Java的内存管理无法满足日益增长的需求。Swift的简洁语法、协议和泛型、安全特性(例如可选类型和安全解包机制)以及异步/等待支持,使代码更精简、安全且易于维护。最终,Swift版本内存占用减少了数量级,释放了50%的Kubernetes集群容量。

开发

Lingo.dev编译器:无需修改组件即可构建多语言React应用

2025-06-03
Lingo.dev编译器:无需修改组件即可构建多语言React应用

Lingo.dev发布了新的编译器,它是一个开源的i18n工具包,利用大型语言模型(LLM)实现网页、移动应用和Markdown内容的本地化和翻译。该编译器允许开发者在构建时创建多语言React应用,无需修改现有组件。Lingo.dev还包括CLI工具和CI/CD集成,旨在加快翻译速度并自动保持翻译内容的最新状态。该项目社区驱动,欢迎贡献!

开发

超轻量级分块工具库:chonkify

2025-06-03
超轻量级分块工具库:chonkify

chonkify是一个超轻量级的JavaScript库,用于将各种可迭代对象(数组、字符串、集合、映射、异步迭代器等)分割成指定大小的块。它支持Unicode表情符号和复杂符号,体积小巧(核心代码仅870字节),零依赖,兼容ESM和TypeScript,并在浏览器和Node.js环境下均可运行。无论是处理大型数据集还是简单的数组分割,chonkify都能高效地完成任务。

开发

Go语言错误处理:一场持续多年的语法之争终结

2025-06-03

Go团队经过多年努力,尝试改进冗长的错误处理语法,先后提出了“check/handle”、“try”和“?”运算符等方案,但均未获得广泛共识。文章总结了这些尝试的历程,以及最终决定放弃语法层面改进的理由:缺乏共识、成本高昂、现有方法可行。Go团队认为,与其追求语法上的简洁,不如关注更完善的错误处理机制和工具,并建议开发者关注错误处理的实用性和可读性,而非仅仅追求代码精简。

(go.dev)
开发 语法设计

Claude Code:无需提示的AI代码助手,效率提升神器

2025-06-03
Claude Code:无需提示的AI代码助手,效率提升神器

作者尝试在macOS上无提示运行Claude Code,两个月以来,它极大地提高了工作效率,每天节省一小时时间,并成功完成了各种任务,例如代码转换、功能提取、内容自动化生成、测试数据生成、代码提交、系统清理和新机器设置等。Claude Code基于命令行优先设计,能够理解上下文并执行命令,但响应时间较长是其主要限制。与Warp等其他AI命令行工具相比,Claude Code允许完全信任执行,无需每次都确认,从而提高了工作效率。作者认为,Claude Code代表着AI原生开发工具的范式转变,开发者将成为强大系统的协调者。

开发

构建一个150万词的英语语义网络:游戏开发背后的语言学挑战

2025-06-03

为了开发一款文字游戏,研究人员构建了一个包含150万个英语词汇的语义网络。该网络利用人工编辑的词库、图书分类系统和精心设计的LLM查询,将任意两个常见词语在6-7步内关联起来。研究人员克服了超连接词和多重排序信号的挑战,最终构建的网络揭示了英语词汇之间意想不到的紧密联系,并为游戏设计提供了理想的参数。这项研究展示了如何结合多种数据源和技术,构建一个既具有科学意义又兼具娱乐价值的语义网络。

开发 语义网络

AI赋能团队协作:从数据到洞察

2025-06-03
AI赋能团队协作:从数据到洞察

一家公司利用AI分析其内部数据(Jellyfish),实现了对团队工作效率的深入洞察。AI不仅提供了原始指标,还分析了潜在原因,并跨不同数据点建立联系,例如将生产力与投资水平和交付时间线关联起来。例如,AI能够识别出团队生产力降低的原因是由于团队分散在多个投资类别中且多个项目刚刚启动。此外,AI还能分析代码审查周期时间,指出哪些成员承担了更重的审查负担,并据此提出改进流程的建议。通过连接更多数据源,AI能够将数据分析与流程改进建议无缝结合,实现了从“数据显示什么”到“如何改进”的实时转换,极大提高了团队的工作效率。

开发

实时手势和语音控制3D模型的Web应用

2025-06-03
实时手势和语音控制3D模型的Web应用

一个令人惊艳的交互式Web应用,让你只需通过手势和语音命令就能实时控制3D模型!它结合了three.js、MediaPipe计算机视觉、Web Speech API和Rosebud AI等技术,支持拖动、旋转、缩放和动画等操作,并允许你拖放GLTF格式的3D模型进行导入。只需一个支持WebGL的现代浏览器,开启摄像头和麦克风权限,你就能体验到这种前所未有的交互方式。赶紧clone代码,自己动手体验一下吧!

开发

告别Windows,拥抱Plasma:让旧电脑焕发生机

2025-06-03
告别Windows,拥抱Plasma:让旧电脑焕发生机

厌倦了Windows的广告、间谍软件和强制更新?试试Linux结合KDE Plasma桌面环境!即使是10年以上的老旧电脑,也能在Plasma流畅运行。Plasma安全稳定,功能强大,拥有现代化的图形界面和众多实用功能,例如多桌面、强大的文件管理器Dolphin(集成FTP/SSH客户端、云端整合等),以及内置的桌面共享系统。迁移到Linux并非难事,官方提供安装指导和全球各地活动,帮助用户轻松上手。虽然软件生态不同,但Plasma自带常用的软件(Firefox、LibreOffice、Okular等),并通过Discover软件管理器提供海量免费开源软件。告别Windows的烦恼,拥抱更自由、更安全的数字生活!

开发

用C语言编写的高效Java反编译器Garlic

2025-06-03
用C语言编写的高效Java反编译器Garlic

Garlic是一款用C语言编写的Java反编译器,能够快速高效地将`.class`、`.jar`和`.war`文件反编译成Java源代码。它无需依赖其他库,仅需CMake 3.26及以上版本即可编译运行。Garlic支持多线程处理,并提供命令行参数控制输出路径和线程数量,其性能优于`javap`,同时去除了行号和栈映射表属性。项目开源,采用Apache 2.0许可证。

极简Forth:挑战编程语言的最小规模

2025-06-03

本文探讨了Forth语言的核心可以缩小到何种程度。作者介绍了多种极简Forth实现,例如PlanckForth(小于1000字节)、SmithForth(约1000字节)、sectorforth(512字节)和milliForth(336字节),它们都通过极少的指令集实现了Forth语言的基本功能,甚至包括编译器。其中,Frank Sergeant的3指令Forth更是极致,仅需66字节就能在Motorola MC68HC11芯片上运行。这些极简Forth的出现,挑战了我们对编程语言规模的认知,也展现了编程语言设计的精妙之处。

开发

Linux futex锁:旋锁与futex的性能比较

2025-06-03

本文深入探讨了Linux系统中futex锁的实现原理及性能。作者首先实现了一个简单的自旋锁,随后利用futex系统调用构建了一个更复杂的互斥锁。通过实验对比,作者发现简单的自旋锁在某些情况下性能优于futex锁,特别是当临界区操作非常轻量级时。然而,当临界区操作较为耗时,且线程竞争激烈时,futex锁的优势则更为明显,因为它避免了无谓的CPU空转。文章最后还讨论了改进futex锁性能的方法,并指出选择合适的锁机制需要根据具体应用场景进行权衡。

开发 futex 自旋锁

AI 生产力工具成本分析:每月 200 美元就能获得超高效率

2025-06-03
AI 生产力工具成本分析:每月 200 美元就能获得超高效率

作者分享了使用各种AI工具的经验和成本分析,发现每月200美元的Claude Max订阅性价比最高。Claude Max提供几乎无限的Claude Code使用,这是目前最好的基于终端的AI工具之一。虽然OpenAI的o3模型推理能力极强,但成本很高,每月可能花费数百美元。作者建议预算有限的用户可以使用Repo Prompt,它允许通过ChatGPT订阅使用o3。最终结论是,AI工具带来的时间节省远超其成本,尤其对于高收费的自由职业者而言,投资AI工具是提升效率的明智之举。

开发

TLA+:超越代码级别建模的利器

2025-06-03

TLA+是一种用于在代码级别之上对软件建模,在电路级别之上对硬件建模的语言。它拥有一个IDE和模型检查工具,其中最常用的工具是TLC模型检查器。TLA+基于数学,与任何编程语言都不相似。PlusCal是一种更易于上手的算法描述语言,可翻译成TLA+模型进行检查。TLA+模型通过描述系统的状态序列来建模其行为,强调在代码级别之上进行建模的重要性,以避免设计错误,并提升系统简洁性。一个工业项目案例表明,使用TLA+可以将实时操作系统代码大小减少十倍。

开发 并发系统

Quarkdown:一款强大的基于 Markdown 的排版系统

2025-06-03
Quarkdown:一款强大的基于 Markdown 的排版系统

Quarkdown 是一款现代化的基于 Markdown 的排版系统,它以其多功能性为核心设计理念,能够无缝地将项目编译成可打印的书籍或交互式演示文稿。通过一个极其强大的图灵完备的 Markdown 扩展,确保你的想法能够自动转化为纸张上的内容。它支持自定义函数和变量,甚至可以创建供所有人使用的库,并提供HTML、PDF等多种输出格式。

开发 排版系统

元提示:提升大型语言模型提示工程效率的革命性方法

2025-06-03
元提示:提升大型语言模型提示工程效率的革命性方法

本文探讨了元提示(Meta Prompting)技术,一种利用大型语言模型 (LLM) 来创建和改进提示的方法。文章介绍了多种元提示方法,例如斯坦福大学和OpenAI合作开发的元提示方法,它利用一个“指挥者” LLM 来协调多个专家 LLM;以及亚马逊提出的从对比提示中学习 (LCP) 方法,它通过比较好的和坏的提示来改进提示。此外,文章还介绍了自动提示工程师 (APE)、提示代理 (Prompt Agent)、会话提示工程 (CPE)、DSpy 和 TEXTGRAD 等方法,并比较了它们的优缺点。最后,文章还介绍了PromptHub、Anthropic和OpenAI等平台提供的提示生成工具,这些工具可以简化元提示的使用。元提示技术能够显著提高提示工程的效率,从而更好地利用大型语言模型的能力。

开发 元提示

为什么GUI至少要构建2.5次?

2025-06-03
为什么GUI至少要构建2.5次?

本文作者批判了精益软件开发的局限性,认为其将软件开发比作工厂生产线的类比是错误的。软件开发更像是一个设计过程,需要不断迭代和尝试,以找到用户真正想要的东西。作者以GUI开发为例,指出GUI的构建过程往往需要多次迭代才能达到令人满意的效果,这与工厂生产线的流水线模式截然不同。精益软件开发中“浪费”的概念在软件开发中难以适用,因为它忽略了探索和发现过程的重要性。作者认为,成功的软件开发更像是一个发现的过程,而不是一个制造的过程,需要深刻理解用户的需求,并不断迭代改进。

开发 精益开发

信息软件设计:图形设计的胜利,交互设计的失败?

2025-06-03

Bret Victor 在这篇论文中挑战了传统的软件设计理念,认为大多数软件(信息软件)的核心在于信息呈现,而非交互操作。他主张信息软件设计应以图形设计为基础,通过巧妙的图形化呈现和上下文感知能力,减少用户与软件的交互,从而提升用户体验。论文中列举了火车时刻表、在线书店和电影列表等案例,对比了传统交互式设计和基于图形设计的方案,并提出了基于环境感知和历史记录的上下文推断方法。最终,Victor 呼吁软件设计行业重视视觉传达,革新信息软件设计模式,创造更直观、高效的用户体验。

开发

Cloudflare Workers 的 OAuth 2.1 Provider 框架:AI 辅助开发的安全性库

2025-06-03
Cloudflare Workers 的 OAuth 2.1 Provider 框架:AI 辅助开发的安全性库

这是一个用 TypeScript 编写的 Cloudflare Workers OAuth 2.1 Provider 框架库,支持 PKCE。它作为 Worker 代码的包装器,自动处理令牌管理,并提供安全的用户身份验证。开发者只需编写常规的 fetch 处理程序,库会自动处理身份验证细节。该库不依赖特定的用户管理或 UI 框架,并采用安全的设计,仅存储哈希值,而非密钥。该库的开发过程有趣地使用了 AI 模型 Claude 辅助,经过 Cloudflare 工程师的安全审查,证明了 AI 在软件开发中的潜力。

MonsterUI:用纯Python构建现代化Web UI

2025-06-03
MonsterUI:用纯Python构建现代化Web UI

厌倦了在HTML、CSS和Python之间切换来构建简单的Web UI?MonsterUI应运而生!它是一个基于FastHTML的库,允许开发者仅使用Python代码创建美观的、响应式的Web应用程序。MonsterUI提供了预先设计的组件和智能默认值,基于Tailwind、FrankenUI和DaisyUI等现代库,同时保留了对Tailwind CSS的完全访问权限。它简化了样式设计,让开发者专注于功能构建而非样式细节,并包含主题、基础组件、语义文本样式、智能布局助手、常用UI模式以及高级组件等功能,极大提升了Web开发效率。

开发

亚马逊程序验证教学材料公开:Dafny进阶指南

2025-06-02

亚马逊公开了一套使用Dafny进行程序验证的教学材料,该材料不仅涵盖Dafny编程语言本身,更深入探讨了其作为证明辅助工具的强大功能。课程分为三个部分:第一部分介绍Dafny编程语言基础;第二部分深入讲解Dafny作为证明辅助工具的使用,包括自然演绎等形式化证明方法;第三部分结合前两部分内容,讲解如何使用Dafny进行程序验证,涵盖函数式、命令式和面向对象程序的验证。这套材料不仅适合初学者入门,也为经验丰富的Dafny开发者提供了进阶学习的机会。

开发
1 2 5 6 7 9 11 12 13 150 151