重要提示,本文只会提供关键名词,不会涉及太多技术细节,技术细节自己去深挖吧。

在 Python 中加快文件传输和文件复制 - Giampaolo Rodola

第一位上台的是来自意大利的 Giampaolo Rodola,一位 Python 核心开发者,本来想上去尬聊的,但限于自己的英语水平,就作罢了,在这场会议上并不是每个单词都懂,但就是大致知道他在分享什么。

他的分享分为两大块。

第一部分讲了 Python3.8 中拷贝的底层使用了 os.sendfile () 或 socket.sendfile () 方法实现文件的拷贝,相比于旧的拷贝方式,这种方式会更快。

操作系统分为用户态与内核态,旧的复制文件方式会多次在用户态与内核态之间切换执行,而 os.sendfile () 会在内核态完成所有的操作,所以更快。

第二部分主要介绍了 psutil,通过 psutil 可以实现对计算机大部分状态的监控,如 cpu、内存、磁盘、进程、网络等各种状态,利用 psutil 其实就可以构建出一个计算机状态监控器了。

Google SRE 体系核心基础解读 —— 刘征

第二位上台的是刘征老师 (Elastic 的广告),主要讲了 Google 的 SRE (网站可靠性工程),SRE 主要有 3 个东西,分别是 SLA、SLO、SLI,在边听会议的时候,简单查了一下,个人感觉,这种东西更偏向于一种工作方式,感兴趣的可以搜索了解一下

从 Python 开始钱赚钱 —— 邝泽徽

邝泽徽老师主要分享他个人的业余项目,如何利用 Python 抄虚拟货币赚钱,对于做过一段时间量化的我来说,这个分享没有特别强的逻辑支持,主要使用网格策略,这种策略理论上在大波动的市场中会有比较好的效果,而虚拟货币就是一个大波动的市场,网格策略的核心逻辑就是利用波动做买入与卖出,下跌时买入,上涨是卖出,做到多次下跌买入时的平均价格小于多次上涨卖出的平均价格减去交易手续费的平均价格则可。

这位老师分享的项目比较随意,感觉有一些点是逻辑非自洽的,但这个分享的关键其实并不是项目本身,而是知行合一的理念,知行合一出自王阳明的阳明心学,王阳明受挫后在龙场悟道,提出了知行合一这种心学。(王阳明的书籍值得一看,我被之前棋盘公司技术经理拉坑看完了)。

一行代码加速科学计算 —— 解超

解超老师是位年轻人,声音洪亮的分享了 Modin 这个库,它可以通过一行代码加速 pandas,怎么个一行法?

import pandas as pd
改为
import modin.pandas as pd

Modin 以及实现了 70% 的 Pandas API,使用方式与 Pandas 完全相同。

Pandas 之所以慢,是因为 Pandas 只能使用 CPU 的单核,Pandas 不是 C 实现的吗?没错,但人家没有实现支持多核使用的逻辑,Modin 的主要改进就是可以利用设备中所有的 CPU 资源,从而实现速度上的极大提升。

但 Modin 的社区是否完善?社区不完善遇到坑可是非常非常痛苦的。

感兴趣的可以看一下,Modin 项目仓库地址:

https://github.com/modin-project/modin

数字货币交易系统架构和 Python 实现 —— 黄毅

黄毅老师功力深厚,会议结束后,我特意找他尬聊了一会,因为没有深入研究过 Redis,所以很多东西都是知识范围外的。

黄毅老师分享了自己构建的数字货币交易系统的架构,与传统 Web 系统架构不同的是,交易系统撮合的功能必须在全局顺序执行,所谓撮合就是找到卖方的最低价与买方最高价,让双方进行交易。

这就需要找到整个系统中的买方,然后找到整个系统的卖方,然后按顺序进行交易,这部分是无法实现并发的,即没办法多笔交易同时进行,因为每一笔交易都会影响到下一笔交易。

这让系统存在理论上的承载上限,无法以增加机器构建集群的方式来扩展系统。(我非常好奇 A 股交易系统、美股交易系统是怎么解决这问题的?)

黄毅老师的解决方式是使用 Redis Module 实现新的 Redis 数据类型,来满足业务逻辑,让业务逻辑全部在内存中完成。当然,数据会持久化的记录于关系型数据库中 (Ticks:拼接成批量操作的 SQL,增加插入数据速度)。

