codedump的电报频道
4.43K subscribers
151 photos
4 videos
2 files
623 links
发布个人博客(主页 codedump.info)、想法、推荐等。RSS订阅地址:https://rsshub.app/telegram/channel/codedump_notes,过往汇总搜索可以到:https://app.shokichan.com/c/tg/codedump_notes。
Download Telegram
#开源
《机器学习系统:设计和实现》:做世界上第一本全面讲述机器学习系统知识的开源书籍
👍16
#文章推荐
当年上大学刚开始学习编程的时候,彼时台湾的侯捷老师的著作刚刚引进大陆,这才让我了解了这位老师,翻译、撰写的技术书籍不一一阐述,看过的都知道质量。这里提一篇当时在他博客上看到的文章《迷时师度 悟了自度》,里面的观点至今还印象深刻,有了“悟了自度”这个观念之后,给后续的学习、生活提供了很多帮助,比如不要做伸手党、学会问出好问题,等等。在我刚开始学习编程的时候就看到这篇文章得以受启发,建立了一些正确的观念,实在是一件很幸运的事情。

“我知道我就要永远告别我的学生生涯,再也没有人度我,我要自己度化自己了”

遗憾的是,侯捷老师的博客很早就关闭了,所幸网上还是能找到别人保存的副本:《迷时师度 悟了自度》
👍20😁1
#编程

《入行 14 年,我还是觉得编程很难》,编程最难的地方之一是“管理复杂度”。

结合最近Chatgpt火爆之后对程序员这个行业的冲击,我想类似Chatgpt这样的人工智能工具也许能辅助写一些代码,但感觉只能辅助那种有明确输入、输出的,比如写个排序算法,但是要说把功能模块如何组织在一起成为一个项目,还是得有靠谱的人。

作者著有书籍Python工匠》
👍13
#杂
如果人工智能这一波起来,不知道该投哪家公司,不知道谁最终获胜,那买英伟达大概率是不会错的,毕竟GPU谁都得用不是。

利益相关:本人持有英伟达股票。
😁17👍3
#工具
Douban Book+,一款浏览器插件,安装之后打开豆瓣读书的条目,会显示出来这本书的电子书资源。
👍18
#工具
之前推荐过flomo这个闪念笔记工具,用于记录只有自己能看到的”个人微博“,且带上tag能够在笔记之间双向链接。

有网友做了一个纯开源的版本memos,但是跑起来比较麻烦,需要docker。

有网友基于memos做了一个obsidian的插件,现在在ob里面就能记录类似flomo的闪念笔记了,我体验了一下,如果没有很强的手机上记录的需求,这个插件也够用了,重要的是ob记录的笔记是完全自己可控的。
👍4
#Databend
Databend 1.0正式发布》

通常版本号都是由开发者来决定,“1.0”这个特殊的版本号想向外传递的信息是:产品的功能、稳定性、性能等指标已经到了可以面向用户商用的程度了。

从零到1.0,只用了团队两年的时间,我觉得除了技术水平的因素以外,选择纯Rust打造也是很大的原因,选c艹等语言的话,可能时不时会卡壳停下来查一查内存导致的泄露、崩溃等问题。
👍18
#Scheme
最近在看SICP,需要提前学一学Scheme,网上找来一本简明教程 Teach Yourself Scheme in Fixnum Days ,把Scheme的核心内容都讲到了,足够入门用了。
👍7
#文章推荐
《野心与梦想:国产大飞机浮沉五十年》

由于毕业于北航的缘故,在我的同学里有不少(曾经)参与国产大飞机的研发工作。去年C919获得适航证,同学群里着实欢呼了一番。

外界对C919的质疑之一,就是这里的零件很多都是外包生产的,如何体现所谓自主研发的优势?我想时间拉长一些,过去我们只能给别人生产零件,如今慢慢地也能自己设计制造了。

引用文中的话来回答这个质疑:


争议也因此甚嚣尘上:核心零部件大多进口而来,到底能不能叫自主研发?

实际上,飞机能组装成功,就已经是一种顶级制造能力。

飞机制造本质上考验的是对几十万零部件进行选型、协调、管理的“系统集成能力”,以及整体设计规划和精密控制的水平。

做消费电子,把CPU内存硬盘等零部件往主板上一插,就是台能用的电脑;但造飞机,把发动机买回来装进飞机壳里——这玩意它飞不起来。

