自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(150)
  • 收藏
  • 关注

原创 夜天之书 #100 Apache DataFusion 湾区线下聚会纪实

6 月 24 日,我在北美湾区参与了一场线下的 Apache DataFusion 聚会活动。其实我是 6 月 21 日才到的旧金山,6 月 18 日才发现湾区有这样一场线下活动。不过或许得益于我在今年在 DataFusion 做过几次贡献,GreptimeDB 是 DataFusion 在行业顶级的应用标杆,会议组织方很干脆的就增加了一个 Speaker 席位,让我能够做在聚会上做题为《Boos...

2024-07-16 08:30:37 773

原创 夜天之书 #99 改良 SQL Interval 语法:一次开源贡献的经历

本文是 GreptimeDB 首位独立 Committer Eugene Tolbakov所作。在上一篇文章《GreptimeDB 首位独立 Committer Eugene Tolbakov 是怎样炼成的?》当中,我从社群维护者的视角介绍了 Eugene 的参与和成长之路。这篇文章是在此之后 Eugene 受到激励,从自己的角度出发,结合最近为 GreptimeDB 改良 SQL Interv...

2024-07-10 06:06:55 449

原创 天工开物 #14 分析时序数据:从 InfluxQL 到 SQL 的演变

近年来,时序数据的增长是 Data Infra 领域一个不容忽视的趋势。这主要得益于万物互联带来的自然时序数据增长,以及软件应用上云和自身复杂化后的可观测性需求。前者可以认为是对联网设备的可观测性,而可观测性主要就建构在设备或应用不断上报的指标和日志等时序数据上。分析时序数据的演变史几乎是大数据分析演变史的复现,即一开始都是把数据存在关系型数据库上,使用 SQL 分析;而后由于规模增长的速度超过传...

2024-06-05 22:22:58 995

原创 天工开物 #13 KQIR 查询引擎:Apache Kvrocks 实现 SQL 和 RediSearch 之路

『太长不看版』Apache Kvrocks[1] 作为 Redis 的开源替代,近期支持了以下查询语法:欢迎试用或跳转到文末完整示例[2]段落查看具体步骤的含义。原文作者 twice 发表于 Apache Kvrocks 官方博客[3]。本文是取得原文作者许可的中文译文,翻译过程中间略有措辞顺序调整和演绎。项目背景首先介绍一下 Apache Kvrocks 项目:它是 Redis 的开源替代,构建...

2024-06-03 18:30:48 457

原创 夜天之书 #98 Rust 程序库生态合作的例子

近期主要时间都在适应产品市场(Product Marketing)的新角色,不少想法还在酝酿和斟酌当中,于是文章输出没有太多时间来推敲和选题,只能保持每月发布相关的进展或一些零碎的思考。或许我可以恢复最早的模式,多做更新但是文章内容可能不会太过完整。原本这一期想讨论的是 ASF 开源项目代码的所有权,以及开源软件变更协议的具体含义与操作方式。但是这个话题稍显枯燥,而且要把相关细节讲清楚,还需要继续...

2024-05-31 21:23:55 972

原创 夜天之书 #97 应当在 ASF 孵化器中帮助项目

由于 Apache 软件基金会(ASF)过去十年在国内的文化传播,许多开源软件的创作者都有一个将自己的软件捐赠到 ASF 并最终成为顶级项目的梦想。我所接触到的 Apache Fury[1] / Apache OpenDAL[2] / Apache StreamPark[3] 都有这样的背景。按照目前 ASF 的章程和惯例,开源项目要想成为 ASF 顶级项目,绝大多数情况下需要经过 ASF 孵化器...

2024-04-29 08:30:07 702

原创 夜天之书 #96 如何处理 Good First Issue

我在《GreptimeDB 社群观察报告》当中提过,GreptimeDB 的 good-first-issue[1] 流转速度极快,大部分容易上手的工作往往在一周甚至两三天内就会有人认领,并且完成的情况也还不错。这个体验很难得。在最近一些 Good First Issue 的流转过程中,我重新发现了一些典型的模式。正好同大家分享一下我对于如何处理 Good First Issue 这个问题的看法。...

