多数是一些演讲的文字稿,有一些酒后的胡言乱语,还有一些是日常的碎碎念

日积月累的酒后疯话,不定期更新,没有什么分类,也没有什么主题,就是一些胡言乱语。

反思产品设计中一次失败的经历

曾经以为自己在产品设计是非常成熟,从这次经历让我思考为什么会出现自己经常引以为戒的错误,是缺少和用户的沟通,还是沉迷于自己的执念。当然这次惊醒后,让自己重新审视在有限的时间和精力下,我如何让这个项目继续下去

Rust China Tour - 杭州站活动后记

筹划已久的 Rust 社区活动终于在杭州举行了首站, 对于活动本身来讲, 更大的意义是蚂蚁和华为能够平等的在社区活动中合作, 这在国内头部厂商中应该是首次。 国内的开源也好, 开发者生态都好, 都是以厂商为首的生态隔绝的小圈子, 当然也有在一些基金会下有一些貌合神离的合作, 这样真心的坐下来共同为 Rust 编程语言发展一起努力, 希望给在国内建立起一个榜样。

要不要选择 “小众不成熟” 的 Rust 作为公司技术栈?

周四在 OSPO Summit 现场的多位朋友都给我发来了一张图片,让我看看 Rust 是如此 "小众不成熟" 的编程语言被当作反面教育的案例,着实让我震惊。我可以想出来 100 个理由或者案例来反驳这个观点,最后我还是简单写了一句把图片发到 X 。

马道长和开源之夏的故事

我可能是唯一一个作为活动组织方、参与社区负责人和项目导师三重身份参与过历届开源之夏活动的人,对于开源之夏的感受颇深。这样一个大型的开源活动能坚持至今实属不易,各种辛酸只有经历过的人才知道,写一些想法希望开源之夏越办越好。

100% user-supported

偶然读到了 Obsidian CEO kepano 的一篇文章,我觉得对每一个独立开发者或者产品经理都应该阅读然后深刻反思自己做的事情。对于 Obsidian 来说,它是生存和发展的核心,但是对在当前环境下的我们是否合适?

使用 Buck2 构建 Rust Monorepo 单元测试

在搞完 Buck2 构建 Rust Monorepo 的编译功能后,开始探索如何使用 Buck2 执行 Rust 程序的单元测试, 发现要学习和测试的内容还是很多。

使用 Buck2 和 Reindeer 构建 Rust Monorepo 工程

Buck2 跟 Bazel 是属于同宗同派的两路剑法, 需要和 Monorepo / Monolithic 的 Codebase 平台一起使用才能发挥出威力。 Meta 的 Monorepo 项目 Sapling 一直在活跃的开发中, 相比 Google 的 Piper 并没有开源的实现, 这也给 Mega 留下了发挥的空间。 我想能不能完全兼容 Git 应该是能不能获得开发者的关键。

使用 Buck2 和 Reindeer 生成 Rust 项目 BUCK

世界终不是 Hello World 般简单, 也没有一个人能抗起世界的所有。 之前使用 Buck2 构建 Hello World 只是一种尝试, 需要逐步加入 Crate 、 Workspace 等项目模式才能让 Buck2 显示出真正的价值。

使用 Buck2 编译构建 Rust 工程

春节整理 mega 项目的构建方案,之前一直是使用 Bazel 作为 cargo build 外的构建系统, 为了更多的使用 Rust 生态的软件, 果断删掉了 BUILD 文件,开始尝试使用 Facebook 的 Buck2 来构建 Rust 。 Buck2 用起来也是有一些复杂的概念, 没办法还是找个 Hello World 进行测试

为 GPG 生成的证书续签有效期

今天提交代码的时候突然发现报错,竟然是 GPG 的证书过期,还在搜了搜续期并不麻烦,记录一下明年续签的时候就可以按照再来操作一次

2023 年 Rust 生态发展回顾

这其实 InfoQ 约稿的一个草稿, 但是不知道有多少内容会被使用, 所以还是自己先贴出来接受一下炮轰

2024 年第一场 Rust Meetup 后记

2024 年第一场 Rust Meetup 就安排在元月 6 日,其实之前主办方计划是安排在 12 月圣诞节那天举行, 在我的提示下估计那天来参与活动的人是不是不多,所以移到了 1 月的第一个周末。 深圳这时候气温正合适, 参与的人也颇多坐满了会场。

2023 年回顾

每到年底都要做一番回顾,对新年进行展望,已经许久没有进行更新,在 12 月连续病了两场,明天还要出差去深圳,估计这是今年的最后一篇了,希望 2024 年能更多的记录日常的生活和技术研究。

EuroRust 2023 Day 1

辗转几千公里,终于到了此次行程的中点时刻,EuroRust 2023 的第一天来临了。 怎什么说感受呢,这是一个纯粹的开发者社区,没有太多大公司的身影,当然他们都藏在了基金会的背后,能在一个相对纯粹的社区和大公司影响的基金会下运作到现在这个程度,实属不易...

EuroRust 2023 - 华为办公室参加 Workshop

公司好多雇员和顾问都是 Rust Community 的核心成员,会议前在华为办公室组织了一个 Workshop ,毫无准备的和老外沟通,讲英语主打的一个就是我不尴尬,尴尬的就是老外...

