codedump的电报频道
4.42K subscribers
149 photos
4 videos
2 files
617 links
发布个人博客(主页 codedump.info)、想法、推荐等。RSS订阅地址:https://rsshub.app/telegram/channel/codedump_notes,过往汇总搜索可以到:https://app.shokichan.com/c/tg/codedump_notes。
Download Telegram
#人工智能
2016年,当时还是大学生的宇树科技创始人王兴兴在知乎上关于大学期间做的xDog回答

这一晃快10年过去,本人已经成为国内机器人领域的领军人物了。
👍18
#分布式
#系统设计
不错的关于异地多活系统设计的文章《搞懂异地多活,看这篇就够了》,作者还额外总结了一份各大公司异地多活设计的资料汇总
👍12🔥2
#人工智能
我最近的一个感想,人工智能时代,知识的获取不再困难,但是获取经验仍然很难。就是说,很容易变成一个“知道分子”,但是一提具体问题的思路,就无从下手。
👍21
#人工智能
从我的观察(朋友圈、微博、微信群)来看,今天GPT4.5发布的讨论度,甚至还不如DeepSeek今天公布的开源项目3FS。GPT 4.5没有什么讨论度,说明产品并不惊艳,距离当初的GPT 4发布已经过去了两年多了,这中间OpenAI只是发布了一个演示性质的Sora而已,两年多的时间过去,再没有交出实打实的好产品,领先的优势基本被追平了。
👍81
#人工智能
最近在朋友圈看到大量的腾讯元宝广告。毫无意外,在大量的广告投入以后,腾讯元宝也一下超越豆包、DeepSeek官方App来到第一名。

在DeepSeek完成市场用户教育,打好基建(将模型开源)以后,凭借社交媒体的优势,腾讯元宝只要能够支持好普通人使用DeepSeek模型,摘下这个桃子一点都不意外,也早就驾轻就熟了。

可换一个角度来想,DeepSeek同样也是需要腾讯的社交来帮助自己更广泛传播的。这就好比果实要通过被鸟吃下,才能完成种子的传播一样。DeepSeek志在建立一个更广泛的开源模型生态,而搭上腾讯的便车,让更多一般老百姓就能使用上它的模型,才是后续建立生态的基础。

从这个角度而言,两者相互需要,因为诉求不一样但却互补:鸟想果腹,而果实希望被传播。
👍11
#数学
微博上看到的关于《凉宫春日的忧郁》和数学的故事,原文见《How Anime Fans Stumbled upon a Mathematical Proof》:

你敢信?一群二次元在4chan上随口聊了几句《凉宫春日的忧郁》,结果无意间推动了数学界的研究进展,甚至被正式写进了学术论文!

事情得从2011年说起,当时4chan上有人讨论《凉宫春日的忧郁》这部动画的特殊播放顺序。

当时这部作品还只有14集,内容被设计成非线性叙事,官方特意打乱了播放顺序,让观众可以按照不同方式观看,每种顺序可能都会带来不同的剧情体验。

于是,有人提出了一个有趣的问题:“如果要看完所有可能的播放顺序,最少需要看多少集?”

本来这只是个单纯的刷番问题,没想到它竟然撞上了数学界的一个未解难题——超排列(Superpermutation)问题。

简单来说,超排列指的是如何用最短的序列,把所有可能的排列顺序都包含进去。

比如,如果你有3集动画,所有顺序有3! = 6种,看完整个列表的话,理论上需要刷18集(3×6),但如果巧妙地让顺序部分重叠,比如1-2-3-1-2-1-3-2-1,这样只需要9集就能包含所有排列。(1-2-3和2-3-1共享2-3)

这就是超排列的精髓——用最短的方式覆盖所有可能性。

在4chan这场讨论里,一个匿名网友无意间给出了一个新的数学推导,得出了超排列最短长度的下界公式。

也就是说,他算出了这个问题的最小值范围,而数学家们当时还没找到这个结论!

离谱的是,这个匿名网友自己都没意识到自己的推导有多重要,只是随手发了几条帖子,说:“我想到了一个方法,看看有没有漏洞。”然后这些帖子就被埋没在互联网的浩瀚信息流之中了。

