分类: 开发

JavaFactory:告别不可预测的AI代码生成

2025-05-20
JavaFactory:告别不可预测的AI代码生成

JavaFactory是一款利用大型语言模型自动生成重复性Java代码的工具。它比传统的AI代码生成器更稳定可靠。其核心是“模式定义”和“基于注解的引用收集”。用户用自然语言定义工作单元(例如测试生成、实现生成等),并用注解明确指定所需类。定义好的模式可重复使用,生成各种代码(实现、测试、fixture等)。演示视频展示了20秒内生成400行代码并通过所有测试的案例。JavaFactory尤其适合处理具有重复模式(如分层架构)的开发环境,让开发者专注于核心逻辑,将重复性工作自动化。

开发

Deno 的未来:并非衰落,而是蓄势待发

2025-05-20
Deno 的未来:并非衰落,而是蓄势待发

面对近期关于 Deno、Deno Deploy、KV 和 Fresh 等项目的质疑,Deno 团队回应称,Deno 的发展势头强劲,用户数量翻倍。针对 Deno Deploy 缩减地区的问题,团队解释了其背后的原因,并非产品衰落,而是为了优化性能和成本,并计划将其发展为一个全栈应用托管平台。Deno KV 虽然不会成为所有状态管理的中心解决方案,但团队正在开发更强大的状态管理工具。Fresh 2 也即将发布,并带来诸多改进。Deno 团队表示,他们致力于打造一个完整的 JavaScript 平台,而不是追逐功能上的同质化,并积极参与 JavaScript 生态系统的改进和发展。

开发

从零开始构建一个基于Word2Vec的博客搜索引擎

2025-05-20
从零开始构建一个基于Word2Vec的博客搜索引擎

作者和朋友用Python从零构建了一个博客搜索引擎,核心技术是Word2Vec词嵌入。他们将文章和搜索词嵌入到300维向量空间,用余弦相似度计算匹配度排序结果。为了适应Web应用,他们将Word2Vec模型拆分成索引和向量两部分,用HTTP Range请求仅下载所需数据,显著减小了网页加载负担。最终,他们还设计了一个指标来评估搜索引擎的准确性,并讨论了未来改进方向,例如使用TF-IDF技术减少噪声。

开发

GPU渲染透明度排序的革新算法

2025-05-20

传统3D渲染中,透明物体的绘制顺序依赖于CPU根据相机位置排序,效率低下。本文提出一种预计算透明物体排序的新方法,通过分析面片与相机位置的关系,预先确定部分面片的绘制顺序,从而减少运行时排序的次数。该方法时间复杂度为O(n²)但只需计算一次,适用于透明物体位置变化不大的场景。算法通过将面片分割成两面,利用面片之间的空间关系确定绘制顺序,并在某些情况下回退到CPU排序。该方法在一定程度上解决了3D渲染中透明物体排序的难题,提高了渲染效率。

廉价有效的语言翻译质量基准测试

2025-05-20
廉价有效的语言翻译质量基准测试

一位开发者尝试使用配对评估和Bradley-Terry模型构建更科学的语言翻译质量基准测试。最初的尝试由于成本过高而失败,每次实验需要数百甚至数千美元。于是,开发者设计了一个折衷方案,结合了旧的评分系统和配对评估方法,通过迭代处理句子、利用多个翻译评估系统进行评分并结合统计分析,大大降低了成本,并获得了具有良好p值的可靠结果。这个新系统虽然牺牲了一些盲测的严格性,但显著提高了效率,只需6美元即可完成德语测试。

开发

Biff:一个可定制的、全栈式Clojure Web框架

2025-05-20
Biff:一个可定制的、全栈式Clojure Web框架

Biff是一个新颖的Clojure全栈式Web框架,它整合了众多生态系统中的库和工具,提供了一个抛光后的整体解决方案。Biff支持不可变数据库、Malli模式验证、Hyperscript轻量级客户端脚本,从而创建丰富的交互式UI。它还提供无密码的基于电子邮件的身份验证(支持魔法链接和一次性密码),并支持Ubuntu VPS配置或使用Docker部署Uberjar。文件保存时自动评估更改,并可连接到生产REPL进行动态开发。Biff以其强大的默认设置和可扩展性为特色,方便根据需求进行修改和调整。