2024-03-15 22:19:24 958

原创 夜天之书 #95 GreptimeDB 社群观察报告

GreptimeDB 是格睿科技(Greptime)公司研发的一款开源时序数据库,其源代码[1]在 GitHub 平台公开发布。https://github.com/GreptimeTeam/greptimedb我从 2022 年开始知道有 GreptimeDB 这个项目。2023 年,我注意到他们的 Community Program[2] 是有认真写的,不是无脑复制所谓成功项目的大段规则,于是...

2024-02-06 08:25:11 985

原创 夜天之书 #94 开发者关系的指标与价值

随着软件行业持续发展,企业构建软件系统的复杂度日益上升,系统不同层次和不同方面的分工日益精细。许多公司不再完全自己生产所有需要的软件,而是转向大量采购技术产品来满足自己的软件需求。除了核心业务逻辑需要独立实现以外,支持业务逻辑的软件平台和服务都可以甚至应该采购,开发业务逻辑本身也能够藉由采购开发工具和平台来进行加速。前者的例子包括传统商业软件和云服务等,后者的例子有 Copilot 和 Retoo...

2024-01-26 22:57:51 960

原创 夜天之书 #93 Apache OpenDAL 毕业随感

Apache OpenDAL 简介Apache OpenDAL 是一个以软件库形式提供的数据访问层。它允许用户通过统一的 API 简单且高效地访问不同存储服务上的数据。你可以把它当作是一个更好的 S3 SDK 实现,也可以通过统一的 OpenDAL API 来简化配置访问不同的数据存储服务的工作(例如 S3 / HDFS / GCS / AliyunOSS 等)。OpenDAL 以库形式提供,因此...

2024-01-19 21:14:50 1316

原创 夜天之书 #92 全票通过?同侪社群无须整齐划一。

近几年,国内开源项目捐赠到 Apache 软件基金会(ASF)的案例很有一些。几乎每个在进入孵化器和从孵化器当中毕业时发通稿的项目,都会选择在标题中加入“全票通过”的字样。诚然,大部分项目在 ASF 孵化器中茁壮成长,实际上投票结果也是没有反对票,使用这一标题无可非议。然而,对于把同侪社群(Community of Peers)作为社群核心价值之一的 ASF 来说,追求全票通过并不是必须的。在 A...

2023-12-28 21:25:41 891

原创 夜天之书 #91 如何撰写一个 ASF 孵化器提案?

今天下午,我跟姜宁老师有一个线上直播会讨论与标题相同的问题,欢迎关注。随着 Apache 软件基金会(ASF)在国内的深入发展,越来越多的项目希望藉由进入 ASF 孵化器孵化,来建设开源社群。在进入孵化器之前,项目发起人或其核心团队必须撰写一份孵化器提案来介绍项目的基本情况,以供孵化器项目管理委员会(Incubator Project Management Committee, IPMC)评估是否...

2023-12-23 14:04:33 917

原创 天工开物 #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 700

原创 天工开物 #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 688

原创 天工开物 #10 Zig 词法分析和语法解析

Zig[1] 语言是近几年来逐渐声名鹊起的一个新编程语言,也是数目稀少的系统编程语言家族中的一个新成员。它由 Andrew Kelley 于 2015 年开始创造,至今已经开发了八个年头,但是仍然还未发布 1.0 版本。不过,已经有不少新锐项目选择使用 Zig 开发,例如 JavaScript 运行时和完整开发套件 bun[2] 和分布式金融数据库 tigerbeetle[3] 等。Hashico...

2023-12-11 19:03:16 749

原创 大图书馆 #9 《流计算系统图解》书评

