Typlog 3.1 (https://typlog.com)<![CDATA[捕蛇者说]]>https://pythonhunter.org/zh232a4711-88cb-5c7a-8d4d-7c5e41bdee99episodichttps://i.typlog.com/pythonhunter/8444690454_041962.png?x-oss-process=style/sl<![CDATA[捕蛇者说]]>https://pythonhunter.org/noMon, 16 Mar 2026 07:58:46 +0000<![CDATA[Ep 58. 从零实现龙虾需要什么?Bub 开发者访谈]]>https://pythonhunter.org/episodes/talk-with-bub-creatorshttps://pythonhunter.org/episodes/talk-with-bub-creators1:27:05nofull在本期播客中,我们邀请到了明希和 ASF Member 卓燃,深入探讨了近期爆火的 AI 项目 OpenClaw。他们分享了自己如何基于 OpenClaw 的理念,结合个人需求创造出另一个有趣的 AI 助手 —— Bub

嘉宾

时间戳

链接

]]>
在本期播客中,我们邀请到了明希和 ASF Member 卓燃,深入探讨了近期爆火的 AI 项目 OpenClaw。他们分享了自己如何基于 OpenClaw 的理念,结合个人需求创造出另一个有趣的 AI 助手 —— Bub

嘉宾

时间戳

链接


爱发电上赞助

]]>
Sat, 14 Mar 2026 16:32:14 +0000
<![CDATA[Ep 57. 两个世界的碰撞:传统企业眼中的 AI 革命]]>https://pythonhunter.org/episodes/ep57https://pythonhunter.org/episodes/ep571:04:33nofull本期节目我们请到了推上的 Xiaowen。Xiaowen 在外资金融机构深耕近二十年,作为传统企业的中层管理,给我们分享了他所见到的 AI 革命。

嘉宾

Xiaowen Zhang

主播

laike9m

链接

  • Xiaowen 的推文
image.png
]]>
本期节目我们请到了推上的 Xiaowen。Xiaowen 在外资金融机构深耕近二十年,作为传统企业的中层管理,给我们分享了他所见到的 AI 革命。

嘉宾

Xiaowen Zhang

主播

laike9m

链接

  • Xiaowen 的推文
image.png

爱发电上赞助

]]>
Tue, 17 Feb 2026 05:30:33 +0000
<![CDATA[Ep 56. 对话 Hawstein:从独立开发,到追寻人生的意义]]>https://pythonhunter.org/episodes/ep56https://pythonhunter.org/episodes/ep561:32:50nofull本期节目,我们请到了《一个独立创造者的五年》的作者 Hawstein。从独立开发切入,我们聊了很多关于自身和时代的思考。做了六年捕蛇者说,本期是我个人(laike9m)最喜欢的一期,也希望大家喜欢。

本期关键词:
独立开发 / 人生规划 / 现代性与分工 / 副业模式 / 开源 / 自由的代价 / 存在主义危机 / 技术乐观 / 死亡思考

嘉宾

Hawstein

主播

勘误与说明:

  • Obsidian 并不开源,播客中的描述有误
  • 本期节目录制时,关于「沉浸式翻译」的争议尚未出现。播客反映了我们当时的真实想法。对后来的争议这里不做评判。

时间点

  • 00:14 Hawstein 自我介绍

  • 05:56 Twitter 营销与独立开发者的困境

  • 09:54 独立开发的本质与成功因素

  • 15:17 产品开发方法与个人需求

  • 20:22 个人需求与产品认同感

  • 24:16 副业模式与安全网

  • 27:17 工作与兴趣的平衡

  • 31:11 情绪驱动与产品 Ownership

  • 34:35 产品收购与理想主义

  • 38:55 独立开发避坑指南

  • 42:33 快速发布与开源策略

  • 47:57 开源的负担与产品心态

  • 52:32 成功产品的定义与收购流程

  • 57:56 读者来信与现代人的追求

  • 1:02:31 自由的代价与存在主义危机

  • 1:07:17 中等智慧陷阱与阿甘精神

  • 1:11:56 旧秩序的崩塌与新秩序的建立

  • 1:15:02 技术乐观与财富集中

  • 1:19:24 人类文明的叙事与死亡思考

链接

]]>
本期节目,我们请到了《一个独立创造者的五年》的作者 Hawstein。从独立开发切入,我们聊了很多关于自身和时代的思考。做了六年捕蛇者说,本期是我个人(laike9m)最喜欢的一期,也希望大家喜欢。

本期关键词:
独立开发 / 人生规划 / 现代性与分工 / 副业模式 / 开源 / 自由的代价 / 存在主义危机 / 技术乐观 / 死亡思考

嘉宾

Hawstein

主播

勘误与说明:

  • Obsidian 并不开源,播客中的描述有误
  • 本期节目录制时,关于「沉浸式翻译」的争议尚未出现。播客反映了我们当时的真实想法。对后来的争议这里不做评判。

时间点

  • 00:14 Hawstein 自我介绍

  • 05:56 Twitter 营销与独立开发者的困境

  • 09:54 独立开发的本质与成功因素

  • 15:17 产品开发方法与个人需求

  • 20:22 个人需求与产品认同感

  • 24:16 副业模式与安全网

  • 27:17 工作与兴趣的平衡

  • 31:11 情绪驱动与产品 Ownership

  • 34:35 产品收购与理想主义

  • 38:55 独立开发避坑指南

  • 42:33 快速发布与开源策略

  • 47:57 开源的负担与产品心态

  • 52:32 成功产品的定义与收购流程

  • 57:56 读者来信与现代人的追求

  • 1:02:31 自由的代价与存在主义危机

  • 1:07:17 中等智慧陷阱与阿甘精神

  • 1:11:56 旧秩序的崩塌与新秩序的建立

  • 1:15:02 技术乐观与财富集中

  • 1:19:24 人类文明的叙事与死亡思考

链接


爱发电上赞助

]]>
Sat, 09 Aug 2025 07:07:41 +0000
<![CDATA[[特别篇06] laixintao 和 Manjusaka 串台「牛油果烤面包」]]>https://pythonhunter.org/episodes/sp06https://pythonhunter.org/episodes/sp061:17:05nofull本期节目,捕蛇者说和牛油果烤面包播客串台。捕蛇者说主播中的两个是网站可靠性工程师(SRE)。他们今天在节目中介绍了一下这个职业是干什么,需要什么技能,职业的发展趋势以及职业发展。

嘉宾:laixintaoManjusaka

主播: 斯图亚特

剪辑: 季雨清

时间线: 季雨清

00:02:10 播客:捕蛇者说

00:03:45 嘉宾介绍

00:05:59 SRE是什么

00:08:14 假设复刻抖音,需要什么

00:17:19 SRE的具体职责

00:18:09 发布

00:26:30 扩缩容

00:28:34 不同服务层:业务、平台、基础设施

00:31:02 SRE在不同服务层中的职责

00:31:51 有了云商还需要SRE吗

00:35:32 SRE的历史

00:51:16 “DevOps”

00:55:32 成为SRE需要哪些技能

01:07:10 SRE的职业发展

01:15:57 荐番:花薰凛然

图片由Gemini生成

片头片尾音乐: Courante 1st Cello Suite Exzel Music Publishing (freemusicpublicdomain.com)

]]>
本期节目,捕蛇者说和牛油果烤面包播客串台。捕蛇者说主播中的两个是网站可靠性工程师(SRE)。他们今天在节目中介绍了一下这个职业是干什么,需要什么技能,职业的发展趋势以及职业发展。

嘉宾:laixintaoManjusaka

主播: 斯图亚特

剪辑: 季雨清

时间线: 季雨清

00:02:10 播客:捕蛇者说

00:03:45 嘉宾介绍

00:05:59 SRE是什么

00:08:14 假设复刻抖音,需要什么

00:17:19 SRE的具体职责

00:18:09 发布

00:26:30 扩缩容

00:28:34 不同服务层:业务、平台、基础设施

00:31:02 SRE在不同服务层中的职责

00:31:51 有了云商还需要SRE吗

00:35:32 SRE的历史

00:51:16 “DevOps”

00:55:32 成为SRE需要哪些技能

01:07:10 SRE的职业发展

01:15:57 荐番:花薰凛然

图片由Gemini生成

片头片尾音乐: Courante 1st Cello Suite Exzel Music Publishing (freemusicpublicdomain.com)


爱发电上赞助

]]>
Thu, 07 Aug 2025 19:30:41 +0000
<![CDATA[Ep 55. 从文科转码到给 CPython 做贡献(纯文字稿)]]>https://pythonhunter.org/episodes/ep55https://pythonhunter.org/episodes/ep5500:10nofull本期节目应嘉宾的要求,我们只发布了文字稿。带来的不便还请各位听众谅解。

嘉宾

tanloong

链接

文字稿

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 做贡献也没有那么难。对,好,我们这期就到此结束,然后各位听众我们就下期再见,大家拜拜。

众人: 拜拜。

]]>
本期节目应嘉宾的要求,我们只发布了文字稿。带来的不便还请各位听众谅解。

嘉宾

tanloong

链接

文字稿

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 做贡献也没有那么难。对,好,我们这期就到此结束,然后各位听众我们就下期再见,大家拜拜。

众人: 拜拜。


爱发电上赞助

]]>
Sat, 05 Jul 2025 17:37:21 +0000
<![CDATA[Ep 54. React Native 已死?Jetpack Compose 当立]]>https://pythonhunter.org/episodes/ep54https://pythonhunter.org/episodes/ep541:13:14nofull本期节目我们和《二分电台》的主播 2BAB 探讨了移动应用开发领域的技术趋势。AB 详细介绍了原生与非原生开发的区别,以及 Flutter、ReactNative 和 Kotlin Multiplatform (KMP) 等跨平台框架的特点。嘉宾们还分析了各种技术选型的优劣,例如 ReactNative 的热更新优势和 Flutter 的 UI 一致性,以及 Kotlin 作为 Android 官方语言的崛起。最后,节目还探讨了 On-Device 模型在移动设备上的应用前景,例如图像语义搜索和离线推理,并对 AI 技术在移动开发领域的潜在影响进行了展望。

嘉宾

2BAB (AB)

主播

章节

  • 00:14 移动端开发框架介绍与原生/非原生定义
  • 07:03 ReactNative 的兴起、问题与 Flutter 的挑战
  • 14:19 Kotlin Multiplatform (KMP) 与 Jetpack Compose 的发展
  • 23:22 KMP 的流行度、ReactNative 的价值与未来发展
  • 30:05 Electron 的妥协与热更新的重要性
  • 37:43 入门移动端开发的建议与 Flutter 的未来
  • 42:57 Flutter 的风险与 Kotlin 的竞争
  • 48:45 On-Device Model 的应用与发展
  • 55:10 On-Device Model 的功耗与应用场景
  • 1:03:08 On-Device Model 的隐私与安全
  • 1:10:03 总结与推荐

链接

]]>
本期节目我们和《二分电台》的主播 2BAB 探讨了移动应用开发领域的技术趋势。AB 详细介绍了原生与非原生开发的区别,以及 Flutter、ReactNative 和 Kotlin Multiplatform (KMP) 等跨平台框架的特点。嘉宾们还分析了各种技术选型的优劣,例如 ReactNative 的热更新优势和 Flutter 的 UI 一致性,以及 Kotlin 作为 Android 官方语言的崛起。最后,节目还探讨了 On-Device 模型在移动设备上的应用前景,例如图像语义搜索和离线推理,并对 AI 技术在移动开发领域的潜在影响进行了展望。

嘉宾

2BAB (AB)

主播

章节

  • 00:14 移动端开发框架介绍与原生/非原生定义
  • 07:03 ReactNative 的兴起、问题与 Flutter 的挑战
  • 14:19 Kotlin Multiplatform (KMP) 与 Jetpack Compose 的发展
  • 23:22 KMP 的流行度、ReactNative 的价值与未来发展
  • 30:05 Electron 的妥协与热更新的重要性
  • 37:43 入门移动端开发的建议与 Flutter 的未来
  • 42:57 Flutter 的风险与 Kotlin 的竞争
  • 48:45 On-Device Model 的应用与发展
  • 55:10 On-Device Model 的功耗与应用场景
  • 1:03:08 On-Device Model 的隐私与安全
  • 1:10:03 总结与推荐

链接


