如何提升在机房的代码体验

日期:
标签: oi

背景

外设

强烈推荐购买一个移动硬盘,能上移动固态硬盘更好。绝对不要幻想机房电脑的存储有多好。

加密

VeraCrypt 可以用来用于加密数据,这个非常重要。机房电脑终究是公共的,如果你把一些重要文件或隐私文件存到了非还原盘,那就存在被他人读取的可能。这些文件包括但不限于:

VeraCrypt 的使用十分简单,并且全平台通用。你可以选择创建一个存在文件中的加密卷,因为你不太可能对整个硬盘加密。记得设一个强密码。比较推荐每隔一个星期就把整个加密硬盘备份到你的移动硬盘上,或者直接在移动硬盘上工作。USB2.0 传输速度最多就 60MB/s,备份一个 8GB 的加密卷就需要两分多钟。如果是 USB3.0 的话会快一些,但是也受限于机房的硬盘和你的移动硬盘的读写速度。

虚拟机

系统

我们学校电脑装了 vmware 虚拟机,本来是用于装 NOI Linux 的。如果你的机房电脑比较好,可以考虑装 Windows 虚拟机,不过 Windows 虚拟机至少都要 40GB 硬盘,非常重,备份也比较麻烦,不推荐。可以使用一些更轻量的 Linux 系统(按照字典序排序):

Linux 的发行版多如牛毛,除此之外还有 Fedora, OpenSUSE,Deepin 等等。建议是在虚拟机上多试一试,再说了,你在机房也就写写代码,有个好用的编辑器就够用了,大不了还可以自己编译一个。

你可能需要在虚拟机安装的软件:

除了 vscode / vscodium 和 v2ray 可能需要自己下载,大部分发行版都提供了这些软件包,没必要纠结于发行版的选择。

加密

虚拟机最好也经过加密,可以直接放到 VeraCrypt 的加密硬盘中,但感觉性能不行,也可以用 Linux 的 dm_crypt 和 cryptsetup。有些发行版安装时就提供了加密选项,非常方便。

备份

Linux 虚拟机的话一般 20GB 左右就够了,算法竞赛这么多年写的代码也而也没多少,占不了多大硬盘。也是推荐至少每周备份一次。

优势

首先,使用虚拟机可以轻松的备份,移动。如果需要换座位的话可以直接把虚拟机拷贝下来。其次,虚拟机可以放到非还原盘,每次走人时把虚拟机 hibernate,回来时可以直接恢复工作状态。但是注意,恢复工作状态后要重新同步时间。

远程桌面

虽然我不这样干,但还是提一嘴。可以再家里架设一个服务器,内网穿透一下,或者组个 VPN,就可以远程桌面,但使用体验和网络质量挂钩,而且一定要注意安全。

云盘

比较小的文件,比如老师下发的课件,一些重要的代码可以用云盘备份。国内的服务没啥好的,就坚果云还行,支持 WebDAV。国外的速度有不太好,免费的有 Onedrive,如果能翻墙可以用 Dropbox 和 Google Drive。还有一些对象存储有免费额度,如 Cloudflare R2,BackBlaze B2,等。如果你愿意,你还可以把文件上传到 ipfs 上,只不过上传了就不太可能删掉了。有钱的可以买云厂商的存储服务,但有点暴殄天物。

当然第三方服务从某种意义上来说都是公开给别人的(ipfs 是完全公开的),所以一定要加密。用云厂商的存储隐私性可能会好一点,毕竟是企业产品。不过最好还是能自己架设一个 NAS。

rclone 是比较通用的网盘同步工具,支持存储服务极多。rclone 可以把配置文件进行加密,可以(比较)放心地把网盘的 api-token 配置文件存到机房。