57.罪案时刻|内蒙古“无尸命案”:大法医裴俊德如何从骨灰中破获谜案

松果白话

*本期节目适合全龄人群收听,14岁以下听友请在家长陪同下收听。 * 入群方式: 1、添加好友 songguomaomao (请复制); 2、填写 “侦探群或者案件群”; 3、猫猫会拉大家入群。 【案情简介】 地点:内蒙古自治区 时间:2004年 2004年2月22日,内蒙古鄂尔多斯市鄂托克旗的草原上,一起骇人听闻的焚尸案震惊当地。当警方赶到现场时,只看到一片直径不足一米的焚烧痕迹,以及二十多块被烧得焦黑的骨骼碎片。面对几乎被完全焚毁的尸体,裴俊德法医展现出了惊人的专业能力。 在常人看来毫无价值的灰烬中,裴法医敏锐地发现了关键证据:两颗保存相对完好的牙齿、一个老式节育环,以及几个文胸肩带上的小铁钩。这些微小的物证立即锁定了死者为女性的重要特征。更令人惊叹的是,裴法医通过牙齿上的氟斑牙特征,准确推断出死者可能来自高氟地区,年龄约31岁,身高在158左右。 在确认死者身份的过程中,裴法医的推断起到了决定性作用。他注意到焚烧痕迹集中,判断凶手事先进行了分尸;发现土壤中的油渍,证明使用了助燃剂;甚至通过现场遗留的烟头锁定了嫌疑人特征。正是这些精准的专业判断,使得警方很快锁定了犯罪嫌疑人刘松,并在其供述中证实了裴法医的所有推断。 当案件最终告破时,所有人都为裴俊德法医的专业能力所折服。在尸体几乎被完全焚毁的极端情况下,他就像一位"灰烬中的侦探",用科学的方法和敏锐的洞察力,让沉默的灰烬"开口说话",为死者讨回了公道。这起案件不仅展现了法医科学的神奇力量,更彰显了像裴俊德这样坚守正义的法医工作者的崇高职业精神。 【时间目录】 00:00 – 02:40 牧民发现自家院子里诡异的灰烬堆和碎骨头 02:41 – 05:00 警方到现场勘察 05:00- 07:55裴法医到达现场勘察 07:56 – 18:00 一堆骨灰如何确定死者身份? 18:01- 19:30 死者的身份终于明朗! 19:31 - 30:00 案件真相大白,嫌疑人落网! 30:01 – 42:00 裴法医破获的另一起案件 42:00 – 46:00 致敬大法医们 【相关图片】 【参考资料】 · xhslink.com · 2ly4hg.smartapps.cn · tv.cctv.cn · www.zhihu.com · mbd.baidu.com · www.360doc8.net · baijiahao.baidu.com · baijiahao.baidu.com · mbd.baidu.com · mbd.baidu.com · mbd.baidu.com · mp.weixin.qq.com 声明 1. 本期案件综合了网络上查询到的官方资料、以及各位博主撰写的内容,经过取舍之后,整合成了松果本期案件故事,大部分内容为案件真实内容,小部分内容是主播为了故事整体流畅、情节衔接而进行了适度的润色加工。 2. 关于刘松杀害张兰并焚尸这个案件,cctv12《天网》曾经播出过,但官方节目中也并未纰漏案件的具体发生时间,网上其他演绎的版本,时间均不同,有的说是2004年,有的说是2014年,月份也是版本很多,我们本期节目取了2004年这个说法。 【感谢您的收听】

46分钟
4k+
1个月前

Ep 55. 从文科转码到给 CPython 做贡献(纯文字稿)

捕蛇者说