爱发电上赞助

]]>
Mon, 19 May 2025 00:02:23 +0000
<![CDATA[Ep 53. AI 能否帮我们做出更好的投资决策?]]>https://pythonhunter.org/episodes/ep53https://pythonhunter.org/episodes/ep531:20:28nofull本期节目,我们和 Dawei 聊了聊 AI 在投资中的作用,以及他开发的投资辅助产品策引

自来水广告:主播们的启蒙播客 Teahour 复播啦! Teahour 2.0 是一档针对程序员播客节目,更是一场思维的探索。 访问 teahour.dev 获取最新更新。

嘉宾

Dawei Ma

主播

章节

  • 03:12 Dawei 的创业经历及早期投资经验教训

  • 11:06 构建体系化投资决策系统及对其他投资方法的反思

  • 17:25 开发自动化交易策略及选择指数交易的原因

  • 23:57 从 Excel 工具到测影产品的演变及核心功能介绍

  • 33:03 测影产品的未来规划及对投资理念的探讨

  • 41:26 算法和 AI 在投资中的作用及案例分析

  • 1:00:07 开发策引的经验分享、AI 工具的选择及对自动化交易的看法

  • 1:13:25 推荐

链接

]]>
本期节目,我们和 Dawei 聊了聊 AI 在投资中的作用,以及他开发的投资辅助产品策引

自来水广告:主播们的启蒙播客 Teahour 复播啦! Teahour 2.0 是一档针对程序员播客节目,更是一场思维的探索。 访问 teahour.dev 获取最新更新。

嘉宾

Dawei Ma

主播

章节

  • 03:12 Dawei 的创业经历及早期投资经验教训

  • 11:06 构建体系化投资决策系统及对其他投资方法的反思

  • 17:25 开发自动化交易策略及选择指数交易的原因

  • 23:57 从 Excel 工具到测影产品的演变及核心功能介绍

  • 33:03 测影产品的未来规划及对投资理念的探讨

  • 41:26 算法和 AI 在投资中的作用及案例分析

  • 1:00:07 开发策引的经验分享、AI 工具的选择及对自动化交易的看法

  • 1:13:25 推荐

链接


爱发电上赞助

]]>
Mon, 28 Apr 2025 03:31:12 +0000
<![CDATA[Ep 52. 没有失败,只有反馈]]>https://pythonhunter.org/episodes/ep52https://pythonhunter.org/episodes/ep5251:40nofull本期播客,我们和嘉宾一起聊了聊我们在人生中经常需要面对的一个话题:我们应该怎么样去面对“失败”

这期播客的由来是来自于嘉宾在推特上的一则分享 “没有失败,只有反馈。”

如果屏幕前的你正在面临一些挫折与困扰,希望这一期的播客能帮到你

嘉宾、主播

卡比卡比

laike9m

Manjusaka

时间点

  • 00:00 开场&嘉宾自我介绍
  • 02:52 卡比的编程学习经历
  • 06:06 卡比的工作经历
  • 15:40 怎么样去选择一些开源项目
  • 17:50 工作和生活中怎么样去排解压力
  • 18:20 过去几段经历中学习到的东西
  • 24:30 卡比的新工作
  • 30:00 怎么样去做风险评估
  • 32:30 费曼学习法
  • 34:10 参与开源的意义
  • 43:05 对于”失败学“全新的解构

嘉宾严选

参考

  1. 卡比的推文, https://x.com/jakevin7/status/1875466413558902815
  2. NebulaGraph, https://github.com/vesoft-inc/nebula
  3. SelectDB, https://www.selectdb.com/
  4. Apache Doris, https://github.com/apache/doris
  5. Apache DataFusion, https://github.com/apache/datafusion
  6. Manjusaka 的总结, https://www.manjusaka.blog/posts/2025/01/04/saka-is-baka/
  7. Laike9m 的总结, https://indie2024.laike9m.com/
  8. 失败学是什么, https://github.com/boism-org/northpole
]]>
本期播客,我们和嘉宾一起聊了聊我们在人生中经常需要面对的一个话题:我们应该怎么样去面对“失败”

这期播客的由来是来自于嘉宾在推特上的一则分享 “没有失败,只有反馈。”

如果屏幕前的你正在面临一些挫折与困扰,希望这一期的播客能帮到你

嘉宾、主播

卡比卡比

laike9m

Manjusaka

时间点

  • 00:00 开场&嘉宾自我介绍
  • 02:52 卡比的编程学习经历
  • 06:06 卡比的工作经历
  • 15:40 怎么样去选择一些开源项目
  • 17:50 工作和生活中怎么样去排解压力
  • 18:20 过去几段经历中学习到的东西
  • 24:30 卡比的新工作
  • 30:00 怎么样去做风险评估
  • 32:30 费曼学习法
  • 34:10 参与开源的意义
  • 43:05 对于”失败学“全新的解构

嘉宾严选

参考

  1. 卡比的推文, https://x.com/jakevin7/status/1875466413558902815
  2. NebulaGraph, https://github.com/vesoft-inc/nebula
  3. SelectDB, https://www.selectdb.com/
  4. Apache Doris, https://github.com/apache/doris
  5. Apache DataFusion, https://github.com/apache/datafusion
  6. Manjusaka 的总结, https://www.manjusaka.blog/posts/2025/01/04/saka-is-baka/
  7. Laike9m 的总结, https://indie2024.laike9m.com/
  8. 失败学是什么, https://github.com/boism-org/northpole

爱发电上赞助

]]>
Wed, 29 Jan 2025 18:09:54 +0000
<![CDATA[Ep 51. 独立开发,做 App 还是做 SaaS?【推广和销售】]]>https://pythonhunter.org/episodes/ep51https://pythonhunter.org/episodes/ep511:11:06nofull本期播客探讨了独立开发者在推出 App 和 SaaS 产品时面临的推广与销售挑战。

相较于 SaaS,App 的渠道分发更为复杂,需要通过应用商店的审核流程。在推广方面,由于国内用户更倾向于使用移动设备,且很多平台限制 URL 链接,App 的推广相对容易,而 SaaS 则更依赖于搜索引擎优化。付费转化上,App 的买断模式更容易被用户接受,而 SaaS 的订阅模式更符合其对持续维护的需求。嘉宾们最后建议开发者根据目标用户(是否熟悉 URL 和电脑操作)以及产品类型来选择适合的 App 或 SaaS,并探讨了更灵活的付费模式,如按年买断。

嘉宾、主播,和他们的产品

Randy

Adam Wen

laike9m

时间点

  • 00:00 独立开发者:App 还是 SaaS?开篇与渠道分发
  • 04:36 App 与 SaaS 的渠道分发差异及优势
  • 06:02 国内外推广差异:URL 与 App Store 的对比
  • 10:00 SEO 与 App 推广:国内外市场对比
  • 13:29 国内 SaaS 推广困境:平台限制与传播难题
  • 17:44 国内用户习惯与推广策略:微信、二维码与邮件
  • 23:21 国内推广策略:绕过平台限制的尝试
  • 27:22 SaaS 与 App 的付费转化及推广策略
  • 37:43 播客推广的独特优势与付费模式选择
  • 57:06 付费转化率与国内 SaaS 市场现状
]]>
本期播客探讨了独立开发者在推出 App 和 SaaS 产品时面临的推广与销售挑战。

相较于 SaaS,App 的渠道分发更为复杂,需要通过应用商店的审核流程。在推广方面,由于国内用户更倾向于使用移动设备,且很多平台限制 URL 链接,App 的推广相对容易,而 SaaS 则更依赖于搜索引擎优化。付费转化上,App 的买断模式更容易被用户接受,而 SaaS 的订阅模式更符合其对持续维护的需求。嘉宾们最后建议开发者根据目标用户(是否熟悉 URL 和电脑操作)以及产品类型来选择适合的 App 或 SaaS,并探讨了更灵活的付费模式,如按年买断。

嘉宾、主播,和他们的产品

Randy

Adam Wen

laike9m

时间点

  • 00:00 独立开发者:App 还是 SaaS?开篇与渠道分发
  • 04:36 App 与 SaaS 的渠道分发差异及优势
  • 06:02 国内外推广差异:URL 与 App Store 的对比
  • 10:00 SEO 与 App 推广:国内外市场对比
  • 13:29 国内 SaaS 推广困境:平台限制与传播难题
  • 17:44 国内用户习惯与推广策略:微信、二维码与邮件
  • 23:21 国内推广策略:绕过平台限制的尝试
  • 27:22 SaaS 与 App 的付费转化及推广策略
  • 37:43 播客推广的独特优势与付费模式选择
  • 57:06 付费转化率与国内 SaaS 市场现状

爱发电上赞助

]]>
Tue, 24 Dec 2024 07:05:03 +0000
<![CDATA[Ep 50. 独立开发,做 App 还是做 SaaS?【开发篇】]]>https://pythonhunter.org/episodes/ep50https://pythonhunter.org/episodes/ep5051:00nofull本期节目探讨了独立开发者选择开发 App 还是 SaaS 的利弊。我们从多个角度进行了深入分析,包括开发效率、跨平台能力、所需设备、维护成本等。下期节目中我们会从产品发布和推广的角度进行比较,敬请期待。

总结起来:SaaS 在开发效率和资源模板方面更具优势,但在移动端的应用受到限制;而 App 开发则更依赖于特定的平台和设备,维护成本可能因操作系统更新和与其他应用的兼容性问题而上升。最终的选择还是要根据开发者的技术背景、目标用户和市场定位来决定。

嘉宾、主播,和他们的产品

Randy

Adam Wen

laike9m

时间点

  • 00:00 嘉宾和主播们都开发了哪些产品
  • 05:53 App 与 SaaS 的定义与界限
  • 09:14 开发效率
    SaaS 由于资源丰富、模板易复用,开发效率通常高于 App,但 AI 工具缩小了两者的差距
  • 18:47 跨平台性与移动端支持
    SaaS 天然跨平台,但移动端支持受限;App 跨平台需借助 Flutter 等框架,但平台割裂问题依然存在。PWA 提供了一种折中方案,但用户使用习惯有待培养。
  • 27:35 开发设备
    SaaS 对开发设备要求低,App 则可能需要特定操作系统和高性能设备。远程桌面技术可以一定程度上解决 App 开发对设备的限制。
  • 30:06 维护成本
    维护成本方面,App 的维护成本并非一定低于 SaaS,操作系统更新、与其他 App 冲突等都可能带来维护难题。SaaS 的维护成本则主要体现在服务器和数据库的维护上。
  • 38:09 国内开发环境的挑战与应对策略
    国内 SaaS 开发需要考虑合规性、支付接口接入等问题,这部分成本和时间消耗不容忽视。支付集成方面,国内市场循环扣费的支付方案选择有限,对开发者资质要求较高。
  • 48:36 App 发布、代码管理和用户反馈
]]>
本期节目探讨了独立开发者选择开发 App 还是 SaaS 的利弊。我们从多个角度进行了深入分析,包括开发效率、跨平台能力、所需设备、维护成本等。下期节目中我们会从产品发布和推广的角度进行比较,敬请期待。

总结起来:SaaS 在开发效率和资源模板方面更具优势,但在移动端的应用受到限制;而 App 开发则更依赖于特定的平台和设备,维护成本可能因操作系统更新和与其他应用的兼容性问题而上升。最终的选择还是要根据开发者的技术背景、目标用户和市场定位来决定。

嘉宾、主播,和他们的产品

Randy

Adam Wen

laike9m

时间点

  • 00:00 嘉宾和主播们都开发了哪些产品
  • 05:53 App 与 SaaS 的定义与界限
  • 09:14 开发效率
    SaaS 由于资源丰富、模板易复用,开发效率通常高于 App,但 AI 工具缩小了两者的差距
  • 18:47 跨平台性与移动端支持
    SaaS 天然跨平台,但移动端支持受限;App 跨平台需借助 Flutter 等框架,但平台割裂问题依然存在。PWA 提供了一种折中方案,但用户使用习惯有待培养。
  • 27:35 开发设备
    SaaS 对开发设备要求低,App 则可能需要特定操作系统和高性能设备。远程桌面技术可以一定程度上解决 App 开发对设备的限制。
  • 30:06 维护成本
    维护成本方面,App 的维护成本并非一定低于 SaaS,操作系统更新、与其他 App 冲突等都可能带来维护难题。SaaS 的维护成本则主要体现在服务器和数据库的维护上。
  • 38:09 国内开发环境的挑战与应对策略
    国内 SaaS 开发需要考虑合规性、支付接口接入等问题,这部分成本和时间消耗不容忽视。支付集成方面,国内市场循环扣费的支付方案选择有限,对开发者资质要求较高。
  • 48:36 App 发布、代码管理和用户反馈

