├── .eslintrc.json ├── .gitignore ├── .prettierrc ├── Dockerfile ├── LICENSE ├── README.md ├── components ├── TextPage.tsx ├── footer.tsx ├── layout.tsx ├── nav.tsx └── speaker.tsx ├── data ├── contents │ ├── about.en.md │ ├── about.md │ ├── cfp.en.md │ ├── cfp.md │ ├── coc.en.md │ ├── coc.md │ ├── joinus.md │ ├── video-guide.en.md │ └── video-guide.md ├── index.en.yaml ├── index.yaml ├── schedule.en.yaml ├── schedule.yaml └── staff.yaml ├── i18n ├── index.js ├── translations.en.json └── translations.zh.json ├── next-env.d.ts ├── next.config.js ├── package.json ├── pages ├── 404.tsx ├── [md].tsx ├── _app.tsx ├── _document.tsx ├── index.tsx ├── schedule.tsx ├── staff.tsx └── talks │ └── [id].tsx ├── public ├── assets │ ├── PyConChina-templates.zip │ ├── images │ │ ├── bgtext.png │ │ ├── cfp.jpg │ │ ├── cover.png │ │ ├── logo2021.png │ │ ├── pybg1.jpg │ │ ├── pybg2.png │ │ ├── pyconcn2020.png │ │ ├── title.png │ │ └── volunteers_banner.jpg │ ├── people │ │ ├── Aber.jpg │ │ ├── DaiShaofei.jpg │ │ ├── EvgenyDemchenko.jpg │ │ ├── Ewa.jpg │ │ ├── FrostMing.jpg │ │ ├── GeertHeyman.jpg │ │ ├── GuMengjia.jpg │ │ ├── GuSiwei.jpg │ │ ├── HuYuanming.jpg │ │ ├── KinfeyLo.jpg │ │ ├── LaiqiangDing.jpg │ │ ├── LiFeng.jpg │ │ ├── LiZheao.png │ │ ├── LomisChen.jpg │ │ ├── LvShaogang.webp │ │ ├── MengFanchao.jpg │ │ ├── PanJunyong.jpg │ │ ├── ShuaiJinchao.jpg │ │ ├── SongCongwei.jpg │ │ ├── Students.png │ │ ├── Taichi.jpg │ │ ├── TanXiao.jpg │ │ ├── WangBinxin.png │ │ ├── WangBo.jpg │ │ ├── WangHailiang.jpg │ │ ├── WangHao.jpg │ │ ├── WangNan.jpg │ │ ├── WuJingjing.jpg │ │ ├── WuShuai.jpg │ │ ├── XiaoHan.jpg │ │ ├── XinQing.jpg │ │ ├── Yingshaoxo.jpg │ │ ├── Yufangye.jpg │ │ ├── ZhangAiling.jpg │ │ ├── ZhangJintao.jpg │ │ ├── ZhaoRuofei.jpg │ │ ├── ZhaoXin.jpg │ │ ├── ZhuXingliang.jpg │ │ ├── anonymous.jpg │ │ ├── ewa.jpg │ │ ├── lifeng.jpg │ │ ├── wangbinxin.png │ │ └── zhangxing.jpg │ ├── pycon_guide_full_en.pdf │ ├── pycon_guide_full_zh.pdf │ ├── sponsors │ │ ├── azure.jpg │ │ ├── csdn.png │ │ ├── dajie.png │ │ ├── freecodecamp.png │ │ ├── helloflask.png │ │ ├── huodongxing.png │ │ ├── jina.png │ │ ├── juchiyun.png │ │ ├── neo4j.jpg │ │ ├── pychina.png │ │ ├── pythonhunter.png │ │ ├── reactor.png │ │ ├── segmentfault.png │ │ ├── taichi.png │ │ ├── turing.png │ │ ├── vscodecn.png │ │ └── zhusanjiaoshalong.png │ └── sponsorship.pdf ├── calendar.ics └── logo.png ├── styles ├── global.scss └── override.scss ├── tools └── genCalendar.js ├── tsconfig.json ├── utils └── index.tsx └── yarn.lock /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # next.js 12 | /.next/ 13 | /out/ 14 | 15 | # production 16 | /build 17 | 18 | # misc 19 | .DS_Store 20 | *.pem 21 | 22 | # debug 23 | npm-debug.log* 24 | yarn-debug.log* 25 | yarn-error.log* 26 | 27 | # local env files 28 | .env.local 29 | .env.development.local 30 | .env.test.local 31 | .env.production.local 32 | 33 | # vercel 34 | .vercel 35 | .vscode/ 36 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "arrowParens": "always", 3 | "bracketSpacing": true, 4 | "endOfLine": "lf", 5 | "htmlWhitespaceSensitivity": "css", 6 | "insertPragma": false, 7 | "jsxBracketSameLine": false, 8 | "jsxSingleQuote": false, 9 | "printWidth": 100, 10 | "proseWrap": "preserve", 11 | "quoteProps": "as-needed", 12 | "requirePragma": false, 13 | "semi": true, 14 | "singleQuote": true, 15 | "tabWidth": 2, 16 | "trailingComma": "es5", 17 | "useTabs": false, 18 | "vueIndentScriptAndStyle": false 19 | } 20 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | # Install dependencies only when needed 2 | FROM node:14-alpine AS deps 3 | # Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed. 4 | RUN apk add --no-cache libc6-compat 5 | WORKDIR /app 6 | COPY package.json yarn.lock ./ 7 | RUN yarn install --frozen-lockfile 8 | 9 | # Rebuild the source code only when needed 10 | FROM node:14-alpine AS builder 11 | WORKDIR /app 12 | COPY . . 13 | COPY --from=deps /app/node_modules ./node_modules 14 | RUN yarn build 15 | 16 | # Production image, copy all the files and run next 17 | FROM node:14-alpine AS runner 18 | WORKDIR /app 19 | 20 | ENV NODE_ENV production 21 | 22 | RUN addgroup -g 1001 -S nodejs 23 | RUN adduser -S nextjs -u 1001 24 | 25 | # You only need to copy next.config.js if you are NOT using the default configuration 26 | # COPY --from=builder /app/next.config.js ./ 27 | COPY --from=builder /app/public ./public 28 | COPY --from=builder --chown=nextjs:nodejs /app/.next ./.next 29 | COPY --from=builder /app/node_modules ./node_modules 30 | COPY --from=builder /app/package.json ./package.json 31 | 32 | USER nextjs 33 | 34 | EXPOSE 3000 35 | 36 | # Next.js collects completely anonymous telemetry data about general usage. 37 | # Learn more here: https://nextjs.org/telemetry 38 | # Uncomment the following line in case you want to disable telemetry. 39 | # ENV NEXT_TELEMETRY_DISABLED 1 40 | 41 | CMD ["yarn", "start"] 42 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Frost Ming 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PyCon China 2021 官方网站 2 | 3 | 4 | ## 说明 5 | 6 | 本项目基于 Next.js 开发 7 | 8 | ## 系统需求 9 | 10 | - Node.js 12.0 或以上 11 | - 支持 MacOS、Windows (包括 WSL)以及 Linux 12 | 13 | ## 开发 14 | 15 | ```bash 16 | # 安装依赖 17 | yarn install 18 | # 启动本地开发服务器 19 | yarn dev 20 | ``` 21 | 22 | 使用浏览器访问 http://localhost:3000 23 | 24 | **注意:推送提交至 main 分支将会触发持续集成,部署至正式服务器。** 25 | 26 | ## 数据说明 27 | 28 | `data/` 目录下包含一些数据文件方便修改: 29 | 30 | - `index.yaml` 首页数据 31 | - `schedule.yaml` 时间表 32 | - `staff.yaml` 工作人员名单 33 | - `contents/` 对应页面的 Markdown 文档 34 | - `meetup/` Meetup 页面的 Markdown 文档 35 | - `locales/` 翻译文件 36 | 37 | (文件名带 `.en` 的为英文翻译文件) 38 | -------------------------------------------------------------------------------- /components/TextPage.tsx: -------------------------------------------------------------------------------- 1 | import ReactMarkdown from 'react-markdown'; 2 | import rehypeRaw from 'rehype-raw'; 3 | import remarkGfm from 'remark-gfm'; 4 | 5 | const TextPage = ({ children }: { children: string }) => ( 6 |
7 |
8 | 9 | {children} 10 | 11 |
12 |
13 | ); 14 | 15 | export default TextPage; 16 | -------------------------------------------------------------------------------- /components/footer.tsx: -------------------------------------------------------------------------------- 1 | import { useTranslation } from 'next-export-i18n'; 2 | 3 | const Footer = function () { 4 | const { t } = useTranslation(); 5 | return ( 6 |
7 |
8 |

© 2021 PyCon China

9 |
10 | 17 | 18 | 19 | 20 | 21 | 28 | 29 | 30 | 31 | 32 | 39 | 40 | 41 | 42 | 43 | 50 | 51 | 52 | 53 | 54 | 61 | 62 | 63 | 64 | 65 |
66 |

67 | 68 | {t('contact-us')} 69 | 70 | 76 | {t('report-bugs')} 77 | 78 |

79 |
80 |
81 | ); 82 | }; 83 | 84 | export default Footer; 85 | -------------------------------------------------------------------------------- /components/layout.tsx: -------------------------------------------------------------------------------- 1 | import { motion } from 'framer-motion'; 2 | import { useTranslation } from 'next-export-i18n'; 3 | import { NextSeo } from 'next-seo'; 4 | 5 | const variants = { 6 | hidden: { opacity: 0, x: -200, y: 0 }, 7 | enter: { opacity: 1, x: 0, y: 0 }, 8 | }; 9 | 10 | const Layout = function ({ children, title }: { children: React.ReactNode; title: string }) { 11 | const { t } = useTranslation(); 12 | return ( 13 | <> 14 | 18 | 25 | {children} 26 | 27 | 28 | ); 29 | }; 30 | 31 | export default Layout; 32 | -------------------------------------------------------------------------------- /components/nav.tsx: -------------------------------------------------------------------------------- 1 | /* eslint-disable @next/next/no-img-element */ 2 | import Link from 'next/link'; 3 | import { useEffect, useState } from 'react'; 4 | import cn from 'classnames'; 5 | import { useRouter } from 'next//router'; 6 | import { useTranslation, useLanguageQuery, LanguageSwitcher, useSelectedLanguage } from 'next-export-i18n'; 7 | 8 | const range = (start: number, end: number): number[] => { 9 | return Array.from({ length: end - start + 1 }, (_, i) => i + start); 10 | }; 11 | 12 | const Nav = function () { 13 | const [active, setActive] = useState(false); 14 | const router = useRouter(); 15 | const { t } = useTranslation(); 16 | const [query] = useLanguageQuery(); 17 | const { lang } = useSelectedLanguage(); 18 | 19 | const langSwitch = lang === 'en' ? 'zh' : 'en'; 20 | 21 | useEffect(() => { 22 | const handleRouteChange = () => { 23 | setActive(false); 24 | }; 25 | router.events.on('routeChangeComplete', handleRouteChange); 26 | return () => { 27 | router.events.off('routeChangeComplete', handleRouteChange); 28 | }; 29 | }, [router.events]); 30 | 31 | return ( 32 | 176 | ); 177 | }; 178 | 179 | export default Nav; 180 | -------------------------------------------------------------------------------- /components/speaker.tsx: -------------------------------------------------------------------------------- 1 | import Link from 'next/link'; 2 | import { useLanguageQuery } from 'next-export-i18n'; 3 | 4 | /* eslint-disable @next/next/no-img-element */ 5 | export type SpeakerType = { 6 | avatar?: string; 7 | speaker: string; 8 | desc: string; 9 | company: string; 10 | title: string; 11 | slug: string; 12 | }; 13 | 14 | export const defaultAvatar = '/2021/assets/people/anonymous.jpg'; 15 | 16 | export default function Speaker(props: SpeakerType) { 17 | const [query] = useLanguageQuery(); 18 | return ( 19 | 20 | 21 |
22 |
23 | {props.speaker} 24 |
25 |
26 |
27 |

{props.speaker}

28 |

{props.company}

29 |

{props.title}

30 |
31 | 50 |
51 | 52 | ); 53 | } 54 | -------------------------------------------------------------------------------- /data/contents/about.en.md: -------------------------------------------------------------------------------- 1 | # PyCon China 2 | 3 | --- 4 | 5 | Most of 2021 has passed, and most of it has passed in a blink of an eye. We have experienced many things together. Fight COVID-19 together, cheer for the athletes in the Tokyo Olympics, work hard for your future, and share your achievements with your family happily together. 6 | 7 | In the year that is about to end, you must have a lot of gains, and you must also have a lot of questions. You must want to have an opportunity for you and like-minded friends in the community to get together and share your experiences with each other. 8 | 9 | So, PyCon China 2021 is here! As in previous years, we will, as always, bring you a wonderful presentation conference this year, let us enjoy the joy and happiness that Python brings to us. 10 | 11 | This year is the eleventh year of PyCon China. In the past ten years, we have gained a lot of recognition. We have also become one of the most influential Python conferences in the world. In the next ten years, we will, as always, maintain our original intention and continue to serve everyone better. 12 | 13 | There is an old saying that “a conference is not a matter of one person, but a group of people”, so here we welcome every student who loves the Python community to join us, participate in our work, and let us make this year’s conference together Become a Dream Conference! Yes, we need you! 14 | -------------------------------------------------------------------------------- /data/contents/about.md: -------------------------------------------------------------------------------- 1 | # PyCon China 2 | 3 | --- 4 | 5 | 2021 年转眼间已经过去大半,我们一起经历了许许多多的事情。一起为河南祈祷,一起为东京奥运上的中国军团欢呼,一起为了更好的自己努力工作,一起开心地和家人分享自己的成就时刻。 6 | 7 | 夏去秋来,你一定有很多的收获,你也一定有很多的疑问。你一定想有一个机会,让你和社区志同道合的朋友共聚一堂,一起分享这一年彼此的经验。 8 | 9 | **所以,PyCon China 2021 来啦!** 10 | 11 | 划重点: \ 12 | 时间:2021.10.16~2021.10.17 \ 13 | 方式:线上会议 14 | 15 | PyCon China 2021 于 2021 年 10 月 16 - 17 日采用线上的方式与大家见面!如同往年一样,我们将一如既往地为大家带来一场精彩纷呈的大会,让我们尽情地享受 Python 带给大家的喜悦与快乐。 16 | 17 | 今年是 PyCon China 第十一年,在过去的十年中,我们收获了许许多多的认可。我们也成为了世界范围内最具影响力的 Python 会议之一。而在接下来的十年里,我们会一如既往地,保持初心,继续更好地连结大家。 18 | 19 | 有句老话叫“一个大会不是一个人的事,而是一群人的事”,在这里,我们诚挚邀请每一位热爱 Python 社区的同学加入我们,一起举办又一场 Python 开发者自己的 PyCon ! 20 | 21 | **We need you!** 22 | 23 | 2020 年,我们迎来了 PyCon China 的第一个十年![第十届 Python 开发者大会 PyCon China 2020](https://mp.weixin.qq.com/s?__biz=MzA4ODIzMDkyNQ==&tempkey=MTEyOF9rS3hPN3R2M3Q5QUc4S1ZNWlZ4RmNtdk9odUdyRDNsMUVvZnV5TjNhaGFNYkJjbXgydmtEVldKQnhKYnZxMEliWlNCalhiS0tFYXBELS1PZ2NfS3lNMG1VUHhDYko2YVd2ZlRRbDM5MkM4bUNjRG5qLUtTdFdMelVvZFdZVzNPLVdtdjNRT0tTRkhHZS1RMTNDaGl3MHBTYkJVdVpORVpnMWtNWnVBfn4%3D&chksm=07a96f7230dee6643540b2cd38354faca070b786ac09b6e166f982e3efd5e55bd35e41141901#rd) 于 2020.11.28 - 29 日采用线上分享 + 上海/北京/深圳三个城市线下分享的方式成功举办,为全国各地的 Pythonista 献上了一场精彩的 Python 盛会。 24 | 25 | ![PyCon China 2020](/2021/assets/images/pyconcn2020.png) 26 | 27 | 本届峰会累计覆盖 50w+ 人次,注册报名的开发者有 1252 人,有 300+ Python 爱好者到场参会,来自全国的 100 余位志愿者参与了大会的志愿工作。思否平台访问量 281913 余次,CSDN 合计人气值达 334340,是一次全新的线上 + 线下的 Python 盛会! 28 | -------------------------------------------------------------------------------- /data/contents/cfp.en.md: -------------------------------------------------------------------------------- 1 | ![cfp](/2021/assets/images/cfp.jpg) 2 | 3 | # Call For Papers 4 | 5 | --- 6 | 7 | We welcome all kinds of presentation related to Python, including artificial intelligence, Python features, network security, server development, operation and maintenance, medical treatment, finance, open source projects and other fields. We also welcome any lightning talks that are helpful to developers. 8 | 9 | ## Speech category 10 | 11 | - Keynote speech (35-45 minutes) 12 | - Lightning speech (10 minutes) 13 | 14 | ## Speech content review standard 15 | 16 | - Whether the point of view of the applicant’s speech is clear, whether the content described is attractive, and whether it helps the audience to accumulate knowledge and experience; 17 | - The content of the applicant’s speech should be based on actual practice and help the audience to dig out the content from the speech; the audience’s possible gains from the speech sharing are of the greatest concern to the organizing committee, which is also an important aspect of this PyCon China significance; 18 | - The organizing committee welcomes Pythonistas who have certain achievements and experience in the corresponding field to submit topics and share their practical experience and opinions; 19 | - PyCon China pays attention to dry goods sharing and experience exchange. Please do not try to make any form of advertising during the speech. 20 | 21 | ## Speaker Benefits 22 | 23 | - PyCon China 2021 commemorative gift packs. 24 | 25 | At the same time, interested partners are welcome to apply to become members of the conference organizing committee and participate in a PyCon China in your mind! 26 | 27 | [**Video Guide**](/2021/en/video-guide) 28 | 29 |

Click to apply

