<?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>2020 &#8211; 李辉 / Grey Li</title>
	<atom:link href="https://greyli.com/tag/2020/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>2020 &#8211; 李辉 / Grey Li</title>
	<link>https://greyli.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>2020 年总结</title>
		<link>https://greyli.com/2020-summary/</link>
		<comments>https://greyli.com/2020-summary/#comments</comments>
		<pubDate>Mon, 12 Apr 2021 14:27:57 +0000</pubDate>
		<dc:creator><![CDATA[李辉]]></dc:creator>
				<category><![CDATA[计划与总结]]></category>
		<category><![CDATA[2020]]></category>
		<category><![CDATA[年总结]]></category>

		<guid isPermaLink="false">https://greyli.com/?p=3628</guid>
		<description><![CDATA[2021 年已经过去四个月了，每次到某个重要的时间节点都想完成这篇 2020 年总结，结果总是有各种事情挤占时 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>2021 年已经过去四个月了，每次到某个重要的时间节点都想完成这篇 2020 年总结，结果总是有各种事情挤占时间，所以错过了元旦、错过了大年初一、错过了 26 岁生日、错过了植树节和愚人节，最后来到这一天。</p>
<p>照例，先从好坏两方面总结一下。</p>
<p>Good：</p>
<ul>
<li>参与组织 <a spellcheck="false" href="https://flaskcon.com/">FlaskCon</a>，开发<a spellcheck="false" href="https://github.com/FlaskCon/website">会议网站</a></li>
<li>在 <a spellcheck="false" href="https://discuss.helloflask.com/">HelloFlask 论坛</a>回答了若干个问题</li>
<li>在 Pallets Projects 网站上有了<a spellcheck="false" href="https://palletsprojects.com/people/greyli/">个人介绍页面</a></li>
<li>PyCon China 2020 演讲《<a spellcheck="false" href="https://greyli.com/pycon-china-2020-pronounce-python/">Python 技术名词发音指南</a>》</li>
<li>在 <a spellcheck="false" href="https://stackoverflow.com/users/5511849/grey-li">Stack Overflow</a> 上写了 50+ 回答，拿到了 <a spellcheck="false" href="https://greyli.com/awarded-flask-silver-badge/">Flask 银徽章</a></li>
<li>维护和改进 <a spellcheck="false" href="https://github.com/pallets/flask">Flask</a>、<a spellcheck="false" href="https://github.com/greyli/bootstrap-flask">Bootstrap-Flask</a> 等项目，给 <a spellcheck="false" href="https://github.com/lepture/flask-oauthlib">Flask-OAuthlib</a> 发了新版本</li>
</ul>
<p>Bad：</p>
<ul>
<li>尝试翻译一本英文书，但是试译稿没有通过编辑的质量要求</li>
<li>没能按计划完成新书（延期两年了）</li>
<li>组织「编程一小时」活动失败</li>
<li>一次失败的外包合作</li>
<li>玩太多游戏</li>
</ul>
<p>很高兴我的书和项目在这一年帮到了更多的人：</p>
<p><img class="aligncenter size-large wp-image-3662" src="https://greyli.com/wp-content/uploads/2021/04/thanks-1024x547.png" alt="感谢留言" width="625" height="334" srcset="https://greyli.com/wp-content/uploads/2021/04/thanks-1024x547.png 1024w, https://greyli.com/wp-content/uploads/2021/04/thanks-150x80.png 150w, https://greyli.com/wp-content/uploads/2021/04/thanks-300x160.png 300w, https://greyli.com/wp-content/uploads/2021/04/thanks-624x333.png 624w, https://greyli.com/wp-content/uploads/2021/04/thanks.png 1165w" sizes="(max-width: 625px) 100vw, 625px" /></p>
<p>而且我的读者群已经扩展到<a spellcheck="false" href="https://www.zhihu.com/question/444376356/answer/1736664737" target="_blank" rel="noopener">小学五年级</a>了（继上一次某位正在上初中的读者邀请我评审他用 Flask 做的<a spellcheck="false" href="https://github.com/z-t-y/Flog" target="_blank" rel="noopener">博客程序</a>后）。如果还有三年级或是一年级的读者小朋友，记得吱一声 :P</p>
<p>2020 年只写了 23 篇文章，花了比较多时间写的是下面这几篇：</p>
<ul>
<li>05/24 <a spellcheck="false" href="https://greyli.com/pirated-tech-books/">国内技术书盗版现状</a></li>
<li>11/05 <a spellcheck="false" href="https://greyli.com/my-story-with-pyconchina/">我和 PyCon China 的故事</a></li>
<li>12/21 <a spellcheck="false" href="https://greyli.com/hour-of-code-2020/">组织「编程一小时」活动失败记</a></li>
</ul>
<p>相比之下，文章数量要比 2019 年少 40 篇，也许是因为这一年花了更多时间来挣钱（虽然最后没剩下多少）。年初做了一个糟糕的外包项目，烂摊子接手，慢慢明白转手的原因，最后以没有拿到尾款结束。这之后就更谨慎了，半年时间里只做了一个微信小程序的后端 API。</p>
<p>除此之外，第一次通过写文章挣到了钱——给 <a spellcheck="false" href="https://www.twilio.com/blog">Twilio 博客</a>写文章的稿费。<a spellcheck="false" href="https://www.twilio.com/blog/collaborative-whiteboard-python-flask-twilio-sync">第一篇文章</a>是做一个<a href="https://github.com/greyli/twilio-whiteboard">协作白板</a>，因为 SocketIO 有一个类似的示例程序，所以做程序加上写文章只花了 17 小时 34 分钟。但是<a spellcheck="false" href="https://www.twilio.com/blog/online-presentation-python-javascript-twilio-programmable-video">第二篇文章</a>就没那么幸运了，这一篇做一个<a href="https://github.com/greyli/twilio-presentation">演讲程序</a>，因为 Twilio 文档写的不是很详细，所以卡在程序实现上很久，断断续续花了两个月，最终耗时 50 小时 24 分钟，时薪骤降。</p>
<p>今年的收入大部分都用作房租和生活开支了。买了一个很大的显示器（43 寸），不过并没有让写书进度加快……买了 Switch，玩了一段时间《喷射战士 2》（Splatoon 2，拒绝官方译名），偶尔还会换回一代玩，喜欢第一代 Carbon Roller Deco 和 Rainmaker 鱼头的无敌效果。</p>
<p>去年在<a href="https://greyli.com/2019-summary/">年总结</a>里说要重新开始记录时间花销，说到做到，2020 年记录在案的时间一共 8769 小时 48 分钟（99.8% 覆盖率）：</p>
<p><img class="aligncenter wp-image-3690" src="https://greyli.com/wp-content/uploads/2021/04/pie-1-209x300.png" alt="时间花销饼图" width="349" height="500" srcset="https://greyli.com/wp-content/uploads/2021/04/pie-1-209x300.png 209w, https://greyli.com/wp-content/uploads/2021/04/pie-1-105x150.png 105w, https://greyli.com/wp-content/uploads/2021/04/pie-1.png 593w" sizes="(max-width: 349px) 100vw, 349px" /></p>
<p>P.S. 上面的分类是时间大类，其中娱乐包括游戏（491 小时 4 分钟）、电影电视剧（283 小时 39 分钟）和上网（269 小时 22 分钟）；休息时间大多是不同事项之间的切换和走神时间；工作包括外包开发（332 小时 49 分钟）和开源项目（136 小时 47 分钟）；写作包括写书（158 小时 50 分钟）和写文章（129 小时 58 分钟）；​学习包括学编程（101 小时 16 分钟）和学英语（81 小时 52 分钟）。</p>
<p>下面是包含所有时间分类的年度柱状图（紫色系是睡觉和吃饭，黄色系是外包和演讲，绿色系是开源项目和写作，蓝色系是清洁活动，红色系是娱乐）：</p>
<p><img class="aligncenter size-large wp-image-3665" src="https://greyli.com/wp-content/uploads/2021/04/year-1024x219.png" alt="时间花销柱状图" width="625" height="134" srcset="https://greyli.com/wp-content/uploads/2021/04/year-1024x219.png 1024w, https://greyli.com/wp-content/uploads/2021/04/year-150x32.png 150w, https://greyli.com/wp-content/uploads/2021/04/year-300x64.png 300w, https://greyli.com/wp-content/uploads/2021/04/year-624x134.png 624w" sizes="(max-width: 625px) 100vw, 625px" /></p>
<p>这也很好的解释了为什么这一年没有太多成果：玩了太多游戏，在各种网站上转来转去，写书的时间甚至没超过写文章多少。</p>
<p>2021 年开始没有再记录详细的时间开支——完整记录时间太花费精力了。比起每天的详细时间花销数据，我更关心的其实是有没有达到设定的时间目标，所以现在改为只记录两类时间：一类是想要达到的时间目标，比如写作、编程和学习；另一类是需要限制的时间花销，比如娱乐（计划 2021 年娱乐花销控制在 500 小时以内，目前是 123 小时 44 分钟）。</p>
<p>年底和女友一起<a spellcheck="false" href="https://greyli.com/goodbye-nanjing/">离开了南京</a>，接下来整个 2021 年都会呆在家里，目标是完成下面三件事：</p>
<ol>
<li>完成《<a spellcheck="false" href="https://helloflask.com/book/2">Python Web API 设计与开发</a>》</li>
<li>完成《<a spellcheck="false" href="https://helloflask.com/book/1">Flask Web 开发实战</a>》第二版</li>
<li>完成 <a spellcheck="false" href="https://github.com/greyli/apiflask">APIFlask</a> 的 1.0 版本</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>https://greyli.com/2020-summary/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>2020 暑假总结</title>
		<link>https://greyli.com/2020-summer-vacation/</link>
		<comments>https://greyli.com/2020-summer-vacation/#comments</comments>
		<pubDate>Mon, 31 Aug 2020 14:55:37 +0000</pubDate>
		<dc:creator><![CDATA[李辉]]></dc:creator>
				<category><![CDATA[思考与随感]]></category>
		<category><![CDATA[计划与总结]]></category>
		<category><![CDATA[2020]]></category>
		<category><![CDATA[总结]]></category>
		<category><![CDATA[暑假]]></category>

		<guid isPermaLink="false">https://greyli.com/?p=3367</guid>
		<description><![CDATA[最后一次写暑假总结是在 2016 年，之后因为不再上学，也就没有了暑假这个概念。今年夏天回家呆了一个月，算是自 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p class="md-end-block md-p"><span class="md-plain">最后一次写暑假总结是在 </span><span class="md-meta-i-c md-link"><a spellcheck="false" href="https://greyli.com/summer-2016-summary/"><span class="md-plain">2016 年</span></a></span><span class="md-plain">，之后因为不再上学，也就没有了暑假这个概念。今年夏天回家呆了一个月，算是自己给自己放的暑假。</span></p>
<p class="md-end-block md-p"><span class="md-plain">农村像是冰箱下面的冷藏室，时间在这里不会产生多大作用。也正是这样，你一下子就能看出有哪些新变化。首先是家里的狗生了七只小狗，因为胎盘没及时去掉，死了三只。然后家里的蚂蚁似乎变多了，在院子里扔一小块饼干或西瓜，过一会就会看到密密麻麻的蚂蚁趴在上面（拔菜园里的花生时发现三个蚂蚁窝！）。除此之外，一切几乎都是老样子：狗总是热得吐舌头。西瓜甜不甜要看运气，但价格大都不到城里的一半。附近的工厂有时会在早晨制造噪音，半夜偶尔还会听到邻居用「古法洗衣」时棍子敲打衣服的声音*。</span></p>
<p class="md-end-block md-p"><span class="md-plain">夏天全家人一起吹空调吃西瓜看电视是很幸福的事情，我试图想把我和瑶瑶都很喜欢的《</span><span class="md-meta-i-c md-link"><a spellcheck="false" href="https://movie.douban.com/subject/26302614/"><span class="md-plain">请回答 1988</span></a></span><span class="md-plain">》推荐给大家，但也许是每一集太长，或者是语言和文化差异的缘故，大家并没有表现出很大的兴趣。不过我们还策划了一次去水上乐园的短途旅行，这一次大家都玩得很开心。</span></p>
<p class="md-end-block md-p"><span class="md-plain">暑假像是一年的短暂中断，一个可以喘口气的中场休息。上学的时候暑假让我从无聊痛苦的学校生活里抽离，而现在则可以临时放下各种喜欢和不喜欢的工作。我用这段时间清理掉了上半年积攒下来的一堆便签和纸片，整理了电脑上的各种笔记、杂乱文件和标签页。修正了年目标，因为一年过去大半，所以有些不切实际的目标自然就变得非常明显，现在只好先放弃掉。剩下的几乎就都是娱乐时间了。</span></p>
<p class="md-end-block md-p"><span class="md-plain">《皇室战争》玩到了大师联赛，然后就有点厌倦，估计下半年都不会想再玩（不过无限圣水模式实在太容易沉迷了）。因为想找一个联机游戏和李家玩，又安装回了 Steam，找到大学时买的《兽人必须死 2》。结果他沉迷在 Epic 免费领的 《GTA 5》，我就只好自己玩。接着大学时的进度通了关，然后玩了很久的无尽模式（Endless）。像我这种喜欢整理和规划的人大概都会喜欢这种塔防游戏——可以把所有空间完美的利用好，天花板、墙和地面上每一个防具都摆放的整齐对称。但是无尽模式实在太消耗精力，每一局都会让眼睛和右手累的不行，最后止步于 44 波的最高成绩（放弃的另一个原因是解锁所有武器和技能太耗费时间）。玩的时候有时会想自己面对的敌人不过是每一波都增加了几个数字的难度变量，有一种被代码控制和愚弄的意味……</span></p>
<p class="md-end-block md-p"><span class="md-plain">也不是完全没有成果。花了一些时间来更新 </span><span class="md-meta-i-c md-link"><a spellcheck="false" href="https://github.com/greyli/bootstrap-flask"><span class="md-plain">Bootstrap-Flask</span></a></span><span class="md-plain">，发布了 1.5 版本，接下来一段时间可以把它放一边了。给 </span><span class="md-meta-i-c md-link"><a spellcheck="false" href="http://helloflask.com/book/1/"><span class="md-plain">Flask 书</span></a></span><span class="md-plain">的示例程序 </span><span class="md-meta-i-c md-link"><a spellcheck="false" href="http://sayhello.helloflask.com/"><span class="md-plain">SayHello</span></a></span><span class="md-plain"> 加了一个验证码功能。从去年开始就有人在这里灌垃圾留言，直到现在才下决心清理和阻止（一共删掉了 9083 条）。说是验证码，其实只是加了一个验证输入值是否是「宝塔镇河妖」的文本输入框……不过在垃圾留言程序弄明白规则之前应该都没问题。最后还把大部分 Python 的 Web API 相关工具库的文档都看了一遍。</span></p>
<p class="md-end-block md-p md-focus"><span class="md-plain md-expand">暑假里大部分时间都被随心所欲的花掉了，但我并不把这看作浪费，如果暑假时间也要全用来学习和工作，那生活就太无聊了。这样想的话，在小时候的暑假，写作业是浪费，玩游戏、在门前发呆和出去玩就不是。现在的暑假呢，为别人工作是浪费，做自己喜欢的事情就不是。</span></p>
<div class="md-hr md-end-block" tabindex="-1">
<hr /></div>
<p class="md-end-block md-p"><span class="md-plain md-expand">*比起在南京时楼上孩子练习长跑和玩积木的声音、楼下孩子半夜的哭闹和夫妻吵架的声音，家里的这两种倒更容易忍受，至少你知道什么时间能结束。</span></p>
]]></content:encoded>
			<wfw:commentRss>https://greyli.com/2020-summer-vacation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
