思考 – 若水斋 https://blog.werner.wiki Try harder Tue, 31 Dec 2024 15:57:11 +0000 zh-Hans hourly 1 https://wordpress.org/?v=6.8.3 https://blog.werner.wiki/wp-content/uploads/2018/11/cropped-ql1-1-32x32.jpg 思考 – 若水斋 https://blog.werner.wiki 32 32 2024年年度总结 https://blog.werner.wiki/2024-annual-summary/ https://blog.werner.wiki/2024-annual-summary/#comments Tue, 31 Dec 2024 15:57:11 +0000 https://blog.werner.wiki/?p=2571 打开自己的博客,看到过去一年,没有更新一篇文章,阅读记录,也只添加了两本书。很显然,这个博客已近荒废。读大学时,我常常花很多时间维护博客网站、编写博客文章。会为了设计一个好看一点的首页,读一整本网页设计书,会为了写一篇今天看来毫无价值的文章,投入一整个周末。大学毕业后,花在博客上的时间显著减少,离开北京后,几乎降到了零。

去年六月,我离开北京,来到杭州。我把每晚睡前,设定为阅读时间。这个时间很不稳定,有很多事情干扰。比如加班到很晚,回到家早就过了睡觉时间,比如上了一天班后精疲力尽,没法集中精力阅读,比如工作一整天后眼睛干涩,只能做些不费眼睛的事,比如习惯性地玩手机,一不留神就到了该睡觉的时间。今年一整年,我只读了两本书,一本为工作而读,是《上任第一年:从业务骨干向优秀管理者转型》,一本为写作而读,是《小说写作教程:虚构文学速成全攻略》。读这两本书,都是出于提升某种技能的功利目的,不是出于娱乐。以前我读书,多是为了娱乐。比如读《生命的起源》了解到细菌遗传物质的横向传递、读《置身事内:中国政府与经济发展》知道了分税制改革的历史、读《寻找无双》看到了在长安城中房顶间飞来飞去长着翅膀的兔子、读《动物庄园》听到了“所有动物生而平等,但有些动物比其他动物更平等”的标语。现在回想起这些,仍然觉得非常开心,有种生命充盈的感觉。

我今年也读了一些让自己开心的文字。不是书籍,而是杂志。去年年底,我订阅了一整年纸质版《科幻世界》杂志,作为送给自己的新年礼物,也是在用实际行动,支持我国科幻事业的发展。今年每月月初,我都会收到从成都发来的一件快递,装在文件封里。每次取快递,我一边抬腿踏出快递站大门,一边拉开易撕带,掏出里面厚厚的一本杂志。每期杂志都有一百多页,我常常苦恼于,上个月的杂志还没有读完,这个月的杂志就已经收到。只有第一期,每篇文章我都仔仔细细阅读了,之后就只是挑着翻阅下。发表在这本杂志上的小说,有些质量很一般,我读后疑惑,这也能发表?也有些写得非常精彩,读完之后,深受震撼。比如发表在 2024 年 01 期上,索何夫写的《伊尔加德事件三十周年回顾》,讲述了自愿放弃科学技术的人类,在外星球被野蛮的外星物种当作家畜饲养的故事。这种震撼,十分类似于阅读完刘慈欣的科幻小说后的感受。这也是我喜欢阅读科幻小说的原因。在我看来,这是一种极致的精神享受。

我希望自己也能创作出优秀的科幻小说,给别人带来这样的精神享受。这是很多年前,我在深圳打工时,被台风困在,棺材一样狭小的出租屋里,读了一些小说后,偶然冒出的念头。这么多年来,我总是断断续续。往往是,有几个月认真学习写作知识,觉得自己进步了,莫名自信,憋着一股劲,写出一篇现在看来惨不忍睹的小说,匆匆投稿,焦急等待一个月,收到拒稿信,陷入自我怀疑,自我否定,觉得自己根本不是写作的料,觉得自己想要写出能够发表的作品,简直是痴心妄想,白日做梦,把写作这件事抛到脑后,一周、一个月、一个季度、半年过去了,再也不想,再也不碰。直到有一天,或是刷到一篇写作技巧分享文章,或是看到一本写作入门指导书籍,或是灵光一闪有了自觉不错的故事创意,又会进入这样的循环。今年 2 月,我结束了一个循环,那时真的以为下定了决心,从此以后,安安分分做个读者。何必费尽心思、抓耳挠腮、搜肠刮肚,来设定世界、虚构人物、构思情节?这样做,空耗了一腔热血,没有得到任何回报。我只要简简单单,捧起书本,跟着作者的思路,进入幻想的世界,就能获得极大的精神享受,何乐而不为?何必没事找罪受?何必和自己过不去?今年 11 月,我无意间看到一本名为《小说写作教程:虚构文学速成全攻略》的书,读了简介和前言,觉得是本好教程。我不甘心了,我已经付出了那么多时间、学习了那么多知识,也许现在的写作水平,距离发表作品,就只差这本教程?这样想着,我便买了这本书、阅读这本书。一个月后,读完这本书,自觉写作功力大涨,自信心又回来了,觉得这次一定可以写出能够发表的作品(以前每次也都这么觉得)。我捡起 2023 年初构思的一个故事,重新开始写它。这个故事,我曾写过两次,两次都烂尾了。我每天早晨起床,写一会小说,然后洗漱、吃早饭、出门上班,一整天都不再想关于写作的任何事,直到第二天早晨起床。我有多长时间写作,取决于我多早起床。杭州的冬天,并不暖和,我租的房子,保暖很差,四堵墙中有两堵是大落地窗。早上起来,房间里的温度,大约十摄氏度。这个气温,有点冷,却没有冷到必须取暖。在冬季的早晨,离开温暖的被窝是件困难的事情。闹钟常常把我吵醒,我赖在被窝里,不愿起来。这导致我的写作时长很不固定,工作日的早晨,经常坐在书桌前,打开电脑,一看时间,距离该去洗漱只有 5 分钟了。5 分钟也不能浪费,哪怕只写一句话。抱着这样的信念,我极其缓慢地推进着故事情节。这 5 分钟的写作时间,对我来说,似乎是一种慰藉。它让我觉得,工作之外,我还在干着自己喜欢的事情,我的人生,没有被工作填满,我是自由的。

周末虽不用工作,我没有很多时间写作。我的周末,全都和女友一起度过。3 月初,我们买了一台微单相机。春天的很多个周末,我们带着相机,出门拍照。我的摄影技术很一般,每次拍她时,我都会开启连拍。轻按快门,一次拍很多张照片。一天下来,能拍上百张。认真挑选,总能找出几张拍得还行的照片。我们去太子湾拍过郁金香,去西溪湿地拍过油菜花,去郭庄拍过古典园林。

女友今年拍了很多照片。除了我拍的,还有摄影师拍的。我们拍了婚纱照,为明年结婚做准备。在拍婚纱照之前,我有些害怕。我担心销售会骗我钱、化妆师会嫌我丑、摄影师会骂我笨。拍完之后发现,拍婚纱照一点也不可怕,大家都和和气气的,没有人苛责我哪里做的不好。出于理性,我知道自己是消费者,是甲方,所有乙方人员都得服务好我。但出于感性,我终究是一个性格内向、害怕“咕咚”的小孩。小学一年级学习的童话寓言,二十多年后,对年近三十的我,仍有启发。

正是拍婚纱照的经历,加上女友的极力推荐,让我有了勇气,下定了决心,报了健身课程。我早就知道,自己非常缺乏运动,应该加强锻炼。可我从没去过健身房,没来由地害怕。去过一次之后,就不再怕了。健身教练体壮如牛,同时温文尔雅,专业又耐心地指导我。比如深蹲这样一个简单的动作,我学习了很久都没有学会,每次勉强做完,我就会头晕眼花、站立不稳。我为自己差劲的表现感到羞愧,教练却从不责备我。再如悬垂举腿,我做完后常常觉得恶心想吐,教练不会嘲笑我体质羸弱,而是会调整训练计划。在运动方面,我从来都很愚钝。经过教练一次又一次的指导,通过很多很多次的练习,我终于学会了如何深蹲,悬垂举腿也不会再恶心想吐,总算有点长进。

锻炼后恶心的感觉,类似于刚刚坐完海盗船。我人生中第一次坐海盗船,差点吐了出来。不让想呕吐物在空中飞荡,污染一船游客,我才咬牙坚持,硬生生把涌到喉咙的食糜,压了回去。下船后觉得整体地球变成了一艘巨大的海盗船,地面不停摇晃。我坐在公园长椅上,让烈日直射我的肚子,感到暖暖的很舒服,女友撑着遮阳伞坐在旁边等我。休息了足足两个小时,我才缓过来。如果不是女友坚持,我一定不会玩这样可怕的娱乐项目。这是我们今年中秋假期,大连旅游时,在星海公园玩的。非常感谢女友没有嫌我身体太差,休息太久,打乱了那天的出游计划。希望经过一段时间的健身,我的身体能稍微好一点。