30 | -------------------------------------------------------------------------------- /data/contents/cfp.md: -------------------------------------------------------------------------------- 1 | ![cfp](/2021/assets/images/cfp.jpg) 2 | 3 | # 议题申请 4 | 5 | --- 6 | 7 | 我们欢迎泛 Python 相关的各类投稿,包括在人工智能、Python 特性、网络安全、服务端开发、运维、医疗、金融、开源项目等领域。我们也非常欢迎内容任何对开发者有帮助的闪电演讲。 8 | 9 | ## 演讲类别 10 | 11 | - 主题演讲(35 分钟分享 + 5 分钟在线 Q&A) 12 | - 闪电演讲(10 分钟) 13 | 14 | ## 演讲内容审核标准 15 | 16 | - 申请人演讲的观点是否明确,所阐述的内容是否吸引人,是否有助于听众在知识和经验方面的积累; 17 | - 申请人的演讲内容,需以落地实践为出发点,并有助于听众从演讲中挖掘出内容;听众在演讲分享中可能的收获是组委会最关注的,这也是本次 PyCon China 举办的重要意义; 18 | - 组委会非常欢迎在相应领域有一定成就和从业经验的 Pythonista 提交主题,分享自己的实战经验和观点; 19 | - PyCon China 注重干货分享和经验交流,请不要试图在演讲时做任何形式的广告。 20 | 21 | ## 重要日期 22 | 23 | - 主题演讲和闪电演讲征稿时间:2021 年 9 月 2 日-2021 年 10 月 2 日 24 | - 会议举办时间:2021 年 10 月 16 日-10 月 17 日 25 | 26 | ## 讲师福利 27 | 28 | - PyCon China 2021 纪念周边礼包 29 | 30 | 欢迎申报演讲主题,大会组委会将评审后给予答复。同时欢迎有意向的伙伴,申请成为大会组委会成员,一起举办一场你心中的 PyCon China 大会! 31 | 32 | [**视频录制说明**](/2021/video-guide) 33 | 34 |

点此申请