直到2018年,数学家Robin Houston在研究超排列问题时,偶然在某数学博客上看到了2013年转帖的这段4chan讨论。

他越研究越觉得不对劲,直到确认,这位匿名网友的公式是正确的,而且是数学界当时未曾正式提出的突破!

这一发现让数学界瞬间炸锅,最后Houston和另外两位数学家Jay Pantone、Vince Vatter专门整理了这位4chan网友的解法,并把它写进了正式的数学论文,论文的第一作者赫然写着——Anonymous 4chan Poster(4chan匿名网友)。

更有趣的是,数学家Greg Egan后来发现了超排列的一个新的上界公式,而4chan网友的公式刚好提供了下界。

换句话说,数学家们终于有了一个明确的数值范围,来估算超排列的最短可能长度。

如果真的要按照所有可能的顺序刷完一部n集的动画,你至少要看n! + (n-1)! + (n-2)! + (n-3)集,最多要看n! + (n-1)! + (n-2)! + (n-3)! + (n-3)集。

比如,如果是一部14集的动画,你最少要刷93884313611集,最多要刷93924230411集,哪怕从人类诞生开始刷到现在,都不一定能看完!

所以,下次再看到有人熬夜狂刷动画,说不定他在进行数学研究呢。
👍14
#方法论
2024年看到的最好的一个建议就是“把手弄脏(To get your hands dirty)”,其实就是强调亲自实践的另一种表述,但是把手弄脏更形象一些,我用DS重新展开解读了一遍:

"把手弄脏"是一个比喻性的表达,通常用于强调实践和亲身参与的重要性。它的核心含义是:通过亲自动手和实际操练来深入理解问题、积累经验,而不是仅仅停留在理论或表面观察。以下是对这一表述的详细解读:

1. 字面意义
"把手弄脏"从字面上看,指的是在实际操作或工作中,手可能会沾染灰尘、泥污或其他物质。这种"弄脏"的动作象征了真实参与和努力工作,而不是轻松地站在一旁观察或指挥。

2. 深层含义
(1) 实践出真知
- 核心思想:理论固然重要,但只有通过实践才能真正掌握知识和技能。
- 例子:在学习编程时,读很多书和看教程固然有用,但只有自己动手写代码、调试错误,才能真正理解编程的逻辑和技巧。

(2) 不怕困难
- 核心思想:在实践过程中,可能会遇到挑战、错误或失败,但这些都是成长的机会。
- 例子:创业者在创业初期需要亲自处理各种琐事,可能会"把手弄脏",但这是积累经验、发现问题的重要过程。

(3) 脚踏实地
- 核心思想:强调务实和实干精神,而不是空谈或幻想。
- 例子:在团队合作中,领导者也需要亲自参与实际工作,而不是只坐在办公室里发号施令。

(4) 深入一线
- 核心思想:只有深入实际场景,才能真正理解问题的本质。
- 例子:产品经理需要通过用户调研和亲自试用产品,而不是仅仅依赖数据分析,才能设计出符合用户需求的产品。

3. 使用场景
"把手弄脏"这一表达在以下场景中尤为常见:
父母希望学生不要只埋头读书,而是要积极参与社会实践,积累实际经验。
- 职场:鼓励员工不仅要有理论支持,还要在项目中亲自实践、解决问题。
- 创业:创业者需要亲自参与每一个环节,而不是只做"甩手掌柜"。
- 教育:老师会鼓励学生通过实验、项目等方式"把手弄脏",从而深入理解知识。

4. 类比与延伸
"把手弄脏"可以与其他类似表达类比:
- "Practice makes perfect"(熟能生巧):强调通过反复练习提升技能。
- "Get your hands dirty"(英文中的对应表达):强调亲自参与实践。
- "深入一线":强调实际接触问题,而不是高高在上。

5. 总结
"把手弄脏"是一种提倡实干精神的表达,强调通过亲身体验和实践来获得知识和成长。它提醒我们:
- 不要害怕失败:实践中的错误和挑战是宝贵的经验。
- 不要空谈理论:只有通过行动,才能真正理解问题的本质。
- 不要远离实际:只有深入一线,才能做出切实有效的决策。

