分类: 开发

Let's Encrypt即将支持IP地址SAN证书

2025-06-25
Let's Encrypt即将支持IP地址SAN证书

Let's Encrypt即将推出支持IP地址Subject Alternative Names (SANs)的证书,但初期仅限于6天有效期的短期配置文件,且处于允许列表模式。这一功能仍在开发中,尚未确定公开发布的时间表。帖子中包含一个示例证书和一个使用该证书的网站链接,并讨论了在Firefox和Discourse中发现的与IP地址SAN相关的bug。此外,还引发了关于IP地址是否可以作为DNS名称出现在SAN中以及DNS-01挑战是否适用于IP地址证书的讨论。

开发 IP地址SAN

编写引人入胜的软件发布公告的秘诀

2025-06-25
编写引人入胜的软件发布公告的秘诀

这篇文章揭示了如何撰写引人入胜的软件发布公告的技巧。作者强调,公告应关注用户体验的提升,而非简单的功能罗列。文章以实例说明如何将技术细节转化为用户可感知的益处,例如,将修复的bug描述为用户体验的改进,而非仅仅是bug的消除。文章还建议使用清晰的截图和简短的动画演示,并提前在开发过程中规划发布公告,确保公告内容与用户价值直接相关,避免空洞的“各种改进和错误修复”等描述。

开发

加速音频以降低OpenAI转录成本

2025-06-25
加速音频以降低OpenAI转录成本

为了更快更便宜地进行OpenAI转录,作者发现了一个技巧:使用ffmpeg将音频速度提高到2倍或3倍。这显著减少了标记数量和等待时间,而转录质量几乎没有下降。作者分享了结合yt-dlp、ffmpeg和LLM的脚本,演示了这一过程。这一方法源于作者尝试总结Andrej Karpathy长达40分钟的演讲,在尝试YouTube自动字幕失败后,意外发现的。实验表明,这种方法不仅节省了时间,还降低了成本,2倍和3倍速度下,转录成本分别降低了33%和67%。

开发

别再费力思考并行编程了!

2025-06-25
别再费力思考并行编程了!

Guy L. Steele Jr. 在 Strange Loop 大会上发表演讲,他认为程序员不应该操心并行编程的细节。编程语言应该提供一种透明的方式来并行执行任务。这需要一种新的方法来构建编程语言,支持基于独立性和分治法的算法,而不是基于问题的线性分解。

开发

Gemini CLI:你的AI代码工作流助手

2025-06-25
Gemini CLI:你的AI代码工作流助手

Google Gemini CLI是一个命令行AI工具,能连接你的工具、理解你的代码并加速你的工作流程。它可以查询和编辑大型代码库,从PDF或草图生成新应用,自动化操作任务,并使用工具和MCP服务器连接新的功能,例如使用Imagen、Veo或Lyria生成媒体。它还集成了Google搜索,并支持多种身份验证方式。只需简单的命令行操作,你就能用Gemini编写代码、总结更改、生成文档等,极大提高效率。

开发

Qodo Gen CLI:AI赋能的开发流程自动化工具

2025-06-25
Qodo Gen CLI:AI赋能的开发流程自动化工具

Qodo Gen CLI是一个强大的命令行界面工具,用于构建、管理和运行AI代理。它允许开发者创建自定义代理,自动化软件开发生命周期(SDLC)中的工作流程,并将AI能力集成到任何IDE中。Qodo Gen CLI支持多种LLM、灵活的部署方式,并提供终端和浏览器交互界面。它可以自动化代码审查、文档生成、测试覆盖率等任务,提高开发效率,让开发者专注于核心功能开发。

AI赋能视频制作:Yarn公司招聘顶级工程师

2025-06-25
AI赋能视频制作:Yarn公司招聘顶级工程师

一家名为Yarn的初创公司正在利用AI彻底改变视频制作流程。他们开发了一种创新的技术,将人工智能与视频制作相结合,使制作引人入胜的视频的速度提高了100倍。公司已获得Y Combinator等知名投资机构的投资,并与Clay和Shopify等公司合作。目前,Yarn正在纽约招聘经验丰富的工程师,希望他们能够参与核心代理工作流程的构建、AI协同编辑工具的开发以及尖端AI模型的原型设计等工作。

开发

用Python读取护照NFC芯片数据

2025-06-25
用Python读取护照NFC芯片数据