上周,我收到清华大学出版社编辑寄来的新书《流计算系统图解》。趁着周末的功夫,我快速浏览了本书的主要内容。一句话评价:值得一读,尤其是对开始开发流计算任务或系统一到两年,初步实现过一些功能或作业,但是还没有对流式系统建立起系统认识的开发者。本书作者是两位 Apache Heron (incubating) 项目的 PMC 成员,Heron 是源自 Twitter 的计划取代 Storm 的流计算系统...

2023-11-20 20:40:42 149

原创 夜天之书 #90 再谈 Rust 项目社群治理

上一篇文章《Rust 社群何以走到今天?》发布之后,得益于 Rust 社群的繁荣和成员的分享惯例,我收到了不少关于 Rust 现状的评论。大部分评论集中在 Rust 项目社群的治理上,即 BDFL 和基金会会对 Rust 项目社群产生什么影响,以及 Rust 项目社群是否需要 Leadership 组织。我在上一篇文章中引用了 Graydon Hoare 和 @withoutboats 等人的博文...

2023-11-18 18:42:55 250 1

原创 夜天之书 #89 Rust 社群何以走到今天?

本文有些标题党,实际想讲的内容,是我从部分 Rust 曾经的核心开发者的自述当中,所发现的 Rust 项目社群开源协同模式发展至今的一些特点。我会从这些自述发言的内容切入和展开,对比其他社群遇到相似挑战的状况和应对方式,讨论 Rust 项目社群在协同方式维度上走到今天的沿革。Graydon Hoare 的博文说起 Rust 语言的核心成员,你会先想起谁?不像 C# 之父 Anders Hejlsb...

2023-11-14 19:42:18 165

原创 天工开物 #9 Why Async Rust(译文)

昨天的文章里,我介绍了 Async Rust 当前的实现以及一个实现 Async Runtime 需要了解的概念和现有的一些实践。文章发出后,有评论称 Async Rust 创造性工作,没有可借鉴的经验。诚然,Rust 系统编程语言的定位就决定了它与其他有运行时的语言在设计时存在巨大的不同,同类语言 C 和 C++ 在异步编程方面,受限于语言的历史包袱,相关的支持往往以三方库而不是语言级的支持出现...

2023-11-07 09:59:43 758

原创 天工开物 #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 322

原创 夜天之书 #88 Elastic License 2.0 与开源协议的发展

译序我在此前的多篇文章中讨论了商业开源的话题:《企业开源的软件协议模型实践》《企业实践开源的动机》《商业源码协议为何得到 HashiCorp 等企业的垂青?》《企业如何实践开源协同》《中国不缺好的开源开发者》“商业探索与可持续”一节《开源不是商业模式》《诱导转向的伪开源战略》《免费增值的商业模式》这些讨论当中观点的源头,除了我在商业开源公司的工作经历以外,也有对国外企业主和律师的内容的理解。其中,...

2023-11-03 23:49:53 333

原创 夜天之书 #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 260

原创 夜天之书 #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 240

原创 天工开物 #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 1669

原创 Apache Kvrocks 毕业随感

Apache Kvrocks 是一个分布式 KV 数据库,使⽤ RocksDB 作为底层存储引擎并兼容 Redis 协议,旨在解决 Redis 内存成本⾼以及容量有限的问题,可以作为 Redis 的持久化变体做 drop-in 替换。Kvrocks 起初是美图内部研发的软件,于 2019 年对外开源并独立运营。2022 年 4 月,Kvrocks 在 Champion 陈亮的推动下进入 ASF 孵...

2023-06-28 19:11:17 480

原创 夜天之书 #84 国产开源社群的运营,为何总是画风奇特?

在过去几年的投入和关注下,国产开源社群如雨后春笋一般冒了出来。今天,以 GPT 为首的 AI 新势力接过话题度的接力棒,我们可以在降温周期里回顾一下过去几年间冒出来的国产开源社群都有什么样的成绩,有些什么样共性的问题可以改进。本文标题是国产开源社群的运营总是画风奇特,这也符合近几年来作为理论上开源社群的主要参与者,即软件开发者们的主流感受。从眼花缭乱的开源营销,到一次性开源、开关式开源的另类创新,...