爱发电上赞助

]]>
Sat, 16 Nov 2024 22:56:27 +0000
<![CDATA[Ep 49. 大公司非业务部门的困境]]>https://pythonhunter.org/episodes/ep49https://pythonhunter.org/episodes/ep4959:03nofull本期节目,我们和前 React 团队工程师 Mengdi 聊了聊大公司非业务部门的困境。
众所周知,非业务部门由于不产生营收,常常成为公司降本增效的牺牲品。这一切的根源究竟如何,是否如表面看上去这么简单?
本期我们将一探究竟,并从中得出一个嘉宾和主播都非常认可的结论。

这里是广告

Clicknow 是主播 laike9m 开发的一款 Mac AI 搜索软件。一键划词的 AI(联网)搜索带给你准确、即时、丰富的信息,大幅提升工作、学习和研究的效率,从此再也不用在不同 App 之间切换。支持任何语言,可用来做翻译/总结。无需 API key,提供免费试用

Clicknow 还支持一些贴心的小功能:比如拼写检查、添加日历、计算器、航班追踪等。

嘉宾

Mengdi

主播

时间点

  • 01:55 Mengdi 在 React 团队的工作经历
  • 04:08 React Developer Tools 介绍
  • 22:31 laike9m 分享 Google 奇闻
  • 31:27 laixintao 分享 SRE 的困境
  • 34:13 深入禁区,揭开开发效率和裁员之间的隐秘联系
  • 43:19 科技行业的特殊性
  • 46:41 结论:大公司非业务部门困境的根源
  • 49:23 给听众的建议
  • 52:52 推荐环节

链接

]]>
本期节目,我们和前 React 团队工程师 Mengdi 聊了聊大公司非业务部门的困境。
众所周知,非业务部门由于不产生营收,常常成为公司降本增效的牺牲品。这一切的根源究竟如何,是否如表面看上去这么简单?
本期我们将一探究竟,并从中得出一个嘉宾和主播都非常认可的结论。

这里是广告

Clicknow 是主播 laike9m 开发的一款 Mac AI 搜索软件。一键划词的 AI(联网)搜索带给你准确、即时、丰富的信息,大幅提升工作、学习和研究的效率,从此再也不用在不同 App 之间切换。支持任何语言,可用来做翻译/总结。无需 API key,提供免费试用

Clicknow 还支持一些贴心的小功能:比如拼写检查、添加日历、计算器、航班追踪等。

嘉宾

Mengdi

主播

时间点

  • 01:55 Mengdi 在 React 团队的工作经历
  • 04:08 React Developer Tools 介绍
  • 22:31 laike9m 分享 Google 奇闻
  • 31:27 laixintao 分享 SRE 的困境
  • 34:13 深入禁区,揭开开发效率和裁员之间的隐秘联系
  • 43:19 科技行业的特殊性
  • 46:41 结论:大公司非业务部门困境的根源
  • 49:23 给听众的建议
  • 52:52 推荐环节

链接


爱发电上赞助

]]>
Mon, 21 Oct 2024 07:03:50 +0000
<![CDATA[Ep 48. 专访高天:为了当好 B站 up主,我成为了 Python 核心开发者]]>https://pythonhunter.org/episodes/ep48https://pythonhunter.org/episodes/ep481:37:06nofull本期节目,我们第二次请到了高天,和他聊了聊成为 Python 核心开发者以及在 B站做 up 主的经历和感悟。

嘉宾

高天

主播

章节

Python 开发

  • 成为 Python 核心开发者的历程
  • 对 Python 语言发展的看法
  • 分享一个你比较推崇的 Python 编程的技巧或是最佳实践

技术内容创作

  • 是什么让你尝试开始在 B站分享技术内容
  • 视频制作流程和内容选择策略
  • 如何平衡技术深度和受众理解度
  • 知乎问答和知识星球运营经验
  • 技术直播的挑战和技巧

工作与生活平衡

  • 在科技公司工作的日常
  • 如何管理时间,兼顾工作、创作和个人生活
  • 对程序员职业倦怠的看法和应对方法

链接

]]>
本期节目,我们第二次请到了高天,和他聊了聊成为 Python 核心开发者以及在 B站做 up 主的经历和感悟。

嘉宾

高天

主播

章节

Python 开发

  • 成为 Python 核心开发者的历程
  • 对 Python 语言发展的看法
  • 分享一个你比较推崇的 Python 编程的技巧或是最佳实践

技术内容创作

  • 是什么让你尝试开始在 B站分享技术内容
  • 视频制作流程和内容选择策略
  • 如何平衡技术深度和受众理解度
  • 知乎问答和知识星球运营经验
  • 技术直播的挑战和技巧

工作与生活平衡

  • 在科技公司工作的日常
  • 如何管理时间,兼顾工作、创作和个人生活
  • 对程序员职业倦怠的看法和应对方法

链接


爱发电上赞助

]]>
Sat, 03 Aug 2024 07:05:24 +0000
<![CDATA[Ep 47. 和 Yuchen 聊聊 Cloudflare 的新框架 Pingora]]>https://pythonhunter.org/episodes/ep47https://pythonhunter.org/episodes/ep4757:29nofull本期节目我们请到了继续和 Yuchen 聊聊 Cloudflare,以及他主导并开源网络框架 Pingora

Pingora 是一个使用 Rust 开发的框架,可以让开发人员在上面实现自定义服务器。Pingora 的开发是基于 Cloudflare 多年的经验和需求,他们发现在代理中需要大量的业务逻辑代码而不是配置,并且用 Lua 或编写配置也不理想。此外,我们讨论了 Pingora 的开发过程中涉及的技术决策和挑战,以及 Cloudflare 的文化和招聘情况。

嘉宾

Yuchen

主播

时间点

00:03 Cloudflare Pingora 项目开发背后的故事与原因

04:53 以 Lua 嵌入 Nginx 的 openresty 为基础的强大编程工具

08:47 Lua 的特点和局限性分析

13:03 Nginx 的 C 开发和 Lua 维护的困难性及 ARM 上的问题

16:10 Indrax 架构的问题和需要解决的挑战

22:25 大家决定用 Rust 语言重新开发的决策过程

24:47 对于使用 Rust 语言开发的经验和公司中的实践

27:07 Rust 语言的开发和 API 设计

30:32 流量迁移和切换效果评估

32:53 开发速度改进和问题处理的讨论

37:15 Pingora 框架的开源故事及其 API 设计和扩展性

40:36 关于开源的讨论和决策过程,Rust 语言的优势以及担忧的原因

44:22 Nginx 的发展历程以及与 F5 的关系变动

46:06 Pingora 开源项目及其童话般的发展故事

50:18 Cloudflare 文化和招聘情况讨论

53:40 Cloudflare:科技领域无可匹敌的压倒性存在

链接

]]>
本期节目我们请到了继续和 Yuchen 聊聊 Cloudflare,以及他主导并开源网络框架 Pingora

Pingora 是一个使用 Rust 开发的框架,可以让开发人员在上面实现自定义服务器。Pingora 的开发是基于 Cloudflare 多年的经验和需求,他们发现在代理中需要大量的业务逻辑代码而不是配置,并且用 Lua 或编写配置也不理想。此外,我们讨论了 Pingora 的开发过程中涉及的技术决策和挑战,以及 Cloudflare 的文化和招聘情况。

嘉宾

Yuchen

主播

时间点

00:03 Cloudflare Pingora 项目开发背后的故事与原因

04:53 以 Lua 嵌入 Nginx 的 openresty 为基础的强大编程工具

08:47 Lua 的特点和局限性分析

13:03 Nginx 的 C 开发和 Lua 维护的困难性及 ARM 上的问题

16:10 Indrax 架构的问题和需要解决的挑战

22:25 大家决定用 Rust 语言重新开发的决策过程

24:47 对于使用 Rust 语言开发的经验和公司中的实践

27:07 Rust 语言的开发和 API 设计

30:32 流量迁移和切换效果评估

32:53 开发速度改进和问题处理的讨论

37:15 Pingora 框架的开源故事及其 API 设计和扩展性

40:36 关于开源的讨论和决策过程,Rust 语言的优势以及担忧的原因

44:22 Nginx 的发展历程以及与 F5 的关系变动

46:06 Pingora 开源项目及其童话般的发展故事

50:18 Cloudflare 文化和招聘情况讨论

53:40 Cloudflare:科技领域无可匹敌的压倒性存在

链接


爱发电上赞助

]]>
Sun, 30 Jun 2024 20:48:45 +0000
<![CDATA[Ep 46. 你知道『赛博佛祖』Cloudflare 吗?]]>https://pythonhunter.org/episodes/ep46https://pythonhunter.org/episodes/ep4658:54nofull本期节目我们请到了 Cloudflare 的 Yuchen,和大家聊了聊 Cloudflare 这家神奇的公司,以及它为什么被称为『赛博佛祖』。

嘉宾

Yuchen Wu

时间点

链接

]]>
本期节目我们请到了 Cloudflare 的 Yuchen,和大家聊了聊 Cloudflare 这家神奇的公司,以及它为什么被称为『赛博佛祖』。

嘉宾

Yuchen Wu

时间点

链接


爱发电上赞助

]]>
Thu, 16 May 2024 06:26:39 +0000
<![CDATA[大串台之一起聊聊新加坡]]>https://pythonhunter.org/episodes/singaporehttps://pythonhunter.org/episodes/singapore1:58:16nofulllaike9m 来到了新加坡!我们和 二分电台 的 2BAB 和 代码之外 的勾股在现场录制了一起节目,和 laike9m 畅聊了有关新加坡和加州的方方面面。

音频处理:西市独柳工作室 https://xishiduliu.com/

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

时间线:

  • 00:25 自我介绍
  • 03:00 天气开场
  • 06:57 新加坡简单轻松的感觉
  • 11:36 新加坡和加州基础教育
  • 21:56 新加坡和加州政府网站和公共服务
  • 32:59 新加坡和加州的饮食
  • 47:04 新加坡的家长式政府:HDB、民族大融合
  • 57:06 新加坡的生活成本
  • 1:06:00 新加坡的工作机会
  • 1:11:45 美国和加州的看病区别
  • 1:18:51 新加坡的休闲娱乐生活
  • 1:35:55 新加坡对健康的重视
  • 1:44:15 新加坡的技术氛围
  • 1:52:14 总结时间

参考链接:

二分电台:https://binary.2bab.me/

代码之外:https://bento.me/beyondcode

音频处理:西市独柳工作室 ( https://xishiduliu.com/ )

]]>
laike9m 来到了新加坡!我们和 二分电台 的 2BAB 和 代码之外 的勾股在现场录制了一起节目,和 laike9m 畅聊了有关新加坡和加州的方方面面。

音频处理:西市独柳工作室 https://xishiduliu.com/

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

时间线:

  • 00:25 自我介绍
  • 03:00 天气开场
  • 06:57 新加坡简单轻松的感觉
  • 11:36 新加坡和加州基础教育
  • 21:56 新加坡和加州政府网站和公共服务
  • 32:59 新加坡和加州的饮食
  • 47:04 新加坡的家长式政府:HDB、民族大融合
  • 57:06 新加坡的生活成本
  • 1:06:00 新加坡的工作机会
  • 1:11:45 美国和加州的看病区别
  • 1:18:51 新加坡的休闲娱乐生活
  • 1:35:55 新加坡对健康的重视
  • 1:44:15 新加坡的技术氛围
  • 1:52:14 总结时间

参考链接:

二分电台:https://binary.2bab.me/

代码之外:https://bento.me/beyondcode

音频处理:西市独柳工作室 ( https://xishiduliu.com/ )


爱发电上赞助

]]>
Mon, 15 Apr 2024 12:00:00 +0000
<![CDATA[Ep 45. 与 Tualatrix 聊聊独立开发的近况]]>https://pythonhunter.org/episodes/ep45https://pythonhunter.org/episodes/ep451:04:35nofull本期节目中,图拉鼎讲述了最近几年做独立开发的经历,良渚文化村吸引独立开发者聚集的原因,以及疯狂星期四的起源和发展。我们着重聊了聊为什么他会想到注册一个美国公司,以及所需的资质和流程。还聊到了微软/Google 对开发者的支持,以及独立创造者在产品开发中的作用和优势。

