March 17
March 17
March 21
https://github.com/besscroft/PicImpact/releases/tag/v3.0.0
Picimpact 3.0 堂堂发布
Picimpact 3.0 堂堂发布
March 22
Forwarded from Welcome to the Black Parade
虽然最近没有太多分享欲,因为下班时间过于充实了,到家先玩 Diablo2(好玩到时光倒流,我在童年流连忘返),然后看 Invincible 漫画(感情细腻,群像精彩,想象力也不错,节奏也很抓人),然后做锻炼(年度计划之一是让胸更大),洗澡后用平板看编程书(虽然智力平平只能慢读慢想慢消化,但我完全不焦虑,每有会意便欣然忘食,感叹计算机的神奇有趣),然后就已经到 1am 之后了,必须立刻睡觉……
但是还是有很多有趣的发现,比如:
1. cgroup/sock_release (BPF_CGROUP_INET_SOCK_RELEASE) 这个 bpf hook 常常被用来作为 socket 生命周期结束的回调,比方说,比方说哈,我有一个 bpf_iter/tcp 的程序,每分钟扫一次 userspace ipv4 tcp sockets 并加入一个 map,然后在 cgroup/sock_release 里从 map 里删除 socket,理论上已经包圆了 socket lifetime,map 里加入的 socket 应该都会随着 fd close 而删除。结果你猜怎么着,居然 socket lick 了,啊不是,leak 了,原因是在 process 调用 close(fd),触发 cgroup/sock_release bpf 之后,socket (tcp state == ESTABLISHED) 依然有一小段时间是可以被 bpf_iter/tcp 扫到的,在这个 race window 里不幸被加入 map 的 socket 已经错失了 cgroup/sock_release hook,永不释放。 ref: https://elixir.bootlin.com/linux/v6.12.77/source/net/ipv4/af_inet.c#L419
2. 用户态的 bpf map iteration syscall command BPF_MAP_GET_NEXT_KEY,是不保证能够完整 dump 出 map 的,因为在 userspace iter map 的时候很可能内核态 bpf prog 会并发新增 map entry (都不需要删),导致 internal bucket 变化,导致 iter 到重复的 key、漏 key、提前终止、啥都可能。用 BPF_MAP_LOOKUP_BATCH 单一 syscall 全量 dump map 会好很多,因为会锁 bucket,所以不会漏 key。这里也是一个使用 RCU 的完美场景,正好和最近的学习搭上了。 ref: https://elixir.bootlin.com/linux/v6.12.77/source/kernel/bpf/hashtab.c#L1717
3. 内核虽然没有一个 watch cgroup v2 增删 dir 的 syscall,但 tracepoint:cgroup:cgroup_mkdir / rawtracepoint:vmlinux:cgroup_mkdir 系列提供了很好的功能,使用下来也没有槽点,在 k8s 集群里只看 cgroup path basename 就能解出 container ID,然后 socket 在内核里又天然和 cgroup 强绑定的,再借助 cgroup/skb hook,我们可以建立起 skb -> sk -> cgroup -> container -> pod 这一串信息,非常可靠,比用 pid / task 匹配可靠多了,现已成为我最爱的观测数据。
内核的美,我的泪,我情愿和你化作一团火焰,啊啊啊啊~啊啊啊啊~~~
4. go 内存调优,肉搏了两个星期,现在都还有点想吐,从 150M 降到了 30M,虽然好玩,但每次看到 panel 上看到内存快要爆炸的时候内心都很绝望,顺奸理解了 rust 龙虾人,啊不是,螃蟹人。
虽然这些大部分的东西我已有耳闻,但真正落地变成工程才发现竟有这么多我并不知道的细节,我很享受这种把飘在心中的知识用脚在地上踩实的感觉,对自己的工程师身份深感自豪。
但是还是有很多有趣的发现,比如:
1. cgroup/sock_release (BPF_CGROUP_INET_SOCK_RELEASE) 这个 bpf hook 常常被用来作为 socket 生命周期结束的回调,比方说,比方说哈,我有一个 bpf_iter/tcp 的程序,每分钟扫一次 userspace ipv4 tcp sockets 并加入一个 map,然后在 cgroup/sock_release 里从 map 里删除 socket,理论上已经包圆了 socket lifetime,map 里加入的 socket 应该都会随着 fd close 而删除。结果你猜怎么着,居然 socket lick 了,啊不是,leak 了,原因是在 process 调用 close(fd),触发 cgroup/sock_release bpf 之后,socket (tcp state == ESTABLISHED) 依然有一小段时间是可以被 bpf_iter/tcp 扫到的,在这个 race window 里不幸被加入 map 的 socket 已经错失了 cgroup/sock_release hook,永不释放。 ref: https://elixir.bootlin.com/linux/v6.12.77/source/net/ipv4/af_inet.c#L419
2. 用户态的 bpf map iteration syscall command BPF_MAP_GET_NEXT_KEY,是不保证能够完整 dump 出 map 的,因为在 userspace iter map 的时候很可能内核态 bpf prog 会并发新增 map entry (都不需要删),导致 internal bucket 变化,导致 iter 到重复的 key、漏 key、提前终止、啥都可能。用 BPF_MAP_LOOKUP_BATCH 单一 syscall 全量 dump map 会好很多,因为会锁 bucket,所以不会漏 key。这里也是一个使用 RCU 的完美场景,正好和最近的学习搭上了。 ref: https://elixir.bootlin.com/linux/v6.12.77/source/kernel/bpf/hashtab.c#L1717
3. 内核虽然没有一个 watch cgroup v2 增删 dir 的 syscall,但 tracepoint:cgroup:cgroup_mkdir / rawtracepoint:vmlinux:cgroup_mkdir 系列提供了很好的功能,使用下来也没有槽点,在 k8s 集群里只看 cgroup path basename 就能解出 container ID,然后 socket 在内核里又天然和 cgroup 强绑定的,再借助 cgroup/skb hook,我们可以建立起 skb -> sk -> cgroup -> container -> pod 这一串信息,非常可靠,比用 pid / task 匹配可靠多了,现已成为我最爱的观测数据。
内核的美,我的泪,我情愿和你化作一团火焰,啊啊啊啊~啊啊啊啊~~~
4. go 内存调优,肉搏了两个星期,现在都还有点想吐,从 150M 降到了 30M,虽然好玩,但每次看到 panel 上看到内存快要爆炸的时候内心都很绝望,顺奸理解了 rust 龙虾人,啊不是,螃蟹人。
虽然这些大部分的东西我已有耳闻,但真正落地变成工程才发现竟有这么多我并不知道的细节,我很享受这种把飘在心中的知识用脚在地上踩实的感觉,对自己的工程师身份深感自豪。
❤6👍4
March 23
March 25
April 7
April 9
草,大家好像有点震惊。。是这样,今年和海外商务沟通比较多。然后虽然能算是流利的沟通,但是我自己每天听录音or文字稿复盘的时候发现我自己很多口癖和语法做的很 suck。所以从新概念1重新每课做作业开始练一下
👍31❤2
April 9
April 12
Prisma 7.7 still sucks — slower than v6 in most cases. Time to ditch it for @DrizzleORM and finally touch some grass. 🌿
😁11
April 13
April 16
April 18
April 20
April 22
April 23
Saka 将自己的 MacOS 格式化了并转向全新的 Nix based 的 config。望周知
👏29❤4😁1
April 27
https://fxtwitter.com/plantegg/status/2049054094552334490
嘛,我自己是个 CloudNative 的黑子,Cloud Native 炒作成分很多。但是其本身也有对技术迭代的重大意义。
CloudNative 这一波浪潮后,沉淀下来的一套从容器交付格式 OCI,到负载编排 K8S,从 Ingress 到 Gateway 的演进。这一套让各种祖传的虚拟机运维脚本,祖传的 Nginx 配置快速演进至一套相对标准的抽象,能满足百分之80的中小型业务在调度/资源隔离/多租户上的需求。我觉得这是功德无量的
从现在看可能可以轻飘飘说一句“无外乎是个 cgroup 隔离嘛”,但是放在2015年那个时间点上,怎么样去做一套通用的管控面,怎么交付产物,内核3.x的一堆 Bug 怎么解决,流量入口怎么做,都是在探索阶段的。
我觉得现在去评价当时,颇有一点评价质能转化公式不就是 E=mC^2嘛,我可比爱因斯坦懂得多了的美感。
BTW,我不喜欢 K8S 的很多设计,但是我会认为 K8S 是个非常伟大的东西,它确实让技术的边界更扩展了不少
嘛,我自己是个 CloudNative 的黑子,Cloud Native 炒作成分很多。但是其本身也有对技术迭代的重大意义。
CloudNative 这一波浪潮后,沉淀下来的一套从容器交付格式 OCI,到负载编排 K8S,从 Ingress 到 Gateway 的演进。这一套让各种祖传的虚拟机运维脚本,祖传的 Nginx 配置快速演进至一套相对标准的抽象,能满足百分之80的中小型业务在调度/资源隔离/多租户上的需求。我觉得这是功德无量的
从现在看可能可以轻飘飘说一句“无外乎是个 cgroup 隔离嘛”,但是放在2015年那个时间点上,怎么样去做一套通用的管控面,怎么交付产物,内核3.x的一堆 Bug 怎么解决,流量入口怎么做,都是在探索阶段的。
我觉得现在去评价当时,颇有一点评价质能转化公式不就是 E=mC^2嘛,我可比爱因斯坦懂得多了的美感。
BTW,我不喜欢 K8S 的很多设计,但是我会认为 K8S 是个非常伟大的东西,它确实让技术的边界更扩展了不少
FxTwitter
plantegg (@plantegg)
之前在阿里云数据库的时候,一群人天天高喊 云原生Native,其实我左看右看里看外看,大多都是物理机上跑下 cgroup 或者 单个 ECS 隔离就售卖给客户了,怎么就云原生了呢?
但是不妨碍一堆人晋升,概念炒作的好也是一种本事,现在轮到 AI Native 了
来,从大厂炒作起来,小厂你们靠边站,不够格
但是不妨碍一堆人晋升,概念炒作的好也是一种本事,现在轮到 AI Native 了
来,从大厂炒作起来,小厂你们靠边站,不够格
❤21👍1
April 28
花了一晚上时间,一点点加 trace 一点点加 span 一点点拉数据然后把一个热点服务 P90 /10 。
有些时候感叹很多很枯燥的工作在浮躁的当下依旧很有价值
有些时候感叹很多很枯燥的工作在浮躁的当下依旧很有价值
🔥12❤7🤔1
May 1
May 5
May 8
没想到转眼间跨过了 32 岁这个关口。嘛,人生总是有很多的惊喜会发生,小时候可能不知道这句话是什么意思,不过后面总会有机会来体会
你要说去年我能料到我会在有明机房的轰鸣中度过我的32岁,那肯定是在扯犊子,不过某种意义上人生在给我开了一个小小的玩笑的时候,让我多了一段很特殊的经历
Feels not bad, I guess.
有着更多的不同的体验,见识没见过的东西,这可能也是人生的乐趣之一吧。
回想了一下过去这一年,应该确确实实是我最为”变化”的一年
在全新的环境,全新的技术栈下去探索新的事物(坦白说,我自己没想到过去一年中我技术的成长居然还恢复了我刚转行时候的速度)
解锁了全新的角色,探索了自己从未触及的边界,需要有更多责任心,更多的思考,对更多的事情,对自己 team,对更多的业务负责。
经历了生死,见证了生命的顽强与不屈,亦见证了生命的脆弱与短暂
解锁了全新的体验,去巡礼,去出租车上和司机一起聊奥特曼,去吃了很多好吃的东西
坦白说,这些变化,会成为我自己生命中最为重要的养料
我亦时常自问,“saka 你成为你小时候想要成为的人了吗?”
坦白说,我不知道。这个答案也许尚未到解锁最终版本的时机。也许只有当我合上眼睛那一刻,我们才能知道 Saka 这一生走向了何方。
去年我用的最多的词可能是“爱“,我在每次写完一些事故公告或者复盘的时候都会带上一句“爱大家🌹”。
可能有些矫情,但是对我来说,这个世界上唯有爱与希望不可辜负这句话在去年对我有了全新的诠释。
我很庆幸我现在所拥有着的一切,相互扶持走到数载的女友,有着世界上最棒的好友,有着世界上最棒的同事,但是有时梦魇醒来,我又很怕失去这些
呐,
Saka 很多时候还是会很不成熟
Saka 很多时候还是会有毛刺会伤人,但是也会立刻认错
Saka 还是会一直觉得摇曳露营是世界真理(这是重点(不是
请陪着 Saka 一起走下去好吗?
有很多话想说,但是枯燥的的文笔让我不知道继续说一些什么
那就在这里结束吧。
不辜负善意且回应期待,这是世界上最美好的事情
希望我往后亦能如是
所以,再见咯,31 岁的 Saka,你好,32 岁的 Saka!
愿我身边每一个人都能被爱与希望包裹,愿奥特之星和抚子与芝麻凛与你我同在
爱大家🌹
你要说去年我能料到我会在有明机房的轰鸣中度过我的32岁,那肯定是在扯犊子,不过某种意义上人生在给我开了一个小小的玩笑的时候,让我多了一段很特殊的经历
Feels not bad, I guess.
有着更多的不同的体验,见识没见过的东西,这可能也是人生的乐趣之一吧。
回想了一下过去这一年,应该确确实实是我最为”变化”的一年
在全新的环境,全新的技术栈下去探索新的事物(坦白说,我自己没想到过去一年中我技术的成长居然还恢复了我刚转行时候的速度)
解锁了全新的角色,探索了自己从未触及的边界,需要有更多责任心,更多的思考,对更多的事情,对自己 team,对更多的业务负责。
经历了生死,见证了生命的顽强与不屈,亦见证了生命的脆弱与短暂
解锁了全新的体验,去巡礼,去出租车上和司机一起聊奥特曼,去吃了很多好吃的东西
坦白说,这些变化,会成为我自己生命中最为重要的养料
我亦时常自问,“saka 你成为你小时候想要成为的人了吗?”
坦白说,我不知道。这个答案也许尚未到解锁最终版本的时机。也许只有当我合上眼睛那一刻,我们才能知道 Saka 这一生走向了何方。
去年我用的最多的词可能是“爱“,我在每次写完一些事故公告或者复盘的时候都会带上一句“爱大家🌹”。
可能有些矫情,但是对我来说,这个世界上唯有爱与希望不可辜负这句话在去年对我有了全新的诠释。
我很庆幸我现在所拥有着的一切,相互扶持走到数载的女友,有着世界上最棒的好友,有着世界上最棒的同事,但是有时梦魇醒来,我又很怕失去这些
呐,
Saka 很多时候还是会很不成熟
Saka 很多时候还是会有毛刺会伤人,但是也会立刻认错
Saka 还是会一直觉得摇曳露营是世界真理(这是重点(不是
请陪着 Saka 一起走下去好吗?
有很多话想说,但是枯燥的的文笔让我不知道继续说一些什么
那就在这里结束吧。
不辜负善意且回应期待,这是世界上最美好的事情
希望我往后亦能如是
所以,再见咯,31 岁的 Saka,你好,32 岁的 Saka!
愿我身边每一个人都能被爱与希望包裹,愿奥特之星和抚子与芝麻凛与你我同在
爱大家🌹
❤81👏4
May 10
Kubernetes 官方的 Ingress Nginx Controller bundle 的 Nginx 版本是 1.27.1 基本可以自己无缝 bundle 到 1.31.0
唯一需要注意的是中间有个 CVE-2025-23419 的 patch 可以移除(因为 Nginx 有自己的修复),剩下的基本无缝升级
老老实实自己的打镜像吧
唯一需要注意的是中间有个 CVE-2025-23419 的 patch 可以移除(因为 Nginx 有自己的修复),剩下的基本无缝升级
老老实实自己的打镜像吧
👍6
May 15
双相躯体化了,难顶
说起来难以置信,我已经一个月没写我的周报了,也一个季度没追新番了
感觉需要强迫自己做点工作以外的事情了
说起来难以置信,我已经一个月没写我的周报了,也一个季度没追新番了
感觉需要强迫自己做点工作以外的事情了
❤18
May 17
Forwarded from Welcome to the Black Parade
我第一次出柜是大二暑假和隔壁高校物理学院的学弟在qq讨论数学,无厘头地谈到这个话题,我自己强装镇定,硬绷出“我就是,你不服?”的气势,其实慌得要死,心跳++,发完这条消息就把手机扔到一边不敢看回复,没想到他回了一条“👍 ”,然后继续讨论广义积分的柯西主值。三年后他说他当时特别佩服我,然后站起来抱了我一下。
我和大学初恋在脸上互种草莓(😅),关系比较松弛的同学会开玩笑问我是不是**他**亲的,我的标准回复是“岂止是亲,连床都上了”。在那个可以互称基友的时代这种程度的扯淡很正常。
可能由于我对女生没有侵略性,这种气质反而吸引异性(?),多位学妹在“被暴力追求堵在图书馆女厕”、“熬夜学习太晚不敢独自回宿舍”、“忘了带伞请求送伞”等特殊时刻会请我帮忙,我也从不拒绝。毕业后一年我在北京才鼓起勇气对一位经常送我巧克力的女生出柜,表达感谢和歉意,承认自己过去没有勇气和自信,她在上海感叹“所有人都说你是gay就我不信!”
我直到很晚才告诉发小和同辈表亲,我总是看着他们的眼睛、正襟危坐,在他们瞪大眼睛“真的?”三次确认之后,他们答应在长辈催婚的时候替我打掩护。我长舒一口气,从我青春期开始我就一直在想象出柜后的恐怖,扭送戒同所什么的,世界终于露出了狰狞,大地裂开,我掉下去,但真的走到那里的时候,看起来还行,能对付。
我擅长仔细观察同事的立场,我记得某TL在某个早上八卦的时候笑眯眯地说他支持性少数,记得某E豆瓣转发“我对1+1=2不支持不反对”时会心一笑,记得某INTJ同事在严肃键政的时候说同性恋对社会无害应该支持,记得某土木同事在悉尼参加pride march发朋友圈,我内心默默标记性少数之友,好感度<<1
2018年我在澳大利亚new castle对大学同学出柜,那是他第一次认识身边的性少数,他身为潮汕人虽然并不太能理解但仍然热情招待我并让我睡他家。他问我为什么要对他出柜,我说,否则你们看到的都是新闻上那些猎奇的性少数故事,虽然他们也是性少数的一部分,但其实更多的都是普通人;我想要至少让我朋友看见,性少数就是普通人,追求普通的爱恨,渴望普通的人生,不特别,不高贵,不低贱。
#IDAHOBIT #国际不再恐同日
我和大学初恋在脸上互种草莓(😅),关系比较松弛的同学会开玩笑问我是不是**他**亲的,我的标准回复是“岂止是亲,连床都上了”。在那个可以互称基友的时代这种程度的扯淡很正常。
可能由于我对女生没有侵略性,这种气质反而吸引异性(?),多位学妹在“被暴力追求堵在图书馆女厕”、“熬夜学习太晚不敢独自回宿舍”、“忘了带伞请求送伞”等特殊时刻会请我帮忙,我也从不拒绝。毕业后一年我在北京才鼓起勇气对一位经常送我巧克力的女生出柜,表达感谢和歉意,承认自己过去没有勇气和自信,她在上海感叹“所有人都说你是gay就我不信!”
我直到很晚才告诉发小和同辈表亲,我总是看着他们的眼睛、正襟危坐,在他们瞪大眼睛“真的?”三次确认之后,他们答应在长辈催婚的时候替我打掩护。我长舒一口气,从我青春期开始我就一直在想象出柜后的恐怖,扭送戒同所什么的,世界终于露出了狰狞,大地裂开,我掉下去,但真的走到那里的时候,看起来还行,能对付。
我擅长仔细观察同事的立场,我记得某TL在某个早上八卦的时候笑眯眯地说他支持性少数,记得某E豆瓣转发“我对1+1=2不支持不反对”时会心一笑,记得某INTJ同事在严肃键政的时候说同性恋对社会无害应该支持,记得某土木同事在悉尼参加pride march发朋友圈,我内心默默标记性少数之友,好感度<<1
2018年我在澳大利亚new castle对大学同学出柜,那是他第一次认识身边的性少数,他身为潮汕人虽然并不太能理解但仍然热情招待我并让我睡他家。他问我为什么要对他出柜,我说,否则你们看到的都是新闻上那些猎奇的性少数故事,虽然他们也是性少数的一部分,但其实更多的都是普通人;我想要至少让我朋友看见,性少数就是普通人,追求普通的爱恨,渴望普通的人生,不特别,不高贵,不低贱。
#IDAHOBIT #国际不再恐同日
Please open Telegram to view this post
VIEW IN TELEGRAM
❤21
May 18
May 19
又把我司 PostgreSQL 的延迟狠狠的砍了
快成为 PostgreSQL 三分之二吊子
我发现我是对写新东西真没啥天赋,但是我是真喜欢查问题啊
查出一个问题能亢奋好久
快成为 PostgreSQL 三分之二吊子
我发现我是对写新东西真没啥天赋,但是我是真喜欢查问题啊
查出一个问题能亢奋好久
🥰27🔥5👍4
May 23
嘛,还是得防着自己的倒刺在无意间伤人啊。时刻得提醒自己这点 #TIL
X (formerly Twitter)
#TIL - Search
See posts about #TIL on X. See what people are saying and join the conversation.
❤5
May 25
May 27
周末把 Picimpact 狠狠的重写了一下。
把自己从去年到现在学到的一些现代化前端工程经验都用上了。也彻底解决了我自己使用中最大的痛点:当你全部都是20MB以上单图的时候,怎么做的更流畅
现在应该是和同类产品上性能没有直接代差了,同时也增强了一些小特性,比如首页 Random Daily 之类的小功能。
祝大家玩的开心
https://github.com/besscroft/PicImpact/releases/tag/v3.3.0 (Showing with 4,766 additions and 1,151 deletions)
把自己从去年到现在学到的一些现代化前端工程经验都用上了。也彻底解决了我自己使用中最大的痛点:当你全部都是20MB以上单图的时候,怎么做的更流畅
现在应该是和同类产品上性能没有直接代差了,同时也增强了一些小特性,比如首页 Random Daily 之类的小功能。
祝大家玩的开心
https://github.com/besscroft/PicImpact/releases/tag/v3.3.0 (Showing with 4,766 additions and 1,151 deletions)
GitHub
Release v3.3.0 · besscroft/PicImpact
Highlights
v3.3.0 is a major performance release that makes large photo libraries fast and stable on every device. The headline change is a new responsive image pipeline: instead of serving multi-m...
v3.3.0 is a major performance release that makes large photo libraries fast and stable on every device. The headline change is a new responsive image pipeline: instead of serving multi-m...
👍7
May 31
https://www.manjusaka.blog/posts/2026/05/31/optimize-picimpact-self-hosted-gallery/
把周末的优化过程大概写了篇博客,希望大家能喜欢
把周末的优化过程大概写了篇博客,希望大家能喜欢
Manjusaka
优化日志:给自建图床 PicImpact 做一次大范围性能优化
和 Debug 日志、SRE 日志一个系列,优化日志用来复盘一些可以公开的折腾经历。 这一篇的主角是 PicImpact——我自己在用的那个开源图床,跑在 photos.manjusaka.me 上,托管着我这几年拍的猫猫狗狗。去年年终总结里我写过一句「把自建图床项目的代码拾掇了很多」,这篇就算是那句话的注脚。前后断断续续修了一轮,修复点其实都不大,但中间冒出来的几个回归是真的有意思,尤其是最后那
❤13
June 1
题图是我和文中另外一位主人翁共同的爱好
这可能是我来日本最为宝贵的经历
今天晚上和同事吃完饭,走路去涩谷做地铁路上,线上出了点问题。在涩谷最有名的十字路口蹲着用电脑处理完线上的问题后。我去涩谷的吸烟区抽烟了
突然我发现旁边的日本小哥,疑似背着神秘农场的闪击35, 魔术贴贴着红十字。外挂了一个 PLA 的急救包和应急灯。我当时觉得可能是 EDC 同好
然后我们俩开始聊了起来。他是 EDC 玩家,是蓝天救援队粉丝,cosplay 过 蓝天救援,也非常喜欢摇曳露营,觉得我包上的摇曳露营好看!
而我在蓝天救援队服务了数年,我也很喜欢完 EDC。
我们彼此玩了彼此的装备(棍子,应急灯灯),也交换了推特
到家后,我发现他是一个消防士,是我最崇拜的职业。后面我们的聊天也聊的很开心。
我告诉他:“また、私がもう特に好きな漫画が2つあります。「海猿(UMIZARU)」と「め組の大吾 救国のオレンジ」です。これらが私がBSRに入るきっかけにもなりました。”
他告诉我:“め組の大吾は私も大好きな漫画です!あなたとの出会いは奇跡的なもので、本当に嬉しく思います!”
我们还聊了很多,他说“今、日本と中国、国どうしの関係は難しくなっていると思う。でも、”RESCUE”その使命ためにかける魂は国境を越えると信じています。”
我向他分享了来自艾斯奥特曼中我的人生座右铭“優しさを失わないでくれ。弱いものをいたわり、互いに助け合い、どこの国の人たちとも友達になろうとする気持ちを失わないでくれ。たとえ、その気持ちが何百回裏切られようと。それが私の最後の願いだ。”(热忱之心不可磨灭,体恤弱者,互相帮助,无论与哪国的人都能成为朋友,不要丢掉这份感情,纵然这份感情被背叛过几百回)
这真的是来日本最为梦幻,也最为奇迹的经历。
这份善意,可能毕生难忘
这可能是我来日本最为宝贵的经历
今天晚上和同事吃完饭,走路去涩谷做地铁路上,线上出了点问题。在涩谷最有名的十字路口蹲着用电脑处理完线上的问题后。我去涩谷的吸烟区抽烟了
突然我发现旁边的日本小哥,疑似背着神秘农场的闪击35, 魔术贴贴着红十字。外挂了一个 PLA 的急救包和应急灯。我当时觉得可能是 EDC 同好
然后我们俩开始聊了起来。他是 EDC 玩家,是蓝天救援队粉丝,cosplay 过 蓝天救援,也非常喜欢摇曳露营,觉得我包上的摇曳露营好看!
而我在蓝天救援队服务了数年,我也很喜欢完 EDC。
我们彼此玩了彼此的装备(棍子,应急灯灯),也交换了推特
到家后,我发现他是一个消防士,是我最崇拜的职业。后面我们的聊天也聊的很开心。
我告诉他:“また、私がもう特に好きな漫画が2つあります。「海猿(UMIZARU)」と「め組の大吾 救国のオレンジ」です。これらが私がBSRに入るきっかけにもなりました。”
他告诉我:“め組の大吾は私も大好きな漫画です!あなたとの出会いは奇跡的なもので、本当に嬉しく思います!”
我们还聊了很多,他说“今、日本と中国、国どうしの関係は難しくなっていると思う。でも、”RESCUE”その使命ためにかける魂は国境を越えると信じています。”
我向他分享了来自艾斯奥特曼中我的人生座右铭“優しさを失わないでくれ。弱いものをいたわり、互いに助け合い、どこの国の人たちとも友達になろうとする気持ちを失わないでくれ。たとえ、その気持ちが何百回裏切られようと。それが私の最後の願いだ。”(热忱之心不可磨灭,体恤弱者,互相帮助,无论与哪国的人都能成为朋友,不要丢掉这份感情,纵然这份感情被背叛过几百回)
这真的是来日本最为梦幻,也最为奇迹的经历。
这份善意,可能毕生难忘
❤32
June 5
June 8
June 9
June 9
对于 Linux 用户,建议不要升级到 fontconfig 2.18.1 ,目前已知 Chrome 系会出现字体配置 fallback 失效的问题(不要随意滚系统.jpg)
https://issues.chromium.org/issues/519984267?pli=1
https://issues.chromium.org/issues/519984267?pli=1
👍3🤔1
June 10
SRE 狗都不做的一个很重要的原因是
AI 会把对稳定性以及 Infra 的需求直接拉爆
轮子往前滚的速度加速了太多,而准备好的人太少
在跟我说一遍,SRE 狗都不做
AI 会把对稳定性以及 Infra 的需求直接拉爆
轮子往前滚的速度加速了太多,而准备好的人太少
在跟我说一遍,SRE 狗都不做
🔥14
June 10
最近聊到 AI 带来的职业焦虑问题,今晚正好和人聊了一下
对于大部公司而言 AI 可能可以替代不少环节,但是在最后一公里还差了很多
AI 时代带来交付和 Review 压力是极为恐怖的。要么 All in AI,要么要很限制 AI 的使用范围
而允许人使用 AI Coding 但是配套设置没跟上最后的后果就是,AI 会以一种狂暴的速度拉爆所有人
https://stripe.dev/blog/minions-stripes-one-shot-end-to-end-coding-agents
https://stripe.dev/blog/minions-stripes-one-shot-end-to-end-coding-agents-part-2
我还是建议大家都看一下这两篇文章再焦虑
或者说根据我自己的经验,焦虑之前可以判断以下几点
1. 自己公司是否有足够的 Context Memory 系统的建设,能让 AI 获取足够的 domain knowledge 吗?
2. 是否有足够的 devcontainer 等基建,能够让 Agent 有隔离的自迭代的跑起来
3. 是否有足够成熟的交付体系,通用框架,可以让 AI code 直接低成本的自动部署上线
4. 是否有足够的 skill/memory 等共享机制来复用通用能力
5. 数据仓库是否有足够的权限控制,可以实现满足 合规下的 AI 数据接入
如果以上有三点都没有做到,那我觉得暂时不用担心自己被 AI 替代,因为替代你的成本会很高。
请放心,AI 不会替代你,只会拉爆你
对于大部公司而言 AI 可能可以替代不少环节,但是在最后一公里还差了很多
AI 时代带来交付和 Review 压力是极为恐怖的。要么 All in AI,要么要很限制 AI 的使用范围
而允许人使用 AI Coding 但是配套设置没跟上最后的后果就是,AI 会以一种狂暴的速度拉爆所有人
https://stripe.dev/blog/minions-stripes-one-shot-end-to-end-coding-agents
https://stripe.dev/blog/minions-stripes-one-shot-end-to-end-coding-agents-part-2
我还是建议大家都看一下这两篇文章再焦虑
或者说根据我自己的经验,焦虑之前可以判断以下几点
1. 自己公司是否有足够的 Context Memory 系统的建设,能让 AI 获取足够的 domain knowledge 吗?
2. 是否有足够的 devcontainer 等基建,能够让 Agent 有隔离的自迭代的跑起来
3. 是否有足够成熟的交付体系,通用框架,可以让 AI code 直接低成本的自动部署上线
4. 是否有足够的 skill/memory 等共享机制来复用通用能力
5. 数据仓库是否有足够的权限控制,可以实现满足 合规下的 AI 数据接入
如果以上有三点都没有做到,那我觉得暂时不用担心自己被 AI 替代,因为替代你的成本会很高。
请放心,AI 不会替代你,只会拉爆你
stripe.dev
Minions: Stripe’s one-shot, end-to-end coding agents
Minions are Stripe’s homegrown coding agents, responsible for more than a thousand pull requests merged each week. Though humans review the code, minions write it from start to finish. Learn how they work, and how we built them.
❤22🔥2🥰1
June 11
June 14
June 19
June 22
June 22
Forwarded from LOTU$
大家举起虾钳,把光传给niko吧
╰😭╯╰😭╯╰😭╯╰😭╯╰😭╯╰😭╯╰😭╯╰😭╯
╰😭╯╰😭╯╰😭╯╰😭╯╰😭╯╰😭╯╰😭╯╰😭╯
June 22
June 22
June 22
June 22
他拿下了该死的 Major,他有,他有 Major 冠军了!谁再说我们 Niko 没有 Major 冠军了
🔥9
June 22
Niko 是我第一个认识的 CS 选手。刚开始看比赛,就被其极致的基本功,干净利落的比赛风格吸引了、
再往后,被这个人悲情的色彩,温情的场外风格(对手小年轻落寞时他也会去安慰)所吸引
都说这是步枪手最长的河,大家都在讨论一个28岁的选手是否应该转指挥,大家也默认了步枪手,突破手,最好的沙鹰使用者,预瞄王子 Niko 不会拿到他的 Major 冠军,大家也都在期盼指挥 Niko 什么时候拿下他的 Major
但是就在今晚,他和他的队友一起,在经过 Navi,Vitality,Spirit 恶战淬炼后,以 3:0 的姿态横扫对手,在对手 87% 胜率以上的强图也绝不让冠军拱手相让
坦白说比赛结束,比分定格的时候我直接哭成了泪人,我只想咆哮:“他拿下了该死的 Major,他有,他有 Major 冠军了!谁再说我们 Niko 没有 Major 冠军了”
如果说将 Major 比作科举,冠军是每个选手的登科之路。如果是其余人,可能会逍遥的“明年此日青云上,却笑人间举子忙”。但是我相信他会为他的下一个 Major 冠军而奋勇前行。29岁,是个步枪手正拼搏的年龄
哎,某种意义上见证了我自己青春的一部分的落幕。不管怎么样,请不要放弃你自己的梦想,万一实现了呢?
再往后,被这个人悲情的色彩,温情的场外风格(对手小年轻落寞时他也会去安慰)所吸引
都说这是步枪手最长的河,大家都在讨论一个28岁的选手是否应该转指挥,大家也默认了步枪手,突破手,最好的沙鹰使用者,预瞄王子 Niko 不会拿到他的 Major 冠军,大家也都在期盼指挥 Niko 什么时候拿下他的 Major
但是就在今晚,他和他的队友一起,在经过 Navi,Vitality,Spirit 恶战淬炼后,以 3:0 的姿态横扫对手,在对手 87% 胜率以上的强图也绝不让冠军拱手相让
坦白说比赛结束,比分定格的时候我直接哭成了泪人,我只想咆哮:“他拿下了该死的 Major,他有,他有 Major 冠军了!谁再说我们 Niko 没有 Major 冠军了”
如果说将 Major 比作科举,冠军是每个选手的登科之路。如果是其余人,可能会逍遥的“明年此日青云上,却笑人间举子忙”。但是我相信他会为他的下一个 Major 冠军而奋勇前行。29岁,是个步枪手正拼搏的年龄
哎,某种意义上见证了我自己青春的一部分的落幕。不管怎么样,请不要放弃你自己的梦想,万一实现了呢?
❤22
June 22
June 25
想起我和我司 CTO 的对话
CTO:“人不一定全部都会,你看我现在 Torch 这块就是半吊子”
我:“那我立个小目标,我要比你强一点,我要成为 2/3 吊子”
CTO:“好啊,来,鸡汤接好,专门给你的。 Modern GPU Programming For MLSys,每个字都写着给你的”
https://mlc.ai/modern-gpu-programming-for-mlsys/
CTO:“人不一定全部都会,你看我现在 Torch 这块就是半吊子”
我:“那我立个小目标,我要比你强一点,我要成为 2/3 吊子”
CTO:“好啊,来,鸡汤接好,专门给你的。 Modern GPU Programming For MLSys,每个字都写着给你的”
https://mlc.ai/modern-gpu-programming-for-mlsys/
🔥12👏1
June 27
昨天深夜和 CTO 随便有一搭没一搭闲聊的时候,我给他聊了聊最近我学 MLSys 的进度(我说我过段时间准备自己从头写个小模型的推理服务)。他给我推荐了新的学习资料。
他突然说,你要以 @antirez 作为榜样。我说是的,他是我的榜样。
过了一会儿,我说“我觉得我最终的目标其实就是一个,在我,40, 50, 60岁的时候,还是很想去学习新的东西”
我一直试图给我自己定的一个标准,叫作保持少年感。
少年感有很多含义,有好的,有坏的,你可能会保持年少的热血与热情,也可能因为实际上因为你的毛刺在不经意间伤到很多人
我其实不算一个脾气很好的人,所以我一直隔三岔五都会向 CTO 和其余同事寻求反馈,看我有没有因为自己的毛刺伤到人(其实也还是会伤到人)
除去性格上的磨炼以外,我觉得少年感最大的一点就是对于新事物的好奇与新鲜感。
过去很多年,我经历了很多,有好的,有坏的,也都牢记在心。但是最值得品味的莫过于许许多多的第一次,LED 第一次被我点亮,第一个生产服务上线,在出差路上第一次自己完整解出一道 Hard
我渴望一直进步,一直能获取新的东西,这时常会让我陷入一种时不我待的紧迫感中。虽然我在31岁生日也说过,“摆烂一念起,刹那天地宽”。但是依然会因为自己能力还是太菜而感到焦虑。
可能唯一感到的庆幸的一点是,我回顾过去这些日子,我还是在缓缓的往前走,有些时候很慢,有些时候快,但是终归是还是保持了一点点初心
我时常会问自己,“saka 你是个好人吗”,“saka 你是个合格的工程师吗”,“saka 你还能继续的摄入新的东西吗”
坦白说我不知道,这些问题可能在我坚持不下去退出这一行时估计也不会有答案。可能只有我被装在小盒子里时,方能盖棺定论,我们才知道求知者 saka 的一生终究是走向何方。
愈是时不我待,愈是需刚勇前行。
愿我接下来很多多年,依然能保持初心,保持少年感。毕竟美好的仗尚未结束,应走的路还未走完,应信守的道亦还未能坚守到终。
他突然说,你要以 @antirez 作为榜样。我说是的,他是我的榜样。
过了一会儿,我说“我觉得我最终的目标其实就是一个,在我,40, 50, 60岁的时候,还是很想去学习新的东西”
我一直试图给我自己定的一个标准,叫作保持少年感。
少年感有很多含义,有好的,有坏的,你可能会保持年少的热血与热情,也可能因为实际上因为你的毛刺在不经意间伤到很多人
我其实不算一个脾气很好的人,所以我一直隔三岔五都会向 CTO 和其余同事寻求反馈,看我有没有因为自己的毛刺伤到人(其实也还是会伤到人)
除去性格上的磨炼以外,我觉得少年感最大的一点就是对于新事物的好奇与新鲜感。
过去很多年,我经历了很多,有好的,有坏的,也都牢记在心。但是最值得品味的莫过于许许多多的第一次,LED 第一次被我点亮,第一个生产服务上线,在出差路上第一次自己完整解出一道 Hard
我渴望一直进步,一直能获取新的东西,这时常会让我陷入一种时不我待的紧迫感中。虽然我在31岁生日也说过,“摆烂一念起,刹那天地宽”。但是依然会因为自己能力还是太菜而感到焦虑。
可能唯一感到的庆幸的一点是,我回顾过去这些日子,我还是在缓缓的往前走,有些时候很慢,有些时候快,但是终归是还是保持了一点点初心
我时常会问自己,“saka 你是个好人吗”,“saka 你是个合格的工程师吗”,“saka 你还能继续的摄入新的东西吗”
坦白说我不知道,这些问题可能在我坚持不下去退出这一行时估计也不会有答案。可能只有我被装在小盒子里时,方能盖棺定论,我们才知道求知者 saka 的一生终究是走向何方。
愈是时不我待,愈是需刚勇前行。
愿我接下来很多多年,依然能保持初心,保持少年感。毕竟美好的仗尚未结束,应走的路还未走完,应信守的道亦还未能坚守到终。
❤47
June 28
AI 时代对于团队是个很大的考验,对于 Infra 的考验也极大的提升。
最近我们正在进行 SSR 的改造, 在改造过程中。我们访问量也在逐渐飙升。我们曾经很多年前(在我入职前)为 CSR 时期设计一个 Proxy 服务扛不住了。这个时间点来的比我预期的早了很多。我原本计划于7月中会对这个服务进行下线,并将流量接入点切换到另外的技术栈上
但是一切来的很突然,这个服务因为设计问题导致了今天我们主要的业务线累积宕机了 1h+,所以我作为 IC 临场做了一个指令,决定在有部分预案无演练的情况下,将流量一次性全部切走
事后发现这个决策是对的,我们主站的性能因祸得福也规避了历史技术债务得到了极大提升。
在这个时代,技术债被暴露的速度日渐疯狂。越来越多的临场决定和高风险操作需要做。坦白说如果今天不是有整体团队成员完整的分工与默契的配合,CTO 也完全相信我的临场决策不会干涉,同时我深知即便我指令错误,也不会需要我去背负不属于我的责任。我是不敢在没有演练的情况下去做出这个决策的。
我很庆幸能在这个团队中工作,但是这件事也愈发给我提醒,在 AI 时代,将本应该事前解决的问题放在事中和事后来做的成本极大放大。
这次学费交的不轻,希望我自己能够更多的事前解决问题,做出更有针对性的事前预判而不是事中事后临场补救
最近我们正在进行 SSR 的改造, 在改造过程中。我们访问量也在逐渐飙升。我们曾经很多年前(在我入职前)为 CSR 时期设计一个 Proxy 服务扛不住了。这个时间点来的比我预期的早了很多。我原本计划于7月中会对这个服务进行下线,并将流量接入点切换到另外的技术栈上
但是一切来的很突然,这个服务因为设计问题导致了今天我们主要的业务线累积宕机了 1h+,所以我作为 IC 临场做了一个指令,决定在有部分预案无演练的情况下,将流量一次性全部切走
事后发现这个决策是对的,我们主站的性能因祸得福也规避了历史技术债务得到了极大提升。
在这个时代,技术债被暴露的速度日渐疯狂。越来越多的临场决定和高风险操作需要做。坦白说如果今天不是有整体团队成员完整的分工与默契的配合,CTO 也完全相信我的临场决策不会干涉,同时我深知即便我指令错误,也不会需要我去背负不属于我的责任。我是不敢在没有演练的情况下去做出这个决策的。
我很庆幸能在这个团队中工作,但是这件事也愈发给我提醒,在 AI 时代,将本应该事前解决的问题放在事中和事后来做的成本极大放大。
这次学费交的不轻,希望我自己能够更多的事前解决问题,做出更有针对性的事前预判而不是事中事后临场补救
❤27
July 2
前两天和老板们进行了一次半年 1:1 ,CTO 和业务负责人都对我过去半年多的工作给予了高度的评价
坦白说,我自己对于我过去半年的产出是不太满意的。因为最核心一点是,在 AI Coding 时代技术大爆炸后,我们的稳定性工作并没有跟上我自己的规划,有客观的人力的因素,也有我自己的一些原因
不过我自己第一次自信承认了我自己的进步。过去这半年乃至一年的时间中,我自己对于业务的理解在持续的增长。我自己也主导了不少从业务视角出发,服务于业务,能带来显著业务收益的改造。而不是仅将视角局限于纯粹的技术视角
更难得是,我自己受益于业务场景以及 AI 的辅助,我自己在数据库以及 GPU 等领域的技术深度积累也在增加,这也是让我非常开心的事情
如果说要接下来有什么想法的话,我自己就还是想尽可能的做好事前的工作,如我之前也提到过,AI 时代会让事中事后处理的代价也爆炸。真正的成为一个没有“存在感”的 SRE
AI 时代会让我们走向何方我并不知道,我只知道,我现在成长的很开心,非常开心
坦白说,我自己对于我过去半年的产出是不太满意的。因为最核心一点是,在 AI Coding 时代技术大爆炸后,我们的稳定性工作并没有跟上我自己的规划,有客观的人力的因素,也有我自己的一些原因
不过我自己第一次自信承认了我自己的进步。过去这半年乃至一年的时间中,我自己对于业务的理解在持续的增长。我自己也主导了不少从业务视角出发,服务于业务,能带来显著业务收益的改造。而不是仅将视角局限于纯粹的技术视角
更难得是,我自己受益于业务场景以及 AI 的辅助,我自己在数据库以及 GPU 等领域的技术深度积累也在增加,这也是让我非常开心的事情
如果说要接下来有什么想法的话,我自己就还是想尽可能的做好事前的工作,如我之前也提到过,AI 时代会让事中事后处理的代价也爆炸。真正的成为一个没有“存在感”的 SRE
AI 时代会让我们走向何方我并不知道,我只知道,我现在成长的很开心,非常开心
❤16👍9👏1
July 2
July 5
July 6
July 6
你别说 TiDB 挺适合在 Agent 时代用来快速起测试环境的(N多个测试 DB 一次性就丢),为什么 PostgreSQL 没这样的替代品呢(别提 AWS Aurora(
July 8
July 8
July 8
July 8
https://fixupx.com/CMGS1988/status/2074488576356876585
我很喜欢 CMGS 这篇文章
我觉得 Infra 最核心的价值是去理解业务以及做 decision 的能力
在我看来,很多时候 AI 给出的东西不是没有价值,但是更多时候在我看来叫作“正确的废话”
比如你如果要将一个 Region 从 A 云搬迁往 B 云怎么做,AI 可能会回答的头头是道,但是最终去做的过程中做有利于业务的 decision,做业务价值最大化的 trade off,这个是最为艰难也是最为有挑战的部分。
我举个更 Specific 的例子,比如你现在在 PostgreSQL 下对一个数 10 T的库,单表10T+的一个单列超过 4T 的库进行删列操作 AI 会告诉你,没有问题,你可以先进行删列,然后使用 pg repack 进行 repack。它会第一版给你列出一个很详细的在理想状态下的周期,比如你的 10T 的库进行操作按照一个理论的 EBS 带宽进行操作需要多久
但是这里实际上 EBS 会有很多隐藏的问题,比如随机读写差带来的 DB 连锁反应,你需要升配,你为了保险起见,指挥 AI 做了几轮实验,有了足够的数据。
你现在方案定了,时间定了 那么新的问题来了,业务是在往前走的,你中间会穿插着业务迭代的,你该选取哪个时间段做变更?由于这个事情是需要业务封板配合的,你怎么安排业务封板?这个月变更窗口有哪些?中间出现紧急意外怎么处理?
当然你可以说在理想的情况下我能构建一个超大的上下文,让 AI 无论主动或者被动的能够获取更多的信息,那么这就是核心冲突,对于大部分并非 AI native 的公司来说,构建一个 AI 友好的上下文的成本就会打过去做数据库优化这件事本身。 这就是我和 @CMGS1988 一致的一个观点,一个 Senior 的 Infra Engineer 核心的一个能力就是在有限的 cost 和上下文中作出 trade off 的能力。
我很喜欢 CMGS 这篇文章
我觉得 Infra 最核心的价值是去理解业务以及做 decision 的能力
在我看来,很多时候 AI 给出的东西不是没有价值,但是更多时候在我看来叫作“正确的废话”
比如你如果要将一个 Region 从 A 云搬迁往 B 云怎么做,AI 可能会回答的头头是道,但是最终去做的过程中做有利于业务的 decision,做业务价值最大化的 trade off,这个是最为艰难也是最为有挑战的部分。
我举个更 Specific 的例子,比如你现在在 PostgreSQL 下对一个数 10 T的库,单表10T+的一个单列超过 4T 的库进行删列操作 AI 会告诉你,没有问题,你可以先进行删列,然后使用 pg repack 进行 repack。它会第一版给你列出一个很详细的在理想状态下的周期,比如你的 10T 的库进行操作按照一个理论的 EBS 带宽进行操作需要多久
但是这里实际上 EBS 会有很多隐藏的问题,比如随机读写差带来的 DB 连锁反应,你需要升配,你为了保险起见,指挥 AI 做了几轮实验,有了足够的数据。
你现在方案定了,时间定了 那么新的问题来了,业务是在往前走的,你中间会穿插着业务迭代的,你该选取哪个时间段做变更?由于这个事情是需要业务封板配合的,你怎么安排业务封板?这个月变更窗口有哪些?中间出现紧急意外怎么处理?
当然你可以说在理想的情况下我能构建一个超大的上下文,让 AI 无论主动或者被动的能够获取更多的信息,那么这就是核心冲突,对于大部分并非 AI native 的公司来说,构建一个 AI 友好的上下文的成本就会打过去做数据库优化这件事本身。 这就是我和 @CMGS1988 一致的一个观点,一个 Senior 的 Infra Engineer 核心的一个能力就是在有限的 cost 和上下文中作出 trade off 的能力。
📰 Article • FixupX
Infra 和 AI
我其实不太想写 “AI infra” 这个词,听起来像是把计算、存储、网络三板斧重新包装了一遍。但最近用 Fable 5 蹬 cocoon / sandbox,确实让我第一次很具体地感觉到:大人,时代变了。 之前我就想写写关于开发
👍18❤1
July 8
July 11
July 16
July 16
Forwarded from Welcome to the Black Parade
Bash 5.3 要发版了,我订阅了 Bash-announce 邮件列表所以第一时间收到了通知。在长长的 what's new 邮件最后,落款 Chet Ramey,上一行有两句诗:
这两句诗用现代英文转述:
点进去看看 Chet Ramey 个人网站: http://tiswww.cwru.edu/~chet/ ,仔细读完每一个链接,心中大概有了人物画像:60 岁左右,一生在俄亥俄州凯斯西储大学 IT 部门工作,从 1992 年开始成为 Bash 核心开发,至今仍是项目唯一维护者,和猫猫狗狗老婆小孩居住在一起。旅行和生活比代码更重要,和家人的合影链接要放到 My Projects 之前。
我又想起两个月前和我有短暂交流的 libpcap(唯一活跃?)维护者 Denis Ovsienko,乌克兰人,定居英国,在个人网站 https://ovsienko.info/ 上写道:
他常常一个人在 libpcap issue 区研究陈年 bug,一个人更新进展:“我又给 ipv6 proto chain 加了更多测试啦”。我看着他网站里的相册,推测他很可能独居,我隐约看到了自己。
有一批世界级程序员就是这样过着平静的生活,他们创造、维护的软件被无数人每天使用,影响了一整个时代,启发出革命性的项目(libpcap -> cbpf -> ebpf),但默默无闻,乐在其中。我也想过这种生活。
最近某轮面试最后,面试官问我“对将来的职业和人生有什么规划”。一个标准的面试问题,十年前我面试第一份编程工作时也被问过。十年前我表演了一个发奋图强、知耻后勇、激流勇进的卷王,但这次我说:我想过上简单平静的生活,就像 Chet Ramey 和 Denis Ovsienko 那样。这就是我想度过的人生。
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
这两句诗用现代英文转述:
The life so short, the craft so long to learn.
Skillfulness takes time and life is short.
点进去看看 Chet Ramey 个人网站: http://tiswww.cwru.edu/~chet/ ,仔细读完每一个链接,心中大概有了人物画像:60 岁左右,一生在俄亥俄州凯斯西储大学 IT 部门工作,从 1992 年开始成为 Bash 核心开发,至今仍是项目唯一维护者,和猫猫狗狗老婆小孩居住在一起。旅行和生活比代码更重要,和家人的合影链接要放到 My Projects 之前。
我又想起两个月前和我有短暂交流的 libpcap(唯一活跃?)维护者 Denis Ovsienko,乌克兰人,定居英国,在个人网站 https://ovsienko.info/ 上写道:
sometimes I work jobs for living, sometimes I contribute pro bono to free and open source software projects, often I do both.
他常常一个人在 libpcap issue 区研究陈年 bug,一个人更新进展:“我又给 ipv6 proto chain 加了更多测试啦”。我看着他网站里的相册,推测他很可能独居,我隐约看到了自己。
有一批世界级程序员就是这样过着平静的生活,他们创造、维护的软件被无数人每天使用,影响了一整个时代,启发出革命性的项目(libpcap -> cbpf -> ebpf),但默默无闻,乐在其中。我也想过这种生活。
最近某轮面试最后,面试官问我“对将来的职业和人生有什么规划”。一个标准的面试问题,十年前我面试第一份编程工作时也被问过。十年前我表演了一个发奋图强、知耻后勇、激流勇进的卷王,但这次我说:我想过上简单平静的生活,就像 Chet Ramey 和 Denis Ovsienko 那样。这就是我想度过的人生。
👏21👍6🥰2
July 22
July 22
July 23