使用微信扫一扫分享到朋友圈
使用微信扫一扫进入小程序分享活动
大会简介:
2020 年是一个特殊的年份,新冠肺炎蔓延全球, 影响着整个人类,但我们众志成城、共克时艰,即使生活再难,对生活和技术的热爱不减。
2020 年是 PyCon China 的十周年,一路走来,风雨兼程。我们希望在这个特殊的年份继续举办这样一场特殊的技术峰会,用我们技术人的知识和力量来一起走下去
由于疫情原因,本届 PyCon China 将采用议题线上分享+北京,上海,深圳线下沙龙的组合方式进行举办,以最大程度减少健康风险,同时为讲师们保留彼此深入交流的机会。
Summary:
As you know, 2020 is a special year for us, with an outbreak of COVID-19 that has attracted the attention of all people. 2020 is also a special year for PyCon China, the 10th year of PyCon China's birth. We hope to continue to host such special technical events in this special year to share the incentives for all developers to move forward in the infinite unknown. PyCon China 2020 is officially launched!
This year's PyCon China will be themed "Python for Good." We know technology should be a force for good, and Python, as one of the tools to advance science and technology, hopes that this conference will come together to bring all the technical people who use Python to contribute to "make the world better. "
Due to the outbreak, the PyCon China 2020 will be held using a configuration of the online sharing of the topics and in-person convergence of the speakers and volunteers, providing the components with the opportunity to interact with each other while casting the risk. The two-day conference will cover Python language features, AI (Artificial Intelligence) and Machine Learning, Web, DevOps, System management, Blockchain, Big Data, Software Testing, and More. We look forward to hearing more Python-related stories or experiences, and we sincerely invite you here!
温馨提示:
由于疫情原因,本届 PyCon China 将采用议题线上分享+北京,上海,深圳线下沙龙的组合方式进行举办,以最大程度减少健康风险,同时为讲师们保留彼此深入交流的机会。
无论您是服务端开发,亦或是运维,还是大数据,人工智能等领域的专家,如果您有任何想分享给全国 Python 开发者的经验,欢迎报名参加我们的主题演讲/闪电演讲!
演讲报名链接:https://jinshuju.net/f/zWuGxB
如果您想参与我们大会的组织和筹备,欢迎加入我们的志愿者团队:
志愿者报名链接:https://jinshuju.net/f/t58Hb6
主会场
开场介绍
Python for Global Good
Python 与 Visual Studio Code 在人工智能应用中的最佳 Azure 实践
Best Practice for Python in AI Application Development with Visual Studio Code
为Python开发者带来微软的开发工具Visual Studio Code和云平台Azure上的极致开发体验。
Best development experience with VS code and Cloud platform Azure for Python developer.
中场休息 & 抽奖 ( PyCon 纪念卫衣)
Modern Python through FastAPI and friends
探索当前Python的一些非常好用的特性,看看如何把它们和FastAPI和friends结合使用。
我们会用最佳实践的方式,去看到如何从高效简洁、少错易用等方面的角度去编写程序。其中会涉及到一些类型注释(type hints), async/await (异步编程)的内容,同时也包括了对FastAPI、Typer等的概述。
这个演讲对参与者的技术背景没有很高门槛要求,只需要基本的Python知识就足够了。
Explore some of the great features from modern Python and how to use them with FastAPI and friends.
We will see how to make code that is less error-prone, simpler, more efficient, and have a great developer experience, all at the same time.
And all this while including best practices by default.
We will see a bit about type annotations (type hints), async/await, and an overview of FastAPI, Typer, and others.
This talk doesn't expect any technical background, just some basic knowledge of Python.
午休
上海地址:上海市徐汇区虹漕路77号C9栋5楼 微软上海
CDK for Kubernetes 的 Python 接口
CDK for Kubernetes in Python
CDK8S(CDK for Kubernetes)是一个开源框架,可让您使用熟悉的语言定义 Kubernetes 应用程序和组件。在这个环节中,我将向您展示如何在不使用任何 YAML 的情况下,为您的 Kubernetes 工作负载将 k8s 资源作为 Python 中的结构进行组合和定义。我们将首先介绍高级架构,然后再进行 Python 实时编码。
看完这节课,你将学习到一种新的方法来在 Python 中完全控制和定义任何云提供商的 Kubernetes 工作负载。
cdk8s 项目地址:https://cdk8s.io/
CDK8S(CDK for Kubernetes) is an opensource framework that allows you to define Kubernetes apps and components using familiar languages. In this session, I will show you how to compose and define k8s resources as constructs in python for your Kubernetes workload without using any YAML. We will introduce the high level architecture followed by live coding in Python.
After watching this session, you will learn a new practice to fully control and define any Kubernetes workload in Python for any cloud providers.
cdk8s project - https://cdk8s.io/
Python强类型编程最佳实践
Best Practice for Strongly Typed Programming in Python
Python作为一门强类型但弱语法检查的语言,加上其他语言特性,给编程者带来了极大的工程便利性和效率,但有时也增加了不少潜在BUG和失控可能。参考行业其他主流强类型语言的特点(值得一提的是TypedScript的流行),静态类型约束并非绝对枷锁。本主题分享如何用正确姿势使用Python强类型检查扩展,让你的代码开发又快又可控,覆盖常见陷阱、语言扩展、原理、工具(标准库和三方库)和最佳实践等。
As a strongly typed and weakly grammar checked language, while python with its other features has brought developer great efficiency improvement and usage convenience, sometimes it increases the potential bugs and possibility of losing control. Referring the other popular strongly typed languages ( typically the TypedScript ), static typed feature is by no means an absolute shackles.
Here in this presentation, we will see how to take full advantage of the python strongly typed extension and speed up the development while keeping the project under control. The content will cover common pitfalls, language extension, theory, tools as well as best practice.
使用混沌工程来保障分布式系统的健壮性
在分布式世界中,错误无处不在,混沌工程在提高系统弹性方面起着至关重要的作用。通过执行混沌工程实验,我们可以了解系统的弱点并主动解决。我们开发了云原生混沌工程平台 Chaos Mesh,并在内部使用 Chaos Mesh 来提升分布式数据库 TiDB 的健壮性。目前 Chaos Mesh 已加入 CNCF Sandbox 项目,该平台依托于 k8s 基础设施,通过对 pod/container 进行诸如杀节点、IO 错误和延时注入、时间回退、内核分配内存失败等等来进行混沌测试。
中场休息 & 抽奖
系统级线程的协程化替代实现
The coroutine-based alternative implementation of the posix thread
本主题将会使用PYTHON,把操作系统中的原生线程完全重写为基于协程的版本。使现有的非异步程序,无论使用何种语言开发,都能在无需修改和重新编译的情况下直接变成协程架构下的异步程序,从而在并发处理能力上取得大幅提升。本主题将会在PYTHON的扩展与嵌入,以及协程与异步编程等方面进行较为深入地探讨。
This topic will use Python to rewrite the native thread in the operating system to it's cooperative version. This allows existing non-asynchronous programs, regardless of the programming language they use, to become coroutine-based asynchronous programs without any modifications, and makes it possible for programs to handle a large number of clients at the same time. Extension and embedding programming, cooperative multitasking, and asynchronous programming will be covered in this topic.
利用Project Orca在大数据平台上无缝扩展Python深度学习流水线
Analytics Zoo (https://github.com/intel-analytics/analytics-zoo) 是Intel开源的统一的大数据分析和AI平台,能让用户在现有的大数据集群上直接运行分布式TensorFlow, Keras和PyTorch的应用。Project Orca是Analytics Zoo中专门为了帮助用户很容易地扩展Python AI应用开发的一个子项目,做了更high-level的封装,提供了数据并行的接口来支持常用Python数据处理库以及scikit-learn风格的API来支持各种深度学习框架在大数据平台上无缝的分布式训练和推理。Burger King作为Orca的初期客户,已经成功地用Orca构建了一个完整的端到端的推荐系统,将基于Spark的数据处理和基于MXNet和Ray的分布式训练集成到一个统一的流水线中,直接运行在存储数据的同一个大数据集群上。本次分享主要给大家详细介绍Analytics Zoo和Project Orca,以及Burger King利用Orca实现落地的具体案例。
Python "业务逻辑安全" && "业务开发安全"
Python "Business Logic Security" && "Business Development Security"
Python框架的安全性已经日益强大,例如SQL注入,XSS等常规漏洞已经在框架底层实现过程得到了很好的防御,往往我们只需要按照正常的开发以及安全设备就完全可以避免这些常规漏洞,但是业务逻辑漏洞是框架无法进行修复,安全设备无法防御的东西,因为业务逻辑漏洞取决于开发者对于业务的理解,那么哪些业务容易遭到黑客攻击,如何防御已经是是一个开发人员必须去理解的东西。
So what on earth is a reptile? How to write a crawler from scratch? What tools can be used to help us quickly analyze network requests? Which Python libraries can improve the efficiency of our development?
Python 微服务应用性能监控
Python Microservice Application Performance Monitoring
Python 作为一门功能强大的编程语言, 被广泛的应用于计算机行业之中; 在微服务系统架构盛行的今天, Python 以其丰富的软件生态和灵活的语言特性在服务端编程领域也占有重要的一席之地;
本次分享将阐述 Apache SkyWalking 在微服务架构中要解决的问题, 展示如何使用 Apache SkyWalking 来近乎自动化地监控 Python 后端应用服务, 并对 Apache SkyWalking 的 Python 语言探针的实现技术进行解读.
As a powerful programming language, Python is widely used in the computer industry; today when the microservice system architecture is prevalent, Python is also important in the field of server-side programming with its rich software ecology and flexible language features. A place;
This sharing will explain the problems that Apache SkyWalking needs to solve in the microservice architecture, show how to use Apache SkyWalking to monitor Python back-end application services almost automatically, and interpret the implementation technology of Apache SkyWalking's Python language probes.
活动结束,抽奖,拍照留念
北京地址:北京市海淀区丹棱街5号微软大厦1号楼 故宫厅
Python实战派——全自动漏洞挖掘机
Python Realists--Automatic Vulnerability Miner
用Python打造全自动漏洞挖掘工具,在实战中让漏洞挖掘效率飞起。
一、漏洞挖掘
1.1 手工漏洞挖掘
1.2 手动漏洞挖掘的局限性
1.3 自动漏洞挖掘的应用场景
二、打造自动漏洞挖掘机
2.1 指纹识别
2.2 POC 编写
2.3 WAF 识别
2.4 自动 Bypass
三、实战与总结
3.1 实战应用
3.2 总结展望
Building a fully automatic vulnerability mining tool in Python, make you much more efficient in practice.
1. Vulnerability Mining
1.1 Manual Vulnerability Mining
1.2 Limitations of Manual Vulnerability Mining
1.3 Application Scenarios for Automated Vulnerability Mining
2. Build an automatic vulnerability miner
2.1 Fingerprint Identification
2.2 POC Writing
2.3 WAF Identification
2.4 Automatic Bypass
3. Practice and Summary
3.1 Practice Applications
3.2 Summary and Outlook
深入了解Databricks大数据平台
In Depth Understanding of Databricks Big Data Platform
Databricks是微软为Python开发者提供的基于Spark的云上大数据及人工智能处理平台,该平台为开发者提供了托管的Spark和Machine Learning一站式体验,使用基于Web页面的Databricks workspace,开发者和数据科学家可以即刻开始进行大数据分析与处理,减少花费在底层平台搭建所需要的学习成本和时间精力,本场讲座带有Demo演示,将带领广大开发者深入体验Databricks平台。
Databricks is a Spark based big data and artificial intelligence processing platform on the cloud provided by Microsoft for Python developers. The platform provides developers with a one-stop experience of hosted Spark and machine learning, and uses Web page based databricks Workspace, developers and data scientists can immediately start to analyze and process big data, and reduce the learning cost and time and energy spent on the construction of the underlying platform. This lecture will be presented by Demo, and he will lead the developers to deeply experience the Databricks platform.
用 eBPF 调试 Python 容器
Debug Python container with eBPF
随着 Docker/Kubernetes 等容器技术的盛行,越来越多的 Python 应用已经运行在容器中了。
在带来便利性的同时,也让生产环境中的 debug 变的复杂。
eBPF 是一项革命性的技术,可以在 Linux 内核中运行沙盒程序,而无需更改内核源码。
本次分享将为你介绍如何使用 eBPF 技术对 Python 应用的容器进行 debug,更高效的定位和解决问题。
With the prevalence of container technologies such as Docker/Kubernetes, more and more Python applications are already running in containers.
While bringing convenience, it also makes debugging in the production environment more complicated.
eBPF is a revolutionary technology that can run sandboxed programs in the Linux kernel without changing the kernel source code.
This sharing will introduce you how to use eBPF technology to debug the Python application container, locate and solve problems more efficiently.
中场休息 & 抽奖
使用Python打造轻量级APP自动审计平台
Build a lightweight app automation audit platform with Python
python不光用于web渗透的工具链打造中,在移动安全的领域,我们也会时常通过Python来做一些工具来优化我们日常的审计效率,那么如何从一个工具延展到一个整体性的APP审计平台呢?
我们会从APP审计的视角出发,介绍如何打造轻量级的APP自动化审计平台。
目录:
一、自动化审计场景介绍
1.1 宏观视角下的APP审计
1.2 自动化审计诉求
1.3 自动化审计应用场景
二、如何在实战中提高审计效率
2.1 运行效率提高
2.2 数据处理效率提高
三、总结与展望
Python is not only used for web penetration toolchain building, but also in the field of mobile security, we often use Python to make tools to optimize the efficiency of our daily audit, so how to extend a tool to a holistic app auditing platform?
We will present how to build a lightweight app automation audit platform from the perspective of app auditing.
Table of Contents.
I. Automated Audit Scenarios
1.1 APP Auditing from a Macro Perspective
1.2 Automated Auditing Requirements
1.3 Automated Auditing Scenarios
II. How to improve audit efficiency in the field
2.1 Operational Efficiency Improvement
2.2 Data processing efficiency improvement
III. Summary and Outlook
Rust Python与可嵌入的Python解释器
RustPython and embedable Python interpreter
由于Python自身的魅力,已经被越来越多的业内、业外人士所熟知。同时,作为一门表达能力非常强的语言,在特定的领域内,将其作为一种领域特定语言(DSL)应用在我们的业务框架中,可以大幅度提升业务框架的灵活性。然而,由于CPython解释器的特点,使其在嵌入其他程序框架时,往往会"喧宾夺主",且考虑到上述应用场景极有可能会执行用户提交的不安全代码,解释器自身的安全性也需要考虑。本次演讲将简要介绍除CPython以外的其他解释器实现,并重点介绍RustPython的发展现状。希望通过本次演讲,能鼓励大家在更多的场景下引入Python这门优秀的语言。
Because of its own appeal, Python has become more and more well known by people both inside and outside the industry.At the same time, as a very expressive language, using it as a Domain Specific Language (DSL) in our business frameworks can greatly increase the flexibility of our business frameworks in certain domains. However, due to the characteristics of the CPython interpreter, it tends to be "clumsy" when embedded in other application frameworks, and the security of the interpreter itself needs to be considered, since the above scenarios are likely to execute unsafe code submitted by users. This talk will briefly introduce other interpreter implementations besides CPython, and focus on the current development of RustPython. Hope that this presentation may encourage people to introduce the excellent Python language in more scenarios.
Python与Rust的碰撞:使用Rust助力Python程序
The Collision between Python and Rust: Using Rust to Help Python Programs
Python是一种极其灵活的、支持热重载的编程语言。但想要写出高性能的,安全的Python程序并不轻松。
Rust是一种安全的、高性能和低碳的编程语言。但在需要快速迭代的场景中,它的开发效率并不理想。
因此,两者可以很好的互相补足和协调。
我会向大家介绍它俩是如何协同的。
以及安利Rust——这个现代编程语言工业界的结晶
如何使用 PyArmor 发布安全的加密 Python 脚本
How to protect Python s by PyArmor
对于使用 Python 开发的商用软件来说,如果不想公开源码,那么如何进行发布是一项挑战。PyArmor 是发布加密 Python 脚本的一个成熟工具,目前有 1000+ 注册用户,包括腾讯,华为,富士通,IBM(日本),通用(印度)等,已经被证明是一种能够成功保护 Python 脚本的解决方案。
本次议题会介绍 PyArmor 的优势和特点,PyArmor 的加密安全性,以及如何使用 PyArmor 进行加密脚本,如何打包加密脚本为可执行文件,如何设置加密脚本的有效期或者绑定加密脚本到固定的机器。
If you use Python to develop commercial software and do not want to make the source code public, how to release it is a challenge. PyArmor is a mature tool for publishing encrypted Python s. There are currently 1000+ registered users, including Tencent, Huawei, Fujitsu, IBM (Japan), GM (India), etc. It has been proven to be a solution that can successfully protect Python s.
In this talk, I would like to show the highlights of PyArmor, the security of PyArmor, and how to obfuscate the s, pack the obfuscated s into one bundle, expired the obfuscated s or bind them to fixed machine.
活动结束,抽奖,拍照留念
深圳地址:深圳市南山区芒果网大厦10楼
好好写代码:遗失的Python编程原则
Write Code Well: Missing Python Programming Principles
不讲云计算,也不讲人工智能,没有流行,也没有风口,回归本源,回归10年前的老派技术分享,没有框架和套路,代码说话,拳拳到肉,就讲讲我在带人的过程中发现的新人甚至熟手也经常犯的一些错,还有就是Python新版本的一些“更好的编码”的特性,看了就能用得上,在这个主题里,我只讲如何写好每一行代码。
No cloud computing, no artificial intelligence, no popularity or hot new business. I'm going back to the origin, to the old school way of technology sharing 10 years ago. There's no framework or routine other than code.
I'll talk about some mistakes I have found that newbie and even experienced developers often make. There are also some "better way of coding" features of the new version of Python which you can use immediately after this presentation. Yes, in this topic, I will only talk about how to write each line of code in an elegant way.
Nix for pythoner
一个可复现的部署工具和虚拟环境工具对 Python 这种语言来说尤其重要,特别是和依赖 C 库进行混合编程时。
Nix 是一个可复现的包管理器,能够提供终极的虚拟环境隔离机制, 以及 Devops 工具。对 Pythonistas 来是一个非常重要的补充。
A reproducible deployment tool and virtual environment tool is especially important for language like Python, especially when hybrid programming with the C dependency library.
Nix is a reproducible package manager which provides the ultimate virtual environment isolation mechanism, as well as devops tools. It is very benifit for Pythonistas.
利用Python在Azure上玩转机器学习
Mastering Machine Learning with Python on Azure
近年Visual Studio Code 成为开发者的开发利器,Visual Studio Code 在Python后端应用,到机器学习都有很好的支持,本课程介绍如何利用Visual Studio Code 的Python 插件快速搭建一个基于人工智能的云端解决方案, 从需求,开发,运维,测试的现代化应用场景。
Azure machine learning service is launched in China, which expands the application scenarios of Microsoft azure cloud in machine learning field. This course uses Python to complete a machine learning case from data collection, model training, testing and publishing through the machine learning service provided by azure.
Lightning — 现代的无代码Admin
Lightning - Modern Codeless Admin
Lightning是一款基于Django的应用开发框架,由”闪电数据管理”团队开源的核心框架。
Lightning允许开发者仅编写Django Model即可拥有一个现代的、功能丰富、适合国人使用习惯的SPA管理后台或企业应用;它拥有强大的管理页面与Dashboard图表可视化配置功能,极大缩减管理后台的研发成本。
本主題主要介绍该框架的基本使用方式以及背后的设计理念。本次演讲也是本项目的开源仪式,主題演讲完毕当即开源。
Lightning is an application development framework based on Django, which is open-source by the lightning data management team. Lightning allows developers to write only Django model, which can have a modern, rich function, suitable for Chinese people to use SPA management background or enterprise application. It has powerful management page and Dashboard chart visual configuration function, greatly reducing the R&D cost of management background.
This topic mainly introuduce the basic use of the framework and the design concept behind it. This topic is also the open source ceremony of the project. After the keynote speech, the project will open source immediately.
中场休息
从django历史漏洞看安全编码规范的重要性
The Importance of Secure Coding Standards from Historical Vulnerabilities in Django
一 从“漏洞”看django
1.1 ssti (从ssti角度分析)
1.2 密码重置 (从密码重置角度分析)
1.3 sql注入 (从sql注入角度分析)
1.4 CVE-2017-7233&7234
二 django与安全开发
2.1 django安全开发 (django安全开发技巧)
2.2 总结与展望 (总结与展望)
A look at django from a "vulnerability" perspective
1.1 ssti (analysis from the ssti perspective)
1.2 Password Reset (analysis from the perspective of password reset)
1.3 SQL injection (analysis from the SQL injection perspective)
1.4 CVE-2017-7233&7234
II. Django and Security Development
2.1 Django security development (django security development tips)
2.2 Summary and Outlook (Summary and Outlook)
用Python从0构建一个简单的脚本语言
Build a simple ing language from scratch in Python.
邻域特定语言(DSL)在部分工作场景中非常有用,比如游戏活动的配置,常规业务的生成等。本次分享我将展示我是如何使用Python从0开始构建ToyPL的,ToyPL是一个支持基本运算、变量、列表、函数、注释的一个简单的脚本语言,构建的过程不会使用第三方语法生成工具,主要介绍如何通过简单的递归算法来构建这门语言,分享的过程中会介绍编译原因的一些背景知识,然后便将时间花在如何构建词法分析器、语法分析器以及解释器上,这些看上去复杂的东西其核心都是递归算法,当你掌握这些基本知识后,你便可以尝试编写自己的脚本语言了,本次分享不会涉及特别深奥的编译原理知识,只是希望给未接触编译原理的同学一个初步的印象,然后我们一同学习研究这一领域。
Domain-specific language is very useful in some work scenarios, such as configuration of game activities, generation of routine business, etc. In this sharing, I will show how I built ToyPL from scratch using Python. ToyPL is a simple ing language that supports basic operations, variables, lists, functions, and annotations. The building process does not use third-party syntax generation tools. I will mainly introduce how to build this language through a simple recursive algorithm. During the sharing process, I will introduce some background knowledge of compilation principles, and then I will spend time on how to build a lexical analyzer, a syntax analyzer, and an interpreter. The core of these seemingly complicated things are recursive algorithms. Once you have mastered these basic knowledge, you can try to write your own ing language. This sharing will not involve particularly profound knowledge of compilation principles, but just want to give a preliminary impression to students who have not yet come across compilation principles, and then we will learn and research this field together.
智能问答系统在西山居中的落地
The implementation of Intelligent Question Answering system in Seasun Entertainment
随着人工智能与自然语言处理领域的飞速发展,目前国内大部分公司都已经拥有了自己的客服系统,但是目前很多客服系统都是基于最简单的规则,或者通过关键字匹配进行查找的,一旦关键字匹配不到,则会出现无法查询出正确结果的现象。
本次分享将介绍西山居使用Rasa框架在智能客服领域的实际落地情况,以及如何将基于QA问答对、KBQA和闲聊结合在一起做整体问答系统解决方案,并介绍在落地过程中的常见trick,以及在上线工程化方面的一些经验。
With the rapid development of artificial intelligence and natural language processing, most domestic companies already have their own customer service systems, but many customer service systems are currently based on the simplest rules or search by keyword matching. Once the keywords are not matched, the correct results will not be found. This sharing will introduce the actual implementation of Seasun's use of the Rasa framework in the field of intelligent customer service, and how to combine QA-based question and answer pairs, KBQA and chatting to make an overall question and answer system solution. Will also introduce common tricks in the implementation process and some experience in engineering.
K12 教育里的 Python 和 AI
Democratizing AI to K21 Student with Python
STEM 教育从上世纪持续至今,造福了一代又一代的理工科学生,STEAM 教育和 AI 教育也在继续兴起,我和我的团队正在通过 Python 来打造适合 K–12 学生的编程学习平台,本次主题想给观众分享,我们是如何使用 Python 和 MicroPython 来打造一系列的软件编程环境和硬件平台,内容包括积木式编程、边缘计算、计算机视觉、模型训练。
STEM education has benefited generations of science and engineering students since last century. STEAM education and AI education are also continuing to rise. My team and I are using Python to build a programming learning platform suitable for K–12 students . This time The topic wants to share with the audience how we use Python and MicroPython to create a series of software programming environments and hardware platforms, including building block programming, edge computing, computer vision, and model training.
少儿编程课程设计中常用的库与工具
Libraries and Tools Used in the Design of Kids Programming Courses
少儿编程没有统一的教材,每个培训机构都要自己设计和研发课件,不同机构的课件各有特色,但不管怎样,课件研发绕不开的两个点就是知识点大纲的安排和和围绕知识点的项目设计。图形化编程的主流是 Scratch,纯代码编程的主流是 Python。Python 的知识点是确定的,不同机构的知识点大纲安排大同小异,项目设计是一个体现差异化很重要的点,好的项目设计要简单有趣,还要合理地融入知识点,所以做项目设计需要借助一些库和工具,主流的 python 库有3个:turtle(图形与动画), tkinter(桌面软件)和 pygame(游戏)。本议题是想介绍一下这3个库的优缺点,谈一下我们在使用这3个库做课件研发的过程中遇到问题和解决思路,以及其它有用的 Python 库和工具,如 pgzero, python-cocos2d, freegames, mcpi和piskel, page等。同时希望能抛砖引玉,吸引更多的人才加入这一领域的研究工作。
There is no standard teaching material for kids programming. Each training institution must design and develop its own course materials, and different institutes have their own characteristics. But in any case, the two points that cannot be avoided in the development are the design of the knowledge points outline and the project design around the knowledge points. The mainstream of graphical programming is Scratch, and the mainstream of pure code programming is Python. The knowledge points of Python are determined, and the outline design of the knowledge points of different institutions are similar. Therefore, project design is very important to reflect differentiation. Good project design should be simple and interesting, and knowledge points should be reasonably integrated. In order to make such a good project design, we need to use some libraries and tools. There are 3 mainstream python libraries: turtle (graphics and animation), tkinter (desktop software) and pygame (game). This topic is to a) introduce the advantages and disadvantages of these three libraries; b) talk about the problems and solutions we encountered in the process of using these three libraries for course development; 3) introduce other useful Python libraries and tools, such as pgzero, python- cocos2d, freegames, mcpi and piskel, page etc. At the same time, we hope to attract more talented people to join the research work in this field.
3年5跳的遍历python职业的踩坑之旅
5 Hoppings in Python in 3 Years
简要的介绍自刚刚毕业到从业三年的这段时间里,
从5个人的小公司,到现在某大厂旗下的中厂。
期间从事的各种python相关的岗位,与呆过的各种小公司的经验,先后从事过web后端,爬虫,数据分析,少儿编程教学等,可以说踩尽了python相关不需要研究生以上的坑。
以及职业中的仲裁故事,被学校老师欺骗等。
供后人参考。
This is a brief introduction of the three years since graduation, from a small company with only 5 people, to a medium-sized company under a large enterprise.
During this three years, has engaged in various Python related jobs and has experience in small companies. Has successively engaged in Web back-end, crawler, data analysis, children's programming teaching and so on. It can be said that I have stepped into the all of the holes Python related which graduate students are not required.
This topic will also talk about stories of arbitration and being cheated by school teachers and etc.
For reference.
活动结束,抽奖,拍照抽奖
上海地址:上海市徐汇区虹漕路77号C9栋5楼 微软上海
开场介绍
Python代码理解,从微观到宏观,从功能到性能
Understanding Python code, from micro to macro, from function to performance
理解代码是每个程序员都要经历的事情,我们可以从两个维度去看待我们的代码,微观到宏观,功能与性能。
对于Python,从最基础的一行代码开始,到一个函数,到函数的叠加与嵌套,再到多线程、多进程的程序,像搭乐高一样,是几乎所有项目组成的方式。
而我们在理解、开发、改善代码的时候,也会在某一个维度下观察程序,而最主要的两个角度无非是功能与性能。
我的主题是去讨论在不同维度下,理解功能与性能的工具和方法。
最基础的方法,是功能的print和性能的time。这是最简单易用的。
接下来是对这些方法的简单加强,比如pysnooper, timeit
然后是一些自动化工具像pdb,cprofile(不用修改代码)
接下来为了更符合人的直觉,有了对应的visualization,包括pycharm或者vscode的debugger,gprof2dot或者snakeviz
每种工具都有自己的优劣。比如强大的debugger在微观下做的很好,但是宏观上往往乏力。visualized profiler在宏观上可以给出很有效的概括,但是对微观性能常常无能为力(比如某个函数只有个别情况下耗时异常,或者一个大程序里只有一段是需要高速运行的)。
再接下来应该是什么?
我们希望有一个工具,可以把功能和性能,微观和宏观,尽可能地统一起来。使用一个工具,在不修改源代码的情况下,最简单地得到微观和宏观不同维度的功能和性能信息。
VizTracer就是这样的一个工具。
VizTracer的一个核心数据是时间戳,无论是在栈底的很早运行的函数,还是栈底的高频函数,无论他们在哪个thread,哪个process,都可以看到时间的占用。
与cProfile不同,VizTracer记录了函数的每一次entry,所以在性能之外,功能上也覆盖很广。通过VizTracer不光可以了解函数的调用层级,调用顺序,还可以记录变量的变化。更难得的是,在强大的前端加持下,VizTracer可以显示不同thread,不同process在不同时刻运行的函数,让人更加直观地理解concurrency,定位deadlock或者race condition。
我会介绍一些VizTracer的功能以及例子,这是主题的比较主要的内容吧。当然也可以根据需求去做一些调整,主要还是希望把这个工具介绍给大家让大家了解。
Understanding code is something that every developer goes through, and we can look at our code in two dimensions, from micro to macro, from function to performance.
For Python, starting with a basic line of code, to a function, to function overlays and nesting, to a multi-threaded, and multi-process program, it's just like building Lego that the way almost all projects are composed.
When we trying to understand, develop, and improve some codes, we'll also look at programs in one of two dimensions, mostly function and performance.
My topic is to discuss tools and methods for understanding function and performance in different dimensions.
The most basic methods are the functions' print and the time to measure the performance, which are the easiest to use.
What follows are simple enhancements to these methods, such as pysnooper, timeit.
Then there are some automated tools like pdb, cprofile (without changing the code).
Next, to be more intuitive, there are visualization equivalents, like the debugger within PyCharm or VSCode, gprof2dot, and snakeviz.
Each tool has its own strengths and weaknesses. For example, a powerful debugger does a good job at the micro level, but is often ineffective at the macro level, meanwhile a visualized profiler can give an effective overview at the macro level, but is often ineffective at the micro level (e.g., a function only takes time exceptionally in certain cases, or there is only one paragraph in a large program that needs to run at high speed).
So what's next?
We want a tool that would integrate function and performance, micro and macro, in unified a way. Easily use one tool to get function and performance information on different dimensions, micro and macro, without modifying the source code.
Here comes the VizTracer.
One of the essential pieces of data in VizTracer is the timestamp, which allows you to see the time spent on very early-running functions at the bottom of the stack, as well as high-frequency functions at the bottom of the stack, no matter which thread or process they are in.
Unlike cProfile, VizTracer records every entry of a function, so it covers a wide range of functions in addition to performance. VizTracer not only knows the function's call hierarchy and call order, but also keeps track of variable changes. What's more, with a powerful front-end, VizTracer can show functions running at different times on different threads and processes, which makes it easier to understand concurrency, locate deadlock or race condition.
I will introduce some VizTracer features and examples, which is the main topic of this topic. Of course, you can make some adjustments according to your needs, but I would like to introduce this tool to audience and let everybody understand it.
基数树路由
Radix Tree Route
在 Python 的 web 框架越来越多的今天,web 框架路由的实现却落后于其他语言。Radix Tree 是一种成熟的、可用于路由匹配的数据结构,且广泛用于各种 Golang 的 web 框架之中,相较于 Django/Starlette 等 web 框架简单粗暴的路由实现来说,速度更快而灵活度不减。
There are more and more Python web frameworks now, but the implementation of web framework routing lags behind other languages. Radix Tree is a mature data structure that can be used for routing matching, and is widely used in various Golang web frameworks. Compared with the simple and brute routing implementations of web frameworks such as Django/Starlette, it is faster and flexible.
中场休息 & 抽奖
Python Debugging: Pro Tips and Not-So-Obvious Tricks
如果你和我一样,当你开始使用 Python 时,“print”一定是调试程序的首选。但你可能会发现,这种方式缓慢、乏味,且并不能用来解决更复杂的问题。
让我们深入研究在诸如 Raspberry Pi、Docker 容器、远程 Linux 服务器以及 Jupyter Notebooks 等环境中用 Visual Studio Code 调试远程 Python 的方法。
你将学习到如何同步代码以链接调试器并逐步完成你的代码。已有的(或新晋的)Jupyter 爱好者将学到一些调试 notebook 的小技巧。
这个议题涵盖了一系列场景,将有效提高你的调试技巧。
If you are anything like me, when you started with Python 'print' was the debugger of choice. But you likely found that was slow, tedious, and didn't cut it for more complex problems.
Let’s dive into methods for debugging remote python in environments such as Raspberry Pi, Docker containers, remote Linux Servers, and Jupyter Notebooks with Visual Studio Code.
You’ll learn how to sync code to attach debuggers, and step through your code. And existing (or newly forged) Jupyter fans will learn tips to debug your notebooks.
This fun session covers a range of scenarios and empowers you to supercharge your debugging techniques!
利用PYNQ将Python生态向嵌入式和硬件延伸
Using PYNQ to Extend Python Ecology to Embedded System and Hardware
午休
frontend-for-free,快乐parsing
在Python世界中,已有的parsing工具其实相当羸弱。要么是使用复杂,要么表达力很弱,要么慢,要么像lark parser一样要求运行时依赖。因此我花了半年时间构筑了我理想中最强大的parser generator,"frontend for free"(FFF)。 在python世界里,FFF是目前最快的scanner parser。除开性能远超lark,还有零运行时依赖,语法制导,左递归,参数化语法。
这一次,我给大家带来一些parser generator的用例。
我们轻松地解析复杂的文本格式规则,我们从短短的文本生成大量代码实现复杂功能,我们在几分钟内为语言实现高亮器...
Parsing是一件很快乐的事情。
In the Python world, the existing parsing tools are actually quite weak. It is either complex to use, weak to express, slow to use, or requires runtime dependency like lark parser. So it took me half a year to build the most powerful parser generator in my dream, "frontend for free" (FFF). FFF is the fastest scanner parser in the Python world. In addition to the performance far better than lark, there are zero runtime dependence, syntax guidance, left recursion, parameterized syntax.
This time, I bring you some use cases of parser generator.
We easily parse complex text formatting rules, we generate a lot of code from a short text to implement complex functions, we implement a highlight for the language in a few minutes...
Parsing is a very happy thing.
Python 技术名词发音指南
How to Pronounce "Python"?
Django 怎么读?十个 Python 程序员也许会有十种读法。如果这个你刚好会读的话,那么还有 Werkzeug、SQLAlchemy、Gunicorn、PyPI、Bokeh、Huey…… 根据可靠来源,因为错误的发音,两个 Python 程序员在交谈时平均每小时会浪费三分钟时间用来互相确认和纠正名词发音。为了减少整个 Python 社区因为错误的技术名词发音产生更多的熵,这个演讲带来了一个可信度 95% 的 Python 技术名词发音指南。
How to pronounce Django? There may be ten pronounciations in ten programmers's eyes. If you happen to be able to pronounce it correctly, then there are Werkzeug, SQLAlchemy, Gunicorn, PyPI, Bokeh, Huey... According to reliable sources, because of the wrong pronunciation, two Python programmers waste an average of three minutes per hour in conversation. To confirm and correct the pronunciation of nouns. In order to reduce the entropy of the entire Python community due to incorrect pronunciation, this lecture brings a guide to the pronunciation of technical nouns in Python with 95% reliability.
联邦学习 解决数据孤岛问题
Solve Data Silos with Federal Learning
在数据已逐渐成为重要生产资料的今天,数据孤岛问题日益突出。
何谓数据孤岛,即双方或多方手中都只拥有一部分的数据,如果想训练一个效果更好的模型,就需要将各自的数据拼凑在一起进行训练。但现实中由于数据这种资产的特殊性以及法规限制,不同的公司甚至部门之间都不能将数据直接交给对方使用,这就产生了数据孤岛。
联邦学习的提出就是为了解决此类问题,让大家在数据不泄漏的情况下实现数据价值的交易。目前此领域比较知名的开源项目有基于 Python 编写的 FATE,本次演讲将简单地介绍和展示使用开源框架将两个节点的数据在互不泄露的情况下训练出逻辑回归模型。
Today, when data has gradually become an important means of production, the problem of data silos is becoming more and more prominent.
Data silos mean that only a portion of the data is in the hands of two or more parties, and if they want to train a better model, they need to put their data together for training. However, in reality, due to the particularity of data as an asset and legal restrictions, different companies and even departments cannot directly hand over data to each other, which creates data silos.
Federated Learning is proposed to solve such problems and allow people to trade data value without data leakage. Currently, one of the more well-known open source projects in this field is FATE, which is based on Python. This presentation will briefly introduce and demonstrate the use of an open source framework to train a logistic regression model on two nodes with no data leakage to each other.
使用 Mypy 开启 Python 中的类型
How to start using types in Python with Mypy
您知道仅通过使用类型就可以避免出现 Bug 吗? 您知道另一个 TDD 的存在吗? 认识“类型驱动开发”,可以在 Python 中使用来消除代码常见错误。
类型驱动开发可以利用 Python 的类型系统来提高代码的性能,准确性和可读性。 强类型语言对软件设计以及质量有巨大影响,而 Python 是动态强类型语言,我们可以通过使用对类型提示的支持来利用类型系统来实现早期的错误检测机制。
在本次演讲中,我们将讨论使用 Python 类型注释的好处,用于执行静态检查分析的工具以及如何使用它们。 我将根据实际情况分享一些代码——可以检测并防止某些错误的示例。 通过类型注释,我们将了解为什么不需要特定的单元测试。
Did you know it’s possible to avoid bugs only by using types? Did you know there is another TDD? Meet “Type Driven Development”, a strong approach used to get rid of common bugs in the code and it can be used in Python.
Type Driven Development can increase the performance, accuracy, and readability of your code by taking advantage of the Python’s type system. A strongly typed language has a huge incidence in software design and quality, and being Python a dynamic and strongly-typed language, we can take advantage of the type system to implement an early bug-detection mechanism by using the support for type hints.
In this talk, we are going to discuss the benefits of using Python’s type annotations, how to use them on our daily basis and the tooling available to perform static check analysis. I’m going to share some code samples based on real-life scenarios where some bugs can be detected/prevented. We’ll see why specific unit tests are not necessary by using this practice.
那些用起来很爽但你可能会被打的Python骚操作
Cool Python hacks that might knock you off if they turn out bad
众所周知,Python由于其动态语言的优势,能做到非常多静态语言无法做到的骚操作,这些骚操作在某些时候能够使我们的开发效率获得几倍甚至几十倍的提升。
虽然这些骚操作可能会因为安全性、可读性、可靠性等原因而在团队、工程项目中被禁用,但这并不影响我们去了解它们。
毕竟,在一些特殊的场景下,我们确实需要这些骚操作来方便地实现所需的效果。而且,这些骚操作往往也会涉及到编程语言底层的一些东西,如果你去深入探索它们的话,还可以对语言有着更深刻的理解,从而避免一些令人迷惑的坑。所以,了解一下总没错。
在本次分享中,我将介绍一些方便、实用,但大多数人可能并不了解的骚操作,希望对大家能有所帮助(乱用骚操作被打了别找我hhh)。
Python is well known for being a dynamic language that enables “hacks” that many static languages cannot operate. These hacks can improve the level of work efficiency up to a few times or even ten times better at some time. Although these hacks are often banned from using within a group or project because of potential security, readability and reliability problems, it doesn't mean we can't learn about them.
After all, we definitely need these hacks in some special circumstances to conveniently draw out the essential effects. What’s more, since these hacks are about the very basis of the programming language, we can deepen our understanding in the language by further exploring them, thus preventing causing confusion. So, there’s no bad in learning them.
In my sharing, I will talk about some convenient and practical hacks that perhaps not many are aware of. I hope this can help everyone (but don't blame me if you've got scolded for abusing them!).
人工智能在影视行业的实践
Realization of artificial intelligence in film and television industry
目前人工智能在图形图像领域有很多非常好的研究成果,我们在尝试把这些成果引入到影视制作领域,比如图像分割应用,可以实现自动化的ROTO工作,减少人工的参与,提升制作效率。也会谈一下目前我们实践过程中遇到的问题和解决思路。
本次演讲主要交流目前的一些进展与展望,希望通过本次交流让更多技术人员,特别是人工智能领域的同行对影视制作领域的实践有所了解。
In present days, as the artificial intelligence is obtaining great results in the graphic image researches, we are trying to introduce this idea into film making. Image segmentation apps, for example, can employ ROTO automation to reduce human labor and improve productivity. We will also talk about the problems we have once faced and the solution employed to tackle them during these process of realization.
This talk will mainly communicate some current progresses and prospects. I hope through this discussion technicians—especially those in the AI field—can expand their knowledge on realization of film making field.
Visual Studio Code — Python 开发利器
Visual Studio Code: a great tool for Python development
Visual Studio Code 是一款现代化轻量级代码编辑器,它免费、开源、跨平台、功能强大。越来越多的 Python 开发者选择使用 VS Code 作为他们的开发工具。通过本次演讲,我们将会了解到 VS Code 对于 Python 开发者的那些好用的功能:
• Coding pack for Python
• VS Code Remote
• GitHub Codespaces
Visual Studio Code is a modern lightweight code editor. It is free, open-source, and cross-platform, accompanied with a range of powerful functions. Today, more and more Python developers are choosing VS Code as their main development tool. In this talk, I will explain following useful functions in VS Code for Python developers:
• Coding pack for Python
• VS Code Remote
• GitHub Codespaces
从零开始做播客
Start a podcast from scratch
许多程序员都有自己的博客,但是播客目前仍然是一个小众领域。虽然小众,却处于快速发展之中。近两年,国内不论是节目还是听众数量都呈爆发之势,各大互联网公司也纷纷布局。《捕蛇者说》作为少有的中文技术类播客,目前已经成功运行近两年,在程序员圈内获得了广泛关注。利用这个闪电演讲,我会简单讲讲要如何开始做一个属于自己的播客。希望能借此鼓励更多的人加入播客制作的行列,因为它和写博客以及开源一样,都是非常好的分享手段。
Many programmers have their own blogs, but maybe not a podcast, which is kinda niche but booming.
In the past few years, both the number of programs and the number of listeners in China have exploded, and major Internet companies have also participated.
As a rare Chinese technology podcast, "Python Hunter" has been run for nearly two years and has gained widespread attention among the programmers. In this lightning talk, I will briefly talk about how to start a podcast of your own. I hope this will encourage more people to host podcasts, since it is a very good sharing method like blogging and open source.
茶歇
社区发展访谈: 社区主要负责人
PyCon 北京, 上海,深圳,杭州,南宁负责人讨论
PyCon 脱口秀直播 ( Pythonista 的那些事)
1. 许智翔(Shell) - Autonomic Python/Golang/C 程序员
2. 杨志笑(AI兔兔)- AI算法工程师
3. 袁鹏 - 联发科 - 自动化工具开发
4. 丁俊豪 - 享道出行 - 高级运维工程师
活动结束,抽奖,拍照留念
开场介绍
Python for Global Good
Python 与 Visual Studio Code 在人工智能应用中的最佳 Azure 实践
Best Practice for Python in AI Application Development with Visual Studio Code
中场休息 & 抽奖 ( PyCon 纪念卫衣)
Modern Python through FastAPI and friends
午休
CDK for Kubernetes 的 Python 接口
CDK for Kubernetes in Python
Python强类型编程最佳实践
Best Practice for Strongly Typed Programming in Python
使用混沌工程来保障分布式系统的健壮性
中场休息 & 抽奖
系统级线程的协程化替代实现
The coroutine-based alternative implementation of the posix thread
利用Project Orca在大数据平台上无缝扩展Python深度学习流水线
Python "业务逻辑安全" && "业务开发安全"
Python "Business Logic Security" && "Business Development Security"
Python 微服务应用性能监控
Python Microservice Application Performance Monitoring
活动结束,抽奖,拍照留念
Python实战派——全自动漏洞挖掘机
Python Realists--Automatic Vulnerability Miner
深入了解Databricks大数据平台
In Depth Understanding of Databricks Big Data Platform
用 eBPF 调试 Python 容器
Debug Python container with eBPF
中场休息 & 抽奖
使用Python打造轻量级APP自动审计平台
Build a lightweight app automation audit platform with Python
Rust Python与可嵌入的Python解释器
RustPython and embedable Python interpreter
Python与Rust的碰撞:使用Rust助力Python程序
The Collision between Python and Rust: Using Rust to Help Python Programs
如何使用 PyArmor 发布安全的加密 Python 脚本
How to protect Python s by PyArmor
活动结束,抽奖,拍照留念
好好写代码:遗失的Python编程原则
Write Code Well: Missing Python Programming Principles
Nix for pythoner
利用Python在Azure上玩转机器学习
Mastering Machine Learning with Python on Azure
Lightning — 现代的无代码Admin
Lightning - Modern Codeless Admin
中场休息
从django历史漏洞看安全编码规范的重要性
The Importance of Secure Coding Standards from Historical Vulnerabilities in Django
用Python从0构建一个简单的脚本语言
Build a simple ing language from scratch in Python.
智能问答系统在西山居中的落地
The implementation of Intelligent Question Answering system in Seasun Entertainment
K12 教育里的 Python 和 AI
Democratizing AI to K21 Student with Python
少儿编程课程设计中常用的库与工具
Libraries and Tools Used in the Design of Kids Programming Courses
3年5跳的遍历python职业的踩坑之旅
5 Hoppings in Python in 3 Years
活动结束,抽奖,拍照抽奖
开场介绍
Python代码理解,从微观到宏观,从功能到性能
Understanding Python code, from micro to macro, from function to performance
基数树路由
Radix Tree Route
中场休息 & 抽奖
Python Debugging: Pro Tips and Not-So-Obvious Tricks
利用PYNQ将Python生态向嵌入式和硬件延伸
Using PYNQ to Extend Python Ecology to Embedded System and Hardware
午休
frontend-for-free,快乐parsing
Python 技术名词发音指南
How to Pronounce "Python"?
联邦学习 解决数据孤岛问题
Solve Data Silos with Federal Learning
使用 Mypy 开启 Python 中的类型
How to start using types in Python with Mypy
那些用起来很爽但你可能会被打的Python骚操作
Cool Python hacks that might knock you off if they turn out bad
人工智能在影视行业的实践
Realization of artificial intelligence in film and television industry
Visual Studio Code — Python 开发利器
Visual Studio Code: a great tool for Python development
从零开始做播客
Start a podcast from scratch
茶歇
社区发展访谈: 社区主要负责人
PyCon 北京, 上海,深圳,杭州,南宁负责人讨论
PyCon 脱口秀直播 ( Pythonista 的那些事)
活动结束,抽奖,拍照留念
退票说明:不支持退票
大会由喜爱 Python 的伙伴们公益组织,大会门票的所有收入将用于场地租金,讲师差旅及大会纪念品的定制。若时间确实无法调整,请转让给有需要的伙伴。