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
#杂
混迹在张银奎老师的微信群里,看到一则讣告:

讣告
万分难过,吴岩峰(syserdebugger 作者),我们的峰子,因为意外受伤后抢救无效,于2023年9月23日在北京离开了我们,终年47岁,走过了他短暂却精彩的一生,我们怀着无比沉痛的心情哀悼他的离去,同时,向所有爱他的、关心他的人报以最真挚的感激!
愿天堂没有意外,一路走好,我们的峰子!
兹定于9月27日上午9时,在东郊殡仪馆祥鹤厅举行告别会。
谨此讣告。


由于不是这个技术方向,所以对这个作者并不了解,搜索到的一篇文章《致青春,基础软件开发的中国故事》介绍了他们做的事情。

回到20年前的2003年,那个年代没有什么stackoverflow、github这类供程序员交流的平台,面对Windows这样封闭的系统,也没有很多内核级别的资料,要写一个windows的内核调试器,难度可想而知,我至今都很好奇像 softicetrw 这样的软件90年代时是怎么写出来的。

由于工作的关系,现在我也在基础软件领域工作了,现在中国基础软件领域的工作机会、资料比当年都多了很多,身边能接触很多95年甚至2000年以后出生的人,这一代人能接触到的信息、知识面等等都比当年同年龄的我强很多的,还是很羡慕他们的。
2👍1
#编程语言
Daniel P Friedman在编程语言界的贡献

转自微博:https://m.weibo.cn/status/4952639604523552

因为最后一段文字,特地找了王垠的两篇文章:
* 《写小人书的老顽童》
* Chez Scheme 的传说》

------ 分割线,以下为原文 ------


绝对是今年计算机专业的一件大事。Daniel P Friedman,79岁高龄,在2023年出版了他的The Little ... 系列的新书,The Little Learner。


老爷子是Lazy Evaluation的发明者,Scheme届一哥,发明Scheme的人都亲口承认这一点;现在还在Scheme届抗梁的人物,除了UBC那个发明Aspect Oriented Programming、MIT肄业、Xerox Parc精英Gregor Kiczales之外,全是Friedman的徒子徒孙;因为Scheme是最接近Lambda的语言,所以Friedman可以理解为能写『顶尖』代码的Church。『顶尖』二字在这里的意思不但指它在学术界的编程能力是顶流,他给Scheme语言留下的诸如Pattern Matching宏代码可以正面刚Kernel里的所有工业代码。


不止Scheme语言教学。Friedman的同事,另一个传奇人物Kent Dybvig,写了工业级的Scheme语言编译器,Chez Scheme,包括Cisco在内的很多大企业都是他的客户。Chez Scheme后来出现了开源的版本,在这个版本里Friedman和Dybvig合作了被称为nanopass的编译器框架;虽然Scheme不是流行的工业语言,但是两个版本的Chez Scheme在编译速度和执行速度上都可以跟任何工业级语言编译器抗衡;而且Chez Scheme自带的解释器,性能高达编译器的1/2.5的水平,想想v8出现时直接把JavaScript速度提高了1000-5000倍,这个名称为Petite Chez Scheme的解释器毫无疑问是性能最好的编程语言解释器。


远不只这些。


The Little Typer,是介绍Dependent Types的入门书籍,提供了仅6000行代码实现的Pie语言;任何人都可以从这里开始了解现代计算机语言的类型系统。


The Little Prover,通过ACL2定理证明器讲解现代定理证明器使用。


The Reasoned Schemer,仍通过Scheme语言讲解relational logic和logic programming。这本书神奇的出到了第二版,令人匪夷所思,因为这实在是非常冷门的领域。该书的第二作者William E. Byrd是Friedman的学生,他在Youtube上有故弄玄虚的视频讲解他当年看到Friedman的代码时,是如何获得了被天打雷劈的感受的。


++++


以上都是符号主义在编程领域的巅峰之作。


我承认我会因为Frank Pfenning(Peter Andrews的学生,Alonzo Church的徒孙),Robert Harper(Robert Constable的学生,Stephen Cole Kleene的徒孙,Alonzo Church的曾徒孙),Steve Awodey(Saunders Mac Lane的学生,Mac Lane是Weyl和Bernays的学生,前者是Hilbert的学生,后者是Landau的学生)等人的学术成就,把他们的学术水平看在Friedman之上,这三个人是cmu三剑客,活跃在youtube上的oplss频道,讲解constructive logic, type theory和category theory。但是如果没有Friedman,你将只会淹没在符号和数学里,远没有现在这样容易只通过一种语言了解计算机科学的如此广阔的领域。


而他在79岁这一年,出版了The Little Learner,关于Deep Learning,给这本书写序的人是MIT的Guy Lewis Steele Jr.(Gerald Jay Sussman的学生)和Peter Norvig(人工智能:一种现代方法的两个作者之一)。


无法表达对老爷子的敬佩之情,不把这些书的习题都做了,都对不起他老人家。


++++


王垠写过不少盛赞Dybvig和Friedman的文字,他是令人羡慕的看见过光的人,但不知道为什么他拿着手电筒离开了印第安纳。
👍93
#效率工具

发现微信读书的一个神功能,使用”传书到手机“上传一个英文书的PDF,会自动帮你翻译成中英文一起的电子书,大大提升了阅读速度。

比如我上传了EOPL,效果如图所示。

除此以外,上传到微信读书,相当于自带了”云端同步“,随时多设备打开同步阅读进度了。
14👍1
#杂
#开源
得到已故中国顶级黑客吴岩峰先生的夫人的授权,将syserdebugger源码开放,欢迎大家继续开发:https://github.com/yanfengwu-syser/syserdebugger

