分类: 开发

Moose: 用 TypeScript/Python 一键构建分析型后端

2025-04-23

Moose是一个革命性的框架,允许开发者使用纯TypeScript或Python代码构建分析型后端。它解决了传统方案中工具碎片化、模式漂移、开发流程繁琐以及SQL-only处理等痛点。Moose将你的代码作为数据应用逻辑和数据基础设施的单一事实来源,提供ClickHouse、Redpanda和Temporal的预配置集成,支持本地一键启动和热重载开发,极大提升开发效率。开发者只需定义一次模型,即可在API、流和数据库中无缝使用,无需额外步骤。

开发

ZGC内存分配机制深度解析:JDK-8350441带来的Mapped Cache增强

2025-04-23

本文深入探讨了OpenJDK垃圾回收器ZGC的Java堆内存分配机制,重点关注JDK-8350441引入的Mapped Cache增强功能。ZGC将堆内存划分为不同大小的页面(Small, Medium, Large),并通过页面分配器和分区管理内存。文章详细解释了页面分配过程,包括容量管理、物理内存和虚拟内存的交互,以及Mapped Cache在提高分配效率和减少碎片化方面的作用。尤其关注了NUMA架构下的多分区分配策略,以及内存提交、回收和碎片整理等细节,最后探讨了延迟和启动时间之间的权衡。

告别“氛围编程”,拥抱痛苦的学习过程

2025-04-23
告别“氛围编程”,拥抱痛苦的学习过程

一位程序员Varun Raghu发文宣布告别“氛围编程”(vibe coding,指借助AI快速完成编码,而非深入学习的过程)。他反思到,虽然AI辅助能快速构建应用,但这种方式阻碍了自身对编程概念的深入理解和学习。他意识到编程的核心在于解决问题的过程和批判性思维,而非最终的产品。因此,他决定回归到编写“糟糕”代码的传统方式,通过缓慢而刻意的学习,来真正掌握编程技能。

开发

Advanced Alchemy: SQLAlchemy 的高效伴侣库

2025-04-23
Advanced Alchemy: SQLAlchemy 的高效伴侣库

Advanced Alchemy 是一个为 SQLAlchemy 打造的经过精心设计、彻底测试和优化的伴侣库,它提供同步和异步存储库,支持常见的 CRUD 操作和高度优化的批量操作。它集成了 Litestar、Starlette、FastAPI 和 Sanic 等主要 Web 框架,并具有自定义的 Alembic 配置和 CLI,以及内置的文件对象数据类型,支持多种存储后端(fsspec 和 obstore)。此外,它还包含优化的 JSON 类型、对 UUID6 和 UUID7 的支持,以及预配置的基类。Advanced Alchemy 简化了 SQLAlchemy 模型的 CRUD 操作,并提供了丰富的功能,例如分页、排序和过滤。

开发 SQLAlchemy

Obsidian + Hugo + Cloudflare Pages:我的零成本极简博客搭建方案

2025-04-23

我最近用Obsidian写作,并结合Hugo和Cloudflare Pages搭建了一个零成本的博客。Obsidian的本地优先模式和极简主题让写作过程高效且专注;文章保存在iCloud,实现跨设备同步;Hugo和Bear主题保证了网站速度和简洁,而GitHub和Cloudflare Pages则提供了免费、稳定的部署方案。整个流程完全掌控在自己手中,无订阅,无厂商锁定,只需简单的技术配置即可实现写作和发布的无缝衔接。

开发 博客搭建

七大地理编码API大比拼:价格、限额、条款全解析

2025-04-23

本文对七大地理编码API(HERE、Google Maps、Azure Maps、OpenCage、TomTom Maps、LocationIQ和Nominatim)进行了深入比较,涵盖价格、免费额度、速率限制和使用条款等方面。文章指出,Azure Maps和Google Maps价格较高且限制较多;OpenCage和LocationIQ提供按月计费的灵活方案,LocationIQ的免费额度更慷慨;TomTom Maps的每日免费额度较高,适合用量不稳定的项目;HERE适合高用量场景;Nominatim适合小型非商业项目。选择合适的API取决于项目规模、预算和具体需求。

