MashPlant的笔记

“你将孤单度过一生”

0%

研一下总结

我想起2016.08.05,清华暑期学校晚会后我发的说说,“欢呼是留给那些不欢呼就找不到存在感的人的”,那时候真是志得意满,年少轻狂啊。这句话本身可能没错,但很遗憾我就是自己描述的这种人,而且我还失去了欢呼的能力,所以我就是没有存在感。这个词好像被用的过于泛滥,以至于意思削弱了,这其实是个很重的表述:我感觉我不存在于这个世界上。 - 节选自《2022.06.20》

故事

2022.01.19到2022.02.26,我度过了相当艰难的一段时间,细节完全不能透露,当然肯定也没人关心。这一整篇总结都写的很一般,因为我不愿意写完整的事实。现在回想这段时间,最主要的感觉是尴尬。想要嘲笑我都可以随便,我自己心里已经嘲笑过很多次了。

后面半段日记全程哭着写完,又是那种熟悉的,“从心脏延伸到指尖的酸痛”。按平时的习惯,写出来的字通常要简单读一遍,现在读的声音都是颤抖的。第一次在日记中记录这种感觉是2016.02.11,但在此之前肯定还有,只是没有明确提出这个概念,比如2015.10.23。上一次记录是2021.01.20,后来很顺利地度过了大四下,甚至觉得自己已经习惯了孤独,应该不会再有这样的痛苦了。

“我真的一定要孤单度过一生吗?” - 节选自《2022.02.26》

我自己看着这些日期,每一个背后都是相当悲惨的故事,偶尔会有一种奇妙的成就感,史诗感。但读者肯定只会觉得莫名其妙,什么nt谜语人。

也许孤单度过一生也没有那么不能接受吧,但我总是没法彻底放弃尝试,因为我忍不住设想,但凡有一个人能陪我,那该有多幸福啊。这句话是字面意思,就是我不知道它具体是什么感觉,毕竟我从来没有体验过。

这些都已经过去很久了,碰巧我现在心情还行,不是很能与过去的自己共情,我也不想再写什么了。说到这个,我感觉我最大的问题就是不能共情,别人的事我是发自内心的不关心,也不擅长装成关心的样子,这样的性格想拥有朋友真是痴人说梦。每个人都是独特的,但人和人之间并不是只有“不同”这种关系,而就是有高低好坏,我的性格无疑是坏的。

课程

接下来其实都是比较有意思的部分。我在CMU过的总体来说很压抑,这是因为有意思的事太少了,做完作业之后多数时间都是整天整天的无聊。

高中积累作文素材时记过一句话,叔本华说:“人生实如钟摆,在痛苦与倦怠中徘徊”,应该从来没有真正在作文里用到过。但现在看好像挺有道理,至少对我是很贴切的,有作业的时候我会非常焦虑,完全不会考虑ddl,甚至是在作业还没发布的时候,我就是必须马上把它做出来,这里的痛苦是不少的。但是做完之后,我实在想不到我还能做什么。很多人对我说我这种性格应该去读PhD,我知道自己读不了,这种劲头仅限于有确定结果的事,也就是广义的做题,我害怕探索,不能接受失败。

15-605 Operating System Design and Implementation (A)

我单挑了,不过这是因为我提前“几乎”全做完了。

