代码时光机

代码时光机

By 里维糖TechnologyHistory
Download on the App Store

代码时光机 episodes

  • Vol.51 AI之于人月神话:软件工程的银弹已至...吗?

    1986 年,Fred Brooks 在 IFIP大会上发表了软件工程学科最经典的论文:《没有银弹:软件工程的本质与偶然》。作为《人月神话》的作者、图灵奖得主,Brooks作出大胆的断言:不存在任何单一的技术或管理上的进展,能够独自承诺在十年内让生产力、可靠性或简洁性获得哪怕一个数量级的提升。

    那么AI到来之后呢?

    20 min
  • Vol.48 大模型与相面术

    古代中国这些信誓旦旦的相面人虽然喜欢故弄玄虚,但在人口流动性极低的小农社会,一套通过人的外貌体态判断其生活状态,甚至猜出他的过去和未来并不是天方夜谭。试想一下,如果一个社会的大多数人,终其一生所能走出的最远距离就是半天时间的徒步距离的话,那么大多数人的一生都只是围绕出生地的一个小圈子。在这些小圈子里,如果不遇到兴亡更替的大事,代际之间的生活其实不会有多大的区别。在同一片土地不变的生产力下,几乎相同的人生轨迹在一代又一代人身上堆叠,一些聪明人当然有足够的机会把某种规律记录下来。对于靠天吃饭的农业社会来说,一个不能打破的铁律就是要在特定的时间做特定的事。总之,如此高度模式化的生活之下,状态的不同类别一定是有限的,这让某种伪装成玄学的模式识别成为可能。


    阅读文本存于 vx公众号 鼓腹专家 

    (^^)

    17 min
  • Vol.47 流水的AIGC,铁打的token序列

    在人工智能生成内容(AIGC)的浪潮中,我们见证了太多令人眼花缭乱的突破。从能够撰写小说、编写代码的文本大模型,到一键生成逼真图像的绘图工具,再到能创作交响乐、合成语音的音频系统,甚至延伸至3D场景构建与蛋白质结构预测的科学领域。然而,无论应用场景如何变幻,无论输入输出的形式多么迥异,所有现代生成式AI在底层逻辑上都遵循着同一种范式。它们都将世界万物“翻译”成了一种通用的语言——Token序列。


    阅读文本见于 vx公众号:鼓腹专家


    from leeway: 有时空闲不足,只能由我的voice model代劳(^_^;)见谅


    18 min
  • Vol.46 技术之外,想象AI带给我们的颠覆

    好久不见。出于工作和AI兴趣的原因,我有很长一段时间的忙碌,导致了这档节目的断更。

    复播的第一期,我想聊一下技术之外的话题。


    从人工智能诞生的第一天起,我们总说AI能够颠覆世界。问题是这种想象一旦具体,就容易被技术的飞速进步所嘲笑。所以我们的想象不妨更深入一些,想象关于生产关系、真相和数据公正的颠覆。


    另外,我新建了一个公众号,打算把之后的播客转录文稿都放在那里。欢迎订阅。

    公众号:鼓腹专家



    22 min
  • Vol.45 关于无穷和计算的边界......

    我们对于无穷的计算有着浪漫的想象,光是科幻小说,就有阿西莫夫《最后的问题》、亚当斯《银河系漫游指南》的经典科幻梗。但是我们从世界体验中认知到的无穷、数学世界中勾勒的无穷以及计算机所能够触达的无穷有什么区别和联系呢?


    附关于无穷的一些小趣闻:

    1. 为什么 [0,1] 区间的实数无法和自然数一一对应?

    第一步:简化实数的表示

    [0,1] 里的任何实数,都能写成 “无限小数”(有限小数补无限个 0,比如 0.5=0.5000...,避免 0.4999... 和 0.5 重复)。

    第二步:假设 “能对应”,列一张 “全包含表格”

    如果 [0,1] 的实数能和自然数一一对应,意味着能把所有实数按序号排成一张无限长的表格,比如:

    自然数 1 → 实数 a₁ = 0.a₁₁a₁₂a₁₃a₁₄...(a₁₁是小数点后第 1 位,a₁₂是第 2 位,依此类推)

    自然数 2 → 实数 a₂ = 0.a₂₁a₂₂a₂₃a₂₄...

    自然数 3 → 实数 a₃ = 0.a₃₁a₃₂a₃₃a₃₄...

    自然数 n → 实数 aₙ = 0.aₙ₁aₙ₂aₙ₃...aₙₙ...

    表格里的 “加粗数字”,是从每个实数里取 “第 n 位”(第 1 个数取第 1 位,第 2 个数取第 2 位,...,第 n 个数取第 n 位),构成一条 “对角线”。

    第三步:构造一个 “不在表格里的实数”

    根据这条对角线,造一个新的实数 b = 0.b₁b₂b₃...,规则很简单:

    如果对角线第 1 位 a₁₁≠1,就设 b₁=1;如果 a₁₁=1,就设 b₁=2(只要和 a₁₁不一样就行);

    同理,对角线第 2 位 a₂₂≠1,就设 b₂=1;否则 b₂=2;

    以此类推,bₙ永远和对角线第 n 位 aₙₙ不一样。

    这个 b 肯定是 [0,1] 的实数(因为是 0 开头的无限小数),但它不在刚才的表格里—— 因为它的第 1 位和 a₁不同,不可能是 a₁;第 2 位和 a₂不同,不可能是 a₂;...;第 n 位和 aₙ不同,不可能是 aₙ。

    这说明:“能把所有 [0,1] 实数列成表格” 的假设是错的,所以 [0,1] 的实数无法和自然数一一对应。


    2. 为什么有理数可以和自然数建立一一对应?

    有理数的核心是 “能写成分数 p/q(p 是整数,q 是正整数,且 p 和 q 互质,避免重复,比如 2/2=1 就只算 1/1)”。关键是用 “分组 + 遍历” 的方式,给每个有理数编上序号:

    第一步:按 “分母 q” 分组

    把有理数按分母 q 的大小分成无限组,每组里的分数按分子 p 的大小排列(注意去重,比如 2/2=1 已在 q=1 组里):

    q=1 组(分母为 1):1/1(即 1)、-1/1(即 - 1)、2/1(即 2)、-2/1(即 - 2)、...

    q=2 组(分母为 2):1/2、-1/2、3/2(2/2=1 已去重)、-3/2、...

    q=3 组(分母为 3):1/3、-1/3、2/3、-2/3、4/3(3/3=1 已去重)、-4/3、...

    ...第二步:“蛇形遍历” 每组,编序号

    因为每组里的数是 “有限个基础项 + 无限延伸”,但可以按 “先小分母、再小分子” 的顺序,像 “走蛇形” 一样逐个编号:

    先取 q=1 组第 1 个:1/1(序号 1)

    再取 q=1 组第 2 个:-1/1(序号 2)

    取 q=2 组第 1 个:1/2(序号 3)

    取 q=2 组第 2 个:-1/2(序号 4)

    取 q=1 组第 3 个:2/1(序号 5)

    取 q=1 组第 4 个:-2/1(序号 6)

    取 q=3 组第 1 个:1/3(序号 7)

    取 q=3 组第 2 个:-1/3(序号 8)

    取 q=3 组第 3 个:2/3(序号 9)

    取 q=3 组第 4 个:-2/3(序号 10)

    ...第三步:验证 “一一对应”

    每个有理数都能在某一组里找到,且会被 “蛇形遍历” 编上唯一的自然数序号;

    每个自然数序号,都对应一个唯一的有理数(不会重复,因为提前去重了)。



    25 min
  • Vol.44 当我们谈论网络的时候我们在谈论什么

    网络对于今天的我们来说似乎和空气一样司空见惯,也和空气一样受之不觉、失之难存。

    但网络带来的信息传播的颠覆是空前的,并不亚于计算机本身带来的颠覆,毕竟从信息还无法被抽象出来的时代开始,它就被束缚在低频率、低容量的载体中,锁死了流动性,所以才会有“烽火连三月,家书抵万金”。

    那么关于网络,这个和我们原始直观的世界经验并不兼容的科技产物,我们在谈论它的时候到底在谈论什么?

    26 min
  • Vol.43 聊聊Nginx和Web后端那点事

    Nginx (engine X) 在我个人心目中可能算是最好的开源服务器,尽管掺杂个人感情,但它实际上从很大程度上代表了我们所身处的这个宏大的Web2.0时代,阐释了一个优雅的、灵活的同时又是无私的Web后端的应有之义。最近又开始做Nginx有关的工作,所以有感而发聊一聊:)


    附:W3Techs 统计的web server使用量(比节目中聊的数据更新...)


    25 min
  • Vol.42 关于coredump和gdb给软件验尸这件事

    近来工作繁忙,想着干脆来聊聊程序员工作中的脏活累活——给线上的软件程序验尸。当然这里我聊的还是coredump和gdb的古法验尸,倒不是说那些新的debugger做得不好,而是当火急火燎的debug工作到来时,可能只有corefile和gdb才不会给人添堵……

    24 min

About 代码时光机

From the publisher's feed

喜欢计算机,擅长拍肚皮。

vx公众号:鼓腹专家