嘉宾

图拉鼎

主播

章节

  • 00:15 近况
  • 04:50 良渚文化村和玉鸟集
  • 12:26 疯狂星期四的开始
  • 26:08 为什么会想到注册美国公司,以及探索苹果生态之外的可能性
  • 43:40 微软对开发者的支持
  • 52:35 如何合法合规地接受用户付款
  • 59:58 推荐环节
  • 01:02:10 独立开发&小团队的作品为什么更好

链接

]]>
本期节目中,图拉鼎讲述了最近几年做独立开发的经历,良渚文化村吸引独立开发者聚集的原因,以及疯狂星期四的起源和发展。我们着重聊了聊为什么他会想到注册一个美国公司,以及所需的资质和流程。还聊到了微软/Google 对开发者的支持,以及独立创造者在产品开发中的作用和优势。

嘉宾

图拉鼎

主播

章节

  • 00:15 近况
  • 04:50 良渚文化村和玉鸟集
  • 12:26 疯狂星期四的开始
  • 26:08 为什么会想到注册美国公司,以及探索苹果生态之外的可能性
  • 43:40 微软对开发者的支持
  • 52:35 如何合法合规地接受用户付款
  • 59:58 推荐环节
  • 01:02:10 独立开发&小团队的作品为什么更好

链接


爱发电上赞助

]]>
Wed, 10 Jan 2024 09:04:02 +0000
<![CDATA[Ep 44. 与 Tualatrix 聊聊独立开发使用的技术栈]]>https://pythonhunter.org/episodes/ep44https://pythonhunter.org/episodes/ep4457:31no4444full本期节目中,图拉鼎分享了他的独立开发经验。从 Ubuntu Tweak 到 MarkMark,他鼓励更多人加入独立开发行列。我们聊到为什么他和其它一些独立开发者不约而同地选择 Python 作为后端语言。图拉鼎还分享了获取技术信息及避免踩坑的方法。

嘉宾

图拉鼎

主播

章节

  • 00:00:30 嘉宾 Tualatrix 自我介绍
  • 00:02:10 Tualatrix 的作品介绍
  • 00:05:08 主播们在使用的 Tualatrix 开发的作品
  • 00:13:30 如何接触到 Python 并入门 Django
  • 00:21:41 使用 Python 开发自己的内购系统
  • 00:36:41 内购系统所面临的问题
  • 00:40:57 原生应用使用 hotpatch 风险与挑战
  • 00:43:45 Tualatrix 是如何做技术选型的
  • 00:52:25 个人开发者如何适用自己的技术信息
  • 00:57:07 Ending 结尾

链接

]]>
本期节目中,图拉鼎分享了他的独立开发经验。从 Ubuntu Tweak 到 MarkMark,他鼓励更多人加入独立开发行列。我们聊到为什么他和其它一些独立开发者不约而同地选择 Python 作为后端语言。图拉鼎还分享了获取技术信息及避免踩坑的方法。

嘉宾

图拉鼎

主播

章节

  • 00:00:30 嘉宾 Tualatrix 自我介绍
  • 00:02:10 Tualatrix 的作品介绍
  • 00:05:08 主播们在使用的 Tualatrix 开发的作品
  • 00:13:30 如何接触到 Python 并入门 Django
  • 00:21:41 使用 Python 开发自己的内购系统
  • 00:36:41 内购系统所面临的问题
  • 00:40:57 原生应用使用 hotpatch 风险与挑战
  • 00:43:45 Tualatrix 是如何做技术选型的
  • 00:52:25 个人开发者如何适用自己的技术信息
  • 00:57:07 Ending 结尾

链接


爱发电上赞助

]]>
Tue, 02 Jan 2024 18:47:55 +0000
<![CDATA[Ep 43. 主播家的猫]]>https://pythonhunter.org/episodes/ep43https://pythonhunter.org/episodes/ep431:15:03nofull这期主播们聊了聊猫

链接

小白的猫

image.png

Manjusaka 的猫

manju2.jpg
manju3.JPG

laike9m 的猫

laike9m.jpeg

Adam 的猫

photo_2023-11-14_23-36-29.jpg
]]>
这期主播们聊了聊猫

链接

小白的猫

image.png

Manjusaka 的猫

manju2.jpg
manju3.JPG

laike9m 的猫

laike9m.jpeg

Adam 的猫

photo_2023-11-14_23-36-29.jpg

爱发电上赞助

]]>
Wed, 15 Nov 2023 08:10:00 +0000
<![CDATA[Ep 42. 和 Wey Gu 聊聊图数据库与开源公司工作]]>https://pythonhunter.org/episodes/ep42https://pythonhunter.org/episodes/ep421:36:02no4242full
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

嘉宾

主播

时间轴

  • 00:00:13 开场
  • 00:00:27 嘉宾自我介绍
  • 00:01:10 话题:图、图数据库介绍
  • 00:06:30 提问:知识图谱与外卖路径规划
  • 00:07:51 提问补充:知识图谱能不能当做传统的图数据库来用
  • 00:08:53 话题:微信用 NebulaGraph 做存储的例子
  • 00:10:32 提问:在好友关系查询上传统 SQL 与图数据库的区别
  • 00:11:56 提问补充:NebulaGraph 两点之间边的数量增加,查询成本以什么量级增加增加
  • 00:13:59 提问:不同 Graph Database(图数据库) 的查询语言是否存在一套标准类似 SQL
  • 00:19:21 提问:查询是直接写语句还是有 SDK,以及结果格式是什么样的
  • 00:20:21 提问:使用不同的图数据库针对同一个查询结果返回的数据结构是不是相同的
  • 00:23:13 提问:业界对于 GQL 的支持程度如何
  • 00:25:43 话题:图数据库与大模型的关系
  • 00:33:57 提问:图数据库是如何辅助大模型的
  • 00:39:00 提问:图数据库与大模型的结合需要用户有怎样的基础
  • 00:41:30 延展:知识图谱的建立和使用都可以与大模型结合
  • 00:43:50 延展:从 图数据库驱动的基础设施运维示例 延展
  • 00:53:18 延展:信涛的 Prometheus 之旅
  • 00:53:45 话题:在开源公司的工作体验
  • 01:18:18 话题:古老师的 开源面对面 播客
  • 01:26:00 固定话题:好物分享
  • 01:35:33 结束语

相关链接


]]>
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

嘉宾

主播

时间轴

  • 00:00:13 开场
  • 00:00:27 嘉宾自我介绍
  • 00:01:10 话题:图、图数据库介绍
  • 00:06:30 提问:知识图谱与外卖路径规划
  • 00:07:51 提问补充:知识图谱能不能当做传统的图数据库来用
  • 00:08:53 话题:微信用 NebulaGraph 做存储的例子
  • 00:10:32 提问:在好友关系查询上传统 SQL 与图数据库的区别
  • 00:11:56 提问补充:NebulaGraph 两点之间边的数量增加,查询成本以什么量级增加增加
  • 00:13:59 提问:不同 Graph Database(图数据库) 的查询语言是否存在一套标准类似 SQL
  • 00:19:21 提问:查询是直接写语句还是有 SDK,以及结果格式是什么样的
  • 00:20:21 提问:使用不同的图数据库针对同一个查询结果返回的数据结构是不是相同的
  • 00:23:13 提问:业界对于 GQL 的支持程度如何
  • 00:25:43 话题:图数据库与大模型的关系
  • 00:33:57 提问:图数据库是如何辅助大模型的
  • 00:39:00 提问:图数据库与大模型的结合需要用户有怎样的基础
  • 00:41:30 延展:知识图谱的建立和使用都可以与大模型结合
  • 00:43:50 延展:从 图数据库驱动的基础设施运维示例 延展
  • 00:53:18 延展:信涛的 Prometheus 之旅
  • 00:53:45 话题:在开源公司的工作体验
  • 01:18:18 话题:古老师的 开源面对面 播客
  • 01:26:00 固定话题:好物分享
  • 01:35:33 结束语

相关链接



爱发电上赞助

]]>
Sun, 15 Oct 2023 04:53:09 +0000
<![CDATA[[特别篇05] Manjusaka 和 laike9m 串台「代码之外」]]>https://pythonhunter.org/episodes/sp05https://pythonhunter.org/episodes/sp051:34:03nofull本期是 laike9m 和 Manjusaka 做客「代码之外」播客。我们聊了各种感兴趣的话题。

代码之外 Beyond Code 是一档由 GeekPluxRandy 共同主持的程序员闲聊播客节目。

时间点

01:27 暖场话题,Meta Threads

03:24 《捕蛇者说》的起源

18:17 遇到过的一些负评

20:14 比较满意哪一集

32:06 manjusaka 做公益引争论

42:02 保存数字遗产

01:10:56 和「名人」的交集

01:14:43 清华往事

01:26:48 如何看待别人给的经验建议

]]>
本期是 laike9m 和 Manjusaka 做客「代码之外」播客。我们聊了各种感兴趣的话题。

代码之外 Beyond Code 是一档由 GeekPluxRandy 共同主持的程序员闲聊播客节目。

时间点

01:27 暖场话题,Meta Threads

03:24 《捕蛇者说》的起源

18:17 遇到过的一些负评

20:14 比较满意哪一集

32:06 manjusaka 做公益引争论

42:02 保存数字遗产

01:10:56 和「名人」的交集

01:14:43 清华往事

01:26:48 如何看待别人给的经验建议


爱发电上赞助

]]>
Tue, 25 Jul 2023 06:09:44 +0000
<![CDATA[Ep 41. 和 Penguin 聊聊 CPython 优化和大厂编译器组的工作]]>https://pythonhunter.org/episodes/ep41https://pythonhunter.org/episodes/ep411:12:38nofull本期前半段内容(CPython 优化)较为硬核,如果你想直接听后半段(大厂编译器组的工作),可以直接跳到 00:38:50

嘉宾

Penguin

主播

链接

播客封面来自Anime Girls Holding Programming Books

]]>
本期前半段内容(CPython 优化)较为硬核,如果你想直接听后半段(大厂编译器组的工作),可以直接跳到 00:38:50

嘉宾

Penguin

主播

链接

播客封面来自Anime Girls Holding Programming Books


爱发电上赞助

]]>
Tue, 18 Jul 2023 06:52:34 +0000
<![CDATA[Ep 40. Rust 和 PyO3:让 Python 再次伟大 🦀 ❤️ 🐍]]>https://pythonhunter.org/episodes/ep40https://pythonhunter.org/episodes/ep401:17:27nofull嘉宾

Messense

主播

链接

  • PyO3

  • PyO3 有哪些应用?

    • polars: Fast multi-threaded DataFrame library in Rust | Python | Node.js.
    • pydantic-core: Core validation logic for pydantic written in Rust.
    • cryptography: Python cryptography library with some functionality in Rust.
    • orjson: Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy
  • PyO3 前身:rust-cpython

  • Maturin: Build and publish crates with pyo3, rust-cpython and cffi bindings as well as rust binaries as python packages

  • What Are Python Wheels and Why Should You Care?

  • PEP 517 – A build-system independent format for source trees

  • Ruff: An extremely fast Python linter, written in Rust.

  • typos: Source code spell checker

  • ChatGPT 写的 Rust 调用 Python C-API 的例子

    use std::os::raw::{c_char, c_int};
    use std::ffi::CString;
    use libc::{c_double, c_void};
    #[link(name = "python3.8")]
    extern "C" {
    fn Py_Initialize();
    fn Py_Finalize();
    fn Py_BuildValue(format: *const c_char, ...) -> *mut c_void;
    }
    fn main() {
    unsafe {
    // 初始化 Python 解释器
    Py_Initialize();
    // 构建一个 Python 元组对象,并打印它
    let x = 1.23 as c_double;
    let y = 4.56 as c_double;
    let format = CString::new("dd").unwrap().as_ptr();
    let result = Py_BuildValue(format, x, y);
    let s = CString::from_raw(result as *mut c_char).into_string().unwrap();
    println!("{}", s);
    // 关闭 Python 解释器
    Py_Finalize();
    }
    }
  • pyo3-ffi: Python-API bindings for the PyO3 ecosystem

  • 在 PyO3 里通过 allow_threads 关掉 Python GIL

  • pybind11 — Seamless operability between C++11 and Python

  • Cython

  • CFFI: C Foreign Function Interface for Python. Interact with almost any C code from Python, based on C-like declarations that you can often copy-paste from header files or documentation.

  • zig cc: a Powerful Drop-In Replacement for GCC/Clang

  • wechatpy: 微信公众平台第三方 Python SDK

  • OrbStack: Fast, light, simple Docker & Linux on macOS

  • FancyWM - a dynamic tiling window manager for Windows 10/11

  • CSAPP: Computer Systems: A Programmer's Perspective

  • APUE: Advanced Programming in the UNIX® Environment

  • 提到的读书撕书的灵感来自于:李敖先生

  • 吴恩达 prompt engineering 课程:
    ChatGPT Prompt Engineering for Developers

  • Kiwi 浏览器

]]>
嘉宾