全球语言列表惊现!

2025-04-23
全球语言列表惊现!

这段代码展示了一个令人印象深刻的全球语言列表,涵盖了从欧洲到亚洲,从非洲到美洲的多种语言。这突显了互联网的全球化以及全球文化交流的蓬勃发展。这对于开发多语言应用程序或网站的开发者来说,是一个宝贵的资源。

开发

MinC 6.1: 一个轻量级Unix环境

2025-04-23

MinC 6.1是一个轻量级的Unix环境模拟器,现已提供简易安装向导。它包含了大量常用的Unix命令,包括文件管理、压缩、网络工具和开发工具等。虽然一些服务和守护进程暂未支持,但开发者表示会尽快推出。用户可以通过捐赠支持项目,并提出希望在未来版本中包含的软件。安装后可能需要调整杀毒软件设置以确保正常运行,并可集成至VS Code作为终端使用。

开发

eBPF 程序的可移植性难题与 BPF CO-RE 解法

2025-04-23
eBPF 程序的可移植性难题与 BPF CO-RE 解法

eBPF 程序的运行依赖于内核版本,不同版本内核的结构体定义差异可能导致程序崩溃。本文介绍了 BPF CO-RE 技术,它通过在编译时生成重定位信息,并在运行时利用 BTF (BPF Type Format) 信息进行字段偏移修正,从而解决 eBPF 程序的可移植性问题。即使目标内核未启用 BTF 支持,也可以通过预先下载并嵌入 BTF 文件来实现跨内核兼容。作者还提供了一个 GitHub 仓库,包含一个完整的解决方案,可以自动下载并嵌入 BTF 数据,生成可在多种内核上运行的单一二进制文件。

开发 BPF CO-RE BTF

十四个鲜为人知的Python技巧,助你进阶Python编程

2025-04-23

本文总结了十四个鲜为人知的Python技巧,涵盖类型重载、关键字参数、未来注释、泛型、协议、上下文管理器、结构化模式匹配、Python插槽、Python语法细节、高级f-string格式化、缓存、Python Futures、代理属性和元类等方面。这些技巧能有效提升Python代码的效率和可读性,例如使用类型重载增强类型安全,利用结构化模式匹配简化条件逻辑,以及运用缓存机制优化性能。即使是经验丰富的Python程序员,也能从中发现新的知识点,提升编程水平。

GitHub代码建议应用限制

2025-04-23
GitHub代码建议应用限制

GitHub代码审查中,部分代码建议无法应用,原因包括:代码无改动、PR已关闭、查看代码片段受限、单行只能应用一个建议、应用于已删除行、建议已应用或标记为已解决、来自待处理审查的建议、多行注释以及PR排队合并或系统繁忙等。

开发

Earthly Lunar:解决规模化工程团队的混沌难题

2025-04-23
Earthly Lunar:解决规模化工程团队的混沌难题

Earthly公司发现,大规模工程团队面临的最大挑战并非CI/CD速度,而是由微服务和容器化带来的技术栈多样性导致的混乱。团队间的技术差异巨大,导致平台团队疲于奔命,应用团队效率低下,安全团队缺乏可视性,管理层难以保证质量和标准。Earthly推出了新产品Lunar,它通过监控整个SDLC(软件开发生命周期),而不是仅仅关注CI/CD,来解决这一问题。Lunar收集并分析代码构建、测试、扫描和部署的元数据,根据自定义策略强制执行标准,从而在不牺牲开发者速度的情况下提高工程质量和合规性。

开发

别等被要求,主动创造机会:一位程序员的职业晋升秘诀

2025-04-23

