⚓{0x00} 工欲善其事,必先利其器

⚓{0x00} 工欲善其事,必先利其器

在一系列的努力操作下,我终于能读到心心念的计算机图形学了。但不得不说,我找导师的时间确实太晚了,应该在通知拟录取的时候就开始找老师了(其实最好就是在你准备考研的时候,去联系心仪的导师)。不过怎么说,现在算是稳定下来了。

刚到实验室,研究所给了台还算一般的工作站,双路E5-2670,Quadro M5000,64GG DDR4。普通的STAT固态硬盘,这就有点拉了,以后遇到IO瓶颈再升级。总的来说炼点小丹不在话下。

就我的一向习惯,在拿到一台机子的时候,首先就是全盘格式化重装一边Windows 10,然后才开始配置环境。主要是避免一些前任留下的奇怪问题。下面主要分三个部分讲,系统环境、编程环境、科研工具。这篇文章也算是一个记录,用于统一以后不同电脑的环境,打造家的味道。

系统环境

首先就是登录巨硬的账号,主要是可以自动同步一些Windows 10的设置。接下来就是进入正题了。

墙🔨

作为新时代的青年,总得看看更广阔的世界,是吧(逃

GitHub - Fndroid/clash_for_windows_pkg: A Windows/macOS GUI based on Clash
A Windows/macOS GUI based on Clash. Contribute to Fndroid/clash_for_windows_pkg development by creating an account on GitHub.

这里使用 Clash-Windows 作为自己搭好的梯子的前端,选用它有两点原因:界面好看、支持多种不同协议的代理。至于如何搭建梯子,在这就不赘诉了。

WSL2

这里因为安装的是 Windows 10 最新的稳定版本,所以可以直接根据下面的流程安装 WSL2

  1. 控制面板—>程序—>查看方式:大图标(在界面的右上角)—>程序与功能—>启用或关闭 Windows 功能—> 勾选 Hyper-V适用于 Linux 的 Windows 子系统 —>确定,然后重启电脑
  2. 这里使用 yuk7/ArchWSL 作为我们的 wsl 系统。首先在仓库的 Release 中下载 Arch.zip,然后解压到一个具有权限的文件夹中,这里最好是解压到速度最快的硬盘(毕竟是系统、吃4K随机存储的速度),这里假设路径是 path/to/arch
  3. 然后在path/to/arch 中运行 Arch.exe ,这里建议安装好后添加一个新用户,然后运行在此目录下打开 cmd 运行命令 Arch.exe config --default-user username,把 username 换成刚刚创建的用户名。最后在给他root的权限,以方便安装 package
  4. 最后运行 wsl --updatewsl --set-default-version 2wsl --set-version Arch 2 来将 Arch Linux 升级成 wsl2

编程相关

VS Code

作为宇宙扩展性第一的编辑器,把它弄成一个好用的IDE通常需要自己慢慢调插件。我这里安装了如下插件:

  1. One Dark Pro (对眼睛最好的主题)
  2. GitLens(团队协作扯皮必备,点一下blame,直接找出代码中的💩是谁拉的,大概率是自己拉的)
  3. C/C++, CMake, CMake Tools, C++ TestMate(写C++必备)
  4. LaTeX Workshop (搞学术必备)
  5. TabOut (按 Tab 可以跳出括号,非常方便)
  6. Python, Pylance (用于Python开发,后者是更强大的language-server)
  7. Remote-SSH (用于远程SSH开发)
  8. WakaTime (记录写代码的时间)
  9. Gitmoji (方便在commit的时候加入emoji)
  10. Live Share (远程协助工具, 可以结对编程
  11. Path Intellisense (方便路径补全)
  12. Better Comments (高亮注释,方便一眼看出注释的类型)

此外,还为系统安装 Hasklig 字体,用于渲染连字(Ligatures),让代码看起来更有味道,然后在VS Code的 "editor.fontFamily"设置前面加上 Hasklig

GitHub - i-tu/Hasklig: Hasklig - a code font with monospaced ligatures
Hasklig - a code font with monospaced ligatures. Contribute to i-tu/Hasklig development by creating an account on GitHub.
开启连字渲染
未开启连字渲染

C/C++ 环境

在 Windows 上 Visual Studio 算是宇宙第一 IDE 了,但这里还是采用了 VS Code 进行编码,CMake 来作为构建工具,并以巨硬提供的 Visual Studio 2019 生成工具 来进行我们的开发,有时还会使用 Clang 作为前端。这样的好处是,我可以很清晰地控制着整个项目,同时能实现跨平台的编译。缺点也很明显,想要开发体验很好,得做很多探索性的工作。

GitHub - microsoft/vcpkg: C++ Library Manager for Windows, Linux, and MacOS
C++ Library Manager for Windows, Linux, and MacOS. Contribute to microsoft/vcpkg development by creating an account on GitHub.

这里还需要强烈安利的一个东西 vcpkg ,配合上 CMake 能大大地减少使用第三方库的时间成本。而且现在还由一个新的功能,manifest mode ,有点像前端开发中的 npm + packages.json 的开发感觉。这里需要配置为 CMake Tool 这个插件配置一下,注意一下这里的路径是你安装 vcpkg 的路径。

{
    "cmake.configureArgs": [
        "-DCMAKE_TOOLCHAIN_FILE=path/to/vcpkg/scripts/buildsystems/vcpkg.cmake"
    ]
}

当启用 manifest mode 后,在项目文件夹下需要有一个 vcpkg.json 类似于前端中的 packages.json 用 CMake 进行 configure 后就会根据这个文件下载、编译依赖。而且对 CI\CD 非常友好。

炼丹环境

这里以N卡举例,A卡请自行查看官方文档。首先下载并安装 N卡的 cuda 驱动 然后下载Python + Pytorch (注意可以点链接进入官网,然后通过图像界面来取得安装命令,下面是我的根据cuda版本得出的安装命令)

pip3 install torch==1.9.1+cu111 torchvision==0.10.1+cu111 torchaudio===0.9.1 -f https://download.pytorch.org/whl/torch_stable.html

学术工具

要写出好看的论文,有四要素:研究能力、文字功底、排版能力、绘图能力。前两项主要是个人的东西,而后两个我们可以用工具来赋能。

LaTeX

作为强大的排版工具,LaTeX一直是作为优秀科研工作者的首选,但是因为其非常陡峭的学习路径,让人望而却步。真希望有一天我们只用关心内容,排版的事情交给专业的人来做就好了(MarkDown其实就是想做这个事情)。

这里有两个选项来安装LaTeX,分为 Windows 环境和 Linux 环境,其实这里推荐使用后一种,主要是可以利用 Linux 的包管理系统为它更新,但缺点就是需要安装中文字体。

pacman -S texlive-most texlive-lang texlive-bibtexextra biber

这里分别安装了,LaTeX的核心部分、语言扩展、引用扩展

之后用 VS Code 以 wsl 的形式打开你写论文的文件夹,然后添加如下设置

code /path/to/paper
.vscode/settings.json
{
    "latex-workshop.latex.outDir": "%DIR%/out",
    "latex-workshop.latex.tools": [
        {
            "name": "latexmk",
            "command": "latexmk",
            "args": [
                "-xelatex",
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "-outdir=%OUTDIR%",
                "%DOC%"
            ],
            "env": {}
        },
        {
            "name": "lualatexmk",
            "command": "latexmk",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "-lualatex",
                "-outdir=%OUTDIR%",
                "%DOC%"
            ],
            "env": {}
        },
        {
            "name": "latexmk_rconly",
            "command": "latexmk",
            "args": [
                "%DOC%"
            ],
            "env": {}
        },
        {
            "name": "pdflatex",
            "command": "pdflatex",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "%DOC%"
            ],
            "env": {}
        },
        {
            "name": "bibtex",
            "command": "bibtex",
            "args": [
                "%DOCFILE%"
            ],
            "env": {}
        },
        {
            "name": "rnw2tex",
            "command": "Rscript",
            "args": [
                "-e",
                "knitr::opts_knit$set(concordance = TRUE); knitr::knit('%DOCFILE_EXT%')"
            ],
            "env": {}
        }
    ]
}