健身确实是我需要的。健身前,工作一天后,我常常感到精疲力竭,不想集中精神再做其它事情,只想躺在床上玩手机。我每周末上两次健身课,每次时长一个小时。几周之后,明显感到精力变得旺盛了,下班后也有余力再做些其它事情。最近做的一件事,是我觉得今年做的所有事情中,最好玩的。我和女友没有购买相框、相册和摆台等实物产品,只购买了电子版照片。原计划是在淘宝找家店打印照片。在搜索店家时,发现了电子相框这种东西。使用电子相框,可以无限制地显示任何照片,切换照片,也没有任何成本。然而,电子相框售价不菲,屏幕稍大一些,清晰度稍高一些,便要上千元。一番了解后,我发现电子相框很简单,决定自己做一个。我拆下废旧笔记本电脑的屏幕,作为电子相框的显示屏,从闲鱼花 70 块钱买了一个电视盒子,作为电子相框的主机,从淘宝花 50 块钱定制了一个木制相框,作为电子相框的外边框,最后把这些部件组装起来,便得到了一个屏幕超大、清晰度超高的电子相框,可以我们显示的婚纱照。效果如下图所示。

展示婚纱照的电子相框实拍图

原本想以上图作为这篇总结的结尾。在敲下这些文字时忽然想到,今年还有一件小事值得一记。

认识我的人都知道,我的普通话很不标准。在使用拼音打字时,有些汉字我不知道如何正确发音,需要反复尝试、花费很长时间,才能输入。我曾两次认真学习五笔输入法,一次在大四时,一次在北京打工时。两次都投入了大量时间,两次都学会了如何使用五笔输入法键入汉字,两次都没能熟能生巧、形成肌肉记忆,两次都没能将日常工作、生活中的输入法切换为五笔输入法。时间稍微一长,便遗忘了非常复杂的五笔输入法,现在连助记歌谣的第一句都想不起来了。

今年上半年,具体几月已不记得,我偶然得知了双拼输入法,立即被这一设计理念吸引,花了大概几个小时,学会了如何使用双拼输入法键入汉字。练习了几天,使用双拼输入法打字的速度,超过了全拼输入法。我把自己的安卓手机、公司的苹果笔记本电脑,家里的 Windows 台式机,默认输入法都设置成了双拼输入法。从那以后,我一直在使用双拼输入法。现在再让我使用全拼输入法,很不适应了。要说学习双拼对我有多大好处,好像并没有。不知道一个汉字正确的读音,无论使用全拼,还是双拼,都无法输入这个汉字。我打字速度慢,主要受不知道正确读音的汉字干扰。因此使用双拼输入法,并不能有效提升我的打字速度。但我还是很开心,因为我学习了新知识、掌握了新技能。我为发生在自己身上的变化感到开心。如果我没有任何改变,我会焦虑,我担心自己慢慢变成一个没用的人,一个跟不上时代的人,一个被社会抛弃的人。从小,我就被教育,要成为一个对社会有用的人。这就是说,一个人如果对社会没用,那么这个人就是失败的人,应该被社会淘汰。小时候,我觉得这是一种激励,现在想起来,这其实是种威胁。

今年的总结絮絮叨叨说了一大堆废话。我想,十年后的自己看到这些废话,应该会觉得挺开心,会想,多亏了这篇年度总结,我才知道,原来那个时候,我做过这些事情,真是有点好玩;原来那个时候,我是这样想的,真是有点天真。

]]>
https://blog.werner.wiki/2024-annual-summary/feed/ 6
2023年年度总结 https://blog.werner.wiki/2023-annual-summary/ https://blog.werner.wiki/2023-annual-summary/#respond Sun, 31 Dec 2023 10:01:32 +0000 https://blog.werner.wiki/?p=2515 一年前,我在北京,备了一堆药,一箱口罩,缩在没有集中供暖、风一吹窗户哐镗哐镗响的出租屋里等待感染新冠病毒。眼瞅着不再居家办公,眼瞅着来上班的同事一天比一天少,眼瞅着项目组只剩我一个人来公司,我还是没有感染。

每次稍有头晕鼻塞,我就拿出抗原检测试剂,结果每次都是阴性。看到只在 C 旁出现一道杠,头也不晕了,鼻也不塞了,屡试屡灵。听说感染后会连着高烧很多天,听说感染后会嗓子哑得说不出话,听说感染后会躺在床上下不来地。我常常幻想,自己感染后症状会有多么严重。就在这样的惶惶不安中,我度过了二零二三年的前五个月。

前五个月自然发生了很多事,只有两件值得一提,其余就慢慢遗忘吧。无意间看到一部动画片,名为《来自新世界》,误以为和刚刚读过的《美丽新世界》有关,看了一遍。看完,深受震撼。这种震撼不仅来自出乎意料的结局,更是来自直指人心的力量。过去三个季度了,现在仍然能清晰感受到这种力量。这样的故事,正是我想写的。我也写了一个故事,花了八十多个小时,投稿给一家杂志,迟迟未见回信,直至我离开北京。

离开北京是在六月一日。那天我刚进火车站,满心欢喜卸载了名为“北京通”的手机应用。乘着高铁,一路南下,来到杭州。杭州夏天非常炎热,阳光威力不输深圳。那时我以为杭州冬天也会和深圳一样温暖,现在我把丢在北京的电暖、电热毯全又买了一遍。

那时我住在宾馆,还没有租好房子。某次路过洗碗槽目光无意间瞥向倒 U 形水龙头时,裤兜里的手机轻轻震动,打开看到退稿信,大意为故事差强人意、文笔不餍人望。我心想,接下来重点练习文笔,今年再写一篇,大概能够发表。

事与愿违,直到二零二三年的最后一天,我在杭州没有写出一个故事。到了杭州,工作变得忙碌,加班习以为常。上班久了便不想写作。写作和编程有许多相似之处,都是繁重的脑力劳动,都需要久坐电脑旁盯着屏幕敲键盘。

不能全怪工作。原本我想报名一个在线写作培训班,不巧首次直播授课是在七月一日十九点整。那晚我约了一位姑娘夜游西湖。权衡之后,放弃上课,选择西湖。

那天晚上,我第一次见到西湖,也第一次见到她。湖畔游人摩肩接踵,垂柳枝在夜风中拂动,橙色彩灯勾勒出画舫的轮廓,站在白堤遥望,湖面与远处群山层层叠叠的剪影融为一体。西湖的确很美。

西湖边认识的姑娘,和我一起游览了杭州诸多名胜。我们相识,相知,相恋,如水到渠成。我从中收获了许多快乐,远远超过写作带来的乐趣。在她的陪伴下,我第一次去一座城市,不是为了上学,不是为了工作,不是为了探亲访友,不是为了求神拜佛,仅仅是为了开心。开心的不止旅游,周末两人在家一起做饭也很有趣。我学会了做饭,比想象中简单很多。食物秤只用过几次,便嫌麻烦,不再使用。我很快适应了我的勺和我的锅,能凭感觉适量添加调料。

我也慢慢适应了生活的巨大变化,在今年快要结束的时候,找到了新的节奏。在这个节奏中,我能每天抽出一点点时间花在写作上。我不想轻易放弃这个几年前偶然播种的梦想。

2023年12月31日晚西湖畔合影

]]>
https://blog.werner.wiki/2023-annual-summary/feed/ 0
2022年年度总结 https://blog.werner.wiki/2022-annual-summary/ https://blog.werner.wiki/2022-annual-summary/#comments Sat, 31 Dec 2022 12:00:24 +0000 https://blog.werner.wiki/?p=2314 今年过得好像格外快,在惶惶不安中,回过神来,已经到了这一年的最后一天。

过去一年中,我仍然把自己有效的业余时间使用(但不包括体育锻炼和阅读书籍的时间)记录在 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,持续集成。具体解释可参考此处。 ↩︎
]]>
https://blog.werner.wiki/2022-annual-summary/feed/ 2
2021年年度总结 https://blog.werner.wiki/2021-annual-summary/ https://blog.werner.wiki/2021-annual-summary/#comments Fri, 31 Dec 2021 14:27:44 +0000 https://blog.werner.wiki/?p=2254 又到年末,又老了一岁。不过老了一岁不假,却不见得离死亡更近了一岁。人的寿命不是固定的,若是这一年里胡吃海喝,肆意熬夜,虽然只过了一年,却离死亡不知要近了多少年;若是这一年里合理饮食,适量运动,规律作息,说不定反而离死亡远了好多年。回想自己过去一年里的所作所为,介于两者之间,大概离后者更近些,但也不确定。我只知道自己老了一岁,不知道自己离死亡是近了还是远了,近了或远了多少。我不觉得这些想法是无病呻吟,思考死亡是有意义的,它提醒我人生是有限的,应该珍惜时间,常常反思。写年度总结大抵也是同样的目的。

2020 年 8 月的一天,我感叹自己浪费了太多时间,想记录一下业余时间都花到哪儿去了。没有找到满意的工具,决定自己动手,写了一个名为 TimeHub 的网站。今年一整年,我都把自己有效的业余时间使用(但不包括体育锻炼和阅读书籍的时间)记录在 TimeHub,最终整理成活动日历图如下所示。

