codedump的电报频道
4.43K subscribers
151 photos
4 videos
2 files
622 links
发布个人博客(主页 codedump.info)、想法、推荐等。RSS订阅地址:https://rsshub.app/telegram/channel/codedump_notes,过往汇总搜索可以到:https://app.shokichan.com/c/tg/codedump_notes。
Download Telegram
#杂
同样是表达“珍惜当下”的意思,我最喜欢的还是阿尔贝·加缪的那句话:

“对未来的真正慷慨,是把一切都献给现在” 。

“Real generosity towards the future lies in giving all to the present.”。
👍2
#技术
最近在看etcd的watcher机制的实现,看着看着,发现etcd还自带了一个叫adt的包,里面手写了一个红黑树的实现:

https://github.com/etcd-io/etcd/tree/main/pkg/adt
#杂

只看作者贴出来的界面截图的话,这款qt写的编辑器可以说很像notepad++了,后者还只有win版本,而这个NotepadNext还有Linux版本,而且使用qt的话未来不排除会有Mac版本:

https://github.com/dail8859/NotepadNext
#杂
在微软收购了Github之后,就可以任意开私人仓库了(有钱真好),于是很多我在阅读的项目源码,都会单独开一个项目来保存阅读过程中的代码注释,命名是“项目名称-版本号-codedump”。

目前这类项目里开放出来的是Lua和etcd:

Lua 5.1.4:https://github.com/lichuang/Lua-5.1.4-codedump
etcd 3.1.10:https://github.com/lichuang/etcd-3.1.10-codedump
#博客

《周刊(第11期):mmap适用于存储引擎吗?》

想写这篇文章,主要源于两篇文章(论文)中的对mmap在存储引擎中使用的两种截然不同的观点讨论:

* 反方(mmap不应该用于存储引擎):Are You Sure You Want to Use MMAP in Your Database Management System? (CIDR 2022)
* 正方(mmap可以用于存储引擎):re: Are You Sure You Want to Use MMAP in Your Database Management System? - Ayende @ Rahien

由于刚好看过这两种方式的btree存储引擎:sqlite的btree实现以及boltdb,所以可以结合我的认知来聊一聊这个问题。


博客:https://www.codedump.info/post/20220327-weekly-11/
公众号:https://mp.weixin.qq.com/s/6DTpOGtCWHx2hGbTxj7pUg
邮件订阅:https://www.getrevue.co/profile/lichuang
#杂
对比了两位成功的同龄程序员,Markus Persson(Minecraft之父)和David Hansson(Ruby on Rails之父)成功之后的不同感受:

”后来才发现,似乎他最在乎的就是别人怎么看他。可能他会觉得,我如此有钱、如此成功,你们都应该跪舔我、赞美我啊,结果却发现周围的人仍然是不喜欢他的居多,那哪怕是创业成功,也无法让他开心起来。“


“原来真正让我感到满足的,是用Ruby语言写程序、开发Basecamp、写博客文章、拍照片,享受那些学习跟娱乐,那些我本来就负担得起的生活。
“真要说什么收获的话,就是我更加珍惜全心专注时的心流和宁静,那才是我一直以来的真正的幸福源泉。”

https://weibo.com/1787094780/LlJ0pd4lx
#杂

《教育对人的改变有多大》,作者讲述了自己是怎么帮助弟弟从一个普通学生转变成一个优等生,以及变成优等生之后的弟弟生活发生的变化。

看了之后的感觉:有这样的哥哥真是幸运。

https://xiaohanyu.me/posts/2017-02-13-about-education/

其实已经是快五年前的文章了,突然想起来推荐一下。
👍1
#杂
2005年4月6日(也就是2005年的今天),Git发布了第一版。Git无疑是最伟大的开源软件之一,它的出现极大改变了开源软件的协作、开发方式。

