Podcasts about python python

  • 17PODCASTS
  • 26EPISODES
  • 22mAVG DURATION
  • ?INFREQUENT EPISODES
  • Jul 5, 2025LATEST

POPULARITY

20172018201920202021202220232024


Best podcasts about python python

Latest podcast episodes about python python

捕蛇者说
Ep 55. 从文科转码到给 CPython 做贡献(纯文字稿)

捕蛇者说

Play Episode Listen Later Jul 5, 2025 0:10


本期节目应嘉宾的要求,我们只发布了文字稿。带来的不便还请各位听众谅解。 嘉宾 tanloong 链接 gh-133390: Support SQL keyword completion for sqlite3 CLI by tanloong · Pull Request #133393 · python/cpython SQLite Keywords QuantWiki - 中文量化百科 《阳光马达棒球场!》 文字稿 laike9m: 哈喽大家好,欢迎来到最新一期的《捕蛇者说》。我们今天请到了谭龙,然后让他来聊一聊给 CPython 做贡献的经历。谭龙其实最近给 CPython 提了一个 PR,然后也是他第一次给 CPython 做贡献。然后呢,这个贡献是给 SQLite 的那个命令行加了一些命令补全,就是可以补全 SQLite 的关键字。我们今天另外一位主播是 Manjusaka。 Manjusaka: 请叫我 Nadeshiko Manju,对吧?OK,大家好,好久不见,我又回来了。然后今天很高兴又来和 laike9m 进行搭档,来。 laike9m: 好,然后这是我们今天的嘉宾谭龙,你要不先简单介绍一下自己吧。 tanloong: Hello,大家好,我叫谭龙,我是山东的。然后 18 年的时候是来青岛上大学,然后大学本科毕业之后就在这找工作了。我本科不是计算机的,毕业之后找工作也找了一些计算机相关的工作,也有一些其他方面的工作,中间也换了好几次工作。最近是刚刚入职一家新的公司,然后是做数据分析方面的工作。谢谢。 laike9m: 所以你说你本科不是学计算机,方便透露一下吗?你本科学的是什么? tanloong: 我本科是英语的。 laike9m: 哦,这个跨度很大。 tanloong: 对,确实。其实我本科最开始填志愿的时候,我录取的专业也不是英语,是一个调剂的专业,叫生态学。然后我是大一下学期的时候想转专业,然后正好我们学校有转专业的政策,我就从高中学的那几门课里,我觉得英语我学得还可以,然后当时也比较喜欢,所以我就决定转英语了。直到后来快毕业的时候才有点接触到这个计算机方面的这个东西。 laike9m: 然后就发现自己还是更喜欢计算机一些。那所以你之后是进行一些自学吗?然后就去找工作还是? tanloong: 对,基本上是自学。最开始接触计算机是大一的寒假,我们辅导员让学生回家的时候在假期要学点东西,然后开学让交学习笔记。我当时从一个中国大学 MOOC 上注册了一个账号,然后它弹出来的,第一个给我推荐的课程就是 Python。那我就学这个吧。所以当时我就学,就学了这个。当时学得很不明白,然后就把 PPT 跟着敲了一遍,但是也云里雾里的。直到后来后面的几个寒暑假才看了一些成体系的 Python 的入门的书,然后算是入门 Python 了。 laike9m: 所以换句话说就是你其实一开始学,你并不知道 Python 是干嘛的,就是并没有特别地抱着某种目的,比如说我就想找一个程序员的工作这样子。 tanloong: 没有,开始的原因只是巧合,但后面坚持下来,应该也算是因为比较喜欢吧。我觉得比较有意思。 laike9m: 那还是挺有意思的,对,感觉是命运的安排。 Manjusaka: 咱行看起来都是转行的。诶,那 laike9m 你是转行吗? laike9m: 我本科也不是学计算机的,然后我知道你本科也不是,所以。 Manjusaka: 对,那看起来大家这三个人跟少女乐队一样,这三个人里面抽不出一张计算机本科学位。 laike9m: 对,但我觉得还是你的英语这个跨度最大。 Manjusaka: 啊,对,然后,哇,卧槽。啊,现在要是学日语的,我突然就想问一下为什么要学日语。 laike9m: 学日语的转计算机还真没见过,但是很多程序员都会日语。 Manjusaka: 有,可能在大连那边还真有。 laike9m: 啊,对,大连日本人比较多。 Manjusaka: 对,对,对,日语外包会多一些。 laike9m: 嗯,好,对,说回正题,就是你相当于一开始接触的编程语言就是 Python, 然后后来相当于你在工作中可以理解也是主要用 Python, 对吗? tanloong: 对的,我有两份工作是跟计算机相关,然后都是写 Python 的。第一个工作是之前的一份是写图形界面的,用的是 PySide, 然后就写一个称重系统。他们是一个建桥公司,就是他们需要统计他们的货车送多少货进他们工厂,然后运多少货出来,写一个这个图形界面,然后放在那个他们的磅站去,然后货车过磅的时候来统计数据。另一个工作是现在的工作是在一个私募公司做数据分析。我之前没接触过股票证券这方面的东西,现在还在学习。 laike9m: 你是开发算法吗,还是给他们开发一些内部工具或者界面之类的? tanloong: 内部工具,我们组三个人有写算法的,但是我是属于比较初级的那种,只能写一些帮他们节省时间的工具。 laike9m: OK,对,因为我感觉那种像交易的算法可能更需要用 C++ 一些,对吧?还是说其实也有用 Python,比较好奇。 tanloong: 我们公司开发部应该是写 C++ 的,然后应该也有写 Python, 但是数据分析我们那个组主要是做一些因子的构建,就分析哪些因子它对你的这个股票的收益率贡献比较大,就这种的,我们就主要是写 Python,不写 C++。 laike9m: 明白,好的。所以就是到了今天我们要聊这个话题,然后你给 CPython 做了一个贡献。那我相信就是百分之可能 99.99% 的用过 Python 的人都没有给 Python 做过贡献,那么你一开始是怎么有这个想法的?然后就是后来你是怎么去一步一步实施这个的? tanloong: 我最开始有这个想法是应该从天哥,就是 B 站的那个,对,他当时成为 Python Core Dev 之后,在直播的时候就有人在直播间问一个给 Python 做贡献的问题,做贡献难不难呢?这些之类的。但是天哥说,如果你想给 Python 做贡献,你是会发现有很多事可以做的,做贡献并不难。然后后来就是之前我在写称重系统的时候,需要用到 SQLite 去查用户存的那个本地的数据库。然后当时我就发现 Python 的 SQLite 的命令行界面有点不好使,就是如果它能有那个补全就好了,所以当时是有那个想法。然后实施是在后来我前段时间没有工作,然后就每天比较闲,然后我想找点事做,然后我想起来之前我想给那个 SQLite 的加补全的这个想法,我就试试吧。然后我就去 GitHub 上找,我就试了一下。然后试的时候我发现,我本来觉得这个应该是挺难的,因为我完全不知道它这个补全要怎么实现。但是我去看了一下 PDB,就是天哥维护的那个 PDB 里面的代码,它里面实现补全是那样写的,然后我就照着 PDB 的补全,然后给 SQLite 加了一个补全,然后就交了 PR。 laike9m: 所以其实也是从你的实际工作需求出发,然后加上高天的激励。对,你知道高天也来过我们这边好几次吧? tanloong: 对,两次。 laike9m: 老听众,看来是。对,然后我觉得这个还挺有意思,就是也是算是榜样的力量吧。就是我不知道还有没有其他人是这样,就是因为听到就是有个人跟他说,哎,其实做贡献没有那么难,然后去做了,但这样挺好的。我算吧。你也算吗? Manjusaka: 对,我算。当时我是先认识张翔老师,然后后面然后跟他聊了一些,就包括我可能当时,那位你可能还认识,那个 Ezio Melotti。谁?18 年北京的那位嘉宾,Ezio。 laike9m: 你说 PyCon。 Manjusaka: 对,就是当时我们不是邀请到另外一位来北京。 laike9m: 哦。PyCon China Beijing 2018。2018 吗?2018 我去了吗?我有点不记得了。没事你继续说吧。 Manjusaka: 你在北京,你当时还没 transfer 去美国,然后你从上海来北京。 laike9m: OK。 Manjusaka: 然后我当时聊了一下,就后面开始,正好 18 年,后面我就说我正好在休息,后面就开始陆陆续续提一些贡献,对。 laike9m: 嗯,对对,其实我觉得翔哥一定程度上也是当时给了我一些激励或者指导嘛,对。 Manjusaka: 对,张翔老师还是非常 nice 的。 laike9m: 对,就给听众们如果有不知道,就是张翔是中国的第一个 CPython core developer, 第一个核心开发者,对,然后高天是第二个。 Manjusaka: 对,然后张翔老师应该是在 16 年晋升的。嗯,反正是老前辈了,老前辈了。 laike9m: 但其实他当时就是更多是因为工作中会需要改一些 CPython 代码,他当时在华为嘛,对吧? Manjusaka: 然后。哦,不不不,他晋升成为 CPython Core 的时候,我记得没错,是在新浪,然后他就开始编的。 laike9m: 哦,新浪,OK。 Manjusaka: 对,然后他去华为其实做的也不是跟 CPython 本身相关的,他是去做的 OpenStack 相关的东西。对,然后他对就是说是整个生态工具链会比较熟,所以说他可能跟高天老师就是说是有一点不一样,是张翔老师对于各种非常疑难问题的 debug 非常擅长,这也是我记得介绍人给他在他的 promote 介绍里面说的,对。 laike9m: 嗯,我记得他当时那个演讲。 Manjusaka: 对对对,然后我的很多 debug 技巧也来自于张翔老师,对。 laike9m: Anyway,我觉得后人都是在前人的一些基础上去做工作的。 Manjusaka: 是的,没错。 laike9m: 好,那说回谭龙的这个 PR,我其实也简单看了一下,其实我原来也不知道补全要怎么加,但发现其实还真的挺简单的。你可以跟听众们大概说一下这个流程吗?比如说我要给一个像 Python 的 SQLite 命令行加补全,它大概要做些什么工作? tanloong: 它是写一个 context manager,然后在你进那个 readline 的时候,你把 readline 的那个 completor 给替换成你自己的函数,然后在退出的时候再把它替换回你替换之前的那个函数,就你替换之前的那种 readline 的默认的 completor。然后你自己写的那个函数是还有一个 state, 就是 readline 调你的函数拿补全的时候,它会先给你发一个 state 等于 0, 这个时候你判断了 state 等于 0 的时候,你去生成一个完整的,就根据用户当前输入的那个 text, 生成一个完整的 completion candidate 的列表。然后 readline 会继续给你发 state 等于 1, 2, 3,这个时候你把你之前生成的 candidates 按照它发的 state 做个 index, 返回你的 candidates 对应的要补全的词。然后这中间就是 state=0 的时候,你的 candidates 最好需要缓存一下,不要在每次 readline 给你发 state=1, 2, 3 的时候你再重新生成,那样会比较耗时间,注意一下性能的问题。然后基本就是这样。 laike9m: OK,我说一下我看到的那个 PR 里面,我觉得比较关键的地方就是它其实就是一个首字母的匹配,就相当于首先你有一个关键词的列表,对吧?你要构建一个说哪些单词是 SQLite 关键词,比如说 SELECT 啊 JOIN 这种。然后我发现你是当用户每输入一个字符,然后你就会去跟这些关键词的前缀做一个匹配,对吧?然后发现如果有能 match 上的,你就把它作为一个 candidate 返回,作为补全的一个。 tanloong: 就其实那个关键字最开始的,你要拿到那个 SQLite 的完整的关键字的列表,当时对我来说还是挺难的。我最开始是从 SQLite 的文档里直接复制它的完整的所有的 147 个关键字,然后硬编码到 Python 里。但是有 core dev 说这样写不太好,而且其中有一个关键字并不是在所有的 SQLite 编译出来的时候都会支持的,是一个 V 开头的关键字。希望就是这个 SQLite 这个关键字能够动态生成。然后我当时查了一下,就是如果你想动态生成需要在 C level 去写,但是我这个 C 学的不太好,虽然之前学过一个学期的公开课,但是我完全不知道就是用我查到的 SQLite 文档里说生成关键字列表的那两个函数,去生产,我不知道要怎么写,然后我也不知道怎么把它放进 Python, 所以我当时说这个对我有点难。后来有一天晚上我看到那个消息里,那位 core dev 又说了一遍,就是非常希望这个关键字列表它是能从 C 里拿到的,而不是从 Python 里拿。我当时其实有点理解错了,我以为他的意思是让我把那个硬编码的关键字列表从 Python 给移到 C 里,然后我当时就把它移到 C 里了。虽然我对那个 Python 的 C 要怎么写,然后怎么把它暴露出来,暴露给 Python 的代码去能够访问,我用了一下 AI,当时是用的豆包,问怎么在 Python 的那个 C 里面存一个列表,然后能让它暴露出来,给 Python 的代码调用。然后当时豆包写上,然后我试了一下豆包给的结果,然后是可以的,然后我就直接硬编码到 C 里,然后问那个 core dev 行不行。但是 core dev 后来回复说他的意思是不是在 C 里硬编码,而是在 C 里要动态生成。当时我就,我感觉我理解错了。然后后来是另一位 core dev 帮忙给写的,然后他写了之后给发了一个 PR 到我的那个 fork 里,然后我合并进去,然后我的 fork 再合并到 CPython 的 main。 laike9m: 我还在想,就是因为我也看到你的那个 keywords 那部分是从 C 的 module 里 import 的。这个他当时说为什么要动态生成,其实我还是不太理解。可能就是 OK,我明白,但就是你编译的时候,你会根据你的 CPython 版本有不同的关键词,这样你就不用在那个 Python 里面写,比如说 if 是什么版本,然后你的关键字要加或者减一些东西是吧? tanloong: 对的,SQLite 它应该是在编译的时候有一个选项,如果你开了某个选项,那么它的关键词会有变化。 laike9m: 明白明白。 tanloong: 哦。 laike9m: 这个确实还挺 tricky 的,对,感觉是这个 PR 里面最困难的部分。 tanloong: 确实。 Manjusaka: 嗯。 laike9m: 那所以就是总体这个流程下来你有什么感受吗?因为我知道你的那个 PR 还被因为把 test break 了还被 revert 了一次,对吧? tanloong: 对,它是有一个测试在运行那个 run_pty 的时候,它是用那个 run_pty 生成一个 sudo terminal, 就在一个伪终端里去模拟用户的输入,然后查看它给的 candidates 是不是符合预期。但是在那个伪终端里,它给的 candidates 是带颜色的。就是你的 candidates,它的两边会有那个控制符。 laike9m: 它那个颜色码嘛,然后就不对了。 tanloong: 对,然后测试就 fail 了。当时是在那个 buildbot 上跑构建,就是构建失败,我找了一下,但是我想就是在那个 buildbot 上最好能有一个 interactive 的,就我能像在终端里我手动敲命令一样,我可以人为的去测试,然后看一下它中间到底是什么样子,再修改那个测试。但是 buildbot 我找不到我要怎么就进那个交互式的模式,也可能根本就没有。然后这个问题我解决不了。然后当时是有个 core dev 说他去找那个 buildbot 的 owner,然后问他要 SSH 的权限,然后他去调试。 laike9m: 等一下,我有一个疑问,就是为什么你这个 PR 感觉大家都很 helpful? 因为你知道一般的 CPython PR 就是你提了之后,可能很长时间都没有人理。这点你是怎么看的?就是感觉大家都会去帮你去 debug 或者帮你写些代码,这个是自然的吗?还是说他们本来就对这个很有兴趣还是怎么样? Manjusaka: 嗯,从我的角度出发的话,我不太确定,高天老师那边可能有其他的 input, 但是就我观察来看,这个取决于 core dev 风格。不过他们整体来说,对新人是比较友好的。而且去 buildbot 里面调试这种东西的话,我觉得这个东西其实也还好,你去翻看 CPython 的 PR 其实这种事情也有不少,所以说我觉得这个相对来说还好。但是对于一些争议或者说是还在试图达成共识的过程中,那确实是比较头疼的。但是如果说是已经达成共识要去实施的一个 PR, 那我觉得相对来说会好一些。 laike9m: 明白,所以就是这种没有什么争议性的,只是实现或者一些 debug 问题就会推进的比较快,然后大家也会帮忙。 Manjusaka: 对,而且这种东西我理解主要是你添加新的 feature,而不是更改 API 的话,那这种东西就会好很多。就像我上周的时候,我当时想改 sys._enable_profile() 那个 API, 就是新增加的那个远程 debug 的接口,我想新增加在它的 audit event 里面增加一些元数据。这就牵扯到了 API 的更改以及更内部的一些细节上的更改。然后我就和三个 core dev,然后 Victor, Paul,还有哪一位,然后就 battle 了两天,然后最后 I gave up。 laike9m: 好吧,他们可能有一些 concern。 Manjusaka: 对,就这种你增加一些新的 API 之类的,就是会有一些比较 concern, 但是如果说你是实现一个全新的 feature, 大家觉得你这个 feature 不是为了实现而去实现,那这种情况下相对来说还是会比较顺利的。 laike9m: 嗯,嗯,理解。还有一点就是我知道那个 CPython 的不同模块,它其实是不同的人来维护的嘛。 Manjusaka: 啊,是的,没错。 laike9m: 就可能恰好就是 SQLite 这个维护者,他就是比较积极,比较热心,就是反应比较快,所以。 Manjusaka: 啊,是的,没错。它是比较活跃的,就是 SQLite 这种东西。我就又说到一个伤心事。在改一个东西,然后被 Mark 直接给拒了,然后我现在都还推不动,虽然大家都说有需求,但是 Mark 就觉得说这个东西没需求,然后但是就给拒了,对。 laike9m: 我知道 Mark Shannon 这个人比较固执,对,也是跟人的性格有很大关系。 Manjusaka: 对,是的,没错,跟这个看具体的开发者的问题,对。 laike9m: 对,就是其实你会发现像 Python,如果你不了解,可能会觉得 Python 是一个有一个很庞大团队去维护的这么一个精密复杂的系统,但你真正去看它里面到底是怎么实现的,或者说去提 PR 才会发现可能每一个文件它就是那么一两个人懂,然后你就是要找那一两个 stakeholder, 如果你想做一些更改的话,然后你只要能比如说说服他们,然后你就可以做你想做的。对,它相当的扁平吧。 Manjusaka: 对,我觉得主要还是怎么说服。 laike9m: OK,所以说回谭龙你这个 PR 的话,然后就你把那个 core developer 帮你把测试修好了,对吧?然后你就重新提交,这样子。 tanloong: 对的。就我感觉给 CPython 这个维护者,在这些维护者之间就是它是有一个小圈子的,然后你作为一个新人去给他们交 PR 也是一个交际的过程。就是你要积极主动一点,然后就一般新人你第一次交 PR 的时候,比较容易会被带着审视的态度去看你的工作。然后你交 PR 的时候,你最好是把你之前想到的一些可能会拒绝你 PR 的理由给解释清楚,然后你为什么这样做,然后让他们就是在他们提出问题之前就看到你的解释,这样会就是更容易沟通,然后更容易让你的 PR 更顺利一点。 Manjusaka: 嗯,对。 laike9m: 我看到你其实你之前提了一个 issue 对吧,就是你说你希望能够在 SQLite 的命令行里支持这些补全。所以你提那个 issue 的时候当时就想说自己去实现这个吗?还是说你本来期待说其他人可以去做这个? tanloong: 是的,我是准备自己实现的。因为 Python 的 dev guide 里面写,如果你想交一个 PR,你应该先写一个 issue, 除非你交的 PR 是 typo fix。所以我就是先写的那个 issue,然后就紧接着交了 PR。当然那个 issue 题目写得有点大了,我那个 PR 只做了关键字的补全,但是 issue 是所有的补全。比如说你以后也许还会需要补全你的那个 SQLite 里面的表名,还有列名,还有函数名,这些目前还不支持。 Manjusaka: 明白。 laike9m: 所以你未来打算就是继续在这方面做一些事情吗?还是说就先到此为止? tanloong: 也许会吧。但是这个刚才说的表名、列名、函数名,我目前还没有想到就是要怎么才能实现它。我看到就是 Python 的 PyPI 上有一个第三方的 SQLite 的命令行是支持表名、列名、函数名的,而且它是 context-sensitive,就是它会检测你当前是不是需要输入一个表名或者列名,比如说你是在 SELECT 后面,那它就会给你补全列名。就像这种就是非常智能的补全,我还没有想到就是怎么在 CPython 里支持,也许没有那个能力去支持它,总之就是还不确定。 laike9m: 明白。对,那个可能要就是回溯一下,不光得去做一个前缀匹配,对,会更复杂一点感觉。但我觉得是一个好的开始吧,就是你有一个这种框架,就会有更多人去加更多的 feature 进去。也许未来就会有。 tanloong: 是的,确实。就那个关键字的 PR 合进去之后,过了几天,有另一位 contributor 交了一个 dot commands completion 的 PR, 现在给加了那个 dot commands 的补全。目前 Python 的 SQLite 的命令行就有三个 dot commands,就是 .help, .version, .exit。.exit 还是 .quit 就来着,总之是推出的那个 .command。然后那个 PR 现在正是就是刚刚建不久,然后还没有 core dev 留言,但是它实现的有一点简单,就是有一些问题,但是应该后面会就是慢慢给修上,然后给合进去。 laike9m: 其实你可以去那个 review,因为你比较熟,你是最熟的其实。 tanloong: 是,我还真给看了一下,然后写了两个评论。但是写的第一个评论就是那位交 PR 的人,他觉得没有必要,就是他持反对意见。然后第二个评论,那位交 PR 的人还没有回复,然后其他人也没有回复。 laike9m: 嗯,我觉得挺好,就是因为我知道就是如果你比如说在一些 issue 里面回复的比较多,然后就会被那个提拔成 triager 的权限,对吧?然后其实这个是 core dev 之前的一步。 tanloong: 对,确实。然后我看就是交那个 dot command completion PR 的那个人,他的评论比较多,一般 CPython 有什么新的 issue,他都会先跑到底下去评论,然后有时候评论这个 issue 和之前的某个 issue 有联系。就像这种之类的,或者有人交 PR,然后他会去给 review。但是我还没有太多追踪 CPython 的那些 issue 和 PR,然后没有评论多少,就主要是我自己参与的那些 issue 跟 PR。 laike9m: 对,我觉得每个人有不同的风格吧,也不用一定去迫使自己要怎么样之类的。像高天那种,就是从 PDB 模块开始,然后把 PDB 弄得特别熟,然后通过成为 PDB 的维护者,然后来成为 core dev,这个路径也挺好的。我觉得可能更实际一点吧,因为我觉得你要去就是对于一些每一个 change 做一些评论,这个还挺难的。 tanloong: 确实从一个单独的模块开始做,你确实你的那个在 CPython 社区里面的成长会更容易一点。因为你是这个模块的专家,然后别人有什么问题就只能来找你。但是我也觉得这个也挺难的。天哥是从一个完全的 CPython 的陌生人,然后进入到 CPython 一点点做贡献,最后成为 core dev。就像你从一个外人进一家公司,然后慢慢走到管理层,都是非常难的步骤,你要获得信任,然后你做的每一个工作你都要给解释清楚,然后让别人就是认为你是可以承担更重要的角色。我觉得这也是非常难的一个过程。 laike9m: 嗯,是的是的。对,其实说回来就是那个,像给 CPython 做贡献不光是一个技术面上的事情,它还有很多这种交流,对吧?然后尤其是当你和这些外国人交流,你不是用你的母语,然后他们的一些交流的习惯可能也不太一样,所以这个方面也会有一些壁垒吧?就是谭龙,因为你是英文专业,所以这方面你觉得说你的本科教育有帮到你吗? tanloong: 我觉得是有的。如果我没有选英语专业,我应该还停留在高中的那个状态,就是虽然当时英文成绩还可以,但是如果让我看一个全英文的网站,我是心里发怵的,我是心里有那个牴触的心理。但是大学接触英语比较多,然后主要是你抵触心理没有了,然后你愿意去哪怕接受自己写出来的英语没有那么完美,哪怕也不像母语,也不够 native-like, 你也可以接受自己写出来的这些句子,然后去交流。因为你只要能把意思给表达清楚,让对方看懂就可以。其实你放下这个心理负担,你会发现写英语还是没有那么难的。 laike9m: 是的,是的,同意,对。 Manjusaka: 我现在是有一个做简单的 workflow, 然后我会交给 AI 来帮我润色,然后扩展一下我单纯的观点。对,我觉得这是 AI 的一个很好的使用场景。 laike9m: 你用的是哪个工具呢?还是就是手动复制? Manjusaka: 我是直接在 Claude AI 上面给他固定了一组 prompt。 laike9m: 明白,明白。 Manjusaka: 我觉得这就是这一块东西很好用的方式,特别是在我跟他们长篇大论地 battle 的时候,还是挺好用的。 laike9m: 帮我写一个回复去反驳这个人。 Manjusaka: 对,我一般是 prompt 就是说是我引用的那一段,然后我首先给他一个正面的肯定,然后其次列出我对他的观点,一 ABC,然后对,然后就这样。 laike9m: 你写 prompt 的时候是拿中文写吗? Manjusaka: 我拿中文写。 laike9m: 嗯,OK,这样表意更准确一些。 Manjusaka: 对对对,你可以看我群里发的那个 issue,然后那个就是很多大段的,就是我是用 AI 生成出来的。 laike9m: 我想到之前在推特上看到一个段子,就是说在 AI coding 的时代,以前不都是什么 “Talk is cheap, show me the code” 吗?现在是 “Code is cheap, show me the talk”。 Manjusaka: 确实。Code is cheap, show me the talk. laike9m: 一个哥们他在他的 GitHub repo 里面就是把所有的他的那个跟 AI 的聊天记录全都传上去了。这个就是挺好玩的。 Manjusaka: 挺好玩的,挺好玩的。 laike9m: 对,像谭龙,我觉得你之前本来要在 C 模块里面写死 keyword 的时候,你也是用 AI 生成的,虽然后来发现那个路径是不对的,但是至少这方面 AI 的助力还是挺大的。 tanloong: 确实,如果我当时在紧接着问 AI 怎么不要硬编码,然后整个动态生成的话,也许我当时就能直接把动态生成的代码给交进去了,而不是让另一位 core dev 帮忙给写。嗯。 Manjusaka: 是的。 laike9m: 所以就是你对于这个给 CPython 第一次做贡献的这个流程,你有什么其他的一些感受吗?就是我们刚才还没有聊到的,你想分享的。 tanloong: 我没有了。 laike9m: 哦,行,那也没关系,好。我们也是觉得给 CPython 做贡献的人越多越好,然后可能也是能够给听众们一个激励吧。然后感觉这期其实录的挺快的,然后不知道有没有什么你想推荐的东西,就是如果你听我们之前节目的话,你应该知道有这个环节,对吧? tanloong: 我推荐一个网站是跟量化金融有关的,算是一个给入门的学习者的一个索引吧。那个网站叫 QuantWiki。是量化金融中文百科,然后里面有一些就是量化金融相关的入门的概念,还有一些前沿的证券公司发的研究报告,还收录了其他的类似的 Python Data Training 这方面的 GitHub 的 repo 的链接。如果是这方面像我这样的刚入门的学习者的话,可以就是了解一下。 laike9m: 我看了一下,这个写的还挺好的,就是他把各种概念和一些工具都列出来了,对。嗯,我们之前也请过大伟来聊,就是他开发了一些交易相关的工具,所以其实这方面 Python 应用也是挺多的,对。 Manjusaka: 哎,反正我觉得给 Python 做贡献,就觉得还是希望像谭龙这样的人越来越多。是的,是的。对,而且现在他们就感觉是整体都非常缺人的感觉。 laike9m: 哪个看上去像不缺人? Manjusaka: 嗯,这倒也是,确实。反正就之前我给 Brandon 和 Ken Jin 然后请教问题的时候他们都表示很新奇,我操居然还有 Freshman 对我们现在做的这块感兴趣。对,居然还有新人对我们感兴趣?Freshman,哦 Freshman。啊对,反正我觉得从他们视野来看,就整体的很多的地方都会很缺人。 laike9m: 嗯,是的是的,尤其是像你做的那些 debugging 啊,然后 tracing 的一些东西,我觉得懂的人真的很少。 Manjusaka: 我觉得就没人管的状态。而且就我现在对他们的 tracing 的部分有很大的怨言,就主要是 Mark 上面说... 哎,我后面会试着再推一推,但是就哎,随缘吧。 laike9m: 嗯,行。好的。Manjusaka 你有没有什么想推荐的东西。 Manjusaka: 我推荐一部番吧,《阳光马达棒球场!》,非常很不错的一部番,我推荐大家去看看。然后可能国内有很多朋友对于传统的国外的可能说足球或者其他也好,这种体育文化他并不清楚,这种体育文化到底应该是怎么样的,它是怎么样遍布在人的日常生活中的,然后有些人不清楚,那么我建议大家可以去看一下,然后挺治愈的一部番。 laike9m: 嗯,好的好的。啊,我先不推荐了吧,以后再说吧。对,我最近在看一些书,但是还没有看完,所以,对。好,其实我们这期是比较短的一期,然后但是也希望听众们可以从中学到一些东西,然后如果要记住一点的话,就是可能给 CPython 做贡献也没有那么难。对,好,我们这期就到此结束,然后各位听众我们就下期再见,大家拜拜。 众人: 拜拜。