看到总共记录了 500 个小时。2021 年有 250 个工作日、115 个节假日,按每个工作日有 2 小时,每个节假日有 10 小时计算,2021 年共有 1650 小时可自由支配的业余时间。我只有效利用了其中的不到三分之一。但我已经很满意了,毕竟我只是个意志力薄弱的普通人。

写作

下表统计了过去几年中每年所写的不同类型博客文章的数量。

类别 2021 2020 2019 2018
技术 3 2 13 7
小说 0 1 2 0
科普 16 0 0 0
读后感 0 4 2 1
寓言与笑话 2 0 0 0
思考与总结 2 1 4 3
合计 23 9 20 13

我在今年 5 月报名参加了一个为期 3 个月的科普写作培训班,这期间写了挺多作为作业的科普文。其中大部分质量都很差,只有最后一篇勉强能算及格,被老师发表在了自己的公众号上,给了我一笔小小的稿费。我为这个培训班投入了 134 小时的业余时间。

今年我没有在这个博客发表任何小说,并不是因为我已经放弃了创作小说的想法,而是更认真地对待它——写完小说后不应着急发表,而应放置一段时间,等自己从作者变成读者后,再重新阅读和修改。实际上今年我总共完成了 3.5 篇短篇小说的创作。自我感觉比去年的习作水平高很多,但还是没能达到可以在杂志发表的水平。一个多月前向一家杂志投稿了其中我最满意的一篇,截至目前没有收到任何回信。今年我花在写小说上的时间总共有 141 小时。

编程

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

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

今年业余时间写的代码基本上都是在重构和小修小补 Timehub,努力把它塑造成我需要的样子。总共投入了大约 45 小时。

阅读

下表统计了过去几年中每年阅读的图书数量,看到基本和去年持平。

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

今年读了很多很不错的书。老舍的《骆驼祥子》对我产生了很大的影响。读完《骆驼祥子》后,我走在上班的路上,幻想若是有记者向我提问,问我是否幸福,我一定会这样回答:“我很幸福。因为我每天都有饭吃,也有衣服穿,住的房子虽然有点漏风,但不漏雨,也不用担心下暴雨房子会塌下来砸死我。”

另一本我很喜欢的书是叔本华的《人生的智慧》。虽然罗素的《幸福之路》也很不错,但我更喜欢这本。因为这本书中有这样一段话:

一个人如果在年轻时就学会了察言观色,长于待人接物;所以,能够驾轻就熟地处理社会上的人际关系,那么对于智力和道德来说,这可不是一个好现象,因为它说明这个人是一个平庸之辈。但是,如果一个年轻人在处理这类人际关系时,举动显示出惊讶、疑惑、笨拙和颠三倒四,反而说明他所具有的素质更高。

我处理人际关系时正是显示出惊讶、疑惑、笨拙和颠三倒四!

跑步

没找到合适的时间与地方,我今年一整年都没有跑过步。为保持身体健康,年初购买了一款名叫健身环大冒险的体感游戏机。根据这款游戏的记录,我总共运动了 20 个小时,消耗了 3344.52 千卡的热量,在游戏中累计跑步 50.79 公里。这样算来,倒是比去年跑得多。

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

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

挖洞

今年和去年一样,没有挖到任何漏洞。但与去年不同,今年我在学习漏洞挖掘方面,投入了 115 个小时,绝不算少。但这方面需要我学习的东西还有很多,所以暂时没有任何产出。

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

证书

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

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

其他

除了上述内容,2021 年我在业余时间还干了以下事情:

  • 投入 54 小时练习五笔输入法。原本已经达到了相当的熟练度,最后还是放弃了,有点可惜,希望将来哪天能捡起来;
  • 投入 3 个多小时练习普通话,掌握了 “yun” 的发音。在此之前,我发不出 “yun” 这个音,“白云”会被我读成“白yóng”。当我向一位大学时没少因此嘲笑我的同学正确读出“风起云涌”这个词时,她非常吃惊,并问我:“你是舌头去做了手术吗?”
  • 看了一些电影和动画片;

总结

回顾今年,总体上挺满意的。虽然好像浪费了三分之二的时间,但还是有好好使用剩下的三分之一的时间,这就很不错了。不能对自己要求太高。要求若是太高,就很容易实现不了,还搞得自己即焦虑又沮丧。

关于明年,我没啥想法。我这个人向来目光短浅,从来都是走一步看一步。也没啥愿望,许愿无助于愿望的实现。就这样吧。

]]>
https://blog.werner.wiki/2021-annual-summary/feed/ 2
人生不像马拉松 https://blog.werner.wiki/life-not-like-marathon/ https://blog.werner.wiki/life-not-like-marathon/#respond Sat, 04 Sep 2021 03:55:48 +0000 https://blog.werner.wiki/?p=2216 人生就像一场马拉松,这是一个常见的比喻。确实,人生和马拉松比赛一般来说都被认为比较漫长。但若考察人生和马拉松比赛的更多性质,就会发现这个比喻并不十分贴切。

马拉松比赛的长度是固定的,人生的长度是不固定的。自 1921 年以来,马拉松比赛的长度就固定为 42 千米 195 米1,人生的长度从不固定。有些人尚未出生就已夭折,有些人却可以长命百岁。我们不知道是什么决定了人生的长度,有时会把这种尚不知道、琢磨不定的东西简单笼统地称为命运。你可能会反驳说,马拉松比赛并非一定要跑完全程,也可以中途退出,甚至还未开赛便可弃权。早早夭折的人就像是中途退赛的人,活到平均寿命的人就像是跑完全程的人,高寿的人就像是跑完全程后尚有余力,又跑了一小段的人。这种反驳固然很有道理,但得益于现代医学的发展,最近一、两百年来,人类的平均寿命大幅提升,马拉松比赛的总长度却没有相应变化。

1790-2019年人类平均预期寿命

你可能还会继续反驳,不管平均寿命再怎么提升,总有一个理论上限,假设存在一个理论上限,那么我们可以把人类寿命的理论上限比作马拉松比赛的总长度,这两者都不会发生变化。经过这样小小的修正,比喻似乎又变地贴切了。但仍存在两个问题:一、马拉松比赛的中途退赛基本上是自愿的,强制退出(晕倒或猝死在赛道上)是很罕见的,人生的退出则大多是强制性的,疾病、饥饿、意外、互相残杀等,自愿退出(即自杀)反而是极少数;二、若把人类寿命的理论上限比作马拉松比赛的总长度,那么极少,或者说到目前为止,还没有完成人生这一比赛的人,但每场马拉松比赛都有很多选手完成比赛。

马拉松比赛的起点是统一的,人生的起点是不统一的。由于同时参赛的人数众多,马拉松比赛常常会分区起跑。优秀运动员处在 A 分区,最先起跑;从未跑出过好成绩的业余先手则往往会被安排在 D、E 甚至 F 分区。在大型赛事中,起跑时间的差距可能会长达 10 分钟之久。然而,与出生在不同的家庭所导致的人生的不公相比,马拉松比赛分区起跑带来的那一点点不公完全可以忽略不计。就人生而言,一个人的起点可能是另外一个人可望而不可及的终点。每个人多多少少都会继承一些父母的幸运与灾祸,对于最贫穷和最富裕的家庭来说,犹其如此。

中国的代际收入固代情况

上图出外:乡村发展基金会.卢迈:缩小城乡差距要从关注乡村儿童做起.中国发展研究基金会微信公众号.2019-08-23

最重要的一点差别是,马拉松比赛的线路是固定的,人生的线路是不固定的。马拉松比赛组织方往往会很用心地设计比赛线路,竭力展示比赛地最美的风景。以 2020 年武汉马拉松为例,比赛线路从长江江畔开始,途径东湖风景区等风景名胜,终点是武汉欢乐谷2。不管再怎么设计,马拉松比赛的线路总归是固定的,人生就大不相同了,从来都不存在一条固定的人生线路,所有人类都得按这条线路度过自已的一生。绝对的自由并不存在,但每个人多多少少还有些选则的余地,可以选则自已成为怎样的人。

我更愿意把人生比喻成登山。广袤无垠的大地上交错纵横着大大小小的无数山脉,每个山脉星罗棋布着高高矮矮的无数山峰。每个山脉对应着人类文明的一个大领域,每个山峰对应着大领域中的小领域。每个人或自愿,或被迫,或巧合,选则了其中的一、两个或更多个山脉、山峰去攀登。爬得越高,代表他在这一领域的成就越大,一般来说也就越受人们尊敬,社会地位和收入也越高。人们并不总是从海平面处开始攀登,从哪里开始,在相当程度上取决于出身的家庭。人们也并不总是需要爬到顶峰,许多人爬到收入足以养活自已和后代便停止了攀爬。这可能是因为爬得越高,往上爬的难度也就越大。爬着爬着发现自已不喜欢这座山的风景这种情况也时有发生,有些人会咬着牙继续往上爬,心中充满埋怨,也有些人会毅然放弃已往的辛劳,选则另一座自以为自已将会喜欢的山,重新开始攀登。