Messense

主播

链接

  • PyO3

  • PyO3 有哪些应用?

    • polars: Fast multi-threaded DataFrame library in Rust | Python | Node.js.
    • pydantic-core: Core validation logic for pydantic written in Rust.
    • cryptography: Python cryptography library with some functionality in Rust.
    • orjson: Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy
  • PyO3 前身:rust-cpython

  • Maturin: Build and publish crates with pyo3, rust-cpython and cffi bindings as well as rust binaries as python packages

  • What Are Python Wheels and Why Should You Care?

  • PEP 517 – A build-system independent format for source trees

  • Ruff: An extremely fast Python linter, written in Rust.

  • typos: Source code spell checker

  • ChatGPT 写的 Rust 调用 Python C-API 的例子

    use std::os::raw::{c_char, c_int};
    use std::ffi::CString;
    use libc::{c_double, c_void};
    #[link(name = "python3.8")]
    extern "C" {
    fn Py_Initialize();
    fn Py_Finalize();
    fn Py_BuildValue(format: *const c_char, ...) -> *mut c_void;
    }
    fn main() {
    unsafe {
    // 初始化 Python 解释器
    Py_Initialize();
    // 构建一个 Python 元组对象,并打印它
    let x = 1.23 as c_double;
    let y = 4.56 as c_double;
    let format = CString::new("dd").unwrap().as_ptr();
    let result = Py_BuildValue(format, x, y);
    let s = CString::from_raw(result as *mut c_char).into_string().unwrap();
    println!("{}", s);
    // 关闭 Python 解释器
    Py_Finalize();
    }
    }
  • pyo3-ffi: Python-API bindings for the PyO3 ecosystem

  • 在 PyO3 里通过 allow_threads 关掉 Python GIL

  • pybind11 — Seamless operability between C++11 and Python

  • Cython

  • CFFI: C Foreign Function Interface for Python. Interact with almost any C code from Python, based on C-like declarations that you can often copy-paste from header files or documentation.

  • zig cc: a Powerful Drop-In Replacement for GCC/Clang

  • wechatpy: 微信公众平台第三方 Python SDK

  • OrbStack: Fast, light, simple Docker & Linux on macOS

  • FancyWM - a dynamic tiling window manager for Windows 10/11

  • CSAPP: Computer Systems: A Programmer's Perspective

  • APUE: Advanced Programming in the UNIX® Environment

  • 提到的读书撕书的灵感来自于:李敖先生

  • 吴恩达 prompt engineering 课程:
    ChatGPT Prompt Engineering for Developers

  • Kiwi 浏览器


爱发电上赞助

]]>
Sat, 13 May 2023 06:23:59 +0000
<![CDATA[Ep 39. 和 Alex 聊聊向量数据库与职业规划]]>https://pythonhunter.org/episodes/ep39https://pythonhunter.org/episodes/ep391:18:45nofull
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

嘉宾

主播

时间轴

  • 00:00:30 开场
  • 00:00:59 嘉宾自我介绍
  • 00:02:55 [第一部分]向量数据库 milvus 简介
  • 00:07:35 向量数据库的「向量」代表什么以及其应用场景
  • 00:14:16 原始数据到向量数据的转化
  • 00:15:42 不同方式产生的向量数据格式是否相同、能否混用
  • 00:19:04 milvus 存储向量数据的方式以及应用场景描述
  • 00:25:59 怎样利用 milvus 进行向量数据查找
  • 00:27:46 向量数据库存在的必要性
  • 00:33:56 milvus 商业化道路讨论
  • 00:41:57 [第二部分]嘉宾加入当前公司的契机是什么
  • 00:52:54 在三类不同阶段的公司工作分别的工作体验是怎样的
  • 00:53:41 小白:未融资的初创公司
  • 00:57:39 Alex:已经融资进入正轨的创业公司
  • 01:04:02 laike9m:Google
  • 01:08:30 Alex:one more thing
  • 01:12:13 好物分享
  • 01:17:04 结语

相关链接


]]>
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

嘉宾

主播

时间轴

  • 00:00:30 开场
  • 00:00:59 嘉宾自我介绍
  • 00:02:55 [第一部分]向量数据库 milvus 简介
  • 00:07:35 向量数据库的「向量」代表什么以及其应用场景
  • 00:14:16 原始数据到向量数据的转化
  • 00:15:42 不同方式产生的向量数据格式是否相同、能否混用
  • 00:19:04 milvus 存储向量数据的方式以及应用场景描述
  • 00:25:59 怎样利用 milvus 进行向量数据查找
  • 00:27:46 向量数据库存在的必要性
  • 00:33:56 milvus 商业化道路讨论
  • 00:41:57 [第二部分]嘉宾加入当前公司的契机是什么
  • 00:52:54 在三类不同阶段的公司工作分别的工作体验是怎样的
  • 00:53:41 小白:未融资的初创公司
  • 00:57:39 Alex:已经融资进入正轨的创业公司
  • 01:04:02 laike9m:Google
  • 01:08:30 Alex:one more thing
  • 01:12:13 好物分享
  • 01:17:04 结语

相关链接



爱发电上赞助

]]>
Mon, 23 Jan 2023 11:30:53 +0000
<![CDATA[Ep 38. 和 Frost Ming 聊聊 PDM]]>https://pythonhunter.org/episodes/ep38https://pythonhunter.org/episodes/ep381:31:30nofullPDM(Python Development Manager)是由 Frost Ming 开发的一款 Python 包管理工具。

本期由于一些技术原因,声音效果可能欠佳,还请各位听众见谅。

嘉宾

Frost Ming

主播

章节

  • 00:00:19 PDM 介绍
  • 00:03:13 Python 包管理的历史, pyproject.toml, lockfile
  • 00:11:48 Wheel 格式, Python 打包和安装的过程
  • 00:20:00 为什么用户应该选择 PDM?
  • 00:36:15 为什么 PDM 2.0 不再默认开启 PEP 582
  • 00:41:17 Python 虚拟环境有哪些缺陷
  • 00:50:15 PDM 2.0 里的改进和新功能
  • 1:04:38 开发 PDM 过程中值得一说的事
  • 1:18:30 作为开源库维护者的经验

链接

]]>
PDM(Python Development Manager)是由 Frost Ming 开发的一款 Python 包管理工具。

本期由于一些技术原因,声音效果可能欠佳,还请各位听众见谅。

嘉宾

Frost Ming

主播

章节

  • 00:00:19 PDM 介绍
  • 00:03:13 Python 包管理的历史, pyproject.toml, lockfile
  • 00:11:48 Wheel 格式, Python 打包和安装的过程
  • 00:20:00 为什么用户应该选择 PDM?
  • 00:36:15 为什么 PDM 2.0 不再默认开启 PEP 582
  • 00:41:17 Python 虚拟环境有哪些缺陷
  • 00:50:15 PDM 2.0 里的改进和新功能
  • 1:04:38 开发 PDM 过程中值得一说的事
  • 1:18:30 作为开源库维护者的经验

链接


爱发电上赞助

]]>
Sat, 24 Dec 2022 07:17:41 +0000
<![CDATA[Ep 37. 和 Gray 聊聊工程化学习(上)]]>https://pythonhunter.org/episodes/ep-36-he-grey-liao-liao-gong-cheng-hua-xue-xi-sh-2683a5cahttps://pythonhunter.org/episodes/ep-36-he-grey-liao-liao-gong-cheng-hua-xue-xi-sh-2683a5ca1:11:52nofull本期是与 Gray 访谈的上期,我们聊了聊他的「工程化」学习

嘉宾

GrayCode

主播

时间线

  • 00:18 嘉宾介绍
  • 02:15 Gray 在非洲做土木的经历
  • 06:14 Gray 在转行时遇到的困难与挑战
  • 09:49 怎么算工程能力
  • 23:32 工程能力的一些表现是什么
  • 33:40 我们如何选取一个合适的抽象度
]]>
本期是与 Gray 访谈的上期,我们聊了聊他的「工程化」学习

嘉宾

GrayCode

主播

时间线

  • 00:18 嘉宾介绍
  • 02:15 Gray 在非洲做土木的经历
  • 06:14 Gray 在转行时遇到的困难与挑战
  • 09:49 怎么算工程能力
  • 23:32 工程能力的一些表现是什么
  • 33:40 我们如何选取一个合适的抽象度

爱发电上赞助

]]>
Mon, 11 Jul 2022 06:59:04 +0000
<![CDATA[Ep 36. 和 lepture 聊聊在日本的工作与生活]]>https://pythonhunter.org/episodes/ep36https://pythonhunter.org/episodes/ep3653:40nofull本期是 lepture 访谈的下期,于 2020 年末录制。我们聊了聊他的工作流,以及在日本工作与生活的体验。

嘉宾

lepture

主播

]]>
本期是 lepture 访谈的下期,于 2020 年末录制。我们聊了聊他的工作流,以及在日本工作与生活的体验。

嘉宾

lepture

主播


爱发电上赞助

]]>
Mon, 28 Mar 2022 00:35:55 +0000
<![CDATA[Ep 35. 和 Gray 聊聊那些年遇到的神奇 Bug]]>https://pythonhunter.org/episodes/ep35https://pythonhunter.org/episodes/ep351:04:50no113535full
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

最近我们和 Gray 聊了聊 Debug,会分成上下两期,这一期我们主要聊了一些遇到的神奇 bug,以及解决的思路,下一期,我们会聊 debug 的一些工具。

嘉宾

Gray

主播

时间线

  • 03:02 Gray 遇到的 HTTP 下载文件的 bug
  • 10:59 Xintao 遇到的 HTTP 跳转 HTTPS 问题
  • 15:37 Manjusaka 遇到的 Python Asyncio 的问题
  • 24:08 Laike9m: 不要浪费太多时间在一个 bug 上,即时寻求帮助
  • 25:20 Xintao 语雀编辑器的一个神奇的 bug
  • 33:40 监控的 P99 毛刺现象
  • 35:30 uwsgi 中 hping3 信号丢失的一个bug
  • 42:30 推荐 git 的 bisect 工具
  • 44:52 laike9m 遇到的 latency 问题
  • 52:43 有关 Python 的 malloc 的一个问题
  • 57:24 Golang 1.12 内存泄漏?
  • 60:00 Python 中 re.complie cache 的行为问题

链接

]]>
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

最近我们和 Gray 聊了聊 Debug,会分成上下两期,这一期我们主要聊了一些遇到的神奇 bug,以及解决的思路,下一期,我们会聊 debug 的一些工具。

嘉宾

Gray

主播

时间线

  • 03:02 Gray 遇到的 HTTP 下载文件的 bug
  • 10:59 Xintao 遇到的 HTTP 跳转 HTTPS 问题
  • 15:37 Manjusaka 遇到的 Python Asyncio 的问题
  • 24:08 Laike9m: 不要浪费太多时间在一个 bug 上,即时寻求帮助
  • 25:20 Xintao 语雀编辑器的一个神奇的 bug
  • 33:40 监控的 P99 毛刺现象
  • 35:30 uwsgi 中 hping3 信号丢失的一个bug
  • 42:30 推荐 git 的 bisect 工具
  • 44:52 laike9m 遇到的 latency 问题
  • 52:43 有关 Python 的 malloc 的一个问题
  • 57:24 Golang 1.12 内存泄漏?
  • 60:00 Python 中 re.complie cache 的行为问题

链接


爱发电上赞助

]]>
Thu, 13 Jan 2022 08:27:48 +0000
<![CDATA[Ep 34. 和 lepture 聊聊他的产品,以及做个人开发的体验]]>https://pythonhunter.org/episodes/ep34https://pythonhunter.org/episodes/ep3453:40nofull
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

