主要是对 202202 读的 Paper 的总结。
涉及的主要主题是 Infomation Retrieval 中的 Dense Retrieval.
Reference 是 2021 Spring Hung-yi Lee 的机器学习的 GAN 部分。
大概记录的是 MATLAB 的练习之路。反正《数值分析》课程也得用。
大概记录的是 MATLAB 的入门之路。反正《数值分析》课程也得用。
由于我们每个人对 JavaScript 的理解不同,编写代码的习惯也不同,所以在合作编写项目时,难免会出现代码风格的不同。这种差异性导致了团队协作的效率低下,也影响了项目的健壮性和可维护性。所以,我们需要对代码风格进行规范。这种规范不仅可以使代码风格保持统一,并且可以在代码运行之前就检测出一些错误和 Bug,提高协作开发效率。
lint 是最著名的 C 语言工具之一,作用是静态代码分析,它被用于检查 C 程序中潜在的错误,包括(但不限于)可疑的类型组合、未使用的变量、不可达的代码以及不可移植的代码等等。
而 ESLint 则是 2013 年推出的 JavaScript 的 lint 工具。命名前缀的来源是由于 JavaScript 也被称为 ECMAScript(ES)。
ESLint 是在 ECMAScript/JavaScript 代码中识别和报告模式匹配的工具,它的目标是保证代码的一致性和避免错误。
ESLint 可以在运行代码前就发现一些语法错误和潜在的 Bug,极大地减轻测试人员的压力,减少软件项目的除错成本。同时,ESLint 允许开发者通过 rules 定义自己的代码规范,所以非常适合用于制定团队代码规范。
事实上是挑战杯要搭一个文书搜索网站…暂时需要用 BM25 算法顶一下。
Elasticsearch 的默认相似度算法就是 BM25,嘛嘛,大胜利。
搜索的对象是…数目约在 $10^8$ 规模左右的文档…
嘛嘛,反正都是大调库。缝合就完事了。
// WIP: 应该不会咕
虽然 Markdown 很好用,但是生成的 pdf 文档看起来就是没有范不够正式。此外,使用 LaTeX 也是我们之后写论文的必备技能。
本教程主要涉及已对 Markdown 较为熟识之后的迁移学习。
软件开发最大的麻烦事之一,就是环境配置。用户计算机的环境不同,可能导致软件在开发环境中能运行,而到了生产环境无法运行的情况。
用户必须保证两件事:操作系统的设置,各种库和组件的安装。只有它们都正确,软件才能运行。举例来说,安装一个 Python 应用,计算机必须有 Python 引擎,还必须有各种依赖,可能还要配置环境变量。
环境配置如此麻烦,换一台机器,就要重来一次,旷日费时。很多人想到,能不能从根本上解决问题,软件可以带环境安装?也就是说,安装的时候,把原始环境一模一样地复制过来。
这个问题的一种解决方式是使用虚拟机,比如我们常用的 WSL,就是在 Windows 系统中运行 Linux 虚拟系统的例子。但是,这样做的资源占用多,要重新配置一个全新操作系统的冗余步骤多,启动起来也十分缓慢。于是,Linux 发展出了另一种虚拟化技术:虚拟容器。
Linux 容器不是模拟一个完整的操作系统,而是对进程进行隔离。或者说,在正常进程的外面套了一个保护层。对于容器里面的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层系统的隔离。
Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。
Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。
总体来说,Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。
视频链接:https://www.youtube.om/watch?v=v68zYyaEmEA
The game Wordle has gone pretty viral in the last month or two, and never one to overlook an opportunity for a math lesson, it occurs to me that this game makes for a very good central example in a lesson about information theory, and in particular a topic known as entropy.
You see like a lot of people I got kind of sucked into the puzzle, and like a lot of programmers I also got sucked into trying to write an algorithm that would play the game as optimally as it could.
VSCode 是一款轻量级的代码编辑器,可以通过安装各种各样不同扩展的方式来实现开发者所需要的功能。
区分:代码编辑器(Editor)与集成开发环境(IDE, Integrated Development Environment)
代码编辑器事实上我们可以看成是一个记事本(没错,如果是 Windows 用户,就是你按下 Win+R 输入 notepad 回车之后的那个记事本),其最基本的功能是文档编辑。不过之所以将其称为是代码编辑器,是因为它虽然继承自一般的文档编辑器,又具备了一些一般的文档编辑器所不具备的功能。具体来说,例如自动语法高亮,自动补全,甚至是自动代码重构等等。
集成开发环境(IDE)是一种用于构建应用程序的软件,可将常用的开发人员工具合并到单个图形用户界面(GUI)中。具体来说,我们只需要简单的点击按钮,可能就可以完成程序的编译、链接、运行、调试等等工作。而这些工作在最初都是需要人手工在命令行中完成的。我们在《程序设计基础》课程中最初使用的 Dev-C++ 便是一个集成开发环境。
我们今天要介绍的 VSCode 是一款轻量级的代码编辑器。如果没有各种扩展插件的支持的话,可能我们只能把它称作是大号的 Notepad++,而正是因为社区中各种各样的扩展,VSCode 才得以展现其强大。
本文我们介绍 VSCode 的基本配置,重点在于介绍一些未来可能会用到的扩展插件。按照本文的流程完成后,你应该等效地完成了足以应对《面向对象程序设计基础》课程中的代码的集成开发环境的配置。此外,我们还会介绍一些基本的调试方法,而这恰恰是 VSCode 比 Dev-C++ 在现阶段不知道高到哪里去的地方。
事实上,在未来,我们可以用 VSCode 配置 Python 开发环境,配置软件工程课程中所需要的框架的开发环境,而这些都是通过“扩展”(Extension)来实现的。