登山比喻解决了马拉松比喻长度不确定,起点不统一,线路不固定的问题。更重要的是,这一比喻给出了一种人生的意义——选则一座山,攀登到山顶。

后记

本文的每个汉字都是使用五笔字型输入法输入的。实际上,写作本文的目的就是练习五笔输入法。

]]>
https://blog.werner.wiki/life-not-like-marathon/feed/ 0
2020年年度总结 https://blog.werner.wiki/2020-annual-summary/ https://blog.werner.wiki/2020-annual-summary/#comments Thu, 31 Dec 2020 14:57:40 +0000 https://blog.werner.wiki/?p=1627 前言

古人云“事以密成,语以泄败”1,现代心理学也有研究表明,说出口的愿望更不容易实现2。因此当暗淡蓝点3公转一周,我的同类大都在宣布新年愿望或计划之时,我却要不合群地写总结。本文是我的 2020 年业余时间总结。

写作

下表统计了过去三年中每年所写的不同类型博客文章的数量。

类别 2020 2019 2018
技术 2 13 7
小说 2 1 2
读后感 4 2 1
思考与总结 1 4 3
合计 9 20 13

从上表可以看出 2020 年写的博文数量明显比过去两年要少,主要是技术类文章数量骤降。这有两个原因:一是新工作4比以前要忙,业余时间更少;二是我对小说创作的兴趣日渐浓厚,终于决定要付诸行动。在过去一年中,我阅读了大量(与以前相比)小说,在 5 月时较为潦草地创作了一篇短篇小说,向某杂志社投稿后被拒稿。经过一段时间的准备,我又在 10 月和 11 月花费了接近 40 小时的业余时间非常认真地、竭我所能地创作了一篇短篇小说,给同一家杂志社投稿,结果又被拒稿。可见目前我的小说写作水平尚未达到能在杂志发表的水平。

编程

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

年份 contributions
2016 47
2017 4
2018 92
2019 34
2020 226

2020 年的 contributions 比 2016 年至 2019 年 4 年里的 contributions 之和还要多。可见 2020 年业余时间我写了不少代码。

主要完成了两个项目。第一个项目是在更换工作的间隙里花了点时间实现的名为 pekja 的 SRC 情报收集管理系统。但入职后新工作很快便让我对此项目失去了兴趣,不再维护。

第二个项目是八月和九月里耗时超过 70 小时写成的一个用于记录个人业余时间使用情况的网站 Timehub。写这个网站是因为我想要详细地记录业余时间使用情况,以便回顾和审视。但现有产品都不完全符合我的需求,于是便决定自己动手实现。由于从未做过任何推广,网站已经上线三个多月了,仍只有个位数的用户。

阅读

下表统计了过去三年中每年阅读的图书数量,单位:本。

年份 读书数量
2018 7
2019 7
2020 17

今年阅读的图书的数量比去年和前年之和还要多。之所以读了这么多书,主要得感谢一个叫做微信读书的产品,在每天吃午饭和晚饭时,它都勤勤恳恳地为我朗读书籍。其次还得感谢海信集团,它推出的墨水屏手机让我可以方便地、长时间地、更护眼地阅读那些不适宜朗读的书籍(事实上,几乎只有小说适合边吃饭边听)。

也很感谢微信的青少年模式。在今年,我曾沉迷于一个叫做知乎热榜的微信小程序。当我的心神不被工作占据时,总是忍不住要打开它看看其中的内容,就如同一个瘾君子总是忍不住要吸毒一样。我浪费了很多时间在它上面,有时甚至会严重推迟入睡时间。我清楚地知道知乎热榜中没有多少有价值的信息,可我无法控制自己。于是我一遍又一遍地删除这个小程序,又一遍又一遍地将它添加回来。这让我陷入到了痛苦之中。我的意志力在同类精心设计的圈套面前不堪一击。我早就用浏览器扩展屏蔽了搜索引擎结果中的 *.zhihu.com,好让自己远离时间黑洞,但微信并不支持第三方插件,而我暂时也不太可能直接卸载微信。毫无办法,我只能任由这只怪兽肆无忌惮地吞噬我的时间。有大约两个月,我生活在这样地痛苦中。解救我的是微信团队,他们仿佛听到了我内心深处的呼唤,及时上线了青少年模式。这柄利刃在亮剑的一瞬便彻底地杀死了以时间为食的怪兽——开启青少年模式后,我只能使用事先设置好的几个小程序,知乎热榜显然不在其中。

我虽已成年,但微信仍然需要开启青少年模式;我早已毕业,但手机仍然处于学生模式。这似乎表明不仅孩子需要被管束,成人也需要。可成年人该由谁来管束呢?若是由政府来管束,便是一部反乌托邦小说。

跑步

全年竟然只跑了不到 30 公里!这是在写这篇总结之前我未曾意识到的。历年跑步总里程数统计如下表所示,单位:公里。

年份 里程
2016 389.29
2017 333.75
2018 135.39
2019 112.78
2020 28.44

大部分跑步发生在 9 月份,那时天高气爽,冷热适宜,疫情也较为平息。工作日的晚上,我会在公司所在园区跑步,每次跑大约 2 公里。园区遍植草木,虫鸣鸟叫之声不绝于耳,又无车马喧哗,周围的建筑也布满岁月的痕迹,颇有一种仍在大学中跑步的感觉。而到了 10 月,气温骤降,懒惰以寒冷为借口战胜了勤奋,我便再也没有跑过步。

渗透

最开始的计划是每周末花几个小时的时间渗透一台靶机做为练习。但我很快发现自己的业余时间是如此至少,想做的事情是如此之多,又有大量的业余时间被浪费。加之这个项目的优先级不高,所以一年下来,我竟然只完成了一台靶机的渗透。

年份 主机数量
2018 1
2019 29
2020 1

挖洞

今年未能实现去年总结5中写的“希望在 2020 年可以实现 0 的突破”。

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

证书

今年未获得任何证书。

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

其他

除了上述内容,2020 年我在业余时间还干了以下事情:

  • 从深圳搬家到北京;
  • 离开深圳前和几个前同事聚餐一次;
  • 在北京和表哥表嫂聚餐一次;
  • 看了一些电影和动画片;

总结

回顾今年,做了一些事情,也还有许多事情没来得及做,一年的时间就已永远消逝。正如歌词中写的那样,时间是多么让人猝不及防6

我现在 25 岁,大约已经度过了自己人生的三分之一7,每每想到此处,就感到时间紧迫。迷信的人也许忌讳在新年谈论生死,但我赞同海德格尔的观点,只有在面向死亡的心境中,人才能体验到存在的全部含义。

对死亡的预见为每一种选择注入了存在的紧迫感、责任感。这种紧迫感、责任感会使人在每一个决定的时刻用自己的整个存在去确认自己、选择自身。8


  1. 《韩非子·说难》:“夫事以密成,语以泄败。未必其身泄之也,而语及所匿之事,如此者身危。” ↩︎
  2. Gollwitzer, P. M., Sheeran, P., Michalski, V., & Seifert, A. E. (2009). When intentions go public: Does social reality widen the intention-behavior gap? Psychological Science, 20, 612-618. ↩︎
  3. 暗淡蓝点即地球。1990 年 2 月 14 日距离地球 64 亿公里外的旅行者 1 号拍摄了一张地球照片,照片中地球仅有 0.12 像素大小,这张照片被命名为“暗淡蓝点”(Pale Blue Dot)。美国著名天文学家卡尔·萨根博士因而得到灵感,写成了《暗淡蓝点:展望人类的太空家园》(Pale Blue Dot: A Vision of the Human Future in Space)一书。 ↩︎
  4. 我在 2020 年 3 月时更换了工作,离开了深圳的某网络通信设备制造企业,进入了北京的某信息安全公司。 ↩︎
  5. 去年的总结见《2019年年度总结》。 ↩︎
  6. 歌曲《岁月神偷》中有一句歌词是“时间是让人猝不及防的东西”。 ↩︎
  7. 根据国家卫生健康委发布的《2019年我国卫生健康事业发展统计公报》,2019 年我国居民人均预期寿命为 77.3 岁。25 除以 77.3 约等于 1/3。在这个计算中,没有考虑因生命科学和医学等的发展而带来的寿命提升。 ↩︎
  8. 姚大志.现代西方哲学[M].北京:中国社会科学出版社,2015.73~74 ↩︎
]]>
https://blog.werner.wiki/2020-annual-summary/feed/ 2
分析《评论|勿用「做最好的自己」来逃避政治》 https://blog.werner.wiki/analyze-bestself-escape-politics/ https://blog.werner.wiki/analyze-bestself-escape-politics/#comments Sat, 08 Feb 2020 08:44:35 +0000 https://blog.werner.wiki/?p=1309 微信公众号“收容所Asylum”昨天(2020年2月7日)推送了一篇名为《评论|勿用「做最好的自己」来逃避政治》1的文章(后文称这篇文章为“该文”),作者是“睡1号床”。昨晚一个朋友将该文发给我,让我“点评一下”,于是便有了本文。