交易系统依托于 Redis Module 与 Redis Stream (Redis 5.0 以上才支持,类似与 Kafka),可以实现单核每秒十万笔交易的程度 (大喊 666)。

大佬分享了他们的流计算开源作品:https://github.com/cryptorelay/redis-aggregation

他们公司 Crypto 还有招聘,薪资不是一般的高,Python 开发:50k-100k (经验:5-10 年)。

Python 的人工智能开发在微软云中的应用 —— 卢建晖

卢建晖老师 - 微软最有价值专家

可能是老师深藏不漏,我没有 Get 到演讲的神韵,虽然分享题目是人工智能这块的内容,而且大部分介绍 Azure,即广告。

因为我做过一段时间的 NLP,大致知道情况,深度学习目前对个人玩家并不友好,目前知名模型训练需要耗费巨大的算力,算力等于钱,需要上集群,这种云上免费训练,只能做一些简单模型。

当然我们可以利用迁移学习来使用他人已经训练好的模型,但这与分享的东西就没啥联系了。

此外,一个比较有意思的就是 VS Code 支持了 Jupyter 插件,可以直接在 VS Code 中使用 Jupyter,而且更加智能方便。

VS Code 使用 Electron 开发,本身又开源,其代码很值得学习,推荐一个来自淘宝前端大佬的博客,他此前一段时间的工作就是魔改 VS Code,形成淘宝自己的开发工具,名为 Editor,其博客如下:

https://www.barretlee.com/blog/2019/08/03/vscode-source-code-reading-notes/

FPGA 助力 Python 加速计算 —— 陈志勇

陈志勇老师主要分享了 FPGA 这种可以半定制的电路,利用 FPGA + 编程可以实现一些有趣的效果。

一开始主要介绍 FPGA 硬件上的知识,硬件上的并行就是利用多个电子元件实现的,而单个电子元件只能实现并发的效果。

此外还提了函数式编程语言,陈志勇老师说在硬件上编写程序一定要有函数式编程思维,因为我只用过 Erlang 这一种函数式编程语言做游戏开发,所以并不太理解这句话。

这个分享唯一与 Python 相关的地方就是 PYNQ 库,利用 PYNQ 的 API 可以编写在该公司硬件上使用的程序,运行速度很快,原因在于 PYNQ 会将相应的 Python 语言映射为硬件设备上 RTL 代码,从而实现极快的运算速度。

除了可以使用 Python 编写外,还可以使用 C 来编写,利用 Vivado HLS 这个工具,可以将 C 语言转为 RTL 代码,转换的过程应该是利用了编译原理相关的知识,但转换效果没有利用 PYNQ 这种映射成 RTL 的方式好,原因在于编写的 C 语言没有使用硬件开发的思路来写代码,此时转为的 RTL 代码其实写的不好,导致效率不高,而 PYNQ 这种方式,以丧失灵活性的方式来实现映射后 RTL 代码的规范性。

其实很多工具代码转换的方式都会有各种各样的问题,如 Unity 开发游戏转为 H5,H5 确实可以运行,但卡的不行,手机上完全不能玩,此外 Debug 等各种问题也是坑。

Pipenv 和 Python 包管理 —— 明希

明希老师主要分享了 Python 虚拟环境以及包管理的一些内容,内容很细,一开始主要分享了安装包的正确方法以及各种各样的坑。

随后介绍了 Pipenv,简单说了依赖解析问题与相应的解决方法。

最后说了一下为了 Python 包管理未来可能出现的方式,涉及了 PEP517、PEP518 草案,说的其实就是 Node.js 利用 npm 管理包那套,像 npm 那样,你可以选择将依赖库安装全局也可以安装到当前项目的目录下,安装在当前项目目录,只会被当前项目使用,利用这种方式就不用理会虚拟环境的问题了。

然后介绍了 PyFlow 这一个工具,可以实现 PEP517、PEP518 草案的效果,地址为:

https://github.com/David-OConnor/pyflow

但 npm 本身也有各种问题,在 2019 的 JSconfEU 上提出了 Tink 下一代包管理器技术,意在取代 npm。

闪电演讲

每个演讲大概 10 分钟

Python C 拓展在各平台的打包与发布 —— 赵丰

赵丰老师介绍了在 CI (Continuous Integration,持续集成) 环境自动打包 Python C 拓展库的方法。