2023-06-06 13:48:13 256

原创 天工开物 #6 Git 分支管理与版本发布

Git 版本管理系统由 Linux 的作者 Linus Torvalds 于 2005 年创造,至今不到二十年。起初,Git 用于 Linux Kernel 的协同开发,用于替代不再提供免费许可的 BitKeeper 软件。随后,这一提供轻量级分支的分布式版本管理系统得到了开源开发者的广泛喜爱,在大量开源项目中投入使用。如今,Git 几乎是版本管理系统的同义词。Git 最大的创新就是轻量级的分支实...

2023-05-19 18:35:42 983

原创 夜天之书 #83 Web API 的开发工具和平台

上一篇文章《Web API 简介》的落脚点是 Web API 的体验。Web API 作为许多软件的第一道门面,提升其体验的努力从来没有停止过。今天,围绕 Web API 的开发体验和使用体验,已经成长出一个庞大的软件生态。本文以常用的 Web API 开发工具和平台为切入点,介绍当前 Web API 的开发者基础设施。终端工具最初的 Web API 开发者显然是黑客,而黑客们的开发工具大多是终端...

2023-05-17 21:30:12 243

原创 夜天之书 #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 250

原创 夜天之书 #81 大厂开源之殇

本轮开源之风吹起迄今数年,最大的影响还是越来越多的商业公司开始探索开源方法能够如何改变自己的经营策略。开源策略循序渐进分成使用、参与和发起。在发起开源项目实践一线的,一个是打着开源旗号的创业公司,另一个就是大型企业尤其互联网企业(大厂)。前者我在过去的文章里已经详细讨论了他们的动机、面临的风险和应对策略。本文将关注大厂发起的开源项目的共同特点,讨论围绕这样的开源项目聚拢起来的企业研发团队、市场运营...

2023-04-14 23:49:15 562

原创 大图书馆 #8 流式系统阅读指南

本文从软件系统、学术论文和出版书籍三个方面介绍研究学习类似 Apache Flink 的流式系统的参考材料。本文链接较多,可以点击阅读原文到博客上浏览方便点击链接。软件系统现实世界的软件系统都是以生产可用为目的的。因此,其代码、文档和讨论不局限于流式计算本身,还有许多分布式系统共通的话题。在这里,我会强调其中和流计算相关的内容。Apache FlinkApache Flink[1]大约是国内目前...

2023-04-04 00:37:23 234

原创 夜天之书 #80 推特开源算法与开放革命

3 月 31 日,马斯克如约开源了一系列推特推荐算法代码[1]。Twitter 开源推荐算法代码这次开源代码的操作,出发点跟大多数商业公司不太一样。我在《企业实践开源的动机》当中提到的动机,要么是扩展软件的生态,要么是拿来即用后的回馈上游,最为“无私”的动机,也是希望开源标准以保护现存业务。所有这些动机,企业开放的源代码,都不包含业务代码,而是支撑业务的基础软件逻辑。这次推特开源推荐算法代码,是史...

2023-04-03 00:45:02 165

原创 夜天之书 #79 开源不是商业模式

前几天,一篇名为《开源商业模式是个伪命题》的文章横空出世,看似犀利的观点却没有引起激烈的反驳。无论是开发专有软件的企业,还是重度投入到开源软件开发的企业,都认同开源本身并不是企业作为软件及服务提供商的商业模式。行业当中有这样的共识并不奇怪。如果你在国际互联网上搜索『开源商业模式』关键字,其结果从 2016 年起就几乎被『开源不是商业模式』所统治。本文老调重弹,从开源为什么不是商业模式,不是商业模式...

2023-03-30 21:20:13 301

原创 夜天之书 #78 共建的神话