本文将对该文进行较为简单的分析。该文的作者若是看到了我的分析可能会觉得不悦,因为分析结果大都是负面的。但我并不担心,因为这种不悦变成现实的概率很小,毕竟我的博客没什么人访问。若不幸真的被他看到了,就只能期望他把我当做诤友,并在最初的不悦过去后留下评论。

若读者有兴趣继续阅读本文,应当先认真地阅读一遍本文将要分析的文章,在脚注1中可以找到它的PDF格式备份。否则读者将难以理解后文在说什么。

文章分析

从文章标题《评论|勿用「做最好的自己」来逃避政治》中可以看出该文是在反驳一种观点。全文共11个自然段。前3个自然段引出了该文想要反驳的观点:

与其谩骂,不如做最好的自己

该文紧接着给出了一张典型反映这一观点的一段话的截图,以使读者对它想要反驳的观点有更为直观地认识。

第4自然段认为截图中那段话引用“横眉冷对千夫指”是不恰当的,乃至是搬起石头砸自己的脚。

在第5自然段中设计了一个场景,该场景中出现了自己想要反对的观点,并且将“做最好的自己”具体化为“考警校当警察,维护一方治安”,营造了一种荒谬感。

第6自然段是对第5自然段场景的补充说明,说明第5自然段中设计的场景虽然是一个特例,但其中蕴含的道理却具有普适性。

第7自然段进入正题,开始反驳。“谩骂”和“做最好的自己”不冲突,一个人可以在一些时间里“谩骂”,在另一些时间里“做最好的自己”,合理分配时间,便可以做到即“谩骂”又“做最好的自己”。所以“与其谩骂,不如做最好的自己”不成立。

第8自然段在说“谩骂”可能有用,并非一无是处。有两种可能的起作用方式:一是“谩骂”的内容可能是具有建设性的意见,有利于解决问题;二是“谩骂”反映的公众情绪可能引起公权力的关注,进而带来改变。

第9自然段在反驳“一个人不该‘谩骂’某事物,而该努力成为可以改善该事物的人”这一观点。

第10自然段承接第9自然段,就算一个人做到了“最好的自己”,成为了“可以改善某事物的人”,也很可能并不能真正改变什么。

第11自然段认为“与其谩骂,不如做最好的自己”是鼓励我们当看客的论调加上了让未来变得更好的动机。全文结束。

文章问题

含义不清

该文没有写明——根本就没有写——什么是“谩骂”,什么是“做最好的自己”,不同的读者阅读后会有不同的理解,便会产生歧义。严格些讲,不明确这些关键词汇的含义,该文的所有讨论都是没有意义的。

拿“谩骂”来说,当我读完该文时,对文中“谩骂”的理解是“在微博、朋友圈等社交媒体中对时事发表评论”,但所有评论都算“谩骂”吗?非常理性地分析算不算?对事实的客观陈述算不算?只有在“社交媒体”中发表的评论才算吗?线下和朋友聊天时发表的评论算不算?写在私人日记中的算不算?不同的读者对这些问题会有不同的回答。

题文不符

该文标题是《评论|勿用「做最好的自己」来逃避政治》,但正文中根本没有出现“政治”这个词语,“逃避”也只出现了一次,且出现的地方是:

当然后面还有个「逃避」,暂时不讨论

说是暂时不讨论,但其实是再也没有讨论。基于此,我认为该文的标题和内容不相符。

预设不实

第7自然段中有这样一句话:

这种「你要做A而不是B」的命题,预设了「A和B不能同时做」这个前提。

“你要做A而不是B”是一个祈使句,不是陈述句,所以严格地讲,它不是命题。先不管它是不是命题,“你要做A而不是B”并不总是预设“A和B不能同时做”这个前提,如妈妈对小明说“你要做的是吃感冒药而不是吃水果糖”,没有预设感冒药和水果糖不能同时吃这个前提。

但我阅读“与其谩骂,不如做最好的自己”后确实感觉这句话包含了“谩骂”与“做最好的自己”不能同时做的意思。这可能是“与其……不如……”这一句式带来的,下面是百度知道“用与其…不如,与其…不如造句。。”2这个问题的点赞数最多的回答中造的句子:

  1. 与其坐着受欺负,还不如奋起反抗。
  2. 与其坐在椅子上发呆,还不如出门去迎接春天的来临。
  3. 与其求得别人的帮助,还不如靠自己的力量与智慧解决。
  4. 与其等待机会上门,还不如上门去找机会。
  5. 犯错后你与其坐在地上哭,还不如吃一堑长一智。

这5个句子中除了最后一个可以坐在地上哭的同时心理默默地记下教训,吃一堑长一智外,其余的4个句子描述的都是一个人无法在同一时刻进行的两种活动。

论证无力

第9自然段在反驳“一个人不该‘谩骂’某事物,而该努力成为可以改善该事物的人”这一观点,内容为:

按照有关论者说法,觉得政府不好,就要去考公务员;这和觉得小偷多就要去当警察一样荒谬。依此推论,如果我不当警察,我就不能嫌小偷多;不是政府官员,我就不能觉得政府不好。此外,我要是觉得黑社会也不好,是不是还要加入黑社会去改变它?

一个人觉得小偷多便去当警察为何荒谬呢?这个人为了解决小偷多这一问题付出了实际行动,他想当警察的动机是崇高的。以一个不加证明的荒谬来反驳一个观点,这种反驳在我看来是无力的。

觉得黑社会不好,为何要加入黑社会去改变它呢?不应该当警察去消灭它吗?

当然第9自然段反驳的观点是不正确的。问题在于我们的社会是高度分工的,一个人所能掌握的技能,所能从事的行业,所能任职的岗位,所能解决的问题都是十分有限的,学习新技能,转换行业的代价又很大,而一个人可以“谩骂”的事物却很多很多,他绝无可能成为可以改善所有他“谩骂”的事物的人。

证据不足

该文没有给出论据的证据,就好像这些论据是所有读者都认同的公理。如第8自然段结尾的一句话是:

即便是单纯的「谩骂」,反映的也是公众情绪,而这种情绪可以引起公权力的关注,进而带来改变。

公众情绪可以引起公权力的关注进而带来改变?我对这一点深表怀疑,该文却没有给出让我信服的证据。

再如第10自然段第一句话是:

即便真的让人去考公务员,从概率角度看,想要实现人们所希望的「改变」也是很困难的。

该文也没有给出任何证据来证明上面这句话的正确性。

再如全文最后一句话:

殊不知,如果今日高高挂起,那么期待中的「明日」便不太可能到来。

这句话实际上想要表达的是:如果大家都不“谩骂”,选择高高挂起,那么想要改善的事物不太可能改善。其实是在说不“谩骂”的坏处,但同样是直接抛出一个结论,没有任何证据。

由于没有任何证据,读者(比如我)会觉得这些论据只是作者凭借个人生活经验和主观感受为了证明自己的观点而特意写出的,不具有说服力。

天干缺丙

第5自然段的部分内容是:

试想一个情景。甲家遇到了小偷,乙很愤慨。乙说:「小偷太可恶了,天下小偷死全家」。这时丁看不下去了……

我想问丙去哪里了?好吧,是我在吹毛求疵,其实无所谓的。但我第一遍阅读就觉得很奇怪。

总结

该文有着与正文不相符的吸引眼球的标题,初读觉得挺有道理,似乎是十分理智地分析。然而一遍遍地阅读,一句话一句话地分析后发现其实言而无物,没有什么实质内容,无法使我信服。以对我产生的影响为标准来评判,该文没什么用。

这篇文章写得好吗

该文本就不是写给会逐字阅读、认真分析的读者的。它是一篇微信公众号文章,目标读者在公交上、地铁上或是马桶上匆匆翻一翻,若有所得,便会关闭。该文发表约1天后,有775人“喜欢”,1.0万人“在看”,阅读量“10万+”,显然,这是一篇写得很好的文章。


  1. 点击此处可下载该文的PDF格式备份。 ↩︎
  2. 点击此处可以打开该问题页面。 ↩︎
]]>
https://blog.werner.wiki/analyze-bestself-escape-politics/feed/ 1
2019年年度总结 https://blog.werner.wiki/2019-annual-summary/ https://blog.werner.wiki/2019-annual-summary/#comments Tue, 31 Dec 2019 14:54:27 +0000 https://blog.werner.wiki/?p=1155 前言

一位哲人曾说:“我们庆祝新年是为了替难以察觉但又确实存在的缓慢改变做出标记。缓慢发生的改变经过一定时间的积累后才能被察觉。时间里程碑或许不是许愿的好时机,但确实是检视与调整自身步调的好机会。”1所以新年适合写总结。

在本文中,我将从写作、阅读、跑步、渗透和挖洞等方面对我的业余生活进行总结。

写作