此后,你编译的 pdf 文件位于 out 文件夹中。

文献管理 Zotero

Zotero | Your personal research assistant
Zotero is a free, easy-to-use tool to help you collect, organize, cite, and share research.

Zoter 是一个免费的文献管理工具,同时支持一些不错的插件,下面是必安装的插件

  1. zotero-scihub 用于自动为新增的文献下载相应的pdf
  2. ZotFile 将附件变为链接附件,用来配合 OneDrive 达到附件同步效果
  3. Better BibTeX for Zotero 用于生成信息更加丰富的 bib 文件,配合 LaTeX 使用

在安装完上述插件后,需要对 Zotero 进行一些设置

  1. 编辑—>首选项—>同步,在这里登录你的zotero账号,并 关掉 同步文件中的附件 这一选项
  2. 编辑—>首选项—>高级—>文件和文件夹—>链接附件的根目录,这里选择 OneDrive 中自行新建的一个Zotero文件夹
  3. 工具—>ZotFile Preference... —> General Settings —> Location of Files —> Custom Location,这里选择你 OneDrive 中的 Zotero 文件夹
  4. 工具—>ZotFile Preference... —> Tablet Settings —> Location of Files on Tablet —> Base Folder,这里在 Onedrive 中的 Zotero 下面新建一个 Zotero_tablet 文件夹,并选择这个文件夹
  5. 编辑—>首选项—>SciHub—>关闭自动下载,因为可能重复下载

到此就完成了同步的设置问题,在不同电脑上用同一种 Zotero 配置可以达到文件的一致性。

图书管理 Calibre

calibre - E-book management
calibre: The one stop solution for all your e-book needs. Comprehensive e-book software.

Calibre 是一个很好用的图书管理工具,我主要用来分类一些常用的书籍。同样的,为了跨设备同步数据,我们还是在 OneDrive 中创建一个文件夹 books 用作 Calibre 的存储位置。只需在安装过程中,选择 books 作为你的书籍数据来源即可。

Calibre 的数据文件夹

OneNote

这个就不用多说了,配合 Surface 能够很好的记录、管理自己的笔记、想法。

结语

打造一把趁手的武器,去练一身屠龙之技,( 龙早就被人屠完了,笑

展示评论