本期节目应嘉宾的要求,我们只发布了文字稿。带来的不便还请各位听众谅解。 嘉宾 tanloong 链接 * gh-133390: Support SQL keyword completion for sqlite3 CLI by tanloong · Pull Request #133393 · python/cpython * SQLite Keywords * QuantWiki - 中文量化百科 * 《阳光马达棒球场!》 文字稿 laike9m: 哈喽大家好,欢迎来到最新一期的《捕蛇者说》。我们今天请到了谭龙,然后让他来聊一聊给 CPython 做贡献的经历。谭龙其实最近给 CPython 提了一个 PR,然后也是他第一次给 CPython 做贡献。然后呢,这个贡献是给 SQLite 的那个命令行加了一些命令补全,就是可以补全 SQLite 的关键字。我们今天另外一位主播是 Manjusaka。 Manjusaka: 请叫我 Nadeshiko Manju,对吧?OK,大家好,好久不见,我又回来了。然后今天很高兴又来和 laike9m 进行搭档,来。 laike9m: 好,然后这是我们今天的嘉宾谭龙,你要不先简单介绍一下自己吧。 tanloong: Hello,大家好,我叫谭龙,我是山东的。然后 18 年的时候是来青岛上大学,然后大学本科毕业之后就在这找工作了。我本科不是计算机的,毕业之后找工作也找了一些计算机相关的工作,也有一些其他方面的工作,中间也换了好几次工作。最近是刚刚入职一家新的公司,然后是做数据分析方面的工作。谢谢。 laike9m: 所以你说你本科不是学计算机,方便透露一下吗?你本科学的是什么? tanloong: 我本科是英语的。 laike9m: 哦,这个跨度很大。 tanloong: 对,确实。其实我本科最开始填志愿的时候,我录取的专业也不是英语,是一个调剂的专业,叫生态学。然后我是大一下学期的时候想转专业,然后正好我们学校有转专业的政策,我就从高中学的那几门课里,我觉得英语我学得还可以,然后当时也比较喜欢,所以我就决定转英语了。直到后来快毕业的时候才有点接触到这个计算机方面的这个东西。 laike9m: 然后就发现自己还是更喜欢计算机一些。那所以你之后是进行一些自学吗?然后就去找工作还是? tanloong: 对,基本上是自学。最开始接触计算机是大一的寒假,我们辅导员让学生回家的时候在假期要学点东西,然后开学让交学习笔记。我当时从一个中国大学 MOOC 上注册了一个账号,然后它弹出来的,第一个给我推荐的课程就是 Python。那我就学这个吧。所以当时我就学,就学了这个。当时学得很不明白,然后就把 PPT 跟着敲了一遍,但是也云里雾里的。直到后来后面的几个寒暑假才看了一些成体系的 Python 的入门的书,然后算是入门 Python 了。 laike9m: 所以换句话说就是你其实一开始学,你并不知道 Python 是干嘛的,就是并没有特别地抱着某种目的,比如说我就想找一个程序员的工作这样子。 tanloong: 没有,开始的原因只是巧合,但后面坚持下来,应该也算是因为比较喜欢吧。我觉得比较有意思。 laike9m: 那还是挺有意思的,对,感觉是命运的安排。 Manjusaka: 咱行看起来都是转行的。诶,那 laike9m 你是转行吗? laike9m: 我本科也不是学计算机的,然后我知道你本科也不是,所以。 Manjusaka: 对,那看起来大家这三个人跟少女乐队一样,这三个人里面抽不出一张计算机本科学位。 laike9m: 对,但我觉得还是你的英语这个跨度最大。 Manjusaka: 啊,对,然后,哇,卧槽。啊,现在要是学日语的,我突然就想问一下为什么要学日语。 laike9m: 学日语的转计算机还真没见过,但是很多程序员都会日语。 Manjusaka: 有,可能在大连那边还真有。 laike9m: 啊,对,大连日本人比较多。 Manjusaka: 对,对,对,日语外包会多一些。 laike9m: 嗯,好,对,说回正题,就是你相当于一开始接触的编程语言就是 Python, 然后后来相当于你在工作中可以理解也是主要用 Python, 对吗? tanloong: 对的,我有两份工作是跟计算机相关,然后都是写 Python 的。第一个工作是之前的一份是写图形界面的,用的是 PySide, 然后就写一个称重系统。他们是一个建桥公司,就是他们需要统计他们的货车送多少货进他们工厂,然后运多少货出来,写一个这个图形界面,然后放在那个他们的磅站去,然后货车过磅的时候来统计数据。另一个工作是现在的工作是在一个私募公司做数据分析。我之前没接触过股票证券这方面的东西,现在还在学习。 laike9m: 你是开发算法吗,还是给他们开发一些内部工具或者界面之类的? tanloong: 内部工具,我们组三个人有写算法的,但是我是属于比较初级的那种,只能写一些帮他们节省时间的工具。 laike9m: OK,对,因为我感觉那种像交易的算法可能更需要用 C++ 一些,对吧?还是说其实也有用 Python,比较好奇。 tanloong: 我们公司开发部应该是写 C++ 的,然后应该也有写 Python, 但是数据分析我们那个组主要是做一些因子的构建,就分析哪些因子它对你的这个股票的收益率贡献比较大,就这种的,我们就主要是写 Python,不写 C++。 laike9m: 明白,好的。所以就是到了今天我们要聊这个话题,然后你给 CPython 做了一个贡献。那我相信就是百分之可能 99.99% 的用过 Python 的人都没有给 Python 做过贡献,那么你一开始是怎么有这个想法的?然后就是后来你是怎么去一步一步实施这个的? tanloong: 我最开始有这个想法是应该从天哥,就是 B 站的那个,对,他当时成为 Python Core Dev 之后,在直播的时候就有人在直播间问一个给 Python 做贡献的问题,做贡献难不难呢?这些之类的。但是天哥说,如果你想给 Python 做贡献,你是会发现有很多事可以做的,做贡献并不难。然后后来就是之前我在写称重系统的时候,需要用到 SQLite 去查用户存的那个本地的数据库。然后当时我就发现 Python 的 SQLite 的命令行界面有点不好使,就是如果它能有那个补全就好了,所以当时是有那个想法。然后实施是在后来我前段时间没有工作,然后就每天比较闲,然后我想找点事做,然后我想起来之前我想给那个 SQLite 的加补全的这个想法,我就试试吧。然后我就去 GitHub 上找,我就试了一下。然后试的时候我发现,我本来觉得这个应该是挺难的,因为我完全不知道它这个补全要怎么实现。但是我去看了一下 PDB,就是天哥维护的那个 PDB 里面的代码,它里面实现补全是那样写的,然后我就照着 PDB 的补全,然后给 SQLite 加了一个补全,然后就交了 PR。 laike9m: 所以其实也是从你的实际工作需求出发,然后加上高天的激励。对,你知道高天也来过我们这边好几次吧? tanloong: 对,两次。 laike9m: 老听众,看来是。对,然后我觉得这个还挺有意思,就是也是算是榜样的力量吧。就是我不知道还有没有其他人是这样,就是因为听到就是有个人跟他说,哎,其实做贡献没有那么难,然后去做了,但这样挺好的。我算吧。你也算吗? Manjusaka: 对,我算。当时我是先认识张翔老师,然后后面然后跟他聊了一些,就包括我可能当时,那位你可能还认识,那个 Ezio Melotti。谁?18 年北京的那位嘉宾,Ezio。 laike9m: 你说 PyCon。 Manjusaka: 对,就是当时我们不是邀请到另外一位来北京。 laike9m: 哦。PyCon China Beijing 2018。2018 吗?2018 我去了吗?我有点不记得了。没事你继续说吧。 Manjusaka: 你在北京,你当时还没 transfer 去美国,然后你从上海来北京。 laike9m: OK。 Manjusaka: 然后我当时聊了一下,就后面开始,正好 18 年,后面我就说我正好在休息,后面就开始陆陆续续提一些贡献,对。 laike9m: 嗯,对对,其实我觉得翔哥一定程度上也是当时给了我一些激励或者指导嘛,对。 Manjusaka: 对,张翔老师还是非常 nice 的。 laike9m: 对,就给听众们如果有不知道,就是张翔是中国的第一个 CPython core developer, 第一个核心开发者,对,然后高天是第二个。 Manjusaka: 对,然后张翔老师应该是在 16 年晋升的。嗯,反正是老前辈了,老前辈了。 laike9m: 但其实他当时就是更多是因为工作中会需要改一些 CPython 代码,他当时在华为嘛,对吧? Manjusaka: 然后。哦,不不不,他晋升成为 CPython Core 的时候,我记得没错,是在新浪,然后他就开始编的。 laike9m: 哦,新浪,OK。 Manjusaka: 对,然后他去华为其实做的也不是跟 CPython 本身相关的,他是去做的 OpenStack 相关的东西。对,然后他对就是说是整个生态工具链会比较熟,所以说他可能跟高天老师就是说是有一点不一样,是张翔老师对于各种非常疑难问题的 debug 非常擅长,这也是我记得介绍人给他在他的 promote 介绍里面说的,对。 laike9m: 嗯,我记得他当时那个演讲。 Manjusaka: 对对对,然后我的很多 debug 技巧也来自于张翔老师,对。 laike9m: Anyway,我觉得后人都是在前人的一些基础上去做工作的。 Manjusaka: 是的,没错。 laike9m: 好,那说回谭龙的这个 PR,我其实也简单看了一下,其实我原来也不知道补全要怎么加,但发现其实还真的挺简单的。你可以跟听众们大概说一下这个流程吗?比如说我要给一个像 Python 的 SQLite 命令行加补全,它大概要做些什么工作? tanloong: 它是写一个 context manager,然后在你进那个 readline 的时候,你把 readline 的那个 completor 给替换成你自己的函数,然后在退出的时候再把它替换回你替换之前的那个函数,就你替换之前的那种 readline 的默认的 completor。然后你自己写的那个函数是还有一个 state, 就是 readline 调你的函数拿补全的时候,它会先给你发一个 state 等于 0, 这个时候你判断了 state 等于 0 的时候,你去生成一个完整的,就根据用户当前输入的那个 text, 生成一个完整的 completion candidate 的列表。然后 readline 会继续给你发 state 等于 1, 2, 3,这个时候你把你之前生成的 candidates 按照它发的 state 做个 index, 返回你的 candidates 对应的要补全的词。然后这中间就是 state=0 的时候,你的 candidates 最好需要缓存一下,不要在每次 readline 给你发 state=1, 2, 3 的时候你再重新生成,那样会比较耗时间,注意一下性能的问题。然后基本就是这样。 laike9m: OK,我说一下我看到的那个 PR 里面,我觉得比较关键的地方就是它其实就是一个首字母的匹配,就相当于首先你有一个关键词的列表,对吧?你要构建一个说哪些单词是 SQLite 关键词,比如说 SELECT 啊 JOIN 这种。然后我发现你是当用户每输入一个字符,然后你就会去跟这些关键词的前缀做一个匹配,对吧?然后发现如果有能 match 上的,你就把它作为一个 candidate 返回,作为补全的一个。 tanloong: 就其实那个关键字最开始的,你要拿到那个 SQLite 的完整的关键字的列表,当时对我来说还是挺难的。我最开始是从 SQLite 的文档里直接复制它的完整的所有的 147 个关键字,然后硬编码到 Python 里。但是有 core dev 说这样写不太好,而且其中有一个关键字并不是在所有的 SQLite 编译出来的时候都会支持的,是一个 V 开头的关键字。希望就是这个 SQLite 这个关键字能够动态生成。然后我当时查了一下,就是如果你想动态生成需要在 C level 去写,但是我这个 C 学的不太好,虽然之前学过一个学期的公开课,但是我完全不知道就是用我查到的 SQLite 文档里说生成关键字列表的那两个函数,去生产,我不知道要怎么写,然后我也不知道怎么把它放进 Python, 所以我当时说这个对我有点难。后来有一天晚上我看到那个消息里,那位 core dev 又说了一遍,就是非常希望这个关键字列表它是能从 C 里拿到的,而不是从 Python 里拿。我当时其实有点理解错了,我以为他的意思是让我把那个硬编码的关键字列表从 Python 给移到 C 里,然后我当时就把它移到 C 里了。虽然我对那个 Python 的 C 要怎么写,然后怎么把它暴露出来,暴露给 Python 的代码去能够访问,我用了一下 AI,当时是用的豆包,问怎么在 Python 的那个 C 里面存一个列表,然后能让它暴露出来,给 Python 的代码调用。然后当时豆包写上,然后我试了一下豆包给的结果,然后是可以的,然后我就直接硬编码到 C 里,然后问那个 core dev 行不行。但是 core dev 后来回复说他的意思是不是在 C 里硬编码,而是在 C 里要动态生成。当时我就,我感觉我理解错了。然后后来是另一位 core dev 帮忙给写的,然后他写了之后给发了一个 PR 到我的那个 fork 里,然后我合并进去,然后我的 fork 再合并到 CPython 的 main。 laike9m: 我还在想,就是因为我也看到你的那个 keywords 那部分是从 C 的 module 里 import 的。这个他当时说为什么要动态生成,其实我还是不太理解。可能就是 OK,我明白,但就是你编译的时候,你会根据你的 CPython 版本有不同的关键词,这样你就不用在那个 Python 里面写,比如说 if 是什么版本,然后你的关键字要加或者减一些东西是吧? tanloong: 对的,SQLite 它应该是在编译的时候有一个选项,如果你开了某个选项,那么它的关键词会有变化。 laike9m: 明白明白。 tanloong: 哦。 laike9m: 这个确实还挺 tricky 的,对,感觉是这个 PR 里面最困难的部分。 tanloong: 确实。 Manjusaka: 嗯。 laike9m: 那所以就是总体这个流程下来你有什么感受吗?因为我知道你的那个 PR 还被因为把 test break 了还被 revert 了一次,对吧? tanloong: 对,它是有一个测试在运行那个 run_pty 的时候,它是用那个 run_pty 生成一个 sudo terminal, 就在一个伪终端里去模拟用户的输入,然后查看它给的 candidates 是不是符合预期。但是在那个伪终端里,它给的 candidates 是带颜色的。就是你的 candidates,它的两边会有那个控制符。 laike9m: 它那个颜色码嘛,然后就不对了。 tanloong: 对,然后测试就 fail 了。当时是在那个 buildbot 上跑构建,就是构建失败,我找了一下,但是我想就是在那个 buildbot 上最好能有一个 interactive 的,就我能像在终端里我手动敲命令一样,我可以人为的去测试,然后看一下它中间到底是什么样子,再修改那个测试。但是 buildbot 我找不到我要怎么就进那个交互式的模式,也可能根本就没有。然后这个问题我解决不了。然后当时是有个 core dev 说他去找那个 buildbot 的 owner,然后问他要 SSH 的权限,然后他去调试。 laike9m: 等一下,我有一个疑问,就是为什么你这个 PR 感觉大家都很 helpful? 因为你知道一般的 CPython PR 就是你提了之后,可能很长时间都没有人理。这点你是怎么看的?就是感觉大家都会去帮你去 debug 或者帮你写些代码,这个是自然的吗?还是说他们本来就对这个很有兴趣还是怎么样? Manjusaka: 嗯,从我的角度出发的话,我不太确定,高天老师那边可能有其他的 input, 但是就我观察来看,这个取决于 core dev 风格。不过他们整体来说,对新人是比较友好的。而且去 buildbot 里面调试这种东西的话,我觉得这个东西其实也还好,你去翻看 CPython 的 PR 其实这种事情也有不少,所以说我觉得这个相对来说还好。但是对于一些争议或者说是还在试图达成共识的过程中,那确实是比较头疼的。但是如果说是已经达成共识要去实施的一个 PR, 那我觉得相对来说会好一些。 laike9m: 明白,所以就是这种没有什么争议性的,只是实现或者一些 debug 问题就会推进的比较快,然后大家也会帮忙。 Manjusaka: 对,而且这种东西我理解主要是你添加新的 feature,而不是更改 API 的话,那这种东西就会好很多。就像我上周的时候,我当时想改 sys._enable_profile() 那个 API, 就是新增加的那个远程 debug 的接口,我想新增加在它的 audit event 里面增加一些元数据。这就牵扯到了 API 的更改以及更内部的一些细节上的更改。然后我就和三个 core dev,然后 Victor, Paul,还有哪一位,然后就 battle 了两天,然后最后 I gave up。 laike9m: 好吧,他们可能有一些 concern。 Manjusaka: 对,就这种你增加一些新的 API 之类的,就是会有一些比较 concern, 但是如果说你是实现一个全新的 feature, 大家觉得你这个 feature 不是为了实现而去实现,那这种情况下相对来说还是会比较顺利的。 laike9m: 嗯,嗯,理解。还有一点就是我知道那个 CPython 的不同模块,它其实是不同的人来维护的嘛。 Manjusaka: 啊,是的,没错。 laike9m: 就可能恰好就是 SQLite 这个维护者,他就是比较积极,比较热心,就是反应比较快,所以。 Manjusaka: 啊,是的,没错。它是比较活跃的,就是 SQLite 这种东西。我就又说到一个伤心事。在改一个东西,然后被 Mark 直接给拒了,然后我现在都还推不动,虽然大家都说有需求,但是 Mark 就觉得说这个东西没需求,然后但是就给拒了,对。 laike9m: 我知道 Mark Shannon 这个人比较固执,对,也是跟人的性格有很大关系。 Manjusaka: 对,是的,没错,跟这个看具体的开发者的问题,对。 laike9m: 对,就是其实你会发现像 Python,如果你不了解,可能会觉得 Python 是一个有一个很庞大团队去维护的这么一个精密复杂的系统,但你真正去看它里面到底是怎么实现的,或者说去提 PR 才会发现可能每一个文件它就是那么一两个人懂,然后你就是要找那一两个 stakeholder, 如果你想做一些更改的话,然后你只要能比如说说服他们,然后你就可以做你想做的。对,它相当的扁平吧。 Manjusaka: 对,我觉得主要还是怎么说服。 laike9m: OK,所以说回谭龙你这个 PR 的话,然后就你把那个 core developer 帮你把测试修好了,对吧?然后你就重新提交,这样子。 tanloong: 对的。就我感觉给 CPython 这个维护者,在这些维护者之间就是它是有一个小圈子的,然后你作为一个新人去给他们交 PR 也是一个交际的过程。就是你要积极主动一点,然后就一般新人你第一次交 PR 的时候,比较容易会被带着审视的态度去看你的工作。然后你交 PR 的时候,你最好是把你之前想到的一些可能会拒绝你 PR 的理由给解释清楚,然后你为什么这样做,然后让他们就是在他们提出问题之前就看到你的解释,这样会就是更容易沟通,然后更容易让你的 PR 更顺利一点。 Manjusaka: 嗯,对。 laike9m: 我看到你其实你之前提了一个 issue 对吧,就是你说你希望能够在 SQLite 的命令行里支持这些补全。所以你提那个 issue 的时候当时就想说自己去实现这个吗?还是说你本来期待说其他人可以去做这个? tanloong: 是的,我是准备自己实现的。因为 Python 的 dev guide 里面写,如果你想交一个 PR,你应该先写一个 issue, 除非你交的 PR 是 typo fix。所以我就是先写的那个 issue,然后就紧接着交了 PR。当然那个 issue 题目写得有点大了,我那个 PR 只做了关键字的补全,但是 issue 是所有的补全。比如说你以后也许还会需要补全你的那个 SQLite 里面的表名,还有列名,还有函数名,这些目前还不支持。 Manjusaka: 明白。 laike9m: 所以你未来打算就是继续在这方面做一些事情吗?还是说就先到此为止? tanloong: 也许会吧。但是这个刚才说的表名、列名、函数名,我目前还没有想到就是要怎么才能实现它。我看到就是 Python 的 PyPI 上有一个第三方的 SQLite 的命令行是支持表名、列名、函数名的,而且它是 context-sensitive,就是它会检测你当前是不是需要输入一个表名或者列名,比如说你是在 SELECT 后面,那它就会给你补全列名。就像这种就是非常智能的补全,我还没有想到就是怎么在 CPython 里支持,也许没有那个能力去支持它,总之就是还不确定。 laike9m: 明白。对,那个可能要就是回溯一下,不光得去做一个前缀匹配,对,会更复杂一点感觉。但我觉得是一个好的开始吧,就是你有一个这种框架,就会有更多人去加更多的 feature 进去。也许未来就会有。 tanloong: 是的,确实。就那个关键字的 PR 合进去之后,过了几天,有另一位 contributor 交了一个 dot commands completion 的 PR, 现在给加了那个 dot commands 的补全。目前 Python 的 SQLite 的命令行就有三个 dot commands,就是 .help, .version, .exit。.exit 还是 .quit 就来着,总之是推出的那个 .command。然后那个 PR 现在正是就是刚刚建不久,然后还没有 core dev 留言,但是它实现的有一点简单,就是有一些问题,但是应该后面会就是慢慢给修上,然后给合进去。 laike9m: 其实你可以去那个 review,因为你比较熟,你是最熟的其实。 tanloong: 是,我还真给看了一下,然后写了两个评论。但是写的第一个评论就是那位交 PR 的人,他觉得没有必要,就是他持反对意见。然后第二个评论,那位交 PR 的人还没有回复,然后其他人也没有回复。 laike9m: 嗯,我觉得挺好,就是因为我知道就是如果你比如说在一些 issue 里面回复的比较多,然后就会被那个提拔成 triager 的权限,对吧?然后其实这个是 core dev 之前的一步。 tanloong: 对,确实。然后我看就是交那个 dot command completion PR 的那个人,他的评论比较多,一般 CPython 有什么新的 issue,他都会先跑到底下去评论,然后有时候评论这个 issue 和之前的某个 issue 有联系。就像这种之类的,或者有人交 PR,然后他会去给 review。但是我还没有太多追踪 CPython 的那些 issue 和 PR,然后没有评论多少,就主要是我自己参与的那些 issue 跟 PR。 laike9m: 对,我觉得每个人有不同的风格吧,也不用一定去迫使自己要怎么样之类的。像高天那种,就是从 PDB 模块开始,然后把 PDB 弄得特别熟,然后通过成为 PDB 的维护者,然后来成为 core dev,这个路径也挺好的。我觉得可能更实际一点吧,因为我觉得你要去就是对于一些每一个 change 做一些评论,这个还挺难的。 tanloong: 确实从一个单独的模块开始做,你确实你的那个在 CPython 社区里面的成长会更容易一点。因为你是这个模块的专家,然后别人有什么问题就只能来找你。但是我也觉得这个也挺难的。天哥是从一个完全的 CPython 的陌生人,然后进入到 CPython 一点点做贡献,最后成为 core dev。就像你从一个外人进一家公司,然后慢慢走到管理层,都是非常难的步骤,你要获得信任,然后你做的每一个工作你都要给解释清楚,然后让别人就是认为你是可以承担更重要的角色。我觉得这也是非常难的一个过程。 laike9m: 嗯,是的是的。对,其实说回来就是那个,像给 CPython 做贡献不光是一个技术面上的事情,它还有很多这种交流,对吧?然后尤其是当你和这些外国人交流,你不是用你的母语,然后他们的一些交流的习惯可能也不太一样,所以这个方面也会有一些壁垒吧?就是谭龙,因为你是英文专业,所以这方面你觉得说你的本科教育有帮到你吗? tanloong: 我觉得是有的。如果我没有选英语专业,我应该还停留在高中的那个状态,就是虽然当时英文成绩还可以,但是如果让我看一个全英文的网站,我是心里发怵的,我是心里有那个牴触的心理。但是大学接触英语比较多,然后主要是你抵触心理没有了,然后你愿意去哪怕接受自己写出来的英语没有那么完美,哪怕也不像母语,也不够 native-like, 你也可以接受自己写出来的这些句子,然后去交流。因为你只要能把意思给表达清楚,让对方看懂就可以。其实你放下这个心理负担,你会发现写英语还是没有那么难的。 laike9m: 是的,是的,同意,对。 Manjusaka: 我现在是有一个做简单的 workflow, 然后我会交给 AI 来帮我润色,然后扩展一下我单纯的观点。对,我觉得这是 AI 的一个很好的使用场景。 laike9m: 你用的是哪个工具呢?还是就是手动复制? Manjusaka: 我是直接在 Claude AI 上面给他固定了一组 prompt。 laike9m: 明白,明白。 Manjusaka: 我觉得这就是这一块东西很好用的方式,特别是在我跟他们长篇大论地 battle 的时候,还是挺好用的。 laike9m: 帮我写一个回复去反驳这个人。 Manjusaka: 对,我一般是 prompt 就是说是我引用的那一段,然后我首先给他一个正面的肯定,然后其次列出我对他的观点,一 ABC,然后对,然后就这样。 laike9m: 你写 prompt 的时候是拿中文写吗? Manjusaka: 我拿中文写。 laike9m: 嗯,OK,这样表意更准确一些。 Manjusaka: 对对对,你可以看我群里发的那个 issue,然后那个就是很多大段的,就是我是用 AI 生成出来的。 laike9m: 我想到之前在推特上看到一个段子,就是说在 AI coding 的时代,以前不都是什么 “Talk is cheap, show me the code” 吗?现在是 “Code is cheap, show me the talk”。 Manjusaka: 确实。Code is cheap, show me the talk. laike9m: 一个哥们他在他的 GitHub repo 里面就是把所有的他的那个跟 AI 的聊天记录全都传上去了。这个就是挺好玩的。 Manjusaka: 挺好玩的,挺好玩的。 laike9m: 对,像谭龙,我觉得你之前本来要在 C 模块里面写死 keyword 的时候,你也是用 AI 生成的,虽然后来发现那个路径是不对的,但是至少这方面 AI 的助力还是挺大的。 tanloong: 确实,如果我当时在紧接着问 AI 怎么不要硬编码,然后整个动态生成的话,也许我当时就能直接把动态生成的代码给交进去了,而不是让另一位 core dev 帮忙给写。嗯。 Manjusaka: 是的。 laike9m: 所以就是你对于这个给 CPython 第一次做贡献的这个流程,你有什么其他的一些感受吗?就是我们刚才还没有聊到的,你想分享的。 tanloong: 我没有了。 laike9m: 哦,行,那也没关系,好。我们也是觉得给 CPython 做贡献的人越多越好,然后可能也是能够给听众们一个激励吧。然后感觉这期其实录的挺快的,然后不知道有没有什么你想推荐的东西,就是如果你听我们之前节目的话,你应该知道有这个环节,对吧? tanloong: 我推荐一个网站是跟量化金融有关的,算是一个给入门的学习者的一个索引吧。那个网站叫 QuantWiki。是量化金融中文百科,然后里面有一些就是量化金融相关的入门的概念,还有一些前沿的证券公司发的研究报告,还收录了其他的类似的 Python Data Training 这方面的 GitHub 的 repo 的链接。如果是这方面像我这样的刚入门的学习者的话,可以就是了解一下。 laike9m: 我看了一下,这个写的还挺好的,就是他把各种概念和一些工具都列出来了,对。嗯,我们之前也请过大伟来聊,就是他开发了一些交易相关的工具,所以其实这方面 Python 应用也是挺多的,对。 Manjusaka: 哎,反正我觉得给 Python 做贡献,就觉得还是希望像谭龙这样的人越来越多。是的,是的。对,而且现在他们就感觉是整体都非常缺人的感觉。 laike9m: 哪个看上去像不缺人? Manjusaka: 嗯,这倒也是,确实。反正就之前我给 Brandon 和 Ken Jin 然后请教问题的时候他们都表示很新奇,我操居然还有 Freshman 对我们现在做的这块感兴趣。对,居然还有新人对我们感兴趣?Freshman,哦 Freshman。啊对,反正我觉得从他们视野来看,就整体的很多的地方都会很缺人。 laike9m: 嗯,是的是的,尤其是像你做的那些 debugging 啊,然后 tracing 的一些东西,我觉得懂的人真的很少。 Manjusaka: 我觉得就没人管的状态。而且就我现在对他们的 tracing 的部分有很大的怨言,就主要是 Mark 上面说... 哎,我后面会试着再推一推,但是就哎,随缘吧。 laike9m: 嗯,行。好的。Manjusaka 你有没有什么想推荐的东西。 Manjusaka: 我推荐一部番吧,《阳光马达棒球场!》,非常很不错的一部番,我推荐大家去看看。然后可能国内有很多朋友对于传统的国外的可能说足球或者其他也好,这种体育文化他并不清楚,这种体育文化到底应该是怎么样的,它是怎么样遍布在人的日常生活中的,然后有些人不清楚,那么我建议大家可以去看一下,然后挺治愈的一部番。 laike9m: 嗯,好的好的。啊,我先不推荐了吧,以后再说吧。对,我最近在看一些书,但是还没有看完,所以,对。好,其实我们这期是比较短的一期,然后但是也希望听众们可以从中学到一些东西,然后如果要记住一点的话,就是可能给 CPython 做贡献也没有那么难。对,好,我们这期就到此结束,然后各位听众我们就下期再见,大家拜拜。 众人: 拜拜。 爱发电上赞助

