0%

本文使用 武汉大学 毕业论文模板。

准备写论文

可喜可贺,我终于要开始动笔我的毕业论文了。虽然论文相关的实验和理论准备已经就绪了很长一段时间,但是就是提不起精神写文章。这周其他突发堆积的事情逐渐清空,我准备忙里偷闲,开始写毕业论文。

某天,一同学在群里发了一份 武汉大学毕业论文 LaTeX 模板,我一看,巧了,老朋友写的 repository ,于是正好近期开工,把它下载下来用。

环境配置

本文基础环境是 Windows 10,使用的 IDE 为 VSCode,Linux、Mac 配置方式类似

Perl

首先我们需要安装 Windows 下的 Perl 依赖。前往官网 https://www.perl.org/get.html 我发现,有 ActiveState PerlStrawberry Perl 两种版本的 Perl ,具体使用起来差不多,所以我选择了下载起来相对方便的 草莓 Perl http://strawberryperl.com/

LaTeX

Windows 下有两种广泛使用的 LaTeX 版本,分别是 TeX LiveMiKTeXTeX Live 安装体积高达 6GB ,我立刻放弃,选择了安装体积较小,后续使用中按需下载MiKTeX https://miktex.org/download 。建议在安装时安装给当前用户,可以避免很多麻烦。

Read more »

该文完稿于 2020-03-13 凌晨

Background

最近在做一个与 Docker 相关的实验,其中需要限制 Docker 容器中应用程序的 IO,比如 NginX 的 IO。这听起来很简单,毕竟远在 Feb 4th, 2016 release 的 Docker v1.10 就在其功能中加入了限制容器 IO 的参数

Constraints on disk I/O: Various options for setting constraints on disk I/O have been added to docker run: --device-read-bps, --device-write-bps, --device-read-iops, --device-write-iops, and --blkio-weight-device.

https://www.docker.com/blog/docker-1-10/

就在一切都顺利进行,我写完包含了 NginXDockerfile ,准备满心欢喜地开始我的 1MB/s 实验的时候,一道晴天霹雳打在我心上——

1
2
3
4
[email protected]27:/#$ dd if=500M.file bs=1M count=500 of=/dev/null
500+0 records in
500+0 records out
524288000 bytes (524 MB, 500 MiB) copied, 0.132448 s, 4.0 GB/s

当然问题现在已经解决了。为了重现当时的情况,我们从头开始。

Toolbox

我们简单地使用 Debian 作为测试的 Docker Image。

1
$ docker pull debian

并且使用 dd 命令生成一个 500M 的 000 文件,测试磁盘读写速度。

1
2
$ dd if=/dev/zero of=500M.file bs=1M count=500
$ dd if=500M.file bs=1M count=500 of=/dev/null

Yesterday Once More *

* Yesterday Once More – Carpenters

初次碰壁

拉镜像

1
2
3
4
5
6
7
8
$ docker pull debian

Using default tag: latest
latest: Pulling from library/debian
50e431f79093: Pull complete
Digest: sha256:a63d0b2ecbd723da612abf0a8bdb594ee78f18f691d7dc652ac305a490c9b71a
Status: Downloaded newer image for debian:latest
docker.io/library/debian:latest

找到宿主机的设备路径

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ sudo fdisk -l

Disk /dev/vda: 50 GiB, 53687091200 bytes, 104857600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: -

Device Start End Sectors Size Type
/dev/vda1 227328 104857566 104630239 49.9G Linux filesystem
/dev/vda14 2048 10239 8192 4M BIOS boot
/dev/vda15 10240 227327 217088 106M EFI System

Partition table entries are not in disk order.

起一个 Docker,限制对应设备的读写速度

1
2
3
$ docker run -it --rm --device-read-bps /dev/vda:1MB  --device-write-bps /dev/vda:1MB debian

[email protected]:/#
1
2
3
4
5
6
7
8
9
10
11
$ dd if=/dev/zero of=500M.file bs=1M count=500

500+0 records in
500+0 records out
524288000 bytes (524 MB, 500 MiB) copied, 0.728238 s, 720 MB/s

$ dd if=500M.file bs=1M count=500 of=/dev/null

500+0 records in
500+0 records out
524288000 bytes (524 MB, 500 MiB) copied, 0.132448 s, 4.0 GB/s

这是一个非常可怕的事情。我限制的 1MB/s 并不工作。这个实验是基于这个假设进行的,如果没有办法限制设备的 IO,实验也没有办法继续进行了。