iterka
Зачем учить Python в 2025: Плюсы и минусы языка и перспективы карьеры в IT c Егором Векслером

iterka

Play Episode Listen Later Jan 16, 2025 94:18


Егор Векслер - Python разработчик, программист, инстаграм блогер, знаменитый юмористическими видео и простым объяснением сложных ИТ терминов. Телеграм каналд Эда: https://t.me/+_Gno_wpfSsE5YmIy сайт Егора: https://wexler.io Все ссылки предоставлены для ознакомления с гостем и не являются рекламой. Таймкоды: 00:00:00 Начало 00:58:05 Егор Векслер - Python разработчик, программист, инстаграм блогер 02:42:11 Python - самый популярный язык разработки в мире 00:03:07 Как Егор Векслер изучал Python 00:04:24 почему Python так популярен 00:05:21 Как видит Python русский разработчик и Английчанин 00:06:17 Отступы в Python 00:07:24 Можно ли заменить Python? 00:08:21 Не поздно ли изучать Python в 2025? 00:08:46 Какой язык программирования выбрать? как решить? 00:12:03 С чего начать изучать Python 00:13:42 Как выбрать первый Pet проект для программирования 00:18:32 Проблемы на старте изучения программирования 00:20:57 Как учатся программированию новички 00:22:24 Чего не стоит бояться программистам: Вечный рефакторинг 00:23:36 Кто такой крутой разработчик 00:24:48 Платформа Егора 00:29:12 Крутые разработчики 00:32:33 Синдром Самозванца 00:34:40 Что значат Грейды в АйТи 00:38:17 Auto-suggest interview 00:38:34 почему Python - лучший язык программирования 00:39:04 Почему Python Лучше чем Java 00:39:35 Python - говно 00:40:37 Какой интерпретатор Python использовать? 00:41:54 Где хранятся файлы Python 00:42:16 Можно ли использовать Python для Web-игр 00:43:49 Как работает Python 00:45:07 какую версию Python использовать? 00:46:45 Для чего используется Python 00:48:21 Подготовка к собеседованию на Python 00:57:47 Как упаковывать свое резюме 01:00:22 Разница между западными рекрутерами и русскими 01:03:46 Тестовые задания в Европе 01:05:39 Рекоммендации для собеседований 01:09:59 Как поддерживать приподнятое настроение 01:10:34 Пиво 01:11:12 Бег 01:14:51 Сложно ли вести блог 01:17:02 Курс Python и преподавание 01:20:34 Груз ответственности преподаватяля 01:21:54 Истории успеха студентов 01:23:16 Почему курсы не бесплатные 01:25:26 Студенты покупают, но не проходят курс 01:26:50 Пишут ли хейтеры про цыган? 01:28:54 Переосмысление жизни 01:31:22 Изменение подхода к жизни Подкаст с тестировщиком-автоматизатором на python: https://youtu.be/y4MKjGmSXz4 Подкаст с крутым фронтенд-разработчиком https://youtu.be/mWjK6dnw_4E Подкаст о старте карьеры в АйТи https://youtu.be/RgAvRoo2vo0 Обсуждаем с Егором Как изучить Python Зачем учить Python Что спрашивают на собеседовании по Python Чем отличается русский рекрутмент от западного почему Python так популярен Как выбрать первый Pet проект и многое другое #python #программирование #программист #wexler

auto python python python
The New Stack Podcast
Why Beginning Developers Love Python

The New Stack Podcast

Play Episode Listen Later Oct 31, 2024 29:15


Deb Nicholson, executive director of the Python Software Foundation, attributes Python's popularity to its minimal syntactical complexity, which appeals to beginners and seasoned developers alike. Python allows flexibility for those exploring coding without a specific focus, unlike purpose-built languages. Since her leadership began in 2022, Nicholson has overseen the foundation's role in managing Python's fiscal and operational needs, including the package index that hosts over half a million add-ons. This open ecosystem enables contributions from large corporations and individual developers while demanding vigilant security measures.Nicholson envisions Python's future advancements, particularly in improving multi-threading and expanding usage in mobile development. She acknowledges Python's critical role in AI and data science but remains cautious about AI's pervasive application, likening it to a temporary trend. On open source in the enterprise, Nicholson critiques companies profiting from open-source tools while adopting restrictive licenses. Instead, she admires models like Red Hat's, which leverage open source sustainably without compromising accessibility or innovation.Learn more from The New Stack about Python: Python 3.13: Blazing New Trails in Performance and ScaleThe Top 5 Python Packages and What They DoPython Mulls a Change in Version NumberingJoin our community of newsletter subscribers to stay on top of the news and at the top of your game.

