本周 PyDev:鲁文·勒纳
原文:https://www.blog.pythonlibrary.org/2020/11/23/pydev-of-the-week-reuven-lerner/
本周,我们欢迎鲁文·勒纳(@鲁文·勒纳)成为我们本周的 PyDev。Reuven 是一名培训师,在世界各地教授 Python 和数据科学。你可以在他的网站上了解更多。鲁文还有一份关于成为更好的开发者的时事通讯,你可能会喜欢。
鲁文还免费提供以下资源:
- 他的免费 6 小时“王牌 Python 访谈”课程
- 他免费的 15 小时“面向非程序员的 Python”课程
- 每周 Python 练习,一套提高你的 Python 流畅性的课程
- 鲁文的 YouTube 频道
让我们花些时间更好地了解鲁文!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
我在美国东北部长大,在麻省理工学院学习计算机科学,于 1992 年毕业。在惠普和时代华纳工作后,我于 1995 年 12 月搬到以色列,开了自己的咨询公司。那时我既没有做过咨询,也没有经营过企业,但我单身且乐观,所以我尝试了一下。
从那以后,我一直在为自己做生意,中途停下来从西北大学获得了一个学习科学的博士学位。我的论文涉及到建模共享空间的创建,它允许人们在创建基于代理的模型时进行协作。
多年来,我什么都做一点:我写软件,做系统管理,调数据库,咨询公司,做培训。大约十年前,我意识到培训比发展更有趣、更有利可图,而且专注于一件事是很好的商业实践。从那时起,我一直是一名全职的 Python 培训师。大多数时候,我为世界各地的公司授课 4-10 个小时,从“面向非程序员的 Python”一直到高级 Python 研讨会。
我已婚,有三个孩子(20 岁、18 岁和 15 岁),住在莫迪因,一个位于特拉维夫和耶路撒冷之间的小城。
至于爱好,过去几年来我最大的爱好就是学习中文。我觉得这很有趣,也很实用,因为我通常每年都会去中国几次,在那里进行企业培训。(由于疫情,这一计划显然被搁置了。)
除了中文,我还读很多书,尤其是时事方面的。我也喜欢做填字游戏,并且在稳步提高。我家里的每个人,包括我,也喜欢烹饪,尽管我并不经常有机会像我希望的那样做。从疫情开始,我每天都要走很长很早的路——大约每天 15 公里,从凌晨 4 点开始。我发现这是一种很好的、令人耳目一新的方式,可以在呆在家里的时候出去走走。
你为什么开始使用 Python?
我是在 1993 年初接触 Python 的,当时 Web 还很年轻,我们正在寻找可以用来编写服务器端脚本的语言,也就是“Web 应用程序”(实际上,我反对在我的名片上出现“应用程序开发人员”这个词,因为我认为把我们写的东西叫做“应用程序”是很可笑的。哎呦。)
当时,我学了一些 Perl 和 Python。当时,Perl 更受欢迎,并且有一个更大的第三方模块库。因此,虽然我知道 Python 并向我认识的任何想开始编程的人推荐它,但我个人使用 Perl 有一段时间,继续到处使用 Python,但并没有用它做太多。
我发现 Perl 作为一种语言或社区做得并不好,并试图找出我可以前进的方向。我尝试过 Python,但是当时的 Web 应用框架太弱或者太怪异。(我甚至用 Zope 做了一个大项目,用它的对象数据库。)那是 Ruby on Rails 发布的时候;因为 Ruby 基本上是带有 Smalltalk 对象的 Perl,所以我很高兴使用这种语言。
但是我不能不注意到 Ruby 很大程度上被困在了 Web 世界,而 Python 的范围和关注度都在增长。PyPI 上第三方包的数量正在迅速增长,当我决定专门做培训(而不是与开发和咨询一起做)时,我发现对 Python 的需求远远超过了对其他任何东西的需求。
从那以后,我深深地沉浸在 Python 世界中,我非常高兴。
你还知道哪些编程语言,你最喜欢哪一种?
我在大学时学习了 Lisp,现在我仍然使用 Emacs 进行编辑——所以我继续对 Lisp 这种语言感兴趣,并经常引用我在使用 Python 时学到的概念。
正如我上面写的,我喜欢和 Ruby 一起工作。在 Python 中一切都是对象,但在 Ruby 中更是如此。我喜欢 Ruby 世界的自由和创造性,但是对象模型对人们来说很难理解——在 Ruby 中,如果你早餐不吃对象,你会很难接受它。
我在研究生院的研究小组开发了 NetLogo,一种基于代理的建模语言。这是一种完全不同的编写代码和表达思想的方式,更多的开发人员应该尝试这种方式。
我不确定这些是否是我最喜欢的;我使用 Python 已经很长时间了,我发现我可以很容易地用它的习惯用法来表达自己。
我一直希望能找到时间学习 Rust,因为不需要我使用指针的系统语言的想法看起来很有吸引力,而且我已经听到了很多关于它的好消息。但是我一直在努力找时间学习它。
你现在在做什么项目?
我总是做太多的事情!以下是其中的几个例子:
- 我不断发布我的“更好的开发人员”时事通讯,订阅者的数量持续快速增长。这是一种很奇妙的感觉,能够向世界范围内的大量读者发布,并且知道我能够帮助他们更好地理解 Python。
- 我正在录制一堆新的 Python 课程,包括关于(a)使用文件,(b)模块和包,©装饰者。我也意识到我的网上商店现在有太多的东西,人们很难知道从哪里开始。所以我开始着手重新做这件事。
- 我正在为曼宁写一本关于熊猫的新书,我希望能比上一本书写得更快——这并不困难!
- 我正在定期更新我的 YouTube 频道。我尝试每周上传 1-2 个视频,通常是回答我在课堂上从学生那里,甚至是从网上联系我的人那里得到的一个问题。我仍在学习如何使用这种媒体,但能够通过截屏接触到这么多人是很有趣的。
- 我开始寻找提供培训的新方法。很明显,因为疫情,我不再亲自授课,所以我获得了很多使用 WebEx 和 Zoom 教学的经验(甚至在今年之前)是件好事。然而,我现在向公司提供各种混搭的选择——包括我录制的课程和现场问答跟进、半天的会议,甚至还有我的客户正在试验的半天的单主题课程,我也是。
- 我将在中国成立一家公司,处理我将来在那里进行的任何培训。这是一个新的大冒险,可能需要我雇佣一个主要用中文交流的人。我认为这可能会大大提高我的流利程度,也会让这位员工抓狂。
哪些 Python 库是你最喜欢的(核心或第三方)?
如果我想尝试一些东西,我会在训练中,甚至在日常工作中大量使用 Jupyter。我一直对核心开发人员在其中加入的功能印象深刻。
但是就深度而言,我不得不说熊猫继续让我惊奇。每次我使用它,我发现的不仅仅是一点点新功能,而是数十种我以前不知道存在的方法和选项。你可能整个职业生涯都在和熊猫打交道,你可能不知道它所能提供的一切。
我也成了 pytest 的忠实粉丝。我所有的“每周 Python 练习”课程现在都使用 pytest 来检查代码,我想说这些课程已经因此得到了显著的改进。
最后,开发者 PyPI 和 pip 的团队值得所有人的感谢和赞扬。在 2019 年 PyCon 期间,我在 sprints 上做了一点工作,我发现这是一小群聪明勤奋的人,他们支持的基础设施可以与许多企业运营相媲美。
作为一名 Python 训练者,你最享受的是什么?
我喜欢帮助人们克服概念上的障碍。很多人已经使用 Python 几个月或几年了,却没有真正理解这门语言的逻辑。如果我能帮助他们分解这些想法,这样他们就能理解它们是如何工作的,并被全面应用,这真的让我很开心。
它可以像字典如何工作,或者“for”循环如何在幕后工作一样简单。也可以是更复杂的东西,比如内部函数、变量作用域或装饰器。一旦人们理解了我们可以在 Python 中不断重复应用的简单规则,他们的工作就更容易了,我很满意他们能够比以前用更少的时间和更少的代码做更多的事情。
对于你的学生来说,Python 中的哪些概念最难学?
理解对人们来说是极其困难的。语法已经够难了,但是理解when你想使用一个理解而不是传统的“for”循环真的很难。人们经常问我他们是否应该使用理解,因为这样更有效。当我说理解与效率无关时,他们经常感到惊讶。相反,它们是关于你试图完成的事情——如果你试图多次执行某事(一个常规的循环),或者如果你试图基于一个现有的 iterable 创建一个新的列表。起初,这种区别很难区分,但随着时间的推移,它变得越来越清晰。
装饰者是一个人们一开始不理解的话题,但我试图对其进行分解和解释。(我在 PyCon 2019 上做了一个主题为“实用装饰师”的演讲。)一开始大家都不理解装修工怎么写。然后他们不明白该拿他们怎么办。然后他们被打开,发现各种各样的用途——发现他们已经看到和使用装饰者,只是不知道或不理解他们在做什么。
在我的高级课程中,我谈到了描述符——人们真的很难理解。我们认为我们知道当我们访问 a.b 时发生了什么,但是如果 b 是一个类属性并且是一个具有 get 方法的类的实例,那么各种神奇的事情就会发生。人们对我们为什么有它们感到困惑,直到我告诉他们,为了让方法工作,你需要描述符。
最后,人们很难理解在 Python 中,效率不是最重要的事情,尤其是那些有 C 和 C++背景的人。更确切地说,可读性和可维护性。我总是跟人说,Python 非常适合一个人贵,电脑便宜的时代。这并不意味着效率不好,但这不是首先要担心的事情。我们以人为本!
你还有什么想说的吗?
Python 社区给我留下了深刻的印象,因为它欢迎新来者并耐心解答他们的问题。有很多人在学习 Python,对他们来说,这不是一种热情,也不是一长串语言中的最新语言——这是他们必须为工作做的事情,他们对术语、生态系统甚至语法有点困惑。我喜欢与这门语言的新来者一起工作,我鼓励每个人尽自己所能帮助大量涌入的编程移民(因为没有更好的术语),帮助他们理解这一切。\
鲁文,谢谢你接受采访!
本周 PyDev:瑞奇·怀特
原文:https://www.blog.pythonlibrary.org/2018/07/02/pydev-of-the-week-ricky-white/
本周,我们欢迎里基·怀特( @EndlessTrax )成为我们本周的 PyDev。瑞奇是白狮媒体的所有者。他也是真实 Python 的社区经理。如果你去他的网站,你会发现他写过一些非技术类的书,写得还蛮工整的。你也可以查看他的 Github 简介看看他在做什么项目。让我们花几分钟来了解一下 Ricky!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
我来自英国的莱斯特。我在 2014 年 10 月下旬搬到了美国。在移居美国之前,我是一名专门从事 ICU 护理的注册护士。当我们移民到弗吉尼亚时,我和妻子交换了家庭角色,她回去工作,而我成了一个全职爸爸,照顾我们当时 3 岁的儿子和 6 个月大的女儿。一份我无论如何都不会改变的工作。
过去的 3.5 年一点也不无聊,发生了太多的事情。更重要的是,我已经写了两本书。我学会了如何编码。并实现了自己创业的毕生抱负。显然,照看两个小孩还不够累,而且我显然讨厌睡觉
当我没有完成我在生活中的主要任务,编写或抛出一些代码时,我通常住在 dojo 中。我是一名热情的武术家,拥有 Shodan(一级黑带)的头衔,我每周都会花一些时间教授其他学生这门艺术,帮助他们成长。
我还患有一种叫做强直性脊柱炎的慢性退行性疾病。自从 2010 年被确诊以来,我一直是一名患者倡导者,目前担任 501c3 非营利组织的副主席,该组织由我协助创建,旨在提高对这种疾病的认识,美国有 270 万人患有这种疾病(这比多发性硬化症和帕金森症的总和还要多!)该慈善机构名为同心协力。
只是为了好玩,我下象棋,有轻度到中度的盆景瘾,我收藏了一些。
你为什么开始使用 Python?
简短的回答是:因为每个人都在谈论它有多棒,而我正饱受 FOMO 之苦(害怕错过。)
稍微长一点的回答是:我之前尝试过几种语言,并且用每种语言开发了几个小规模的应用程序,因为我试图自学如何编码。我学习的部分问题是我没有方向。我不完全确定我想要制造什么样的产品和/或我想要解决什么样的问题。所以我只是从一个教程转到下一个教程,看看哪些内容被卡住了。最终,我找到了使用 Python 的方法,并打开了开关。突然间,我写的代码真的像预期的那样工作了。但更重要的是,我知道为什么。我刚刚发现(甚至是基本的)编程原则在 Python 中比在其他语言中更容易掌握,所有的点开始连接起来。知道我真的能做点什么感觉很棒。没有什么比成功更能激励人了(也许是恐惧,但我们不会去那里。)
你还知道哪些编程语言,你最喜欢哪一种?
当我开始自学如何编码时,我是从 C++开始的。不过,我从来没有真正在里面做过任何东西,我发现它非常令人困惑。然而,我确实学习了指针和内存管理。这是我发现在大多数教程中从来没有提到过的,因为其他语言(如 Python)有所有“奇特的东西”,如垃圾收集,所以人们认为这是理所当然的,或者从来不知道幕后发生了什么。我认为这是一种耻辱。
之后,我转向了 HTML 和 CSS,最终转向了 PHP(这样我就可以构建 WordPress 主题了。)我一点都不喜欢 PHP,所以接下来尝试了 C#。我用 C#构建了几个项目,甚至冒险去了 ASP.NET。我几乎没有学过 Python,因为我认为切换到另一种新语言只会拖延时间和分散注意力。但我确实学会了,虽然我确实对。到目前为止,Python 是我最喜欢的语言,每当我想构建一个新项目时,它总是我的第一选择。
你现在在做什么项目?
现在,我正在尝试用 Django 为我的个人网站重新设计建立我自己的 CMS。我本来打算选择静态网站生成器 Pelican,但后来我决定在某个时候可能会直接销售我现在和未来的书籍,并重新开始写博客。那么,为什么不建立我自己的平台,并在这个过程中学到很多东西呢?这在当时听起来是个好主意——我可能会后悔。
除此之外,我还想为自己的利益做一些小项目。就像一个象棋 app,它分析我以前的比赛,告诉我各种有用的信息,像什么开局对我来说胜率最高,我的比赛平均时长等等。如今很难找到时间,所以现在时间在慢慢消耗。
哪些 Python 库是你最喜欢的(核心或第三方)?
烧瓶、请求和美味的汤是我写的几乎所有东西中的三个。这些是我的最爱。我可以利用其他人来完成同样的任务,但我不会。我总是能找到我喜欢的工作。
你是如何成为一名作家的?
我写的第一本书是一本非虚构的书,基于我作为护士和慢性病患者的经历。很少有人能体验桌子的两面,所以我认为有必要写一本书来帮助患者(患有任何长期疾病)从他们的医疗保健预约中获得更多。在某种程度上,它结束了我以前的护士生涯,并确保我在过去十年中获得的知识得到了很好的利用,并在文字中永垂不朽。
第二本书是我的第一部小说。没有短篇故事前奏,或 fanfic。我拿着一本完整的小说一头扎了进去。这很有趣,而且是系列的第一部,所以接下来至少还会有两部。它开始时更像是一个遗愿清单,但是当我深入研究“如何”写小说时,我发现它与编码有很多相似之处(真的。)我对讲故事和整个过程非常感兴趣。以至于它也开始改变我写非小说类文章的方式,变得更好。哦,和我以前的书不同,我用笔名写这本书。拥有另一个自我很有趣!😊
作为一名作者,你学到的前三件事是什么?
我喜欢这个问题,因为我真诚地相信这些要点对初露头角的开发人员也是很好的建议。
- 完美是完成的敌人。把该死的文字/代码写好就行了。稍后编辑/重构。把它们都写在纸上。回去把它做得漂亮些,以后再完善它。您不能编辑空白页,也不能编译空白页。所以再丑也要拿出来。
- 现在你在页面/文件上有些东西了,是时候“杀死”你的宝贝们了。删除整段文字/代码没问题。人们讨厌这样做,他们觉得自己失败了或者浪费了时间。这不是真的。每次总是以最好的方式写东西是很好的,但是没有人这样做。这是不现实的。那么如果你必须删除并重写一整个场景或类呢?你刚刚学到了一些东西。学习如何不做某事通常比学习“最佳”方式更重要。它还将帮助您更深入地理解某些东西为什么有效或无效。删除键是你的朋友,从中学习吧。
- 也许这应该先进行——但是制定一个计划。在你坐下来写一本书或一个应用程序之前,先把它计划好。你越是提前了解你想要的外观和感觉。您需要花费在编辑/重构上的时间就越少。写列表,勾画用户界面,无论需要什么,先计划好。
你还有什么想说的吗?
乌鸦队加油。
谢谢你接受采访,瑞奇!
本周 PyDev:Robert cimr man
原文:https://www.blog.pythonlibrary.org/2018/02/05/pydev-of-the-week-robert-cimrman/
本周,我们欢迎罗伯特·西蒙成为我们本周的 PyDev!罗伯特是SF epy:Python包中的简单有限元的项目负责人。他也是 NumPy 和 SciPy 的撰稿人。你可以在 Github 上看到他正在做的一些项目。让我们花一些时间来更好地了解他!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
我在硕士阶段学习应用数学(数值方法和并行过程),然后在博士阶段转到生物力学(主题:生物组织的数学建模)。除了用电脑工作,我还喜欢音乐(越难越好),阅读各种材料(从物理/科学到科幻小说到幻想)和滑雪/爬山。
你为什么开始使用 Python?
我在一个与 OSS-相关的服务器上看到了一篇关于 Python 的文章(捷克语为 root.cz,https://www.root.cz/clanky/nebojte-se-hroznyse/)引起了我的注意——当时(2000 年)我主要使用 C 语言,所以一种具有良好可读性的语法的语言看起来非常有趣,它具有现成的链表和哈希表,并且不需要手动管理内存。几年后,我开始了一个真正的 Python 项目,后来变成了 SfePy。当时科学 Python 生态系统还处于起步阶段,所以我不时需要“挠痒痒”,并为 NumPy(array stops)和 SciPy(各种东西,大部分与稀疏矩阵有关)等项目做出贡献。
你还知道哪些编程语言,你最喜欢哪一种?
我非常了解 C,虽然我不再经常使用它。很多年前,我使用过一点 C++,但并不喜欢它。甚至在更早的时候,我真的很喜欢用汇编语言和各种基础知识在我还在使用的 Atari 520 ST 机器上编程。
现在我几乎只使用 Python 工作,多年后我仍然喜欢它。我不时被函数式语言(现在是 Clojure)所吸引——当我有时间的时候,我想适当地学习一门语言(嗯…).所以最近我开始在我的 Python 代码中使用越来越多的功能特性。
你现在在做什么项目?
作为我工作的一部分,我正在开发 SfePy 包(Python 中的简单有限元)——我正在与两组在完全不同的上下文中使用它的人合作(使用均匀化理论和从头计算量子力学计算的多尺度建模)。同时,我正在开发一些与我在这些项目中的工作相关的研究代码,但是这些代码是不公开的(没有适合普通读者的文档等)。).
然后我在 github 上有一些小项目,但是一般感兴趣的只是我维护的 scikit-umfpack 包装器包(希望 umfpack 解算器有一天会在 scikit-sparse 中可用)。
哪些 Python 库是你最喜欢的(核心或第三方)?
我一直在使用 NumPy、SciPy 和 Matplotlib,所以肯定是那些。IPython 和相关项目非常适合交互式工作。我也喜欢使用 sympy 和 cython。从 Python core 开始喜欢 itertools、functools 等支持函数式代码编写风格的模块。最后,在我的虚拟“查看”列表上的大字母中,Dask 和 Numba 代表加速,而 Theano 主要代表自动区分特性。
你创建 SfePy 包的动机是什么?
在我的博士研究期间,我应该对一些复杂的生物组织进行数学建模,如肌肉或骨骼。可用的商业有限元代码不支持这些方程,所以我用 c 编写了这些方程。它工作得相当好,除了有时我需要适应一个我没有预料到的特性——重构不是很愉快。后来,当我在法国的 INRIA·罗奎考特做博士后研究时,我混合使用了 matlab(代码逻辑)和 C(实际工作),这样就好得多了,但 matlab 作为编程语言却不是这样。我已经知道了一种非常好的语言,甚至还有一些数字数组支持。所以,基本上,我创建 SfePy 是为了能够在不需要 matlab 的情况下驱动我的旧 C 函数。
在维护这个项目的过程中,你学到的最重要的三件事是什么?
- 尽可能地简化和记录维护任务,这样像发布这样的事情就不会花费太多的时间/精力。
- 使用诸如 git、github、Travis CI 等工具。至关重要。
- 不要重新发明轮子(太多-这对学习是可以的)。
你还有什么想说的吗?
感谢所有软件包开发者和维护者让他们的工作变得可用!
此外,最近出现了一些机会/倡议,使软件开发人员能够展示他们的工作,并在引用等方面获得一些信贷。这在我看来是一个非常重要的问题——我也是那些不拿报酬实际开发和维护开源软件,而是创造和发布科学成果的人之一。后者离不开前者,但是投入到软件中的时间经常在出版活动中丢失。
非常感谢你接受采访!
本周 PyDev:罗伯特·斯莫尔希尔
原文:https://www.blog.pythonlibrary.org/2022/12/19/pydev-of-the-week-robert-smallshire/
本周,我们欢迎罗伯特·斯莫尔夏尔(@罗布·斯莫尔夏尔)成为我们本周的 PyDev!罗伯特是六十北咨询公司的创始人。罗伯特还为 Pluralsight 制作了令人惊叹的 Python 视频。罗伯特也有几本他创作的 Python 书籍。
让我们花几分钟时间来更好地了解 Robert!
你能告诉我们一些关于你自己的情况吗(爱好、教育等):
在 20 世纪 80 年代早期的家庭计算革命中,我在大约 9 岁的时候开始接触计算,并在那个时候开始编程。我现在 48 岁了,退一步想一想我已经修修补补了将近 40 年,这很奇怪。从小到大,在我接受正规教育的过程中,我从未觉得编程会成为我的职业。我只有一个计算机方面的小资格证书(计算机研究 GCSE——16 岁时获得的英国资格证书),毕业后,我的研究使我进入了自然科学领域,最终获得了地质学博士学位。在我的学校和大学期间,我一直在断断续续地进行业余编程,包括编写一些软件来帮助我父亲的工程测量业务,但在我读博士期间需要更多新颖的软件,所以我必须创建它。我把时间分成两部分,一部分花在漫长的夏季露营,在法国和瑞士的阿尔卑斯山进行野外工作,另一部分花在英国潮湿的冬天,躲在实验室或家里用 C++编写分析和建模软件来处理结果。
当我还在写博士论文的时候,我开始为一家大学附属公司工作,从事能源和采矿方面的商业 R&D。这也是野外工作和案头工作的公平分配,在犹他州摩押附近的沙漠中进行了数月的旅行。白天,我们在野外工作,或者从一架轻型飞机上工作,我们已经说服飞行员卸下舱门,以便更好地进行低空航空摄影。晚上回到我们的基地,我们会编写 Perl 脚本来处理我们的数据。偶尔在休息日,我们会去拱门和峡谷国家公园远足。这是一项高强度的脑力和体力工作,在我工作生涯的初期,我非常幸运能与如此聪明和积极的人们一起工作;我从他们身上学到了很多。
尽管有做实地工作的特权,但我很快意识到,能够编程是一种超能力,而且当你天生对手头的问题感到好奇并有动力去解决时,这种能力会加倍。对地质学有很好理解并有编程天赋的人似乎相对较少,意识到这一点,我决定申请一家公司的工作,这家公司提供我在 R&D 公司遇到的一些分析软件。
这将我带到了苏格兰的格拉斯哥,这是我第一次真正以“开发人员”的身份工作。我们开发了一个大型复杂的图形密集型 C++系统,在我加入的时候,这个系统运行在昂贵的硅图形和 Sun 工作站上。该软件允许我们建立地球内部的 3D 模型,并通过地质时间的第四维度来回运行它们,通过算法剥离沉积层,折叠和展开弯曲的岩石,以及断裂和不断裂的岩石。这几乎是不可思议的!再一次,我有幸与一些非常聪明、积极、精力充沛的人一起工作并向他们学习,包括我未来的妻子。几年后,我领导了这家公司的开发团队,我很高兴地向大家报告,我在这个时候(2002 年的某个时候)开始设计的一个新系统在二十年后的今天仍在开发和销售。五年后,经历了能源市场的起伏带来的一些困难时期,我和我的合伙人决定寻找其他选择。不管怎样,她经常往返于英国和挪威之间,在搬到加拿大的想法失败后,我最终在挪威奥斯陆找到了一份工作,并在几周内搬了家。几个月后,我的搭档也加入了。
在挪威,我再次从事石油和天然气行业的模拟软件工作,但我的新雇主的一切都比我迄今为止所经历的要大一个数量级,包括 250 万行 C++的单片代码库,这需要一夜之间从头编译。仅仅几个星期后,我觉得自己犯了一个职业生涯的巨大错误,如果我没有穿越北海,我可能会像到达一样迅速离开。不过,还有另一个选择。正如马丁·福勒所说,“你要么改变你的公司,要么改变你的公司。”
我决定留在这里足够长的时间,看看我是否能有所作为,几个月后,我发现事情正朝着我的方向发展。一些其他的新鲜血液被带进了已经变得愚笨的软件开发文化中,我们一起开始扭转局面。其中一个人叫 Austin Bingham,他和我有很多共同点,都是挪威移民,都有过使用 Python 的正面经历,都非常认真地对待软件工程和设计,而不仅仅是“编码”。在七年多的时间里,我升到了首席软件架构师这个令人兴奋的高度,我向你保证,这听起来比实际情况更宏伟。但尽管如此,在一个营业额达数亿美元的企业中,我仍然是负责我们产品内部设计和编程的最高级别人员。我的一个关键决定是通过将 CPython 解释器嵌入到我们的核心产品中来引入 Python 形式的脚本 API。
在我七年任期快结束时,公司被出售,并被一系列私募股权公司转让,很明显,金融工程比软件工程更有价值——而且很可能更有价值。不久之后,该公司在一次复杂的交易中再次被一家美国大型企业集团收购,这家企业集团似乎有点惊讶地发现,他们已经收购了一家软件公司以及他们实际上认为他们正在收购的业务部门。现在,作为 135 000 名员工中的一员——一台巨大机器中的一个小齿轮——我决定是时候继续前进了。
我想继续前进的另一个原因是我想离开石油和天然气行业。原因有两个:首先,由于我和妻子都在能源行业工作,我们这个不断壮大的家庭特别容易受到该行业臭名昭著的盛衰周期的影响。其次,我担心我的工作对气候的负面影响。在地球系统科学方面受过一些训练,并认识到软件可以极大地增强人类能力,很明显,像我这样的人可能会对气候产生巨大的负面影响。世界上很大一部分油田都是用软件建模和模拟的,我至少名义上对这些软件负有技术责任,我的设计和代码也是其中的一部分。
在斯塔万格和奥斯陆的酒吧与我的同事奥斯汀·宾汉姆(Austin Bingham)进行了几次会面后,我们决定在 2013 年建立自己的公司,提供软件培训和咨询服务。
我们的新公司 Sixty North 自然会专注于我们熟知的软件技术——尤其是 Python——以及服务于具有重要科学或工程内容的问题领域,但也包括那些我们可以利用软件架构技能来管理大型系统复杂性的领域。我们的经验是,许多科学家和工程师有能力编写小型代码,但缺乏设计系统的知识、技能和经验,因此他们可以相对优雅地成长——这在今天可能比以往任何时候都更真实。
我们经营 Sixty North 已经十年了,主要是作为一家生活方式公司,而不是追求永久的增长。事实证明,我们非常擅长我们所做的事情,并且能够在我们的头上保持一个屋顶,并与少数人一起维持一个企业。
职业生涯讲了很多,那我在外面做什么呢?我试图培养一些爱好,让我远离屏幕,让我保持活跃。我 20 多岁的大部分时间都在爬山、下洞穴和骑自行车,但在 30 多岁时,我的身体活动水平显著下降,当时我和妻子忙于——更不用说不堪重负——忙于应付繁忙的职业生涯、商务旅行和抚养孩子。在我四十多岁的时候,我又开始骑自行车了,现在我尽量在夏天的大部分时间里骑自行车,在冬天尽可能多的滑雪。我很幸运生活在世界上一个非常美丽的地方。
你为什么开始使用 Python?
我第一次认真使用 Python 是在 2001 年,当时我在 SCons 构建工具中遇到了它。当时,我正在为苏格兰的一家公司开发用 C++编写的图形密集型商业地球科学模拟软件。代码有一个可怕的构建系统,用 make 递归实现(参见递归 Make 被认为是有害的),这很难理解,也不可靠。那时候,我们庞大的 C++代码库必须在 Irix、Solaris 和 Windows 上连夜构建,因此构建系统中的错误和失误代价高昂。在评估了一些可供选择的 make 之后,我们偶然发现了 SCons,并进入了 Python 的世界。我们使用的是 Python 1.5.2,因为这是我们可以在我们需要支持的所有系统上构建的最新版本,带有我们拥有的编译器。当时 Perl 是我的首选脚本语言,但是在接下来的一两年里,我对 Perl 的使用几乎完全被 Python 取代了,尽管我所有的“严肃”编程仍然是用 C++完成的。
我觉得更高级的语言会让我们的团队比在 C++中更有效率,以至于我花了很多精力在我们的大型 C++应用程序中嵌入 Perl 解释器。回想起来,我们选择了一个合理的软件架构——C++和嵌入式脚本解释器,类似于现代的网络浏览器——但是在 Perl 中,我们犯了一个错误,选择了一种可读性和可维护性都不如 c++的语言!
大约在这个时候,我正在试验 Java,遇到了用于 JVM 的 Jython——Python。我对这种组合感到非常兴奋,因为它承诺将快速的编译语言(Java)与高级语言(Python)结合起来,这两种语言都将避免 C++中与内存管理相关的许多臭名昭著的陷阱。特别是,Java 提供了 Swing GUI 工具包、Java 2D 和 Java 3D 图形 API,可以通过在 Jython 解释器上执行的 Python 代码很好地实现这些功能。我记得曾向一位同事热情介绍过 Samuele Pedroni 和 Noel Rappin 的《Jython Essentials 》( 2002)——这是一本比当时大多数直接的 Python 书籍更好的 Python 介绍——并在 JVM 上用 Jython 构建了有趣的原型应用程序,这些应用程序可移植到我们使用的所有操作系统上,并且避免了乏味的编译-链接-运行循环。
可悲的是,Jython 从未真正达到逃逸速度,尽管它同时拥有 Python 和 Java 标准库,但它提供了许多常规 CPython 目前仍然缺乏的东西,特别是在 GUI 和图形工具包方面。从那以后,我将 Python 引入了其他基于 C++的公司,也是通过 SCons 向量,后来在 Austin Bingham 的帮助下,通过将 Python 解释器嵌入 C++应用程序。
你还知道哪些编程语言,你最喜欢哪一种?
我已经提到了 Perl、C++和 Java,但我是在 20 世纪 80 年代中期用 BBC BASIC 学习编程的,随后通过 COMAL(晦涩难懂!),6502 和 ARM 汇编语言,Pascal,C,C++,Delphi (Object Pascal)。我还用 C#和 F#开发了相当重要的代码库,甚至在专业环境中开发了一些 Haskell。大部分或者可能是大部分现在已经被遗忘了,但是我现在经常使用的语言是 Python(每天)、JavaScript(很多天)和 Java(偶尔大量使用),这三种语言的组合反映了我在工作中使用的语言。我仍然喜欢探索新的和旧的语言(但对我来说是新的)。最近,我尝试了 Julia 编程语言,并且正在为我正在设计和制造的一台家酿 8 位计算机的老式 6809 微处理器编写一个汇编程序(用 Python)。如果我需要再一次用 C++的性能来开发新项目,我会非常努力地学习 Rust。如果我需要做更多的 JavaScript(很可能),我可以看到自己想要进入 TypeScript。
我看到许多程序员在他们的职业生涯中等待下一种神奇的编程语言来解决他们所有的问题。我也经历过类似的情绪——特别是第一次体验 Lisp 时,或者是在。NET 公共语言运行时——但是我觉得我现在已经过了那个阶段至少十年了,回头看我自己还是很天真的。我们目前有一些优秀的编程语言和生态系统,而不是闪亮的新语言,通过使用我们已经拥有的语言会很容易获得收益。关键是要聪明而勤奋地使用它们,认真对待系统和软件架构。如果你知道一种高性能/低水平的语言,如 C++,知道用于 web 的 JavaScript,知道一种通用的低摩擦语言,如 Python,你几乎可以实现任何事情。
在所有这些语言中,Python 是不断吸引我的语言,也是我首先接触的语言,除非设计约束迫使我转向另一个方向。Python 使得从最初的想法到有用的解决方案的时间特别短。也就是说,理解 Python 什么时候不合适真的很重要,在这方面,我已经为一些代价高昂的错误负责。
你现在在做什么项目?
大约十年前,当奥斯汀·宾汉姆(Austin Bingham)和我创办咨询和培训公司 Sixty North 时,我们——在瑞典哥德堡的一次软件会议上偶然相遇——开始为 Pluralsight 制作在线培训课程材料。任何进行过预录培训的人都知道,设计培训材料、制作好的示例、手动
捕捉高质量的演示视频、录制清晰的音频,以及编辑所有这些来制作高质量的产品是一项巨大的工作。在我们课程的第一次迭代中,我们做的一切都和大多数人现在做的一样,用视频捕捉我们“现场”开发代码,进行无数次重拍和大量编辑,将代码片段粘贴到 Keynote 幻灯片中并手动注释,等等。
当需要更新我们的课程以跟上 Python 的发展、PyCharm 等工具的最新版本、更高分辨率的输出以及更严格和时尚的图形设计要求时,我认为公平地说,数百小时的手工返工的
前景并没有立即让我们充满喜悦。
相反,我们认为至少在原则上,我们可以从机器可读的课程描述中产生所有的材料(演示视频、幻灯片、图表)。我们可以自动同步视频和音频画外音,然后,当新版本的 Python 或 PyCharm 发布时,或者当需要以不同的视频分辨率提供课程时,我们可以对配置文件或演示示例代码进行一些更新,并重新呈现整个课程。
当然,对于这种需求的“原则上的”和“实践中的”解决方案之间的区别在于,在构建工具来做到这一点,以及向系统描述我们所有的视频课程方面,需要做大量的工作。不用说,我们在 Pluralsight 上发布了大约 25 个小时的 Python 视频培训材料,这些材料可以完全自动地呈现,而且非常重要的是,可以廉价地修改。
At the time of writing, we’re exploring our options for bringing this technology to a wider audience, and removing some of the rough edges from the now substantial video course production system my colleagues and I at Sixty North have built.
Which Python libraries are your favorite (core or 3rd party)?
Many of the Python packages we make are designed to have a clear Python API and on top of that a CLI. I’ve found click to be an excellent library for specifying command-line interfaces. For testing, I regularly turn to David MacIver’s excellent property-based testing library, Hypothesis.
What are the top 3 things you learned while writing a book or video course?
1. Having to teach a topic in an excellent way to learn it well.
2. Finding good teaching examples which exhibit Goldilocks “just right” complexity requires long walks or bike rides, but also a grounding in experience to understand and demonstrate their relevance.
3. Most books have a hopeless financial return compared to invested effort, but are good for gaining credibility. I wouldn’t advise anybody to write a technical book for the money from sales, but to instead write one to support other aspects of a broader consulting or training business. For example. our Python Craftsman series, The Python Apprentice, The Python Journeyman, and The Python Master, are derived directly from our work on our classroom and Pluralsight training materials and they mutually support each other.
Is there anything else you’d like to say?
This open ended question made me contemplate the things which have transformed my ability to build quality software. Along with using a language you love – or at least learning to love the language you use – I would add the following advice:
First of all, taking testing seriously has had a big impact on my work. I sometimes, though by no means always, practice Test-Driven Development (TDD). Even when I’m not using TDD the tests are rarely far behind and are usually written contemporaneously with the production code. The effort in arranging for code to be testable will be repaid many times over, not just in terms of correctness, but for other desirable qualities of the system.
Secondly, taking architecture and design seriously has been transformational for me. Largely this is about following a handful of maxims: “Do one thing and do it well”, “Separate concerns”, “An architecturally significant decision is one which is costly to change later”, “Instead of asking objects for their state, tell objects what to do, and give them what they need to do it”, “Prefer pure functions”, and so on.
Many of these boil down to keeping control of coupling and cohesion, and it’s hard to overstate the importance of these for sustained success.
The third, least technical, and most enjoyable practice that has made a huge impression on me in recent years is daily pair or ensemble programming. This really took off for us during the Covid-19 pandemic to the extent that the majority of code we write at Sixty North has at least two people involved at the point of creation, and I feel our code, happiness and team spirit is much better for it. I wouldn’t like to go back to long stretches of working alone, to asynchronous code review, or to modes of working based around pull-requests.
Finally, I’d like to thank you for giving me opportunity to tell a bit of my story.
Thanks for doing the interview, Robert!
本周 PyDev:罗德里戈·吉罗·塞罗
原文:https://www.blog.pythonlibrary.org/2022/01/17/pydev-of-the-week-rodrigo-girao-serra/
本周,我们欢迎 Rodrigo giro serro(@ mathspblog)成为我们本周的 PyDev!Rodrigo 是免费 Python 书籍Pydon ts-Write 优雅代码的作者。罗德里戈在 Gumroad 上还有一个训练营,一个小抄等等。你也应该看看罗德里戈的博客!