Read more »

Introduction

我大概是从两天前开始决定使用 Hexo 的。

1
2
3
4
橙橙橙 2020-03-10 15:35:42
你现在在用hexo吗
2020-03-10 16:15:22

1
2
3
4
橙橙橙 2020-03-12 18:05:24
你觉得hexo好还是jekyll好
mxd 2020-03-12 18:12:17
我喜欢hexo

昨天我装上了 Hexo ,配置了 gh-pages ,今天我装了一堆插件用于优化浏览体验,并把主题改成了自己喜欢的样子。我还增加了 gitalk 评论系统,并接入了 Google Analytics 服务等传统艺能。

我会在这个帖子里做一些记录,关于我修改的比较重要的部分。

修改 Hexo 字体

我修改了 Hexo 全局的字体,并根据自己的审美修改了字体大小和排版。修改字体需要重写 CSS ,覆盖 NexT 原有的样式表。

NexT 的配置文件中找到如下片段

1
2
3
4
5
6
7
8
9
10
11
12
13
# Define custom file paths.
# Create your custom files in site directory `source/_data` and uncomment needed files below.
custom_file_path:
#head: source/_data/head.swig
#header: source/_data/header.swig
#sidebar: source/_data/sidebar.swig
#postMeta: source/_data/post-meta.swig
#postBodyEnd: source/_data/post-body-end.swig
#footer: source/_data/footer.swig
#bodyEnd: source/_data/body-end.swig
#variable: source/_data/variables.styl
#mixin: source/_data/mixins.styl
style: source/_data/styles.styl

由于我只自定义了样式表,所以我只是把样式表的部分取消注释。我希望修改我的网站全局的字体,所以我先通过 https://www.font-converter.net/ 将 ttf 字体转换成了多种格式,将其放在 source/fonts 文件夹下,并增加 CSS 配置。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@font-face {
font-family: "FZS3JW";
src: url("/fonts/FZS3JW/FZS3JW.eot"); /* IE9 Compat Modes */
src: url("/fonts/FZS3JW/FZS3JW.eot?#iefix") format("embedded-opentype"), /* IE6-IE8 */
url("/fonts/FZS3JW/FZS3JW.otf") format("opentype"), /* Open Type Font */
url("/fonts/FZS3JW/FZS3JW.svg") format("svg"), /* Legacy iOS */
url("/fonts/FZS3JW/FZS3JW.ttf") format("truetype"), /* Safari, Android, iOS */
url("/fonts/FZS3JW/FZS3JW.woff") format("woff"), /* Modern Browsers */
url("/fonts/FZS3JW/FZS3JW.woff2") format("woff2"); /* Modern Browsers */
font-weight: normal;
font-style: normal;
font-display: swap;
}

body {
font-family: "Times New Roman", "FZS3JW", "PingFang SC", "Microsoft YaHei";
}

这样,全局的字体就被修改为上述优先级了。

评论

NexT 提供了非常方便的评论接口,只需要申请对应的评论服务并把他们的 API Key 或者别的相关的东西复制过来就可以了。我这里主要记录一下 gitalk 的安装过程。

Gitalk

gitalk 是一个使用 GitHub issue 作为对话记录工具的评论,我觉得想到这个点子的人一定是天才。

首先我们需要创建一个 repo ,用于放所有的 issue (评论)。我创建了一个名为 gitalk-wasteland 的 repo 。然后我们什么都不用操作,进行下一步。

进入 GitHub OAuth App 申请页面 https://github.com/settings/applications/new ,创建一个新的 OAuth App 并设置 Homepage URLAuthorization callback URL网站首页 URL 。然后根据配置文件注释,将 Client IDClient Secretgitalk-wasteland(repo name) 等信息填入

Read more »

Syncthing Official Site: https://syncthing.net/

Syncthing Github: https://github.com/syncthing/

KodExplorer Official Site: https://kodcloud.com/

KodExplorer Github: https://github.com/kalcaddle/KodExplorer

Introduction

Syncthing is a continuous file synchronization program. It synchronizes files between two or more computers in real time, safely protected from prying eyes. Your data is your data alone and you deserve to choose where it is stored, whether it is shared with some third party, and how it’s transmitted over the internet.

Syncthing 是一个实时的文件同步程序,可以在两台以上的设备之间进行实时、端对端的文件同步。在不同设备间同步的时候,还可以对每个设备分别设置文件版本控制,保留被删除的文件的副本或者更改前的旧版本,在办公、科研、文档共享和数据共享上都有很大用处。