我写的所有文章都收集在这个博客中,很简单就可以统计出2019年共写了20篇文章(包括本文),与2018年的13篇文章相比,增长了53.8%。按类别对文章进行统计如下表所示,可以看到无论是2019年还是2018年,我写的文章都以技术类为主。

类别 2019 2018
技术 13 7
小说 1 2
读后感 2 1
思考与总结 4 3
合计 20 13

不仅数量有所增长,质量也有了很大提升。在2018年的13篇文章中,包含了《QQ Web API备忘》这样的水文,2019年没有写任何水文,甚至有3篇文章为我赚到了稿费,1篇文章为我赢得了T00ls论坛账号。以前写水文是在把博客当笔记本用,现在找到了好用的笔记软件(OneNote),便不再需要这样做了。投稿自然是为了稿费,但还有以下两点不容忽视的好处:

  • 一想到要投稿我就会非常认真地写文章,力求尽善尽美;
  • 投稿可以发表在目标读者聚集的平台,获得很大的阅读量。2

阅读

我自诩为一个爱读书的人,但回顾过去两年里的阅读量就会发现这种自诩不失为一种反讽。2019年仅阅读了7本书籍,与2018年相比没有任何进步。之所以只读了这么少的几本书,一方面是因为我的阅读速度很慢,另一方面是我把阅读的时间安排在每天吃完午饭到睡午觉前,只有大约30分钟的时间。由于我一直使用kindle阅读,而kindle一般放在公司,若是周末没有带回家,一整个周末就都不阅读了。

年份 2019 2018
阅读书籍数量 7 7

我一直觉得阅读量以“本”为单位进行统计是极不科学的,一本书可能是另一本书的十倍之厚,而我们都称呼它们为一书。但眼下我也难以给出阅读时间的统计,若肯费一番功夫,统计阅读的字数应该是可以做到的,但同样的字数因内容不同所含信息量也常常有云泥之别。所以作为一个不严肃的总结,就按本来统计好了。

虽然阅读量不大,但过去的两年里,每年都读到了几本直接撼动三观的书,在很大程度上改变了我。我如同一个小孩子一样三观经常改来改去的。

在2019年,我还阅读了人生中第一本英文小说《The Little Prince》。当读到小王子站在山巅大喊“Be my friends. I am all alone”,而只有回声在天地间震荡“I am all alone–all alone–all alone”时,我被深深地震撼。“前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。”的意境竟被如此简单的几个词汇勾画出来。

跑步

我一般认为自己是一个喜欢跑步的人,也会向别人这么介绍自己。但在2019年我只跑了112.78公里,少于2018年的135.39公里,而这两个数字甚至都不及2016年389.29公里和2017年333.75公里的一半。

统计每月的跑量还能看出更有意思的现象,如下图所示。

2019和2018跑量对比

可以看到2018年的跑量主要集中在前半年,当时我还没有毕业,经常在学校操场跑步。2019年的跑量主要集中在第四季度,10月中旬我发现从公司到家的绿道修好了,于是下班后便常常跑步回家。果然家附近有可以跑步的地方很重要。

渗透

整个2018年我只成功渗透了1台主机,而在2019年,这个数字变成了29,我的渗透测试技术有了长足的长进,姑且可以算作入门了吧。这基本解释了我的业余时间都花在哪里了。下表是我在2019年成功渗透的主机按操作系统的统计。原谅我没有进一步细分Linux系统,因为这一统计会花很多时间,我不想因为写这篇总结太耽搁睡觉的时间。

操作系统 数量
Linux 15
FreeBSD 1
SunOS 1
Windows Server 2008 1
Windows Server 2003 3
Windows 8 1
Windows 7 3
windows XP 2
Windows 2000 2

挖洞

2019年我挖到的漏洞数量是0,与2018年挖到的漏洞数量0相比毫无变化。之所以特意把两个均为0的数字列出来是因为我希望在2020年可以实现0的突破。

年份 2019 2018
漏洞数量 0 0

证书

2019年我唯一获得的证书是OSCP,这一点是不如2018年的,在2018年,我不仅获得了学士学位证书还获得了毕业证书:)

年份 2019 2018
证书数量 1 2

其他

除了上述内容,2019年我在业余时间还干了以下事情:

  • 爬了一次南山,若干次塘朗山;
  • 和高中同学聚餐若干次;
  • 和大学同学聚餐若干次;
  • 看了一些电影和动画片;
  • 写了一点点代码;
  • 种植了20颗石榴籽,基本都发芽了,但现在却枯萎到只剩最后一株幼苗;
  • 跟随Kepp进行力量练习,但没有坚持多久就放弃了;
  • 有段时间在上下班班车上背单词。

总结

本文基本囊括了2019年我的业余生活,我就是这么一个无趣的人。我不知道一个正常人的正常生活应该是什么样的,也不知道别人都过着怎样的生活。可能我的生活方式极为特殊,在这颗星球表面只有我一个人过着这样的生活,也可能还有很多很多人过着和我差不多的生活,只是我不知道罢了。无论怎样,地球都将不紧不慢地一边自传一边公转,使我们迎来我们自己定义的新年。


  1. 張毓思.改變這件事.紙上曇花,2018.5.25 ↩︎
  2. 例如发表在安全客的《我是如何拿到OSCP认证的? 》截至目前已经有45万多的阅读量,比这个博客所有文章的阅读量加起来还要大好多倍。 ↩︎
]]>
https://blog.werner.wiki/2019-annual-summary/feed/ 6
一种关于人生是有意义的论证 https://blog.werner.wiki/demonstrate-life-is-meaningful/ https://blog.werner.wiki/demonstrate-life-is-meaningful/#comments Thu, 21 Nov 2019 13:58:30 +0000 https://blog.werner.wiki/?p=977 长久以来的想法——人生没有意义

无论是教科书还是故事书,似乎都只聚焦于那些被认为是伟大的人,这些人往往在政治、科学或艺术等一个或多个领域做出过一项或多项杰出贡献,他们的工作深刻地影响着几百甚至几千年后的我们。而没有哪本书会关注普通人,至少在我小时候读的书中。这便让幼时的我天真地以为这颗星球上的每一个人都如书中记录的人物一般一生中总会成就一番伟大的事业。否则人生又有什么意义呢?但随着年龄的增长,大概是从初中时起,我渐渐意识到了包括我自己、我身边的所有人、古往今来死了的和还活着的人在内的绝大多数人都不会有什么成就。我一生的成就几乎注定不可能超过“碰巧”发现天王星的赫歇儿,而他的这一成就少有人知,原本为我所不屑。

人生没有意义这一想法在初中时萌芽,高中时学习的大量自然科学知识无一不在支持这一想法,到大学毕业时我便已经极为坚定的认同这一想法。似乎只有牛顿、达尔文和爱因斯坦这样的人生才是有意义的,我的人生没有意义。

今天忽然想到的——人生有意义的论证

今天站在饮水机旁等待水装满杯子时我忽然想到了一种关于人生是有意义的论证,回到工位后迅速在纸上大略记录了这一想法。下班回到家中,将这一想法整理如下。

我们直接承接上文,承认达尔文的人生是有意义的,而不去讨论达尔文的人生真的有意义吗、人生是什么和意义是什么等问题,这是我论证的开始,可以理解为公理。

我之所以会觉得达尔文的人生是有意义的,显然是因为他提出了——准确地说是发扬光大了——物种起源理论。那么凡是为物种起源理论做出过贡献的人的人生便都是有意义的了。而对科学史稍加了解便可以知道,达尔文也是“站在巨人的肩膀上”。这里简单列举一些。在达尔文出生前一个半世纪,罗伯特·虎克和安东尼·凡·列文虎克等人不断改进显微镜,人类观察到了奇妙的微观世界,不久后诞生了微生物学和微观解剖学。在达尔文出生前130年,人们发现了恐龙化石。在达尔文出生前74年,卡尔·林奈发表了对自然世界的基本分类方法和双名命名法。在达尔文出生前10年,乔治·居维叶建立了比较解剖学和古生物学。在达尔文1831年踏上贝格尔号开始环球航行时,前辈们已经为他准备了相当完备的生物学体系,这些前辈都为物种起源理论做出过贡献。更不用提查尔斯·莱尔的《地质学原理》对达尔文的启发,所有地质学的先驱也都为物种起源理论做出了贡献。往近了说,那些设计、建造贝格尔号的人,那些发明、制造六分仪和观测、编制星表的人,那些发明、改进标本制作和保存方法的人;往远了说,那些发明、生产纸和笔的人,那些发展了人类语言和文字的人,等等等等,都对物种起源理论做出过贡献。每个人的工作都是在前人的基础上进行的,时间长河中无数人的努力汇聚在一起才最终诞生物种起源理论。如此想来,单单因为物种起源理论而人生被认为是有意义的人就不在少数,仔细深究起来,恐怕是一个极为庞大的数字。

不仅仅是物种起源,人类的一切成就都是如此。牛顿、达尔文和爱因斯坦只是适逢其时的人,没有他们,很快也会有其他人来填补空缺。他们确实是令人仰止的高山,但不是平原上的高山——只有几座孤峰,而是高原上的高山——在他们周围,还有无数只比他们矮了一点点的山。