开发

Ann:去中心化Web批注服务器,赋能应用社交功能

2025-05-20

Ann是一个基于ActivityPub协议的极简去中心化社交媒体,它围绕Web批注构建。你可以将其理解为在任何内容上添加评论、推荐或点赞。Ann允许你存储批注、发送批注给你的关注者,并接收你关注的人的批注。不同于其他社交媒体,Ann本身只是一个服务器,其价值在于与前端应用集成,例如构建Gemini浏览器评论区、私有科研论文评论系统、文章推荐系统、网页插件、AI训练数据集等等。Ann的愿景是创建一个不依赖于JavaScript和追踪器的Web,通过在现有应用中嵌入批注功能,赋予用户更多内容消费选择,并保护用户隐私和数据控制权。

开发 Web批注

多核系统下的内存一致性模型:一场与时间的赛跑

2025-05-20

这篇文章深入浅出地讲解了计算机科学中一个棘手的难题:内存一致性模型。在多核系统中,多个线程同时访问共享内存,如何保证它们看到的内存状态一致?文章通过图解和例子,解释了顺序一致性、缓存一致性和各种放松的内存模型(如TSO),并讨论了数据竞争和同步机制(如barrier)的重要性。最终指出,为了避免内存一致性带来的问题,最好使用同步库,让库来处理底层的复杂性。

开发 多核编程

用AI判断奇偶数:is-even-ai npm包

2025-05-20
用AI判断奇偶数:is-even-ai npm包

一个名为`is-even-ai`的npm包利用OpenAI的GPT-3.5-turbo模型来判断数字的奇偶性,以及其他数字比较功能。开发者可以使用简单的API调用实现这些功能,并可自定义模型和参数。这个项目受到同名npm包和推文的启发,旨在展示如何在产品中集成AI。

开发 npm包

Kilo:不到1K行代码的极简文本编辑器

2025-05-20
Kilo:不到1K行代码的极简文本编辑器

Kilo是一个仅用不到1000行代码(cloc统计)编写的小巧文本编辑器。它无需任何依赖库,直接使用标准VT100转义序列,功能包括保存(Ctrl+S)、退出(Ctrl+Q)和查找(Ctrl+F)。作者Salvatore Sanfilippo(antirez)将其作为学习资源,鼓励开发者以此为基础构建更复杂的命令行界面或编辑器。Kilo已在GitHub开源,采用BSD 2-clause许可证。

开发

HashiCorp Terraform MCP 服务器:自动化 IaC 开发的利器

2025-05-20
HashiCorp Terraform MCP 服务器:自动化 IaC 开发的利器

HashiCorp 推出了 Terraform MCP 服务器,一个基于模型上下文协议 (MCP) 的服务器,它能与 Terraform Registry API 无缝集成,从而增强基础设施即代码 (IaC) 开发的自动化和交互能力。该服务器允许自动化发现 Terraform 提供程序和模块,提取和分析来自 Terraform Registry 的数据,并获取有关提供程序资源和数据源的详细信息。用户可以通过 Docker 容器或直接从源代码构建二进制文件来运行服务器,并使用 VS Code 或 Claude Desktop 等工具集成它。服务器提供了一套工具,用于查询和获取 Terraform Registry 中提供程序和模块的文档和元数据。需要注意的是,服务器的输出和建议是动态生成的,用户应在实施前仔细审查以确保符合安全最佳实践和合规性要求。

开发

使用Docker Compose部署Moose应用:从入门到生产环境

2025-05-19

本文档详细介绍了如何使用Docker Compose在一个服务器上部署生产就绪的Moose应用程序。它涵盖了从安装必要软件,配置Docker日志大小限制和非root访问,到设置GitHub Actions Runner(可选)和一个示例Foo Bar Moose应用程序的完整流程。文章还深入讲解了如何安全配置Clickhouse和Redpanda(可选),以及如何分阶段部署Temporal(可选)。最后,它还阐述了如何设置systemd服务以实现Docker Compose的自动启动,以及自动化和手动部署工作流程。