我将 Syngthing 安装在了学校电脑、 Surface 和远端服务器上,远端服务器有公网 IP ,方便进行快速同步。这样只要我本地的数据发生更新,远端服务器就会同步数据,并且保存文件的旧版本。

服务器安装

虽然是开源项目,但是我不建议使用源代码安装。源码安装不利于软件的升级和版本控制。

官网对文件安装的文档说明已经非常详细了,这边简单摘抄一些,并分享在安装过程中发现的问题并提供解决方案。

全平台(除了 iOS)的安装文件可以在这里找到 https://syncthing.net/downloads/

Deb 系

用户可以在两条 release 轨道中进行选择,分别是”stable” (latest release) 和 “candidate” (earlier release candidate) 。

同时强烈建议通过 HTTPS 从 apt 源进行下载。

Candidate Track 的版本升级会比 Stable Track 早大约三个星期,追求刺激的用户可以使用 Candidate Track 。

Stable Track

1
2
3
4
5
6
7
8
9
10
11
12
# Add apt https support
sudo apt-get install apt-transport-https

# Add the release PGP keys:
curl -s https://syncthing.net/release-key.txt | sudo apt-key add -

# Add the "stable" channel to your APT sources:
echo "deb https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list

# Update and install syncthing:
sudo apt-get update
sudo apt-get install syncthing
Read more »

一切的结束,一切的开始

我又搬博客了。在咕了两年零两个月之后,我终于继续找地方写我想写的东西了。
此时应该放个烟花庆祝一下。如果你的城市不能放烟花,请打开一首打上花火。

我把以前的博客封存了起来。在搬家时,我顺便翻了翻它。我发现每次搬家,都会再次发觉曾经的我的幼稚。当然人是要磨练的,在不断否定自己、改变自己后,才能在成长的路上艰难地向前挪动一步。

但我也会惊讶,惊讶于曾经渺小的自己爆发出来的强大的能量,和童言无忌口无遮拦的那些存粹的话。要是让我现在去修改以前的文章,可能要大段大段的砍掉让我现在念起来会面红耳赤的内容。我最终决定还是将他们悉数保留,也算是对我的青春的一种纪念。

鞭尸

有的文章实在值得我自己翻出来狠狠的抽自己不算厚脸皮,感受这种尴尬气氛下微妙的喉咙干燥感。以下文章全部摘自旧博客 日常 分类,并亲自附上吐槽。

  • 我与开发的故事
    我没想到当时的我竟有勇气将 Link 的内容设置为 my-way-to-developer,因为现在的我越发没有自信称自己为开发者。我觉得我自己就是个写代码造软件赚点外快的。可能这就是小孩子的勇气吧。
  • 我和typecho的第一次(
    一篇中规中矩的初级技术文章,伴随着一个自言自语式的尴尬的开场。当时的我竟然可以突破重重看不懂的代码,找到问题的核心所在,还能依葫芦画瓢写一些 “it works” 的 Apache 配置文件,实在难得。这样一个聪明的小孩,竟然没有在 SE 的道路上继续走下去,实在是可惜了。
  • 再見,我的競賽生涯
    就这点数学物理知识还是不要说自己是打竞赛的好。我感觉以前学竞赛学的那点皮毛,现在我把自己按在椅子前学两天,也能把题目做的头头是道。
    哇,竟然还爱上杭州,半年前我提着行李箱顶着烈日在没地铁的浙大西溪校区边上走着的时候肯定无比后悔曾经说过的话。不过,只身一人从杭州前往深圳、中途中转广州的经历算是很深的记忆了。虽然他们可能远不及现在的日子精彩,但作为那时的我,也是一个值得纪念的挑战。

关于旧博客的存档

旧博客我还是做好了存档,网址是 https://savepoint.touko.moe/ 。也不知道当时是为何停止维护了,明明刚开了两个项目连载,分别是 MIPS CPU 和 bot-framework,结果最后也没能继续做下去。

在考虑旧博客命名时,我和 POJO 讨论了如下几个选项。

  • archive
  • legacy
  • deprecated
  • milestone
  • pyramid
  • savepoint
  • ruin

这下可好,已经把未来数次的博客搬迁取名事宜考虑好了,以后可以尽情搬迁新博客而不用担心二级域不够用。

Read more »

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

————
License: BY-NC-SA 4.0
Link: https://wasteland.touko.moe//blog/2020/03/hello-world/
Written with Passion and Hope