本期我们和 lepture 聊了聊他的两个项目:Typlog 和 Authlib。lepture 分享了他作为个人开发者的一些经验。本期于 2020 年录制,有些信息可能已经过时。关于这两个项目的情况请以官网为准。

嘉宾

lepture

主播

链接

]]>
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

本期我们和 lepture 聊了聊他的两个项目:Typlog 和 Authlib。lepture 分享了他作为个人开发者的一些经验。本期于 2020 年录制,有些信息可能已经过时。关于这两个项目的情况请以官网为准。

嘉宾

lepture

主播

链接


爱发电上赞助

]]>
Wed, 01 Dec 2021 05:40:10 +0000
<![CDATA[Ep 33. 和李辉聊聊自由职业(下)]]>https://pythonhunter.org/episodes/ep33https://pythonhunter.org/episodes/ep331:10:23nofull
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

嘉宾

主播

时间线

链接

P.S. 本期播客埋了一个音乐相关的彩蛋。

P.P.S 李辉两次提到的「稿税」应为「版税」。

]]>
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

嘉宾

主播

时间线

链接

P.S. 本期播客埋了一个音乐相关的彩蛋。

P.P.S 李辉两次提到的「稿税」应为「版税」。


爱发电上赞助

]]>
Fri, 08 Oct 2021 06:16:46 +0000
<![CDATA[Ep 32. 和李辉聊聊自由职业(上)]]>https://pythonhunter.org/episodes/ep32https://pythonhunter.org/episodes/ep3253:49nofull
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

嘉宾

主播

时间线

链接

]]>
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

嘉宾

主播

时间线

链接


爱发电上赞助

]]>
Sat, 11 Sep 2021 06:01:36 +0000
<![CDATA[Ep 31. 架构设计与 12fallacy(下)]]>https://pythonhunter.org/episodes/ep31https://pythonhunter.org/episodes/ep311:09:21nofull
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

嘉宾

Hey,各位听众,本期我们邀请到的两位嘉宾的团队也在寻找优秀的工程师一起工作,如果你感兴趣,欢迎通过邮件与他们联系

主播

时间线

相关链接

]]>
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

嘉宾

Hey,各位听众,本期我们邀请到的两位嘉宾的团队也在寻找优秀的工程师一起工作,如果你感兴趣,欢迎通过邮件与他们联系

主播

时间线

相关链接


爱发电上赞助

]]>
Fri, 23 Jul 2021 17:36:09 +0000
<![CDATA[Ep 30. 和李辉聊聊 Flask 2.0]]>https://pythonhunter.org/episodes/ep30https://pythonhunter.org/episodes/ep301:13:40nofull
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

嘉宾

主播

Timeline

  • 00:00:22 开始
  • 00:00:37 嘉宾介绍
  • 00:02:03 学习 Flask 和 Python 的经历
  • 00:04:24 参与开源的经历——写作带来的「副作用」
  • 00:12:28 Pallets 和 Flask 的 logo 到底是什么?
  • 00:16:31 在火星上的 Flask 项目
  • 00:18:52 失去维护的开源项目
  • 00:25:12 Flask Community Workgroup
  • 00:26:18 Flask 扩展选择困难综合症
  • 00:29:17 大而全 VS 小而精+一堆扩展
  • 00:31:20 HelloFlask 社区,兼谈如何正确提问
  • 00:38:31 小白举手:如果我想参与一个已经成熟迭代的开源项目可以从哪些方面入手?
  • 00:41:07 Flask 2.0 发布
  • 00:41:44 New feature:嵌套蓝本
  • 00:45:04 New feature:async 支持
  • 00:48:19 温老师谈 ASGI
  • 00:51:46 New feature:快捷路由装饰器
  • 00:57:59 Flask 和 FastAPI 的对比争议
  • 01:00:46 FastAPI 的营销和相关讨论
  • 01:10:59 Flask 改进意见收集

Flask 用户调查问卷

请访问

链接

]]>
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

嘉宾

主播

Timeline

  • 00:00:22 开始
  • 00:00:37 嘉宾介绍
  • 00:02:03 学习 Flask 和 Python 的经历
  • 00:04:24 参与开源的经历——写作带来的「副作用」
  • 00:12:28 Pallets 和 Flask 的 logo 到底是什么?
  • 00:16:31 在火星上的 Flask 项目
  • 00:18:52 失去维护的开源项目
  • 00:25:12 Flask Community Workgroup
  • 00:26:18 Flask 扩展选择困难综合症
  • 00:29:17 大而全 VS 小而精+一堆扩展
  • 00:31:20 HelloFlask 社区,兼谈如何正确提问
  • 00:38:31 小白举手:如果我想参与一个已经成熟迭代的开源项目可以从哪些方面入手?
  • 00:41:07 Flask 2.0 发布
  • 00:41:44 New feature:嵌套蓝本
  • 00:45:04 New feature:async 支持
  • 00:48:19 温老师谈 ASGI
  • 00:51:46 New feature:快捷路由装饰器
  • 00:57:59 Flask 和 FastAPI 的对比争议
  • 01:00:46 FastAPI 的营销和相关讨论
  • 01:10:59 Flask 改进意见收集

Flask 用户调查问卷

请访问

链接


爱发电上赞助

]]>
Fri, 16 Jul 2021 06:31:25 +0000
<![CDATA[Ep 29. 架构设计与 12fallacy(上)]]>https://pythonhunter.org/episodes/taowen-vol1https://pythonhunter.org/episodes/taowen-vol11:17:29nofull
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

嘉宾

主播

时间线

相关链接

]]>
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

嘉宾

主播

时间线

相关链接


爱发电上赞助

]]>
Sat, 12 Jun 2021 10:38:28 +0000
<![CDATA[Ep 28. gRPC and Python]]>https://pythonhunter.org/episodes/ep28https://pythonhunter.org/episodes/ep281:16:11nofull
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

嘉宾

主播

时间线

相关链接

[23]: https://www.douban.com/search?q=%E5%8D%81%E4%B8%89%E9%82%80

]]>
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

嘉宾

主播

时间线

相关链接

[23]: https://www.douban.com/search?q=%E5%8D%81%E4%B8%89%E9%82%80


爱发电上赞助

]]>
Mon, 12 Apr 2021 07:55:12 +0000
<![CDATA[Ep 27. 聊聊焦虑]]>https://pythonhunter.org/episodes/ep27https://pythonhunter.org/episodes/ep2748:42nofull
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

时间轴:

  • 01:17 三地疫情
  • 08:00 Google work from home 政策
  • 16:00 Manjusaka的吐槽
  • 19:00 Laike9m 的吐槽
  • 27:00 我们与抑郁症
  • 30:00 Manjusaka性侵经历
  • 33:00 对于抑郁症的建议
  • 41:00 Laike9m 推荐的会议
  • 56:00 总结时间

资料:

]]>
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

时间轴:

  • 01:17 三地疫情
  • 08:00 Google work from home 政策
  • 16:00 Manjusaka的吐槽
  • 19:00 Laike9m 的吐槽
  • 27:00 我们与抑郁症
  • 30:00 Manjusaka性侵经历
  • 33:00 对于抑郁症的建议
  • 41:00 Laike9m 推荐的会议
  • 56:00 总结时间

资料:


爱发电上赞助

]]>
Sat, 03 Apr 2021 11:15:40 +0000
<![CDATA[Ep 26. 和 xintao 聊聊新加坡的工作与生活]]>https://pythonhunter.org/episodes/ep26https://pythonhunter.org/episodes/ep261:15:40nofull
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

主播

时间轴

链接

]]>
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

主播

时间轴

链接


爱发电上赞助

]]>
Sun, 07 Mar 2021 20:53:55 +0000
<![CDATA[[特别篇 04] - 四位主播的无主题闲聊]]>https://pythonhunter.org/episodes/sp04https://pythonhunter.org/episodes/sp041:20:15nofull本期嘉宾:

本期是去年七月份录制的一期。四位主播聚在一起,聊聊他们最近的生活,以及对未来的打算。失踪主播小白康复归来,让我们撒花🎉🎉🎉!

本期资料链接:

  1. iredis
  2. GitHub 北极计划
  3. Cyberbrain
  4. Beancount
  5. ProcMon-for-Linux
  6. youtube-dl
  7. you-get

节目中关于 Cyberbrain 的一些描述已经过时,故补充在这里:

]]>
本期嘉宾:

本期是去年七月份录制的一期。四位主播聚在一起,聊聊他们最近的生活,以及对未来的打算。失踪主播小白康复归来,让我们撒花🎉🎉🎉!

本期资料链接:

  1. iredis
  2. GitHub 北极计划
  3. Cyberbrain
  4. Beancount
  5. ProcMon-for-Linux
  6. youtube-dl
  7. you-get

节目中关于 Cyberbrain 的一些描述已经过时,故补充在这里:


爱发电上赞助

]]>
Wed, 03 Mar 2021 09:48:31 +0000
<![CDATA[Ep 25. 个人知识管理体系系列 - 输出篇]]>https://pythonhunter.org/episodes/ep25https://pythonhunter.org/episodes/ep251:02:32nofull
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

本期是个人知识管理体系系列的最后一期。我们讨论了关于“输出”的方方面面,包括输出的目的、方式、工具、意义,以及一些实用的关于写作的建议。欢迎收听。

本系列导航

嘉宾

主播

时间轴

  • 02:10 为什么要输出?
  • 03:00 通过何种方式进行输出?
  • 14:35 为什么 GitHub 是最值得信赖的内容托管平台?
  • 21:20 用什么工具进行写作?
  • 30:20 如何基于内化进行输出?
  • 43:45 如果想开始写作,要怎么做?
  • 48:40 写作的意义
  • 50:00 推荐环节

相关链接

]]>
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

本期是个人知识管理体系系列的最后一期。我们讨论了关于“输出”的方方面面,包括输出的目的、方式、工具、意义,以及一些实用的关于写作的建议。欢迎收听。

本系列导航

嘉宾

主播

时间轴

  • 02:10 为什么要输出?
  • 03:00 通过何种方式进行输出?
  • 14:35 为什么 GitHub 是最值得信赖的内容托管平台?
  • 21:20 用什么工具进行写作?
  • 30:20 如何基于内化进行输出?
  • 43:45 如果想开始写作,要怎么做?
  • 48:40 写作的意义
  • 50:00 推荐环节

相关链接


爱发电上赞助

]]>
Sat, 16 Jan 2021 07:00:26 +0000
<![CDATA[Ep 24. 个人知识管理体系系列 - 内化篇]]>https://pythonhunter.org/episodes/ep24https://pythonhunter.org/episodes/ep2450:51nofull
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

上一期的节目中我们和佳圆讨论了如何获取知识,如何预处理知识。在本期的节目中我们主要讨论如何将这些知识转化成自己理解的东西,介绍了一些内化的工具和方法,如何更有效率地复习自己的知识等。

如果您喜欢本期节目,欢迎关注捕蛇者说,我们本系列下一期节目将介绍如何将知识输出。

本系列导航

嘉宾

主播

时间轴

  • 00:30 开场
  • 01:36 什么是内化?
  • 03:04 工具介绍
  • 05:20 笔记和内化的区别是什么?
  • 10:00 平时做“内化”部分的流程
  • 20:22 Filter 的功能
  • 24:00 如何将知识转化成自己的东西?
  • 27:40 给完全不懂的人讲解自己的知识
  • 33:40 Ted Nelson 有关“链接”的理解
  • 36:00 这些知识的标签如何设定?
  • 40:38 使用anki来复习
  • 42:00 Evernote 的迁移问题
  • 43:00 如果没有 Roam Research 怎么做知识内化?
  • 46:40 对于复述的看法?

相关链接

  1. Draft Notes:草稿笔记,例如上面阅读过程中在 Apple Notes 中记录的笔记、Highlights 等都是草稿笔记,需要进行进一步处理
  2. Literature Notes:可以理解为阅读过程中记录的笔记,由草稿笔记整理而来,在 Roam Research 中的一个例子:
  3. Permanent Notes,翻译成永久笔记?基于 literature notes 得来的笔记,这种类型的笔记有几个特点:
    • atomic
    • self contained
    • linked
    • 例子:
]]>
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

