研一期末的时候我在空间发了一条很丧的说说:

渡劫期发现钱包里还留着在微软实习时候的饭卡,当时结束实习的时候,同事小哥哥说别退了万一要回来呢。后来保研确认结束后没几个小时HR姐姐来了电话,只能非常遗憾地错过了这个工作机会。有时候会想如果我冒险放弃保研去那里,现在会是什么样子呢,至少不会遇到现在这样的破事。不管怎样我会好好努力,以后去一个不会有这种事情的地方。

QQ没落也有好处吧,至少在空间里面很少有研究生学校的人员,发点牢骚也没有太大的影响。事情还是要从我原定回家的前两天晚上说起。

点燃炸药桶

那天我已经快要睡着了,忽然导师打电话问我有没有在实验室的电脑上搭建VPN服务,然后让我以后不要再在实验室电脑上使用VPN。这个时候我还是不知道发生了什么,我上网没用VPN,难道是定向垃圾流量太多被检测出翻墙?现在管理这么严格了么?

我以为差不多了,然后接到了第二个电话,导师问我另外一位同学A的电脑是什么情况,我如实回答了说我之前帮他配置过上网。然后导师说貌似网络安全出了一些问题,让我和实验室另外一位老师B联系,我发现事情就不那么简单了。

那个时候快到12点了,老师B还在和信息办沟通,反复地和我以及同学A沟通,询问了我给他配置了什么东西,我使用的中继服务器在哪里,我知不知道同学A用的是公网IP。弄到了12点多,我也得到了一些信息,但是还是不知道完全的事件内容。

第二天本来是收拾东西回家的,但是有人要来调查。老师B多次强调了事情的严重性,据说这个事情是“非常上面”下来的,层层下降最终到我这里,说事情可大可小,可以大到让你人间蒸发。来调查的老师很多,拷贝了同学A的电脑硬盘,调查的老师安慰我和同学A说没事,调侃说计算机学生出现这种事情不太应该。

那天反正情绪极差,心态有点崩,很感谢师兄们和同学们来安慰我,甚至担心我想不开,还第二天来寝室确认我没有什么事情,其实我“睡眠恢复心情”的能力还是不错的。后来导师也打电话和我说了一下基本的情况,说应该是没有什么事情了。

事件分析

事情发生以后我也没有机会接触到同学A的电脑,所以还是有很多未知的事情,根据我得到的信息,事情经过应该是是这样的:

  1. 实验室当初给每一台电脑配置了公网IP(可以说是稀缺资源了),当初我们作为新生进来,师兄建议大家使用内网IP,我也是知道NAT比较安全,也就换成了内网IP,当然不是“要求”,同学A也没有注意;
  2. 因为项目合作的文档在Google Doc上,然而访问Google Doc又不是那么稳定,所以我给同学A配置了文明上网,当然我是没检查他有没有使用公网IP,根本没往这方面想;
  3. 不知道为什么,同学A的电脑变成了网上一个可以文明上网的入口。这个是怎么做到的我还真不知道,我配置的是本地监听127.0.0.1:1080,外部是怎么把流量送进来的?

这件事情其实还是很可怕的,它不是闯红灯,要罚多少钱,不是打了人,要坐多少天,它是一件四维空间的事情,我和同学A会接受什么样的处理是不确定的,取决于具体的看法。现在的说法是应该没有什么问题,希望是确定没有什么大问题吧。

这件事情给我的启示就是要好好注意网络安全吧,虽然知道有这么一回事,但是自己做的时候就懒得去考虑这些问题。有些安全问题虽然不涉及到具体的损失,但是性质可能更加让人有的受,也就是说说中说的那样。

这件事情我想到的形容词就是“诡异”,研一上期中的时候我们被安排到了一个项目里,老师催的比较紧,加上课程作业量大,连续很久都没有怎么过周末。最后快放假了,又是因为为了访问项目文档,帮同学配置了文明上网,然后搞了个大新闻。

讲点开心的

研一上虽然是一地鸡毛,但是还算是完成我的一个目标,就是做了一个比较完整的开源项目gorse。一开始是实验室计划开发一个推荐系统引擎,然而组织了几位同学(包括我)开发。随着项目的推进,我感觉和我想象中的推荐系统引擎不太一样,于是心想:为什么我不自己开发一个推荐系统引擎呢?于是我从暑假开始利用空闲时间开发。后来实验室觉得我们的开发人员多又缓慢,就把开发组解散了只留一位同学,我当然是被解散的。虽然我很想参与推荐系统引擎开发,但是这其实这并不是坏事,这样我就可以开发自己的推荐系统引擎而不串台了。

现在项目的star数目是300+,虽然说star多没有什么价值,但是对于我这种菜鸟来说是莫大的鼓励。项目里面实现算法反而是最简单的,更难的地方在于怎么设计API,免不了反复重构,为了不让项目失控,单元测试写到吐。另外也免不了宣传工作,宣传工作还是很困难的,我尝试过多种宣传途径,但是基本都是“有心栽花花不开,无心插柳柳成荫”。

目前我只是完成了算法部分,还是有很多工作可以继续做下去,例如推荐系统服务器、命令行实验工具、流式训练等等,不过我还是要暂时不做新功能了,还是想着怎么毕业比较好。展望一下研一下应该完成什么目标呢?那就今年下半年,由我一作的.……两开花?