0分钟
99+
1个月前

E20. 对谈Julia:“我们也曾害怕失败”,斩断‘失败’与‘自我否定’的锁链

安心空间 | 心理咨询师的聊天室

说出失败的经验,会感觉到困难和羞耻,但分享会让我们获得疗愈,并逐渐消解这份羞耻! Hi,伙伴们。这里是「安心空间」,一个我们可以一起学习重新养育自己,获得信任、安全与爱的地方。 我是播客主理人,心理咨询师徐林。 本期主题:那些印象深刻的“失败”的故事 内容摘要: 03:06 故事1:初中晚会,我的独舞节目被淘汰,遭男老师外貌羞辱,过载的羞耻与难堪的情绪让那时我无法消化,只能假装这件事没有发生过。 10:21 故事2:Julia小升初考试的失败,让她很多年都无法为自己取得的成绩高兴,也不敢在任何时候放松。 14:46 小时候的失败体验,一直到年纪很大,才磕磕碰碰地摸索中,慢慢能够学会换一个视角看待当时的失败。 17:58 和越亲近的人,越不敢暴露失败和脆弱?——其实失败与脆弱中的真实是真正好的亲密关系中很重要的链接。 22:49 故事3:试管备孕中的失败:1、试管的失败不等于失败的女人;2、没有绝对清晰的因果关系,所以不要责怪自己;3、不必羞耻的好时代,因为分享而收获到理解与安慰 30:43 故事4:Julia的遗传高度近视,是我保护眼睛的失败吗? 37:06 很多所谓“失败”都有复杂的结构性问题,归咎于个人努力是极其不公平的 40:09 就像成功没有单一标准一样,失败也没有!每个人可以定义属于自己的成功,而不是主流单一视角下的成败。 43:31 故事5:「我经常考砸,却没有在学业上的失败感」 VS 「Julia常年前三,却一直笼罩在对失败的恐惧中」,家长的态度对孩子有很大的影响 54:56 故事6:Julia的2岁半的孩子参加比赛得了最后一名,但是他骄傲得说:“我觉得自己很棒,我这次没有摔跤!” 1:02:03 成败的定义权要握在自己手中,而不是交给他人随意评断。 1:03:59 故事7:大学的社团话剧表演中的舞蹈被差评,那个时候已经开始学着回击,现在又回如何回应和宽慰那个时候的自己。 1:07:53 人需要有自己坚定的内在价值观,才能够不被外部的恶意负面评价击垮。 1:09:27 故事8:北大做实习咨询师回复BBS咨询时被攻击,是其他同行的确认和肯定,让我更快地不收负面心情的影响。 1:10:59 能够带给你积极反馈的关系,都是非常宝贵的支持系统。 1:13:01 故事9:曾经对面试失败的狼狈,直面自己的青涩与不成熟——了解面试官的视角后,就了解了面试的本质,再也不怕面试了。 1:22:57 如果可能,时不时聊一聊失败,本身就是对失败的恐惧的脱敏。 1:24:07 总结: 失败感从何而来? * 1、将失败过度狭窄地归因于自身的“人格失败”,而不是可以改善的“行为失败”以及复杂的系统结构性因素。 * 2、把身份认同过度绑定外部评价。 我们可以怎么办? * 1、调整认知,把行为的失败与人格失败断开,行为的失败是我们总结经验进步的收获。 * 2、用“自我同情”替代“自我攻击”,接纳人的有限性,接纳不完美的自己。 * 3、用课题分离的方法,把他人评价还给他人。 * 4、做一些小的失败练习,写失败日记,把转念的过程写下来。 * ——我们过去的模式是一定会反复重现的,所以需要持续的刻意练习、转念,才能够帮助我们去对失败感脱敏。 * 5、寻找能够给自己正面反馈的人际支持,远离否定指责你的人。 == == 欢迎在评论区分享你的收听的感受,与我们交流! 最后,还是感谢听到最后的你 ~ 这里是「安心空间」,我们下期再见!