作者尝试使用Python库pypassport读取其旧护照的NFC芯片数据。由于护照已作废,MRZ(机器可读区域)部分缺失,作者通过护照上的其他信息重建了MRZ,成功读取了护照信息,包括生物识别数据。文章详细介绍了MRZ的构成、校验和计算方法以及读取过程,并讨论了暴力破解MRZ的可能性和实际价值。最终,作者证明了虽然理论上可行,但实际操作中暴力破解的难度很大,直接从护照上读取信息更为便捷有效。

开发 护照

Chrome Android版终于支持底部地址栏!

2025-06-25
Chrome Android版终于支持底部地址栏!

谷歌终于为安卓版Chrome浏览器带来了期待已久的底部地址栏选项!现在,用户可以将地址栏、标签切换器和其他快捷菜单移动到屏幕底部,提高单手操作的便捷性。这项更新并非强制的,用户可以在设置中选择顶部或底部地址栏。此功能已开始陆续推送,未来几周内所有用户都将可以使用。iOS版Chrome已于2023年率先推出此功能。

微软开源Rust版MS-DOS编辑器,引爆怀旧潮

2025-06-25
微软开源Rust版MS-DOS编辑器,引爆怀旧潮

微软发布了经典MS-DOS编辑器的现代开源重制版——Edit。这款使用Rust编写的编辑器支持Windows、macOS和Linux,让老用户惊喜不已。它在1991年首次出现在MS-DOS 5.0中,其全屏界面、鼠标支持和下拉菜单在当时是革命性的进步,与之前的EDLIN相比极大提升了用户体验。如今,Edit的跨平台特性让许多人得以在Linux等系统上体验这款曾经的DOS神器,引发了怀旧热潮,也与Linux上一些复杂难用的文本编辑器形成了鲜明对比。

Gnosis Mystic:赋能AI实时掌控Python函数

2025-06-25
Gnosis Mystic:赋能AI实时掌控Python函数

Gnosis Mystic是一个强大的工具,它允许AI助手通过运行时劫持和智能分析直接访问和控制你的Python函数。只需添加少量装饰器,Claude就能实时检查、优化和控制你的代码。它解决了AI助手无法实时查看运行代码、缺乏运行时行为和状态访问等问题,赋予AI实时监控函数、进行安全实验、运行时控制、智能分析和实时调试的能力,极大提升开发效率和代码安全性。

开发

Rust 热补丁库 Subsecond:实现亚秒级代码热重载

2025-06-25

Subsecond 是一个用于 Rust 的热补丁库,允许在不重启应用的情况下更改运行中应用的代码。这对于游戏引擎、服务器和其他长时间运行的应用非常有用。它还实现了名为“ThinLinking”的技术,显著加快了开发模式下的 Rust 代码编译速度。Subsecond 通过跳转表重定向函数调用,无需修改进程内存,而是通过外部工具编译更改的部分,并将其发送到应用进行应用。目前 Subsecond 仅支持“tip” crate 的热补丁,并存在一些关于全局变量、静态变量和线程局部变量的限制,以及对结构体布局和对齐的限制。它支持所有主要平台,但 iOS 设备由于代码签名要求目前不支持。

开发 热补丁

程序员眼中的时间:绝对时间、民用时间与时区

2025-06-25
程序员眼中的时间:绝对时间、民用时间与时区

本文深入探讨了程序中时间处理的复杂性,从绝对时间(基于纪元和持续时间)到民用时间(格里高利历和时区)的转换,解释了闰秒和时区转换的原理以及它们带来的挑战。文章强调了IANA时区数据库的重要性,它提供了历史和未来的时区规则,帮助程序员准确处理时间。文章还通过聊天论坛、活动规划网站和个人项目三个案例,阐述了不同场景下时间处理的策略,并指出'只使用UTC'并非万能解决方案。

开发 IANA数据库

X11 DPI缩放:不可能完成的任务?

2025-06-25

作者挑战了X11不支持DPI缩放的普遍说法,通过OpenGL和X服务器的配置事件,成功在不同尺寸和分辨率的屏幕上绘制了一个大小始终为两英寸的圆形。过程中,作者巧妙地利用X服务器提供的屏幕物理尺寸信息,动态调整OpenGL渲染的半径,最终实现了跨屏幕的精确缩放。虽然过程中遇到了一些误差,例如电视屏幕尺寸的偏差,但最终证明了在X11下实现DPI缩放并非不可能。