尾声

人生真的有意义吗?站在宇宙的角度,人类文明的一切成就都不值一提,上文论证的基础——那个我所谓的公理——可能本身就不成立。

这是一个十分粗浅、极不严谨的证明。实际上这也只是我对自己想法的记录而已,并不是什么论文。

之所以会想到这些,有两个方面的原因:

  • 刚刚读完《斯通纳》,还处在被它深深震撼的状态中;
  • 前段时间部门打算组织去顺德的短期旅行,因此我常常会想:达尔文旅行之后写了《贝格尔号航行期内的动物志》、《贝格尔号航行期内的地质学》、《物种起源》以及《人类起源和性选择》等一系列著作。我去旅行,恐怕什么都写不出,旅行又有什么意义?
]]>
https://blog.werner.wiki/demonstrate-life-is-meaningful/feed/ 12
我是如何拿到OSCP认证的? https://blog.werner.wiki/how-did-i-get-oscp/ https://blog.werner.wiki/how-did-i-get-oscp/#comments Thu, 17 Oct 2019 11:52:56 +0000 https://blog.werner.wiki/?p=825

首发于《安全客》。因为我希望更多的人看到这篇文章,知道刻意练习理论。

本文假设读者知道OSCP是什么。若不知道,请先阅读《Offensive Security Certified Professional (OSCP) Overview》。

我是怎么想到要考OSCP的?

我们知道要学习一样东西,一种很好的方法便是阅读官方文档。有一天忽然想到可以找找Kali的官方文档,找来找去就找到了OSCP(它们同属Offensive Security)。这是我第一次认真地了解什么是OSCP,如何才能拿到OSCP认证。当了解到OSCP的考试方式是实际攻击指定的5台靶机时觉得十分有趣,便挺想考的。但至少800美元和30天时间的代价使得我没有立刻下定决心。

真正下定决心是在一段时间之后,2019年5月4日。那天下午我忽然就想要去爬塘朗山。我住在塘朗山附近已经两个月了,还从没爬过。出地铁站后发现在下雨,不过雨不大, 我也带了伞,就没有放弃。塘朗山的登山道很陡峭,被雨水浸湿的石头很滑,我一手撑着伞,一手抓着护栏,一个人在渐渐昏暗的天色中小心翼翼地爬着。一路上很少遇到别人,仿佛世界上只剩下我一个人,这样的环境最适合思考人生。

我想起了初中,想起了高中,想起了大学,想起了那些陪伴我的数学题,物理题和课程设计。过往的人生在跌跌撞撞中度过,全都回忆完时我才爬了一小半。时间过得飞快,一转眼我毕业都快一年了。这一年来有什么长进呢?要说长进还是有一点的,但远不及预期。忽然想到若是我刚毕业就准备OSCP考试,到现在一定早就考过了。曾有一个同学和我说:种一棵树最好的时间是十年前,其次是现在。同样的道理,若是我现在开始准备OSCP考试,要花多久呢?一个月,两个月还是半年?不管是一个月还是半年,在回忆中都只是一瞬。至于费用,更不是问题,虽然我工资不高,但生活得即为节俭,攒几个月便可以凑齐报名费。

但还有一个更大的阻碍摆在我面前,那便是OSCP是全英文的,而我的英语学得很差。差到什么程度呢,高中时英语考试很少及格,到大四时才通过四级考试。英语可以是我放弃的理由吗?我一边爬山一边在心里盘算,为了OSCP我总共需要再背多少个单词,每天需要背多少个,总共需要背多久。最后不知道哪里来的勇气就觉得英语应该不是问题,只要在真正报名OSCP前先背几个月单词就可以了。几个月也只是一瞬间。

那天我一鼓作气爬到了塘朗山顶。下山时天色已经很暗,有些看不清路,好在雨停了。我又一个人在黑暗中摸索着下山,想起大学时也常常这样一个人在晚上爬喻家山,现在的我和大学时的我并没有什么本质上的变化。

下山回家后很快拟定了学习方案。我是这样计划的:先花三个月(5月、6月和7月)做考试前准备,主要内容是背单词,次要内容是用Vulnhub靶机进行渗透测试练习,接下来两个月(8月和9月)进行OSCP课程学习,最后在10月初参加考试。为了避免自己遗忘特意买了一个相册,将自己的目标和计划写在上面,放在显示器旁。还在网上找了一张别人的OSCP证书的照片设置为自己的壁纸,每次开机都会看到。

写着目标的相册

当这样一个符合SMART原则的目标写在纸上后,我的OSCP之旅便真正开始了。

我是如何准备的

按照计划,我要开始背三个月单词。在4月27日,刚好做过一次词汇量测试,结果为2700。又做了一次,结果为2761,考虑到10%的误差,相当于毫无变化,说明这个词汇量测试还是有一定准确性的。我拿出一张草稿纸,用铅笔画了一个15*2的表格,第一列写下日期,从2019.04.27开始,接着是2019.05.04,以此类推(间隔为一周),最后一个日期是2019.08.03。然后在第二列写下已有的两次词汇量测试记录,并计划每周六(4月27日和5月4日都是周六)背完单词后测试一次词汇量,将结果写在纸上。这张纸就贴在显示器侧后方的墙上。

因为上下班公司都有班车接送,所以我选择在上下班的路上背单词。刚开始时每天背200个(包括复习和新学),后来觉得实在太多,便改为每天背100个。刚开始时稍稍觉得有点艰难,因为我的大脑已经很久没有进行过背单词这项活动了,就如同让一个好久没有跑步的人忽然长跑一般不适。但很快就适应了这种生活,并慢慢变成一种习惯。每过一周,便在纸上写下一个数字,有时涨,有时跌,但总体趋势还是向上的。当2019.08.03那行被填满时,我几乎不敢相信三个月已经过去了。

当三个月的背单词计划完成时,我的词汇量由2700增长到了6093,虽然距离学好英语还差了很远很远,但心想应付OSCP应该足够了。

词汇表

这三个月里,另一项准备是用Vulnhub的靶机做渗透测试练习。因为我以前的渗透经验几乎为0,就算是靶机也没有完完整整地完成过一台,所以觉得有必要先练习一下。我的电脑性能不够好,同时跑两台虚拟机(一台kali,一台靶机)会不堪重负,所以我买了一台蜗牛星际把它重装成Ubuntu 18.04专门用来跑靶机。

星际蜗牛

一方面由于经验的缺乏,另一方面由于Vulnhub的靶机大多是CTF风格的,常常需要脑洞大开,所以这项练习进度很慢,最终三个月也只完成了6台靶机的渗透。每台都写了一篇文章详细地记录整个渗透过程,它们是:

我还尝试把这些文章中的几篇投稿到安全客,但只有最后一篇被采纳了,就这样,我赚到了人生中第一笔稿费。这些靶机让我初步找到了渗透的感觉。

我是如何学习课程的

按照计划,我在八月刚开始就报名了OSCP,1000美元的报名费是我工作以来最大的单笔花销。其中的小插曲是OSCP需要一个英文的有效证件来验证身份,我只好去办护照,深圳不愧为效率之城,不到一周我便拿到了护照。课程真正开始是在8月11日的早上8点,我收到了一封邮件,包含着视频教程和PDF教材的下载链接,VPN实验室的访问方法和账号密码,学生论坛的地址和账号密码以及其他很多注意事项和参考链接。

下载后看了下,视频共有149个,好在每个都只有几分钟,PDF共有380页,大概翻了下有很多截图,所以真正文字并没有太多。然后试了实验室和论坛的账号密码,都能成功登录。

其实我最关心的事情是视频教程有没有字幕,因为我的英语听力比阅读能力差太多了,不幸的是没有字幕。11日一整天我都在研究怎么给视频加上字幕。最后找到一个名叫autosub的Python库可以自动生成字幕文件,但这个Python库只支持Python2,而我又只安装了Python3,就改动它的源码,使之兼容Python3。顺利地生成字幕文件后用ffmpeg命令把字幕加到了MP4视频中。

学习方法是以章为单位,先看完一章的视频,再阅读对应章节的PDF,若遇到习题便完成它。之所以要以章为单位,是因为我发现视频教程和PDF教材的内容虽然大体上是一样的,但在细节上有所出入。由于我以前看过好几本系统讲述渗透测试的书籍,所以感觉OSCP的课程都是些熟悉的内容。但即便这样,完成课程的学习花去了四周的时间。

在这期间,上下班路上有时看视频教程,有时背单词。但背法发生了变化,在晚上学习时遇到不认识的单词后我就记录下来,第二天上下班路上就背这些单词。我把这期间的单词汇总整理,放在OSCPVocabulary。但背单词的效果并不如前三个月理想,可能是因为现在心思都在课程学习上。

我是如何进行实验的

学完OSCP课程后,并没有收获很大的感觉。真正的收获主要来自于实验。

在进行实验时,我需要用VPN连接到一个内网,这个内网中有很多任我攻击的靶机,这些靶机是被精心设计用于渗透测试练习的。

