<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>演讲和教程 &#8211; 李辉 / Grey Li</title>
	<atom:link href="https://greyli.com/category/%E6%BC%94%E8%AE%B2%E5%92%8C%E6%95%99%E7%A8%8B/feed/" rel="self" type="application/rss+xml" />
	<link>https://greyli.com</link>
	<description>一个编程和写作爱好者的在线记事本</description>
	<lastBuildDate>Thu, 06 Nov 2025 11:36:11 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.9.26</generator>

<image>
	<url>https://greyli.com/wp-content/uploads/2025/03/avatar-500-compressed-144x144.jpg</url>
	<title>演讲和教程 &#8211; 李辉 / Grey Li</title>
	<link>https://greyli.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>PyCon US 2021: FastAPI Seems Good, so Why Don&#8217;t We Build Something Similar For Flask?</title>
		<link>https://greyli.com/pycon-2021-apiflask/</link>
		<comments>https://greyli.com/pycon-2021-apiflask/#respond</comments>
		<pubDate>Sat, 05 Jun 2021 10:09:10 +0000</pubDate>
		<dc:creator><![CDATA[李辉]]></dc:creator>
				<category><![CDATA[演讲和教程]]></category>

		<guid isPermaLink="false">https://greyli.com/?p=3798</guid>
		<description><![CDATA[Meta： 录像：YouTube &#124; bilibili 幻灯片：https://greyli.com/slid [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Meta：</p>
<ul>
<li>录像：<a href="https://youtu.be/kVS8uCxhZws" rel="nofollow">YouTube</a> | <a href="https://www.bilibili.com/video/BV1Zg41137Mh/" rel="nofollow">bilibili</a></li>
<li>幻灯片：<a href="https://greyli.com/slides/pycon2021" rel="nofollow">https://greyli.com/slides/pycon2021</a></li>
<li>幻灯片源码：<a class="yt-simple-endpoint style-scope yt-formatted-string" dir="auto" spellcheck="false" href="https://www.youtube.com/redirect?event=video_description&amp;redir_token=QUFFLUhqbHg3TS1LeTM1MDdDRmt1Vlc1djROVktGa0dFZ3xBQ3Jtc0tudjYtRnB0TTlhZmpFRXh5ZVVaWVZXV21mY3RIeVZFcEZjTjZkVWlVZzN0UFpZNExYRG5wQjFlUWRhR0dGMTByUnhXcFF1NkpWU0UwVXZjbTB1OWlyN0NWLXNUc0ZuMW1LeUFQUWdWUUg4TGc5Rmwxdw&amp;q=https%3A%2F%2Fgithub.com%2Fgreyli%2Fpycon2021" target="_blank" rel="nofollow noopener">https://github.com/greyli/pycon2021</a></li>
</ul>
<p>这是我第一次参加 PyCon US，也是第一次做英文演讲。也许会有一些语法和发音的问题，不过因为时间有限，我已经尽力了……这次开始准备的比较晚，演讲基本是在三天内完成的，演讲前一天花了一整天时间准备，从早上一直到第二天两点。总耗时 18 小时 41 分钟。相比之下，同样是五分钟的闪电演讲，在 PyCon China 2019 上海场的闪电演讲《<a href="http://greyli.com/pyconchina-2019-lighting-talk-venv">Python 虚拟环境和依赖管理工具大乱斗</a>》却花费了接近 40 个小时（大部分时间都用来做幻灯片了）。</p>
<p>这个演讲本来是一个比较深入的主题演讲，不过因为主题演讲申请惨遭淘汰，只好换成闪电演讲。演讲灵感来自前段时间的那篇《<a class="post-3704" href="https://greyli.com/flask-fastapi/" rel="bookmark">请不要把 Flask 和 FastAPI 放到一起比较</a>》。</p>
<p>尽管是预录制演讲，但是不知道主办方哪里没弄好，实际大会直播的时候音画不同步，卡顿很严重（见官方发布的<a href="https://youtu.be/IUI7vHe1EHQ?t=2509">演讲视频</a>）。</p>
]]></content:encoded>
			<wfw:commentRss>https://greyli.com/pycon-2021-apiflask/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PyCon China 2020: Python 技术名词发音指南</title>
		<link>https://greyli.com/pycon-china-2020-pronounce-python/</link>
		<comments>https://greyli.com/pycon-china-2020-pronounce-python/#comments</comments>
		<pubDate>Sun, 29 Nov 2020 14:40:04 +0000</pubDate>
		<dc:creator><![CDATA[李辉]]></dc:creator>
				<category><![CDATA[演讲和教程]]></category>
		<category><![CDATA[PyCon China]]></category>
		<category><![CDATA[PyCon China 2020]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[演讲]]></category>
		<category><![CDATA[英语发音]]></category>

		<guid isPermaLink="false">https://greyli.com/?p=3526</guid>
		<description><![CDATA[这是我在今年 PyCon China 的闪电演讲，不过没有去年那么闪电： Django 怎么读？十个 Pyth [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>这是我在今年 PyCon China 的闪电演讲，不过没有<a href="https://greyli.com/pyconchina-2019-lighting-talk-venv/">去年</a>那么闪电：</p>
<blockquote>
<p>Django 怎么读？十个 Python 程序员也许会有十种读法。如果这个你刚好会读的话，那么还有 Werkzeug、SQLAlchemy、Gunicorn、PyPI、Bokeh、Huey…… 根据可靠来源，因为错误的发音，两个 Python 程序员在交谈时平均每小时会浪费三分钟时间用来互相确认和纠正名词发音。为了减少整个 Python 社区因为错误的技术名词发音产生更多的熵，这个演讲带来了一个可信度 95% 的 Python 技术名词发音指南。</p>
</blockquote>
<ul>
<li>视频：<a href="https://youtu.be/TiAYPxrZGFI">YouTube</a> | <a href="https://www.bilibili.com/video/BV17K411375V/">bilibili</a></li>
<li>幻灯片：<a href="http://greyli.com/pronounce-python">http://greyli.com/pronounce-python</a></li>
<li>GitHub 仓库：<a href="https://github.com/greyli/pronounce-python">https://github.com/greyli/pronounce-python</a></li>
<li><span class="style-scope yt-formatted-string" dir="auto">完整大会演讲回放（思否）：</span><a href="https://segmentfault.com/area/pyconchina-2020">segmentfault.com/area/pyconchina-2020</a></li>
<li><span class="style-scope yt-formatted-string" dir="auto">完整大会演讲回放（CSDN）：</span><a href="https://marketing.csdn.net/p/eb7abbc123a8fb3554b61d55f8626dd1">marketing.csdn.net/p/eb7abbc123a8fb3554b61d55f8626dd1</a></li>
</ul>
<p>这是我第一次做线上直播形式的演讲，在提交演讲申请之后我一直在想不知道会有多少人来听。也一直在担心 Windows 会不会蓝屏，国产软件会不会弹广告，猫会不会拔掉猫的电源……后来才知道可以提前录制，那就没什么好担心的了，所以你坐在屏幕前看到的我，当时也正坐在屏幕前看自己。</p>
<p>准备的过程中发现这可能是很容易带来争议的演讲：有些读音没有标准，有些读音我自己也读错好久，再加上有些人觉得发音无关紧要，有些人觉得错的人多了就成了正确发音，有些人还会守着错误发音扯到文化自信……不过没关系，反正这个演讲总能让台球再转起来一次，至少也可以短暂的让大家再一次正视错误发音问题。这个演讲也是我自己的一个发音纠正练习。</p>
<p>你也许觉得发音正不正确无关紧要，不，这其实是一件很重要的事情。拥有正确一致的发音可以让大家见面聊天更顺畅一点，不用停下来确认说的是同一个东西，在听播客和演讲的时候也不用被错误的发音打断思绪。而且有些错误的发音并不好听，比如「Windows 叉屁」……你只要稍稍花一点心力就可以避免让错误的发音变成主流发音，最后变成「事实上的正确发音」。一旦你不在乎这一点对错，生活里的很多事情都会慢慢变成无所谓和差不多另一方面，这份指南也希望可以给技术演讲和播客提供一个参考，如果 Python 培训班和各种九块九的网课感兴趣的话，这个指南或许可以放在第一课的最后作为延伸阅读的内容。只此两项，就可以避免错误发音大范围传播。</p>
<p>请从今天开始重视发音吧！</p>
<hr />
<p>演讲准备备注：</p>
<ul>
<li>耗时：48h 35m（加上后期写这篇文章和上传视频的时间）</li>
<li>幻灯片工具：<a href="https://marpit.marp.app/">Marpit</a></li>
<li>一共录了 9 遍，演讲前一晚匆匆录了最后一版，很努力也才把时长压缩到 15 分钟（要求 10 分钟长度和最多五分钟偏差），有点赶。今天下午又重新录了一版，放轻松刚好 20 分钟。</li>
<li>感觉线上演讲有点无聊……没有观众反馈，也没有紧张和兴奋的感觉。</li>
<li>这个演讲最后本来有一个恶搞。虽然是录播，但我原本打算在最后假装有问答环节，问「大家有没有问题要问？」，然后停顿一分钟，再说「好，那没有问题就拜拜啦」。因为这样会让超时更加严重，而且会有点让人讨厌，所以最后就去掉了。现在的结尾的意思是「用 Python 之杖赐予各位听众 Pythonic 原力」。</li>
<li>PyCon China 网站也太难看了……</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>https://greyli.com/pycon-china-2020-pronounce-python/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>COSCon 2019：一个野生程序员的开源故事</title>
		<link>https://greyli.com/coscon-2019-talk/</link>
		<comments>https://greyli.com/coscon-2019-talk/#comments</comments>
		<pubDate>Mon, 28 Oct 2019 05:15:19 +0000</pubDate>
		<dc:creator><![CDATA[李辉]]></dc:creator>
				<category><![CDATA[演讲和教程]]></category>
		<category><![CDATA[COSCon]]></category>
		<category><![CDATA[中国开源年会]]></category>
		<category><![CDATA[开源]]></category>
		<category><![CDATA[演讲]]></category>

		<guid isPermaLink="false">http://greyli.com/?p=2588</guid>
		<description><![CDATA[演讲录像： 幻灯片： 幻灯片源码： 开源英语手册：https://github.com/greyli/osen [&#8230;]]]></description>
				<content:encoded><![CDATA[<ul>
<li>演讲录像：</li>
<li>幻灯片：</li>
<li>幻灯片源码：</li>
<li>开源英语手册：<a href="https://github.com/greyli/osenglish">https://github.com/greyli/osenglish</a></li>
<li>准备时长：23h 49m</li>
<li>Note：</li>
</ul>
<p>这是在 <a href="https://kaiyuanshe.cn/activity/summit/coscon-2019/">COSCon</a>（中国开源年会）2019 上海 11 月 2 号分会场 1（开源社区与项目） 下午 2:20 开始的演讲《一个野生程序员的开源故事》的介绍和相关信息。</p>
<p>和标题透露的信息一样，这不是一个严肃的演讲（虽然 COSCon 看起来是一个很严肃的大会）。这是今年的最后一个演讲，明年不会弄那么多了，太累了……</p>
<p>购票和日程：<a href="https://www.bagevent.com/event/5744455">https://www.bagevent.com/event/5744455</a></p>
<p><img class="alignnone size-large wp-image-2596" src="http://greyli.com/wp-content/uploads/2019/10/coscon-change-mini-1024x965.jpg" alt="" width="625" height="589" srcset="https://greyli.com/wp-content/uploads/2019/10/coscon-change-mini-1024x965.jpg 1024w, https://greyli.com/wp-content/uploads/2019/10/coscon-change-mini-150x141.jpg 150w, https://greyli.com/wp-content/uploads/2019/10/coscon-change-mini-300x283.jpg 300w, https://greyli.com/wp-content/uploads/2019/10/coscon-change-mini-624x588.jpg 624w" sizes="(max-width: 625px) 100vw, 625px" /></p>
<h2>标题</h2>
<p>一个野生程序员的开源故事</p>
<h2>介绍</h2>
<p>介绍其实可以忽略，因为根据前几次的演讲经验，演讲内容通常都会和简介有很多出入（跑题）。下面是简介：</p>
<p>2016 年，李辉开始学习 Flask。两年后，他加入了 Flask 开发团队。这中间发生了什么？其中大量的开源贡献起到了什么样的作用？参与开源对编程能力提高、个人品牌建设甚至是求职有哪些帮助？在本议题中，这些问题将会一一得到解答，你还会了解到如何踏出开源贡献的第一步，并且学到一些小技巧，比如参与开源涉及的英语和 Git 问题。</p>
<p>面向的听众：编程初学者，编程爱好者，程序员等想要参与开源的人。</p>
<h2>总结</h2>
<p>待补充</p>
]]></content:encoded>
			<wfw:commentRss>https://greyli.com/coscon-2019-talk/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>COSCUP 2019：如何在两年内从初学者成长为流行开源项目维护者和技术书作者？</title>
		<link>https://greyli.com/my-talk-at-coscup-2019/</link>
		<comments>https://greyli.com/my-talk-at-coscup-2019/#comments</comments>
		<pubDate>Wed, 11 Sep 2019 10:07:10 +0000</pubDate>
		<dc:creator><![CDATA[李辉]]></dc:creator>
				<category><![CDATA[演讲和教程]]></category>
		<category><![CDATA[COSCUP]]></category>
		<category><![CDATA[COSCUP 2019]]></category>
		<category><![CDATA[演讲]]></category>

		<guid isPermaLink="false">http://greyli.com/?p=2515</guid>
		<description><![CDATA[这是我在 COSCUP 2019 第一天下午的演讲，主要介绍了这两年的经历和一些经验，內容偏娱乐向（本来想说内 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>这是我在 <a href="https://coscop.org">COSCUP</a> 2019 第一天下午的演讲，主要介绍了这两年的经历和一些经验，內容偏娱乐向（本来想说内容很水，但又想到在台湾「很水」就是「很强」的意思……）。有时间会写一篇文章记录参加 COSCUP 的经历和感想。</p>
<h2>相关资源</h2>
<ul>
<li>演讲录像：<a href="https://www.bilibili.com/video/av67369394/">bilibili</a> | <a href="https://www.youtube.com/watch?v=iKXHSTw2lpc">YouTube</a></li>
<li>COSCUP 链接：<a href="https://coscup.org/2019/programs/787db403-6b67-4599-9f39-74a078545cfa/">https://coscup.org/2019/programs/787db403-6b67-4599-9f39-74a078545cfa/</a></li>
<li>幻灯片：<a href="http://greyli.com/slides/coscup2019">http://greyli.com/slides/coscup2019</a></li>
<li>源码：<a href="https://github.com/greyli/coscup2019-slide">https://github.com/greyli/coscup2019-slide</a></li>
<li>共笔：<a href="https://hackmd.io/@coscup/SJ6B0MxNS">https://hackmd.io/@coscup/SJ6B0MxNS</a></li>
<li>准备时长：32h 9m</li>
<li>Note：幻灯片使用 Reveal.js 制作，部分效果用了 CSShake，图片素材基本来自电影截图。提供了简体中文和繁体中文两种语言，Emoji 基于 Windows 平台挑选。这次演讲有很多人喜欢，而且第一次拿到专业的现场照片。</li>
</ul>
<p>对于录像内容的一些备注：</p>
<ul>
<li>前两分钟话筒坏了，没声音 :/</li>
<li>《这个杀手不太冷》的英文原名是「The Professional」，即「专业人士」。</li>
<li>幻灯片里出现的几个电影截图分别是《这个杀手不太冷》、《热血警探》、《回魂夜》和《将军号》。</li>
<li>幻灯片里的两张「开源」照片，一张收集自 COSCUP 的 Telegram 群组，一张拍于徐州家乡小镇。</li>
<li>某一张幻灯片多了「重要」两个字。</li>
<li>漏掉一个关键想法没说：除了做出有趣和系统的作品外，还要做比上一个作品更大更好的作品（直到你造出飞船，当上总统，或是实现你的终极目标）。</li>
</ul>
<h2>演讲介绍</h2>
<p>2016 年，我开始学习 Flask，并尝试为多个开源项目贡献代码。两年后，我加入 Flask 开发团队，并出版国内第一本 Flask 书《Flask Web 开发实战》。这中间发生了什么？除了运气的帮助，我做对了哪些事情，经验是否能被复制？其中大量的开源贡献起到了什么样的作用？在本议程里，我会从我的自身经历出发，在编程学习、个人成长、开源贡献、技术写作等方面分享一些经验和思考。如果你想高效学习一门新技术、参与开源贡献、建立个人品牌、或是写作一本技术书，这些信息或许能够给你带来帮助。</p>
<h2>演讲总结</h2>
<p><span class="name" data-wfid="2733d697b7b3">总体效果还不错，现场氛围很好，有很多人喜欢。</span><span class="name" data-wfid="f47601af4ae9">另外</span>因为这是第一次拿到完整的演讲录像，自己看了一遍，总结了一些问题：</p>
<ul>
<li>说太多「然后」</li>
<li>太紧张，漏掉一些内容</li>
<li>表情和肢体太多小动作</li>
<li><span class="name" data-wfid="f47601af4ae9">正前方的某一个观众太严肃，而视线又总是落到他身上……</span></li>
</ul>
<hr />
<p>感谢 COSCUP 的 <a href="https://twitter.com/bobchao">Bob Chao</a> 帮忙协调提前拿到录像，感谢<a href="https://kaiyuanshe.cn">开源社</a>的刘天栋老师帮我找到李思颖老师，感谢李思颖老师帮我找到 Charon，感谢 Charon 帮忙处理视频。​不过我最后还是用了自己剪辑的那一版视频（嘘）。</p>
]]></content:encoded>
			<wfw:commentRss>https://greyli.com/my-talk-at-coscup-2019/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