Hacker Public Radio
HPR4099: Introducing Home Automation and Home Assistant

Hacker Public Radio

Play Episode Listen Later Apr 18, 2024


Home Automation, The Internet of things. This is the first episode in a new series called Home Automation. The series is open to anyone and I encourage everyone to contribute. https://en.wikipedia.org/wiki/Home_automation From Wikipedia, the free encyclopedia Home automation or domotics is building automation for a home. A home automation system will monitor and/or control home attributes such as lighting, climate, entertainment systems, and appliances. It may also include home security such as access control and alarm systems. The phrase smart home refers to home automation devices that have internet access. Home automation, a broader category, includes any device that can be monitored or controlled via wireless radio signals, not just those having internet access. When connected with the Internet, home sensors and activation devices are an important constituent of the Internet of Things ("IoT"). A home automation system typically connects controlled devices to a central smart home hub (sometimes called a "gateway"). The user interface for control of the system uses either wall-mounted terminals, tablet or desktop computers, a mobile phone application, or a Web interface that may also be accessible off-site through the Internet. Now is the time I tried this out a few years ago, but after a lot of frustration with configuration of esp32 arduinos, and raspberry pi's I left it be. Recently inspired by colleagues in work, I decided to get back into it and my initial tests show that the scene has much improved over the years. Youtube Playlist The Hook Up, RSS Home Automation Guy, RSS Everything Smart Home, RSS Smart Solutions for Home, RSS Smart Home Circle, RSS Smart Home Junkie, RSS Home Assistant The first thing we'll need is something to control it all. Something will allow us to control our homes without requiring the cloud. https://en.wikipedia.org/wiki/Home_Assistant From Wikipedia, the free encyclopedia Home Assistant is free and open-source software for home automation, designed to be an Internet of things (IoT) ecosystem-independent integration platform and central control system for smart home devices, with a focus on local control and privacy. It can be accessed through a web-based user interface, by using companion apps for Android and iOS, or by voice commands via a supported virtual assistant, such as Google Assistant or Amazon Alexa, and their own "Assist" (built-in local voice assistant). The Home Assistant software application is installed as a computer appliance. After installation, it will act as a central control system for home automation (commonly called a smart home hub), that has the purpose of controlling IoT connectivity technology devices, software, applications and services from third-parties via modular integration components, including native integration components for common wireless communication protocols such as Bluetooth, Thread, Zigbee, and Z-Wave (used to create local personal area networks with small low-power digital radios). Home Assistant as such supports controlling devices and services connected via either open and proprietary ecosystems as long they provide public access via some kind of Open API or MQTT for third-party integrations over the local area network or the Internet. Information from all devices and their attributes (entities) that the application sees can be used and controlled from within scripts trigger automation using scheduling and "blueprint" subroutines, e.g. for controlling lighting, climate, entertainment systems and home appliances. Summary Original author(s): Paulus Schoutsen Developer(s): Home Assistant Core Team and Community Initial release: 17 September 2013 Repository: https://github.com/home-assistant Written in: Python (Python 3.11) Operating system: Software appliance / Virtual appliance (Linux) Platform: ARM, ARM64, IA-32 (x86), and x64 (x86-64) Type: Home automation, smart home technology, Internet of things, task automator License: Apache License (free and open-source) Website: https://www.home-assistant.io The following is taken from the Concepts and terminology on the Home Assistant website. It is reproduced here under the creative commons Attribution-NonCommercial-ShareAlike 4.0 International License Integrations Integrations are pieces of software that allow Home Assistant to connect to other software and platforms. For example, a product by Philips called Hue would use the Philips Hue term integration and allow Home Assistant to talk to the hardware controller Hue Bridge. Any Home Assistant compatible term devices connected to the Hue Bridge would appear in Home Assistant as devices. For a full list of compatible term integrations, refer to the integrations documentation. Once an term integration has been added, the hardware and/or data are represented in Home Assistant as devices and entities. Entities Entities are the basic building blocks to hold data in Home Assistant. An term entity represents a term sensor, actor, or function in Home Assistant. Entities are used to monitor physical properties or to control other term entities. An term entity is usually part of a term device or a term service. Entities have term states. Devices Devices are a logical grouping for one or more term entities. A term device may represent a physical term device, which can have one or more sensors. The sensors appear as entities associated with the term device. For example, a motion sensor is represented as a term device. It may provide motion detection, temperature, and light levels as term entities. Entities have states such as detected when motion is detected and clear when there is no motion. Devices and entities are used throughout Home Assistant. To name a few examples: Dashboards can show a state of an term entity. For example, if a light is on or off. An automation can be triggered from a state change on an term entity. For example, a motion sensor entity detects motion and triggers a light to turn on. A predefined color and brightness setting for a light saved as a scene. Areas An area in Home Assistant is a logical grouping of term devices and term entities that are meant to match areas (or rooms) in the physical world: your home. For example, the living room area groups devices and entities in your living room. Areas allow you to target service calls at an entire group of devices. For example, turning off all the lights in the living room. Locations within your home such as living room, dance floor, etc. Areas can be assigned to term floors. Areas can also be used for automatically generated cards, such as the Area card. Automations A set of repeatable term actions that can be set up to run automatically. Automations are made of three key components: Triggers - events that start an term automation. For example, when the sun sets or a motion sensor is activated. Conditions - optional tests that must be met before an term action can be run. For example, if someone is home. Actions - interact with term devices such as turn on a light. To learn the basics about term automations, refer to the automation basics page or try creating an automation yourself. Scripts Similar to term automations, scripts are repeatable term actions that can be run. The difference between term scripts and term automations is that term scripts do not have triggers. This means that term scripts cannot automatically run unless they are used in an term automations. Scripts are particularly useful if you perform the same term actions in different term automations or trigger them from a dashboard. For information on how to create term scripts, refer to the scripts documentation. Scenes Scenes allow you to create predefined settings for your term devices. Similar to a driving mode on phones, or driver profiles in cars, it can change an environment to suit you. For example, your watching films term scene may dim the lighting, switch on the TV and increase its volume. This can be saved as a term scene and used without having to set individual term devices every time. To learn how to use term scenes, refer to the scene documentation. Add-ons Depending on your installation type, you can install third party add-ons. Add-ons are usually apps that can be run with Home Assistant but provide a quick and easy way to install, configure, and run within Home Assistant. Add-ons provide additional functionality whereas term integrations connect Home Assistant to other apps.

Simple Programmer Podcast
894 How To Learn Python? (Python 101) Learn Python Programming - Simple Programmer Podcast

Simple Programmer Podcast

Play Episode Listen Later Mar 25, 2022 14:12


Simple Programmer is now BACK with a brand new YouTube ChannelSUBSCRIBE HERE: https://simpleprogrammer.com/subscribespyt

Reversim Podcast
409 ML Real World Usage with Noam from Pecan

Reversim Podcast

Play Episode Listen Later May 2, 2021