Let’s take a few moments to get to know Rodrigo better!
Can you tell us a little about yourself (hobbies, education, etc):
My name is Rodrigo Girão Serrão, and I am from Portugal: a small country with great weather, lots of beaches, right at the Western tip of Europe, and home to “pastéis de nata”, fado, and Cristiano Ronaldo (among other things!).
My formal education is in mathematics: I have a MSc degree in applied mathematics, and I specialised in numerical analysis in college, because that was the branch of maths where I could get more programming done.
I have been fond of mathematics since I was 2 years old (I have anecdotal proof!) because I always loved challenging myself to solve different problems, and I picked up programming because it helped me solve more problems.
One of my major hobbies is creating content around programming (and Python, specifically), on Twitter – where I’m @mathsppblog – and on my blog, mathspp.com.
Other things I do include fostering the human relationships I have with my friends and loved ones, reading fantasy books, watching silly comedy movies, and eating chocolate!You said you have anecdotal proof of being fond of mathematics since you were 2. Can you share it with us?
One day, I was 2, I was scribbling on a piece of paper. Of course, I was scribbling nonsense, because I didn’t know how to write, but my mother asked me “Rodrigo, are you writing your name?”. I replied, “No, I’m writing numbers!”.
I find that to be an amusing story, but the truth is that, ever since I can remember, I’ve always had fun solving maths problems and I was always good at it… even though I didn’t know my “times tables” by heart!Why did you start using Python?
The answer is plain and simple, and rather uninteresting: “because a friend of mine told me to”.
Maybe more interesting to answer why I kept using Python, and why I still use it, after 9 years of writing Python code. (For the record, I started using Python around September/October of 2012.)
The truth is, why I kept using Python is a more interesting question because I really don’t know how to answer it… Before Python, I had dabbled in quite a few programming languages; and while I really enjoyed the act of programming, no programming language got me hooked, and so I kept moving on to the next language.
When I got to Python, things changed… While I remained curious about other programming languages, I always came back to Python for this project, or that script, or whatever thing I wanted to write.**What other programming languages do you know and which is your favorite?**I started programming after I asked the question “what, really, is a website?” and people told me that it was a “text file” in a “server”.At the time, the only text files I knew were Word documents and I had no idea what a server was, so the answer made no sense. How did I fix that?I googled for more information, and discovered HTML and CSS. That’s where I started.I quickly got tired of it and googled for “programming tutorial”, and the top result was for Visual Basic, so that’s what I learned next.Then, I think I learned some JavaScript and some C, and then I started learning Python.Meanwhile, I have also learned and used other languages like Pascal, Java, C++, Haskell, APL, Mathematica, and Matlab. I have varying degrees of proficiency in each, Python being the one I’m most comfortable with.If I am to exclude Python from the list, my favourite languages are APL and Haskell. I really like APL (only started learning it in the beginning of 2020) because it is so different from everything else I knew, and because it taught me a great deal about programming – in fact, one of the things I like about APL is that it helped me improve my Python code; I’m thinking of giving a talk about this –, and I like Haskell because I really appreciate the purity and the elegance of functional programming… It reminds me a bit of maths, in a way.**What projects are you working on now?**As far as (Python) code is concerned, I’m picking up the maintenance of a Python/APL tool called Py’n’APL for work, and it has been an interesting challenge. Py’n’APL is an interface between Python and APL that was written some years ago, and I have to pick it up, update its code, and maintain it.I am also dying to go back to my RGSPL project, an APL interpreter I’m writing for fun. It has been evolving veeeery sloooowly, but I want to keep working on it.If non-coding answers are allowed, I am also working on writing great content for my blog, and in particular, working on my free Pydon’ts book and on the Python Problem-Solving Bootcamp.**Which Python libraries are your favorite (core or 3rd party)?**I spend a lot of time studying the core Python language and its standard library, and I have become a huge fan of many standard modules, of which I’ll name three: itertools, collections, and functools.Being aware of the things you can find there, and learning how to use them, will make you a much more effective Python programmer.Outside of the standard library, there is more_itertools (an extension of itertools), and two amazing libraries by Will McGugan: rich and textual. I have been looking for an excuse to use textual, and I just found one as I was writing this answer. Maybe, by the time you are reading this interview, I may have shared something on my blog about it.**How did you decide to become a content creator?**I did not really “decide” to become a content creator, it just happened more or less organically.When I started college I already had a couple of interesting programming projects I had done (all basic things, though) and I wanted a way to document those things I had done.I figured I could start a blog where I would write a couple of paragraphs about each project, so that I had a way of going back to the project and seeing what I had done, but also sharing it with the occasional person that showed interest.When I started the blog, I couldn’t hold myself back and I started writing other articles explaining some maths concepts, tutorials for programming projects, or challenges for others to solve.Writing for my blog just became something I’d always come back to, even if not consistently.Then, by the end of 2020, I got the idea of writing my Pydon’ts series of articles), a series of articles on how to make proper use of features of the core Python language.One day, I met Sundeep) on Reddit, and I saw he self-published a lot of programming books, and I decided to do the same with my Pydon’ts book.This led me to Gumroad, the platform where I sell my products, which also has a vibrant community of other creators. By participating in that community, I realised I could build an audience on Twitter, and in the Summer of 2021 I started investing time on Twitter, writing about Python. Going to Twitter was one of the best things I ever did, because I learn a lot from others, and because I met a lot of interesting folks, like you, for example.That’s what got me to where I am at; we’ll see what happens next!**What challenges have you had as a content creator and how did you overcome them?**The biggest challenge I (frequently) face as a content creator is keeping myself motivated.At my core – and I am being as honest as humanly possible –, I love sharing knowledge. That’s why I always helped my classmates, tutored, led workshops, started blogging, etc.However, to “be a content creator”, I have to invest time daily. Most of the time, I want to do that, but there are periods where I am feeling more tired, or less inspired, for example.I have been developing strategies to cope with that, so that I can still produce quality content for everyone, even when I’m not feeling like it.Is there anything else you’d like to say? I would like to thank you for having me, and encourage anyone reading this to reach out to me on Twitter through a DM, so we can chat a bit. I really appreciate meeting new folks that use Python, or are interested in learning Python.Thanks for doing the interview, Rodrigo!
本周 PyDev:罗马右翼
原文:https://www.blog.pythonlibrary.org/2022/02/14/pydev-of-the-week-roman-right/
本周我们欢迎 Roman Right(@ Roman _ the _ Right)成为我们本周的 PyDev!Roman 是 Beanie 的创造者,这是一个用于 MongoDB 的异步 Python 对象文档映射器(ODM)。