一位程序员分享了他从开发者到联合创始人再回到开发者的职业历程。他发现,职业头衔并非限制,而是最低期望值。他建议,职业发展应聚焦于自身能力、公司需求和个人兴趣的交集。与其等待晋升,不如主动承担未完成的任务,展现主观能动性。即使不被现有公司赏识,这些经验也能为未来求职加分。作者以自身为例,列举了主动创建公司通讯、撰写内部文档等事例,证明主动创造机会的重要性。

开发 主动性

本地构建Expo Android应用:eas-like-local-builder镜像

2025-04-22
本地构建Expo Android应用:eas-like-local-builder镜像

厌倦了昂贵的EAS云构建?eas-like-local-builder Docker镜像提供了一个本地构建Expo Android应用的解决方案。它模拟了EAS的构建环境,包含Ubuntu 22.04、JDK 17、NDK r26b等必需组件,方便开发者在本地或CI/CD环境中进行构建。镜像支持自定义构建配置文件(例如production),并可通过环境变量跳过版本控制检查。开发者只需运行简单的Docker命令,挂载项目目录即可进行构建,极大简化了本地构建流程。

开发 Expo

AutoKitteh:基于 Python 的工作流自动化平台

2025-04-22
AutoKitteh:基于 Python 的工作流自动化平台

AutoKitteh 是一个基于 Python 的工作流自动化和编排平台,提供易于使用的代码方式替代无代码/低代码平台。它具有无限的灵活性,并基于 Temporal 提供持久化执行平台,隐藏了基础设施和编码的复杂性。AutoKitteh 支持自托管和云端部署,可用于 DevOps、FinOps、MLOps、SOAR 等场景,并具有内置集成、可扩展的“无服务器”架构等特点。

Atuin Desktop:可执行的运行手册,终结粘贴复制

2025-04-22
Atuin Desktop:可执行的运行手册,终结粘贴复制

Atuin Desktop 是一款本地优先的可执行运行手册编辑器,它看起来像文档,但运行起来像终端。它集脚本块、嵌入式终端、数据库客户端和 Prometheus 图表于一体,解决了团队工作流程依赖于个人记忆和过时文档的问题。通过可重复、可共享和可靠的工作流程,Atuin Desktop 帮助团队摆脱了在 Slack 和 Notion 中搜索答案以及从 shell 历史记录中查找命令的困境,最终实现高效协作和自动化运维。

开发

WinFile:怀旧的Windows文件管理器复活了!

2025-04-22
WinFile:怀旧的Windows文件管理器复活了!

微软宣布将于2025年3月1日停止维护WinFile项目,但好消息是,这个经典的Windows文件管理器以原生x86、x64和arm64桌面应用的形式复活了,支持所有当前版本的Windows系统,包括Windows 11。项目维护者欢迎用户提交Bug修复和改进建议,但不会再开发新的分支。WinFile项目源码包含两个主要版本:尽量保持原样的`original_plus`分支和积极开发的`master`分支。用户可以从微软商店或项目页面下载预编译版本。

开发

Sapphire:一款Rust编写的下一代包管理器

2025-04-22
Sapphire:一款Rust编写的下一代包管理器

Sapphire是一款基于Rust的实验性包管理器,受到Homebrew的启发,旨在提供更强大的软件安装和管理功能。它支持安装命令行工具、库、语言、桌面应用程序等,并具有并行下载、自动依赖解析、从源代码构建等特性。目前仅支持ARM架构,未来可能支持x86。该项目处于Alpha阶段,尚不稳定,需谨慎使用。

开发

SwiftUI+C++: Kulve 应用的技术栈深度解析

2025-04-22