别用过时的ISO/IEC 14977:1996 EBNF规范!

2025-05-19

本文强烈建议避免使用ISO/IEC 14977:1996 EBNF规范,因为它存在诸多问题。作者详细列举了该规范的缺陷,例如不支持Unicode字符、字符范围和通用的正则表达式语法,以及复杂的“一或多个”表示法。作者认为,该规范难以理解,可读性差,并且与现代软件开发实践脱节。相比之下,W3C的EBNF规范更加简洁易用,兼容性更好。作者还指出,盲目遵循ISO标准并不总是正确的,重要的是选择最合适的工具,而不是被过时的标准束缚。

开发 EBNF

WireGuard个性化密钥生成器:wireguard-vanity-keygen

2025-05-19
WireGuard个性化密钥生成器:wireguard-vanity-keygen

wireguard-vanity-keygen是一个命令行工具,用于生成WireGuard的个性化公钥。它支持多核心处理、大小写敏感搜索、正则表达式搜索以及多个前缀的搜索。用户可以指定搜索前缀、线程数和结果限制,工具会计算概率和估计运行时间。该工具旨在简化WireGuard密钥生成过程,并允许用户根据自己的需求生成更易于记忆和管理的密钥。

开发

Rust构建的Hacker News桌面客户端

2025-05-19
Rust构建的Hacker News桌面客户端

一个用Rust和egui构建的Hacker News桌面应用闪亮登场!它拥有简洁现代的界面,支持浏览热门、最新、Show HN、Ask HN、工作和最佳故事等不同板块,并以类似Reddit的线程方式显示评论,具备自动折叠、字体大小调节等功能。此外,还支持离线缓存、收藏、搜索过滤等实用功能,让你随时随地享受Hacker News的阅读体验。

开发

GitHub Actions 本地运行工具 act:加速你的开发流程

2025-05-19
GitHub Actions 本地运行工具 act:加速你的开发流程

还在为每次修改 GitHub Actions 文件都需要提交和推送而烦恼吗?act 工具可以让你在本地运行 GitHub Actions,从而获得更快的反馈。它模拟 GitHub 的环境变量和文件系统,让你在本地测试代码,并能作为本地任务运行器替代 Makefile,避免重复工作。VS Code 插件更能让你直接在编辑器中运行和测试工作流。act 读取你的 GitHub Actions 文件,使用 Docker API 拉取或构建必要的镜像,并根据依赖关系确定执行路径,最终运行容器。

开发

微软发布全新命令行文本编辑器:Edit

2025-05-19
微软发布全新命令行文本编辑器:Edit

微软在Build大会上发布了全新的命令行文本编辑器Edit,该编辑器体积小巧(小于250KB),支持多种快捷键操作、查找替换、正则表达式等功能,旨在为64位Windows系统提供一个轻量级的默认CLI文本编辑器,避免用户在使用其他编辑器时遇到的困扰,例如著名的“如何退出vim”问题。Edit是一个开源项目,未来几个月将在Windows Insider计划中提供。同时,微软还将Windows Dev Home重命名为Advanced Windows Settings,将其整合到Windows 11设置界面中,为开发者提供更多个性化设置选项。

开发

Anthropic Claude Code SDK:赋能AI编程助手

2025-05-19

Anthropic发布了Claude Code SDK,允许开发者将Claude Code集成到应用程序中,构建AI驱动的编码助手。该SDK目前支持命令行,TypeScript和Python SDK即将推出。它支持多种模式,包括多轮对话、自定义系统提示、MCP配置(通过外部服务器扩展功能)等。SDK提供文本、JSON和流式JSON三种输出格式,并详细说明了错误处理、会话管理和速率限制等最佳实践。Claude Code GitHub Actions便是其应用案例,实现了自动化代码审查等功能。

开发

多语言翻译工具上线

2025-05-19
多语言翻译工具上线