בפרק מספר 409 אנחנו מתכבדים לארח את נועם מחברת פקאן - שלום נועם, ברוך הבא!(נועם) שלום, תודה רבה(רן) ברוך הבא לצפון הקר, אחרי שעשית את דרכך אלינו - למי שלא יודע, אנחנו בדרך כלל מקליטים מהבית של אורי בכרכור, בלילה, בשעה 2100+ בערב, זאת השעה שלנו להקליט פודקאסטים . . .(אורי) בדרך כלל האורחים שלנו מגיעים טרוטי-עיניים מנסיעה מהמרכז . . .(נועם) אבל אני חייב להגיד שמציאים פה קפה מצויין, אז ממליץ בחום לבוא.(רן) תודה . . . אז לכל מי שמאזין - בואו לאורי, לקפה [קופון לא יצורף בסוף הפרק].(אורי) ואם אתם יכולים להביא פקאן בדרך, אז גם טוב.(רן) כן, הבאנו פקאנים . . . אז פקאן זו חברה שעוסקת, כמובן, בגידול פקאנים . . . (אורי) והתחלנו לפצח פה [מוזמנים לדמיין אפקטים של פיצוח](רן) אז בוא, נועם - ספר לנו - עליך, על הרקע האישי שלך, ועל פקאן, על מה שאתם עושים.משם כבר נצלול אל הנושא המרכזי של הפרק, שעוסק - נעשה לכם פה ספויילר - בתחום של Machine Learning והעולם האמיתי.אז קודם עליך נועם - מאיפה באת?(נועם) אז התחלתי . . . הכל התחיל שם, איפשהו בתקופה של הצבא, כמה מפתיע - 8200, הייתי במה שנקרא “אתגרים”לפי מקורות זרים - ורק מקורות זרים - זה בעצם עולם הסייבר [לכאורה].ככה התחיל עולם הסייבר של 8200 - הייתה תקופה מדהימה, קבוצה קטנה כזאת, הרגיש ממש כזו סטארטאפ בתוך היחידה, היינו הולכים על אזרחי . . .ושם הכל התחיל מבחינתי, ממש שם התחילה הקריירה - הייתי ראש צוות פיתוח.ובעצם, משם התגלגלתי, אחרי שהשתחררתי, לתוך עולם הדאטה - במשך 7 שנים ייעצתי להמון חברות פה בארץ - אם זה חברות ענק כמו בנקים וגם לסטארטאפים, על איך לבנות Infrastructure, בעצם לייעל שאילתות.ונכנסתי ככה עמוק לתוך עולם הדאטה, וזה היה מרתק - באמת עולם שהוא, כמו שאתם יודעים, מאוד מגוון ועם המון Use Cases, ונדבר על זה כמובן בהמשך כי זה כמובן רלוונטי.בעצם משם - ותיכף אני מגיע לפקאן - בעצם עשיתי תואר שני ודוקטורט בתחום של מדעי המוח ומה שנקרא Computational Neuroscience - שזה בעצם מודלים, שמסבירים איך המוח ואיך רשתות ומשפחות של נוירונים מייצרים פעילות.(רן) זאת אומרת - התחלת מרקע סופר-טכני, Security ו-Databases וכאלה - והלכת לאקדמיה, והיום אתה, ככה, איפשהו באמצע, אני מנחש - גם מבין את הצד העסקי, כי עבדת עם הרבה לקוחות כאלה, מבין מה הם רוצים ומה האילוצים שלהם, וגם אתה מביא את הרקע התיאורטי והאקדמאי בסיפור הזה.(אורי) אגב, איפה לומדים או איפה עושים כאלה תארים - בארץ?(נועם) בטח - בארץ, באוניברסיטת תל אביבהתואר הזה היה באוניברסיטת תל אביב, יש שם חבר’ה מאוד חזקים בתחום של Computational Neuroscience, יש את בית ספר סגול, שממש מוביל את זה.וזה באמת על התפר - ואני נורא אוהב את זה, רן - זה על התפר הזה, וזה גם מה שכל כך דיבר אליזה התפר שבין, מצד אחד, עולם המחשבים - יש פה איזשהו חיבור בין מחשבים לבין עניין באמת תיאורטי, מחקרי, מוח, באיזשהו מקוםכשכמובן שהחיבור ביניהם נופל לתוך Machine Learning, וככה באמת דברים התגלגלו להם.(רן) אז היום אתה בפקאן - ספר לנו קצת על מה שאתה עושה שם ומה עושה החברה(נועם) אז אולי אני אספר איך הפקאן נולד לו . . . באמת, בעצם זה התחיל, אם טיפה נחזור לתואר השני - על היום הראשון של התואר השני אני פוגש איש יקר שקוראים לו זוהר - ואנחנו מתחברים, ניהיים חברים מאוד טוביםלמעשה, את כל הדוקטורט עשינו ביחד, את כל המאמרים שפרסמנו - פרסמנו ביחדובעצם עם זוהר, שהיה לנו את החיבור הזה, סיימנו את כל מה שהיינו צריכים ל-PhD ואמרנו “אוקיי - מה עכשיו? מה הצעד הבא?”ואני זוכר הליכה, ככה, שאנחנו עושים באוניברסיטה, וזוהר אומר שתמיד היה לו חלום לעשות AI - ואז אמרנו שחלומות חייבים להגשים.אנחנו שוכרים חדר קטן מול האוניברסיטה - ומתחילים לעשות מחקר.וככה מתגלגלים בעצם לתוך פקאן.מה זה פקאן? מה זה כל הסיפור?הרעיון - זה מה שאנחנו מבינים בתחילת הדרך - זה שלייצר מודלים של Machine Learning, מודלים פרדקטיביים (Predictive), זה מאתגר, זה לא דבר פשוט.וזה דורש, כמובן, Data Science ו-Data Scientists שמכירים מאוד טוב את המקצוע, ורק הם יכולים באמת לייצר את אותם מודלים נחשקים, שיעזרו אחר כך כדי בעצם לקחת את העסק שלנו, ולהביא את אותם ניבויים - כדי שנוכל לייעל את העסק, ולהביא באמת למקום שהוא טוב יותר.(אורי) אבל אנחנו מדברים לא רק על Data Scientist שמכיר את עולם ה-Data Science, ומביא ניסיון משם, אלא גם צריכים להכיר את ה-Domain, את עולם הבעיה.(נועם) מדהים, בדיוק - זאת נקודה כל כך משמעותית, וזה מה שהביא אותנו לפקאןבעצם, מה אנחנו עושים בפקאן? פקאן מיועדת לא ל-Data Scientists, זאת נקודה נורא חשובה - היא מיועדת ל Data Analystsהיא דווקא מאפשרת בדיוק לאותם אנשים, שמגיעים בדיוק מתוך . . . כמו שאמרת - אתה צריך להכיר את עולם התוכן, זה לא מספיק שאתה יודע Data Scienceאתה צריך להכיר את עולם התוכן שבו אתה פועל - ובאמת פקאן בדיוק מיועדת לאנליסטים, שמכירים מאוד טוב את עולם התוכן, אבל לא מכירים מספיק טוב סטטיסטיקה, לא יודעים . . . בעצם, אין להם את הכלים כדי לייצר מודלים פרדיטיביים (Predictive) - והיופי של פקאן זה שאין צורך לדעת בעצם Data Science, על מנת לייצר מודלים.זו בעצם פלטרפורמה ראשונה שבאמת מאפשרת לאנליסטים - ולא ל-Data Scientists - לייצר מודלים פרדיקטיביים של Machine Learning, וזה מה שכל כך מיוחד בפלטפורמה.(רן) בוא ניקח כמה דוגמאות, זאת אומרת - אנחנו יודעים, בעולם, שמודלים של Machine Learning יודעים לנהוג במכוניות - ככה-ככה, לא תמיד זה עובד - יודעים לראות תמונות ולהבין, לפעמים לצייר ציורים, יודעים לפרש Natural Language , יודעים הרבה מאוד דברים - אבל אלו עולמות שונים לגמרי, כל עולם ומלואו שונה לחלוטין מהשני.יש בתחומים העסקיים דברים כמו מידול של התנהגות לקוחות, גם בנושא של קמפיינים יש לא מעט . . . מכל הדברים הגדולים האלה, מה פקאן יודעים לעשות?(נועם) אז זו נקודה מצויינת, ואגב - כשיצאנו לעולם, ראינו שבאמת כל אחד, כשמדברים על AI וזה כל כך פופלארי וזו כזו Buzzword - לכל אחד יש משהו אחר בראש, ובאמת יש כל כך הרבה סוגי מודלים.אז בפקאן, אנחנו קודם כל מתמקדים, מבחינת הנתונים, ה-Data, במה שנקרא Tabular Data - דאטה שיושב בעצם בתוך מאגרי הנתונים.לא מדובר בתמונות אלא באמת במידע טבלאי, שאיתו בעצם אנחנו מייצרים ניבוייםעכשיו, מהו בעצם עולם התוכן שאנחנו לרוב מתעסקים בו בפקאן? אז עולם התוכן שמתעסקים בו בפקאן זה . . .קודם כל, יש מגוון רחב של שאלות שאפשר לענות עליהן, זו פלטפורמה גנריתאבל אם נראה איפה האיזורים שאנחנו מתמקדים בהם, אז מצד אחד אנחנו מדברים על העולמות של עבודה מול לקוחות, Customersלזהות, בעצם, מראש את אותם לקוחות שינטשו - מה שנקרא Churn Predictionאו לדוגמא לזהות מראש מי הם אותם לקוחות שיהיו לנו הכי טובים, כי אנחנו רוצים מראש כמובן לדעת את זה - אנחנו מדברים על ניבוי של מה שנקרה High Value Customersו-Lifetime Value -כל אותם מודלים שמתעסקים בלקוחות.אבל זו משפחה אחת, יש עוד משפחות שאפשר לעשות בפקאן, לדוגמא, סתם כדוגמא - אנחנו מדברים על עולם של Inventory Control, ניהול מלאי.כמובן שבשביל לדעת על המלאי, איך צריך לנהל אותו, צריך מה שנקרא Demand Forecasting, להבין איך המכירות שלנו יהיו.מה שיפה בפקאן זה שיש פה אוסף של שאלות שאפשר לשאול, מהמון סוגים, ומה שבנינו בעצם בפלטרפורמה זה משהו . . . אנחנו קוראים לזה Templates או Use Cases, שמנווטים את ה-User, בעצם לאפשר ולענות של השאלות האלה בצורה מאוד מאוד פשוטה.(רן) אפשר לעשות את זה בצורה כל כך גנרית? זאת אומרת - נגיד, מודל של Customer Live Value Prediction עבור לקוחות - אני מניח שהוא מאוד שונה בין חברת מוניות לבין חנות או מסעדה או כל ביזנס אחר.אפשר באמת לבנות מודל שהוא כזה גנרי, ולמכור את זה ללקוחות כל כך שונים?(נועם) שאלה מדהימה - וזה באמת . . . אגב, בתחילת הדרך, נורא היינו עסוקים בשאלה הזאת.אחד הדברים שהבנו זה קודם כל שזה לא מודל אחד, שאנחנו באים איתו מראש - כל היופי של הפלטפורמה זה שהפלטפורמה מתחברת [ברברס?] לנתונים, לומדת את הנתונים - ובעצם מאמנת את המודל בהתאם לנתונים שיש לך.בעצם, זה לא משנה . . . כמובן שאנחנו מתחילים תמיד עם, אתם יודעים - Go-to-Market שהוא כן עם סגמנטים מסויימים, בעיקר בצד של ה-Marketingחשוב שיהיה לנו את אותו מסר, ושהמסר יהיה מאוד ברור - אבל בסוף זה לא משנהסתם לדוגמא - אנחנו עובדים עם חברות Retail מאוד גדולות, CPG . . . זה לא משנהאו, לדוגמא, חברות בכלל מאיזורים של Gaming - ועדיין זה אותם מודלים.הכוונה היא לא שזה אותו מודל שנוצר, אלה שזה מודל שמתאמן על הדאטה - ובגלל זה הוא גנרי ויודע להתאים את עצמו.(רן) יש לכם איזשהו Tool-set טיפוסי, שאיתו אתם עובדים בשביל המודלים האלה? לצורך העניין, רשת ניורונים או רגרסיות מסוגים שונים או מסווגים מסוגים אחרים?(נועם) נורא חשוב כמובן, וזה גם קשור לשאלה הקודמת שלך - כדי שנוכל להתאים את עצמנו, אנחנו עובדים עם הרבה משפחות.זה לא שאנחנו עובדים עם סוג מודל אחד, אנחנו עובדים עם הרבה משפחות - אבל אני אגיד שהאתגר הכי גדול זה דווקא לא המידול עצמו, המידול הוא החלק, אני אגיד כמעט “הקל”, בסיפור.החלק הכי קשה זה כל ה Pre-processing של הדאטה - ושם באמת, אם אנחנו מסתכלים על סוגי הלקוחות והסוגי נתונים . . תיכף כמובן נכנס לזה, אני משער, קצת יותר לעומק - כי זה באמת אחד המקומות הכי קשים, וזה באמת איך לוקחים דאטה, שהוא כל כך מגוון . . .דיברנו על דאטה טבלאי, וכמו שאתם יודעים - אצל כל הלקוחות, בעצם, המבנה הוא שונה, הטבלאות שונותומה שאנחנו יודעים, וזה חלק שעבדנו עליו מאוד קשה, זה לדעת לפרמל (Formalize) את זה בצורה כזו שלא משנה איזה סוג דאטה יש - אתה תוכל בעצם לחבר [דאטה], ברגע שהוא טבלאי (Tabular), אתה תוכל להכניס אותו פנימה, ובעצם לייצר את המודלים.(אורי) אז היה פה, לפני כמה פרקים, אסף קליין מ-Outbrain, שדיבר על AutoML[פרק 401 AutoML at outbrain with Assaf Klein][והוא אומר] בעצם, “קח דאטה, מסווג או מתוייג ברמה מסויימת, ועכשיו תן למערכת לרוץ עליו”; המערכת תמצא את המודל המתימטי הנכון לדבר הזה, את ה-hyperparameter הנכונים, את ה. . . . אולי אפילו תנקה את הדאטה - ותקבל מודל.אז כעיקרון, אתה לא צריך עבודה, או הרבה עבודה, של Data Scientist - שזה כמובן נכון בתיאוריה . . . אבל אתה לא צריך הרבה עבודת Data Science כדי לבנות מודל, כי המכונות פשוט עושות הרבה ניסיונות ומוצאות משהו טוב . . .(נועם) אז קודם כל - זה היה פרק מרתק, וזה לגמרי נכון - אבל יש “אבל” ענק פה, וסופר-משמעותיאצל אסף, כבר הדאטה, בעצם, הגיע למבנה - ותיכף אני אדבר על זה, כי זה נורא משמעותי - מבנה שמכונות יכולות להבין אותו.התחלת . . . סתם, אני אתן דוגמא ואחרי זה נפרט ויהיה נחמד להיכנס קצת לעומק על ההבדלים ועל מה זה אומר - אבל כדי שמודלים . . . תיקח מידע מתוייג - אבל מאיפה יש ללקוחות שלנו, שהם אנליסטים, מיידע מתוייג? אין להם, הם אפילו לא יודעים מה זה אומר . . .בעצם, צריך להבין את השפה של האנליסט - אותם אנליסטים, שעובדים, לדוגמא, עם כלי BI, ושמביאים ל-Business היום תובנות - לא יודעים את עולם ה-AI, הם לא יודעים בכלל מה זה “מידע מתוייג”.צריך להתחיל איתם בכלל במושגים שלהם - בטבלאות, ואני אתן תיכף דוגמאותאפשר לדבר על טבלה של טרנזקציות - שזה משהו שהם מבינים, טבלה של לקוחות - אז זה הם מבינים.אבל “מידע מתוייג”? - וזה רק דוגמא אחת.אם נלך רגע לעוד דוגמאות, ואני חושב שהן אפילו יותר מורכבות - זה איך בעצם מייצרים פיצ’רים?כל העולם של Feature Engineering זה לא משהו שמכונה יכולה לייצר, כי בסוף צריך להבין את הדאטה.זה בדיוק האלמנט שנקרא “To make sense of Data”.אותם אנליסטים לא יודעים בכלל מה זה אומר Feature Engineering, הם לא מבינים . . .וזה כמובן, וזה נורא חשוב - יש גם אנליסטים שכן יודעים, אבל אם נסתכל על ה-Bulk הגדול, שבדרך כלל מתעסקים ועובדים בעולמות של BI - הם לרוב לא יודעים לעומק את העולם הזה, וזה מה שמייחד את ה-Data Scientistאיך לייצר את אותם פיצ’רים, שמייצרים . . . לוקחים את הדאטה הגולמי, ומייצרים ממנו מידע שאפשר להכניס לתוך מודלים.ומה שמאוד מיוחד בפקאן זה שאנחנו עושים את באופן אוטומטי.(רן) באופן אוטומטי מסתכלים על דאטה, שלא ראית לפני כן, של חברה שאתה לא מכיר, שאתה לא מבין מה ה-Business שלה - ואתה עושה מזה משהו הגיוני? . . . טוב, אז אולי ניכנס פנימה ונבין איך זה עובד.(נועם) מהמם.אז (א) - חשוב [להבין]: אין פה קסם - זה הכל Engineering שמחבר את הדבריםאבל כן אני אתחיל ואגיד, וזה באמת המקום שבו . . . אתם זוכרים את אותו חדר קטן שדיברנו עליו, מול האוניברסיטה? שם כל הרעיונות נוצרו, מבחינת הבסיס, באמת.כי מה קרה? קיבלנו דאטה של לקוחות, ובתוך התהליך קיבלנו עוד דאטה ועוד “דאטאות” שונים, ובאמת בכל פעם היינו מייצרים מודליםוראינו את אותם מקומות והבנו שבעצם כן - יש פה קו מנחה אחד שעובר בתוך כל המקומות האלה.וזה אותו מקום, שהבנו שכן אפשר לייצר את אותו Framework, שהוא מאוד משמעותי - ובעצם הוא מדבר לכל אחד שמבין דאטה, ודרכו אנחנו מגיעים למודל.עכשיו - למה אני מתכוון? כי זה נשמע עדיין מאוד אמורפי, אז קצת ניכנס לתכל’ס - בסוף, אם חושבים על זה, בעצם כדי להגיע למודלים פרידקטיביים (Predictive), יש את אותן קומפוננטות (Components) נורא חשובות שצריך להכיר אותן - אנחנו קוראים להן The Four W’s, וזה לא מכונית שנוסעת, זה לא אוטו שיודע לנסוע, אלא זהא. Who - עבור מי עושים את הפרדיקציה?ב. When - מתי עושים את הפרדיקטציה? - וזה נורא חשוב, תיכף אתם תבינו איך זה בונה את כל העולם תוכןג. ברגע שאנחנו יודעים עבור מי עושים את הפרדיקציה ומתי, נשאר לנו What - מה אנחנו רוצים בעצם?וזה אותו מקום אגב . . . מה שאנחנו רוצים לחזות, אותו מקום של מידע מטוייב.אז אנחנו לא מבקשים מה-user שלנו, בעצם, להביא מידע מתוייג - אנחנו נתייג אותו בשבילו.איך נעשה את זה? אנחנו מבינים את עולם התוכן, אנחנו מבינים שמדובר ב-Life-Time Value או ב-Churn, אנחנו רק צריכים עכשיו לדעת מה-user מהי, לדוגמא, טבלת ה-Transactions שלו, או מה היא הטבלה שאליה אנחנו רוצים לסכום.אז בעצם, ברגע שאנחנו נותנים את אותה מסגרת של Who, When, What - וכמובן ה-W האחרון, שזה מה שדיברנו עליו לפני כן - ד. זה With - בעזרת איזו אינפורמציה אנחנו רוצים שהמערכת תייצר את הניבוי?עכשיו, פה מגיע אותו חלק כל כך משמעותי, של “איך אנחנו יודעים To make sense of data?”קיבלנו טבלה - עכשיו, קחו טבלת . . . אפשר לדבר סתם לדוגמא על טבלה שאנחנו מקבלים - שיחות טלפוןרשומות, כשכל רשומה היא שיחת טלפון ל-Support, ורוצים להבין את המשמעותהיופי זה שאנחנו מבקשים מה-user, בעצם, להביא לנו עמודות של זמן, של תאריך - מהו אותו תאריך שבו האירוע קורהומשם אנחנו כבר מזהים את כל העמודות השונות, מה המשמעות שלהן, איזה סוג זה - ומייצרים את אותם פיצ’רים.אני אתן כמה דוגמאות קטנות כדי שתבינו: קחו, לדוגמא, אם אנחנו מדברים על אורך של שיחה, אז מה שמעניין זה, פר user מסויים, לא רק לראות שיחה מסויימת אלא מה קורה על פני הזמןבעצם, אנחנו בפקאן מסתכלים על אוסף של אותן רשומות, ומייצרים להן נגזרת - לא רק לוקחים נקודה מסויימת, אלא ממש מסתכלים על הנגזרת על פני הזמן, ורואים איך יש שינוי.אז אם לבנאדם בתהחלה הייתה שיחה קצרה, ואחר כך יותר ארוכה ויותר ארוכה ויותר ארוכה - מאוד יכול להיות שקורה פה משהו.זה בדיוק אותו מידע שחשוב למודל, ואנחנו יודעים לייצר את אותם פיצ’רים על מנת להגיע, בעצם, למשהו ש Make sense of data.(אורי) אז אם אני מנסה להבין - ה - Secret sauce הוא ב . . . אוקיי, יש לך מידע טבלאי, אני שואל אותך ארבע שאלות - אותן ארבע W’s שלך - וזה מספיק לי בשביל לקחת את המידע הטבלאי שלך - וכמובן הוא חייב לכסות את התשובות של השאלות - בשביל לייצר מזה מידע שאני יכול להכניס ל-AutoML כזה או אחר, ולקבל מודל פרדיקציה?(נועם) לחלוטין - אתה בעצם . . . רק חשוב להגיד: פקאן זה End-to-End Solutionאתה רק צריך לחבר את אותן טבלאות, כמו שבדיוק הסברת, והסברת מהמם, עם אותן Four W’sובעצם מה שאתה מקבל - לוחץ על כפתור, מה שנקרא Train the model בתוך פקאן - ומאותו רגע, בעצם, אתה מקבל מודל מוכן.כמובן שיש את כל ה-Processing של ה-Data, ואם תרצו אפשר להכנס באמת למה שקורה שם - אבל בעצם מעבדים את כל הנתונים, מבינים.עושים, כמובן, מה שנקרא Feature engineering או Feature selection, מידולומגיעים בעצם למודל מוכן - ועכשיו אתה בתוך פקאן, עם מודל מוכןומה שנורא יפה בפתרון, וזה אחד הדברים שנורא ריגשו אותי בפקאן, זה שכשסגרנו את ה-Loop - ואתה יכול ללחוץ על כפתור שאומר “עכשיו תתחיל להשתמש במודל הזה”.אתה לא צריך לעבור למערכת אחרת, אתה בתוך פקאןאתה במה שנקרא “use my model”, ועכשיו אתה יכול להגיד “אני רוצה להשתמש בו” - ולא צריך לעשות שום פעולה במקום אחר.בעצם, אתה רק אומר איזה תזמון אתה רוצה, ועכשיו אנחנו מושכים רק Data חדש, מייצרים את הניבויים - ושולחים אותם חזרה אליך כ-User.(אורי) בעצם, התחלנו את השיחה מ-Machine Learning בעולם האמיתי. . . .(רן) . . . אז בוא אני אתן לך שאלה של Machine Learning בעולם האמיתי . . . (נועם) יש!(רן) . . . כמעט כל מי שעושה איזושהי תיאוריה ב-Data Science או Machine Learning, מסתכל על Data-set מדהים, והוא מריץ כמה שורות ב-Pandas וב-scikit-learn ועוד איזה TensorFlow, והכל עובד נהדרהסיווגים יוצאים בתשעים-ומשהו אחוזי דיוק, והרגרסיות יוצאות יפות והכל סבבה.ואז, כשאתה לוקח את אותו הדבר ואתה רוצה להפעיל את זה על ה-Business שלך - נקרא לזה העולם האמיתי - פתאום כלום לא עובד . . . שום דבר לא מדויק, כל הרגרסיות עקומות, הפיצ’רים לא בכיוון . . . זאת אומרת, כשהמדע פוגש את השטח, את מגלה שיש שריפה בצמיגים.אז אני מניח שאתם, בגלל שאתם רואים הרבה מאוד לקוחות, בטח רואים את זה חדשות לבקרים - וחשבתי שאולי תוכל לחלוק איתנו כמה מהלמידות שלכם בתחום הזה, של איך לוקחים את התיאוריה והופכים אותה למשהו שהוא פרקטי וגם Actionable-י.(נועם) לגמרי . . . אולי נתחיל . . . זה עולם באמת עצום, וזה מרתק, כי זה באמת אותם מקומות, ואני זוכר את עצמי בדוקטורט, מתעסק עם עולם של מידול, ומידול של מוחאם אנחנו מדברים לדוגמא על EEG, ואיך מייצרים משם פרדיקציות . . . ובאמת, יחסית - עולם ורוד . . . זה באמת עולם שבו לדאטה יש מבנה שהוא הרבה יותר ברוראין כאלה פערים גדולים, ובטח כשאנחנו מדברים על אותם Data-sets שאתה באמת מוריד כדוגמא ורוצה לראות והופ! הכל נפלא.אז בואו באמת ניקח כמה דוגמאות, אם מתאים לכם, ונתחיל להסתכל על כמה דברים, ודברים שאנחנו ראינו אותם כמובן - והתמודדויות שצריך לדעת להתמודד איתן.אולי נתחיל, ויש פה כמה איזורים - נתחיל . . . דיברנו קודם על LTV, נכון? (רן) Lifetime Value . . .(נועם) סליחה, Life-Time Value, נכון - לחזות כמה אותו לקוח יהיה שווה - כמובן שאנחנו מדברים על חיזוי, אז יהיה שווה בעתיד.בעולם , אם ניקח, אתם יודעים . . . כמובן, בדרך כלל בדוגמאות האלה, אם אנחנו עושים מתוך רגרסיה איזושהי לדוגמא, כמעט תמיד ההתפלגות היא התפלגות כזאת גאוסיאנית - פעמון יפהוהמודלים - הם אוהבים פעמונים, טוב להם לשמוע את הצליל הזה, תמיד נעים להם מאוד . . אבל במציאות . . .(אורי) כמו פרות בשוויצריה . . .(נועם) בדיוק . . . אבל . . .(רן)בדיוק חשבתי על הגיבן מנוטרדאם, אבל בסדר, פעמון זה פעמון . . .[יותר בכיוון של High Hopes . . . ](נועם) אז אני אגיד - הגיבן מנוטרדאם זה באמת יותר איך שהדאטה נראה, והוא לא נראה כל כך ישר ויפה . . .(אורי) יש לו גיבנת . . .(נועם) יש לו גיבנת, ויש לו אחר כך גם זנב . . . לא חושב שהיה לו זנב, אבל במציאות יש זנב ארוך, שם בתוך ההתפלגות.ובאמת זה מה שרואים - בדרך כלל, כמו שאתם יודעים, במציאות, בהרבה מאוד מקרים דווקא יש מעט לקוחות שמביאים בעצם את רוב ההכנסותהם אותו הזנב - וההתפלגות נראית קטסטרופה, ועכשיו לך תתמודד עם הדבר הזה.מודלים נראים קטסטרופה במצב הזה, וההתמודדות שם היא מאוד קשה, היא לא . . . זו דוגמא קטנה להתמודדות ראשונה(רן) זאת אומרת - אנחנו מדברים על מצב שבו ה-Target שלך, מטרת היעד - אולי בספרות היא נראית כמו איזשהו פעמון גאוסיאני מאוד יפה, אבל במציאות זה נראה ברדק שלם, ואז המודל לא יכול . . . הוא כנראה לא יעבוד טוב במצב כזה.(נועם) נכון מאודבעצם, הרבה פעמים הסיבה היא שבהרבה מאוד מהמודלים יש הנחה, בתוכם - הנחה, שמניחה שבאמת ה-Target, יש בו התפלגות גאוסיניתומה לעשות שהנחות נועדו כדי שהן לא תתקיימנה, כמובן [Normal’s overrated].(רן) טוב, אתה יודע - המרצה לסטטיסטיקה יגיד “במספרים מספיק גדולים, זה תקף”, אבל זה המספרים שיש לי, אין לי מספרים מספיק גדולים . . .[והם גם כמעט אף פעם לא בלתי תלויים, או שווי התפלגות . . .](נועם) אגב, גם ב”מספיק גדולים” פה - זאת בעיה, כי זאת המציאות פהואנחנו מתעסקים עם מספרים מאוד גדולים - וזאת עדיין ההתפלגות, כי זאת פשוט המציאות[ד”ש לאסימוב?]אתם יודעים מה? אני מגיע מעולם של פסיכולוגיה, ובאמת בפסיכולוגיה, אנחנו כבני אדם - הרבה מאוד מההתפלגויות הן באמת גאוסיאניות, אבל דווקא בעסקים זה נראה מאוד מאוד שונה.ובאמת בדאטה עסקי, אנחנו לא רואים את אותה התפלגות גאוסיאנית[אקספוננציאלית? Log-Normal?]אני משער שיש פה . . . לא יודע אם אתם מרגישים את המתח של “רגע, מה עושים, איך מתמודדים עם זה?” . . .(רן) לא - אני רק שואל את עצמי מה ההתפלגות, נו? . . .(נועם) אז אולי אני אתן לכם רק . .. כמובן, יש פה כמה טיפים, אבל איך בכלל ניגשים לשאלה כזאת? אני חושב עכשיו על האנשים ששומעים [ומנסים לתמלל!] אותנו, ואומרים “רגע, יופי! הוא - יש לו מלא דאטה של לקוחות, קל לו, אבל אני בבית, איך אני יכול לעשות? מה אני יכול לעשות?”את תדעו לכם - זוכרים שהתחלנו בעצם, ככה בגאראז’ שלנו - תמיד מתחילים מדאטה, שבעצם הוא סימולציה, מייצרים סימולציות, זה מאוד חשובכי בעצם, דרך סימולציה, אפשר גם לייצר את החוק, והדרך הכי טובה להתחיל מחקר בעולמות של Machine Learning זה קודם כל לייצר קוד שמסמלץ (Simulates) את הנתונים, ומשם בעצם לומדים איך הכי נכון לייצר את אותם מודלים.[הקשר מעט אחר אבל קצת רפרנס ל In order to scale you have to do things that don’t scale ול- Do Things that don’t Scale]תמיד עבדנו, בעצם יצרנו סימולציה של מידע שיש לו זנב מאוד ארוך, עם חוק מאוד מסוייםכמובן בצורה של Rule-based, פשוט בשביל הסימולציה - אין צורך . . . פה זה לא מקום שצריך הרבה יצירתיות - דווקא מעט יצירתיות היא מאוד טובה פה - משהו פשוט.ורוצים לראות שהמודלים, גם עם “ההתפלגות הבעייתית”, יודעים לעלות על החוק, כאשר זו סמולציה פשוטה.קודם כל צריך לפצח את זה - אם לא תפצחו את זה, לא תצליחו לפצח גם מידע שהוא הרבה יותר מורכב בחוקיות שלו.(אורי) אז אתה אומר “אני מסתכל על מידע אמיתי; אני מזהה את החוק או את הבעיה; ומסמלץ את המידע הזה לצורך משחק עם המודל” - כשבעצם, כשאתה מייצר מידע סינטטי, אתה מסמלץ מידע שהוא סינטטי, אבל מכיל את הבעיה . . . מכיל בעיה אחת, וכנראה שבדאטה האמיתי מסתתרות עוד כמה בעיות.זא אומרת - אני קודם כל מייצר לי את המודל שמצליח לעלות על הבעיה שבעצם סימלצתי; אני אראה שהמודל עובד על זה, ואז אני אעבור לבעיה הבאה.(נועם) בדיוק - אי אפשר להתחיל מלפתור את כל הבעיות, זה פשוט בלתי אפשרי, זה לא . . . זה מאוד מאוד קשה.ובאמת, הדרך שלנו לפעול זה כל פעם לקחת בעיה, לראות איך הדרך הנכונה להתמודד איתה, ודרך אותן סימולציות באמת להבין איך נכון להתמודד עם זה, אני מתחיל את המחקר שם.כמו שאמרת - אתה משחק, אתה גם חוקר, מבין איך נכון בעצם לפעול - ועכשיו לוקח את זה לעולם האמיתי.(רן) לצורך העניין, בדוגמא שלנו, אתה אומר “סבבה, המודל עובד על התפלגות גאוסיאנית - אבל מה לעשות, ההתפלגות היא, Whatever - אקספוננציאלית או Weibull או משהו אחר כזה, לא כל כך יפה - אז בואו נסמלץ (Simulate) התפלגות אקספוננציאלית, ננסה להתאים את המודל עליה, ואחרי שעברתי את זה אני אעבור לדאטה האמיתי, ושם אני אעשה את התיקונים הנדרשים”. אבל . . .(אורי) או שאני אקח את הבעיה הבאה בדאטה האמיתי - ואני אסמלץ גם אותה ו . . .(רן) כן, אבל זה נשמע כאילו “שלב מיותר” - למה לעבור דרך סימולציה, אם כבר יש לי את הדאטה? זו שאלה אחת.ושאלה שנייה - אולי אתה פותר בעיה קלה מדי? זאת אומרת, אז עשיתי סימולציה, אבל הסימולציה פשוט לא מספיק נאמנה לדאטה האמיתי או, לא יודע, אולי יש לי איזשהו Bias בדאטה, אולי יש לי הרבה אנומליות - כאלה שמה לעשות? אני לא מסמלץ אותן, וכשאני מגיע לדאטה אז שוב אני בפני שוקת שבורה, וכל העבודה שעשיתי לפני - אי אפשר להשתמש בה.(נועם) שתי נקודות מאוד מאוד טובות וחשובות . . .אני אתחיל, רגע, מהראשונה - על הנקודה שאמרת שאולי יש פה מצב שבוא אתה פותר בעיה אחת, שהיא יחסית “פשוטה”נכון - אבל אנחנו לוקחים את זה . . . “אבל בעצם יש לך את הדאטה, למה אתה צריך את ה[בעיה ה]פשוטה?”כשאתה מתמודד עם כל הבעיות “במכה”, אין לך מושג האם התקדמת . . . אתה כל פעם נתקע, וזו הבעיה הכי גדולה, אגב, ב-Data scientists שמתמודדים עם דאטה כזה - הם לא יודעים האם הם מתקדמים.אתה כל פעם עשית משהו, אבל “רגע, זה לא עבד לך”,אז אתה מנסה משהו אחר, ו”רגע, זה לא עבד”.אבל זה לא עבד בגלל עשרים מחסומים בדרך - ואם אתה לוקח כל מחסום ומחסום בנפרד . . . ותראו - אני אומר לכם את זה אחרי שעברנו את המחסומים, ואחרי שאנחנו באמת כבר מייצרים מודלים ללקוחות על דאטה אמיתי ורואים ביצועים מאוד טובים - זה בדיוק דרך אותה שיטה של בכל פעם לקחת את המחסום לבד הצידה, עם דאטה הרבה יותר פשוטכי אם לא תעשו את זה עם מידע יותר פשוט, לא תדעו מה הדרך להתמודדומשם לעבור למחסום הבא.שוב, אני מקווה שהצלחתי להעביר - זה לא שזה נעשה בצורה אטומטיתאותם . . . הדרך של “כל פעם לעבור את המחסום”, זה אצלנו, כמובן, יש צוות של Data scientists, חבר’ה מאוד חזקים, שמסמלצים את הבעיה.הבעיות, בסופו של דבר, חוזרות על עצמן - אלו לא בעיות שלכל לקוח זו בעיה שונה, דברים חוזרים על עצמם.אבל הדרך להתמודד היא באמת לקחת מחסום כזה ולהבין איך מתמודדים איתו.(אורי) אז אפשר גם לסמלץ ואפשר גם לנקות, לא? כאילו - אתה יכול לנקות בעיות מהדאטה . . .(נועם) לגמרי . . . מה שדיברתי בסימלוץ זה תמיד כשאי אפשר לנקות, אבל לגמרי - אנחנו מנקים, וזה מאוד חשוב.וזה לגמרי, קודם כל . . . זה תהליך שלם, בתוך ה-Pipeline שלנו, זה כמובן לעשות Cleansing לדאטה, Wrangling של הדאטה . . . וזה תיכף, אפשר קצת לדבר גם . . . אתם יודעים, מדברים על “דאטה מלוכלך” - מה זה “דאטה מלוכלך” בכלל?אני מקווה שנספיק, כי אני לא יודע כמה זמן יש ויש המון נושאים וזה מרתק . . .אומרים “דאטה מלוכלך”, אבל כל אחד מתכוון לדברים שונים . . .אבל כמובן - אם אנחנו מדברים על Missing Values שזה מאוד חשוב, אם אנחנו מדברים על טעויות בתוך הדאטה . . .אלמנט מאוד מאוד חשוב זה גם Data Type - מה ה-Type שלי? הם אני תאריך או לא תאריך? ואיך אני מייצר את התאריך? ואיזה תאריכים . . . ורגע, אולי יש לי פתאום תאריך עתידי בדאטה, בטעות, שאתם יודעים - תמיד נכנסים תאריכים לא נכונים כאלה פה ושםאלו בדיוק אותם מקרים שמאוד משמעותי לנקות אותם, לפני שיוצאים לדרך, לגמרי.(אורי) אז הזכרת Data scientists שיושבים על הדאטה ועובדים עליו . . . כמה מה-Workload של מלקחת לקוח ועד שאתה יודע לתת לו מודל פרדיקציה (Prediction Model) . . . זה קשה להגיד את זה אבל . . . (רן) אתה מתכוון לשאול כמה מזה אוטומטי וכמה מזה . . . (אורי) . . . כמה מזה אוטומטי וכמה זה עבודה . . .?(נועם) יש לי תשובה מאוד פשוטה לזה, מאוד פשוטה . . . אני אגיד לכם למה - וזה אגב, בחווייה האישית, תחשבו בתור, אתם יודעים - מישהו שזה “הבייבי שלו”, ויוצא לדרך - אתה לא יודע לאן אתה הולךואני יכול להגיד לכם - רגע שבשבילי היה ללא ספק משמעותי מאוד בדרך זה כשעבדנו עם לקוח מאוד גדול, חברת Retail אמריקאית ענקית, אני כמובן לא יכול להגיד את השם . . עבדנו איתם והם אמרו “אנחנו רוצים, כמובן, פיילוט - רוצים לראות מה אתם יכולים לעשות”ובעצם לקחנו ככה, ביקשנו מהם את הדאטה והכנסנו אותו לתוך המערכת, ביחד איתם הכנסנו את זה לתוך המערכת - ותוך שבועיים, בעצם, הגענו למודל שהם במשך שנה עבדו עליו - זה הסדרי גודל.וזו הייתה הפעם הראשונה - אחרי זה הגענו לעוד לקוח, ובדיוק אותו סיפור: שנה שבה הצוות עובד - ואתם יודעים איך התהליכים, ואפשר אולי לדבר על התהליכים של מה זה לייצר מודל - זה גם קשור לדאטהזה גם קשור, כמובן, ללהבין ולחבר את זה לשאלה שהיא מוגדרת היטבלנקות את הדאטה, להריץ מודל . . .עכשיו - זה לא פעם אחת: אתה כל פעם עושה סייקלים (cycles), אתה בכל פעם רוצה לשפר ועושה סייקליםוזה היופי - זה מצא. בתוך פקאן, אתה מצליח, בתוך שבועיים - ותיכף אני אדבר על למה זה כל כך מהיר ואיפה באמת, כמו שדיברת, איזה Workload זה לוקח - אל מול שנה.וזה לא לקוח אחד - אנחנו מדברים על הרבה לקוחות שזה בדיוק מה שאנחנו שומעים.והיום, כששואלים אותנו מה ה-Value שלנו . . . פעם, היינו אומרים שה-Value הכי גדול של פקאן זה באמת לאפשר למישהו שלא מכיר לייצר מודלים - אבל זה הרבה יותר מזה.זה לייצר, בעצם, הרבה מודלים - זה לייצר ולענות על הרבה שאלות עסקיות והיום, כשאתה שואל את עצמך למה שלקוח גדול - ודיברנו על לקוחות באמת גדולים - למה שהם בכלל ידברו איתנו? מה - אין להם צוותים?[אז] יש להם, אבל הבעיה זה שאותם צוותים לא יכולים לענות על הרבה שאלות עסקיות, כי זה לוקח הרבה זמןבעצם, בעזרת פקאן, הם פשוט מחברים את הדאטה ומקבלים את אותו מודל פרדיקטיבי.עכשיו, למה אגב שבועיים? למה לא מיידית? למה עדיין יש פה איזשהו תהליך מסויים? כי באמת, וזה אחד הדברים המשמעותיים, היופי בתוך פקאן זה . . . דיברנו על ה Four W’s, ויש שם קונפיגורציות, יש שם כל מיני קונפיגורציות שאתה יכול לשחק איתןאם, לדוגמא, אנחנו מדברים על Lifetime Value, אז השאלה לכמה זמן אתה חוזה קדימה, ולכמה זמן מראש אתה רוצה לחזות קדימה . . . והיופי בתוך פקאן זה שאתה יכול לשנות את הקונפיגורציה - אתה עושה “Duplicate my Model”, משנה את הקונפיגורציה - והנה, יש לך מודל חדש.אז בעצם מה שאנחנו עושים זה שאנחנו מייצרים כל מיני וריאציות [נושא טעון בימים אלו…] על בסיס קונפיגורציות - אבל לא של Hyper Parameters, זה מאוד חשוב - קונפיגורציות עסקיות, ובעצם מקבלים תמונה מלאה.ועל זה דיברנו, על פער שבין אקדמיה לעסקי - בעסקי, זה לא שאתה בונה מודל אחד בשביל לענות על שאלה; אתה רוצה לקבל את כל . . . בעצם את כל הקשת השונה, ולראות 360 מעלות כדי להבין את הלקוח.ולהבין מה הם המודלים הכי טובים, שאיתם אתה יוצא לדרך.(רן) אז אנחנו ב-Scope של “איזה דברים עובדים נהדר באקדמיה, או איזה דברים עובדים נהדר על הנייר, אבל הרבה יותר מאתגרים בעולם האמיתי” - ובוא נכסה עוד נושא אחד כזה, כי אין לנו את כל הזמן שבעולם.אז דיברת על לקחת דאטה ולסמלץ אותו כדי לעבור, מה שנקרא “פרה-פרה”, כדי לעבור את המכשול הראשון לפני שאנחנו מגיעים למכשול השני . . .איזה עוד בעיות יש שככה נתקלים בהן בדרך כלל בעולם האמיתי, שאולי בעולם האקדמאי הן נראות כאילו הן כבר פתורות?(נועם) אז אחת הנקודות - ובטח אתם תזדהו עם הבעיה הזו, לכל מי שמתעסק עם העולמות של Data Science זו אחת הנקודות הכואבות, ויש לזה גם כמה שמות, זה בא בזויות שונות - מושג של Leakage . . . אחת הנקודות, כ-Data scientist, זה גם אלמנט מאוד קשה, זה באמת מצב . . ובאקדמיה הרבה פחות . . . לא כל כך מתעסקים בכלל עם Leakageזה כמובן תלוי איפה וזה כמובן נושא שמדובר, אבל אם לוקחים את אותם מודלים ומסתכלים, אז לרוב יש באמת . . .הרי כשמסתכלים במאמרים, לרוב אלו Data sets קבועים, מאוד מסויימים - זה לא שבאמת מסתכלים על מגוון רחבאבל ברגע שמגיעים למציאות, ותיכף אני אתן כמה דוגמאות, ודוגמאות באמת של איפה שהדבר הזה נופל ועד כמה הוא מורכב . . אבל Leakage . . . אולי אני אסביר שנייה מה זה בכלל, ואז ניכנס קצת ל . . .בעצם, דיברנו על Machine Learning, אנחנו מדברים על לחזות משהו קדימה בזמן - מה יקרה?אז הדבר הכי מסוכן זה שאיכשהו אנחנו מכניסים לתוך המודל מידע, שבתוכו חבוי מידע מתוך העתיד, שלא ידענו אפילו שהוא מתוך העתיד, ואיכשהו הוא “התחבא” לו שם, בלי ששמנו לבועכשיו ברור שלמודל מאוד “קל”, כי . . זה אמור להיות יחסית קל, כי זה חבוי לו בפנים . . .(רן) יש לו רמז מאוד מאוד ברור, כשאתה בונה אותו, אבל במציאות הרמז הזה כבר לא יהיה קיים, זאת אומרת - בדרך כלל אתה מאמן על מידע שהוא היסטורי, ששם יש לך אינפורמציה מלאה, ואתה “עוצם לרגע עין אחת” כדי לא להסתכל קדימה, אבל בטעות אתה קצת “פותח את האצבעות” וכן מסתכל קדימה, בלי שהתכוונת - וזה ה-Leakage הזה שעליו אתה מדבר.(נועם) בדיוק - ובעצם, כמו . . .מאוד יפה, אני אוהב את הדוגמא הזו עם החצי-עין עצומה וככה, לעצום . . .(רן) אל תשכח לתת זכויות יוצרים!(נועם) אז הנקודה היא באמת, שכשמגיעים לדאטה - ותזכרו, אנחנו מתחברים בעצם למקורות דאטה של הלקוחות שלנו, ממש מתחברים ל-Databases שלהם, למקורות מידע, ו . . . תחשבו רגע קצת על איך נראה מידע בתוך ה-Database - לרוב לוקחים דאטה וגם מעדכניםמעדכנים שם רשומות, ואם אנחנו מעדכנים פתאום רשומה, ומסתכלים עליה ו . . . ממש כמו שדיברת, אנחנו הרי מסתכלים על מידע היסטורי, אז אנחנו לקוחים רשומות ישנות ומשתמשים בהן כאילו הן נוצרו עכשיואבל בעצם הרשומה השתנתה - קרו לה כל מיני דברים . . . המון המון מידע בעצם התעדכן מאז - ואנחנו מניחים עכשיו, כשאנחנו ברגע הפרדיקציה, שזה המידע שיש לנו בידאבל כשנגיע באמת לרגע הפרדיקציה [במציאות] - המידע לא יראה ככה בכלל . . .וזה אותו פער - זה בעצם . . . בגלל זה ה-Leakage הזה: דלף מידע . . .(רן) בוא, רגע, נמציא דוגמא - נגיד, יש לי עמודה שקוראים לה “איכות הלקוח”לפני שנתיים, כשרק קיבלנו את הלקוח, לא ידענו עליו שום דבר, אז שמנו שם, נגיד, “C”.עם הזמן, הלקוח שילם תמיד בזמן, תמיד חזר והכל - וזה לאט-לאט עלה ל-”B” ועלה ל-”A”עכשיו - אתה בא לעשות איזשהו Prediction ואתה רואה בתוך העמודה הזאת שאיכות הלקוח היא “A” - זאת אומרת שזה לקוח ממש-ממש טובאבל במציאות, כש”יוולד” לך לקוח חדש, או לקוח שרק קיים במערכת - הציון שלו לא באמת יהיה “A”זאת אומרת - אם אתה עכשיו מנסה לעשות פרדיקציה מהמקום שבו היית שנתיים לפני כן, האיכות שלו הייתה “C”, היא לא הייתה “A” - אבל אתה לא יודע את זה כשאתה . . . (אורי) אגב, זה קורה לפעמים כשאתה מעלה מודל חדש, ואתה מנסה לבדוק אותו ב-A/B Testing מול מודל ישן - ככל שאתה מרחיב את הניסוי של ה . . . - לא יודע אם A או B, זה לא משנה - את המשקל של המודל “החדש” שלך, “הטוב יותר” שלך - הדאטה שלו מתחיל ללמד את המודל הישן . . . בעצם, פתאום אתה רואה שה-Lift שלך, ככל שאתה מייצר . . . ה-Lift יורד.(נועם) אני אגיד שזו ממש הייתה . . . צריך להגיד לצופים [הצופים בטקסט? כי היתר לרוב מאזינים . . .] - לא העברתי לך שום שטר, אבל זו לגמרי הייתה הרמה להנחתה, וזה באמת . . .זה בדיוק - מה שעכשיו הסברת - זה התחלה, בעצם, של איך שאנחנו מתמודדים עם הבעיה הזו.בעצם, תזכרו כמה קל לקחת מודל בתוך פקאן ולהתחיל להשתמש בו בתוך Production - זו לחיצת כפתוראתה זוכרים את ה-Usage model שדיברנו עליו? - בעצם, נורא קל . . . אין צורך עכשיו לקחת את כל המודל שלנו, לקחת צוות של Data Engineers ולהעלות אותו ל-Production - אתה פשוא לוחץ על כפתור.ובעצם, ממש כמו שדיברת - ברגע שאתה מעלה אותו ל-Production ,אתה ישר מזהה שיש פה בעיה, כי הרי ב-Production אתה כבר עובד עם מידע עדכני, אתה כבר עובד עם המידע החי.שם, זו הרי הפעם הראשונה שאתה תפגוש את ה-Leakageדיברת על ה”חצי-עין עצומה”? שם אתה תקבל אותו “בום לפרצוף” . . .(רן) תביא רטייה, לא תוכל פתוח את האצבעות . . . (נועם) בדיוק . . . ובגלל זה, מה שיפה בפקאן זה שאנחנו מאוד בקלות מזהים את אותם Leakage-ים, רואים את זה, כי אנחנו מגיעים ל-Production נורא בקלות, נורא מהר, מזהים את אותם Leakage-ים ויכולים להתמודד איתם.מבינים בדיוק מה לעשות ובעצם להתקדם קדימה.(רן) אז אתה אומר שבעצם אין פתרון קסם למציאת Leakage - אם הוא שם אז יכול להיות שהוא שם ואתה בחיים לא תזהה אותו, אבל כשאתה פורש את המודל הזה ב-Production, ופתאום אתה רואה ירידה דראסטית בביצועים, אז החשד הראשון הוא שכנראה היה Leakage בתוך הדאטה . . .(נועם) לגמרי . . . יש לנו, אגב, גם עוד כמה טכניקות על לזהות Leakage עוד בבנייה - בדרך כלל, לדוגמא - פיצ’רים שהם כל כך . . . אתם יודעים, אצלנו יש עניין של Feature Importance, ובעצם מזהים Feature שהוא כל כך חשובובדרך כלל כשמדובר ב-Leakage אז הפיצ’רים האלה קופצים נורא-נורא גבוה - כמובן יש התראה על העניין הזה, שיש פה חשש ל-Leakageאבל בנוסף לזה, יש פה כמה מנגנונים בדרך - וכמובן שהאחרון, וההכי בטיחותי, זה באמת המנגנון האחרון שבו אתה מוריד ל-Production, רואה מיד מה קורה, ואם יש בעיה אתה כמובן יכול לתקן.(רן) בסדר, מעולה - אז תראה, אני חושב שיש לנו עוד נושאים לשיחה לאיזה שבועיים, אבל אמרנו שזה יהיה הנושא האחרון והזמן שלנו כבר עבר.כמה דברים, ככה לפני שנסיים - איפה אתם נמצאים בישראל? את מי אתם מחפשים לגייס?(נועם) מדהים . . .אז אנחנו בישראל - האמת שהיום בתקופת הקורונה, “ישראל” זה כבר “איפה בישראל? כל אחד בביתו” . . . כמובן, יש לנו גם משרדים בבורסה [רמת גן], אבל מי שרוצה, אצלנו אנחנו מאוד בתפיסה “ההיברידית”, שמי שרוצה לעבוד מהבית עובד מהבית ומי שרוצה להגיע למשרד כמובן מוזמן.ובאמת אנחנו ממש עכשיו בצמיחה נורא מהירה בחברה - אבל נורא נזהרים על האנשים: אנחנו לא גדלים . . . הקצב גידול של האנשים שלנו הוא . . . אנחנו באמת רוצים את הכי טוביםמגייסים אצלנו כמובן משרות של Data Engineers, אז אם אנחנו מדברים על Frontend ו-Backend, ללא ספק.ו-Data scientists, כמה מפתיע . . . אבל באמת, אנשים מאוד חזקים בעולמות האלה.אפילו יש לנו משרת ניהול ל-Data Scienceוכמובן עולמות גם של Product ו-Data Analysts.אולי עוד משהו אחרון לסיום, אם יש לנו עוד שנייה אחרונה, אנחנו ככה בפרסומות . . .אז פרסומת לתחרות מאוד מגניבה שאנחנו עושים , בעולמות של Pythonאז לכל התותחי Python ששומעים אותנו - הכנסו פשוט ב-LinkedIn ל-Pecan.ai, אתם תראו שם פרטים על התחרות בעולמות של Pythonסופר מעניין, ממליץ בחום - וכמובן: פרס . . (רן) Python גנרי או משהו, ככה, יותר מפוקס על Machine Learning?(נועם) לא - לא, Machine Learningהיה לנו חשוב, הפעם . . אנחנו עושים גם Machine Learning, עושים תחרויות Machine Learningהפעם היה לנו חשוב שזה יהיה Python רחב - יהיה שם באמת . . .אני לא יכול לספר מה יש בתחרות עדיין, אבל זה הולך להיות אתגר סופר-מעניין(רן) מתי זה קורה? אם מישהו שומע את זה בעתיד [Leakage . . .], מה התאריכים?(נועם) אז אנחנו מדברים על אמצע מאי - פשוט תיכנסו, אתם תראו שם את כל הפרטים.מאמצע מאי התחרות יוצאת לדרך - ובעצם אתם מוזמנים . . .(אורי) זה מידע מהעתיד . . . (רן) כן, לגמרי . . .(אורי) אולי יש לנו Leakage? . . . (רן) ולא עצמנו עין[תמיד יש את Childhood's End](רן) טוב, נועם - תודה רבה, שיהיה לכם בהצלחה בפקאן, נשמע כמו מקום עם מוצר בהחלט מאתגר ומעניין(נועם) תודה רבה לכם, תודה שהזמנתם אותי לכאן, ממש שמחתי(אורי, רן) תודה ולהתראותהקובץ נמצא כאן, האזנה נעימה ותודה רבה לעופר פורר על התמלול

Microsoft Azure for Industry : Podcast
Meet the Future of Software Development

Microsoft Azure for Industry : Podcast

Play Episode Listen Later Aug 27, 2020 37:24


Meet the next generation of technologists and the Microsoft programs that support them. Jennifer Ritzinger and Pablo Veramendi talk with us about the developers you want for your next round of interns! Skilled students are building sophisticated solutions serving many industries and in this conversation we discuss how Microsoft is supporting them.Show LinksMicrosoft benefits for studentsImagine Cup HomeImagine Cup on TwitterProgramming with Python | Python for BeginnersMicrosoft’s Student Ambassador ProgramMicrosoft Learn for StudentsMicrosoft Imagine AcademyMicrosoft Learn on TwitterAzure for StudentsStudent Developer BlogMicrosoft Education Hollo TeamShow TranscriptGuestsJennifer RitzingerSenior Director, Developer & Platform EvangelismJennifer leads a team responsible for Microsoft’s Tier 1 technical customer events for both IT Professionals and Developers, including BUILD, PDC & MIX. Oversees keynote & content strategy, brand, marketing & demand generation, digital development, plus business responsibility.Follow Jennifer on LinkedInPablo VeramendiPablo is passionate about building meaningful communities and thriving on creatively leveraging technology to develop innovative solutions and help others believe and achieve what is possible.Follow Pablo on LinkedInFollow Pablo on Twitter at @IAmPablo 

捕蛇者说
【牛油果烤面包串台】聊聊 Python 的前世今生

捕蛇者说

Play Episode Listen Later Aug 19, 2020 49:57


如果喜欢我们的节目,欢迎通过爱发电打赏支持:https://afdian.net/@pythonhunter -- 这一期 laike9m 做客牛油果烤面包播客,一起聊了聊世界第一编程语言 Python 的前世今生。 嘉宾:laike9m 主播:斯图亚特、Vindy、Cat Chen 剪辑:王立冰 本期内容 Python 有多流行 Python 流行的原因 Python 的性能 Python 的历史 Python 的未来发展方向 吐槽 Python 2 到 3 的升级 相关链接 牛油果烤面包播客: https://avocadotoast.live/ 两个编程语言排行榜 PYPL The TIOBE Index The Zen of Python Lua 的速度为什么比 Python 快? - 刘缙的回答 - 知乎 My Reaction to "Under Discussion: The Performance of Python" ABC language 捕蛇者说 Ep 16. Goodbye Python 2, Hello Python 3! Why Python 3 exists 捕蛇者说 Ep 01. 新人到底需要什么 Codecademy 《Fluent Python》(《流畅的 Python》) 图片截取自 Image by Gerd Altmann from Pixabay 片头片尾音乐: Courante 1st Cello Suite Exzel Music Publishing (freemusicpublicdomain.com) Licensed under Creative Commons: By Attribution 3.0 http://creativecommons.org/licenses/by/3.0/

The DDSRY Show | Python Programming Podcast
Comments and Types of Comments in Python | Python

The DDSRY Show | Python Programming Podcast

Play Episode Listen Later Aug 13, 2020 2:23


Comments in Python Programming Language --- Send in a voice message: https://anchor.fm/the-ddsry-show/message

types python python
The DDSRY Show | Python Programming Podcast
Meaning of Program & Functions of an Interpreter in Python ? | Python

The DDSRY Show | Python Programming Podcast

Play Episode Listen Later Aug 12, 2020 1:34


What is the meaning of Program in Programming World ? • A Program os a set of Instructions that tells the Computer to perform specific tasks. What is the Function of an Interpreter in Python ? • To convert Source code into byte code and then to native Computer Language ( Binary Language 1 and 0 ). --- Send in a voice message: https://anchor.fm/the-ddsry-show/message

The DDSRY Show | Python Programming Podcast

3 things about, Why Python ? • First Simple Syntax, Python is easy to Understand and write Python code. • And in Python you do not need to define the type of variables. • In Python code it is not necessary to add a semi-column at the end of the line of code or statement. --- Send in a voice message: https://anchor.fm/the-ddsry-show/message

python python python
The DDSRY Show | Python Programming Podcast
Indentation in Python ? | Python

The DDSRY Show | Python Programming Podcast

Play Episode Listen Later Aug 12, 2020 1:44


What is indentation in Python ? • Indentation describe the block of code. • Generally 4 white space are used for in Indentation and are preferred over tabs button. • If you want to use indentation Python press TAB button in your keyboard. --- Send in a voice message: https://anchor.fm/the-ddsry-show/message

generally python tab python python
The DDSRY Show | Python Programming Podcast
What is an Interpreter in Python ? | Python

The DDSRY Show | Python Programming Podcast

Play Episode Listen Later Aug 9, 2020 1:02


Today DDSRY is going to tell you about What is an Interpreter in Python Programming Language ? • It is a program that translate or interprets our Python code into instruction that a computer can understand. • So when we run the Python program then, the Python interpreter start executive program line by line from the top. --- Send in a voice message: https://anchor.fm/the-ddsry-show/message

python interpreter python python
Kolesa Podcast
№6: Зачем учиться кодить на Python? Это самый простой и актуальный язык программирования в 2020 году

Kolesa Podcast

Play Episode Listen Later Jul 9, 2020 38:07


В шестом эпизоде мы пьём кофе с senior Python-разработчиком Рауаном Курмет и говорим про Python: - Действительно ли каждый прогрессивный человек должен научиться кодить, чтобы остаться востребованным на рынке интеллектуального труда в новой реальности? - Кем можно работать и сколько зарабатывать, если освоить Python? - Правда ли, что Python — самый легкий язык программирования? - Зачем в Kolesa Group строят искусственный интеллект по имени «Гермиона»? Рауан отвечает на все эти вопросы и рассказывает про свои проекты, написанные на Python. А также делится полезными ресурсами для самостоятельного изучения: 1. Learning how to Learn. Dr. Barbara Oakley — https://www.coursera.org/learn/learning-how-to-learn 2. Python на Code Academy — https://www.codecademy.com/catalog/language/python 3. Heroku (https://www.heroku.com) — облачная PaaS-платформа, поддерживающая ряд языков программирования, куда можно заливать pet project, чтобы показать его миру. 4. Ссылка на GitHub Рауана — https://github.com/ra1ski 5. Ссылки на статьи про «Гермиону» и другие микросервисы Kolesa Group: - https://the-steppe.com/lyudi/germiona-iskusstvennyy-intellekt-made-in-kazakhstan - https://informburo.kz/stati/chto-takoe-data-driven-i-komu-vygodno-vladet-bolshimi-dannymi-v-kazahstane.html - https://bluescreen.kz/coding/fantasticheskie-mikroservisy-i-mesta-gde-oni-obitajut/ Хотите предложить тему или героя? Гоу в Telegram-канал "Код и Кофе" - https://t.me/codecoffeepodcast Там есть контакты авторов подкаста. Мы будем рады пообщаться с вами!

Heads Or Tails
Burmese Python (Python bivittatus)

Heads Or Tails

Play Episode Listen Later Jun 2, 2020 15:42


In this episode we learn about one of the largest species of snakes in the world, the Burmese Python. Please enjoy as Jasper talks about this very interesting reptile.

burmese python python python
How To Code Well
S3 EP 60 - 19 Web Development Misconceptions - Peter Fisher

How To Code Well

Play Episode Listen Later Feb 21, 2020 25:30


Today I want to talk about 19 web development misconceptions Checkout the How To Code Well Amazon store: https://www.amazon.co.uk/shop/peterfisher Women can't code Women code better on the frontend Web development is getting easier You need a degree to be a professional web developer You need a Computer Science degree to be a programmer A software engineer is different to a software developer Frontend developers are not software engineers You can't be a web developer after you're 30 years old Vue is better than React React is better than Vue PHP is better than Python Python is better than PHP Programmers with larger online audiences always speak the truth You must use a framework You need expensive equipment to be a web developer You can't code on a tablet You need internet access to learn to code Programmers are hoddie wearing hackers with social issues You are less of a programmer if don't code every day. Let me know if you agree them here http://howtocodewell.net/discord  

The DDSRY Show | Python Programming Podcast
What can I do with Python ? | Python

The DDSRY Show | Python Programming Podcast

Play Episode Listen Later Feb 7, 2020 0:57


On Episode #03 of "The DDSRY Show" I am going to tell you, What you can do with Python?. ☝You can Create Web Applications. ✌You can Create Websites.

python python python
David Bombal
#11: FREE Cisco Course: David Bombal interviews Hank Preston about NetDevOps

David Bombal

Play Episode Listen Later Jun 1, 2019 41:42


David Bombal and Hank Preston discuss Network Automation, Network Programmability, NetDevOps and the future. What should you learn? CCNA or Python? And many other topics! Net-DevOps: David Bombal interviews Hank Preston Part 1 (Cisco #DevNet) We discussed the following in this call: 1) Hank Preston Introduction 01:02 2) How did you transition from being a traditional Network Engineer to a NetDevOps Engineer? 02:55 3) What would you recommend as the first step? 05:46 4) What should I start with? Ansible or Python? 08:19 5) Should I study CCNA or Python? CCNP or Python? CCIE or Python? 14:38 6) Hybrid Engineer, Next-Gen-Network Engineer, NetDevOps 7) What is DevOps? NetDevOps? 23:45 8) Is there a Cisco NetDevOps certification? CCNA/CCNP/CCIE type path? 29:54 9) What is DevNet? Is DevNet free? 33:30 10) DevNet Overview Demo (Free labs, free training, free resources, get support): 35:29 11) DevNet RESTCONF, NETCONF demo: https://youtu.be/o3CaEaVfCP0 Links discussed in the video: DevNet Home Page: http://cs.co/9002DQ3Tu Learning Tracks (2 suggestions): http://cs.co/9008DQ3nY http://cs.co/9000DQ3XG Coding Fundamentals Learning Module: http://cs.co/9000DQ3XQ Network Programability Basics Video Course: http://cs.co/9005DQ3kJ CCNA or Python: https://blogs.cisco.com/developer/how-do-i-get-started-learning-network-programmability Why is Cisco teaching my Python? https://blogs.cisco.com/developer/why-is-cisco-teaching-me-python LinkedIn: https://www.linkedin.com/in/hpreston And feel free to join and post into the DevNet Group on Linked In: https://www.linkedin.com/groups/6609150/profile Should you Facebook or Instagram: https://www.facebook.com/ciscodevnet/ https://www.instagram.com/ciscodevnet/ David's details: YouTube: www.youtube.com/davidbombal Twitter: twitter.com/davidbombal Instagram: www.instagram.com/davidbombal/ LinkedinIn: www.linkedin.com/in/davidbombal/ #Python #Python_or_CCNA #Python_or_Ansible #NetDevOps

Moscow Python: подкаст о Python на русском
Moscow Python подкаст. Последний выпуск Python Junior!

Moscow Python: подкаст о Python на русском

Play Episode Listen Later May 15, 2019 5:31


ШОК! СЕНСАЦИЯ! Это последний выпуск Python Junior подкаста. Что же будет дальше?

moscow python python
Learn to Code in One Month
Why and How to Learn Python

Learn to Code in One Month

Play Episode Listen Later Apr 19, 2019 30:09


Today, we are talking with Mattan Griffel (@mattangriffel) about how to learn Python. Mattan teaches code to MBAs — at Columbia Business School. He also teaches the Learn Python course here at One Month. Why learn Python? Python is one of the most popular languages for data analytics and web development "Python is the new Excel" being used in business school finance classes. Google, Instagram, Uber and many more companies are using Python. “Forget Wall Street lingo. The language Citigroup Inc. wants its incoming investment bank analysts to know is Python” — Bloomberg, 2018 (that quote says it all). In this episode, we discuss:  * How long did it take Mattan to learn Python? * What is a great first project to build in Python? * What is the best programming language to learn first? * What are some free Python resources? Learn Python with Mattan at www.onemonth.com — that's also where you can find all the transcripts and shownotes from this episode. 

Podcast Stacja IT
Stacja.IT #8 - Michał Gałka o Pythonie

Podcast Stacja IT

Play Episode Listen Later May 18, 2018 48:34


W tym odcinku Łukasz Kobyliński rozmawia z Michałem Gałką o Pythonie - dlaczego wciąż zyskuje popularność, gdzie dobrze się sprawdza i jaka jest przyszłość tego języka programowania. STRESZCZENIE ODCINKA Jak wyglądała Twoja droga do zostania programistą? Czy naukę programowania warto zacząć od Pythona? Czy Python staje się coraz bardziej popularny? Dla kogo i do jakiego typu zadań jest Python? Python i świat Data Science - czy to się łączy? Dlaczego Python wykorzystuje się w tak wielu miejscach? Na czym polega uniwersalność Pythona? Dlaczego Ty wykorzystujesz w swojej pracy ten język? Do jakiego typu zadań? Dynamiczne typowanie. Wada czy zaleta Pythona? Python w przyszłości - jak się rozwinie, do czego będzie się wykorzystywało, jego potencjał?

科技最前沿,论天文物理 人工智能 数码编程 大数据等

hello,这里是《科技最前沿》,喜爱科学的你来啦,我是你的老朋友微信公众号——丘孔语论。科技最前沿,主要从丘孔语论比较感兴趣的几个领域来谈论科学科技,可能涉及天文、物理、互联网/IT、人工智能/Ai、数码/手机、编程、大数据、商业大佬、创新创业创客、化学、医学、养生、心理学、灵性等领域;认识天地,开阔思维,重塑自我。原创 Linux中国 2017-04-25 17:39优化你最贵的资源。那就是你,而不是计算机。 选择一种语言/框架/架构来帮助你快速开发(比如 Python)。不要仅仅因为某些技术的快而选择它们。 当你遇到性能问题时,请找到瓶颈所在。 你的瓶颈很可能不是 CPU 或者 Python 本身。 如果 Python 成为你的瓶颈(你已经优化过你的算法),那么可以转向热门的 Cython 或者 C。 尽情享受可以快速做完事情的乐趣。 -- Nick Humrich本文导航-速度不再重要 …… 03%-速度是唯一重要的东西 …… 10%-一个微服务的案例 …… 16%-CPU 不是你的瓶颈 …… 22%-如果 CPU 时间是一个问题怎么办? …… 35%-那么,Python 更快一些吗? …… 39%-但是如果速度真的重要呢? …… 56%-优化 Python …… 78%编译自: https://medium.com/hacker-daily/yes-python-is-slow-and-i-dont-care-13763980b5a1作者: Nick Humrich译者: zhousiyu325为牺牲性能追求生产率而呐喊让我从关于 Python 中的 asyncio 这个标准库的讨论中休息一会,谈谈我最近正在思考的一些东西:Python 的速度。对不了解我的人说明一下,我是一个 Python 的粉丝,而且我在我能想到的所有地方都积极地使用 Python。人们对 Python 最大的抱怨之一就是它的速度比较慢,有些人甚至拒绝尝试使用 Python,因为它比其他语言速度慢。这里说说为什么我认为应该尝试使用 Python,尽管它是有点慢。速度不再重要过去的情形是,程序需要花费很长的时间来运行,CPU 比较贵,内存也很贵。程序的运行时间是一个很重要的指标。计算机非常的昂贵,计算机运行所需要的电也是相当贵的。对这些资源进行优化是因为一个永恒的商业法则:优化你最贵的资源。在过去,最贵的资源是计算机的运行时间。这就是导致计算机科学致力于研究不同算法的效率的原因。然而,这已经不再是正确的,因为现在硅芯片很便宜,确实很便宜。运行时间不再是你最贵的资源。公司最贵的资源现在是它的员工时间。或者换句话说,就是你。把事情做完比把它变快更加重要。实际上,这是相当的重要,我将把它再次放在这里,仿佛它是一个引文一样(给那些只是粗略浏览的人):把事情做完比快速地做事更加重要。你可能会说:“我的公司在意速度,我开发一个 web 应用程序,那么所有的响应时间必须少于 x 毫秒。”或者,“我们失去了客户,因为他们认为我们的 app 运行太慢了。”我并不是想说速度一点也不重要,我只是想说速度不再是最重要的东西;它不再是你最贵的资源。速度是唯一重要的东西当你在编程的背景下说 速度 时,你通常是说性能,也就是 CPU 周期。当你的 CEO 在编程的背景下说 速度 时,他指的是业务速度,最重要的指标是产品上市的时间。基本上,你的产品/web 程序是多么的快并不重要。它是用什么语言写的也不重要。甚至它需要花费多少钱也不重要。在一天结束时,让你的公司存活下来或者死去的唯一事物就是产品上市时间。我不只是说创业公司的想法 -- 你开始赚钱需要花费多久,更多的是“从想法到客户手中”的时间期限。企业能够存活下来的唯一方法就是比你的竞争对手更快地创新。如果在你的产品上市之前,你的竞争对手已经提前上市了,那么你想出了多少好的主意也将不再重要。你必须第一个上市,或者至少能跟上。一但你放慢了脚步,你就输了。企业能够存活下来的唯一方法就是比你的竞争对手更快地创新。一个微服务的案例像 Amazon、Google 和 Netflix 这样的公司明白快速前进的重要性。他们创建了一个业务系统,可以使用这个系统迅速地前进和快速的创新。微服务是针对他们的问题的解决方案。这篇文章不谈你是否应该使用微服务,但是至少要理解为什么 Amazon 和 Google 认为他们应该使用微服务。微服务本来就很慢。微服务的主要概念是用网络调用来打破边界。这意味着你正在把使用的函数调用(几个 cpu 周期)转变为一个网络调用。没有什么比这更影响性能了。和 CPU 相比较,网络调用真的很慢。但是这些大公司仍然选择使用微服务。我所知道的架构里面没有比微服务还要慢的了。微服务最大的弊端就是它的性能,但是最大的长处就是上市的时间。通过在较小的项目和代码库上建立团队,一个公司能够以更快的速度进行迭代和创新。这恰恰表明了,非常大的公司也很在意上市时间,而不仅仅只是只有创业公司。CPU 不是你的瓶颈如果你在写一个网络应用程序,如 web 服务器,很有可能的情况会是,CPU 时间并不是你的程序的瓶颈。当你的 web 服务器处理一个请求时,可能会进行几次网络调用,例如到数据库,或者像 Redis 这样的缓存服务器。虽然这些服务本身可能比较快速,但是对它们的网络调用却很慢。这里有一篇很好的关于特定操作的速度差异的博客文章[1]。在这篇文章里,作者把 CPU 周期时间缩放到更容易理解的人类时间。如果一个单独的 CPU 周期等同于 1 秒,那么一个从 California 到 New York 的网络调用将相当于 4 年。那就说明了网络调用是多少的慢。按一些粗略估计,我们可以假设在同一数据中心内的普通网络调用大约需要 3 毫秒。这相当于我们“人类比例” 3 个月。现在假设你的程序是高 CPU 密集型,这需要 100000 个 CPU 周期来对单一调用进行响应。这相当于刚刚超过 1 天。现在让我们假设你使用的是一种要慢 5 倍的语言,这将需要大约 5 天。很好,将那与我们 3 个月的网络调用时间相比,4 天的差异就显得并不是很重要了。如果有人为了一个包裹不得不至少等待 3 个月,我不认为额外的 4 天对他们来说真的很重要。上面所说的终极意思是,尽管 Python 速度慢,但是这并不重要。语言的速度(或者 CPU 时间)几乎从来不是问题。实际上谷歌曾经就这一概念做过一个研究,并且他们就此发表过一篇论文[2]。那篇论文论述了设计高吞吐量的系统。在结论里,他们说到:在高吞吐量的环境中使用解释性语言似乎是矛盾的,但是我们已经发现 CPU 时间几乎不是限制因素;语言的表达性是指,大多数程序是源程序,同时它们的大多数时间花费在 I/O 读写和本机的运行时代码上。而且,解释性语言无论是在语言层面的轻松实验还是在允许我们在很多机器上探索分布计算的方法都是很有帮助的,再次强调:CPU 时间几乎不是限制因素。如果 CPU 时间是一个问题怎么办?你可能会说,“前面说的情况真是太好了,但是我们确实有过一些问题,这些问题中 CPU 成为了我们的瓶颈,并造成了我们的 web 应用的速度十分缓慢”,或者“在服务器上 X 语言比 Y 语言需要更少的硬件资源来运行。”这些都可能是对的。关于 web 服务器有这样的美妙的事情:你可以几乎无限地负载均衡它们。换句话说,可以在 web 服务器上投入更多的硬件。当然,Python 可能会比其他语言要求更好的硬件资源,比如 c 语言。只是把硬件投入在 CPU 问题上。相比于你的时间,硬件就显得非常的便宜了。如果你在一年内节省了两周的生产力时间,那将远远多于所增加的硬件开销的回报。那么,Python 更快一些吗?这一篇文章里面,我一直在谈论最重要的是开发时间。所以问题依然存在:当就开发时间而言,Python 要比其他语言更快吗?按常规惯例来看,我、google[3] 还有[4]其他[5]几个人[6]可以告诉你 Python 是多么的高效[7]。它为你抽象出很多东西,帮助你关注那些你真正应该编写代码的地方,而不会被困在琐碎事情的杂草里,比如你是否应该使用一个向量或者一个数组。但你可能不喜欢只是听别人说的这些话,所以让我们来看一些更多的经验数据。在大多数情况下,关于 python 是否是更高效语言的争论可以归结为脚本语言(或动态语言)与静态类型语言两者的争论。我认为人们普遍接受的是静态类型语言的生产力较低,但是,这有一篇优秀的论文[8]解释了为什么不是这样。就 Python 而言,这里有一项研究[9],它调查了不同语言编写字符串处理的代码所需要花费的时间,供参考。在上述研究中,Python 的效率比 Java 高出 2 倍。有一些其他研究也显示相似的东西。 Rosetta Code 对编程语言的差异进行了深入的研究[10]。在论文中,他们把 python 与其他脚本语言/解释性语言相比较,得出结论:Python 更简洁,即使与函数式语言相比较(平均要短 1.2 到 1.6 倍)普遍的趋势似乎是 Python 中的代码行总是更少。代码行听起来可能像一个可怕的指标,但是包括上面已经提到的两项研究在内的多项研究[11]表明,每种语言中每行代码所需要花费的时间大约是一样的。因此,限制代码行数就可以提高生产效率。甚至 codinghorror(一名 C# 程序员)本人写了一篇关于 Python 是如何更有效率的文章[12]。我认为说 Python 比其他的很多语言更加的有效率是公正的。这主要是由于 Python 有大量的自带以及第三方库。这里是一篇讨论 Python 和其他语言间的差异的简单的文章[13]。如果你不知道为何 Python 是如此的小巧和高效,我邀请你借此机会学习一点 python,自己多实践。这儿是你的第一个程序:import __hello__但是如果速度真的重要呢?上述论点的语气可能会让人觉得优化与速度一点也不重要。但事实是,很多时候运行时性能真的很重要。一个例子是,你有一个 web 应用程序,其中有一个特定的端点需要用很长的时间来响应。你知道这个程序需要多快,并且知道程序需要改进多少。在我们的例子中,发生了两件事:我们注意到有一个端点执行缓慢。我们承认它是缓慢,因为我们有一个可以衡量是否足够快的标准,而它没达到那个标准。我们不必在应用程序中微调优化所有内容,只需要让其中每一个都“足够快”。如果一个端点花费了几秒钟来响应,你的用户可能会注意到,但是,他们并不会注意到你将响应时间由 35 毫秒降低到 25 毫秒。“足够好”就是你需要做到的所有事情。免责声明: 我应该说有一些应用程序,如实时投标程序,确实需要细微优化,每一毫秒都相当重要。但那只是例外,而不是规则。为了明白如何对端点进行优化,你的第一步将是配置代码,并尝试找出瓶颈在哪。毕竟:任何除了瓶颈之外的改进都是错觉。Any improvements made anywhere besides the bottleneck are an illusion. -- Gene Kim如果你的优化没有触及到瓶颈,你只是浪费你的时间,并没有解决实际问题。在你优化瓶颈之前,你不会得到任何重要的改进。如果你在不知道瓶颈是什么前就尝试优化,那么你最终只会在部分代码中玩耍。在测量和确定瓶颈之前优化代码被称为“过早优化”。人们常提及 Donald Knuth 说的话,但他声称这句话实际上是他从别人那里听来的:过早优化是万恶之源Premature optimization is the root of all evil。在谈到维护代码库时,来自 Donald Knuth 的更完整的引文是:在 97% 的时间里,我们应该忘记微不足道的效率:过早的优化是万恶之源。然而在关 键的 3%,我们不应该错过优化的机会。 —— Donald Knuth换句话说,他所说的是,在大多数时间你应该忘记对你的代码进行优化。它几乎总是足够好。在不是足够好的情况下,我们通常只需要触及 3% 的代码路径。比如因为你使用了 if 语句而不是函数,你的端点快了几纳秒,但这并不会使你赢得任何奖项。过早的优化包括调用某些更快的函数,或者甚至使用特定的数据结构,因为它通常更快。计算机科学认为,如果一个方法或者算法与另一个具有相同的渐近增长(或称为 Big-O),那么它们是等价的,即使在实践中要慢两倍。计算机是如此之快,算法随着数据/使用增加而造成的计算增长远远超过实际速度本身。换句话说,如果你有两个 O(log n) 的函数,但是一个要慢两倍,这实际上并不重要。随着数据规模的增大,它们都以同样的速度“慢下来”。这就是过早优化是万恶之源的原因;它浪费了我们的时间,几乎从来没有真正有助于我们的性能改进。就 Big-O 而言,你可以认为对你的程序而言,所有的语言都是 O(n),其中 n 是代码或者指令的行数。对于同样的指令,它们以同样的速率增长。对于渐进增长,一种语言的速度快慢并不重要,所有语言都是相同的。在这个逻辑下,你可以说,为你的应用程序选择一种语言仅仅是因为它的“快速”是过早优化的最终形式。你选择某些预期快速的东西,却没有测量,也不理解瓶颈将在哪里。为您的应用选择语言只是因为它的“快速”,是过早优化的最终形式。优化 Python我最喜欢 Python 的一点是,它可以让你一次优化一点点代码。假设你有一个 Python 的方法,你发现它是你的瓶颈。你对它优化过几次,可能遵循这里[14]和那里[15]的一些指导,现在,你很肯定 Python 本身就是你的瓶颈。Python 有调用 C 代码的能力,这意味着,你可以用 C 重写这个方法来减少性能问题。你可以一次重写一个这样的方法。这个过程允许你用任何可以编译为 C 兼容汇编程序的语言,编写良好优化后的瓶颈方法。这让你能够在大多数时间使用 Python 编写,只在必要的时候都才用较低级的语言来写代码。有一种叫做 Cython 的编程语言,它是 Python 的超集。它几乎是 Python 和 C 的合并,是一种渐进类型的语言。任何 Python 代码都是有效的 Cython 代码,Cython 代码可以编译成 C 代码。使用 Cython,你可以编写一个模块或者一个方法,并逐渐进步到越来越多的 C 类型和性能。你可以将 C 类型和 Python 的鸭子类型混在一起。使用 Cython,你可以获得混合后的完美组合,只在瓶颈处进行优化,同时在其他所有地方不失去 Python 的美丽。星战前夜的一幅截图:这是用 Python 编写的 space MMO 游戏。当您最终遇到 Python 的性能问题阻碍时,你不需要把你的整个代码库用另一种不同的语言来编写。你只需要用 Cython 重写几个函数,几乎就能得到你所需要的性能。这就是星战前夜[16]采取的策略。这是一个大型多玩家的电脑游戏,在整个架构中使用 Python 和 Cython。它们通过优化 C/Cython 中的瓶颈来实现游戏级别的性能。如果这个策略对他们有用,那么它应该对任何人都有帮助。或者,还有其他方法来优化你的 Python。例如,PyPy[17] 是一个 Python 的 JIT 实现,它通过使用 PyPy 替掉 CPython(这是 Python 的默认实现),为长时间运行的应用程序提供重要的运行时改进(如 web 服务器)。让我们回顾一下要点:优化你最贵的资源。那就是你,而不是计算机。选择一种语言/框架/架构来帮助你快速开发(比如 Python)。不要仅仅因为某些技术的快而选择它们。当你遇到性能问题时,请找到瓶颈所在。你的瓶颈很可能不是 CPU 或者 Python 本身。如果 Python 成为你的瓶颈(你已经优化过你的算法),那么可以转向热门的 Cython 或者 C。尽情享受可以快速做完事情的乐趣。我希望你喜欢阅读这篇文章,就像我喜欢写这篇文章一样。如果你想说谢谢,请为我点下赞。另外,如果某个时候你想和我讨论 Python,你可以在 twitter 上艾特我(@nhumrich),或者你可以在 Python slack channel[18] 找到我。作者简介:Nick Humrich -- 坚持采用持续交付的方法,并为之写了很多工具。同是还是一名 Python 黑客与技术狂热者,目前是一名 DevOps 工程师。

科技最前沿,论天文物理 人工智能 数码编程 大数据等

hello,这里是《科技最前沿》,喜爱科学的你来啦,我是你的老朋友微信公众号——丘孔语论。科技最前沿,主要从丘孔语论比较感兴趣的几个领域来谈论科学科技,可能涉及天文、物理、互联网/IT、人工智能/Ai、数码/手机、编程、大数据、商业大佬、创新创业创客、化学、医学、养生、心理学、灵性等领域;认识天地,开阔思维,重塑自我。不要说我涉猎太广泛,只是人生认识自我的过程太过漫长,我们只能先广纳外,然后求诸内,探索着,迷茫着。我们每一篇都会说明播读时间是,是为了让你可以放弃太过期的内容。Python理想老师 2017-03-28 14:20Everybody,中午好还是下午好呀,不知道大家现在在干什么呢,是在工作业余时间偶尔看看头条,还是坐在回家的末班车,地铁上呢,还是在家吃着香喷喷可口的饭菜,总之,小编在这里向各位格格阿哥们请安了。21世纪正是互联网发展的一个迅速时代,不知道看我头条的小伙伴有多少是知道Python这门语言的,有知道这语言的小伙伴给我刷个1,不知道这门语言的小伙伴给我刷个2好吗。今天呢,小编给大家聊聊Python未来十年的情景,当然,这只是代表个人观点,还请各位大神指教。首先,在之前的文章我就给各位小伙伴介绍了Python的作用,还没有了解这门课程的小伙伴可以去看我的第一篇文章。大家了解互联网的小伙伴应该很清楚,Python作为进入我国国内的新鲜事物,很多人都还不知道这门语言,你在对别人说着Python,可能别人还不知道这个是什么,真的,我身边说起Python,竟然很少人知道这个,Python在国内现在处于一个上升期,虽比不起当年的淘宝,但是,在未来的十年,它会有那么大的一个趋势发展,希望有意向的小伙伴可以关注关注,现在很多公司都要求 除了会一种静态语言之外,再掌握一种脚本语言如perl,shell,python. 因为在工作中经常需要用到脚本语言开发一些小程序,原因就是脚本语言语法简单,方便程序员快速解决问题。 python 可以用来开发,可以用来作管理脚本,而且python是一门很优秀的脚本语言,搞编程的务必要掌握一门脚本。Python在编程领域的占有率一直处于稳步上升之中,根据最新的数据,Python排名第六。前五名分别是 Java、C、PHP、C++ 和 VB. 作为一个很年轻的语言,Python的位置已经相当令人振奋了。随着微软将Python纳入.Net 平台,相信Python的将来会更加强劲发展。Python 很可能会成为.Net平台快速开发的主流语言。我相信Python在不就之后将成为互联网发展不可替代的工具。我也可以给大家讲讲Python的一个大概的应用范围:系统编程,提lass=innerlink>API,能方便进行系统维护和管理。图形处理,有PIL、Tkinter等图形库支持,能方便进行图形处理。数学处理,NumPy扩展提供大量与许多标准数学库的接口。文本处理,python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。数据库编程,程序员可通过遵循Python DB-API(数据库应用程序编程接口)规范的模块与Microsoft SQL Server,Oracle,Sybase,DB2,Mysql等数据库通信。python自带有一个Gadfly模块,提供了一个完整的SQL环境。网络编程,提供丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。作为Web应用的开发语言,支持最新的XML技术。多媒体应用,Python的PyOpenGL模块封装了“OpenGL应用程序编程接口”,能进行二维和三维图像处理。PyGame模块可用于编写游戏软件。小编就给大家说到这里,明天我们不见不散。

api python numpy python python
科技最前沿,论天文物理 人工智能 数码编程 大数据等
六八、你知道现在流行的脚本语言是什么吗?

科技最前沿,论天文物理 人工智能 数码编程 大数据等

Play Episode Listen Later Mar 20, 2017 10:05


科技最前沿,主要从丘孔语论比较感兴趣的几个领域来谈论科学科技,可能涉及天文、物理、互联网/IT、人工智能/Ai、数码/手机、编程、大数据、商业大佬、创新创业创客、化学、医学、养生、心理学、灵性等领域;认识天地,开阔思维,重塑自我。不要说我涉猎太广泛,只是人生认识自我的过程太过漫长,我们只能先广纳外,然后求诸内,探索着,迷茫着。微信扫码,可以关注公众号丘孔语论,期望与你做更深的交流。修身养性德兼备 2017-03-19 00:52说到脚本语言,广大的程序猿一定不会陌生,其实语言并没有分好坏,有的只是合适于不合适,不同的语言对不同的情况和不同的平台有不同的优势,因此,一个高手级别的程序猿,会根据实际的应用需求来选择合适的开发语言。既然说到了脚本语言,那到底什么语言才是最合适的脚本语言呢?有人说Java,C,C++还是Perl,Ruby,Python等等。每个语言都有自己的优势,也有自己的劣势。比如Java,Java一直占据着开发语言排行榜的第一名,他的强大在于java的跨平台方案,至今仍然是被认为最好的,加上简洁的语法,庞大的平台,成熟的API,开源和众多的框架支持,这无疑是生命力最强的开发语言之一,但Java也不是万能的,比如它无法实现 ICMP Ping,安全性不高,容易被反编译等等。而C和C++,一是学习门槛较高,学习时间过长,要学好C或者C++所要付出的努力比Java会更多一些,但C和C++因为接近底层,在处理能力上有些会比较快,注意是有些,因为随着开发语言的优化,很多语言的性能已经很强了,但在涉及到一些比较复杂的运算时,部分语言还是比较有优势的。接下来开始切入正题了,前面有点罗嗦了,什么脚本语言比较好?这个仁者见仁,智者见智,以下是小编我自己的理解。Python首先要提的就是Python,因为Python最近开始很热门,因为人工智能的原因,Python估计会引起新一轮的潮流,Python语言比较简单易学,一般几天就能掌握基础语法,并写出高质量且实用的程序了。为什么推荐Python呢?因为Python的功能很强大,方法库非常丰富,Python语言适合做小型应用程序,特别是在科学计算领域,Python取得的成绩非常优秀,加上新一轮的人工智能,Python语言被推到浪口风间是大势所趋啊。RubyRuby在脚本语言领域是属于后起之秀,Ruby本身是一门纯面向对象语言,学习难度稍高于Python,其优雅的代码风格,加上强大的Rails框架,这是什么框架?人称杀手级Rails框架,这个框架已经成为眼下最为炙手可热的企业级应用框架了,Rails框架的敏捷开发表现尤为突出,这也是他能够迅速蹿红的原因之一,但是Ruby毕竟是后起之秀,标准库和第三方库都稍微不太成熟,但随着时间的推移,Ruby在编程语言的地位会越来越高。Unixunix/Linux shell(AWK,SED)是一个脚本语言,在实际的日常使用中也是最多的,Unix适合做流程化的系统管理工作,对于逻辑较为复杂的应用产品,Unix的开发和维护难度都相对比较高,并且Unix的学习难度也相对较大,包括它的语法、调试、运行环境等等都有关系,如果你对这个语言非常熟悉,那它算是一个非常好的开发工具。PerlPerl语言是属于比较早期的语言,被称为成熟度最高的脚本语言之一,在编程市场上久经考验,有着大量的忠实粉丝,但Perl是一门比较难于上手的语言,因为他的语法稍显夸张,且没有高级程序员那么直观和简洁,对于初学者来说无疑是一种挑战,想要了解Perl语言的可以去网上多仔细研究研究,小编对这个只是了解一下,因为实在是难以下手。GroovyGroovy语言可以说是Java平台的原生脚本语言,它兼容于Java平台,却语言与Java相差甚远,但Groovy能够与Java完美地结合,因为Groovy没有自己的标准库,完全是使用Java的Api库,Groovy也有属于自己的Grails框架,但与Ruby的Rails框架是不一样的,喜欢Java的程序猿,推荐你学习一下Groovy,这两者的结合堪称完美。程序猿写脚本的状态说了这么多,脚本语言的选择最主要还是得根据应用的实际需求来定,每个语言都有自己的强处,也有自己的短处,如何发挥每个语言在项目应用中的长处,是一个优秀的程序猿应该优先考虑的问题,脚本开发在未来的应用市场上,肯定有着无限的需求,随着市场上的应用越来越多,多语言辅助完成一个项目的案例越来越多,各个语言的长处也会在各自的领域得到更高的应用。

Simple Programmer Podcast
386 The Top 10 Books To Learn Python - Simple Programmer Podcast

Simple Programmer Podcast

Play Episode Listen Later Feb 28, 2017 16:34


Have you ever wondered what are the best books to learn Python? "Python is an interpreted, object-oriented, high-level programming language with dynamic semantics. Its high-level built in data structures, combined with dynamic typing and dynamic binding, make it very attractive for Rapid Application Development, as well as for use as a scripting or glue language to connect existing components together. Python's simple, easy to learn syntax emphasizes readability and therefore reduces the cost of program maintenance. Python supports modules and packages, which encourages program modularity and code reuse. The Python interpreter and the extensive standard library are available in source or binary form without charge for all major platforms, and can be freely distributed. Often, programmers fall in love with Python because of the increased productivity it provides. Since there is no compilation step, the edit-test-debug cycle is incredibly fast. Debugging Python programs is easy: a bug or bad input will never cause a segmentation fault. Instead, when the interpreter discovers an error, it raises an exception. When the program doesn't catch the exception, the interpreter prints a stack trace. A source level debugger allows inspection of local and global variables, evaluation of arbitrary expressions, setting breakpoints, stepping through the code a line at a time, and so on. The debugger is written in Python itself, testifying to Python's introspective power. On the other hand, often the quickest way to debug a program is to add a few print statements to the source: the fast edit-test-debug cycle makes this simple approach very effective." (Source: https://www.python.org/doc/essays/blurb/) I've programmed in Python before and I must say I love Python! In this video I'll list the top 10 books if you're serious about learning python, whether you're a beginner and or advanced (even a kid! lol) Learn Python The Hard Way: http://simpleprogrammer.com/learnpythonhard Think Python: How to Think Like a Computer Scientist: http://simpleprogrammer.com/thinkpython Dive Into Python 3: http://simpleprogrammer.com/diveintopython Core Python Programming: http://simpleprogrammer.com/corepython The Quick Python Book: http://simpleprogrammer.com/thequickpythonbook Beginning Python: From Novice to Professional: http://simpleprogrammer.com/beginningpython Hello World!: Computer Programming for Kids and Other Beginners: http://simpleprogrammer.com/programmingforkids Python Programming for the Absolute Beginner: http://simpleprogrammer.com/pythonabsolutebeginner Python Essential Reference: http://simpleprogrammer.com/pythonessentialreference Python Cookbook: https://simpleprogrammer.com/pythoncookbook Violent Python: http://simpleprogrammer.com/violentpython Top Programming Books Playlist: https://www.youtube.com/playlist?list=PLjwWT1Xy3c4XoA9VdooMPPiDFsckl1d_2 Trust The Process T-Shirt: https://simpleprogrammer.com/spstore

Python Bytes
#2 PyCon, awesome python, python developer job prospects, and more

Python Bytes

Play Episode Listen Later Nov 14, 2016 17:38