2022年年度总结

今年过得好像格外快,在惶惶不安中,回过神来,已经到了这一年的最后一天。

过去一年中,我仍然把自己有效的业余时间使用(但不包括体育锻炼和阅读书籍的时间)记录在 TimeHub,整理成活动日历图如下所示。

活动日历图

看到总共记录了 444.5 小时,比 2021 年少了 55.5 小时。这说明我今年比去年荒废了更多的时间。

写作

算上这篇总结,今年我只在这个博客发布了 2 篇文章。是自这个博客建立以来发布文章数量最少的一年。原因如下:

  • 技术类文章:现在我认为博客中发布的文章应该是面向读者的,交待清楚前因后果,提供对读者有用的信息,而不应该把博客作为记笔记的地方。过去的一年中我其实记了不少笔记,但不想直接把这些笔记发布在博客,也不愿意再额外花时间将笔记完善成面向读者的文章,导致博客中未发布任何技术类文章。
  • 其他类文章:除了技术类文章,以前我也会在这个博客中发布一些个人感想和自己创作的小说。今年不仅这类文章也很少,出于一些顾虑,反而还隐藏了一些以前写的这类文章。

再来谈谈小说创作。今年我只完成了一篇很短的童话故事的创作,投稿给了某征文比赛,目前还没有出结果。除了这篇童话故事外,几乎再没有投入时间到小说创作。从这一点上看,我已经放弃了小说创作。在过去的两、三年中我有时候感觉创作出伟大作品是我对抗虚无、实现人生价值的唯一途径。为此总计投入了 400 多个小时。现在又常常感觉这好像是一件毫无意义的事情,可能我投入再多时间与精力,也无法创作出一篇合格的小说。也许将来我又会重新开始投入很多时间在小说创作上,也许永远都不会再尝试。考虑到我曾做过很多半途而废的事情,后一种情况发生的可能性应该更大。如果永远都不会再尝试,已经投入的 400 多个小时就成了沉没成本。不过这也没什么,在我过去的人生中,投入了大量时间、精力,最终没有得到任何回报的事情挺多的,不差这一件。

编程

业余时间写的代码几乎都在 Github 上,因此 Github 的 contributions 可以在一定程度上反映业余编程的多少。下表是过去几年我的 Github contributions 统计。

年份 contributions
2016 47
2017 4
2018 92
2019 34
2020 226
2021 135
2022 96

今年业余时间写的代码主要有两块:

  1. 修复 Timehub 的 bug
  2. 开发一个叫做“耳语”的用于学习英语单词的软件

有次吃午饭前我打开某听书手机应用,看到在推荐《找对英语学习方法的第一本书》。我英语一向学得很差,便点开来听。前后花了 9 个多小时听完了这本书。这本书批判了我在学校时学习英语采用的方法——语法翻译法,介绍了一些比较新的第二语言习得领域的研究成果。我决定实践一下,但没有找到符合这本书中介绍的原理的学习英语单词的软件,于是决定自己动手写一个。我以前没写过桌面软件,从头开始摸索,进度比较慢。前后花了 46 个小时写出了一个能用的版本。但完成后截至目前只用它学习了 9 个小时的英语单词。不过总体来说,我对自己写的这个软件挺满意的,达到了我的预期。

阅读

下表统计了过去几年中每年阅读的图书数量。

年份 读书数量(本) 字数(万字)
2018 7 未统计
2019 7 未统计
2020 17 未统计
2021 14 171
2022 14 260

今年阅读过的所有书籍中,让我印象最为深刻的是《动物庄园》中最勤劳能干的马“布可瑟”这一角色。

《美丽新世界》中人们将“快乐就是至善”作为信仰,相信生命的目标是“让快乐一直持续下去”。在我生活的世界中,也有一些人具有相同的人生观。当我还是学生时,对这种人生观嗤之以鼻,现在开始觉得这样想也挺不错的。

我还阅读了一些王小波相对不太出名的小说——《寻找无双》、《万寿寺》和《红弗夜奔》。这些小说都很精彩,故事情节非常有趣。

跑步

今年 4 月份时,我开始户外跑步。但只跑了 7 次,累计 7.98 公里,就遇到了较为严重的疫情。从此之后再也没有到户外跑过步。去年我购买了一款名叫健身环大冒险的体感游戏机,今年也玩了几次。根据这款游戏的记录,我今年总共运动了 2.37 小时,消耗了 573.29 千卡的热量,在游戏中累计跑步 9.33 公里。

历年跑步总里程数统计如下表所示。

年份 里程(公里)
2016 389.29
2017 333.75
2018 135.39
2019 112.78
2020 28.44
2021 50.79(游戏中)
2022 17.31(部分为游戏中)

看到 2022 年跑步里程甚至比 2020 年还要少,是有记录以来最少的一年。

挖洞

今年和去年一样,没有挖到任何漏洞。但与去年不同,今年我在学习漏洞挖掘方面,投入了多达 260 个小时。