开发 DPI缩放

哈希碰撞概率:从生日悖论到近似计算

2025-06-25
哈希碰撞概率:从生日悖论到近似计算

这篇文章深入探讨了哈希碰撞的概率问题。哈希函数将任意复杂输入映射到单个数字,但存在哈希碰撞(不同输入映射到相同数字)的风险。文章从生日悖论入手,解释了计算哈希碰撞概率的精确公式和三种近似方法:指数近似、简化近似和更简化近似。通过比较,指数近似在大多数情况下表现最佳,而其他两种方法更适合快速估算。文章还提供了支持近似方法的数学证明。

开发

简约编辑器:致敬 MS-DOS,拥抱现代

2025-06-25
简约编辑器:致敬 MS-DOS,拥抱现代

这款名为“edit”的编辑器向经典的 MS-DOS 编辑器致敬,但拥有现代化的界面和类似 VS Code 的输入控件。它易于上手,即使不熟悉终端的用户也能轻松使用。 你可以通过 WinGet 安装最新版本,或从 Releases 页面下载二进制文件。安装过程中需要注意 ICU 库的版本和命名,以确保搜索和替换功能正常运行。

开发

告别Python环境配置难题:uv和PEP 723的完美结合

2025-06-25
告别Python环境配置难题:uv和PEP 723的完美结合

长期以来,Python的依赖环境配置问题困扰着许多开发者。现在,Rust编写的超高速Python包和项目管理器uv,结合PEP 723元数据规范,彻底解决了这个问题。uvx工具类似于Node.js的npx,可在虚拟环境中运行Python工具,自动处理依赖安装。文章以提取YouTube字幕的脚本为例,演示了如何使用uv和PEP 723创建易于执行的单文件Python脚本,告别繁琐的环境配置,提升开发效率。

开发

Autumn:简化 Stripe 集成的开源计费系统

2025-06-24
Autumn:简化 Stripe 集成的开源计费系统

Autumn 是一个开源项目,它简化了 Stripe 与应用程序之间的集成,允许开发者轻松创建各种计费模式,包括订阅、信用系统、按使用付费以及自定义大客户方案。无需处理 Webhook、升级/降级、取消或支付失败等复杂问题。Autumn 提供云服务和自托管两种部署方式,自托管只需几行命令即可完成部署。Autumn 提供了三个核心函数:`attach`(处理所有购买流程)、`check`(检查用户权限)和 `track`(记录使用情况),极大简化了计费逻辑。

开发

Mozilla Add-on 政策更新:简化开发流程

2025-06-24

Mozilla 更新了 addons.mozilla.org (AMO) 的附加组件政策,旨在简化开发流程。主要变化包括:取消对“封闭群组”扩展的禁令,允许开发者发布访问受限的扩展;更新数据同意和控制术语,澄清数据传输政策,不再要求在 AMO 上托管隐私策略,而是鼓励开发者链接到自托管的隐私策略;新增用户脚本 API 政策,规定用户脚本 API 只能由用户脚本管理器扩展使用;更新源代码提交指南,明确所有依赖项必须包含在源代码包中或通过官方包管理器下载。这些更新将于 2025 年 8 月 4 日生效。

开发 附加组件

基于SQLite的RAG库:haiku.rag

2025-06-24
基于SQLite的RAG库:haiku.rag

haiku.rag是一个基于SQLite的检索增强生成(RAG)库,无需额外服务器即可运行。它支持多种嵌入提供商(如Ollama、VoyageAI、OpenAI),并结合向量搜索和全文搜索进行混合搜索。haiku.rag还提供文件监控、丰富的文件格式支持、命令行界面和Python客户端,方便用户管理和搜索文档。

开发

SourceHut 更新服务条款和隐私政策

2025-06-24

SourceHut更新了其服务条款和隐私政策,主要改进了对用户数据的描述,包括如何存储和使用用户数据,以及与第三方共享数据的方式。更新还澄清了用户帐户的安全性,并增加了对用户数据的访问和控制方法的说明。此外,该更新还对自动化工具的使用进行了限制,以防止滥用。

开发 SourceHut

ML也有Monad?模块化设计的威力

2025-06-24
ML也有Monad?模块化设计的威力