最重要的是,飞机组装也意味着零部件的自主采购权,带动的是整个产业链的进步。和消费电子不一样,“拼起来的飞机”本质上是一个供应链平台。


用发展的眼光看问题,而不是仅仅只看一个时间的截面得到一个静止的结论。小时候经常看到的一句话“几代人的努力”去做某件事请,长大了以后觉得这样的话并不是空话,在很多领域咱们落后,于是就需要几代人接力去逐步靠近这个目标。
12👍6🆒2
#Databend
Databend是一款基于云原生的数据库,底层的数据存储都跑在各种云服务之上(AWS、阿里云、华为云、腾讯云,etc),于是就需要一个数据访问层(Data Access Layer)去屏蔽底层不同存储介质的差异。

一年多以前,团队内的小伙开始构思将这部分功能独立出来成一个单独的模块,这样也能方便其他有类似需求的项目,这个项目就是后来的OpenDAL。后来也确实有不少项目用到了这个库,包括:sccache、GreptimeDB、RisingWave等。

经过一年多的生长,最近OpenDAL项目进入Apache基金会的孵化器了
👍15
#Rust
Rust死灵书(《The Rustonomicon》) 的 中文翻译版,翻译者应该在字节从事Rust基础架构工作。
👍202
#杂
聊一聊我做为一个数据库从业者对Chatgpt的看法。

本质上来说,Chatgpt这样的工具可以认为又是另一个“效率工具”。而程序员这个群体,可能是最会给自己造“效率工具”的群体,没有之一,比如:云计算、SAAS,等等的。换了其它创作类群体,比如画家、作家等等,他们更多的时候都只能等待别人给他们造效率工具来提升效率。这些不会自己造工具的群体,当看到新的效率工具出现时,都会被之震撼;而由于一直没有革自己的命,当真的变革来临时,很多人没有来得及转身就被替代了。

从这个意义上来说,做为程序员还是很幸福的:一直保持对自我的迭代、更新,就像我一直说的那样:“编程”是普通人类最容易拥有的“超人技能”,没有之一。

所以,什么“降本增效”、“革自己的命”这些说法,对程序员群体来说早已不陌生,相当一部分人的软件生意就是给另外一群做软件的人做工具。这次Chatgpt能如此出圈,我想更多的就是前面说的,给那些不会自己造效率工具的群体带来了惊喜:原来我只要说一些人话,这个工具就能来辅助我了,不需要我掌握更专精的工具(比如会编程)。

为什么最近几年,所谓的“独立开发者”越来越多被看到听到了?我想主要有两个原因:App Store、Steam这样对独立开发者友好的软件商店,极大得方便了开发者宣传产品、以及支付渠道的通畅;其次就是前面提到的这些面向开发者的效率工具、平台越来越多越来越好用了,不再需要开发者18般武艺样样精通,自己去维护一套服务、自己来运维服务器,这些细节已经由云计算厂商、SAAS公司给你做了,开发者只需要挑选合适的工具,自己做最核心的产品体验部分,这样就能搭积木一般把产品搭建起来。

软件行业里,这么多年一直在迭代各种类型的软件给程序员本身来提升效率:汇编语言到高级语言、简单的文本编辑器到专业的IDE、云平台、SAAS,等等。这不是第一次由程序员群体自己发起的效率革命,也当然不会是最后一次,这些迭代一直以来都在进行着,程序员们早就见怪不怪了。

从软件开发者的视角来看,这一点再自然不过:软件就是要屏蔽底层的实现细节,把方便留给上层的使用者。于是云计算屏蔽了底层的服务器、SAAS抽象出来通用的服务,等等。

回到数据库这个行业来,本质上“数据库”也是给开发者“降本增效”的软件之一。当“开发者”的门槛降低,意味着有更多的人可以通过和机器打交道的方式来工作。以往这个门槛相对较高,可能需要会一些编程语言,还需要系统学一些计算机的知识:算法、操作系统,等等;现在很多时候,可能只需要简单的SQL就能满足他们数据方面的一些增、删、改、查需求。从这个意义上来说,SQL确实是跟很伟大的发明,这是一门描述性的语言,又是“异构”的,完全不用在乎你底层是什么Python、Java还是CPP来实现的。对于复杂的SQL如果不会写,还能使用Chatgpt来辅助生成,比如Databend能够结合AI辅助生成一些SQL了:https://databend.rs/doc/sql-functions/ai-functions/ai-to-sql