实验的第一个问题是网络质量。官方文档要求的网络质量是PING延时在300毫秒以内且丢包率为0。我显然没有这么好的网络,尤其是到了晚上网络质量更差,这大概是由于这个时候主干网被各种游戏和视频数据包拥塞。延时的问题不是很大,一般在320到350毫秒之间,大些时会到400毫秒。丢包却很严重,有时会高达70%!完全无法使用。最后的解决方法是使用Socks 5代理让VPN连接经香港中转,这样延时虽然没有降低但丢包却锐减到几乎为0。

解决网络质量问题后便可以愉快地实验。有些靶机非常简单,从端口扫描到拿到root权限,只花了不到半个小时,有些靶机难度很大,最久的一台我花了5天的时间才搞定。有些靶机甚至需要另一台靶机上的某些信息,否则是不可能被攻陷的。

由于平时还要上班和加班,所以真正进行实验的时间很有限,到9月30日时,我才拿下了个位数的靶机(总共有50多台)。但实验室访问权限快要到期了,而按照最初的计划我也应该在10月初考试,所以依旧预约了考试,具体时间是2019年10月6日18:00到2019年10月7日17:45。另外还在8号那天请了一天假以写报告。

国庆假便是我最后的冲刺时间了,10月1日,正在阅兵的时候,我拿下了一台Windows XP SP1,还在上面玩了一把扫雷。又用一个Web服务的远程代码执行漏洞拿下一台Windows 8.1,又用MS17-010拿下一台Windows XP,并用从XP获取的信息成功提权Windows 8.1。这是我整个实验期间战绩最好的一天,拿下了三台靶机。

在攻陷的靶机上玩扫雷

10月2日拿下两台Linux,3日遇到一台很难的靶机花了整整一天时间拿下了它,到4日时已经头昏脑胀,但依旧拿下了两台。这种头昏脑胀的感觉不是来自疾病,而是来自疲乏。就如同过多的运动会使肌肉疲乏,过多的思考也会使大脑疲乏。如果读者在学生时代曾进行过认真的学科竞赛训练,就应该曾体会过我所说的感觉。出于休息的考虑5日只拿下了一台,到6日时便停止了实验,而是选择打扫房间卫生。因为我赞同福尔摩斯的观点,最好的休息是进行另一项工作。6日下午还再次去爬塘朗山,但出地铁站后发现在下雨,而这次我没有带伞,在考试开始前几个小时冒雨爬山不是一个明智的选择,只好放弃了。

我是如何进行考试的

考试的总时长是23小时45分钟, 我需要在这段时间里入侵5台靶机,每台有不同的分值,满分为100分,超过75分则通过考试。考试结束后另有24个小时时间完成渗透测试报告,最后的得分还要看报告写得如何。

因为前一天晚上和当天中午都没能睡好觉,所以特意买了速溶咖啡,在考试开始前喝了半袋。10月6日17:45登录监考Web页面,验证护照,设置屏幕共享,检查周边环境(拿起笔记本转一圈)等花了好久,真正开始考试已经是18:30。说起来我原本以为需要和监考者用英语口语交流,觉得自己考不过很可能是因为口语不好,看了考试说明才发现是在Web页面中打字交流的。

前三个小时一筹莫展,当时心想虽然通不过考试也在预期之内,但拿0分未免过于丢人。三小时后忽然取得进展,大概在21:30用一个远程代码执行漏洞直接拿下了一台10分靶机的root权限,接着一鼓作气,在22:00左右用文件上传漏洞拿下了一台25分的靶机的低权限shell,并在一个半小时后用第三方软件漏洞成功提权。35分到手已经超过预期了,和监考者说了一声后便去睡觉了。

原计划睡到第二天早上6:45,但不出意料地失眠了,至少到凌晨1点时还是醒着的,具体几点睡着的不清楚。也醒得很早,不到6点就醒了。醒来后立马起床,简单洗漱后喝掉了剩下的半袋咖啡,边吃提前准备好的早餐边开始新的入侵。

在一台20分的靶机中非常顺利地找到了远程php代码执行漏洞。但利用却总不成功,执行phpinfo()是正常的,执行system(‘id’)却不行,没有任何报错也没有任何输出。过了好久才想到去phpinfo()的输出里看看是不是system函数被禁用了,一看果然是,还禁用了一大堆能执行系统命令的函数,好在给我留下了proc_open。知道原因后就好搞了,花了点时间成功拿到低权限shell,这个时候已经9点半了。接着用Linux内核漏洞还算顺畅地提权。至此拿到了55分。

接下来搞定的一台25分的靶机。这台和其他四台不同,并不是渗透测试靶机,而是一道缓冲区溢出题目,需要自行确定漏洞,开发利用程序,并利用这个漏洞入侵这台靶机。只是一道很简单的溢出题目,其难度甚至小于我在准备期间完成的溢出靶机Overflow,不明白这台靶机为何会值25分。当然我会有这种感觉,可能只是因为我是科班出身,学习过相关知识。开发利用程序时甚至回忆起了大学时代,回忆起了软件安全这门课。我拿下这台靶机比较顺畅,在13:00前就完成了,中途还吃了顿午饭。午饭是炒米饭外卖,前一天就订好了,选择炒米饭是因为吃起来比较节约时间。拿下这台有两个地方耽搁了些时间,一是看漏了两个坏字符,二是构造攻击荷载时少加了16个NOP,因为我用了编码器,不加这16个NOP的话解码操作会破坏shellcode。

午觉大概睡了半个小时,睡完午觉才14:00,还有近4个小时,当时以为一定可以拿下最后一台,完美地通过考试,毕竟那台只有20分,想来不会太难。但命运总是如此不可捉摸,直到考试结束,VPN连接被强行断开,我也没能拿下最后一台,实际上是一筹莫展的,完全找不到突破点。现在回想起来应该是由于缺乏睡眠,我的大脑状态已经很差了,再加上已经拿到80分,觉得可以通过考试了,所以才没能拿下最后一台,并不是最后一台真的很难。

考完试后吃完晚饭散了会步就又回家开始写报告。在研究清楚给出的报告模板是什么意思,并完成了一台靶机的报告后估计了完成报告所需的时间大约为几个小时,便去睡觉了。感谢谷歌翻译,第二天午睡前就已经完成了报告。睡完午觉又做了最后的检查与修正,便提交了报告。

10月9日19:34,我收到了通过考试的邮件通知。看到邮件中happy这个单词时就知道了结果,但我也只是激动地来回走了几步,感觉到的快乐和成功入侵那台5天才搞定的靶机时是差不多的。这可能是因为筹谋过多所致。这样想来诸葛亮一生大概很少感觉到快乐,因为事事都在预料之中。

最后的总结

渗透测试不是一门知识,而是一项技能。如果把渗透测试比喻成游泳,那么学校教我的就是浮力的原理,运动的生理学原理,我在课后还自学了要用什么动作划臂,什么动作踩水。当我毕业时,依旧不会游泳,这是因为学校没有游泳池,我从没下过水。在野外游泳,不仅危险而且违法,而OSCP则给了我游泳池。

大学时坐火车回家,遇到一个人时不时就要用手机看一下自己所在的位置,离目的地还有多少公里。而我在上车前就已经意识到距离是没有意义的,真正有意义的是时间。我坐在火车上不关心自己在哪里,距离目的地多远,只关心现在是几点,还有几个小时到站。因为我把火车看做一种封装,如同封装好的API接口,我只管调用就好,不用关心内部实现机制。这5个月也是一种封装,5个月前我设计并调用这个API接口,5个月后执行完毕,结果是拿到了OSCP认证。5个月前爬塘朗山的情景还历历在目,这段时间里发生的事情在此刻的我看来恍如隔世,仿佛那只是一瞬间,又仿佛那是由另一个我完成的。

大四做完毕业设计后我从学校图书馆借阅了最后一本书,是安德斯·艾利克森的《刻意练习:如何从新手到大师》,这本书对我影响很大。我原本坚信天生才华的存在,在我已经经历过的人生中见识过很多天资卓绝、我望尘莫及的人。但其实一个人相信一个理论,可能并不是因为这个理论是正确的,而是因为这个理论对他有好处:瞧,他们比我强是因为天赋比我好,怎么能怪我。读完这本书后我开始相信天生才华根本就不存在,开始相信刻意练习理论。从这本书里学到的另一件事是:能否坚持完成一件事取决于动机是否足够以及能否保持,而不是所谓的毅力。天赋和毅力都是人们为了解释某些现象而虚构出来的,就好比人们虚构出以太以解释电磁波的传播。这5个月的经历也是我对刻意练习理论的一次小小实践。写下这篇文章是想让更多的人相信,至少知道,有这样一种观点:天赋和毅力只是我们想象出来限制自己的枷锁,永远不要因为自己没有天赋、缺乏毅力而不敢行动。

证书还没有寄给我,附上电子徽章:

OSCP徽章

]]>
https://blog.werner.wiki/how-did-i-get-oscp/feed/ 8