Haskell的Monad常被认为是其独有特性,但作者认为这是一种误解。Monad并非语言设计问题,而是库设计问题。任何支持模块化的语言都可以实现Monad。文章通过ML语言的例子,展示了如何利用模块系统实现Monad,包括Option Monad和IO Monad。作者认为,ML完全可以实现Monad,但默认不这样做是因为Monad并非总是最佳选择,它可能导致代码难以转换和缺乏灵活性。

开发

Starship:你的炫酷终端提示符

2025-06-24
Starship:你的炫酷终端提示符

Starship是一个跨平台的、高度可定制的终端提示符,它能美化你的命令行界面,并提供丰富的信息。安装方法很简单,只需将初始化脚本添加到你shell的配置文件中即可,支持bash、zsh、fish、powershell、ion、elvish、tcsh、nushell、xonsh和cmd等多种shell。无论你是Linux、macOS还是Windows用户,都能轻松体验Starship带来的便捷和美观。

告别pip,拥抱uv:Docker化Flask/Django应用的提速秘籍

2025-06-24
告别pip,拥抱uv:Docker化Flask/Django应用的提速秘籍

本文介绍了如何使用uv替代pip来管理Docker化Flask/Django应用的依赖项,从而实现高达10倍的提速。作者详细讲解了pyproject.toml文件的配置、Dockerfile的修改以及uv命令的使用,并提供了一个示例项目和视频教程。通过使用uv,可以避免使用venv,并以非root用户身份运行应用,显著提高构建速度和效率。

开发

Haskell攻克N皇后变种难题:优雅的回溯算法与性能优化

2025-06-24

本文讲述了作者使用Haskell语言解决LinkedIn上一个N皇后问题的变种,该问题在棋盘上放置皇后,满足行、列、颜色区域各只有一个皇后且无对角线相邻的限制。作者尝试了多种算法优化策略,包括回溯法、消除法、提前检测死锁以及策略排序,最终实现了高效的解决方案,并与SMT求解器进行了性能比较。通过巧妙的数据结构运用和算法设计,作者的Haskell代码在解决大型棋盘问题时展现出优异的性能。

开发 N皇后问题

跨平台复古游戏开发:从TRSE到C语言的挑战与经验

2025-06-24
跨平台复古游戏开发:从TRSE到C语言的挑战与经验

作者讲述了开发一款可在Commodore 64、Commodore PET等复古电脑上运行的Roguelike游戏的历程。最初尝试使用TRSE开发环境,但由于其Pascal基础、平台兼容性问题和库支持不足等原因,最终转向C语言。C语言的跨平台特性虽然有所帮助,但仍需大量条件编译代码处理不同系统架构、编译器和标准差异。作者总结了多平台开发的经验教训,包括:从小处着手、谨慎使用条件编译、优先处理核心游戏机制、设计灵活的资源、利用模拟器进行测试以及深入了解硬件特性。最终,作者决定优先完善Commodore 64平台版本,再逐步扩展到其他平台。

小型公司SOC 2认证之旅:从无尽问卷到Type I通过

2025-06-24
小型公司SOC 2认证之旅:从无尽问卷到Type I通过

一家小型公司为了摆脱无休止的安全问卷调查,开启了SOC 2认证之旅。他们使用Vanta平台连接服务、修复合规差距,制定大量策略,实施零信任生产访问,升级技术栈(Nx、Infisical、监控、VPN等),进行渗透测试并评估所有供应商。最终,他们顺利通过了SOC 2 Type I认证,并正在进行Type II认证。过程中,他们总结经验教训,强调了策略制定、技术升级和供应商评估的重要性,并分享了使用Vanta等工具简化流程的经验。

开发 安全合规

Zig•EM框架:一个基于Zig语言的嵌入式编程框架

2025-06-24

Zig•EM是一个新兴的嵌入式编程框架,基于Zig语言构建。文章详细介绍了Zig•EM的安装、构建系统(利用Zig缓存加速构建)、项目结构(包含独特的包、桶和单元层次结构)、以及核心代码结构。Zig•EM采用独特的META和TARG两阶段编译流程,META阶段在主机上进行配置和代码生成,TARG阶段则针对目标硬件进行编译,从而实现高效的嵌入式程序开发。文章还提供了安装Zig•EM VS Code扩展的方法,以及一些示例程序,帮助读者快速上手。

开发
1 2 52 53 54 56 58 59 60 213 214