PythonLibrary-博客中文翻译-三-

PythonLibrary 博客中文翻译(三)

原文:PythonLibrary Blog

协议:CC BY-NC-SA 4.0

本周 PyDev:本·班格特

原文:https://www.blog.pythonlibrary.org/2016/07/11/pydev-of-the-week-ben-bangert/

本周我们欢迎本·班格特成为我们的本周 PyDev!Ben 是 Pylons 项目的幕后策划者,该项目是 Python 中的一个 web 框架。它现在被称为金字塔。如果你有一点时间,你应该看看本的网站或者他的 Github 简介看看他最近在忙什么。让我们花点时间多了解一下他吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我从事专业编程已经大约 17 年了。2001 年,我从索诺玛州立大学获得了哲学学位,从那以后,我一直住在美丽的索诺玛县。我和我的妻子、儿子以及两条狗住在这里,每天我都会带它们去散步。天气好的时候,我喜欢烧烤,徒步旅行,去当地的公园。

我目前在 Mozilla 的推送团队工作,我们正在为 Firefox 开发大规模的推送服务。

你为什么开始使用 Python?

在 Python 之前,我是一名 Perl/PHP/C++程序员。在一次令人发指的 Perl 调试过程中,在花了两天时间通过删除数百行代码中的 print 语句来追踪一个 bug 之后,最终发现隐式散列键创建是决定“当然,一定有设计得更好的东西”的原因。我开始环顾四周,注意到 Python 没有这种隐含的行为。它似乎是为了避免这样的错误而设计的,我被吸引住了。

你还知道哪些编程语言,你最喜欢哪一种?

有一段时间,我不同程度地了解了 Pascal、C++、Java、Scheme、PHP 和 Perl。我目前可以通过 Javascript、Haskell 和 Go 来破解我的方法。我也一直在学习铁锈,因为它让我很着迷。我最喜欢的语言可能是 Haskell,但我认为 Rust 很快就会出现。

你现在在做什么项目?

由于我在 Mozilla 的所有工作在默认情况下都是开源的,所以我在业余时间基本上不再从事开源项目。我最近从事的项目是 kazoo(一个 Zookeeper 纯 Python 客户端),heka(一个基于 Go 的日志发送器/分析器),loads-broker(一个基于 Python 3 AWS 的负载测试工具),以及我目前的推送工作,都是 Python(Mozilla-Push-service . readthedocs . io/)。

哪些 Python 库是你最喜欢的(核心或第三方)?

排名不分先后:
-扭曲的
-金字塔
-点击
-密码术
-提示-工具包

作为一门编程语言,你认为 Python 将何去何从?

我认为 Python 的使用在一段时间内还会继续扩大,随着 Python 3.5 和更高版本被广泛采用,我们将会看到有趣的新库和框架的增加。我仍然希望看到多核问题得到更好的解决,并对 PyPy 或类似的产品寄予厚望。

你对当前的 Python 程序员市场有什么看法?

我最近没有四处找工作,但是如果招聘广告是可以预见的,那么 Python 程序员的市场前景比以往任何时候都好。

你还有什么想说的吗?
如果你还没有尝试过在 PyPy 下运行你的 Python 程序,我强烈推荐你尝试一下。我仍然对人们在认真评估 PyPy 之前就用“更快的语言”重写整个程序感到困惑。

感谢您接受采访!

本周 PyDev:Ben Nuttall

原文:https://www.blog.pythonlibrary.org/2016/08/08/pydev-of-the-week-ben-nuttall/

本周,我们欢迎本·纳托尔(@本 _ 纳托尔)成为我们本周的 PyDev。Ben 是 Raspberry Pi 社区经理 http://bennuttall.com/,并且是 GPIO Zero 的创建者,这是一个到 Raspberry Pi 上 GPIO 组件的简单接口。你也应该看看他的网站,看看本在做什么。让我们花一些时间来更好地了解本!

ben-nuttall-firstbuild (copy)

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

除了编程,我还喜欢激流皮划艇,以及其他户外活动。我最近也迷上了摄影(还有很多东西要学)。

我在大学学习数学和计算,然后在软件行业工作了几年。在这段时间,我越来越多地参与当地的技术社区,参加用户组和会议。我为 Raspberry Pi 建立了一个社区活动(称为 Raspberry Jam),并与学校一起开展了一些活动,帮助教师在课堂上使用 Raspberry Pi,并让孩子们参与数字制作。

通过这样的社区工作,我最终被 Raspberry Pi 基金会雇佣来做开发和推广工作。我们组建了一个教育团队,并开始实施教师培训方案和其他讲习班。随着我们努力通过我们的教育项目接触到世界各地更多的人,基金会的规模越来越大,影响也越来越大。我现在担任 Raspberry Pi 社区经理,支持 Jams 和其他社区工作,包括一些伟大的开源项目。

你为什么开始使用 Python?

一个朋友在 2011 年向我展示了 Python,他演示了一些简单的例子,语法的简单性给我留下了深刻的印象。那时我已经使用了很多 PHP、Java 和 Matlab,所以我习惯了更冗长的语法。Python 看起来就像一种出色的通用语言。很快,因为我选择了简单任务的语言,通过做这些事情,通过pythonchallenge.com,我很快就掌握了一套全面的技能。

当 Raspberry Pi 出现时,它变得与我更加相关,因为我学会了用 Pi 的 GPIO 引脚做物理计算项目。通过为我们放在一起的学习资源构思项目想法,以及根据团队其他成员的规范构建项目,我学到了很多东西。

你还知道哪些编程语言,你最喜欢哪一种?

我对 PHP、Ruby 和 JavaScript、Java 和 C#有相当好的理解。我想如果 Python 不存在的话,Ruby 会是我选择的语言——它在很多方面都一样好用,只是风格不同而已。我挺喜欢 Julia 的样子,但是使用经验有限。

你现在在做什么项目?

去年年底,我在 Raspberry Pi 上开发了一个控制 GPIO 组件的新库。以前的事实上的库非常低级,只允许您将单个引脚调高或调低,并读取引脚的状态,并且需要大量样板代码才能开始,这使得很难进行教学。我创建了 GPIO Zero,它的命名参考了 py game Zero(py game 的 Zero 样板包装器)。这个项目发展得非常快,我们在几个月内发布了 1.0 版。进展非常顺利,我收到了一些很好的反馈。我从达夫·琼斯那里得到了很多帮助,他维护着 Raspberry Pi 的 picamera 库。

我们目前在国际空间站上有两个 Raspberry Pis,运行由英国学校的孩子们编写的 Python 程序。这是一个名为 Astro Pi 的推广计划的一部分,由 Raspberry Pi 和英国航天局与英国欧空局宇航员 Tim Peake 合作。

哪些 Python 库是你最喜欢的(核心或第三方)?

我喜欢 itertools 的强大功能,里面有一些我经常使用的非常方便的功能。我真的很喜欢丹尼尔·波普的 py game Zero——它通过去除样板文件,使创建游戏的过程变得简单明了,取得了很大的成就。它也启发了我和其他人创建类似的图书馆,特别是用于教育。

作为一门编程语言,你认为 Python 将何去何从?

Python 在教育领域非常受欢迎。它是一种受欢迎的教学语言,因为它易于读写,并且扩展到几乎所有地方——游戏、桌面应用程序、网站、物理计算、机器人、科学、数学等等。有趣的是,如果每个孩子都有机会学习 Python,这将对未来语言的适应产生巨大影响。

我希望我们有一个适合初学者的更好的编辑器。闲着不适合目的。有一个很棒的社区项目叫做 Mu,它是为教育而设计的。它仍然需要一些工作(它目前只在 micro:bit 设备上与 micropython 一起工作),但我希望看到它继续下去。教室里也存在类似的问题,大多数开发人员都没有意识到,比如安装库的困难。我推荐图书馆维护人员阅读英国教师劳拉·迪克森的文章“Scratch 是新的 PowerPoint”。

你还有什么想说的吗?

我维护着一个名为 pyjokes 的库——一行程序员笑话服务。您可以 pip 安装它以在命令行上访问笑话,或者在您自己的 Python 项目中使用笑话。我们还有一个你可以关注的 Twitter 机器人:@ py skins _ bot。

感谢您接受采访!

本周 PyDev:本·罗施

原文:https://www.blog.pythonlibrary.org/2014/10/13/pydev-of-the-week-ben-rousch/

本周的 PyDev 是 Ben Rousch ( @brousch )。他是基维项目的贡献者。你应该看看他的博客这里。你也可以在 Youtube 上看到 Rousch 先生关于 Kivy 的演讲。让我们进一步了解他吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

在过去的 15 年里,我一直在 Van Dam Iron Works 担任整个 IT 部门的工作,该公司是密歇根州大急流城的一家商业和工业钢楼梯和栏杆制造商。我拥有密歇根大学的人类学学士学位。我的编程和 IT 技能很大程度上是自学的,从互联网和书籍中获得了很多帮助。我的大部分空闲时间都花在了参加和组织用户组会议上,以及玩我当天感兴趣的任何技术上。

你为什么开始使用 Python?

21 世纪初,我在很多事情上使用 Visual Basic 和 PHP,但随着程序变得越来越大,我对它们感到失望,所以我开始寻找更好的编程语言。我首先尝试了 Python,但是犯了一个错误,试图通过 Zope 和 Plone 来学习它——这些巨大的框架让我对它失去了兴趣。在通过 CherryPy 等较小的脚本和框架回到 Python 之前,我用 Java 和 C#与 Mono 进行了多年的较量,用 Ruby 进行了非常短暂的尝试。我坚持使用 Python,因为我几乎可以用它来编写任何我需要的程序。

你还知道哪些编程语言,你最喜欢哪一种?

我以前对 PHP 很了解,但是很久没用了。我学了一点 Javascript——这是任何 web 开发人员都必须做的,我还学了一点用于 Android 开发的 Java。Python 是我唯一可以说我非常了解的语言。

你现在在做什么项目?

在工作中,我用 Django 取代了旧的 MS Access 程序。在家里,我经常在 Android 上玩小的 Kivy 应用程序。最终我希望在 Android 上发布一个 Kivy IDE,这样你就可以用 Kivy 在 Android 上制作 Android 应用了。最近我对嵌入式平台感兴趣,比如 Raspberry Pi 和 Arduino。我心中有一些大项目,但现在我主要是做一些小的概念验证,以熟悉技术。

哪些 Python 库是你最喜欢的(核心或第三方)?

这些天来,Kivy 或 Django 是我在几乎每个 Python 项目中使用的。如果是手机或者桌面 GUI 应用,我用 Kivy。如果是 web app,我用 Django。

你还有什么想说的吗?

这些年来,我从你频繁的博客文章中学到了很多,所以我终于可以回报一点了,这太好了。

本周 PyDev:bene dikt Eggers

原文:https://www.blog.pythonlibrary.org/2016/09/19/pydev-of-the-week-benedikt-eggers/

本周我们欢迎 bene dikt Eggers(@ be _ Eggers)成为我们本周的 PyDev。Benedikt 是参与 IronPython 项目的核心开发人员之一。IronPython 是 Python 的一个版本,集成了微软的。NET 框架,很像 Jython 集成了 Java。如果你有兴趣了解 Benedikt 最近在做什么,你可能想看看他的 Github 简介。让我们花几分钟来了解一下我们的蟒蛇同伴吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我叫 Benedikt Eggers,出生并生活在德国(23 年)。我是一名软件开发人员和工程师,并且学习了商业信息学。在我为数不多的空闲时间里,我做运动,做开源项目,比如 IronPython。

你为什么开始使用 Python?

老实说,我是通过寻找. net 的脚本引擎开始使用 Python 的。就这样,我来到了 IronPython,并在我们公司建立了它。在那里,我们使用它来扩展我们的软件,并在两个世界中编写和使用 Python 模块。过了一段时间,我对 Python 有了更多的了解,并认为这是动态语言的一个很好的概念。所以这和 C#是一个很好的对比。它非常适合编写脚本和其他漂亮快捷的东西。

你还知道哪些编程语言,你最喜欢哪一种?

我最熟悉的语言是 C#。老实说,这也是我“部分”最喜欢用来编写更大的应用程序和复杂产品的语言。但是我也非常喜欢 Python/IronPython,因为它允许我用更少的可读代码快速实现我的目标。所以很难选择最喜欢的语言,因为我喜欢在特定的环境中使用最好的技术(关系数据库和基于文档的数据库也是如此,...)

你现在在做什么项目?

大部分时间,我都在工作中做我的项目。我们(http://simplic-systems.com/)一直致力于创造越来越多的开源项目,并为其他开源项目做出贡献。所以我在那里花了很多时间。但是我也可以用很多时间来研究 IronPython。因此,我能够将这些混合起来,并行处理几个项目。但是花时间在 IronPython 上是我真正喜欢的事情,所以我正在做,因为我喜欢它。

哪些 Python 库是你最喜欢的(核心或第三方)?

我真的很喜欢 requests 和所有的软件包,以便轻松地与网络服务和其他现代技术一起工作。另一方面,我在我们的持续集成环境中使用了许多 Python 模块,来自动化我们的构建过程。所以我也使用核心库来移动,通过读取 JSON 配置来重命名文件等等。所以有很多我喜欢的图书馆。因为它们让我的生活每天都变得更加轻松。

你还有什么想说的吗?

是的——我希望看到我们的发展速度,以及我们找到了愿意为 IronPython 做贡献的人。我认为我们走在一条好的道路上,希望我们能实现所有的目标。我希望 IronPython 3 和所有其他版本都很快发布。此外,我要非常感谢杰夫·哈迪,他在过去的几年里为这个项目做出了贡献,并且总是很有帮助。最后,还要感谢 Alex Earl,他在过去的几年里也参与了这个项目,现在他想把这个项目带回到社区中来。我想我们会合作愉快的!

非常感谢你接受采访!

本周 PyDev:本杰·温伯格

原文:https://www.blog.pythonlibrary.org/2021/06/28/pydev-of-the-week-benjy-weinberger/

本周,我们欢迎本杰·温伯格(@本杰)成为我们本周的 PyDev!本杰在做裤子制作系统。他也是工具链的联合创始人。

你可以在 GitHub 上找到 Benjy。让我们花点时间来了解一下 Benjy!

Benjy Weinberger

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我的名字是本杰·温伯格,我出生在英国,在以色列长大,自 2002 年以来一直生活在美国。我在耶路撒冷的希伯来大学学习本科和研究生数学、物理和计算机科学。自 1997 年以来,我一直是一名软件工程师,在 Check Point、谷歌、Twitter 和 Foursquare 等公司工作。我现在是 Toolchain 的首席执行官和联合创始人,我们正在创建一个分布式构建系统。当我不工作的时候,我喜欢跑步、潜水和现场表演。事实上,我是旧金山当代舞蹈团“线条芭蕾”的董事。

你为什么开始使用 Python?

我在大约 20 年前加入 Google,当时他们使用 Python 作为他们的主要生产脚本语言。所以我必须学习它来部署我的改变。然后它很快取代了我个人项目中的 C++和 Java,我再也没有回头看!

你还知道哪些编程语言,你最喜欢哪一种?

C/C++,Java,Scala 还有一些 Rust。我喜欢 Python,因为它在强大和简单之间做出了精心选择的权衡,并且它是我在大多数情况下的首选语言。但是 Rust 很有趣,它可以有效地与 Python 互操作,所以我很想用它做更多的事情。

你现在在做什么项目?

作为首席执行官,我不再做那么多工程工作了。但是当我有时间编码时,我通常会为 Pants 做贡献,这是一个符合人体工程学的开源构建系统,强调对 Python 的一流支持,并且是 Toolchain 的分布式构建解决方案的客户端。

哪些 Python 库是你最喜欢的(核心或第三方)?

在标准库中,我认为 dataclasses 真正发挥了它的作用,通过一个有思想的、简洁的 API 提供了大量有用的功能。我非常喜欢 textwrap。它以一种健壮的方式解决了一个小而复杂的问题,我发现自己使用它的次数比你想象的要多。

一些我很喜欢使用的第三方库包括古老的 Django,它在构建 web 应用程序时做了很多繁重的工作,还有 Click ,它是一个整洁的、设计良好的用于创建命令行应用程序的框架。

是什么让你决定帮助创建 Pants 开源构建系统?

从历史上看,要想拥有真正棒的构建体验,你必须在少数几家大公司中的一家工作,比如谷歌和微软,它们有能力为大型开发人员生产力团队配备人员。离开谷歌后,我对普遍可用的构建系统和实践的质量感到失望,并希望将这种高质量的体验带给我的新团队。Pants 最初是 Twitter 的内部实验。但是我们很快意识到,在真空中创建另一个特定于组织的解决方案并不是最好的方法。所以我们把 Pants 变成了一个成熟的 OSS 项目,Foursquare 和其他公司也参与进来,这给了我们一个更广阔的视角。

一些大公司的系统现在是开源的,但是它们都是为那些组织的特定实践而设计的,并且不能很好地概括不同规模的不同组织的需求。我们设计和制造了 Pants,以支持各种小型、中型和大型工程团队的真实使用案例。事实上,去年 10 月,我们发布了“Pants v2”,这是一个完整的重新设计和重新实现的系统,基于过去十年在以前的迭代中吸取的经验教训。

你能告诉我们为什么你会在另一个建造系统上使用 Pants 吗?

有几个原因,所有这些都被纳入了裤子 v2 的设计中:

  • Pants 非常关注真实世界的 Python 用例,我们为此提供了一流的支持。事实上裤子本身就是用 Python 和 Rust 写的!例如,Pants 具有对运行 pip、setuptools、pytest、mypy、black、pylint、isort、bandit、flake8、docformatter、protocol、pex、AWS lambda 等的现成支持。其他系统是为 C++和/或 Java 设计的,Python 支持通常是事后添加的,或者通过第三方插件添加。
  • Pants 比大多数系统更符合人体工程学和用户友好。例如,用户根据文件和目录进行思考,因此 Pants 适应了这一点,而不是强加新的概念模型,用户必须掌握这些概念模型才能完成任何事情。
  • Pants 天生理解各种构建动作的语义,比如“test”、“lint”、“format”、“typecheck”、“package”等等。您甚至可以添加自己的自定义操作。其他工具可能只理解一般的“构建”动作,而不能推理语义,例如“linters 可以并发运行,但 formatters 不能”。
  • 与其他工具相比,Pants 需要更少的元数据和构建文件样板,这要归功于依赖推理、合理的默认值和自动生成。
  • Pants 执行引擎仔细隔离副作用,以提高准确性和性能。没有必须同步的全局状态。
  • Pants 很容易扩展,具有强大的插件 API,使用惯用的 Python 3 异步代码,因此您可以在插件中使用自然的控制流和强大的语言功能(包括类型提示)。其他系统通常会将您限制在一个有限的、脆弱的 API 上,不具备 Python 的全部功能。
  • 十多年来,Pants 一直是 OSS-第一项目,其治理模式允许任何个人参与,任何组织都可以扮演平等的角色。

Pants 是最先进的,尤其是对 Python 来说。我建议尝试一下,我们很乐意在https://www.pantsbuild.org/docs/getting-help回答问题和调试问题。

你还有什么想说的吗?

很高兴看到 Python 在过去十年左右的时间里从“在‘真实代码’边缘使用的脚本语言”发展成为一种成熟的主力语言,它是一种实用而明智的解决方案,可以解决从 webapps 到数据科学到 devops 等广泛的挑战。这在很大程度上要归功于包容和专注的社区,正是它们成就了 Python 的今天。我对这门语言的未来感到兴奋!

Benjy,谢谢你接受采访!

本周 PyDev:benot Bovy

原文:https://www.blog.pythonlibrary.org/2020/12/14/pydev-of-the-week-benoit-bovy/

本周我们欢迎 benot Bovy(@ Ben Bovy)成为我们本周的 PyDev!Benoî是 Xarray 相关库的贡献者,比如 XpublishXoak 。你可以在 Github 上看到他还在做什么。

让我们花些时间更好地了解 Benoî!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)?

我是一名居住在比利时的独立软件开发人员。我学的是地理学和地理信息学,然后在计算模型的帮助下,我花了几年时间攻读博士学位,试图更好地理解地球表面的形状如何随着地质时间尺度而演变。我一直对自然(地球)科学和编程充满热情,所以对我来说,很明显我要走这条路。然而,作为一名学术界的研究人员,我从来没有真正感到过自己的身份。因此,过去的八年是从做研究到构建软件的缓慢过渡。也是在那段时间,我开始为开源软件做贡献,主要是在 Python 科学生态系统中。我想我现在可以称自己为“研究软件工程师”了。看到这个[新社区快速发展](https:// researchsoftware.org/)非常令人兴奋。我还在和研究所和大学合作(作为自由职业者),但不仅仅是。除了计算机、科学和风景,我还热衷于音乐。我在一个叫做罗斯科的乐队演奏。我们在比利时、法国、荷兰、加拿大演出了很多场……现在我们正在录制我们的第三张专辑。我对此非常兴奋!

你为什么开始使用 Python?

我清楚地记得我用 Python 写的第一个脚本,那几乎是 15 年前的事了!我想自动化 GIS 软件(Idrisi)中运行的一些复杂工作流,这可以通过使用微软 COM 技术的一些编程语言来实现。在文档中显示的例子中,我选择了用 Python 编写的例子,因为对我来说它看起来最简单。那时候 Python 还不是很普及,Numpy 才刚刚起步。当我给他看我的剧本时,我的论文导师并没有把我当回事。看看 Python 及其更广泛的生态系统从那时起是如何发展的,我很高兴我首先选择了 Python 这个例子。

你还知道哪些编程语言,你最喜欢哪一种?

当我还是一个青涩的少年时,我就发现了用 BASIC 编程的乐趣。那很有趣!在研究生阶段的学习中,我学习了一些介绍 Pascal、Java 和 C 的编程课程,但我并没有真正花太多时间去挖掘这些语言。我用 PHP 和 Javascript 之类的语言开发了一些网站,但不知何故,Javascript 生态系统仍然让我感到害怕。

为了工作,我还花了相当多的时间阅读 Fortran 代码。实际上,我发现现代 Fortran 非常适合科学计算,读起来也很愉快,尽管它仍然受到缺乏一致的生态系统/社区的困扰(有些人似乎在努力解决这个问题:[https://fortran-lang.org/](https:// fortran-lang.org/))。最近我开始使用 C++进行更严肃的工作,虽然这可能很痛苦,但我很享受!我的动力来自于 Xtensor 库,它对于已经熟悉 Numpy 的人来说非常棒。朱莉娅可能是我名单上的下一个。

你现在在做什么项目?

我维护一套软件工具,用于景观演化建模。这些工具包括从特定领域数值算法的核心库到基于 Jupyter 小部件的高级交互式可视化组件。我还在开发 [Xarray-simlab](https:// github.com/benbovy/xarray-simlab) ,我想通过它展示 Xarray、Dask、Zarr 等库的所有潜力。用于在强大、交互式和可扩展的环境中开发和探索计算模型。我认为这种潜力还没有得到充分开发。我也为其他与 Xarray 相关的库做贡献,比如 XpublishXoak 。我已经很久没有对 Xarray 做出实质性的贡献了,但是我将在接下来的几个月里再次做出贡献(在 Xarray 的路线图中有一些令人兴奋的挑战)。

哪些 Python 库是你最喜欢的(核心或第三方)?

我没有特别喜欢的图书馆。我会说整个 Python scientific / PyData 生态系统是我最喜欢的库。看到这个生态系统的所有部分如何相互集成,以及它们共同提供的巨大能力,令人惊叹。对于几乎所有的问题,我很确定我可以找到一个或多个现有的包来节省我很多时间。另一方面,我越来越担心新用户在这个丰富、复杂、有时甚至混乱的生态系统中找到出路会有多难。当我们置身其中久了,可能就很难意识到了。幸运的是,有一个有用的社区和像 Pangeo 这样的伟大倡议,正在试图理解所有这些互联工具。

是什么激励你从事开源工作?

很多东西!我们可以向很多从事开源工作的技术人员学习。我还意识到,阅读许多人编写的成熟代码库对于编写更好的软件具有不可思议的指导意义。这在闭源的情况下是不可能实现的(除非是那些在最大的软件公司工作的人,他们现在也在为开源做贡献)。同样激励我的是,我们所做的贡献(哪怕是最小的贡献)最终可能会产生巨大的影响。也就是说,我还没有真正体验过在开源中工作的压倒性的一面,就像非常受欢迎的项目的维护者可能感觉到的那样。

你还有什么想说的吗?

谢谢你接受采访,迈克!我喜欢回答你的问题!

Benoî,谢谢你接受采访!

本周 PyDev:伯纳特·加博

原文:https://www.blog.pythonlibrary.org/2018/11/05/pydev-of-the-week-bernat-gabor/

本周,我们欢迎伯纳特·加博( @gjbernat )成为我们的本周 PyDev!伯纳特是 T2 tox 自动化项目 T3 的核心开发者。你可以看看他的 Github 看看他还参与了哪些开源项目。让我们花一点时间来了解更多关于伯纳特的信息!

你能告诉我们一些关于你自己的事情吗(爱好、教育等)。):

我在罗马尼亚的特兰西瓦尼亚出生和长大。我从高中开始就迷上了计算机科学,从那以后就再也没有回头路了。我在特兰西瓦尼亚的 Sapientia - Hungarian 大学完成了我的理学学士学位,然后在布达佩斯技术和经济大学继续我的硕士学位。在攻读硕士学位的同时,我开始在 Gravity R&D 公司(一家在软件即服务模式下提供推荐引擎的公司)工作,我已经在那里工作了近五年。我现在住在英国伦敦,两年前重新分配到这里,从那以后一直在彭博资讯公司工作。

您为什么开始使用 Python?

我在六年前开始使用 Python,当时我在 Gravity R&D 工作。要提供优秀的推荐,最关键的先决条件是拥有高质量的学习数据集。在探索收集数据的最佳方式时,我偶然发现了一种叫做 Python 的语言,它自带电池,允许我快速改变/改进数据收集(与当时公司使用的其他语言 Java/Groovy 相比)。

你还知道哪些编程语言,哪种是你最喜欢的?

我会 C/C++,C#,Java,Groovy,JavaScript,SQL,Python。其次,我熟悉 Julia、R、汇编和 VHDL。Python 是最受欢迎的。

你现在在做什么项目?

毒理是主要的。目前,我向 mypy 提出了问题/拉动请求,并且也在调查 pip。我以前和皮斯特、readthedocs.org有过一些接触。

哪些 Python 库是你最喜欢的(核心或第三方)?

argparse。它仍然是我见过的功能最丰富、最简单的命令行参数定义/解析器库。

你是如何开始毒性测试的?

在我的工作场所,我需要为一个项目提供 Python 2 和 3 的支持。我已经考虑过我在尝试做这件事时有哪些选择,以及主流开源项目为此使用了哪些工具。我很快发现了 tox,并在开始使用后发现了一些改进的机会。我为此开过几个 pr,过了一段时间,我把自己当成了主要贡献者之一。成为维护者是对我所做的所有改变负责的自然演变。

对于那些愿意为开源做出贡献的人,你有什么建议吗?

从小事做起,在做出改变之前,总是要和维护人员沟通。开诚布公,试着理解他们的建议。

你还有什么想说的吗?

在与任何开源项目进行交互时,请保持尊重。我们必须永远记住,大多数人都是在空闲时间无偿工作的;当接受特性时,维护人员不得不应付大量的约束。

感谢您接受采访!

本周 PyDev:伯特·JW·雷格尔

原文:https://www.blog.pythonlibrary.org/2017/11/13/pydev-of-the-week-bert-jw-regeer/

本周,我们欢迎伯特·JW·雷格尔成为我们的本周 PyDev!Bert 是金字塔网络框架的核心开发者。你可以在他的网站上查看他的经历,或者去查看他的 Github 简介,看看他最近在做什么项目。让我们花一些时间来更好地了解 Bert!

你能告诉我们一些关于你自己的情况吗?(兴趣爱好,学历等?):

哦,我不知道从哪里开始,但让我们试一试。我首先是一个极客,我热爱电子产品,这本身就是一个昂贵的爱好。总是有新玩具可以玩和买。我在先进技术大学学习计算机科学,并且众所周知我也花了很多时间来构建基于硬件的项目。在第一机器人学上花了很多时间,先是在 HS,然后在大学期间指导 HS 的学生。最近,我唯一能玩的硬件是家庭自动化,安装新的开关和传感器让我的懒惰更加懒惰!

我的其他主要爱好都有共同点,它们都很昂贵:摄影和汽车。我有点像一个业余摄影师,我总是在寻找新的镜头或者寻找新的想法来拍摄一些新的令人兴奋的东西。我的下一个目标是做一些天体摄影,我希望得到一个漂亮的大光圈的宽镜头。我住在科罗拉多州,所以有很多美丽的地方可以拍照。我开一辆斯巴鲁 WRX,我绝对喜欢兜风。一直在关注我的车的一些升级,但到目前为止,她仍然是股票。不过,我喜欢出去开车绕着山转,这和摄影是相辅相成的。

最后但同样重要的是,最近我开始制作自己的酸奶面包。没有什么比一个新鲜出炉的面包加一点黄油更好的了。这是我最新的爱好,也是几乎不花钱的爱好。我可以做更健康的面包,与朋友和家人分享,而且只需几分钱!我在一家名为 Crunch 的小公司工作,我的几个同事也是面包师,这让我们可以分享如何改进面包的技巧和想法。

我真的应该更新我的网站来包括这个,但是从另一方面来说,你可以在那里找到我的一些旧项目!

你为什么开始使用 Python?

我在大学的时候接触到了 Python,当时(2008 年)我并没有想太多,只不过是在将一些想法转化为 C/C++之前快速建立原型的一种方法。那时我是 C++的忠实支持者,并且主要在后台工作,这是一个非常自然的选择。用 C++编写应用程序并在 FreeBSD 上运行。

直到我开始我的第一份编程工作,我们必须快速编写一个新的服务器组件,我才开始首先使用 Python 来交付项目。在快速原型化之后,我能够证明 Python 将为我们提供所需的速度和吞吐量,同时减轻我们所担心的一些开发问题。随着时间的推移,仍然有我用 C++编写的组件,但是由于开发速度的原因,我们服务的很大一部分最终用 Python 编写。

对于个人使用,我总是用 PHP 编写我的网站,因为它总是可用且易于使用,但我从来没有真正喜欢使用任何为 PHP 构建的框架。所有这些在当时都是全新的,感觉难以置信的沉重,因为我在工作中使用了更多的 Python,这变得越来越混乱,什么时候我需要使用制表符,什么时候我需要使用花括号?从一种编程语言到另一种编程语言的上下文切换总是需要一两分钟,所以我开始查看 Django、Flask、Pylons、Pyramid、Google App Engine 和其他语言。我最终选择了 Pyramid,因为它很简单,而且它允许我选择我想要使用的组件。我不再是 WebOb 的维护者,最近成为了 Pylons 项目的核心贡献者。

你还知道哪些编程语言,你最喜欢哪一种?

这将是一个令人难以置信的长列表,所以让我们使用我广泛使用的列表,而不仅仅是用于某个玩具项目。正如已经提到的,我从 C/C++开始,这是我 12 岁时从一本 C++傻瓜书上学到的第一门语言,从那时起,我已经尝试了所有的语言,但 PHP 对我来说是相当大的一段时间。在高中和大学期间,当然会用到 Java,尽管它仍然是我最不喜欢的语言,但我已经在一些 Android 项目中广泛使用了它。我做过一个 Objective C 的项目,使用了一点 Swift,主要是做安全审计,所以我不确定它是否真的算广泛——目前我最常用的两种语言是 Python 和 JavaScript(或 Typescript,转换成 JavaScript)。ES6/ES7(Babel 的叫法)在各种项目中被大量使用。

然而,Python 无疑已经成为我最喜欢的编程语言。它的功能多得令人难以置信,尽管它不是迄今为止最快的语言,但它是最灵活的语言之一,我可以体会到它让我的生活变得多么容易。Python 中有我希望看到的变化吗?绝对的。有缺少的部分吗?当然可以。与此同时,我不确定还有哪种语言能让我像目前使用 Python 一样喜欢。我试过 Golang,但它不适合我。Rust 非常接近,但它感觉太像 C/C++,并且需要比我认为我正在做的事情所需要的更多的思考。

你现在在做什么项目?

工作之外,目前只是一堆开源。当我写这篇文章的时候,我正在为 PloneConf 准备一个演讲,在那里我将谈论接管深受喜爱的项目的维护,特别是 WebOb,它是一个 Python WSGI/HTTP 请求/响应库,由 Ian Bicking 编写,现在由我领导的 Pylons 项目维护。

Pylons 项目是一群维护一堆不同软件的人,主要是为 HTTP web。金字塔式的 web 框架,WebOb 作为其基础的 WSGI/HTTP 请求/响应库,用于测试 WSGI 应用程序的 webtest,表单生成,纯 HTTP web 服务器等等。我们没有很多人,所以有很多工作要做。发布现有软件的新版本,接受/审查补丁,以比问题继续产生更快的速度减少问题数量!

还有许多未完成的项目,我的 Github 是一个令人肃然起敬的墓地,里面有我已经开始但从未完成的项目。伟大的抱负,只是发现如果我为自己做事,一旦我发现了困难的部分,一旦我“解决了”问题,完成一个项目就没有那么有趣了,所以我会去做下一个项目。我总是学习一些新的东西,只是觉得糟糕的是,大多数都是半成品代码,没有人能真正从中受益。

哪些 Python 库是你最喜欢的(核心或第三方)

我相信它是从第三方开始的,但现在已经融入到每一个 Python 安装中(除非你是在那些特殊的 Linux 发行版中,把它剥离出来,使它成为一个独立的可安装程序),那就是虚拟环境工具 venv 或 virtualenv。这使得安装不同库的不同环境变得更加简单。能够分离出我所有不同的项目,而不必在全球范围内安装,这是一个惊人的!C/C++让这变得更加困难,尤其是如果你需要包含链接器标志和各种有趣的东西,而 pkg-config 和 friends 只能帮你做到这一步。其他语言也有类似的系统,但这是迄今为止我最喜欢使用 Python 的部分。

你还有什么想说的吗?

我们一直在寻找新的开发者加入我们的塔项目,如果你正在寻找指导你的人,请联系我们,我们会尽力而为。今年,我们和艾拉一起度过了一个绝对精彩的谷歌代码之夏,我很乐意帮助介绍更多的新人,不仅仅是 Pylons 项目,而是整个开源项目。

感谢您接受采访!

本周 PyDev:Bhaskar chaud hary

原文:https://www.blog.pythonlibrary.org/2014/12/22/pydev-of-the-week-bhaskar-chaudhary/

Bhaskar Chaudhary 是本周的 PyDev。他是 Packt Publishing 的作者 Tkinter GUI 应用程序开发高手。你可以在这里阅读我对《T2》这本书的评论。让我们花些时间来了解 Chaudhary 先生!

bhaskar

能简单介绍一下自己吗(爱好、学历等):

作为一个新生儿子的父亲,我是一名前银行家,后成为科技企业家,对编程、电子和音乐有着浓厚的兴趣。

我拥有金融硕士学位。

我在不同领域有大约 10 年的编程经验,比如服务器端编程、网络工作、游戏开发、android 应用程序开发以及最近的嵌入式开发。

我热爱教学。我主持研讨会,激发学生和青少年对科学技术的兴趣。我也是人民变革的创始人和受托人,这是一个非营利组织,在印度超过 15 所学校和大学与青年合作。

我受过印度古典打击乐器 Tabla 的专业训练。我是一个自学的业余吉他和小提琴手。我喜欢玩电子产品-主要是在空闲时间做一些有趣的 DIY 电子项目。

你为什么开始使用 Python?

Python 作为一种技能有着广泛的应用。如果你了解 Python, 你可以瞄准广泛的编程任务,从编写 小型 shell 脚本,开发大型 web 应用程序,处理 数字信号,将其应用于科学研究,开发 硬件接口等等,不胜枚举。我不知道任何其他的 编程语言比 Python 有更广泛的跨学科吸引力 ,我不能不学习这个一体化的 工具。

由于之前曾使用过 C、PHP 和 Java,Python 是一种直观的 语言。当我开始阅读用 Python 写的代码时,我被 Python 中的 几行 代码所能完成的事情迷住了。那是一见钟情。

庞大的标准库和充满活力的第三方库生态系统 让它变得更加不可抗拒。在其之上, Python 提供了 ctypes 与 dll 中的函数进行交互,或者共享用其他编程语言编写的 库。这足以让 5 年前的事情重回正轨。我和 python 的罗曼史从那以后就一直延续着

Python 为我提供了最好的面向对象和功能工具 。像数据理解、 生成器、使用属性、装饰符、描述符、强大的 迭代机制等小特性提供了简洁但同样具有代码表现力的工具。

你还知道哪些编程语言,你最喜欢哪一种? 我对 C、C++、Java、Javascript、PHP 和 Ruby 的掌握程度中等。作为一名自由职业者,我必须接触最新的技术,这意味着我需要使用各种各样的技术。Python 仍然是我最喜欢的语言。如果能用 Python 来做,那是我的首选。

你现在在做什么项目?

我目前正在为一个私人客户进行一个基于 Raspberry pi 的印度铁路项目。我的工作包括为最终用户实现界面设计。这主要涉及到 Python(pyqt)的使用。

此外,我是一个团队的成员,该团队正在开发一个网上商店,将在印度推出一款不对外公开的产品。

在业余时间,我正在学习基于 Arduino 和 Raspberry pi 的嵌入式编程。我也在研究开源硬件的新兴领域。作为学习的一部分,我有兴趣参与一些基于开源硬件的项目。

哪些 Python 库是你最喜欢的(核心或第三方)?

从标准 详尽列表中挑选出几个模块真的很难。

我经常使用的一些核心模块有:sys、os、io、venv、math、threading、itertools、re、random、string、datetime、calendar、tkinter、ctypes、collections、unittest、doctest、itertools、urllib 等等。

我常用的一些第三方库包括 PyQt、PIL、Django、SciPy、OpenCV、PyQt、Matplotlib、SQLAlchemy、Twisted、SymPy。我最近开始使用 pyserial 模块进行开发板和计算机之间的所有串行通信。

我也听说过关于“鼻子”的好消息——我打算不久后去看看它。

我在这里只提到了一些名字。然而,考虑到围绕 Python 的动态社区参与,我经常查看 Python 包索引,寻找在给定情况下可能满足我需求的新模块的更新和发布。Python 包索引中的模块涵盖了从太空探索到海洋学等各种学科。

谢谢!

前一周的 PyDevs

  • 蒂姆·罗伯茨
  • 汤姆·克里斯蒂
  • 史蒂夫·霍尔登
  • 卡尔查看
  • 迈克尔·赫尔曼
  • 布莱恩·柯廷
  • 卢西亚诺·拉马拉
  • 沃纳·布鲁欣
  • 浸信会二次方阵
  • 本·劳什

本周 PyDev:鲍勃·贝尔德博斯

原文:https://www.blog.pythonlibrary.org/2019/12/02/pydev-of-the-week-bob-belderbos/

本周我们欢迎鲍勃·贝尔德博斯(@贝尔德博斯 )成为我们本周的 PyDev!鲍勃是 PyBites 的联合创始人。鲍勃也为真正的蟒蛇做出了贡献,他是一名会说话的蟒蛇驯兽师。你可以通过查看 Bob 的网站或访问他的 Github 简介来了解更多关于 Bob 的信息。让我们花一些宝贵的时间来更好地了解鲍勃!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名软件开发人员,目前在甲骨文全球建筑工程集团工作。但我更出名的身份可能是 PyBites 的联合创始人,这是一个通过代码挑战掌握 Python 的社区。

我有商业经济学背景。2004 年完成学业后,我从荷兰移民到西班牙,开始在 IT 行业工作。我对编程很感兴趣。我自学了网页设计和编码,并开始了我最大的爱好:将无聊的事情自动化,让别人的生活变得更容易。

不编码的时候,我喜欢和家人(两个孩子的父亲)呆在一起,锻炼身体,看书,并且(如果有一天时间允许的话)喜欢重新学习绘画和意大利语🙂

你为什么开始使用 Python?

回到太阳微系统公司,我建立了一套支持工具来诊断服务器故障。我从 shell 脚本转向 Perl,但是它很快变成了维护的噩梦。输入 Python。在习惯了所需的缩进后,我爱上了 Python。我惊讶地发现,作为一名开发人员,这让我多么开心。真的引起了我的共鸣)。

从那以后,我再也没有回头。即使我愿意,现在有了 PyBites,认真投资其他语言就更难了(后面会有更多)。

你还知道哪些编程语言,你最喜欢哪一种?

我开始了我的软件之旅,用 PHP 和 MySQL 建立网站。我自学了很好的 HTML 和 CSS 基础,这让我受益至今。

作为一名 web 开发人员,了解 JavaScript 很重要,它为大多数 web 提供了动力!它肯定不是 Python,但是我用得越多,我就越喜欢这种语言。最后,几年前我学了一些 Java,但是除了写一个 Android 游戏之外,我没有找到一个用例。我很幸运能够用 Python 来完成这些天我几乎所有的工作,它是我最喜欢的编程语言。

你现在在做什么项目?

我几乎所有的空闲时间都花在了 PyBites 上,尤其是我们的 CodeChalleng.es 平台。我们最近推出了许多令人兴奋的功能:学习路径新手咬(我们的练习称为)和 flake8/black

该平台是使用 Django 构建的,它使用 AWS Lambda 来执行代码。你可以在这里听我说栈

除了平台开发,还有实际的咬练习(目前 229)。我喜欢添加新成员(我自己或与我们的 Bite 作者一起工作),并帮助人们编写代码。

总之,我们现在有了一个伟大的生态系统,它允许我们每天教授(和学习)更多的 Python。这是非常令人满意的!

PyBites 的起源故事是什么?

朱利安和我,经过多年的友谊和集思广益,有一天真的说:如果我们想产生影响,我们需要开始某种项目,让我们自己去那里。

主题变成了 Python :我想提高自己的技能,Julian 想从头开始学习 Python 编程。这种(初始)技能水平的差异给它增加了一个很好的动力。

我们开始了我们的博客,在那里我们分享每周学到的东西。正如我们从中学到的复合效应:为了增加你成功的机会,找一个成功的伙伴,一个在你巩固新习惯的同时回报他人帮助的人——这对我们非常有用!

有一点对我们来说很突出:要学习编码,你需要写大量的代码。大约在同一时间,我们听说了一个有趣的实验诺亚·卡根正在做:咖啡挑战。这导致了我们的博客代码挑战,最终导致了我们的 #100DaysOfCode 旅程 ( 和课程)和我们的 CodeChalleng.es 平台

在这个项目中,你遇到了什么样的挑战?

我们必须学会如何平衡工作和家庭生活。在全职工作的同时做这件事意味着巨大的个人时间投资。你必须组织起来,考虑规模,委派任务,以免不知所措/筋疲力尽。

这就引出了我们面临的第二个挑战:学习营销/商业方面的知识。建造它,他们就会来...不完全是!一个巨大的挑战是建立获得反馈和快速迭代(kaizen)的机制,以制造人们真正想要/需要的产品。

哪些 Python 库是你最喜欢的(核心或第三方)?

在标准库中有很多我在工作中或我们的平台上使用的 gem。部分收藏夹:收藏(named tuple/default dict/Counter)ITER toolsredatetime / 日历

外部模块:pypi 上有 20 万个包,我几乎没用过冰山一角。然而还有一些 goto 库: requestsfeedparserBeautifulSoupdateutilpandasDjango 当然。

当我们学到一些很酷的东西时,我们会试着一口或几口把它包起来,和/或在 Twitter 上发布提示,查看我们的收藏,并在这里添加你自己的。

你还有什么想说的吗?

谢谢你邀请我。我喜欢阅读这些采访,是什么打动了其他开发人员,这真的很鼓舞人心。继续努力吧!

如果没有行动号召 : 就像杰克·范德普拉斯说的:不要开始学习 Python ,我们就不会是皮比特人。选择一个你感兴趣的问题,学会用 Python 解决。-访问我们的网站 CodeChalleng.es 获取编码!

鲍勃,谢谢你接受采访!

本周 PyDev:Bojan Miletic

原文:https://www.blog.pythonlibrary.org/2021/02/08/pydev-of-the-week-bojan-miletic/

本周我们欢迎 Bojan Miletic 成为我们的本周 PyDev!Bojan 是一名企业家,在 EuroPython 上发表了关于 Django 测试的演讲。如果你想了解更多关于 Bojan 的信息,你可以通过 LinkedIn 与他联系。

让我们花些时间去更好地了解他吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

目前,我最大的爱好是学习法语、俄语和哲学。我非常幸运,我设法找到了非常热情的老师。

很多人低估了软技能的影响,但我在过去十年中学到的一些经验是,沟通技能远比技术技能重要。在一天结束的时候,我们和其他人一起为人们构建软件。

在软件工程之外的领域进行自我教育让我保持谦逊,开阔了我的视野,也让我能够从各种不同的角度来处理问题。

至于编程本身,我在 2002 年左右开始使用 Dreamweaver 和魔兽争霸 3 中的自定义地图(不确定这算不算编程),我一直用它来娱乐和赚取一些零花钱。

我在大学期间真的很谦卑,我们复习了汇编语言、C、C++、Java 和 C#。

你为什么开始使用 Python?

在 PHP 和 Javascript 的漫长项目之后,我很幸运能够开始我的公司。在那次冒险之后,我想使用一些漂亮的东西,当时我的主要候选人是 Python 或 Ruby。我选择了 Python,从此没有回头。

你还知道哪些编程语言,你最喜欢哪一种?

在过去的几年里,我几乎只使用 Python,并致力于提高我的管理和谈判技巧。
说实话,我盲目地爱上了 Python,还没有对其他语言做过那么多实验。(我以前对 Java 和 C++的专业知识目前还很少,不常用)

你现在在做什么项目?

目前,我在我的公司softer ric从事物联网和金融科技项目。我真的很兴奋,但大量的 NDA 阻止我进入更多的细节。
我非常感谢我才华横溢的队友,以及他们给项目带来的不同视角。

哪些 Python 库是你最喜欢的(核心或第三方)?

FastAPI。对我来说,这是一个真正的游戏改变者。它使得 API 的编写非常快速,易于测试,代码非常优雅。甚至我的前端开发人员也很喜欢它,因为它很容易集成。

你还有什么想说的吗?

我喜欢和人们谈论编程和生活。请随时在 LinkedIn 与我联系,或者在日历的与我约一次虚拟咖啡。

Bojan,谢谢你接受采访!

本周 PyDev:布雷特·坎农

原文:https://www.blog.pythonlibrary.org/2016/02/29/pydev-of-the-week-brett-cannon/

本周,我们欢迎布雷特·卡农(@布雷特斯基)成为我们本周的 PyDev。他是 Python 核心开发者(从 2003 年开始!)和一个蟒蛇博主。布雷特已经在 PyCon 上做了几年的演讲人。你可以在 YouTube 上查看他的一些演讲(例如如何让你的代码兼容 Python 2/3)。我很确定我自己已经看过一两次他的演讲,而且总是非常好。让我们花一些时间来更好地了解 Brett。

brett_cannon

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我叫布雷特·坎农,和我的妻子安德里亚以及我们的猫住在加拿大温哥华。我目前在微软 Azure 的数据+分析小组的 Python 团队工作。

就教育而言,我拥有加州大学伯克利分校的哲学学士学位,加州大学圣路易斯奥比斯波分校的计算机科学硕士学位,以及不列颠哥伦比亚大学的计算机科学博士学位(在那里我遇到了我的妻子)。实际上,我从加州大学毕业后的那个月就加入了 python-dev 邮件列表,并在我的学士和硕士休学期间成为了 python 开发团队的一员,因此 Python 社区帮助我度过了研究生院。🙂

从爱好上来说,对 Python 的贡献可能是最大的(没错,我有上瘾问题:)。我也喜欢和我的妻子一起看电影和选择电视节目(骄傲的有线电视-从不家庭)。当温哥华的天气允许时,我喜欢散步来清醒头脑(最好是在大自然中,但也很高兴只是在我的邻居周围走走)。否则我只是在网上看了很多。

你为什么开始使用 Python?

当我在加州大学伯克利分校主修哲学的时候,我原本想同时主修哲学和计算机科学(单位限额问题阻止了我)。既然我不能完成双学位,我想我会尽可能多的学习计算机科学课程。当时,Cal 的 CS 入门课程有一个入学考试,我想我应该提前尽可能多地学习编程,以增加进入该课程的机会;这是在 2000 年的秋天。我知道面向对象编程是我应该学习的东西,但是我没有任何这方面的背景知识,因为我只知道 c 语言

当我去寻找一门 OO 语言来学习时,我遇到了 Perl 和 Python。我不断读到有人说 Perl 应该是你学习的第六种语言,而人们则说 Python 是用来教人编程的。这使得学习哪种语言的决定变得显而易见,从那以后我再也没有回头看。

你还知道哪些编程语言,你最喜欢哪一种?
我其实是个语言迷,所以这个清单会很长,取决于你对“知道”的定义🙂。如果你只限于回答我觉得舒服的技术问题,我会说 C、C++、Go、Java、Dart、JavaScript 和 TypeScript。在这个列表之外,我必须把 Dart 或 TypeScript 列为我最喜欢。

你现在在做什么项目?

就工作方面来说,我正在和同事迪诺·维兰一起制作《T2》。这是一个实验,看看在 CPython 中添加 JIT 是否值得(早期,但希望我们的谈话将被 PyCon US 2016 接受,这样我们就可以在那里进行更新)。我也帮助我们的云托管 Jupyter 笔记本服务

就 Python 本身而言,最大的一个就是 Python 向 GitHub 的迁移。详细情况可以在我的博客上阅读。今年我也有一些针对 Python 的编程目标,但是我们将会看到 GitHub 迁移是否会耗尽我所有的 Python 时间。

哪些 Python 库是你最喜欢的(核心或第三方)?

我要作弊,说 PyPI(读作“Pie-Pea-Eye”而不是“pip-ee”,或者“Pie-Pea”,或者“Pie-Pie”;你也可以用它原来的名字来称呼它,奶酪店)。拥有一个单一的存储库,每个人都可以把他们的代码放在那里,这对社区的发展非常有益。我仍然记得那一天,我羡慕地看着 Perl 社区的 CPAN。现在情况明显不同了。🙂

作为一门编程语言,你认为 Python 将何去何从?
与过去 25 年一样;向前向上。🙂

你对当前的 Python 程序员市场有什么看法?

对我来说,这似乎是健康的。我在 PyCon US 2015 之后的求职进展顺利,所以至少我的个人经历是积极的。我认为 Python 被应用于如此多的不同领域非常有帮助,扩展了任何特定领域之外的潜在市场。

你还有什么想说的吗?

感谢 Python 社区如此神奇!我写了一篇博文,讲述我如何在开源中保持快乐,这在很大程度上归功于这个社区和其中的人们。

哦,还有用 Python 3。😉

谢谢!

本周 PyDev:布莱恩·柯廷

原文:https://www.blog.pythonlibrary.org/2014/11/10/pydev-of-the-week-brian-curtin/

本周,我们邀请布莱恩·科廷(@布莱恩 _ 科廷)作为我们本周的 PyDev。他是 Python 语言的核心开发者,也是 Python 软件基金会博客的主要编辑。让我们花些时间来更多地了解布莱恩。

briancurtin

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我来自芝加哥,后来去了匹兹堡外的大学学习计算机科学,回到芝加哥,最近搬到了圣安东尼奥。作为一名球迷、球员和裁判,棒球是我生活中相当重要的一部分。我参加过很多比赛,在大学期间都参加过,从 11 岁起就开始担任裁判,在过去的 6 年里我一直称之为大学比赛。当我不写代码或做棒球运动的时候,我会作为一名竞技举重运动员进行训练

你为什么开始使用 Python?

有趣的故事:我父亲是贝尔实验室的 UNIX 黑客,后来进入了金融领域,他在 90 年代末进入了 Python。他偶尔会收到图书出版商的技术评论请求,并在 1998 年或 1999 年收到了 Alan Gauld 的《使用 Python 学习编程》的提前版本。我做了一些需要惩罚的事情,所以我必须读这本书,在爸爸的笔记本电脑上运行一些代码,并就此写一两页报告,他将报告连同他的书面报告一起发回给出版商。他们给了他 200 美元,最后他给了我,我买了一个很棒的棒球棒。那本书是我第一次接触任何编程,所以我第一次接触 Python 在技术上是一种惩罚。多么大的惩罚。

至于我真正开始使用 Python 的原因,是在 2004 年,在一门大学课程的一部分中,Python 与 Prolog 和 Java 一起被用于不同类型的编程语言,所以我开始学习一些基础知识。第二年夏天,我进行了一次实习,涉及到用 web 前端将一堆 Excel 文件转换成数据库,因此我了解了 pywin32 的 win32com 包,并做了一堆其他文本处理。

你还知道哪些编程语言,你最喜欢哪一种?

我大学的大部分课程都是用 C++教的,然后我的第一份工作 出校门就是一个大的 C++环境。那份工作中有一些 C# GUI 工具,我开始使用它们,我真的很喜欢。

通过在 CPython 上工作,我写了一堆 C 语言,这是我最喜欢在 Python 后面使用的 ,我做的大部分 C 语言工作都是在 Windows 上完成的 。我仍然有种奇怪的冲动,想拿出我的 Windows 笔记本电脑,启动 Visual Studio 来破解 Win32 上的东西,就像我不久前做的一个小的 项目,让解释器编写它的 崩溃转储,用于事后调试。

你现在在做什么项目?

太多了,但我主要在做两件事。

在 Rackspace,我正与几个人合作开发 OpenStack SDK,这是一个旨在改善 OpenStack 云贡献者、供应商和消费者体验的新项目。现在这种局面有点支离破碎,我们希望一个新的尝试将允许我们建立一些对每个人来说都更容易建立的东西。在 https://github.com/stackforge/python-openstacksdk 完全是 Python 和 100%开放的,这是我第一次与其他公司合作做日常工作项目。

另一个是我很久以来就想坐下来做的项目,但我已经开始和停止了很多次,我终于为它腾出时间了。美国职业棒球大联盟的高级媒体集团提供了大量的比赛数据,如自 2008 年以来每一次投球的速度和坐标。我写了所有的 scraper 和 parser 的东西,把它们都扔进了一个数据库,现在我只是在摆弄这些数据,看看我能找到什么,然后在https://github.com/briancurtin/gd围绕这些数据开发一些工具。作为裁判,我真的很想看看我能从这些数据中得到什么。

哪些 Python 库是你最喜欢的(核心或第三方)?

我的大部分生活都是在标准图书馆里度过的。itertools 或者任何有 Raymond Hettinger 名字的东西都是我的最爱。像 configparser、argparse 和 unittest 这样的东西似乎是很多人向第三方寻求的,但它们对我来说都很好。在我心中有着永久位置的是 zipfile。我用它做一些事情,发现它不支持上下文管理器,所以这是我对标准库的第一个非文档贡献。不过,我想从那以后我就没用过它了。

我最近经常使用的一个第三方库是 sqlalchemy,用于我的棒球项目。它让事情变得简单多了,学习起来也很棒——我研究的所有东西都有很好的文档记录,这非常令人耳目一新。

感谢您的加入!

前一周的 PyDevs

  • 卢西亚诺·拉马拉
  • 沃纳·布鲁欣
  • 浸信会二次方阵
  • 本·劳什

本周 PyDev:布莱恩·e·格兰杰

原文:https://www.blog.pythonlibrary.org/2017/08/14/pydev-of-the-week-brian-e-granger/

本周,我们欢迎布莱恩·e·格兰杰( @ellisonbg )成为我们本周的 PyDev!Brian 是 IPython 笔记本的早期核心贡献者,现在领导着 Project Jupyter 笔记本团队。他还是加州理工州立大学物理学和数据科学的副教授。你也可以在 Github 查看他正在做什么项目。让我们花一些时间来更好地了解 Brian!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我要从有趣的事情开始。从高中开始,我就一直在弹吉他、游泳和冥想。遵守纪律很难,但如果没有这些事情的常规练习,我就无法生存。长时间(几十年)从事脑力劳动,比如编码,确实会对大脑造成压力,并影响到身体。我真的热爱编码,但是这些其他的事情是我在 45 岁时仍然高效编码的最大原因。

在某些方面,我看起来像一个非常传统的学者,拥有科罗拉多大学博尔德分校的理论物理学博士学位,其次是博士后,现在是加州理工圣路易斯奥比斯波分校物理系的终身教职。

一路走来,我开始构建开源软件,这慢慢占据了我的整个职业生涯。费尔南多·佩雷斯(IPython 的创造者)和我是研究生院的同学;我在 2005 年左右开始从事 IPython 的工作。费尔南多仍然是我最亲爱的朋友和最好的合作者。IPython/Jupyter 笔记本的构想来自于 2004 年与他的一次深夜冰淇淋讨论。直到 2011 年,我们才发运最初的 IPython 笔记本电脑。从那时起,我的主要研究重点一直是 Project Jupyter 和其他用于数据科学和科学计算的开源工具。

你为什么开始使用 Python?

我第一次用 Python 做博士后是在 2003 年。我的第一个 Python 程序使用了 VPython 来模拟和可视化交通流。我用 C++编写了一个早期版本的模拟程序,无法相信 Python 如何让我花更多的时间思考物理问题,而不是代码。在很短的时间内,我无法让自己继续用 C++进行科学工作。

你还知道哪些编程语言,你最喜欢哪一种?

我在 20 世纪 90 年代的物理研究中使用 Mathematica。在研究生院和博士后期间,我使用 C++。那时候,C++还是挺痛苦的。我不怀念这一点,但现代 C++实际上看起来相当不错。

Python 仍然是我最喜欢的语言,主要是因为它非常有趣,并且有一个令人惊叹的社区。

同时,这些天我在 TypeScript 中为 JupyterLab 做了很多前端开发。对于有许多参与者的大型项目来说,静态类型检查是革命性的。TypeScript 看起来很像 Python 3 的类型注释,我迫不及待地想开始使用带有静态类型检查的 Python。

你现在在做什么项目?

Jupyter 和 IPython 继续占据我的大部分时间。在这方面,我正与 JupyterLab 团队的其他成员一起努力工作,争取在今年夏天发布 JupyterLab 的第一个版本。

2016 年,Jake VanderPlas 和我启动了 Altair ,这是一个基于华盛顿大学杰夫·赫尔交互数据实验室的 Vega/Vega-Lite 的 Python 统计可视化包。虽然我花在 Altair 上的时间较少,但它和 Vega/Vega-Lite 是我们为 Jupyter 用户构建的整个数据生态系统的重要组成部分。

哪些 Python 库是你最喜欢的(核心或第三方)?

哇,有这么多。熊猫把 Python 带到了数据世界。我喜欢 Matt Rocklin 构建的库的 API 设计(Dask,multipledispatch,toolz)。尽管来自所有新的基于 JavaScript 的可视化库的良性竞争,Matplotlib 仍然是不可或缺的。

作为一门编程语言,你认为 Python 将何去何从?

用不了多久,我们都会编写静态类型检查的 Python 3 代码😉

你还有什么想说的吗?

非常感谢 Python 社区中的每个人,用户和开发者。能和你们一起工作是一种莫大的幸福!

非常感谢!

本周 PyDev:布莱恩·雷

原文:https://www.blog.pythonlibrary.org/2018/01/01/pydev-of-the-week-brian-ray/

本周我们欢迎布莱恩·雷成为我们的本周 PyDev!Brian 是 Pearson 的 Python 从零开始的生活课程的作者/演讲者。他是芝加哥 Python 用户组 ChiPy 的创始人和前任主席。让我们花一些时间来更好地了解 Brian!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

在追求自由艺术教育的同时,我开始从事计算机咨询工作。在那之前,我可以在家里用我的 IBM 个人电脑 JR 和 90 年代初捐赠给卡尔弗军事学院寄宿学校的苹果麦金塔电脑进行黑客攻击。在过去 22 年的编程生涯中,我将这些知识用于盈利,同时享受着丰硕的成果。作为业余爱好,我喜欢艺术、烹饪美食、芝加哥的家庭生活和旅行。

我在世界各地都吃过,尤其是在美国和亚洲。任何一天,我都可能带着我的笔记本电脑跨越国界,似乎总是发现自己回到了芝加哥,参加每月一次的芝加哥 Python 用户组(ChiPy)会议。我喜欢参加其他与 Python 相关的聚会,比如拜访 Don Sheu(和 PuPPy - Seattle 用户组),或者听听世界各地的 Python 爱好者的谈话。

你为什么开始使用 Python?

我开始使用 Python 生成 PostScript 代码,输入到大容量激光打印机中,并为芝加哥的一家直邮公司处理“大数据”(在它被称为“大数据”之前)。很快,我在芝加哥发现了一个非常小的 Python 黑客社区,包括克里斯·麦卡沃伊、伊恩·比金、约翰·亨特、阿德里安·霍洛瓦蒂、艾伦·施瓦茨、杰森·哈金斯、克里斯·韦伯等等...14 年前,我们成立了 ChiPy,芝加哥 Python 用户组。我继续在几乎所有事情上使用 Python。

你还知道哪些编程语言,你最喜欢哪一种?

我知道 C,C++,C#,Java,JavaScript,SQL,Ruby,R,Closure,groovy,whitespace,VB。我最喜欢的语言是 Python。我对 C++也印象深刻。

我在 PEP8 里做梦。

你现在在做什么项目?

我在德勤管理一个数据科学团队(主要使用 Python)。我正在做一些关于 NLP 和机器学习的开源项目。我刚刚完成了一个关于 Python 的视频系列。

我在芝加哥买了一家旅馆,并计划在亚洲开一家。如果你提到这个博客,我会给你打折,它叫做绿叶屋。我们也用这个空间来学习 Python 教程。

哪些 Python 库是你最喜欢的(核心或第三方)?

我总是开玩笑说“未来”是我最喜欢的模块,因此我的 Instagram 句柄“导入 _ 未来”

我用了很多科学计算模块,都是平常的嫌疑人:熊猫,numpy,sklearn,bokeh,gensim,Tensorflow,PyTorch,nltk。我也喜欢 django,flask,requests 等等。不是一个模块,但我对 Jupyter 的努力印象深刻。

我也喜欢很多核心库。许多不被看好,如 glob、csv、inspect、pdb、six...

作为当地 Python 用户组的主席,你学到的前三件事是什么?

1.没有免费的啤酒。我们的下一次会面将是我们有史以来最好的一次。这是一个简单、有趣、安全的地方,可以和所有层次的人分享!

你对那些想创建(或改善)自己团队的人有什么建议?

从小处着手。这不是门里有多少头的问题。质量重于数量。如果我和房间里的两个人开了一个会,他们离开的时候都觉得得到了什么,学到了什么,学到了什么,分享了什么,那么这是有史以来最好的一次会议。如果我开一个有 180 人参加的会议,你要尽力保证同样的质量。

你还有什么想说的吗?

Python 是一门很好的语言,目前它正因成为最受欢迎的语言而遭受损失。让 Python 如此有价值的重要因素是社区。为了忠实于我们的 Pythonic 根源,随着这种语言继续流行,我们需要不断强化社区的理念,社区提供:博学的导师、高质量的开源软件包、俱乐部的可用性、参与业务以及市场认可。支持您当地的用户组和 PSF。用 Python 给你的能力做好事。空白规则!

感谢您接受采访!

本周 PyDev:布莱恩·施拉德

原文:https://www.blog.pythonlibrary.org/2015/11/09/pydev-of-the-week-brian-schrader/

本周,我们欢迎布莱恩·施拉德(@索尼克罗克特曼)成为我们本周的 PyDev。布莱恩写了关于 Python 和其他各种感兴趣的主题的博客。你可以在他的 Github 账户上了解他参与了哪些开源项目。让我们花些时间更好地了解布莱恩。

brian_scrader

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我在大学开始编程,在 TI-84 计算器上。后来我上了一门 C 语言的编程课,这是我航天工程项目的必修部分,我对它的热爱远远超过了对航天的热爱。

我的第一个项目是建立网站(比如我的博客),以及各种为我做功课的程序。然后,在我大四的时候,我找到了一份工作,做一名开发企业应用程序的 web 开发人员。一年后,在一个开放的 micÂ之夜,我遇到了一个家伙,他帮我在斯克里普斯研究所找到了一份生物信息学程序员的工作。

除此之外,我弹吉他,为我的博客写作,在我的本地 Python 用户组中闲逛,在那里我从事太多的开源项目。

你为什么开始使用 Python?

我在大学,用 PHP 编程,一个朋友叫我用 Python 代替。我尝试了一下,很喜欢。比 PHP 好太多了。

你还知道哪些编程语言,你最喜欢哪一种?

我曾经尝试过许多其他语言,但是我有足够的信心宣称我“知道”的是 C、Objective-C、Java 和 Javascript。在所有这些中,我更喜欢 C 或 Javascript。一个是低级的,一个是高级的。

你现在在做什么项目?

现在我有几个项目正在进行中。第一个是符合 HTCPCP 协议的自动咖啡壶。这主要是一个笑话,但这就是它的乐趣所在。

第二个是桌面 RPG 的 webapp(即 D & D)。我们的目标是将游戏带入 21 世纪,而不去除任何经典元素,如掷骰子。

哪些 Python 库是你最喜欢的(核心或第三方)?

我真的很喜欢烧瓶和请求。它们都使得编写强大的、富于表现力的代码变得非常容易。

你还有什么想说的吗?

学习编程可能会让人害怕。从一个简单的项目开始,比如建立一个网站。尽可能少地使用工具,这样您就可以了解它实际上是如何工作。哦,不要害怕命令行,它是你拥有的最好的工具。

我想说的另一件事是:开一个博客。程序员是以思考为生的人,写作帮助你思考。每当你遇到某个问题时,写一段解释这个问题的文字,然后把它贴出来,当你有了解决方案时,也把它贴出来。

非常感谢!

一周的最后 10 个 PyDevs

本周 PyDev:布莱恩·斯金

原文:https://www.blog.pythonlibrary.org/2022/05/23/pydev-of-the-week-brian-skinn/

本周我们欢迎布莱恩·斯金( @btskinn ) 成为我们本周的 PyDev!Brian 在 python 新闻/个人博客上维护来自 Python 导入日志的RSS 提要。Brian 在 Python 社区也很活跃。

让我们花些时间来更好地了解 Brian!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

当然可以!我的背景是化学工程——我拥有凯斯西储大学的学士学位和麻省理工学院的博士学位。在过去的十年里,我一直在俄亥俄州代顿地区的一家小企业工作,做 R&D 的电化学过程,尽管我最近在 OpenTeams 以开发人员和服务合作伙伴关系职位的形式跳到了 Python 世界。我真的很兴奋能够开始更直接地使用 Python 和开源软件。

为了好玩,我喜欢读小说,玩音乐和棋盘游戏,并在我的副业项目上做黑客。我是《德累斯顿档案》的忠实粉丝,刚刚读完斯卡齐的开居保护协会,并且一直在研究简·奥斯汀的小说。我演奏单簧管、钢琴和吉他,并在男子四重奏中唱男高音。

你为什么开始使用 Python?

从高中开始,我就一直在用各种语言编程(TI-BASIC,一点 C++和 Java,还有很多 Excel VBA),在研究生院的时候,我还对量子化学产生了兴趣。大约在 2014 年,我决定尝试实施一种我在书上读到的量子化学方法。然而,我只真正了解 Excel VBA 足以建立一些实质性的东西,所以这就是我开始。它...非常可怕。从技术上来说,VBA 可以进行面向对象编程,但这很难,也很难。在大约一千行代码之后,我意识到我必须找到别的东西。我在使用 Linux 的过程中已经知道了 Python,所以我对它进行了一些研究,认为它似乎是一个很有前途的选择,并开始学习...并且从未回头。

你还知道哪些编程语言,你最喜欢哪一种?

各种风格的 VBA 绝对是我最熟悉的另一种语言,它在我职业生涯的工程部分非常有价值——将 Excel、Word 和 Outlook 中所有枯燥的东西自动化极大地提高了工作效率。除此之外,我只知道足够多的 Javascript、Java 和 C 是危险的,但不会用它们构建任何实质性的东西。

你现在在做什么项目?

在开源领域,我最积极的工作是开发用于检查/操作 Sphinx objects.inv 文件的工具。短期来看,CLI 有一些方面需要改进;从中期来看,我想研究多重处理,以加速内部的一些关键点;从长远来看,我需要改进异常模型,我想尝试改善核心库存 API 的用户体验。

至于其他项目,我刚刚砍掉了第一版的 jupyter-tempvars,这是一个 jupyter 扩展,提供了简单的临时变量管理。我对此做了一些调整,对底层的 tempvars 库做了一些更新,我想(a)为 conda-forge 打包它,( b)为 JupyterLab 改编它。我还想彻底修改 pent 的解析器构造模型,它从长格式字符串文本中提取结构化数据(例如,数字数组)。

哪些 Python 库是你最喜欢的(核心或第三方)?

我经常使用标准库中的 pathlib 和 argparse。我最近发现了 pprint(漂亮的印刷)和 calendar,它们非常有用。itertools(以及第三方 more-itertools)非常适合编写简洁、易读、实用的代码。

就第三方包而言,我的大多数项目都使用 attrs ,甚至在引入 dataclasses 之后——我喜欢转换、验证等的灵活性。特色。我最近选了 beautiful soup(beautiful soup 4)和 sqlalchemy ,我真的很喜欢它们。科学栈( numpyscipy熊猫等。)当然是关键。

对于工具,我大量使用了 Sphinxpytesttoxcoverageflake8 ,并且我最近开始在我的项目中添加预提交。我使用 setuptools 构建包。

你的 pylogging feed 是怎么来的,进展如何?

我以前写过一些博客,在用 Python 写了几年代码后,重新开始关注我用 Python 做的事情是有意义的。到目前为止,博客的目标主要分为两部分:( I)在相对较高的层次上描述我一直在做的事情,以及(ii)详细描述具体的技术元素,试图解释事情是如何工作的。我也有一个早期的暗示,我可能想从化学工程转向 Python,并且知道博客的投资组合方面可能是有益的。博客在过去的一年里一直萎靡不振——另外,不幸的是,因为我从事代码工作的空闲时间非常少,我想专注于推进项目,而不是写博客。我希望在不久的将来唤醒它。

你还有什么想说的吗?

If you've ever thought about contributing to an open-source project, but haven't done it yet -- go for it! It's definitely intimidating at first, because there's a lot to learn about the tooling, the processes, the etiquette, and so on. But, most maintainers are very welcoming to new contributors, and are happy to guide them through everything. I would recommend looking into making your first contributions to small- to medium-sized projects, though, and ones with at least a measure of visibility (a dozen or more Github stars, say). This will hopefully guide you toward projects with engaged maintainer(s) that will have bandwidth to engage with you in some detail. (I will note, a larger project may still work for this; you can monitor the flow of issues/PRs on the repo, and if new issues and PRs are getting steady engagement from maintainers, then it might work well.) Be aware that your first contribution doesn't necessarily need to involve code -- clarifying something in the documentation, fixing a typo in the README or contributor's guide, and other buffs to a project are quite valuable, too!

Thanks for doing the interview, Brian!

本周 PyDev:陈伶俐·劳格尔

原文:https://www.blog.pythonlibrary.org/2016/10/24/pydev-of-the-week-brianna-laugher/

本周,我们欢迎陈伶俐·劳格成为本周的 PyDev!陈伶俐是澳大利亚皮拉第斯分会的组织者。她有一个非常有趣的网站展示她的作品。你可能也会发现她的 Github 简介很有启发性。让我们花些时间来更好地了解我们的同胞皮托尼斯塔!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名软件开发人员,住在澳大利亚的墨尔本。我喜欢骑自行车,语言学,自由软件,女权主义,桌游,电影节。我发现我需要注意定期锻炼,否则把所有时间都花在电脑上会让我疼痛和脾气暴躁——过去几年我做铁人三项,现在是瑜伽和普拉提。

我是一个相当活跃的人,所以从大学开始,我就参与了一些线上和线下的技术社区,并有幸通过参加会议看到了世界上许多城市。

当我还在上高中的时候,万维网就开始流行起来了。我自学了基本的 HTML 和 CSS,所以我可以制作 X-Files 粉丝网站。我在高中上过编程课,但我对数学有一些浪漫的想法。在大学里,我获得了汉语和数学的学士学位,并且用一些语言学和计算机科学填补了空白。(还有很多没有学分的维基百科编辑。)5 年来,我慢慢意识到编程比数学更好。当我毕业时,我不知道该做什么,所以我开始了一个荣誉学年,但在第一学期结束时,我惊慌失措地拖延,一门课不及格,然后离开了。

我非常幸运地从一个朋友那里听说了一份工作,在一家小公司做基于规则的机器翻译研发。(这大概是现在比较古雅的想法。)我花了几年时间使用 Prolog 来编写 Tagalog 语言的语法。之后,我在气象局工作,研究自然语言生成。我用 Python 自动把天气相关的统计数据转换成简短的英文描述。

该项目于 2014 年结束。我学习西班牙语已经有几年了,我渴望将其付诸实践,所以我参加了一个名为“Auxiliares de Conversacià n”的项目,在这个项目中,以英语为母语的人可以在西班牙的学校里担任英语教师的助理,并领取薪水。这是一次奇妙的经历,我喜欢在短短两个小时的飞行中“飞越”布鲁塞尔的能力!我在那里待了 10 个月。

现在我在星球创新工作,这是一家专注于产品开发和商业化的咨询公司。我正在使用 Python 开发与医疗设备对话的网络软件。

你为什么开始使用 Python?

我第一次接触 Python 是在 1999 年在 T2 的国家计算机科学学校,当时我们试图在一周内实现 Google。当时,大多数指令都在我的脑海里,但我一直把这种简单、易读、有空格的语言的美好记忆藏在脑子里。在我们主要编写 Prolog 的机器翻译工作中,我很高兴有借口使用 Python 做一些“真实”的事情——我编写了一些小 Python 脚本来自动化我们的测试套件和分析我们的语料库。

你还知道哪些编程语言,你最喜欢哪一种?

如果需要的话,我或许可以恢复我的序言技能。我偶尔会在 C++和 PHP 代码中发现错误,但我不会写出来。我正在一点一点地学习 bash against my will 和 JavaScript。每隔一次长途飞行,我都会多接触一点铁锈。

?-favorite _ language(brianna,prolog)。

假的。

?-favorite _ Language(布里安娜,语言)。

语言= python。

在过去七年左右的时间里,我很幸运地将编写 Python 作为我的日常工作。我还没厌倦呢!我很高兴有这么少的样板文件,只要稍加小心就可以在未来很长一段时间内保持可读性。我也喜欢这个社区强调欢迎新手。

你现在在做什么项目?

今年早些时候,我成立了皮拉迪斯墨尔本 T2 集团,该集团正在慢慢站稳脚跟。

我是八月份举行的【2016 年 T2 PyCon 的组织团队的一员。我也将成为 2017 年澳大利亚 PyCon 团队的一员。

在过去的几年里,我为测试运行程序/测试库贡献了一点。我喜欢使用它,为它做出贡献的人都是超级明星!对于这种规模的开源项目,它有一个非常活跃的社区。我打算很快开发一个 pytest 插件,我们希望在工作中使用它。插件是参与 pytest 的一个很好的方式,因为它们风险很低,而且运行方式与 pytest 内部非常相似。Pytest 基本上是一路向下的插件。

哪些 Python 库是你最喜欢的(核心或第三方)?

Pytest!在 pytest 中编写测试,我感到非常高兴。感觉就是写 Python。而 unittest 显然没有。通过用更少的代码行编写更多的测试,保持测试依赖关系的自包含性(这将指导您编写更多的可测试代码),以及在测试失败时给出更有帮助的输出,它可以帮助您提高工作效率。

我是 Jupyter/IPython 笔记本的超级粉丝。他们的工具集正以惊人的速度增长。“展示你的作品”的真正不可思议的工具。

我必须说我真的很喜欢 winpdb ,一个跨平台的 GUI 调试器。我认为它现在已经停止开发了,这很遗憾,但是你可以放入一个文件,甚至理论上可以附加到远程进程。

面料对于轻薄的贝壳类的东西超级好看。我真的不知道当子过程使用起来如此痛苦时,Python 是如何获得脚本语言的声誉的。但是布料可以让疼痛消失!

在 stdlib 中,我将继续讨论 namedtuple,直到每个人都使用它们!!!!

也请使用 str.format()。

你对当前的 Python 程序员市场有什么看法?

至少在我看来,在澳大利亚,许多人在各种工作中使用 Python,但他们可能不认为自己是“Python 程序员”,或者在一个自认为是“Python 商店”的地方工作。因此,Python 技能可能被视为对招聘经理有用,但它们可能更像是糖衣,而不是蛋糕。当然,周围似乎没有多少“Python 商店”会被认为是创业场景的一部分。或者也许他们只是对此保持沉默,主要通过网络招聘,而不是公开招聘?如果可能的话,我肯定会建议那些想要成为职业 PyCon 爱好者的人在当地聚会和附近的 PyCon 上建立联系。

感谢您接受采访!

本周派德夫:布鲁斯·埃凯尔

原文:https://www.blog.pythonlibrary.org/2017/11/06/pydev-of-the-week-bruce-eckel/

本周,我们欢迎布鲁斯·埃凯尔成为本周的 PyDev!Bruce 是几本书的作者,包括《用 Java 思考》、《用 C++思考》和《用 Python 思考》。他还有一个编程博客,非常值得一看。让我们花些时间更好地了解布鲁斯!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我父亲是我的第一个雇主。他建造定制的房子,让我在建筑工地做苦工。他的首席木匠告诉我,这是“所以我不想进入建筑。”

这是一个非常有效的策略。我上了 8 年的大学,最终获得了应用物理学士学位和计算机工程硕士学位。主要是因为找到一份固定工作的想法听起来像坐牢。

我对工业时代管理的强加结构感到恼火,我的目标是逃离那个世界,几年后我做到了,成为一名独立作家、培训师和顾问。从那以后我一直这么做。大约十年前,我开始重新审视为公司工作的整个想法,并在《重塑商业》中写了相当广泛的内容。简而言之,我认为我们正处于工作新时代的尖端,我正在努力帮助实现这一点。

我住在科罗拉多州的克雷斯特巴特,在那里我举行小型会议和其他活动。夏天我主要骑山地车,冬天我最近从越野滑雪转向雪地自行车(在我的腿严重骨折后,我停止了下坡滑雪;我想念它,但风险/收益不再起作用)。我在我们这个非常小的镇上的一些戏剧作品中扮演主角,我已经尝试抽象绘画十几年了。最近,我一直在我们附近城镇甘尼森的冰实验室帮助一个商业加速器项目。我在旅途中参观了许多孵化器和加速器,但这是我第一次从内部看到它们。

我也是一个工作室迷。到目前为止,我可能已经在 Esalen 和其他地方参加了 50 次研讨会。对我来说,这是一个假期——你不仅去了一个不同的环境,而且你有新的东西让你的大脑有事可做,这样你就不会开始想你是从什么地方度假了。

在过去的几年里,作为我对组织结构研究的一部分,我一直致力于一项名为非暴力沟通的实践,参加了为期三周的研讨会,并阅读了大量书籍。这是我在重塑商业的追求中许多令人大开眼界的经历之一。

你为什么开始使用 Python?

这是 90 年代中期的某个时候。在那之前,我主要使用静态编译语言。我在布拉格教一个研讨会,因为某些原因,我开始玩 Perl。这感觉是革命性的;不仅仅是响应迅速,而且还面向使程序员的生活变得容易。解决问题而不是钻牛角尖。

可能是几个月后,当我试图查看我的一些“旧”Perl 代码时,发现我无法理解它。这种情况对我来说对 Perl 不利,因为我认为可读性是很重要的。此后不久,我发现了 Python,并从此迷上了它。

我写的第一个项目是我的书《用 C++思考》的代码提取工具。这将提取示例并创建 makefiles 来编译它们以测试语法错误。我用 C++写了一个早期版本,花了我两周时间。用 Python 重写花了半天时间(然而,我彻底理解了这个问题,这给了我一个优势。否则可能需要几天时间)。当然,我希望它运行得慢一些,因为 Python 正在被解释。但是它跑得更快!这是因为 c++ iostream 当时没有太多的优化,但这是关于做出性能假设的许多经验之一。现在我只是尝试用 Python 来做,而不担心速度,我只记得有极少数时候性能是个问题。

从那以后,我一直试图进入 Python 的世界,并在我之后拉开这个洞,但我一直失败。然而,我创建的任何支持工具都是用 Python 编写的,并且我积极地关注这种语言的最新特性。Python 只是让我开心,所以我继续尝试在那里生活。

你还知道哪些编程语言,你最喜欢哪一种?

我似乎专攻语言。我最了解的是我写过书的那些。

我的第一本书名为“计算机与 Pascal & C 的接口”,这是 Turbo Pascal,接口来自 Kaypros(一台 CP/M 机器)和早期的 MS-DOS PC。是的,我都看过了。

我是 ANSI/ISO C++标准委员会的创始成员,从 89 或 90 年到 C++ 98 标准发布(第一个)的时候。我写了几本关于 C++的书,并且用这种语言工作了很长时间。我非常了解 C++ 98,目睹了它的发展,并与委员会中许多非常聪明的人一起度过了时光——这比更多的研究生院要好得多。然而,这种语言在最近的标准中发生了如此大的变化,以至于我根本不知道它。自从《用 C++思考,第二卷》出版后,我基本上就没碰过 C++

我远离 C++的原因是 Java,我通过写“用 Java 思考”来学习 Java。尽管 Java 通过引入虚拟机和垃圾收集极大地推动了我们的进步(直到 Java,这些想法从未在语言中得到实际应用),但 Java 一开始就受到糟糕的语言设计决策的困扰,这种决策一直困扰着它。人们因为各种各样的原因爱上了这门语言——有时这是他们学过的唯一一门语言——所以很难注意到这些缺陷,没有什么可以比较的。但是我看到了程序员生产率和维护成本的巨大影响。仅仅因为 Java 比 C++有优势,并不代表它就伟大。

尽管如此,我终于开始写我的最后一篇 Java 文章,名为 Java 8 上的。它花了两年时间,是对 Java 8 的全面覆盖,我认为比“用 Java 思考”更全面

在过去的几个月里,我一直在与 Kotlin 编译器团队成员之一 Svetlana Isakova 一起研究“Atomic Kotlin”。这种语言给我留下了深刻的印象——它实际上解决了我对 Java 的绝大多数抱怨,这是我从来不认为可能的。通常,科特林甚至觉得 Pythonic,高赞不绝口。我开始认为 Kotlin 将成为 Java 的继任者,这就是我们放在书封面上的内容。我们希望在几个月内完成这本书;它将首先以电子书的形式出现,然后是纸质书。这本书的网址是这里是;现在它只是进入范例库,因为这本书还在开发中,但是当它准备好的时候,这个 URL 将成为这本书的一个站点。

“Atomic Kotlin”来源于“Atomic Scala”中的内容,这本书是我与 Dianne Marsh 合著的,她现在是网飞的一名主管。“原子”的想法是关于章节的大小;我们想让它们尽可能的小,最好只包含一个概念。这让读者更容易有成就感,但也让写作变得更好。这本书的封面有世纪中期原子时代的主题。

Dianne 和我花了几年时间研究“原子 Scala”我想说我们都很好地掌握了这门语言,但即使过了那么久,也不是很好。Scala 是一种学术性的实验性语言,因此包含了那些实验的产物。它在某些项目中被积极使用。通过它的实验,它极大地丰富了计算机科学知识。然而,它最终不符合我对一门语言的看法——对我来说有太多参差不齐的边缘。

Kotlin 从许多其他语言中学习,并结合了以前在那些其他语言中显示非常有益的特性。这里有一个简单的小例子:最初的 Java 设计者宣称操作符重载是“不好的”,因为在 C++中很难实现(事实的确如此,但是那些 Java 设计者并不理解这个问题或者这个场景——Python 已经证明了在垃圾收集器的环境中操作符重载是很容易的)。Scala 增加了操作符重载,并允许人们创建新的操作符。这是一个伟大的实验,它迫使 Kotlin 的设计者遵循 Python 的方法:( 1)使用有限的一组预定义操作符,( 2)使用文本名称重载操作符,以便于搜索。科特林有很多这样的好设计决策的例子。

我与詹姆斯·沃德合著了《Flex 的第一步》,他当时是 Adobe 公司的技术布道者。Flex 是一种设计非常好的语言,但是 Adobe 在这本书出版后不久就停止了它的使用。最终他们把它开源了,但那时它已经失去了追随者。

我参加过几次关于 Elm 语言的开发者务虚会,这是对 Javascript 的彻底背离,但我认为它是我见过的前端开发中最有潜力的。 Elm 是一种基于 Haskell 的纯函数式语言,与任何 Javascript 框架相比,它承诺零运行时错误和最快的速度。我倾向于被那些试图跨越当前根深蒂固的语言问题的语言所吸引。

我最近在学习的另一门语言是围棋。我的朋友卢西亚诺·拉马尔霍说服我去丹佛参加围棋大会;之后他来到 Crested Butte,我们举行了一个关于 Python 并发性的开发者务虚会。我还没有在 Go 中写过任何东西,但是我对语言的设计和设计过程非常感兴趣。我最感兴趣的是他们的并发模型,我甚至听说在 Python 3.7 或 3.8 中可能会出现模仿 goroutines 的东西,这可能会彻底改变 Python 的并发性。

你现在在做什么项目?

** 原子科特林。这本书是我现在的主要工作,因为我们正试图在短时间内把它出版。

  • 用 Python 思考。尽管由于那个网站上描述的原因,我很久以前就已经放弃了[Python 3 模式&习语](https://bit bucket . org/Bruce eckel/Python-3-Patterns-idiomans),但我不断收到反馈,说人们发现了那里有什么有用的东西。有人说他们有兴趣提供帮助,我们最终有了一个开发者务虚会。我们取得了进展,但仍处于早期阶段。一旦科特林的书完成,我可能会花时间在这上面,试图让它进入工作状态。
  • 并发 Python 。这是我认为我可能会对 Python 社区做出重大贡献的项目。它庞大、复杂、雄心勃勃,而且形势在不断变化。并发性是我奋斗了几十年的一个话题,所以它感觉像是一个有价值的追求。我认为这也是一个可以举办有趣的会议、研讨会和讨论会的领域。
  • 即将到来的冬季科技论坛。这是一个自组织的开放空间会议,探索许多不同的技术领域。我们也去户外,有很多互动活动。它始于 Java Posse Roundup,并在 Java Posse 停止广播时演变为 WTF。
  • 完善开发者静修的想法,做更多的事情。
  • 我的编程博客。这是我谈论我的技术探索的地方。
  • 【新 Mindview 网站】(http://mindviewinc . com/index . PHP)。旧网站实际上可以被认为是静态网站的早期形式(使用 PHP 插入页眉和页脚以及 CSS 作为基本的样式元素),但是结合了其他技术,如 Zope,这些技术已经积累了多年。我终于开始把所有东西都转移到静态站点生成器上了(使用 Hugo ),这是一个巨大的解脱,因为它使站点更容易构建和维护。尽管这个网站已经积累了很长一段时间,但是在转化方面还有很多工作要做。
  • 创办一个“Teal”组织,通过开发开源软件获得报酬。你可以在这里阅读关于蓝绿色组织的信息。我已经慢慢形成了我会对什么样的 Teal 组织感到兴奋的想法,而付费开源是我想攻克的一个难题。我认为,当软件开发人员可以全职从事他们热爱的工作,并且每个人都可以使用他们的成果时,这将彻底改变世界。
  • 我一直想开始某种播客,但格式和过程一直困扰着我。我希望它是那种我个人觉得很吸引人的播客,去掉所有烦人的部分。

哪些 Python 库是你最喜欢的(核心或第三方)?
点击进行命令行应用。阿明·罗纳切尔的作品我看得越多,印象就越深刻。我怀疑他要么与库并行开发他的文档,要么甚至可能首先开发,这就是他的设计如此优秀的原因——记录文档的过程迫使他真正思考什么是有效的。我构建了许多命令行工具,项目通常以成堆的工具告终。当我切换到一个不同的项目时,我开始忘记如何使用那堆东西。多年来,我一直在寻找一种好的方法来组织这一堆东西,并减轻整个命令行的混乱,在我看来,Click 正好做对了。我是你的超级粉丝。

Pathlib(标准库的一部分)。创建命令行工具不可避免地涉及到使用路径。多年来,我一直试图想象面向对象的路径,让抽象正确工作总是很棘手。Pathlib 是一个经过深思熟虑的抽象的例子,它以一种真正加速和简化我的编程的方式解决了一个常见的问题。

正则表达式。我知道一个关于遇到问题的笑话,试图用正则表达式解决它,现在你有两个问题。我使用正则表达式的时间已经够长了,足以知道如何严格限制自己尝试做的事情——我使用正则表达式简单地做我能做到的任何事情。如果你只是利用它们,而不是一头扎进去,试图用正则表达式解决所有问题,它们会成为一个非常强大的工具,极大地增强你的编程。诀窍在于理解并实现这种平衡。我总是以探索的方式对待正则表达式编程:让我们首先做一些非常简单的事情,让它工作,然后慢慢扩展,直到你得到一个解决方案。

在过去,我和美丽的汤花了很多时间。我在用微软的 Word 写书(用内置的目录和索引生成来生成适合拍照的页面),然后把它们转换成 HTML,再处理成电子书(幸运的是,我不再需要这么做了;我已经改用 Pandoc Markdown 了,它并不完美,但已经足够了)。Beautiful Soup 是 Python 解决这类棘手问题的绝佳例子。当然,你可以用另一种语言来解决它,但是由于某种原因,Python 更容易适应混乱。

你是如何成为技术书籍的作者的?

虽然我一直被写作所吸引(我在大学的第一年是新闻专业,后来转到了物理专业),但我认为这是提升自己作为顾问的一种方式,从而摆脱了当雇员的命运。我开始写杂志文章,那时候有杂志,他们付钱给你写文章。我的第一本书是根据我为《微型聚宝盆》杂志(早已不存在)写的一篇专栏文章写成的。这比从头开始写一本书要容易得多,也不那么令人生畏,但是一旦我这样做了,其他的书就变得更容易了,我只是不停地被一个又一个的书籍项目所吸引。有时我会与之抗争,但我已经接受了这个想法,我可能会一直写一本书。有项目真好。

写作是否是被聘为顾问的好策略是另一个问题。这些年来,我一直从事周期性的咨询工作——似乎时好时坏。我让人们认为我太出名太重要了;他们想雇用我,但认为我会太忙。因此,写作实际上赶走的顾客可能比它产生的还要多。一个更直接的方法可能更有意义,但我的天性似乎是拐弯抹角。

作为一名作者/演讲者,你学到的最重要的三件事是什么?
1)是关于观众,不是关于你。你的工作是为观众服务,任何达不到这一点的都应该被砍掉。我见过许多作者一头栽进错觉中,认为观众不知何故被他们和他们的生活方式迷住了,并把这些东西写进了他们的书或陈述中。写作时,每一个不必要的单词对读者来说都是工作,所以你必须尽最大努力去除它们——了解一种叫做“主动语态”的东西,它不仅能让你的写作更直接,而且更简短(这也需要无尽的努力和付出)。

有一条细微的界线——偶尔一些个人轶事或观察或观点会给读者或听众带来启发。现场演示的很大一部分是你带来的能量。但这一切都需要反馈到推动观众前进的目标中。

2)如果你要去旅行,呆久一点,让它成为一次冒险。尤其是当我在国外旅行时,我希望有一些能让我对要去的地方有所了解的经历。因为我的国际旅行需要商务舱,而这些都很贵,所以在这种情况下,我通常不会要求演讲津贴。我要求我的主人为我安排其他活动;这些通常是像与当地用户群交谈和参观公司和孵化器等事情。我喜欢并从中学习,但也倾向于以各种方式使裁谈会受益。我的主人通常会带我四处逛逛,还会带我去吃饭,所以整个经历感觉更像是度假,而不是工作。

3)你必须发现是什么激励你写作和/或说话。我经常收到想写作的人,或者认为他们想写作的人的问题。我通常会发现一些潜在的动机,一些人认为写作会让他们得到的东西。有时候写作可能是通向那件事的途径,但是如果你早点揭示它,你可能会找到一条更适合你的道路。西蒙·西内克的《T2:从为什么开始》是一个很好的资源,它有助于发现你潜在的动机。

就写作过程本身而言,你会发现很多人尖锐地宣称,你必须制定一个严格的时间表,每天写作,永远不要放松自己,要坚强,诸如此类。这是一种对写作过程的主导观点,符合我们西方的等级观念。我发现有趣的是,我通常不觉得这种过程产生的写作特别有趣或引人注目。几乎就像是通过把写作变成工作,它从工作中吸取生命,并把它变成读者的工作。

如果我没有写作的灵感,我不认为我做得很好。但是没关系,因为没有灵感我不想做。有时灵感是试图解决一个特别棘手的问题,有时只是让我感觉很好。我认为有许多作家在受到启发时会工作,但他们不会浪费时间宣称这是“正确的”写作方式,或者列出一套关于如何做的严格规则。结果是一种生存偏见,你听到的唯一建议是关于写作的支配过程。

你还有什么想说的吗?
关于咨询:我想做得更多,但我逐渐意识到在顾问和客户之间找到合适的匹配是多么棘手。有大量的活动被人们扔进“咨询”的垃圾箱,从美化的临时工到高层次的建议(往往高到无法有效利用)。我属于我喜欢认为的“实用建议和帮助”一类。相比之下,飞来飞去的咨询,你进来,说团队或公司做错了一切,应该按照我的方式做,然后飞走。相反,它需要理解一个群体在哪里,以及他们准备好/能够做什么样的改变。通常这些变化比飞越承诺的事情要小得多,也不那么引人注目,但它们可以产生实际的改善和好处。

我总是收取很高的费用,以补偿旅行和思考的困难和压力。但是如果工作是一种快乐的经历呢?如果一家公司因收费而吃紧,我会很乐意收取更少的费用,并放弃收入更高、压力更大的工作,以便在那种稀有、快乐的氛围中工作。难题一直是如何找到这样的组织。

感谢您接受采访!*

本周 PyDev:布鲁诺·奥利维拉

原文:https://www.blog.pythonlibrary.org/2017/10/16/pydev-of-the-week-bruno-oliveira/

本周,我们欢迎布鲁诺·奥利维拉(@尼克迪马斯)成为我们本周的 PyDev!Bruno 是 pytest 包的核心开发人员,这是一个为编写单元测试而创建的第三方 Python 包。你可以在 Github 上查看他的一些作品。Bruno 也有一个小型的博客,上面有一些关于 Python 的文章。让我们花点时间来了解一下布鲁诺吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

关于我的教育,我是位于 Florianopolis(巴西南部)的圣卡塔琳娜联邦大学的计算机科学学士。年轻的时候喜欢画画,打算继教父之后成为一名建筑师,却发现编程(用 Delphi!)当我 14 岁的时候,从来没有想过要成为别的什么人。

至于爱好,我最喜欢电脑游戏,是一个黑暗灵魂的超级粉丝。

我在 ESSS 公司担任技术主管,在那里我们使用 Python、C++和少量的 JavaScript 开发工程应用程序。

你为什么开始使用 Python?

十多年前,我们在 ESSS 的所有开发都是用 C++完成的,我们总觉得这样做有点太严格太慢了。一旦我们接触到 Python,我们立刻就爱上了它,并开始在我们所有的新项目中使用它。我们只是喜欢它的表现力和它带给我们的生产力。

你还知道哪些编程语言,你最喜欢哪一种?

Python 无疑是我最喜欢的语言,也是我每天在工作和在家处理个人或开源项目时使用的语言。我也精通 C++,虽然我不再每天使用它,另外我知道一些其他语言,但只是在做了教程后获得的最低限度的语言感觉,如 Go,Ruby 和 D.

你现在在做什么项目?

当然,我把大部分时间都花在了 pytest 上,但我也是 pytest-xdist 和 conda-forge 的定期投稿人,在较小程度上也是 pluggy 和 tox 的投稿人(主要是因为时间不够,没有兴趣)。

我还创作了很多 pytest 插件,比如 pytest-qt、pytest-cpp 和 pytest-mock 等等。

哪些 Python 库是你最喜欢的(核心或第三方)?

我不得不首先提到 attrs 和 boltons。我还想提一下 conda 和 cookie-cutter,虽然它们更多的是工具而不是库。

你是如何开始 pytest 项目的?

在工作中,我们很早就意识到测试是健康和可持续发展的核心,所以很早我就热衷于测试、CI 和 DevOps。多年来,我们在内部开发了一个基于 unittest 的框架来测试从数值模拟器到具有 3D 可视化的 GUI 界面的一切。我们开发的框架是足够的,但开始显示出它的年龄:使用基于继承的功能,很难根据您的特定需求跟踪或编写正确的安装/拆卸代码。

当我发现 pytest 的时候,我立刻喜欢上了这个框架:从一开始就很容易使用,因为它使用简单的断言编写测试,并且允许使用更高级的特性进行更复杂的测试,比如 fixtures、参数化和大量的插件。我甚至写了一篇公司内部博客来讨论这个问题,标题是“pytest:自切片面包以来最好的东西”。

从那时起,我加入了邮件列表,并开始观察存储库。我慢慢地参与进来,最初是建立 plugincompat 页面(http://plugincompat.herokuapp.com/)并帮助项目迁移到 GitHub,然后最终修复 bug 并帮助对问题进行分类,直到 2014 年 Holger(项目创始人)邀请我加入。

太棒了!

对于想加入开源项目的新开发者,你有什么建议吗?

如果你想更深入地参与,我建议对问题进行分类,并寻找容易解决的问题(通常项目有一个“新贡献者友好”的标签),以便熟悉代码。人们不应该低估每一个贡献的帮助,即使是很小的事情,比如为了清晰而重写文档的一部分,或者为一个已知的 bug 编写一个测试用例。

如果你开始参与社区,并表现出你对他人的尊重和良好的工作表现,你肯定会被邀请作为维护者加入。

你还有什么想说的吗?

我想说的是,人们真的应该试一试 pytest,它可以在几乎 100%的时间内运行基于 unittest 的测试套件,而没有任何变化,因此非常容易上手。我很惊讶有多少人不知道这一点,并认为他们必须首先移植所有的测试。

另外,我想对 pytest 社区的所有成员大声疾呼!

感谢您接受采访!

本周 PyDev:布鲁诺·罗查

原文:https://www.blog.pythonlibrary.org/2019/03/18/pydev-of-the-week-bruno-rocha/

本周我们欢迎布鲁诺·罗查(@罗查布鲁诺)成为我们本周的 PyDev!Bruno 为 Red Hat 工作,并参与 Python、Flask 和 Rust 社区。你可以在 Github 上看到他的一些项目,或者在媒体上查看他的一些文章。让我们花点时间来更好地了解布鲁诺!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是布鲁诺·罗查,来自巴西圣保罗的软件工程师。

我在很小的时候就开始玩电脑,那时我 12 岁,我妈妈给了我一台旧的 IBM XT 5160。玩了几天 DOOM,学了几天 LOTUS 123 工作表,自然就成了家里的电脑男孩。我学习了 MS.DOS 6.22(当时的新事物)课程,学会了用 BASIC 和 dBase 编程,几年后 web 出现在巴西,我开始用 Perl 中的 CGI 制作 HTML 网站,也用 MS Access 95 中的宏创建程序。

我做了几年计算机基础课程的讲师,做过一些网页设计师的工作,也做过网络安装、PC 构建,1998 年我通过 Conectiva(一个基于巴西红帽的发行版)认识了 Linux。我开始接触开源和 Linux,然后我成为了 Linux 和 Windows NT 混合网络的系统管理员。

几年后,我加入了信息系统大学并毕业了,在毕业期间,我爱上了编程,从那时起,我一直从事软件开发工作,开始了一些小生意(在我们不称之为“创业”的日子里),我为 Palm Inc .工作,用 C 语言为 Palm OS 开发驱动程序和销售人员系统,为巴西的几家大公司开发门户和 CMS,教授在线 Python 课程, 在巴西最大的就业委员会的数据科学团队工作,自 2016 年以来,我一直致力于 Red Hat 的质量工程和测试自动化。

除了软件和电脑,我从出生就是素食主义者,吃素超过 15 年。我一直非常积极地参与动物权利保护运动和救助被遗弃的动物(目前照顾 32 只被救助的动物)。

在我的空闲时间,我喜欢烹饪纯素食,但我最大的爱好是公路自行车,我参加了一些老式自行车比赛,我的比安奇 1973 和我的卡洛伊-10 1980,最近我成为了一个男孩的父亲,埃里克 3 个月大,生活发生了一点变化,从那时起,我最大的爱好是睡觉,只要我能。

你为什么开始使用 Python?

在 21 世纪初,我致力于将 Linux 带到我提供系统管理服务的公司的桌面上,Knoppix (Linux from Live CD)问世了,在巴西,我参与了名为 Kurumin Linux 的 Linux 发行版社区。这个 Linux 中的创新是所谓的“魔法图标”,许多都是用 Python 编写的,其中一个图标导致了一个关于 Python 的交互式教程,那时我有了第一次接触,然后我开始为这个社区做贡献。

将 Linux 引入桌面的想法失败了,但作为补偿,我学习了 Python,随着诸如 Pylons、Turbogears 和 Django 等 web 框架的出现,Python 很快在其他领域变得有用。

尽管使用不同的技术。为了支付账单,我越来越多地使用 Python,并将其作为我的首选项目语言,在 2008 年左右,我成为了核心提交者和 Web2py 最活跃的贡献者之一。我开始组织聚会,在许多社区活动和大型会议上发言,2012 年,我与 Python 合著了一本关于 web 开发的书,同年,我被提名为 Python 软件基金会的会员,我仍然在该基金会的两个工作组中工作。

自 2008 年以来,我在不同领域专门从事 Python 的工作,教学,维护一些开源库,与 Django 和 Flask 一起更多地参与 web,最近专注于测试自动化和质量工程。

你还知道哪些编程语言,你最喜欢哪一种?

我精通 C,C#,Javascript,Bash,PHP,Perl,Lua,Python,目前正在学习 Rust。

除了 Python(当然,因为它是支持我将近 15 年的技术和社区),如果我必须选择一种语言,我会选择 Rust,因为它是一种创新的语言,它给我的感觉是我正在以正确的方式做事,它非常具有挑战性,一切都表明它将有一个光明的未来!(或者说,生锈的未来)

你现在在做什么项目?

我主要围绕 Flask 创建了一些开源项目,其中之一是 Flasgger (可怕的名字),它是创建 Swagger APIs 的扩展。我还用 Flask 和 NoSQL 创建了一个名为 Quokka CMS 的 CMS,以及目前由社区维护的 Flask 的一些其他扩展,因为我没有太多时间投入到这些项目中。

我积极维护的唯一项目是一个名为 Dynaconf 的库,它是一个 Python 配置管理器,具有 Django 和 Flask 的扩展,旨在通过支持各种文件格式、环境和数据库来促进动态设置的管理。

从专业角度来说,我从事的是红帽卫星和 Ansible Galaxy 的纸浆项目。Pulp 是一个 Django 应用程序,它控制软件包的分发。我的角色是开发 Pulp-Smash 一个锻炼 Pulp 的功能测试框架。

此外,我一直在教 Python 和质量工程,我在 YouTube 频道(葡萄牙语)上分享一些东西,并共同主持了cast lio 播客

哪些 Python 库是你最喜欢的(核心或第三方)?

在标准库中,我非常欣赏 Functools 和 Contextlib,我真的很喜欢元编程,我在几乎所有的项目中都使用了这两个库。

第三方我想提一下诗歌,我相信诗歌是每个 Pythonist 爱好者一直梦想的“包管理器”,这个工具需要更多的关注,因为目前它是最好地解决依赖和分发问题的工具。

你还有什么想说的吗?

我想利用这个空间来非常感谢所有的“社会开发者”,他们把时间和智慧投入到创造已经改变世界的社会影响项目中,技术是一个很好的收入来源,但最重要的事情是“改变世界”,并且仍然给我开源的能量的是知道我用开源做的一点点事情可以在某种程度上帮助社会影响项目。

最后但同样重要的是:吃素吧!。

布鲁诺,谢谢你接受采访!

本周 PyDev:布莱恩·奥克利

原文:https://www.blog.pythonlibrary.org/2015/03/02/pydev-of-the-week-bryan-oakley/

本周,我们欢迎布莱恩·奥克利成为本周的 PyDev!我在各种 Python 相关的论坛和开发人员在线聚会上见过 Bryan 几次。他是 Tkinter 的大师,回答了很多关于它(和 Python)的问题,以及 StackOverflow 和其他地方的问题。我希望你能像我一样喜欢了解更多的东西。

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我认为对极客来说唯一重要的是 vi/emacs 和 windows/linux/osx,对吗?🙂

emacs 还是 vi?Emacs。我用同一个编辑器快 30 年了。

Windows/Mac/Linux?Mac,但仅略高于 linux。OSX 是编写必须在所有平台上工作的软件的实际选择。另外,在家里,我发现 Mac 的维护成本非常低。

从 20 世纪 80 年代中期起,我就开始专业地编写软件。我开始是一名 FORTRAN 程序员,学会了 C,然后是 perl、awk、sed、bourne shell,所有常用的 unix 工具。在接触 Python 之前,我成为了一名死忠的 Tcl/tk 程序员长达十多年。过去六年左右,我一直在使用 Python。我做了一年左右的 Java 工作。

我目前住在芝加哥郊区,但在成长过程中,我大部分时间都是在稍往南的俄克拉荷马州和阿肯色州度过的,只在得克萨斯州和科罗拉多州短暂停留过。我有几个孩子,最小的一个今年即将高中毕业。我是一个超级影迷,尤其是独立电影迷。我喜欢玩弹球。我大部分时间都倾向于穿夏威夷衬衫(这就是为什么我的 stackoverflow 图标是夏威夷衬衫),如果天气(以及我目前演出的着装要求)允许,我会每天穿短裤和凉鞋。

你为什么开始使用 Python?

2009 年,我在芝加哥的 Orbitz 得到了一份工作,他们把我安排到了一个使用 Python 的团队。当时我不知道 Python,但对 Perl 和 Tcl 相当流利,所以我想他们认为我可以掌握它。有趣的事实:这是我做的第三份工作,我不知道我被雇佣使用的语言。我当时不知道的其他语言是 Tcl 和 Java。我一直有使用脚本语言的天赋,或者至少我很擅长在面试中让人们相信这一点。

Orbitz 的团队正在开发一个测试工具,这让我走上了我一直走的路,那就是在 QA 中编写软件工具(或者用我喜欢的说法,编写软件来测试软件)。自从 Orbitz 之后,我还做过另外两份工作,在一个支持自动化测试的团队中担任架构师和首席开发人员。

你还知道哪些编程语言,你最喜欢哪一种?

我已经接触了几种:FORTRAN、C、Perl、Tcl。我过去也写过几千行 LISP,以及 Ruby、Groovy、Java、C++和 Objective-C 的一知半解,还有常见的 unixy 嫌疑人如 bash、awk、sed 等。最近我写了相当多的 javascript。其中,FORTRAN、C、Tcl 和 Python 是我在职业生涯中使用最多的。

至于有喜欢的吗?很难说。简单的答案是 Python,因为这是我现在正在使用的。Python 和大量可用的模块有很多让人喜欢的地方。不过,老实说,即使经过几年的不断使用,我仍然不喜欢使用空白来定义代码块。我听到了所有的论据,但我不相信。好了,这会给你的读者一些评论!🙂

我仍然非常喜欢 Tcl 语言。这是一种后天习得的味道,大多数人从未习得,但在我使用过的所有语言中,Tcl 是最适合我大脑的一种。它是一种美丽的小语种。学习它花了我大约半天的时间,然后我就去参加比赛了。然而,Tcl 的社区如此之小,与 python 相比,它的软件包库相对较小,而且 Tcl 的工作数量很快接近于零,因此它在我的工具箱中变得越来越无关紧要。另外,它对 OO 的支持远不如 Python 好。

我希望有机会专业地使用 LISP,也希望使用 Groovy。我几乎没有使用过 Groovy,但是当我第一次遇到它的时候,我立刻就爱上了它。

你现在在做什么项目?

我正在为测试自动化构建工具。无论我的日常工作需要什么,为软件开发编写工具一直是我一直在做的事情。像所有优秀的(阅读:懒惰的)程序员一样,我喜欢编写工具来使我的工作变得更容易。

在 Orbitz,我开始研究测试自动化工具,并意识到这是一个非常缺乏像样工具的领域。当时大多数 QA 工具是用于管理测试用例,而不是编写它们;编写测试的实际过程是填写表格或创建工作文档。呸!一个. NET 程序员有 Visual Studio,ReSharper,一百万个工具供他们使用。Linux 和 OSX 开发者拥有类似的丰富工具。测试人员有什么?微软 Word?不过,随着 easyb、cucumber、specflow 等工具的出现,这种情况开始发生变化。

我已经把尽自己的一份力量来解决这个问题当成了一个小小的个人使命。从 Orbitz 开始,一直到我现在的工作,我们使用了一个叫做机器人框架(robotframework.org)的工具来进行自动化测试。这是一个很棒的框架,它使得编写对人类友好的测试用例成为可能,但是它背后有 python 的强大功能,所以你可以用它测试几乎任何东西。我写了一篇非常简短的博文,介绍我为什么喜欢这里:http://boakley . github . io/2014/07/02/what-is-the-robot-framework

即使机器人框架已经成熟,并且正在由一个非常小的团队积极开发,但官方 IDE 在我看来并不是很好。我见过很多人尝试使用它,然后切换并尝试使用标准文本编辑器(测试文件都是纯文本,所以您可以使用任何您想要的东西)。前一阵子我为 IDE 写了一些插件,了解了很多关于开发高质量测试的人们想要和需要的东西。

我有一个为严肃的测试人员构建在框架之上的专业级工具的愿景,并且我正在朝着这个愿景努力。我在上一个雇主那里取得了一些进展,但是他们不让我开源,所以我离开了。我现在的雇主,Echo Global Logistics(echo.com)非常慷慨地让我将这些项目作为开源项目。我用 javascript 为奇妙的括号编辑器(括号. io )编写了一个机器人扩展,我还在开发一个 linter、一个查看测试文档的网站和一个收集测试环境中测试结果的仪表板,所有这些都是用 python 编写的。

哪些 Python 库是你最喜欢的(核心或第三方)?

并列第一名。我不得不说我用得最多的是机器人框架。它不仅是一个测试工具,而且它的大部分都以模块的形式提供,这使我有可能构建新的工具来处理机器人测试文件。

我第二喜欢的是 Tkinter,虽然更多的是出于感情的原因。我很少在工作中使用它。当我第一次学习 python 的时候,我刚刚用 Tcl/Tk 进行了十年的 UI 开发。我认为深入学习 python 的最好方法之一是回答技术问题。因为我是一名传统知识专家,所以我决定利用这一点,成为一名传统知识专家。所以,我开始回答尽可能多的关于栈溢出的 Tkinter 问题。当我回答我的第一个 Tkinter 问题时,我从未真正使用过 Tkinter。

我认为 Tkinter 是一个非常棒的 GUI 库,尤其是结合了 Python 面向对象的特性。许多人嘲笑它古老、丑陋、难学。在使用了几十年的 GUI 工具包后,我开始意识到大多数都是错误的,错误的并不重要。我永远不会使用 tkinter 来创建下一个 photoshop 或 itunes,但是对于大多数人编写的绝大多数 GUI 来说,它已经足够好了。

最近我也在一些内部网站和网络服务中使用 flask。我不是一个很好的 web 开发人员,但是 flask 使得将 web ui 和 restful 服务放在一起变得非常容易,而不必太担心管道问题。它让我将大部分精力集中在服务的实际数据业务逻辑上。

你还有什么想说的吗?

我真的很感谢你给我机会成为你博客的一部分。如果你的读者想要或者需要进入测试自动化,我强烈建议他们去看看 robot framework。不要让机器人 IDE 吓跑你——忽略它,使用括号或你选择的编辑器。

非常感谢!

一周的最后 10 个 PyDevs

本周 PyDev:布莱恩·范德 Ven

原文:https://www.blog.pythonlibrary.org/2016/10/03/pydev-of-the-week-bryan-van-de-ven/

本周,我们欢迎布莱恩·范·德·Ven(@ bigreddot)成为我们本周的 PyDev!布莱恩是散景项目的核心开发人员,该项目是 Python 的可视化软件包。他还帮助开发了 Anaconda。你可以在 Github 上查看他参与了哪些项目。让我们花一点时间来更多地了解我们的同胞皮托尼斯塔!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我目前在德克萨斯州奥斯汀的 Continuum Analytics 工作。我从第一天起就在那里工作,并在早期帮助开发 Anaconda 和 conda 包管理器。我对寻找公司真正帮助和支持开源和开源社区的可持续方式的问题非常感兴趣。

我的教育道路有点曲折。我在德克萨斯大学学习计算机科学,然后是物理和数学。在那里的时候,我很幸运有机会上迪杰斯特拉和温伯格的课。后来,我去了加州大学洛杉矶分校的物理研究生院,但是(幸运的是!)早早离开了博士项目。有趣的事实:加州大学系统的文凭有州长的签名,所以在这一切结束时,至少我得到了阿诺德施瓦辛格的签名!

为了放松,我做饭、健身、尽可能地旅行,还练习葡萄牙语。我也喜欢去阿拉莫剧院看电影模仿秀。任何去奥斯丁的人都应该去看看这些地方:https://drafthouse.com/series/master-pancake

你为什么开始使用 Python?
大约在 1997 年(Python 1.4)的某个时候,我用 Python 做了一些简单的系统管理类的工作。从那以后,我断断续续地使用 Python,无论是个人还是职业。在过去的五年里,我一直在广泛使用 python。

你还知道哪些编程语言,你最喜欢哪一种?

我的第一次编程经历是在 TRS-80 上使用 LOGO(“海龟图形”),然后是 Commodore BASIC、6502 和 8086 汇编、Pascal 和 LISP。从专业角度来说,这些年来我一直在使用 Perl、Tcl、Python、C、C++、Objective-C、Matlab、Mathematica、Delphi 和 CoffeeScript。我不确定我有一个最喜欢的!有时候,我喜欢能够轻松地用 Python 修改东西,有时候,我喜欢静态类型。合适的工作工具等。

你现在在做什么项目?

我几乎所有的时间都花在了 Bokeh(T2)上,这是一个在浏览器中创建交互式可视化和数据应用的平台,很容易从 Python 中获得。我花时间作为个人贡献者,做项目管理,提供社区支持(随着社区的发展,这变得越来越难!),并在 Strata、PyData 和 PyBay 等会议上旅行和谈论散景。

哪些 Python 库是你最喜欢的(核心或第三方)?

散景🙂

作为一门编程语言,你认为 Python 将何去何从?

Python 的强大力量和最重要的持久力(IMO)是它成为一种巨大的“胶水”语言的能力,让人们可以将许多不同的东西放在一起完成一项工作。各种有趣的发展即将到来,尤其是在存储和计算方面。未来将比现在更加多样化,我预计 Python 将成为这一切的中心。

你对当前的 Python 程序员市场有什么看法?

在许多领域,尤其是在数据科学领域,Python 的使用和受欢迎程度越来越高。这是使用 Python 的好时机。

非常感谢!

本周 PyDev:布莱恩·韦伯

原文:https://www.blog.pythonlibrary.org/2020/01/06/pydev-of-the-week-bryan-weber/

本周我们欢迎布莱恩·韦伯(@达斯比思 )成为我们本周的 PyDev!布莱恩是 Real Python 的贡献者,也是 Cantera 的核心开发者。如果你想了解布莱恩更多,你可以查看他的网站或者他的 Github 简介。让我们花一点时间来更好地了解他!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是康涅狄格大学的教学教授,也是机械工程本科学习的负责人。这意味着我将主要精力放在改善我们本科生的教育上。我教了很多热力学和流体力学课程,并且开发了一些 Python 包来帮助我。

2014 年拿到机械工程博士学位,也是康涅狄格大学的。我最喜欢机械工程的一点是,它是一个超级广阔的领域,涵盖了从机器人到化学,从汽车和卡车到飞机和火箭,以及两者之间的一切。

我的爱好是开源软件、极限飞盘和烹饪。我有一个女儿,我喜欢和家人在一起。除此之外,没有太多时间做其他事情了!

你为什么开始使用 Python?

当我在研究生院的时候,我的论文专注于开发生物燃料的实验数据。最初,我用 MATLAB 编写所有的数据处理程序,因为这是我从大学时就知道的语言。在某个时候,我意识到如果我想实践开放科学,那包括共享数据处理脚本和原始数据。当然,MATLAB 是专有软件,相当昂贵。这意味着我的作品不会真正开放和自由(如在演讲中)。

所以我用 Python 重写了所有的东西,这样我就可以全部分享了!我选择 Python 是因为我想使用的另一个包也有 Python 接口,它可以很容易地将所有东西集成在一起。我写的用于数据处理的包还在 GitHub 上(它叫做 UConnRCMPy )虽然我不确定是否有人在用它。

你还知道哪些编程语言,你最喜欢哪一种?

我曾经非常了解 FORTRAN 和 MATLAB,但这些技能大多已经萎缩。我能读懂大部分 C++代码,但写不好。到目前为止,Python 是我最喜欢的语言。我也非常有兴趣了解 Julia,并看看它是如何比较的!

你现在在做什么项目?

我开发了几个软件包,在课堂上使用。我为 Jupyter 笔记本编写了一个扩展,允许用户下载几个 pdf 格式的笔记本。它使用 nbconvert 和 pdfrw 自动将转换后的笔记本拼接成一个 PDF。我在课堂上用这个让学生在 Jupyter 笔记本上做作业,然后提交一个 PDF 格式的代码+解释。对于我的班级,签名不是很好,所以这是一个很好的替代品。

除了教学,我其余的大部分时间都在研究 Cantera,这是一个热力学、化学动力学和传输现象的开源包。大约从 2013 年开始,我就是主要开发者之一,但是 Cantera 是最初启发我使用 Python 的包,所以我一定是在 2010 年或 2011 年知道它的。Cantera 的核心是用 C++写的,因为它需要很快,我们使用 Cython 来生成 Python 接口。Cython 是一个优秀的包,它使编写看起来很像 Python 但可以编译成 C 库的代码变得非常容易。由于 Cython 生成了一个 C 库,所以与其他 C 或 C++代码(如 Cantera 的核心)链接非常简单。

我是跨平台软件包管理器 Conda 的忠实用户。我已经为 Cantera 和我开发的其他库编写了 Conda 菜谱来构建包,甚至对 conda-build 本身做了一点小小的改动!我学到了很多关于在所有主要平台上编译和链接 C/C++代码的知识,我非常欣赏和尊重那些真正理解这些知识的人。

哪些 Python 库是你最喜欢的(核心或第三方)?

NumPy 是我做的所有事情的基础,这是我的最爱之一。我也喜欢品脱库,它处理物理单位转换(一米有多少英尺?).Pint 也是 Python Bytes 播客的特色!我还经常使用 NikolaPelican 静态 HTML 生成器,分别用于 Cantera 和我的个人网站

你是如何结束为 Real Python 写作的?

看到 Real Python 的一条推文说他们在找作者,决定去应聘!我的第一篇文章是关于如何用 Python 编写 main()函数,之后我又写了一篇关于从 MATLAB 转换到 Python 的文章,我还准备了更多的文章来分享。

你如何选择写什么文章?

我通常会寻找涵盖我已经非常了解的内容的文章,比如从 MATLAB 转到 Python,或者我想了解的内容。我即将发表的文章是关于用 SciPy 进行优化和开始使用 datetime 库的。我认为编程中的时间是如此迷人的想法,尤其是因为它如此复杂!

你还有什么想说的吗?

如果您没有向 Python 软件基金会或开源领域的其他非营利组织捐款,请考虑这样做。Cantera 是一个由财政资助的项目,隶属于 NumFOCUS,这是另一个代表项目接受捐赠的非营利组织。如果您在工作中使用开源软件,请考虑像 Tidelift 这样的程序,这样您的公司也可以帮助支持开源。如果你没有财政资源来回馈,而你有时间来回馈,贡献代码或编辑文档是另一种参与的好方法!

布莱恩,谢谢你接受采访!

本周 PyDev:卡梅隆·辛普森

原文:https://www.blog.pythonlibrary.org/2017/01/16/pydev-of-the-week-cameron-simpson/

本周,我们欢迎卡梅伦·辛普森成为本周的 PyDev。Cameron 是 PEP 418 -添加单调时间、性能计数器和进程时间函数的合著者,也是 PEP 499 -除了 sys.modules['main']之外,python -m foo 还应该绑定 sys.modules['foo']。他也是核心 Python 开发者和爱好者。你可以在的 bitbucket 上查看他的一些项目。让我们花一些时间来更好地了解他!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我从 15 岁开始就是一个编程狂,我已经获得了计算机科学学士学位。我是一个有点堕落的登山者和骑自行车的人;我仍然有一辆摩托车,并试图使用它,但环境干扰;我也在尝试恢复室内攀岩。我花了相当多的时间在一个小农场上,部分时间在那里远程工作;我很幸运在有可能的地方找到了工作。

你为什么开始使用 Python?

在 2004 年,我打算学习 Python 已经有一段时间了,可能有一年多了,但是一直推迟,因为我庞大的个人 Perl 库让我抗拒改变——个人库意味着你已经有了这个工具包,可以让你倾向于做的特定事情变得更容易。

我想在 2004 年,我决定通过用 Python 重新实现我的 perl 库中的核心内容来挖掘自己,这样我就可以编写 Python 脚本来处理我现有的数据。也是在那一年,我的一个朋友在处理 WebSphere 中的一个精简的 Jython 平台,所以也有一些 Jython 实现了一些东西。

从那时起,随着我的核心工作 Python 内容的增长,事情越滚越大,Python 显然是一种更好的语言。

你还知道哪些编程语言,你最喜欢哪一种?

Python 是我目前最喜欢的,已经有几年了。它在力量和清晰度之间有一个很好的平衡,我继续喜欢它的设计决定。

我经常流利使用的语言包括 Python、Bourne shell、sed 和 awk 以及它们的朋友。我喜欢使用“最小的”工具来简洁地表达解决方案,所以我倾向于从 sed 到 shell 到 Python,或者混合使用。

我精通各种其他语言;我在目前的工作中也在使用 Go 和 PHP 以及一点 JavaScript。我从 BASIC 开始,知道(或知道)一些汇编语言,C,Java,SQL,Prolog,Pascal,SR,Modal,并且在不同的时间使用过其他几种语言。

你现在在做什么项目?

几个,多半是为了搔个人痒处;在 bitbucket 几乎可以看到全部;它看起来像所有的 Python,但几乎我的整个 bin 目录脚本也在那里。在“项目”方面:myke,我的 make replacementvt,一种内容寻址存储系统(模仿 https://en.wikipedia.org/wiki/Venti 的风格,但并不相同),顶部有一个 FUSE 文件系统层,并提供了将存储池连接在一起的方法;另一个 MP4 解析器,部分用于帮助检查和控制媒体元数据,部分用于存储系统的格式特定块标识符侧的概念证明;用于访问我的 PVR 的录音的工具;mailfiler,我的邮件归档工具;maildb 和 nodedb,ah doc 节点/属性存储,通常基于共享的 CSV 文件;支撑这些的脚本和库文件;后来,我用它代替了期货库。我正试图让更多的库模块进入 PyPI。

哪些 Python 库是你最喜欢的(核心或第三方)?

我认为 BeautifulSoup 是一个了不起的工具。我喜欢 Python 的 stdlib 中的线程工具。当我使用它时,我认为 SQLAlchemy 是一种与 SQL 交互的可爱方式(我避开了 ORM 方面)。

你对当前的 Python 程序员市场有什么看法?

很遗憾,我在这里没有任何意见。我是一个多面手,不需要寻找特定的“python 编程”领域(虽然上次,这是我一直在寻找的)。当然,作为多面手的另一面是,我可以将 Python 应用于许多需求,给我一个使用它的借口!

你还有什么想说的吗?

和其他人一样,我认为 Python 社区很棒。我主要通过 python-list 与它进行交互,人们努力保持建设性,而不是轻易陷入冲突,这让我不断受到鼓舞。在其他论坛上,很少有人愿意为错误的观点或行为道歉,认真地试图用证据、理由和经验来证明自己的立场,并愿意接受他人的经历和需求与自己不同。

感谢您接受采访!

本周 PyDev:卡尔·弗里德里希·博尔茨

原文:https://www.blog.pythonlibrary.org/2021/02/01/pydev-of-the-week-carl-friedrich-bolz/

本周,我们欢迎 Carl Friedrich Bolz(@ cfbolz)成为我们的本周 PyDev!卡尔是 PyPy 的核心开发人员,PyPy 是 CPython 的一个 RPython 变种,一般来说比普通 Python 运行得更快。如果你想知道更多关于卡尔的事情,你可以看看他的 Github 简介

现在让我们了解一下卡尔吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是 Carl Friedrich Bolz-Tereick,住在德国的杜伊斯堡,在德国杜塞尔多夫大学的计算机科学系兼职做教学和研究工作。我给非计算机科学的学生讲授 Python 入门,这非常符合我的兴趣,即让 Python 更容易理解和跨学科(例如通过改进 PyPy 的错误消息)。我有一个计算机科学的博士学位,我的研究是如何为动态语言编写 JIT 编译器来提高它们的性能。我也是两个小孩的主要照顾者。我的爱好是城市徒步旅行(很适合疫情和孩子们)和在唱诗班唱歌(不是)。

你为什么开始使用 Python?

因为我的 C++程序一直出错。

你还知道哪些编程语言,你最喜欢哪一种?

很明显,我最喜欢的编程语言是 Python!但我曾致力于实现许多其他编程语言,包括 Prolog、Squeak Smalltalk、Racket、PHP、SQL/Sqlite。其中我最喜欢使用 Prolog,与许多其他语言相比,它需要你真正改变你的思维。作为我偶尔尝试理解计算艺术的爱好的一部分,我也一直在写一些糟糕的 Javascript。我最近写了一篇关于威廉姆·弗西斯的视频装置“抽象之城”的短文。

你现在在做什么项目?

我主要在研究用 Python 写的 Python 解释器 PyPy 。我几乎参与了 PyPy 的所有组件,从 Python 解释器本身到 RPython(我们用作实现语言的 Python 子集),到我们使用的 JIT 基础设施。我主要关注的是提高纯 Python 代码的性能。我也在做一些 PyPy 项目推广,我已经指导了 PyPy 的新开发人员,目前正在尝试 Twitch-streaming 一些 PyPy 开发

我也是维基百科、维基共享和 OpenStreetMap 的贡献者。在这些方面,我专注于记录公共空间中的艺术。

你是如何加入 PyPy 项目的?

2005 年初,我是一名数学系本科生,度过了压力极大的第三个学期,想要在学期休息期间做一些不是数学的事情,所以我开始从事 PyPy 项目——这是一个很酷的新项目,可以有效地拓展社区。半年后,我放弃了数学,加入了一家做 PyPy EU 项目的公司。从那以后,我一直致力于这个项目,有时强度更大,有时强度更小。

在使用 PyPy 时,你学到了 Python 的哪三件事?

  • Python 表面上看起来很简单,但是它的行为实际上很复杂。
  • Python 表面上看起来很简单,但是它的行为实际上很复杂。
  • Python 表面上看起来很简单,但是它的行为实际上很复杂。

哪些 Python 库是你最喜欢的(核心或第三方)?

我是 attrs 和 glom 的超级粉丝,attrs 使编写类成为一种乐趣,glom 是一个非常巧妙的库,它使访问和重构嵌套数据结构成为可能(我有点想为它编写一个 JIT)。

你还有什么想说的吗?

“科技不是中立的,也不是与政治无关的”——金·克雷顿

卡尔,谢谢你接受采访!

本周 PyDev:卡尔·特拉切特

原文:https://www.blog.pythonlibrary.org/2014/11/24/pydev-of-the-week-carl-trachte/

本周,我们邀请到了卡尔·特拉希特作为本周的 PyDev。让我们花一些时间来了解我们的 Python 程序员伙伴吧!

能简单介绍一下自己吗(爱好、学历等):

我的职业是采矿业的地质学家。我在特拉华大学毕业。在海军呆了短短的 4 年后,我在华盛顿州完成了我的研究生学位

我喜欢像 pysanky 和骑独轮车这样的手工艺品。OpenBSD 是我在家里的笔记本电脑上使用的操作系统。我花了一些时间试图更好地掌握 Unix 及其工具。

为什么开始使用 Python?

大约在 1999 年到 2001 年期间,支持矿山的矿山规划软件供应商 Mintec(现为 MineSight/Hexagon)开始使用 Python 作为他们的 API。在那之前,我已经开始用 VBA 和 VB6 写剧本了。Python 更简单也更强大。

你还知道哪些编程语言,你最喜欢哪一种?

SQL、Java 和 VBA/VB6/C#/VB.net 是我唯一专业使用过的,其中 SQL、Java 和 VBA 是我唯一知道的

我读过 FORTRAN、LISP、C、JavaScript 和 Perl 的书,也上过这些课程。真的,我是外行。如果我可以选择一个最喜欢的,那就是 C,不是因为它有趣,而是因为用它编程可以让你更深入地了解机器内部在处理你的代码时发生了什么。我在华盛顿大学在线学习的 C 课程几乎要了我的命,但它对我后来的任何成功都是必不可少的。

我现在认为理所当然的东西——划分功能、将 ASCII 字符识别为特定的整数、整数溢出、指针的概念、结构如何存储在内存中以及哪些更有效——所有这些都是那次痛苦的 C 课程经历的结果,它们在我的工作中一次又一次地出现!

你现在在做什么项目?

到现在为止,我已经做了大约三年的矿山地质三维块模型协调工作。这是一个苦差事,但是在这个过程中,我发现了各种各样的方法来简化这个过程,并通过代码来优化它的精确性和准确性。进行协调和报告的人永远不会赢得受欢迎度竞赛,但是如果你喜欢处理数据、几何和关系数据,这是一个有趣的问题。

在家里,我一直在努力让我的 OpenBSD Thinkpad 变成我想要的样子。大约六个月前,我用 OpenBSD 重写了我的最后一个 Windows 安装,所以它是一个 Unix 家庭。腊肠犬 Jen-bear 同意了。:-\

你最喜欢哪些 Python 库(核心或第三方)?

第三方:Polygon(http://www.j-raedler.de/项目/Polygon/)——它一直存在。如果需要滚自己的 GIS,露天矿地图等。,这对于多边形中的点和多边形相交问题来说是非常好的。我已经有一段时间没有使用它了,但是当我不得不使用它的时候,它让我的生活变得更加容易,而且它的作者真的坚持维护(它是 Python 3 兼容的 IIRC)。

JTS(http://www . vivid solutions .com/jts/jts home . htm)(其实这是和 jython 一起工作的 Java,虽然我觉得现在有一个 JTS 启发的 Python 库)——另一个几何库。是的,你可以滚动你自己的 voronoi 图闭合多边形生成器,但是这个更好。

我在代码中经常使用字典,而不是使用类或列表,来处理信息和保存一个常量列表(文件路径、文件名等)。).可能我的很多代码只是一个大的反模式,但是这个特性极大地清理和分解了我的代码。我开始依赖它了。

你还有什么想说的吗?

我属于“每个人都应该对编码有所了解”的阵营。尽管我职业生涯的大部分时间都是在传统的(注意,我说的是“传统的”,不一定是现在的)蛮力、非技术性的行业中度过的,比如采矿业,但我无法避免必须一直分析大量数据。编码让我的工作更有效率,也让大多数任务更有趣。开源软件很容易用于很多任务(注意我上面提到的几何库)。我开始的时候并没有意识到这一点(我只知道 Excel 电子表格和 VBA)。

不幸的是,对于这门手艺,我是一个相当糟糕的销售员。大约十年或十五年前,我在矿上鼓励一位同事,“玛西娅,你很聪明,而且对<这个工作>了如指掌,你为什么不学习 Python 呢?”她:“因为那样的话,我会像你一样一副可怜的样子。”:-\我们尽力而为。CBT

谢谢!

前一周的 PyDevs

  • 迈克尔·赫尔曼
  • 布莱恩·柯廷
  • 卢西亚诺·拉马拉
  • 沃纳·布鲁欣
  • 浸信会二次方阵
  • 本·劳什

本周 PyDev:卡尔顿·吉布森

原文:https://www.blog.pythonlibrary.org/2020/07/27/pydev-of-the-week-carlton-gibson/

本周,我们欢迎卡尔顿·吉布森(@卡尔顿·吉布森)成为我们本周的 PyDev。Carlton 是 Django REST 框架的核心开发者,也是 Django Filter、Crispy Forms 等的维护者。卡尔顿是 Django 脱口秀的联合主持人。你可以在 Github 上看到卡尔顿正在做什么。

让我们花些时间更好地了解卡尔顿!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是四个孩子的父亲,所以这是我的主要爱好。

我练习太极。我喜欢烹饪。我读了很多书。音乐,语言,诸如此类的东西。

我的教育,很久以前,我学习经济学和哲学,最终攻读科学哲学博士学位。

你为什么开始使用 Python?

我参加了一个名为“网络应用的未来”的会议。当时我正在使用 PHP,并且刚刚开始在 iPhoneOS 上使用 Objective-C 进行移动应用程序开发。

每个人都在谈论新的东西“Django,Django,Django”,所以它一定是在 1.0 左右。我回到家,谷歌了一下。它说完美主义者的网络框架有一个期限。我就像,“那就是我!”

所以,不仅仅是 Django,还有 Python。它干净、有力、富有表现力——从语言的角度来看,这些是我今天仍然欣赏的东西。你需要写一些东西,结果只有 150 行。这就是使用电脑的意义所在。

你是如何参与 Django REST 框架的?

我使用 Django 为移动客户端构建 API。一天,汤姆·克里斯蒂在邮件列表上发帖说,他需要一些关于 StackOverflow 等问题的帮助。所以,我开始回答问题,然后在问题跟踪器上帮忙,最后汤姆邀请我作为合作者。我记得我第一次按下合并键的时候…

你为什么选择 Django 而不是其他 Python web 框架?

鉴于我是用 Django 找到 Python 的,我觉得这里的问题是,我为什么还要选择它?

这些年来,我尝试了几乎所有的框架。每次有新的东西出现,我都会看一看,看看有什么新的东西。事实上,这些框架都在以或多或少相同的方式解决相同的问题。我去年在 DjangoCon 做过一个关于这个的演讲,但是,如果你把 Django 剥离到它的核心 HTTP 处理,那里只有大约 160 行:没有空间让它做太多的事情,它和其他人一样不多。

所以,尽管总是有很多课程要学,有很多选择,但我的选择是我最擅长的是什么?

首先,Django 有电池:我不想花时间去找 auth,或者 sessions 什么的。但除此之外还有熟悉度:对我来说,用 Django 构建应用程序比用其他任何选择都要快得多,也更有效率。

这是一个问题,我能多快到达我正在工作的点,是什么使这个特殊的应用程序是独特的?Django 比其他任何选择都要快得多。

你还知道哪些编程语言,哪种是你最喜欢的?

当我遇到不同的语言时,我至少会尝试一下。务实的程序员有一整行关于每年学习一门新语言的话。但是最大的问题仍然是 JavaScript。它是网络的脚本语言。必不可少。

我的问题是工具和框架变动。这一切都是在进步的名义下进行的,但是,作为一个主要关注后端的开发人员,要跟上进度太难了。因此,我是 Elm 的忠实粉丝,它是一种编译成 JavaScript 的函数式语言。一旦你进入所需的 Vue 或 React 或类似的领域,这对于构建更丰富的应用程序来说是很棒的。

整个函数式方法都有一个学习曲线,使用 Elm 的头几个小时有点令人惊叹,但是我强烈推荐它。当你在一个组件上工作时,它会编译,然后第一次就能完美地工作,这是一种乐趣。你一定要试试。重构,编译器错误消息是神圣的。

你现在在做什么项目?

啊,我积压了一大堆。冠状病毒疫情,随着封锁和学校关闭,等等,今年真的打击了我的帆。我认为我们特别幸运。

最主要的是异步来到 Django,在 Django 3.1 中有异步视图。在接下来的一个月左右的时间里,需要做一些工作来让频道为此做好准备:我们已经不远了。这在很大程度上受到时间的限制,但这是我的主要关注点。

然后,在过去的几年里,我一直在思考(和谈论)为开源做贡献,尤其是 Django。我认为这是一个很好的学习机会,对你的个人资料很有帮助,也是一个融入社区的机会。另一方面,做得太多真的会有筋疲力尽的危险,还有价值数十亿美元的公司不回馈任何东西的问题,但总的来说,我是一个乐观主义者:我认为开源是一件好事。我想把所有这些东西整合成更具体的东西

最后,我将继续讲述关于部署的故事。我认为在入门、做 Django 教程和专业的现代 DevOps 故事之间有一个真正的差距,后者都是关于在这个或那个编排平台上运行容器。是的,部署是复杂的,但是我认为有一个更简单的故事要讲,它更适合许多用例。一旦我们发布了 Django 3.1,我想在下半年开始把我的想法集中起来。

你还有什么想说的吗?

只是我喜欢 Django 和 Python 社区——我们在那里拥有真正的资产。尤其是姜戈给了我这么多,我很荣幸能在这上面工作。对于框架来说,这是激动人心的时刻,这是真正的快乐。

谢谢你邀请我。

卡尔顿,谢谢你接受采访!

本周 PyDev:卡罗尔·威林

原文:https://www.blog.pythonlibrary.org/2015/10/12/pydev-of-the-week-carol-willing/

本周,我们欢迎卡罗尔·威林(@威林卡罗尔)成为我们本周的 PyDev。让我们花些时间了解一下我们的同胞皮达尼斯吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我爱 Python!语言、图书馆和社区。在我的 Python 之旅中,我遇到了这么多有才华、有创造力的 Python 爱好者,你们激励了我。

我在圣地亚哥担任独立顾问,在圣地亚哥的 Fab Lab 驻地作为一名极客花时间教学和创作,并作为一名开发人员、作家和教师为开源软件和硬件做出贡献。我的日子充满了写大量的代码,拆开老式电子产品,并鼓励其他人用代码、Raspberry Pis、Arduinos 和可穿戴电子产品来编造他们的想法。Fab 实验室是一个特殊的地方,我一直在那里培育一个温柔的代码花园。温柔的代码花园是 Python sprint、包容性黑客空间和社区花园的结合

我的爱好,如修复乐器、弹吉他/尤克里里、tidepooling 和多肉园艺,都受到我的教育和兴趣的强烈影响。我的正规教育包括杜克大学的电子工程学位和麻省理工学院的管理学硕士学位,重点是计量经济学和技术创新。我是一个如饥似渴的非小说类读者,音乐爱好者,一个友好内向的人,喜欢听别人的创意和想法。

你为什么开始使用 Python?

几年前我开始积极使用 Python。我开始参与 OpenHatch 和它的开源走进校园项目。OpenHatch 有一个 Python/Django 代码库,我很喜欢用它们做文档、测试和一些后端开发。我也从他们的贡献者和支持我的朋友那里学到了很多关于创建友好和高效的开源社区的知识。

大约在同一时间,我偶然发现了 music21IPython 的笔记本。笔记本的交互性和可视化音乐的便利性吸引了我。它带回了童年探索代码的快乐和分析音乐而不受代码妨碍的自由。我希望在我高中和大学的时候,有 numpyscipypandasJupyter 笔记本在身边。学习数学,想象新的科学概念,与我的朋友和学习伙伴分享笔记本,这将是一场爆炸。

虽然这些项目让我开始使用 Python,但圣地亚哥 Python 用户组和皮拉迪斯圣地亚哥组激励我专注于 Python 的推广和教育。如果你去圣地亚哥,请到我们的聚会上来,和一些伟大的人打个招呼。

你还知道哪些编程语言,你最喜欢哪一种?

我是一名自学成才的程序员。我在六年级时开始编程,在贝尔实验室的主机上制作类似冒险的游戏,七年级时在早期的 Apple II 上重新制作 Atari Breakout 游戏(当时令人惊叹的彩色图形)。如果你喜欢复古游戏,可以看看布兰登·罗德斯的这个冒险游戏,或者 PyMntos 成员格雷格·摩泽尔的这个很酷的 Nethack 和 Python 演示

这些年来,我有机会使用和尝试许多语言:Basic、Pascal、Fortran、SQL、C、TSP、Scheme、Smalltalk、Lisp、C++、Java、Ruby、ObjectiveC、Extempore 和 Python。我最喜欢的语言是 C 和 Python,我最喜欢的编程工具是一个巨大的白板,上面有大量彩色标记。

你现在在做什么项目?

作为谷歌代码之夏的导师,我正在为 Systers 做一个 Django 项目。在 Fab 实验室,我用树莓 Pi 进行创作和构思,用 Jupyter 写笔记本。我还一直在研究 Python 开发人员指南,了解 CPython 开发工作流程和过程。我还在为格蕾丝·赫柏的开源日组织一个 OpenHatch 研讨会。

你最喜欢哪些 Python 库(核心或第三方)?

很难挑选出我最喜欢的库和项目。我真的很喜欢 requestsgithub3py ,因为它们有助于维护人员、良好的设计和易用性。熊猫sympypydymusic21jupyter 也是最爱。由才华横溢的奥黛丽·罗伊(Audrey Roy)维护的 Cookiecutter 也是我最喜欢去的地方。还有很多我喜欢的,我可以对他们做一个完整的采访系列。

你看 Python 作为编程语言何去何从?

在过去的一年里,我看到 Python 的打包功能有了很大的改进,变得更加用户友好,我感谢那些致力于此的贡献者。事实上,非常感谢所有为 Python 社区和生态系统做出贡献的人。

我也看到了一个稳定的转变,特别是在用户群体中,他们倾向于为新项目推荐 Python 3。为了支持 Python 3,库的维护者继续做着出色的工作,我们也开始从这项工作中获益。

迁移 Python 2.7 遗留项目的速度会更慢,尤其是如果项目对公司的业务基础设施至关重要。这种谨慎对这些公司来说是有经济意义的,并且有理由期待那些将迁移到 Python 3 的成本和风险降至最低的迁移工具将是这些公司构建强大的商业案例和投资未来迁移的关键。

所以现在,我看到一些促进 Python 健康发展的简化的经验法则是:

  • 鼓励在新项目中使用 Python 3。
  • 继续帮助库维护者增加对 Python 3 的支持。
  • 当使用 Python 2.7 的企业拥有已建立的代码库时,尊重其安全性和稳定性需求。
  • 继续教育用户,为新开发人员提供高质量的工具和资源,以及现有 Python 开发人员的构建技能

你还有什么想说的吗?

如果我可以实现一个关于 Python 的未来愿望,我希望全世界的开发者、问题解决者和用户听到 Python 这个词,并想到“Python——人民的编程语言”。我发现 Python 是一种优雅而有趣的语言,便于构建原型,并激励所有年龄的学生相信他们可以实现自己的梦想。

因此,如果你希望帮助实现我对 Python 的愿望,谢谢你!鼓励一两个朋友尝试“Python——大众编程语言”。

一周的最后 10 个 PyDevs

本周 PyDev:查尔斯·R·哈里斯

原文:https://www.blog.pythonlibrary.org/2017/12/04/pydev-of-the-week-charles-r-harris/

本周,我们欢迎查尔斯·r·哈里斯成为本周的 PyDev。Charles 是 NumPy 的核心开发人员,NumPy 是 Python 最流行的科学计算库之一。他一直在研究 NumPy,因为它还叫 Numeric。他也是 SciPy 的核心开发者。让我们花些时间来更好地了解查尔斯吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我有物理学本科学位和数学博士学位。像许多有类似背景的人一样,我最终做了许多没有直接关系的事情:光学和电子设计、光谱学、数据分析和编程。退休前,我的最后一份工作是为和我一起工作的工程师做数学顾问。现在我退休了,我的爱好很少,主要是阅读科幻小说和幻想小说,还有少量的数学和物理课本。

你为什么开始使用 Python?

当我完成我的博士学位时,另一个学生想在网上发表一组图表。他用 Java 做实验,Java 并不像宣传的那样具有可移植性,最后用 Python 做了实验,Python 是他推荐的未来事物。那大约是 1999 年。毕业并重返工作岗位后,出于好奇,我尝试了各种语言,发现使用 Python 非常愉快。不仅如此,对于我的工作来说,Python 的替代品是 Matlab 和 IDL,它们都不支持我想要使用的东西:遗传算法、图形、专业数字滤波器设计、整数矩阵的 Hermite 范式,以及其他各种通常不被认为是数值分析一部分的东西。Mathematica 本来是一个选择,但当时它非常昂贵,而且相当笨重。所以我最终选择了 Numeric 和 Python,因为这是一个令人愉快的环境,可以在其中编写我自己的算法,不需要任何成本,并且我可以做出贡献来修复或添加我想要的东西。做出贡献的能力是一个很大的卖点,因为多年来我发现自己为每一种新的语言和项目重写了相同的该死的函数,并且将它们中的一些放在一个更永久的公共位置并且用一种流行的语言编写意味着我不再需要这样做了。

你还知道哪些编程语言,你最喜欢哪一种?

在这一点上,它很像 C 和 Python。多年来,我一直在使用几种汇编语言,C、C++和 Fortran 77。对于日常编程来说,它完全是 Python。

你现在在做什么项目?

我是最资深的 NumPy 维护者,差不多就是这样。我认为我的工作是为那些真正工作的聪明的年轻人拿隐喻的披萨和咖啡。

哪些 Python 库是你最喜欢的(核心或第三方)?

NumPy、SciPy 和 Matplotlib 是我这些年来用得最多的。SymPy、mpmath 和 scikit-image 有时也很有用。我觉得有一天我真的应该看看 scikit-learn。

你是怎么和 NumPy 扯上关系的?

当我参与进来的时候,它仍然是数值型的,而且很敏感。我最初的贡献是 SciPy 中的 1D 零解算器,以及对 Numeric 的随机数包的修复,随后是 Numarray 中特定类型的排序例程,这些例程后来被 NumPy 接管。这些都满足了个人需求,这也是为开源做贡献的好处之一。我最初参与 NumPy 本身是出于一个简单的愿望,即分解构成其初始形式的大量代码,并使编码风格具有可读性。我认为让代码变得更容易理解会成为开发人员的诱饵。给你,猫咪,猫咪,猫咪。

你从这个开源项目中学到了什么?

没有什么能打败长寿。我并不是参与过这个项目的最有才华的开发人员,但是我在那里工作了很长时间,这有其特殊的品质。多年来,NumPy 从持续的维护和更新中受益匪浅,这反过来又有助于招募新的人才。这是一个良性循环。

你还有什么想说的吗?

不🙂

感谢您接受采访!

本周的 PyDev:chuukting Ho

原文:https://www.blog.pythonlibrary.org/2020/04/20/pydev-of-the-week-cheukting-ho/

本周我们欢迎卓婷何(@卓婷 _ 何 )成为我们本周的 PyDev。Cheuk 是 EuroPython 和各种 Python sprints 的组织者。你可以在她的网站上找到更多关于她的成就,或者在 Github 上看到她参与的开源项目。

让我们花些时间去更好地了解她吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是卓,代词她/她。我的背景是物理研究,但当我从香港搬到伦敦时,我改变了职业,成为了一名数据科学家。现在,我又做了一次改变,成为了一名开发者拥护者。这是我热爱参与技术社区的结果。我最新的爱好是流式编码教程用 JAMstack 建立网站。

你为什么开始使用 Python?

当我在伦敦找到第一份数据科学工作时,我就开始了。我当时用的是 R,但是我的团队用的是 Python。我很快学会了这一点,并从 R 切换到 Python。我爱上了它,从此一去不返。

你还知道哪些编程语言,你最喜欢哪一种?

I recently touched a bit about Ruby and JavaScript due to my hobby (website building), however, I still think Python is the best. It is so beginner-friendly but remains lots of flexibility for more advance users to explore.What projects are you working on now?Too many things (LOL). For open-source project, I am maintaining the Python library of TerminusDB - a graph database that stores data like git, I am so glad that I can do open-source in my job and the team is lovely. For the community, I am organizing Pyjamas - a 24hour global Python online conference, the organising team consist of people around the world. I also just started a weekly live stream chatting about Python every Wednesday at 1pm UK time. I may also turn them into a podcast so Pythonistas can have some entertainment during this difficult time. Those are some of the things that I am working on.Which Python libraries are your favorite (core or 3rd party)?Pandas and Dateutil, they are so powerful that I used them in every job, from data science projects in a travel agency to financial crime team in a global bank. Even my job now I still use Pandas and Dateutil with TerminusDB to build knowledge graphs.How did you get involved in organizing tech meetups / conferences?When I started my data science career, I felt that there are so much to learn and I discovered that there are lots of meetup groups that I can join. Some of them have very lovely communities and I just go to meetups almost every day. I started to become friends with Chiin, the founder of the AI Club of Gender Minorities because of that and she invited me to be her co-organiser. I thought, that's great as I can pick the date of my favourite meetup, so I said yes. And since it never stops - meeting more people and having more friends get me more and more involved in the communities as most organisers are super friendly and welcoming. They are happy to see you grow and become a bigger part of the community.Is there anything else you’d like to say?Recently I start mentoring some ladies in the communities. I like the experience, I like bringing out the potentials from these talented people and see them grow. I hope anyone who has some experience in the tech industry will consider take on beginners form the minorities group as their mentee.Thanks for doing the interview, Cheuk!

本周 PyDev:克里斯·莫菲特

原文:https://www.blog.pythonlibrary.org/2016/03/07/pydev-of-the-week-chris-moffitt/

本周我们欢迎克里斯·莫菲特( @chris1610 )成为我们本周的 PyDev!Chris 在他的博客上是一名关于 Python 的活跃作家,也是 DjangoCon 的演讲者。让我们花点时间更好地了解他。

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我目前和妻子及两个孩子住在明尼苏达州圣保罗附近。在大学,我学的是电子工程和计算机科学。有点令人惊讶的是,我的日常工作实际上并不需要了解 python。然而,我的 python 知识在构建一些小的(但确实有用的)程序来操作数据和创建关于各种业务主题的报告方面非常有用。我总是在寻找使用 python 的方法,让我的工作变得简单一点。由于大公司中有很多人认为 Excel 是唯一的数据分析工具,所以我真的很喜欢只用几行 python 代码就能构建出非常强大的东西。

我大部分的业余时间都和我的妻子和孩子在一起。当我有时间的时候,我确实喜欢阅读和看电影。我喜欢在业余时间通过使用 python 来保持我的编程技能。

你为什么开始使用 Python?

在 90 年代末,我是一名 Unix 系统管理员,使用 perl 做一些基本的系统管理工作。一位同事提到 python 是一种很酷的语言,我应该去看看。我粗略地看了一下,但没有使用它。此后不久,我开始在 Windows 环境中做一些工作,并使用 python 来帮助管理收集和分析一些日志文件。一旦我开始使用 python,事情就一目了然了。我觉得自己能够快速轻松地完成工作。在过去 15 年左右的时间里,我一直断断续续地使用 python。

你还知道哪些编程语言,你最喜欢哪一种?

我的第一语言是基于我信赖的苹果 IIc。在高中,我学习了 Turbo Pascal,这是我的第一门“真正的”计算机语言。在大学期间,我学过一点 C、C++和一些汇编语言。因为硬件和软件的紧密结合,我真的很喜欢组装。不幸的是,我从来都不擅长 C 语言,并且真的很难掌握我的 C++面向对象类。

就我最喜欢的语言而言,python 是迄今为止我最喜欢和最有生产力的语言。我现在做的工作主要是业余爱好和小脚本,所以 python 非常适合。python 模块的丰富生态系统确实令人兴奋。我知道我可以选择做任何事情,从核心数据科学到 web 开发,再到像 Raspberry pi 这样的嵌入式系统。Python 的应用范围之广令人惊叹。

你现在在做什么项目?

在过去的一年半时间里,我一直在写我的博客——实用商业 Python (pbpython.com)。对我来说,这是一个很好的论坛,可以让我更多地了解 python 空间中可供办公室或商业环境中的人们使用的工具类型。我写这篇博客的目的是向其他人展示,如果他们开始将 python 集成到他们的数据争论工作流中,他们可以获得哪些好处。当人们试图在 Excel + VBA 中构建庞大的应用程序时,他们是如何让自己的生活变得如此复杂的,这让我一直感到惊讶。我认为这些人会发现,如果他们学会了如何使用 python 来完成他们的许多任务,他们的生产力会有巨大的提高。如果有人能在 Excel 中写出复杂的 If 语句,那么我有信心他们能学会 python。

哪些 Python 库是你最喜欢的(核心或第三方)?
现在,我花了很多时间和熊猫一起工作。我认为这是一个处理数据的非常棒和强大的库。当谈到分析和操作数据时,我不断地惊讶于我能做多少事情。

对于可视化数据,我喜欢使用 Seaborn,因为它迫使我以不同的方式查看我的数据,并且对我学习如何以易于理解的方式呈现复杂数据非常有用。

当在 windows 或 linux 上安装和维护我的 python 环境时,我非常欣赏 conda。Continuum Analytics 在 conda 上的工作为 python 社区做出了巨大贡献。

当我发现需要做 web 开发时,我倾向于使用 Django。我知道现在有一些更小、更轻量级的框架,但是我发现自己总是为了我的项目回到 Django。

作为一门编程语言,你认为 Python 将何去何从?

我认为作为一门语言,python 的未来非常光明。我记得当我第一次开始学习 python 的时候,有很多关于 python 或 perl 是否会成为脚本语言选择的激烈争论。然后,当像 Django 和 Rails 这样的 web 框架开始流行时,有很多关于 ruby 和 python 的讨论。现在,在数据科学领域,人们谈论 R vs. python 是数据科学家的最佳工具。在 15 年的时间里,python 已经能够适应并在多个不同的领域蓬勃发展,我认为这证明了语言的力量、领导者的深思熟虑以及社区的整体支持。

当然,在前进的道路上有很多坎坷,当然也有很多其他语言值得学习。但是,我认为 python 会继续发展壮大,会伴随我们很长一段时间。

你还有什么想说的吗?
感谢您给我这个机会与您的读者交谈。我喜欢你的博客,也喜欢阅读你对 Pydev 的采访。我希望人们会对此感兴趣。我还希望这次采访能够鼓励那些发现自己在做大量手工数据操作工作的人认真学习 python,并将其融入到他们的工作流程中。

感谢您接受采访!

本周 PyDev:克里斯·威瑟斯

原文:https://www.blog.pythonlibrary.org/2016/02/08/pydev-of-the-week-chris-withers/

本周我们欢迎克里斯·威瑟斯成为我们的本周 PyDev!Chris 使用 Python 已经有一段时间了。我想我使用的第一个包是优秀的 xlrd 和 xlwt 包,用于读取和写入 Excel 文件。你可以从他的 github 简介中了解他对 Python 的贡献。让我们花些时间更好地了解他。

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我在津巴布韦长大,现在就像在英国一样,但最终却拥有两本护照,都是我从未生活过的国家的护照。
当我不编码的时候,我不是在为曲棍球比赛当裁判,就是伴随着舞曲做事。

你为什么开始使用 Python?

我在我家附近的一家小软件公司工作,他们正在寻找他们一直使用的基于 Lotus Notes 的堆栈的替代品。我们尝试了 Perl 和 mod_mason,但并不是每个人都是它的粉丝,所以我的任务是调查 Zope。Zope 和它的“通过网络”编辑和对象数据库是一股令人惊异的新鲜空气。这是我第一次接触 Python,更重要的是,Python 社区和开源软件。从此再也没有回头!

你还知道哪些编程语言,你最喜欢哪一种?

真的没有。我处理的 Bash 脚本比我希望的要多(因为我不得不处理不止 0 个脚本),并且在必要时还会处理一些 Javascript,以及必要数量的 HTML 和 CSS,但是 Python 是我整个职业生涯中最终需要的全部...

你现在在做什么项目?

一堆与数据导入有关的库,位于https://github.com/Mortar之下,全部用于为我当地的俱乐部查找、导入和清理曲棍球比赛数据。
我还确保 testfixtures (我收集的用于自动化测试的便利工具)保持最新,并且我最近完成了对 Mush 的重写,这是一个用于抽象脚本的公共部分并在它们之间共享资源(参数解析器、数据库连接、配置存储等)的库。

我有一大堆其他的项目想要完成,但遗憾的是时间太少了,无法让它们达到我想要的目标,而且我们的第一个孩子在三月初就要出生了,我看不到这种情况会有什么改变。

哪些 Python 库是你最喜欢的(核心或第三方)?

我不得不说 psycopg2 和 SQLAlchemy 是我最喜欢的。自从我使用 Postgres 以来,psycopg2 一直是 Postgres 坚如磐石的客户端库,而 SQLAlchemy 是我使用过的最丰富、最强大的库之一。文档很棒,它变得越来越容易使用,而且它有一个由 Mike Bayer 无止境的精力和承诺驱动的奇妙的社区。如果您正在使用 Python 中的关系数据库做任何事情,从简单的连接池到出色的 SQL 抽象层,一直到成熟的 ORM,您不会在 Python 世界中找到更好的了,也可能在任何其他语言生态系统中找到更好的了!

作为一门编程语言,你认为 Python 将何去何从?

我们正处于 Python 时间轴上的一个有趣的点:Python 3 现在完全可用,但大多数人仍然有庞大的 Python 2 代码库,他们没有时间迁移。结果,仍然有一些大的库与 Python 3 不兼容,Fabric 是我最近遇到的一个,但是也有一些从来没有或者不再支持 Python 2。作为一个库维护者是非常痛苦的,不得不为一个库支持两种语言并不是一件有趣的事情,而且这也伤害了语言。我不能说 Python 3 中的 Unicode 比 Python 2 中的感觉好很多,所以我想知道这一切是否值得?

你对当前的 Python 程序员市场有什么看法?

我认为这可能是它的顶峰:对有才华的 Python 程序员有巨大的需求,特别是在金融领域,但这种语言正开始像 Java 一样成为一种真正的商品,那里有大量廉价的程序员,而需求正在慢慢减少。看看 Python 在未来 10 年会怎样,是像 Go 这样的东西会出现并超越它,还是它会像 C、C++和 Java 一样成为主流,这将是非常有趣的。

谢谢!

本周 PyDev:克里斯托弗·克拉克

原文:https://www.blog.pythonlibrary.org/2015/09/14/pydev-of-the-week-christopher-clarke/

本周,我们欢迎克里斯托弗·克拉克( @realchrisdev )成为我们本周的 PyDev。Christopher 写了一篇 Python 博客,值得你花时间细读。你可能也会觉得他的 github 简介很有趣。让我们花些时间去更好地了解他吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我拥有肯特(英国)坎特伯雷大学的计算机科学硕士学位和西印度群岛大学(特立尼达和多巴哥)的经济学硕士学位。事实上,在我成为一名开发商之前,我在特立尼达和多巴哥中央银行担任了大约七(7)年的经济学家。我是田径和 NBA 的忠实粉丝,喜欢烹饪、徒步旅行和阅读哲学、伦理和宗教书籍(尽管我承认过去六个月我一直沉迷于维特根斯坦的“哲学研究”)。我住在特里尼达和多巴哥,我和阿瓦结婚了,我们没有孩子,但是我有两只猫(吉特&查德)在我把它们从垃圾压缩机里救出来后收养了我

你为什么开始使用 Python?

在我担任央行经济学家的日子里,我主要致力于开发数据集以及建模和预测方面的经济统计数据。我的数据开发工作让我接触了各种数据库(Oracle、Dbase IV、Foxpro、FAME)以及与它们相关的 4gl。我还自学了 VB/VBA,并建立了一些办公自动化和统计数据处理和报告系统,令我惊讶(和恐惧)的是这些系统至今仍在使用。我最终对经济学失去了热情,对编程和软件开发产生了真正的热情。我最终被一家爱尔兰咨询公司聘用为名誉顾问。我主要在伦敦工作,为一些投资银行和数据供应商工作。在这段时间里,我学习了一点 C 和 Java,以及像 Perl 和 Awk 这样的脚本语言。

2000 年,一个机会出现了,我可以在计算机科学方面继续深造。那时,我对 Java 非常着迷,并决心利用我在学校的所有“额外”时间将我以前开发的一些系统移植到 Java 上。然而,我的一位导师(Leonid Timochouk)一直在谈论 OCaml 和 Python 如何更好地适应想要开发的系统。我只是没有“研究”OCaml,而是立即爱上了 Python。当然,大学课程的官方语言是 Java,所以我没有机会学习我想要的那么多 Python。无论如何,当时的就业市场,尤其是我咨询过的“城市”公司,严重倾向于 Java/C/C++。幸运的是,当我休假回到特立尼达时,我在中央银行工作时的同事联系了我,他担任了特立尼达西印度群岛大学研究所的领导。他们对开放数据和开放源代码的想法非常感兴趣,并希望建立一个统计“数据库”,以支持加勒比地区的经济和社会研究。由于什么都没有,我可以自由地使用最合适的技术来完成这项工作。记得那是在 2000 年早期,所以我惊喜地发现,软件世界之外的人竟然熟悉 OSS 和相关概念。我接受了这份工作,并让他们同意使用 Python 作为我们的主要实现语言。该项目的一个关键方面是统计数据库部分。我们开始使用 Numpy 和 Scipy 以及 PostgreSQL 开发一个时序数据库 API。正如所料,这比我们预期的要复杂得多,因为像 Pandas 这样的工具或 SQLAlchemy 这样的 ORM 并不存在。我们不得不从头开始建造一切。虽然有 Numpy 和 Scipy,但有许多关键的技术决策必须在流程的早期做出,例如是使用 Numpy 屏蔽数组(MA)来处理缺失数据,还是使用带有 sentinel 值的标准 Numpy 数组来表示缺失值。像许多人一样,我们选择使用 MA 阵列,而有趣的是 Pandas 使用 NA 阵列。鉴于当时 Numpy 的状况,事后看来,这显然是更好的方法。无论如何,我们最终能够取得一些实质性的进展,特别是在发现 Reggie Dugard 在 SciPY 会议上提交的一篇论文之后,这篇论文描述了他在工作中开发的一个类似的系统(但没有 PostgreSQL 后端)。我通过电子邮件联系了他,他毫不犹豫地为我们提供了很多这方面的指导。他甚至让他的公司给我们特别的权限来访问他为这个项目开发的源代码。这向我展示了 Python 真正的优势在于它的社区中那些愿意与来自世界各地的陌生人分享关于 Python 的想法的人们。我们还使用 Plone 作为我们的 CMS,并尝试使用 Zope 构建 Web UI,但最终失败了。不幸的是,我们的项目最终遇到了资金困难,所以我们没有完成我们的任务,但总而言之,这是对 Python 开发世界的一个很好的介绍。

你还知道哪些编程语言,哪种是你最喜欢的?

我目前做的大部分事情都与网络有关,所以 JavaScript 是必然的。和大多数主要语言不是 JavaScript 的人一样,作为一种语言,我对它有一种复杂的感觉,但是当你努力克服它(或者实际上是你对它应该如何工作的概念)以使一些复杂的前端交互以它应该的方式工作时,你不能击败成就感。虽然有些人可能不认为它是“真正的”语言 Sass,但在有些混乱的 CSS 世界中,它是真正的游戏规则改变者。当你与没有太多经验的设计师和前端开发人员一起工作时,用片段和导入来组织你的 CSS 以及使用 mixins 和构建可重用组件的能力变得越来越重要。

我用过 R,而且比我当经济学家时用过的任何计量经济学和统计软件包都更喜欢它。它还拥有比 Python 更好的可视化工具,但我认为 Python 是一种用于构建数据分析系统的更强大的语言。

我玩过 Objective C,我对 Swift 非常好奇。

我们已经为几个 IOs/Android 应用程序构建了后端 API,每次我们这样做时,我都希望有一个更好的 Pythonic 答案来构建移动应用程序。当然有 Kivy,但这似乎更倾向于游戏。我对 toga 抱有很大的希望,但是现在说这个项目会如何还为时过早。

你现在在做什么项目?

我经营一家小型咨询公司,我们主要使用 Django 进行网络开发。最近,我们在基于 CMS 的项目中采用了 Wagtail CMS 。对于统计/金融类型的应用程序,我们通常使用 Django、Pandas 和一个或多个 sci kit(sc kits-learn、sckits-stats-model 等)。).像大多数咨询公司一样,它们也有一个“秘密”计划,逐渐远离客户工作,专注于我们自己的应用和产品。希望在接近年底的时候,我能够就此发表更多的看法。

我也有一些自己维护的开源项目;姜戈熊猫是最受欢迎的。它提供了 Django ORM 和 Pandas 之间的桥梁,允许用户从 Django 查询集中快速构建 Pandas 数据框架。wag TiAl-cookiecutter-Foundation提供了一种方法来快速建立使用 Zurb 基金会框架的成熟的 Wagtail CMS 站点。这些网站提供了一套全面的页面和应用程序、可行的供应和部署、bower 前端依赖性管理等等。

我是 gratipay/gittip 的主要贡献者和倡导者,但由于我们商业模式的某些方面可能会引起金融监管机构的注意,导致了法律问题,我们被迫转向。不幸的是,虽然我们已经转向“团队和开放作品”,但我觉得 graphi front 的事情仍然非常悬而未决。

哪些 Python 库是你最喜欢的(核心或第三方)?

Django 仍然是我最喜欢的 web 框架。我们经常听到抱怨说它太重,ORM 太乱,模板系统太慢,不可伸缩等等。然而,它仍然能够满足我们 90%的开箱即用需求。无论如何,强大的第三方生态系统和社区意味着你总能找到工具/应用/信息来支持许多不同风格的应用。我们是 Wagtail CMS 的忠实粉丝,我们尤其喜欢它没有“插件”,只有从抽象模型继承的标准 Python 模块和类。

Pandas 和 IPython Notebook 真的让 Python 登上了地图,成为 R 在数据分析领域的一个严重竞争对手。虽然我们确实总是可以使用 Numpy 和 Scipy 来完成相同的任务,但是要做任何有意义的事情都需要相当多的代码(与 R 之类的东西相比)。Pandas 和 IPython 笔记本可以让你的典型的技术娴熟的数据分析师,记者,经济学家等。,觉得他们所做的只是继续手头的工作,而不是学习如何成为“核心”程序员。事实上,我已经成功地为这类用户提供了一套“模板笔记本”,其中包括许多帮助功能和内置文档。他们可以复制和修改这些笔记本来分析不同的数据集,向分析中添加更多的指标等等。这些用户中的大多数都使用 Windows,我也对 Conda 允许在 Windows 上轻松安装 Pydata 堆栈和其他 Python 包印象深刻。

其他真正不可或缺的包包括 scrapy、Ansible、venv/virtualenv/virtualenvwrapper、requests、scikits-statmodels 等等。

作为一门编程语言,你认为 Python 将何去何从?

我认为向 Python 3 的过渡会比人们想象的要快得多。许多流行的框架和应用程序(Django、Flask、PyData stack 等。)已经支持 Python 3。很多流行的书籍(Python 食谱,测试驱动开发,Django 的两勺,等等。)都假设用户会使用 be Python 3。和往常一样,症结在于部署。最近,一位同事为移动应用 Django/GeoDjango 开发了一个 REST API,Python 3。一切都很好,直到我们试图部署到一个数字海洋液滴。不幸的是,我们发现 venv 目前在 Ubuntu 14.04 上完全崩溃了,甚至我们最喜欢的 Devops 工具 Asnsible 也在支持 Python 3 方面拖了后腿。

你对当前的 Python 程序员市场有什么看法?

关于这一点,我所能提供的只是轶事证据。当我 2006 年第一次参加 Pycon 的时候,我们只有几个赞助商,只有一两家公司有兴趣招募开发人员。相比之下,在 Pycon 2015 上,这个地方绝对挤满了试图招募 Python 开发人员的招聘人员和公司。即使在 Python 并不流行的加勒比海地区,但就我所见,我所知道的该地区的少数 Python 开发人员似乎让自己非常忙碌。

你还有什么想说的吗?

Python 是一种有趣的语言,它有一个以尊重他人为特征的强大社区。我觉得社区中的一些主要组织,如 PSF 和 DSF,在鼓励传统上代表不足的群体的多样性和参与方面做得很好。我认为,在传统计算国家之外的开发人员方面还需要做更多的工作,比如加勒比海地区、拉丁美洲部分地区、中东地区,甚至班加罗尔以外的印度地区等

谢谢!

一周的最后 10 个 PyDevs

本周 PyDev:Christopher Neugebauer

原文:https://www.blog.pythonlibrary.org/2018/07/23/pydev-of-the-week-christopher-neugebauer/

本周,我们欢迎克里斯托弗·纽介堡( @chrisjrn )成为我们的本周开发者!克里斯托弗帮助组织了“T2”北湾巨蟒队和澳大利亚皮康队。他还是 Python 软件基金会的研究员。您可以在 Github 或他的网站上找到他。如果您有兴趣参加北湾巨蟒 2018 大会,您可以在此提交一份提案。

现在,让我们花一些时间来更好地了解他!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我来自澳大利亚塔斯马尼亚州的首府霍巴特,但这些天,我和我的未婚夫乔希住在加利福尼亚州的佩塔卢马。我拥有塔斯马尼亚大学的计算机科学和数学学士学位,我目前的工作是软件工程:我目前在 Shutterstock 从事搜索排名工作。我是一名志愿者会议组织者,我目前的项目是北部湾 Python 会议,但我也是澳大利亚 PyCon 的联合牵头组织者。自 2013 年以来,我一直是 Python 软件基金会的研究员。

在这方面,我们刚刚宣布了 2018 年北湾 Python 的日期-它将于 11 月 3 日和 4 日在加利福尼亚州历史悠久的佩塔卢马市中心举行。你应该在 Twitter 上关注我们,地址是 @northbaypython ,或者至少在 northbaypython.org注册我们的时事通讯。

你为什么开始使用 Python?

在学校的第 10 年,我和我的一个朋友参加了一个编程比赛。有一个问题涉及到寻找一个非常大的数字的一些事实,我听说 Python 支持开箱即用的 bignum 算法。我尝试了一下,当然,使用 Python 使它变得非常简单。

从那时起,我意识到 Python 可以让许多其他事情变得简单——它做到了!从那以后,我一直坚持使用 Python。

你还知道哪些编程语言,你最喜欢哪一种?

我的第一门编程语言是微软的 QBasic,我也以编写 C、C++、PHP、少量 Perl、Objective-C、bash 和 AWK 而闻名。不过,我最终不得不写的是 Java。

在过去的几个月里,我很荣幸地在一个编写良好的 Java 8 代码库上工作,他们为语言添加匿名函数和流处理的工作给我留下了深刻的印象。它远不如 Python 的列表理解和生成器整洁,但是我需要编写的复杂 for 循环的数量已经大大减少了。

对于这个 Python 程序员来说,让我经常使用的语言更好地适应我的大脑真是太好了!

你现在在做什么项目?

North Bay Python 会议是我的主要副业,除此之外,我还维护着一个与座谈会同时进行的会议门票销售。它叫做 Registrasion,是我在 2016 年作为 PSF 资助的一部分写的。它是围绕出售像 linux.conf.au 这样的活动的门票而建立的(它有多个晚餐和网络会议,可供不同的人使用),但事实证明它足够灵活,可以处理像 North Bay Python 这样更小、更简单的活动。

哪些 Python 库是你最喜欢的(核心或第三方)?

最近我做了很多工作,测试不同搜索排名技术之间的差异。我的工具箱中有很多工作涉及到标准库中的“concurrent.futures”和“csv ”,以及 Kenneth Reitz 等人精彩的“requests”库。

虽然 Python 非常适合构建大而可维护的代码,但能够将小的库模块组合在一起解决特定的任务对我来说是一个巨大的胜利。

我看到你组织了很多 Python 会议。你是怎么进去的?

首先,我管理了我大学的计算机科学协会/俱乐部几年,这包括寻找演讲者和安排会议等等...但是我的组织生涯真正开始是在 2010 年理查德·琼斯突然给我发信息,提醒我我已经志愿参加了 2012 年的 PyCon Australia。我记得没做过这样的事,但我还是同意了。

两杯啤酒下肚后,我就上瘾了。后来我运行了 linux.conf.au 2017,在我搬到美国后,我帮助创建并运行了 North Bay Python!

你能给想开一个地区会议的人一些建议吗?

当然啦!与其他会议组织者交谈。事实证明,有很多共享的知识,特别是在 Python 世界,就像大多数其他 Python 事物一样,我们是一群非常友好的人。找到赞助线索,了解你需要做出什么样的权衡,或者热情地介绍你真正想在活动中发言的人,如果有人以前做过这些事情,那就容易多了。我们还在 PyCon US 举办了一年一度的“地区 PyCon”BoF 会议,这也使你很容易被人认识。

你还有什么想说的吗?

Python 社区让我非常感激的一点是,作为一名组织者和社区建设者,我已经建立了自己的声誉和技能。在过去的 5 个月里,我只从事了一份主要是 Python 的全职工作,并且在过去的两年里,我只对开源 Python 项目做出了实质性的代码贡献。

我很确定我只有方法或能力去做这两件事,因为社区认为我有能力,这绝对不是我的代码!

感谢您接受采访!

本周 PyDev:Christopher Truncer

原文:https://www.blog.pythonlibrary.org/2018/01/22/pydev-of-the-week-christopher-truncer/

本周,我们欢迎克里斯托弗·特兰瑟(@克里斯特兰瑟)成为我们的本周 PyDev!他是面纱框架的联合创始人和当前开发者。Christopher 主要用 Python 开发笔测试工具。你可以在 Github 或他的网站上看到他在忙些什么。让我们花一些时间来更好地了解他!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我从小就喜欢电子游戏和玩电脑。出于某种原因,我从未想过我会有机会将这种热情转化为职业,所以我开始去学校学习刑事司法。不久之后,当我意识到我可以通过玩电脑来谋生时,我转到了信息技术专业。我一直想从事计算机安全方面的工作,当我的室友第一次让我黑他的电脑时,我就被迷住了。

毕业后,我开始担任系统管理员,后来进入计算机安全领域,进行渗透测试和红队评估。不幸的是,我从未接受过任何正式的发展培训。从发展的角度来看,我所学到的一切都是自学或通过愿意帮助我的人来指导的。

我也喜欢训练巴西柔术,我喜欢视频游戏,并且非常喜欢开发工具来帮助我做计算机安全/黑客工作。

你为什么开始使用 Python?

我想要一种我认为比较容易掌握的语言,而且我日常使用的许多其他工具都是用 Python 开发的,所以我认为这是一种不错的语言。我也真的很想钻研 Python 或任何语言,因为我做的很多任务都可以自动化,我想知道如何自动化它们。

在我开始最初的几个项目后,它们变得相当大,迫使我真正开始学习 Python 的来龙去脉。维护各种项目有助于确保我与时俱进。

本周派德夫:克里斯蒂·希顿

原文:https://www.blog.pythonlibrary.org/2018/01/15/pydev-of-the-week-christy-heaton/

本周,我们欢迎克里斯蒂·希顿( @christytoes )成为我们本周的 PyDev!Christy 是 Python 软件基金会的博客作者。你可以通过她的 Github 页面或者查看她的网站来了解她在做什么。让我们花些时间去更好地了解她吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我学的是人类学,后来又学了地理信息系统(GIS)。GIS 对我来说是一个完美的领域,因为它将我对人、技术和制图的兴趣结合在一起。我现在是一名 GIS 项目经理,也是华盛顿大学的 GIS 和 Python 讲师。在爱好方面,我喜欢把有共同兴趣的人聚集在一起,这就是为什么我帮助组织 PyLadies Seattle 和 Maptime Seattle。我也是 Python 软件基金会的博客作者。

你为什么开始使用 Python?

在开始我的 GIS 分析师职业生涯时,我对使我的工作更容易、更快、更准确以及扩展我的制图软件的功能感兴趣。我的 GIS 应用程序内置了一个 Python API,所以就编程语言而言,它是唯一的选择。随着我开始将脚本整合到我的工作流中,并给我的老板留下深刻印象,我开始意识到 Python 的全部潜力,现在我将它用于各种事情,从 GIS 工作流到测试 web 服务,再到构建 web 应用程序。

你还知道哪些编程语言,你最喜欢哪一种?

我经常使用 SQL,也涉猎过 R 和 JavaScript。但是 Python 是我最喜欢的。

你现在在做什么项目?

我在工作中使用 Python 进行测试和自动化。我还在为华盛顿大学的 Python 编程证书进行课程开发。

哪些 Python 库是你最喜欢的(核心或第三方)?

我真的很喜欢请求。它让我想做的与检查服务或网页抓取相关的事情变得如此简单和干净。Jupyter 笔记本是我的另一个最爱。我发现它们对于测试开源地图库非常有用,因为它们允许你只用几行代码就可以在笔记本上创建地图!GeoPandas 是我的首选开源 GIS 库。

你还有什么想说的吗?

谢谢!

感谢您接受采访!

本周 PyDev:Claudia Regio

原文:https://www.blog.pythonlibrary.org/2021/01/18/pydev-of-the-week-claudia-regio/

本周,我们欢迎 Claudia Regio(@ Claudia Regio)成为我们本周的 PyDev!Claudia 是 Python 数据科学的项目经理,主要负责微软 Visual Studio 代码中的 Python 笔记本。她还在微软的开发博客上写博客。

让我们花些时间去更好地了解克劳迪娅!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我来自意大利,4 岁的时候搬到了大西雅图地区。从小到大,我生活和呼吸壁球,如果不是因为 COVID,我仍然会!我一直是并将永远是一个超级数学书呆子,现在已经辅导数学超过 10 年了。我就读于华盛顿大学,主修应用物理学,辅修综合数学和应用数学,同时还是德尔塔·泽塔女生联谊会和 UW 男子壁球队的成员。

毕业后,我在 T-Mobile 担任系统网络架构工程师时,从华盛顿大学获得了数据科学证书,以提高我的数据分析和数据科学技能。

在担任该角色两年后,我过渡到微软的项目经理,负责 VS 代码中的 Python 扩展,专注于数据科学和人工智能组件和功能的开发。

你为什么开始使用 Python?

我的数据科学证书课程让我在 2017 年开始学习 Python。

你还知道哪些编程语言,你最喜欢哪一种?

我在大学期间学习了 Java,虽然我喜欢 Java 是一种强类型语言,但在数据科学方面,没有哪种语言能胜过 Python。

你现在在做什么项目?

我目前正在管理 VS 代码中的 Python + Jupyter 扩展伙伴关系。虽然我们最近发布的 Jupyter 扩展在 VS Code Insiders 中为其他语言提供了 Jupyter 笔记本支持,但我重点关注这两个扩展的协作,以便为使用 Python 的数据科学家创建最佳的笔记本体验。

哪些 Python 库是你最喜欢的(核心或第三方)?

Scikit-learn 将永远拥有我的心灵<3 你认为 Python 笔记本最好的特性是什么?

我们目前在 Python 笔记本中最好的特性包括变量浏览器、数据查看器和我个人最喜欢的 Gather(一个免费的 VS 代码扩展)。

当在笔记本上进行实验和原型制作时,随着用户探索不同的方法,它通常会变得很忙。在最终达到期望的结果(例如数据的特定可视化)之后,用户将需要手动管理该特定流所涉及的单元。这项任务既费力又容易出错,让用户没有一个强大的方法来聚集相关的代码。在笔记本用户中常见的第二种情况是,软件工程师的任务是将现有的笔记本转换成生产就绪的脚本。提取不需要的导入、图表和输出的过程通常非常耗时,并且还会导致错误。Gather 是一个免费的 VS 代码扩展,它获取创建选定单元格的内容所需的所有相关和依赖代码,并将这些代码依赖项提取到一个新的笔记本或 Python 脚本中。这有助于节省数据科学家和开发人员大量的笔记本清理时间!

为什么 Python 开发人员和数据科学家应该使用 Visual Studio 代码而不是另一个编辑器?

VS Code 是一个免费的开源编辑器,拥有一系列扩展(来自微软和开源社区)、产品和功能,旨在为开发人员和数据科学家提供无缝体验。一些例子包括:

  • Python (附带 Jupyter 扩展):包括智能感知、林挺、调试、代码导航、代码格式化、Jupyter 笔记本支持、重构、变量资源管理器、测试资源管理器、代码片段等功能!
  • Pylance :语言服务器,用丰富的类型信息提升您的 Python 智能感知体验,帮助您更快地编写更好的代码。
  • 实时共享:让您能够与其他人实时协作编辑和调试,无论您使用的是什么编程语言或正在构建的应用程序类型。它允许你立即(并且安全地)共享你当前的项目,然后根据需要,共享调试会话、终端实例、本地主机 webapps、语音呼叫等等!
  • Gather :一个代码清理工具,它使用静态分析技术来发现并复制所有用于生成单元格结果的相关代码到一个新的笔记本或脚本中。
  • Python 安装程序的编码包:一个安装程序包,帮助学生和新程序员快速入门,安装 VS 代码,上面所有的扩展,以及 Python 和 numpy、pandas 等常用包。
  • Azure Machine Learning :从 Visual Studio 代码接口使用Azure Machine Learning service轻松构建、训练和部署机器学习模型到云或边缘。
  • 超过 350 个社区在 VS 代码市场上贡献了 Python 相关的扩展!

正是这些扩展和开源社区之间建立的伙伴关系,以及开发部门始终为客户构建的思维模式,为开发人员和数据科学家在 VS 代码方面创造了无与伦比的体验。

你还有什么想说的吗?

我要感谢与我一起工作的令人难以置信的团队(David Kutugata、Don Jayamanne、Ian Huff、Jim Griesmer、Joyce Er、Rich Chiodo、Rong Lu ),是他们让这款工具变得栩栩如生,我还要感谢所有与我们合作并帮助我们为数据科学家打造最佳工具的客户!

如果有人想提供任何额外的反馈、功能请求或对产品有所帮助,您可以在此提出

克劳迪娅,谢谢你接受采访!

本周 PyDev:康纳·福斯特

原文:https://www.blog.pythonlibrary.org/2020/08/31/pydev-of-the-week-connor-ferster/

本周我们欢迎康纳·福斯特成为本周的 PyDev!Connor 是最近出现在 PythonBytes 播客上的handcals的作者。你可以在 Github 上看到更多康纳的作品。

现在就让我们花点时间去了解一下康纳吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我今年 38 岁,31 岁回学校读土木技术,然后是土木工程。土木工程是建造任何与“文明”有关的东西的学科:水资源和管道、道路和交通、建筑和桥梁。我目前在加拿大做建筑方面的结构设计培训工程师。我的教育包括在学院和大学之间的一个特殊的转校年,在这一年里,除了其他事情,我还学习了 Matlab 编程。正是在那一年,我真正进入了编程,主要是作为一种创造性的发泄。我不得不说,用 Python 编程可能是我现在最大的爱好,但我也喜欢烹饪、做面包和阅读。最近一直在读乌苏拉·k·勒古因的《万物》。

在回到大学之前,我也做过猎头、企业主、销售人员和音乐学校的辍学生(按时间倒序排列)。

你为什么开始使用 Python?

我第一次听说 Python 是在大约 2009 年的一次家庭聚会上。那时,我有我的在线钱包业务,我已经雇佣了我朋友的公司来建立网站。他是 Ruby on Rails 的忠实粉丝,他让我对学习 Ruby 产生了兴趣。当我参加这个家庭聚会时,我遇到了一些其他的 web 开发人员,我告诉他们我对学习 Ruby on Rails 的兴趣。他们说,“噗噗!忘了露比吧。学 Python 吧!”他们向我展示了他们的一些 Python 项目,并谈论 Python 有多棒(虽然我不记得他们说了什么!).从那以后,我就知道了“Python”,只是作为一个名字,其他的就不多了。

2018 年,我看到大学开设了一门叫做“系统化程序设计导论”的课程,这是非计算机专业的一种计算机科学课程。这个课程是教其他学科的人如何为他们自己的学科编写程序。当我看到这门课程将用 Python 来教授时,我就报名了,尽管它没有给我的学位学分。那门课改变了我的生活。我相信我在期末考试中得了 A+,那次考试全是手写的 Python 代码。

从此,我爱上了 Python。我太爱 Python 了。

你现在在做什么项目?

我有两个开源项目,我正在建设,称为“handcalcs”和“forallpeople”。Handcalcs 是一个为简单、单一目的而开发的库:用 Python 代码编写的计算可以显示出来,就像您手写的一样。Forallpeople 是 Python 的另一个单元库,但它是为遵循“约定优于配置”方法的快速和随意计算而设计的。

除了这些项目,我还在公司内部从事一些专有项目,这些项目与工作流自动化以及它与结构设计过程的关系有关。我很感激我的公司允许我在空闲时间从事 handcalcs 和 forallpeople 开源项目。

哪些 Python 库是你最喜欢的(核心或第三方)?

像许多皮托尼斯塔一样,我热爱帕特里布。它只是完美地处理了与路径相关的一切。

在标准图书馆,我真的很重视收藏。不仅因为它提供的容器,还因为它编写代码的方式。有一天我打开了源代码,在仅仅 15 分钟的阅读时间里,我学到了很多关于 Python 的知识。我认为 shapely 很棒。能够执行 2D 几何查询和比较是非常强大的。
Handcalcs 建立在 pyparsing 之上,这是一个非常漂亮和有用的库。
对于绘图,我真的很欣赏 plotly,但我正在关注 ipyvolume,并希望在未来更多地使用它(当悬停在字形上时,我正在等待自定义弹出窗口)。

我刚刚开始使用一个名为 sxl 的新库,用于在非常大的 Excel 文件中延迟加载单个表和表范围。这是一个简单的库,但它运行得非常好!您不必将整个工作簿加载到内存中来迭代文件中的某个区域或工作表。

几个月来,我一直在赶时髦。我认为对于一些 Python 用户来说,它可能是一个革命性的库:为自己的 Python 脚本创建简单而快速的 web 界面的能力就像魔术一样。我不知道我是否可以在这里这么说,但是我真的很喜欢我自己的模块:handcalcs 和 forallpeople。我每天都依靠它们来提高工作效率,我无法想象没有它们的工作生活!它们对我太重要了。

你的手提袋包的起源是什么?

我花了一个夏天作为学生为我现在的公司编程设计计算电子表格。这是一次很棒的经历,但是,知道如何使用 Python 之后,我开始对使用 Excel 感到非常沮丧。在工程领域,手写计算仍然是设计笔记的一种“黄金标准”,通常会成为项目法律历史的一部分。Excel 通常用于提高处理效率,但它并不透明:您在单元格中键入公式,1)公式仅包含单元格引用(除非您定义了单元格名称), 2)公式是隐藏的。为了便于说明,您必须在相邻的单元格中单独键入公式,这样您就可以将工作表作为报表或计算表打印出来。但是,您键入的公式只是文本:结果值与您键入的格式化公式没有关系,您必须更改两者才能更新。这使得维护很麻烦。

我希望我输入的公式与我输入的公式的格式化表示相同——改变表示,结果就会改变。像 SMathStudio 和 MathCAD 这样的软件包可以做到这一点,但你必须手动在工作表中布置公式,最重要的是,这些软件包都不显示数字替换。这就是我们在学校被教导的:首先你写出公式,然后你写出数值的替代,然后你写出答案。这允许快速验证计算。此外,我想让计算和笔记自己格式化:我没有时间在格式化上做文章。

然而,没有软件(我见过的)可以真正做到这一切,这就是我写 handcalcs 的原因。

Handcalcs 是一个旨在与 Jupyter Lab/Notebooks 一起使用的库,前提很简单:在 Python 单元格中键入一个计算,并让它在 Latex 中自动呈现出来,就像您手写一样。Jupyter 会为您处理格式。使用您的浏览器(通过 HTML 导出)或通过 Latex(如果您已安装)打印到 PDF。此外,将 handcalcs 与任何其他库一起使用,以增强 Jupyter 的工作流程,例如 papermill,它允许您运行参数化笔记本。

主要的 handcalcs 接口是通过“% % render”Jupyter cell magic 实现的,但我也编写了一个装饰器接口,您可以将它放在任何计算函数上,以便将函数源呈现给 Jupyter 或 Streamlit。这个 decorator 接口非常强大,因为它允许您编写小的常用计算“库模块”,您可以将其导入到 Juptyer 笔记本中,而无需重新键入它们。我仍然在想办法使用装饰界面!

为什么人们要用你的包而不用乳胶之类的东西?

啊!当你使用手钙时,你实际上是在使用乳胶!Handcalcs 将为您呈现您的计算结果,因此您不需要了解 LaTex。然而,使用%%tex cell magic,您还可以使用 handcalcs 来生成原始的 LaTex 代码,您可以在自己的代码中使用这些代码。tex 文档。LaTex,更确切地说是 Mathjax 和 Katex,使手动计算成为可能。这样,乳胶就像是通量电容器。

但是如果我们将 handcalcs 与 Excel、SMathStudio(这是非常好的)和 MathCAD 进行比较,那么除了我之前提供的所有理由之外,我想说拥有和使用自由软件真的非常重要。Python 是自由软件,Jupyter 是自由软件;LaTex、Mathjax、Katex 是自由软件;而 handcalcs 是自由软件。我认为自由软件领域代表了一个更大的世界的缩影,我希望我们可以创造一个更大的世界,在这个世界里,人们的创造性天赋被给予,以提高所有地方的所有人。当未来的人们使用你的作品并以此为基础时,这可能是一种永生的方式。

康纳,谢谢你接受采访!

本周 PyDev:库珀·利斯

原文:https://www.blog.pythonlibrary.org/2021/05/24/pydev-of-the-week-cooper-lees/

本周我们欢迎库珀·里斯(@库珀·里斯)成为我们本周的 PyDev!库珀对 Python 编程语言做出了贡献。他也是 bandersnatchblack 等的维护者。

你可以在库珀的网站或 T2 的 GitHub 网站上看到他还在做什么。让我们花些时间更好地了解库珀!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一个重新定居的澳大利亚人,住在美国加利福尼亚州的南太浩湖。我现在受雇于脸书公司,已经在那里工作了 8 年多。总体来说,我喜欢运动,板球+澳大利亚规则足球是我最喜欢的运动,既可以观看也可以玩。我也滑雪和滑雪板(住在山里有帮助)。夏天,我喜欢公路自行车赛。

我在澳大利亚新南威尔士州伍伦贡大学学习“互联网科学”。它原本是一个新的基于互联网的计算机科学/电子工程学位,我相信它已经退休了。从大学开始,我参加了许多 Cisco + Juniper 网络课程和考试+大量的自学。

你为什么开始使用 Python?

我在澳大利亚核科技组织的第一份工作开始了我有意义的 python 生活。一位同事告诉我用 Python 编写更多“文明”的代码,而不是我为了完成系统管理任务而拼凑的 perl。我的第一个有意义的 Python 代码是 Python 2.4 中用于 Solaris 10 邮件中继主机的 LDAP to Sendmail 别名文件生成器。我从未体验过< 2.4。

你还知道哪些编程语言,你最喜欢哪一种?

我懂一点 C,Perl,还有围棋。但是我真的很努力地学习了 Python,而且学得相当好。到目前为止,Python 是我最喜欢的语言,因为我的大多数工作负载都需要为 asyncio 编写代码,所以线程池和进程池允许我完成工作。

你现在在做什么项目?

在 OSS 世界中,我目前帮助维护以下软件包:

在我的日常工作中,我是脸书的一名生产工程师,负责我们内部的路由协议守护进程,这些守护进程运行我们自己的 FBOSS 交换机。我们开发和维护的主要软件是:

  • 开/关
  • 内部 BGP 守护进程
  • 服务器 VIP 注入(通过 thrift + BGP)

是我的主要项目。我还在帮助消除我们数据中心网络中剩余的传统 IPv4 的长尾效应。我们正在慢慢地把它推到我们的边缘。99.我们 99%的内部流量都是 IPv6。

哪些 Python 库是你最喜欢的(核心或第三方)?

  • 核心库:偏向于我所贡献的那些库:pathlib + venv

第三方:

  • 点击-使用子命令+颜色输出等轻松剪辑。
  • aioprometheus:我喜欢度量,所以我喜欢把普罗米修斯的出口放在我写的所有东西上
  • aiohttp:运行服务器或客户端到基于 http 的服务的最佳异步 http 库
  • uvloop:加速 asyncio 程序的最好方法是使用基于 C libuv 的快速事件循环

你还有什么想说的吗?

贡献开源。从分类,写代码和 CI,都有帮助!概念证明公关是值得的,让你的观点。自动消除你的痛苦。总是添加单元测试!

库珀,谢谢你接受采访!

本周 PyDev:科里·本菲尔德

原文:https://www.blog.pythonlibrary.org/2016/08/01/pydev-of-the-week-cory-benfield/

本周,我们欢迎科里·本菲尔德( @lukasaoz )成为我们本周的 PyDev!Cory 是 Python 语言的核心开发者,尤其是 urllib3,同时也是请求包的核心开发者。他还是 Hyper 项目的主要维护者,该项目是一组为 Python 项目提供 HTTP/2 功能的相关项目。让我们花些时间来更好地了解科里吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我在苏格兰的大学里学习物理,最初是想在专业物理的更实际的一端结束自己的职业生涯:也许做一些像医学物理这样的事情。在我获得学位之前,我从来没有写过程序。然而,很长一段时间以来,我一直是一名电脑“超级用户”:我拥有个人电脑和苹果电脑,熟悉 Linux、Windows 和 OS X,从 15 岁起我就开始组装个人电脑。因此,当我发现自己在一个计算物理模块中盯着 Mathematica 屏幕时,我的大脑中突然灵光一闪,我意识到这是一件我可以真正快乐地做的事情。因此,我获得了物理学硕士学位,并获得了一份为电信行业编写软件的工作。

当我不写软件的时候,我喜欢做很多不同的事情来放松。我玩电子游戏(像现在世界上大多数人一样),但我喜欢看伟大的电影和电视节目。我也非常喜欢烹饪、阅读和与人相处。有时我甚至会写:我不擅长定期写作,但我认为我的写作还可以!

你为什么开始使用 Python?

我刚开始在大学里用 Mathematica 做物理工作,虽然 Mathematica 很棒,但它并不是构建实用程序的有用工具。所以我四处寻找其他语言,在我看来,使用 C 和 Perl 没多久,Python 就成了世界上最显而易见的东西。所以我用 Python 写了一些网络抓取工具,这将我带入了 Python 开源社区。我从未回头!

你还知道哪些编程语言,哪种是你最喜欢的?

我是那种喜欢拿起新语言来玩的人,所以“知道”在这里有点棘手。我会说我最喜欢 Python,然后按照我对这种语言的熟悉程度大致降序排列:C、Go、Rust、Javascript、Swift、C#、Java、Objective C。我对 Haskell 等强函数性语言略有涉猎,但不会说我“知道”Haskell,因为我还没有在愤怒中使用过它。我也喜欢 lisp,尽管我也没有写过多少 Lisp 代码:也就是说,Hy 显然是我最喜欢的 Lisp,因为它让我可以使用我已经习惯的所有 Python 库!

你现在在做什么项目?
现在我很分散,但是我主要关注 Python 中的 HTTP 和 HTTP/2。这意味着我的时间大致分布在维护几个流行的 Python 库上:Requests 和 urllib3 是最值得注意的,也是消耗我时间最多的。除此之外,我还维护了 Python 中唯一的 HTTP/2 库,包括 hyper-h2,它是 Python 中许多 HTTP/2 实现的基础。最后,我顺便参与了许多其他 OSS Python 项目,如 Python Cryptographic Authority 和 Twisted。

哪些 Python 库是你最喜欢的(核心或第三方)?

当然不包括我自己!

在 Python 标准库中,我非常喜欢 itertools:生成器对我有很大的吸引力,itertools 使得以一种非常灵活的方式使用它们成为可能。在标准库之外,我认为 CFFI 很棒:不管你的 VM 是如何实现的,都能调用 C 语言是非常强大的,它消除了使用 PyPy 的最大障碍之一,我认为这是 Python 社区最大的资产之一。

作为一门编程语言,你认为 Python 将何去何从?

在 Python 社区中,担心像 Go 这样的语言是否会吃掉我们的午餐是很常见的。我不相信那种说辞。Python 是一门伟大的语言:它简洁、易读,当与 PyPy 等工具结合使用时,对于大多数用例来说,它的速度已经足够快了。

就目前而言,我看到 Python 正在整合,并构建出允许 Python 与其他语言更紧密集成的工具。转向 CFFI 而不是编写显式 C 扩展是其中的一个重要部分,因为它允许 Python 程序员将 Python(例如 PyPy)的精华与其他语言的精华结合起来(通过调用编译后的 dll,而不用担心所使用的具体 Python 实现)。未来的应用程序将越来越多地涉及较小的组件之间的调用,要么通过 HTTP APIs 之类的 RPC 机制,要么通过使用 CFFI 之类的东西的直接函数调用。Python 非常适合成为那个环境的一部分。

你对当前的 Python 程序员市场有什么看法?

据我所知,Python 程序员非常容易被雇佣。Python 是一种成熟的语言,许多公司都愿意将他们的业务押在这种语言上,这给了 Python 程序员在这个行业中很大的权力和灵活性。对于任何求职者来说,Python 技能都是一大优势。

你还有什么想说的吗?

只有当人们对参与开源软件感兴趣时,Python 几乎肯定是一种可以参与的语言:有许多伟大的项目正在进行,他们希望社区做出更多的贡献,参与进来是一种回报的好方式。

感谢您接受采访!

本周 PyDev:克雷格·布鲁斯

原文:https://www.blog.pythonlibrary.org/2015/11/02/pydev-of-the-week-craig-bruce/

本周,我们欢迎克雷格·布鲁斯(@克雷格·布鲁斯)成为我们本周的 PyDev。让我们看看他说了什么!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我的背景是计算化学和化学信息学。真正的意思是,我被训练在早期药物发现的小领域工作,而且基本上没有听说过,在那里计算机被用来帮助指导药物设计。在药物上市之前,这项工作通常需要十年时间。

近年来,从脚本到 web 堆栈,Python 已经成为我的编程语言选择。近年来,科学 Python 堆栈有了巨大的发展,使得专注于特定的研究变得更加容易。我几乎没有接受过正式的 IT/CS 教育,但通过我的教育和之前在编程和系统管理方面的角色,我学到了很多。

我的爱好包括徒步旅行、滑雪和遛狗,我住在新墨西哥州,在那里我们享受令人惊叹的户外运动。

你为什么开始使用 Python?

这是一份新工作的要求,主要是运行和开发一个 Django 支持的网站。除了网站之外,我需要执行的科学任务使用了一个 C++工具包,该工具包具有 Python 绑定,因此 Python 对于这个角色的每个编程方面都非常有用。

你还知道哪些编程语言,你最喜欢哪一种?

Perl、Java 和 JavaScript,但我更愿意用 Python 和 Bash 编写,因为这两者的结合允许我部署和运行我需要的大多数东西。

你现在在做什么项目?

我正在开发一个基于云的产品,这是一个药物研发平台,供制药公司使用。它是用 Python 写的,有一个 Django web app 和 API。我的工作主要是在后端和 DevOps 方面。

工作之余,我是 Django Events Foundation North America(DEFNA)的三位联合创始人之一,该基金会负责 DjangoCon US 的运营,所以我作为财务主管的角色让我很忙。DjangoCon US 是本月早些时候举办的,我很高兴我们收到了积极的反馈。2016 年的准备工作已经开始,请务必关注我们的@djangocon,了解最新动态!

哪些 Python 库是你最喜欢的(核心或第三方)?
Django 继续成为人们的最爱,因为它是如此的多才多艺和成熟。如果我需要其他东西,我几乎可以保证有第三方应用程序来帮助。我目前的项目大量使用了 AWS,所以对流层(https://github.com/cloudtools/troposphere)在使云形成模板变得容易方面是无价的(例如,不写任何 JSON,这是我最讨厌的)。

你还有什么想说的吗?

感谢邀请参加本系列!

谢谢!

一周的最后 10 个 PyDevs

本周 PyDev:Cris Medina

原文:https://www.blog.pythonlibrary.org/2019/07/22/pydev-of-the-week-cris-medina/

本周我们欢迎 Cris Medina(@ tryexceppass)成为我们的本周 PyDev!克里斯是广受欢迎的trypexceptspass博客的作者。他也是 sofikorv 的维护者。你可以在 Github 上赶上克里斯的其他项目。让我们花些时间去更好地了解他吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我出生在多米尼加共和国。我在那里读完高中,去了波多黎各学习计算机工程,专攻硬件。但从我记事起,我就一直在以某种形式编写软件。我爸爸把 IBM System 360 Basic 作为我的第一语言介绍给我。真不敢相信

我职业生涯的大部分时间(现在已经持续了 17 年)都花在了测试工程上,以及开发执行这些测试和维护它们的基础设施所需的所有硬件和软件工具上。其余的时间,我担任正式的软件工程角色。

我喜欢花一些空闲时间听音乐。我妈妈是一名音乐老师,她很早就让我开始学习钢琴。虽然随着年龄的增长,我开始接触弦乐器。今天,我主要弹古典吉他,但我也拥有几种类型的吉他,并涉足其他弦乐器。

我也喜欢烹饪。我的家人来自地中海的各个地方,所以我的大部分食物都有那种闪光。烹饪让我想起了一点开发过程:你对自己想要什么有一些想法,你按照一套基本的说明去做,但通常你会加入一些额外的味道,让它成为你的,这可能需要几次迭代才能做到恰到好处。

你为什么开始使用 Python?

大约 10 年前,当我编写一些后端代码来支持我自己的 Java 应用程序时,我尝试了一下。当时办公室里有很多关于 Python 和 Perl 的争论,但是我已经知道我不喜欢 Perl 的语法,因为我试图阅读我同事写的 ode。所以我决定给 Python 一个机会,从此再也没有回头。

真正的问题是:为什么我不早点开始!

你还知道哪些编程语言,你最喜欢哪一种?

除了 Python,我还使用 C++ / C 编写驱动程序,用于嵌入式系统开发,在一些嵌入式系统中汇编,Visual Basic 和 Java 用于商业应用程序,加上通常的 Bash 脚本,JavaScript 用于 web 开发,以及一些其他定制的东西。

我也尝试过 Erlang、Go 和 Rust,但是除了训练示例之外,还没有一个用例支持我。

我肯定最喜欢 Python。是最实用的。语法接近我的想法,不需要疯狂的样板代码。我很少需要花时间去弄清楚如何使用一个给定的结构。您还可以在几分钟内建立新的软件,PyPI 中大量可用的模块,加上内置的库,几乎可以处理任何用例。它可以很容易地与 C 集成,因此也可以解决人们对动态语言的任何性能问题。

你现在在做什么项目?

在工作中,我只是花了几年时间作为 HPE CloudVolumes 的首席开发人员,但我现在正转变回测试工具和自动化基础设施的角色。

在家里,我大部分时间都花在我的 tryexceptpass.org 博客上,给 sofi 和 korv 添加新功能。

哪些 Python 库是你最喜欢的(核心或第三方)?

我用 docopt 为 CLI 做了很多工作。我喜欢你定义界面的方式,因为它是自文档化和功能化的。

我喜欢 sanic for REST API dev,因为它易于使用,包含电池,并且是异步的。

我将 asyncssh 用于很多事情,包括使用 ssh 密钥进行身份验证的加密套接字,以及需要远程 ssh 的自动化。因为它支持 asyncio,所以它确实有助于并行化。

还有 websockets,我用它实现了几个资源管理系统、GUI 框架(比如 sofi)和通知系统。

你创建 tryexceptpass 网站的动机是什么?

当我意识到我是一个暗物质开发者时,我知道我需要做些什么。有很多很酷的东西与我以前构建的系统非常相似,但我没有办法分享它们,也不被允许。在某些情况下,我已经解决了一些公共图书馆甚至没有意识到存在的问题。

直到我与管理层讨论了每个开源提交所需的法律监督,我才意识到我需要改变策略。即使我在加入公司之前就拥有代码。所以我说:如果我不能贡献代码,也许我可以分享一些关于如何使用已经存在的代码的小要点。尽管我的第一篇文章是关于开源贡献应该如何被认为是职业发展的一部分并被所有公司所鼓励。😉

你对未来想创建一个成功网站的内容作者有什么建议吗?

开始写吧。如果你还在想,那你就做错了!对我最有效的是一个老招数:作为意识流来写,不编辑,不改错,只前进。当你对一个主题倾吐完你的想法后,才回去编辑或整理。

你是如何成为 sofi 和 korv 的维护者的?

我构建 sofi 是因为我厌倦了编写相同的 HTML 和 JavaScript 代码来构建基于 Bootstrap 的网站。在这样做的过程中,我意识到我可以超越我的目标,尝试将它变成一个可重用的框架,这样我就可以从 Python 中驱动所有的网站行为,而永远不必用 JavaScript 思考。在这样做的过程中,我还注意到我可以使用这个框架的后端来与任何其他图形用户界面接口,比如游戏引擎,所以我也花了时间在 Unity3D 客户端上。最终的目标是成为 3D 图形用户界面的引导程序,在这里你需要知道一些关于引擎的知识来为你的应用程序建立一个 3D 界面。

我之所以把它们放在一起,是因为我认为在 SSH 套接字上构建一个带有基于密钥的认证的异步接口对于后端或特权连接有一定的价值。到目前为止,它对我很有效。

你还有什么想说的吗?

我真的很喜欢 Python 社区。我遇到了一群来自世界各地的了不起的人,每个人都非常乐于助人、细心、真诚和有趣。所以我真的很喜欢鼓励人们继续参加活动,贡献代码、博客、开放空间或在会议、文档、问题上的演讲,无论你能做什么。

事实上,如果你喜欢写作,想谈谈你最近面临的 python 挑战,或者你是如何解决一个特定问题的,请给我的 Twitter 帐户@ tryexceptpass 发送一条 DM。我正在接受网站上帖子的投稿。

克里斯,谢谢你接受采访!

本周 PyDev:克里斯蒂·弗拉德

原文:https://www.blog.pythonlibrary.org/2020/05/25/pydev-of-the-week-cristi-vlad/

本周我们欢迎克里斯蒂·弗拉德(@克里斯蒂瓦拉 25 )成为我们本周的 PyDev!克里斯蒂在他的 Youtube 频道上用 Python 教授网络安全。他还写了一些书,并在他的博客上撰文。你也可以在那里看到他的书。

让我们花些时间来更好地了解 Cristi!

Cristi Vlad

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我一直喜欢数字。拥有土木工程硕士学位,我决定在完成学业后放弃这个领域的一个很好的工作机会,去尝试计算机方面的东西。

企业家精神和改善我的生理状况的结合对我有很大的吸引力。所以我开始研究如何提高我的身体和精神能力,我钻研了生物化学、人体解剖学和各种科学文献,最终我写了 7 本关于身体改善的书。

带着与生俱来的好奇心,我总是试图自学计算机编程,但有几次都惨败。我尝试学习 JAVA,因为我也想戴上 Android 开发者的帽子。这是在 2011 年到 2015 年之间。

我想给编程最后一次机会,如果我没有任何进展,我会完全放弃努力。

你为什么开始使用 Python?

JAVA 绝对不是我要走的路。它又丑又没吸引力。所以我的下一个最佳选择必须是干净、直观、非常直截了当的。那就是 Python。那是 2015 年,Python 有一个由热情的开发人员组成的成熟社区。

所以我用大量的资源轰炸自己来吸收 Python,非常强调实践。我使用 biopython 和其他库对基因组学和 Python 的结合进行了大量练习。那救了我。当谈到计算机编程时,我开始觉得我并不完全迟钝。

你还知道哪些编程语言,你最喜欢哪一种?

Python 是迄今为止我最喜欢的语言。然而,随着我开始更好地掌握它,我也探索了其他概念,比如 Javascript、C++、C、Bash 和汇编。

你现在在做什么项目?

我目前没有积极地、有目的地从事大型编程项目,但是我经常使用 Python 和 Bash 来编写自己的工具,用于渗透测试和 bug 搜索。

我最近的两个项目是两个课程,帮助有抱负的和已建立的网络安全专业人员在日常工作中学习和使用 Python。

用于渗透测试人员的 python:http://bit.ly/2I0sRkm

我的 Youtube 频道是另一个正在进行的项目,我经常在那里教授 Python 在笔测试和 bug 赏金猎人中的应用。

https://www.youtube.com/channel/UCXXXoi68Hv6caNLWfw7j8MQ

哪些 Python 库是你最喜欢的(核心或第三方)?

我会说 requests、beautifulsoup 和 socket 是我的前三名,主要是因为我在教学和实践中经常使用它们。当然,作为一名网络安全专业人员,我也喜欢与 scrapy 一起工作。

图书馆太棒了!不要误解我。但是作为一个有抱负的极简主义者,我尽力做到最好。我不想从头开始重新发明轮子。这将是徒劳的。然而,只要有可能,我就尽量限制自己使用准系统。

你是怎么用 Python 进入网络安全的?

这是一个自然的过程。在学习 Python 的同时,我也了解了 Kali Linux 和伦理黑客。那是一见钟情。

您在网络安全方面使用的顶级工具有哪些?

打嗝套件、grep、cat 和 google。

你还有什么想说的吗?

是的,Python 给了你超能力。学习如何用它来自动化你无聊的事情。从今天开始。

克里斯蒂,非常感谢你接受采访!

本周 PyDev:克里斯蒂安·毛雷拉-弗雷德斯

原文:https://www.blog.pythonlibrary.org/2022/07/25/pydev-of-the-week-cristian-maureira-fredes/

本周,我们欢迎克里斯蒂安·毛雷拉-弗雷德斯( @cmaureir )成为我们本周的 PyDev!Cristián 是 Python 项目(又名 PySide6)的 Qt 的核心开发人员。你可以在 GitHub 或者 Cristián 的网站上追上 Cristián。

让我们花些时间更好地了解克里斯蒂安!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我的名字是 Cristián Maureira-Fredes ,我来自智利圣安东尼奥,但自 2013 年以来我一直住在德国柏林。

在学习计算机科学之后,我来到德国完成了我的硕士学位,并开始攻读天体物理学博士学位。完成学业后,我决定进入这个行业,并从 2018 年开始在 Qt 公司工作。

在工作中,我目前的头衔是“R&D 高级经理”,这意味着我是几个团队的团队领导,一个专注于 Qt 框架的核心方面,另一个是 Qt 框架的官方 Python 绑定集,Python 项目的 Qt。

我的大部分业余时间都花在了 Python 社区上,我帮助组织了在 Python 智利Python 西班牙以及一个名为Python en espa ol’的新全球社区的活动,该社区包括了所有说西班牙语的国家。

你为什么开始使用 Python?

我很幸运地在我就读的大学的计算机实验室(LabComp)找到了一份学生工作,在那里我接触到了许多与系统管理员相关的任务,其中包括任务自动化。我开始用 Bash 编码,然后转向 Perl,在某个时候,有人提到了 Python,当时是 Python 2.5(我想),但我一开始并不喜欢它,我对 Bash、Perl、Awk 和其他命令行语言和工具很熟悉。

在 2009 年(Python 2.6...也许吧?),我给了它第二次尝试,并开始更经常地使用它,从那时起,我一直是一个快乐的 Pythonista。

你还知道哪些编程语言,你最喜欢哪一种?

在我的日常工作和学习中,我一直都在使用 C++,这是我非常喜欢的。在学会了用 C 编码之后,C++真的是一个飞跃,让我爱上了编程。在我学习期间,我同时使用了 C++和 Python,从那以后,我的心在它们之间分裂,所以我不能决定。然而,如果你问我关于“编程语言社区”的问题,我会毫不犹豫地选择 Python。

你现在在做什么项目?

我是 Qt for Python 项目的维护者之一,所以这是我的主要职责,这很酷,因为这是一个开源项目,但我是有偿开发和领导的。

除此之外,我真的很幸运成为了将官方 Python 文档翻译成西班牙语的团队的一员,现在我们正在等待 3.11 的发布,继续新的 Python 小版本。

我做的其他事情,但不确定是否应该称之为项目,是我与社区互动的许多平台的机器人,如与 Github、通知、discord 任务自动化等的集成,会议或倡议的小静态网站,数据仪表板等。

在社区方面,我目前正在与前面提到的社区一起组织活动、会议等等,老实说,这有时比编写软件项目的代码要多得多!但是我真的很喜欢这样做。

哪些 Python 库是你最喜欢的(核心或第三方)?

PySide6 因为我一直在非常努力地研究它,并不时用它来创建讲座、研讨会、网络研讨会等等🙂

除此之外,自从我第一次发现 NumPy 以来,它一直是一个令人惊叹的模块,它解决了我在学习期间遇到的一个真正的问题,并且大多数从 NumPy“继承”来的模块也很酷,比如熊猫。

从核心...不确定我是否有喜欢的模块,但我确实喜欢不同内置对象的实现。在过去的几年里,我一直在谈论 CPython 的实现,但是很幽默,所以人们不会感到太害怕而不敢进入语言的核心。例如我的 2021 年欧洲 Python 演讲或者我在 PyConUS 2022 做的闪电演讲,让说英语的人感受一下非本地人学习 Python 的感受

你是如何加入 Python 团队的?

前面说过,我刚读完博士就加入了 Qt 公司,甚至能找到一个需要 Python 和 C++的招聘广告都是一个惊喜,因为我知道 Qt 是纯 C++的。

从大学时代就认识 Qt,这真是梦想成真。一年后,我甚至写了关于我的经历,因为这是我从来没有预料到的。

你认为 Qt 对 Python 最好的 3 个特性是什么?

我在这里尽量不要有偏见,但大多数人都提到 PySide(Python 的 Qt)相当于 PyQt,但我们决定做的一个转变是,不要为 Python 用户“只做 Qt 绑定”,所以我们决定为 Python 生态系统添加更多东西,比如:

1.启用 snake_case Qt API 而不是 camelCase 的选项,删除 setters 和 getters 并直接访问 Qt 属性。更多信息

2.启用像 PyPy 这样的其他解释器。更多信息

3.把 Qt-API 分解好,为 NumPy 数组、不透明容器提供 API,直接访问 C++对象,无需复制

我认为 PySide 的这些方面确实有所不同,我们可以为 Python 用户提供更多的东西来开始使用 Qt。

你还有什么想说的吗?

我要感谢你给我这个机会,我真的希望在 Python 社区分享我的一些生活经验可以激励更多的人加入他们的当地社区,为他们喜欢的项目做出贡献,甚至申请他们一直梦想工作的公司。

克里斯汀,谢谢你接受采访!

本周 PyDev:西里尔·罗桑特

原文:https://www.blog.pythonlibrary.org/2016/02/22/pydev-of-the-week-cyrille-rossant/

本周,我们欢迎西里尔·罗桑(@西里尔·罗桑)成为我们的本周 PyDev!西里尔是 T2 VisPy T3 项目的核心开发人员之一。他还是几本 Python 书籍的作者,如学习 IPython 交互式计算和数据可视化IPython 交互式计算和可视化食谱。他的博客也很值得一试。让我们花些时间来更好地了解我们的同胞皮达尼斯塔!

能简单介绍一下自己吗(爱好、学历等):

本周 PyDev:达明·阿维拉

原文:https://www.blog.pythonlibrary.org/2017/12/18/pydev-of-the-week-damian-avila/

本周我们欢迎达明·阿维拉成为我们的本周 PyDev!Damian 为 Anaconda 工作,这是一个 Python 和 R 的开源发行版,主要关注数据科学。他也是 Jupyter/IPython 幻灯片扩展《T2 崛起》的作者。你可以在 Github 上或者通过查看他的网站来感受一下达明在做什么。让我们花些时间来更好地了解我们的同胞 Pythonista!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

当然可以!

如今,我是一名软件开发人员,也是 Anaconda 公司的团队领导。在我之前的生活中,我作为生物化学家从阿根廷布宜诺斯艾利斯的联合国大学毕业。

事实上,我目前与我的伴侣丹妮拉和我的猫 Bituinas 住在阿根廷的科尔多瓦,但每隔一周我都会去布宜诺斯艾利斯(700 公里外),我 5 岁的儿子 Facundo 和他的母亲住在一起,我会和他呆几天。

我的主要兴趣是数据科学、金融、数据可视化和 Jupyter/IPython 生态系统。在开源领域,我为几个项目做出了有意义的贡献,现在是热门项目的核心开发者,比如 JupyterNikolaBokeh

我也开始了自己的项目,成为最受欢迎的项目。

我在几个国家和国际会议上发表过演讲、教程和海报,我还撰写和教授过关于科学 Python 生态系统的教程。我是 Python Argentina、Scientific Python Argentina 和 PyData Argentina 社区的成员,也是 Jupyter 指导委员会的成员。

有趣的事实是,我练习合气道已经好几年了,现在我正试图回到常规练习中来。

你为什么开始使用 Python?

这个回答起来很有趣。几年前,大约 2011 年,我把玩金融模型作为一种爱好(奇怪的爱好,不是吗?).我发现自己需要创建比我使用的终端用户软件提供的模型更复杂的模型(IIRC,我使用的是一个叫 EasyReg 的软件)。然后,我告诉自己,你应该开始学习如何制作自己的模型了!!

我发现了一门关于“科学家的数值方法”的有趣课程,我们有 3 节 4 小时的入门课,内容是关于 3 种编程语言:Fortran、C++和...Python。我发现 Python 很容易上手(别忘了我是一名生物化学家,研究的是免疫系统的细胞,没有计算机,全是实验性的东西,没有编程的东西)。因此,我从零开始尝试用 Python 重新创建我的金融模型,并在 2011 年底参加了我的第一次阿根廷 PyCon,发表了一篇关于我的模型的演讲。

你还知道哪些编程语言,你最喜欢哪一种?

  • 我一直在用其他语言编程,比如 JavaScript,CoffeeScript,还有一点 TypeScript。
  • 我经常使用 bash。
  • 我玩了很多 HTML 和 CSS。
  • 我学过一点 Fortran 和 C++。

我最喜欢的还是 Python,我开始觉得 TypeScript 很有趣。

你现在在做什么项目?

在我的工作中,我领导着一个团队在 Anaconda Enterprise Notebooks(Anaconda 企业笔记本)中工作,这是 Anaconda 平台 v4 的一个组件。在我的工作之外,在我的空闲时间,我通常为 Jupyter 生态系统做贡献。我也在 RISE 中工作过,这是我几年前写的一个流行的笔记本扩展,被很多人使用(可能比我知道的多,这很好!!).

哪些 Python 库是你最喜欢的(核心或第三方)?

我在这里有点偏见,但我相信 Jupyter 生态系统库是我最喜欢的,Jupyter 笔记本应用程序是首选。它完全是破坏性的,在多个领域都是有用的。我相信它演变成木星实验室会是一种“革命性的”。

你创造 RISE 套餐的动机是什么?

我认为“展示”你的想法是很重要的,即使笔记本本身是一个可以实现这一目标的文件,它也不太适合在讲座或课堂上分享信息。幻灯片演示的概念在这种情况下有很多优势,我想把这些优势带到 Jupyter 的体验中。我的第一个想法是使用 nbconvert 从笔记本文档生成一个静态演示,这是几年前在那个包中实现的。

但是,我也看到了拥有笔记本体验带给您的交互性的需求,这就是我开始 RISE 的原因,它本质上是笔记本的一个“slidy”视图,您可以在幻灯片中立即执行代码和实验内容,我认为这在当时非常强大,可以分享知识和见解。

在维护这个项目的过程中,你学到的最重要的三件事是什么?

1)人是伟大的,我总是从我的工作中得到赞赏,看到许多人认为它有用,我感到非常有价值。

2)你是免费给你时间,你应该关心你的用户,但是你的用户也应该关心你。不要让项目维护耗尽你的精力。如果有必要的话,抽出一些时间。

3)当你和人们互动时,试着给他们提供食物。如果你给他们背景、反馈并讨论他们的想法,你会有一个新的贡献者。

你还有什么想说的吗?

作为 Jupyter 社区的一员,我想鼓励你帮助我们!有多种方法可以帮助这个项目(不仅仅是编码!),所以 ping 我们如果你有一些兴趣和时间。

最后,正如你从我之前的回答中看到的,我经历过,你永远不知道生活会把你引向何方。谦虚学习...一切都会水到渠成。

感谢您接受采访!

本周 PyDev:达米恩·乔治

原文:https://www.blog.pythonlibrary.org/2016/08/29/pydev-of-the-week-damien-george/

本周我们欢迎达米恩·乔治成为我们的本周派德夫!Damien 是 MicroPython 项目背后的人,这个项目允许你在微控制器上运行 Python 的一个版本。你可以在达米恩的网站或者访问他的 Github 页面了解更多关于他的信息。让我们花些时间来更好地了解我们的同胞 Pythonista!

damien

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我在澳大利亚的墨尔本长大,很早就开始玩电脑和电子产品。我年轻的时候有一台 Commodore 64,还记得从当地图书馆借的关于如何用汇编语言编程的书。实际上,它只是给你一堆“数据”语句来输入,但最终你可以做出一些非常酷的东西。高中时,我喜欢物理和数学,后来我上了大学,获得了科学和工程学位。我主修物理和计算机工程,然后攻读了物理学博士学位,之后我去了荷兰,最终去了英国,从事理论高能物理学的研究(额外维度、超对称、宇宙学等等)。在我作为一名物理学家的职业生涯中,我对编程和机器人技术保持着浓厚的兴趣,同时也做了很多兼职项目,包括一台自制的数控机床(见http://dpgeorge.net/cnc/)。

你为什么开始使用 Python?

因为我需要一种既强大又允许快速开发的语言。我想我用 Python 做的第一个大项目是我和一个同事开发的 Paperscape 网站,它可视化了物理学方面的科学论文(见http://paperscape.org)。Python 在后端被广泛用于解析 TeX、LaTeX 和 PDF 文件,提取引用信息,以及维护论文的 SQL 数据库。

你还知道哪些编程语言,你最喜欢哪一种?

这些年我用过很多语言,包括:很多架构的汇编语言,BASIC,Fortran(大部分是 77),C,C++,Java,Haskell,Go,JavaScript。我非常喜欢 C,可以说它是我的最爱,但 C++也很好,现在是现代标准下更好的语言。我喜欢 Haskell,但不要把它用于任何严肃的事情。

你现在在做什么项目?

我几乎把所有的时间都花在了开发 MicroPython 上(见https://micropython.orghttps://github.com/micropython/micropython)。我想添加许多功能,进行一些优化,并开发新的平台来运行它。现在,我正专注于让 MicroPython 在 ESP8266 Wi-Fi 芯片上运行良好,这是我们今年早些时候运行的 Kickstarter 的一部分。这涉及到编程以及文档,教程和论坛管理。我也在帮助开发 MicroPython 的 BBC micro:bit 端口(见https://github.com/bbcmicrobit/micropython)。很多人以不同的方式为 MicroPython 项目做贡献,这很棒,有助于项目的发展。我期待看到 MicroPython 变得更大,并以新的有趣的方式使用。

哪些 Python 库是你最喜欢的(核心或第三方)?

因为它们在 MicroPython 中的特殊需求,我喜欢 sys、os 和 struct 这样无聊的库。但是更有趣的是我们的“机器”模块,它以 Pythonic 的方式抽象了底层硬件。例如 GPIO 引脚、I2C 总线、模数转换器等等。在 BBC micro:bit 上有一个“microbit”模块,里面有很多有趣的东西,让孩子们可以轻松地对设备进行编程。

作为一门编程语言,你认为 Python 将何去何从?

Python 不断发展并跟上了程序员的需求以及当前的技术,这是一件非常重要的事情,我认为这将使它在未来很长一段时间内成为五大编程语言之一。对不同语言的需求总是存在的,每种语言都有特定的需求,Python 将仍然是通用快速开发编程的最佳选择。

你还有什么想说的吗?

我认为 Python 社区很棒。它友好、开放,有很多聪明人致力于让 Python 不仅成为一门伟大的语言,而且成为一个伟大的编程生态系统。更广泛地说,我认为开源社区和开源软件是当今软件和计算的基础部分,我很高兴能够为之做出贡献。

感谢您接受采访!

本周 PyDev:丹·巴德

原文:https://www.blog.pythonlibrary.org/2017/03/06/pydev-of-the-week-dan-bader/

本周,我们欢迎丹·巴德( @ dbader_org )成为我们本周的 PyDev。丹每周做一期《Python 窍门》时事通讯/博客这是一份有趣的读物。他还写了一本关于 Python 技巧的书。我总是喜欢查看我的受访者的 Github 页面,看看他们喜欢写些什么,所以我鼓励你也去查看一下。让我们花点时间来了解更多关于 Dan 的信息!

你能告诉我们一些关于你自己的情况吗(爱好、教育等):

大家好:wave:我的名字是丹·巴德,我是一个彻头彻尾的 Python 迷。自从我成功说服父母从当地报纸的分类广告上给我买了一台满是灰尘的旧 Commodore 64,我就一直痴迷于编程。而且从那以后我对写代码的热爱一直没有减弱。

最终我获得了计算机科学的学士和硕士学位。我在全职岗位上工作了几年,现在我是一名独立的软件开发人员和顾问。

我在德国出生并长大,但后来搬到了加拿大。我喜欢这两个国家——幸运的是,这些天我大部分时间都在远程工作,所以我有机会访问每个国家。我很高兴我找到了一个愿意忍受这些古怪行为的伴侣:slightly_smiling_face:

就爱好而言,我喜欢去健身房锻炼,烹饪素食(在温哥华唐人街买了我的第一口真正的铸铁炒锅,改变了我的生活,哈哈),还有去远足。我也读了很多。总的来说,我发现让我最开心的是建筑材料。所以我试着去优化它。我时不时弹点吉他放松一下。

你为什么开始使用 Python?

我相信“代码就是交流”一个好的程序员可以表达他或她的想法,这样机器就可以执行它们。但是一个伟大的程序员可以如此整齐地组织他的思想,以至于机器和人类可以毫不费力地理解它们。

当然,有时候写超级简洁的代码来打动你的朋友和同事也不错。但我发现构建软件最大的动力是简化复杂的过程,并将其分解,以便机器可以执行它,同时平衡这一点与拥有一个可维护的软件的需要,其他程序员可以在未来改进和修改它。

我发现我的哲学与 Python 这种语言及其令人惊叹的社区非常契合。很少有“牛仔/女牛仔程序员”的态度,更多的是一种务实的愿望,想把事情做好,同时把它们做好。我喜欢这样。

在我的整个计算机科学教育中,我都涉猎了 Python。我想我第一次了解它是在我的一个朋友带了一本“X 天学会 Python”(或类似的东西)的小册子去滑雪旅行的时候。我立刻爱上了这种清晰的语法,它看起来就像是可执行的伪代码。我对 Python 和它的创造者了解得越多,我就越欣赏它。我非常尊重它的实用和简单的设计。

我用 Python 写的第一个“严肃”的项目是我的学士论文需要的数据处理管道。它运行得如此之好,是如此令人愉快的体验,以至于我也开始在其他“严肃”的项目中使用 Python。从那时起,我试图找到在任何可能的地方使用 Python 的方法。

你还知道哪些编程语言,你最喜欢哪一种?

嗯,我在我信赖的 Commodore 64 上开始学习 BASIC,然后在我有了第一台个人电脑后涉猎了其他语言(C 和 Pascal)。

但是我一开始真的不能理解 C,所以我花了很多时间在 QBasic for DOS 上。出于某种原因,我一直对汇编语言非常感兴趣,我真的很想看看幕后发生了什么(想象一下,当我后来了解到 CPU 微代码时,我感到多么兴奋...).学习 x86 汇编并在其中编写几个程序,使得所有 C 语言的东西,如指针和内存管理“咔嚓”一声 c 基本上是一个带有奇怪语法:slightly_smiling_face: 的宏汇编程序

最终我发现了德尔福,它曾经是(或者现在仍然是?)是 Pascal 的 OOP 版本与优秀的 GUI 框架和图形编辑器的组合。我用它写了很多软件,比如小游戏和实用程序。

德尔福简直太棒了。我记得我必须攒够钱才能邮购 Delphi 编译器和 IDE 的“完整版”

Delphi 的标准库和它的 GUI 框架教会了我很多如何设计好的 API。与微软当时推出的 Win32 和 MFC 相比,Delphi 的方法看起来漂亮多了。我喜欢和德尔福一起工作。

从那以后,我有一段时间痴迷于编写游戏引擎。令人着迷的是,这些游戏引擎几乎是小型操作系统,拥有自己的内存管理、文件系统抽象,甚至小型多线程脚本运行时。

大约在那个时候,我第一次接触到互联网,我发现 Quake 1 的一些源代码在当时已经是开源的了。

你可以从 id Software 的 FTP 服务器下载 Quake 的脚本语言编译器和游戏逻辑的源代码。我把那东西吃光了。最初我不知道发生了什么,但我不能放下这段代码。我把它打印出来,随身携带,并草草记下笔记...我从阅读约翰·卡马克的代码中学到了很多。他是我的英雄之一,我希望有一天能和他握手,感谢他对我这个程序员的影响。

总之,我正在编写这些小的 OpenGL 渲染器、脚本系统和网络代码,我只是在这些兔子洞里越陷越深,而没有真正制作出一个可玩的游戏。

在某个时候,我已经用自己的基于虚拟机的脚本语言和针对代码更改的热重新加载以及图形地图编辑器构建了几乎这个“游戏 SDK ”,但我想要构建的游戏(以及我向我的朋友承诺的游戏)几乎没有任何进展。

这次经历教会了我很多关于实用设计和程序架构的知识。我太纠结于这一团乱麻了(尽管这很有趣),以至于我没有在我说过要构建的东西上取得实际进展。我相信大多数开发者都熟悉这种效果:blush:

我不想说得太冗长...因此,长话短说,在某个时候,我用 Java、Objective-C、JavaScript、CoffeeScript、Go 和 Swift 编写软件获得了报酬。在大学期间,我还涉猎了 Haskell 和一些更深奥的语言,如 Prolog 和 OCaml。

现在让我们回到 Python:

当然 Python 是我最喜欢的编程语言!我仍然记得我第一次用这些术语思考 Python 的时候:

我被要求重写一个非常复杂的 Java web 应用程序,它是一个移动应用程序的 API 后端。我用 Python 和 Flask 和 SQLAlchemy 重建了整个系统。我花了大约一个月的时间来做这件事,并且我对所有事情都使用了测试优先的开发风格。

整个经历是如此令人愉快,感觉如此“正确”,起初我都不敢相信。从那时起,我对 Python 的热爱从未消退:slightly_smiling_face:

你现在在做什么项目?

总的来说,我喜欢 Python 和编程。我想激励尽可能多的开发人员成为更好的工程师,并提高他们的技能。

对我来说,编程是一种激情。我知道找到有同样感受的人有多难,尤其是当你在偏远地区长大的时候。因此,我试图在这个领域成为一股“向善的力量”。

我一生中做过的几乎每一份技术工作都有一些教学元素。例如,我在大学期间辅导过一些编程课程,甚至做过一系列的介绍性讲座。

或者,我会在我工作过的公司里,和工程团队一起做报告和回答问题&。在我工作的上一家公司,我开始了名为“清洁代码星期五”的每周活动。最终,我也开始作为首席开发人员管理其他开发人员,每周与他们进行一对一的交流。

我总是发现这份工作的一部分非常有价值。我确实喜欢它。

当我开始做越来越多的远程工作时,教学方面突然消失了。感觉不对劲...

所以为了找回它,我逐渐建立了这些渠道,比如我的网站我的每周 Python 时事通讯我的 YouTube 频道我的 Twitter 账户,在那里我谈论如何成为更好的 Python 开发者。

这真是太有趣了!

你能以这种方式扩大自己的影响力,这真是太棒了...如果你能帮助 10 个开发人员在他们的工作上提高 10%,这已经产生了巨大的影响。

这是线性增长的:训练自己在开发方面好 100 倍要困难得多。但是帮助 10,000 名开发人员在他们所做的事情上提高 1%呢?借助互联网的力量以及你通过文章和视频所能达到的范围,这是完全可能的。

对我来说,这太棒了...所以,如果我能进入一个可以通过互联网帮助开发者谋生的方向,那就是我的最终目标。

现在我正在写一本名为 Python 技巧的新书:这是一个令人敬畏的 Python 特性的自助餐。如果你已经学习 Python 有一段时间了,但是你仍然发现自己在想,我甚至不觉得我已经掌握了 Python 的皮毛,那么你应该去看看。

一个稍微“疯狂”的副业是我和妻子刚刚推出的 Python 开发者赠品的品牌:nerd lettering . com:Mugs&Python 开发者的配件 :grinning:

哪些 Python 库是你最喜欢的(核心或第三方)?

我喜欢 Python 标准库中的集合模块。我获得的编程经验越多,我就越意识到通常最重要的事情是为你的数据选择正确的结构。一旦你用正确的数据结构表达了一个问题,解决方案通常会自然而然地随之而来。做一个大的重构总是感觉很棒,它把一些随着时间的推移而变得复杂的乱七八糟的东西换成一个清晰的数据结构。

我最喜欢的第三方库是 pdb++ (一个改进的 pdb)和 bpython (另一个 Python REPL)。我猜它们更多的是开发工具,而不是你在自己的程序中用来依赖的东西。但是因为它们是如此伟大的工具,我可以在我参与的几乎所有项目中使用它们,所以我从中获得了很多价值。

我真的很喜欢肯尼斯·雷兹在他的项目中所做的事情,比如请求或者克林特。我知道有些人认为“人类的 XYZ”在这一点上有些过头了,但 Kenneth 的东西和他设计 API 的方式至今仍是我的巨大灵感。我喜欢以用户为中心,帮助他们实现目标的库。

作为一门编程语言,你认为 Python 将何去何从?

我们都会写 Python 3 :stuck_out_tongue_winking_eye:

键入提示将发挥重要作用,并打开 Python 以前不是最佳选择的领域,例如通过实现性能优化和使大型程序更容易维护(例如工具辅助重构)

我确信 Python 将会扩大其在科学界的立足点。我的意思是,谁不想用一堆 R 代码来换取漂亮干净的 Python 呢?

当我还是个孩子的时候,我在德国长大,那时有一股关于“能和你一起成长的桌子”的热潮比如,你可以给你的孩子买一张可调节的桌子,这样他们就可以在整个教育生涯中使用它。

Python 是一种很棒的“可调书桌”语言。

虽然有微小但重要的区别,Python 也是一张漂亮得多的桌子。一个是你不会因为使用过去的小学而感到尴尬的,一个是你可以向你的女朋友/男朋友展示的。

(好吧,让我们就此打住桌子的比喻。)

基本上,我非常喜欢 Michael Kennedy 的观点,即 Python 是一种“全谱”语言。开始使用它很容易,但这不会妨碍你作为一名开发人员的成长,并利用它完成一些令人印象深刻的实际工作。

你对当前的 Python 程序员市场有什么看法?

我认为今天是成为 Python 开发者的绝佳时机。根据搜索引擎趋势 Python 是目前世界上第二流行的编程语言。那是强大的。

Python 开发人员的工作前景非常好。我每周都有好几次面试机会。从与招聘经理的交谈中,我相信对有 2-5 年经验的“中级”Python 开发人员有巨大的需求。公司非常需要这些人。

实际上,这有点无耻,不久前我和另一个博客作者 Elena Ruchko 合作写了一篇文章来回答这个问题“Python 值得学习吗?”

开发人员问我一些问题,他们说“看,我真的很喜欢 Python,但是我能指望以它为职业吗?Python 现在有什么市场?”这篇文章可以让我们对此有所了解。

因此,如果你想了解更多细节,这篇文章将深入薪资数据和就业趋势,以衡量 Python 开发人员的市场需求。可以在这里找到:为什么要学 Python?下面是 8 个数据驱动的原因

我们还包括了对行业专家的采访,所以我认为它为那些有兴趣深入挖掘的人提供了一个相当全面的概述。

你还有什么想说的吗?

首先,亲爱的读者,恭喜你,如果你一路走到这里:smile:

另外,谢谢 Mike 邀请我参与其中!你为 Python 社区所做的事情非常棒。我非常喜欢你在书中使用的“对话式”教学风格。对我来说,这比交给别人一本枯燥的技术参考资料更有吸引力。这是我试图在自己的作品中模仿的东西。

哦,还有一件随机的事情:我相信每个开发人员都应该在某个时候阅读鲍伯·马丁的书《干净的代码》。说真的,如果你还没读过,现在就去读吧。这是我多年来一直推荐的一本书。

非常感谢您接受采访!

本周 PyDev:戴恩·希拉德

原文:https://www.blog.pythonlibrary.org/2019/04/22/pydev-of-the-week-dane-hillard/

本周,我们欢迎戴恩·希拉德( @easyaspython )成为我们本周的 PyDev!戴恩是曼宁即将出版的新书《Python Pro 的实践》的作者。他也是 T4 的博客写手和网站开发者。让我们花点时间去了解一下戴恩吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一个有创造力的人,所以我的很多兴趣都在艺术和音乐上。我是一名竞技交际舞者,我是一名出版过的音乐家和摄影师。我为这些成就感到骄傲,但我被驱使去做这些事情,是为了个人成就感,而不是别的什么!我也喜欢和别人分享和讨论我学到的东西。当我有时间的时候我的下一个项目是开始探索饮食方式,这是一种通过书面历史探索食物及其文化影响的想法。我热爱烹饪(和一般的食物)已经很久了,我想更好地了解它的起源,我认为这是这一代人对整个行业要求更多的东西。应该很好玩!

你为什么开始使用 Python?

我喜欢用我的计算机工程技能来构建东西,不仅是为了工作,也是为了自己。很久以前,我曾用 PHP 为我的摄影业务写了一个网站,但我没有使用任何类型的框架,应用程序代码与前端代码混合在一起,很难管理。我决定尝试一个框架,在使用(并且不喜欢)Java Spring 一段时间后,我尝试了 Django。剩下的就是历史了!当时我开始使用 Python 做一些与工作相关的事情,发现它很好地适应了许多不同类型的任务,所以我继续使用它。

你还知道哪些编程语言,你最喜欢哪一种?

我相当经常地使用 JavaScript,尽管直到 jQuery 让位于反应式范式,我才真正开始喜欢它。我们现在经常使用 React 和 Vue,我很喜欢它用于客户端开发。我过去也使用过 Ruby,我发现它在某些方面很像 Python。我觉得我还是最喜欢 Python,但是坚持自己知道的东西很容易,对吧?我不介意学点铁锈或者快点走!我最初的背景主要是 C 和 C++,但我几乎不能管理我自己头脑中的内存,所以当我可以避免的时候,我不喜欢告诉计算机如何管理它的内存,但所有这些语言都有它们的位置。

你现在在做什么项目?

ITHAKA 我们已经管理了一段时间的开源 Python REST 客户端 apiron 。我们刚刚发布了一个特性,在这个特性中我可以探索一些元编程,这非常棒。它最终减少了人们必须写的样板文件,这也是一个亮点。我还建立了一个新网站,作为一个投资组合,集中我的一些在线存在。它是用 Vue 写的,但这是我第一次有机会探索 vue-router 和其他几个库,以及一个用于写博客的无头 CMS。

我大部分的空闲时间都花在了思考和写作我正在写的书上,这本书向软件开发新手介绍了一些在协作软件中很重要的概念,以 Python 为背景。我希望它能帮助刚毕业的人,转换学科的人,或者想用软件增加工作的人!这本书已经提前出版了,我们说话的时候,我还在不停地读新的章节。

哪些 Python 库是你最喜欢的(核心或第三方)?

requests 库是更普遍的库之一,我们就是在它的基础上构建了 apiron。我已经开始使用 pytest 来代替 Python 的内置 unittest,我喜欢它简化现有测试的方式,同时也为用 fixtures 做更复杂的事情提供了工具。有一个很棒的包 zappa,用于将 Django 应用程序(或者任何基于 WSGI 的应用程序,我相信)部署到 AWS Lambda。如果您在 EC2 实例上花费太多,请仔细考虑!对于图像处理,枕头是很好的。我想尽快尝试一个叫 surprise 的东西,它可以帮助你建立类似于网飞或 Hulu 推荐电影的推荐系统。太多其他的名字在这里!

你是如何开始写书的?

我不知道大多数作者是如何做到的,但在我的案例中,出版商曼宁联系了我——可能是在看到我在网上写的博文之后。面对这样的机会,我很难判断自己是否真的准备好或者有资格写一本书,老实说,我仍然经常问自己。我试图把它框定为一个帮助别人的机会,所以即使我没有做出完美的东西,我希望我仍然能够说我做了那么多!

写这本书时你遇到了哪些挑战,你是如何克服的?

对我来说,找到时间并平衡它与其他优先事项是主要的斗争,正如我想象的许多作者一样。我前面提到的不确定性是另一个。让我感到惊讶的是,在编程环境中使用重载术语是多么容易;许多概念有相似的名称,许多英语单词对于未经训练的读者来说可能是模糊的!幸运的是,我的编辑将这些拒之门外,但是我经常出错!教书很辛苦。我发现减轻此类问题的最好方法是尽可能自动化。

你还有什么想说的吗?

如果你正在考虑进入编程或写一本书或任何真正的东西,并且你很幸运有这样做的方法,那就去做吧!我发现我不知道自己对某样东西有什么感觉,直到我真正检查它,打开几个开关,发现它在引擎盖下是如何工作的。有时你会发现你并不像你想象的那样喜欢某样东西,但也许它揭示了你想探索的一些无关紧要的东西。最重要的部分是入门!

谢谢你接受采访,戴恩!

本周 PyDev:丹尼尔·加斯帕

原文:https://www.blog.pythonlibrary.org/2022/03/28/pydev-of-the-week-daniel-gaspar/

本周,我们欢迎丹尼尔·加斯帕成为我们的本周 PyDev!丹尼尔是《掌握 Flask Web 开发》的合著者。如果你想知道丹尼尔还在做什么,你应该看看他的 GitHub 简介

让我们花些时间来更好地了解丹尼尔吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我来自葡萄牙,住在里斯本附近,是两个漂亮聪明孩子的丈夫和父亲。

喜欢弹吉他和做音乐。就像用我的原声乐器演奏和唱歌,或者用我的旧挡泥板和破折号创作原创歌曲。

我也喜欢园艺和潜水。

我很小的时候(大约 10 岁)就出于好奇开始编程,用 ASM 或 BASIC 在 ZX 频谱上制作自己的游戏。

我有计算机科学的大学学位。 Flask-AppBuilder 的创建者,Mastering Flask Web Development的合著者,Apache Superset PMC 成员。

自 2013 年以来,我一直是开源爱好者和贡献者。

你为什么开始使用 Python?

我在很多自动化过程中使用 Perl,老实说,我讨厌它,python 显然是一门需要学习的新语言。Python 的可读性、灵活性和反射能力给我留下了深刻的印象。

显然,大量可用的软件包使它在很短的时间内变得非常有吸引力和高效。

然后开始用它进行 web 开发,先是用 Django,后来用 Flask。我非常喜欢这种语言在 python 3 中的发展方式,主要是类型注释。

What other programming languages do you know and which is your favorite?

In my teens self taught BASIC, Assembler and Pascal. Learned lots of interesting languages in college like C, C++, Smalltalk, Caml, PROLOG.

Professionally worked with VS BASIC, PL/SQL, Java, Perl, Javascript, TypeScript, PHP, Ruby, Python, and even PROLOG for writing alert rules for an IBM system.

Most interesting PROLOG loved the automatic backtracking, but I really enjoy Java, Python and TypeScript.

What projects are you working on now?

Currently working at Preset, a cloud SaaS for Apache Superset with the creator itself Max Beauchemin as the CEO.

Recently I've been involved in extending Superset to support a multi-tenant configuration, so we are supporting multiple deploys that will serve multiple client contexts in a single-tenant database architecture.

I'm actively working on Apache Superset, maintaining Flask-AppBuilder and a python elasticsearch SQLAlchemy dialect for Elasticsearch named elasticsearch-dbapi.

Which Python libraries are your favorite (core or 3rd party)?

Core, collections, itertools and functools are awesome. 3rd Party obviously Flask (great API), pytest (great fixtures), requests
(really useful) and SQLAlchemy.

How did you end up writing a book on Flask?

Flask-AppBuilder got a lot of interest, and probably because of it I got the invite.

Do you have any tips for people who want to get into book or blog writing?

Writing a book is a lot of work, and a technical book demands lots of detail. I found that having a detailed index with categories, subcategories as well as having side notes for each one of them helped a lot in organizing and collecting ideas.

Focus is very important, I found it easy to get sidetracked into details or de-railing into other subjects.

I also found it useful to set a general tone, writing is not the same as talking obviously, and a book is much longer than a technical paper or Spike. At the very least it will take several months to finish.

You should also take into consideration the technical level the book targets, beginners, intermediate, advanced or a mix.

Is there anything else you’d like to say?

Thank you for inviting me, and the great work you have done with the community.

Also would like to say that, It's a blessing to be able to work on something you love to do. It certainly demands continuous learning and you may have to reinvent yourself from time to time. That can be stressful, so, I feel that it's very important to be confident, patient, and embrace change.

Passion and curiosity can drive you to new ideas, the huge and impossible can be split to little chunks. Side projects are great to test out-of-the-box ideas (or just new tech) open-source them please!

Thanks for doing the interview, Daniel!

本周 PyDev:丹尼尔·格林菲尔德

原文:https://www.blog.pythonlibrary.org/2015/03/23/pydev-of-the-week-daniel-greenfield/

今天我们欢迎丹尼尔·格林菲尔德( @pydanny )成为我们本周的 PyDev!他是《T2:姜戈的两个独家新闻》的合著者。我关注他的博客已经有一段时间了,非常值得一读。如果你对格林菲尔德的代码感兴趣,你应该看看他的 Github 简介。现在让我们花些时间来了解我们的蟒蛇同伴吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我住在南加州,嫁给了美丽的奥黛丽·罗伊·格林菲尔德(@奥黛丽·T2),为 Eventbrite 工作。我的教育背景是文科,由于我的软件生涯,我已经忘记了我所学的大部分内容。例外是适量的创造性写作。

我十二岁时开始编程。我父亲给我们买了一个苹果。我急切地学习如何使用 AppleBasic 编写游戏。我从简单的基于文本的游戏开始,然后转向实现图形和我十几岁的头脑中所谓的“人工智能”。我最受欢迎的游戏是基于文本的《星际迷航》,多年后,我在 45 分钟的牛仔编码会议后用 Python 复制了这个游戏。你可以在 https://pypi.python.org/pypi/python-wars-solo试试。

在过去的几年里,由于职业原因,我有机会在国内外广泛旅行。去新的地方,认识新的人,建立许多友谊,了解更大的世界,这是令人难以置信的。另一方面,我后悔从来没有机会去探索我去过的大多数地方。这是我希望有一天能解决的事情。然而,我非常感激被邀请去世界各地。

我的爱好包括烹饪、阅读和写作。我还会跳巴西武术 Capoeira,它结合了舞蹈、杂技和音乐的元素。

从职业角度来说,大约从 1995 年开始,我的职业是软件工程师/编码员/开发员/黑客,主要从事开源技术。由于对编写软件的名称没有一致的意见,我已经按照我的偏好顺序把它们列出来了。以下是我这样列出它们的原因:

  1. 工程师是一个伟大的术语,但是有些人不同意。我不知道为什么,因为工程师的定义与我们的工作相符。来自维基百科:“工程(来自拉丁语 ingenium,意为“聪明”和 ingeniare,意为“发明、设计”)是科学、经济、社会和实践知识的应用,目的是发明、设计、建造、维护、研究和改进结构、机器、设备、系统、材料和工艺。”
  2. 编码器是一个很棒的术语,因为我认为它是所有名称中最直截了当的。“编码器”一词没有歧义。然而,它缺乏“工程师”的庄严。
  3. 对于网站建设人员来说,开发者听起来很棒。不幸的是,在科技世界之外,“开发者”指的是在陆地上建造东西的人。现在听起来真的很傻。
  4. 黑客是一个曾经有用的术语,但是这个词的词根已经被使用了太多次。有“生活黑客”、“增长黑客”、“金钱黑客”、“健身黑客”、“饮食黑客”、“建筑黑客”等等。在过去,这些习惯被称为“生活建议”、“市场营销”、“投资建议”、“健身技巧”、“营养”和“基本建筑技术”。我再也不能面无表情地用“黑客”这个词或它的任何派生词来形容软件了,所以我尽量避免使用这个词。

*不管怎样,我在 Eventbrite 的实际头衔是“高级软件工程师”。

最后,我和奥黛丽·罗伊·格林菲尔德合写了《姜戈的两勺》。我们已经分发了数万份电子书和数百份印刷版,主要面向那些负担不起的编码人员。世界各地有很多人联系我们,说我们的书帮助他们提高了自己,足以改变他们的生活,这让我至今感到惊讶。

你为什么开始使用 Python?

十多年前,我对用其他编程语言(Java、ColdFusion、Foxpro 等)写代码感到非常沮丧。我现在知道,我对 Java 的失望可能是因为在 J2EE 的环境中工作。情况变得如此糟糕,以至于我开始考虑其他职业道路。

幸运的是,我在美国宇航局总部找到了一份工作。2005 年 1 月 3 日,我作为一个分包商(Diversiphon= >、Spherion= >、SAIC= > NASA)开始在那里工作,从美国纳税人为我提供的服务中赚取一小部分。在我的第一年,Chris Shenton 向我介绍了 Python。我立刻就被吸引住了。它的简单易学、开箱即用以及最重要的动态输入给我留下了深刻的印象。直到今天,Python 的类型化仍然是我最喜欢的语言特性之一。

到 2006 年初,我在 NASA 的一个严肃项目中成功地专业使用了 Python。有一个带有自签名 SSH 证书的 Active Directory 实现,多个项目需要从中提取数据。当时的 Java 库不能处理它,但是 python-ldap 可以。我编写了一个 REST/JSON webservice,允许其他项目轻松获取活动目录数据。现在听起来很琐碎,但是在过去,与曾经统治世界的 JAVA/SOAP 服务相比,Python REST/JSON 服务是非常先进的。

在第一个项目之后,我知道我必须转换语言。在这个过程中遇到了一些挫折,所以又过了一年才没有发生。幸运的是,到 2007 年中期,我们已经在 NASA 总部组建了一个 Python/Zope 团队,我也永远被锁定了。

你还知道哪些编程语言,你最喜欢哪一种?

除了 Python 之外,我唯一专业使用的其他语言是 JavaScript。像许多人一样,它有我喜欢的部分,也有我讨厌的部分。我对 JavaScript 这个主题的感受和其他不以 JavaScript 为主要语言的人的想法是一样的。

虽然我在 Haskell 中没有实质性的项目,但在过去的一年里,我对它的研究改进了我编写 python 代码的方式。具体来说,我更擅长将业务逻辑放入更小、更原子的功能中,这些功能更容易测试。

在过去的一年里,我也玩过围棋,但没有 Haskell 玩得多。

最后,我对苹果的 Swift 很感兴趣。我喜欢它的想法,即使它是用于一个闭源平台。这是我 2015 年要学的事情之一。

你现在在做什么项目?

我正和我的妻子奥黛丽·罗伊·格林菲尔德一起做一些秘密的兼职项目。

我准备为亚马逊 Kindle 自助出版的这本小说。事实上,我 2014 年愚人节的博文背后的笑话是,这不是一个笑话。本来希望上个月出,但是因为家庭原因不得不推迟了一段时间。如果你没有时间做好,就不要做任何事情!

对于开源,我有很多自己维护或共同维护的项目。唉,我没有足够的空闲时间来研究它们。对于大约一半的人来说,我已经设法找到了优秀的、始终如一的合作维护者,但是对于其他人来说,只有我和我落后了。这在过去的几个月里引发了一些问题。我对事情不是很满意,但此时我没有替代方案。我只是没有太多的免费时间来开发开源软件。值得一提的是,我觉得众包并不是答案,因为这样获得资金会耗费大量时间,而且并不总是成功的。
说白了,我相当嫉妒大卫·克拉姆,因为他和他的商业伙伴已经把哨兵项目变成了一项为自身发展买单的努力。

哪些 Python 库是你最喜欢的(核心或第三方)?

最近我对最喜欢的图书馆的想法集中在那些对初学者有帮助的图书馆上。我说的不是教程,而是那些能够加速一个新生的程序员变得高效的工具。

我喜欢在我妻子于 2013 年创办的《T2》上工作。它所做的是从模板生成项目,并在任何地方工作。我所说的“无处不在”是指它可以在很多版本的 Python 上工作,在 Linux、Mac OS X 和 Windows 上工作,并且对 unicode 非常友好。Windows 问题是一个巨大的胜利,因为这意味着它使得操作系统的初学者可以轻松地创建可安装的 Python 包或可部署的 Django 或 Flask 项目。这要归功于奥黛丽·罗伊·格林菲尔德、迈克尔·约瑟夫和保罗·摩尔的英勇努力。

说起 Windows 用户,我觉得康达很迷人。虽然我是 pip/virtualenv/virtualenvwrapper 的粉丝,但那套工具确实提高了那些不基于 POSIX 系统的人的入门门槛。当然,对于使用现代笔记本电脑的人来说,Docker 之类的东西让他们很容易上手,但对于使用旧设备的初学者来说,这是一个瓶颈。这甚至适用于非科学的 python 库。安装问题是我停止教授基础
教程的主要原因之一。在工作开始时试图让它们在每个人的机器上正确工作会吸走我的热情。总有至少一个不幸的人无法让事情运转起来。作为一个使用二手 Windows 笔记本电脑开始学习 Python 的人,Conda 的出现是我多年来一直想看到的。

我也对 iPython 笔记本印象深刻。在 python 巴西 2014 大会上与 Fernando Perez 交谈后,我现在明白了它不仅仅是一个方便的 Python 工具。它改变了人类知识的控制和传播,不仅仅是编程。我发现这很鼓舞人心,如果我写一本非 web Python 的书,我会使用 iPython Notebook 作为材料的一个组成部分。

除了这三个,我喜欢我在 Python 包索引中发现的任何新东西。看到新包装或旧包装更新就像收到日常礼盒。

你还有什么想说的吗?

是的!我真的很喜欢你的书,Python 101!这是我推荐给新 Python 程序员的其中之一!

非常感谢!

一周的最后 10 个 PyDevs

本周 PyDev:丹尼尔·罗斯曼

原文:https://www.blog.pythonlibrary.org/2017/09/18/pydev-of-the-week-daniel-roseman/

本周,我们欢迎丹尼尔·罗斯曼成为本周的 PyDev。我在 StackOverflow 上通过他给出的一些 Python 答案偶然发现了 Daniel。他在 StackOverflow 上排在前 0.01%的位置,这是相当令人印象深刻的。他还有一个旧的博客,里面有一些有趣的 Python 相关文章。你可以在 Github 上看到他最近在忙什么。让我们花一些时间来更好地了解丹尼尔!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名自学成才的程序员——我的学位实际上是法语的——在最终进入专业网站开发之前,我做了十年的记者和助理编辑。

从那以后,我在全球电台、Glasses Direct、谷歌工作,现在在英国政府数字服务部门工作,目前我是 GOV.UK 网站发布平台的技术架构师。

工作之余,我是各种业余合唱团的歌手。几年来,我还在当地的一所小学开办了一个代码俱乐部,帮助 10 岁和 11 岁的孩子初次接触使用 Scratch 以及后来的 Python 本身进行编程。

你为什么开始使用 Python?

我参与了一个慈善网站的帮助工作,这个网站最初是用 Zope 2 用 Python 写的。在那之前,我从未做过任何 Python,最初的开发者之一(谢谢,Yoz!)帮助我开始学习,并指引我深入 Python,这是学习这种语言的极好资源。

那个时候,这个慈善网站还很初级,没有一个合适的 CMS,所以我四处寻找技术来使它更有用。这就是我如何发现 Django 的,那时它刚刚开始产生影响;这大约是最早的开源版本 0.90 左右的时候。我爱上了 Django,并很快用它完全重建了网站,我再也没有回头。

你还知道哪些编程语言,你最喜欢哪一种?

我目前团队的大部分工作都是用 Ruby 完成的,所以在过去三年左右的时间里,从专业角度来说,我主要是在做这项工作。也有一些围棋,虽然我自己没怎么下过。

Python 无疑仍然是我的最爱。虽然我确实喜欢 Ruby 带来的很多东西,但 Python 仍然是最适合我大脑的语言。

你现在在做什么项目?

由于家庭事务和其他事务,我没有太多时间进行真正的开源工作,所以我倾向于尽可能地贡献各种 bug 修复和小功能。

目前的一个项目是看看我是否能利用我在 Code Club 的经验为孩子们写一篇关于 Django web 开发的介绍。有一些使用 Python 的儿童编程教程,但是没有专门针对 web 的。它主要是受奇妙的 Django 女孩教程的启发,但我想看看是否有可能为更年轻的年龄组从基础到所有相关技术做一个介绍。不过这是一个长期项目,所以要展示任何东西还需要一段时间。

哪些 Python 库是你最喜欢的(核心或第三方)?

显然,我会把姜戈放在我最喜欢的名单上。正是它让我真正迷上了 Python,并帮助我找到了我在 web 开发领域的第一份工作。可用性和功能性很好地结合在一起,而且有大量的第三方软件包可以满足任何需求。

你是如何成为 Python stack overflow 的顶级“大师”之一的?

坚持,而且不止一点点的“网上有人错了”综合症。像许多程序员一样,我喜欢帮助和分享我的知识,为 SO 做贡献对我来说是一个很好的方式:希望我已经帮助了很多很多人。我从帮助那些尽最大努力做好某件事,但不知何故误解了某个概念或努力想明白为什么事情没有按照他们认为应该做的去做的人身上获得了很多满足感。

最重要的是,我确实喜欢写作,但我很少有机会坐下来写长文或博客;但是在 SO 上用解释或代码片段回答问题只需要一分钟左右。实际上,帮助 StackOverflow 上的人们是我对开源社区的主要贡献。

对于那些想知道我是如何设法回答这么多问题的人,我的 RSS 阅读器里有最新的 Python 和 Django 问题的提要;例如,当我在上班的火车上浏览网页时,我经常会遇到一个我想回答的问题。我已经非常擅长使用手机键盘输入代码示例。

与其他技术帮助网站相比,你最喜欢 StackOverflow 的哪一点?

主要是直接关注实际编程的问题和答案。这里有一个非常清晰的关于什么是正题和离题的概念,任何不是关于如何解决特定编程问题的实际问题都会很快结束。同样,它允许并鼓励发帖者返回并编辑他们的问题,以发布他们可能遗漏的相关细节,使他们更相关、更清晰。

当然,这样做的另一面是,它确实会导致新人有时看起来不受欢迎,他们通常不知道如何提问,并在被问及更多细节时变得有所防备。我在几次会议上做过一个简短的演讲,关于什么是好问题,以及如何最大化你得到答案的可能性;幻灯片在这里:https://www . slide share . net/Daniel roseman/asking-good-questions-53621064

另一方面,有几件事我不喜欢。令人惊讶的是,其中之一是积分系统;我有太多的观点。虽然这在一定程度上是因为我贡献了很多,但这也不是无关紧要的,因为我很早就加入了,并写了一些“经典”的答案,这些答案得到了很多投票,甚至在几年后。有些答案甚至不是很好,但他们继续得到选票,正是因为他们已经有了选票。不过,我真的不知道该如何改进。

感谢您接受采访!

本周 PyDev:丹尼尔·津加罗

原文:https://www.blog.pythonlibrary.org/2021/08/16/pydev-of-the-week-daniel-zingaro/

本周我们欢迎丹尼尔·津加罗成为我们的本周 PyDev!丹尼尔是《通过解决问题学习编码:Python 编程初级读本》和《T2 算法思维》的作者。如果你想知道丹尼尔还在做什么,你应该访问他的网站

丹尼尔甚至勇敢的跳伞了一次!

现在让我们花一些时间来更好地了解丹尼尔!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我现在是一名计算机科学家,但这几乎没有发生。当我还是学生的时候,我真的很喜欢我的心理学课程。就像,痴迷:我会学习,学习,学习那些课程,然后,过了这一点,我会去我的计算机科学的东西。我维持了三年的心理学和计算机科学专业,最后不知所措,选择了计算机科学。不完全确定为什么——我想这是计算机科学家解决问题的方式。

我为自己在心理学研究上付出的努力感到高兴。理解人和理解计算机对于写一本编程书来说是同等重要的技能。

在 2000 年代中期,我攻读了计算机科学硕士学位,在一个叫做形式方法的领域,你要证明系统没有错误(或者,你知道,你要修复东西,直到你能证明它)。我喜欢它,但是我觉得我不能在那个领域做出贡献。我会一天又一天地坐在那里,埋头苦读一篇论文,而在我看来,其他人能够更快地阅读和理解。我记得有一次去参加一个研究会议;结束后,我想,“我不可能做这些人正在做的事情”。但当然,我不能:他们是该地区的老手,而我只是刚刚开始学习。这些天我对自己更有耐心了。

同时,我有机会做了一次关于编译器的客座教授。只有一堂课,但这足以表明我想专注于如何教计算机科学。我现在就是这么做的。

写作是我生活中重要的一部分...不幸的是,这是我多年来专注于学术研究生涯时忽略的一个重要部分。我的妻子是一名作家,她帮助我重拾写作。2018 年,我有一年的教学休假,在此期间,我怀着多年来从未有过的紧迫感写作。其结果是一本名为《算法思考》的书,这本书没有数学,没有证明,但是严谨地介绍了如何思考数据结构和算法。之后,我被迫写更多,通过解决问题来学习编码就是结果。

通过解决问题学习编码是基于我十年来对一个问题的研究:我们如何帮助学生更好地学习编程/CS 材料?例如,这就是为什么教材的重点是解决问题(而不是学习语法本身),为什么我想让读者暂停一下以确保他们在正确的轨道上,为什么所有的练习(甚至是章节末尾的练习)都有示例解决方案。另一个明确的目标是带着同情心写作。学习编程很难。对于初露头角的程序员,我们最不需要的就是假装不是这样。

为了好玩,我试着读斯蒂芬·金的所有书。我以前也读 Animorphs 的书,但我不得不禁止自己这样做,否则我只会一遍又一遍地读,其他什么也做不了(你好,2014 年夏天)。

你为什么开始使用 Python?

大约 15 年前,多伦多大学的 CS 入门课程从 Java 转向 Python。不久后,我来到多伦多大学,并有机会教授一门编程入门课程。所以我必须学习 Python,而且要快!🙂

我认为 Python 是第一个值得学习的编程语言。可用的库是如此丰富,以至于我们几乎可以立即使用它们让学生从事有趣的、激励性的、多媒体项目。我认为这有助于鼓励学生的多样性,拓宽关于什么是计算机科学家以及他们做什么的过时概念。

你还知道哪些编程语言,你最喜欢哪一种?

我有两个最爱:Python 和 C,取决于项目。当我想在高层次上工作时,我会使用 Python。我用 C 进行系统编程,或者每当我想写一些接近硬件的小程序的时候。

其他很多语言我都没认真用过。我花了几年时间研究 Visual Basic 6;我用它来制作有声电脑游戏。

对于那些刚刚入门的人:我认为做一点背景研究(你想建立什么?)然后一头扎进一门合适的语言,比一开始就试图选择完美的语言更可取。你所学的很大一部分将会转移到其他语言中。无论如何,语言来来去去,所以关注基本的、交叉的概念是关键。这就是我在我的书里尝试的:我希望你成为一名程序员,哦,对了,你也将成为一名 Python 程序员。

你现在在做什么项目?

我目前正在探索一些其他的书籍选择。我最近写的两本书《算法思考》和《通过解决问题学习编码》是我必须要写的两本书。在其他书被写出来之前,我无法去想它们。现在他们是了,我正在研究一些不同的书籍方向。那两本书从我身上撕下来了。我怀疑任何未来的书都需要更多的哄骗。我期待着可能带来的机遇和挑战。

哪些 Python 库是你最喜欢的(核心或第三方)?

我真的应该尝试更多的库!现在,我要说的是,我在教学中从 Pygame 中学到了很多。它帮助我开发游戏或图形项目,激励一些学生。(当然,除了游戏,使用其他领域也很重要。但是当我需要一个游戏环境时,我会使用 Pygame。)

您提到您是盲人/视障人士。面对这些挑战,你如何写一本书或代码?

在过去的 30 年里,这方面的事情发生了巨大的变化,以至于今天,我只需要一个自由软件(NVDA 屏幕阅读器)就可以完成我所有的工作。如果你已经是一名中级/高级程序员,并且你想购买我的 Python 书籍来支持我的工作而不是学习:请考虑捐赠给 NV Access,他们让 NVDA 成为现实。

我花了一段时间才习惯 Python 的一个特点是缩进!我敢打赌,它在屏幕上看起来很好,但不像大括号或 begin/end,缩进对我来说几乎是不可见的。最近,我使用了 NVDA 的一个功能,随着缩进量的增加,它会发出越来越高的哔哔声。

我为任何有趣的事而活。有什么比我收到作者寄来的书却看不到自己写的东西更有趣的呢?或者写代码生成我自己都用不上的图?我感谢 No Starch 出版社的编辑,没有他们,我可能会使用 6 号字体、ASCII 表和令人头痛的纵横交错的图表。

你在写这本书的时候学到了什么?

有时,看似截然不同的兴趣/调查路线会以令人惊讶的方式走到一起。

几年前,我对竞争性编程产生了兴趣。这是真的:程序员在国际问题解决比赛中竞争。我被他们社区的创造力所吸引,开始广泛阅读他们的作品。他们的大部分资源都集中在高级编程和数据结构上,从那以后,我将其中的一些内容融入到了我的高年级课程中。他们有几千个独特的、高质量的问题,这些问题是书本上找不到的。

另外,我教过很多次编程入门。我的大部分研究是关于入门编程的。我在教学和研究中了解到的一件事是,语境可以帮助许多学习者。一些学习者会很乐意为了一个不明确的、抽象的未来目的而学习循环。但是其他人想知道“为什么循环”,“为什么函数”,为什么我需要这些东西?

在写《通过解决问题来学习编码》的时候,我能够将我对编程入门的经验和研究与我对竞争性编程社区产生的大量问题集的认识结合起来。(事实证明,有竞争力的程序员也设计了数千个入门级别的问题!)没有这两行探究,我是写不出这本书的。

你还有什么想说的吗?

学习编程可能具有挑战性。不要担心要花多长时间。也许你的朋友比你学得快。也许有人告诉你,像你这样的人不会编程。也许你以前尝试过,但一无所获。或者,等等。也许你认为你无处可去。衡量进步并不容易,尤其是在开始的时候。不要让人们阻止你。按照自己的时间表工作。你有别人没有的想法和优先权。如果你想学习,我希望你找到资源、力量和精力去学习。

丹尼尔,非常感谢你接受采访!

本周 PyDev:Dave Forgac

原文:https://www.blog.pythonlibrary.org/2017/08/07/pydev-of-the-week-dave-forgac/

本周,我们欢迎戴夫·福加克成为我们本周的 PyDev!Dave 是 PyOhio、ClePy 和克利夫兰 API Meetup 的组织者。他还在 PyCon 2017 上做了一个关于分享您的代码的演示,您可以在下面观看:

https://www.youtube.com/watch?v=qOH-h-EKKac

戴夫还有一个列出他其他演讲的网站。你可能也会觉得他的 Github 简介很有趣。让我们花一些时间来更好地了解 Dave!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是俄亥俄州大克利夫兰地区 American Greetings 的一名高级软件工程师。在那里,我主要关注 API 设计和开发、应用程序部署和内部开发人员体验。

我在克利夫兰长大,在失去奖学金和休假之前,我上过几个学期的大学课程。我在 2003 年搬到了特拉华州的威尔明顿,并最终回到了学校,比原计划晚了八年完成了信息系统学位(永远不会太迟!)2011 年,我和妻子搬回了克利夫兰地区。我们现在有一个 3.5 岁的孩子和一个新生儿让我们忙个不停。

我喜欢和我的孩子一起玩,和我的家人在镇上散步,烹饪,酿造,徒步旅行和桌面游戏。我最近真的很喜欢第五版 D&D。我也有一堆“玩具”编程项目,当我有时间的时候我就去做。

最近,我花在社区组织上的时间比我写代码的时间还多。我帮助组织了一些当地的聚会和聚会。我是 PyOhio 2017 项目主席,刚刚敲定了日程。你应该找个时间去看看 PyOhio!

你为什么开始使用 Python?

我的第一份付费编程工作是使用 Perl,在某个时候,有人(我希望我能记得是谁!)建议我去看看 Python。1999 年圣诞节,我给自己买了一本《学习 Python 》,很喜欢我看到的内容。然后我做了一些 PHP 和 Ruby 的工作,但也涉猎了 Python。当我在 2008 年开始在一家虚拟主机公司工作时,我终于开始更经常地使用它来自动化管理任务。从那以后,Python 一直是我的主要语言。

你还知道哪些编程语言,你最喜欢哪一种?
这些年来,我学过很多语言,从我小时候从邻居的垃圾桶里捡来的一台 TRS-80 的 BASIC 语言开始。我已经用 Perl、PHP、Java、Ruby、JavaScript / Node 和 Go 做了大量的工作。到目前为止,Python 是我最喜欢的语言,也是我最喜欢的社区。不过,根据任务的不同,我可以看到自己在围棋上做更多的工作。

你现在在做什么项目?

在过去的几个月里,我一直在为 OSCON 和 PyCon 的讲座和辅导课做准备,这些工作一完成,PyOhio 的组织工作就进入了高潮。八月份,一个新的孩子要来了,我可能不会有太多的时间去做额外的项目。一旦我找到一些空闲时间,尽管我正在完成一个 DIY 气象站,并为 D & D 使用的 Alexa 技能添加一些功能。我还计划对几个现实世界连接的 Twitter 机器人进行一些更新:@iotjackolantern 和@iotxmastree

哪些 Python 库是你最喜欢的(核心或第三方)?

我想到了三个,因为它们改变了我日常编写和管理 Python 代码的方式:

  • Cookiecutter 允许你根据模板和一些问题的答案生成项目。它会为您处理所有的样板文件,这样您就可以快速开始处理您的包所做的事情,而不是打包和设置。我发现这让我更有可能打包和发布代码。我喜欢你可以在生成的项目中包含测试存根和文档布局,因为当你发布一个项目时,人们更有可能对现有的测试/文档做出改进,而不是为你大规模地创建它们。我建议找到一个接近您所需的包模板,将其分叉,并将其用作 Python 项目的基础。
  • Pipsi 将 Python 包安装在它们自己独立的 virtualenvs 中,并使它们可以从你的缺省 shell 中获得。我用它来使许多 Python 命令行工具对我可用,而不必担心激活 virtualenv。例如,我通过 Pipsi 安装了 Cookiecutter。
  • Jupyter 为您提供了一个基于 web 的界面,用于交互式运行 Python(和其他代码)。您通常会在数据分析和科学计算的环境中听到它,但我发现这是一种试验新代码或在我忘记时保存事物如何工作的示例的好方法。

你还有什么想说的吗?
我非常兴奋 2018-2019 年的 PyCon 将在克里夫兰举行!我期待着展示我的不被重视的城市,并认为人们将度过一段美好的时光。如果你想谈论参观克利夫兰的 PyCon 或其他任何事情,请在 Twitter @tylerdave 上找到我。

感谢您接受采访!

本周 PyDev:大卫·比兹利

原文:https://www.blog.pythonlibrary.org/2015/06/29/pydev-of-the-week-david-beazley/

本周,我们欢迎大卫·比兹利(@达贝斯)成为我们本周的 PyDev!大卫是 Python 基本参考的作者,也是 Python 食谱第三版的合著者。他还有一个博客,那是我第一次学习 Python 时喜欢的,尽管我认为它已经不再更新了。不过,你可能会对他的 Python 对话感兴趣。让我们花些时间去更好地了解他吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

在过去的 17 年里,我一直住在芝加哥地区,和我的妻子、孩子在那里扎根。我目前是自由职业者,大部分时间都在从事各种 Python 相关的项目,包括培训、咨询和写书。除了编程,我还喜欢演奏音乐、在商店工作和骑自行车。最近,我一直试图在气温低至零下 25 度的芝加哥冬季骑自行车外出。关于这一点有很多事情不太对劲,但它以其独特的方式带来了很多乐趣。至少,从整天盯着电脑屏幕中解脱出来是个不错的休息。

关于我的教育,大约从六年级开始,我就一直在玩电脑编程。我本科学习数学,但最终获得了计算机科学博士学位。作为一名大学教授,我还教授了大约七年的各种计算机科学课题。

你为什么开始使用 Python?

当我开始使用 Python (1996 年)时,我正致力于让计算物理学家更容易与运行在超级计算机上的模拟软件进行交互。标准做法是向系统提交非交互式批处理作业,在几个小时后卸载生成的数据,然后尝试使用运行在桌面上的各种数据分析工具来思考发生了什么。唯一的问题是,所有这些都没有真正发挥作用——或者肯定没有发挥出应有的效率(通常要花数周时间来做最简单的实验)。大约在 1995 年,我一直在尝试将脚本语言直接整合到我们的物理软件中,这样用户就可以更直接地与它交互。我熟悉诸如 MATLAB 和 IDL 之类的工具,并且一直在尝试根据我们的具体问题(分子动力学)定制一些东西。我甚至创建了一种自己开发的脚本语言和代码生成工具,后来被称为 Swig(是的,就是那个 Swig)。创建我自己的编程语言的想法不太符合我的博士委员会,他们建议我考虑一些替代方案。因此,我开始探索其他选项,包括 Tcl、Perl 和 Guile。我发现 Python 纯属偶然,因为我在 Paul Dubois 在《计算机物理学》中写的一篇文章中提到了它。作为题外话,Paul 一直在思考完全相同类型的问题(使物理软件可编程),并积极参与许多工具的开发,这些工具后来成为 NumPy 和 SciPy 的前身。

没多久就在 Python 上把我卖了。我喜欢简单的语法,交互式 REPL 正是我想在我们的物理软件中拥有的那种东西。不仅如此,C 语言的实现非常简洁,易于使用。我最早的一个项目涉及到移植 Python 来运行在 Connection Machine 5 和克雷 T3D 大规模并行系统上。这有点疯狂——您可以像现在这样坐在交互式 Python 提示符下,但是无论您键入什么,都会在 1024 个 CPU 上同时执行。真正打动人们的是,我的小 Python 黑客可以解决以前需要 5-6 个小时才能解决的问题,并将它们减少到 4 秒左右。头脑被炸了。请记住,这远在 NumPy、SciPy、Pandas 或任何 Python 程序员现在认为理所当然的高级数据分析工具出现之前。对于那些对此类问题有强烈看法的人来说,在超级计算机上安装一种慢速解释语言并与数据进行交互的想法在很多层面上都是错误的。

你还知道哪些编程语言,你最喜欢哪一种?

我认为自己在 C 和汇编编程方面相当流利。我对其他语言有不同程度的经验,包括 C++、Objective C、Java、Perl、Tcl、Scheme、ML、PHP 和 Javascript,尽管如果我不得不做一些有用的事情,你可能会发现我埋头于书本或栈溢出。我最近发现自己在摆弄 Java,因为我的孩子一直在烦我制作 Minecraft mods。我可以到处走走,但是我不认为在可预见的将来我会去找一份 Java 程序员的工作。我真的需要探索一个更 Pythonic 化的解决方案。

至于喜欢的语言,那就难了。对于日常任务,Python 绝对是我的首选工具。然而,如果我不得不在我的整个职业生涯中选择一种最喜欢的语言,我认为它可能是汇编语言。我的第一份工作是为显卡编写设备驱动程序。我还花了很多时间埋头于汇编语言,学习如何在我的 Apple 2 上对街机游戏进行 mod 和逆向工程。汇编语言有一种原始的简单和美丽。还有一些不寻常的挑战,比如只能通过使用闪烁的灯或哔哔声来调试代码。这需要毅力和独创性的某种结合。然而,当你弄清楚的时候,看到你的代码最终工作了,这也是非常令人满意的。通过汇编编程,你还可以更深入地了解计算机和算法是如何工作的。

你现在在做什么项目?

我目前正处于将 Python 基础参考书更新到新版本的早期阶段。在过去的两年里,我也一直在为一家初创公司做一些软件开发。大部分代码都是非常典型的东西,包括数据库、web 服务、测试等等。我不认为自己是一名网络程序员,所以我实际上已经通过工作学到了很多新东西。

哪些 Python 库是你最喜欢的(核心或第三方)?

一般来说,我最喜欢的是内置库。很难指出最喜欢的,但我认为它可能是收藏模块。我觉得集合是这个秘密武器,让我解决各种棘手的数据处理问题。如果你不使用它,你可能会错过。纯粹为了好玩,我也喜欢多重处理.连接子模块。这里有一些巧妙的东西,可以用来在不同机器上运行的 Python 解释器之间建立经过认证的网络连接,在这些机器之间传递 Python 对象,以及做其他有趣的分布式计算之类的事情。

对于第三方模块,我最近大部分时间都在使用 SqlAlchemy、Pandas 和 requests。所有这些都很棒。我还花了相当多的时间使用与 Redis、ZeroMQ、AWS 和相关技术相关的模块。

你为什么决定写关于 Python 的书?

当别人问我“不”的时候,我拒绝说“不”,从而开始写书。我曾在 1998 年担任 Python 会议的项目主席,会议结束后不久,New Riders publishing(后来并入 Pearson)的一名编辑联系我,询问我写一本 Python 书籍的可能性。当时,其他 Python 书籍屈指可数。在过去的编程工作中,我从诸如著名的 Kernighan 和 Ritche 的《C 编程语言》以及 W. Richard Stevens 的关于高级 Unix 编程的书籍中发现了很大的用处。我认为尝试以类似的方式写一本 Python 书籍可能会很有趣。所以,这最终导致了 Python 基本参考的出版。

最近的 Python 食谱(O'Reilly)有一个稍微不同的解释。我越来越被所有关于使用 Python 3 的借口和道歉所困扰。因此,对于这本书,我决定尽最大可能拥抱 Python 3,并尽我所能写一本最现代的 Python 书——而不关心 Python 2。这样做有一定的风险,但是如果 Python 有一个光明的未来,我觉得它应该由前瞻性的书籍来服务。

作为一门编程语言,你认为 Python 将何去何从?

鉴于围绕 Python 2 和 3 的普遍混乱,这是一个有趣的问题。使用 Python 3 已经六年了,它有很多非常棒的地方值得我喜欢。然而,它在一些关键领域也有很大的不同——如果人们选择使用它,他们将不得不接受这一点。尽管肯定会有一些项目永远不会迁移到 Python 2,但是没有理由为什么您现在不能开始在 Python 3 中创建新项目。总的来说,编程的世界总是充满了混乱和烦人的问题——这是 Python 一直擅长的事情。出于这个原因,我真的不认为它会很快消失。

你对当前的 Python 程序员市场有什么看法?

我并不太关注 Python 的就业市场。然而,我不知道有失业的 Python 程序员,所以这可能是一个好迹象。

你还有什么想说的吗?

Python 一直是一门实用而有趣的语言——用它编程应该是令人愉快的。如果没有,你可能做错了什么。

一周的最后 10 个 PyDevs

本周 PyDev:大卫·费舍尔

原文:https://www.blog.pythonlibrary.org/2019/10/28/pydev-of-the-week-david-fischer/

本周,我们欢迎大卫·菲舍尔( @djfische )成为我们本周的 PyDev!大卫是圣地亚哥 Python 用户组的组织者。他也为阅读文件工作。你可以在大卫的网站上看到他在做什么,或者在 Github 上查看他在做什么。让我们花一些时间来更好地了解大卫!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是圣地亚哥 Python meetup 的组织者之一,我从 2012 年初就开始做这项工作,但我现在的爱好主要是花时间陪我 3 岁的女儿。我也非常喜欢各种游戏,从面对面的棋盘和纸牌游戏到电脑游戏,我的女儿正处于开始介绍这些东西的合适年龄。

我有一个应用数学的学士学位,尽管这个名字包含了很多编程。我主要是在大学里学的 Java,除了一些 Android 开发之外,我几乎没有用过。

在工作方面,我曾在高通、亚马逊和一家与啤酒技术相关的初创公司工作过。).我目前的工作是阅读文件。我有机会从事许多不同的工作,从 web 应用程序、移动应用程序、技术销售/营销、可扩展性、安全性和隐私。我不想排除为大公司工作的可能性,但是小公司的生活似乎更适合我。

也许这源于我的一些安全和隐私工作,但我尽量不参与社交媒体。我很惊讶有人联系我做这个采访,因为我认为自己在圣地亚哥之外的 Python 社区中相当低调。不过,我很乐意这么做。

你为什么开始使用 Python?

我第一次学习 Python 是在一个大学课堂上,我们大约每 3 周就有一个新编程语言的项目。我们还学习了 JavaScript,一种叫做 ML 的类似 Lisp 的语言,以及 Prolog。当时我对编程的看法还不是很成熟,但我记得相对于其他人来说,我真的很喜欢 Python。我想我用的是 Python 2.3 或者 2.4 测试版。那时 Python 文档的颜色要鲜艳得多。

在那之后的大约 4-5 年里,我没有开发任何 Python,但是当我需要开发一些类似于糟糕的 mitmproxy 版本的东西时,我又回来了(尽管当时 mitmproxy 还不存在)。我真的很喜欢在那个项目和 Python 中工作,这可能是我唯一一次遇到这种情况,但我记得从我的工作中抬起头,已经是午夜过后了。我没吃晚饭,其他同事几个小时前就已经回家了。我被吸引住了,从那以后我一直在做 Python。

你还知道哪些编程语言,你最喜欢哪一种?

到现在大概十年了,但是我做了几年专业的 PHP 开发人员。有时,这种语言在 Python 社区中名声不好,但我一直认为这是好的,它确实有一些 Python 生态系统可以学习的地方。今天,我主要使用 Python 和一些 JavaScript。Python 绝对是我的最爱。

你现在在做什么项目?

从专业角度来说,我正在阅读文档,虽然我们是一个非常小的团队,所以每个人最终都会接触到所有东西,但我主要从事广告、安全、隐私和可扩展性方面的工作。因为我们是一个小团队,所以我也做一些市场和销售工作,尤其是广告方面的工作。我真的很喜欢它,但是用开源赚钱很难。

我不像过去那样有那么多时间为了好玩而从事开源工作,但我也试图总是在工作中有一两个附带项目。

哪些 Python 库是你最喜欢的(核心或第三方)?

在我心中,请求库肯定有一个特殊的位置。在过去的一份工作中,我有一个非常复杂的工具,它使用 urllib2,必须处理一些定制的身份验证方案、cookies、重定向和许多其他事情,请求使之变得容易,但使用 urllib2 需要数百行代码。

命令行框架点击是相当惊人的,但很少被人欣赏。对于一个非平凡的命令行应用程序,我无法想象使用其他任何东西。托盘团队已经想到了一切。类似于 Django 这样的 web 框架如何帮助人们以一种好的方式设计和构建应用程序,Click 引导命令行应用程序作者制作好的应用程序。

这与其说是一个库,不如说是一个命令行应用程序,但我将插入 VisiData 。几个月前我第一次接触到它,但我总是能找到它的新用途。每当我需要研究一些数据时,无论是 CSV、JSON 还是其他格式,我都非常依赖 VisiData。

你最终是如何组织圣地亚哥 Python 的?

圣地亚哥蟒蛇形成了另一个分崩离析的群体,叫做 DjangoSD。DjangoSD 有一个反复出现的问题,即组织者被海湾地区的重力拉走,所以组织者的流动率很高,结果受到了影响。聚会不定期举行,通常是在某一天,而且通常每次都在当地不同的酒吧举行。2012 年 1 月,我参加了一个聚会,只有另外 3 个人,其中一个是组织者。他说不想干了,问谁来接手,我就一直干到现在。

我们现在有一个繁荣的当地社区,我们每月的聚会将有 50+人。成功的最大关键是有其他伟大的组织者——陈筱涓很了不起——并把工作分散开来。如果我必须做所有的事情,我现在已经精疲力尽了。此外,与事先计划好的会谈保持一致也有所帮助。真正的考验是几年前我女儿出生的时候,我不能为 SD Python 做那么多。其他组织者挺身而出,该集团继续顺利进行。

我看到你和姜戈一起工作。你为什么选择它而不是另一个 Python web 框架?

我在 0.96 天内学会了 Django,我想我给了 Django,TurboGears 和 Twisted 每一个尝试,我最喜欢 Django。Django 的文档绝对有帮助。虽然我认为现在大多数流行的框架都有好的文档,但那时候绝对不是这样。

从那以后,我用 Flask 做了一些小项目,它确实有一些好的方面。这对一些人来说是有争议的,但我也有成长的烦恼,我一直想做的 Flask 应用程序变得越来越大,我后悔没有从一开始就和 Django 一起去。

我在像 Django 这样的“大”框架中看到的最大优势之一是,从一个项目到另一个项目,内部应用程序结构是非常一致的。即使当我在做一个全新的项目时,我也知道在哪里找东西:settings.py 中的设置,models.py 中的模型,等等。这种一致性使得开发人员开发新项目的速度大大加快。就在最近,我正在帮助一个朋友为他的网站准备一个流量高峰,如果我不得不提升框架和项目本身,这将是一个更大的项目。

大卫,谢谢你接受采访!

本周 PyDev:David Goodger

原文:https://www.blog.pythonlibrary.org/2016/12/12/pydev-of-the-week-david-goodger/

本周我们欢迎大卫·古杰成为我们的本周 PyDev!大卫是《重组文本》和《T2》的原作者。他有一个老派的网站,在那里你可以了解他一直在做什么。让我们花些时间来了解一下我们的同胞皮托尼斯塔吧!

dgoodger

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

在 Python 世界里,我最出名的是 Docutils 和 reStructuredText 的创造者。此外,我在 PSF 中一直很活跃,包括在董事会任职和主持在芝加哥举行的 PyCon 2008 和 2009 会议。我仍然是一名 PEP (Python 增强建议)编辑,我甚至曾经负责 Python 源代码树的提交,尽管我已经让它失效了。

作为一名自豪的加拿大人,我在蒙特利尔地区长大。我毕业于蒙特利尔的麦吉尔大学,获得了计算机科学学士学位。毕业后,我去了日本,在日本交流教学项目中教英语。我这样做了 2 年,在此期间,我遇到了我的妻子,然后和她结婚,我在日本找到了我的领域的工作。我在东京的加拿大大使馆做了两年的系统管理员(本地雇员,不是外交人员或外交官!),然后在一家小公司做了 2 年文档处理。回到加拿大,我们住在安大略省的基奇纳和蒙特利尔的一个郊区。我们已经在美国明尼苏达州(双城北部的一环郊区)生活了将近 3 年,我是一名系统工程师。我们有两个孩子(一个 19 岁的儿子和一个 17 岁的女儿)和一只收养的边境牧羊犬。

爱好:我喜欢骑自行车。今年夏天,我骑着我的 Vision 卧式自行车在明尼苏达州进行了为期一周的 500 英里自行车旅行,从密西西比河源头到爱荷华州边境,沿着密西西比河小径,。我作为明尼阿波利斯回合赛(在那里我被称为“加拿大戴夫”)的一部分,在家里娱乐性地玩扑克,大约每周一次。我甚至每个月都会举办一场现金游戏。我最喜欢的棋盘游戏是围棋(这也是我第一次对日本语言和文化感兴趣的原因),尽管我最近玩得不多。我喜欢在闲暇时阅读和看电影。

你为什么开始使用 Python?

我在东京的一家小公司工作,开发东亚语言(日语、汉语、韩语)的翻译系统,并帮助翻译。我们用的是 XML 的前身 SGML。在那份工作中,我一直在深入研究 Scheme 和 Perl 语言。我最大的成就是一个将 2d ASCII 艺术语法图解析成树形结构的系统,以便以后使用 TeX 进行翻译和渲染。那个项目的顶点是超过 10,000 行的 Perl(在 Perl 有任何面向对象的特性之前;我不得不使用调度表),虽然我是用最好的结构化编程原则编写的,但我们在这里谈论的是 Perl,这是一个非常糟糕的东西。那个项目和那份工作几乎让我永远放弃了编程。

我在东京合作的一个开发人员发现了 Python,它看起来很有趣,所以我记下了以后要跟进的事情。当我带着妻子和刚出生的儿子搬回加拿大时,我感到筋疲力尽,我休了一个假期,从 O'Reilly 那里买了马克·卢茨的第一版《Python 编程》并自学了这门语言。这就像一股新鲜空气。如果没有 Python,我可能最终会进入一个不同的领域。我喜欢 Python 的简单性、表达性和可维护性。在了解 Python 的 docstrings 之后,我搜索了自动文档系统,并最终创建了 reStructuredText 和 Docutils。从字面上看,剩下的就是历史了。Docutils 是一个组合了 10 万行代码的&测试&文档(不全是我写的!),如果不是因为 Python 的品质,我永远也不可能完成这样一个雄心勃勃的项目。

你还知道哪些编程语言,你最喜欢哪一种?

在某种程度上,我知道或了解 Basic、各种汇编语言、Fortran、Pascal、C、Lisp(通用 T2 Emacs)、Scheme、Perl、AppleScript、JavaScript、各种 shell 语言等等。我仍然可以破解其中的几个,但是 Python 是我的选择,并且绝对是我的最爱。没有什么能与之相比。

随着时间的推移,我不断向越来越高级的语言迈进,Python 就是一个缩影。当我发现 Python 的时候,我爱上了它,因为它减轻了我们程序员的负担。它是我所知道的最不用记账和做家务的编程语言,结合了风格和美感。对我来说,Python 是从原始想法到工作、调试和可维护代码的最短路径。Python 真的很适合我的大脑。

你现在在做什么项目?

我仍然关注着 Docutils 项目,但是我现在已经不怎么做了。我认为我的角色更多的是看门人:我可以说“不”。我一直打算回去修复一些旧的错误,并添加一些渴望已久的功能,但生活总是碍手碍脚。我在处理几个问题上迟到是不可原谅的。总有一天有人会发动一场政变

我的业余项目是 Polyform Puzzler ,这是一个像五联骨牌一样的解谜游戏,在休闲数学世界很流行。从事那个项目就像涂鸦或艺术工艺品:对灵魂有益。但是我已经提高了对几个谜题类型的知识水平,三角形网格六边形网格多棒,虽然在我之前肯定已经发明了它们,但是还没有被探索太多。我给它们起的名字(“polytrigs”和“polytwigs”)可能会一直沿用下去。

哪些 Python 库是你最喜欢的(核心或第三方)?

我经常使用标准库。那里有这么多宝石!我发现 collections、itertools 和 datetime 库特别有用。

有很多优秀的第三方库可以让处理复杂的问题变得简单。例如, Requests 库使用起来很有趣。再比如: SQLalchemy 。一个快速的网络搜索几乎总能找到一个至少有所帮助的图书馆。

作为一门编程语言,你认为 Python 将何去何从?

我最近没有关注 Python-Dev,但是我相信社区(和 Guido 仁慈的指导之手)会以有用的方式开发这种语言。在我看来,他们还没有误导我们。我甚至习惯了“@”修饰语法和生成器的“yield”。

你对当前的 Python 程序员市场有什么看法?

似乎 Python 程序员很吃香(我一直收到很多招聘邮件!),而且我看不到这种变化。

我怀疑,鉴于 Python 的特质,作为一个 Python 主义者可能比使用其他语言的程序员更容易感到快乐。我知道对我来说,其他语言只会给我压力和挫败感。所以也许一旦我们找到一个好的工作情况,皮托尼斯塔倾向于留在原地,不那么频繁地换工作?

你还有什么想说的吗?

继续努力吧!您的 wxPython 文章(以及新书!)和 PyDev of the Week 的文章读起来很有趣,也是很好的资源。

感谢您接受采访!

本周 PyDev:大卫·科佩克

原文:https://www.blog.pythonlibrary.org/2019/07/08/pydev-of-the-week-david-kopec/

本周我们欢迎大卫·科佩克(@大卫·科佩克)成为我们本周的 PyDev!大卫是曼宁的《Python 中的经典计算机科学问题以及其他几本书的作者。他甚至接受了 Talk Python 关于他的书的采访!如果你想知道他在做什么开源项目,那么你应该去 Github 看看。现在,让我们花些时间来了解大卫!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)?

在开始之前,我想感谢 Mike 将我纳入这个系列。这是我的荣幸。

我是美国佛蒙特州美丽的伯灵顿尚普兰学院计算机科学&创新项目的助理教授。在成为全职教授之前,我的职业是软件开发人员,并且我仍然愿意在咨询的基础上接受项目。我拥有达特茅斯学院的经济学学士学位(辅修英语),以及达特茅斯学院的计算机科学硕士学位。

我是三本编程书籍的作者: Dart for Absolute 初学者 (Apress,2014)Swift 中的经典计算机科学问题 (Manning,2018)Python 中的经典计算机科学问题 (Manning,2019)。但是,我不再推荐 Dart book,因为它已经非常过时了。我也是开源的积极贡献者。

当我不工作的时候,我喜欢学习美国历史、企业家精神,并关注计算机世界(尽管这也是我的工作)。我也有几乎所有人都有的爱好——烹饪、旅游、电影、阅读(经典、传记、历史、商业剧)、电视(弗雷泽&橡树岛的诅咒!)、音乐、视频游戏(塞尔达& AOE2!)、播客、股票交易等。

你为什么开始使用 Python?

大约十年前,当我开始在达特茅斯大学读研究生时,我意识到我的许多课程都是 Python 语言,所以我想:我最好擅长这门语言!“我从一开始就非常喜欢这种语言,因为它简洁而丰富的标准库。我很欣赏 Python 经常与你在教科书中找到的或你写在黑板上的伪代码非常相似,但它不是伪代码,而是真代码。

我断断续续地在 web 开发项目中使用 Python,我们在尚普兰用 Python 教授了几门计算机科学课程。

你还知道哪些编程语言,你最喜欢哪一种?

这是一个很长的列表,因为我从八岁开始编程,基本上从未停止过。以下是我实际在重要项目中使用过的语言,大致按照我学习它们的时间顺序排列:BASIC、Visual Basic、Java、C、Objective-C、PHP、JavaScript、Python、Ruby、Dart 和 Swift。我也在学校学过,或者为了教他们而学:Scheme、Haskell、Assembly 和 Go。我还涉猎了 Perl、C++和 Clojure。

这是一个相当长的列表,我知道。我想我是一个语言乐观主义者,因为我最喜欢的语言往往是我在项目中非常喜欢使用的语言。嗯,如果你在五年前问我最喜欢的,我可能会说 Objective-C。然而,今天我真的没有最喜欢的。我现在的首选语言是 Swift,用于构建 Mac 和 iOS 应用程序 Python,用于 web 或脚本工作;C,用于我的一些爱好项目。

不过,我知道我不喜欢什么。这就是 C++。上周我不情愿地开始学习 C++ 11、14 和 17 的一些最新变化。虽然它们通常使语言变得更好,但它们也使我最不喜欢 C++的地方变得更糟——它的大小。它是一门如此庞大的语言,拥有如此多的功能,以至于当你不是每天都使用它时,你很难理解它。我听说即使是专业编写 C++的人通常也只使用该语言的一个子集。我希望永远不要有专业编写 C++的不幸,所以希望我永远不必去发现。尽管是开玩笑,但这不是我最喜欢的语言。但是根据我以前的经历,如果我写得更多,也许我会开始更喜欢它!

我最近的一个担心是,也许我过多地切换了语言的上下文。在我的工作中,我经常在白天用 Go、Swift 和 Python 回答学生的问题,然后回家用 c 做一些自己的项目。令人担忧的是,我不再花足够的时间在一门语言上,以充分实现精通的好处。相反,我试图记住如何用不同的语言做不同的事情。

你现在在做什么项目?

在我的专业工作中,整个夏天我至少有两个项目。一个是将我过去三年教的 Android 开发课程从 Java 翻译成 Kotlin。另一个是修改我所教的一门名为《移动和网络开发入门》的课程,以便在许多作业中加入单元测试。所以,我将学习另一种语言——科特林语。

在我的开源工作中,我和我的合作者 Ferran 最近将我们的图形数据结构库 SwiftGraph 更新到版本 3.0,增加了新功能和对 Swift 5 的支持。

在我的写作中。我花了一些时间来宣传 Python 中的经典计算机科学问题,这是几个月前才发布的。我也在考虑是否/何时开始写经典计算机科学问题系列的下一本书。我们正在考虑 Java 或 Go 作为系列中的下一种语言。我开始写科幻小说,但我只写了 15 页。

在我的爱好开发工作中,我真的应该更新我的 Mac 应用程序,用 Logo/BASIC like 语言教授年轻人编程, SeaTurtle ,增加一些教程和错误修复。我也想发行一款游戏。我有时会做一些原型,但是我还没有一个强烈的想法(并且我有能力自己做到底)让我去追求它。

哪些 Python 库是你最喜欢的(核心或第三方)?

正如我之前提到的,我喜欢很多标准库。functools、collections 和 json 是我经常使用的。但是,我也喜欢有这么多第一方杂项有用的东西。从命令行解析(argparse),到数据库管理(sqlite3),到电子邮件处理(email),甚至压缩(zlib)都在这里。我发现这非常方便。至于第三方软件包,我是 Requests、Beautiful Soup 和 scikit-learn 的粉丝。

你是如何成为一名作家的?

我的三本书都是因为我写了提案并把它们推销给出版商而诞生的。第一个,Dart for Absolute 初学者,是因为我在 2012 年对 Dart 语言感到兴奋,当时它仍处于测试阶段,我想“哎呀,也许我的定位可以是在它起飞时用这种语言编写第一本初学者书籍。”不幸的是,这种语言从未真正流行起来。或许它现在正因为 Flutter 而“起飞”,但现在这本书已经过时了。我真的很喜欢这门语言,我认为《Dart for Absolute 初学者》是一本很棒的书。然而,虽然它受到了读者和评论家的好评,但由于 Dart 市场的整体规模很小,它的销量一直不高。

它确实为我建立了信誉,并将我带入了计算机科学教育领域。它帮助我找到了工作(包括我现在的工作),也让我有了为我的下一本书《Swift 中的经典计算机科学问题》获得出书的记录。这本书,再一次,定位于一个利基市场。2016/2017 年我写的时候有很多 Swift 的书,但是都是关于 iOS 开发的。我的书将会赶上这种新兴语言的潮流,但会填补这种语言中计算机科学教育的空白。我认为它做得很好。

但是,坦率地说,我从 Python 中经典计算机科学问题的早期成功中学到的是(至少对于销售成功来说)最好用流行的语言写一本好的利基书,那里可能有竞争对手,而不是用相当利基的语言写一本好的利基书。你不想成为利基中的利基。这就是为什么选择该系列下一本书的语言如此困难。我们对读者进行了一项调查,看看他们下一步会喜欢哪种语言。围棋和 Java 几乎打成平手。Java 是 Jupiter 大小的语言社区,在许多方面与 Python 一样有意义,但它似乎已经过了全盛时期。围棋仍在快速发展。但是如果 Go 仍然不像 Swift 那样受欢迎(从许多指标来看,它似乎并不流行),那么 Java 现在可能仍然更有意义。最初我想做 Go,发行商想做 Java。但是现在,我也倾向于 Java。Java 世界中有新的东西——Java 9、10、11 和 12 有一些有趣的新特性。

写这本书最困难的事情是什么?

作为一名作家或教授,最难处理的事情之一是,你不是名人,但你仍然是一个公众人物,因为人们会公开评论你的作品。不管是课程评论还是书评。这些评论中有许多是准确的,也有一些是不准确的。通常是那些最讨厌或最喜欢你作品的人会花时间写评论。一件奇怪的事情是,Python 中的经典计算机科学问题在 Twitter、Manning.com上有很多好的评论,但迄今为止没有亚马逊的评论(在我写这篇文章的时候),尽管它是我的三本书中最畅销的。那可能是因为它两个月前才出版。我不想得到虚假的评论。所以许多小众技术书籍都有正面的假评论,通常是出版商放在那里的。因此,这是对阅读这篇博客的人们的一个行动呼吁。如果你从头到尾阅读了 CCSPiP(或者差不多如此),那么请在亚马逊上留下评论。尤其是如果你喜欢的话🙂

对于其他想写编程的人,你有什么建议吗?

人们不会为了钱而写技术书籍。即使是一本好的技术书籍通常也不会超过几千册。写一本技术书籍是因为:你认为你是一个优秀的作家,你认为你可以很好地交流这个主题,和/或你希望成为一名出版作家带来的职业发展。职业发展和荣誉通常是主要的奖励。另一条建议:保持简洁。太多的技术(和非技术)书籍是不必要的冗长。出版商迫使你写尽可能多的页面,因为他们认为这意味着他们可以收取更多的费用。往后推。简短而甜蜜胜过冗长而乏味。

大卫,谢谢你接受采访!

本周 PyDev:大卫·利特瓦克

原文:https://www.blog.pythonlibrary.org/2018/02/26/pydev-of-the-week-david-litvak/

本周我们欢迎大卫·利特瓦克( @dlitvakb )成为我们本周的 PyDev!他已经在阿根廷皮肯和加勒比皮肯上展示了。随时查看他的网站Github 看看他都在忙些什么。现在,让我们花些时间来更多地了解大卫!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我叫 David Litvak Bruno,是一名来自阿根廷布宜诺斯艾利斯的软件开发人员和系统分析师,现居德国柏林。我目前在德国柏林的 Contentful 工作,是一名生态系统开发人员,也是 Python 和 Ruby 软件的传播者。

我从 2007 年开始从事软件工程师的工作,就在我开始在 UTN(国立科技大学)学习系统工程之前,在经历了几年的全职工作和对大学缺乏热情之后,我最终离开了。虽然在那些年里,我开始了我的高级编程技术和团队领导方法的教学生涯,我仍然继续远程贡献。

我最终在 2017 年 2 月完成了我在 UP(巴勒莫大学)的系统分析师学位。

我的爱好非常广泛,从听音乐和偶尔和一些爵士乐队一起表演,到像 MMA 和 HEMA 这样的搏击运动。我也喜欢教学和玩桌面角色扮演游戏。

十月,我从布宜诺斯艾利斯搬到了柏林,我非常喜欢这里。

就在几周前,我成为了一名父亲,朱利安现在是我全部注意力的接收者。

你为什么开始使用 Python?

Python 是通过我的朋友 Juan Manuel GarcÃ找到我的,他是一个热情的开发人员,也是一个非常热心的企业家。我们在大学一起上了几堂课,每天他都会用这种我以前几乎没听说过的语言告诉我他发现的这个新功能。在接下来的许多年里,这是我激情的入门药物。

此后不久,Python Argentina 社区 PyAr 组织了一轮免费聚会(如 beers 和 freedom ),每周探索 Python 在软件开发中的不同方面,从基础到性能优化,到用 pygame 创建游戏,再到用 Django 创建第一个网站。对我来说,这是一个很好的开端,让我开始更深入地钻研 web 技术和架构。此外,在这次活动中,我会见了 PyAr 总统 Facundo Batista,我与他有着长期的友谊,以及许多其他人,他们是我至今的朋友。

几个月后,2008 年 10 月,我在一家名为 Deviget 的美国咨询公司找到了我的第一份 Python 工作。

你还知道哪些编程语言,你最喜欢哪一种?

这些年来,我接触过很多语言,主要是 C、C#、VB.Net、Java、Javascript、PHP 和 Ruby。

我也尝试过其他语言,比如 Coffescript、Perl、Vimscript、Clojure、Moonscript、Haskell 和 C++,并做了一些工作。

我最喜欢的语言是 Python 和 Ruby,因为它们的表现力和通用性。它们都有非常强大和有趣的社区,那里的人很棒。

你现在在做什么项目?

目前,我正在开发 Python 和 Ruby 内容丰富的 SDK、集成和示例应用,你可以在https://github.com/contentful看看它们,它们都是开源的,由于我们 API 的复杂性,它们提出了非常有趣的挑战。

哪些 Python 库是你最喜欢的(核心或第三方)?

我最喜欢的 Python 库应该是 Kenneth Reitz 的 Requests。它几乎是我开始的每个项目中的主要内容,也是我需要对自己的库做出设计决策时的参考库。

你还有什么想说的吗?

Python 有一个最好的社区,通过 IRC、电子邮件或亲自接触他们,你肯定能学到很多东西,同时还能交到一些最好的朋友。这是一个充满激情、魅力和爱心的社区!

感谢您接受采访!

本周 PyDev:大卫·默茨

原文:https://www.blog.pythonlibrary.org/2016/11/21/pydev-of-the-week-david-mertz/

本周我们欢迎大卫·默茨(@默茨 _ 大卫)成为我们本周的 PyDev!David 是《Python 中的文本处理以及 IBM developerWorks 上许多关于 Python 的有趣文章的作者。我很确定我在第一次学习 Python 的时候读过其中的一些文章。你可以在这里查看一份非常详细的清单。他曾担任 Python 软件基金会董事会成员长达 6 年。让我们花一些时间来更好地了解他!

dqm-maybe-belarus

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我走了一条奇怪的路去写 Python 代码,以及关于 Python 代码的写作。我的博士学位是后结构主义马克思主义政治哲学。我在那个领域做了一些出色的工作,喜欢为学术期刊写作,并在这类会议上发表论文。但我也有点反应迟钝,所以我花了十年时间才明白,没有人会真的付钱给我去了解那些东西;可悲的是,真正的终身职位体系,尤其是在人文学科,大多已经死亡,而兼职工作的报酬大多在最低工资左右(或更低)。

你为什么开始使用 Python?

几年后,我以用其他语言写代码为生(大多数是 xBase 方言,比如 Clipper 实际上,我真的很喜欢这些语言),我继续努力跟上其他技术的发展。我第一次使用 Python 是在 1998 年,但是非常顺便。

此后不久,在 1999 年或 2000 年,我有机会开始为一些广泛阅读的出版物撰写关于计算机编程和计算机科学的文章。其中最稳定的是 IBM developerWorks,我在那里有专栏迷人的 Python 。在 2000-2008 年期间,我还为他们(比如另一个名为 XML Matters 的专栏,以及各种其他文章)和其他出版商写过其他文章,包括为 Addison Wesley 写的一本书。

这样做的好处是,我可以沉浸在“应用计算机科学”的主题中,就像在这个领域获得另一个研究生学位一样。我在那里的目标总是追求一些有趣的概念——一个库、一种编程技术、一种有用的工具等等——然后写一篇我希望在我开始学习它之前就已经存在的文章。幸运的是,与大多数受过纯技术教育的人相比,我过去和现在都能够以更独特的风格和更清晰的思路写作。

在整个过程中,我越来越喜欢 Python,尽管我学习了它并将其与许多其他编程语言进行了比较。

你还知道哪些编程语言,你最喜欢哪一种?

我涉猎了几十种,也许几百种语言。但是在过去的 15 年里,我写的大部分代码都是用 Python 写的。

然而,我对那些有很多好的设计思想的 xBase 语言有着美好的回忆。我仍然喜欢每天在类 Unix 系统上使用 shell 工具(bash、grep、sed、cut、tr 等)。;每一个都有他们自己的迷你语言——有些甚至是图灵完全性的)。

我写过 C,C++,Java,PHP,Pascal,Fortran,以及其他用于实际生产的东西。但实际上我并不爱这些。实际上,尽管许多用户抱怨它的缺点,r 还是有一定的优雅之处。Javascript 自身的方式也是如此。REXX 在某些方面也很简洁。当然,我钦佩 Haskell 的数学纯粹性——它让我想起了我喜欢研究的模型理论、高级逻辑和超限集合论。

你现在在做什么项目?

主要是开发连续体分析的培训材料,并为他们进行实际教学。

我还监督了一个专有产品 IOPro 在自由软件世界的发布,名字是 TextAdapter。这是我在 PyData SF 上谈到的一个很酷的产品/项目,它是由 Cython 和 Python 混合编写的(带有一点普通的 C 语言)。

哪些 Python 库是你最喜欢的(核心或第三方)?

我非常喜欢这个。之后,可能 itertools 是我的最爱之一。我的同事 Matt Rocklin 的 toolz 拥有简洁的功能。实际上,与此相关的是,我真的很喜欢 Dask,它可能既是一个工具,也是一个库。

作为一门编程语言,你认为 Python 将何去何从?

我认为它正在接管科学计算,这令我非常兴奋。就核心语言而言,我开始担心它在过去几年里变得太差了。一些新的小功能的吸引力正在以一种我不完全喜欢的方式对抗结构中的极简主义。但是它仍然是——并且我相信它将仍然是——最易读的编程语言选择。

感谢您接受采访!

本周 PyDev:David WOL ever

原文:https://www.blog.pythonlibrary.org/2017/06/26/pydev-of-the-week-david-wolever/

本周,我们欢迎大卫·沃勒弗(@沃勒弗)成为我们本周的 PyDev。大卫是加拿大和 Akindi.com PyCon 公司的联合创始人,这是一家让多项选择泡泡表测试不那么可怕的小公司。他也是鼻子参数化项目和 pprint++ 项目的作者。你也可以在 Github 上查看他还参与了哪些项目。让我们花点时间来了解一下大卫!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是 Python 的长期粉丝,也是来自加拿大多伦多的初创公司创始人。当我意识到我对构建软件感兴趣,而不是证明图形搜索算法的运行时界限时,我从多伦多大学的软件工程专业退学了(尽管我非常感谢那些喜欢这样做的人),从那以后,我一直与小型创业公司合作。

我是我公司的首席技术官, Akindi ,让 Scantron 风格的多项选择泡泡表变得不那么可怕。

2012 年,我和几个朋友创办了加拿大 PyCon,我对今年将在蒙特利尔举办感到非常兴奋(现在就去买票,因为票会卖光的:https://pycon.ca)

除了电脑,我真的很喜欢绳结(前三名:阿尔卑斯蝴蝶,水壶吊索挂钩,链 sinnet)和摩托车。

我在 https://twitter.com/wolever 发推文

你为什么开始使用 Python?

我在 2003 年左右开始使用 Python 来破解一个开源的基于 curses 的 MSN Messenger 客户端,名为Pebrot

你还知道哪些编程语言,你最喜欢哪一种?

我在日常工作中写了很多 JavaScript,而且我对 Bash 非常精通。我还用 C、C++、PHP 和 Go 编写了大量代码。

不过,我最喜欢的语言是 SQL。我从使用 SQL(尤其是 Postgres)中获得了不健康的快乐。

我投资的下一门语言将是一个强大的、静态的类型系统。也许流动?打字稿?我还不确定。但是我厌倦了把所有的时间浪费在计算机本应该为我检测到的问题上。

你现在在做什么项目?

我的主要项目是我的公司,阿金迪。我们的产品是 Scantron 风格的多项选择气泡表评分系统,比市场上的任何其他产品都要简单。(不)幸运的是,我们已经发展得足够大了,我不用每天都做很多编码工作。

就开源项目而言,我有几个引以为豪的小项目:

  • git-blast ,显示按最后提交日期排序的 git 提交
  • 参数化,这是一个参数化的测试库,适用于所有的测试框架
  • pprintpp ,pprintpp 模块的替代产品,但它实际上很漂亮

哪些 Python 库是你最喜欢的(核心或第三方)?

哦,这是个棘手的问题。不过,我想到了一些:

  • gevent:我喜欢 gevent 的实现,它公开的 API 无疑是 Python 中最好的并发 API。如果有类似的线程和多处理 API,那就太棒了。
  • pathlib:非常漂亮,我还没有后悔使用它。
  • 熊猫:哦,天哪,熊猫真伟大。我每次用它的时候都会微笑。
  • pdb++:我喜欢用 pdb 调试,pdb++使它变得更好

作为一门编程语言,你认为 Python 将何去何从?

这是一个很棒的问题,我诚实的回答是我不知道。

不过,我希望构建干净、可用的 API 的努力会继续下去。Python 的 API 正在稳步改善,但是每次我需要将日期时间转换成时间戳或者将时间戳转换成日期时间时,我仍然需要检查 StackOverflow。

你对当前的 Python 程序员市场有什么看法?

真烦人!因为每个人都想雇佣他们,这让我很难雇佣他们ðÿ˜œ

你还有什么想说的吗?

str.partition 非常有用,几乎闻所未闻。大家都要用 str.partition!

感谢您接受采访!

PyDev of the Week: Dawn Wages

原文:https://www.blog.pythonlibrary.org/2021/11/15/pydev-of-the-week-dawn-wages/

This week we welcome Dawn Wages (@DawnWagesSays) as our PyDev of the Week! Dawn is a core developer for Wagtail CMS, which is based on Django. Dawn is also a speaker. You can get more details of what Dawn is up to from her website or by checking her GitHub profile.

Dawn Wages

Let's spend some time getting to know Dawn better!

Can you tell us a little about yourself (hobbies, education, etc):

I'm from North Carolina, living in Philadelphia. I'm terrible at all my hobbies! I like to roller skate with my friends in South Philly, make art (mostly watercolor or oil pastels), and hang out with my partner (skateboarder and UX Designer extraordinaire) and our two dogs -- Rocky, the Rottweiler and Theo, the Beagle, watching anime and taking long walks around the city.

Why did you start using Python?

Out of the ashes of a career in finance, I wanted to find a career using skills that I've already used in my undergraduate Business Degree. I was pivoting to being a Business Analyst and while attempting to dip my toe into Data Science, I found PhillyPUG (Philadelphia Python Users Group). DjangoCon US 2016 was held in Philadelphia and I found a network of people who pushed my Python use forward and offered FREE resources. That six-month period was my real "start" in Python.

What other programming languages do you know and which is your favorite?

I use JavaScript daily. No language shaming here, but Python will always be that girl in my book.

What projects are you working on now?

Outside of my 9-5, I'm the founder of At The Root (https://AtTheRoot.dev) which is home to the first and only AntiRacist Ethical Source License. We're working in partnership with the Organization for Ethical Source (https://EthicalSource.dev) to propel the first draft of our License forward. Code-wise, we’re currently developing the At The Root Forum and Checklist, a place where subject matter experts can give actionable suggestions on how to help your project be actively anti racist -- things like requiring a block button on social platforms, or conclusions drawn from collecting gender, or access and consent when collecting biometric data. The forum is built in Gatsby/React and Wagtail/Django/Python and we're looking for both code and content contributors. If someone is interested in either, please email contact@AtTheRoot.dev.

I just joined the Research Programming team at The Wharton School at The University of Pennsylvania. With them, I'm helping execute the research visions of Professors and PhD students, where software can be an aide. Some of these projects are open, and I hope to blog about what I can soon. It’s unfortunate that I didn’t get to many of my blog post ideas while I was consulting, but I’m excited for the opportunity to write about topics I’ve been ruminating over for a long time. My content will be at Glitter Tech although there's not much there yet.

Which Python libraries are your favorite (core or 3rd party)?

Most of my top picks are going to be libraries supporting Wagtail and Django! It will be hard to pick, but Django Rest Framework must be one of my top. Factory Boy, CookieCutter, and Black Python formatter are big ones I've been using a lot lately. I'm very excited to cut my teeth on Rich and htmx. I've heard great things.

How did you become a core developer of WagtailCMS?

I got to know the Django community through the conference scene. Wagtail, among the very active group in the Django Conference circle, were always kind and held several workshops over my first few years attending. My first time speaking at a conference was at Wagtail Space 2018. I remained interested and active in events as I started building personal projects in Wagtail. I spent a short time in Europe (Amsterdam and London) in 2019, and met more Wagtail friends. Coming up on two years ago, I was offered a role on the Wagtail Core Team and was ecstatic to be able to provide value to a framework that has given me so much, and to work with brilliant people to boot. Most of my contribution comes from organizing and Wagtail advocacy right now.

Is there anything else you’d like to say?

These years have taken a lot out of all of us. Take care of yourself and tend to your community. Django Girls and PhillyPUG were integral in my career growth. There are tens of thousands of people whose livelihood has been put in jeopardy because of the global pandemic and its cascade of unfortunate ramifications. If you can aid in an underestimated (and underrepresented) person's career trajectory -- DO IT! The code review, the conversation, the mock interview, the random question answered could be invaluable to someone in desperate need of a career change. I don't take the kindness the community has given me for granted. Put yourself in spaces where you're able to see those who may be new to the community so when you do have the bandwidth to help, you can.

Depending on when this is released, we may need mentors for Django Girls at DjangoCon 2021! If you're interested before October 10th 2021, please email philadelphia@djangogirls.org. If you're coming to this after the deadline or don't have the bandwidth to volunteer your expertise currently, I totally understand and I'm sending you all warmth and peace. It's hard out here.

Also, don’t forget the power of mutual aid. There is no more impactful way to improve someone’s life than direct action.

Thanks for doing the interview, Dawn!

本周 PyDev:déBora aze vedo

原文:https://www.blog.pythonlibrary.org/2020/09/14/pydev-of-the-week-debora-azevedo/

本周我们欢迎 déBora aze vedo(@ pydeb)成为我们的本周 PyDev!Débora 活跃于 PyLadies 和 DjangoGirls 团体,并在 PyLadies 工作室教授 Python。让我们花些时间去更好地了解她吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名教育工作者。我热爱教学,我现在是我所在州公共网络的一名英语教师。但是我也在一些皮拉迪斯工作室教过 Python。我正在攻读教育技术创新的硕士学位。在过去的几个月里,我一直致力于开发教育软件,从双语的角度帮助失聪儿童的识字过程,因为在巴西,他们学习巴西手语,也学习葡萄牙语。在我的空闲时间,我喜欢投资社区(它在我身上投资了很多)。从在线会议到翻译博客文章和管理社交媒体档案,有一件事值得一提,那就是我参与了巴西的 Python 社区,尤其是 PyLadies Brazil,我对该社区的贡献最大。我最喜欢的爱好是阅读(阿加莎·克里斯蒂和阿瑟·柯南·道尔爵士都喜欢)、弹吉他和唱歌。我也偶尔在我的博客上写点东西(葡萄牙语)。

你为什么开始使用 Python?

嗯,这是个有趣的故事。我开始使用 Python 是在我上计算机网络技术课程的时候。我记得,当时,我选择了这门特定的课程,因为我认为不会涉及编程。在这个课程中,我们上了 3 节编程课,而且都是用 Python 教的!我们和 Django 一起学习了结构化编程、面向对象编程和 web 开发。这对我来说是一个里程碑,尤其是在我有着编程的艰难背景的情况下。高中期间,我经历了一段没有电脑,在笔记本上写 Java 代码,每当我看到有东西没有编译时就想把学校的电脑弄坏的混合时期。使用 Python,没有创伤,没有痛苦的感觉。Python 向我展示了我实际上可以建造东西,我有能力。这非常有力量。

你还知道哪些编程语言,你最喜欢哪一种?

我高中刚开始学编码的时候,我们用的是一种叫 Portugol 的语言,里面有他们的命令和葡萄牙语的保留关键字,然后是一些 Java。在大学里,我学习了一些 C 和 C++。当然,我不是这些语言的大师,但我最喜欢的肯定是 Python。

哪些 Python 库是你最喜欢的(核心或第三方)?

我喜欢乌龟图形!当我第一次上 Python 课的时候,我的老师曾经教我们如何用海龟库制作几何图形,这非常有趣。Turtle 是最初 Logo 编程语言的一部分,在其最新版本中也是用 Python 实现的。这是一种非常受欢迎的向孩子们介绍编程的方式。

你现在在做什么项目?

我现在的主要项目是开发我的硕士教育软件。我已经从概念、教学方法、设计屏幕、交互和(还没有开始这部分)编写代码开始工作。除此之外,我还做了很多开源项目,尤其是在 PyLadies 社区。最近,我一直是皮拉迪斯全球临时小组的一员,试图为第一届皮拉迪斯全球理事会选举解决问题,做网站本地化的外联工作,并参与一些生活。关于巴西的 PyLadies,我目前正在帮助通信团队,以及我们正在尝试启动的 Python 研究小组(由于疫情,在国家一级)

你最喜欢皮拉迪斯和姜戈女团的什么?

我可以花几个小时谈论成为像皮拉迪斯和姜戈女孩这样的社区的一部分的重要性。但我最喜欢的是作为这些社区成员的归属感。你的背景,你的经历,你的研究领域,都丰富了我们社区的建设。拥有各种各样的人,是成为一个社区的一部分如此令人满足的原因。这是一个知道我们有发言权和安全空间的问题。我说作为一个不以软件开发为生的人。很长一段时间,我自己都觉得我所占据的空间不适合我。但与此同时,我也参与活动,组织聚会,发表关于社区的演讲。少了什么?我意识到我的背景只是我是谁的一部分,并分享许多其他女性对皮拉迪斯的相同看法,这就足够了。

你是如何开始为 PSF 做翻译的?

我做一些自由职业的翻译工作,翻译科技文章,也做同声翻译。因此,如果我为了生活而这样做,那也是为了对社区做出贡献,我觉得这样做很舒服。生活在巴西,我可以看到很大一部分人不懂英语。因此,这项工作对于帮助人们获得关于 PSF 和 Python 本身的信息是极其重要的。我已经将 PyLadies 选举网站 PSF 的 Python 调查翻译成了葡萄牙语( link ),并且我还是 Python 官方文档国际化团队的一员。对于最后一部分,我们有一个强大的翻译团队来完成这项工作。如果你懂葡萄牙语的话(这个)是我们用来相互交流的电报上与我们小组的链接。

你还有什么想说的吗?

我可以说,成为 Python 社区的一员确实改变了我的生活。我带我去了我从未想过会去的地方,去传播皮拉第斯的消息。我喜欢 Bret Cannon 的名言:“为语言而来,为社区而留”。我开始了解这门语言,并把它用于学校项目。现在,我正在国家和全球层面上努力,以便让其他人拥有和我一样温暖人心的归属感。所以,如果你有机会做点什么,一定要在社区投入一点时间。你不知道它会对一个人的生活产生什么影响。

谢谢你接受采访,Débora!

本周 PyDev:德博拉·梅斯基塔

原文:https://www.blog.pythonlibrary.org/2021/09/06/pydev-of-the-week-deborah-mesquita/

本周,我们欢迎 Déborah Mesquita 成为我们的本周 PyDev!Déborah 是 Real Python 的内容作者。你可以在她的网站或者查看她的 GitHub 简介上看到她在忙什么。

Déborah Mesquita

让我们花些时间更好地了解代博拉吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

当然可以!我拥有计算机科学学士学位,是一名数据科学家。我最大的爱好是阅读,我非常喜欢阅读关于商业和心理学的书籍。我也很活跃,我从来没有错过普拉提课,我还开始滑旱冰。哦,我最近买了一把贝斯,我正在学怎么弹,真的很酷。我年轻时经常弹吉他。

你为什么开始使用 Python?

因为我想成为一名真正的 Python 作者!哈哈哈开玩笑,我认为选择它作为我的第一语言的主要原因是所有主要的数据科学库都是用 Python 编写的。

你还知道哪些编程语言,你最喜欢哪一种?

我曾经用 Bash、PHP、Objective-C、COBOL(是的)、Haskell、Javascript 等等编程。不知道哪个是我最喜欢的,但是我觉得 Javascript 是我最不喜欢的哈哈。可能是因为我还是没有机会好好学吧。

你现在在做什么项目?

我正在进行一个深度学习项目,以识别货架上的产品。这很酷,因为我终于真正理解了卷积网络是如何工作的,从那以后我一直避免图像深度学习项目。

哪些 Python 库是你最喜欢的(核心或第三方)?

我想我最喜欢的是 Scikit-learn。我很喜欢这些文档有多好,以及 lib 如何让每个人都能使用机器学习。

我看到你目前专注于自然语言处理。你能解释一下那是什么以及为什么你选择关注它吗?

当然,简单地说,NLP 是一个我们使用文本作为主要数据源的领域。我喜欢写作和阅读,所以我认为这是我可以专攻的好东西。

你是怎么和真 Python 扯上关系的?

每次我在谷歌上搜索一个编程主题,我都希望得到一个真正的 Python 结果,因为这篇文章会很棒,我会真正了解我正在搜索的主题。今年我终于敢于申请加入辅导团队,我很高兴我做到了。每个人都很有天赋,能成为团队的一员是一种享受。

你还有什么想说的吗?

我来自巴西!😛

谢谢你接受采访,德博拉!

过去一周的 PyDevs

本周 PyDev:丹尼·佩雷斯

原文:https://www.blog.pythonlibrary.org/2022/06/06/pydev-of-the-week-denny-perez/

本周,我们欢迎丹尼·佩雷斯( @dennyperez18 )成为我们本周的 PyDev!Denny 在 nventive 工作,在 Python 社区非常活跃,包括帮助组织 PyCon 本身。你可以在丹尼的 GitHub 页面上看到丹尼在做什么。

让我们花些时间更好地了解丹尼!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名软件质量保证分析师,拥有会计学位,住在加拿大蒙特利尔。

我最近完成了一个数据科学训练营。

我目前在 Nventive 工作,也是 GitHub 的志愿者,在拉丁美洲担任 GitHub 相关活动的协调员。在西班牙语中。我大部分业余时间都在帮助组织会议、聚会、技术访谈等活动,并创建文档来简化 Python 的相关流程。我还是一个名为“Python en Españ ol”的项目的协调员,该项目旨在成为整个西班牙语 Python 社区的中心。

作为一个三个孩子的妈妈,我没有太多的时间用于兴趣爱好,但当我不在电脑前时,我正在享受一杯好咖啡,同时在任何流媒体平台上观看电视节目。

你为什么开始使用 Python?

Python 是帮助我在技术世界起步的语言。我开始学习 Python 是因为我发现它是一种简单易学的语言,而且它可以帮助我解决一些问题,比如自动化我作为软件质量分析师的日常任务。

你还知道哪些编程语言,你最喜欢哪一种?

在大学,我学了 Java 之类的其他语言,作为初学者,理解它的一些结构对我来说有点困难。我学习了一点用于 iOS 开发的 Swift,我相信这是一种美丽的语言,我不排除在未来使用它。

你现在在做什么项目?

我最近用 Python 完成了一个数据科学训练营。在这次训练营中,我有机会学习和使用不同的数据科学工具。对于我的最终项目,我使用 Pandas、Numpy 和 Matplotlib 开发了一个项目,为此我在 Streamlit 平台上创建了一个应用程序。

几周前,我们完成了 PyCon US Charlas,这是在 PyCon US 举行的西班牙赛道会谈,我是其组织者之一。就在本周,我们开始规划 2022 年 PyCon Latam 的在线版本。

哪些 Python 库是你最喜欢的(核心或第三方)?

我最喜欢的 Python 库是那些在我的数据科学学习过程中帮助我的库。这些是 Pytorch、Tensorflow、Matplotlib、Sciki-learn、Pandas 和 Numpy。

你是如何进入会议组织的?

大学毕业后,我开始对参加我所在城市的当地聚会和活动感兴趣。我的第一次科技大会是 2018 年在克利夫兰举行的 PyCon USA。在这次会议上,我遇到了许多致力于发展社区和帮助开源项目的人。

在 PyCon 2019 上,我接触了一个拉丁社区,该社区正在组织一个关于拉丁美洲 Python 的会议。我报名作为志愿者合作。

明年,2020 年,我谈到了我作为组织者的兴趣,那是我开始组织第一次会议的地方。然后,我开始组织 PyLadies(Python 中的女性)团体,并支持像聚会和虚拟会议这样的社区活动。

目前,除了作为 PyCon Latam 的共同组织者,我还是 Python 智利社区的共同组织者(2021 年,我在那里帮助举办了第一个 PyCon 智利分会),我还是智利第一个 PyLadies 分会 PyLadies Santiago 的共同组织者和共同创始人。

你对那些想组织会议或做志愿者的人有什么建议吗?

我的建议是加入一个你关心的社区,作为志愿者开始做一些小事。寻找你身边的活动,让组织者知道你有兴趣帮忙。社区和组织者总是在寻求额外的帮助。

至关重要的是,你要明确你能为社区提供的时间,因为社区将会依靠你。一旦你知道你能处理你的任务,慢慢开始并寻找更多的责任是很重要的。记住你在帮忙,我们希望你玩得开心。

你还有什么想说的吗?

我最近被选为 PSF 会员,我要感谢所有帮助我参与社区建设和开源合作的人。感谢您作为社区成员给予我的所有学习和支持,帮助我继续专业成长。

丹尼,谢谢你接受采访!

本周 PyDev:Dong-hee Na

原文:https://www.blog.pythonlibrary.org/2020/06/08/pydev-of-the-week-dong-hee-na/

本周,我们欢迎 Na Dong-hee(@ dongheena 92)成为我们本周的 PyDev!Dong-hee 是 Python 编程语言的核心开发人员。你可以在 Github 上看到一些他一直在做的事情。

让我们花些时间去更好地了解他!

Dong-hee Na

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

嗨,我叫 Dong-hee Na,我是 Kakao Corp .的软件工程师。我在忠南国立大学获得了计算机科学学士学位。我的爱好是看看开源编译器项目。正如你所知道的,这些天来,我把自己大部分的额外时间都用在了 CPython 项目上。

另一方面,我研究设计良好的项目或尝试实现一个简单的阶段实现,以了解我感兴趣的理论。最近,我在看一个 JIT 框架项目,它看起来对我来说是一个非常有趣的项目。

你为什么开始使用 Python?

第一次学 Python 是因为用 Python 上了本科的数据结构课。我的第一印象是这种语言如此简单,以至于编写伪代码非常容易。我更深入学习 Python 的时间是为 Dropbox 的 Pyston 项目做贡献。这个项目旨在实现基于 LLVM 的 Python JIT 编译器。这个项目让我更深入地研究 Python,因为我需要检查 Python 编译器是否正常工作。

你还知道哪些编程语言,你最喜欢哪一种?

除了 Python,我知道的语言还有 C/C++、Go、Java/Scala。

C/C++、Python 和 Go 是我在开源项目中经常使用的语言。

依我看,所有的语言都有它们自己的领域和位置,我试着在每种情况和资源下使用合适的语言。

我最喜欢的语言是 Python,所以我用 Python 来完成我的个人项目和解决算法问题。但是,为了发展我在系统编程领域的技能,我最近努力提高我的 C/C++能力。

你现在在做什么项目?

对于 OSS 项目,我花了大部分时间在 CPython 项目上,我对埃里克·斯诺启动的多核子解释器项目很感兴趣。AFAIK,为了支持这个项目,在 python 模块方面有很多事情需要解决。所以我最近在努力为这个领域做贡献。

哪些 Python 库是你最喜欢的(核心或第三方)?

aiohttp 和 python-fire。aiohttp 库是一个设计良好的库,具有非常可靠和强大的性能,因为深入参与 asyncio 项目的 Python 核心开发人员维护着这个项目。对于需要基于 asyncio 的 http 库的人,我想推荐 aiohttp。python-fire 是我个人经常使用的 CLIs 库。它非常容易使用。您可以用几行代码制作很酷的 CLI。

你是如何成为 Python 语言的核心开发人员的?

我第一次对 Python 相关的编译器项目感兴趣是在 2014 年。起初,我个人研究编译器,并想知道实际的理论是如何应用的。当时我找到了 Dropbox 的 Pyston 项目,开始为这个项目做贡献。我的贡献不是很大,但是通过这个项目我学到了很多关于 Python 的运行时的知识。并且从 2017 年开始,我开始为 CPython 项目做贡献。幸运的是,我遇到了我的导师 Victor Stinner,由于他的指导,我能够为 CPython 中的许多问题做出贡献。最后,我从 2019 年 9 月加入 CPython 开发团队担任 triage 成员,2020 年 4 月晋升为核心开发者。我想借此机会向他说声谢谢。

你还有什么想说的吗?

这种采访要求,我人生第一次。我认为这是一次非常特别的经历。通过这次采访,我希望很多人会对 CPython 项目以及其他可选的实现项目感兴趣。

谢谢你接受采访,东熙!

本周 PyDev:道格·法雷尔

原文:https://www.blog.pythonlibrary.org/2020/03/02/pydev-of-the-week-doug-farrell/

本周,我们欢迎道格·法瑞尔( @writeson )成为我们本周的 PyDev!道格正在为曼宁写一本名为《扎实的 Python 开发者》的 Python 书籍。他也是真实巨蟒的撰稿人。你可以在道格的网站上找到更多关于他的信息。现在让我们花一些时间来了解更多关于道格!

Doug Farrell

你能告诉我们一些关于你自己的事情吗(爱好、教育等)。):

我是一名开发人员,有很多其他的兴趣,有各种各样的背景。一对夫妇大学毕业后,我于 1980 年获得商业艺术学士学位,并于 1983 年获得物理学学士学位。两个明显相关的领域。我这么晚毕业的部分原因是我在一家青铜雕塑铸造厂工作了五年。尽管很有趣,但我花了一段时间才意识到在那里工作对身体的伤害是不可持续的,于是我回到了学校。我想我学得很慢。

在我上学的最后一年,买了一台 Tandy 彩色电脑,学了 basic 和一点 6809 汇编,编程的钩子就套在我身上了。我在相当多的行业做过软件开发人员;过程控制、嵌入式系统、零售光盘软件、互联网参考书目和生产系统的网络应用。在那段时间里,我也用几种语言工作过;Pascal、Fortran、C/C++、Visual Basic、PHP、Python 和 JavaScript。

我的妻子和我都是骑自行车的人,已经骑过几次有组织的世纪骑行。我们缩短了我们的距离,现在骑行更多是为了娱乐和健身,当然,也是为了相互竞争。我也重新开始了艺术追求,并开始画画。这对我来说是一个挑战,因为我从来没有做过任何创造性的绘画工作,或者以更大的格式。我知道我倾向于成为一个现实主义者,但我正试图通过抽象变得更有表现力。

苏珊和我有一个女儿和一个女婿,还有一个刚满 3 岁的孙子,非常棒!

你为什么开始使用 Python?

2000 年,我换了工作,加入了一所学校和图书馆的出版商,将他们的一些百科全书放到网上。在此之前,我已经是一名很长时间的 Windows 开发人员,现在正进入一个 Sun/Unix 的世界。当时,他们正在使用 C/C++作为 CGI 程序开发他们的 web 应用程序。脱机任务和处理工作开始用 Perl 来完成。我被 Perl 的语法吓坏了,幸运的是找到了 Python。Python 立即吸引了我,因为它简洁的语法,“一种显而易见的做事方式”的哲学,特别是它对面向对象编程的本机支持。我用 C++工作了几年,坚定地站在了面向对象阵营。

2006 年,我有幸加入了一家公司,在那里我可以专门用 Python 编程,从那以后,我就一直把它作为我最喜欢的语言。

你还知道哪些编程语言,你最喜欢哪一种?

如前所述,这些年来我使用过几种不同的语言,汇编语言(6809)、Pascal、Fortran、C/C++、VB、PHP、Python 和 JavaScript。虽然我是一个“速度狂”,喜欢用 C 语言开发嵌入式系统,并且非常喜欢这种接近硬件的工作,但是我真的不想再回去做那种工作了。Python 是我目前最喜欢的语言,也是我大多数项目的首选语言。我也喜欢 JavaScript/TypeScript,因为我喜欢在应用程序的前端和后端工作。我喜欢 Python 和 JavaScript 之间的接口,在很多方面,我发现它们之间有很多相似之处。

你现在在做什么项目?

图书项目几乎占据了我大部分的空闲时间,但是我确实有一些其他的项目在做,我想回去做。很久以前,我写了一个基于 Python Twisted 的日志服务器,它允许跨多台机器的多个应用程序将日志记录到一个文件中。这对于在一个地方查看整个系统的日志活动非常方便。我想重新构建它,将 Python asyncio 与一个 WebSocket 接口一起用于 Angular web 应用程序,以显示系统中日志的实时/可搜索视图。

我附近有个 STEM 地方叫 Robotics & Beyond ,我在那里教过几次 Python 编程。我为班级写的材料也被青少年导师用来教授课程。这很有趣,因为向孩子们展示很有趣,也很有挑战性!

我还想/需要重建我的个人网站,因为它已经过时了。因为我用它来“炫耀”,它的状态是可耻的!!这里有一个到我的网站的链接。

作为一个完全的极客,我有一个乐高 EV3 头脑风暴系统。现在 Lego 已经为它发布了 MicroPython,我想进入这个领域,因为我真的喜欢用代码控制硬件设备。这也可能导致尝试使用 MicroPython 而不是 PLC 或自定义 c 来进行一些收缩。

哪些 Python 库是你最喜欢的(核心或第三方)?

我的一些回答显而易见。我很喜欢并使用请求库。我将 Flask web 框架用于我构建的 web 应用程序,因为它提供了“按需添加”的方法。这也意味着我经常使用 SqlAlchemy 进行数据库工作,因为我会使用 Python 对象而不是原始数据行。我不是什么数据库专家,所以 SqlAlchemy 提供的抽象吸引了我。因为我喜欢构建丰富的 web 应用程序,所以我创建了相当多的 REST API 作为我 Flask 工作的一部分。为此,我使用了两个库。Connexion 库是生成这些 API 的好方法。定义 API 的配置文件方法,它接受什么,以及如何处理它的途径真的吸引了我。API 的自动大摇大摆的接口是一个巨大的奖励!在连接中,我使用 Marshmallow 在 SqlAlchemy 和 Connexion 之间来回序列化数据。

你是 Real Python 的贡献者。你能告诉我们这是怎么发生的吗?

我开始在我工作的地方的工程全体会议上做报告。这很有趣,因为我工作的地方是一个异构的技术栈,我是促进和转换人们使用 Python 的使命的一部分。我把我的一些演示文稿变成了丹写的关于 dbader.org 的文章,自从他收购了 RealPython 网站后,我就一直为他写文章。

你可以去 realpython.com 搜索“farrell”找到我在那里写的文章。

你是如何结束写一本关于 Python 的书的?

正是 RealPython 上的文章吸引了曼宁出版公司收购编辑之一的注意。我们谈了很多我们想做/想看的事情,最终我写了一个他们感兴趣的书籍提案。我目前正在为他们写“扎实的 Python 开发者”,这是一个有趣的、有趣的、有时令人伤脑筋的项目。

这里有本书的链接。

作为一名作者,你学到了什么?

如果写作是一个合作的过程,写作会得到极大的提高,这项工作从他人的投入中受益匪浅。RealPython 的编辑帮助我提高了不少写作水平。我还发现写作和编程有某些共同之处。这就像优化一样,这个过程几乎可以永远持续下去,但最终你不得不称之为“完成!”然后走开。航运是一个特点!

我的父亲是一位伟大的作家,他教会了我简单陈述句的妙处。

我也明白了编辑和通读是必不可少的,永远不要爱上一个句子。切割很重要。

你还有什么想说的吗?

在过去的两年里,我一直在家工作,虽然我一点也不怀念通勤的日子,但我确实怀念能够与同事和同行直接互动的日子。成为 RealPython 社区的一员非常棒,因为我拓宽了我的同龄人圈子,包括了在各种不同领域工作的人。除了帮助我保持敏锐之外,它还让我接触到各种各样关于如何解决问题的不同想法。

道格,非常感谢你接受采访!

本周 PyDev:道格·赫尔曼

原文:https://www.blog.pythonlibrary.org/2015/01/12/pydev-of-the-week-doug-hellman/

本周我们邀请 Doug Hellman(@ dough ellman)作为我们的本周 PyDev。Doug 是本周系列 Python 模块的作者,也是《Python 库示例一书的作者。让我们看看他有什么要说的!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

当我不编程时,我喜欢阅读和旅行。由于在旅途中近距离看到一些艺术品,我开始对艺术有了更多的欣赏。我没有以前写得多了,但只要我有能力,我还是喜欢写作。

你为什么开始使用 Python?

20 世纪 90 年代末,我在一家 GIS 公司工作时学会了 Python 这种工具开发语言。我负责管理我们用 C 语言编写的产品在 AIX 和 Digital Unix 上的端口。我编写了很多 shell 脚本,但 Python 是作为另一种语言引入的,用于创建构建工具和其他不属于产品但需要打包和运输的东西。具有讽刺意味的是,该产品不包括 Python 脚本支持。

在我的下一份工作中,我出于同样的目的引入了 Python,当我使用 Tkinter 创建一个 GUI 来控制我们内部用来分发软件的机器人 CD 刻录机时,Python 真正开始流行起来。在我的下一份工作中,我使用 Zope 为现有的出版系统构建了一个 web 前端,这样同样的文章可以在 web 上和我们准备的多媒体发行中使用。从那时起,我大部分时间都在用 Python 写作。随着项目规模和复杂性的增加,Python 总是能够满足我们的需求。

你还知道哪些编程语言,你最喜欢哪一种?

我曾经是 C 的忠实粉丝,但我已经很久没怎么用它了。我经常使用 bash 来实现自动化,根据需要混合使用 bash 和 Python。我对 JavaScript 有所了解,但我并不认为自己在这方面很在行——我倾向于呆在 web 开发系统的后端。

你现在在做什么项目?

这些天来,我大部分时间都在研究 OpenStack 。几年前我加入 Dreamhost 时,就是专门帮助他们参与 OpenStack 开发的。我现在在惠普,做着基本相同的事情。我刚刚被选为 OpenStack 内部 Oslo 项目的项目负责人,这是我第三个 6 个月的任期,在那里,我们与应用程序开发人员合作,确定可以扩展到库中的通用代码,以使共享更容易。我们管理库来标准化配置、数据库访问、消息传递和构建大规模分布式应用程序的许多其他方面。创建满足所有其他项目需求的 API 可能很有挑战性,但是如果我们做对了,这是非常值得的。

我在最近的 OpenStack 大会上展示了奥斯陆的历史和状态更新:http://doughellmann.com/2014/11/11/着眼长远- 奥斯陆计划如何减少-technical-debt.html

当我不在 OpenStack 上工作的时候,我仍然会花一些时间在 virtualenvwrapper 上,尽管这主要是维护。我还维护了几个多年来创建的 Sphinx 插件,并为 Tinkerer(一个用 Sphinx 构建的博客引擎)做出了贡献。

去年,我开始构建一个名为 Smiley(https://github.com/dhellmann/Smiley)的跟踪执行后调试器。我创建这个项目是作为一个实验,看看在执行过程中记录程序状态的想法可以做些什么——提供工具以便以后研究。当前版本证明了基本概念,我的下一步是重新设计我如何处理它收集的数据量以提高性能。

哪些 Python 库是你最喜欢的(核心或第三方)?

我的最爱往往会随着我正在进行的项目而改变。我从标准库中的 itertools 获益匪浅,但是还有一些我非常依赖的其他工具,比如多处理和 sqlite3。我不怎么做网站开发,但是当我做的时候,我会用 Pecan 或者 Flask。我最近一直在重新学习 SQLAlchemy 和 Alembic,发现在专注于其他领域几年后,它们很容易恢复。

你还有什么想说的吗?

感谢邀请我参加这个采访系列!我一直在关注其他帖子,了解我们社区的成员总是很有趣。

谢谢!

前一周的 PyDevs

  • 玛格丽塔·迪利奥博士
  • 马里亚诺·莱因加特
  • 巴斯卡尔·乔德里
  • 蒂姆·罗伯茨
  • 汤姆·克里斯蒂
  • 史蒂夫·霍尔登
  • 卡尔查看
  • 迈克尔·赫尔曼
  • 布莱恩·柯廷
  • 卢西亚诺·拉马拉
  • 沃纳·布鲁欣
  • 浸信会二次方阵
  • 本·劳什

本周 PyDev:Douglas Starnes

原文:https://www.blog.pythonlibrary.org/2015/04/13/pydev-of-the-week-douglas-starnes/

本周,我们欢迎道格拉斯·斯塔内斯成为我们的本周 PyDev。道格拉斯·斯塔尼斯是田纳西州孟菲斯市的一名通晓多种语言的忍者。在过去的 8 年里,他在移动、云和网络平台上开发了多种语言的软件,包括 C#、Python、JavaScript 等。他的社区参与包括在会议上发言,如 DevLink,圣路易斯日。NET、CodePaLOUsa、CodeStock 和 PyOhio。孟菲斯的. NET 和 Java 用户组。他是孟菲斯 Python 用户组(MEMPy)的联合组织者,也是一年一度的田纳西州 Python 大会 PyTennessee 的组织者之一。你可以在 http://douglasstarnes.com 的网站和 T2 的推特上找到他。

让我们花些时间来更多地了解道格拉斯吧!

dstarnes

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我没有接受过计算机科学甚至技术领域的正规教育。我上大学是学音乐的,是作曲家。然而,没有太多的机会支付账单。音乐技术在当时正在成为一种事物,并激起了我的兴趣。很快,我对技术比对艺术更感兴趣。我完成了音乐本科学位,并去了一段时间的音乐研究生院。有一段时间,我确实学习了计算机科学,但并不为之所动。

你为什么开始使用 Python?

我第一次接触 Python 其实是 IronPython。在我学习计算机科学的短暂时间里,我的主要兴趣是。NET 平台。此外,我当时就读的学校有一门核心的 UNIX 系统编程课程。我不太擅长 C 语言,但很快发现了 C 语言和 Python 之间的相似之处。所以我会用 Python 编写编程作业的原型,以确保逻辑正确,然后将它们移植到 C.

你还知道哪些编程语言,你最喜欢哪一种?

那是一个棘手的问题。我给自己打上了通晓多种语言的烙印,这对我来说意味着我在工作中使用了最好的语言。虽然我确实对一些语言(即 Python、C#、Go 和 Dart)有偏好,但我不能说出哪一种是我最喜欢的。还有一些我倾向于避免的语言,比如 Ruby、Perl 和 Visual Basic。这些都不是不好的语言,但是不符合我的个人风格。显然我用了很多 Python,然而 Python 不能做好每件事,甚至不能做好每件事,否则我们就不需要其他语言了。所以我尽量不去依恋某一种语言。

你现在在做什么项目?

我的兴趣之一是学术界之外的计算机科学教育。在我看来,Python 是一门很好的第一语言。因此,我正在制作一些截屏,并尝试写一本书(两者都将自行出版)。这些将针对那些希望快速入门并运行的有抱负的 Python 开发新手,他们不需要太多的理论或设置。此外,我还在会议上发言(不仅仅是 Python 会议)来传播信息。Python 入门讲座通常有很多人参加,所以有很多开发者对此感兴趣。

另一个项目在某种程度上与个人偏见有关。就像我上面说的,我曾经是个铁杆。NET 开发者。在过去的一年里,微软发布的产品给我留下了深刻的印象,所以我又回到了这个平台。微软也有参与 Python 的历史。例如,Python Tools for Visual Studio 是他们最受欢迎的开源项目之一。现在 Visual Studio Community Edition 是免费的,没有理由不尝试一下。而且微软还有很多其他方式支持 Python (Azure 有出色的 Python 支持。)然而,在 Python 社区中有一些对微软的抵制,所以我提倡微软加入 Python。

哪些 Python 库是你最喜欢的(核心或第三方)?

我可以在这上面花很长时间,但我只提几个。我最喜欢的是工具,而不是真正的库。第一个有点像是唾手可得的果实,但它太棒了,我不能不提到它:IPython。似乎每天我都学到一些新的东西。从 Github 下载 IPython 笔记本并再现用图像和富文本标记的 IPython 会话的能力是非凡的。在这一点上,你有交互式教科书。自从它变大后,其他供应商也注意到了这一点。我认为 Xcode Playgrounds 和 Xamarin Sketches 在某种程度上受到了 IPython 的影响。

历史上,一个令人沮丧的问题是让 Python 跨平台工作。这种情况在 Windows 上更加严重,但即使在 OS X 上也不像在 Linux 上那么简单。Continuum Analytics 的 Anaconda 和 Enthought 的 Canopy 这两个发行版改变了这一点。它们都提供了类似于 Python 跨平台一体化安装程序的体验。诚然,它们是面向科学 Python 的,但它们也同样适用于 web 和 GUI 应用程序。

另一个很棒的工具,尤其是对于学习来说,与 Python 无关,但是可以很容易地让你学会 Python。那就是云 9 IDE。Cloud 9 让你免费创建工作空间,这是一个基于 web 的 IDE,由 Linux 虚拟机支持。你只能获得 512MB 的内存和 1GB 的存储空间(用于免费工作区),但如果你是新手,你可以做很多事情。它带有 Python (2 & 3) pip,并配置了 virtualenv。PostgreSQL 和 MongoDB 也已安装,所以您只需启动它们。将此与 Heroku 和 MongoLab 等服务结合起来,你就可以学习编写 Python web 和控制台应用程序,而无需离开浏览器,而且是免费的。这是我正在编写的教学材料中的目标技术。

关于一个框架,最近对 Falcon 比较感兴趣。我的大部分工作都涉及到 API,为此我一直使用 Flask。不要误解我,Flask 很棒,但 Falcon 是用于 API 的,Flask 是用于 web 的。因此,将框架调整为只编写 API,而不是将它从 web 框架中分离出来,这很有意思。

你还有什么想说的吗?

参与社区活动。我是田纳西州孟菲斯 Python 用户组的联合主管,几个月来,我们很难找到发言人。我们试图鼓励人们带来任何与 Python 相关的东西(过去我们确实允许谈论 Ruby on Rails 和 JavaScript,但这不是标准),不管它有多简单。告诉我们你找到的一个库或者一个新工具。如果你正在学习 Python,但不太理解列表的含义,把它带到会议上来。你不必做 90 分钟的演示,只需开始对话。最终(比你想象的要快)你会有足够的时间做 90 分钟的陈述。当然,除此之外还有开源项目。Python 是 Github 上比较流行的语言之一。你还可以制作截屏视频并发布在 YouTube 上,举办现场直播,在 Reddit 上写博客和发布,以及 Stack Overflow。只有两条规则:1)开始 2)坚持下去。

谢谢!

一周的最后 10 个 PyDevs

本周 PyDev:大卫·佩纳博士

原文:https://www.blog.pythonlibrary.org/2020/07/13/pydev-of-the-week-dr-david-pena/

本周我们欢迎大卫·佩纳博士成为我们的本周 PyDev!David 是图形化 Python 编程编辑器 StremeCoder 的作者。你可以通过大卫的 Github 个人资料了解更多关于他的近况。

让我们花些时间更好地了解大卫!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我叫 Dave Peñ,是一名分子神经科学家,也是 Pluri Inc .的首席科学官。我和三位了不起的人一起创立了 Pluri,我的想法是每个人都应该可以使用科学工具。我们制造前沿神经科学工具,并致力于让那些通常要等几十年才能到达实验室的机构买得起。我在达拉斯的德克萨斯大学获得了神经科学的认知博士学位。我们在德州大学达拉斯分校资金不足,所以我必须自己创造和设计大量的实验设备。我们必须制作自己的隐喻光剑来做值得发表的研究。这一经历是创建 Pluri 的真正动力。当我离开普卢利的时候,我喜欢在内华达山脉看巨大的红杉。我也时不时地启动 xbox one。

你为什么开始使用 Python?

我在研究生院开始用 python 代替 matlab 做实验。这是在张量流出现之前,熊猫出现之前。那时,使用 python 比 matlab 对我的硬件提供了更多的控制,而且似乎运行得更快。

你还知道哪些编程语言,你最喜欢哪一种?

我知道很多形式的 Javascript,Matlab …一些 C,MedPc(一种行为装置的通用脚本语言)。我最喜欢的语言是 Python。

你现在在做什么项目?

我正在为辛辛那提大学医学院的一个实验室开发一个分析程序,在动物行为时检测神经元事件。实际上这很酷。该实验室试图了解大脑中的网络活动,这是压力导致药物复发的基础。

哪些 Python 库是你最喜欢的(核心或第三方)?

https://pandas.pydata.org/彻底改变了我的生活!在此之前,我有非常迟钝的 matlab 寻找为 numpy 写的代码。

Stremecoder 是怎么来的?

Streme 客户端是作为一个辅助程序来控制与我们申请专利的植入设备相关的硬件。我们称整个系统为 Streme 实验平台。Streme 客户端使用用户可以连接的预编程节点,在我们的硬件中生成不同的行为。它的缺陷在于,尽管你可以在上面编写 python 代码,但你真的需要我们的硬件才能让它有用。一天,马奎特大学的一个实验室联系我,请求帮助解决一个数据收集问题。他们在编码文本文件中有几十年的旧行为数据,没有任何手动方式将数据从中提取出来,放入有用的地方进行分析。我想提供帮助,但并没有真正对他们有用的东西,于是我深入研究了 Streme 客户端代码库,并对其进行了重新设计。我几乎改变了它的一切,这样我就可以用我正在制作的这个新程序来:

1.向 Marquette(非编码人员)传达我的代码在做什么
2。给他们一个易于使用和修改的用户界面,不需要他们查看代码
3。给自己一个基于节点的全功能 Python IDE,以快速适应他们可能有的变化

因此,Streme Client 演变成了 StremeCoder,这是一个任何人都可以使用的图形化 IDE,它本身就可以成为代码的动态 UI。StremeCoder 擅长使你的代码可重用、动态和有组织。我们发现它在制作这些数据管道/ETL 方面是最强大的,因为它们最容易被概念化为直线。

你认为 Stremecoder 未来会走向何方?

我们每天都使用 StremeCoder。其实我做了 StremeCoder 之后,就用 StremeCoder 重写优化了 StremeCoder 的后端。我觉得 Python 的一个弱点就是它的前端。我想在 StremeCoder 中增加一些功能,让它更容易快速地设计出漂亮的 ui,这是除了正常的错误修复和用户可能发给我们的功能请求之外的功能。

你还有什么想说的吗?

来和我们谈谈吧!我们是一个由 4 人组成的友好小组,希望听到 StremeCoder 的新想法和使用案例。

大卫,谢谢你接受采访!

本周 PyDev:Margherita DI LEO 博士

原文:https://www.blog.pythonlibrary.org/2015/01/05/pydev-of-the-week-dr-margherita-di-leo/

本周,我们欢迎玛格丽塔·迪·利奥博士担任我们的本周 PyDev。她是我们这个系列的第一个 PyLady!让我们花些时间去了解她吧!

madi

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我来自意大利南部的一个小村庄。就像来自意大利南部的人的最经典的刻板印象一样,我非常喜欢睡觉、吃饭和做饭,尤其是为大而吵的公司。此外,像大多数来自南方的女人(另一个刻板印象!),我的爱好需要创造性的工艺,如缝纫、编织、钩针编织,我会添加编码,因为时代在变,工艺的方式也在变。

我毕业时是一名环境工程师,专业是自然风险管理。我的第一份工作经历是在一家私营公司担任可再生能源工厂的项目设计师。过了一段时间,我回到学术界,获得了环境监测方法和技术的博士学位。目前,我在欧洲委员会联合研究中心(JRC),伊斯普拉(VA),意大利森林资源和气候部门担任研究员。

我主要是做 GIS(地理信息系统)分析师,有选择自由的时候就选择免费开源软件(FOSS)工具。
我是自由/开源软件的爱好者,积极参与支持使用自由/开源软件的协会,例如作为 OSGeo 的创始成员。 OSGeo 是开源
地理空间基金会,一个支持、促进和传播地理空间自由/开源软件(GFOSS)使用的国际组织。我还在 JRC 成立了一个小组,在这个小组里,我们组织关于 GFOSS 的会议和讲座。该倡议旨在促进
开发者之间的信息交流和交叉合作。

你为什么开始使用 Python?

我在 Python 中的第一份工作是开发 GRASS GIS 扩展(addon)。GRASS 是一个流行的地理信息系统,最初由美国陆军建筑工程研究实验室开发,后来发展成为一个自由/开源软件项目,得到了一个活跃社区的支持。感谢如此热情的社区,我选择了 GRASS 作为我最喜欢的 GIS,并逐渐成为一名开发人员,也成为了项目指导委员会(PSC)的成员。

可以用 Python、C 开发 GRASS 应用程序,也可以用 Fortran 或 bash。让 Python 成为我的选择的原因是,只要遵守一些编码规则,就有可能让你的应用程序跨平台。另一个优点是,你可以用 Python 创建一个完整的动作链,从预处理(包括解析输入文件)到最终产品,甚至是发布到 web 上,完全使用 Python 作为粘合剂。此外,一些非常重要的地理空间库可以通过 Python 轻松使用。

你还知道哪些编程语言,你最喜欢哪一种?

在大学,我接受了 Fortran、C 和 C++的正规教育,但在现实生活中没有怎么使用它们,我更喜欢 Python、Bash、类似 Matlab 的 GNU Octave ,以及最近的 R 。后者很有可能成为我继 Python 之后的新宠。它是专门为统计计算而设计的,但是许多库已经被开发用于任何目的。你可以在数据分析和统计的整个过程中使用 R,从数据检索、预处理、分析、绘图,到发布到网络上,例如参见knittershiny 。此外,特别方便的是“应用”系列函数,它们执行隐式循环。

你现在在做什么项目?

我目前从事的一个最有趣的项目是利用遥感图像监测植物病虫害爆发的框架。这个项目的关键方面本质上与大型数据集的计算时间和及时结果的需求有关,我们正在探索在谷歌地球引擎中运行计算的可能性。该平台向提出请求的可信测试开发人员提供高级特性,包括开发自己的数据分析算法的可能性(也使用 Python)。

另一个有趣的项目是我和我的合作伙伴在业余时间开发的使用开放硬件组件的自制无人机。开放硬件的优势在于它适合于在资源稀缺的情况下用于环境监测,例如在发展中国家。

哪些 Python 库是你最喜欢的(核心或第三方)?

如上所述,我广泛使用地理空间库。我最喜欢的一个是 pyProj,它嵌入了复杂的数学变换,对应于地球的不同制图表达,允许以明显“简单”的方式进行非常优雅的计算,例如,给定任何参考系统中表达的两对坐标,计算两点之间的距离。

另外,为了进行数据分析,我已经广泛使用了 NumPysciPyMatplotlibpandasIPython 。我也非常欣赏多重处理加速计算时间。

你还有什么想说的吗?

非常感谢你邀请我参加这次采访,我关注你的博客已经很多年了,它是我宝贵的指导。我知道你的博客在研究 wxPython,我想说它的社区是最受欢迎和最有帮助的。在我看来,社区是开源项目成功的基础。

谢谢!

前一周的 PyDevs

  • 马里亚诺·莱因加特
  • 巴斯卡尔·乔德里
  • 蒂姆·罗伯茨
  • 汤姆·克里斯蒂
  • 史蒂夫·霍尔登
  • 卡尔查看
  • 迈克尔·赫尔曼
  • 布莱恩·柯廷
  • 卢西亚诺·拉马拉
  • 沃纳·布鲁欣
  • 浸信会二次方阵
  • 本·劳什

本周 PyDev:Ed Leafe

原文:https://www.blog.pythonlibrary.org/2016/05/16/pydev-of-the-week-ed-leafe/

本周我们欢迎 Ed Leafe ( @EdLeafe )成为我们的本周 PyDev!Ed 是达波应用程序框架的共同创建者之一,该框架是 wxPython 的简洁包装,旨在构建数据库驱动的应用程序,尽管您可以将它用于更多用途。艾德还写了一个有趣的科技博客。让我们花几分钟时间更好地了解他!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我有过很多职业,软件开发是最近也是最长的一个。虽然我的学位是生物化学,但计算机专业是辅修专业,所以计算机一直是我的强项。例如,我有过 3 次创业,但都是在建筑领域,不像今天,我们必须从一开始就盈利。但是为了和今天联系起来,我和一个建筑师(一个真正有执照的建筑建筑师,而不是一个妄自尊大的程序员)合作,提出了甲板、附加物等的三维可视化,使用照片作为基础,在上面用 CAD 程序绘图。CAD 项目链接到数据库,因此我们可以直接从图纸中生成零件清单和估价。如果客户想要改变一些东西,比如增加一个窗户,我们在图上做了改变,估算也相应地更新了。哦,这是在 1989-91 年的时间框架内,在 Mac SE 上运行。

我也是一名摄影师。我年轻的时候展示过很多,现在开始重新投入其中。以下是我最近的一些作品:https://goo.gl/FR7PwX

你为什么开始使用 Python?

90 年代初,我陷入了一个用 FoxPro DOS 编写的医疗应用程序的编程工作,几年后,我成为了微软 FoxPro 和 Visual FoxPro 的 MVP。我建立了一个成功的咨询业务,持续了很多年——然后微软停止了 FoxPro,并拒绝发布代码。面对一个我花了很多时间掌握的死产品,我发誓我再也不会犯同样的错误,所以我开始关注开源世界。我尝试了许多语言和软件包,但第一次尝试 Python 时,一切都很顺利。它适合我的大脑。所以我开始开发它,并参加了 2004 年在 DC 华盛顿州举行的 PyCon。在 PyCon 上,我发现了一个非常棒的、热情的社区,这让我从那时起坚定地坚持使用 Python。

你还知道哪些编程语言,你最喜欢哪一种?
我会 SQL,Perl,C,一些 Java,当然还有 Xbase(dBase 和 FoxPro 的语言)。我也懂 JavaScript,但它对我来说似乎从来没有意义。每次我不得不使用 Ruby 的时候,我都会想起为什么我这么喜欢 Python。最近我玩了一点 Go 和 Swift,只是想看看他们能提供什么,但还没有认真玩过。对我来说差不多就是 Python 了。

你现在在做什么项目?

我正在全职开发 OpenStack Nova,这是云产品的计算部分。我是 Nova 最初的开发人员之一,然后换了几年工作。现在我又回到了 Nova,并且喜欢努力让它变得越来越好。我还维护我共同创建的达波。达波是一个类似 Visual FoxPro 产品的实现,旨在创建桌面数据库应用程序。

哪些 Python 库是你最喜欢的(核心或第三方)?

任何为我需要它做的事情而工作的人。🙂

你还有什么想说的吗?

给那些职业生涯初期的人一些建议:编程很有趣,可以消耗你的全部注意力,但不要被任何要求每周工作 60 多个小时的工作所吸引,不管它的报酬有多高。生活不仅仅是编码。只有当你一生都快乐的时候,你才能写出最好的代码。

感谢您接受采访!

本周 PyDev:Edward Ream

原文:https://www.blog.pythonlibrary.org/2018/04/09/pydev-of-the-week-edward-ream/

本周我们欢迎 Edward Ream 成为我们的本周 PyDev!Edward 是 Leo(LEEditor withOut lines)文本编辑器/大纲视图的创建者。他从 2001 年开始使用 Python。你可以看到爱德华在 Github 上做了什么。让我们花些时间去更好地了解他吧!

Driscoll:你能告诉我们一些关于你自己的情况吗(爱好、教育等)

令: ​Piano,行走,科学,文学,历史。我每周都读科学和自然。我鼓励你的读者也这样做。从阅读文章摘要和每篇文章的摘要开始。它们是为非专业人士编写的。所有的科学家都是他们直接研究领域之外的外行人!

我跟随迈克尔·布库斯-博米尔学习钢琴和理论已经很多年了。他对音乐几乎了如指掌。他是一位伟大的爵士乐和古典音乐演奏家。也是一个密友。

我经常做大笑瑜伽。这无疑是我做过的最具变革性的事情,包括霍夫曼过程里程碑式的教育论坛。我发现笑有助于我与人交往,缓解社交场合的焦虑。

笑声对创造力有巨大的帮助。我清楚地记得一段“火腿与克莱德”在与 J .克雷格·文特尔讨论他们的作品时大笑的视频。唉,找不到链接了。哦,对了,哈姆是诺贝尔奖获得者。

我经常散步来解决问题。诀窍是做白日梦。当任何相关的想法出现时,我会把它记在一个 89 美分的笔记本上。这个想法是忘记我刚刚写下的东西,这样新的想法就会出现。试图记住事情会扼杀进一步的白日梦。

丽贝卡是我的缪斯。她是一名园丁兼织布工,但当我和她谈论利奥时,她会问一些很棒的问题,甚至是特别技术性的问题。想想那有多棒!

在与她交谈中,我萌生了用《更多的局外人》作为(后来的)利奥原型的想法。很可能没有她这一切都不会发生。

Driscoll:你为什么开始使用 Python?

令:因为苹果违背了将 YellowBox 移植到 Windows 的承诺。所以目标 c 是不可能的。

我在 2001 年初开始学习 Python。那年我去了 DC 郊外的 Pycon,结果被大雪困住了。走在首都附近,看不到车水马龙,感觉很奇怪。

Driscoll:你还知道哪些编程语言,你最喜欢哪一种?

到目前为止,Python 是我最喜欢的。令人恼火的是,网络本可以基于 Python。

就在今年,我意识到这与 javascript 语言无关。是工具的问题。所以我在学习 node.js 和 vue.js 的世界,由 Leo 的 devs 驱动。

德里斯科尔:你现在在做什么项目?

令:狮子座是我的生命。此页面包含我的计划的摘要项目。​At:现在克里斯·乔治和我正在制作利奥的主题机械装置。长期计划:

1. Better integration with the jupyter ecosystem.2. Integrating Joe Orr's great vue.js stuff.
Be sure to scroll to the bottom of the page.3. Keeping up with vscode, atom, etc. 😉
**Driscoll:你最喜欢哪些 Python 库(核心或第三方)?

Ream: pyflakes ,目前为止。Python 开发者如果不使用它就是在浪费时间。我研究了它的每一行代码。这是天才的作品。

pyflakes 基本上捕捉到了我最初所有的错误。它是如此之快,以至于我可以配置 Leo 在我保存一个. py 文件时运行 pyflakes。我配置 Leo 在 pyflakes 检测到错误时发出一个对话框😉

Driscoll:你是如何进入 Leo 项目的?

令:利奥是在我努力理解唐纳德·克努特的 CWEB 体系中成长起来的。这被认为是理解程序的一大进步,但是我不能理解它!第一个大顿悟是:“网是伪装的轮廓”。

我在 1995 年发明了 Leo 的前身,从那以后就一直在研究它。狮子座的历史页面包含了详细信息。后来,网络协作把我从缺乏想法和精力中解救了出来。现在,我们都被提高狮子座的想法淹没了。
德里斯科尔:你能给我们概述一下什么是狮子座吗?

Ream: 我从一开始就纠结于这个问题。利奥的维基百科页面是一个干巴巴的总结。狮子座的序言是另一个。但这些可能对你或你的读者没有太大帮助。

我可以通过列举对 Leo 有贡献的伟大程序员来回答“侧面”: Terry Brown、Brian Harry、Bernhard Mulder、Vitalije Milosevitch、Ville M. Vainio 等等。当我对利奥一世心存疑虑时,请记住它们🙂

你必须用狮子座才能真正理解它。我们狮子座人谈论狮子座世界。许多人确实明白这一点:

“当我第一次打开 Leo 时,是出于好奇。但是用过了,就再也不回去了。他们得把利奥从我冰冷、死气沉沉的手指中撬出来!”特拉弗斯·霍夫

你会在页面中发现人们对狮子座的评价。

但还是。所有这些都是间接的。正如 Vitalije 最近指出的,真正的 Aha 是 Leo 将大纲结构与代码本身彻底连接起来。

对于 Leo 来说,代码不仅仅是文本。它生活在一个“超级复制轮廓”中,即一个有向无环图。只有这样的数据结构允许对克隆进行简单的定义。

从静态组织中克隆自由轮廓。数据,包括部分程序,可以驻留在同一大纲中任意多个位置。我一直用这个。我收集我正在工作的方法的复制品,以便我能清楚地看到它们。这消除了大量的搜索。Leo 的克隆查找命令以惊人的方式利用了克隆,但是我不想让你的读者不知所措😉

所有代码/脚本都可以轻松访问它们所嵌入的大纲。Leo 的 execute-script 命令定义了三个常量:c、g 和 p。c 是 Leo 的 live 代码的所有的网关。g 是一个 python 模块,包含许多有用的实用程序。最重要的是,p 是大纲中当前选择的节点。p.h 是它的标题。p.b 是它的正文。p.u 是一组可任意扩展的 u(用户定义的属性)。

Leonine 脚本是可以自动访问 c、g 和 p 的脚本。为了让您对这类脚本的能力有所了解,下面是第二个“hello world”示例。把这个放到任意 Leo 节点,做 Ctrl-B(执行脚本):

for p in c.all_positions():
    print(p.level()*' ' + p.h)

它打印大纲中的所有标题,适当缩进。

这就是整个脚本。注意那些不叫的狗!

但这仅仅是开始。通过 c 上易于使用的方法,c 常量允许脚本修改它们所在的大纲。包括我哥在内的一些用户用这个把 Leo 变成数据库。

I'm going on and on, so I'll leave it to interested readers to learn about @button nodes, @test nodes, and all the rest.Neither atom nor vscode are likely to have these features.  Emacs org mode comes closest, but in org mode everything is still plain text.

Driscoll:你从开源工作中学到了什么?

我最重要的目标是激发他人的潜能。我很少不得不与持有错误观点的人打交道,我总是用这样的想法来纠正这些错误,即那个人以后可能会提出伟大的想法。

我通过偶尔改变我的想法来训练人们不要太尊重我的想法😉我希望人们,甚至是新手,反驳我的观点。现在,几乎所有新的事情都是由于用户的紧急请求而发生的😉

我不是最伟大的程序员。但是,我是一个好的项目经理。我之所以这么说,是因为 Leo 的开发人员创造了我做梦也没想到的东西:

  • 没有伯恩哈德·穆德,就不会有@clean 和穆德/令更新算法
  • @button 如果没有' e '就不会发生。
  • 利奥的迷你缓冲器是从布莱恩·哈利的原型发展而来的。
  • 没有维尼奥镇,就不会有利奥的伊普森桥。

项目第一。我们从不贬低他人,尽管我们可能会深入讨论技术问题。嘘,你可能会认为这只是常识,但显然不是。

我们有一个原则,我们从不争论偏好。如果有两种合法的、重要的、不相容的方式让狮子座工作,我们就创造了一个狮子座的环境。这消除了无用的争论。

我们从未遇到过巨魔的问题,也许是因为所有对它的访问都是有节制的。我是一个以证据为基础的人,没有时间做任何事或任何人。

One last thing. Last year I realized that Leo is my entire professional life. Progress has increased significantly since I went "all in".

德里斯科尔:你还有什么想说的吗?

令:工作流程至上。我立即为所有东西创建 github 问题。目标是不需要记住任何事情。我继续寻找方法让 Leo 加快我的工作流程。

If your readers have not already done so, I highly recommend that they read Getting Things Done. Read the entire book, not some summary. Much of what I am about to say stems from this book.Recently I have relearned the fundamental lesson that procrastination saps energy.  I am intensely focused on doing one thing at a time.  This means, for example, that even the smallest mental nits must be cleared.  Some can be filed in my Leo outlines. Others are better put in new github issues.I've been programming for 40+ years. It's important to respect my natural body rhythms. I take regular breaks in the afternoon, after making sure that I am not trying to remember anything. This is the only way to survive long term.**Driscoll: Thanks for doing the interview!****

本周 PyDev:Elana Hashman

原文:https://www.blog.pythonlibrary.org/2019/10/14/pydev-of-the-week-elana-hashman/

本周我们欢迎 Elana Hashman ( @ehashdn )成为我们的本周 PyDev!Elana 是 T2 开源项目 T3 的负责人,也是 Python 软件基金会的成员。她还是 Clojure 打包团队的负责人和 Java 打包团队的成员。你可以在 Github 上看到她的一些作品。你也可以在她的网站上了解更多关于 Elana 的信息。让我们花一些时间来更好地了解她!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我喜欢烘焙和烹饪,所以我的推特上往往充满了各种各样的面包图片或者我周末做的任何一道菜。当我还是个孩子的时候,我完全迷上了烹饪频道——我最喜欢的节目是“铁厨”和“美食”——我以为我长大后会成为一名厨师。如果我从理工学院退学,这是我的备用计划!

我是加拿大人,我在安大略省的滑铁卢大学学习数学,主修组合学和最优化,辅修计算机科学。滑铁卢大学(University of Waterloo)因其合作学习项目而闻名,在该项目中,学生需要额外一年时间来完成学位,并放弃暑假来完成 5-6 个带薪合作工作项目。为了让我的时间表更灵活一点,我实际上退出了合作项目,但在毕业前,我完成了 4 个合作项目,一个谷歌代码实习夏天,一些咨询,甚至成为了一名开源维护者。我学会了如何管理计算机科学俱乐部的服务器,我和我的一群朋友在业余无线电俱乐部停止活动十年后,又让它重新活跃起来。

业余(或“业余”)无线电让我开始玩电子产品,所以我学会了如何焊接,现在我偶尔会制作一些很酷的东西,如 PiDP-11 套件。现在我可以焊接 PCB 了,我想看看能不能焊接银,所以我报名参加了今年秋天的一些珠宝制作课程。我也照顾一堆奇妙的,大多是低维护室内植物。有一天我希望有一个全尺寸的后院,用来种菜和架设无线电天线!

你为什么开始使用 Python?

我第一次学习 Python 是在 2013 年为 OpenHatch 项目做贡献。我已经报名参加了格蕾丝·赫柏庆典的开源日,并被分配到 WordPress 组,但是我在会议的早些时候遇到了 Asheesh Laroia 和 Carol Willing,他们挖走了我!我惊讶于阅读和理解项目代码是如此容易,尽管我以前没有写过任何 Python。

我的第一个 bug 任务比预期的更复杂,但后来我做出了贡献,并通过谷歌代码之夏完成了 OpenHatch 的整个夏季实习,在那里我学会了如何编写 Django 和进行 Python web 开发。在项目开始收尾之前,我维护了 OpenHatch 网站和后端代码库一年多。

你还知道哪些编程语言,你最喜欢哪一种?

哦,很多!我的第一门编程语言可能是 mIRCscript,这是我十几岁时学会的,用来制作 IRC 机器人和触发器,但直到大学我才掌握了任何实质性的编程技能。在学校,我学习了 Scheme、C、C++和 bash,在合作工作期间,我还学习了 SQL、Perl 和 C#。

毕业后,我主要使用 Clojure,这是一种运行在 JVM 上的 Lisp 方言。我可以称之为我最喜欢的编程语言,因为它表达能力强,功能强大,尽管我喜欢所有的 Lisps。大多数人会将 Python 描述为一种高级语言,但是我可以用 Lisp 编写比 Python 更简洁、优雅的抽象!这是我写的唯一一种语言,我的同事称赞我的代码“漂亮”😀

最近我不怎么写 Clojure 或 Python 了;在我目前的工作中,我是 Azure 上 OpenShift 的一名网站可靠性工程师,这意味着我要写很多 Golang 和一些 bash。我觉得 Go 对我的口味来说有点太低级了,但是能够为上游的 Kubernetes 做贡献真的很满足也很酷!

你现在在做什么项目?

工作之外,我大部分时间都在担任开源倡议的董事。我是许可和赞助委员会的成员,也是会员委员会的主席,所以这是我目前在开源领域最大的承诺。

我还领导着 Debian Clojure 团队,尽管自从 Buster 发布以来,事情一直很平静。在接下来的几个月里,我想清理几个包并完成新的上传。

您喜欢使用哪些非 Python 开源项目?

我非常喜欢使用乳齿象,它是用 Ruby on Rails 编写的。它是 Twitter 的自由/开源软件替代品,它是去中心化和联合化的,给每个实例更多的控制权限和内容。我真的很喜欢那里的氛围;它友好、悠闲,并不真正关注声誉和品牌。许多人有多个账户来反映他们的各个方面:我有一个完整的账户,仅仅是为了食物和烹饪

你是如何开始接触 Python 打包权威的?

在 2016 年的 PyCon sprints 上,我想参与 Python 密码学项目。Paul Kehrer 是密码学开发的领导者之一,他在那一年做了一个关于可靠地分发编译过的模块的演讲,并建议我测试一些在 manylinux docker 映像上构建 CPython 扩展的教程,看看我是否可以对指南做一些改进。

我对 CPython 扩展知之甚少,所以我尝试构建我以前使用过的唯一一个扩展:python-kadmin。很快,这导致我在审计轮工具中发现了一个错误。我对 ABIs 或符号版本一无所知,但这里有一些疯狂的错误告诉我,我无法对“KERBEROS _ 5 _ MIT”符号版本中的“MIT”部分进行数值比较。在 sprints 的人们向我解释了引擎罩下发生了什么,错误是什么,以及如何修复它之后,我能够完全重写(为了更好!)auditwheel 如何处理符号版本比较

到 PyCon sprints 的第二年,auditwheel 的最初维护者已经离开了。有人在项目中发现了一个 bug,要求我检查并合并他们的修复。由于我是唯一的积极贡献者之一,Donald Stufft 授予我维护者访问权限,这样我就可以审查拉取请求并削减发布。之后,我担任了两年 auditwheel 的维护人员...而我还是没有对密码学做出任何贡献!

Python 打包权威面临的最大挑战是什么?

manylinux 项目可能是 Python 打包权威中最具技术挑战性的领域。对于 90%的用例来说,它工作得非常好,但是不适合这个模型的 10%的用例在生成二进制代码时会非常困难,并且许多落入这个阵营的维护者会毫不犹豫地分享他们对此的沮丧。可靠地分发预构建的二进制模块,特别是对于 C 运行时来说,是一个非常复杂的问题,我们有完整的操作系统来解决它!

Python Packaging Authority 必须在满足其用户(他们希望安装 Python 扩展很容易)、开发人员(他们用源代码和二进制包支持用户)、维护人员(他们通常不会全职从事开源工作)和公司(他们倾向于占据利基用例,并且有可能不总是与其他公司或社区的其他人一致的特定目标)之间取得微妙的平衡。

Python 打包的未来会是什么样子?

明亮又刺激!manylinux2014 规范刚刚发布,这将为许多新的机器架构带来 manylinux 支持。在 4 月份停止了我的大部分包装职责后,我对那些挺身而出维护转轮的人们印象深刻。有很多优秀的人贡献他们的时间来改进 Python 打包,我相信他们会在应对社区面临的真正挑战方面做得很好。

谢谢你接受采访,Elana!

本周 PyDev:Eli bender sky

原文:https://www.blog.pythonlibrary.org/2015/03/16/pydev-of-the-week-eli-bendersky/

本周,我们欢迎伊莱·本德斯基( @elibendersky )成为我们本周的 PyDev。这些年来,我很喜欢阅读他的博客,因为他写了一些关于 Python 的非常有趣的文章。你可以在 github 看到他参与的一些项目。让我们花几分钟了解一下我们的蟒蛇同伴吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我拥有电气工程学士学位,多年来一直在硬件和软件工程岗位上工作。在过去的几年里,我主要被系统编程、基础设施和工具所吸引——从事编译器、调试器和其他低级别的工作。

至于爱好,我想孩子也算吧?这无疑占据了我现在大部分的业余时间🙂除了家庭,我偶尔会挤出一些空闲时间阅读、锻炼和自学,主题从编程、数学到生物。我用我的博客(http://eli.thegreenplace.net)作为记录我发现最有趣的事情的出口。

你为什么开始使用 Python?

实际上,我对这场比赛已经相当晚了。除了 C 和 C++,在我职业生涯的第一阶段,我的主要工作是 Perl。最终,我对它不再抱有幻想,在短暂地使用了 Ruby 之后,我在 2008 年进入了 Python-land。从那以后,我再也没有回头。我将永远感谢 Python 在一个全新的层面点燃了我对编程和开源的热爱。鉴于这种语言自 2008 年以来获得的巨大发展势头,转向 Python 被证明是一个伟大的决定。

你还知道哪些编程语言,你最喜欢哪一种?

所以我提到了 C 和 C++。在过去的几年里,C++一直是我的主要支付工具,但是 Python 也一直在我的考虑范围之内。除此之外,我曾经非常了解 Perl,涉猎过 Ruby、Common Lisp 和 Scheme。大多数时候,我都能找到 Javascript 的门路。一堆汇编语言(从更标准的 x86 到各种 DSP 和微控制器等深奥的东西)。多年来,我用 Ada、Java 和 Matlab 编写了一些代码。还有一个“未来要关注的语言”列表,现在它包括像 Go 和 Erlang 这样的东西。不过,我最喜欢的是 Python。这总是我第一个要用的工具。

你现在在做什么项目?

在工作中,我侵入了各种我不能谈论太多的内部东西,但其中一些渗透到了 LLVM(编译器基础设施)和 Clang (C++前端)开源项目的上游。我有一堆我创作并维护的小型开源项目(主要是 Python 包)——我的 Github 账户(https://github.com/eliben)有所有的细节。不幸的是,作为一名核心 Python 开发人员,我的活动是短暂而罕见的。还有我的博客,我想这是一个正在进行的项目。

哪些 Python 库是你最喜欢的(核心或第三方)?

我坚信保持较小的依赖性,并自己开发项目的核心部分。因此,我最喜欢的 Python 库是附带的电池 stdlib。通常人们会寻找第三方库来寻找 stdlib 模块能够充分满足的东西。我认为尽可能坚持核心价值很大,因为它是所有 Python 程序员通用语言的一部分。

然而,Python 生态系统是强大的,一些第三方“库”是完整的框架,有一堆自己的子系统。例如,我真的很喜欢将 Django 用于 web 应用程序——我看不出有什么理由去开发自己的 web 框架,或者使用任何不断涌现的“微框架”。Django 是如此的根深蒂固,它是一种通用的习语和许多程序员都能理解的语言——它有自己的生态系统。再比如 Python 拥有的优秀科学栈——Numpy、Scipy、matplotlib 等。得益于这些技术,Python 在“大数据”世界中占据了中心位置,这让我非常兴奋。

你还有什么想说的吗?

Python 向程序员提出了一个有趣的挑战。如果使用得当,编写可读性和可维护性极强的 Python 代码是很容易的。这几乎是 Python 在现代编程语言中独一无二的品质。

但是这种语言是强大的,通过一些创造性,你可以创造出难以理解的怪物,它们肯定是聪明的,但是不太有利于合作。尽可能坚持简单的事情;如果你发现你真的需要使用一些元类魔法或类似的高级东西,那么封装好它,并在大部分代码中隐藏它。别忘了做好记录。所以基本上要坚持接吻原则。

非常感谢!

一周的最后 10 个 PyDevs

  • Ned Batchelder
  • 布莱恩·奥克利
  • 足球妈妈
  • 安东·诺沃西约洛夫
  • 杰西·戴维斯
  • 伊夫林·德米罗夫
  • Andrea Gavana
  • 蒂姆·戈登
  • 道格·赫尔曼
  • 玛格丽塔·迪利奥博士

本周 PyDev:Elias dorne les

原文:https://www.blog.pythonlibrary.org/2018/03/19/pydev-of-the-week-elias-dorneles/

本周我们欢迎 Elias Dorneles 成为本周的 PyDev!Elias 负责制作 Beeware Suite 的工具,也参与了其他几个项目,所有这些你都可以在 Github 上看到。他还有一个编程博客,你可以去看看。让我们花一些时间来了解更多关于以利亚!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

所以,我在巴西南部出生长大,直到 15 岁左右才真正接触到电脑。我最初接触电脑是为了写乐谱和制作简单的动画,在拥有一台电脑和有相似兴趣的朋友家里呆上几个小时。🙂然后,当我有机会上大学时,我选择了计算机科学。在那里,我学习了编程,开始使用 Linux,熟悉了自由和开源软件文化,并越来越多地参与其中,一点一点地。我的爱好时常改变,我喜欢尝试新事物。大多数情况下,我会弹吉他,并为我自己不会弹的流行歌曲做指弹改编。但是你也可能会发现我在画漫画,和一个朋友在网上结对编程,读一些书或者只是在某个地方迷路。我最近搬到了巴黎,从那以后我也一直在四处旅行。去年,我休了一个假期,参加了 Recurse 中心,这对我来说有点像梦想成真!在那里,我遇到了一些很棒的人,在的 Android 工具上工作了一会儿,在 BeeWare suite 上练习了很多结对编程,这太棒了!

你为什么开始使用 Python?

当我在大学的时候,我有这样一个阶段,我每隔几个月就会学习一门不同的语言。Python 最初和我在一起是因为 Django,它有很棒的文档,看起来比我当时做的 PHP 要好得多。但是我还记得我写了一个小脚本来处理一个 Excel 电子表格,并且代码在第一次尝试时基本上工作正常。这真的让我大吃一惊,就像“哇,这种语言让我成了坏蛋!”,让我真的想一头扎进去。

你还知道哪些编程语言,你最喜欢哪一种?

专业上,我做过很多 Python、Bash、Javascript、Java、Groovy 和 PHP,也在较小程度上做过 Scala 和 Ruby。

另外,我还修补了 Erlang/Elixir、一些 Lisp 方言、Elm 和其他一些语言。

Python 仍然是我的首选语言,它仍然是我的最爱,这也是因为社区——出于某种原因,它似乎吸引了很多优秀的人。

你现在在做什么项目?

我目前全职为一家法国初创公司工作,但同时我也在断断续续地为 T2 的 BeeWare 套件开发 Android 工具,这意味着这些天我主要是在改进 T4 的 VOC 编译器和构建一些示例应用程序。我真的很喜欢这个项目,为它工作的人们都很好,我认为 Python 也非常需要它!

这些天来,我真的对没做多少事感到有点难过。自从我搬到法国后,将我的开源活动与找到我在这里的路、学习法语以及所有这些协调起来是一个挑战。但是我希望我很快就能重新站起来,有很多事情要做!

哪些 Python 库是你最喜欢的(核心或第三方)?

我喜欢许多图书馆,但我将借此机会提及一些我觉得不太受重视的图书馆。所以我真的很喜欢 urwid ,我用它为终端构建了许多有趣的东西!这不是一个库,但是 pudb 调试器工具已经非常有用很多次了! Cookiecutter 非常有用,我们在蜂产品中大量使用它!坚韧、 vcrpy 是非常有用的工具,可以放在我的工具箱里!

Visidata 是我的一些朋友正在开发的一个很有潜力的工具!(我仍在学习)最后,我对此很有偏见,但 Parseldateparser 是我最喜欢的,我在它们上面做了很多工作——向维护它们的 Scrapinghub 的人们大声疾呼!

你还有什么想说的吗?

我将借此机会心怀感激:非常感谢我的朋友们,他们总是如此支持我--你知道你是谁!

向 BeeWare 团队、Recurse Center 以及 Python Brasil 社区的优秀员工致以诚挚的谢意,特别要感谢 Python Floripa 和 PyLadies Brasil 团队!感谢你们的存在!< 3 另外,谢谢 Mike 来采访我,这很有趣。🙂

非常感谢你接受采访!

本周 PyDev:伊丽莎白·桑德

原文:https://www.blog.pythonlibrary.org/2018/05/07/pydev-of-the-week-elizabeth-sander/

本周,我们欢迎伊丽莎白·桑德成为我们本周的 PyDev!伊丽莎白是 Civis Analytics 的数据科学家。她有自己的网站,在那里你可以了解到很多关于她的有趣背景信息。如果你对她的开源项目更感兴趣,那么她的 Github 简介可能是你真正想了解的。让我们花一些时间来更好地了解伊丽莎白!

能简单介绍一下自己吗(兴趣爱好,学历等): 我的背景其实是计算生物学的,基本上是看食物网是如何构造的,如何从其他种类的数据预测网络结构。我在研究生院的时候被软件 bug 咬了一口。我试图把我所有的研究变成软件包,或者至少是一系列可以复制我的工作的脚本。这在学术界是出奇的不常见,至少在生态学上是如此!我去年完成了生态学和进化论的博士学位,现在是 Civis Analytics 的研发数据科学家。现在,我开始从事软件工作,帮助其他数据科学家做他们的工作,这是编程和分析之间的一种有趣的平衡。

除了软件之外,我还有很多爱好,可能有些太多了。我表演很多马戏艺术,尤其是空中飞人和接触人员,我还有很多像缝纫和编织这样的巧妙爱好。我也是一个大玩家,无论是桌游、角色扮演游戏还是视频游戏。

**你为什么开始使用 Python?

我在研究生院开始使用 Python 进行基本的脚本编写和原型制作。我需要用编译语言运行模拟和优化,但 Python 非常适合构建快速原型,而不必担心内存管理之类的细节。我还有一个一直在使用的 Python 脚本,可以自动将我的工作提交给我们部门的计算集群。我不小心以这种方式接管了集群几次,所以我不得不编写另一个程序来自动从集群中删除我的所有作业(向我们可怜的系统管理员 Ian 道歉!).

你还知道哪些编程语言,你最喜欢哪一种?

我喜欢涉猎许多不同的语言,但我最熟悉的是 R、Python 和 c。我最喜欢的语言取决于任务。我喜欢学习一门语言的核心抽象,了解它如何“思考”问题,并了解它最关心什么问题。所以我最喜欢的语言是最关心我正在处理的问题的语言!r 关心的是让您能够方便快捷地访问表格数据。所以当我想探索、操作和绘制数据时,R 是我的最爱。我认为 C 关心的是让你完全使用计算机的能力,但风险由你自己承担!Python 希望变得非常灵活,并且擅长所有事情,因此它是一种通用语言,并且非常适合于原型开发。它也真的很在乎读起来美不美,所以我发现自己各种问题都求助于它。你现在在做什么项目?

**我帮助维护 Civis Analytics 的一个名为 CivisML 的大项目,该项目本质上是围绕 scikit-learn 模型,并在云中并行运行它们。这是一个有趣的项目,因为它实际上是为用户消除所有令人沮丧的数据分析部分,即所有的 devops 和样板文件。我喜欢做能让别人的生活变得更美好的项目。

我现在没有任何软件方面的项目,但是我喜欢每年秋天为 Hacktoberfest 贡献开源!我在去年的 Hacktoberfest 上主要从事文档工作,这是一个很好的帮助方式,即使你对代码库的细节不是很熟悉。

你最喜欢哪些 Python 库(核心或第三方)?

我喜欢 scikit-learn,因为它有一个令人难以置信的 API。它非常符合我对模型的看法,而且非常易于使用、扩展和构建。和它一起工作是一种乐趣。我喜欢 scikit——学到了很多,我将在今年的 PyCon 上做一个关于 scikit 的完整演讲。

这不是图书馆,但我也不得不提到字典。它们是 Python 的核心,对于各种数据来说,它们真的非常通用和方便。我的第一种语言是 R,它没有真正的本地字典或 hashmap 结构。我花了一段时间才明白为什么我会使用字典而不是列表,但是一旦点击,它真的改变了我对结构化数据的看法。你还有什么想说的吗?

如果您编写 Python 并且没有去过 PyCon,那么您就错过了!这非常有趣,是了解社区动态的好方法,人们也非常友好。他们对需要奖学金的人也很慷慨,尤其是如果你是第一次参加的话。此外,还有许多有趣的即兴活动,所以即使你不认识任何人,你也可以找到你的部落。当我去的时候,我参加了一个桌游之夜,一个杂耍课,和一个极限瑜伽活动,遇到了很多可爱的人。今年我还会去那里,所以如果你见到我,打个招呼!

感谢您接受采访!****

本周 PyDev:艾米莉·莫尔豪斯-瓦尔卡塞尔

原文:https://www.blog.pythonlibrary.org/2018/02/12/pydev-of-the-week-emily-morehouse-valcarcel/

本周,我们欢迎艾米莉·莫尔豪斯-瓦尔卡塞尔(@埃米尔·莫尔豪斯)成为我们本周的 PyDev。艾米丽是 Cuttlesoft 的联合创始人和工程总监。她最近在 PyCascades 谈到 Python 的 AST 。你可以通过她的 Github 简介来了解她对哪些项目感兴趣。让我们花点时间来了解她吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我目前是一家数字产品开发公司 Cuttlesoft 的联合创始人兼工程总监。在此之前,我在佛罗里达州立大学学习戏剧、犯罪学和计算机科学。直到大三的时候,我才真正发现编程,当时我参加了一个入门课程,并制作了一个 Enigma 机器模拟器。我恋爱了!我真的很喜欢解决问题,总是有新的挑战要面对,有不同的东西要学习或改进。我相信,如果你对科技世界感到厌倦,那你就做错了。在我的业余时间,我喜欢玩电子游戏,和我们的狗一起徒步旅行(科罗拉多山脉真是不可思议),摄影,园艺,参加音乐会,沉迷于科罗拉多州令人惊叹的精酿啤酒和美食。

你为什么开始使用 Python?

我经历的 CS 程序非常受理论和基础的驱动,所以我们主要使用 C 和 C++。我发现当时我想做的大部分兼职项目都是网络驱动的,所以我和我现在的丈夫兼商业伙伴一起选择了 Python。你可以用 Python 做很多事情——API、web 应用、微控制器、web 抓取——我们都想做。这与我第一次学到的东西相比是一个巨大的变化,而且比 C++之类的东西更快。但是我喜欢 Python 是用 c 语言构建的,这让我觉得一切都回到了原点。

你还知道哪些编程语言,你最喜欢哪一种?

我能流利地说一些。实际上,我是一个超级语言迷!C,C++,JavaScript,Elixir,Ruby,Swift,Objective-C,Java,Perl(在我还没有 Python 的时代),HTML/CSS。我最喜欢的一本编程书叫《七周七种语言》;Bruce Tate 做了出色的工作,涵盖了多种不同的语言,以说明不同的编程范例是如何工作的。我强烈推荐。Python 绝对在他们之上。它非常优雅且易于使用。这种情况并不常见。

你现在在做什么项目?

相当多。我喜欢经营一家代理公司的一个原因是,我们总是在做各种各样的事情。一些 Python 驱动的 web 应用和 API,一些 spa 的 React 客户端,以及一个 Android 应用。我们很幸运有一些长期客户,我们还会继续迭代和添加功能。我们经常与非营利组织或其他科技公司合作,因此开发您感兴趣的产品真的很有意义。工作之外,我喜欢为 OSS 项目做贡献(CPython 和 Axios 是我目前关注的两个焦点)。我还维护了一些 Cordova/Ionic 的插件,并喜欢玩不同的东西,如音频处理和图像处理。

哪些 Python 库是你最喜欢的(核心或第三方)?

这是一个很难回答的问题。我必须挑选请求——这是我使用的第一批库之一,我真的很感激在设计它的接口时所付出的努力,它是 Pythonic 代码应该有的样子的一个很好的例子。我还认为 Turtle 是一个很棒的核心库,它将语言开放给其他用途,并专注于向孩子们教授编程。

你是如何成为一名企业家的?

我无意中发现的!我从来没想过要做生意。当时我在读研究生,被许多大型科技公司招聘,但我也参与了佛罗里达州塔拉哈西一个名为 Domi Station 的本地联合工作空间/企业孵化器。我们的第一个客户甚至在我们建立合同模板或银行账户之前就找到了我们!当时我们不知道如何经营一家企业,但我们的社区非常支持,并提供律师和会计师等资源。如果没有 Domi 和他们的社区,Cuttlesoft 今天就不会存在。有时压力会很大,但我真的很感激能建立一家我投入了这么多的公司。

你对那些想创建自己公司的人有什么建议?

找到支持你的人,找到可以学习的人。有一个计划,但是要愿意改变它或者扔掉它重新开始。拥有一位或多位与你有共同愿景但又能带来独特东西的联合创始人也非常重要。我很幸运能和我的丈夫在一起,这种关系让我们彼此配合得非常好,一起经营一家公司。我们帮助彼此保持理智。庆祝一些小事情!我们不得不提醒自己,能够熬过经营企业的第一年,是一项巨大的成就。一定要相信自己。

你还有什么想说的吗?

我必须对 Python 社区说一声非常感谢。“为语言而来,为社区而留”再正确不过了,我相信我们正在采取令人惊叹的措施来支持多元化和欢迎所有人。它表现在从会议到文件的所有事情中。

感谢您接受采访!

本周 PyDev:Eric Matthes

原文:https://www.blog.pythonlibrary.org/2019/08/05/pydev-of-the-week-eric-matthes/

本周,我们欢迎埃里克·马特斯( @ehmatthes )成为我们本周的 PyDev!Eric 是畅销书 Python 速成班的作者。他还制作了一套整洁的 Python 闪存卡,我在今年早些时候审阅过。你可以在 Eric 的网站上找到他,或者在 Github 上查看他的一些作品。

让我们花一些时间来更好地了解 Eric!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

当然可以!20 世纪 80 年代初,我在波士顿郊区的新罕布什尔州南部长大。那时我的父亲是 DEC 的一名软件工程师,我第一次学习编程是在地下室的一台小型计算机上。我非常感谢我的父亲分享他在家里拥有的技术,而不是告诉我远离这一切。看着电脑从几乎没有人拥有家用电脑的早期发展到几乎每个人一生中都拥有多台电脑,真是令人惊叹。

我在高中喜欢数学和科学,因为我喜欢 AP 化学,所以我在本科时选择了化学工程专业。但我很快发现,工程学其实就是学习解决别人的问题。不过,我很喜欢我的物理课,因为它们都是关于理解宇宙,从非常大到非常小。有一段时间,我天真地担心,如果我和物理呆得足够久,我会开始发现这个世界没那么有趣,因为我在更深的层次上理解了它。很高兴发现事实正好相反:我学得越多,我周围的一切就越迷人。

在我的教育经历中,我一直在学习新的编程语言。我参加了各种各样的编程课程,并且总是有几个有趣的项目。在大学的一年春假期间,我用 C 语言编写了一个 3d 绘图程序。

我想成为一名粒子物理学家,但我不想永远做学生。我决定尝试教几年书,并很快发现试图接触到我班上的每个学生的智力挑战就像做硬科学一样令人满意。我热爱教学,并决定坚持下去。

2011 年我儿子出生,一个月后我父亲去世。那段时间真的很艰难,但对我来说也是一次成长经历。我妈让我翻翻我爸的电脑,让她知道有没有值得保存的东西。这是一次非常亲密的经历,看着他正在做的所有项目,读着他的笔记。我以前每次回家都会去他的办公室拜访他,只要那天他的电脑开着并运行着,我就仍然感觉和他有直接的联系。令人难过的是,意识到这些项目永远不会完成,也不会被任何人使用。在接下来的几周里,我意识到如果我死了,你也会在我的电脑上发现一堆未完成的项目。我承诺要开始用我学到的技能去做一些有意义的事情。

我想开发一些工具,让公共教育更加公平。我在 PyCon 2013 上做了一个关于教育界可以从开源模式中获得多少收益的演讲,后来 No Starch Press 的 Bill Pollock 找到了我。“我希望你能建立你所描述的东西,如果你想写一本技术书籍,请告诉我。”我回到教室,看到墙上挂着一张海报:“为了开始构建有意义的项目,关于编程,你至少需要知道什么?”这是我为我的学生列出的清单,列出了他们需要知道的最少的东西,以便能够构建他们关心的东西,如游戏、数据可视化和简单的 web 应用程序。我意识到那是我想写的书,那张海报上的问题成了 Python 速成班的指导问题。我并没有打算写一本书,但我意识到,在五年试图向高中生教授编程的过程中,我找到的所有资源要么是针对年轻人的,要么是假设比我的学生拥有更多的技术知识和经验。我决定写一本书给那些不想要儿童读物的人。看到 Python 速成课程对预期受众中的几乎每一个人都有效,这是非常令人满意的:有足够动力想要一本更严肃的书的年轻人、高中生、所有专业的本科生、研究生、工作的成年人以及对在较大年龄学习编程感兴趣的退休人员。我惊讶地发现,它甚至对那些已经熟练掌握另一种语言并希望快速掌握 Python 的人也很有效。

我不只是做技术工作。在新罕布什尔州长大后,我在 20 世纪 90 年代-2000 年代初搬到纽约市住了七年。我在夏天骑自行车穿越美国几次,然后一度在自行车上生活了一年多。我从西雅图骑到缅因州,下到佛罗里达,再到加利福尼亚,最后到阿拉斯加。那是一次改变人生的经历,我在 2002 年永远搬到了阿拉斯加东南部。我喜欢住在一个相当大但与世隔绝的小镇,就在真正的荒野边缘。当我去越野跑时,我很有可能会看到一只棕熊。当我在森林里与熊近距离接触时,服务器崩溃更容易被理解。我喜欢陡峭的山,自从我搬到这里,我一直是技术救援队的积极成员。我也喜欢过部分自给自足的生活。每年我们都捕捉自己的王鲑、红鲑、银鲑、大比目鱼、蟹和鹿。生活在一个几乎每个人都外出捕鱼、打猎并自己收集大量食物的社区里是非常美妙的。

你为什么开始使用 Python?

在 2000 年代中期,我选择的语言是 Java。我使用 C 已经有一段时间了,并且喜欢 Java 提供的高级库。然后一个朋友说,“嘿,你应该看看 Python。你的程序只要用 Java 写就可以了。”像当时许多刚接触 Python 的人一样,我对使用空格而不是大括号持怀疑态度,并且我很惊讶我不需要声明变量。但是这些想法更吸引人而不是令人不快。我当时正在做一个项目,对随机漫步进行艺术表现,我已经构建了一个桌面应用程序来生成和设计随机漫步。我用 Python 重写了应用程序,它实际上只有我的 Java 程序的三分之一长。我被难住了,从那以后,我几乎在每个项目中都使用 Python。

当被问及为什么使用 Python 时,人们会说:“我为语言而来,为社区而留。”这个答案当然代表了我的想法。在我父亲去世后,我决定更认真地对待我的编程工作,我找了一个技术会议参加。我很感激我偶然发现了 PyCon。我第一次去是在 2012 年,当时恰逢一些早期的多元化和行为准则计划。我看到社区设定了明确的多元化目标,制定了实现这些目标的具体计划,并贯彻这些计划。当我现在去 PyCon 的时候,我看到了完全不同的人群,呈现的各种主题真是太棒了。Python 社区正在回答这个问题,“如果我们让每个人都能编程,人们会构建什么?”至关重要的是,我们要给予各行各业的人们编程所提供的力量,让人们构建满足他们自己和他们社区需求的项目。

你还知道哪些编程语言,你最喜欢哪一种?

我在 20 世纪 70 年代和 80 年代初开始学习 Basic。直到 2000 年代中期的 Java 和 Python,我才开始深入了解任何语言,但在这个过程中,我对 Logo、C、Pascal、Fortran、HTML、CSS、JavaScript 和 SQL 有了一些了解。

我现在几乎每天都在用 Python。在接下来的一年左右,我真的想巩固我对 SQL 的理解,我想探索一种像 Lisp 或 Haskell 这样的函数式语言。我也喜欢尝试各种我听说过但从未使用过的语言,比如 Rust 和 Go。我从来不想被 Python 困住,因为这是我所知道的;如果有更好的东西出现,我想和这个行业一起发展。

你现在在做什么项目?

我刚从教学岗位上退休,把全部时间放在写作和编程上。随着 Python 速成班越来越成熟,支持这本书逐渐成了第二份工作。作为一名带着一个年幼儿子的全职老师,我所有的写作工作都需要在早上 7 点前或晚上 9 点后完成。那很难。我很高兴完成了课堂教学,并可以自由地跟进因这本书的成功而出现的许多机会。

我最近的项目涉及一个当地的非营利组织,致力于减少延绳钓渔船船员和抹香鲸之间的冲突。延绳钓在海底设置数英里长的钓线,每隔 10 或 15 英尺设置一个鱼钩。它们以底栖动物为目标,如大比目鱼和黑鳕鱼。他们让绳子浸泡 6 个小时左右,然后把绳子拖回水面。抹香鲸已经学会了在延绳钓附近出没,它们可以在一英里长的延绳钓上的每一条鱼浮出水面之前将它们一网打尽。我和一个团队一起工作,他们让渔船在去渔场的路上拖着水听器阵列。来自水听器阵列的数据被用于绘制该地区任何抹香鲸的位置,这些位置被广播给该地区的任何船只。目的是帮助每个人避免在鲸鱼出没的地方捕鱼,以利于捕鱼人员和鲸鱼。(延绳钓渔船不是拖网渔船。海底拖网渔船拖着网穿过海底,摧毁它们所经之处的一切。延绳钓是一种可持续渔业,副渔获率相对较低。)我在这个项目中的角色是帮助人们从渔船上的卫星设备获取数据,这些人可以绘制这些数据,并将其返回到渔场的船只上。很荣幸能和这么一群来自渔业和科学界的有趣的人一起工作。

我还致力于:

哪些 Python 库是你最喜欢的(核心或第三方)?

听起来可能很无聊,但我喜欢 ReportLab。我希望看到一个比 PDF 更开放的标准,但现实是 PDF 是人们共享文档最简单的格式之一。除非你想成为一个理想主义者,拒绝任何涉及 PDF 的项目,否则作为一名程序员,你迟早要钻研 PDF 的内部原理。我参与了一些非常有影响力的项目,这些项目将 pdf 作为一个重要的角色。当我不得不这样做时,ReportLab 让工作变得触手可及。在你在 ReportLab 上写你的书之前,我就这么做了;既然我已经完成了课堂教学,我期待着通过你的书工作。

我也爱 MatplotLib 和 Plotly。Matplotlib 是许多现代 Python 绘图库的基础,我努力保持它的流畅性,并将其用于各种项目。我也一直在寻找一个友好的高级可视化库,现在 Plotly 很好地完成了这个角色。我喜欢 Plotly 也有各种其他语言的端口。Requests 在处理任何基于网络的数据源时都非常有用。我也喜欢 Jupyter 笔记本,用于探索性的可视化工作,以及教育项目。

我绝对喜欢姜戈。这是成为一名程序员的好时机,当我想到为什么会这样时,Django 是我首先想到的事情之一。在我成长的过程中,如果你有一个正在开发的重要程序,你想与全世界分享它,你需要找到一种方法将你的代码的物理拷贝分发给全世界。这是一项令人生畏的任务,实际上只有专业程序员才能做到。现在,如果你有一个想法和一些基本的编程技能,你可以构建一个简单的 web 应用程序,并在一天之内将你的项目公之于众。太不可思议了!Django 并不是真的要建立网站;它是关于使用一个网站作为与世界其他地方分享你的编程工作的一种方式。我真的很期待帮助更多的人理解如何使用 Django 让他们的小项目快速地、自信地为世界其他地方所用。

是什么启发了你写《Python 速成班》?

我早些时候谈到了这一点,但我要补充一点。与高中生一起尝试各种各样的学习资源,看着他们因为各种原因而不起作用,这真的令人沮丧。对我的学生来说,事情解决了,因为我有足够的背景知识来填补他们的空白。我认识到,独立的学习者和没有强大编程背景的教师可能会放弃这些资源,甚至放弃学习编程。

我决定写一本书,对读者的技术背景不做任何假设,同时尊重他们作为一个成熟的学习者。

在写作/出版过程中,你学到了什么?

我的天啊。这是千真万确的,你从老师那里学到的和从学生那里学到的一样多。我从编写 Python 速成班中学到的东西和人们从阅读它中学到的一样多。

写书是一个具体的项目。你永远不会真正写完一本技术书籍,但确实有具体的里程碑。有一个我可以完全投入的项目,并且知道在某个时候会有一个我可以持有的成品,这真的很好。那和课堂教学很不一样。我学到了承诺、完成、专业和深深的谦卑。没有一本书是完美的,尤其是一本较长的技术书籍。被人指出错误,并对需要的更新保持警惕,这是非常令人羞愧的。

你对有抱负的作家有什么建议吗?

首先,它的工作量和人们说的一样多,然后更多。我原以为我需要六个月的时间来写 Python 速成课,结果花了差不多两年半的时间。找到你自己想要满足的需求,并写下来解决这个需求。

注意过程。学会使用 Git 这样的版本控制系统,考虑作为一个技术写手如何使用。你的提交不应该和纯粹作为程序员工作时一样。例如,每次我为一本书制作截图时,我都会提交一条消息,比如“生成的截图 15-4”这样,当制作编辑要求一系列更新的截图时,我可以检查这些提交,并随时轻松地重新生成任何截图。此外,当开发新材料时,我会编写一个程序,并提交我想向读者解释的开发过程中的任何一点。这让我专注于开发一个有意义的、架构良好的项目,然后回头专注于写作。

如果你写了一本技术书并出版了,请保持更新!如此多的技术书籍比他们需要的更快地过时了。作为一个作者,你可以在你的书每次印刷的时候做一些小的修改和更新。Python 速成班的第一版经历了大约 11 次印刷。几乎每一次新的印刷都涉及一些小的更正或更新。例如,Django 项目最初是使用 Django 1.8 编写的。第一版的最新印刷使用了 Django 2.1。这本书的成功很大一部分归功于这些更新。如果我不更新这本书,人们早就批评它越来越过时了。

如果你对写一本技术书籍感兴趣,先在网上写。这是一个练习写作的好方法,也是获得追随者的好方法,因为他们知道自己在谈论一个特定的话题。这也有助于了解如何为你的书开发和维护一套在线资源。

最后,只是读和写。也要阅读非技术书籍,这样你的技术写作就不会太枯燥。即使是技术书籍也会讲述一个故事,好的技术作家也是好的故事讲述者。

你还有什么想说的吗?

今天有很多关于每个人学习编码的讨论。我不认为每个人都应该学习如何编码,但是我绝对相信每个想学习如何写代码的人都应该能够做到。拆掉所有的墙!编程就是力量,而这种力量需要与几乎所有想要它的人分享。

如果你想分享你对 Python 速成班的想法,我有一个收集反馈的调查。我正在利用调查结果不断完善这本书,并更好地了解要开发哪些其他学习资源。

如果你想更多地了解骑自行车生活一年是什么感觉,我在通往阿拉斯加之路中写了相关内容。它没有像我的技术写作一样受到关注,但如果你喜欢旅行故事,这是一本有趣的读物。

我是推特上的 @ehmatthes ,如果你想联系我,请发邮件至 gmail 的 ehmatthes。谢谢大家!

埃里克,谢谢你接受采访!

本周 PyDev:埃里克·斯诺

原文:https://www.blog.pythonlibrary.org/2018/04/02/pydev-of-the-week-eric-snow/

本周我们欢迎埃里克·斯诺(@ ericsnowcurrently)成为我们本周的 PyDev!Eric 是 Python 语言的核心开发人员。你可以查看他的博客,在那里他偶尔会发布他的 Github 简介,在那里你可以看到他最近在做什么。让我们花些时间来更好地了解 Eric!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

美国西部几乎是我一生的家,除了我上大学前在阿根廷的两年。我拥有杨百翰大学的计算机科学学士学位。我住在山里,喜欢和家人一起在户外度过时光。在我家周围,我有 17 棵苹果树,我照顾它们(并享受它们)。

你为什么开始使用 Python?

我大学毕业后的第一份编程工作是在一个几乎完全用 Python 编写的系统上工作。我责怪我们杰出的范·林德伯格,因为他在我之前就在这个团队里,这个项目是他的主意。🙂

你还知道哪些编程语言,你最喜欢哪一种?

除了 Python,我还广泛使用过 Go。除此之外,我在 Javascript、Java、Lua、Bash、Perl 和 PHP 方面也有一定的经验。我还尝试了几十种其他语言。我最喜欢的还是 Python。🙂

你现在在做什么项目?

在过去的几年里,我的主要关注点是一个改进 Python 多核故事的项目。它包括 3 个主要部分:

1.在 stdlib 模块中公开对子解释器的现有支持(参见 PEP 554)
2。改善解释器隔离
3。使 GIL 成为每个解释器的锁,而不是在所有解释器之间共享它

除此之外,我还帮助过导入系统和 CPython 的运行时。当我完成多核项目后,我还有一些其他项目暂时搁置。

哪些 Python 库是你最喜欢的(核心或第三方)?

在很大程度上,我坚持使用 stdlib。我最喜欢的包括 importlib(惊奇,惊喜),inspect,itertools,collections,contextlib 和 unittest。总的来说,我被精心制作并映射到我大脑中的库所吸引。

你是如何成为 Python 编程语言的核心开发人员的?

在开始我的第一份编程工作后,我天生的好奇心引导我逐渐探索 Python 语言特性的广度及其内部工作方式。几年后,我潜伏在邮件列表上,到 2010 年,我开始参与其中,特别是在进口签名列表上。我在 2011 年参加了(实际上是)我的第一次 PyCon,在那里我可以和几个已经和我一起工作过的核心开发人员(特别是 Nick Coghlan 和 Brett Cannon)面对面交流。我也参加了所有的短跑比赛。那次面对面的经历产生了巨大的影响。我第一次真正的代码贡献
是在 2011 年晚些时候,我参加了 2012 年 PyCon 的语言峰会,不久之后我的第一个 PEP 被接受了(PEP 421)。2012 年 9 月,我被授予了提交权限,在我能够腾出的时间里,我适度地使用了这些权限。

你负责哪些模块?

我不能说我“拥有”任何,但确实帮助了 importlib。除此之外,我最感兴趣的是语言(例如语法和语义,类似语言参考)和 CPython 的运行时,例如嵌入、子解释器、启动。也就是说,我已经接触了其他几个模块,包括添加类型。SimpleNamespace 和 OrderedDict 的 C 实现。

你还有什么想说的吗?

Python 社区非常棒,CPython 拥有我认为是任何主要开源项目中最受欢迎的核心团队之一。也就是说,参与其中仍然会令人望而生畏。我鼓励每个有兴趣的人加入进来,然后留下来。从核心导师邮件列表开始,到 PyCon 的 sprints。正如我自己的经验所表明的,贡献往往是逐渐增加的,而不是突然出现的。耐心点。要善良。找到你喜欢的事情,并专注于此。甚至不一定是核心 Python。有许多伟大的项目。最重要的是,抓住机会建立联系,享受新的友谊。这可能是我参与 Python 以来最大的收获。

感谢您接受采访!

本周 PyDev:Erika Fille le gara

原文:https://www.blog.pythonlibrary.org/2018/12/03/pydev-of-the-week-erika-fille-legara/

本周,我们欢迎 Erika Fille le gara(@ efle gara)成为我们本周的 PyDev。Erika 是亚洲管理学院的教授和项目主管。她在菲律宾的 PyCon 大会上发表过演讲。你可以查看她的网站,看看她还在忙些什么,或者看看她在下面的讲话:

https://www.youtube.com/embed/m7RDD8vFU6U?feature=oembed

让我们花一些时间来更好地了解她!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

嗨,我是艾丽卡。我是训练有素的物理学家。我是你典型的研究生院(assoc。)教授/行政人员,她总是尽力在教学、研究和履行某些行政职责之间取得适当的平衡。目前,我从事的研究项目大多是行业驱动的。

工作之余,我喜欢旅游和旅行摄影。然而,随着最近的职业转型,休闲旅游已经被最小化了。如今,我大部分空闲时间都在看书、听音乐,当然,还有看电视。我也喜欢周末时不时在高速公路上开车;它有助于大脑放松。我喜欢这样一个事实,在长途驾驶中,我可以不受干扰地听很棒的公路旅行播放列表。

你为什么开始使用 Python?

我开始用 C++为我的本科研究写脚本。我的论文是关于复杂系统的研究;尤其是网络科学。我当时在实验室的一位同事向我介绍了 Python,当时他看到我用 C++编写非常非常长的脚本来构建复杂的网络模型。他向我展示了如何将我用 C++编写的大约 50 行(或更长)代码减少到只有几行,实际上用 python 编写的不到 10 行,这要感谢所有 Python 科学库的开发者和贡献者。从那以后,我再也没有回头。

你还知道哪些编程语言,你最喜欢哪一种?

其他语言有 C/C++、R 和 MATLAB。我也熟悉 PHP。

当然,我唯一喜欢的是 Python。

你现在在做什么项目?

我目前正在从事几个研究项目,涉及城市系统建模、交通系统建模、社会系统中(mis/dis)信息传播的分析和建模,以及为位置分析建立预测模型。

哪些 Python 库是你最喜欢的(核心或第三方)?

NumPy 和 SciPy,Matplotlib,PANDAS,scikit-learn,NetworkX,graph-tool,Keras,TensorFlow,H2Oai

你还有什么想说的吗?

永远不要停止学习!这个世界,尤其是有了今天的技术,有如此多的东西可以提供。

谢谢你接受采访,Erika!

本周 PyDev:伊森·史密斯

原文:https://www.blog.pythonlibrary.org/2020/08/24/pydev-of-the-week-ethan-smith/

本周我们欢迎 Ethan Smith ( @ethanhs )成为我们的本周 PyDev!Ethan 是 Mypy 项目的核心开发人员,该项目是 Python 的静态类型检查器。你可以在 Github 上看到伊森还参与了其他什么项目。

让我们花一点时间来更好地了解 Ethan!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我出生并生活在旧金山湾区。我目前是加州大学伯克利分校的本科生,攻读电子工程和计算机科学学位。我对 Linux 和自由软件充满热情,所以我是开放计算设施的一名工作人员,这是一个基于自由软件为学生提供计算服务的校园组织。编程语言设计和量子计算是我最感兴趣的两个领域。我已经在 mypy 上工作了大约 3 年,和 mypy 团队一起工作是一次很棒的经历。我也不时尝试玩具编程语言。

我目前在劳伦斯伯克利国家实验室工作,作为高级量子试验台的一部分,从事量子计算研究。我开发工具使量子计算机编程变得更容易。

你为什么开始使用 Python?

我在高中时开始使用 Python,当时我需要在当地博物馆劳伦斯科学馆的暑期实习中使用它。我和一个实习同事一起研究一个库存系统,我们决定用 Python 来写。库存系统从未问世,但足以让我爱上 Python!那个夏天剩下的时间我继续学习 Python,再也没有回头!在那之后的几年里,我用 Python 为自己做了一些小项目,并尝试自定义窗口。

你还知道哪些编程语言,你最喜欢哪一种?

我会说我熟悉 bog 标准 C/C++/Java/C#/Ruby 和其他一些标准,比如 Rust 和 Scheme。我最近真的爱上了 Rust,我知道它被炒作了很多,但一旦你知道如何使用它,它就是一种乐趣。我还没有见过一种语言以同样的方式混合了干净的高级语义和极快的速度。高中时,我用 MIT 的 Scratch 向孩子们教授基本的编程概念,我一直认为它设计得很好。

你现在在做什么项目?

我在很大程度上一直致力于量子编译器(这实际上比听起来要简单得多!).编译器产生最小或接近最小尺寸的量子程序。量子计算机执行的每个操作都存在高噪声,因此减少要执行的操作数量至关重要!我一直在使用 Rust 来扩展编译器,以便在更大更难的程序上工作得更快,这非常有趣。

我也一直在尝试将 Python 编译成 WebAssembly 来进行确定性计算。这有很多应用,如可复制的 Jupyter 笔记本或实现更简单的分布式计算。

哪些 Python 库是你最喜欢的(核心或第三方)?

这里我稍微作弊一下,选 pyo3,其实是一个 Rust 库,用于将 Rust 代码绑定到 Python 上。我最喜欢 Python 的一点是,您可以编写到快速本机代码的绑定,并享受 Python 的高度简单性。这种方法在 numpy 和 scipy 中有优先权。因为我最近很喜欢写 Rust,pyo3 意味着我可以同时使用我最喜欢的两种语言!

你是如何参与 Mypy 项目的?

我在 2016 年开始使用 mypy,当时我正在处理一个个人项目。我的主要开发机器运行 Windows,当我运行 mypy 时,它坏了!我熟悉了 mypy 的工作方式,然后修复了这个 bug。然后我决定我想帮忙,因为这似乎是一个迷人的项目。所以我开始帮忙,做一个讨厌的人,在 bug 追踪器上帮助分类问题,最终修复更多的 bug 并实现更好的分析。

你最喜欢 Mypy 的什么功能?

我真的很喜欢 mypy 守护进程。我记得当我第一次将它移植到 Windows 上运行时,我对它在检查大型项目时的速度感到震惊。移植它是一个有趣的挑战,因为 Windows 并不像 Unix 那样真正支持守护进程,但是我离题了。展望未来,我对 PEP 612 https://www.python.org/dev/peps/pep-0612/,的实现感到兴奋,它将使输入装饰符和更高阶的函数变得容易得多。

伊森,谢谢你接受采访!

本周 PyDev:埃齐奥·梅洛蒂

原文:https://www.blog.pythonlibrary.org/2016/03/28/pydev-of-the-week-ezio-melotti/

本周,我们欢迎埃齐奥·梅洛蒂成为我们的本周 PyDev!埃齐奥是 Python 语言的核心开发者。你可以通过他的比特桶页面了解他在做什么。让我们花点时间来了解一下他吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

目前我住在芬兰,在那里我学习并毕业于信息技术专业。当我毕业的时候,我教了一门关于 Python 编程的大学课程,现在我作为一名开发人员/教育者远程工作。

自 2009 年以来,我一直是 CPython 核心开发人员,并且是 bug 跟踪器和 html 包的维护者。我花了很多空闲时间以不同的方式改进 Python,包括在 stdlib、文档、测试、基础设施方面的工作,指导 Google Summer of Code,组织 sprints,以及在会议上做演讲。

我的爱好包括旅游、学习新语言(汉语和西班牙语)和野生动物摄影

你为什么开始使用 Python?

当我还在高中学习 C++的时候,Python 开始变得越来越流行,所以有一天我决定学习它。它的强大、简单和多功能性给我留下了深刻的印象。从那以后,我已经能够在我的大多数项目中使用 Python 了。

你还知道哪些编程语言,你最喜欢哪一种?

我的第一门语言是 Pascal,之后是 C 和 x86 汇编。在学习函数式编程的时候,我学了 Scheme,然后是 Haskell。当我刚开始从事网络工作时,我还必须学习 PHP 和 JavaScript。现在我主要使用 Python,但偶尔我仍然使用 C(当我需要性能时)、JavaScript(在客户端)和其他语言。猜猜哪个是我的最爱应该不难🙂

你现在在做什么项目?

对于 Python,我目前正准备为即将到来的向 Git/GitHub (PEP 512)的迁移更新跟踪器。我还与 OeWF(奥地利空间论坛)和其他组织合作了一个科学项目,该项目旨在提供一个身临其境的火星虚拟现实模拟。

哪些 Python 库是你最喜欢的(核心或第三方)?

有这么多很棒的图书馆,很难挑出最喜欢的。标准库已经涵盖了广泛的用例,当它不够用时,您几乎总能在 PyPI 上找到一个有效的替代品。

你还有什么想说的吗?

为 Python 做贡献比您想象的要容易。如果你想让你最喜欢的语言变得更好,请通过 http://pythonmentors.com/和 https://mail.python.org/mailman/listinfo/core-mentorship的核心导师邮件列表联系我们。

感谢您接受采访!

本周 PyDev:法比奥·扎德罗兹尼

原文:https://www.blog.pythonlibrary.org/2015/12/28/pydev-of-the-week-fabio-zadrozny/

本周我们欢迎法比奥·扎德罗兹尼(@法比奥夫兹)成为我们本周的 PyDev。他是 PyDev 项目的幕后推手,这是一个用于 Eclipse 的 Python IDE。法比奥还参与了许多其他项目,如果你查看他的 github 简介,你会发现这一点。让我们花些时间更好地了解他。

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

当然可以...我是一名软件工程师,拥有计算机科学学士学位(2002 年毕业)。我住在巴西的弗洛里亚纳波利斯。除了编程,我真的很喜欢打乒乓球(我十几岁的时候几乎就开始打职业乒乓球了,现在这是一个很好的爱好)。尽管如此,我现在除了工作之外的主要职业是抚养一个 6 个月大和一个 6 岁大的女儿。

你为什么开始使用 Python?

我在 2003 年开始使用 Python,在 http://www.esss.com.br ESSS()从事科学计算项目——当时,我对 Python 的主要不满是没有一个合适的 IDE,所以, 这些年来,我在 PyDev(http://pydev.org)上工作了很长时间,以获得一个我喜欢的工作环境——有点讽刺的是,为了获得一个很棒的 Python 工作环境,我在 Java 上工作了很长时间——尽管我也参与了许多 Python 项目,并且肯定在这里吃了自己的狗粮!

你还知道哪些编程语言,你最喜欢哪一种?

我研究的主要语言是 Python 和 Java——所以,在 Eclipse 中开发像 PyDev 这样的 Python IDE 对我来说很自然😉

除此之外,我已经用 C/C++完成了我的一部分工作,最近我开始用 Javascript 做一些项目(我也尝试过一些其他语言,因为我真的很喜欢尝试新的语言,但这些是我目前使用最多的语言)。

Python 成为了我最喜欢的语言,因为它非常有表现力,并且使程序非常简洁。除了 Python 之外,我要说 Java 获得了第二名,尽管它的优点与 Python 非常不同,并且 ide 等工具发挥了更大的作用,因此,您必须掌握 IDE 才能令人愉快(没有 IDE 编写 Java 代码肯定不会令人愉快,而在 Python 中这是可行的-尽管 IMHO,PyDev 等 IDE 即使在 Python 中也有很大帮助,并且当项目变大时是必不可少的)。

你现在在做什么项目?

嗯,我总是有一大堆令人兴奋的事情要做——目前我正在做:

  • PyDev(http://pydev.org)目前是 Python 的顶级 ide 之一——我每天都在使用它,我已经为它工作了 12 年,通过社区贡献/众筹活动让它继续发展。此外,我对 PyDev 现在的状态非常满意——有很多用户,近年来,随着市场变得更加拥挤,有了更多的选择,我只找到了真正喜欢使用 PyDev/Eclipse 的人(LiClipse 使用户更容易启动和运行)。
  • PyDev。调试器(https://github.com/fabioz/PyDev.Debugger/)是最初只在 PyDev 中的调试器的一个分离,以便它可以在其他 ui 中使用(目前它由 PyDev 和 PyCharm 使用);
  • LiClipse(http://liclipse.com),为 PyDev 提供了一个单机,在 Eclipse 中增加了对多种语言的轻量级支持,使其整体上成为一个好得多的包;
  • PyVmMonitor(http://www.pyvmmonitor.com),Python 可用的最好的剖析和 vm 监控体验;
  • speed tin:https://www.speedtin.com,这是我开始参与的最新项目——它的目标是在性能退化上线之前更容易发现它——或者就 CPython 2.7 而言,希望一些核心提交者能够看看诸如https://www . speed tin . com/reports/1 _ CPython 27 x _ Performance _ Over _ Time之类的东西,并为以前版本上损失的性能提供一些修复😉
  • mu-repo(https://fabioz.github.io/mu-repo/):这是用 Python 制作的一个实用程序,用于处理多个 git 库。
  • 洛基(http://rocky-dem.com),这是一个顶尖的粒子模拟器(模拟器实际上是用 C/C++完成的,在 GPU 中用 CUDA 工作,或者在 CPU 中用 OpenMP 工作,但我主要研究它的后处理能力,这些都是用 Python 完成的)。

如你所见,我从不感到无聊😉

哪些 Python 库是你最喜欢的(核心或第三方)?

如果我必须挑选一个最喜欢的库,我可能会选择 greenlets,这是异步编程的神奇解决方案(我个人认为用它编程比用 asyncio 类的解决方案或基于回调的编程容易得多)。

尽管如此,我真的很喜欢 Python 对 yield/generators 的支持,并且,在核心库中,我认为 collections 和 itertools 非常好,提供了组织和迭代数据结构的简洁方法。

此外,我总是惊讶于 numpy 如何以一种高性能的方式处理大型数组,而 py.test 使测试变得非常简单。

作为一门编程语言,你认为 Python 将何去何从?

嗯,希望 Python 能克服来自 Python 2/3 的破损,重新拥有同页的社区。

我一直对此持否定态度,但最近我认为有更好的迹象表明会选择 Python 3,尽管像 Pyston 这样的东西仍然让我有点担心——也就是说:这是一个全新的 Python 实现,目标是 Python 2——不幸的是,我认为它真正表明了社区仍然是多么的破碎(因为,你知道,移植大型代码库肯定不是有趣的,昂贵的,并且有添加可能难以发现的 bug 的额外风险)。

时间会证明一切,但我真的希望有一天我不用在程序中添加 cruft 来支持 CPython 2 和 3😉

非常感谢!

一周的最后 10 个 PyDevs

  • 马赫什·文基塔查拉姆
  • 弗洛里安·布鲁欣
  • 马克-安德烈·莱姆堡
  • 尼克·科格兰
  • 阿伦·拉文德兰
  • 什么场
  • 布莱恩·施拉德
  • 克雷格·布鲁斯
  • 海梅·费尔南德斯·德尔罗
  • 瑞安·米切尔

本周 PyDev:Facundo Batista

原文:https://www.blog.pythonlibrary.org/2014/10/20/pydev-of-the-week-facundo-batista/

本周我们邀请到了 Facundo Batista(@ Facundo Batista)加入我们。

facundobatista

他是来自阿根廷的 Python 核心开发人员。如果你碰巧会说西班牙语,那么你可能会喜欢他的博客。让我们花点时间了解一下 Facundo 吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是 Python 编程语言的专家。有着超过 8 年的 it 经验,我是这种语言的核心开发者,也是 Python 软件基金会的
成员。此外,因组织 PyCon Argentina 和
阿根廷 Python 社区以及对标准
库的贡献和翻译 Python 文档的工作,获得了
2009 年社区服务奖。

我在阿根廷和其他国家(美国和欧洲)的主要 Python 会议上发表过演讲。总的来说,我在分布式协作体验方面有很强的
经验,参与
FLOSS 开发,与全球各地的人一起工作,超过
10 年。

在 Movistar 和 Ericsson 担任电信工程师,在 Cyclelogic(首席开发人员)和 Canonical
(技术负责人,现任职务)担任
Python 专家。

我也喜欢打网球,有一个一岁大的孩子,他是个可爱的小家伙,喜欢拍照。

你为什么开始使用 Python?

14 年前,当我在 Movistar 工作时,我需要在服务器端处理一些日志。

服务器运行的是 SunOS(!).我知道 C 和其他语言不太适合做这项工作。我学习和使用 Perl 有几个月了,直到我发现 Python 并爱上了它。

你还知道哪些编程语言,你最喜欢哪一种?
我有过使用 COBOL、Clipper、Basic、C、C++、Java
和 Perl 的经验和工作经验(尽管我现在不重新学习就无法使用它们
)。

我最喜欢的当然是 Python😉

你现在在做什么项目?

我正在积极从事三个项目:

  • 这是一种压缩和构建整个维基百科以供离线使用的方法。输出可以是 CD、DVD,或者只是一个 tarball,它可以在 Linux、Mac 或 Windows 上自动运行,不需要安装任何其他东西。它的目标是为那些还没有互联网接入的学校/人们提供信息来源。目前我们只打包了西班牙语维基百科,但我们几乎准备好开始其他语言了
  • Encuentro :这是一个桌面程序,可以从阿根廷公共电视台(这几天真的很牛逼)选择和下载大量的教育纪录片。网站和节目本身都是西班牙语的,因为电视节目只有那种语言。
  • Linkode : Linkode 是有用的 pastebin!这是一种短暂的生活协作空间,一个动态的剪贴板。一些很棒的细节:你可以在任何地方、任何时间、毫不费力地创建链接代码。
    可编辑的文本,不是静态的!
    每个新版本创建一个孩子:你有一棵树
    代码/文本类型自动检测(和着色!)
    永久链接码(但所有者仍然可以删除)
    绝对匿名(除非你登录,这非常简单)
    私有 URL:因为你无法猜测 UUIDs

哪些 Python 库是你最喜欢的(核心或第三方)?

我真的很喜欢 itertools 核心库。当然还有我写的那个十进制的,
;).

关于外部库,我是 Twisted 的粉丝,这些天我用了很多漂亮的库。

你还有什么想说的吗?
感谢采访!


前一周的 PyDevs

  • 本·劳什

PyDev of the Week: Fanilo Andrianasolo

原文:https://www.blog.pythonlibrary.org/2021/12/06/pydev-of-the-week-fanilo-andrianasolo/

This week we welcome Fanilo Andrianasolo (@andfanilo) as our PyDev of the Week! Fanilo is a core developer for several Streamlit extensions and a Community Ambassador for Streamlit itself. He also has several tutorials on Streamlit that you can check out.

Fanilo Andrianasolo

Let's spend some time getting to know Fanilo!

Can you tell us a little about yourself (hobbies, education, etc)

Hello everyone! My name is Fanilo, I've been doing data analysis for around 8 years now, and am currently working as a Data Science & Business Intelligence Advocate / Tech Lead at Worldline.

I graduated from Ecole Centrale Lyon, one of the French "grandes ecoles" where we are taught a broad set of scientific domains, from acoustic engineering to fluid mechanics. I liked most of the tutorials around algorithms and numerical computing, so I decided to take a semester at the University of Queensland in Australia to study software engineering and machine learning. I loved this course abroad so much I decided to make a career out of data analytics (I like to think koalas and surfing also contributed to this enthusiasm).

Aside from work, I play and coach in badminton on a regional competitive level, try to play jazz piano while sipping a cup of tea and am learning video & music production.

Why did you start using Python?

Years ago, our Data Mining stack was gravitating around SAS and R. One of my main activities was converting R code to Spark in Scala for production on a Hadoop cluster. At times it was challenging as you are juggling between two very different paradigms.

I knew there was a Python binding to Spark and I wanted to find an easier bridge between Data Scientists and Software Engineers in the Hadoop ecosystem; so I started rebuilding some of our data mining projects in Python with a senior data scientist colleague.

We both grew very fond of the language! The syntax felt simple and readable, yet we could build powerful and complex data processing pipelines. What struck me the most was the ecosystem: did you know you could "pip install wget" on Windows to have a pseudo-wget command? That day I jokingly messaged my colleague "Python has a library for everything!", and still regularly browse Pypi for niche and useful packages.

What other programming languages do you know and which is your favorite?

I've done my share of Scala during my Apache Spark years, and know my way around Java as it is the predominant language in the company I currently work in. In the JVM space, I'd like to try Kotlin one day, it looks like their community and Data Science ecosystem are growing and the syntax looks nice.

I'm also a fan of building web applications to showcase my works. I don't pretend to be a Frontend engineer, but I can write small Typescript/Vue/React apps. I find the Javascript world has matured a lot those past years and the Typescript compiler ranting about my code has definitely helped.

Favorite language? I've been using Python pretty much everywhere now, from "check the quality of merchant data in our master customer database" to "downloading attachments from your email" processes. I have to thank the book "Automate the Boring Stuff with Python" for opening my eyes to using Python for every daily task. Who knows if Go, Rust, or Julia challenges it someday, and I'd like to add in C++ to build fancy audio processing tools.

What projects are you working on now?

I'm mostly involved with prototyping data-driven features for projects, reviewing and deploying Python code on an online learning project, as well as promoting Business Intelligence and Machine Learning to internal product/engineering teams and external customers.

Outside of work, I started editing and publishing tutorials as slide carousels, as well as short Data Science skits with the hopes to build educational yet entertaining longer videos about Data Analysis later on. I also contribute a lot to the Streamlit community, but we will talk about this in a few questions.

Which Python libraries are your favorite (core or 3rd party)?

I am a big fan of Streamlit (https://streamlit.io/) as it enables me to quickly showcase and share visual data analysis projects. For example, one of my Machine Learning demos involved using a Tensorflow model to recognize live drawings in the same vein as the "Quick, Draw" game (https://quickdraw.withgoogle.com/). I struggled for 5 days with ECharts, Fabric.js, and Tensorflow.js, having to convert Python models to their JS counterpart and agonizing on CSS. Today with Streamlit I think this would take me less than 5 hours to build. Now I pretty much build a CLI and a Streamlit app as interfaces for every data quality and processing app I create at work.

I like using Plotly Express and Altair for interactive plots, and FastAPI/Pydantic are pretty high on my list too. The collections and itertools core libraries have a lot of hidden gems I rediscover now and then.

What are your contributions to Streamlit?

I had never really contributed to any open source project or online community before. A year and a half ago when I first toyed with Streamlit, the forum and core team were still small. I would regularly see the founders Adrien, Amanda, and Thiago, along with some colleagues advise to other users on the 2-month old forum. The tone was very open and friendly, so I decided to help users on the forum too. I became very active there (I almost got the "365 days in a row" award!), so much that I got contacted by the team, became a forum moderator, was later invited as a guest on their chatroom, and participated in multiple beta testings. I am now part of the "Streamlit Creators" program (https://streamlit.io/creators) which is like being a Community Ambassador for Streamlit, and it comes with nice goodies!

Today I am still very involved in the community in different ways:

If you needed to create a full-fledged website with Python, which framework would you use and why?

There are a lot of options nowadays to build a web application in Python, from the top of my head I can think of Streamlit, Dash, Panel, Gradio, Voilà, Django, FastAPI delivering static pages...they all serve different use cases and come with different constraints regarding the mapping between widget and state.

Whenever I need to show off and interact with some data processing or analysis, I will use Streamlit. I love the simplicity of its design and the low barrier of entry, and I believe you can still do very complex tools with it. But I also understand developers who are put off by the "rerun the whole script on every user interaction, put into cache or session state any heavy computation" lifecycle and prefer Dash or Panel for callbacks to define the mapping between user interaction and backend computation, especially for bigger, multipage web apps. To choose between those libraries, I don't usually give recommendations (and there are plenty of articles on the web on this), rather I ask users to test each library, get a feeling of their API, and ask the community if some more advanced tasks you would need to dig into are possible in this framework.

I did not have the opportunity to use Django yet, as my usual ML demos are single-page static apps without authentication, so worst-case scenario I can get by with React and FastAPI. I'm pretty sure Django is here to stay as one of the preferred frameworks for building "full-fledged websites with administration tools" though, whereas Streamlit/Dash/Panel/Gradio/Voilà would tend towards "providing Python users a way to create a web UI for their works".

Is there anything else you’d like to say?

Have fun in what you do, don't be scared to contribute in online communities and build a lot of small and silly projects to improve at first, as consistency beats intensity!

Thanks for doing the interview, Fanilo!

本周 PyDev:费尔南多·多利奥

原文:https://www.blog.pythonlibrary.org/2016/01/11/pydev-of-the-week-fernando-doglio/

本周,我们欢迎费尔南多·多格里奥成为我们的本周 PyDev。虽然 Fernando 使用 Python 的时间不长,但他确实为 Packt Publishing 撰写了《掌握 Python 高性能》一书。如果你想知道 Fernando 最近在做什么,我推荐你看看他的 Github 简介。让我们花些时间去更好地了解他吧!

doglio

能简单介绍一下自己吗(爱好、学历等):

我是一个 32 岁的书呆子,这意味着我喜欢将编程作为一种爱好(我的 Github 账户上有一大堆正在开发的项目,我的脑子里还有很多!)但是我也喜欢看电视(很多!)和阅读科幻小说和幻想小说(有助于不时脱离现实世界),最后,我尽可能多地花时间陪我的妻子和两个孩子。

至于教育,我高中毕业后就开始学习计算机工程,但很快就辍学了。几年后,我做了一个短暂的技术职业(只有 3 年)作为一名软件分析师,这是我所知道的关于我的正规教育的全部内容,其余的我都是从街上(当然是互联网!).

你为什么开始使用 Python?

当我开始接触大数据时,我开始使用 Python。事实上,为了写一些 MapReduce 作业,我更喜欢用 Python 而不是 JAVA 来写(我们不都是这样吗?).从那以后,我从来没有真正使用过它,直到我开始写这本书,这是我学习这门语言的一个很大的借口。

你还知道哪些编程语言,你最喜欢哪一种?
地段!Ruby,PHP,JAVA,Node.js(还有前端 js),C,前阵子有的 C++甚至有的 C#。我可能忘记了一些,但那些是主要的。至于我最喜欢的,目前是 Node.js

你现在在做什么项目?

除了我在 Python 方面的日常工作(我真的不能谈论这个),我最大的副业是www.lookingforpullrequests.com。一个致力于帮助那些开源世界的新来者找到他们的第一个项目的网站,也帮助那些寻求帮助的项目找到他们的第一个项目。现在它是用 PHP 编写的,使用的是我为自己创建的一个旧的 RoR 风格的框架,名为 Makiavelo,但我正试图用 Node.js 和一些花哨的前端技术重新编写它,如 Angular 或 Reach。 你最喜欢哪些 Python 库(核心或第三方)?

我现在真的没有最喜欢的,我还没有机会使用这种语言,也没有机会拥有一个最喜欢的库。

你看 Python 作为编程语言何去何从?

以我的拙见,我认为 Python 在科学界已经很成熟了(例如,我看到我的数据科学家们经常使用它),但我不认为这种语言会很快出现。当你将你的开发者经验(不仅包括语言本身,还包括围绕它的整个社区)与 Web 开发进行比较时,Python 实际上无法与 Node.js 或 Ruby 竞争。我作为一个语言新手的经历充其量是坎坷的,许多维护不善的包、过时的文档和相当糟糕的包管理器导致了糟糕的体验。再说一次,这是我的经验,我确信还有其他来自其他技术/社区的人正遭受着更糟糕的问题(比如 JAVA 世界),他们将 Python 视为一股新鲜空气。

再一次,以我的拙见,在希望这种语言获得其他人目前的大量关注之前,Python 社区还有很多工作要做。

是什么让你决定写一本关于 Python 的书? 嗯,老实说,一本 Python 的书并不是我的第一选择,但是当 PacktPub 的人向我提出要做这本书时,我决定这将是一个摆弄这种语言的好借口,多了解它一点并学习它。

你能告诉我们你在写这本书的时候学到了什么吗?

实际上很多,主要是因为当时我对 Python 的了解有限。但是我也学到了很多关于概要分析的知识,不仅仅是 Python 编程语言。我认为书中的大多数概念也可以很容易地推广到其他技术上。

感谢您接受采访!

本周 PyDev:费尔南多·马萨诺里

原文:https://www.blog.pythonlibrary.org/2021/06/07/pydev-of-the-week-fernando-masanori/

本周我们欢迎 Fernando Masanori(@ fmasanori)成为我们本周的 PyDev!费尔南多是巴西 FATEC 圣若泽多斯坎波斯大学的教授。他是第一个教僵尸编程的巴西 MOOCPython的创造者。你可以在费尔南多的网站或者查看他的 GitHub 简介上看到他还在做什么。

Fernando Masanori

让我们花些时间来更好地了解费尔南多!

你能告诉我们一些关于你自己的事情吗(爱好、教育等)。):
我快乐吗????分享知识?。我做饭????????同跳舞。我喜欢洗碗。我把眼镜放在哪里了?

你为什么开始使用 Python?

为了好玩。

你还知道哪些编程语言,你最喜欢哪一种?

Ruby,Java,C,C ++。Python。

你现在在做什么项目?

分析公开数据,主要针对社会影响问题。

哪些 Python 库是你的最爱(第一方或第三方)?

熊猫,请求。
“蟒蛇换僵尸”是怎么产生的?

我在一个名为《僵尸之轨》的课程中学到了 Ruby。我决定复制这个想法。

作为一名教师,你学到的三课是什么?

非常有耐心。想要学生的好处。质量和纪律。

你还想说点什么吗?

分享知识会带来很多快乐。没有什么比用你的一生为他人做好事更好的了。

Thanks for doing the interview, Fernando!

本周 PyDev:Florian Bruhin

原文:https://www.blog.pythonlibrary.org/2015/12/14/pydev-of-the-week-florian-bruhin/

本周,我们欢迎 Florian Bruhin 成为我们本周的 PyDev。让我们花些时间来了解一下我们的同胞皮托尼斯塔吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我叫 Florian Bruhin,今年 22.9 岁,住在瑞士。

我是一名电子工程师(尽管讽刺的是,我大部分时间都在编写运行在 PC 上的 Python),并计划明年开始学习计算机科学。

我的主要爱好是 python 项目,它比我想象的要大一点😉

除此之外,我喜欢游泳,也喜欢在火车上呆相当长的时间。我不确定这是一种爱好还是必需品😉

你为什么开始使用 Python?

早在 2011 年,我就有了修改一台电子打字机的想法,以输出推特和其他与场景相关的俏皮话。当时我知道(嵌入式)C、QBasic 和 bash,并且已经在很多事情上滥用了 bash,而它肯定不是最好的工具(比如编写 IRC 机器人)。

我意识到我真的不想浏览这些语言的网站,所以我必须学习一种更好的语言。我无法在 Ruby 和 Python 之间做出选择,所以我最终花了几周时间分别学习了两者的基础知识。

尽管 Ruby 有这个很棒的漫画教程,里面有可爱的狐狸,但我最终还是决定用 Python。

你还知道哪些编程语言,你最喜欢哪一种?

我知道很多 C 和 Bash,一些 C++和 Ruby,可能还有一些基本的,尽管我已经很多年没用过它了(我不介意!).

Python 和 C 是我的最爱,分别是高级和嵌入式的东西。

我目前正在学习 Javascript(因为我需要它,而不是因为我喜欢),我想探索 Haskell、Rust 和 Go,但到目前为止还没有时间这样做。

你现在在做什么项目?

qutebrowser 是我近 2 年以来的主要项目。我启动它是因为我找不到一个好的类似 vim 的浏览器,而且我可能不会很快停止。

我也不时为 pytest 和它的插件做贡献。

我也想为 pylint 做更多贡献,但是我主要贡献的是问题而不是代码,因为不幸的是,我的时间是有限的。

哪些 Python 库是你最喜欢的(核心或第三方)?
我非常喜欢上面提到的项目。我只能推荐任何项目使用 pytest 和 pylint。我想我可以添加一些测试相关的工具,比如 toxcoverage.py假设

我对 Qt 和 PyQt 又爱又恨。我希望在 Qt 绑定之上有一个更 pythonic 化的 API,不幸的是 PyQt 的开发过程并不是很开放。

我喜欢像请求烧瓶这样的项目的 API 和代码,尽管我自己并不经常使用它们。

你还有什么想说的吗?

趁还来得及,多写些测试吧!😉

谢谢!

一周的最后 10 个 PyDevs

本周 PyDev:Florian Dahlitz

原文:https://www.blog.pythonlibrary.org/2020/06/29/pydev-of-the-week-florian-dahlitz/

本周,我们欢迎 Florian Dahlitz(@ DahlitzF)成为我们本周的 PyDev!Florian 是 CPython 编程语言和 PyTest 框架的贡献者。他也是真实巨蟒的贡献者。你可以查看弗洛里安的个人博客或者获取他的时事通讯来了解他的最新消息。

让我们花些时间去了解弗洛里安吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我叫 Florian,我在德国学习应用计算机科学。我目前正在写我的学士论文,重点是自然语言处理。在我的空闲时间里,我尽可能多地编写代码,写关于我发现或学到的东西的博客帖子,并且我做了很多运动!

你为什么开始使用 Python?

我从 2015 年 1 月开始我的编程之旅,学习 PHP,HTML,CSS,Javascript。然而,我最终的愿望是实现 web 之外的东西。这就是为什么我向自己介绍了 C,但不知何故最终大部分代码都是用 Java 和 Python 编写的。

Python 是一门非常漂亮的语言,为初学者提供了一个简单的起点。然而,你可以自由地增加复杂性,甚至在其上建立大型基础设施(看看网飞、YouTube 和 Instagram 就知道了)。

Python 生态系统中的人们非常友好,和他们一起工作非常有趣。这就是为什么我最终把大部分时间花在了 Python 生态系统上。

你还知道哪些编程语言,你最喜欢哪一种?
正如我已经提到的,我从用 PHP、HTML、CSS 和 Javascript 编码开始,最后学习 C、Java 和 Python。虽然我在做一些需要编写 Java 代码的项目,但我主要是在使用 Python,这也是我最喜欢的编程语言——到目前为止!

你现在在做什么项目?

我花了大部分时间自学新概念,并就此写文章,以便在这个旅程中带着其他人。此外,我开始为开源项目做越来越多的贡献。目前,我正在深入研究 CPython 和 pytest。

哪些 Python 库是你最喜欢的(核心或第三方)?

这个问题很难回答!事实上,Python 标准库提供了一堆有用的、棒极了的包和模块。没有明确的最爱。然而,我尽可能坚持使用标准库,不安装第三方包。

你为什么决定向 CPython 和 Pytest 投稿?

CPython 是一个非常棒的开源项目,有非常善良和乐于助人的人。当我想学习更多关于 Python 的知识并为开源项目做出更多贡献时,有什么比贡献 Python 本身更好的起点呢?

虽然 Python 是一个很好的贡献点,但是许多开放的问题需要对之前应该学习的某些概念有深入的理解。这就是为什么我在寻找另一个我可以参与的项目。由于 Pytest 是 Python 测试的事实上的标准,测试总是一件好事,所以我看了一下他们的问题跟踪器和源代码。Pytest 的核心开发人员也是很好的人,所以我想给他们一些时间来创建和维护这样一个好的框架。

你最喜欢 Pytest 的什么功能?

我最喜欢 Pytest 的一点是它的设置相当简单。在过去的两年里,我写了很多 Java 测试,其中包括一堆设置和样板代码。尽管 Python 的 unittest 模块比 Java 测试需要更少的代码,但在我看来,使用 Pytest 编写测试要容易得多,因为你只需要利用 Python 的内置 assert 语句。那是相当漂亮的!

你是怎么和真 Python 扯上关系的?

这个问题很有意思!当时,我不仅对 Python 非常感兴趣,而且对 Docker 也非常感兴趣。在阅读了大量关于 Docker 的内容,在工作中使用它,并教授了一堂关于 Docker 基础知识的课之后,我开始阅读 Real Python 的 Docker 相关文章。我注意到其中很多都已经过时了,所以我联系了丹,告诉他这件事,并让他更新一下。这导致了更多真正的 Python 贡献,为各种视频教程添加了描述,并更新了“Flask by Example”系列。

你还有什么想说的吗?

如果人们想知道我在做什么,他们可以看看我的博客或者订阅我的时事通讯。我在推特上也很活跃。因此,如果有人有问题,有他们想了解更多的话题,或者只是想聊聊 Python 和编程,随时欢迎他们联系我!

弗洛里安,谢谢你接受采访!

本周 PyDev:弗兰克·瓦尔卡塞尔

原文:https://www.blog.pythonlibrary.org/2020/10/05/pydev-of-the-week-frank-valcarcel/

本周我们欢迎 Frank Valcarcel(@ fmdfrank)成为我们的本周 PyDev!他是 Cuttlesoft 的联合创始人。如果你想了解 Frank 正在做的项目,请直接访问 Github

让我们花些时间来了解一下 Frank 吧!

 Frank Valcarcel

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是佛罗里达州人,但我现在住在科罗拉多州丹佛市,大约 4 年前我公司的总部搬到了这里。我们来自佛罗里达州的塔拉哈西,我在那里的佛罗里达州立大学上学,并在名为 Domi Station 的社区加速器中创办了我们的公司。

我有点像工作狂,所以我不太喜欢业余爱好,但是当我有时间的时候,我喜欢阅读、骑自行车、钓鱼、徒步旅行和摄影。

我也喜欢旅行,但疫情让我无法确定是否会回到那里。

你为什么开始使用 Python?

实际上,我是在 Udacity 的第一批在线课程中开始学习 Python 的。我刚刚完成了我在大学的第一门编程课程(一门关于用 C++进行游戏开发的大二选修课),想为即将到来的课程做进一步的准备。

Udacity 课程教授了一些 CS 基础知识,许多测验都是用 Python 编写的。该课程的顶点项目之一是实现谷歌初始 PageRank 算法的简化版本和网络爬虫。这可能是在 beautifulsoup 被创造出来之前,所以这个任务绝对是一个挑战,但也很有趣。

你还知道哪些编程语言,你最喜欢哪一种?

我从互联网浏览器时代的 JavaScript 开始,从那以后一直为 web 开发。我在大学里学过 C/C++,但后来再也没碰过它们。我用 Go 和 Java 编写过一些琐碎的程序,但是我认为真正精通的语言只有 C#、Ruby 和 PHP。

Ruby 可能是我第二喜欢的语言,仅次于 Python。我真的很喜欢 Ruby 的表现力。

我希望有一天能学会长生不老药。

你现在在做什么项目?

我刚刚完成了一个相当复杂的后端项目,涉及 Django、Celery 和 Google 的 Firestore。我不经常担任工程师,因为我主要负责公司的日常运营,所以这对我来说是一个有趣的变化。

哪些 Python 库是你最喜欢的(核心或第三方)?

我非常喜欢 Flask,甚至为它编写了一些包,但是现在我已经被 Django 吸引了,因为它的业务涉及了更多的企业级项目。

我爱朱庇特!这是我最近常用的原型制作工具。

spaCy 和 Prodigy 是来自 Explosion 团队的两个令人印象深刻的 NLP 和 AI 开发工具。

其他著名的最爱:

  • 黑色
  • pytest
  • 熊猫
  • 诗意
  • VCR . py(Ruby 的 VCR 库的一个端口)记录/回放 HTTP 请求进行测试
  • 箭头
  • “通过模仿日期时间模块,允许您的 Python 测试穿越时间”
  • vscode-python(从技术上来说不是 python,但是它应该在这个列表中)

你是如何组织 Python 活动的,比如 PyColorado 或 Boulder Python?

我从佛罗里达开始。在我的第一次 PyCon(蒙特利尔 2015)后,我回到家,受到启发,在塔拉哈西成立了一个 Python 用户组。已经有的用户组。Net 和 Java(主要由公共部门的开发人员使用)。这很有趣,教会了我们很多关于如何培养社区的知识,但我们最终把它交给了新的领导,并继续作为赞助商。

当我们搬到科罗拉多时,我们很幸运地加入了已建立的团体。这使得在当地观众面前建立关系网、招募和练习会议演讲变得容易。

当伊恩·道格拉斯宣布他们正在寻找新的组织者时,我正在博尔德·皮森做一个演讲,所以我自告奋勇。我就是这样认识了斯科特·维塔莱和佐伊·法默,他们将继续和我一起计划和组织 PyColorado。

PyColorado 只是我们都有的一个想法。我去了很多地区会议,不能理解为什么科罗拉多没有自己的!这是一个非常美丽的州,这里有很多 Python 用户。所以我们给了自己几年的时间来完成它,招募了一些我们知道的最好的组织者,然后开始工作。

这对我来说仍然是最高的成就,我希望有一天我们能够再举办一次。

你能分享一下你的公司 Cuttlesoft 成立的背景吗?

在 FSU 的第一年后,我从课程和实习中积累了足够的经验,为一家全国性咨询公司找到了第一份合同工程师的工作。

我在那份工作上呆了大约一年,结束时我发现我喜欢咨询工作,但不喜欢我现在工作的公司。我认为 Gerber 对 E-Myth 的解释总结了发生在我身上的事情,因为我清楚地记得我告诉一位同事“我可以做得更好”的那一刻。

接下来的一年,我为初创公司做自由职业者,甚至帮助建立了一个团队,在福利管理行业创办了一家新公司。在这段时间里,我一直梦想着经营一家软件咨询公司。在乔治亚理工学院的一次周末黑客马拉松后,我终于成功说服了艾米丽和我一起做生意,于是就这样 Cuttlesoft 成立了。

你还有什么想说的吗?

是的,两件事。

  1. 如果可以的话,请向 PSF 捐款。或者考虑成为赞助商。这些捐赠支持了世界各地的伟大计划,并有助于支持我们的全球 Python 社区。
  2. 对维护者友好,支持,最重要的是耐心。这是一般的建议,但感觉很重要。每个人都在某种程度上受到疫情的影响,对大多数人来说,生活可能充满了新的和意想不到的挑战。

我鼓励每个人都练习换位思考,如果你想了解更多关于开源维护者面临的困境,我有两个建议给你:

  1. 阅读 Nadia Eghbal 的书在公众中工作:开源软件的制作和维护
  2. 观看 Brett Cannon 关于设定开源参与期望的演讲

这一点对我来说切中要害,感觉就像是我在互联网上不断与陌生人进行的对话。我们不应该需要在开源中倡导公民话语。

弗兰克,谢谢你接受采访!

本周 PyDev:弗兰克·维埃拉

原文:https://www.blog.pythonlibrary.org/2018/11/12/pydev-of-the-week-frank-vieira/

本周,我们欢迎弗兰克·维埃拉成为本周的 PyDev。Frank 是 Vibora 包的创造者,这是一个“快速、异步和优雅的 Python web 框架”你可以在他的 Github 简介上看到 Frank 还在忙些什么。让我们花一些时间来更好地了解 Frank!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我叫弗兰克·维埃拉,今年 25 岁,是一名非常熟练的 Dota 玩家(lol)和充满激情的软件开发人员。在我的空闲时间,我喜欢玩一些游戏和做一些业余爱好的项目,比如使用 Unity 的小游戏或者像 Vibora 这样的开源项目。

你为什么开始使用 Python?

我在一家安全公司找到了一份工作,该公司的所有工作都使用 Python,我几乎立刻就爱上了它。

你还知道哪些编程语言,你最喜欢哪一种?

Javascript / Go / C#...我最喜欢的是 Python,尽管我不是动态类型的狂热爱好者,Python 的部署也很痛苦(docker 在这方面很棒)

你现在在做什么项目?

我正在对 Vibora 和一款手机游戏进行彻底的重构。希望我能完成这两项🙂

VI Bora 包的起源故事是什么?

我在工作中使用一些 Redis 支持的 API(使用 Flask/Gunicorn ),经过一些基准测试后,我发现 Redis 几乎处于休眠状态,而几台机器的 CPU 负载为 100%...经过一些研究,我发现 Sanic/Japronto 可以在服务器上带来一些原始的性能,但他们仍然是年轻的项目,我对他们的方向不满意...所以现在,Vibora 仍处于早期阶段,缺少很多东西,离生产就绪还很远,但我希望我能尽快赶上🙂

为什么人们要用它而不是 Flask 或 Django?

首先,Vibora 是一个正在进行的工作。不要用它替换你的 Flask/Django 应用。在我有机会让它稳定下来之前,这个项目在 Reddit 上爆炸了...我正在努力尽快得到一个稳定的版本,敬请期待🙂
但是要回答你的问题:Flask/Django 是同步框架,在处理 IO 挑战时还不错但远非最优(以我的拙见)。Vibora 还关注性能,但这并不是这些框架的重点。

哪些 Python 库是你最喜欢的(核心或第三方)?

肯定的请求。尽管我对它有一些批评,但我认为它以一种好的方式影响了绝大多数的 HTTP 库(在许多不同的编程语言中)。

弗兰克,谢谢你接受采访!

本周PyDev:弗兰克·怀尔斯

原文:https://www.blog.pythonlibrary.org/2019/08/26/pydev-of-the-week-frank-wiles/

本周,我们欢迎弗兰克·怀尔斯( @fwiles )成为我们本周的PyDev!Frank是Revolution Systems的总裁和创始人,也是Django软件基金会的主席。如果你想了解Frank,你应该花点时间看看他的网站或者他的 Github账户。现在,让我们花些时间去更好地了解他!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我在堪萨斯州的一个小镇长大,大约有一万人,所以计算机在我生命的早期就成为了我的爱好。除此之外,我真的很喜欢烹饪,当我有时间的时候,我会拍些照片,但是这些天我主要是给孩子们拍照。

我在堪萨斯大学学习了一段时间,主修计算机科学,然后转行经商,最终在网络繁荣时期辍学。

Frank Wiles

你为什么开始使用Python?

我在2008年开始使用Python,它很快成为我的主要语言。当时我和雅各布·卡普兰-莫斯共用一间办公室,我们的朋友中野律纪知道这一点,并希望我写一篇文章,部分是对他最近创建的Django软件基金会的采访,部分是对Django的快速介绍。

我说当然,然后意识到,废话现在我必须学习Python和Django。

我很快意识到Django比我现在使用的要好,我发现Python也非常棒。事后看来,我真的很高兴自己被轻轻地推到了这个方向。

你实际上仍然可以在网上找到文章的一个稍有破损的版本。

你还知道哪些编程语言,你最喜欢哪一种?

大约十年来,我主要是一个Perl人,甚至在2001年和一个朋友一起写了一本关于Perl的书,但是我至少有十年没有使用它了。

我懂的C/C++够多了,去危险。我想在某个时候在Go中做一个更大的项目,但是还没有找到时间。我也在半心半意地自学Rust,但是还没有认真地做过什么。但据我所知,它在我未来的锦囊妙计中有一席之地。

Python显然是我的最爱,也是我总是首先使用的工具。

你现在在做什么项目?

几个月前,我换了一台新的笔记本电脑,并尝试在Docker容器和完全12因素中做几乎所有的事情,这有一个我通常不会公开发布的事情的副作用。所以我比以前更多地尝试“公开”编码。

我目前正在改进REVSYS的一些开源项目的文档,比如django-test-plus。

对于工作,我主要在一家大型金融服务公司的财务管理/改善应用程序的后端工作。这是一个微服务后端,当然使用了Django,并在AWS中为它设置了一个良好的Kubernetes环境。

哪些Python库是你最喜欢的(核心或第三方)?

哦,哇,很难确定我最喜欢的,因为我在各种工作项目中使用过很多很棒的,但我认为读者可能会发现有用但可能不知道的是:

你是如何成为Django的核心开发者的?

我其实不是Django的核心开发者,但这是一个常见的错误。在担任DSF总裁和REVSYS主要专注于Django Consulting之间,很容易犯错误。虽然这些年来我为Django贡献了一些补丁,但实际上我在Django上的工作还没有我在里面和周围的工作多。

然而,这个问题确实让我提到,我们Django社区实际上正在解散核心团队,并转向一个更加开放和透明的治理流程。你可以在这里阅读更多此【DEP】(https://github . com/django/deps/blob/master/draft/0010-dissolve-core . rst)。

Django让你兴奋的是什么?

虽然我发现Django的最新版本是日常工作的乐趣,但我对Andrew Godwin最近提出的让Django完全异步的提议感到兴奋。

REVSYS越来越多的应用程序需要实时组件,channels project和async在帮助实现这一点方面大有作为。

Django软件基金会正在进行哪些项目?

我们目前正在改造和自动化我们的会员流程,使其更容易成为会员,也更容易让董事会管理和跟踪流程。目前的流程有点奇怪,我们遇到过一些情况,因为大部分是通过电子邮件完成的,所以正在进行的会员申请被遗漏了。

除此之外,我们总是有我们通常的筹资需求,我认为明年的重点将是筹集足够的资金来帮助转移到async。

弗兰克,谢谢你接受采访!

本周 PyDev:froilán Irizarry Rivera

原文:https://www.blog.pythonlibrary.org/2021/01/04/pydev-of-the-week-froilan-irizarry-rivera/

本周,我们欢迎 froilán Irizarry Rivera(@ froidotdev)成为我们本周的 PyDev!弗罗兰在 Twitch 上做代码直播。弗罗兰帮助建立了全栈骑士,这是一个每月聚会和更多。你也可以在 Github 上看到他在做什么。

让我们花些时间来更好地了解 Froilán!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)?

我来自波多黎各,我在那里上学并开始了我的职业生涯。我现在住在 DC 的华盛顿,在 GitHub 工作。我搬到了华盛顿的 DC,加入了美国数字服务公司 T1,然后我去了 Code.gov 的 T2 T3。所以开始的“我们只会在这里呆两年”变成了四年。

我也在市政技术和社区建设领域工作了几年,负责波多黎各的代码(目前由我负责)、DC 的代码,以及家乡的通宵达旦

除了工作之外,我真的喜欢阅读和写作。我真的很喜欢在城市中漫步,尤其是如果我可以买一杯咖啡,坐在水边思考。视频游戏和几乎所有的动画对我来说也是很重要的。

我为什么开始用 Python?

我的妻子是 Python 开发者,她向我介绍了这种语言。有一次,我决定单干,我厌倦了 Java,所以我在 PR 建立了一个小的 Python 开发商店,叫做黑仔兔子实验室(是的,杀手兔子????).一旦我开始使用 Python,就很难停下来!

你还知道哪些编程语言,你最喜欢哪一种?

Javascript/Typescript 和 Go 是我的其他语言。

我仍在学习围棋,虽然用得不多,但我喜欢使用它。

Javascript 最初是一种必需品,但随着时间的推移,我真的开始喜欢它了。尤其是从 ES6 开始增加了语言。最近,我喜欢在代码中使用类型,所以我开始大量使用 Typescript,而不是普通的 JS。

你现在在做什么项目?

我的大部分时间都被波多黎各的代码占用了,所以我没有在兼职项目上花太多时间。也就是说,我目前正在直播一个名为 github-project-migrator 的项目的一些开发。我已经休息了一段时间,并且已经开始用姜戈和 DRF 做一些我个人项目的 TODOs。和我的一个朋友一起,我们将开始着手制作 tesoro.pr ,这是一个针对波多黎各西班牙人的字典和语言资源的集合。在 Code for Puerto Rico,我与 contratospr-api 有一些 TODOs,这是一个索引政府合同数据并试图帮助人们调查和搜索它们的项目。

你知道,写完这些之后,我想我真的不会花太多时间休息了

哪些 Python 库是你最喜欢的(核心或第三方)?

从核心 Python 来说,我真的很喜欢 CSV 库。我不得不处理这种格式的数据,所以我觉得这个库很棒。

至于第三方库,我非常喜欢 Django Rest 框架。

为什么你要直播而不是写关于代码的博客?这种方法有什么利弊吗?

我发现直播比博客更个人化。我在那里向任何想看的人展示我是如何思考和工作的。

我开始用西班牙语直播的一个重要原因是用这种语言创作科技内容。latinx 开发人员“制造”技术并展示如何在项目中工作的需求很大,但例子很少。有大量的“入门”和类似教程的内容,但是在我看来,在开发过程中,如何从事一个项目以及如何做决策是缺失的。

我过去常常写博客,但是我发现写博客很难,而且内容可能会很快变得陈旧。在这一点上,我也刚刚开始使用直播来完成项目

播客 Fullstack Knights 是如何产生的?

有一天,我和一些朋友坐下来,开始头脑风暴,讨论我们认为我们的技术社区需要什么,我们进入了更高层次的会谈。我们创建了 Fullstack Nights meetup 来实现这一目标。几年后,创始人们离开了,但我们仍然想谈论技术,谈论一些无聊的事情,所以我们创建了 Fullstack Nights 播客,作为仍在运行的 meetup 的伴侣。

你还有什么想说的吗?

我想说谢谢你给我这个机会和这些书,它们很棒。我想我会对每个人说,保重,注意安全,过一个愉快的远离社交的假期。

感谢你接受采访,弗罗兰!

本周 PyDev:Gabriel Pettier

原文:https://www.blog.pythonlibrary.org/2015/05/25/pydev-of-the-week-gabriel-pettier/

本周,我们欢迎 Gabriel Pettier(@ t hirtman)成为我们本周的 PyDev。他是 Kivy 项目的核心开发者,他写了一篇非常有趣的博客。让我们花些时间来更好地了解我们的同胞 Pythonista!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名居住在法国巴黎的开发人员,我在网上被称为 tshirtman,我在法国 Valence 的一所技术学校学习了两年的计算机科学,然后在这个行业工作了两年后,我决定回到学校继续学习剩下的三年,以获得计算机科学工程学位。回到学校是一次相当冒险的经历,但由于很多原因,它是值得的。我有各种各样的爱好,画画,弹吉他,阅读,很多,这些天主要是电脑,当我设法把头伸出屏幕时就看书(然后这些天我仍然在屏幕上阅读,电子书很棒)。如你所见,漫谈也是我的爱好之一。

你为什么开始使用 Python?

当我第一年学习计算机科学的时候,我通过一本介绍 python 基础知识的小书发现了 python,当时我们学习 Ada、C 和其他东西。我也做了很多年的 BASIC 语言,那时也用 OpenGL 做了一些 C 语言,但我从未见过像 Python 这样的东西。我很快就爱上了它非常简洁的语法,“缩进就是语法”的事情让我觉得这是一个天才的举动,我仍然对很少有语言遵循这一点感到敬畏。此外,简单和不引人注目是我从 Basic 开始就没有见过的,这里没有随之而来的缺乏可维护性和缺乏功能的高昂代价。

你还知道哪些编程语言,你最喜欢哪一种?

和大多数计算机科学家一样,我很早就遇到了 C,并做了相当多的工作,但我主要了解到,在它简单的外表背后,它是一只复杂的野兽,随时准备在你移开目光的那一刻攻击你。我使用了一些 Java,一些 C++,当然还有 web 开发的常用工具,html/CSS/js——如果你问我的话,这是一组非常奇怪的技术——我看了 Haskell,我发现它非常有趣,但是我没有时间真正深入研究它,并对它做任何认真的事情,尽管它与 python 有相似之处,并且似乎比大多数其他可用技术更好地解决了 Python 的一些实际问题(类型检查、并行性)。Python 当然是我最喜欢的语言,这是理所当然的🙂(如果不是,我很确定 haskell 会是我的最爱)。

你现在在做什么项目?

我正在使用我们公司开发的产品进行多点触控桌面上的对象交互,目前正在开发音乐交互和数据可视化的场景,UX 在设计人们如何与增强对象交互方面做了大量工作,同时也面临非常好的技术挑战,使我们的解决方案灵活并可由第三方扩展。Python 通过让复杂变得简单,让不可能变得可能,提供了巨大的帮助。

哪些 Python 库是你最喜欢的(核心或第三方)?

作为一名 kivy core 开发人员,我有点偏见,我的大部分工作都是基于它的,能够如此快速地用它定制设计界面,享受可移植性和破解我需要的任何功能,这是一种真正的快乐,因为它是如此开放的设计。

除此之外,我可以说我喜欢 Flask,当我需要创建一个简单的网站时,它是我的首选框架,多年来,它已经成为一个非常成熟和功能齐全的框架,尽管我没有做很多 web 开发,但我有信心在几个小时而不是几天内完成我的表单并上线。

你还有什么想说的吗?

我想鼓励人们投身于开源项目,为你正在使用和喜爱的工具助一臂之力,将美好的体验转变为现实生活中的冒险,你会学到很多东西,无论是技术方面还是人性方面,这将给你带来难以置信的机会,你会与他人分享一些精彩的东西。哦,还有看书,很多书:)。

非常感谢!

“我一整年都穿 t 恤,”努夫说🙂

为神秘语言爱好者准备的一个小游戏,寻找神秘语言!

唉,我差点忘了我懂一些 PHP,但是和 C 一样(或者比 C 更糟),我知道的足够多,我不想太多——或者根本不想——用它,最好,我很乐意忘记我所知道的关于它的一切。

为什么,是的,看看http://www.tangibledisplay.com/en/#solutions

是的,公制的,没有其他种类,真的。

一周的最后 10 个 PyDevs

本周 PyDev:Gaetan Delannay

原文:https://www.blog.pythonlibrary.org/2020/04/27/pydev-of-the-week-gaetan-delannay/

本周我们欢迎 Gaetan Delannay 成为我们的本周 PyDev!盖坦是 Appy、Python 网络框架和 T2 企业家的创造者。

让我们花些时间更好地了解盖坦吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

对我来说,谈论我自己是很不寻常的,但是让我们试一试。大约 11 年前,我创办了一家名为 GeezTeem 的个人公司。我 90%的时间都在用 Python 编程,为比利时的公众和非营利部门开发和维护大约十个软件产品。作为一个偏执狂,所有这些东西都是用 Appy 制作的,这是我自己的(GPL)框架,用于用 Python 构建 web 应用程序。

被开源哲学所说服,我的大部分代码都是开源的,在 GPL 许可下发布。在用自己的翅膀飞行之前,我已经在各种公司、公共实体或研究中心工作了 10 年,作为开发人员、测试人员、研究人员、质量工程师或软件架构师,在 3D 图形、需求工程、质子治疗控制软件或管理信息系统等各种领域学习和试验软件工程的所有方面。

起点是比利时那慕尔大学的软件工程硕士学位。除了编码,写作(法语),打网球和作曲是我最喜欢的活动。在以 Null ID 的名字发布了我的第一张专辑后,有人告诉我,我可能受到了精神影响。

你为什么开始使用 Python?

20 多年前,在我的第一份工作中,一位新任命的质量经理(我的老板)向我解释了他对软件质量的创新方法:用 Python 开发工具和脚本,以促进软件开发项目。这就是我学习 Python 的方法。我开始尝试这种语言,从小脚本开始,最终创建了一个复杂的工具,生成存根和框架,用于互连用 C++编写的软件前端和用 Ada 编写的后端。

你还知道哪些编程语言,你最喜欢哪一种?

我有 C,C++,Ada,Java,Python 和 web 技术(HTML / CSS / Javascript)的经验。Python 显然是我的最爱。对我来说,它是最优雅、简洁和强大的编程语言。它允许我独自构建大型、复杂但实用的面向对象软件产品。

你现在在做什么项目?

作为 GeezTeem,我所有的项目都是基于网络的管理系统。几乎有 40 个公共行政部门(包括一个议会和两个政府)使用 HubSessions 来准备、讨论和发布他们的官方决定。https://be-coag.be/是血友病患者的在线工具。PlanetKids 允许父母为他们的孩子注册参加由比利时两个城市的所有协会提议的夏季活动。Plat-com 是一个合作平台,由几十个从事儿童保育工作的协会使用。

哪些 Python 库是你最喜欢的(核心或第三方)?

多年来,我一直被 Zope 对象数据库 ZODB T1 所吸引,它对开发者来说是完全透明的。pyUNO,允许在服务器模式下控制 LibreOffice,也是必须的。在核心 Python 库中,我最近发现了 pathlib,它极大地提高了基于路径的操作的可读性。

Appy 项目是如何产生的?

15 年前,我从事一个大型 Java 项目,部署了几台 J2EE 链式服务器。我被要求使用 XSL-FO 转换开发 PDF 导出。我花了将近 10 个人工日来制作第一个!一场噩梦。我开始考虑使用 Python 和 LibreOffice 以更有效的方式完成这些任务。POD (Python OpenDocument),Appy 最著名的部分诞生了,最初是在火车上手写在纸上的。Appy.pod 让我将 10 个人工日减少到 10 个...分钟。后来,Appy 成长起来,成为构建 web 应用程序的完整框架。最初基于 Zope 和 Plone,当前版本(0.9)仍然对 Zope 有依赖性。Appy 1.0 正在积极开发中,将在几周内准备就绪。它已经成为一个独立的、全功能的 web 框架(重新)用 Python 3 编写,使用 ZODB 作为数据库(独立于 Zope 打包)。

您在这个产品包中克服了哪些挑战?

构建应用服务器的想法是一个巨大而疯狂的任务。我花了几年时间来开发它,主要是在晚上和周末,但现在,两年以来,它的部分资金来自我的客户。Appy 1 是我关于软件开发的知识和经验的总结和综合。我很高兴能在不久的将来出版它!

你还有什么想说的吗?

Appy 是在 GPL 下发布的,因此是一个污染性的开源许可证。我已经收到了几个在 LGPL 发布 Appy.pod 或者获得商业许可的请求。这两种解决方案都不符合我的开源愿景,但我不想阻止人们使用 Appy.pod。最后,我找到了解决这一困境的方法,并开发了一个商业版的 Appy.pod...功能受限。如果你阅读 Appy 代码,你会发现一个叫做 CommercialError 的异常,它在 Appy 的商业版本中被调用,每次用户试图使用一些高级功能时:

class CommercialError(AppyError):
    '''Raised when some functionality is called from the commercial 
       version but is available only in the free, open source version.'''
    MSG = 'This feature is not available in the commercial version. It is only available in the free, open source (GPL) version of Appy.'
    def __init__(self): AppyError.__init__(self, self.MSG)

在向第一家提出要求的公司提出这一建议后,我再也没有收到他们的任何消息。他们可能认为我疯了。但是从那以后,最近有两家公司,一家在法国,一家在英国,买了我的商业许可证。

盖坦,谢谢你接受采访!

本周的 PyDev:Geir Arne Hjelle

原文:https://www.blog.pythonlibrary.org/2019/06/24/pydev-of-the-week-geir-arne-hjelle/

本周,我们欢迎盖尔·阿恩·Hjelle(@ gahjelle)成为我们本周的 PyDev!盖尔是真正的 Python 的的定期撰稿人。你也可以在 Github 上找到他的一些作品。现在,让我们花点时间来了解一下 Geir!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

当然可以。我在挪威北部一个岛上的美丽村庄长大。我的家人已经搬到了南方,但我仍然经常去北方拜访朋友,享受大自然。我一直喜欢玩数字,所以我很自然地在大学里学习了数学。我在特隆赫姆的挪威科技大学攻读硕士和博士学位。在读博士期间,我还在我最喜欢的大城市巴塞罗那呆了一年。直到今天,我每年都会在巴塞罗那待上一两周。

完成学业后,我在密苏里州的圣路易斯住了三年,从事邮政工作。华盛顿大学博士。后来我搬回了挪威,目前我住在奥斯陆,从事数据科学方面的工作,主要是使用 Python。

我也花了相当多的空闲时间在编程上。我为真正的 Python 编写教程,并帮助 T2 教孩子们如何编写代码。我喜欢在户外。在挪威,冬天有很多滑雪的机会,夏天有很多徒步旅行的机会。此时此刻,我正躺在奥斯陆郊外森林里的吊床上晒太阳。最后,我应该指出,我喜欢和朋友聚在一起玩棋盘游戏。

你为什么开始使用 Python?

有趣的是,实际上我花了很长时间才熟悉 Python。我几乎一生都在做某种编码工作。早在 80 年代,我就在 Commodore 64 上开始学习 BASIC,我认为我最自豪的成就是发现了GOTO是邪恶的。我还记得用魔法线IF PLAYER="Geir Arne" THEN SCORE=SCORE+100破解了我的一个游戏,这在某种程度上证明了了解一些基本编程的力量(以及随之而来的责任)。

我第一次接触 Python 是在一次暑期实习中,当时我和一个非常熟悉 Python 的人一起工作。这就是 Python 1.6,它看起来已经非常强大了。当时我正在处理 Java、C 和 C++,具有讽刺意味的是,Python 的简单性让我感到困惑。没有“main()”方法,它是如何工作的?进口方面到底发生了什么?最后,我回到了我的谨慎代码。

终于在 2012 年左右重新拿起了 Python。当时,我正使用 Matlab 作为建模工具。Matlab 很擅长做它擅长的事情,但我也开始感觉到它的一些局限性。在一次内部黑客马拉松上,我和一位同事想要创建一个工具来自动生成一些报告,我们决定在这个项目中尝试 Python。这一次,它点击得更好。我对我们创建工具的简单快捷印象深刻。在下一次黑客马拉松上,我们做了一个概念验证,展示了如何将 Python 集成到 Matlab 模型管道中。虽然我们得到了高层的一些支持,但不幸的是,这在 PoC 阶段就结束了。

作为 2014 年的新年决心,我挑战自己更好地学习 Python。幸运的是,那一年几件事一起发生了。我开始了一份新工作,在那里我可以使用 Python 作为我的主要语言。我还参加了一些会议,了解了更多关于 Python 社区和生态系统的知识。我学到的越多,对语言设计的印象就越深刻。该语言的核心非常简单和一致,同时非常灵活。与此同时,支持工具和包在过去几年里已经真正成熟了。我看到了一个很大的进步,就在我使用 Python 的这几年里。

你还知道哪些编程语言,你最喜欢哪一种?

在这一点上,Python 显然是我的最爱,也是我需要高效工作时会用到的语言。然而,还有一些其他的语言,我有非常美好的回忆。读书期间,我第一次开始使用 Linux,偶然遇到了 Awk。我拿起了奥莱利的经典 Sed & Awk 书——主要是因为封面上的怪异动物——立刻成了粉丝。Awk 与通过管道将小型专用工具连接在一起的整个 Unix 哲学无缝地合作。最后,我用 Awk 创建了几个小工具,包括我在硕士论文中使用的一个创建分形的小语言。

我对 Scratch 也印象深刻。虽然它可能具有玩具语言的外观,但它支持所有“严肃的”编程概念。我从事儿童编程教学已经有几年了,Scratch 是一个非常棒的平台。孩子们通常在打开网页的 5 分钟内就起床自己编码了。在一个小时内,他们创造了自己的游戏。实际上,我也用 Scratch 做过一些半严肃的项目。然而,我发现的主要限制是没有很好地支持正确的数据结构(我仍然更喜欢用键盘来编码)。

最后,我希望有一天有时间更恰当地学习一门纯函数式语言。我想哲学真的激起了我大脑中数学部分的兴趣。有一个有趣的项目叫做 Coconut ,它在 Python 之上添加了函数式编程语法。另一个我希望有时间了解更多的平台是二郎和它的现代表亲仙丹。可伸缩性和并发特性看起来真的很棒。

你现在在做什么项目?

我最近开始在一家数据科学和机器学习咨询公司工作。在那里,我参与了几个不同的项目,从构建客户分析模型到基于视频的足球建模。之前,我与挪威测绘局合作,在那里我们正在建造一个工具来帮助监测地球是如何在太空中翻滚的。我真的很喜欢以有趣和有用的方式将编程和建模结合起来的项目。

在我的常规工作之外,我正在为我为 Real Python 写的两篇文章做最后的润色:一篇关于导入是如何工作的(回答我自己以前的所有问题),另一篇比较类、上下文管理器和装饰器。今年我很幸运地去了 PyCon US,在那里我做了一个关于使用一种插件保持代码模块化的演讲。我正在润色提供这些插件的 pyplugs 包的文档和一些代码。

哪些 Python 库是你最喜欢的(核心或第三方)?

我非常感谢这些年来为 Python 数据科学堆栈所做的所有努力,我所做的大部分工作在某种程度上都涉及到了 numpy 。这个令人惊叹的库确实是 Python 成为数据科学首选语言的核心。

让我也提一下另一个不太为人所知的库:品脱是一个用于处理单元和物理量的包。它包装了numpy,以便您可以向数组中添加单位,或者您可以使用它直接进行简单的单位转换。你知道一杯药剂师茶大约是 0.14 盎司吗?

>>> import pint
>>> u = pint.UnitRegistry()`

> > > ad = 1 * u .药剂师 _dram
> > > ad.to("盎司")

你是如何开始接触真正的 Python 的?

在某个时候,我偶然看到了丹·巴德的个人博客,非常喜欢他的文章和见解。然后,2018 年初,我听到丹在 Python Bytes 播客上谈论他如何接管真正的 Python 网站,以及他正在寻找贡献者来帮助他编写教程。我觉得再挑战一下自己会很有趣,同时也可以在 Python 社区中认识更多的人,所以我联系了 Dan。

与整个真正的 Python 团队一起工作是一次奇妙的经历。我以前没有太多的写作经验:我写过一些科学文章,也为想学习编程的孩子做过一些教学材料。然而,在团队其他成员的支持下,尤其是我们的编辑乔安娜,我现在对自己的写作更有信心了。此外,我从我的同事和对我们的文章有疑问和见解的读者那里学到了很多。

今年五月,我们有幸加入了 JetBrains 在克利夫兰举行的 PyCon 上的内容创作者展台。很高兴终于见到了我的许多真正的 Python 同事,在那之前我只是通过 Slack 和他们的文章和评论才知道这些。此外,一些读者停下来聊天。我必须承认,其他人阅读我写的东西,甚至觉得它很有用,这让我感到非常谦卑。

我看到你自愿教孩子们编程。你在做这件事的时候学到了什么?

早在 2013 年,一些志愿者聚集在一起,在挪威发起了“lr Kidsa Koding”运动。它的目的是在许多不同的领域教孩子们编程。目前,将编程引入学校的努力进展缓慢,同时也有代码俱乐部和代码营,孩子们可以在校外学习编程。

今天,对于任何想学习编程的人来说,都有很好的工具。在我参与的代码俱乐部中,我们主要使用了 ScratchMicro:Bit 和 Python。教授更专业的工具也很有趣,比如用于音乐编程的 Sonic Pi ,用于动画编程的 Processing ,以及用于在 MineCraft 游戏中创建计算机并对其编程的 ComputerCraft

教孩子(实际上是任何人)编程是一次非常有益的经历。尤其是当事情进展顺利的时候,你看到他们有了新的想法,消灭了一个讨厌的错误,或者仅仅是意识到他们新发现的知识的力量。一些最喜欢的时刻是:

  • 看到一个孩子终于知道如何正确设置电路,他为自己制作了一个 LED 灯而自豪,他在房间里跑来跑去,与每个人击掌,
  • 看着一个 10 岁的孩子站在 200 名专业开发人员面前,告诉他们一个 Micro:Bit 微控制器是如何工作的,以及如何在上面创建自己的指南针应用程序,
  • 有经验的孩子很快就能对潜在的逻辑有实际的理解,并且能够用他们游戏的参数来使游戏变得更难或更有趣。

在教孩子/老师编程时,你面临哪些挑战?

我想教孩子和其他没有接触过任何早期编程的人的主要区别是,我需要强调直觉而不是技术细节。开始时,他们希望看到事情发生,而不是陷入关于变量、类型、指针和对象的长篇大论。有了 Scratch 和 Micro:bit 这样的工具,很容易上手,只需摆弄一下积木,看看会发生什么。

然后在某个时候,孩子们要么不知道如何做他们想做的事情,要么不明白为什么程序没有按照他们期望的方式运行。能够在这一点上增加他们的直觉和理解,是一个非常有趣的教学实践。

你还有什么想说的吗?

我对开源的力量和社区团结起来创造工具和资源使我们成为更好更有效的程序员的能力感到惊叹。我很高兴能为这个不断增长的人才库贡献自己的绵薄之力。我认为像你的采访系列这样的活动很好地展示了社区的多样性,以及每个人如何在适合自己的水平上参与进来。

盖尔,谢谢你接受采访!

本周 PyDev:Georg Brandl

原文:https://www.blog.pythonlibrary.org/2016/06/13/pydev-of-the-week-georg-brandl/

本周,我们欢迎 Georg Brandl ( @birkenfeld )成为我们本周的 PyDev。Georg 是 Python 语言的核心开发人员,已经工作了 10 多年。他也是 Pocoo 团队的一员。通过查看他的 Github 简介,你可以看到哪些项目让他兴奋。让我们花一点时间来了解他更多!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我学的是物理,在博士项目期间,我在一家大型德国研究中心工作,在那里,软件是进行研究的重要部分,外部科学家来这里使用我们的设施进行他们自己的实验。与此同时,我仍然在同一个地方,但我的主要工作是开发那个软件。我们广泛使用 Python,基本上是给我们的客人一个非常漂亮的 Python shell 作为主用户界面。

你为什么开始使用 Python?

高中快结束时,我厌倦了 Windows 和早期的工作,正在寻找新的东西。NET 和 PHP。不知何故,简单和友好的社区非常有吸引力。那是每个人都开始写维基的时候,所以我用 Python 开发了我自己的维基,并得到了一些比我想象的更快的东西。我很快开始为 CPython 项目本身做出贡献,并在大约 10 年前成为一名核心开发人员。

你还知道哪些编程语言,你最喜欢哪一种?

作为一名 CPython 开发人员,我非常了解 C 语言,尽管我常常希望自己没有。这经常是必要的和有用的(特别是因为我在一个高度面向 Unix 的环境中工作。NET 和 Java 代码库少之又少)。Haskell 的情况正好相反:我不久前学习了它,喜欢它的概念和美感,但是从来没有真正在任何地方使用过它。(这可能是一件好事,因为它没有用杂乱的日常细节来破坏美感。)

最近,我对 Rust 产生了兴趣,并爱上了它,因为它结合了 Haskell 的许多美丽的概念和 Python 的实用选择,并且具有每个从事大型 Python 代码库工作的程序员至少时不时梦想的静态类型。它仍然是一门年轻的语言,但我认为它可以很好地补充 Python(仍然是我的最爱)。

你现在在做什么项目?

我现在的开源时间非常有限,但我会努力继续帮助我的项目——主要是 CPython、Sphinx 和 Pygments 的开发。特别是对于 Sphinx 来说,我独自承担了很长一段时间,我很高兴几年来我们有一个活跃的维护团队。

哪些 Python 库是你最喜欢的(核心或第三方)?

我不得不说我热爱整个科学生态系统,我想特别强调 numpy 这些人正在做惊人的工作,而 numpy 经常被认为是理所当然的。还有 Matplotlib,与其说是因为它的可见性,不如说是因为它在我的科学生涯中对我有着不可估量的价值。最后,我喜欢 pytest 和它的插件,它们可以快速地编写测试套件,而且非常简单。

你还有什么想说的吗?

可能像许多其他核心开发人员一样,我想邀请每个人看看他们是否对“回馈”感兴趣(真的,在为 Python 做贡献的同时学到了很多)。请访问核心导师列表或 IRC,我们将很高兴与您聊天和合作!当我们在今年晚些时候切换到 Git/Github 时,事情会变得更加简单🙂

感谢您接受采访!

本周 PyDev:詹保罗·罗多拉

原文:https://www.blog.pythonlibrary.org/2017/10/09/pydev-of-the-week-giampaolo-rodola/

本周我们欢迎詹保罗·罗多拉(@格罗多拉)成为我们的本周 PyDev!詹保罗是 psutil 项目以及 pyftpdlibpysendfile 包的创建者和维护者。他还是 ftplib、asyncore 和 asynchat stdlib 模块的核心开发人员和维护人员。你可以在 Github 上查看他的一些作品或者查看他的博客!让我们花些时间来更好地了解我们的同胞皮达尼斯塔!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一个远程工作的 Python 自由职业者。我是意大利人,目前在布拉格工作。我的主要爱好是编程,也喜欢弹吉他、唱歌和天文。我也喜欢旅行,在过去的 3.5 年里,我一直处于半游牧状态。因此,我也可以同时工作和旅行,尽管如果我得到一个长期的演出,我更喜欢留在布拉格。我没有受过正规的 IT 教育。我学编程是因为好玩,结果不小心用它付了房租。

你为什么开始使用 Python?

最初(21 世纪初),我对黑客和地下黑客场景着迷。我记得我曾经阅读大量的文章和黑客电子杂志。我对网络特别感兴趣,并对可以通过网络利用的漏洞着迷。但我有一个巨大的限制:我不懂任何编程语言,那些文章通常包含用 c 编写的代码示例和漏洞。我被卡住了,所以我决定学习 c。我开始阅读教程,但很快我就泄气了,因为我无法理解这种语言(特别是指针)。我没有放弃,并开始寻找一种更容易学习的语言,最终我上了 Python 教程(我不记得具体是怎么上的)。与 C 相反,我发现 Python 很容易学,玩起来非常有趣。我并不确定我在做什么,但是我把我的努力集中在(原始)套接字和 libpcap 上,因为这是我实现我的想法(一个后门)所需要的。几个月后,我发布了我的第一个与黑客相关的工具:一个使用 ICMP 而不是 TCP 的远程 shell。不久之后,我开发了第二个工具,一个端口敲门器,它基本上是一个嗅探器,监听数据包的组合,以便打开防火墙上的端口。有趣的是,在这两个黑客玩具发布后不久,我逐渐开始对黑客失去兴趣,但我仍然喜欢网络和套接字,所以我决定我要写一个服务器,我不在乎哪一个。我开始阅读 RFC-959,FTP 协议规范,我有点喜欢它,所以我最后写了我的第一个网络服务器!最初它是一个命令行工具,使用线程实现并发,后来我使用事件驱动的方法从头开始重写,最终成为一个面向其他开发人员的库: pyftpdlib 。那是我的第一个“官方”开源项目,包括一个 VCS、一个 bug 跟踪器和(一段时间后)一个实际的用户群。

你还知道哪些编程语言,你最喜欢哪一种?

我知道 C,主要是因为我为了 psutil 不得不学,但是我不是特别擅长,也不是特别喜欢。🙂

你现在在做什么项目?

我现在唯一积极参与的项目是 psutil 。我不时参与的其他项目有 pyftpdlibpysendfileconfix 。我还时不时地为 python-dev 贡献一些补丁,或者在我特别有灵感的时候提出一些关于 python-ideas 的建议。

哪些 Python 库是你最喜欢的(核心或第三方)?

我想我最喜欢的是 docopt 。其他受欢迎的还有龙卷风(因为代码质量很棒)和古玩(因为太棒了)。

你是如何开始 psutil 项目的?

我认为这发生在 pyftpdlib 开始获得用户群的时候,我收到了我的第一份工作邀请。通过 pyftpdlib,我学到了大量关于网络、异步编程和 API 设计的知识。我甚至成为了 ftplibasyncoreasynchat stdlib 模块的维护者,因为整个 FTP 服务器都是以它们为中心,而且维护的很差。但最重要的是,我发现我喜欢打理一个开源项目:为它写文档,让它一个版本接一个版本地发展,回应错误报告和功能需求,与用户互动,等等。这很好,我想要更多。

那时,我有一个住在新泽西州的“远程朋友” Jay ,他也是一名 Python 开发人员。他帮我翻译了一些杰夫·敦哈姆的美国喜剧节目,我和其他几个朋友用意大利语给这些节目配音,然后放到了 YouTube 上。他为 pyftpdlib 贡献了几个补丁,他还想开始一个 Python 项目。我认为是他提出了“查询过程库”的想法。我,我个人,并没有太在意。我只是想做一些“真实的”事情,可能的话一起做,他的想法听起来不错。我们做了一些研究,注意到有一个类似的 Python 项目叫做 PSI 。杰伊提议加入他们的团队,为 PSI 项目做贡献,但我不想这样做,所以我们最终在从零开始。我编写了第一个 Python 框架(Process 类)和 Linux 实现,Jay 编写了 Windows 和 OSX 的初始 C 扩展。这是有道理的,因为当时我不知道任何 C 语言,我在 Linux 上,而杰伊知道 C 语言,在 OSX 上。这个项目一开始并没有受到太多关注。老实说,与 pyftpdlib 相比,我认为它是一个玩具,不会被注意到。事实上,这就是接下来几年发生的事情,在此期间,我更加关注 pyftpdlib,这同时给我带来了另外两个好工作机会,他们希望为它定制,甚至带我去拜访我们。与此同时,Jay 有了一个女儿,他逐渐对 psutil 失去了兴趣,并最终放弃了这个项目(尽管多年后我终于在新泽西见到了他本人=)。老实说,一开始我很难过,也有点担心,因为他是 C 程序员。这基本上迫使我提高我非常有限的 C 技能,从那时起,psutil 基本上成为一个单独的项目。在这个过程中,我不断增加功能,收集用户反馈,学习系统编程、虚拟化、自动化、API 设计,以及如何写文档...你说吧。在某个时候,我不确定是什么时候,我意识到就用户基础而言,psutil 变得比 pyftpdlib“大”得多,而 pyftpdlib 逐渐受到我越来越少的关注。9 年后,psutil 是一个非常受欢迎的 Python 库,拥有稳定的用户基础,它仍然占据着我空闲时间的重要部分,尤其是在我旅行的时候,使用它仍然给我很大的满足感。

对于想加入开源项目的新开发者,你有什么建议吗?

对我来说,在我学会了这门语言的基础知识之后,有一个想法和一个实际的项目是至关重要的,因为我需要一个目标。事实上,我首先想到了一个主意(写一个与黑客相关的网络工具),然后我学习了这门语言。我认为这非常重要,因为你冒着投入大量时间获取知识的风险,如果你不知道如何利用这些知识,你可能最终会用不上。编程的真正乐趣来自于解决问题,所以解决一个真正的问题是至关重要的。如果你没有,就找一个,而且要快,因为失去兴趣的风险是真实存在的,尤其是在开始的时候,即使你花了 2-3 个月的时间在业余时间阅读教程。这正是我在开始 pyftpdlib 和 psutil 项目时所做的。我没有写 FTP 服务器,因为我需要一个。我真的不关心用 psutil 监控系统或系统编程。我不是我项目的用户。我只是在寻找一个问题——任何问题——来解决,可能是在我感兴趣的领域(网络),因为我真的很喜欢写代码。我在找借口开始编码,一直编码下去。其次,如果你打算以编程为生(我不是),请记住,你的开源项目并没有真正给你带来金钱,但它可能会成为你的简历。这对我来说尤其重要,因为我没有接受过正规的 IT 教育,也没有正式的文件证明我能做什么。我只是对编程和我的开源项目充满热情。从长远来看(至少对我来说),这是开源最实际的回报之一:从你的(公共)工作中获得认可,并(可能)找到好的工作。这就是我对我的朋友们说的话,他们不明白我为什么免费做这些。这是一种爱好,碰巧也是一种潜在的长期投资。🙂

谢谢你接受采访!

本周 PyDev:Glyph Lefkowitz

原文:https://www.blog.pythonlibrary.org/2016/10/17/pydev-of-the-week-glyph-lefkowitz/

本周我们欢迎 Glyph Lefkowitz ( @glyph )成为我们本周的 PyDev!Glyph 是 Twisted 的创建者/维护者,这是一个异步事件驱动的网络引擎。字形找到时间写一个博客,你可能会觉得很有趣。你也可以看看 Github 看看他参与了哪些项目。让我们花几分钟来更好地了解 Glyph!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我就是这个人,你知道吗?

我开发了很多开源软件,既有工作上的——我为 Rackspace 维护 Twisted,也有大量相关的生态系统项目——也有个人方面的。

我的爱好主要围绕计算机。例如,我是一个狂热的电子游戏迷。我还涉猎了图形设计、3D 渲染和计算机生成的音乐;虽然没什么值得分享的。如果时间允许,我也是一个真正的大读者,尤其是科幻小说和幻想小说。

综上,我是经典意义上的书呆子。为了完成这幅漫画,我的妻子也是一名程序员,所以我的个人生活也围绕着计算机技术。我们都对信息安全非常感兴趣,所以我花了相当多的时间来确保我们的系统是最新的,我们的密码是轮换的,等等。

你为什么开始使用 Python?

我开始觉得我的 Python 起源的故事被重复讲述了很多次,人们对我的厌烦程度不亚于他们对金刚狼的厌烦程度。但是,这里有:

我当时在做一个视频游戏,“扭曲的现实”,最初是用 Java 写的。

《扭曲的现实》旨在让作者在引擎内和网上进行内容创作,可能会有玩家观看。这意味着许多行为必须是动态的和运行时可修改的,这意味着对象有许多集合数据结构来将项目名称和动词映射到各种模拟对象和动作。

我有一份用 Perl 编写日历系统的暑期工作,随着我越来越多地遇到 JVM 的问题,我开始寻找其他可能使用的语言。我在 JVM 上遇到的一个主要问题是 ui 行为不正确,明显滞后和缓慢(记住;这是 1999 年左右)无论我如何调整他们。我开始用 C 语言为 Linux 重新编写客户端软件,以充分利用 GTK。我相信我最初发现 Python 是因为其他开发人员之一指出可以使用更高级的语言编写 GTK ui,所以我写的第一件事是为我们的游戏服务器编写 PyGTK 客户端。

我在编写客户端时注意到的一件事是,我用 Java 手工拼凑的许多高级动态行为构造都内置在 Python 中——比如动态添加对象属性的能力。我经常使用的其他方法,如散列表,涉及的输入更少;x = {} '而不是' import Java . util . hashtable;Hashtable x = new Hashtable();'。

因为它似乎有我需要的所有东西,所以在用 Python 重写 Twisted Reality 客户机后不久,我重写了服务器并获得了大约 20:1 的代码压缩率。剩下的,当然是历史了。

你还知道哪些编程语言,你最喜欢哪一种?

我对 Bourne shell、Perl、Emacs Lisp、Smalltalk、C、C++和 Java 略知一二。

我最喜欢的可能是 Smalltalk。理论上,我实际上发现 Smalltalk 比 Python 更漂亮,因为它设法用如此少量的语法构建了一个完整的语言。当然,实际上,没有任何实际的 Smalltalk 实现对现实做出必要的妥协,使之成为编写 Python 的愉快体验。

你现在在做什么项目?

本身就是一个经久不衰且越来越有活力的社区,我仍然为它奉献了相当多的时间。我还在 Mimic 上工作,这是一个模拟 API 调用的服务器;那个项目对我来说很重要,因为我是改进软件测试的大力倡导者,而测试艺术中最被忽视的部分之一是构建可靠的、确定性的赝品,这些赝品可以跨项目使用。

除此之外,我在 Rackspace 的研究角色的一个好处是,我可以灵活地试验新项目。有时这意味着对其他库的维护做出一些上游贡献,有时这意味着实验性的新项目。我的状态机库 Automat 就是这样一个附带项目,它允许轻松表达正式的状态机。另一个是 Horsephrase ,这是一个简单的密码生成器,旨在将更多的信息理论应用到生成可发音、可交流的密码的过程中。

最近,我一直致力于对基于 Twisted 的 web 微框架 Klein 的一系列增强,使其与其他框架相比更具竞争力,并使其更具特色,为这些框架的用户所熟悉。

哪些 Python 库是你最喜欢的(核心或第三方)?

最近,我的博客上有一篇著名的报道,我认为‘attrs’是一个每个人都应该使用的神奇图书馆。它还需要一些改进,但我真的希望它在某个时候成为标准库的一部分。

作为一门编程语言,你认为 Python 将何去何从?

我认为我们正处于十字路口。

Python 如此吸引人的一个原因是它的通用性。它是所有语言中第二好的语言;如果你想要绝对最好的 web 语言,例如,在库和开发者的可用性以及上市时间方面,Ruby——由于 Rails——可能是一个更好的选择。如果你想要企业计算或分布式系统的最佳语言,Java,或者至少是 JVM 生态系统中的某种语言,可能比 Python 更好。如果你想做统计,R 或 MATLAB 可能有更多的功能可用。

但是,如果你想写一些与需要从企业数据库做报告的 web 应用程序相关的数字分析,Python 将轻而易举地击败这些语言。

因此,作为一个社区,我认为我们面前有两个选择。要么我们继续拓展边界,继续让 Python 更通用——比如,让它在浏览器中运行,让它在移动设备上运行得更好——要么我们对它已经做得很好的地方沾沾自喜。

现在,几乎可以在任何地方为任何应用程序运行 Python。但这并不意味着它是实用的,或被接受的。如果你去做前端的东西,有一个强烈的期望,你会使用 JavaScript 框架,如反应。这就是为什么我认为像这样的问题如此重要。回到过去,Python 与真正可怕的替代品竞争,它可以轻而易举地击败这些替代品:例如,大量的闭源 C++。现在,竞争更加激烈:例如,浏览器中带有 React 的 ECMAScript 7,后端带有 JMX 等高级功能的 Clojure。

现在我担心的是前端的东西,因为这似乎是 Python 最弱的地方,也是最有可能取得另一次突破的地方。(坦白地说,因为我想写很酷的前端东西,我没有大量的时间来投资。)

我认为需要重点关注开发者体验和开箱即用的性能。但是在其他领域我们已经取得了进展,但是社区并没有意识到这一点。例如,尽管 PyPy 的性能与其他语言运行时相比非常有竞争力,但许多博客仍然会说“python 很慢”之类的话。我认为更多的人需要检查 PyPy 对于大多数服务器端应用程序来说,默认情况下使用相对较慢、占用大量内存的 CPython 是没有意义的。当然,某些 C 扩展仍然需要 CPython,所以如果它对您有用的话,使用它也没什么不好。但是,当程序员仍然将 CPython 作为默认设置,对其进行基准测试,然后甚至在发现 PyPy 之前就宣称“Python 很慢,我们将在 Go 中重写这一切”时,CPython 就是一个糟糕的默认设置。

你对当前的 Python 程序员市场有什么看法?

我没有太多的专业知识,但我能看懂图表。这些图表都在说同样的事情:

无论你如何计算,Python 都是十大编程语言之一,并且它仍然是一个令人兴奋的动态生态系统。坦白地说,我很长一段时间都在担心 2/3 分裂,我认为从长远来看这可能会严重伤害 Python。但是,尽管正在进行的迁移过程引起了混乱,Python 仍在继续发展,库生态系统也在继续与时俱进,甚至在继续支持 Python 2 的同时。

你还有什么想说的吗?

Python 社区中我最喜欢的部分之一是它对多样性的承诺。由于这种承诺,它是最友好、最受欢迎的开源社区之一。我们经常理所当然地为在这方面取得的进步而自我表扬。

然而,有一件事我认为很重要,那就是我们绝对不能止步于此,因为你们给了我一个空间,让我明确地说出我认为重要的事情,我应该这样做。我们仍然需要欢迎。

一个简单的方法是在你的开源社区中对初学者和不熟悉的人友好和开放。感谢每一个贡献者的补丁——即使补丁很糟糕,他们仍然花时间来学习你的项目并提交一个补丁,这种时间投入是对你工作的信任票!另一方面也是如此——有时用户比维护者有更多的地位和权力。一定要感谢维护人员的努力,尤其是如果他们是志愿者的话。

但是仅仅做简单的事情是不够的。开源社区的领导者需要参与推广计划。软件公司的经理们需要积极工作,消除偏见和不公平(这不一定是一回事!)从他们的招聘过程中。

总之:到目前为止,Python 社区做得很好,但是我们需要继续努力!

本周 PyDev:Haki Benita

原文:https://www.blog.pythonlibrary.org/2021/04/26/pydev-of-the-week-haki-benita/

本周我们欢迎 Haki Benita ( @be_haki )成为我们本周的 PyDev!Haki 是真实 Python 的贡献者。你也可以在 Haki 自己的网站或者查看他们的 GitHub 简介上看到一些 Haki 的作品。

让我们花些时间更好地了解 Haki 吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我的名字是 Haki Benita,我是一名软件开发人员和团队领导,住在特拉维夫。我有经济学和计算机科学的学士学位和工商管理硕士学位(但不要因此而反对我)。在我现在很少的空闲时间里,我喜欢写作,和家人呆在一起。

你为什么开始使用 Python?

我的职业生涯始于一家大型组织的 DBA。我在那里使用的技术是你可以从大公司那里得到的。那里没有 Python。

当我离开这个组织时,我加入了一家小公司。他们开发了一个 Android 应用程序,他们需要一个仪表盘和一个 API。当时我对 web 开发一无所知,所以我选择了 Django,因为它看起来是个不错的选择。这就是我如何开始使用 Python 和 Django 的,剩下的就是历史了...

你还知道哪些编程语言,你最喜欢哪一种?

在我参加过的任何团队中,我总是“数据人”,所以很明显,我写了很多 SQL。这些年来,我在一定程度上使用了许多语言,包括 PLSQL、SASS、R、C、C++、C#、Java、JavaScript 和 Go。然而,我现在的大部分专业工作都涉及到 Python、SQL 和 TypeScript。幸运的是(但不是偶然),这些是我最喜欢的语言!

你现在在做什么项目?

在过去的几年里,我一直在领导一个大型公共交通票务和支付平台的开发。公共交通通常被称为“大众运输”,这是有道理的。有大量的数据流入和流出,它必须准确、快速和可靠。我的大部分写作灵感来自于我和我的团队在构建和扩展这个系统时所面临的挑战。

哪些 Python 库是你最喜欢的(核心或第三方)?

这一直是我在每周 PyDev 中最喜欢的问题,但是我的回答会很无聊。这些年来,我们设法保持最新版本的操作系统、数据库、编程语言和框架,主要是因为我们很少使用第三方库和软件包。

话虽如此,我还是经常在新环境中使用或 pip 安装一些库。用于类型注释的 Mypy、用于测试的 pytest 和 coverage、用于一些轻量级数据争论的 functools、itertools 和 collections、用于 HTTP 的请求、用于 web 开发的 Django、用于确保登录 Django admin 的 django-otp 以及用于本地开发的 iPython 和 iPdb。

你是怎么和真 Python 扯上关系的?

我在 5 年多前开始写作,没有什么特别的原因。幸运的是,我的第一篇文章写得非常好,这激励我继续写作。我真的很喜欢与读者互动,也很享受他们的反馈,所以我每个月都会发表新的文章。有些文章做得非常好,得到了很大的反馈,有些没有,但我的写作变得更好了。

当我觉得我已经准备好让我的写作更上一层楼时,我申请成为 Real Python 的一名作家,他们接受了我的申请。第一篇文章花了一些时间,因为我是新人,但我对复习过程的认真程度印象深刻!在我亲自经历了管道之后,我对真正的 Python 产生的内容充满了信心。

作为一名作家,你学到的前三件事是什么?

许多有才华的人分享了他们的写作技巧,所以我将试着提供一些来自我个人经历的有价值的技巧:

1)讲故事不仅仅是杂志的事:如果你的读者只想知道技术细节,他们会阅读文档。读者阅读你的博客是因为他们想知道你对某个主题的看法。讲述故事的技术文章以更好的方式传达信息。我是说,每个人都喜欢好的制作故事...

2)写作是一门手艺:就像编程一样,写得越多越好。精心构思一个故事,让读者参与进来,并在这个过程中对他们进行教育,是很难的。多年来,我一直试图想出新颖的方法向我的读者介绍技术主题。例如,我关于依赖注入的文章以一个采访问题开始,我关于如何向 Django admin 添加文本过滤器的文章以一个开发人员和支持工程师之间的虚构对话开始。

3)对你来说微不足道的事情对其他人来说可能不是:许多开发人员想开始写作,但他们很难找到一个主题来写。我学到的一件事是,许多你认为微不足道的事情,对别人来说可能不是。例如,我最近写了一个生产系统中的小发现,它帮助清理了大量数据。我认为这个发现很琐碎,写出来有点尴尬,但发表后,我惊讶地发现有这么多人觉得它有用。

你还有什么想说的吗?

你可以在 hakibenita.com 找到我的作品

Haki,谢谢你接受采访!

本周 PyDev:哈迈尔·阿巴西

原文:https://www.blog.pythonlibrary.org/2020/02/24/pydev-of-the-week-hameer-abbasi/

本周,我们欢迎 Hameer Abbasi 成为我们的本周 PyDev!Hameer 从事 PyData 稀疏项目。你可以在 Github 上看看哈默尔还在做什么。让我们花些时间去更好地了解他!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我的爱好是,并且已经有一段时间了,一般的科学计算,生态系统以及如何让它变得更好。我很幸运也很感激能在这个领域找到一份工作,尽管我的正规教育既不是数学也不是计算机科学。谈到我的教育,我于 2014 年 7 月获得了巴基斯坦国立科技大学的电气(电信)工程学士学位。在 2015 年 9 月成为巴基斯坦 LMK 资源公司的专业人员后,我搬到了德国,并于 2015 年 10 月完成了达姆施塔特技术大学(英文:Technical University of Darmstadt)的信息与通信工程硕士学位。那时,我在 Quansight 公司做承包商,并且一直持续到现在。

你为什么开始使用 Python?

我当时正在做一份 Hilfswissenschaftler 的工作(有点像美国的研究助理),在那里我遇到了将一个稀疏系统扩展到更大空间的问题。我当时发现了 PyData/Sparse 项目(当时它在 Matthew Rocklin 的个人存储库中),并立即被转移到稀疏表示所带来的计算增益这一想法迷住了。我现在是那个项目的维护者,我很感激我选择了那条路,因为它让我在 SciPy 2018 上发表了演讲,并成为了 Quansight 的客户。

你还知道哪些编程语言,你最喜欢哪一种?

这些年来,我涉猎了很多编程语言。从 Visual Basic 2000 开始,一直到 Visual Basic。NET,HTML,Java,Javascript,C++。不过,我觉得我真正了解的是 Python 和 C#,因为我有在实际项目中使用它们的实践经验。我喜欢 Rust 的“第一次就做对”模式。

我最喜欢使用的可能是 C#,因为它有很好的工具,但是作为一种语言,我更喜欢 Python。

你现在在做什么项目?

我和 Quansight 以及他们实验室部门的其他人一起从事一些客户项目。其中包括 uarray ,一个具有各种实用程序的后端调度系统,unumpy,一个“后端不可知”版本的 numpy,以及 udiff,一个建立在 unumpy 之上的自动区分库。我最近又开始研究 PyData/Sparse 了。我想再谈一谈 uarray 家族——你只需拿一段代码,修改一个 with 语句和/或导入,就能看到奇迹,这太棒了。

哪些 Python 库是你最喜欢的(核心或第三方)?

大概是 XND 吧,确实设计的很好,展现了很大的潜力。现在如果有一个活跃的维护者...

你是如何开始 PyData/Sparse 项目的?

老实说,我正在从我的论文中懈怠下来,研究我感兴趣的东西,仅仅是从移动到一个稀疏结构中获得巨大计算增益的想法。

是什么让 PyData/Sparse 变得伟大?

嗯,试试看就知道了。????

您能描述一下目前 Python 在数据科学领域面临的挑战吗?

有核心基础设施的项目需要付费的维护者。Travis oli phant(Quansight 和 OpenTeams 的首席执行官)已经详细讨论过这个问题。

谢谢你接受采访,哈默尔!

本周 PyDev:哈里森·金斯利

原文:https://www.blog.pythonlibrary.org/2017/05/22/pydev-of-the-week-harrison-kinsley/

本周的 PyDev 是哈里森·金斯利。哈里森是一个受欢迎的 Python Youtube 教程频道的创建者。他还维护着一个网站,这是他视频教程的文本版本:https://pythonprogramming.net/。让我们花一些时间来更好地了解哈里森!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

虽然听起来很老套,但毫无疑问,我最大的爱好是编程。也就是说,我也喜欢跑步、潜水和驾驶表演。有各种各样的赛道(想象一下:F1 赛车),你可以开着你的街车去,有些是真正的 F1 赛道。我倾向于在周末每月跟踪我的车(本田 S2000)一到两次。

至于学历,我没有正规的 CS 或相关学历。我主修哲学和刑事司法。

我已婚,住在德克萨斯州,有几只大狗。

你为什么开始使用 Python?

真有意思,我其实很早就不喜欢编程了。我从 12 岁开始就想学习编程,我不断尝试,但我就是讨厌它。太繁琐,太烦人,太混乱。

快进到大学,此时我已经有一些网上业务,但总是只是支付开发人员为我工作。这一次,我的想法是跟踪投资/交易股票的情绪。我不知道谁能帮我做到这一点,所以我带着这个目标再次重温编程。我又尝试了相当多的语言,总体上还是很失望,但是后来我的一个朋友提到一种叫做 Python 的编程语言有一个叫做自然语言工具包(NLTK)的自然语言处理库。我很快就找到了他们关于 nltk.org/book 的书,这本书非常适合我,因为这正是我想要的。我翻阅了这本书,就这样我学会了 python,开始了我的旅程。这个项目今天仍然以 sentdex.com(sentdex =情绪+指数)的名字存在,这也是我的“sent dex”电子名称的形成原因。

你还知道哪些编程语言,你最喜欢哪一种?

我学过一点 javascript 和 C++,但我真的没有什么特别的,可能除了 Python 之外我最熟悉的语言应该是 SQL,如果允许我说这种语言的话。

我还研究过围棋和雨燕。为了将来,我想学习更多的 C++和 Javascript。主要是 C++来扩充 Python,对于我用 Python 做的一个任务,可能还没有相关的库。我发现自己太依赖别人为我做包装纸了,当别人做好的时候,这很好,但是,当一些东西还不存在的时候,我就卡住了,这总是令人失望的!

Javascript 更适合我的 web 开发目的。然而我最喜欢的语言当然是 Python!例如,我没有更深入地学习 C++的主要原因是因为它不像 Python 那样令人兴奋。我认为 Python 是一种“令人兴奋”的语言,仅仅是因为它对我个人来说具有快速开发的能力。

你现在在做什么项目?

最近,我一直在《侠盗猎车手 5》中研究自动驾驶汽车。当我写这篇文章时,我已经在外地连续训练了大约 5 天的深度学习模型。我很兴奋能回家看看模特做得怎么样,我就像一个等待圣诞节早晨的孩子。我只希望不是煤。

对于任何有兴趣跟踪该系列教程的人:https://python programming . net/game-frames-open-cv-python-plays-GTA-v/

该项目也是开源的:https://github.com/sentdex/pygta5/

你也可以观看人工智能的直播:https://www.twitch.tv/Sentdex

哪些 Python 库是你最喜欢的(核心或第三方)?

熊猫可能是我的第一票,仅仅是基于这些年来我从它那里获得了多少价值,但是 Numpy 可能应该拿第一,它只是不经常被认可为它在如此巨大的各种各样的库的后台所做的工作。

我也很喜欢 Flask,因为使用它很简单,你可以很容易地定制它来做你想做的事情。Flask 使我能够与他人分享我的作品,这是其他图书馆无法给予我的。

作为一门编程语言,你认为 Python 将何去何从?

我认为 Python 背后的主要力量是社区。还有一些语言在易用性和通用性方面非常相似,比如 Ruby 或 Julia。我个人认为 Python 和 Ruby/Julia 的区别在于它们背后的实际社区。使用 Python,你真的可以做任何事情。我认为 Python 目前唯一真正的弱点是游戏开发/移动开发之类的东西,以及包装器之间的延迟仍然太昂贵的任何东西。类似毫秒频率交易。

从根本上说,我可以很容易地预见 Python 将在未来 20 年内出现,但这很大程度上取决于社区。版本 2 和版本 3 之间仍然存在的社区分叉是一个很好的例子,说明了尽管最初的社区很棒,但是你可以把它切成两半。似乎有些人认为 2 对 3 的事情已经过去了,但我真的不这么认为。承认你在网上使用 Python 2 确实变得不酷了,但是在实践中这仍然是现实

你是如何开始做关于 Python 的 Youtube 视频的?

实际上,我一开始只是想推销 Sentdex.com。我做了一些关于情感分析的视频和一些使用 Python 完成相关任务的视频。人们似乎真的很欣赏这些教程,所以我只是不停地分享我学到的东西。它一直在增长,直到很快这个频道和 sentdex.com 不再有任何关系,但是这个名字不能被改变。现在很明显,从市场营销的角度来看,“Sentdex”这个术语更多地与 Python 编程教育联系在一起,而不是情感分析。

你能给想用 Youtube 或类似网站教学的人什么建议?

别担心是蹩脚的!我得到的绝大多数回复都是非常积极的,即使是在我不擅长编程和教学的早期。即使你不考虑教书,我还是建议你试试。它不需要是 YouTube,只是一个博客或类似的东西。这样做的回报简直是疯了。首先,当你试图教东西时,它只会巩固你所知道的,并迅速照亮你所不知道的。试图解释某事是学习它的一个很好的方法。

接下来,一旦你把某样东西放在那里,你会得到其他人的关注,你会得到提示、建议和大量的帮助。这基本上是同行评议的一种形式。

最后,如果你在找工作,拥有一个证明工作/激情的博客似乎是大多数雇主所欣赏的。

你还有什么想说的吗?

感谢您将我视为本周的 pydev!

本周派德夫:哈利·珀西瓦尔

原文:https://www.blog.pythonlibrary.org/2016/08/15/pydev-of-the-week-harry-percival/

本周我们欢迎哈里·帕西瓦尔( @hjwp )成为我们的本周 PyDev!哈利是《用 Python 进行测试驱动开发的 T2》一书的作者。你可以访问他的网站来了解这本书的更多信息,甚至可以免费阅读!Harry 也是 PythonAnywhere 的程序员,该网站允许你在云端托管、运行和编写 Python 代码。让我们花点时间来了解一下我们的蟒蛇同伴吧!

Harry_Percival

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

虽然我的童年开始于一条充满希望的书呆子之路——在法国汤姆逊 TO-7 上用 Basic 编程,当你按下它们的键时,它们会发出“boop”的声音——但事情变得相当糟糕,我最终成为了一名管理顾问,这让我对电子表格产生了持久的喜爱,而不喜欢像“杠杆”、“利用”这样的表达方式(就说使用吧!)和“往前走”。

我住在意大利的时候通过远程教育获得了计算机科学学位——因为我的妻子是一名歌剧演员,她想学意大利语。我们住在海边。很艰难。事实上,这就是我第二份工作的原因:我兼职为 popupopera.co.uk 做字幕操作员。给我一点机会,我会告诉你如何使用 reveal.js 和 websockets 将歌剧字幕传输到移动设备上。而且我刚刚有了一个孩子。

你为什么开始使用 Python?

我的大学课程,除了教我注意 Netscape Navigator 和 Internet Explorer 之间的不兼容问题(哦,是的,这是 5 年前的事了),还让我在 PHP 和 Java 方面打下了宝贵的基础,所以你可以想象当我得到第一份合同时,我是多么高兴,托管服务提供商告诉我他们推荐 Python 和 Django。因此,有一年圣诞节,我自学了这些基础知识,再也没有回头看!

你还知道哪些编程语言,你最喜欢哪一种?

作为一名曾经的电子表格黑客,我也经历过 VBA,但我也是一名认证的 Lotus Notes 专业人员,的确如此!LotusScript 在我心中永远有一席之地。你知道,我实际上(回想起来,非常愚蠢地)创建并发布了一个 Lotus Notes 电子邮件,它会在打开时自动转发给用户地址簿中的人——这是 Melissa 病毒之前的技术,如果我自己这么说的话。那是 1998 年在 IBM 实习的时候,我很高兴我没有因此惹上更多的麻烦!

从我获得学位开始,我就带着喜爱和持久的好奇心记住了 Prolog(你知道现在还有 Prolog 社区吗?有 Prolog web 框架!).最近我尝试了 Clojure,感觉它确实鼓励了一种不同的编码思维方式,我强烈推荐它。

你现在在做什么项目?

最主要的是,我用 Wagtail CMS 重写了我妻子的网站,并准备我的书的第二版,其中有无密码认证和 rest-api-ajax 测试的提示。那肯定够了!

哪些 Python 库是你最喜欢的(核心或第三方)?

我想起了我花了几天时间编写一个文本重排函数来将文本换行到 80 个字符,却发现了 textwrap.wrap。尽管我几乎每天都在工作中使用 textwrap.dedent。不知何故,我没有想到一个叫做 textwrap 的模块可能包含,哦,我不知道,一个包装文本的工具。所以,总是先看看标准库吧!

除此之外,我不得不为@tartley 的重新运行大声欢呼,因为它在文件改变时自动运行您的单元测试。如果有人在寻找一个小项目,可以做一个 inotify 集成...

作为一门编程语言,你认为 Python 将何去何从?

在过去的几年里,Python 3 的发展势头达到了一个临界点,这真是太好了。这似乎永远不会发生,但现在感觉我们真的在那里。

即将出现的一个不祥之兆是整个类型的暗示——我有时担心这会让初学者更难理解这种语言,但是当我退一步,我认为我可以相信 Python 社区会做正确的事情。我想象约定和习惯将会以这样的方式发展,类型提示将会很好地对初学者隐藏,Python 的学习曲线将会保持平滑。

另一件我认为会产生有趣影响的大事是 Python 越来越多地被作为默认的教学语言。看看美国和英国在高中和小学教编码的努力吧!我们将从 Python 这个有点古怪、小众、另类的世界中走出来,成为每个人在学校学习的标准语言,我想知道这将如何渗透到 Python 的文化中...

你还有什么想说的吗?

作为英国人,我很难面无表情地说出“社区”这样的词,但是,说实话,Python 确实教会了我这个术语的含义。如果你是一名 Python 程序员,不要错过更多参与社区的机会——找一个本地聚会,加入邮件列表,参加会议,你会爱上它的。

我也必须表达我对 DjangoGirls 和所有其他多元化努力的热爱和钦佩,pyladies,transcode 等。这个社区的一个主要缺点是,它是如此压倒性的男性。多元化的努力,对于增加人才库和拓宽我们处理问题的视角和能力的所有常见原因来说都是很棒的,但是,老实说,在个人层面上,能够摆脱总是如此不可思议的感觉真好——我们都如此投入于变得聪明和正确,这使我们变得好辩,有时远离这种感觉真的是一种解脱,也许有一种鼓励不同类型互动的环境...表情符号什么的!任何了解我的人都知道,我需要尽可能多的帮助来淡化我好争辩的一面🙂

感谢您接受采访!

本周 PyDev:亨利·施雷纳三世

原文:https://www.blog.pythonlibrary.org/2022/02/28/pydev-of-the-week-henry-schreiner-iii/

本周,我们欢迎亨利·施雷纳成为我们的本周人物!Henry 是与 scikit、PyPA 等相关的多个项目的开源维护者/核心贡献者。你可以通过查看亨利的 GitHub 简介来感受一下他在做什么。亨利还创建了一个在线免费的“提升你的 Python 水平”课程。

Henry Schreiner

让我们花些时间更好地了解亨利吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名计算物理学家和研究软件工程师,在普林斯顿大学工作。我与 IRIS-HEP 合作,这是一个高能物理(HEP)可持续软件的多大学研究所。我们正在开发支持 HEP 数据重现性分析的软件。我在几个领域工作,专注于分析系统的底层软件栈和打包;当我不这样做的时候,我会使用直方图相关的工具。我还参与了创新算法的开发、教学和推广工作。

业余时间做很多 OSS 的贡献,所以其他爱好大部分都是可以和家人一起做的事情。我已经开始向我 5 岁的孩子介绍过山车;我喜欢电脑建模和动画,以及特效,但没有太多的时间去做了。

你为什么开始使用 Python?

大概是上大学的时候,开始用搅拌机;这是我对开源社区的介绍,并很快成为我最喜欢的程序。它有一个内置的 Python 解释器,因为它我真的很想学习使用 Python。这让我真的很想学 Python。在 2008 年西北大学本科生(REU)的研究经历中,我有机会在几个集群上工作——提交工作是一件痛苦的事。我用 Python 来监控和提交作业;这使我能够多线程化,比旧的 bash 脚本做更多的事情;我可以在别人手动操作之前捡起空节点。我离开的时候,每个人都想要我的剧本。

在 UT Austin 攻读高能物理学博士学位期间,我重写了一个大型 Matlab 分析代码库,然后慢慢地将它转移到 Python 上。新代码可以在任何地方的任何机器上运行,包括在伯利兹的丛林中,在那里我没有 Matlab 许可证。在我的毕业工作接近尾声时,我获得了 Plumbum 发布经理的职位,这是我第一次作为一个持续的开源项目的维护者。在欧洲粒子物理研究所开始做博士后后,我发现了一个不断增长的 Python 分析师社区,所以从那以后我就一直参与 Python——经常坐在 C++ / Python 的边界上或者使用 Python。我帮助启动了 Scikit-HEP,这是一个针对 HEP 的 Python 包集合。

你还知道哪些编程语言,你最喜欢哪一种?

我是从 C++开始的;我写了 CLI11 ,一个流行的 C++命令行解析器,我是 pybind11 的维护者。我喜欢这种语言每三年一次的变化,但也对在 Python 中使用它的困难感到沮丧——由于失去了许多 linux 所基于的 CentOS LTS 版本,我们在工具链中的 C++标准支持方面倒退了,而不是前进了。

我懂一点 C 语言,但我不擅长,而且打算一直这样下去;我有点太喜欢面向对象编程了。我也非常喜欢 CMake,从技术上来说,它也是一门语言。我非常喜欢红宝石;我用它来做 Jekyll 和 Homebrew 这就像“没有训练轮的 Python”,我喜欢它让你做的事情——成为一名伟大的厨师更容易使用锋利的刀,即使它们很危险。我也写过很多 Matlab,但是好几年没用过了。我知道一些 Lua,主要是为了 LuaLaTeX,但也是为了一些研究工作——设计一种嵌入应用程序的微小语言是一个非常酷的想法——很像 Blender 使用 Python 的方式。

由于社区、范围和支持,Python 是我的最爱。如果我要选择下一门语言,我会在 Rust 和 Haskell 之间左右为难——但是现在,我可能会选择 Rust。它正在变成一种编写 Python 扩展的伟大语言。

What projects are you working on now?

For work, I work on boost-histogram / histvectorawkward-arrayparticleDecayLanguageScikit-HEP/cookie and other packages in Scikit-HEP. We have 30-40 packages at this point, and I help with at least the packing on many of them. I also work on training materials, like Modern CMakeLevel Up Your Python, and several minicourses, and the Scikit-HEP developer pages. As a mix of work and free time, I work on cibuildwheelpybind11buildscikit-build, and GooFit. In my free time, I work on CLI11 and plumbum. I also blog occasionally on iscinumpy.dev. I also contribute to various OSS projects.

Which Python libraries are your favorite (core or 3rd party)?

Many of my favorite projects I ended up becoming a maintainer on, so I'll just focus on ones I am not officially part of.

Pipx is a fantastic tool that now lives alongside pip in the Python Packaging Authority (PyPA). A lot of time is spent trying to teach new Python users to work with virtual environments, and version conflicts are being more common (due to over use of pre-emptive capping, a pet peeve of mine); but pipx skips all that for applications - you can just use pipx instead of pip and then version conflicts and the slow pip update solves just go away. I really like pipx run, which will download and run an application in one step, even on CI; GitHub Actions & Azure provides it as a supported package manager, even without actions/setup-python - perfect for easy composite shell actions (like cibuildwheel's)! pipx run even caches the environment and reuses it if it's less than a week old, so I no longer have to think about what's installed or what's out-of-date locally, I just use pipx run to access all of PyPI anywhere (that I have pipx, which is everywhere). (I'm a homebrew macOS user, so pipx install - or any install doesn't work well with the automatic Python upgrades, but pipx run works beautifully.)

I used to dislike tox - it had a weird language, bad defaults, ugly output, and didn't tell a user how to run commands themselves if they wanted to set up things themselves. While Tox4 is likely better, I've really loved Nox. It (intentionally) looks like pytest, it doesn't hide or assume anything, it works for much more than packaging - it's almost like a script runner with venv (and conda/mamba) support, with pretty printouts.

Getting away from the common theme of packaging above, I also love pretty-printing and color, so I'll have to call out the Textualize libraries, Rich / Textual; they are beautiful.

For the standard library, I love contextlib; context managers are fantastic, and a bit underused, and it has some really nice newer additions too.

How did you end up working on so many Python packages?

I got involved with Scikit-HEP at the beginning, and there we quickly collected older packages that were in need of maintenance. Working on a large number of packages at the same time helps you appreciate using common, shared tools for the job, rather than writing your own. It also forces you to appreciate packaging. Many of the packages I work on are used heavily by the code I started with.

Besides, show anyone that you can help them with packaging and they will usually take you on in a heartbeat. 🙂

Of the Python packages, you have worked on or created, which is your favorite and why?

Each package is for a different use, it's hard to choose a favorite. I have a reason to like and be involved in all of them. Probably my favorite project was the most different from what I normally do - the Princeton Open Ventilation Monitor project. In early 2020, a group of physicists, engineers, and scientists got together and developed a device to monitor airflow in ventilator systems, initially working with our local hospitals. I developed both the backend software, the graphical interface, and the on-device interface too, while Jim Pivarski (of Awkward-Array) developed the breath analysis code. It was an incredibly intense month for all of us, but in the end we had a great device and a really powerful multi-device software system (which is now all open source with open access designs). It was really fun to work on something that was not a library; I got to design for Python 3.7 instead of 2.7+ (3.6+ today), and I worked with things I wouldn't normally get to, like PyQT, line displays and rotary controls, and lots of threading. This is also where I properly learned to use static typing & MyPy, which was critical in writing code for hardware that wasn't even built yet.

I have other exciting things planned that might take that "favorite" title. I'm hoping to get the chance to rewrite scikit-build. I'm planning on using richtextual, and plotext to make a HEP data browser in the terminal - which would also be an "app".

Is there anything else you’d like to say?

Don't undervalue consistency, readability, and static analysis, which makes code easier to read and maintain with less effort, and often helps keep bugs down. Reading code that is not yours is incredibly important skill, as is packaging, so you can use code others wrote without rewriting it yourself. Tools like pre-commit, mypy, and nox really help code be more accessible. If you make choices that seem to help one specific case, that is almost never worth the loss in consistency which helps others easily digest your code and either use it or even contribute to it. Providing a noxfile can really help "fly-by" contributors!

It's okay to abandon a project (azure-wheel-helpers, in my case) when you find a library (cibuildwheel) that is better than yours, and instead contribute to that. By helping them, you can help a larger audience, and avoid duplicating work.

I'd highly recommend reading scikit-hep.org/developer (with an accompanying cookiecutter!) if you are developing code, even if you are not developing in HEP or even scientific fields. I also contribute to packaging.python.org, but I'm a lot more free to be opinionated there and recommend specific workflows and tools.

Thanks for doing the interview, Henry!

本周 PyDev:Hillel Wayne

原文:https://www.blog.pythonlibrary.org/2018/09/24/pydev-of-the-week-hillel-wayne/

本周我们欢迎 Hillel Wayne(@ Hillelogram)成为我们本周的 PyDev!Hillel 是“学习 TLA+”的作者,目前正在撰写“实用 TLA+ ”一文。你应该看看他的网站/博客,因为这是一个了解他更多的好地方。Hillel 最近也在 PyCon US 上发表了关于测试的演讲。让我们花点时间和 Hillel 聊聊吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我一直计划成为一名物理学家,直到大学四年级,我突然想成为一名程序员。我在湾区做了一段时间的 fullstack,在芝加哥做了一段时间的后端开发,在那里我发现了对正式方法的深深热爱,或者说是“数学地”设计和构建软件的实践。如果你读过即将到来的软件启示录,这是一个很好的为什么和什么的介绍。我现在做咨询和工作坊,帮助人们如何;这些工具太强大、太有用了,不能停留在利基市场。

除了正规方法,我对技术的兴趣如下:

  • 软件安全:错误实际上是从哪里来的,我们如何降低它们的可能性?
  • 经验软件工程:在软件工程中我们实际上知道什么是真的,我们只是认为什么是真的?
  • 软件历史:我们是如何走到今天的,我们能从过去学到什么?
  • 怪异有趣的小众思想、语言、技巧等。

除了技术,我还做很多杂耍和烹饪。我是一个超级狂热的糖果和巧克力爱好者。芝加哥有个地方卖 10 磅重的巧克力,售价 50 美元,我通常一年要吃掉 4 块。

你为什么开始使用 Python?

大约在 2012 年左右,我突然意识到我不想读物理研究生,必须在现实世界中找到一些赚钱的方法。因为我真正喜欢的物理研究部分是硬件编程,所以我决定寻找编程工作。但是实验室技术主要是 Matlab 和 C 语言,所以我选择了 Python 来分散我的技能,并立即被吸引住了。不用担心内存或字符串问题真是太好了!它很快成为我的主要编程语言,尤其是用于学习新的编程技术。例如,我通过用 Python 实现忒修斯和牛头怪来学习 TDD,有一段时间我用 Django 应用程序帮助管理我的抑郁症

总的来说,这些天我做的编程少了很多,但是每当我需要测试一个新想法,或者用一段代码交流一个想法时,我仍然会使用 Python。即使是不了解 python 的人通常也能掌握 python 代码片段中发生的事情。

你还知道哪些编程语言,你最喜欢哪一种?

我的前几份工作是作为一名 Rails 开发人员,所以我知道这个工具,但不太了解 Ruby 语言。除此之外,我倾向于选择新的编程语言,因为它们让我很困惑。我现在正在上一堂我很喜欢的序言课,所以我应该感谢安妮·奥格伯恩。我也在 J 语言中做了很多,有趣的是,AutoHotKey 是我日常生活中最有用的工具(除了 Python)。

然而,我的专长是规范语言,我们用来描述我们整个系统的符号,而不是实现它们。我已经在 Alloy 和 TLA+上做了很多工作,并且正在写一本关于后者的书。TLA+是我最擅长的,也是我工作最开心的,尽管每当我打破常规时,它都让我觉得自己像个白痴。

你现在在做什么项目?

我目前正在写一本关于 TLA+的书,并且正在为公司准备一个为期 3 天的研讨会。在那之后,一个想法一直在我脑海中跳动,那就是做一个名为“科学编码者的 Python”的短片。这将是一些旨在教我的研究生院的朋友谁使用 Python 如何更好地使用它。像“这就是 IDE,这就是它如何使编码更容易”,“复制/粘贴意味着错误,尝试使用函数来代替”,“这就是如何检查你得到了正确的结果,没有打错字”,等等。我认为有很多机会让我们的科学代码更好,进而让我们的科学研究更安全。

哪些 Python 库是你最喜欢的(核心或第三方)?

第三方必须是假设,这是 python 的“基于属性的测试”库。不是将测试定义为“检查这个输入给我们这个输出”,而是说“输出应该具有这些属性,现在生成 100 个输入并检查它们。”这需要更多地考虑你的代码的属性,但是它可以捕捉真正令人毛骨悚然的错误。实际上,我最近在做了一个关于它的演讲,讲的是如何用它来为你生成集成测试。

核心库是 abc 。特别是,我有点痴迷于 subclasshook。在大多数语言中,事物都声明自己的类型:如果 Foo 继承自 Bar,那么 Foo 就是 Bar。但是有了 ABCs,你可以把它翻转过来,让抽象类型声明其他类算什么类型。例如,你可以让一个 ABC 说“每个名字是回文的类都算作一个 TimeFarbler。”我不知道这在实践中如何有用,但这个想法让我很高兴。

我知道你是一本关于 TLA+的书的作者。你能告诉我们 TLA+是什么吗?

软件中有(非常粗略的)两种错误:实现错误和设计错误。实现错误是指在将设计转换成代码时犯了一个错误,比如编写 return l.sort()而不是 return sorted(l)。设计错误是指你的代码忠实地遵循了你的设计,但设计实际上并不像你想象的那样。一个常见的例子是遗漏了一个边缘情况:如果有人点击“提交订单”按钮两次呢?如果购物车中的商品缺货,会发生什么情况?如果我既有“5 美元折扣”又有“10%折扣”的优惠券,我应该得到多少折扣?

设计错误通常比实现错误更危险、更微妙。它们也很难检查,而且几乎所有我们当前的工具只能帮助我们处理实现错误。为了测试我们的设计,我们使用了 TLA+这样的规范语言。我们描述我们的系统和它应该具有的属性,然后我们使用模型检查器来探索该系统的所有可能的发展,并确认它确实如我们所期望的那样。例如,如果我正在创建一个消息处理器,我可能会写这样的代码

\ m \in 消息:m \ in 已发送~> m \in 已接收

说发送的每条消息最终都会被接收到(对于“消息”、“发送”和“接收”的定义)。然后,我可以检查该属性是否确实适用于我的现有系统。

TLA+在工业领域有着良好的记录。亚马逊用它来修复 S3 的问题,微软用它来帮助 T2 发现 Xbox 的漏洞。在一个不太“国际大公司”的层面上,我用它来修正业务逻辑,穆拉特·德米尔巴斯用它来教授学生分布式系统

你从写书中学到了什么?如果可以重来,你会做些什么?

奇怪的是,对我来说最难的不是实际内容,而是一致性。如果我重命名一个章节,我记得更新它的所有引用吗?我确定我在概念 B 之前介绍了概念 A 吗?诸如此类的东西。我开始用 Word 写作,中途用 pandoc 切换到 markdown,两者都没有真正帮助解决这个问题。我想如果我重新开始,我会花一些时间研究什么样的格式能最好地实现这种一致性。可能是 RST 或乳胶。

(有趣的事实:莱斯利·兰波特创造了 TLA+和乳胶!)

大约进行到一半的时候,我开始为诸如错误检查、转换文档和上传之类的事情构建自动化工具链。这是一个巨大的时间节省。对于下一本书,我会花更多的时间从一开始就构建一个更强大的工具链。

最后的发现:与技术编辑配对。这本书很厚,所以校对起来很慢。当我们开始安排时间坐下来一起检查时,我们开始行动得更快了(我得到了更深入的反馈)。

感谢您接受采访!

本周 PyDev:Honza krl

原文:https://www.blog.pythonlibrary.org/2017/04/24/pydev-of-the-week-honza-kral/

本周我们欢迎 Honza krl(@ HonzaKral)成为我们本周的 PyDev!Honza 是 Django web 框架的核心开发者之一。他也是 Elasticsearch 官方 Python 客户端的维护者。你可以在 Github 看到一些他感兴趣或者正在做的项目。让我们花些时间更好地了解 Honza!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我在捷克共和国的布拉格老城长大,在那里我也上过学,包括我学习计算机科学的大学(我没有读完)。在我学习期间,我发现了 Python,并立即爱上了它,首先爱上了这种语言,后来,在 2008 年参加了我的第一次 Pycon 后,爱上了这个社区。

我成为了 Django 社区的一员,这个社区非常受欢迎(直到今天仍然如此)。我成为其中的一部分,去学习,并希望能有所回报。对我来说,它的效果非常好——我最近所有的工作都是通过这个社区找到的,甚至在一次 EuroPython 会议上遇到了我的未婚妻!

现在我在 Elastic 工作,Elasticsearch 背后的公司,我在那里做咨询——周游世界帮助人们在开源方面取得成功——同时维护官方的 Python 客户端。

你为什么开始使用 Python / Django?

我在大学开始做一个项目。我关注 Python 已经有一段时间了,在我们的一个团队项目中出现了一个使用它的绝佳机会——我们决定它将是一个基于 web 的应用程序,而 Django 是一个闪亮的新事物,引起了我的注意。我把它介绍给了团队的其他成员,并且一直在使用它。

你还知道哪些编程语言,你最喜欢哪一种?

当然,除了 Python:),我的另一个最爱是 shell——我仍然喜欢用 shell 编写简单的(或者稍微复杂一点的)一行程序以及更长的脚本。我喜欢它的多样性,你可以用一种看似有限的语言完成很多事情。我喜欢它与我习惯使用的其他语言的不同之处,因为它迫使你更多地考虑管道,并“只是”将问题传递给另一种应用程序/语言。我认为这无疑也帮助了我的 Python 技能——思考我需要在列表/变量中保存什么,而简单的生成器就足够了(就像 shell 中的管道一样)等等。

现在我正在关注 rust,希望有一个合适的项目能让我认真尝试一下。

你现在在做什么项目?

目前我正在做 elasticsearch-dsl ,这是一个基于 elasticsearch 的类似 ORM 的抽象。这是一个雄心勃勃的项目,因为我想展示 elasticsearch 的查询 DSL 的所有功能,同时也想让它对非专业人士来说更容易访问,总体来说更友好。虽然我认为在某些领域我可能已经做到了这一点,但在其他领域我还有很长的路要走;对于一些人来说,我甚至看不到需要发生什么的清晰路径,这使它变得有趣,给了我一些思考🙂

哪些 Python 库是你最喜欢的(核心或第三方)?

作为一个第三方库,我非常喜欢 click ,因为它很好地实现了自己的目的。从标准库来说,我是 itertools、collections 和其他“助手”库的忠实粉丝,这些库不仅提供了一些功能,而且更重要的是,展示了真正的 python 代码应该是什么样子,并且当您正确使用它们时,会使您的代码更加 python 化——这也是我一直喜欢 Django 的品质,它为您指引正确的方向,并使正确的方法变得如此明显,以至于它可以训练您识别它并在您的 Django 项目之外使用它。

我发现的另一个非常有趣的库是py . test——我喜欢这个特性集,喜欢它让测试变得如此简单和灵活,但我也有点担心那里发生的“魔法”。对我来说,这是 python 社区实用主义的一个完美例子——我认为我们都可以接受一点小魔法,只要它被明确定义并服务于它的目的。

你还有什么想说的吗?

我想对全球的 Python 社区说一声非常感谢!我有幸看到了它的很大一部分,它仍然设法经常让我措手不及,因为它有助于营造一个伟大的环境。作为我工作的一部分,我与世界各地的开发人员互动,非常感谢 Python 社区中的人们为确保这是一个繁荣和受欢迎的社区所付出的努力和思考。

非常感谢你接受采访!

本周 PyDev:Hynek Schlawack

原文:https://www.blog.pythonlibrary.org/2016/03/14/pydev-of-the-week-hynek-schlawack/

本周我们欢迎 Hynek Schlawack ( @hynek )成为我们本周的 PyDev!Hynek 是 Python 社区的热心成员,也是 Python 软件基金会的成员。他参与了许多项目,并撰写了自己的 Python 博客。让我们花些时间去更好地了解他吧!

hynek

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我拥有相当于德国计算机科学硕士学位的学位。我试着在屏幕之外拥有尽可能多的爱好,但我并不总能成功。但至少,我做了相当多的运动和旅行来保持身材和开阔眼界。

你为什么开始使用 Python?

我需要构建内部 web 应用程序,并得出结论,Java 太笨重,无法快速完成工作(我们说的是大约 2008 年;自那以后,情况肯定有所改善)。

当时主要流行的高级语言是 Ruby 和 Python。虽然 Ruby 拥有 Ruby on Rails 的优势,但我们选择了 Python,因为它感觉更像是一种编写一年后仍能被理解的软件的语言,还因为有了 Twisted 这样的 gems,生态系统更加多样化。

你还知道哪些编程语言,你最喜欢哪一种?

我在编程生涯的大部分时间里都是一名 C 程序员,但这肯定不是我最喜欢的,因为以错误的方式将两个数字相加可能会导致灾难性的安全问题。

我也知道围棋,但我不认为它是一门好语言。只有当我们需要静态二进制文件或者在极少数 Python 太慢的情况下,我们才使用它。我喜欢 Rust,但发现这个社区缺乏规模和专业性。我非常怀念 Python 社区对编写优秀文档的高度重视。

目前,我希望摆脱 Go 的希望寄托在 Swift 上,它既有前景,又有一家大公司支持。也就是说,我最喜欢的语言还是 Python。

你现在在做什么项目?

太多了!我最熟悉的项目可能是 structlog、attrs 和 doc2dash。但自 PyCon 2015 年以来,我还在维护 pyOpenSSL,并在过去几年中开源了许多方便的单一用途软件包,如 argon2_cffi 或 service_identity。我也有 CPython 和 Twisted 的 commit 位,但我目前缺少时间以有意义的方式参与进来。

哪些 Python 库是你最喜欢的(核心或第三方)?

如果我必须大声喊出来,我必须从帮助我编写健壮软件的奇妙工具开始:py.test、tox、coverage 和 hypothesis。他们太宠我了,没有这些的项目不太可能从我这里得到帮助。

网络编程是我特别感兴趣的,Python 有两个惊人的选择:Twisted 和 asyncio。后者在我不知情的情况下建立了一个舒适的子社区,里面有很多有用的模块。因此,如果我必须选择一个最喜欢的核心库,它肯定是 asyncio。Python 3.4 是第一个被正式采用的 Python 3,这对我来说并不奇怪!

对于 web 开发,我非常喜欢金字塔生态系统,它非常注重质量和组成(这两个主题对我来说都很重要,但似乎很少受到重视。当人们认为他们必须在姜戈和弗拉斯克之间做出选择时,我感到很难过,而我们有一个惊人的第三选择!然后是 SQLAlchemy:我通常只使用核心 API,但它仍然是 Python 社区的巨大资产,每个人都应该看看。

最后,我想提一下几个我认为没有得到足够喜爱的便利工具:pdbpp 是 pdb 的一个很好的替代工具,它具有语法高亮和制表符补全功能。Click 使得编写可组合的 CLI 应用程序成为一种乐趣(如果有人告诉你 argparse 已经足够好了,那么他们还没有尝试过 click)。最后,如果您想公开应用程序指标,可以看看 Prometheus 和他们的官方 Python 客户端。

作为一门编程语言,你认为 Python 将何去何从?

我发现这很难猜测,因为这主要取决于谁有时间和精力来撰写和捍卫 pep。

总的来说,我认为 Python 的未来是光明的,但正如 Alex Martelli 所言:“GIL 必须消失。

你对当前的 Python 程序员市场有什么看法?

我的电子邮件收件箱告诉我,现在是一个寻找工作的 Python 程序员的好时机。

你还有什么想说的吗?

照顾好你的身体,对其他人友好,写测试,验证你的证书,停止分类。

感谢您接受采访!

本周 PyDev:伊恩·科达斯科

原文:https://www.blog.pythonlibrary.org/2016/01/18/pydev-of-the-week-ian-cordasco/

本周,我们欢迎伊恩·科达斯科成为我们本周的 PyDev。他是许多 Python 相关项目的积极贡献者,比如 Requests、Flake8、PyFlakes 等等。让我们花些时间来了解一下我们的同胞皮托尼斯塔吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我的教育背景是纯数学和应用数学。当我在大学时,我把自学编程作为一种爱好,并开始为各种开源项目做出贡献;我接管了 Flake8 的维护工作,并在创建 github3.py 时成为了请求的核心贡献者

我在 Rackspace on OpenStack 工作,这是我们基于 OpenStack Ansible 项目和其他相关项目的私有云解决方案。

在空闲时间,我:

  • 从事各种 OSS 项目(见下表)
  • 指导那些希望成为 OSS 贡献者的边缘人群
  • 弹吉他(我从 7 岁就开始弹了)
  • 博客

你为什么开始使用 Python?

很简单,我想和我的兄弟一起在 Django 中开发一个应用程序。当时我知道 C 和一点 Java,但 Python 似乎是更好的选择。

你还知道哪些编程语言,你最喜欢哪一种?

Ruby,Clojure,Bash,C,一点 Rust,一点 Java,一些 Perl。

如果包括 Python,那么显然 Python。不然我有点在 Ruby 和 Clojure 之间左右为难。两者使用起来都很有趣。一旦我有了更多的铁锈,我想它会成为我的另一个最爱,因为我已经非常喜欢它了。

你现在在做什么项目?

在开源之前,我有几个项目是自己在做的。除此之外,我通常会做以下几件事:

  • 要求
  • 薄片 8
  • Pep8
  • 麦凯布
  • PyFlakes
  • 请求-工具带
  • github3.py
  • rfc3986
  • uritemplate.py
  • 贝泰麦卡斯格式

或者别的什么。

哪些 Python 库是你最喜欢的(核心或第三方)?

我没有特别喜欢的。也就是说,我经常使用某些库,但这并不意味着它们是我的最爱。

你还有什么想说的吗?
追随自己的激情。如果你正试图学习编程或参与 OSS,你的热情会让你成功。如果你的目标是只为你不感兴趣的大型知名项目做贡献,你很快就会厌倦并失去兴趣。如果你找到了你感兴趣的项目(或者甚至创建了它们),作为一名程序员和 OSS 贡献者,你将会更加成功。

本周 PyDev:Ines Montani

原文:https://www.blog.pythonlibrary.org/2019/07/29/pydev-of-the-week-ines-montani/

本周我们欢迎 Ines Montani(@ _ Ines Montani)成为我们本周的 PyDev!Ines 是爆炸 AI 的创始人,也是 spaCy 包的核心开发者,这是一个用于自然语言处理的 Python 包。如果你想了解 Ines 的更多信息,你可以查看她的网站或者她的 Github 简介。让我们花一些时间来更好地了解她!

能简单介绍一下自己吗(爱好、学历等):

嗨,我是伊内斯!我几乎是在互联网上长大的,11 岁时开始制作网站。我记得我坐在学校里数着时间,直到我可以回家继续做我的网站。当我在做一些特别令人兴奋的事情时,有时我仍然会有这种感觉。

我不太确定我的人生该做什么,所以我最终攻读了媒体科学和语言学的联合学位,并在媒体行业工作了几年,领导市场营销和销售。但是我总是一边编程一边做东西。

2016 年,我和我的联合创始人马特一起开始了爆炸。我们专注于机器学习的开发工具,特别是自然语言处理,因此基本上是处理大量文本并从中提取信息。我们的开源库 spaCy 是一个流行的软件包,用于构建工业级的、生产就绪的 NLP 管道。我们还开发了 Prodigy ,一个为机器学习模型创建训练数据的注释工具。

我住在德国柏林,如果我不编程,我喜欢抱石游ðÿ——吃ðÿ美食,和我的宠物鼠呆在一起。

你为什么开始使用 Python?

这真的有点...发生了。我从来没有坐下来说,嘿,我想学 Python。我实际上很不擅长坐下来学习。我总是需要一个项目或者更高层次的目标。当我开始接触自然语言处理时,我想使用和研究的许多工具都是用 Python 编写的。所以最后我一路学习 Python。作为一门语言,它也吸引了我,因为它非常容易理解和简单,我喜欢它的语法。

你还知道哪些编程语言,你最喜欢哪一种?

这些天,我主要在 Python 和 Cython 中工作。我还精通 JavaScript,最近开始更多地使用 TypeScript,以前还学过一点 PHP 和 Perl。

我不想纠结于“编程语言”的定义,但是就写代码而言,我也真的很喜欢为 web 构建东西。一旦你了解了 CSS,你会发现它非常优雅,而且它实际上是我最喜欢写的东西之一。

你现在在做什么项目?

我最近完成了一堆工作了很久的东西!另一个月,我们终于发布了开源库 spaCyv2.1 。我还用 spaCy 发布了一个关于高级 NLP 的免费互动在线课程,以及一个用于构建互动在线课程的开源框架

目前,我们正在开发 Prodigy Scale,这将是我们注释工具 Prodigy 的扩展产品,专门针对那些想要扩大注释项目规模的大型团队。让我特别兴奋的是通过自托管集群实现的以数据隐私为中心的架构,以及用于审查数据、测量注释者协议以及交互式构建注释和模型训练流的新功能。

最后,我还在组织我们的第一次现实生活(!)在柏林为更广泛地与 spaCy 和 NLP 一起工作的人们举办的活动。我们有很酷的扬声器组合,所以会很有趣。它被称为“spaCy IRL ”,发生在 7 月 6 日——你可以在这里找到更多关于它的细节。

哪些 Python 库是你最喜欢的(核心或第三方)?

  • IPython shell :我不得不承认,我经常使用普通的 Python 解释器,主要是尝试一些东西,快速测试和运行一些代码,用 spaCy 解析一些文本,等等。这是一种“思想爆炸!“当我发现 IPython 包含一个增强的交互式 shell,具有语法高亮、自动完成和各种其他很酷的特性时。
  • 黑色:我们一直在慢慢地将黑色自动格式化程序添加到我们的 Python 代码库中,这非常令人满意。结合 Visual Studio 代码中的 flake8 和自动格式化和林挺,它真正改变了我编写 Python 代码的方式。
  • 我们为自己的 Python 库编写了许多命令行接口——这是 Prodigy 中一个特别突出的特性。Plac 提供了一个非常小而简洁的方法来用 decorators 定义命令行接口。它适用于快速脚本,但对于长期库代码也是一个很好的解决方案,因为它可以帮助您确保您的 CLI 行为一致,并拥有良好的文档。
  • FastAPI :我从来不喜欢你用 Django 或 Rails 这样的框架得到的 web 开发的服务器端模板风格,因为我一直想写更多交互式的单页面应用程序。FastAPI 是纯 REST 框架中的一个新步骤,它真正利用了新的 Python 特性,如类型提示和异步/等待。我们已经将所有的服务都转移到了 it 上,到目前为止,体验非常好。

尽管它不是严格意义上的 Python 库,但我也想对 Binder (以及相关的 Jupyter 生态系统)大声疾呼。他们的组件和构建模块完全改变了我在网络上执行 Python 代码的方式,并使我能够构建如此多的酷东西,包括 spaCy 的交互文档和我的在线课程框架

能告诉我们你的生意爆款 AI 是怎么来的吗?

我的联合创始人马特在 2014 年离开学术界,去写 spaCy。随着他研究的技术变得越来越可行,公司对使用他的研究代码越来越感兴趣。当时真正缺少的是一个库,它将研究中的工作成果转化为可用于生产的实现。我们是在马特在柏林写《空间》第一版时认识的。不久之后,我们开始一起工作。我构建的第一个东西是一个交互式可视化工具,用于统计模型预测的文本语法。

2016 年,我们创立了 Explosion,专注于构建 NLP 和机器学习的开发者工具。在最初的几个月里,我们在专注于我们的产品之前,用咨询来支撑我们的公司。在风险投资生态系统的驱动下,我们很高兴避免了许多新软件公司面临的干扰。实际上,我在 2018 年欧洲 Python 大会上给了一个主题演讲,讲述了我们运营一家开源软件公司的经历,这个演讲很好地总结了我的感受。

Explosion 现在非常稳定,完全基于我们第一款产品 Prodigy 的收入。我们也即将推出我们的第二款产品 Prodigy Scale,并且一直在与一些优秀的开发人员合作,包括一些即将加入我们团队的新员工。所有这些都意味着 spaCy 将会得到充足的资金支持,有很多很酷的新功能值得期待。

感谢你接受采访,Ines!

本周 PyDev:伊克巴尔·阿卜杜拉

原文:https://www.blog.pythonlibrary.org/2022/12/12/pydev-of-the-week-iqbal-abdullah/

本周,我们欢迎 Iqbal Abdullah ( @iqbalabd )成为我们本周的 PyDev!Iqbal 是东亚和东南亚地区的 Python 社区组织者。

Iqbal Abdullah

让我们花些时间来更好地了解 Iqbal!

你能告诉我们一些关于你自己的情况吗(爱好、教育等):

我叫伊克巴尔·阿卜杜拉。我的国籍是马来西亚。在过去的 20 多年里,我一直居住在日本

我能流利地理解三种自然语言,其中一种是基本的。我通过经营一家名为拉洛卡实验室的小型技术公司来谋生,我也很高兴地提到这家公司大量使用了 Python 的

**在 Python 社区中,我是 PSF 会员,PSF 管理成员,并且一直积极参与东亚和东南亚地区的 Python 社区

我还在多元化和包容性(D&I)工作组以及 PSF 的商标工作组提供帮助。

你为什么开始使用 Python?

我开始用 Python 是因为我当时所处的职场(Yahoo!日本在 2002 年)使用 Python 来管理和监控其服务器。在那之前,我大部分时间都在用 C 语言工作。那时,我们以一种非常时髦的方式使用 C。为了最大化服务器吞吐量,减少客户的等待时间,我们将所有内容编译到 apache 模块中,在业务逻辑完成后,它会输出 HTML。所以 HTML 代码是和我们所有的 C 业务逻辑一起编译的。

但是使用 C 来管理服务器是不切实际的,所以我们运行脚本,一些在 cron 上运行,一些手动执行,来管理、监控和编译我们拥有的数百台服务器的数据。

你还知道哪些编程语言,你最喜欢哪一种?

我可以说我只知道四种编程语言:Python、Javascript、Java 和 c。只有 Python 是我在过去 5 年中一直使用的编程语言。这是我最喜欢的,尽管老实说,它已经开始演变成一种东西,如果我在 15 年前尝试当前的 Python,我不会觉得有趣。

Python 是我的最爱,主要因为三点:

1.我可以用它来快速测试东西(创建原型),而不用大费周章地设置东西。与上面的第一点相关:有许多现成的库和框架可以使用。
3。Python 提倡“有一种显而易见的方法来做到这一点”,再加上强制的空白,提高了可读性。不管是谁写的代码,你基本上都能弄清楚那个人想做什么。

你现在在做什么项目?

除了概念证明(POC)或学习新概念和新事物,我现在不写太多代码。大部分繁重的编码工作由我们的首席技术官 Kamal Mustafa 领导的工程团队完成。话虽如此,我们的最新项目是一个名为 Kafkai 的人工智能内容生成器,它大量使用 Python 作为 web 应用程序的框架,也作为连接我们使用的不同模型的培训以及生成本身的粘合剂。

哪些 Python 库是你最喜欢的(核心或第三方)?

我最喜欢的是 Django 框架。我从 0.9 版本开始使用它,当时生活更简单,只有基于函数的视图。现在有其他更轻量级的框架,比如 Flask,如果你的

还有熊猫,这使得大量数据的可视化变得简单多了。作为一个小企业主,这有助于我了解我们的客户在做什么(相对于他们在说什么),并允许我做出基于证据的决策。

你是如何开始组织 Python 会议的?

这一切都是从 2010 年我参加了第一届 APAC PyCon 大会开始的。那时 Python 开始成为一种流行语言,但在东京还没有流行到让足够多的人考虑组织会议。

从新加坡回来后,我遇到了我在会议期间遇到的来自东京的其他与会者,我们决定尝试组织我们自己的会议。这是 PyCon JP 的开始。我们当时不确定它是否会被机构群体所接受,但在会议进行了 10 年之后,我们也许最终可以说它是成功的。

根据我在管理 PyCon JP 时学到的知识,我将这个想法带到了马来西亚的社区,我们在 2014 年开始了 PyCon MY,最终由我主持了 2017 年在吉隆坡举行的 APAC 地区 PyCon。

作为会议组织者,你学到的前三件事是什么?

作为会议组织者,我学到的前三件事:

1.世界不会因你而开始,也不会因你而结束:几乎所有组织会议的人都是志愿者。事实是,我们的工作大多数时候都是理所当然的。所以我们不应该把自己当回事,在失去兴趣的时候,在筋疲力尽之前离开。
2。给他们带路,他们就会跟着走:我在两个不同的国家开始了 PyCons,尽管这两个国家的文化和语言不同,但人类是一样的:他们对开始持怀疑态度,害怕失败。如果我们降低失败的风险,并展示出即使参加我们会议的二十个人也能开心一天,他们就会被说服。我们通过计算机与人类一起工作:我们在技术行业内往往会失去大局,对技术以及我们如何使用它来运行事物感到兴奋。但事实是,会议是由人类为人类举办的,所以我们需要集中精力为与会者提供最佳价值,这几乎始终意味着人类的联系和知识共享,而这只能在现实生活中才能实现。

你还有什么想说的吗?

是的。事实上,有不少:

  • 首先,如果你使用 Python,并且还没有这样做,请成为 PSF 成员!你可以在网上注册,只需要 3 分钟。
  • 其次,作为 PSF 多元化和包容性工作组的一部分工作,我们正在收集构成我们多元化社区的不同人群的数据。如果您还没有这样做,请填写我们的调查问卷,以便我们有数据来更好地了解我们的社区。
  • 第三,如果你以所有者甚至是雇员的身份参与一家使用 Python 开发商业产品的企业,请与负责财务的人讨论你如何能够为 Python 做出贡献。
  • 最后,请记住对你周围的人说谢谢,他们作为维护者、社区组织者或志愿者为 Python 贡献了时间和精力。**

本周 PyDev:Irina Truong

原文:https://www.blog.pythonlibrary.org/2018/12/17/pydev-of-the-week-irina-truong/

本周,我们欢迎 Irina Truong(@ Irina Truong)成为我们本周的 PyDev!Irina 已经在几次 Python 会议上发言,并且是 pgcli 的维护者,pgcli 是一个 Python 包,是 Postgres 数据库的命令行接口。你可以在 Github 上看到她还在做什么。让我们花点时间去了解一下伊琳娜吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)?

我拥有乌克兰哈尔科夫电子大学的计算机科学硕士学位。我练合气道,可能的话会骑自行车去一些地方。我还喜欢飞行(并持有私人飞行员证书)、单板滑雪和攀岩,但当我女儿出生时(她 4 岁了),这些爱好不得不让位。我喜欢旅行。我去过欧洲的几个国家,但从未去过亚洲或南美,所以这些地方都在我的游览清单上。

你为什么开始使用 Python?

我已经用 C#工作了很长时间。NET),但整体印象不是很好。网络生态系统。我用几种不同的语言编写 web 应用程序,然而却没有一见钟情。直到我遇到了我的第一个关于构建小型 web 应用程序的 Python 教程。代码清晰、简洁,应用程序不需要设置任何服务器在本地运行。我知道我想用这种语言写作。所以我在里面写了一个个人的小项目。然后,我买了第一次 PyCon 的票,在这里我找到了一个新的雇主,一个可以让我用 Python 写作的雇主。想象一下!

你还知道哪些编程语言,你最喜欢哪一种?

我用 Perl、PHP、Java 写了几年,用 Ruby 写了一点。我学习了 Scala,但是从来没有机会在现实世界的项目中使用它。C#是最长的一个阶段,但是一旦转到 Python,就再也没有回头。偶尔,我不得不做一些前端工作(HTML/CSS/Java Script),但我更喜欢后端。Python 仍然是我的最爱,Scala 紧随其后。作为一名开发人员,我必须了解 SQL,尽管它不是一种编程语言。

你现在在做什么项目?

在我的日常工作中,我是一家名为 Parse.ly 公司的开发人员。我们的产品是面向数字出版商的分析仪表板。为了提供所有这些漂亮的图表和统计数据,我们在 AWS 中使用 Apache Spark 和 Apache Storm 收集和处理大量事件。

工作之外,我是 pgcli 的维护者。对于 PostgreSQL 来说,它是一个更好的客户端,基于一个叫做 Python Prompt Toolkit 的神奇库。我还参与了其他 dbcli 项目,比如 mycli ,这是一个 MySQL 的 cli。我还为 Docker 编写了一个名为 Wharfee 的小 CLI,但遗憾的是,这个项目并没有得到太多的关注。最近开始给 Dask 投稿。

哪些 Python 库是你最喜欢的(核心或第三方)?

我发现 bpython 非常有助于快速了解“如果我用 python 做这件事会发生什么”。熊猫很适合查看一些数据。当我需要找出我不认识的包中的依赖关系时, pipdeptree 非常有用。作为 API 正确使用的一个例子,我会说请求库。

你是如何在 Python 大会上发言的?

我有一个朋友在 PyCon 上做了一个演讲(am jith Ramanujam,PGC Li的作者)。然后是另一个朋友(埃斯特·南皮拉迪斯的联合创始人)。当然,他们都是超人,但是,很长一段时间以来,我一直认为,我不是最聪明的人,我没什么好说的。在某个时候,越来越多的人开始带着工作上的问题来找我,我能够给他们很好的答案,所以我意识到我有话要说。但是我总是非常害怕让自己出现在公众面前。我和我的两个朋友都谈到了这个问题,并试图从他们的经历和他们应对公众演讲挑战的方式中学习。最后,我想,“嗯,肯定不会比怀孕 5 个月就通过私人飞行员考试更糟糕吧?”?我是对的。它不是。

你对那些认为自己不能在会议上发言的人有什么建议吗?

看看 PyCon 舞台上的那些演讲者。他们看起来怎么样?自信?知识渊博?搞笑?在里面,他们战战兢兢。我知道,因为我和很多人谈过,也问过这个问题。没有人去那里想“是啊,小菜一碟,我要成为明星了”。但是通过练习会变得更好。所以尽可能多的练习。首先,打开你的摄像机,对着它说话。复习。解决你的行为问题(嗯...,呃,坐立不安),再试一次,并记录。重复,直到你可以说“你知道,这听起来并不太糟糕!†.此时,在当地的集会上展示你的演讲。谈话结束后,从人们那里获得反馈。带上一两个朋友,这样你可以得到更好的反馈,更多的细节。在你对一群 30 人演讲后,对一群 500 人演讲真的没什么不同。

还有,在这里看一些很棒的建议:https://ref . readthe docs . io/en/latest/advice _ for _ pycon _ speakers/。这句话对我特别有帮助:

一位投稿人说,“我还没见过有人被嘘下台的演讲,我见过一些可怕的演讲。â€

非常正确!你不会把一个开发伙伴嘘下台,是吗?那你为什么害怕别人对你做那样的事?

你还有什么想说的吗?

作为一名软件开发人员,你通常与其他人在一个团队中工作。不要容忍别人不专业或不友好地对待你或团队中的任何人。如果有人是个混蛋,把他们叫出来,或者和其他人提起。善待他人,分享你的知识。如果你最终和一群让你不愉快的人在一起,尽管这不是你的错,离开吧。

谢谢你接受采访,伊琳娜!

本周 PyDev:Irit kat riel

原文:https://www.blog.pythonlibrary.org/2022/11/21/pydev-of-the-week-irit-katriel/

本周我们欢迎艾瑞特·卡特瑞尔(@艾瑞特·卡特瑞尔 )成为我们的本周 PyDev!Irit 是在微软工作的 CPython 核心开发人员。Irit 帮助编写了 PEP 654 ,它是关于“异常组和 except*”的,今年在 Python 3.11 中发布。这个新特性使得同时引发和处理多个不相关的异常成为可能。

让我们花些时间更好地了解 Irit!

你能给我们介绍一下你自己吗?

我学的是计算机科学,1995 年毕业后,我在以色列海法的开发中心为英特尔工作。我当时正在为 Merced 处理器开发一个性能模拟器,在真正的芯片出现之前,微软编译器团队就已经在使用它了。然后回学校读了图算法的博士(纸笔证明,不编程)。那时我最喜欢的论文是关于一种算法,当你插入边时,它能有效地保持 DAG 节点的拓扑顺序。改进这样一个基本问题很有趣。

博士后,我结束了在伦敦曲折的生活。当时伦敦的技术领域非常集中在金融领域,在接下来的 15 年左右的时间里,我主要从事银行技术工作。这是在金融危机之后,许多事情都在发生变化,因此需要新的技术系统和对现有系统的改变。我最初从事的工作与业务关系密切,从事自动计算各种货币批发价格的系统工作。它给了我有用的经验,尤其是看到了一个 bug 可能有多贵,但我并不喜欢这份工作,不想以此为职业。我逐渐转向更基础的技术领域,为其他程序员提供服务,而不是直接支持业务线。

为什么开始用 Python ?

2016 年,我在美国银行(Bank of America)找到了一个角色,为我整合了一切——我在维护一个基于 python 的内部语言,该语言定义了一个大规模可扩展的电子表格。换句话说,这是一个图表,它跟踪计算之间的依赖关系,以支持输入变化时的有效更新。它是 2010 年建立的系统的核心部分,以符合后金融危机时代的监管风险管理要求。在这个职位上,我能够利用我的图形算法知识,同时深入研究语言设计问题。我以前作为面向业务的程序员的经历帮助我理解了我的用户的工作条件,并对他们能够接受的变化有了一个现实的期望。这也是我第一次在 Python 中做任何重要的事情。

在某个时候,我的经理鼓励我参与 cpython 开发本身,我发现这非常令人满意。在银行,我有大约 4000 名直接用户,但是我在 cpython 上所做的工作影响了数百万程序员。知道这一点是一种难以置信的感觉。最终,我成为了一名 cpython 核心开发人员,后来加入了微软的 faster-cpython 团队,全职开发 cpython 并专注于性能。

你还知道哪些编程语言,你最喜欢哪一种?

除了 Python,我主要使用 C、C++和 Java。有一段时间(直到大约十年前),我一直关注 C++和 boost 库的开发,我喜欢语言规范的严谨性,以及将东西放入 boost 库和后来的 C++ stdlib 的过程,同时保留了库的整体一致性。与此同时,C++在新项目中的使用越来越少(除了对性能敏感的项目),因为程序员在其他语言中更有效率。

我不认为我有最喜欢的语言。在大多数情况下,使用哪种语言不是由我决定的,语言也不是我决定接受工作机会的主要因素。目前我只写了 Python 和 C,我想这将会是一段时间,因为我正在做的事情。如果我有理由使用另一种语言,我会的。

你现在在做什么项目?

目前,我正在对 cpython 编译器进行一系列的增量更改,这将改进它的内部结构,使它更容易发展。将 python 代码翻译成字节码包括许多步骤:标记代码,将标记转换成抽象语法树(AST),最后编译器将 AST 翻译成字节码。我们目前可以通过标准库的令牌化ast 模块来访问前两步,但是第三步,将 ast 编译成字节码,是一个很大的 C 代码黑盒,并且相当复杂。它包括遍历 AST 并发出指令序列的代码生成步骤,然后是应用大量技巧使代码更快的优化阶段,包括控制流图的分析。最后,汇编程序解析跳转偏移量,发出最终的字节码,并为代码对象构造附加信息,如异常表和源位置表。

经过三十年的发展,编译器的代码有点难以使用,原因有二。首先,这些不同阶段的代码是非常耦合的,有时很难预测一个变化可能产生的影响。第二,并不总是有可能为我们想要做出的改变编写单元测试,因为每个测试都要运行大量的代码。我的目标是将编译器分成三个或四个不同的阶段,每个阶段都可以独立于用 Python 编写的单元测试。一旦我们做到了这一点,编译器的代码将会被更好地构建并且更容易维护。它将更容易被需要使用它的开发人员所理解,并且它将给我们信心去实现各种各样的优化。

你还有什么想说的吗?

我在职业生涯的后期参与了开源开发。我带来的技术经验当然非常有用,但是关于开源是如何工作的,还有很多东西需要学习。工作中固有的透明性非常令人耳目一新,我已经提到了在高影响力项目中工作的兴奋感。我希望这将鼓励其他职业生涯较晚的开发人员为开源项目,尤其是 cpython 做出贡献。从阅读开发指南开始。

Irit,谢谢你接受采访!

本周 PyDev:Ivan levkivsky

原文:https://www.blog.pythonlibrary.org/2017/01/02/pydev-of-the-week-ivan-levkivskyi/

本周我们欢迎 Ivan levkivsky(@ ilevkivsky)成为我们本周的 PyDev!Ivan 是几个 Python 增强提案的作者或合著者,特别是 483、484 和 526。换句话说,Ivan 是通过类型模块向 Python 添加类型提示的主要开发者之一。伊万是一名科学家,正因为如此,他写了很多有趣的研究论文,我很乐意承认这些论文我看不懂。你可能也会发现他的 Github 页面很有趣,因为他参与了很多项目。让我们花些时间来更好地了解我们的同胞皮达尼斯塔!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名理论物理研究员。我在高中时对数学物理更感兴趣,但现在我更感兴趣的是介观物理学——研究我们宏观世界和量子微观世界之间边界的领域。我学了 20 年左右的物理,从来没有接受过任何 cs 教育。尽管如此,我应该指出,我对范畴理论的粗略了解在编程领域对我有所帮助。

大多数时候,编程是我的爱好,只是在过去的 5 年里,我一直为工作而编程。我第一次接触编程是在 10 岁的时候学习 x86 汇编。然后就时不时玩玩其他语言。现在,我在工作中大量使用 Python,主要用于原型制作和数字处理。

我来自乌克兰,但现在住在瑞士。除了物理和编程,我还喜欢山地运动:徒步旅行、攀岩、滑雪旅游等。我也很喜欢听音乐,我过去常常拉手风琴和贝斯。

你为什么开始使用 Python?

我第一次尝试 Python 是在 2009 年玩自动化交易策略的时候(纯粹为了好玩)。我正纠结于 Mathematica 中的一些数据处理,一个朋友给我看了 Python。我对列表的理解印象深刻——那是一见钟情🙂-我决定学习更多的语言。这可能是我人生中的一个重要时刻:一个“编程又变得有趣了”的经典案例。那一年我产生了兴趣,学习了很多新的编程语言。现在我喜欢编程,尤其是在我的研究工作中用 Python 编程。

另一个重要的步骤是去年我开始为 CPython 做贡献。随着理解的加深,对语言设计和实现的理解也越来越多。使用 CPython 代码是一种乐趣。

你还知道哪些编程语言,你最喜欢哪一种?

我玩过十几种编程语言,但在主流语言中,我最喜欢的可能是 C 语言(当然是在 Python 之后)。我还应该指出 Forth、Scheme 和 Haskell。我认为这三个对我的编程哲学和风格影响很大。

你现在在做什么项目?

我对 Python 中的静态类型感兴趣。我合作编写了人教版 483: 类型提示的理论,参与编写了人教版 484: 类型提示,合作编写并实现了人教版 526: 变量注释的语法。静态与动态类型通常被认为是一个“危险”的话题,因为人们的观点往往会两极分化。但是我喜欢 Python 选择了一种明智的方式来添加一个富于表现力的类型系统,同时使它完全可选和渐进。也就是说,人们可以只注释部分代码,并使用特殊的类型“Any”来无缝地组合静态和动态类型。这种方法与 Java 或 C#等静态语言中的类型声明形成对比,更接近于在rackErlangTypeScript 中的方式。人们可以将类型提示视为向第三方工具提供结构化类型元数据的一种方式,或者是编写伴随 docstrings 的可自动验证的文档的一种方式。类型提示也有可能用于优化,但现在这不是主要方向。

现在我主要关注的是 mypy ,一个流行的 Python 静态类型检查器。特别是现在,我正致力于增加对结构化子类型的支持(也称为“静态鸭类型”或协议或接口)。我也已经开始开发 com2ann ,这是一个小型的库,用于类型注释和类型注释之间的自动翻译。添加类型注释是因为在早期版本的 Python 中缺乏对类型注释的语法支持。在 2.7 中只允许类型注释,在 3.6 之前需要类型注释来注释变量。该库已经支持翻译 PEP 526 变量注释,更多的功能将很快添加。

最后,在计算遗传学中有一个开源项目,我稍后会谈到这个项目。

哪些 Python 库是你最喜欢的(核心或第三方)?

我将命名为“typing ”(原因很明显),“pickle ”,我发现它非常简单,但对于保存一些任意数据以供以后研究或处理非常有用,“collections ”,它提供了几个我经常使用的方便的数据结构(例如,“defaultdict”、“Counter”、“ChainMap”)。
在第三方中,我最喜欢 numpy 和 matplotlib。我在工作中经常使用它们,我很喜欢它们。

作为一门编程语言,你认为 Python 将何去何从?
我认为未来十年 Python 应用最多的三个主要方向是:

  • 科学和编程相遇的地方:近年来,科学和 IT 之间的许多边界领域都得到了极大的推动,包括大数据和机器学习。Python 是一个很好的工具,可以交互式地探索支配现实世界的半结构化数据。考虑到许多方便的数字库和框架,如 numpy、pandas、scikit-learn、theano 等。可以看出 Python 非常适合这些领域。
  • 面向非程序员的编程:编程正在成为一种新的文化,它渗透到几十年前不可想象的领域:音乐、设计等等。Python 可读性很强,对于初学者来说很容易学习,并且面向把程序员(而不是计算机)放在第一位。所以我觉得这个方向很快就会非常突出。
  • 大型多语言项目:在现代编程世界中,人们越来越多地使用正确的工具来解决给定的问题。Python 是非常模块化和可扩展的,可以很好地与其他语言兼容。C API 和动态特性对此很有帮助。社区中的传统也鼓励模块化和灵活性,而不是僵化。例如,异步层不是内置在语言中的,而是“可插入的”,类型系统是可插入的,可插入 JIT 的基础设施正在开发中,等等。

对于现在的编程来说,这些可能是最重要的方向。我相信 Python 将会引领这些方向。

你还有什么想说的吗?

我是开源开发的新手(大约两年),但是在 Python 社区工作是一次非常棒的经历。我受到了非常热烈的欢迎,我也得到了很多赞赏和信任。Python 是一种很酷的语言,但围绕它形成的社区和文化是 Python 成功的重要组成部分。

感谢您接受采访!

本周 PyDev:伊夫林·德米罗夫

原文:https://www.blog.pythonlibrary.org/2015/02/02/pydev-of-the-week-ivelin-demirov/

本周,我们欢迎 Ivelin Demirov 成为本周的 PyDev。艾夫林是《T2 可视化学习 Javascript》一书的作者,最近他的下一本书《T4 可视化学习 Python》在 Kickstarter 上获得了成功。让我们花些时间去了解艾芙琳吧!

ivelin-demirov

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

早在 1989 年,我开办了一个由当地学校组织的计算机班。

它教 Z80 的汇编程序。那一刻,我明白了我更像是一个视觉学习型的人。

我于 2001 年毕业,是一名工业工程师。我喜欢创造新产品,但我爱上了图形和网页设计。在接下来的 12 年里,我为不同的机构工作,最终成为了一名艺术总监。那段时间我一直和程序员一起工作,我很好奇他们在做什么,甚至试图自己写一些代码,但作为一个视觉型的人,我真的很难专注于一个充满代码的无聊的黑白屏幕。

你为什么开始使用 Python?

当我在一个网站上工作,向我部门的程序员来回发送指令时,我对结果和完成一段脚本所需的时间感到非常沮丧,以至于我想坐下来自己写。我知道我需要慢慢开始,因为我以前试过,结果不是很好。一个来自开发部门的朋友建议我从 Python 开始,它是迫使你写干净代码的最简单的语言。

你还知道哪些编程语言,你最喜欢哪一种?

由于当时我的重点是 web 开发,所以我从 HTML、CSS 和 JavaScript 开始

然后尝试了 Ruby,PHP,C++。JavaScript 和苹果新推出的 Swift 语言是我最喜欢的。

你现在在做什么项目?

现在我正在编写一本交互式电子书,使用隐喻、现实生活中的物体类比和简单的拖放练习来教授 Python。

哪些 Python 库是你最喜欢的(核心或第三方)?

大概是 pyGame 吧,太好玩了!

是什么让你决定写一本关于 Python 的书?

自从我写了第一本关于 JavaScript 的书,许多人开始问我是否可以用同样的风格写一本 Python 书。

你能告诉我们你的 Python 书籍与众不同的地方吗?

我读了很多关于心理学的书,我知道有三种主要的学习方式:听觉、视觉和动觉。我的书侧重于视觉类型。

大部分 Python 或者任何编程语言的书籍都是有多年经验的专业程序员写的。这些作者已经形成了一种优秀的逻辑和对原理的理解,他们觉得这些原理对他们来说是如此自然,因此很难向一个不精通技术并且在学校数学不太好的人解释。

你还有什么想说的吗?

如果你发现自己在努力学习编码,不要放弃,寻找替代的学习方法或者更好的方法,自己创造。你将在这个过程中学习,然后帮助成千上万和你有同样感受的人。

谢谢!

一周的最后 10 个 PyDevs

  • Andrea Gavana
  • 蒂姆·戈登
  • 道格·赫尔曼
  • 玛格丽塔·迪利奥博士
  • 马里亚诺·莱因加特
  • 巴斯卡尔·乔德里
  • 蒂姆·罗伯茨
  • 汤姆·克里斯蒂
  • 史蒂夫·霍尔登
  • 卡尔查看

本周 PyDev:Jacob Vander plas

原文:https://www.blog.pythonlibrary.org/2016/12/19/pydev-of-the-week-jacob-vanderplas/

本周我们欢迎 Jacob Vander plas(@ jakevdp)成为我们的本周 PyDev!Jacob 是 Python 数据科学手册:处理数据的基本工具的作者,在华盛顿大学担任研究员和教师。正如您可能已经从他的书名中猜到的那样,Jacob 非常熟悉 Python 中的科学编程项目。如果你查看他的 github 简介,你会在 Scikit-learn 上发现许多有趣的亮点,比如。让我们花些时间去更好地了解他!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我一直被体育活动所吸引——我在高中和大学时是游泳运动员,大学毕业后参加了铁人三项,几年前以铁人三项达到顶峰。这些天我不太受竞争的驱使,但我放松的方式是出去长途徒步旅行、跑步、游泳或骑自行车。我最喜欢的消遣是去深山里的长道上跑步,尽管我最近在家带着一个蹒跚学步的孩子不怎么去了。

我在帕洛阿尔托出生长大,在卡尔文学院主修物理学,在华盛顿大学攻读天文学博士学位。在此期间,我在日本北部生活了一年,在内华达山脉指导了两个夏天的登山远足,并在圣克鲁斯上方的红杉林中的一所中学的户外科学项目中任教了两年——这些年来我的经历以及与我共度时光的人们对我产生了深远的影响,我非常感谢我所拥有的机会!

你为什么开始使用 Python?

在户外生活和教学几年后,我决定深入研究天文学和天体物理学,这样我最终可以在更高的水平上教授它们。当我在 2006 年开始读研时,我唯一真正的编程经历是差不多十年前的一门高中 C++课程。在研究生院的第一个季度,我加入了一个研究小组,并问我的导师我应该学习什么编程语言。当时该部门的大多数人都在使用这种被称为 IDL 的专有脚本语言——出于我不完全理解的原因,当时 IDL 推动了大约 90%的天文学研究——但与我一起工作的教授充满信心地告诉我,Python 是未来的发展方向。所以我在我的老式 Windows 笔记本电脑上安装了 Python 的 IDLE,然后开始工作。寒假期间,我通过编写数独解谜程序和生成器的练习自学了这门语言的基础知识,从那以后我一直在学习。回想起来,事实证明 advisor 是绝对正确的:今天,很大一部分专业天文学家正在使用 Python 进行他们的研究工作,不用说,遵循他的建议对我很有帮助!

你还知道哪些编程语言,你最喜欢哪一种?

除了 Python,我还学过 C、C++和 Javascript,但老实说,我一直最喜欢的编程语言是 Cython 。Cython 语言是 Python 的一个超集,相当于 Python 和 C 语言的变种混合体,它可以编译成 C 代码,并通过标准 Python 代码中散布的可选类型声明来辅助。您可以获得 Python 本身的所有灵活性、表现力和美感,但是当您的程序部分需要从编译代码中获得额外的速度提升时,C 风格的语法就在您的指尖。

你现在在做什么项目?

在工作了太长时间之后,我刚刚结束了我的 OReilly 书,即 Python 数据科学手册。我目前正在对这本书背后的所有 Jupyter 笔记本进行最后的编辑,并在它们准备好的时候在 github 上发布。除此之外,我最近在 Altair 上进行了大量工作,这是一个基于 Vega-Lite 可视化语法的声明性统计可视化库。实际上,我对 Altair 很感兴趣:它有一个很好的、干净的、声明性的可视化语法,我相信这将解放用户去考虑数据中的关系,而不是考虑轴、刻度、标签和显示一个图所涉及的其他细节。

哪些 Python 库是你最喜欢的(核心或第三方)?

在 Python 的核心库中,我喜欢 collections 模块——它包含了如此多有用的数据结构,而在我看来,这些数据结构被大大地利用了。至于第三方模块,我真的很喜欢主持人包:这是一个超级干净和快速的包,通过马尔可夫链蒙特卡罗进行贝叶斯估计。Numba 是另一个最爱。这有点神奇:你给任何 Python 函数添加一个装饰器,Numba 就会把它 JIT 编译成 LLVM 字节码,这在很多情况下会带来巨大的加速。Numba 一直在稳步改善,我希望不久的将来能再次深入了解它。Dask 是另一个很好的例子:它是一个相对较新的科学 Python 代码并行化框架,最近我对它很感兴趣。我也对即将到来的 Jupyter 实验室项目感到非常兴奋:目前它仍处于 alpha 阶段,但就我所见,我认为它将在科学 Python 空间中开启许多非常有趣的可能性。

**作为一门编程语言,你认为 Python 将何去何从?

我认为 Python 非常独特,因为它跨越了这么多技术领域的界限。在统计领域,它与 R 等工具竞争;在科学计算领域,它与 Matlab 和 Julia 等工具竞争;在网络领域,它与 Javascript 和 Go 等工具竞争...这是一个优势,因为 Python 可以非常无缝地跨越这些界限,但它也可能是一个弱点,因为核心语言功能通常无法在不牺牲其他领域的情况下适应其中任何一项任务。

在过去的几年里,我很高兴地看到 Python 核心团队对科学用户的需求有了更多的认识,例如增加了数组缓冲协议、matmul 操作符、类型提示的编码,尤其是打包中的 wheel 格式。与十年前相比,如今的 Python 世界对科学用户更加友好,我相信 Python 用户和开发人员社区的各个分支之间的持续对话将进一步推动这一进步。

你还有什么想说的吗?

感谢有机会成为这个系列的一部分!

感谢您接受采访!**

本周 PyDev:杰奎琳·卡齐尔

原文:https://www.blog.pythonlibrary.org/2018/10/01/pydev-of-the-week-jacqueline-kazil/

本周,我们欢迎杰奎琳·卡齐尔( @JackieKazil )成为我们本周的 PyDev!她是《T2 与 Python 的数据争论》一书的合著者。杰奎琳是梅萨套餐的创作者。你可以去 Github 看看她还在做什么项目。让我们花一些时间来更好地了解她!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我有一个十个月大的女儿,白天工作,做志愿者,还在攻读博士学位,这些天我没有时间专注于自己的爱好。有时候我会拿起 uke 试着给宝宝放一首歌。她太小了,意识不到我有多坏,但是我老公当然知道。

你为什么开始使用 Python?

我在密苏里大学学习新闻学时开始使用 Python。用数据讲故事的想法很吸引我。我受到了 Django 的创始人之一 Adrian Holovaty 的影响,他是我在 MU 的前辈。密苏里大学也是调查记者和编辑以及国家计算机辅助报道研究所的所在地,该研究所培养了一个使用数据讲述故事的社区。我在姜戈的一个会议上参加了速成班。

对于我的硕士项目,在 2008 年总统初选期间,我在《华盛顿邮报》的政治团队工作,构建共享诸如投票后调查数据和奥巴马日程安排之类的数据应用程序。

你还知道哪些编程语言,你最喜欢哪一种?

我编程过的一些语言包括 JavaScript,Go,PHP,SQL,VB,ActionScript。至于我最喜欢的,那是个恶作剧问题吗?

你现在在做什么项目?

我正在开发一个主要的库,这是我创建的——Mesa。它允许您在 Python 中创建基于代理的模型。

哪些 Python 库是你最喜欢的(核心或第三方)?

除了我自己的库,我会说我最近用了 ClickCookie Cutter 。我觉得我一直在使用的一个经典库是请求库。

是什么让你决定写一本关于 Python 的书?

这本书最初是为了让记者有能力争论数据。在写这篇文章的时候,我意识到其他职业,比如商业分析师,也能从中得到一些东西。目标受众是希望快速完成工作的个人,即使这意味着做起来有点乱。

创作一本书你学到了什么?

  • 给自己每天写作的时间/空间。如果你没有,你就不应该这么做。
  • 不要同时读博士,两者会互相冲突...
  • ...尽管它可能会出乎意料地成为你博士资格考试的要求之一。
  • 至少有一个人会告诉你,你错了。
  • 找一个合著者。这有助于保持你的责任感和理智。它还可以帮助您摆脱从 pdf 中解析 100 页数据的困境。
  • 你不会发财的。

如果你能从头开始,你会做些什么不同的事情吗?

有两件事我会采取不同的做法。第一种可能是考虑用 Python 3 编写它。我最初选择 Python 2.7,因为 Python 2.7 对于很多人来说更容易设置,并且在我们开始编写时仍然是一个可靠的标准。然而,现在 Python 3 是标准。我要做的第二件事是写几本更短的书。我的第一本书有 500 页。它很容易被分成两三本书。

感谢您接受采访!

本周 PyDev:Jaime Buelta

原文:https://www.blog.pythonlibrary.org/2021/05/31/pydev-of-the-week-jaime-buelta/

本周我们欢迎 Jaime Buelta(@ Jaime Buelta)成为我们的本周 PyDev!Jaime 写了几本关于 Python 和 Docker 自动化的书。你可以在亚马逊上看到他的一些书。

你也可以通过访问 Jaime 的网站来了解他。

让我们花一些时间来更好地了解 Jaime!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名西班牙开发人员,目前在都柏林的 Double Yard 担任软件架构师,从事将人工智能解决方案引入教育界的项目,这是一个有趣的挑战。在过去的 20 年里,我一直从事科技行业,在许多行业工作过,包括航空航天、金融或游戏行业。我休息了几年,开了一家漫画书店,只持续了几年。

我在我的家乡马德里附近的阿尔卡拉德·赫纳雷斯大学获得了电信工程学位。在西班牙,这个学位是进入计算机科学的传统途径,就像在其他大学是通过电子工程一样。自从我有了第一台电脑——ZX 光谱电脑,我就一直对电脑感兴趣。在我职业生涯的第一年,我主要是用 C 语言进行开发,当你学习机器如何工作时,这是一种很好的沮丧方式。

关于爱好,我弹吉他,虽然不如以前经常弹。我最近正在尝试制作播客,这是一种我认为非常有趣的媒体,我是它的长期粉丝。对于像《星际迷航》这样的开发者来说,我也喜欢非常令人惊讶的东西。我能说什么呢?我想我真是个怪人!

你为什么开始使用 Python?

2008 年左右开始学习 Python。它开始更多的是作为一个兼职项目,我正在寻找一种新的语言来学习,因为我的工作,尝试了一点 Java,但我不喜欢它。我听说了很多关于 Python 的好消息,我开始在业余时间学习。我的第一个 Python 代码基本上是“用 Python 语法写的 C”

我真的很喜欢它,并开始在工作中接触越来越多的东西。我能够做的第一件事是在 Open Office(现在的 Libre Office)中使用非常疯狂的宏,它有一个内部 Python 解释器。代码真的很疯狂,可能比我今天要写的更糟糕,我用 Python 的能力做了很多实验,但是我能够用电子表格做很多数据处理。

我对它非常感兴趣,于是我开始寻找可以让我全职做 Python 开发人员的工作,2010 年我搬到都柏林时就这样做了。从那以后,它就成了我在工作中使用的主要语言。还爱着呢!

你还知道哪些编程语言,你最喜欢哪一种?

c 在我心里还是有一席之地的,虽然这几年没怎么用。我使用了 bash 和 Javascript,也使用了 Ruby 或 Erlang 等更少的语言。这些天,使用 Kubernetes,感觉 YAML 文件是他们自己的语言。

Python 仍然是我最喜欢的语言。

你现在在做什么项目?

目前,我正在从事一个项目,为在线考试创建一个监考解决方案。在过去的一年中,由于 COVID 疫情的出现,这是一个令人感兴趣的领域,所以我们一直很忙。我现在正与一些团队密切合作,他们从事我没有太多经验的领域,比如为 Mac 和 Windows 开发客户端,而我的大部分专业知识都在服务器端。还有人工智能组件,这是另一个对我来说完全陌生的领域。所以此刻我学到了很多!

我还维护了一个我创建的用于在命令行中搜索的小工具,名为 ffind。过去几年的大部分开发都是为了确保与 Python 的新版本兼容,并改进测试和 CI 管道。这是我发明的用来挠痒痒的东西,我每天都用它,我很自豪,即使它很小。

哪些 Python 库是你最喜欢的(核心或第三方)?

对我来说,最伟大的 Python 库是 requests。用于 HTTP 请求是一种享受,文档非常棒,API 也非常好用。这是第三方库的黄金标准,如果创建外部库,我们都应该以此为目标。

我也喜欢很多 Django REST 框架,对于通过 Django 创建 RESTful 应用非常有用。另一个真正有用的工具是 sh,它允许以更简单的方式用 Python 替换 bash 脚本。

“内置电池”库也非常有用。我也喜欢 argparse,为脚本创建一个简单的 CLI 非常容易。

如果你必须选择一本你写过的书作为你最喜欢的,你会选择哪一本,为什么?

虽然我都喜欢,但显然,我认为我将不得不选择“用 Python 实践微服务的 Docker”。我认为我能够从结构化系统和使用可伸缩系统中学到很多东西。它涵盖了很多让我非常感兴趣的东西,比如 RESTful 服务、容器、在生产中运行集群以及创建健康的操作实践。我想我能够谈论一些花了我一段时间才意识到的事情,所以我希望它能帮助其他人让这个过程快一点。

作为一名作家,你学到了什么?

那写作很难!抱歉,我以前就知道了...我的祖父是一名作家,我很小的时候就有了一个想法,那就是写一篇东西需要付出多少努力。此外,由于西班牙语是我的第一语言,这使得这个过程很艰难。

除此之外,另一件显而易见的事情是,通过组织要写的内容、创建示例等过程,你会学到很多东西。它真的迫使你去理解你正在解释的东西。

你还有什么想说的吗?

我有一个博客,我会在 https://wrongsideofmemphis.com/时不时更新,以防有人想看看。

Jaime,谢谢你接受采访!

本周 PyDev:海梅·费尔南德斯·德尔里奥<

原文:https://www.blog.pythonlibrary.org/2015/10/26/pydev-of-the-week-jaime-fernandez-del-rio/

本周,我们欢迎海梅·费尔南德斯·德尔里奥成为本周的 PyDev。他是 NumPy 的核心开发者。让我们花些时间去更好地了解他吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我来自西班牙马德里,在那里我获得了机械工程学位。我在德国工作了几个月,但最终搬回了西班牙,回到了巴塞罗那,在那里我遇到了我的妻子伊娃,我们的两个孩子卢卡斯和加布里埃拉也在那里出生。在过去的四年里,我们一直在圣地亚哥尝试美国梦,这要感谢我过去 15 年的雇主惠普公司。

我过去非常活跃,在俱乐部打了几年橄榄球,还参加了几年的长距离铁人三项训练和比赛。在疯狂部门,我是一个狂热的赤脚跑步者,过去常常骑着固定档位的自行车上下班。这些天,在工作、家庭和我对开源的参与之间,我似乎找不到锻炼的时间或动力。但我仍然幻想着有一天能完成一个没有潜水服、固定装备、赤脚的铁人三项。

你为什么开始使用 Python?

大约在 2004 年,当我加入惠普大幅面打印实验室时,我已经 8 年没写过一行代码了。有人告诉我应该学习一门脚本语言,我选择 Perl 或 Python。我当然选择了 Perl!几年来,我是最没有歉意的 Perl 原教旨主义者,对我周围那些错误选择 Python 的可怜人嗤之以鼻。

让我给 Python 一个机会的是,在它所有的好特性中,任意精度的整数:和一个工作中的朋友,我们开始解决项目欧拉的问题,大整数让你的生活变得更容易。一百个问题之后,我变成了一个毫无歉意的 Python 原教旨主义者,这种情况已经持续了将近 10 年。

你还知道哪些编程语言,你最喜欢哪一种?

我读过或写过的第一个代码是 ZX 谱的 BASIC,大概是在我 8、9 岁的时候。在高中和大学期间,我学习了 Pascal 和 Lisp 的课程或者参与了一些项目,我已经提到了我和 Perl 的短暂交往。虽然我可能仍然能够理解其中任何一个简单的程序,但编写任何实际工作的程序将是一个严峻的挑战。

十几岁时,我在当地夜校上了一门课,之后,真正让我着迷的第一门语言是 C 语言。我仍然有一堆 80 年代末和 90 年代初的 C 和 C++书籍(有人知道吗?)是我自学语言用的。

Python 现在比我写的所有代码都要早:当我写 C 或 C++代码时,它要么附带 Python 包装器,要么直接是使用 C API 的 Python 模块。虽然使用 Python 是一种真正的乐趣,但它甚至比不上用 C 编写一些聪明的代码(最好是涉及指针算法的代码)带来的那种温暖模糊的感觉。

你现在在做什么项目?

我成为一名 NumPy 核心开发人员已经有一年了,工作之外的大部分时间我都花在了编码上。我可能会偶尔为 SciPy,Pandas 之类的做点小贡献,但 NumPy 显然占主导地位。现在大部分都是审查和合并其他人的代码,但我有一个小项目列表,我想找时间自己做。最上面的一个是关于提供更好的排序算法。

哪些 Python 库是你最喜欢的(核心或第三方)?

我在 2012 年夏天爱上了 NumPy,我们仍然过着热恋的生活。它有一个非常聪明的语法,让您可以用几行 Python 代码来表达和运行需要十倍于 C 代码的操作,以获得相当的性能。当下降到 C 语言是不可避免的时候,它提供了包装代码的机制,这样就可以无缝地从 Python 中获得代码。如果没有它,我不认为我会回到开发 Python 包装的数字处理软件的恐惧中。

非常感谢接受采访!

一周的最后 10 个 PyDevs

本周 PyDev:詹姆斯·贝内特

原文:https://www.blog.pythonlibrary.org/2017/04/17/pydev-of-the-week-james-bennett/

本周,我们欢迎詹姆斯·贝内特成为我们本周的 PyDev!James 是 Django web 框架的核心开发人员之一。他还是 Django 软件基金会的董事会成员。詹姆斯维护着一个博客,并且在 Github 上有几个有趣的项目值得一试。现在让我们花些时间来更好地了解我们的蟒蛇同伴!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我在弗吉尼亚的一所小文理学院攻读了哲学学位。直到我上了大学,我才有机会经常接触电脑或互联网,我在一个周末自学了 HTML,因为一位教授让我选择写一篇 20 页的论文或建立一个 5 页的网站来展示一些研究,我很懒。然后人们开始付钱给我,让我为他们做网站(那是 90 年代,当人们发现你懂 HTML,他们就会这么做!),事情就这样开始了。我从未上过任何计算机科学课程,但在决定如何排版我的论文时,我确实学过 DocBook 和 LaTeX。

大学毕业后,我四处漂泊,在办公室工作了一段时间,积攒了一些积蓄,然后开始做全职合同工作,做网页开发员。后来,在 Django 发行后不久,我尝试并爱上了它,这导致我搬到了堪萨斯州,并在最初开发 Django 的公司工作。当我在那里工作的时候,我学会了提交,并成为了发布经理。五年后,我去了 Mozilla,在那里,我作为团队成员花了四年时间建立了 Mozilla 开发者网络平台。

这些天我住在旧金山湾区,在 Clover Health 工作,在那里我们试图让医疗保险变得更好。我还保留了一个博客,在那里我偶尔会写一些关于 Django、Python 或者其他我想到的东西。

我那令人难以忍受的书呆子般的非技术爱好是魔术:聚会,它最初是在我上中学的时候出现的。从那以后,我断断续续地打比赛,在过去的七年里,我还在半职业和职业巡回赛中担任比赛官员(是的,有职业比赛)。通过这种方式,我认识了很多很酷的人,也去过很多地方;有一次,在一场顶级职业锦标赛中,我得到了一次去夏威夷的免费旅行,因为比赛是在那里举行的。

在那次会议和技术会议之间,我结束了大量的旅行,并且(直到 2015 年)成为一名远程员工,这也让我不可避免地成为了一名航空极客,对飞机、机场和常旅客计划了解得太多了。

你为什么开始使用 Python?

当我在做合同 web 开发工作时,主要是用 PHP 和 Perl 语言,我重新拾起了 Python,并对这些语言中的大量死记硬背和不一致感到沮丧。我不断听到关于 Python 的好消息,所以我阅读了网络版的“深入 Python ”,并且迷上了它。不过,在那之后的一段时间里,我无法开始用 Python 做有偿工作,因为我不了解 Zope,而且那时 Zope 是 Python 中大部分网络开发合同资金的来源。

在 Django 最初发布后不久,我第一次开始专业地使用 Python,我的第一份全职 Python 工作是在最初开发 Django 的堪萨斯小报社(Lawrence Journal-World)工作。

你还知道哪些编程语言,你最喜欢哪一种?

我已经写了相当多的 PHP 和 Perl,虽然已经过了很长时间,所以我不确定我是否还“了解”它们。我一直在关注 JavaScript,我不得不说它是一种比以前好得多的语言(浏览器环境也比以前好得多),那时我们称它为“DHTML ”,只是用它来制作图像翻转和烦人的东西,当你试图点击它们时它们就会消失。我感觉核心语言越来越好了,真的,但它迫切需要有人为它提供一个坚实的标准库。

除此之外,我知道足够多的 C 语言,足以对自己构成一定的威胁,如果手边有一个库参考,我可以编写 Java 或 C#(在我职业生涯的早期,它们似乎是“安全”的备份语言),我知道足够多的 Bash,知道我不应该编写 Bash,我有一些 Emacs Lisp,这是因为我将它作为日常编辑器使用了大约 18 年,然后还有一些其他东西。

我试图偶尔为一门新语言做一个教程,看看是否有一些我错过的很酷的想法或范例。在过去的几年里,我尝试了几种函数式语言(OCaml 和 F#看起来不错),当我在 Mozilla 工作时,我尝试了 Rust。我在使用一门新语言方面最大的障碍通常是缺少一些我想要并且有时间用一门新语言写的东西,因为我的编码时间都花在了我的日常工作和我现有的开源承诺上。

我最喜欢的语言还是 Python,毫无疑问。我从 Python 中获得的可读性和简洁性的结合是我在其他语言中从未发现过的。它似乎真的很适合我的大脑,当你将它与标准库、第三方内容的巨大生态系统和令人敬畏的社区结合起来时,我觉得我可以做任何我需要用 Python 做的事情。

你现在在做什么项目?

与我第一次得到承诺时相比,我现在不那么直接参与 Django 了;现在,我把自己在这个项目中的角色描述为“脾气暴躁的老头”,尽管我认为其他几个人会向我挑战这个头衔。我仍然在 Django 的安全团队中,自从 Jacob Kaplan-Moss 和 Adrian Holovaty 正式辞去 Django 的联合 BDFLs 职务以来,我一直在技术委员会中担任某些类型决策的最终决胜局,我还是 Django 软件基金会的董事会成员。

我仍然维护着一些与 Django 相关的包,我总是在某种程度上对它们进行修补,现在我正准备在 Django 1.11 发布时发布新的版本。我也一直在考虑写另一本书(我曾经写过两个版本的 Django 入门书),但是我知道最好不要公开承诺这样的事情。如果我去做,我可能会在业余时间写,不告诉任何人,然后当我找到一种方法让它出版时宣布它。

哪些 Python 库是你最喜欢的(核心或第三方)?

我应该先说我喜欢无聊的软件。当我使用这个术语时,我不是指“不有趣”,而是指“不令人惊讶”。我对无聊软件的理想是安静可靠地完成工作,不会给我带来任何令人讨厌的惊喜。我曾经是一个在周日凌晨 3 点接到电话的人,因为一些重要的服务刚刚中断,这是我生活中不需要的惊喜。

所以在标准库中,我会选择 csv 模块。我可能比 Python 附带的任何其他模块获得了更多的收益,它是“无聊”的缩影(从好的方面来说!)一段代码:可能没有人会用它来登上黑客新闻的头版,但它只是做了自己的事,让生活变得更容易。

第三方如果我说姜戈我想我是在作弊,所以我会选 BeautifulSoup。这是又一个乏味但非常有用的代码,我不认为我可以开始估计这些年来它为我节省了多少时间和工作。

作为一门编程语言,你认为 Python 将何去何从?

我想重复一下我上面说的关于无聊软件的话,无聊是一件好事,因为我认为 Python 就是无聊软件。它已经经历了一定程度的时尚和新闻价值,但感觉那已经过去了,我们回到了它只是一个可靠的,体面的流行语言,被正在做事情的人使用。

Python 3 清除了语言中许多积累的缺陷,async/coroutine 的加入看起来状态良好,所以我不知道这种语言真正缺少的是什么。关于 Python,我一直喜欢的一点是每个版本都有多少小而合理的改进,每次都让程序员的生活变得轻松一点。

在这一点上,我希望大事件发生在工具和库的生态系统中,而不是语言本身。例如,包装已经比过去好了很多,但是我很高兴看到在这个领域仍然在进行的工作,以真正使工具和基础设施变得更好。

你对当前的 Python 程序员市场有什么看法?

我觉得现在是了解 Python 的好时机。当我第一次开始学习它时,Python(在它自己的社区之外)可能被不喜欢 Perl 的人视为一种边缘 Unix 脚本语言。现在,它无处不在,许多公司都在它的基础上构建各种东西。

举个例子:我在一家健康保险公司工作。从接收、解析和分类数据,到处理和分析管道,到实现我们的业务逻辑并与供应商互操作的应用程序,我们都用 Python 端到端地完成。当然,我们处于一个高度监管的空间,在这个空间中,法规和需求会不断变化,所以 Python 对我们来说是一个很大的优势:我们可以实现复杂的需求,或者适应甚至一些相当大的变化,这比我们基于更传统的企业空间语言和工具要快得多。

能够做到这一点是 Python 的一大卖点,这转化为对 Python 程序员的大量需求。我读到的一切都表明需求很大。

你还有什么想说的吗?

我们整个领域目前面临的最大风险之一是我们自己的精英主义和我们根深蒂固的信念,即我们以某种方式选择或奖励“优点”。事实是,我们让人们经受一连串的戏弄仪式和陈词滥调;奖励运气和傲慢;把侮辱和嘲笑混淆为诚实和直率。

结果是一种危险的平庸混蛋的单一文化——我们不是选择那些表现出技术优势的人(这种优势有多种形式),而是把选择的权力放在那些“优势”是愿意忍受所有这些垃圾以便有一天成为向他人分发垃圾的人手中。所以很自然地,他们最终会招募像他们一样的人,并延续这种循环。

在这个过程中,我们赶走了很多能够并且愿意写出好代码的人,只要我们在他们起步时给他们一点帮助和善意,这是很难容忍的,因为公司总是不顾一切地寻找拥有良好技术技能的人,而贡献者总是不顾一切地让开源项目继续下去。回到我之前提到的航空怪癖,我可以打个比方:美国的航空公司已经为威胁他们行业的“飞行员短缺”问题焦虑了一段时间,但问题并不在于缺乏能成为优秀飞行员的人。问题是航空公司对待他们的初级飞行员很糟糕,关于这一点的消息已经传开了,所以没有足够的人愿意再忍受它,航空公司不能保持他们的队伍。软件业感觉它正走向一个非常相似的情况。

这不容易解决,但我们必须解决它,否则它将对我们的行业和开源生态系统构成生存威胁。我们必须在很多地方修正它:我们必须在邮件列表和论坛上修正它,我们必须在会议上修正它,我们必须在面试和招聘过程中修正它,我们必须在办公室文化中修正它,我们必须在所有地方和所有过程中修正它。

Python 社区已经在这方面迈出了很大的步伐,但是我们还有很多工作要做。为了成功,需要我们所有人的努力。如果你不确定自己能做什么,最好的办法就是善待他人,假设新员工很聪明,如果有机会学习,就有能力做好工作,而不是因为从第一天起就不是专家而被赶走。当我开始的时候,我当然不是专家,其他人也不是!

感谢您接受采访!

本周 PyDev:詹姆斯·墨菲

原文:https://www.blog.pythonlibrary.org/2021/06/21/pydev-of-the-week-james-murphy/

本周,我们欢迎詹姆斯·墨菲成为本周的 PyDev!詹姆斯是 mCoding 的创始人,在 YouTube 上也有一个很受欢迎的 Python 教程频道 T2。你也可以在 GitHub 上看到詹姆斯在做什么。

让我们花些时间来更好地了解詹姆斯吧!

能简单介绍一下自己吗(爱好、学历等):

我本质上是一名数学家和程序员。我在卡内基梅隆大学获得了计算金融学士学位和数学硕士学位。在我的硕士论文中,我研究了一个物理系统的一维模型,当它变得越热时,就会释放更多的能量,计算失控爆炸效应发生的时间点。

我觉得我太喜欢做数学了,不能就此止步,所以我继续去了德州大学奥斯汀分校,在那里我获得了数学博士学位。我的研究方向是概率,主要集中在一个叫做随机几何的子领域中的随机网络。你可以从我的论文答辩中看到一个样本视频,它展示了这些随机网络中的一个,叫做多布林树,看起来像什么。

获得博士学位后,我搬到芝加哥,成为一家贸易公司的定量研究员,在那里我为他们的 S&P500 团队工作。

最终,我决定我要接受一个更具创业精神的挑战,开始自己的事业!我创建了 mCoding,在那里我从事教学、培训、承包和咨询工作。在某个时候,我决定开始上传一些免费的视频样本,这样客户就可以看到我的教学/培训风格,这就是 mCoding YouTube 频道[2]的开始。我从没想过网上的陌生人会喜欢他们,但现在我有了一群忠实的、不断增长的观众!

就业余爱好而言,我大部分时间要么阅读数学论文,要么编程,要么玩我的莱斯·保罗,要么只是在外面走走。有时我想知道我在我家附近的蜿蜒数是多少。大概超过 1000(顺时针方向)! 你为什么开始使用 Python?

在卡内基梅隆大学,我问我的朋友他最喜欢的编程语言是什么。他告诉我他用 Python“做任何事情”。当时我很惊讶,因为我认为 Python 只是一种小众语言,还没有准备好被主流使用。我试了一下,不用写类型名,再加上编写生成器很容易,这完全吸引了我。我也开始用它做任何事情! 你还知道哪些编程语言,哪个是你最喜欢的?

我在实际工作中使用的主要语言是 Python 和 C/C++,但我也涉猎了许多其他语言。我用 Bash/shell 脚本编写 sysadmin,用 LaTeX 写数学论文,用 Mathematica 做模拟(在我学习 Python 之前),用 PHP/Perl/HTML/JS 做 web 开发(同样,大部分是在我学习 Python 之前),用一点 R 做假设检验。我的第一门语言是 Java,但是我已经很久没有接触它了(我想我停下来的时候他们正在介绍 lambdas)。展望未来,我接下来最有可能学习的语言可能是 Rust。我最喜欢的还是 Python。🙂 你现在在做什么项目?

我注意到我编辑视频的方式非常算法化,所以我想,为什么不写一些代码来帮我编辑视频呢?该项目目前还处于起步阶段,它基本上是一个愚蠢的跳转切割器,可以删除长时间的沉默,但如果我能让它智能地决定包含/排除哪些语音,将会节省我很多时间!另一个有趣的例子是使用 YouTube APIs 编写一些代码来自动化 YouTube 操作和分析。例如,我可以在一瞬间更新我所有的视频描述和我所有的最新链接! 你最喜欢哪些 Python 库(核心或第三方)?

我的机会来了!我最喜欢的和 Python 中最被低估的两个核心库是 itertools 和 functools。我让这些文档在浏览器中永久打开,因为我经常使用它们。对于第三方,我会选择熊猫,主流,我知道。

我看到你教编程。你觉得教新生最难的话题是什么?

我发现对一个新生来说最难教的话题是如何把一个问题分解成几个部分,然后像那些部分已经完成了一样工作。面对一项艰巨的任务,比如说做井字游戏,新生们知道自己拥有什么,也知道最终产品需要什么,但许多人都在纠结如何将两者联系起来。我可以用预先准备好的类型提示和文档字符串给出已经分解到函数级的所有内容的起始代码,但这实际上只是避免了这个问题。最终,学生需要学会自己决定创建哪些函数和类,以及如何组织整个项目,但教他们如何做总是很困难的,因为有无数种方法可以对同一件事情进行编码,但没有一种方法一定是“最好”或“最正确”的。

你还有什么想说的吗?

感谢阅读!如果你还没有,看看我的 YouTube 频道, mCoding

詹姆斯,谢谢你接受采访!

本周 PyDev:詹姆斯·陶贝尔

原文:https://www.blog.pythonlibrary.org/2016/07/18/pydev-of-the-week-james-tauber/

本周,我们欢迎詹姆斯·陶贝尔( @jtauber )成为我们本周的 PyDev。詹姆斯是埃尔达里昂的创始人兼首席执行官。他也是 Pinax 的创造者和首席开发者。你可以在他的网站上了解他的许多项目。让我们花点时间更好地了解他。

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是澳大利亚人,但过去 17 年的大部分时间都在波士顿地区的科技公司工作。我原本是学理论物理的,但在本科学习的中途转到了语言学专业。我曾计划从事学术事业,但到了 90 年代中期,网络真正起飞了,我有机会站在网络技术和标准的最前沿,这最终导致我搬到了美国。

我现在是一家专注于 Python 和 Django 的 web 应用程序开发公司 Eldarion 的创始人兼首席执行官。

我仍然从事语言学研究,特别是古希腊语和新约的希腊语,目前正在攻读古希腊语的研究生课程。我也创作各种风格的音乐,包括流行音乐和古典音乐。我喜欢旅游、美食和葡萄酒,最近通过了品酒师大师的 1 级考试。

我有点痴迷于终身学习,已经完成了 20 多门关于天文学、音乐、分子生物学、游戏设计和语言教学的 MOOCs 课程。每当我学习新东西时,我的第一个问题总是:我如何用 Python 实现它。

你为什么开始使用 Python?

在 90 年代后期,我主要做 Java,但我喜欢偶尔用 Perl 做原型。我当时正在做我的第一个大型开源项目,一个叫做 FOP 的排版引擎,最终我为 Apache 项目做出了贡献。我使用 Perl 来构建 PDF 生成的原型,Paul Prescod 建议我尝试 Python,而不是 Perl,特别是 Jython 的前身 JPython,可以轻松集成 Java 和 Python。

我立刻爱上了 Python,从那以后,我的每一个个人项目几乎都是用 Python 写的。

你还知道哪些编程语言,你最喜欢哪一种?

这些年来,我尝试了大约 25 种不同的语言,但我做了大量工作的语言是 BASIC、Pascal、Perl、Java、Python 和 Javascript。在过去的 18 年里,Python 一直是我的最爱。最近,我一直在涉猎 Haskell、Go 和 Swift,但只要我想快速启动并运行一些东西,我就会继续回到 Python。

你现在在做什么项目?

我的主要开源项目是 Pinax ,我们在 Eldarion 一直在使用它。我也有许多与语言学(尤其是古希腊语)、音乐理论和古代围棋相关的个人项目。当然都是用 Python 写的。

哪些 Python 库是你最喜欢的(核心或第三方)?

我认为我最常用的标准库模块应该是“collections ”,这只是“defaultdict”。我几乎在每个项目中都使用“默认字典”。

我所有的 web 应用开发都使用 Django 和 Pinax。

作为一门编程语言,你认为 Python 将何去何从?

Python 的优势之一一直是其广泛的应用领域。虽然有些语言为 web 开发或数据科学开辟了一席之地,但 Python 在这两个领域都得到了广泛应用。它被用于天文学、遗传学、语言学、音乐学、游戏等等。因此,它是一种很棒的通用语言,有一个很棒的社区,但也有非常丰富的特定于领域的库。它在这方面继续增长。特别是对于那些对跨学科感兴趣的人来说,这使得使用 Python 令人兴奋。

你对当前的 Python 程序员市场有什么看法?

由于刚才提到的原因,Python 是一门需要了解的重要语言。即使你在一个领域使用一种合适的语言,了解 Python 对于其他领域总是有用的。在过去的十年里,我发现对懂 Python 的人的需求越来越大。

感谢您接受采访!

本周 PyDev:简·贾科姆利

原文:https://www.blog.pythonlibrary.org/2020/05/11/pydev-of-the-week-jan-giacomelli/

本周,我们欢迎简·贾科姆利(@詹贾科梅利)成为我们的本周 PyDev。简是一名企业家,写了关于 Python 的博客。你可以在 Github 上看到 Jan 参与了哪些项目。

让我们花几分钟时间更好地了解 Jan!

 Jan Giacomelli

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我编程有一段时间了。我从高中四年级开始,为在线博彩网页制作刮刀。之后,我学习了电子工程并获得了理学硕士学位。从学生时代起,我就一直从事软件工程师的工作。

我训练高山滑雪已经快十年了。之后还考了滑雪教练执照。因此,冬季滑雪中心是必去之地。我也喜欢风帆冲浪和壁球。除了运动,我还喜欢弹吉他和烹饪。

Jan surfing

你为什么开始使用 Python?

在我的第一份编程工作中,有一个人非常喜欢 Python。我们一起做这个项目时,他向我介绍了它。我立刻喜欢上了它。然后我在大学学习期间用它来完成数学和数学任务。也用于我的硕士论文,我用神经网络建立了一个吉他放大器的模型。对我来说,这比 Matlab 更自然。从那以后,我一直在使用它。

你还知道哪些编程语言,你最喜欢哪一种?

我也做过 javascript,Java,PHP,C 和 C#的工作。我最喜欢使用 Python。虽然我大部分时间都在做 ML 项目,但我也最常使用它。总而言之,我尽量使用合适的工具来完成这项工作。我不会用 Python 做音频录制之类的实时应用。

你现在在做什么项目?

我是 typless 的首席软件架构师/工程师。我们正在构建人工智能服务,用于从发票、收据、声明、报告等文档中提取数据,...我写了一个关于开发故事和教程的博客。我也发关于软件开发的微博。

哪些 Python 库是你最喜欢的(核心或第三方)?

来自第三方库,我非常喜欢 Django 和 Django REST 框架。我也喜欢使用 scikit,keras,numpy。

你是如何成为一名企业家的?

Jan on guitar

2017 年 5 月,我参加了 DragonHack 黑客马拉松。在 24 小时内,我们开发了一个移动应用程序。用户可以拍摄文档的照片(例如书页),应用程序将其转换为可编辑的 Word 文档,具有相同的布局(页眉、段落、位置、...).之后,我们开始考虑自己开公司。首先,我们得到了一个工业优化的项目。我们用这个项目的钱开始开发一个数据提取人工智能服务。这项名为 typless 的服务现在可以被训练从任何文档中提取数据。

你对其他想创业的人有什么建议吗?

首先,你必须坚信你会成功。尽快开发 MVP,然后开始销售。尽可能快地销售,并且要有创意。不要拿只有钱的投资人——创业公司就像一个家庭。

你还有什么想说的吗?

你对编程了解得越多,你就越觉得自己懂得越少。

简,谢谢你接受采访!

本周 PyDev:杰森·迈尔斯

原文:https://www.blog.pythonlibrary.org/2018/03/12/pydev-of-the-week-jason-myers/

本周,我们欢迎杰森·迈尔斯成为本周的 PyDev!Jason 是Essential SQLAlchemy:Mapping Python to Databases,第二版的合著者,也是数据营的讲师。如果你有空闲时间,看看他在 Github 上贡献了哪些 Python 包,或者访问他的网站。让我们花些时间来了解 Jason!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名软件工程师、作家和讲师,在数据可视化公司 Juice Analytics 工作。我还和我的好朋友威尔·戈尔登一起发起了田纳西州和去年 11 月的会议。今年,我与 Lorena Mesa 和 Jackie Kazil 一起担任项目委员会主席。

在我的大部分计算生涯中,我是一名基础设施架构师和顾问。当云接管并偷走了所有美丽的闪光灯时,我重新开始全职编程,尽管我一直在写代码来解决基础设施问题、配置和监控。

作为业余爱好,我养了三只拉萨阿普索狗,我在海水礁池里养珊瑚。我发现盯着礁石水箱看非常放松,其中的化学成分满足了我对分析化学的最初热爱。

你为什么开始使用 Python?

我从 Python 开始,因为它是我 2012 年在 BorderJump(国际物流)工作的第一份全职编程工作中使用的语言。我们用了很多 SQLAlchemy,肥皂水和烧瓶。

你还知道哪些编程语言,你最喜欢哪一种?

我会 C,C#,Php,Golang,还有一些 Javascript。我喜欢 PHP 在过去几年中所发生的变化,它绝对不是很多人记得的语言。但是我现在迷恋的是 Golang。我真的很喜欢为客户提供 CLI 工具的编译二进制文件。Javascript 在 node、react 等方面的变化也非常吸引我,也是我将在 2018 年花更多时间研究的另一个领域

你现在在做什么项目?

在工作中,我一直在帮助开发一个我们称之为 recipes 的系统,它是面向业务分析师和分析程序员的 SQLAlchemy 的 DSL。最初的概念是由 Chris Gemignani 作为一个更大系统的一部分开发的,我们一直在努力将其提取到一个独立的库中。

工作之余,我正在学习第三个 Datacamp 课程,重点是为数据科学家构建强大的 python 应用程序。

哪些 Python 库是你最喜欢的(核心或第三方)?

早在 2012 年,我就爱上了 SQLAlchemy 的优雅,从那以后我就一直喜欢使用它。Mike Bayer 开发了一个设计良好的工具包,用于处理数据库,似乎总能满足我的需求,从 web 应用程序到数据转换再到数据分析。

我也喜欢使用 virtualenvwrapper(并且对 pipenv 的开发非常兴奋)。我最喜欢的部分是 workon 和 mktmpenv。

在标准库中,itertools 和 collections 是我最喜欢的库。我喜欢链结图和命名更多的我不应该。对我来说,集合中的数据容器是 Python 中最有用的部分。

我看到你与人合著了一本关于 SQLAlchemy 的书。那是怎么发生的?

撰写该书第一版的里克还有其他任务。我曾在 PyCon 2014 上就 SQLAlchemy Core 做过一次演讲,Mike Bayer 已经看过了,当 Reilly 就更新 Essential SQLAlchemy 与 Mike 联系时,他把它们发给了我。我采用了 Rick 所做的出色工作,并试图将这本书更新到 SQLAlchemy 的当前版本。

你从那次经历中学到了什么?

写一本书非常困难,在写作过程中你会学到比你事先知道的更多的东西。o ' Reilly 为我的成功做了大量工作,并帮助指导我完成了整个过程。所以 3 课:

  • 除非你尝试去教授或写作,否则你不会了解某样东西。
  • 如果你想完成一本书,你必须每天都写。有时候是 250 个单词,有时候是 2500 个,但是你必须每天都尝试。
  • 你的技术评审和编辑是写作过程中真正的英雄。

你还有什么想说的吗?

不见得

感谢您接受采访!

本周 PyDev:杰森·r·库姆斯

原文:https://www.blog.pythonlibrary.org/2020/08/17/pydev-of-the-week-jason-r-coombs/

本周我们欢迎 Jason Coombs ( @jaraco )成为我们本周的 PyDev!Jason 是 twine ,SetupTools,CherryPy 和 140+其他 Python 包的维护者。你可以通过查看 Github 来了解他目前在做什么。

让我们花一些时间来更好地了解 Jason!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我热爱计算,因为它赋予了人类超凡的力量。我学会了在公告栏系统上社交,并从软件开发提供的持续改进中获得乐趣。我的编程技能是在 Borland C++、K&R C 以及我在 Scheme 的第一门正式编程课程中锻炼出来的。我在终极(光盘)中找到了娱乐,我从索科罗到 DC 到匹兹堡都玩过。

Jason Coombs

你为什么开始使用 Python?

1997 年,在我的本科学习中,我和一个 3 人小组一起,为 Python 编写了一个编译器。在 Lex、Yacc 和 C++的基础上,我们学习了 Python 编程语言,并努力克服了对空格敏感的语法的困难,但最终对利用正式上下文的良好格式惯例的价值有了强烈的认识。对 Python 的介绍来得正是时候,当时我仍然依赖 Maple 或 Mathematica 之类的语言进行高级构造,这些构造允许在没有内存管理和电子特性的持续干扰的情况下对问题空间进行建模。我被迷住了。

你还知道哪些编程语言,你最喜欢哪一种?

我涉猎了几十种语言,但是用 Scheme、C/C++、Java、Maple、Matlab、Perl、cmd.exe、Bash、Powershell、XML/XSLT 和 Javascript 开发了不平凡的解决方案。我从事过 C++、Java 和 Python 方面的专业开发,但在 2008 年,我对 Python 如此着迷,以至于我开始专攻 Python,2010 年,我找了一份全职工作,在 Python 上开发全球规模的 web 应用程序。

你现在在做什么项目?

我在 PyPI 中维护了 140 多个包,其中有一部分被大量采用:Setuptools、keyring、CherryPy、IRC、path、twine。我正在积极地改进 Python 上“打包”的故事。特别是,我正在帮助将 Setuptools 的一些复杂特性分解到单独的包中,例如 importlib.metadata 和 import lib . resources(Python stdlib ),并将 distutils 与 Setuptools 统一起来。我更热衷于为常见的计算问题提供越来越复杂的抽象,例如使用 ITER tools(more _ ITER tools/jara co . ITER tools)和 functools (jaraco.functools),但在实践中,我渴望消除最阻碍社区发展的任何障碍——让每个程序员能够最容易和可持续地解决他们的问题。

哪些 Python 库是你最喜欢的(核心或第三方)?

当我第一次接触 Ruby on Rails 时,我对它如何轻易地使编程领域适应 HTTP 协议印象深刻。我在 Python 生态系统中寻找了一个类似的努力,这使我找到了 Turbogears 和代理 CherryPy。与 Flask 和 Django 等其他框架不同,CherryPy 采用了一种通过 HTTP 域来反映编程域的方法,通过 HTTP 将对象及其属性反映为实体。CherryPy 没有将斜杠分隔的字符串映射到函数,而是采用了更类似于 Zope 的方法,将分层组织的实体暴露到可通过 HTTP 路径遍历的树中。使用语言本身的方面直接建模问题空间的简单优雅是一种真正的乐趣,尽管我真的很欣赏像 Django 和 Flask 以及现在的 FastAPI 这样的库提供的价值,但我渴望分享 CherryPy 方法的好处和乐趣。

我也是像 itertools、more-itertools、functools 这样的库的狂热爱好者,或者任何使开发人员能够避免简单分支(if/else)而使用类似于函数式编程的抽象的库。

您是如何开始 twine 项目的?

我很早就作为 setuptools 的用户参与了打包工作,当时 0.6c7(或其左右)的文件发现在 Subversion 的最新版本中工作得不太好。后来,当我的项目需要 Python 3 支持时(依赖于 Setuptools),我参与了 Distribute 项目。后来,当我着手将 Distribute fork 重新合并到 Setuptools 中时,我采用了 Setuptools,我继续支持打包项目,并帮助它们以一种不那么单一、更具可组合性的方式满足 Setuptools 遗留用户的用例。

作为 Setuptools 和 setup.py upload 函数的维护者,我为 twine 项目提供了关于支持上传功能的意见。另外,作为密匙环库的维护者,我对启用像 twine 这样的工具感兴趣,这些工具利用密匙环来允许用户安全地存储他们的密码和令牌,而不是明文。

我对 twine 的支持主要是简化维护过程,这是我在匹兹堡 Python 小组上介绍过的一个主题。

为什么要使用 twine 而不是其他发布工具?

Twine 是 PyPA 认可的官方工具,不仅可以上传到 warehouse(官方 PyPI 索引),还可以上传测试索引和第三方索引。它是围绕精炼和受支持的标准而设计的,就像一个健康的开源项目一样,欢迎任何善意的贡献,并与维护者合作以避免意想不到的后果。

你还有什么想说的吗?

我真的很想看到 PyPy 成为 Python 的参考实现。它有助于解决我所认为的 Python 的三大挑战之一,即函数调用的性能(另外两个是健壮的多核支持和简单的打包)。对 Python 最大的批评之一是它的性能不如其他语言,如 C++或 Go。实际上,这通常没问题。我在这个问题上只受过很少的教育,所以这可能是我的催款——Kruger 说的,但是我想象一个世界,PyPy 和它的 JIT 编译器可以把 Python 带入一个在整体性能上与 Java 竞争的世界。

杰森,谢谢你接受采访!

本周 PyDev:杰夫·福西尔

原文:https://www.blog.pythonlibrary.org/2017/09/11/pydev-of-the-week-jeff-forcier/

本周,我们欢迎杰夫·福西尔(@比特先知)成为我们本周的 PyDev。杰夫是目前流行的面料帕拉米科包的维护者。他也是调用包的创建者。你可以在 Github上查看 Jeff 参与的其他项目。他还有一个你可能会感兴趣的博客。让我们花些时间来更好地了解杰夫!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我的个人简历可以在 http://bitprophet.org/bio 的找到,但是这里有一些基本的!

  • 我有计算机科学的学士学位(尽管我不同意那些认为在这个领域工作需要学士学位的人的观点)。)
  • 我的大部分爱好都与电脑或电视屏幕有关——例如,我是一个虔诚的电子游戏迷,花更多的时间在网上冲浪,喜欢看视频(动漫、电影、电视;还没有抽搐的习惯!)
  • 当不粘在显示器上时,我会读很多书(大多是科幻小说和幻想小说);在美丽的旧金山湾区进行一日游,尽管价格高得令人不安;惹恼我的猫。
  • 有时候我会把这些事情结合起来——比如当我和妻子去长途散步玩《神奇宝贝 go》的时候🙂

你为什么开始使用 Python?

我在大学的最后一个学期学习了一门关于移动计算的课程,这在 2004 年和今天的意义大不相同!教授是 Python 的拥护者,他让我们在 Python 中编写项目,在 Sharp Zaurus PDAs 上运行。我的项目是一个基于 wifi 的广告/公告板服务器/客户端平台,完全用 Python 编写。

在此之前,我已经为 classwork 编写了 Java,为 fun/jobs 编写了 PHP,并且发现我喜欢 Python 的表现力——它与我的思维方式“契合”。毕业后,我先后用 Plone 和 Django 编写了内部网应用程序,这进一步巩固了 Python 作为我的首选语言的地位。

你还知道哪些编程语言,你最喜欢哪一种?

在 Python 之前,我写过 Visual Basic、PHP 和 Java 从那以后就没用过了。在学习 Python 之后,我还学习了 Ruby 和 Clojure。

我喜欢红宝石;我理想的语言应该是带有一些 Ruby 语法(块、尾随逻辑等)的 Python,或者是带有更明确的导入系统和 Python 的包生态系统的 Ruby(即不局限于 web 和 ops)。)目前我用的都是 Python,所以我的 Ruby 正在积灰。

Ruby 和 Python 更像是不同的——所以我在一些个人项目中使用了 Clojure。作为 LISP,它拓展了我的大脑,并鼓励我使用我在 Python 中不常用的范例,但它足够现代,可以避免在其他 LISP 中发现的大多数实际挫折。

你现在在做什么项目?

​Too 很多!这是我自己的错。完整的名单在 http://bitprophet.org/projects/ T2。

我现在主要关注的是 Fabric 2 和它的底层调用项目。我的时间分别花在观察他们 2.0 和 1.0 版本的需求上;和个人搔痒功能工作。我很荣幸在我的日常工作中使用了很多这样的操作系统,所以当一些事情让我或我的用户感到厌烦时,我允许自己离开主题。

高度相关: Paramiko ,它具有高优先级的特性领域,需要在常见的“缺失”特性和修复的基础上进行认真的重做(如身份验证处理)。

最后,我一直在将我的测试套件移植到一个基于 pytest 的测试运行程序上;我使用的旧版本是基于 nose 的,pytest 在过去的几年里获得了如此多的好东西,我决定采用它。再加上重写允许生活质量的提高,除了简单的“你可以用它来使用其他 pytest 插件”!

​My 的其他项目(包括雪花石膏,狮身人面像主题)得到维护工作和偶尔的冲刺。

你是如何成为这些项目的维护者的?

在 2008 年左右,我需要用 Python 进行配置管理,当时没有太多选择。Fabric 是由另一个 dev (Christian)基于 Rails 世界的 Capistrano 创建的;那是一首单曲。在 0.1.x 版本中,py 和(像早期的 Capistrano 一样)在行为或调用上不太像 UNIX-y

我提交了一个大的(Github 之前的)PR,把它变成了一个多文件包,让它更像一个传统的 POSIX app,并增加了一些功能;事实证明,克里斯蒂安正处于人生的转折点,他问我是否只想全盘接手这个项目。我答应了。0.9.x 诞生了;我们现在已经升级到了 1.13,即将推出完全重写的 2.0。

Paramiko 从一开始就有 powered Fabric 在我担任 Fabric 管理员大约 5 年后,我授权 Paramiko(大约 1.7.7)发布关键的 bug 修正,Paramiko 的作者(Robey)没有时间合并。他最终回复了我,问我是否想接手原作。我说是的,然后把我的叉子插了回去。从那以后,我发布了 1.7.7.x 到 1.18 的版本,然后是(非重写)2.0、2.1 等等。

雪花石膏一开始是肯尼斯·雷兹狮身人面像主题的一个(非敌对的)分支,这反过来又是阿明·罗纳彻项目主题的一个温和的返工。Alabaster 的意图是给主题包增加许多可配置性,例如,使它更容易在多个站点上使用(就像我对我的大多数项目的分离 www/docs 站点所做的那样)。)现在是默认的斯芬克斯主题!

invoke(n e Fabric 2)是 100%原创作品,我的几乎没人用过的测试运行程序 spec(nose)/pytest-relaxed(pytest)也是如此。

在开发/维护这些流行的软件包时,您遇到了哪些挑战?

最大的挑战是简单地根据项目获得的活动量进行扩展。由于我的日常工作安排,我可以一周工作 1-2 天,但与大多数操作系统一样,这些项目真的需要 1-2 名全职开发人员。

更糟糕的是我对微观管理和挑剔的倾向——它们阻止了我给其他人完全的提交/发布特权,这将有助于更快地发布更多的补丁。

也就是说,我有几个很棒的人帮助我进行票证分类/补丁审查;我仍然觉得必须至少浏览几乎每一张票,但是在评论中看到一个可信的名字会让推迟、关闭或者只是合并变得容易得多!

向后兼容性(我非常,也许是非常认真地对待的事情——参见上面的“挑剔”)引入了许多挑战,不仅是关于如何做出某些改变,还包括如何在变更日志、发布分支等中处理它们。

最后,我是冒名顶替综合症的典型代表;令人惊讶的是,你可以拥有数百万的 PyPI 下载量,却仍然因为自己“不擅长计算机”而自责不已!

在《第二代织物》中,我们可以期待什么样的东西?

到目前为止,我在 http://docs.fabfile.org/en/v2/upgrading.html#why-upgrade,有一个很好的清单,上面列有一些我个人最喜欢的东西

  • Python 3 兼容性,终于。
  • 显式的、单一责任原则驱动的类,而不是引用全局模块状态的函数,这带来了许多其他好东西,比如“你可以使用线程而不是多重处理!”
  • 大规模扩展的配置系统。
  • 任务参数的 POSIX/GNU 风格命令行标志;不再有奇怪的定制物品。
  • 命令/子进程执行现在更加强大,在本地/远程之间更加一致,并且可以完全独立使用(易于替代手动的基于 stdlib 子进程的攻击!)
  • 优雅的嵌套 SSH 网关支持。

哪些 Python 库是你最喜欢的(核心或第三方)?
排名不分先后:

  • 请求和 sphinx 几乎无处不在,这是有道理的;
  • 密码学非常适合使用,随着编程界对安全性的了解越来越多,它的高/低级 API 方法也越来越有价值;
  • flake8 和覆盖率对于代码洞察是非常宝贵的;
  • 人性化(或 tqdm)、制表和祝福都是吸引人的用户界面(微调器、进度条、表格、颜色)——这是我越来越多地使用的功能领域;
  • pathlib,这个我应该用的比我多;
  • httpie 是惊人的内省任何基于 CLI 的 web/http。

作为一门编程语言,你认为 Python 将何去何从?

​I'm 不是编程语言理论家,我承认我坚定对 Python 的偏见,但我认为它可以从当前的竞争中学习(并且正在学习),比如 Golang 和 Javascript。比如:

  • 执行速度:Golang 很难被击败,但 PyPy 做得很好,Python 3 中的可选类型只能有所帮助(也只是针对那些喜欢类型的人,句号。)
  • 部署代码:与“复制静态二进制文件”相比,Python 理所当然地受到了指责,但是打包权威机构正在做着令人敬畏的工作,而且还会有更多的工作。相对于鸡蛋和鸡蛋,轮子已经是一个巨大的福音了。
  • 管理依赖关系:npm 的优势在于它是下一代系统,具有必要的功能;但是,PyPA 做得很好,我对即将到来的变化感到兴奋(例如 Pipfile。)
  • 异步:多核时代越来越普遍的需求;Golang 和 JS 有很强的异步范例,但是 Python 3.5+已经在原生异步语法方面取得了坚实的进步,并且有望继续改进(加上内置语法只是一种选择!)

不是与另一种语言比较,而是:我认为帮助程序员默认编写安全程序的重要性正在迅速增加。Python 有机会成为这方面的领导者,因为我们的社区有幸拥有不少安全领域的专家,并且倾向于鼓励 API 在默认情况下做正确的事情,同时保持灵活性。

你对当前的 Python 程序员市场有什么看法?

​It's 在这里,我很难做到客观,我的简历的总体知名度(大概)意味着我得到了比平均水平更多的招聘人员联系我——但据我所知,市场表现得相当好,至少和整个科技行业一样好,甚至可能更好。

我认为那些在 Python 和当前热门话题(容器、功能即服务、机器学习等)之间的接口方面有优势的 Python 爱好者,在就业机会方面会更有优势。听听那些在这类话题上落后的人怎么说吧!

感谢您接受采访!

本周 PyDev:杰夫·特里普雷特

原文:https://www.blog.pythonlibrary.org/2016/01/04/pydev-of-the-week-jeff-triplett/

本周,我们欢迎 Jeff Triplett @webology 成为我们本周的 PyDev。他是 Django Events Foundation North America(DEFNA)的联合创始人,也是 DjangoCon US 2016 的现任主席。让我们花几分钟时间更好地了解他!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

2007 年,我搬到堪萨斯州的劳伦斯,在《劳伦斯世界日报》工作,姜戈就是在那里诞生的。我现在在堪萨斯州劳伦斯市的Revolution Systems(Revsys)公司工作,担任开发人员和顾问。

我是 Django Events Foundation North America(DEFNA)的联合创始人,DjangoCon US 2015 和 2016 的会议主席,我还共同组织了 Django Birthday,以庆祝 Django 在其出生地劳伦斯的 10 岁生日。

我是当地越野跑团体的成员,我热爱篮球,我喜欢梦想乘着气流穿越美国。

你为什么开始使用 Python?

早在 2000 年中期,我在密苏里州西南部经营一家 ISP 的时候,就开始使用 Python 了。我厌倦了用 PHP 和 Perl 把所有东西拼凑在一起,所以我尝试了 Python,不久之后就开始重写我们所有的工具来使用它。姜戈一被释放,我就被卖掉了。

奇怪的是,在此之前,一家大型网上零售商曾出售 20 台非常昂贵的宽屏显示器。他们有一个比赛,你每天检查他们的网站,提交你的电子邮件地址,你有 1/100 的机会获得 50%的优惠券。我的一个朋友有一个包罗万象的电子邮件帐户,所以我写了一个脚本,使用几百个电子邮件地址来检查网站,我们收集了 50%的代码,以便我们能够升级显示器。我感到尴尬的是,我的朋友中有多少人仍然拥有这个特定品牌的显示器。谢谢你,蟒蛇!

你还知道哪些编程语言,你最喜欢哪一种?

我三年级的老师让我们报名在学年的周末轮流借用苹果 IIc 电脑。她最终让我在没有其他人注册的周末借用它。我会在周末玩 Logo 和 Basic,梦想创造视频游戏。

我后来学了 Basic,Pascal,Visual Basic,C,Java,ASP,。net,c#,SQL,Perl 和 PHP。

Python 是我最喜欢的语言,它支付我的账单。我偶尔会尝试一下 Javascript。学习 Swift 是我今年冬天的目标之一,这样我就可以学习构建 iOS 应用程序。

托加这样的项目给了我一个希望,也许有一天我能够用 Python 编写一个 iOS 应用程序。在那之前,我会继续学习 Swift。

你现在在做什么项目?

我大部分时间都在为 2016 年美国 DjangoCon 做规划。我的大部分 OSS 项目都是为了挠自己的痒,但是我可能应该发布更多这样的项目。

哪些 Python 库是你最喜欢的(核心或第三方)?

我真的很喜欢用点击来编写终端应用程序,因为它很容易操作。我用它写了几十个实用命令,因为它非常容易使用。我认为这是一个好工具的标志。

我发现自己经常使用 Unidecode

任何和我一起工作的人都知道,我痴迷于将 Trello 作为一种规划/生活工具。我经常使用 py-trello 将数据输入和输出 trello。

作为一门编程语言,你认为 Python 将何去何从?

很模糊。从 Python 2 到 Python 3 的过渡是草率的,我相信向开发者推销它的尝试并没有按计划进行。我的大多数客户不使用 Python 3,这迫使我使用 Python 2。在一个梦想的世界里,Python 2.8(永远不会发生)和 Python 3.6 会在中间相遇,Python 4 会让每个人都开心。
总的来说,我真的很喜欢 Python 这种语言。我认为这是一个被低估的学习工具。Django 女孩教程用学习 Python 和 Django 是多么容易来支持这一点。

你对当前的 Python 程序员市场有什么看法?

从我的经验来看,现在是成为 Python 开发者的大好时机。然而,我认为市场也稍微向资深开发商倾斜,这让我感到担忧。我知道几个非常有能力的初级开发人员在技术评论中被拒绝,因为有些问题只有高级开发人员可能知道。这就变成了以初级开发人员的工资要求高级开发人员的知识和经验水平。我希望看到更多的公司重新考虑他们的入门级职位,以培养这些入门级职位。

你还有什么想说的吗?
感谢您对我的面试!

谢谢!

一周的最后 10 个 PyDevs

  • 法比奥·扎德罗兹尼
  • 马赫什·文基塔查拉姆
  • 弗洛里安·布鲁欣
  • 马克-安德烈·莱姆堡
  • 尼克·科格兰
  • 阿伦·拉文德兰
  • 什么场
  • 布莱恩·施拉德
  • 克雷格·布鲁斯
  • 海梅·费尔南德斯·德尔罗

本周 PyDev:延斯·温克尔曼

原文:https://www.blog.pythonlibrary.org/2021/03/08/pydev-of-the-week-jens-winkelmann/

本周我们欢迎 Jens Winkelmann ( @WinmanJ )成为我们的本周 PyDev!Jens 是都柏林三一学院(TCD)泡沫和复杂系统组的前博士研究员,但现在是 talpasolutions 的数据科学家。你可以在他的网页上找到更多关于 Jens 做什么的信息。Jens 也是一名会议发言人。

让我们花一些时间来更好地了解 Jens!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我在德国美丽的城市埃森出生和长大,在国外生活了几年后,我现在也在那里生活和工作。

我分别于 2013 年和 2015 年在德国多特蒙德大学获得物理学学士和硕士学位。2015 年底,我搬到了爱尔兰的都柏林,在都柏林三一学院的泡沫和复杂系统研究小组攻读物理学博士学位,并于去年毕业。

2019 年 12 月,我回到了埃森,现在在这里工作,在 talpasolutions GmbH 担任数据科学家。Talpasolutions 是重工业领域工业物联网的领先驱动者。我们制造数字产品,根据收集的机器传感器数据,为机器制造商和操作员提供可行的见解。

在我的空闲时间,我喜欢爬山,既爬绳也抱石。这是一项伟大的运动,因为它将精神集中与身体锻炼相结合,可以是个人的,也可以是集体的,随你喜欢。

你为什么开始使用 Python?

在多特蒙德大学期间,我开始使用 Python 进行数据分析和物理实验室的绘图。我的学习小组中一些更熟悉编程语言的朋友向我介绍了它。他们很快让我相信,从长远来看,与 Excel 相比,它极大地降低了我在物理实验室的压力。

首先,我将它用于物理实验室中的典型任务,在这些任务中,您可以使用 NumPy 和 Matplotlib 分析并绘制实验数据。随着时间的推移,数据分析变得越来越复杂。我还用它写了我的学士、硕士以及后来的博士论文,在论文中我分析并可视化了大量由计算机模拟产生的数据。直到那时,我才充分意识到 Python 是一个多么强大的工具。

你还知道哪些编程语言,你最喜欢哪一种?

我还在一个介绍性的编码讲座和一个计算物理讲座中学习了 C/C++。我在我的学士和硕士论文中用 C/C++实现了一个流体动力学模拟。计算速度在这里是非常重要的,一切都需要从头开始编程。所以很不幸,Python 不是这个的选择。

在硕士学习期间,我还通过一个关于 Haskell 的讲座对函数式编程有所了解。但是唯一需要学习的是 Python 中的 functools 包,它提供了一些函数式编程工具。

Python 是目前我最喜欢的编程语言。因为它非常简单,所以它允许我完全专注于我想要解决的问题,而不是被不必要的代码分散注意力。这一点和 Python 庞大的生态系统(从 NumPy 到 tensorflow 和 keras)使其成为数据科学家的强大工具。

你现在在做什么项目?

我目前的大多数项目都与我在 talpasolutions 担任数据科学家的工作有关,我在那里分析来自采矿业中使用的世界上最大的机器的数据。我们的数据科学解决方案提高了整体设备效率、运营生产率、预测可能的维护停机时间,并且还具有生态影响:例如,我们帮助客户减少柴油消耗,从而减少二氧化碳排放。

我目前参与了两个特定的项目或用例:

  • 活动检测和
  • 预测性维护。

我们的活动检测算法相当于图像识别中的对象检测。重型机械(如卡车或挖掘机)的传感器可用于对其当前活动状态进行分类。例如,卡车可能正在装载、卸载、空转、满载行驶或空载行驶。根据传感器信号,如有效载荷、速度和倾倒角度,我们的算法推断其活动状态。活动检测算法至关重要,因为它们为矿山生产力的数字监控和我们软件的进一步分析工具奠定了基础。基于这些算法,我们为用户提供可行的见解,优化他们的矿山作业,例如:卡车的平均装载时间是多少?矿山运营中最大的效率损失是什么?

预测性维护的目标是降低矿山运营商的维护成本,维护成本可能是由于计划外停机或部件故障造成的。我们的算法通过根据机器的历史数据预测计划外停机时间来实现这一目标。然后,分析结果会显示在我们的软件解决方案中,以便在正确的时间通知正确的人。每辆卡车每小时的计划外停机成本很快就超过了 1000 美元,这个问题的重要性是毋庸置疑的。我们的示例性策略之一包括通过使用异常检测来直播传感器数据。对于这种策略,我们采用神经网络来检测传感器信号中可能的异常行为,例如悬架压力。

如果这让你对我的数据科学工作感到兴奋,请随时在 YouTube 上观看我在 pyjamas 会议(专门讨论 Python 的在线会议)上的演讲。

另一个与我作为数据科学家的工作无关的项目包括与中国哈尔滨工业大学的 Ho-Kei Chan 教授一起写一本名为columnary Structures of Spheres:Fundamentals and Applications的学术书籍。这本书涵盖了我博士论文的主题,即我们使用 Python 中的计算机模拟研究的所谓有序柱状结构。当相同的球体被密集地包装在一个圆柱形容器中时,就会出现这样的结构(更多细节请看这篇维基百科文章)。我们通过使用 Python 中的优化算法模拟了这种结构,这帮助我们发现了一种新的实验泡沫结构,即所谓的线滑动结构

它们的全部应用范围仍在探索中,但迄今为止,它们已经在泡沫结构(如啤酒泡沫)、植物学和纳米科学中被发现。我个人最喜欢的应用是光子超材料。这种材料的特征在于具有负折射率,这允许它们用于超级透镜或隐形眼镜。我们的一些结构是这种材料的潜在候选者。

因为新冠肺炎,我们最近在写作上取得了很大的进步。这本书现在计划在 2021 年夏天由珍妮·斯坦福出版社出版。

哪些 Python 库是你最喜欢的(核心或第三方)?

Python 生态系统为数据科学家提供了各种各样开发良好的 Python 库。它们都有不同用途。我最常用的一些是:

  • 熊猫(用于数据争论和操纵)
  • NumPy(用于数字数据结构和方法)
  • SciPy(适用于所有科学领域,例如线性代数、优化算法或统计学)
  • Scikit-learn(用于标准机器学习模型)
  • Matplotlib(用于数据可视化)
  • Plotly(用于交互式数据可视化)

我特别喜欢 Matplotlib,因为它在创建图形和数据可视化方面非常灵活。但是当然,Plotly 也不应该在这里不提。Matplotlib 在交互式图形中绘制大量数据时有点欠缺。这是 Plotly 真正闪光的地方。

是什么吸引你投身数据科学?

回顾过去,数据科学似乎是学习物理之后的自然道路。但是回到我开始攻读物理本科学位的时候,我甚至不知道什么是数据科学。

在都柏林读博士期间,我遇到了 Python 爱尔兰社区,并参加了一些每月一次的聚会以及 2016 年的 Python 大会。在这些聚会上与人们的交谈和讨论让我对数据科学充满了好奇。我真正喜欢数据科学的是,它提供了一种在学术界之外进行科学研究的方式。最重要的是,我的 Python 技能对数据科学也非常有用。

因此,在都柏林完成博士学位后,我决定申请德国和爱尔兰的几个职位,包括我目前在家乡埃森的 talpasolutions 的职位。

talp solutions 在我申请的所有公司中脱颖而出,因为 talpasolutions mission 对我来说很有意义。通过为采矿业开发数字产品,我们改善了重工业工人的工作条件,并通过减少碳食品排放量使该行业更加环保。

此外,埃森的采矿业历史悠久,闻名遐迩。尽管最后一批矿井已经关闭多年,但感觉上,我们塔尔帕解决方案公司正在发扬这个时代的精神。因为埃森是我的家乡,我真的很喜欢在这里工作。对于许多其他数据科学职位,我会渴望意义,因为许多这些公司所做的是让人们点击广告或让富人更富。

没有数学背景的人能进数据科学吗?为什么或为什么不?

我认为扎实的数学功底,尤其是统计学,对于数据科学来说是必不可少的。作为一名数据科学家,理解模型背后的数学原理非常重要。数学背景有助于你优化你的模型,以及如何避免过拟合或欠拟合。

但你不需要成为数学天才,因为大多数公司的数据科学工作只包括对他们的数据应用和优化已经开发的(机器学习)模型。FAANG 公司或研究机构的数据科学家主要是开发全新算法的人。当然,在这种情况下,你的数学技能最好保持良好状态。

与计算机科学类似,数据科学的范围也很广,并且在未来会继续扩大。我认为有些数据科学领域需要更多或更少的数学技能。我们在 talpasolutions 完全处理来自工程世界的数字数据,这需要我们所有的开发人员有一定程度的数学理解。

你还有什么想说的吗?

最后,我想说谢谢你给我机会在这里回答你的问题。我希望我的回答能激起你的博客读者的兴趣,让他们比以往更加渴望了解更多关于数据科学的知识。我还要感谢我的朋友三洋校对了我的答案,并确保它们清晰明了。

谢谢你接受采访,Jens!

本周 PyDev:Jeremiah Paige

原文:https://www.blog.pythonlibrary.org/2021/07/12/pydev-of-the-week-jeremiah-paige/

本周,我们欢迎 Jeremiah Paige ( @ucodery )成为我们本周的 PyDev!杰里迈亚目前为活动状态工作。他也是 2021 年欧洲 Python 大会的发言人。

让我们花一些时间来更好地了解耶利米!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我去大学学硬件,拿到了计算机工程学位。一路走来,我不得不学习一些编程语言,其中大多数甚至不能被称为第三代语言。然而,我的第一份工作是在一家制造硬件的公司的软件开发团队,只是在不同的部门。在我做过的每一份工作中,我都在某种程度上使用过 Python 在我的职业生涯中,我从未直接使用过我的硬件领域知识。

当我不用电脑工作的时候,我要么和家人一起出去玩,攀岩,最好是在瀑布下,要么用我的其他爱好工作,烘焙,酿造,最重要的是,喝各种形式的咖啡。

你为什么开始使用 Python?

我第一次用 Python 是在我有了第一个树莓派的时候。我将 Raspbian(我的第一个基于 Debian 的发行版)闪存到一个新的 SD 卡上。它带有 IDLE 和预装的可以控制 GPIO 引脚的模块。我听说过使用 Python 有多简单,我需要做大量快速原型制作来为 Pi 编写一些设备驱动程序,所以我在寒假期间学习了 Python,当我回来时,我编写了我的第一个 Python 程序,完成了 C 集成。我仍然认为这比用 c 语言完成整个项目要快。

你还知道哪些编程语言,你最喜欢哪一种?

我是一个相当大的蟒蛇。对我来说,现在没有什么比 Python 更好的了。然而,只要我觉得情况允许,我就喜欢使用 C、Ruby 和 Rust。我也写了很多 shell 脚本,主要是 bash。其中一部分是 CI 和基础架构配置工作,但还有很大一部分是我追求完美的 rc 设置。

你现在在做什么项目?

我创建了许多小工具库,包括 f-yeahgloss 。还有很多还没有到测试阶段,但我希望能尽快推出更多!

我还在为 ActiveState 开发一个低级 python 模块安装程序,我想它很快就可以开源了!

哪些 Python 库是你最喜欢的(核心或第三方)?

从核心来说,我真的很喜欢使用 pathlib、contextlib 和 itertools。

我认为核心中最容易被忽略的函数可能是 inspect.cleandoc。我经常看到一些模块因为需要一个多行字符串而没有清理掉它,从而破坏了缩进良好的代码。

我最喜欢安装的一些包是 isort、tqdm、yaspin、rich 和 pytest。我花很多时间盯着命令提示符,我喜欢它看起来不错。

你认为现在用 Python 打包最难的是什么?

我认为与用户共享 python 代码,尤其是那些至少不是中级 python 开发人员的人,仍然是 Python 打包最大的、尚未解决的问题。

用户首先必须拥有正确版本的 python 解释器。如果他们不这样做,那么对于所有平台和所有权限级别的用户来说,都没有一条清晰的途径来获得新的 python 可执行文件。然后,一旦出现了正确的 python,用户可能不知道如何最好地隔离这个新包,尤其是可执行脚本。他们不需要熟悉像 venv 这样的 python 开发工具,记住总是打开它来使用一些 python 包,但是如果他们不这样做,他们甚至可能会因为只使用全局环境而遇到一系列不同的问题。如果 python 不是您的主要语言之一,选择“正确的”隔离工具将会是一个困难和令人困惑的经历。

如何才能让 Python 中的打包更好?

在我在 ActiveState 的日常工作中,我每天都致力于让每个人更容易地分发 python。它还不能帮助包维护者上传新的发行版,但它确实简化了跨多个平台部署 python 环境;我们甚至确保您需要的 Python 版本已经就位,包括它的许多外部 C 库需求!

Jeremiah,谢谢你接受采访!

本周 PyDev:杰里米·图鲁普

原文:https://www.blog.pythonlibrary.org/2022/04/04/pydev-of-the-week-jeremy-tuloup/

本周,我们欢迎杰里米·图鲁普( @jtpio )成为我们本周的 PyDev!Jeremy 是 Jupyter 项目的核心开发人员。你可以在杰瑞米的 GitHub 简介上看到他的其他贡献。杰瑞米偶尔也会在他的网站上发布文章。

让我们花些时间来更好地了解杰里米吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

大家好,我是 Jeremy,QuantStack 的技术总监和开源开发人员。

我拥有 INSA 里昂大学的计算机科学和工程硕士学位。

在加入 QuantStack 之前,我在视频游戏行业工作。首先是在瑞典的 Ubisoft Massive,开发休闲和 AAA 游戏,主要是游戏性和游戏引擎开发。然后在柏林 Wooga 做手机游戏,重点是数据工具。

作为一种爱好,我真的很喜欢长跑,在山里徒步旅行几天或几周。这是一个伟大的方式断开一点和充电电池!

你为什么开始使用 Python?

在我第一次实习期间,我主要是用 Java 编程语言为 Android 开发移动应用程序。

另外,我对探索几个不同的计算机科学主题很感兴趣。我觉得我需要一种能让我更好地表达自己的语言。Python 一开始看起来足够简单,非常平易近人。所以我决定学习它,事实证明这是一个伟大的选择!

你还知道哪些编程语言,你最喜欢哪一种?

在前端开发方面做了很多工作,我也使用 TypeScript。类型系统极大地帮助了对代码的推理和快速捕捉错误。此外,这是对 JavaScript 的一个很好的增强,使处理大型代码库变得更简单、更易于管理。

你现在在做什么项目?

作为一名开源开发者,我的工作主要集中在 Jupyter 项目上。我帮助维护几个子项目,如 JupyterLab、Jupyter Notebook 和 Voila Dashboards。

最近我一直在关注基于 JupyterLab 组件的笔记本 v7 过渡。笔记本 v7 将是流行的 Jupyter 笔记本的下一个主要版本。笔记本是 Jupyter 生态系统的主要支柱之一,参与这个项目真的很令人兴奋!

哪些 Python 库是你最喜欢的(核心或第三方)?

这可能不是一个真正的库,但我真的想为 Pyodide 项目大声疾呼。Pyodide 更像是一个 Python 发行版,而不是一个库。它是编译到 WebAssembly 的 CPython,包括一些流行的数据科学包,如 numpy 和 pandas。

由于编译成 WebAssembly,Pyodide 可以在浏览器中运行,所以你让 Python 在浏览器中运行!这就是 JupyterLite(见下文)用来提供在浏览器中运行的交互式数据科学环境。虽然在 CPython 和包装故事(利用 conda forge 基础设施)的上游还有一些工作要做,但这已经是一个很好的开始,为未来打下了良好的基础。

你是如何成为核心 Jupyter 开发者的?

我是 Jupyter 的长期用户。我开始使用 Jupyter 来跟踪一些针对在线文章和博客帖子的个人阅读习惯。我想知道在给定的时间内我可以处理多少文章,并试图找到一些模式。

Then I started to use Jupyter more at work for generating reports on how our game was performing while working at Ubisoft Massive. At my previous job we also had a Data Science team using JupyterHub and internal extensions to perform analysis on game performances.

Progressively I started submitting bug fixes to the upstream projects such as JupyterLab and Voila, and progressively learned more about the various projects and their codebases. Over time and after a couple of months of contributions, I started to get commit rights on a couple of projects, making me feel part of the Jupyter community even more.

Later I joined QuantStack and started to work full-time on these open source projects, making much bigger contributions and helping with maintenance and releases.

What parts of Jupyter's core do you find most interesting and why?

The strength of Jupyter is the coherent set of standards and protocols around it.

I find very interesting the fact that we can innovate very fast while still building around that protocol. This is for example the case with the relatively new JupyterLite project, which runs a full Jupyter distribution in the browser including a Python kernel backed by Pyodide. This project is a great example of reusing existing work and components, and interfacing them in a different way to produce something useful and new.

Thanks for doing the interview, Jeremy!

本周 PyDev:杰西卡·加森

原文:https://www.blog.pythonlibrary.org/2020/03/16/pydev-of-the-week-jessica-garson/

本周,我们欢迎杰西卡·加森(@杰西卡·加森)成为我们本周的 PyDev!Jessica 是 Twitter 的开发者拥护者。她还在纽约大学教授 Python。你可以在 Github 上看到她的一些活动。让我们花些时间去更好地了解她吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我目前是 Twitter 的开发者倡导者,在那里我致力于确保开发者在使用 Twitter API 时有良好的体验。这意味着我编写示例代码,在会议上发言,并创建博客帖子。我也用 Python 制作噪音音乐,并以艺术家的名字 Messica Arson 定期在纽约地区演出。在从事技术工作之前,我从事政治活动。

Jessica Garson

你为什么开始使用 Python?

我在 2010 年开始自学如何编码,事实证明非常困难。我在一家政治数据咨询公司工作,所有的后台代码都是用 Perl 编写的,所以我开始阅读一本关于 Perl 的书。一位同事看到了我的书,把我拉到一边,说如果他今天学习如何编码,他会学习 Python。此后不久,我在 DC 的华盛顿州发现了一个名为“听我说代码”的社区组织,这是一个由女性为女性开设的免费初级课程。

你还知道哪些编程语言,你最喜欢哪一种?

最近我一直在提高我的 JavaScript 技能。我很高兴能更多地了解 TensorFlow.js。在过去的一年里,我在 R 方面的技能也有了很大提高。我有时也用 Ruby 和 Haskell 做音乐。

你现在在做什么项目?

我一直对 R 包很感兴趣,reticulate 允许你在 R 中运行你最喜欢的 Python 包。我最近想出了如何在 R 中运行搜索 tweets-python 的 Python 包。

哪些 Python 库是你最喜欢的(核心或第三方)?

FoxDot,SuperCollider 的 Python 包装器,允许我用 Python 制作怪异的可跳舞的噪音音乐。我大约每个月都会在纽约地区表演,想到我用我最喜欢的编程语言表演,我就很兴奋。我想在今年的某个时候录制一张新专辑。

你是如何参与组织科技会议/聚会的?

在我开始自学后不久,我就开始教人们如何编码。我开始工作的环境非常支持我。我对我正在建造的东西感到非常自豪,以至于我想与他人分享我正在创造的东西,所以我开始在当地的聚会和会议上发言。我意识到在某些时候,我也可以运行和策划这些活动。

我知道你以前在 NYU 教过 Python。你有什么激动人心的经历想分享吗?

教学是一种令人难以置信的授权体验。看着我的学生在我们相处的时间里学习和成长是如此令人兴奋。最近我在 PyGotham 遇到了一个以前的学生。很高兴看到我教过的人现在正在教授机器学习的 Python 课程。

杰西卡,谢谢你接受采访!

PyDev of the Week: Jessica Greene

原文:https://www.blog.pythonlibrary.org/2022/03/14/pydev-of-the-week-jessica-greene/

This week we welcome Jessica Greene (@sleepypioneer) as our PyDev of the Week! Jessica is a backend engineer at Ecosia and is an active member of PyLadies. She also gives talks at multiple tech conferences.

You can see some of what Jessica is up to over on GitHub.

Jessica Greene

Let's spend some time getting to know Jessica better!

Can you tell us a little about yourself (hobbies, education, etc):

I grew up in the UK but moved to Berlin 11 years ago to live with my partner. In the UK I studied Media Production and worked in the Film and television industry. When I moved to Berlin I took time out to learn German and then started working in the specialty coffee industry and became a coffee roaster at the Barn.

I had always had some interest in computers thanks to my parents getting a household computer while I was at school. During my art foundation degree, I also experimented with creating interactive websites in Dreamweaver. So when I decided to leave coffee roasting in 2017, retraining as a developer seemed like a viable option.

I consider myself a self/community taught developer, meaning I have no formal training but instead took a number of online courses and joined local community workshops. This was also a possibility for me due to the support I received through the German government. It was in these communities that I met other women engineers and realised how wonderful programming was and the confidence to seek employment as an engineer. In 2018 I took part in the Rails Girls Summer of Code program, a 3-month scholarship for women in tech working in open-source software.

After this, I landed an internship with Ecosia after hearing about them through another community member. I have been working there now for over three years and moved from being a junior to mid-level engineer. I am currently working on a team focused on adding green features to our search results such as highlighting sustainable options.

Outside of my work at Ecosia I love to learn new things and also support others through mentoring and organising community events. I have been an active PyLadies member since 2018 and also supporting a number of other community initiatives.

PyLadies

When I’m not at my computer I love to cook, watch movies, knit, read, and occasionally dog sit 🙂

Why did you start using Python?

I started to learn Python after my partner who works in video games suggested I try it out. Shortly after I attended my first PyLadies Berlin. From the start, I was keen to explore data science projects so Python seemed an obvious choice but throughout my career, I’ve used it in so many different ways from Microcontrollers to APIs to Data analysis. I thoroughly recommend folks starting out to look at Automate the boring stuff with Python by Al Sweigart because it does a good job of introducing you to some of the many different use cases in an interactive manner.

What other programming languages do you know and which is your favourite?

Since starting to learn programming I have tried out many different languages but professionally worked predominantly with Python, Golang, and JavaScript. They all have their use cases and implementations I appreciate. Starting a bit later in tech I feel that I haven’t felt some of the pains I have heard other engineers talk about. I love that Python is an incredibly versatile language. It has so many interesting use cases from microcontrollers in space to deploying machine learning models on the web. Python can often provide a scripting language that connects part of your systems, so even if it’s not the first language in the tech stack it’s likely to be in there somewhere. This is why I think it’s a great language to learn when you are getting started, that and the amazing community of course!

What projects are you working on now?

Since last year I reignited my interest in machine learning and data engineering so I have been taking part in the Data Talks Club zoomcamps and building my own toy projects. I’m hoping to be able to start integrating more of what I am learning into my work.

I’m also currently working on several community projects and seeing how we can automate some of our processes to empower more members to host events, share content, connect with one another and find opportunities to thrive within the tech industry.

Which Python libraries are your favourite (core or 3rd party)?

In the core language, I really like Turtle. Early on while learning Python, I came across tutorials that use the Turtle library to teach people to program because of the visual feedback loop it provides. I’ve also seen some awesome community projects using it for creating generative art. I love that you can take a small package like this and do so much creatively with it.

For a 3rd party app, I like the Prometheus client because with relative ease you can start monitoring your python applications. In fact, my colleague Vanessa Aguilar and I will be giving a workshop about this during PyCon De 2022.

**How did you end up doing public speaking? **

I previously worked as a barista in a specialty coffee roastery where we would share with each customer information about the producer of their coffee while we brewed it. This experience helped build my confidence in public speaking although as a child I was also in an amateur theatre group. As a coffee roaster, I also attended a number of coffee conferences where I gave talks or workshops. Knowledge sharing has always been important to me, not least because sometimes it can be held back from certain groups or seen as too specialist.

My first ever tech talk was at the Nextcloud conference in Berlin where I spoke about git commands I found useful likening them or the experience of using them to characters from the wizard of oz. Since then I have given a number of online and in-person talks. It’s been a real honour to be invited to give a Keynote at PyCon Italia this year, I am really looking forward to it 🙂

Do you have any tips for people who are afraid to step out into public speaking?

Public speaking is something one has to train to be good at in my honest opinion. So I would encourage people to see that it takes practice and learning from mistakes. Every time I speak, be it at a conference or at a meetup I learn something new. I also watch other people who I admire talk, and learn from them the nuances of how to engage an audience or get your point across. If you are new to speaking in public or find it daunting, firstly you are not alone, my heart pounds every single time. I recommend finding a community that is welcoming and supportive to get started with, and I can’t think of one better than the Python community, to be honest.

Last year I helped organise Python Pizza Hamburg (though we were actually remote due to covid 19). We managed to encourage a lot of first-time speakers because the 10-minute format is less intimidating. We also ran group sessions to help folks submit to the CFP. I think conferences like it can also be a great way to get started.

Is there anything else you’d like to say?

I would like to give a huge shout-out to the many talented inspiring people in the PyLadies Germany community as well as the other communities I am part of, I am so grateful for the support and encouragement I was given which has led to me being able to build this career and I hope I can pass that on to others.

Thanks for doing the interview, Jessica!

本周 PyDev:杰西卡·英格拉塞利诺

原文:https://www.blog.pythonlibrary.org/2018/08/20/pydev-of-the-week-jessica-ingrassellino/

本周,我们欢迎杰西卡·英格拉塞里诺(@杰西 _ 英格拉塞)成为我们本周的 PyDev。杰西卡是 teachcode.orgT2 的创始人,在那里你可以和杰西卡一起安排教学课程。她也是儿童 Python 项目的作者。让我们花些时间去更好地了解她吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

在我进入科技行业之前,我攻读了音乐教育学位,并在公立学校当了十年音乐老师。我的空闲时间都用来看书(我真的有书的问题!),写作,并在当地管弦乐队演奏小提琴和中提琴。我喜欢学习,所以我也去纽约参加不同的讲座。工作之外,我主要通过我的组织teachcode.org进行教师培训和支持。我在关于软件测试和使用 python & python 库作为软件测试工具的会议上发言。

你为什么开始使用 Python?

所以,我其实是偶然发现 Python 的。在做了大约 6 个月的软件测试后,我对每次发布后的回归测试感到非常沮丧。我认为一定有更好的方法,当我与开发人员交谈时,他们中的一些人知道自动化 UI 测试。他们不确定具体细节,但他们知道如何给我指出正确的方向。我查了免费的编码课,找到了莱斯大学的 Python MOOC。我做了大约 3 个作业,然后飓风桑迪使我们的公司离线,我不得不花几周时间帮助恢复正常运行,但那门课让我开始学习 Python。

你还知道哪些编程语言,你最喜欢哪一种?

我知道 HTML,一些 CSS,Ruby,一些 C++,还有 Python。我最喜欢的是 Python,因为它对我来说最有意义。老实说,我总是称自己为“慢编码者”(这让我的同事们很恼火),Python 是我理解代码概念最清晰、速度最快的地方(对我来说很快,但对许多其他人来说很慢!).

你现在在做什么项目?

现在,我正在为开始写代码的成年人写一本书。这本书我真正想关注的最大领域是解决我在其他书中看到的关于先验知识的一些假设,并且还包括单元测试作为学习代码的一部分。用一种有意义又不混乱的方式写这些东西实际上是很棘手的,所以我希望我能够成功。

在我的日常工作中,我帮助构建自动化测试的机器人框架,尽管自从我成为主管以来,这已经有点次要了。

哪些 Python 库是你最喜欢的(核心或第三方)?

我现在真的很喜欢 pyglet,因为我用它来写书。对于工作,我使用机器人框架,这在测试环境中非常好。对于单元测试,我喜欢看 pytest,并且我正在研究属性测试的假设。我喜欢 python 生态系统如此强大,拥有如此多的优秀库。

你是如何开始参加 Python 教育峰会的?

我从教育峰会开始,因为我相信 Python 是人们开始学习编码的一种很好的语言。我想知道我如何能帮助其他人开始他们的代码之旅(因为这是一个旅程!).

谈到编程和教育,你最感兴趣的是什么?

我对这些可能性感到兴奋。当我在教我的初中和高中代码学生时,我喜欢专注于使用代码作为解决问题的工具。发生的情况是,我可以看到每个学生如何学习、创新和理解代码。我很兴奋,因为代码作为一门学科,还没有像其他学科那样被编纂。关于做事情的“最佳”方法仍然有很多争论,但最终,还是有空间去尝试一些事情,看着它失败或成功,并学习下次如何做得更好。犯错的自由几乎是艺术的或即兴的,我真的认为这种环境对于培养学习和创造性解决问题是非凡的。

你还有什么想说的吗?

无论你在哪里,继续前进。我们都是从头开始。事实上,我仍然认为自己处于编码生涯和生活的开始或中间阶段。带着学习者的心态前进,问很多问题。学习永无止境。

杰西卡,谢谢你接受采访!

本周 PyDev:杰西卡·麦克凯勒

原文:https://www.blog.pythonlibrary.org/2017/05/01/pydev-of-the-week-jessica-mckellar/

本周,我们欢迎杰西卡·麦克凯勒(@杰西卡·麦克凯勒)成为我们本周的 PyDev!Jessica 是 Python 软件基金会的前董事,也是一名成功的企业家。她还是 Reilly 的作者,也是 Twisted framework 的核心开发人员。你可以查看她的网站或者她的 Github 简介来了解她在做什么。让我们花些时间去更好地了解她吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名企业家、软件工程师和开源开发者,目前居住在旧金山。我是 Python 软件基金会的前董事、波士顿 Python 用户组的前组织者和 PyCon 北美多样性拓展主席。

我开玩笑说我从来不休假,我只是去 Python 大会上演讲。这让我有机会与世界各地的本地 Python 社区交流和学习。我很高兴在 2013 年赢得了 O'Reilly 开源奖,这是对我在 Python 社区中所做的努力的肯定,这是对许多有才华的人的长期努力的肯定,我也很幸运地称他们为我的朋友。

我目前是一家早期企业软件公司的创始人和首席技术官,我很高兴从一开始就使用 Python 3 并从中受益。此前,我是一家被 Dropbox 收购的实时协作初创公司的创始人和工程副总裁。在那之前,我是麻省理工学院的一名电脑迷,加入了她在 Ksplice 的朋友,Ksplice 是一家为 Linux 开发无重启内核更新服务的公司,后被甲骨文收购。这些不同的经历让我进入了 2017 年福布斯 30 名 30 岁以下企业软件类别,正好赶上了这个类别。

你为什么开始使用 Python?

我在麻省理工学院学了 Python。我参加了从 Lisp 到 Python 的大转变,学习它的入门课程。

我的第一学位实际上是化学。在我上化学课的时候,我的许多朋友都在计算机科学系,我会用眼角的余光看着他们,心想——他们似乎在学习一个工具箱,里面装满了解决世界上各种问题的工具...â€

我也想要那些技能。我在大二的时候上了几门计算机科学课,很快就被吸引住了,偷偷在一家软件公司实习,没有告诉我的化学顾问(我不推荐这种策略),并设法在剩下的几个学期里拿到了计算机科学学位。

你还知道哪些编程语言,你最喜欢哪一种?

Python 显然是我最喜欢的语言,因为它是解决各种问题最简单、最快的方法。我认为它也是让第一次编程的程序员迷上编程的最佳语言。我也很幸运在我做过的每一份工作中都使用 Python。

我很感激在学校和 Ksplice 与 C 和汇编一起度过的时光,因为它有助于真正理解计算机是如何工作的。

我和我的联合创始人开玩笑说,每次我们创建一家公司(我们一起排在第三位),web 前端堆栈就完全翻转了,我们必须重新学习一切。我们认为我们在 2012 年使用 jQuery 是值得骄傲的,当然今天我应该学习 React,我认为超级时髦的人已经转向 Vue 了?web 前端堆栈的变化率如此之高,我很感激其他人是这方面的热情专家,所以我不必如此。

你现在在做什么项目?

新公司现在占据了我的大部分时间,当我有空闲时间的时候,我倾向于花在像会议这样的面向社区的工作上。

我希望今年能腾出时间来发布更多的视频编程教程。我的 PyCon Python 介绍和开源贡献教程介绍在 YouTube 上有几十万的浏览量,我还通过 O ' Reilly 发布了介绍和中间内容。从世界各地的人们那里获得反馈是我一生中最令人满意的经历之一。就在今天,我收到了一封来自加拿大密西沙加的卡车司机的邮件,他正在从这些视频中学习编程。

学习如何编程是一种变革性的体验,它真的改变了你与世界互动的方式,所以我很高兴能在更多人获得这种体验的过程中扮演一个小小的角色。

哪些 Python 库是你最喜欢的(核心或第三方)?

我对 Twisted 的第一个开源贡献是让我成为了一名核心维护者,并写了一本关于这个库的书。扭曲将永远在我心中占有特殊的位置。

能够在这家新公司中使用 Python 3 语言和标准库的一些增强功能真是一件乐事。举个小例子,最近我们需要一个简单的调度来解决一个问题,瞧,Python 3.4 中就有@functools.singledispatch 了。

作为一门编程语言,你认为 Python 将何去何从?

编程语言的生死取决于使用该语言的就业机会。我认为,维持一种编程语言和生态系统的最简单方式是成为学校教授的语言,这确保了大量新的学习者和大量即将毕业的学生创建的公司偏向于他们在学校已经知道的语言。

今天,大多数大学仍然用 Java 或 C++教授他们的计算机科学课程。这在全球和美国都是如此,但有趣的是,在美国,Python 在大学阶段的采用轨迹是所有语言中最强的(高中倾向于遵循大学语言选择)——更多的大学正在转向 Python,而不是任何其他语言。

这是一个巨大的机会,我们应该作为一个群体积极应对。最好的课程,最能吸引和留住不同的观众,应该是 Python。Python 应该是学习如何编程的最令人愉快的语言,不管你是否会说英语。

非常感谢你接受采访!

本周 PyDev:吉姆·安德森

原文:https://www.blog.pythonlibrary.org/2020/09/21/pydev-of-the-week-jim-anderson/

本周,我们欢迎吉姆·安德森( @jimande75053775 )成为我们本周的 PyDev!吉姆是《T2》的特约撰稿人。你可以在 Github 上看到吉姆在业余时间做的一些事情。

让我们花一些时间来更好地了解 Jim!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我喜欢在冬天滑雪,我是一个狂热的自行车通勤者,尽管我承认这听起来更令人印象深刻-我住的地方离工作地点只有 3 英里!我有两个上小学的女儿和一个可爱的妻子,她们都滑雪,让我对滑雪感到悲伤。

我很幸运,从小就以编程为生,主要是低级和嵌入式软件,偶尔也做一些企业级的高端代码。

Jm Anderson

你为什么开始使用 Python?

我是从 Perl 来到 Python 的。我在一些大型项目中使用过 perl,虽然我发现这种语言对小事情很有趣,但随着项目的增长,它对我来说变得很麻烦。一个同事让我对一些小工具感兴趣,接下来我知道的就是我在里面写了一个构建系统!

你还知道哪些编程语言,你最喜欢哪一种?

哦,这是个难题。我目前主要从事 C++方面的工作,也加入了一些 C、Lua、Bash、Python 和一些 Perl。过去,我也学过一些汇编语言、Fortran 语言、Pascal 语言、Java 语言、Ruby 语言,也许还学过一些其他语言,但目前我只能认出它们。

显然,现在我对 Python 相当投入,所以我将把它列为我的最爱。我确实记得小时候学习 Basic 时的快乐,以及当您意识到它有多么强大时最初的几个 Perl 脚本。

你现在在做什么项目?

在工作中,我为视频安全摄像机开发固件,并且正在了解我们的图像处理管道的工作方式。那里有很多我要学的东西,但目前大部分是重构代码。那都是 C++。

当我不工作的时候,我会开发一个工具,用来自动完成一些为真正的 Python 编写和评论文章的任务。在我提交了上一篇文章之后,我意识到我的“提交前”清单上有几个步骤可以自动化,这让我开始着手。

为此,我一直在为 codespell 项目做公关,这个项目相当有趣。Codespell 是一个在代码文件中进行拼写检查的工具。我一直在添加的功能是允许它检查两个单词的短语并纠正它们。在我的例子中,我希望找到可能是缩写的东西,比如将“it is”改为“it's”。

一旦成功了,我又有了一些对复习有帮助的想法。简单的行长度检查,搜索一些经常出现的格式问题。诸如此类的事情。

我也在非常缓慢地重构我的第一个家庭项目之一;柴堆。Pyres 是一个播客管理工具,它可以下载新的剧集并把它们放到 mp3 播放器上。这不是真正的黄金时间,但它对我有用。我用 Python 2.7 编写了它,并花了几年时间开发 Python 3 的替代品。不过,我一直被其他想法所困扰,所以它经常被搁置。

哪些 Python 库是你最喜欢的(核心或第三方)?

我在几个项目中使用‘jinja 2’获得了很多乐趣。我已经为工作和家庭项目编写了一些不同的工具,涉及到某种代码生成。让模板的细节正确地工作可能会令人沮丧,但是当它工作时真的令人满意。

我还对更多地使用 PyBind11 感兴趣,它有助于生成 C++绑定。我写了一篇关于绑定的综述文章,这是让我觉得最有趣的工具。

你最终是如何与真正的 Python 合作的?

我很幸运,最终为丹以前的网站 dbader.org 写了几篇文章。这是几年前的事了,所以我不确定我是在哪里偶然发现这个机会的,但可能是通过丹的电子邮件简讯。我想我关于 dbader.org 的第三篇文章是在他购买真正的 Python 时发表的,所以我很自然地进入了那个网站。

从那时起,这个团队成长了很多,但它仍然有一种友好的氛围!

一般来说,是什么促使你写关于 Python 或编程的教程?

有各种各样的动机。我想我一开始的计划是,这将有助于我的职业生涯(有一点)和我的沟通技巧(有很大的帮助)。这些天来,我的动力来自于我感兴趣的话题,我认为这些话题会引起读者的共鸣。

我们可以看到人们在网站上留下的所有评论,这是一个巨大的动力,看看你能帮助多少人。最后,去年有幸去了克利夫兰和科罗拉多的 PyCon 2019。在这两个节目中,我都有人走过来和我谈论我写的文章和这个网站的总体情况。那真是一次奇妙的经历。

吉姆,谢谢你接受采访!

本周 PyDev:吉姆·克里斯特·哈里夫

原文:https://www.blog.pythonlibrary.org/2020/07/20/pydev-of-the-week-jim-crist-harif/

本周,我们欢迎 Jim Crist-Harif(@ jcristharif)成为我们本周的 PyDev!Jim 是 Dask、Skein 和其他几个数据科学/机器学习 Python 包的贡献者。吉姆也写了关于 Python 的博客。你可以在 Github 上看到他正在做的事情。

让我们花些时间去了解吉姆吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

嗨,我是吉姆!我在明尼苏达州的明尼阿波利斯附近长大。在我们的成长过程中,我们没有太多的时间看屏幕,所以直到上了大学,我才真正开始接触电脑。我更喜欢制作实物,并在我父亲的工作室里呆了很长时间。

在大学里,我学的是机械工程,我非常喜欢它,于是继续读研究生,专注于系统动力学和控制。读研最终对我的精神健康相当有害,所以两年后我辞职了,搬到了德克萨斯州,并在 Anaconda 找了份工作。这原来是一个伟大的决定!我在那里的工作是改善 Python 生态系统,这让我可以在从事各种有趣的 项目(这也让我给做了几次演讲)。

在过去的 5 年里,我的大部分工作都与 Dask 有关,这是一个灵活的并行计算库。当我开始在 Dask 上工作时,它只是一个小项目——看到它成长为一个大的生态系统,多家公司在它的开发和维护上投入巨资,这是值得的。

工作之余,我热衷于攀岩、骑自行车和木雕。

你为什么开始使用 Python?

像任何优秀的研究生一样,我开始研究开源 Python,以此来拖延我的研究工作:)。我正在使用 SymPy 来帮助推导我的研究的运动方程,并开始反馈我继续工作所需的特征。这逐渐级联,直到 2014 年夏天,我被接受参加谷歌代码之夏,致力于改进 SymPy 的经典机制和代码生成。那个夏天,我学到了很多关于软件开发最佳实践的知识(我以前的学术代码很难维护),到最后,我被深深吸引住了。

你还知道哪些编程语言,你最喜欢哪一种?

我做的大部分工作都是用 Python 写的(还有一些用 Cython 或 C 写的扩展)。我也用 Julia、C++、Java ( skein )和 Go ( dask-gateway )编写和维护过项目。Python 无疑是我最喜欢的面向用户的语言——如果我用另一种语言编写代码,通常是为了向 Python 开发者展示一些东西。

你现在在做什么项目?

目前,我是新一代工作流管理系统perfect的软件工程师。完美的工作流经常在 Dask 上运行,所以我最近做的很多工作都是在改进他们的 Dask 集成。

作为核心维护团队的一员,我还在 Dask 上工作。我最近在 Dask 的大部分工作都是帮助回应 PRs 和问题,不再是开发了。当我有开发时间时,我主要关注于 Dask 网关,这是一个用于部署和管理 Dask 集群的集中式服务。

哪些 Python 库是你最喜欢的(核心或第三方)?

如果没有以下工具,我的工作效率将会大打折扣:

  • Conda -跨平台(和语言)依赖管理。在为多个平台(和 Python 版本)开发时,conda 使得创建测试环境和在测试环境之间切换变得很容易。使用一个健壮的依赖解算器,你可以升级软件包而不用(或者至少不用)担心破坏东西。
  • IPython Shell -花哨的 Python Shell,我开发的时候总有一个在运行。
  • 黑色——不再争论 Python 格式化,自动化吧!
  • 可读的测试,强大的夹具,我在任何语言中使用过的最好的测试库。
  • flake8 -除了 pep8 问题之外,flake8 还发现了缺失/不必要的导入、错别字等等!Flake8 作为 CI 的一部分运行在我维护的所有项目中。

非常感谢所有帮助开发这些工具的开发者。

你还有什么想说的吗?

我们一直在为 Dask 寻找新的贡献者——如果有人想开始贡献,我们有很多好的开始问题。如果你不知道从哪里开始,请随时联系我们的 gitter ,我们会给你一些指点。

吉姆,谢谢你接受采访!

本周 PyDev:吉姆·富尔顿

原文:https://www.blog.pythonlibrary.org/2016/11/28/pydev-of-the-week-jim-fulton/

本周我们欢迎吉姆·富尔顿(@ j 1m 富尔顿)成为我们本周的 PyDev!他从事软件开发已经超过四分之一世纪了。吉姆是 Zope 的首席架构师,Zope 是用 Python 编写的面向对象的 web 应用服务器。实际上,你会发现其他各种使用 Zope 组件的 Python 包,比如 Twisted。不管怎样,吉姆有一个不错的网站,上面记录了他这些年来都在做些什么。你也可以在 Github 上查看他参与了哪些项目。让我们花几分钟的时间来更好地了解我们的同胞 Pythonista!

jim_fulton-cropped

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我的职业生涯始于研究降雨径流模型。我参加了土木工程/系统工程水资源联合学士/硕士项目,在那里我探索了降雨径流模型校准。后来,我在美国地质调查局应用降雨径流模型。多年来,我的建模工作以及应用、支持和开发数据分析软件的工作使我越来越深入软件工程。最终,在获得软件工程硕士学位并加入 Digital Creations(后来成为 Zope Corporation)后,我全职转向了软件工程。

自从加入 Digital Creations/Zope Corporation 以来,我有幸帮助创建了 Zope 生态系统,并参与了各种有趣的项目。

我从 1992 年开始使用 Python,断断续续地为 Python 做贡献,并参与了早期的 Python 推广工作,如 PSA 和早期会议。我在 USGS 主持了 SPAM I、SPAM II 和 SPAM III,很难过地看到“SPAM”被 IPC 所取代:),但我对 PyCon(s)的发展方式印象深刻。

就爱好而言,我最喜欢解决实际问题,从软件问题,到房子周围的项目,到烘焙自己的咖啡,以获得喝起来像咖啡的咖啡。

你为什么开始使用 Python?

在美国地质勘探局,我们使用的是兰德 RDB T2 系统,这是一个数据处理系统,使用 Unix 外壳和一些专门的程序作为操作者,提供一个 4GL,用于数据分析。这是用 perl 编写的,最重要的操作符使用 perl 表达式提供了数据转换。在当时的 perl 版本 perl4 中,perl 主要面向文本处理,通常对表达式采取非常宽容的态度。例如,表达式 1 + '4GL' +'你好'的计算结果为 5,没有错误。我想要更多的控制,并在 Perl 邮件列表上询问可能的面向对象特性,以便在应用程序中控制表达式求值。Tom Christiansen 让我明白 Perl 永远不会支持面向对象编程。🙂

我去购买一种面向对象脚本语言,发现了 Python。

你还知道哪些编程语言,你最喜欢哪一种?

我使用了各种编程语言,包括:Basic、Algol、PL/I、Fortran(多年)、Ada、Smalltalk、C、C++、Java (iotic)、Scala(美丽的恶魔)、Rust、Javascript 和 Python。近年来,我也涉足了围棋和长生不老药(我想做得更多,或者也许是哈斯克尔)。我最喜欢的是 Python,尽管我喜欢 Scala 和 Rust,我也是 Smalltalk 的忠实粉丝,并且喜欢研究 ui,现在 ui 通常是指 Javascript。

你现在在做什么项目?

我的主要精力是改进 ZODB。我目前正在为 ZODB 开发一个基于 Rust 的数据库服务器,以获得比当前基于 Python 的服务器更好的性能和可伸缩性。我最近重构了 ZODB 的客户端-服务器存储 ZEO,以使用 asyncio 而不是 asyncore。

哪些 Python 库是你最喜欢的(核心或第三方)?
嗯,有这么多。

Mock 棒极了(核心和第三方:)。

pdb 不可或缺。几年前,Ken Manheimer 将它与我的主要开发环境 Emacs 的 python 模式集成在一起,给了我在 IDE 中调试的大部分好处。(除了调试非 Python 代码,我几乎从不使用 ide,因为 emacs🙂)

最近,我开始用熊猫和 Jupyter 笔记本进行数据辩论。它们是令人印象深刻的生态系统的一部分。(尽管令我震惊的是,对于复杂的数据争论,我最终更喜欢 Postgresql。)

最近一直在用 asyncore/uvloop/trollius。我也是 gevent 的忠实粉丝,没有它的猴子补丁。

当然,boto 非常适合与 AWS 合作。

setuptools,稍后会详细介绍。

我可以继续下去。

作为一门编程语言,你认为 Python 将何去何从?

我过去比现在更关心这个问题。🙂这会导致政治和失望。我一直希望 Python 更像 Smalltalk,我希望它有接口。哦,它仍然是一种美妙的语言。🙂

我认为不断发展的迭代器/生成器/协程模型是对并发性的一个非常有趣的尝试。虽然它在技术上不是独一无二的,但在主流语言中似乎是独一无二的。我不认为它被广泛使用和欣赏,我很有兴趣看到它的影响扩散。

我认为 Python 的吸引力很大一部分在于它的易用性。当我在 1992 年向 USGS 的科学家们介绍 Python 代码时,他们对 python 代码一目了然。在研究生院,我可以把它当作“伪代码”来使用,我的导师不用解释就能读懂它。然而,Python 的简单性似乎与其日益复杂的特性相矛盾。最近,向数据科学家解释 Python 代码有点困难。

我想知道这是不是技术熵的一种形式。一个系统吸引不太老练的用户,他们加入社区,变得更加老练,并帮助将技术引向那个方向,可能使它对更随便的用户不那么有吸引力。(这发生在 Zope 身上,但那个故事有点复杂。)

看看类型注释会发生什么会很有趣。我希望它不会给人们带来添加注释的压力,也不会让这种语言对想要更轻量级开发体验的人不那么有吸引力。另一方面,我对 Scala 和 Rust 利用类型的方式印象深刻。

你对当前的 Python 程序员市场有什么看法?

我不确定我是否有资格作出判断,但这似乎很有说服力。在 Web 开发、DevOps 和数据科学领域似乎有很多机会。去年,我在一次采访中了解到 Python 是攻击性安全的领先语言。🙂

你还有什么想说的吗?

Setuptools 对 Python 的贡献绝对是巨大的,在很大程度上仍然如此。事实上,在我看来,setuptools 创建的工作包装生态系统是 Python 多年来最大的进步。(抱歉,如果我对康达不感兴趣,因为我对它还不太熟悉。)我想很多人并不欣赏 setuptools 所做的贡献。setuptools 的作者犯了一些错误,但仍然。事情确实需要改变,它们正在改变,这很好。

为了解决 setuptools 的问题,从事打包工作的人们很大程度上要重新开始。这完全可以理解。Setuptools 几乎没有测试,编码风格有点古怪。更糟糕的是,它建立在 distutils 上,有很多问题,这是可以理解的。我有点担心向新基础设施的过渡,尤其是作为 buildout 的维护者之一。

感谢您接受采访!

本周 PyDev:Joannah Nanjekye

原文:https://www.blog.pythonlibrary.org/2019/11/04/pydev-of-the-week-joannah-nanjekye/

本周我们欢迎 Joannah Nanjekye(@ Captain _ Joannah)成为我们本周的 PyDev!Joannah 是 Python 编程语言的核心开发人员。她也是 Python 2 和 3 兼容性的作者。你可以在这里网站找到更多关于乔安娜的信息。让我们花一些时间来更好地了解她!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是 Joannah Nanjekye,我住在加拿大弗雷德里克顿,但我来自东非的乌干达。我是一名计算机科学毕业生,在 UNB 的一个 Python IBM 实验室做与 Python 相关的研究。我在乌干达和肯尼亚上大学,分别在 Makerere 大学学习软件工程,在肯尼亚航空学院学习航空工程。我也是《Python 2 和 3 的兼容性》一书的作者,这本书由 Apress 出版。我没有任何严肃的爱好,但我喜欢驾驶飞机。非常昂贵的爱好呵!!

你为什么开始使用 Python?

我开始使用 Python 是因为我在 2009 年的第一堂编程课上不得不这么做。像任何 CS 课程一样,Python 很简单,但是一些教授决定让这门课变得很难。在这门课程的一些作业失败后,我设法从头到尾读完了我的第一本编程书,这是一本 Python 书籍——如何像计算机科学家一样思考,并设法通过了期末考试。然而,我真正意义上使用 Python 是在 2012 年,当时我在做一个 Django 项目。我继续使用 Python,因为它的简单性允许我专注于解决手头的问题。

你还知道哪些编程语言,你最喜欢哪一种?

我对 Golang、Ruby 和 C 语言有很好的掌握和熟练程度。我会说我最喜欢的是 C 语言,因为我一般会写更多的 C 代码。

你现在在做什么项目?

我全职从事与 Python 语言本身相关的项目,这可能是它的替代实现之一,由于 NDA 的一些限制,我不能详细介绍。我目前正在从事与垃圾收集相关的工作。我也花时间在 Cpython 和其他开源项目上。

哪些 Python 库是你最喜欢的(核心或第三方)?

我认为目前我对 Cpython 中的子解释器将如何发展并解决我们目前在语言中的一些缺点非常感兴趣和好奇。

作为核心开发人员,你负责 Python 中的哪一部分代码?

我不会说照顾,因为我不是被指派到这些领域的专家。就 Cpython 而言,我计划更多地关注子解释器和垃圾收集。在最近的核心开发人员冲刺阶段,我能够在高级子解释器模块实现方面获得一些好处,这是在埃里克·斯诺指导下的 PEP 554。在同一个 sprint 中,我和 Pablo Salgado 讨论了 GC 以及我们可以改进的地方。我只是祈祷带宽和良好的健康能够有所帮助。

你对其他有志的核心开发者有什么建议吗?

Cpython 需要来自每个人个人和公司的帮助,否则,我们将建立在一个摇摇欲坠的基础设施之上。成为核心开发者的过程对 Cpython 来说是非常透明的。对任何感兴趣的人来说,加入你感兴趣的项目的不同方面的讨论,并以任何方式做出贡献。Python 可以在许多领域受益于您的技能。

谢谢你接受采访,乔安娜!

本周 PyDev:乔·考菲尔德

原文:https://www.blog.pythonlibrary.org/2022/12/26/pydev-of-the-week-joe-kaufeld/

本周我们欢迎乔·考菲尔德成为我们的本周 PyDev!乔已经做了十多年的会议组织者,并共同创立了 TranscribersOfReddit。Joe 活跃在 Python 社区中,并且已经使用这种语言很多年了。

让我们花些时间更好地了解乔!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)?

一般介绍时间!我是一名自学成才的开发人员,住在印第安纳州的印第安纳波利斯。当我不思考代码的时候,你通常会发现我浑身是木屑或者在一堆猫下面。

我拥有波尔州立大学的信息系统和运营管理学士学位,这为我从事顾问这一辉煌的职业做好了准备。毕业后做了咨询师,很快意识到自己讨厌 it!我转变成了一个 IT 服务台的角色,并一步步升到了现在的职位:高级开发人员。一路走来,我发起了一些附带项目,包括一个国际非营利组织和一个非常活跃的 3D 打印塑料参考图书馆。(稍后将详细介绍这两者!)

我和我的好伴侣以及三只猫住在这个城市一个相对安静的角落里。

你为什么开始使用 Python?

在大学期间,我偶然发现了商学院的一个无人问津的房间,这个房间自 2003 年以来就没人动过。它致力于一个学生项目,利用废弃的大学设备创建一个贝奥武夫集群。在我找到负责这个房间的教授后,我问我是否可以使用它,他基本上是把门钥匙扔给我,并说“玩得开心!”。我将所有设备更换为新的(大约 2012 年)硬件,这些硬件是从校园内的其他部门拆除的,丢弃了所有旧的硬件,并在 CentOS 5 上构建了一个 115 节点的集群。

鉴于我对如何让软件在 monstrosity 上运行有完全的自由,我花了很多时间评估不同的选项和语言。最终,我登陆了 Python 2.7.0 和并行 Python ,一个基于 HTTP 的多处理库。我用它开发了一个叫做 ClusterBuster 的系统,这是一个速度惊人的 Windows NTLM 密码破解程序。

开发的绝对便捷对我来说是一个游戏改变者;我以前的经验是 QBASIC 和 FORTRAN,与这些相比,Python 是一股我不知道自己需要的新鲜空气。

你还知道哪些编程语言,你最喜欢哪一种?

我的第一次是 QBASIC:当我 11 岁的时候,我爸爸让我坐在一台 Windows 95 机器前,打开 QBASIC 熟悉的蓝屏,按 F1 键调出帮助菜单,然后让我自己处理带有爱普生点阵打印机的设备。我用这些知识说服(贿赂)了我的数学老师,让我用我的 QBASIC 程序交换工作表,这个程序完成了当天的数学作业。既然我可以向计算机解释如何解决这个问题,那么我就清楚地知道这个作业应该包括什么。那个借口今天可能不会飞!

我在高中时学了一些 FORTRAN 语言,因为我觉得无聊,但老实说,我从未喜欢过它。Myspace 时代让我接触到了 HTML 和 CSS,不久之后我就对 JS 产生了适当的厌恶。我仍然做相当数量的 JS,但是我在期间和之后的痛苦抱怨没有改变。一旦我接触了 Python,一切都变得清晰了——我发现了一种对我和我的大脑如何工作有意义的语言。

从那以后,我尝试过其他语言——c++、Rust、Ruby、Crystal,还想到过 Java 但我对编程的热爱仍然是 Python。

你现在在做什么项目?

我的日常工作是作为一名 Python 开发人员用 Django 构建 API,但围绕这一点,我运行 FilamentColors.xyz ,一个用于 3D 打印机细丝的颜色匹配工具。这是或多或少在不断发展的东西,因为我总是想以最好的方式展示这个系列,并尽可能使它有用。我们有大约 880 个细丝被编目和发布,另外大约 800 个正在进行中,因为我不得不暂停工作来刷新 UI。

除了 FilamentColors,我还是 Grafeas Group 的总裁和联合创始人,这是一个 501c3 组织,致力于提高互联网的可访问性。(你可能已经在连线上看到过我们的特写!)通过全球约 5800 名志愿者,我们将图像、视频和音频转换成一种人人都能访问的格式:文本。该非营利组织监管 Reddit 上一个名为的社区,这是一个任何人都可以加入的“工作板”。我们提供与 Reddit 上的主要盲人和视障人士社区 r/Blind 密切合作设计的模板和指南。你可能已经看到我们的工作以评论的形式散布在 Reddit 上,以“图像转录:”开始,以“我是一名人类志愿者内容转录者,你也可以!”中间写下链接内容的完整描述。到目前为止,我们已经在 Reddit 上完成了超过 267,500 次转录,并计划做更多!

哪些 Python 库是你最喜欢的(核心或第三方)?

我真的把“对 Django 了解很多”变成了一项事业,所以我非常感谢 Django 的核心团队和所有帮助它成为今天的贡献者。除此之外,我真的很喜欢和以下人一起工作(绝对没有特别的顺序):

外面有这么多令人惊奇的包和库;在我经常使用的所有工具中,Django 无疑是最受欢迎的(尽管它在技术上是一个框架,而不是一个库),所以本着回答这个问题的精神,我真的不得不说出诗歌和黑色;当开始一个新项目时,我运行的第一个命令是:

诗 init
诗加黑-组开发

TranscribersOfReddit 是怎么来的?

回到 2014 年,我有一部真的烂手机。它很小,几乎没有合理的功能,而且(最重要的是)不能很好地放大图像。我曾经是(并将继续是)一个 r/DnDGreentext 的狂热读者,这是 Reddit 上的一个社区,全是关于角色扮演小组做傻事的,通常是以打破游戏规则的方式。偶尔会有来自网络上不同地方的游戏故事的大量截图被贴在一起,每当我发现其中一张,我就会把它保存在手机上,并在午休时在我的电脑上打印出来。当时我把它作为打字练习,我想,“嘿,也许有人和我一样,因为这样或那样的原因看不懂这些。我只是把工作放在那里,这样如果有人需要,它就在那里。”

随着时间的推移,我最终开始收到其他读者的 pings,主要是问我什么时候能有一份供阅读的转录,因为事实证明,即使在桌面上操作这些巨大的截图有时也不会那么好。

更多的时间过去了,然后奇怪的事情发生了:有人开始和我赛跑,每当这些截图出现时,我就把它们转录下来。我想,“这太奇怪了,我不知道为什么其他人也想这么做,”所以我暂时忽略了他们。我们最终聊了起来,发现他是一个无聊的大学生,而我是一个无聊的服务台技术人员。在讨论了我们学到的一些东西后,我们决定建立一个 subreddit 和一些基本的脚本(Python 和 PRAW 来拯救!)创建一种工作公告板,这样我们就可以知道其他人在做什么,而不会重复工作。

当我建造最初的机器人时,我一直在想,“我想知道是否有其他人也会这样做?”。我们决定宣布我们的小系统开放,激动得都没查日期:2017 年 4 月 1 日正式开放。

这并没有阻止人们加入;在第一天结束的时候,我们有 30 个人注册了,r/Blind 的首席版主发来了一条非常严肃的信息,基本上可以归结为“你知道这是一个怎样改变生活的工具吗?”我们立即开始密切合作,以确保我们能够融合这两种愿景,现代转录 fReddit 诞生了!

你从创建 TranscribersOfReddit 中学到的最重要的三件事是什么?

在我的职业生涯中,我犯了很多错误(我们都犯过),我很幸运,我在 transcriptorsofreddit(ToR)上犯了一些更严重的错误,而不是在我的日常工作中!这些是立即浮现在脑海中的情景和事情:

  • 设计符合需求和团队的项目
    • 当我们发布 ToR 的时候,我们真的没有打算让任何人加入我们。因此,在编写驱动 subreddit 的机器人时,我走了很多捷径。当我们需要处理更多的流量时,这一点很快变得很明显,我使用一种更微服务 y 的设计来重建东西,因为我根本不知道我们需要处理多少流量,这是我在财富 500 强公司担任开发人员时熟悉的用法。事实证明,微服务基本上是一个全志愿者团队的死刑判决,开发进度基本上停滞不前,直到我们将我们的系统“去微服务化”成一个核心的 Django monolith,机器人作为它周围的服务。我们从一个月一次的部署(因为它需要几个人、仔细的时间安排和粗制滥造的文档)发展到一个全自动的过程,这个过程可以每天部署多次,而不需要团队中的任何人反复思考。
  • 你不能在泡沫中发展一个社区
    • 如果只有我们两个,我知道 ToR 不会像现在这样成长。凭借我们出色的行业人脉和出色的团队(根据一年中的不同时间,人数在 17 至 23 人之间)帮助保持一切正常运转,没有一个想法不会立即引起“嗯,X 或 Y 怎么样?”这几乎肯定是我们其他人没有考虑过的事情,能够进行这些讨论意味着这个特性或想法会更强大、更有用。如果我们从来没有从 r/Blind 那里得到这个消息,我们绝对不会有今天。
  • 它需要一个村庄
    • 我对自己试图承担一个项目的每个方面感到内疚(我们中的许多人都是如此),有一件事一直困扰着我,那就是我根本无法独自完成这件事。太多了。Grafeas 董事会和我们出色的 ToR mods 团队是不可或缺的。没有团队,就没有 ToR。没有志愿者,就没有 ToR。没有读者,就没有 ToR。这需要如此多的人和愿景来实现,我非常感谢他们每一个人。

你还有什么想说的吗?

我非常感谢更广泛的 Python 社区,因为我构建的东西是建立在巨人的肩膀上的。我喜欢 Python 的生态系统,喜欢它的多样性——以及它的开放性——这绝对是一种享受。致迈克:非常感谢你给我机会成为这个系列的一部分!

乔,谢谢你接受采访!

本周 PyDev:乔尔·格鲁什

原文:https://www.blog.pythonlibrary.org/2019/05/06/pydev-of-the-week-joel-grus/

本周我们欢迎 Joel Grus ( @joelgrus )成为我们本周的 PyDev!乔尔是《从零开始的数据科学:Python 的基本原理》一书的作者,该书来自 O'Reilly。你可以在乔尔的网站Github 上找到他。让我们花些时间来更好地了解乔尔!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

在学校,我学习数学和经济学。我的职业生涯始于量化金融(期权定价、金融风险等等)。我非常非常擅长 Excel,还学了一点 SQL。但我有点讨厌在金融行业工作(我也被解雇了),所以我加入了一家在线旅游初创公司,担任“数据分析师”,从事商业智能方面的工作(大量电子表格、大量 SQL、一些非常简单的脚本)。那家初创公司被微软收购了,当时微软根本不知道如何利用我这位不仅仅是金融分析师,还不算软件工程师的技能组合。(我也没有,真的。)

然后在 2011 年,我看到风正吹向“数据科学”,所以我在一家小初创公司找到了一份数据科学家的工作。我参加了一堆 Coursera 课程来填补我的知识空白,然后我学会了写(丑陋的)生产代码,发现我真的很喜欢构建软件。通过在编码竞赛中的出色表现,我有机会面试谷歌的一份软件工程师的工作,所以我花了 6 个星期非常紧张地死记硬背计算机科学,然后不知何故通过了面试。我在谷歌呆了几年,然后我发现我错过了做数据和 ML 的东西,所以现在我在艾伦人工智能研究所,在那里我为 NLP 研究人员建立深度学习工具。我目前的工作正处于深度学习和 Python 库设计的交汇点,这与我的兴趣非常匹配。

我真的没有时间做业余爱好,ðÿ˜。我有一个 8 岁的女儿,我花了很多空闲时间和她在一起,然后我一直同意和/或自愿写东西,做演讲,制作现场编码视频,这占据了其余的大部分时间。然后我有一个播客和一个推特可以关注。我有长期的爱好目标,( 1)学习爵士钢琴,( 2)写一部小说,但是我在这两方面都没有太大的进展。

你为什么开始使用 Python?

很久很久以前,我参加了一个用 Matlab 教授的“概率建模”课程。Matlab 的网站许可证只在校园内有效,这意味着我不能在我的公寓里做作业,而我更喜欢在那里工作。我发现有一个叫做 Numeric(NumPy 的前身)的 Python 库,它可以让我做我需要做的数值模拟的事情,所以我学习了足够的 Python 来完成我的任务。几年后,我有了一份工作,我继承了一堆 Perl 脚本,我真的不想维护 Perl 代码,所以我开始将它们迁移到 Python,剩下的就是历史了。

你还知道哪些编程语言,你最喜欢哪一种?

我工作的 10-15%涉及编写 JavaScript / React,这是我真正喜欢的。(如果这是我 100%的工作,我可能会不太喜欢。)在 AI2 的第一年,我主要在 Scala 中工作,之后我短暂地参与了一个 Go 中的项目。在谷歌,我主要写 C++。我之前所在的创业公司用的是 F#。为了好玩,我曾经写过 Haskell 和 PureScript。我的一部分仍然梦想着拥有一份 Haskell / PureScript 的工作,但此时我在 Python 中工作得如此舒适(Python 作为进行机器学习的语言已经如此根深蒂固),以至于我似乎不太可能做出改变。

你现在在做什么项目?

在我的日常工作中,我是 AllenNLP 的核心开发人员,这是一个面向 NLP 研究人员的开源深度学习库。我刚刚从零开始完成了数据科学的第二版,现在应该随时可用。四月,我将在 qcon.ai 做一个关于现代 NLP 的主题演讲。这个月,我将在 ICLR 大学的“可复制的 ML”研讨会上发表演讲,并在 ASA 统计和数据科学研讨会上做一个喜剧宴会主题演讲,这意味着我需要写一个 30 多分钟的关于数据科学和统计的脱口秀节目。这听起来是不是太难了?这太难了。但这些项目中的每一个都令人兴奋,我无法想象我会对哪一个说不。(我很难对事情说不。)

哪些 Python 库是你最喜欢的(核心或第三方)?

我觉得 PyTorch 很棒。(AllenNLP 就是建立在它上面的。)我几乎是世界上最大的类型注释支持者,并且(因此)我是 mypy 和类型模块的忠实粉丝。itertools 中有很多有趣的东西,通过学习它,你可以真正提高你的 Python 水平。我也非常喜欢 Flask——知道如何原型化微型 Flask + React 应用程序对于数据科学家来说是一个次要的超级能力。tqdm(iterables 的进度条)出人意料地经常派上用场。

你是如何结束写一本关于数据科学和 Python 的书的?

与所有“著名”的数据科学家相比,我觉得自己像个骗子,所以我想,如果我写本书,我可能就不那么像个骗子了。我给奥莱利发了一封冷邮件,告诉他我的提议(最初的提议过于雄心勃勃),他们非常怀疑,所以我不断给他们发送样本章节,最后他们问我“如果我们一直犹豫不决,你最终会给我们整本书吗?”我说可能,然后他们说好的,我们会出版它,然后我基本上花了接下来一年所有的空闲时间来写它。

现在是 2019 年,我感到非常内疚,因为有一本 Python 2.7 的书上有我的名字,所以我提出了第二版,其中代码升级到 3.6(带有类型注释),我借此机会使代码更干净,更新了笑话,并添加了一些关于深度学习、NLP 和数据伦理等内容的新材料。

你在写书的过程中学到了什么?

我学到的主要教训是,所有我以为我明白的事情,我实际上并不明白。例如,我认为我理解假设检验,但当我开始试图解释它时,我发现我根本不理解它,然后我不得不在开始写这一章之前实际学习它。这本书里的许多话题同样令人羞愧。

当你编码时,很容易变得过于聪明,写一本书是纠正你这种习惯的好方法。我非常努力地让书中的代码示例尽可能的清晰,这种做法已经渗透到我写的所有代码中。

另一个教训是,你不可能让每个人都满意。有很多人真的很喜欢我的书(这是极其可喜的!),但也有一些人讨厌它。那真的很令人沮丧。一本好书是非常个人化的,这意味着当你出版它的时候,你真的把自己放在那里接受评判。那是一件困难的事情。

例如,在第二版中,我到处使用类型注释。我深信这是一个正确的选择(无论是道德上还是教学上),但我也知道有些人会绝对地讨厌类型注释,我仍然在为那些反应做准备。

你还有什么想说的吗?

数据科学第二版出来就从头买!😇

阅读别人的代码,并让他们阅读你的代码。这是提高编码人员的最好方法之一。有不少人告诉我,他们已经开始使用类型注释或命名元组或断言或各种其他东西,因为他们看到我使用它们,以及它们如何使我的代码变得更好。当有人告诉我,由于我的书、我的博客或我的一个视频,他们是一个更好的程序员或更好的数据科学家时,这是我最美好的感受之一。

最后,不要使用可变对象(例如列表)作为函数参数的默认值!每个人都至少会犯一次这样的错误,弄清楚自己做错了什么总是一件痛苦的事情。

感谢您接受采访!

本周 PyDev:约翰·库克

原文:https://www.blog.pythonlibrary.org/2016/04/11/pydev-of-the-week-john-cook/

本周,我们欢迎约翰·库克成为本周的 PyDev!约翰有一个有趣的 Python 博客,我经常阅读,他欣然接受了我本周采访他的邀请。让我们花点时间更好地了解他。

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名从事数学、数据分析和软件开发的顾问。我做的大多数项目都有这两个元素,如果不是全部三个的话。在创办自己的公司之前,我做过各种各样的工作,其中大部分都涉及到数学和软件开发的结合。

你为什么开始使用 Python?

*Several people suggested I try Python. I'd take a look at it and think "This doesn't look so special. I don't see what other people see in it."  A few months would go by, then someone else would suggest I try Python, and I'd have the same reaction.** The thing that broke the cycle was a comment in an article by Bruce Eckel. He said something like "I teach Java but I can't remember how to open a file in Java. But I can remember how to do it in Python."  I realized then that when I'd looked at Python and thought it was kinda dull, that's a good thing! Python doesn't have flashy syntax. It's kinda plain, in a good way. I noticed later that while fans of other languages might want to show off some clever piece of code, you don't see that much in the Python community. Instead you see people showing off what they were able to build with Python. *Even though I now mostly use Python for scientific computing, I didn't know about Python's scientific libraries when I started using it. I only used Python for the kinds of things I'd previously done in Perl, things like text munging. I was amazed when I found out later that so much mathematical code was available for Python.


你还知道哪些编程语言,哪种是你最喜欢的?

我写过很多 C++。当 Python 不够快时,我会转向 C++,尽管我不常这么做。在过去的几年里,我在不同的项目中使用过 R、C#和 Haskell。

我真的很喜欢 Mathematica 的一致性和可预测性,尽管我已经有一段时间没用它了。我现在用 Python 来做我以前用 Mathematica 做的工作。尽管有些事情用 Mathematica 更容易,但为了避免切换上下文和使用两种语言和环境,还是值得付出一些额外的努力。当然 Mathematica 很贵。即使我认为 Mathematica 许可证的价格值得我自己使用,我也不能要求客户购买 Mathematica 许可证。

你现在在做什么项目?

I just started working on a big project involving signal processing and acoustics.

哪些 Python 库是你最喜欢的(核心或第三方)?

我每天都用 SciPy。这是我最喜欢的,因为我依赖它,我很感激为它付出的巨大努力。就 API 设计而言,不能说是我的最爱;我希望它更加一致和可预测。

我希望我更了解熊猫和交响乐。我偶尔会用到它们,但还不足以让我记住它们的语法。

conda 是一种元库,而不是图书馆本身,但我真的很欣赏 Conda。这使得安装包变得更加容易。我在 Windows 和 Linux 之间来回切换,能够在两种环境中依赖相同的库真是太好了。以前,一些软件包可以在一个操作系统上顺利安装,但不能在另一个操作系统上顺利安装。

你看 Python 作为编程语言何去何从?

I don't know much about where the core Python language is going, but it's clear where the scientific computing stack on Python is going. The component libraries have come from independent projects, but a lot of work is going into integrating them into a coherent stack. I wrote a short blog post on this here.Thanks so much!

本周 PyDev:约翰·里斯

原文:https://www.blog.pythonlibrary.org/2018/04/30/pydev-of-the-week-john-reese/

本周,我们欢迎约翰·里斯( @n7cmdr )成为我们本周的 PyDev。约翰为脸书工作,使用 Python 已经很多年了。他有一个博客,,但是已经有一段时间没有更新了。如果你想知道他在开源世界里做了什么,那就看看他的 Github 简介。让我们花一点时间来更好地了解他!

你能告诉我们一些关于你自己的情况吗(爱好、教育等):

我喜欢把自己描述成软件工程师、视频游戏爱好者和虚拟宇航员。我喜欢涉足摄影、天文和音乐,但我最热衷于技术和游戏。我最喜欢的游戏系列是 Mass Effect,但我在 Kerbal Space 项目上花的时间比其他任何游戏都多。

我一生中的大部分时间都在编写软件。它始于我六岁的时候,用一台带 MS-DOS 的 286,编写批处理脚本为那个时代的 PC 游戏创建简单的菜单或启动盘(640KB 永远不够用weary)。在小学,我开始用 BASIC 为 PC 编写自己的“游戏”,到了高中早期,我已经在用 PHP 建立自己的网站,并开始摆弄 C++来编写游戏的基本 mod。

我在纽约州北部的罗切斯特理工学院上大学,毕业时获得了软件工程学位。从那以后,我从事开源软件、电信、网络安全和游戏开发,主要是用 Python 编写后端服务或自动化系统。

我现在和我的 wifeðÿ'ðÿ·ðÿž以及两只猫住在旧金山湾区,我是 Facebook 的一名制作工程师。我是一个存储团队的成员,负责维护和复制任意二进制数据,包括脸书、Instagram 和 WhatsApp 的照片和视频,以及 Oculus VR 耳机的游戏。我用 Python 构建了各种各样的监控和自动化系统来审计我们服务的健康状况,并协调数据迁移,以确保在硬件故障和网络中断时数据的持久性和可用性。

你为什么开始使用 Python?

我第一次使用 Python 是在大学后期,当时在当地一家电信硬件公司工作。我在开源 PHP bug 追踪器中添加了新的特性——Mantis BT,它使用了一些 Python 脚本来自动化发布构建之类的事情。在克服了有争议的空白之后,我爱上了语法和庞大的标准库。从那一刻起,所有其他的语言立即感觉晦涩和冗长,我注定要走上启蒙之路!

你还知道哪些编程语言,你最喜欢哪一种?

Python 是一种非常固执己见的语言,我非常赞同其中的大多数观点,所以它无疑是我最喜欢的语言!尤其是在添加了类型注释和 asyncio 之后,我几乎没有理由在性能关键型应用程序之外选择另一种语言。也就是说,这些年来我已经尝试了无数种语言;大多数都让我很沮丧(看看你,PHP),但是如果 Python 明天消失了,我也能忍受一小部分。Swift 和 C#都是伟大的语言,具有优秀的特性和足够好的语法,并且它们还在快速地进步。C++一直是系统编程的强有力的替代品,尽管它是我最不喜欢的语法之一,我确信它将在未来很长一段时间内继续扮演它的角色。

你现在在做什么项目?

我目前正在为 PyCon 2018 准备一个演讲,主题是使用 asyncio 和多处理技术进行高度并行的监控和/或抓取工作负载。为了配合这次演讲,我正在编写一些简单的示例代码,希望能在 Github 上发布。这将是我第一次在大会上发言,所以我既兴奋又害怕!sweat_smile

除了 PyCon,我最新的公共项目是一个围绕 sqlite3 模块的 asyncio 包装器—aiosqlite。它允许异步代码继续运行,而数据库查询或事务在单独的线程上运行。这对于我用 asyncio 构建需要数据库的独立应用程序很有用,但不需要像 MySQL 这样的专用服务器。

哪些 Python 库是你最喜欢的(核心或第三方)?

我强烈支持为代码质量和可维护性设定高标准,不管一个项目有多琐碎或重要。鉴于此,我非常喜欢类型模块中的新数据类型和特性,这使得创建良好类型的数据结构和模块变得非常容易。结合 mypypylintbugbear 和优秀的新自动格式化程序 black ,用 Python 编写干净且健壮的软件变得前所未有的简单。

你还有什么想说的吗?

技术的多样性对我来说是一个重要的问题。我们可以做更多的事情来培养和促进我们行业中所有种族和性别的平等代表性。在这方面,我想对优秀的女孩应用程序营项目大声疾呼:

女孩应用营是一个为期一周的暑期项目,女孩、跨性别和性别不合群的年轻人可以在这里发挥他们的创造力,设计和开发应用。他们还学习软件行业,同时受到行业榜样的启发。

如果可能的话,请考虑支持他们。

感谢您接受采访!

本周 PyDev:约翰·希恩

原文:https://www.blog.pythonlibrary.org/2021/03/22/pydev-of-the-week-john-sheehan/

本周,我们欢迎约翰·希恩(@詹纳斯)成为我们本周的 PyDev。约翰是《T2 对 Python 的反应》一书的作者。你可以通过约翰的网站或他的 Github 个人资料查看他最近的动态。

现在让我们花些时间来了解约翰吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名自由软件开发人员,主要致力于为中小型企业开发内部应用程序。在过去 25 年为我自己的客户工作期间,我还在一个大型的多年企业 Java 项目中担任项目经理,并花了几年时间为一个本地 Makerspace 运营。

很久以前,我在芝加哥的伊利诺伊大学获得了计算机科学与工程学位。从那里开始,由于某人犯了一个随机的文件归档错误,我立即得到了一份机械工程的工作,最终我搬到了加利福尼亚。虽然那份工作与编程没有任何关系,但它让我花了几年时间了解一家中型企业的方方面面是如何运作的。当我离开那里开始自由编程业务时,那段经历被证明是无价的,因为它让我可以走进几乎所有的小企业,并在很短的时间内完全理解他们的业务工作流程。然后,我能够有效地将这种理解转化为软件,以帮助他们实现流程自动化。为此,我把我在自由职业中开发软件的成功归功于花了很多年时间根本不开发软件。

从十几岁开始,我就是一个狂热的电子爱好者。当我偶然发现 Make 时,这种激情在 2000 年代中期重新焕发出来!杂志,并介绍了 Atmel AVR 系列微控制器。从那时起,我已经深入到了 Raspberry Pi 的世界(我是一个 Raspberry Pi meetup 组的组织者),并且对我使用 MicroPython 编程的 Espressif ESP8266 模块有着浓厚的兴趣。

我也是一个终身音乐家(萨克斯管、吉他、长笛、键盘乐器、口琴),尽管在过去几年里,我生活中的这一方面一直处于次要地位。

你为什么开始使用 Python?

当我开始从事自由职业时,互联网刚刚起步,桌面应用是常态。小企业(我的目标市场)当时正处于从纸质到数字的转换过程中,RAD 是当时的流行语。因此,我主要从事 Visual Basic 桌面应用程序开发。不管是好是坏,我当时开发的许多应用程序今天仍在使用。当微软用 C#取代 VB 时,我开始寻找替代品,而 Python 是最符合我需求的。我使用 Python 已经十多年了。

奇怪的是,我第一次接触 Python 是一个嵌入在 Digi Zigbee-to-Ethernet gateway 设备中的解释器。我的第一个有用的 Python 程序是在数据流经网关时转换数据。

你还知道哪些编程语言,你最喜欢哪一种?

在这一点上,Python 绝对是我最喜欢的语言。它正好符合我的大脑的工作方式,它真的很通用,让我觉得编程很有趣。除了“Hello World”之外,我实际使用的其他语言还包括(按我学习的时间顺序):Basic、C、Lisp、VB、VBA、C++、JavaScript、Java、(Python)、Google Apps Script 和 Scratch。其他语言目前在我的考虑范围之内,包括 Kotlin、Rust,可能还有 Dart,因为有了 Flutter 平台。

我最活跃的语言使用是 Python,尽管我仍在维护几个 VB/VBA 应用程序,并在一些嵌入式项目中使用 C。

你现在在做什么项目?

我多年来开发的大多数应用程序都是面向中小企业市场的内部 CRUD 应用程序。我一直试图解决的一个大问题是,找到一种负担得起的方式,让我现有的客户离开桌面,到 web 上使用他们的内部应用程序。事实上,定制 web 应用程序非常昂贵,小型企业很难证明这种成本是合理的,尤其是当他们已经有了满足其基本需求的东西时。

它可以追溯到 90 年代后期的快速应用程序开发工具,在那里你可以在几周内而不是几个月内大量生产一个全功能的 CRUD 应用程序,并且功能更新可以在几小时内而不是几天内完成。一些 web 开发工具现在终于又朝着那个方向前进了(而另一些则远离了它),但是还没有完全实现。

我最近看到的一个比较有趣的平台是 Anvil 。他们本质上为 web 应用程序创建了一个 VB 风格的平台,并使用 Python 作为“表单背后”的语言。当我发现 Transcrypt 时,我正准备深入其中,看看它是否符合我想要完成的范围,并转而走上了用 Python 开发 React 应用程序的道路。

我也有一些嵌入式开发方面的项目正在进行。一个是基于树莓派的相机,它允许公众在实物艺术展示前给自己拍照,然后树莓派给他们发短信。我将它绑定到 AWS IoT 中,用于日志记录、指标、监控和管理任务,它是用 Python 编写的。

尽管如此,我过去 6 个月写的这本书占据了我大部分的时间。我期待着把它拿出来,重新花更多的时间去开发。

哪些 Python 库是你最喜欢的(核心或第三方)?

Transcrypt 已经改变了我的游戏规则。将它与 React 一起使用,十年来第一次,前端 web 开发实际上又变得愉快了。

弗拉斯克很适合合作。我喜欢它的单点方法,主要用于访问后端 SQL 数据库的 REST APIs。但是我有时也会手工编写基本的 Jinja 模板,这些模板通常只用于内部仪表板或管理类型的应用程序。

Boto3 对于与 AWS 一起工作非常有用,Zappa 使得将 Flask 应用程序部署为 AWS Lambda 变得非常简单。它非常适合管理仪表板。

你的书《对 Python 的反应》是如何产生的?

我曾经和一个同事在一个基于 React 的 CRUD 应用程序上结对编程(使用 Kotlin & TypeScript),我非常喜欢 React 提供的声明式函数范例。然而,我不一定是 JavaScript 或 TypeScript 的忠实粉丝。但是,当我开始使用 Transcrypt 并发现它与 React 库配合得非常好时,我决定尝试使用 Python/Transcrypt/React/Material-UI 将我的一个客户端上的 VB 应用程序转换为基于 web 的版本。在这样做的过程中,通过一点点的试错,我想出了一个产生真正干净的 Python 代码的过程,并产生了一个现代的、看起来体面的、执行性的 web 应用程序。实际上,我被它的效果和实现起来的乐趣惊呆了。我不需要用 JavaScript 来思考。

我想分享我所学到的东西,并开始为我管理的 Python meetup 组准备一份关于我所采用的方法的演示文稿。在为它写提纲的过程中,我有太多的信息,由于需要时间来涵盖所有的内容,我不得不从演示中排除,所以我决定把它写成书。

我仍然计划把基本的东西放在一起做一个演示,而且一旦我出版了这本书,我可能会写一些与这个主题相关的博客文章。

你在写书的过程中学到了什么?

啊,太多了。首先,没有一种方法或正确的方法可以做到这一点。我最终使用了我刚开始时发誓不会使用的方法和工具。但后来它们对我来说还是很有效的。我使用谷歌文档作为最初的手稿,然后将每一章转换成 Markdown。在那里,我使用 Pandoc 生成用于打印的 PDF(通过 LaTex)以及 epub 格式(使用 CSS)。最初的设置很痛苦,但现在对我来说,最终的工作流程其实很简单。

接下来,当你写完手稿,如果你是自助出版,你实际上只完成了一半。编辑、代码管理、索引、编辑、布局、评论和编辑会占用你和一开始写这本书一样多的时间。这个过程的后半部分比实际的写作要乏味得多。

过去我已经组织了一些培训课程和演示,但这是我的第一本书。在做了大量关于最佳实践的研究之后,我仍然对我的方法有几个问题和疑虑。由 Matt Harrison 教授的创作课程确实帮助填补了我的许多知识空白,他作为课程的一部分所做的作者访谈在提供对该过程的额外见解方面非常显著。

到目前为止,这个过程还是可以管理的,而且我还有另外一本书的主题在排队。我会先看看这第一个做得怎么样,然后再做下一个。这是一项繁重的工作,相当耗费时间和脑力。

你还有什么想说的吗?

我很感谢你提供这个平台来分享开发者的经验。有这么多的材料只是关于什么是最新的和最伟大的,但有很多有趣的事情正在进行中,在不太明显的利基领域解决问题。

我还要感谢整个 Python 社区。在过去的 10 年中,这种欢迎的氛围和分享想法和知识的意愿非常显著,我希望随着越来越多的人采用 Python 语言,这种态度会继续发扬光大。

约翰,谢谢你接受采访!

本周 PyDev:乔纳森·霍夫施塔特

原文:https://www.blog.pythonlibrary.org/2021/03/01/pydev-of-the-week-jonathan-hoffstadt/

本周,我们欢迎乔纳森·霍夫施塔特( @jhoffs1 )成为我们本周的 PyDev!乔纳森是《亲爱的 T2》的合著者。这是一个简洁的新 Python GUI 包。你可以在 Github 上看到 Jonathan 还在做什么。

让我们花些时间来更好地了解乔纳森!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是德克萨斯州休斯顿的一名机械工程师。我拥有路易斯安那州立大学的机械工程学士学位,曾是美国海军陆战队的一名拖车炮手,大学毕业后一直在石油和天然气行业工作。

我的爱好包括国际象棋、射击和编程。对于编程,我发现 3D 图形非常有趣。

你为什么开始使用 Python?

我从中学开始就对编程感兴趣,因为我收到了一本 C++傻瓜书作为礼物,但是直到大学我才接触到 Python。正是在那里,我开始使用 Python 作为 MATLAB 的免费替代品来完成作业。没过多久,我就迷上了这门语言。

我开始在作业之外尽我所能使用它。这包括制作小游戏,在实习中自动完成任务,用树莓派控制实验板,以及其他任何事情。与其他语言相比,我惊讶于你能如此迅速地让事情发生。

我最终在有限元分析和计算流体力学的课程中使用了 Python。对于我们的高级设计顶点项目,我的团队的任务是构建一个弧焊 3D 打印机。作为接触编程最多的成员,我负责项目的软件方面,在这个项目中,我使用 Python 来控制所有的机械设备,包括机器人手臂和团队创建的定制电子设备。我还编写了我的第一个用户界面,它使用 tkinter 和 pygame 来包装开源切片引擎,并提供刀具路径和机械臂位置的 3D 视图。

你还知道哪些编程语言,你最喜欢哪一种?

C、C++和 Java 是我的其他主要语言,尽管我曾经使用过 C#、Swift 和 Objective-C。

事实是我有两种最喜欢的语言。大型项目的 C++。Python 适用于小型项目、脚本编写和完成工作!

你现在在做什么项目?

我目前花了大部分时间在《亲爱的 PyGui》上。

哪些 Python 库是你最喜欢的(核心或第三方)?

我最喜欢的 Python 库应该是 NumPy、Pillow、tqdm、json 和 Nuitka。

亲爱的 PyGUI,你的包裹是怎么来的?

亲爱的 PyGui 是我和我的朋友 Preston Cothren 合著的一个图形用户界面库。作为机械工程师,我们每天都使用 python 进行计算、编写脚本以及为机械设计和分析中使用的各种软件添加插件。我们想要一种简单的方法,用最少的努力给不同的脚本添加一个接口。

该软件的第一次迭代被称为“工程师的沙盒”,这是商业的。不仅创建小界面很容易,而且打包和分发也很容易。它带有一个内置的 IDE 和 60 个预制的应用程序。“沙盒”是一个嵌入了 python 的 C++程序,图形是用 wxWidgets 创建的。最终,这个项目失败了,只有几百个用户。你可以在下面看到它的图像:

Engineer's Sandbox (precursor to Dear PyGUI)

在放弃工程师的沙盒六个月后,我们重新审视这个想法,重新评估。我们有 3 个体会:

1.我们的主要目标受众(机械工程师)大多对编程不感兴趣。

2.该软件对开发人员(我们的第二个目标受众)来说太严格和有限了。有限的部件、布局、有限的第三方可操作性等。

3.大多数开发人员更喜欢使用开源库。

从这些实现中,我们回到了绘图板,并决定制作一个完整的 GUI 库。这个迭代是开源的,是 Python 的扩展(而不是一个独立的软件),并且尽可能容易使用。

在迭代之间,我们爱上了 C++库,亲爱的 ImGui,因此决定使用它作为基础库来构建。由于 Dear ImGui 是一个即时模式 Gui 库,与其他 ui 库相比,它允许我们使 Dear PyGui 非常动态。

自从我们在 2020 年 7 月发布了第一个公开测试版以来,亲爱的 PyGui 的人气持续快速增长:

Dear PyGUI Examples

作为一名开源开发者,你学到的前三件事是什么?

作为一名开源开发者,我了解到:

1.这是一项艰苦的工作,会让你欣赏开源软件和开发者。

2.倾听社区的声音,但也知道何时说“不”。

3.资金很难找到,所以你应该享受你正在做的工作。

你还有什么想说的吗?

是啊!这是给那些编程新手的。经常有人问我如何学习一门编程语言、库、主题等。我的答案一直是:学习编程的最好方法就是开始构建东西。

我通常浏览一本书,然后立即开始尝试构建一些东西。当我陷入困境时,我会回到书中更仔细地阅读相关章节。一旦到了重构和优化的时候,我通常会回到书中,阅读更高级的章节,因为我更清楚高级章节试图解决的问题。我发现这个技巧对我帮助很大。虽然你可能会在做完后再重新发明轮子,但是你最终会有一个更深刻的理解,你不太可能忘记。

乔纳森,谢谢你接受采访!

本周 PyDev:约瑟夫·豪斯

原文:https://www.blog.pythonlibrary.org/2018/01/29/pydev-of-the-week-joseph-howse/

本周,我们欢迎约瑟夫·豪斯(@猫和猴子)成为我们本周的 PyDev。Joseph 是关于 OpenCV 的几本书的作者(或合著者):

  • 秘密特工的 OpenCV
  • OpenCV 3 蓝图
  • 用 OpenCV 3 开发 iOS 应用程序
  • 用 OpenCV 3 进行 Android 应用程序编程
  • 用 Python 学习 OpenCV 3 计算机视觉
  • Python 游戏编程实例

你可以从 Joseph 公司的网站或他的作者 T2 页面了解更多。让我们花一些时间来更好地了解他!

约瑟夫·豪斯(左)和埃菲尔·爱因斯坦火箭(右)

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我住在一个叫特伦斯湾的渔村,在附近的加拿大新斯科舍省哈利法克斯市也有一个家庭办公室。我和母亲简、父亲鲍勃一起经营着一家名为 Nummist Media 有限公司的咨询公司,专攻计算机视觉。我们有四只猫,分别叫萨尼贝尔、拉姆达、约瑟芬或“小乔”,还有艾菲尔。

我的计算机视觉书籍的读者会知道这些猫的前三个。他们还会知道 Plasma,一只善良的猫的领袖,它在去年八月不幸死于淋巴瘤。埃菲尔是我们新来的。他们都是伟大的猫科动物,真正致力于他们在计算机视觉方面的实验工作,以及他们以猫为中心的宗教,即 Nummism。

我喜欢摄影和写作。我收集照相机和镜头。这套兴趣对我的人生影响很大,包括我专攻计算机视觉。

我获得了法国和英国文学学士学位,工商管理硕士学位,国际发展硕士学位,最后是计算机科学硕士学位。我对计算机科学的兴趣是由我的哥哥 Sam 培养起来的,他专攻函数式和可证明编程。十年前的今年一月,他死于胆管癌。但是他教了我们很多东西,他仍然让我们发笑,而且,对于猫,你知道,他帮助编纂了 Nummism。

你为什么开始使用 Python?

我第一次发现 Python 是通过 Panda3D,这是我在家里研究的众多游戏引擎之一。总的来说,我对编程还是相当陌生的,这种语言被迪士尼和 NASA 使用给我留下了深刻的印象,它的可读性帮助我理解了设计模式和算法。我从 Mark Summerfield 的书《Python 3 编程》中学到了更多关于这种语言的知识。然后,对于大学作业,只要允许我选择语言,我就开始使用 Python 或 Ruby。我发现这些语言非常适合快速原型开发,在程序员被要求每周编写几个一次性项目的情况下,它们是真正的救命稻草!

你还知道哪些编程语言,你最喜欢哪一种?

除了 Python,我主要用 C,C++,Objective-C,Java,C#。我在学生时代也经常使用 Ruby 和 ActionScript 3,后者是我论文项目的语言,一个增强现实框架。对我来说,在任何给定的项目中,平台和库的选择往往先于语言的选择。我目前的大部分工作是在嵌入式系统的计算机视觉领域,在这里,我喜欢用 Python 做原型,然后用 C++改进实现。最重要的是,C++从未让我对性能或更低层次的访问感到遗憾。

你是如何开始写书的?

嗯,我写了一个,不知不觉又写了五个。

首先,2012 年,Packt Publishing 的一名编辑在网上找到我的简历后联系了我。Packt 希望成为第一家出版 OpenCV Python 绑定书籍的公司。我知道 Python,我是一名增强现实开发人员,我有教师、作家和编辑的背景。我对 OpenCV 完全陌生,但我想我们决定,如果我能自学,我就能教别人。

所以 Packt 和我写了第一本关于 OpenCV 的 Python 绑定的书:OpenCV 计算机视觉和 Python。它以初学者为目标,在应用程序开发的同时教授计算机视觉。它又短又甜,卖得很好。然后我们决定,让我们出版第一本关于 OpenCV 的 Android 绑定的书:用 OpenCV 进行 Android 应用程序编程。同样,计算机视觉和应用程序开发在这里携手并进。它短小精悍,卖得很好,尤其是对计算机科学和工程专业的学生。这些高级学生已经认识到 Android 作为计算机视觉平台的潜力,但他们的课程没有给他们任何移动开发的基础,所以他们从书中和自己的实验中学习。

我们开始看到出版更高级的应用计算机视觉书籍的机会。Packt 最近推出了一系列“给特工”的书,其中每一章都是一个受间谍小说启发的项目。我们决定,让我们用 OpenCV 来做吧!间谍用相机,嗯?所以我们为秘密特工制作了 OpenCV,我相信这有助于在猫身上普及人脸检测和识别的使用。它包含了一个猫脸检测器的 Haar 和 LBP 实现,我们将其开源作为对 OpenCV 的贡献。这本书的另一个亮点是欧拉视频放大的实时实现,使用 PyFFTW 库放大某一频率的精细运动。这可以让你看到像动脉搏动这样的东西,否则在低质量的网络摄像头输入中是看不到的。

然后,OpenCV 3 出来了,我们发现自己在修补和更新现有书籍的同时还试图扩大阵容。帕克特带来了五位伟大的合作者,他们使这项工作成为可能。Joe Minichino 为其第二版更新并大幅扩展了 Python OpenCV 书籍《用 Python 学习 OpenCV 3 计算机视觉》。他使它成为面向所有层次读者的机器学习和计算机视觉书籍。Alejandro Rodas de Paz 写了 Python 游戏开发示例,我在其中贡献了一章计算机视觉。这本书提供了一套有趣且易于使用的游戏项目,使用了大量的 Python 库。我与 Steven Puttemans、Quan Hua 和 Utkarsh Sinha 合作编写了我们最先进的书《OpenCV 3 Blueprints 》,它基于我们在研究和工业中测试过的一些最佳技术。为此,我写了我喜欢的主题:相机、镜头和计算摄影。

同时,作为唯一的作者,我更新和扩展了 Android OpenCV 的第二版——使用 OpenCV 3 进行 Android 应用程序编程。我也重新发现了我对 iOS 的兴趣,这是我编程生涯的起点。OpenCV 3 极大地改进了库的 iOS 绑定,所以我们决定,让我们写一本关于这些的书:用 OpenCV 3 开发 iOS 应用程序。我相信这仍然是唯一一本关于 OpenCV 3 的 iOS 绑定的书。阅读它,你将获得一个利基技能集。

暂时就这些书了。

你现在在做什么项目?

我正在帮助一组客户开发超声波仪器的嵌入式软件。我正在帮助另一个客户开发智能眼镜的增强现实引擎。这两种软件都是从头开始构建的,不依赖于其他专有软件。

除了继续发展 Nummist Media,我的父母和我正在进行一项新的投资。

除了生意,今年我们正在完成一项建造家园的长期工程。

哪些 Python 库是你最喜欢的(核心或第三方)?

嗯,OpenCV 显得很重要。然后,通过与它的互操作,NumPy、SciPy、scikit-learn 和 PyFFTW 都增强了 OpenCV 用户的高级功能库。总之,它们对于各种科学和机器学习应用程序的快速开发非常有用。

我也使用过 TensorFlow,它的初始图像分类器甚至可以从一组很差的样本中学习,这让我感到惊讶。

你对其他有抱负的作者有什么建议?

写一本书,编辑它,然后支持读者是一个漫长的迭代过程,涉及许多人和许多变化。写一系列的书,更是如此。许多有抱负的作者过度承诺自己,这通常意味着他们根本没有完成这本书,或者他们最终在编辑和支持阶段偷工减料。对你所做的承诺要现实和自律。在写一本书之前,希望你已经有足够的写作经验,知道你自己的生产力和工作习惯,并且(这一点很重要)知道你实际上喜欢写作。如果你不知道这些事情中的任何一个,你可能想先尝试一些小的写作承诺。比如在网上发布一些教程,以文章、视频的形式,或者两者兼而有之。如果你没有自己的网站,你可以在别人的网站上提供一份客座指导,可能是图书出版商的网站。

如果你有编辑或出版经验,这也是很有价值的,因为它会帮助你了解项目团队中其他人的工作。

编写安装说明。支持尽可能多的平台。您的读者的开发环境和部署目标会有很大的不同,除非您写了一本关于特定嵌入式系统的书。

即使是一本成功的书,也不一定能为作者赚到多少钱,至少不能直接赚到。请记住,很多技术书籍都是极端小众的产品,就像我们亲爱的用 OpenCV 3 开发 iOS 应用程序一样。尽管如此,你的书对你的职业或生意来说是一个很好的宣传工具。作为一名作者,你可能会经常收到主动提供的信息。

你还有什么想说的吗?

要灵活,要努力,要真诚。要有勇气和同情心。欣赏忠诚、简单和真正的美。拥抱一只猫。

非常感谢你接受采访!

本周 PyDev:约书亚·埃布纳

原文:https://www.blog.pythonlibrary.org/2021/08/30/pydev-of-the-week-joshua-ebner/

本周,我们欢迎 Joshua Ebner ( @Josh_Ebner )成为我们本周的 PyDev。约书亚在锐视培训数据科学方面的人员。

让我们花些时间来更好地了解约书亚!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

在专业上,我拥有一家数据科学培训公司, Sharp Sight

我的背景有些无关。我毕业于康奈尔大学,获得了物理学学位,但我决定不想成为一名物理学家。

通过一系列幸运的事件,我有机会加入美国银行的营销分析部门。在数据科学流行之前,这是的方式,我碰巧抓住了这个机会。

在我职业生涯的早期,我仍然不确定我想做什么,也不确定我是否会留在分析行业。但在 2011 年或 2012 年左右的某个时候,数据科学和分析将变得非常重要,这一点变得很明显,因此我加倍努力,开始尽可能地学习所有新兴工具和技术。

通过另一系列幸运的事件,我在苹果公司找到了一份数据科学家的工作。我在那里呆了一段时间,然后离开去创办自己的公司。

你为什么开始使用 Python?

当我开始从事分析行业时,我们几乎只使用 SAS 和 SQL。

如果你不熟悉,SAS 是一种用于数据分析的统计编程语言。当时,它几乎是唯一用于数据分析的语言,当然也是大型银行和更传统的财富 500 强公司(如广告公司、制药公司等)的首选分析语言。

2012 年左右,行业开始发生变化。越来越多的硅谷公司开始关注数据(尽管一些公司,如谷歌,已经被数据驱动了很长时间)。我开始在旧金山和硅谷看到新的分析工作招聘信息,但他们开始称之为不同的东西:数据科学。

尽管这个行业以前使用过 SAS,但在 2012 年左右,你开始看到更多关于 R 和 Python 的工作岗位和文章。

对我来说,SAS 很可能会成为一只恐龙。大型科技公司开始建立数据科学团队,几乎所有的团队都使用 Python,在较小程度上使用 r。

很明显,这个行业正在转向 R 和 Python,所以我开始学习它们。

你还知道哪些编程语言,你最喜欢哪一种?

Python 和 R 是我现在主要的编程语言。我也知道相当多的 SQL,尽管现在我不再在大型企业中使用它了。

我不确定我有最喜欢的。我认为不同的语言是擅长不同事情的工具包。

当我想讨论、分析和可视化我的数据时,Python 和 R 都是很好的选择。

如果我想自动化或构建一个系统,我更喜欢 Python,因为它的语法易于编写和阅读。在我看来,与 R 相比,Python 更适合更传统的软件构建。

Python 在机器学习和深度学习方面整体也更好。

所以 Python 和 R 是我使用的两大语言,但是我还有一些其他的锦囊妙计。

你现在在做什么项目?

我主要致力于建立更多的数据科学课程。

在 Sharp Sight,我们教授数据科学。特别是,我开发了一个训练系统,可以帮助人们记忆语法,并在编写代码时变得“流利”。

如果你曾经忘记了一段语法,不得不去谷歌一下,你就会知道忘记语法是对生产力的一个主要拖累。我创建了一个训练系统来解决这个问题:

  1. 将语法分解成可学习的小单元
  2. 给人们一个记忆语法单元的训练系统
  3. 向学生展示如何将碎片重新组合在一起进行实际工作

值得表扬的是,这个系统很大程度上是基于蒂姆·菲利斯在《4 小时厨师》中描述的元学习系统(这本书实际上是关于学习,而不是烹饪)。它还结合了认知心理学的观点来“侵入”你的记忆,这样你就可以记住语法。我花了很多年来研究“如何学习”,并且我已经将良好的学习原则应用到我们掌握数据科学的课程中。

综上所述,我目前正在创建一个关于 Plotly 的课程(针对 Python 中的数据可视化)和一个关于 Scikit Learn 的课程(针对 Python 中的机器学习)。

哪些 Python 库是你最喜欢的(核心或第三方)?

哦,天啊,Python 有很多选择。

本质上,我是一名数据科学家,所以我最喜欢的 Python 库都是与数据相关的。

熊猫可能是我用得最多的,它在很多方面都很棒。话虽如此,看大部分熊猫代码还是让我很痛苦。不幸的是,许多人使用它的方式使得数据争论和数据分析变得复杂、难以理解和调试。

多年来,我在如何使用 Pandas 方面形成了一种有点独特的风格,它允许您在相对紧凑的代码块中进行复杂的数据转换(这种技术很像 R 中的 dplyr 管道,或者 Unix 中的管道)。如果你这样用熊猫,用起来很有乐趣。

我也非常支持数据可视化。我认为数据可视化被大大低估了。话虽如此,我真的很喜欢 Seaborn 的静态数据可视化。该语法比 Matplotlib 更容易学习和使用,但它也是建立在 Matplotlib 之上的。因此 Seaborn 为您提供了 Matplotlib 的强大功能,但是更加简单。

此外,我对 Plotly 越来越感兴趣。它非常强大,语法清晰,还提供了一个用于构建仪表板和交互式图表的工具包。

您的网站上有多门数据科学课程。你是如何决定开设哪些课程的?

我认为数据科学在未来几十年将非常重要,但学习数据科学通常非常具有挑战性。我创建我们的课程是为了成为学习数据科学最快、最有效的方式,而不浪费时间和金钱。

也就是说,这句话包含了很多内容,所以让我来解释一下。

说“X 将改变世界”显然有点老生常谈,但我真的相信数据科学和机器学习将改变几乎一切。

在最近的一篇福布斯文章中,杰夫·贝索斯说:

“与许多其他技术相比,机器学习最有趣的事情是它将会有多水平……没有一个单一类别的企业或政府或任何东西,真的,不能自我改进。”

机器学习和数据科学将影响一切。反过来,它们可能对个人学习是非常有价值的。

但是有很多关于如何开始和关注什么的坏书和坏建议。

我有点幸运,因为我很早就有了一份分析工作。在我职业生涯的早期,我在数据科学过程的某些方面得到了很好的指导。

但自从我十多年前开始从事数据行业以来,它已经发生了实质性的变化。我需要学习新的工具,但我并不总是有好的指导者。我在我并不真正需要的东西上浪费了大量的时间,而且我使用的许多资源令人困惑。

因此,在我学习和提升技能的过程中,我面临了许多挑战。

但我的行业经验,以及我在提高技能和学习数据科学方面遇到的挑战,让我对学生需要学习什么以及如何学习有了独特的看法。

我开设了课程,帮助人们以正确的顺序学习正确的东西,我向我的学生展示如何练习,以便他们永久记住所有重要的语法。

从某种意义上说,我只是创建了我希望几年前就有的课程。

综上所述,如果你的读者对学习数据科学感兴趣,我推荐你:

  • 关注基本面。重点是数据角力(Pandas,Numpy),数据可视化(Seaborn,Plotly),数据分析(如何将角力+可视化一起使用,寻找洞察)。
  • 一开始避免高等数学(除非你在学术界)。大多数数学对工业界的初学者来说被高估了。
  • 一旦你掌握了基础知识,以此为基础学习中高级技能,比如机器学习、深度学习和地理空间可视化。

如果你想联系我或有问题,请在 Twitter 上联系我,电话号码是 @Josh_Ebner

你还有什么想说的吗?

在接下来的十年或二十年里,我认为我们将会看到软件和技术行业的重大转变。

我越来越认为,几乎所有的软件都将是数据驱动的软件。

在这方面,我并不是说数据将是软件的附属品,或者仅仅是软件运行方式的一部分,而是说数据将是大多数软件的核心。

换句话说,大多数软件都会涉及机器学习。我们将越来越多地在几乎所有软件中加入机器学习元素

特斯拉人工智能总监安德烈·卡帕西(Andrej Karpathy)最近称之为“软件 2.0”。

在一篇博文中,卡帕西是这样描述的:

“神经网络不仅仅是另一个分类器,它们代表了我们开发软件方式的根本转变的开始。它们是软件 2.0。

…我们正在见证整个行业的巨大转变,许多 1.0 代码被移植到 2.0 代码中。软件(1.0)在吃世界,现在 AI(软件 2.0)在吃软件。"

如果是这种情况,那么未来,大多数软件都将内置机器学习作为一个关键组件。这个软件 2.0 会主动从数据流中学习。随着我们将世界数字化,并将传感器添加到几乎所有东西中,这将变得更加重要(Brynjolfsson 和 McAfee 在《第二个机器时代》一书中讨论了这个主题)。

反过来,我认为数据科学和机器学习对开发者来说将变得越来越重要。大多数开发人员需要知道如何构建、训练和维护机器学习系统……或者至少围绕它们构建基础设施。

接下来的几十年将会非常激动人心。但也很有挑战性。许多 Python 开发者需要提高技能,学习一些数据科学和 ML。

问题是,怎么做?你从哪里开始?

我坚信机器学习和数据科学的基础是:

  • 数据争论
  • 数据可视化
  • 数据分析

我强烈认为数学对于数据科学和机器学习初学者来说被高估了,但是数据争论、数据可视化和数据分析被用于几乎所有事情,包括机器学习。因此,如果你想更广泛地开始机器学习或数据科学,这三个是你需要知道的基本基础。

综上所述,如果你想学习 Python 中的基础数据科学,以下是我的建议:

  • 学熊猫为了数据扯皮
  • 学习 Seaborn 或 Plotly 进行数据可视化
  • 学会把数据角力和数据可视化结合起来分析数据。(大部分数据分析只是简单地用数据角力+数据可视化来“在数据中寻找洞察”)

这些是基础。一旦你了解了这些基础,你就可以继续学习机器学习的 Scikit learn 了。但是要确保你不会得“发光物体”综合症,试着先跳到最性感的东西上。首先掌握基础,一旦开始学习机器学习、深度学习和其他高级主题,你会准备得更好。

最后,如果你想节省自己的时间和试图自己解决所有问题的挫败感,可以考虑我们在 sharpsightlabs.com/course-directory/的课程。

约书亚,谢谢你接受采访!

本周 PyDev:胡安·路易斯·卡诺

原文:https://www.blog.pythonlibrary.org/2018/02/19/pydev-of-the-week-juan-luis-cano/

本周我们欢迎胡安·路易斯·卡诺( @astrojuanlu )成为我们的本周 PyDev!他是 Python Spain 非营利组织的主席,也是 poliastro 项目的发起人。如果你能看懂西班牙语,那么你可能想看看他的网站。否则你绝对可以看看他的 Github 简介,看看他在做什么或者对什么感兴趣。让我们花些时间去了解更多关于胡安的事情吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

I'm an Aerospace engineer with a passion for space, programming and open source. I really enjoy solving Physics or Math problems using computers, and the more my job requires me reading scientific papers and derive mathematical equations, the happier I am. I am an open culture advocate and also chair of the Python Spain non-profit, which organizes the PyCon in our country (I have been involved one way or another since the first edition, in 2013). When I am not in front of the computer, I love to listen to all kinds of music (electronic, '70s rock, opera, blues), go everywhere with my bicycle and travel. 你为什么开始使用 Python? **One snowy winter morning in my first year of University, our Physics professor wanted us to derive whether it's better to climb a frozen ramp using the reverse gear of the car or not. However, he gave us the wrong solution and I struggled the whole weekend to understand it, without knowing it was wrong. I wanted to interactively displace the center of gravity of the car and the slope of the ramp without doing the calculations every time and visualizing it in some way, so I bought a 6 month student license of Mathematica. It was totally awesome, but I could not afford buying a complete license and it worked so so on Linux, so I typed "free alternative to Mathematica" and Sagemath appeared. This was 2011, and the rest is history. 你还知道哪些编程语言,你最喜欢哪一种? **My first programming experience was with a game called Tzar. It's kind of like Age of Empires, but allowed you to create your own campaigns, define events, write dialogs... I copied and pasted $myVar everywhere without knowing what I was doing, but the result was super exciting. After that, I learned ActionScript 3 and Flash to create my own games, HTML and CSS to create my own website, PHP to give it some logic... I have to admit that I somewhat miss the object oriented nature of AS3. Also, they taught us FORTRAN 90 (all caps) in University, but since I started with Python I never had to go back to FORTRAN again. As any engineer out there, I also had to do a thing or two in MATLAB, but I oppose its closed nature and pervasiveness. Overall, my favorite is Python, of course 🙂

你现在在做什么项目?

I just finished a freelance project with Boeing and the European Comission to try to predict aircraft trajectories based on historical data using machine learning. In my spare time, I maintain an open source library called poliastro (more on that later) and I dedicate a lot of time to promotion, documentation, prepare talks about it for conferences... I'm also trying to gather data from the Spanish railway company, RENFE, which is a bit challenging because one has to do some ugly web scraping tricks on their website. I love challenges 🙂

哪些 Python 库是你最喜欢的(核心或第三方)?

My favorite libraries are Astropy and SymPy, hands down. The latter constitutes what for me is one of the most successful Python libraries when we talk about new contributors, Google Summer of Code projects... And its LaTeX output mode in the Jupyter notebook is just marvelous. The former is a rare gem in which very talented astronomers have managed to put together a big, complicated library that acts as a foundation to many different projects. I use its unit handling capabilities and kinematic reference frame conversion functions a lot in poliastro.

poli astro****项目是如何产生的?

In 2013, when I was an Erasmus (visiting) student in Politecnico di Milano, an Italian colleague and I had to optimize an orbital trajectory from the Earth to Venus and then analyze the orbital perturbations of a Venus-orbiting spacecraft. My colleague started his part in MATLAB, and one afternoon he sent me an email with some non-working scripts and gave up. So I rewrote some parts in Python, kept some others in MATLAB (using Octave, since I didn't have a license), and even included a FORTRAN part as well. This mess worked beautifully in my computer but was probably impossible to install on Windows, so two years later I rewrote all the algorithms in Python using numba, threw the MATLAB and FORTRAN away and became a happy man again. Now the project is more mature: we had funding from the European Space Agency last year, we presented it at the first Open Source Cubesat Workshop that took place at the European Space Operations Centre, and this year we have been accepted as mentoring organization in Google Summer of Code as part of the Open Astronomy umbrella, so I hope I get tons of applications from students!

你从运行这个开源项目中学到了什么?

还有其他类似 poliastro 的项目,我想说其中一些有更好的算法和更多的功能。然而,我要说的是,他们都没有在 API 设计、文档、示例和推广上花费这么多时间(当然,相对于项目的规模而言)。此外,Python 不是世界上最快的语言,但它完成了工作,它很容易学习,而且它是趋势。我在 poliastro 学到的最重要的经验是:

  • 有时候,语言胜于表现。
  • 有时候,文档胜于特性。
  • 有时候,营销胜于质量。

我最喜欢的一句 Python 开发人员的名言是 matplotlib 的创始人 John Hunter(愿他安息):“一个开源项目要取得成功,最重要的商品是用户”。我花了很多时间让 poliastro 易于安装和使用,现在这是许多用户第一次接触这种语言,他们对新功能提出了有见地的建议,推动了项目的进程,给了我继续下去的动力。

你还有什么想说的吗?

Python and the Open Source/Hardware/Knowledge mentality are now making its way into science, but there's still a long road ahead in Engineering. I would like to encourage other engineers out there who are tired of paying expensive MATLAB licenses against their will, or tired of endlessly looking for papers that everybody cites and nobody can find, to embrace the Open movement, engage in open source, and make its contribution. Per Python ad astra!Thanks for doing the interview!****

本周 PyDev:朱莉娅·西格内尔

原文:https://www.blog.pythonlibrary.org/2020/08/10/pydev-of-the-week-julia-signell/

本周,我们欢迎 Julia Signell ( @JSignell )成为我们本周的 PyDev!她帮助开发了 Holoviz ,这是一个用于 Python 和 Conda 的基于浏览器的数据可视化开源包。Julia 也是 PyDataPHL 的共同组织者。

让我们花些时间来更好地了解朱莉娅!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是土星云的软件开发人员,住在西费城。从小到大,我一直喜欢语言、逻辑、魔法和地图。我在史密斯学院学习环境工程,专注于水文学,之后在完全转向软件开发之前,在一些不同的水文学实验室呆了一段时间。一旦我完成了转型,我在 Anaconda 做了一些不同的工作,包括在 Holoviz 团队的一段时间(这很棒!)然后去年秋天开始在土星云。在业余爱好方面,我尽可能地在户外,所以我喜欢网球、滑雪、篮球、徒步旅行、皮划艇、野营、钓鱼、园艺。除此之外,我倾向于从事家庭活动,比如编织、缝纫和烘焙。我的梦想是拥有一两只羊,自己纺毛线。

你为什么开始使用 Python?

在 Python 真正卡住之前,我开始用了几次不同的 Python。有一次,我在制作盐沼气体排放随时间变化的图表。另一次,我试图管理来自肯尼亚农村生态水文野外站的输入数据,并自动存储和访问这些数据。当我试图分析闪电数据并弄清楚闪电相对于暴雨的位置时,我开始认真对待数据可视化。

你还知道哪些编程语言,你最喜欢哪一种?

我实际上只使用 Python 和 Javascript(很好的类型脚本)。所以 Python 是我的最爱。但是我真的很喜欢 javascript 的三元运算符。

你现在在做什么项目?

在我目前在 Saturn Cloud 的角色中,我主要在 Dask 生态系统中工作,特别是,我正在着手开发 dask-geopandas 的新版本。最后,我想回到大约一年前开始的关于 python 可视化库规范的想法。这个想法是,如果库能够符合某个特定的规范,那么用户在不同的库之间来回切换就会更容易,新工具构建通用 API 也会更容易。有点像 numpy 数组协议

哪些 Python 库是你最喜欢的(核心或第三方)?

哦。我不得不说是哈维。多维数组上的标签?这真是个好主意!

你最喜欢 Holoviz 的什么?

Holoviz 有很多关于创建可视化的 API 的想法,但不负责渲染。我喜欢这种想法——在现有的基础上构建,同时想象与它们互动的不同方式。

你是如何进入开源的,你喜欢它的什么?我第一次为开源做贡献是在 SciPy 会议上的 Bokeh sprint。气氛非常合作和有趣。这可能是每个人都在说的话,但是当我想到我最喜欢开源的地方时,一定是社区。通过从事开源工作,我可以和来自世界各地的人一起工作,即使他们的工作发生了变化,我也可以继续和他们一起工作。这是一个学习和交友的好地方。

朱莉娅,谢谢你接受采访!

本周 PyDev:朱利安·塞杰拉

原文:https://www.blog.pythonlibrary.org/2022/01/24/pydev-of-the-week-julian-sequeira/

本周我们欢迎朱利安·塞杰拉( @juliansequeira )成为我们本周的 PyDev!朱利安是 PyBites 的联合创始人之一。他们发布文章、课程,运行一个播客,还有一个有趣的代码挑战网站

如果你愿意,你可以在 LinkedIn 上与朱利安联系。现在让我们花些时间来更好地了解他!

能简单介绍一下自己吗(爱好、学历等):

我是朱利安·塞杰拉,一个痴迷于 Python 和一切思维模式相关事物的企业家。我一生都在从事技术工作,目前是 PyBites 的联合创始人,也是亚马逊网络服务的项目经理。在书本之外,我喜欢摆弄技术,弹吉他,和我的孩子在一起,沉迷于一个或三个休闲视频游戏。

Why did you start using Python?

I started using Python when I was working as a Field Engineer at Oracle in 2016. By then I'd already befriended my now best mate and business partner, Bob Belderbos, who I was looking to partner with on a project. At the same time, I had the need to create a simple app to track the over time I was doing as part of the day job.

While using Python to create the app, I found myself wanting and needing to take notes on the concepts I was learning (virtual environments blew my mind!). This led to Bob and I deciding to create a blog so we could both learn Python and record what we learned at the same time. PyBites was born, the Python learning continued, all manner of material was created and here we are today, with PyBites as our very own company.

Oh and yes, I finished creating the overtime tracker and while I found no discrepancies in my pay, it found some gaps in someone else's! Win!

What other programming languages do you know and which is your favorite?

This is a tough one! I've spent the vast majority of my time on Python but do have some rudimentary Javascript and C++ experience. C++ holds a special (painful) place in my heart as it was the very first programming language I learned back in high school. I remember making a  text-based Black Jack game which I was super proud of. Given the relative complexities, I still feel like a champion just writing "#include ".

What projects are you working on now?

Not as many projects as I'd like due to moving houses but I've just started working on a Python app with my son so we can categorise and record his Pokemon card collection. We're using the PyBites Developer Mindset approach and starting with an MVP. It's slow going as I'm teaching him Python at the same time but it's not the speed that counts, we're just enjoying the journey and every little win along the way.

Outside of that, there are always projects in the works for PyBites. I'm not coding anything right now but am working on some content for schools that are using our Python exercises platform to teach students how to code. This is what gets me up in the morning!

Which Python libraries are your favorite (core or 3rd party)?

The kind with books! ... Anyone?

Fine! While I'm not an expert with it in any way, I've come to appreciate OpenCV. To me it just unlocks so much from a creative perspective and allows me to take dreams I've had my entire life and make them a reality. I remember following a tutorial from Adrian Rosebrock to create my own OpenCV based Pokedex. It blew my mind and really reminded me that Python can be used not just to create the usual "serious" app but to set us free and really use our imaginations to make the world a brighter place.

What were we talking about? Oh yeah, OpenCV would be it!

How is the PyBites Podcast going? How is that different from the other things you do at PyBites?
The PyBites Podcast is going strong! It has to be the most fun we have second only to working with our clients. As we record each episode, I honestly forget that it's being recorded and just enjoy the conversation. It allows me to share openly and honestly without feeling tied down by a script. I feel like this sets it apart from the rest of the things we do at PyBites. It's candid, light and raw and allows listeners to hear us at our best.

Also, while PyBites can be quite technical on the blog, the podcast tends to lean toward the mindset side of things. Mindset topics can be dry in text form but when discussed over audio people can hear the passion and enthusiasm we have regarding the theme of the episode.

Is there anything else you’d like to say?

As you may or may not know, Bob and I coach people through their Python journey. One thing that comes up over and over is how important it is to have a strong mindset as you push for your Python goals. It's not enough to just code. You have to learn to effectively work with the successes and the failures, how to work with others, how to take criticism, deal with tutorial paralysis and imposter syndrome... the list goes on.

Ultimately, you need to find a balance between the mindset and the tech skills. This is when real progress is made.

And to wrap it up, it may sound lame but the reality is that it starts and ends with you. Trust in yourself and your abilities and go get it.

Thanks for doing the interview, Julian!

本周 PyDev:Julien Danjou

原文:https://www.blog.pythonlibrary.org/2015/05/11/pydev-of-the-week-julien-danjou/

本周,我们欢迎 Julien Danjou ( @juldanjou )成为我们本周的 PyDev。Julien 是《Python 黑客指南》的作者。他还写有趣的 Python 博客。让我们花些时间更好地了解朱利安!

能简单介绍一下自己吗(爱好、学历等):

当然可以!我是一个 31 岁的自由软件黑客。我在 1998 年左右开始从事 Linux 系统和开源项目,因为我发现它们非常酷,在技术上也很有趣。2001 年,我开始在大学学习,并于 2006 年获得了计算机工程硕士学位。

从那以后,我一直为不同的公司开发自由软件——有时是作为自由职业者——最终在 Red Hat 工作。最近 3 年来,我一直在从事 OpenStack 项目——一个用 Python 编写的 2M·SLOC 云计算项目。

我住在法国巴黎,但我喜欢四处旅行,在不同的地方工作——这是从事分布式开源项目的额外津贴。我喜欢弹吉他,看好看的电视剧,做饭(我是个吃货),跑步(为几天后的第一次半程马拉松做准备!)和玩第一人称射击游戏(我是个老贵格会教徒)。

你为什么开始使用 Python?

好奇心。10 年前看到越来越多的人用。我习惯了 Perl。但是我并不真正喜欢 Perl,也没有很好地理解它的对象系统。

一旦我找到一个可以工作的想法——如果我没记错的话,那是重建的——我就开始用 Python 编程,同时学习这门语言。

我喜欢 Python 的工作方式,以及我开发和学习它的速度,所以我决定在我的下一个项目中继续使用它。由于某些原因,我最终投身于 Python core,甚至在某个时候短暂地黑过 Cython,最终从事 OpenStack。

OpenStack 是一个完全用 Python 编写的云计算平台。从做 OpenStack 开始,每天都在写 Python。

这促使我在 2013 年写了《黑客的 Python 指南》,并在一年后的 2014 年自行出版,在那里我谈到了如何做智能高效的 Python。

它取得了巨大的成功,甚至被翻译成了中文和韩文,所以我目前正在写这本书的第二版。这是一次惊人的冒险!

你还知道哪些编程语言,你最喜欢哪一种?

在 2007-2010 年期间,我一直在从事 C 和 Lua 方面的工作,当时我在开发令人敬畏的窗口管理器和一些 X11 库,所以我对它们都非常了解。

我也做过很多 Emacs Lisp 开发人员——我是 Lisp 迷——和一些 Common Lisp 开发人员。当你知道 Lisp 时,学习任何新语言都很容易,但你会变得懒惰,因为他们似乎都不如它。🙂

你现在在做什么项目?

我 100%的时间都在 OpenStack 上工作。更具体地说,我关注云高仪和汤团。云测仪负责计量 OpenStack 云平台及其周边。Gnocchi 是我几个月前开始的一个新项目,它提供了一个 REST API 来操作资源目录和时间序列数据库。它旨在以分布式和高度可扩展的方式存储您的资源(例如虚拟机)及其所有指标(CPU 使用率、带宽等)。

我还帮助维护我们用于 OpenStack 的 Python 工具链和库。我们分解了很多代码,并向 PyPI 发布了很多库。我写补丁,修复 bug,审查代码。

哪些 Python 库是你最喜欢的(核心或第三方)?

我喜欢 functools、operator 和 itertools 但那是因为我喜欢函数式编程。我也对 asyncio 寄予厚望,它是新的 async Python 3 库。我喜欢使用重试而不是编写 我的 try/except/retry 循环。

对于第三方,我喜欢 Flask 和 Jinja2,因为它们简单易用。我喜欢 stevedore 是因为它让在你的程序中使用插件变得超级简单,我喜欢 pbr 是因为它让分发你的包变得更容易。

现在我依靠 Pecan 以 OpenStack 的方式构建 REST API。我也很喜欢在团子里用熊猫来操纵时间序列——如果你需要操纵和计算统计数据,这是一个很好的工具箱!

你还有什么想说的吗?

Python 是一门伟大的语言,即使它有一些缺点和设计问题。我真的鼓励人们看一看 Lisp,学习它,使用它一点,对 Python 语言本身有一些后知之明。它会让你更聪明。

黑客快乐!

非常感谢!

一周的最后 10 个 PyDevs

本周 PyDev:朱利安·帕拉德

原文:https://www.blog.pythonlibrary.org/2022/04/25/pydev-of-the-week-julien-palard/

本周我们欢迎朱利安·帕拉德( @sizeof )成为我们的本周 PyDev!Julien 是 Python 编程语言的核心开发人员和 Python 培训师。朱利安还是 Python 学习平台 HackInScience 的创始人,也是法国 Python 用户组 AFPy 的组织者。Julien 做了 Python 文档的法语翻译!

你可以在 GitHub 上或者查看他在 T2 的网站上看到朱利安在做什么。

让我们花些时间更好地了解朱利安!

能简单介绍一下自己吗(爱好、学历等):

本周 PyDev:于尔根·格马奇

原文:https://www.blog.pythonlibrary.org/2022/06/20/pydev-of-the-week-jurgen-gmach/

本周,我们欢迎尤尔根·Gmach(@ jug MAC 00)成为我们本周的 PyDev!于尔根是 tox 自动化项目的维护者。你可以在他的网站上看到于尔根还在忙些什么。你也可以在 GitHub 或者 Launchpad 上查看 Jürgen 的代码。

Jürgen Gmach

让我们花些时间来更好地了解于尔根吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

嗨,我是尤尔根。我是 Canonical 的软件工程师。我住在德国南部,就在美丽的多瑙河和巴伐利亚森林之间。

我从小就对计算机感兴趣,起初在我的 C64 Commodore 上玩电脑游戏,后来用 Basic 编写简单的应用程序。

学校里一位非常热情的老师激起了我对经济学的兴趣,所以我决定学习经济学。

在我学习的几年里,我越来越被这个叫做互联网的新事物所吸引。

我用 HTML 创建了网站,最引人注目的是一个相当成功的在线台球社区,后来我把它移植到 PHPNuke,为此我必须学习 PHP 以及如何编写补丁。

有一次,我决定我需要跟随我的心,所以我开始在一家当地公司做软件工程师。

闲暇时,我喜欢外出。根据天气和季节的不同,我喜欢徒步旅行、骑自行车、游泳或采蘑菇,有时独自一人,但大多数时候是和我可爱的家人在一起。

你为什么开始使用 Python?

我的第一份工程工作是受雇开发一个基于 Python 和 Zope 的大型内部网应用程序。所以我不得不在工作中学习 Python。

有一个关于这个技术堆栈的小背景故事。我当时的同事首先尝试用 Ruby 创建自己的应用服务器,但他的尝试总是失败,所以他一度选择了 Zope 和 Python。

从那以后 Python 就一直在我的生活中。

我永远欠我同事的情。

你还知道哪些编程语言,你最喜欢哪一种?

如前所述,我开始用 Basic 编程,我在大学时学习了 Bash 和 Pascal,在 CSS 和 JavaScript 出现之前我用 HTML 创建了静态网站,用 Perl 创建了动态网站,我用 PHP 创建了小型和大型网站,我用 Python、Rust、Bash 和 Go 创建了命令行应用程序,我编写并维护了相当多的 JavaScript,我使用 Java 或 C 对项目进行了修复,我调试了 Lua 和 Sieve 脚本,但我肯定最熟悉 Python,也是我最喜欢的。

你现在在做什么项目?

我于 2021 年 10 月加入 Canonical,从事 Launchpad 项目,该项目由许多部分组成,最著名的是一个类似于 GitHub 的代码托管系统,以及一个构建场,在那里可以为 Ubuntu 和其他系统构建所有优秀的包。

我的团队目前正在从零开始构建 CI 系统,这是一个超级有趣的任务。虽然我对所有涉及的系统都有贡献,但大部分时间,我都在 CI 运行程序上工作。最棒的是——这些都是开源的。

我还花一些业余时间从事多个开源项目。

那就是 tox,任务自动化工具,Zope 基金会的近 300 个项目,Morepath web 框架,Flask-Reuploaded,我把它们分出来,这样就不会被维护了。我也做了很多路过的贡献。

哪些 Python 库是你最喜欢的(核心或第三方)?

我当然不想在没有 tox 的情况下维护 300 个 Zope 存储库,它提供了测试、运行 linters 和构建文档的标准接口。

说到 linters,我从来不会没有预提交片 8 ,以及更多取决于项目的内容。

当我需要创建一个命令行应用程序时, argparse 是我的首选。我特别喜欢它的多功能性和它附带的标准库。

all-repos 是一个奇妙的利基应用程序和库,当我需要用一个命令更新几十个,或者在 Zope 的情况下,甚至几百个库时,我会使用它。我在 PyConUS 做了一个简短的介绍。

你是如何参与毒理项目的?

哦,这个很有趣。我甚至在“测试 tox 4 预发布的规模”中写了博客。

简而言之:
为了能够只用几个人维护 300 个 Zope 项目,我们需要统一的接口,所以我们使用 tox 进行测试。只需克隆它并运行“tox”——无需设置虚拟环境,无需阅读文档,无需修改测试路径。

由于 tox 的核心维护者 Bernát Gabor 在 Twitter 上宣布,他计划发布 tox 4,这将是一个完全的重写,我认为对所有 300 个项目运行 tox 4 alpha 是一个好主意。为此,我用全回购来做毒理分析。我发现并报告了几个边缘案例,有一次我试图自己修复其中一些——在 Bernát 的帮助下,效果相当不错。

因为我非常喜欢与 tox 一起工作,所以我不仅贡献代码,还在 StackOverflow 上回答问题,并对新的 bug 报告进行分类。

一天,出乎意料的,Bernát 让我成为我最喜欢的开源项目的维护者!!!疯了!

作为一个开源包的维护者,你学到的前三件事是什么?

You cannot help everybody. Let's take tox as an example. It is not a big project, but with more than 5 million downloads per month, and thousands of users, two things regularly happen. Users ask questions that even I as a maintainer cannot answer, as maybe the original poster uses a different IDE, a different operating system, or some very specific software... but it is ok to not know everything.

Also, with so many users you will be asked to implement things that are only helpful for very few users on the one hand, and on the other hand, will make maintenance harder in the long term. So you need to learn to say "no".

Also, don't be the single maintainer of a project. It is much more fun with some fellow maintainers. You can split the workload, learn how others maintain a project, and most importantly, you can have a break whenever you want. Life happens! I am currently building a house for my family so I cannot spend too much time on my projects - but this is ok!

And finally, and maybe most important. Let loose. When you no longer feel joy in maintaining your project, pass it on to your fellow maintainers, or look for new maintainers. That is ok. It is also ok to declare your project as unmaintained. You do not owe anybody anything, except yourself.

I think the above things are not only valid for open-source projects, but also for work, and possibly also for life in general.

Is there anything else you’d like to say?

If I could give my younger self three tips, these would be:

Take down notes of things you learn, write a developer journal or even a public blog. That way you reinforce what you learn and you can always look it up later on.

Go to conferences!!! You will pick up so many new things, and most importantly, you will meet and get to know so many great people from all over the world.

Shut down your computer. Go outside and have some fresh air and some fun!

Thanks for doing the interview, Jürgen!

本周 PyDev:Jyotika Singh

原文:https://www.blog.pythonlibrary.org/2022/05/02/pydev-of-the-week-jyotika-singh/

本周的 PyDev 是 Jyotika Singh(@ JyotikaSingh _)。Jyotika 是 pyAudioProcessing 的维护者,也是多个会议的发言人。你可以去 Jyotika 的 GitHub 档案看看她在做什么。

让我们花几分钟时间更好地了解 Jyotika!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是 Placemakr 的数据科学主管,也是尼日利亚数据科学和女性影响技术的志愿者导师。我积极参加会议和网络研讨会,与 Python 和数据科学社区以及有志于从事软件开发和数据科学的学生分享我的知识和经验。作为我研究的一部分,我在数据科学、算法和营销优化技术方面获得了多项专利。

我毕业于加州大学洛杉矶分校(UCLA),获得了信号与系统专业的理学硕士学位。

当我不从事技术和编码工作时,我喜欢素描、绘画、演奏乐器,有时也喜欢在海滩度过夜晚。

你为什么开始使用 Python?

我第一次使用 Python 是在 2015 年攻读硕士期间,当时我正在做一项关于数据采集的作业。虽然课程并不要求我使用 Python,但考虑到这种新语言易于编写,而且我刚刚开始研究 ML 库,我选择了使用它。随着我的 MS 的进步,我不断学习更多的 Python 知识,并迷上了它的易用性和功能性,以及与其他工具的兼容性。

你还知道哪些编程语言,你最喜欢哪一种?

我主要使用 MATLAB、C、Java、R、Golang 和 Python。Python 无疑是我最喜欢的语言。

你现在在做什么项目?

在接下来的几个月里,我会做几个不同的项目。

  1. Pricing recommendation and optimization models
  2. Content-based recommendation systems
  3. Consumer review analysis and classification
  4. A reinforcement learning-based model for ROI optimization

此外,我正在写一本关于自然语言处理的工业应用和实现的书。

你是怎么决定用 Python 写一本关于 NLP 的书的?

数据科学毕业生掌握的知识与行业中数据科学家的需求之间存在已知的差距。大多数项目从数据的可用性开始,不需要太多考虑数据来自哪里或需要什么数据。最常见的学习资源的属性与现实世界的应用相去甚远。

对于软件开发、技术、产品管理领域的个人,或者那些对数据科学或自然语言处理不熟悉的人来说,了解要解决什么以及如何进行可能是一个具有挑战性的问题。牢记这一点,我决定写这本书来解释 15 个垂直行业的应用。它将深入许多流行应用程序的实际实现,并包含实际的代码示例。这本书将指导用户使用 Python 构建应用程序,并强调现实世界中数据问题和解决方案的现实性。

哪些 Python 库是你最喜欢的(核心或第三方)?

os,收藏,熊猫,numpy,sklearn,pytorch,tensorflow,keras,spacy,nltk,matplotlib,还有我自己的 pyAudioProcessing。

pyAudioProcessing 库是怎么来的?

我正在解决一个独特的音频分类问题。鉴于 Python 中 ML 工具的流行,我希望用 Python 来构建我的音频模型。我注意到在 MATLAB 中进行的研究和开发与 Python 中围绕音频的第三方工具的状态之间有很大的差距。

Different types of non-numeric data have different feature formation techniques that work well for numerically representing the data in a meaningful way. An example for text data would be TF-IDF. Similarly, audio data has a completely different and its own set of feature formation techniques that represent the information in a numerical sense. I took it upon myself to mathematically construct audio features from raw audio in Python, and decided to open-source my work while recognizing the need. This gave rise to PyAudioProcessing. Today, you can extract features such as GFCC, MFCC, spectral features, and chroma features using PyAudioProcessing. Its integration with other 3rd party libraries helps extract audio visualizations, audio format conversion, build audio classification models using sklearn models, and use off-the-shelf audio classification models for some common tasks.

**What challenges do you face as a maintainer of a Python package? **

Given a packed schedule with my full-time job, research, conferences, and mentorship volunteering, the most challenging bit is taking the time out for continuous development and keeping the library up-to-date with new research, needs, features, and compatibility with the latest Python releases. Contributors are always welcome!

**Is there anything else you’d like to say? **

I would like to thank all the people who open-source their work that the community is able to leverage for their personal and professional projects. Also, a huge shout out to people who volunteer and make efforts to share their knowledge and findings via events organized by the Python and Data community.

I'm on Twitter at jyotikasingh_, follow me to catch my latest talks, work, and findings.

Thanks for doing the interview, Jyotika!

本周 PyDev:K . Lars Lohn

原文:https://www.blog.pythonlibrary.org/2018/10/08/pydev-of-the-week-k-lars-lohn/

本周我们欢迎 K . Lars Lohn(@ 2 braids)成为我们本周的 PyDev!他加入 Python 社区已经有好几年了。你可以通过他在的博客或者查看他在的 Github 账户了解更多关于他的信息。让我们花些时间去多了解他一点!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是 20 世纪 80 年代蒙大拿州教育系统的产物。我在蒙大拿州立大学学习电子工程,但在蒙大拿大学转到了计算机科学。我换了大学,以便接触到密歇根大学运行 Unix 的 VAX-750。我于 1983 年获得学士学位,后来于 1991 年获得硕士学位。

我的爱好包括不寻常的植物、复杂的绘画和巴洛克音乐。我有七个温室,里面种满了有机蔬菜、兰花和食肉植物。在过去的几年里,我发现我可以在美术馆里画出足够好的展品。最后,虽然我有一把双簧管和一系列巴洛克式录音机,但我已经选定了一种电子木管乐器,雅马哈 WX-5。哦对了,然后还有哈雷:' 08 FX-STB 夜行列车和' 15 肥仔 Low。

我为 Mozilla 公司工作。我对 Mozilla 项目的第一次贡献始于 2004 年在 OSUOSL 工作的时候。后来作为一名员工,我是索科罗的首席开发人员,开发基于 Python 的火狐崩溃报告系统的服务器端。

你为什么开始使用 Python?

在考虑了几种语言之后,我选择了 Python,因为它同时提供了 OOP 和函数式范例。学习起来很快,从概念到工作代码都很快。

早在 2002 年,微软无意中将我推入 Python 和开源领域。当时我正在经营一家专门经营玫瑰花丛的网上苗圃。这家公司运行的是我使用微软堆栈编写的定制软件:Windows、C++、Access、SQL Server。有一天,我收到了商业软件联盟的一封信,威胁要对未经许可的微软 Windows 和 MS Office 软件提起诉讼。我找不到戴尔机器附带的任何“真品证书”。原来是保护费。微软与 BSA 狼狈为奸,试图勒索小企业,恐吓它们为已经拥有合法许可的软件支付“和解费”。我向俄勒冈州司法部长报告了这个计划。

我被他们傲慢的道德观激怒了,决定微软无权插手我的收入来源。在对开源软件进行了一些研究后,我选择了 Python、Postgres 和 Linux 来重新实现运行我的业务的软件。一个月后,微软从我的商业和个人生活中消失了。

我至今对微软怀恨在心。我仍然对 GitHub 紧闭双唇。

你还知道哪些编程语言,你最喜欢哪一种?

C++在我心中永远有一席之地。我在 1988 年的研究生课程中使用 Smalltalk 学习了 OOP。对于期末项目,我们不得不使用一些其他面向对象的语言。经过一番研究,我选择了 C++。我是一个伟大的选择,因为它在 90 年代初至中期开启了我在 Rogue Wave software 职业生涯的下一个时代。我是创建 SQL 封装库 DBTools.h++(后来改名为 Source Pro DB)的团队中的高级开发人员。它本质上是 C++的 SQL 炼金术。

过去我最喜欢的语言之一是 APL,这是一种不可读代码的神秘用法。它有自己的字符集和特殊的键盘。我被它的简洁和力量迷住了。康威的生命细胞自动机可以用一行代码来实现:Life { 1’。∠3 4=+/, 1 01∘.⊖ 1 0 1∘.(来自维基百科)

你现在在做什么项目?

我目前隶属于 Mozilla 新兴技术部门的物联网小组。目标是推广一种标准,鼓励物联网成为物联网。物联网中有太多的专有系统和垂直孤岛。推动开放网络的标准也可以应用于物联网。控制一个开关或恒温器不应该需要云,除非从局域网外部进行控制是可取的和有保证的。

物联网小组创建了物联网网关,这是 Web 物联网应用编程接口的一种实现。它使设备被视为 Web 应用,允许使用 Web 工具进行控制:浏览器和几乎任何可以使用 RESTful API 和 Web Sockets 的语言。物联网网关还充当非 IP 技术(Z-Wave、Zigbee)和 Web 物联网 API 之间的桥梁。

这几天我的工作就是用 Python 练习 Web Thing API。我把设备和服务包在一个网络毯子里,这样它们就可以像家庭自动化设备一样被访问和控制。在我的博客上可以找到一些例子:https://www.twobraids.com/搜索/标签/物联网

最近比较有意思的一个项目是做一个潮灯(http://www.twobraids.com/2018/06/things-gateway-【restful-api-and-tide.html)T2)。使用 Philip 的色调灯泡,使灯泡的颜色跟随实时潮汐信息:绿色代表低潮,红色代表高潮。对于从低到高的过渡,将灯泡从绿色渐变到黄色、橙色、红色。对于高到低循环,从红色到品红色到蓝色到
青色到绿色。

这种编程的本质与异步编程范式密切相关。这是我第一次有机会真正开始在那个领域练习 Python 的能力。在异步 Python 的早期,这都是用生成器完成的,我对此表示怀疑,因为其意图看起来很模糊。在 Python 3.6 中,它已经实现了清晰,并且使用起来非常有趣。

哪些 Python 库是你最喜欢的(核心或第三方)?

我导入的最常见的模块是 functools、itertools 和 contextlib。Erik Rose 的 more-itertools 非常有用。readthedocs.io/en/latest/api.html

当然,我有很多我自己反复使用的工具。configman 在我的大部分代码中都很突出,但是我不确定我能推荐其他人使用它。虽然它功能丰富,但记录却很少。

你还有什么想说的吗?

在这个我们称之为软件工程的领域深处,隐藏着复杂性守恒定律。我非常怀疑复杂性能否被消除,它只能被转移给其他人。想要通过将复杂的服务器架构分解为微服务来简化它吗?您只是将复杂性委托给了更高一级的开发人员和更低一级的运营人员。似乎我们最终将复杂性推给了最终用户。那时我们宣布这不再是我们的问题了。

不要害怕复杂性。如果你害怕和厌恶复杂性,那么你也害怕和厌恶我们生活的这个世界。生活本身是难以理解的复杂,我选择与它和平相处,并在可能的时候拥抱它。复杂性是生命优雅恢复能力的基础,优雅恢复总比优雅失败好。

感谢您接受采访!

本周 PyDev:Kai Willadsen

原文:https://www.blog.pythonlibrary.org/2018/05/21/pydev-of-the-week-kai-willadsen/

本周我们欢迎 Kai Willadsen ( @kywe )成为我们本周的 PyDev!他是 Meld 项目的维护者,这是一个用 Python 编写的跨平台 visual diff 和 merge 工具。你可以在凯的博客上找到他,或者通过 Github 看看他还在做什么。让我们花一些时间来更好地了解 Kai。

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

在放弃学术生活之前,我读了计算机科学+认知科学的本科,复杂系统建模的博士,以及各种博士后工作。以上都与我目前的工作无关!

我的非计算机爱好基本上是园艺&养鸡。对于处于这种地位的人来说:如果你从未养过鸡,那就考虑一下吧!他们是最棒的。

你为什么开始使用 Python?

早在我读博士的时候,我就用 C++编写了我的模型,这很好。然而,我需要能够尝试不同的模型场景和实验分析,而用 C++写这些太慢了。几天后,我让 SWIG 为我的模型代码生成 Python 绑定,很快我就可以用 Python 写任何对性能不重要的东西了。很快,这就是我所用的全部。

你还知道哪些编程语言,你最喜欢哪一种?

在很久以前,我花了大量的时间使用 C++ ( 颤栗)和 Java 和 C,我不知道我是否真的有一个最喜欢的非 Python 语言;Rust 是我目前最感兴趣的,但是 Go 也有它的位置,C 永远是...基本上还可以。

你现在在做什么项目?

目前我几乎所有的个人编码时间都花在了 Meld 上。我想回到我为 GObject 自省库(如 GTK+)生成 Python 3.6 类型注释的附带项目。我还在 Rust 中开发了一个简单的 GTK+ ChromeCast 客户端,但这主要是因为我想要一个学习 Rust 的借口...这是一个缓慢的过程。

哪些 Python 库是你最喜欢的(核心或第三方)?

我发现标准库可能有点难以让人喜欢。不是说不好!只是由于兼容性考虑和类似的约束,很多时候它并不是很好。话虽如此,新的闪亮的“pathlib”还是很不错的(从 Python 3.6 开始)。

至于第三方库,pygobject 项目维护了使 Python + GTK+实际工作的自省绑定,我觉得这是一个被低估的项目。这是他们正在做的一项棘手的工作,但使用该 API 感觉很好。我一直使用的其他库包括 Click(不错的命令行客户端)、Werkzeug(HTTP 的时髦工具)、SQLAlchemy(任何涉及数据库的东西)和 Cython(我的 Python 还不够快)。

meld 项目是如何产生的?

这个我回答不了,因为不是我开始的!原作者是斯蒂芬·肯尼迪。过去十年左右,我一直是维护者...这告诉你 Meld 作为一个代码库有多古老。

在 meld 这样的开源项目中,你学到了哪三件最重要的事情?

首先,除非你实际维护过一个项目,否则你会对所有非编码任务占用的时间感到震惊。当你一周只有几个小时可以花的时候,即使是很小的事情,比如监控一个相当安静的邮件列表,确保问题得到回答,也需要花费很长时间。发布新版本时,光是写发行说明就要花费个小时

第二,围绕一个项目成长一个真正的社区是一种技能,大多数人没有(我没有!).如果你有擅长这个的人,请珍惜他们。

第三,你可能认为用户会记录错误,但是...他们没有。经常会发现,比如我不用的某个版本控制系统坏了一年没人说什么。我怀疑应用程序比库更是如此。

谢谢你接受采访!

本周 PyDev:Kalob tau lien

原文:https://www.blog.pythonlibrary.org/2022/03/21/pydev-of-the-week-kalob-taulien/

本周我们欢迎 Kalob tau lien(@ KalobTaulien)成为我们本周的 PyDev!Kalob 是一个 WagtailCMS 核心开发工具,它是一个位于 Django web 框架之上的 CMS。你可以去他的网站去了解一下卡洛布在的训练营课程

让我们花几分钟时间更好地了解一下 Kalob!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是 Kalob,从编程、web 开发、销售到教学,我什么都做一点。我是一个狂热的程序员,尝试自动化很多事情,比如日常激励短信,以及我发送的大约 90%的推文(当然,都是用 Python)。我的第一个网站是在 1999 年我 10 岁的时候建立的,它成了我的爱好,然后成了我的职业。我是一名自学成才的 web 开发人员,在过去的十年里,我已经教了大约 500,000 人如何编码——从前端到后端的一切。

为了好玩,我喜欢在冬天滑雪,在虚拟现实中锻炼,最近我真的很喜欢抱石(就像攀岩,没有绳子)。

你为什么开始使用 Python?

这些年来,我断断续续地涉足 Python。直到 2018 年左右,我才开始认真对待这件事。我的工作需要它,所以我开始每天写它。现在我无法想象没有 Python 的生活。

你还知道哪些编程语言,你最喜欢哪一种?

Python、JavaScript 和 PHP 是我用过最多的语言。尽管自从我开始认真研究 Python 之后,我就再也没有接触过 PHP。因为 Python 非常灵活,拥有如此庞大的第三方包生态系统,所以它是我最喜欢的语言。

你现在在做什么项目?

我有一家名为 Arbington.com 的教育科技初创公司,正在开发一个基于 Python 的流行内容管理系统 Wagtail。我正在写一本名为《Wagtail CMS in Action》的书。这是我每周的大部分时间,但我最近的两个项目是小而强大的脚本,可以自动为我发送推文,并通过 Twilio 的 API 向我发送多条激励消息。我也许应该清理一下开源代码中的混乱😛

哪些 Python 库是你最喜欢的(核心或第三方)?

Wagtail CMS 和 Django Web Framework 是我的最爱,我每天都在使用它们。除此之外,它可能是 Python 中的请求模块。

你是如何成为 Wagtail CMS 项目的核心开发人员的?

I worked at a web agency that made Wagtail websites, and before then I didn't know about Wagtail at all. During my time there I realized two things:

  1. Nobody was really a "pro" at that shop, and
  2. There weren't very many tutorials for it.

I waited 6 months to see if anyone would start producing videos, and only saw like 5 new videos that weren't all that helpful.

So I jumped into the community, started learning and asking questions, and then made somewhere around 60 free videos on YouTube. Next thing I know I was invited to join the core development team.

What are your top three favorite features of Wagtail?

Narrowing it down to just three is going to be tricky, so my answer might change next time I'm asked. But right now it would be:

1. Wagtails multi-site feature. One codebase with multiple websites on the same instance of Wagtail,
2. The built in API to enable headless websites super easily, and
3. Localization to add easy multi-language support

Those are pretty big features, but there's also a ton of small features worth exploring in my opinion.

Is there anything else you’d like to say?

Feel free to follow me on Twitter (@KalobTaulien)

Thanks for doing the interview, Kalob!

本周 PyDev:卡斯滕·希尔伯特

原文:https://www.blog.pythonlibrary.org/2016/05/09/pydev-of-the-week-karsten-hilbert/

本周,我们欢迎卡斯滕·希尔伯特成为本周的 PyDev!Karsten 接手了 GNUmed 项目,这是一个主要用 Python 编写的开源电子病历程序。让我们花一些时间来更好地了解他!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是德国的一名医生。

你为什么开始使用 Python?

我参与的 OSS 项目(GNUmed)是用 Python 写的。当我接管易用性、清晰度和电池的平衡时,我觉得刚刚好,所以我坚持了下来。

你还知道哪些编程语言,你最喜欢哪一种?

在 GNUmed 中,除了 Python,我还使用了 SQL 的 PostgreSQL 方言、shell 脚本、LaTeX 和其他一些语言。

当我开始编程时,我主要使用 Commodore 64 Basic,一点 x86 汇编程序,后来主要使用 Pascal。

你现在在做什么项目?

在软件方面,我的主要项目是 GNUmed。这些年来,我为相当多的其他项目贡献了补丁和 bug 报告,主要是基于抓个人痒。我目前偶尔以某种方式参与的项目有 TimeLine、Debian、PostgreSQL 和 Orthanc。

哪些 Python 库是你最喜欢的(核心或第三方)?

大多数 Python 库都相当不错。很可能,Python 范式助长了这种事情。

没有 psycopg2 GNUmed 就不会有今天。

此外,我猜 wxGlade 有点被低估了,我经常使用它,因为无论如何我都不是一个 UI 人员。

你还有什么想说的吗?
用户:前去提交质量缺陷报告!

开发人员:让您的代码使用 Unicode。

非常感谢!

本周 PyDev:凯瑟琳·贾穆尔

原文:https://www.blog.pythonlibrary.org/2018/07/16/pydev-of-the-week-katharine-jarmul/

本周,我们欢迎凯瑟琳·贾马尔( @kjam )成为我们本周的 PyDev!凯瑟琳是《T2 与 Python 的数据争论》一书的合著者。她也是 KIProtect 的联合创始人。你可以在 Github 上了解她正在做的项目。让我们花些时间去更好地了解她吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

当然可以!我第一次在电脑上工作是在 90 年代,用我的拨号共享 Windows 95 电脑为家庭音乐建立粉丝网站。从那以后,我对计算机和现在所谓的数据科学有着爱恨交加的关系。我接受过一些数学、统计学和计算机科学方面的正规教育,但也自学了大部分内容,因此我很自豪地认为自己是自学成才的一员。为了好玩,我喜欢和朋友一起做饭、吃饭,阅读新闻或 arXiv 报纸,和线上或线下志同道合的人一起咆哮...)

你为什么开始使用 Python?

我第一次使用 Python 是在 2007 年,当时我在华盛顿邮报工作。一位导师(Ryan O Neil)在看到我用 JavaScript 构建的一个小应用程序后,给了我一个机会。他安装了一台 Linux 计算机,并安装了 Django 应用程序栈——甚至给了我一个提交密钥!我不能告诉你我破坏了服务器多少次,但是 6 个月后,我启动了我的第一个 Django 应用程序。我被吸引住了,想做更多的东西。

你还知道哪些编程语言,你最喜欢哪一种?

我还涉猎了许多其他语言:C++、Java、Go,甚至 Perl、R、PHP 和 Ruby。我最喜欢 Python,但这可能是因为我最了解它。我现在在围棋上工作更有规律了,这真的很有趣,但对我来说也很难做这么多的打字工作。Python 作为我的主要语言无疑已经宠坏了我,对于数据科学和机器学习来说,它被如此广泛地采用是有原因的。

你现在在做什么项目?

我最近宣布了我的新公司 ki protect(https://kiprotect.com)。我们正在为数据科学和机器学习构建数据隐私和安全解决方案。本质上,我们认为数据隐私应该是每个人的权利,而不仅仅是我们这些有幸生活在欧洲的人。出于这个原因,我们希望使数据隐私民主化——让各地的数据科学家和工程师更容易实现安全和隐私的数据共享。我们的第一个产品是假名化 API,有限使用免费(大量使用付费)。这允许您发送私有数据,并通过一个 API 调用获得正确的假名数据。在未来的一年里,我们将提供更多的工具、解决方案和 API 来帮助提高安全性和隐私性。

哪些 Python 库是你最喜欢的(核心或第三方)?

对于从事机器学习和数据科学的人来说,NumPy 几乎是最好的东西。这是一个非常有用的库,核心开发人员所做的优化让我们可以用 Python(咳咳,Cython)进行快速、高效的数学运算,这非常棒。如果不是 NumPy 的稳定基础有助于在 Python 中培养一个真正的数据科学社区,我不确定我们是否会有像 Pandas、Scikit-Learn 甚至 Keras 和 TensorFlow 这样的东西。

你是如何结束写一本关于 Python 的书的?

我搬到欧洲后不久,我的合著者杰奎琳·卡齐尔找到了我。具有讽刺意味的是,就在一周前,我转向我的伴侣说,“你知道,我终于感觉不那么疲惫了。我想知道我下一步该做什么?这本书似乎是一个重新开始使用电脑的好机会。

你从那次经历中学到了什么?

写书真的很难。我知道每个人都这么说,但这需要你付出很多;你可能永远不会对结果完全满意。也就是说,我从那些将我们的书作为对 Python 和数据世界的欢迎介绍的人那里听到了很多好东西——如果我甚至转化了一个新的 Pythonista,我可以说我已经取得了一些影响

你还有什么想说的吗?

不要使您的网站离线,以遵守 GDPR(新的欧盟隐私法规)。我从(主要是)美国人那里听到的欧洲知识产权的全面封锁或其他荒谬无知的反应和观点,令我感到震惊。

首先,这个规则很容易阅读,所以我推荐阅读。如果这对你来说太难了,请查看我们的文章,其中涵盖了你作为数据科学家需要知道的许多知识(https://kiprotect.com/blog/gdpr _ for _ data _ science . html)或这篇针对软件工程师的文章(https://www . smashingmagazine .com/2018/02/gdpr-for-web-开发者/ )。

其次,先把它想成一个用户。难道您不想对您的数据有更多发言权吗?你不想了解数据泄露吗?有人不告诉你就倒卖你的数据可以吗?以你希望被对待的方式对待你的用户。

终于有工具帮忙了!在 KIProtect,我们正在构建几种解决方案来帮助您的生活变得更加轻松。还有许多其他公司和项目致力于使我们的软件对每个人都更安全。不要把隐私和安全当作漂亮的附加产品,把它们当作核心产品的一部分。保护您的数据,它可能是您创造的最有价值的东西。

凯瑟琳,谢谢你接受采访!

本周 PyDev:凯瑟琳·坎普夫

原文:https://www.blog.pythonlibrary.org/2019/09/02/pydev-of-the-week-katherine-kampf/

本周,我们欢迎凯瑟琳·坎普夫( @kvkampf )成为我们本周的 PyDev!凯瑟琳是微软的一名项目经理,专门负责 Azure 笔记本,这是微软版的 Jupyter 笔记本。她最近还在 2019 年欧洲 Python 大会上发表了演讲。让我们花一些时间来更好地了解凯瑟琳!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

当然可以!我目前是微软 Azure 笔记本电脑项目经理。2017 年入职,开始在大数据团队工作。在那里呆了一段时间后,我决定向笔记本和 Python 靠拢,这让我加入了 Python 工具团队,这个团队非常成功。

在加入微软之前,我毕业于密歇根大学,在那里我学习了计算机科学。我也是在俄亥俄州长大的,所以中西部在很长一段时间里是我的家,我会永远爱着它。在 UofM 的时候,我还有幸教授了我们的计算机科学入门课程,该课程涵盖了 C++和 Python。我喜欢帮助人们学习新的概念,我很高兴我能以某种形式在会议上发言来延续这一点!

如今,我住在西雅图,喜欢过太平洋西北部的传统生活。我倾向于在冬天滑雪,夏天徒步旅行度过周末。在这两者之间,我喜欢四处旅行,并且正在努力游览所有的美国国家公园!我也是一个爱狗人士,一直致力于成为朋友们的狗保姆😊

你为什么开始使用 Python?

大约 7 年前,当我第一次学习编程的时候,我曾经使用过 Python,但是大约 4 年前,我开始在大学的一门人工智能课程上使用它

你还知道哪些编程语言,你最喜欢哪一种?

C++是我的另一门主要语言,它曾经是我的最爱,但是在过去的几年里,Python 无疑偷走了我的心。

你现在在做什么项目?

在我的空闲时间里,我一直在分析过去 5 年来佩戴 Fitbit 的所有数据。看到我这么长时间的睡眠模式以及我的一般健身习惯,真的很酷。希望通过观察我的运动与睡眠和天气的关系来发现一些有趣的趋势。我们走着瞧!我还在制作一台令我超级兴奋的迷你街机。

在我的工作中,我致力于让 Azure 笔记本成为笔记本用户最高效的体验

哪些 Python 库是你最喜欢的(核心或第三方)?

我会永远爱 NLTK!我在 Python 职业生涯的早期接触过它,发现它非常强大。现在也是。自然语言对我来说一直是超级有趣的,我喜欢 NLTK 提供的所有帮助!

你还有什么想说的吗?

我总是鼓励人们尽可能地分享他们的知识!克服随之而来的冒名顶替综合症。

凯瑟琳,谢谢你接受采访!

本周 PyDev:凯瑟琳·斯科特

原文:https://www.blog.pythonlibrary.org/2017/08/21/pydev-of-the-week-katherine-scott/

本周,我们欢迎凯瑟琳·斯科特( @kscottz )成为我们本周的 PyDev!凯瑟琳是 SimpleCV 计算机视觉库的首席开发者,也是 SimpleCV O'Reilly 图书的合著者。你可以在 Github 上查看 Katherine 的开源项目。让我们花一些时间来更好地了解她!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

关于我的一个快速总结:

我目前是行星实验室的图像分析团队负责人。Planet 是世界上最大的卫星成像公司之一,我的团队帮助将 Planet 的日常卫星图像转化为可操作的信息。我们目前每天以大约 3m 的分辨率对整个地球进行成像,我不仅可以看到这些数据,还可以将我的计算机视觉技能应用到我们的整个数据集上。除此之外,我还可以在太空中工作!不用说,我绝对热爱我的工作。我也是开源硬件协会的董事会成员,我帮助组织了开源硬件峰会。

在 Planet i 工作之前,我与人共同创立了两家成功的初创企业 Tempo Automation 和 SightMachine。在创办这两家初创公司之前,我在一家名为 Cybernet Systems 的非常棒的研发公司工作。当我在 Cybernet 的时候,我做了计算机视觉、增强现实和机器人研究。

学历:
2005 年毕业于密歇根大学,获得计算机工程和电子工程双学位。为了完成学业,我在几个非常棒的实验室做研究助理,在那里我研究 MEMS 神经修复术和 RHex 机器人(你可能熟悉的大狗机器人的近亲)。2010 年,我决定重返校园,去哥伦比亚大学攻读硕士学位。我主修计算机科学,重点是计算机视觉和机器人学。在研究生院快结束的时候,我被创业的 bug 咬了一口,并帮助启动了视觉机器。

爱好:我的爱好目前受限于我在旧金山的小公寓,但我喜欢在业余时间建造和制作东西(艺术、硬件、软件等)。我也非常喜欢音乐,所以我去看了很多现场演出。随着年龄的增长,我发现如果我想呆在屏幕前,我需要锻炼,所以我喜欢散步、骑自行车和做普拉提。我也是三只宠物鼠的主人。大学期间,我在实验室里和老鼠一起工作,然后开始养老鼠。

你为什么开始使用 Python?

在我做工程师的头十年里,我几乎完全是一个 C/C++/C#用户。这里和那里混合了一些 Lua 和 Java,但是我花了 90%的时间从头开始写 C++。当我开始在 SightMachine 工作时,我转向 Python 来帮助公司建立一个名为 SimpleCV 的计算机视觉库。我几乎立刻就爱上了她。Python 允许我抽象出许多与编译器、链接器和内存管理相关的任务,并将更多的精力放在计算机视觉算法开发上。大量的科学和数学图书馆也是一个极好的资源。

你还知道哪些编程语言,你最喜欢哪一种?我已经当了 12 年的专业工程师,所以我基本上什么都见过,什么都做过。我已经用 C、C++、C#、Java、Javascript 和 Python 完成了一些不平凡的项目,也尝试过使用一些更深奥的语言,如 lisp、lua、coffee script 和 ocaml。Python 是我的最爱,因为它包含了“电池”有了这么多的库和包,这就像有了一种超能力,如果我能想出它,我就能编码它。

你现在在做什么项目?

我的工作让我现在很忙,但这非常有意义,因为我觉得我们给了地球上的每个人实时观察地球的能力。四月份,Planet 发布了一项 Kaggle 竞赛,重点是检测亚马逊 T2 的非法采矿和森林砍伐。最近,我刚刚完成了我最新的 Pycon 演讲,并整理了开放硬件峰会的演讲人名单。随着这些事情的结束,我和海湾地区的一些极左激进组织一起开始了几个新项目。我们正试图组织一次激进分子黑客马拉松,为海湾地区的非营利组织开发工具。我将特别关注的项目是一个系统挖掘和分析仇恨言论网站广告内容的工具,以努力消除它们。这些项目仍处于规划阶段,但我希望在夏末之前启动并投入运行。

哪些 Python 库是你最喜欢的(核心或第三方)?

整个科学 python 社区都很棒,我是 Jupyter 项目的超级粉丝。鉴于我的工作,我每天都使用 OpenCV、Keras、Scikit、Pandas 和 Numpy。现在我在做 GIS 工作,我已经对这个领域探索了很多。现在,我对 GeoPandas、Shapely、GDAL 的 python 绑定和提供打开街道地图的接口的库非常熟悉。我还想对机器人操作系统和开源机器人基金会大声疾呼。

你还有什么想说的吗?

我有很多话想说,但大多数都会变成咆哮。我会说,我努力让自己在互联网上,特别是年轻的工程师刚刚学习他们的手艺。如果你对我的领域或软件工程有任何疑问,请随时联系我。

感谢您接受采访!

本周 PyDev:凯蒂·麦克劳克林

原文:https://www.blog.pythonlibrary.org/2016/09/26/pydev-of-the-week-katie-mclaughlin/

本周,我们欢迎凯蒂·麦克劳克林( @glasnt )成为我们本周的 PyDev!她是 BeeWare 项目的核心开发人员。你应该花点时间看看她的 Github 简介,看看她参与了哪些有趣的项目。凯蒂也有一个有趣的小网站,并且是 PyCon 2016 的发言人。让我们花一些时间来更好地了解她!

katie

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

祝你好运!我是澳大利亚人,原籍布里斯班,但现在住在悉尼。我获得了信息技术学士学位,并且已经在技术行业工作了十年。我从事过许多不同的角色和技术,但主要是在虚拟主机和云计算方面。当我不在电脑前或参加会议时,我喜欢烹饪和制作挂毯。

你为什么开始使用 Python?
修复一点内部代码的 bug!一个旧脚本出现了 bug,我看到了“#!/usr/bin/env python "并从那里了解到。我有几年没有回到 Python,但就在我被 PyCon Australia 2015 录取后,我想我应该重温一下我所知道的一点点东西。那是大约一年前的事了,现在它是我编写脚本的首选语言。我之前使用 Ruby 已经很多年了,我只是偶尔会自动输入“puts”而不是“print”。

你还知道哪些编程语言,你最喜欢哪一种?

嗯!仅仅基于我所从事的语言,我就知道 JavaScript、Haskell、Scala、C、Python、Ruby、Perl、Bash/Shell、Powerscript、Powershell、PL/SQL,可能还有其他一些语言。加上高中和大学的十几种其他语言(主要是 Pascal、Lisp、Poplog、Assembly、ActionScript、C#、Java),还有很多。

但是我懂哪些语言呢?那是一个困难的问题。就我个人而言,我认为懂得一门语言意味着掌握了这门语言的工作知识。把任何一种语言放在我面前,我都可能理解,但是写作完全不同。

鉴于此,我会说我知道 JavaScript,Haskell,Python,Ruby & Bash。#polyglotLife

至于最喜欢的,我知道我以前很喜欢 Poplog,但是我真的不喜欢语言。我在一个环境中使用编程语言来阐述一个特定于该环境的解决方案。在一个不属于它的环境中使用一种喜爱的语言对任何人都没有好处。适合这项工作的工具等🙂

你现在在做什么项目?

我现在主要的开源项目是 BeeWare ,我是其中的核心开发者。你可能听说过那个闪亮硬币项目。BeeWare 是一组工具和库,允许您用 Python 编写应用程序并将其部署到任何地方。不仅仅是在网络上,在 Android 和 iOS 上也是如此。

我对养蜂项目的创始养蜂人拉塞尔·基思·麦咭迄今为止所取得的成就感到非常兴奋。这是一项正在进行的工作,但它有一个光明的未来。

我还是另外两个项目的核心开发人员: octohatrack ,这个应用程序显示了一个 GitHub 项目的贡献者总数,而不仅仅是那些向 master 贡献代码的人;和表情符号,一个模块和 Django 模板助手帮助使表情符号在网络上更易访问

哪些 Python 库是你最喜欢的(核心或第三方)?

我很喜欢请求的可用性,unicodedata 也很有趣。不过,我最近花了太多时间和 boto3 在一起。

作为一门编程语言,你认为 Python 将何去何从?

Python 现在已经 25 岁了,它通常是一种服务器专用语言。随着大约 10 年前 Django 的出现,它进入了 web 领域。在其他领域也有 Python 的基础,比如数据科学和教育。

然而,随着更多的开发远离服务器,Python 面临着落后的风险。最近的一项 IEEE 语言调查将 Python 放在了列表的首位,但是没有针对嵌入式系统或移动设备的解决方案。

BeeWare 可以解决 Python 在移动上的问题,Micropython 覆盖了嵌入式领域。这两个项目都应该得到更多的关注和工作,这样 Python 才能在未来的许多年里继续存在。

你还有什么想说的吗?

Python 社区很棒。相对来说,我是新来的,但是这个社区已经张开双臂欢迎我了——尤其是 django 社区——我在这里比在任何其他社区都有家的感觉。太棒了。

非常感谢你接受采访!

本周 PyDev:凯莉·舒斯特-帕雷德斯

原文:https://www.blog.pythonlibrary.org/2019/12/23/pydev-of-the-week-kelly-paredes/

本周我们欢迎凯利( @KellyPared )舒斯特-帕雷德斯。凯利是流行的 Python 播客教学 Python 的联合主持人。Kelly 专门从事课程设计和开发。她在她的网站上写了一些博客,如果你有时间的话,可以去看看。

现在,让我们花一些时间来更好地了解 Kelly!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名中学计算机科学教师,也是一名技术集成专家。我已经教了 23 年书,在美国、英国和秘鲁都教过书。我有课程、教学和技术硕士学位,这意味着我知道很多如何教授和发明很酷的课程。除了工作和共同主持 Python 教学之外,我大部分时间都和我的两个男孩在佛罗里达南部的阳光下运动。

你为什么开始使用 Python?

我大约两年前开始使用 Python。我的老板在 2018 年 4 月告诉我,我打算在当年 8 月份给中学的孩子们教授 Python。我说,“我死也不会学 Python,为什么不学 Javascript?”?不用说,我没有赢得这场战斗,谢天谢地!不过说真的,我的老板知道我喜欢挑战,他会接受任何呈现给我的东西,然后让它变得棒极了。我完全相信,她做出了正确的选择。

你还知道哪些编程语言,你最喜欢哪一种?

我“知道”HTML 和大多数教育家所说的块代码,这就是我的编码语言的范围。我会写几行 Javascript 和几行 SWIFT,但 Python 是我唯一能流利交流的语言。

你现在在做什么项目?

我目前没有制定任何重大项目。就我在计算机科学中的角色和教学方式而言,我总是需要对每件事情都略知一二。我们允许我们的学生追随他们的热情,所以在任何时候,我都可能在帮助学生使用 circuitpython、micropython、pygame、matplotlib、tensorflow、raspberrypi、turtle、pandas,甚至像 requests 和 translate 这样的库。

我梦想开发一个程序,可以作为一个“仪表板”来分析学生的所有数据,从成绩,出勤,家庭生活,标准化考试成绩,学术行为,你能想到的。然而,这将花费比我现在多得多的时间,所以我现在只是开始“数据库”方面。我希望有一天能找到时间全力以赴去实现它。我也正在写一本书,名为像当地人一样编码:成为多语言者,但这也是一个非常缓慢的过程,我希望在不久的将来完成。

哪些 Python 库是你最喜欢的(核心或第三方)?

我以前是医学预科生,热爱科学和数学的一切。我喜欢图表和直观地观察事物。我认为我最喜欢的图书馆是处理数据科学的图书馆。我特别喜欢 MatPlotLib,因为它的可读性和制作惊人图形的简单性。

我也不得不说,我和 CIrcuitPython 的关系是又爱又恨。我非常喜欢时尚设计,设计一些非常酷的科技时尚产品的可能性让我着迷。我在 Twitter 上看着一些 pythonistas,他们有着酷酷的变色仙女翅膀和 LED 图案连衣裙,我想,“哦,有一天,那会是我的一个学生创作的!”

你的播客《教 Python》是怎么来的?

教 Python 是因为我有一个了不起的教学伙伴和朋友,Sean Tibor。肖恩和我大约两年前开始合作。他有聪明的头脑和一颗充满爱心的心。作为一名新老师,我是他的导师,他很快成为我学习代码的导师。我们开始就 python 的教与学进行非常深入的、理论性的和批判性的对话,有一天我们说,我们需要把这些记录下来!

人们对教和学编码有着强烈的热情,我们觉得应该让更多的人了解我们的工作。我们每年教 370 个孩子如何编码,我们让只知道 Scratch 的 10 岁学生在不到 9 周的时间里制作很酷的 Python 项目。我们想,哇,这可以共享,更多的人可以学习编码!â€

Sean 也对数字营销感兴趣,他说:“我们来制作一个播客吧!”!†.我笑了,但我们做到了,36 集和 96,000+下载后,我们在这里。

我们最初认为我们的听众将只是计算机科学或 STEM 教师,但我们意识到我们也触及到成人、大学生和其他新手程序员,这对我们来说超级酷。我们采访了各种各样的人,从以前的老师,新的作者,大学教授,甚至农学家!我希望我能帮助像我一样的其他老师做出改变,或者冒险开始学习新的东西。

最喜欢的剧集?

我真的很喜欢我们深入学习编码语言的教学和反思方面的那几集。我认为第 23 集非常开放、诚实,帮助我制定了今年的计划和目标。

作为一名播客,你学到了什么?

作为播客,我们学到了很多!从我们第一次带着模糊背景噪音的录音到今天,有很多失误。感谢编辑。我们记录我们的播客,只有一个主题大纲,我们的对话是现场的,通常是非结构化的。有时候 Sean 比我先说话,我会说,“哦,废话,停一下,我对这个话题没什么好说的”,然后 Sean 会很耐心,然后我们继续。即使在录音期间,我们也不断地相互学习。

由于我们最近的新赞助商,我们现在能够购买新的麦克风和录音硬件。我们也可以外包一些编辑工作。这是一个巨大的学习时刻。迈克尔·肯尼迪和布赖恩·奥肯在用什么录音之类的问题上给了我们很多建议。他们从一开始就是我们的播客“导师”,并支持我们的节目。

对于可能对播客或博客感兴趣的人,你有什么建议吗?

如果让我给出五条关于开始播客的建议,那就是:

  • 开始记录吧,不要谈论它,只管去做。录制并发布出来没有坏处,最坏的情况会是什么呢?
  • 求助!在任何特定的时刻,有很多人知道的比你多得多。不要觉得你什么都知道。
  • 选择一些你喜欢谈论的话题,你永远不会穷尽所有的话题。肖恩和我有一个没完没了的话题列表,我们似乎无法通过。
  • 仔细考虑这一切。设定一个录制的时间,找一个特定的地方来主持,并让它发生。每次录音时,都要有意识地专注于你在和谁说话。
  • 享受录音的乐趣,如果它变成了你不得不做的事情,而不是你想做的事情,你的听众会知道,你的播客会很无聊。

你还有什么想说的吗?

学习 python 真的改变了我的学习方式。它打开了我生活中许多新事物的大门。作为一名资深教师,我可以说,永远不停止学习是至关重要的。我 22 岁时开始做生物老师,28 岁时开始帮助老师使用计算机并教授学生计算技能,这些都帮助我走到了今天。理解如何编码是一项非常重要的技能,不是因为我以后会成为一名成功的程序员,而是因为它训练了我的大脑去建立新的联系和解决真正困难的问题。这很重要。

学习 Python 也让我认识了一个非常棒的社区。我认为 Python 社区是我见过的最有爱心、最有同情心和最开放的社区之一。不管是你学 Python 的第一天,还是你第 28 年,大家都接受你,愿意帮你解决编码问题,或者回答问题。

凯莉,谢谢你接受采访!

本周 PyDev:肯·尤恩斯·克拉克

原文:https://www.blog.pythonlibrary.org/2021/01/11/pydev-of-the-week-ken-youens-clark/

本周我们欢迎 Ken Youens-Clark(@ kycl 4 rk)成为我们的本周 PyDev!他是来自曼宁的小 Python 项目的作者。他已经在 T4 的 YouTube 上为他的每一章做了视频演讲。

Ken Youens-Clark

让我们花些时间来更好地了解肯!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是打鼓长大的,最初在大学里学了几年音乐专业。我在大学里换了几次专业,最后拿到了英国文学学士学位,辅修了音乐。大学毕业后,我开始在乐队中演奏电贝司和竖式贝司,在过去的几年里,我最喜欢弹钢琴、小提琴、鼓,有时也弹博德兰鼓。我喜欢烹饪,尤其是为我的家人烘焙,我和我的妻子喜欢看“伟大的英国烘焙秀”和阅读烹饪书籍来寻找灵感。

我从来没有学过计算机,也是边工作边学编程。我小时候有一台 TRS-80,但我可能从未在上面写过超过一百行的 BASIC 语言。我拿工资写的第一门语言是 Windows 3.1 上的 Visual Basic。90 年代末,我曾是一名桌面 Windows 程序员,后来当我转而从事 Unix 和 Perl 工作时,我迷上了“互联网”这个东西。这让我在一个基因组学实验室找到了一份网络开发员的工作,这份工作变成了我在生物信息学领域的职业。

我于 2015 年开始在亚利桑那大学(UA)攻读硕士学位,20 年后完成本科学位,2019 年毕业。

你为什么开始使用 Python?

在 UA 的 Bonnie Hurwitz 博士的实验室工作时,我有幸帮助她向生物学家和工程师教授初级编程技能。从 2015 年开始,我们使用 Perl,因为这是我们最喜欢的语言,它在生物信息学中被广泛使用。

几年后,很明显 Python 会是更好的选择。Python 的语法很简单,它在科学计算领域已经超越了 Perl,并且有更多的工作等待着受过训练的 Python 程序员。

2017 年左右,我开始将我所有的培训材料转换为 Python,并全职转向 Python 编码,以便精通。这种变化真的让我在机器学习的冒险中受益匪浅,我发现它是我从命令行程序到 web 后端的大部分日常开发的首选语言。

你还知道哪些编程语言,你最喜欢哪一种?

我的第一门语言是 Visual Basic 和 Delphi,我已经完全忘记了。我仍然可以破解 Perl,而且我经常写 bash,而且写得相当好。我使用 Elm,一种纯函数式语言,它是 Haskell 的子集,用于动态 web 前端,我也非常喜欢在 Rust 中工作,我不得不说这可能是我现在最喜欢的。

你现在在做什么项目?

我目前正在为 O'Reilly 写一本新书,名为《用 Python 再现生物信息学》。我希望它能在 2020 年底前提前发布,它应该会在 2021 年出版。所有的代码和测试都可以在 https://github.com/kyclark/biofx_python 找到。

几个月前,我在亚利桑那州图森市的关键路径研究所开始了一个新的职位,目前我正在做 clinicaltrials.gov 网站的内部镜像。该项目涉及到后端的 Python、前端的 Elm 以及一些有趣的关系数据库(如 Postgres)和非关系数据库(如 MongoDB)。

哪些 Python 库是你最喜欢的(核心或第三方)?

对于命令行编程,我非常依赖“argparse”来处理参数。在编写代码时,我使用“yapf”(另一个 Python 格式化程序)来格式化代码,使用“ylint”和“flake8”来检查格式和样式,使用“mypy”来检查类型注释,使用“pytest”进行测试。

没有正则表达式我无法工作,所以我经常使用“re”模块。我经常连接 SQLite、MySQL、PostgreSQL 和 MongoDB 等数据库,所以这些模块对我来说非常重要。我认为“FastAPI”模块对于编写后端 API 是必不可少的。

从风格上来说,我真的很喜欢使用“itertools”和“functools”来编写更像纯函数式语言的 Python。

你是如何成为曼宁的作者的?

在将我的教学材料从 Perl 转移到 Python 并教授了几年之后,我决定我有足够的材料来出版一些新奇的东西,特别是因为似乎没有人尝试向初学者教授测试驱动开发。最初,我带着一个非常混乱的想法去找奥赖利,想写一本生物信息学的书,将游戏和谜题与生物学的例子结合起来。

我被告知要把这些分开,非生物信息学的材料变成了微型 Python 项目

作为一名作者,你学到的最重要的三件事是什么?

我真的很喜欢课堂教学,我也知道了我在写作中遗漏了多少,因为我会在课堂上即兴发挥,用我的手和黑板。我已经学会了创建大量的图表,并且不需要任何知识。

我还学会了利用课堂时间和学生一起编写实例,而不是讲课。我发现这对学生来说更有吸引力。他们实际上学会了如何从头开始编写程序,只需添加一两行代码,然后运行并测试程序。

这导致了我如何试图围绕一个程序来写我的书的每一章,使用它作为一个工具来教授一些概念,如正则表达式和文件处理。

我试图教大家如何从一个模板开始每个程序,并一步一步地修改它以满足给定的测试套件。我认为这导致了章节的集中和独立,让读者在每一章的结尾都有一种写了真正的程序的感觉。最后,我学到了很多关于包容性写作的知识。

我认为作为一个中年、异性恋、白人男性的生活给我留下了很多无意识的偏见,有些编辑用一些不欢迎我的语言来称呼我。我认为可以让文章变得轻松的小笑话可能会很糟糕。我甚至开始把“只是”或“简单”这样的简单词汇视为可怕的精英主义,比如“只是写算法”或“答案是简单地做 x。”

学习任何东西都具有挑战性,所以我尽量避免任何让编程看起来容易或轻松的语言。

你还有什么想说的吗?

我一直很喜欢 Perl 社区的友情,我发现 Python 也同样友好和支持。在 Perl 中,我非常依赖 CPAN,并设法贡献了一些我自己的模块,我发现 Python 的 pypi 也是一个同样了不起的资源。

我非常喜欢 Python,但我也认识到这种语言会让你犯严重的错误,所以我强调在“mypy”和大量测试中使用类型注释的必要性。这一直是我的课堂教学和我的两本书的中心焦点。

肯,谢谢你接受采访!

本周 PyDev:肯尼斯·洛夫

原文:https://www.blog.pythonlibrary.org/2015/08/31/pydev-of-the-week-kenneth-love/

本周,我们欢迎肯尼斯·洛夫成为本周的 PyDev。他通过 Django Ladies 的波特兰分会活跃于 Python 社区。他为团队树屋工作,创建 Python 课程。让我们花些时间更好地了解他。

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

当然可以。我住在波特兰附近,或者和家人住在一起。我在 Treehouse 工作,这是一所在线学校,旨在通过视频和代码挑战让人们为科技世界的工作做好准备。我教 Python 的所有东西。

我有一个多媒体设计学位,但是我从来没有专业地使用过它。说到编程,我是自学的,如果你不把所有写文档和博客的人算在内的话,我用来学习的东西(感谢科技作家!).

我喜欢收集,有时玩桌面游戏。我目前收藏了大约 90-100 款游戏。

你为什么开始使用 Python?

这实际上是一场意外。我真的对 Ruby 很感兴趣,也真的厌倦了写 PHP。但是 Ruby 并不容易学,我和一个朋友都认为 Python 看起来很棒。他让我做姜戈教程,我爱上了他。从那以后,我在每份工作中都努力使用 Python,幸运的是,如果那个地方还没有使用它,我通常都能如愿以偿。

至于为什么,嗯,我是 PHP 出身🙂Python 拥有 PEP 8 的事实只是扭曲了我大脑中想要代码统一的那部分强迫症。我也非常喜欢 Python 的简洁,这样我就可以更快地把我的想法输入电脑。

你还知道哪些编程语言,你最喜欢哪一种?

作为一名全栈自由职业者,我花了大部分职业生涯,熟悉 PHP 和 JavaScript。我也相当精通 CSS 和 HTML,因为我也不得不时不时地使用它们。像大多数学习了不止一种语言的程序员一样,我通常可以阅读另一种语言,即使我不能完全理解。

说实话,Python 还是我的最爱。但是,由于我对函数式编程的热爱,我一直试图学习 Haskell 或 Lisp,所以如果我真的坐下来学习其中的一门,这种情况可能会改变。

你现在在做什么项目?

作为一名自由职业者,现在我有了一份全职工作,我试着减少我的休息时间。我不做很多兼职项目。我和我的朋友克里斯·琼斯仍然维护着 django-brasses(T2),这是我们为 Django 基于类的通用视图提供的 mixins 包,但仅此而已。

实际上,我刚刚和我的好朋友蕾西·威廉姆斯·亨舍尔完成了第一届 Django Girls Portland 的联合组织工作,我们计划很快再组织一次这样的活动(2 月?)

在工作中,我目前正在参加 2 到 3 门新课程和研讨会。

哪些 Python 库是你最喜欢的(核心或第三方)?

第三方:Flask 和 Django 对我来说很重要。请求是美丽的。

可能有点奇怪,但我真的很喜欢 re 库。正则表达式起初很可怕,但它们是如此强大的工具。我也是海龟图书馆的忠实粉丝,因为它教孩子们 Python。

你对当前的 Python 程序员市场有什么看法?

我认为目前的市场非常稳固。我很久没有听说有 Python 程序员在找工作了,所以我们的需求量似乎很大。也就是说,世界在变化,尤其是与网络相关的工作,所以开始学习 asyncio 吧!

你还有什么想说的吗?

非常感谢你邀请我来这里!还有,我们需要更多 Python 世界的老师!写博客,写文档,教课,帮助 Django Girls 和 PyLadies 等。

谢谢!

一周的最后 10 个 PyDevs

本周 PyDev:Kenneth Reitz

原文:https://www.blog.pythonlibrary.org/2016/06/06/pydev-of-the-week-kenneth-reitz/

本周,我们欢迎肯尼斯·雷茨(@肯尼兹·雷茨)成为我们本周的 PyDev!Kenneth 是请求包的开发者,这是我最喜欢的包之一。他也是即将出版的 O'Reilly 的书的合著者,Python 的搭便车指南。你可以访问他的网站了解他最近在做什么,或者访问他的 Github 个人资料了解他对哪些项目感兴趣。让我们花些时间去更好地了解他!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

kenneth_reitz

你好,我是肯尼斯·雷兹。我热爱优秀的设计、合成器、相机、软件和 Python。我创造了很多东西,但我的代表作是“请求:人类的 HTTP”:当今使用最广泛的 Python 包之一。

我大部分的日常生活都围绕着 Python 和为 Python 社区服务。在 Heroku,我是 Python 的语言所有者,在那里我有许多不同的头衔。我的晚上通常要么被更多的 Python 填满,要么拍摄和编辑照片,制作电子音乐,要么消费大量的媒体(音乐、电视节目、电影、文章、视频、书籍)。从童年开始,我偶尔喜欢玩电子游戏。

我接受了良好的教育,尽管我在入学一年后就辍学了(因为计算机科学)。我做过的最好的决定!我认为自己是自学者,在教室里学不好。

今年早些时候,我发现自己患有躁郁症,这真是一次冒险。这既是福也是祸。在诊断、管理和培养自我意识的过程中,我学到了很多。

你为什么开始使用 Python?

我第一次接触 Python 是在我上大学的时候,大学里的计算机科学入门课程中教授 Python。课程是不可接近的,而且这个班是由一个几乎没有使用过这种语言的资深 Java 开发人员教的。我不常去上课,但我清楚地记得他讲了半个小时关于使用全局变量的坏处的讲座(他所关心的问题在 Python 中都不是有效的论点)。

尽管如此,与我接触过的所有其他语言相比,我还是很喜欢 Python。于是,我独自上路,自学了 Python,再也没有回头。Python 是第一种我对其有着超越表面层次理解的语言,并且在我作为一名开发人员的职业生涯中,它为我的许多决策提供了信息。

你还知道哪些编程语言,你最喜欢哪一种?
从小到大,我试验过很多编程语言,按这个顺序:GW-BASIC、Q-BASIC、Turbo C/C++、Turbo Pascal、HTML、CSS、JavaScript。
成年后,除了 Python,我还增加了 PHP、Java、Groovy、C#和 Bash。

Python 是迄今为止我最喜欢的语言,几乎可以做任何事情。我非常喜欢设计良好的工具,在我看来,Python 是我所接触过的所有语言中整体设计最好的。

多年来,我确实从使用 PHP(以及隐含的 HTML/CSS/JS)构建和维护大量网站中获得了巨大的乐趣。这就像是一个完全不同的世界——我并不是真的在编程,只是为了最终的结果而随意地将一些东西拼凑在一起。我已经有 6 年多没有接触 PHP 了,我很感激在这段时间里我没有从事任何对我来说很棒的项目。

我还发现 Bash 使用起来非常愉快,但是只有当它是适合工作的工具时。我从编写 bash 脚本中获得了一种奇怪的满足感,因为这种语言是如此费解和奇怪。让我觉得自己像个黑客。🙂

你现在在做什么项目?

我目前没有积极参与任何雄心勃勃的项目。上个月我发布了大量的开源软件,所以我会慢慢来,专注于我的其他爱好(音乐和摄影)。

我有一个名为“em”的项目即将发布,这是一个为表情符号节省时间的 CLI 工具。你可以运行“$ em sparkles cake sparkles”,它会自动将“ðÿ”复制到你的剪贴板上。它还具有关键字/方面搜索和其他一些好东西。很期待很快正式向全世界发布。

哪些 Python 库是你最喜欢的(核心或第三方)?

当然,我最喜欢的包是请求包!

否则,通常想到的两个库是 Docopt 和 Parse。两者都采用非常复杂的问题,并以极其优雅的方式解决它们。

作为一门编程语言,你认为 Python 将何去何从?

有一段时间,我非常担心 Python 社区会围绕 Python 2 和 Python 3 分裂。虽然我们还有很长的路要走,但我现在对我们前进的方向感觉良好,并认为我们会完整地到达目的地。

尽管忽略未来的安全问题,我仍然发现使用 Python 2.7 的概念不可避免地非常有吸引力。Python 定期获得新的特性(例如函数注释,PEP 498 ),这些特性对我来说没有用,并且降低了语言的简单性和可接近性。在我看来,一门语言不需要不断地添加新功能,也不需要不断地进化以变得有用和相关。

这只是个人对一些新变化的看法。我并不是说这些特性不属于 Python,也不是说包含它们的决定是不恰当的——只是说我更喜欢其他方式,我并不是有意考虑其他类型的 Python 程序员的观点。这是一个“软”的意见🙂

你还有什么想说的吗?

不要惊慌,永远带着毛巾。

你可以在这里查看我的音乐:
https://soundcloud.com/infinitestate

而我这里的摄影:
https://www.flickr.com/photos/kennethreitz/

感谢您接受采访!

PyDev of the Week: Kevin McAleer

原文:https://www.blog.pythonlibrary.org/2023/01/02/pydev-of-the-week-kevin-mcaleer/

This week we welcome Kevin McAleer (@kevmac) as our PyDev of the Week! Kevin likes making robots, using Python, and sharing that passion on social media, such as YouTube. You can catch up with Kevin (and sign up for his newsletter!) on his website.

Kevin McAleer

Now let's spend a few minutes discovering more about Kevin!

Can you tell us a little about yourself (hobbies, education, etc):

Hi! I'm Kevin McAleer, and I love designing & building robots, using the Python I've learned into practice by bringing those robots to life and sharing my passion on YouTube.

I've always been passionate about computing and completed a degree in Computer Science in 1998, and back then, the languages we were taught were Cobol (it was on its way out then), C, and C++, and this 'new' language called Java. We did a bit of Javascript, too (it was called LiveScript at the time).

My hobby is creating small robots powered by MicroPython-based controllers, such as the Raspberry Pi Pico and Espressif ESP32. I create one project each week and then do a show-and-tell live stream every Sunday. I write up each project, sharing the Python code, bill of materials as well as downloadable STL files over at https://www.kevsrobots.com. All my work is free and open source.

I love robotics because it's the intersection of programming, electronics and 3d design, so there is always something new to try and learn from.

Why did you start using Python?

I learned Python because a lot of the Raspberry Pi projects I was seeing used Python, and I decided this was something I wanted to learn more about. The 'Pi' in Raspberry Pi is a tip of the hat to Python as the original prototype Raspberry Pi ran pure Python and no OS, much like the Raspberry Pi Pico does today.

After learning a couple of basics (and differences from the languages I knew), I was hooked. Python is so much easier to write code in than other languages, and because it's interpreted, it is faster to get to the results you're after.

What other programming languages do you know and which is your favorite?

I know Pascal, C/C++ (and the Arduino variant, 'Processing'), some Java, Javascript (not a big fan), a tiny bit of Ruby,  Swift, Objective-C (yuck), Assembler and ZX Spectrum Basic!

My favourite language is Python - it helps me get things done and lends itself to easy-to-read and cleaner code. I love that I can run it almost everywhere, from tiny embedded devices and robots up to large server clusters.

What projects are you working on now?

Right now, I'm writing a free MicroPython for beginners course. MicroPython is a subset of regular Python but designed for small MicroControllers with very limited RAM and processor resources. The course is aimed at beginners and people who have never programmed before and can be found over at https://beta.kevsrobots.com/learn - I'm launching it very soon.

The course itself is built using Markdown text files, a fancy Python script that takes a simple YAML file with the course structure and then builds the supporting files for Jekyll, which then turns the markdown and YAML into beautiful static HTML pages.

My most popular project has been the 'How to build your own AI assistant in Python', which you can find here: https://youtu.be/Y5atyJbVsAU.

Which Python libraries are your favorite (core or 3rd party)?

I love the Phew! library from Pimoroni, it's similar to Flask but for Microcontrollers such as the Raspberry Pi Pico or ESP32. It means I can host an entire interactive website on an embedded processor - one such example is the Big Mouth Billy Bass fish project, where visitors can control the fish over the internet using a website hosted within the fish itself! check out: https://www.kevsrobots.com/blog/big-mouth.html for links to the video, code, and website itself!

Phew also has a great logging feature which is really useful for troubleshooting embedded devices.

I also love Flask and FastAPI for quickly building APIs for projects. I also love Pandas and Numpy for manipulating data and training Neural Networks with Keras and TensorFlow.

How did you get into robotics?

I've always been fascinated with robots from a young age, but it was only in the last 10 years that I bought an Arduino Uno and 3d printed out the SMARS robot. I quickly outgrew the Arduino Uno as it's only an 8-bit chip and mostly programmed with C++, it's not powerful enough to run Python.

Once I'd built a couple of SMARS robots, I decided to make some YouTube videos about them and also built the SMARSFan website to document how to make them.

Do you have any tips for others who would like to start learning robotics too?

I'd say start with a simple robot like BurgerBot, and don't be worried about being out of your comfort zone. Imagine the joy you get from writing code, and it works just the way you want, and then multiply that when you make something move around and respond to its environment using your code. It's truly magical.

There are many affordable kits available online; all you really need is a battery box, a microcontroller and some motors to make a simple robot.

I think building robots also leads to writing better code because robots interact with the real world, and you end up writing really robust code to handle many scenarios. It also challenges you to learn new things, such as machine learning and artificial intelligence.

Is there anything else you’d like to say?

If people want to see more of the robots, python code or videos I've made, head to https://www.kevsrobots.com. I'm also on all the social channels: @kevmac on Twitter, @kevinmcaleer on Instagram, @kevsmac on Mastodon.social, and recently @kevinmcaleer6 on TikTok.

So find me online and say Hello! I'm always interested in what people are working on (robots and non-robot projects).

Thanks for doing the interview, Kevin!

本周 PyDev:凯文·奥利维尔

原文:https://www.blog.pythonlibrary.org/2015/07/13/pydev-of-the-week-kevin-ollivier/

本周我们欢迎凯文·奥利维尔成为我们的本周 PyDev。他在 wxPython 邮件列表上帮助了我(和许多其他人)很多次。让我们花些时间更好地了解他。

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我在马里兰大学学院获得了计算机科学学士学位。我的爱好几乎涵盖了所有书呆子的东西,比如游戏(视频和卡片)、科幻、超级英雄和幻想。在小时候接触过动漫之后,我也对所有与日本有关的东西感兴趣。🙂

你为什么开始使用 Python?

早在 90 年代末。),我正在使用 VB / Access 进行一个项目,随着我的需求增长,感觉这些工具并不适合我。我去寻找更强大,但也能快速开发的东西,我偶然发现了 Python。从那以后我就一直用它。我一直觉得,在我使用过的所有语言中,它在力量和简单性之间达到了最佳平衡。

你还知道哪些编程语言,你最喜欢哪一种?

除了 Python 之外,这些年来我还用过 C++、C#、JavaScript、Obj-C 和 VB。你可能已经从我之前的回答中猜到了,Python 对我来说是轻而易举的赢家。对我来说,生产率是关键的衡量标准,我还没有找到一种语言能让我像在 Python 中那样感到富有成效。有许多很棒的模块可以让你快速地为你的项目添加功能,而且在我的经验中,核心语言和模块似乎比大多数模块有更少的怪癖和意外行为。

你现在在做什么项目?

最近我做了很多咨询工作,所以我没有像我希望的那样花太多时间在开源/公共的东西上,但是就 Python 和开源而言,我正在尝试整合一个小项目,我暂时称之为 PyEverywhere(简称 PEW:)。这个想法是围绕 wxPython (Win/Mac)、Pythonista (iOS)和 Kivy (Android)创建一个包装器模块,这样您就可以编写一个针对所有这些平台的代码库。为了加速 GUI 开发,并利用很多人都有 web 开发背景的事实,它使用 WebKit 作为主要的 UI 引擎。通过这种方式,不需要大量的前期工作就可以让新平台正常工作(例如,不需要包装许多本机控件),并且我们可以在需要时通过公开特定的本机功能来扩展其功能。它使用一个小小的桥接层在 web UI 和本地应用程序之间发送消息。

我在皮尤的工作实际上是我正在进行的一个更大的项目的一部分,这个项目的代号是沉睡的龙。这是一个建立开源学习引擎的项目,为可能无法接受传统教育的人带来新的学习机会。你可以在我的网站上了解更多,但基本上我是用它来开发客户端 GUI 部分的。不过,现在还为时尚早,所以还没有准备好发布任何东西。

哪些 Python 库是你最喜欢的(核心或第三方)?

Django,wxPython,pubsub,virtualenv,pip。

作为一门编程语言,你认为 Python 将何去何从?

这是个很好的问题。目前,我认为 Python 的主要增长领域是科学编程(例如 scipy、numpy、nltk 等)。)以及像 Django 和 friends 这样的优秀库的 web 应用程序开发。我用 Python 做了很多客户端 GUI 开发,但是我还没有看到这方面有很大的发展。我认为这部分是由于移动领域的兴起,Python 目前在这个领域还没有显示出太多的官方存在,部分是由于创建一个与微软和苹果提供的工具相匹配的完美 UI 开发环境的挑战。

你还有什么想说的吗?

感谢您完成这个系列,感谢您在 wxPython 邮件列表上以及为世界各地的 Python 程序员提供的所有帮助!🙂

谢谢!

一周的最后 10 个 PyDevs

  • 亚历克斯·盖纳
  • 大卫·比兹利
  • 升降杆
  • 塔里克·齐亚德
  • 斯蒂芬·德贝尔
  • 安娜·奥索斯基
  • 加布里埃尔·佩蒂尔
  • 瓦苏德夫拉姆
  • Julien Danjou
  • 马特·哈里森

本周 PyDev:凯文·托马斯

原文:https://www.blog.pythonlibrary.org/2020/11/02/pydev-of-the-week-kevin-thomas/

本周,我们欢迎凯文·托马斯( @mytechnotalent )成为我们本周的 PyDev。Kevin 是《Python FOR Kids的作者,这是“一个利用官方 BBC micro:bit 开发板为孩子们提供的全面免费在线 Python 开发课程”。

让我们花些时间来更好地了解凯文!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我的背景是非技术性的,我来自宾夕法尼亚州东北部,从小就开始编程。我运行了一个 Commodore 64 公告板,人们可以通过电话拨入。最初我用 C 语言和汇编语言为 x86 平台编程。今天,我是 Python 测试和程序自动化框架的高级软件工程师。

你为什么开始使用 Python?

几年前我在学习自动化的时候开始使用 Python,现在我是 Python 中测试和程序自动化框架的高级软件工程师。

你还知道哪些编程语言,你最喜欢哪一种?

c,ARM 汇编,x64 汇编,x86 汇编和 Python。Python 是我的选择,因为它可以用 1/10 的时间完成任务。

你现在在做什么项目?

面向儿童的 python-http://minipython.org

目标

  • 用十个简短的教案帮助非技术教育工作者学习 micro:bit Python 编程。
  • 允许那些非技术教育工作者将他们刚刚学到的东西向前推进,并向他们的学生传授同样的十条经验,并将下一代创客的足迹扩展到非技术受众。
  • 教 Mu IDE(集成开发环境)在 micro:bit 上轻松开发软件。
  • 教授 MiniPython Friend API,允许非技术教育工作者为他们自己的教学课程定制它,并允许向他们的学生介绍简单的交互式聊天机器人功能。
  • 向非技术教育工作者传授如何创建非常简单的 Python 模块(程序),使他们能够在 micro:bit 上与 MiniPython 集成,并开发成定制固件,他们可以批量分发给学生,帮助集成到他们的课程计划中。
  • 在本报告的“问题”部分,为与 micro:bit Python 编程相关的技术问题提供一个活动分支。

什么 MiniPython 不是

  • MicroPython 的替代品。
  • MicroPython 的原始 BBC micro:bit 端口的替换。
  • CircuitPython 的替代品。

哪些 Python 库是你最喜欢的(核心或第三方)?你还有什么想说的吗?

自动化(专业)

你是怎么进入 MicroPython 的?

2019 年,活跃的物联网设备数量达到 266.6 亿。每秒钟有 127 个新的物联网设备连接到网络,今年总数超过 310 亿。专家预计明年将超过 350 亿。MicroPython 是一场革命,它将允许更多的工程师以前所未有的方式解决至关重要的挑战。我有一个库来帮助 MicroPython 和 CircuitPython 更加安全,如果这是我的目标的话。

https://github . com/mytechnotalent/MicroPython _ Frozen _ Boot _ No _ REPL

为什么选择 MicroPython 而不是 CircuitPython 或其他编程语言?

它们都很好地服务于自己的目的,并且正在导致历史上最大的革命。有很多 CP 教程,我的下一步是制作一个全面的 Python 课程,并将其绑定到 MicroPython,因为到目前为止还没有太多的教程。

凯文,谢谢你接受采访!

本周 PyDev:Kirby Urner

原文:https://www.blog.pythonlibrary.org/2016/11/14/pydev-of-the-week-kirby-urner/

本周,我们欢迎科比·乌尔纳( @thekirbster )成为我们本周的 PyDev。Kirby 在 O ' Reilly 技术学院教授 Python。他还不时在美国 PyCon 大会上发表演讲。你可能还想看看他的网站,了解更多关于他的激情。让我们花点时间更好地了解他。

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

当一个年轻的小伙子在菲律宾的时候,我和我爸爸把潜水作为一种爱好,当你可能不需要潜水服和装备时,潜水并不昂贵,价格相当于好市多基地的价格。我们是平民,但有美国军事基地,那里的装备很便宜(克拉克和苏比克当时更大)。

爸爸是一名城市/地区以及后来的教育系统规划者。

我们有一个很棒的教练,一个名叫吉尔·吉兰的前海军陆战队员,一个不教新手时的商业潜水员。妈妈和姐姐有自己的爱好。

我从菲律宾来到普林斯顿接受高等教育。

虽然我最终专注于哲学(特别是维特根斯坦的东西),但在那里的四年里,我是计算机科学和其他工程主题的狂热学生。

我学了很多编程,非常喜欢肯尼斯·艾弗森的 APL。有时候,我会在自助餐厅里找一张坐满电脑极客的桌子,坐在那里听他们谈论操作系统。

APL 在计算机中心的 IBM 370 主机上运行,终端分散在校园各处,包括在我宿舍的地下室。

你为什么开始使用 Python?

90 年代 1.6 版本左右。我和妻子一起在一家小企业里谋生。她是一名基金会计,这是非营利组织、非政府组织、其他基于捐助者的、会员资助的、赞助的业务所青睐的一种记账方式。我是一名程序员,使用微软的产品 Visual FoxPro。我们都有自己的客户,有些重叠。

然而,从普林斯顿毕业后,我对空间几何和使用免费开源的 POV-Ray (povray.org)在屏幕上渲染多面体产生了热情,这是我通过 CompuServ 了解到的。我在做一个关于巴克明斯特·富勒的新奇几何的网站,其中包括那些测地线球体和圆顶,并且需要一种生成图形的方法。

我在寻找从其他语言生成这些视点射线脚本的方法,并开始在 FoxPro 中这样做。商业杂志 FoxPro Advisor 发表了一篇关于这样做的文章。这也是“四方形”首次亮相的地方。

我学了几个月的语言,寻找适合我大脑的东西。Python 做到了。在渲染完多面体后,我会在万维网上分享它们,那时候还很新。

从普林斯顿毕业后,我一直是一名高中数学老师,我的想法总是“这难道不是学习数学的好方法吗?”

你还知道哪些编程语言,你最喜欢哪一种?
正如我提到的,APL,一种编程语言。你需要一个特殊的键盘,因为操作者似乎是古希腊人(主要是一种错觉)。

Kenneth 和他的儿子,Roger Hui 和其他人合作开发了 APL 之后的下一种语言:J (jsoftware.com)。

你会在我的网站上找到一些用 J 语言发表的论文。我不太了解 Clojure,但在 Github 上,我有一个用该语言实现的“quadray coordinates”(参见维基百科)。

你现在在做什么项目?

鉴于我是一名 Python 教师,主要是为在职的 IT 工作者提供职业发展,作为他们工作的额外津贴,我喜欢保持一个在线的演示 web 应用程序,我一直在做这个。

我的演示是故意最小化的,所以我不允许自己疯狂地实现花哨的功能。我用的是 Flask、SQLite 和简单的 JavaScript,甚至没有用 JQuery。

哪些 Python 库是你最喜欢的(核心或第三方)?

在第三方世界中,我是视觉 Python 和视觉模块的超级粉丝,视觉模块是 OpenGL 的一个包装器,它使得 3D 空间图形编程对高中生来说非常容易。

你可能听说过这样的陈词滥调:除非有 8 年级学生能理解的版本,否则什么都不受欢迎。还是说报纸应该保持在那种水平。

这就是视觉模块的样子,普通人也能接触到,但是当然你想用它得到什么样的效果是没有上限的。

在标准库内部,我不得不说 tkinter 得到了我的尊重,让我大吃一惊,因为它让 Python 控制了另一个用不同语言编写的整体(TCL-“tickle”)。

在展示一个人如何与外星人协同工作时,包括来自 Python REPL 的东西,tkinter 提醒我们通过计算机科学可以获得的乐趣——在我看来是哲学的一个分支(grin)。

作为一门编程语言,你认为 Python 将何去何从?
我希望并看到一些有希望的理由,期待 Python 作为手机应用程序世界的开发平台有一个光明的未来,手机应用程序世界正在迅速与桌面和笔记本电脑世界集成。例如,Chromebooks 现在可以运行 Android 应用程序。我已经在我的安卓手机上启动了一个 Python REPL。

你对当前的 Python 程序员市场有什么看法?

我认为编程越来越成为一个人工作描述的一部分,不管他的头衔或业务是“程序员”还是其他什么。

Python 是一种用户友好的“搞定”类型的语言,各行各业的人都喜欢这种语言,因为它能够避开他们的方式,让他们继续工作。

Guido 的语言很好地服务了他“为每个人编写计算机程序”的梦想。

你还有什么想说的吗?

我对波特兰蓬勃发展的代码学校业务非常感兴趣,它与更成熟的学术机构以及商业部门有许多联系。PDX 代码公会就是一个很好的例子,它与 PSU 的商业加速器项目有联系。

我不是在鼓吹每个人都应该使用 Python。相反,我庆祝 JavaScript 在客户端和服务器端都找到了新的立足点。当谈到工具时,我们需要保持异质性,这是多样性的一个花哨的词。

换句话说,代码学校应该避免在课程和成人教学法方面成为彼此的翻版(“成人教学法”指的是“成人教学”,与“教育学”相对)。我一直在寻找微调我所谓的“蟒蛇成人学”。

如果我们继续鼓励实验,我们将从彼此身上学到更多,因为“如何最好地教授这些东西”绝不是一门“既定的科学”。

感谢您接受采访!

本周 PyDev:Kirk Byers

原文:https://www.blog.pythonlibrary.org/2022/11/07/pydev-of-the-week-kirk-byers/

本周,我们欢迎柯克·拜尔斯(@柯克拜尔斯)成为我们本周的 PyDev!柯克教授几门不同的课程,内容是关于 Python 和网络自动化。柯克在奥赖利媒体上也有一个关于这个话题的短片。

让我们花一些时间来更好地了解 Kirk!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我在俄勒冈州立大学学习电子和计算机工程。这是在 90 年代早期,所以编程语言是 Pascal,C 和汇编。因为我们是“sparkies”(电气工程师),我们做了相当多的汇编编程。

大学一毕业,我就在英特尔工作了几年,测试和设计个人电脑的主板。后来,我成了新泽西州一家小型互联网服务提供商的首席工程师。我管理他们的调制解调器池、服务器和网络。我是一个多面手。作为这项工作的一部分,我对 Perl 有所涉猎。

最终,我决定专注于网络工程,并投身于思科认证过程。当时,对于对网络工程感兴趣的人来说,这是一条非常标准的道路。

然后我花了很长时间做网络工程工作。我经营了几年自己的咨询业务。

就爱好而言,我非常喜欢跑步,所以希望当你读到这篇文章时,我正在马林小道上跑步。

我们家也爱打桌游;我们通常每个周末都会玩至少一个大型棋盘游戏。我们目前最喜欢的几个是:地球化火星和卡韦纳。

你为什么开始使用 Python?

在某一点上,我厌倦了网络咨询,想要尝试建立一个更容易扩展的业务(或者至少不会以按小时计费的方式扩展)。因此,我对尝试构建一个基于云的网络自动化服务非常感兴趣。

作为这个过程的一部分,我意识到我需要扩展我的编程技能,我还需要学习一门新的语言。

当时,我在使用 Ruby 和 Python 之间争论,并决定 Python 更适合我,所以我开始学习 Python 和 Django。这是大约十年前的事了。

你还知道哪些编程语言,你最喜欢哪一种?

随着时间的推移,我尝试过各种语言:Pascal、C、Perl、Go、Ruby、Python、PHP、JavaScript。现实地说,我只知道一种语言,Python,有一定的深度。

如果一场比赛中只有一匹马,你会倾向于选择那匹马,所以我会选择 Python 作为我最喜欢的语言。

你现在在做什么项目?

我每个季度都会开设多门在线课程,并使用自动化来构建和管理所需的实验室环境。因此,我有很多内部自动化。这涉及 Ansible、Nornir、Terraform 和各种 Python 脚本。我还为我的公司管理和维护网站,所以我也在这里修补。该网站使用 Django。

我也是一个名为 Netmiko 的 Python 库的维护者,所以我花了相当多的时间处理这个库的问题、拉请求和改进。Netmiko 是一个自动化库,它使传统网络设备的自动化变得更加容易。

除了 Netmiko 之外,我还在 NAPALM 和 Nornir 开源 Python 库方面做了一些工作。

哪些 Python 库是你最喜欢的(核心或第三方)?

最近,我开始使用 Rich library,并且非常喜欢它(尤其是打印复杂的数据结构)。我也喜欢使用 Pdbr 作为 Pdb/iPdb 的替代品。调试器代码清单在视觉上更有吸引力。

在网络世界里,我喜欢诺尔尼尔。Nornir 是一个自动化框架,提供并发和库存管理。它主要用于网络自动化。

你是如何开始做技术培训的?

在某一点上,我知道我的 SaaS 网络管理业务不会成功,我真的不想继续咨询,所以我需要一个替代计划。

当时,我可以预见网络自动化将比以往更加重要(即网络自动化将被更广泛地使用,因此许多网络工程师将需要一些编程技能)。

因此,在 2014 年初,我为网络工程师开设了一门免费的 Python 学习课程,这门课程非常成功。2014 年年中,我扩展了这个免费课程,开始提供 Python 网络自动化的付费培训课程。我最终在 Ansible、Nornir 和 Netmiko 上增加了额外的培训课程。

你从学生身上学到的最重要的三件事是什么?

问问题最多的学生总是从课程中获得最多价值的人。

这是一个如此强烈的模式,你可能会把它颠倒过来。换句话说,当你在学习新东西时,确保你是提问最多的人。显然,它们需要是真实的问题,你也需要努力寻找它们的答案。

我学到的第二件事是,复杂的数据结构对许多人来说是非常具有挑战性的。由于这些人可能对 Python 相对陌生,而且可能对编程本身也不熟悉,所以看到列表和字典的巨大组合会让他们不知所措。

他们只是不知道如何处理这种情况,真的需要一种系统的方法来处理这类问题。

我学到的最后一件事(或者至少是被强烈强调的)是编程实际上是写代码。你可以整天看书和听 Python 视频,但是如果你不是真的在敲代码,你最终不会学到和记住很多有长期价值的东西。

再一次,这将是谁将在我的课程中学习最多的另一个重要指标,即在练习上花费最多时间的人。这些学生经历了解决练习和找出其中的问题的过程。

Thanks for doing the interview, Kirk!

本周 PyDev:Komiya Takeshi

原文:https://www.blog.pythonlibrary.org/2020/03/23/pydev-of-the-week-komiya-takeshi/

本周我们欢迎小宫武史成为我们的本周 PyDev!Takeshi 是 Python 的文档包 Sphinx 的维护者。Takeshi 也是图表图像生成器 blockdiag 的创造者。如果你有兴趣看看小宫参与的其他项目,你应该看看他的 Github 简介

让我们花些时间来更好地了解 Takeshi!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名来自日本东京的软件工程师。现在我在时代传媒公司担任首席技术官。Time Intermedia 是一家系统集成商。

我喜欢在编程的时候喝茶。我经常带着笔记本电脑去咖啡馆,享受一整天的编程。我的爱好包括开车环游日本和观看足球比赛。

你为什么开始使用 Python?

我第一次接触 Python 是在 10 多年前,当时我作为一名员工参加了当地的黑客马拉松活动;Zope/Plone Hack-a-thon(现更名为 Python mini Hack-a-thon)。在那些日子里,我习惯于用 Ruby 做我的业余爱好项目。从那时起,我开始在我的 OSS 项目中使用 Python。

我的第一个 Python 产品是 blockdiag 。它是一个从以原始语法编写的文本到框图图像的转换器。我想它让我知道享受 OSS 编程的乐趣。即使是现在,我有时也会看到关于 blockdiag 的推文和文章。我很高兴见到他们。

你还知道哪些编程语言,你最喜欢哪一种?

到目前为止,我有 C、Perl、PHP、Ruby 和 Python 的经验。如果非要选一个,我更倾向于用 Python。自从开始用 Python,我几乎每天晚上都用它做 OSS 作品。所以我很熟悉。

我也爱露比。它让我知道编程是一个迷。现在没时间用 Ruby 写代码了。但我还是喜欢。

你现在在做什么项目?

在过去的 5 年里,我一直在研究狮身人面像。它是一个开源的文档生成器。它可以以多种格式构建漂亮的文档。我在日本 Python 社区也遇到过。之后我给 Sphinx 做了很多种扩展包。最后,我成为了斯芬克斯本身的维护者。

哪些 Python 库是你最喜欢的(核心或第三方)?

几乎每天,我都需要使用 functools,检查和输入模块。我感觉它们很清晰,很酷。我从他们那里学会了“蟒蛇语”。

我也看了 docutils 因为 Sphinx 就是基于它。它有点老,但是它为文档转换提供了一个非常灵活的框架。

为什么使用 Sphinx 而不是另一个文档包?

因为它就在那里!TBH,我不是斯芬克斯的用户,只是一个开发者。事实上,我有时用它来为我的产品创建文档。但是我开发 Sphinx 的时间比使用的时间要长得多。

你还有什么想说的吗?

Python 和它的社区让我认识了我的朋友。我真的很感激伟大的语言和精彩的社区。我想对所有使用斯芬克斯的人说声“谢谢”。

本周 PyDev:Kushal Das

原文:https://www.blog.pythonlibrary.org/2019/01/07/pydev-of-the-week-kushal-das/

本周我们欢迎 Kushal Das ( @kushaldas )成为我们的本周 PyDev!Kushal 是 Python 编程语言的核心开发者,也是 PEP 582 的合著者。你可以通过查看他的博客或者他的 Github 简介来了解更多关于 Kushal 的信息。让我们花一些时间来更好地了解 Kushal!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是新闻自由基金会的工作人员。我们是一个非营利组织,在 21 世纪保护、捍卫和扶持公益新闻。我们致力于为记者和举报者开发加密工具,记录对媒体的攻击,培训新闻编辑室的数字安全实践,并倡导公众的知情权。

我一生也是各种自由软件项目的一部分。我是 CPython 的核心开发人员,也是 Python 软件基金会的董事。我是 Tor 项目核心团队的一员。十多年来,我一直是 Fedora 项目的定期撰稿人。

我与一大群朋友和同事一起协调 https://dgplug.org 的各种项目。我们在 Freenode 服务器上的#dgplug IRC 频道上一起学习新事物,互相帮助。欢迎访问该频道,并向我们问好。

我试着在我的博客上写下我定期学到的东西。

你为什么开始使用 Python?

2005 年底开始学习 Python。我想为我的新诺基亚手机写代码,Sirtaj Singh Kang 建议我开始学习 Python。在这样做的时候,我发现我必须写的代码行要少得多,而且也更容易理解。我开始更多地通过互联网与更广泛的 Python 社区交流,这让我更加着迷。正如布雷特·坎农所说:“为语言而来,为社区而留。对我们许多人来说都是如此。

你还知道哪些编程语言,你最喜欢哪一种?

在我的编程生涯中,我每 8 个月到一年就学习一门新语言。在我开始写 Python 之前,我习惯于根据我所从事的工作来写 C/Java/PHP。大约在 2009 年,我开始花时间学习函数式编程,并且非常喜欢 Lisp。我花了大约一年的时间继续编写更多的 Lisp,并试图找出如何在我的日常 Python 编程生活中使用这些想法。从 2013 年开始写 Go,确实有很多项目是用 Go 写的。

但是,最近我写了越来越多的铁锈。我真的很喜欢这个社区,也喜欢这个编译器🙂

以防有人想知道我们家有多喜欢 Python,我们的女儿名叫“Py”🙂

你现在在做什么项目?

在我的日常工作中,我与一个了不起的维护团队和社区一起维护 SecureDrop 项目。SecureDrop 是一个开源的举报人提交系统,媒体组织可以安装它来安全地接受来自匿名来源的文档。它最初由已故的艾伦·施瓦茨编码,现在由新闻自由基金会管理。

我还在从事各种 Python 项目,这些项目将使我们能够为记者们在 Qubes OS 上拥有一个新的桌面客户端。 Qubes Ansible 是另一个项目,我试图确保我们可以使用 Ansible 来维护我们的 Qubes 系统。

哪些 Python 库是你最喜欢的(核心或第三方)?

我想我几乎在任何地方都使用 stdlib 的json模块和作为第三方的requests模块。IIRC 我的第一个 Cpython 补丁是关于为 json 模块添加测试的。

在 Python 世界中,还有许多我经常使用的令人惊叹的库,其中大部分都是我们令人惊叹的社区的产物。

在开源项目中,你学到了哪三件最重要的事情?

  • 人比任何代码都重要。
  • 善待每一个人。
  • 在这个现代联系的世界里,交流是一切事物的关键工具。比起视频/音频通话,我们必须通过文字进行更多的交流。

你还有什么想说的吗?

我建议新的程序员研究更多的上游项目。在所有的项目中,我们都需要不同层次的帮助,所以我们有机会不仅通过代码,而且通过许多不同的方式做出贡献。

最后,但同样重要的是,我想提一下我的妻子 Anwesha,她来自一个完全不同的背景,帮助我为上游项目做出更多贡献,而且她自己也开始根据需要帮助项目。

谢谢你接受采访,Kushal!

本周 PyDev:凯尔·斯坦利

原文:https://www.blog.pythonlibrary.org/2020/06/15/pydev-of-the-week-kyle-stanley/

本周我们欢迎凯尔·斯坦利( @aeros_py )成为我们本周的 PyDev!Kyle 是 Python 编程语言的核心开发人员。如果你想知道凯尔在做什么,你可以看看他的 Github 简介。你也可以在 LinkedIn 上联系凯尔。

让我们花些时间更好地了解凯尔!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

嗨,我叫凯尔·斯坦利。我是一名 23 岁的大学生,即将完成学士学位(信息系统技术,编程规范)的最后一年。).最值得注意的是,我最近被提升为 Python 编程语言的默认/参考实现 CPython 的核心开发人员(2020 年 4 月)。我主要通过评论和我自己创作的修改来为标准库做贡献,这既是我喜欢的一种爱好,也是我在软件开发行业积累专业经验的一种方式。我最重要的贡献是 asyncio 和 concurrent.futures 模块。

我还积极参与各种 CPython 开发社区,比如 discuss.python.org、python-dev@python.org 和 python-ideas@python.org。虽然,我可能会花更多的时间阅读社区中各种专家的帖子,而不是写自己的帖子。随着时间的推移,我发现从讨论中可以获得无限的知识,只要有人有时间和耐心来整理大量的内容以找到“隐藏”的宝石。我非常感谢那里的许多活跃的专家。

在 CPython 之外,我作为版主参与了 Python Discord 社区。至于其他爱好,我也喜欢编程挑战网站,如 Codewars,阅读奇幻小说,玩 RPG 视频游戏(最近的 Mount 和 Blade 2: Bannerlord),看各种科幻电视剧,如 Star Trek,骑我的自行车。

你为什么开始使用 Python?

~6-7 年前,Python 是我第一门正经的编程语言。早在高中我加入学校的 STEM 学院时,我就对技术有着浓厚的兴趣,当我意识到编程对许多 it 职业道路有多么重要时,我就想把它作为一项技能来学习。在对其他语言进行了大量的“试水”之后,我发现 Python 拥有在现实世界中非常有用的语言中最直观、最人性化的语法。尽管表面之下有相当大的深度,但我发现核心语法从思想到代码无缝衔接。

你现在在做什么项目?

我有几个正在进行的 CPython 项目,但我目前最重要的项目可能是 asyncio。ThreadPool,这是一个高级异步线程池,旨在用作上下文管理器(例如,“async with asyncio。ThreadPool()作为池:``)。它在 CPython 中的主要用例是并发执行长时间运行的 IO 绑定子例程(非异步函数/方法),这些子例程通常会阻塞事件循环(例如网络编程、DB 连接器、进程间通信、文件 IO 等)。),特别是对于现有的代码或库,不能轻易转换成使用 async/await。线程的开销比使用协程(` async def '函数/方法)要多一点,但是当转换现有代码以使用它们不现实或不可用时,在线程池中执行子例程通常比长时间阻塞事件循环要有效得多。

这在技术上已经可以使用现有的“asyncio.loop.run_in_executor()”方法来完成,但是它明显不太直观,并且在控制线程池的资源何时被创建和终结方面给用户的灵活性也小得多。此外,这是 asyncio 的一个更长期的目标。ThreadPool 拥有一个完全的 asyncio-native 实现,而不是依赖于 concurrent.futures(这对于“loop.run_in_executor()”来说并不是一个可行的选项)。在转换过程中会产生不小的成本,因此转换到完全异步的原生版本很可能会带来显著的性能改进。我们从一个依赖 concurrent.futures 来获得初始稳定性的 API 开始,并给用户提供对 API 的反馈的机会。

详见https://github.com/python/cpython/pull/18410

你还知道哪些编程语言,你最喜欢哪一种?

我还会 C#、Java、JS、C/C++,大致按熟悉程度排序。当然,我认为 Python 是我最喜欢的,C#是第二喜欢的,Java 排在最后。尽管 Java 在软件开发行业中有很强的影响力,并且不会很快消失,但我发现它的样板文件太多了。我也不喜欢一些常见的设计模式和库 API。

哪些 Python 库是你最喜欢的(核心或第三方)?

在标准库中,我最喜欢的可能是我贡献时间最长的,asyncio 和 concurrent.futures!除此之外,很难从所有优秀的模块中选出几个最喜欢的,但我也非常喜欢线程和多处理模块的 API 并定期查找集合、functools 和 itertools 以提供大量实用工具。我还发现自己相当频繁地使用 os、json、shutil 和 pathlib 模块。此外,值得一提的是 3.7 中新增加的数据类模块。

至于第三方模块,实在是太多了,以至于无法列出几个我最喜欢的,但仅举几个我用得最多的:requests、bs4、flask、aiohttp 和 asyncpg。这里有几个我一直在学习或想学习的:姜戈,NumPy,熊猫和 PyTorch。

你是如何成为 Python 核心开发者的?

它始于我对 CPython 存储库的第一个贡献,这是对主要作为工作流介绍的文档的一个相当小的改变。它真正做的只是对设计常见问题部分的措辞做了一些小小的语法改进。随着时间的推移,我逐渐处理越来越复杂的问题,从帮助重新组织测试、替换过时的功能,到更复杂的文档更改、bug 修复、PR 审查,最后帮助 Mariatta Wijaya 创建“Python Triage”团队,我最终加入了这个团队。它充当了一个很好的垫脚石位置,因为它提供了一些管理问题和 PRs 的职责,如确定优先级、标记、结束等。

然后,我联系了一位核心开发人员,他是我在 asyncio 项目中的合作伙伴,Yury Selivanov。他主要以 asyncio 模块的两个主要维护者之一、async/await 的创建者和 EdgeDB 的 CEO 而闻名。他非常友好地接受了我开始核心开发者导师的请求。在几个月的时间里(从 2019 年 9 月开始),他提供了指导,回答了我无数的问题,对我的 PRs 给出了宝贵的反馈,并强烈鼓励我做出贡献。我永远感激他过去和现在的支持。

终于在 2020 年 4 月 14 日,Yury 提出提拔我担任核心开发者的角色。要成为其中一员,需要至少三分之二选择参与的核心开发者投赞成票。我将公开承认,考虑到现有核心开发人员广泛的专业背景,我对自己是否符合他们的标准有一些严重的怀疑;以及我对 C-API 和解释器内部的有限知识。但是,基于我对 Python 代码和文档标准库的贡献、公关评论以及参与邮件列表,我在 27 次投票中获得了 100%的支持。诚实地说,支持的数量让我大吃一惊,让我难以置信地开心;我真的一点也没想到。

很长一段时间以来,我的一个目标就是以某种有意义的方式回报 Python,让我第一次接触到真正的编程。但是,如果有人在一年前当我第一次投稿时告诉我,我将在下一年成为核心开发者,我可能不会相信他们!

我非常自豪能够称自己为 Python 核心开发团队的一员;但是,我还有很多要学的。🙂

你有什么喜欢的 Python 晦涩难懂的库或者特性吗?

我不确定这实际上会有多晦涩,但我最近最喜欢的 Python“鲜为人知”的特性可能是用于实现上下文管理器的 __enter__/__exit__ __aenter__/__aexit__ dunder 方法。一般来说,大多数用户可能都熟悉使用上下文管理器(例如,“使用 open(...)作为 f: ),并在第三方库中使用它们,但许多人可能不知道它们是如何工作的,以及它们可以多么容易地用于替换许多“try-finally”语句以实现安全的资源终结。它不仅有助于确保终结调用不会被忘记,还有助于代码更加关注核心逻辑。我发现减少常见的样板行几乎总是一件好事,并且是使用高级语言的一个强大优势。

对于不知道上下文管理器如何工作的人,我建议阅读以下博客文章以了解更多信息:https://jeffknupp . com/blog/2016/03/07/python-with-context-managers/

总的来说,我非常喜欢 Python 的数据模型,以及所有可用于难以置信的大量类定制的各种 dunder 方法,这在其他语言中通常是不可用的。对于任何 Python 的中级+用户,我强烈推荐阅读以下文档:https://docs.python.org/3/reference/datamodel.html。我仍然发现自己经常重温那一页。

你还有什么想说的吗?

非常感谢你邀请我做这次采访!这是我第一次公开这样做,所以如果我说得太详细了,我道歉。感谢所有读到这里的人。如果有人对我在 CPython 上的一些贡献感兴趣,我建议看看我的 GitHub。对于未来的实质性贡献,我一直在努力养成在 twitter 上提及它们的习惯。

此外,虽然我目前的主要关注点是在 12 月(2020 年秋季学期后)完成我的学士学位,但我对任何特殊的工作机会都持开放态度;尤其是那些能让我利用 Python 和开源软件开发经验的课程。请随时通过 aeros167@gmail.com 的电子邮件或 LinkedIn 联系我。

凯尔,谢谢你接受采访!

本周 PyDev:凯尔·斯特拉斯

原文:https://www.blog.pythonlibrary.org/2019/04/01/pydev-of-the-week-kyle-stratis/

本周我们欢迎 Kyle Stratis(@ KyleStratis)成为我们本周的 PyDev!他是真实 Python 的活跃贡献者,但也维护着他自己的网站。你也可以在 Github 上了解他的项目。让我们花点时间来了解一下 Kyle!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名自学成才的开发人员,我实际上在研究生院学习了神经科学,重点是听觉系统中的注意力机制。我在实验过程的每一步都要做的编码重新点燃了我早期对这门手艺的热爱,一个好朋友作为导师介入了进来——于是我在写硕士论文的时候自学并得到了我的第一份工作。

虽然我兼职做很多编程工作,但我也喜欢举重(我的父亲是一名健美运动员和健身房老板,4x 奥林匹亚杰伊卡特勒先生从他的健身房开始,所以这可能是遗传)、滑板和冲浪,自从我住在波士顿后,我很少做这些。我也是一个有点重金属的人,所以在任何一个特定的周末,你都有可能在一个昏暗的俱乐部里找到我,穿着战斗背心,手里拿着廉价的啤酒。我没有提到和我妻子在一起的时间,这通常是花在阅读、徒步旅行和和我们的两只猫玩耍上。

你为什么开始使用 Python?

这是我的导师推荐的,我真的很喜欢它简单的语法和用少量样板文件快速构建东西的能力。

你还知道哪些编程语言,你最喜欢哪一种?

在我的职业生涯中,我使用过 C#和 Perl,对 C++和 Java 的熟悉程度逐渐下降。

你现在在做什么项目?

我正在领导一个团队进行一个秘密的区块链游戏项目,通过建立一个用于迷因识别的卷积神经网络来研究我的机器学习技能(服务于让我团队的迷因股票市场 Danqex(以前的 Nasdanq)起死回生),并研究一个基于无线电/PBX 的 BBS——我喜欢旧技术。我也在通过一些机器学习书籍和教程来提高这些技能。

哪些 Python 库是你最喜欢的(核心或第三方)?

熊猫——让处理大型数据集成为一个梦想。因为我主要与数据科学家一起工作,所以能够在熊猫中交谈是必要的。

AWS Chalice——我使用大量的 AWS 服务,Chalice 使部署无服务器应用程序成为一个类似烧瓶的梦想。

请求——这是我最喜欢的与 HTTP 端点交互的方式。

你为什么决定开始为 Real Python 写作?

当丹发布作者征集时,我已经在我的个人网站上写了一些科技博客。我这样做是为了作为我所做的一些项目的参考,也是为了巩固我所学到的经验,所以我抓住了为真正的 Python 写作的机会——不仅是为了巩固所学到的经验,也是为了帮助那些在学习 Python 时曾经和我处于相同位置的人,并迫使自己学习在日常工作中可能不会遇到的关于 Python 的新知识。

作为 Python 教程作者,你学到了哪些东西?

我的写作技能有了很大的提高,这要归功于我们的技术评审和编辑团队的勤奋努力,他们努力让 Real Python 的写作达到很高的标准。在技术层面上,我最近关于 super() 的文章让我比基础文档允许的更深入地挖掘这个函数。我做了大量的实验才能够自信地谈论多重继承和改变方法解析顺序的本质。

对于想开始写博客的人,你有什么建议?

写写写写!一旦你解决了这个问题,再写一些,交给别人阅读(比如代码审查),然后开始向观众展示。那种压力和曝光只会提高你的写作。

你还有什么想说的吗?

永远不要停止学习和成长。

凯尔,谢谢你接受采访!

本周 PyDev:莱西·威廉姆斯·亨舍尔

原文:https://www.blog.pythonlibrary.org/2015/08/17/pydev-of-the-week-lacey-williams-henschel/

本周,我们欢迎莱西·威廉姆斯·亨舍尔(@莱西·威廉姆斯)成为我们本周的 PyDev。她在姜戈女孩组织中非常活跃。让我们花些时间去更好地了解她吧!

11170325_10102944224796771_5270483736033453108_n

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是奥斯汀德克萨斯大学的开发人员,我有两个英语学位。有很多关于英语学位没用的笑话,但是我实际上感觉我作为一个开发者每天都在用我的学位。

我最近的爱好似乎是策划 Django 和 Django Girls 活动!我是 DjangoCon US 的组织委员会成员,我在奥斯汀和波特兰共同组织 Django 女孩工作坊。当我不做那件事的时候,我喜欢烹饪,而且我正在上游泳课!

你为什么开始使用 Python?

老实说,因为这是我所接受的训练。我参加了德克萨斯大学的一个学徒项目,他们除了教一门大型机语言之外,还教 Python 和 Django。(UT 是老派。)但是我爱 Python!它灵活、强大、易学,并且有很好的文档。

你还知道哪些编程语言,你最喜欢哪一种?

老实说,我不知道很多其他语言。我最常用的是 NATURAL,一种在我的工作场所使用的大型机语言。(感兴趣的维基百科链接:https://en.wikipedia.org/wiki/NATURAL)NATURAL 很有趣,因为它与 Python 如此不同。它根本不是面向对象的,所以在两者之间切换既有挑战性又很有趣。

你现在在做什么项目?

如我所说,大部分是姜戈女孩工作室!在编码方面,我正在修改 Django Girls 页面的学习资源页面,这样我们就可以接受来自研讨会参与者和项目教练的建议,参与者可以在研讨会结束后继续工作。我还想创建一个有趣的 Twitter 机器人,因为它看起来像是“流行”的事情,我认为它会很有趣。

哪些 Python 库是你最喜欢的(核心或第三方)?

这是一个很难回答的问题!我要用一个有趣的表情符号:。表情符号可以让你把表情符号打印到你的控制台上,这很神奇。我感觉这个库会在我的 Twitter bot 中出现,对此我非常兴奋。

你可能会怀疑我不太把自己当回事。你可能是对的。

你还有什么想说的吗?

我非常感谢 Python 社区对 Django 女孩的支持。成为这个组织的组织者是令人惊奇的,感受到来自更广泛的社区的爱也是很棒的。谢谢你面试我!

非常感谢!

一周的最后 10 个 PyDevs

本周 PyDev:莱斯·卡瓦略

原文:https://www.blog.pythonlibrary.org/2022/01/10/pydev-of-the-week-lais-carvalho/

本周我们欢迎 Lais Carvalho ( @lais_bsc )成为我们本周的 PyDev!Lais 活跃在爱尔兰的多个 Python 用户组中,并帮助组织了多个 Python 会议。她也在最近的一集《T2》Python Bytes 中,所以一定要去看看!

如果你想了解 Lais 正在做的项目,请直接访问 GitHub。

Lais Carvalho

让我们花一些时间来更好地了解 Lais!

你能告诉我们一些关于你自己的事情吗(爱好、教育等)。)

我叫 Lais Carvalho,是一家咨询公司 Quansight 的开发人员和社区倡导者,该公司为大多数可用的开源库提供支持,特别是在 Python 领域。我刚从 IT(信息技术)专业毕业,学了两年工程。我也是 Python 爱尔兰的志愿者,并帮助组织了一些 Python 会议。我最喜欢的是 EuroPython(欧洲最大的 Python 会议)和 PyJamas,这是一个邀请每个人穿着睡衣出席的在线活动。

你为什么开始使用 Python?

I started using Python in my first year of engineering university. I was struggling to learn WolframAlpha to check if my handmade calculations were correct, but everything used to be so hard and take so long. That was when chatting to one of our teachers, he mentioned I might prefer to use Python for that. I thought “well, it doesn't cost me much to try” and have become a fan since then, which I believe was in 2014.

What other programming languages do you know and which is your favorite?

I am not a programmer, which means that my main line of work is with people (not code) but I can build small things using Java and Python. My R skills are not something to be proud of but I can make beautiful graphs and pretend I understand data analysis well enough. I would like to try and learn GoLang or Julia next.

My favourite do-it-all language is Python due to its versatility. But languages are tools, one is welcome to choose whichever (s)he knows best in order to get the job done. To expand on the metaphor, it is elementary that a plier will not be the most effective to hammer nails on a wall, but it might do a fine job on acceptable time if the amount of nails is small or the time is limited and hammers are not available.

What projects are you working on now?

I am currently on medical license due to a cancer diagnosis received two weeks before my thesis delivery deadline. I am now finished with the treatment (in theory) and waiting to hear results back from the hospital. Keeping fingers crossed.

Before that, I was working on updating the documentation of one of Quansight’s Open Source libraries named QHub.

Which Python libraries are your favorite (core or 3rd party)?

There are so many wonderful ones, which makes this a very challenging question but in summary, I quite like requests, making HTTP requests human-friendly since 2011. In addition, the more scientific ones like NumPy and SciPy, and the classy Manim for mathematical animations. Aw yes, and Flask for web apps! Not to mention the standard stuff, Python is all wonderful.

How did you become so active with Python user groups?

Lais Carvalho

I started volunteering for PyCon Ireland in my second year in college (2019), because I believed networking was the most effective way to get into the industry. At the event, I met so many wonderful people and everyone had a project or initiative in need of help, so I volunteered. I remember being extremely excited about partaking in such an inclusive and fun community, so much so that when COVID restrictions arrived I became almost fully dedicated to the user groups. It was a good way to cope with lockdown and to meet wonderful people that ended up becoming close-personal friends of mine.

What advice do you have for people who would like to start their own local Python user groups?

Look around and see if there are people interested in joining you. Look for inspiration in existing groups and persevere. This is a huge community we are part of and there will always be someone willing to help in some way. Be vocal, ask for help, and don’t give up. Finally, if you are thinking about starting your own Python User Group in Ireland, come and speak to us at Python Ireland, we would be happy to help in any way we can.

Is there anything else you’d like to say?

I have just recorded an episode of Python Bytes that you can find on their website or on Spotify. Wanna ask me something? DM me on Twitter at @lais_bsc.

Python Ireland:

  • A Speakers Coaching Session is happening later this month and if you want to improve your public speaking skills, it is a great opportunity to do so.
  • Also, our monthly meetups happen on the second Wednesday of each month, online for now (due to COVID regulations) but working on coming back in person. The recorded sessions are added to the YouTube channel.
  • For more information, follow us on Twitter. @pythonireland

PyLadies Dublin:

  • All the PyLadies workgroups are incredible and they also need volunteers. If you’re looking for a safe place to join the Python Community, I would seriously recommend PyLadies! And the Dublin cohort is led by the wonderful Vicky.

EuroPython will start looking for volunteers for the in person event as well soon

Pyjamas happens in December, want to be notified about it? Follow us on twitter @PyjamasConf and subscribe to our YouTube channel.

Thanks for doing the interview, Lais!

本周 PyDev:兰斯·布拉斯塔德

原文:https://www.blog.pythonlibrary.org/2019/01/14/pydev-of-the-week-lance-bragstad/

本周,我们欢迎兰斯·布拉克斯塔德(@兰斯·布拉克斯塔德)成为我们本周的 PyDev!Lance 是 OpenStack 项目的核心开发人员。你可以通过他的网站或者他的 Github 简介了解更多关于他的激情。让我们花些时间去了解兰斯吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

2012 年,我从位于法戈的北达科他州立大学毕业,获得了计算机科学学位(没错,就像电影一样)。从那以后,我对开源软件越来越有热情。我大部分时间都在 OpenStack 生态系统中度过。

除了对开源软件充满热情,我还是一个狂热的户外爱好者。我和妻子一起训练跑步项目。我还作为一名志愿消防员为我们大约 700 人的社区贡献时间。

你为什么开始使用 Python?

大学毕业后,我开始在 IBM 工作,构建 OpenStack 发行版。由于 OpenStack 是用 Python 编写的,所以学习 Python 是一项要求,这就是我如何接触到这种语言的。尽管在大学里有机会使用不同的语言,但我从未真正尝试过 Python。在新的环境和新的工作中使用它是一次令人兴奋的学习经历。

你现在在做什么项目?

目前,我大部分时间都在 OpenStack 的认证和授权领域工作。有一个名为 keystone 的专用身份服务,以及几个跨 OpenStack 协调授权的库。

因为有许多方法可以实现身份管理,所以处理所有这些方法是很有趣的。Keystone 可以用来管理 MySQL 的用户。还可以将其配置为使用 LDAP,甚至是发布 SAML 断言或使用 OpenID Connect 的身份提供者。

另一个令人兴奋的部分是 OpenStack 服务为用户提供了如此丰富的 API 集。由于服务使用来自 keystone 的授权信息,keystone 必须支持保护所有这些 API,这就提出了一组需要解决的有趣问题。

哪些 Python 库是你最喜欢的(核心或第三方)?

我想到的一个库是 pyca/cryptography。我们在 keystone 中使用这个库实现了一种认证加密,解决了当时一个重要的规模和操作问题。我们考虑了其他一些选择,但是 pyca/cryptography 是一个近乎完美的选择。

在正式把它作为一个依赖项引入之前,我仔细检查并阅读了源代码和测试。作者在组织功能方面做得很好,测试也很容易解析。尽管像密码术这样的主题很复杂,但浏览代码并清楚地看到事情的布局还是令人耳目一新。能够清楚地理解库的复杂性使得解决一个棘手的问题变得容易了一些。

你是如何开始使用 OpenStack 的?

我在 2012 年 1 月开始从事 OpenStack 的工作,当时 Diablo 刚刚发布,社区正忙于开发 Essex。我在 NDSU 大学完成了我的本科学位,我们进入了五月份毕业前的最后一个学期。我是参与顶点工程的四名成员之一。我们被要求寻找部署基础架构即服务的使用案例,主要是寻找如果我们构建一个私有云,谁会使用私有 OpenStack 云。

到中期,我们在三台使用 crowbar、chef 和 juju 的物理机上部署了 Diablo 版本(有趣的事实:只有两台主机有虚拟化扩展)。在发布(2012 年 4 月 5 日)后不久,我们花了最后一周的时间对全新的 Essex 部署(包括一些稍微好一点的硬件)进行了收尾工作。

我们的部署主要由教师和研究生使用,满足研究的 HPC 用例。

open stack 未来何去何从?

这是我自己的看法,但我看到 OpenStack 继续稳定。我认为,作为 OpenStack 社区,我们正在更好地朝着共同的目标努力,鉴于 OpenStack 治理下的项目范围,这是一个挑战。我认为这是令人兴奋的,因为它为我们的用户提供了一致的外观和感觉,并改善了他们对我们编写的软件的体验。

多年来,贡献者在特性和功能上投入了大量的精力,尤其是在网络、存储或计算基础设施等特定领域。我认为现在我们已经到了这样一个地步,继续前进意味着平滑组件之间的可用性。

我在 Robert Martin 的观点中看到了很多真理,他认为软件设计是一个持续的动态张力,而不是一个只写一次的乌托邦式的最终状态。如果你仔细观察,你会发现我们正在选择简化 OpenStack 中的软件。在我看来,对于用户和维护者来说,压力正在从紧张的特性开发转移到稳定和简单。当你长期参与一个项目时,看到这些转变的发生是令人兴奋的,以及它们给我们社区中的每个人带来了什么。

鲍勃叔叔在他的书《干净的建筑》中广泛地谈到了这一点,这本书很值得一读。

兰斯,谢谢你接受采访!

本周 PyDev:拉里·黑斯廷斯

原文:https://www.blog.pythonlibrary.org/2016/07/04/pydev-of-the-week-larry-hastings/

本周我们欢迎拉里·黑斯廷斯成为我们的本周 PyDev!Larry 是 Python 的核心开发者,也是 Python 的长期用户。他在 Youtube 上有趣地谈论了 Python 的 GIL,值得你花时间去看看。他也是现已解散的电台免费 Python 播客的幕后策划者。让我们花一些时间来更好地了解他!

你能简单介绍一下你自己吗(爱好、教育等):
我拥有加州大学圣克鲁斯分校的计算机和信息科学学士学位。为什么是计算机科学的文学学士一直让我困惑——但这就是你的 UCSC。

你为什么开始使用 Python?

我在 90 年代末开始使用 Python。那时,我是一名专业的 Windows 开发人员,那时 Python 对 Windows 的支持远远好于其他脚本语言——Windows 上的 Perl 远远落后于 UNIX 上的 Perl。此外,在发布了一个关于 Perl(一个小型 ISP 的基于 web 的注册过程)的相当大的项目后,我发誓不再使用 Perl。再也不会了!之后就没碰过了。

我不太记得我的第一个项目——那是很久以前的事了,我真的不记得了。不过,我记得第一次听说 Python 的时候。我哥哥斯图尔特想买一艘二手船,他用 Python 刮了一份当地报纸的分类广告,找到了感兴趣的优惠。自然,我对 Python 的最初反应和每个人一样——“空白太奇怪了”——但是一旦我开始使用这种语言,我很快就克服了它。

你还知道哪些编程语言,你最喜欢哪一种?

Python 显然是最受欢迎的。我的另一门主要语言是 C;这并不奇怪,因为我花了很多时间在 CPython 上,这是用两种语言编写的。如今,我很少用 Python 或 c 之外的语言编写代码

我的第一语言是基于 8 位的。但是我的第二语言是 FORTH。我爸爸和哥哥们都是计算机爱好者;虽然我爸是做硬件的,但是我的兄弟们是做软件的。所以他们都非常精通技术。我爸爸给了我一个 Commodore 64 和一个“Hes FORTH”墨盒,我对它的速度和你可以用它做的整洁的事情感到惊讶。FORTH 的“CREATE> DOES”构造仍然是定义新语法的一种独特的强大机制。在 FORTH 中有一些令人困惑的设计决策对我来说从来没有意义——直到几年后我尝试实现自己的 FORTH 解释器。突然,他们背后的原因变得清晰了。我从来没有运过我的玩具 FORTH 解释器“Sorta”,但是我基本上做了整个 4.0 重写的第四变种“FICL”。

早在 2011 年,我为我现在基本上已经停播的播客“Radio Free Python”采访了 Raymond Hettinger。Raymond 宣称每个程序员都应该学习这三种编程语言:FORTH、Smalltalk 和 Prolog。他说“FORTH 将改变你的编程方式!”我同意。FORTH 无疑教会了程序员如何经济地表达自己——而且从来没有一种语言比经典的 FORTH 更容易重构代码。我也同意 Raymond 的观点,他说 FORTH 的时代已经过去了。使用 FORTH 不再是任何问题领域的正确答案。FORTH 从 1970 年的设计中继承下来的遗产给它留下了一些令人厌倦的包袱,只是还没有成熟,它“只写代码”的名声是当之无愧的。

在我成长的岁月里,Pascal 是主要的教学语言,所以那是我在高中和低年级大学编程课上必须使用的语言。令人高兴的是,一旦你进入了高年级,你也毕业于 C 语言。最终我在大学里使用了一些 Scheme 和 C++。后来我专业地使用了 C++,因为它是 90 年代和 90 年代 Windows 开发的首选语言。我还编写了在激光打印机上运行的原始 PostScript——PostScript 本质上是 FORTH 的一个更愉快、更抽象的变体。

你现在在做什么项目?

我目前的项目叫做“臀部切除术”。CPython 内部有一个叫做“GIL”的东西。那代表“全局解释器锁”。这是一个单一的“互斥”锁,CPython 使用它来确保程序在多线程模式下正确工作。与直觉相反,它对性能也有很大帮助——它基本上没有开销,并允许 Python 在内部做出许多假设。但这也意味着 Python 不能在一个进程中同时使用多个 CPU。

我正在尝试移除 GIL,以便 Python 可以使用多个内核。摘除扁桃体就是扁桃体切除术,对吧?因此,切除 GIL 是一种“肛门切除术”。移除 GIL 本身其实并不难;几个月前我就这么做了。但是它让 Python 慢了很多很多倍,原因有很多。这里真正的工作是让 Python 再次变快。目前,它在很大程度上处于“研究”阶段,我们正在尽一切努力对抗这种放缓。我们不确定这是否可行!但是如果我们能让它工作起来,那将是非常令人兴奋的。

我也是 Python 语言峰会的联合主席,这是一个在美国 PyCon 举行的年度会议。这发生在不到一个月的时间里,现在占用了我很多 Python 时间。

除此之外,我还是 Python 3.4 和 3.5 的发布经理。在 3.4.0 和 3.5.0 最终版本发布之前还有很多工作要做,但是现在还不需要太多时间。

因为我已经为 CPython 贡献了相当多的代码,所以我会不断地收到一些低级错误。我经常被添加到“os”模块(内部称为“posix”模块)的 bug 中,因为我过去在这方面做了很多黑客工作。我还写了一个在 CPython 开发中使用的晦涩的内部工具,叫做“参数诊所”,所以我得到了所有的 bug。Argument Clinic 生成样板代码,将 Python 值转换为 Python 扩展模块的 C 值。是人教版 436 里提出来的如果你想看更多。

哪些 Python 库是你最喜欢的(核心或第三方)?

由于我倾向于使用 Python 而不是 Python,所以我不需要很多外部库。Python 的“包含电池”方法意味着我基本工作所需的几乎任何库都已经唾手可得。

就那些内置模块而言,我喜欢经典。当我进行文本处理时,我喜欢“re”、“shlex”和“tokenize”,我从字符串上经常被忽略的“partition”和“rpartition”方法中获益匪浅。当我处理文件时,我需要“os”、“shutils”和“hashlib”。我习惯使用“os.path ”,但一直想换成聪明、令人愉快的“pathlib”。

作为一门编程语言,你认为 Python 将何去何从?
真正的答案是:没有人真正知道。Python 现在已经有大约 26 年的历史了,从早期到现在已经有了很大的发展。在过去的几年里,这种语言的发展速度大大减慢了...我认为这是件好事。很少有你有一个用现代 Python 都表达不出来的程序。我觉得,这种语言正在达到一种复杂的饱和点。我不希望 Python 拥有比现在更多的语法。Python 3.5 增加了“async def”和“await”的关键字,以及一个新的操作符(“@”),我只觉得自己真的懂操作符了。另外,在我看来,任何新的语法都可能与现有的语法是多余的,违反了 Python Zen 的戒律“应该有一种(最好只有一种)显而易见的方法来做这件事”。

反对这种观点的是装饰者。当我第一次看到装饰者,并理解装饰者实际上是一个多么次要的抽象概念时,我认为这是完全不必要的。“可以在函数后用‘fn = foo(fn)’做@foo!”但是历史已经清楚地证明我错了。我现在认为装饰者是语言的完美补充。这正是我倾向于置身于新语言特性讨论之外的原因。

你还有什么想说的吗?

如果你没有使用 Python 3,我希望你能换一个!毫无疑问,它是比 Python 2 更好的语言,并且一直在变得更好。当我有机会在 Python 3 中写点东西时,我会从中获得很多乐趣。

感谢您接受采访!

本周 PyDev:Lennart Regebro

原文:https://www.blog.pythonlibrary.org/2015/04/06/pydev-of-the-week-lennart-regebro/

本周我们欢迎 Lennart Regebro ( @regebro )成为我们的本周 PyDev!我关注他的博客已经有一段时间了,觉得很值得一读。他也是《T4》移植到 Python 3 的作者。让我们花些时间去了解他吧!

Lennart Regebro 3916x2634

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我基本上是自学的。我确实上了一年大学,学的是数字电子,但是没有读完那个。这是在 80 年代,没有人知道他们在做什么,计算机工程是爆炸性的,所以如果你有计算机的诀窍,你可以找到一份工作。

自从我有了女儿,我再也没有任何爱好了。虽然我在家里的一个角落里还有一个小录音棚,但是我女儿用的比我多。她喜欢在键盘上制造噪音。我想这让我的主要爱好变成了喝威士忌和看曼城比赛。

你为什么开始使用 Python?

我在帮助一个非政府组织制作网站。我以前做过很多网站,但这次不懂 HTML 的人需要更新网站,所以它需要一个内容管理系统。我以前研究过 Zope,知道它是适合这项工作的工具,但这意味着我需要学习 Python。我以前可能用 Python 写过一些小脚本,我也读过教程,但是 1999 年圣诞节我开始了这个 CMS,所以那是我第一次用 Python 做一些严肃的事情。

你还知道哪些编程语言,你最喜欢哪一种?

我不再像了解 Python 那样了解任何其他语言。我最后经常使用的唯一一个是 Javascript,那只是因为我不得不这样做。我发现当我今天不得不写 C 时,我写得好像它是 Python,这是一个灾难。例如,我经常忘记释放内存。

你现在在做什么项目?
我在开栈上为红帽工作。在我空闲的时候,我打算把我的书移植到 Python 3 做成一本社区驱动的书。我也希望在 PEP 431 的实施上做更多的工作,不幸的是,这个项目在我开始后就因为时间不够而停滞了。我对气垫船也有大计划,气垫船是我的展示工具。

哪些 Python 库是你最喜欢的(核心或第三方)?

requests 是一个很棒的库,它使得处理 http 变得完全无关紧要。它的可插拔性也很棒。例如 requests-cache,一个将所有请求缓存到磁盘的插件,所以如果你从一个网站获取大量数据,你不必费心保存它,你只需使用它,它不会发出更多的请求。

lxml 也是我经常使用的一个模块。

你还有什么想说的吗?

切换到 Python 3 不再是一个大问题。如果你还在使用 Python 2,你应该考虑迁移。

谢谢!

一周的最后 10 个 PyDevs

  • 迈克·弗莱彻
  • 丹尼尔·格林菲尔德
  • 伊莱·本德斯基
  • Ned Batchelder
  • 布莱恩·奥克利
  • 足球妈妈
  • 安东·诺沃西约洛夫
  • 杰西·戴维斯
  • 伊夫林·德米罗夫
  • Andrea Gavana

本周的 PyDev:Leodanis Pozo Ramos

原文:https://www.blog.pythonlibrary.org/2021/01/25/pydev-of-the-week-leodanis-pozo-ramos/

本周,我们欢迎莱奥达尼什·波佐·拉莫斯( @lpozo78 )成为我们本周的 PyDev!Leodanis 是真实 Python 的撰稿人和作者。你可以在 Github 上看到他的一些项目,或者在他自己的网站上看到他在做什么。

让我们花一些时间来更好地了解 Leodanis!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)?

我是一名工业工程师,住在古巴的奥尔金。我也有质量保证的硕士学位。当我大学毕业时,我开始在石油和能源行业工作。我做了大约 10 年的机械润滑工程师。

2014 年,我决定转行,成为一名程序员。然后开始学习 Python,这是我的第一门编程语言。

我做机械润滑工程师的时候,主要的爱好就是坐在电脑前学习做事。我学会了使用 Windows,Linux,我学会了编程,等等。

我也曾经维护过一个关于 Python 的博客。不幸的是,那个博客已经不存在了。既然我一直和电脑打交道,我想我真的需要一个新的爱好。

你为什么开始使用 Python?

从上大学用第一台开始,我就爱上了电脑。那是 1999 年,我第一次用电脑的时候 21 岁。因此,你可以想象,我作为一名开发人员的职业生涯与美国或任何其他发达国家的传统编程生涯截然不同。

在大学里,我用基于 Object Pascal 编程语言的 Delphi ,为我的编程课构建了一些应用。那个时候我试着学习 C/C++,但是由于我没有学习 CS,我没有足够的时间学习用这些语言编程。

回到 2010 年,我第一次发现了 Linux (Ubuntu 10.04)。对我来说,这是一个惊人的发现。我学到了很多,随着时间的推移,我完全把 Windows 从我的机器上移除了。2013 年,我开始使用 Bash 来创建脚本和自动化事情。这对我来说真的很有趣,我意识到我完全喜欢编程。

此时,我决定学习另一种编程语言。我试着学习 Java,但是它对我来说太复杂了,所以我放弃了。然后一个来自古巴自由软件社区的朋友给了我一些 Python 书籍和教程,我开始阅读它们。Python 是如此容易学习和理解,以至于我从未回头。那是 2014 年的夏天。

你还知道哪些编程语言,你最喜欢哪一种?

基本上,我认为我只知道 Python 的基础。深入学习一门编程语言会花费很多时间,如果你同时在学习编程的基础知识...那你就有很多工作要做。所以,我可以说 Python 是我最喜欢的,也是我唯一的编程语言。

你现在在做什么项目?

我现在最重要的项目是为真正的 Python 编写技术内容。基本上,我写关于不同 Python 主题的教程来帮助人们学习如何使用这种语言。

我的 GitHub 账户上还有一些未完成的开源项目,但我并不认为这些项目有多重要。这些项目中的大部分只是我为了学习 Python 中的新事物而进行的实验。

哪些 Python 库是你最喜欢的(核心或第三方)?

在标准库中,我经常使用 collections、functools、pathlib、sqlite3、csv、argparse、itertools 等等。

对于第三方库,我使用 PyQt5 来构建 GUI 应用程序。我还使用 pytest 来编写和运行我的测试。我觉得 Python 的生态系统就是这么神奇,你有 DjangoFlaskFastAPIrequests美汤熊猫NumPy 等等。这只是为你现在正在做的工作选择正确的工具的问题。

你是如何开始学习真正的 Python 的?

回到 2018 年,我是 Real Python 的定期读者,因为他们的内容质量很好。从我第一次访问开始,我就非常喜欢这个网站。我加入了 Real Python 时事通讯,通过我的电子邮件了解他们的最新内容。

2018 年 11 月,我拿到了一期简讯。我真的不知道为什么,但我从头到尾读了那封邮件。在邮件的最后,我读到丹·巴德正在寻找有才华的作者加入真正的 Python 团队,我立即申请了。我不得不说,我一直认为他们不会雇用我,但我没有什么可失去的。

那时,我有了一个关于 Python 的个人博客,所以我提供了一些链接到那个博客上的文章,作为写作样本。博客是用西班牙语写的。幸运的是,Real Python 的执行编辑 Joanna Jablonski 曾经做过翻译工作,知道如何阅读西班牙语。

几天后,我收到乔安娜的一封电子邮件,邀请我为他们写一篇试验性的文章。如果他们喜欢这篇文章,他们就会发表它,我就会有一份新的自由职业。

我写了一篇名为如何运行你的 Python 脚本的文章,他们接受了。文章发表于 2019 年 2 月 18 日。之后,我继续定期为他们写文章。在这次采访的时候,我已经用真正的 Python 发表了 15 篇文章,我很高兴成为团队的一员。

我要感谢 Dan、Joanna 和其他真正的 Python 团队成员。他们真的很棒,和他们一起工作总是很愉快。

作为一个教程作者,你学到的前三件事是什么?

作为一名教程作者,我了解到:

  • 写教程很难,也很有挑战性,但是很值得
  • 通过写教程和尝试教别人,你会学到很多东西
  • 当你写作的时候,试着深入主题,你的读者会喜欢的

你还有什么想说的吗?

是的,我想主要对自学成才的开发人员和来自不同职业或背景的人说几句话。

我之前说过,我是一个自学成才的 Python 开发者。我现在 42 岁,六年前开始学习 Python。我 21 岁的时候看到了第一台电脑,35 岁的时候接入了互联网。这一切背后的寓意是,如果你真的喜欢编程,那么我相信你会找到继续学习的方法。

感谢你接受采访,Leodanis!

本周 PyDev:莱昂纳多·乔尔达尼

原文:https://www.blog.pythonlibrary.org/2022/02/21/pydev-of-the-week-leonardo-giordani/

本周我们欢迎莱昂纳多·乔尔达尼( @tw_lgiordani )成为我们本周的 PyDev!莱昂纳多是 Python 中的清洁架构的作者。莱昂纳多还在他的网站上写了很多文章。

Leonardo Giordani

PyCon UK 2019 在英国威尔士卡迪夫市政厅举行。第二天,2019 年 9 月 14 日。马克·霍金斯的图片/合成图片。

让我们花点时间来更好地了解达芬奇吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是意大利人,从 2016 年开始在英国生活工作。我在特塞罗长大,这是多洛米特山脉的一个小村庄,那里是世界上最美丽的地方之一,当我搬家时,我在那里留下了一片心。说到搬家,1996 年我去了米兰学习电信工程,并在那里生活了 19 年。获得学位后,我在一家遥感公司工作(雷达卫星!)然后我搬到了伦敦,加入了 WeGotPOP,它正在做一项令人印象深刻的工作,帮助电影制作拥抱数字世界。

我一直在现在被称为 DevOps 的领域工作(回到被简单定义为“杂工开发者”的时代),部分是后端开发者,部分是围绕电缆和机架以及与防火墙斗争。我最近开始承包一个项目,为伦敦的 DevOps 组织一个名为 The Jump 的学校,该项目将于 4 月开始。

由于编程是我最大的爱好之一,我也需要专注于与计算机无关的事情,所以我喜欢画微缩模型、玩棋盘游戏、阅读(主要是幻想和科幻小说)、弹吉他。当我有机会拜访我的父母时,我喜欢花时间在树林和山上徒步旅行。

我是一个不知悔改的爱猫人士,你会发现我的作品里到处都是猫。图片,名字,笑话。

Why did you start using Python?

When I started working for the remote sensing company in 2002, together with a friend of mine, we found that their data processing chain was made of several C number-crunching tools glued together with rough bash scripts and a lot of manual work. So we undertook the task of making that a truly automated process. At the time Python (version 2.2) was mostly advertised as a scripting language, and I knew it a bit, so we decided to use that. While initially we just used it to run external programs and to move around files, in time we added image and data manipulation in Python, so the whole processing chain eventually became a C/Python hybrid.

By the time I moved to London in 2016 Python was already long established in other fields like web programming and data science, but my current work with the language is still mostly connected with automation, CI pipelines, and scripting, together with bash.

What other programming languages do you know and which is your favorite?

I already mentioned C and bash (even though the latter transcends the definitions of language a bit). I actually started off with BASIC on a ZX Spectrum and with Pascal, but if we talk about modern languages I can also code in Scala, in JavaScript and Rust. My knowledge of the last three is embarrassingly low, mostly because I never used them in a real production context. I studied them, but I can't consider myself a true developer when using them.

I didn't mention my two favourite languages, though, which are Assembly and Lisp. Again, unfortunately I had limited chances to use them in a production environment, but I would gladly spend my days working with them. When I was young(er, cough) I was fascinated by the demoscene; I loved and still love to deal with the low-level problems of bits and bytes, CPU cycles counting, and memory addresses. I wasn't a lucky owner of an Amiga, but you could learn a lot on PCs as well, even though the Intel architecture is far from being a masterpiece. This is why I love Assembly, because it gives you access the deepest level of the machine. Well, until you enter the rabbit hole of transistors and friends, that is.

Lisp is a different beast. I am terribly attracted by language design and paradigms, and I love spending time investigating such things, for example comparing the implementation of the object-oriented paradigm of two different languages. So, I was naturally blown away when I first met Lisp because of the identity between data and code (homoiconicity) and other features which are still unparalleled in the software world. I worked a bit with Clojure, which I think is a good language, but never in a professional context.

Now, I feel a bit like a caveman trying to sell flint axes to a spaceman, but I think those languages that I discovered 30 years ago can still be very useful to learn. If not for beginners (better focus on Python and JavaScript), definitely for mid-level developer. As Clojure and WebAssembly (and many others) demonstrate, good ideas never die, and the concepts learned in one context will come back unexpectedly in another, possible completely different, case. This last sentence is possibly the best recap of my career so far 🙂

What projects are you working on now?

I'm preparing the DevOps bootcamp, which absorbed me for the last months while I work part-time as a Platform Engineer and DevOps. Preparing the lessons I'm revisiting almost everything I know on the subject, from CPU architecture to AWS services, passing through networking, operating systems, cryptography, and several other topics. I'm preparing a lot of slides and practical exercises, and writing a lot of notes, and I do not exclude those will become something more than just bullet point lists in the future.

Speaking of writing, I publish some technical thoughts and investigations on my blog The Digital Cat. I do not publish very often, but I like to think that what I publish is fresh. It's definitely not clickbait stuff, at least judging from the low number of clicks 🙂 Jokes aside, I write posts when I find something that attracts my attention and that I want to learn. Recently, for example, I realised that SSH keys using ed25519 are not in the standard PEM format and spent quite a lot of time analysing it down to the tiniest detail, and I found there was almost no information on the subject other than the comments in the source code. I'm proud of what I write, it's useful to me (I often go back to read my posts when I do not remember something), and I'm happy if it can be useful to others. To be clear, I admire who is extremely productive with their blogs like you, Rodrigo Serrão or many other great authors, but I am a slow thinker, and an even slower writer 😉

Last year I've been busy with Mau, a markup language written in Python and inspired by Markdown and AsciiDoc, but I will discuss it more in depth in one of the following answers.

Which Python libraries are your favorite (core or 3rd party)?

Given what I said before, it should not be a surprise I'm a big fan of some modules of the standard library that are related to metaprogramming and to scripting: itertools, logging, re, functools, dataclasses. I generally find such modules to be very elegant and to express a lot what Python is. I might go on, however: abc, contextlib, collections, they are all amazing!

Outside the standard library I have to mention pytest, which radically changed my way of writing code. Well, that was actually TDD, but pytest makes TDD almost a perfect experience.

How did you decide to write a book about Python?

Well, that's an interesting story. As I say in the introduction of the book, a colleague of mine introduced me to the concept of the Clean Architecture, and also to proper TDD and other methodologies. I was intrigued, so I started investigating and studying. I'm not a big fan of design books because I think many time they get too abstract, but I endured a couple of them and I kept the useful parts, and the whole picture started to take shape and make sense. As I always do when I try to learn something better, I started writing a post about that. Writing helps me to focus and to avoid leaving dark corners in the subject matter, because when you explain something you can't cheat (or at least you shouldn't).

So, I started writing this post on my blog with a tiny example of the Clean Architecture in Python. As often happens, the post grew in time, while I was adding corrections and expanding some parts, up to the point I felt it was too big. So, I planned to split it into several posts, but I wasn't convinced. My experience is that people do not like multi-part posts that much, and I overall felt like I needed a proper space to discuss the topic, without the constraints of being part of a series on a blog.

So, I started looking around if it was possible to create something different, and at the time I bumped into a post about self-publishing (I do not remember which one, unfortunately) which led me to try that route. It all started as a side project, and I never thought of making that my main job, and self-publishing could give me all the time and space I needed, away from publisher's deadlines.

Indeed, I wrote the book mostly on the bus while going to the office or going back home in the evening, but with a very relaxed pace. When I published it on Christmas day 2018 and advertised it on Reddit, I was lucky enough to get one of the magical moments when hundreds of people see your post and start liking it, it gains momentum and spikes. The book was free, but several people decided to donate some money and after a month I had enough money to pay a lifetime subscription on Leanpub, which is great!

After that I got an impressive feedback by several readers, some questions and corrections on the technical content, and many from the linguistic point of view (so many typos!). It was a great experience to see people willing to spend time opening an issue on GitHub to say thanks and to point out that I misspelled a word. I really felt the appreciation of my work.

When the major typos and problems were ironed out I started collecting my personal ideas and advice from readers and begun to work on the second edition, and in the meanwhile I was planning to publish the book in HTML form on the web. I wanted it to be accessible and somehow searchable, and since these days I prefer HTML content over PDF I projected this on my whole audience 😉 This led to www.thedigitalcatbooks.com where I eventually published it and will publish other books in the future (or at least this is the plan).

What challenges did you face as an author and how did you overcome them?

The main challenge was (and still is) linguistic. I know my mother tongue (Italian) pretty well, and I know I can express myself clearly and with different registers. In particular, I love to pick the right expression or idiom to highlight a specific point, or maybe to crack small jokes to make some concepts less heavy to digest. When I write in English (and foreign languages in general) I'm always worried about the clarity of the output, and that leads to long trips between vocabularies and websites. In time, I learned partially to be more confident and partially to shrug it off, but that's still my main challenge. For the records, I looked up "shrug off" after I wrote it. I'm hopeless 🙂

From the point of view of the content I have to say that the small example that I use in the book works well, so I didn't have big challenges. On the contrary, I was surprised by how well the whole process was flowing once I started it. You might say that the book sold itself to me while I was writing it. However, after I published it some readers found bugs (as it's natural), and while fixing them wasn't a big deal, keeping the book and the code in sync was. In particular, I decided to tag Git commits so that it's simpler for a reader to see the full code of the project at a certain point, and I mention the tags in the book. This is all great until someone finds a mistake or a bug in one of the earliest commits (which happened several times) and you have to rebase/cherry-pick/merge the whole history on top of that fix, and tag all of them again. So far I haven't found a good and safe way to automate it, any advice on this is more than welcome!

As for the tools, I had a couple of false starts with Pandoc and other systems. They are good, and many authors use them successfully, but they didn't suit my needs. The initial version of the book came from a post written in Markdown, which I love, so I wanted to keep that simplicity, and I eventually landed at Leanpub, which offered me a platform that worked out of the box with a Markdown dialect (Markua).

Leanpub's PDF rendering is great, and the output is beautiful, but to publish the book on the web I wanted to create HTML pages from the same source material. In addition, I wanted to be able to use boxes with warnings and insights like the ones that I saw on books (for example the ones published by O'Reilly), and I started dreaming of features like automating the import of code snippets from Git commits and things like that. Long story short, I ended up writing my own markup language, Mau, which leverages Jinja templates to render its output. I think it's a great concept, and while it has a lot of possible improvements I am already using it for my blog and for the book. Mau can be transformed into Markua, which makes it possible to publish on LeanPub, and from the same source code I can create the HTML output for the website The Digital Cat Books, where I also published the manual of the markup language, The Mau Book.

Overall Mau was my biggest personal project so far, and while I'm basically the only user at the moment I'm so happy about it. The day I saw my own markup language work and render its first HTML is one of the best in my whole career as a software developer!

Is there anything else you’d like to say?

I want to thank all the people who work for coding communities, starting from the Python one. In particular I'd like to thank all my friends who work to organise and run PyCon Italia (you interviewed my friends Patrick Arminio and Alessia Marcolini previously in this series). Despite my efforts, I really struggle to focus on conferences and I always end up missing them or not being a really active part of them. I love to think that my contribution is more behind the scenes, but I want to take the opportunity to praise their effort and sacrifices!

Thanks for doing the interview, Leonardo!

本周 PyDev:莉莉·瑞安

原文:https://www.blog.pythonlibrary.org/2019/02/25/pydev-of-the-week-lilly-ryan/

本周,我们欢迎 Lilly Ryan ( @attacus_au )成为我们本周的 PyDev!莉莉是一名钢笔测试员。她是 PyCon AU 2018 和 2019 的组织者,也是一位经验丰富的演讲者。事实上,Lilly 将于今年晚些时候在 DjangoCon Europe 上发表主题演讲。你可以通过访问莉莉的网站来了解她更多的信息。让我们花一些时间来更好地了解 Lilly!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名来自澳大利亚的钢笔测试员。当我不做黑客的时候,我花时间研究谈话、烹饪、编织各种奇怪的东西,以及照看两只非常可爱的灵缇。

我之前是一名软件开发人员、一名 QA、一名英语教师和一名中世纪历史学家。我的正规教育都是中世纪历史,我专攻 14 世纪的审问手册。在了解到 Linux 的存在后,我开始学习更详细的技术知识,变得超级好奇,并花了很多空闲时间来学习如何在笔记本电脑上安装它和调试桌面安装怪癖。

你为什么开始使用 Python?

当我开始探索技术领域的职业生涯时,我偶然发现了一个免费的 Python 入门研讨会,该研讨会是由我家乡城市的 OpenTechSchool 举办的,于是我就去了。我想如果我能学会拉丁语,我就能学会 Python,事实证明这是真的。Python 是我第一次正式接触编程,它一直伴随着我。

在加入 infosec 领域后,寻找使用 Python 的借口变得非常容易,因为它是黑客和其他好奇者喜欢的语言,所以我经常遇到它。

在我的职业生涯中,Python 一直是我最喜欢的语言,因为它的可读性,它惊人的有用库集合,以及 Python 和 Django 社区中可爱的人们。

你还知道哪些编程语言,你最喜欢哪一种?

在我担任顾问期间,我接触过 JavaScript、Ruby、Java 和 COBOL。在所有这些工具中,我特别喜欢使用 Ruby,而且我仍然有理由经常使用它,因为我的个人网站是用 Jekyll 构建的。

然而,这些天来,由于我写脚本的时间比编程的时间少,所以我的主要工具是 Python 和 bash。

你现在在做什么项目?

一段时间以来,我一直对规避面部识别技术感兴趣,这促使我开发并发展了一个主题为的会议演讲。我也一直在开发一个类似的实践工作室,它将为人们进行自己的实验提供工具。《连线英国》最近也就此采访了我:https://www . Wired . co . UK/article/avoid-face-recognition-software

我还在做一个尚未命名的项目(命名是最难的部分!)旨在让软件开发人员思考这样一个事实:最终他们所有的用户都会死亡:有效地说,如何为死亡编程。这包括收集关于富有同情心的、对死亡敏感的应用程序设计的现有资源,以及关于如何开始谈论工作中死亡的话题而不被认为是矫情的想法。我的希望是,这个项目的另一个分支将成为一种资源,让人们开始思考自己的数字遗产,如何记录他们的愿望,以及如何表达他们的意见,让科技公司在规划用户的最终注销时做得更好。

您喜欢使用哪些非 Python 开源项目?

我马上想到:

  • Jekyll 用于静态站点,正如我上面提到的;
  • 用于文本编辑的 Atom
  • KeePass 和 SyncThing 用于密码管理。

你是如何成为科技会议的演讲者的?

我一直喜欢把写作作为一种表达形式的想法,但我很难把单词写下来,因为自我设定的最后期限对我来说不起作用。我发现会议演讲是一个更好的组织和分享我的想法和研究的出口,因为演讲的最后期限是非常最终的——你要么想出一个演示文稿,要么站在观众面前无话可说!

2014 年,我向一个会议提交了我的第一份提案,当它被接受时,我惊呆了。在对我认为可能对我想谈论的话题感兴趣的会议做了更多的研究后,我写了更多的提案,并在世界各地的许多会议上结束,分享想法并让其他人和我一样对我的话题感兴趣。

我继续在会议和聚会上发言,因为我真的很喜欢这样做时遇到的人。有些会议已经在它们周围形成了优秀的社区,我从其他演讲者和与会者那里学到了很多,他们在我每次演讲后都提出了很多新的观点和想法。

你对其他想发言的人有什么建议吗?

如果你有激情谈论一个话题,那么你可能就是谈论这个话题的合适人选。

在会议上发言的第一步是向会议提交一份发言提案。即使你没有被录取,你也会学到更多关于提交过程和对演讲者的期望。如果你的提议经常被否决,考虑一下向朋友和同事征求反馈,看看你可以如何改进它。不要害怕在下一次会议召开时提交给同一个会议。

当我演讲的时候,我有很多对我有用的想法,但是对我有用的不一定对你有用。我认识许多优秀的演讲者,他们用各种不同的方式准备和发表他们的演讲。尝试你的过程,直到你找到既能让你在舞台上感到舒适,又能以观众都能理解的方式给他们提供所需信息的东西。

关于公开演讲的最佳信息库是由 VM Brasseur 创建的,你可以在这里找到它。

莉莉,谢谢你接受采访

本周 PyDev:丽莎·罗奇

原文:https://www.blog.pythonlibrary.org/2017/01/30/pydev-of-the-week-lisa-roach/

本周我们欢迎丽莎·罗奇成为我们的本周 PyDev!Lisa 是 Python 3.6 的一部分,PEP 526 -变量注释语法的作者之一。你可以在 Github 上查看 Lisa 感兴趣的自由/开源软件项目。让我们花点时间让你更好地了解 Lisa!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我来自俄亥俄州的克利夫兰,在俄亥俄大学上学。2014 年毕业后,我搬到了硅谷,在思科工作,在那里我做了一些关于网络设备和 Python 的有趣工作。现在,我专注于开发 Python 应用程序,这些应用程序可以在我们的路由器和交换机之上的容器上运行。应用程序通常会对设备进行某种形式的自动化,尽管我的上一个项目是定制肋骨注射。为了娱乐,我喜欢在周末徒步旅行和骑自行车,我喜欢在下班后玩一些电子游戏放松一下。我现在要去的是辐射 4。

你为什么开始使用 Python?

我开始使用 Python 是因为它是最受支持的网络设备开发语言,这也是我的工作。许多网络后端代码是用 C 编写的,但是构建在网络设备上运行的应用程序或使网络设备自动化通常是用 Python 完成的。

你还知道哪些编程语言,你最喜欢哪一种?
我在大学学的是 C++,实习期间做过 C#。在过去的一年半时间里,我一直是一名 Python 开发人员,它已经很快成为我最喜欢的语言!

你现在在做什么项目?

我一直在为 CPython 后端做贡献,尽管在那里我还有很多东西要学。我也开始参与一个名为 ExaBGP 的非常酷的项目,这是一个基于 Python 的 BGP“瑞士军刀”。现在,ExaBGP 没有 FIB 操作功能,所以我希望添加一种方法,将 BGP 路由注入 Linux FIB 表。任何对基于 Python 的 BGP 实现感兴趣的人都应该去看看!

哪些 Python 库是你最喜欢的(核心或第三方)?

我认为 Python 集合模块非常棒,而且使用不足(包括我自己!).对于第三方我真的很喜欢 Scapy,玩生成和发送包很有趣,或者至少对我来说很有趣:)。我特别喜欢创建、添加和删除标签的能力,这有助于我对 MPLS 和分段路由的理解。

作为一门编程语言,你认为 Python 将何去何从?

我认为 Python 将在数据科学和网络领域继续流行,这将鼓励专注于这些领域的 Python 库的开发。此外,在 Python 3.6 中,在 async.io 上所做的令人印象深刻的工作,以及各种速度和内存增强,将有望鼓励 Python 2 用户切换到 Python 3 是值得冒险的。我希望在未来看到 Python 的移动支持,所以我正在密切关注 Beeware 项目。

你对当前的 Python 程序员市场有什么看法?
Python 程序员的市场正在增长。我听说越来越多的公司完全用 Python 开发软件,因此具有各种编程经验(前端、后端、数据操作等)的 Python 开发人员可以找到工作。即使一个公司不仅仅是一个 Python 商店,Python 已经进入了如此多的软件系统,充当了应用程序之间的粘合剂,以至于它作为一种技能的有用性只会越来越大。

你还有什么想说的吗?

我想感谢 Mike 将我列入本周 PyDev,感谢 Python 社区作为一个整体提供了一个如此热情友好的地方。我鼓励任何有兴趣更多参与社区的人通过参加 PyCon 和您当地的 Python 聚会来参与进来!

非常感谢你接受采访!

本周 PyDev:Lorena Mesa

原文:https://www.blog.pythonlibrary.org/2019/01/28/pydev-of-the-week-lorena-mesa/

本周我们欢迎 Lorena Mesa(@ loooorenanicole)成为我们本周的 PyDev!Lorena 是 PyLadies Chicago group 的组织者,也是 Python 软件基金会的董事。你可以在她的博客或者通过她的 Github 页面查看她正在做的一些事情。让我们花一点时间来更好地了解她!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

嗯...有人告诉我,我有点不拘一格。让我们从基础开始,在我的日常工作中,我是 GitHub 软件智能系统团队的一名自豪的数据工程师。在我的 etc 工作时间里,我会做一些事情,比如共同组织 PyLadies Chicago,并担任 Python 软件基金会的董事。

我做的有趣的事情?

  • 我是一个狂热的跑步者,已经参加了 13 次芝加哥马拉松。为什么?在你问我这个问题之前,我鼓励你读一读村上春树的“当我谈论跑步时,我谈论什么”。
  • 爵士乐、意大利迪斯科和喧闹的 20 世纪 80 年代民谣对我来说都是罪恶的快乐。意思当然是我最近一直在学萨克斯,而且学得很好。(没错,我会玩漫不经心的悄悄话)。
  • 我在学习克林贡语-https://www.kli.org/语

当我在 lorenamesa.com 的个人博客上发表关于旅游、科技和其他趣闻时,你可以找到我的随机想法。

你为什么开始使用 Python?

大约在 2008 年,我作为美国奥巴马(OFA)的工作人员开始使用 Python。那时,我正在西北大学攻读政治学学位,并在 OFA 的拉丁裔投票小组工作。作为我们外联活动的一部分,我们希望完成的一些任务包括识别并最终预测拉丁裔选民的行为模式。幸运的是,我们手头有许多技术专家,他们帮助我们思考如何才能做到这一点,考虑到我们用于外联的数据集和技术(是的,这是社交媒体的早期...推特多么新奇!)编程显然是一个合适的选择。我有统计背景,了解问题空间,在我知道之前,它正在编写我的第一个 Python“程序”来帮助我们瞄准和达到我们想要的投票人口统计。

你还知道哪些编程语言,你最喜欢哪一种?

我不是受过传统训练的计算机科学家,实际上差得远。当我决定从事工程职业时,我从社会科学研究和应用数学中走了出来,并投入了一个沉浸式编程项目。这早于我们今天看到的数据科学训练营和大师,因此它是一个教我 JavaScript、SQL(我已经知道了)和 Ruby 的全栈程序。JavaScript 成了一个快捷的朋友。JavaScript 是如此不同,有时甚至是奇怪的实体,但我喜欢它让我以不同的方式思考和解决不同的问题。也就是说,我对数据使用 JavaScript。从那以后,我爱上了函数式编程,非常喜欢 Scala。

你现在在做什么项目?

我总是有一个个人的飞行项目和一个更专业的飞行项目。

在专业方面,我一直在修补深度学习。自 2018 年 10 月加入 GitHub 以来,我一直与软件智能系统团队的机器学习团队密切合作。虽然我之前是一个数据科学团队的成员,但该团队使用的是更传统的 Python 科学堆栈,而 GitHub 我们在深度学习方面投入了大量资金。

因此,我一直在自学各种专注于深度学习的白皮书(我强烈推荐晨报和[我们喜欢的报纸](http:// https://paperswelove.org/))。这具体是什么意思?嗯,我正在尝试使用深度学习来创建一个循环神经网络,以生成一部电视剧“剧本”。如果你对此感到好奇,你可以从我的 [NorthBay Python 演讲](http:// https://2018.northbaypython.org/schedule/presentation/25/)中看到我一直在摆弄的东西。

我将通过比较和对比如何在三个流行的 Python 框架——keras、tensorflow 和 py torch——中生成电视剧脚本来扩展这个演讲。

作为一个自诩为“永远的学生”或“及时学习者”的人,我总是试图创造一些内容,让我的同龄人或我身后的人能够从整体体验上看得见。教学是达到目的的一种手段,但也是我深深投入的一件事。

现在我已经完全进入了深度学习阵营,我再次意识到这个领域中存在的知识孤岛和可访问资源的缺乏。是的,像这样的项目速度很快。AI 正在用 MOOCs 做一些令人印象深刻的事情,但并不是每个人都需要完整的课程。我正在探索一个在线社区的想法,这个社区众包资源,类似于 CodeNewbie 的风格——用于学习数据科学。我想把目标对准工程师和学术界以外的人。现在还为时尚早,但我们会看到它的结局。

最后,我继续通过推进和讨论计算机科学中伦理的必要性来引导我的行动主义。我正在和其他领先的行业专家一起评判 Mozilla 基金会负责任的计算机科学挑战赛(T1)——我将继续在这方面努力。

哪些 Python 库是你最喜欢的(核心或第三方)?

毫无疑问,数据类是最好的。作为一名数据工程师,他们让我的生活变得简单而容易,消除了样板文件,让我可以快速开始工作。按照同样的逻辑,我也非常支持由丹尼尔·格林菲尔德和奥黛丽·罗伊·格林菲尔德等人发起的烹饪大赛。

我最近在瑞典的 PyCon 上看到了 Diego Moreda Rodriguez 关于开源 Python 量子计算库的演讲,我内心的物理书呆子对此非常感兴趣。

你是怎么和皮拉迪斯扯上关系的?

我的家乡芝加哥有一个非常健康和活跃的 Python 用户组(简称 ChiPy)。然而,当我开始走上工程之路时,我发现 ChiPy 遗漏了一些非常重要的东西,包括:初学者友好的内容和用户组中任何看起来像我的人。补充一下,ChiPy 的月度会议开始得很晚,这对我来说不切实际或不太容易。

我寻找一个反映我的核心价值观的群体,比如易访问性、多样性和包容性,这使我找到了 PyPi 上的“pip install pyladies”文档。一封邮件之后,我联系了皮拉迪斯·埃丝特和林恩,并于 2013 年底在芝加哥开始了一个分会!

在芝加哥开始一个章节是非常令人羞愧的,因为我很快了解到其他 Python 团体是如何支持我们的工作的,但也了解到一些活跃在芝加哥的人们根本没有意识到其中的一些不平等。作为组织者,我们总是在学习和倾听,以皮拉迪斯芝加哥公司去年受邀就新的 ChiPy 行为准则提供意见和反馈的经历为例。

对于那些想创办皮拉迪斯或 DjangoGirls 地方分会的人,你有什么建议吗?

举手问个问题,任何问题!或者直接问问题,忘记举手!

Pythonistas 愿意在我的旅程中帮助我,无论是开始一个团队的新篇章,还是加入 Python 软件基金会委员会,我都感到非常谦卑。Python 社区在我看来是 Python 最了不起的地方,用吧!

为了说到做到,我总是很乐意和人们谈论他们的工作、问题等等。你可以给我发电子邮件,地址是lorena@python.org,询问任何关于 Python 的问题!

你还有什么想说的吗?

因为我不确定这将在何时发布,所以在此祝你 2019-Pe ' vIl mu ' qad mey 硕果累累!

🖖

感谢您接受采访!

本周的 PyDev:可爱的 ricel Banquil

原文:https://www.blog.pythonlibrary.org/2018/08/13/pydev-of-the-week-lovely-ricel-banquil/

本周,我们欢迎可爱的 ricel Banquil(又名 Banx)成为我们本周的 PyDev。Banx 的职业是测试员,最近在泰国 PyCon 上做了一次演讲。让我们花些时间更好地了解可爱吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

嗨!我叫 Banx,是菲律宾一家初创公司的软件 QA 工程师。

我是一个狂热的爱猫人士,我最喜欢的作家是阿加莎·克里斯蒂(侦探小说!!!还有赫丘里·波罗的小胡子:p),尽管芝加哥公牛队很烂,我还是会追随他们,我喜欢环游世界,我的职业是护士。

是的,你没看错。我在大学里从事护理工作,获得了护士执业执照(但我从未获得过)。现在我编码和寻找 bug,我喜欢它的每一分钟。

你为什么开始使用 Python?

我开始使用 Python,因为它似乎是一种很好的学习第一语言,而且它是我们团队正在使用的语言之一,这意味着我可以获得导师的指导,他们可以在我的代码糟糕时告诉我。🙂

你还知道哪些编程语言,你最喜欢哪一种?

我知道一点 Javascript,但还没有真正完全钻研它。目前我坚持使用 Python,但我肯定会在年底前继续学习 Javascript。

你现在在做什么项目?

我目前正在编写测试,全部使用 Python 和 pytest 插件。此外,我正在努力用 Python 和 Django 建立自己的博客。(我真的很喜欢 Python 不是吗?)

哪些 Python 库是你最喜欢的(核心或第三方)?

selenium 库是我的第一个爱好,出于一些奇怪的原因,我真的很喜欢 Requests 库。我也不确定为什么:p

你还有什么想说的吗?

我喜欢 Python 的原因之一也是因为 Python 社区,我觉得这个社区整体上很温暖,很支持。我参加过几次 Python 会议,从来没有觉得自己是局外人。有时,我会与所谓的“冒名顶替综合征”作斗争,这是因为我的背景与技术相去甚远,但后来我看到我的同事和 Python 社区,他们都非常支持和接受我,我的疑虑减少了,我对自己在技术行业的角色感到更加坚定和安全。

Banx,谢谢你接受采访!

本周 PyDev:卢西亚诺·拉马尔霍

原文:https://www.blog.pythonlibrary.org/2014/11/03/pydev-of-the-week-luciano-ramalho/

本周的 PyDev 是卢西亚诺·拉马尔霍,他是即将出版的《流畅的 Python》一书的作者。他很友好,花了几分钟时间与我交谈。让我们看看他要说什么。

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我在 1995 年成为巴西第一家大型新闻门户网站 Brasil Online (BOL)的 CTO,没有学位。我用计算器(TI-58)自学编程,当时微型计算机在巴西还很少见而且非常昂贵(20 世纪 70 年代末)。我开始学了一些不同的专业(数学、经济学、哲学),但随着计算机变得越来越普遍,我的程序员生涯开始起步,我多次从大学辍学。后来,在第一次网络浪潮中,我成立了一家公司,专门为新闻机构构建定制的 CMS。该公司是网络泡沫破裂的受害者,然后我终于回到了大学并获得了图书馆和信息科学学位,因为我在构建大型门户网站时对信息架构产生了兴趣,而 LIS 是信息架构的基础所在。

作为业余爱好,我帮助运行 Garoa Hacker Clube,一个巴西的黑客空间。我也是棋盘游戏的收藏家和发明者,也是易经的学生。我不太喜欢骑自行车,但我喜欢在我的城市圣保罗骑自行车——我住的西区很好,大部分地方都很平坦。

你为什么开始使用 Python?

在 BOL,我们尝试了几种服务器端 web 编程的语言,但是在 Java-EE 出现之前(那是 1995-1996 年),我们主要使用 Perl,一点 PHP/FI,甚至一些 Java。我对这些选择都不满意,所以当我离开去创建自己的公司时,我做了大量的研究并发现了 Python。那是 1998 年。到那年年底,我已经用 Python 部署了我的第一个新闻门户,并且我被深深地吸引住了。我用 Zope 作为框架。

你还知道哪些编程语言,你最喜欢哪一种?

我一直喜欢尝试新的语言,但是 Python 非常适合我的大脑,以至于在我开始使用它之后,我已经不像以前那样四处看看了。在 Python 之前,Perl 是我最喜欢的语言,在那之前,我是 Turbo Pascal 的超级粉丝。我花了很多时间玩 Smalltalk,我喜欢它,但我从来没有用它建立过任何真实的东西。在我开始使用 Python 之后,我学习最多的语言是 Ruby 和 LISP (Scheme 和 Common Lisp)。我也试着了解 Java。最近我对 Clojure、Go 和 Elixir 非常感兴趣,但是在我开始写我的书《流利的 Python》之后,我又 100%地专注于 Python 了。在我 2015 年完成这本书之后,我计划认真地钻研后三者之一。

你现在在做什么项目?

现在我 100%的时间都在研究流畅的 Python(http://shop.oreilly.com/product/0636920032519.do)。这是我的第一本书,我非常喜欢写它。与我在 O'Reilly 的编辑 Meghan Blanchette 和全明星技术评论团队一起工作是一种特权。我正在使用 Atlas,O'Reilly 的图书出版平台,它基于 AsciiDoc、git、DocBook 和许多其他部分,集成得非常好。我在这里写了关于这个过程的博客:http://www.python.pro.br/ramblog/with-oreilly/

在我意识到我需要 100%的奉献来写作之前,我正在开发 Pingo ( http://pingo.io ),这是一个用于多设备 GPIO 编程的 Python 库,支持 Raspberry Pi、pcDuino、UDOO 和 Arduinos(通过 USB 远程控制)。我写完书就回去看,但不是抛弃。Pingo 的另一位核心开发人员卢卡斯·维多正在业余时间从事这项工作。

哪些 Python 库是你最喜欢的(核心或第三方)?

我爱请求,烧瓶,金字塔和 lxml。它们使用起来都很愉快,Pythonic 化且健壮——是我们开发 Pingo 的灵感来源。Tkinter 有一个老而笨拙的名声,但它非常强大,最近已经可以构建好看的 GUI 了。看一看 Tkinter 中的 Canvas 对象:它就像是一个乐高积木,可以做面向对象的 ui,用于图表或基于矢量的绘图。很厉害,水平很高。最后,在专业地使用了 Twisted 和 Tornado 之后,我希望有它们最好特性的混合,我认为 async.io 是 Python 历史上一个非常重要阶段的开始:用生成器适当地支持现代异步编程。

是什么让你决定写一本关于 Python 的书?

我从 1998 年开始使用 Python,从 1999 年开始教授它,所以写一本关于它的书的想法已经伴随我很久了。我现在这样做是因为我设法把所有必要的部分放在一起:与我欣赏的出版商的交易,能够专注于写作的财政资源,一套涵盖语言许多方面的精心打造的例子。这些例子是我在 Python.pro.br 工作的一部分,这是我与伦佐·努西泰利共同拥有的一家培训公司。自从我们在 2012 年创建 Python.pro.br 以来,我建立了大量的例子、解释和图表,并要求以书籍的形式组织起来。

如果你想看我用来教 Python 的图表、解释和例子,这里有一些例子:

当然,我的教诲的最终集锦是书😉

谁是目标受众?

我正在为那些对 Python 有所了解,但又想充分利用 Python 3 作为一种现代的、一致的、优雅的和非常高效的面向对象的语言的人编写流利的 Python。我一边写一边想:

  • 随着 Python 成为主流,程序员们被扔进了 Python 项目的深水区
  • 那些肤浅地学习 Python 的程序员——也许是在一些学术领域——但是想要专业地使用它
  • 花了大量时间在支持 Python 2 的遗留代码库上的程序员,他们想学习 Python 3 的现代习惯用法(其中许多在 Python 2.7 中也有)

你还有什么想说的吗?

作为一名 FLOSS 倡导者,我参加过围绕不同语言、数据库、平台、框架等组织的社区活动。我很荣幸成为 Python 社区的一员,在这里我们享受着友好、专业、团结与和谐的完美结合。

前一周的 PyDevs

  • 沃纳·布鲁欣
  • 浸信会二次方阵
  • 本·劳什

本周 PyDev:Luiz Gustavo·马丁斯

原文:https://www.blog.pythonlibrary.org/2022/06/27/pydev-of-the-week-luiz-gustavo-martins/

本周,我们欢迎 Luiz Gustavo·马丁斯( @gusthema )成为我们本周的 PyDev!Luiz 最近在 Twitter 上发布了很多 Python 内容,如果你喜欢学习 Python 或机器学习,应该去看看他。

让我们花些时间更好地了解 Luiz!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名 Gus,在谷歌人工智能公司担任开发者倡导者。我已经开发系统 22 年了!作为爱好,我做 Capoeira(我做这个已经+25 年了)和翻滚。我也喜欢搭乐高积木和玩电子游戏。

你为什么开始使用 Python?

我一直在研究如何让使用机器学习模型变得容易,以及如何为你的应用定制它们。你可以看到这里的和这里的

哪些 Python 库是你最喜欢的(核心或第三方)?

TensorFlow!!!!但是当然:NumPy,Pandas,matplotlib。我也喜欢内置库的集合

你是如何决定涉足内容创作的?

作为一名开发者拥护者,这是我想要改进的地方。我已经写了博客和视频,但我想增加我在社交上的影响力,这就是我现在活跃的原因

你发现你的追随者难以理解的前三件事是什么?

这有所不同,但人们喜欢的内容是编写 Python 代码时的最佳实践,如何有效地使用 Pandas,以及如何在他们的应用程序中使用 ML

你还有什么想说的吗?

Python 很棒,如果你想从机器学习的角度看一些日常内容,只要在 Twitter 上关注我就可以了

感谢你接受采访,Luiz!

本周 PyDev:Lukasz Langa

原文:https://www.blog.pythonlibrary.org/2017/02/13/pydev-of-the-week-lukasz-langa/

本周我们欢迎 ukasz Langa ( @llanga )成为我们本周的 PyDev!ukasz 是 PEP 443 -单调度通用函数的作者。他还写了一个有趣的博客,尽管它不仅仅是一个编程博客。你可以在 Github 上看到 ukasz 在做什么。让我们花一些时间来更好地了解他!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我的名字是 ukasz,这是 Unicode 快乐的无尽源泉。我从 2010 年开始是 Python 的提交者,最初是 configparser 的维护者,现在从事类型提示方面的工作。我喜欢模拟合成器,自行车,和辐射游戏系列。在我空闲的时候,我正在帮助脸书拥抱 Python 3。

你为什么开始使用 Python?

这有点尴尬。那是 2004 年的秋天,我正在波兰的波兹南理工大学学习计算科学。我学的一些课程有困难,即线性代数。一个朋友给我看了一些他用 Ruby 写的脚本和一些线性代数库,用来检查他在解决家庭作业时的结果。我非常需要一些保证,所以对此我很兴奋。遗憾的是,出于某种原因,Ruby 当时拒绝在我的 Windows XP 系统上安装。

由于第二天就要进行测试,我开始寻找替代方案。我在谷歌上输入“ruby alternative ”,就这样找到了 Python。这安装干净,我很快找到了一个功能 linalg 库的替代品。我不记得那是什么了,那是在 NumPy 出现之前!不管怎样,我被迷住了。

你还知道哪些编程语言,你最喜欢哪一种?

当 Java 5 还是最新最好的时候,我已经用 Java 做了很多编程工作。这是一种非常简单的语言,既是一件好事(你可以很快上手),也是一件糟糕的事情(设计模式是必须的)。我喜欢全面的文档,我喜欢能够“一次构建,到处运行”。直到今天,我还有一些 12 年前用 NetBeans 早期版本在 Windows 系统上编写的应用程序。我仍然可以用 ant 在最新的 macOS 上很好地构建它们,并且不加修改地运行它们。有图形用户界面和声音。这是非常整洁的。

还有一种 C 语言,我花了几年时间学习,但除了与 Python 接口时,我基本上不再使用它了。我倾向于将它浪漫化一点,但是当被迫实际使用它时,我惊讶于简单的操作是多么乏味。它确实是一种低级语言。

我还使用 JavaScript 和 Hack(在 HHVM 上运行的类型化和异步感知的 PHP 变种)做了一些工作。虽然后者令人惊讶地令人愉快,但我从未和 JavaScript 成为朋友。我觉得有点不幸的是,它现在成了网络语言。至于其他语言,除了 Go 和 Swift 的教程,我什么也没做过,但我确实很喜欢后者。我想将来我会更多地使用它。

你现在在做什么项目?

作为我日常工作的一部分,我正在为几个大型代码库引入类型注释。现在还为时过早,但我们正在取得良好的进展。这也使我能够为 Python 做出贡献。这些天来,我大部分时间都在维护 typeshed,这是我们为标准库和第三方库收集的外部类型注释。

由于我在工作中也负责 Python 代码林挺,我半定期地在 pyflakes、flake8 和 friends 中修复一些东西。我自己维护了两个 flake8 插件(flake8-bugbear 和 flake8-pyi),你应该会用到😉

哪些 Python 库是你最喜欢的(核心或第三方)?
我喜欢 asyncio 将异步技术带给大众的方式。它得到了很多的关注,这是理所当然的!有机会就去试试吧,很神奇的。有了原生的 async/await 语法和它在 3.5.x 版本中得到的许多改进,编程是一件乐事。也许是我身上的东欧基因,但我发现 asyncio 非常适合我的大脑。

说到标准库,pathlib 正迅速成为我最喜欢的 Python 库之一。非常优雅。我也不能推荐 mypy。使用它,它会让你更好地设计你的 API,让你的意图对读者更清晰,并且会在过程中发现 bug。

作为一门编程语言,你认为 Python 将何去何从?

有一段时间,我非常担心 Python 的状态,因为 Python 2 和 Python 3 的分裂。幸运的是,看起来我们现在达到了临界质量。在工作中,超过 16%的 Python 项目目前已经在 Python 3.5+上运行。在野外,我们现在看到所有主要的依赖项都支持 Python 3。形势正在稳步改善。我认为 2017 年我们将开始看到项目完全放弃对 Python 2 的支持。最近发布的 Python 3.6 巩固了这一点,它是 Python 迄今为止最好的版本,许多库维护者都渴望使用它。

随着 2 对 3 问题的解决,我们终于可以重新开始关于 Python 到底是什么以及它应该何去何从的讨论了。从历史上看,尽管它的性能总是受到解释和全局解释器锁的限制,但我们还是看到它被使用。尽管 Python 对类型安全、封装和元编程的松散方法如此先进,有时与魔术难以区分,但它还是完成了大型项目。很明显,它如此受欢迎还有其他原因。

在我看来,Python 的杀手锏是它允许你编程的高层次。有些人甚至称之为“可运行的伪代码”。我认为这是 Python 的独特优势,我们应该加倍努力。有人认为我们应该关注 Python“缺乏”的领域。大多数情况下,这意味着“性能”,更好的多核 CPU 利用率或更高效的字节码。有时它意味着“对企业软件的适用性”,这实际上是要求在投入生产之前找到 bug 的更简单的方法。我说,我们应该从进一步让人们享受最高级语言的角度来看待这些问题。

从这个意义上说,我希望 Python 达到新的表达水平。具体来说,asyncio 将成为高效单核和多核处理的默认选择。类型注释开始了 Python 静态分析工具的复兴,使程序员能够享受友好的语法,同时提供日益强大的测试和验证。

你对当前的 Python 程序员市场有什么看法?

我发现 Python 社区非常关注多样性问题,我希望这也能对工作场所产生长期的积极影响。我看到这方面的情况正在慢慢好转。就语言受欢迎程度而言,Python 似乎越来越受欢迎,这可能要归功于新的机器学习和人工智能框架。

你还有什么想说的吗?

从全球来看,2016 年是相当糟糕的一年。让我们确保 2017 年变得更好!

感谢您接受采访!

本周 PyDev:Luke Plant

原文:https://www.blog.pythonlibrary.org/2017/03/13/pydev-of-the-week-luke-plant/

本周我们欢迎卢克·普兰特成为本周的 PyDev。Luke 是 Django(一个非常流行的 Python web 框架)的核心开发人员之一。卢克写了一个博客,里面有很多关于姜戈的文章。如果你想看看卢克的一些贡献,那么你很快就会想去看看他的 Github 简介。让我们花几分钟时间来更好地了解 Luke!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我在英国长大,目前与妻子和儿子住在土耳其,第二个孩子也在路上!【他指的是二胎,不是二奶——老婆】。目前,我最大的“爱好”是学习土耳其语,这是一项非常艰苦的工作,但也非常值得。我也喜欢弹吉他(虽然不是很高的标准!).

关于学习编程,我主要是自学的:小时候我爸爸买的是 8 位、64K 的 Oric Atmos(这太棒了——有一本无价的高级用户手册告诉了你关于它的几乎所有东西,包括完整的 ROM 反汇编列表),后来我开始摆弄 VBA 和微软 Office。我父亲对摆弄电脑的兴趣意味着我们是我所知道的第一批经常使用电子邮件和网络的家庭之一。

我去大学学习物理/自然科学,但是在那里的第一周,我的科学生涯就被打乱了,因为我的一个朋友在我还不知道他在做什么之前就决定在我的 Windows 机器上安装 Linux。谢天谢地,他把 Windows 也留在了那里,而不是只擦我的硬盘!但这让我接触到了开源世界,重新点燃了我之前对编程的兴趣,从那以后,开源编程背后的乐趣和理念对我产生了重大影响。谢天谢地,虽然我学的是科学而不是编程,但我能够做相当数量的编程相关项目——其中一个我最近很开心用 IPython 笔记本重新实现了

你为什么开始使用 Python?

我想我开始迷上它的部分原因是因为工作上无事可做!大学毕业几年后,我开始了一份新工作,但一个招聘时间上的错误让我在最初的几个月里无事可做。我想就是从这个时候开始玩 Python 的。不久之后,我被用更好的东西取代一个破旧的 PHP 网站的需求所激励,然后发现了 Django(大约在 2005 年夏天,它才刚刚被开源)。这可能是我的第一个严肃的 Python 项目,但它仍然进展顺利。想要为 Django 做贡献意味着我必须学习更多。我在恰当的时间出现了——当项目规模更小、流动性更强的时候——并且成功地加入了 Django 的核心团队,而这只是其他更有价值的开发人员所需要的工作的一小部分!

你还知道哪些编程语言,你最喜欢哪一种?
按历史顺序——BASIC,6502 汇编,VBA,C,对 C++,Perl,PHP,Javascript,Python,Haskell 一知半解。然而,除了 Python 和 Javascript,这些我真的不擅长。我很感激我可以使用很多 Python,我很喜欢。我也非常喜欢 Haskell 和类似的语言,但通常只是在实验的层面上使用它们。

你现在在做什么项目?

我主要为我的客户 Wolf & Badger 做一个 Django 项目,并维护其他一些 Django 项目,包括 learnscripture.net 的 CCIW。这不可避免地意味着我已经创建、参与或维护了各种其他 Python/Django 项目,例如 django-functestdjango-paypal

哪些 Python 库是你最喜欢的(核心或第三方)?

我认为这是一个很难回答的问题——最好的库和工具往往是那些你几乎不会注意到的,但它们总是在那里,做着它们应该做的事情。还有一些因其卓越而脱颖而出。可能有很多我不知道的,但是我知道使用很多,或者印象非常深刻的一些是:

另一个我刚刚开始使用的是假设,它看起来设计得非常好,我想我将来会用得更多。当然还有 Django,但我认为这是理所当然的,而且公平地说,尽管有一个相当进步的弃用政策,我们向后兼容的态度意味着有相当多的代码不再是最好的了。我猜就它的年龄来说,它做得还不错!

作为一门编程语言,你认为 Python 将何去何从?

看来异步编程的故事越来越精彩了,如果它能把我们从 Node 中拯救出来,那就太好了!我预计那个领域会有很大的增长。似乎也有向静态/渐进打字发展的趋势。我对这带来的改进持怀疑态度——这可能主要是对数字密集型代码的性能提示。就我个人而言,我更感兴趣的是强静态类型系统可以带来的其他好处,而你不能仅仅通过添加一些类型提示来获得这些好处。此外,Python 的一个主要特点是,对于科学家和其他不是程序员的人来说,它非常容易理解。我认为这限制了 Python 的发展。另一方面,Python 在数据科学、天文学、生物学等领域的流行。将有望鼓励符合 Python 核心优势的方向的增长。

你对当前的 Python 程序员市场有什么看法?

从我有限的视角来看,我认为 Python 的就业市场形势良好,尤其是在高薪机会和你喜欢从事的项目方面。随着数据科学角色的爆炸式增长,以及 Python 在这方面的出色表现,我认为 Python 程序员在这方面的前景相当光明。

你还有什么想说的吗?

回想我上面的一些回答,让我想起了我读过的一篇关于运气在生活中的关键作用的文章。虽然作为一名基督徒,我不相信运气,但我确实非常幸运,我认为这是一件非常重要的事情。

本周 PyDev:林恩·鲁特

原文:https://www.blog.pythonlibrary.org/2017/12/25/pydev-of-the-week-lynn-root/

本周我们欢迎 Lynn Root ( @roguelynn )成为我们的本周 PyDev!Lynn 是 PyLadies 和 PyCon 2017 的组织者。当我今年参加 Pycon 的时候,她正在做一些司仪的工作。她也是各种 Python 会议的演讲者,包括 PyCon、EuroPython 和 DjangoCon 等等。你可以在她的网站上看到她在忙什么。让我们花些时间更好地了解她吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我有商业学士学位,主修经济和金融。但是我厌倦了 Excel 电子表格,于是开始学习编码

我在纽约的 Spotify 工作,是一名网站可靠性工程师,也就是说,我要么破坏我们的整个服务,要么在别人破坏的时候被传呼去修复。实际上,Spotify 的 SRE 意味着基础设施的后端开发,写着&维护其他人日常使用的服务。我还在内部宣传自由和开源软件,并帮助同事工程师发布他们的项目。

总的来说,工作和编程是我生活的一大部分,但除此之外,我还涉足水彩画、编织和游泳。

你为什么开始使用 Python?

我并没有真的选择使用 Python 当我出发的时候,它好像掉到了我的腿上。我在 2011 年通过哈佛的 CS50 班学习编码,那里的大部分作业都是 C 语言,可能还有一点 PHP。太可怕了。但是后来我去了一个当地的黑客马拉松,那里的人们正在写 Python。它让我大吃一惊!我能理解!

我剩下的学习都集中在 Python 上,这让我参与到了 PyLadies 和 Python 社区中。我想学习编程,不一定要学习特定的语言。但是我真的很幸运,这种语言碰巧有一个支持和包容的社区。

你还知道哪些编程语言,你最喜欢哪一种?

我和我的团队开玩笑说我们实际上是 JavaScript SREs 我们发现自己为产品编写 ui 的次数比我们希望的要多。

尽管是从哈佛学的 C & PHP,但我不会说我懂。我从目前和以前的工作中学习了 Java 和 Ruby 的一些知识。作为一名 SRE 人,我获得了比平时更多的 Bash 知识。我曾短暂接触过 Rust,这激起了我对未来副业的一些兴趣。

随着 Docker 的大量使用和 Kubernetes 的日益普及,我深入学习的下一门语言很可能是 Golang。

你现在在做什么项目?

现在,我正在领导一个项目,这个项目将有效地改变我们在 Spotify 的整个 DNS 基础设施。我们刚刚开始开发一个事件驱动的 DNS 服务,它位于云 DNS 提供商的前面,第一个是谷歌云 DNS。我对这个项目非常兴奋,因为这是我的团队从一开始就公开开发的第一个项目。

你最喜欢哪些 Python 库(核心或第三方)?

有几个是我经常使用的,我不太想,但没有它们就无法生活:pytest T1、T2 tox T3 和 T4 coverage T5、T6 attrs T7 是一个不太受欢迎的库,它让我在编写和设计软件时更加轻松。我和——斯皮——T9 在一起很开心;比什么都重要。我非常喜欢 Jupyter——我希望我有更多的机会使用它。

我和我的团队使用金字塔用于大型的基于 API 的 web 服务,使用烧瓶用于小型的 web 服务。我们已经开始使用 Click 作为我们的 CLI 工具,而不再使用 argh 只是出于偏好。我喜欢—asyncio,它是我们团队 Python 2.7 的“棺材上的钉子”(终于!!1!).

你看 Python 作为编程语言何去何从?

我认为 Python 在数据和学术界只会越来越受欢迎。但是就基础设施、web 开发和一般服务而言,我担心它会被 Golang 这样更快、类型化的语言所取代。但这并不影响它在我心中的重要性和受欢迎程度!

你看到 PyLadies 给 Python 社区带来了什么影响?

2015 年,我做了一个快速而肮脏的调查,调查皮拉迪斯的出现如何在当地层面对社区产生积极影响。如果你看到越来越多的女性在 Python 大会上发言和参加会议,我不禁认为 PyLadies 与此有关。

你还有什么想说的吗?

编写测试文档。总是使用 VPN。周末不要看你的电脑。

感谢您接受采访!

本周 PyDev:ma ciej Fijalkowski

原文:https://www.blog.pythonlibrary.org/2015/02/23/pydev-of-the-week-maciej-fijalkowski/

本周,我们欢迎 ma ciej Fijalkowski(@ fijall)成为我们本周的 PyDev。他是一名自由程序员,在 PyPy 项目上花了很多时间。我推荐看看他在 github 上的一些作品。让我们花些时间来了解一下我们的同胞皮托尼斯塔吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我来自波兰,部分是游牧民族,在南非开普敦有一个半永久的基地。被攀岩、好天气、壮丽的风景吸引到这里,后来发现了冲浪。另外,我可以在欧洲和美国的许多地方找到,尤其是博尔德,我已经做了大约 8 年的 PyPy (不知道,有点忘了),有时是空闲时间,有时是永久的。这些天我在为 PyPy 和其他公司做一些咨询,试图建立自己的公司,baroquesoftware.com。

你为什么开始使用 Python?

我想那是 21 世纪初。当时我正在使用 Perl 和 C++,我的一个朋友正在为物理系的一些编程作业而奋斗。通过快速调查,我发现 Python 似乎是“初学者”的首选语言。在教了我自己和她之后,我发现 Python 实际上不仅仅适合初学者。这就是它的开始🙂

你还知道哪些编程语言,你最喜欢哪一种?

由于工作性质,我精通 C,汇编程序(x86 和 ARM),C++,Python,RPython。我也能读/写 Java、Ruby、PHP、Ocaml、Prolog 和一堆我不太记得的其他语言。我从来没有做过一个不是一团糟的 JavaScript 项目。至于最喜欢的,那是个恶作剧问题吗?不出所料,我主要用 Python 编码,但是我的很多工作是用 RPython 完成的,它是我们用于 PyPy 的 Python 的静态子集。虽然我认为 RPython 非常适合它的位置,但我不会推荐它作为通用语言,所以我认为 Python 对我来说仍然是首选。实际上,如果我有时间的话,我有各种想法来创建一种语言/生态系统来解决 Python 的许多缺点🙂

你现在在做什么项目?

大部分是 PyPy,但更具体的是:

  • 改善 PyPy 预热时间和内存消耗
  • numpy
  • 帮助人们做各种事情,例如 IO 性能改进、分析等。

我也是 hippyvm 的主要贡献者。

哪些 Python 库是你最喜欢的(核心或第三方)?

我想我用得最多的是 py.test。到目前为止,它绝对是我们工作中必不可少的一部分。至于最喜欢的一个,由于我参与了设计,我可能有点偏见,但我真的很喜欢 cffi。根据 PyPI 的数据,一个月大概有 50 万的下载量,所以不可能只有我一个人。

非常感谢!

一周的最后 10 个 PyDevs

  • 安东·诺沃西约洛夫
  • 杰西·戴维斯
  • 伊夫林·德米罗夫
  • Andrea Gavana
  • 蒂姆·戈登
  • 道格·赫尔曼
  • 玛格丽塔·迪利奥博士
  • 马里亚诺·莱因加特
  • 巴斯卡尔·乔德里
  • 蒂姆·罗伯茨

本周 PyDev:Mahesh Venkitachalam

原文:https://www.blog.pythonlibrary.org/2015/12/21/pydev-of-the-week-mahesh-venkitachalam/

本周,我们欢迎 Mahesh Venkitachalam(@ electron utin)成为我们本周的 PyDev。他是来自 No Starch 出版社的 Python Playground:好奇程序员的极客项目的作者。马赫什有一个非常有趣的博客,里面有很多关于硬件黑客的文章。我建议去看看。

现在让我们花些时间更好地了解他。

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名材料科学工程师(IIT 孟买技术学院,宾夕法尼亚州立大学),从事软件开发,最近又从事硬件设计。我曾在旧金山湾区工作过一段时间,但现在我住在印度的班加罗尔。我涉猎过各种各样的爱好,但坚持下来的似乎是摄影、编程和电子产品修补。

你为什么开始使用 Python?

我是一名很长时间的 C++程序员。几年前,我开始使用 Python 来自动化任务。很快,我发现自己将 Python 作为所有计算方式的首选工具。在很多情况下,在用 C++编写代码之前,用 Python 尝试一个想法会更快。我重新发现了编程的乐趣。

你还知道哪些编程语言,你最喜欢哪一种?

C,C++,JavaScript,一点 Objective-C,还有 Java。对于硬件工作,我更喜欢 c。对于其他一切,我喜欢 Python。

你现在在做什么项目?

我目前正在开发开源电子硬件,为创客社区服务。我最近成功地众筹了一个叫做 snapVCC 的产品。

我也在进行我的下一个硬件项目,涉及 C++和 Python 编码。

你可以在我的网站 Electronut Labs 看到我目前的工作。

哪些 Python 库是你最喜欢的(核心或第三方)?

我认为这真的取决于你想做什么。但是就纯粹的有用性而言,numpy、scipy 和 matplotlib 将在我的列表中名列前茅。

是什么让你决定写一本关于 Python 的书?

Python 是一种拥有少量核心特性的语言,你可以很快学会。除此之外,还有广泛的内置和第三方库,这意味着您几乎可以获得任何想要做的事情的帮助。例如,如果您想解析一个网页或与串行端口对话,您可以随时使用库。我写这本书的目的是展示 Python 的传播——关于如何使用这种语言来探索各种想法。这对于最近刚学了 Python,但不确定如何运用他们的技能的人来说特别有用。

你对其他潜在作者有什么建议吗?

写作很辛苦,最好的练习方法就是写正规的博客。大多数出版商对图书提案都有明确的指导方针,遵循这些方针并清楚地表达你的想法是很重要的。写一本技术书是一条漫长而孤独的路,最终的回报是不确定的。为了体验而做,不为别的。

非常感谢!

一周的最后 10 个 PyDevs

本周 PyDev:曼努埃尔·考夫曼

原文:https://www.blog.pythonlibrary.org/2018/08/27/pydev-of-the-week-manuel-kaufmann/

本周,我们欢迎 Manuel Kaufmann(@ reydelhumo)成为我们本周的 PyDev。Manuel 在南美非常积极地推广 Python,甚至在几年前从 Python 软件基金会获得了一笔资助来帮助他。他启动了阿根廷 en Python 项目,他也为阅读文档工作。你可以查看他的网站来了解更多关于他的信息,尽管请注意大部分是西班牙语。你也可以通过 Github 看到他目前在为哪些项目做贡献。让我们花些时间来更好地了解 Manuel!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是曼纽尔·考夫曼。一位来自阿根廷恩特雷里奥斯省巴拉那的热情的 Python 开发人员。巴拉那是一个小镇(与阿根廷的其他城市相比),没有太多的科技活动。我在一个离我出生地很近的城市学习系统工程,这个城市叫圣塔菲,我不喜欢那里的教学内容和教学方式,所以在学习了几年后,我决定放弃,继续自学。当时我的英语有些问题,很难跟上最新的技术话题,也很难依赖翻译。此外,在工作中,我很难跟上长时间的讨论并用英语自然地分享想法。正因为如此,我决定回到大学,但这次是为了成为一名英语教师。经过 3 年的努力,当我得到了我想要的东西时,我放弃了,回到了我热爱的事情上:编程。

自从我在 2008 年开始我的个人博客以来,我曾经每天至少写几行。也许它们被放在抽屉里,永远不会出版。随着博客的发展,我所有的帖子都是关于技术和非常技术性的,上面有许多命令,以及做或修复非常具体的事情的步骤。时不时地,我开始在国家 Python 社区分享我活动的冒险经历,然后我意识到我想分享更多与我生活中不同方向的“身边”发生的事情相关的社会事物。我的博客涵盖了故事、旅行冒险、小说、有趣的故事和许多其他主题,我意识到越来越多的人在关注我的帖子。

我学习时的另一个爱好是练习马戏,在那里我学到了很多关于生活的东西。现在,我可以说我是一个杂耍者和一个自行车手。我曾经和一个大约 10 人的团队在舞台上表演杂耍和演奏音乐,这个团队叫做“Circulando Circo Callejero”,翻译过来就是“循环街头马戏团”的意思。我真的参与了巴拉那市的艺术运动,包括摄影、马戏、音乐等等。我怀念那些日子。

你为什么开始使用 Python?

(这个问题的答案彻底改变了我的人生轨迹。真的。稍后将详细介绍)

当我在大学学习系统工程并在技术运动中找到自己的位置时,我决定参加由该大学的一些学生组织的第一次“圣达菲 PyDay”。那天我看到一个人是怎么显示“mylist = []”创建列表的。这完全震惊了我,因为我在用 C 语言做链表和双向链表,因为这是我在大学里学的,与 Python 处理这些相比,所有的实现都太耗费大脑了。那天我下定决心,我要夜以继日地学习 Python,成为一名 Python 专家。是的,我知道,一件事是你的梦想,另一件事是你的成就🙂

你还知道哪些编程语言,你最喜欢哪一种?

我第一次接触编程语言是在编辑 AUTOEXEC 的时候。BAT 和配置。SYS for MS-DOS 和 Windows 3.x 来加快速度,并以更好的方式管理资源,这样我就可以玩不同的视频游戏,否则就不能玩了。然后,在高中,我在放学后自学 Macromedia Flash 4 时遇到了 ActionScript,并找到了一个文本框,你可以在那里写一些对我来说没有意义的东西。我找到并打印了一本关于 ActionScript 的书,我爱上了简单变量的概念。

在大学里,我学习了 C、C++、SmallTalk、Scheme、Prolog 和 Java。但是我不能说我知道如何用这些语言编程,因为我从来没有专业地使用过它们。我还自学了 Javascript,一点 PHP,Octave 来翻译一个用 Matlab 编写的分析 RF 频率的软件,一点 Ruby,ELisp,因为我是 Emacs 和大量 Python 的粉丝。老实说,比较它们对我来说很复杂,因为我对它们的了解与 Python 相比毫无关系。我喜欢 Python,我从 2006 年开始学习它,专业地使用它,在我开始职业生涯时,我尽量不去申请其他语言的工作。我要说,剩下的都是历史了。

今天,我真的很想学习其他语言,因为每当我学习一种新的语言,我就增加了一种新的思维方式或解决同一问题的不同方法。我认为这是一个拥有和使用的惊人技能。近期想去看看 Go,Rust,Haskell。

你现在在做什么项目?

目前,我没有从事任何涉及编码的个人项目。在过去的几年里,我更多地参与到社区中,并致力于开发课程、新的讲座、组织活动以及“阿根廷 Python”项目等,稍后我将对此进行更多的讨论。

我过去常常在深夜保持清醒,独自编码很长时间,喝啤酒或葡萄酒。也许我变老了,变弱了,或者变懒了,我不知道,但是现在我再也做不到了。

哪些 Python 库是你最喜欢的(核心或第三方)?

我和姜戈有着永恒的爱。我的职业生涯就是从这里开始的,从那以后,每当我阅读源代码、文档或者思考他们是如何解决一个特定的问题时,我都会不断地钦佩这些人,并说“谢谢”。另外,我认为 requests 已经改变了 Python 社区的整个生态系统。我记得那些使用 urllib 一遍又一遍犯很多错误的日子。记住如何正确使用它是非常复杂的。

除了 Django,我每天都使用 django-rest-framework 已经好几年了,我不得不说这也是我最喜欢的一个。

不确定它是否被认为是 Python 库,但是 virtualenvwrapper 是另一个我最喜欢的库。虽然我不再使用它,但几年前我把它的文档从英语翻译成了西班牙语,因为我是它的忠实粉丝。这真的改变了我与 virtualenvs 合作的方式。

你能告诉我们阿根廷的 en Python 项目以及它的全部内容吗?

Argentina en Python 是一个个人和社区项目,旨在促进 Python 作为编程语言的使用,以解决普通用户的日常问题,并以简单的方式开发强大而复杂的软件,鼓励协作学习和软件自由理念。

为了实现这个目标,我开始开着我的小型私人改装汽车(里面有一张床)环游阿根廷,联系来自大学、合作空间和文化中心等地的人们,帮助我在以前从未举办过 Python 活动的地方组织免费的 Python 相关活动(PyDay、Sprint、Meetup、Workshop、Course 等)。除了活动的技术方面,主要目标是激励小城镇的当地人组织自己的活动,通过这种方式传播大城市的知识,并为小城镇的人们带来公平的工作机会。

阿根廷 en Python 的车队由 Johanna Sanchez(化学)、漫游者(我们的车)和我(开发者)组成。

什么是 PSF Python 大使计划?

在过去的几年里(阿根廷 en Python 于 2014 年初开始),我组织了超过 60 场活动,包括在拉丁美洲超过 7 个国家举办的 20 场 Django 女孩研讨会。所有这些活动都得到了 Python 全球社区的支持,他们向我们捐款,Python 软件基金会也给予了支持:批准了我为支持这些活动而提交的所有资助提案。

由于我们所做的所有这些工作,为了组织我通过“阿根廷 Python”与 PSF 的关系,他们宣布我为“PSF 拉丁美洲 Python 大使”,在这些活动中展示 PSF 的形象,并给我一年的预算来组织这些活动。该计划于 2017 年开始试行,我们在去年讨论了如何实施该计划并向 Python 社区的其他成员开放,以及如何帮助世界其他地区组织此类活动。

一月份,我收集了我在试用程序中的所有想法和问题,并向 PSF 提交了一份文档,试图标准化该程序,并提议向整个 Python 社区开放。目前,我们仍在讨论它对社区和 PSF 本身的好处/问题。

你是如何参与姜戈女孩运动的?

在我们的旅行中,我们组织了一些活动,但是我们也参加了其他人组织的活动。一段时间后,我们意识到,在大多数情况下,参加此类活动的女性人数非常少,这引起了我们的注意,我们决定采取措施提高女性的参与度。当时,我对此做了一些研究,我没有发现任何组织良好或在世界范围内广为人知的东西(我认为到 2014 年底,Django Girls 还没有被创建或广为人知)。因此,我决定自己创建一个为期两天的课程,包含不同的介绍性主题,并在阿根廷米西奥内斯的波萨达斯组织一次活动来传递它。我把它叫做“女士用的 Python”。

老实说,虽然课程的内容很有趣,但我不是一个知道如何组织内容以及如何让课程有趣/吸引没有相关知识的参与者的老师。正因为如此,几个月后,当我试图改进我的课程时,我发现了 Django 女孩,我爱上了她们的辅导课。它太神奇了,以至于我认为它非常适合我想自己做的课程,并在课堂上使用。然后,我继续阅读,我想分享他们相同的哲学。我对姜戈女孩的了解越多,我就越想组织一次姜戈女孩研讨会。他们能够以一种我不能的方式表达所有这些想法/哲学,但他们也已经有了解决这个问题的“正确途径”。我的意思是,不仅是教程,还有教练指南,组织者手册和这么多令人惊叹的材料!

一旦我发现了姜戈女孩,我就烧掉了我的“女士 Python”课程,并开始尽可能多地组织姜戈女孩研讨会🙂

你在阅读文件时会做些什么?为什么阅读文档很重要?

对于那些不知道的人来说,“阅读文档”是一个免费的软件项目和 SaaS,它通过自动构建、版本控制和托管您的文档来简化软件文档。它有许多好的特性,可以帮助你专注于编写文档,而不用担心使用什么工具来使你的文档工作。

去年,我作为一名软件开发人员开始在 Read the Docs 工作,致力于提高文档构建的稳定性,并使业务产品(readthedocs.com)更好。我真的很喜欢这项工作,因为它是一个自由软件项目,它将我与来自世界各地的大量用户/开发者联系起来,它比我以前工作过的任何其他项目都有更多的用户/流量,这意味着非常有趣的挑战,也因为我钦佩与我一起工作的团队的所有成员。这就像一个梦想变成了现实🙂

关于第二个问题:“文档重要的”,阅读文档可以帮助人们做得更好。

你还有什么想说的吗?

对所有阅读这篇采访的人说:“请参与到社区中来。我们需要你!”

感谢您接受采访!

本周 PyDev:马克-安德烈·莱姆堡

原文:https://www.blog.pythonlibrary.org/2015/12/07/pydev-of-the-week-marc-andre-lemburg/

本周,我们欢迎马克-安德烈·莱姆堡(@马林堡)成为我们本周的 PyDev。Lemburg 先生是 Python 核心开发人员和企业家。他拥有自己的企业 eGenix,并在他的博客上写关于 Python 的文章。他是 Python 软件基金会的创始成员之一,目前是该组织的董事会成员。他还是欧洲蟒蛇协会的董事会成员。让我们花些时间去更好地了解他!

ma_lemburg

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我和妻子及两个孩子住在德国的 DÃ杜塞尔多夫,拥有一家名为eGenix.com的咨询和项目公司,喜欢创意、艺术、摄影、舞蹈、音乐和任何形式的灵感。我原本想学艺术,但后来决定转而学我的另一个爱好,物理。然而,在找到理论物理模型来处理三阶甚至二阶近似后,我转而重新关注数学,后来专攻最优化和逻辑。我的梦想是有一天重返艺术,但那一天还没有到来。

你为什么开始使用 Python?

我第一次了解 Python 是在 1994 年,当时我在 OS/2 免费软件 CD 上找到了一个发行版(Hobbes)。一天晚上,我读了 Guido 的教程,立刻就被这个想法打动了,那就是这将成为我未来几年最喜欢的编程语言。

几年后,我成为了 Python 核心开发人员,设计了最初的 Unicode 集成,为 Python 贡献了一些模块,并编写了许多 Python C 扩展和包,有些是开源的,有些是商业的或为客户开发的。

你还知道哪些编程语言,你最喜欢哪一种?

当我第一次学习 Python 时,我是一名 C 程序员,经历了 BASIC、汇编、Pascal(按此顺序)。我试过 C++,但从来没有真正喜欢过。Java 也一样。我还学了 Lisp,一些 Smalltalk,后来又学了 Javascript,开始做网站的时候。

我最喜欢的两种编程语言仍然是 Python 和 C。我用 Python 写所有的高级代码,为了速度,我转向 C。

你现在在做什么项目?

现在,我正在考虑将 mx 扩展移植到 Python 3。鉴于代码库的规模,这是一个相当具有挑战性的项目,也是我为什么没有早点开始这个探索的主要原因。最近开始移植 mxDateTime 后,我发现有些事情对于移植代码以在 Python 2 和 3 上运行的人来说肯定会变得更容易,同时保持向后兼容。

与此同时,我正在研究一些其他项目,例如实现 Windows 版本的eGenix pyron,并找到一种比序列化数据更有效地在运行 Python 的进程或线程之间共享数据的方法。

后一个项目是解决全局解释器锁问题的一种方法,这种锁阻止了充分利用当今的处理器来处理 CPU 受限的工作负载。

除了这些项目,我还继续从事其他几个与 Python 相关的技术和社区项目:http://www.malemburg.com/summary

哪些 Python 库是你最喜欢的(核心或第三方)?

我非常喜欢标准的 lib difflib 模块。它并不知名,但实现了一些相当惊人的算法来查找文本数据中的差异。

Python 的列表排序和字典实现也非常值得一读。两者都有很多值得学习和欣赏的地方——你不会经常看到如此精心制作的代码。

作为一门编程语言,你认为 Python 将何去何从?

我看到 Python 变得越来越受欢迎。考虑到它的年龄和不断增长的受欢迎程度,我认为 Python 已经达到了主流编程语言的地位。它与 C/C++、Java 和 Javascript 并列。今天,在与客户交谈时,您不必再解释 Python 是什么,这是一个好现象。

随着 Python 进入教育系统,这种趋势将会更加明显。

Python 应用程序并行执行的问题是我们必须投入一些认真思考来保持趋势的一个领域。Python 3 中的异步支持是 I/O 绑定工作负载的解决方案,但是对于 CPU 绑定工作负载,我们还没有一个好的解决方案。我看到的另一个问题是 Python 标准库的老化。我相信这将受益于一个完整的重写,使其更加一致和易于使用。

你对当前的 Python 程序员市场有什么看法?

鉴于 Python 在几个重要行业的应用,这是一个不断增长的市场:网络、大数据、科学(除此之外,参见http://brochure.getpython.info/)。

这是 Python 程序员的大好时光。

你还有什么想说的吗?

我希望我们能找到一种方法,在不破坏所有 Python C 扩展的情况下,消除或解决 Python 4 中的 GIL 限制。

Python 2 到 3 的过渡是一个痛苦的经历,并导致许多 Python 用户开始认真寻找替代品。我认为没有人会期待另一次这样的转变。

非常感谢!

一周的最后 10 个 PyDevs

本周 PyDev:马克·加西亚

原文:https://www.blog.pythonlibrary.org/2018/10/15/pydev-of-the-week-marc-garcia/

本周,我们欢迎马克·加西亚( @datapythonista )成为我们的本周 PyDev!Marc 是 Python 数据分析库 pandas 的核心开发人员。如果你想了解更多关于 Marc 的信息,你可以查看他的网站,上面有他在欧洲 PyData 和 EuroPython 上的演讲链接。

事实上,如果你感兴趣的话,这是他关于熊猫的一个演讲:

https://www.youtube.com/embed/F37fV0uFf60?feature=oembed

你也可以在 Github 上看到他参与了哪些项目。现在,让我们花些时间来了解 Marc!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我的背景是计算机工程,拥有人工智能硕士学位。我在 9 岁的时候写了我的第一个程序,没过几年我就了解了自由软件,我仍然认为这是人类最惊人的成就之一。

我从事 Python 专业工作已经超过 10 年了,今年我成为了 Python fellow。我是 pandas 的核心开发人员,几乎从我开始用 Python 编程开始,我就参与了 Python 社区。

我开始是巴塞罗那 Python meetup 的常客,当时我们的会员还不到 10 人。在 Django 达到 1.0 之前,我为它做了贡献。我是 PyData Mallorca 的创始人之一。我是一名 NumFOCUS 大使。我定期在 PyCon 和 PyData 会议上发言。我组织了伦敦 Python Sprints 小组,在那里我们指导那些想为开源 Python 项目做贡献的人。大多数人认识我是因为我领导了熊猫文档冲刺,这是去年三月的一项全球活动,大约有 500 人致力于改进熊猫文档。大约发送了 300 个拉请求,我仍然需要检查和合并其中的一些。🙂

关于业余爱好,我喜欢徒步旅行、旅游、瑜伽、打网球、跳佛罗舞、打鼓和看宝莱坞电影。我没有时间经常做这些,但希望我会在某个时候做。

你为什么开始使用 Python?

我从 2006 年开始使用 Python。当时使用 Python 的一个主要原因是它“包含电池”。不仅如此,通过使用 Python,我比使用任何其他语言都更有效率。这是我的主要原因。

另一件我从一开始就非常喜欢的事情是缩进。在发现 Python 之前不久,我不得不使用一些没有缩进的遗留 php 代码。当时我将强制缩进视为 Python 的主要资产之一。

在使用 Python 一段时间后,我很高兴 Python 吸引了顶级程序员。在 2006 年,Python 还远远不是主流语言。而且大学没教,公司也很少用,那时候的 Python 用户大多是业余时间追求卓越的热情程序员。我的感觉是,这些起源解释了为什么今天 Python 社区是最先进的之一;不仅在技术上,而且在价值观,多样性,行为准则方面...

你还知道哪些编程语言,你最喜欢哪一种?

自从我发现了 Python,我很少使用其他语言,除了一些 javaScript(用于前端)或 c。在 Python 之前,我什么都用一点,php,Java,visual basic...但我真的很高兴我已经 10 多年没有和他们一起工作了。🙂

我最喜欢的语言当然是 c 语言和 Python。我认为它的完美在于它的简单。

你现在在做什么项目?

目前,除了工作之外,我主要在研究熊猫。我主要关注文档。不仅如此,我认为这真的很有必要,而且除了我经常使用的部分之外,它还能帮助我发现图书馆的其他部分。

除了文档之外,我还致力于使 pandas 在构造基于行的数据时更高效(比如从生成器构造)。也在用 matplotlib 之外的库制作 pandas plot,比如 Bokeh。我也喜欢致力于熊猫遗产特征的贬低和移除。

哪些 Python 库是你最喜欢的(核心或第三方)?

作为一名数据科学家,pandas 和 scikit-learn 是我无法忍受的库。现在,我们认为它们是理所当然的,但不难想象,如果没有它们,任何数据科学团队的生产力会有多低。如果每次您想要使用不同的模型时,您都需要研究新的库、学习新的 API、处理错误和缺少文档,或者您只是发现对于您的数据来说实现太慢了,该怎么办?我经常说,真正进行机器学习的人是 scikit-learn 开发人员(以及生态系统中其他必需的库,numpy,pandas...).我们其余的人只做 10%的工作。

作为第三方库,Bokeh 和 Datashader 是我比较喜欢的库。他们有一个非常创新的可视化方法。我认为他们会更上一层楼。

我现在不怎么做 web 开发,但我真的很喜欢 Django(多年前我参与了它的开发)。作为一个软件和一个社区,我真的很喜欢它。

你还有什么想说的吗?

我想很多时候我们都有这样的感觉,因为我们使用的软件质量非常高,而且新的版本经常出现,所以没有必要为它做贡献。我个人认为那远远不是真的。

我的感觉是,即使 Python 拥有数千万用户,如果只有 20 或 30 个关键人物停止(在空闲时间)努力改进它(这里我指的是不同的 Python 实现和最受欢迎的库),对我们未来生产力的影响将是巨大的。

我认为更多的人应该为不同的 Python 项目做出贡献。许多公司在软件许可上节省了数千美元,并且因为开源软件而提高了他们的生产力,他们应该考虑为这些项目融资。当然,让他们的员工为他们做出贡献也是他们工作的一部分。我们认为 Python 和自由软件是理所当然的,但我不认为我们有让它可持续的公式。

我想说的另一件事是,我认为我们都希望有更有趣的闪电谈话。我有一种感觉,过去人们不太重视闪电谈话,许多疯狂的东西都出现在其中(或者以一种疯狂的方式出现了严肃而伟大的项目)。我不认为我们希望留给后代一个用闪电谈话来展示公式和代码的世界。😉

感谢您接受采访!

PyDev of the Week: Marcin Kozak

原文:https://www.blog.pythonlibrary.org/2022/10/24/pydev-of-the-week-marcin-kozak/

This week we welcome Marcin Kozak as our PyDev of the Week! Marcin maintains perftester and makepackage. You can see what else Marcin is working on over on GitHub.

Marcin Kozak

Let's spend some time getting to know Marcin better!

Can you tell us a little about yourself (hobbies, education, etc.):

I graduated in agriculture, from Warsaw University of Life Science - SGGW. My main interest was in statistical applications for agriculture in biology, and I pursued this topic in my M.Sc, Ph.D. and habilitation (in the Polish science system, it's a scientific degree over Ph.D.), and then my professorship (which is the highest scientific title in Poland, given by the president of Poland). I spent over 20 years of my academic career involved with statistics, data analysis, and data visualization across various scientific disciplines. But the truth is that I am both an interdisciplinary and a multidisciplinary researcher. I have worked on various topics related to biology, scientometrics, economy, social sciences, and academic writing. Currently, I work at the University of Information Technology and Management in Rzeszów, Poland. But academia is just one part of my career; the other is data science. I cooperate with 7N, an outsourcing company, as a senior data scientist and a Python developer. The two worlds — academia and data science — intermingle in my life, but both require the same amount of creativity; hence I find joy in pursuing both these paths, in realizing myself in both these worlds.

As for my hobbies, you can say that my life is my hobby, at least these days. For most of my life, I dreamt of living in a wooden house, close to nature and the woods, in low mountains, far from the rush and cars and people. And for eight years, I've been living in a wooden house, close to nature and the woods, in low mountains, far from the rush and cars and people. I spend much of my free time (which I don't have too much of, unfortunately) with my wife and two great kids. I also read a lot, play chess, and go to the woods with our dogs and cats. Yes, you heard it right: our cats do like walks in the woods!

Why did you start using Python?

Because I had to. It was four years ago. After I joined a project as a data scientist and an R developer, I noticed some .py files in the project's repository. The truth is (shame on me!), I didn't know what sort of extension it was. Of course, it did not take me more than a minute to learn that it was Python, but it did take me more time to accept that I had to learn Python, in a very short time, to work with these scripts, and the project called for a lot of changes to them. The project was planned for three months, so that's not much if you have to learn Python, while at the same time having a lot of other tasks to do, such as building machine-learning models, validating and tuning them, creating dashboards and the like — and all of that during a half-time project. So, I could either give up the project or continue.

I decided to continue and to learn Python. This was one of the best decisions in my career! It took me a couple of days to fall in love in Python, even though — or maybe because? — I had been using R for 16 years. The truth is, I have never really liked R as a programming language. I still consider it a great tool (for some tasks, perhaps better than Python) for exploratory data analysis and visualization, but that's it. When I found Python, I decided it's time for me to return to real programming, which I left... 24 years earlier, when I graduated from high school!

What other programming languages do you know and which is your favorite?

I started learning programming back in the early 1990s in high school, where I attended a computer-science class. My dad was a cybernetics engineer and later a programmer; he used assembly language, C, Algol and Fortran. My mum was a machine operator of Zama-41 and Odra computers. So, since my early years I knew what a computer was and what programming meant. In high school, we learned mainly Pascal, and after three difficult years, we knew it quite well. Today, however, I remember nothing at all about this language, nothing.

When I returned to programming, which was when I started my job at the Central Statistical Office of Poland back in 2003, I picked up R. I didn't have much to do at work, so I was spending full working days learning survey statistics and R. I have been using it ever since, now for almost 20 years. I used it for a lot of statistics, data analysis and data visualization, and for developing software products — but as I mentioned, I have never liked R as a programming language.

Then, in 2018, out of the blue I fell in love with Python, my heart went back to programming, and my life started to change for the better.

I quickly realized, however, that neither R nor Python enables one to understand the essence of programming. I gained some general programming knowledge back in high school, but I needed to recall it, and to learn even more. So, I decided to start learning C. I consider C a great language to learn for any developer (particularly for Python developers who do not know any other programming language), as it helps in understanding the deeper aspects of programming. And indeed, C helped me open my eyes to advanced Python.

I have never wanted to use C outside of Python extensions and Cython, so I wanted to learn yet another programming language, one that I could use in my projects. This is why I picked up Go. And, just as I fell in love with Python from the beginning, I fell in love with Go. Ever since, I like both languages equally. As part of my learning process, I wrote an open-source Go package, check. Nonetheless, after some time I decided that in the near future, I would not have too many opportunities to use Go, as I was expected to use Python and R in all my projects. Thus, since my time was limited (what an understatement!), I decided to focus on Python. Now it's my main programming language, and whenever I have some time to spare, I develop my Python skills.

Recently, I heard about the V programming language. V’s authors claim that if you know Go, you know 80% of V. So, you can say that I know V quite well — maybe 50%, 60% of it? — even though I have not used it. (Am I joking? Most likely. But it depends on interpreting the 80% claim of the authors of V.)

What projects are you working on now?

These days, I focus mainly on perftester and makepackage.

perftester is a Python package for lightweight performance testing of Python functions. You can use it for performance benchmarking and testing in terms of execution time and memory. It can be used as part of pytest, but its main role is to serve as an independent performance testing framework that is used in a similar way as pytest. I am currently working on implementing decorators that will enable the developer to profile code, but also to log profiling details of subsequent calls to the function in the production environment. This is nothing particularly novel — as writing a decorator to measure time is simple, as one can use memory_usage(), and the @profile decorator from the memory_profiler package, for in-depth profiling of memory usage. However, I want to do this to make perftester complete. The decorator-based functionality will enable developers to profile execution time and memory usage in a similar way to perftester; it can also be used to log detailed performance of each call of the decorated functions. This is quite a big coding task, but I find a lot of pleasure in this work.

I am also working on new functionality of makepackage. For the moment, you can use it to create a Python package that uses pytest for unit testing. I am going to add a new ability to create what I call a ‘mini-package’. This is a minimalistic and flat structure of a Python package, with only one module, located in the root, and with testing based on doctest. The user can later add pytest, if this is what he or she prefers. Such a minimalistic structure is a great way to create a Python package that is very simple to develop, and one that does not even have to be installed via PyPi — the module's file can be copy-pasted into a project's source folder.

Lately, I have also been spending quite some time on thinking about easycheck. It's a package I wrote with a colleague, Miko?aj Kobyli?ski, to enable a developer to make functionalized and highly customizable assertion-like checks, without the actual use of assert; if a check fails, the developer can either throw an error or issue a warning. The package offers rich functionality, but is currently too slow, so I want to improve that. I am afraid that we may have to decrease its readability and compromise its style to achieve that, but hopefully this will improve the package’s performance. We are also working on disabling all checks in an application's code, which can be helpful when deploying an application to a production environment.

As you can see, there's a lot to do, but I do not have enough time for all that, since I work on all these open-source projects during my free time. But I do it for two reasons. First, I love the open-source philosophy. I love it in science publishing, and I like it in programming languages. But secondly, at the end of the day, someone has to pay the bills, and so my involvement into open-source activities depends on many factors. In this regard, my main aim is to keep active the four open-source packages I have authored or co-authored: the three aforementioned and rounder. Even though I do have some ideas for new projects, I try to calm myself down and focus on what needs further development, rather than on creating new packages.

Who knows, maybe one day I will find the time to delve even further into open source, but unfortunately, this would require an unexpected (but highly welcomed) source of cash so that I can buy a new Ford Mustang. Nah, that's not true: I don't need to buy a new Mustang, because my 11-year old son, Tymek, promised me he would buy me one (of course, when he becomes financially independent). But that's not all. My 15-year old daughter, Tosia, did a similar thing: she promised me she would buy me an old Mustang (maybe even a 1964 model). So, as you see, my future is set, and I can now focus on my open-source activities, and I will someday become a happy owner of two Ford Mustangs.

Which Python libraries are your favorite (core or 3rd-party)?

I like quite a few Python packages, such as pytest (as I love writing tests), itertools, multiprocessing and pathos (I use parallelization a lot), and functools (I love functional programming), but I could make this list longer.

I do have, however, a favorite Python package. It helps me a lot at various stages of development, in both PoC/PoV and production projects. It's doctest. I think it's heavily underappreciated. Most Python developers know it and some use it, but I don't think it has the reputation it deserves.

I use it in various circumstances:

  • to write documentation tests in module/function/class/class method docstrings;
  • to write unit tests, in docstrings but also in dedicated files (I usually use Markdown files for doctests); such unit tests have limitations and are rather simple, but they do constitute a fantastic approach to regression testing. I think that more often than not they are much more readable than unit tests written in other frameworks (including pytest, which I really like and use in almost all my projects);
  • to write testable documentation files, including READMEs; and
  • to use in test-driven development (TDD).

Note that I distinguish two different purposes of doctest: writing documentation tests, or testable documentation; and writing unit tests. These two are not the same. When I write documentation files using doctest (usually in Markdown files), I put forth much effort to make the text, and the tests, readable. Their purpose is to explain, not to test, and doctest serves as a safeguard that the code is correct and up-to-date. But when I use doctest to write unit tests (also in Markdown files), I do not put so much effort into readability. These are unit tests, but thanks to Markdown, they can be readable so that the reader understands the essence of the tests. I can put edge cases and some boring stuff there, something I would seldom (if ever at all) put in a documentation file. You can also use the assert statements in such tests. I am also of the opinion that doctest enables one to write nice and readable integration and end-to-end tests, but such tasks are best achieved in dedicated files.

Since doctest aims for simplicity, however, it does not offer many advanced features. This is why more advanced Python documentation testing approaches have been proposed, such as byexample. I do prefer the simplicity and directness of doctest, however, and I don't think I will replace it with more advanced tools. Besides, doctest is part of the standard library, which is quite an advantage.

How did makepackage come about?

When I work on a Python app, I almost always package the code. It makes things a lot easier, even if I do not want to upload the package to PyPi. But the packaging step is not only boring, it can also be quite tricky. I wanted to make this step simpler, so I thought of using Cookiecutter, but I quickly realized that it was not the tool for me: I simply wanted to create a simple package structure, and Cookiecutter seemed to be an overkill for such a simple task. This led me to the creation of a package template. I was using it for all my projects, but frankly, after some time, I got tired of copy-pasting the template. So, I created a script for this, and life got easier. Then I thought, if I created a script to create a package, why didn’t I create a package for this? That's how I decided to package the app's code. At first, I didn't even plan to publish it in PyPi, for the simple reason that I did not believe anyone would use it. Fortunately, I quickly changed my mind and decided to publish the package, which I called makepackage.

It's quite a simple package, consisting of simple code. My main purpose was to make it as simple as possible to use. For this very reason, makepackage does not offer too much: you can package your code, with or without using a command-line interface. That's all. The API could be made richer, but this would go against the purpose of simplicity. This is why, for example, when creating a package, you cannot choose a different license type than MIT. But you can change that after creating the package, can't you? You do not include your name in the setup.py and LICENSE files; this means you need to fill in the corresponding fields in these files. Soon, however, the package will have the mini-package functionality, as I mentioned before.

makepackage can be used by beginner, intermediate and advanced Pythonistas, as it simply helps save time. However, I decided that makepackage can also help beginner and intermediate developers in another way. The package created from makepackage not only has a working structure, but also examples of pytest tests (they are parametrized and use fixtures defined in a conftest file) and docstrings with doctest tests. In addition, the resulting package's README offers some content, which will be overwritten during development. After being populated by makepackage, this README contains some relevant information on developing a package in a virtual environment, building the package and uploading it to PyPi, and the like. The information is customized, as it uses the package's name in the commands. I hope some users will find this information helpful.

Why do you enjoy writing documentation?

I see two reasons behind this.

First, I like writing. As a scientist, unlike most scientists, I really like writing articles. It is one of the things I enjoy most in my academic work.

Second, I am tired of projects that are poorly documented. I have been a part of several projects in which it was very difficult to understand anything. Sure, I agree that code should be self-standing; but code documentation and project documentation are two different things. When a project consists of five thousand lines of code and one line of documentation, I think something's wrong. If someone has spent so much time to write so much code, why no documentation? Maybe the code is not yet complete? Would you leave that big of a project undocumented?

Thus, whenever I see poor documentation that does not help me understand the project (apps, packages), I do not feel like using it at all. That's why I try to write rich documentation. I know that my documentation is often very rich, including of a long README and several docs files, so some time ago I started adding short "TL;DR" sections to package READMEs; after reading such a short section, the users can quickly learn how to use the package. If the users need to learn more, they can read the full documentation.

I consider documentation a significant part of any project. A person claiming that their code is self-standing should remember that a user would have to read the entire code to understand what can be done with it. Is that a joke? In GitHub, I have seen big packages that did not have a single line of documentation, despite thousands of lines of code. Do such authors think that we will read those thousands of lines of code to learn what we can do with the package? That's a totally crazy assumption.

Is there anything else you’d like to say?

Actually, yes. There is one thing I'd like to say to Python beginners. I noticed many of them read a lot of content available online, such as blogs. I am afraid some of them consider online resources as the main source of their Python knowledge, and I do not consider this a good learning approach for beginners, as they seldom can distinguish good from poor resources. Unfortunately, these days the net is full of bad or inaccurate information, and Python is no exception.

A funny example of such a misguided online recommendation is one saying that you should use while loops instead of for loops in order to improve performance. Had the author even checked this before writing such a recommendation? (I don't even comment on how Pythonic such code would be, with while loops everywhere.) I don't believe he did. What's even more funny is that the same author suggested, immediately after the replace-for-with-while recommendation, that to increase performance, one should use list comprehension instead of for loops. What? So, to increase performance, should I use a while loop or a list comprehension? Another ‘trick’ to improve performance I learned from the internet is to use multiple assignments in one line (based on tuple unpacking) instead of assignments in separate lines; it is enough to run simple benchmarks to see that this is far from true. These are, of course, trivial and funny examples, but they are just a drop in the ocean.

Thanks to its popularity, Python is likely one of the richest programming languages in terms of both web resources and web garbage. So, if you want to learn Python, get a good book for beginners. Return to web resources when you feel you're ready to tell good Python from bad Python.

本周 PyDev:玛丽亚·卡蜜拉·雷莫林娜·古铁雷斯

原文:https://www.blog.pythonlibrary.org/2018/06/04/pydev-of-the-week-maria-camila-remolina-gutierrez/

本周,我们欢迎玛丽亚·卡蜜拉·雷莫林娜·古铁雷斯( @holamariacamila )成为我们本周的 PyDev!上个月,Maria 最近在 PyCon USA 的新 PyCon Charlas 赛道上做了一次演讲。你可以在 Maria 的网站上了解更多关于 Maria 的信息,或者你可以查看她的 Github 简介,看看她在开源世界都做了些什么。让我们花几分钟时间更好地了解她!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我的名字是玛利亚·卡蜜拉。我是一名 23 岁的哥伦比亚人。我是一名物理学家,即将成为系统和计算工程师(我将于 2018 年 6 月毕业)。我在哥伦比亚波哥大的安第斯大学学习。到目前为止,我的主要研究领域是计算天体物理学,尤其是模拟。我对基础设施、高性能计算和安全性非常感兴趣。关于我的爱好,我喜欢陶器和陶瓷,我已经做了 1.5 年了。还有,我一直在业余时间努力学邦戈鼓。最后,我喜欢学习新的语言,特别是因为它与说这些语言的国家的文化紧密相连,所以它能让你以不同的方式发现世界。

你为什么开始使用 Python?

Python 是我的第一门编程语言。我第一次使用它是在高中四年级的一个暑期科学项目上,为了实现高斯的轨道确定方法。我和我的团队对一个近地天体进行了 3 次观测,我们想获得它的轨道参数。我们用 python 实现了所有的算法和数据处理。这也是我第一次编程,所以我喜欢 Python 让我更容易开始这方面的工作。

你还知道哪些编程语言,你最喜欢哪一种?

除了 Python,我还知道:C,C++,Java,Javascript,Kotlin 和一点点 r,夏天真的很想学 Rust。其中我最喜欢的是 Python。

你现在在做什么项目?

我即将完成本科教育,今年夏天毕业。我准备秋天在法国巴黎开始我的计算机科学硕士课程。我目前的两个主要项目是天文学研究和本科工程论文。首先,我正在以第一作者(😄)的身份发表我的第一篇论文,关于旋转的莱曼阿尔法星系的模拟。第二,我完成了一个土木工程师程序的实现,该程序创建了一个下水道系统的最低成本设计,全部使用并行计算。

哪些 Python 库是你最喜欢的(核心或第三方)?

Numpy,Scipy,Matplotlib 和熊猫!我估计我 90%的导入都是这 4 个库。它们是我数据处理、分析和绘图的基础。我已经在我所有的研究中使用它们将近 5 年了。

你是如何成为今年 PyCon Charlas 赛道的一员的?

这是一个有趣的故事。我去哥伦比亚皮肯做了一个演讲(我第一次参加皮肯)。Naomi Ceder 和 Lorena Mesa 作为主题发言人出席了会议,但也宣传了 PSF。我去了他们的摊位和他们聊天(还拿了一些贴纸!)他们在 Pycon Charlas 促销活动中散发小传单。他们真的激励我去申请并获得旅行资助。于是我照做了。我很荣幸被皮拉迪斯选中并资助。这个(巨大的)Pycon 是我经历过的最棒的经历之一!(这里有一张图片可以证明)

你从事开源工作的动机是什么?

我的动机是,世界上最大的问题之一是不平等。然而,我相信当前的计算和技术状态已经开启了一个时代,在这个时代,获取信息绝对是更容易的。现在不用交大学,连高中都不用上。你需要/想知道的一切都在你的指尖。然而,并不是所有的东西都是免费的,这没有错,这个行业给人们提供工作的方式真的很棒。但这意味着仍然有软件——真正的好软件,可以改善人们的生活——你只能通过付费来获得。所以我认为免费给予人们这些私人工具的力量,是发展我们社会的最好方式。激励我的是,区分人们的不是他们的家庭遗传,而是他们自己的个人工作和努力。开源允许这样做!

你还有什么想说的吗?

参加 Pycon 2018 向我展示了 Python 社区是多么的强大和友好。我从网上的互动中有了一个粗略的想法,但我从未想到会有这么大。我认为这是语言中最精彩的部分。它将世界各地的人们团结在一起,创造出超出我们预期的新产品。也一起成为人类。我喜欢那里有谈论精神健康或做十字绣的开放空间,甚至有一个可以玩棋盘游戏!我觉得永远不要忘记在程序员之前先做人。我相信我见过的所有的皮达尼斯都是这样的。

玛丽亚,谢谢你接受采访!

本周 PyDev:Maria Khalusova

原文:https://www.blog.pythonlibrary.org/2019/03/11/pydev-of-the-week-maria-khalusova/

本周,我们欢迎 Maria Khalusova(@ mariakalusova)成为我们本周的 PyDev!玛利亚为喷气大脑工作,并将于今年四月在 AnacondaCON 发表演讲。如果你想和她聊聊,你可以看看玛丽亚的博客。让我们花一些时间来更好地了解 Maria!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

从小到大,我喜欢两样东西——数学和书籍。我不骗你,我解数学题是为了好玩。不出所料,我继续在圣彼得堡国立大学的数学和力学系学习应用信息学,并于 2007 年毕业。这个领域实际上非常接近现代数据科学,所有的数学部分都在那里,再加上一大块计算机科学程序。我只希望我能在大学里学习 Python,而不是 Java😀可悲的是,那时像 pandas 和 scikit-learn 这样的基础包甚至还不存在。

甚至在我毕业之前,我就开始在 JetBrains 工作,最初是作为 IntelliJ IDEA 的技术作家。有趣的事实:今年六月将是我加入公司的第 13 年。我已经改变了项目、工作角色,甚至国家,但没有改变公司。

近年来,我重新发现了自己对数学、数据科学、机器学习和深度学习的热情。我温习了自己生疏的数学知识,并一直自学至今。这是一个永无止境的过程,我认为这很棒。

你为什么开始使用 Python?

一旦我意识到我想做数据科学和机器学习,语言的选择对我来说是非常明显的。当然还有 R 和 Julia,但是让我对 Python 着迷的两个主要原因是深度学习库和 Python 是一种通用语言。

你还知道哪些编程语言,你最喜欢哪一种?

我之前提到过,在大学的时候,我学过 Java,但是它从来没有完全打动过我,因为我有很多样板文件。)去写去做哪怕是一件简单的事情。我确实知道一些 R,但是我并不真的在生气的时候使用它。这些天来,我一直在关注 Kotlin,但除了玩具样品,我还没有真正用过它。我很惭愧,因为我和科特林的终极专家们走得很近。

你现在在做什么项目?

在这次采访的时候,我的主要精力集中在今年四月我将在 AnacondaCON 上发表的演讲上。该演讲将讨论机器学习模型评估指标,它们是什么以及何时选择哪一个。作为一个自学的机器学习者,这给我造成了一些困惑,我希望帮助其他人更好地直观了解这些基本指标。

对我来说,另一件大事是组织 PyData 蒙特利尔聚会。我是这方面的新手,这既令人兴奋又有点可怕😀我们的第一次 PyData 蒙特利尔聚会在各个方面都超出了我们的预期!我们有大约 70 人到场,观众对演讲者非常感兴趣。克里斯蒂安·佩罗尼发表了一个简洁、有趣且实用的演讲“引擎盖下的火炬”。我对我们得到的所有积极反馈感到不知所措,迫不及待地想举行我们的下一次聚会!

在工作中,作为一名开发者倡导者,我的主要职责是充当社区和开发团队之间的沟通桥梁:收集反馈,了解趋势,在 JetBrains 中倡导社区的需求,并帮助我们的用户成为他们所做的事情中的佼佼者。我还帮助我们的营销团队和内容创作者完成分析任务。

在我的业余时间,当我有时间的时候,我会涉猎 Kaggle 竞赛,我会为宠物机器学习项目收集数据,最近我给自己买了一个树莓派,所以现在我只需要想出一些有趣的物联网想法🙂

您喜欢使用哪些非 Python 开源项目?

非 Python?我真的没想到多少。我发现 reveal.js 非常适合生成 HTML 演示,我正在用 Jekyll 写我的基于 GitHub 的博客。在我的小项目中,我经常使用 SQLite 的 DB 浏览器。我偶尔会使用阿帕奇飞艇

你是如何开始做会议演讲的?

我作为一名与会者参加了很多会议,在某个时候,我有一个想法,我其实有一些东西可以分享。我提交了一份 CFP,被接受了,完全吓坏了,然后准备并发表了演讲。令我惊讶的是,人们不仅出现了,而且没有离开,而且他们普遍喜欢它。我喜欢这一经历本身以及之后的对话。我只是被吸引住了。

你对那些想在会议上发言的人有什么建议?

哈迪·哈里里最近写了一系列关于公共演讲的帖子,提供了大量有用的建议,我真诚地推荐阅读所有这七篇文章,它们是黄金。这是第一个。

你做演讲的动机是什么?

想象一下,教一个朋友一些你刚刚学到的东西,或者你可能知道并练习了多年的东西,但是一些你感到兴奋的东西,一些有价值的东西,一些你认为对那个朋友正在做的事情有帮助或者打开新的可能性的东西。

现在,做一个演讲。当然,公开演讲比和朋友交谈需要更多的准备工作。你需要做足功课,研究话题的各个角度,确保你的内容连贯而不乏味,你的信息清晰,时机正确,等等。但是!当你准备的时候,你每次都会学到一些新的东西——也许是关于你的主题的不同观点,替代技术及其利弊,相关的科学研究,做更好的演示的技巧,或者其他什么。你还可以教育和激励社区中的人们,引发对话,从他们那里产生新的想法。对我来说,这些都是在活动中发言的好理由。

你还有什么想说的吗?

我们正在为我们的 PyData Montreal meetups 寻找演讲者,所以如果你从事数据科学,ML 或 DL,并希望与当地人民分享你的知识或经验,请随时联系 twitter: @mariakhalusova@PyDataMTL

玛丽亚,谢谢你接受采访!

本周 PyDev:玛丽亚·麦金利

原文:https://www.blog.pythonlibrary.org/2019/02/18/pydev-of-the-week-maria-mckinley/

本周,我们欢迎玛丽亚·麦金利( @twiteness )成为我们本周的 PyDev。Maria 是华特·迪士尼公司的高级软件工程师,她将成为 2019 年 T2 py cascades 大会的演讲人。她还在华盛顿大学继续教育学院教授 Python 证书课程。你也可以在她的网站上读到更多关于她的信息。让我们花点时间更好地了解她。

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我拥有华盛顿大学的物理学学士学位,在同一所大学的神经科学实验室工作期间,我自学了如何编程。我开始从事一些惊人的研究项目,同时发现我是多么喜欢写代码。2015 年 10 月,我开始在华特·迪士尼公司工作,担任高级软件工程师。我也在华盛顿大学和迪士尼教 Python。我是一个母亲。所有这些都让我很忙,但我也尽量留出时间阅读、锻炼、玩棋盘游戏和艺术

你为什么开始使用 Python?

当我在神经科学实验室工作时,我经常做软件开发和系统管理。几年前,我在运行一个邮件服务器,试图自动化一些与垃圾邮件相关的管理任务。这不是一个非常重要或频繁的任务,所以每隔一段时间,我就会用 Bash 脚本来实现自动化。几个月后,有人告诉我 Python 适合 sysadmin,于是我尝试了一下。在五分钟内,我就可以运行一个脚本,完成这个暗示了我很久的任务。我被迷住了。

你还知道哪些编程语言,你最喜欢哪一种?

Python 是我的最爱,在过去的五年左右的时间里,我几乎一直在使用它。我用过 Matlab,Javascript,C,C#,C++,Actionscript,Igor,PHP,足够有一个基本的了解。我不再说我了解他们所有人,但我在不同程度上曾经了解他们。就像一门外语,如果你不用它,你就会失去它。不过,我还是能全部读完,所以就这样了。我年轻的时候自学了 basic 语言,我仍然记得当我想在中间添加一些东西时,必须修改一堆 goto 语句。那是地狱。Python 更好。🙂

你现在在做什么项目?

目前,我主要从事教学工作,并为皮卡斯卡德准备一次演讲。我梦想着能更多地使用 Blender,但这还得等上几个月。我也有几个项目在工作。这些大多是后端 SysOps 同事的 REST APIs。

您喜欢使用哪些非 Python 开源项目?

Linux。好吧,我想我得用蟒蛇皮的,搅拌机。

你最后是怎么在大学教 Python 的?

当我在大学的时候,我发现因为我是自学的,我不知道我不知道的事情。因此,为了找出漏洞所在,我做的一件事就是在大学里成立一个编程小组,让隐居在实验室里的软件开发人员聚在一起互相学习。大学里教 Python 的人发现了这件事,并让我发布他们的空缺职位。于是,我做到了,然后自己去申请。

学生学习 Python 时最纠结的是什么?

我希望有一件事是学生们最纠结的,我们可以解决的。部分取决于他们是否是编程新手。编程新手面临的问题与来自不同语言的人完全不同,老实说,当一起学习时,他们都会感到沮丧。我想说,初学程序员最大的问题之一是心态。他们感到沮丧,因为他们不能写出第一次就能工作的代码,没有意识到对于有经验的程序员来说也是如此。这么多的编程都是反复试验,这一点还没有得到足够的重视。如果你在事情不顺利的时候感到沮丧,那么作为一名开发人员,你大部分时间都会感到沮丧,尤其是在最初的几年。

Python 社区如何让这一切变得更好?

我认为,初学者的每堂课或每门辅导课都应该从鼓励学生把故障诊断当成一个有趣的挑战或游戏开始。这是关于从你的错误中学习,并意识到犯错误实际上是学习的最好方式之一。教学也是学习的好方法,所以帮助你的同学吧!

你还有什么想说的吗?

超级期待《好兆头》改编成电视剧。那本书在我心中有特殊的地位。

玛丽亚,谢谢你接受采访!

本周 PyDev:马里亚诺·安纳亚

原文:https://www.blog.pythonlibrary.org/2021/02/22/pydev-of-the-week-mariano-anaya/

本周,我们欢迎马里亚诺·安纳亚( @rmarianoa )成为我们本周的 PyDev。Mariano 是 Python 中干净代码的作者,也是 EuroPython 的演讲者。你可以在 Github 上看到他一直在做什么,或者你可以查看他的网站

让我们花一点时间来更好地了解马里亚诺!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我叫马里亚诺·安纳亚,是一名软件工程师。我在阿根廷布宜诺斯艾利斯长大,但在 2016 年搬到了西班牙巴塞罗那。

我上大学学的是信息系统工程,2010 年毕业。此后不久,我开始攻读软件工程的研究生学位,并于 2013 年毕业。

当我不写软件的时候,我真的很喜欢户外活动,比如和朋友一起徒步旅行、跑步和骑自行车。我也喜欢去健身房,阅读。

你为什么开始使用 Python?

当我在大学的时候,我很幸运地遇到了非常聪明和有趣的人。我们正在为一个主题进行一个项目,需要用 c 语言为一个分布式操作系统创建一个大型应用程序。这是一个很大的代码,团队中的一个朋友正在考虑如果我们用 Python 而不是 c 语言编码,事情会简单得多。起初,我没有太注意这个评论,但是到了学期结束时(在我们成功交付项目后),他给我们发了一封电子邮件,演示了相同应用程序的外壳在 Python 中的样子。当我看着这段代码时,我简直不敢相信它有多简单,所以我决定自己尝试一下。

那次经历教会了我 Python 有多强大,所以就在同一个星期(2007 年底),我决定开始学习 Python。从那时起,我一直试图利用每一个机会使用 Python,因为我发现了一种强大的语言,它可以抽象掉不必要的复杂性,让您可以专注于手头的问题。

你还知道哪些编程语言,你最喜欢哪一种?

我也懂 C,JavaScript,真的很喜欢 bash 脚本,之前也简单用过一些 Java。如今,我每天都在使用科特林语,所以这是我越来越精通的另一种语言。

我认为 Python 仍然是我最喜欢的语言(也是我的强项),但这取决于对 Kotlin 的体验如何。

你现在在做什么项目?

我专注于我的日常工作。在 2019 年和 2020 年,我为 gRPC 做了一些贡献,以更好地支持异步 Python,所以重新浮动这一点可能是我积压的一部分,尽管我有其他项目想开始(主要是试验新技术),但我仍然没有任何具体的东西,但我期待为 CPython 和其他开源库做出贡献。

哪些 Python 库是你最喜欢的(核心或第三方)?

在标准库中,itertools 是迄今为止我最喜欢的模块。我也喜欢 functools。按照第三方的说法,我喜欢黑色项目,并且我用它来格式化我所有的代码(我甚至配置了我的编辑器来使用黑色)。此外,我认为这是 Python 生态系统需要的东西,所以我很高兴这个项目变得越来越受欢迎。

此外,我认为 pytest 非常棒,因为它非常强大,并且它给了我编写测试的生产力。

你是如何结束写一本关于 Python 的书的?

回到 2016 年,我在一个会议上做了第一次演讲,用的是 EuroPython。我的演讲题目是“Python 中的干净代码”,我喜欢它的结果,但更重要的是,人们喜欢它。过了一段时间,一位出版商联系我,说他看过这个演讲,有兴趣让我写一本关于这个主题的书,所以我最终写了一本同名的书。

作为一名作者,你学到了什么?

我学到的第一件事是我热爱写作。这是一次很棒的学习经历,我非常享受这段旅程。这激励我继续写作和发表更多的文章。

我还在规划和执行长期项目,以及自始至终领导一项计划方面获得了更多的经验。写一本书是一个挑战,甚至是可怕的目标,但作为迎接挑战的结果,你成长了很多,所以最终,这是值得的。

最后但同样重要的是,成为一名作者帮助我改变了我正在制作的内容的视角。我转换了视角,问自己一些问题,比如“读者会如何看待这件事?”或者“我的解释有多清楚?”重要的是保持连贯的叙述,并以平稳的过渡来解开主题,这样对主题完全陌生的人就可以享受它们。

你还有什么想说的吗?

谢谢你的采访,我希望每个人都有一个好的一年!

马里亚诺,谢谢你接受采访!

本周 PyDev:马里亚诺·莱因加特

原文:https://www.blog.pythonlibrary.org/2014/12/29/pydev-of-the-week-mariano-reingart/

本周我们邀请了 Mariano Reingart 作为本周的 PyDev。Mariano 为 Packt Publishing 合著了 web2py 应用程序开发食谱,最近为 wxPython 完成了 wxQt 的部分移植。让我们花些时间和马里亚诺在一起,看看他有什么要说的!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名自由职业的开发人员和教师,已婚,有两个小孩。

当我还是个孩子的时候,我就开始编程,我父亲在 80 年代末给我带来了一台 ZX Spectrum TK-90。1989 年,年仅 11 岁的我用 MSX 计算机上了第一堂“正式”编程课“Basic I”,并于 1991 年获得“D.O.S .”。 完成小学教育后,我于 1992 年进入一所“信息学学士”定向学院(中级“预备”水平),在那里教授 Visual Basic 和 Visual Fox Pro 的最后课程。

一毕业,我就在那所学校当助教,大约在 1997 年安装了我的第一台 Slackware Linux 服务器以连接互联网,并为学院系统编程(最初使用 VB + Access)。

我的第一次“开源”编程经历是开发一个 Linux 的内核模块来使用 128Kps 的电话专线(我甚至不得不导入通信板),和一个 ucLinux 内核驱动程序用于 PiCoTux(一个运行 Linux 的小型嵌入式微型计算机)。

另外,我完成了将数据库迁移到 PostgreSQL 的第一步,并使用了早期的“WiFi”设备。

然后,我学习了几年电子工程,但我意识到我的技能更多地与软件相关,所以我转到了当地的一所大学学习计算机系统分析(相当于理学学士学位)。

经过几年的“休假”,我终于在 2011 年毕业,在那里我获得了开发小型 ERP 的工作经验,比如为中小企业开发业务系统和 911 应用程序(与我的一个朋友为当地警察局合作)

目前我正在完成一个自由软件的硕士学位(加泰罗尼亚开放大学),和一个“教授职位”(正式的高等教师培训)

你为什么开始使用 Python?

我从 2000 年开始使用 python,寻找 Visual Basic 的替代品。

我 2006 年的学位论文选择它“个人软件过程下的快速应用开发”(不好意思,是西班牙语,不过你可以看更多 PyCon US 2012 上展示的海报)

从 2009 年开始,我在一所高等院校教 Python。它开始只是一门课程,但后来我们(和其他教授)同意实施一个面向自由软件的机构课程,主要是:

  • 《计算机编程 I》、《计算机编程 II》(含 wxPython/web2py 入门)
  • 数据库(设计与实现)
  • 操作系统(文件系统、进程、IPC 等。)
  • 网间互联(“计算机网络”):套接字、互联网应用等。)
  • 专业实践(最终工作:web app 开发)

在此基础上,我们和其他同事正在准备一个“自由软件文凭”(开放本科学位,一年课程计划,重点是 Python、PostgreSQL 和 GNU/Linux,更多信息见本文文章)。

令人高兴的是,现在我靠出售开源商业支持计划谋生,这要感谢 Python,因为在 2008 年,项目 PyAfipWs,“电子发票”,从 PyAr 邮件列表开始,当地的 Python Argentina 社区,然后成长起来,被相对较大的用户群(包括公司、中小企业和专业人士)

你还知道哪些编程语言,你最喜欢哪一种?

Python 当然是我的最爱,对 PHP、C/C++、Java 等语言也有一定的经验。

遗憾的是,我仍然不得不使用 Visual Basic Classic (6.0)来开发我的一些遗留 ERP 系统(它们很大,大约有几十万行,我还没有时间/资源来迁移到 Python)

现在正在调查 vb2py ,一个把 vb 转换成 Python 代码的项目。 我想知道为什么它没有达到临界质量/牵引力(开发似乎从 2014 年就停止了),因为仍然有很多 VB 代码挂在周围...

对于电子发票项目,我使用 pywin32 (来自马克·哈蒙德等人)来使 python 组件可以从遗留语言(VB,VFP)中使用,并使用一些库,如 dbf (来自伊森·弗曼)来与更古老的语言(Clipper,xBase 等)交互。). 最近我也开始玩 Jython ,也开始使用来自 Java 的 python 项目。

你现在在做什么项目?

为了我的学位论文,我开始开发 rad2py ,一个实验性的集成开发环境(IDE)和案例支持工具,设想用于商业、教育&学术目的。

现在我正在完成我的硕士论文研究“高质量自由软件快速开发”,试图让开发人员的生活变得更容易,集成最近的方法,如以任务为中心的界面(Eclipse Mylyn)和敏捷 ALM(应用程序生命周期管理),用严格的软件工程原则来保证质量和持续的自我改进。

哪些 Python 库是你最喜欢的(核心或第三方)?

我尝试只使用 Python 标准库+ wxPythonweb2py ,对于一些项目使用 pywin32 和 dbf,如前所述。

我发现 web2py 很吸引人,因为它有一个几乎平坦的学习曲线,允许快速原型开发,一个友好的在线 IDE,等等。 它的非传统方式也带来了其他观点和“批判性思维”,这要特别感谢它的创造者马西莫·迪·皮埃罗(Massimo Di Pierro)的开放、热情的领导,当然还有它热情的社区。免责声明:我是一个“主要”开发人员,最近因为时间不够不太活跃,但是贡献了一个在线调试器和其他增强功能,与人合著了 Packt 的书“ web2py 应用程序开发食谱”等等。

wxPython 也值得特别一提,罗宾·邓恩的作品很棒(凤凰 py3k!),Andrea Gavana pure pythonagw widgets确实令人印象深刻,这只是提到了那个社区的几个开发者。我还发现 wxWidgets 比其他替代产品更正交、更易于使用。 今年我试图与 GSoC 2014 中的实验性 wxQt 端口进行更深入的合作(它现在已经可用,甚至来自 wxPython!在 Android 下,至少是 C++部分...).

当我需要一些不隐蔽的东西时,我倾向于寻找简单的解决方案(很多时候受 PHP 扩展的影响),有时会开始、继续或分叉其他项目:

  • PySimpleSoap :构建 Soap 客户端和服务器的临时轻量级 web 服务接口
  • PyFPDF :基于 PHP 的 FPDF 及其衍生物的简单 PDF 生成类
  • gui2py:python card 的一个分支(“rapid”&简单 gui 构建工具包)对其进行进化和现代化

除了一些开发人员认为它们是“幼稚”的努力(至少可以这么说),他们中的大多数已经找到了自己的位置,现在其他合作者也做出了许多发现它们有用的贡献。它们还有助于理解底层技术,提供纯 python 的替代实现,并尝试 Python 3 迁移。

你还有什么想说的吗?

不,很抱歉回答这么长,但是你的面试是不可抗拒的🙂 ...另外,很抱歉我的英语不好,我的母语是西班牙语,所以有时我很难找到合适的词。感谢你的项目和努力,感谢 Python 的整个社区!

谢谢!

前一周的 PyDevs

  • 巴斯卡尔·乔德里
  • 蒂姆·罗伯茨
  • 汤姆·克里斯蒂
  • 史蒂夫·霍尔登
  • 卡尔查看
  • 迈克尔·赫尔曼
  • 布莱恩·柯廷
  • 卢西亚诺·拉马拉
  • 沃纳·布鲁欣
  • 浸信会二次方阵
  • 本·劳什

本周 PyDev:Mariatta Wijaya

原文:https://www.blog.pythonlibrary.org/2017/09/25/pydev-of-the-week-mariatta-wijaya/

本周,我们欢迎玛丽亚塔·维贾娅(@玛丽亚塔)成为我们本周的 PyDev!Mariatta 是 PyCascades 会议的联合主席,这是一个在不列颠哥伦比亚省温哥华举行的区域性 Python 会议。她也是 Python 编程语言的核心开发人员。她为一家电影公司做自动化和网络开发,所以她也出现在互联网电影数据库 (IMDB)中。你可以在 Github 上查看她参与了哪些开源项目。让我们花一些时间来更好地了解她!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

大约二十年前,我搬到了加拿大。我在加拿大三个不同的省份住过,现在我和我的丈夫以及两个年幼的孩子住在温哥华。我在索尼电影图像公司做软件工程师。

我是个吃货。我有一个奇怪的爱好,就是给食物拍照。我喜欢旅游,自驾游,和家人露营,打麻将。

我共同组织了温哥华皮拉迪斯,我们每个月见一次面,形式是代码堵塞和谈话之夜交替进行。

我也是一月份在温哥华举行的太平洋西北部全新 Python 会议:PyCascades 的组织团队成员。

你为什么开始使用 Python?

在学习 Python 之前,我是一名开发人员,使用。NET 框架和 C#。2008 年,我在一家创业公司做 Windows 项目。那个项目结束后,他们把我调到了另一个团队。这个团队使用 Python、Django 和 Google App Engine 开发基于网络的应用程序。所有这些对我来说都是新的。我没有心情去找一家新公司工作,我认为学习一门新语言会很有趣。所以我留了下来,开始学习 Python,并开始了作为一名 web 开发人员的新的职业道路。

你还知道哪些编程语言,你最喜欢哪一种?

很久以前,我学过 BASIC,但我不太记得了(除了 GOTOs)。我懂一些 Java,C#,HTML,JavaScript,Python,还有 SQL。现在,我真的很喜欢使用 Python 和 JavaScript。

你现在在做什么项目?

我一直专注于帮助改进 Python 核心团队的工作流程。今年早些时候,我们刚刚将 CPython repo 从 mercurial 迁移到 git 和 GitHub。我们真的可以使用一些机器人来自动化我们必须做的手工工作和无聊的杂务。

一个这样的机器人是摘樱桃机器人。我们有一个半自动的过程,使用我写的命令行工具:cherry_picker。但这仍然是一个麻烦,即,有人必须在他们的计算机上运行脚本,并创建反向端口 PRs。我现在正在努力使这完全自动化。

我还想开发一个机器人来检查 CPython 中的 PR 是否有合并冲突,因此不能被合并。计划是应用一个标签作为这个 PR 现在有冲突的视觉指示器,所以作为一个维护者,我可以跳过它直到冲突被解决。这是在 https://github.com/python/core-workflow/issues/96 追踪的

我脑海中还有几个其他的机器人,但这两个是我现在的首要任务。

在过去的一个月里,我也在某种程度上暂停了对开源软件的贡献,开始从事我自己的个人项目:

哪些 Python 库是你最喜欢的(核心或第三方)?

核心 Python,我真的很爱 f 弦。和 csv 模块。

我最近最喜欢的一些第三方库:

  • 一个异步 GitHub API 库。
  • flit,打包 python 库的更简单的方法
  • 单击,用于编写命令行脚本。
  • aiohttp,asyncio http 服务器和客户端。

我知道你涉足了电影和电脑动画。你能给我们讲讲吗?

我在一家制作电影、视觉特效和动画的公司工作。但是我没有直接参与任何电影制作方面的工作。我不知道怎么做任何动画,我不是艺术,我甚至不知道如何使用 Photoshop。

我是基础设施团队的软件工程师。我构建和维护内部使用的 web 应用程序和自动化工具。几乎公司的每个人(洛杉矶和温哥华的 700 多人)都使用我的应用。

你是如何成为 Python 语言的核心开发人员的?

我真的觉得我真的很幸运。但是这里有一个稍微长一点的版本。

最初,我发现为 CPython 做贡献是相当令人生畏和难以抗拒的。去年,我联系了 Python 的创始人吉多·范·罗苏姆,寻求如何开始投稿的建议。是他提醒我,为 Python 或开源做贡献不应该给我个人带来压力。

这让我开始更多地思考为什么我要这样做,并找到自己的自我激励。他强调了还有其他贡献方式的观点。还有其他 Python 项目可能需要帮助。

在他的建议下,我开始参与各种项目,比如《python.org》、《Python 开发者指南》,然后是 CPython 的文档本身。

去年,我获得了参加加拿大 PyCon 的奖学金,相当多的 Python 核心开发者在那里发言。我向他们做了自我介绍,打了招呼,并让他们知道我已经开始为 CPython 做贡献了,可能有一天会需要他们的帮助。其中一个是雷蒙德·赫廷格。然后 Raymond 主动提出做我的导师,这样我就可以继续为 CPython 做贡献。几个月后,Raymond 向其他核心开发人员提议让我成为 Python 核心开发人员。核心开发者投票决定。到那时,我已经做了相当多的补丁,许多核心开发者已经注意到了我的工作。所以我想他们足够信任我,授予我提交 CPython 的特权。

作为一名核心开发人员,你学到了什么?

我学到了很多!我接触了各种各样的图书馆和独特的挑战,这是我在日常工作中通常不会遇到的。这真的很有趣!

在为 CPython 做贡献之前,我甚至不知道重构文本标记语言,甚至不知道 sphinx。我的第一个 CPython 补丁也是我第一次听说和用 reST 写东西。因此,尽管这是一个“简单”的任务,但在我的补丁足够好之前,我尝试了四次。但是随着更多的练习,我变得更好了。

我第一次学习了如何打包 Python 库并将其发布到 PyPI。(pypi.org/project/cherry-picker)。

我越来越擅长使用 git。基于我的经验,我在 devguide 中写了 Git Bootcamp 和备忘单

我曾经认为 Python 是理所当然的,不关心它是如何产生的,是谁创造了它。我只是想用它。我不再想当然了。我学会了真正欣赏开源项目,我对维护人员和核心开发人员充满敬意。这需要很大的努力。

通过为 Python 做贡献,我与社区的许多成员建立了联系。我找到了良师益友,结交了很多新朋友。他们提醒我,Python 不仅仅是代码,Python 是一个社区。这是一个美好的社区。

你还有什么想说的吗?

相当多的人问我他们如何开始为开源做贡献。“如何做”很简单:学习版本控制(比如 git),处理一个问题,创建一个拉请求。重复一遍。

对我来说,更重要的是首先找到“为什么”,做出贡献的动力,并继续做出贡献。在我看来,贡献并不是一直给予(知识、时间、专长)。贡献者应该从中获得“一些东西”。如果你只是付出,你会很快筋疲力尽。拿回东西是做这件事的动力。每个人的动机都会不同。

你是来学习的吗?你想学什么?你喜欢这种体验吗?为开源做贡献会帮助你找到工作吗?你的雇主给你时间/金钱来做这件事吗?

当你知道你的动机是什么时,它将成为你决定花多少时间做贡献,以及做哪个项目的指南。

有时候我失去了自己做出贡献的动力,我想退出。但这个社区的各种成员总是让我感到受欢迎,并鼓励我继续这一旅程。所以谢谢大家。

感谢迈克邀请我参加这次采访,感谢大家阅读!

非常感谢你接受采访!

本周 PyDev:马里奥·科切罗

原文:https://www.blog.pythonlibrary.org/2018/06/25/pydev-of-the-week-mario-corchero/

本周我们欢迎马里奥·科切罗( @mariocj89 )成为我们的本周 PyDev!他是今年美国皮肯赛道西班牙赛道皮隆迪纽姆 18皮肯斯和皮肯查拉斯的主席。让我们花些时间了解更多关于马里奥的知识吧!

你能告诉我们一些关于你自己的事情吗(爱好、教育等)。):

我在彭博工作,作为 Python 基础设施团队的高级软件开发人员,我之前在彭博工程部门的其他团队工作过,比如新闻自动化和新闻搜索,在那里我使用 Python 自动生成我们以新闻形式提供给客户的内容。这是一个非常令人兴奋的项目。在加入伦敦的彭博之前,我曾在 Amadeus(法国尼斯)工作,并在西班牙的 T2 大学 T3 担任助理研究员,在那里我学习计算机科学和软件开发。

我的爱好是旅游和小吃。对我来说,生活中最大的乐趣之一就是一边和朋友聊天,一边享用一些饮料和小盘子的食物。我不习惯像英国人那样“只是喝酒”。旅行时,我讨厌拍照,但我的记性真的很差,所以我喜欢录制视频,编辑它们,然后再看。

为了保持我对旅行的喜爱,我也喜欢参加 Python 会议,结识新朋友。这与休闲旅行是不同的体验,但在会议上遇到新朋友后,我总是会更开心地回来。我喜欢人们靠近我说话,即使我们以前没有见过面!

此外,我还应该提到,我和我的搭档有豚鼠,你们会在我所有演讲的幻灯片中看到。他是我家庭的一员!

你为什么开始使用 Python?

六年前,我在 Amadeus 的第一年开始使用 Python。即使该公司当时主要使用 C++,他们也有一个使用 Python 的集成测试工具,所以我学习了它,并开始为它开发扩展,自动化了许多所需的手工工作。我完全被吸引住了,开始在家里用它写一些简单的脚本。

在使用这种语言一年后,我决定把我的网站(http://chooserandom.com)搬到 Django,并对 Python 有了更深的了解。它还帮助我获得了一份合同,为哥伦比亚的医疗紧急情况开发一个呼叫系统,由于这个主题,这是一个非常有意义的项目。在主要使用 PHP 和 Java 开发 web 界面之后,我完全感觉自己在使用 Django 飞行。这是一次非常棒的经历。

你还知道哪些编程语言,你最喜欢哪一种?

我也曾专业地使用过 Java、JavaScript、C++和 C#。我以前真的很喜欢 C#和 C++,但是我的心现在和 Python 在一起,大概有四年了。Python 在许多方面与我提到的其他语言完全不同,但对我来说最重要的一点是:人们在基础上达成一致。Python 有一个 PEP 表示风格,有表示文档,有表示数据库接口应该是什么样子,甚至有表示语言的禅。人们一致认为可读性是王道,在用 Python 编码时,每个人似乎都在朝着同一个方向努力。因此,Python 代码库是完全同质的,这与 JavaScript(尽管它正在变得越来越好)或 C++等其他语言不同。

但是这并不是 Python 的全部魅力。这种语言有将近 150,000 个 PyPI(https://pypi.org)项目可以使用。一些突出的是 SciPy 工具包、web 框架、CLI、抓取包等。这些使得 Python 不仅是一个领域内的伟大语言,而且是一个真正的多用途环境。我们可能不应该,但 Python 可以用来取代几乎任何其他语言。

所有这些,再加上 Python 出色的社区,使它成为我迄今为止的首选语言。我们没有充分认识到这一点,但是 Python 社区与其他社区完全不同。我们都承认包容性、对新人的帮助以及开源的价值是多么重要。这在不同的 PyCon 事件中达到顶峰。每个人都认为 PyCons 与其他会议完全不同。我建议所有对 Python 知之甚少的程序员至少参加一次;它会完全迷住你!

正如娜奥米·塞德(Naomi Ceder)曾经说过的,“我为语言而来,但为社区而留。â€

我很期待看到 Python 在未来给我们带来的其他惊喜。这种语言正在进入教育、微控制器等领域。当我的合作伙伴,建筑工程师 Melania 向我展示她正在使用 Python 来设计建筑时,我非常惊讶!让我们看看极限在哪里,以及 Python 最终是否能挤进 Excel

你现在在做什么项目?

在彭博,我致力于帮助开发人员尽可能高效地使用 Python。这包括使用 Python 的大量工作、内部工具的开发、打包、支持和培训,以及其他职责。我们的目标是让 Python 成为彭博的主要语言,我们离目标越来越近了。我致力于组织 2018 年皮隆迪年会,这是第一次在伦敦举行的 Python 大会,所有门票收入都将捐给 T2 的 PSF T3。我觉得很幸运,我的公司支持这种工作。

我也是 Python 西班牙委员会的副主席,我们在那里协调 PyConES 的组织,并试图在西班牙推广 Python 的使用,并使社区团结起来。

最后,我正在重写我的网站( http://chooserandom )。目前,它的堆栈使用 MongoDB 加 Django,我正在与一些朋友一起将它完全迁移到 PostgreSQL、flask 和 react.js。该页面每月的访问量超过 10 万次,我们认为它值得一些“严肃”的工作。我们主要把它作为一种尝试新技术的方式。如果你对这个网站的发展所带来的惊喜感兴趣的话,我在一次灯光演讲中谈到了它。

当我有时间的时候,我也为 Python 项目贡献一些小的补丁,并且我正试着写一些关于 Python 的博客文章,比如 T2、T4、T5。

哪些 Python 库是你最喜欢的(核心或第三方)?

这是一个有趣的问题,我从来没有真正思考过。我可能会说标准库中的 unittestlogging 。它们证明了 Python 中“包含电池”的概念是多么重要。首先,unittest 有助于强调测试的重要性。另外,有了模拟库,我们可以创建各种各样的赝品来测试我们的代码。即使我主要使用 pytest,我也认为拥有 unittest 是这门语言的关键。

我也选择了日志,因为我真的很喜欢它背后的设计。该模块完美地使用了组合来解决开发人员在需要用日志审计应用程序时可能面临的大多数用例。这一点,再加上日志的使用完全脱离其配置的协作方法,使它成为一个杀手级模块。能够用日志装备一个库——而不必担心它将如何被配置——简直太棒了。虽然这是从 Java 中的 log4j 借来的,但它仍然值得称赞。

你是如何组织 Python /编程会议的?

我不确定我还记得。我以前组织过一些较小的活动,但我认为这一切都是从 PyConES 或 EuroPython 开始的,当时 Python 西班牙协会的主席胡安·路易斯·卡诺和我遇到的一个人 T2·维克多·特龙说服我和另一个好朋友 T4·大卫·纳兰茹在我们学习的城市(卡塞雷斯,埃斯特雷马杜拉)组织一次活动。我们非正式地提出了它,经过几个月的努力,它开始成形了。

会议证明是成功的,尽管我们很担心,因为从西班牙的其他地方很难到达这个地区。但是如果你去西班牙旅游,这个城市是必去的!它是联合国教科文组织的世界遗产(此外,《权力的游戏》在那里录制了一些片段)。如果你想在我的地区埃斯特雷马杜拉旅游,给我发电子邮件。我很乐意推荐一些难忘的路线。

不过,这次会议让我们筋疲力尽。全年都需要很多时间来组织。此外,这令人难以置信地紧张,例如,在研讨会的那天,我和另一位组织者兼好朋友 Pedro Alvarez 一起躺在地板上,因为我们找不到挂绳(这些挂绳在会议开始三小时后神奇地出现了)。尽管 PyConES 给了我这么大的压力,并向自己承诺再也不做这样的努力,我还是参与组织了一些短跑比赛,【2018 年在克里夫兰举行的 PyCon 西班牙赛道和皮隆迪尼亚。是的,我知道

你会给其他组织者什么建议?

每个组织者可能都有自己的风格,但我发现新组织者的关键是:

  1. 设法找到一个“大”的志愿者团体来帮助与活动相关的工作。
  2. 在类似 Trello 的待办事项系统中组织工作,任何志愿者都可以选择开放的任务。
  3. 确保有一个强大的“小团队”核心组织者或主席来协调志愿者之间的工作。
  4. 委派责任,而不是任务。与其让某人发布一封电子邮件,不如让一个负责沟通的人来处理与之相关的一切。工作组是处理这个问题的好方法。
  5. 多元化和包容性不会凭空出现。确保你在活动中付出努力,以确保活动的多样性和包容性。这将确保每个人都有一个更好的时间。
  6. 不要惊慌!事情不会总是如你所愿。
  7. 尽早开始——你总是会低估任何事件所需的工作量。

感谢接受采访!

本周 PyDev:Mariusz felis iak

原文:https://www.blog.pythonlibrary.org/2019/03/04/pydev-of-the-week-mariusz-felisiak/

本周我们欢迎 Mariusz felis iak(@ Mariusz felis iak)成为我们本周的 PyDev!Mariusz 是 Django web 框架的核心开发者,也是 django 请求包的维护者。你可以在 Github 上跟随 Mariusz,看看他在做什么。让我们花些时间来了解一下 Mariusz 吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我生活中的一些事实。我是一名软件开发人员,在设计和实现 web 应用程序方面有超过 11 年的经验。我是 2010 年计算机专业毕业的。2018 年我的博士论文答辩与数值算法相关。几年来,我在处理开源活动、日常工作和博士研究的同时做到了这一点。那段时间真的很紧张。

我总是渴望为开源项目做贡献,这占据了我大部分的空闲时间,或者至少是在我女儿出生之前🙂我喜欢 Python 和 Django 已经 10 年了。从 2017 年起,我是 Django 核心团队和 Django 软件基金会的成员。三月中旬,我将成为 Django 的会员,因此 Django 将成为我的日常工作!最有趣的是,我应该有更多的“自由时间”🙂我是开源和支持开源的社区的超级粉丝,这就是我尽可能参与其中的原因。

在科技世界之外,我是一个赛车迷,业余时间喜欢旅游和冬季登山。

你为什么开始使用 Python?

我的职业生涯始于古老的甲骨文工具,如甲骨文表格和报表。2009 年,我们决定在一个更现代的框架中编写所有新的应用程序,最终选择了 Python 和 Django。我对 Python 知之甚少,所以我同时学习了 Python 和 Django🙂我从未回头。

你还知道哪些编程语言,你最喜欢哪一种?

我知道 SQL,PL/SQL,Java,JavaScript,HTML,CSS,C 和 C++。我可能还知道如何用其他编程语言编写“Hello World”。C 和 C++是我最喜欢的,因为我在学习和博士期间经常用到它们。

你现在在做什么项目?

我大部分时间都花在日常工作和 Django 本身上。我还维护着django-请求包。在我的日常工作中,我维护和开发 RPR 平台,将医疗保健利益相关者与全球支付者网络连接起来。在 Django,我主要参与 Django ORM。

您喜欢使用哪些非 Python 开源项目?

我会说 vim 在第一位,因为我用它来写代码。也许我很守旧,但那是我所需要的。我不使用任何 IDE🙂

你是如何成为 Django 核心开发人员的?

我用 Oracle 数据库工作了将近 10 年,同时我大量使用 Django。这似乎不是一个常见的组合。当 2015 年 Django 的人发布请求帮助维护 Oracle 后端和相关 CI 基础架构时,我认为这是提供帮助的最佳时机。

我真的很惊讶会受到如此友好的欢迎,作为一个没人知道我开始负责 Oracle CI 基础设施的人。为姜戈做贡献成了我日常生活的一部分。检查新票,寻找漏洞,优化,小清理,审查 PRs 等。2017 年 2 月,Django devs 邀请我加入核心团队,这真的出乎意料。我从未想过我会成为如此聪明的一群人中的一员。没有整个 Django 社区的帮助,尤其是 Tim Graham、Shai Berger 和 Simon Charette 的帮助,这是不可能的。谢谢!

你还有什么想说的吗?

相信自己的梦想,参与其中!

谢谢你接受采访,马瑞斯!

本周 PyDev:马克·哈斯

原文:https://www.blog.pythonlibrary.org/2017/01/23/pydev-of-the-week-mark-haase/

本周,我们欢迎马克·哈斯成为本周的 PyDev。马克是《PEP 505 -无意识操作符》的作者。你可以在 Github 上查看马克感兴趣的项目。他还有一个涵盖各种编程主题的编程博客。让我们花些时间更好地了解马克!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

当我还是个孩子的时候,我总是喜欢搭建东西,比如乐高。我为我梦想建造的其他项目画了草图——一架悬挂式滑翔机!“但作为一个孩子,我显然在技能、工具和资源方面受到限制。毕竟,没有人会给我一个电焊机。

我大约 12 或 13 岁时开始编程。我先学了 BASIC,几年后又学了 Java。编程没有物理事物的限制。我不需要一整个车间的工具和材料,只需要一台计算机和一个编译器。我在大学辅修了比较科学(一个错误,回想起来,我应该主修它!)并在 it 毕业时设法找到了一份程序员的工作。这是我 10 年的职业生涯。

你为什么开始使用 Python?

我开始和一个室友一起做一个宠物项目,他鼓励我尝试 Python。在与其他一些不知名的 web 开发语言合作了几年之后,Python 是一种解脱。感觉很合理。感觉像是精心设计的。感觉很有成效——想法可以很容易地转化为代码。Python 让编程又变得有趣了!

此后不久,我换了工作,有了几个喜欢 Python 的新同事,从那以后,Python 就成了我工作的主要部分。随着我对 Python 了解的越来越多,我完全迷上了这种语言的设计和特性,同样重要的是,也迷上了围绕它的文化和思维方式。

你还知道哪些编程语言,你最喜欢哪一种?

我熟悉到足以进行实际工作的语言?Perl、PHP、JavaScript、Dart 和 Python。Python 是我最喜欢的,但是使用 Dart 作为 JavaScript 的替代品也是令人愉快和耳目一新的。

你现在在做什么项目?

我与一家名为 Hyperion Gray 的公司签订了一份 DARPA(互联网的先驱)研究&开发合同。我们的研究范围很广,但我个人的重点是将网络爬行和机器学习结合起来:构建更智能的爬虫,知道要跟随什么链接,面对错误更有弹性(爬行循环,软 404 等)。),并提取每页上的重要内容。我们喜欢与 DARPA 合作,我们能够开源我们的大部分工作。

哪些 Python 库是你最喜欢的(核心或第三方)?

Flask 是我开始使用的第一个主要软件包。我货比三家,最终选择了 Flask,因为它不是单片的,文档也很棒。我从未后悔过这个选择:我对 Flask 了解得越多,就越喜欢它。在过去的 5 年里,我一直在新项目中使用它,感觉它仍然是一个“恰到好处”的工具。

Requests 是另一个非凡的库,因为它用我见过的最优秀的 API 之一包装了一个混乱而困难的核心 API:简单到足以记住基础知识,但强大到不会限制您可以用它做什么。

还有一个数字和科学计算软件包集群(NumPy,SciPy 等。)使 Python 成为一门重要的语言,被广泛的数据科学应用所了解。我可以将使用 Python 这样的高级语言的工作效率与低级、高度优化的代码的性能特征结合起来。

作为一门编程语言,你认为 Python 将何去何从?

我一直认为 Python 是一种粘合语言。在 web 开发领域,性能关键代码由数据库、web 服务器、消息队列等处理。您可以用 Python 编写业务逻辑,并在这些高度优化、高度调优的组件之间来回传递数据。我不会用 Python 写数据库服务器,也不会用 C++写我的业务逻辑。这些不同的工具是互补的,而不是竞争的。

同样的方法将 Python 带入了新的领域。高性能机器学习和深度学习将在未来的计算中非常重要,Python 一种众所周知的“慢”语言——是一种构建深度学习系统的合理语言。为什么?因为关键性能代码是在低级库中优化、矢量化和调优的,比如 NumPy 和 Theano。少量的 Python 代码就能产生简单而神奇的机器学习系统。这是一个很好的例子:http://neuralnetworksanddeeplearning.com/

我个人觉得没有必要学习专门的、特定领域的编程语言,比如 Octave 用于线性代数,R 用于统计学。Python 可以做所有这些事情。在工作中,我们甚至在 IPython 笔记本上创建演示文稿!

你对当前的 Python 程序员市场有什么看法?

我不知道!上一次求职大概是 5 年前,也大致是我开始学习 Python 的时间。有趣的是,工作列表似乎总是被当时最热门的技术所主导。如果我在找工作,我会觉得用我 5 年的 Python 经验申请任何工作都比用 6 个月的更有信心。Python 是如此多才多艺(见我之前的回答),以至于我认为 Python 在未来几年仍将是高度相关的。

非常感谢你接受采访!

本周 PyDev:马克·卢茨

原文:https://www.blog.pythonlibrary.org/2016/05/02/pydev-of-the-week-mark-lutz/

本周,我们荣幸地欢迎马克·卢茨成为我们本周的 PyDev。Mark 是有史以来第一本 Python 书籍编程 Python 的作者。他还撰写了《学习 Python》和《Python 袖珍参考》,这三本书都是 O'Reilly 出版社出版的。与其重复他的背景,不如让我们直接进入采访,这样我们可以更多地了解马克·卢茨!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名软件工程师,一名 Python 书籍的作者和培训师,也是帮助 Python 发展到今天的突出地位的人之一。

我已经在软件领域工作了 30 年,并获得了威斯康星大学的计算机科学学士和硕士学位。当我拿着报酬做开发的时候,我在各种初创公司从事超级计算机和 CAD 系统的编译器以及大规模应用程序的工作。

自从 20 年前辞去我的“日常工作”以来,我一直在北美和欧洲教授 Python 课程,并撰写了销量超过 50 万册、出版页数超过 11k 的 Python 书籍。客观地说,信封背面的计算表明,我卖出的书的纸张单位约有 650 吨(还在增加)。

如果你对更多的细节感兴趣,可以查看我在http://learning-python.com/books/formal bio . html的正式简历页面。

你为什么开始使用 Python?

我从 1992 年开始使用 Python,当时它的版本是 0。x,网站的概念在很大程度上仍然是学术娱乐。当时,我被从编译器工作中聘请出来,花了 6 个月的时间探索可用的脚本语言,作为可移植 GUI 工具包生成代码的候选语言。我和一群人用 Python、Tcl 和他们同时代的语言编写了基准程序,Python 在可读性、功能性和健壮性方面明显胜出。

碰巧的是,我也对 C++语言中人为的复杂性越来越失望,而 Python 似乎为开发人员提供了一条更好的道路。对于那些已经知道自己在做什么的人来说,Python 甚至在生产率方面都是一个巨大的进步。这就开始了我职业道路上的一个岔路口,我今天还在遵循这个岔路口。

最近,Python 作为开发人员的更好工具的最初信息演变成了对所有人的可访问性的承诺——很高兴看到这些天有这么多人进入编程,但我认为我们也要现实地设定期望,这是至关重要的。除了语言之外,软件总是既有趣又困难,成功的从业者仍然需要理解整个“堆栈”,从脚本到芯片。Python 只是这个堆栈的一部分。

你还知道哪些编程语言,你最喜欢哪一种?

我已经用过太多了,无法在此一一列举(包括以前的 COBOL 和 FORTRAN)。我在大学时非常喜欢 Prolog,并做了一个论文项目,其中涉及用 C 和 68K 汇编程序优化实现该语言。Prolog 新颖的计算方法令人兴奋,但对许多程序员来说也太神秘了,缺乏实际应用的焦点。我还在 Lisp 中做过一些人工智能工作。我听说过一种叫做 Python 的语言,对它很有帮助...

真的,对于有不错 CS 背景的人来说,大多数语言只是一个主题的变体;重要的是他们如何把他们的想法放在一起。我更喜欢这样做更连贯的语言,而不是混乱的。

你现在在做什么项目?

最近我一直在做几个 Python 项目,主要是为了好玩和个人使用,但也作为语言学习者的教学范例。其中有 frigcal,一个基于 tkinter 的日历 GUImergeall,一个文件夹 同步工具,用于跨设备镜像存档;以及最新版本的 pymailgui,一个 POP/SMTP 电子邮件客户端。

这些程序在某种程度上也是为了解决当今网络中的一些个人隐私危险。上传个人数据到云端,扫描我的电子邮件或日历对我来说根本就不是选项。你可以在http://learning-python.com/books/recenthighlights . html #programsT5 找到这些和其他 Python 程序的例子

哪些 Python 库是你最喜欢的(核心或第三方)?

有太多太多的东西可以说出自己最喜欢的,但我仍然发现[tT]kinter 非常适合快速 GUI 工作,并利用 icalendar 第三方库与 frigcal 程序中的 iCalendar 文件进行交互。内置电池非常好,只要这些电池像宣传的那样工作,并且在你依赖它们时不会被替换。

作为一门编程语言,你认为 Python 将何去何从?

我怀疑 Python 将在未来几年继续扩大用户群。鉴于世界各地都在推动将 CS 作为核心主题添加到学校课程中,这一点尤其重要。通过提供功能性和可用性的罕见组合,Python 应该会继续成为教育环境中的宝贵资产。

至于语言本身,我担心它与其他开源项目共享的持续且有时不计后果的功能膨胀,但是我将在这里忽略这个主题。更多细节,请查看我最近的 Python 变化页面,在http://learning-python.com/书籍/Python-changes-2014-plus.html

你为什么决定写关于 Python 的书?

如前所述,我在 Python 早期的时候也在那里,那时没有书,但是文档请求有人写一本书。当时,我也在考虑成立一家初创公司来开发 Python 开发工具,但是书的想法最终胜出了。这似乎是一个很好的机会来宣传和支持我认为可以在这个领域有所作为的东西。

像我这样的早期采用者从 Python 当时简短的教程和源代码中学习 Python,但这对 Python 能够吸引的更广泛的受众来说是行不通的。此外,如果 Python 要超越其当时很小的用户群,显然需要一本书;尤其是在 90 年代,一本书能以其他任何东西都无法做到的方式增加合法性。

历史趣闻:1995 年,我的出版商最初拒绝了写一本 Python 书籍的想法,但在我游说了他们几个月之后,他们变得热情起来。这催生了学习 Python 和袖珍参考;这些都有助于催生 Python 今天的庞大领域——有时固执是有好处的。

你从关于 Python 的写作中学到了什么?

当然,这里讲的太多了。但是我会告诉你写作和教学不是天生的才能;和其他技能一样,这两种技能都需要大量的练习来磨练。我给任何对这两种职业感兴趣的人的建议是,走出去,去做;你收到的批评越多,批评越真实,你的信息就会变得越好。除此之外,很大程度上就是说出你的意思,然后重写,直到你写不下去了。

非常感谢您接受采访并分享您的见解!

本周 PyDev:马克·米科夫斯基

原文:https://www.blog.pythonlibrary.org/2022/10/03/pydev-of-the-week-mark-mikofski/

本周,我们欢迎马克·米科夫斯基(@布瓦纳马克 )成为我们本周的 PyDev!马克是 pvlib 工具的核心开发人员,该工具用于“模拟光伏能源系统的性能”你可以查看他的 Github.io 页面,看看马克的博客、演讲等等!

pvlib logo

让我们花些时间更好地了解马克。

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是由一位单身母亲抚养长大的,她自己也是由一位单身母亲,我的祖母抚养长大的,她是一位古巴移民。我的母亲是一名教师,她和我分享了她对学习的热爱,尤其是数学。我主修机械工程,在东非坦桑尼亚的美国和平队(US Peace Corps)工作 3 年后,我在那里教高中数学,最终我回到学校完成了机械工程的硕士和博士学位,重点是燃烧产生的有害排放物和空气质量。我在研究生院的学习是对可再生能源的自然延续,这也是我过去 15 年来一直在工作的地方。在我的空闲时间,我喜欢跑步,爬山,阅读,弹吉他,和家人在一起。

你为什么开始使用 Python?

作为一名本科生,我们被教授 Pascal,这不是一种特别有用的语言,但我从中学开始就在我的 Atari 600xl 上使用 BASIC 编程,所以我喜欢 Pascal。后来我学习了 MATLAB,它成为我多年来选择的分析工具。我听说过关于“Python”的传闻,甚至不得不在读研期间安装它,以便使用 Cantera 库来研究燃烧等化学反应的热力学。然而,我认为 Python 是一种“严肃的”编程语言,与 C/C++和 FORTRAN 处于同一联盟。作为研究生院研究的一部分,我接触过 FORTRAN,它非常可怕,所以我不想接近它。我终于在 2012 年尝试了 Python,将一个 Excel 分析转换成最终成为 PVMismatch 的东西,我马上就有了那个 a-ha!XKCD 的著名漫画中描述得非常好的时刻。从那以后,我很快成为了一名 Python 爱好者,并开始在我的所有分析中使用它。

你还知道哪些编程语言,你最喜欢哪一种?

除了 Python,我不精通任何其他语言,除了 MATLAB,我从大学就开始用它了。为了工作,我曾涉猎过 C#,但不是因为我真的想学。我也尝试过用 Java 做一个 Android 应用程序,但不适合我。我已经学习了足够的 HTML、CSS 和 JS,所以我可以使用 Django/Flask 和 Bootstrap 来制作 web 应用程序,但主要只是为了证明概念,然后我让真正的开发人员接手。我也能使用 SQL,但是我经常不得不在网上搜索关于编写简单查询的帮助。我在研究生院的时候不得不写一些 FORTRAN 语言,但是那太可怕了。我写过几行 C 语言,但我从未试图理解 C++。我有时也不得不费力地阅读一些 R,但时间只够用 Python 重写。我觉得朱莉娅听起来很酷,但我还没有学会使用它。所以我想我最喜欢的语言仍然只是 Python。

你现在在做什么项目?

pvlib 是我在工作之外参与的主要项目。这是一个社区项目,用于模拟太阳能系统的能量。与其他维护者合作真的很棒。pvlib 最初是由桑迪亚国家实验室研究员克里夫·汉森和其他人开发的 MATLAB 工具箱。后来,当时的博士生 Rob Andrews 将其移植到 Python,不久之后,亚利桑那大学的研究教授 Will Holmgren 为 2015 年的 v0.1.0 版本做出了足够的贡献。我直到 2016 年才做出第一次贡献,而且只是包概述例子的微小变化。从那以后,我做出了更多的贡献,我在日常工作中越来越多地使用 pvlib。在 2020 年的某个时候,我在 pvlib 中担任了一个正式的角色,加入了维护者的行列,主要专注于构建 pvlib 社区,该社区已经发展到拥有来自学术界、国家实验室和工业界的 600 多名成员。大约在这个时候,NREL 研究员和频繁的合作者凯文·安德森也加入了维护者,我们发表了我们的 JOSS 论文,pvlib 成为了 NumFOCUS 的附属项目。在过去的几年中,当可再生能源分析师开始感觉在日常工作中使用 pvlib 和 Python 来回答他们没有意识到触手可及的问题,并自动化以前需要几个小时的过程时,他们的热情令人瞩目。我们已经给出了三个 pvlib 教程,其中一个在 2021 年的PyData Global上,它使用 JupyterHub 让任何人都可以轻松使用 pvlib,而不需要安装任何东西。我也是 NumFOCUS 附属项目选择委员会和科学计算多样性和包容性(DISC)委员会的志愿者,以确保尽可能多的人可以获得这些机会,并确保我们利用我们所有的才能,尽可能多地获得认知多样性。

哪些 Python 库是你最喜欢的(核心或第三方)?

我最喜欢的第三方库是 Seaborn ,用于制作惊人的统计图表。我总是为自己感到骄傲,当我设法制作我认为是一个真正令人惊讶的 Seaborn 情节。您可能会感到惊讶,但我最喜欢的核心库是 pathlib。我只是喜欢直观地重用斜杠运算符来连接路径,这比旧的 os.path.join()优雅得多。我也喜欢日历核心库。没有人应该记住某个月有多少天,或者是闰年。严重地

您对 pvlib 的电梯间推介是什么?

我已经说了很多关于 pvlib 的内容,所以我将利用这个问题向可再生能源领域的开发人员、定量分析师和数据科学家进行推介。对于那些寻找新挑战、寻找产生有意义影响的方法的人来说,现在是努力转向可再生能源的时候了。在气候危机不可逆转地恶化之前,我们没有多少时间了。好消息是,我们已经有了解决方案,可再生能源、电池存储、绿色氢和其他清洁、无碳的替代能源,但我们需要大规模地部署它们,这需要行业、政府、投资者、电网运营商、建筑、劳工、制造业以及美国劳动力和经济的基本所有角落的合作。到 2035 年,我们将需要在美国电网中部署超过 1 太瓦的可再生能源,或者在未来 10 年中,基本上是过去 10 年中每年的全部装机容量。也就是每年超过 100 千兆瓦。我们需要每个人都参与进来,开发人员、定量分析师和数据科学家可以发挥关键作用。所以来加入能量转换吧。

关于太阳能或太阳能技术,你觉得最令人兴奋的三件事是什么?

1.技术在不断进步,所以总有新东西要学。在太阳能领域工作让我对气候危机感觉更好,因为我不是专注于我们即将到来的厄运,而是致力于加速能源转型,我相信如果有足够多的人参与到工业和政府的所有部门,我们可以产生积极的影响。
3。solar 的人真的很棒。人们对彼此的关心和对地球的关心让我一直心存敬畏。

你还有什么想说的吗?

我只是想让人们知道,他们不需要知道或者做什么特别的事情就可以使用 Python。任何人都可以使用 Python 来释放数字和计算的潜力,以增强他们正在做的任何工作。要使用 Python,你不必是软件工程师、开发人员或计算机科学家。您可以使用 Python 替换分析工具链中的现有工具,并自动执行手动流程来分析更多数量级的数据,从而得出具有统计意义的结论。所以不要害怕,不要像我一样等待。今天就试试 Python 吧。我非常喜欢安娜莉丝·米勒上个月在光伏性能建模协作研讨会上的这个“从零到英雄”的演示:https://youtu.be/-6TzTVWBeOo.

马克,谢谢你接受采访!

本周的 PyDev:Marlene Mhangami

原文:https://www.blog.pythonlibrary.org/2019/09/30/pydev-of-the-week-marlene-mhangami/

本周我们欢迎玛琳·姆汉加米(@玛琳 _zw )成为我们本周的 PyDev!Marlene 是 PyCon Africa(@ PyCon Africa)主席, @zimbopy 的联合创始人,Python 软件基金会的董事。让我们花些时间去了解她吧!

Marlene Mhangami

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

当然,在大学里,我学的是分子生物学。我实际上是在读医学预科,因为我最初认为我想成为一名医生。现在回想起来,我笑了,因为我讨厌血,只是在电影里看到它让我紧紧地闭上眼睛,所以我真的很高兴没有成功!我去了一所文理学院,很高兴我有机会学习其他领域的课程,比如我真正喜欢的哲学和政治。

我经常被问到我有什么爱好,我不确定我是否有任何我坚持做的事情可以称之为爱好。我读书,有时跑步,喜欢写日记。我也偶尔画画,但上次我告诉别人我画画时,他们问我的工作室在哪里,并开始列出我以前从未听说过的艺术家,所以我想声明,我不以一种有教养或复杂的方式画画,而是作为一种表达自我和享受乐趣的方式。

你为什么开始使用 Python?

我大学的大部分时间都在美国学习。我记得有一年夏天回家时,我真的意识到津巴布韦与美国有多么不同,从人们如何解决冲突这样非常小的文化差异(这是我仍在试图与我的美国朋友一起解决的问题),到获得知识和教育这样更有影响力的事情。

我决定我想留在我的国家,开始更多地参与增强我的当地社区。出于一些明确和模糊的原因,我也决定利用技术来帮助我做到这一点。当我写这篇文章的时候,我实际上想起了我和我的一个朋友的一次很棒的谈话。她最初主修数学,后来突然转到了计算机科学。我记得她告诉我她有多喜欢用代码构建东西,以及代码有多有用。她创建了一个程序,可以预测在校园里走过的最温暖的路径(她也是一名与寒冷作斗争的国际学生,所以我们俩都认为这是一个极其有用的发明。)我还做了一个非常生动的梦,让我重新评估自己这辈子在做什么。

所有这些事情让我开始在网上搜索,最终我组织了一次聚会。就是在那里,我被介绍给了我的一个联合创始人,罗纳德·马拉瓦尼亚,他当时在哈拉雷经营一个姜戈女孩工作室。他向我介绍 Python 是一个很好的教育工具,可以教没有计算机科学背景的人编程。我使用 Python 主要是为了帮助我们的非营利组织 ZimboPy 教学,所以虽然我在日常工作中不使用它,但我真的很喜欢与我们教的女孩分享它。

你还知道哪些编程语言,你最喜欢哪一种?

因为我主要是自学,所以我没有尝试过那么多其他语言。我知道 HTML、CSS 以及 Javascript 和 PHP 的基础知识,但除此之外就没什么了。我最近觉得有必要增加一些其他语言的知识,所以我一直在努力做一些可以帮助我做到这一点的项目。我对游戏开发和虚拟现实非常感兴趣,我知道 C++在这个行业中起着很大的作用,所以这肯定是我想学的东西!如果可以的话,我可能会上一些正式的课程。我可以肯定地说 Python 仍然是我最喜欢的语言,但是随着我的发展,这可能会改变,谁知道呢😉

你现在在做什么项目?

就像我之前提到的,我对游戏开发非常感兴趣,所以我一直在用 Pygame 做一个有趣的游戏项目。它真的处于早期阶段,老实说并不是很好,所以我不愿意向任何人展示我已经拥有的东西,哈哈,但这样做很有趣。我也一直在玩 Circuit Python 和 Adafruit 板。我希望很快就能利用这些来举办一个 Zimbopy 研讨会。这几个月非常忙,但我真的很期待继续下去。最后,我试图建立一个个人博客/网站。我已经买了域名和所有的东西!我只是在建立它的过程中,并在思考相关的内容,使它尽可能引人入胜!这些是我现在正在做的主要个人项目。

哪些 Python 库是你最喜欢的(核心或第三方)?

此时此刻,我不得不说 Circuit Python 库。我真的很喜欢摆弄硬件编程。我今年在 Pycon 得到的 Adafruit 板把我送进了一个灯光和声音的螺旋里哈哈!我通常认为使用硬件使得学习和尝试 Python 变得非常有趣。我通常会考虑如何让学习 Python 的基础知识更容易教授给我社区中的人,所以这就是为什么我会说它是我目前最喜欢的。

你是如何参与组织 ZimboPy 的?

Zimbopy 是我的朋友 Ronald Maravanyika 和 Mike Place 与我共同创办的非营利组织。其目标是让津巴布韦的女孩获得她们在该国其他地方不一定能获得的知识和经验。我非常热衷于赋予非洲女性权利,我认为这是我能想到的切实可行的最佳方式之一。

在 Python 软件基金会工作期间,你希望完成什么?

全球 Python 社区正以异常快的速度增长。我希望确保社区拥有资源和结构,能够帮助这种增长继续保持健康和积极。Python 社区是我见过的最友好、最多样化的社区之一。我真的很高兴确保同样的善良和多样性能够很好地转化为世界各地新的和即将到来的社区。

你还有什么想说的吗?

嗯,我刚刚与一群出色的组织者合作,举办了第一届非洲皮肯节。我认为进行得非常顺利,我认为我们的会谈阵容非常强大。几天后我们会把这些演讲上传到 Youtube 上,所以我鼓励所有读者关注我们的页面 @pyconafrica 来观看它们。我们也开始为明年做计划,所以我确信皮托尼斯塔感兴趣的人应该考虑参加。

谢谢你接受采访,玛琳!

本周 PyDev:玛莎·泰伊

原文:https://www.blog.pythonlibrary.org/2021/10/04/pydev-of-the-week-martha-teye/

本周我们欢迎玛莎·泰耶(@泰耶 _ 玛莎)成为我们本周的 PyDev!在这个 YouTube 视频中,玛莎讲述了她的第一个大型 Python 项目,她创建了一个聊天机器人。你可以在 LinkedIn 上联系玛莎。

Martha Teye

让我们花些时间更好地了解玛莎!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我叫 Martha Teye,是 Kwame Nkrumah 科技大学计算机科学专业的一名大四学生。在此之前,我在能源和自然资源大学获得了电气和电子工程学士学位。

我也是一个有两年工作经验的软件开发人员。工作之余,我喜欢志愿教年轻人(尤其是女性)计算机编程。

你为什么开始使用 Python?

在我的第三年实习计划期间(2017 年),我有机会在加纳地球观测研究和创新中心(EORIC)的高性能计算实验室实习。我的部分任务是理解数据操作和可视化,以及如何使用这些技术来分析实时数据。那是我第一次学习用 python 编程的时候。我必须学习基础知识和 python,以及一些介绍性的数据科学和数据可视化技术。

实习结束后,我决定在空闲时间探索基础数据科学和机器学习项目。此后,我对 python 产生了浓厚的兴趣,并决定甚至在我的最后一年项目中使用它,该项目是使用自然语言工具包开发一个聊天机器人,用于我所在部门的教学。

你还知道哪些编程语言,你最喜欢哪一种?

作为一名软件开发人员,我最常用的是 C#、Matlab、Typescript、JavaScript 和 PHP。我不确定我是否有最喜欢的,因为我喜欢根据我工作的项目来使用它们。但是我想说我最喜欢的是 C#和 Python。因为我使用了。NET 框架,我喜欢他们的库。Python 还因为它的库和易用性。

你现在在做什么项目?

我目前正在研究一个用于实时视频情感识别的模型。该项目旨在减轻黑非洲社会中从数据集阶段到部署阶段的一些偏见。我正在实施几种数据扩充技术,以确定减少数据集中偏差的最佳解决方案。该模型也是使用具有 VGG16 架构的卷积神经网络构建的。这其实是我正在进行的硕士研究,期待惊人的成果。

我也在为一个时尚品牌做布料图案的图像识别。这是我不久前开始的一个新项目,所以我期待着令人兴奋的结果。

哪些 Python 库是你最喜欢的(核心或第三方)?

我喜欢使用 Python,因为有库可以让工作变得更容易。我经常使用的肯定是我的最爱。熊猫、Matplotlib、TensorFlow、自然语言工具包、Tkinter、Open CV。

你是如何加入 Python 加纳社区的?

在我学习 python 基础知识的几个月后(2018 年 2 月),一个朋友和我谈到了即将举行的 Django 女孩研讨会和招募志愿者导师的事情。我总是在练习新东西,并与我的同事分享,所以他们中的一些人认为我可以胜任教授他人的任务。然而,我以前没有和 Django 一起工作过,所以我对申请有点怀疑,但我还是这样做了。我每天都在学习 Django,直到事情发生的那天。在为期两天的研讨会后,我被介绍给了 Python 加纳,因为他们组织了研讨会。我是活动中为数不多的女性导师之一,最终也成为了皮拉迪斯加纳的一员。到目前为止,我已经是一名会员了,我相信它对我的 python 之旅有所帮助。

我看到你在 Python 编程方面指导人们?你在 Python 中看到人们努力学习的一些常见的事情是什么?

没错,我用 python 指导人们,尤其是女士。这是我非常热爱的事情之一,因为我不得不艰难地学习 python,如果我没有得到任何指导,我怀疑我会成功。我在 PyLadies、Developers in Vogue、Tech Flair 等公司有志愿经验。通过这个,我注意到,大多数人在开始学习 python 时,有时会希望在一周或一个月内完成音节。由于这一点,他们没有真正的耐心去掌握基本概念,因此当需要实现一些数据结构、循环或类时,他们往往会发现很难。幸运的是,Python 的语法很容易理解,但是提供逻辑解决方案的能力是个问题。

对于循环来说,While 和 If 语句是人们努力学习的主要内容,有时甚至会阻碍他们进一步学习。我通常把这归因于大多数人没有花更多的时间去练习。就个人而言,我在理解 while 循环时遇到了一些挑战,直到我花了一些时间来回答 leetcode 上的示例问题,这提高了我的理解能力。

玛莎,谢谢你接受采访!

本周 PyDev:马丁·法森

原文:https://www.blog.pythonlibrary.org/2020/12/21/pydev-of-the-week-martijn-faassen/

本周,我们欢迎马丁·法森(@法森)成为我们本周的 PyDev!Martijn 是流行的 lxml 包Morepath web 框架等的创建者。你可以在 Github 上看看他还在做什么,或者看看他的博客

让我们花点时间来更好地了解 Martijn!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我来自荷兰,已婚,是一个 8 岁儿子的父亲。

我家附近有一块园地,我在那里种植水果、蔬菜和花卉,从中我获得了很多乐趣。它也让我远离电脑。我一边种花一边听播客。有了菜园,你要么收获很少,要么一下子收获很多。当你收获了一个大丰收时,挑战就变成了加工它,所以我做水果甜酒和果酱,我妻子做 sambal(一种东南亚辣椒酱)。我也喜欢发酵的魔力,所以我做了泡菜和酒精以及碳酸饮料。我也做酸奶是为了好玩!

除此之外,我还有广泛的兴趣:我喜欢历史、科学和批判性思维。我喜欢阅读,包括非小说类和小说类。我喜欢的小说包括科幻小说和神秘小说。

目前,我正在玩一个电子纸显示器,并为它编写一个 Rust 驱动程序。我也喜欢尝试人工生命模拟。

你为什么开始使用 Python?

1998 年,我正在用 C++进行人工生命模拟。我对使用脚本语言感兴趣,这样我就可以对源代码进行自动检查。在我的 Linux 计算机上,我有 Perl 可用,所以我尝试了一下。我能看出其中的吸引力,但我很难理解其中的大部分。我听说 Python 是一种替代的脚本语言。一天晚上,我打印出 Python 教程,睡觉前读了一遍。这对我来说很有意义:“它适合你的大脑”,这是 2001 年 Python 大会的口号。第二天我就可以写 Python 了。不是很地道的 Python,但后来很快就有了。因为它比 C++简单得多,所以我想用它做任何事情。那时我已经做过一些编程方面的临时工作,下一份临时工作(在当地大学)我问我是否可以使用 Python。“可读吗?”他们问我,我说是的,于是我在 1998 年有了一份写 Python 的工作,这在当时真的很罕见。我记得读过 Python 邮件列表,那里的人们渴望得到一份可以编写 Python 的工作。在我使用 Zope 参与 Python 的 web 开发后不久,我已经参与其中很多年了。关于我非常个人的 Zope 历史,请看https://blog.startifact.com/posts/my-exit-from-zope.html

那时 Python 有一个小得多的社区。我必须向每个人解释 Python 是什么,甚至向其他程序员解释。我看着它成长为世界上最流行的编程语言之一。这在很多方面都是一个很大的优势,但是一个小的社区有不同的优势。

认识其中的杰出人物是如此容易——即使我在早期没有编写多少有价值的 Python 代码,通过邮件列表和在会议上认识人也是很容易的,包括 Guido。当我在 2002 年开始参加 EuroPython 系列会议时,这帮助了我。我写的第一封邮件是给圭多的,问他是否会来,我是否可以提到他的名字。在他说“是”之后,我给很多其他人发了邮件,其中一些人在组织邮件方面比我做了更多的工作。然后我们开了第一次会议!当然,现在要让 Guido 说“是”还需要更多的努力,因为社区里还有很多事情要做。

有趣的是,在 1998 年,Python 已经是一种有很多库和集成的语言:从数字处理到 Windows 集成。Python 可用库的广度和深度是其持久的优势之一。

你还知道哪些编程语言,你最喜欢哪一种?

我认为自己是一名 web 开发人员,由于前端在过去十年变得更加突出,JavaScript 和 TypeScript 也是我经常使用的语言。我喜欢绕着堆栈转。许多概念和编程技术在后端代码中与在前端代码库中一样有用。

看了几年 Rust,去年才认真开始学。我只在业余爱好项目中使用过它,但它是一种有趣的语言,因为它可以做出不同的选择。

这些年来,我用过很多编程语言:BASIC、汇编、C、C++、Pascal 和 SQL 等等。我喜欢阅读编程语言手册,也喜欢玩它们,所以我也涉猎了不少,比如 Prolog、Haskell、Nim 和 ReScript,但都不是特别认真。

Python 是我多年来最喜欢的编程语言,我仍然非常喜欢它。但我欣赏许多编程语言的各个方面,所以我发现现在更难选择一种最喜欢的。我也喜欢写打字稿或 Rust。

你现在在做什么项目?

我很自豪的一个项目是 Morepath。这是一个 Python 微型网络框架。代码库很小,很容易使用,但是功能强大。它被设计用来构建复杂的应用程序和 REST APIs。我写了一点关于这里的不同之处:https://morepath.readthedocs.io/en/latest/compared.html

Morepath 位于我创建的两个库之上:Reg 和 Dectate,Reg 是谓词调度的实现,Dectate 是围绕 decorators 构建的高级软件配置库。

让我解释一下 Reg。

您可以将 Python 方法视为函数,您可以将其视为对“self”类的分派。因此,如果您对 Chicken 类的一个实例调用“noise”方法,它会发出咯咯声,但是如果您对 Rocket 类的一个实例调用“noise”,它会发出轰鸣声。执行哪个实现取决于调用它的对象(或“自身”)的类。

对于函数也可以这样做:在第一个参数的类上调度的函数。通过这种方式,您可以向现有的类中添加类似“方法”的东西,而不必更改它们。例如,如果您想将领域模型从 UI 层中强烈地分离出来,这可能是有用的。这也作为@functools.singledispatch 装饰器内置到 Python 标准库中。

但是,有时您希望不只是调度第一个参数,而是同时调度多个参数。这被称为多重分派。有时你不仅想调度参数的类,还想调度其他属性。例如,在 Morepath 中,我们使用 Reg 来调度 web 请求:模型实例的类、请求方法(GET/PUT/POST/DELETE 等)以及 URL 路径最后一段的名称(在“文档/编辑”中的“编辑”)。Reg 允许您这样做。

用 Reg 探索的一件有趣的事情是对 Python 类型的支持。

要了解更多关于 Dectate 的内容,我推荐你阅读我的关于框架模式的博客文章。https://blog.startifact.com/posts/framework-patterns.html
关于“语言集成声明”的条目解释了 Dectate 背后的想法。

那是框架的东西。当然,我也从事应用方面的工作。

我花了几年时间在一个大型的 Python/Django 项目上,该项目使用 React + MobX 前端进行发票处理。我帮助构建了它,并指导团队中的开发人员。

最近我开始做一个不使用 Python 的项目。那是我 20 多年来第一次。都是用 TypeScript,用 React,NextJS 和各种 JS 后端技术。我喜欢发现在 JS 框架中做事情的很酷的新方法,尽管有时我会遇到我在 Python 世界中习惯的、在 JS 中错过的东西:最近的一种在测试用例之间进行数据库回滚的方法,这是 SQLAlchemy 和 Django ORM 现成提供的。但是我们实现了一种方法。

哪些 Python 库是你最喜欢的(核心或第三方)?

我的朋友 Holger Krekel 为单元测试创建了 pytest,我是它的忠实粉丝。我喜欢你不需要记住太多就可以开始使用它。

我也喜欢 Black,它是一个源代码自动格式化程序。可以让体力劳动和讨论消失的工具是伟大的。

lxml 包的起源是什么?

现在很难相信,但是很久以前 XML 是一种很酷的新技术。Python 有很多 XML 库。其中一些相当快,但没有太多的特性,而另一些有更多的特性,但速度慢且内存不足。有一个既快又有很多特性(XPath、XSLT、schemas)的库,以 Python 绑定到用 C 编写的 libxml2 和 libxslt 的形式,但是使用它们就像用 Python 编写 C 一样:您必须注意内存泄漏,并且可能会出现分段错误。这根本不是一个好的 API。

Fredrik Lundh 实现了一个比 DOM API: ElementTree 好得多的用于 XML 的 Pythonic API,后者后来被添加到 Python 标准库中。大约在我开发 lxml 的同时,他也实现了 cElementTree,速度非常快。但是它仍然主要是一个 DOM API,不支持其他特性。

我决定试试能否在 libxml2 上实现 elementtree API,忽略现有的 Python 绑定。为此,我使用了 Pyrex,它后来被重命名为 Cython。我让它工作了:我有一个基于 ElementTree 的 Pythonic API,速度非常快,扩展了对 XPath、XSLT 和 schemas 的支持。

然后我很幸运,有人更擅长维护它,Stefan Behnel,很早就接管了它,并把它推得更远。他还帮助启动了 Cython 项目来改进 Pyrex。

这是我创建的一个开源项目,我在任何地方都会碰到它。

Martijn,谢谢你接受采访!

本周 PyDev:马丁·菲茨帕特里克

原文:https://www.blog.pythonlibrary.org/2020/02/17/pydev-of-the-week-martin-fitzpatrick/

本周,我们欢迎马丁·菲茨帕特里克( @mfitzp )成为我们本周的 PyDev!马丁是“用 Python 和 Qt 5 创建简单的 GUI 应用程序”的作者,也是 LearnPyQt 网站的创建者。你也可以查看他的个人网站或者通过访问他的 Github 简介来看看他在做什么。让我们花些时间更好地了解马丁!

Martin Fitzpatrick

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名来自英国的开发人员,在过去的 12 年里一直从事 Python 的工作,过去的 5 年里一直住在荷兰(阿默斯福特)。

早在 90 年代初,我就开始在 8 位机器上编写代码,创建质量可疑的平台游戏。后来我转到了个人电脑,先是写 DOS 游戏,然后在有人发明了互联网之后,做了一点网络开发工作。从那以后我就断断续续地编程。

我没有将软件开发作为职业,而是绕道进入了医疗保健/生物学领域。我先在救护车服务部门工作,然后做理疗助理,最后完成了生物信息学和免疫学的学位和博士学位。这最后一步是我发现 Python 的地方,最终引导我到了现在的位置。

闲暇时,我在工作室里修补修补,创造愚蠢的电子游戏和机器人。

我喜欢机器人。

你为什么开始使用 Python?

我第一次使用 Python 是在 2007 年,当时我正在寻找用 Drupal/PHP 建立网站的替代方法。这让我找到了 Django 和 Python。感觉比我以前用的更简单,更符合逻辑,在一个下午拼凑了一些东西后,我基本上被迷住了。

在接下来的几年里,我几乎完全用 Python 进行 web 开发,如果不是因为我的博士学位,它可能会一直这样。

我的论文项目是研究新陈代谢对类风湿性关节炎的影响,并要求我分析一些大块的数据。在过去的 4 年里,我一直在使用 Python,在这里尝试和使用它似乎很自然,而不是停下来学习 R 或 MATLAB。那时 Python 数据分析的前景仍然有点粗糙,但是进步很快,“熊猫和 Jupyter 笔记本首次出现在这个时期。在我博士学位的最后几年,我希望让我编写的工具更容易被非技术用户使用,并开始用 PyQt5 构建 GUI 应用程序。

在过去的几年里,我发现了微控制器(ESP8266 和 Raspberry Pi)并用 MicroPython 构建了一些愚蠢的东西。

你还知道哪些编程语言,你最喜欢哪一种?

毫无疑问,Python 是我的最爱。这种语言的某些东西与我的大脑非常契合,可能是所有的空白。

我学过也忘了不少语言,包括 PHP,Pascal,Perl,Prolog 和 Z80 汇编。我仍然可以用 C 语言拼凑一些东西,MicroPython 算不算另一种语言?

你现在在做什么项目?

在过去的一个月里,我一直在更新我的 PyQt5 书用 Python & Qt 和附带的 PyQt5/PySide2 教程创建简单的 GUI 应用程序。有很多好的初学者资源,但是一旦你开始开发真正的应用程序,你就有点不走运了。我现在有了一个小的作家团队,这真的让事情更上一层楼,这很有趣。

该网站本身是在 Wagtail/Django 之上定制的,我想让其他想拥有自己的课程和教程的 Python 开发者也能使用它。

在我的工作台上,我有几个正在使用 Python 开发的电子游戏项目,但是还不能分享任何东西。到目前为止,我最大的成功是 Etch-A-Snap 一款树莓 Pi 驱动的 Etch-A-Sketch 相机。基本上,你拍一张照片,它会自动把它画在一个迷你的草图上。那幅画被一位日本收藏家买走了,真是令人震惊。

如果有人有兴趣与我合作,我随时欢迎合作!

哪些 Python 库是你最喜欢的(核心或第三方)?

Python 数字库(numpy,scipy,pandas)和 Jupyter 笔记本对我来说是最突出的。总的来说,它们为我节省了大量的工作时间,这些工具的出现极大地促进了 Python 的流行。

我想我也必须在这里说一下 PyQt5/PySide2。

你是如何成为自出版作者的?

当我开始用 PyQt5 编写 GUI 应用程序时,这是一场艰难的斗争。当时可用的示例或教程非常少,所以我只能从 C++转换示例。一旦我想通了,我就坐下来,写下我在路上需要学习的一切,“希望能拯救其他人免于同样的命运。那是这本书的第一版,从那以后我就一直定期更新。

自助出版是最简单的选择,让我可以专注于写我想读的书。我从出版商那里得到的报价都带有我不同意的发行上的变化或限制(这本书目前是知识共享许可的)。

为什么选择 PyQt 而不是其他 Python GUI 工具包?

在我博士期间,我正在开发一个可视化细胞中化学路径的工具,并且需要一个可视化重叠路径的好方法。我能找到的唯一解决方案是在嵌入式窗口中使用 HTML/Javascript 进行渲染。

我用 Tkinter、wxWidgets 和 Qt 构建了这个应用的原型,实际上我很喜欢 wxWidgets 的原生小部件。但是 Qt 是唯一一个自带内置浏览器的工具包,因此可以跨平台可靠工作(我在 MacOS 上,我的主管在 Windows 上)。

其余的,正如他们所说,都是历史了。现在 Qt 给我带来的最大好处是 QGraphicsScene 矢量图形画布,它非常适合交互式可视化。

你对其他潜在作者有什么建议吗?

首先,每个人都知道某件事,或者某件事的组合或者某件事从某个角度是独一无二的,足以构成一本书的基础。即使一本书已经存在于你的领域,你自己的声音或经历也是有价值的。

其次,选择一个你感兴趣但也喜欢做的话题。写一本编程书意味着写大量的示例代码,如果你不喜欢创作这些东西,那将是一次不愉快的经历。

我写这本书的第一步是开始收集 PyQt5 应用程序的例子,包括像 Paint 和 Solitaire 这样的经典应用程序的克隆。这帮助我弄清楚了什么是“必需的”知识,但“更重要的是”这很有趣。

你还有什么想说的吗?

我经常收到后来才开始编程的 Python 开发人员的问题,他们问我“我是不是太老了,不能开始专业地做这件事了?”

答案是否定的!我的职业生涯跨越了行政管理(财务、人力资源)、医疗保健(救护车服务、理疗助理、残疾人支持工作者)、研究科学家(博士和博士后),并在 37 岁时获得了我的第一份真正的“编程工作”。

学习用 Python 编程的一个很大的好处是,它可以应用于许多不同的问题领域。无论你是积累自动化办公报告的经验,还是做数据分析或建立网站,这些技能都会转移,你的 Python 也会进步。

马丁,谢谢你接受采访!

本周 PyDev:马丁·曼斯

原文:https://www.blog.pythonlibrary.org/2021/12/20/pydev-of-the-week-martin-manns/

本周,我们欢迎马丁·曼斯成为本周的 PyDev!Martin 是 pyspread 的创始人,py spread 是一个基于 Python 编程语言编写的非传统电子表格应用程序。这是一个非常好的应用程序,你可以自己使用或者从中学习。

让我们花点时间来了解更多关于 Martin 的信息!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)?

我的背景是商业和工业工程。我是德国锡根大学的教授,在那里我担任生产自动化和装配的职位。

In my spare time, I am enjoying programming, hiking and -if possible again-traveling.

Why did you start using Python?

Around 1998/1999 during my studies I was looking for a language, in which I could program faster. Reading the Python tutorial hooked me. Giving it a try, Python has worked for me since then.

What other programming languages do you know and which is your favorite?

While I have used quite a few programming languages, I am using Python for 90% of my programming tasks. For performance/memory critical applications I normally employ C/C++. Other languages are mostly task-specific such as the IEC 61131 languages for PLC programming.

What projects are you working on now?

Of the research projects that you may be interested in is MOSIM. The consortium is creating an open-source framework for making 3rd party human motion models easily available in game engines (e.g. Unity, Unreal, Blender).

Which Python libraries are your favorite (core or 3rd party)?

I really like the standard libraries.

How did the pyspread package come about?

In one of my previous jobs, I had written a decision support system in Excel. I wished I had something like pyspread back then. Why not just write it yourself?

What challenges did you face when you were creating pyspread?

First of all, pyspread was the largest application that I had ever built. The architecture was an issue in the beginning. However, the biggest challenge was the transition to Python 3. I had been using wxPython, which had no usable Python 3 port for too long. Almost rewriting pyspread using PyQt took years - until November this year, when the first stable release 2.0 for Python 3 came out.

Thanks for doing the interview, Martin!

本周 PyDev:马丁·乌里韦

原文:https://www.blog.pythonlibrary.org/2019/11/18/pydev-of-the-week-martin-uribe/

本周,我们欢迎马丁·乌里韦( @clamytoe )成为我们本周的 PyDev!马丁在的 PyBites 帮忙。你可以在 PyBite 的 Slack 频道上找到他,他回答了很多与 Python 相关的问题。你也可以通过马丁在 GithubLinkedIn 上的个人资料了解他在做什么。让我们花一些时间来更好地了解 Martin!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我 46 岁,婚姻幸福,有 8 个孩子。我在洛杉矶中南部出生和长大。我还在上高中的时候就加入了加州国民警卫队。我在 11 年级和 12 年级之间参加了基础训练;回来后以优异的成绩毕业,一个月内就去参加高级初级培训,在那里他们教我如何修理直升机无线电。几年后,我决定全职加入正规军,在自动化后勤部门又干了 8 年,并于 2001 年作为一名中士光荣退伍。

出狱前,我参加了一个学期的全日制大学,作为重新入伍奖金的一部分。我很喜欢它,我非常努力地学习。我是如此兴奋地学习,以至于当我回去工作时,我推动自己继续成长。因此,我能够获得 MCSE、MCP+I 和 A+认证,这使我能够担任富达的高级现场工程师。我被承包给我们众多客户中的一个,PNC 银行,在他们达拉斯的保险箱所在地。这一名称多年来一直在变化,但它需要大量的硬件和软件支持。如果你不知道,一个锁箱是每个人通过蜗牛邮件付款时处理支票的地方。所有的东西都从正面和背面成像并输入银行的系统,银行的客户可以通过安全的代理连接立即访问他们的文件。支票兑现后,第二天就可以转账。在月末,银行客户的图像被放在加密的 CD 或 DVD 上并邮寄给他们。

为了释放压力,我喜欢和我的孩子一起玩《我的世界》,编辑电影,玩 Beat Saber,参加在线课程,并做一些 Python 编码。

你为什么开始使用 Python?

在部队时,我负责维护第四步兵师的后勤数据库。一旦我发现我可以自动化我的大部分工作,我就着了迷!我每天都要生成一份报告。那东西是个庞然大物,花了几个小时才组装好。做了几次后,我决定录制一个宏,下一次,只需要几分钟!我从宏开始,到编辑 VBScript 代码本身,再到在 nt 服务器上编写批处理脚本。在我离开的时候,我唯一要做的事情就是确保磁带在磁带机中,以便进行夜间备份!

当我进入我现在的角色时,这是一场全新的比赛。在那之前,我只熟悉 Windows NT 和 Windows 95。我被扔在 FreeBSD 网络的一个终端前,并被告知要处理好它!就像他们说的,用火来审判!我很快就掌握了窍门,因为我们的整个平台都运行在 Perl 上,所以我开始涉猎了一下。很快我就开始编写 Perl 和 shell 脚本来简化我的工作。

在我人生的这个阶段,我对什么都有点兴趣。从测试、网页开发、数据库管理到 3D 建模/装配/动画。我甚至获得了 Macromedia Flash 设计师的认证!伙计,我在那个平台上下注是不是错了...我的兴趣如此分散,以至于我擅长很多事情,但没有一件是专家。我终于受够了,决定是时候坚持一件事,变得真正擅长。

在 pentesting 期间,我遇到了几个 Python 脚本,与 Perl 相比,它们是多么容易阅读,它们是多么强大,这给我留下了深刻的印象。我决定 Python 将乘我的火车,我希望没有第二个想法。

你还知道哪些编程语言,你最喜欢哪一种?

我在学习一些大学课程的时候学习了 Java,但是我不太喜欢它。我对以下内容有足够的了解来完成工作:HTML、CSS、JavaScript、Perl、SQL 和 BASH。Python 是我的最爱;尽管我的工作不需要我写代码,但我几乎每天都在使用它。

你现在在做什么项目?

目前,我正在编写一些代码来收集 PNC 全国网络中打印机使用情况的统计数据。他们目前有一个将打印整合到一个位置的项目,并且需要很好地了解每个站点打印了多少文档。对于线程,我基本上只是用请求和 BeautifulSoup 来抓取打印机内部 web 服务器的页面计数,每小时一次,然后转储到一个日志文件中,然后使用另一个脚本用 Pandas 处理数据,用 matplotlib 生成图表。老板对它印象深刻,他希望我对它进行扩展,以便它可以在我们所有客户的位置使用。

另一方面,我正在继续学习更多的 Python。我正在研究一些 asyncio 资料,并学习更多关于部署 API 服务的知识。我通常把我所有的东西都放在 GitHub 上,所以这是一个查看我都做了些什么的好地方。

哪些 Python 库是你最喜欢的(核心或第三方)?

我已经提到了一些我最喜欢的,requests,BeautifulSoup,Pandas 和 matplotlib,但是如果我必须添加更多,我会说 collections 模块,black 和 cookiecutter。我在 GitHub 上有我的 toepack cookiecutter 模板,我非常自豪。我用它来自动生成大量样板代码和文件,这些代码和文件会出现在我的大多数新项目中。

你是如何开始在 PyBites 工作的?

我刚刚在 Coursera 上完成了一些 Python MOOC 课程,我不想失去我所学到的东西,所以我在寻找一些编码挑战。我遇到了 pybit.es,我喜欢他们博客挑战的多样性。我已经找到了一些其他的网站,但这些网站看起来本质上都是算法,我想要一些真实世界的情景挑战;哪个 PyBites 提供了满满一盘!当时,codechalleng.es 甚至还不存在,它都是手动的 git 命令,这本身就是一个巨大的挑战,但 Bob Belderbos 对我非常耐心,在那些黑暗的日子里一直握着我的手。

我研究 Python 已经有六年多了,直到我遇到鲍勃和朱利安·塞杰拉,我才真正开始取得进展。多亏了他们,我才走了这么远,我真的很感激。

你在 PyBites 做什么?

我帮助 Bob 和 Julian 验证新功能的功能,并测试、校对和建议新功能。我还建议新的特性、UI 增强、创造新的挑战,我有点像 Bob 的共鸣板,可以激发新的想法。

你还有什么想说的吗?

既然大家都这么问,我的网上昵称 clamytoe 是我第一个孩子起的。19 年前,我妻子和我试图卖掉我们在胡德堡外的房子。如果你曾经卖过或者买过房子,你就会知道有大量的文书工作要做。我和妻子正在看合同,当我儿子跑过来的时候,我们已经把文件撒了一地。他踩过的床单总是粘在他的小脚上。我记得我把他抱起来,说了这样的话,“该死,你的脚趾头好湿!”。他咯咯地笑了笑,又走开了,但这个名字还在。

马丁,谢谢你接受采访!

本周 PyDev:玛丽·切斯特-卡德韦尔

原文:https://www.blog.pythonlibrary.org/2020/11/09/pydev-of-the-week-mary-chester-kadwell/

本周我们欢迎 Mary Chester-Kadwell(@ marycktech)成为我们本周的 PyDev!玛丽是剑桥大学图书馆的软件工程师。你可以在 Github 上看到她的一些活动。

我想你会发现她的 Python 之旅真的很有趣。所以事不宜迟,让我们了解更多关于玛丽的信息吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是英国剑桥大学图书馆的软件工程师。在工作中,我在开发软件、为学者提供建议和教授 Python 编程之间分配时间。我开发的一些软件是关于为图书馆用户提供服务的,但也有一些是为研究项目设计的。我经常和艺术、人文、社会科学、图书馆和博物馆的学生和工作人员一起工作。我尝试了各种有趣的领域,比如机器学习、自然语言处理、手写识别和计算机视觉。

就正规教育而言,我的背景是跨学科的(我获得了考古学博士学位),所以我通过一条不寻常的途径进入了软件行业,并在后来的生活中。我认为这都是相关的经验,因为软件是人类和计算机之间的合作。因此,我有动力帮助其他人找到他们的道路,并在他们的编码之旅中发展。如果你没有传统的计算机科学或 STEM 背景,那么培养尝试编码的信心和坚持尝试的毅力就是成功的一半。

在家里,我可能会修补一些代码或深入一些个人兴趣,比如 CPython 核心。但是坐在电脑前从根本上对你的健康有害!所以我尽量腾出时间做一些积极的事情,比如锻炼。我也是一个素食主义者,因为这是任何个人都可以采取的一个简单的步骤来减少他们的碳排放。

你为什么开始使用 Python?

在工作场所呆了几年后,我开始寻找新的方向。起初,我不确定我是否能做编程,因为我认识的程序员几乎都是男性。这些年来,我曾在不同的时间点尝试过为小事情编写代码,但似乎没有任何进展。书籍和文档是如此枯燥,它们对你已经知道的东西做了太多假设。现在,在 2020 年,我们在优秀的球场和资源中游泳——我们是多么幸运!

这个时候是商业 MOOCs 的早期,所以和 Coursera 一起上了一节课,学习 Python。令我惊讶的是,我喜欢上了它,并立即报名参加了一个开放大学的算法、数据结构和可计算性课程,该课程也使用 Python。这被证明是我所需要的至关重要的基础,我从未回头。

你还知道哪些编程语言,哪种是你最喜欢的?

我认为自己是一个热情的多语言者。我(几乎)从未遇到过我不喜欢的语言。我必须限制自己学习新的,因为它们有点像爆米花——更美味更可口!最近,我在 Java 和 JavaScript 方面做了很多工作,在其他方面也做了一些,因为我的团队支持各种代码库。特别是在过去的几年里,我更深入地了解了 Python,这也是我目前最喜欢的。

但语言就像工具,懂几门就意味着你有丰富的工具箱。同时(很像自然语言)编程语言表达了一种思维方式,我真的喜欢用不同的方式思考。这就是为什么当我最近开始学习 Rust 时,我对我的大脑必须做的扭曲翻转感到高兴。

你现在在做什么项目?

我目前正在开发一个程序,用于自动分割数字化植物标本的照片,并基于识别图像中的信息(如条形码)创建元数据。这是每个博物馆和图书馆在将实物转化为数据时都面临的过程。

伦敦自然历史博物馆等机构在这一领域已经做了很多有益的工作,但这个项目将帮助剑桥大学植物标本馆释放其令人难以置信的历史收藏的潜力。如果你想了解不断变化的气候和生物多样性,这里是挖掘新数据的好地方。

你用 Python 做什么样的教学?

过去几年,我受邀为剑桥数字人文学院教授文本挖掘和自然语言处理。参加的人通常是从编码或文本挖掘开始,或者两者兼而有之。这是一个接触那些不认为编程适合他们的人的机会。今年早些时候,我为我们管理的一所数据学校主持了一门关于命名实体识别的课程。这是一个来自世界各地文化遗产机构的多元化团体。

明年,我将教授一门关于数字人文学科良好编码实践的课程,这让我特别兴奋。这是一个大学里不会教的话题,尤其是非 STEM 学科。让研究软件开放、可复制和可持续对于高质量的研究非常重要。你可以在 GitHub 上看到我的一些课程资料。

哪些 Python 库是你最喜欢的(核心或第三方)?

我喜欢一点代码考古学,所以我要说标准库“dis ”,它允许你反汇编 Python 字节码。只需将一些代码传递给' dis.dis()',就可以输出运行在 Python 虚拟机上的人类可读形式的指令。对于任何 Python 用户来说,查看 Python 内部只是一个微小而简单的功能,这是多么不可思议啊!

玛丽,谢谢你接受采访!

本周 PyDev:梅森·埃格

原文:https://www.blog.pythonlibrary.org/2022/05/09/pydev-of-the-week-mason-egger/

本周,我们欢迎梅森·艾格(@梅森·艾格)成为我们本周的 PyDev!梅森是 PyTexas 的组织者,也是 Gretel 的开发者拥护者。梅森还维护着一个 Python 网站,在那里你可以看到梅森一直在做什么。

让我们花几分钟时间来更好地了解梅森!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我叫 Mason Egger,目前是德克萨斯州奥斯汀市 Gretel 公司的一名开发人员。我有音乐和计算机科学的双学位。我最初想成为一名音乐教师,但最终从事了软件工程。在我担任 Gretel 和 DigitalOcean 的开发人员之前,我是 Vrbo 的现场可靠性工程师。我喜欢探索新的地方。带领我去露营和划独木舟。

你为什么开始使用 Python?【T2

我在大学时开始使用 Python。我当时是一名学生工作者,为计算机科学系做软件开发,我们正在重写我们的网站。这导致我选择了 Django(可能在 1.4 - 1.6 的范围内)。毕业后,我的第一份工作是 Python,从那以后我就迷上了它。

你还知道哪些编程语言,哪种是你最喜欢的?

除了 Python,我还知道 Java、Go、C/C++和 Perl。到目前为止,Python 是我的最爱,也是我大多数项目的首选。

你现在在做什么项目?
目前在自学数据科学和机器学习。在从事系统工作多年后,我觉得是时候扩展我对 Python 用例的理解了。我也在重写 PyTexas 网站和工具。

作为一名开发者倡导者,你做些什么?

作为一名开发者拥护者,我有责任确保开发者在使用 Gretel 的产品时能够轻松愉快。我关注 3Cs:代码、内容和社区。在 Code 下,我创建示例应用程序,为开源项目做贡献,测试产品并给出反馈。在 Content 下面,我写教程、博客、快速入门指南、文档等。以及其他内容媒体(视频)。在 Community 下,我参加各种会议,发表演讲,提供帮助,与开发人员接触,并培养一个对合成数据感兴趣的社区。

我的主要关注点是并将永远是帮助开发者社区实现他们的目标和建立他们的想法。

你是如何成为 PyTexas 的组织者的,你学到的最重要的三件事是什么?

我成为了 PyTexas 的组织者,通过和现在的组织者联系,说我想帮忙,然后出现来帮忙。社区总是需要更多的志愿者。

我学到的东西:

  • If you want to be involved, reach out to someone already involved. We always need more help
  • Everyone should submit to the CFP
  • It is 100% ok to turn down getting accepted to a CFP. We understand that things change between when you submitted and when we send out acceptances.

你最喜欢哪些 Python 库(核心或第三方)?

我最喜欢的 python 库必须是 argparse。我喜欢创建命令行工具,argparse 健壮且易于使用。

你还有什么想说的吗?
参与你的社区吧!它改变了我的整个职业生涯,我为此感到非常高兴。

梅森,谢谢你接受采访!

本周 PyDev:马西莫·迪皮耶罗

原文:https://www.blog.pythonlibrary.org/2016/03/21/pydev-of-the-week-massimo-dipierro/

本周,我们欢迎马西莫·迪皮耶罗( @mdipierro )成为我们本周的 PyDev!马西莫是 web2py 的发明者和首席开发者,但他也为许多其他项目做出了贡献,你可以在他的 github 简介上看到这些。他还是以下书籍的作者:Python 中的注释算法:在物理、生物和金融中的应用web2py 完整参考手册。让我们花些时间去更好地了解他!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我今年 44 岁,出生在意大利,从小就喜欢数学和科学。我拥有比萨大学的物理学学士学位和英国南安普顿大学的理论物理学博士学位。这意味着我能读懂谢尔登在《生活大爆炸》中写的大部分公式。虽然,当 Sheldon 在研究弦理论时,我在研究晶格量子色动力学,一种 QCD 的计算方法,这种模型描述了夸克如何结合在一起形成宇宙中的大多数物质。这就是我来到美国的原因:我来到这里,在费米国家加速器实验室做博士后研究员。最终,我意识到我在计算机领域的学术生涯比在物理领域有更好的机会,于是我接受了 T2 德保罗大学计算机学院的一份工作。我大部分时间都在编程、做研究和咨询。我喜欢水肺潜水、航海和滑雪,但是我不能做我想做的那么多。

你为什么开始使用 Python?

大约 10 年前,我开始使用 Python。当我还是一名物理学家的时候,我以一个用于晶格量子色动力学计算的 C++库而闻名,这个库被称为费米量子色动力学库。我为它创建了一个 Python 包装器。

你还知道哪些编程语言,你最喜欢哪一种?
我知道很多编程语言。我最了解和最喜欢的是 C、C++、Python 和 JavaScript。我学的第一门语言是 COBOL。我父亲教我的。第二个是基本的。第三个是帕斯卡。第四个是 Clipper,我卖出的第一个程序是 Clipper。我在正式课程中学到的唯一语言是 Scheme。我从名著《计算机程序的结构和解释》中学到了这一点,并编写了符号微分代码。在我的博士论文中,我使用高性能的 FORTRAN 和 C++编写了一个 Cray T3E,并使用了 MPI。在 DePaul,我教过 C/C++、Java、Python、JavaScript 和 OpenCL。Java 是我最不喜欢的语言。JavaScript 是我第二不喜欢的,但随着时间的推移,我已经学会欣赏它,我发现自己最近比 Python 使用得更多。

你现在在做什么项目?

我正在做许多项目,有些我不能谈论。大多数项目都与 Python 语言有关,尤其是 web2py。我为 web2py 用户提供支持,有时帮助他们启动新项目。其他时候,我帮助他们修复旧项目。我还在不断开发新的 Python 模块,以拓展 web2py 的功能,探索它的未来。一个花费了我大量时间但与 web2py 无关的项目是卡米奥。我是 http://camio.com T2 公司的高级工程师,我们已经建立了一个平台,可以将任何带摄像头的设备变成安全摄像头。图像和视频被上传并存储在云中,由神经网络进行分析,并使用自然语言进行搜索。大部分代码都是用 Python 构建的,包括机器学习。

哪些 Python 库是你最喜欢的(核心或第三方)?

我最喜欢的图书馆是 pickle 和 ast。Pickle 是一个核心库,允许序列化和反序列化 Python 中的几乎任何数据结构。这意味着它是微不足道的保存和恢复任何程序的状态在任何时候,毫不费力。在编译语言中没有等价的东西。Ast 是另一个核心库。它允许处理抽象语法树,即代码的符号表示。例如,这使得 Python 代码能够实时转换成其他语言,如 C/JavaScript/OpenCL,如我的项目https://github.com/mdipierro/ocl,Cython 和 Numba。

你还有什么想说的吗?

我喜欢 Python 有很多原因。一个是简单的语法。另一个是它的数字库(numpy,scipy,sympy,matplotlib,scikit learn)的强大功能。另一个原因是,它是一种解释性语言,因此,它可以做神奇的事情。例如,它可以用 code 自省,可以反编译并重新编译成其他语言。

如果你正在阅读这篇文章,可能是因为你知道我是 web2py 的首席开发者。你可能听说过。你所听到的可能与它不太相符。在 web2py 中,我们试图做一些独特的事情,在许多方面,我们采用了一种与其他 Pythonic web 框架非常不同的方法。一个独特的特征是它的哲学:在 web2py 中,“不要重复自己”胜过“显式比隐式好”,因此一切都有默认值。这意味着代码非常紧凑,但并不意味着代码不能定制。另一个特性完全包含了电池:我们为 web2py 提供了一个 sqlite、一个数据库抽象层、一个支持 SSL 的多线程 web 服务器、基于 web 的 IDE、用于记录错误的标签系统、缓存库(redis、memcache)、登录方法(ldap、pam、openid 等)。)、表单小部件、验证器、支付系统等。Web2py 在许多方面都是第一个,它基于 WSGI,具有自动数据库迁移,具有强制 CRSF 保护,并且自 2007 年以来就有了基于 Web 的 IDE。我们仍然向后兼容 2007 版本。然而,我们已经取得了很大进展。例如,我们对基于 Tornado 的 websockets 和异步后台任务队列的支持已经有 5 年了。底线是:也许你应该再看一眼 web2py,也许你可以帮助我们把它做得更好。

感谢您接受采访!

本周 PyDev:马特·哈里森

原文:https://www.blog.pythonlibrary.org/2015/05/04/pydev-of-the-week-matt-harrison/

本周,我们欢迎马特·哈里森作为本周的 PyDev。马特是几本 Python 书籍的作者。他是 PyCon 和其他会议及用户组的著名演讲者。去年,他发布了一个 Python 培训包,这是一个学习 90% Python 的 Python 课程。让我们花些时间去更好地了解他吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我应该先说:我使用 emacs,所以如果你需要的话,现在可以停止阅读🙂

我经营着一家小公司, MetaSnake ,它为专业人士提供密集的 Python 培训,以及围绕原型、数据科学和如何高效使用 Python 的咨询服务。我在犹他州长大,但在斯坦福上学,毕业后在湾区呆了一段时间,为各种初创公司工作。从大学开始,我最大的时间浪费是极限飞盘。在湾区,我可以全年和几乎一周的任何一天参加皮卡,联赛和俱乐部的比赛。(这实际上是一个很好的社交机会,因为事实证明,书呆子更喜欢终极版,我遇到了很多有趣的人,并和他们一起玩)。

这些年来,我在多个领域工作过:高可用性、搜索、开源堆栈管理、商业智能、存储、数据科学、教育和移动应用程序设计。大多数任务都是使用 Python 完成的。我已经用 Python 编程 15 年了,并且看到了它的成长。当我开始工作时,我们需要隐藏我们正在使用的语言,因为尖头型的人不信任任何旧语言。现在,Python 是最受欢迎的语言之一,在大学里被教授,在初创公司和成熟公司里被使用。

mharrison

为了离家更近,我们搬到了犹他州。虽然没有什么比得上湾区的科技场景,但我在这里很开心。拥有四个季节是美妙的(我今天早上滑了 18 英寸的粉),但即使在犹他州,我也有机会全年无休。技术场景正在改善:有大量的本地用户组和会议让书呆子们开心。这里对 Python 开发者的需求很大。

我非常相信帮助他人和回报他人。我帮助运行犹他州 Python 用户组。除了在会议上演讲和做培训之外,在过去的五年里,我还志愿为小学生教授为期 8 周的编程概念。这是有益和有趣的。尽管孩子们比前几代人有更多的机会接触技术,但他们面对的设备和应用程序让他们无法理解电脑是如何工作的。尝试不同的方法向他们解释潜在的、隐藏的计算机科学概念是很有趣的。我最近的一次尝试是使用无人机,我认为相当成功。

你为什么开始使用 Python?

在我校外工作的第一家创业公司,我和一些非常聪明的人一起从事信息检索工作。我和一位同事负责为一个内部工具实现 tf-idf。他对 Tcl 很熟悉,而我当时正在使用 Perl(有人告诉我,如果我在学校时学习 Perl,我将更容易被雇用)。我们俩都没有兴趣跨越到对方语言的桥梁上。但是我们都对 Python 感兴趣,并认为这是一个令人愉快的妥协。最后,我们在三天内完成了这个项目,我们两个都很快开始使用 Python 作为我们的“首选”工具。

虽然我欣赏 Perl,但我发现它是一种只写的语言。总的来说,Python 与我的情感相契合。我可以用同样多的代码用 Python 实现伪代码。虽然 Python 这种语言有各种缺点,但我还没有找到另一种语言能像 Python 一样给我带来高效率。

你还知道哪些编程语言,你最喜欢哪一种?

这些年来,我使用过 JavaScript、Java、Perl、VisualBasic、C#、C、C++和 Lua 来完成各种与工作相关的任务。在学校里,我学过 Prolog、Pascal、Fortran 和 Lisp。和我同龄的许多人一样,我是从 Commodore 64 开始做基础的。我的首选工具是 Python。

在当前的咨询项目中,我们使用 Clojure 和 ClojureScript 做了大量工作。我欣赏函数式编程,Rich Hickey 在领导 Clojure 方面做得很好。我认为 Python 程序员应该研究一下函数构造,因为它们也适用于 Python。大多数刚从学校出来的人似乎都被灌输了面向对象编程,虽然 Python 支持这种编程风格,但它也支持命令式和函数式风格。我认为后一种风格通常更简洁明了。话虽如此,我知道不止一家公司试图使用 Clojure 来完成 Python 擅长的任务,但最终还是回到了 Python。

你现在在做什么项目?

对于我的培训客户,我和他们一起构建定制培训,让专业程序员快速掌握 Python。学生或业余爱好者通常可以慢慢来,浏览博客或文档,但对于专业人员来说,他们必须快速理解语法知识、缺点、最佳实践和库。我和客户一起工作来调整知识的传递。

harrison_adv_python

我创建并用于培训的一个漂亮工具是 rst2odp ,这是一个将 rst 转换成(Open|Libre)Office 演示文稿的工具。使用 rst 的一个很好的好处是,我可以在我所有的幻灯片上运行 doctest,并确保我的幻灯片中的代码实际工作。

我的咨询包括应用和分析/数据科学项目的战略规划和实施。在这里,我使用了整个 Python 栈:Flask、SQLAlchemy、pandas、matplotlib 等,甚至还涉足了 IronPython 等项目。我最近开始使用 Luigi 项目,它对于构建分析管道非常有用,我希望我以前使用过它。

下面是我的几个 github 项目。我觉得有趣的是,我最受欢迎的两个 github 项目甚至都不是 Python:

我和痴迷于运动的儿子一起做的一个有趣的小项目是足球游戏。我们找到了一些他最喜欢的球员的统计数据,使用这些数据,结合一些统计数据,我们制作了一个非常酷的基于文本的足球游戏,有点模拟现实中发生的事情。向更小的孩子展示数学和编程如何应用于体育运动是很有趣的。(也许他会变成一个体育赌徒)。

哪些 Python 库是你最喜欢的(核心或第三方)?

我几乎每天都使用的两个库是 virtualenv 和 pip。能够使用 virtualenv 轻松运行应用程序,让我安心地快速试验和尝试新事物。Pip 使安装变得容易,是天赐之物。它使开发变得不那么痛苦。在 pip(及其前身 easyinstall)之前,设置依赖关系是一件令人头疼的事情。

这些年来,我非常欣赏 SQLAlchemy。Mike Bayer 在分层界面方面做得非常出色。我已经使用了 SQL 抽象和 ORM 接口,并且对它的特性集印象深刻。几年前,我甚至为它编写了 MonetDB 支持,这非常简单。

pandas、matplotlib、scikit-learn 和 iPython Notebook 的分析工具非常方便。我是 emacs 的长期用户,我真的很欣赏 iPython 笔记本 emacs 客户端。 IPython Notebook 面向分析,我发现当我编写库时,我需要一个真正的编辑器。emacs 客户端使得混合开发和分析变得非常容易。

Matplotlib 是另一个令人惊叹的工程壮举,但由于它的界面受到 MATLAB 的启发,所以有点非 Pythonic 化。坐落在 matplotlib 之上的 Seaborn 库提供了面向统计绘图的接口,是对 matplotlib 接口和 pandas 绘图接口的改进。任何需要好看的,复杂的绘图的人都应该去看看。

你写 Python 书籍的动机是什么?

简短的回答:自行车脱落。当我学习 Python 的时候,我觉得有必要创作我想要的 Python 书籍。

更长的回答:我一直喜欢教书和帮助别人。我通过做家教来资助我的教育。当你看到别人的想法被点击时,这是非常有益的。我就是这样开始参与 PyCon 和其他会议上的教程的。我想象着:我想上什么课或课程?我在此基础上创建了自己的实践课程。总的来说,它们非常成功,广受好评。多年来,我已经教了数百名学生 Python。

我的书是这个想法的延伸。特别是在为一个会议准备教程时,我想,与其只是重做我的幻灯片,不如根据我的课程写本书。我本打算在会议之前完成这本书,但是唉,我对写书的努力太天真了。

最终我完成了我的第一本书,踏上 Python:开始 Python 。在这个过程中,我对电子书有了相当多的了解(因此有了 github for CSS for ebooks 的项目,以及将 rst 转换成电子书),最终有了一本电子书和一本实体书出售。在学习 Python 时,我曾试图提供我想要的产品。反响很好,我已经开始写其他几本书,也有了自己的想法。


你能告诉我们作为一名作家你学到了什么吗?

现在任何人都可以成为作家。传统出版商仍在寻找内容,但随着 Kindle 的出现,自助出版比以往任何时候都更容易。唯一的要求就是写内容的决心。做一个作者,做一个导师,跟编程很像。如果你有一个逻辑进展,输出更容易跟随。我认为作为一名作者对我作为一名开发人员也有帮助,因为我倾向于将问题分解成一系列更小的步骤。

走自助出版的道路也让我能够钻研如何创造和销售产品。做销售是一种新的体验,需要你全身心地投入。这种曝光有好有坏。得到很好的反馈和评论真是太棒了。但是你也会得到差评,有些是合理的,有些是不合理的。它并不适合每个人,但我喜欢新的挑战,这是一次很好的学习经历。

你还有什么想说的吗?

随着媒体对数据科学的关注,非 web 开发人员和科学家对 Python 产生了极大的兴趣。Python 是唯一一个可以在广泛的领域中看到如此广度的工具。这是成为 Python 开发者的大好时机。

我最大的遗憾是,当我第一次来到旧金山湾区时,我没有加入当地的用户组。当时这是一个很小的群体。我是一个内向的人,不知道社交的重要性,也不知道分享想法和从他人如何使用 Python 中获得灵感的重要性。我真是太傻了。如果有一条建议,我会给年轻的自己,那就是打破你的舒适区。

感谢阅读,你可以在 twitter 上关注我,时间是 @mharrison 。或者随时来 PyCon 聊天!

谢谢!

一周的最后 10 个 PyDevs

本周 PyDev:matthus Chajdas

原文:https://www.blog.pythonlibrary.org/2022/10/17/pydev-of-the-week-matthaus-chajdas/

本周我们欢迎 matthus Chajdas(@ NIV _ Anteru)成为我们本周的 PyDev!matt HUS 是 Pygments 的核心开发者,这是一种通用语法高亮器,在许多网站、维基等等中使用!matthus 还在静态站点生成器 Liara 上工作。

你可以通过查看 matthus 的网站来了解他还在做什么。让我们花些时间来更好地了解 matthus!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是高级微设备公司的一名建筑师,也就是众所周知的 AMD,住在慕尼黑,从事软件和硬件方面的工作。我有一条相对直截了当的“科技行业”之路:我在埃尔兰根学习计算机科学,在慕尼黑获得计算机科学博士学位,然后去实地工作。这些年来,我学到了一些关于硬件开发的东西,这些东西让我有了现在的职位。在硬件和软件之间的边界上工作是非常有趣的,尤其是当硬件没有你作为一个程序员通常喜欢的属性时:硬件需要几年的时间来“编译”,并且一旦交付你就不能改变它,所以处理它是一种相当好的体验。

工作之余,当我不在大学讲课时,我喜欢散步、骑自行车,或者在天气不好的日子里,读一本书。任何能让思想稍微游荡的东西!

你为什么开始使用 Python?

这真是个好问题。我一直在浏览我的档案,希望能找到我的第一个项目,但我能找到的最早的是一个通过做一些文本和 XML 处理来生成 OpenGL 绑定的工具。我确实记得在那之前使用 Python 来做这些天你称之为“命令行工具”的事情——例如将所有 FLAC 代码转换成 MP3 这样的简单事情——因为我(现在仍然)很不擅长使用 Bash 和. BAT。

你还知道哪些编程语言,你最喜欢哪一种?

随着时间的推移,我一直在使用许多语言——主要是 C++,但也有 C#、Go、TypeScript,最近我还尝试了 Rust。很难选择一个最喜欢的,因为这很大程度上取决于目标和你可以使用的生态系统/框架。我真的很喜欢 C++,我已经投入了 10.000 个小时,如果我仍然不生气,我会选择 C++作为最喜欢的“非 Python”语言。

然而,在我选择 C++的项目中,确实没有太多的重叠,所以我不会很快停止使用 Python。从长远来看,我希望 Python 能够提供一种“超前”编译二进制文件的方法,这将使 Python 成为性能/能量敏感领域的一个可行的替代方案。

你现在在做什么项目?

在我的业余时间,我主要从事 Pygments,偶尔也从事我的静态博客生成器,Liara。还有一堆我为(家庭)自动化、小型服务等开发的“未分类”项目,但这些都不是专注的项目工作。你可以在我的 GitHub 账户中找到一些,但是真的没有什么比 Pygments 更值得注意的了🙂

哪些 Python 库是你最喜欢的(核心或第三方)?

这是一个很难回答的问题,因为这些年来我使用了很多优秀的库。如果我不得不说出几个我最喜欢的,我会选择以下几个:对于 web 开发,Django,我用了很多年,它从未让我失望,还有 Flask,我用它做了很多小项目。在数据库方面,由于某种原因,我最终总是不得不使用它,这是 SQLAlchemy:当我需要在数据库中持久存储一些数据时,它节省了我无数的时间。对于任何类型的数据科学项目,它将是 NumPy、Pandas 和 Matplotlib 的三位一体。我不知道如果没有他们,我怎么能在过去的几年里完成任何研究。

最后,我想“荣幸地提及”Jupyter 和相关的生态系统。很高兴看到 Jupyter 笔记本的广泛使用以及它们与 Visual Studio 代码等编辑器的集成。最近几年,我越来越远离 Python 脚本中的原型开发,而是直接去找 Jupyter,经常最终将笔记本作为最终产品发货。

标准库中也有很多令人喜欢的东西;我将只指出我最终在几乎每个项目中使用的两个模块:argparse 和 itertools。

您是如何开始使用 Pygments 套装的?

那是一个有趣的故事。我正在重写我的博客以使用 Liara,我真的想使用 Pygments 来突出一些 HLSL(一种用于图形的编程语言)。)不幸的是,Pygments 项目当时处于休眠状态,没有人合并一个 PR 来添加 HLSL,所以我想我会尝试一下,如果没有人愿意做事情的话,就叉掉它。就在那时,Georg 联系了我,问我是否介意维护父项目,剩下的就是历史了!

在从事色素沉着的工作中,你学到的最重要的三件事是什么?

  • 正则表达式很难
  • 你永远也不会做足够的测试
  • 你确实习惯了有几十万个项目依赖于你每次按下释放按钮时不会搞砸

你还有什么想说的吗?

我最珍视的东西:要有绩效意识!能源是当今的限制因素,在未来更是如此。作为一名开发人员,您需要了解如何进行配置和优化,因为我们无法承受低效的应用程序。我们的软件最终会被成千上万的人使用,生命中的每一秒钟& CPU 时间都是宝贵的!

matthus,谢谢你接受采访!

本周 PyDev:马修·马凯

原文:https://www.blog.pythonlibrary.org/2017/10/30/pydev-of-the-week-matthew-makai/

本周,我们欢迎马修·马凯成为本周的 PyDev!马修是全栈 Python 的创造者,他还与迈克尔·肯尼迪合作制作他的企业家 Python 视频课程。你可能也想看看他在 Github 上做了什么。让我们花几分钟时间更好地了解他!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我叫马特·马凯,我是全栈 Python 的创造者,也是一名目前为 Twilio 工作的软件开发人员。我和妻子住在华盛顿特区,尽管我们几个月前刚从旧金山搬到华盛顿特区。

我的教育贯穿了弗吉尼亚州的公立大学系统:詹姆斯·麦迪森大学计算机科学学士,弗吉尼亚理工大学计算机科学硕士,然后弗吉尼亚大学信息技术管理第二个硕士学位(实际上是应用于软件的 MBA)。

计算机科学和编程是我的主修科目,但是我获得了商业学位,所以我能够在关于市场营销、金融、公司战略等方面的讨论中坚持自己的观点。弗吉尼亚大学的项目对于成为一名更全面的软件开发人员来说是一门真正令人愉快的课程。

你为什么开始使用 Python?

对我来说,在 Python 生态系统中写代码已经有 10 年了!早在 2007 年,我白天是一名 Java 开发人员,但晚上会从事 Python 方面的项目。随着时间的推移,我发现使用 Python 在晚上几个小时内构建的东西比在 Java 领域工作一整天都要多。

非常感谢为 Django web framework 工作的人们,感谢令人惊叹的文档,这让我能够自学 Python 开发并开始全职从事 Python 工作。

你还知道哪些编程语言,你最喜欢哪一种?

我有一些使用 Swift 进行 iOS 开发的经验。我的 Java 有点生疏了,但在 Spark 框架中使用一些 Java 8 的新特性很有趣,今年早些时候我曾用它写了一个有趣的教程。Python 是迄今为止我最喜欢的语言,但是抛开它不谈,Swift 有很大的潜力。

你现在在做什么项目?

我从 2012 年开始的一手项目是全栈 Python ( 源代码库)。我几乎每天都推全栈 Python 更新到描述主题的页面,从对象关系映射器模板引擎,到教程博客

Python 企业家视频课程中,与的“Python 对我说”播客的 Michael Kennedy 合作真是一种享受。我也一直在更新我的部署指南书,尽管很难找到大量的时间来做兼职项目,因为我和妻子刚刚有了第一个孩子。

哪些 Python 库是你最喜欢的(核心或第三方)?

这个问题的答案可以有自己的博文!我在 PythonBytes 播客第 38 集中讨论了一些我最喜欢的,包括鹈鹕散景。Ansible 和 Fabric 也是我最喜欢的,因为我做了大量的 web 开发部署工作。

全栈 Python 是怎么来的?

回到 2012 年,我每个月都去 DC Python meetup,和那些努力理解 Python 生态系统的初级开发人员交谈。在和人们发了很多邮件后,我决定把我写的关于 Python web stack 的东西放到网上。我选择了“全栈 Python”这个名字,因为 fullstackpython.com 是一个可用的域名。我一点也不知道这个名字会被记住,多年后我仍在从事这个项目。

从 2012 年末到 2014 年初,我在/r/python subreddit 上建立了一个链接。那里的开发人员非常支持我的努力,所以这给了我继续工作的动力。那年夏天,随着头版黑客新闻《T4》的热播,该网站得到了另一个巨大的推动。这两次活动的流量和反馈帮助我找到了网站未来的方向。我也意识到我投入到这个项目中的时间对于更广泛的 Python 社区来说是有价值的,所以从那以后我每天都在做这个项目。

在运营网站的过程中,你学到了什么?

开源的碎片化本质使得初学者很难知道他们不知道的东西。要成为一名高效的程序员,你需要知道的不仅仅是编程语言的语法。你必须了解生态系统中的开源项目可以解决你正在处理的问题。例如,如果你是一名使用 Sidekiq 的 Ruby 开发人员,然后从事 Python 项目,你会想知道使用什么等价的任务队列,比如芹菜RQHuey

另外,我发现有经验的开发人员理解概念和工具之间的区别,就像我如何在网站上对主题进行分组一样。像 web 框架这样的概念是通用的,并且有不同类型的实现。工具是概念的实现。对于 web 框架概念,一些示例工具实现是 DjangoFlaskPyramid 。在一个概念中,有许多方法可以实现一个工具。每种工具都有自己的实现理念和优缺点。

许多初级开发人员经常发现一个闪亮的新工具,并说“酷,我要在我的项目中使用它!”。然而,如果不理解工具背后的概念以及它能解决什么问题,你只是给你的项目增加了一堆复杂性,而没有清楚地理解权衡。

你还有什么想说的吗?

能够成为我们神奇的 Python 社区的一员,我感到非常幸运。我想对那些运营组织的人们大声疾呼,例如 Python 软件基金会Django 软件基金会NumFOCUS 以及其他许多类似的组织,它们使得开源项目得以蓬勃发展。这是一项困难而重要的工作,但这些组织背后的人往往没有因为让社区变得伟大而获得足够的信任。所以谢谢大家!

感谢您接受采访!

本周 PyDev:Matthew nu zum

原文:https://www.blog.pythonlibrary.org/2015/09/07/pydev-of-the-week-matthew-nuzum/

本周,我们欢迎马修·努兹姆成为我们本周的 PyDev。Matthew 最近完成了一个 Django 培训视频,由 Packt 出版社出版。让我们花些时间去更好地了解他吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我本质上是一个极客,早在极客很酷的时候就已经是了。我 8 岁时,父母没有送我去夏令营,而是送我去了一个计算机编程营。生日和圣诞节时,他们收到了一些礼物,比如一套化学设备、一台显微镜和一份《星球大战》时事通讯的订阅。我在学校学的是电气工程,尽管在参加工作前没有完成学位。

我的爱好包括教学和写作。当我学习新的东西,尤其是有挑战性的东西时,我的第一个倾向是想出一些方法来帮助别人更容易地学习它。有时这意味着写一个教程,制作一个视频,或者和我指导的一个学生一起工作。

事实上,我非常喜欢辅导。我的职业生涯始于 90 年代末,当时我是一名 web 开发人员,因为另一名经验丰富的 web 开发人员投入时间帮助我掌握诀窍。

你为什么开始使用 Python?

我在 2004 年左右开始使用 Python 做批处理工作。我学过一些教程,它似乎是适合这项工作的工具,因为我需要的所有模块都相对容易找到。然而,由于字符串连接,我很快就遇到了性能问题。当时,我不知道如何解决这个问题,所以我想我已经超越了 Python,继续前进。

2006 年,我开始作为 Canonical 的 Ubuntu.com 网站管理员工作。当时公司只有大约 40 人,所以我几乎全权负责网站和许多相关网站。Canonical 是一家庞大的 Python 公司,它是首选语言。我们使用的许多定制 web 应用程序都基于 Zope,这是一个强大但有些复杂的应用程序框架。

在我加入这个团队之前,Canonical 在基于 Zope 的 CMS Plone 上有过一次糟糕的经历,所以我们决定为这个网站使用其他工具。然而,每当我们进行定制应用程序开发时,我们都使用 Python。

大约在 2008 年,姜戈开始成为一个大人物。我需要建立一个数据库应用程序作为网站的一部分,所以使用 Django 和 PostgreSQL。当时我不得不低调行事,因为 Zope 仍然是主要工具,而我在技术上并不属于负责构建 web 应用的团队。然而,公司里的其他人也开始使用 Django,它开始变得越来越流行。

我在 2012 年末离开之前为 Canonical 做的最后一个项目是为 Ubuntu.com 网站建立一个 CMS 平台。这个网站收到大量的流量峰值,性能是非常重要的。正因为如此,CMS 投入了巨大的努力来减少对数据库和动态内容的依赖。我很自豪地说 Python 和 Django 能够做到这一点。

你还知道哪些编程语言,你最喜欢哪一种?

我最喜欢的编程语言是 Javascript,但我想说 Python 和 Javascript 是我唯一喜欢的两种语言。我也经常使用 PHP,也使用 C#、Java、Ruby 和 Objective C 开发生产应用程序。

你现在在做什么项目?

现在,我正在编写培训材料,以帮助 web 开发人员轻松入门,并在此过程中建立遵循最佳实践的网站。这意味着减少样板代码,提高可测试性,尽可能使用自动化。

哪些 Python 库是你最喜欢的(核心或第三方)?

毫无疑问,我最喜欢的是姜戈。我只是被你免费获得的这么多功能惊呆了。有时候我有点失望,现在用 Django 构建 web 应用程序与 2008 年相比并没有太大的不同,我希望它在核心部分包含 RESTful 概念。然而,Django Rest 框架模块填补了这个空缺。

我知道这并不吸引人,也不令人兴奋,但是我在第一个项目中使用的库之一是内置的 CSV 解析器,我会一次又一次地使用它。它是如此简单,但它是强大的,有用的和公正的工作。像 Python 一样,它也是一个必要时我可以依赖的库。

你为什么决定在 Django 上做一个视频培训系列?

我喜欢做培训视频和教程,就这样。我在工作的时候上了一堂课,老师问了我这样一个问题:“你最喜欢做的事情是什么,以至于你愿意免费去做?戴在我头上时,它就像一个灯泡。我立刻意识到我喜欢教书。为了证实这一点,我给妻子发了短信,问她认为我的答案是什么。她立刻回答道:“教书。

这不仅是我愿意免费做的事情,也是我已经在免费做的事情,通过指导、社区教学和写作。

Packt Publishing 的人最初找我做一个关于 Express.js 的视频系列,这是一个 Node.js web 开发框架。完成后,他们问我是否愿意在姜戈做一个。

Django 请求的时机相当具有讽刺意味,因为我刚刚在博客上发表了一篇关于 Python 开发世界中的一些问题的长篇大论。这实际上是非常消极的,虽然我不会放弃 Python 开发,但听起来好像我要放弃了。大约一周后,帕克特找到我,让我做这个视频。

这实际上对我很有治疗作用,因为在回到 Django 的基础之后,我再次爱上了它。我不是一个会回去修改历史的人,但我打算写一篇关于那篇愤怒的博文的后续文章。

作为一门编程语言,你认为 Python 将何去何从?

我对 Python 2.x 和 3.x 的分裂感到非常难过,希望社区能尽快解决这个问题。感觉我们已经度过了最困难的阶段,现在一切都在走下坡路了,但是您仍然经常会发现一个完全失败的教程或一个只适用于 2.x 的库。在这一点上,我更经常诅咒 2.x 而不是 3.x (UNICODE!!!)但就在不久前,形势发生了逆转。

你对当前的 Python 程序员市场有什么看法?

在 Web 开发领域,Python 开发者的市场增长速度似乎没有其他工具快。在我所在的靠近美国中部的地区,Python 并不是 web 开发中的热门技能。

也就是说,Python 在“大数据”领域的需求似乎在增长,我在那里看到了越来越多的机会。这不是一个我很有经验的话题,但我很高兴看到这种兴奋。我有一个理论,数据科学领域的许多人更多地工作在概念层面,并不是核心程序员。Python 让我们能够轻松地将概念转换成工作代码,这使得数据分析师能够专注于数据。

谢谢!

一周的最后 10 个 PyDevs

本周 PyDev:马蒂亚斯·布索尼埃

原文:https://www.blog.pythonlibrary.org/2017/09/04/pydev-of-the-week-matthias-bussonnier/

本周,我们欢迎马蒂亚斯·布索尼埃(@姆布森)成为我们本周的 PyDev。马提亚斯是 Jupyter 笔记本IPython 的核心开发者。你可能想看看他的 Github 简介,看看他对什么项目感兴趣,在做什么项目。让我们花些时间来更好地了解马提亚斯!

你能简单介绍一下你自己吗(爱好、教育等):
我的背景相当广泛。当你读我的时候,你可能听不到我是法国人,而且我仍然有比较重的法国口音。我被培养成一名物理学家——从量子力学/粒子物理学开始,并决定它可能不适合我,所以我选择了流体力学和凝聚态物质,并最终获得了生物物理学博士学位,据我的导师说,这通常是应用数学而不是生物物理学。至于计算机编程,我基本上是自学的——大约 13 岁时,我用 C/C++编程,时不时地在不同语言之间转换。我是个偏执狂,我的爱好时好时坏。我曾经用编程来分散我对博士学位的注意力,这让我有了现在的成就。我喜欢弹吉他,无所事事,享受自然,睡觉,反驳别人,说双关语。我也喜欢了解为什么以及如何去做,这占据了我大部分的时间——我试着在我的博客上写下来,但是我经常要花几个星期来写东西,我对此并不满意。我也喜欢教别人,主要是因为通过教你更好地理解。

你为什么开始使用 Python?

嗯,我真正开始大量使用 Python 是在 2011 年,在我开始读博的时候。我继承的代码库工作正常,但使用的是 1) Matlab,2) LabView(你可以链接到彼此的图形化工具)和德语注释。由于实验室的 matlab 许可证数量有限,并且 matlab 没有包管理器,也不是真正的面向对象编程,我问我的顾问我是否可以使用 Python 他很乐意让我尝试,只要它不妨碍我。我开始大量使用 Python/IPython/SciPy/etc 读博士,提交 bug 报告和补丁。提前三年我毕业了,通过将大部分博士工作委托给计算机,我可能做了更多的 Python 而不是博士工作。

你还知道哪些编程语言,你最喜欢哪一种?

我应该了解 C/c++/Fortran——在过去的十年里,我实际上只接触了几个小时。我用 Jupyter 笔记本做了很多 Javascript/Html/css。我主要用 Python 写,最近开始真正喜欢 Rust 了。到目前为止,我最喜欢的仍然是 Python 3.6+我喜欢 f-strings async/await 和 PathLib,我不认为我可以回到 3.4 或之前。3.5 还算体面。Rust 凭借出色的工具、非常好的错误消息和可用性,正在成为一个非常好的竞争者。Python 社区可以从 Rust 那里学到一些东西。

你现在在做什么项目?

一对夫妇。我仍然高度参与 IPython/Jupyter 的工作,因为这是我的日常工作——两者都很活跃。这些天我主要在 IPython 内核方面。我在推动一些你只能在 Python 3.4 及以上版本上做的事情。主要是完成、异步/等待顶级 repl。

我还在开发一些我发现缺失的通用 python 工具。Elm 通过查看您的包 API 来实施语义版本控制。我不喜欢强制执行,但是我想要一个工具来警告开发人员他们正在破坏 API,然后在我的测试套件中运行它。

哪些 Python 库是你最喜欢的(核心或第三方)?

核心 Python 中的 PathLib。 Xonsh 很牛逼,是我的日常外壳。 Doctr 在 GhPages 上部署文档。 Trio 无论是使用还是内部都真的值得一看。即使你不使用它,也要阅读文档,这是我读过的对 async/await 最好的解释。

Jupyter 和 IPython 是如何帮助把新人带入 Python 圈子的?

对于开始探索编程和进行数据科学来说,笔记本绝对是一个不错的界面。这不是银弹,我们很高兴看到各种前端的发展。特别是,我们希望 JupyterLab 能够为那些想要正确迁移代码的人提供一个更好的过渡。py 文件。拥有托管笔记本电脑的能力也使教室部署更加容易。让 100 名学生安装所有的堆栈可能是一件痛苦的事情。在 IPython 方面,我认为我们仍然可以做很多事情,让用户生活得更简单,并给他们更好的错误消息。我希望微软语言服务器协议和 Jupyter 协议能够融合。一种适用于“静态”代码,另一种适用于具有动态内核的“动态”代码。我认为只要做一点工作,我们就能两全其美。

未来我们能从这些项目中看到什么?

即将推出的新功能是 JupyterLab 全新的用户界面。和实时协作。也有包含 react 和桌面应用范式的交互,所以事情已经在不断发展。由于 Jupyter 更多的是一种协议,而不是一个发行版,我们希望在 Python : R,Scala,Julia 之外有一个更好管理和维护的内核...并为这些语言的用户简化安装过程。

你还有什么想说的吗?

jupyter 团队将在八月底组织 JupyterCon,我们希望在那里见到你!IPython 也是大写字母 I,我们不是水果公司🙂

感谢您接受采访!

本周 PyDev:Maurits van Rees

原文:https://www.blog.pythonlibrary.org/2016/10/31/pydev-of-the-week-maurits-van-rees/

本周,我们欢迎 Maurits van Rees(@ Maurits van Rees)成为我们本周的 PyDev。作为 Plone 安全团队和 Plone 发布团队的成员,Maurits 是 Plone 项目的核心开发者。他也是 zest.releaser 的维护者。你可以通过 Maurits 的主页了解他最近在做什么。让我们花一些时间来更好地了解他!

maurits_sm

能简单介绍一下自己吗(爱好、学历等):

我出生在荷兰,并愉快地生活在这个欧洲国家,这个国家不知道“山”的概念,一半人口生活在海平面以下。我没开玩笑。

我的第一门课程是计量经济学。一部分是数学(相当难),一部分是经济学(过了一段时间就没那么有趣了),一部分是信息学(有趣的部分)。过了一段时间,我转向了纯信息学。这花了我太多时间,但最终我还是完成了。

我喜欢阅读幻想和科幻小说,并且写作!抱歉,没有英文版,但对于荷兰读者来说,这里有一个小故事:https://www.smashwords.com/books/view/517741

我是 Reinout van Rees 的弟弟,他在 Python 社区也很出名,最近出现在这个博客上。我们有很多相似之处:我们在音乐、书籍和编程语言方面有相同的品味。当我们在同一个 Python 会议上时,我们会有一场正在进行的友好比赛,看谁是第一个发表演讲摘要的人。

你为什么开始使用 Python?

大约十五或二十年前,我创建了我的第一个网站:我自己的网站,和一些与学生相关的小网站。它们都是手工制作的 html 和 css。要创建一个新页面,我只需复制一个现有的文件。大约在 2004 年,在我哥哥的暗示下,我开始关注 Zope,并用它创建了一个超级简单的 CMS。 只需使用主模板创建 web 模板,这样我就不需要每次都复制这么多模板代码。Zope 本身当然是基于 Python 的,您可以通过 web 创建 Python 代码,这就是我的第一次 Python 体验:使用 Python 来减少创建网站的重复性。

2005 年底,我哥哥鼓励我去他工作的公司开始实习:Zest Software,他们在 Zope 上使用 Plone,加上一些 Django。

你还知道哪些编程语言,你最喜欢哪一种?

我知道 Bash 和 Javascript,以及很久以前的 Pascal、C、C++、Java。我读过一本关于 Lisp 的书,在某些方面看起来很棒,但我没有用过它。我记得作为一个玩具项目,我用 Pascal 构建了一个四行计算机播放器,它运行得很好,直到我改变了一些东西,它开始总是倾向于第一列。这是在我知道版本控制系统存在之前,所以我放弃了。

至于收藏夹,使用 Javascript 可以很好地增加网站的趣味和速度,使用户体验更加流畅,但我不能没有 Bash 或另一个类似 Unix 的 shell。对于一个客户来说,我有时需要连接到 Windows 2000 服务器,我很高兴有 Cygwin 在那里,所以我有一些基本的 sane shell 功能。

你现在在做什么项目?

我希望我的 PLIP (PLone 改进建议,类似于 PEP)在下一个 PLone 版本中落地:放弃安装和配置 Plone 站点的一个版本,转而支持另一个版本,这样就有了一个为附加组件编写安装代码的显而易见的方法。 目前主要是跨站点脚本问题。我在 Plone 发布团队,这主要意味着将包放在 PyPI 上,所以我和我的兄弟一起维护 zest.releaser。

哪些 Python 库是你最喜欢的(核心或第三方)?

正如阿甘所说:“随机就像一盒巧克力:你永远不知道你会得到什么。”我每天都在使用“zope.interface”和围绕它构建的 zope 组件架构。它将复杂的多部分系统(如 Plone)结合在一起,允许您以合理的方式调整或完全覆盖核心组件,或者添加自己的组件。

你还有什么想说的吗?

编码是好的,但是不要忘记其他重要的东西——我不仅仅是说:记得写文档和测试。对即将到来的问题或需求及时做出反应是很好的,但你可能已经和朋友、家人、上帝或你自己达成了一个隐含的时间协议。偶尔一阵疯狂的工作会非常有用和令人满意,但记住你仍然是一个有限制、有愿望和关系的人。守住你的界限,让自己保持理智,能够长期坚持下去。

感谢您接受采访!

本周 PyDev:Max Humber

原文:https://www.blog.pythonlibrary.org/2020/11/16/pydev-of-the-week-max-humber/

本周我们欢迎马克斯·亨伯(@马克斯·亨伯 )成为我们本周的 PyDev!Max 是 gazpacho 的创造者,这是一个用 Python 编写的“简单、快速、现代的网络抓取库”。马克斯也是奥赖利媒体公司的讲师。你可以在 Github 上看到 Max 正在做的其他项目。

让我们花一些时间来更好地了解 Max!

你能告诉我们一些关于你自己的情况吗:

我躲在多伦多为奥赖利大会教书。把我所有的空闲时间都花在提升我的厨艺上。期待着什么时候我可以去看现场音乐,去健身房玩玩圆石,再去上一堂陶艺课...

你为什么开始使用 Python?

我很确定我开始使用 Python 是因为卡梅隆·戴维森-皮隆的生命线。几年前,我需要做一些生存分析,并且因为那个软件包而迷上了这门语言。

你还知道哪些编程语言,你最喜欢哪一种?

我开始用 r 编程,虽然我真的不再使用这种语言,但我有时会想念 dplyr 。这些天,我和斯威夫特在一起的时间越来越多。这是一门伟大的语言,有一些伟大的想法,比如,面向协议的编程。我喜欢 Lua 正是因为它的局限性。老实说,我确信 Lua 在其他时间线上比 Python 更受欢迎。但是在这个时间轴中,Python 是我的最爱!

你现在在做什么项目?

我有很多开源项目,但我最引以为豪的是:

  • 西班牙凉菜汤:一个简单、快速、现代的网络抓取库
  • 一种新的、跨平台的在命令行调度脚本的方式
  • gif:Altair、Matplotlib 和 Plotly 动画的扩展

你最喜欢哪些 Python 库?

标准库?我喜欢随机路径库子进程。第三方?我对没有任何依赖关系的库情有独钟。我最喜欢的几个: tqdm (一个整洁的小进度条,可以包装任何可迭代的内容)chime(“Python 声音通知变得简单”),python-fire (一个自动生成命令行界面的工具)。

你能告诉我们西班牙凉菜汤的起源故事吗?

够搞笑:梦幻曲棍球。几年前,我被一些朋友强迫加入了一个社团。当时我对曲棍球一无所知,现在仍然如此,所以我编写了一个网络抓取工具来获取球员预测数据,并为我建立一个团队。虽然我的朋友们对我不太满意,但这个工具演变成了西班牙凉菜汤:刮掉任何东西的最简单方法

是什么激励你从事开源工作?

我认为我的动机可以在这张图片中准确地捕捉到。开源可以像那样帮助推动科学向前发展,这太棒了。

你还有什么想说的吗?

是啊!thesaurus.com 是一个被低估的编程工具。尤其是如果你像我一样,你每天都有这种感觉。

谢谢你邀请我参加这个采访系列,迈克!真心感谢你所做的一切。

麦克斯,谢谢你接受采访!

本周 PyDev:梅格·雷

原文:https://www.blog.pythonlibrary.org/2019/07/15/pydev-of-the-week-meg-ray/

本周我们欢迎 Meg Ray ( @teach_python )成为我们的本周 PyDev!Meg 向其他老师教授编程,并开发了 Python 相关的课程。梅格也是《T2》一书的作者,该书将于 2019 年 8 月出版。让我们花些时间去更好地了解她吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我开始是一名演员。我学习戏剧,搬到纽约市开始我的职业生涯。我刚出道时为了维持生计而做的工作之一是给孩子们上戏剧课。我为残疾学生和无家可归的年轻人教授戏剧节目。这使我开始了特殊教育教师的职业生涯。我真的很喜欢教和指导年轻人,尤其是那些在生活中遇到挑战的年轻人。

大约在这个时候,我开始学习编程。我从中获得了很多乐趣,我也开始理解计算机科学教育是一个公平的问题。我受雇于一所学校,教所有九年级学生必修的软件工程和游戏设计课。我边走边学。我重新设计了课程,除了块编码之外,还包括 Python,并且更加包容有学习差异的学生。

现在,我开发课程并培训其他教育工作者来教授计算机科学。通过康奈尔理工学院的常驻教师倡议,我一直在为 K-8 教师提供课堂辅导和支持。我还在写我的第一本书!编码这个游戏!通过设计游戏介绍 Python 和计算机科学。有机会以一种创造性的方式将我在 Python 教学中所学到的一切应用到孩子们身上,这真的很有趣。

就个人而言,我是一个新妈妈。我现在的首要任务之一是建立社区。我 DM 了一个 D&D(有宝宝!)运动,并且一直在思考在我的生活中为家庭和社区腾出空间的其他方式。我喜欢 Python 的一点是 Python 社区。对我来说,这意味着参加我在当地的聚会,与他人合作支持 Python 指导者,并作为一个家庭参加 Pycon。

你为什么开始使用 Python?

我的搭档是一名软件工程师。他很想让我和他一起参加 2013 年的纽约 Python 聚会。我确信这会很无聊,但还是同意去一次。那天晚上我写了我的第一个程序,玩得很开心!我开始每周和他一起去,利用这段时间练习和学习。然后他说服我和他一起参加 2014 年的 Pycon。我报名参加了软件木工教程,而他参加了短跑。剩下的就是历史了。从那以后,他也学到了很多关于教育的知识。能够有机会推动彼此的思维,就如何教授 CS 展开辩论,并一起开展项目,这真是太棒了。

你还知道哪些编程语言,你最喜欢哪一种?

我懂一些处理和 JavaScript。Python 永远是我的最爱!

你现在在做什么项目?

在康奈尔理工学院,我正在开发和试验一个叫做“盒中树莓”的项目。我们注意到,与私立和独立学校的学生相比,服务水平低下的公立学校的学生没有同样的机会参与“物理计算”和数字制作。我们想知道是否有可能让中学生更容易接触到树莓派。我们需要考虑的一些障碍是教师培训、成本、硬件和网络设置、课程,以及如何适应学校的日常生活。

我还在准备一门方法课程,今年秋天我将在 NYU 大学教授这门课程。这是对计算机科学教育的介绍。这是对 K12 级别 CS 教学的深入探究。它的独特之处在于,它对任何想将它作为非入学课程的人开放,它是为对教育感兴趣的具有计算机科学/编程背景的学生以及对计算机科学/编程感兴趣的在职和职前教育工作者设计的。

哪些 Python 库是你最喜欢的(核心或第三方)?

当然是 ppb T1,这是一个新的专注于教育的游戏库,我对此非常兴奋。我有点偏见,因为维护者 Piper Thunstrom 和 Jamie Bliss 是我的朋友和同事,我将作为顾问提供帮助。然而,我真的很兴奋这个库让游戏开发在学习环境中变得如此容易!

我还认为 NLKT(自然语言工具包)在教育领域有很大的潜力。我发现玩它真的很有趣,并希望找到将它用于 ELA(英语语言艺术)和社会研究-计算机科学整合项目的方法。

你是如何成为科技会议的演讲者的?

我已经开始展示我的工作,让计算机科学教育在教育领域更加普及。我向 PyGotham(纽约市 Python 大会)提交了我的第一次演讲,我的同事是一名技术专家。我们做了 30 分钟的联合演讲。如果我可以重写并重新展示我的演讲,我会的,但是我只是从那里开始重复。每次我提交报告或准备报告时,我脑海中都会有一个小小的声音告诉我,我不够资格,不够有趣,不够好。但我给它贴上冒名顶替综合症的标签,继续走下去。

你对其他有抱负的演讲者有什么建议吗?

想想你有什么激情,有什么要说的。然后想想观众,用对他们有用和有趣的方式来框定。不要等待你的疑虑或不安全感消失。当你与他人分享你的知识时,让他们喋喋不休。

如果你想提高你的技能,从小处着手。寻找机会在聚会上发言,共同展示,做简短的演讲。然后继续向地区会议和国家/全球会议提交报告。如果一场演讲没有你希望的那么好,并不意味着你是一个糟糕的演讲者。这意味着你仍在发展。对其进行反思和迭代。每次演讲都是一次学习经历,让你下次成为更好的演讲者。

梅格,谢谢你接受采访!

本周 PyDev:Melanie Crutchfield

原文:https://www.blog.pythonlibrary.org/2015/08/24/pydev-of-the-week-melanie-crutchfield/

本周我们欢迎梅勒妮·克兰驰菲尔德成为我们的本周 PyDev!让我们花些时间去更好地了解她吧!

melanie

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我有美术摄影版画的背景,我花了近十年的时间和 Photoshop 做我最好的朋友。2010 年,我最大的女儿出生了,我幻想着全职照顾她,兼职工作。[插入世界上所有的父母笑到喘不过气来。]我最终辞去了工作,去照顾我的女儿,并追求我的其他兴趣:写博客、写剧本、设计和(你可能已经猜到了)编程。

你为什么开始使用 Python?

我开始使用 Python 是因为一位导师告诉我这是一门很棒的入门语言。我有一些使用晦涩的脚本语言和标记语言的经验,但是 Python 将是我第一次尝试面向对象编程。

你还知道哪些编程语言,你最喜欢哪一种?

我涉猎过很多语言,但 Python 是我的最爱。不过,紧随其后的是斯威夫特。它非常简洁,您可以在代码中使用表情符号。你最好相信我会在那个奇怪的舞女身上工作。

你现在在做什么项目?

在过去 9 个月左右的时间里,我一直在做一个名为 FiveUp 的个人项目,它使用了 Python 和 Django web 框架。FiveUp 每天随机定时给你发五条快乐短信。有些来自我管理的数据库,如果你愿意,有些来自你的朋友和家人。(嗯,当它完成时,这就是它要做的。叹气。)这很有趣,也很令人沮丧。“有趣”是一个词吗?应该是。

哪些 Python 库是你最喜欢的(核心或第三方)?

一年后当我有了更多的经验时再来找我。

你还有什么想说的吗?

外面的新手:Pyladies 和圣地亚哥 Python 用户组在我的学习中被证明是非常宝贵的。优秀的员工、令人鼓舞的环境和学习小组让你不再看猫视频,而是埋头写代码。如果你是圣地亚哥的一名女性,或者认识一名想进入科技行业的圣地亚哥女性,那就来参加皮拉迪斯聚会吧。你不会后悔的。(大概吧。除非你翘掉之前和奥巴马总统的早午餐。你可能会后悔的。)(此外,完全披露:我是 PyLadies San Diego 的共同组织者,我有一个邪恶的计划,要为科技领域的女性带来支持和鼓励,这必将导致我们统治世界。哈哈哈。)

谢谢!

一周的最后 10 个 PyDevs

本周 PyDev:梅雷迪德·勒夫

原文:https://www.blog.pythonlibrary.org/2019/06/17/pydev-of-the-week-meredydd-luff/

本周我们欢迎梅雷迪德·勒夫(@梅雷迪德)成为我们本周的 PyDev!梅雷迪德是 Anvil 的联合创始人,也是 Skulpt 软件包的核心开发者。你可以在他的网站上了解更多关于梅雷迪德的信息。让我们花一些时间来更好地了解他!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

自从我 7 岁第一次接触 BASIC 以来,我就爱上了编程。我来自剑桥(英国的老剑桥,不是波士顿附近相对较新的剑桥),我也在这里学习过。实际上,我最初是一名生物学家,但后来转到了计算机科学专业攻读博士学位。

我认为编程是我们拥有的最接近魔法的东西,我喜欢观察和帮助人们获得这种力量。我的博士研究是关于构建可用的并行编程系统,现在我在从事 Anvil 的工作,这是一个让 web 编程对每个人来说都更快更容易的工具(用 Python!).

当我不编程的时候,我会驾驶轻型飞机,我想这就是你内心 6 岁的孩子做出人生决定时会发生的事情。我曾经参加过竞争性舞蹈比赛(包括在英格兰顶级拉丁队的几年),但事实证明,国际比赛和初创公司并不能很好地合作,所以初创公司赢了。

你为什么开始使用 Python?

我对 Python 有一点涉猎,但我真正开始认真使用它是在我们开始创建 Anvil 的时候。我们希望通过取代混乱的 five(!idspnonenote)来简化 web 开发。)不同的编程语言用一种语言和一个感性的可视化设计器。Python 是显而易见的选择——它是可访问的、可预测的,并且它有一个巨大而强大的生态系统。

你还知道哪些编程语言,你最喜欢哪一种?

我是 Clojure 的忠实粉丝。这与 Python 截然相反。Python 简单、具体且可预测——它实际上是一种为人们设计的编程语言。相比之下,像 Clojure 这样的 Lisps 把抽象提高到 11,让 person 程序像编译器一样思考。

我还必须向 C 致敬——如果我在使用 C,我一定是在硬件附近冒险🙂

你现在在做什么项目?

这些天我把所有时间都花在了 Anvil 上,这是一个只用 Python 就能构建全栈网络应用的平台。您的 ui 有一个拖放设计器,我们在浏览器中运行您的客户端 Python,而您的服务器端 Python 在我们自己的无服务器环境中运行。我们甚至有一个您可以使用的 Python 原生数据库。

因此,以前你需要学习 HTML+CSS+JS+Python+SQL(以及所有的框架、AWS 等),现在任何会写 Python 的人都可以用 Anvil 构建和部署 web 应用程序。

哪些 Python 库是你最喜欢的(核心或第三方)?

这很难,但我不得不选择 Skulpt ,Python-to-Javascript 编译器。我们以前在教育环境中使用过,但我们在 Anvil 中使用得非常多。显然,Skulpt 是我们在浏览器中运行客户端 Python 的方式,但我们也以其他方式使用它——例如,我们使用 Skulpt 的解析器来驱动我们的 Python 代码完成!(我在 PyCon UK 上简单介绍了我们的 Python 自动完成器是如何工作的。)

这些天我是核心维护者之一——我目前正在进行前端的拆卸和重建工作,这对编译器爱好者来说很有趣。如果你想加入,请在 GitHub 上给我们留言!

Skulpt 背后的创意从何而来?

我不能声称斯库尔普特的存在是我的功劳——这个项目是由斯科特·格雷厄姆发起的,现在我们有一整个团队。最初的动力是围绕着教育:当你第一次学习编码时,设置一个 Python 环境是一件很麻烦的事情,所以在浏览器中有一个“游乐场”是一个巨大的胜利。我认为 Anvil 更进一步——我们在你的浏览器中放了一个全功能的应用程序开发和部署平台——就在那里。

你能告诉我们铁砧背后的故事吗?

我和我的共同创始人伊恩都学会了用 Visual Basic 和类似的工具编程。90 年代是这方面的一个黄金时代:任何能使用一种(相当简单的)编程语言的人都可以构建看起来和工作起来像他们桌面上其他东西一样的应用程序。

如今,一切都在网络上,但进入的障碍是巨大的:你需要学习所有这些语言和框架,加上 Linux 系统管理,只是为了构建你的第一个应用程序。这让人精疲力尽——而且它切断了像数据科学家或电子工程师这样的人的许多机会,他们有工作要做,没有时间学习所有这些东西。最终,伊恩和我厌倦了抱怨这种情况,并决定建立一些东西来解决它!

Anvil 的目标是让每个人都可以使用 web 编程,但对于经验丰富的专业人员来说仍然足够强大。我们去掉了附带的复杂性,但我们保留了强大的编程语言和庞大的生态系统。

你还有什么想说的吗?

哦,是的- 使用自动完成

谢谢你接受采访,梅瑞戴德!

本周 PyDev:迈克尔·福格曼

原文:https://www.blog.pythonlibrary.org/2015/10/05/pydev-of-the-week-michael-fogleman/

本周,我们欢迎迈克尔·福格曼成为我们本周的 PyDev!Foglebird 先生已经在 StackOverflow 上为 Python 程序员提供了大量帮助。我知道当我去寻求帮助时,我很欣赏他的一些回答。他的网站上有一个很大的个人编程项目列表,非常值得一看。让我们花些时间去更多地了解他。

你能告诉我们一些关于你自己的情况吗(爱好、教育等):
我从大约 8 岁起就开始编程了。我们有一台 Commodore 64,我会从一本书上复制程序。后来,在高中,我用 QBasic 编写了游戏和其他(主要是图形)程序。大多数游戏都是克隆的:俄罗斯方块、突围、Galaga、小行星等。我记得我写《小行星一号》的时候,我还没学会数组呢!你能想象吗?星号 1x,星号 1y,星号 2x,星号 2y。我还使用了 WHILE 循环而不是 FOR 循环。当你还是个孩子,除了 QBasic 帮助文档之外什么也没有可以学习的时候,就会发生这种情况。

当我 2000 年去上大学(北卡罗来纳州立大学)时,出于某种原因,我打算主修机械工程。作为课程的一部分,我参加了 C++入门课程,我很喜欢它。我意识到我真的应该主修计算机科学,于是我转了专业。

为了支付我的学费,我参加了“合作教育”项目,这意味着有些学期我不上课,而是在与大学合作的公司全职工作。我最初在一家大约有 100 名员工的公司工作,处理工业自动化。这很有趣,因为我是唯一的软件开发人员,但软件有很多机会来改进他们的系统和工作流程。然后我在 IBM 工作了一段时间。对于一个穷大学生来说,他们的工资已经很不错了。我设法在几乎没有债务的情况下完成了大学学业。虽然我只上了 3.5 年的课,但这花了 5 年时间,经验和收入证明是无价的。

大学毕业后,我在 TopCoder 工作。我只呆了几年,因为我做的管理和文档比开发多。

之后,我在高级液体逻辑公司工作了大约五年。他们有一个有趣的用于基因组学和诊断学的微流体平台。这是一个“芯片上的实验室”系统,可以在墨盒内移动离散的液滴。我写了一些非常酷的软件(用 Python ),可以计划这些液滴的运动,以执行所需的协议。我们被 Illumina 收购,之后不久我选择离开,而不是像他们希望的那样搬到圣地亚哥。

现在我在 TransLoc,从事与交通相关的软件和数据工作。

我结婚了,有两个很有趣的小孩。我仍然设法找到时间做园艺、跑步和做很多兼职项目。我也非常喜欢太空探索、80 年代音乐和各种食物。

你为什么开始使用 Python?

我第一次使用 Python 是在 2004 年,当时是在大学的一个项目中,但当时我并没有深入了解它。只是这种奇怪的,奇怪的不同的语言。2007 年,我开始兼职学习 Python,非常喜欢它简洁、易读、强大的语法。2008 年,我换了工作,开始全职使用 Python。

你还知道哪些编程语言,你最喜欢哪一种?
今年早些时候我开始使用围棋,所以这是我现在感到兴奋的新东西。我发现它很容易上手。我已经在 Go 中编写了一个路径跟踪器(类似光线跟踪器,但更好)和一个 NES 模拟器。我也用它来处理工作中的一些事情。随着 Python 和 C 成为我的主要工具,Go 似乎是一个不错的中间地带。

我还兼职做了一些 Objective-C,并在 iOS 和 Mac 应用商店里放了一些应用。

必要时我会使用 JavaScript。我最近一直在玩 React,我喜欢它的工作方式。

我用的最多的还是 Python。

你现在在做什么项目?

在工作中,我刚刚完成了一个非常酷的项目,它自动化了需求响应运输系统。基本上,它以最佳方式动态安排车辆路线,快速高效地按需提供服务。大部分后端都在 Python 和 Flask 中。我用 Go 编写了车辆调度算法,因为它需要很快。

在家里,我一直在玩 HandiBot 数控机床。我使用 Python 来生成 CNC 理解的 GCode 程序。

我也一直在玩 OpenStreetMap 数据和 shapefiles。

你可以阅读更多关于我的项目:

哪些 Python 库是你最喜欢的(核心或第三方)?

我喜欢烧瓶。它让 web 开发变得非常有趣。请求也真的很好。wxPython 是我开发桌面应用的最爱。我在以前的工作中大量使用它。Shapely 非常擅长处理 2D 几何。

我为开发简单的 OpenGL 应用程序编写了自己的库。它被称为“pg ”,我用它做了一些很酷的东西,但最近没有做它。

作为一门编程语言,你认为 Python 将何去何从?

我没怎么想过这个问题,但我有一种怀疑,再过 10 年左右,Python 会像 Java 今天看起来的那样慢慢消失。技术变化很快。但是就像 Java 一样,会有很强的立足之地。它不会很快去任何地方。

我还是用 Python 2。主要是因为我们工作中的所有代码库都使用 2。3 中有一些很好的东西,但还不足以让我扭转局面。坦白说,这不是我担心的事情。

你对当前的 Python 程序员市场有什么看法?

需求肯定是有的,而且可能还在增长。我认为 Django 和 scientific Python 是主要驱动力。

你还有什么想说的吗?

很多人问我,我是如何既有家庭又有全职工作,还能做这么多兼职项目的。部分原因是优先级。我不看电视。此外,孩子们可以成为一种有用的“干扰”,因为当我终于有时间坐在电脑前时,我会更明智地使用它。另外,他们仍然很早睡觉。除此之外,我对编程充满热情,所以当我对某件事感兴趣时,我会努力去做。

谢谢!

一周的最后 10 个 PyDevs

本周 PyDev:迈克尔·赫尔曼

原文:https://www.blog.pythonlibrary.org/2014/11/17/pydev-of-the-week-michael-herman/

本周我们请来了迈克尔·赫曼(@迈克赫曼),他是真正的 Web 开发 Python的作者,这是真正的 Python 课程的第二部分。让我们花些时间了解更多关于迈克尔的事情吧!

378_43330403407_4430_n

能简单介绍一下自己吗(爱好、学历等):

你好。我目前是一名自由网络开发者,主要专注于真正的 Python T2。我的热情一直是让世界变得积极,我相信我正在通过我的另一个热情-技术来做到这一点。除了真正的 Python,我还关注开源项目以及指导那些学习如何编码的人。我有工商管理学士学位和信息科学硕士学位。实际上,我的本科学习是从计算机科学开始的,但一门哲学课最终让我偏离了轨道,直到我转向商业。

我不编码的时候,一般都在跑步(也在思考编码)。

你为什么开始使用 Python?

我需要更好地自动化 Excel 报表的创建,并用外部 API 的数据增强报表本身。当时我正在学习 Ruby,但是经过一些简单的研究后,我偶然发现了 xlwt 库,并决定使用 Python。长话短说,我们成了好朋友——Python 和我。

我学会了这种语言,辞掉了工作,开始从事自由职业,主要是 Excel 自动化和网页抓取。

你还知道哪些编程语言,你最喜欢哪一种?

本周 PyDev:迈克尔·肯尼迪

原文:https://www.blog.pythonlibrary.org/2017/02/06/pydev-of-the-week-michael-kennedy/

本周,我们欢迎迈克尔·肯尼迪( @mkennedy )成为我们本周的 PyDev!迈克尔是一名作家和演说家。他也是 Python 和 MongoDB 的爱好者,还是一名企业家。他是广受欢迎的跟我说 Python播客以及新的 Python Bytes 播客的主持人。2016 年,他创办了 Talk Python 培训项目。他有一个有趣的博客,我想你会觉得很有启发性。让我们花些时间来更好地了解迈克尔!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

大家好。我是将业余爱好变成工作的幸运儿之一(我想和你们很多人一样)。我热爱编程和技术。我每天醒来都在想,作为一名开发人员,今天比昨天更棒。

我在大学里迷上了编程。首先,它只是一个次要的学科领域,以满足我的数学学位的一些要求。随着时间的推移,我越来越喜欢编程。这实际上是我大四时的一个研究项目,它迫使我进行“真正的”编程(用 C++和 OpenGL 在 SGI 大型机中进行 3D 图形)。一两周之后,我意识到我喜欢编程胜过我对数学的实际关注。

我最终获得了数学硕士学位,之后我放弃了博士项目,开始了软件生涯。这在当时看起来非常冒险。回过头来看,这是一个明智的选择。

这就是我的教育。就爱好而言,我喜欢活跃和冒险的事物。整个高中时期,我都参加摩托车越野赛,对那些时光有着美好的回忆。我这些天不比赛了。

这听起来可能很奇怪,但我觉得在赛马场的经历实际上为我在软件领域担任公共角色做好了准备。参加播客、向 100 多名与会者做演示,或者第一次就某个主题进行培训,都令人紧张,甚至有些害怕。但是,与你第一次尝试跳过 40 英尺三级跳远相比,这根本不算什么。

令人惊讶的是,克服所有这些犹豫和恐惧的步骤是一样的。过度准备,过度练习,找到平息内心声音的意志力,并努力去做。

你为什么开始使用 Python?

在我的职业生涯中,我加入 Python 的时间相对较晚。我希望我能早点发现它,但是你知道他们怎么说后知后觉的。

我最初进入 Python 是因为我在一家培训公司工作,该公司传统上专注于更企业的编译语言,如 C#、C++等。

他们正在寻求多样化,扩展到其他领域。我建议用 Python,并自愿帮忙。结果是对 Python 有很大的需求,正如你所想象的,有很多工作要做。

仅仅用了几个星期的时间和 Python 一起工作,并帮助制定了我们公司可能关注 Python 生态系统的路线图,我就被吸引住了!我喜欢这种语言、工具、人以及大量的开源项目和机会。

从那以后,我就深深地专注于 Python。只要一有机会,我就选择 Python 作为我编写的软件,并且喜欢它的每一分钟。

你还知道哪些编程语言,你最喜欢哪一种?

如今,我是一名真正的 web 开发人员,我几乎只使用 Python 来开发。对我来说,这意味着用 Python 和模板驱动的 HTML 进行服务器端编程,比如变色龙、HTML5 和 CSS。我只是不太喜欢客户端 JS 框架。

所以某种 web 应用程序中的 Python 是我最喜欢使用的语言和技术。但我花了几年时间深入研究。NET / C#空间。我仍然非常喜欢这种语言和生态系统,但是我很高兴将我的职业努力和未来放在 Python 的篮子里。

正如我在开篇提到的,我做了很多 C++的工作。模拟器和科学可视化软件中的 OpenGL 和 DirectX。

加入 MongoDB、SQLAlchemy 和我喜欢的其他领域的数据库技术(不,它们不是语言,但我认为它们是自己的专业领域)。

你现在在做什么项目?

我现在关注的总任务是激励和教育人们围绕软件开发,特别是 Python 和相关技术。

有几种形式。

更广泛地说,这从播客开始。我运行的是跟我说 Python 播客,它每周发布一集,时长一小时。我有机会与许多鼓舞人心的开发人员和其他使用软件和 Python 做惊人事情的技术人员交谈。我邀请了许多主要 web 框架的创建者作为嘉宾。科学家解决从粒子物理到天文学到可再生能源的惊人问题。我听到数百人在听完这些嘉宾的演讲后,对自己的工作或项目充满了活力。这个播客的音频文件已经有了数百万次的下载量,并且感动了许多人。每周做这件事是我的荣幸。

此后,我推出了第二个播客,名为 Python Bytes 。这里的想法与 Talk Python 完全不同。Python Bytes 是一个简短的 15 分钟节目,涵盖了当周的许多 Python 标题,而 Talk Python 是更深入的 1 小时主题。

在播客的基础上,我启动了一个多年项目,为 Python 开发人员建立一个主要的培训资源。我最初的目标是在 2 年内创建 20 个课程。你可以在我的博客上了解整个项目。我在 Kickstarter 上推出了几门课程(这里是这里是这里是),社区的支持令人惊叹。到目前为止,我已经出版了三门课程,并且几乎每天都在努力学习。

这两个领域是我的主要关注点。除此之外,我还做一些咨询和公开演讲。

哪些 Python 库是你最喜欢的(核心或第三方)?
这是一个有趣的问题。我认为我们都从每个人在这里选择的图书馆学到了很多。我选三个:

  • Passlib:一个很棒的小库,可以安全地添加在数据库中管理和存储密码和用户账户的最佳实践。
  • 金字塔:这是 Python IMO 中 web 应用程序的金发女孩框架。有很多可以提供和构建的东西,但不会强加任何真正的构建块或框架(除了它本身)给你。Pick you 数据访问库(MongoEngine 还是 SQLAlchemy?易),你的账户管理(passlib!),等等。
  • SQLAlchemy (尽管 MongoEngine 紧随其后):对于您想使用的大多数数据库来说,它都是非常可靠且经过测试的 ORM。如果是做关系型工作,这是我目前的选择。

你为什么要开一个关于 Python 的播客?
我一直很喜欢播客。早在 2005 年的时候,我就经常听一些,当时要让它在我的设备上运行还需要做很多工作。对我来说,播客是我如何将空闲时间转化为富有成效的教育时间。

在我进入 Python 之后,我最终想找到一个播客来听,并真正深入挖掘整个生态系统。我认为听到技术背后的故事对真正了解它很重要。

但令我难以置信的是(这真的是这个词!),实际上没有活跃的 Python 播客(这是在 2014 年末,2015 年初)。我最终决定,我必须做出我想看到的改变,自己创作一部电视剧。虽然我觉得自己没有资格成为这个社区的发言人,但没有其他人这样做,所以我抓住了机会,开始了这个播客。

来自每个人的回应和支持过去和现在都是惊人的。我真的很高兴我决定抓住这个机会。

做播客时,你学到的最重要的经验是什么?

从所有的嘉宾和话题中,我学到了很多东西。但更普遍的是,这里有一些关键的要点。

  1. 如果你把自己放在那里,神奇的事情会发生。
  2. 人们很容易把社区里的名人奉为偶像。但是几乎每个人都是开放、友好的,并且愿意帮助别人。你只需要开始对话。
  3. Python 比我意识到的要宽泛得多

如果有人问你如何开始定期播客,你会有什么建议?

  • 找到一个利基,你就会找到一个受众。愿意从小处着手并坚持下去。
  • 关注质量:花时间学习如何录制高质量的音频。花时间编辑结果。
  • 确保你有一个你愿意坚持的话题和焦点。第一个月相对轻松。第八个月,当工作堆积如山时,你生病了,你不得不在早上 6 点记录,这真的很难。但是如果你坚持下去,这是完全值得的。
  • 玩得开心-它应该是有趣的!你的观众会听到不同之处。

你还有什么想说的吗?

我想鼓励大家加入 Python 社区。许多阅读这篇文章的人可能已经定期参加 PyCon,收听 Python 上的播客,并参加当地的聚会。其中任何一个都是将您对 Python 的热情和知识提升到下一个层次的好方法。

非常感谢你接受采访!

本周 PyDev:米歇尔·西米奥纳托

原文:https://www.blog.pythonlibrary.org/2016/08/22/pydev-of-the-week-michele-simionato/

本周我们欢迎 Michele Simionato 成为我们的本周 PyDev!Michele 是 Python 方面的专家,他因关于 Python 的方法解析顺序的论文而闻名,该论文由 Guide Van Rossum 发表在 Python 网站上,他还与 David Mertz 一起撰写了一系列关于元类的非常有趣的文章。它们有点难找到,但是你可以在这里阅读三部曲系列的第一部。他是意大利蟒蛇协会的创始人之一。米歇尔拥有量子场论重整化的博士学位。让我们花一些时间来更好地了解他!

simionato

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我最初来自学术界,拥有理论物理博士学位。然后我在一家分析公司(股票市场风险评估)工作了几年,现在我回到了科学领域,在 GEM 做地震模拟。

你为什么开始使用 Python?

这件事发生在 2002 年。当时我是匹兹堡大学物理和天文学系的博士后研究员。鉴于在学术界之外可能的职业生涯,我决定是时候学习一些现代编程语言了。在读了布鲁斯·埃凯尔的几本长书之后,首先是关于 C++的,然后是关于 Java 的,我决定我不想用这两本书中的任何一本来编程。我在 Ruby 和 Python 之间犹豫不决,但是 Python 赢了,因为它有更好的科学库和更实用的哲学。

你还知道哪些编程语言,你最喜欢哪一种?

很久以前,我从 Basic 和 Pascal 开始,后来我用 Mathematica 和 Maple 做了很多工作。在学习 Python 之后,我对函数式语言产生了兴趣,并且对 Scheme 了如指掌,以至于我几乎写了一本书,书名是《一个 Pythonista 在 Schemeland 的冒险》。在我的日常工作中,我不得不大量使用 SQL(我非常喜欢)和 Javascript(我不喜欢)。

你现在在做什么项目?

在过去的三年里,我已经成为 OpenQuake 引擎的维护者和主要开发者,这是一个产生地震危害和风险评估的计算引擎。这意味着,在做了几年数据库和 Web 开发人员之后,我已经成为了一名科学程序员,现在我把大部分时间花在了大规模分布式计算的性能分析上。我也有一个博客,记录我与引擎的战斗。

哪些 Python 库是你最喜欢的(核心或第三方)?

numpy 是一个非常好的库,是人们进行科学应用的必要工具。

作为一门编程语言,你认为 Python 将何去何从?

老实说,我不确定 Python 作为一种语言将走向何方,我甚至不确定我是否喜欢最近的趋势。当然,我希望语言变得更简单,这是 Python 最初吸引我的地方,相反,我看到了一些变得越来越复杂的东西。此外,现在有其他值得注意的语言,而多年来 Python 没有竞争对手。如果你想知道的话,我想去做服务器端编程,Julia 做科学编程。它们看起来真的很有趣,即使我没有在它们中的任何一个中编程。Python 不应该认为它比 Java 和 C++更好(轻而易举的胜利),而是应该认真考虑新的竞争者。

你对当前的 Python 程序员市场有什么看法?

对于 Python 程序员来说,这一直是一个很好的市场(至少从我 14 年前开始的时候开始),现在更是如此。几乎每周都有人给我提供 Python 的工作。

你还有什么想说的吗?

我在 2016 年欧洲 Python 大会上的口号是“遗产代码战士”:这反映了我至少在过去 10 年里的日常工作。你可以在这里看到我演讲的视频:

https://www.youtube.com/embed/uYKofUe0TnM?feature=oembed

感谢您接受采访!

本周 PyDev:米格尔·格林伯格

原文:https://www.blog.pythonlibrary.org/2019/11/25/pydev-of-the-week-miguel-grinberg/

本周,我们欢迎米格尔·格林伯格(@米格尔·格林伯格)成为我们本周的 PyDev!Miguel 是 Flask Web 开发和非常受欢迎的 Flask 大型教程的作者。你可以通过查看米格尔的博客或者他的 Github 简介来了解更多关于米格尔的信息。让我们花些时间更好地了解米格尔!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我出生在阿根廷的布宜诺斯艾利斯。在获得计算机科学硕士学位后不久,我很幸运地在美国找到了一份工作,所以我和妻子搬到了俄勒冈州的波特兰。我们在那里组建了一个家庭,幸福地生活了几年。2018 年,我们再次搬迁,这次是去爱尔兰。我们计划在湖的这一边住几年,以便离我妻子的家人更近,并且能够在欧洲旅行,但是波特兰仍然是我们的家,我非常确定我们最终会回到美国。

就爱好而言,我不得不说,以任何标准来看,我都是一个相当无趣的人。除了编程(这是我的职业,也是我的业余爱好),我最喜欢的是演奏尤克里里。我收集了一些,最近我用曼陀林扩充了它,现在我在爱尔兰,这看起来很合适。这里的每个人似乎都加入了某种乐队,所以也许有一天我也会加入,谁知道呢!

你为什么开始使用 Python?

我想这是在 2008 年或 2009 年左右。我在一家公司工作,我的团队维护着一个用 C++编写的大型库,这个库被几个产品使用,包括内部产品和来自合作伙伴的产品。这是一家大公司,有一个适当的质量保证部门,但是 QA 工程师抱怨说他们没有简单的方法来测试我们的库,因为它是 C++代码。我们有一个用 bash、make、C++和 diff 组合编写的自行开发的单元测试套件,维护起来很痛苦,就测试而言就是这样。所以我想到了用一种我们的 QA 人员觉得使用起来很舒服的脚本语言为我们的库创建绑定的想法。经过调查,两个竞争者是 Python 和 Ruby。当时我对 Python 知之甚少,对 Ruby 也有所了解,所以有趣的是我个人选择了 Ruby。但碰巧的是,我团队中的一名工程师实际上在以前的工作中对 Python 非常有经验,所以从战略上来说,我们认为使用 Python 会对我们有利,因为我们团队中有一名专家。所以我得感谢我的队友让我进入 Python!

我总是通过个人项目来学习新事物,所以一旦决定使用 Python,我就开始在家里玩这种语言,只是为了好玩。在我第一次接触这种语言的几年后,我开始考虑开一个软件博客,但是很难找到我喜欢的博客平台,所以我有了写自己博客的想法。那时,我们在工作中创建的 Python 绑定是成功的,Python 已经赢得了我 100%的信任。因此,我很自然地决定使用 Python web 框架来创建我的博客,通过查看可用的选项,我最终选择了这个极简框架,它在当时并不流行,名为 Flask。这被证明是我一生中做出的最好的决定之一。

你还知道哪些编程语言,你最喜欢哪一种?

我对 C 和 C++有相当多的经验。我经常使用 JavaScript、HTML 和 CSS,因为如果你做任何类型的 web 开发工作,它们都是不可避免的。当我十几岁的时候,在我的 TI-99/4A 家用电脑上,我学会了编写代码,在那个时候,Basic 几乎是编写代码的唯一选择。我记得当时我很沮丧,因为我用 Basic 编写视频游戏,它们非常慢,所以我自学汇编来编写更快的游戏,因为这是 TI 计算机上唯一可用的编程语言。我还用 Ruby、PHP、Smalltalk 和 Java 等其他语言做了一些项目。所以对我来说,这就是一切的一点点。

允许我更快地完成工作并且不会产生难以维护的代码混乱的语言是 Python,所以对于一个新项目,这总是我的第一选择。Python 也是对我来说最有趣的语言。

你现在在做什么项目?

这些天占用我大部分时间的开源项目就是我的 Socket。IO 客户端和服务器,分为两个库, python-socketiopython-engineio 。插座。IO 是建立在 HTTP 和 WebSocket 之上的标准通信协议,它允许客户端和服务器建立长期双向连接,避免了 HTTP 的一些限制,并且具有非常低的延迟。我的项目允许 Python 充当客户端或服务器,并连接到 Socket。用其他语言构建的 IO 应用程序,当然,如果您喜欢的话,您也可以在两端使用 Python。我的插座。IO server 通常与运行在 web 浏览器上的 JavaScript 客户机成对使用,以构建高度动态的应用程序,这是将服务器构建为 REST 或 HTTP API 的更传统选项的替代方案。

我在上面提到过,我曾经试图进入博客领域。从我开始写博客到现在已经七年多了,我仍然觉得很有收获,所以博客总是在当前项目的列表中排在前列。我最近完成了一个关于 MicroPython 的六部分教程,并且我即将发布关于 Python decorators 的深入系列的第二部分。

哪些 Python 库是你最喜欢的(核心或第三方)?

两个我希望更受欢迎的库是 gevent 和 eventlet,因为它们很棒。这些小框架允许您编写异步应用程序,就像您使用 Python 自己的 asyncio 一样。区别在于 gevent 和 eventlet 不需要异步代码的新语法,因此您可以获得为常规 Python 编写的代码,以便神奇地异步工作。诸如请求甚至 Flask 之类的包在没有任何改变的情况下变成异步的。我在 PyCon UK 2019 上做了一个关于使用这些框架和 Flask 的演讲。

另一个我非常喜欢的包是 pudb ,这是一个基于控制台的 GUI 调试器,可以通过 SSH 连接在远程服务器上运行。我也喜欢 arrow 作为一个比 Python 的 datetime 包更好的日期和时间库。最后但同样重要的是,HTTP pie是一个很棒的 HTTP 客户端,它从 CLI 运行,语法比 curl 或 wget 简洁得多。

你是如何开始使用 MicroPython 的?

当我去年搬到爱尔兰时,我租了一栋房子,里面有最新一代的供暖控制器,你可以通过智能手机应用程序或浏览器来控制。我对这个控制器的问题是恒温器不能被编程,唯一可编程的是在给定的时间开始和停止加热。由于外面的天气不断变化,时间表需要不断调整,这是一项乏味的任务。我更喜欢的是为白天设定一个目标温度,为晚上设定另一个目标温度,然后让控制器计算出何时开始和停止加热,以便达到我想要的温度,但由于某种原因,这个设备和我在爱尔兰看到的大多数其他设备都没有这种功能。因此,我想到了写一个小小的恒温器应用程序,并将其加载到一个连接到运行 MicroPython 的温度计的微控制器中。我在这个项目中使用了一个 ESP8266 板,这是一个漂亮而便宜的微控制器板,带有 Wi-Fi,支持大量传感器,包括一些温度传感器。我做了两个这样的设备,一个在楼下,一个在楼上。然后,MicroPython 板将每 5 分钟读取一次温度,并将其与我选择的当天当前温度进行比较。然后,脚本将决定减少当前温度和目标温度之间差异的最佳行动方案。该动作可以是三个选项中的一个:开始加热、停止加热或保持加热在当前状态。从 MicroPython 控制加热实际上是最简单的部分,它只需要发送几个 HTTP 请求。这是一个非常有趣的项目!

烧瓶巨型教程背后的动机是什么?

烧瓶大型教程实际上是我博客的第一个写作任务。一旦我使用 Python 和 Flask 完成了我的博客项目,并部署了博客,我必须找到第一个要写的主题。当时,Flask 开始受到关注,但还没有进入大多数人的视野。例如,根本没有关于它的书。所以最合理的事情似乎是开始写博客,讲述我用 Flask 写博客的经历。我称之为“Mega”教程,因为我知道我想要涵盖许多不同的主题,所有这些都来源于我在博客项目上的经验。我开始写文章没做那么多策划,说实话。每隔 2-3 周,我会决定一个主题,为这个系列写一篇文章,并附上完整的工作代码。我最终决定在 18 章后结束教程,大约是在我开始它的一年后。

我从来不喜欢原始教程的即兴性质,但不管怎样,很多人喜欢它,它变得非常受欢迎,足以让 O ' Reilly 的编辑注意到它,并最终给我机会写一本关于 Flask framework 的动物书,现在是第二版。几年过去了,我一直觉得最初的 Flask 大型教程可以组织得更好。大约五年后,在 Kickstarter 的赞助下,我决定对它进行一次大改造。我对指南的新版本感觉好多了,现在已经扩展到 23 章,并且有了一个更加深思熟虑的结构。我还拍摄了所有章节的视频版本,在那里我一步一步地浏览教程,这非常有趣。

你对其他有抱负的博主/内容创作者有什么至理名言吗?

这听起来像是一个俗气的建议,但我认为你能做的最重要的事情就是马上开始写作!创建一个免费博客很容易,所以没有理由推迟。你应该写些什么?你应该写下你所知道的。我发现对我来说,最简单的方法就是写一步一步的教程。你可能会发现这也适合你,或者对你来说用不同的风格写作更容易,或者录制一段视频。重要的是,你要习惯每天制作一点内容,因为你会在不知不觉中逐渐变得更好。如果你认为你不擅长任何事情,所以没有话题可谈,那么你应该知道大多数博客作者(包括我在内)都不是他们所写内容的专家。实际上反过来也是一样,在你努力向别人详细解释之后,你对一个话题变得更有经验。如果你担心由于缺乏经验而在写作中犯错误,你应该知道博客帖子可以在发布后进行编辑,这样一旦你知道自己犯了错误,你就可以很容易地改正它。我经常修改、编辑和改进我的旧帖子,通常是因为有人指出了我犯的错误或不一致之处。这没什么丢人的。因此,如果你想成为一名博客作者或内容创作者,你真的没有借口。你应该现在就开始!

你还有什么想说的吗?

我想鼓励每个人都致力于个人项目。我在日常工作之余做的事情在我心中有着特殊的位置,因为不像工作,有很多事情在我的控制之外,当我开始一个个人项目时,我可以控制它的每个方面,并使它 100%符合我的喜好。我经常听到这样的说法,如果你一周工作 40 多个小时,你最不想做的就是在晚上和周末给自己更多的工作。我觉得有这种想法的人是选错了边项目!你的个人项目应该是关于享受和乐趣的,如果他们感觉太像工作,那么你就做错了。

如果我让你相信花一些时间在个人项目上是一件好事,那么我希望你会同意展示这些项目也很重要。与社区的互动会给你反馈和新的想法。你可能会成为其他人的榜样,他们在看到你的项目后也会决定开始自己的项目。你可能还会注意到,随着时间的推移,你在日常工作中所做的事情会受到你在业余时间所做的事情的积极影响,通常是在一些小的方面,但也可能是在很大的方面。例如,我在阿根廷读大学时利用业余时间开发的一个软件项目,是我获得工作机会去美国工作的关键。

米盖尔,谢谢你接受采访!

本周 PyDev:迈克·拜尔

原文:https://www.blog.pythonlibrary.org/2016/02/15/pydev-of-the-week-mike-bayer/

本周,我们欢迎 Mike Bayer ( @zzzeek )成为我们本周的 PyDev。Mike 是广受欢迎的 SQLAlchemy 项目的创建者。他有一个有趣的 Python 博客,并为许多 Python 项目做出了贡献。我见过 Mike 在 PyCon 上介绍 SQLAlchemy 的教程,他也经常在那里做演讲(这里有一个 2014 年的例子)。让我们花点时间更好地了解他!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

上世纪七八十年代,我在纽约市东部的郊区长岛长大。我第一次接触计算机是在 1980 年,当时我 12 岁,像当时所有进入“家用计算机”的人一样,我花了很多时间学习基本编程语言。最终,我在 80 年代中期选择了 Atari 800 作为我的平台,我甚至设法用它做了一些基本的汇编语言。在高中,我设法通过早期的互联网拨号形式上网,如公告牌和 Compuserve,后来我在高中学习了 Pascal,在大学里,我有一段时间主修计算机工程,在那里我学习了更多的过程编程和数据结构理论,以及 Modula III 等语言,根据最近查看我的旧笔记,显然还有一点 Lisp。但是在我的大学时代,我真的一点也不想和计算机扯上关系,所以我最终在伯克利音乐学院主修音乐,我也辍学了,只是搬到了城市,成为了一名鼓手。在城市里,我的打字速度和电脑技能让我进入办公室做文字处理的临时工作,即使是最底层的工作,工资也远远高于任何饥饿的音乐家,所以直到今天我几乎没有机会打鼓。在很多这样的工作中,我最终以编写代码来取代他们交给临时工的大量重复性工作而告终,到那时,“互联网”突然想在任何地方雇佣所有只会编写五行代码的人,所以这是进入 90 年代末纽约巨大的互联网泡沫中为代理机构工作的自然之举。

你为什么开始使用 Python?

我在美国职业棒球大联盟做了很多 Perl 工作,在花了很多年时间用 Java 做面向对象的工作后,我真的渴望有一种具有良好面向对象特性的脚本语言。Python 似乎一直都很喜欢,但是我 却无法摆脱空白。在 MLB,我们推出了 CMS 解决方案的一部分,给一个名为 WinCVS 的 CVS 客户端访问,我们需要为它做一些脚本;脚本语言是 Python,它迫使我用 Python 工作了足够长的时间(20 分钟),才意识到空白的东西很棒,剩下的就是历史了。

你还知道哪些编程语言,你最喜欢哪一种?

Python 无疑是我一直以来的最爱,我也使用过很多 Java,主要是早期版本,我也花了很多年使用 Perl,当然还有不可避免的 Javascript。这些是我有多年专业经验的人。除此之外,我偶尔学过相当程度的 C 语言,学过非常少量的 C++,也在大学和早期工作中接触过所有的旧语言,如 Fortran、Rexx、Pascal、Modula III、Scheme、6809 / 68000 汇编等。这些我今天都不知道怎么用。

你现在在做什么项目?

我在 Red Hat 有一份超级棒的工作,这是我第一份我们制作的东西不是“网站”的工作。我使用 Openstack 产品,我一直面临的挑战是 弄清楚如何获得 Openstack,它根据架构可以旋转数百个 Python 进程,以处理有时数千个到数据库的连接,在我们的情况下,这通常是一个名为 Galera 的 多主 MySQL 变体,以这样的方式,我们不会浪费资源,不会耗尽连接,并且如果各种数据库节点或服务突然变得不可用,也永远不会停机。所有这些都必须打包,以便当客户第一次安装 Red Hat 的 Openstack 发行版时,它可以自动运行。

和往常一样,我也在努力让 SQLAlchemy 向前发展,现在是 1.1 版本。从架构上、文档上和特性上来说。

哪些 Python 库是你最喜欢的(核心或第三方)?

我用得最多并投入巨资的库包括 mock、argparse、py.test 和 sphinx。我也非常欣赏 gevent。我也鼓励人们更多地使用 curses 库; 它的风格必然有点老套,但丰富多彩的主机应用程序令人敬畏。

是什么启发了你创建 SQLAlchemy?

我一直想拥有一个“终极编程平台”,多年来,我似乎一直想拥有一套可以在 Java 中使用的优秀函数库,那时候 Java 还是个新生事物,没有太多的东西可以使用,但是 Java 很快就失去了它的光芒。当我进入 Python 时,它似乎是最终构建这个平台的一个很好的地方,并且让基本的 web 框架东西运行起来是我的第一个目标,然后是关系数据库访问。我之前已经写了十几个关系数据库外观,所以当我决定做 SQLAlchemy 时,我对它应该有什么有了很多想法。有一些我在各种工作中研究出的模式,我想作为一个一流的库来展示,这样我就不必再在每一个新的工作中编写数据库访问层了。

你能告诉我们你在使用 Python 社区创建像 SQLAlchemy 这样的包时学到了什么吗?

令我惊讶的是,尽管我在开始 SQLAlchemy 时已经有了十年的工作经验,但我仍然在各方面完全不成熟;尽管我在一些工作中担任过技术经理,但我仍然不知道如何与社区、其他开源开发者、其他开源项目或用户互动,或者如何编写真正的测试,如何编写和维护好的 API,任何事情。我必须根据我在 Python 社区的经验来解决所有问题,从这个可怕的模板引擎 Myghty 开始,我在那里解决了各种不能再犯的错误,然后在 SQLAlchemy 版本的前几年,我也积累了一个不能再犯的错误的深度目录,包括在代码发布领域以及与他人的交互方面。

将 SQLAlchemy 从这个学习曲线的余波中拯救出来的智慧是,我一直打算让它自己花十年时间变得真正坚如磐石,这就是为什么我花了那么长时间才觉得可以称它为 1.0。通过在适当的时候不过度销售它,只是等待它非常深入和缓慢地成熟,并以有机的方式获得追随者,该项目没有成为嘲笑和仓促决策的目标,如果在 2007 年的会议上人们被给予“SQLAlchemy 0.3”杯子,它肯定会成为目标。那个版本非常糟糕。现在情况好多了。

非常感谢你接受采访!

本周 PyDev:迈克·弗莱彻

原文:https://www.blog.pythonlibrary.org/2015/03/30/pydev-of-the-week-mike-fletcher/

本周,我们欢迎迈克·弗莱彻成为本周的 PyDev。事实上,我有幸在几年前的一次 PyCon 上,在 wxPython 的一个空位上见过 Fletcher 先生。当我第一次学习 wxPython 时,他在某种程度上活跃在 wxPython 邮件列表上。他是多个项目的作者/维护者,如 RunSnakeRunPyDispatcherPyOpenGL

让我们花些时间来更多地了解我们的同胞 Pythonista!

fletcher

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名在多伦多工作的顾问,几乎所有的工作都是用 Python(必要时用 Javascript、C++等)完成的。我经营自己的咨询公司已经 9 年了。

我是一名受过教育的设计理论家,特别专注于如何利用对人类感知和建筑历史的理解作为教育建筑学生的工具。

我目前唯一的爱好是开源编程。我 6 岁时开始编程,当时我父亲(一名程序员)买了一台 Apple II+,我想要一个绘图程序,这样我就可以在上面制作(4 色)艺术品。编程和计算机只是我成长为职业的一个爱好。我是一个父亲(嫁给了一个在 IEEE 会议上认识的计算机科学家),有两个年幼的儿子,我正在努力启动我们学校的计算机科学俱乐部。

你为什么开始使用 Python?

我接受了早期网络(1995 年)的一份编程合同,创建了今天我们称之为医疗出版 CMS 的演示。我本来打算将 BinProlog 用于 web GUI(不要问为什么,我当时年轻而愚蠢,认为 Prolog 是当时最先进的编程语言),但被告知客户希望用 PERL 完成。所以我拿起了一本“21 天自学 PERL”类型的书,花了几天时间阅读它,直到我像讨厌一千个太阳一样讨厌这门语言。灰心丧气,但是需要了解 PERL,我继续翻阅这些乱七八糟的东西,寻找一些合理的模式,直到我读到最后一页,准备打电话给客户,告诉他们我绝对不会使用这种乱七八糟的语言...在最后一页,与封底相对的地方,有一个作者的注解,一种叫做“Python”的新语言被一些人认为是“更好的 PERL”,更干净,更有逻辑性,等等。

我用我的 56k 调制解调器连夜下载了 Python,在几个小时内比我在对 PERL 大吼大叫几天后更有效率。我走进客户的办公室,告诉他们我们将使用 Python 而不是 PERL,指着书后面的注释,客户基本上说“哦,好的”...因此,我成为了一名专业的 Python 程序员。

在我 Python 生涯的早期,Tim Peters 和 Christian Tismer(以及其他人)在 Python-list 上闲逛,帮助我发现了一点禅宗,这让我受益匪浅。我可能应该感谢他们坚持使用 Python。他们热衷于讨论为什么给定的方法是正确的,并鼓励年轻的程序员。我们还举办了有趣的优化“竞赛”,我们扭曲语言,试图找到最快的方法来完成给定的任务。

你还知道哪些编程语言,你最喜欢哪一种?

我也知道(苹果和 Visual) Basic,LISP(大多是古代的 AutoLISP),Prolog,C,C++和 Javascript。我偶尔会涉猎其他语言(Ruby、Java、Haskell、Go 等),但还没有喜欢到足以让我使用它们来真正关心它们的程度。我喜欢 C 语言的简单性,但实际上从头开始编码让我很沮丧。奇怪的是,虽然我有点讨厌 Javascript,但我也很喜欢它,我想如果我不能拥有 Python,我会选择它作为我的最爱。我实际上使用(并喜欢)Cython 相当多,但我不认为我们还认为它是一种独立的语言。我被 Haskell 的“想法”所吸引,但是到目前为止,在实际任务中使用它的每一次尝试都失败了。我想我也知道 GLSL 和其他一些特殊用途的语言,但是,这些都不是“真正的编程语言”。

你现在在做什么项目?

在商业方面(支付我账单的东西),我正在为客户开发批量视频转码和生成产品。这些都是用 Django、GStreamer、Flask、Pyside、Linux 平台和大量底层代码构建的。

在开源方面(爱好方面),我仍然在(慢慢地)研究 PyOpenGL 和 OpenGLContext、Listener(在 Linux 上通过语音编码)、Fussy(我用来在现场部署产品的机制),并在 Listener 中使用 Theano 进行语音听写。我有相当多的其他项目目前处于维护模式,如 RunSnakeRun(一个配置 GUI)、SimpleParse、PyDispatcher 等,在这些项目中,我实际上只是集成了其他人的补丁或对错误报告做出了回应。

哪些 Python 库是你最喜欢的(核心或第三方)?

必不可少的东西:请求、Fabric、Django、PyPgSQL、Numpy、Virtualenv、Eric (IDE)

真正有用的:Fabric,Gstreamer,wxPython,Pygame,Pyside,Ctypes

你还有什么想说的吗?

记得玩得开心;所有这一切的目的就是为了开心。

谢谢!

一周的最后 10 个 PyDevs

  • 丹尼尔·格林菲尔德
  • 伊莱·本德斯基
  • Ned Batchelder
  • 布莱恩·奥克利
  • 足球妈妈
  • 安东·诺沃西约洛夫
  • 杰西·戴维斯
  • 伊夫林·德米罗夫
  • Andrea Gavana
  • 蒂姆·戈登

本周 PyDev:迈克·格鲁希

原文:https://www.blog.pythonlibrary.org/2018/12/31/pydev-of-the-week-mike-grouchy/

本周,我们欢迎迈克·格鲁希( @mgrouchy )成为我们本周的 PyDev。迈克与马赫迪·优素福( @myusuf3 )共同创办了《PyCoder 周刊》。他也是姜戈要塞的创造者,这是一个有趣的姜戈套装,你应该看看。让我们花一些时间来更好地了解 Mike!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我目前在一家名为 PageCloud 的初创公司担任工程副总裁,我也是 Pycoders Weekly 的联合创始人/创建者/策展人之一,Pycoders Weekly 是一份每周 Python 时事通讯。至于我的背景,我来自加拿大东海岸的纽芬兰圣约翰。我在那里的纪念大学(Memorial University)获得了计算机科学学士学位,然后搬到安大略省的渥太华工作(此后在加拿大政府和初创公司工作了一小段时间)。在我的业余时间,我通常忙于我的两个孩子,但是当他们睡觉而我不工作时,我会花我的空闲时间做一些开源的事情 Django Stronghold ,Pycoder 的新计划,以及处理家庭自动化的事情。我也开始对家庭服务器构建感兴趣,尤其是在预算构建方面。看到您可以重新利用廉价获得的旧服务器硬件,真是太棒了。

你为什么开始使用 Python?

我十几岁的时候玩了一会 Python,写了一些自动化的小脚本什么的,但是我在我大学的计算机科学系开始认真地研究 Python。那里的团队正在使用 Python cgi web 应用程序做一些非常复杂的事情,该应用程序用于控制、构建和部署 gentoo 图像到大学周围的实验室机器上。对我来说,这是一次非常难以置信的深入了解 Python 的能力的经历(也确实帮助我提高了 Python 和 C 语言的技能)。

你还知道哪些编程语言,你最喜欢哪一种?

Python 绝对是我最喜欢的语言(也是我最擅长的语言)但是我专业写过 C,C++,C#,java,VB,JavaScript。我也涉猎过许多其他语言,但我的经验如此之少,甚至不值得一提。在我熟悉的其他语言中,我认为 JavaScript 是我最喜欢的。虽然我不是最好的 JavaScripter 程序员,但它是目前网络世界中无处不在的语言之一,所以掌握它是有意义的。JavaScript 现在的发展方向也很有趣。他们在过去几年中实现的许多语言改进(就像 ES6 中的所有东西)确实证明了一门语言正朝着正确的方向发展。(请讨厌 JavaScript 的人不要生我的气)

你现在在做什么项目?

现在,除了 Pycoder 和维护我唯一的半流行的开源库,我还在做一个相当简单的硬件项目,一个 Alexa 可控 IR blaster。正如我在之前的一个问题中回答的那样,我对家庭自动化非常感兴趣,所以我认为这将是一个有趣的小项目,而不是购买罗技 harmony hub(对于我真正有限的用例)。Mahdi(来自 Pycoders)和我也在研究家庭黑客,这是一个为对家庭自动化、家庭实验室和其他类似事物感兴趣的人提供的资源。

哪些 Python 库是你最喜欢的(核心或第三方)?

如果算的话,它不是一个真正的图书馆,但 Jupyter 笔记本是令人难以置信的。仅仅能够编写编码的例子,内联文档等。然后分享它是美妙的。不难看出为什么它如此受欢迎。

就核心库而言,我将再次打破常规,调用 f 字符串。这是一个核心语言特性,不是一个库,但是我喜欢它们。比以前的字符串格式选项更容易操作,可读性更好(这很重要!).

Pycoders 周刊的起源故事是什么?

这不是一个超级有趣的故事,但我的合作伙伴( Mahdi Yusuf )曾在这家小型创业公司共事。我们都非常热衷于 Python 社区,并且都在四处寻找资源来保持和参与 Python 社区。当我们环顾四周,我们发现虽然当时有一些 Python 时事通讯,但没有一个是我们想看的。这让我们想到“嘿,为什么我们不试试呢?”?†.因此,我们通过创建一个带有时事通讯注册表单的登录页面来验证这个想法,并将其发布在 hacker news 上,我们在一两天内获得了大约 2k 的注册。在那一点上,我们知道这个东西有腿,所以我们赶紧想出了问题的格式,等等。那一周,我发了 2 周后的第一期,从那以后我们一直在发(到目前为止已经发了 320 多期了!).

你能解释它成功的关键吗?

我认为其中一部分是正确的地点,正确的时间,另一部分是我们试图与其他时事通讯有所不同。我们试图保持内容质量非常高,并真正专注于我们试图解决的最初问题(创建我们想要阅读的 python 时事通讯)。我们为我们发布的每一篇文章/项目/新闻手写了广告词,并试图尽可能地在其中加入一些个性。

对于其他想尝试电子杂志的人,你有什么建议吗?

带着你的想法尽快走出去,并验证它。如果你想以一种可持续的方式获得成功,你需要迅速找到你的观众以及他们在寻找什么。

迈克,谢谢你接受采访!

本周 PyDev:迈克·穆勒

原文:https://www.blog.pythonlibrary.org/2018/11/19/pydev-of-the-week-mike-muller/

本周我们欢迎迈克 米勒 ( @pyacademy )成为我们本周的 PyDev。Mike 是 Python 学院的创建者,已经教授 Python 超过 14 年。Mike 已经在 PyCon 上发表演讲好几年了,两年前还在 Talk Python 播客上出现过。让我们花一些时间来了解更多关于 Mike 的信息!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我在德国德累斯顿工业大学学习水文学和水资源,并获得了五年制学位。之后,我继续在美国亚利桑那州的亚利桑那大学攻读同一领域的硕士学位。然后我继续我的水资源研究,并被授予德国科特布斯大学的博士学位。我在这个领域的咨询和研究部门工作了 11 年,在一个研究所工作了 4 年。

在我有限的业余时间里,我做一些健美操,即减肥训练以保持健康。引体向上很有趣。🙂

你为什么开始使用 Python?

我开始用 Python 写博士论文。该项目的目标是为采矿后湖泊开发一个全面的水质模型。这些是地表采矿后留下的充满水的大洞,通常有酸性或其他污染的水。我不得不耦合多个数值模型,分别用于地下水、湖泊和地球水文化学。

我评估了几种编程语言,最终选择了 Python。那是 1999 年初;版本 1.5.2 刚刚出来。这种结合进行得非常好,我非常成功地完成了我的博士学位,我甚至因此获得了一个奖项。我开源了代码(pitlakq.com),这个代码被世界各地的一些坑湖建模专家使用。我也偶尔用 pitlakq 教一些坑湖建模的课程。

你还知道哪些编程语言,你最喜欢哪一种?

和许多科学家一样,我是从 FORTRAN 开始的。我也在需要时使用 C 和 C#,并尝试学习一些 Haskell。当然 Python 是我最喜欢的。毕竟我教了 14 年多了。

你现在在做什么项目?

我大部分时间都在教 Python,准备、组织和讲授课程,主要是在德国和其他欧洲国家,偶尔在其他大洲。我仍然做一些科学编程,并致力于我的 pitlakq 模型。目前,我正在从事一个研究项目,开发一个新的地下水模型,允许用户指定的边界条件与一个插件系统。当然是用 Python。我们仍处于早期阶段。

哪些 Python 库是你最喜欢的(核心或第三方)?

我花很多时间在 Jupyter 笔记本上。最近,我开始使用 Jupyterlab。我还使用其他科学库,如 NumPy 和 matplotlib。我喜欢使用 pylint、pytest 和 openpyxl。后者使 Excel 文件的读写变得很容易。

Python 学院是怎么来的?

那时,我已经在一所大学教过课,也做过几次演讲。我每天都在使用 Python,并且越来越熟练。然后我看到了一个 Python 训练师的请求。我申请了,拿到了,开发了课程材料,交付了培训。这种情况持续了几年才慢慢发展起来。开始时,我每年只教几门课。对培训的需求不断增加,因此我创建了 Python 学院来满足这一需求。

你对那些想成为编程语言培训师的人有什么建议吗?

热爱你所做的事情,并真正做好它。你应该用你教的编程语言做梦。你也应该喜欢深入挖掘主题,因为它们很有趣。我认为能够让自己回到起点是非常重要的。你知道语言的深层魔力。但是一个对这门语言不熟悉的学生可能会完全不知所措。所以从头开始,解释那些对你来说显而易见的事情。你不应该厌倦重复你自己。

你还有什么想说的吗?

对于开源运动的成功,我既惊讶又非常高兴。事实上,如果没有它,我职业生活会完全不同。为这个庞大的宇宙做贡献,增加一点点世界知识,感觉真好。

迈克,谢谢你接受采访!

本周 PyDev:迈克·皮尔纳特

原文:https://www.blog.pythonlibrary.org/2020/04/13/pydev-of-the-week-mike-pirnat/

本周我们欢迎 Mike Pirnat ( @mpirnat )成为我们的本周 PyDev!迈克是 PyOhio 的组织者,也是 Python 社区的活跃成员。你可以在迈克的网站上找到他。让我们花些时间来了解一下迈克吧!

Mike Pirnat

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

当然可以!我在科罗拉多州西南部的一个小山城长大,90 年代中期搬到克利夫兰,在凯斯西储大学学习计算机工程。我大学时代的一个主要亮点是有几年的广播节目。我也在那里遇到了我的妻子,所以结果还不错。我也很高兴成为推出克利夫兰历史百科全书原始在线版本的团队的一员。毕业后,我在 IBM 工作了一段时间,然后在 American Greetings 的 ecard group 工作了 19 年——主要是在工程方面,还有几年在管理方面——我现在很高兴成为 Zapier 的后端工程师。一路上,我发现公开演讲非常有趣,写了一本小书,并成为了一名会议组织者。

这些天来,我喜欢玩一点视频游戏,玩很多龙与地下城,在克利夫兰可爱的大都会公园远足,忽略了我积压的摄影处理工作,让我 12 岁的女儿生气和尴尬。这完全是“40 出头的白人”的陈词滥调,但我近年来最好的爱好决定是给自己买一把吉他并开始演奏。我并不伟大,但我热爱它,在这个动荡的时代,它无疑为我的心理健康带来了巨大的回报。无论你对哪种乐器感兴趣,我可以保证你不会老到不能开始!

你为什么开始使用 Python?

2000 年,我在美国问候公司做了一份网络开发工作,为了在他们的 ecard 网站上工作,我不得不学习 Python。当时我非常喜欢 Perl,大概花了六个月或一年的时间对 Python 感到不满,觉得它不符合我在 Perl 中习惯做的事情。然后在某个时候,我试着阅读一些旧的 Perl 代码,我的态度很快就改变了。不过,对 Python 感兴趣的时候很奇怪,因为雇主并不需要它,我担心专注于它会损害我的职业生涯。我很高兴看到这有了很大的改变!

你还知道哪些编程语言,你最喜欢哪一种?

我做过一堆普通的 Javascript(90 年代末到 2010 年代中期的版本),以及足够多的 HTML 和 CSS。SQL 我还行。我相当熟练地阅读 Java,但没有花任何时间认真地用它来写作,坦白地说,我不认为我会喜欢它。我对 PHP 感兴趣有一两年了,这与我从事 Perl 的时间差不多。有一段时间我在做一些 C 和 C++。早在 90 年代初,我写了很多 LPC,这是一种类似 C 的 MUDs 编程语言,是“多用户地下城”的缩写——想想《魔兽世界》遇上《Zork》遇上 IRC/Slack。我也是 HyperCard 及其 HyperTalk 脚本语言的超级粉丝;这是最神奇、最强大的平台,你可以用这么少的资源做这么多的事情!我喜欢帕斯卡,但从未在大学以外的场合使用过。我在大学里也做过一些汇编编程,发现它很有挑战性,但奇怪的是令人满意;我真的很喜欢这个领域的代码谜题的出现。我的第一门语言是基于 Apple II 的,与我们今天拥有的财富相比,这是一门非常糟糕的语言,但它首先让我开始了整个编程过程,所以我将永远深情地记住它。

但是 Python 是我编程的灵魂伴侣,我很高兴能和它保持长期的关系。

你现在在做什么项目?

我现在的编程重点是一个名为 dndme 的项目,这是一个用 Python 编写的终端应用程序,带有我编写的提示工具包,用于帮助我运行龙与地下城游戏会话。这基本上是一个管理遭遇战的 REPL——记录战斗者、回合顺序、生命值,诸如此类的事情——但我发现添加一些东西很有价值,比如日出和日落、日历和月相。这个项目是我今年春天在 PyTennessee 和去年秋天在 PyGotham 做的“龙与地下城和巨蟒”演讲的起源。

我的另一个编程重点是担任 PyOhio 的项目主席。我真的为 PyOhio 多年来的发展感到自豪,能够在 2018 年和 2019 年塑造演讲阵容是一种荣誉和特权。我希望我们今年能够做些什么,但现在有太多的不确定性,我们社区的健康和安全对我们来说绝对是第一位的。

哪些 Python 库是你最喜欢的(核心或第三方)?

毫无疑问,请求和美丽的声音是很好的朋友。我从它们身上获得了很多好处!Dateutil 是一个伟大的前请求的最爱。Prompt Toolkit 是最近的新宠;在我的 D&D 工具中使用它的命令历史和自动完成真的很棒;我也很高兴在这个项目中使用 Attrs。我很高兴姜戈和弗拉斯克的存在,我也很喜欢和他们一起工作。我还体验了一个叫 FoxDot 的基于 Python 的工具,它可以让你现场编码电子音乐。我也真的在我的职业生涯中挖掘黑色,因为它消除了任何可能阻碍代码审查的文体吹毛求疵,让我们真正专注于重要的事情。

在标准库中,我非常喜欢 collections 和 itertools 模块,尽管我有时觉得自己不够聪明,无法使用 itertools 提供的所有功能。在请求出现之前,urllib 和 httplib 对我来说是举足轻重的。这可能不是一个非常流行的观点,但我也有点喜欢日志模块。

你是如何开始组织会议的?

我帮助建立并组织了我们当地的克利夫兰用户组 ClePy。有一次,我们和其他俄亥俄州的皮托尼斯派一起,试图组织一次游说活动,把皮肯带到克利夫兰。当它不起作用时,我们一群人开始谈论举行一次区域会议。我有一个 Illustrator 的副本,所以在我们到达 PyOhio 名称后,我做了一个标志和一些变体。这是在我女儿出生后不久,所以我的时间表除此之外并没有太多的安排。在接下来的几年里,我在 PyCon,CodeMash,最终在 PyOhio 做了相当多的演讲,并发现比较这些经历以及哪些成功了,哪些失败了是很有趣的。我逐渐和一些 PyCon 和 PyOhio 的组织者成为朋友,随着我经常去 PyOhio,我开始随身携带我的摄影器材,并自愿成为活动的摄影师。当 2018 年的计划推出时,一位同事兼好友正在主持 PyOhio,并要求我领导计划委员会。我抓住了这个机会,一点也不后悔。

对于那些想开会议的人,你有什么组织会议的建议吗?

工作量很大。你基本上是在做第二份工作,即使只是兼职。你可能不会得到报酬,如果你做得很好,没有人会注意到。你需要热爱它,并有正确的动机。但是看着这一切走到一起也是令人难以置信的,令人惊讶的满足感。我的生活中有很多美好的事情都来自于参加会议并在会议上发言,因此能够为他人的平台做出贡献也是提升他人的一种很好的方式,并让下一代拥有那些有意义的经历和职业发展。

今年,鉴于当前的事件,我不知道我是否会尝试召开一次新的会议——至少不会是一次面对面的会议。我很想知道当不同的团体尝试虚拟会议时会发生什么,所以这可能是现在探索的一个方向。在接下来的几个月里,我当然不会指望能得到多少赞助。但是最终呢?围绕我们感兴趣的事物建立真实的人际联系的需求不会消失,所以我预计会议——即使它们发生了巨大的变化——会在我们处于这种情况的另一边时卷土重来。我们需要积极的组织者和志愿者来帮助实现这一目标。

此外:有一个坚实的行为准则,以及处理任何可能发生的问题的良好流程。

你还有什么想说的吗?

现在世界上发生的一切让我接受采访感觉很奇怪。这是一个非常怪异、困难的时期,未来是不确定的。指数病毒增长的数学是冷酷和残酷的,所以我想呼吁每一个阅读这篇文章的人不要这样。互相照顾。有需要就寻求帮助;不知所措是正常的。让人们知道你关心他们——不要吝惜“我爱你”。最重要的是,我希望你保持安全和健康。

迈克,谢谢你接受采访!

本周 PyDev:Mirko Galimberti

原文:https://www.blog.pythonlibrary.org/2022/04/18/pydev-of-the-week-mirko-galimberti/

本周我们欢迎 Mirko Galimberti(@ m1sl 6)成为我们本周的 PyDev!米尔科是 Kivy 的核心开发人员,Kivy 是 Python 的跨平台 GUI 框架,目标是 iOS 和 Android,但也可以在 Linux、Mac 和 Windows 上工作。

米尔科也有一个网站,这是一个了解他在做什么的好方法。你也可以在 GitHub 上找到 Mirko 的代码贡献!

 Mirko Galimberti

让我们花些时间更好地了解米尔科吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

在成为一名软件开发人员之前,我一直(并非秘密地)沉迷于技术,尤其是在电脑方面。

我在 11 岁的时候有了我的第一个科技包(没有那么花哨和昂贵),但它是一套很好的硬件和软件工具,可以解决最常见的计算机问题。

后来,在我高中的早期,即使只有 C++和 Java 是课堂上的一个选项,我也开始为一个项目学习 PHP + JS + HTML5 + CSS3,这个项目是我和一个校友一起开始的,那是我第一次接触 web 开发的地方。

正如我的主页所说,现在我是意大利的一名全栈开发人员。当我不在笔记本电脑屏幕前时,你可以发现我在旅行,驾驶无人机进行航拍。我喜欢在堵车或露天节日时听 EDM 音乐。

你为什么开始使用 Python?

意外的是,在成为一名python 爱好者之前,我超级热爱 PHP????。

2014 年,我不得不从事一个全新的项目,在一次会议上,由于项目的性质,与我一起工作的顾问建议我依靠 PythonPostgreSQL

在一次 4 小时的速成课上,他向我介绍了 Pythonweb 2py框架。我立刻喜欢上了 Python 固有的干净代码方法和庞大的库生态系统。

我在速成班后开始写的代码仍然在生产中,并且在 6 个月的时间框架内,Python 成为了我 Web 开发的第一选择。

你还知道哪些编程语言,你最喜欢哪一种?

作为一个完整的堆栈,考虑到我必须适应不同的技术,我有机会用不同的语言编写代码。我有机会用 Python,Vanilla Javascript,TypeScript,PHP,Java,Objective-C,Swift,C,c++,C#,...(以及更多)

最近,我主要用 Python、普通 Javascript、Objective-C 和 Java 编写代码。

我最喜欢的是什么?明明 Python????

你现在在做什么项目?

在这一周里,我做网络开发(主要使用 py4web ,webpy reboot)和应用程序开发(显然使用 Kivy )。

最近,我一直在关注一个巨大的智能家居生态系统,其中大部分代码都是用 Python 编写的(除了设备固件)。

相反,在我的业余时间,我喜欢保持 基维框架 的更新和维护。

哪些 Python 库是你最喜欢的(核心或第三方)?

核心: unittest.mock(我还有很多要向这个怪物学习,增加 Kivy 的代码覆盖率看起来是了解它的一个好方法)

第三方:分开 Kivy? pydal 肯定是一个在使用数据库时帮助我在 web 开发工作流程中节省一些宝贵时间的工具。

你是如何成为 Kivy 的贡献者的?

2018 年开始,我只是修复了一些小错误,或者添加了一些缺失的功能,这些功能是我作为用户使用 Kivy 时遇到的。

2020 年初,我需要一些东西在周末分散自己的注意力,为 【基维】 做开源似乎是个不错的主意。

2020 年已经过去了,但是回馈给开源社区帮助我缩短生产时间是我无法停止的事情。

2021 年,我加入了核心开发者团队,我尽力让 Kivy 保持最新,并发展社区。

你最喜欢的 Kivy 的三大特点是什么?

  • 跨平台:在小型团队中,减少特定于平台的代码意味着您可以更快地实现特性,更快地测试它们,并消除 1 倍的错误,而不是 2 倍、3 倍、4 倍...我能够在我的 macOS 系统上开发应用程序,测试它,然后为 iOS、Android、macOS、Linux 和 Windows 分发相同的代码。
  • 拥有一套全功能的可扩展预建 UIX 小部件:即使您正在寻找的特定小部件不存在,您也很有可能会找到可以轻松扩展的东西。举个例子,对于我正在开发的智能家居应用程序,我能够用几行 Python 和 KVlang 构建一个定制的小部件,模仿一个真正的卷帘快门,替代一个不吸引人的滑块,这在 UX 中产生了一些摩擦。
  • MVP 友好和可扩展: Kivy 是启动友好的。你可以用一个小团队在几周内从零开始创建一个 MVP,并在不破坏一切的情况下扩展它

你还有什么想说的吗?

也许我们可以谈谈我是如何发现 基维 的?嗯,还是不小心????。

我有一个在研发冲刺阶段开发的基于 Python cli的工具,后来需要一个 GUI。

跨平台(桌面和移动)是必须的,经过快速研究后,似乎是一个显而易见的选择。

谢谢你接受采访,米尔科!

本周 PyDev:Miro hron ok

原文:https://www.blog.pythonlibrary.org/2019/03/25/pydev-of-the-week-miro-hroncok/

本周我们欢迎 Miro hron ok(@ hron cock)成为我们的本周 PyDev!米罗在捷克技术大学任教,并帮助当地皮拉第斯分会。除了教学职位之外,他还为 Red Hat 工作,参与了 Fedora 中 Python 的特殊兴趣小组。你可以在 Github 上查看他参与的一些项目,或者查看他的网站。让我们花一些时间来更好地了解米罗!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一个来自捷克共和国布拉格的男人,快三十岁了,但我的父母都来自斯洛伐克的科希策,所以我是捷克和斯洛伐克的混血儿。我在体育馆学习了 Pascal,后来在布拉格的捷克技术大学信息技术学院获得了计算机科学/软件工程的学士和硕士学位。我的大多数爱好都与计算机和技术有关,但除此之外,我还有两只爱尔兰猎狼犬,我喜欢滑雪。

她小时候我的一只狗

我的技术兴趣一直与自由和开源软件(和硬件)有关,从我十几岁时的捷克 Linux 社区开始,在我大学的早期共同创建了 RepRap 3D 打印实验室,并加入了 Fedora 和后来的 Red Hat,现在在 Python 维护团队工作,也是捷克 Python 社区的积极分子。

你为什么开始使用 Python?

Python 不知何故在我做事情的任何地方都出现了。是一些基本的 Linux 实用程序还是一些面向 RepRap 的应用程序,它碰巧是用 Python(或 perlðÿ˜)编写的。我更喜欢 Python 语法,因为我已经熟悉了多种语言,如 C、C++、Java、Pascal 甚至 PHP,所以我决定尝试一下 Python。一次偶然的机会,我在某个捷克 Linux 会议上免费得到了马克·皮尔格林的《深入研究 Python 3》的捷克语翻译版本,这是我智慧的主要来源。

你还知道哪些编程语言,你最喜欢哪一种?

除了已经提到的语言,我大部分时间都在 Shell 中工作。除了 Python 之外,我不认为我有喜欢的编程语言,但我喜欢 TeX 和 OpenSCAD (本质上不是“编程”语言)。

我真的对 Rust 很感兴趣,但我仍然没有找到合适的项目来学习它,而且自从我大学毕业后,我不知何故失去了通过 hello world 示例学习的耐心。

Haskell 是另一种我希望有一天能学会的语言。

OpenSCAD

你现在在做什么项目?

我在 Red Hat 的主要职责可能也是我的主要爱好是软呢帽。Fedora 是一个大项目,我开始是一名打包员(旨在引入 RepRap 应用),几个月后成为 Fedora 大使,由我的捷克朋友兼同事Ji eisch Mann和其他几位 Fedora 大使指导,他们大多来自德国。

后来,我成为了打包赞助者(能够“赞助”更多的打包者进入 Fedora 项目),最近加入了 Fedora 打包委员会Fedora 工程指导委员会

作为我工作的一部分,我是 Fedora 的 Python 特别兴趣小组的成员,并且作为 Red Hat 的 Python 维护团队的“主要 Fedora”人员,我主要在 Fedora 中处理 Python 的各个方面,试图让 Fedora 成为 Python 开发者的最佳系统。

除了 Fedora,我还参与了各种上游项目(大部分是小补丁),包括 pytest、betamax、Printrun 和 CPython 本身。

我还维护或共同维护由捷克 Python 社区创建的各种项目,最重要的是,我是 Elsa 的主要维护者,Elsa 是一个固执己见的冷冻瓶包装器。

那些大多是编程项目,但我也教书。我们在大学里有 3D 打印和高级 Python 课程,我还参加了捷克语 PyLadies 初学者课程

您喜欢使用哪些非 Python 开源项目?

我想我已经提到了很多ðÿ˜,除了像 Git 这样显而易见的东西,我真的很喜欢在我的 Xfce 桌面上工作时使用的 Geany 文本编辑器(用 c 编写);对于终端使用,我最近越来越喜欢(用 Go 编写)。至于实用工具,我喜欢 ripgrep (用 Rust 写的‘grep-r’或‘git grep’替换)。

你为什么去大学教书?

当我们建立 3D 打印实验室时(IIRC 大学本科二年级),我们正在寻找方法让其他学生熟悉 RepRap 项目和我们的活动。我们决定开设一门关于 3D 打印的选修课。我们让某人正式领导班级,但实际上是学生教的。后来,参与其他事情变得很容易,当我得知他们在技术文档类(LaTeX、graphviz、gnuplot 以及后来的 groff)中寻求帮助时,我也加入了进来。我想我倾向于参加我喜欢的事情。

当我完成我的硕士学位时,我也有一个教高级 Python 的想法,我已经说服了我的团队领导 Petr Viktorin。我们已经在知识共享许可下,通过开源学习材料为大师们开设了一门“红帽赞助”课程。

我在大学里主要教男生,我也加入了皮拉迪斯初学者课程,通过向女士们介绍 Python 来帮助平衡这种情况。

由于我一直在家工作,每周能够教一两次课给了我更多的社交机会。

对于想学习编程的人来说,你认为在捷克共和国有什么挑战(如果有的话)?

我真的不知道。有大量的英语和捷克语的免费资源,大量的公共活动,你可以了解更多,无数的孩子学习的倡议,甚至为俄斯特拉发地区的前矿工开设的课程。你所需要的只是一个将时间投入编程的意愿。

我真的不知道小学和中学的信息学课程是什么样的,可能会因机构而异,有时可能非常糟糕,也可能非常优秀。

我的建议是:如果你的学校不能教你编程,那就去别处看看。

来到捷克的 pycon 来见见所有来自我家乡的热情的人们,看看我们在ðÿ‡ðÿ‡ðÿ是怎么做事的

我的意思是,说真的,来,下一个是 2019 年 6 月在俄斯特拉发(如果你后来看到这个,请查看网站上的明年)。

PyCon 2017

在红帽工作最大的好处是什么?

和优秀的人一起工作,做一些我可能也会免费做的事情,并因此获得报酬,ðÿ

我为红帽工作了 6 年,大部分时间我只是做我认为正确的事情。不要误解我,我也和其他人交谈,但是现在没有一个客户需要一个特性(或者至少这个客户离我很远),或者一个坏老板告诉我,我只能在星期五为自由软件项目做贡献。我为红帽做的一切都是社区中的自由软件。

米罗,谢谢你接受采访!

本周 PyDev:Miroslav ediv

原文:https://www.blog.pythonlibrary.org/2022/12/05/pydev-of-the-week-miroslav-sedivy/

本周,我们欢迎 Miroslav ediv 成为我们的本周 PyDev!Miro 已经在几个不同的 Python 会议上做了演讲。你也可以在米罗的网站上找到他,或者查看米罗的 GitHub 个人资料

Miroslav Šedivý

让我们花些时间来更好地了解米罗吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等):

我的名字是 Miroslav ediv,但大多数人都叫我 Miro,这样他们就可以避免在键盘上输入一些他们没有的字母。我出生在捷克斯洛伐克(是的,我现在已经 30 多岁了),在法国和德国学习计算机科学,现在我住在奥地利。

计算机和编程成为我的职业爱好。另一个爱好,很难和第一个在专业上结合,就是人类语言。作为一个对旅行着迷的中欧人,我会说一堆语言,并且喜欢每天使用它们。

除此之外,我喜欢和家人在一起,徒步旅行,骑自行车,修理露天街道地图,露营和做木工。

你可以在 https://mas.to/@eumiro 找到我,偶尔也可以在一些 Python 活动中找到我。

你为什么开始使用 Python?

在我使用 PDL (Perl 相当于 NumPy)用 Perl 开发了一个相当复杂的风力涡轮机功率预测系统之后,我的同事开始在新项目中使用 Python。那是在 2008 年左右,在 Python 2.5 时代,有一些关于 Python 3 的传言。我给自己买了一本名为《Perl 到 Python 的迁移》的书,并试图让自己的头脑理解这些新概念。

我从一开始就记得的最糟糕的事情是,每次我想使用正则表达式时,都必须“导入 re”。在 Perl 中,用正则表达式做几乎任何事情都是第二天性。不是 Python。这就是不同语言的美妙之处:它们的思维方式。就像在法语中 one 不是简单地数到七十,也不是在捷克语中说“one beer”(“one”实际上是“beer”的同义词),在 Python one 中,可以使用其他工具来解析字符串。

你还知道哪些编程语言,你最喜欢哪一种?

上个世纪某个地方有一些 BASIC 和 Pascal,现在我的第一是 Python,伴随着 Shell。我记得过去或多或少严肃项目的一些 Perl,Java,C,PHP,我玩过 Go 和 Rust。

语言的选择通常取决于任务。我也不会用英语谈论食物和烹饪,或者用波兰语评论 Python 代码评论。我只在适合的东西上使用 Python。幸运的是,它适合我正在研究的大部分东西。

你现在在做什么项目?

除了我的工作,我在https://github.com/eumiro还有一些沉睡的项目,目前正在等待另一次热情爆发或外部投入。一天只有 24 1 小时,但我希望有更多的时间。

哪些 Python 库是你最喜欢的(核心或第三方)?

从标准库,如果我能进入 itertools 模块并简化我的代码,我总是很高兴。迁移到 Python 3 带来了 pathlib,这是使用文件系统时的一个彻底的游戏改变者。我也很高兴地看到不同模块之间的一些差距正在缩小,因此您不必导入任何其他东西来获得日期时间对象的 Unix 时间戳。

我合作过的第三方库有很多很棒的。最重要最复杂的大概就是熊猫了。

你最终是如何为开源项目做出贡献的?

在毕尔巴鄂举行的第一次 Python 大会 EuroPython 2015 上,我遇到了 PyTables 团队的 Francesc Alted,作为库的活跃用户,我在最后与他进行了长时间的讨论,我们甚至进行了一次冲刺,在他的帮助下,我从代码库中删除了一个过时的异常引发程序,这个程序困扰了我一段时间。

后来,我偶尔为我正在使用的一些项目做贡献,但在 2020 年圣诞节前后,我有了相当多的空闲时间,我在几十个 Python 项目中发现了过时的 CI/CD 配置,所以我开始系统地帮助他们修复管道,并更新他们的代码。这就是我的一个演讲“在你的代码中有 Python 2 的遗迹!”出生了。像“int(math.floor(x))”这样的 Python 2 hacks 在 Python 3 中也能工作,但是它们在现代代码中没有意义,应该进行重构。

作为一名贡献者,你学到的前三件事是什么?

小步前进。甚至更小。如果你认为你已经做了大量的工作并提交了一份很大的 PR,维护者将很难审查它,并且在一个活动项目中的任何 rebase 可能会停止他们对你的贡献的兴趣。

维护者是有工作来支付账单的人。尊重他们的时间和精力,不要指望他们只为你而来。

对项目进行评论。展示您如何在自己的工作中使用它,让维护人员感到他们的努力很重要。

你还有什么想说的吗?

请不要使用反斜杠故意断行。如果有一些行长度限制(无论是 78、80、88、100 还是 120),它会使您的代码更具可读性。实际上,总是有可能重新格式化你的代码来遵守这个限制,并避免编辑器中的水平滚动。每种格式都允许您在合适的位置换行。用反斜杠断行告诉读者“你必须在脑子里把这些线连成一条很长的线才能理解它。”

最后,我要感谢 Mike 的参与,以及整个 Python 社区在如此出色的产品和围绕它的整个生态系统上的合作。很高兴成为其中的一部分!

米罗,谢谢你接受采访!

本周 PyDev:摩西·扎德卡

原文:https://www.blog.pythonlibrary.org/2018/05/28/pydev-of-the-week-moshe-zadka/

本周我们欢迎 Moshe Zadka ( @moshezadka )成为我们本周的 PyDev!Moshe 是 Twisted 项目的核心开发人员,也是来自 Apress 出版社的 Expert Twisted 的合著者。他还是一本自己出版的书的作者,这本书来自 python import better 。你可以在这里找到关于 Moshe 的更多信息,这里包括他的 Github、Instagram 和博客的链接。

让我们花点时间听听他要说什么。

你能告诉我们一些关于你自己的情况吗(爱好、教育等)?

我来自以色列,目前与我的妻子和两个孩子(5yo 和 3yo)住在湾区。直到我结婚,生活变得太忙,我过去常常在洛基恐怖电影秀 shadowcast 中扮演斯科特博士。一旦孩子们长大了,我打算重新开始表演!

我以数学家的身份开始了我的生活,发表了一篇论文(“Orbifolds as Diffeologies”),但后来进入了软件开发界,最终成为了一名 DevOps 工程师。

你为什么开始使用 Python?

1998 年,我想要一种具有良好 XML 支持的语言。Python 有很好的 XML 解析库,所有其他有好的 XML 解析库的语言都是我无法想象会使用的。我最终真的很喜欢这种语言的美感,以及概念上的简单。

你还知道哪些编程语言,你最喜欢哪一种?

“知道”是一个如此模糊的术语。让我们把它限制在我专业使用过的语言上——Java、C、C++、JavaScript、Perl 和 PHP。Python 无疑是我最喜欢的,但是如果我不得不在其他语言中选择的话,我想我会选择 C。C 是一种糟糕的语言,但是它在某种程度上足以承担整个世界的重量。

你现在在做什么项目?

扭曲将永远是我参与的一个项目,在某种程度上,我怀疑。我最近肯定贡献了补丁和评论。NColony 是我的基于 Twisted 的进程管理器,这是我的一个奇怪的爱好(已经有一段时间了)——在编写了几个非开源的基于 Twisted 的进程管理器之后,这是第三个系统。Middlefield 是我定制开发者工具的平台,我构建它是因为我喜欢构建开发者工具!

哪些 Python 库是你最喜欢的(核心或第三方)?

attrs 是我离不开的一个 Python 库。习惯之后,很难想象再用太多的样板文件来编写一个类。我也喜欢 automat——它是“Python 的有限状态机,做得很好!”

在像 Twisted 这样的开源项目中,你学到了哪三件最重要的事情?

  • 人们来来去去(没关系)
  • 你十年前犯的错误会回来困扰你。
  • 在网上保持谦逊和友好是很重要的。

你从事开源工作的动机是什么?

不同的事情有不同的动机。我想我开始为核心 Python 做贡献是因为似乎所有酷的人都在做这件事,而且我真的想变酷。我开始为 Twisted 做贡献是因为我的一群朋友正在做一些很棒的事情,和他们一起做很有趣。我创办 NColony 是因为我不喜欢任何替代方案,我需要一个流程主管。

你是如何开始写一本关于 Twisted 的书的?

我希望我可以说这是一个大计划的一部分,但事实是,APress 想要一本关于 Twisted 的书,编辑意识到他会更幸运地向人们索要一些章节,并将它们拼接成一本书,并问我是否有一个章节的想法。当他意识到他注册了太多的时候,我从另一个合著者那里选择了另一个章节,并发现自己是这本书的正式合著者!

你从那次经历中学到了什么?

与出版商合作很有趣。我和他们所有人的经历有好有坏,但至少我真的觉得有一个支持我的环境。我也发自内心地了解到,一些我以前只在大脑中知道的东西(通过阅读科利·多克托罗的博客)——为自己将来的书做笔记的唯一真正的方法是为别人写博客。这样,当你需要的时候,笔记实际上是可读的!

你还有什么想说的吗?

我将利用这个平台提出一个问题,我认为作为一个全球社会,我们在可持续地做开源方面是失败的。我们依靠少数超负荷工作的志愿者,或者有时依靠一两家公司支付少量人员,来建设我们最重要的基础设施。我不知道解决方案,但我知道这是一个问题,我认为我们需要公开承认这一点,并就解决方案进行公开对话。

Moshe,谢谢你接受采访!

本周 PyDev:Mridu bhat nagar

原文:https://www.blog.pythonlibrary.org/2020/11/30/pydev-of-the-week-mridu-bhatnagar/

本周我们欢迎姆里杜·巴特纳加尔(@姆里杜 __ )成为我们的本周 PyDev!Mridu 喜欢做技术演讲。她最近开设了一个关于 Python 和其他技术话题的 Youtube 频道和一个博客

让我们花一些时间来更好地了解 Mridu!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

嗨,我是姆里杜。我的职业是后端开发人员。计算机科学与工程学位研究生。我正处于职业生涯的形成期。我喜欢构建东西,将想法转化为工作应用程序,并尽可能地自动化任务。

我感兴趣的其他领域包括户外运动、旅游、探险。我已经徒步旅行,徒步旅行,攀岩,长途自行车,皮划艇,现在我已经开始了,我总是在寻找机会再次做这些事情,并探索我迄今为止没有尝试过的事情,以面对恐惧,充分体验生活。

我更喜欢独自去见人。这提供了一个在各种聚会(不仅仅是技术聚会)上结识来自不同行业、不同年龄组的新朋友的机会,一个沉迷于有趣对话的机会,以及一系列可以学习和获得灵感的新事物。

你为什么开始使用 Python?

我在大学三年级,我们选修了 Python 这门课。这是人生的转折点。作为我们实验室工作的一部分,我们被分配了许多有趣的问题去解决。这些问题与构建有趣的应用程序有关,包括构建小型文字游戏、hangman、多人玩的井字游戏、修补棋盘、树莓 pi、beaglebone、使用 OpenCV 识别汽车牌照、QR 码等。

我们在一个项目上被评分。我对这些想法非常兴奋,以至于我开始建造更多的项目。渐渐地,我对编程的兴趣开始培养。

你还知道哪些编程语言,你最喜欢哪一种?

在专业上,我一直用 Python 编程,用 SQL 处理数据库。为了建立我的一些兼职项目,我使用了 HTML,CSS,JS。每种编程语言都最适合特定的用例,也有自己的局限性。然而,基于我可以使用该语言和围绕该语言的社区构建的各种附带项目,Python 是我最喜欢的。

你现在在做什么项目?

我目前正在实践和建设与网页抓取相关的项目,熊猫。解决 SQL 问题。

哪些 Python 库是你最喜欢的(核心或第三方)?

取决于我试图解决的问题的类型。

核心库:

  • OS——用于处理文件系统
  • 随机-原型快速游戏
  • datetime——用于处理与日期及其格式相关的所有事情。
  • JSON——用于解析 API 响应

第三方库:

  • 请求-查询 API
  • 熊猫-数据密集型任务
  • 小规模刮削项目
  • python-dotenv——遵循良好的实践为项目存储 API 密钥

你是如何开始做技术演讲的?

2017 年,我被选为班加罗尔 DjangoGirls 活动的学员。在那里,我遇到了很多来自 Python 社区的人。第二年 2018 年,我因为工作搬到了德里。我不记得我是如何看到 PyData 德里社区 Github 页面的。就是这样,我想开始克服公众演讲恐惧。我看到了机会。我找到我的 DjangoGirls 教练,问他我应该如何准备演讲。题目看起来还好吗?在 WhatsApp 上,他解释并回顾了演示文稿。这个提议被接受了。那是 2018 年 12 月,我发表了我的第一次演讲,主题是“Python 中的虚拟环境”,做了一个动手演示。谈话持续了 45 分钟。从那天起,几乎每隔一个周末,我都会在不同的聚会和会议上发表演讲。

从一个害羞内向的人到走向另一个世界并发表演讲是一段旅程。

没有什么比看到自己的进步和观众在学习一个新概念时的开心表情更令人满意的了。

你对其他想进入口语领域的人有什么建议?

1.让 CFP 被选中参加会议是一种运气。你不会知道为什么你的提议会被选中,或者为什么会被拒绝。聚会也不例外,他们总是在寻找演讲者。在聚会上发言总是一个双赢的局面。

2.如果做 30 分钟的演讲让人望而生畏。你总是可以选择从小处着手。你可以从一个简短的演讲开始,基本上是 5 分钟的演讲。每下一步都要不断前进。

3.以防你害怕面对观众。现在,是时候开始网上聚会和会议了,你不必直接面对你的听众。颤抖的手,颤抖的腿不会被看到。去吧。

你还有什么想说的吗?

在工程的最初几年里,我犹豫着是否要接触任何人,这让我付出了惨痛的代价。找到你的老师/导师。如果需要,伸出手,询问,寻求帮助。避免陷入分析瘫痪的陷阱。开始吧。

永远感谢给我介绍编程的老师/导师,相信你也能做到。通过在我的祖国和国外进行演讲,如果我能够以一种小的方式回报社区,这确实是一种集体努力。

感谢您接受采访,Mridu!

本周 PyDev:Naomi Ceder

原文:https://www.blog.pythonlibrary.org/2018/06/11/pydev-of-the-week-naomi-ceder/

本周,我们欢迎娜奥米·塞德( @NaomiCeder )成为我们的本周 PyDev。Naomi 是 Python 社区的长期成员,也是《快速 Python 书籍的作者。Naomi 是 Python 软件基金会董事会的现任主席,并且经常在编程会议上发言。让我们花一些时间来更好地了解内奥米!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

很多人都知道我现在是 PSF 的主席,很多人都听过我讲述我的性别之旅。

人们似乎很惊讶地发现我拥有古典文学博士学位——来自麦迪逊的威斯康辛大学——古希腊语、拉丁语和历史语言学,还有一些梵语和埃及象形文字。所以我对不同的人类语言以及它们是如何工作的很感兴趣,我认为这帮助了我学习和思考计算机语言。这当然有助于我阅读葡萄牙语、西班牙语和法语等语言。可悲的是,它对我说这些语言没有太大帮助,所以我最终只能理解我读到或听到的一些东西,但当我试图交谈时,却舌头打结,看起来像个傻瓜。

本周 PyDev:内森·爱泼斯坦

原文:https://www.blog.pythonlibrary.org/2020/09/07/pydev-of-the-week-nathan-epstein/

本周,我们欢迎内森·爱泼斯坦(@爱泼斯坦 _n )成为我们本周的 PyDev!内森在世界各地就各种主题发表过演讲。他还为 Dev.to、Codewords 等撰写了文章。

让我们花一些时间来更好地了解 Nathan!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我在哥伦比亚大学本科和研究生院学习应用数学。在空闲时间,我听讲座,大量阅读;尤其是社会科学领域的话题。

其他爱好包括作曲、下象棋、徒步旅行和骑自行车。

你为什么开始使用 Python?

科学计算。易用性、可读性和库生态系统使它成为该领域内众多任务的绝佳选择。

你还知道哪些编程语言,你最喜欢哪一种?

不同程度上,我也懂 R,JavaScript,C,C++,C#,Ruby,Scala。

其中,我认为 C++是我最喜欢的。它在底层控制和易用性之间提供了一个非常好的平衡。但是我最喜欢的是 Python。

你现在在做什么项目?

在工作之外,我正和一些朋友合作写一篇计算生物学论文,并摆弄程序生成的音乐。

哪些 Python 库是你最喜欢的(核心或第三方)?

数据科学和 ML 的一些非常典型的东西。熊猫,scikit-learn,NumPy,Keras,TensorFlow。对于“大数据”,Spark 和 MLlib。

我看到你做了很多演讲。你是如何开始这样做的?

我开始通过兼职项目发表演讲。我想,如果某件事足够有趣,让我愿意花时间去做,那么其他人可能也会感兴趣。

你对其他想做演讲的人有什么建议吗?

如果你有想分享的想法,不要犹豫,提交一份建议。令人惊讶的是,很多会议都乐于和第一次发言的人一起工作。

你还有什么想说的吗?

我非常相信科学计算的重要性。为此,我很乐意推荐人们考虑支持 Python 软件基金会、R 基金会、NumFOCUS 和 Code Nation 的某种组合。

内森,谢谢你接受采访!

本周的 PyDev:Ned Batchelder

原文:https://www.blog.pythonlibrary.org/2015/03/09/pydev-of-the-week-ned-batchelder/

本周,我们欢迎内德·巴切尔德(@内德巴特)成为我们本周的 PyDev。我喜欢奈德的博客已经有一段时间了。他也是覆盖包的作者,在几个 Python 用户组中相当活跃。让我们花些时间来更多地了解内德吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名彻头彻尾的软件工程师。近 40 年来,我一直在研究和思考各种形式的软件。我母亲是一名软件工程师,所以我从她的书开始。她的父亲是人口普查局的统计学家,所以我甚至有一些属于我祖父的计算机书籍。

我的家庭是我的一个巨大的副业:)。我有三个男孩,一个自闭症。处理他的问题,他如何融入这个世界,以及这个世界如何看待他,对我来说是一次接受和差异的大教育。还导致了在白宫的晚餐(http://nedbatchelder . com/blog/200607/sue _ and _ neds _ excellent _ adventure _ part _ 1 . html)!

至于实际爱好,我喜欢杂耍。我很惊讶在 PyCon 上玩杂耍从来没有一个一丘之貉。🙂

你为什么开始使用 Python?

1999 年,我在 Lotus 工作,研究 Lotus Notes,我听说了一个群件工具:Zope,它拥有比 Notes 更复杂的访问控制系统。我研究了一下,印象深刻,但是真正让我印象深刻的是实现它的语言:Python。Python 成了我的工具语言。随着时间的推移,我对 Python 的使用越来越多。2006 年,我找到了第一份全职使用 Python 的工作,从那以后我就完全迷上了 Python。

你还知道哪些编程语言,你最喜欢哪一种?

我从事网络工作,所以 JavaScript 当然是其中之一。如果使用得当,这是一个很好的工具,我们都可以在 WATs 上咯咯地笑,所以这很有趣。

我曾涉猎过 Haskell,试图理解函数式思维模式。不可变的数据结构非常吸引人,但是我很难爬上学习曲线来编写真正的程序。

我过去广泛使用 C 语言,现在仍然编写它来优化 Python 系统的某些部分。它比 Python 更面向细节,尤其是在使用 Python C API 编写时。除了 Python 屏蔽掉的常见的 C 细节(如内存管理和错误状态返回)之外,您还必须完成实现这种屏蔽的所有工作,例如显式地操纵引用计数。我喜欢这种程度的细节,即使只是很短的一段时间。写 Python 的时候,我感觉自己就像一个建造整栋房子的木匠。这样写 C 语言,我感觉自己就像一个钟表匠在制造一台微调过的机器。在眼睛上戴一个放大镜对手表来说很好,但对房子来说就不那么好了!

你现在在做什么项目?

我的全职工作是在 edX,在那里我帮助开源社区使用这个平台来教育世界。这是一个具有挑战性的应用程序,也是一个将内部 edX 世界与更大的社区联系起来的挑战。我喜欢这个崇高的目标,我喜欢有机会把开源作为我的日常工作。

我主要的副业项目仍然是 coverage.py,我已经维护和扩展它十年了。我正在接近支持像 Django 和樱井真子这样的模板语言的覆盖率测量,这对 web 应用程序来说应该是一个有趣的进步。HTML 模板中有大量的逻辑,不知道测试哪些部分是我们现在测试策略中的一个很大的缺口。

在非编码方面,我是 Boston Python 用户组(http://bostonpython.com)的组织者。它规模很大,有 5000 多名成员,并且很活跃,每月举办两次活动。能够用一门技术学科把人聚在一起,是一件很欣慰的事情。如果你来波士顿,请联系我们,我们喜欢邀请客座演讲。

我的一个兴趣是向人们解释 Python。我真的很喜欢能够深刻理解一个主题,以至于我能够清楚地解释它,并且对初学者来说是一个合适的水平。我最近的 PyCon 演讲倾向于这类话题:Unicode(http://bit.ly/unipain)、迭代(【http://bit.ly/pyiter】)和测试入门()。

哪些 Python 库是你最喜欢的(核心或第三方)?

有这么多可以选择的!除了像 itertools、requests 和 tox 这样常年受欢迎的工具之外,我很高兴继续发现像 blessed 这样的小宝石,以及像 click 这样的新工具。他们展示了 Python 开发人员在工作中运用的技巧,以及致力于开发帮助他人的工具。

你还有什么想说的吗?

有时候,我会怀疑自己在 Python 世界投入了多少精力。为什么编程语言会受到如此多的关注?这取决于那个世界能做什么。

从技术的角度来看,Python 是一种可以推动人们创造的工具。其中一些创造会给世界带来好的改变。拥有一种像 Python 这样强大而又平易近人的语言有助于人们建立自己的想法。如果我能为 Python 生态系统的广度和能力做出贡献,那么我觉得我已经为这些想法的形成做出了贡献。

从组织的角度来看,Python 是一个有效的开源项目的例子。这并不总是容易的,当然会有摩擦。有错误:我认为如果我们有机会从头再来一遍,Python 3 的过渡会有不同的处理方式。但总的来说,Python 是管用的,进步不错。我喜欢它可以作为一个开源的例子来生产人们使用的东西,包括缺点和所有的。

最后,从人际关系的角度来看,我重视我在 Python 世界认识的人。对于世界另一端的陌生人来说,一门编程语言似乎是一件奇怪的事情,但为什么不呢?这并不比支持同一个棒球队或热爱编织更奇怪。Python 让我们走到了一起,我们的联系也由此发展起来。

所以 Python 可能“仅仅”是一种编程语言,但它也是积极联系和效果的种子。这就是为什么我会全力以赴。

非常感谢!

一周的最后 10 个 PyDevs

本周 PyDev:尼尔·穆勒

原文:https://www.blog.pythonlibrary.org/2019/04/29/pydev-of-the-week-neil-muller/

本周我们欢迎尼尔·穆勒成为我们的本周 PyDev!尼尔是开普敦 Python 用户组 T1 和 T2 PyCon ZA T3 的组织者。他还在会议上发言!你可以在 Github 上了解更多关于他的开源项目的信息。让我们花一些时间来更好地了解尼尔!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名应用数学家,对图像处理和数值计算感兴趣,目前在南非开普敦地区生活和工作。我对面部识别产生了兴趣,并获得了斯泰伦博斯大学的博士学位,这导致我在 iThemba 实验室研究各种图像处理和数值建模问题。

这几天我把工作时间分在 iThemba LABS 和 Stellenbosch 的一家机器学习公司之间。

业余时间痴迷桌游和卡牌游戏,尤其是吸血鬼:永恒的斗争

你为什么开始使用 Python?

我第一次使用 Python 是在 1997 年,当时我在写硕士论文,解决了一个简单的文本处理问题。我喜欢这种语言,但当时我主要还是 Matlab 用户,所以直到 2004 年左右,我才真正接触 Python,当时我的几个朋友和同事开始对这种语言感兴趣,并鼓励我重温它。我很快爱上了大型标准库和正在发展的科学计算栈。到 2005 年,它已经取代 Matlab 成为我解决问题的首选工具。

你还知道哪些编程语言,你最喜欢哪一种?

除了 Python,我还用 C 和 C++做了大量的工作,也做了一些 JavaScript 和 shell 脚本。过去,我曾广泛使用 Matlab,使用过一些 PHP 和一点 Fortran。

Python 是我最喜欢的语言。“Python 适合你的大脑”这句话对我来说是正确的——我喜欢这种语言的语法和表达能力,并发现它是一个非常强大的工具,用于建模和理解我试图解决的任何问题。虽然它并不总是给定问题的最终解决方案的一部分,但它几乎总是实现目标的一部分。

你现在在做什么项目?

目前,我正在从事的 OSS 项目有:

  • PyCon ZA 和 Debconf 使用的 Django 管理会议的网络应用。
  • Sutekh ,基于 Python 和 PyGtk 的《吸血鬼:永恒的斗争》卡牌库存管理程序。

我也是开普敦 python 用户组 T1 的主要组织者之一,参与组织 T2 PyCon ZA T3 并帮助维护 Debian 中的一些 Python 包。

哪些 Python 库是你最喜欢的(核心或第三方)?

NumPy 对我非常有用。

我非常喜欢 SQLObject。

我也是 Sphinx 和围绕它成长起来的 readthedocs 基础设施的超级粉丝。

你是如何在 Python 大会上发表演讲的?

作为帮助开普敦 Python 用户组发展的一部分,我开始谈论 Python。这是 Python 的一大优点,因为对于人们用 Python 做的各种各样的项目来说,总有新的东西可以谈论。随着 PyCon ZA 的发展,开始在那里提供讲座是一个自然的过渡。

你对未来的演讲者有什么建议吗?

我的大部分建议是不要害怕提出谈话的想法。几乎每个和我交谈过的人都低估了他们熟知的东西有多有趣。你会惊讶于有多少人没有听说过你认为人人都知道的事情。即使你不想在会议上发言,也可以去你当地的用户组或者其他相关的聚会上演讲。谈论事情很酷,更多的人应该这样做。

你还有什么想说的吗?

我鼓励每个从事 Python 工作的人至少参加一次 PyWeek 。我从我参与的项目中学到了很多关于 Python 的东西,这是一个很棒的社区,看到有才华和有决心的人在一周内可以做出什么是不可思议的。

尼尔,谢谢你接受采访!

本周 PyDev:Ngazetungue mu heue

原文:https://www.blog.pythonlibrary.org/2021/04/05/pydev-of-the-week-ngazetungue-muheue/

本周,我们欢迎 Ngazetungue mu heue(@ muheuenga)成为我们本周的 PyDev!Ngazetungue 帮助组织 PyCon 纳米比亚,是 Python 纳米比亚的联合创始人。他是一名活跃的演讲者,也是 Python 软件基金会的成员。

Ngazetungue Muheue

Ngazetungue Muheue

让我们花些时间去更好地了解他吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是 Ngazetungue Muheue,纳米比亚人,开发人员,大会发言人,住在纳米比亚的温得和克市。我出生在纳米比亚,在这个国家远离牲畜的偏远地区长大。我是一名农民,尽管最近我跳槽到了科技领域。

我毕业于纳米比亚大学,获得计算机科学(荣誉)学士学位和文凭。虽然我上过几门技术课,但我的兴趣主要在编程方面。在编程领域接受教育拓宽了我的视野,我确实从各种不同的角度解决了问题。

我是 Python 软件基金会的研究员,对为技术领域的弱势群体或代表不足的群体而奋斗,并让世界各地的每个人都能更容易地使用这种语言有着浓厚的兴趣。希望,如果我们有共同的目标,这个世界会变得更好。几年来,我一直是 Python 社区的积极志愿者,倡导在纳米比亚和全球使用 Python。

当我不写代码的时候,你会发现我和朋友们在运动场上,在河床上听鸟鸣,和我的祖父母围着火炉听他们的童年故事。另外,我喜欢下棋。搞笑的部分,我不擅长看电影,我可以暂停两天,第三天继续看。希望我会继续努力。

你为什么开始使用 Python?

高中毕业后,我遭遇了一场车祸,这场车祸几乎使我瘫痪,并使我在医院里呆了整整一年。我不能动;我的胳膊和腿不听使唤了。

我开始问自己,我该怎么帮助自己,如果我的胳膊又不能用了,我该怎么办?那段时间,我买了我的第一台笔记本电脑。我记得在使用脸书时,我想知道人们如何与美国和世界其他地方的人交流。那是开启我旅程的火花。

2014 年,我被纳米比亚大学录取,参加一个为期两年的项目,以获得计算机科学文凭。我第一年接触 Python 的时候。2015 年,我们在纳米比亚大学和卡迪夫大学举办了第一次 Python 纳米比亚会议,然后我决定在 Python 领域更加活跃。我爱上了这种语言,因为它的语法,对我来说,在大学的项目中使用它很容易。我使用这种语言越多,我就越意识到它有一个了不起的社区,已经成为我生活的一部分。我交了很多来自世界各地的朋友,他们给了我很多帮助。这也是我坚持使用 Python 的原因之一。

你还知道哪些编程语言,你最喜欢哪一种?

目前,除了 Python 和 Javascript,我没有最喜欢的编程语言。我在大多数项目中使用 Django 框架。我在大学攻读文凭期间曾经使用过 Visual Basic 和 C#,现在我正在学习 React。老实说,我更喜欢 Python,还没有尝试过太多其他语言。

你现在在做什么项目?

目前,我正在用 Python/Django 为我以前在纳米比亚偏远地区的一所学校开发一个短信通知系统。我希望该系统将改善家长和学校管理层之间的沟通。这将减少新冠肺炎疫情期间学校内外不必要的访问。我还有其他项目正在进行中。

哪些 Python 库是你最喜欢的(核心或第三方)?

我喜欢 pathlib,它提供了一个对象 API 来轻松处理文件和目录。

是什么让你决定成为你们国家的 Python 倡导者?

几年来,我一直是我所在社区的积极志愿者,2015 年,在我们在纳米比亚举行的第一次 Python 大会之后,我决定开始倡导在纳米比亚和全球范围内使用 Python。我知道世界上大多数发展中国家依赖于开放和用户友好的技术,增加社区参与和教授 Python 将为我们的国家和公民带来变革性的力量。

我想让更多的年轻人和女性进入科技行业,参与我们的旅程。女性激励着我,我相信一个没有女性的社区不是一个社区。

最后,我仍然相信,将纳米比亚的 Python 社区聚集在一起,将有助于我们从小学生开始培养新一代的 Python 开发人员。如果我们携手并开始为之做出贡献,纳米比亚的所有人都有可能成为 Python 开发者。不仅如此,我认为我的参与将改变纳米比亚软件开发的未来。

你还有什么想说的吗?

嗯,纳米比亚 Python 社区正在为今年 6 月的第七届纳米比亚 PyCon 做准备。我鼓励所有读者关注我们的@PyConNA 页面,获取更多更新。

Ngazetungue,谢谢你接受采访!

本周 PyDev:尼古拉斯·亨特·沃克

原文:https://www.blog.pythonlibrary.org/2018/01/08/pydev-of-the-week-nicholas-hunt-walker/

本周我们欢迎尼古拉斯·亨特·沃克( @nhuntwalker )成为我们的本周 PyDev!尼古拉斯学习成为一名天体物理学家,然后决定转行教授编程和软件开发。你可以在 Nicholas 的网站上找到更多关于他在做什么的信息,或者可能在 Python 会议上见到他。他目前被安排在本月晚些时候在 PyCascades 和二月份在 PyCaribbean 发表演讲。让我们花一些时间来更好地了解他!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我叫 Nick,目前是西雅图地区编码学校 Code Fellows 的 web 和软件开发首席讲师。我来自纽约的埃尔蒙特,在 2010 年去西雅图读研究生之前,我在那里度过了大半辈子。离开纽约大学之前,我获得了纽约城市大学约克学院的物理和数学学士学位,并参加了哥伦比亚大学的博士项目。正是在那之后的一段时间里,我获得了除电子游戏之外的第一个真正的爱好,即卡波伊拉的非洲裔巴西武术。从那以后,我一直断断续续地练习它,它仍然是我最热爱的事情之一。我也喜欢在龙与地下城中偷东西,抱石,休闲划船,以及在太平洋西北部徒步旅行。

你为什么开始使用 Python?

我并不总是编程,甚至没有为此写过 Python。我的 Python 之旅始于我在华盛顿大学天文系攻读博士学位的第二年,当时我采用了这种语言,因为我厌倦了另一种叫做 IDL 的语言。我开始学习 Python 是因为它是当时天文学的新宠,写出来的代码看起来像英语,而且它是免费的,所以我不必为我想使用这种语言的每台机器获取许可证。

在那些日子里,我主要使用 Python 进行数据分析和可视化,试图利用进化的恒星群体绘制出我们自己的星系(银河系)的结构。我会写这些巨大的、记录不良的 Jupyter 笔记本来执行我的分析,然后当我的研究需要采取不同的方向时,我会忘记我最后写的任何一个,并用新数据或新方向再次做同样的事情来尝试。这是一个烂摊子,很容易在我的旧 GitHub 库中看到。在我的研究中,Python 帮助加强了如何用这种语言完成工作的一些基础知识,但是大约一年前,我的大部分 Python 技能来自于一些副业项目,我只是探索了我的一个想法,并使用互联网试图找出如何实现这个想法。那是我玩得最开心的地方,也是引领我走到今天的地方。

你还知道哪些编程语言,你最喜欢哪一种?

我用 PHP、IDL、Fortran 77、R 和 JavaScript 写过。其中,我唯一愿意再次使用的是 JavaScript。我知道每一个都有它的优点,但是主啊,除了最后一个,我从来没有在任何一个中得到任何乐趣。在这个时候,我也很难用其他语言写一些连贯的东西。我定期教授初级和中级 JavaScript 也很有帮助,所以我对这种语言的热爱是一种职业风险。我想学习 Java,但是最近学习的时间很短。

你现在在做什么项目?

我只是为我的未婚妻的业务包装一个网站(需要她批准之前,我把它的域名,并公开工作)。我为一个朋友的摄影建立了一个网站,应该会很快。在很大程度上,我的时间要么花在完善我将于 2018 年 1 月在 PyCascades 和 2018 年 2 月在 PyCaribbean 上发表的关于 Python web 框架的演讲上,要么花在完善我在 Code Fellows 上的 Python 课程上。语言在不断发展,所以我教的课程也需要随之发展。

哪些 Python 库是你最喜欢的(核心或第三方)?

在我的心里有一个小地方是留给网络抓取的,所以我喜欢请求和美丽的声音。这些天来,Web 框架在很大程度上是我的最爱,所以我花了很多时间和 Django 在一起,但是自从写了这个会议演讲的初稿,我开始喜欢上了金字塔和龙卷风。内置的 datetime 库总是我的最爱,因为我花了很多精力试图拿出假数据进行演示测试,所以 Faker 库是我的王牌。但是,以上都比不上我对 Ansible 的热爱。对 Ansible 的疯狂热爱!

你还有什么想说的吗?

虽然我喜欢这门语言,但我更喜欢 Python 社区(我接触过的)。具体来说,我想大声说出 Puget Sound Programming Python meetup group,它是西雅图的主要 Python 用户组,包含许多我现在认为是朋友的人。他们超级友好,对有广泛经验的开发人员开放,并开始转向专注于指导初级开发人员的小组。毫无疑问,我非常期待看到它的扩展,并引导新的开发者进入我们舒适的 Python 爱好者圈子。

非常感谢你接受采访!

本周 PyDev:尼古拉斯·托勒维

原文:https://www.blog.pythonlibrary.org/2016/07/25/pydev-of-the-week-nicholas-tollervey/

本周,我们欢迎尼古拉斯·托勒维( @ntoll )成为我们本周的 PyDev。他是 Python 教育小册子的作者,也是学习 jQuery 延迟者:驯服回调地狱与延迟者和承诺的合著者。他是伦敦 Python 代码道场的联合创始人之一。你应该去看看他的网站,看看他在做什么。让我们花些时间了解一下我们的同胞皮达尼斯吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等):
我是一名英国的自由程序员。

我第一次学习编程是在我还是个孩子的时候,用的是 BBC 的微型电脑。像许多特定年龄的英国程序员一样,当回忆起这样一台机器所产生的兴奋感、冒险感和可能性时,我会泪眼模糊。

十几岁时,我上过音乐课,最后从伦敦皇家音乐学院获得了本科学位。这非常有趣:除了别的以外,我的作曲导师曾经教过安德鲁·洛伊德·韦伯,我的键盘和声老师是女王的私人风琴师(他是皇家教堂的主管)。在开始音乐教学生涯之前,我曾职业演奏过一段时间。我还继续攻读哲学和计算机学位~我 20 多岁的时候都在
教和学很酷的东西!

当我有了一个家庭,我决定我也需要一个职业改变,并回忆起我在 BBC micro 上的乐趣,所以回归编程。现在我花很多空闲时间做音乐。

你为什么开始使用 Python?

我大四了。在伦敦的一家投资银行做. NET 开发——我和 quants 一起开发了一套内部的 SCM 相关开发工具。他们希望能够为我的一些软件编写脚本,所以我研究了一下作为潜在解决方案的 IronPython 。除了对 Python 语言印象深刻之外,这些调查还把我带到了非常友好的英国 Python 社区,我意识到我是在朋友之中。我花了几个月的时间学习 Python,并以初级 Python 开发人员的身份重新开始了我的编程生涯,而且从未回头!那是六七年前的事了。

你还知道哪些编程语言,你最喜欢哪一种?

由于我做过大量与 web 相关的编程,JavaScript 是我继 Python 之后的第二语言。很明显,我知道 C#和 VB(尽管它们很生疏),并且在我职业生涯的不同阶段使用过 Ruby、Java 和 Erlang。我倾向于尝试其他语言,因为获得另一种视角很有趣,尽管我总是喜欢回到 Python:这就像穿上一双最喜欢的舒适的拖鞋。😉

Lisp 是一门美丽的语言。我曾经写过 Lisp 编程语言的一个版本(为了好玩),尽管它永远不会被公开。它向我证明了设计一门编程语言是多么困难,并让我意识到 Guido 和核心开发人员用 Python 做了多么了不起的工作。

你现在在做什么项目?

我提议、协调并促成 PSF 参与新的 BBC micro:bit 项目。一个微型:bit 是一个针对 11 岁儿童的小型可编程设备。英国所有 11 岁和 12 岁的孩子都拿到了 100 万张。其目的是重现 BBC micro 的光辉岁月(见上图),并激励新一代的数码制作者。我目前的重点是让这些努力的成果得以持续。

由于达米恩·乔治的惊人工作,该设备运行 MicroPython ,这是一个开源项目,因此任何人都可以贡献代码。

我还编写了许多与项目相关的工具: Mu (一个用 Python 编写的儿童代码编辑器),一个为microbit.co.uk 网站开发的儿童友好的基于 web 的 Python 编辑器,以及各种与 Python 相关的实用程序,使与设备的交互变得容易。我还学习了一些 C 和 C++,因为我对运行在 micro:bit 上的 MicroPython 代码做出了一些贡献。再次成为一个完全的初学者是令人着迷和有趣的。

哪些 Python 库是你最喜欢的(核心或第三方)?

我喜欢和 asyncio 一起工作。我用它写了一个分布式哈希表(作为一个有趣的教育练习)。我也坚信 Python 3 是每个人都应该在新项目中使用的。😉

我也喜欢简单,幸运的是,在 Python 生态系统中有许多简单库的例子。

给我留下特别深刻印象的是 PyGameZeroGPIOZeroNetworkZero 库(更多“WhateverZero”库即将推出)。这个想法是在一个现有的强大的库之上写一个简单的 API,让初学者更容易理解。一旦初级程序员有了基本的概念,他们就可以开始拉开帷幕,探索底层库。Dan Pope (PyGameZero)、Ben Nuttall (GPIOZero)和 Tim Golden (NetworkZero)的非凡努力值得称赞(他们三人都花了大量时间与老师合作,研究如何最好地设计他们的库来吸引新程序员)。

作为一门编程语言,你认为 Python 将何去何从?

  • MicroPython 非常重要。这就是 Python 如何成为新生的物联网的一部分。达米恩·乔治(MicroPython 的创始人)单枪匹马地创造了一些令人惊叹的东西。又一次,又一个被赞扬的目标。
  • 各种形式的教育都应该是我们社会关注的焦点。通过教学和学习,我们可以与未来的同事互动。显然,我们希望他们了解 Python,更重要的是,接触到 Python 社区所信奉的价值观。😉

你对当前的 Python 程序员市场有什么看法?

在英国,各个行业都需要大量的 Python 开发者。在可预见的未来,这种情况看起来不会改变(见我上面关于教育的评论)。

你还有什么想说的吗?

Python 最好的一面在于它的社区:我想公开地对那些在我继续学习和使用这种出色的语言时帮助过我的人说声“谢谢”。

感谢您接受采访!

本周 PyDev:Nick Coghlan

原文:https://www.blog.pythonlibrary.org/2015/11/30/pydev-of-the-week-nick-coghlan/

本周,我们欢迎 Nick Coghlan(@ ncoghlan _ dev)成为我们本周的 PyDev。Nick 是 Python 语言的核心开发人员。他还写了一篇相当激烈的 Python 博客。让我们花些时间听听他要说些什么。

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

通过培训,我成为了一名计算机系统工程师,我的第一份全职工作是为澳大利亚国防部队的国家高频无线电网络编写数字信号处理软件。我现在为 Red Hat 工作,旨在使 Fedora 成为构建尖端开源应用程序的更好平台(尤其是 Python!).

我目前的主要消遣包括帮助提高 Python 软件基础和 CPython 核心开发的可持续性。实际上,我正在努力减少我参与的不同 Python 社区活动的数量,以便为完全“只是为了好玩”的活动(比如打板球)争取时间。

你为什么开始使用 Python?

在我的第一份工作中,我最初的 DSP 代码测试软件是一个非常简单的 C 程序,让太多的错误进入下一级的集成测试。Python 的 unittest 模块和 SWIG 包装器生成器为我提供了编写一个新的、更复杂的测试工具所需的一切,它可以更好地确保 DSP 软件按预期工作。

你还知道哪些编程语言,你最喜欢哪一种?

除了 Python,我经常使用的其他语言是 C、JavaScript 和 POSIX shell 代码。我真的很喜欢 C,因为它仍然是使现代计算成为可能的“可移植汇编代码”。我专业使用的另一种主要语言是 C++。

还有一个更长的语言列表,我已经学得足够好了,可以阅读,我目前正在写一篇博文提供关于其他编程语言的建议,人们可以考虑学习这些语言来帮助理解 Python 工作方式的各个方面。

你现在在做什么项目?

我现在从事的主要项目是 Fedora 的软件组件管道,它旨在使开发 Fedora 本身和开发其他使用 Fedora 作为基础操作系统的应用程序变得更加容易。我目前正在构建的具体部分是一个名为 RepoFunnel 的项目,旨在使用纸浆内容管理系统更容易地混合和匹配来自不同软件仓库的组件。

作为 Fedora Environments & Stacks 工作组的成员,我也在帮助考虑我们可以重新设计 Fedora 的包审查过程的方法,以使它更加具有多个审查阶段,而不是单一的全有或全无审查门。

哪些 Python 库是你最喜欢的(核心或第三方)?

作为一名专注于后端的开发人员,Tom Christie 的 Django REST 框架是我喜欢的一个,因为它提供了大量关于设计 REST APIs 的知识,以及它默认提供的非常有用的可浏览 HTML 版本的 API。

在标准库中,我喜欢在 dis 模块中默认提供一个反汇编器,因为我真的很喜欢让人们更容易地探究 CPython 的内部。

你还有什么想说的吗?

我收到的最好的建议之一是“健康、人际关系、职业、社区,依次排列”,就个人优先事项而言,我认为这是一个非常好的建议。

Python 有一个充满活力、富有弹性的全球生态系统,所以我们不希望任何人为了社区的利益而牺牲自己的利益。不幸的是,当我们对社区项目充满热情和兴奋时,我们很容易过度承诺自己,除了我们,没有人能看到我们的时间和精力去了哪里。如果我们因为参与社区活动而感到筋疲力尽,我们能做的最好的事情就是后退一步,说“我不能再这样下去了”。如果我们怀疑某个我们认识的人快不行了呢?我们可以明确地提醒他们,停止贡献我们没有多余的时间和精力总是没问题的。

非常感谢!

一周的最后 10 个 PyDevs

本周 PyDev:妮可·哈里斯

原文:https://www.blog.pythonlibrary.org/2016/04/25/pydev-of-the-week-nicole-harris/

本周我们欢迎妮可·哈里斯( @nlhkabu )成为我们本周的 PyDev!Nicole 是仓库的首席设计师,该仓库是 Python 打包索引(PyPI)的替代品。你可以在这里看到网站的演示版。她还在与 O'Reilly 出版社合作拍摄 Django 的电影,你会在下面听到更多。妮可也有一个有趣的博客非常值得一试。让我们花一些时间来更好地了解她!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我一直都是一个有创造力的人。我在大学学习电影和摄影,并进入了网页设计(这最终使我进入了 Python),因为我想创建一个我的动画作品的在线作品集。我从未推出过那个作品集——但我确实爱上了网络。

在业余时间,我喜欢做饭和缝纫。我也在学习说法语。

你为什么开始使用 Python?

我和我的丈夫(他也是 Python 开发人员)一起经营一家小型咨询公司;他主要和姜戈一起工作,我负责设计。我们有越来越多的开发工作要做,所以我决定学习 Python 和 Django,这样我就可以帮忙了。

令我完全惊讶的是,我绝对喜欢后端工作。能够解决我自己的问题并从头开始建造东西是一个真正的启示。

你还知道哪些编程语言,你最喜欢哪一种?

鉴于我的背景,我对 HTML 和 CSS 非常熟悉,进而对 SCSS 也非常熟悉。

我涉猎 Javascript,2016 年的目标之一是提高 JS 熟练度。我对此非常兴奋,因为 ES6 有许多“类似 Python”的特性。鉴于这些编程语言的应用非常不同,我不知道我最喜欢哪一种。但是让我们这么说吧——我并不急于用别的东西来代替 Python 来满足我的需求。

你现在在做什么项目?

我负责仓库的设计,今年将取代 PyPI。该项目非常令人兴奋,我们一直在寻找贡献者。到目前为止所做工作的总结(以及社区如何帮助)可以在我的博客上找到。

我还在做一个名为 Connect 的 Django 项目。这个想法是为一个社区(技术或其他)的成员创造一个安全、适度的空间。我希望将其作为 Django 社区的指导平台。我最近在这方面没有取得太大进展,但我希望很快能改变这种情况!

最后,我最近为 O ' Reilly Media 录制了一个截屏:Django 简介:设置、创建和部署 Django 项目的实用指南。我真的很高兴能把我的 Django 知识传授给新人。

哪些 Python 库是你最喜欢的(核心或第三方)?

姜戈!我也喜欢使用 FactoryBoy 进行测试,尤其是自从最近与 Faker 集成之后。

你还有什么想说的吗?

感谢迈克向我伸出援手!我非常高兴能和这么多伟大的巨蟒剧团一起演出。

对于新的 Python 开发人员,我的信息是:走出去!有这么多伟大的项目要做,有这么多人要见!

感谢您接受采访!

本周 PyDev:尼基塔·索博列夫

原文:https://www.blog.pythonlibrary.org/2021/09/13/pydev-of-the-week-nikita-sobolev/

本周,我们欢迎尼基塔·索博列夫( @sobolevn )成为我们本周的 PyDev!尼基塔是 wemake.services 的创始人。尼基塔还写了一篇关于技术的博客,你应该看看。你也可以在 GitHub 上看到他正在做什么。

Nikita Sobolev

让我们花点时间来更好地了解尼基塔!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我的名字是尼基塔·索博列夫,我出生并成长在西伯利亚中部(俄罗斯新西伯利亚市)。西伯利亚最出名的是:

  • 伟大的技术大学
  • 美味的食物
  • 遥远的距离,恶劣的天气和令人惊叹的风景

我喜欢所有这些东西🙂

现在我生活和工作在世界上最美丽的城市之一:圣彼得堡。关于我的职业生涯,一个有趣的事实是:我总是为同一家公司工作。当我还是学生的时候,我就开始了自己的咨询业务。我仍然在那里工作!

我花很多时间阅读历史或看电影。它帮助我从技术上转移注意力,把人道主义的部分带入我的生活。我也把教书作为业余爱好,我每周花几个小时给当地大学做关于 Python、web 开发和测试的讲座。

你为什么开始使用 Python?

我在大学的时候学过 Python,这是我课程的一部分,这很棒,因为这是很久以前的事了。

然后我用了涡轮齿轮(是不是还活着!?)来收集关于客户机定制 UNIX 版本中的驱动程序和硬件的一些数据。

从第一个项目开始,我就爱上了 Python。之后我就完全从 Java 转到 Python 了。我现在用了 10 多年了,从来没有回头过!

你还知道哪些编程语言,你最喜欢哪一种?

由于我的职责,我懂很多语言。作为一家咨询公司的首席技术官,我必须使用客户拥有的不同技术,我还必须了解不同堆栈的优缺点,以便做出更好的技术决策。

我经常使用:

  • 打字稿,太牛逼了。我再也不会用普通的 JavaScript 了。它的类型系统既简单又灵活,工具也非常棒。这些天我尽可能地使用 Deno
  • 灵丹妙药。它没有广泛流行,但它是一种学习和使用起来令人惊叹的技术。它有惊人的抽象、强大的平台和漂亮的语法
  • 铁锈。我不能说“我知道”,因为还有很多东西要学,但我使用它,我完全喜欢它

我很想更多地使用 Haskell,但是在这一点上似乎不太现实。我也想花更多的时间在定理证明和 TLA+上。

你现在在做什么项目?

我未来几年的主要项目是让我的开源工作可持续发展。前面的路还很长。

目前,我主要从事几个开源项目:

哪些 Python 库是你最喜欢的(核心或第三方)?

你是如何参加 Python 会议/聚会的?

我的一个同事是莫斯科 Python meetups 的联合组织者。在某些时候申请是很自然的事情。然后,我在俄罗斯 Python 社区交了很多朋友,人们有点喜欢我的演讲。所以,我开始更频繁地这样做。

这对我的咨询业务也有积极的影响:新客户、新合同等等。

你对有抱负的作家或演讲者有什么建议吗?

  1. 创建自己感兴趣的内容
  2. 关注想法和表达想法的方式
  3. 保持一致
  4. 小心你创造的“易于推广”的内容的数量。有时候人们会对此过度兴奋

本周 PyDev:尼娜·扎哈伦科

原文:https://www.blog.pythonlibrary.org/2019/01/21/pydev-of-the-week-nina-zakharenko/

本周,我们欢迎妮娜·扎哈伦科( @nnja )成为我们本周的 PyDev!Nina 已经活跃在 Python 社区好几年了,并且在几十个会议上发表过演讲或做了主题发言。她还为 Python 核心语言做出了贡献!如果你想知道她在做什么,可以看看她的博客。让我们花点时间来了解一下 Nina!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

承认这一点我很尴尬,但 90 年代中期的赛博朋克电影黑客 -关于一群黑客被诬陷部署了一种威胁世界的计算机病毒-激励我在很小的时候成为一名程序员。更尴尬的是,我在成长过程中拥有一双直排轮。当我 12 岁的时候,我通过阅读和解构我访问的网站的源代码来学习 HTML 制作网站,我慢慢地对技术越来越着迷。成年后,我在大学里学习了计算机科学,从那时起,我在 HBO 等公司担任过各种令人兴奋的工作,为卫星控制计算机编写软件,为 Meetup 和 Reddit 等公司工作。今年春天,我加入了微软的难以置信的云开发者倡导团队,成为第一个完全致力于 Python 的倡导者。我喜欢教学和公众演讲。在我的业余时间,我喜欢滑雪、远足、旅行,摆弄微控制器和可穿戴电子产品,比如这些 Python 驱动的耳环。我在 @nnja 上发推特,偶尔在 nnja.io 上写博客并发布我的演讲。

你为什么开始使用 Python?

我在 2012 年开始使用 Python 编写小脚本和内部工具,最终开始使用 Python 开发 meetup.com API。2013 年,我在圣克拉拉参加了第一次 PyCon。那时候,我全职写 Java。我担心我会因为不熟悉 Python 而在会议上被取笑,但事实正好相反。那么多社区成员张开双臂欢迎我。我完全被震撼了。我还意识到 Python 不仅仅是脚本语言——它是世界上一些顶级公司使用的强大的一流语言。最终,我辞去了 Java 开发人员的工作,在 Recurse 中心度过了一个夏天。我专注于学习新的工具和语言,涉猎机器学习,自学 Python。在 Recurse 中心,我能够重新爱上编程。目前,我已经为多家公司专业编写 Python 五年了。这项工作要有趣得多,在冗长的 Java 语言之后,空白、命名约定和简单性的简洁给人一种清新的感觉。

你还知道哪些编程语言,你最喜欢哪一种?

从专业角度来说,我很幸运能够使用各种各样的语言、框架和技术。在我职业生涯的各个阶段,我都是靠写 C++、Javascript、Java、Python 和 Clojure 赚钱的。为了好玩,我曾短暂涉猎过 Go、Lisp、Haskell 和 Octave。尽管我有很多经验,Python 仍然是我的最爱。它写起来很有趣,学起来也很有趣,是一个非常强大的教学工具。不管我在 it 行业工作多久,我觉得总有更多的东西要学。

你现在在做什么项目?

自从开始作为一名开发者倡导者,我不再是一个在几个大代码库上工作的人。相反,我正在从事大量不同的项目。我在 PyCon 与ukasz Langa一起冲刺时,我的第一个(微小的)补丁被 CPython 接受,并计划在未来与导师合作,继续为 CPython 做出贡献。我一直在扩展并参与一个名为 loco 的项目,通过显示团队中的某个人在任何给定时间在世界上的什么地方,来帮助将我们大多数远程团队聚集在一起。我也一直在开发利用 Azure 及其 Python 友好产品的软件和工具,如 Python 无服务器功能,或在 Linux 上部署 web 应用到 App Service,这是一个高度可扩展、自我修补的 web 托管服务。

哪些 Python 库是你最喜欢的(核心或第三方)?

排名不分先后:

  • ipdb-pdb 调试器的所有有用功能,但还有附加功能,如制表符补全和语法突出显示!
  • ipython-ipython 是一个功能强大的交互式 shell,具有默认 python 交互式解释器所没有的漂亮特性,如出色的制表符补全、通过向上箭头编辑时轻松编辑类和函数的能力,以及允许您粘贴代码块、打开成熟的编辑器或导出历史记录等神奇功能。
  • black - black 是不折不扣的 Python 代码格式化程序。这是一个几乎没有配置选项的工具,因此它消除了任何模糊性。我喜欢在 VS 代码的 Python 扩展旁边使用黑色格式化程序。
  • micropython 是 Python 3 的一个高效实现,包括标准库的一小部分。代码库足够小,可以在微控制器上运行,可以用于难以置信的和教育电子项目。
  • azure cli 是一套用于 azure 的命令行工具,用 Python 编写。了解更多,或者反馈给开源项目
  • agithub——在使用 RESTful API 时,构建原型变得非常容易。该项目正在寻求帮助和捐助。如果您对开始使用开源软件感兴趣,这是一个很好的机会。

你是如何开始成为 Python /技术主题的会议发言人的

在我如何开始的背后有一个有趣的故事,涉及一些恶作剧的朋友。我的第二次 Python 大会是 2013 年的加拿大 PyCon。我和朋友聊天时谈到演讲者给我留下了多么深刻的印象,我多么希望有一天我能有勇气在舞台上演讲。我曾在一些地方集会上展示过我的项目,但从未面对如此多的观众。在那次会议上,我的朋友们发现有人退出了接下来一个小时内即将进行的闪电谈话。他们在空白处写下了我的名字,并告诉我,我有一个小时的时间把一些幻灯片放在一起,准备好一个 5 分钟的演讲。我太紧张了!整个过程中我都害怕得发抖,几乎无法呼吸。当它结束时,我意识到它并没有那么糟糕。我熬过来了。第二年,我在 DjangoCon 2014 上发表了演讲,随后在 PyCon 2015 上发表了关于技术债务的演讲。演讲进行得非常顺利,非常受欢迎。从那以后,我在世界各地的几十个会议上做了演讲和主题发言。我脑海中的那个小小的声音阻止了我,告诉我我不是一个优秀的公众演说家,我没有什么可说的,房间里的每个人都比我知道得多。这完全是个谬论,是我自己创造的神话。公众演讲,就像生活中的其他事情一样,是一件你可以通过练习变得更好的事情。

对于想在会议或用户群上发言的人,你有什么建议?

我的建议是——不要害怕参加竞选。“我没有什么新的要说的,都已经被报道过了”是一个神话,我听到初学者把它作为说服自己不要说的一种方式。这不是真的。仅仅因为一个话题已经在之前的演讲中涉及过,并不意味着它是禁区。观众真正感兴趣的是你独特的视角,你的故事,以及你讲述故事的方式。讲故事和技术知识一样都是伟大演讲的一部分。Brandon Rhodes 是我们社区中最好的故事讲述者之一,他的演讲是熟悉这项技术的重要资源。一些最有趣的谈话集中在你如何遇到一个问题,步骤(尤其是不正确的!)并尝试修复它,以及您最终如何得出正确的解决方案。就像一个普通的故事一样,它有开头、中间和结尾。如果你觉得大舞台令人生畏,在当地的聚会或活动中,甚至在一两个朋友面前,从小事做起。最后,不要害怕被拒绝。尽可能多地提交 CFP。对于被拒绝的谈话,总是要寻求反馈,利用这些建议来改进你的提议,并在其他活动中再次尝试。被拒绝会让你很痛苦,但不要太在意。掸掉身上的灰尘,再试一次。

第二,许多会议为在技术领域代表性不足的人提供奖学金,包括与会者和演讲者。如果你需要经济援助,不要害怕要求并利用这个机会。如果你是在硬币的反面,并且你或你的公司有能力,一些会议允许你支付额外的费用来赞助一张多元化的门票,或者赞助会议本身。接受和欢迎年龄、性别、种族、能力、经验、种族和许多其他因素的多样性是我们行业的未来,也是新思想的来源。当我们接受和欢迎他人时,我们的社区会变得更加强大。

你还有什么想说的吗?

我很幸运有机会在我的职业生涯中得到一群充满爱心的人的指导。我现在也可以做同样的事情。如果你是一个在技术领域代表性不足的人,你需要建议、帮助或指导,我的 twitter DMs 是开放的。我很乐意谈论各种各样的话题——冒名顶替综合症、职业建议、技术帮助、帮助准备 CFP 奖或准备一场演讲,或者遍历代码。如果我不能帮你,我会尽我所能帮你联系一个能帮你的人。如果你想听更多关于我对导师的想法,你可以在测试和代码播客的第 44 集邀请我。

尼娜,谢谢你接受采访!

本周 PyDev:诺亚礼物

原文:https://www.blog.pythonlibrary.org/2015/04/20/pydev-of-the-week-noah-gift/

本周,我们欢迎诺亚·吉夫(@诺亚吉夫)成为我们本周的 PyDev。让我们花些时间去了解他吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

目前的爱好是 MMA 训练,这是我目前工作的副作用。我一周训练 6 天,做大量的体重训练和类似爬山的重复动作,然后我训练跆拳道和 BJJ(巴西柔术)。考虑将来参加 BJJ 锦标赛,但主要是喜欢纪律和改变写代码的节奏。MMA 训练的另一件很酷的事情,特别是 BJJ,是你真的在和某人战斗到死,然后停止练习。有点吓人,但也有点酷。

我走了一条漫长曲折的教育道路。从 AA 学位开始,然后在加州大学获得营养学学士学位。当我在那里的时候,我试图参加 D1 田径队的十项全能比赛。我没能成功,但这是一次很棒的经历。在那之后,我做了一点工作,然后在 CSULA 获得了计算机信息系统的硕士学位,同时我有一份全职工作。就在最近,我在加州大学戴维斯分校全职工作,完成了工商管理硕士学位。

你为什么开始使用 Python?

这完全是一场意外。2000 年,我在加州理工学院做系统管理员,午餐时我会玩极限飞盘。在同龄人的压力下,我“被迫”学习 Python,因为这是加州理工学院一小群研究生在做的事情。意外地,它变成了让我在电影界找到工作的东西。

你还知道哪些编程语言,你最喜欢哪一种?

在我目前的工作中,我在 C#、Erlang、Python、Bash、Chef/Ruby、Javascript 和 R 之间徘徊。我目前最喜欢的语言是 Erlang 和 R,这是一个平局。我喜欢学习新的东西,并且真的看到了我使用的所有语言的优点。

你现在在做什么项目?

本周:

  • R 项目里的一堆机器学习。
  • 使用 Erlang 和 Cowboy 进行 Web 开发
  • Chef/Opsworks 的自动化

哪些 Python 库是你最喜欢的(核心或第三方)?

我会说 Python 2.x 的核心库,比如 subprocess、logging、optparse 和 JSON。我几乎没有关注过 Python 3,而且我可能永远也不会关注其他语言。我最喜欢的第三方库是那些能提高我工作效率的库,比如 IPython,我几乎在所有的 Python 开发中都使用它,或者只是工作,比如请求。我不太喜欢 Python 中的任何框架。光是安装就让我倾向于选择另一种语言来完成这个任务。一个例外可能是烧瓶。每次我用它做什么的时候它都会工作。

当我安装一个调用 github 上的 20 个其他包的东西时,我仍然感到很烦恼,当然,其中有一个包丢失或损坏了(这很像循环 DNS 本质上是保证恒定的、不确定的故障状态)。对于 DevOps 来说,这是一个糟糕的设计模式,不幸的是,其他语言也使用这种模式,特别是 Ruby/Gems 和 Javascript/NPM。我试图从我的生态系统中删除任何这些类型的工具,因为当你试图自动化你的部署过程时,它们总是失败。

你还有什么想说的吗?

如果你在路上遇到佛陀,杀了他。对于编程语言或框架等等,没有正确的答案。你很容易被你的同事、你的城市、你的朋友的炒作所吸引。走自己的路,学习一门异国语言,质疑任何自称拥有头衔、声称或似乎声称拥有所有答案的人的智慧。例如,学习 Erlang,并使用它制作产品是非常非常困难的,我有很多老板为此向我抱怨。现在,这对我的创业公司来说是一个巨大的优势。

谢谢!

一周的最后 10 个 PyDevs

本周 PyDev:奥列格·布罗伊特曼

原文:https://www.blog.pythonlibrary.org/2017/01/09/pydev-of-the-week-oleg-broytman/

本周,我们欢迎 Oleg Broytman ( @phd_ru )成为我们本周的 PyDev。Oleg 是 SQLObject 项目的维护者。根据他们的网站"" SQL Object 是一个流行的对象关系管理器,为你的数据库提供一个对象接口,以表为类,以行为实例,以列为属性。”。你还可以看到 Oleg 是 via Github 和他的网站的一部分。让我们花点时间来更好地了解 Oleg!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我出生在苏联的中亚地区。我搬到了俄罗斯的莫斯科,在莫斯科国立大学计算机科学系学习计算机科学。我在 IBM PC 时代之前开始编程,我的第一台计算机是苏联的 PDP-11IBM/360 的克隆体。

在我的专业工作之外,我花了很多时间和计算机在一起,参与自由软件项目。

除此之外,我过着平常的生活,和家人在一起,看书,听音乐,看视频。

你为什么开始使用 Python?

在 DOS 时代结束的时候,我已经习惯了写很多巨大的 bat 文件来自动化我用电脑做的每一件日常事务。我使用了许多助手程序和许多不同的命令行解释器(command.com 显然不能满足我的需求)。有一次,我的一个朋友和同事越过我的肩膀看到了那些剧本。他建议我应该尝试 Unix 中的 shell 脚本。

大约在 1995/96 年,当所有人都从 DOS 转到 Windows 95 时,我开始转到 Unix(最初是 BSD/OS 和 SunOS,后来是 Linux 和 FreeBSD)。我学习了 shell 脚本和所有那些小的子语言(awk、grep、sed 等等)。这真的很好,但我需要更多的东西,所以我尝试了一些更大更复杂的语言。大多数我都不喜欢。Perl 4.036 特别难;当然不是我喜欢的语言。

96 年 9 月另一个朋友建议我试试 Python。我开始观察它,发现它比我以前尝试的任何东西都更适合我的大脑。10 月,吉多·范·罗苏姆发布了 1.4 版本,我被说服了。我订阅了邮件列表@cwi.nl,剩下的就是历史了。20 年后我还活着。

你还知道哪些编程语言,你最喜欢哪一种?

帕斯卡,尤指宾语帕斯卡。在切换到 Python 之前,我使用了许多不同的编译器(记住,我使用的是不同的 IBM 之前的 PC 架构和操作系统)。在 DOS 时代,主要是 Borland/Turbo Pascal。如果我现在放弃 Python,除了 web,我会使用 FreePascal。

作为一名 web 开发人员,我编写了很多客户端 JavaScript。如果没有 Python,我会使用全栈 JS (NodeJS +客户端 JavaScript)进行 web 开发。

我依然热爱 shell 脚本,每天写大大小小的脚本。

你现在在做什么项目?

在职业上,我是一名从事医疗保健的程序员。最初这是偶然的,但现在我很高兴事情变成了那样。自 1990 年以来,我一直在国家研究外科中心的远程医疗实验室工作(抱歉,我们的网站大部分在俄罗斯)。

在 20 世纪 90 年代,我使用 Turbo Pascal 开发计算机监控程序,该程序在心脏直视手术期间监控患者的状态,收集信息,将其呈现给麻醉师并保存到数据库中。大约在 1996/97 年,我开始使用 Python 来实现数据库的 web 接口。我仍在研究它——包括 Pascal 程序和 Python web 界面。

不幸的是,工资很低,所以我经常不得不找兼职来为我的家人赚钱。目前我正参与开发另一个认证机构。它不是自由软件,但我们发布了许多自由软件库:

在自由软件的前沿,我是 SQLObject 的维护者。我在 2004 年开始使用它,大约在 2006 年加入开发团队,现在我仍然支持它。

哪些 Python 库是你最喜欢的(核心或第三方)?

不完全是库,而是开发工具。

虚拟环境。virtualenv 和 virtualenvwrapper。最近我在 virtualenvwrapper 中修复了 bash 完成的一个小问题,现在我推荐每个人都来试试。结合 setuptools 的强大功能和 pip 的便利性。

派斯特。我对它的技巧(重写断言)、详细的回溯和错误消息感到惊讶。

毒性测试。我使用它已经有一段时间了,但是直到最近我才开始理解它的声明式编程的强大之处。

斯芬克斯。flake8 我通过 vim-flake8 插件使用它。lxml(终于有库了!)

作为一门编程语言,你认为 Python 将何去何从?

向所有可能的方向。Python 用于科学和工业、医疗保健和 web 开发、密码学和数据库编程、大数据和深度学习神经网络、桌面、服务器、移动平台、GUI、命令行、守护程序、w32 服务、数百万个第三方库,可用于任何任务。Python 在很少领域是不合适的语言。

你对当前的 Python 程序员市场有什么看法?

糟糕,这次我必须承认我不知道。我很少换工作。自从 1990 年以来,我一直在 NRSC 工作。当我做承包商的时候,我通常工作很长时间——10-12 年。

但是当我寻找一份新合同时,我找到了,而且通常很快。

感谢您接受采访!

本周 PyDev:奥利弗·贝斯沃特

原文:https://www.blog.pythonlibrary.org/2018/09/10/pydev-of-the-week-oliver-bestwalter/

本周,我们欢迎奥利弗·贝斯沃特( @obestwalter )成为我们本周的 PyDev!他是 tox 自动化项目pytest 包的核心开发者之一。他也是几个 Python 相关会议的发言人。你可以在他的网站Github 上了解更多关于奥利弗的信息。让我们花一点时间来了解更多关于奥利弗!

你能告诉我们一些关于你自己的情况吗?

我在星球大战日出生在西德,那一年,最后一个人踏上了月球。

39 岁时,我获得了计算机工程学士学位(德语:Technische Informatik ),然后开始了第一份软件开发工作。

虽然我在十几岁的时候就爱上了计算机,在我二十出头的时候就爱上了自由软件,但那时我更喜欢音乐、文学和体育。在学校里,我被误导,认为自己“不擅长数学”,所以学习计算机科学或任何技术都不是我的选择。作曲和演奏音乐占据了我十几岁和二十几岁的时间。我独自在不同的乐队演奏过几种乐器(贝斯、吉他和键盘乐器——主要是自学的)。那段时间的一些录音在 Soundcloud 上在线。

当我 28 岁时,我经历了一次严重的滑板事故,摔断了手和肘。这使我一年多不能演奏任何乐器。我没有很好地应对,陷入了深深的危机,导致我放弃了音乐和围绕音乐的整个社会生活。那时,我相当孤立,没有受过任何形式的正规教育,老实说,我不知道该如何生活。我在一家半导体制造厂的后台(也就是嘈杂和肮脏的部分)接受了一份极其无聊的工作。生活并没有那么美好,但在业余时间,我再次拾起了我的另一个爱好(计算机),并用它来共同创建和培育一个基于网络的非营利性支持委员会。我的联合创始人碰巧是一个很棒的女人,后来成了我的妻子。所以你永远不知道什么东西是好的,我猜。

我倾向于把我的爱好转化为我的工作,就像我当年对音乐和现在对计算机所做的那样。好的食物和饮料偶尔会从我的嘴里冒出来,这可能被称为一种爱好,当它不纯粹是为了维持生计而喝的时候。欣赏现代艺术,主要是电影、书籍和电脑游戏(现在很少了),也是我娱乐活动的一部分。我更多的是一个室内爱好者,但我也可能偶尔去散步。作为一个内向的人,我需要很多独处的时间来充电,但我也喜欢和我的家人和我的猫在一起(可能更合适的说法是,猫有时喜欢和我们在一起,因为她收养了我们,而且绝对是发号施令的人)。

你为什么开始使用 Python?

TL;大卫:我真的不知道,但我肯定不后悔。

2006 年的一个晴朗的日子,当我在互联网上旅行时,我偶然发现了一个以我最喜欢的喜剧组合命名的编程语言网站。我差不多一口气就把伟大的 Python 教程吸入了进去。我仍然清楚地记得那件事——那是一见钟情。那些内置的数据结构!简单!语法的清晰!没有花括号汤!接下来,我读了马克·皮尔格林的《深入 Python 的 Python 2 版本的硬拷贝,我完全被这种美丽的语言及其可能性迷住了。谢谢贵都和马克!

当我还在工厂里做着没有任何前景的粗活时,学好这门语言并弄清楚如何使用它成了我的目标。我开始梦想成为一名使用 Python 开发软件的专业开发人员。问题是 Python 当时还远未成为主流,Python 的工作也并不常见。我也已经三十多岁了,仍然坚信不擅长数学会让这成为一个不可能的梦想。不知何故,我已经接受了这样的想法:我的余生将在一份又一份的工作中辛苦地度过。我的妻子不同意这种无稽之谈,她说如果我不试就不知道。她准备在我学习期间资助我们,我再也没有任何借口了(我告诉过你她很棒)。我决定接受正规的教育,我们搬到了北方,那里的生活很便宜,我进入了一所小型应用科学大学。我参加的第一次考试是数学。那一年我取得了第二好的成绩...“不擅长数学”...哈!离开学校 15 年了,我不得不努力学习,但是我努力学习,获得了我那一年最好的学位之一。直到今天,我在 Avira 的第一份技术工作主要是用 Python 编写软件,并花费越来越多的时间进行指导和教学(尤其是围绕测试和构建自动化)。所以不要听那些反对者或你头脑中悲观的声音!追寻你的梦想,孩子们🙂

你还知道哪些编程语言,你最喜欢哪一种?

15 岁时,我得到了一台 Commodore 64 作为圣诞礼物(因为在朋友家看到一台 VC-20 后,我缠着妈妈好几个月)。我学了一点 BASIC 编程,但是在一个可怕的键盘上用一个古老的文本编辑器输入所有这些列表并不是那么有趣,所以我主要玩游戏(太空出租车!)。我还在学校里学过 CS(这在 80 年代中期还是很新奇的),并在一个 EUMEL 系统上学习了ELAN。那很有趣。当我 17 岁的时候,我继承了一小笔遗产,我投资了一辆雅达利 1040 ST。那辆车配有 Omikron Basic 和一本德国手册。我从头到尾阅读了那本手册,并开始编写带有图形用户界面的鼠标驱动程序,以此作为乐趣。我还用雅达利作为我在学校的乐队的鼓手电脑(我们找不到真正的鼓手)。事实证明,在 20 世纪 80 年代末,由无菌电子鼓点驱动的水面上覆盖烟雾并不流行,但我们很开心🙂

我的第一个乐队-我是左前方。不在图中:我们的“鼓手”——一台雅达利 1040 ST。

我之前提到的那个支持板让我回到了 15 年前的计算机时代,它运行在 phpBB 板上,我今天还在运行它。phpBB 是一个很棒的板软件,PHP 7 和它的现代工具在今天的开发中是非常令人愉快的。

在大学里,几乎没有人听说过 Python。关于 C,Java,汇编和 VHDL 的课程。那时,Python 是我编写脚本来帮助我完成作业的首选语言。

我还自学了自动热键,以克服我妻子在技术翻译工作中使用的工具的弱点。对于不想被自动化的 GUI 驱动的程序中的任务的快速和肮脏的自动化来说,这是非常有用的。

如果我不得不挑选一个最喜欢的,那将是 VHDL。不是因为我现在对它有任何用处(我没有),而是因为接触到这种语言和学习经验。首先:用一种受 ADA 启发的内置并行语言描述硬件(因为“编译”会在 FPGA 上产生实际的逻辑电路)是一种令人愉快的不同体验,它拓宽了我对编程的总体看法。但更重要的是:这门课程非常注重实践,而且是唯一一门课程,学习编写自动化测试是这门课程不可或缺的一部分。在 VHDL 中,这是通过测试平台完成的。它们提供了一个模拟环境,用于编写黑盒测试、提供激励以及断言电路的输出和行为。这给了我第一次切实的体验,自动化测试在探索你的设计和获得对它的正确性的信心方面是多么有价值。我要感谢 Ing 教授。Dirk Rabe 将许多真实世界的经验和对他的主题的热情带到了课程中,这使一切都变得不同。

尽管如此,Python 是我最喜欢的。不仅仅是因为语言本身,还因为它包含的电池,它周围的生态系统,尤其是因为它非常友好和包容的社区。另外:Python 是第二好的语言🙂

你现在在做什么项目?

自 2017 年初以来,我主要从事 tox 自动化项目中的开源园艺。对我来说,这意味着发布、问题分类、自动化、协调和指导。它占用了令人惊讶的大量时间和精力,但有时也是有益的,让我接触到许多聪明善良的人类,他们可以教这只老狗一些新技巧:)。我还通过在 tox 和相关或上游项目的问题跟踪器中闲逛,从总体上了解了许多关于生态系统和良好实践的信息。不过,我确实经常休息,让 Github 通知堆积如山,而不会感到内疚(至少不是很内疚)。在 tox 项目中,现在有一个不断增长的第二代社区,我相信它会将该项目带入未来。我要感谢 Holger Krekel 创造了这些伟大的工具,并在他们周围培育了一个由聪明善良的人组成的伟大社区。

pytest 冲刺 2016

我通常还会努力成为一名好公民,并在我认为有必要并且能够提供帮助的时候,为各种项目做出贡献。这可能以(希望是好的)错误报告、错误修复、(文档)增强或参与设计讨论的形式出现。

我也喜欢帮助新手开始学习 Python,并帮助他们走上自我指导、探索驱动的学习之路。我提供项目驱动的实践课程,向他们展示探索语言的工具,并向他们介绍数据和执行模型。除了通常的怀疑之外,还有一个很棒的工具值得更多的关注:Philip Guo 的 Python Tutor 非常适合可视化语言基础并检查您自己的假设。这种学习的另一个很好的工具是 PyCharm 。基于 pydev 的可视化调试器、优秀的静态代码分析、意图动作和快速修复等东西可以教会你很多。还有 PyCharm Edu ,它使用 PyCharm 作为工具在 ide 本身中提供交互式课程,我觉得这是一个有趣的概念。

我知道,我在这里离题了,但是我认为重要的是要提到学习编程并不容易,而且需要时间。就像学习适当地演奏一种乐器一样(而不是仅仅制造一些噪音:)。这也不仅仅是学习语言(如语法、语义、数据和执行模型等)。)-还涉及到工具、库、习惯用法和文化,对于你可能遇到的每一种语言来说,这些都是非常不同的。当我听到有人说你可以在几周甚至几天内学会一门新语言时,我总是畏缩不前。如果你从零开始,在你成为一名程序员之前,已经花了相当多的时间来积累一些基本的计算机知识。关于这一点的进一步阐述,我想指出彼得·诺威格的十年自学编程。

哪些 Python 库是你最喜欢的(核心或第三方)?

  • 内德·巴切尔德的《Cog》将永远在我心中占据一个特殊的位置。在我的学士论文中,我给RTS 实时管理程序添加了一个事件系统,使得在该管理程序上运行的不同操作系统之间能够进行通信。测试起来非常慢,因为它的一部分需要在启动时初始化,而且代码分散在不同操作系统的不同模块上。为了创建更快的反馈循环,我在受 VHDL 测试平台启发而开发的(基于 Python 的)测试工具中编写了沙盒代码。这使我能够在本地隔离测试代码。我还使用 Cog 来生成参数化的测试,类似于我后来发现的 pytest 可以做的事情(我希望我早一点了解到这一点——这会节省我很多工作:)。为了在上下文中测试代码,我使用 Cog 将它注入到不同的模块中,在真正的虚拟机管理程序上编译和运行。Cog 是那些“简单”的想法中的一个,它被证明是一个非常强大和通用的工具。
  • Antoine Pitrou 的 pathlib 最后把 path 对象带到了 stdlib 中。我在一个会议上的第一个演讲是关于我多么想念一个我们都同意的被广泛采用的路径库,所以我对它和它的发展非常高兴。从 Python 3.6 开始,整个 stdlib 都努力支持文件系统路径协议( PEP 519 )。
  • pytest/tox/devpi是我最喜欢的测试和发布工具链。虽然它们本身都是很好的工具。他们都来自同一个社区,这意味着他们在一起玩得很好。
  • pluggy 是一个库,它使 pytest/tox/devpi 能够支持任意数量的独立开发的插件,这些插件可以与那些自动注册的工具一起安装,增强/改变那些工具的行为。
  • 我最喜欢的 web 框架——快速组装动态网站和基于 HTTP 的 API 的理想工具。与基于 gevent 的嵌入式服务器结合,你可以构建在 Windows 上运行的令人惊讶的高性能和稳定的后端——如果我需要一些真正快速的东西,但不必为 Windows 构建,我会使用 Falcon
  • 铅壳组合子 -有点像隐藏的宝石。“该库的座右铭是‘永远不要再编写 shell 脚本’,因此它试图在有意义的地方模仿 shell 语法(shell 组合子),同时保持它的 pythonic 化和跨平台性。”
  • 最后但同样重要的是:整个 stdlib as 是整洁的工具和概念的一个很好的来源,我强烈推荐 Doug Hellman 的本周 Python 模块(PyMOTW 3) 作为对文档的一个很好的补充。

你从 tox 这样的开源项目中学到了什么?

  • Pythonistas 有一个非常友好的全球社区,围绕核心语言创建和维护各种各样的优秀库和工具。如果这个生态系统不存在,Python 就不会是这个星球上最受欢迎的语言之一。遗憾的是,许多关键项目缺乏资源,“维护者倦怠”是一个严重的问题,需要更加认真地对待,并且应该在社会层面上解决。参见道路和桥梁:我们数字基础设施背后看不见的劳动力——Nadia Eghbal
  • 对于任何花费在给定项目中的“业务逻辑”编程上的“n”个单位的时间,有“n * x”个单位的时间花费在通信、组织和过程协商/自动化上。在宠物项目中,“x”非常接近 1,但当它们变得流行时,它会增长,如果它们成为语言生态系统的一个组成部分,它会增长得更大。
  • 大多数在我参与的项目中报告问题的人都很友好,有耐心,并且理解维护者和贡献者不欠他们任何东西。如果他们在最初的报告中没有提供非常有用的信息,并且沟通不够理想,这通常不是因为恶意。这要么是因为缺乏解决问题的知识和经验,要么是因为参与项目时不得不处理项目尚未解决的非常具体的问题。以 tox 为例:它抽象出了许多关于打包和测试自动化的痛苦,但是当抽象分解时,许多用户甚至不知道如何分析问题,因为他们只关心他们的代码,而不关心打包或 tox 测试运行的复杂性。我比普通用户更了解这些事情,我需要不断提醒自己,在交流时,要确保我是有帮助的,而不只是对他们缺乏分析问题的技能或耐心感到恼火。对他们来说,毒理通常只是起作用,帮助他们不必处理所有这些。还有另一个极端:用户对主题非常深入,并且比我有更多的经验。来自那里的要求、批评和想法有时让我困惑,有时我不得不投入大量的时间去理解他们在谈论什么。我不得不认识到,有时候后退一步,让其他人(或者根本没有人)来处理某些问题会更好。我怀疑是否有一个人能够知道并理解 tox 所面临的问题空间的一切,因为它实际上是惊人的庞大——跨越许多使用场景、平台、Python 实现、棘手的上游错误和非常有创意的配置。

在 Python 中进行测试时,有什么新奇的东西吗?

不仅仅是 Python,我总体上欣赏拆除开发、测试和操作之间的墙的趋势。专业化总是存在的,但我认为这些专家团队合作得越紧密,最终的体验就越好——我指的是对用户以及创作者/经营者而言。我相信,如果您将相同的原则和质量标准应用到测试和操作中,就像应用到生产代码中一样,那么对于每个相关人员来说,生活都会变得更加愉快。结果是更好、更稳定、更容易维护的软件(也是:更快乐的开发人员/测试人员/操作人员:)。

也不是特定于 Python 的,但是测试的一个非常重要的方面是它们需要被运行。理想的情况是每次更换后。似乎是显而易见的,但仍然经常不是这样,或者至少不够经常。糟糕的维护,缓慢和脆弱的测试套件,它们只在即将到来的发布之前运行,造成了大量的摩擦和痛苦。当两次测试运行之间进行了太多更改时,新失败的原因可能很难确定。如果我在这样的项目中被咨询,我的主要建议是首先改善这种情况,努力使软件更好地测试和更稳定。其他一切都应该在后面。自由/开源软件中的持续集成/交付/部署现在已经过时了——许多公司防火墙背后的情况仍然大不相同。想要了解这如何为他们的公司工作的人可以查看包含这些原则的已建立的开源项目,并从那里开始。tox 项目有助于使其成为 Python 世界的主流,并且作为一个项目,它开始接受这种非常接近完全自动化的发布过程的理念。在 tox 项目中,bernt g bor 和 T2 最近在这方面非常忙。到目前为止,我们的测试和发布过程几乎已经完全自动化了。发布是通过将版本标签推送到 master 来完成的,剩下的事情会自动发生。

现在是 Python 特有的一些东西。我自己在测试和代码质量领域使用的或者认为有趣的几个项目:

  • 假设是一个用于创建基于属性的测试的库,可以很好地与 pytest 一起工作。
  • black 是一个相对较新的自动格式化程序,它帮助我不再担心如何格式化我的代码,并防止团队中的开发人员之间出现许多风格上的分歧。你所要做的就是放弃控制权。
  • mypy 是用于检查 PEP 484 conform 类型提示的参考实现,支持渐进类型,结合了动态和静态类型的优点。
  • pre-commit 是一款工具,可将您所有的林挺、检查和格式化工具整合在一起,并将它们集成到您的开发和 CI 工作流程中。
  • coverage . py——为您遇到的几乎所有 Python 代码的覆盖率报告提供支持。我甚至不知道任何替代方案...
  • 提到来自新兴数据科学的两个有趣的项目: pytest-casesdata test——我自己还没有使用过它们,但是我认为它们值得一试。

你从事开源工作的动机是什么?

我喜欢这个问题,但觉得有点难回答。它触及了我的个人价值观,也触及了我看待社会的方式和它的发展轨迹。但让我试一试:一方面,我看到惊人的科学和技术进步可以在未来几十年内将所有人类从为生存而斗争的负担中解放出来,另一方面,我们在以可持续的方式管理地球的有限资源方面悲惨地失败了,实际上破坏了我们生存的基础。自工业时代开始以来,我们的生产力一直在不断增长,由于计算机化和由此而来的自动化,其速度正在急剧增加。尽管如此,几十年来,大多数社会的社会分层都在恶化,财富集中在越来越少的人手里。

当我看到这一切时,我常常感到完全无助,但我试图在改变它的轨迹方面发挥我的作用。我认为,在我目前的情况下,以我目前的技能,我能做到的最好的方法是成为全球开源社区的好公民,帮助提高软件的整体质量和过程自动化的全球能力,希望这将用于整个社会的进步,而不是装进少数特权人士的口袋。我越来越意识到的一个方面是同情和包容的需要。技术是涉及社会和技术可行性的复杂反馈回路的一部分。技术不是非政治性的,并且参与了它的创造,我试图意识到这一点。

我也相信信息和知识应该是免费的,我想成为这一创造的一部分,而不是主要考虑我能从中获得什么物质利益。我们都站在巨人的肩膀上,一个人独自做出任何重大发明或发现的想法对我来说简直是荒谬的。知识和权力(有时是等同的)应该尽可能平均地分配,以确保少数坏演员不能破坏我们其余的人。民主进程可能缓慢而乏味,但在社会层面上,它仍优于我们尝试过的所有其他政府模式。但是我们必须确保这些过程不会轻易被破坏。我对“防腐败”社会的一个期望是,引入全民基本收入,让我们所有人都处于更加平等的基础上。Scott Santens 是了解这个话题的最佳人选。

奥利弗,谢谢你接受采访!

本周 PyDev:奥利弗·舍恩博恩

原文:https://www.blog.pythonlibrary.org/2016/02/01/pydev-of-the-week-oliver-schoenborn/

本周,我们欢迎奥利弗·舍恩博恩成为本周的 PyDev。他是 PyPubSub 项目的作者,该项目的一个版本包含在 wxPython 中。他一直是 wxPython 邮件列表的积极贡献者,我一直很欣赏他的见解。你可能会发现他的多布斯博士的文章也很有趣,尽管它有点旧了。让我们花一点时间来更好地了解他!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是渥太华 CAE 公司的高级顾问,在那里我设计各种应用的模拟系统。

1982 年,当我 13 岁的时候,我开始在 Apple IIe 上编程。我用自己攒了几年的钱买了辆二手的,以备“有一天我会想要一件真正大的东西”。我在那台机器上发现了汇编编程,有窥视、戳、中断和寄存器,并被吸引住了。我继续学习 Basic、Pascal 和 Prolog。我在高中最后一年为一个编程课程项目创建了我的第一个模拟。在 90 年代中期发现 C++是一个启示,我发现面向对象的方法如此直观,我仍然坚持干净的接口和重构。在我的高中时代,我认为物理学是我的激情所在,我于 1998 年获得了多伦多大学的物理学博士学位,但我逐渐意识到编程是我真正的激情所在,并将其作为我职业生涯的重点。

自从我获得学位后,我就没有从事过物理方面的工作,但是在我的博士学位期间,我发展了许多有价值的技能,例如解决问题、发现错误、测试、近似、过程建模和 Unix 开发。因此,我有幸参与了一些非常有趣和具有挑战性的工业项目,包括:完全沉浸式虚拟环境中的起重机操作训练器(具有真实的起重机驾驶室和控制装置,以及环绕显示器等);一种搜索和救援训练器,允许教员要求学生发现军用飞机上的威胁并发出警报;一个航空电子维护训练器,允许一个教室的学生使用虚拟工具和虚拟驾驶舱和工作区对现代飞机上的缺陷进行故障排除;一个人力资源规划器,允许运营研究部门对未来 20-30 年内发展的 100,000 名员工进行“假设”分析。

除了对编程的痴迷,我还喜欢滑雪和吹口琴(布鲁斯和民谣,尽管我没有太多时间去学习新东西)。如果你是中年人,想学习如何在不摔坏屁股的情况下滑雪,请告诉我,我会分享让我享受这项美妙运动的技巧。

你为什么开始使用 Python?

奇怪的是,我开始使用 Python 是因为在 2001 年,我被分配的一个项目需要 Windows GUI 编程,而我从未做过。由于我对学习 MFC 不感兴趣,所以我查看了 C++中的一些选项,并发现了 wxPython 库,这是 C++ wxWidgets 库的 Python API。我立刻爱上了 Python,并发现我可以使用 SWIG 将 Fortran 和 C++后端集成到一个 Python + wxPython 应用程序中,这样我就可以鱼和熊掌兼得了。

你还知道哪些编程语言,你最喜欢哪一种?

我做过 Basic,Prolog,Fortran 77,Pascal,Delphi,C,C++,Lua,Java,C#,Javascript。我看过 Scala、Haskell、Go、Closure、Ruby,但是一旦我了解了 Python 和 C++,它们都没有吸引力。

我最喜欢的通用语言是 Python:它的语法非常直观和简洁,我发现我只需要做很少的翻译就可以把我头脑中的设计和算法转换成屏幕上的代码。对于速度不是主要因素的任务,它是完美的语言。

当速度至关重要时,我最喜欢的语言是 C++。尽管如此,我还是希望找到一种语言,它像 Python 一样具有简单明了的语法,但又像金属一样支持面向对象和泛型,比如 C++。理想情况下,该语言还将支持类型推断和函数注释,并生成同样快速的代码。

当需要应用程序脚本时,我最喜欢的是 Lua:从 A 到 Z 设计为通过 C/C++嵌入到主机应用程序中,它简单却又如此通用(但请不要试图用它来编写整个应用程序)。

我最喜欢的集成所有这些语言的工具是 SWIG:它负责生成集成不同编程语言所需的所有模板代码。

你现在在做什么项目?

作为两个活跃的孩子的父亲,在我仅有的一点空闲时间里,我努力跟上技术的发展,同时更新 PyPubSub。我喜欢参与基于云的项目,可能是教育游戏或移动应用程序,也可能是基于硬件的应用程序,如安全系统。但由于时间限制,这几乎肯定要通过我的工作。

在工作中,我目前负责开发 PyQt 5.3 和 Python 3.4 版的人力资源模拟 GUI 工具。该工具支持用户编写的 Python 脚本,集成了 Python 调试器,使用户能够在 GUI 中运行脚本时对其进行调试,并支持在 24 个核心计算机上对用户的 HR 模型进行基于多处理器的模拟。将来,它还将支持 HPC 机器集群。

你最喜欢哪些 Python 库(核心或第三方)?

对于桌面 GUI,我喜欢 PyQt。对于 web 应用,我非常喜欢 Flask 和 AngularJS 和 emberjs。我已经有一段时间没有使用 rpyc 了,它是一个强大的远程 python 调用库,可以用于分布式 Python 计算。我在 2007-2009 年使用它作为我为客户开发的分布式模拟管理工具。

我发现一些真正提高生产力的核心模块是 subprocess、re、urllib2、timing、datetime、threading、functools 和 textwrap,尽管我总是首先查看核心库。bdb 是一个非常强大但遗憾的是没有很好文档记录的模块,它允许最终用户遍历 Python 脚本、管理断点、自省局部变量等。对于支持脚本的应用程序来说,这是惊人的。

作为一门编程语言,你认为 Python 将何去何从?

虽然我不会花太多时间去思考这个问题,但深思片刻还是很有趣的。我猜想,除了更快的硬件所提供的加速之外,对速度的需求将迫使语言设计者寻找更快的方法,尽管这几乎肯定会以降低动态性和清晰度为代价。多线程将继续受到 GIL 的限制,因此真正的并行执行将通过多处理包和第三方集群/云抽象包继续发展。随着构建大型 Python 应用程序越来越受欢迎,可维护性和健壮性将继续变得重要,因此基于“意图”的编程(可能基于代码注释)将继续发展。向后兼容性将使这种扩展变得多余冗长,因此在不到 10 年的时间里,可能需要另一次 Python 3k 过渡(这次是到 Python 4k)。

你对当前的 Python 程序员市场有什么看法?

软件工程招聘广告中经常提到 Python,但我的印象是它通常仅仅被用作脚本语言。语言本身、它可用的库集、它可用的库管理、文档和测试工具,以及它与 C++集成的能力,使它成为成熟应用程序的有力竞争者。但至少在加拿大,找 Python 应用程序员可能是个挑战。或者也许他们都很忙工作!!!

你还有什么想说的吗?

StackOverflow,谷歌搜索,开源,都是天赐之物。Python 注释很棒,尤其是它们变成可选的方式。PyCharm 是我用过的最牛逼的 Python IDE(我也用过很多)。

感谢您接受采访!

PyDev 在休假的一周

原文:https://www.blog.pythonlibrary.org/2017/07/05/pydev-of-the-week-on-hiatus/

我不知道这周是否有人注意到了一些不对劲的地方,但是本周系列的 PyDev 目前暂停了。上个月左右,我在让被采访者及时完成采访方面遇到了麻烦,实际上已经用完了。

虽然我有一堆新的面试者,但他们中没有一个人真正完成了面试。所以我决定暂停 2017 年 7 月的剧集。希望我能在八月份排好几个,让这个系列重回正轨。如果没有,那么它将被暂停,直到我有一个体面的采访数量完成。

如果你碰巧对 Pythonistas 有什么建议,你想在本周系列的 PyDev 中看到,请随时留下评论或联系我。

本周的 PyDev:或者 Carmi

原文:https://www.blog.pythonlibrary.org/2020/08/03/pydev-of-the-week-or-carmi/

本周我们欢迎 Carmi(@ lilight)成为我们的本周 PyDev!或者是通知者的创造者和维护者。通过查看他的 Github 简介,你可以知道他还在做什么。

让我们花些时间去了解或者更好!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我叫卡尔米。我 38 岁,住在以色列,已婚,有 4 个男孩。我有 2 只狗,4 只猫,一只非洲灰鹦鹉,一只兔子和一只白头翁(查一下????).我目前在 Proofpoint 担任高级 QA 自动化工程师。

当我还是个孩子的时候,我开始学习编程,当时我的父亲是一名为银行工作的程序员,他教我 GW basic。2 年级的时候学了 Logo,这是 python 的乌龟库所基于的。我在高中也继续学习计算机。我试图获得一个工程学位,但我无法在学术界赢得与多动症的斗争。

你为什么开始使用 Python?

在了解到一个叫作 Flexget 的神奇工具之后,我对 python 产生了兴趣。我想调整它以符合我的需要,并进入它的代码。它的维护人员非常友好和专业,帮助我解决我的任何问题,无论是 python 还是代码库。在为它做了几年贡献之后,我成为了它团队的一员,并且一直为它工作到今天

你还知道哪些编程语言,你最喜欢哪一种?

以前,我对 C#和 Ruby 略有涉猎,但我职业生涯的绝大部分时间都在使用 Python,这是我最喜欢的语言。

你现在在做什么项目?

我是通知程序的创建者和维护者,也是 Flexget 的维护者,尽管这些天我很少有时间从事 OSS 方面的工作,这让我非常沮丧。

哪些 Python 库是你最喜欢的(核心或第三方)?

对于核心库,我是 pathlib、functools 和 itertools 的忠实粉丝。#第三方的有 pytest,glom,uplink,httpx,pendulum 和 pydantic。

Python 通告包是怎么来的?

当我在开发 Flexget 的时候,我想添加一些通知插件。我很快就明白了,所有这些都遵循一种非常特定的模式,即使用特定的模式发送有效载荷并获得响应。然而,每个通知程序的 API 在命名、用法、标题、响应等方面都有很大的不同。他们中的一些人添加了他们自己的 SDK,但那只是添加了 dep,并没有真正提供一个公共接口。我构建了通告程序来解决这个问题,在许多通告程序的抽象之上有一个超级友好的界面。我写了一篇关于这件事的博文这里

最难包装的供应商是哪家?

我认为直到今天,mailgun 有最多的选择,但是 statuspage V1 API 有一些最奇怪的方法来命名和使用它的有效载荷属性。它需要很多自己的定制代码(尽管他们在最新的 API 版本中修复了很多这种东西)。

你还有什么想说的吗?

通过使用 OSS 和为 OSS 做贡献,我基本上学会了成为一名开发人员,特别是 python 开发人员。由于我的多动症,我无法强迫自己忍受学术界的严格结构,但当我通过为 OSS 做贡献来学习时,我有很高的动力和成功,这给了我成功的职业生涯。我不能低估自学和大量数据的力量。对于那些可能正在阅读这篇文章并觉得他们需要遵循一条非常具体的成功之路的人来说,那不一定是真的。OSS 让你创造自己的道路,里面有很多优秀的、聪明的、知识渊博的人。只要你努力工作并渴望学习,任何有互联网接入的人都可以获得成功所需的所有工具!

感谢您接受采访,否则!

本周 PyDev:Pablo ga lindo Salgado

原文:https://www.blog.pythonlibrary.org/2020/04/06/pydev-of-the-week-pablo-galindo-salgado/

本周我们欢迎 Pablo ga lindo Salgado(@ pyblogsal)成为我们本周的 PyDev!Pablo 是 Python 编程语言的核心开发人员。他也是几个 Python 相关会议的发言人。如果你想知道他参与了哪些项目,你可以看看他的 Github 简介

让我们花些时间更好地了解 Pablo!

能否简单介绍一下自己(爱好、学历等): 我目前在 Bloomberg L.P .的 Python 基础架构团队工作,支持我们所有的 Python 开发者,提供关键的基础架构和库,确保每个人都有更好的 Python 编程体验。但是在从事软件行业之前,我曾经是学术界的一名理论物理学家,研究广义相对论,特别是黑洞物理学。这是我仍然作为爱好做的事情(尽管没有出版和资金的压力),因为我仍然热爱它!例如,我在一些 Python 会议上发表过与这款
(https://www.youtube.com/手表相关的演讲?v=p0Fc2jWVbrk )和我继续开发和研究改进的算法来模拟和可视化不同的时空。例如,这里有一些模拟的克尔纽曼黑洞,它们周围有我最近研究过的吸积盘:

Accretion Disks
这里用一些纹理映射到天空球体和吸积盘:
Texture mapped accretion disks

当我不在 CPython 中燃烧 CPU 内核进行内核开发工作时,我会燃烧它们进行越来越多的模拟。我喜欢继续从事这项工作,因为它结合了我的两个爱好:理论物理和编码!有时候,为了优化你的代码,你需要一个更好的等式,而不是一个更好的算法!

你为什么开始使用 Python? 当我开始攻读博士学位时,我开始使用 Python 来编排和粘贴一些 C 语言的模拟代码(有时是 FORTRAN 77!) )并做数据处理和分析。我立刻爱上了这门语言,后来又爱上了这个社区和这个生态系统(正如一句名言“为语言而来,为社区而留”)。我以前接触过许多其他语言,但我开始越来越多地使用 Python,因为它有一些迷人的东西,使编程变得非常非常有趣。此外,在科学界(不包括数据科学和机器学习的庞大世界),它允许快速建立想法原型,并以其他人可以轻松直观地使用和扩展的方式集成现有系统
。此外,与许多其他科学工具和套件相反:是免费和开源的,我认为这是使科学更加透明、可用和可复制的基础!

你还知道哪些编程语言,哪种是你最喜欢的?

除了 Python,我精通 C 和 Fortran(真的!)而且我有信心用 Rust 和 C++编码。除此之外,我可以自豪地说,我以某种形式的 Javascript 编写了几次代码,而没有让事情爆炸,我可以复制一些预先存在的 HTML 和 CSS,并修改它以制作一些很酷的前端。我用 Wolfram 语言(Mathematica)写了很多年的代码,但这是我不再做的事情,尽管有时我会想念它的一些功能模式。

即使现在不是很常用,并且有相当数量的逻辑批评,我仍然喜欢 c。这可能是斯德哥尔摩综合症,但我发现它非常简单而且(通常不是)优雅。我还发现,当我需要推理一些低级效果或者我需要“更接近金属”时,我有很好的抽象水平。同样,当我开始用 C 语言编码时,我有相当多的 FORTRAN(也叫 FORTRAN77)经验,让我告诉你一些事情:第一次发现你可以不用每行的前五列为空来编码,这是一次改变一生的经历。另一个改变人生的经历是,当你在很久以后才发现,这种胡说八道是为了与打孔卡兼容。
你现在在做什么项目? 我所有的开源工作主要是在 CPython 上,但是除了我作为核心开发人员的一般工作之外,从去年开始,我还与吉多·范·罗苏姆、莱桑德罗斯·尼古拉、艾米丽·莫尔豪斯托和其他人一起在一个项目中做了很多工作,以替换 CPython 中当前的解析器,获得一个新的闪亮的 PEG 解析器!

我对解析器和形式语言非常感兴趣(我已经做了几次关于它们的演讲,以及 CPython 中的解析器是如何作为https://www.youtube.com/watch?v = 1 _ 23 avsiqec&t = 2018s工作的),所以这个项目非常令人兴奋,因为有了它,我们不仅能够消除当前 LL(1)语法中的几个丑陋的漏洞,而且它将允许编写一些现在不可能的结构。特别是,我一直在努力尝试在上下文管理器中允许分组括号,比如

with (
    something_very_long_here as A,
   something_else_ very_long_here as B,
   more_long_lines as C,
):
   ...

但遗憾的是,这在当前的解析机制下是不可能的。相信我:书上的每一招我都试过了。此外,我们希望有了新的解析器,现有语法的许多解析器将以更易维护和可读性更好的方式编写。敬请关注了解更多!

您还从事 Python core 的其他哪些工作?

作为 Python 核心开发人员,我主要从事 Python 运行时和 VM 方面的工作,尤其是在解析器、AST、编译器和垃圾收集器方面。但是除了这些重点领域,我还在标准库中的所有地方工作过:posix、多重处理、functools、数学、内建....我还花了大量的时间来消除错误和竞争条件,并照顾 CPython CI 和 buildbot 系统(请查看 PSF 博客中关于它的这篇博文http://py found . blogspot .com/2019/06/pablo-ga lindo-salgado-nights-watch-is.html)。

和其他一些核心开发人员交谈,最近我发现自从我被提升以来,我是 3 个“最活跃”的核心开发人员之一(https://github.com/python/cpython/graphs/contributors?from = 2018-05-07&to = 2020-03-25&type = c)!

我还致力于让贡献者和未来的核心开发人员更容易接触到 CPython。例如,我最近为 CPython 最没有文档记录的领域之一(https://devguide.python.org/垃圾收集器/ )写了一份非常完整的设计文档。我也花了很多时间指导贡献者,希望他们中的一些成为未来的核心开发者!指导要求很高,但我认为这是确保 Python 保持活力和我们有一个开放和包容的社区的一个非常重要的部分。

我也非常感谢在核心开发团队中有一些最不可思议、最有才华和最坦率的人在我身边,因为他们是我每天做出贡献的主要原因之一!

哪些 Python 库是你最喜欢的(核心或第三方)?

这是个很难的问题!我将滥用这一事实,该问题并没有限制图书馆列出几个:

来自标准库:gc,ast,posix ( _(?)_/)、functools、tracemalloc 和 itertools。第三方:Cython 和 numpy。

我知道你是 PEP 570 背后团队的一员。你是怎么卷进来的?

我完成了完整的实现,主持了讨论,并用不太令人印象深刻的英语编写了 PEP 文档的大部分内容,但多亏了我的其他合作者和 Carol Willing(她是我在几件事情上的榜样,包括以简单的方式记录和解释复杂的事情),自我编写第一个版本以来,该文档有了很大的改进。

你有最喜欢的晦涩的 Python 特性或模块吗?

我喜欢连锁比较!例如,当你写下:

if a < c < d:
   ...

而不是:

if a < c and d < d:
   ...

我还喜欢你用不太直观的方式使用它们,比如:

>>> x = "'Hola'"
>>> x[-1] == x[0] in {"'", "other", "string"}
True

这个特性有一个稍微阴暗的一面,可能会让很多人感到困惑,尤其是在与其他操作符一起编写时:

>>> False == False in [False]
True

遗憾的是,使用链式比较会稍微慢一些🙁

你还有什么想说的吗?

非常感谢邀请我做这次采访,也感谢每一个坚持到采访结束的人🙂

Pablo,谢谢你接受采访!

本周 PyDev:Paolo Melchiorre

原文:https://www.blog.pythonlibrary.org/2019/02/11/pydev-of-the-week-paolo-melchiorre/

本周我们欢迎 Paolo Melchiorre(@ pauloxnet)成为我们本周的 PyDev!Paolo 是 Django web 框架的核心开发人员。他在欧洲的几个不同的 Python 相关会议上发表过演讲,也在他的博客上写过文章。让我们花几分钟时间更好地了解他!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)?

Paulo Melchiorre

我毕业于博洛尼亚大学,获得了计算机科学学位。我的论文是关于自由软件的,从那以后,我一直是自由软件的倡导者。

我使用 GNU/Linux 已经 20 年了,现在我是 Ubuntu 的快乐用户。

2007 年,我参加了我的第一个会议,Plone 会议,从那以后,我参加了欧洲的许多其他 pythonic 会议。

2017 年,我在意大利 PyCon 和欧洲 Python 大会上发表了演讲,从那以后,我一直是当地和国际活动的会议演讲者,用意大利语和英语。

Giving a talk at EuroPython 2017

在 2017 年欧洲 Python 大会上发表演讲

我在罗马和伦敦生活和工作,自 2015 年以来,我一直是一名远程工作者,住在我的家乡意大利佩斯卡拉,那里靠近海滩和山脉。

我热爱大自然,喜欢游泳、滑雪或徒步旅行,也喜欢和妻子环游世界。

我喜欢通过阅读小说或听有声读物、看电视剧和电影、听播客和参加当地的英语演讲聚会来提高我的英语技能。

我在栈溢出回答问题,在 @pauloxnet 发微博,偶尔在【pauloxnet】的发帖

你为什么开始使用 Python?

我在第一份工作中开始使用 Python,是因为我们用 Plone 和 Zope 开发网站。

我意识到 Python 比我以前学习和使用的其他语言好得多,因为它更容易学习,它专注于代码的简单性和可读性,它可扩展,编写速度快,并且有一个很棒的社区。

当我停止使用 Plone 时,我继续使用 Python 作为主要编程语言。

你还知道哪些编程语言,你最喜欢哪一种?

我在高中期间开始用 Pascal 编程,然后我自学了 HTML 和 CSS,以高中期末论文的形式开发了我的第一个网站。

在大学里,我学习了一些不同的语言,如 C、C++、C#、Java、SQL 和 Javascript,过去我在工作中使用过其中一些语言。

在过去的 10 年里,我主要使用 Python,毫无疑问,这是我更喜欢的语言,尽管有时我仍然使用 SQL、Javascript,显然还有 HTML 和 CSS。

哪些 Python 库是你最喜欢的(核心或第三方)?

我每天都要使用 Django 和 PostgreSQL,所以除了 Django 框架本身之外,我认为我最喜欢的 python 库是 Python-PostgreSQL 数据库适配器 psycopg2,因为它非常可靠,当我需要进行非常低级的操作并使用 PostgreSQL 的所有强大功能时,它允许我在没有 Django ORM 的情况下使用数据库。

你是如何开始为 Django 做贡献的?

冲刺 2017 年 DjangoCon 欧洲赛

在 DjangoCon Europe 2017 的冲刺日期间,我开始为 Django 的核心做出贡献,提出了一个拉请求,将 PostgreSQL 加密扩展集成到了它的 contrib 包中,并被合并到了 Django 2.0 中。

我在 Pycon Italy 2017 大会上做了一个关于 Django 全文搜索功能的演讲,然后在此基础上写了文章“用 Django 和 PostgreSQL 进行全文搜索”,但我意识到在 djangoproject.com 的网站上没有使用 Django 全文搜索功能。

冲刺 2017 欧洲 Python 大会

europpython 2017上,我组织了一次关于 djangoproject.com 的搜索模块的冲刺。

我在 Django 官方网站上完成了一个 pull 请求,用 PostgreSQL 全文搜索功能替换了 Elasticsearch ,并且我继续更新这个功能,提高了速度和多语言支持。

我做了一个关于这次经历的演讲,作为对 Django 项目贡献的一个例子。

你为什么选择 Django 而不是 Python web 框架?

我开始使用 Plone 和 Zope 应用程序框架,该框架将所有信息存储在 Zope 的内置事务对象数据库(ZODB)中。

当我需要在 PostgreSQL 这样的关系数据库中存储数据时,我开始使用 Django ,经过一些研究,我意识到这是最佳选择。

我很欣赏它的架构,ORM,管理模块,PostgreSQL 支持,所有现成的模块,如geo jango,所有第三方包,尤其是它背后的社区。

你现在在做什么项目?

Django Girls EuroPython 2017 教练

向 Django 项目、其网站和一些相关的包贡献

我以教练的身份参加了一些 Django 女孩研讨会,并为其教程做出了贡献。

此外,我正在更新一个 django 查询项目,使用我在演讲中使用的代码,让人们自己尝试。

我正在开发一个 Django 项目模板,我们在工作中使用它来加速部署在 uWSGI 上的项目的引导。

我正在更新我在鹈鹕的技术博客,在那里我会发布一些文章、关于我的信息、我的项目和我的演讲。

我正在用我所有的录制的演讲更新我的 YouTube 频道,用我所有的演讲幻灯片更新我的演讲台账户。

我还尽可能多地回答了关于堆栈溢出的 python 相关问题,特别是与 Django、全文搜索和 PostgreSQL 相关的问题,并且我基于其中一个问题写了一篇文章。

作为一名开源开发者,你学到的前三件事是什么?

我认为自由软件是上个世纪最好的发明之一,成为其中的一部分是非常有益的。

尤其是作为一名自由软件开发者,我学到了:

  1. 分享知识(以想法、代码、文档、技能的形式)是提升自己作为一个人和开发人员的最好方式
  2. 自由软件最好的部分是它的人类社区
  3. 一些与代码无关的事情对于改进自由软件及其社区是非常重要的,比如选择一个好的许可证,添加有贡献的指南以及不要忘记文档

你还有什么想说的吗?

在 2018 年意大利皮肯节期间,在皮佛罗伦蒂诺尽情玩乐

作为自由软件相关会议的发言人,我有机会认识很多人,成为一个更好的人。

我鼓励每个人加入聚会,走出社区,参加会议,当然,如果我们在某个会议上相遇,请打招呼。

我还想对所有以英语为母语的开发者说,有很多优秀的开发者因为缺乏英语知识而对自由软件犹豫不决。

就我个人而言,在为项目做贡献和积极参与社区之前,我等了很长时间,然后我强迫自己用大量的时间、精力和金钱来提高我的英语技能。

因此,我想提醒人们,当谈到非英语母语者时,要有耐心和包容性,因为我们需要更多的时间和努力来打开一个问题,发送一个拉式请求,在网上和会议上提问,或者在这样的采访中简单地谈论和写下我们自己和我们的想法。

保罗,谢谢你接受采访!

本周 PyDev:帕克·艾伦

原文:https://www.blog.pythonlibrary.org/2021/05/10/pydev-of-the-week-parker-allen/

本周我们欢迎帕克·艾伦成为本周的 PyDev!帕克在一家餐馆软件公司 BentoBox 工作,该公司在后端使用 Python。

Parker Allen

让我们花些时间去了解帕克吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我有一条非传统的途径成为一名软件工程师。我在 Loyola Marymount 大学学习商业,重点是创业,并在 2017 年对加密货币产生了兴趣。我开始构建带有 6 个显卡的采矿计算机,并且只能通过 Linux 命令行中的 bash 脚本访问。这是我第一次真正接触编程。硬件和自由开源软件的结合让我惊叹不已。从那一刻起,我知道我必须学会如何编码,于是我开始每天下班后自学一年多。

它最终完全耗尽了我的兴趣,我辞去了在葡萄园的工作,开始全职从事编程。我去了洛杉矶的一所编码学校(Codesmith)磨练自己的技能,一直没有回头。接近商业决策和产品开发是我喜欢在初创公司工作的原因之一。

当我不在万维网上工作的时候,我喜欢用我的空闲时间打高尔夫球、骑自行车,并想办法离开屏幕休息一下。

你为什么开始使用 Python?

我工作的第一家公司有一个 Django 后端,我承认当时我是一个 JavaScript 纯粹主义者(这是我所知道的全部)。Django 允许我们将复杂的 SQL 聚合用于客户仪表板,并构建 React 前端使用的 restful APIs。没过多久,Python 简单、直接的语法方法就成了一种乐趣。此外,Python 看起来不错,有助于提高可读性。写代码总是比读代码容易。有一些业务需求没有完全自动化,Python 是处理大型 CSV 数据文件的一个很好的工具。我构建了一个很酷的脚本,它从 AWS bucket 中提取 CSV 文件,并可以运行带有不同参数的管理命令。这允许我们避免将 CSV 文件提交到存储库中,并在完成后删除它。

你还知道哪些编程语言,你最喜欢哪一种?

雄辩的 JavaScript 是我读的第一本编程书,也绝对是我的初恋。我刚刚开始学习稳健,这是一个有趣的挑战。我希望在将来的某个时候学习围棋。

你现在在做什么项目?

现在,我的团队正在构建一个集成框架,以支持许多第三方销售点系统与我们的应用程序的核心功能一起工作。这个项目围绕数据完整性提出了许多有趣的挑战。例如,第三方模型可以用多对多关系来表示,而我们的模型对于类似的数据具有一对多关系。在对象的更新、删除和创建期间映射和维护这些关系不是一项简单的任务。除此之外,还需要快速获得数据,但至关重要的是,数据不会过时,这需要一种智能缓存失效方法。想象一下,点了一个餐盘,结账通过了,但餐厅实际上已经卖完了。在这种情况下,陈旧数据风险很高。使用 Python 的 Redis 客户端来管理解决方案非常棒。

哪些 Python 库是你最喜欢的(核心或第三方)?

我不得不说,毫无疑问,请求库对于 API 开发是必不可少的。它使得处理请求对象变得非常简单,并允许我们非常快速地构建健壮的 API 客户端。

Django 和 Django Rest Framework 是我最喜欢的两个。Django 与数据库交互的简单性令人愉快,但是如果管理不当,会导致效率下降,所以不要忘记预取!

如何在 BentoBox 使用 Python?

在 BentoBox,我们有一个 Django 后端,所以 Python 是一个给定的东西,但更具体地说,我们在大多数业务逻辑中大量利用 Python 的面向对象编程。此外,自从升级到 Python 3.6 以来,我们已经开始使用 Python 的类型提示,这对于我们的团队来说是一个巨大的优势,可以作为一种自我记录不断增长的代码库的方式。

你还有什么想说的吗?

感谢 Python 开发者的关注,感谢采访我!

Parker,感谢你成为这个系列的一部分!

本周 PyDev:帕特里克·阿米尼奥

原文:https://www.blog.pythonlibrary.org/2021/08/09/pydev-of-the-week-patrick-arminio/

本周,我们欢迎帕特里克·阿米尼奥( @patrick91 )成为我们本周的 PyDev!Patrick 从事于 Strawberry GraphQL ,这是一个基于数据类的 Python GraphQL 库。你可以在帕特里克的网站上找到他。

Patrick Arminio

让我们花一些时间来更好地了解 Patrick!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

嗨,我的名字是帕特里克·阿米尼奥,我是住在英国的瑞士/意大利 Python 开发者。我目前在花粉公司工作,这是一个体验市场。我在平台团队工作,主要关注 GraphQL 基础设施和开发人员体验。

我开始上大学的时候还在一家网络代理公司兼职,我决定把精力放在工作上,因为比起大学,我更喜欢工作。

我喜欢旅行,参加会议和组织会议,我目前是 Python Italia 的主席,我们在那里组织 PyCon Italy,我希望一些读者熟悉它(如果不是,请确保在下一期加入我们!希望很快)。

我也是一名跑步者,我正在尝试今年十月的马拉松比赛!

你为什么开始使用 Python?

嗯,那是很久以前的事了,当时我还在上高中,我在为我父母做一个网站,我决定加入一个意大利 IRC 服务器上的 HTML 频道。在这里,我遇到了我的朋友热尔曼诺,他建议我尝试 Python。我最初使用它只是为了好玩,并试图用它来构建一些图形用户界面。我很快转向使用 Django,因为我真的对制作网站感兴趣,从那以后,我从未真正停止使用 Django 和 Python。热尔曼诺也是在 2007 年建议我参加 PyCon 的人(如果我没记错的话),这个小小的建议(以及令人敬畏的组织者和工作人员)改变了我的生活,我融入了这个社区,并结交了许多了不起的朋友。

你还知道哪些编程语言,你最喜欢哪一种?

我非常了解 TypeScript(和 JavaScript ),因为我仍然不时地做前端工作,我非常喜欢它,尤其是因为总是有新的东西要学习和尝试。我知道这是一把双刃剑,但是即使这种框架和工具的不断波动会带来疲劳;我觉得这很鼓舞人心🙂

我也在慢慢地学习 Rust,因为我需要编写一个快速的 CLI 工具。到目前为止,我很喜欢它,我觉得它可能是我的工具集的一个很好的补充,特别是对于构建工具和 CLI。大部分工作我还是会用 Python,尤其是 web。

你现在在做什么项目?

我主要致力于 Strawberry,这是一个使用现代 Python 构建 GraphQL APIs 的库。我有几个目标:

1.我想围绕它建立一个社区。我想为 GraphQL
3 改进 Python 生态系统。我想做一个真正用户友好的库,并且有真正有用的特性

我认为我们达到了前两点,我们现在有一个围绕草莓的很好的社区,有很棒的人在我们的 discord 服务器上贡献了很多有用的讨论。此外,该库正在被一些公司用于生产,因此我们肯定在那里提供了一些价值。我非常高兴不是唯一的核心开发者,因为我希望这个库成为一个社区项目,而不是我的项目。

最后一点,还有工作要做,但我们正在努力。我打算不久在图书馆花更多的时间。

哪些 Python 库是你最喜欢的(核心或第三方)?

我真的很喜欢 dataclasses(通过扩展 attrs),它的语法非常好,而且不用写很多代码就能提供很多有用的特性。我们从数据类中复制了草莓的语法🙂

我也很喜欢 rich,它是一个非常好的图书馆,可以用来建立很好的 CLI。我认为 CLI(以及一般的 ui)应该尽可能的好看。里奇在这方面有所帮助。

我喜欢类型,所以另一个最喜欢的库是 typings 模块,即使 Python 正在发展,通过在主语法中引入一些功能(例如 unions 的管道操作符),使这个模块变得越来越没用。

当然,还有 django,但是 django 不仅仅是一个图书馆,它是一个拥有强大价值观的令人敬畏的社区,我希望有更多这样的社区。

您能解释一下 GraphQL 相对于 REST 的优势吗?

这个问题很有意思!对我来说,好处主要是在开发体验方面,尤其是在前端使用 GraphQL 时,因为有许多库使体验变得更加容易。对于 Python,我们正试图用 Strawberry 改进开发体验🙂

除了拥有漂亮的库之外,体验更好,因为 GraphQL 在默认情况下内置了打字和文档功能(所以它并不是真正的 after though)。这使得 API 易于使用和发现,同时也为返回的数据提供了保证。

采用 GraphQL 的一个强有力的原因是它解决了过量和不足提取,这是事实,但它也是一把双刃剑,因为您可能会不加思索地开始请求大量数据。

在使用 GraphQL 的过程中,你学到了什么?

我想作为库作者在 GraphQL 上工作让我学到了很多关于同情其他开发人员的知识。我们的目标是创建一个功能丰富且用户友好的库,所以我们试图接近不熟悉 GraphQL 的人和有丰富 GraphQL 经验的人。

我要说的是,有时候取得平衡是很棘手的,尤其是当你戴着专家的帽子时,因为很容易假设每个人都熟悉 GraphQL 的所有概念。

我还了解到,让其他开发人员开心也会让我开心。构建工具和库来节省其他开发人员的时间是很好的!

你还有什么想说的吗?

感谢您阅读这篇采访!如果你对 GraphQL 感兴趣,请随时加入草莓 discord 服务器或直接联系我🙂

帕特里克,谢谢你接受采访!

本周 PyDev:Patrick Loeber

原文:https://www.blog.pythonlibrary.org/2021/08/02/pydev-of-the-week-patrick-loeber/

本周,我们欢迎 Patrick Loeber(@ python _ engineer)成为我们本周的 PyDev!Paticks 经营着一个受欢迎的 Python YouTube 频道,该频道涵盖 Python 基础知识、机器学习等等!你可以在他的网站上了解更多关于 Patrick 的信息,或者在 Patreon 上支持他的工作。

Patrick Loeber

让我们花些时间更好地了解帕特里克!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名来自德国的软件工程师,对计算机视觉和机器学习应用有着浓厚的兴趣。

我有医学工程硕士学位,是机械工程、电气工程、计算机科学和一点点医学的混合体。实际上,我在攻读学位的后期才开始写第一行代码,但我非常喜欢它,于是我专注于编程,然后专攻医学图像处理和机器学习。现在我在一家医疗保健行业的公司做全职软件工程师。

两年前,我开设了我的 YouTube 频道( Python 工程师)和相应的网站【python-engineer.com ,在那里我创作关于 Python 和机器学习的教程。

在我的空闲时间,我喜欢做各种运动,尤其是跑步、减肥和足球。当然,我绝不会拒绝去喝一杯我们著名的德国啤酒的邀请;).

你为什么开始使用 Python?

我在大学没有学过 Python,但这段时间我兼职做勤工俭学。该公司使用 Python 开发图形用户界面和原型应用程序,其中 Python 作为用 C++编写的图像处理算法的包装器。因此,我利用免费的在线资源自学了 Python,并立即爱上了它🙂

你还知道哪些编程语言,你最喜欢哪一种?

我对 Python 和 C++最有经验,因为我每天在工作中都会用到它们。我也(不得不)时不时地使用 C#和 Javascript 进行网络开发。

我还通过在线课程自学了 Swift,甚至在 Appstore 上发布了一个简单的 TODO 应用程序。

我在大学学的第一批语言是 Matlab(如果这能算编程语言的话)和 Java。但是我不再使用它们了。

从所有的当中,Python 还是我的最爱。但是我也对学习 Julia,Go,或者 Rust next 有着浓厚的兴趣。

你现在在做什么项目?

我目前正在努力学习更多关于音频数据的知识。我在处理图像数据方面更有经验,但音频处理,例如语音识别和语音到文本的转换,也非常有趣。作为开始,我选择了一个有趣的项目,我试图构建一个可以用语音命令控制的小游戏。

我还在为我的 YouTube 频道制作一个新系列,在那里我教如何用 FastAPI 构建一个成熟的 web 应用程序。自从我尝试过之后,我就成了这个 web 框架的忠实粉丝。它仍然很新,但已经非常受欢迎,我认为它的受欢迎程度在不久的将来会增加更多。

哪些 Python 库是你最喜欢的(核心或第三方)?

我喜欢机器学习和数据科学所需的所有基础库:numpy、pandas、scikit-learn、PyTorch 和 TensorFlow。它们都很神奇,在我看来,这也是 Python 在机器学习领域如此受欢迎的主要原因。我无法想象没有他们我们如何完成这项工作。

我最喜欢的核心模块可能是收藏模块。它实现了许多有用的容器数据类型,如 deque、namedtuple、defaultdict 和 Counter。我发现自己经常使用它们。

是什么让你决定在 YouTube 上教 Python 和机器学习?

一个重要的原因是自学新东西。我多次听说教学是最好的学习方式,所以我想尝试一下。现在我可以说这是真的了!比如我之前没有和 PyTorch 合作过,想学习一下,所以我为它制作了一个完整的视频系列。这是我频道上最受欢迎的视频课程,我可以自信地说,我是一个经验丰富的 PyTorch 用户。

另一个原因是帮助其他人进入机器学习领域。我对此充满热情,我知道不是所有人都有能力接受我所接受的教育。所以我想分享我的知识并传授我所知道的。

在 YouTube 上创作内容,你学到的前三件事是什么?

1.如何编辑视频?信不信由你,我用 Python 脚本编辑了我的前 40 个左右的视频。我甚至在我的频道上制作了一个视频来解释我的过程。它可以加快某些工作流程,但也有点无聊,你可以使用的功能有限。所以在某个时候,我学会了如何正确使用视频编辑软件。

2.如何应对批评(我收到的 99%的评论都是正面的,但你知道互联网是怎样的😉)

3.如何对着摄像机说话?我的第一个视频只是截屏,但一年后,我也开始使用相机。回顾老视频,我觉得我在呈现内容方面进步了很多。

你还有什么想说的吗?

谢谢你让我上你的博客!Python 社区很棒,我总是很高兴认识新朋友!如果你想联系,你可以在 Twitter 上找到我,当然我也很高兴你能查看我的 T2 频道!

帕特里克,谢谢你接受采访!

本周 PyDev:帕特里克·莫平

原文:https://www.blog.pythonlibrary.org/2015/08/03/pydev-of-the-week-patrick-maupin/

本周,我们欢迎帕特里克·莫平成为本周的 PyDev。让我们花些时间来更好地了解帕特里克。

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我出生在德克萨斯州的圣安东尼奥,在奥斯汀长大。我在英国工作了几个月,遇到并娶了一位很棒的英国女士,并把她带回了家。除了在多伦多度过的一年,我们已经在奥斯汀住了 30 年。我们有两个很棒的女孩——一个在医学院,另一个是崭露头角的作曲家/作家。

我有几个爱好——骑自行车、航海、在社区乐队演奏大号。大号实际上是我几年前重新开始的。当我在 UT Longhorn 乐队演奏大号的时候,我的肺衰竭了,结果我辍学了。幸运的是,后来我的肺被修复了...

我一直在攻读电子工程学位,因为从我记事起,玩电子就是我的激情所在。当我辍学的时候,我找不到一份做电气方面的工作,但是我找到了一份编程的工作,然后我找到了既做硬件又做软件的工作。我主要从事硬件驱动、嵌入式产品、调制解调器固件,或者硬件板设计、芯片的 Verilog 块等。、或帮助使用和测试硬件的工具——原理图检查器、JTAG 编程器等。

在过去的 20 年里,我只为芯片公司工作,帮助设计芯片很适合我,因为成功的芯片公司致力于生产工作产品的实践——一次失败的流片可能会花费数十万甚至数百万美元,再加上等待一至三个月第一批芯片回来以便你甚至可以测试它们的机会成本。一款产品在客户主板上出现故障的成本也是难以想象的,因此芯片制造商通常不会只是口头上说说“测试”和“质量”之类的词。

我在同一个地方工作了九年,但是我们已经被收购了几次。门上的名字现在写着 Microsemi ,这是一个工作的好地方。

我已经让自己处于这样一个位置,硬件人员认为我是软件人员,而软件人员认为我是硬件人员。这可能意味着我哪一个都做得不好。

你为什么开始使用 Python?

早在 1996 年,我就试图自学一点加密和散列技术,我发现 Python 的长数字支持,加上它的自动内存管理,非常吸引人。

快速的谷歌搜索会让你看到关于计算机语言语法和核心语言特性应该是什么的观点大相径庭,但我不得不说 Python 符合我的思维方式,并且比大多数高级语言工作得好得多。我总是被其他语言爱好者关于 Python 所谓的缺点的断言逗乐和困惑——其中一些我认为是特性,一些确实是缺点,但通常还没有坏到认真考虑使用当时正在吹捧的任何一种语言。

我记得第一次在工作中使用 Python 是在 1999 年。我的老板已经在一个硬件模块上工作了 6 个星期(这是他的主要全职工作),但就是不能让它工作。他最终向我寻求帮助,我在大约五个小时内编写了一个 Python 程序,为他编写了一些完美工作的 Verilog 代码。他对此不太高兴。

使用 Python 编写代码一直是我职业生涯中反复出现的主题,总的来说,我非常喜欢这种语法,甚至有时我会编写一些简单的翻译器,这就是为什么我会参与像 astor 这样的项目。

我想用 Python 做一个硬件语言。在这个方向上有一些努力,但是我没有发现任何一个是令人信服的。人们正在制作的一些积木可能有助于解决这个问题,如 mython 似乎很有趣。

你还知道哪些编程语言,你最喜欢哪一种?

我做过 FORTRAN,Z-80 汇编,X86 汇编,68000 汇编,TI DSP 汇编,Pascal,Modula-2,C,Verilog 的赚钱编程。有趣的是,我从来没有用 Python“赚钱”编程,从某种意义上说,它从来没有像其他语言那样出现在我的工作描述中,但总的来说,当我使用它而不是一种“真正的”语言时,工作中的人不会打扰我,他们经常找我寻求他们可以调整的基本脚本。

我一直喜欢汇编语言,当时我真的很喜欢 Modula-2,但当 C 获得了所有的 ANSI 扩展,编译器变得非常善于警告你的愚蠢错误时,C 变得“足够好”,并接管了世界。

我也涉猎过其他几种语言,但是在我的工具箱中有 Python 和 C 语言(现在,如果 ctypes 不够快,Cython 在合并它们方面做得很好),我只是还没有一个项目是其他语言所不能比拟的。

事实上,我的 C 语言可能有点生疏了——计算机速度很快,我可能每隔几年才破解一次。这些天,如果我在键盘上输入东西,可能是 Python 或 Verilog,并且工作得很好——Verilog 满足了在非常低的水平上写一些小而精致的东西的欲望,Python 满足了在非常高的水平上写一些小而精致的东西的欲望(以及为某人立即需要的任务敲打出一些丑陋的扔掉的代码的必要性)。还有什么?

我不知道我第一次听到它是在哪里,但是我经常附和“C 是新的汇编语言,Python 是新的 C”的观点。但是我不确定这是否是真的——对于浏览器内的东西,javascript 似乎正在迅速成为新的汇编语言。

无论如何,对于大多数一般的计算任务,Python 肯定是我最喜欢的。

你现在在做什么项目?

在工作中,我正在为一种新的测试芯片进行仿真。我在许多测试中使用 Python,在设置中,设备由计算机上的类实例表示,当您执行类似“dut.timer1.ctl.start = True”的操作时,它实际上会通过 USB 发出,激发 dut(也称为“被测设备”),并对 timer1 的控制寄存器执行读/修改/写操作,将 start 位设置为高电平。再加上 py.test 和 jenkins,你就有了一个简单的甚至连经理都会喜欢的
报告。

“start”是“timer1”模块的“ctl”寄存器中的一个位域,该位域保存在一个文件中,该文件也由 Python 脚本解析(通过 rsonlite )以产生 Verilog、包含文件和文档(通过 rst2pdf )。

我还使用 Python 完成其他几项任务,从检查原理图网表到编写脚本来帮助 CAD 和生产测试。

在我的业余时间,我正忙于清理我的许多旧东西,并将其移植到 Python 3(如果它还不支持它),并将其从 googlecode 转移到 github。我从 pdfrw 开始,发布了支持 Python 3 和 2 的 0.2 版本,以及一些错误修复和增强。实际上,我对 github 的工作方式相当满意,并且正在做更多的改进(和文档——需要做得更好!)

可能很快就会出 0.3 了——pdfrw 其实是我最喜欢的项目。虽然不如 PyPDF2 流行或功能齐全,但它有一些不错的特色。核心最初是一些个人脚本,用于为我妻子曾经编辑的社区时事通讯进行页面拼版,然后当我开始使用并为 rst2pdf 做贡献时,我将它作为开源软件发布,并意识到没有一个可用的工具能够很好地重用该包中的矢量内容——要么它们将源代码栅格化,要么有错误,有些东西不能正确显示。原来,一个 pdf 特性——form xoobjects——允许您重用现有 PDF 的片段,就像它们是图像一样,因此您可以使用类似 inkscape 的东西将 SVG 文件转换为 PDF,然后使用 pdfrw 和 reportlab (直接或通过 rst2pdf)将任何种类的预先存在的 PDF 内容(包括那些转换的 SVG 图像)添加到新的 PDF 中。

在我对 pdfrw 满意之后,我可能会清理一下,然后把son转移到 github。rson 是另一个与 rst2pdf 一起使用的包。实际上,我也有一些其他的用例,但是它最初的用法是与 rst2pdf 样式表一起使用。这些最初是在 JSON 中,当我将它们转换成 YAML 时,rst2pdf 测试时间由于一些愚蠢的事情而增加了。我记不太清楚了,但肯定是百分之百。解析样式表。总之,我阅读了 YAML 规范,下载并测试了几种不同语言的实现,意识到没有一种实现在众多的极限情况下是一致的,这让我感到震惊,所以我写了一些比 YAML 更简单、比 JSON 更易读的东西。

显然,这个世界不适合我(或者 YAML 已经被清理干净了?)因为 YAML 最近似乎很流行。

哪些 Python 库是你最喜欢的(核心或第三方)?

说到核心,那是一个非常困难的问题。核心是如此的平衡,以至于我用了很多库——subprocess、hashlib、shutil、time、二等分、textwrap、array、glob、atexit、wave、gc、ast、element tree——不胜枚举。

我想你之前的一位受访者 Brian Curtin 说过类似“Raymond Hettinger 的任何东西”这样的话,这是一个很好的回答——就我个人而言,我经常使用 itertools,集合也将是一个很好的模块,即使其中唯一的东西是 defaultdict。

为了与世界接轨,ctypes 和 re 都是不可或缺的。最后,binascii 是一个很棒的 sleeper 模块——对于某些任务来说,它比使用 ctypes 或 struct 要快得多。

当涉及到外部模块时,很明显我喜欢我写的或工作过的东西,但是老实说,总的赢家不在这两个类别中——xlrd 是轻而易举的赢家,因为它有助于让我保持理智。我不使用 Windows,更不用说 Excel,但是我已经接受了这一点,对于许多用户来说,Excel 是一个高效的数据输入工具。xlrd 允许我接受来自这些人的数据,将其转换成可以进行版本控制的文本形式,然后按照我的方式处理它。

作为一门编程语言,你认为 Python 将何去何从?

从心理上来说,我仍在从 2 到 3 的转变中恢复,这在社区中产生了巨大的先有鸡还是先有蛋的局面。我知道,我是一个勒德分子,但在那里的几年里,我对 Python 3 并不感兴趣,也不觉得其他人会对我的 Python 2 感兴趣。

显然,核心开发人员致力于 3,随着 3 的一些更高版本和一些到 2.7 的反向移植,过渡到 2.7 并不像看起来那么痛苦。

我不知道接下来会怎样——我只是希望有一点喘息的空间,在那里我可以可靠地回到期待 Python 下一个版本的状态,并满怀期待。我开始明白了——例如,我认为 3.5 将会有一些杀手级的特性,现在我已经足够关注 Python 3 了——但很长时间以来都不是这样。

总的来说,我认为新包装等在社区中有很多积极的东西。我认为接下来的几年可能会非常激动人心。一方面,尽管有像 pyjs 和 kivy 这样的东西,Python 似乎并没有真正参与到 web/mobile 的转变中。但是另一方面,iPython/jupyter 有一些很棒的技术,如果他们继续改进他们的安全模型,谁知道这会导致什么呢?

也许我可以在我的银行有我自己的 iPython 笔记本,它知道我的所有账户,并以我想要的方式显示数据,在我的经纪公司有一个笔记本,它帮助我处理我的交易,在亚马逊有一个笔记本,它帮助我买东西。

你还有什么想说的吗?

自从几个月前我开始重新参与 Python 社区以来,我注意到的一件事是它在奥斯汀变得如此之大。奥斯汀市中心显然有数不清的公司在大量使用 Python,有时会有超过 100 人出现在每月的聚会上。

我们刚刚开始了几个“黑客之夜”,试图重温 meetup 早期的精神,即使在那里,反应也是惊人的——市中心的那个可能有 40 人参加,我在我家附近的咖啡店里设立的那个有 20 多人。能够走到拐角处并参与相关的技术讨论是令人振奋的,所以如果你的邻居中没有这样的聚会,你应该去和咖啡店老板谈谈,也许塞给他们几美元预订一个房间,然后去 meetup.com 让每个人都知道这件事。

这是我希望多年前就能明白的事情。

这一类别中的另一件事是:如果你有一个项目,它不必是完美的。在我理解这一点之前,我搁置了一些我实际上有工作代码的事情,仅仅是因为我认为它们不够好(坦率地说,其中一些是由于我钦佩的人的负面反应)。如果你有适合你的东西,即使只有一个用例,把它放在那里,如果你得到一些反馈并做一些修改,很快你可能会有一个核心用户群。

与此相关的是,如果你工作的公司永远不会让你把工作中的任何事情回馈给更广泛的社区,不管是因为他们认为他们做的每一件事都是快速的竞争优势,还是因为他们不想让任何人发现你,你可能为错误的人工作——在第一种情况下,他们完全被欺骗了,在第二种情况下,他们可能没有给你足够的报酬。

最后,我认为你的博客,尤其是这个采访系列,都很棒,我要感谢你所做的一切!

谢谢!

一周的最后 10 个 PyDevs

  • 亚伦·麦克斯韦
  • Yasoob Khalid
  • 凯文·奥利维亚
  • 亚历克斯·盖纳
  • 大卫·比兹利
  • 升降杆
  • 塔里克·齐亚德
  • 斯蒂芬·德贝尔
  • 安娜·奥索斯基
  • 加布里埃尔·佩蒂尔

本周 PyDev:保罗·甘斯勒

原文:https://www.blog.pythonlibrary.org/2019/08/19/pydev-of-the-week-paul-ganssle/

本周我们欢迎保罗·甘斯勒( @pganssle )成为我们本周的 PyDev。保罗是 dateutil 包的维护者,也是 setuptools 项目的维护者。你可以在保罗的网站上找到他,或者查看他的一些演讲。让我们花一些时间来更好地了解 Paul!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

有时让人们感到惊讶的一件事是,我的职业生涯是从化学家开始的。我拥有马萨诸塞大学阿姆赫斯特分校的化学学士学位和加州大学伯克利分校的物理化学博士学位。之后,我工作了两年,制造用于油井的核磁共振设备。2015 年,我想找一份工作地点更灵活的职业,于是我转到了软件开发行业;软件行业的一个好处是,如果技术公司知道如何编码,他们不会害怕雇佣有非传统背景的人。

Paul Ganssle

我有典型的“黑客”和“自学”爱好——学习语言、撬锁、电子项目等。我最喜欢的项目之一(不幸的是已经半途而废了)是 myHapticapMag,一个我内置在帽子里的触觉罗盘。我让它运行了两三个星期,但是一些部件坏了,我没有时间去修理它。我的初步计划是在 4-5 年内开始一些新的电子项目,那时我的儿子已经长大,可以对这类事情感兴趣了。

你为什么开始使用 Python?

实际上,我有两个故事。更无聊的是,在 2008 年左右,我的一个朋友告诉我这种很酷而且越来越受欢迎的编程语言 Python,我一定要学,我拿起它,开始用它来完成一些小的系统自动化任务。

然而,真正让我迷上 Python 的是,当我在一个论坛帖子中使用我在 Matlab 中制作的图表来说明我的观点时,有人抱怨绘图中可怕的锯齿,并建议我改用 matplotlib。我试了一下,剧情非常好,我立刻就被吸引住了。从那以后,我把所有能做的事情都从 Matlab 转移到 Python 上,再也没有回头。

你还知道哪些编程语言,你最喜欢哪一种?

很难说你什么时候“了解”一种编程语言,但我最有信心的编程语言是 C++、C 和 Rust(可能还有一些其他语言,比如 Matlab,我已经多年没用了,但曾经非常了解)。我可以写足够多的 Javascript 来应付,但要说我知道,这就有点像说我会说西班牙语,因为我可以点一杯啤酒并问洗手间在哪里。

目前,我对 Rust 感到非常兴奋,它是一种内存安全的系统编程语言,目标是 C 和 C++目前占主导地位的用例。关于 Rust 的一个非常好的事情是,有一个非常热情的社区,它已经有了一个蓬勃发展的第三方包生态系统,我认为这是 Python 社区中对 Rust 非常兴奋的一个原因。

你现在在做什么项目?

对于我维护或帮助维护的包,如 dateutil、setuptools 和 CPython,我做了许多可能不被认为是“在项目上工作”的维护任务(我试图监控—py O3—问题跟踪器,尽管我在那个项目中没有正式的地位);比如回顾公关,评论问题,参与讨论。

在功能和其他改进方面,我一直在试图为兼容 PEP 517 的可编辑安装准备一个概念证明,并且我已经开始做一些工作——为标准库添加时区。我也有几个处于不同完成状态的小项目,我偶尔会参与其中,比如我的库变体,我已经谈过几次了,或者我唯一的半完整库pyminimp 3——围绕 C minimp3 库的 Python 绑定,用于处理 mp3 文件。

哪些 Python 库是你最喜欢的(核心或第三方)?

我是基于属性的测试框架——假设——的忠实粉丝。使用 hypothesis,在给定一个输入域(整数、日期时间等)的情况下,编写关于代码具有的一个属性的断言(例如,“这个解析操作是这个格式操作的逆操作”),hypothesis 为您随机生成示例输入。我最初对你用它写的测试是不确定的这一事实感到非常不安,但是我很快克服了这一点;实际上,如果你的代码中有一个 bug,假设在第一次尝试时很少会遗漏它,特别是如果你在每个 PR 上为多个平台和多个解释器运行测试。我遇到的将假设引入代码库的更大问题是,它会发现一堆你没有处理过的模糊边缘情况,所以你需要修复一堆 bug 才能开始使用它!

你是如何成为 Python 的核心开发者的?

自从我作为 dateutil 的维护者被要求评论 PEP 495 (添加了fold属性)以来,我就一直在参与 Python 开发的外围工作。在 2017 年末,我开始更积极地贡献错误修复和功能,并监控问题跟踪器以发现与日期时间相关的问题。CPython 开发过程中最大的瓶颈之一是高质量的审查,这是我多年来维护开源包所习惯做的事情,所以我介入并开始审查 PRs。

就成为核心开发人员的实际过程而言,我走了一条越来越常见的新核心开发人员的道路,那就是 Victor Stinner 注意到我的贡献,问我是否有兴趣最终成为核心开发人员;在我同意后,他和 Pablo Galindo Salgado 同意在我成为 bug triager 并最终成为核心开发人员的过程中指导我。

你负责哪些模块,为什么?

我的主要专长是datetime和相关模块(例如time);这部分是因为我在 2015 年初偶然地维护了dateutil,部分是因为大多数其他人真的不喜欢在约会时间工作。我也参与了打包(作为setuptools的维护者),但是这些天distutils没有看到太多的改进,因为几乎总是更喜欢在setuptools中进行改进。

对于其他想为 Python core 做贡献的人,你有什么建议吗?

如果你有机会参加 sprint(作为会议的一部分或其他形式),这通常是对任何开源项目做出第一份贡献的最佳方式。如果没有,我想我能给的最好的建议和我给任何开源项目的建议是一样的:

  1. 用严格限定范围的变更制作一个小的 PR:这些变更更容易审查和合并。
  2. 最小化或消除对公共 API 的更改:对公共 API 的每一个更改都是该模块的维护者必须无限期支持的事情。幕后的改变更容易接受,因为它们更容易撤销。
  3. 添加测试!好的测试通常是 PR 中最难写的部分,所以没有它们,你的贡献不太可能被接受。它们还使得审查更加容易,因为它们确切地展示了您的代码应该做什么——它们强制执行行为!

如果你已经是一个熟练的审阅者,我也建议你在问题跟踪器中寻找未审阅的 PRs 并给出你的评论。这将真正有助于该项目,并且是建立一个可靠贡献者声誉的可靠途径。

你还有什么想说的吗?

谢谢你邀请我做这次采访,也谢谢所有一直阅读到最后,纵容我啰嗦的读者。

保罗,谢谢你接受采访!

本周 PyDev:保罗·伊万诺夫

原文:https://www.blog.pythonlibrary.org/2019/10/07/pydev-of-the-week-paul-ivanov/

本周,我们欢迎保罗·伊万诺夫(@伊万诺夫)成为我们本周的 PyDev!Paul 是 IPython 和 Jupyter 的核心开发人员。他还是软件木工的讲师。你可以在保罗的网站上了解更多关于他的信息。你也可以通过访问他的 Github 简介来了解他在开源方面都做了些什么。让我们花些时间来了解保罗!

Paul Ivanov (courtesy of Robert Sexton)

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我在莫斯科长大,10 岁时随家人移居美国。从那以后,我一直住在北加州。我在加州大学戴维斯分校获得了计算机科学学位。之后,我在加州大学伯克利分校攻读视觉科学博士学位。

我真的很喜欢计算的许多不同方面,无论是修补硬件(尤其是微控制器)还是尝试不同的操作系统和编程语言。除了键盘以外,我的主要爱好是耐力自行车。我有一辆带前车筐的旅行自行车,我骑了十几次 200 公里、两次 300 公里、两次 400 公里和一次 600 公里。我也写日记(纸笔类),有时会变成诗歌,其中一些我已经上传到我的网站上。

你为什么开始使用 Python?

在大学里,我的室友菲利普·纽斯特伦和我的兄弟迈克·伊万诺夫开始了戴维斯维基(T1),它是基于用 Python 实现的维基软件moin moin(T3)开始的..我记得自己做了一些小的修补,尽管不懂这门语言,但还是取得了一些进展。它是如此直观和不言自明。

当时,我正在学习计算机科学,所以我已经习惯了需要编译周期的“神职”语言,比如 C++、C 和 Java。我也曾通过我上的生物信息学课接触过 Perl,但其中有一大堆神秘的语法,除非有人向你解释,否则你无法理解。相比之下,Python 非常简单。

那是我第一次接触它,大约是在 2004-2005 年,但是我直到读研究生才开始经常使用它。我在学年还剩两个季度的时候提前完成了大学学业,申请了几所研究生院,几个月后我才得到回复。在此期间,作为后备计划,我在一家 Java 商店找了份工作。

在等待我正在开发的大型整体 Java2EE 项目启动或重新加载时(花了三到八分钟研磨所有这些企业 beans),我开始使用 Ruby on Rails。与编译语言相比,它的交互体验令人耳目一新。再说一次,它很容易使用,尽管它有一点太多的魔力。比如为一个“人”建立模型,创建了一个叫“人”的表?!

2006 年,我开始在加州大学伯克利分校读研究生。我在杰克·格兰特的神经科学实验室的第一次实验室轮换是我第一次真正接触 Matlab,远远超过了我在线性代数入门课上学到的反斜线求解。同样,这是一种能够快速编写代码并进行交互实验的类似感觉,尤其是对于矩阵。但是对于与文件系统交互、尝试构建 GUI 或与数据库交互之类的事情来说,这是(现在仍然是)相当大的退步。我还对意外出现的内存不足错误感到沮丧,并且它的许可要求是不可行的。

我想拥有超越学术界的技能。Matlab 许可证对学生来说很便宜。当时我可以通过校园交易得到一个,但我知道这将是一个不同的行业故事。这是第一批双核笔记本电脑开始出现的时候,我当然想利用这一点。但是对于 Matlab,我需要每个处理器一个许可证!

Gallant 实验室的某个人有 Travis Oliphant 的“NumPy 指南”的 PDF 文档,所以我在红杉理论神经科学中心的下一轮工作中开始使用 Python,最终我加入了 Bruno Olshausen 的实验室。幸运的是,在实验室和脑成像中心,有一些其他人也在使用 Python,我们和脑成像中心共用了一段时间的办公室。

你还知道哪些编程语言,你最喜欢哪一种?

我用 C、C++、Java、Go、JavaScript、TypeScript、Elm、Idris 和 Haskell 写过严肃的代码。当我为了乐趣而写代码时,让我感到特别头晕的是 Elm、Go 和 Idris。

我真的很喜欢 Elm,因为它最终提供了一条定期使用函数式语言的途径,并且简化了前端代码。Elm 架构已经通过 React with Redux 得到推广。这是我后来在 Go、Idris 和 Haskell 中开发基于个人用户界面的项目时使用的模式。它也是一种故意放慢速度的语言。我将 JavaScript 和现在的 TypeScript 视为“跑步机”语言——你必须坚持使用它们并不断向前跑,以跟上当前的实践,否则你将会落后。我很感激能够在六到八个月后回到埃尔姆,而在此期间整个世界都不在我的掌控之下。这有助于它是一个较小的社区,但我喜欢它感觉更安静。

Go 语言崇尚简单,反对聪明的解决方案。它附带的工具棒极了——从格式化到修正代码以解释 API 的变化,到能够通过改变一些环境变量来为多种架构操作系统交叉编译二进制文件。没有什么比这更好的了。喜欢 Java(或 Clojure 或 Scala)等 JVM 语言的人可能会反对,因为编译过一次的同一个可执行 JAR 通常可以使用 Java 运行时在任何地方运行。然而,普通 Python 代码也是如此——它可以在任何有 Python 解释器的地方运行。使用 Go,您运行“GOOS=openbsd GOARCH=386 go build”的结果将是您的程序的可执行文件,它将在旧的 32 位硬件上的 openbsd 上运行。句号。无论您是在 Debian、Windows 还是 macOS 上运行该命令都没有关系。不管您的底层架构是 386、AMD64、ARM 还是其他受支持的架构。这是可行的,因为二进制文件不链接任何 C 库;它只是直接对内核进行系统调用。因此,您得到的是真正的独立二进制文件!

伊德里斯是最不同的。写代码你和电脑之间有对话。你会得到有用的反馈和模板生成,这是分形的:通过写下类型签名,你可以让编译器填充一个大的图片草图,放大一个块,并要求编译器填充更多的骨架。依赖类型给了我一种思考编程的新方法。这是我希望编程的未来走向。但是,在某些方面,Idris 是我所知道的语言中最不成熟和最学术性的。编译时间可能会很慢(尽管这种情况在正在进行的 Idris 2 中有了明显的改善)。而且这个社区相当小,所以没有大量现成的接口库。

因此,对我来说,Idris 可能同时是最有趣的,但也是最低效的编码方式。但是,这和我骑自行车的癖好很相似。在 A 点和 b 点之间旅行有很多种方式。你可以开车,你可以乘坐公共交通工具(无论是公共汽车还是火车),或者你可以骑自行车,做些运动,听听风吹过头发时鸟儿的鸣叫。

很抱歉这种以美国为中心的旅行类比(撇开环境足迹和交通堵塞的现实),但对我来说,在许多方面,Python 就像是驾驶我自己的汽车。通常,从 A 点到 b 点对我来说是最实际的选择。它会很快,我可以以可预测的速度走得很远。但是,实际可能会有点无聊。一开始肯定不是。我 18 岁就拿到驾照了,至今还记得开车有多好玩。旅程的目的地是次要的。

你现在在做什么项目?

在彭博的同事们的帮助下,我在过去的一年里每三个月在我们的旧金山工程办公室组织和主持一次为期两天的活动,以鼓励和促进 Jupyter 生态系统中的实验。我们称之为“开放工作室日”当前维基百科对“开放工作室”的总结抓住了我们希望在技术社区中更加突出的精神:“一个所有人都可以进入的工作室或工作室,在这里可以共同观看和创作艺术或创意作品。开放式工作室旨在培养创造力,鼓励在文化交流、对话、鼓励和自由表达的氛围中进行实验。”与 sprint 或 hackathon 不同,在 sprint 或 hackathon 中,目标是在最后产生一些具体的东西,我们努力的重点是强调有时我们只需要通过相互教学、进行讨论或只是分享我们可能有的一些感受和想法来探索和参与。

我也在帮助组织今年的 NumFOCUS 峰会。这是一个机会,来自开源项目的人们可以聚在一起,互相学习我们一直在做的事情,并找出如何发展我们的项目和社区。

我也有一段时间没有提交 Matplotlib 了。虽然我最近在那里不太活跃,但我确实在今年早些时候帮助汤姆·卡斯维尔发布了两个版本(2.2.4 和 3.0.3),并在今年夏天发布了我的第一个个人版本(3.1.1)。在此之前,Tom 已经独自完成了几年的发布工作。我的计划是继续处理这些,我是 Matplotlib 3.2.0 的发布经理,该版本将于 9 月发布。

我还有六个尚未发布的个人项目,我在后台推进这些项目。我这样说并不是要戏弄或拒绝他们,而是要让新开发人员知道,拥有不与他人共享的辅助项目是可以的,甚至是值得的。我认为这是一项公共服务,这些年来我没有发布一堆半生不熟的代码,尽管有一些确实漏了出来。

您喜欢使用哪些非 Python 开源项目?

有太多的名字,但我想我必须从某处开始。不管我用的是什么操作系统,我都更喜欢 Vim 文本编辑器——尽管必要时普通的 vi 也不错。我使用 Debian、OpenBSD 和 FreeBSD 操作系统,GIMP 和 Inkscape 创建图形,用 Go、Idris、Elm 和 Haskell 编写代码。

你是如何加入 Jupyter 和 Matplotlib 社区的?

十几年前,在科学 Python (SciPy)生态系统中使用工具绝对是一件反文化的事情。一些边缘是锋利的,所以“出血边缘”在当时绝对是一个恰当的描述。

我提到了我如何在 2006 年开始读研,并在 2007 年开始使用 Python。一年后,IPython 的创始人 Fernando Perez 出现在校园里。那时,红杉中心已经搬到了校园里的另一栋大楼,所以我们不再与校园里的其他科学 Python 用户共享空间。这一举措的一个主要好处是,我们现在可以使用一种珍贵的、很难得到的商品:我们自己的会议室。所以,我们开始每周聚在一起,组成一个 py4 科学小组。我们会教对方如何编写 C 扩展,NumPy 和 SciPy、Matplotlib、SWIG 和 Weave 的不同子模块。

在 GitHub、Stack Overflow 和 Discourse 出现之前,邮件列表是大多数社区活动发生的地方。有一段时间,我在 Matplotlib 邮件列表上非常活跃。有一次,有人问是否有可能使用 Matplotlib 事件处理代码来支持多个后端中的交互性。我写了一个 Pong 的克隆来说明这确实是可能的——太疯狂了 pipong.py 现在已经 10 多岁了!

你还有什么想说的吗?

回到我的“Python 就像开车”的比喻,我希望我没有劝阻任何人学习 Python 或继续使用它。无论如何,请做,我也会继续下去。我只是希望提醒人们,还有其他的交通方式可以利用:你可以驾驶船只,驾驶飞机,驾驶火箭,或者只是去散步。它们都有价值。

保罗,谢谢你接受采访!

本周 PyDev:保罗·凯尔勒

原文:https://www.blog.pythonlibrary.org/2017/10/23/pydev-of-the-week-paul-kehrer/

本周,我们欢迎保罗·凯尔勒(@收割者浩克)成为我们本周的 PyDev!保罗是密码术包的核心开发者。他也是 pyOpenSSL,bcrypt 和 PyNaCl 的维护者。你可以在 Github 上感受到他在做什么。保罗还有一个有趣的博客值得一试。让我们花一点时间来更好地了解我们的同胞 Pythonista!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我的名字是保罗·凯尔勒,但很多人可能只知道我的名字“收割者巨人”(这是我名字的变位)。我有一个物理学学位,但在大学里学会了编程,一毕业就跌跌撞撞地找到了一份安全工作。我经常旅行(这些天我大部分时间都在亚洲),我喜欢风筝冲浪(通常在阿鲁巴岛或毛伊岛),我也喜欢烘焙。

你为什么开始使用 Python?

很遗憾,我没有一个关于我是如何发现 Python 这个神奇社区的故事。在之前的一份工作中,我做了大量的 Ruby 工作,但我在 2013 年初接受了一份新工作,雇佣我的公司(Rackspace)希望我参与一个用 Python 编写的安全项目。这是一个相对容易的转变,尽管两个社区对于元编程的可取性有着非常不同的看法!

你还知道哪些编程语言,你最喜欢哪一种?

在我职业生涯的不同阶段,我写过 PHP、Basic、Objective-C、Ruby、C、Go,可能还有其他语言。我目前用 Python,C 写,并且定期去。我不认为我有最喜欢的语言,因为没有一种语言是完美的。我很欣赏 Go (single binary,gofmt)中的一些工具,但 vendoring 并不出色。Python 的打包故事一直很糟糕,但是 PyPA 的英勇努力在这一点上真正开始得到回报,我们可以希望最终合理地分发给最终用户将是可能的。

你现在在做什么项目?

我是每一个 Python 密码权威项目的维护者,除了密码学本身,还包括 pyOpenSSL、bcrypt 和 PyNaCl。然而,我主要关注的是密码学。这是我参与的所有项目中最有价值也是最复杂的(从加密和打包的角度来看)。

除此之外,我还是 Frinkiac(和 Morbotron,所有科学和资本节拍的大师)的创造者之一。随着我们扩大支持的节目和增加功能,这些项目将花费越来越多的时间!

哪些 Python 库是你最喜欢的(核心或第三方)?

我认为 Python 开发者可能被法律要求在这里提到请求,但是另外我会提到 pytest(密码学大量使用的),cffi(从 Python 调用 C ABI 的一个真正的方法),和 magic-wormhole(布莱恩·华纳的一个奇妙的加密安全文件共享工具)。

你是如何开始密码学项目的?

当我第一次开始用 Python 编程时,我很快发现 Python 中的加密库还有很多不足之处。我的老板让我联系了 Rackspace 内部的一些人,他们对建造一个新的图书馆感兴趣,并且已经开始组装一个框架(还有 Rackspace 外部的其他几个人)。从那里我开始提交 PRs!刚开始 4 年多(这里是我的第一次 PR!https://github.com/pyca/cryptography/pull/48)在这段时间里,我们从一无所知到每月从 PyPI 下载超过 500 万次。

在开源工作中,你遇到过哪些挑战?

我每天都看到两个大问题。一个是开源项目的可持续性。企业经常从开源软件包中获得巨大的经济利益,但是他们并没有从它所获得的利益中获得相应的回报。这是有问题的,因为绝大多数的开源项目都是在人们的业余时间完成的,工作倦怠是一个大问题。即使是有一些商业支持的 PyCA(我每周都有一些时间致力于开源工作,我们有大量的预算用于大规模的持续集成设置),在整个组织中也只有 2-4 个人。就密码学而言,尽管它非常流行,但只有两家活跃的维护者。

第二,开源社区的某些部分可能非常有害。我最常看到的是人们对缺失的 bug 或特性感到愤怒。这种权利让维护者非常沮丧,应该不惜一切代价避免。幸运的是,PyCA 项目基本上没有见过这种行为,但在其他地方也很常见。请记住,当某件事花费的时间比你想象的要长时,开源维护者是有生活和工作的人,他们有很多理由不立即做你想要/需要的事情。如果你想让它发生得更快,那就参与进来吧!或者只是感谢他们为让你的生活更轻松所付出的时间和努力。

对于想加入开源项目的新开发者,你有什么建议吗?

参与一个项目有很多种方式。最好的方法之一就是坐下来,花很多时间来改进你想做的项目的文档。不仅维护人员会喜欢它,这也是学习更多 API 的好方法,这样当你想添加一个特性时,你就可以理解项目背后的哲学。

另一种方法是加入他们的邮件列表、IRC 频道、slack、问题跟踪等。潜伏一段时间,了解他们在做什么,他们有兴趣解决什么,可以让你更容易提供帮助。还记得那句谚语“嘿,我能帮忙吗?”很好,但是它确实需要维护人员花费大量的精力来确定您的技能水平、承诺,并为您提供工作。如果你说“嘿,我想帮忙处理<x>,这是我基于之前讨论的提议”,那就简单多了!

也就是说,不要觉得你需要成为一个项目的专家才能说任何事情。当维护人员解释事情时,表达兴趣并保持沟通是一个非常好的第一步。

你还有什么想说的吗?

你一定要去https://frinkiac.comhttps://morbotron.comhttps://masterofallscience.comhttps://capitalbeat.us 告诉你所有的朋友也这么做😉

此外,如果您是一名开源维护者,您知道 PyPI 向公开可用的 BigQuery 写入有用的统计数据吗?您可以利用实际数据做出各种维护决策!如果你感兴趣,这里有更多信息:https://langui.sh/2016/12/09/data-driven-decisions/

感谢您接受采访!

本周 PyDev:保罗·罗格斯顿

原文:https://www.blog.pythonlibrary.org/2016/10/10/pydev-of-the-week-paul-logston/

本周我们欢迎保罗·罗格斯顿(@保罗·罗格斯顿)成为我们本周的 PyDev!保罗是 Pyvideo.org 的的新维护者。他接替了威尔·卡恩-格林。你可以在这里阅读更多关于过渡的内容。他还是当地 Python 用户组的组织者。你可能想花点时间看看他的 Github 简介,这样你就能知道保罗最近在忙些什么。让我们花些时间去更好地了解他!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

去加州大学戴维斯分校学习化学工程,大学毕业后在芝加哥学习即兴表演,学习急救医疗师/抽血师,一边做喜剧一边工作。搬到纽约继续做喜剧。在做喜剧的时候教了几年心肺复苏术/BLS/ACLS。然后决定转行。我决定推动编码,因为我一直把它作为一种爱好。自学 Python 大约一年后,我从 EMS 教育转到 155 做开发人员。NYC Python Meetup 是我 Python 教育中不可或缺的一部分。没有这个团队,我就不会有今天。我现在帮助组织这个小组,管理周六的办公时间以及一些大型的谈话夜和 PyGotham 纽约的区域 Python 会议。其他爱好包括狂看网飞原版电影、酿造康普茶和教学。

你为什么开始使用 Python?

我知道 PHP,但我想要一种语言,可以用来为网站和图形用户界面编写一个后端。不过,我还没有为此使用 Python。

你还知道哪些编程语言,你最喜欢哪一种?
是的,“知道”和“我已经把它作为我知道的一种语言写在我的简历上了”之间的界限有点模糊,但是如果给我一两个星期的时间,我可以有效地使用这些语言。

  • C
  • 服务器端编程语言(Professional Hypertext Preprocessor 的缩写)
  • Java Script 语言

我认为 C 是我最喜欢的。这不是我最喜欢写的东西(到目前为止应该是 Python),但是 C 更接近于金属,以至于当你写它的时候,你会有真正的黑客快感。或者至少我知道。

你现在在做什么项目?

  • Pyvideo.org
  • 写脚本在票务网站上找到最好的交易。
  • dna 音乐播放器

哪些 Python 库是你最喜欢的(核心或第三方)?

哇。好问题。不过,我倾向于不做最喜欢的。这些对我来说很难,不值得去决定。不过,我最近真正感兴趣的是 asyncio 和 bokeh。

作为一门编程语言,你认为 Python 将何去何从?

我认为 Python 正在许多不同的领域发展,我认为一些社区正在将它作为他们的首选语言。尤其是教学和数据。我看到 python 在各个领域都有增长,但它在学校的普及令人惊讶。Java 和 C++正在被推出,被 Python 取代。此外,尽管 R 很有趣(我从未使用过 R ),但很难在 R 中以一种与大量人互动的方式展示你的工作成果。我看到想为数据分析编写代码的人也想为一个快速的 web 应用程序编写代码来展示他们的工作。r 只是还没有出现。简而言之,Python 的易用性、温和的学习曲线和多功能性使它成为一种很好的语言,可以开始学习并与之一起成长。

你对当前的 Python 程序员市场有什么看法?

是的,可能会很艰难。在微观层面上,纽约市往往会出现 3 - 6 个月的招聘热潮,随后就会放缓。我认为我们现在正处于冲刺的尾声。我预计招聘将在一个月左右放缓。此外,假期就在眼前,所以有些缓慢是理所当然的。

宏观上,我真的不知道。我不知道我们是在山顶上,还是在山上,或者我们刚刚迈出了我们第一个蹒跚学步的孩子的步伐,爬上了操场的楼梯。我能感觉到的只有前进的动力。说真的,感觉很好。

你还有什么想说的吗?

首先,感谢邀请我!其次,我会利用这段时间无耻地宣传 pyvideo.org。Pyvideo.org 是一个全球使用的(见下图)python 视频索引。我们一直在寻找新的提交,并非常感谢那些进来。如果你正在寻找一种进入开源社区的简单方法,请在https://github.com/pyvideo/data为其中一个问题提交一份 PR。谢谢!

pyvideo

感谢您接受采访!

PyDev of the Week: Paul McGuire

原文:https://www.blog.pythonlibrary.org/2021/11/22/pydev-of-the-week-paul-mcguire/

This week we welcome Paul McGuire (@ptmcguire) as our PyDev of the Week! Paul is the author of the pyparsing package. Paul is a Site Reliability Engineer for Indeed.com. He is also the co-author of the 4th edition of Python in a Nutshell. You can find out what he is up to by checking out his website.

Paul McGuire

Let's take a few moments to get to know Paul!

Can you tell us a little about yourself (hobbies, education, etc):

I grew up as the math/science nerd surrounded by artists. My older brothers were a writer, a sculptor, and an architect. I took piano lessons for a few years, and I got to go see the Cleveland Orchestra many times while I was in high school (if you volunteered as an usher, you got in for free). So I had a good dose of the arts to go with the math and science. Eventually I was drawn to engineering and attended Rensselaer Polytechnic Institute, but I still kept up my appreciation of the arts.

In the mid 80's I read an article about the computer-generation algorithms used to create the landscapes for Star Wars, and thought that would be an interesting little program to write. I've gone back to that little program several times, and around 2008 I started doing abstract art prints on canvas, which then became other products as well - you can see them at paulmcguireart.com.

Why did you start using Python?

I was just starting to work with two friends who had started a consulting company. I had worked with Tcl previously, so I knew that I wanted to have a scripting language in my consulting toolkit. But I disliked Tcl's "everything's a string" data model. After looking at a couple of languages, I settled on Python.

I immediately loved the notion of using whitespace to delimit blocks. I had previously worked on a C development team that spent 2 weeks debating "where should the braces go?" and having blocks with no braces just made that whole issue go away (though maybe got traded for "tabs vs. spaces"?)

After about 10 months, I thought about the core ideas in pyparsing, and so put out version 0.1 in late 2003. I've been using Python ever since.

What other programming languages do you know and which is your favorite?

I've been around a while, so I've collected a number of languages. I started with BASIC in middle and high school, then FORTRAN in college. Through a succession of jobs I picked up (in rough chronological order) Pascal, PL/I, COBOL, C, Smalltalk, Java, C++, (insert Python here), C#, Boo, Groovy, and most recently Golang.

My favorite is probably the Python mode of the Processing environment. I've also used Processing's Java mode, and I have described it to others as "Java for artists". Processing is great for doing quick graphical work, with some really beautiful results, and it ports to multiple platforms pretty easily (I've used it to prototype a couple of small Android apps for my phone).

What projects are you working on now?

I'm finally finishing release 3.0.0 of pyparsing, which started 2 years ago - it was a major code restructure, it cleared out the Py2 compatibility code, plus some other stuff happened. I've described it as feeling like I'm walking a marathon.

My other open source projects are a pyparsing spin-off called plusminus (pyparsing/plusminus (github.com)), a library for incorporating custom, secure arithmetic expression evaluation into Python applications. The base parser guards against common eval() security and DOS attacks, and handles expressions like:

Mathematical Expressions

There are also custom parsers in the examples to parse and evaluate "30% off of 50", "d20+3d4", and "3 days and 2 hours from now".

And littletable (ptmcg/littletable: An in-memory database of Python objects, searchable using quasi-SQL API (github.com)), which started as an ORM experiment that has turned out to be useful on and off, especially working with CSV data. Littletable is pretty lightweight, so it gives a nice ORM-ish wrapper around lists of objects - it infers column names from the objects' attributes. Last winter I also added some full-text search. (Ironically, a week later I had a job interview coding test where I had to implement a full-text search!) You can use littletable to quickly read, manipulate, and write CSV files without having to wield the pandas sledgehammer.

I'm also working with Alex Martelli and Steve Holden on a 4th edition of Python in a Nutshell. The 3rd ed. was written when Python 3.6 was just coming out, and there have been some significant new features added to Python since then (plus we can also finally put Python2 in the rear-view mirror, and prune all the "but in v2, it looks like this…" cruft).

Which Python libraries are your favorite (core or 3rd party)?

itertools in the stdlib. Especially groupby. I wrote a couple of blog posts about using groupby in some novel ways, comparing it to a greeter who seats groups of diners at a restaurant. (Blog link: Things Python | Python bits collected along the way… (wordpress.com))

Second place in the stdlib is collections, especially deque and defaultdict.

rich from Will McGugan is really fun - I used part of it in littletable for pretty tabular output. I've used tqdm in the past for progress bars, but I want to give rich progress bars a try. And Will's textual package looks pretty cool, but I haven't used it yet.

How did the pyparsing package come about?

1. I was bad at regex.  2. I was annoyed at regex's use of common characters (like "." and "?" and "*") for metacharacters, and so requiring the ugly "" escape if they were needed as literal content. 3. I had a long-standing interest in parsing utilities, having previously written an embedded arithmetic parser written in PL/I as part of a statistical process control package. So writing a simple 4-function arithmetic parser was a good early exercise while learning Python, and it evolved into an object-based API, in which you could write "OneOrMore(expr)" instead of "(expr)+". It is more verbose, but that verbosity makes it easier to revisit several months down the road when your existing parser needs a tweak.

(I've since gotten a lot better at regex.)

What are some neat features you can do with pyparsing that you don't think most people are aware of?

First off, 2 new features in 3.0.0, railroad diagrams (contributed by Michael Milton) and left-recursive parsing (contributed by Max Fischer). The railroad diagrams look very nice but they are still only lightly tested, so they will evolve a bit in the next few point releases. Here is a sample:

PyParsing Example

And a more thorough example from the pyparsing test suite:

PyParsing Example (detailed)

The LR parsing walks a similar path as the PEG parser that was added to Python, with a twist - pyparsing's parse actions complicate this process a bit. I've encouraged Max to do a PyCon presentation on this work, I think it is really interesting.

In pyparsing 3.0.0, I am also adding PEP-8 names (like "parse_string") in place of the Javaesque names (like "parseString"). When I first wrote pyparsing, I had worked in C before and was familiar with snake case naming, which goes back to the dawn of C programming. But I had been working more recently in Smalltalk and Java. So at that time, I was sure that the more modern camel case naming was going to become the de facto convention, so I stuck with that for pyparsing. Since then, camel cased Python has pretty much fallen into disfavor, even though you still see it in Java-influenced stdlib modules like logging (from log4j) and unittest (from junit). Pyparsing 3.0.0 includes the new names, but also defines the old names as synonyms so that existing code does not require a huge rewrite in order to upgrade to it. The synonyms will be kept around for a bit, but new code should use the PEP-8 snake case names.

Is there anything else you’d like to say?

I've probably run on enough.

Thanks for doing the interview, Paul!

本周 PyDev:保罗·摩尔

原文:https://www.blog.pythonlibrary.org/2017/03/20/pydev-of-the-week-paul-moore/

本周,我们欢迎保罗·摩尔成为本周的 PyDev!Paul 是 pip(Python 中安装包的实际方法)的核心开发人员,也是 Python 本身的核心开发人员。你可以在 Paul 的 Github 简介中看到他参与的一些项目。让我们花些时间更好地了解保罗!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我出生在英国的利物浦,并且(除了在剑桥大学学了几年数学之外)我一生都住在英格兰的西北部。当我在学校的时候,我对数学充满热情,这导致了我对编程和计算机的兴趣。我的第一台计算机是辛克莱·ZX-81,我从拆卸那台机器的完整操作系统中学到了 Z80 汇编程序——这几天我从来没有尝试过!我很快转向了 BBC micro,然后是 Acorn Archimedes,直到 1995 年左右,当我拥有第一台个人电脑时,我终于加入了主流。虽然我一直对 Unix 感兴趣,但我从未在家里真正使用过它,所以我几乎一直是 Windows 用户(这有其令人沮丧之处,但也更有趣,因为你有机会移植 Unix 用户认为理所当然的东西:-)。

在过去,我参与了许多开源项目——vim(我编写了最初的 OLE 和 Python 接口)、Boost C++库、一些早已过时的 Windows 实用程序库——并将许多 Unix 程序移植到 Windows 上(我自己移植了许多 GNU 实用程序)。这些现在大多已经消失了,我主要关注 Python。

在我的职业生涯中,我为一家软件咨询公司提供 Oracle 支持。虽然 Python 的官方使用并不多,但我总是尽可能地将其用于后台脚本和个人实用程序。这些天来,很高兴看到它越来越多地作为一种“主流”语言出现——这些天来,它在各种意想不到的地方出现。

除了计算之外,我还喜欢和家人在一起(我已婚,有一个儿子和一个女儿,都在上大学/学院),以及玩音乐(吉他和钢琴),玩棋盘游戏和阅读/观看视频。我以前练过柔术,但是现在已经几年没时间了(年龄的增长可能也是一个因素!)

你为什么开始使用 Python?

我对“开源”产生了兴趣(那时候还不叫这个!)在 20 世纪 90 年代早期,当时我喜欢阅读所有适用于 Unix 的令人惊叹的程序。它们中没有一个可用于 Acorn 机器,所以很自然地我得到了源代码并自己移植了它们!我对可用的脚本语言特别感兴趣,我为 Acorn 开发了一个 Perl 3 的移植。在从事这项工作时,我听说了另一种叫做 Python 的脚本语言。虽然一开始我并没有做太多。

当我有了一台 PC 后,我又看了看 Python。我已经厌倦了 Perl,喜欢 Python 代码看起来的整洁。所以我拿起一份副本(这可能是 Python 1.4 流行的时候)一头扎了进去,从此再也没有回头。我开始为 python-dev 列表做贡献,并在 2002 年左右开始参与实际开发,当时我与 van Rossum 合著了 PEP 302(导入钩子)。从那以后,我一直是一个相对活跃的 python-dev 贡献者。

你还知道哪些编程语言,你最喜欢哪一种?

毫无疑问,我最喜欢的语言是 Python。除此之外,我在日常工作中使用 Oracle SQL 和 PL/SQL,以及一点 Java。除此之外,我是一个语言迷——这些年来,我接触过几乎所有我能接触到的语言——C/c++、Perl、shell 脚本、awk、Lisp、Javascript、Visual Basic、C#、Haskell、J、Forth、Prolog、...我喜欢 C 的性能和对机器的直接访问——当你需要这么低的级别时,没有比这更好的了。SQL 付出了代价,我喜欢它查询数据的声明式方法——一旦你学会了 SQL,就不得不按程序进行分组和连接,感觉真的很笨拙。

总有一天我会进入 Rust 和 Go 这样的新语言——但是每当我看着它们的时候,我总会想到“但是这在 Python 中会容易得多”...

你现在在做什么项目?

我在 2013 年成为 pip 核心开发人员,我的大量时间都花在 Python 打包上。大量的时间被用于各种关于包装未来的讨论和提议——不幸的是,这些天我几乎没有时间进行实际的编码。

去年,我被邀请成为核心 Python 开发者,这是一个巨大的荣誉。我的第一个提交是 Python 3.6 中新的 zipapp 模块,它使捆绑独立的 Python 应用程序变得更容易了(并且很好地完成了整个循环,因为我对 PEP 302 的第一个贡献是首先启用了 zipimport)。这是我一直感兴趣的一个领域,我的许多开发工作都是围绕更好、更轻量级的方法来打包 Python 应用程序,主要是针对 Windows。有很多方法可以做到这一点,像 py2exe 和 cx_Freeze 这样的工具确实是很好的解决方案,但是仍然有很多人在为如何将他们的小工具部署到他们的朋友或同事而苦恼。我希望最终共享 Python 脚本能像共享批处理文件或 VBScript 实用程序一样简单。

哪些 Python 库是你最喜欢的(核心或第三方)?

这里的每个人总是说请求,我也不得不同意。API 的设计是我们都可以借鉴的。我也喜欢 PyData 堆栈,尤其是 Jupyter/Pandas 组合。我在日常工作中做大量的数据分析,Excel 和类似的工具是标准的解决方案。能够向某人展示一个 Jupyter 笔记本,它使用 Pandas 以灵活和简单易懂的方式分析数据,这是对 Python 的一个极好的介绍。

当然还有标准库——那里有很多有用的工具,让编写脚本变得轻而易举。每当我使用另一种语言时,我最终都会因不得不手工做很多事情而感到沮丧。

作为一门编程语言,你认为 Python 将何去何从?

我认为 Python 的核心目前处于一个非常好的位置——我们有一个稳定的语言,获得了小而有用的“生活质量”特性。Python 3 正成为人们开始学习这种语言的明显起点,尽管 2.7 还将伴随我们几年,但我感觉现在的重点是向前发展。我希望看到改进的最大方面是部署——在编写 Python 脚本时,添加对 PyPI 的依赖,然后将所有东西捆绑在一起,以便安装了正确版本 Python 的任何人都可以运行它(在 Windows 上使用嵌入式发行版,即使根本没有安装 Python)。zipapp 模块是朝着这个方向迈出的一步,但我们还有很长的路要走。

我希望看到 PyPy 和 Python 编译器技术的更多发展。虽然性能不再像以前那样是最重要的考虑因素,但是当你需要它的时候,不必为了得到它而放弃 Python 的所有其他好处,这真的很好。我最近有一个项目,它在 CPython 中慢得不可思议,但是在用 PyPy 运行时,它可以与 C 竞争。我认为人们没有意识到他们可以这么容易地获得那种好处——我当然没有!虽然我很想看到 PyPy 3.x 在 Windows 上发布到生产级别——但现在回到 Python 2.7 对我来说相当困难🙂

你还有什么想说的吗?

我只想说 Python 社区很棒。我不知道还有哪种语言有如此乐于助人和热情的社区。多年来,这一直是我生活中的一个重要部分,毫无疑问,我从社区中获得的不仅仅是技术信息——我们如何相互交往,我们如何鼓励参与,等等。

谢谢你邀请我参加这个系列!

感谢您的加入!

本周 PyDev:保罗·索科洛夫斯基

原文:https://www.blog.pythonlibrary.org/2020/02/10/pydev-of-the-week-paul-sokolovsky/

本周,我们欢迎保罗·索科洛夫斯基成为本周的 PyDev!Paul 是 Pycopy 的创建者,py copy 被描述为“一个最小化的、内存高效的 Python 实现,适用于受约束的系统、微控制器和任何东西”。你可以在 Github 上查看他对开源的更多贡献。让我们花一些时间来更好地了解 Paul!

Paul Sokolovsky

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我拥有计算机科学作为我的第一个硕士学位,后来又获得了语言学硕士学位——当我还是一名计算机科学学生时,我对人工智能的自然语言处理子领域感兴趣,并想获得一个正式的学位,在该领域工作,也许是在学术界,但从未成功,我被卷入了 IT 行业,这是一个常见的故事;-).

爱好-嗯,没什么特别的,我喜欢旅行,即使飞机带我去很远的地方,我也喜欢站起来探索,就像人类几千年来所做的那样。虽然如果有摩托车出租,我喜欢在爬山之前骑到更远的山上。我最近的兴趣是历史。就像,每个人都在学校上过历史课,可能在特定的时间范围内有他们“最喜欢的”特定国家的历史,但是试图掌握人类跨越提到的几千年的历史是一个不同的问题。

你为什么开始使用 Python?

哦,和许多学生一样,在那个年龄,我对 Lisp 和 Scheme 编程语言垂涎三尺。我在里面做了几个项目,虽然它们确实很棒,我也能找到它们,但我突然意识到,我对这个世界的其他部分并不确定。编程本质上是一种社会活动。除了这些语言的力量之外,它们的缺点也是显而易见的,虽然我能够克服它们,但其他人可能不仅不能,甚至不愿意这样做。

因此,我开始寻找折衷的最佳编程语言,筛选了当时的几十种主流和晦涩的语言。发现 Python 就停了。我认为它是“真实世界的 Lisp”。那是 Python 1.5.1 的时代...

你还知道哪些编程语言,你最喜欢哪一种?

基于以上所述,Python 是我最喜欢的语言就不足为奇了。我知道一堆脚本语言——Perl、PHP、Java、JavaScript、Lisp、Scheme,以及更“系统化”的语言,如 C 和 C++。我肯定会关注这个空间,关注正在向上游逼近的 Go、Rust 以及 Nim、Zig 等利基竞争者。我并不急于使用它们——再说一次,我在学生时代就已经过了语言跳跃的阶段。

你现在在做什么项目?

我目前最大的项目是 Pycopy ,这是 Python 的一个轻量级和极简实现,围绕它有一个库和软件生态系统。虽然我一直喜欢 Python,但这是我使用它的一个问题——它太大了,所以我不能在任何我想要的地方使用它,比如路由器或 WiFi 接入点等小型嵌入式设备(这种设备现在被称为“物联网设备”)。我不得不离开 Python,尝试使用更小的语言,比如 Lua,但我没能为它们获得斯德哥尔摩综合症,总是回到 Python,因此一些需要小型廉价设备的有趣项目毫无进展,比如智能家居。

这就是为什么当我听说 MicroPython Kickstarter 活动并阅读了一些非常可靠的技术描述时,我立即被吸引住了,并向其作者保证在非常成功的活动结束后立即开放源代码,而不是在设备发货时——这一切都是为了允许开源合作。从那以后,我为 MicroPython 贡献了大约 4 年,写了大约 30%的代码。可悲的是,向前看,我觉得我们开始时的极简主义思想被背叛了,而基于信仰和理想在自己的空闲时间做工作的贡献者与需要满足客户以维持运营并产生利润的小企业之间的利益冲突正在增加。于是,我们分道扬镳。

Pycopy 就是这么来的。与专注于“微控制器”的 MicroPython(在另一个小型 Python 实现 PyMite 之后重复了这一错误,在我看来这是它的垮台)不同,Pycopy 希望成为“一切”的全栈语言。理想的情况是在你的台式机/笔记本电脑上使用一种语言,如果你使用云,在移动设备上使用一种语言,如果你想在移动设备上运行你的软件,一直到微控制器,尽管这很酷,但它仍然是一个相对小众的情况,基于 Linux 的小设备通常更容易访问,更具成本效益。

因此,除了具有最小模块集的核心解释器之外,Pycopy 项目还提供了标准库,它努力与 CPython 兼容,同时仍然很小,一个 web 微框架,数据库驱动程序,SDL(图形库)绑定,FFMPEG(视频/音频库)绑定,最近正在开发的 LLVM 绑定,这是一个编译器后端,可以轻松开发加速器 JIT 引擎,这是 Python 社区直接需要的,以对抗那些 simpleton 声称“Python 很慢”的说法,以及许多其他东西。真的很酷,你应该去看看。这绝对是我一生都想发展的东西,我很高兴当我老的时候,我会满足于这样做;-).

重要的一点是,上述所有内容都不是以某种正式的计划完成的,也不是为了重新实现“大”Python 所拥有的一切。都是基于自己和投稿人的需求/兴趣来做的。比如,我对玩视频监控很感兴趣,这就是为什么我实现了 FFMPEG 绑定来访问来自摄像机的视频(而不是将它流式传输到未知方的云中)。我发现这是最近的事情,也许是小众的,但绝对是一种趋势——提出人类规模的计算——而不是公司规模或行业规模的——一些仅仅是人类就可以作为一个整体来理解,根据自己的需要进行修改,并扩展的东西。这正是 Pycopy 项目背后的想法!不要误解我——我们也需要公司规模或行业规模的项目,这就是我在日常工作中所做的。但是在我自己的空闲时间,通常是属于我的家人和与我有共同兴趣的人的,我宁愿做一些人类大小的事情。

最近有没有其他 Python 项目引起了你的注意?

去年八月我发现的一个伟大的项目太晚了,那就是 PPCI,Windel Bouwman 的 Pure python compiler infra structure。“太晚了”,因为我通常观看我感兴趣的项目空间,例如,我知道用 Python 实现的 3-4 C 语言编译器。但是 PPCI 是一块真正的宝石,它实现了自己的承诺,不仅仅是一个小型的特别编译器,而是从解析到“几乎工业级”的优化和代码生成的整个编译器基础设施。所有这些,很大程度上是一个人在业余时间工作的结果,这再次显示了 Python 带来的力量。总而言之,这是我一直梦想去做的一个项目,但是从来没有足够的勇气去开始。我现在试着抽出时间为它做贡献,并设想它成为所有对编译器和优化感兴趣的人的首选项目。

第二个项目是最近的发现。作为介绍,现在应该很清楚,我不只是开发我自己的项目,而是关注广泛的社区进展。在我看来,应该避免重复劳动是开源思想的基础,但是如果重复劳动发生了,这样一个项目的作者应该给他们自己和用户/贡献者一个清楚的答案,为什么会发生重复劳动。所以,我已经提到 PyMite 是 MicroPython/Pycopy 的“精神继承者”。

另一个类似的项目是 TinyPy。这两个项目都只实现了该语言的一小部分,所以实际上它们是类似 Python 的语言,几乎不能运行任何真正的 Python 代码。这就是为什么我追随 MicroPython 潮流的原因,它承诺(并交付了)与 Python 语言几乎完全兼容(但不是库,尽管用户可以自己添加)。尽管如此,TinyPy 确实是一个很酷的项目,例如,它用 Python 本身实现了字节码编译器(我现在也在为 Pycopy 做这件事)。更有趣的是发现有人决定恢复旧的 TinyPy,并基于它构建一个名为 TPython++ 的新项目。对我个人来说,这看起来像是一个临时的尝试,试图将它与游戏引擎结合起来,但我不能知道所有的事情。如果说有什么不同的话,那就是它显示了 Python 社区是多么充满活力,覆盖面有多广。

保罗,谢谢你接受采访!

本周 PyDev:Paulus Schoutsen

原文:https://www.blog.pythonlibrary.org/2021/08/23/pydev-of-the-week-paulus-schoutsen/

本周的 PyDev 是 Paulus Schoutsen(@ ballob)。他是家庭助手的创始人,这是一个开源的家庭自动化工具/包。

你可以在 Paulus 的 GitHub 简介上看到他还在做什么。

Paulus Schoutsen

让我们花一点时间来更好地了解保卢斯!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我来自荷兰,但在过去的 9 年里,我一直住在加利福尼亚。目前在欧文。我拥有特温特大学商业和 IT 专业的学士和硕士学位。

爱好和工作混为一谈,因为我现在全职做家务助理。5 年来,我都是兼职做这项工作,而在过去的 3 年里,我一直是全职做这项工作。从那时起,我们已经走过了一段漫长的路,自从我成为全职员工以来,我们一直致力于让它更易于使用。任何更容易使用的东西都会得到更多的采用,我们肯定已经在 Home Assistant 中看到了这一点。去年,我们是 GitHub 上第二活跃的 Python 项目。

“家庭助手”的伟大之处在于,它允许您在家中使用 Python 知识,改善您和您家人的生活。

我一直在寻找新的爱好,但他们通常会致力于插入家庭助理的事情(因为一切都是如此)。我的最后一个项目是用开源控制软件 WLED 设置 LED 灯条。结果真的很棒。

你为什么开始使用 Python?

那是在大学的时候。我们必须建立一个网络应用程序,想要尝试一些新的东西,最终用上了 Flask。这是在网上快速获取信息的一个简单又好的方法。

后来在我的硕士论文中,我经常用它来处理数据。那也是我开始做家务助理的时候。我对 Python 没有多少经验,只是顺其自然。它曾经是一个大操场,用来试验我正在学习的新技术或技术概念。如今,这已不再可能,因为我们估计全球有超过 350,0 00 个家庭依赖家务助理。

你还知道哪些编程语言,你最喜欢哪一种?

我觉得 JavaScript 和 TypeScript 很好用。这是我们用于家庭助理前端的。TypeScript 很棒,因为类型系统的工作方式类似于 Python 中的类型系统:您可以在编译时获得类型安全,当类型碍事时可以将其关闭,并且它具有联合类型。联合类型很棒,因为它在返回什么方面给了函数更多的灵活性,并且是类型系统不会妨碍的另一种方式。

你现在在做什么项目?

家庭助手!这个项目一直在扩大。我们集成了 1800 多种不同的设备和服务。但我们不只是集成这些,我们还在上面构建功能。仅举几个例子:

但是除了家庭助理之外,我还参与了 ESPHome。ESPHome 是用于 ESP8266 和 ESP32 微控制器的基于 Python 的固件生成器。它允许用户将传感器连接到这些微控制器,编写描述电路板的配置文件,以及哪个传感器连接到哪个引脚,ESPHome 将生成固件并将其安装到微控制器上。虽然家庭助理是你家的大脑,但 ESPHome 提供了眼睛和耳朵。

哪些 Python 库是你最喜欢的(核心或第三方)?

阿辛西奥!它是如此强大的原始。几年前,我们已经将家庭助手核心从线程工作池切换到 asyncio,这使得我们的工作变得更加容易。

一个很大的好处是,如果你同时做许多不同的事情,比如查询你家里所有设备的状态,你不需要为每个任务都使用一个线程。相反,这都是在 asyncio 任务中完成的,这些任务非常轻量级,您可以同时运行任意多的任务。这构成了一个强大的核心。

另一个很大的好处是代码的调用者保持控制。例如,如果设备没有响应,Home Assistant 可以强制超时或决定不再关心的其他原因。它不必依赖于一直向下传递超时对象。

home assistant 包是怎么来的?

2012 年,飞利浦发布了飞利浦 Hue 灯。我买了它们并安装在我的房子里。我很兴奋,因为灯光有一个 API!所以在 Python 中,我设法与这个 API 交互,并给我对它们的控制。但是然后呢?所以我决定在太阳落山时开灯。然后,我意识到,当没有人在家时,灯会打开,所以增加了存在检测。然后我意识到太阳落山时天已经太黑了,我们应该看看太阳的角度。然后我意识到…等等等等🙂

创建最终用户需要使用的 Python 应用程序是很困难的。用户纠结于 Python 虚拟环境,让它们保持最新,Python 升级和编译 C 扩展。对我们来说,真正的生活救星是集装箱。我们提供了一个容器,其中包含正确的 Python 版本和为运行 Home Assistant 而调整的依赖项。我们有自己的车轮制造服务器,可以为我们支持的所有不同架构制造成千上万个车轮。我们使用 Alpine 作为我们容器中的基本操作系统,所以还不能使用 PyPI 上的轮子。

因为我们意识到即使运行容器对许多用户来说也太难了,所以我们开发了自己的操作系统。它是一个最小的 Linux 发行版,在一个容器中运行 Home Assistant。它允许用户现在通过 UI 中的一个按钮来更新家庭助手。如果更新失败,我们会自动回滚。

如今,你可以购买一个树莓 Pi 4 套件,下载家庭助理图像,你就可以拥有自己的智能家庭中枢,专注于本地控制和隐私。你所有的数据都在本地。全部免费。

你认为未来的家庭自动化会走向何方?

我喜欢从“智能家居”的角度来看待它。“家庭自动化”这个术语还不足以激发人们的想象力。例如,我们刚刚增加了能源管理,以帮助人们获得洞察力,节省能源和过渡到可持续能源。

有了家居助手,我们希望支持人们过自己的生活,而不是花时间在我们的产品上。它运行,它做你让它做的事情,它给你你需要的洞察力,这就足够了。

随着技术变得越来越先进,我预计它会越来越多地消失,并在后台提供帮助。

你还有什么想说的吗?

享受代码带来的乐趣!当人们想到代码或开源时,他们会立即想到这是为了给你的下一份工作增加简历。然而,还有很多其他的理由去做开源,最主要的一个理由是享受乐趣。做傻事。不要担心棉绒,测试或什么的。不要将工作或大项目流程应用到你的小项目中。

我如此热爱家庭助手的原因之一是,它让我能够创造出影响我周围世界的东西。日落时开灯有必要吗?不,但是它很方便,而且我很懒。我可以为我的孩子播放歌曲,而不是让他们自己用 NFC 卡播放吗?当然,但是孩子们喜欢看到他们的行为产生效果。这就是为什么他们总是想抢那个遥控器。让他们能够演奏歌曲让他们感到快乐。

谢谢你接受采访,保卢斯!

本周 PyDev:Pawe Piotr Przeradowski

原文:https://www.blog.pythonlibrary.org/2017/04/10/pydev-of-the-week-pawel-piotr-przeradowski/

本周,我们欢迎 Pawe Piotr Przeradowski(@ squeaky _ pl)成为我们本周的 PyDev!Pawel 是 Japronto 背后的创意头脑,这是一个基于 uvloop 和 picohttpparser 集成流水线 HTTP 服务器的 Python 3.5+ web 微框架。Pawel 在 Github 上还有一些其他有趣的项目。

让我们花一些时间来了解 Pawel!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我出生在波兰西北部的一个小镇,距离德国边境大约 60 公里。我很幸运,很早的时候家里就有一台电脑。了解事物在幕后是如何运作的,一直是我非常感兴趣的事情。8 岁的时候,我开始用 BASIC 语言做一些小程序。我通过修改家里的 Commodore 64 手册中的例子来学习编程。12 岁时,我们拥有了第一台个人电脑。我玩了一会儿 DOS 附带的 QBASIC,然后我决定我需要学习一些更严肃的东西。我买了第一本关于 C 的书,并在 13 岁时开始玩 Borland C++编译器。15 岁时,我决定学习 x86 汇编程序来编写自己的引导加载程序和原始的实模式操作系统。当我 16 岁的时候,我对 web 开发产生了兴趣,并学习了 PHP。19 岁时,我在大学开始学习计算机,但很快就厌倦了,在毫不费力地完成第一年的学业后,我找到了第一份工作,成为一名网页开发员,并决定不再继续学业。我也是在那个时候对 Python 感兴趣的,但是因为当时在波兰没有就业市场,所以它只限于我自己的私人项目。在做了两年程序员之后,我决定去荷兰,并在那里做一名网页开发员。大约 5 年前,我搬到了西班牙,从那以后,我一直生活在西班牙和巴西之间。在过去的几年里,我一直只做 Python 和 DevOps。

除了编程,我还喜欢学习自然语言,我对比较语法和词源有很大的热情。我能说很好的葡萄牙语和西班牙语。我主要用英语工作,当然我的母语是波兰语。目前我正在努力学习法语。我非常喜欢数码摄影,曾经拥有几台专业级相机。这些天我没有时间去利用它们,所以我把它们都卖了。我也喜欢旅游,通过接触当地人来了解文化。

你为什么开始使用 Python?
Python 的表现力和优雅同时令我惊叹不已。我曾经用低级编程语言工作过一段时间,然后我学习了 PHP 来做这项工作,但它有一个可怕的设计错误的过去。Python 的制作非常仔细,平衡了过程性、功能性和面向对象的特性,使得编程非常愉快。最近,它还获得了一种非常有吸引力的异步编程方式,同时不强迫您使用它。如今,Python 在世界范围内的许多领域得到了广泛应用,对于你的职业生涯来说,它也是一个安全的赌注。它也有一个充满活力和非常热情的社区。

你还知道哪些编程语言,你最喜欢哪一种?

当然 Python 是我的最爱。我也喜欢低级 C 和 x86 汇编程序。我曾经做过,现在仍然可以做 PHP,但是我绝对不会去做。我也有一些冒险经历。NET 和 C#还有 Windows 刚出现的时候。当 Android 发布时,为移动设备编程变得如此有趣,以至于我学习 Java 就是为了做这件事。因为我做了很多 DevOps 工作,所以我也很擅长 shell 脚本。是的,我们都做 SQL。

我真的对 Rust 很感兴趣,但对于大多数东西来说,Python 确实更适合。

你现在在做什么项目?

我有一个项目最近火了。它被称为 Japronto ,并且它正在努力实现快速优雅的 HTTP 服务器,与一个最小的 web 框架紧密集成。我现在正在做一个重大的重组,并做了大量的概念验证工作。我希望很快能有一个支持中间件的更好的路由器实现。然后我很可能会尝试攻击 web sockets 和 HTTP/2 植入。添加 synchronous、WSGI 和 gevent 工人也是我感兴趣的事情。之后我还想调查 gRPC。

我维护的另一个项目是 Portable PyPy binaries ,这是一种在许多 Linux 发行版上安装 PyPy Python 实现的方法,无需经历库之间 API/ABI 不兼容的痛苦。

哪些 Python 库是你最喜欢的(核心或第三方)?

我想这些天我离不开 ipython。它使得管理许多小片段和尝试事情变得轻而易举。我也是 pytest 测试框架的忠实粉丝,它可以让你去掉大部分你原本需要的锅炉板。CFFI 是集成 C 和 Python 的好方法,因为它可以自动解析典型的 C 头文件样式代码。我非常喜欢 Gevent,因为它以简单而强大的方式用 Python 进行异步编程。Asyncio 最近被集成到 Python 标准库中,这可能是一种前进的方式。我希望它能随着时间的推移变得更好,但在我看来,它可以更简单,缺乏良好的文档。

作为一门编程语言,你认为 Python 将何去何从?

如今,Python 变得越来越强大,我们正在正确的道路上保持 Python 的相关性。我们已经度过了“Python 3 破坏了我的代码”的难关,CPython 3 已经比 CPython 2.7 快了。在我看来,Python 实现的真正未来是 PyPy。我们最近收到了 PyPy 团队的 3.5 兼容版本,从我代表 PyPy 团队进行的基准测试中可以看出,它看起来很棒[https://morepypy . blogspot . com . es/2017/03/async-http-benchmarks-on-PyPy 3 . html]。PyPy 还改进了他们与 CPython 的兼容性,现在他们可以运行 NumPy 和 Pandas 代码。Python 一直是安全的赌注,它在科学、数据分析和人工智能领域保持指数增长。它肯定会继续成为一种伟大的粘合语言,将底层技术连接在一起。

非常感谢你接受采访!

本周 PyDev:Pedro Pregueiro

原文:https://www.blog.pythonlibrary.org/2021/10/11/pydev-of-the-week-pedro-pregueiro/

本周我们欢迎 Pedro Pregueiro(@ pedropregueiro)成为我们本周的 PyDev!佩德罗是一位企业家,他与人合伙创办了几家公司。他也是真实 Python 的作者和撰稿人。

如果你有时间,可以去看看佩德罗的网站。你也可以在 GitHub 上看到他在忙什么,或者在 LinkedIn 上与 Pedro 联系。

让我们花些时间更好地了解佩德罗!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

你好,我叫佩德罗!

我出生在葡萄牙的布拉加,我相信这是一个典型的开发者之旅。我获得了计算机科学学士学位,接着是语言工程硕士学位,但很快就放弃了硕士学位,开始在当地一家小公司工作。一年后,我搬到了里斯本,加入了一家咨询公司,并在一家大型电信公司工作。

很快,我厌倦了大公司的世界,决定与创业公司合作。我最终在一家伦敦公司工作,不久后搬到奥斯陆,然后回到里斯本。现在,我住在斯德哥尔摩。

在多家公司做了十年不同级别(初级、主管、首席技术官)的程序员后,我决定是时候创办自己的公司了。我搬到了斯德哥尔摩,加入了一个创业加速器,在那里我遇到了我的联合创始人,今天我正和他们一起制作一个背包。

在我的空闲时间,我会时不时地弹弹吉他,但主要是玩电子游戏来放松和娱乐。我也喜欢玩在线象棋,尤其是任务之间的子弹。

你为什么开始使用 Python?

我相信是偶然的。在强制性的无聊的 Java 顾问工作之后,我开始玩 Perl 和 Ruby (RoR)。

我非常喜欢 web 抓取、正则表达式以及诸如此类的东西,当时主要使用 Perl。此外,Perl 非常简洁地创建了简单的脚本来自动化枯燥的任务。另一方面,对于 web 内容,我使用的是 RoR,因为在那个时候用 Perl 做网页感觉有点疯狂。

然后,在一份新工作中,我开始更频繁地使用 Python。一开始,我用它来构建 API,但很快意识到使用 Django(以及后来的 Bottle 或 Flask ),我可以非常接近 RoR 的易用性,同时仍然使用一种我认为更广泛、更有能力的语言。

我不知道它是如何发生的,但在那之后不久,我就开始用 Python 构建一切,并爱上了它。简单,速度,潜力,太棒了。由于是创始人,我今天不怎么编码了,但是每次我需要做任何编码来自动化任务时,我都会选择 Python。

你还知道哪些编程语言,你最喜欢哪一种?

不确定我有最喜欢的。我最近一直在使用 JS,尽管我不是它的狂热爱好者,但我认为它在过去几年里确实已经成熟了很多,并且有了正确的框架,我认为它是一种今天使用起来非常愉快的语言。

我在大学时研究过 Haskell,现在仍然偶尔涉猎一下。每次我听说有一家初创公司在他们的堆栈上使用 Haskell,我就想,作为一名专业人士而不是业余爱好者,加入他们并尝试在我的日常生活中使用它该有多酷。

你现在在做什么项目?

现在我不怎么编码了。我在自己的公司工作,除了一些自动化脚本和少量的 JS 工作,我大部分时间都花在客户支持、运营和任何给定周的新工作上。

哪些 Python 库是你最喜欢的(核心或第三方)?

我是收藏核心图书馆的忠实粉丝。过去我的一位经理向我展示了如何使用默认字典,从那以后我就喜欢上了它,并且经常使用它。

我也经常使用请求,因为我做的一些工作需要与不同的 API 进行大量集成。我也经常使用箭头,尽管我觉得我应该尝试一种更新、更酷的替代品。

你是如何开始接触真正的 Python 的?

在我听说真正的 Python 之前,我已经跟随 Dan Bader 好几年了。我真的很喜欢他的 python tips 简讯,总觉得他真的很擅长把事情总结成简单易懂的点滴。

随着 Real Python 变得越来越大,我开始发现自己越来越经常地阅读他们的文章。我清楚地记得读过日志pep8 的文章,觉得它们棒极了。我开始一直和我的团队分享 RP 的文章,总觉得他们写得那么好,那么透彻。

在某个时候,我是自由职业者,做我自己的兼职项目,而且,由于我比平时有更多的空闲时间,我决定是时候回报社区了。我给 RP 写了一份申请,说我从来没有成为一名技术作家,我甚至不知道我是否有能力做这件事,甚至不知道我是否擅长这件事,但我真的想回报,如果可能的话,为 RP 写作。

我得到了一篇文章作为试验品,故事就是这样开始的🙂

我看到你们共同创立了几家公司。你对那些想自己创业的人有什么建议吗?

我能想到的建议有很多,但也许最重要的是去做(对不起耐克)。如果你有一个想法或项目,你已经想做一段时间了,那就去做吧,从小处着手,做一些能让你的生活或其他人的生活更轻松的事情。

开始后,我的第二个最重要的建议是启动它🙂无论你决定建造(或正在建造)什么,把它放在人们面前。作为一名开发人员,我认为构建越来越多的东西,增加范围,更多的功能,并延迟实际启动和把东西放在用户面前的过程有时太容易了。我自己也犯过几次这样的错误,最终得到了一堆没有人使用的死项目。

因此,简而言之,如果你有一个要做的东西的想法,b 建立它并尽快启动它。不管多小或多简单。

旁注:如果你正在做一个副业项目或小公司,想要一些想法或需要一些帮助,请随时联系我们。我总是很乐意帮助一个开发伙伴成为创始人。

本周 PyDev:彼得·鲍姆加特纳

原文:https://www.blog.pythonlibrary.org/2022/04/11/pydev-of-the-week-peter-baumgartner/

本周我们欢迎彼得·鲍姆加特纳( @pmbaumgartner )成为我们本周的 PyDev!彼得也是的 Python 博客作者,他写了一些关于 Python 和数据科学的文章。彼得还收集了一些有趣的 Jupyter 笔记本,你可以从中学习。你可以在 GitHub上看到 Peter 正在做的项目。

让我们花一些时间来更好地了解 Peter!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我目前是的机器学习工程师。在此之前,我在一家名为 RTI International 的非营利研究机构工作,当我开始使用 python 研究数据科学时,我在德勤工作。我在北卡罗来纳州立大学高级分析研究所获得了分析硕士学位。在那之前,我是一名高中数学老师。

我的主要爱好是跑步和用绘图仪创作艺术。每个周末,我都试着参加由 Parkrun 举办的当地定时 5 公里跑,这是一个非常酷的组织,我鼓励任何能力的跑步者参加。笔式绘图仪基本上是一个你编程绘制的机器人——我去年买了一个,并把我的大部分工作发布到 twitter

这些天来,我没有太多的时间从事业余爱好,因为我的大部分空闲时间都花在了帮助抚养我现在 1 岁的儿子克拉克上。他是一个非常有趣、喜欢冒险的孩子,现在他可以移动了,正在享受探索世界的乐趣。

你为什么开始使用 Python?

完成硕士学位后,我在当地一家营销公司做一些合同工作。我的硕士项目用 SAS 编程语言教会了我们一切,但是 SAS 很贵,而且在我看来用它编程很痛苦,所以对于这个合同工作,我们决定使用 python。这是一次真正的尝试,因为我必须学习 python,并为客户提供有用的分析。最后,它成功了,因为它让我意识到编程其实可以很有趣,而不总是一场斗争。从那时起,我就一直是 python 的主要用户。

你还知道哪些编程语言,你最喜欢哪一种?

我学的第一门语言是 Visual Basic——我在高中时上过一门计算机科学课,这门课真的让我大开眼界,让我了解到你可以在编程中做一些很酷的事情。在大学里,我也学习了一门使用 C++的计算机科学课程,但是我完全不记得那些知识了。我在读硕士期间也学了一点 SAS 和 R。

专业做编程以来,我学的最多的语言 Julia,是我最喜欢的非 python 语言。我喜欢它的一点是,从 python 开始学习很容易,我认为这非常重要。我以前尝试过学习 Rust,但是语法和概念太不同了,对我来说太难了。与 Julia 一起,它让我认识到思考和解决问题有不同的方式,我可以从概念上把我学到的东西应用到我如何开发 python 程序上。这也迫使我增加了一些我从未学过的计算机科学基础知识。

总的来说,我鼓励每个人学习第二种编程语言,但可能是一种在语法上接近他们母语的语言。在用 python 编程了大约 5 年之后,学习另一种语言对我来说真的很有帮助,仅仅是为了接触一种编程语言如何工作的替代方式。

你现在在做什么项目?

在 Explosion,我们刚刚推出了名为 spaCy Tailored Pipelines 的咨询服务,这将带来一些非常有趣的应用自然语言处理项目。除此之外,我花了很多时间回顾人们如何使用我们的产品,并通过更新文档、添加示例或创建新的开源库来完善我们的工具。例如,我最近开发的一个组件简单地计算了人们通过空间管道传递文本时看到的标记。我开始着手这项工作,因为我注意到很多人都在请求这项功能,他们对这项功能在 spaCy 中应该如何工作感到困惑。另一个例子是从 HTML 解析文本的组件。人们经常会从抓取的网页中获取数据,并希望对其进行自然语言处理,但如果他们只是从 HTML 中获取原始文本,他们就会忽略文档的结构,这可能会对下游产生一些负面影响。

哪些 Python 库是你最喜欢的(核心或第三方)?

我认为这是最难回答的问题,因为有太多好的问题了。

核心:

  • collections - I use Counter and defaultdict all the time.
  • itertools - chain is awesome, groupby is great for data, and I've used combinations for work and plotter art
  • pathlib - So much of my work for applied projects deals with paths that I'd be totally lost without pathlib.
  • tempfile - Sometimes I work with libraries that have APIs that require persisting to disk when I'd rather pass a buffer. tempfile makes it super easy to work with these in a clean way.

第三方:有我几乎每天都用的:pandasspaCyumap-learnaltairtqdmpytestblacknumpy都很神奇。

Then there are some libraries that I love and use in specific circumstances, like typerrichquestionary for CLI tools. poetry for packaging. streamlit for making simple apps. numba for faster array operations. sentence-transformers for NLP when sentences are involved. loguru for logging. shapely and vsketch for anything with my plotter.

How did you decide to write a Python blog?

I've had a blog for a long time but until recently I was publishing on it less than I was happy with. Recently I've been trying to reframe my writing process by recognizing that blog posts don't have to be perfect. I read a lot about good writing, and read a lot of good technical writing, and often times that puts so many constraints in my head when writing something that I never end up finishing anything. The practices for good writing would be useful if I was writing something more formal, like a book, but for my personal blog I give myself permission to not think about that stuff too much.

Where do you get your ideas from when it comes to writing articles?

Almost all of my articles are documenting things that I've recently learned. I try to think of writing a blog post as steps in the Feynman technique of learning. I used to be a teacher, so I also try and be cognizant of the Curse of Knowledge and write things down as I'm learning them, rather than after I'm done learning, then reorganize those original thoughts in the way that I think about something after I've learned it.

Is there anything else you’d like to say?

Support the developers and organizations that help make the python ecosystem great!

Thanks for doing the interview, Peter!

本周 PyDev:彼得·法雷尔

原文:https://www.blog.pythonlibrary.org/2019/09/23/pydev-of-the-week-peter-farrell/

本周我们欢迎 Peter Farrell(@ hacking math)成为我们的本周 PyDev!彼得是《T2 与 Python 的数学历险记》和另外两本与数学相关的 Python 书籍的作者。你可以通过访问彼得的网站来了解他的更多信息。

让我们花点时间来了解一下 Peter!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我在美国长大,获得了数学学士学位,在大大小小的学校教了 8 年数学。我总是想向学生展示他们所学的东西在现实世界中的应用,所有这些都与计算机有关。我在 30 多岁的时候,通过一页一页地阅读塞缪尔·帕普特的杰出著作《思维风暴》,学会了用 Logo 编程。从那以后,我在所有的数学课上教海龟编程。一个学生让我迷上了 Python,我再也没有回头。除了电脑,我喜欢弹吉他和看纪录片。

你是如何结束写一本关于 Python 的书的?

我正在一对一地给一个学过 Python 的技术学生教授高中数学。除了优秀的传统书籍之外,我还给他布置了编程挑战,让他自动完成本周材料中出现的任何重复性任务,比如寻找抛物线的顶点或三角形的质心。最终我把探索收集在一起写成了一本书,并在 2015 年用 Python 自助出版了《黑客数学课》。这让我受到了无淀粉出版社的关注,我们在下一个层次上工作了两年,用 Python 和 Processing 进一步深入了传统和现代的超级数学探索。《Python 数学历险记》今年 1 月刚刚出版。

写这本书时有哪些挑战,你是如何克服的?

在写作和编辑这本书的时候,我有一份全职工作和一份兼职工作,所以我没有太多时间做其他事情。我会向出版商发送一章,然后立即收到一封电子邮件,其中包含不同章节的一些编辑内容!但是一遍又一遍地阅读材料,无数次地研究代码,使它成为一本好得多的书。

你能给有抱负的作者一些建议吗?

如果你对你的主题充满热情,只要把它说出来,就会有人对它做出回应。没有什么比最终在书店里看到你的书,或者读到一个完全陌生的人发的推文或帖子,说他们喜欢你的作品更好的了。

你还知道其他编程语言吗?

我对 Python 的了解还不够,但是我已经在处理其他模式方面做了相当多的生成艺术,比如 Java 和 Javascript,因为我认为我的只是第二本关于使用 Python 模式进行处理的书。感谢我的朋友 Paddy Gaunt,他也是我这本书的技术编辑。出色的音乐编码包 Sonic Pi 向我介绍了 Ruby。

你现在在做什么项目?

我仍然是在教育中使用 Python 的福音传播者,所以我一直在联系教师和校长,让他们对我在数学和其他 STEM 课程中应用 Python 进行一些专业开发。不能说我在这方面已经取得了很大进展,但这还为时尚早。

你还有什么想说的吗?

创造计算机和计算机编程语言的天才让我惊叹。同样的语言可以在早上用来创建一个 web 应用程序,在下午用来创建一个很酷的艺术品,这是一件非常迷人的事情。事实上,这些工具中有许多是免费的,这也令人震惊,令人遗憾的是,它们在很大程度上被支持标准化测试的公共教育所忽视。我正在一点一点地努力改变这种状况!

彼得,谢谢你接受采访!

本周 PyDev:Petr Viktorin

原文:https://www.blog.pythonlibrary.org/2017/02/20/pydev-of-the-week-petr-viktorin/

本周我们的 PyDev 是 Petr Viktorin ( @EnCuKou )。Petr 是 PEP 489 -多阶段扩展模块初始化的作者,并在捷克共和国为当地的 PyLadies 教授 Python。你可以通过他的 Github 页面或他的网站了解他的一些动向。让我们花些时间来更好地了解切赫!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

当然可以!

我是来自捷克布尔诺的 Python 程序员。我在布尔诺科技大学学习,为了我的硕士学位,我转到了东芬兰大学。

当我不编程的时候,我喜欢和我的朋友一起玩棋盘游戏,有时去参加定向越野比赛(不太成功)。

你为什么开始使用 Python?

在大学里,我学习了 C、Java 和 Lisp 等语言的课程,但后来我发现了 Python 并迷上了它。它符合我思考程序的方式,抽象出了大部分无聊的东西,并使代码易于理解。

当我从大学回到家后,我发现一个围绕这门语言的社区正在形成,这可能是让我现在围绕这门语言的原因。

你还知道哪些编程语言,你最喜欢哪一种?

由于我经常使用 CPython,所以我用 C 语言编写代码,或者至少我经常阅读 C 语言。我要说 C 是我的最爱,仅次于 Python 它们很好地互补了..我也可以用 JavaScript 拼凑一些东西。和 C++、Java 或 PHP,尽管我再也找不到用这些语言编码的理由了。自从我毕业后,很遗憾我没有花太多时间去学习新的语言。有一天,我想更认真地探索 Rust,但我还没有找到一个好的项目来开始这个项目。

你现在在做什么项目?

我在红帽工作,我们团队的主要工作是为 Fedora 和 RHEL 打包 Python。我们的任务是确保所有的东西都能很好地协同工作,所以当我们成功的时候,工作的结果是看不见的。

我的另一个项目是教 Python。几年前,在没有太多教学经验的情况下,我为当地的皮拉第人开设了一门初级 Python 课程。我花了很多时间把内容放到网上,让每个人都可以接触到,这些年来,又有两个城市开始接触这些内容,有时我发现人们在家也能学习这些课程。现在人们正在完善这个课程,甚至在它的基础上建立新的工作室和其他课程。像任何开源项目一样,它需要一些维护,我很幸运能够花一些时间来教授、协调和改进捷克 Python 教材。

当我有空的时候,我会做一些疯狂的兼职项目,比如极简的 3D 打印微型游戏机。

哪些 Python 库是你最喜欢的(核心或第三方)?

我敢肯定这些采访中会出现这样的要求:这是一个图书馆应该如何设计的很好的例子。

我也喜欢皮格莱特图书馆。这是一种在屏幕上绘制图形的简单方法,我也用它向人们介绍事件驱动编程。

作为一门编程语言,你认为 Python 将何去何从?
严格来说作为一门语言,我不认为 Python 会进化太多。这已经是一个很好的构造代码和表达算法的方法了。当然会有改进——特别是异步部分相当新,仍然有一些粗糙的角落——但我对任何革命性的增加持怀疑态度。

我认为大部分改进将来自 CPython 的实现,而不是语言本身。我对像 Pyjion 和 like 切除术这样的项目充满希望。我也参与了类似的工作,让 CPython 的子解释器更有用。遗憾的是,它目前被搁置了,但是也许我可以把它作为一个学生项目来指导。

你对当前的 Python 程序员市场有什么看法?

当我毕业时,我不知道我可以用 Python 找到一份工作。但事实证明,对 Python 程序员的需求总是存在的。我一直看到用 Python 开始的新项目。看起来需求并没有消失。

你还有什么想说的吗?

如果你去捷克共和国,看看http://pyvo.cz/en并参加我们的聚会!

非常感谢你接受采访!

本周的 PyDev:Philip Guo

原文:https://www.blog.pythonlibrary.org/2018/10/22/pydev-of-the-week-philip-guo/

这一周,我们欢迎菲利普·郭(@ pg boyne)成为我们本周的 PyDev!Philip 是广受欢迎的 Python 导师网站的创建者,也是加州大学圣地亚哥分校认知科学和计算机科学系的教授。让我们花些时间来了解菲利普吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是加州大学圣地亚哥分校认知科学和计算机科学的助理教授。我的研究和教学围绕着这样一个主题,即如何极大地扩大世界各地能够学习编程技能的人口。有很多优秀的人致力于培养下一代软件开发人员,但我也对我们如何将编程应用到其他许多领域感兴趣,包括物理科学、社会科学、设计、艺术和人文科学。在我的正常工作之外,我曾经在我的网站上写了很多文章,但最近我一直试图在业余时间远离电脑,所以我转向记录视频博客、播客和其他不需要我粘在电脑上的音频/视频内容。

你为什么开始使用 Python?

哇,这让我想起了很久以前...我在 2004 年左右开始使用 Python(我相信当时是 Python 2.2 或 2.4)编写小程序来组织我的个人照片集,并为我的网站创建静态照片库。那时候我们还没有一个专门的术语,但是现在我想人们称之为“静态站点生成器”——意思是你可以离线编写脚本来预处理和组织你的内容,然后生成合适的 HTML 页面。这些 HTML 页面可以上传(通过传统的 FTP)到网络服务器,然后在网上可见。静态站点生成器的好处(尤其是在那个年代)是你可以在任何地方托管你的网站,因为它只是一堆 HTML 和图像文件;服务器不需要支持任何类型的脚本。Python 让我爱上了编程,因为我第一次可以编写代码来做一些对我来说有形且立即有用的事情。在此之前,我认为代码要么是我在课堂上学到的学术科目,要么是我在工作中使用的工具。

你还知道哪些编程语言,你最喜欢哪一种?

除了 Python 之外,我可能对 JavaScript 知之甚少,因为我的大部分日常编程工作都是构建 web 应用程序,这需要 JavaScript 作为前端。我做 JavaScript 的时间比 Python 长,大约从 1997 年开始,但那是从书本上简单的复制粘贴。实际上,我并不明白 20 多年前我复制到我的第一个网站上的愚蠢的 JavaScript 动画代码是怎么回事(哇,时间过得真快!).在过去的 20 年里,我一直在持续跟踪 JavaScript 生态系统的发展,我对它既感到兴奋又感到恐惧。

我在理论上也非常了解 C 语言,但在实践中,我在过去的十年里并没有太多地使用它。过去,我曾经为我的软件分析研究编写了大量的低级源代码和二进制代码操作工具,所以我不得不与 C 和 Linux 世界的内部结构作斗争,这超出了我的记忆范围。我认为对人们来说,至少对 C 及其编译器工具链生态系统(无论是在 Windows 还是类 UNIX 系统上)有一个相当好的理解是非常重要的,因为许多高级编程语言都是用 C 实现的。

我会说 Python 是我的最爱,因为我正在做这个采访🙂但实际上,我尽量不要对特定的编程语言过于教条。就大多数任务而言,我会选择 Python,因为我最了解它。

本文是我学习编程历史的回顾:http://pgbovine.net/how-i-learned-programming.htm

你现在在做什么项目?

现在,我每次管理一个由 4 到 6 名研究生组成的研究小组,这个问题的真正答案是:我的学生正在研究的东西,加上我的外部合作者正在研究的东西的联合。我现在主要是在养猫。

如果我必须总结我们共同努力的事情,我会说:研究和建立可扩展的方法来帮助人们学习计算机编程和数据科学。我知道这不是一个令人满意的答案,所以请查看我的出版物页面了解详情。它显示了我们过去所有项目的产出,以及补充资源和各种摘要:http://pgbovine.net/publications.htm

除了为研究项目提供建议,我还努力挤出时间继续从事 Python 导师的工作,这可能是 Python 社区中大多数人对我的了解。简而言之,它是一个基于网络的工具,帮助人们克服学习编程的一个基本障碍:理解计算机运行每一行代码时会发生什么。使用 Python Tutor,您可以在 web 浏览器中编写代码,看到它一步一步地可视化,并获得志愿者的实时帮助。到目前为止,超过 180 个国家的超过 350 万人已经使用 Python Tutor 可视化了超过 5000 万段代码,通常作为教科书、讲座和在线教程的补充。最后,尽管它的名字叫 Pythonic,但它实际上支持其他五种流行的语言:Java、JavaScript、Ruby、C 和 C++。

哪些 Python 库是你最喜欢的(核心或第三方)?

这个我没想太多。这个问题的一个元答案是安装 Anaconda,它可以在您的机器上提供大量流行的第三方库,而无需经历安装依赖项的巨大痛苦(尤其是在 Windows 上)。另一个元答案是我应该解析我所有的旧 Python 代码(使用 ast 模块!),然后制作一个我导入的所有模块的图表,看看我使用每个模块的频率。

仔细想想,也许我会说是标准库中的 bdb 模块

我不会说这是我的“最爱”,就像“哇,我太喜欢 bdb 了!”相反,它是 Python Tutor 的重要部分,因为这使我能够挂钩代码执行的每一步,以可视化其运行时状态。没有 bdb,就没有 Python 导师。所以我想这是我最喜欢的,因为它让我创建了迄今为止最受欢迎的项目。所以是的,bdb 万岁!

你还有什么想说的吗?

远离电脑可以让你的智商提高 50 分(科学证明...好吧,也许不是)。尤其是在写代码的时候,你很容易固执地对一个 bug 或特性反复推敲,因为你认为下一次运行就是正确的,然后你会越来越累。说真的,只要离开电脑一会儿;散散步,去做些运动,在手机上看些无聊的 YouTube 视频,出去跑跑腿。我保证,当你精神焕发地回来时,你会突然清楚地看到你的编码问题的解决方案,以至于你不能相信你以前没有看到它。

另外,与此相关的是,正如我前面提到的,我一直在努力减少我不工作时使用电脑的时间。当我把电脑纯粹与工作联系在一起时,我已经快乐和放松了很多,当我不工作时,我不会靠近它。(我的手机还在,可以浏览网页,看 YouTube 等。,所以并不是说我完全没有联系。)

本周 PyDev:菲利普·豪斯

原文:https://www.blog.pythonlibrary.org/2016/12/26/pydev-of-the-week-philip-house/

本周我们欢迎菲利普·豪斯( @PhilipHouse2 )成为我们的本周 PyDev!Philip 是 PEP 526 -变量注释语法的作者之一,该语法被暂时纳入 Python 3.6。Philip 还写了一个博客,并且参与了几个第三方 Python 包的开发,你可以在 Github 上查看。让我们花些时间更好地了解他。

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我于 2015 年毕业于西北大学,在那里我攻读了计算机科学学位。在那里的时候,我主要对学习 web 和分布式计算是如何工作的感兴趣。我在大学期间最喜欢的工作是研究和构建众包和社交计算系统。我对 learnersourcing 特别好奇——和一群积极的学习者一起解决问题。

通过大学期间的实习和个人项目,我积累了构建 web 应用程序和数据密集型项目的经验。毕业后,我成为了一名平台软件工程师,在那里我混合使用 Python 和 Java 构建 API 和高度可用的分布式服务。

我目前正和一些以前的同学在工业物联网领域创业。

当我不坐在电脑前时,我真的很喜欢和朋友一起露营,玩老派的 Gamecube 游戏。

你为什么开始使用 Python?

当我和我的朋友找到 Python 2.7 的初级读本时,我第一次开始使用 Python。我从头到尾读了一遍,但由于我对 PHP 的了解有限,有一段时间没有用到这些知识。当我想在大学构建更复杂的 web 应用程序时,我再次开始使用 Python。我在 Github 上发现了 Flask,并致力于在接下来的几个项目中使用 Flask,同时也了解到 Python 作为一种服务器端脚本语言是多么强大。

你还知道哪些编程语言,你最喜欢哪一种?

我在一次实习中开始学习 Java,当时我在一个非常大的代码库中工作,学到了一些真正的元 Java。Java 是我第一次真正体验编译语言,我非常喜欢它静态类型化的优势。如果我正在处理一个大型的应用程序,我最有可能选择 Java 作为我的首选语言。话虽如此,Python 最近发生的事情正在改变我的看法。最近 golang 也引起了我的一些兴趣。

你现在在做什么项目?

目前我正在做两个小项目,都是 Python 3。第一个是专业超级粉碎兄弟电路的一些数据分析和存储。我正在做一些手工工作,记录游戏的统计数据,编写脚本和分析方法,以得出有趣的趋势和数字。

我的第二个项目和个人理财有关。我正在开发一个小型的会计工具,它可以很好地与谷歌电子表格集成,帮助我了解我的钱到底去了哪里。

除此之外,我写博客,记录我此刻正在学习的任何东西,并努力帮助完成排版项目。

哪些 Python 库是你最喜欢的(核心或第三方)?

目前我是 mypy排版的超级粉丝。大约 7 个月前,我的一个老同事给了我这个工具,从那以后我就迷上了它。使用 mypy 和 typeshed 允许您向 Python 代码添加可选的静态类型。它有助于减少错误,增加可读性,并且总体上使 Python 中的编码更好一点。最棒的是,它是可选的,所以你可以在最有意义的地方使用它。怎么用都不够推荐。

你还有什么想说的吗?

感谢 O'Reilly 和所有出版技术书籍的出版商,他们教会了我如何编码,感谢你们邀请我来这里!

感谢您接受采访!

本周 PyDev:菲利普·詹姆斯

原文:https://www.blog.pythonlibrary.org/2020/07/06/pydev-of-the-week-philip-james/

本周,我们欢迎菲利普·詹姆斯(@菲尔迪尼)成为我们本周的 PyDev!Philip 是 Beeware 项目的核心贡献者。他还参与了其他几个开源项目,你将在这次采访中了解到。他在 PyCons 和 DjangoCons 也是一个受欢迎的演讲者。你可以在菲利普的网站上找到更多关于他的信息,或者在 Github 上查看他的作品。

让我们花些时间更好地了解菲利普吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我的名字是菲利普,但我可能在互联网上更为人所知的是菲尔迪尼。这个绰号来自一个艺名;我以前在高中表演魔术赚零花钱。在 Python 社区,我最出名的可能是作为一个频繁的会议演讲者,在过去的 5 年里,我在世界各地的 PyCons 和 DjangoCons 演讲。除了作为一名演讲者,我还帮助组织了一些 Python 聚会和会议,并且作为主席在 PSF 行为工作组中服务。我也是 BeeWare 项目的早期核心贡献者之一。

我是一家名为 Trim 的个人金融公司的工程主管,在那里我们试图让人们在互联网账单等事情上自动省钱。我还和我在帕特里翁认识的一个朋友合作经营一家名为银河大脑的出版公司和印刷店。我们最初是一家 Risograph 印刷店,制作一本名为成人果汁盒的葡萄酒杂志,并做艺术印刷。银河大脑已经进入疫情软件,因为进入我们的工作室更难,但我们计划在事情平静下来后继续印刷。对我们来说,这有点滑稽,因为我们是事后才进入软件行业的;我想我们都抵制它很久了,因为软件是我们的日常工作。

你为什么开始使用 Python?

我还记得 1998 年在圣克鲁斯山区帮助经营一个青年务虚会...我想说是 2005 年或 2006 年,旅行中的一个成年人,他仍然是我的好朋友,在一台电脑上向我展示 Python,我们把它连接到了营地的一个投影仪上。我的第一堂 Python 课发生在一个 6 英尺宽的屏幕上。然后在大学,我选了几门关于网络应用的课程,不想用 PHP,所以我开始用 Django 开发应用。这让我得到了第一份编程工作,然后在 Eventbrite 找到了一份工作,这让我开始演讲,剩下的就是历史了。

你还知道哪些编程语言,你最喜欢哪一种?

大学理论上教会了我 C 和 Java,但我知道它们就像一些人知道古希腊语一样——我能读懂它,但祝你好运说它。大学快结束的时候,我学了一些 C#,我真的很享受在这门语言中的时光。它在直接管理和面向对象的现代语言之间达成了许多很好的妥协,我认为这在很大程度上与 Visual Studio 是如此不可思议的 IDE 这一事实有关。

自从我进入 web 编程领域以来,我已经学会了 Javascript 和 Ruby,足以让我用它们写东西,但还不足以让我觉得用它们开始一个项目很舒服。Web 开发现在正处于一个非常奇怪的地方,在这里你可能只需要了解 Javascript 就可以了,但是你需要对 HTML、CSS、Javascript、Python、Ruby 和 Shell 非常熟悉,才能在高水平上有效。也许你只需要善于谷歌这些东西。

我最近开始深入研究一种叫做 ink 的语言,这是一种用于编写互动小说游戏的语言。我们过去更多地使用“有文化的编程”这个术语;墨水(连同 twine 和其他一些)是你如何“规划文学”。您可以使用 ink 制作独立游戏,或者将其导出为一种格式,以便在更复杂的 Unity 游戏中驱动叙事事件。程序员认为故事和叙述不太适合模块化,所以当我学习墨迹时,看着我优化一切的程序员大脑和我写出叙述的作家大脑发生冲突是很有趣的。

你现在在做什么项目?

诀窍是让我停止做项目。现在有我的日常工作,以及一系列银河大脑项目。 VictoryPic 是一款小 slack 应用,为 Slack 带来类似 Instagram 的体验。 Hello Caller 是一个做播客电话节目的工具。我放了一些脚本,用 raspberry pi 和 CircuitPlayground Express 为我的办公室构建一个“直播”监视器。我正在为游戏商店 itch 编写一个刮库,这样我就可以做一些有趣的视频游戏流项目。所有这些大部分都是用 Python 写的,然后是用墨水写的互动小说游戏,我正在为 Galaxy Brain 的葡萄酒杂志工作。

我还继续为成人果汁盒写稿,并经营一个名为思想&追逐者的播客

哪些 Python 库是你最喜欢的(核心或第三方)?

我认为标准库中的 CSV 和 sqlite 库是 Python 自带的两个最重要的电池,在核心语言之外。有了这两个库,你可以构建比我见过的任何其他语言都更深入的数据驱动应用。在 stdlib 之外, requests 是我开始一个项目时接触的第一个库, Django 是我如何构建上面列出的大多数项目的。Django 是我见过的用任何语言构建 web 应用程序的最强大的抽象集。

你是如何参与到 Beeware 项目中的?

我涉足 Beeware 是因为我的演讲生涯。几年前,我被邀请到布达佩斯的 DjangoCon Europe 做演讲,并见到了养蜂人的创造者拉塞尔·基思·麦咭博士,以及最初的核心撰稿人之一凯蒂·麦克劳克林。我们在那里开始聊起了 Beeware,我在 sprints 上对它进行了一点黑客攻击,然后我在费城的 DjangoCon US 上看到了它们,然后又在波特兰的 PyCon US 上看到了它们,在那段时间里我一直在研究 Beeware,并在 sprints 上为这些赛事工作。在 PyCon,我得到了承诺,成为了核心贡献者。

我从这个故事中学到的东西,我告诉其他想要参与的人,有两个方面:(1)尽早并经常在会议上发表演讲。成为一名会议发言人对你的职业生涯可能有好处,也可能没有好处,但它对你的社区意识和你在你关心的技术社区中的朋友圈来说是不可思议的。(2)露面。持之以恒,定期提供帮助,努力减轻你所关心的人和项目的负担,这些都有不可估量的力量。你重视的人反过来也重视那些出现的人,即使他们不能表达出来。

你最喜欢哪个蜂产品包?

公文包感觉像是作弊,但我真的觉得公文包是整个项目最有趣的部分,因为它在解决 Python 的生态系统和包管理问题上是最接近的。我们不应该教人们 pip 是什么,让他们从 Python 能做的事情中受益。

你还有什么想说的吗?

我认为对我们这些编程的人来说,重要的是要记住我们的社区并不像我们想象的那样孤立;我们存在于这个世界上,这个世界给了我们很多人很多。我们需要思考如何回馈社会,不仅仅是科技社区,而是整个世界。编程可以是一种正义的力量,但有时当我们出现在当地的抗议活动或市议会会议上时,最大的差异就产生了。

菲利普,谢谢你接受采访!

本周 PyDev:菲利普·鲁迪格

原文:https://www.blog.pythonlibrary.org/2021/07/26/pydev-of-the-week-philipp-rudiger/

本周我们欢迎 Philipp Rudiger(@ Philipp jfr)成为我们本周的 PyDev!菲利普是面板全息视图地理视图的创建者。

如果你对菲利普工作的代码感兴趣,那么你应该看看他的 GitHub 简介。让我们花些时间更好地了解菲利普!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

嗨,我是菲利普!我在柏林长大,但在英国学习和工作了 13 年,直到最近才回到我的家乡。现在,我是 Anaconda 的一名软件开发人员,从事开源项目,并为各种客户提供咨询服务。最初我想进入音乐领域,学习电子工程和音乐制作,但很快意识到我没有音乐天赋(这是一种强烈的保守说法)。因此,在为我的本科论文建立了一个由神经网络驱动的两足人形运动模型后,我决定攻读计算神经科学的博士学位。

我们在我的研究小组中研究的大脑视觉系统的发展模型非常复杂,与今天的深度(和循环)深度学习网络有许多相似之处,但与生物学有更强的联系。为了有希望理解这些模型,这些模型在多个时间尺度上进化和发展,有大量的超参数要调整和探索,我从生成 1000 页的 pdf 总结我的模型运行到构建开源工具来探索这些高维参数空间。这就是我和我的博士同事开发 HoloViews 的方式(和原因)。那个项目很快就占用了我几乎所有的时间,科学的未来似乎很不确定,这促使我在开始写博士论文时申请并在 Anaconda 找到了一份工作。

从那以后,我们一直在构建大量开源工具,以使数据的可视化探索以及在 HoloViz 保护伞下构建和共享应用程序/仪表板的能力变得更加容易。因此,我花了很多时间维护、创作和贡献一些库,比如 Panel、hvPlot、HoloViews、Datashader 和 Bokeh。我不得不重新学习从这些项目中抽出时间,所以最近我一直在享受整理我们的小花园、骑自行车、打篮球和长途散步的时光。

你为什么开始使用 Python?

在我攻读计算神经科学的联合硕士和博士课程期间,我们经常被分配 Matlab 项目,我接触的大多数实验室也被锁定在昂贵的 Matlab 许可证上。然而,向 Python 形式的开源替代方案的过渡已经开始,我跳上了这股潮流,为我的理学硕士论文进行了广泛的分析。当我加入 James Bednar 的研究小组时,我们都在合作一个名为 Topographica 的神经模拟器,它是用 Python 编写的,将高性能 C 代码与像 Python 这样的高级语言进行接口的能力让我着迷。从那时起,我开始开发自己的开源工具,并且从未回头。

你还知道哪些编程语言,你最喜欢哪一种?

我的编程之旅是从 C、C++和 VHDL 开始的,在嵌入式系统上工作是我本科计划的一部分。那些日子已经过去了,这些天我大部分时间都在用 Python 与 JavaScript/TypeScript 接口。虽然我不能让自己宣称 JavaScript 是我“最喜欢的”编程语言,但是 JS 和 TypeScript 世界已经有了很大的进步,大多数时候我都很乐意同时使用 Python 和 TypeScript。希望我能够把我第二喜欢的编程语言的桂冠交给 Rust,但是我只是最近才开始钻研它,还没有下定决心。

你现在在做什么项目?

作为多个库的维护者,我的日子经常感觉像打地鼠一样从一个项目跳到另一个项目,试图将积压的问题保持在可接受的水平。最近我大部分时间都花在了面板上,现在我正在为一个包含大量令人兴奋的特性的 0.12.0 版本做准备。如果您不熟悉这个项目,它旨在提供从笔记本或脚本中的探索性分析到您可以部署并与世界共享的应用程序或仪表板的无缝过渡。此外,我在过去的几个月里一直在启动一个名为 Lumen 的新项目,该项目在 Panel 之上提供了一个层,让您可以使用声明式(YAML)规范构建以数据为中心的仪表板,并希望在未来几周或几个月内正式宣布。

哪些 Python 库是你最喜欢的(核心或第三方)?

我认为在 Python 生态系统中仍然没有得到足够喜爱的库是 xarray(尽管这种情况正在改变)。您可以将 xarray 想象成 nd-array 数据的熊猫,也就是说,它提供了向多维数组添加标签和语义索引的能力。如果在我开始攻读博士学位的时候就有这种想法,我可能永远也不会去创建自己的开源项目。

你参与的哪个开源项目是你最喜欢做的,为什么?

很难回答的问题!我参与的不同项目带来了非常不同的挑战,所以我将我的答案分成几部分:

  1. Datashader 是一个非常强大的库,可以快速可视化非常大的数据集。我真的很享受使用 Numba、Dask 和 RAPIDSAI 栈来优化代码以充分发挥机器性能的挑战。

  2. Panel 是第一个让我真正感到自豪的库,我有机会在几个月的时间里从头开始设计它。在一个项目中工作是一种巨大的快乐,在这个项目中,你为自己投入的大部分架构和 API 设计工作感到自豪。

作为一名开源开发者,你学到了什么?

当你看到人们能够用你的工具构建什么时,在开源领域工作是非常值得的。与此同时,需要付出的努力往往是巨大的。我很幸运地为我的主要工作做出了贡献,但是找到一个平衡点仍然是一个棘手的问题。有一件事我肯定还在学习,而且你很少被教导,那就是 OSS 非技术方面的重要性。比如培育社区、指导和营销你的项目,这些都是我仍在学习并努力做得更好的事情。

你还有什么想说的吗?

我们一直在为 HoloViz 寻找新的贡献者,如果你感兴趣,请在我们的演讲中介绍自己,或者直接为我们的一个项目做出贡献。我想强调的是,非代码贡献对我们来说同样重要,所以如果您对我们的文档有任何意见或有建立社区的专业知识,请联系我们!

菲利普,谢谢你接受采访!

本周 PyDev:皮埃尔·丹尼斯

原文:https://www.blog.pythonlibrary.org/2019/04/15/pydev-of-the-week-pierre-denis/

本周,我们欢迎皮埃尔·丹尼斯成为本周的 PyDev!Pierre 是 Python 中概率编程包 Lea 的创建者。你可以在 LinkedIn 上找到他,在那里你可以看到他的简历,了解更多关于他的一些事情。让我们花点时间来更好地了解皮埃尔!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我在我居住的比利时 UCL 鲁汶-拉-新夫获得了计算机科学硕士学位。我在[Space bel](http://www . Space bel . be)工作了 20 年,是一家为太空开发系统的公司。基本上,我喜欢一切有创意和优雅的东西。除了艺术、音乐、文学,我还在物理、算法、图形用户界面和数学中寻找这方面的内容。我喜欢编程,尤其是 Python。到目前为止,我已经发起了三个开源的 Python 项目:UFOPAX(文本虚拟宇宙)、 Unum (有单位一致性的量)和 Lea (概率编程)。对于这些开发,我往往是完美主义者,因此速度很慢:我是那种为了内在美而重写相同程序十次的人!

除了编程,我还在研究数论(孪生素数猜想)。此外,我正在用我的母语法语写短篇小说,还参考了一些阿尔弗雷德·雅里的帕塔物理学和许多废话。顺便说一句,幸运的是,程序可以很好地产生废话,就像我在我的废话生成器中展示的那样!

你为什么开始使用 Python?

有一天,一个同事给我看了他用那种语言做的非常有趣的东西,我完全不知道。那是 Python 1.5,1999 年!那时,我非常喜欢静态类型的语言(C++,Java,Ada,...).出于好奇,我读了 G. van Rossum 的《吊起你的胃口》,然后又读了 M. Lutz 和 D. Asher 的精彩的《学习 Python》一书。我很快被语言的清晰、简洁和美丽所征服。所以,我开始使用 Python 基本上是因为它太吸引人了:具有内置容器、异常、面向对象、操作符重载等解释语言的简单性。我很快成为公司里 Python 的热心拥护者。

你还知道哪些编程语言,你最喜欢哪一种?

嗯,我练过 Pascal,Ada,C,C++,Smalltalk,Java,Prolog,Scala 还有其他几个。到目前为止,Python 是我最喜欢的一个。现在,如果我必须颁发银牌,这将是斯卡拉。实际上,我用 Scala 编程的经历和我用 Python 编程的方式有点不同:我平稳地转向了更函数化的风格,特别是,比起可变的对象,我更喜欢不可变的对象。除了这个选择,我不得不提到 C,Smalltalk 和 Prolog 对我影响很大。

你现在在做什么项目?

对于我的公司来说,我最近一直在为达米恩·乔治的令人敬畏的项目 MicroPython 的资格认证工作,该项目用于飞行机载软件(简称 Python 在航天器上运行!).独立地,我现在正致力于改进我们的工作流执行引擎。这使用 Python,RabbitMQ,Open API,MongoDB 以及 Angular 作为 GUI。对于以前的版本,这将用于卫星操作中心(例如,在卫星通道上打开天线并执行上行链路/下行链路)。

在个人 Python 项目方面,我维护 Lea,特别是为了扩展它的 ML 能力。此外,我正在开发 SiriusBee,这是一个使用 PyQt 的视频游戏原型,在这里你可以驾驶飞船穿越外星人的洞穴。作为一个更长的背景任务,我仍然在寻找孪生素数猜想的证明

哪些 Python 库是你最喜欢的(核心或第三方)?

哦,他们中的很多人都很棒!在标准的 Python 模块中,我喜欢 ast、functools、datetime、json、等分,这只是我最近使用的几个。以我的经验来看,二等分并不是很为人所知,可能是因为它神秘而没有吸引力的名字。我多次向需要进行高效“范围”查找的人推荐它(他们通常首先自己开始实现)。

对于第三方的,我喜欢 PyQt,我用了很多。顺便说一句,我是一本关于 PyQt 的法语入门书的合著者。SymPy 也确实令人印象深刻,即使我只熟悉符号计算部分。这允许 Lea 生成概率公式,如 p * * 5 (1-q) * 3,而不是数字。令我惊讶的是,这几乎是免费的,没有改变 Lea 的一行核心算法。Python 和鸭子打字的魔力!

什么是 Lea 包?

本质上, Lea 允许你以一种简单的方式玩概率游戏。您可以将离散随机变量(RV)定义为具有给定概率的对象的字典。然后,Lea 允许您组合这些随机变量,就像您对普通(确定性)对象所做的那样:通常,使用特定的算术和比较操作符。然后,您可以获得一个新的 RV,您可以通过查询来获得计算出的概率。一个重要的概念是,您定义的 RV 之间的依赖关系是内部保存的。就当是某种“懒评”吧。这允许条件作用和贝叶斯推理(假设 H 给定观测值 X 的概率是多少?).Lea 非常适合概率编程语言(PPL) 领域。Python 和其他语言中的几个包提供了类似的功能,但是从我收到的反馈来看,我真的认为 Lea 是最直观和最容易使用的。

在设计方面,软件包由几个积木组成,这些积木可以组合在一起构成复杂的概率模型。这些由原始的推理算法处理,Python 生成器在其中发挥了关键作用。这些构建块是根抽象类“Lea”的子类,被命名为“阿莱亚”、“Blea”、“跳蚤”、“克莉”等..我知道这听起来可能很奇怪,但是这么短的名字帮助我思考;这些就像是一个童话家庭的成员,我可以召唤他们,这样他们就可以一起交谈,玩雕像游戏(这个游戏启发了这个算法的名字)。不用说,Lea 是我最引以为豪的编程东西!

创建 Python 包你学到了什么?

我学到的一个教训是,你编程的任何新功能都需要大量的下游工作:文档、正式测试和教程更新。我花在这些活动上的时间比编程本身多得多。在 Lea 代码中,您可能会发现一行方法有 20 行长的文档字符串!

此外,我必须承认,对于我的个人项目,我倾向于独自工作。然而,我已经了解到,有几个人,技术高超,准备通过进化命题或直接贡献来提供帮助。开源的伟大之处在于,似乎总有人,在某个地方,可以满足你在任何话题上的不足。我特别想感谢接手 Unum 维护工作的 Chris MacLeod,以及在 Lea 上为优化、测试套件和打包做出巨大贡献的 Paul Moore 和 Nicky van Foreest。此外,我有许多与有知识的人进行公开讨论的例子,这些讨论产生了新的重要想法。我坚信杂交和意外收获的好处。

你还有什么想说的吗?

上周,我儿子写了一个实现遗传算法的 Python 脚本。基本上,个体通过进化/选择学习如何沿着给定的道路到达目标区域。经过一些调整后,他的程序运行得很好。他在没有任何第三方库的情况下编写了所有东西,除了用于显示的 PyGame。我对他印象深刻,并为他感到骄傲。

PyDev of the Week: Pradyun Gedam

原文:https://www.blog.pythonlibrary.org/2021/11/29/pydev-of-the-week-pradyun-gedam/

This week we welcome Pradyun Gedam (@pradyunsg) as our PyDev of the Week! Pradyun works on pip, Python Packaging Index (PyPI), the Python Packaging Authority (PyPA), Sphinx, TOML and more! Pradyun blogs and does talks. You can find out more about those on his website. If you're more interested in seeing Pradyun's work, then you ought to head on over to GitHub or GitLab.

Let's spend a few moments getting to know Pradyun better!

Can you tell us a little about yourself (hobbies, education, etc.)?

I grew up in Mumbai, but recently moved to the UK, where I’m working for Bloomberg. I’m part of the company’s Python Infrastructure team, mainly focusing on the software infrastructure and developer experience for Python within the organization.

I generally like sports. I’ve played a lot of cricket, basketball, and football throughout most of my life. Unfortunately, I haven’t been able to play any of those team sports recreationally for over a year now.

However, I have played a lot of video games lately. I have a strong bias toward systemic simulation games. Rimworld has been slurping up a lot of my free time over the past few weeks – perhaps, to the point of being unhealthy, now that I think about it. In the recent past, Steam tells me I’ve been playing Parkitect, Dyson Sphere Program, Oxygen Not Included, Hitman 2, and Rocket League.

I feel like I’m a weird breed of video gamer though – my last two gaming systems have been a Linux Desktop and a MacBook Air. My only Windows-based gaming happens through my GeForce NOW subscription.

Education-wise, I have a bachelor’s degree in “Computer Science Engineering.”

Why did you start using Python?

To make my own video game! Python was the first programming language I learnt, and I learnt it to make games.

I was in 8th grade, if I remember correctly, when my parents gave me the book “Core Python Programming” with the suggestion: How about you learn how to make games instead of just playing them?

That was a very sticky idea. So, after putting it off for a while, I did indeed pick up the book and learnt from it. By the end of it, I had learnt a lot about computers in general, and then went on to build a 2-player 2D tank shooter as well!

I found the process of writing my own game more fun than actually playing it, so I started looking around for more things to make with this new skill I had learnt.

What other programming languages do you know, and which is your favorite?

I definitely spend a lot of my time working with Python, largely biased by the fact that it’s the one I’m most familiar with. That is followed by web technologies (JavaScript, CSS, HTML). I also work a decent amount with C++ code at work. I’ve enjoyed working with Rust at every opportunity/excuse I’ve had to do so; especially since the entire development experience and tooling around the language are great. I’ve also attended beginner sessions for Clojure, Ruby, and Haskell in the past, but I won’t say I know them.

To be honest, I don’t think I have any favorites here – to me, programming languages are tools in the toolbox of a software engineer. The tools I’m most familiar with are Python, web technologies (JS, CSS, HTML, and their various relatives), C++, and Rust.

What projects are you working on now?

Lately, it’s been a mix of working on Python Packaging tooling, Sphinx documentation stuff, and fiddling around with speech recognition on my Raspberry Pi.

I ended up updating the page on my website about what I’m working on while writing my response here, so I guess that’s the rest of my answer. :sweat_smile:

Which Python libraries are your favorite (core or third-party)?

The most fun I’ve had with Python has been with the ast module – mostly because it led to me learn way more than I needed to about language grammars, parsers, parser generators, and language design.

PursuedPyBear (ppb) is an educational game engine and the project that I’m most excited to see growing. Video games is how I got started with Python, and ppb provides a much better foundation for learning Python (and game development) than what I had!

rich is also high up on the list of packages that I like right now!

How did you get started with the Python Packaging Authority (PyPA)?

Honestly, I feel like I stumbled my way into it.

That was purely curiosity driven for me – “oh, GitHub is a thing” ? “oh, I can read source code of things I use” ? “oh, the people who wrote this have discussions in this issues tab”. So… I ended up reading on some of the long-standing issues on the project. And then, making comments in those issues and summarizing the discussions so far. Something I didn’t realise back then: When you write a summary of a really long GitHub discussion, you also retrigger the whole discussion based on that summary.

The first major discussion I got involved in like this was about how pip install --upgrade <something> behaves, which quickly got entangled with how pip install <directory> should reinstall the project from the directory. It just spiraled from there.

This was around May or June 2016. At this point, I had been writing Python code for fun for about two or three years. It was just after I’ve given my final exams for high school (12th grade). Given that I wasn’t exactly preparing for “Joint Entrance Examination” (JEE) full time – unlike most of my peers – I had a bunch of free time on my hands.

So, I ended up putting that time into what ended up being a few months of technical discussion about what-do-we-do-here. The whole thing resulted in a +163 ?13 PR at the end – and I learnt very quickly that a lot of working on software is a people thing.

I actually enjoyed the process and learnt a lot of new things as a result. There was a certain dopamine rush associated with that the whole thing, so I ended up spending more time on the project. A few months later, I got into a college and realised that I can apply for Google Summer of Code (GSoC)! I did that in 2017, and a couple of months after that was over, I got offered the commit bit on pip and virtualenv.

Since then, I’ve been involved in some form with nearly every PyPA project on GitHub – either as a direct code contributor, engaging in discussions on their issue tracker, or as someone providing inputs in the standardisation process.

And, since I looked these up while writing this: My first commit in pip was updating a bunch of http URLs to https.

e04941bba Update http urls to use https instead (#3808) 

What have you been doing with Sphinx lately?

Actually, quite a lot, now that this question has made me think about it.

Documentation is a big part of software’s usability story, and a large part of how users interact with a given project. I’ve always felt that Sphinx-based documentation looked very dated, thereby contributing to lower quality content and a poor user experience. These feelings were validated and boosted by the user experience research that was conducted for pip throughout 2020.

Long story short, I ended up writing a Sphinx theme (Furo) that’s become quite popular (if I may say so myself). In the process of writing that theme, I discovered a bunch more things I could do. So… since then, I have:

  • worked with the original author of sphinx-themes.org and completely revamped the website (twice!), while also making it significantly easier to maintain.
  • picked up the maintenance of sphinx-autobuild, which provides a really nice live-reloading experience for writing Sphinx documentation.
  • collaborated with various folks from ReadTheDocs to improve things around Sphinx on their platform.
  • gotten involved in conversations about Sphinx, both in the issue tracker of Sphinx, as well as in the technical writing spaces (like Write The Docs).
  • become a member of the Executable Books Project, where I’m trying to help out with all the cool things that everyone else is building.
  • started writing a second theme and a bunch of theme-related tooling for Sphinx (though, I’ve not posted the code publicly yet).

The first public beta of Furo was 2020.9.2.beta1, which was over a year ago!

Of the packages that you help maintain, what’s your favorite and why?

Hmm… this is a tricky question to answer. It doesn’t help that I genuinely have so many things to choose from.

Furo comes to mind first. It is probably the only project I work on where I make the final call on everything unilaterally. It helps that it looks pretty and that it’s visible when someone uses it.

However, the project I spend the most time on is definitely pip. That is not the most fun project to work on though, even though it can be the most rewarding in terms of the sheer number of users I can help through my involvement with it.

What are the biggest challenges that the PyPA is facing?

Oh wow, that’s a heavy question. There’s a lot to unpack here.

I think one of the unique things about Python’s packaging tooling, compared to most other popular languages, is that it’s almost entirely driven by volunteers. This contrasts drastically with the investments and resources that other ecosystems have put toward their tooling. There are many consequences of this, but this question is about the challenges, so I’ll stick to those aspects.

There are definitely a lot of known functionality improvements that are difficult to get done with only volunteers. It is often tricky to coordinate across projects since availability is a hit-or-miss story. Improvements take time and generally progress slowly, both due to the volunteer nature of the labour, as well as the scope and scale of the work. Broadly, the PyPA operates on consensus and that is often not straightforward to establish. Even in those cases where we all agree and know exactly what needs to be done, we simply don’t have the ability to “throw” developer time at it to solve it.

There’s also the problem of poor documentation and communication channels. As with the functionality improvements, there’s limited availability of folks with the right skills and knowledge to invest the necessary energy into these areas. This isn’t helped by the fact that these areas are fairly complicated and nuanced in their own right, often rivaling the code changes in the amount of energy and understanding necessary to get things right.

Paying down our accrued technical debt doesn’t really attract as much energy as it should IMO, especially for something so foundational to the Python language ecosystem. A lot of improvements are blocked on this, since many foundational projects have a whole lot of technical debt which hasn’t been paid down. This sort of long-term low-effort/low-reward stuff is difficult to do when everyone’s a volunteer. Some things are easier when you’re getting paid to do it. Paying down technical debt is certainly one of these. Conversely, paying down technical debt is also tricky to get funding for on its own. 🙂

The “shackles” of backwards compatibility is another challenge (I consider this distinct from technical debt). There are many behaviours, CLI options, API designs, names for parameters/functions, etc. that people rely on in these tools. We’ve also learnt that some of these are confusing, frustrating, poorly named, and overall horrible for the user experience. Or, they are sub-optimal choices/names/approaches, especially given that we have the context we do today. Or, there’s a better approach for solving these issues, since we’ve made improvements in other parts of the ecosystem. But we can’t do much about them anytime soon, since we can’t break the parts of the Python ecosystem that depend on these behaviours.

All of this isn’t news to the folks who are actively involved in this space, or to many of your readers. Some of these are constraints that any long-standing software system has. That said, there has been substantial effort put toward improving this ecosystem as a whole over the last few years!

The PyPA’s standards-based approach is starting to show its benefits, through the ecosystem of alternatives to setuptools and overall workflow tooling that has been built over the last few years – these don’t have the same technical debt or backwards compatibility concerns and can innovate at a much faster pace. There are also multiple efforts underway to create re-usable libraries that implement functionality that, earlier, was only available within the internals of long-standing tools (e.g., pip, setuptools, distutils, etc.).

The Python Software Foundation’s Packaging Working Group (Packaging-WG) has been working toward securing funding for the Python ecosystem. They actually maintain a list of fundable Python Packaging improvements which are well-scoped, have clear consensus among the community, and are clearly going to improve an end-users’ experience – all of which are things that organisations that could fund this kind of work would want.

The Packaging-WG’s efforts have been very fruitful, leading to some very visible and impactful work being funded, like the new pypi.org site and the pip resolver rewrite (I worked on this one!). These were the sorts of things that would’ve taken many more years had they been undertaken only by volunteers and we hadn’t gotten this sort of funding. This has also led to establishing better documentation and communication around changes, including setting up “infrastructure” for doing a better job on these fronts going forward.

Thanks so much for doing the interview, Pradyun!

本周 PyDev:吴秋生

原文:https://www.blog.pythonlibrary.org/2020/05/18/pydev-of-the-week-qiusheng-wu/

本周我们欢迎吴秋生( @giswqs )成为我们的本周 PyDev!秋生开发了几个 Python 包,你可以在 Github 上查看。具体来说,它们是 geemap激光雷达白盒,它们用于高级地理空间分析。秋生也有一个网站,在那里你可以了解更多关于他的研究和兴趣。

让我们花一点时间来更好地了解秋生!

Qiusheng Wu

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我的名字是吴秋生。2015 年获得辛辛那提大学地理学博士学位。目前,我是田纳西大学(UTK)地理系的地理信息科学(GIS)终身助理教授。在加入 UTK 之前,我是纽约州立大学宾汉姆顿大学地理系的终身助理教授(2015-2019)。

我的研究兴趣包括地理信息科学(GIS)、遥感和环境建模。更具体地说,我对应用地理空间大数据、机器学习和云计算(例如,谷歌地球引擎)来研究环境变化,特别是地表水和湿地淹没动力学很感兴趣。我是开放科学和可重复研究的强烈倡导者。我开发并发布了各种用于高级地理空间分析的开源包(例如, geemaplidarwhitebox ),这些包都可以在 GitHub 上获得。我最近创建了一个 YouTube 频道来分享使用地球引擎 Python API 和 geemap Python 包的视频教程。我的目标是让地理空间技术和 GIS 编程更容易、更容易。更多关于我的研究和教学的信息可以在 https://wetlands.io 找到。

在业余时间,我喜欢编程、烹饪和打羽毛球。

你为什么开始使用 Python?

2015 年夏天,当我开始准备在宾厄姆顿大学教授 GIS 编程课程时,我开始学习和使用 Python。

你还知道哪些编程语言,你最喜欢哪一种?

我在 2005 年左右读本科的时候学过 C 语言和 Visual Basic。作为第一代大学生,在上大学之前没有接触过计算机或互联网,我对计算机语言和可以自动化重复任务的东西非常着迷。多年来,我自学了几种计算机和脚本语言,如 VB.NET、C++、C#、Java、JavaScript、R、Python 和 Rust。最终,Python 脱颖而出,成为我最喜欢的语言。从 2015 年开始,我在研究和教学中大量使用 Python。

你现在在做什么项目?

我目前的研究重点是使用高分辨率遥感数据集和谷歌地球引擎绘制湿地和地表水的淹没动态。迄今为止,我已经撰写和合著了 36 篇关于 GIS、遥感、湿地和水文学的同行评审期刊文章。关于我的研究和出版物的更多信息可以在 https://wetlands.io 找到。

哪些 Python 库是你最喜欢的(核心或第三方)?

我最喜欢的核心 Python 库有 os,glob,shutil,urllib,json 等。我最喜欢的第三方 Python 库有 Jupyter notebook、earthengine-api、ipyleaflet、ipywidgets、bqplot、numpy、scikit-image、matplotlib、grip、bumpversion、flake 等。

你最满意你的哪个 Python 包,为什么?

我最满意我的 geemap Python 包。许多人发现它很有用,我也从地球引擎社区收到了很多积极的反馈。我喜欢向开源社区学习并为其做出贡献。

是什么启发了你写这些 Python 包?

我深受约翰·林赛博士的启发,他开发了令人惊叹的地理空间数据分析平台,名为 T2 白盒工具。它是一个命令行程序,包含 430 多个用于地理处理的开源工具。这个程序的后端是用 Rust 语言开发的。受 Lindsay 博士伟大工作的启发,我为白盒工具构建了三个前端,包括白盒-python、白盒 R白盒-ArcGIS ,它们已经被地理空间社区广泛使用。我最近的 geemap Python 包的灵感来自 ipyleaflet 和 ipywidgets 包。我的目标是让初学者更容易使用地球引擎 Python API 进行交互式制图。

你还有什么想说的吗?

非常感谢 Python 和 Linux 社区!我喜欢通过 GitHub、Stack Exchange 和 Medium 每天学习新的东西。谢谢大家!

秋生,谢谢你接受采访!

本周 PyDev .大卫·穆雷

原文:https://www.blog.pythonlibrary.org/2016/05/30/pydev-of-the-week-r-david-murray/

本周,我们欢迎 r·大卫·穆雷(@ rdavidmurry)成为我们本周的 PyDev。Murray 先生是 Python 语言的核心开发者,目前是电子邮件模块的维护者。他有一个 Python 博客,虽然已经有一段时间没更新了。你可能想看看他的 Github 简介,看看他正在做的其他项目。让我们花些时间来了解一下我们的同胞皮托尼斯塔吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

年轻的时候,我想成为一名粒子物理学家。我去了宾夕法尼亚大学学习物理,并通过在物理系计算设备处找一份工作来满足我的第二爱好(计算机,那时它还处于 IBM 大型机/TRS 80 的阶段)。在那里的第二年,我决定物理学本身也是一门科学...乱七八糟,但我热爱数学,尤其是与计算机打交道。所以我毕业时获得了计算机数学学士学位,在我职业生涯的大部分时间里,我一直在使用计算机,而不是数学。

工作之余,我喜欢阅读科幻小说和我妻子和我平均每周跳两次的魂斗罗舞。这让我保持健康,感觉更年轻(我发现(现场)音乐很棒,这是一种吸引所有年龄层的舞蹈形式,这对心理有益,另外一个好处是这是一种很好的锻炼)。

你为什么开始使用 Python?

我现在已经失去了确切的记录,但我相信我是在大约 1995 年开始使用 Python 1.4 的——我刚刚转行(从计算机专业的工作到经营一家互联网服务提供商),并搬到了一个新的州。我已经用非面向对象语言进行了一段时间的面向对象编程,所以当我需要为 ISP 编写一个会计系统时,我搜索了面向对象语言并找到了 Python。剩下的,正如他们所说的,都是历史了...从那以后,我就很少再用其他东西编程了,尽管曾经尝试过用 PERL 重写会计系统。

你还知道哪些编程语言,你最喜欢哪一种?

我已经用 Visual BASIC、FORTRAN(嗯,FORTRAN 77:)、C、REXX、FORTH 编写过程序(当然,我也写了自己的 FORTH 解释器...对于 IBM 370)和 LISP.Â我调试过的语言比我想记住的还要多——我尤其不想记住 Java 调试,但是,你做你必须做的🙂

从情感上来说,我最喜欢的语言可能是 FORTH,尽管 LISP 紧随其后。但是 Python 比这两种语言都实用得多(尽管我一直认为我应该尝试 clojure)。然而,从我的行为来看,你不得不说 Python 确实是我最喜欢的语言。

你现在在做什么项目?

我是咨询公司 Murray and Walker,Inc .的合伙人。我现在的大部分工作都是在 NDA 手下完成的,所以我不能告诉你细节。一个项目是为拥有无线数字无线电关键专利的公司做基础设施工作。另一个大项目是我是在英特尔做一些概念验证工作的团队的一部分。除了我对 CPython 开发的贡献(现在比平时少, 因为我现在很忙)我正在做一个开源项目,一个从 Voicesaucepython 的移植。 我必须在我更大的项目之间努力,所以我们还没有走得很远。

哪些 Python 库是你最喜欢的(核心或第三方)?

嗯,由于我目前是电子邮件库的维护者,这应该是我最喜欢的。不过,我真的很喜欢使用 asyncio(我正在我目前的一个大项目中使用它)。至于第三方,我喜欢 Python 的一点是,几乎任何我需要做的事情我都可以找到现有的库来帮助。因此,我最喜欢的是目前帮助我完成工作的任何一个🙂

作为一门编程语言,你认为 Python 将何去何从?
我认为 Python 是未来很长一段时间内的核心语言之一。它是一种粘合语言,将用 python 和其他语言编写的资源集合在一起,使得编写利用这些资源的程序成为一种乐趣。这是一门非常好教的语言,但作为一名程序员,它有能力帮助你解决遇到的任何问题。即使你离开 Python 去解决特定的问题,你也会发现自己又回到了 Python 中。或者至少我知道。

你对当前的 Python 程序员市场有什么看法?

我不知道。我想,我上一次签合同是在三年前。但是我的工作是通过口耳相传和 Python 社区完成的;人们联系我而不是我做营销。有两次,一些公司想聘用我做全职员工,但我喜欢自己的独立性,到目前为止我都拒绝了。所以对我来说,“就业”市场相当不透明。

你还有什么想说的吗?

我认为 CPython 开发社区中最大的问题是,没有人仅仅通过解决 bug 追踪器中的 bug 并尝试提交补丁来获得报酬。我们一直在尝试添加新的提交者,但每个人都来到 CPython,因为他们有一两个问题需要解决, 因此,那些不挠任何人痒痒的东西就会被忽视。如果一些人和/或公司能够联合起来,资助一些人去做审查和提交被忽视的补丁的“琐碎工作”,我会很高兴得到一份合同来做这件事:)我实际上已经和 PSF 谈过这件事了, 但是,没有人真的有时间做跑腿的工作来让这样的事情发生(有法律和合同问题,以及资金和社区认知问题)。我想下次我在合同之间的时候,我可能会再试一次🙂

非常感谢你接受采访!

本周 PyDev:Rachell Calhoun

原文:https://www.blog.pythonlibrary.org/2022/05/30/pydev-of-the-week-rachell-calhoun/

本周我们欢迎拉切尔·卡尔霍恩(@拉切尔 _ 卡尔霍恩)成为我们本周的 PyDev!Rachell 活跃在 Python 社区和 Django Girls 社区。你可以在雷切尔的网站上看到雷切尔正在做的许多事情中的一些。

你也可以查看 Rachell 的 GitHub 简介,看看 Rachell 在做什么酷项目。

让我们花些时间去了解瑞秋吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我来自密歇根州的卡拉马祖,毕业于西密歇根大学,获得西班牙语和法语学士学位,辅修阿拉伯语。然后,我搬到了韩国首尔,在那里我把英语作为外语来教。首尔是一个令人惊叹的城市,它有很好的公共交通,价格合理的医疗保健,美味的食物,以及大量学习或做任何事情的机会。我能够参加各种兴趣和爱好,比如萨尔萨舞和吉他课。我从小就练跆拳道,所以这是一个坚持练习的好机会。我还能打拳击、巴西柔术和合气道。我也喜欢旅行,当我在地球的那个地方时,我能够进行一些很棒的旅行。

这些天来,我仍然有相同的兴趣,但没有机会实践它们。我远程工作已经有六年了,所以我喜欢在中午跑步或者做瑜伽来分散一天的时间,活动一下。最近,当天气不好或我需要把事情搞混时,我会在椭圆机上使用虚拟现实,让应用程序给我带来阳光。

除此之外,在过去的三年里,我一直在密歇根大学攻读应用数据科学硕士学位,这占用了我相当多的时间。我有一个最后的顶点,然后我将正式完成,希望,我将能够再次采取一些我的爱好。

你为什么开始使用 Python?

在我的教学生涯中,我已经到了极限,我想尝试一些新的东西。我参加了一家 EFL 电子出版公司的面试,该公司有意招聘一名有技术、EFL 和一点商业经验的人。我有一些这样的技能,但是我现在想起当他们问我 HTML 是什么的时候我是如何被绊倒的,我就笑了。我意识到科技无处不在,所以我决定尝试编程。我加入了首尔的其他几个人,他们刚刚成立了一个小组,利用大规模开放在线课程(MOOCS)在周末作为业余爱好学习 Python。从那以后,我对这个社区的兴趣和参与度不断增长。

你是如何组织姜戈女孩聚会的?

在首尔的第一年,我和我的社区用 Python 做了一年的各种项目,我们决定做一个 Django 项目,我的一个朋友建议我们尝试举办一个 Django 女孩研讨会。我们原以为会有少数人对此感兴趣,但最终这一事件是巨大的。在两天的时间里,我们总共接待了大约 100 人。当然,我们也有足够的兴趣做一个周末迷你“编码训练营”。这都是免费的,志愿者领导的运动。我们有一个很棒的组织者团队,每个人都有自己的专长,如设计、网络、技术等,所以工作得很好。

从那以后,我在 Django 女孩社区的参与增加了。我帮助翻译,在其他一些地方执教,现在我是姜戈女孩基金会的董事会成员。

你对其他想开 Django Girls 或 PyLadies 分会的开发者有什么建议吗?

对我来说,给想要创建 Django girls 或 PyLadies 社区的开发者提建议有点难,因为我创建了这个社区,然后成为了一名开发者。但是我想说,如果你找不到你的社区,那就建立它!如果可以的话,找一两个其他人帮你开始。如果你不认识任何人,也许可以创建一个社区,邀请活跃的成员作为组织者加入,因为如果只有你一个人组织活动,很容易筋疲力尽。我还想说,倾听并跟随你所在社区的领导,了解他们的兴趣或他们想要关注的项目。

你还知道哪些编程语言,你最喜欢哪一种?

我主要和 Django 一起开发 web 应用程序,所以我在一些不同的平台上使用过 Javascript。我用我需要的东西来给一个特定的项目,但当然我最喜欢的是 Python。这是我最熟悉的,也是我最擅长的。因为我知道 Python,所以我能够直接获得数据科学学位。最重要的是,这个社区坚如磐石。在我的职业生涯中,我从 Python 社区的许多人那里得到了很多支持。

你现在在做什么项目?

我真的很兴奋能够在接下来的四个月里开始完成我的数据科学学位。我的目标不是仅仅为了学位而做一个项目,而是尝试与非营利或当地记者组织合作,这些组织可能没有资源聘请数据科学家。作为一名开发人员,我一直喜欢利用学习和成长的机会,在这种情况下,我是一名数据科学家,尽我所能帮助他人。我的第一个项目着眼于量化与健康的社会决定因素相关的对律师公益服务的需求。我在的第二个项目专注于预测文本难度,以帮助确保公众可用的文本以清晰、简洁的语言书写,从而消除 ESL 读者获取信息的一些障碍。

因此,如果你知道有人需要我的最终项目,请随时传递它!

哪些 Python 库是你最喜欢的(核心或第三方)?

我真的没有任何偏好,我的偏好取决于手头的任务以及我正在使用的资源和堆栈。

瑞秋,谢谢你接受采访!

本周 PyDev:rag hav Bali

原文:https://www.blog.pythonlibrary.org/2021/06/14/pydev-of-the-week-raghav-bali/

本周我们欢迎 Raghav Bali ( @Rghv_Bali )成为我们本周的 PyDev。Raghav 是《用 Python 和 tensor flow 2生成人工智能》的合著者,这本书教你如何用 VAEs、GANs、LSTMs、GPT 模型等创建图像、文本和音乐。

你可以在 Raghav 的网站GitHub 个人资料上看到他还在做什么。你也可以在 LinkedIn 上联系 Raghav。

 Raghav Bali

用预设的 VSCO 处理

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是 with 班加罗的毕业生,主修软件工程和机器学习。我是我那一组的金牌获得者。

我是一个技术发烧友,喜欢阅读和玩新技术和新玩意。我也对摄影感兴趣,喜欢玩不同的视角。你可以查看我的 Instagramvsco 个人资料。

你为什么开始使用 Python?

回到 2013-14 年,当我进入机器学习之类的领域时,我们主要使用 MATLAB 和 R 进行实验和项目。后来,在 2014 年末,我参加了 PyCon 上的几次讲座,这为我打开了一个全新的可能性世界。从那以后就没有回头路了。Python 不断增长的库和支持生态系统使它成为所有 ML 事物的首选。此外,易于编程和可读性是一个明确的优势。

你还知道哪些编程语言,你最喜欢哪一种?

在学校的时候,我最初是作为一种爱好开始使用 C 和 FORTRAN 编程的。多年来,我一直从事使用 C++、C#、Java、R 和 Python 等语言的项目。我也曾短暂地使用过 Visual Basic、HTML 甚至 JavaScript。

我不会说我有最喜欢的语言,因为我相信这种选择完全取决于项目的需求。目前我最喜欢 python。

你现在在做什么项目?

我在医疗保健领域工作,目前我正在使用机器学习和深度学习等技术研究一些复杂的欺诈检测用例。

哪些 Python 库是你最喜欢的(核心或第三方)?

如此强大的熊猫和 numpy 库就像 python 世界中整个数据科学生态系统的英雄。这两个是完全不可或缺的,我不能感谢开发商。

你还有什么想说的吗?

机器学习/深度学习社区以及与 python 社区相关的出色开发人员是灵感和钦佩的真正来源。对工作质量和他们支持整个生态系统的真实感觉的称赞。

谢谢你接受采访,Raghav!

本周 PyDev:Ram rach um

原文:https://www.blog.pythonlibrary.org/2015/08/10/pydev-of-the-week-ram-rachum/

本周,我们欢迎拉姆·拉彻姆成为我们本周的 PyDev。Ram 是 Python 工具箱PythonTurtle 的作者。让我们花些时间去更好地了解他吧!

Ram

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我的名字是拉姆·拉彻姆。写这篇文章时我 29 岁,我是以色列人。我住在以色列的特拉维夫。

我是一名软件开发人员,几乎专门用 Python 编程语言和 Django web 框架进行开发。我是一名顾问,通常为处于早期阶段的小型创业公司工作。我已经做了 6 年了。我最喜欢的工作是从零开始一个项目,例如,一个创始人找到我,向我解释他想要构建什么样的产品,然后用 Python 和 Django 从头开始构建这个产品。没有什么比决定使用哪些工具和构建什么样的架构更好的了😉

与许多其他开发人员不同,我没有学位。我确实上过一段时间大学,但是我退学了。我不喜欢大学决定我要学什么/怎么学/什么时候学。我喜欢按自己的节奏做事,自己做决定。尽管我没有学位,但我为自己的职业感到自豪;我希望没有学位的成功开发人员的趋势继续下去,这样年轻人就不会有那么大的压力在大学里度过几年,而不是在行业里学习真正的技能,我觉得这更重要。(更不用说在美国上大学的高昂费用了。)

除了软件开发,我还喜欢写作、绘画,只是和家人朋友出去玩。

你为什么开始使用 Python?
当我还是个孩子的时候,我用 Basic 和 C 语言编写了很多程序,但是我很长一段时间没有编程,因为我对编程时需要的所有技术工作感到沮丧。我喜欢概念性的工作,但不喜欢技术性的工作。(例如,记住命令的标志,从模糊的错误消息中找出错误,以及任何涉及记住无聊的技术信息的事情。)在多年不编程之后,我决定尝试重新学习编程。这是在我二十出头的时候。我是保罗·格拉厄姆的粉丝,在他的一篇文章中,他提到 Python 是一种很好的编程语言。我试了一下,爱上了。令我高兴的是,许多让我对 C 感到沮丧的事情在 Python 中变得简单多了,所以我原来必须做太多技术工作的问题通过用 Python 开发得到了部分解决。

你还知道哪些编程语言,你最喜欢哪一种?

除了 Python,我还会一点 JavaScript,一点 Mathematica 和一点 AutoHotKey。

AutoHotKey 是一种可怕的语言,可能是有史以来发明的最糟糕的编程语言。但它在自动化 Windows 任务方面表现出色,这也是我经常使用它的原因。我有几十个自动热键脚本,帮助我自动化日常任务。如果可能的话,如果我有时间的话,我真的很乐意将这些迁移到 Python 上。

以防不明显,我最喜欢的编程语言是 Python🙂

你现在在做什么项目?

现在,我的大部分时间都花在一个公司客户的项目上,我不能谈论这个项目。但是在我的业余时间,我正在为一个非常雄心勃勃的任务管理程序设计一个架构,它将解决我多年来在尝试各种任务管理程序时遇到的挫折。(我用这些来管理我的任务,包括个人和业务。)我不确定我最终会完成这个项目,但如果我会的话,至少需要几年时间。

哪些 Python 库是你最喜欢的(核心或第三方)?

不要脸塞:我最喜欢的 Python 库是我自己的 Python 工具箱。它基本上是我多年来开发的通用工具的集合。基本上每次我写代码时,发现自己写的逻辑可能在其他环境中有用,我就把它放到 Python 工具箱中。我已经这样做了 6 年,结果是一个巨大的各种工具库。我认为它们对任何类型的 Python 项目都非常有用。

除了 Python 工具箱,Django 显然是我的最爱,因为它是一个优秀的 web 框架。我喜欢 Django 从 Python 继承的“包含电池”的哲学,即 Django 包含许多可能对构建 web 应用程序的人有用的工具。当你需要的工具被包括在内,而不是在网上寻找时,那就更好了。

作为一门编程语言,你认为 Python 将何去何从?

对我来说这很难说。我认为向 Python 3 的迁移是一个缓慢但稳定的成功,大部分 Python 社区迁移到 Python 3 只是时间问题。(我知道对于不需要使用遗留系统的客户项目,我已经有了。)一旦迁移完成,我们最终可以忘记 Python 2 的兼容性,Python 社区中的每个人都可以更高效地使用所有的新特性。但那还是几年以后的事。

除此之外,很难预测未来🙂

谢谢你让我上你的博客!

谢谢!

一周的最后 10 个 PyDevs

本周 PyDev:Rami Chowdhury

原文:https://www.blog.pythonlibrary.org/2016/09/12/pydev-of-the-week-rami-chowdhury/

本周我们欢迎 Rami Chowdhury ( @necaris )成为我们的本周 PyDev!Rami 是 Python 社区和北美 PyCon 组织的积极贡献者。如果你想知道他在做什么,你可能想看看他的网站,那里有他参与的各种开源库的链接。让我们花一些时间来更好地了解他!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

年轻时,我一直对电脑很感兴趣,也是一个相当无畏的用户,但我去了大学学习政治学和经济学(在英国),只是在那时才偶然接触到编程。感觉有点像我找到了我的使命。在业余时间,我正齐心协力地写更多的代码,而且我已经把编织当成了一种消遣。我也喜欢阅读,逛我家乡(华盛顿 DC)的博物馆,和我的腊肠狗韦斯利一起玩耍。

你为什么开始使用 Python?

我正在为学院有限的网络托管服务编写 Perl CGI 脚本,这时我看到了 Eric Raymond 的文章“为什么是 Python”——这引起了我的兴趣。我开始使用它是因为它广泛而有用的标准库、文档的可读性(以及生成的代码),还因为它已经安装在我可用的 Linux 机器上。

你还知道哪些编程语言,你最喜欢哪一种?

作为一名全栈 web 开发人员,我精通 Python 和 Javascript(及其方言),但我对 PHP、Clojure、Java、Erlang、C 和 Go 也略知一二。我最近读到一些关于编程语言和语言社区本身就是文化和亚文化的东西,Python 仍然是我的最爱,不仅因为我可以用它做几乎任何事情,还因为我喜欢成为这种文化的一员。

你现在在做什么项目?
我很幸运,大部分时间都在用 Python 工作,所以在工作之外,我在玩一些项目,让我学习新的语言和技术——一个基于网络的应用程序让我玩 Elm 和 aiohttp,还有一个文件格式解析器帮助我自学 Rust。

哪些 Python 库是你最喜欢的(核心或第三方)?
核心:__ 未来 _ _😉第三方:龙卷风

非常感谢你接受采访!

本周 PyDev:Raphael pier zina

原文:https://www.blog.pythonlibrary.org/2019/08/12/pydev-of-the-week-raphael-pierzina/

本周,我们欢迎 Raphael pier zina(@ hackebrot)成为我们本周的 PyDev!Raphael 是一个流行的 Python 测试框架 pytest 的核心开发人员。你可以通过访问拉斐尔的博客或者查看他的 Github 简介来了解更多关于拉斐尔的信息。让我们花点时间来了解一下拉斐尔吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我的背景是 3D 可视化和动画。大学毕业获得设计文学学士学位后,我在一家视觉效果公司做了几年软件开发人员,为数字艺术家构建应用程序。

快进到今天,在其他几家软件公司工作过之后,我现在在 Mozilla 从事 Firefox 遥测技术。我管理项目以减少 Firefox 浏览器产品中与遥测相关的盲点,并支持我们的软件工程师和数据工程师增加 Firefox 遥测组件和 Firefox 数据平台的自动化测试覆盖率。今年 2 月早些时候,我在博客上写了我在 Mozilla 的第一年,如果你想了解更多关于我的工作的话。

为了好玩,我喜欢快跑看书,享受户外。ðÿ"

 Raphael Pierzina

拉斐尔·皮尔泽纳

你为什么开始使用 Python?

当我在 VFX 工作时,我的团队为几个 3D 计算机图形应用程序开发了插件,使用这些程序支持的任何脚本语言:

  • 3ds Max 中的 MaxScript
  • 玛雅中的梅尔
  • TCL in Nuke
  • ZBrush 中的 ZScript
  • Unity 中的 C#

我们经常不得不用各自的语言为不同的程序开发相似的特性,这不仅是乏味的,而且感觉真的没有必要。

当我第一次了解 PyPI 以及 Python 社区在开源许可下创建和发布的许多令人惊叹的框架、库和 CLI 应用程序时,我立即爱上了 Python,并开始寻找参与和回馈 Python 项目的方法,这些项目似乎很欢迎新人,例如 cookiecutter 。ðŸ

你还知道哪些编程语言,你最喜欢哪一种?

除了我前面提到的脚本语言,我在大学里学过 C++和 Java,但我不敢说我了解它们,因为我已经很多年没用过它们了。在之前的工作和个人项目中,我在 Go 方面做了相当多的工作,但 Python 绝对是我觉得最精通的。最近开始学 Rust,到目前为止真的很喜欢。

虽然我并不总是喜欢用 Python 编码(目前我已经为太多的项目添加了 Python 3 支持,并且在我维护的大多数项目中仍然支持 Python 2),但是 Python 仍然是我最喜欢的编程语言!

通过参与几个开源 Python 项目,从参加 Python 会议和 meetups 并在会上发言,以及在 Twitter 上互动,我在 Python 社区交了很多朋友。如果你在今年的 EuroPython 或 PyCon DE 上看到我,请向我问好!

你现在在做什么项目?

我目前在 Mozilla 从事开源项目,还有 cookiecutterpytest ,以及一些较小的项目,如cookiecutter-pytest-pluginpytest-cookiespytest-mdlabels

在过去的一两年里,我的优先事项发生了变化,我现在专注于通过在会议和聚会上发言、在我的博客上写作以及在我的推特上发布来进行指导和教学。

哪些 Python 库是你最喜欢的(核心或第三方)?

我是 attrsclickpytest 的忠实粉丝。🚀

作为维护者,你学到了什么?

设定期望并能够说“不”真的很重要。允许自己休息一下,甚至离开你的项目。照顾好自己!

我在 2018 年的 EuroPython 上做了一个关于维护一个受欢迎的开源项目的挑战的演讲。虽然这个演讲在 YouTube 上的浏览量可能没有我的其他一些演讲多,但分享我多年来维护 cookiecutter 的经验对我来说非常重要,我希望它能帮助那些发现自己处于类似境地的人。

https://www.youtube.com/embed/3pokUifUyWM?feature=oembed

拉斐尔,谢谢你接受采访!

本周 PyDev:拉扎(里通)扎伊迪

原文:https://www.blog.pythonlibrary.org/2022/05/16/pydev-of-the-week-raza-rython-zaidi/

本周,我们欢迎拉扎·扎伊迪(@拉扎科德斯)成为我们本周的 PyDev!拉扎是 TwitterYouTube 的内容创建者。你可以在 Raza 的 YouTube 频道上了解 Python、数据科学、Django 等等。有机会就去看看吧!

现在,让我们花一些时间来更好地了解 Raza!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

你好,我是 Raza,thirdweb 的 Dev Rel 主管。职业上是会计,但内心是技术爱好者。对新兴技术和教育充满热情。我认为自己是一个低于平均水平的开发人员,是任何人都可以学习如何开发的活证明。目前,我专注于通过他的 Twitter、Tiktok 和 YouTube 频道,教开发者如何开始使用 Web3。我绝不认为 Python 是最好的编程语言。在我的业余时间,我喜欢看动漫。

你为什么开始使用 Python?

我曾经是一个数据工程平台的负责人,老实说,我认为所有这些开发人员都很酷。我刚开始和开发人员一起玩,让他们用我做测试兔。我学会了如何启动环境和运行基本的 Python 脚本,这就是我开始学习 Python 的原因。

你还知道哪些编程语言,你最喜欢哪一种?

我懂一点 javascript 和 solidity。我喜欢坚实,但没有什么能打败 Python。

你现在在做什么项目?

一对夫妇。我认为 Python 在 web3 领域的代表性严重不足。有这么多很酷的图书馆,我正致力于内容,以引起更多的关注。除此之外,我再次进入初学者空间,这是一个帮助更多人开始使用 Python 的平台。敬请期待!

哪些 Python 库是你最喜欢的(核心或第三方)?

  1. 熊猫
  2. 乌龟(我爱用 Python 画画!)
  3. thirdweb 的 sdk

你是如何决定成为一名内容创作者的?

我想我认为自己是一个非常糟糕的程序员,并利用这种能力来简化概念以便自己理解。然后我就分享这些信息。所以这不是一个有意识的决定,而是我自己做的。

作为内容创作者,你遇到过哪些挑战,你是如何克服的?

我想找到新的想法和结构。通过参与社区,我学到了很多东西,我需要做得更多。但这是获得灵感的好方法。

你还有什么想说的吗?

如果您也想传播关于 Python 的信息,请联系我们。我正在寻找志同道合的开发者,他们希望为初学者内容做出贡献,并帮助人们开始用 Python 开发!

谢谢你接受采访,拉扎!

本周 PyDev:Reimar Bauer

原文:https://www.blog.pythonlibrary.org/2018/11/26/pydev-of-the-week-reimar-bauer/

本周,我们欢迎赖马·鲍尔(@赖马鲍尔)成为我们本周的 PyDev!Reimar 是流行的 Python wiki 包 MoinMoin 的核心开发者。他已经在 PyCON DE、FOSDEM 和 EuroPython 上讲述了 Python。让我们花几分钟时间更好地了解他!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名来自德国 lich 的程序员。那是亚琛和科隆之间的一个小镇。

我在森林中心有限公司工作。雇员在能源和环境、信息和大脑研究领域开展研究,目的是为社会提供促进可持续发展的行动选择。

我的工作与大气科学有关。

版权所有:研究中心□有限公司

在过去的几年里,我写了几本关于数据结构和 IDL 的书,IDL 是我最早的科学相关编程语言之一,由科罗拉多州博尔德的 Ray Sterner 开发。

2012 年,我被选为德国 Python 软件 Verband 的董事会成员。我帮助组织了德国的几个 Python 活动,柏林的几个 PyConDE 和著名的 EuroPython。我从这个位置上退下来,我在 2017 年离开,因为我需要并想花更多的时间陪伴家人。

自 2013 年以来,我一直是 Python 软件基金会的研究员。

我曾经在一个大乐队演奏长号,但不得不暂停,因为我实在找不到这个爱好需要的时间。我喜欢观光,徒步旅行,社交 3.0,认识很多不同的人。有时我会玩一个名为 ingress 的增强现实游戏。

2019 年,德国科隆第十届 PythonCamp,一个经典的 barcamp,将是 Reimar Bauer 参与的下一个社区项目。

你为什么开始使用 Python?

是因为 MoinMoin 软件。我有个主意。我想在 MoinMoin 有一个甘特图视图。

我得到了所有需要的帮助,学会了使用 IRC),并开始进入 Python 开源世界。2003 年我用的是 1.5.2。后来我为 MoinMoin 写了许多插件和一个关于 API 例子的描述。

你还知道哪些编程语言,你最喜欢哪一种?

我只有一个最爱,那就是 Python。这也是我的同事在工作中所需要的。我仍然维护着一个大型的 IDL 库,但是由于开发在 2013 年左右冻结,我们转向了 Python。我也知道 Fortran,但是已经不用了。

你现在在做什么项目?

自 2016 年以来,我一直在维护和开发任务支持系统。这个项目是完全开源的,Apache 2.0 许可。该软件用于交互式规划大气科学的飞机任务。

因为这个项目,我也成为了康达锻造公司大量原料的维护者。而且因为对 pyfilesystem2 的热爱,我开了一个 qt5 文件选择器

哪些 Python 库是你最喜欢的(核心或第三方)?

Pyfilesystem2:
处理档案、内存、云等中的文件和目录。就像你在本地开车一样容易。现在写代码,以后决定数据存储在哪里;不写真实文件的单元测试;无需学习新的 API 即可将文件上传到云端;用沙箱保护您的文件编写代码;等等。https://pyfilesystem2.readthedocs.io/en/latest/

人类请求:http
http://docs.python-requests.org/en/master/

netcdf4:
NetCDF 是一组软件库和自描述的、独立于机器的数据格式,支持面向数组的科学数据的创建、访问和共享。http://unidata.github.io/netcdf4-python/

borgbackup:
Borgbackup 是一个去重复备份程序。可选地,它支持压缩和认证加密。http://borgbackup.readthedocs.io/en/stable/

您想提及哪些 Python 社区?

德国 Python 软件 Verband ,专注于 PyConDE 和 EuroSciPy 会议系列,但也支持许多类似于 PSF 的小型社区。

专注于欧洲 Python 大会的欧洲 Python 协会

Python 软件基金会(Python Software Foundation)是一个多年来将一切联系在一起的组织。组织 Pycon US,并通过赠款帮助较小的社区。
感谢你们所有人的宝贵时间,感谢你们做了如此出色的工作!

是什么让你决定参与 MoinMoin 项目?

社区:乐于助人、热情好客的人们。我继续致力于它,因为我们能够在我们研究所的任何测量活动中使用 MoinMoin 作为项目 wiki。在那里,我们必须显示模型预测数据,管理具有不同访问规则的页面,为参与者提供大量信息。另一个用例是从 reST 格式的 wiki 页面创建 sphinx latex 文档。

你能告诉我们你在 MoinMoin 上做开发时学到的一些东西吗?

我学到了很多工具,如何编写合适的单元测试,web 服务器选项;我也从虫子身上学到了东西。我也喜欢接触新的社区。在谷歌代码之夏担任学生导师的那段时间也是一段美好的时光。我们处于风口浪尖,解决了很多基于浏览器的问题,或者至少找到了绕过它们的方法。

如果你能从头开始,你会做些什么不同的事情吗?

我们从 moin-2 开始。但是卡住了。一个原因可能是维基本身独特的卖点同时被广泛传播。还有许多类似的工具存在,许多只想稳定一些项目的开发人员对这种软件机制并不感兴趣。现在有太多的选择了。因为我们已经花了很多时间在 moin-2 中替换我们自制的模型和视图,我更愿意完成这个。我们目前重新整合了开发人员,并组建了一个新的核心团队。

如果你想加入我们,请随时联系 https://mail.python.org/mailman/listinfo/moin-devel

谢谢你接受采访,Reimar!

本周 PyDev:Reindert-Jan Ekker

原文:https://www.blog.pythonlibrary.org/2022/07/18/pydev-of-the-week-reindert-jan-ekker/

本周,我们欢迎 Reindert-Jan Ekker(@ rjekker)成为我们本周的 PyDev!Reindart 是一名自由职业教师,教授 Python、Java、Django、Bash 等等。你可以了解更多关于他在代码老师教的东西。莱因达特也在复数视野上教学。

让我们花一些时间来更好地了解 Reindart!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

嗨!我叫 Reindert-Jan,今年 44 岁,住在荷兰阿姆斯特丹。我从小就对计算机和编程感兴趣。写代码很有趣,我发现它释放了我的创造力。现在我主要是教书,所以我写的代码通常是为了演示或个人项目。

当我不工作的时候,我会做各种不同的事情——我喜欢看科幻和奇幻书籍,做一些运动(跳莎莎舞和打网球等等),和朋友出去玩,去看乐队演出..我真的没有什么坚持多年的铁杆爱好,可能是因为我就是喜欢变化。

早在 1996 年,我就在荷兰的格罗宁根学习人工智能,我非常喜欢它。之后,我成为了一名程序员,主要从事 Java 的 Web 开发工作。老实说,作为一名职业程序员,我从来没有快乐过。我讨厌从事“公司”项目,讨厌最后期限。尽管如此,我仍然做得很好,成为了团队领导和 Scrum 大师..但是我不再那么喜欢编码了。我甚至停止了业余时间写代码,因为我觉得这不再有趣了。

在某些时候,我觉得这就足够了,我错过了一些东西。我辞掉了工作,休假来下定决心。那时我意识到我想教书。我以前在大学的时候就这样做过,并且非常喜欢。

所以我决定取得教师学位。我曾经做过一段时间的计算机科学老师,现在我有了自己的公司——Code Sensei——在那里我教授编程技巧。

我主要做公司内部的课堂培训,或 Pluralsight 的在线内容,重点是 Python 和框架,如 Django,Flask,或熊猫的数据技能。我喜欢它!我重新找到了编码的乐趣和创造力,我喜欢与他人分享我的技能和经验。

你为什么开始使用 Python?

那是在我研究的最后几年,大概是 2002 年左右。那时,我会用 C++、Perl 或 Bash 编写业余爱好项目。当我第一次听说 Python 并查看它时,我惊讶于它的简洁和可读性。那时候,Python 还是一种较小的语言,你可以在一个晚上读完教程,我就是这样做的。我不认为在那之后我写过很多 Perl 或 C++。

你还知道哪些编程语言,你最喜欢哪一种?

我第一次学习编程是在一台旧的家用电脑上——一台 TI 99/4A,它有自己的 BASIC。我记得看到其他孩子在他们的 MSX 上玩游戏,并试图自己编程。

当我们家里有了第一台个人电脑时(我大概 14 或 15 岁),我安装了 Turbo Pascal。我不得不去图书馆借本书来学习帕斯卡,因为我们没有调制解调器,互联网也不存在。

在学习期间,我学习了许多其他语言——C、C++、Prolog、Lisp、Perl 等等。后来我成了一名 Java web 开发人员。我曾经数过,我已经用 30 多种语言写了代码——我不会在这里一一列举,有些相当晦涩难懂!

所以我用多种语言编写代码——但 Python 是我的最爱。我也一直喜欢 Lisp,我希望有一天能学习 Clojure。

你现在在做什么项目?

在过去的几年里,我主要专注于教学,除了我的爱好项目之外,我没有写过任何代码。我从事的大项目大多是课程——最近我在 FastAPI 上完成了一门新的 Pluralsight 课程,现在我正在开始一系列课程,希望能在今年晚些时候上线——不幸的是,我不能告诉你这些课程将会是什么。我也会更新一些我现有的课程。所以这将占用我大部分的时间,没有给严肃的职业发展留下空间。

当然,我也有很多非商业和私人项目。我是 Django 网站“教师部落”的主要开发者,这是一个与教授编码技能的同事合作的项目,在这里我们彼此分享机会。

我也有几个 Python 项目——我喜欢编写自己的工具,比如定制的发票系统..我也写了很多 shell 脚本,为了方便和系统管理,大部分都是简短的脚本。这是一直在进行的事情,所以它本身就是一个项目。

对了,我所有的教材都是用 Org 模式写的,用的是 Emacs。我基本上生活在 Emacs 中,我把我所有的笔记、计划等等都保存在 Org 文件中。我目前正在重写站点生成器,它从 Org 源代码创建我的在线课程材料。这是一个 emacs-lisp 项目,实际上我对这种有点奇怪的语言感到惊喜。但它永远不会取代 Python 成为通用语言。

哪些 Python 库是你最喜欢的(核心或第三方)?

这是个很难回答的问题!我通常对图书馆没有强烈的感觉。目前我最喜欢的一个库是 click ,它让创建带有命令行界面的程序变得如此简单。因为 click,我发现自己比以前更频繁地使用 Python 而不是 bash。

我的另一个最爱是 pytest 。我再也不会回去写测试类了。说到测试,另一个很酷的库是假设。pytest 和 hypothesis 的结合使我的测试代码更短、更简单,但也更正确和完整。

我对 Pathlib 也很满意,它是最近(相对)添加到标准库中的。每次我使用路径时,我都很高兴有这个可用的路径。

我还应该谈一下 web 开发。这可能是无聊和可预测的,但我最喜欢的是 Flask 和 Django。Django,因为这是一个如此成熟和完整的项目,并且仍然是一个愉快的工作。另一方面是因为它小巧而优雅。我觉得这两个项目展示了 Python 如何让我们创建出在许多其他语言中找不到的优美界面,同时 Python 给了我们解决现实世界问题的强大能力。

你是如何成为 Pluralsight 的作者的?

这是在 2013 年。我在教计算机科学,我已经在考虑成为一名自由职业教师。我在教一些 C#课程,有时会看一些关于 C#的复数课程。那时的 Pluralsight 还是一个很小的初创公司,主要是 C#内容。

一天晚上下班后,我收到了一封来自 Pluralsight 的营销邮件,内容是关于他们的新课程。在底部,它提到他们想给他们的库添加更多的主题,包括开源和 Linux 相关的内容。我认为这是一个巨大的机会——当时电子学习还相对较新,我认为它可能会变得巨大。

我熬夜把我的简历翻译成英文,写了一封电子邮件。当天晚上我就收到了回复,并在同一周接受了 Pluralsight 的采访。他们让我创建一个关于 Bash 的课程,我做了,结果非常成功。这是我作为一名自由职业者开始的动力——在接下来的一年里,我创作了越来越多的内容,一旦我从中获得了基本收入,我就辞职成为了一名自由职业者。我从未回头🙂

作为一名作者,你学到的前三件事是什么?

让我长话短说:

1.你只能通过写代码来学习编程。即使是最有天赋的人也不能通过看别人解释来学习如何编程。

2.杀了你的宝贝。许多开始教学的程序员,花太多时间谈论他们认为重要的东西。但这对你的观众来说并不重要或有用。

3.少即是多。不是每个人都需要了解 Python 的一切。我越来越意识到教孩子

谢谢你接受采访,Reindert!

本周 PyDev:Reinout van Rees

原文:https://www.blog.pythonlibrary.org/2016/09/05/pydev-of-the-week-reinout-van-rees/

本周我们欢迎 Reinout van Rees(@ Reinout van Rees)成为我们本周的 PyDev!Reinout 是 zest.releaser 的创建者/维护者。他有一个不错的网站,里面有一个 Python 博客,你可能想看看。我还建议查看他的 Github 页面,看看他参与了哪些项目。

你为什么开始使用 Python?

我来自荷兰,这当然让你在编程 Python 时有了些许优势。就学历而言,我是一名土木工程师。我上了所有可以上的编程课,但大部分当然是交通工程、建筑计算和水利工程等等。

2000 年,我在学习结束时参加了一个欧盟的研究项目,这个项目基本上是土木工程和互联网编程的结合。正是我需要的。我使用了一些 Java 库来进行 XML 处理(这在当时很流行),但是无法在一个重要的演示中及时完成。

因此...我试用了 Jython。用 Java Python 解释器调用 Java 代码要容易得多,我及时完成了演示。所以,我开始使用 Python 是出于需要,也是因为我不小心被它绊倒了。

在 2000 年中期发现 Python 之后,我开始在我的博士工作期间越来越多地使用它。Zope 当时就红了。我参观了许多早期的 Europython 会议。我很快就开始使用 Plone。当我获得博士学位后不得不找一份真正的工作时,我很偶然地在一家 Plone 公司结束了,做真正的编程赚钱。

你还知道哪些编程语言,你最喜欢哪一种?

嗯,Python 是目前为止我使用最多的语言。我以前很了解帕斯卡。Turbo Pascal 6 和后来的 Delphi 1。如果你称 XSLT 1.0 为编程语言:我已经用了两年了。当然,是一点狂欢。一点 Javascript。

最喜欢的?我已经很久没有给它编程了,我也没怎么用过它,它很难读,我只用它写了一个有用的程序,但是.... APL !“一种编程语言”。那种语言的关键词是点、斜线、希腊字母和奇怪的符号。如果我没记错的话,像“+/A”这样的东西会返回向量 A 的和,我可能是语法错了。但是我确实对那个带有 IBM APL 2.0 演示版的 3.5 英寸软盘很感兴趣!

你现在在做什么项目?

从 2010 年开始,我为....一家土木工程公司(公司的 2/3 是水利专家),做了大量的 Python/Django 编程(公司的 1/3 是程序员)。对于一个成为程序员的土木工程师来说,这是一个不可能的完美组合。尤其是因为从我家骑车只需 30 分钟。纯粹的幸福。

嗯,工作?目前主要是幕后工作。建立一个新的 Jenkins 实例,弄清楚我们应该如何使用 Docker,编写自动监控工具,zabbix 集成,指导新的程序员,一些系统管理员的事情,更新 python 3 的构建方法,重建我们的中央登录站点,等等。

因此,从努力思考 docker 策略到简单地享受快速监控脚本的乐趣。并且跟踪 Python 打包和 Django 发生了什么。

哪些 Python 库是你最喜欢的(核心或第三方)?
我先提一个我自己的。释放器。我在 2008 年就已经开始了。我仍然在每次发布 Python 包的时候使用它:它更新版本号,在 changelog 中记录发布日期,标记它,并可选地上传到 pypi。所有那些我懒得用手做的事情。许多其他人也喜欢并使用它。这是一个有趣的开源项目,尤其是我的兄弟是维护者之一。

一个不错的核心 Python 库?我一直很欣赏“临时文件”。以安全的方式创建一个临时文件或临时目录总是很方便的。我经常使用它。它只是做你需要它做的事情。

你还有什么想说的吗?
好了,我还没说我的爱好呢。我在第一个问题中跳过了这一点,因为我太忙于谈论 Python 了🙂

爱好?读历史书很好。我还喜欢家里的铁路模型。我已经接管了我们阁楼的一小部分,我正在模拟一条位于 1970 年的德国单轨铁路。这与编程是不同的(尽管我确实在一些地方使用了一些 Arduinos)。景观美化,电力,油漆,一切。这里有一张照片,来自一个 20 厘米宽、2 米长的模块,横跨楼梯,给你一个想法。如果你想看一些与 Python 完全无关的视频,谷歌一下“Eifelburgenbahn”!

reinout_railroad

感谢您接受采访!

本周的 PyDev:rmy Hubscher

原文:https://www.blog.pythonlibrary.org/2015/06/22/pydev-of-the-week-remy-hubscher/

本周,我们欢迎 RÃ my Hubscher 成为我们的本周 PyDev!我在 Mozilla 工作,是开源项目的积极贡献者。看看他的 Github 简介吧!让我们花些时间去更好地了解他。

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名法国开源程序员,住在雷恩的布里坦尼。

我毕业于法国理工学院(IUT)的计算机软件专业,然后在英国的朴茨茅斯大学获得了计算机科学学士学位,在那里我编写了 PyTalk,这是我最后一年的项目,也是一个带有视频集成的 Qt 概念验证 Python Jabber 客户端。

在我获得学士学位后,我从贝尔福-蒙特贝利亚理工大学计算机科学和嵌入式系统专业毕业,并创办了一家公司,为公司提供 Web 应用程序(主要使用 Python/Django)。

我会吹萨克斯管,也会弹一点吉他。我喜欢乘坐游轮和摩托车穿越各国。

你为什么开始使用 Python?

我听说过很多关于 Python 的事情,但是学习一种被命名为“蛇”的语言是非常可怕的。

从一开始我就对网络非常感兴趣,甚至在家里有互联网和使用 Netscape 帮助作为文档之前,我就在 Macintosh LC II 上使用 Netscape Composer 创建了我的第一个网站。

然后在 IUT,我被要求为城市学生协会建立一个网站。我计划开始使用我当时知道的 PHP/MySQL 和一些自制工具,但是 Damien Boucard 来告诉我他将帮助我使用 Python 和 Django 构建它,这是未来的框架。

我们在夏天花了 3 个月的时间试图用 Django 的第一个公开版本(0.91)来建立这个网站,但是当我们最终碰巧有了一些工作的时候,主机太高了,而且它从来没有在生产中使用过。

对我来说,这是一个开始,从那以后我再也没有用 PHP 建立过网站,我最后一个使用 Django 的大项目是卢森堡邮报的邮箱应用程序。

你还知道哪些编程语言,你最喜欢哪一种?

在学习期间,我学习了 C/C++/Java 和一点 LISP/PROLOG。对于 web,你需要了解一点 HTML/CSS/SQL/Javascript,但是我真正学会 Javascript 是在 Mozilla 的时候,在 Node 中构建 Firefox Hello 服务。

今天我会说我懂 Python 和 Javascript。编程语言不是真正的问题,问题是你能多快适应一个新的范例,并尽可能最好地完成工作。

我想先在 Go 中构建一个服务,然后在 Rust 中构建,但今天我想弄清楚如何测试 Python 3 asyncio 服务。

你现在在做什么项目?

我有很多开源项目,我喜欢继续维护这些项目,并积极与社区合作。

我的计划是将我需要在不止一个项目中使用的每一段代码开源。

今天,我在 Mozilla 服务上为 Mozilla 工作,我们去年建立了 Firefox Hello 服务,今年我们正在建立一个存储服务,以便让应用程序存储用户数据,以保护他们的隐私,并扩大规模。

哪些 Python 库是你最喜欢的(核心或第三方)?

很难说,这要看具体情况。今天,我真的认为 asyncio 可以成为下一代服务的伟大工具,但仍有工作要做,我想成为这一运动的一部分。

我也是 ZMQ 的忠实粉丝。

你还有什么想说的吗?

我喜欢使用的工具:Redis / PostgreSQL / Emacs。

今天,我真的很高兴能和我的团队、Mozilla 的人们以及 Python 社区的人们一起工作。

我也很高兴成为 Django 胡萝卜运动的一部分,作为一名导师不时地帮助人们女孩和男孩学习如何编码,我们需要好的编码员。

一周的最后 10 个 PyDevs

本周 PyDev:鲁文·勒纳

原文:https://www.blog.pythonlibrary.org/2020/11/23/pydev-of-the-week-reuven-lerner/

本周,我们欢迎鲁文·勒纳(@鲁文·勒纳)成为我们本周的 PyDev。Reuven 是一名培训师,在世界各地教授 Python 和数据科学。你可以在他的网站上了解更多。鲁文还有一份关于成为更好的开发者的时事通讯,你可能会喜欢。

鲁文还免费提供以下资源:

让我们花些时间更好地了解鲁文!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我在美国东北部长大,在麻省理工学院学习计算机科学,于 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)模块和包,(c)装饰者。我也意识到我的网上商店现在有太多的东西,人们很难知道从哪里开始。所以我开始着手重新做这件事。
  • 我正在为曼宁写一本关于熊猫的新书,我希望能比上一本书写得更快——这并不困难!
  • 我正在定期更新我的 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。我拿着一本完整的小说一头扎了进去。这很有趣,而且是系列的第一部,所以接下来至少还会有两部。它开始时更像是一个遗愿清单,但是当我深入研究“如何”写小说时,我发现它与编码有很多相似之处(真的。)我对讲故事和整个过程非常感兴趣。以至于它也开始改变我写非小说类文章的方式,变得更好。哦,和我以前的书不同,我用笔名写这本书。拥有另一个自我很有趣!😊

作为一名作者,你学到的前三件事是什么?

我喜欢这个问题,因为我真诚地相信这些要点对初露头角的开发人员也是很好的建议。

  1. 完美是完成的敌人。把该死的文字/代码写好就行了。稍后编辑/重构。把它们都写在纸上。回去把它做得漂亮些,以后再完善它。您不能编辑空白页,也不能编译空白页。所以再丑也要拿出来。
  2. 现在你在页面/文件上有些东西了,是时候“杀死”你的宝贝们了。删除整段文字/代码没问题。人们讨厌这样做,他们觉得自己失败了或者浪费了时间。这不是真的。每次总是以最好的方式写东西是很好的,但是没有人这样做。这是不现实的。那么如果你必须删除并重写一整个场景或类呢?你刚刚学到了一些东西。学习如何不做某事通常比学习“最佳”方式更重要。它还将帮助您更深入地理解某些东西为什么有效或无效。删除键是你的朋友,从中学习吧。
  3. 也许这应该先进行——但是制定一个计划。在你坐下来写一本书或一个应用程序之前,先把它计划好。你越是提前了解你想要的外观和感觉。您需要花费在编辑/重构上的时间就越少。写列表,勾画用户界面,无论需要什么,先计划好。

你还有什么想说的吗?

乌鸦队加油。

谢谢你接受采访,瑞奇!

本周 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 上还有一个训练营,一个小抄等等。你也应该看看罗德里戈的博客!

Rodrigo

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)。

Roman Right

你可以在 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.

Sarah Gibson

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.

Binder interface

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 源代码,似乎使用最多的是集合functoolsitertools 。至于第三方工具,我总是不得不提到 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!

Sean Tibor

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

有趣的是:我从来没想到会成为一名教师。我在大学和研究生院学习信息系统,学习用 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!

Sebastián Ramírez

Can you tell us a little about yourself (hobbies, education, etc):Hey! I'm Sebastián Rami­rez, 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 上的活动来了解他的更多信息。让我们花一些时间来更好地了解他!

Sebastian Steins

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名来自德国的软件开发人员,住在荷兰和比利时边境附近。互联网是在我上学的时候出现的。一直对电脑很着迷,想学编程。不幸的是,这在当时并不容易,我没有老师能在这件事上支持我。然而,当我得到我的第一个调制解调器时,一切都变了。互联网为我打开了一个全新的世界,我开始学习 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 频道或者她的网站上看到她的一些创作。让我们花一些时间来更好地了解她!

Sophy's LED Manicure

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我是一名设计师和制造商,目前主要从事可穿戴电子项目。我的背景是平面设计,在走向可穿戴电子产品的路上也做过时装和服装方面的工作。我喜欢探索人们与技术互动的不同方式,我的许多作品都受到科幻和流行文化的启发。我的项目经常将微控制器和 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 年,我把我所有的东西打包成一个图书馆。

我为这些算法的实现感到自豪,所以当第一批用户发现一些错误和不受支持的情况时,我感到很惊讶。正是在这里,我了解到,在适当的情况下,团队能够比个人做出更高质量的工作。当然也有例外,但是当我挣扎着放弃一段代码的所有权时,我会试着提醒自己这一点。

你认为在开源工作中学到的最重要的三件事是什么?

  1. 以人为本。复杂的技术只能带你走这么远;最终,成功关键取决于合作。
  2. 外面有很多比你聪明的人。没关系;向他们学习,并享受与他们一起工作。
  3. 当我们分享时,会有更多的分享。一起建设,我们可以建设得更多更好。

为什么 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 简介来了解她更多。

Stefanie Molin

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 还在做什么。

Sundeep Agarwal

让我们花些时间更好地了解 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 Shu Chang

苏珊·舒畅

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

你好。我叫 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 上的简介。

Tim Arnold

让我们花些时间更好地了解蒂姆吧!

能简单介绍一下自己吗(爱好,学历等):为无淀粉。

我真的,真的,喜欢阅读任何东西。除此之外,我喜欢黑客,开锁,进入森林,这在疫情期间尤为重要。

还有就是对摄影很感兴趣,找别人的新作,自己实践。

你为什么开始使用 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

  • 道格·赫尔曼
  • 玛格丽塔·迪利奥博士
  • 马里亚诺·莱因加特
  • 巴斯卡尔·乔德里
  • 蒂姆·罗伯茨
  • 汤姆·克里斯蒂
  • 史蒂夫·霍尔登
  • 卡尔查看
  • 迈克尔·赫尔曼
  • 布莱恩·柯廷
  • 卢西亚诺·拉马拉
  • 沃纳·布鲁欣
  • 浸信会二次方阵
  • 本·劳什

本周 PyDev:蒂姆·罗伯茨

原文:https://www.blog.pythonlibrary.org/2014/12/15/pydev-of-the-week-tim-roberts/

本周的 PyDev 是蒂姆·罗伯茨。虽然我们从未见过面,但他在几个 Python 第三方邮件列表上帮过我一两次,比如 wxPython、Reportlab 和(我认为)PyWin32。他经营着自己的咨询业务,可以通过电子邮件联系到以下地址:【timr@probo.com】T2。让我们花些时间去了解他吧!

TimFace

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我拥有俄勒冈州立大学的计算机科学学士学位(加油,海狸队!)在 Windows 3.0 测试版期间切换到 Windows 驱动程序之前,我花了 10 年时间为控制数据进行大型机操作系统编程。从那时起,我一直在从事 Windows 驱动程序和驱动程序支持工作(如诊断和支持应用程序)。

我在一家小型咨询公司做了 20 年的老板。对于一家小型企业来说,这是一个相当不错的记录。除了 3 名老板,我们还有 5 名员工,所以我想我们是“就业创造者”。

当我不在键盘前的时候,我是一名音乐家。我在一个社区乐队演奏单簧管,我弹钢琴为几个当地高中合唱团伴奏。我是一个百老汇音乐迷,所以我在当地三个学区的音乐剧院管弦乐队中演奏。今年春天我将表演“彼得潘”和“史莱克”。我也是一名将近 25 年的广场舞演员,我还是州广场舞俱乐部联合会的成员。

你为什么开始使用 Python?
我一直是一个探险家。我希望我的计算机为我做单调乏味和重复的事情。我相当擅长使用 Perl 来自动化我的环境,但我讨厌 Perl 程序看起来像 RS-232 行噪声的事实,并且在你写了它六个星期之后不可能理解它。当我在 2000 年看到 Python 1.6 时,我立即被人类可读的语法所吸引。 和功能强大的标准库。那时,我们管理自己的 Linux 服务器,试图找到合理(并且负担得起)的方法来管理电子邮件。我用 Python 编写了几个功能齐全的电子邮件包,部分原因是这些工具太好了。

许多程序员低估了可读代码的重要性。毕竟,正如笑话所说,如果很难写,就应该很难读。毕竟,他们为什么称之为“代码”?但事实是,大多数程序被阅读的次数比它们被编写的次数多得多。Python 以其非标点符号为基础的语法,使得编写可以像散文一样阅读的程序变得容易得多。

你还知道哪些编程语言,你最喜欢哪一种?

一般来说,我交付给客户的工作是用 C++和 C 语言完成的,因为那是驱动程序的世界。我为各种奇怪的处理器做了大量的汇编工作,加上 C#和大量的 Javascript。当我在 CDC 工作时,我是最好的 Fortran 程序员之一, 但是这些知识都被泄露了。如果有必要的话,我可能仍然会写 COBOL 和 Basic。我也是 Borland 的 Delphi 的狂热爱好者。我以前用 Delphi 做我所有的工具,但是自从 Python 进入我的生活后,我就没有做过任何 Delphi 编程。

Python 是我最喜欢的。当做驱动程序工作时,经常需要诊断套件来测试硬件和驱动程序接口。Python 在这方面很棒,因为编写可扩展的命令解释器很容易。

我试图学习 F#,我认为函数式语言有很好的概念可以教给我们,我喜欢 Python 的函数式扩展,然而,F#也患有同样的“标点语法”疾病,这使得 Perl 难以阅读。

你现在在做什么项目?

我正在做几件长期的事情,尽管没有一件是与 Python 相关的。我正在为一些定制的 USB 摄像头做视频捕获驱动程序。我正在为公司会议室的一个 7 英尺大的 LCD 面板系统做视频捕获驱动程序,在那里你可以插上你的笔记本电脑并与房间里的人分享。我正在为一家制造超声波心脏监护仪的医疗设备制造商做捕获驱动程序。超声波的输出碰巧看起来很像视频捕获,所以我非常适合。我正在为一个深度感应摄像头系统做驱动程序,有点像

做独立咨询的一个优势是日子永远不会无聊。我接触到各种各样令人难以置信的东西,从视频捕捉到音频响应曲线到激光光学到实时遥测到高速 USB 设备到性能分析到网络优化等等。当我早上起床时,我期待着去工作。

你最喜欢哪些 Python 库(核心或第三方)?

天哪,太多了。我想我最常用的库是 PIL,Python 图像库。我用它作为 PhotoShop 的脚本版本。作为一只恐龙,我生活在命令行中。我总是突然进入命令行解释器来查看图像的大小,或改变格式,或制作缩略图。作为一名音乐家, 我扫描我的音乐,将其放在三星 Galaxy Tab 12.2 英寸的平板电脑上以提高性能,我经常需要调整平衡对比度,一次在许多页面上以相同的方式进行阈值操作。PIL 为我做到了这一点。

然而,我使用 Python 的最大乐趣通常来自 NumPy 和它的朋友,包括 SciPy 和 matplotlib。我做了很多遥测和大量数据分析的项目。科学家和设计师经常给我 Matlab 中的分析算法。我已经非常擅长将 Matlab 翻译成 NumPy,我喜欢它的强大和灵活性。

ReportLab 是另一个让我受益匪浅的库。我以制作精美的印刷材料为荣,ReportLab 让我可以制作出精美的 PDF 文件,无论在哪里显示和印刷都很好看。

你还有什么想说的吗?

作为一个拥有 40 年编程经验的人,我觉得我应该对所有刚刚起步的年轻自以为是的人提出深刻而明智的建议,但我认为这些都已经说过了。Python 有一个很好的社区,这个社区对初学者来说是一个非常有价值的资源。不要害怕使用它。

谢谢!

前一周的 PyDevs

  • 汤姆·克里斯蒂
  • 史蒂夫·霍尔登
  • 卡尔查看
  • 迈克尔·赫尔曼
  • 布莱恩·柯廷
  • 卢西亚诺·拉马拉
  • 沃纳·布鲁欣
  • 浸信会二次方阵
  • 本·劳什

本周 PyDev:Tom Augspurger

原文:https://www.blog.pythonlibrary.org/2017/10/02/pydev-of-the-week-tom-augspurger/

本周,我们欢迎 Tom Augspurger(@ TomAugspurger)成为我们本周的 PyDev!汤姆是熊猫dask分布式 Python 包的核心开发者。你可以通过查看他的博客或者在 Github 上看到汤姆在做什么。让我们花些时间更好地了解汤姆吧!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

我开始对 2008 年席卷全球的金融危机感兴趣。这促使我学习经济学,试图弄清楚到底发生了什么,以及如何解决这个问题。我继续在爱荷华大学的研究生院学习经济学。我花了 3 年时间才意识到自己不适合读博士,所以我提前退出了硕士项目。

我的爱好曾经围绕着数据分析和为开源项目做贡献。自从去年有了儿子,养他就成了我唯一的爱好🙂

你为什么开始使用 Python?

大约 5 年前,我学习了 Python。在研究生院,我需要一些东西来帮助数据分析和模拟。他们教了我们一些 Matlab,这很好,但是我很快就去寻找从语言设计的角度来看能提供更多东西的替代品。我喜欢研究的编程和软件工程方面,就像我喜欢分析本身一样。

你还知道哪些编程语言,你最喜欢哪一种?

SQL 可能是我唯一能声称懂的其他语言。我已经学习了 R、Matlab、Javascript、Haskell、C 和 C++的一些知识,但 Python 无疑是我的最爱。我确实认为与其他社区互动很重要,这样我们就可以从他们解决问题的方式中获得灵感。我的一些最重要的贡献来自复制 R 开发人员 Hadley Wickham 的 API 设计。

你现在在做什么项目?

我帮助维护 pandas、dask 和 distributed,我忽略了一些我写的兼职项目,比如 engarde 和 stitch。

Pandas 提供了一些对数据分析有用的高性能数据结构,以及一些对这些数据结构进行操作的方法。它是 Python 对 dataframe 的首选实现,由 r。

Dask 和 distributed 是并行化现有科学 python 堆栈的相关项目对。Dask 提供了处理数组或数据帧的 API,这些数组或数据帧看起来像 NumPy 或 Pandas,但是是在大于内存的数据集上并行操作的。Dask 将使用您的单台机器上的所有内核;分布式做同样的事情,但是是针对整个机器集群。

哪些 Python 库是你最喜欢的(核心或第三方)?

当然是在达斯克和熊猫之后🙂我认为 seaborn 值得一提。这是一个基于 Matplotlib 的数据集统计可视化库。Pandas 内置了一些绘图功能,但大多数时候我告诉人们使用 seaborn,因为它做得更好。

你是如何开始熊猫和 dask 项目的?

对于 pandas,我从一个小的 pull 请求开始,修复一个远程数据提供使用的缺失值指示器。尽管只修改了 3-4 行,我还是设法完全弄乱了 git 命令,以创建一个干净的 PR。在维护人员平静地向我介绍了修复一切的过程后,我知道这是一个我想成为其中一员的社区。我一直在帮助解决问题,提交 PRs,并在 StackOverflow 上提交答案。

Dask 与科学 python 生态系统中的其他项目有着紧密的关系。我能够提交 PRs 来实现在 pandas 中工作的特性,但是在 Dask 中还没有实现。现在我在 Anaconda 工作,我的一些工作时间花在了 Dask 和熊猫上。

在开源工作中,你遇到过哪些挑战?

早期,很难将我的代码公开给所有人看。我是编程新手,不仅仅是 Python。至少对我来说,让别人评判你(和你)代码的恐惧已经消失了。

作为维护者,最困难的部分可能是熊猫的问题规模。在撰写本文时,我们有 2,038 个未决问题和 100 个未决拉动请求。很难知道对每个问题给予多少关注。

对于想加入开源项目的新开发者,你有什么建议吗?

找到一个你感兴趣的问题。单单利他主义不会促使我贡献出时间来写代码或解决问题。我需要投入到构建数据分析工具的大目标中(并自己使用这些工具)。

你还有什么想说的吗?

Pandas 和 dask 总是向新的贡献者开放,所以如果你对数据科学充满热情,请随时在 Github 上提出问题。

我目前正在考虑 python 的“可扩展机器学习”。基本上,采用科学家用于日常机器学习项目的工作流数据,并将其扩展到更复杂的模型和更大的数据集。我正在写博客(第一部分在http://tomaugspurger.github.io/scalable-ml-01.html)。如果你已经考虑过这个问题,那么请联系我们。

感谢您接受采访!

本周 PyDev:汤姆·克里斯蒂

原文:https://www.blog.pythonlibrary.org/2014/12/08/pydev-of-the-week-tom-christie/

本周我们邀请汤姆·克里斯蒂(@ _ 汤姆·克里斯蒂)作为本周的 PyDev。汤姆是 MkDocs 项目和 Django REST 框架的作者。让我们花些时间去更多地了解他。

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

在我的职业生涯中,我做过很多不同的事情。我最初在语音识别领域工作,后来转到网络,最后进入 web 开发。 网络发展之所以吸引人,是因为它更加直接。你制作的东西可以放在人们面前展示,而不是一直做非常抽象的后端工作。 在软件之外,我热衷于口语、长跑和弹奏尤克里里琴。

我和妻子、儿子住在英国的海滨城市布莱顿。这是一个非常古怪的地方,充满了有趣的&先锋派。

你为什么开始使用 Python?

主要是作为 Perl 和 bash 脚本的更好的替代品。那是很久以前的事了,现在已经很难记得我开始用它做什么了,但可能是像网络蜘蛛、测试脚本和数据分析之类的东西。

你还知道哪些编程语言,你最喜欢哪一种?

我曾经做过大量的 C 语言,然后是 C++,再加上大量的 bash 和 Perl。现在几乎都是 Python 和 Javascript。Go 和 Swift 都很有吸引力,但我还是从来没有抽出时间去使用它们。

你现在在做什么项目?

现在我正在努力开发 Django REST 框架 3 。我们非常幸运有一个非常成功的 Kickstarter ,所以我可以在带薪工作时间从事这个项目,这非常自由。我还关注我超级喜欢的 MkDocs 。当我在 Kickstarter 上工作时,Dougal Matthews 已经接管了这个项目的主要维护者,他做了一件了不起的工作,让它朝着一个合适的 1.0 版本前进。我也有一些关于超媒体的有趣的东西,我正在埋头苦读,但更多的内容改天再说。

哪些 Python 库是你最喜欢的(核心或第三方)?

Tox 是一个相当不错的工具。霍尔格·克雷克尔在这方面的持续努力值得高度赞扬。当然,还有姜戈和那里的整个生态系统。它可能不总是最美观的,但它确实能帮助你快速完成任务。它所包含的结构和惯例对于长期维护也是非常重要的,并且能够在不同的项目之间轻松移动。

你还有什么想说的吗?

我现在手头没有俏皮话,所以没有。

非常感谢!

前一周的 PyDevs

  • 史蒂夫·霍尔登
  • 卡尔查看
  • 迈克尔·赫尔曼
  • 布莱恩·柯廷
  • 卢西亚诺·拉马拉
  • 沃纳·布鲁欣
  • 浸信会二次方阵
  • 本·劳什

本周 PyDev:Tommy Falgout

原文:https://www.blog.pythonlibrary.org/2020/03/09/pydev-of-the-week-tommy-falgout/

本周,我们欢迎 Tommy Falgout(@last cool name)成为我们本周的 PyDev!汤米在机器人夹子项目上工作。你可以通过查看他的网站来了解他还在做什么。让我们花一些时间来更好地了解汤米!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

I grew up in the bayous of Louisiana, and while everyone else was interested in 4-wheeling and hunting, I gravitated towards computers and spent hours on my Commodore 64.  Early on, I knew what it meant to be an outcast.As I matured, my hobbies became numerous and varied, but all focused around my passion of building.  For 5 years hosted and competed in Dallas/Fort Worth's annual trebuchet competition: Slingfest, and was even featured on an episode of Dude Perfect on Nickelodeon as a Trebuchet expert (complete with my own IMDB page!).  I also volunteer at a local Makerspace in Plano, TX (TheLab.ms), built a LEGO Robotic Clippy and competed in the Red Bull Soapbox Derby race.  After a few exciting near-misses from bodily harm, I've settled down and recently taken up crochet and hobby electronics.

你为什么开始使用 Python?

My first experience with Python was over 15 years ago when I needed to automate ~100 network switches and I had to choose between Python and Perl.  I will admit, I chose Perl because I liked its terseness and didn't like using forced spaces.  Looking back, that was a silly reason as I created really unreadable code and hardly anyone uses Perl anymore. (Except for maybe Larry Wall)My second experience was about 10 years later when working for Yahoo and I wrote their Network Automation Discovery System.  I took my lessons learned from my previous experience and wrote it in Python.

你还知道哪些编程语言,你最喜欢哪一种?

在涉猎 Go、Rust、Erlang 和 Ruby 的同时,我用 C、C++、Java、PHP、Python、Javascript、Typescript、Perl 和 Clojure 编写过产品代码。

Funny enough, my favorite is assembly.  Because I could trust it.  I never wrote anything useful; however, there's a lot less surprises when there's few language primitives.Being realistic my favorite is Python, as it's easy to get started and the community support is strong so there’s modules for almost everything.

你现在在做什么项目?

Outside of work, three main projects are Robo-ClippyLED Lanyard and whatever crochet pattern inspires me.  2 of those 3 projects are written in Python, only because I haven't incorporated Python and crochet. Yet.

哪些 Python 库是你最喜欢的(核心或第三方)?

I'm a fan of simple interfaces and few surprises.  When getting started with Python the "request" library really hit that for me because most of my projects start with HTTP API.  I'm also a huge fan of using a REPL.

你写博客的动机是什么?

My mother was a librarian, so information sharing is in my DNA.  Since I love integrating technology, I often hit fringe cases that others haven't hit but will soon enough.  I want to share my findings with the world in hopes of saving others time.I've also been in meetings where the client said that they knew me because of a blog article I've written.  That felt amazing as I had an instant connection with them and the rest of the meeting went extremely smooth because of a background of trust.

我看到你帮助组织了一个创客空间。你是如何进入组织的?

Because I love building and was already organizing a trebuchet competition, it made sense to join forces with the Plano, TX Makerspace and build something together.  It's exciting to work with like-minded builders who aren't afraid to try something new and love bounce ideas off of each other.  If you're not already involved in a local Makerspace, I highly recommend it because they are a great hub of knowledge and experience that you wouldn't get otherwise.  For example, I got up the confidence to build and fly my a drone (Thanks Pat and Brian!).  I've made many friends there that I will never forget.

你对其他想创建 meetup 的开发者有什么建议吗?

If something has sparked a passion in you, the best thing you can do is share it.  So often, we're waiting for someone else to take the reins, but as a programmer you’re are a natural leader. You have an innate ability to create ideas and see them to completion.  Yes it's scary, and yes, you might fail.  But it's worth it.

你还有什么想说的吗?

I've love to share my favorite tech talk, by Rich Hickey: Simple Made Easy.   His analysis of Simple vs Easy, Hard vs Complex really stuck with me and changed the way I build systems.Thanks for doing the interview, Tommy!

本周 PyDev:托尼·罗伯茨

原文:https://www.blog.pythonlibrary.org/2021/09/27/pydev-of-the-week-tony-roberts/

本周,我们欢迎托尼·罗伯茨成为我们本周的 PyDev!Tony 是 PyXLL 的创建者和维护者,这是一个微软 Excel 的付费插件,允许你使用 Python 编程语言编写 Excel。你可以在 GitHub 上看到托尼还在做什么。托尼在媒体上为数据科学网站撰稿。

Tony Roberts

让我们花些时间来更好地了解托尼!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)?

当然可以!我从小就在以这样或那样的形式写软件。从小到大,我一直对编程感兴趣,但我想象自己会从事一些更基于硬件的工作,因为我更喜欢电子学。我在大学学习期间对软件开发变得更加认真,对计算机图形学最感兴趣。毕业后,我很幸运地找到了一份工作,和一些非常棒的开发者一起开发视频游戏。虽然这些天我花了很多时间在 Python 上,但我仍然对低级编程情有独钟。

后来我搬到了伦敦,在一家对冲基金的一个小团队里找到了一份工作。从视频游戏转到金融行业感觉是一个巨大的变化,我一点也不确定我是否在做正确的事情,但这是一个令人难以置信的团队,我非常喜欢与他们一起工作。从那时起,我开始意识到 Excel 对许多人的工作是多么重要,这也是我开始创建 Python Excel 插件 PyXLL 的原因。

我也很喜欢激流皮划艇。我从事这项工作的时间可能和我写代码的时间一样长!这是一项伟大的运动,它带我去过世界上一些令人惊叹的地方,比如赞比亚、厄瓜多尔和尼泊尔。我很幸运,距离英国的奥林匹克激流回旋球场只有很短的车程,虽然它与异国的偏远河流不一样,但它是一个很棒的训练设施,我经常利用它。

你为什么开始使用 Python?

当我还在上大学的时候,我在为一个客户开发一个 web 应用程序,我想大概是在 1999 年或者 2000 年。那是在每个网站都在使用 LAMP stack 的时候,Python 并没有真正引起很多人的注意。我参加了一个开发者大会,听到了一个关于 Python 的演讲,这是我第一次感兴趣的地方。我确实用 Perl 完成了应用程序的后端,因为不值得花费额外的时间和精力在中途切换语言,但是在业余时间,我开始用 Python 做一些业余项目。

几年后,当我发现自己在伦敦的一家对冲基金从事金融工作时,我才真正开始以专业的身份使用 Python。我参与的第一个大型项目是将基金从母银行继承的遗留系统迁移到新的第三方系统。这个第三方系统选择 Python(当时是 2.3)作为他们的脚本语言。所以,我们开始越来越多地使用 Python,直到我们创造的几乎所有新东西都是用 Python 写的。

真正让我震惊的是 Python 的可扩展性有多好。还有其他语言(可以说)也具有同样的表达能力或与 Python 兼容的特性,但没有多少语言能像 Python 那样简单地下降到 C 语言中来与本地库集成。我知道编写 C 扩展实际上是相对小众的,但这是我最喜欢的 Python 特性之一。

你还知道哪些编程语言,你最喜欢哪一种?

那是一个困难的问题!这些年来,我使用了很多不同的语言,从汇编语言到 Java 语言,以及介于两者之间的所有语言。他们都有自己的长处和短处。诀窍是决定哪种语言适合每项任务。我认为除了了解编程语言,我真正喜欢的是学习新的语言。学习一门新语言真的会让你思考你已经知道的其他语言。看到不同的人和社区如何对待事物是很有趣的。如果你只使用一种语言,我觉得你真的限制了自己作为一个开发者的能力。

我一遍又一遍反复学习的一种语言是 C++。当与 Python 开发人员谈论最喜欢的语言时,提起 C++似乎令人惊讶,但我真的很喜欢它。看着 C++进化和转变真是令人着迷。它与 10 年前的语言相去甚远,这令人震惊(以一种非常好的方式!).我的 Python Excel 插件 PyXLL 实际上大约有 80%是 C++语言,剩下的是 Python 语言(还加入了一些汇编语言!).

TypeScript 是我最近经常使用的一种,我真的很喜欢它。一开始我持怀疑态度,非常想继续使用普通的旧 Javascript。我很高兴我没有。一旦你进入这种语言,它真的令人印象深刻,围绕它的工具和反应意味着一旦你掌握了基本知识,你会有惊人的生产力。

你现在在做什么项目?

可以想象,运行 PyXLL 本身就是一项全职工作!在过去的几年里,我们真的成长了很多,我花了很多时间与用户交谈,了解他们如何工作以及他们需要 PyXLL 提供什么。我仍然做很多实际的产品开发,了解人们喜欢什么和不喜欢什么对我来说很重要,这样产品才能不断改进。

就在最近,PyXLL 增加了对“自定义任务窗格”的支持。这使您可以使用 PySide、PyQt、wxPython 或 Tkinter 等 Python GUI 工具包之一编写用户界面,然后 PyXLL 会在原生 Excel 任务窗格中无缝地托管它。这是 PyXLL 用户长期以来的要求,也是一个非常复杂的项目,有一些真正的技术挑战。一旦它准备好了,我就想到 Jupyter 笔记本可以在任何浏览器上运行,而 Qt 有一个浏览器插件...因此,使用这个新功能,Juypyter 笔记本可以托管在 Excel 任务窗格中!然后,将一切与同样运行在 Excel 中的底层 Python 内核挂钩就变得非常简单了。现在,您可以用 Python 编写代码,编写 Excel 函数和宏,并在 Python 和 Excel 之间移动数据,而无需离开 Excel。我仍然喜欢使用 Python IDE 来编写大量的代码,但是能够在 Excel 中用 Python 交互式地发挥创意和尝试一些东西真的很酷。

有趣的是,一个想法常常会像这样引出另一个想法。Excel 中的 Jupyter 笔记本并不是真正计划好的,它只是因为任务窗格功能而产生的。

哪些 Python 库是你最喜欢的(核心或第三方)?

除了通常的熊猫、小狗、熊猫等。有几个我会提到的,可能不太明显,在我看来,有时被低估了。pywin32 包对我职业生涯中的许多不同任务都非常有用。SqlAlchemy 也一直给我留下深刻的印象。

Mark Hammond 对 pywin32 包所做的工作令人难以置信。你可能会说,随着 ctypes 的加入,它不再像以前那样重要了,但它仍然是从 Python 访问 Windows APIs 的最简单的方法。win32com 包是经过深思熟虑的。即使对于 COM 的憎恨者来说,它也让编写 Windows 应用程序的脚本变得如你所希望的那样简单!

每当我用 Python 做数据库工作时,我都会使用 SqlAlchemy。我越深入了解它,我就越欣赏它的设计和它的工作原理。我喜欢“建筑的一部分”这个说法。它对于按需构建复杂的查询非常强大。

我可以继续命名我非常欣赏的 Python 包,但是我想我最感激的是存在的多样性和不断构建它的 Python 社区。我参与了许多开源项目,已经记不清参加了多少会议。Python 社区是非常独特的。

Python Excel 插件 PyXLL 是如何产生的?

2004 年左右,当我搬到伦敦时,我的职业发生了变化,从视频游戏转向了金融。我以前从未真正关注过 Excel,但显然,我知道它是什么。我真的很幸运,我和一些很棒的人一起工作,花了很多时间和交易员、量化分析师和开发团队之外的其他人一起工作。这些人是 Excel 大师,在 Excel 中生活和呼吸。我们构建的所有东西都是用 Python 编写的,所以这意味着任何对他们真正有用的东西都需要一种从 Excel 导入和导出的方法。

在那份工作中,我花了一些时间弄清楚 Python 和 Excel 如何通过 COM 进行交互。您可以用 Python 编写 Excel 可以使用的 COM 控件,也可以使用 Python 中的 COM 编写 Excel 脚本。这在一定程度上是可行的,但是它总是局限于你可以通过它的 COM API 使用 Excel 做的事情,而且非常慢。

我用 C#编写了 Excel 插件,这比使用 Python 和 COM 提供了更好的集成水平,我认为应该有更好的方法用 Python 来做同样的事情。

离开那家公司后,我不能放弃这个想法,想出了一种将 Python 嵌入 Excel 的方法,这种方法可以将 Python 函数动态地反映到 Excel 中。这需要一些非常复杂的代码来实现,但是我已经证明了这是可能的!我给几个人看了第一个版本,其中一个人当时负责伦敦 Python meetup,建议我在那里展示。在最初的几个星期和几个月里,我得到的反应是惊人的,我全身心地投入到构建第一个版本中,让它进入一些用户的手中。我认为我最满意的一件事是,那些第一批客户在 10 年后仍然是 PyXLL 的用户,我非常感谢他们的支持。

是什么让 PyXLL 比其他 Python Excel 包更好,比如 XLWings 或 OpenPyXL?

这些软件包确实非常不同,但这确实经常会引起混淆,因为从表面上看,它们似乎在处理同一类问题。

PyXLL 是唯一一个将 Python 解释器作为 Excel 插件嵌入到 Excel 中的工具。它允许您用 Python 编写 Excel 加载项。这就是你如何从 Excel 中直接调用 Python 函数,而不需要任何 VBA 或 COM 之类的东西。PyXLL 适用于那些想要编写自己的 Excel 插件来向 Excel 用户公开 Python 代码的人。通常,他们自己也是 Excel 用户,并且发现在 Excel 中使用 Python 函数库的组合对他们来说效果很好,但是经常是开发团队向非开发团队交付功能。例如,许多 PyXLL 用户是银行和对冲基金的交易团队,他们在 Excel 中工作,但需要访问 Python analytics。我总是喜欢说,有了 PyXLL,你可以像使用 web 浏览器一样使用 Excel 它只是让用户访问你的 Python 代码的前端。使用 PyXLL,Excel 用户通常甚至不知道他们正在做的是用 Python 编写的,因为一切都无缝地集成到 Excel 中。

OpenPyXL 是完全不同的东西。这是一个很棒的包,也是我经常向人们推荐的包。它用于读取和写入 Excel 文件,而不是扩展或使用 Excel 的实时实例。对于许多任务来说,这正是你想要的。如果您正在运行一个通宵批处理过程,必须通过电子邮件向团队发送报告,那么您真的不希望在 Windows 服务器上运行 Excel!OpenPyXL 理解 Excel 的文件格式,并直接处理这些格式,而不是处理 Excel 应用程序本身。

Xlwings 又不一样了。Xlwings 旨在用于编写 Excel 脚本,在 Windows 上使用 Excel COM API,在 macOS 上使用 AppleScript API。如果您需要与正在运行的 Excel 应用程序进行交互,例如,从实时电子表格中读取一些值或粘贴一些值,您可以通过 Excel 的 COM API 来完成。Xlwings 在此基础上提供了更高层次的抽象,但这并不等同于编写一个本机的高性能 Excel 插件,以 PyXLL 的方式将 Python 集成到 Excel 中。

PyXLL 被各行各业的公司和个人广泛使用。最常见的主题或用例是,人们正在开发或已经拥有一些 Python 代码,他们需要向 Excel 公开这些代码,以便作为某些分析的一部分进行交互调用。如果他们将 Excel 作为工作流的一部分,有时是为了他们自己,或者有时是为了在整个组织中推广以服务于所有 Excel 用户。例如,交易员用来进行实时决策的金融分析。据我所知,这不是任何其他产品都可以做到的。就在今天早上,我收到了一封电子邮件,有人告诉我 PyXLL 在为他们的房子重新融资时帮了我多大的忙!我永远不会厌倦听到 PyXLL 是如何被使用的,通常它与我开始时所设想的大相径庭。

托尼,非常感谢你接受采访!

本周 PyDev:Tonya Sims

原文:https://www.blog.pythonlibrary.org/2021/09/20/pydev-of-the-week-tonya-sims/

本周我们欢迎 Tonya Sims ( @TonyaSims )成为我们本周的 PyDev!Tonya 是 Vonage 的 Python 开发者倡导者,也是真正的 Python 社区的活跃成员。Tonya 最近在 EuroPython 2021 上做了一个名为“Python 框架的乐趣:FastAPI vs Flask”的演讲。

Tonya Sims

让我们花些时间更好地了解 Tonya!

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

当然可以!我以前是职业运动员,后来成了皮托尼斯塔。我在欧洲和 WNBA 打过职业女子篮球。

小时候,我父母买了一台电脑,那是一台德州仪器,我第一次编程是在那台机器上做 Basic 语言。该死。我真的希望我能坚持下去,但是学校和运动主宰了我的生活。

在威斯康星大学,我在女子篮球队打球时主修商科。打完职业比赛后,我开始做医药销售代表。虽然我很尊重这个职业,但我觉得它不太适合我的创造力和分析能力,所以我转行去了芝加哥。这是我再次学习编码的地方。

我的第一份技术工作是在一家金融服务公司工作,但不是任何类型的技术专家。我是一名行政助理临时工,在他们的技术部门协助我们部门的副总裁。基本上,我的角色是接电话、做笔记和为办公室订披萨(LOL)。

这不可能是我的生活!所以我开始学习基本的 UNIX 命令,这样我就可以行动了。我最终得以在那家公司担任计算机操作员,在一个巨大的数据中心交换磁带。这是我技术生涯的良好开端,但我不想最终被归类为磁带交换者。

这是我自学如何编码的时候。

我从视觉 Basic.NET 开始(不!),移到了 C#(不对!),在研究生院学的 Java(没有!),过渡到 Ruby(不!).然后神奇的事情发生了。

我发现了 Python…剩下的就是历史了。

多年来,我在技术领域担任过不同的角色,从软件工程师到测试软件工程师,再到构建工程师。

目前,我正在 Vonage 担任我梦想中的角色,成为一名 Python 开发者倡导者。

你为什么开始使用 Python?

我开始使用 Python 有很多不同的原因。

我突然明白了。我不确定我涉足的其他语言是什么样的,但是当我开始学习 Python 时,编码概念开始变得更有意义。不是说我在 24 小时内神奇地学会了 Python(难道没有书承诺这一点吗?).我的 Python 之旅确实花了一些时间,而且我每天都在学习新的东西!

Python 社区无疑是最好的。我感到如此受欢迎和支持。人们为我欢呼,我也为他们欢呼。获得帮助和提出问题也是非常鼓励的。Python 的开源方面也吸引了我,这也是我相信社区会轰动的原因之一!

你还知道哪些编程语言,你最喜欢哪一种?

我知道一些 JavaScript,并且在 Udemy 上的在线训练营中学习过。Twitter 上似乎总是有关于 Python 和 JavaScript 的竞争,但我觉得这两者合作得很好。

我在 Vonage 的角色是维护 Python SDKs 和 API,经常需要构建前端来测试我的更改,这通常是用 Javascript 完成的。

我绝对鼓励人们学习多种语言,尤其是 Python 和 JavaScript。

你现在在做什么项目?

目前,我正在为 NBA、WNBA、NFL、MLB 以及大学橄榄球和篮球建立一个体育指数。这个想法是,它会抓取网页,并根据统计数据和其他因素实时对玩家进行排名。我还将情绪分析融入其中,以便发现积极或消极的消息。所有这些对于幻想运动的竞争者在选择运动员时都是很重要的。

哪些 Python 库是你最喜欢的(核心或第三方)?

我经常使用请求库,自从开发和调用 API 以来,在过去的几个月里,我对它有了更好的了解。它不是最迷人的库,但是当涉及到 HTTP 请求调用者时,它绝对能完成任务。

我也在涉猎 PyGame。一直想做游戏尤其是现在应用中游戏化使用的增多。兴奋地看着这次旅程将我带向何方!

我知道你是 Python 开发者的拥护者。你能描述一下那是什么,你是做什么的吗?

这是我作为 Python 开发者倡导者的第一个角色,也是我梦寐以求的工作!在我的角色中,我有 70/30 的分配,所以我的大部分时间都花在 Python 编码上。例如,为我们的 API 维护和构建新的特性。

我其余 30%的时间都在向会议提交我的论文征稿(CFP)和在全球范围内做技术演讲。

作为 Python 开发者的拥护者,培育 Python 社区是我的工作。确保他们作为新用户或现有用户支持我们的产品和服务。

是什么让你决定成为 Python 大会的演讲者?

这是我一直想做的事情,我喜欢教书。

我过去教过 Python,我非常喜欢分享我所学到的知识。

Tonya,谢谢你接受采访!

本周 PyDev:Tracy Osborn

原文:https://www.blog.pythonlibrary.org/2015/09/28/pydev-of-the-week-tracy-osborn/

本周,我们欢迎特雷西·奥斯本成为我们本周的 PyDev。她活跃在 Python 世界的 Django 部分。让我们花些时间去了解她。

tracy_osborn

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

肯定的事!我从 1996 年 12 岁就开始建网站了!我一直很喜欢在网上工作。我最初上大学学的是计算机科学,但我对 Java 有一段可怕的时间。因为我更喜欢与网络打交道的视觉方面,我转到了艺术专业,专攻平面设计,成为了一名网页设计师。我主要从事前端工作,直到我开始构建我的初创公司 WeddingLovely ,那时我自学了如何用 Python 和 Django 编程。

电脑之外,我喜欢户外活动——我是一个狂热的背包客,喜欢登山。去年夏天,我独自完成了约翰·缪尔之路,全长 200 多英里,耗时约三周。我做过的最好的事情之一。

你为什么开始使用 Python?
如前所述,我和 Java 相处得很糟糕,这让我对编程产生了持久的恐惧。我现在的丈夫是一个 Python 爱好者,他推荐我学习 Python(这是一个非常简单的 Python 和编程逻辑入门教程)和 Django,这对 web 应用程序非常有用。当我发布我的第一个应用程序( WeddingInviteLove )时,我对 Python 知之甚少,但是随着这个应用程序和我的创业公司的成长,我不断地学习并变得更擅长编程。

你还知道哪些编程语言,你最喜欢哪一种?

我想我已经不记得任何关于 Java 的事情了!我几乎只知道 Python 和一点 Javascript。

你现在在做什么项目?

在编程方面,我仍然作为唯一的程序员在开发 WeddingLovely。它几乎可以自己运行,但我仍在构建一些功能,以及更多使其自动化的方法。继续工作还是很有趣的,而且我现在已经和大约 5000 家企业建立了合作关系,这真的很鼓舞人心。

我也在努力推销我的编程书籍, Hello Web App 。该书于今年 5 月 4 日发行(五四与你同在!)但是我一直在发布教程来补充这本书,像这个联系形式教程

我还将发布一本名为 Hello Web App:中级概念的后续书籍,该书将于 12 月发布!新书涵盖的主题包括添加支付、API、使用 Sass 等前端工具以及其他中间概念。现在正在 Kickstarter 上筹款:https://www . Kickstarter . com/projects/1868398473/hello-web-app-intermediate-concepts

哪些 Python 库是你最喜欢的(核心或第三方)?

我最近使用 EasyPost 为我的 Hello Web App 书籍生成标签——比使用 USPS 容易多了!我用他们的 API 写了一个工具,这里是

你还有什么想说的吗?

我真的很喜欢 Python,构建 web 应用程序非常有趣。我真的很喜欢让更多的人加入 Python 阵营!

谢谢!

一周的最后 10 个 PyDevs

本周 PyDev:Trey Hunner

原文:https://www.blog.pythonlibrary.org/2015/09/21/pydev-of-the-week-trey-hunner/

本周我们欢迎 Trey Hunner ( @treyhunner )成为我们本周的 PyDev!特雷写了一个编程博客,值得你花时间去看看。他在他的本地 Python 社区以及全球社区中非常活跃。让我们花些时间去了解特雷。

你能告诉我们一些关于你自己的情况吗(爱好、教育等)

小学发现 web 开发,上学计算机专业,2010 年开始做 web 咨询。

我共同组织了我们当地的 Python、JavaScript 和 Ember.js 会议,并向成人(通过研讨会和学习小组)和儿童(通过课后计划)教授编程。

我还帮助维护一些开源库,并尽可能地为开源项目做贡献。我经常假装我用的开源代码在我的控制之下,开发者是熟人。我这样做是因为我发现当我愿意看代码并与开发人员交流时(当然是礼貌和亲切地)做出贡献会更容易。

你为什么开始使用 Python?

2009 年,一个朋友问我能不能帮忙用 Python 做一个网站。我们最初没有使用 Django,但在另一个项目中使用它后,我们最终改用了它。

在我学习 Python/Django 的冒险过程中,我发现DjangoPackages.comdjangosnippets.orgpyvideo.org非常有用。我的大部分网站都非常依赖第三方 Django 应用,尤其是在我刚刚起步的时候。我学会了如何使用 GitHub,并通过修复 bug 和向我使用的开源 Django 包添加特性来编写 pull 请求。

你还知道哪些编程语言,你最喜欢哪一种?

我玩过很多语言,但很多都不流利。通过足够的谷歌搜索,我可以编写 Ruby、C、Java、Haskell 和 Scheme。

对于最喜欢的语言,我在 Python 和 JavaScript 之间徘徊。

Python 是我最喜欢的命令行脚本和后端 web 应用程序。Python 有很棒的语法,丰富的标准库,以及一个非常大的第三方库生态系统。

JavaScript 是前端 web 开发的语言,这是我所做的大部分工作。我曾经做过全栈 web 开发,但我最喜欢前端,因为我喜欢贴近用户工作。

由于我向前端开发的过渡,我正在重新发现我在 Python 社区中的位置,并且我已经花了更多的时间来协助 Python 项目的前端开发。

你现在在做什么项目?

我正在做几个有趣的兼职项目,其中大部分还没有准备好。我做了 http://Unicode。聚会最近因为我找不到一个好的 unicode 表情符号搜索引擎。

我还花时间开发课程,并在当地一个名为“神奇程序员联盟”的儿童课外项目中教学。我们正在开发网络课程来教授 HTML、CSS 和 JavaScript。

哪些 Python 库是你最喜欢的(核心或第三方)?

我喜欢 unittest . mock(Python 3.4 中 PyPI unittest.mock 上的 mock)在我的测试中进行猴子修补和嘲讽。我喜欢发出 HTTP 请求的请求。我还喜欢 flake8 用于代码风格的实施,以及 cookiecutter 用于创建新的 Python/Django 项目。

你还有什么想说的吗?

每天练习移情。我们的大脑擅长群体思维,与群体外的人产生共鸣需要努力。在网上,在工作场所,在科技活动中:永远要感同身受。

谢谢!

一周的最后 10 个 PyDevs

posted @ 2024-11-02 15:55  绝不原创的飞龙  阅读(128)  评论(0编辑  收藏  举报