无论是学习、工作还是生活,"把手弄脏"都是一种积极的人生态度,它鼓励我们主动参与、亲身体验,从而获得更深刻的感悟和成长。
👏5
#开源项目
krep - 一个C写的高性能的字符串搜索工具
github.com/davidesantangelo/krep
krep 的设计以性能为主要目标:
🌟内存映射 I/O:避免昂贵的 read() 系统调用
🌟优化算法:默认使用 Boyer-Moore-Horspool 算法
🌟SIMD 加速: 在可用时利用 SSE4.2 或 AVX2
🌟多线程: 并行处理大文件的块
🌟最小化内存分配: 减少内存开销和碎片化

感觉可以拿来学一学SIMD编程,正好不会。
🆒5👍4
#人工智能
昨晚看完英超联赛曼城主场2:2险平布莱顿的比赛。

除去比赛本身,布莱顿这个球队,网传解雇了大部分球探,转而采用自己实现的一套大模型系统来选择球员买卖(甚至可能包括教练的选择),这几个赛季低价买入大量潜力新球员,即便在往外卖出大量的优秀球员的情况下,也能做到成绩稳步上升。

我又想起梁文锋给《征服市场的人》做的序里引用西蒙斯的那句话:“一定有办法对价格建模”。

坚信某个方向一定能够采用数学的方式进行建模,从而用技术手段来左右自己的决策,这算不算也是某种信仰。
🥰2
#分布式
Paxos解决的核心问题是:分布式系统里如何确定一个值。Paxos的做法是:给每次提交一个版本号,一个版本确定之后就不再能修改。

这里的“版本号”不一样非得是自然数,只需要满足全序性(total order,简单理解一个全序关系里的任意两个元素都能对比大小)就可以了。正因为版本号必须满足全序关系,才能保证前面说的“版本的值确定之后,不能再进行修改”。

比如Raft里面的版本号就是(Term,Index),这也是满足全序关系的,Raft里面对比(Term,Index)大小关系的算法大体是:
if (left.Term == right.Term)
return left.Index > right.Index
else
return left.Term > right.Term


所以从这个意义上来说,Raft本质上还是Paxos,可以理解为换了另外一种版本号来实现的Paxos。

多说一句,实际上定义一类新的数据类型时定义这类型数据之间的比较关系,C++里面早就有了,提供了operator >、>=、<、<= 这些操作符函数。很早之前学C++的时候就已经知道,但是那时候还没有上升到数学的层面理解为什么需要定义这些关系,一直到我接触了全序、偏序关系的概念才恍然大悟。

再推一次XP的这篇讲解Paxos原理的文章,其它讲Paxos的文章,多是一上来给读者按照论文给出流程,专注在How,而这篇文章反向来推导过程,给出了Paxos的Why。
12👍2
#存储引擎
非常好的存储引擎文档,总共176页幻灯片:《Bedtime Stories For Children: Storage Engines》,可惜的是没有完全写完。
16
#方法论
写技术博客时,我很喜欢画图来表达原理。也因为自己画的图多了,有了一层感悟:但凡能把技术原理通过画图清晰表达出来的,一般文章内容也不会太差。这是因为,画图不同于文字和简单的贴代码,是经过作者理解了原理再翻译成图形语言的。

按照这个推论,得到一个搜索优质技术文章的技巧:使用Google搜索技术文章时,以前是根据关键字搜索相信搜索引擎的排名,现在可以试一下切换到Google搜索中“图片”那一栏看看。图片这一栏可以在不用点击文章的情况下马上看到文章中的一些缩略图,根据画的缩略图能大体判断文章的质量。
👍47
#杂
今天扛叱扛叱写了1000多行代码。我感觉即使我在思路清晰的时候,一天的输出也就是1千多行代码,大概7个小时的高效工作时间,这个时长的专注度和输出对我来说顶天了。
👍18🐳1
#杂
去年十月份去了一趟普陀山。从舟山机场出来,还得转轮船才能到达普陀山所在的小岛。去往普陀山的码头门口上大字写着“彼岸”两个字,普陀山是中国佛教圣地,所以“彼岸”在这里有一语双关的意思,感觉太酷啦。
👍9🥰1