Reference:https://t.me/codedump_notes/474
👍12
#数据库
http://sqlvisual.net/ :可视化SQL执行的网站,鼠标悬停在右边的树形图上,还能看到具体是哪一步,方便理解SQL的执行流程
👍10
#数学
#开源
这位兄台(本科毕业于剑桥大学,博士毕业于哈佛,见 About Me)把自己的 数学笔记 全部公开出来,同时笔记的 Latex源码 也在Github上公开了。
👍172
#编程
Rob Pike's 5 Rules of Programming

Rule 1. You can't tell where a program is going to spend its time. Bottlenecks occur in surprising places, so don't try to second guess and put in a speed hack until you've proven that's where the bottleneck is.
规则 1:你无法判断程序将把时间花在哪里。瓶颈出现在令人惊讶的地方,因此,在证明瓶颈所在之前,不要尝试再次猜测并进行速度修改。

Rule 2. Measure. Don't tune for speed until you've measured, and even then don't unless one part of the code overwhelms
the rest.
规则 2. 测量。在测量之前不要调整速度,即使这样,除非代码的一部分压倒了其余部分,否则也不要调整速度。

Rule 3. Fancy algorithms are slow when n is small, and n is usually small. Fancy algorithms have big constants. Until you know that n is frequently going to be big, don't get fancy. (Even if n does get big, use Rule 2 first.)
规则 3:当 n 很小时,花哨的算法会很慢,而且 n 通常很小。奇特的算法有很大的常数。在您知道 n 通常会很大之前,不要幻想。 (即使 n 确实变大,也首先使用规则 2。)

Rule 4. Fancy algorithms are buggier than simple ones, and they're much harder to implement. Use simple algorithms as well as simple data structures.
规则 4:花哨的算法比简单的算法更容易出错,而且更难实现。使用简单的算法和简单的数据结构。

Rule 5. Data dominates. If you've chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming.
规则 5:数据占主导地位。如果您选择了正确的数据结构并很好地组织了事物,那么算法几乎总是不言而喻的。编程的核心是数据结构,而不是算法。
👍214
#开源项目
一个能够把pdf修改成“扫描”效果的 工具(github地址:https://github.com/rwv/lookscanned.io ),虽然我也不知道把pdf做成扫描效果有什么用。
(补充信息:修改之后,文件大小会明显变大,比如我这个例子中,文件大小会从700KB增大到4MB,另外修改后的文件也不支持选中文字了。)
(附图是把我的数分笔记修改之后的效果。)
👍9
#文章
昨晚阿里云发生大面积故障,今早以前在阿里工作多年的相关人士就写了一篇文章谈系统稳定性,列举了稳定性涉及到的一些思考:《稳定性,难的不是技术,而是》。
大体就是常说的那些:测试边界、降级、减少依赖、灰度。

我非常同意最后的总结:稳定性工作很难出成果,很难被认可,也很难评估投入产出比。这有点像扁鹊三兄弟的故事:能够防病患的老大,才是医术最好的那个,但却又最不为人所知。
8👍2
#技术科普
How HTTPS works》,以漫画的形式讲解HTTPS的工作原理,提供多语言(包括中文)版本。
👍143
#资料
#调试器
GDB的调试指令和LLDB有不少区别,LLDB官方这篇文档给出了相同命令在两个调试器下的指令对比《GDB to LLDB command map
👍1
#工具
昨天才发现,万能的RSSHub,也能给电报频道添加RSS,URL格式为:“https://rsshub.app/telegram/channel/[channel]”,比如我的电报频道URL为:“https://rsshub.app/telegram/channel/codedump_notes”,有需要的可以用这个RSS地址订阅。

但是,由于Twitter API的改动,要订阅Twitter账户需要登录,目前仍然没有找到办法订阅推特用户。

以前不怎么用RSS,觉得RSS就是能省掉一个一个打开站点浏览的时间成本,在现在推荐算法横行的年代,更觉得RSS是对抗推荐、只关注自己想看的内容的一个工具。
8👍3🥰2🔥1
#文章
面壁人芒格: 融入现代但对抗现代

昨天巴菲特的助手查理芒格去世,毫不意外地会有很多悼念的文字、文章,然而我都没有怎么看。

这篇文章同样是写于昨天的一篇关于查理芒格的文章,吸引我点开看的原因只是因为标题中“对抗现代”这个描述,感觉在过往对芒格的表述中没有看到类似的表述。

文章是篇好文章,其中拿孙正义和芒格做对比的部分尤其精彩。我也非常同意里面对芒格的描述:有边界感、有敬畏、恪守常识、不认为自己无所不能。

从这样来看,芒格的哲学确实很不“现代”(以上为褒义)。
4
#系统设计
滴滴前几天出了一个非常大的故障,会看到非常多的文章试图去分析故障的原因。

在《从滴滴的故障我们能学到什么》一文中,提到的k8s升级,可能源自这篇滴滴公众号上的文章《滴滴弹性云基于 K8S 的调度实践》。

尽管如此,目前也并不能确定就是文章提及的原因,至少滴滴官方并没有说明。不过,把《从滴滴的故障我们能学到什么》一文中提到的一些思路作为系统设计的参考倒是不错:降低复杂度、尽量控制出错的范围、拥抱重启。
👍43
#Rust
我司xuanwo的一篇文章《Rust std fs slower than Python!? No, it's hardware!》,还登上了hacker news的热门榜。
中文版本:《Rust std fs 比 Python 慢!真的吗!?

PS:鄙视某些把本文题目篡改称”Rust比Python慢“的自媒体,真是为了点击率什么题目都能想出来。
👍2
#系统设计

四层负载均衡漫谈》,深入浅出介绍了负载均衡相关的技术,由于我的网络知识仅限于四层、七层,文章里讲到ECMP 技术、BGP这些内容就看不懂了。
👍7