参加 PyCon China 2019 上海站是怎样的体验?

【参加 PyCon China 2019 上海站是怎样的体验?】 这次是闪电演讲第二个出场的讲师(也是我第一次尝试公开演讲,演得不好就不道歉了
大会当天,旁听了几场,印象比较深刻的,是左老师的调试新思路(毕竟水豚炸场
另外比较珍贵的时刻,就是和大佬们 @laike9m @Adam Wen @平平淡淡红美铃 ... 聊了天,觉得他们人都很好很可爱(跟红姐聊编译器的时候 我只能cosplay一个水豚。
还有,听捕蛇者说博客听到的,这次的主持人 @Manjusaka ,比我想象的形象要高大,主持风格也很专业。以及和好朋友 @赖信涛 又见面了。
其实还有,97年的采访小姑娘,中午被我问在哪就餐的小姐姐。(逃
总之不虚此行吧。
(补一下我ppt最后一页没放出来的项目地址 https://github.com/tvytlx/render-py
■网友的回复
先放个手写参会证hhhh
参加 PyCon China 2019 上海站是怎样的体验?
以下内容首发于NightTeam微信公众号,文章地址:大佬齐聚PyCon 2019上海站,现场到底啥情况?。
导语在 NightTeam 读者群里的朋友应该都知道,上周末的时候(9月21-22日),PyCon China 2019 的第一站在上海开始了,而我很荣幸地被组委会邀请到上海蹭吃蹭喝,白嫖了一个晚宴+两天的大会门票...在这里先感谢一下组委会。
既然今年的主力站是上海,那么自然而然地,更多的大佬、干货都会聚集于此。
那么今年的 PyCon 上海站,都有哪些有意思的东西呢?跟我来看看吧~
晚宴首先,就是这个晚宴了,也就是票务信息里写的所谓的“Python 之夜”。
参加 PyCon China 2019 上海站是怎样的体验?
这个晚宴的话,不管你是单买一张晚宴票,还是直接买的 VIP 票,其实都是很值得的,但似乎很多人并没有意识到。毕竟这个票价其实是非常便宜的,单买一张晚宴票的价格也不过就是与在商场里吃一顿稍微好点的饭的价格相当而已(200 至 300 人民币)。
在晚宴的几个小时里,你能与在台上分享知识的讲师面对面地聊天、交流技术,而聊嗨了的话,加个微信回去继续聊也不是什么稀奇的事情。
由于今年是 Python 诞生 30 周年的关系,所以今年的晚宴还有个额外的环节 —— 吃蛋糕。
参加 PyCon China 2019 上海站是怎样的体验?
PS:蛋糕挺好吃的,奶油不腻。
第一天接着就是充满了干货~~和广告~~的大会第一天了,上海站一共有 6 个分会场,内容涵盖了几个 Python 圈子里比较常见、热门的方向。
主会场Python 的永恒之美 —— Luciano Ramalho
参加 PyCon China 2019 上海站是怎样的体验?
中规中矩吧,内容大概就是开场白+说了说 Python 里一些比较优雅的写法。
PS:期间翻译炸了好几次...事故现场图在本文的最后。
构建 Python 物联网(IoT)图像分类解决方案并与 Azure 无服务器功能集成 —— Dave Glove
参加 PyCon China 2019 上海站是怎样的体验?
这个分享是 Azure(微软旗下的云计算平台)的广告,但项目本身还是挺有意思的。
项目使用了 Azure 的一些服务,经过了简单地组合、操作后就变成了一个可以识别摄像头下的水果是什么水果的小工具,全程基本不用写代码,大部分的操作只需要点点点就能完成,很轻松地就能完成整个项目。(当然,有实际意义的项目没这么简单)
项目地址:
https://github.com/gloveboxes/Creating-an-image-recognition-solution-with-Azure-IoT-Edge-and-Azure-Cognitive-Services
PPT 后面推荐的一个网站(https://www.hackster.io)也挺有意思的,网站内全是创意硬件项目,其中有很多很有趣的项目,可以了解一下。
PS:这一场演讲中就已经可以看到那个 VS Code 的新功能了。
PS:中间又出事故了,事故现场视频在本文的最后。
从模块化到全球分发,Python 在 Serverless 领域你不能错过的最新功能 —— 谢洪恩
参加 PyCon China 2019 上海站是怎样的体验?
这个分享是 AWS(亚马逊旗下的云计算平台)的广告,主要是宣传 Serverless(无服务器运算/功能即服务)相关的产品和服务。
他们在这方面的核心就是 Lambda 了,同类产品国内的阿里云也是有的,名为函数计算。
我前面写的《当你写爬虫遇到 APP 的请求有加密参数时该怎么办?》的初级篇以及《当你写爬虫抓不到 APP 请求包的时候该怎么办?》的高级篇中,用到的那两个 DEMO APP 的服务端就是使用的阿里云的函数计算+API 网关+日志服务组合搭建的。
得益于 Serverless 这种架构的特性,我只需要实现一个核心的“检测加密参数”的函数就可以使用了,全程都不需要理会Web服务器、日志聚合统计、部署、调试防火墙、限流等乱七八糟的事情,只需要点几下,就能实现其余那些业务无关的功能,那些功能全都被云计算平台给包办了。
但 Serverless 也不是没有缺点的,它在使用量少、服务功能简单的情况下非常省钱(~~甚至不要钱~~),但如果你的服务使用量非常大,各种云计算服务烧的钱就是你直接买台服务器自己部署的几倍、甚至更高了。
另外,如果你的服务功能较为复杂,在这一套部署方式下如果碰到什么“并非是你代码产生的问题”,你将很难自己解决,毕竟大部分功能都是云计算厂商帮你实现的,你只能联系云计算厂商帮忙。
调试是一种新的发布:慢语言的意外优势 —— Armin Ronacher
参加 PyCon China 2019 上海站是怎样的体验?
没翻译,听不太懂,打扰了。
PS:Armin 的高桥流风格 PPT 是真的骚。
Python 调试新思路 —— laike9m
参加 PyCon China 2019 上海站是怎样的体验?
这一个分享非常有意思,laike9m 老哥写了一个帮助 DEBUG 的工具 —— Cyberbrain,使用起来的效果差不多是这样:
参加 PyCon China 2019 上海站是怎样的体验?
在你注入一行代码到你需要 DEBUG 的位置后,执行一下整段代码,这个工具就能自动输出一个像上面这样子的参数变化图。
通过这个参数变化图,你可以很轻松地了解到这个参数的整个生命周期,例如:它是如何初始化的、它是如何被某一个函数调用赋值的。
更厉害的是,它可以帮你忽略掉一些无关的代码,比如用于生成上面这张样例图的代码实际上是这样的:
def func_f(bar): x = len(bar) return xdef func_c(baa): baa.append(None) baa.append(\u0026#39;?\u0026#39;)def func_a(foo): for i in range(2): pass ba = func_c(ba) foo = func_f(ba) # foo is our target cyberbrain.register(foo)import cyberbraincyberbrain.init()fo = 1func_a(fo)可以看到上面那个 func_a 的位置,是有一个无用的 for 循环的,它在 ba = 的前面,但我们在前面的图片中并没有看到这个 for 循环,原因很简单,因为它是一个无关的代码。(这个忽略无关代码的功能据 laike9m 说是使用分治的思路实现的)
当然,如果只是这样的话,好像也只能用于 Python 程序的 DEBUG,有没有更骚的操作呢?
有,我看到这个东西的第一眼,就想到了一个很骚的操作:可以把它改造一下用在逆向上。实际上类似的工具在 PC、Android 逆向领域中是有的,只不过他们都是通过静态分析实现的(~~而且貌似没有忽略无关代码的这种功能~~)。
那么,如果把它用在同样是动态语言的 JavaScript 上呢?
同样的效果、同样的操作,配合上简单的混淆还原,就能让简单的逆向更加简单、难的逆向掉头发更少。
你可以通过这个工具,轻松地知道某个加密参数的生成全过程,而且它还会帮你忽略掉其他的无关代码,可以直接无视那些加了花指令的恶心人的代码。
好了,点到为止,大家有兴趣的话可以尝试实现一下同类工具。
项目地址:
https://github.com/laike9m/Cyberbrain
PPT:
https://yanshuo.io/assets/player/?deck=5d6c9136d37616007449891e
PS:分享时的“会议时间”部分放的两张水豚图也是很...现场节目效果爆炸。
参加 PyCon China 2019 上海站是怎样的体验?
PS:这个项目还处于初期阶段,虽然能用但还需要优化,据 laike9m 说,目前反推做的还不准,在 x, _ = a, b 的情况下,这个工具会认为 xab 都有关。不过他在大会第二天与 thautwarm(红姐)交流后,似乎已经有了一些新的思路,期待 Cyberbrain 项目的后续发展。
语言特性GIL 的过去和未来 —— 张佳圆这个分享讲了一下为什么会有 GIL、为什么会用 GIL、怎么避开 GIL 等,其实网上讲 GIL 的文章很多,但那些文章都没有他讲得这么细,等后面官方放出回放后,想了解这方面的朋友可以看一看、了解一下。
不过,对于爬虫这种网络请求部分占耗时大头的应用场景来说,直接上协程即可(因为协程切换的消耗比多线程更低)。
如果你发现,你的爬虫程序出现了性能问题,可以加上多进程,或是只把网络请求的部分使用协程实现,解析部分独立出来使用多进程或其他更高性能的语言实现(如Go、C),只需要用一些简单的中继操作就可以了。
PS:对不起,翻到眼睛都快瞎了都没找到照片。
Speed up file transfers and file copies in Python —— Giampaolo Rodola
参加 PyCon China 2019 上海站是怎样的体验?
嗯,没翻译听不太懂。大概内容就是讲了一下文件传输的时候会影响性能的部分,以及规避的方式:Zero-copy(零拷贝),并且后续貌似会有语言级的支持(听别人说的)。
Python语法扩展框架 moshmosh 和其上的 CPython compatible JIT 实现 —— thautwarm
参加 PyCon China 2019 上海站是怎样的体验?
这个项目很骚,弄出了一个可以根据情况选择性编译(翻译)部分内容运行的 Python JIT 实现,而且还能兼容原本的 C 扩展。不过这个项目还处于 DEMO 阶段,虽然能演示,但也就仅此而已了,并不能用于生产环境,期待后续发展。
项目地址:
https://github.com/thautwarm/moshmosh
https://github.com/thautwarm/restrain-jit
Web专场从 thriftpy 中学习 rpc 协议 —— 张汝家
参加 PyCon China 2019 上海站是怎样的体验?
这个分享的话就比较中规中矩了,只是介绍了一下 Thrift 的用法,算是科普、入门型的分享。
如果你想要知道 Thrift 和 gRPC 哪个更好、更适合你的业务场景的话,可以看看这篇文章:https://blog.csdn.net/dazheng/article/details/48830511,讲得已经很细了。
引用一下这篇文章中最后的选择部分:
什么时候应该选择gRPC而不是Thrift
需要良好的文档、示例 喜欢、习惯HTTP/2、ProtoBuf 对网络传输带宽敏感什么时候应该选择Thrift而不是gRPC
需要在非常多的语言间进行数据交换对CPU敏感协议层、传输层有多种控制要求需要稳定的版本不需要良好的文档和示例基础架构开源 AIOps 数据中台搭建与 Python 的作用 —— 丁来强
参加 PyCon China 2019 上海站是怎样的体验?
虽然讲师自称不打广告,但这个分享其实全程都有阿里云日志服务的广告,不过内容还是挺详尽的,广告部分只是简单一提就过了。
内容主要是各种数据收集、存储方式的优劣势,以及各个工具之间的组合、配套方式,对这方面想了解的朋友同样可以等官方回放出来之后看一看、了解一下。