上一期的节目中我们和佳圆讨论了如何获取知识,如何预处理知识。在本期的节目中我们主要讨论如何将这些知识转化成自己理解的东西,介绍了一些内化的工具和方法,如何更有效率地复习自己的知识等。

如果您喜欢本期节目,欢迎关注捕蛇者说,我们本系列下一期节目将介绍如何将知识输出。

本系列导航

嘉宾

主播

时间轴

  • 00:30 开场
  • 01:36 什么是内化?
  • 03:04 工具介绍
  • 05:20 笔记和内化的区别是什么?
  • 10:00 平时做“内化”部分的流程
  • 20:22 Filter 的功能
  • 24:00 如何将知识转化成自己的东西?
  • 27:40 给完全不懂的人讲解自己的知识
  • 33:40 Ted Nelson 有关“链接”的理解
  • 36:00 这些知识的标签如何设定?
  • 40:38 使用anki来复习
  • 42:00 Evernote 的迁移问题
  • 43:00 如果没有 Roam Research 怎么做知识内化?
  • 46:40 对于复述的看法?

相关链接

  1. Draft Notes:草稿笔记,例如上面阅读过程中在 Apple Notes 中记录的笔记、Highlights 等都是草稿笔记,需要进行进一步处理
  2. Literature Notes:可以理解为阅读过程中记录的笔记,由草稿笔记整理而来,在 Roam Research 中的一个例子:
  3. Permanent Notes,翻译成永久笔记?基于 literature notes 得来的笔记,这种类型的笔记有几个特点:
    • atomic
    • self contained
    • linked
    • 例子:

爱发电上赞助

]]>
Sun, 10 Jan 2021 07:36:33 +0000
<![CDATA[Ep 23. 个人知识管理体系系列 - 输入篇]]>https://pythonhunter.org/episodes/ep23https://pythonhunter.org/episodes/ep231:25:11nofull
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

本系列导航

嘉宾

主播

时间轴

相关链接

几个搜索 GitHub stars 的小工具

[29]: https://www.listennotes.com/zh-hans/

]]>
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

本系列导航

嘉宾

主播

时间轴

相关链接

几个搜索 GitHub stars 的小工具

[29]: https://www.listennotes.com/zh-hans/


爱发电上赞助

]]>
Fri, 01 Jan 2021 13:51:11 +0000
<![CDATA[Ep 22. 和高天聊聊 VizTracer]]>https://pythonhunter.org/episodes/ep22https://pythonhunter.org/episodes/ep221:39:19nofull推广

PyCon China 2020 正式启动

  • 主题演讲和闪电演讲征稿时间:

    2020 年 10 月 29 日 - 2020 年 11 月 7 日(实际截止日期可延后)

  • 会议举办时间:

    2020 年 11 月 28 日 - 11 月 29 日

您可以投稿时长为 45 分钟的主题演讲,或者时长为 10 分钟的闪电演讲,根据您自己评估的内容所需时间来决定。需要注意的是,议题分享时间包含 Q&A 时间。

欢迎通过下面的链接报名参加我们的主题演讲 / 闪电演讲:https://jinshuju.net/f/zWuGxB

主播

嘉宾

高天

本期聊的项目

VizTracer

在线预览: http://www.minkoder.com/viztracer/result.html

系列介绍文章:

链接

]]>
推广

PyCon China 2020 正式启动

  • 主题演讲和闪电演讲征稿时间:

    2020 年 10 月 29 日 - 2020 年 11 月 7 日(实际截止日期可延后)

  • 会议举办时间:

    2020 年 11 月 28 日 - 11 月 29 日

您可以投稿时长为 45 分钟的主题演讲,或者时长为 10 分钟的闪电演讲,根据您自己评估的内容所需时间来决定。需要注意的是,议题分享时间包含 Q&A 时间。

欢迎通过下面的链接报名参加我们的主题演讲 / 闪电演讲:https://jinshuju.net/f/zWuGxB

主播

嘉宾

高天

本期聊的项目

VizTracer

在线预览: http://www.minkoder.com/viztracer/result.html

系列介绍文章:

链接


爱发电上赞助

]]>
Wed, 04 Nov 2020 08:56:21 +0000
<![CDATA[Ep 21. 捕蛇者说 × Teahour:和 Terry 畅聊播客制作,远程工作以及公司文化(下)]]>https://pythonhunter.org/episodes/ep21https://pythonhunter.org/episodes/ep211:03:55nofullHi 大家好,这一期我们请到了 Teahour 的主播 Terry,跟我们聊了一些和程序员相关的话题,比如远程工作、创业、招聘、播客、跨界、Ruby 社区等等。

Teahour 是一档面向程序员的高质量播客,欢迎大家收听:https://teahour.fm/

本期分成上下两期,这是下期。

赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

本期嘉宾

Terry: Nervos 创始人 & CEO

本期主持

章节

  • 00:00 大公司的晋升机制
  • 05:20 Valve 的员工手册
  • 11:40 我如何把薪水从50 人民币/ 天提升到100 美元/ 小时的?
  • 23:00 长大了却不敢表达了?
  • 30:00 大话传奇人物DHH
  • 32:00 聊聊招聘
  • 40:00 推荐环节

相关链接

]]>
Hi 大家好,这一期我们请到了 Teahour 的主播 Terry,跟我们聊了一些和程序员相关的话题,比如远程工作、创业、招聘、播客、跨界、Ruby 社区等等。

Teahour 是一档面向程序员的高质量播客,欢迎大家收听:https://teahour.fm/

本期分成上下两期,这是下期。

赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

本期嘉宾

Terry: Nervos 创始人 & CEO

本期主持

章节

  • 00:00 大公司的晋升机制
  • 05:20 Valve 的员工手册
  • 11:40 我如何把薪水从50 人民币/ 天提升到100 美元/ 小时的?
  • 23:00 长大了却不敢表达了?
  • 30:00 大话传奇人物DHH
  • 32:00 聊聊招聘
  • 40:00 推荐环节

相关链接


爱发电上赞助

]]>
Thu, 29 Oct 2020 16:06:39 +0000
<![CDATA[Ep 20. 捕蛇者说 × Teahour:和 Terry 畅聊播客制作,远程工作以及公司文化(上)]]>https://pythonhunter.org/episodes/ep20https://pythonhunter.org/episodes/ep2056:30nofullHi 大家好,这一期我们请到了 Teahour 的主播 Terry,跟我们聊了一些和程序员相关的话题,比如远程工作、创业、招聘、播客、跨界、Ruby 社区等等。

Teahour 是一档面向程序员的高质量播客,欢迎大家收听:https://teahour.fm/

本期分成上下两期,这是上期。

赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

本期嘉宾

Terry: Nervos 创始人 & CEO

本期主持

章节

链接

]]>
Hi 大家好,这一期我们请到了 Teahour 的主播 Terry,跟我们聊了一些和程序员相关的话题,比如远程工作、创业、招聘、播客、跨界、Ruby 社区等等。

Teahour 是一档面向程序员的高质量播客,欢迎大家收听:https://teahour.fm/

本期分成上下两期,这是上期。

赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

本期嘉宾

Terry: Nervos 创始人 & CEO

本期主持

章节

链接


爱发电上赞助

]]>
Thu, 29 Oct 2020 16:05:38 +0000
<![CDATA[Ep 19. 如何成为互联网校招 offer 收割机?]]>https://pythonhunter.org/episodes/ep19https://pythonhunter.org/episodes/ep192:07:35nofull
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

嘉宾

主播

laike9m

时间轴

链接

题图来源:BigStockPhoto.com

]]>
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

嘉宾

主播

laike9m

时间轴

链接

题图来源:BigStockPhoto.com


爱发电上赞助

]]>
Sun, 11 Oct 2020 09:17:11 +0000
<![CDATA[Ep 18. 竟然有人在前端做科学计算?]]>https://pythonhunter.org/episodes/18https://pythonhunter.org/episodes/181:22:33nofull
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

本期嘉宾

本期主播

时间轴

  • 00:00:28 嘉宾介绍
  • 00:01:26 立党开场快板
  • 00:02:02 hedgehog-lab 介绍
  • 00:03:43 创建 hedgehog-lab 的初衷
  • 00:06:35 MATLAB 和 Python 在科学计算领域如何走向成功的
  • 00:10:02 Python 和 NumPy 是谁成就了谁
  • 00:10:53 NumPy 和 MATLAB 的简单对比以及 MATLAB 生态的相关讨论
  • 00:13:31 主播们使用 MATLAB 的一些经历
  • 00:16:15 为什么 Python 不是最适合初学者学习的编程语言
  • 00:29:18 hedgehog-lab 的起源
  • 00:30:58 聊一聊实现矩阵运算的原理
  • 00:34:27 什么是符号计算
  • 00:36:01 hedgehog-lab 中使用到的一些库和工具
  • 00:39:50 hedgehog-lab 未来的规划
  • 00:45:41 hedgehog-lab 的计算速度是和什么相关的
  • 00:48:17 关于 hedgehog-lab 使用场景和部署方式的讨论
  • 00:55:14 开源社区治理相关讨论
  • 01:05:50 hedgehog-lab 未来形态的讨论
  • 01:09:59 推荐环节

相关资料

[32]: https://music.163.com/#/song?id=28267550

]]>
赞助logo

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

本期嘉宾

本期主播

时间轴

  • 00:00:28 嘉宾介绍
  • 00:01:26 立党开场快板
  • 00:02:02 hedgehog-lab 介绍
  • 00:03:43 创建 hedgehog-lab 的初衷
  • 00:06:35 MATLAB 和 Python 在科学计算领域如何走向成功的
  • 00:10:02 Python 和 NumPy 是谁成就了谁
  • 00:10:53 NumPy 和 MATLAB 的简单对比以及 MATLAB 生态的相关讨论
  • 00:13:31 主播们使用 MATLAB 的一些经历
  • 00:16:15 为什么 Python 不是最适合初学者学习的编程语言
  • 00:29:18 hedgehog-lab 的起源
  • 00:30:58 聊一聊实现矩阵运算的原理
  • 00:34:27 什么是符号计算
  • 00:36:01 hedgehog-lab 中使用到的一些库和工具
  • 00:39:50 hedgehog-lab 未来的规划
  • 00:45:41 hedgehog-lab 的计算速度是和什么相关的
  • 00:48:17 关于 hedgehog-lab 使用场景和部署方式的讨论
  • 00:55:14 开源社区治理相关讨论
  • 01:05:50 hedgehog-lab 未来形态的讨论
  • 01:09:59 推荐环节

相关资料

[32]: https://music.163.com/#/song?id=28267550


爱发电上赞助

]]>
Tue, 29 Sep 2020 23:35:51 +0000
<![CDATA[【牛油果烤面包串台】聊聊 Python 的前世今生]]>https://pythonhunter.org/episodes/avocadotoast1https://pythonhunter.org/episodes/avocadotoast149:57nofull
赞助logo(https___i.loli.net_2020_07_19_Sr3A7584bCDzEnJ.jpg).jpg

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

--

这一期 laike9m 做客牛油果烤面包播客,一起聊了聊世界第一编程语言 Python 的前世今生。

嘉宾:laike9m
主播:斯图亚特VindyCat Chen
剪辑:王立冰

本期内容

  • Python 有多流行
  • Python 流行的原因
  • Python 的性能
  • Python 的历史
  • Python 的未来发展方向
  • 吐槽 Python 2 到 3 的升级

相关链接

图片截取自 Image by Gerd Altmann from Pixabay 片头片尾音乐: Courante 1st Cello Suite Exzel Music Publishing (freemusicpublicdomain.com) Licensed under Creative Commons: By Attribution 3.0 http://creativecommons.org/licenses/by/3.0/

]]>
赞助logo(https___i.loli.net_2020_07_19_Sr3A7584bCDzEnJ.jpg).jpg

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

--

这一期 laike9m 做客牛油果烤面包播客,一起聊了聊世界第一编程语言 Python 的前世今生。

嘉宾:laike9m
主播:斯图亚特VindyCat Chen
剪辑:王立冰

本期内容

  • Python 有多流行
  • Python 流行的原因
  • Python 的性能
  • Python 的历史
  • Python 的未来发展方向
  • 吐槽 Python 2 到 3 的升级

相关链接

图片截取自 Image by Gerd Altmann from Pixabay 片头片尾音乐: Courante 1st Cello Suite Exzel Music Publishing (freemusicpublicdomain.com) Licensed under Creative Commons: By Attribution 3.0 http://creativecommons.org/licenses/by/3.0/


