Rust从入门到放弃
这篇博客我将详细介绍 Rust 这门语言。从创建本博客至此刻大更新(2024-5),我的 Rust 开发经验已是两年有余了——我认为它是互联网厂商泛工程开发中最合适的语言。根据我的体验,它至少拥有以下优点:
好用的语言特性。可提高安全性的强语言类型、提高开发效率的自动类型推导、成熟的流操作等等。
舒适的开发环境。VSCode+RA,rust-fmt 和 rust-clippy 等工具让代码开发成为一种享受。
良好的异步引擎。不用基于麻烦的回调或 Webflux,像同步代码一样写异步!
高效。据传 Rust 和 C 的代码速度比是 1.07:1。这个特性让 Rust 能用在量化交易系统和链上系统。
安全。这是 Rust 被吹得最多的一点,诸如“内存绝对安全“、”只要过编译就罕有 bug”。我对这个特性的认知比较保守:至少,Rust 拥有一个强大的编译器,借用检查、生命周期等机制能有效降低内存泄漏的可能性。
优秀的包管理系统和良好的生态。Cargo 不能说是最强的包管理系统,但肯定是好用者之一。
Rust 的缺点不多,体感最强烈的是编译速度太慢。一般我敲入编译或测试的命令时就会去茶水间 ...
横店游记
2021.09.19−09.202021.09.19-09.202021.09.19−09.20 的中秋佳节,和励颖去横店玩了一趟。
本来计划去杭州周边(如安吉)漂流,但是体验好的漂流都坐落在偏僻的农村,来回交通不方便,而且除了漂流也没别的活动。在美团搜到了横店的梦幻谷水世界,加之影视城周边还有很多宫殿可以游玩,遂敲定了行程。
我们在景点的选择和票务的购买研究了很久,最后买了 梦幻谷+三个主题景点 的两日套票,并规划了具体的游览时间。景点联票 410×2410 \times 2410×2,交通费 350350350,住宿一晚 200200200,总消费 1.5k1.5k1.5k。
明清宫苑
杭州到义乌的高铁只要半小时,最麻烦的是从义乌去横店,直接打车要 140140140 左右。我之前规划了一个高性价比的公交+打车方案,但出了火车站烈日炎炎,完全走不动路。还好励颖机智,花了 60−60-60− 拼到顺风车,省钱省力。
我们下榻的梦意酒店位于梦幻谷和秦王宫之间,距离明清宫苑较远。中午稍事休息后打车前往。
明清宫苑仿故宫而建,是中国大部分宫廷剧的拍摄地。由于是 1:11:11:1 还原, ...
从零开始 ICPC
今天有一个学弟来咨询我如何从零开始学 C++ 和 ACM,我被他的坚决感动到。
圈内的大佬要不在疯狂训练,要不退役后去忙各自的科研和工作,很少有人会去总结一路以来的学习经历。
我以前保存了一个整理的相对全的 OI 知识图,就借此机会根据自己的理解标上了难度和注释,给从零开始学 ACM 的同学参考。我把难度分为了 1,2,31,2,31,2,3 三层(未标的要不不算知识点,要不是太偏的知识点)。
熟练应用难度1,leetcode 周赛题应该能乱杀了。
熟练应用难度1和2,差不多能和队友混个 acm 金牌了。
熟练应用难度3,应该能单挑拿 acm 金/组队出线 WF 了。
学完 ACM 需要的 C++ 很简单,学完图上的知识点也不难,难的是如何运用自如并保持火热的的手感。
希望每一个有梦想的人都能有前进的方向。
2021 数智马拉松大赛
从学长那儿听说了 数智马拉松 2021。我以前只打算法类比赛,就想以这个作为切入口,体验一下大数据 & AI 方向的比赛。加之官网上标的奖金比较高,我就去报名参加啦。
数智马拉松由每日互动和杭州市政府举办,规格很高,服务也很到位。要是宣传做得再大一些就好啦~
海选 & 组队
数智马拉松 2021 的海选赛时间 8.1−8.308.1-8.308.1−8.30。我在八月中旬打听到比赛,加了群但一直没时间做海选题。到 8.308.308.30 上午 10:3010:3010:30 的时候猛然想起,打开官网一看只剩 1.51.51.5 小时了……于是迅速下数据准备 rush 一波……
海选赛提供了一段高速上若干个检测点的信息(该点附近各条道路的通车量和通车速度),最后让你预测在某个时刻通过这段高速要花的时间。我本打算随便训个 sklearn 模型,但是提取数据了后发现模型不是那么显然,而且已经没时间构造特征了。最后我分别统计了历史时期正反方向通过这段高速的平均时间,直接用这两个值进行预测。
结束前 10min10min10min 才搞完,惊出我一身冷汗。提交时还遇到了一些小插 ...
Hexo-Butterfly 主题配置
前言
2020 年 6 月,我入坑 Hexo + Github 的懒人模式。Hexo 主张用 markdown 写博文,借助强大的 Theme 库来一件配置主题;而 Github 能提供服务器的挂载(虽然国内访问会不稳定)。我当时选择的主题是 Hiker。
随着时间的推移,我不再满足于 Hiker 的风格和简单功能,于是决定从头开始配置 Hexo,并做一些记录。
搭建 Hexo
首先安装 Node.js(它会附带安装 npm 包管理器)。
根据 hexo 官网首页 的命令在本地创建 blog 文件夹。
1234npm install hexo-cli -ghexo init blogcd blognpm install
在 shell 里输入 hexo server 命令后,就能在 localhost:4040 展示网页效果(它还会动态检测你的本地变更并动态更新)。如果打开网页后出现以下报错:
1extends includes/layout.pug block content #recent-posts.recent-posts include includes/recent-p ...
Java 综述
在华为云工作时,发现 Java 语言是一个不可或缺的技能,遂进行学习和整理。
本文总结自翁恺老师的课程《Java 应用技术》以及廖雪峰的 Java 教程,文字和图片侵删。
Introduction
Java 由 SUN 公司 James Gosling 首创,原名 Oak,最初是针对嵌入式引用。随着互联网的崛起,SUN 公司改造了 Oak,并在 1995 年以 Java 的名称发布。SUN 公司后被 Oracle 收购。
Java是将代码编译成一种“字节码”(类似于抽象的CPU指令),并针对不同平台编写虚拟机,负责加载字节码并执行。对于 java 开发者来说,就实现了“一次编写,到处运行”的效果。源文件 *.java 经过编译得到了字节码文件 *.class 后,就可以在虚拟机上运行。javac 就是编译命令,而 java 是执行命令。
Basic Grammar
Java 总体分为基本类型和引用类型。引用类型有一种取值叫做 null。
Java 中 使用 == 会判段是否指向同一个内存地址,A.equals(B) 才是判断内容是否逻辑上相等。
字符(Character)和字符串( ...
如何优雅地使用 Git
Git 是程序员代码管理的基本工具。
在以前的科研学习中,我陆陆续续地学了些 Git 的皮毛,但是一直用不顺手。
于是决定抽空研究下 Git 的原理和操作,提高未来的工作效率。
学习资源
廖雪峰的中文 git 教程
推荐英文书籍:Pro Git (Second Edition)
创建,修改,删除和移动
git init:将一个普通文件夹变为接受 git 管理的文件夹。
文件状态分为未跟踪(untracked)和已跟踪(tracked),后者包含未修改、已修改、已暂存三种状态。
.gitignore 里保存了所有需要忽略的文件。
支持标准的 glob 模式:* 匹配 0 或多个字符,?匹配单个字符,a-b 匹配 a-b 之间任何的单个字符。
空行或 # 开头的行会被忽略。用 ** 匹配嵌套目录(0 或多层)。
git status:查看当前工作目录的文件状态。
按顺序显示已暂存列表、已修改未暂存列表和未跟踪列表。
如果文件 A 暂存后又进行了修改,这两个版本会分别出现在已暂存和已修改列表里。
git status -s/--short:显示更简洁的信息。
git add & ...
三亚游记
计划和女朋友来一次牛逼的毕业旅行,但是一直没想好目的地。五月初我心血来潮想去三亚,励颖居然同意了(她不会游泳,对海边常有些抗拒)。那就来一场说走就走的旅行吧!
旅行准备
我们都是第一次去海南,我就采用了 景点为主、酒店为辅 的旅游策略。自己 DIY 路线虽然累,却比无脑报旅游团有趣多了。在休息天和机票价格的限制下,我们把时间定在了 5.8−5.145.8-5.145.8−5.14,其中头尾两天主要是赶路。
酒店选择对三亚来说格外重要。经过搜索,三亚主要有四个湾区:三亚湾、大东海、亚龙湾、海棠湾。开发时间按顺序递增,消费水平按顺序递增;前三项的水质递增,而海棠湾主要是高端酒店群。因为海棠湾是给躺酒店的人准备的(因为海棠湾贵 ),我们决定在亚龙湾和三亚湾住宿。前者的高水质用来下海,后者可以感受热闹的气氛。
虽然是淡季,三亚的酒店并没有我想象中的那么便宜。海景房 是酒店里最热门的 Topic,但是其昂贵的价格让我望而却步。本着“又想体验,又不乱花钱”的原则,我们打算在旅游的第一天入住亚龙湾五星级酒店的海景房,这天里好好享受不安排别的活动。在喜来登、希尔顿、红树林、万豪的海景房里纠结了好久 ...
Vehicle-Routing-Problem
DIMACS 是美国罗格斯大学和普林斯顿大学共同发起的离散数学和理论计算机科学中心,每隔若干年会指定一个话题,举办一场理论与实际结合的大赛,以推动相关领域的蓬勃发展。例如,上一届 DIMACS 竞赛在 2013-2014 年举办,内容是斯坦纳树。本届 DIMACS 竞赛正好在 2020-2021 年举办,内容是 车辆路径问题。
车辆路径问题(Vehicle Routing Problem,以下简称 VRP)由 George 和 John 于 1959 年提出,是一个经典的组合优化问题。VRP 还具有很强的实践价值,是现代物流系统优化的关键内容。
2020.12∼2021.52020.12 \sim 2021.52020.12∼2021.5 我在华为实习,主要研究了 CVRP 和 VRPTW 的启发式解法。
【等待更新 DIMACS 最新进展】
VRP 问题简介
VRP 主要有以下几种类型/变种:
Capacitated Vehicle Routing Problem:给定一个货仓和 n−1n-1n−1 个用户位置,设计若干条从起点出发并回到起点的 route,使得每个用户恰好被访问 ...
如何优雅地在 Linux 下工作
用惯了傻瓜式的 Windows 环境,在 Linux 服务器上跑任务总是磕磕绊绊的。
于是我就开了这篇博客,整理一些经典的操作,例如 Linux 命令行等。
服务器常用操作
pip 换源:pip install -i <url> <package_name>
https://pypi.tuna.tsinghua.edu.cn/simple
http://mirrors.aliyun.com/pypi/simple/
Jupyter Notebook 的跨 ssh 连接
服务器:jupyter notebook –no-browser –port=8890
本地:ssh -N -f -L localhost:8888:localhost:8890 usr_name@server_ip
nohup
tmux
深度学习相关
查看 cuda 版本:cat /usr/local/cuda/version.txt
指定显卡训练:CUDA_VISIBLE_DEVICES=1,2 python ...
pytorch 安装网站
查看 ...