35 | -------------------------------------------------------------------------------- /data/contents/coc.en.md: -------------------------------------------------------------------------------- 1 | # Code of Conduct 2 | 3 | --- 4 | 5 | PyCon China is a community organized conference intended for advocating the use and adoption of the Python programming language in China. It is also a platform for fostering networking and collaboration among the Python developer community in China. We value the participation of every member of the Python community and want all attendees to have an enjoyable and rewarding experience. Accordingly, every attendee of the conference is expected to show respect and courtesy to every other attendee throughout the conference and at all conference related events, whether officially organized by PyCon China or not. To make clear what is expected, all delegates/attendees, speakers, exhibitors, organizers and volunteers at PyCon China are required to conform to the following Code of Conduct. Organizers will enforce this code throughout the event. 6 | 7 | ## Our Rules 8 | 9 | PyCon China is dedicated to providing a harassment-free conference experience for everyone, regardless of age, gender, sexual orientation, physical appearance, disability, race, religion or employment. 10 | 11 | Harassment includes offensive verbal comments related to gender, sexual orientation, disability, physical appearance, body size, race, religion, sexual images in public spaces, deliberate intimidation, stalking, following, harassing photography or recording, sustained disruption of talks or other events, inappropriate physical contact, and unwelcome sexual attention. We have zero tolerance on harassment of conference participants in any form, including, but not limited to the activities mentioned here. 12 | 13 | Participants asked to stop any harassing behavior are expected to comply immediately. 14 | 15 | Exhibitors in the expo hall, sponsor or vendor booths, or similar activities are also subject to the anti-harassment policy. In particular, exhibitors should not use sexualized images, activities, or other material. Booth staff (including volunteers) should not use sexualized clothing/uniforms/costumes, or otherwise create a sexualized environment. 16 | 17 | All communication should be appropriate for a professional audience, including people from many different backgrounds. Sexual language or imagery is inappropriate for all aspects of the conference, including talks. Remember that sexist, racist or any other form of exclusionary or offensive jokes or excessive public swearing are not appropriate at any venue of PyCon China. 18 | 19 | Do not insult or put down attendees or engage in any action that violates the open, welcoming and sharing spirit of the conference. Be kind and sensitive to the people around you when you are attending the conference, and avoid any kind of offensive or degrading behavior. 20 | 21 | If a participant engages in behavior that violates this code of conduct, the conference organizers may take any action they deem appropriate, including warning the offender or expulsion from the conference with no refund. 22 | 23 | Thank you for helping to make PyCon China a welcoming, friendly event for all. 24 | 25 | ## Contact Information 26 | 27 | If you are being harassed, notice that someone else is being harassed, or have any other concerns, please contact an Organizer. Organizer/Volunteer name will be highlighted with the Organizer tag in Hopin Platform or drop an email to report@in.pycon.org. Read more about it in our Reporting Guide 28 | 29 | You may also ask to be put in touch with the Diversity and Inclusion WG chair‚ Sukanya Mandal. 30 | 31 | If the matter is especially urgent, please call/contact any of these individuals: 32 | 33 | - Cynthia Xin \ 34 | Tel / Wechat: (+86)185 1609 4658 \ 35 | Email: 36 | 37 | ## License 38 | 39 | This Code of Conduct was forked from PSF Code of Conduct by Python Software Foundation which is under a Creative Commons Attribution 3.0 Unported License. PyCon China Conference Code of Conduct is licensed under a Creative Commons Attribution 3.0 Unported License. 40 | -------------------------------------------------------------------------------- /data/contents/coc.md: -------------------------------------------------------------------------------- 1 | # 行为准则 2 | 3 | --- 4 | 5 | PyCon China 是一个社区组织的会议,旨在倡导 Python 编程语言在中国的使用和应用。它也是一个促进中国 Python 开发者社区之间交流和合作的平台。我们重视 Python 社区每位成员的参与,并希望所有与会者都能有一个愉快和有意义的经历。因此,在整个会议期间和所有与会议相关的活动中,每位参会者都应该对其他参会者表示尊重和礼貌,无论是否由 PyCon China 正式组织。我们明确期望,所有参加 PyCon China 的代表/参会者、演讲者、参展商、组织者和志愿者都必须遵守以下行为准则。组织者将在整个活动期间强制执行该守则。 6 | 7 | ## 我们的准则 8 | 9 | PyCon 致力于为每个人提供积极的会议体验,无论年龄、性别认同和表现、性取向、残疾、外貌、体型、民族、国籍、种族或宗教(或没有宗教)、教育或社会经济地位。 10 | 11 | 骚扰包括与性别、性取向、残疾、外貌、体型、种族、宗教有关的攻击性口头评论,公共场所的性图像,故意恐吓、跟踪、跟随、骚扰性摄影或录音,持续干扰会谈或其他活动,不适当的身体接触,以及不受欢迎的性关注。我们对任何形式的会议参与者的骚扰行为持零容忍态度,包括但不限于这里提到的活动。 12 | 13 | 如被要求,应立即停止任何不适当行为。 14 | 15 | 会场的参展商、赞助商或供应商展位或类似活动也要遵守反骚扰政策。特别地,参展商不应使用性化的图像、活动或其他材料。展位工作人员(包括志愿者)不应使用性化的服装、制服、服饰,或以其他方式创造一个性化的环境。 16 | 17 | 所有的交流都应该适合专业观众,包括来自许多不同背景的人。性语言或图像不宜出现在会议的所有活动中,包括会谈。请记住,性别歧视、种族主义或任何其他形式的排他性或攻击性笑话或过度的公开脏话不宜出现在 PyCon China 的任何场所。 18 | 19 | 请勿侮辱或贬低与会者,以及任何违反会议的开放、欢迎和分享精神的行为。在参加会议时,要善待和体谅周围的人,并避免任何形式的攻击性或有辱人格的行为。 20 | 21 | 如果与会者有违反本行为准则的行为,会议组织者可以采取任何他们认为适当的行动,包括警告违规者或将其开除出会议,并不退还费用。 22 | 23 | 感谢你的帮助,使得 PyCon China 成为一个对所有人都友好的活动。 24 | 25 | ## 联系方式 26 | 27 | 如果您认为有人在 PyCon 活动期间违反了行为准则,或者有任何其他担忧,请立即联系活动工作人员。 28 | 29 | 会议工作人员将很乐意帮助与会者联系酒店/场地保安或当地执法部门,提供护送服务,或以其他方式协助任何与会者在会议期间感到安全。我们重视您的出席。 30 | 31 | 如果事情特别紧急,请打电话联系这些人中的任何一个: 32 | 33 | - 辛庆(Cynthia Xin) \ 34 | 电话 / 微信号:185 1609 4658 \ 35 | Email: 36 | 37 | ## 许可证 38 | 39 | 本行为准则是由 Python 软件基金会的 PSF 行为准则衍生而来,该准则采用 CC 3.0 Unported 许可证。本行为准则亦采用 CC 3.0 Unported 许可协议进行许可。 40 | -------------------------------------------------------------------------------- /data/contents/joinus.md: -------------------------------------------------------------------------------- 1 | ![volunteers banner](/2021/assets/images/volunteers_banner.jpg) 2 | 3 | --- 4 | 5 | Hi,小伙伴们 6 | 7 | PyCon China 2021 来啦! 8 | 如同往年一样,我们今年将一如既往地为大家带来一场精彩纷呈的大会,让我们一起继续尽情地享受 Python 带给我们的喜悦与快乐。 9 | 10 | 今年是 PyCon China 第十一年,在过去的十年中,我们收获了许许多多的认可。我们也成为了世界范围内最具影响力的 Python 会议之一。而在接下来的十年里,我们会一如既往地,保持初心,继续更好地连结大家。 11 | 12 | 有句老话叫“一个大会不是一个人的事,而是一群人的事”,在这里,我们诚挚邀请每一位热爱 Python 社区的同学加入我们,一起举办又一场 Python 开发者自己的 PyCon ! 13 | 14 | 大会时间及方式: 15 | 时间:2021.10.16-2021.10.17 16 | 17 | 会议方式:由于疫情原因,PyCon China 2021 将采用的“线下 Party+线上直播分享”的形式,目前已确定在北京、上海、深圳同步举办线下 Pythonista Party,其他城市小伙伴如果有举办的兴趣,欢迎联系我们沟通(微信:CynthiaXin1),我们将会给予一定支持。 18 | 19 | 同时我们希望在本次 PyCon 之后开启 Python 之旅 活动:欢迎大家在自己的城市举办 Python 开发者活动(meetup、workshop 均可),目前规划中的城市有北京、上海、深圳,如果您有兴趣也欢迎在本表中填写意向。 20 | 21 | PyCon China 2021 & Python 之旅 志愿者招募正式开启,We need you! 22 | 23 | **您可以志愿参与:** 24 | 25 | 1. 大会现场会务 26 | 2. 会前准备 27 | 3. 媒体运营 28 | 4. 大会官网建设 29 | 5. 摄影 30 | 6. 翻译 31 | 32 | 等 33 | 34 | **您获得的相关福利:** 35 | 36 | 1. 丰富有趣的社区及大会活动经历; 37 | 2. 大会 T 恤等纪念礼品; 38 | 3. 官网留名; 39 | 4. PyCon China 2021 志愿者证书。 40 | 41 | **如何加入我们:**[点此链接申请](https://jinshuju.net/f/TNFeKL) 42 | -------------------------------------------------------------------------------- /data/contents/video-guide.en.md: -------------------------------------------------------------------------------- 1 | # PyCon China 2021 Video Guide 2 | 3 | --- 4 | 5 | >This guide is a simplified version,  which aims to let you quickly understand the recording rules and important matters. For more detailed guide, please download: [full_recording_guide](/2021/assets/pycon_guide_full_en.pdf) 6 | 7 | ## Step 1: Make a presentation slide 8 | 9 | Please use the official template for PPT making: 10 | 11 | PPT template download: 12 | 13 | PyConChina-templates.zip 14 | 15 | - Keynote recording time is not more than 30 minute 16 | - Session recording time is not more than 40 minute 17 | 18 | ## Step 2: Equipment/environment preparation before recording 19 | 20 | Pay attention to 5 key points: 21 | 22 | 1. Computer resolution 1920\*1080 in accordance with the aspect ratio Windows (16:9) or Mac (16:10) 23 | 2. Close all irrelevant software or windows in advance, especially those with pop-up windows, to ensure that there is no personal or business privacy information on the desktop or relevant interface, and no other third-party logo 24 | 3. To share the code, it is recommended that: 25 | 1. Increase the font size, the standard is when the code editor is set to full screen, the code behavior is 20-22 lines 26 | 2. IDE can only use white background or black background 27 | 4. A good appearance. If earphones are needed, earmuffs are not recommended. Please use wireless earphones as much as possible. 28 | 5. Please record your video in a quiet environment like a conference room or negotiate with the people around in advance to make sure there is no noise, personnel interference, frequent personnel walking and so on during the recording. 29 | 30 | ## Step 3: Rehearse before recording 31 | 32 | 1. It is recommended that you carry out several rehearsals before the official recording, with the slides file for the presentation, to repeat the incoherent and un-fluent parts of it, and to revise the slides in time if there are any logical irregularities or mistakes. 33 | 2. f it is possible, we suggest that you ask your colleagues, family members or even professionals to rehearse twice and ask them to give some advice as audiences. 34 | 3. **Before the official recording, you can simply record a paragraph and check the effect first: whether the output is correct, whether the voice is normal and whether the image and temperament are good. These are very important, please make sure all of these problems before it is all done.** 35 | 36 | ## Step 4:  Official recording 37 | 38 | ### 4.1 Basic rules 39 | 40 | 1. Keep your upper body properly in the middle of the screen, not too close or too far, such as the face close to the screen, the screen is almost occupied by the face, or all above your knees are in the screen. 41 | 2. During the speech, make your eyes pay attention to the direction of the camera and have the feeling of looking at the audience. 42 | 3. During the recording, your materials should be displayed on the full screen, and your own avatars should be displayed on the small screen in the upper right corner. If there are other participants, please hide them (if others do not open the video, please go to "Settings" >"Video" >"Meeting", select "Hide Non-video Participants" to hide participants who do not use video). **The final effect can be as follows in two ways**: 43 | 44 | ![recording1](/2021/assets/images/pybg1.jpg) 45 | 46 | ![recording2](/2021/assets/images/pybg2.png) 47 | 48 | 4. Because there is no audience interaction, you could not get the feedback like live speech, so you must always pay attention to your voice-speed, rhythm and passion. 49 | 5. Grasp the time. Please complete within the specified time. 50 | 51 | ### 4.2 Recording tools 52 | 53 | We recommend using ZOOM to recording, for the ZOOM tutorial, see the download file in this article head/end. 54 | 55 | It will be okay if you have other tools that can achieve the similar effect. 56 | 57 | ## Step 5: Pre-delivery check 58 | 59 | 1. Name the video in the following format: Your name-Topic of your speech-Name of Track (e.g. JunxuChen- Speed limiting with Apache APISIX - API/Microservice) 60 | 2. Check the sound quality, there can be a current floor noise, but no obvious noise (e.g. flipping books, dragging chairs, car horns, birds chirping, etc.) 61 | 3. Check that the picture is 1920\*1080 pixels and that the ratio is windows16:9 or mac16:10. 62 | 4. The video frame rate is not less than 30fps (right click on the mouse and check “Details” in “Properties”) and the picture must not be jagged or faint. 63 | 64 | ## Step 6: Video delivery 65 | 66 | Once the self-test properties are met, please upload the video to a web drive and send the link to: **jamiexu@python-china.org.cn** 67 | 68 | We will provide you with feedback on any problems with the video, so please correct them if necessary. 69 | 70 | For more detailed guide, please download : [full_recording_guide](/2021/assets/pycon_guide_full_en.pdf) 71 | -------------------------------------------------------------------------------- /data/contents/video-guide.md: -------------------------------------------------------------------------------- 1 | # PyCon China 2021 视频录制说明 2 | 3 | --- 4 | 5 | > 本指导是精简版本,旨在让大家快速了解录制的规则及重要事项,需要更详细的操作指导请大家点击下载:[演讲录像指导完整版.PDF](/2021/assets/pycon_guide_full_zh.pdf) 6 | 7 | ## 第一步:制作演讲幻灯片 8 | 9 | 请使用大会主办方提供的 PPT 模板制作演讲幻灯片 10 | 11 | PPT 模板下载地址: 12 | 13 | PyConChina-templates.zip 14 | 15 | - 主题演讲的录像时间不超过 30 分钟。 16 | - 常规演讲的录像时间不超过 40 分钟。 17 | 18 | ## 第二步:正式录制前的设备调试/环境准备 19 | 20 | 注意 5 个关键点: 21 | 22 | 1. 建议电脑分辨率 1920\*1080,符合宽高比例 Windows(16:9) 或 Mac(16:10) 23 | 2. 提前关闭所有无关软件或窗口,特别是有弹窗类的软件,确保桌面或相关界面无个人或商业隐私信息,无其他第三方 logo 24 | 3. 如要分享代码,建议: 25 | 1. 调大字号,标准为代码编辑器设置全屏时,代码行为 20-22 行 26 | 2. IDE 只能使用白底或者黑底 27 | 4. 一个良好的仪表形象,如需使用耳机,不建议使用耳罩式耳机,尽量使用无线耳机 28 | 5. **请在会议室等安静环境内进行或跟周边人员打招呼,确保录制期间无噪音、人员干扰、频繁的人员走动等情况** 29 | 30 | ## 第三步:正式录制前的演练 31 | 32 | 1. 搭配着演讲幻灯文件进行演讲,将其中不通顺、不流畅的地方进行反复练习。演讲幻灯中如存在逻辑不严谨或纰漏之处,请及时修改。 33 | 2. 如果条件允许,建议找您的同事、家人甚至专业人士,当面演练两遍,请他们给予作为观众体验的建议(内容、表达) 34 | 3. **正式开始前先简单录一小段,自己先看看效果:是否能正确录制输出、声音是否正常、形象气质是否良好,此点非常重要,不要*等*全部录完*才*发现有问题。** 35 | 36 | ## 第四步:正式录制 37 | 38 | ### 4.1 录制时的基本规范 39 | 40 | 1. 需开视频,保持自己的上半身合适居中在屏幕中,不可过近或过远,如脸部贴近屏幕,屏幕基本被脸部占据,或自己膝盖以上全部在屏幕中 41 | 2. 演讲过程中眼睛注意聚焦摄像头方向,有与观众对视的感觉 42 | 3. 录制时,材料在全屏展示,自己头像在右上角小屏展示,如有其他参会人,请隐藏(其他人不开启视频,通过转到 **“设置”>“视频”>“会议”** 来隐藏不使用视频的参与者,然后选中“ 隐藏非视频参与者”),**最终效果如下图两种均可** 43 | 44 | ![recording1](/2021/assets/images/pybg1.jpg) 45 | 46 | ![recording2](/2021/assets/images/pybg2.png) 47 | 48 | 4. 因为无观众互动,可能无法得到现场演讲时的反馈感,所以要时刻注意控制自己的语气&语速,把握节奏,富有激情。 49 | 5. 注意时间,请在自己的规定的时间内完成 50 | 51 | ### 4.2 如何录制 52 | 53 | 国内推荐以下几类录制工具进行视频录制: 54 | 55 | - 腾讯会议 56 | - 下载: 57 | - 使用说明: 58 | - ZOOM: 59 | - 下载: 60 | - 使用教程:见文末完整指导文档 61 | - OBS: 62 | - 下载地址: 63 | - 使用教程: 64 | - 瞩目: 65 | - 下载地址: 66 | - 使用说明: 67 | 68 | 如果您有其它软件也能实现上面说明的规范效果亦可。 69 | 70 | ## 第五步:交付前的检查 71 | 72 | 1. 视频的命名格式为:姓名-演讲主题-Track 名称 (如:张三-Python 特性解读) 73 | 2. 检查音质,可以有电流底噪,但不要有明显噪音(如翻书声、拖动椅子、 汽车鸣笛、鸟叫声等) 74 | 3. 检查画面像素是否为 1920\*1080,比例为 windows 16:9 或 mac 16:10 75 | 4. 视频帧速率不低于 30fps(单击鼠标右键,“属性”中“详细信息”查看), 画面不能出现明显锯齿,发虚的现象 76 | 77 | ## 第六步:视频交付 78 | 79 | 自检属性符合标准后,请上传至网盘,并将下载链接发送至邮箱:**jamiexu@python-china.org.cn**,如视频中存在问题会反馈给你,如有需要请及时修正。 80 | 81 | 更多详尽指导请下载:[演讲录像指导完整版.PDF](/2021/assets/pycon_guide_full_zh.pdf) 82 | -------------------------------------------------------------------------------- /data/index.en.yaml: -------------------------------------------------------------------------------- 1 | news: 2 | - PyCon China 2021 call for papers and volunteers application have started. 3 | - PyCon China 2021 is about to be held ONLINE at 16-17, October. 4 | 5 | introduction: | 6 | 2021 has passed 3/4. We have experienced many things together. Fight COVID-19 together, cheer for the athletes in the Tokyo Olympics, work hard for your future, and share your achievements with your family happily together. 7 | 8 | You may have a lot of gains, and you may also have a lot of questions. You may want to have an opportunity for you and like-minded friends in the community to get together and share your experiences with each other. 9 | 10 | So, PyCon China 2021 is here! As in previous years, we will, as always, bring you a wonderful presentation conference this year, let us enjoy the joy and happiness that Python brings to us. 11 | 12 | This year is the 11th year of PyCon China. In the past ten years, we have gained a lot of recognition. We have also become one of the most influential Python conferences in China. In the next ten years, we will, as always, maintain our original intention and continue to serve everyone better. 13 | 14 | There is an old saying that “a conference is not a matter of one person, but a group of people”, so here we welcome every student who loves the Python community to join us, participate in our work, and let us make this year’s conference together Become a Dream Conference! Yes, we need you! 15 | 16 | sponsors: 17 | - items: 18 | - icon: /2021/assets/sponsors/pychina.png 19 | link: https://pychina.org 20 | name: PyChina 21 | level: Organizer 22 | - items: 23 | - icon: /2021/assets/sponsors/juchiyun.png 24 | link: https://matpool.com/ 25 | name: MATPool 26 | level: Diamond Sponsors 27 | - items: 28 | - icon: /2021/assets/sponsors/jina.png 29 | link: https://jina.ai/ 30 | name: Jina AI 31 | - icon: /2021/assets/sponsors/taichi.png 32 | link: https://taichi.graphics/ 33 | name: Taichi Graphics 34 | level: Platinum Sponsors 35 | - items: 36 | - icon: /2021/assets/sponsors/neo4j.jpg 37 | link: https://neo4j.com/ 38 | name: Neo4j 39 | - icon: /2021/assets/sponsors/azure.jpg 40 | link: https://www.microsoft.com/zh-cn 41 | name: Microsoft 42 | level: Gold Sponsors 43 | - items: 44 | - icon: /2021/assets/sponsors/turing.png 45 | link: https://www.ituring.com.cn/ 46 | name: Turing 47 | level: Books Sponsors 48 | - items: 49 | - icon: /2021/assets/sponsors/csdn.png 50 | link: https://www.csdn.net/ 51 | name: CSDN 52 | - icon: /2021/assets/sponsors/segmentfault.png 53 | link: https://segmentfault.com/ 54 | name: SegmentFault 55 | level: Strategic Media 56 | - items: 57 | - icon: /2021/assets/sponsors/reactor.png 58 | name: Microsoft Reactor 59 | - icon: /2021/assets/sponsors/dajie.png 60 | link: http://www.z-innoway.com/home 61 | name: inna way 62 | level: Special Partners 63 | - items: 64 | - icon: /2021/assets/sponsors/vscodecn.png 65 | link: https://github.com/vscodecc/vscodecc 66 | name: VS Code 67 | - icon: /2021/assets/sponsors/pythonhunter.png 68 | link: https://pythonhunter.org 69 | name: Python Hunter 70 | - icon: /2021/assets/sponsors/freecodecamp.png 71 | link: https://www.freecodecamp.org/ 72 | name: free Code Camp 73 | - icon: /2021/assets/sponsors/helloflask.png 74 | link: https://helloflask.com 75 | name: HelloFlask 76 | - icon: /2021/assets/sponsors/zhusanjiaoshalong.png 77 | link: http://techparty.org 78 | name: GZTechParty 79 | level: Community Cooperation 80 | - items: 81 | - icon: /2021/assets/sponsors/huodongxing.png 82 | link: https://www.huodongxing.com/ 83 | name: 活动行 84 | level: Sign Up 85 | -------------------------------------------------------------------------------- /data/index.yaml: -------------------------------------------------------------------------------- 1 | news: 2 | - 请花 5 分钟完成中国 Python 开发者 2021 现状调查问卷。 3 | - PyCon China 2021 讲师征集志愿者招募已经启动! 4 | - PyCon China 将于 2021 年 10 月 16 日与 10 月 17 日在线上举办。 5 | 6 | introduction: | 7 | 2021 年转眼间已经过去大半,我们一起经历了许许多多的事情。一起为河南祈祷,一起为东京奥运上的中国代表团欢呼,一起为了更好的自己加油努力,一起开心地和家人分享自己的成就时刻。 8 | 9 | 夏去秋来,你一定有很多的收获,也一定有很多的疑问。你肯定希望有一个机会,可以与社区志同道合的朋友共聚一堂,一起分享彼此的经验和收获。 10 | 11 | PyCon China 2021 于 2021 年 10 月16 - 17 日采用“线上直播+线下Party”的方式与大家见面!如同往年一样,我们将一如既往地为大家带来一场精彩纷呈的大会,让我们尽情地享受 Python 带给大家的喜悦与快乐。 12 | 13 | 今年是 PyCon China 第十一年,在过去的十年中,我们收获了许许多多的认可,同时也成为了世界范围内最具影响力的 Python 会议之一。而在接下来的十年里,我们保持初心,继续更好地连结大家。 14 | 15 | We need you!有句老话叫“一个大会不是一个人的事,而是一群人的事”,在这里,我们诚挚邀请每一位热爱 Python 社区的同学加入我们,一起举办又一场 Python 开发者自己的 PyCon ! 16 | 17 | sponsors: 18 | - items: 19 | - icon: /2021/assets/sponsors/pychina.png 20 | link: https://pychina.org 21 | name: PyChina 22 | level: 主办方 23 | - items: 24 | - icon: /2021/assets/sponsors/juchiyun.png 25 | link: https://matpool.com/ 26 | name: 矩池云 27 | level: 钻石赞助 28 | - items: 29 | - icon: /2021/assets/sponsors/jina.png 30 | link: https://jina.ai/ 31 | name: 极纳科技 32 | - icon: /2021/assets/sponsors/taichi.png 33 | link: https://taichi.graphics/ 34 | name: 太极 35 | level: 白金赞助 36 | - items: 37 | - icon: /2021/assets/sponsors/neo4j.jpg 38 | link: https://neo4j.com/ 39 | name: Neo4j 40 | - icon: /2021/assets/sponsors/azure.jpg 41 | link: https://www.microsoft.com/zh-cn 42 | name: 微软 43 | level: 黄金赞助 44 | - items: 45 | - icon: /2021/assets/sponsors/turing.png 46 | link: https://www.ituring.com.cn/ 47 | name: 图灵 48 | level: 图书赞助 49 | - items: 50 | - icon: /2021/assets/sponsors/csdn.png 51 | link: https://www.csdn.net/ 52 | name: CSDN 53 | - icon: /2021/assets/sponsors/segmentfault.png 54 | link: https://segmentfault.com/ 55 | name: 思否 56 | level: 战略合作媒体 57 | - items: 58 | - icon: /2021/assets/sponsors/reactor.png 59 | name: Microsoft Reactor 60 | - icon: /2021/assets/sponsors/dajie.png 61 | link: http://www.z-innoway.com/home 62 | name: 中关村创业大街 63 | level: 特别合作伙伴 64 | - items: 65 | - icon: /2021/assets/sponsors/vscodecn.png 66 | link: https://github.com/vscodecc/vscodecc 67 | name: VS Code 68 | - icon: /2021/assets/sponsors/pythonhunter.png 69 | link: https://pythonhunter.org 70 | name: 捕蛇者说 71 | - icon: /2021/assets/sponsors/freecodecamp.png 72 | link: https://www.freecodecamp.org/ 73 | name: free Code Camp 74 | - icon: /2021/assets/sponsors/helloflask.png 75 | link: https://helloflask.com 76 | name: HelloFlask 77 | - icon: /2021/assets/sponsors/zhusanjiaoshalong.png 78 | link: http://techparty.org 79 | name: 珠三角技术沙龙 80 | level: 社区合作 81 | - items: 82 | - icon: /2021/assets/sponsors/huodongxing.png 83 | link: https://www.huodongxing.com/ 84 | name: 活动行 85 | level: 报名支持伙伴 86 | -------------------------------------------------------------------------------- /data/schedule.en.yaml: -------------------------------------------------------------------------------- 1 | # - venue: 2 | # title: justo sit amet sapien 3 | # speaker: 万哲恒 4 | # company: Microsoft 5 | # intro: Praesent lectus. Vestibulum quam sapien, varius ut, blandit non, interdum in, ante. 6 | # Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; 7 | # Duis faucibus accumsan odio. Curabitur convallis. Duis consequat dui nec nisi volutpat eleifend. 8 | # desc: Praesent lectus. Vestibulum quam sapien, varius ut, blandit non, interdum in, ante. 9 | # Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; 10 | # Duis faucibus accumsan odio. Curabitur convallis. Duis consequat dui nec nisi volutpat eleifend. 11 | # avatar: http://dummyimage.com/200x200.png/cc0000/ffffff 12 | # slug: justo-sit-amet-sapien 13 | # keynote: true 14 | schedule: 15 | - date: 10/16 16 | events: 17 | - end: '10:15' 18 | start: 09:30 19 | talks: 20 | - avatar: /2021/assets/people/Ewa.jpg 21 | company: Executive Director of the Python Software Foundation 22 | desc: '' 23 | intro: "Ewa Jodlowska is the Executive Director of the Python Software Foundation. 24 | Ewa has been with the PSF since 2012 and prior to that she assisted with PyCon 25 | US as a contractor. Ewa's responsibilities include managing the staff, giving 26 | direction and leadership to the Foundation, working with the board of directors 27 | on long-range strategic planning, community outreach, and overseeing financial 28 | and program operations to name a few. Ewa is embarking on a new career path 29 | at the end of 2021 and will miss working with great Pythonistas all around 30 | the world! 31 | 32 | Connect with Ewa via her Twitter account!" 33 | keynote: true 34 | slug: psf-in-python-ecosystem 35 | speaker: Ewa Jodlowska 36 | title: The Python Software Foundation's role in Python's ecosystem 37 | venue: '' 38 | - end: '11:00' 39 | start: '10:15' 40 | talks: 41 | - avatar: /2021/assets/people/XiaoHan.jpg 42 | company: The Founder & Chairman of Jina AI 43 | desc: '' 44 | intro: '[Dr. Han Xiao](http://linkedin.com/in/hxiao87) who is well known for 45 | the development of the next-gen search infrastructure at Tencent, and for 46 | his leadership with Tencent’s Open Source Program Office where he fostered 47 | the company’s open source and dev-ops culture. Xiao served as a board member 48 | at Linux Foundation AI in 2019. He is also the Founder & Chairman of the German-Chinese 49 | Association of AI.' 50 | keynote: true 51 | slug: ai-first 52 | speaker: Han Xiao 53 | title: 'The First Step to AI-First: Forget About AI' 54 | venue: '' 55 | - end: '11:45' 56 | start: '11:00' 57 | talks: 58 | - avatar: /2021/assets/people/Taichi.jpg 59 | company: Taichi Graphics 60 | desc: '' 61 | intro: 'Yuanming Hu is the CEO of Taichi Graphics and thefounder of Tachi Programming 62 | Language 63 | 64 | 65 | Ailing Zhang is a Compiler Architect in Taichi Graphics' 66 | keynote: true 67 | slug: high-performance-parallel 68 | speaker: Yuanming Hu & Ailing Zhang 69 | title: Writing high-performance parallel programs in "Python" 70 | venue: '' 71 | - end: '12:00' 72 | start: '11:45' 73 | talks: 74 | - avatar: /2021/assets/people/LiZheao.png 75 | company: Senior Engineer of Taichi Graphics, Microsoft MVP 76 | desc: '' 77 | intro: '* A cat slave 78 | 79 | * A Python lover 80 | 81 | * A Programmer in TaiChi Graphics 82 | 83 | 84 | Would you like to join us?' 85 | keynote: false 86 | slug: '' 87 | speaker: Manjusaka 88 | title: Venue Introduction & Prize Draw 89 | venue: '' 90 | - end: '12:00' 91 | start: '09:30' 92 | type: pyhouse 93 | talks: 94 | - speaker: PyCon China Orginizers 95 | keynote: false 96 | title: Pythonista AMA 97 | venue: PyHouse 98 | - end: '13:00' 99 | start: '12:00' 100 | type: break 101 | talks: 102 | - avatar: null 103 | company: '' 104 | desc: '' 105 | intro: '' 106 | keynote: false 107 | slug: '' 108 | speaker: '' 109 | title: Lunch break 110 | venue: '' 111 | - end: '13:45' 112 | start: '13:00' 113 | talks: 114 | - avatar: /2021/assets/people/Aber.jpg 115 | company: Antiy Labs 116 | desc: This talk focuses on how to use the PEG parser Guido wrote for Python 117 | 3.9 to create a Python superset, adding the syntax you want to bring Python 118 | to life. It includes convenient syntax for pipes, partial functions, null 119 | merging, optional chaining, and more, and you can import Mingshe's code directly 120 | as a Python module without having to compile it in advance. 121 | intro: The creator of Mingshe, the creator of non-well-known web frameworks 122 | and toolboxes such as Index.py and baize 123 | keynote: true 124 | slug: python-with-sugar 125 | speaker: Aber 126 | title: Adding Sugar to Python - Mingshe 127 | venue: A 128 | - avatar: /2021/assets/people/ZhangJintao.jpg 129 | company: Technical expert,Kubernetes ingress-nginx reviewer, Apache APISIX committer 130 | desc: 'Cloud-native has become one of the hottest technology trends. Along with 131 | the popularity of CI/CD and GitOps, the common problem for developers is how 132 | to ensure efficient delivery of Python projects and improve the overall stability 133 | of their applications. 134 | 135 | 136 | This session will introduce how to build a cloud-native GitOps toolchain for 137 | Python projects to ensure the stability of the application and deliver the 138 | project more efficiently.' 139 | intro: '- 技术专家 140 | 141 | - Kubernetes ingress-nginx reviewer 142 | 143 | - Apache APISIX committer' 144 | keynote: true 145 | slug: python-cloud-git-ops 146 | speaker: Jintao Zhang 147 | title: Building a Cloud-Native GitOps Toolchain for Python Projects 148 | venue: B 149 | - end: '14:30' 150 | start: '13:45' 151 | talks: 152 | - avatar: /2021/assets/people/FrostMing.jpg 153 | company: PyPA member, creator of PDM, maintainer of Pipenv 154 | desc: Python packaging is a thing that every Pythonista may need to know and 155 | use. The talk tries to bring the best practice of modern Python packaging 156 | to the audience by introducing the history of Python packaging and demonstrating 157 | what is happening behind pip install. 158 | intro: "- PyPA member, creator of PDM, maintainer of Pipenv. \n- I am devoted\ 159 | \ to improving the Python packaging ecosystem.\n- And I am an experienced\ 160 | \ Web developer." 161 | keynote: true 162 | slug: python-packaging-101 163 | speaker: Frost Ming 164 | title: Python Packaging 101 165 | venue: A 166 | - avatar: /2021/assets/people/WangBo.jpg 167 | company: AI Engineer in Jina AI 168 | desc: "Every Python developer knows `ndarray` is the basic data structure of\ 169 | \ Numpy, `DataFrame` is the basic data structure of Pandas. Jina, as an open-source\n\ 170 | \ project aimed at AI-powered search, we expect users can get familiar with\n\ 171 | \ Jina in no time, and become Jina user, even contributors. For this reason,\ 172 | \ we\n would like to design an elegant data structure that can help us achieve\ 173 | \ such\n a goal. With the release of Jina 2.0, we've received over 10,000\ 174 | \ stars on\n Github, and this can not be achieved without Jina Primitive\ 175 | \ Data Types. In\n this speech, I would like to discuss the following topics:\n\ 176 | \n1. The motivation for designing Jina Primitive Data Types.\n2. Our design\ 177 | \ principles.\n3. The evolution of Jina Primitive Data Types.\n4. The future\ 178 | \ directions.\n\nI wish this 30-minute talk could inspire our attendance to\ 179 | \ design their own data structure with Python." 180 | intro: "Bo received BSc from Lanzhou University, China and MSc from TU Delft,\ 181 | \ the Netherlands. Major in multimedia information retrieval. \n\nHe used\ 182 | \ to work for IBM (Amsterdam), Sensara (Rotterdam) as AI Engineer. In 2020,\ 183 | \ He joined Jina AI (Berlin) as AI Engineer. \n\nHe has published 3 long/short\ 184 | \ papers in ACM Multimedia and related workshops. And represented Jina AI\ 185 | \ spoke at ECIR (European Conference of Information Retrieval) on Python and\ 186 | \ Neural search.\n\nHis major interest is AI-powered information retrieval\ 187 | \ (or neural information retrieval) and open source. He is the main contributor\ 188 | \ of Jina, and one of the Lead developers of MatchZoo." 189 | keynote: true 190 | slug: primitive-data-types 191 | speaker: Bo Wang 192 | title: 'Robust & Ease to use: The Design and Evolution of Python-based Primitive 193 | Data Types' 194 | venue: B 195 | - end: '15:15' 196 | start: '14:30' 197 | talks: 198 | - avatar: /2021/assets/people/TanXiao.jpg 199 | company: Advanced Development in AsiaInfo 200 | desc: Python 3.10's new syntax feature Structual Pattern Matching is just an 201 | enhanced version of switch case; I'll share what patterns are in pattern matching; 202 | pattern matching implementations for each language; what syntax Python's pattern 203 | matching supports, the advantages and disadvantages of using pattern matching; 204 | and do-it-yourself pattern matching. I will explain what pattern matching 205 | is, what syntax Python supports, the advantages and disadvantages of using 206 | pattern matching, and how to implement pattern matching yourself. 207 | intro: '- AsiaInfo Advanced Development, former Ant Financial Development Engineer, 208 | many years of web front-end and back-end experience 209 | 210 | - Currently engaged in the development of low-code, 3D visualization fields' 211 | keynote: true 212 | slug: pattern-matching 213 | speaker: Xiao Tan 214 | title: How to use Python's pattern matching syntax well 215 | venue: A 216 | - avatar: /2021/assets/people/WangHailiang.jpg 217 | company: Co-founder & CEO of Chatopera 218 | desc: "For data scientists and developers, natural language processing is a\ 219 | \ major aspect of implementing AI applications, how do I need to get started\ 220 | \ as a Python developer and what are the best tools available? As a contributor\ 221 | \ or publisher of several Python\n contributors or publishers of several\ 222 | \ packages related to natural language processing, this share will shed light\ 223 | \ on synonym processing, Chinese corpus datasets, dependency analysis, word\ 224 | \ vectors, cluster analysis, and chatbots." 225 | intro: '- Co-founder & CEO of Chatopera 226 | 227 | - Graduated from Beijing University of Posts and Telecommunications in 2011, 228 | then joined IBM for four years and worked in software development laboratory 229 | and innovation center successively 230 | 231 | - Since 2016, he has been working in a startup company as an AI algorithm 232 | engineer in Trianglemon, and the head of Lingling English AI product, responsible 233 | for the research and development of an intelligent dialogue system. 234 | 235 | - Rich experience in project implementation, familiar with machine learning, 236 | search engines, natural language processing, and business process engines. 237 | 238 | - In 2018, the industry''s first question-and-answer dialogue machine learning 239 | book "Intelligent Questions and Answers and Deep Learning" was published, 240 | and a large number of open source projects were published on GitHub, and were 241 | widely recognized by the developer community.' 242 | keynote: true 243 | slug: nlp 244 | speaker: Hai Liang WANG 245 | title: Using Python for several natural language processing tasks 246 | venue: B 247 | - end: '15:15' 248 | start: '13:00' 249 | type: pyhouse 250 | talks: 251 | - speaker: Qingyun / Mavin / Zhixiang Xu / Manjusaka Li 252 | keynote: false 253 | title: Things about opens source 254 | venue: PyHouse 255 | - end: '15:30' 256 | start: '15:15' 257 | type: break 258 | talks: 259 | - avatar: null 260 | company: '' 261 | desc: '' 262 | intro: '' 263 | keynote: false 264 | slug: '' 265 | speaker: '' 266 | title: Halftime/Lottery 267 | venue: '' 268 | - end: '16:15' 269 | start: '15:30' 270 | talks: 271 | - avatar: /2021/assets/people/LiZheao.png 272 | company: Senior Engineer of Taichi Graphics, Microsoft MVP 273 | desc: 'With the further development of cloud computing, the online problems 274 | we face are becoming more and more complex. We may need to go deeper into 275 | the kernel to get all kinds of information including and not only network 276 | packets and process information when troubleshooting online problems. This 277 | has led to an increasing need for Linux kernel debugging tools 278 | 279 | 280 | Since Linux 4.x, Linux has provided good tools in the kernel, including eBPF, 281 | to enable us to get into the kernel and get the information we need. 282 | 283 | 284 | This talk will take you through some practical examples to get a little taste 285 | of what Python + BCC can do for our online debugging.' 286 | intro: '* A cat slave 287 | 288 | * A Python lover 289 | 290 | * A Programmer in TaiChi Graphics 291 | 292 | 293 | Would you like to join us?' 294 | keynote: true 295 | slug: python-bcc 296 | speaker: Manjusaka 297 | title: Python with BCC. A new approach to kernel observability 298 | venue: A 299 | - avatar: /2021/assets/people/LomisChen.jpg 300 | company: Program Manager at Microsoft 301 | desc: The usage of python in data science and machine learning has been explosive 302 | over the last few years and there's been more developer needs and support 303 | in the community than ever. In this talk, I will walk you through how you 304 | could seamlessly perform tasks ranging from exploratory analysis to machine 305 | learning across various Microsoft tooling including GitHub, Visual Studio 306 | Code, as well as Azure Machine Learning. 307 | intro: "Lomis Chen is currently a Program Manager at Microsoft with a focus\ 308 | \ on data science & AI tooling for python developers on Azure. \n\nShe has\ 309 | \ a deep interest in UX and data science and has previously worked on Azure\ 310 | \ CLI with a focus on UX and CSAT improvement. \n\nPrior to joining DevDiv\ 311 | \ she'd worked under Windows on CodeHub the inner source platform, a static\ 312 | \ code analysis service, as well as OSS security." 313 | keynote: true 314 | slug: data-science 315 | speaker: Lomis Chen 316 | title: Optimizing data science workloads across Github, VSCode, and Azure 317 | venue: B 318 | - end: '17:00' 319 | start: '16:15' 320 | talks: 321 | - avatar: null 322 | company: '' 323 | desc: "### Design your own computational language with PyParsing/PEG\n\nspeaker:\ 324 | \ Congwei Song\n\nintro:\nAfter Learning many computer languages, many people\ 325 | \ may have the idea of designing their own computer language. The key task\ 326 | \ is to design the language's grammar parser. Most current languages are parsed\ 327 | \ based on context-independent grammars. The expression parsing grammar PEG,\ 328 | \ a potential substitute for context-independent grammars, can also be implemented\ 329 | \ as a parser for computer languages and has many advantages that formal grammars\ 330 | \ do not have, such as ease of implementation, fast parsing, and no ambiguity.\ 331 | \ In addition, experts are experimenting with implementing Python parsers\ 332 | \ with PEGs. pyparsing is an easy-to-use PEG package for Python. The main\ 333 | \ goal of the presentation is to demonstrate how to design parsers with pyparsing.\ 334 | \ It will cover PEG principles and parser implementation techniques, the pyparsing\ 335 | \ design style, a demonstration of a computer language of your own design,\ 336 | \ and a series of interesting examples.\n\n\n### Natural Language-guided Programming\n\ 337 | \nspeaker: Geert Heyman\n\nintro:\nI will present an “AI pair programmer”\ 338 | \ research prototype from Nokia Bell Labs that aims to assist Python developers\ 339 | \ to work with open\n source libraries for data science. Our AI assistant\ 340 | \ for Jupyter notebooks\n auto-completes Python code based on natural language\ 341 | \ intent, a practice we\n call “natural language-guided programming”. That\ 342 | \ is, by writing a short\n inline comment in their code (e.g., “plot this\ 343 | \ data in a bar chart”),\n developers can query the AI for a contextualized\ 344 | \ code snippet that implements\n their intent.\n \nI will explain on a high-level\ 345 | \ how we trained the machine learning model that sits at the core of the AI\ 346 | \ pair programmer. This will give guidance on\n how to optimally use this\ 347 | \ next-generation autocompletion tool and will help\n in understanding its\ 348 | \ current limitations and pitfalls. The machine learning\n model that we\ 349 | \ trained is published on the Hugging Face model hub and is small\n enough\ 350 | \ to be deployed without an exuberant amount of computational resources.\n\ 351 | \ \n\n### Python helps you get quick start with Apache APISIX development\n\ 352 | \nspeaker: Jinchao Shuai\n\nintro:\nPython is a 30-year-old development language,\ 353 | \ its rich ecology and simple syntax is favored by many people, and widely\ 354 | \ practiced in artificial intelligence, scientific computing, Web development\ 355 | \ and other fields, this sharing I will introduce the application of API gateway\ 356 | \ through Python combined with Apache APISIX. In order to achieve non-invasive\ 357 | \ development of Apache APISIX plugins through Python in the community, we\ 358 | \ have developed an Apache APISIX Python Runner project that allows developers\ 359 | \ to use Python to develop Apache APISIX plugins without having to pay attention\ 360 | \ to Nginx C and Lua implementation details, just focus on the business logic\ 361 | \ of the Python plugin.\nI will also share a case study to demonstrate how\ 362 | \ to develop and apply an Apache APISIX plugin to Apache APISIX with a few\ 363 | \ lines of Python code." 364 | intro: '' 365 | keynote: false 366 | slug: lightning_1_a 367 | speaker: '' 368 | title: Lightning Talks 369 | venue: A 370 | - avatar: null 371 | company: '' 372 | desc: "### How the ast module helps Jina Hub developers develop efficiently\r\ 373 | \n\r\nspeaker: Nan Wang\r\n\r\nintro:\r\nThis talk focuses on how we help\ 374 | \ the Jina Hub developer community balance development efficiency and maintainability\ 375 | \ through the use of the Python native Abstract Syntax Tree (ast) module in\ 376 | \ Jina Hub, which is designed to provide developers with the various Executors\ 377 | \ needed to build neural search systems using Jina. Not only can developers\ 378 | \ find the Executor they need at Jina Hub, but they can also publish custom\ 379 | \ Executors and share them with the entire community. By using the ast module\ 380 | \ to parse developers' code, we automate and standardize the generation and\ 381 | \ management of Dockerfiles and installation dependencies, allowing developers\ 382 | \ to focus more on the core functionality of the Executor. In addition, we\ 383 | \ use the ast module to help developers automatically generate Executor details\ 384 | \ to further facilitate sharing with the community. ast allows us to lower\ 385 | \ the development threshold and attract more developers to join the Jina Hub\ 386 | \ community by improving the maintainability of the code while ensuring the\ 387 | \ efficiency of community development.\r\n\r\n\r\n### Identifying genes with\ 388 | \ AI, starting with vectorized DNA sequences\r\n\r\nspeaker: Mengjia Gu\r\n\ 389 | \r\nintro:\r\nDNA sequences have a wide range of applications in molecular\ 390 | \ biology and medical research, such as gene tracing, species identification,\ 391 | \ and disease diagnosis. If a large number of samples are taken in combination\ 392 | \ with the emerging genetic big data, the experimental results are usually\ 393 | \ more convincing and can be put into real-world applications more effectively.\ 394 | \ However, traditional nucleic acid sequence matching methods have many limitations\ 395 | \ and are not applicable to large scale data, which makes real world applications\ 396 | \ have to make a trade-off between cost and accuracy. To alleviate the constraints\ 397 | \ of nucleic acid sequence data characteristics, vectorization is a better\ 398 | \ choice for large amounts of DNA sequences. The implementation of DNA sequence\ 399 | \ vectorization can improve efficiency while helping to reduce the cost of\ 400 | \ research projects or system builds.\r\n\r\nBased on this idea, we tried\ 401 | \ to build a gene sequence classification system by combining NLP models and\ 402 | \ Milvus, an open source vector database. Tested with experimental data based\ 403 | \ on Milvus' python SDK, we found that the system not only identifies gene\ 404 | \ classes in milliseconds, but is also more accurate than common classifiers\ 405 | \ in the field of machine learning.\r\n\r\n\r\n### Binary Vulnerability Mining\ 406 | \ in Python Security Testing\r\n\r\nspeaker: Ralph Wu\r\n\r\nintro:\r\nIn\ 407 | \ security testing, binary vulnerability mining is often combined with Python,\ 408 | \ which can better combine ELF programs under Linux with Python; this lecture\r\ 409 | \n mainly introduces the use of Python's \"pwntools\" framework in\r\n CTF-pwn\ 410 | \ to write examples of vulnerability exploitation examples and crack\r\n \ 411 | \ programs Get the host's permission; in the form of vulnerabilities, show\ 412 | \ how\r\n to use Python to deal with the \"charm\" of binary security branches\r\ 413 | \n in the security field." 414 | intro: '' 415 | keynote: false 416 | slug: lightning_1_b 417 | speaker: '' 418 | title: Lightning Talks 419 | venue: B 420 | - end: '17:00' 421 | start: '15:30' 422 | type: pyhouse 423 | talks: 424 | - keynote: false 425 | title: Students in Python Development 426 | venue: PyHouse 427 | speaker: Junjie Wang / Bowen Li / Andy Zhou / Rice Zong / Grey Li 428 | - end: '17:15' 429 | start: '17:00' 430 | type: break 431 | talks: 432 | - avatar: null 433 | company: '' 434 | desc: '' 435 | intro: '' 436 | keynote: false 437 | slug: '' 438 | speaker: '' 439 | title: Lottery 440 | venue: '' 441 | - date: 10/17 442 | events: 443 | - end: '10:15' 444 | start: 09:30 445 | talks: 446 | - avatar: /2021/assets/people/LiFeng.jpg 447 | company: Independent developer 448 | desc: "Python has been ranked among the top 3 programming languages in the world\ 449 | \ for the past decade steadily , and is the most preferred language in the\ 450 | \ fields of Artificial Intelligence、Data Processing、Scientific Computing and\ 451 | \ DevOps etc. However, the performance of Python is still not satisfied due\ 452 | \ to many reasons. Fortunately, many emerging Python runtimes are coming in\ 453 | \ recent years and bringing new ideas to overcome the bottlenecks of Python\ 454 | \ runtime performance. This topic summarizes and compares various Python implementations\ 455 | \ that available today, and comes with the following sub-topics: \n-\ 456 | \ C-based Python implementation\n - make CPython faster;\n - newly-arrived\ 457 | \ project Cinder;\n- Java-based Python implementation, e.g. GraalPython and\ 458 | \ Jython; \n- LLVM-based Python implementation, e.g. Pyston;\n- DotNet-based\ 459 | \ Python implementation, e.g. IronPython and Pyjion;\n- WASM-based Python\ 460 | \ implementation, e.g. Pyodide; \n- Rust-based Python implementation, e.g.\ 461 | \ RustPython;\n- Comparison of the above Python implementations and their\ 462 | \ benchmarkings. \n\nMajor reference links for tech stack: \n- https://en.wikipedia.org/wiki/Python_(programming_language)\ 463 | \ \n- https://wiki.python.org/moin/PythonImplementations \n- https://github.com/python/cpython\ 464 | \ \n- https://github.com/facebookincubator/cinder \n- https://github.com/oracle/graalpython\ 465 | \ \n- https://github.com/jython/jython3 \n- https://github.com/pyston/pyston\ 466 | \ \n- https://github.com/IronLanguages/ironpython3 \n- https://github.com/tonybaloney/Pyjion\ 467 | \ \n- https://github.com/pyodide/pyodide \n- https://github.com/RustPython/RustPython" 468 | intro: "- Had been worked in Motorola, Samsung, etc, now I am an indie developer.\ 469 | \ \n- Accumulated more than ten years experience in mobile development on\ 470 | \ various platforms,and focused on Cloud & Edge Infrastructure during the\ 471 | \ past few years.\n- The main translator of the book \"Gray Hat Hacking The\ 472 | \ Ethical Hacker's Handbook, Fourth Edition\" (ISBN:9787302428671) and \"\ 473 | Linux Hardening in Hostile Networks, First Edition\"(ISBN: 9787115544384).\n\ 474 | - With strong interest and practical ability in technology innovation, I am\ 475 | \ enthusiastic in take part in various activities of the Open Source Community,\ 476 | \ and please refer to the following URL for my previous speaking experience:\ 477 | \ https://github.com/XianBeiTuoBaFeng2015/MySlides" 478 | keynote: true 479 | slug: python-impl 480 | speaker: Feng Li 481 | title: A survey of current Python implementations 482 | venue: A 483 | - avatar: /2021/assets/people/WangBinxin.png 484 | company: Ali Cloud 485 | desc: 'Many people think that Python is not suitable for developing large server-side 486 | applications because it is slow, error-prone, and difficult to maintain. Is 487 | this really the case? Or how do we deal with these issues? 488 | 489 | This talk will share why a large cloud service chose Python as its primary 490 | language for development, how to ensure fast and smooth implementation of 491 | business functions and maintainable code in architecture design, development, 492 | testing, monitoring, team collaboration, application release, and more.' 493 | intro: '- Technical expert, Microsoft MVP 494 | 495 | - Translator of the Chinese version of "Python Best Practice Guide" 496 | 497 | - Love to participate in open source projects and technology sharing 498 | 499 | - Currently engaged in R&D in the field of cloud computing' 500 | keynote: true 501 | slug: python-big-scale 502 | speaker: Binxin Wang 503 | title: How to develop and maintain large Python server-side applications 504 | venue: B 505 | - end: '11:00' 506 | start: '10:15' 507 | talks: 508 | - avatar: /2021/assets/people/LaiqiangDing.jpg 509 | company: Head of Alibaba Cloud SLS Shanghai team 510 | desc: "As business innovation accelerates in the era of digital intelligence\ 511 | \ and automation, increasingly complex architectures and huge data volumes\ 512 | \ have placed higher demands on centralized big data platforms. On the other\ 513 | \ hand, how to quickly build applications, processes, and business solutions\ 514 | \ continue to accumulate, which has led to the explosion of Low-Code products\ 515 | \ in various fields in the past two years, and their related technologies\ 516 | \ are also applicable under the observability platform.\nThis session introduces\ 517 | \ how to use low-code technologies (Python as an example) in building observability\ 518 | \ platforms to innovate the experience of using products and improve the flexibility\ 519 | \ of scenarios and engineering efficiency of solutions. The presentation will\ 520 | \ cover the key aspects of flexible data collection and processing, intelligent\ 521 | \ analysis, monitoring and alerting, and response automation, involving cloud-native,\ 522 | \ stream batch computing, OLAP, DSL, orchestration and templating technologies.\n\ 523 | Presentation outline. 1:\n1. background overview of observability and low-code\ 524 | \ technologies\n2. technical challenges, architecture design and technical\ 525 | \ difficulties in each aspect of the observability platform \n3. best practices\ 526 | \ and use of Python technologies\n4. future expectations" 527 | intro: 'Head of Alibaba Cloud SLS Shanghai. He has been in business for more 528 | than 10 years. He used to be a senior technical architect of Splunk China 529 | Lab, and he is good at AIOps/SecOps big data analysis platform construction 530 | and scenario implementation. 531 | 532 | 533 | Willing to share, past PyCon/Yunqi/CSDN conferences or live lecturers, sharing 534 | more than 20 different topic speeches or live broadcasts, nearly a hundred 535 | technical product articles, covering open source AIOps middle station construction, 536 | observable alarm operation and maintenance platform practice, big data Analysis 537 | and visualization, workflow scheduling, functional, design patterns and other 538 | aspects have been well received.' 539 | keynote: true 540 | slug: low-code 541 | speaker: Laiqiang Ding 542 | title: Low-code technology practices in observability platforms 543 | venue: A 544 | - avatar: /2021/assets/people/KinfeyLo.jpg 545 | company: Microsoft Cloud Advocate 546 | desc: "I believe that every developer used Github , but do you know Github Action\ 547 | \ ? It can do CI / CD iterations for your application better. This course\ 548 | \ is for Python in cloud-native, IoT, machine learning scenarios combined\ 549 | \ with GitHub\n Action completes modern application deployment and management,\ 550 | \ including Python environment updates, Python backend development iterations,\ 551 | \ IoT scenario extensions, and MLOps-based machine learning full scenario\ 552 | \ optimization." 553 | intro: "- Microsoft Cloud Advocate, former Microsoft's most valuable home, 554 | regional director of Microsoft technical community 555 | 556 | - More than 10 years of experience in cloud native, mobile applications, and 557 | artificial intelligence, providing solutions for education, finance, healthcare, 558 | and telecommunications 559 | 560 | - At this stage, I mainly preach related technologies and technical solutions 561 | for different industries" 562 | keynote: true 563 | slug: github-action 564 | speaker: Kinfey Lo 565 | title: Let Github Action accelerate your Python application scenario iterations 566 | venue: B 567 | - end: '11:45' 568 | start: '11:00' 569 | talks: 570 | - avatar: /2021/assets/people/ZhuXingliang.jpg 571 | company: Neo4j certified expert, Microsoft MCT, former Microsoft MVP 572 | desc: A movie has multiple roles such as actor, director, producer, and writer. 573 | Sometimes the actor and producer are the same person, and the movie also has 574 | a lot of properties. How to design and develop from the database to the front-end 575 | application? This session will get you started with Graph Database modeling, 576 | and then build API and front-end application, perhaps a full-stack application 577 | development method you haven't seen before. 578 | intro: "- Shiny Zhu who is a Neo4j Certified Professional, Microsoft MCT and\ 579 | \ ex-Microsoft MVP. \n- He has 15+ years of experience in software development,\ 580 | \ and recognized himself as an almost full stack developer. \n- He has been\ 581 | \ active in several developer communities for 10+ years. \n- Now he is working\ 582 | \ in both development and community as a developer advocate of Neo4j in APAC.\ 583 | \ \n- He is learning Graph Data Science and application development that opened\ 584 | \ a new data app development perspective." 585 | keynote: true 586 | slug: movie-app 587 | speaker: Xingliang Zhu 588 | title: Building a movie full stack app with Python in the Graph way 589 | venue: A 590 | - avatar: /2021/assets/people/ZhaoXin.jpg 591 | company: Qihoo360, network security expert 592 | desc: "\"The \"art\" of Python security testing automation focuses on information\ 593 | \ security testing.\"Python has become the mainstream script\n development\ 594 | \ language, occupying the top of the list. Based on the\n vulnerabilities,\ 595 | \ penetration testing tools and attack means used in daily\n network security\ 596 | \ attack and defense, it introduces the principle of Python\n automated security\ 597 | \ testing in a comprehensive and fitting way, It can make\n the audience\ 598 | \ feel the smell of \"hacker Python\"." 599 | intro: '- Two years of information security lecturer experience 600 | 601 | - Good at Web penetration testing, code audit, vulnerability mining, tool 602 | development 603 | 604 | - Has its own unique understanding of Web automated penetration testing' 605 | keynote: true 606 | slug: auto-test 607 | speaker: Xin Zhao 608 | title: The "art" of Python security testing automation 609 | venue: B 610 | - end: '12:00' 611 | start: '11:45' 612 | talks: 613 | - avatar: null 614 | company: '' 615 | desc: '' 616 | intro: '' 617 | keynote: false 618 | slug: '' 619 | speaker: '' 620 | title: Venue Introduction 621 | venue: '' 622 | - end: '12:00' 623 | start: '09:30' 624 | type: pyhouse 625 | talks: 626 | - speaker: PyCon China Orginizers 627 | keynote: false 628 | title: Pythonista AMA 629 | venue: PyHouse 630 | - end: '13:00' 631 | start: '12:00' 632 | type: break 633 | talks: 634 | - avatar: null 635 | company: '' 636 | desc: '' 637 | intro: '' 638 | keynote: false 639 | slug: '' 640 | speaker: '' 641 | title: Lunch break 642 | venue: '' 643 | - end: '13:45' 644 | start: '13:00' 645 | talks: 646 | - avatar: /2021/assets/people/GuSiwei.jpg 647 | company: Vesoft Inc. 648 | desc: "What is a graph database? Why Yet Another Database? What problems can 649 | it solve? 650 | 651 | This talk will demystify graph databases and share, demo from zero to one, 652 | the speaker's own interesting open source projects built in Python based 653 | on graph databases. 654 | 655 | - Nebula Siwi, a full-stack single-domain intelligent question-and-answer 656 | bot built on graph database and Python 657 | 658 | - Equity penetration, a small project based on Python Faker to generate data 659 | to demonstrate the equity relationship penetration query" 660 | intro: 'I am a software engineer in Shanghai, and I am a community developer 661 | evangelist for Nebula Graph (open source distributed graph database) at vesoft. 662 | 663 | 664 | My job is to improve the learning, development, and community participation 665 | experience of developers by creating content around Nebula Graph Database 666 | and building tools. 667 | 668 | 669 | I work in the open source community, and (spent the first few years of my 670 | career to realize) love to use my own ideas and learned techniques to help 671 | others, I think this is a kind of honor and precious opportunity. 672 | 673 | 674 | - More content of my introduction: https://siwei.io/about/ 675 | 676 | - Some of my previous talks: https://siwei.io/talk/ 677 | 678 | - Personal twitter: https://twitter.com/wey_gu 679 | 680 | 681 | ### Past experience 682 | 683 | I worked at Ericsson for nearly ten years: from 2011 to 2021. The role is 684 | the system manager of the cloud computing product Cloud Execution Envrioment 685 | (CEE) R&D team. Most of my work is through the design and development of more 686 | than 20 CEE 6.6.2 and CEE 10 functions and improvements, covering computing, 687 | storage, network, and life cycle Management and security, etc., to help Ericsson''s 688 | IaaS products and solutions continue to evolve. At the same time, I am also 689 | responsible for the evangelism of CEE products in China (external and internal). 690 | 691 | 692 | Host of the "Open Source Face to Face" podcast (Unfortunately, only the zeroth 693 | issue was released)' 694 | keynote: true 695 | slug: graph-database 696 | speaker: Siwei Gu 697 | title: Graph database mystery solving and hands-on application 698 | venue: A 699 | - avatar: /2021/assets/people/EvgenyDemchenko.jpg 700 | company: Stealth Startup 701 | desc: "Behavior-driven Development (or Acceptance Test-driven Development) is\ 702 | \ a powerful Agile engineering practice that compliments other Agile and XP\ 703 | \ practices such as TDD, Continuous Delivery, etc.\n\nBDD Scenarios are high-level\ 704 | \ feature tests acting as \"Specification by Example\" written in a Gherkin\ 705 | \ DSL which is accessible to non-technical team members (like Product Managers,\ 706 | \ QA, etc).\n\nIn this talk, we'll explore:\n- what BDD is\n- what are its\ 707 | \ technical and team benefits \n- what are the best Python tools for BDD (behave,\ 708 | \ pytest-bdd, cucumber)\n- how to use those tools and how to write BDD scenarios\n\ 709 | \nThis will be a powerful new tool in your arsenal that you can bring back\ 710 | \ to your project and your team!" 711 | intro: '- Experienced CTO, team lead, CSM, architect, Agile practitioner, front-end 712 | and back-end software developer with enormous experience in a large range 713 | of modern web technologies. Also experienced in desktop and mobile application 714 | development and Web APIs. 715 | 716 | - Particularly passionate about Python, Django, Extreme Programming, DevOps 717 | culture, and Agile/Lean software development. 718 | 719 | - The organizer of the Beijing Python Meetup.' 720 | keynote: true 721 | slug: bdd 722 | speaker: Evgeny Demchenko 723 | title: Behavior-driven Development in Python 724 | venue: B 725 | - title: 726 | - end: '14:30' 727 | start: '13:45' 728 | talks: 729 | - avatar: /2021/assets/people/LvShaogang.webp 730 | company: CTO of Boldseas Technology Ltd. 731 | desc: Deep learning has been adopted in more and more industries in the recent 732 | 10 years. It changes the human society much more than the past years. So what 733 | kind of problems could it be leveraged at? How to open the door of deep learning, 734 | where should I start as a beginner? In the sharing, I will introduce the process 735 | of deep learning, some important fundamental math background. and will talk 736 | about how neural network works in deep learning. And will demo how to build 737 | a neural network, and how to design different level algorithm for the network. 738 | Last but not least, how to set up a production service for a neural network. 739 | intro: "A years Pythonist. I have been working many year in the field of search\ 740 | \ engine and algorithm. \n\nI was in behave of Dianping Search Engine and\ 741 | \ Algorithm Team. \n\nI built the team from ground up, I designed and implemented\ 742 | \ a scalable search engine and ranking algorithm platform at Dianping. \n\ 743 | \nI am working on the industrial application of deep learning currently, and\ 744 | \ scalable deep learning platform design and optimizing." 745 | keynote: true 746 | slug: image-dl 747 | speaker: Shaogang Lv 748 | title: Build a neural network in python for image recognition 749 | venue: A 750 | - avatar: /2021/assets/people/PanJunyong.jpg 751 | company: Serial entrepreneur, early organizer of Python/Zope user community 752 | in China 753 | desc: "Zope is a formerly brilliant web framework 20 years ago, known for its\ 754 | \ rapid development of applications directly on the browser, but wrong decisions\ 755 | \ and nearly dead.\r\n\r\neasyweb is a new generation of open source web framework\ 756 | \ that inherits Zope's premium home base and seeks to provide developers with\ 757 | \ a better low-code web development experience in the cloud era.\r\n\r\nThis\ 758 | \ topic will introduce some of easyweb's innovative designs, including cloud\ 759 | \ functions, Python front-end framework, visual model design, and visual workflow\ 760 | \ definition." 761 | intro: 'Serial entrepreneur, early organizer of Python/Zope user community in 762 | China 763 | 764 | 765 | Long engaged in the development of Python-based enterprise content management 766 | and low-code platforms' 767 | keynote: true 768 | slug: easyweb 769 | speaker: Junyong Pan 770 | title: "easyweb: a tribute to Zope's open source web framework for the cloud 771 | era" 772 | venue: B 773 | - title: Interview with creator of Python Developer Survey 774 | venue: PyHouse 775 | speaker: Binxin Wang 776 | keynote: false 777 | - end: '15:15' 778 | start: '14:30' 779 | talks: 780 | - avatar: /2021/assets/people/WuJingjing.jpg 781 | company: School of Artificial Intelligence, Beijing University of Posts and 782 | Telecommunications 783 | desc: python-wechaty is a framework for developers to quickly develop intelligent 784 | chatbots, using a set of code can run on a variety of different IM platforms, 785 | such as WeChat, enterprise WeChat, WeChat Public, Nail, FeiShu and WhatsApp 786 | and so on. Rich plug-ins allow developers to quickly implement conversation 787 | platform docking, such as Microsoft QnaMaker, LUIS has a simple and easy to 788 | understand interface, easy to extend plug-ins, platform one-click adaptation 789 | and many other features. 790 | intro: "- Master's degree in School of Artificial Intelligence, Beijing University 791 | of Posts and Telecommunications 792 | 793 | - Microsoft China Natural Language Processing Intern 794 | 795 | - Author of [python-wechaty](https://github.com/wechaty/python-wechaty) 796 | 797 | - chatbot and deep learning technology enthusiasts" 798 | keynote: true 799 | slug: python-wechaty 800 | speaker: Jingjing Wu 801 | title: Python-Wechaty:Conversational RPA SDK 802 | venue: A 803 | - avatar: /2021/assets/people/zhangxing.jpg 804 | company: Lunion Data CTO/Full stack engineer 805 | desc: "Introduction to problems and methods of data processing in brain science\n\ 806 | 1. Python ecology in brain science\n * Data storage format\n * Data\ 807 | \ analysis method\n * Data presentation form\n2. Saas application practice\ 808 | \ for sleep classification based on EEG data\n * Web technology architecture\n\ 809 | \ * Storage and calculation strategy\n * Visualization method\n3. A\ 810 | \ brief description of the application of neuron classification for EEG data\n\ 811 | 4. Follow-up application and technical challenges\n5. Some small detours using\ 812 | \ python" 813 | intro: '- 2017~2019 Alibaba Algorithm Specialist / Data R&D Specialist 814 | 815 | - 2015~2017 Coupang Senior Data Engineer' 816 | keynote: true 817 | slug: python-brain-science 818 | speaker: Xing Zhang 819 | title: Practice of Data Application in Brain Science 820 | venue: B 821 | - title: Mobile Office Experience for Freelancers 822 | venue: PyHouse 823 | speaker: Feng Li / Shaogang Lu / Jintao Zhang 824 | keynote: false 825 | - end: '15:30' 826 | start: '15:15' 827 | type: break 828 | talks: 829 | - avatar: null 830 | company: '' 831 | desc: '' 832 | intro: '' 833 | keynote: false 834 | slug: '' 835 | speaker: '' 836 | title: Halftime/Lottery 837 | venue: '' 838 | - end: '16:15' 839 | start: '15:30' 840 | talks: 841 | - avatar: /2021/assets/people/MengFanchao.jpg 842 | company: Full-stack engineer of Tesla Shanghai Gigafactory, former ThoughtWorker, 843 | GDG community lecturer, loves Python, Golang and K8s 844 | desc: In this talk, we will introduce how to use dash and echarts to quickly 845 | build a large visualization screen. With the dash framework, data engineers 846 | can easily build dynamic reports, while echarts' rich legends make data representation 847 | more vivid and intuitive. This session will quickly introduce the basic methods 848 | of using dash and echarts together, and provide step by step instructions 849 | for creating complex charts such as maps, so that you can quickly master the 850 | use of dash and echarts. 851 | intro: 'A true full-stack engineer who has tossed JTAG debugger, embedded compiler, 852 | IDE, front and back end, Docker, K8s, good at writing "hello world"s in ANY 853 | languages. 854 | 855 | 856 | Recently, I was tossing about things related to data visualization in a mysterious 857 | car factory, trying to use python to get everything, and using python as the 858 | language of life for the elderly.' 859 | keynote: true 860 | slug: dash-echarts 861 | speaker: Fanchao Meng 862 | title: Building Interactive Dashboards with Dash & ECharts 863 | venue: 'A' 864 | - avatar: /2021/assets/people/Yufangye.jpg 865 | company: Neo4j Tech Expert 866 | desc: | 867 | This session will introduce how to quickly build a large visualization screen using dash and echarts. 868 | With dash framework, data engineers can easily build dynamic reports, while the rich legend of echarts makes 869 | the data presentation more vivid and intuitive. This sharing will quickly introduce the basic methods of using 870 | dash and echarts together, and provide step by step guidance for creating complex charts such as maps. 871 | This session will provide a step by step guide for creating complex charts such as maps, so that you can quickly master the use of dash and echarts. 872 | intro: Years of experience in architecture design and software development, with a particular passion for data analysis, now as Technical Director of Neo4j APAC 873 | keynote: true 874 | slug: python-graphic-data 875 | speaker: Fangye Yu 876 | title: Python+Graph Data Science - Insurance Fraud Detection in Action 877 | venue: B 878 | - end: '17:00' 879 | start: '16:15' 880 | talks: 881 | - avatar: null 882 | company: '' 883 | desc: "### Build Large-Scale Data Analytics and AI Pipeline Using RayDP\n\n\ 884 | speaker: Zhi Lin\n\nintro:\nThis talk will introduce our work RayDP, also\ 885 | \ known as Spark on Ray.\n1. a short introduction to Spark and ray, and why\ 886 | \ we are doing this project.\n2. how raydp works, a brief introduction to\ 887 | \ the principles.\n3. what we can do with raydp and what are the benefits\ 888 | \ compared to the traditional approach. Introduce a few typical scenarios.\ 889 | \ 4.\n4. answer questions and discuss\n\n### What Python could learn from\ 890 | \ Golang\n\nspeaker: yingshaoxo\n\nintro:\nWe love Python for its simplicity.\n\ 891 | \nBut we also wish that it could be a powerful programing language for production.\n\ 892 | \nThat's why I made this video.\n\nAll I want to do is to make Python a better\ 893 | \ programming language.\n\n### How to contribute to an open source project\ 894 | \ without writing code?\n\nspeaker:Ruofei Zhao\n\nintro: \nPerhaps most developers\ 895 | \ are under the impression that contributing code is the only way to contribute\ 896 | \ to an open-source project. Is the only way to become a contributor is by\ 897 | \ coding? If I'm not a developer, how can I become a contributor to an open-source\ 898 | \ project and even get promoted to committer? I will share with you other\ 899 | \ many ways to contribute to open source projects without coding." 900 | intro: '' 901 | keynote: false 902 | slug: lightning_2_b 903 | speaker: '' 904 | title: Lightning Talks 905 | venue: A 906 | - avatar: /2021/assets/people/WangHao.jpg 907 | company: Databricks Partner Solutions Architect 908 | desc: 909 | intro: Databricks Partner Solutions Architect,received MSc degree in CS, NUS 910 | keynote: true 911 | slug: pyspark 912 | speaker: 汪浩 913 | title: PySpark application in big data processing. 914 | venue: B 915 | - end: '17:15' 916 | start: '17:00' 917 | talks: 918 | - avatar: null 919 | company: '' 920 | desc: '' 921 | intro: '' 922 | keynote: false 923 | slug: '' 924 | speaker: '' 925 | title: Lottery 926 | venue: '' 927 | -------------------------------------------------------------------------------- /data/schedule.yaml: -------------------------------------------------------------------------------- 1 | # - venue: 2 | # title: justo sit amet sapien 3 | # speaker: 万哲恒 4 | # company: Microsoft 5 | # intro: Praesent lectus. Vestibulum quam sapien, varius ut, blandit non, interdum in, ante. 6 | # Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; 7 | # Duis faucibus accumsan odio. Curabitur convallis. Duis consequat dui nec nisi volutpat eleifend. 8 | # desc: Praesent lectus. Vestibulum quam sapien, varius ut, blandit non, interdum in, ante. 9 | # Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; 10 | # Duis faucibus accumsan odio. Curabitur convallis. Duis consequat dui nec nisi volutpat eleifend. 11 | # avatar: http://dummyimage.com/200x200.png/cc0000/ffffff 12 | # slug: justo-sit-amet-sapien 13 | # keynote: true 14 | schedule: 15 | - date: 10/16 16 | events: 17 | - end: '10:15' 18 | start: 09:30 19 | talks: 20 | - avatar: /2021/assets/people/Ewa.jpg 21 | company: Python 软件基金会执行董事 22 | desc: '' 23 | intro: 24 | "Ewa Jodlowska 是 Python 软件基金会的执行董事。 Ewa 自 2012 年以来一直在 PSF 工作,在此之前,她一直作为承包商协助\ 25 | \ PyCon US。 在 PSF 中,Ewa 不仅负责管理员工、为基金会提供方向和领导,还要与董事会合作进行长期战略规划、社区外展以及监督财务和项目运营。\ 26 | \ \n\nEwa 将在 2021 年底踏上新的职业道路,她将怀念与世界各地 Pythonista 共事的时光!\n\n关注 Ewa 的 Twitter\ 27 | \ 账户,获取她的最新动态!" 28 | keynote: true 29 | slug: psf-in-python-ecosystem 30 | speaker: Ewa Jodlowska 31 | title: The Python Software Foundation's role in Python's ecosystem 32 | venue: '' 33 | - end: '11:00' 34 | start: '10:15' 35 | talks: 36 | - avatar: /2021/assets/people/XiaoHan.jpg 37 | company: Jina AI 创始人及 CEO 38 | desc: '' 39 | intro: '- Jina AI 创始人及 CEO,热门开源项目 Fashion-MNIST 和 Bert-as-service 的作者 40 | 41 | - 曾在腾讯 AI Lab 负责基于深度学习搜索项目研发,作为腾讯开源办公室成员,代表腾讯担任 LFAI 开源基金会董事,并促进腾讯加入 TODO 42 | 基金会 43 | 44 | - 曾在德国 Zalando 公司担任高级研究员 45 | 46 | - 2014 年获得德国慕尼黑工业大学计算机博士学位。' 47 | keynote: true 48 | slug: ai-first 49 | speaker: 肖涵 50 | title: 'The First Step to AI-First: Forget About AI' 51 | venue: '' 52 | - end: '11:45' 53 | start: '11:00' 54 | talks: 55 | - avatar: /2021/assets/people/Taichi.jpg 56 | company: 太极图形科技 57 | desc: '' 58 | intro: '胡渊鸣:太极图形科技 CEO,太极编程语言创始人 59 | 60 | 61 | 张爱玲:太极图形科技编译器架构师' 62 | keynote: true 63 | slug: high-performance-parallel 64 | speaker: 胡渊鸣&张爱玲 65 | title: 在 "Python" 中实现高性能并行计算 66 | venue: '' 67 | - end: '12:00' 68 | start: '11:45' 69 | talks: 70 | - avatar: /2021/assets/people/LiZheao.png 71 | company: 太极图形资深工程师,微软 MVP 72 | desc: '' 73 | intro: '* 猫奴 74 | 75 | * 一个热爱 Python 的人 76 | 77 | * 太极图形搬砖者,欢迎一起搬砖' 78 | keynote: false 79 | slug: '' 80 | speaker: 李者璈 81 | title: 分会场介绍 & 抽奖 82 | venue: '' 83 | - end: '12:00' 84 | start: '09:30' 85 | type: pyhouse 86 | talks: 87 | - speaker: PyCon China 组委会成员 88 | keynote: false 89 | title: Pythonista 之间的真心话 90 | venue: PyHouse 91 | - end: '13:00' 92 | start: '12:00' 93 | type: break 94 | talks: 95 | - avatar: null 96 | company: '' 97 | desc: '' 98 | intro: '' 99 | keynote: false 100 | slug: '' 101 | speaker: '' 102 | title: 午间休息 103 | venue: '' 104 | - end: '13:45' 105 | start: '13:00' 106 | talks: 107 | - avatar: /2021/assets/people/Aber.jpg 108 | company: 安天实验室 109 | desc: 110 | 本演讲主要阐述如何使用 Guido 为 Python3.9 编写的 PEG 解析器创造一个 Python 超集,加入自己想要的语法,给 Python 111 | 带来新的活力。其次演示我使用这种技术编写的超集语言 —— 鸣蛇,它包含管道,偏函数,空值合并、可选链等便捷的语法,并且可以直接把鸣蛇的代码作为 Python 112 | 的模块进行导入,而不需要提前编译。 113 | intro: 鸣蛇的创造者,Index.py、baize 等非知名 Web 框架、工具箱的制作者 114 | keynote: true 115 | slug: python-with-sugar 116 | speaker: Aber 117 | title: 为 Python 加糖 —— 鸣蛇 118 | venue: A 119 | - avatar: /2021/assets/people/ZhangJintao.jpg 120 | company: 技术专家,Kubernetes ingress-nginx 审查者,Apache APISIX 贡献者 121 | desc: 122 | '云原生已成为当前最火热的技术趋势之一。伴随着一众 CI/CD、GitOps 理念的流行,如何保障 Python 项目的高效交付,及提升应用整体的稳定性也是众多开发者面临的共同问题之一。 123 | 124 | 125 | 本次分享将从实践出发,介绍如何打造 Python 项目的云原生 GitOps 工具链,在保障应用稳定性的前提下,更高效的完成项目的交付。' 126 | intro: '- 技术专家 127 | 128 | - Kubernetes ingress-nginx 审查者 129 | 130 | - Apache APISIX 贡献者 131 | 132 | - 公众号:MoeLove' 133 | keynote: true 134 | slug: python-cloud-git-ops 135 | speaker: 张晋涛 136 | title: 打造 Python 项目的云原生 GitOps 工具链 137 | venue: B 138 | - end: '14:30' 139 | start: '13:45' 140 | talks: 141 | - avatar: /2021/assets/people/FrostMing.jpg 142 | company: PyPA 成员,PDM 作者及 Pipenv 维护者 143 | desc: 144 | Python 打包是个每个 Python 开发都可能用到并且需要了解的知识。演讲试图从 Python 打包的历史进程开始,阐述 pip install 145 | 背后发生的过程,同时介绍当前 Python 打包的最佳实践。 146 | intro: '- PyPA 成员,PDM 作者及 Pipenv 维护者 147 | 148 | - 致力于改善 Python 打包生态 149 | 150 | - 同是也是一位有丰富经验的 Python Web 开发者' 151 | keynote: true 152 | slug: python-packaging-101 153 | speaker: 明希 154 | title: Python 打包 101 155 | venue: A 156 | - avatar: /2021/assets/people/WangBo.jpg 157 | company: Jina AI AI Engineer 158 | desc: 159 | '每个 Python 使用者都知道 ndarray 是 Numpy 的基础数据结构,DataFrame 是 Pandas 的基础数据结构。作为开源,搜索与人工智能的融合,在 160 | Jina 项目开发初期,我们想让用户能够在最短的时间内快速学习,使用并转化为 Jina 的用户,甚至贡献者。因此我们需要一套有强大表现力的数据结构来支撑这一目标。如今随着 161 | Jina2.0 的发布,我们在 Github 上收获了 1 万 + 星星,这离不开简洁易用的 Jina Primitive Data Types。在这个演讲中,我想要讨论几个话题: 162 | 163 | 164 | 1. 设计 Jina Primitive Data Types 的初衷(动机) 165 | 166 | 2. 我们的设计准则 167 | 168 | 3. 数据结构的演进 169 | 170 | 4. 将来的发展方向 171 | 172 | 173 | 希望这个 30 分钟的演讲能够在某种程度上启发大家使用 Python 设计出强大的数据结构,避免可能遇到的弯路。' 174 | intro: 175 | '- 本科毕业于兰州大学,硕士毕业于荷兰代尔夫特理工大学(2017),多媒体信息检索方向。 176 | 177 | - 曾在 IBM(阿姆斯特丹),Sensara(鹿特丹)供职 AI Engineer,目前在 Jina AI(柏林)担任 AI Engineer。 178 | 179 | - 曾在 ACM Multimedia 等学术期刊与 workshop 发表论文 3 篇,在 ECIR 等学术会议代表 Jina AI 演讲。 180 | 181 | - 兴趣为人工智能与信息检索的交叉(neural information retrieval)与开源。 182 | 183 | - 是 Jina(11,000 star)的主要维护者,也是基于深度学习和 Python 的信息检索库 MatchZoo (3500 star)的核心开发者。' 184 | keynote: true 185 | slug: primitive-data-types 186 | speaker: 王博 187 | title: 'Robust & Ease to use: The Design and Evolution of Python-based Primitive 188 | Data Types' 189 | venue: B 190 | - end: '15:15' 191 | start: '14:30' 192 | talks: 193 | - avatar: /2021/assets/people/TanXiao.jpg 194 | company: 亚信科技高级开发 195 | desc: 196 | Python3.10 新语法特性 Structual Pattern Matching 只是增强版的 switch case?我将在分享中讲解,模式匹配中的模式是什么;各个语言的模式匹配实现;Python 197 | 的模式匹配支持哪些语法,使用模式匹配的优点和缺点;自己动手实现模式匹配。 198 | intro: '- 亚信科技高级开发,前蚂蚁金服开发工程师,多年 Web 前后端经验 199 | 200 | - 目前从事低代码、3D 可视化领域的开发' 201 | keynote: true 202 | slug: pattern-matching 203 | speaker: 谭啸 204 | title: 如何用好 Python 的模式匹配语法 205 | venue: A 206 | - avatar: /2021/assets/people/WangHailiang.jpg 207 | company: Chatopera 联合创始人 & CEO 208 | desc: 209 | "对于数据科学家和开发者,自然语言处理是实现人工智能应用的一个主要方面,作为 Python 开发者,我需要怎么入门,有哪些好的工具?作为若干\ 210 | \ Python\n 自然语言处理相关包的贡献者或发布者,本分享将对同义词处理、中文语料数据集、依存关系分析、词向量、聚类分析和聊天机器人等知识娓娓道来。" 211 | intro: '- Chatopera 联合创始人 & CEO 212 | 213 | - 2011 年毕业于北京邮电大学,后加入 IBM 工作四年,先后工作于软件开发实验室和创新中心 214 | 215 | - 从 2016 年开始工作于创业公司,三角兽 AI 算法工程师,呤呤英语 AI 产品负责人,负责智能对话系统研发。 216 | 217 | - 具有丰富的项目落地经验,熟悉机器学习,搜索引擎,自然语言处理,业务流程引擎。 218 | 219 | - 2018 年出版行业首本问答对话机器学习书籍《智能问答与深度学习》,并在 GitHub 上发布了大量的开源项目,在开发者社区得到了广泛的认可。' 220 | keynote: true 221 | slug: nlp 222 | speaker: 王海良 223 | title: 使用 Python 完成若干自然语言处理任务 224 | venue: B 225 | - end: '15:15' 226 | start: '13:00' 227 | type: pyhouse 228 | talks: 229 | - speaker: 青云 / Mavin / 许智翔 / 李者璈 230 | keynote: false 231 | title: 开源项目那些事 232 | venue: PyHouse 233 | - end: '15:30' 234 | start: '15:15' 235 | type: break 236 | talks: 237 | - avatar: null 238 | company: '' 239 | desc: '' 240 | intro: '' 241 | keynote: false 242 | slug: '' 243 | speaker: '' 244 | title: 中场休息 / 抽奖 245 | venue: '' 246 | - end: '16:15' 247 | start: '15:30' 248 | talks: 249 | - avatar: /2021/assets/people/LiZheao.png 250 | company: 太极图形资深工程师,微软 MVP 251 | desc: 252 | '随着云计算的进一步发展,我们所要面临的线上问题也越来越复杂化。我们可能在线上排查问题时需要去深入到内核中,去获取包含并不仅限于网络包,进程信息在内的各种相关的信息。这也让我们对 253 | Linux 内核调试工具的需求也日渐增加 254 | 255 | 256 | 在 Linux 4.x 之后,Linux 在内核中提供了 eBPF 在内的良好的工具让我们能够升入到内核去获取到我们所需要的信息。 257 | 258 | 259 | 本次演讲将带大家从一些实际的例子出发,去一点点感受 Python + BCC 给我们线上调试所带来的便利' 260 | intro: '* 猫奴 261 | 262 | * 一个热爱 Python 的人 263 | 264 | * 太极图形搬砖者,欢迎一起搬砖' 265 | keynote: true 266 | slug: python-bcc 267 | speaker: 李者璈 268 | title: Python 与 BCC 的结合:内核可观测性的新手段 269 | venue: A 270 | - avatar: /2021/assets/people/LomisChen.jpg 271 | company: 微软项目经理 272 | desc: 273 | 在过去的几年里,python 在数据科学和机器学习中的应用是爆炸性的,而且社区中的开发者需求和支持也比以前多。在这次演讲中,我将带领大家了解如何在微软的各种工具中无缝地执行从探索性分析到机器学习的任务,包括 274 | GitHub、Visual Studio Code 以及 Azure 机器学习。 275 | intro: 276 | "Lomis Chen 目前是 Microsoft 的项目经理,专注于为 Azure 上的 Python 开发人员提供数据科学和 AI 工具。\n\ 277 | \n 她对 UX 和数据科学有着浓厚的兴趣,之前曾在 Azure CLI 上工作,专注于 UX 和 CSAT 改进。\n\n 在加入 DevDiv\ 278 | \ 之前,她曾在 CodeHub 内部源平台、静态代码分析服务以及 OSS 安全方面在 Windows 下工作。" 279 | keynote: true 280 | slug: data-science 281 | speaker: Lomis Chen 282 | title: 如何用 Github、VSCode 和 Azure 优化数据科学工作效率 283 | venue: B 284 | - end: '17:00' 285 | start: '16:15' 286 | talks: 287 | - avatar: null 288 | company: '' 289 | desc: 290 | "### 用 PyParsing/PEG 设计自己的计算机语言\n\n演讲者:宋丛威\n\n演讲内容简介:\n用 PyParsing/PEG\ 291 | \ 设计自己的计算机语言:\n学习了很多计算机语言之后,让很多人产生自己设计计算机语言的想法。关键的任务是设计语言的语法解析器。目前大多数语言的解析是基于上下文无关文法的。表达式解析文法\ 292 | \ PEG 作为上下文无关文法的潜代品,同样可以实现计算机语言解析器,并且有诸多形式文法不具有的优点,如易于实现,解析快速,无歧义等。此外专家们正在尝试用\ 293 | \ PEG 实现 Python 的解析器。pyparsing 是 Python 简单易用的 PEG 包。演讲的主要目的是演示如何用 pyparsing\ 294 | \ 设计解析器。涉及 PEG 原理和解析器实现技巧,pyparsing 设计风格,还会展示自己设计的计算机语言,以及一系列有趣的实例。\n\n\n\ 295 | ### AI 结对编程\n\n演讲者:Geert Heyman\n\n演讲内容简介:\n我将介绍一个来自诺基亚贝尔实验室的 \"AI 结对编程\"\ 296 | \ 研究原型,该原型旨在帮助 Python 开发者在数据科学应用中更好的使用开源开代码库。\n我们的 AI 助手可以在 Jupyter notebooks\ 297 | \ 中使用,它可以根具自然语言生成 Python 代码,这种做法我们称之为 \"自然语言引导的编程\"。也就是说,开发者可以通过在代码里写一些简短的注释的方法(例如,\"\ 298 | 在柱状图中绘制这个数据\")来向 AI 查询他们需要的上下文代码片段。\n \n我将在很高的视角上解释我们是如何训练这个 AI 结对编程项目的核心机器学习模型。这里会重点介绍\ 299 | \ 这个新一代自动生成代码工具的最佳实践和踩坑经验。\n我们训练好的这个机器学习模型已经发布在 Hugging Face model hub , 而且非常的轻量级,不需要部署在非常昂贵的机器上。\n\ 300 | \n### Python 助你快速上手 Apache APISIX 开发\n \n演讲者:帅进超\n\n演讲内容简介:\nPython 作为一个有着\ 301 | \ 30 年历史的开发语言,它丰富的生态和简洁语法受到了很多人的青睐,并且在人工智能、科学计算、Web 开发等领域广泛的实践,本次分享我将介绍下通过\ 302 | \ Python 结合 Apache APISIX 在 API 网关上的应用。为了实现通过 Python 无侵入的开发 Apache APISIX\ 303 | \ 插件在社区中我们开发了一个 Apache APISIX Python Runner 的项目通过 Python Runner 的加持可以让开发者在使用\ 304 | \ Python 开发 Apache APISIX 插件时无需关注 Nginx C 和 Lua 的实现细节,只需专注 Python 插件的业务逻辑即可。\ 305 | \ \n本次分享我也会通过一个案例来为大家实践演示一下,如何通过简单几行 Python 代码完成一个 Apache APISIX 插件的开发并应用到\ 306 | \ Apache APISIX 中,欢迎感兴趣的小伙伴来一起交流。" 307 | intro: '' 308 | keynote: false 309 | slug: lightning_1_a 310 | speaker: '' 311 | title: 闪电演讲 312 | venue: A 313 | - avatar: null 314 | company: '' 315 | desc: 316 | "### ast 模块如何帮助 Jina Hub 开发者高效开发\r\n \r\n演讲者:王楠\r\n\r\n演讲内容简介:\r\n本次演讲主要通过\ 317 | \ Python 原生的 Abstract Syntax Tree(ast)模块在 Jina Hub 中的应用,讲述我们如何帮助 Jina Hub\ 318 | \ 开发者社区兼顾开发效率和可维护性。Jina Hub 旨在为开发者提供使用 Jina 构建神经搜索系统所需的各种 Executor,开发者不仅可以在\ 319 | \ Jina Hub 找到所需的 Executor,而且能够发布定制化 Executor 并与整个社区分享。通过使用 ast 模块解析开发者的代码,我们实现对\ 320 | \ Dockerfile 和安装依赖包的自动生成和标准化管理,使得开发者能够更专注于 Executor 的核心功能开发。此外,我们使用 ast 模块帮助开发者自动生成\ 321 | \ Executor 的详情介绍,进一步便于开发者与社区分享。ast 模块使我们能够在保证社区开发效率的同时,提高代码的可维护性,从而降低开发门槛,吸引更多的开发者加入\ 322 | \ Jina Hub 社区。\r\n\r\n\r\n### 用 AI 识别基因,从向量化 DNA 序列开始\r\n \r\n演讲者:顾梦佳\r\n\r\ 323 | \n演讲内容简介:\r\nDNA 序列在分子生物学和医药研究中有着广泛的应用,比如基因溯源、物种鉴定、疾病诊断等。如果结合正在兴起的基因大数据,采取大量的样本,那么通常实验结果更具说服力,也能够更有效地投入现实应用。然而传统的核酸序列比对方法有着诸多限制,并不适用于大规模的数据,这使现实应用不得不在成本和准确率中做出取舍。为缓解核酸序列数据特性的掣肘,向量化是面对大量\ 324 | \ DNA 序列时的一个更优选择。实现 DNA 序列向量化可以在提高效率的同时,也帮助降低项目研究或系统搭建的成本。\r\n\r\n在这个想法的基础上,我们尝试结合\ 325 | \ NLP 模型和开源向量数据库 Milvus 搭建了一个基因序列分类系统。根据 Milvus 的 python SDK 用实验数据进行测试,结果发现该系统不仅毫秒之间能够识别基因的类别,还比机器学习领域里常见的分类器们更加精准。\r\ 326 | \n\r\n\r\n### Python 安全测试之二进制漏洞挖掘\r\n \r\n演讲者:吴帅\r\n\r\n演讲内容简介:\r\n安全测试中,二进制漏洞挖掘也是经常使用\ 327 | \ Python 进行联合,可以更好的将 Linux 下 ELF 程序与 Python 进行结合;本演讲主要通过介绍 CTF-pwn 中使用 Python\ 328 | \ 的”pwntools\"框架编写实例漏洞利用实例,破解程序拿到主机的权限;以漏洞的表现形式,展现如何使用 Python 处理安全领域中,二进制安全分支的\"\ 329 | \ 魅力”。" 330 | intro: '' 331 | keynote: false 332 | slug: lightning_1_b 333 | speaker: '' 334 | title: 闪电演讲 335 | venue: B 336 | - end: '17:00' 337 | start: '15:30' 338 | type: pyhouse 339 | talks: 340 | - keynote: false 341 | avatar: /2021/assets/people/Students.png 342 | title: 高中生、初中生参与 Python 开发的趣事 343 | venue: PyHouse 344 | speaker: 王俊杰 / 胡博文 / Andy Zhou / Rice Zong / 李辉 345 | company: '' 346 | intro: '高中生和初中生们是怎么学习 Python 的?他们都开发了什么项目?他们未来会计划做程序员吗? 347 | 在这场圆桌里,一个高中生和三个初中生会一起聊一聊他们学习和使用 Python 的经历,以及他们的未来畅想。' 348 | desc: ' 349 | - 王俊杰:上海市浦东中学高一学生,Python 开发者(Web,爬虫,自动化)PHP 开发者,前端开发,网络安全爱好者,接触 Python 4 年。 350 | Email: 351 | 352 | - 胡博文:上海市松江四中初三学生,喜爱编程,从初二开始自学 Python,是一名 Python 初学者。 353 | Email:。 354 | 355 | - Andy Zhou:一个普普通通的初中生,喜欢编程,尤其热爱 Python 和 Go,Flask 框架忠实的爱好者。 356 | 开源项目: 357 | 358 | - Rice Zong:来自上海,就读于上民办兰生复旦中学,2022 届初中学生,程序爱好者。从 2017 年起接触 Python, 359 | 多次与 Andy Zhou 合作完成学校项目。喜欢 Flask Web 应用开发,以及使用 Python 解决个人与团队问题,常用账号为 rice0208。 360 | 个人网站: 361 | 362 | - 李辉(主持人):Flask 维护者,编程和写作爱好者。个人网站: 363 | ' 364 | slug: 'young-pythonistas' 365 | - end: '17:15' 366 | start: '17:00' 367 | type: break 368 | talks: 369 | - avatar: null 370 | company: '' 371 | desc: '' 372 | intro: '' 373 | keynote: false 374 | slug: '' 375 | speaker: '' 376 | title: 抽奖 377 | venue: '' 378 | - date: 10/17 379 | events: 380 | - end: '10:15' 381 | start: 09:30 382 | talks: 383 | - avatar: /2021/assets/people/LiFeng.jpg 384 | company: 独立开发者 385 | desc: 386 | "最近十年 Python 已经稳居世界编程语言排名的前三,在诸如人工智能、数据处理、科学计算、运维等领域 Python 几乎都是首选开发语言。但由于很多原因迄今\ 387 | \ Python 代码的执行效率仍然不尽如人意,幸运地是近些年新兴的 Python 运行时不断涌现,带来了很多克服影响 Python 运行时性能瓶颈的实现新思路。本议题总结和比较了目前已有的各类\ 388 | \ Python 实现,并包含下列子话题:\r\n- 基于 C 的 Python 实现 \r\n - 让 CPython 更快;\r\n \ 389 | \ - 新的 Cinder 项目;\r\n- 基于 Java 的 Python 实现(如 GraalPython 和 Jython);\r\n-\ 390 | \ 基于 LLVM 的 Python 实现(如 Pyston); \r\n- 基于.Net 的 Python 实现(如 IronPython 和 Pyjion);\r\ 391 | \n- 基于 WASM 的 Python 实现(如 Pyodide);\r\n- 基于 Rust 的 Python 实现(如 RustPython);\r\ 392 | \n- 上述 Python 实现的比较和性能测试。" 393 | intro: '- 先后就职于摩托罗拉,三星等 IT 公司,现为独立开发者。 394 | 395 | - 在移动平台上积累了十年以上年研发经验,近几年主要专注于边缘计算 / 云计算基础设施领域。 396 | 397 | - 《灰帽黑客 第 4 版:正义黑客的道德规范、渗透测试、攻击方法和漏洞分析技术》(ISBN:9787302428671)和《恶意网络环境下的 Linux 398 | 防御之道 》(ISBN: 9787115544384)中文版的主要译者。 399 | 400 | - 对技术创新具有浓厚的兴趣和实践能力,热心参与开源社区的各种活动,之前参加的各种 IT 会议和技术分享请见: https://github.com/XianBeiTuoBaFeng2015/MySlides' 401 | keynote: true 402 | slug: python-impl 403 | speaker: 李枫 404 | title: Python 当前实现综述 405 | venue: A 406 | - avatar: /2021/assets/people/WangBinxin.png 407 | company: 阿里云 408 | desc: 409 | '很多人认为 Python 不适合用来开发大型服务端应用,觉得它慢、容易出错、难以维护等。事实真的是这样吗?或者我们该如何面对这些问题? 410 | 411 | 本次演讲会为大家分享一个大型云服务为何选择 Python 作为主要语言进行开发,如何在架构设计、开发、测试、监控、团队协作、应用发布等方面确保业务功能快速平稳实现,并保证代码的可维护性。' 412 | intro: '- 技术专家,微软 MVP 413 | 414 | - 《Python 最佳实践指南》中文版译者 415 | 416 | - 热爱参与开源项目和技术分享 417 | 418 | - 目前从事云计算领域的研发工作' 419 | keynote: true 420 | slug: python-big-scale 421 | speaker: 王斌鑫 422 | title: 如何开发和维护大型 Python 服务端应用 423 | venue: B 424 | - end: '11:00' 425 | start: '10:15' 426 | talks: 427 | - avatar: /2021/assets/people/LaiqiangDing.jpg 428 | company: 阿里云 SLS 上海团队负责人 429 | desc: 430 | "随着数智与自动化时代,企业业务创新加速,日益复杂的架构以及庞大的数据量,对企业对中心化大数据平台提 出了更高的要求。这使得可观测性 (Observability)\ 431 | \ 平台成为 DevOps/IT 管理领域的新趋势,另一方面,企业如 何快速构建应用、流程、业务解决方案持续积累,这两年也使得低代码 (Low-Code)\ 432 | \ 产品也在各个领域呈现爆发 式产生,其相关技术在可观测性平台下也同样适用。\n本次分享主要介绍在建设可观测性平台下时,如何使用低代码技术 (Python\ 433 | \ 为例),革新产品的使用体验并提高 场景灵活性与方案落地工程效率。覆盖数据灵活采集与加工、智能分析、监控告警、响应自动化等关键环节,涉 及云原生、流批计算、OLAP、DSL、编排与模板化技术等。\n\ 434 | 演讲提纲:\n1. 可观测性与低代码技术背景概述\n2. 可观测性平台下各环节的技术挑战、架构设计与技术难点 \n3. 最佳实践与 Python 技术使用\n\ 435 | 4. 未来展望" 436 | intro: 437 | '阿里云 SLS 上海负责人,从业超过 10 年,曾任 Splunk 中国实验室高级技术架构师、擅⻓ AIOps/SecOps 的大数据 438 | 分析平台构建与场景落地。 439 | 440 | 441 | 乐于分享,历届 PyCon / 云栖 / CSDN 大会或直播讲师,分享超过 20 多个不同议题演讲或 直播,近百篇技术产品文章,覆盖开源 AIOps 442 | 中台搭建、可观测告警运维平台实践、大数据分析可视化、工作流调 度、函数式、设计模式等方面,广受好评。' 443 | keynote: true 444 | slug: low-code 445 | speaker: 丁来强 446 | title: 可观测性平台下的低代码技术实践 447 | venue: A 448 | - avatar: /2021/assets/people/KinfeyLo.jpg 449 | company: 微软 Cloud Advocate 450 | desc: 451 | "相信每一个开发人员都会用 Github , 但你知道 Github Action 吗?他可以为你的应用更好地完成 CI / CD 的迭代。本课程针对\ 452 | \ Python 在云原生,IoT , 机器学习的场景结合 GitHub\n Action 完成现代化应用的部署和管理,包括 Python 环境的更新,Python\ 453 | \ 后端开发的迭代,物联网场景的扩展以及基于 MLOps 的机器学习全场景优化" 454 | intro: '- 微软 Cloud Advocate, 前微软最有价值之家,微软技术社区区域总监 455 | 456 | - 超过 10 年的云原生,移动应用,人工智能经验,为教育,金融,医疗,电信提供解决方案 457 | 458 | - 现阶段主要为不同行业布道相关技术以及技术方案' 459 | keynote: true 460 | slug: github-action 461 | speaker: Kinfey Lo 462 | title: 让 Github Action 加快你的 Python 应用场景迭代 463 | venue: B 464 | - end: '11:45' 465 | start: '11:00' 466 | talks: 467 | - avatar: /2021/assets/people/ZhuXingliang.jpg 468 | company: Neo4j 认证专家,微软 MCT,前微软 MVP 469 | desc: 470 | 一部电影有演员、导演、制片和编剧等多种角色,有时候演员和制片是同一个人,电影也有不少属性信息,如何从数据库到前端应用都很直观地来设计和开发呢?本次分享将带你从图数据库的建模开始,然后构建 471 | API 和前端应用,或许是一种你没有见过的全栈应用开发方式。 472 | intro: '- Neo4j 认证专家,微软 MCT,前微软 MVP 473 | 474 | - 多年软件开发工作经历,属于几乎全占工程师,多年活跃于技术社区 475 | 476 | - 现在从事技术和社区的混合岗位开发者关系,负责 Neo4j 在亚太地区的开发者社区 477 | 478 | - 目前在学习图数据科学和应用,打开了新的开发视角' 479 | keynote: true 480 | slug: movie-app 481 | speaker: 朱兴亮 482 | title: 使用 Python 和图模型构建一个电影应用 483 | venue: A 484 | - avatar: /2021/assets/people/ZhaoXin.jpg 485 | company: 360 政企安全服务中心 - 网络安全专家 486 | desc: 487 | 《Python 安全测试之自动化的 "艺术"》,主要围绕在信息安全测试中,Python 成为主流的脚本开发语言占据了头榜,且基于日常网络安全攻防当中所使用的漏洞、渗透测试工具、攻击手段等方面,综合、贴合自动化测试的方式来介绍 488 | python 自动化安全测试的原理,更能让听众感受到:"黑客 Python" 的气息。 489 | intro: '- 两年信息安全讲师经验 490 | 491 | - 擅长 web 渗透测试、代码审计、漏洞挖掘,工具研发 492 | 493 | - 对 web 自动化渗透测试有着自己独特的认识' 494 | keynote: true 495 | slug: auto-test 496 | speaker: 赵鑫 497 | title: Python 安全测试之自动化的 "艺术" 498 | venue: B 499 | - end: '12:00' 500 | start: '11:45' 501 | talks: 502 | - avatar: null 503 | company: '' 504 | desc: '' 505 | intro: '' 506 | keynote: false 507 | slug: '' 508 | speaker: '' 509 | title: 下午场主题介绍 / 抽奖 510 | venue: '' 511 | - end: '12:00' 512 | start: '09:30' 513 | type: pyhouse 514 | talks: 515 | - speaker: PyCon China 组委会成员 516 | keynote: false 517 | title: Pythonista 之间的真心话 518 | venue: PyHouse 519 | - end: '13:00' 520 | start: '12:00' 521 | type: break 522 | talks: 523 | - avatar: null 524 | company: '' 525 | desc: '' 526 | intro: '' 527 | keynote: false 528 | slug: '' 529 | speaker: '' 530 | title: 午间休息 531 | venue: '' 532 | - end: '13:45' 533 | start: '13:00' 534 | talks: 535 | - avatar: /2021/assets/people/GuSiwei.jpg 536 | company: Vesoft Inc. 537 | desc: '图数据库是什么?Why Yet Another Database? 它能解决什么问题? 538 | 539 | 本次演讲会给大家解谜图数据库,并分享、Demo 从零到一,分享讲者自己用 Python 搭建的基于图数据库做出来的有趣开源项目: 540 | 541 | - Nebula Siwi,一个基于图数据库 + Python 搭建的全栈单一领域智能问答机器人 542 | 543 | - 股权穿透,一个基于 Python Faker 生成数据,演示股权关系穿透查询的小项目' 544 | intro: 545 | '我是一个在上海的软件工程师,我在 vesoft 担任 Nebula Graph(开源的分布式图数据库)的社区开发者布道师。 546 | 547 | 548 | 我的工作是通过围绕 Nebula Graph Database 创作内容,构建工具来改善开发者的学习、开发、社区参与体验。 549 | 550 | 551 | 我在开源社区开放的工作,并(花了职业生涯中的前些年意识到)热爱用自己的思想和学到的技术帮助到别人,我认为这是一种的荣幸和宝贵的机遇。 552 | 553 | 554 | - 我的介绍更多内容: https://siwei.io/about/ 555 | 556 | - 我的部分往期 talk: https://siwei.io/talk/ 557 | 558 | - 个人 twitter: https://twitter.com/wey_gu 559 | 560 | 561 | ### 过往经历 562 | 563 | 我曾在爱立信工作了近十年:2011 年到 2021 年。 角色是云计算产品 Cloud Execution Envrioment (CEE) 研发团队的系统经理 564 | ,我大部分的工作是通过设计开发 20 多个 CEE 6.6.2 和 CEE 10 的功能与改进,涵盖计算、存储、网络、生命周期管理和安全等领域,来帮助爱立信 565 | IaaS 产品与解决方案不断进化。 同时,我也负责 CEE 产品在中国区的布道(面向外部与内部)。 566 | 567 | 568 | 《开源面对面》播客的主持人(可惜还只发出了第零期)' 569 | keynote: true 570 | slug: graph-database 571 | speaker: 古思为 572 | title: 图数据库解谜与上手应用 573 | venue: A 574 | - avatar: /2021/assets/people/EvgenyDemchenko.jpg 575 | company: Stealth Startup 576 | desc: 577 | "行为驱动开发(或验收测试驱动开发)是一种强大的敏捷工程实践,与其他敏捷和 XP 实践相得益彰,如 TDD、持续交付等。\n\nBDD 场景是高层次的功能测试,作为\ 578 | \ \"实例规范\" 用小黄瓜 DSL 编写,非技术团队成员(如产品经理、QA 等)可以使用。\n\n在本讲座中,我们将探讨。\n- 什么是 BDD\n\ 579 | - 其技术和团队优势是什么 \n- 什么是 BDD 的最佳 Python 工具(behave、pytest-bdd、cucumber)?\n- 如何使用这些工具以及如何编写\ 580 | \ BDD 方案\n\n这将是你武库中的一个强大的新工具,你可以把它带回到你的项目和你的团队中去!" 581 | intro: 582 | '- 资深 CTO、团队负责人、CSM、架构师、敏捷实践者、前端和后端软件开发人员,在各种现代 Web 技术方面拥有丰富的经验。 在桌面和移动应用程序开发以及 583 | Web API 方面也经验丰富 584 | 585 | - 热衷于 Python、Django、极限编程、DevOps 文化和敏捷软件开发 586 | 587 | - 北京 Python Meetup 的组织者' 588 | keynote: true 589 | slug: bdd 590 | speaker: Evgeny Demchenko 591 | title: Behavior-driven Development in Python 592 | venue: B 593 | - title: 594 | - end: '14:30' 595 | start: '13:45' 596 | talks: 597 | - avatar: /2021/assets/people/LvShaogang.webp 598 | company: 彪洋科技研发总监 / CTO 599 | desc: 深度学习近十年来在不同行业的应用越来越多,对人类社会的影响也越来越大,是近几十年来的一场重大技术革命。 深度学习能够用于解决哪些典型的问题?如何开启深度学习的大门?此次分享讲介绍深度学习的流程,以及一些重要的基础数学知识,作为深度学习的神经网络是如何工作的,如何能够快速搭建一个深度学习的神经网络,如何设计网络的不同层,如何在生产环境中使用神经网络? 600 | intro: 601 | 'Python 的忠实粉丝,在搜索算法领域耕耘多年,曾负责大众点评搜索算法团队,从 0 到 1 搭建搜索算法团队,设计和实现可扩展的搜索算法平台。 602 | 603 | 604 | 目前致力于深度学习在行业化方向上的应用,以及可扩展的深度学习平台的设计和优化。' 605 | keynote: true 606 | slug: image-dl 607 | speaker: 吕召刚 608 | title: 用 Python 搭建图像识别神经网络 609 | venue: A 610 | - avatar: /2021/assets/people/PanJunyong.jpg 611 | company: 连续创业者,早期中国 Python/Zope 用户社区组织者 612 | desc: 613 | 'Zope 是 20 年前曾经辉煌的 web 框架,以其直接在浏览器上快速开发应用而闻名,却错误决策而几近死去。 614 | 615 | easyweb 是新一代开源 web 框架,继承了 Zope 的优质家底,力图在云时代为开发者提供更好的低代码 web 开发体验。 616 | 617 | 本主题将介绍 easyweb 的一些创新设计,包括云函数,Python 前端框架,可视化模型设计,可视化工作流定义。' 618 | intro: '连续创业者,早期中国 Python/Zope 用户社区组织者 619 | 620 | 621 | 长期从事基于 Python 的企业内容管理和低代码平台的开发' 622 | keynote: true 623 | slug: easyweb 624 | speaker: 潘俊勇 625 | title: easyweb:致敬 Zope 的云时代开源 web 框架 626 | venue: B 627 | - title: Python 开发者调研问卷发起人访谈 628 | venue: PyHouse 629 | speaker: 王斌鑫 630 | keynote: false 631 | - end: '15:15' 632 | start: '14:30' 633 | talks: 634 | - avatar: /2021/assets/people/WuJingjing.jpg 635 | company: 北京邮电大学人工智能学院 636 | desc: 637 | python-wechaty 是一个让开发者快速开发出智能聊天机器人的框架,使用一套代码即可运行在多种不同 IM 平台,例如微信、企业微信、微信公众号、钉钉、飞书以及 638 | WhatsApp 等。丰富的插件能够让开发者快速实现对话平台对接,如微软 QnaMaker、LUIS 拥有接口简单易懂,插件轻松扩展,平台一键适配等多种特性。 639 | intro: '- 北京邮电大学人工智能学院在读硕士 640 | 641 | - 微软中国自然语言处理实习生 642 | 643 | - [python-wechaty](https://github.com/wechaty/python-wechaty) 的作者 644 | 645 | - chatbot 以及深度学习技术爱好者' 646 | keynote: true 647 | slug: python-wechaty 648 | speaker: 吴京京 649 | title: Python-Wechaty:对话式 RPA SDK 650 | venue: A 651 | - avatar: /2021/assets/people/zhangxing.jpg 652 | company: 上海麓联智能科技有限公司技术主管 / 全栈工程师 653 | desc: 654 | "脑科学中数据处理的问题与方法介绍\n1. Python 在脑科学的生态\n * 数据存储格式\n * 数据分析方法\n * 数据呈现形式\n\ 655 | 2. 针对脑电数据进行睡眠分类的 saas 应用实践\n * Web 技术架构\n * 存储和计算策略\n * 可视化方法\n3. 针对脑电数据进行神经元分类的应用简单描述\n\ 656 | 4. 后续应用和技术挑战\n5. 使用 Python 的一些小弯路" 657 | intro: '- 2017~2019 阿里巴巴 算法专家 / 数据研发专家 658 | 659 | - 2015~2017 Coupang 高级数据工程师' 660 | keynote: true 661 | slug: python-brain-science 662 | speaker: 掌星 663 | title: 脑科学中的数据应用实践 664 | venue: B 665 | - title: 自由职业者移动办公新体验 666 | venue: PyHouse 667 | speaker: 李枫 / 吕绍刚 / 张晋涛 668 | keynote: false 669 | - end: '15:30' 670 | start: '15:15' 671 | type: break 672 | talks: 673 | - avatar: null 674 | company: '' 675 | desc: '' 676 | intro: '' 677 | keynote: false 678 | slug: '' 679 | speaker: '' 680 | title: 中场休息 / 抽奖 681 | venue: '' 682 | - end: '16:15' 683 | start: '15:30' 684 | talks: 685 | - avatar: /2021/assets/people/MengFanchao.jpg 686 | company: 特斯拉上海超级工厂的全栈工程师,前 ThoughtWorker, GDG 社区讲师,热爱 Python,Golang 以及 K8s 687 | desc: 688 | 本次分享将会介绍使用 dash 和 echarts 快速构建可视化大屏的方法。借助 dash 框架,数据工程师可以十分轻松的完成动态报表的构建,而 689 | echarts 丰富的图例则使得数据的表达更加的生动与直观。本次分享将会快速的介绍 dash 和 echarts 结合使用的基本方法,并针对涉及地图等复杂图表的创建进行 690 | step by step 的指导,以便大家可以快速掌握 dash 和 echarts 的使用. 691 | intro: 692 | '折腾过 JTAG 调试器,嵌入式编译器,IDE, 也折腾过前后端,Docker, K8s 的真全栈工程师,擅长多种语言的 hello world。 693 | 694 | 695 | 最近在某神秘车厂折腾数据可视化相关的东西,妄图用 python 来搞定一切,并将 python 作为人生的养老语言。' 696 | keynote: true 697 | slug: dash-echarts 698 | speaker: 孟繁超 699 | title: 用 Dash 和 ECharts 构建互动 Dashboard 700 | venue: A 701 | - avatar: /2021/assets/people/Yufangye.jpg 702 | company: Neo4j 技术专家 703 | desc: | 704 | 本次分享将会介绍使用 dash 和 echarts 快速构建可视化大屏的方法。借助 dash 框架,数据工程师可以十分轻松的完成动态报表的构建,而 705 | echarts 丰富的图例则使得数据的表达更加的生动与直观。本次分享将会快速的介绍 dash 和 echarts 结合使用的基本方法,并针对涉及地图等复杂图表的创建进行 706 | step by step 的指导,以便大家可以快速掌握 dash 和 echarts 的使用. 707 | intro: 多年架构设计和软件开发工作经历,特别热衷于数据分析,现在是Neo4j亚太地区技术总监 708 | keynote: true 709 | slug: python-graphic-data 710 | speaker: 俞方桦 711 | title: Python+图数据科学 - 保险欺诈检测实战 712 | venue: B 713 | - end: '17:00' 714 | start: '16:15' 715 | talks: 716 | - avatar: null 717 | company: '' 718 | desc: 719 | "### 使用 RayDP 构建大规模的数据分析和人工智能管道\n \n演讲者:林之\n\n演讲内容简介:\n本次演讲会介绍一下我们的工作\ 720 | \ RayDP,也就是 Spark on Ray。\n1. 简短的介绍一下 Spark 和 ray,我们为什么要做这个项目。\n2. raydp 是怎么工作的,简单介绍一下原理。\n\ 721 | 3. 我们可以用 raydp 做到什么,与传统的做法对比,有什么好处。介绍几个典型的场景。\n4. 答疑讨论\n\n\n### What Python\ 722 | \ could learn from Golang\n \n演讲者:yingshaoxo\n\n演讲内容简介:\n我们喜欢 Python 因为它的简单性。\n\ 723 | \n但我们也希望它能成为一种强大的生产用编程语言。\n\n这就是我制作这个视频的原因。\n\n我想做的就是让 Python 成为更好的编程语言。\n\ 724 | \n\n### 不写代码,如何为开源项目做贡献?\n\n演讲者:赵若妃\n\n演讲内容简介:\n也许在大多数开发者的印象中,贡献代码是为开源项目做贡献的唯一方式。成为贡献者只能通过贡献代码的方式吗?如果我不会写代码,并非开发者,怎样才能成为一个开源项目的贡献者,甚至晋升为\ 725 | \ committer 呢?我将从非代码贡献方面,为大家分享为开源项目贡献的多种方式。" 726 | intro: '' 727 | keynote: false 728 | slug: lightning_2_b 729 | speaker: '' 730 | title: 闪电演讲 731 | venue: A 732 | - avatar: /2021/assets/people/WangHao.jpg 733 | company: Databricks合作伙伴架构师 734 | desc: 735 | intro: Databricks合作伙伴架构师,硕士毕业于新加坡国立大学计算机学院。 736 | keynote: true 737 | slug: pyspark 738 | speaker: 汪浩 739 | title: 大规模数据处理中PySpark的应用 740 | venue: B 741 | - end: '17:15' 742 | start: '17:00' 743 | talks: 744 | - avatar: null 745 | company: '' 746 | desc: '' 747 | intro: '' 748 | keynote: false 749 | slug: '' 750 | speaker: '' 751 | title: 抽奖 752 | venue: '' 753 | -------------------------------------------------------------------------------- /data/staff.yaml: -------------------------------------------------------------------------------- 1 | organizers: 2 | - avatar: /2021/assets/people/XinQing.jpg 3 | name: 辛庆 4 | position: '总协调' 5 | - avatar: /2021/assets/people/WangBinxin.png 6 | name: 王斌鑫 7 | position: '总协调' 8 | - avatar: /2021/assets/people/FrostMing.jpg 9 | name: 明希 10 | position: 网站组 11 | - avatar: /2019/asset/images/people/xuyin.jpg 12 | name: 许银 13 | position: 总协调 14 | - avatar: /2019/asset/images/people/chaoqian.jpg 15 | name: 晁倩 16 | position: 媒体组 17 | - avatar: /2021/assets/people/anonymous.jpg 18 | name: 易慧媛 19 | position: 会务 20 | - avatar: /2021/assets/people/ZhangJintao.jpg 21 | name: 张晋涛 22 | position: 会务 23 | - avatar: /2021/assets/people/DaiShaofei.jpg 24 | name: 代少飞 25 | position: Meetup 26 | - avatar: /2021/assets/people/anonymous.jpg 27 | name: 朱明放 28 | position: Meetup 29 | - avatar: /2019/asset/images/people/wangmenglan.jpg 30 | name: 王梦兰 31 | position: '会务' 32 | - avatar: /2019/asset/images/people/wumiaoxuan.jpg 33 | name: 吴妙璇 34 | position: '设计' 35 | - avatar: /2019/asset/images/people/lizheao.png 36 | name: 李者璈 37 | position: '总协调' 38 | - avatar: /2021/assets/people/TanXiao.jpg 39 | name: 谭啸 40 | position: Meetup 41 | volunteers: [] 42 | donators: | 43 | | | | | | 44 | | :--------: | :--------: | :------: | :-------: | 45 | | 崔晨阳 | 种健 | 紫极 | 蔡佳昊 | 46 | | 夏振涛 | 古思为 | lihankun | 金喆 | 47 | | 刘玉龙 | 王骞 | 姚仁君 | 刘凯 | 48 | | 陆建华 | 林华兴 | 林玮 | 王梦达 | 49 | | Kingdom E. | 刘启军 | 郭兴 | Applenice | 50 | | 陈俊伟 | 陈三吉 | 吴源远 | 李辉 | 51 | | 鲍彤 | 魏睿 | 张胡健 | 唐秋佳 | 52 | | Ai 兔兔 | IceCodeNew | 胡松涛 | kuan | 53 | -------------------------------------------------------------------------------- /i18n/index.js: -------------------------------------------------------------------------------- 1 | const en = require('./translations.en.json'); 2 | const zh = require('./translations.zh.json'); 3 | 4 | const i18n = { 5 | translations: { 6 | en, 7 | zh, 8 | }, 9 | defaultLang: 'zh', 10 | useBrowserDefault: true, 11 | }; 12 | 13 | module.exports = i18n; 14 | -------------------------------------------------------------------------------- /i18n/translations.en.json: -------------------------------------------------------------------------------- 1 | { 2 | "site_name": "PyCon China 2021", 3 | "site_description": "PyCon China 2021 Official Website", 4 | "weibo": "Weibo", 5 | "weixin": "WeChat", 6 | "about": "About", 7 | "coc": "Code of Conduct", 8 | "conference": "Conference", 9 | "schedule": "Schedule", 10 | "cfp": "Call For Papers", 11 | "meetup": "Meetup", 12 | "beijing": "Beijing", 13 | "shanghai": "Shanghai", 14 | "shenzhen": "Shenzhen", 15 | "hangzhou": "Hangzhou", 16 | "staff": "Staff", 17 | "volunteers": "Volunteers", 18 | "joinus": "Join Us", 19 | "history": "Site History", 20 | "purchase": "Purchase/Donate", 21 | "stay_tuned": "Stay Tunned", 22 | "end": "End", 23 | "start": "Start", 24 | "add_to_calendar": "Add to Calendar", 25 | "sponsor_us": "Be a Sponsor", 26 | "latest_news": "Latest News", 27 | "introduction": "Introduction", 28 | "keynote_speakers": "Keynote Speakers", 29 | "support": "Support", 30 | "live_address": "Live Address", 31 | "talk": "Talk", 32 | "locale": "ZH", 33 | "derivatives": "Surroundings", 34 | "survey": "Survey", 35 | "souvenir": "Souvenir", 36 | "notfound": "Page Not Found", 37 | "notfoundmessage": "If you believe this is an issue, please", 38 | "report-bugs": "Report Bugs", 39 | "contact-us": "Contact Us", 40 | "report-to-us": "report to us", 41 | "video-guide": "Video Guide", 42 | "TBD": "TBD", 43 | "venue": "Venue", 44 | "main_venue": "Main", 45 | "home": "Home", 46 | "staff_list": "Staff List", 47 | "organizers": "Organizers", 48 | "changsha": "Changsha", 49 | "chengdu": "Chengdu", 50 | "donators": "Donators" 51 | } 52 | -------------------------------------------------------------------------------- /i18n/translations.zh.json: -------------------------------------------------------------------------------- 1 | { 2 | "site_name": "PyCon China 2021", 3 | "site_description": "PyCon China 2021 官方网站", 4 | "weibo": "微博", 5 | "weixin": "微信", 6 | "about": "关于", 7 | "coc": "行为准则", 8 | "conference": "会议", 9 | "schedule": "会议议程", 10 | "cfp": "演讲征集", 11 | "meetup": "Meetup", 12 | "beijing": "北京", 13 | "shanghai": "上海", 14 | "shenzhen": "深圳", 15 | "hangzhou": "杭州", 16 | "staff": "工作组", 17 | "volunteers": "志愿者", 18 | "joinus": "成为志愿者", 19 | "history": "历届网站", 20 | "purchase": "购票/捐赠", 21 | "stay_tuned": "敬请期待", 22 | "end": "结束", 23 | "start": "开始", 24 | "add_to_calendar": "添加到日历", 25 | "sponsor_us": "赞助我们", 26 | "latest_news": "最新消息", 27 | "introduction": "会议简介", 28 | "keynote_speakers": "主题演讲", 29 | "support": "赞助支持", 30 | "live_address": "直播地址", 31 | "talk": "演讲", 32 | "locale": "EN", 33 | "derivatives": "周边", 34 | "survey": "问卷调查", 35 | "souvenir": "纪念品", 36 | "notfound": "施工中", 37 | "notfoundmessage": "如果您认为这是网站的问题,请", 38 | "contact-us": "联系我们", 39 | "report-bugs": "报告问题 ", 40 | "report-to-us": "报告给我们", 41 | "video-guide": "视频录制说明", 42 | "venue": "分会场", 43 | "main_venue": "主会场", 44 | "home": "首页", 45 | "staff_list": "会务", 46 | "organizers": "组委会", 47 | "changsha": "长沙", 48 | "chengdu": "成都", 49 | "donators": "捐赠名单" 50 | } 51 | -------------------------------------------------------------------------------- /next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | 5 | // NOTE: This file should not be edited 6 | // see https://nextjs.org/docs/basic-features/typescript for more information. 7 | -------------------------------------------------------------------------------- /next.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | module.exports = { 3 | reactStrictMode: true, 4 | basePath: '/2021', 5 | images: { 6 | domains: ['dummyimage.com'] 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pycon-china-2021", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "next dev", 7 | "build": "yarn run gen && next build", 8 | "start": "next start", 9 | "lint": "next lint", 10 | "gen": "node tools/genCalendar.js" 11 | }, 12 | "dependencies": { 13 | "@fortawesome/fontawesome-free": "^5.15.4", 14 | "bulma": "^0.9.3", 15 | "bulma-timeline": "^3.0.4", 16 | "classnames": "^2.3.1", 17 | "framer-motion": "^4.1.17", 18 | "js-yaml": "^4.1.0", 19 | "next": "11.1.0", 20 | "next-export-i18n": "^2.1.0", 21 | "next-seo": "^4.26.0", 22 | "react": "17.0.2", 23 | "react-dom": "17.0.2", 24 | "react-markdown": "^7.0.0", 25 | "rehype-raw": "^6.1.0", 26 | "remark-gfm": "^3.0.0", 27 | "sass": "^1.38.0" 28 | }, 29 | "devDependencies": { 30 | "@types/js-yaml": "^4.0.3", 31 | "@types/react": "17.0.19", 32 | "dayjs": "^1.10.6", 33 | "eslint": "7.32.0", 34 | "eslint-config-next": "11.1.0", 35 | "ical-generator": "^3.0.0", 36 | "typescript": "4.3.5" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /pages/404.tsx: -------------------------------------------------------------------------------- 1 | import { useTranslation } from 'next-export-i18n'; 2 | import Layout from '../components/layout'; 3 | 4 | const NotFound = () => { 5 | const { t } = useTranslation(); 6 | return ( 7 | 8 |
9 |
10 |
11 |
12 |