一个新的多语言翻译工具上线了!该工具支持多种语言,包括西班牙语、法语、印尼语、德语、意大利语、瑞典语、荷兰语、丹麦语、世界语、俄语、巴西葡萄牙语、土耳其语、波兰语、匈牙利语、菲律宾语、斯洛文尼亚语、克罗地亚语、爱沙尼亚语、捷克语、拉脱维亚语、芬兰语、加泰罗尼亚语、罗马尼亚语、阿尔巴尼亚语、亚美尼亚语、马其顿语、希腊语、乌克兰语、保加利亚语、越南语、韩语、日语、简体中文和繁体中文以及泰语、波斯语和阿拉伯语。用户可以轻松添加新的语言,开启或关闭翻译功能。

开发

Windows 11 内置全新命令行文本编辑器:Edit

2025-05-19
Windows 11 内置全新命令行文本编辑器:Edit

微软为64位Windows系统带来一款全新的轻量级命令行文本编辑器——Edit。Edit开源且体积小巧(小于250KB),支持鼠标模式、多文件打开、查找替换、单词换行等功能,并采用无模式设计,避免了类似Vim的学习曲线难题。它将在未来几个月内通过Windows Insider Program进行预览,并最终集成到Windows 11中。

微软开源Windows Subsystem for Linux (WSL)

2025-05-19
微软开源Windows Subsystem for Linux (WSL)

微软在Build开发者大会上宣布开源Windows Subsystem for Linux (WSL),允许开发者在Windows系统中轻松运行Linux发行版。此举旨在提升Windows作为开发者工作站的吸引力,提供更完善的Linux兼容性。WSL历经多次迭代,从最初的模拟到如今基于真实Linux内核的WSL 2,性能和兼容性大幅提升。开源后,开发者可参与代码贡献,进一步完善WSL的功能和性能。

开发

Windows Subsystem for Linux (WSL) 开源啦!

2025-05-19
Windows Subsystem for Linux (WSL) 开源啦!

微软正式宣布Windows Subsystem for Linux (WSL) 开源!历经多年努力,终于将 WSL 的代码发布到 GitHub 上。这意味着社区可以下载源代码、构建 WSL、添加新功能和修复错误,并参与到 WSL 的活跃开发中。WSL 的架构包含命令行可执行文件、WSL 服务、Linux 初始化和守护进程以及文件共享等组件。此次开源,标志着 WSL 向更快速迭代和社区驱动发展迈出了重要一步,也体现了微软对开源社区的重视。

开发

开源部署工具公司Glasskube招募工程师

2025-05-19
开源部署工具公司Glasskube招募工程师

Glasskube是一家开发开源部署工具的初创公司,致力于提高工程师的工作效率。他们正在招聘工程师,希望你对最新技术趋势(LLM、MCP服务器、Agent模式)如何改变软件开发方式充满兴趣,喜欢调试和探索,擅长自动化部署和监控任务,并乐于在小型快速发展的团队中工作。他们更看重你的个人项目和想法,而非工作经验或学历。技术栈包括Go、TypeScript和PostgreSQL。如果你想在维也纳工作并与旧金山创业生态系统保持联系,Glasskube是你的理想选择。

开发

AI赋能SwiftUI开发:一个周末打造Apple Watch上的ChatGPT客户端

2025-05-19
AI赋能SwiftUI开发:一个周末打造Apple Watch上的ChatGPT客户端

作者利用OpenAI API、SwiftUI、CloudKit和Swift Data,只用一个周末就开发出一个Apple Watch上的ChatGPT客户端。文章详细描述了开发过程,包括AI生成的代码、架构设计、以及在实际开发中遇到的问题和解决方案。虽然AI生成的代码在结构和功能上令人印象深刻,但也暴露出一些局限性,例如对watchOS平台特性的理解不足。作者最终通过改进UI、优化性能等方式,将原型打磨成一个可用产品,并将其发布到App Store。这篇文章不仅展示了AI在现代软件开发中的潜力,也强调了人类开发者在产品设计和工程实践中的不可替代性。

开发

程序员的编程偏好:童年经历的影响

2025-05-19