你可以在 GitHub 上看到 Roman 的其他贡献。让我们花些时间来更好地了解罗曼!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
我是个幸运的男人——最漂亮女人的丈夫,最可爱最聪明男孩的父亲(嘿,安娜,马克!).这个角色现在对我来说是最重要最有趣的。
另外,我是乐高积木的忠实粉丝。真的可以在商店的电视机前呆上几个小时。或者试着用我有的细节复制一些模型。这里面有令人着迷的东西。
我是 OneTrust 的首席软件开发员。我们和我的同事建立了一个从数字文档中移除敏感信息的服务。
还有,我可以被称为 Beanie - MongoDB ODM 的作者。
你为什么开始使用 Python?
我第一个专业使用的编程语言是 ActionScript。在古代,当网页大部分是静态的时候,有一种叫做 Flash 的技术,它拥有这个语言家族——action script。它允许给网站添加奇妙的东西,如动画、复杂的客户机-服务器逻辑等。有很多游戏(有些非常好)可以在你的浏览器中玩,它是用 flash 构建的。一些网站完全用 Flash 编写,有一个神奇的响应界面,而不是页面重载。但是这只在客户端有效。我认为后端是我在这个行业发展的逻辑延续。Python(当时还有 Django)就是这样走进我的生活的。Flash 换成 html5 很快就默默遗忘了,但 Python 还在我身边。
你还知道哪些编程语言,你最喜欢哪一种?
我不能说我对任何语言的了解程度与我对 Python 的了解程度相当,因为我在工作中主要使用 Python。我可以用 Rust 写,我真的很喜欢它的语法。这种语言是为开发人员设计的,而不是相反。
有时我用 Nim 对 Python 应用程序进行扩展。强烈推荐。任何人都可以在打开文档后 5 分钟内开始使用。同时,它的速度几乎和 c 一样快。如果您需要加速 Python 应用程序中一些 CPU 密集型的东西,它会非常有用。
我喜欢玩一些不太流行的语言,比如 Dart 或 Elixir。很高兴看到你以前不会用的新图案。
你现在在做什么项目?
我继续致力于我的主要开源项目 Beanie ODM。它是一个将 MongoDB 文档映射到 Python 对象的库,简化了 Python 和 MongoDB 的交互。它基于 Pydantic,并将这个伟大的库的特性和精神(我希望)带到了数据库通信领域。Beanie 已经是成熟的 lib。它不仅简化了 Mongo 的工作,甚至还扩展了它。有关系、基于事件的动作、缓存、竞争条件保护等特性。这是这个项目的链接,如果有人觉得有趣的话https://github.com/roman-
另外,我开始了一个新项目。它现在还没有名字。为开源项目想出一个不被占用的名字真的很难。许多人讲述了开源中缺乏支持、缺乏统一标准、压力过大以及其他问题。但我投票赞成命名问题。我们真的词穷了!嘿,语言学家,请做点什么吧!这肯定是个玩笑。新项目。我支持使用 Beanie 的开发者。我面临许多数据库使用场景和相关问题。其中一些是设计层面的基础。我决定尝试创建一个新的数据库。这将是一个与关系的 NoSQL 数据库。暂时没有网络接口(类似于 SQLite)。它将不是以性能为中心的(这已经足够好了,thx Rust ),而是面向开发者的。目标受众是小项目、不和谐、Slack 或电报机器人、小 web 服务、原型。我现在想出了查询语言——超级刺激。难以想象的自由程度。强烈推荐给大家。
哪些 Python 库是你最喜欢的(核心或第三方)?
我已经提到过 Pydantic。太棒了。我真的相信它将改变整个 Python 世界、概念以及我们使用它的方式。至少对我来说已经发生了。
另一个我很喜欢的是 Pathlib。我认为 Python 中的文件管理一切正常。然后 Pathlib 出现了,我才发现我们之前吃了多少苦。怪异的情绪。
Yarl 也是我尝试推荐给大家的 libs 之一。它类似于 Pathlib,但用于 URL。
Beanie 项目是如何产生的?
我喜欢拿出自己喜欢的项目来玩新的技术堆栈、库等。当 FastAPI 刚刚出现时,我开始在一个 web 服务原型中使用它。FastAPI 是一个异步 web 框架。让我惊讶的是,当时 MongoDB 还没有异步 ODM。我别无选择,实现了一个基于 Pydantic(FastAPI 用它来建模)和 Motor(MongoDB 的异步引擎)的小 lib。它只支持原生 MongoDB find 和 aggregations 语法。甚至没有索引(嗨,迈克尔!@mkennedy)。但是它对于 API 服务原型非常有用。这促使我在 GitHub 上发布 Beanie 以防它可能对其他人有所帮助。突然,人们走过来,告诉我他们还想在这个包裹里看到什么,其他人帮助实现了这个愿望。(没错,就像迪士尼童话里那样,不过是关于 Python 开发者的)。我非常感谢所有的贡献者和功能请求者。多亏了他们,宾尼长大了。
您在创建/维护 Beanie 软件包时遇到过哪些挑战,您是如何克服的?
对我来说,Beanie 开发的一个真正困难的部分是任务优先级。不乏特色创意。人们带了很多。但是我有一个大概的发展轨迹,资源有限。每一次都是一个权衡:实现一个真正重要的特性,有人现在需要并且肯定会使用,但是推迟计划的主要发布。或者将此添加到 TODO 列表并返回,这时计划的功能将会出现。我尝试获取所有用例的细节,以确定这是一个普遍的问题还是一个特殊的案例,并首先为流行的情况开发解决方案。
另一件事是文档。例如,当我阅读 FastAPI 文档时,我很兴奋。一切都井井有条,解释清楚。关于豆豆博士的第一版我不能说什么。我还没有透露文档写作的秘密。幸运的是,有时人们会来改进添加,添加细节,用法示例。现在好多了。
你还有什么想说的吗?
是的。我想说谢谢你,迈克。我很感激你为我们社区所做的一切。
本周 PyDev:罗曼·西罗科夫
原文:https://www.blog.pythonlibrary.org/2017/03/27/pydev-of-the-week-roman-sirokov/
本周我们欢迎 Roman Sirokov 成为本周的 PyDev!他是 pywebview 的作者,py webview 是一个跨平台的轻量级 web 视图组件的原生包装器。基本上,您可以使用 web 技术和框架创建桌面用户界面。他在 Github 上相当活跃,在那里你可以看到他参与的所有项目。让我们花一点时间来了解一下我们的同胞 Pythonista!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
我是一名来自芬兰赫尔辛基的软件工程师。我目前在 Siili Solutions 工作,是一名全栈开发人员,负责各种客户项目。
我有两个硕士学位,一个是阿尔托大学的计算机科学学位,另一个是赫尔辛基大学的生物信息学学位。第一个学位是关于毕业,第二个学位是关于真正想学点什么。
我去过很多地方,最长的一次是在路上度过的九个月。有一次,在一个多雨的夏天,我在波罗的海周围骑了大约 3000 公里。我是一个狂热的越野滑雪爱好者,并试图在如今很少下雪的情况下尽可能多地滑雪。我也练习八支瑜伽和内观冥想,并尝试每年参加一次内观静修。除此之外,我主要是 dj 宇宙音乐,并试图让我的猫娱乐。我的一些混音可以在这里找到。
你为什么开始使用 Python?
我在 2004 年大学期间开始接触 Python。在学校里,他们教授 Java、Scheme 和 C 的组合,这是一次重要的学习经历,但对我自己的需要来说,不是很有趣或实用。我从一个朋友那里听说了 Python,它的简单和直接让我大吃一惊。Java 迫使您执行一些仲裁巫术来完成琐碎的事情,而 Python 则用尽可能少的代码直奔主题。过了一段时间,我突然意识到我可以通过编程来解决自己的问题,而不是依赖现成的软件。Python 是实现这一目标不可分割的一部分。
你还知道哪些编程语言,你最喜欢哪一种?
我大部分时间都在和 Python、Javascript、Java、C#打交道。Python 是我最喜欢的语言,因为它简单明了。Javascript 是爱、挫折和普遍困惑的结合。我喜欢 C#并且对 WPF 情有独钟(毫无疑问,这是我用过的最好的 GUI 库),但是我已经有一段时间没用过这两个库了。我很高兴看到最近. NET 的跨平台开发。遗憾的是 WPF 仍然只支持 Windows。
你现在在做什么项目?
目前,我将我的空闲时间投入到这些项目中
- 这是一个简单的图形用户界面库,允许你在没有浏览器的情况下使用 HMTL/JS/CSS 堆栈作为你的图形用户界面。
- Latukartta -芬兰越野滑雪道地图,显示滑雪道的实时状态。
- Traktor DJ 软件的一个应用程序,帮助你选择下一首要播放的曲目,并记录好的过渡
- Traktor Librarian-Traktor 的另一个清理和导出音乐库的应用。
所有这些项目都是用 Python 做后端,web stack 做前端。我喜欢这种方法的一点是,我可以重用代码并使用相同的工具集,不管它是 web 项目还是桌面项目。
哪些 Python 库是你最喜欢的(核心或第三方)?
我想 Flask 值得一提,但我没有什么特别喜欢的。我喜欢 Python 的一点是,它有一个包含所有内容的库,而且通常非常容易使用。
作为一门编程语言,你认为 Python 将何去何从?
我很高兴看到 Python 3 最终被更广泛地采用。希望五年后 Python 2/3 的混乱将成为历史。我希望 Python 能在移动世界产生更大的影响。最近关于 Sailfish 让 Python 成为一等公民的声明是一个受欢迎的消息,我希望 Android 也能效仿。最后,我希望 Python 能够捆绑一些工具,用现成的 Python 脚本生成可执行文件,并简化整个构建过程。
非常感谢你接受采访!
本周 PyDev:拉塞尔·基思·麦咭
原文:https://www.blog.pythonlibrary.org/2017/04/03/pydev-of-the-week-russell-keith-magee/
这一周,我们欢迎拉塞尔·基思·麦咭成为我们的本周 PyDev!Russell 是 Django 的核心开发者,也是 Django 软件基金会的前任主席。很长一段时间以来,他一直是开源社区的贡献者。你可以在 Github 上看到他的一些贡献。他还是 Beeware 项目的创始人,该项目是一个项目集合,可用于帮助开发、调试和发布 Python 软件。让我们花几分钟时间来更好地了解 Russell!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
我从 7 岁开始摆弄电脑,那时我父亲在澳大利亚买了第一批 Commodore 64s。我在大学本科时学习物理,但后来转到了计算机科学系,完成了我的荣誉学位和博士学位。在我完成博士学位的时候,我的导师和我达成了共识,我的未来不在于研究,所以我走向了世界,从那以后一直在各种科技初创公司工作。
我在业余时间花了很多时间修补计算机上的东西,但我也是一个巨大的乐高迷,我也做一些摄影。一个放松的周末就是看一堆电视,旁边有一个美味的烤奶酪三明治和一瓶斯佩塞德单一麦芽威士忌。
你为什么开始使用 Python?
最初(这是在 Python 1.5 时代),Python 对我来说只是一种系统集成语言。我很早就开始使用 RedHat,RedHat 的许多工具都是用 Python 编写的。最初,来自 C 语言背景的我对基于缩进的语法有一种发自内心的厌恶。但是随着时间的推移,我开始意识到这实际上只是通过使“坏”风格的语法无效来加强好的代码风格。
大约在 2000 年代中期,我开始尝试网络,我发现了 Django——那时,我几乎开始全职使用 Python。
你还知道哪些编程语言,你最喜欢哪一种?
按照大致的学习顺序:BASIC、C、C++、Pascal、FORTRAN、x86 汇编程序、Java、Bash、Prolog、Common Lisp、Scheme、Python、JavaScript、Ruby、Objective C。我曾经尝试过许多其他语言,但从未达到我认为自己很熟练的程度。
Python 无疑是我最喜欢的语言。我对 C 语言情有独钟,认为它是大多数现代语言的母语——尽管我非常希望它能被某种对基本内存和安全问题有更好保护的语言取代,成为“默认的系统语言”。我也很尊重 Java——这种语言本身存在一些严重的问题(随着时间的推移,这些问题已经慢慢解决了),围绕这种语言的法律问题(Oracle 正在慢慢恶化),但虚拟机架构确实非常优雅。
Javascript 是我讨厌的语言。作为一门基础语言,它有很多错误,但也有很多非常非常优雅的地方。但是,不管它有什么缺陷,它都是不可避免的,因为它本质上是网络上唯一的语言。令人欣慰的是,在过去的几年里,我们看到了一系列的改进,使得 Javascript 变得更容易被接受,并且我们有望在浏览器中使用其他语言。
你现在在做什么项目?
我个人项目的大部分时间都花在了 BeeWare 上——一个使用 Python 构建原生用户界面的工具和库的集合。这包括:
- VOC,用来把 Python 编译成 Java 字节码,所以可以在 Android 上运行
- Batavia,一个用 Javascript 编写的 Python 虚拟机实现,所以你可以在浏览器中运行 Python
- 托加,一个跨平台的用户界面工具包,支持部署到移动,桌面,网络,手表,等等
BeeWare 最初是作为一个编写调试器的项目开始的。最终,我希望能回到过去…
哪些 Python 库是你最喜欢的(核心或第三方)?
在标准图书馆:我是 ctypes 的忠实粉丝。它允许与本地库代码集成的容易程度近乎神奇。
标准库之外:我很难选择一个库。Django 是一个显而易见的候选人,不是因为它特别令人兴奋,而是因为它是如此多其他美好事物(以及我职业生涯如此多的成功)的源头。Requests 也是一个常规的 pip 安装,并具有类似级别的“只需工作”的魔力。
如果让我挑选一块隐藏的 PyPI 宝石,我会说“检查清单”。它是一个工具,当您打包代码以发布到 PyPI 时使用。它会检查您的源代码管理,查看哪些内容已签入(哪些内容未签入);并将其与您的 MANIFEST.in 定义进行比较,以确保运行“python setup.py sdist”时生成的源代码分发不会意外丢失任何文件。作为一个制作了很多 PyPI 包的人,并且已经制作了不止一个带发行说明的单点发行版——添加了上一个发行版中缺少的文件——这是一个非常有价值的工具。
作为一门编程语言,你认为 Python 将何去何从?
Python 已经证明了自己是一种非常强大的语言——适用于严肃的计算应用程序,如运行主要的高流量网站,但也足够容易访问,你可以在一天内教授基础知识(例如,在 DjangoGirls workshop 中),并且非计算领域的专家也可以访问。它是科学和教育社区中的一种主要语言,由此产生了大量编码在 Python 库中的知识和专业技能。这种代码库需要很长时间来开发。而计算社区总是在寻找新的闪亮的东西(是节点吗?是围棋吗?是铁锈吗?是榆树吗?)非计算社区要保守得多,不太可能放弃对他们非常有效的解决方案。
这就是为什么我非常看好 Python 的未来。它不再是新的、酷的播放器,而是一个稳定、可靠的主力。用问题的语言来回应——Python 不会去任何地方。我并不是说这种语言停滞不前——远非如此。它在许多学科领域根深蒂固,我认为我们只是刚刚看到它的潜在应用的开始。
我希望我在移动用户界面方面所做的工作将打开一个全新的可能性世界,让计算之外的领域专家能够构建对他们至关重要的移动应用程序。我们需要确保我们正在滑向冰球要去的地方,而不是它现在所在的地方-这意味着关注新的计算平台、新的 UI 范例等等-每个人使用现代计算设备的方式,而不仅仅是计算人员历史上使用他们设备的方式。
你对当前的 Python 程序员市场有什么看法?
这个问题我很难回答。我得到的印象是,美国的市场正在蓬勃发展;但这不是我在珀斯当地看到的东西。也就是说,珀斯是一个非常保守的科技市场,没有真正的创业场景。我永远感激互联网让我可以和这个星球上的任何人一起工作。我当然不担心我的 Python 技能会浪费时间,即使我确实留在珀斯。
你还有什么想说的吗?
首先,一些建议:永远不要和独角兽玩跳背游戏。
但是说真的
尽管我很喜欢 Python 社区和 FLOSS,但作为一个社区,我认为我们有一些大问题需要解决——其中许多问题源于我们社区与金钱的关系。
10 多年来,我一直积极参与国际 Python FLOSS 社区,在此期间,我看到无数人因 FLOSS 开发给个人带来的压力而筋疲力尽,有时甚至令人震惊。自由软件的拥护者热衷于说“自由是指自由,而不是啤酒中的自由”。但现实是,许多 FLOSS 项目变成了“像小狗一样免费”——当它们可爱毛绒绒的时候,你会很高兴地接受它们,但 5 年后,它们变成了一个庞大的庞然大物,每天都需要被遛,无论下雨、下冰雹还是晴天;有时会在走廊地毯上拉屎;你要么带谁一起去度假,要么找人照看。“自由高于一切”的口号是一个严重的盲点,它隐藏了我们社区中一些严重的结构和社会问题。
正如 Nadia Eghbal 的“道路和桥梁”报告去年指出的那样,我们是一个以基础设施关键部分的可用性为基础的行业,但我们没有系统的方法来为基础设施提供关键的维护。因此,我们有时会看到该基础架构出现一些惊人的故障。Heartbleed 是一个明显的例子,但还有无数其他的例子。
我们一直依靠源源不断的热情志愿者,出售你因维护 FLOSS 项目而获得的“曝光率”的梦想。但是,如果我们想要停止对我们社区成员造成不可挽回的损害,我们需要找到一种方法来共同资助我们作为行业基础的工具的研究、开发和维护。
钱是存在的——有些公司在 FLOSS 的基础上赚了数百万。这些公司所缺乏的是一种以符合其会计要求的方式在基础设施上花钱的方式。如果我们能找到一种方法,将这些利润的一小部分重新投入到 FLOSS 开发中,我们将有足够的资源来解决 FLOSS 社区目前面临的许多问题。
从纯技术的角度来看,FLOSS 展示了它的巨大潜力。但是技术上的成功不能以牺牲生产它的人的利益为代价。我渴望找到一种方法来打破这种精疲力竭的循环,并获得 FLOSS 生存和发展所需的资源。这是一次艰难的对话,但我认为这是我们必须进行的一次对话。
非常感谢你接受采访!
本周 PyDev:路德·范·德·汉姆
原文:https://www.blog.pythonlibrary.org/2017/11/27/pydev-of-the-week-ruud-van-der-ham/
本周,我们欢迎路德·范·德·汉姆成为我们本周的 PyDev!路德是萨拉宾项目的创建者。让我们花些时间更好地了解他!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
我一直在港口行业工作,是码头规划、算法设计、数据科学领域的专家(尽管我们还没有使用这个术语)。现在我在法国南部处于半退休状态,我是一名活跃的顾问和 Python 程序员。我毕业于代尔夫特大学应用数学专业,在鹿特丹大学攻读经济学学士学位。
你为什么开始使用 Python?
实际上,是我的一个朋友向我介绍了 Python,他正在为荷兰铁路做非常有趣的项目。虽然我觉得语法有点奇怪,但我爱上了它。以我对其他语言的经验(见下文),快速入门并不困难。
对我帮助极大的是出色的 iPad Python 实现(Pythonista)。实际上,我在 iPad 和 Windows(使用 Wing IDE)上差不多同时做了很多开发工作。
你还知道哪些编程语言,你最喜欢哪一种?
早在 70 年代,我在大学时就开始使用 Algol,并在我的第一台 TRS80 计算机上使用 Basic。我用汇编语言(大部分是 x86)、C 语言和专业的 Fortran、PL/1(没人记得那一个)进行了大量的编程。).然后我用 Pascal 语言开发了自己的模拟工具“must”。后来我在 VBA 用 Excel 做了很多复杂的专业工作。
你现在在做什么项目?
我仍然在做我的 salabim 包,特别是对文档的精细处理。我开始用我自己的产品做咨询。我还在学习更多的高级特性,以便在未来的包中使用。
哪些 Python 库是你最喜欢的(核心或第三方)?
我喜欢 numpy,熊猫和 matplotlib。以及标准模块集合和数组。
萨拉宾项目是如何产生的?
我在为我的专业模拟项目寻找可能性,这些项目几乎总是在高端和非常昂贵的专用产品中完成。然后我找到了一个简单的 Python 包,但没有留下深刻的印象,我错过了功能,特别是在 API 和动画方面。所以我开始了我自己的开发,基于我以前使用 Pascal 包的经验。实时动画很难实现。在看了几个备选方案后,我决定使用 tkinter 作为动画引擎。对于 iPad 上的 Pythonista,我使用另一种技术。我最初只支持 Python 3.6,但最近想把它移植到 2.7,以便在 Windows 下的 PyPy 上运行。因此我也淘汰了 numpy。
你从运行这个开源项目中学到了什么?
我没有使用 GitHub、PyPI 和 Sphinx 的经验,把所有的东西放在一起并不容易。我发现有很多资源,但它们并不总是一致的,甚至不总是正确的。
你还有什么想说的吗?
我真的很喜欢 Python 生态系统和社区。
感谢您接受采访!
本周 PyDev:Ryan Kirkbride
原文:https://www.blog.pythonlibrary.org/2018/07/09/pydev-of-the-week-ryan-kirkbride/
本周,我们欢迎 Ryan Kirkbride(@ ryankirkbride 26)成为我们本周的 PyDev!Ryan 是 Foxdot 的创建者,Foxdot 是一个用于在交互式 Python 编辑器中实时编码音乐的实时编码库。你可以去他的 Github 页面看看 Ryan 是什么项目的一部分。让我们花点时间来了解一下 Ryan!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
我目前在利兹大学音乐学院攻读博士学位,研究音乐现场编码的协作工具。现场编码基本上是创建音乐或视觉效果的交互式编程,可能是我现在最喜欢做的事情。有一种越来越流行的叫做“Algorave”的场景,现场编码人员聚在一起制作音乐供人们跳舞,表演起来很有趣。
你为什么开始使用 Python?
我在大学第一年学习计算机科学的时候开始使用 Python。对于初学者来说,这是一门很棒的语言,但是随着你越来越多地使用它,还有很多东西需要学习。
你还知道哪些编程语言,你最喜欢哪一种?
在大学里,我用 Javascript、Java 和 C++做了一些项目,但是 Python 仍然是我在整个学位课程中最喜欢使用的。我真的很喜欢语法的简单性,以及我表达自己想法的容易程度。
你现在在做什么项目?
目前,我正在开发我的实时编码环境, FoxDot ,它基本上是一个带有交互式 Python 编辑器的实时编码音乐库。它本身实际上并不发出任何声音,但会触发加载到一个名为 SuperCollider 的程序中的合成器和样本。FoxDot 不是唯一一个现场编码音乐的库,但它可能是唯一一个使用 Python 的库。它很大程度上受到了一个叫做 TidalCycles 的 Haskell 环境和我上面提到的 SuperCollider 程序的启发。
作为博士学位的一部分,我还在研究一个实时协作编辑器,用于实时编码。有点像现场编码音乐的谷歌文档编辑器。我开始用 Python 编写它,只是为了与 FoxDot 一起使用,但它也可以与 TidalCycles 和 SuperCollider 一起使用,我想添加一种流行的基于 Ruby 的语言,称为 Sonic-Pi。
哪些 Python 库是你最喜欢的(核心或第三方)?
这是一个棘手的问题!我用自然语言工具包(nltk)模块编写了一个基于评论预测电影票房收入的程序,从中获得了很多乐趣,但我已经有一段时间没有使用它了。我最近开始大量使用“functools ”,尽管我实际上已经深入研究过了。组合函数来操作音符和节奏的模式是算法音乐的一个非常重要的部分,functools 帮助我使用诸如分音等东西来完成这个任务。
你是如何结束 Foxdot 项目的创作/工作的?
我尝试使用 TidalCycles 进行实时编码,这是一种基于 Haskell 的函数式编程语言,但我并不总是能够以我想要的方式表达自己。这是一种非常优雅的创作音乐的方式,但我深深扎根于我的面向对象编程方式,并决定尝试用 Python 创作自己的版本。使用标准库的“exec”函数,获取文本字符串并运行代码真的很容易,我就是从那里开始的!
你从开源项目中学到了什么?
这让我更加努力地记录我的代码!它开始时是一个完全个人的项目,没有文档字符串,几乎没有任何评论,但是随着其他人开始使用它并为它做出贡献,我开始意识到好的文档是多么有用。当其他贡献者添加或更改某些东西时,如果代码中有清晰的信息,事情会变得容易得多。
对于那些想参与或开始自己的开源项目的人,你有什么建议吗?
从一开始就设置一些自动文档生成器,例如 sphinx 和 read-the-docs。一旦项目进展顺利,就很难回头去做。
你还有什么想说的吗?
只是编程并不总是以目标为导向,它可以是纯粹的创造性。实时编码是一个非常好的创造性的出口,让你用你作为一个程序员发展的技能来表达自己。
感谢您接受采访!
本周皮德夫:瑞安·米切尔
原文:https://www.blog.pythonlibrary.org/2015/10/19/pydev-of-the-week-ryan-mitchell/
本周,我们欢迎瑞安·米切尔(@组装师)成为我们本周的 PyDev。Ryan 是用 Python 编写的网页抓取和用 Java 编写的即时网页抓取的作者。让我们花些时间来更好地了解 Ryan。
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
我是奥林工程学院的毕业生,明年将获得哈佛大学扩展研究学院的软件工程硕士学位(在过去的三年里,我一半时间都在从事这项工作)。凭借“普通工程”的学士学位,我在 UX 和应用程序设计、企业家精神、it、生物工程、软件架构设计和编程之间徘徊。不过,我想我已经非常坚定地选择了软件工程。我目前是南波士顿一家名为 LinkeDrive 的初创公司的 SE,我们从长途卡车引擎中获取大数据。这太棒了。
就爱好而言,我是波士顿科学博物馆科技工作室的志愿者,每周日下午。我热爱教学,这是参与社区活动的好方法,同时还能看到你想看的所有 IMAX 和天文馆展览!我也是一名变装女王,也是永久放纵修女会(一个由“变装修女”组成的非营利性组织,主要为当地事业筹款)的成员——这是一个更长的故事了!
你为什么开始使用 Python?
说实话,那是因为这是我当时上的一门大学课程的必修课!我高中时在 Sun 和微软实习过,所以显然没有接触过太多 Python。在大学期间,我忙于工程课程,没有太多时间去学习任何不需要的东西。但是一旦我有机会学习它,我真的爱上了这种语言,并且它很快成为我非 web 项目的首选。
你还知道哪些编程语言,你最喜欢哪一种?
在过去的 12 年里,我几乎涉猎了每一种现代编程语言(当教授说我们可以用任何语言编写 FORTRAN 95 时,我甚至开玩笑地学习了它来做一个项目——从那以后他改变了政策!).和许多人一样,我从 BASIC 开始,然后转向 C、Java、C#、Perl,然后开始用 PHP 和 JavaScript 做网站(但我们在生活中都犯过错误)。在大学里,我涉猎了很多学术语言,比如 MATLAB/C 代码,当然还有 Python。
我尽量不偏爱语言,但我的日常工作主要是用 Java,我是这种语言的爱好者。如果我正在处理一个涉及大量数学的机器学习项目,我可能会使用 Python。如果有很多复杂的业务逻辑,我可能会使用 Java,但这主要是对每种语言的公认惯例和流行库的偏见,而不是语言本身的基本属性。
你现在在做什么项目?
当然,除了我的日常工作之外,我还会在网上搜集大量信息来宣传和支持这本书,为第二版寻找灵感,写博客,为 O ’ Reilly 制作一个视频系列(10 月份拍摄,可能很快就会发布)。
另外,我还在做一个超级机密的项目,可能要到下一次 DEF CON 才会发布(或者更早,如果这个话题不被接受的话,但还是祈祷吧!)
哪些 Python 库是你最喜欢的(核心或第三方)?
最喜欢的核心库:urllib -我写网页抓取器,所以不得不说!
第三方:BeautifulSoup 是一个显而易见的选择。我知道它与所有的 HTML 解析器竞争激烈,当然还有 Python 的核心 HTMLParser,但是我发现 BeautifulSoup 与其他一些库相比,速度非常快,重量轻,灵活,易于使用。绝对是我解析 HTML 的首选。
最近我喜欢上了 Python 图像库——我经常使用它来自动解决验证码问题,甚至进行随机的批量图像处理任务(例如,调整图像文件夹的大小),这对于手工操作来说是很痛苦的。
当然,还有 SciPy、NumPy 和 NLTK。我唯一的抱怨是,我对机器学习知之甚少,无法最大限度地使用它们,但是它们非常容易上手和运行,即使你有一个相对琐碎的任务要做,所以我真的建议你看看其中的一个或全部,如果你还没有!我报名参加了一个非常硬核的机器学习课程,将于 9 月开始,因此我对此非常兴奋,并对这些库有了更多的了解。
是什么让你决定写一本关于 Python 的书?
嗯,这本书其实不是关于 Python 的,而是关于 web 抓取的!几年前,我在 Packt 出版社写了一本小一点的书——用 Java 进行即时网络抓取。网络抓取是我非常喜欢的一门学科,也是我喜欢教学的一门学科。是 Packt 建议我用 Java 写这本书的。那时,我已经有几年没有使用 Java 了,所以这种语言肯定不是我的首选。因为工作的原因,我当时正在用 Python 编写 web scrapers,所以说实话,我需要为此做很多研究。
去年,我就写一本更长的网络信息搜集书籍的问题找到了 O ’ Reilly,并告诉他们我可以用 Python 或者 Java 来写。他们当然会说 Python——讽刺的是,我现在已经换了工作,所以我白天都在写 Java。我从来没有用我当时日常工作所用的语言写过一本书,这使得当你决定是否要在一行的末尾添加一个分号时,真的很困惑!
你还有什么想说的吗?
我很荣幸成为本周的 PyDev!任何人都可以随时联系我@组装师。我喜欢在 Twitter 上讨论 Python 和网络抓取。另外,我在http://pythonscraping.com/blog有一个初出茅庐的博客,在那里我写关于随机网络抓取/Python 的想法,并欢迎对使用 Python 的网络抓取第二版的反馈!谢谢!
谢谢!
一周的最后 10 个 PyDevs
本周 PyDev:塞缪尔·辛顿
原文:https://www.blog.pythonlibrary.org/2020/05/04/pydev-of-the-week-samuel-hinton/
本周,我们欢迎 Samuel Hinton ( @samreayh )成为我们本周的 PyDev!Samuel 用 Python 写了不少项目,并做了很多关于天文学的演讲。如果你对这些话题感兴趣,那么你一定要看看他的网站或者他的 Github 简介。
让我们花一些时间来更好地了解 Samuel!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
没问题!我是一名天体物理学家,我的职业生涯始于机器人工程。我一直是一个尝试新事物的人,不介意跳跃话题,所以从那里我进入了 IT,软件工程,金融部门,物理,然后决定空间科学足够酷,可以投入几年时间!当我不写代码的时候,不管是为了工作还是为了一个有趣的兼职项目,我会倾向于在贪婪的幻想小说的内向阶段和做科学推广的偶尔外向阶段之间跳跃,包括一次我作为学术冠军被邀请参加澳大利亚幸存者的有趣时光。那很有趣。很疯狂,但是很有趣。
我的目标是有一天在地球上的每一个大洲生活和工作,这意味着有一天我最好离开我的祖国澳大利亚去探险!
你为什么开始使用 Python?
很多年前,在天文学领域,Python 并不像今天这样占主导地位。我在大学期间的导师给了我两个选择——一个是,我们用 Python 做新项目,我可以独立完成,或者他们可以把他们的 IDL 知识传授给我,我可以用它来编码。对于那些没有意识到的人来说,IDL 是一种专有的编码语言,就像 Fortran 和 Matlab 有一个丑陋的婴儿一样。然而,它是 NASA 多年来的首选工具,并且有大量的代码和软件包可供使用。
由于 Python 的美丽,没有挑战者,这是一个容易的决定。现在,几年后,IDL 开始淡出人们的记忆,成为传奇,而 Python 仍然是王者,R 是他的得力助手。
你还知道哪些编程语言,你最喜欢哪一种?
让我们来看看最受欢迎的 Python。超过一百次。
至于其他语言,哦,孩子。
我实现了一个基于浏览器(仅限客户端)的科学红移工具,它包含了成千上万行 Javascript 代码和 AngularJS,那时候它还是崭新的。这是一场噩梦。
在金融行业,服务器端架构是 GWT 的 Java 应用程序。比 Javascript 更好,直到您不得不将 Groovy 加入其中。然后就是痛苦的表情和铺天盖地的样板文件的混合!
为了从数值模拟中挤出每一滴,C++,这总是很有趣,并且总是令人兴奋地看到是什么天才编写了编译器,使它能够装配如此多的魔法。
对于微处理器和大多数机器人编码来说,这些天你可以用一个 Raspberry Pi 用 Python 来写,这是多么美好的时光啊!
当然,现在你可以用 Python 轻松地完成以上所有工作。这让我很开心。
你现在在做什么项目?
现在空中有这么多球!当我写这篇文章的时候,是 4 月 4 日,我们进入新冠肺炎疫情已经几周了。我目前的主要工作是作为来自 40 多个国家的 200 多家医院的国际合作的项目架构师和首席数据分析师,所有人都汇集 ICU 数据,试图量化患者对通气和医疗方法的反应。在那之前,我主要研究超新星宇宙学——利用爆炸的恒星来绘制宇宙的膨胀史。我与暗能量调查合作,试图——你猜对了——量化暗能量的本质。
哪些 Python 库是你最喜欢的(核心或第三方)?
一定是熊猫。一旦你掌握了它,你在清理、操作数据和将数据转化为可行产品方面的生产力就会突飞猛进。任何允许我花更少的时间与数据搏斗,而花更多的时间思考有趣的事情来做的图书馆都会在我的书中得到一个大金星。
你是如何成为在线导师的?
我主持了一个关于学术人员编码实践的全国编码研讨会,试图将普通天文学家的自学技能水平提高到更接近“行业专业人员”的水平,我让一些与会者询问这些材料是否在网上。我给他们发了一个 GitHub repo 的链接,他们提到这会是一个很好的入门课程。我从来没有把那个变成一门课程,但是我做了两个独立的课程——一个是关于 Python 中的应用统计学,重点是做代码和保持它的实用性,另一个是熊猫速成课程。如果你好奇的话,它们都是从我的个人网站上链接的。
对于那些也想从事内容创作的人,你有什么建议吗?
嗯,你的里程数可能相差很大,但我这样做是因为我喜欢教学,我喜欢创建课程和打破概念。除非你在一个非常热门的新领域(看看你,深度学习),否则我的经验是,你不会靠它生活,所以确保你喜欢为它而创造内容,不要像工作一样对待它。
尽管如此,也许这是我的问题。要是我一天中有更多的时间可以消磨就好了!
你还有什么想说的吗?
太空是疯狂的,来研究它吧。
山姆,谢谢你接受采访!
本周 PyDev:Sarah Abderemane
原文:https://www.blog.pythonlibrary.org/2022/11/14/pydev-of-the-week-sarah-abderemane/
本周,我们欢迎莎拉·阿布德瑞曼(@萨博瑞曼 _ )成为我们本周的 PyDev!Sarah 是一名全栈开发人员,在 Django 社区非常活跃。你可以通过查看莎拉的网站或者访问莎拉的 GitHub 简介来了解更多关于莎拉的信息。
让我们花些时间更好地了解莎拉吧!
你能告诉我们一些关于你自己的情况吗(爱好、教育等):
你好,我是一名软件开发人员,已经工作了几年,目前在法国巴黎的 TKT 思维科技公司工作。
我在为他们工作时获得了计算机科学硕士学位。在此之前,我获得了网络和移动设计与集成的专业学位,以及两年制的营销技术大学学位。在获得营销技术学位后,我开始自学编程。我就这样继续我的学业,因为我喜欢。
我大部分业余时间都在为 Python 生态系统的开源项目做贡献,尤其是 Django 项目,因为我热爱这个社区。我是 Django 会议的志愿者,尤其是作为 Django 女孩的导师。此外,我正在组织 Django Paris Meetups,因为我住在法国,并通过 Discord 帮助 djangonauts。
当我不在电脑前时,我喜欢跳舞,尤其是舞厅和嘻哈风格,并在不同的流媒体平台上观看系列节目。此外,我从不拒绝巧克力或糖果…
为什么开始用 Python ?
硕士第一年,在学校周和在公司周的分段释放训练学习。当我在课程中学习 PHP 时,我和我的导师为一些公司的项目发现了 Python 。我非常喜欢 Python 语言,所以我开始在空闲时间学习它。
你还知道哪些编程语言,你最喜欢哪一种?
我知道 PHP 就像我之前说的,HTML,CSS,JavaScript 和我知道一些 Bash。我在高中学过围棋。当我开始编程时,我也使用 C 和 Java,但那是很久以前的事了。
我不会说,除了 Python 我还有喜欢的编程语言,但是除此之外我真的很喜欢 JavaScript。
你现在在做什么项目?
我正在检查将 Python 中用于拉请求的 Bedevere bot 移动到 GitHub Actions,并且我目前正在 Django 文档中实现一个黑暗模式。你已经可以在文档中查看我的工作了,哈哈,但是仍然有一些部分没有黑暗模式,比如问题跟踪器。我也在努力提高 Django 项目的可访问性。
除了我对 Django 的贡献之外,我在工作中参与了多个项目,但最后一个项目是关于一个帮助专业人士搜索和比较房地产交易的平台。
哪些 Python 库是你最喜欢的(核心或第三方)?
我想我最喜欢的 python 库应该是来自 core 和 pandas 的 itertools 和 collections,作为第三方库这太棒了。
你为什么选择 Django 而不是其他的 Python web 框架?
我不会说我会选择 Django 而不是其他的 python web 框架,但是我会根据我要做的项目选择最好的框架,而且大多数时候,Django 很适合我的需要。
Django 里你最喜欢的前三样东西是什么?
作为一名开发人员,我真的很喜欢使用它的简单性,但是如果我必须选择 3 样东西,我会说:
-
管理员,你可以很快准备好一些东西。
-
ORM 真的很强大,你可以轻松地做很多事情。
-
对于这种规模的项目来说,这是开源软件世界中最完整的文档之一。
你还有什么想说的吗?
我开始在推特和我的 T2 博客上写和分享更多的东西。我真的和很棒的人建立了很好的关系,我真的很感激认识新朋友
如果你想开始在 Django 生态系统中做出贡献,或者在你的贡献方面需要一些帮助,请不要犹豫提出不和谐的问题,我不是那么远,总有人可以帮助。
莎拉,谢谢你接受采访!
PyDev of the Week: Sarah Gibson
原文:https://www.blog.pythonlibrary.org/2021/11/08/pydev-of-the-week-sarah-gibson/
This week we welcome Sarah Gibson (@drsarahlgibson) as our PyDev of the Week! Sarah is a core developer for Binder, JupyterHub, and The Turing Way. You can see what else she is contributing to over on GitHub. Sarah also maintains a blog.