87分钟
99+
1个月前

065. 在“努力”和“放手”之间

显化女王

在显化的旅程中,“臣服”(Surrender)是一个至关重要却又常常被误解的概念。它并非放弃或听天由命,而是一种充满力量的、有意识的放手。它要求我们在清晰地设定意图并采取必要行动之后,将对结果的执着和控制欲释放给宇宙。 01:18 第一阶段:有意识的“努力”——下订单 这个阶段是你作为“显化者”需要积极主动投入的阶段。这里的“努力”并非指焦虑的、强迫性的、源于匮乏感的挣扎,而是指“同频的行动”(Aligned Action)。 * 清晰意图 (Clarity): 你需要非常清楚自己想要什么。这不仅是模糊的“我想要更多钱”,而是具体到“我希望通过我热爱的事业,在未来六个月内获得每月5000英镑的稳定收入,并且这个过程让我感到喜悦和满足”。你需要感受它已经实现时的情绪。 * 能量对齐 (Vibration): 通过冥想、视觉化、感恩日记、肯定语等方式,将你的能量频率调整到与你的愿望相匹配的状态。你要从“渴望”的状态,转变为“拥有”的状态。 * 灵感动 (Inspired Action): 这是关键。你不需要规划出从A到Z的每一步。相反,你要对内在的灵感和直觉保持开放。宇宙会通过一个想法、一次偶遇、一个机会来引导你。你的“努力”就是去捕捉这些信号,并采取行动。比如,突然想联系一位老朋友,突然想报名一个课程,这些都是灵感行动。 这个阶段的“努力”是充满信任和喜悦的,而非源于恐惧和怀疑。你是在与宇宙共舞,而不是在与之角力。 02:24 第二阶段:有意识的“放手”——信任宇宙配送 下完订单后,你不会每分每秒都去刷新物流信息,担心快递员会不会迷路。你信任快递系统会把包裹送到你手上。显化也是如此。“臣服”就是这个信任的过程。 * 释放“如何” (Release the 'How'): 你已经明确了“什么”(What),现在需要把“如何”(How)实现它的方式完全交给宇宙。宇宙的智慧和资源远超你的想象,它会以最高效、最完美的方式为你安排。如果你死死抓住自己设想的唯一路径,反而会关闭其他所有可能性的大门。 * 放下执着 (Detachment from Outcome): 这是“臣服”的核心。你相信你的愿望正在到来的路上,但你不再将你的快乐和幸福感完全捆绑在“它必须在某个特定时间、以某种特定方式发生”上。这种执着会产生焦虑和怀疑的能量,反而会推开你的显化。 * 活在当下 (Live in the Present): 将你的焦点从对未来的焦虑转移到对当下的感恩和享受。当你享受当下的生活,你的能量频率自然会保持在高位,这本身就是最强的显化磁铁。 03:58 Tips:如何真正做到“臣服”:三大实用策略 1. 设立“信任的容器” (Container of Trust):方法: 每天或每周安排一个固定的“显化时间”(比如15分钟)。在这个时间内,你可以尽情地进行视觉化、书写肯定语、感受愿望成真的喜悦。但一旦时间结束,你就有意识地将这个愿望“打包”,想象着把它放进一个美丽的盒子里,交给宇宙、高我或你信仰的任何更高力量。并对自己说:“我的任务完成了,现在交给你了。”目的: 这能帮助你的大脑清晰地划分“努力”和“放手”的界限,避免一整天都陷入对显化的焦虑中。 2. 寻找“B计划的喜悦” (Joy in Plan B):方法: 真诚地问自己:“如果我最想要的那个结果没有发生,我还能找到快乐和幸福吗?” 尝试去构想一个同样能让你感到满足的“B计划”或“C计划”。目的: 这不是为了降低你的期望,而是为了拆除你对唯一结果的“绝望式执着”。当你意识到,无论结果如何,你都有能力创造自己的幸福时,那种紧绷的、恐惧的能量就会释放。讽刺的是,恰恰是这种“没有也行”的从容心态,最能加速显化的到来。这向宇宙传递了一个强烈的信号:你的幸福不依赖于外物,你本身就是一个完整的、高频的存在。 3. 将“怀疑”转化为“好奇” (Shift from Doubt to Curiosity):方法: 当怀疑的念头(比如“这真的有用吗?”“为什么还没发生?”)浮现时,不要压抑或评判它。温和地观察它,然后用“好奇”来转化它。对自己说:“我很好奇宇宙会用什么样的方式给我带来惊喜。”“这个延迟会不会是为了给我准备一个更好的礼物?”目的: “怀疑”是低频的、封闭的能量。“好奇”则是高频的、开放的能量。它保留了信念的核心,但用一种轻松、有趣的心态取代了焦虑和不耐烦,让你重新回到与宇宙共创的游戏心态中。 总结来说,“臣服”的艺术在于理解你的角色和宇宙的角色。你的角色是:明确你的渴望,调整你的频率,并跟随内在灵感去“行动”。宇宙的角色是:编排所有的细节,连接所有的人与事,并在最完美的时机将你的渴望呈现给你。 你既在“努力”,也在“放手”。这是一种动态的平衡,也是通往毫不费力、心想事成的终极秘诀。 《显化女王》播客在其他平台同步更新: Podcast|Spotify|QQ音乐|网易云音乐 给自己打个广告:金主爸爸看过来🙏大家如果喜欢我的播客,记得多多分享和赞赏哦~~

