POPULARITY
本期节目应嘉宾的要求,我们只发布了文字稿。带来的不便还请各位听众谅解。 嘉宾 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 做贡献也没有那么难。对,好,我们这期就到此结束,然后各位听众我们就下期再见,大家拜拜。 众人: 拜拜。
Guests Ben Nickolls | Andrew Nesbitt Panelist Richard Littauer Show Notes In this episode of Sustain, host Richard is joined by guests Ben Nickolls and Andrew Nesbitt to discuss the ecosyste.ms project. They explore how ecosyste.ms collects and analyzes metadata from various open-source projects to create a comprehensive database that can help improve funding allocation. The discussion covers the importance of funding the most critical open-source projects, the existing gaps in funding, and the partnership between ecosyste.ms and Open Source Collective to create funding algorithms that support entire ecosystems. They also talk about the challenges of maintaining data, reaching out to project maintainers, and the broader implications for the open-source community. Hit the download button now! [00:01:58] Andrew and Ben explain ecosyste.ms, what it does, and how it compares to Libraries.io. [00:04:59] Ecosyste.ms tracks metadata, not the packages themselves, and enriches data via dependency graphs, committers, issues, SBOMs, and more. [00:06:54] Andrew talks about finding 1,890 Git hosts and how many critical projects live outside GitHub. [00:08:37] There's a conversation on metadata uses and SBOM parsing. [00:12:49] Richard inquires about the ecosystem.ms funds on their website which Andrew explains it's a collaboration between Open Collective and ecosyste.ms. that algorithmically distributes funds to the most used, not most popular packages. [00:15:45] Ben shares how this is different from previous projects and brings up a past project, “Back Your Stack” and explains how ecosyste.ms is doing two things differently. [00:18:59] Ben explains how it supports payouts to other platforms and encourages maintainers to adopt funding YAML files for automation. Andrew touches on efficient outreach, payout management, and API usage (GraphQL). [00:25:36] Ben elaborates on how companies can fund ecosyste.ms (like Django) instead of curating their own lists and being inspired by Sentry's work with the Open Source Pledge. [00:29:32] Andrew speaks about scaling and developer engagement and emphasizes their focus is on high-impact sustainability. [00:32:48] Richard asks, “Why does it matter?” Ben explains that most current funding goes to popular, not most used projects and ecosyste.ms aims to fix the gap with data backed funding, and he suggests use of open standards like 360Giving and Open Contracting Data. [00:35:46] Andrew shares his thoughts on funding the right projects by improving 1% of OSS, you uplift the quality of millions of dependent projects with healthier infrastructure, faster security updates, and more resilient software. [00:38:35] Find out where you can follow ecosyste.ms and the blog on the web. Quotes [00:11:18] “I call them interesting forks. If a fork is referenced by a package, it'll get indexed.” [00:22:07] We've built a service that now moves like $25 million a year between OSS maintainers on OSC.” [00:33:23] “We don't have enough information to make collective decisions about which projects, communities, maintainers, should receive more funding.” [00:34:23] “The NSF POSE Program has distributed hundreds of millions of dollars of funding to open source communities alone.” [00:35:47] “If you have ten, twenty thousand really critical open source projects, that actually isn't unachievable to make those projects sustainable.” Spotlight [00:39:35] Ben's spotlight is Jellyfin. [00:40:20] Andrew's spotlight is zizmor. [00:42:21] Richard's spotlight is The LaTeX Project. Links SustainOSS (https://sustainoss.org/) podcast@sustainoss.org (mailto:podcast@sustainoss.org) richard@sustainoss.org (mailto:richard@sustainoss.org) SustainOSS Discourse (https://discourse.sustainoss.org/) SustainOSS Mastodon (https://mastodon.social/tags/sustainoss) SustainOSS Bluesky (https://bsky.app/profile/sustainoss.bsky.social) SustainOSS LinkedIn (https://www.linkedin.com/company/sustainoss/) Open Collective-SustainOSS (Contribute) (https://opencollective.com/sustainoss) Richard Littauer Socials (https://www.burntfen.com/2023-05-30/socials) Ben Nickolls LinkedIn (https://www.linkedin.com/in/benjamuk/) Andrew Nesbitt Website (https://nesbitt.io/) Andrew Nesbitt Mastodon (https://mastodon.social/@andrewnez) Octobox (https://github.com/octobox) ecosyste.ms (https://ecosyste.ms/) ecosyste.ms Blog (https://blog.ecosyste.ms/) Open Source Collective (https://oscollective.org/) Open Source Collective Updates (https://opencollective.com/opensource/updates) Open Source Collective Contributions (https://opencollective.com/opensource) Open Source Collective Contributors (https://opencollective.com/open-source) Open Collective (https://opencollective.com/) 24 Pull Requests (https://24pullrequests.com/) Libraries.io (https://libraries.io/) The penumbra of open source (EPJ Data Science) (https://epjdatascience.springeropen.com/articles/10.1140/epjds/s13688-022-00345-7) FOSDEM '25- Open source funding: you're doing it wrong (Andrew and Ben) (https://fosdem.org/2025/schedule/event/fosdem-2025-5576-open-source-funding-you-re-doing-it-wrong/) Vue.js (https://vuejs.org/) thanks.dev (https://thanks.dev/home) StackAid (https://www.stackaid.us/) Back Your Stack (https://backyourstack.com/) NSF POSE (https://www.nsf.gov/funding/initiatives/pathways-enable-open-source-ecosystems) Django (https://www.djangoproject.com/) GitHub Sponsors (https://github.com/sponsors) Sustain Podcast-Episode 80: Emma Irwin and the Foss Fund Program (https://podcast.sustainoss.org/80) Sustain Podcast- 3 Episodes featuring Chad Whitacre (https://podcast.sustainoss.org/guests/chad-whitacre) Sustain Podcast- Episode 218: Karthik Ram & James Howison on Research Software Visibility Infrastructure Priorities (https://podcast.sustainoss.org/218) Sustain Podcast-Episode 247: Chad Whitacre on the Open Source Pledge (https://podcast.sustainoss.org/247) Invest in Open Infrastructure (https://investinopen.org/) 360Giving (https://www.360giving.org/) Open Contracting Data Standard (https://standard.open-contracting.org/latest/en/) Jellyfin (https://opencollective.com/jellyfin) zizmor (https://github.com/zizmorcore/zizmor) The LaTeX Project (https://www.latex-project.org/) Credits Produced by Richard Littauer (https://www.burntfen.com/) Edited by Paul M. Bahr at Peachtree Sound (https://www.peachtreesound.com/) Show notes by DeAnn Bahr Peachtree Sound (https://www.peachtreesound.com/) Special Guests: Andrew Nesbitt and Benjamin Nickolls.
Hey everyone, Alex here
Hey everyone, Alex here
JavaScript is missing a built-in way to make variables reactive—but Signals might change that. Scott and Wes break down what Signals are, how they compare to React state, and how different frameworks like Preact, Solid, Vue, and Qwik are already using them. Show Notes 00:00 Welcome to Syntax! 01:49 Brought to you by Sentry.io. 02:28 Why JavaScript needs reactive variables. 03:16 What exactly are signals? Signals Proposal. 04:02 Understanding computed state. 04:59 How signals differ from React state. 06:12 How different frameworks handle reactivity. 07:09 DOM Parts. Pull Request. 07:26 HTML Template Instantiation. Template Instantiation. 09:10 Comparing signals across frameworks: Preact, Solid.js, Vue, and more. PreactJS Signals. Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads
Xuan-Son Nguyen opened a low-level code PR written 99% by DeepSeek-R1, Adam Wathan announces the release of Tailwind CSS 4.0, Matheus Lima opens up the Computer Science history books to create list of influential papers, Namanyay Goel thinks AI is creating a generation of illiterate programmers & Russell Baylis shares what he's learned about optimizing WFH lighting to reduce eye strain.
Xuan-Son Nguyen opened a low-level code PR written 99% by DeepSeek-R1, Adam Wathan announces the release of Tailwind CSS 4.0, Matheus Lima opens up the Computer Science history books to create list of influential papers, Namanyay Goel thinks AI is creating a generation of illiterate programmers & Russell Baylis shares what he's learned about optimizing WFH lighting to reduce eye strain.
Xuan-Son Nguyen opened a low-level code PR written 99% by DeepSeek-R1, Adam Wathan announces the release of Tailwind CSS 4.0, Matheus Lima opens up the Computer Science history books to create list of influential papers, Namanyay Goel thinks AI is creating a generation of illiterate programmers & Russell Baylis shares what he's learned about optimizing WFH lighting to reduce eye strain.
In this episode, we dive deep into the dynamics of working solo versus being part of a development team. From the ideal team composition at large companies to the challenges of maintaining open source projects, our hosts share their experiences and insights. Learn about the crucial roles of designers and product managers, the importance of documentation, and why even senior developers still Google Git commands. Whether you're a solo developer looking to collaborate or a team player wanting to improve your workflow, this episode has something for everyone. Chapter Marks00:00 - Introduction01:16 - The Perfect Team Composition02:44 - Different Approaches to Team Building04:37 - Working Without Designers: The FedEx Experience08:10 - Documentation and Project Requirements12:30 - The Role of Documentation in Team Success14:47 - Documentation's Impact on Career Growth15:14 - Onboarding and Documentation Connection16:51 - Open Source Project Management19:45 - Automation in Open Source22:34 - Deals for Devs: Managing Contributors25:29 - Branch Management and PR Workflows29:59 - Solo Development Practices31:21 - Git Commands and Team Workflows35:14 - Open Source Knowledge Barriers38:02 - The Importance of Admitting What You Don't Know39:15 - Episode Wrap-up LinksNick Taylor's Blog Post about GitHub Code Owners - https://dev.to/opensauced/supercharge-your-repository-with-code-owners-4clgB Dougie's GitHub Action for the "Take" command - https://github.com/bdougie/take-action/blob/main/action.ymlChantastic's Git Course on Epic Web - https://www.epicweb.dev/tutorials/git-fundamentalsGitHub Documentation on Squash Merging vs Rebase Merging - https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-mergesMerge vs Rebase vs Squash - https://gist.github.com/mitchellh/319019b1b8aac9110fcfb1862e0c97fbGitHub Issue Forms Documentation - https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-formsGitHub Pull Request Templates Guide - https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/creating-a-pull-request-template-for-your-repositoryGitHub Code Owners Documentation - https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-ownersVirtual Coffee's Hacktoberfest Resources - https://hacktoberfest.virtualcoffee.io/OpenSauce - https://opensauced.pizza/The "Working Genius" Assessment - https://www.workinggenius.com/Gun.io Work Personality Quiz - https://gun.io/workstyle/Deals for Devs Project - https://www.dealsfordevs.com/GitHub Actions Documentation on Release Management - https://docs.github.com/en/actions/sharing-automations/creating-actions/releasing-and-maintaining-actionsConventional Commits Documentation - https://www.conventionalcommits.org/en/v1.0.0/
Die Transparenz von Open Source schreibt Geschichten, die erzählt werden wollen50% des Begriffes “Open Source” besteht aus dem Wort “Open”. Ok. Für diese Erkenntnis muss man nun nicht studiert haben. Open bzw. Offen bzw. Transparenz bezieht sich dabei nicht nur auf den Source Code selbst, sondern i.d.R. auf alles, was das entsprechende Projekt betrifft. Dazu zählen u.a. für jedermann einsehbare Bug-Reports und Pull Requests. Wenn man dies nun mit weltweiter Kollaboration verschiedener Menschen und Kulturen mixt, ist eins vorprogrammiert: Kreativität, WTF-Momente, persönliche Schicksale und Geschichten, die erzählt werden wollen. Diese Episode erzählt einige dieser Open Source Geschichten. Wir sprechen darüber, wie man Douglas Crockford dazu bringt, über JavaScript Code zu streiten, wann für einen Pull Request eine eigene Torte gebacken wird und warum dies dann zu einem Merge führt, sowie wann und warum Unit Tests fehlschlagen, wenn diese in Australien ausgeführt werden. Es geht aber auch um traurige Seiten und persönliche Schicksale. Zum Beispiel eine Gefängnisverurteilung eines Maintainers von einem Projekt, welches 26 Millionen Downloads pro Woche hat, eine Krebserkrankungen mit verbundener Anteilnahme der Community und wie der Maintainer die Zukunft des Projektes sichert für die Zeit, wenn er nicht mehr da ist oder auch wie die Maidan-Revolution und der Ukraine-Krieg Open Source beeinflussen.Unsere aktuellen Werbepartner findest du auf https://engineeringkiosk.dev/partnersDas schnelle Feedback zur Episode:
Do you try to understand the pull request you review?
If my manager gives me a lot of pull request comments does that reflect poorly on me?
Podcasting 2.0 June 7th 2024 Episode 182: "Drop the Dongle" Adam & Dave are joined by OG Podcast developer Andrew Grumet ShowNotes We are LIT Andrew Grumet - OG Podcaster Dev and wherever.audio Bitcoin will be a marketing benefit GetAlby Issues Breez Brings Bitcoin’s Lightning Network To Every Crypto Wallet - Bitcoin Magazine - Bitcoin News, Articles and Expert Insights Greenlight and Breez SDK CLI does Bolt12 Cake wallet Zeus Mobile for keysend receive Pod-mobile | Audiosigma add keysend implementation for LND backend by bernii · Pull Request #1129 · lnbits/lnbits ------------------------------------- MKUltra chat Transcript Search What is Value4Value? - Read all about it at Value4Value.info V4V Stats Last Modified 06/07/2024 15:01:33 by Freedom Controller
Podcasting 2.0 June 7th 2024 Episode 182: "Drop the Dongle" Adam & Dave are joined by OG Podcast developer Andrew Grumet ShowNotes We are LIT Andrew Grumet - OG Podcaster Dev and wherever.audio Bitcoin will be a marketing benefit GetAlby Issues Breez Brings Bitcoin’s Lightning Network To Every Crypto Wallet - Bitcoin Magazine - Bitcoin News, Articles and Expert Insights Greenlight and Breez SDK CLI does Bolt12 Cake wallet Zeus Mobile for keysend receive Pod-mobile | Audiosigma add keysend implementation for LND backend by bernii · Pull Request #1129 · lnbits/lnbits ------------------------------------- MKUltra chat Transcript Search What is Value4Value? - Read all about it at Value4Value.info V4V Stats Last Modified 06/07/2024 15:01:33 by Freedom Controller
Podcasting 2.0 May 31st 2024 Episode 181: "Bucket of Chicks" Adam & Dave talk wallets, music, local programming and chicks man! ShowNotes We are LIT Nashville wrap up and tease Ainsley Track Pocketcasts - heard V4V rumblings - 2 years ago we pitched it to Matt Local Podcasts Project - Playlist - like OPML subscription lists - need to know if playlists work this way Sam and Castopod working on Activity streams into ActivityPub YAY! 8 New Findings About The Podcast Audience From Cumulus Media’s 2024 Audioscape | Westwood One 3. The median age of the podcast audience has held at 34 despite massive audience growth The podcast audience is thirteen years younger than the median age of AM/FM radio listeners and 22 years younger than linear television where audiences have a median age of 56. TV is what’s playing in God’s waiting room. Link This is the "secret" formula: "That was the thing that Adam and I agreed on. Adam being the user, and I being the developer. Of course it was his trying to be a developer, and me trying to be a user that was the spark that created the boom. We both made it safe for amateurs to do what we do. That's why podcasting, unlike the music industry, never went to war with its users." Scripting News: Tech is about people Costello's Bands and Bitcoin Bands at Bitcoin '24 Nashville | Geyser Need a helipad page Music License Wallets Get Alby LNBits Business Opportunity Growth in General Apollo II update and possible pool MikeHero DSP | Audiosigma add keysend implementation for LND backend by bernii · Pull Request #1129 · lnbits/lnbits ------------------------------------- MKUltra chat Transcript Search What is Value4Value? - Read all about it at Value4Value.info V4V Stats Last Modified 05/31/2024 14:59:52 by Freedom Controller
Podcasting 2.0 May 31st 2024 Episode 181: "Bucket of Chicks" Adam & Dave talk wallets, music, local programming and chicks man! ShowNotes We are LIT Nashville wrap up and tease Ainsley Track Pocketcasts - heard V4V rumblings - 2 years ago we pitched it to Matt Local Podcasts Project - Playlist - like OPML subscription lists - need to know if playlists work this way Sam and Castopod working on Activity streams into ActivityPub YAY! 8 New Findings About The Podcast Audience From Cumulus Media’s 2024 Audioscape | Westwood One 3. The median age of the podcast audience has held at 34 despite massive audience growth The podcast audience is thirteen years younger than the median age of AM/FM radio listeners and 22 years younger than linear television where audiences have a median age of 56. TV is what’s playing in God’s waiting room. Link This is the "secret" formula: "That was the thing that Adam and I agreed on. Adam being the user, and I being the developer. Of course it was his trying to be a developer, and me trying to be a user that was the spark that created the boom. We both made it safe for amateurs to do what we do. That's why podcasting, unlike the music industry, never went to war with its users." Scripting News: Tech is about people Costello's Bands and Bitcoin Bands at Bitcoin '24 Nashville | Geyser Need a helipad page Music License Wallets Get Alby LNBits Business Opportunity Growth in General Apollo II update and possible pool MikeHero DSP | Audiosigma add keysend implementation for LND backend by bernii · Pull Request #1129 · lnbits/lnbits ------------------------------------- MKUltra chat Transcript Search What is Value4Value? - Read all about it at Value4Value.info V4V Stats Last Modified 05/31/2024 14:59:52 by Freedom Controller
Join Scott as he starts working on ESP BLE pairing and bonding (aka initiating encrypted connections), demonstrates building CircuitPython with asyncio python scripts and answers questions. https://github.com/tannewt/circuitpython/tree/embedded-build https://github.com/tannewt/embedded Thanks to dcd for timecodes: 0:00 Getting Started 1:56 Hello - welcome to Deep Dive w/Scott 3:00 Adafruit Feather nRF25840 bluefruit feather example 3:09 We will talk about Bluetooth Low Energy today 4:47 Join #live-broadcast-chat on Discord at http://adafrui.it/discord 5:15 BLE vs Bluetooth "Classic" (older devices) 6:06 ESP32-S2-DevKitC-1 V1.o S2 SOLO N4R2 (bad example, no BLE support :-) ) 6:16 ESPS3 BLE + WiFi 7:43 LED Glasses nRF52840 8:42 Creating Servers and Dynamic Services - from two weeks ago 10:00 Pull Request to add ability to create services (e.g. HID services ) 10:45 Pairing & Bonding / services / characteristics (create a keyboard) 12:20 esp-matter protocol - hamslabs 13:35 PR: Add ESP BLE GATT server support #9222 13:46 also issue Add ESP BLE GATT server support #5926 14:41 Code review process inner workings 15:29 ESP32-H4 and ESP32-P4 annonuncement on espressif.com (not available yet) - but see ESP-IDF SDK 16:14 also added C2 support to circuitpython ( but it ran out of memory ) maybe only one of WiFi or BLE at a time 17:08 and C6 - no RMT neopixel support, but it does have BLE 19:45 using TinyUSB on devices with SPI but no USB 21:03 BLE_EXT_ADV ( extended advertising feature of BLE 5) 24:39 yesterdays ESP32 issue - better debugging by enabling better debug logging 25:40 pondering interrupt handlers and weak functions 26:27 Review files changed in PR9222 26:35 Trade-off OTA for BLE on new 4MB boards 28:00 adding -u to LDFLAGS to deal with weak symbols 29:18 Pairing and Bonding not supported yet 29:50 then maybe look at building CP with new build systems 31:29 Pairing and Bonding ... 33:35 ESP IDF stores bonding information in NVS partion 34:03 look on github circuitpython/tests/circuitpyton-manual for example code (but no BLE code) 34:14 adafruit/Adafruit_CircuitPython_BLE/examples/ble_hid_central.py ( all commented out) 36:13 adafruit/Adafruit_CircuitPython_BLE/examples/ble_current_time_service.py 36:37 iPhone pairing can deliver time 37:08 github espressif/esp-idf/examples/bluetooth/nimble blecent and bleprph 38:38 bleprph/tutorial bleprph_walkthrough.md 41:35 watch running CP and BLE and updating time 43:38 view example for bleprph/main/main.c code 44:14 CP repo ports/espressif/common-hal/_bleio/PacketBuffer.c 44:26 and ports/espressif/common-hal/_bleio/Connection. ( TODO:Implement this ) 46:58 using copilot to make printf debugging faster! 50:54 also Adapter.c 53:39 refer to online CP docs for _bleio 56:20 git switch ble_bonding 58:03 clangd feature for genertated tags in editor ( mentioned a few weeks ago )o 59:54 S3 WROOM-2 N32R8V 1:01:02 set up window for serial output capture and CP serial REPL 1:06:21 update code.py - start test / paired - decode connections 1:09:20 CP doesn't have audio over BLE 1:17:36 use chatgpt to convert C #defines to switch statement function 1:25:54 save the work in process and switch to embedded-build git repo 1:27;20 fetch and pip install the build tool 1:31:28 review the build code in build_circuitpython.py 1:34:44 build tool uses python asyncio to get parallelism 1:35:38 return to the perfetto.dev chart of the threads to see basic trace information 1:43:02 when you call an async function, it doen't even begin to execute it - it just wraps it so you can run it later1:44:20 discussion of zig build system 1:45:30 rerun the build - this time with some more parallel tasks 2:01:43 TODO: add memoization to the build system in the future 2:04:01 push the code tannewt embedded build and wrap up 2:11:10 have a great weekend Visit the Adafruit shop online - http://www.adafruit.com ----------------------------------------- LIVE CHAT IS HERE! http://adafru.it/discord Subscribe to Adafruit on YouTube: http://adafru.it/subscribe New tutorials on the Adafruit Learning System: http://learn.adafruit.com/ -----------------------------------------
Apple @ Work is exclusively brought to you by Mosyle, the only Apple Unified Platform. Mosyle is the only solution that integrates in a single professional-grade platform all the solutions necessary to seamlessly and automatically deploy, manage & protect Apple devices at work. Over 45,000 organizations trust Mosyle to make millions of Apple devices work-ready with no effort and at an affordable cost. Request your EXTENDED TRIAL today and understand why Mosyle is everything you need to work with Apple. In this episode of Apple @ Work, I talk with Mike McNeil from Fleet about their new maintenance windows feature. Connect with Bradley Twitter LinkedIn Listen and subscribe Apple Podcasts Overcast Spotify Pocket Casts Castro RSS Listen to Past Episodes
How do senior devs feel when a junior deny their pull request?
On today's show, we cover a variety of topics. Ben talks about overcompensation at work; and, how we often swing way too hard in one direction as the first signs of a challenge. Carol talks about how her current task got away from her; and, how she suddenly founder herself creating a Pull Request with 84 files in it. Tim talks about the generation smoking ban going into effect in England. And Adam talks about the challenges of mentoring junior developers; and, how hard it is to have enough "right sized" tasks ready for them to work on.Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we're @WorkingCodePod on Twitter and Instagram. New episodes drop weekly on Wednesday.And, if you're feeling the love, support us on Patreon.With audio editing and engineering by ZCross Media.Full show notes and transcript here.
What tone to use in pull requests when making suggestions?
Присоединяйтесь к брейншторму "как улучшить тесты", добавляйте свой Pull Request в https://github.com/dotnetmore/shit-testsТесты должны быть понятные, говорили они. Тесты должны быть короткие, учили они. Но что делать, если только arrange занимает 20 строк? А если act - больше чем просто вызов метода? А если логика кода достаточно сложная, так что в однострочный assert не влезает?Спасибо всем кто нас слушает. Ждем Ваши комментарии.Бесплатный открытый курс "Rust для DotNet разработчиков": https://www.youtube.com/playlist?list=PLbxr_aGL4q3S2iE00WFPNTzKAARURZW1ZShownotes: 00:00:00 Вступление00:02:30 DRY в тестах00:13:15 Как рефакторить и код, и тесты одновременно00:20:30 А что если делать маленькие классы и маленькие тесты?Ссылки:- https://github.com/dotnetmore/shit-tests : Тесты, которые мы разбирали в выпуске- https://fluentassertions.com/introduction : Fluent Assertions- https://nsubstitute.github.io/ : NSubstitute - https://www.testrail.com/blog/5-bdd-tools-c-codebases/ : Обзор BDD фреймворков - https://github.com/VerifyTests/Verify/ : Verify для сложного assert- https://github.com/VerifyTests/Verify.Serilog : Verify для логов 0_oВидео: https://youtube.com/live/dPH6W7yMJPw Слушайте все выпуски: https://dotnetmore.mave.digitalYouTube: https://www.youtube.com/playlist?list=PLbxr_aGL4q3R6kfpa7Q8biS11T56cNMf5Обсуждайте:- Telegram: https://t.me/dotnetmore_chatСледите за новостями:– Twitter: https://twitter.com/dotnetmore– Telegram channel: https://t.me/dotnetmoreCopyright: https://creativecommons.org/licenses/by-sa/4.0/
Links from the show:PHP[TEK] 2024 - Home Page So You Think You Know Git - FOSDEM 2024 - YouTubeWhite House wants Moon to have its own time zoneThe XZ Backdoor: Everything You Need to Know | WIREDThe Mystery of ‘Jia Tan,' the XZ Backdoor Mastermind | WIREDThe level of sophistication of the XZ attack is - Infosec ExchangeThis episode of PHPUgly was sponsored by:Honeybadger.ioBuilt for Developers. Monitoring doesn't have to be so complicated. That's why we built the monitoring tool we always wanted: a tool that's there when you need it, and gets out of your. Everything you need to keep production happy so that you can keep shipping. Deploy with confidence and be your team's DevOps hero.https://www.honeybadger.io/php[architect]php[architect] magazine is the only technical journal dedicated exclusively to the world of PHP. We are committed to spreading knowledge of best practices in PHP. With that purpose, the brand has expanded into producing a full line of books, hosting online and in-person web training, as well as organizing multiple conferences per year.https://www.phparch.com PHPUgly streams the recording of this podcast live. Typically every Thursday. Come and join us, and subscribe to our Youtube Channel, Twitch, or Twitter. Also, be sure to check out our Patreon Page.Twitter Account https://twitter.com/phpuglyMastodon Account https://phparch.social/@phpuglyHost:Eric Van Johnson | Mastodon: @eric@phpartch.socialJohn Congdon | Mastodon: @john@phpartch.socialStreams:Youtube ChannelTwitchPowered by RestreamPatreon PagePHPUgly Anthem by Harry Mack / Harry Mack Youtube ChannelThanks to all of our Patreon Sponsors:***** PATREON SUPPORTS SPONSOR LEVEL **Honeybadger (https://honeybader.io)** Patreon Supports **ButteryCrumpetFrank WDavid QBoštjan OMarcusShelby CS FRodrigo CBillyDarryl HKnut BDmitri GElgimboMikePageDevKenrick BKalen JR. C. S.Peter AHoneybadgerHolly SClayton SRonny NBen RAlex BKevin YWayneJeroen FahinkleChris CSteve MRobert SThorstenEmily JAndrew WulrikJohn CJames HEric MEd GRirielilHermitChampJeffrey DChris BTore BBek JDonald GPaul KDustin UMel SSeba RJoe F
How do you keep your pull request small?
Podcasting 2.0 March 15th 2024 Episode 171: "Misaligned Expectations" Adam & Dave are joined by Nathan Gathright of the brand new Episodes.Fm ShowNotes We are LIT TLV records people! Nathan Gathright PI storing user activity stream data Metadata drama Proposal: implement custom TLV records for spontaneous payments by rdmitr · Pull Request #273 · lightningdevkit/ldk-node · GitHub Fedifying the Index ------------------------------------- MKUltra chat Transcript Search What is Value4Value? - Read all about it at Value4Value.info V4V Stats Last Modified 03/15/2024 14:09:49 by Freedom Controller
Podcasting 2.0 March 15th 2024 Episode 171: "Misaligned Expectations" Adam & Dave are joined by Nathan Gathright of the brand new Episodes.Fm ShowNotes We are LIT TLV records people! Nathan Gathright PI storing user activity stream data Metadata drama Proposal: implement custom TLV records for spontaneous payments by rdmitr · Pull Request #273 · lightningdevkit/ldk-node · GitHub Fedifying the Index ------------------------------------- MKUltra chat Transcript Search What is Value4Value? - Read all about it at Value4Value.info V4V Stats Last Modified 03/15/2024 14:09:49 by Freedom Controller
Join Dan Vega and DaShaun Carter for the latest updates from the Spring Ecosystem. In this episode, we're uncovering fresh repositories and invaluable resources that have just landed for the Spring Office Hours community. We will also address one of the most popular questions: how do you kickstart your journey in contributing to Open Source Software? Join our live stream to get your questions answered, or watch the replay on your preferred podcast platform.Show NotesState of Spring SurveyCloud Foundry Weekly - Season 1 Episode 1RedMonk Top 20 Languages over time: January 2024Netflix Blog: Bending pause times to your will with Generational ZGCBuilding Intelligent Applications with Spring AI GitHub Repositories Learning Spring ResourcesSpring Office Hours Discussions
In this episode, Ben interviews Josh Pigford, founder of Maybe.co, about the company's journey from VC-backed startup -> closed startup -> open source project -> funded open source project. They discuss JavaScript and Rails trade-offs, the challenges of building a personal finance software, and the operational difficulties of building a business based on open source software.LinksTuple.app - The best app for pair programmingMaybe.co - The fintech startup Josh foundedNodeJS - The starting framework for Maybe.coRuby on Rails - The new framework for Maybe.coKey TakeawaysChoosing the right tech stack is crucial for the success of a project.Running out of runway can force difficult decisions and pivots.Making a codebase public can generate interest and community engagement.Replacing third-party dependencies can be challenging but necessary.Rebuilding a software project requires careful planning and decision-making. Building a personal finance app involves challenges such as managing pull requests and issues in open source development.Transitioning to Rails can provide a more stable and efficient framework for building a complex application.The decision to rewrite the app from scratch allows for better decision-making and faster progress.Targeting Mint users with a budgeting tool presents an opportunity to capitalize on a fragmented market.Detangled, a project that simplifies legal documents, has the potential for commercial success. Moonshot ideas can be exciting and worth pursuing, even if the specific angle is unclear.ChatGPT has the potential to generate usable results, either through heavily massaged prompts or prewritten blocks.Tools like detangle can augment conversations with lawyers, providing insights and helping users know what questions to ask.There are commercial opportunities in selling services like detangle to companies that don't have full-time counsel.Finding the right balance between passion and traction is important when deciding which projects to pursue.Chapters(00:00) - Introduction (01:21) - Making the Codebase Public (07:21) - Community Engagement and Pull Requests (12:17) - Ripping Out Functionality (15:03) - Replacing Data Aggregator (16:10) - Building a Personal Finance App (17:39) - Challenges of Open Source Development (21:08) - Managing Pull Requests and Issues (23:35) - Struggles with React Next.js (27:45) - Choosing Rails for Development (32:40) - Targeting Mint Users with Budgeting Tool (35:45) - Modular Use Cases (38:53) - Open Source Contributions and Bounties (40:47) - Next Steps (45:16) - Detangled: Simplifying Legal Documents (48:32) - Exploring Moonshot Ideas (48:58) - The Potential of ChatGPT (49:45) - Augmenting Conversations with Lawyers (50:21) - Commercial Opportunities (50:53) - Balancing Passion and Traction (51:20) - Closing Remarks
On today's episode, Elixir Wizards Owen Bickford and Dan Ivovich compare notes on building web applications with Elixir and the Phoenix Framework versus Ruby on Rails. They discuss the history of both frameworks, key differences in architecture and approach, and deciding which programming language to use when starting a project. Both Phoenix and Rails are robust frameworks that enable developers to build high-quality web apps—Phoenix leverages functional programming in Elixir and Erlang's networking for real-time communication. Rails follows object-oriented principles and has a vast ecosystem of plug-ins. For data-heavy CRUD apps, Phoenix's immutable data pipelines provide some advantages. Developers can build great web apps with either Phoenix or Rails. Phoenix may have a slight edge for new projects based on its functional approach, built-in real-time features like LiveView, and ability to scale efficiently. But, choosing the right tech stack depends heavily on the app's specific requirements and the team's existing skills. Topics discussed in this episode: History and evolution of Phoenix Framework and Ruby on Rails Default project structure and code organization preferences in each framework Comparing object-oriented vs functional programming paradigms CRUD app development and interaction with databases Live reloading capabilities in Phoenix LiveView vs Rails Turbolinks Leveraging WebSockets for real-time UI updates Testing frameworks like RSpec, Cucumber, Wallaby, and Capybara Dependency management and size of standard libraries Scalability and distribution across nodes Readability and approachability of object-oriented code Immutability and data pipelines in functional programming Types, specs, and static analysis with Dialyzer Monkey patching in Ruby vs extensible core language in Elixir Factors to consider when choosing between frameworks Experience training new developers on Phoenix and Rails Community influences on coding styles Real-world project examples and refactoring approaches Deployment and dev ops differences Popularity and adoption curves of both frameworks Ongoing research into improving Phoenix and Rails Links Mentioned in this Episode: SmartLogic.io (https://smartlogic.io/) Dan's LinkedIn (https://www.linkedin.com/in/divovich/) Owen's LinkedIn (https://www.linkedin.com/in/owen-bickford-8b6b1523a/) Ruby https://www.ruby-lang.org/en/ Rails https://rubyonrails.org/ Sams Teach Yourself Ruby in 21 Days (https://www.overdrive.com/media/56304/sams-teach-yourself-ruby-in-21-days) Learn Ruby in 7 Days (https://www.thriftbooks.com/w/learn-ruby-in-7-days---color-print---ruby-tutorial-for-guaranteed-quick-learning-ruby-guide-with-many-practical-examples-this-ruby-programming-book--to-build-real-life-software-projects/18539364/#edition=19727339&idiq=25678249) Build Your Own Ruby on Rails Web Applications (https://www.thriftbooks.com/w/build-your-own-ruby-on-rails-web-applications_patrick-lenz/725256/item/2315989/?utm_source=google&utm_medium=cpc&utm_campaign=low_vol_backlist_standard_shopping_customer_acquisition&utm_adgroup=&utm_term=&utm_content=593118743925&gad_source=1&gclid=CjwKCAiA1MCrBhAoEiwAC2d64aQyFawuU3znN0VFgGyjR0I-0vrXlseIvht0QPOqx4DjKjdpgjCMZhoC6PcQAvD_BwE#idiq=2315989&edition=3380836) Django https://github.com/django Sidekiq https://github.com/sidekiq Kafka https://kafka.apache.org/ Phoenix Framework https://www.phoenixframework.org/ Phoenix LiveView https://hexdocs.pm/phoenixliveview/Phoenix.LiveView.html#content Flask https://flask.palletsprojects.com/en/3.0.x/ WebSockets API https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API WebSocket connection for Phoenix https://github.com/phoenixframework/websock Morph Dom https://github.com/patrick-steele-idem/morphdom Turbolinks https://github.com/turbolinks Ecto https://github.com/elixir-ecto Capybara Testing Framework https://teamcapybara.github.io/capybara/ Wallaby Testing Framework https://wallabyjs.com/ Cucumber Testing Framework https://cucumber.io/ RSpec https://rspec.info/
Web and Mobile App Development (Language Agnostic, and Based on Real-life experience!)
Say, your team is working on a number of features, and there is a steady stream of Pull Requests at any given time. The likelihood and complexity of merge conflicts depends both on the size of your team, and the scope of your features. In this podcast, I discuss a few options to mitigate merge conflicts. #snowpal aws.snowpal.com learn.snowpal.com
In this episode, Mattias is joined by Ben Goodman, the founder of dragondrop.cloud, a platform that offers Terraform Best Practices as a Pull Request. They discuss the best workflows for Terraform, open-source tools that can be used in conjunction with Terraform, the most effective best practices, and common pitfalls to avoid when implementing infrastructure as code using Terraform. Connect with us on LinkedIn or Twitter (see info at https://devsecops.fm/about/). We are happy to answer any questions, hear suggestions for new episodes, or hear from you, our listeners.
Do software devs get annoyed when reviewers keep adding issues to a pull request?
On today's episode of Ruby for All, Andrew and Julie kick things off with a nostalgic discussion about the beloved game, “Plants vs. Zombies.” Julie explains the game's concept, setting the stage for a lively conversation that brings us into their gaming experiences and preferences, including cooperative versus competitive gaming. The conversation then transitions to topics relevant to the workplace, including teamwork and communication in a new project that Andrew introduces. They touch on the organizational structure at Podia, the project process, and roles within project teams. Code reviews within project teams are also explored, with insights into how they handle code reviews, expertise in specific code bases, and knowledge sharing strategies to mitigate the “bus factor.” Go ahead and download this episode now! [00:00:11] Andrew and Julie discuss the game “Plants vs. Zombies.” Julie explains the game's concept and Andrew talks about Call of Duty Zombies. [00:01:56] Julie tells us she like cooperative games vs. competitive gaming. Andrew explains different gaming genres, including strategy, shooting, and RPG. [00:03:20] They discuss playing Guitar Hero, Rock Band, and Mario Kart. [00:04:54] Andrew introduces a new project and emphasizes the importance of teamwork and communication. [00:06:18] Andrew explains the organizational structure at Podia, the project process, and roles within project teams.[00:09:22] Julie asks how many engineers there are at Podia and she inquiries about code reviews within project teams. [00:10:50] Andrew mentions expertise in specific code bases at Podia and how they track it, also, he discusses knowledge sharing to mitigate the “bus factor” within the team.[00:12:36] Julie wonders if a team of two typically consists of a backend and a frontend person. Andrew explains that at Podia, they have full-stack engineers, but some specialize more in frontend or backend work based on their skills and preferences. [00:13:18] A question comes up if Andrew does a lot of pairing, and he explains that pairing frequency varies among team members and shares his preference for daily pairing. [00:15:55] Andrew shares his assumption that when someone sends a pull request, their code is expected to work, emphasizing that code review serves other purposes. [00:16:27] Andrew discusses the purpose of code reviews and how they should focus on more than just syntax. He clarifies that code review helps ensure the right approach and maintains codebase integrity.[00:17:40] Julie mentions her habit of asking if a particular approach is correct during code reviews and discusses the importance of conventions and patterns. She also talks about her experience with cross-team pairing and how it helps identify edge cases and align with other teams' practices. [00:18:56] Andrew discusses the challenges of code review when teams are large and points out the potential for one person to become the primary reviewer.[00:20:43] Andrew suggests that small, specific pull requests with areas of interest can ease code review and mentions that Podia's teams are smaller, and codebases are more unified. [00:22:23] Julie shares that her organization had 70 engineers and how cross-team pairing benefits knowledge sharing. She reflects on the learning experience when joining a new team and processes can vary, suggesting that individuals can introduce their preferred practices.[00:24:15] Julie asks how Andrew discovers bugs in his code, and he explains Podia's error monitoring and support team processes for bug triage. Panelists:Andrew MasonJulie J.Sponsors:HoneybadgerLinks:Andrew Mason TwitterAndrew Mason WebsiteJulie J. TwitterJulie J. WebsitePlants vs. Zombies (00:11) - Discussion of "Plants vs. Zombies" and gaming preferences (01:56) - Exploring different gaming genres and cooperative gaming (03:20) - Playing games like Guitar Hero, Rock Band, and Mario Kart (04:54) - Introduction to a new project and teamwork importance (06:18) - Organizational structure and project processes at Podia (09:22) - Number of engineers at Podia and code review practices
Reimagine version control systems with Scott Chacon, Co-founder of GitHub and GitButler. Because, even Scott, a Git Veteran, will admit it: ``` Git is a pain sometimes.
Eine Code-Änderung zieht immer ein Code-Review nach sich und löst Wartezeiten aus. Aber muss das so sein? In dieser Episode sprechen Anja, Martin E. und Martin O. anlässlich des Prinzips „Ship“, „Show“ oder „Ask“ von Rouan Wilsenach über Code-Reviews. Dazu fragten sie Kolleginnen und Kollegen nach ihren Meinungen und Praxiserfahrungen und diskutieren auf dieser Grundlage gemeinsam, wann und in welchem Umfang Pull Requests und Code-Reviews sinnvoll und hilfreich sind. Außerdem beleuchten sie, was das mit Vertrauen im Team, Qualitätssicherung und Feedback zu tun hat, und zeigen, wie viele unterschiedliche Bereiche Code-Reviews streifen.
New Laravel features are making deployment easier than ever! In our second episode of season six, we explore various topics, screencasting.com by Aaron Francis, the Livewire stack within Breeze, new features in Laravel Prompts, Laravel Pail, a range of hosting choices, and an exciting addition – the new Envoyer tab now accessible within Forge. Additionally, Taylor addresses one of the most frequently asked questions and guides us through the steps involved in reviewing and merging pull requests. Screencasting - https://screencasting.com/ Taylor Otwell's Twitter - https://twitter.com/taylorotwell Laravel Twitter - https://twitter.com/laravelphp Laravel Website - https://laravel.com/ Laravel Folio - https://laravel.com/docs/10.x/folio Livewire Volt - https://livewire.laravel.com/docs/volt Tighten.co - https://tighten.com/ Laravel Pail - https://github.com/laravel/pail Docker - https://www.docker.com/company/ Jetstream - https://jetstream.laravel.com/ Breeze - https://laravel.com/docs/10.x/starter-kits#laravel-breeze Blade - https://laravel.com/docs/10.x/blade Prompts - https://laravel.com/docs/10.x/prompts Forge - https://forge.laravel.com/ Envoyer - https://envoyer.io/ Vapor - https://vapor.laravel.com/ Ruby on Rails - https://rubyonrails.org/ Digital Ocean - https://www.digitalocean.com/ Fly.IO - https://fly.io/ -----Editing and transcription sponsored by Tighten.
גיטהאב הוא שירות לניהול גרסאות, אבל הוא גם הרבה יותר מזה. כאשר נולד הוא היווה מהפכה, פלטפורמה שהגדירה את עולם הפיתוח, כמעט דת. זה קרה ב-2007, ומאז זרמו אינסוף Pull Requests בשרתים שלו. ב-2018 נרכש השירות על-ידי מיקרוסופט, בכ-7.5 מיליארד דולר. איך כל זה התחיל? ולאן זה הולך מכאן?סקוט צ'אקון הוא אחד המייסדים של גיטהאב. הוא אוונגליסט של גיט, מרצה ומפתח, והיום הוא כבר מרים בעצמו סטרטאפ חדש, GitButler, גם הוא בתחום ניהול הגרסאות. הוא הגיע לתל-אביב לכנס המפתחים של WIX, וזאת היתה הזדמנות נהדרת בשביל עמית בן דור ובשבילי לפגוש אותו לשיחה, שניים על אחד, על רקע קולות רחוקים, של משתתפי הכנס: שיחה מרתקת על העבר, ההווה והעתיד של תחום הפיתוח ועליית הבינה המלאכותית. האזנה נעימה, בועז לביא לינק לאתר הסטארט-אפ החדש של סקוט :https://gitbutler.com/
Marc Schwieterman from daily.co joins us to talk about the in and outs of building a video SDK and what capabilities are for iOS.Guest Marc Schwieterman marcschwieterman.com Github @marcisme Twitter @mschwieterman Mastodon @marc@xoxo.zone Daily Related Episodes Spatial Experiences of the Wild with Adrian Eves It Depends with Brandon Williams Empower Station with Matt Braun Connecting Wirelessly with Gui Rambo Related Links Daily Daily Client SDK for Python — daily-python documentation How and why Daily is using Rust for our WebRTC API platform Introducing Daily Adaptive HEVC for iOS native video Video SDK Features: Build Video Calls into any UI or App - Daily The Swift Package for the Daily Client on iOS daily-ios-starter-kit WWDC Create a more responsive camera experience Discover Continuity Camera for tvOS Support external cameras in your iPadOS app What's new in voice processing iPhone 15 Pro has an AV1 decoder but no encoder Add support for visionOS targets · Issue #642 · rust-lang/compiler-team Support Apple tvOS in libstd by thomcc · Pull Request #103503 · rust-lang/rust Social MediaEmailleo@brightdigit.comGitHub - @brightdigitTwitter BrightDigit - @brightdigitLeo - @leogdionLinkedInBrightDigitLeoInstagram - @brightdigitPatreon - empowerappshowCreditsMusic from https://filmmusic.io"Blippy Trance" by Kevin MacLeod (https://incompetech.com)License: CC BY (http://creativecommons.org/licenses/by/4.0/) (00:00) - What is Daily (03:16) - Building an iOS SDK for Video (16:19) - Swift UI (28:12) - WWDC 2023 (33:06) - AV Foundation and Networking (41:18) - Future Plans and AI ★ Support this podcast on Patreon ★
Para el que no sepa que es una pull request (enlace), se da cuando un desarrollador/a solicita que su trabajo (código fuente) sea revisado para ser integrado en una base de código mayor común. Si esto es algo nuevo para ti, que la terminología no te haga pensar que no tiene nada que ver contigo. Lo tiene. Al fin y al cabo una pull request (PR) requiere mostrar tu trabajo a los demás, exponiéndote a las críticas. Esto, en cualquier profesión, puede ser un momento MUY angustioso. Basándome en mi experiencia, aquí van algunos consejos para hacer la situación más llevadera y —quién sabe— conseguir que incluso la disfrutes. Vamos allá. --- Send in a voice message: https://podcasters.spotify.com/pod/show/maestriafm/message
Links from the show:Microsoft is bringing Python to Excel - The VergeMySQL Bugs: #108155: BEFORE INSERT trigger causes Error 1048 during UPDATE[10.x] Adds a createOrFirst method to Eloquent by tonysm · Pull Request #47973 · laravel/framework · GitHubhttps://twitter.com/calebporzio/status/1694735430061539706ElePHPant.me | The best place for your elePHPant collectionDatabases and the Doctrine ORM (Symfony Docs)A Field Guide to ElephpantsQuickstart | Laravel LivewirePHP Doesn't Suck Anymore? | Prime Reacts - YouTubehttps://twitter.com/shocm/status/1693325325126815816This episode of PHPUgly was sponsored by:Honeybadger.ioBuilt for Developers. Monitoring doesn't have to be so complicated. That's why we built the monitoring tool we always wanted: a tool that's there when you need it, and gets out of your. Everything you need to keep production happy so that you can keep shipping. Deploy with confidence and be your team's DevOps hero.https://www.honeybadger.io/JetBrains PhpStormThe Lightning-Smart PHP IDE. Join over 600,000 happy PhpStorm users worldwide!https://www.jetbrains.com/phpstorm/php[architect]php[architect] magazine is the only technical journal dedicated exclusively to the world of PHP. We are committed to spreading knowledge of best practices in PHP. With that purpose, the brand has expanded into producing a full line of books, hosting online and in-person web training, as well as organizing multiple conferences per year.https://www.phparch.comPHPUgly streams the recording of this podcast live. Typically every Thursday night around 9 PM PT. Come and join us, and subscribe to our Youtube Channel, Twitch, or Twitter. Also, be sure to check out our Patreon Page.Twitter Account https://twitter.com/phpuglyMastodon Account https://phparch.social/@phpuglyHost:Eric Van Johnson | Mastodon: @eric@phpartch.socialJohn Congdon | Mastodon: @john@phpartch.socialTom RideoutStreams:Youtube ChannelTwitchPowered by RestreamPatreon PagePHPUgly Anthem by Harry Mack / Harry Mack Youtube ChannelThanks to all of our Patreon Sponsors:***** PATREON SUPPORTS SPONSOR LEVEL **Honeybadger (https://honeybader.io)** Patreon Supports **ButteryCrumpetFrank WDavid QShawnBoštjanMarcusShelby CS FergusonRodrigo CBillyDarryl HKnut Erik BDmitri GElgimboMikePageDevKenrick BKalen JR. C. S.Peter AClayton SRonny MBen RAlex BKevin YEnno RWayneJeroen FAndy HSeviCharltonSteve MRobert SThorstenEmily JJoe FAndrew WulrikJohn CJames HEric MEd GRirielilHermitChampJeffrey DChris BTore BBek JDonald GPaul KRonny MNDustin UMel S
Why do programmer shame each other with pull requests?
Guest Dawn Foster | Andrew Nesbitt Panelist Richard Littauer Show Notes Hello and welcome to Sustain! The podcast where we talk about sustaining open source for the long haul. Richard is at the State of Open Con 2023 UK in London, which is a conference dedicated towards open source. Today, he has two guests joining him in-person and his first guest is Dawn Foster, who's Director of Open Source Community Strategy in VMware's OSPO. We'll hear about Dawn's responsibilities at VMWare, some highlights on what she talks about at her talk, some great tools she uses, and the importance of mentoring to grow the next wave of maintainers. Richard's next guest is Andrew Nesbitt, who's a Software Engineer, Founder of Libraries.io, and a new project he's working on with Ben Nickolls called, Ecosyste.ms. We'll learn more about a project he did a while ago called, 24 Pull Requests, and the newest project, Ecosyste.ms, and how it's different from Libraries.io. Download this episode now to hear much more! [00:00:48] We hear about Dawn's talk on leading in open source and taking a strategic approach and she shares some bullet points from it. [00:03:33] Is there a way to win an ROI argument with an argumentative manager and how can you win those conversations? Dawn explains ways to justify it. [00:06:54] Richard brings up how he thinks about open source as two different buckets, one as developers, and the other as enterprise corporate models, and wonders if they're the same type of community, and Dawn explains how they blend together. [00:08:13] Dawn details her job and responsibilities at VMware. [00:10:15] We heard Dawn mention she uses CHAOSS tools, but are there others she uses to make it easier for her as a community strategy? She tells us about a metrics model for the CHAOSS Project called, Starter Project Health Metrics Model. [00:12:19] At VMware, their business units operate independently, and Dawn tells us how they act in more of a mentor capacity for the groups. [00:13:38] Dawn shares her thoughts on how engineers are going to move forward in their career from the project to have the skills necessary to do the same thing at a new project. She tells about a talk she did geared towards maintainers. [00:16:57] How does Dawn operationalize the off giving of trust for maintainers? [00:18:42] Dawn shares how she's looking forward to a future with looking at things from a data based approach, and where you can follow her on the internet. [00:20:17] Andrew gives us the history of how he met Ben Nickolls, a project he started a while ago called, 24 Pull Requests, and how libraries.io started. [00:28:05] Has Andrew ever looked at projects that are popular or that are infrastructure level which may be used in closed source, but have licenses that discriminate against closed source usage? [00:28:43] Andrew and Ben are working on a new project called Ecosyste.ms. What's the difference between that and libraires.io? [00:33:50] If you're looking to improve or understand the stack of your dependencies, Andrew tells us what the most interesting use case of Ecosyste.ms is for a maintainer or community manager. [00:37:32] Find out where you can follow Andrew on the web. Links SustainOSS (https://sustainoss.org/) SustainOSS Twitter (https://twitter.com/SustainOSS?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor) SustainOSS Discourse (https://discourse.sustainoss.org/) podcast@sustainoss.org (mailto:podcast@sustainoss.org) Richard Littauer Twitter (https://twitter.com/richlitt?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor) Dawn Foster Twitter (https://twitter.com/geekygirldawn?lang=en) Dawn Foster GitHub (https://github.com/geekygirldawn) Dawn Foster Mastodon (https://hachyderm.io/@geekygirldawn) Dawn Foster Blog (https://fastwonderblog.com/) CHAOSS (https://chaoss.community/) Andrew Nesbitt Twitter (https://twitter.com/teabass) Andrew Nesbitt Website (https://nesbitt.io/) Andrew Nesbitt GitHub (https://github.com/andrew) Ben Nickolls Twitter (https://twitter.com/BenJam) Libraries.io (https://libraries.io/) 24 Pull Requests-GitHub (https://github.com/24pullrequests/24pullrequests) Ecosyste.ms-GitHub (https://github.com/ecosyste-ms) Sustain Podcast-Episode 70: Avi Press and Scarf (https://podcast.sustainoss.org/guests/avi-press) Credits Produced by Richard Littauer (https://www.burntfen.com/) Edited by Paul M. Bahr at Peachtree Sound (https://www.peachtreesound.com/) Show notes by DeAnn Bahr Peachtree Sound (https://www.peachtreesound.com/) Special Guests: Andrew Nesbitt and Dawn Foster.
This week Bekah and Dan sat down with Aishwarya, front-end developer from India, about her first open source contributions and how her perspective on open source changed after her fourth (of ten!) Pull Request during Hacktoberfest.One word to describe you - DedicatedOne word to describe your developer journey - EvolvingMe Before You by Jojo MoyesOpen-Source YouTube Videos:How to Find Beginner-Friendly Open Source Projects4 Beginner Friendly Open Source Projects to Contribute before 20235 Beginner friendly Open Source Organisations to start your Open source journeyAbout AishwaryaAishwarya Mali is a front-end developer (React+XState+Redux) based in Pune, India. She loves to read!@aishwarya-mali on GitHub@aishwaryamali24 on Twitter@aishwaryamali24 on LinkedInSponsor Virtual Coffee! Your support is incredibly valuable to us. Direct financial support will help us to continue serving the Virtual Coffee community. Please visit our sponsorship page on GitHub for more information - you can even sponsor an episode of the podcast! Virtual Coffee: Virtual Coffee: virtualcoffee.io Podcast Contact: podcast@virtualcoffee.io Bekah: dev.to/bekahhw, Twitter: https://twitter.com/bekahhw, Instagram: bekahhw Dan: dtott.com, Twitter: @danieltott
With companies taking a long look at developer experience, it's time to turn that attention on the humble pull request. The folks at LinearB took a look at a million PRs — four million review cycles involving around 25,000 developers — and found that it takes about five days to get through a review and merge the code. CI/CD has done wonders getting deployments down to a day or less; maybe it's time for continuous merge next. On this sponsored episode of the podcast, we chat with COO Dan Lines and CEO Ori Keren, co-founders of LinearB, about why PRs are the chokepoint in the software development lifecycle, uncovering and automating the hidden rules of review requests, and their free tool, gitStream, that'll find the right reviewer for your PR right now. Episode notes: So why do reviews take so long? Context switches, team leads who review everything, and the bystander effect are top contenders.Dan and Ori hope their gitStream tool can reduce the time PRs take by automating a lot of the hidden rules for reviews. Check it out at gitstream.cm or linearb.io/dev.Dan Lines hosts his own podcast: Dev Interrupted. Check out this episode with Stack Overflow's very own Ben Matthews. Connect with Dan Lines and Ori Keren on LinkedIn. Shoutout to Rudy Velthuis for throwing a Lifeboat to the question Why should EDX be 0 before using the DIV instruction?
Git is an essential part of software development, and understanding how to use it can be a daunting task for beginners. For those just starting out, the process of writing code, reviewing code changes, and then approving pull requests can be particularly intimidating. However, with the right guidance, new developers can quickly become proficient in… Continue reading 50: Git for Beginners: Writing, Reviewing, And Approving Pull Requests The post 50: Git for Beginners: Writing, Reviewing, And Approving Pull Requests first appeared on Deeper Than Tech.
How do you build a REST API using the Flask web framework? How can you quickly add endpoints while automatically generating documentation? This week on the show, Real Python author Philipp Acsany is here to discuss his tutorial series "Python REST APIs With Flask, Connexion, and SQLAlchemy." Christopher Trudeau is also here with another batch of PyCoder's Weekly articles and projects.
Subscribe to The Realignment on Supercast to support the show and access all of our bonus content: https://realignment.supercast.com/.The Pull Request: https://www.callin.com/show/the-pull-request-ucnDJmEKAaBalaji Srinivasan's Network State Realignment Episode: https://podcasts.apple.com/us/podcast/264-balaji-srinivasan-how-and-why-to-start-new-countries/id1474687988?i=1000569114998The Network State: https://thenetworkstate.com/Antonio's Previous Realignment Appearance: https://podcasts.apple.com/fr/podcast/140-antonio-garc%C3%ADa-mart%C3%ADnez-americas-thirty-years-war/id1474687988?i=1000528206653&l=enREALIGNMENT NEWSLETTER: https://therealignment.substack.com/BOOKSHOP: https://bookshop.org/shop/therealignmentEmail us at: realignmentpod@gmail.comDuring our Labor Day Weekend hiatus, Marshall joined previous Realignment guest Antonio García Martinez's Callin podcast The Pull Request. They discussed "What's broken, why, and how to fix it (or do we just move to Balaji's network state?)"
Watch the live stream: Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training Test & Code Podcast Patreon Supporters Brian #1: The Python GIL: Past, Present, and Future Bary Warsaw and Paweł Polewicz Michael #2: Announcing the PyOxy Python Runner PyOxy is all of the following: An executable program used for running Python interpreters. A single file and highly portable (C)Python distribution. An alternative python driver providing more control over the interpreter than what python itself provides. A way to make some of PyOxidizer's technology more broadly available without using PyOxidizer. PyOxidizer is often used to generate binaries embedding a Python interpreter and a custom Python application. However, its configuration files support additional functionality, such as the ability to produce Windows MSI installers, macOS application bundles, and more. The pyoxy executable also embeds a copy of the Python standard library and imports it from memory using the oxidized_importer Python extension module. Brian #3: The unreasonable effectiveness of f-strings and re.VERBOSE Michael #4: PyCharm PR Management Really nice but not very discoverable Not covered in the docs, but super useful. Available in pro and free community edition Steps Open a project that has an associated github git repo If the GitHub repo has a PR, you'll see it in the Pull Requests tab. Browse the PRs, and open them for details There you can see the comments, close or merge it, and more Most importantly, check it out to see how it works Extras Brian: Pandas Tutor: Using Pyodide to Teach Data Science at Scale Michael: Python + pyscript + WebAssembly: Python Web Apps, Running Locally with pyscript video is out And an iOS Python Apps video too Joke: Losing an orm!
Antonio Garcia Martinez (Chaos Monkeys, The Pull Request) and Zach Coelius (Investor, Coelius Capital) join to discuss a wide range of news topics including Antonio's trip to Ukraine, the one-click company Fast closing down, Elon Musk joining Twitter's board, Apple taking on Facebook in ads (and how it will impact the battle for Ar/VR), crypto regulation and more!
Antonio Garcia Martinez (Chaos Monkeys, The Pull Request) and Zach Coelius (Investor, Coelius Capital) join to discuss a wide range of news topics including Antonio's trip to Ukraine, the one-click company Fast closing down, Elon Musk joining Twitter's board, Apple taking on Facebook in ads (and how it will impact the battle for Ar/VR), crypto regulation and more! (00:00) Intro (01:08) Jason catches up with AGM & Zach Coelius (11:03) Vanta - Get $1,000 off automating your SOC 2 at https://vanta.com/twist (12:18) AGM on going to Ukraine (23:10) Squarespace - Use offer code TWIST to save 10% off your first purchase of a website or domain at https://Squarespace.com/TWIST (24:37) Zach and AGM on if the US would go to war (30:43) Microsoft for Startups Hub - Apply in 5 minutes, no funding required, sign up at http://aka.ms/thisweekinstartups (32:00) More on Ukraine and America's feelings towards Putin and Russia (48:38) Fast (one-click checkout startup) closes down (52:24) Thoughts on Elon Musk joining Twitter board (1:02:50) Talking about FB hurt by Apple App tracking transparency update FOLLOW Zach: https://twitter.com/zachcoelius FOLLOW Antonio: https://twitter.com/antoniogm Read the Pull Request: https://thepullrequest.com FOLLOW Jason: https://linktr.ee/calacanis FOLLOW Molly: https://twitter.com/mollywood