Kulve 是一款使用 SwiftUI 和 C++ 混合开发的原生 Twitch 应用。为了实现跨平台和高性能,它巧妙地利用了 Swift 5.9 引入的 Swift/C++ 互操作性。后端采用 CMake 和 VSCode 进行开发,保证了跨平台兼容性;前端使用 Xcode 和 SwiftUI 构建 UI。C++ 负责处理线程、异步网络和运行时等底层任务,Swift 则专注于 UI 展示。文章详细介绍了其巧妙的内存管理机制,通过 Swift 包装器管理 C++ 的原始指针,避免了内存泄漏并提高了性能。这种架构使得 Kulve 能够高效处理大量数据,例如在聊天功能中嵌入数据库。

开发

Parcom:简洁的 Common Lisp 解析组合器库

2025-04-22
Parcom:简洁的 Common Lisp 解析组合器库

Parcom 是一个简洁的 Common Lisp 解析组合器库,类似于 Haskell 的 Parsec 和 Rust 的 Nom。它直接操作字符串,无需依赖,支持多种 Common Lisp 实现,并提供丰富的解析器和组合器,方便用户构建自定义解析器。Parcom 还包含一个可选的 JSON 解析器,支持 Unicode 字符。其核心在于组合现有解析器构建复杂的解析逻辑,并通过简洁的 API 提供强大的功能。

Python库Rowboat:简易AI对话API调用

2025-04-22
Python库Rowboat:简易AI对话API调用

这段Python代码演示了如何使用Rowboat库与AI聊天API交互。代码首先初始化客户端,连接到本地主机上的API服务。然后,它展示了两种与API对话的方法:一种是使用`StatefulChat`类创建状态化的会话,另一种是使用底层`client.chat`方法,直接发送消息数组。两种方法都成功地获取并打印了AI的回复,展示了Rowboat库的简单易用性,适合快速集成AI对话功能到Python项目中。

开发

C语言宏:优雅地检测常量表达式

2025-04-22

本文探讨了在C语言中编写宏来检测表达式是否为常量表达式的多种方法。作者尝试了使用C23的静态复合字面量、GNU扩展的`__builtin_constant_p`、`static_assert`、`sizeof`结合复合字面量数组、`sizeof`结合枚举常量以及逗号运算符等方法。每种方法都有其优缺点,例如C23特性支持度不高,`__builtin_constant_p`依赖GNU扩展,`static_assert`和`sizeof`方法可能改变表达式的类型,逗号运算符会产生警告信息。最终作者得出结论,没有完美的方案,选择取决于具体需求和C标准版本。

Ruby 的线程安全缓存库 MemoTTL:提升性能,节省内存

2025-04-22
Ruby 的线程安全缓存库 MemoTTL:提升性能,节省内存

MemoTTL 是一个为 Ruby 设计的线程安全缓存库,支持 TTL(生存时间)和 LRU(最近最少使用)淘汰策略。它能够有效缓存方法的返回值,并在值过期或内存使用超过限制时自动清除,从而提升性能并节省内存。通过 `include MemoTTL` 和 `memoize` 方法即可轻松集成,并提供清除缓存的便捷方法。示例展示了如何在 Rails 控制器中使用 MemoTTL 优化方法调用,避免重复计算,从而显著提升效率。

开发

Morphik:超越传统RAG的强大多模态文档搜索引擎

2025-04-22
Morphik:超越传统RAG的强大多模态文档搜索引擎

Morphik是一个革命性的文档搜索引擎,它超越了传统的检索增强生成(RAG)技术,能够高效处理高度技术性和视觉化的文档。Morphik支持多模态搜索(包括图像、PDF、视频等),并能构建知识图谱、快速提取元数据,且提供与Google Suite、Slack和Confluence等工具的集成。它拥有免费层和开源版本,并提供Python SDK和REST API,极大简化了文档的摄取和查询过程。开发者可通过简单的代码快速上手,并通过Morphik控制台进行可视化操作。虽然开源版本的功能受限,但Morphik仍致力于提高速度、集成更多工具并持续改进,欢迎开发者贡献代码。

剑桥大学出版社出版的理论物理学教材系列

2025-04-22

