Buck2 的 select 和操作系统
Rust 编程语言最大的一个优势是跨平台,当使用 Buck2 进行构建的时候可以通过 Feature 来处理,当然也可以使用 select 来选择不同的 OS 来作为目标。 Select 是一个重要的特性,是编写优雅的 OS 一定会使用的
日积月累的酒后疯话,不定期更新,没有什么分类,也没有什么主题,就是一些胡言乱语。
Rust 编程语言最大的一个优势是跨平台,当使用 Buck2 进行构建的时候可以通过 Feature 来处理,当然也可以使用 select 来选择不同的 OS 来作为目标。 Select 是一个重要的特性,是编写优雅的 OS 一定会使用的
之前测试 Buck2 都是在 Mac 和 Linux ,没有什么遇到什么运行的问题;最近开始在 Windows 上进行测试,发现了一些奇奇怪怪的问题,记录下来供查阅
之前用 Buck2 研究工程构建问题,都是使用官方推荐的 reindeer 来生成 BUCK 文件。 但是工程中 build.rs 经常被使用,还是需要开发者编写 fixup 。 要想真正的发挥 Buck2 的大规模构建能力, 我觉得一定是从底层 crate 实现 BUCK 文件的编写, 所以我启动了一个新的项目收集 BUCK 文件
在 Windows 下构建 Rust 编译环境总是有些折腾,当然最近 Mircosoft 在 Windows 内置了 Linux 虚拟机总算是解决了一部分人问题,但是要想做些 Windows 下的开发还是绕不过去。很多 Crate 都依赖 OpenSSL ,我观察了一些 Issue ,对于这个编译如何解决是最多遇到的。
去年在阿姆斯特丹参加 KubeCon 的时候,注意到酒店门口有很多摆摊的桌椅,估计是有什么二手的集市。今年到阿姆斯特丹的第一晚,就发现已经围号了集市,前台 MM 说这是欧洲最大的二手集市,叫 IJ Hallen。因为时差睡不着,吃完早餐就在市场里面溜达了一圈。
曾经以为自己在产品设计是非常成熟,从这次经历让我思考为什么会出现自己经常引以为戒的错误,是缺少和用户的沟通,还是沉迷于自己的执念。当然这次惊醒后,让自己重新审视在有限的时间和精力下,我如何让这个项目继续下去
筹划已久的 Rust 社区活动终于在杭州举行了首站, 对于活动本身来讲, 更大的意义是蚂蚁和华为能够平等的在社区活动中合作, 这在国内头部厂商中应该是首次。 国内的开源也好, 开发者生态都好, 都是以厂商为首的生态隔绝的小圈子, 当然也有在一些基金会下有一些貌合神离的合作, 这样真心的坐下来共同为 Rust 编程语言发展一起努力, 希望给在国内建立起一个榜样。
在 Windows 上进行开发, 对于 Git 的基本配置就是 SSH Key 和 GPG Key 两个重要的 Key 生成和配置。
周四在 OSPO Summit 现场的多位朋友都给我发来了一张图片,让我看看 Rust 是如此 "小众不成熟" 的编程语言被当作反面教育的案例,着实让我震惊。我可以想出来 100 个理由或者案例来反驳这个观点,最后我还是简单写了一句把图片发到 X 。
我可能是唯一一个作为活动组织方、参与社区负责人和项目导师三重身份参与过历届开源之夏活动的人,对于开源之夏的感受颇深。这样一个大型的开源活动能坚持至今实属不易,各种辛酸只有经历过的人才知道,写一些想法希望开源之夏越办越好。
偶然读到了 Obsidian CEO kepano 的一篇文章,我觉得对每一个独立开发者或者产品经理都应该阅读然后深刻反思自己做的事情。对于 Obsidian 来说,它是生存和发展的核心,但是对在当前环境下的我们是否合适?
在搞完 Buck2 构建 Rust Monorepo 的编译功能后,开始探索如何使用 Buck2 执行 Rust 程序的单元测试, 发现要学习和测试的内容还是很多。
Buck2 跟 Bazel 是属于同宗同派的两路剑法, 需要和 Monorepo / Monolithic 的 Codebase 平台一起使用才能发挥出威力。 Meta 的 Monorepo 项目 Sapling 一直在活跃的开发中, 相比 Google 的 Piper 并没有开源的实现, 这也给 Mega 留下了发挥的空间。 我想能不能完全兼容 Git 应该是能不能获得开发者的关键。
世界终不是 Hello World 般简单, 也没有一个人能抗起世界的所有。 之前使用 Buck2 构建 Hello World 只是一种尝试, 需要逐步加入 Crate 、 Workspace 等项目模式才能让 Buck2 显示出真正的价值。
春节整理 mega 项目的构建方案,之前一直是使用 Bazel 作为 cargo build 外的构建系统, 为了更多的使用 Rust 生态的软件, 果断删掉了 BUILD 文件,开始尝试使用 Facebook 的 Buck2 来构建 Rust 。 Buck2 用起来也是有一些复杂的概念, 没办法还是找个 Hello World 进行测试
今天提交代码的时候突然发现报错,竟然是 GPG 的证书过期,还在搜了搜续期并不麻烦,记录一下明年续签的时候就可以按照再来操作一次
这其实 InfoQ 约稿的一个草稿, 但是不知道有多少内容会被使用, 所以还是自己先贴出来接受一下炮轰
2024 年第一场 Rust Meetup 就安排在元月 6 日,其实之前主办方计划是安排在 12 月圣诞节那天举行, 在我的提示下估计那天来参与活动的人是不是不多,所以移到了 1 月的第一个周末。 深圳这时候气温正合适, 参与的人也颇多坐满了会场。
每到年底都要做一番回顾,对新年进行展望,已经许久没有进行更新,在 12 月连续病了两场,明天还要出差去深圳,估计这是今年的最后一篇了,希望 2024 年能更多的记录日常的生活和技术研究。
辗转几千公里,终于到了此次行程的中点时刻,EuroRust 2023 的第一天来临了。 怎什么说感受呢,这是一个纯粹的开发者社区,没有太多大公司的身影,当然他们都藏在了基金会的背后,能在一个相对纯粹的社区和大公司影响的基金会下运作到现在这个程度,实属不易...
公司好多雇员和顾问都是 Rust Community 的核心成员,会议前在华为办公室组织了一个 Workshop ,毫无准备的和老外沟通,讲英语主打的一个就是我不尴尬,尴尬的就是老外...
能参加这次 EuroRust 2023 的会议着实属于幸运,因为后面跟着的 Bazelcon 2023 的会议被选中了一个议题,这样两个连着比较近的会就有机会在一起出差参加了
第一次在没有出差的情况下完成一篇读书笔记,希望让这个写作的方式更加正常一些,而不是让它成为旅行中一个消磨困境的方式
李白醉酒诗千首,不喝酒真的写不出来什么文字...
我觉得这些读书笔记可以改为旅行读书笔记,每次都是在火车、飞机上的空隙时间在读书。现在读书笔记的目标加上一条,为老崔的公众号挣一瓶朝日啤酒~
推荐序 2 - 5 写的各有千秋,从法务文章到良心编写、从敷衍到硬广。如果有一天我写了很多读书笔记,就把这些笔记整理成书,然后请 30 个人写序。出一本序比内容多的书。这想法太有意思了,当然是肯定不能实现的。😄😄😄
职业生涯的很多时间都在和开发者打交道,这是他能深刻理解开发者价值的原因。要放弃对大厂那些开发者产品,尤其是一些云厂商的开发者产品,他们产品的多数都是为了绑定开发者,让其消耗云资源而获利。让我们对那些 “*3 年超越 Gitee、5 年超越 GitHub* ”的鬼话一笑而过吧😄😄😄
之前写的分析 Git Pack 文件中对象 Size 编码的文章,是对 Size 编码规则的分析,但是在 Git Pack 的对象 Header 中,由于对象类型也需要编码在里面,所以实际的细节有不通
之前在用 Rust 对 Git Pack 文件中的对象进行解析的时候,总是在 Object 对象长度上出错,致使解析失败。昨晚突然酒后惊醒,和 ChatGPT、Claude、Cody、GitHub Copilot Chat 一众 AI 聊天 2 个小时,终于把编解码的机制和代码整理出来了。
没想到 Google 这 **“浓眉大眼”** 在开源、技术创新等任何方向上都举足轻重的科技巨头,也在为开源还是不开源、生态到底能不能颠覆经侦对手而争论。我以为这种场面只会发生在菊厂的胶片里
从 Deno、Artichoke 到 RustPython ,包括各种使用 Rust 实现的编程语言,可以看到 Rust 有成为编程语言底层实现的一个选择,Rust 也逐渐成为整个底层基础软件领域的重要选择;海外的商业生存环境是比国内友好太多,一个开发者工具就可以成为一个创业公司的起点,在当前国内无处不卷死的大环境下,这样的公司是不可能产生,也扼杀了很多创新的机会。当很多人还讨论商业和开源的关系时,别人已经从开源走向商业了。
拖着肠炎的身体从深圳辗转飞到大连,错过了海鲜、烧烤和啤酒的痛风套餐,没有时间写胶片,一张题目的图讲到超时,算是超水平发挥。 估计以后也不会参加什么技术演讲了,估计这种纯 ”忽悠” 的方式会被各路主办方拉黑
Compass 是一款开源的度量工具,它可以帮助我们更好的评价开源项目,也可以帮助我们更好的评价自己的开源项目。但是凡事都有两面性,到底如何正确的评价开源项目以及背后的开发者,是真正需要我们仔细思考的问题
Meta(Facebook) 悄悄的开源了版本管理工具 Sapling 的客户端,它大量使用 Rust 开发底层存储,在兼容 Git 的前提下大幅提升了巨型仓库的开发者体验。为 monorepo 开发模式的发展,提供了开源工具的支持。
Linux Kernel 在 6.1 版本中引入了 Rust 语言的支持,但是离 Rust 实际编写 Kernel 的应用还有一段距离。Miguel Ojeda 在最近提交了 28 个补丁,使得 Rust 在 Linux Kernel 中的应用更加接近实际应用。Jonathan Corbet 在 LWN 上对这些补丁进行了简单的分析和评论,也引发了社区的评论。
Linux Kernel 在 6.1 版本中引入了 Rust 语言的支持,这意味着 Linux Kernel 未来将会使用 Rust 语言来开发内核模块,对于内核社区和 Rust 社区来说都是非常激动人心的事情,必将引发学习 Rust 编程语言和内核开发的热潮。本系列笔记学习是记录学习过程中的内容,第一篇当然是搭建开发环境了。
在开源项目中通常存在三个角色围绕在整个项目的生命周期,在他们之间使用不同的协议约束之间的关系。
并不是 Leader 才需要 Leadership ,希望有一天我能回来讲一个关于开源 Leadership 的新故事
专家台上吼,大神遍地走; 架构堆积木,框架多如狗; 测试惜如金,文档没发瞅; 开源集成商,上市路上走。
DevOps is an operational philosophy that promotes better communication between development and operations as more elements of operations become programmable.
如果我们坚持运营一个开源社区,顺应 **“天时、地利、人和”** 之势才有获得成功的可能,另一个方面要给开源社区一个时间,万物发展都有它顺应的规律。
参在学生时代,我们就学会了如何掩盖自己的无知。我们知道如何用长篇累牍来填补自己不知道的东西,也会在游移不定处故作坚定。所以,迷失感确实表明自己力有不逮(dài),不确定能否言之有物。
正是这些社区的力量让中国成为 Golang 语言发展最快和热度最高的国度,真诚的感谢为社区发展贡献力量的布道者、活动组织者、Maintainer、Contributor 、作者和出版社,是你们让 Golang 社区在国内蓬勃发展成为可能