6分钟
99+
1个月前

Ep164 新加坡生存手册:有时候真的很难分清动物园和家

基本无害 Mostly Harmless

本期是新加坡生存手册的下期,上期指路:Ep162 新加坡生存手册:拼好话让你们玩明白了 此刻旅行青蛙小毛正在慕士塔格海拔不知道多少米反正很高的地方向大家发来问候。 夏天到了,记得跟喜欢的人(自己也行)出去旅行! 感谢侃侃喜剧、跳海酒馆为本期节目提供场地和设备支持! 【主播】 Sunny 大梦 @楼下王叔 @午夜骑手毛冬 【内容提要】 00:02:00 叠甲时间 00:05:26 「希望基本无害能带大家看更多的世界」 00:07:23 新加坡人如何解决冲突 00:09:52 你经历过“最新加坡”的时刻是什么 00:14:18 宿舍or动物园 00:24:43 新加坡的红事和白事 00:32:57 在新加坡最大的culture shock 00:42:05 新加坡dating注意事项 00:50:39 新加坡旅游建议 01:04:54 哪个时刻让你爱上了新加坡 01:12:25 文艺、合唱环节合唱环节 【音乐】 Honey Honey——孙燕姿 她来听我的演唱会——张学友 细水长流——梁文福/刘瑞政/王邦吉 那女孩对我说——黄义达 光阴副本——林俊杰 第一天——孙燕姿 一千年以后——林俊杰 我怀念的——孙燕姿 小酒窝——林俊杰/蔡卓妍 遇见——孙燕姿 制作:枳壳er 运营:Marvin 剪辑:Klynn、枳壳er 封面设计:张透明 【商务合作】 微信:jibenwuhai2024,备注「播客合作」 邮箱:[email protected]