根据这里的“史料”( https://www.ithome.com.tw/news/95088 )记载:Linus最初只花了10天就写出了第一版可以跑的Git了。
Forwarded from Rust 视界
学习 Rust 你需要一个认知框架

如果你学习 Rust 的过程感觉到艰难、痛苦或迷茫,不妨看一下这篇文章。 但如果你学 Rust 感觉很轻松,那这篇文章就对你无用,可以忽略。

微信阅读: https://mp.weixin.qq.com/s/3Y0AhB-BCkLCqk7aE_9cDQ
知乎阅读: https://zhuanlan.zhihu.com/p/494001676
#杂
一位在美国工作的工程师写的国外大公司(文中是亚马逊)晋升的一些槽点,看起来和国内大公司也差不多,看下来还是坚定我的看法:我这样的人,可能并不适合在一个大企业里工作,以后有可能还是继续在一个小型的团队里工作,屁事会少一些。

尤其是这篇文章开头的第一句:“除了很多年前第一份工作非常懵懂地升过两级以外,我从来没有升过职。”,我心想这不就是我本人的写照吗。

https://yorotoo.medium.com/%E5%85%B3%E4%BA%8E%E5%8D%87%E8%81%8C-55dbe62ebaf

(如果上面的链接打开有问题,可以先到作者的medium:https://yorotoo.medium.com ,打开那篇叫《关于升职》的文章。)

另外文中还推荐了一个推特上的吐槽:
https://twitter.com/kantrn/status/1511791378497384454
#杂

关于威尔史密斯打人,一位台湾老师的社会课引导思考

“我告訴學生,我今天扮演的角色,就像是政治人物或媒體,我蓄意餵養你片面的、我想要你知道的資訊,而有超過7成的人,在這個過程中,被我操弄了,你因為我每次餵養的資訊不同,而產生立場反覆的狀況!明明政治人物應該考慮的是公益,媒體應該報導的是真相,但我若故意要操弄輿論,我只要給你我要你知道的訊息就好,對我不利的,我一概不提。慢慢的,我就可以透過這種愚弄的手法,讓民眾變成對我死忠而深信不疑的禁臠而不自知,我要你膜拜你就膜拜,我要你打砸殺你就打砸殺,我要你剷除異己你就剷除異己,我要你上刀山下油鍋,你還會爭先恐後想要身先士卒。而這樣的現象,正在世界各地上演”

https://www.facebook.com/hhsleo/posts/5543635368999794

(上面这篇文章,貌似需要FB登录才能看,也可以看看微信公众号的转发:https://mp.weixin.qq.com/s/lGJpnq89gxTPxj_KUA2ZCg
👍1
#杂
“和很多人追求“稳定” “不变” 和“确定性” 才会有安全感不一样,我的最大不安全感就是来自于过于稳定(过于稳定和不变往往伴随着没有选择)超级稳定态往往是最不稳定态。反脆弱最重要的是有足够的冗余和选择。没有选择是最大的不安全感”

https://weibo.com/2248200494/LnIKGisbo
#博客

周刊(第12期):Page oriented类存储引擎里可能同时存在多种结构

本期聊一聊Page oriented类存储引擎内的数据结构组织。在满足“向磁盘读写的基本单位是物理页面”这个大前提下,这类存储引擎可能同时存在多种结构。

博客:https://www.codedump.info/post/20220410-weekly-12/
公众号:https://mp.weixin.qq.com/s/xXUDnXgzbnMgqh3e-hofuQ
邮件订阅:https://www.getrevue.co/profile/lichuang
#杂
时隔666天,武磊再次在西甲获得进球。

本赛季武磊其实获得的机会着实不多,大部分时间是替补,而是还基本是垃圾时间的替补。职业球员长期没有正式比赛踢,一方面状态没有办法保证,另外还会让自己、队友、教练都质疑自己的能力。

时间倒退回2019年1月份,如果武磊没有选择转会西甲,完全可以继续在中国做联赛一哥,即便到2021年开始限薪,稳稳拿着一年几千万人民币的薪水也是一点问题没有的。选择离开舒适圈,降薪加盟西甲联赛,独自在海外闯荡,尤其是被冷藏在板凳这么久也没有消沉,光这一点就值得让人尊敬。

所谓“光荣与梦想”,对C罗梅西这样程度的球员来说,可能是欧冠、世界杯这样的荣耀。武磊,终其职业生涯,可能顶天了不过就是一个西甲联赛中下游球队的板凳轮换,没有踢过欧冠、世界杯。并不见得所有人的光荣梦想最后都能以摸到奖杯来划上圆满句号,但并不能因此就否认那些在你看不到的地方的人做出来的努力。
#杂
知乎这个回答生动地解释了“全序(total order)”和“偏序(partial order)”的区别。

粗浅的理解:九代单传之所以是“全序”,是因为这个集合里任意两个人的辈分都有差异,因为“单传”嘛,不存在有同辈人的情况;而在有堂兄弟姐妹的情况下,同代人的辈分就没有大小之分,这就是“偏序”。

偏序:集合里的所有元素不见得都能对比大小,但只要能对比大小,一定会满足:如果a>=b,那么一定b<=a(反对称性);以及如果a>b,且b>c,那么一定有a>c(传递性)。
全序:在偏序满足反对称性以及传递性的基础上,集合里的所有元素都能对比出大小来(完全性)。

因此,全序本身就包括偏序。

https://www.zhihu.com/question/36758436/answer/1078452247
#杂
最近在使用Rust编写gRPC服务,这篇教程讲解了这部分内容,包括一应一答模式、单向stream模式、双向stream模式都有对应的代码例子:

https://dev.to/anshulgoyal15/a-beginners-guide-to-grpc-with-rust-3c7o