https://www.1point3acres.com/bbs/thread-198949-1-1.html,这里面说的基本符合我的体验,我就不重复了,但有几点需要修正:

  • P1: 不会写游戏,已经很多年没写过了,每个学期都说“因为这个学期比较短”。
  • P2: mutex的写法还是相当标准的,这课确实需要很多高层次的设计,这是很有挑战性的,因为很可能写到中途才发现某个设计不可行,但是“设计mutex”不在其列。
  • P2: 我不知道他是怎么想的,race相关的bug是非常多,但怎么可能说Paradise Lost“要尤其注意”呢?这是个非常基本和简单的错误,不是在我眼中简单,是相比于其他错误简单。打个比方就是我说编程非常容易出错,你“要尤其注意”不要拼错变量名,这不是很离谱吗。
  • P3: Simics真是太难用了,下面仔细讲。
  • P3 extra: 重点不是kernel是否能跑(不会有人的不能跑吧),而是code style必须符合所有要求才能做P4。和平时认知的那种缩进,注释之类的code style完全不是一个概念,这其实是对设计的要求,这些要求远高于“能跑”。“只要思想肯滑坡,方法总比困难多”,只要放弃某些要求,很容易就写出很稳定的kernel,比如来个全局大锁,比如禁用kernel抢占,但这样的kernel是不允许做P4的,而且如果不在P3 extra中改正,最后的分数也会很低。
  • P4: 内容已经很多年都是一样的了,必然是Paravirtualization,而且有疫情以来每个学期都说“因为疫情,以下内容不做要求”,那可能永远都不做要求了(悲

所有project,slide等都是公开的,在https://www.cs.cmu.edu/~410/。现在可能显示看不到,不过只要加上年份后缀,比如https://www.cs.cmu.edu/~410-s22/projects.html,看往年的就行了,我也就是用往年的handout和starter code提前做的。读者可以自行验证以上观点。

我从很早开始就想选这门课,早到2021.05.26,那一天我就做了P0。当时啥都不知道,打算第一学期就选它。后来当然知道这是不切实际的,但肯定不是我做不到,只是教授不会批准。开学后这事一直放着,但正如我所说,我一直非常闲,从2021.11.04就开始做了。断断续续做了很久,也没有一个明确的日期能认为做完了。总之到开学之前我已经做完了P0到P3,但还没加注释,没有特别仔细地测试过,所以说是“几乎”。事实上剩余的工作量还是远超我的想象。

开学后差点没选上课。这门课是很抢手的(因为学生容量不大),需要academic advisor批准后向OS的教授推荐,然后他根据你的项目,上过的系统课数目和成绩,毕业学期来考虑捞人,我并没有什么优势。我一直在邮件骚扰教授,说我已经做完了project,请务必捞我,但他也不理。一周之后还是没捞,开始考虑备选方案15-662 Computer Graphics,和清华的计算机图形学基础差不多。我也并不是很感兴趣,可以说想选纯粹是因为学过。闲着也是闲着,直接开始提前做它的project,选课在第三周截止,到第二周周六得知我被捞了,已经几乎做完了662的四个project中的前三个,严谨起见也得说是几乎。没有任何犹豫直接把662退了。

之后开始加注释,做一些早就计划好的重构,然后仔细地测试。这时才发现了很多问题,花了一两周调试。几乎全是race相关的bug,多数都非常难复现和调试。这门课用Simics来模拟运行OS,而不是多数人更熟悉的QEMU。

QEMU obtains better performance than single-instruction intepreters such as Bochs or sub-instruction simulators such as Simics, but this performance comes at the cost of reduced fidelity. QEMU frequently runs correct code correctly, but it also frequently runs incorrect code incorrectly. - 节选自 https://www.cs.cmu.edu/~410/doc/enthusiast.html

QEMU能正确运行正确的代码,但不一定能暴露出错误的代码中的错误。有的bug要在Simics上跑个一两小时才能复现,但这至少是可以复现,在QEMU上就完全无法复现。不知道是不是我的配置有问题,Simics的调试功能完全是残废,几乎不能解析表达式,各种找不到符号,没有类型信息,struct字段都按内存偏移量0显示,有好几次我忘了这事,看值都一样还以为我的问题。函数调用栈也经常看不到,更别说前几层函数的局部变量,有时候必须读出一大片栈内存,然后逐个字节自己理解,按汇编里的栈大小往上找。因此想看bug现场信息非常困难,但提前输出信息几乎也不可能,普通一点的加个log就无法复现,有些bug加上一个不会触发的assert都无法复现。

四点多惊醒,特别真实地梦到mutex又出bug了,我在Simics里调试,看到state是我设置的zombie值。类似以前很多梦中做题的经历,感觉特别无奈,精力没法集中,只能看着干着急。直到醒来才发现这是个梦,应该没有比这更可怕的噩梦了吧。醒来后我还完全沉浸于其中,我的第一反应是觉得很可惜,因为我没记住是哪个测例,不然可以直接去测。 - 节选自《2022.02.13》

有些bug发生在我从没怀疑过的基础设施,比如梦里的mutex就是睡前才解决的。调试过程中经常遇到修改一些无关的代码,似乎就能work了,但OS的世界里绝对没有解释不清楚的bug。最终我可以说我解决了所有认知范围内的问题,得到了一个相当稳定的版本。讲道理如果不考虑工作量,这项目就该一个人做,随便一个小bug都是牵一发而动全身,两个人写实在不靠谱。

P3/P4代码行数如下:

其实也不多吧,但有两点需要说明,一是相比别人的工作,这应该是相当精简的,普遍应该在五千行左右。二是调试才是最困难的,至少要占一半的工作量。

每个project都有一些公开和隐藏的测例,到最后也不会知道隐藏测例是什么,以及我们是否过了。这些都只是辅助评分,可以认为code style分占100%:助教会打印并逐行阅读代码,手写评语,分析设计是否符合要求,是否有潜藏的bug,测例能触发和不能触发的bug是一视同仁的。当然,本质上找bug肯定是个不可计算问题,不排除有人能逃过助教的判罚,我只能说他们水平确实挺高的。

考试需要手写代码,强烈推荐用修正带,代码几乎不可能一遍写成。用铅笔先写再誊抄当然也可以,但会比较慢,而且抄的过程中又发现问题还是很麻烦。修正带是我从中国带来的,我已经说了很多年,只要我还写一天字就会用一天修正带,不过以后大概也不会写字了。

他们说可以借我,但我坚持要回家拿,还是这一套用着顺手。笔袋从高中开始用,这种笔从高二下学导数时开始用。它们见证了我最纯粹的快乐:为自己的理想而努力,至少当时自以为如此。我对它们一直有些很中二的想法,握着笔像是曹操横槊赋诗:“我持此槊,破黄巾,擒吕布…纵横天下,所向披靡,不负大丈夫之志!” - 节选自《2022.03.02》

期末考试没有样卷,不过我把考题记下来了,回家之后直接默写了出来,不过为了保险起见我还是不分享了。

讲课内容其实不是很重要,我怀疑所有课的内容都不重要,不过为了完整性还是记录一下。前半学期就是正常的OS的各种原理,和清华的操作系统差不多,但顺序差别很大:

  • CMU:C/汇编基础 -> 进程/线程 -> 同步互斥 -> 虚拟内存 -> OS启动
  • 清华:C/汇编基础 -> OS启动 -> 虚拟内存 -> 进程/线程 -> 同步互斥

以前OS启动能考一大堆八股,都是些x86的奇怪的细节,MBR的512个字节,从实模式切换到保护模式,ljmp刷新CS缓存之类的。这些过于底层且古老的东西真没什么用。当时学虚拟内存的时候很不理解为什么需要这么复杂的机制,之后讲到进程才理解它是用来实现地址空间的隔离。我觉得CMU的顺序显著地更好,从OS提供给用户的抽象讲起,启动放在很后面,而且只是简单过一遍。它的教学和考试都更注重设计而不是知识,或者训练人肉算法解释器。手动跑几个页面替换算法,从页表里读地址,确实不能增加对OS的理解。

后半学期是些高级内容,文件系统,虚拟化,安全,密码学之类的,考试几乎不涉及其中的细节,核心考点还是同步互斥。

15-618: Parallel Computer Architecture and Programming (A)

我单挑了。

课程内容和清华的高性能计算导论差不多,主要内容都是并行编程的理论和工具,都有基本的OpenMP,MPI,CUDA。这门课还涉及一些无锁编程,异构调度,DSL之类的拓展知识,不过我基本也都接触过。我说过很多次了,我不愿意探索新东西,我选的课基本都是多少已经学过的。

陈天奇讲课没有什么突出之处,比另一个教授Nathan Beckmann还要乏味一些。可能是因为这和他的研究方向也没多大关系。秋季的PP由Todd Mowry教,他创造了PP这门课,他的要求会严格很多。

一共四个assignment和一个自选project。前两个assignment每年都一样,A1是写报告,做一些小实验和问答题。A2用CUDA写圆形渲染器,我觉得它的并行策略设计是最有意思的。A3和A4每年都换,但也是从一个不太大的题库中挑的,而且一定是同一个主题,A3用OpenMP,A4用MPI,共享内存和消息传递的差别确实会影响算法设计。这就比高性能计算导论强很多,它的几个作业基本就是把同一个算法翻译成各种版本。听说它后来改了不少,我看过新的页面,现在应该更有趣了。

我做的project是无锁二叉树和跳表,其实都是照着论文写,我感觉如果能找到靠谱的论文,写起来还是很简单的。报告终于可以放在公开仓库了:https://github.com/MashPlant/15618-Project,不过大概也不能公开代码。一般人只会做一个数据结构,我觉得只做一个含金量不是很够,就做了两个,也可以说是做对比。

期中和期末考试都是take home exam,期中还挺难的,我做了四五个小时,期末简单很多。不过这课的秋季版本都是闭卷考试,时间限制也很紧,所以春季确实轻松很多。

14-736 Distributed Systems (A)

我单挑了。

MSIN必修14-736 Distributed Systems,不能选15-640 Distributed Systems,我们这一届很少有人成功申请替换过,听说下一届的申请基本都成功了。

Patrick延续了14-760的稳定发挥,几乎每次作业都能延迟发布,关键是作业相比去年也几乎没有变化,这都能拖到底是干什么去了?实在要说可以理解的话,他教的课确实太多了,根本责任还是在限制我们选课的INI。

一共四个lab和一个自选project,都是可以组队的。lab 0确实是Patrick今年新造的,因此有一堆问题,我劝他还是别造了,没那个能力知道吧。它是用socket写一个没有任何意义的小游戏,目的是训练网络编程…只能说就挺无语的,和后面的lab也没有任何关系。lab 123都和往年一样,分别是RPC模拟框架,Raft,分布式文件系统。他的Raft是抄MIT的。分布式文件系统,并不是很分布式,直接不需要错误处理,假定机器都是可靠的,同步通信就可以,完全退化成了简单的业务代码。

lab 012只能选Go或Java,后面的lab 3和自选project可以任选语言,我就用Rust了。身边有同学反馈M1 Mac跑Java会有奇怪的问题,我也不懂为什么,只是记录一下给后人看。

project是从几个pre-approved的主题中选择,或者自己申请另外的主题。多数人选了消息队列,我做的是blockchain。

课几乎完全没上,什么Raft,Paxos,没听说过。

15-719 Advanced Cloud Computing (A)

我单挑了。哦本来就是单人的,那没事了。

虽然有不少人来问我,我自己其实全靠n+e指导。总结就引用他的吧:https://trinkle23897.github.io/posts/cmu-1st-year#15-719-advanced-cloud-computing

个人体验,难度排序为:P23 > P22 > P11 > P21 > P13 > P12 > P32 > P31 > P30。平均每个耗时一天左右,P3拉低了不少平均值。

学期当中我闲着没事干也做了10-605: ML with Large Datasets的作业,感觉ACC的Spark使用比它复杂太多了,所以我也不是很理解n+e的想法,感觉先学过605并不能让ACC变得简单。

Greg一直很关心学生的就业。Greg和Majd两位教授非常贴心,众所周知2022秋的就业市场对学生非常不利,他们群发了邮件,说你在ACC这门课上表现地很好,如果offer被撕了或者开始时间特别晚,邀请你下学期来帮助改进ACC这门课,从而不至于因为没有工作被迫离开美国。他们真的好温柔,我哭死。

14-602 INI Academic and Professional Development 2 (A)

和APD1类似,区别在于大家都知道讨论问题没什么意义了,其实从APD1后期开始就是这样,每次上课默契地开一个Google文档,直接在里面写“讨论”的内容。

实习

我一直以来的一个遗憾就是没有真正地在中国实习过。也许失去了一些交朋友的机会,但更重要的是,我没有机会亲眼看看中国的互联网公司到底是什么样的。那我只能把它往最坏的想了,这是我不愿意回国的理由之一,重要性大概排第三。

回想大学四年,可能只有没找实习称得上是失误,其他的遗憾,比如做不了研究,没有认识更多朋友,都是能力限制,再让我做一遍也是一样。直到大四下我才意识到有实习这个东西的存在,而且也没想到可以去互联网公司,我觉得像我这么热爱工作,它们应该会欢迎我的。最终就去了那个垃圾公司,浪费了最后半年。甚至可以说它直接降低了我对中国的评价,美国就不会有这种不正规的实习。 - 2022.05.17 朋友圈

我对很多人说过,我在清华四年,根本就不知道腾讯,字节这些公司,居然是招实习生的。首要责任当然在我自己,我没有收集信息的意识和能力,但是我还是想抱怨一下,我事实上就是没有听说过这种东西。当时我唯一的社交圈就是寝室,这里没有;微信群里确实有不少人转发实习广告,但都是和AI相关的研究岗位,我以为也只有这种公司招实习生;中介也只说要找暑研,即使我的目标就是申MS然后工作。

后面的一个学期我当了TA,参加了一些强制的TA Seminar,我觉得放在这里非常合适。

他多次提到为面试科技公司做准备。这里有很多本科TA,他也清楚这一点。这是清华一直没有给我的:一个明确的目标,明明大多数本科生最后都只能平庸地工作,为什么不早点告诉我,我也不至于没有正经的实习。清华试图证明自己的学生可以科研,社工,参军,运动,还就那个礼乐射御书数全面发展,但就是不说最后多数人都是要工作的。 - 节选自《2022.11.30》

不管之前这些事了。5.16-8.05,我在Databricks度过了非常充实和快乐的一段时间。你看,我就说了不是我的问题。但是也没什么可说的,每天的日记都是解决的问题的细节,而不是大家都能理解的情绪。细节我也完全不透露了,谁知道会不会有什么法律问题呢。工作体验很好是因为几乎不需要我设计,上手就能写,和我的一些同事比起来感觉非常幸运。

没做完的时候特别着急,有段时间大约是877,这完全是我自己选的,周末不加班也没别的事可做。做完之后剩了一个月没什么事做,体验稍微下降了一点。经常有人抱怨WLB不好,但我感觉大家也都挺喜欢这里的,抱怨真的就只是随口说一句。对于我来说没有什么WLB,我的life就是work,work就是life,在可以预计的未来这一点都不太可能改变。

这个世界上,似乎并没有我的位置。 //最后一句也许看起来莫名其妙,以后再看时,可好好琢磨琢磨那时的想法 - 节选自《2018.02.20》

其实只要有工作我就会很快乐,别琢磨了,都是闲出来的。

今天很多人都发了朋友圈纪念离职,我也不能免俗。憋了很久才找到九张图,其中一张是mentor的最后一条PR评论:刚才的饭局里我看到最后一个PR的测试挂了,没有VPN没法重启,留了条评论让别人帮我merge。他回复说没问题,Thanks for all of your awesome work! 饭桌上扫一眼没有任何感觉,自己一个人读完就哭了出来,我终于感觉到还是有人关心我的。最终朋友圈内容如下:
“我对许多同事都说了,这是我度过的最充实和快乐的暑假,因为我可以做自己感兴趣的事,而且你们是我遇到过的对我最友好的一群人。
不过我总觉得,这应该也不是太高的要求,为什么之前从没有满足过。我想世界上也许还是有我的位置,只是注定局限在这一方小小的电脑屏幕里。”
我总是要折衷一下的,纯粹的乐观并不符合我的人物形象。 - 节选自《2022.08.05》

琐事

没有太多有感触的事,简单记一下生活的概要吧。

Jan

翻看那时的日记,发现当时做梦的频率相当高,醒来后经常能回忆起相当生动的剧情,现在很少了。

开学之前特别无聊,外面还一直下雪。我一直在家玩英雄联盟,我知道这不是什么好游戏,我玩的很一般,也并没有多么喜欢玩,只是实在是没有别的办法打发时间,感觉其他游戏上手难度都太高了。有段时间过于无聊了,甚至想做compiler (15-611 Compiler Design),它的starter code是不公开的,但我找人要到了。但我看了之后感觉它几乎就是完整地实现C语言,重复自己已经做过好几次的事,再往上堆砌更多的工作量,真的不是很有意思。而且后来知道它之前都是秋季开的,但是今年改成春季开,我并没有机会上,毕竟还是不敢同一个学期上OS和compiler。

然后是这个。

哪怕记住这些过去,还是会一遍遍犯错,并且未来或过去看到这时的记录,一定是完全不理解。一个人不同时刻的心理状况尚且不能互相理解,更何况不同人。这些话说的都非常保守,敏感,因为根本上我不相信我可以拥有陪伴,这是从来都没有过的东西。 - 节选自《2022.01.13》

Feb

大半个月在做OS。

我尝试了一次滑雪,然后决定再也不滑了。我做任何事情都一定要做好,不可能从做不好的事情中找到任何乐趣,尤其做不好还会让我感觉生命受到威胁。也许实际上是很安全的,但我的感受也是真实的。

然后是这个。

不出生是最好的,一切痛苦都不必承受了,但既然已经出生,只剩次优的选择,艰难地活下去。

Mar

OS期中考试前,和n+e和他的队友一起复习。

走在路上有种沧海桑田的感觉,上次和他吃饭是2019年夏天在观畴园,那时我问他“我知道很多课讲的内容都没有意义,比如网原,我应该把心思放在科研上,但我就是忍不住卷成绩,我该怎么办?”,他可能是叫我不要太在乎成绩,记不清了,提问只是因为我害怕,本来我也不可能采纳。在这之前以及之后的很多路,我都是跟着他在走,最终能在异国他乡见面也算是缘分吧。 - 节选自《2022.03.02》

春假很多人出去玩,我也想参与进去。根据我的经验,我在群里问有没有人一起,结果几乎一定是没有回应。我会觉得这是自取其辱,所以很不愿意发。尽管我这样想,我也还是发了,但结果也确实是没人理我。无奈只能写OS P4,四天写完了,剩下的时间又没事干了。

p4大概写了四天,实验指导这句话说的真好。
“这也是我眼中美丽的风景,不过我也总觉得要是能有人和我一起欣赏就更好了。” - 2022.03.07 朋友圈

之后我偶然想到研究一下rCore,这是清华的一个项目,是用Rust写的OS,有一个相当完善的版本https://github.com/rcore-os/rCore和一些教学用的版本,这两者其实没有太大的关系。教学版本最初只有RISC-V,我碰巧看到@equation314在做ARM的版本,我就想做个x86-64的版本。CMU的OS用的是x86,我也是想学习一下x86-64,它的启动复杂很多但我不用管这部分,页表复杂一点,系统调用和中断复杂一点。花了一周差不多写完了,结果在https://github.com/rcore-os/rCore-Tutorial-v3-x86_64,但是并没有太大兴趣继续完善,使之可以用于教学。

我对Rust有不小的意见。一是CMU的OS的code style里有一个非常强的要求:必须处理所有内存申请失败,现实世界的OS应该也是类似的,但rCore简单很多,并没有这种要求。这对于除了C之外的语言都是非常困难的,它们几乎只能抛异常或者panic,想象一下每一个std::vector::push_back或者Vec::push都必须检查是否成功,如果失败需要回滚之前的操作,这样写出来的代码和C语言也差不多了。二是,我对一些人说过,我喜欢Rust除了安全性之外其他所有元素,如果能把借用检查完全去掉,这就是我心中最完美的语言了。因为我事实上就是比编译器聪明,能更好地管理内存。有些地方真的特别适合用链表,手动管理内存那种,你非要来一个Vec<Arc<Mutex<...>>>,我看着就难受。

去Niagara瀑布玩了一趟,有人能带我出去玩真的很难得。冬天的风景不是很好,有些区域不让进,而且最重要的是,实在是太冷了,我又穿的太少了。我们准备过桥到一个岛上,这时雪突然变大,天地都灰暗了。很遗憾在这种世界奇观面前,生理上的痛苦完全占据了思维。

这是当地的Theodore Roosevelt Inaugural National Historic Site外的一个石柱,上面刻着Time Takes All But Memories,我喜欢这句话,但是并不完全认同。记忆当然非常珍贵,但人脑的记忆是脆弱的,很容易就会被时间抹去。任何其他形式的记录,不管是纸笔还是电子的,都比它更可靠,所以我要写日记。

Apr

又没事干了,开始提前做作业,做了10605,15645 (DB),10714 (Deep Learning Systems),这是下学期准备选的三门课,然而最终没有选上DB。其余时间在挂着电视剧当背景音玩英雄联盟。作业都能提前做,上课的意义是什么呢?当然没有意义,谁来读MS不是为了混个OPT呢。哦对了,其他人还可以交朋友,这对我来说可太困难了。

May

复习了很多天,直到5.06 OS期末考试。复习是很无聊的,考完之后就更无聊了。我经常在INI闲逛,遇到人就问一句“你在干什么”,换位思考一下,这句话是挺有侵犯性的,除非正在做的事情很乐意分享,否则大概率不会很想回答。但是我实在不知道还有什么别的话可以说,而且别人回答之后我通常也接不上。

好不容易熬到5.14,和zjz一起去了旧金山,实习期间我们合租。我对他说了我的部分故事,“有人问我,我就会讲,但是无人来”,我可能愿意对每个人说,但是不能对所有人说。

我自己最近也经常回忆,就像是老年人回看自己的一生一样,初中高中我大概就很害怕和陌生人说话,但对同学还算是热情的,很多老师评价我是“哗众取宠”,真是很贴切的词。但这恐怕也只是因为有个教室把我们每天框在一起,离开这个环境以后就变成彻底的孤独了。有些人可以安于孤独,但我不能,我是个内心世界贫瘠的人,所以一直挣扎着试图改变,到目前为止这带来的都只是痛苦。 - 节选自《2022.05.04》

Aug

实习结束之后和zjz一起去西雅图找czj玩了一段时间。这里发生了很多我认为值得记录,并且确实记下来了的对话,但是我审查了一遍之后觉得没有适合公开的内容。

实习开始之后就不戴口罩了,因为周围的人都不戴,戴着也确实有那么一丁点的不舒服。从2020年初武汉封城结束后第一次戴口罩走出家门,到现在终于摘下了口罩。整个实习期间都没有感染,直到在西雅图,2022.08.20才终于第一次阳了。我的评价是普通感冒,不知道发烧没有,因为没测,嗓子疼也就是普通感冒的疼,四五天就好了。2021-03-07里提到,我在北京冬天有两次特别重的感冒,都是持续20天的级别,与之相比这次感染真是小儿科。之后的一学期在匹兹堡每天挤公交,甚至没有过一次感冒症状。