一开始,我觉得能挖到二进制漏洞是很厉害的事情,便花了大约 117 个小时学习模糊测试1。随着学习的深入,我发现很多软件已经把模糊测试集成到了自己的 CI2 中,谷歌更是推出了 oss-fuzz 这样的项目,而且运行模糊测试需要大量的计算资源,这些事情让我觉得继续学习模糊测试意义不大。

后来觉得可以学习挖掘 java/php web 应用的漏洞。花了大约 64 个小时学习了南京大学公开课《软件分析》。老师课讲得很好,作业设计也很用心。总体来说学习这门课有很多收获。但学完后发现无助于漏洞挖掘。这是一门纯理论的课程,而漏洞挖掘则更像是一门手艺。

再后来我又花了大约 66 个小时学习一个叫做 CodeQL 的东西。这个东西可以分析源代码,生成一些类似关系型数据库的数据表的东西,然后运行一些类似于 SQL 语句的查询语句就能查找出漏洞了。我感觉效果还是不错的。

既然效果不错为何没挖到漏洞?因为后来我的业余时间基本都花在写那个用来学英语单词的软件上了。我甚至不知道将来会不会继续投入时间在漏洞挖掘方面,或许会和小说创作一起被我放弃。

年份 漏洞数量
2018 0
2019 0
2020 0
2021 0
2022 0

证书

今年和去年一样,未获得任何证书。

年份 证书数量
2018 2
2019 1
2020 0
2021 0
2022 0

其他

国际音标

我在接受学校教育时从来没有哪个老师教过我英语音标。我猜测这和我的转学经历有关。我小时候在一所乡镇小学上学,五年级时转学到县城的小学。在那所乡镇小学,英语是一门副科,地位和“思想品德”差不多,英语老师没有教授学生音标。而当我五年级到县城的那所小学时,我的同班同学好像都已经学过了音标。我本人性格极其内向,又很胆小,不会主动向我害怕的英语老师请教音标;同时我又比较穷,也没有考虑过花钱请老师教我。就这样,到大学毕业,我还是不会英语音标。

我以前曾多次尝试过自学音标,均以失败告终。因为我遇到了一些无法解释的困惑。举个例子,单词 spit 的音标是 /spɪt/,其中的 /p/ 我怎么听都是类似汉语拼音 b 的发音,而单词 pit 的音标是 /pɪt/,其中的 /p/ 我怎么听都是类似汉语拼音 p 的发音。我无法确定 /p/ 这个音标到底应该怎样读,由此陷入到自我怀疑中。另一个让我疑惑的地方是 bit 这个单词的音标是 /bɪt/,其中的 /b/ 我怎么听都是类似汉语拼音 b 的发音,那它和 /spɪt/ 中 /p/ 到底是什么区别。我过去自学时使用的课程,没有一个能较好地解释这些困惑。我好像也问过同学,但也没有人能给我清楚的解释。

今年 2 月份时,有朋友向我推荐了一套国际音标视频课程——【语言学科普】一本万利的国际音标。这套课程完美解决了我的所有疑惑。但由于我对学习音标没有特别的需求,毕竟现在我不再需要参加任何英语考试,所以学习起来断断续续,直到 11 月份才学完。前后总共投入了 14.5 小时。

原来斜线 (/ /) 表示音位标音法,符号和真实发音并不严格一一对应。方括号 ([ ]) 表示音素标音法,符号和真实发音才严格一一对应。/spɪt/ 用音素标音法是 [spɪt],/pɪt/ 用音素标音法是 [phɪt](上标 h 是送气符号)。这样一写,两者的区别就一目了然了,前者不送气,后者送气。至于[spɪt] 中的 [p] 和 [bɪt] 中的 [b] 在我听来几乎是一样的,这是因为 [b] 是浊辅音,汉语中没有浊辅音,只有清辅音,我的嗓子在过去近 30 年里从没有发出过 [b],自然也很难分辨出 [p] 和 [b]。这套视频教程也教授了如何练习发浊辅音,但我没能学会。后来我参考知乎的这个回答,练习了一两个小时,学会了发浊辅音。学会发浊辅音后便渐渐能听出浊辅音和清辅音的区别了。

折纸

为了保护视力,我决定发展一项不需要看屏幕的业余爱好,最终选择了折纸。选择折纸主要是因为便宜。目前总共投入¥157.65,其中¥90.8 用于购买相关书籍,其余用于购买折纸使用的纸。这些书籍和纸张应该足够几年使用。目前我学会的最复杂的折纸是“马”,如下图所示。

horse

总结

今年没有达成任何让我满意的成就,我不太情愿写这篇总结。但想到连续写了好几年了,若是中断未免有些可惜,还是写了。至少这样就达成了一项成就——连续 4 年写年度总结。


  1. 模糊测试是一种流行的挖掘二进制漏洞的方法。 ↩︎
  2. CI,持续集成。具体解释可参考此处。 ↩︎

2 Replies to “2022年年度总结”

    1. 已经开源了,欢迎试用。

      最新版下载链接:https://github.com/Werneror/earlang/releases/download/v0.0.6/earlang.exe。

      简单的使用说明:https://github.com/Werneror/earlang/blob/main/README.md。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

19 + 9 =