Let’s spend some time getting to know Sarah better!
Can you tell us a little about yourself (hobbies, education, etc):
Hello everyone! I’m Sarah Gibson and I’m an Open Source Infrastructure Engineer at the International Interactive Computing Collaboration (2i2c for short!).
My background is in astrophysics, and I earned my PhD from the University of Leicester studying Gamma-Ray Bursts (GRBs) with NASA’s Neil Gehrels Swift Observatory. GRBs are incredibly powerful, cataclysmic explosions that happen either when a very large star explodes (goes supernova) and collapses into a black hole, or when two neutron stars (incredibly dense dead star remnants) merge into one another. Beyond the initial peak of Gamma-Rays released, GRBs emit an ‘afterglow’ that shifts through the electromagnetic spectrum, passing through the optical range and all the way into radio bands. This makes GRBs an excellent tool to probe many areas of physics, from relativistic effects and accretion disks, through to the composition of the intergalactic medium (the space between galaxies).
After my PhD, I decided to leave academia and went on to join the Research Engineering team at the Alan Turing Institute. During my time there, I worked as both a Data Scientist and Software Engineer on a variety of projects in different domains. I worked on everything from supervised Machine Learning competition platforms deployed in Docker containers, to automatically sorting through scans of Victorian newspapers for crowdsourcing tasks. This is also where I was introduced to the Open Source community, initially through the launch of The Turing Way and then on to joining Project Jupyter and the mybinder.org operating team.
I have now taken all the skills I have developed from these communities and joined 2i2c. I work across many communities in research and education to provide them with cloud-based, Jupyter-enabled scientific computing environments. Currently, I am working with Pangeo to migrate their JupyterHubs into 2i2c management before we begin some more developmental work with them.
Outside of work, I enjoy reading (trying to get through a backlog of ebooks), going for walks somewhere green with my partner, cross-stitching something snarky, and having cuddles with my cat, Max.
How did you become a core developer for Binder?
My story with Binder really begins with entering the world of Research Software Engineering (RSE) at the Turing Institute. The Turing Way was one of the first projects I was assigned to and, as a guide for reproducible research, I figured I’d be able to learn all the skills I needed to know to do well in my new job. However, project PI Dr Kirstie Whitaker had very different ideas for me! She wanted me to work on Project Binder and figure out what needed to be done to have our very own BinderHub at the Turing. So with zero knowledge of the cloud and a GitHub account that was, at best, a week old - I set about that task.
I won’t lie, the next few months of that project were an uphill struggle like nothing I’d ever experienced before. There were multiple, complex tools linked together in ways that “just worked” that made it difficult for someone like me with little experience to get all the concepts straight in my head. However, with a lot of perseverance and support from the wonderful BinderHub and JupyterHub teams, I succeeded in deploying a BinderHub for the Turing. Along the way, I also contributed a lot of documentation upstream to help others who may be in my position when entering the project, and I developed two workshops introducing users to Binder and how to deploy their own BinderHub.
At the end of my allocated time on The Turing Way (I’m still active in the project nearly 3 years on!) the Binder team asked me to join the operating team for mybinder.org so that I could continue to contribute and develop the project as well as keeping strong ties back to The Turing Way community. And I’d like to think they got their (figurative) money’s worth! ??? I went on to secure a grant to fund a cluster for mybinder.org and make the Turing a member of the Binder Federation, I often chair the monthly team meetings, and I will be taking up the role of JupyterHub Community Strategic Lead with funding from the Chan Zuckerberg Initiative.
Why did you start using Python?
I began using Python at the start of my PhD in 2015. After a semester-long (and shall we say, traumatic?) introduction to FORTRAN during my undergrad, I had been put off learning to program; however, I realised I wasn’t about to get through an astrophysics PhD without writing some code. I couldn’t even claim practical skills as the instrumentation was orbiting Earth!
I was advised by friends to start with Python as it was user-friendly (at least compared to some of the other languages being used around the department) and it was popular in the field, so there’d be people able to help me. I settled in for a couple of months with various Python introductory materials and, over the course of my PhD, managed to bring myself from complete novice to running parallelised Monte Carlo simulations on HPC systems.
What other programming languages do you know and which is your favorite?
Every now and then, I switch over to bash if I find myself writing too many subprocess commands in Python, so I would call that my second language.
Most of what I do in my current work is managing cloud infrastructure using Terraform, Kubernetes deployments with kubectl and helm, and Continuous Integration/Deployment flows with vendors like GitHub Actions - hence I mostly write in YAML! I have gained quite the beady eye for indentation ???
Python will always be my favourite though as my first language ???
Which Python libraries are your favorite (core or 3rd party)?
If I’m not doing JupyterHub management, I’m usually writing a bot to automate something tedious - such as automatically opening Pull Requests to bump versions of helm charts or Docker images as they’re released. Therefore, I mostly use the requests and json libraries to interact with some API and then parse the result. However, I’m interested to look into [httpx](https://github.com/encode/httpx) as an alternative to requests. Another package that caught my eye is [jmespath](https://github.com/jmespath/jmespath.py), which provides a handy way to search and find JSON keys without traversing the whole tree of keys. I like to use [ghapi](https://github.com/fastai/ghapi) if I’m interacting with the GitHub API. The team has put a lot of work into making the docstrings work nicely in a Jupyter Notebook making it easy to find the call you need.
What are some neat features you can do with Binder that you don’t think most people are aware of?
One thing I think is cool but can be difficult to figure out is how to select different interfaces from the webpage. JupyterLab is available by default alongside the classic Notebook view, and Binder installs RStudio for you automatically if you’re setting up an R environment.

I think this is difficult to find as our web interface is quite old now, but not many of the team have a lot of JavaScript/frontend knowledge to update it. If you do have these skills and think this is something you could work on with us, please get in touch!
Another cool thing that you can do with Binder is build R environments using conda, this ends up building a lot faster than using the install.R or DESCRIPTION files.
You can also equip your Binder repository with the repo2docker GitHub Action to pre-cache your images for faster build times!
You can check out my Discourse post to see what other members of the community suggested.
Thanks so much for doing the interview, Sarah!
本周 PyDev:索尔·普万森
原文:https://www.blog.pythonlibrary.org/2019/12/30/pydev-of-the-week-saul-pwanson/
本周我们欢迎 Saul Pwanson ( @saulfp )成为我们本周的 PyDev!索尔是 VisiData 的创建者,这是一个用于表格数据的交互式多工具。如果你想知道索尔最近在做什么,那么你应该看看他的网站或者他的 Github 简介。你也可以支持 Saul 在 Patreon 上的开源努力。让我们花一些时间来更好地了解 Saul!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
我 80 年代在芝加哥长大,90 年代早期在 BBSes 上,在大学及以后在 IRC 上。我去过纽约的 Recurse 中心一次,去过荷兰两次,去过内华达州 Gerlach 的 Bruno’s 六次。我喜欢填字游戏、棋盘游戏和点击冒险。有一天我想完成我对线粒体内部令人敬畏的机制的“董事会模拟”。
你为什么开始使用 Python
这是 2004 年的一份工作。作为一种脚本语言,它真的很棒,标准库本身使大多数常见的事情变得简单,生态系统的其余部分提供了不止一种,通常是大约 4 种不同的方法来完成任何任务,通常包括一种非常有效的方法。我向所有默默无闻的 Python 库开发者脱帽致敬,他们为其他系统提供接口,而这些系统只是工作而已。VisiData 支持如此多的数据格式仅仅是因为 Python 生态系统的丰富性使它变得容易。
你还知道哪些编程语言,你最喜欢哪一种?
我十几岁的时候在 BBS 上做过很多 x86 汇编,大学的时候开始同时使用 C 和 C++。我仍然在日常工作中使用 C 语言进行嵌入式开发。我已经有大约 10 年没用过 C++了,这意味着我已经过时了。
不过,我最喜欢的语言是一种叫做 Forth 的更古老的语言,它是一个出色的小系统,可以让你在高度受限的环境中获得最大的收益。(我们谈论的是千字节和兆赫兹,比大多数软件做梦都想不到的适合其运行时的资源少几个数量级)。Forth 的本质是难以置信的优雅,它的实现把事情设置得“井井有条”,然后一切都按照设计自然就位,只需要很少的实际代码。
用 Forth 编程鼓励我用非常清晰的方式思考我自己用其他语言写的代码。通常,如果您正在查看 VisiData 源代码,某个特定的代码位可能看起来极其简单,结果却是微妙而惊人的强大,但这并非偶然。系统的其余部分通常必须设计得“恰到好处”,这样一点点代码就可以很优雅。我知道许多现代软件工程师可能会认为这是浪费时间,但在核心设计上花费精力通常会带来其他令人惊讶的功能,然后神奇地工作。
你现在在做什么项目?
- VisiData 2.0,有一个我们可以支持的 API,鼓励插件和加载器的丰富生态系统。
有些喜欢的人已经开始【编写插件】(https://github . com/js vine/visi data-plugins),我梦想有一天每一个有表格数据的格式和服务都会有一个 visidata loader。 - "卡门·桑玛特奥在哪里?"一个数据潜水游戏,就像诺亚·维尔特曼的命令行之谜或者 Knightlab [SQL 谋杀案](https://Mystery . knight lab . com/)。你知道,就像一个为数据迷设计的侦探游戏。
哪些 Python 库是你最喜欢的(核心或第三方)?
快速浏览一下 VisiData 源代码,似乎使用最多的是集合、 functools 和 itertools 。至于第三方工具,我总是不得不提到 python-dateutil。它让日期解析变得如此简单,不管是哪种格式,它都能理解。我唯一的愿望是它允许访问推导出的格式,所以你可以用同样的方式重新格式化其他日期。
什么是 VisiData,它是如何产生的?
VisiData 是终端中表格数据的游乐场。它为许多格式提供了类似电子表格的界面,甚至包括它自己的内部。2011 年,我在 F5 Networks 工作时,第一次制作了一个版本。它的灵活性令人惊讶,并且在许多任务中使用起来不合理地有效,在我离开那份工作后,我发现自己错过了它(例如,查看和探索我在下一份工作中使用的 HDF5 文件)。但我不能使用那个版本,因为 F5 拥有它,所以我决定完全重新制作它,并作为开源版本发布。然后,我可以把它用于我自己的项目和其他工作。
但是“正确地”做它是一项费力不讨好的工作,要使它在各种情况下都可靠和无缝,要消除所有的小细节和边缘情况,这样它就像一个工具,不仅能完成工作,而且非常流畅,使用起来很有趣。这是相当多的工作,我绝不会花时间只为自己做。但是,当其他人使用它并欣赏它时,这种努力就值得了;无论是在全局优化意义上,还是在个人情感满足意义上。
您希望 VisiData 增加什么新的挑战或功能吗?
我真的希望分屏:在同一个终端中有两个独立但相关的 VisiData 窗口,用于内部菜单(例如聚合器和 jointypes),或目录/文件浏览(一个 la Norton/Midnight Commander),以及许多其他有趣的用例。但从设计的角度来看,这很复杂。我希望发表这样的公开声明会刺激我的潜意识找到一个优雅的解决方案,就像我在播客 init interview 中发生的那样。
索尔,谢谢你接受采访!
本周 PyDev:斯科特·肖克罗夫特
原文:https://www.blog.pythonlibrary.org/2019/07/01/pydev-of-the-week-scott-shawcroft/
本周我们欢迎 Scott Shawcroft ( @tannewt )成为我们的本周 PyDev!Scott 是 CircuitPython 的首席开发者,这是一种为微控制器设计的 Python 编程语言的变体。如果你想知道斯科特还在做什么,他的网站是个不错的起点。让我们花一些时间来更好地了解 Scott!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
我叫 Scott,2009 年毕业于华盛顿大学计算机工程专业。后来,我加入了谷歌的地图团队,从事地图的渲染和设计工作。2015 年离开,去做自己的事。我为赛车四轴飞行器设计了一个模块化的飞行控制器系统,同时学习了硬件。我的爱好包括跑步、攀岩、视频游戏和旧货淘复古电子产品(这样我就可以把 CircuitPython 放进去了。)
你为什么开始使用 Python?
大约在 2004 年,我开始使用 Python 制作我的第一个桌面应用程序( Denu )。我第一次学习编程是用 PHP 和网站。我想转向桌面编程,还记得我站在书店里,在 Perl 和 Python 书籍之间做选择。我因为某些原因挑了 Python,一直没有回头。
你还知道哪些编程语言,你最喜欢哪一种?
我说过,想要动态 HTML 之后,先学了 PHP。(这是在 CSS 和 Javascript 真正成为一个东西之前。)从那以后我就再也没有真正接触过 PHP。
在学校里,我们主要学习 Java,少量学习其他语言。在我讲授计算机编程入门课程的同时,我还教授了一个用 Python 讲授这门课程的选修课。买了新的 MacBook Pro 后,我用 Python 对苹果多点触控板进行了逆向工程,并在 2008 年用 C 语言为它实现了一个守护进程。(这是我的 Linux 内核声称成名。)
我在谷歌做 Javascript,在 GMail 上实习。一旦我在谷歌开始全职工作,我就在服务器上做 C++。对于我的嵌入式工作,我主要使用 C 语言(甚至在 CircuitPython 中)。
选择一个最喜欢的有点难。Python 总是脚本编写、原型制作和教学的良好开端。当你想管理你自己的内存时,最新版本的 C 和 C++也非常好。
你现在在做什么项目?
我的核心项目是 CircuitPython。它是 Python 的重新实现,目标是使编程和构建变得容易。它基于 MicroPython,为我们在 CircuitPython 中所做的改进奠定了基础。我的日常工作是扩展和完善 CircuitPython 的底层 C 代码。
我在业余时间设计和破解硬件,让 CircuitPython 在新设备上运行。例如,我设计了一个运行 CircuitPython 的 GameBoy 推车,使编写 GameBoy 程序变得更加容易。我还有一个烤面包机和钢琴键盘等着 CircuitPython 的大脑。之前,我用 CircuitPython 制作了一个定制的机械电脑键盘。我喜欢黑客设备使用 CircuitPython,因为这是攻击代码最简单的方法。
哪些 Python 库是你最喜欢的(核心或第三方)?
使用硬件时 Struct 可能是我的最爱。它对于与外部传感器接口非常有用。
我最喜欢的第三方库是 requests,因为它使得编写像 GitHub 这样的 REST APIs 很容易。
你是如何成为 CircuitPython 的首席开发人员的?
在某种程度上,这是偶然的。我在为我的房子制作传感器时发现了 Adafruit。几年后,在制作飞行控制器时,我成了 Adafruit“展示与讲述”节目的常客。一旦我的硬件业务不可持续,我就开始寻找软件工作。我问 Adafruit 他们是否有什么,他们提出付钱让我把 MicroPython 移植到他们的 M0 主板上(后来变成了 CircuitPython)。进展非常顺利,我继续努力。
所以,在某种程度上,我成为了领导者。随着项目的发展,我已经设定了项目的愿景,并开始着手其他一些项目。我们将看到 CircuitPython 如何随着它的继续发展而发展。
CircuitPython 的未来让你兴奋的是什么?
我很高兴看到人们用它做出各种不同的东西。CircuitPython 以一种前所未有的方式将 Python 的易用性与硬件的有形性结合在一起。
随着我们扩大设备支持,我们将会看到更多使用 CircuitPython 构建的项目。当我们添加移动工作流支持时,我们将看到我们的受众范围扩大,包括那些主要使用移动设备而不是笔记本电脑或台式机的人。
你能描述一下让 Python 在嵌入式系统上工作的一些挑战吗?
在嵌入式系统上开发 Python 的最大挑战是有限的 RAM。随着一个项目发展到使用许多库,ram 的占用也在增长。一旦 RAM 已满或碎片化,代码就无法继续。幸运的是,廉价的微控制器空间仍然是摩尔定律的领地。我移植 MicroPython 的原始微控制器 SAMD21 有 32 千字节的 ram。我们最新的 SAMD51 有 192 千字节到 256 千字节。空间很大。😉
你还有什么想说的吗?
我想鼓励软件人员尝试用硬件来构建一些东西。拿着自己编程的实物并与之互动是一件非常有趣的事情。
微控制器编程为“全堆栈”带来了全新的含义。通过跳过 Windows 或 Linux 等完整操作系统包含的许多层,在微控制器上运行的代码更接近于“金属”。如果没有这些层,就更容易理解 CPU 和内存的机制,因为它只是您运行的代码。
斯科特,谢谢你接受采访!
本周 PyDev:肖恩·麦克马纳斯
原文:https://www.blog.pythonlibrary.org/2019/05/27/pydev-of-the-week-sean-mcmanus/
本周,我们欢迎肖恩·麦克马纳斯( @musicandwords )成为我们本周的 PyDev!肖恩是几本书的作者,包括任务 Python:编码一个太空冒险游戏!,是三月份在这个站点审核的。这里有他书中的免费章节。你可以在肖恩的网站上了解更多关于他的信息。让我们花些时间去更好地了解他!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名专门研究技术的作家。近年来,我写了几本书,让儿童和年轻人学习编程。Raspberry Pi 的推出和 Code Club 等倡议帮助年轻人比过去许多年更容易理解编码。
当我还是个孩子的时候,我喜欢为我的 Amstrad CPC 计算机编程,并且在许多方面它开启了我的职业道路。我在当时的主流杂志上发表过列表和文章,我的第一本书是关于 Amstrad 编程的。今天,我仍然记得我小时候是多么热爱编程,我希望我的书能给今天崭露头角的程序员带来一些兴奋。
除了写书和文章,我还帮助一些世界领先的科技公司满足他们的文案需求。
除了写作,我还喜欢摄影和创作音乐。我录制了一张电子音乐专辑,计划今年晚些时候在网上发行,我是一个歌唱团体的成员,这是一种很好的放松方式。
你最后是如何用 Python 写一本关于游戏编程的书的?
似乎有很多 Python 书籍都包含了一些小例子,向您展示某个特定特性是如何工作的。这很好,因为当代码精简到最基本的部分时,学习起来就容易多了。然而,这确实让许多读者想知道下一步该做什么,以及如何在几页纸的短程序和更实质性的项目之间架起桥梁。例如,知道列表是如何工作的是一回事,但是如何使用它来为 3D 游戏创建地图呢?如何在基础上创造出不仅仅是演示语言的东西?
使用 Mission Python 的想法是展示一个超越基础的游戏实例。这是一个图形化的冒险游戏,所以有很多机会学习数据结构(房间、对象、交互)和很多定制的机会,这是简单的街机游戏所没有的。游戏的背景是火星空间站,那里的空气正在泄漏,你必须到达安全的地方。它包括寻找物体和解决难题,并像早期塞尔达游戏一样使用强制视角。我对一位评论家的评论感到特别高兴,他说这感觉像是游戏先于书出现,而不是教育书籍通常的情况:我渴望游戏尽可能“真实”,在稍微复古的游戏格式的限制下,以及在一本书的范围内可以合理记录的内容。
哪些 Python 库是你最喜欢的(核心或第三方)?
Mission Python 中的游戏使用了 Pygame Zero 库,所以我花了很多时间使用它,并把它看作是我目前最喜欢的库。
Pygame Zero 用一些教育友好的特性对 Pygame 进行了现代化,并简化了一些图像移动的语法。通过引入像精灵一样的演员,它有助于在课堂上使从零开始到 Python 的旅程更加顺畅。它还简化了 Pygame 的一些基础,比如屏幕刷新。Pygame Zero 可以做很多很酷的事情,这些事情超出了 Mission Python 的范围,所以也许将来我会用它编写一些别的东西。
你在写书的过程中学到了什么?
我现在已经写了或合作写了几本书,包括为傻瓜准备的树莓派、轻松步骤中的 Scratch 编程和轻松步骤中的酷 Scratch 项目。写书教会你如何组织你的时间和想法:这是一段在短时间内紧张的工作,通常涉及广泛的主题,所以计划是必不可少的。我用电子表格记录一切,来减轻我大脑的负担!
我的一个建议是尽可能留出思考时间。如果你在调试的时候真的被难住了,我发现转而做些别的事情通常更好,在不完全停止项目的情况下,在后台赢得一些思考时间。人们常常会“啊哈!”洗澡时或放松时,所以如果修改代码不起作用,让它休息一会儿是个好主意。
思考时间对创造力也很重要:我留出一个晚上来设计主要的游戏拼图。我去了伦敦科学博物馆的空间画廊参加了一个后期会议,在那里我花了一个晚上的时间绘制拼图和位置,周围是真正的火箭和宇航服。我后来在开发游戏时添加了新的谜题和想法,但这有助于从一开始就有一个良好的愿景。
这些书显然教会了我很多关于我一直在使用的编程语言的知识,因为我研究了我需要的新特性和资源。写一本书,我必须采取务实的观点,有时我更喜欢使用一种更容易让人理解的解决方案,或者一种比可能最快或最惯用的解决方案更广泛兼容的解决方案。
对 Mission Python 的反应如何?

任务 Python 是一个大项目,编写游戏和配套的书,所以它现在出现在世界上真是太棒了。我得到了一些很好的反馈。一位年轻的读者写信告诉我,他们以前没有编程,这本书向他们介绍了 Python 编程,这是一件很棒的事情,我参与了其中。成年人也很喜欢这本书,有些人知道 Python,但以前没有做过任何游戏开发,有些人对 Python 完全陌生。热爱编程的业余程序员发现这是一个令人愉快的项目,看到阅读这本书的人的推文和评论真是太棒了。这是一个巨大的帮助,让这个词出来,非常感谢。游戏引擎可以用来创建全新的游戏,所以我很期待看到读者用它来构建什么。
你现在在做什么项目?
我现在的主要项目是更新我的网站,这涉及到许多代码争论,尽管不是 Python。我的网站去年庆祝了它的 20 岁生日,所以有一些相当旧的代码,我在努力使网站反应更快、对移动设备更友好的过程中清除了这些代码。
我仍然在修补来自 Mission Python 的游戏,既是为了娱乐,也是为了给读者提供额外的资源。例如,美国宇航局发布了一些在火星上录制的真实声音,这似乎是一个不容错过的好机会。我写了一些代码,这样当你在游戏中的火星表面时,那些声音就会响起。一旦我的新网站设计发布,我将很快发布一个简短的程序来隐藏空间站上的物体,这将为游戏带来新的益智元素。
今年我也会花更多的时间在 Scratch 上,因为我会为 Scratch 3.0 更新我的 Scratch 书籍。
我期待着一旦我有时间投入到另一个大的 Python 项目中。我认为自己正在进行 Python 之旅,并渴望进一步发展我的技能。
你还有什么想说的吗?
欢迎任何人在这里下载任务 Python 游戏。那里也有这本书的免费样本,其中包括玩游戏的说明,如果你被困住了,还有一张地图!
谢谢你邀请我在你的博客上发表文章,迈克!
肖恩,谢谢你接受采访!
本周 PyDev:肖恩·蒂博尔
原文:https://www.blog.pythonlibrary.org/2020/10/12/pydev-of-the-week-sean-tibor/
本周,我们欢迎肖恩·蒂博尔( @smtibor )成为我们本周的 PyDev!肖恩是教学 Python 播客的联合主持人。他曾是其他播客的嘉宾,如测试&代码并且是红礁数字的创始人。
让我们花一些时间来更好地了解 Sean!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)
有趣的是:我从来没想到会成为一名教师。我在大学和研究生院学习信息系统,学习用 C++、Java、PHP 和 VB.NET 编程,然后在 IT 和市场营销领域工作了近 20 年。
几年前,一位亲爱的家庭朋友让我考虑转行去教书,因为她认为我有这方面的天赋。这是我在佛罗里达州一所私立 PK-12 学校教中学计算机科学的第三年。我们学校每个 11-14 岁的学生在 6、7、8 年级每年都要上 9 周的计算机科学课。
我发现很少有什么事情比看到一个孩子发现自己的潜力更令人满意。教学已经变得更像是每个学生学习编码所经历的旅程,而不是他们所学的具体课程。
我对硬件编码、制作和设计电子产品以及 3d 打印的爱好已经成为我职业的一部分,这也真的很有趣。我把所有这些技能和知识带到了我的教学生涯中,所以我感觉我可以整天玩我喜欢的东西。
你为什么开始使用 Python?
当我开始教书时,我加入的学校刚刚对他们的计算机科学课程进行了一次大规模的修订。作为其中的一部分,他们选择让 Python 成为所有中学生都会学习的语言。
因此,在整个夏天,我开始尽可能多地学习 Python,从自动化枯燥的东西到 CircuitPython 和 MicroPython 硬件,再到 Pybites 代码挑战,我什么都学。这花了几个月的时间,但我能够从开学的第一天就开始教学。
除了教授 Python 之外,它对学校的集成和自动化项目也非常有用,可以使事情运行得更加顺畅。我还用它来做营销自动化领域的一些副业项目,因此它增强了我职业生活的其他部分。
你还知道哪些编程语言,你最喜欢哪一种?
我坚信 Python 是一种有用且高效的完成工作的语言,所以这是我的首选语言。多年来,我涉猎了很多不同的语言,比如 VB.NET、Java、PHP、Objective-C、C++和 Arduino。在我的项目中,大部分内容已经被 Python 取代,然后我根据需要添加一些 HTML、CSS、JS 和 SQL,使它们结合在一起。
你现在在做什么项目?
我现在最喜欢的项目是我们学校处理苹果设备管理的 JAMF 服务器的包装库和函数库。我们学校有超过 1500 台 iPads 在两个校园内使用,我的项目自动化了许多过去需要亲自动手和手动操作的常见任务。现在我们已经有了这个项目,我们可以把一个全新的收缩包装的 iPad 交给老师或学生,它会在连接到互联网的大约 5 分钟内自动配置应用程序和设置。
哪些 Python 库是你最喜欢的(核心或第三方)?
我不认为它得到了很多关注,但是我喜欢 dateutil 库。我的本科毕业设计是一个基于网络的个人信息管理器,它与你的 PDA 同步,最复杂的部分是日历模块。从那以后,我一直有点痴迷于在代码中获得正确的日期和时间,dateutil 库有这么多有用的功能,从时区选择到将字符串解析为 datetime 对象,甚至还有有趣的相对日期。
作为教学 Python 播客的主持人,你学到了什么?
最棒的事情是见到了 Python 社区中所有了不起的人,并且与我的教学伙伴和共同主持人 Kelly Paredes 一起做了这些。当我们开始播客的时候,她没有编写过代码,我也没有教过,所以我们每个人都是初学者,而另一个人则是专家。
对于我们遇到的每一个人,我们每个人都学到了更多关于教学、Python 以及世界上人们正在做的许多不同的酷事情。通常在一集录制结束后,我们会坐在那里谈论我们从客人那里或彼此那里学到的所有有趣的事情。
我还发现 Python 和教育社区是如此的友好和平易近人,这真的令人惊讶。我们开始只是两个老师,他们想尝试制作一个播客,讲述我们教我们两个新东西的经历。我们交了很棒的朋友,进行了一些最令人兴奋的谈话,没有人说不。
关于 Python,课堂上最难教的是什么?
最难的是与 Python 语言无关。它克服了一个学生“我不是一个程序员”的信念有了耐心和坚持,我发现几乎每个学生都能找到他们喜欢编码的东西,并创造出他们非常自豪的东西。我见过学生们创造各种东西,从 RGB 照明的雨伞,到有 700 行代码的自选冒险游戏,再到提醒他们事情的 Alexa 语音技能,这样他们的妈妈就不必这么做了。
我发现编码很像跑步。许多人说他们不是跑步者。然而,重要的是你自己的跑步或编码之旅。如果你跑,你就是一个跑步者。如果你编码,你就是一个编码者。我不期望每个学生都是天才的程序员,但是我看到学生们抛弃了他们“不是程序员”的观念后,他们所能做的让我震惊。
你还有什么想说的吗?
学习 Python 是为了把它教给别人,这与我学习一门新语言的其他时候有很大的不同。每次学生问我某个东西是如何工作的,我想我已经得到了正确的答案,但是他们接着问我一个问题,这让我很兴奋去了解更多。教另一个人绝对是让自己保持挑战和学习动力的最好方法。
肖恩,谢谢你接受采访!
本周 PyDev:Sebastian Rami rez
原文:https://www.blog.pythonlibrary.org/2020/01/20/pydev-of-the-week-sebastian-ramirez/
本周我们欢迎塞巴斯蒂安·拉米雷斯(@田戈洛 )成为我们的本周 PyDev!塞巴斯蒂安是 FastAPI Python web 框架的创建者。他维护着自己的网站/博客,如果你有空的话可以去看看。你也可以在那里看到他的开源项目。你也可以在 Github 上看到他在为哪些项目做贡献。
让我们花点时间来更好地了解 sebastán!

**Can you tell us a little about yourself (hobbies, education, etc)😗*Hey! I’m Sebastián Ramirez, I’m from Colombia, and currently living in Berlin, Germany.I was “homeschooled” since I was a kid, there wasn’t even a term for that, it wasn’t common. I didn’t go to school nor university, I studied everything at home. At about (I think) 14 I started fiddling with video edition and visual effects, some music production, and then graphic design to help with my parent’s business.Then I thought that building a website should be almost the same …soon I realized I had to learn some of those scary “programming languages”. HTML, CSS, and JavaScript (“but!!! HTML and CSS are not…” I know, I know). But soon I was able to write a very short text, in a text file, and use it to make a browser show a button, that when clicked would show a pop-up saying “Hello world!”… I was so proud and excited about it, I guess it was a huge “I maked these” moment for me. I still feel that rush, that excitement from time to time. That’s what makes me keep loving code.I also like to play videogames and watch movies, but many times I end up just coding in my free time too. I’m boring like that…Â 
你为什么开始使用 Python?
At some point, I was taking several (too many) courses on Coursera, edX, and Udacity. I knew mainly frontend vanilla JavaScript (Node.js was just starting), so I did all the exercises for the Cryptography, Algorithms, and other courses with JavaScript running in a browser, it sounds a bit crazy now.Then I took Andrew Ng’s ML course on Coursera, it used Octave (kinda Matlab) and it taught me enough Octave/Matlab for the course, and also that learning a new language was not so terrible. But then an AI course from Berkeley/edX required Python… so I took the Python crash course that was embedded (it was just like one page). And I went into the AI course with that. I loved the course, and with it, I started to love Python. I had to read a lot of Python docs, tutorials, StackOverflow, etc. just to be able to keep the pace, but I loved it. After that, I took an MIT/edX Python course and several others.And I just kept learning and loving Python more and more.
你还知道哪些编程语言,你最喜欢哪一种?
I’m quite fond of JavaScript as it was my first language. I have also used some compile-to-JS languages like CoffeeScript, TypeScript. I have also ended up doing quite some Bash for Linux and Docker.I really like TypeScript, and now I almost never do plain JS without TS, I love having autocompletion everywhere and type checks for free. I naturally got super excited when optional type hints for Python were released as a Christmas gift in 2016. And 2 years later FastAPI came to be, heavily based on them.
你现在在做什么项目?
I put a lot of my free time to FastAPI and sibling projects, and also some of the other open source tools I’ve built.Right now I’m working for Explosion AI. They are the creators of spaCy, the open source, industrial-strength, Natural Language Processing package.At work, I’m currently on the team building the teams version of Prodigy, a commercial tool for radically efficient machine teaching, using Active (Machine) Learning.But as open source is very important for the company (because they’re awesome like that), I also devote part of my working time to FastAPI and family.
哪些 Python 库是你最喜欢的(核心或第三方)?
Core, I would say typing, as it’s relatively new and it deserves more attention, I think not many people know that those optional type hints are what powers autocompletion and automatic type checks for errors in editors. Most of the developers love those features, but a few know that type hints are what powers them.3rd party, I think naturally Starlette and Pydantic, as they power FastAPI.But I think Pydantic also deserves a lot more attention, even outside of FastAPI. It’s an amazing library, really easy to use, and saves a lot of time debugging, validating, documenting, and parsing data. It’s also great for managing application settings and just moving data around in an app. Imagine using deeply nested dicts and lists of values, but not having to remember what is what everywhere (“did I write ‘username’ or ‘user_name’ as the key in the other function?” ), just having autocomplete for everything and automatic error checks (type checks).I recently built a GitHub action to help me manage issues, and most of the work ended up being done automatically by Pydantic. It also works great for data science, cleaning and structuring data.This list could probably grow a lot, but some highlights:
- 开发工具:诗歌或 Pipenv,黑色,Isort,Flake8,Autoflake8,Mypy,Pytest,Pytest-cov
- 对于单据:带有 Mkdocs-物料和降价-包括的 MK docs
- 其他:Cookiecutter,Requests 或者 HTTPX,Uvicorn
- 数据科学/处理,ML: Keras 与 TensorFlow 或 PyTorch,Numpy,PyAV,Pandas,Numba,当然还有 spaCy 和 Prodigy
你还有什么想说的吗?
I love the Python community, I think it’s a friendly ecosystem and I would like all of us to help it be even more welcoming, friendly, and inclusive. I think we all can help in achieving that.New developers: don’t be shy, you can help too. Updating documentation of a new tool you are learning is a great start.
维护者:帮助我们建立一个友好的生态系统,对于一个新的开发者来说,试图提供帮助是很困难的。请友好点。
你的项目 FastAPI 是如何产生的?
I had spent years finding the right tools and plug-ins (even testing other languages with their frameworks) to build APIs.I wanted to have automatic docs; data validation, serialization, and documentation; I wanted it to use open standards like OpenAPI, JSON Schema, and OAuth2; I wanted it to be independent of other things, like database and ORM, etc.I had somewhat achieved it with some components from several places, but it was difficult to use and somewhat brittle, as there were a lot of components and plug-ins, and I had to somehow make them interact well together.I also discovered that having types as, in TypeScript, it was possible to have autocompletion and checks for many errors (type checks). But then Python added optional type hints!
And after searching everywhere for a framework that used them and did all that, and finding that it didn’t exist yet, I used all the great ideas brought by previous tools with some of mine to integrate all those features in a single package.I also wanted to provide a development experience as pleasant as possible, with as small/simple code as possible, while having great performance (powered by the awesome tools underneath, Starlette and Pydantic).
在创建软件包的过程中,你学到了哪三件最重要的事情?
First, that it was possible. I thought building a package that others found useful was reserved for some olympian-semi-god coders. It turns out that if there’s something to solve, and you solve it, and you help others use it to solve the same thing, that’s all that is needed.Second, I learned a lot about how Python interacts with the web. FastAPI uses the new standard ASGI (the spiritual successor to WSGI), I learned a lot of it. Especially reading the beautiful and clean code of Starlette.Third, I learned a lot about how Python works underneath by adding features to Pydantic. To be able to provide all its awesome features and the great simplicity while using it, its own internal code has to be, naturally, very complex. I even learned about undocumented features of Python’s internal typing parsing, that are needed to make everything work.But I don’t think that a new developer needs to learn the last 2 things, the first one is the most important one. And as I was able to build FastAPI using the great tools and ideas provided by others, I hope FastAPI can provide a simple and easy way for others to build their ideas.
你对其他有抱负的包创作者有什么建议吗?
Write docs for your package. It doesn’t exist completely if it’s not well documented. And write them from the point of view of a new user, not of your own.Also, building and publishing a new package is now extremely easy. Use Flit or Poetry if your project is simple enough to use them (i.e. pure Python, you are not building with Cython extensions, etc).
本周 PyDev:塞巴斯蒂安·斯坦斯
原文:https://www.blog.pythonlibrary.org/2019/12/09/pydev-of-the-week-sebastian-steins/
本周,我们欢迎塞巴斯蒂安·斯坦斯( @sebastiansteins )成为我们本周的 PyDev!塞巴斯蒂安是python 新闻网站的创建者。你可以通过查看 Sebastian 在 Github 上的活动来了解他的更多信息。让我们花一些时间来更好地了解他!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)
我是一名来自德国的软件开发人员,住在荷兰和比利时边境附近。互联网是在我上学的时候出现的。一直对电脑很着迷,想学编程。不幸的是,这在当时并不容易,我没有老师能在这件事上支持我。然而,当我得到我的第一个调制解调器时,一切都变了。互联网为我打开了一个全新的世界,我开始学习 HTML、Perl 以及后来的 PHP。那时候我制作 CGI 脚本和小型网络应用,真的很有趣。最终,我选择了编程作为我的职业道路,尽管我有时会为这个决定而挣扎。除了我的计算机科学学位,我还听过经济学讲座,并在职业生涯早期在金融部门担任过几个职位。现在,我喜欢在架构问题上指导伟大的软件工程师团队,并试图将我的知识传授给初级开发人员。
当我不在电脑前的时候,我喜欢骑我的公路车,从有声读物中学习新的东西,并且永远不会拒绝去一家好餐馆。
你为什么开始使用 Python?
当我需要 PHP 的替代品时,我开始使用 Python,所以这是很早的事情。那是在 Python 2.0 发布的早期。我立刻就喜欢上了,因为这基本上就像写伪代码一样。这就是我仍然喜欢能够“与计算机对话”的原因:表达想法并很快看到结果。与此同时,其他语言也跟上了步伐,并和 Python 一样富有表现力。然而,从那以后,Python 就成了我的一个小小的家。
你还知道哪些编程语言,你最喜欢哪一种?
我在不同的项目中使用了许多不同的编程语言,如 Java、C#、C 和 JavaScript。
你现在在做什么项目?
我是一名软件工程的自由顾问。除此之外,我在 smartninja.de 教授入门课程。最近我开始了一个名为Python News的小项目,它基本上是 Python 社区的黑客 News 的克隆。
哪些 Python 库是你最喜欢的(核心或第三方)?
Python 生态系统中有如此多伟大的库。这是让 Python 编程如此令人愉快的另一点。这些库中的大多数都非常 Pythonic 化,可以非常简洁地表达思想。我非常喜欢 Django 框架,但是也有一些更小的包,比如我经常使用的 requests。
更大的,比如 numpy 和 pandas,确实证明了 Python 是如此的通用,几乎没有什么问题是用它解决不了的。
你的 Pythonic 新闻网站是什么来历?
我已经将 https://news.python.sc 站点构建为 Django 项目。在创建过程中,我试图尽可能多地使用 Django 框架的特性。这是因为我最初创建它是作为 Python 培训的示例应用程序,并希望展示实现事物的不同方式。这也是为什么代码库中的所有东西都不能被认为是最佳实践。目标是展示 Django 可以做什么,包括特定方法的缺点。例如,我在核心数据库对象上使用了模型继承,这在性能方面肯定不是最佳选择。
在创建这个项目的过程中,你学到了什么?
只是为了好玩,我把这个项目发布到了 Reddit 和 Hacker News 上。我得到了如此多的积极反馈,以至于我想在它完成之前看看它做得如何。我了解到网络上仍有一些地方让人感觉像是“美好的旧时光”。人们只是喜欢谈论他们关心的话题。21 世纪初的网站美学被证明非常适合观众。没有一个垃圾邮件或攻击行为的问题。在大型科技公司的围墙花园之外,仍有“互联网”在发生。
这让我很开心!
此外,我看到陌生人在 GitHub 上的反应是我从未预料到的。这让我想到我将从那个项目中创建一个 make-of 教程系列来教授更多的人关于 Python 的知识。当它准备好的时候,我会在我的网站上发布它。
你对其他内容创作者有什么至理名言吗?
开始吧,让世界了解你的想法和创造。即使不完美,你也会找到关心你的人。如果是你创建的 Python 项目,当然可以提交到 Pythonic News 的“Show PN”版块。
Sebastian,谢谢你接受采访!
本周 PyDev:塞思·迈克尔·拉森
原文:https://www.blog.pythonlibrary.org/2020/06/01/pydev-of-the-week-seth-michael-larson/
本周,我们欢迎赛斯·迈克尔·拉森(@赛斯·拉森)成为我们本周的 PyDev!塞斯是 urllib3 的主要维护者。他还写了一个 Python 博客。你可以在 Github 上看到 Seth 的其他贡献。
让我们花一些时间来更好地了解 Seth!
你能告诉我们一些关于你自己的情况吗:
我是明尼苏达州明尼阿波利斯的本地居民,我在明尼苏达大学获得了计算机科学学位。
我是明尼苏达体育,地鼠和维京足球,双胞胎棒球,野生曲棍球的忠实粉丝。此外
我真的很喜欢待在户外。
你为什么开始使用 Python?
我第一次接触 Python 是在大学的“CS 入门”课上。我爱上了这种语言的简单性和开源社区。我在上大学之前就知道一些编程,所以这不是我的第一门编程语言,但是我真的很喜欢 Python 所提供的东西。
我记得与 C 或 C++相比,Python 中的套接字和网络编程是如此简单,这让我非常兴奋,这绝对是一个吸引我注意的特性。
你还知道哪些编程语言?
我知道一些关于 web 前端语言的基础知识,比如 HTML、CSS、JS,但不足以在我的简历中列出它们。我 99%的语言知识都与 Python 相关,这是我迄今为止最喜欢的。
你在做什么项目?
我担任 urllib3 的首席维护者已经快一年了。我在开源方面花了很多时间在 urllib3 和其他 HTTP 相关的库上。
最近,我一直在我的博客上写我使用 Python、HTTP、URL 和 TLS 的独特体验。我写的很多东西都是针对这些领域的,它们并不适合所有人,但我正在努力实践“成为你想在世界上看到的改变”的口号,写一篇我也想读的博客。🙂
从专业的角度来看,我最近加入了 Elastic,担任 Elasticsearch 和其他产品的所有开源 Python 客户端的维护者,到目前为止,这非常有趣,能够全职为 Python OSS 社区做贡献是非常棒的。
你是如何成为 urllib3 的维护者的?
当 Cory Benfield 注意到我在用 Python 做 HTTP 服务器实现时,我开始为 urllib3 做贡献,邀请我加入 Hyper 项目,然后基本上一直跟着他回到他也参与的 urllib3 项目。几年的贡献之后,当西娅从首席维护者的位置上退下来时,我决定接替她的位置。
是什么促使你为开源做贡献?
我是一个非常喜欢社交的人,所以对我个人来说,最大的动力之一是我觉得我是比我自己更大的东西的一部分。成为这样一个全球协作社区的一部分是我们人类直到现代才有机会做的事情。帮我报名!
你最喜欢哪些 Python 库?
我觉得我最喜欢的核心模块是‘SSL’。
我可以说我对 TLS 和信息安全有所了解,现在我已经在这个领域工作了一段时间,能够通过 urllib3 在推动整个生态系统的安全方面发挥作用是非常棒的。这是一件非常独特的事情,我认为自己很幸运能够成为其中的一员。
我最喜欢的第三方包是‘NOx’,一个类似于‘tox’的任务管理器,只不过配置是 Python 而不是 toml/cfg。我能用它做的任何项目都会立刻变得更好。爱死了。
Seth,谢谢你接受采访!
本周 PyDev:Shannon Turner
原文:https://www.blog.pythonlibrary.org/2017/08/28/pydev-of-the-week-shannon-turner/
本周我们欢迎 Shannon Turner 成为我们本周的 PyDev!Shannon 是“听我说代码”的创始人,这是一个面向华盛顿 DC 地区女性的免费、初学者友好的编程课程。她在 Github 上有几个有趣的项目,你可能会觉得值得一试。让我们花些时间来更好地了解 Shannon!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
我的职业道路要感谢我的奶奶——她喜欢玩电子游戏。小时候,我会看她玩,然后在纸上画出游戏的草图给她看。我会说“如果这是游戏的一部分,岂不是很酷?”她很喜欢这一点——但她告诉我,如果我想实现这一点,我必须非常擅长计算机!
你为什么开始使用 Python?
在六年没有做任何编码工作之后,我正在自学如何编码,我已经忘记了几乎所有的事情。试图重新学习这一切是令人沮丧的,我想要一种对初学者来说容易的语言。我发现它比我过去学过的许多其他语言更容易上手,从那时起我就迷上了它!
你还知道哪些编程语言,你最喜欢哪一种?
Python 是我的最爱,尽管我也精通 HTML、CSS 和 Javascript。PHP、Java、Perl、C++和 Visual Basic 我都有涉猎,但是用的不多。
你现在在做什么项目?
最近我一直在学习如何用 Unity 做虚拟现实,这是一个有趣的长期项目。
哪些 Python 库是你最喜欢的(核心或第三方)?
我用 Django 做我所有的网站,包括看这个,而不是,一个告诉你一部电影是否通过了贝克德尔测试的网站,还有让我们去,一个全美 6000 家博物馆的列表,你可以按地点和类别搜索。
是什么启发了你创作《听我说代码》?
我厌倦了去参加科技活动,成为房间里唯一的女性之一,厌倦了被人居高临下地谈论,不受重视。我觉得我不属于这里。我交谈过的许多其他女性也是如此,我认为既然我是自学的,我也可以教别人,并创建我自己的团体,在那里女性可以一起学习和成长。所以我开始和四个女人围着我的餐桌教课,从来没想到会发展成这样。
你能描述一下“听我说代码”在 DC 地区产生的影响吗?
自从大约四年前开始听我说代码以来,在 DC 地区已经发展到 3000 名女性。对于许多女性来说,这是她们第一次接触编码。“听我说代码”侧重于领导力发展和将学生转变为教师,已有 100 多名妇女成为教师和助教。数十名女性认为“听我说代码”为她们提供了技能和经验,让她们能够在科技行业找到一份收入更高的工作。
有没有将该项目扩展到 DC 以外的计划?
我要把它保持在本地!组织一个像“听我说代码”这样的小组花费了我大量的时间和精力,这是我日常工作之外的所有志愿者的努力。
你还有什么想说的吗?
我很喜欢的一个项目是制作虎皮鹦鹉摄像头——我在我的宠物鹦鹉的笼子上安装了一个树莓皮和摄像头,每当我向一个特殊的电话号码发送短信时,它就会拍照并发给我一张我的鸟的照片。这是即时的满足,并帮助我在旅行时不再想家。
本周 PyDev:Shauna Gordon-McKeon
原文:https://www.blog.pythonlibrary.org/2020/12/07/pydev-of-the-week-shauna-gordon-mckeon/
本周我们欢迎 Shauna Gordon-McKeon 成为我们的本周 PyDev!Shauna 经营着自己的咨询公司,Galaxy Rise Consulting,是 Django 的狂热爱好者。她还在几次 Python 会议上发表过演讲!如果这次采访对你来说还不够,你可以在 Django 女孩博客上了解更多关于 Shauna 的信息。
让我们花些时间去了解她吧!
你为什么开始使用 Python?
大学一毕业,我就在一个神经成像实验室工作。我们使用 Matlab 来展示我们的刺激,并进行大量的数据分析,但还有许多数据清理和其他零星工作需要做。我们实验室有两个经验丰富的程序员,一个喜欢 Perl,一个喜欢 Python。我的桌子就在喜欢 Python 的桌子旁边。
离开那个实验室后,我可能没有继续使用 Python,但后来我搬到了波士顿,那里有一个充满活力的 Python 社区。在很多活动中,我可以学到新技能,可以向人提问,等等。这真的让我从“懂一点 Python”变成了我的主要编程语言。
你还知道哪些编程语言,你最喜欢哪一种?
除了 Python,现在我对 JavaScript 最熟练了。过去,我也沉浸在 PHP、Java、R 语言中,正如我提到的 Matlab,还有一些其他语言,比如 Lisp 和 Ruby,我也尝试过一些。我发现如果我不积极地使用一门语言,我会很快生疏,如果这门语言生疏了,这是件好事。😉
我尝试过的所有语言都有我喜欢的地方。我有点讨厌 Matlab 是一种昂贵的专有语言,但是在 Matlab 开发环境中处理数据真的很棒。JavaScript 也有它的挑战,但是你可以用它来制作如此漂亮的网站。我认为所有非 Python 语言中,我最喜欢的是 Lisp,因为即使只是稍微使用它,也会引入很多我以前在其他语言中没有遇到过的有趣概念。
你现在在做什么项目?
我的主要项目是 Concord,这是一个我已经工作了几年的治理库。我们的目标是让开发商能够建立网站,让社区能够民主自治。我从 Python 和软件架构中学到了很多,当然还有治理。
我是一名自由开发人员,我现在的工作之一是帮助建立帕森斯项目和社区。Parsons 是一个开源数据工具,专门用于帮助进步人士处理他们的数据工作流程。这是一个有趣的社区,非常适合新人和新程序员,我很高兴能成为其中的一员。
哪些 Python 库是你最喜欢的(核心或第三方)?
我最喜欢的核心库是 inspect。我考虑过提议一个关于它的 PyCon 演讲来分享我对它的热爱。我之前提到过我喜欢 Lisp 是因为它引入了很多我之前没有想到的编程概念,主要是围绕着把代码当成一个被操纵的对象。inspect 库使您能够用 Python 进行这类编程。
有这么多我使用和喜欢的第三方库,我不能挑选一个最喜欢的。但我会喊出姜戈和 DRF,朱庇特团队和 SciPy/NumPy/Pandas,Splinter,樱井真子和 BeautifulSoup 等等。
关于 Python 社区,你最喜欢的是什么?
我很欣赏它对包容性的重视,甚至更简单地说,对善良的重视。有些技术社区让人很不愉快。我同情那些因为职业原因需要呆在这些地方的人,或者因为这是做他们热爱的工作的唯一方式。生命如此短暂,以至于没有必要不断地处理残忍或偏执。
有大量的工作在幕后进行,以帮助社区蓬勃发展。几年前,我在一个 PyCon 演讲中谈到了圭多卸任 BDFL 后的治理过渡。一个友好、热情、快乐的社区不是凭空出现的,它是许多人努力工作的结果,他们建立了规范和结构来解决冲突,提供责任等等。Python 还有很长的路要走——大多数社区还有很长的路要走——但我认为我们已经走上了正确的道路。
Python 社区还有什么可以做得更好的吗?
是啊,当然。没有一个社区是完美的。
一个长期存在的问题是多样性。PSF 和整个社区在性别多样性和地理多样性方面做了大量工作——例如,你可以在对 PyLadies 和地区会议的支持中看到这一点。Jessica McKellar 作为多元化外联主席的工作非常出色。我很高兴西班牙语赛道 PyCon Charlas 的存在,并想大声喊出来 Marciela Sanchez Miranda、Mario Corchero、Mabel Delgado 和 Naomi Cedar,他们在过去几年中担任 Charlas 的主席/联合主席,以及他们背后的整个团队。
也就是说,尽管做了这些努力,Python 社区和整个世界的人口构成之间仍然存在差距,这意味着我们可以做更多的事情。我特别希望看到对有色人种,尤其是黑人,想要学习 Python 或者已经是社区成员的人提供更多有针对性的支持。我不能决定支持应该是什么样子,但我希望这是我们可以共同努力的事情。
我想谈的另一件事是我们与工业的关系。我们中的许多人受雇于科技行业,许多大型科技公司赞助 PyCon 和 PSF,但有时这些公司从事非常不道德的行为。我的希望是,作为一个社区,我们可以在沙滩上画一些线,并说,你知道,如果你从分离儿童和他们的家庭中赚钱,你不能在我们的世博会大厅里有一张桌子。如果你因为组织起来改善工作场所而非法解雇工人,我们不要你的捐款。这是我们作为一个社区需要进行的讨论,我希望我们有这样的讨论。
Shauna,谢谢你接受采访!
本周 PyDev:Sophy Wong
原文:https://www.blog.pythonlibrary.org/2019/10/21/pydev-of-the-week-sophy-wong/
本周,我们欢迎 Sophy Wong ( @sophywong )成为我们本周的 PyDev!Sophy 是一名使用 Circuit Python 来创造可穿戴设备的制造商。她也是一名作家和创客活动的发言人。你可以在她的 Youtube 频道或者她的网站上看到她的一些创作。让我们花一些时间来更好地了解她!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)
我是一名设计师和制造商,目前主要从事可穿戴电子项目。我的背景是平面设计,在走向可穿戴电子产品的路上也做过时装和服装方面的工作。我喜欢探索人们与技术互动的不同方式,我的许多作品都受到科幻和流行文化的启发。我的项目经常将微控制器和 3D 打印等技术与雕刻、绘画和缝纫等手工工艺相结合。
你为什么开始使用 Python?
我是通过 Adafruit 开发 Circuit Python 发现 Python 的。Adafruit 完整的文档和庞大的教程项目库使我能够轻松地学习和编写项目代码。我主要是一名设计师,代码是我用来实现我的想法的工具。Circuit Python 帮助我学习编程基础,并且随着我获得更多的技能,它也足够强大,可以支持更复杂的项目。
你还知道哪些编程语言,你最喜欢哪一种?
我也在一些项目中使用 Arduino,这让我可以使用许多出色的 Arduino 库,比如 FastLED。在为教程或教育研讨会创建项目时,我经常使用 MakeCode。MakeCode 作为可视化编程工具,使用起来很直观,也很容易用截图解释。它仍然足够健壮,可以支持相当复杂的项目,是进一步使用 Circuit Python 或 Arduino 的良好开端。
你现在在做什么项目?
我最近完成了一个项目,涉及到将 Adafruit 的 NeoPixel RGB LEDs 添加到一件夹克上,使用直接打印在织物上的 3D 打印扩散器。我现在正在做一个项目,将这项技术扩展到一件更大、更精致的衣服上。我也开始研究另一个太空服概念,学习如何使用台式 PCB 轧机,当然,还会编写更多可穿戴技术项目教程!
哪些 Python 库是你最喜欢的(核心或第三方)?
Adafruit 为其所有组件制作了非常棒的 Circuit Python 库,我几乎在每个项目中都使用他们的 Circuit Python NeoPixel 库,因为我喜欢用 neo pixel 来照亮事物。
对于想成为创客的人,你有什么建议吗?
选择一个你真正感兴趣的项目,然后开始。不要等待完美的材料,或最花哨的工具,要积极进取,边走边想办法。有时候,过多的计划和准备会在你开始之前偷走你所有的精力,让你的项目感觉势不可挡。所以,爱上你的想法,在你兴奋的时候投入进去。相信自己,玩得开心。如果你永不放弃,你就不会失败!
你对什么新的可穿戴技术感到兴奋?
我对虚拟现实和可穿戴设备增加沉浸式体验的潜力感到非常兴奋。这是一项技术,我记得当我还是个孩子的时候,我对它感到惊讶。我真的很想尝试一下,但是这项技术对我来说太遥不可及了,我想我永远也不可能亲自体验一下。现在它已经成为消费技术,我非常有兴趣看到制造商创造他们自己的虚拟现实体验,以及虚拟现实的可穿戴设备和外设。
我也对太空探索和宇航服非常感兴趣。我制作了自己的太空服服装,这是一个基于科幻渲染的概念设计。随着即将到来的月球和火星任务,我很高兴看到宇航服设计的创新,以及设计师和工程师如何为宇航员和太空游客创造新的宇航服。
你还有什么想说的吗?
感谢每一个记录他们的项目并分享他们的工作以供他人学习的人!感谢其他人编写和出版的教程和库,我能够用可编程电子设备将我的想法变成现实。我从来没想过学设计会让我学会如何编码,会让我写教程帮助别人入门编程。现在,为我的项目编写 Circuit Python 代码是这个过程中我最喜欢的部分之一!
索菲,谢谢你接受采访!
本周 PyDev:Stacy Morse
原文:https://www.blog.pythonlibrary.org/2018/04/23/pydev-of-the-week-stacy-morse/
本周,我们欢迎史黛西·莫尔斯( @geekgirlbeta )成为我们本周的 PyDev!Stacy 热爱 Python,一直在她的博客上写关于 Python 的文章,并在各种用户组和会议上发表演讲。你可以在今年俄亥俄州的 PyCon 2018 上看到她,她将在那里谈论代码审查。让我们花一些时间来更好地了解她!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
我有艺术学位,专攻摄影和设计。我喜欢花尽可能多的时间徒步旅行,拍摄苔藓和森林自然生命周期的微距照片。
我也喜欢建筑。从使用微控制器的项目到精细的缝纫项目。
你为什么开始使用 Python?
我开始用 Python 来照亮我在树林中的摄影。我需要大量的控制来照亮微小的场景。Micro Python 允许我制作小型定制 LED 阵列,并对它们进行大量控制。
你还知道哪些编程语言,你最喜欢哪一种?
JavaScript,Python,我也在涉猎 Clojure。不得不说,Python 是目前为止我最喜欢的。语言和社区与此息息相关。因为 Python,我在世界各地结交了一些了不起的朋友。
你现在在做什么项目?
我正在做的一个更有趣的项目是用于演示的蓝牙控制器。我希望在 2018 年 PyCon 大会上发表关于代码评审的演讲时能够完成。完成后,我会把编程好的微控制器安装到光剑柄上。我将有能力控制向前、向后的点击,以及打开和关闭由陀螺仪触发的声音效果。如果时间允许,我会附赠一个激光笔。
还有其他项目,但这是我最兴奋谈论的一个。
哪些 Python 库是你最喜欢的(核心或第三方)?
我非常喜欢使用 TensorFlow 和 matplotlib。我想在更多的项目中使用它们。
我还必须提到 Hashids 的开源库。我甚至重构了我的第一个 Python 代码,只是为了使用它并写了一篇关于它的博客。这是我希望看到更多讨论的话题之一,尤其是对于 Python 的新手来说。
你还有什么想说的吗?
我要感谢整个 Python 社区,他们是一个非常鼓舞人心的团体。在这里,我总是感到非常受欢迎和鼓励。
感谢您接受采访!
本周 PyDev:斯特凡·范德沃特
原文:https://www.blog.pythonlibrary.org/2019/06/03/pydev-of-the-week-stefan-van-der-walt/
本周,我们欢迎斯特凡·范德沃特( @stefanvdwalt )成为我们本周的 PyDev!Stefan 是 scikit-image 的创建者,这是一个图像处理算法的集合。你可以在 Github 或 Berkeley 的网站上看到他参与的一些项目。Stefan 也有自己的网站值得去看看。让我们花点时间来更好地了解 Stefan!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
我目前是加州大学伯克利分校伯克利数据科学研究所(BIDS)的研究员。我出生并成长在南非的大学城斯泰伦博斯——以其美丽的自然风光和世界级的葡萄酒而闻名——在那里我学习了电子工程、计算机科学和应用数学。在那里长大,很容易就爱上了大自然:我喜欢跑步,喜欢在山里徒步旅行,喜欢探索。现在,我的大部分爱好时间都是和我的两个孩子一起度过的,一个 1 岁,一个 3 岁。
你为什么开始使用 Python?
我总是被新的语言所吸引,并且喜欢摆弄它们,看看它们提供了什么构造,以及它们如何让你以新颖的方式表达熟悉的问题。因此,虽然我在高中时接触过 Python(比如组织我的音乐收藏之类的小项目),但我真正了解它是在一个暑期实习期间。他们给了我两周时间学习 Python,之后我必须解决一些数据库相关的问题。前两周太棒了!后来在大学,我的大部分工作都是在 Octave 中完成的,但是当我的导师受到 Python 的启发时,我就换了工作。这些都是科学 Python 生态系统的早期阶段,但是我非常高兴我可以使用和开发开源软件作为我工作的一部分。
你还知道哪些编程语言,你最喜欢哪一种?
我觉得“了解”一种语言意味着对它有了直觉,本能地知道如何最好地表达自己。我花了几年时间学习 C++,但从来没有真正感到舒服。Scott Meyers 写了一本很棒的书,书中展示了一些代码片段,并让你找出其中的错误。你经常看不到,但是当他给你看的时候,你会发现这是一个大问题。这让我担心:我真的想花这么多时间学习一门容易隐藏灾难性不良行为的语言吗?在这方面,我认为 C++已经有了很大的改进,所以现在更容易安全地编程——但我没有回头。
日复一日,我使用 JavaScript——为机器学习和天文学构建科学门户网站——和 elisp,因为我实际上生活在 emacs 和 org-mode 中。很难挑出最喜欢的:每一种都有其用途,都有其优点和缺点。
我还想探索很多其他的东西:Haskell——理解它的类型系统,Rust——看看现代系统语言是什么样子,C#和。看看为什么用户对他们的库支持和文档如此感兴趣。
你现在在做什么项目?
在 BIDS,我领导一个由三名程序员组成的团队,与社区一起开发 NumPy,即数字数组库。这是我贡献的第一个 Python 库,因为它对我们所做的所有数字工作来说是如此的基础。
我还在 scikit-image(图像处理库,我们刚刚发布了 v0.15)和 SkyPortal(天文数据门户网站)上花了很多时间。
然后是我们为研究目的编写的软件。目前,我正在与伦敦自然历史博物馆合作,帮助他们加快图像处理流程,将他们收集的大量昆虫数字化。
哪些 Python 库是你最喜欢的(核心或第三方)?
有这么多很棒的可以选择!Python 3 标准库棒极了。我一直在使用 IPython,我喜欢科学图书馆的 docstrings 我们真的应该为标准库填充这些。
我最常用的第三方库是 numpy、scipy 和 matplotlib,我认为 dask 项目对于将工作从笔记本电脑扩展到更大的系统是令人兴奋的。
scikit-image 是怎么来的?
我的硕士和博士项目研究涉及大量图像处理,多年来我建立了一系列算法。邮件列表是这些的市场,但不是托管代码的最佳场所。所以,在 2009 年,我把我所有的东西打包成一个图书馆。
我为这些算法的实现感到自豪,所以当第一批用户发现一些错误和不受支持的情况时,我感到很惊讶。正是在这里,我了解到,在适当的情况下,团队能够比个人做出更高质量的工作。当然也有例外,但是当我挣扎着放弃一段代码的所有权时,我会试着提醒自己这一点。
你认为在开源工作中学到的最重要的三件事是什么?
- 以人为本。复杂的技术只能带你走这么远;最终,成功关键取决于合作。
- 外面有很多比你聪明的人。没关系;向他们学习,并享受与他们一起工作。
- 当我们分享时,会有更多的分享。一起建设,我们可以建设得更多更好。
为什么 Python 在数据科学领域如此受欢迎?
数据科学是关于建立复杂的数据管道。您需要从不同的来源获取数据,将其可视化,进行数值计算(通常是大规模的),然后发布。理想情况下,这将发生在统一的环境中,Python 会检查所有的框。此外,Python 易于阅读和学习,并且拥有活跃的开发人员和用户社区。
很容易说服自己,因为 Python 在这个领域非常成功,所以它是最适合这项工作的。但是其他社区也有一些很棒的图书馆,我们应该和他们建立联系,学习他们的经验。
也就是说,我对 Python 生态系统的信任不仅在于工具和技术,也在于它的社区。这是一群非凡的人,他们拥有必要的技能和态度,将构建数据科学所需的下一代高质量工具。
你还有什么想说的吗?
能够成为科学 Python 社区的一员,我感到非常幸运。它在很大程度上改变了我的生活,并给了我许多终生的朋友。这个社区教会了我很多,从技术上来说,但也教会了我善待他人和尊重他人的重要性。最终,这比我们所做的任何工作都重要。
斯特凡,谢谢你接受采访!
本周 PyDev:斯蒂芬妮·莫林
原文:https://www.blog.pythonlibrary.org/2022/08/01/pydev-of-the-week-stefanie-molin/
本周,我们欢迎斯蒂芬妮·莫林( @StefanieMolin )成为我们本周的 PyDev!斯蒂芬妮是《T2》一书的作者,该书对熊猫进行了实际数据分析。你可以通过访问斯蒂芬妮的网站或者查看斯蒂芬妮的 GitHub 简介来了解她更多。