EuroRust 2023 - 从北京到布鲁塞尔

能参加这次 EuroRust 2023 的会议着实属于幸运,因为后面跟着的 Bazelcon 2023 的会议被选中了一个议题,这样两个连着比较近的会就有机会在一起出差参加了

《开发者关系 - 方法与实践》读书笔记 - 推荐序 2 - 5

推荐序 2 - 5 写的各有千秋,从法务文章到良心编写、从敷衍到硬广。如果有一天我写了很多读书笔记,就把这些笔记整理成书,然后请 30 个人写序。出一本序比内容多的书。这想法太有意思了,当然是肯定不能实现的。😄😄😄

《开发者关系 - 方法与实践》读书笔记 - 译者序之得开发者得天下

职业生涯的很多时间都在和开发者打交道,这是他能深刻理解开发者价值的原因。要放弃对大厂那些开发者产品,尤其是一些云厂商的开发者产品,他们产品的多数都是为了绑定开发者,让其消耗云资源而获利。让我们对那些 “*3 年超越 Gitee、5 年超越 GitHub* ”的鬼话一笑而过吧😄😄😄

Git Pack 文件中对象 Header 结构分析

之前写的分析 Git Pack 文件中对象 Size 编码的文章,是对 Size 编码规则的分析,但是在 Git Pack 的对象 Header 中,由于对象类型也需要编码在里面,所以实际的细节有不通

Git Pack 文件中对象长度的变长编码的编解码解析

之前在用 Rust 对 Git Pack 文件中的对象进行解析的时候,总是在 Object 对象长度上出错,致使解析失败。昨晚突然酒后惊醒,和 ChatGPT、Claude、Cody、GitHub Copilot Chat 一众 AI 聊天 2 个小时,终于把编解码的机制和代码整理出来了。

Ruff - 使用 Rust 开发的 Python Linter 工具

从 Deno、Artichoke 到 RustPython ,包括各种使用 Rust 实现的编程语言,可以看到 Rust 有成为编程语言底层实现的一个选择,Rust 也逐渐成为整个底层基础软件领域的重要选择;海外的商业生存环境是比国内友好太多,一个开发者工具就可以成为一个创业公司的起点,在当前国内无处不卷死的大环境下,这样的公司是不可能产生,也扼杀了很多创新的机会。当很多人还讨论商业和开源的关系时,别人已经从开源走向商业了。

2023 年 KCD 大连站活动后记 (2023-04-15)

拖着肠炎的身体从深圳辗转飞到大连,错过了海鲜、烧烤和啤酒的痛风套餐,没有时间写胶片,一张题目的图讲到超时,算是超水平发挥。 估计以后也不会参加什么技术演讲了,估计这种纯 ”忽悠” 的方式会被各路主办方拉黑

开源有道,度量有尺 - 开源需要如何评价呢?

Compass 是一款开源的度量工具,它可以帮助我们更好的评价开源项目,也可以帮助我们更好的评价自己的开源项目。但是凡事都有两面性,到底如何正确的评价开源项目以及背后的开发者,是真正需要我们仔细思考的问题

Meta 开源 Sapling 客户端,推动 monorepo 模式发展

Meta(Facebook) 悄悄的开源了版本管理工具 Sapling 的客户端,它大量使用 Rust 开发底层存储,在兼容 Git 的前提下大幅提升了巨型仓库的开发者体验。为 monorepo 开发模式的发展,提供了开源工具的支持。

Rust in Kernel 6.2 的进展

Linux Kernel 在 6.1 版本中引入了 Rust 语言的支持,但是离 Rust 实际编写 Kernel 的应用还有一段距离。Miguel Ojeda 在最近提交了 28 个补丁,使得 Rust 在 Linux Kernel 中的应用更加接近实际应用。Jonathan Corbet 在 LWN 上对这些补丁进行了简单的分析和评论,也引发了社区的评论。

Rust for Linux 学习笔记系列 - 第一章 开发环境搭建

Linux Kernel 在 6.1 版本中引入了 Rust 语言的支持,这意味着 Linux Kernel 未来将会使用 Rust 语言来开发内核模块,对于内核社区和 Rust 社区来说都是非常激动人心的事情,必将引发学习 Rust 编程语言和内核开发的热潮。本系列笔记学习是记录学习过程中的内容,第一篇当然是搭建开发环境了。

Contributor License Agreement 浅析

在开源项目中通常存在三个角色围绕在整个项目的生命周期,在他们之间使用不同的协议约束之间的关系。

DevOps Is Philosophy

DevOps is an operational philosophy that promotes better communication between development and operations as more elements of operations become programmable.

openEuler,未来可期 - 2021 年北京工业大学大师讲坛演讲稿

参在学生时代,我们就学会了如何掩盖自己的无知。我们知道如何用长篇累牍来填补自己不知道的东西,也会在游移不定处故作坚定。所以,迷失感确实表明自己力有不逮(dài),不确定能否言之有物。

《Go 并发编程实战》第二版 - 序

正是这些社区的力量让中国成为 Golang 语言发展最快和热度最高的国度,真诚的感谢为社区发展贡献力量的布道者、活动组织者、Maintainer、Contributor 、作者和出版社,是你们让 Golang 社区在国内蓬勃发展成为可能