我做为一个数据库的开发从业者,在开发者的门槛变低之后,反而是会更加乐观的:因为有更多的人需要我们提供的服务了。
32👍6🤔2👨‍💻1
#杂
以前看过一个关于钱和人生的比喻,大概是这么说的:假如人生是一场自驾旅游,赚钱就是给这场自驾旅游加油,没有油车就走不远,旅行就无从谈起了,但是大概不会有人会把去各个地方加油当成这场旅游的目的。

这是我看到关于钱和人生关系最好的一段描述,赚钱到底是目的还是手段,这只有自己才能想明白了。

对我来说,人生短短几十年,尽可能找到自己喜欢做的事情,多做点自己觉得有意义的事情,如果能顺便赚点钱过上舒适的生活,那就更好了。不排除有些时候,世俗的压力得向生活低头做些自己并不喜欢的事情,但这跟上面这句话也并不冲突。

我看到很多人,即便在我的认知里已经有不少钱了,但是仍然会为了赚钱做一些吃相难看的事情,这可能就是太想明白钱到底是目的和还是手段。赚钱是为了让你过上体面的生活,生活体面了之后人也应该“体面”起来,而不是反之最后变成了它的奴隶。
👍5611
#杂
以前工作里遇到的问题:某业务服务器有内存泄露,一时半会儿解决不了。于是在前面加了一组网关服务器,每个网关维护后面的一组业务服务器列表,负责无脑转发客户端请求,以及在失败的情况下转发给另外的业务服务器处理请求。

这样改动之后,业务服务器可以定期重启,重启时通知网关从服务器列表中删除,不再向这台业务服务器转发请求,重启完成之后,业务服务器再通知网关重新加入服务器组对外提供服务。

“计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决。”
👍26
#杂
关于数学学习,有两个观察:

* 即便一个人的数学知识储备到了高中数学层次,部分小学数学的奥赛题也不一定能解得出来;
* 鸡兔同笼 是非常经典的小学数学奥赛题型,可是如果学到了初中数学,有了未知数、方程式的概念,这个问题就是非常简单的解二元一次方程。

这两个观察的思考是,过度在技巧中沉浸,很多时候意义不大,因为”技巧“的钻研是个无底洞;与此相对的是,很多问题当你掌握了更高级的工具之后(比如上面的二元一次方程之于鸡兔同笼问题)就能马上迎刃而解。

所以对大部分人来说,掌握了一门知识的基础概念、做了一定量的练习之后,就可以接着去追求往更高层次的知识,而不是过度沉浸在”技巧“中。如何判断对一个知识的掌握已经“足够”了,首先根据二八原则来,掌握最常用的八,其它的边做边学;其次,如果有这个领域的经典教程,那么编撰这套教材的人肯定在这个领域已经浸淫多年,书里的重点、练习做得差不多就好了。

把这个观察得到的方法论推而广之:很多时候我们关注于“解题”本身,慢慢得过于关注技巧、为鸡毛蒜皮的问题解决而沾沾自喜,以至于忘了往更高的层次去走。比如以前还在写C的时候,经常为解决某个内存引发的问题而沾沾自喜,这些问题放到Rust语言的设计里编译器就不会让这种情况出现,很多问题在用了另外的角度、有了别的视野、换了其它工具之后就不复存在了。

人生苦短,别把太多问题放在“解题技巧”上,很可能当视野打开之后,问题就不再是问题了。解题之前,不妨多问自己几个问题:这个问题非要解决吗,能不能换别的路线绕开它,有没有更好的工具辅助解决这个问题,下一次能不能避免出现类似的问题,等等。扁鹊三兄弟的故事里,扁鹊就是兄弟里最能解题的人,而他两个哥哥都能问题发生之前避免问题,所以他们能力更强。

最后,反过来看前几年出台政策把奥赛的热度打下来,我认为是有可取之处的。如前面的讨论,奥赛过度关注技巧,这可能也是中国为什么赢得这么多奥赛金牌却出不来几个知名数学家的原因之一:解题解到最后,并不能让你成为一个大家。
26👍91