89分钟
11w+
1个月前

福说聊天会:没人能从我的手里赢走“九百万”!

福说聊天会

本期主播:Jerry 阿宅 刘仁铖 伍科玮(小黑) show notes: 00:10:23 毫无意义的胜负欲小游戏 00:40:18 刘仁铖的逃避胜负小妙招 00:55:27 小黑的邪恶“中单”时刻 01:07:34 和小三居然也有胜负欲 01:18:20 “九百万”请吃个日料怎么了! 音乐:Jump5 - Aloha, Tomo fujita - Room418 参与线下录制: 微信公众号【福立社喜剧】 将定期发布聊天会相关信息;福州以外的听友可以凭借三天内交通凭证免费入场。 听友群:添加客服微信Comedystore,备注聊天会听众,小助手会帮你拉入群聊 微博/小红书/抖音:@福立社喜剧 及小红书:@福立社情报站 将会发布现场精彩视频片段 本期节目精选好物清单 1、人民邮电出版社《妈!这是我的人生》 • 一本写给所有“被安排长大”的人的成长实录, • 母女双视角拆解我们为何总难与自己和解 • 拼团价:31.4元(原价69.8元)!限时优惠至7月13日,下方扫码抢购~ 2、倍轻松P2猫爪按摩枕——颈椎肩颈多功能按摩器 • 猫爪仿真按摩体验,搭载3D浮动按摩头+红光热敷+50dB静音马达 • 四颗揉捏按摩头,自动调节角度,从颈部一路按到腰背 • 拼团价:299元(淘宝官方旗舰店369元)限时优惠价仅限至7月13日!下方扫码抢购~ 本期节目产品由@超级内容旗下节目 提供。