爱发电上赞助

]]>
Wed, 19 Aug 2020 05:07:43 +0000
<![CDATA[Ep 17. Use the Flake8, Luke!]]>https://pythonhunter.org/episodes/17https://pythonhunter.org/episodes/1759:24nofull
赞助logo(https___i.loli.net_2020_07_19_Sr3A7584bCDzEnJ.jpg).jpg

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

Hi 大家好,这一期信涛和 Luke 聊了有关 Lint 的话题,包括 Flake8,如何使用 CI 等。

主持:laixintao
嘉宾:Luke

时间轴:

  • 02:00 日常项目中会用到的 Lint 工具;
  • 14:30 其他语言的 Lint 工具;
  • 20:00 一些集成 Lint 的 Bot 想法...
  • 30:00 如何开发 Flake8 插件;
  • 36:00 我们在公司里是怎么使用CI的;
  • 45:00 使用 Git hook;
  • 17:30 推荐环节;

相关资料:

]]>
赞助logo(https___i.loli.net_2020_07_19_Sr3A7584bCDzEnJ.jpg).jpg

如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter

Hi 大家好,这一期信涛和 Luke 聊了有关 Lint 的话题,包括 Flake8,如何使用 CI 等。

主持:laixintao
嘉宾:Luke

时间轴:

  • 02:00 日常项目中会用到的 Lint 工具;
  • 14:30 其他语言的 Lint 工具;
  • 20:00 一些集成 Lint 的 Bot 想法...
  • 30:00 如何开发 Flake8 插件;
  • 36:00 我们在公司里是怎么使用CI的;
  • 45:00 使用 Git hook;
  • 17:30 推荐环节;

相关资料:


爱发电上赞助

]]>
Thu, 13 Aug 2020 16:58:53 +0000
<![CDATA[Ep 16. Goodbye Python 2, Hello Python 3!]]>https://pythonhunter.org/episodes/ep16https://pythonhunter.org/episodes/ep161:38:23nofull![赞助logo][18]

本期主播

本期嘉宾

TimeLine

  • 00:00:30 正片开始-嘉宾介绍
  • 00:01:27 聊一聊自己喜欢的 Python3 特性
  • 00:02:00 dataclasses
  • 00:04:09 在面向对象的开发过程中何时会用到 frozen 这个特性
  • 00:05:19 使用 datacalsses 时在 __init__ 中定义的参数属于 class 参数还是对象参数?
  • 00:12:10 有没有一个方法能够在 __init__ 方法中调用 dataclasses 的 __init__ 方法?
  • 00:15:10 Python 的执行代码有必要获取机器有多少核心嘛,因为它可以通过外部在控制多线程模型?
  • 00:16:46 有序字典
  • 00:17:18 Django choices
  • 00:19:00 金融验签之参数顺序
  • 00:21:15 关于对接支付接口的一些吐槽
  • 00:22:08 兼顾一批数据的有序和快速查找
  • 00:23:08 f-String
  • 00:24:52 如果将 f-String 的 f 前缀变成后缀
  • 00:26:02 type hint
  • 00:27:22 type hint 在 CI 中的应用
  • 00:29:16 在真实使用过程中是整理 CI 的时间消耗与 CI 帮助我们修复 BUG 的时间哪个更多一点
  • 00:30:00 Python3 中觉得不爽的点
  • 00:30:09 pep572 海象操作符
  • 00:30:57 (不局限于 Python3)线上调试工具缺乏
  • 00:33:48 3 除以 2 的结果是什么
  • 00:34:42 Python3 sort 去掉了 cmp 参数
  • 00:35:32 Python3 的升级偏向于某些语法糖(相对于调试工具等方面)
  • 00:37:26 Python2 迁移至 Python3 过程中的问题
  • 00:38:01 迁移方式
  • 00:41:28 如何在之迁移了部分语法的情况下再 Python3 中进行测试
  • 00:43:46 分层迁移过程中的一些细节
  • 00:45:14 何时停止对 Python2 的测试
  • 00:48:06 关于面试会提到的 Python3 与 Python2 如何同时兼容的问题的讨论
  • 00:49:20 关于 Mercurial 迁移文章的讨论
  • 00:53:16 关于迁移后测试的一些补充
  • 00:55:56 Python2 迁移至 Python3 之字符串的一个坑
  • 00:57:28 Unicode 相关讨论以及 Python 中的字符串和 Unicode
  • 01:06:45 更多关于 Python2 中坑的举例(吐槽)
  • 01:09:01 对现在需要做 Python3 迁移工作的人的建议
  • 01:15:37 Python3 协程的相关讨论(Manjusaka 疯狂输出)
  • 01:28:59 推荐环节
  • 01:34:11 laike9m 客串感谢打赏听众
  • 01:36:46 结束词+音乐

Guest Recommendation

[18]: https://i.typlog.com/pythonhunter/8402665400_0989685.jpg

]]>
![赞助logo][18]

本期主播

本期嘉宾

TimeLine

  • 00:00:30 正片开始-嘉宾介绍
  • 00:01:27 聊一聊自己喜欢的 Python3 特性
  • 00:02:00 dataclasses
  • 00:04:09 在面向对象的开发过程中何时会用到 frozen 这个特性
  • 00:05:19 使用 datacalsses 时在 __init__ 中定义的参数属于 class 参数还是对象参数?
  • 00:12:10 有没有一个方法能够在 __init__ 方法中调用 dataclasses 的 __init__ 方法?
  • 00:15:10 Python 的执行代码有必要获取机器有多少核心嘛,因为它可以通过外部在控制多线程模型?
  • 00:16:46 有序字典
  • 00:17:18 Django choices
  • 00:19:00 金融验签之参数顺序
  • 00:21:15 关于对接支付接口的一些吐槽
  • 00:22:08 兼顾一批数据的有序和快速查找
  • 00:23:08 f-String
  • 00:24:52 如果将 f-String 的 f 前缀变成后缀
  • 00:26:02 type hint
  • 00:27:22 type hint 在 CI 中的应用
  • 00:29:16 在真实使用过程中是整理 CI 的时间消耗与 CI 帮助我们修复 BUG 的时间哪个更多一点
  • 00:30:00 Python3 中觉得不爽的点
  • 00:30:09 pep572 海象操作符
  • 00:30:57 (不局限于 Python3)线上调试工具缺乏
  • 00:33:48 3 除以 2 的结果是什么
  • 00:34:42 Python3 sort 去掉了 cmp 参数
  • 00:35:32 Python3 的升级偏向于某些语法糖(相对于调试工具等方面)
  • 00:37:26 Python2 迁移至 Python3 过程中的问题
  • 00:38:01 迁移方式
  • 00:41:28 如何在之迁移了部分语法的情况下再 Python3 中进行测试
  • 00:43:46 分层迁移过程中的一些细节
  • 00:45:14 何时停止对 Python2 的测试
  • 00:48:06 关于面试会提到的 Python3 与 Python2 如何同时兼容的问题的讨论
  • 00:49:20 关于 Mercurial 迁移文章的讨论
  • 00:53:16 关于迁移后测试的一些补充
  • 00:55:56 Python2 迁移至 Python3 之字符串的一个坑
  • 00:57:28 Unicode 相关讨论以及 Python 中的字符串和 Unicode
  • 01:06:45 更多关于 Python2 中坑的举例(吐槽)
  • 01:09:01 对现在需要做 Python3 迁移工作的人的建议
  • 01:15:37 Python3 协程的相关讨论(Manjusaka 疯狂输出)
  • 01:28:59 推荐环节
  • 01:34:11 laike9m 客串感谢打赏听众
  • 01:36:46 结束词+音乐

Guest Recommendation

[18]: https://i.typlog.com/pythonhunter/8402665400_0989685.jpg


爱发电上赞助

]]>
Sun, 26 Jul 2020 08:18:28 +0000
<![CDATA[Ep 15. 和 PyPA 的成员聊聊 Python 开发工作流]]>https://pythonhunter.org/episodes/ep15https://pythonhunter.org/episodes/ep151:53:24nofull

本期节目较长且信息量巨大,大家可以酌情分多次来听。

本期结尾有彩蛋,会是什么呢?大家敬请期待吧😂

本期主播

本期嘉宾

时间节点

  • 00:00:32 正片开始-嘉宾介绍
  • 00:02:50 PyPA 是什么?哪些工具在 PyPA 名下?
  • 00:08:26 何为 Python 的开发工作流?
  • 00:10:09 作为新人的小白对于 Python 开发工作流有哪些问题?
  • 00:11:12 主流的依赖管理库
  • 00:11:30 pip
  • 00:20:16 pip-tools
  • 00:26:20 pipenv
  • 00:30:39 virtualenv 和 venv 的异同点
  • 00:37:47 pyenv
  • 00:40:25 Poetry
  • 00:43:44 关于 Python 项目不同工具设置文件分开设置好还是统一设置好的讨论
  • 00:46:52 Conda
  • 00:52:10 嘉宾当前工作项目 | Tzu-ping Chung pyem
  • 00:58:43 嘉宾当前工作项目 | Frost Ming pdm
  • 01:05:08 嘉宾当前工作项目 | Tzu-ping Chung New pip resolver
  • 01:12:08 嘉宾当前工作项目 | Requirements.txt 2.0 标准化 locker file 中的争议
  • 01:12:39 关于 locker file 格式选择的讨论
  • 01:14:50 当前社区的热点和开发的痛点 | PEP517 PEP518
  • 01:22:07 当前社区的热点和开发的痛点 | 导致 Python 开发流比较混乱的原因有哪些?和 Python 类似的语言的现状如何?
  • 01:27:22 npm 吐槽
  • 01:34:36 2020 年作为一个 Python 开发者应该如何选择开发流?
  • 01:41:51 对于本期主题的一些思考
  • 01:46:11 嘉宾推荐环节

播客中提到的内容

[26]: https://blog.blanc.site/

]]>

本期节目较长且信息量巨大,大家可以酌情分多次来听。

本期结尾有彩蛋,会是什么呢?大家敬请期待吧😂

本期主播

本期嘉宾

时间节点

  • 00:00:32 正片开始-嘉宾介绍
  • 00:02:50 PyPA 是什么?哪些工具在 PyPA 名下?
  • 00:08:26 何为 Python 的开发工作流?
  • 00:10:09 作为新人的小白对于 Python 开发工作流有哪些问题?
  • 00:11:12 主流的依赖管理库
  • 00:11:30 pip
  • 00:20:16 pip-tools
  • 00:26:20 pipenv
  • 00:30:39 virtualenv 和 venv 的异同点
  • 00:37:47 pyenv
  • 00:40:25 Poetry
  • 00:43:44 关于 Python 项目不同工具设置文件分开设置好还是统一设置好的讨论
  • 00:46:52 Conda
  • 00:52:10 嘉宾当前工作项目 | Tzu-ping Chung pyem
  • 00:58:43 嘉宾当前工作项目 | Frost Ming pdm
  • 01:05:08 嘉宾当前工作项目 | Tzu-ping Chung New pip resolver
  • 01:12:08 嘉宾当前工作项目 | Requirements.txt 2.0 标准化 locker file 中的争议
  • 01:12:39 关于 locker file 格式选择的讨论
  • 01:14:50 当前社区的热点和开发的痛点 | PEP517 PEP518
  • 01:22:07 当前社区的热点和开发的痛点 | 导致 Python 开发流比较混乱的原因有哪些?和 Python 类似的语言的现状如何?
  • 01:27:22 npm 吐槽
  • 01:34:36 2020 年作为一个 Python 开发者应该如何选择开发流?
  • 01:41:51 对于本期主题的一些思考
  • 01:46:11 嘉宾推荐环节

播客中提到的内容

[26]: https://blog.blanc.site/


爱发电上赞助

]]>
Wed, 17 Jun 2020 16:52:51 +0000
<![CDATA[Ep 14. 聊聊职场中的那些坑]]>https://pythonhunter.org/episodes/ep14https://pythonhunter.org/episodes/ep141:13:01nofull本期主播

本期嘉宾

Phil

时间节点

播客中提到的内容

]]>
本期主播

本期嘉宾

Phil

时间节点

播客中提到的内容


爱发电上赞助

]]>
Thu, 07 May 2020 05:54:06 +0000