Alex Guevara 在 Instagram 上的 agnyphoto 拍摄的照片
让我们花点时间来更好地了解斯蒂芬妮吧!
你能告诉我们一些关于你自己的事情吗(爱好、教育等)。)
我是彭博的软件工程师和数据科学家。我在信息安全和数据科学的交叉领域工作。我的很多时间都围绕着数据争论和可视化,构建收集数据和提供上下文的工具,以及知识共享。我还是“与熊猫的动手数据分析”的作者,这本书目前是第二版。
我毕业于哥伦比亚大学傅基础工程与应用科学学院,获得运筹学学士学位,目前正在佐治亚理工学院攻读计算机科学硕士学位,专业是机器学习。在我的空闲时间,我喜欢周游世界,阅读,发明新的食谱,学习人和计算机之间的新语言。
你为什么开始使用 Python?
在以前的工作中,我想改进我的团队建立的警报系统的模型,但我们没有任何标记的数据。我决定开发一个 web 应用程序,让用户能够就他们收到的提醒以及其他人收到的提醒提供反馈。那时我正在用 R 编写代码,所以构建一个闪亮的应用程序是一个选择;然而,一个队友建议我使用 Python,因为在我们的服务器上设置更容易。在接下来的三周里,我构建了一个 Flask 应用的初始版本。Python 易于学习,与我们的基础设施更加兼容——这有助于团队中的其他编码人员使用相同的语言。
你还知道哪些编程语言,你最喜欢哪一种?
除了 Python,我目前使用 React、JavaScript(vanilla 和 D3)以及一些 Bash 和 Arduino (C++)。我以前也有过 R 和 Java 的经验,但是现在有些生疏了。对于大多数项目来说,Python 绝对是我最喜欢的语言,但是对于前端 web 开发,我更喜欢 React。一旦你克服了(陡峭的)学习曲线,你可以很快地做很多事情,当你使用框架时,创建一个美观的 web 应用程序会变得容易得多。
你现在在做什么项目?
我正处于计算机科学硕士项目的最后阶段。除此之外,我一直致力于一个熊猫研讨会和另一个关于Python 中的数据可视化——这两个我都在像 ODSC 和 PyCon 这样的会议上展示过。
我最近也尝试了开源贡献。我为 pandas 1.5.0 版本修复了多个数据可视化错误,并在 Seaborn 0.11.2 版本中添加了一个新功能,即向 JointGrid 和 FacetGrid 图添加参考线(这似乎是人群最喜欢的)。我喜欢在我的 Python 中的数据可视化研讨会上告诉每个人,在第一节之后,他们会知道足够多的东西来做出 Seaborn 的贡献。当我在构建 workshop 的过程中,我还能够在 Matplotlib 文档中的图页面的剖析中修复一个 bug,就在当时的候选发布版本成为最终发布版本之前。
哪些 Python 库是你最喜欢的(核心或第三方)?
在标准库中,我是 itertools (以至于它几乎是我的代码的一个签名)日历和集合的超级粉丝——标准库中充满了等待被发现的有用功能。
至于第三方库,我最喜欢的是 pandas (当然) matplotlib (人们喜欢讨厌它,但如果你花时间理解 API,你可以做很多事情——查看我的Python 中的数据可视化研讨会的第一部分以获得帮助)和 flask 。
你是如何决定成为一名作家的?
我在本科学习期间学习了几门 Java 课程,但直到我参加工作后,我才发现自己对数据科学和软件工程的交叉领域感兴趣。我做了大量的自学,让我的职业朝着那个方向发展。其中包括阅读一些数据科学和编程书籍。当时,我觉得自己写一本书是包装所有知识的好方法,有点像论文。
就我个人而言,当我对某样东西感到陌生时,我喜欢看到有意义的例子,而不仅仅是编造的数据。这有助于我理解你为什么会做某事,以及当我看到它的用例时识别它;这是我想写的书的价值主张。
实际上我从未想过这本书的主题。一天,我的出版商(Packt)联系我,为一本关于用熊猫进行数据分析的书寻找作者。时机是正确的,所以我去了——大约一年后,“熊猫动手数据分析”出版了。
你在写书时学到的前三件事是什么?
在写最初的几个草稿时,我很快意识到,仅仅有一个书的大纲和每章 3-5 个主要概念的列表是不够的,不足以应对作家的瓶颈,有时甚至不足以开始写作。值得花额外的时间将每个概念分解成另外几个层次,直到我有了每章的详细大纲,以及每个部分的个人期限。这种方法有助于我在与出版商约定的章节截止日期前完成。将大项目分解成更小的部分是我编码的方式,但是我发现这种方法通常也适用于大项目。
我很幸运有一小群朋友和同事,他们在整个过程中为我提供了建设性的批评。这有点像火试,但我学会了如何接受这样的反馈,并利用它来改进最终产品,而不是针对个人。在第一轮审查后,我最终重写了一些章节中超过一半的内容——很难扔掉这么多我辛辛苦苦写的内容,但考虑他们的反馈真的会让产品变得更好。
我对自己很苛刻,这转化成了完美主义,所以我也不得不知道这实际上更像是一个优化问题(时间、质量、对最终产品的满意程度等等)。).我永远也不可能确保草稿 100%没有错别字(毕竟,这本书将近 800 页!),但我可以控制内容的整体质量,以及它是否是我可以引以为豪的东西。
你还有什么想说的吗?
逼自己;做一些让你害怕的事情(在合理的范围内)——你只有走出你的舒适区才会成长,你会对自己能够取得的成就感到惊讶。
非常感谢你接受采访,斯蒂芬妮!
本周 PyDev:斯蒂芬·德贝尔
原文:https://www.blog.pythonlibrary.org/2015/06/08/pydev-of-the-week-stephan-deibel/
本周,我们欢迎斯蒂芬·德贝尔成为我们的本周 PyDev。他是流行的 Python IDE Wing 的开发者 Wingware 的联合创始人之一。我相信几年前我在 PyCon 见过 Stephan 一次,虽然我很怀疑他是否还记得。不管怎样,作为一个 Wing 的快乐用户,我发现他和他的员工的帮助是无价的。我希望你和我一样喜欢了解他。
你为什么开始使用 Python?
我第一次使用 Python 是在 1998 年,当时我为一个临床工作站开发了一个 GUI 原型。我很快就被 Python 比 C、C++或 Object Pascal 多得多的生产力所打动,我已经用了 8 年多了。在那段时间里,我也尝试过 Java,当时它还很新,并且用 VB 做了一些咨询工作。
从这段在相当短的时间内用几种 语言进行实际工作的经历中,我清楚地意识到,我已经浪费了太多的时间来对抗糟糕的语言设计。Python 是一个启示,随着时间的推移,它真的改变了我的生活,使我能够完成比没有它多得多的事情。
当然,我确实经历了担心语法空白和缺少静态类型的常见阶段。我很快克服了空白,但花了几个月担心类型检查,直到我最终发现这根本不是一个问题。
你还知道哪些编程语言,你最喜欢哪一种?
我也曾用 C、C++、对象和非对象 Pascal、VB、Javascript、Java、Basic、Assembly、Lisp、Prolog、SQL、PL/C、Natural2 和一些其他专有语言编程,这些语言的名字我都不记得了。Python 是我最喜欢的,在这一点上,我尽量避免写其他东西。出于性能原因,我仍然必须维护许多年前编写的各种 C 扩展模块,但是在这一点上,当 CPython 的实际性能确实是一个问题时,Cython 是一种方法。是的,抱歉,我关注的是 CPython,而不是其他优秀的 Python 实现,因为大多数人仍然使用 CPython。
Javascript 似乎是另一种我无法避免的语言,即使有 Brython 和各种 Python 可供 Javascript 编译器使用。到目前为止,我对此没什么意见,主要是因为我想用 Javascript 写的东西显然都已经写好了,而且可以在网上找到,而且是免费的。
你现在在做什么项目?
自 1998 年以来,我一直在从事 Wing IDE 的工作,这是一个用于 Python 的商业集成开发环境。Wing IDE 主要是用 Python 写的,自己开发,测试,调试。这其实很好玩。我通常运行当前的源代码,并很快受益于添加到产品中的新特性。
Wing IDE 意识到 Python 比其他语言更高效。1998 年的想法是,如果有一个真正的 IDE,更多的人会转向 Python(而不是 VB),所以我和 John Ehresman 共同创建了 Wingware。我们很快发现(咄!)写一个 IDE 是相当困难的,17 年后,我们仍然对未来有很多想法。尽管有时会令人畏惧,但开发一个服务于大量不同用户群的产品是一件非常有趣的事情。我喜欢与来自世界各地的用户互动,他们中的许多人都有有趣的故事要讲,并有改进产品的好主意。
做所有这些真的定义了我的生活,让我在生活地点、工作时间和方式以及工作内容上有了很大的灵活性。套用 Paul Everitt 的话,Python 是使这成为可能的秘方。我非常感谢所有从事 Python 工作的人。
哪些 Python 库是你最喜欢的(核心或第三方)?
最近我一直在用 Flask 做一些工作,我真的很喜欢它。它的安装速度非常快,而且我只需要做很少的事情就可以得到一个工作网页。我也很喜欢使用 reportlab 生成 PDF 文件,我对几年前使用 Beautiful Soup 有一些美好的回忆。
虽然我没有在实际工作中使用过它(除了支持用户之外),但我也对 web2py 印象深刻。我喜欢他们的模板语言制造假的 Python 堆栈框架,这样你就可以用任何 Python 调试器来调试模板。
在标准库中,itertools 是不可或缺的,collections 模块有一些有趣的数据类型,在需要时非常有用。
作为一门编程语言,你认为 Python 将何去何从?
我认为这个世界还没有真正理解 Python。它被越来越广泛地使用,并且经常出现在新闻中。但是大多数程序员仍然在浪费大量的时间与设计糟糕的语言斗争,因为他们认为 Python 太慢或者不是线程友好的(因为 GIL),或者对于生产应用来说不够健壮,或者仅仅因为他们的公司要求他们使用其他东西。很有可能,对 Python 3 的困惑、恐惧和怀疑大大减缓了 Python 的发展。
我认为这一切都将改变。我们将看到软件开发行业作为一个整体从笨重的编译语言向更有生产力的解释型交互语言迈出坚实的一步。Python 健壮而成熟,很有可能在 10 年后成为大多数人都会使用的语言。
几年前在 PyCon 上,tummy.com的创始人之一 Sean Reifschneider 给了我一个笔记本电脑贴纸,上面写着“Python 将拯救世界。我不知道如何,但它会的。”希望是真的!
你还有什么想说的吗?
我不喜欢软件业对神童、一夜成名和数十亿美元想法的关注。事实上,创造伟大的软件仍然需要长时间的努力。对我来说,Python 体现了这一点。它充满了伟大的想法,许多是从其他人那里借来的,但通过精心设计和充满热情的贡献者的尊重社区的精心照顾,组合成了一个高质量的整体。
非常感谢!
一周的最后 10 个 PyDevs
本周 PyDev:斯蒂芬·格鲁佩塔
原文:https://www.blog.pythonlibrary.org/2022/07/04/pydev-of-the-week-stephen-gruppetta/
本周,我们欢迎斯蒂芬·格鲁佩塔( @s_gruppetta_ct )成为我们本周的 PyDev!Stephen 是《Python 编码书一书/博客的作者。Stephen 也是真实 Python 网站的作者和撰稿人。
让我们花些时间来更好地了解斯蒂芬!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
我来自马耳他,地中海的一个小岛。但我在二十出头的时候搬到了英国,此后一直住在这里。
我开始编程相对较晚。我的第一个学位是数学和物理,然后我继续在伦敦帝国理工学院攻读物理学博士学位(那时我搬到了英国)。之后,我做了十多年的学术科学家和大学讲师。在这段时间里,编程逐渐从“仅仅”是我研究所需的工具变成了我热爱的学科。
最好的爱好是我和我的两个孩子分享的,无论是运动、桌游、散步……我的大儿子现在也迷上了《星际迷航》!
我在 2020/21 停摆期间开始学习国际象棋和普通话,当我可以的时候,我试图为这些抽出一些时间。
你为什么开始使用 Python?
我最近才开始使用 Python,在我科学生涯的末期。那大概是 8 年前的事了。当我开始我的研究工作时,Python 还处于早期阶段,MATLAB 是我在其中攻读博士学位的研究小组的首选语言。
当我开始听到越来越多关于 Python 的消息时,我已经在 MATLAB 中编写了十多年的代码,用于我的科学研究。切换到另一种语言的想法并不诱人。
但是,当我开始计划离开学术界,想要更彻底地学习编程时,我开始学习 Python,并用它来填补我在一般编程知识方面的许多空白。
我还有很多空白要填补!
你还知道哪些编程语言,你最喜欢哪一种?
十几岁的时候,我有一个表弟,他用一些基本的东西诱惑我,但我从来没有真正进入过。在我本科学习期间,我有一个学习 Pascal 编程的短模块。但是,我再次得到了学分,继续前进。
然后,我在博士学习期间开始适当地编程,因为这是我研究的重要部分。那就是使用 MATLAB,到我的科学生涯结束时,我已经相当精通它了。
现在,我只使用 Python,这不仅仅是我喜欢的语言。这是我唯一用的!我也想开始学朱莉娅。但到目前为止,我所做的只是安装它并运行一个“Hello World!”程序。
你现在在做什么项目?
我目前的主要精力是运行今天的代码,这是我离开学术界时建立的公司。我们很不寻常,因为我们同时为孩子和专业成人提供编程培训。
我目前的大部分项目都围绕着创建内容:为 Codetoday 的儿童和成人课程编写新材料,写书和教程,等等。
我很喜欢写 Python 编码书,看到这么多初学者喜欢阅读它并从中学习,所以我现在想写更多的书。我正在筹备一个非常令人兴奋的新书项目,但现在还为时尚早,所以还不能透露太多。我脑子里也有一本儿童编码书,和外面的很不一样。所以我需要找时间把它从我的脑海里转化成文字。
就编程项目而言,我目前并没有真正从事自己的任何项目。但我为公司和科学家团队提供培训项目,所以我参与他们的项目作为培训的一部分,这很有趣,我也学到了很多其他领域的知识!
哪些 Python 库是你最喜欢的(核心或第三方)?
作为科学家,我不得不说 NumPy,Matplotlib 和 Pandas。但是我经常用 Turtle,尤其是在我们的儿童编码课程中。然而,我也用它向更广泛的受众教授各种主题。我喜欢把乌龟发挥到极限!
itertools 也很棒。
你是如何决定从事编程教学的?
在我作为学术科学家的第一个职业生涯中,我喜欢教学——我也很擅长——我喜欢编程。当我离开学术界时,我有很小的孩子,所以我对儿童教育非常感兴趣。我觉得我可以让孩子们的编码既透彻又令人兴奋。
你发现新程序员最难理解的三件事是什么?
年幼的孩子很难理解变量的概念,尽管成年人没那么难理解。
成年初学者面临的主要挑战是思维方式——将想法分解成一种与计算机而非人类兼容的结构。
函数也可能有点棘手。初学者通常很难理解为什么我们需要通过参数和返回语句将数据移入和移出函数。我倾向于创造叙事或故事来帮助他们理解正在发生的事情,比如我非常自豪的房间类比!这个过程也帮助我更好地学习东西!
你还有什么想说的吗?
Mike,谢谢你给我机会分享我对本周 PyDev 的看法,也谢谢你在 Twitter 等其他平台上的支持。我相信 Python 社区中的许多其他人会同意我的观点,没有人比你更支持同事了!
斯蒂芬,谢谢你接受采访!
本周 PyDev:史蒂夫·道尔
原文:https://www.blog.pythonlibrary.org/2018/12/10/pydev-of-the-week-steve-dower/
本周,我们欢迎史蒂夫·道尔( @zooba )成为我们本周的 PyDev!Steve 是 Python 语言本身的核心开发人员,他负责开发 Windows 版本和安装程序。他也为微软工作。他有一个博客,不经常更新,但还是很有趣。你可以通过 Github 在开源世界看到他正在做的一些事情。让我们花一些时间来更好地了解史蒂夫!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
我在澳大利亚学习机电一体化、软件工程和计算机科学,然后在 2012 年移居美国,在微软工作。从那以后,我一直是微软最令人讨厌的人之一,告诉人们应该使用 Python,并试图给他们所有他们需要的借口,开始看到这种回报真的很令人兴奋。我们现在有成千上万的人在积极使用 Python,团队默认为他们的工具构建 Python 库(有时甚至在他们编写。NET 版本!),我们有一个充满活力的社区,有聚会和内部会议,每个人似乎都在谈论 Python。
你为什么开始使用 Python?
我在学习期间的一份暑期工作是为一家初创公司设计医疗诊断设备。他们有这个神奇的定制的类似 MATLAB 的应用程序来控制他们的原型,所有的脚本都是用 Python 编写的。所以我花了一个夏天的时间驾驶水泵和马达,用 Python 阅读传感器,然后回到大学,再也没有真正回头!
你还知道哪些编程语言,你最喜欢哪一种?
我已经开发了很长时间(我不会说有多长时间,但我会说我在开始上大学之前就已经知道汇编语言了),所以我遇到了很多语言。我真的很喜欢 C++,尤其是模板元编程,因为像 Python 一样,它让库开发者做了很多用户永远不知道的事情。我最喜欢的一个例子是 pybind11 为这种简单的声明生成的代码数量惊人。类似地,Python 3.4 中添加的 Enum 类背后有一些令人印象深刻的魔力,在简单使用它时,您不必知道或关心。
你现在在做什么项目?
我希望我能更多地谈论它们,但是发布和披露日期到处都是。这些天,我与微软的许多团队合作,帮助他们提高 Python 能力,无论是通过为他们做设计和代码审查,贡献或引导项目,还是在我们的共享工具中找到“差距”(例如,持续集成),并确保它们被填补。我们的计划是确保你总能在 https://aka.ms/python 找到它们
哪些 Python 库是你最喜欢的(核心或第三方)?
我本质上是一个库开发者,所以任何让我编写更强大的库的东西都是一个好的开始。我是 Cython 和 pybind11 的超级粉丝,虽然我不常使用它们,但我也非常喜欢 BeeWare 工具,尤其是用于将应用打包到特定平台安装程序中的公文包。我也永远不会失去对请求的热爱,没有请求,我永远也不会尝试编写任何 REST API。
您有没有提交过或者在源代码中看到过的最喜欢的代码片段?
每当我们使用或分发开源软件时,我们都会出于知识产权的原因进行深度代码扫描,主要是为了确保所有声称受许可证保护的代码实际上都受该许可证保护。这里检测到的最常见的问题之一是代码从 StackOverflow(当时它仍然是 Creative Commons 许可的)复制到一个库中,并在未经许可的情况下被重新许可(专业提示:如果您获得了许可,请添加一条注释说明这一点)。每次 Python 进行这些扫描时,我们都会发现据称取自 StackOverflow 的代码片段,但是经过进一步的调查,StackOverflow 上的代码实际上取自 Python,并且通常是在十年或更早以前编写的!这些是我最喜欢的,因为它提醒人们 Python 已经存在了多长时间,每当我为这样一个强大而有影响力的项目做贡献时,它确实给人一种强烈的敬畏感。
你是如何成为 Python 语言的核心开发人员的?
老实说,时机很好。在主要的 Windows 专家打算退休的时候,我对帮助 Windows 支持,特别是安装程序很感兴趣。因此,当我开始接触我在 PyCon 已经认识的核心开发人员,并计划更新和改进安装程序时,他们非常乐意让我这样做,并将其视为一种贡献。我还将 Windows 版本转移到了更新更稳定的 C 运行时,这是当时最大的问题之一,并且能够利用我在微软的影响力来确保 Python 可以使用正确的工具和编译器,这让我们大大简化了开发人员指南中的设置说明。
你还有什么想说的吗?
能够成为 Python 社区的一员,并在一个我可以帮助其发展的地方,我感到非常荣幸。我认为世界上没有任何一个技术社区像它一样。我还想公开感谢 Guido 在担任 BDFL 期间为英语所做的一切,并祝愿他退休后一切顺利。
史蒂夫,谢谢你接受采访!
本周 PyDev:史蒂夫·霍尔登
原文:https://www.blog.pythonlibrary.org/2014/12/01/pydev-of-the-week-steve-holden/
本周我们邀请到了史蒂夫·霍尔登作为本周的 PyDev 加入我们。他长期以来一直是 Python 的拥护者,并且是 Python 软件基金会的前主席。让我们看看他要说什么。你可以在这里和这里阅读史蒂夫的博客。Steve 也是 O’Reilly 的中级 Python:更深层次技能开发的实用技术的作者/老师,在这里你可以通过使用以下代码获得任何 O’Reilly 电子书或视频的 50%折扣:AUTHD(有效期至 2014 年底)。
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
虽然我已经在美国生活了 20 年,但我是在英国长大的。当我还是个小孩的时候,我经常在铁轨附近玩耍。人们过去常常倾倒各种各样的东西,我会把它们带回家拆成碎片。我会去“旧货义卖”买旧钟之类的东西,把它们拆开,然后试着把它们重新组装起来。通常我会失败(你有没有试过在没有必要工具的情况下重新安装机械钟的主发条?)但是每次我尝试,我都会学到更多关于事物如何运作的知识。回过头来看,不怕失败是一种神奇的学习方式。当然,现在做那种事情要困难得多——父母们害怕让他们的孩子与现实世界互动。
我的职业生涯并不典型。我 15 岁离开学校(那时候在英国是可以的),开始在一家电视厂做见习生产工程师,并通过一个叫做“与 Nellie 坐在一起”的过程学习电视是如何制作的——字面意思是,坐在做这项工作的人旁边,观察他们是如何做的,并在自己做这件事时失败(然后最终成功)。
有一些有趣的时刻——当我给印刷电路板蚀刻机加油时,三氯化铁溅到了我的眼睛里,并且在打开一桶氰化钠以补充用于给钢制电视底盘电镀锌的大桶时割破了我的手指。但我学到了很多关于制造电子设备的知识,也知道大多数参与制造电视的人并不在场,因为制造电视是他们生活的激情。
事实上,生产工程不是我的选择,而是我的雇主。我实际上对电子设计更感兴趣,但事实证明,那些见习工作是为已经在公司工作的人的儿子保留的。一堂关于世界运转方式的实用课。当我告诉电镀车间经理滚蛋时,我得到了进一步的教训。当我被我老板的老板训斥,并告诉他电镀车间经理也告诉过我同样的事情时,我被告知这就是世界的运行方式。所以我很快就长大了。
十九岁成为父亲进一步加速了我的成长。我儿子的母亲的父母甚至不准备允许我和她交往,除非我们结婚(1970 年的时代不同了),所以我结婚了,因为我想成为一个好丈夫和儿子的父亲。
那时我已经加入了计算机行业。我在工厂的经历让我对电子学不再抱有幻想,所以我申请了布拉德福德大学计算实验室的工作。尽管他们一直在登广告招聘一名按键穿孔操作员,但主任吉米·Ord-史密斯告诉我,他觉得我有越轨的危险,并说我应该花六个月的时间学习操作计算机和编写计算机程序。给我的启示是数字可以用来代表任何东西。虽然当时没意识到,但这是我对信息论的入门。
这也是我进入计算机行业的第一天。那时候,你可以每六个月换一次工作,每次工资都翻倍。我这样做过很多次,但是钱从来都不是我的主要动力。从那以后,我感到非常幸运,能够(不像造电视的人那样)做我热爱的事情来谋生。
1972 年,我意识到没有学位,我的职业选择将会受到限制。我甚至没有进入大学的最低资格,所以我在晚上学习数学,第二年设法通过入学考试,被录取参加计算科学的荣誉课程。三年后,我以第一名的荣誉毕业,并发现我申请的商业雇主没有一个准备为我提供任何额外的东西来换取我在上大学之前积累的编程经验。世界运转方式的另一个实际教训。
你为什么开始使用 Python?
1974 年,我读到了来自 PARC 施乐公司艾伦·凯的研究小组的关于 SmallTalk 语言的早期论文,并对面向对象编程的想法着了迷。1980 年,我成为曼彻斯特大学计算机科学的讲师,并指导一名研究生第一次在英国实现 Smalltalk。这使我确信 Smalltalk 并不“适合我的大脑”,因此我相当长一段时间都放弃了面向对象编程。
快进到 1995 年。我搬到美国,担任一家小型网络公司的运营副总裁,该公司在位于同一地点的服务器上运行大约 300 个域(对我来说不是一个好的选择——我天生不适合这种工作)。在逛书店的时候,我看到了大卫·阿舍尔和马克·卢茨写的《学习 Python》,意识到我找到了一种在我看来是表达面向对象算法的自然方式的语言,一个月后,我决定在接下来的二十年里成为 Python 生态系统中的重要一员,并将 Python 作为高效编程的最佳途径。
你还知道哪些编程语言,你最喜欢哪一种?
哦,哇。我开始用 Algol 60 编程,然后过渡到 PLAN,这是 ICT 1900 系列的汇编语言(我用过的第一台计算机)。接下来是 PL/1,然后是 FORTRAN II,IBM 1130 汇编语言,然后是 IBM series 360 汇编语言。当我开始上大学的时候,教学语言是 Algol 60,然后是 KAL4,一种叫做 KDF9 的基于堆栈的计算机的汇编语言。我还学习了 Algol 68(当时非常先进的语言),作为人工智能研究一部分的 Logo,SNOBOL4(一种模式匹配语言),LISP 和其他各种语言。
从那以后,我在需要的时候开始学习语言,上次我数了一下,我用了 40 多种语言(其中大部分现在都被遗忘了),但是 Python 仍然是我的最爱。
你现在在做什么项目?
目前,我正与 Anna Ravenscroft 和 Alex Martelli 合作制作《Python 简明指南》的第三版,并与 Jessica McKellar 合作制作“高级 Python”视频系列,两人都是为 O’Reilly 制作的。
我还在参加一个为期一天的“增强你的 Python 技能”课程,计划于 12 月初在英国试行。
自从读了 Wes McKinney 关于用于数据分析的 Python 的书后,我对数据科学产生了浓厚的兴趣,我正在努力学习熊猫,以期为那些主要技能完全不在编程领域的人创造教学材料——我认为这对 Python 来说是一个巨大的潜在市场,到目前为止才刚刚开始开发。
哪些 Python 库是你最喜欢的(核心或第三方)?
虽然我还没有像我希望的那样经常使用它,但是我真的很喜欢 Kenneth Reitz 的请求库。Kenneth 似乎对如何生成可用的 API 有一种固有的理解,而 requests 使得编写 web 客户端软件变得更加容易。
正如我上面提到的,熊猫很聪明。我也是 psycopg2 的忠实粉丝,尽管是时候对 DB API 进行一次重大更新了,这次更新并没有把我们带入 ORM 的领域。
我也是 IPython 笔记本的忠实粉丝,在向参与基于计算机的严肃研究工作的非程序员展示 Python 的价值方面,它可能比任何其他实用程序做得都多。虽然大多数人将笔记本作为应用程序使用,但它是基于一些很棒的库,可以看到更广泛的用途。
你还有什么想说的吗?
在我看来,我可能已经说得太多了,但是我想鼓励每一个参与 Python 的人不时地从计算中抽身出来,看看整个人类面临的真正问题。
任何看过我的推文流( @holdenweb )或我的脸书页面(又是 holdenweb)的人都已经知道,我深信政治和人类的问题无法通过纯粹的技术手段来解决。程序员是一个享有特权的群体,通常比大多数人的报酬高得多,我觉得我们应该利用我们的智慧和沟通技巧来解决当今世界面临的真正问题。这就是为什么我花了这么多时间推广和支持开源。
在我看来,财富如此大规模地集中在一个某些地方的人们仍然不得不每天步行数英里以确保劣质饮用水供应不足的世界上,这似乎是令人厌恶的。归根结底,这涉及到人类价值观的问题,我认为享有特权的人应该明白,他们有责任帮助其他人享有这种特权,而不是因为他们不够积极和努力而责备他们。
沃伦·巴菲特和比尔·盖茨树立了一个好榜样,但是他们所采取的行动需要扩展到更广泛的人群中。通过只考虑我们自己的需求,并获取超过我们公平份额的世界资源,我们将使每个人(即使是最富有的百分之一)走向衰落。
前一周的 PyDevs
- 卡尔查看
- 迈克尔·赫尔曼
- 布莱恩·柯廷
- 卢西亚诺·拉马拉
- 沃纳·布鲁欣
- 浸信会二次方阵
- 本·劳什
本周 PyDev:Sundeep Agarwal
原文:https://www.blog.pythonlibrary.org/2022/01/31/pydev-of-the-week-sundeep-agarwal/
本周我们欢迎 Sundeep Agarwal(@ learn _ by example)成为我们本周的 PyDev!Sundeep 已经撰写了10 多本关于 RegEx、Awk、Python 等的书籍!你可以通过查看他的博客或者他的 GitHub 简介来了解 Sundeep 还在做什么。