今天,在许多开源软件项目乃至任何稍带开放性的项目的宣传中,我们经常能看到营销内容包含“共建”的字样,似乎说了这个魔法的词汇,项目就能迎接纷至沓来的“共建者”,其乐融融地“一起做大蛋糕”。然而,现实情况却是作为被营销对象的开发者日渐对这个词失去兴趣到产生反感。一眼看到某个项目营销言必称“共建”,心里就默默给它扣分拉黑甚至拉黑。共建的神话是如何产生的,为什么这个口号今天不能吸引和凝聚开发者呢?“共建”...

2023-03-29 19:20:12 167

原创 夜天之书 #77 Community of Peers

Community of Peers 可以翻译成『同侪社群』,意即社群由地位相同的成员组成,这是 Apache 软件基金会(ASF)的开源理念[1]之一。ASF 强调个体组成社群,每个成员代表他们自己而不是其所属的组织。不管成员是否受雇参与贡献,社群视角下他们都是一视同仁的志愿者。尽管只有 Committer 才有合并代码的权限,只有项目管理委员会(PMC)成员才能对项目的关键决议投有效票,但是除...

2023-03-27 17:51:45 569

原创 夜天之书 #76 远程工作、开源协同与饱和沟通

上周末在给 Apache Ratis 的代码库上 Maven Wrapper 的时候,项目作者 @szetszwo 对 Pull Request (PR) 当中代码的合规问题和实现问题提出了一些问题[1]。虽然这些问题并不难回答,但是我第一时间的反应却是“这么明显的答案,实在是懒得回复”。进而我又想到,如果是线下集中办公或者面对面 workshop 的情形,这些问题不到五分钟就能讨论清楚,而这两类...

2023-03-20 14:13:05 150

原创 夜天之书 #75 企业开源的软件协议模型实践

我在《企业开源该选什么软件许可证?》一文当中,已经从软件许可证的角度讨论过不同协议对企业开源的意义。不过,那篇文章主要是从许可证内容出发的,即先给定了协议,分析完协议细节,再判断是否符合企业和计划公开的软件的情形。本文从企业开源的不同诉求和风险出发,结合现存的企业组织实践,重新讨论源码公开第一步就要面临的选择软件协议问题应该如何决策。完全开放源码完全开放源码,即以符合开源定义[1]的软件协议发布企...

2023-03-05 23:17:03 374

原创 夜天之书 #74 企业开源的软件协议模型实践(Part 2)

在上一篇文章中,我介绍了企业开源的完全开放源码策略及其风险。完全开放源码,即以符合开源定义的软件协议发布企业自研软件的情形。本文介绍应对完全开放源码后的风险的第一种策略:提高市场占有率与开放标准。与其说是策略,不如说是促使企业完全开放源码的动机。策略:市场占有率与开放标准选择和坚持完全开放源码策略的一个主要原因,是企业希望完全开放源码的软件赢得广泛的市场占有率,甚至形成开放标准。以开源的程序设计语...

2023-02-28 22:39:09 307

原创 夜天之书 #73 Apache Pulsar 的社群指标

去年十一月,我成为了Apache Pulsar[1]社群 Committers 的一员。成为 Committer 之前和之后,我都积极参与了代码仓库上 Issue 和 Pull Request (PR) 的处理回应和评审。去年十二月期间,我把未解决的 Issue 和 PR 数量分别从接近 2000 个和 400 个,在动态增长的情况下缩小到了小于 1000 个和接近 200 个。关于如何高效地...

2023-02-26 16:12:43 225

原创 夜天之书 #72 企业开源的软件协议模型实践(Part 1)

我在《企业开源该选什么软件许可证?》一文当中,已经从软件许可证的角度讨论过不同协议对企业开源的意义。不过,那篇文章主要是从许可证内容出发的,即先给定了协议,分析完协议细节,再判断是否符合企业和计划公开的软件的情形。本文从企业开源的不同诉求和风险出发,结合现存的企业组织实践,重新讨论源码公开第一步就要面临的选择软件协议问题应该如何决策。完全开放源码完全开放源码,即以符合开源定义[1]的软件协议发布企...

2023-02-16 16:57:13 132

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除