{t('stay_tuned')}

13 |

14 | {t('notfoundmessage')} 15 | 20 | {t('report-to-us')} 21 | 22 |

23 |
24 |
25 |
26 |
27 |
28 | ); 29 | }; 30 | 31 | export default NotFound; 32 | -------------------------------------------------------------------------------- /pages/[md].tsx: -------------------------------------------------------------------------------- 1 | /* 2 | Each entry of this page is a markdown file under /data/contents/ 3 | */ 4 | 5 | import { GetStaticPaths, GetStaticProps } from 'next'; 6 | import { useTranslation, useSelectedLanguage } from 'next-export-i18n'; 7 | import Layout from '../components/layout'; 8 | import TextPage from '../components/TextPage'; 9 | import { getMarkdownFiles, readData } from '../utils'; 10 | 11 | const MarkdownContent = ({ name, contents }: { name: string; contents: Record }) => { 12 | const { t } = useTranslation(); 13 | const { lang } = useSelectedLanguage(); 14 | return ( 15 | 16 | {contents?.[lang] || ''} 17 | 18 | ); 19 | }; 20 | 21 | export const getStaticPaths: GetStaticPaths = async () => { 22 | const names = await getMarkdownFiles('contents'); 23 | const paths = names.map((name) => ({ params: { md: name } })); 24 | return { 25 | paths, 26 | fallback: false, 27 | }; 28 | }; 29 | 30 | export const getStaticProps: GetStaticProps = async ({ params }) => { 31 | const md = params?.md; 32 | const contents = { 33 | zh: await readData(`contents/${md}.md`, 'zh'), 34 | en: await readData(`contents/${md}.md`, 'en') 35 | } 36 | 37 | return { 38 | props: { name: md, contents }, 39 | }; 40 | }; 41 | 42 | export default MarkdownContent; 43 | -------------------------------------------------------------------------------- /pages/_app.tsx: -------------------------------------------------------------------------------- 1 | import type { AppProps } from 'next/app'; 2 | import Head from 'next/head'; 3 | import Footer from '../components/footer'; 4 | import Nav from '../components/nav'; 5 | import { DefaultSeo } from 'next-seo'; 6 | 7 | import '../styles/global.scss'; 8 | 9 | function MyApp({ Component, pageProps, router }: AppProps) { 10 | const url = `https://cn.pycon.org/2021${router.route}`; 11 | return ( 12 | <> 13 | 14 | 15 | 16 | 17 | 26 |
27 |
29 | 30 |