127分钟
70k+
1个月前

JUST CHILL|电台内部聊聊上影节这这那那

青年度日指南

啊啊啊!这个月最后一期上影节节目了!我们台不能一直走不出上影节啦! 主播: 拉帝|奇妙导演,小红薯:拉帝 Alice|听友群笑领导 静静|长宁公主 小李|天山王者 Timeline: 好累,不想做了,这期超长的 本期背景音乐: Terrace Martin - Lets Get Cozy Terrace Martin & Kenyon Dixon - Love Yourself (Official Audio) Terrace Martin - Mind My Business Terrace Martin - Not Sharing Terrace Martin & Kenyon Dixon - Come As You Are (Official Audio) Terrace Martin, Kenyon Dixon & Robert Glasper - Circle of Love (Official Audio) Yussef Dayes - Tidal Wave (Live From Malibu) Yussef Dayes,Elijah Fox - Istanbul (feat. Elijah Fox) Yussef Dayes,Rocco Palladino - Tioga Pass (feat. Rocco Palladino) [Live From Malibu] Terrace Martin & Kenyon Dixon - Body & Soul (Official Audio) Terrace Martin & Kenyon Dixon - Only Real Ones Survive (Official Audio) 鈴木弘 - ウォーク・トール 鈴木弘 - シュリンプ・ダンス 細野晴臣 - Chattanooga Choo Choo 細野晴臣 - Hurricane Dorothy 細野晴臣 - Kinu Kaido 細野晴臣 - Nettai-ya 細野晴臣 - Pekin Duck 細野晴臣 - Hyoryuki 細野晴臣 - Honey Moon 細野晴臣 - 東京Shyness Boy 細野晴臣 - 泰安洋行 細野晴臣 - 蝶々-San 細野晴臣 - 香港Blues Lupe Fiasco - No. 1 Headband Lupe Fiasco - Outside Lupe Fiasco - Samurai 細野晴臣,鈴木茂,山下達郎 - コーラル・リーフ 細野晴臣,鈴木茂,山下達郎 - パッション・フラワー 細野晴臣,鈴木茂,山下達郎 - キスカ 山本刚 - Love Is A Many Splendored Thing 山本刚 - No Problem 山本刚 - Spartacus 春ねむり,Frost Children - Get Well Soon