本文作者反思了自己的编程偏好,追溯到其童年经历。他认为文化和成长环境比理性论证更能塑造我们对技术的核心信念。作者的童年经历让他养成了追求完美、避免错误和抗拒寻求帮助的习惯,这些习惯也反映在他的编程风格上:偏好静态类型语言、避免依赖、追求代码简洁。作者认为,与其强求适应不适合自己的工作环境,不如寻找一个与自身特质相符的环境,才能最大限度地发挥潜能。最后,作者呼吁程序员们接纳彼此不同的编程风格,并重视自身感受在职业选择中的重要性。

开发 童年经历

GitHub Copilot 代码代理:帮你处理繁琐任务

2025-05-19
GitHub Copilot 代码代理:帮你处理繁琐任务

GitHub Copilot 推出了新的代码代理功能,可以帮助开发者处理低到中等复杂度的任务,例如添加功能、修复bug、扩展测试、重构代码和改进文档等。只需在 GitHub 上分配任务给 Copilot,它就会在安全的云端环境中自动完成工作,并提交代码审查。Copilot 擅长处理经过良好测试的代码库,并且可以同时处理多个任务。该功能现已面向 Copilot Pro+ 和 Copilot Enterprise 用户开放,使用该功能会消耗 GitHub Actions 分钟数和 Copilot 高级请求配额。

开发

Go语言中io.Reader接口的效率优化:一场与间接层和类型断言的较量

2025-05-19

在Go语言中,许多函数使用io.Reader接口作为输入,这允许数据流式传输,避免全部加载到内存。但当已有字节数据时,直接使用这些字节会更有效率。本文作者在使用libavif和libheif解码图像时遇到了这个问题。由于简单起见,他使用了这些库的简单内存接口,但发现Go的image.Decode函数会对io.Reader进行类型检查,寻找Peek函数,如果没有则用bufio.Reader包装,导致无法直接使用bytes.Reader中的字节。作者通过类型断言和unsafe.Pointer,绕过了bufio.Reader和bytes.Reader的限制,实现了零拷贝,但同时也指出了Go标准库中类型检查和接口设计的一些问题,以及由此带来的“隐式API”的困扰。

开发 io.Reader

Kelp:MacOS 的 Homebrew 替代方案,Go 编写

2025-05-19
Kelp:MacOS 的 Homebrew 替代方案,Go 编写

Kelp 是一款用 Go 编写的 MacOS 二进制包安装工具,旨在替代 Homebrew。它解决了 Homebrew 的一些痛点,例如等待公式可用、多台电脑同步安装等。Kelp 支持一次安装多个包(即将推出)、自定义配置路径、以及处理 Github API 速率限制等。用户可通过简单的命令行指令添加、安装、更新和管理软件包,并支持自定义二进制文件名称和非 Github Releases 的安装。

开发

Zod 4 发布:更快、更小、更高效的类型校验库

2025-05-19
Zod 4 发布:更快、更小、更高效的类型校验库

经过一年的积极开发,Zod 4 稳定版终于发布!它速度更快,体积更小,TypeScript 效率更高,并实现了许多长期以来备受期待的功能。Zod 4 与 Zod 3 并行发布,简化了迁移过程。性能测试显示,Zod 4 在多个基准测试中速度提升了 6.5 倍到 14.7 倍。此外,Zod 4 还改进了泛型,显著减少了 TypeScript 的类型实例化数量,并引入了更轻量级的 `zod/v4-mini` 版本,核心包大小减少了 85%。新版本还增加了对递归类型、JSON Schema 转换、自定义元数据、以及改进的错误处理的支持。

开发

clawPDF:功能强大的开源虚拟打印机

2025-05-19
clawPDF:功能强大的开源虚拟打印机

clawPDF 是一款功能强大的开源虚拟打印机,支持将各种文件转换为PDF、PDF/A、图像等多种格式,并提供OCR、加密、脚本接口等高级功能。它兼容Windows各种系统(包括服务器和ARM64),支持网络打印和多用户环境,堪称企业级解决方案的利器。无论是批量处理文档还是集成到应用程序中,clawPDF都能轻松胜任。

1 2 82 83 84 86 88 89 90 213 214