大名鼎鼎的David Tong教授的讲义升级为一套剑桥大学出版社出版的理论物理学教材。这套书不仅包含了原讲义的所有内容,还增加了许多新的内容和更清晰的解释,甚至连“Schwarzschild”的拼写都纠正了!价格也十分亲民。目前已出版四本,内容涵盖了大量本科和研究生课程,并获得了众多知名物理学家的高度评价,被誉为21世纪的朗道-栗弗席兹教程。

用拓扑学和范畴论优化机器编织程序

2025-04-22

本文探讨了机器编织程序语义的严谨性问题。作者通过类比传统编程语言中的指令交换性问题,引出机器编织中由于纱线交叉导致的指令不可交换性。为解决这一问题,作者研究了编织群和编织幺半群范畴,利用其代数结构对机器编织程序进行形式化描述,最终设计了一种多项式时间算法来规范化机器编织程序,从而实现程序优化和编译。这篇文章将编程语言研究、拓扑学、群论、范畴论和量子计算等多个领域巧妙地结合起来,展现了跨学科研究的魅力。

开发

ElatoAI:基于ESP32的实时AI语音对话系统

2025-04-22
ElatoAI:基于ESP32的实时AI语音对话系统

ElatoAI是一个开源项目,它利用OpenAI实时API、ESP32、安全WebSocket和Deno Edge函数实现了超过10分钟不间断的全球语音对话。该系统由前端(Next.js)、边缘服务器(Deno)和ESP32客户端三部分组成,支持自定义AI角色、多种语音和个性化设置。它采用Opus编解码器,具有低延迟、高清晰度和安全可靠等特点,并通过Supabase数据库进行用户认证和数据存储。目前该项目还在持续开发中,欢迎贡献代码。

开发 实时对话

构建网络的悖论:从小原子网络起步

2025-04-22
构建网络的悖论:从小原子网络起步

Andrew Chen的新书深入探讨了构建网络产品和平台的经验和策略,揭示了一个核心悖论:大型成功的网络效应需要从小而稳定的“原子网络”起步。书中分析了Uber、Airbnb、Reddit等公司的案例,总结出克服“冷启动”问题的关键策略,例如解决核心用户的痛点、创造“魔法时刻”以及巧妙运用邀请制、补贴等手段。作者强调,持续关注用户价值,并根据实际情况调整策略,才能最终实现网络效应的爆发式增长。

开发

W3C探索兴趣小组:填补Web身份验证的空白

2025-04-22
W3C探索兴趣小组:填补Web身份验证的空白

在快速发展的Web世界中,身份验证和信任机制面临诸多挑战。W3C探索兴趣小组(IG)应运而生,它并非规范制定者,而是连接现实世界和标准世界的桥梁。IG致力于探索Web身份验证中的技术差距、新兴钱包模型、跨信任框架的用例以及监管信号等问题,为未来的标准制定提供方向。任何人都可以参与其中,贡献想法,共同构建更安全、更可靠的Web生态系统。

Feast、Milvus和Docling构建RAG应用的快速入门

2025-04-22
Feast、Milvus和Docling构建RAG应用的快速入门

本项目演示了如何使用Feast来驱动检索增强生成(RAG)应用程序。它扩展了基本的RAG演示,展示了如何使用Docling将PDF转换为LLM可用的文本数据,如何使用Milvus作为向量数据库来存储和检索RAG的嵌入,以及如何在摄取过程中使用Docling转换PDF。此外,它还演示了在线特征检索、声明式特征定义、向量搜索、结构化和非结构化上下文以及版本控制和可重用性等功能。项目包含示例数据、定义Feast特征视图和实体配置的Python文件以及配置离线和在线存储的YAML文件,并附带两个主要notebook:一个演示如何使用Docling提取PDF文本并将其存储在Parquet文件中,另一个演示如何使用Feast摄取文本数据并将其存储在和检索自在线存储。

开发 Milvus Feast
1 2 105 106 107 109 111 112 113 213 214