让我们花些时间更好地了解 bunder!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
你好!我叫桑迪普·阿加瓦尔,来自印度。我获得了电子和通信学士学位,在 ADI 公司(一家半导体公司)工作了六年,现在以写技术书籍为生。我用易懂的例子帮助程序员学习一些棘手的话题,比如正则表达式和 CLI 工具。
我喜欢读小说,最近更喜欢奇幻和科幻小说。我过去经常徒步旅行,但在过去的几年里没有太多机会。
如果我不得不从我的国家选择一样值得注意的东西,那将是我整天听的悠扬的电影音乐。生在北印度,长在南印度,我可以用两种语言欣赏它们!
你为什么开始使用 Python?
在 ADI 公司工作时,我熟悉 Linux、Vim 和 Perl(用于脚本和文本处理任务)。我们学院决定为电子专业的学生开设脚本课程,帮助他们为这样的工作做准备。我是举办这种研讨会的团队的一员。2016 年,基于行业趋势,决定从 Perl 转向 Python。在那段时间,我正在学习 Python,所以我决定深入研究这些研讨会,并开始使用 Python 完成我的脚本任务。
哪些 Python 库是你最喜欢的(核心或第三方)?
I’m biased since they are part of my best selling ebook — the built-in “re” and third-party “regex” modules.
Working with “tkinter” was nice too. I hope to try out other GUI frameworks this year.
What other programming languages do you know and which is your favorite?
I’ve had to learn or use several programming languages as part of my education and work — C, C++, Java, MATLAB, Perl and Verilog. But I don’t use them anymore and don’t remember much either!
I dabbled with Ruby while writing ebooks and understood just enough JavaScript to write a Regular Expressions book.
These days, I primarily use Linux CLI one-liners and Vim for most of my programming tasks. I reach for Python if I need more than a few lines of code, so you could say that’s my favorite. Last year I made a few GUI apps using Python and that was a nice experience. Hope to do more such projects this year too.
How did you decide to start writing technical books?
The materials I had prepared for college workshops played a role here too! And there were several other factors that led me to try authoring programming books.
I started using GitHub in 2016, attracted by the simplicity of markdown files for presenting programming concepts. I had also been learning and improving my programming skills by answering questions on stackoverflow. So, by the time I decided to write ebooks in 2018, I had more than two years worth of tutorials. I’ve published 11 ebooks by now, but I still have materials left for more ebooks!
What challenges have you had writing the books and how did you overcome them?
I found it difficult to brace myself for valid criticism, like grammar and cover design. They only made my ebooks better when I tried to incorporate the suggestions, but it isn’t easy to face faults in your creative work.
What projects are you working on now?
I’m currently writing a Vim Reference Guide for beginner to intermediate level users.
Aiming to publish the ebook in February.
Is there anything else you’d like to say?
Thank you Mike for the opportunity to share my journey here.
Wishing all readers a great year ahead 🙂
Thanks for doing the interview, Sundeep!
本周的 PyDev:Sunita DWI vedi
原文:https://www.blog.pythonlibrary.org/2020/10/19/pydev-of-the-week-sunita-dwivedi/
本周我们欢迎 Sunita Dwivedi 成为我们的本周 PyDev!Sunita 在 DISH 网络工作。她活跃于丹佛的 PyDEN、CO Python 用户组以及 PyColorado。
让我们花点时间来了解一下 Sunita 吧!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
我的人生格言是“没有尝试过的人生是不够的”。我不知道是谁说的,可能是我梦到的。开玩笑的。
我喜欢在 IT 行业工作,攀岩是我最喜欢的爱好,在新冠肺炎之前,我会定期举办晚宴,做印度菜。我是技术社区的活跃成员,也是 Dish Networks 的开发经理
你为什么开始使用 Python?
我对数据分析和数据科学的兴趣让我选择了 Python。作为一门高级语言,学习 python 很容易。Python 要求将适当的缩进作为语法的一部分——如果你没有正确使用缩进,你的程序将无法工作。这使得它从一开始就是可读的
此外,Python 有一个大型的标准库和数千个开源的第三方库,这意味着我可以用更少的努力开发更多的代码,因为他们需要的许多工具都可以随时插入并使用。
你还知道哪些编程语言,你最喜欢哪一种?
我懂 c,c++,java,scala。
选择一种语言是如此艰难的选择。我觉得每种语言都有其特殊的力量。
Python 就是为了好用。
Scala 是我在计算繁重问题上的最爱。
c 是我学的第一门语言,就像初恋一样,我偏向于它。
Java 是一个多面手。当编码是非凡的时候,你得到的控制水平
你现在在做什么项目?
我目前从事的项目是将我的组织的客户数据整合到一个地方。创建一个客户主中心,提供从费用、订单到客户体验的客户整体视图。我正在为这个项目使用 Springboot,aws 和一些 python
哪些 Python 库是你最喜欢的(核心或第三方)?
Dask 和 pyspark 库在加速数据分析过程方面很有趣。
Pandas 是最基本的,但却是如此伟大的基础库。它迫使许多其他语言也有了类似的库。
你是如何开始做 Python 演讲的?
当我开始接触 python 时,我参加了很多技术会议。看到这么多人分享知识,从他们的时间表中抽出时间来帮助别人是鼓舞人心的。尽管我学到了很多,但让我意识到了聚会的价值。我也想回馈这个如此热情和乐于助人的社区。所以我决定给 Python 和数据科学演讲
对于想做技术演讲的人,你有什么建议吗?
你不必成为这门语言的专家,也不必能够回答所有的问题。只要你相信,知道你分享的东西会让别人受益,那就值得一谈。同样,在准备演讲时,你会学到更多。
你还有什么想说的吗?
每当有疑问的时候,找一个会支持你的人,他会是你真实的一面镜子。我们都有需要小小推动的时候,确保你身边有愿意为你做这件事的人
Sunita,谢谢你接受采访!
本周的 PyDev:Susan Shu Chang
原文:https://www.blog.pythonlibrary.org/2021/07/19/pydev-of-the-week-susan-shu-chang/
本周我们欢迎苏珊·舒畅(@苏珊 _ 舒克 )成为我们本周的 PyDev!Susan 是一名游戏开发人员和演讲者,也是一名数据科学家。她经常在多个会议上发表演讲。你可以在她的网站上了解更多关于她的信息。
让我们花一些时间来更好地了解苏珊!

