- 博客(159)
- 收藏
- 关注
原创 夜天之书 #107 担任 ASF 董事会成员及技术创业
但是,我也离开了许多曾经参与过的开源项目,主要是一些复杂的分布式数据系统,如果你没有一个明确的日常工作关系,是很难维持参与的,因为你创作的代码对自己的日常生活没有什么帮助,而且出了问题,还要被甩锅。于是在进入到公司实习的状态,被同事跟公司环境“荼毒”之前,我既然知道未来可能要接触跟 Apache Flink 相关的工作,就开始循着其官方网站的介绍,订阅邮件列表,从开源社群的角度了解他们正在做的事情。实际也是如此,如果没有现实的需求驱动,无论是个人的、企业的还是社会的,那么做一件事情的热情很快就会消退。
2025-03-26 10:53:57
604
原创 黄金屋 #2 我应该将产品开源吗?
可以看到,开源协同带来的核心收益,(来自黑客群体的)同行评审,在某些类型的软件开发上很难出现。这是因为朴素的独立黑客大多关心自己能用上的功能,因此对于 Linux 这样的操作系统及其上面的生态,在自己使用时遇到的问题,将修复和改进的补丁分享出来并非难事。可是,要想让独立黑客们开发一个自己用不上的能力,例如企业合规管理或者大规模的分布式数据系统,除非有明确的企业支持,否则难以为继。然后,结合实际案例,讨论企业开源的内在动机,企业开源的外部动力,以及如何调动软件研发当中的开源要素。闭源真正想保护的是什么?
2025-03-19 19:15:15
543
原创 夜天之书 #106 Apache 软件基金会如何投票选举?
近期若干开源组织进行换届选举。在此期间,拥有投票权的成员往往会热烈讨论,提名新成员候选人和治理团队的候选人。虽然讨论是容易进行的,但是实际的投票流程和运作方式,在一个成员众多的组织中,可能会有不少成员并不清楚。本文以 Apache 软件基金会(Apache Software Foundation, ASF)为例,介绍 ASF 所采用的投票方式。首先介绍一年一度的成员大会期间所采用的两种投票方式:单...
2025-02-28 08:37:09
823
原创 夜天之书 #105 开源孪生:商业开源的模式实践
最近一个多月没有发布新的文章,我把时间大多投入在实践验证自己在多次演讲中都描绘过的开源孪生模式上。开源孪生模式本文展开介绍上图提及的各个具体实践,并说明这一模式如何可持续发展。商业软件无需开源《大教堂与集市》一书收录了 Eric Raymond 的五篇文章,其中一篇名为《魔法锅》,这可能是关于如何可持续运行开源项目最早的讨论。自然,其中也包括如何在运行开源项目的同时获得商业回报。尽管《魔法锅》的重...
2025-01-15 11:54:30
1201
原创 夜天之书 #104 开源软件有断供的风险吗?
近期,Linux上游因为受美国出口管制条例的影响,将移除部分开发者的MAINTAINER权限,引起了新一轮对开源依赖的重新评估。关于其中开源精神和社群治理的讨论,卫Sir的两篇文章已经讨论得比较清楚(见尾注)。本文主要从软件供应链的角度出发,回应对“开源软件的断供风险”的担忧。简言之,开源协议只是向用户授权自由使用特定版本源代码。除此以外,大部分开源协议都明确声明不提供维保,更不承诺有一...
2024-11-21 23:39:50
941
原创 夜天之书 #103 开源嘉年华纪实
上周在北京参与了开源社主办的 2024 中国开源年会。其实相比于有点明显班味的“年会”,我的参会体验更像是经历了一场中国开源的年度嘉年华。这也是在会场和其他参会朋友交流时共同的体验:在开源社的 COSCon 活动上,能够最大限度地一次性见到所有在中国从事开源相关工作的人。我在本次会场上有两个演讲,分别是 Rust 分论坛上分享的《高性能 Rust 编程:如何减少数据拷贝和并发开销》,以及开源运营分...
2024-11-06 17:47:49
926
原创 黄金屋 #1 开发者的未来:基于云服务构建数据基础设施
从亚马逊云科技(AWS)发布 S3 对象存储服务转型云计算至今,已经过去了 18 个年头。今天,在云上交付数据基础设施(Data Infrastructure)已经是广为用户接受的模式。即使是私有部署环境,往往也使用 Kubernetes 调度容器,并且能够方便地找到兼容 S3 API 的对象存储服务。应该说,未来的应用全面上云是可以遇见的。那么,作为应用数字底座的数据基础设施,包括各种形态的数据...
2024-08-15 17:30:16
667
原创 夜天之书 #102 从参与 Rust 标准库开发看开源贡献的源动力
首先介绍一下我在 Rust 标准库当中做的两个微小的工作。第一个是从去年 8 月 14 日发起,今年 4 月 6 日合并,历时约 8 个月,目前仍在等待 stabilize 的为 OnceCell 和 OnceLock 增加新接口的提案:impl get_mut_or_init and get_mut_or_try_init for OnceCell and OnceLock[1]第一次提交贡献第...
2024-08-09 22:54:53
673
原创 夜天之书 #101 CommunityOverCode Asia 2024 参会纪实
CommunityOverCode Asia 2024 于 7 月 26 日到 28 日在杭州举行。其前身是 Apache 软件基金会一年一度的 ApacheCon 活动,通常会在多地分别举办。今年已经举行的是本次亚洲大会,以及 6 月在斯洛伐克举行的欧洲大会。10 月,北美大会将在丹佛举行,我也会在北美的会议上分享两个主题:Mobilize Your Community Army: A Comm...
2024-07-31 16:52:21
550
原创 夜天之书 #100 Apache DataFusion 湾区线下聚会纪实
6 月 24 日,我在北美湾区参与了一场线下的 Apache DataFusion 聚会活动。其实我是 6 月 21 日才到的旧金山,6 月 18 日才发现湾区有这样一场线下活动。不过或许得益于我在今年在 DataFusion 做过几次贡献,GreptimeDB 是 DataFusion 在行业顶级的应用标杆,会议组织方很干脆的就增加了一个 Speaker 席位,让我能够做在聚会上做题为《Boos...
2024-07-16 08:30:37
940
原创 夜天之书 #99 改良 SQL Interval 语法:一次开源贡献的经历
本文是 GreptimeDB 首位独立 Committer Eugene Tolbakov所作。在上一篇文章《GreptimeDB 首位独立 Committer Eugene Tolbakov 是怎样炼成的?》当中,我从社群维护者的视角介绍了 Eugene 的参与和成长之路。这篇文章是在此之后 Eugene 受到激励,从自己的角度出发,结合最近为 GreptimeDB 改良 SQL Interv...
2024-07-10 06:06:55
552
原创 天工开物 #14 分析时序数据:从 InfluxQL 到 SQL 的演变
近年来,时序数据的增长是 Data Infra 领域一个不容忽视的趋势。这主要得益于万物互联带来的自然时序数据增长,以及软件应用上云和自身复杂化后的可观测性需求。前者可以认为是对联网设备的可观测性,而可观测性主要就建构在设备或应用不断上报的指标和日志等时序数据上。分析时序数据的演变史几乎是大数据分析演变史的复现,即一开始都是把数据存在关系型数据库上,使用 SQL 分析;而后由于规模增长的速度超过传...
2024-06-05 22:22:58
1130
原创 天工开物 #13 KQIR 查询引擎:Apache Kvrocks 实现 SQL 和 RediSearch 之路
『太长不看版』Apache Kvrocks[1] 作为 Redis 的开源替代,近期支持了以下查询语法:欢迎试用或跳转到文末完整示例[2]段落查看具体步骤的含义。原文作者 twice 发表于 Apache Kvrocks 官方博客[3]。本文是取得原文作者许可的中文译文,翻译过程中间略有措辞顺序调整和演绎。项目背景首先介绍一下 Apache Kvrocks 项目:它是 Redis 的开源替代,构建...
2024-06-03 18:30:48
659
原创 夜天之书 #98 Rust 程序库生态合作的例子
近期主要时间都在适应产品市场(Product Marketing)的新角色,不少想法还在酝酿和斟酌当中,于是文章输出没有太多时间来推敲和选题,只能保持每月发布相关的进展或一些零碎的思考。或许我可以恢复最早的模式,多做更新但是文章内容可能不会太过完整。原本这一期想讨论的是 ASF 开源项目代码的所有权,以及开源软件变更协议的具体含义与操作方式。但是这个话题稍显枯燥,而且要把相关细节讲清楚,还需要继续...
2024-05-31 21:23:55
1054
原创 夜天之书 #97 应当在 ASF 孵化器中帮助项目
由于 Apache 软件基金会(ASF)过去十年在国内的文化传播,许多开源软件的创作者都有一个将自己的软件捐赠到 ASF 并最终成为顶级项目的梦想。我所接触到的 Apache Fury[1] / Apache OpenDAL[2] / Apache StreamPark[3] 都有这样的背景。按照目前 ASF 的章程和惯例,开源项目要想成为 ASF 顶级项目,绝大多数情况下需要经过 ASF 孵化器...
2024-04-29 08:30:07
761
原创 夜天之书 #96 如何处理 Good First Issue
我在《GreptimeDB 社群观察报告》当中提过,GreptimeDB 的 good-first-issue[1] 流转速度极快,大部分容易上手的工作往往在一周甚至两三天内就会有人认领,并且完成的情况也还不错。这个体验很难得。在最近一些 Good First Issue 的流转过程中,我重新发现了一些典型的模式。正好同大家分享一下我对于如何处理 Good First Issue 这个问题的看法。...
2024-03-15 22:19:24
1033
原创 夜天之书 #95 GreptimeDB 社群观察报告
GreptimeDB 是格睿科技(Greptime)公司研发的一款开源时序数据库,其源代码[1]在 GitHub 平台公开发布。https://github.com/GreptimeTeam/greptimedb我从 2022 年开始知道有 GreptimeDB 这个项目。2023 年,我注意到他们的 Community Program[2] 是有认真写的,不是无脑复制所谓成功项目的大段规则,于是...
2024-02-06 08:25:11
1108
原创 夜天之书 #94 开发者关系的指标与价值
随着软件行业持续发展,企业构建软件系统的复杂度日益上升,系统不同层次和不同方面的分工日益精细。许多公司不再完全自己生产所有需要的软件,而是转向大量采购技术产品来满足自己的软件需求。除了核心业务逻辑需要独立实现以外,支持业务逻辑的软件平台和服务都可以甚至应该采购,开发业务逻辑本身也能够藉由采购开发工具和平台来进行加速。前者的例子包括传统商业软件和云服务等,后者的例子有 Copilot 和 Retoo...
2024-01-26 22:57:51
1025
原创 夜天之书 #93 Apache OpenDAL 毕业随感
Apache OpenDAL 简介Apache OpenDAL 是一个以软件库形式提供的数据访问层。它允许用户通过统一的 API 简单且高效地访问不同存储服务上的数据。你可以把它当作是一个更好的 S3 SDK 实现,也可以通过统一的 OpenDAL API 来简化配置访问不同的数据存储服务的工作(例如 S3 / HDFS / GCS / AliyunOSS 等)。OpenDAL 以库形式提供,因此...
2024-01-19 21:14:50
1564
原创 夜天之书 #92 全票通过?同侪社群无须整齐划一。
近几年,国内开源项目捐赠到 Apache 软件基金会(ASF)的案例很有一些。几乎每个在进入孵化器和从孵化器当中毕业时发通稿的项目,都会选择在标题中加入“全票通过”的字样。诚然,大部分项目在 ASF 孵化器中茁壮成长,实际上投票结果也是没有反对票,使用这一标题无可非议。然而,对于把同侪社群(Community of Peers)作为社群核心价值之一的 ASF 来说,追求全票通过并不是必须的。在 A...
2023-12-28 21:25:41
954
原创 夜天之书 #91 如何撰写一个 ASF 孵化器提案?
今天下午,我跟姜宁老师有一个线上直播会讨论与标题相同的问题,欢迎关注。随着 Apache 软件基金会(ASF)在国内的深入发展,越来越多的项目希望藉由进入 ASF 孵化器孵化,来建设开源社群。在进入孵化器之前,项目发起人或其核心团队必须撰写一份孵化器提案来介绍项目的基本情况,以供孵化器项目管理委员会(Incubator Project Management Committee, IPMC)评估是否...
2023-12-23 14:04:33
1027
原创 天工开物 #12 Zig 语义分析
本文承接《Zig 中间表示》的内容,继续讨论 Zig 程序编译的下一步:从 ZIR 指令序列,经过语义分析的过程,生成 AIR 指令序列。本文翻译自 Mitchell Hashimoto 关于 Zig 的系列博客第四篇:Zig Sema: ZIR => AIR (https://mitchellh.com/zig/sema)语义分析是 Zig 程序编译的核心环节,且它包括了 Zig 语言独特...
2023-12-12 14:54:25
828
原创 天工开物 #11 Zig 中间表示
本文承接《Zig 词法分析和语法解析》的内容,继续讨论 Zig 程序编译的下一步:从抽象语法树(AST)中生成中间表示(IR)。本文翻译自 Mitchell Hashimoto 关于 Zig 的系列博客第三篇:Zig AstGen: AST => ZIR (https://mitchellh.com/zig/astgen)翻译本文的过程中,我越来越回想起自己使用 Perl 6 做编译实习作业...
2023-12-12 14:51:24
810
原创 天工开物 #10 Zig 词法分析和语法解析
Zig[1] 语言是近几年来逐渐声名鹊起的一个新编程语言,也是数目稀少的系统编程语言家族中的一个新成员。它由 Andrew Kelley 于 2015 年开始创造,至今已经开发了八个年头,但是仍然还未发布 1.0 版本。不过,已经有不少新锐项目选择使用 Zig 开发,例如 JavaScript 运行时和完整开发套件 bun[2] 和分布式金融数据库 tigerbeetle[3] 等。Hashico...
2023-12-11 19:03:16
953
原创 大图书馆 #9 《流计算系统图解》书评
上周,我收到清华大学出版社编辑寄来的新书《流计算系统图解》。趁着周末的功夫,我快速浏览了本书的主要内容。一句话评价:值得一读,尤其是对开始开发流计算任务或系统一到两年,初步实现过一些功能或作业,但是还没有对流式系统建立起系统认识的开发者。本书作者是两位 Apache Heron (incubating) 项目的 PMC 成员,Heron 是源自 Twitter 的计划取代 Storm 的流计算系统...
2023-11-20 20:40:42
233
原创 夜天之书 #90 再谈 Rust 项目社群治理
上一篇文章《Rust 社群何以走到今天?》发布之后,得益于 Rust 社群的繁荣和成员的分享惯例,我收到了不少关于 Rust 现状的评论。大部分评论集中在 Rust 项目社群的治理上,即 BDFL 和基金会会对 Rust 项目社群产生什么影响,以及 Rust 项目社群是否需要 Leadership 组织。我在上一篇文章中引用了 Graydon Hoare 和 @withoutboats 等人的博文...
2023-11-18 18:42:55
376
1
原创 夜天之书 #89 Rust 社群何以走到今天?
本文有些标题党,实际想讲的内容,是我从部分 Rust 曾经的核心开发者的自述当中,所发现的 Rust 项目社群开源协同模式发展至今的一些特点。我会从这些自述发言的内容切入和展开,对比其他社群遇到相似挑战的状况和应对方式,讨论 Rust 项目社群在协同方式维度上走到今天的沿革。Graydon Hoare 的博文说起 Rust 语言的核心成员,你会先想起谁?不像 C# 之父 Anders Hejlsb...
2023-11-14 19:42:18
309
原创 天工开物 #9 Why Async Rust(译文)
昨天的文章里,我介绍了 Async Rust 当前的实现以及一个实现 Async Runtime 需要了解的概念和现有的一些实践。文章发出后,有评论称 Async Rust 创造性工作,没有可借鉴的经验。诚然,Rust 系统编程语言的定位就决定了它与其他有运行时的语言在设计时存在巨大的不同,同类语言 C 和 C++ 在异步编程方面,受限于语言的历史包袱,相关的支持往往以三方库而不是语言级的支持出现...
2023-11-07 09:59:43
819
原创 天工开物 #8 Async Rust 的实现
绝大多数第一次接触 Async Rust 的开发者所写的 Hello World 程序是下面这样的:asyncfnsay_world(){println!("world");}#[tokio::main]asyncfnmain(){//Calling`say_world()`doesnotexecutethebodyof`say_world...
2023-11-06 10:25:52
713
原创 夜天之书 #88 Elastic License 2.0 与开源协议的发展
译序我在此前的多篇文章中讨论了商业开源的话题:《企业开源的软件协议模型实践》《企业实践开源的动机》《商业源码协议为何得到 HashiCorp 等企业的垂青?》《企业如何实践开源协同》《中国不缺好的开源开发者》“商业探索与可持续”一节《开源不是商业模式》《诱导转向的伪开源战略》《免费增值的商业模式》这些讨论当中观点的源头,除了我在商业开源公司的工作经历以外,也有对国外企业主和律师的内容的理解。其中,...
2023-11-03 23:49:53
559
原创 夜天之书 #87 中国不缺好的开源开发者
过去数年,我从参与 Perl 6 和 Apache Flink 等项目出发,逐步进入到开源的世界当中。我在 2019 年成为 Apache Flink Committer,2020 年成为 Apache Curator 的 PMC 成员,2021 年全力投入 TiDB 社群的建设,2022 年成为 Apache 软件基金会(ASF)的正式成员和孵化器导师并接连帮助三个开源项目加入孵化器孵化,202...
2023-09-18 17:02:43
385
原创 夜天之书 #86 商业源码协议为何得到 HashiCorp 等企业的垂青?
当地时间 8 月 10 日,知名开源软件公司 HashiCorp 发布一则公告[1],称其原先在 Mozilla Public License 2.0[2] 下发布的 Terraform、Consul 和 Vault 等多款软件,将在未来的版本中改为使用商业源码协议,即 Business Source License 1.1[3] 来发布。此前,已有其他知名开源软件公司也改用或从一开始就使用商业源...
2023-08-12 23:41:06
387
原创 天工开物 #7 Rust 与 Java 程序的异步接口互操作
许多语言的高性能程序库都是建立在 C/C++ 的核心实现上的。例如,著名 Python 科学计算库 Pandas 和 Numpy 的核心是 C++ 实现的,RocksDB 的 Java 接口是对底层 C++ 接口的封装。Rust 语言的基本目标之一就是替代 C++ 在这些领域的位置,为开发者提供 Rust 具备的安全性和可组合性优势。Apache OpenDAL (incubating)[1] 是...
2023-07-31 00:40:23
1835
原创 Apache Kvrocks 毕业随感
Apache Kvrocks 是一个分布式 KV 数据库,使⽤ RocksDB 作为底层存储引擎并兼容 Redis 协议,旨在解决 Redis 内存成本⾼以及容量有限的问题,可以作为 Redis 的持久化变体做 drop-in 替换。Kvrocks 起初是美图内部研发的软件,于 2019 年对外开源并独立运营。2022 年 4 月,Kvrocks 在 Champion 陈亮的推动下进入 ASF 孵...
2023-06-28 19:11:17
623
原创 夜天之书 #84 国产开源社群的运营,为何总是画风奇特?
在过去几年的投入和关注下,国产开源社群如雨后春笋一般冒了出来。今天,以 GPT 为首的 AI 新势力接过话题度的接力棒,我们可以在降温周期里回顾一下过去几年间冒出来的国产开源社群都有什么样的成绩,有些什么样共性的问题可以改进。本文标题是国产开源社群的运营总是画风奇特,这也符合近几年来作为理论上开源社群的主要参与者,即软件开发者们的主流感受。从眼花缭乱的开源营销,到一次性开源、开关式开源的另类创新,...
2023-06-06 13:48:13
356
原创 天工开物 #6 Git 分支管理与版本发布
Git 版本管理系统由 Linux 的作者 Linus Torvalds 于 2005 年创造,至今不到二十年。起初,Git 用于 Linux Kernel 的协同开发,用于替代不再提供免费许可的 BitKeeper 软件。随后,这一提供轻量级分支的分布式版本管理系统得到了开源开发者的广泛喜爱,在大量开源项目中投入使用。如今,Git 几乎是版本管理系统的同义词。Git 最大的创新就是轻量级的分支实...
2023-05-19 18:35:42
1087
原创 夜天之书 #83 Web API 的开发工具和平台
上一篇文章《Web API 简介》的落脚点是 Web API 的体验。Web API 作为许多软件的第一道门面,提升其体验的努力从来没有停止过。今天,围绕 Web API 的开发体验和使用体验,已经成长出一个庞大的软件生态。本文以常用的 Web API 开发工具和平台为切入点,介绍当前 Web API 的开发者基础设施。终端工具最初的 Web API 开发者显然是黑客,而黑客们的开发工具大多是终端...
2023-05-17 21:30:12
274
原创 夜天之书 #82 Web API 简介
Application Programming Interface (API) 即应用程序接口。顾名思义,它是开发者访问应用程序的接口。例如,你可以通过以下命令查询 GitHub 上特定代码仓库的元数据信息:curl https://api.github.com/repos/apache/pulsarGitHub 会返回以下信息:{ "id": 62117812, "name": "pul...
2023-04-24 18:25:49
295
原创 夜天之书 #81 大厂开源之殇
本轮开源之风吹起迄今数年,最大的影响还是越来越多的商业公司开始探索开源方法能够如何改变自己的经营策略。开源策略循序渐进分成使用、参与和发起。在发起开源项目实践一线的,一个是打着开源旗号的创业公司,另一个就是大型企业尤其互联网企业(大厂)。前者我在过去的文章里已经详细讨论了他们的动机、面临的风险和应对策略。本文将关注大厂发起的开源项目的共同特点,讨论围绕这样的开源项目聚拢起来的企业研发团队、市场运营...
2023-04-14 23:49:15
648
原创 大图书馆 #8 流式系统阅读指南
本文从软件系统、学术论文和出版书籍三个方面介绍研究学习类似 Apache Flink 的流式系统的参考材料。本文链接较多,可以点击阅读原文到博客上浏览方便点击链接。软件系统现实世界的软件系统都是以生产可用为目的的。因此,其代码、文档和讨论不局限于流式计算本身,还有许多分布式系统共通的话题。在这里,我会强调其中和流计算相关的内容。Apache FlinkApache Flink[1]大约是国内目前...
2023-04-04 00:37:23
326
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人