本周 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-yeah 和 gloss 。还有很多还没有到测试阶段,但我希望能尽快推出更多!
我还在为 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 定期在纽约地区演出。在从事技术工作之前,我从事政治活动。
你为什么开始使用 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.
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.
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 英里!我有两个上小学的女儿和一个可爱的妻子,她们都滑雪,让我对滑雪感到悲伤。
我很幸运,从小就以编程为生,主要是低级和嵌入式软件,偶尔也做一些企业级的高端代码。
你为什么开始使用 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!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
我的职业生涯始于研究降雨径流模型。我参加了土木工程/系统工程水资源联合学士/硕士项目,在那里我探索了降雨径流模型校准。后来,我在美国地质调查局应用降雨径流模型。多年来,我的建模工作以及应用、支持和开发数据分析软件的工作使我越来越深入软件工程。最终,在获得软件工程硕士学位并加入 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 的核心团队和所有帮助它成为今天的贡献者。除此之外,我真的很喜欢和以下人一起工作(绝对没有特别的顺序):
- 诗歌(刚刚工作的依赖管理器):https://python-poetry.org/
- httpx(你需要的最后一个 http 客户端):https://github.com/encode/httpx
- shiv (python zipapps,但支持 venv):https://github.com/linkedin/shiv
- 权利(Reddit API 包装器):https://权利. readthedocs . io/en/稳定/
- Django-HTMX(Django 视图中的本地HTMX支持):https://github.com/adamchainz/django-htmx
- 布莱克(不妥协的代码格式化者):https://github.com/psf/black
外面有这么多令人惊奇的包和库;在我经常使用的所有工具中,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 永远不够用)。在小学,我开始用 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 上发布。这将是我第一次在大会上发言,所以我既兴奋又害怕!
除了 PyCon,我最新的公共项目是一个围绕 sqlite3 模块的 asyncio 包装器—aiosqlite。它允许异步代码继续运行,而数据库查询或事务在单独的线程上运行。这对于我用 asyncio 构建需要数据库的独立应用程序很有用,但不需要像 MySQL 这样的专用服务器。
哪些 Python 库是你最喜欢的(核心或第三方)?
我强烈支持为代码质量和可维护性设定高标准,不管一个项目有多琐碎或重要。鉴于此,我非常喜欢类型模块中的新数据类型和特性,这使得创建良好类型的数据结构和模块变得非常容易。结合 mypy 、 pylint 、 bugbear 和优秀的新自动格式化程序 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 创建的。最终,这个项目失败了,只有几百个用户。你可以在下面看到它的图像:
在放弃工程师的沙盒六个月后,我们重新审视这个想法,重新评估。我们有 3 个体会:
1.我们的主要目标受众(机械工程师)大多对编程不感兴趣。
2.该软件对开发人员(我们的第二个目标受众)来说太严格和有限了。有限的部件、布局、有限的第三方可操作性等。
3.大多数开发人员更喜欢使用开源库。
从这些实现中,我们回到了绘图板,并决定制作一个完整的 GUI 库。这个迭代是开源的,是 Python 的扩展(而不是一个独立的软件),并且尽可能容易使用。
在迭代之间,我们爱上了 C++库,亲爱的 ImGui,因此决定使用它作为基础库来构建。由于 Dear ImGui 是一个即时模式 Gui 库,与其他 ui 库相比,它允许我们使 Dear PyGui 非常动态。
自从我们在 2020 年 7 月发布了第一个公开测试版以来,亲爱的 PyGui 的人气持续快速增长:
作为一名开源开发者,你学到的前三件事是什么?
作为一名开源开发者,我了解到:
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,我们教授数据科学。特别是,我开发了一个训练系统,可以帮助人们记忆语法,并在编写代码时变得“流利”。
如果你曾经忘记了一段语法,不得不去谷歌一下,你就会知道忘记语法是对生产力的一个主要拖累。我创建了一个训练系统来解决这个问题:
- 将语法分解成可学习的小单元
- 给人们一个记忆语法单元的训练系统
- 向学生展示如何将碎片重新组合在一起进行实际工作
值得表扬的是,这个系统很大程度上是基于蒂姆·菲利斯在《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!
Related Articles
本周 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
- 马特·哈里森
- 阿迪娜·豪
- 诺亚礼物
- 道格拉斯·斯塔内斯
- 可降解的脊椎动物
- 迈克·弗莱彻
- 丹尼尔·格林菲尔德
- 伊莱·本德斯基
- Ned Batchelder
- 布莱恩·奥克利
本周 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 的代码。
让我们花些时间来更好地了解于尔根吧!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
嗨,我是尤尔根。我是 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 无疑是我最喜欢的语言。
你现在在做什么项目?
在接下来的几个月里,我会做几个不同的项目。
- Pricing recommendation and optimization models
- Content-based recommendation systems
- Consumer review analysis and classification
- 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/
青色到绿色。
这种编程的本质与异步编程范式密切相关。这是我第一次有机会真正开始在那个领域练习 Python 的能力。在异步 Python 的早期,这都是用生成器完成的,我对此表示怀疑,因为其意图看起来很模糊。在 Python 3.6 中,它已经实现了清晰,并且使用起来非常有趣。
哪些 Python 库是你最喜欢的(核心或第三方)?
我导入的最常见的模块是 functools、itertools 和 contextlib。Erik Rose 的 more-itertools 非常有用。
当然,我有很多我自己反复使用的工具。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:
- Nobody was really a “pro” at that shop, and
- 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/
其次,先把它想成一个用户。难道您不想对您的数据有更多发言权吗?你不想了解数据泄露吗?有人不告诉你就倒卖你的数据可以吗?以你希望被对待的方式对待你的用户。
终于有工具帮忙了!在 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 的发言人。让我们花一些时间来更好地了解她!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
祝你好运!我是澳大利亚人,原籍布里斯班,但现在住在悉尼。我获得了信息技术学士学位,并且已经在技术行业工作了十年。我从事过许多不同的角色和技术,但主要是在虚拟主机和云计算方面。当我不在电脑前或参加会议时,我喜欢烹饪和制作挂毯。
你为什么开始使用 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 上为他的每一章做了视频演讲。
让我们花些时间来更好地了解肯!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
我是打鼓长大的,最初在大学里学了几年音乐专业。我在大学里换了几次专业,最后拿到了英国文学学士学位,辅修了音乐。大学毕业后,我开始在乐队中演奏电贝司和竖式贝司,在过去的几年里,我最喜欢弹钢琴、小提琴、鼓,有时也弹博德兰鼓。我喜欢烹饪,尤其是为我的家人烘焙,我和我的妻子喜欢看“伟大的英国烘焙秀”和阅读烹饪书籍来寻找灵感。
我从来没有学过计算机,也是边工作边学编程。我小时候有一台 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
- 梅拉妮·克拉奇菲尔德
- 莱西·威廉姆斯·亨舍尔
- 公羊轴
- 帕特里克毛平
- 亚伦·麦克斯韦
- Yasoob Khalid
- 凯文·奥利维亚
- 亚历克斯·盖纳
- 大卫·比兹利
- 升降杆
本周 PyDev:Kenneth Reitz
原文:https://www.blog.pythonlibrary.org/2016/06/06/pydev-of-the-week-kenneth-reitz/
本周,我们欢迎肯尼斯·雷茨(@肯尼兹·雷茨)成为我们本周的 PyDev!Kenneth 是请求包的开发者,这是我最喜欢的包之一。他也是即将出版的 O’Reilly 的书的合著者,Python 的搭便车指南。你可以访问他的网站了解他最近在做什么,或者访问他的 Github 个人资料了解他对哪些项目感兴趣。让我们花些时间去更好地了解他!
你能告诉我们一些关于你自己的情况吗(爱好、教育等)
你好,我是肯尼斯·雷兹。我热爱优秀的设计、合成器、相机、软件和 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.
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!