苏珊·舒畅
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
你好。我叫 Susan,是一名数据科学家和游戏开发人员。
我在 Clearco(一家金融科技独角兽公司)工作,担任首席数据科学家,领导人工智能计划和基础设施,周末我经营我的视频游戏工作室 Quill Game Studios。
我代表奎尔游戏工作室在美国、印度和加拿大的 Pycon 上发表了关于使用 T2 Ren ’ py T3 进行游戏开发的演讲。将来你可能会在另一个会议上碰到我!
我拥有滑铁卢大学的学士学位和多伦多大学的硕士学位,两个学位都是经济学。
至于我是如何迷上游戏开发和数据科学的,事情是这样开始的:
在大学期间,我一直在正规教育之外学习编程,只是为了好玩。我开始为我的第一个游戏构思,建造一些原型。
当我在滑铁卢大学完成学士学位时,我被多伦多大学录取攻读经济学硕士学位。
在这一点上,我不知道有一个完整的行业叫做数据科学。我已经读完了本科,正在攻读硕士学位,这时一个朋友对我说:“嘿,你懂编程,而且你擅长统计。你或许可以看看数据科学的工作!”
那天我谷歌了一下“什么是数据科学”。这是一个灯泡时刻-“哇,有一个领域,我不需要丢弃我的两个技能树之一!”
现在,我两样都做!
你为什么开始使用 Python?
大学的时候开始自学 Python 和一些 JavaScript 做游戏。
不过,我实际上是从免费的书《用 Python 自动化枯燥的东西》开始使用 Python 的。
在我选修了一门大学选修课之后,这门课用到了球拍(它出奇地有助于我理解递归等等。)Python 开始变得更有意义了。
你还知道哪些编程语言,你最喜欢哪一种?
我自学并在虚幻引擎中制作视频游戏时使用了 c++ --这是我为游戏堵塞选择的引擎–黑客马拉松,但用于游戏开发。不幸的是,我用虚幻制作商业(销售)游戏的主要瓶颈是定制 3D 资产的预算和范围。黑客马拉松很好,因为我使用免费资产。
JavaScript,主要是在以前的全栈开发人员合同角色期间构建 Node.js 应用程序的上下文中。
我的全职工作是编写大量的 shell 脚本,也为我自己的网站做一些简单的服务器管理。
在硕士期间,我坚持用 LaTeX 打印我的大部分作业——我就是喜欢它的样子。我仍然在一些文件中使用 LaTeX。
Python 仍然是我的最爱,因为我将它用于数据科学和游戏开发(商业游戏)。这就是它的多功能性。
你现在在做什么项目?
我已经开始制作我工作室的第二款游戏,死亡变成你,一部有多种结局的推理小说。为了这款游戏,我决定外包一部分写作,第一款游戏我 100%自己完成了,所以直到最近,我大部分时间都在休息和放松。在我开始编程之前,我必须写出任何剩余的场景并进行编辑。
全职工作方面,我一直在与开源机器学习平台 Kubeflow 合作,并对入职体验做出了一些小的改进。
在持续的基础上,我喜欢参与开源社区(问题,公关,帮助人们摆脱困境…)我认为这是人们学习在不同软件环境中协作的一个很好的方式。这也是我在职业生涯早期很好地学习 git 的主要方式——通过犯错误通知成千上万的人…
哪些 Python 库是你最喜欢的(核心或第三方)?
我几乎都是用标准库回答这个。
尽管作为一名数据科学家/机器学习工程师,我大量使用 ML 框架,但是……标准库总是在我构建的所有东西中持续、平静地存在,这还是有一些可爱之处。
你还有什么想说的吗?
感谢您的阅读!我每周都在我的博客susanshu.com上写关于数据科学、游戏开发、职业和生产力的文章。你也可以订阅我的简讯获取新帖子。
苏珊,谢谢你接受采访!
本周 PyDev:sy bren stu vel
原文:https://www.blog.pythonlibrary.org/2022/10/10/pydev-of-the-week-sybren-stuvel/
本周我们欢迎 sy bren stu vel(@ sastu vel)成为我们的本周 PyDev!Sybren 是 Python-RSA 包的核心维护者,也在 Blender 上工作。
你可以在他的网站或者查看他的 GitHub 个人资料上看到 Sybren 还在做什么。

让我们花些时间了解一下 Sybren 吧!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
我的爱好范围很广,从人像摄影到全景摄影,从在 T2 乐队打鼓到电子学,从 T4 到随机的书呆子玩意。当然还有和我妻子一起度过的时光,还有我们的两只猫。
至于教育,我在阿姆斯特丹大学获得了计算机科学学士学位,然后在乌特勒支大学获得了游戏和媒体技术硕士学位(也叫 CS ),两个学位都在荷兰。在我的最后一个理学硕士项目中,我开发了一个动画系统,该系统将获取某人行走的 mocap 数据的语料库,然后使用该语料库生成一个动画的行走角色,该角色将准确地踩在虚拟世界中可以放置的脚步位置上。它甚至会侧身&向后走!
我非常喜欢那个特定部门的工作,所以我想找个方法留下来。这就是我在那里攻读博士学位的原因,在那里我为非常密集的人群创建了一个人群模拟和动画系统。在所有的社会距离之后,我们必须再次习惯的东西!人群模拟系统是作为 Blender 的附加组件构建的;我在用它的游戏引擎。在模拟过程中,我需要比 Blender 能提供给我的更多关于碰撞的详细信息,这就是为什么我提交了我的第一个补丁。不久之后,我获得了自己的提交权限,从此我可以称自己为“Blender 开发者”。
你为什么开始使用 Python?
作为我的理学学士学位的一部分,我们有一门课程“算法与复杂性”,为此我们必须将 RSA 加密算法作为家庭作业来完成。我以前接触过一点 Python,我知道它的整数是任意大小的。没有摆弄一些大整数库或任何东西,只是简单的数学。最重要的是,它有一个内置的“X 的 Y 次方,模 Z”函数,这几乎是你做核心 RSA 运算所需要的。那是我真正开始使用这种语言的时候。
我不太满意只用数字做 RSA 加密。我知道加密是一个非常数学化的话题,但是对我来说,只有当我真正能够加密和解密一些文本时,它才是个人的“酷因素”。当然,如果能够与其他工具合作就更好了,比如 OpenSSL。那时我开始阅读一些标准,并实施它们。这就是 Python-RSA 库的诞生,它现在每天被下载大约 400 万次。
图书馆很小,无足轻重,但确实有用。与此同时,谷歌发布了他们的应用引擎平台,任何人都可以在这个平台上托管 Python 代码,而无需拥有自己的服务器。一个很大的限制是不允许使用任何二进制库——所有可用的加密库都是二进制的。有充分的理由,因为它既更快又更安全(在 C 中可以创建具有固定定时的算法,但在 Python 中却很难做到)。但是,因为我的库几乎是唯一一个可以用纯 Python 实现 RSA 的库,并且有很好的文档记录,所以人们蜂拥而至。
你还知道哪些编程语言,你最喜欢哪一种?
我每天都使用 Go 和 C/C++。
你现在在做什么项目?
上周一,我们发布了一个我从今年年初就开始着手的项目:弗拉门戈 3.0 。它是“渲染农场”软件——换句话说,你可以使用一台或多台机器协同工作,用 Blender 渲染一个动画。这是对之前版本的完全重写,使得部署&更加容易。而且比以往任何时候都更容易定制。
在 PyDev of the Week 的采访中这样说可能不太好,但在以前的版本中,很多代码是用 Python 编写的,在这个版本中,几乎所有代码都被 Go 取代了。这使我们能够构建静态链接的二进制可执行文件,非常容易运行。双击就完成了。有了 Python,我们将能够利用更多超级有用的库和框架,我相信如果我们构建一些内部产品,可以像我们想要的那样复杂,我们会做得更快(像 Docker 容器、RabbitMQ 通信、Redis 缓存和一大堆其他预构建的组件)。然而,弗拉门戈是不同的,因为它应该被广泛的人群使用,从在家的个人到像 Blender Studio 这样的工作室。焦点不是开发者的舒适,而是用户的舒适。
现在弗拉门戈已经发布,当然有一个新的挑战。我将领导一个项目,为 Blender 设计和建造一个新的索具和动画系统。有这个机会我超级兴奋!
哪些 Python 库是你最喜欢的(核心或第三方)?
用 Python 3 区分“字节”和“字符”的选择让我欣喜若狂。由于我的姓是非 ASCII (Stüvel ),我已经看到了太多由于开发人员忘记了字符编码而产生的问题。
除此之外,我想我最喜欢的图书馆是 pathlib。将路径作为一个单独的类型,而不仅仅是一个字符串,是很有意义的。我希望更多的语言使用这种方法。
用 Python 搭配 Blender 吗?如果有,你用 Python 做什么?
Python 是 Blender 的主要部分。它用于构建用户界面、各种高级操作和附加组件。Blender 的附加生态系统是它的主要优势之一,人们正在用它做最令人惊叹的事情,从包括定制用户界面 HTML 渲染的完整 retopology 工具,到可以模拟交通的人群模拟系统。当然,出于性能原因,后者使用 Rust 进行模拟😉
在参与 Python-RSA 项目的过程中,你学到了什么?
挺吓人的。我被每天的下载量惊呆了,对如此多的系统产生影响实在是太可怕了。此外,和许多人一样,我犯了一个错误,除了标准化的、记录良好的算法之外,我还想出了一种方法来做一些事情,并立即搬起石头砸了自己的脚。
Sybren,谢谢你接受采访!
PyDev of the Week: Talley Lambert
原文:https://www.blog.pythonlibrary.org/2021/10/18/pydev-of-the-week-talley-lambert/
This week we chatted with Talley Lambert (@TalleyJLambert) who is a microscopist and Python enthusiast at Harvard Medical School. You can learn more about what Talley is up to and see his publications on his website.
Let’s spend some time getting to know Talley better!
Can you tell us a little about yourself (hobbies, education, etc):
I’m a neurobiologist by training – I studied learning and memory and synaptic plasticity at the University of Washington – but sometime during my postdoc I realized I enjoyed learning about and optimizing the tools and techniques I was using (specifically: microscopy) more than the biological questions I was addressing. So I pursued that line of work. I’m currently a Lecturer and microscopist at Harvard Medical School. I work in a “core facility” where we build, maintain, and optimize microscopes, provide training and experimental design advice to local researchers, and help with challenges in image processing and analysis.
Currently, if someone were to ask me what my hobbies were, I would probably say “coding”! 🙂 It’s what I prefer to be doing if I’m not obligated to be doing something else. In the past, I’d say cooking, hiking, music… but always: generally learning something.
Why did you start using Python?
I started dabbling in python probably around 15 years ago, during grad school. I’ve always been interested in computer programming (though, I have no formal training), and wanted to start automating some of my data processing – just some light scripting. I didn’t really start using python in earnest until maybe 6 years ago. The main application at that point was to create tools and user interfaces for the users of our facility to simplify some aspect of their imaging acquisition or data analysis pipelines.
What other programming languages do you know and which is your favorite?
I used MATLAB in grad school, can “read” C/C++ enough to create some python extensions/wrappers, and have some experience with JavaScript. The JavaScript was mostly learned by necessity to build a front-end for a django-based website I created (fpbase.org - which is a database for “fluorescent proteins”: a commonly used molecular tool in microscopy).
Python is easily my favorite language.
What projects are you working on now?
The project around which all my other projects “orbit” is napari (napari.org), for which I am a core developer. Napari is an n-dimensional data viewer, built with large (possibly out-of-core) datasets in mind. It attempts to provide fast rendering for all of the various data types that one might encounter in imaging (n-dimensional images obviously, but also points, shapes, surfaces, vectors, etc…) with a friendly graphical user interface and a python API for accessing most of the internals. It’s also important to us that napari integrate nicely with the existing scientific python stack.
Other projects that have emerged from this (excluding napari plugins very domain-specific projects) are:
How did the psygnal package come about?
psygnal (which is a pure python implementation of Qt’s signals & slots pattern) also arose from a desire to make it easier for developers to work “around” Qt-dependent packages like napari and magicgui, while also being able to create “pure python” objects that can also work in the absence of Qt. Psygnal implements a simple callback-connection system that can in theory be used with any event loop, but it does so using the same API that Qt uses: psygnal.Signal aims to be a swappable replacement for PyQt5.QtCore.pyqtSignal or PySide2.QtCore.Signal (though of course, for the Qt versions, your class needs to inherit from QObject to work).
It’s a subtle distinction perhaps 🙂 but we’re generally interested in making “pure python” objects that can easily (but optionally) integrate into a Qt application, without requiring the end user to learn an entirely new API.
Which Python libraries are your favorite (core or 3rd party)?
So many!
The standard library is obviously one of the best parts of python, I particularly like functools, itertools, contextlib, pathlib, inspect, and typing.
for third party: numpy and scipy go without saying, and scikit-image is indispensable for a lot of the imaging work I do. I love dask, since it makes working with out-of-core data almost trivial if you already know the numpy or pandas APIs. pydantic is fantastic, and I find that objects I build using pydantic tend to be better-conceived and stabler in the longer run.
on the dev side: pretty much every repo I have uses black, flake8, isort, mypy, pre-commit.
If you couldn’t use Python for your next project, which programming language would you choose and why?
Wait, why can’t I use Python!?? 🙂
For data-heavy stuff, I’m curious to learn more about Julia. But if I were to invest more time into a language besides python, it would probably be JavaScript. It doesn’t exactly “spark joy” for me the way that python does (though TypeScript is appealing!), but I do enjoy building visual tools and interfaces (ideally browser-based) and the ubiquity of JavaScript on the web is a strong draw.
Thanks for doing the interview, Talley!
本周 PyDev:塔尼亚·阿拉德
原文:https://www.blog.pythonlibrary.org/2019/05/13/pydev-of-the-week-tania-allard/
本周,我们欢迎塔妮娅·阿拉德( @ixek )成为我们本周的 PyDev!Tania 是微软的开发者拥护者。她还在多个会议上发言。如果你想了解她更多,你应该看看她的博客。她在 Github 上也有一些她的项目供你阅读。让我们花点时间来了解一下 Tania 吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)
我来自墨西哥,但在过去的 8 年里,我一直住在美国和英国。
我拥有机电工程学士学位,也一直对技术着迷,我可以把自己归类为终身学习者。因此,我获得了曼彻斯特大学数据科学应用于材料科学的博士学位,在此期间,我发现并爱上了 Python。完成博士学位后,我做过研究软件工程师、研究工程师、数据工程师,最近还做过律师。
除了技术之外,我还喜欢奥林匹克举重,所以我每周都在健身房花相当多的时间,我已经开始期待今年的比赛季节了!
我也喜欢精酿啤酒,最近我加入了我居住的英国曼彻斯特的女性啤酒现场。
你为什么开始使用 Python?
正如我之前说过的,我获得了材料科学的博士学位,但是我的工作不是专注于实验方面,而是专注于组织替代的建模材料。我所在领域的大多数人都在使用 MATLAB 来实现这一目的(我一开始也是这样),但最终我意识到我需要更灵活的东西。我也很快被推动到“开放科学”运动中,并决定我不仅应该创建我所有的分析,而且应该使用开源编程语言创建我的论文图和研究论文输出,以鼓励可再现性和可访问性。直到我开始使用 Python,我才发现了开源社区,并且从未回头。
你还知道哪些编程语言,你最喜欢哪一种?
来自科学计算背景的我知道 MATLAB、FORTRAN(剧透一下我确实认为现代 FORTRAN 真的很好)、C/C++、R、Julia 和汇编。最近,我通过 Scala 深入研究了函数式编程,也深入研究了 Go。
你现在在做什么项目?
我最近加入了微软的开发倡导团队,所以我专注于了解云计算的社区障碍和需求。在 Python 生态系统中,我正试图与 Jupyter 社区更紧密地合作,以帮助推动更好的可访问性和社区倡议。
我真正感到兴奋的是在 PyCon 期间为 Python 社区中未被充分代表的人们组织的指导 sprints。
最后,我正在做一个项目,重点是了解墨西哥和哥伦比亚等拉美国家的腐败和性别不平等之间的关系。我真的相信我们可以通过技术产生积极的社会影响,所以这个项目是我真正关心的事情。
您喜欢使用哪些非 Python 开源项目?
作为一名 R 用户,我非常喜欢 Drake 项目,因为它为可重复的科学工作流提供了重要的工具(这也是我非常关心的一件事)。在过去的几年里,我也很喜欢和 Docker、Kubernetes 和 Terraform 这样的项目一起工作。
你是如何在 Python 活动上发表演讲的?
因为我是研究出身,所以我已经熟悉了演讲、海报展示、会议等等,但是我从来没有想过我可以在 Python 活动上发言。然后我加入了当地的一个科学 Python 小组,最终被邀请谈论我的博士工作。当时我很害怕,但在发表了我的演讲并意识到人们真的很关心这个话题并且非常支持我之后,我决定与他人分享我的知识。
你对那些想开始演讲的人有什么建议吗?
如果你想知道你是否有一些有趣的事情要说,我可以保证你有!
本地用户组/聚会是在轻松的环境中开始的好地方。人们通常非常支持并渴望看到社区中正在发生的事情。
你还有什么想说的吗?
谢谢你的采访,迈克。希望能在 PyCon 见到很多人,如果你在的话,来打个招呼吧!
塔尼亚,谢谢你接受采访!
本周 PyDev:Tarek Zia de
原文:https://www.blog.pythonlibrary.org/2015/06/15/pydev-of-the-week-tarek-ziade/
本周我们欢迎 Tarek ziad(@ Tarek _ ziade)成为我们本周的 PyDev!他是许多开源项目的贡献者,如果你访问他的 Github 简介就能看到。我个人很喜欢他的一些关于 Python 的博客文章。让我们花点时间了解一下 Tarek 吧!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
我是一名法国程序员,住在勃艮第。我去了法国理工学院(IUT)学习计算机软件,并在 90 年代后期开始工作。我写了几本关于 Python 的书——我最初的目标是深入理解 Python 及其整个生态系统,并在这个过程中帮助他人。我也是一个糟糕的小号手和一个痴迷的跑步者。
我将参加明年九月的柏林马拉松比赛,我正在努力为无国界医生组织筹款。对我来说,这不是一个获得慈善围兜的方式,因为我已经获得了我的围兜,而是一个为那个重要组织筹集资金的机会
为了给人们更多的捐赠激励,我正在做慈善代码审查:你给我的筹款,作为交换,我会花一些时间审查你的代码🙂详情:http://ziade.org/2015/01/27/charity-python-code-review/
你为什么开始使用 Python?
在我工作的第一家公司中,我们使用 Borland Delphi,我通过一些 VCL 组件发现了开源。我对在户外建造东西并与社区互动的想法感到惊讶。然后,我发现了 CMF 的 Zope &,并最终在 Nuxeo 的这个领域工作,Nuxeo 是 Plone 的竞争对手“CPS”的创造者。从那以后,我从未真正离开过 Python 社区,即使在被整个打包工作搞得精疲力尽之后,我不再像以前那样参与了。
你还知道哪些编程语言,你最喜欢哪一种?
这些天我主要使用 Python 但是也使用了一些其他语言,在这里列举是没有意义的。现在,我正在 Nginx 环境中探索 Lua,我真的很喜欢用这种语言构建东西。
坦率地说,这种组合对于构建任何除了调用 Redis、MysQL 和返回 Json 等其他服务器之外不需要太多的 web 服务来说都是惊人的。
我也期待开始使用 Rust。我尝试了一下 Go,但我并没有真正得到 Python 社区中许多人的关注。
你现在在做什么项目?
我在 Mozilla 工作,领导着一个专注于“云存储”的小团队——这是一个模糊的、符合 buzz 的术语,但基本上,我们正试图将我们整个组织的所有存储需求汇聚到一个小的&标准化 API 集中。我有机会和世界一流的工程师团队一起工作,我一直觉得自己很蠢,这很好。
我们编写和维护的东西有:Firefox 同步服务器、Hello 服务器和许多其他服务和工具。
哪些 Python 库是你最喜欢的(核心或第三方)?
我对 tulip/asyncio 感到非常兴奋,尽管我们还没有发布任何东西。当那个项目开始时,我是 gevent/greenlet 的超级粉丝,我不明白他们为什么要建造一个扭曲的东西。我很确定圭多在这件事上是错的。然后,在一些异步应用程序(包括 big node.js 项目)中做了大量工作后,我慢慢意识到 Guido 又一次成功了🙂
但是,嘿,我不是荷兰人,所以没关系。
你还有什么想说的吗?
我喜欢 Python 社区,但我怀念我们有更小的 Pycons 的日子——这个会议对我来说太大了。不过,真正令人高兴的是,全球各地有越来越多的中小型 Python 活动。
一周的最后 10 个 PyDevs
本周 PyDev:Ted Petrou
原文:https://www.blog.pythonlibrary.org/2019/12/16/pydev-of-the-week-ted-petrou/
本周我们欢迎 Ted Petrou ( @TedPetrou )成为我们的本周 PyDev!泰德是熊猫食谱的作者,也在 Udemy 的几门课程中教授熊猫。让我们花些时间来更好地了解 Ted 吧!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
我于 2006 年毕业于德克萨斯州休斯顿的莱斯大学,获得统计学硕士学位。在我攻读学位期间,我从未听到过“机器学习”这个词被提起过一次,直到几年后,数据科学领域才开始流行。我和其他六名学生一起参加了攻读博士学位的项目。虽然统计在当时是一个非常可行的职业,但它远没有今天这么受欢迎。
在获得硕士学位后,我一瘸一拐地退出了这个项目,进入精算科学领域,成为一名职业扑克玩家,教授高中数学,在成为斯伦贝谢的数据科学家之前,作为一名金融分析师,我用 SQL 和 Excel VBA 建立了报告。在我担任数据科学家期间,我创建了 meetup group Houston Data Science,在那里我提供各种 Python 数据科学主题的教程。一旦我积累了足够的材料,我就开始了我的公司 Dunder Data ,全职教授数据科学。
你为什么开始使用 Python?
2013 年,我开始使用 Python,当时我在教高中数学,在 coursera.org 上了莱斯大学提供的入门课程。在此之前,我做过相当多的编程工作,但之前从未听说过 Python。这是一个很棒的课程,我们每周都会开发一个新游戏。
你还知道哪些编程语言,你最喜欢哪一种?
大约 22 年前,我开始在 TI-82 计算器上编程。有一个最小的内置语言,我和我的朋友可以用它来构建游戏。我记得用菜单命令制作自选冒险游戏。大学时上过 C 和 Java 的课,研究生时和 R 一起工作过。过了一段时间,我学会了足够的 HTML 和 JavaScript 来建立基本的网站。我也很了解 SQL,并且在 Excel VBA 做过一些工作。
我最喜欢的语言是 Python,但我对它没有感情依恋。实际上,我更喜欢使用静态类型的语言,但是随着对 Python 需求的增加,我没有太多的选择。
你现在在做什么项目?
除了我课程的建筑材料,我还有两个主要的项目,Dexplo 和 Dexplot,目前正在开发中。Dexplo 是一个类似于 pandas 的数据分析库,其目标是拥有更简单的语法、更好的性能、一种执行常见任务的显而易见的方法以及更多的功能。Dexplot 与 seaborn 类似,目标相似。
哪些 Python 库是你最喜欢的(核心或第三方)?
我真的很喜欢使用 scikit-learn。评估对象的一致性使其易于使用。最近引入的 ColumnTransformer 和对 OneHotEncoder 的升级确实改进了这个库。
我知道你是个作家。那是怎么发生的?
我联系了 O’Reilly 和 Packt 出版社。奥赖利给了我一个在线课程,帕克特需要一个熊猫食谱的作者。我真的很想写一本书,并且已经从我的数据科学训练营中获得了很多材料,所以我选择了 Packt。
你对其他有抱负的作者有什么建议吗?
在出版之前教授这些材料真的很有帮助。你从学生那里得到的反馈对改进是非常宝贵的。你可以直接看到什么有效,什么需要改变。
Dunder Data,你公司的起源是什么?
在 Schlumberger 担任数据科学家期间,我参加了几个星期的教学很差的企业培训。这一经历激励我开始创建教程。我成立了休斯顿数据科学会议小组,为我的 Dunder 数据奠定了基础。许多人问“Dunder”是否与热门电视节目《办公室》中的 Dunder Mifflin 造纸公司有关。这种联系是巧合,因为邓德指的是“魔法”或“特殊”的方法。这个想法是邓德数据翻译成“神奇的数据”。
Ted,谢谢你接受采访!
本周 PyDev:特里·佩珀
原文:https://www.blog.pythonlibrary.org/2017/05/29/pydev-of-the-week-terry-peppers/
本周,我们欢迎 Terry Peppers(@ club _ is _ open)成为我们本周的 PyDev。Terry 是 Python 小组中非常活跃的测试成员,也是 PyCon USA 的组织者。你可以在 Github 上感受到他对哪些项目感兴趣。让我们花一些时间来更好地了解 Terry!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
我是位于伊利诺伊州埃文斯顿的 Leapfrog Online 的工程副总裁。
我去了芝加哥洛约拉大学,获得了心理学、英语和社会学学位。
我喜欢跑步、阅读、烹饪和与家人共度时光。我现在的罪恶快感是邦奇的第一人称射击游戏《命运》。我玩 PS4,已经玩了很长时间了。我最擅长的 Destiny/Python 交叉是和 Python 核心提交者 Brett Cannon 一起玩!
你为什么开始使用 Python?
我不是受过传统训练的计算机科学家。不过,从 11 岁起,我就开始涉猎一些不同的编程语言;我经历了很多学习/奋斗 Bash、Perl、PHP 甚至 Ruby 的阶段。很多时候我觉得那些语言在给我编程,而我没有用它们编程,这很令人沮丧。
我的第一个真正的软件工程任务是为测试做浏览器自动化,这是做屏幕抓取的一种非常好的方式。我一直在使用 Ruby 中的一个库,它的性能让我很纠结。我们当时的高级软件工程师 Jason Pellerin 看着我的代码说,“我敢打赌,如果你用 Python 来做这件事,会更容易。”虽然学习曲线与我所知道的其他语言相似,但我最终觉得我已经充分利用了一门语言及其功能。Python 真的很适合我的大脑。
你还知道哪些编程语言,你最喜欢哪一种?
在过去的 5 年里,我花了大量的时间研究 JavaScript,并逐渐将它作为一种语言来欣赏。很强大。很奇怪。到处都是。而且有点误解。我认为 JavaScript 得到了一种不均衡的评价,因为框架的大量涌现迫使它成为编程的焦点。
Go 是我最近涉足的另一门语言。我的一位导师 Michael Manley 最初将它描述为 C++的交替历史。我喜欢你可以马上用它来提高效率。我喜欢它有一些句法上的相似之处。我认为对于系统级编程挑战来说,这是一个非常好的选择。
你现在在做什么项目?
深藏不露的秘密是,这些天我一直在服用管理药丸,所以现在我所有的项目都是基于团队的。我的团队在我们的学徒项目上做得很好。我们已经把我们的精力集中在为我们的助理软件工程师制定的 5 周强化计划上,以便他们在很短的时间内感到受欢迎、高效和有知识。
哪些 Python 库是你最喜欢的(核心或第三方)?
本质上,我没有最喜欢的,但是我有一个我很讨厌的:re。实际上,我前几天写了一些需要‘re’的代码,结果整个过程都卡住了”…等等,这是 re.match 还是 re.search”总有一天,我会向文档提交一个补丁,以获得一个稍微更明确的答案。
作为一门编程语言,你认为 Python 将何去何从?
我认为 Python 将会继续成长为一门教授个人编程的学术语言。我认为 Python 将继续成为数据科学的一个非常强大的工具。我认为 Python 将继续成为 web 和软件开发的伟大工具。
我过去常常充满斗志地思考我所热爱的语言的未来。我曾经认为它受到了其他语言的威胁或围攻。回想起来,这是一种非常幼稚的看待生态系统的方式。现实情况是,“为正确的工作使用正确的工具”的实用主义观念奖励那些成功解决问题并且易于使用的语言和框架。Python,我认为,作为一门语言,永远能够帮助人们解决问题,非常平易近人。
你对当前的 Python 程序员市场有什么看法?
我曾经把 Python 程序员的市场描述为狭窄但深入;这是一种奇特的说法,虽然市场上没有太多的 Python 程序员,但你确实找到了一些对这种语言本身有深厚专业知识的人。在过去的 5 年里,我认为程序员的总体市场已经发生了变化,这促使我修改了我最初对市场的“狭窄但深刻”的分类。
显然,现在所有技术相关职位的市场都很强劲。正如马克·安德森所说,软件正在吞噬世界。由于市场强劲,对技术人才的需求巨大。编程训练营教授的 Python 和 Ruby 或 JavaScript 一样多,真正的“正确工作的正确工具”意味着无论如何我们都生活在一个多语言的生态系统中。因此,真正的挑战是识别、培养和培训你找到的人才,以回报个人、团队和你的组织。
如果你致力于开发人才,并且你愿意挑战你的组织招聘和录用开发人员的方式,我认为正是这种心态改变了我最初的“狭窄但深刻”的概念,使其更具“广阔”的视角。如果你能教那些愿意学习的人,你就能开发出更多的 Python 开发者来开发其他的 Python 开发者。
你还有什么想说的吗?
拥抱多样性。单一栽培是一件危险的事情。多元化对于任何社区、团体或组织的持续成功都至关重要。你越是接受多元化的概念,你的社区、团体和组织就会变得越好。
感谢您接受采访!
本周 PyDev:Thea Flowers
原文:https://www.blog.pythonlibrary.org/2018/08/06/pydev-of-the-week-thea-flowers/
本周我们欢迎 Thea Flowers(@ theavalkyrie)成为我们本周的 PyDev!西娅是 packaging.python.org 和 T4【urllib 3】包的维护者。Thea 在 Python 社区也非常活跃,并且是 Python 软件基金会的新董事会成员。你可以在西娅的网站、 Github 上找到更多关于她的信息。让我们花一些时间来更好地了解西娅!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
我目前在谷歌工作,负责谷歌云平台的开发者关系。我主要关注 API 客户端库和支持 Python 社区。我甚至有了“皮托尼斯塔”的正式头衔!我还是将于明年初在西雅图举行的 PyCascades 2019 的联合主席。除了专业承诺之外,我喜欢制作合成器和服装道具,我还志愿担任第一机器人公司的导师。
我有一个非常非传统的背景。我来自佐治亚州的亚特兰大,没有什么高等教育。我通过开源和运气成为了一名专业的软件工程师。我十几岁时开始编程,试图制作视频游戏。我从未制作过电子游戏,但我从尝试中获得了很多乐趣,并学到了大量有用的技能。
哦,我也公开变性。
你为什么开始使用 Python?
我相信我第一次使用 Python 是在我十几岁的时候。我正在使用 C++构建一个 2D 游戏引擎,并且想要一个持续的构建系统。当然,我甚至不知道这个术语的存在,但是我决定在我每次去 SVN 的时候,做一些可以自动构建引擎的东西。我相信我是用 CherryPy 和 Cheetah 模板构建的。
你还知道哪些编程语言,你最喜欢哪一种?
我大量使用 C/C++(为基于 Arduino 的项目编程,以前是在制作游戏引擎的时候),以及大量的 JavaScript 和偶尔一些围棋。我也用很多其他语言工作过。Python 是我最喜欢的。我经常发现自己甚至在用其他语言编程时也在使用它。例如,在移植到 C++之前,我最近使用 Python 对合成器补丁格式的解析器进行了试验。
你现在在做什么项目?
在 Google,我目前正致力于使我们生成和发布客户端库的过程自动化。我正在构建能够运行和组合几个代码生成器(想想 protobuf/swagger/openapi)的输出并创建一个工作库的工具。所有这些自动化都是用 Python 编写的。
在谷歌之外,我正致力于构建一个基于 YM2612 的硬件合成器,这是 Sega Genesis(或 MegaDrive)中使用的声音芯片。你可以在这里了解更多,或者在 Twitter 上关注。
我还有一个我参与的开源项目集:Urllib3、Nox、packaging.python.org、readme_renderer、cmarkgfm 等。
哪些 Python 库是你最喜欢的(核心或第三方)?
不胜枚举。我最近和一位同事聊起了核心 struct 模块是多么的神奇和有用。我一直用它让 Python 程序通过串口和其他硬件聊天,并解析二进制文件格式。
在 packaging.python.org 工厂工作时,您面临并克服了哪些挑战?
可见项目的最大挑战是共识。让所有关心某件事的人同意如何做某件事通常真的很难。对于想要真正拥有一个开源项目的人来说,能够达成共识是一项非常关键的技能。也就是说,在很大程度上,这个项目进行得非常顺利。我仍然认为我们在那里还有很多事情要做,但它一直在变得更好。
对于那些愿意为你的项目做出贡献的人,你有什么建议吗?
寻找“贡献者友好”或“第一次”的标签,并开始评论和提问。还有,随时联系我。我总是很乐意进行视频聊天或结对编程,以帮助人们获得他们的第一份贡献。
在开源项目中,你是如何激励志愿者的?
我觉得一个初级维护者能做的最重要的事情之一就是消除歧义。在要求志愿者承担任务之前,确保任务定义明确,并得到利益相关者的同意。找到第二个维护者也很重要。例如,在 urllib3 中,Seth Michael Larson 基本上是驱动力。我只是一个跛脚鸭管理员,帮助解决维护错误,并在需要时推动共识。
你还有什么想说的吗?
我坚信,让他人在软件方面获得成功是我的人生使命,我觉得我可以通过 Python 社区实现这一目标。如果你是 Python 新手,或者是经验丰富的老手,或者对编程一无所知,并且曾经想要谈论任何事情——Python、OSS、合成器、游戏、Google、猫、开发者关系、有口袋的衣服,或者任何其他东西——请联系我。我也有专门的日历约会来聊 OSS。
本周 PyDev:托马斯·罗比塔耶
原文:https://www.blog.pythonlibrary.org/2016/04/04/pydev-of-the-week-thomas-robitaille/
本周,我们欢迎托马斯·罗比塔耶( @astrofrog )成为我们本周的 PyDev!托马斯是胶水数据探索包的主要开发者,也是 Astropy 项目的主要开发者之一,该项目是一个用于天文学的 Python 库。他还写了一个有趣的 Python 博客。让我们花一点时间来更好地了解我们的同胞 Pythonista!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
我目前是一名自由职业的科学软件开发人员,与北美和欧洲的团队一起从事一些项目。然而,这是最近的发展:直到 2015 年底,我还是一名天体物理学家,我主要致力于研究恒星的形成和辐射转移。2008 年,我在英国完成了博士学位,然后在哈佛大学担任研究员,随后在德国马克斯·普朗克天文研究所工作。在我做研究员期间,我学习了 Python,并参与了许多开源科学软件项目。特别是,我积极参与构建用于天文学的 Python 工具,并鼓励天文学家学习 Python,我成为了 Astropy 项目的协调员和首席开发人员之一。我最终决定,我想全职从事科学软件开发,并成为一名自由开发者!
—
你为什么开始使用 Python?
我从 2008 年开始使用 Python,那时我开始在哈佛工作。在我读博士期间,我遇到过几次 Python,当我搬到美国后,我决定在新工作的头几周花大量时间学习 Python。在我读博士期间,我主要使用 Fortran,虽然它对高性能计算(我当时正在做的)很好,但对于交互式分析和快速开发来说,它并不是理想的语言。当时 Python 在天文学领域的主要竞争对手是交互式数据语言 (IDL)。虽然 IDL 确实有相当丰富的天文学函数库,但我不想与商业语言捆绑在一起,并且发现 Python 是一种更加灵活和优雅的语言。尽管当时可用的天文学软件包数量很少,但其他科学软件包的巨大生态系统,以及大量其他软件包,对我来说非常有吸引力。
—
你还知道哪些编程语言,你最喜欢哪一种?
作为一名研究人员,我在 Fortran 95 中做了大量高性能计算工作,特别是开发了一个名为 Hyperion 的辐射传输包,以模拟哪些天文物体(如正在形成的恒星或星系)以不同的波长(例如红外线)观察。Fortran 被认为是一种老式的语言,虽然它确实不是一种非常灵活和广泛适用的语言,也不是面向对象编程的最佳选择,但它确实非常适合高性能计算。根据项目的不同,我也使用过许多其他语言,包括 C/C++、R、Perl、Javascript、PHP 等等。但是到目前为止,Python 仍然是我最喜欢的语言,不仅因为这种语言的优雅或简单,还因为可用包的大型生态系统以及用户和开发人员的巨大社区。
—
你现在在做什么项目?
我目前是 Glue 包的首席开发人员,这是一个用于数据探索和可视化的交互式 Python 包。这个包最初是由Chris Beaumont开发的,你可以在这里看到他谈论这个包的早期版本。我也是 Astropy 的协调员和首席开发人员之一,这是一个为天文学开发一套核心 Python 包的项目。core astropy 包包含了许多天文学家和科学家的核心功能:例如,有一个非常强大的unit conversion framework,以及一个处理tabular data的框架,它与 pandas 接口良好。除了 Glue 和 Astropy 之外,我还维护了相当多的小 Python 包——其中很多你可以通过我的 GitHub 配置文件找到。
—
哪些 Python 库是你最喜欢的(核心或第三方)?
我非常喜欢 requests 用于简单和 Python 式的网络访问, Jupyter 笔记本(以前的 IPython 笔记本)用于交互式分析, Vispy 用于 OpenGL 的 3d 可视化, scikit-learn 用于机器学习, Numpy 用于快速数组操作。我真的很喜欢 conda 包管理器,尤其是它能够在一瞬间创建不同的环境。就帮助我进行开发的 Python 工具而言,我从事的大多数项目都有我用 Sphinx 构建的文档,虽然严格来说不是 Python 包,但通过 ReadTheDocs 使用 Sphinx 使事情变得非常容易。我真的很喜欢使用 pytest 框架编写测试,并使用 pytest 插件的大型生态系统。Python 标准库也有很多不错的功能,例如包括多重处理、并发.未来和集合模块。
—
你还有什么想说的吗?
以我的经验来看,Python 最大的优点之一就是用户和开发人员非常友好的社区,而且很容易找到愿意提供帮助的人。在这个编程社区有时以咄咄逼人的或排外的方式行事的时代,我真诚地希望我们继续共同努力,使 Python 社区尽可能友好和包容,无论是在个人社区还是在我们的在线社区!
非常感谢你接受采访!
本周 PyDev:托马斯·伍特斯
原文:https://www.blog.pythonlibrary.org/2020/01/27/pydev-of-the-week-thomas-wouters/
本周,我们欢迎托马斯·伍特斯( @Yhg1s )成为我们本周的 PyDev!Thomas 是 Python 语言的核心开发人员。总的来说,他在开源领域非常活跃,过去曾是 Python 软件基金会的董事。让我们花些时间去更好地了解他吧!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
I’m a self-taught programmer, a high school dropout, a core CPython developer, and a former PSF Board Director from Amsterdam, The Netherlands. I’ve been playing with computers for a long time, starting when my parents got a Commodore 64 with a couple books on BASIC, when I was 6 or 7. I learned a lot by just playing around on it. Then in 1994 I discovered the internet, while I was still in high school. This was before the days of the World Wide Web or (most) graphics, but I was sucked in by a programmable MUD, a text-based “adventure” environment, called LambdaMOO. LambdaMOO lets you create your own part of the world by making rooms and objects, and programming their behaviour, in a programming language that was similar to Python (albeit unrelated to it). One thing led to another and I dropped out of high school and got a job at a Dutch ISP (XS4ALL), doing tech support for customers. A year later I moved to the Sysadmin department, where I worked for ten years. I gradually moved from system administration to programming, even before I learned about Python.Besides working with computers I also like playing computer games of all kinds, and non-computer games like board games or card games. I do kickboxing, and I have a bunch of lovely cats, about whom I sometimes tweet. I’m pretty active on IRC as well, and I’m a channel owner of #python on Freenode. I also keep ending up in administration-adjacent situations, like the PSF Board of Directors and the Python Steering Council, not so much because I like it but because I don’t mind doing it, I’m apparently not bad at it, and it’s important stuff that needs to be done well.
你为什么开始使用 Python?
在 XS4ALL 工作时,一个和我一起开发基于 TinyMUX 的 MUD 的朋友知道我更喜欢 LambdaMOO,并提到 Python 很像 MOO 语言,至少在概念上是这样。当时我懂 BASIC、Perl 和 C,但对它们都不是特别满意。对我来说,MOO 语言总是看起来更有逻辑性,更自然。当我最终尝试 Python 时,这是一次令人大开眼界的经历。提醒你一下,这是 1999 年,当时是 Python 1 . 5 . 2;与 Python 3.8 相比,实际上是石器时代。尽管如此,我还是立刻爱上了它。它非常适合我的大脑。我能够轻松地(与当时的技术水平相比)使用 C 库,甚至在 C 程序中嵌入 Python,这是一个额外的收获。我在工作中很少使用 Python,直到我转到 Google,但是我用它做了各种各样的业余编程。
我坚持编程的部分原因是我发现在 CPython 上工作是多么有趣。当时我已经开发了许多不同的 C 代码库,CPython 是迄今为止最干净、可读性最强、最令人愉快的。我从阅读和实现人们要求的小功能中学到了很多。我从 Michael Hudson 那里拿到了一个概念验证补丁,添加了 augmented assignment (+=,*=,等等),并运行了它,在许多细节上得到了 Guido 本人的指导。这比我预期的要长得多,但最终变成了 PEP 204,并使我成为了一名核心 Python 开发人员。我也及时帮助建立了 Python 软件基金会,这是我们在 2003 年做的,我在前三年是它的董事会成员(后来也是)。
我参与 Python 也意味着我在谷歌得到了一份工作,在阿姆斯特丹远程工作,帮助内部维护 Python。我团队的其他成员在加利福尼亚,我可以定期去看望他们。谷歌的工作复杂多样,挑战性很强,13 年过去了,我仍然不觉得无聊。
What other programming languages do you know and which is your favorite?
I know C intimately, and C++ and Java fairly well. I use all three (along with Python) at my day job. I’m also somewhat familiar with Haskell, D, Objective C, and Perl. I used to use Perl a lot at my previous job, but I never enjoyed it and I don’t remember much of it now. My favourite language by far is Python, but C is in a firm second place. I’m familiar enough with its pitfalls that I know when I don’t know something, and where to look it up. I’m also under no illusions about its drawbacks, and would be quite happy if everybody moved to more memory-safe languages. Modern C++ – at least the set of features we’re encouraged to use at work – is also growing on me. The main issue I have with C++ is that it has so many features you shouldn’t use. At work we have a lot of tooling to help us make those choices, which greatly improves the C++ experience.
你现在在做什么项目?
我的大部分项目都是谷歌内部的,我们在那里有一个有点不寻常的环境。我的主要项目类似于 Gregory Szorc 的 PyOxidizer,尽管它要老几年,并且与 Google 的构建和部署基础设施紧密耦合。我最感兴趣的开源工作是我用传统的标记-清除 GC 替换 CPython 的引用计数的实验。在过去的一年里,我没有太多的时间来为它编写实际的代码,但我一直在思考,我认为这是 CPython 的一种现实的前进方式。它将允许 Larry Hasting 的 gile cut 发生,而没有太多的额外开销,虽然这将意味着从根本上改变 CPython C API,但我认为我们可以以一种好的方式逐步做到这一点。可能需要十年才能全部完成,但这是值得的。
哪些 Python 库是你最喜欢的(核心或第三方)?
我将不得不无耻地在这里插入谷歌的 pytype。像 mypy 一样,它是一个 PEP-484 类型检查器,但它实际上是推断类型。您不必对任何代码进行注释,它就可以为您的代码生成类型注释(例如,这样您就可以用 mypy 检查代码)。我没有直接参与它的开发,但它是我在谷歌团队的产品之一,我在它的所有阶段都坐在前排。从事这项工作的人非常棒——我团队中的每个人都很棒 pytype 在 Google 的静态分析中发现了很多运行时错误。获得 PEP-484 类型注释的好处而不必弄清楚所有的注释是一个巨大的胜利。
作为 Python 的核心开发者,你维护语言的哪些部分?
I’m one of the people most intimate with the parser and compiler. There’s several of us, including Guido, so I wouldn’t say I maintain them, though. I’m also very familiar with the C internals of CPython – how objects and types are implemented – but again, so are many others. And because I used to be a sysadmin I also involved myself with the build system early on, and some of the modules that deal with OS services (pty, ncurses, readline). Since those modules don’t get a lot of attention and require fairly niche knowledge, I guess I maintain those?Which library is the trickiest to work on and why? The system-dependent ones, especially ones that have been around for a long time. CPython has been around for a long time, and has in the past supported more operating systems than it does now, at least actively. We used to have support for VMS and DOS as well as various flavours of UNIX that are no longer around. As a consequence, some of the C code is riddled with conditionals that we can no longer test. Often it’s to work around a bug or issue that may be fixed in current versions of those OSes, but we have no way to test if that’s the case.Also, some of the older modules with (in hindsight) badly designed APIs and middling test coverage. If it’s not clear how you should use a module, or the test cases we have don’t reflect real usage, it can be very dangerous to make changes to them. Even bugfixes or minor improvements may end up breaking use-cases you didn’t realise existed. Because all changes you make can only be fixed (or rolled back) by releasing an entire new Python version, you really want to avoid that. It’s one of the reasons modules in the standard library change so little, and why it’s often better to use third-party alternatives instead: they can evolve much faster, and they can be rolled back individually.**What’s the best part of contributing to open source?**The best part of contributing to open-source is the people. I came into this because I liked the technical challenge, the puzzles, the making things work – but I stayed because of the people. Back in 1999-2000 it was the python-list and python-dev mailing lists that made me realise this, and in particular people like Guido van Rossum, Tim Peters, and Barry Warsaw. They were (and are) welcoming, friendly, playful, and painfully smart (except Barry, obviously), but they openly shared their knowledge, trying to elevate others as much they could. I’ve met many, many others who do the same thing, and it’s something I try to strive for as well. Diversity, inclusivity, openness, friendliness, it’s all very important to me. I would not have stayed involved in the Python community if it hadn’t been such a warm, welcoming blanket to wrap yourself into.Thanks for doing the interview, Thomas!
本周 PyDev:蒂姆·阿诺德
原文:https://www.blog.pythonlibrary.org/2021/05/17/pydev-of-the-week-tim-arnold/
本周,我们欢迎蒂姆·阿诺德( @jtimarnold )成为我们本周的 PyDev!蒂姆合著了黑帽 Python,第二版:黑客和 Pentesters 的 Python 编程。如果你对黑客或 pentesting 感兴趣,你可能想看看那本书!
你可以在蒂姆的网站/博客上看到他还在做什么,或者查看他在 T2 GitHub 上的简介。