构建 Python C 拓展包与构建纯 Python 包不同,需要涉及到编译的流程。在 Linux 中,随便编译的 C 拓展库是无法上传到官方的,这里 Python 官方给出了一个 centos6.1 环境的 Docker,必须在这个 Docker 的 Linux 下打的包才能上传。

为 Python Function 自动生成 Web UI —— 彭未康

彭未康老师介绍了自己开发的工具 Touch-Callable,构建于 Flask 之上,可以快速的通过一个方法构建出一个 web 界面,方便测试人员使用,比较简单,效果如下:

# examply.py
from enum import Enum
class 开关(Enum):开 = '开'关 = '关'
def 饮水机(口令: str, 制热: 开关=None, 制冷: 开关=开关('开')):"""这是 20618 的!"""if 口令 != '多喝热水':raise ValueError('你是谁,我不认识你')# 省略具体逻辑

github:https://github.com/pengwk/touch-callable

数字货币交易系统 Python 实践 —— 代少飞

介绍了开发交易系统时会遇到的问题以及给出的解决方法,这些解决方法出乎意料的朴素简单,并没有涉及什么高深技术。

此外还介绍了 APScheduler 这一个定时任务库 (因为他们的系统中使用了),这个库有比较多的概念,有兴趣可以看一下:

https://github.com/agronholm/apscheduler

但如果只是单纯的定时任务,其实并不建议使用 apscheduler,它会增大系统的复杂度,直接使用 crontab 简单粗暴。

Django 实现后端低代码开发平台 —— Jeff

low-code (低代码),简单而言就是通过不写或少写代码的方式来构建一个系统,jeff 老师将其分为 3 个阶段,第一个就是像 Django Admin 那样,写少量代码,实现 web 功能,第二个阶段就是通过配置文件来构建 web 系统,例如通过 JSON 文件构建一个 web 系统,第三个阶段,就是通过界面配置来构建一个 web 系统。

但我个人觉得,第三阶段应该是以可拖动式的方式来构建一个 web 系统。因为通过界面配置其实本质依旧是生成一个 JSON 文件,如果逻辑要变动,还是需要手写逻辑,不够灵活,而目前我知道的商用 low-code 平台是利用类似逻辑图的结构来构建无代码构建 web 平台的目的 (很多量化平台其实也有类似的东西,如 bigquant)。

通过界面拖动的方式,会更加灵活,可以自己构建各种逻辑,但操作复杂度也变大,很多时候构建一个 web,如构建后台,通过配置来构建更佳,因为大多数时候都是增删改查,没有什么特别的逻辑。

这其实是我第一次参加这种会议,因为此前自己粗浅的认为,会议没有什么意义,一天能学什么?所以都没有怎么参加,但这次参加感觉很不错,认识了几位新朋友,开阔了一下眼界,这就是会议的意义。

最后,感谢你的阅读,如果内容对你有点帮助,麻烦点一下「好看」,那是可以点击的,谢谢。