139分钟
99+
1个月前

vol.532 听了这期癌症科普,癌症冷知识、防癌小技巧、抗癌新科技全解锁!

无聊斋

本期主播:@刘旸教主、@莫得意 本期嘉宾:李治中(科研工作者,科普作家。清华本科,杜克大学癌症生物学博士,北大药学院客座教授) 不无聊的“芝士”增加了!这期又是我们的趣味科普系列!这期我们想聊的是“癌症”,听到这里不要害怕!因为我们今天是用轻松、简单、小白科普的方式来聊聊常见的癌症类型、癌症目前的治疗手段、日常预防癌症的方法。本期包含以下内容—— -癌症和肿瘤究竟有啥区别?大家常说“这年头谁还没个结节”,那结节又是啥东西? -治中老师:研究表明所有的老男人比如我和教主,在死后拿去解剖几乎全是前列腺癌。教主:你先等会儿什么老男人??? -古代人的患癌风险高吗?癌症这个词是从哪个朝代开始就有的? -癌症这么多,好好盘一盘!治愈率最高的癌症是什么?比较“小众”的癌症是什么?最令医生头疼的癌症是什么?遗传风险很高的癌症是什么?最容易被忽视的癌症是什么?男性和女性最常见的癌症分别是什么? -在现有的癌症治疗方案中,医生要如何确定优先使用哪种方法呢? -癌症治疗的福音来了!速来学习一下神奇的免疫疗法! -免疫疗法和化疗、放疗的本质区别是什么?它有什么风险和副作用? -白血病患者首次尝试免疫疗法后治愈、鼻咽癌患者三次复发后经过免疫疗法一年多治愈……听听振奋人心的成功治愈故事! -我们该如何找到可以进行免疫治疗的医院? -反诈环节!目前市面上有哪些顶着免疫疗法之名的“骗术”吗?如何分辨骗术? -砒霜还能治疗癌症?这能对吗?这谁发现的哇! -生酮饿死癌细胞、抽血扩增免疫细胞、抽血过滤、量子防癌……有哪些离谱无语的“伪科学”抗癌方法? -如今打工人身心俱疲,经常熬夜、也睡不够,如果非要选一个,熬夜和睡不够哪个对身体的“杀伤力”更大? -日常生活中,有哪些身体预警是绝对不可以忽视的?有哪些提高免疫力的实用tips? 欢迎收听本期播客,希望每个人都能快快乐乐、健健康康!也欢迎大家了解&购买李治中老师的癌症科普书籍——《癌症.真相:医生也在读》(横扫中国多项科普大奖,是最棒的癌症知识入门读物),《癌症天敌:免疫治疗的突破与希望》(2025年刚刚出版,系统性介绍最热门的肿瘤免疫治疗和最新前沿研究)一起学习更多癌症相关知识! 小红书&B站&微博:无聊斋 节目公众号:无聊斋、单立人喜剧 自荐成为嘉宾:无聊斋公众号回复“投稿” 蹲巡演:无聊斋公众号回复“巡演”

70分钟
10w+
1个月前
EarsOnMe

加入我们的 Discord

与播客爱好者一起交流

立即加入

扫描微信二维码

添加微信好友,获取更多播客资讯

微信二维码

播放列表

自动播放下一个

播放列表还是空的

去找些喜欢的节目添加进来吧