让我们花些时间更好地了解蒂姆吧!
**能简单介绍一下自己吗(爱好,学历等)😗*为无淀粉。
我真的,真的,喜欢阅读任何东西。除此之外,我喜欢黑客,开锁,进入森林,这在疫情期间尤为重要。
还有就是对摄影很感兴趣,找别人的新作,自己实践。
你为什么开始使用 Python?
很久以前,我在工作中接手了一个全是 Python 的项目,所以我别无选择。
但没过多久,我就爱上了它的简洁和表现力。
你还知道哪些编程语言,你最喜欢哪一种?
毫无疑问,Python 是我最喜欢的语言,但我也在一些基于节点的项目中使用 Javascript。还有(这是离墙),我真的很爱 LaTeX 这种排版宏语言。
你现在在做什么项目?
我的日常工作是构建和维护一个端到端的发布系统。它以用 LaTeX 标记的技术源内容开始,以 PDF、XML 和 HTML 文档结束。我完全用开源软件创建了系统,核心是用 Python 写的。
哪些 Python 库是你最喜欢的(核心或第三方)?
我想我们都认为标准库是理所当然的。它有一些非常有用的库。操作系统包?不可或缺!
对于第三方,我的主力库是 plasTeX,它将 LaTeX 源文档转换成文档对象模型。当然,我非常喜欢 lxml XML/html 解析库。它使得处理 xml 或 HTML 变得非常容易。
你的书《黑帽蟒》是怎么来的?
这是一条弯弯曲曲的小路。贾斯汀·塞茨在 2015 年写了《黑帽蟒》,第一版。2018 年,我在为我们当地的 ISSA 教授一些网络安全课程,我用他的书作为文本,开设了一门基于网络的课程。
我喜欢这本书,并与贾斯汀和 NoStarch 出版社取得了联系,2019 年,我们决定开发新版本。因此,在第二版中,我重构了代码,并将其更新到 Python 3.x。此外,根据我在教学中的经验,我还增加了一些代码解释。
它保留了 Justin 的精彩场景,我使用 Python 中的一些增强功能(如上下文管理器、f-strings、ipaddress 模块等)重新编写了示例。
自从写了第二版后,你对写作或成为作者有什么了解?
写第二版就像坐过山车一样。有时我感到不知所措,好像撞上了一堵墙。有时候,这真的很有趣:知道自己想去哪里,也知道如何去做。
建造东西(和写关于它的东西)是令人兴奋的。有时我认为编程是与用户互动,但在空间和时间上是分离的。写完这个版本,现在我觉得写作是教学但在空间和时间上是分开的。
你还有什么想说的吗?
我看过一些特定于语言的文化,我对 Python 社区印象深刻,很高兴成为其中的一员。我记得不久前在 UseNet 上,我看到一个初学者问了一个格式不好的问题,心想‘啊哦,这将是糟糕的……’,但回应会很有帮助和耐心。我认为这个社区是如此的尊重、乐于助人和包容。令人印象深刻的人造就了令人印象深刻的文化。
蒂姆,谢谢你接受采访!
本周 PyDev:蒂姆·戈登
原文:https://www.blog.pythonlibrary.org/2015/01/19/pydev-of-the-week-tim-golden/
本周的 PyDev 是 Tim Golden。他是 Python 软件基金会的成员,也是 Python 核心开发人员。Tim 还是几个 Python 邮件列表的版主或所有者。2013 年 4 月,Tim 获得了 Python 社区服务奖,“以表彰他在支持 Python 中的 Windows 管理界面以及在 comp.lang.python 上支持该代码和 Windows 用户方面所做的工作。”他不时会写博客,我建议查看他的文章。最后,Tim 是几个用于 Windows 的 Python 模块的作者,你可以在这里阅读关于的内容。
让我们花些时间更好地了解他。
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
我出生在伦敦南部的温布尔登地区。我在曼彻斯特的 UMIST 攻读计算机科学,然后搬回伦敦工作。我的第一份工作碰巧是在 VAX/VMS & Oracle 上,从那以后我就一直呆在关系数据库世界里。
我在伦敦工作了 25 年,我参与了伦敦西南部的青少年工作。我也足够幸运,能够凭听觉来弹钢琴,这使得娱乐人们变得容易,并且可以成为破冰者。我一直是阅读和公共图书馆的粉丝,我仍然经营着一个名为 goodtoread.org 的书评网站(既然你问了,那就是 Flask & Sqlalchemy ),但在过去的几年里,我真的没有时间去支持它。
你为什么开始使用 Python?
在 UMIST,我最后一年的项目是用 Modula-2 编写的,我很喜欢它,后来在伦敦南部的一个俱乐部教了一段时间编程。我去寻找一个更新的编译器,发现了 Python(1 . 5 . 2)——如你所知,它的灵感之一是 Modula-2。它就这么一拍即合,我真的没有回头。
你还知道哪些编程语言,你最喜欢哪一种?
我的基本工作是 SQL(微软的 T-SQL 方言)。你可以争论它是否是一种编程语言,但是如果你在数据操作领域工作,它肯定是很有能力的。出于这个原因,我不喜欢简单样板文件之外的 ORM:对我来说,它们只是学习做我已经能做的事情的另一种语言。(很明显,关于跨平台/数据库工作等有很好的论据。但是我主要在一个堆栈中工作)。
我可以用 C 语言编程(这对 Python 核心开发工作来说很方便),但它从来不是我的第一语言;更像是一门称职的第二语言。这些年来,我做了一点这个,做了一点那个(Java,Cobol,Javascript 等等。)因为工作需要,但是虽然我对 Javascript 还不太精通,但我并不要求我对它们中的任何一个都很熟悉。真的,Python 把我惯坏了。
有些人提倡一年学习一门新语言,我很乐意有这个机会。当我听到朋友或阅读博客引用新语言中的好功能时,我总是很感兴趣(例如 Rust,Go,Dart,Pike,D &c)。不幸的是,我的时间已经过多了,所以我真的没有理由花那么多时间去学习新东西。
你现在在做什么项目?
在工作中,我主要关注的是数据仓库以及我们的系统和第三方系统之间的数据交换,我们刚刚将部分业务外包给了第三方。像往常一样,尽管这两个系统都是基于微软的工具栈(SSIS、SSAS、BizTalk),Python 却在给轮子上油。我们有一个(stdlib-WSGI + pyodbc) web 应用程序,它为我们的日志记录表提供了一个简单的 web 接口;我们有一个(pyodbc,winsys & Pillow) Windows 服务,它可以拾取传入的图像,在将它们发送到 FTP 服务器以供拾取之前,对它们进行代码转换并调整大小;我们有一个(pyodbc + winsys + threading)可插拔监控服务,它可以监视各种活动,如新文件的到达、尚未迁移的数据库更新、传入的错误通知&等,并将它们记录到我们的日志表中。稍后阶段将添加系统日志通知到我们的内部系统日志服务器。
此外,我们的服务台系统完全是用 Python 编写的。(cherrypy + pyodbc +内部库)。我处理电子邮件的接收和通知、定时闹钟、网络访问以及其他我们处理的事情。它很棒,因为我们可以很容易地改变或添加东西。当然,这从来不是官方的优先事项,所以我们总是不得不围绕其他创收工作。
在工作之外,我努力寻找足够的空闲时间来做一些 Windows 核心开发工作。让史蒂夫·道尔和扎克·威尔重做 Windows 构建基础设施并修复问题是非常棒的。
我还试图制定一个计划,在那里我可以使用 RaspberryPi,Lego Mindstorms & Python 来吸引俱乐部的小伙子们。坦率地说,这并不容易,因为他们中很少有人天生就感兴趣,所以你必须在前面非常努力地工作,以便在短时间内得出一个可实现的结果,并且你可以在以后的基础上继续努力。
哪些 Python 库是你最喜欢的(核心或第三方)?
我想我很喜欢自己的库:wmi、active_directory、winshell、winsys 等等。尽管我很少使用它们中的一些,以至于我不得不重温我自己的源代码&文档来记住如何做某事!
除此之外,我不知道什么是“最喜欢的”,但是 pywin32 库和 pyodbc 一直是我工作工具的核心部分。虽然我自己现在很少用它,但我总是很乐意推广 Irmen de Jong 的 Pyro:它很成熟;它只适用于简单的情况,并且可以很好地扩展到更复杂的情况;它有很好的文档记录和很好的支持,而且使用起来很有趣。如果我想运行一个多机器、多进程的例子,我从 Pyro 开始。
是什么让你决定做“一屏 Python”这个项目?你能告诉我们更多吗?
真的,这是 2013 年& 2014 年 PyConUK 的教育赛道。在这两种情况下,我们都有一群小学&中学老师试图解释什么能在课堂上帮助他们。我们听说,对于一个普通的中学班级来说,在典型的 45 分钟的课程中,一屏的代码就是老师所能完成的全部内容。显然,这一屏必须产生一些有形的东西,即使它是一些更大的项目的一部分。所以我开始考虑制作一些可以通过 github 分享的视频。
从与老师的交谈中可以清楚地看到,他们在一个比我们开发人员可能想象的更受限制的环境中工作。在很多意义上:教师自身的能力和经验;学生理解事物的能力;它们运作的时间框架;他们可以使用的设施和工具,包括锁定的计算机和网络以及阻碍他们的系统管理员。因此,我自我强加的一部分职责是将第三方库保持在最低限度,但不是重新发明它们。有的老师可以随手安装第三方代码;其他人可以在经过官僚程序后这样做。例如,仅仅为了强调第三方代码而重新实现 PIL/枕头是没有意义的。
当然,现实是,现实生活已经开始,而我却无法给予它我想要的关注。但是这个项目仍然存在;它有自己的 github 组织,欢迎任何人投稿。我正在和我的公司讨论给我一些时间去学校帮忙;我不知道它是否会成功,但我真的希望能做些什么来帮助老师和孩子们。
你还有什么想说的吗?
有人是多年的核心开发者和 PSF 会员;拥有或管理各种 Python 邮件列表的人;回复网站管理员@和星球@地址的人;管理和整理 python.org 基础设施的人;在各地组织代码道场和其他聚会的人;组织会议的人,例如英国 PyCon,我们在那里举办了两年的教育和儿童跟踪活动;获得 Python 社区服务奖的人;更多的人除了做更多的工作来使 Python 社区工作。不仅仅是语言本身,核心开发,而是围绕它的整个生态系统。
不仅仅是 PSF 拥有或运营的方面,还有 python.org 的东西。还有广受好评的第三方工具,如 pip 工具链、pywin32 库、readthedocs、IPython 和 SciPy 社区,以及通过 PyPI 提供的许许多多的软件包。偶尔我会浏览一下 PyPI 提要,以便对围绕这种语言的大量活动有所了解。
我想说的最后一点是,我一直对 Python 社区的普遍尊重和礼貌印象深刻。当然,事情时不时会爆发,人们会变得激动。我们有很多非常聪明的人,他们有很多伟大的想法;肯定会有冲突。但一次又一次,我看到人们试图保持平衡,后退,回来为一时的爆发道歉,认识到除了他们自己还有其他有效的意见。在我看来,这种自我控制和自我意识的证据尤其重要,因为当前的热点话题之一是开发人员中一种不受控制的有害攻击。
谢谢!
前一周的 PyDevs
- 道格·赫尔曼
- 玛格丽塔·迪利奥博士
- 马里亚诺·莱因加特
- 巴斯卡尔·乔德里
- 蒂姆·罗伯茨
- 汤姆·克里斯蒂
- 史蒂夫·霍尔登
- 卡尔查看
- 迈克尔·赫尔曼
- 布莱恩·柯廷
- 卢西亚诺·拉马拉
- 沃纳·布鲁欣
- 浸信会二次方阵
- 本·劳什

4947

被折叠的 条评论
为什么被折叠?