PyConChina 2019 深圳站之行相关推荐

  1. DTC 2019 数据技术嘉年华·金融峰会(深圳站)来袭

    全球数字化时代已经到来,金融服务已开启数字化革命的大门,面对行业竞争格局的改变,金融企业必需主动适应市场变化,积极拥抱新兴技术,推进科技引领创新发展. 为此,云和恩墨和招商银行将于在2019年6月28 ...

  2. HDZ城市行深圳站|AIoT时代,如何抓住智联生活的战略机会点?

    摘要:2021年12月24日,HDZ城市行深圳站:AIoT引爆全场景应用新机会(智联生活专场)圆满落幕. 2021年12月24日,HDZ城市行深圳站:AIoT引爆全场景应用新机会(智联生活专场)圆满落 ...

  3. 精彩回顾 | 阿里云APM城市技术行·深圳站

    " 前端业务越来越丰富,底层架构越来越复杂,计算资源越来越多元化,单一的APM产品如何支撑构建云上应用的完整监控体系,保障平台的稳定性?近期在深圳举行的阿里云APM城市技术行活动给出了答案. ...

  4. 火力重点转移,openstack中国行(深圳站)推出,各站欢迎讲师报名呀!

    云计算开源软件OpenStack由于其良好的架构和彻底的开放性,目前正受到IT行业各个领域广泛的支持和关注,不论是从社区活跃度.开发者数量还是从厂商支持的情况来看,都远超同类开源产品,被誉为云计算领域 ...

  5. 2019数据技术嘉年华·金融峰会(深圳站)相约6.28

    全球数字化时代已经到来,金融服务已开启数字化革命的大门,面对行业竞争格局的改变,金融企业必需主动适应市场变化,积极拥抱新兴技术,推进科技引领创新发展.为此,云和恩墨和招商银行将于在2019年6月28日 ...

  6. DTC 2019 数据技术嘉年华·金融峰会(深圳站)来袭,直面架构君

    全球数字化时代已经到来,金融服务已开启数字化革命的大门,面对行业竞争格局的改变,金融企业必需主动适应市场变化,积极拥抱新兴技术,推进科技引领创新发展. 为此,云和恩墨和招商银行将于在2019年6月28 ...

  7. 转发抽奖!蚂蚁区块链创新大赛深圳站报名进行中

    泡沫出清,价值回归. 2018年,区块链从巅峰跌到低谷,众多项目估值大幅缩减,创业者和投资人的态度随之从过度狂热到极度悲观. 然而,正如90年代互联网浪潮破灭之后的涅槃重生一样,区块链正在回归理性,商 ...

  8. 人机交互掌控未来!2019深圳国际全触与显示展领航触控显示行业新风尚

    从摩托罗拉CD928+手机使用第一块单色屏,到如今华为荣耀智慧超清屏如日中天,人类迄今为止最为高精尖的工业产品之一触控屏,在经历了无数次迭代与创新后,正成为各国工业制造的必争之地.现在,这块方寸间的智 ...

  9. 限时免费报名丨网易新消费CXO论坛 - 深圳站

    网易.抖音.顺丰.唯品会.超级猩猩等名企 CXO 深度分享2019商业创新实践及前沿趋势思考 共同探讨数据.智能等新技术力量,如何驱动商业模式变革 2019.7.13 『 网易新消费CXO论坛 - 深 ...

  10. 12.04 深圳站 | Serverless Developer Meetup 开放报名

    简介:Serverless Developer Meetup 深圳站来啦! 继 2021 北京.上海.杭州站成功举办后,这一次"最适合中国开发者的 Serverless 实操沙龙" ...

最新文章

  1. 宝塔面板 mysql装不上_宝塔面板强制安装mysql8.0
  2. 表达不同与构建不同: 对计算机的唯一真正的要求 (TrustNo.1 ) -- 待修改!!!...
  3. Dubbo-go 发布 1.5 版,朝云原生迈出关键一步
  4. python中break、continue 、exit() 、pass终止循环的区别
  5. 【CSS3】table的css属性
  6. ubuntu下面的java一键运行脚本
  7. 【redis】在windos下的redis服务器的搭建
  8. Wireshark抓包分析TCP建立/释放链接的过程以及状态变迁分析
  9. 【译】Tim Rose 的kibana插件教程-自定义App插件
  10. 【实用工具】GLIBC降级
  11. 微博回应用户被“劫持”;途牛否认破产清算;微软宣布开源 MsQuic | 极客头条...
  12. 51单片机温控风扇仿真原理图 C语言程序,51单片机温控风扇仿真原理图+C语言程序与实物制作...
  13. Linux嵌入式开发必读推荐书籍
  14. r语言和rstudio_R和RStudio简介
  15. sql server 导入excel数据表
  16. html密码框ml表单文本框,表单组件 PasswordInput 密码输入框 - 闪电教程JSRUN
  17. Source Insight 4.0 序列号 license文件
  18. mysql 发生系统错误1067的解决方法
  19. OpenGL显示窗口重定形函数
  20. 探岳android auto,“本是同根生”它俩谁最优 柯迪亚克 VS 探岳

热门文章

  1. S7-200PLC寄存器寻址
  2. 计算机专业课科目,考研计算机专业课科目有哪些
  3. Linux加密框架中的算法和算法模式(二)
  4. python自动添加微信好友_Python实现微信自动通过好友申请并发送加群链接!
  5. 6个免抠素材网站,免费可商用
  6. 使用EasyUI固定表格的行或列
  7. linux内核 精简 编译,精简LINUX内核配置及快速编译的方法收集
  8. php css下划线,css怎么去掉下划线
  9. Frank-wolfe算法多OD对matlab实现
  10. LabVIEW编程规范