diff --git a/anu-comp2310-assignment1/index.html b/anu-comp2310-assignment1/index.html index 10aae68..ebffe09 100644 --- a/anu-comp2310-assignment1/index.html +++ b/anu-comp2310-assignment1/index.html @@ -11,13 +11,14 @@ +这是 ANU COMP231,"> @@ -147,6 +148,9 @@
+

原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

+
+

敬告

本博客请供参考,请不要抄袭。
diff --git a/archives/2020/01/index.html b/archives/2020/01/index.html index 3768ff7..0db7ae5 100644 --- a/archives/2020/01/index.html +++ b/archives/2020/01/index.html @@ -81,12 +81,14 @@
墙内 Jenkins 插件下载的一种解决方案

- ¶前言 + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +¶前言 闲来无聊,在家折腾 DevOps,第一步当然是部署一个 Jenkins 啦,然而一顿操作猛如虎,插件一个都下载不下来,总不能给 Jenkins 加个代理吧,所以有了下面这一通折腾。 ¶原因 -根据经验,国外这些软件下载失败基本上都是因为链接不上服务器,换个源就好了。所以简单百度,找到大量相关教程,换了清华源在内的四五个镜像源,均无效。 -这就非常奇怪了,所以我打开了清华源的update... +根据经验,国外这些软件下载失败基本上都是因为链接不上服务器,换个源就好了...

@@ -100,9 +102,11 @@
使用 Markdown 编写基于 Latex 的报告

- ¶前言 -计算机这个专业,有很多报告要做。在山威的时候,报告格式没有什么限制 Word,PDF 都可以,那个时候我开始使用 Markdown 作为我的排版工具,因为实在是没有时间经历去研究 Word 的各种高级功能(主要是懒)。Markdown 十分简单,易学,在Github等计算机专业相关平台使用也非常广泛,还可以通过各种模板快速生成好看,美观,专业的文档。 -后来到了澳国立,老师教授们开始极... + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +¶前言 +计算机这个专业,有很多报告要做。在山威的时候,报告格式没有什么限制 Word,PDF 都可以,那个时候我开始使用 Markdown 作为我的排版工具,因为实在是没有时间经历去研究 Word 的各种高级功能(主要是懒)。Markdown 十分简单,易学,在Githu...

@@ -116,7 +120,10 @@
卸载浪潮安装的 IP-GUARD 监控软件

- ¶前言 + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +¶前言 屋漏更遭连夜雨,船迟又遇打头风。 @@ -125,7 +132,7 @@ 事发突然,因为影响我开发,所以也没有来得及截图。 -为了使用 WSL2 里面的 Docker,我加入了 Windows 预览体验计划 - 慢,把系统升级到了 Windows 10 2004。结果怪事就出现了——基本上所有的命令行都会在执行前显示... +为了使用 WSL2 里面的 Docker,我加入了 Windows 预...

@@ -139,14 +146,15 @@
"寄生"于 Docker 的病毒 - Kinsing

- ¶前言 + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +¶前言 2020 年开年不顺,2019 新型冠状病毒肺炎爆发,从年三十居家隔离到了正月十五,没想到自己的服务器也”感染“上了病毒 - Kinsing(进程的名字,姑且这样称呼)。 ¶发现 偶然看了看服务器状态,发现 CPU 占用一直保持在 100%上下,有些蹊跷。 -难道是我的博客访问量暴增???那是当然不可能的,然后我去看了看Portainer看了看,果然, - -这个随机名称的容器就是 Ki... +难道...

@@ -160,17 +168,14 @@
Windows 包管理器 - Scoop

- ¶前言 + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +¶前言 一直以来,作为开发者,Windows 相较于 Linux 都缺少两样重要的工具, 好用的 Shell - 现在可以用 PowerShell Core 或者 WSL 暂时代替。 -好用的包管理器 - 在开发时 C/Cpp 的库可以用VCPKG,而日常使用的软件就可以使用本文的主角Scoop 了。 - -¶安装 - -按照官网的教程,只能使用 PowerShell 而不是 CMD 进行安装。 - -... +好用的包管理器 - 在开发时 C/Cpp 的库可以用VCPKG,而日常使用的软件就可以...

@@ -192,14 +197,16 @@
颜值是第一生产力 - Windows Terminal

- ¶回顾 + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +¶回顾 记得我最早的时候用 Visual Studio 写了第一个 Hello World 程序,激动的点运行,出来个黑框一闪就过去了,啥也没看到。 后来偶然了解 PowerShell,又变成了一个蓝色的框,还会有进度提示,红的,黑的,突兀得很😢。 -后来上了大学终于在 Ubuntu 上见到了 bash,完全改变了我对 Shell 的认知。 -傻傻分不清 Shell 和 Terminal... +后来上了大学终...

@@ -213,12 +220,15 @@
浪潮实习

- ¶前言 + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +¶前言 到了期末都说要找个实习的工作,我也跟个风😂。 我是主要是在实习僧上找的(就当免费做个广告吧),我住在美丽的泉城济南,这个地方好就好在,咳咳咳,我大概填了填简历,可能是没啥亮点,投了三四家都不要我😢。 我分析原因大概有以下几条: -我最喜欢最熟练的语言是 Python,但是现在国内的环境,Python 很少作为 Web 的后端,主要是用在机器学习(大数据分析,量化交易之类的)方面。... +我最喜欢最熟练的语言是 Pyt...

@@ -233,13 +243,16 @@ ANU COMP2310(2019) Assignment 1

+原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + + 敬告 本博客请供参考,请不要抄袭。 ¶前言 这是 ANU COMP2310的第一次大作业,历时一个月左右,也是这个学期我写的最认真的一次作业,所以在博客搭建伊始,我先把这个记录下来。 ¶问题 -根据Assignment 1 PDF中的描述,大概的意思就是在三维空间中有许多的车,具有速度和加速度(都是三维向量),而且不管是否加速,都会消耗一定的能量,当然加速也会加快能量的消耗。然后就是有一个... +根据Assignment 1 PDF中的描述,大概的意思就是在三维空间中有许...

@@ -253,9 +266,11 @@
Hello World

- 哈哈哈,这是一个经典的测试页面。 -一直以来都想拥有一个自己的博客,从WordPress开始,到Typecho,再到Halo,甚至中途尝试用 Django 自己实现了一个(不过样子也太丑了),虽然说一直在捣鼓博客,但是从来都是安装=>部署=>安装插件=>选择主题=>发布第一篇文章,然后就没有然后了。 -今天我突然看到Hexo的Obsidian主题,我觉得时机到了,毕竟颜值... + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +哈哈哈,这是一个经典的测试页面。 +一直以来都想拥有一个自己的博客,从WordPress开始,到Typecho,再到Halo,甚至中途尝试用 Django 自己实现了一个(不过样子也太丑了),虽然说一直在捣鼓博客,但是从来都是安装=>部署=>安装插件=>选...

diff --git a/archives/2020/02/index.html b/archives/2020/02/index.html index 41084a6..2b1f7eb 100644 --- a/archives/2020/02/index.html +++ b/archives/2020/02/index.html @@ -81,12 +81,14 @@
墙内 Jenkins 插件下载的一种解决方案

- ¶前言 + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +¶前言 闲来无聊,在家折腾 DevOps,第一步当然是部署一个 Jenkins 啦,然而一顿操作猛如虎,插件一个都下载不下来,总不能给 Jenkins 加个代理吧,所以有了下面这一通折腾。 ¶原因 -根据经验,国外这些软件下载失败基本上都是因为链接不上服务器,换个源就好了。所以简单百度,找到大量相关教程,换了清华源在内的四五个镜像源,均无效。 -这就非常奇怪了,所以我打开了清华源的update... +根据经验,国外这些软件下载失败基本上都是因为链接不上服务器,换个源就好了...

@@ -100,9 +102,11 @@
使用 Markdown 编写基于 Latex 的报告

- ¶前言 -计算机这个专业,有很多报告要做。在山威的时候,报告格式没有什么限制 Word,PDF 都可以,那个时候我开始使用 Markdown 作为我的排版工具,因为实在是没有时间经历去研究 Word 的各种高级功能(主要是懒)。Markdown 十分简单,易学,在Github等计算机专业相关平台使用也非常广泛,还可以通过各种模板快速生成好看,美观,专业的文档。 -后来到了澳国立,老师教授们开始极... + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +¶前言 +计算机这个专业,有很多报告要做。在山威的时候,报告格式没有什么限制 Word,PDF 都可以,那个时候我开始使用 Markdown 作为我的排版工具,因为实在是没有时间经历去研究 Word 的各种高级功能(主要是懒)。Markdown 十分简单,易学,在Githu...

@@ -116,7 +120,10 @@
卸载浪潮安装的 IP-GUARD 监控软件

- ¶前言 + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +¶前言 屋漏更遭连夜雨,船迟又遇打头风。 @@ -125,7 +132,7 @@ 事发突然,因为影响我开发,所以也没有来得及截图。 -为了使用 WSL2 里面的 Docker,我加入了 Windows 预览体验计划 - 慢,把系统升级到了 Windows 10 2004。结果怪事就出现了——基本上所有的命令行都会在执行前显示... +为了使用 WSL2 里面的 Docker,我加入了 Windows 预...

@@ -139,14 +146,15 @@
"寄生"于 Docker 的病毒 - Kinsing

- ¶前言 + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +¶前言 2020 年开年不顺,2019 新型冠状病毒肺炎爆发,从年三十居家隔离到了正月十五,没想到自己的服务器也”感染“上了病毒 - Kinsing(进程的名字,姑且这样称呼)。 ¶发现 偶然看了看服务器状态,发现 CPU 占用一直保持在 100%上下,有些蹊跷。 -难道是我的博客访问量暴增???那是当然不可能的,然后我去看了看Portainer看了看,果然, - -这个随机名称的容器就是 Ki... +难道...

@@ -160,17 +168,14 @@
Windows 包管理器 - Scoop

- ¶前言 + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +¶前言 一直以来,作为开发者,Windows 相较于 Linux 都缺少两样重要的工具, 好用的 Shell - 现在可以用 PowerShell Core 或者 WSL 暂时代替。 -好用的包管理器 - 在开发时 C/Cpp 的库可以用VCPKG,而日常使用的软件就可以使用本文的主角Scoop 了。 - -¶安装 - -按照官网的教程,只能使用 PowerShell 而不是 CMD 进行安装。 - -... +好用的包管理器 - 在开发时 C/Cpp 的库可以用VCPKG,而日常使用的软件就可以...

@@ -192,14 +197,16 @@
颜值是第一生产力 - Windows Terminal

- ¶回顾 + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +¶回顾 记得我最早的时候用 Visual Studio 写了第一个 Hello World 程序,激动的点运行,出来个黑框一闪就过去了,啥也没看到。 后来偶然了解 PowerShell,又变成了一个蓝色的框,还会有进度提示,红的,黑的,突兀得很😢。 -后来上了大学终于在 Ubuntu 上见到了 bash,完全改变了我对 Shell 的认知。 -傻傻分不清 Shell 和 Terminal... +后来上了大学终...

@@ -213,12 +220,15 @@
浪潮实习

- ¶前言 + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +¶前言 到了期末都说要找个实习的工作,我也跟个风😂。 我是主要是在实习僧上找的(就当免费做个广告吧),我住在美丽的泉城济南,这个地方好就好在,咳咳咳,我大概填了填简历,可能是没啥亮点,投了三四家都不要我😢。 我分析原因大概有以下几条: -我最喜欢最熟练的语言是 Python,但是现在国内的环境,Python 很少作为 Web 的后端,主要是用在机器学习(大数据分析,量化交易之类的)方面。... +我最喜欢最熟练的语言是 Pyt...

@@ -233,13 +243,16 @@ ANU COMP2310(2019) Assignment 1

+原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + + 敬告 本博客请供参考,请不要抄袭。 ¶前言 这是 ANU COMP2310的第一次大作业,历时一个月左右,也是这个学期我写的最认真的一次作业,所以在博客搭建伊始,我先把这个记录下来。 ¶问题 -根据Assignment 1 PDF中的描述,大概的意思就是在三维空间中有许多的车,具有速度和加速度(都是三维向量),而且不管是否加速,都会消耗一定的能量,当然加速也会加快能量的消耗。然后就是有一个... +根据Assignment 1 PDF中的描述,大概的意思就是在三维空间中有许...

@@ -253,9 +266,11 @@
Hello World

- 哈哈哈,这是一个经典的测试页面。 -一直以来都想拥有一个自己的博客,从WordPress开始,到Typecho,再到Halo,甚至中途尝试用 Django 自己实现了一个(不过样子也太丑了),虽然说一直在捣鼓博客,但是从来都是安装=>部署=>安装插件=>选择主题=>发布第一篇文章,然后就没有然后了。 -今天我突然看到Hexo的Obsidian主题,我觉得时机到了,毕竟颜值... + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +哈哈哈,这是一个经典的测试页面。 +一直以来都想拥有一个自己的博客,从WordPress开始,到Typecho,再到Halo,甚至中途尝试用 Django 自己实现了一个(不过样子也太丑了),虽然说一直在捣鼓博客,但是从来都是安装=>部署=>安装插件=>选...

diff --git a/archives/2020/index.html b/archives/2020/index.html index fe2001f..99970b5 100644 --- a/archives/2020/index.html +++ b/archives/2020/index.html @@ -81,12 +81,14 @@
墙内 Jenkins 插件下载的一种解决方案

- ¶前言 + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +¶前言 闲来无聊,在家折腾 DevOps,第一步当然是部署一个 Jenkins 啦,然而一顿操作猛如虎,插件一个都下载不下来,总不能给 Jenkins 加个代理吧,所以有了下面这一通折腾。 ¶原因 -根据经验,国外这些软件下载失败基本上都是因为链接不上服务器,换个源就好了。所以简单百度,找到大量相关教程,换了清华源在内的四五个镜像源,均无效。 -这就非常奇怪了,所以我打开了清华源的update... +根据经验,国外这些软件下载失败基本上都是因为链接不上服务器,换个源就好了...

@@ -100,9 +102,11 @@
使用 Markdown 编写基于 Latex 的报告

- ¶前言 -计算机这个专业,有很多报告要做。在山威的时候,报告格式没有什么限制 Word,PDF 都可以,那个时候我开始使用 Markdown 作为我的排版工具,因为实在是没有时间经历去研究 Word 的各种高级功能(主要是懒)。Markdown 十分简单,易学,在Github等计算机专业相关平台使用也非常广泛,还可以通过各种模板快速生成好看,美观,专业的文档。 -后来到了澳国立,老师教授们开始极... + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +¶前言 +计算机这个专业,有很多报告要做。在山威的时候,报告格式没有什么限制 Word,PDF 都可以,那个时候我开始使用 Markdown 作为我的排版工具,因为实在是没有时间经历去研究 Word 的各种高级功能(主要是懒)。Markdown 十分简单,易学,在Githu...

@@ -116,7 +120,10 @@
卸载浪潮安装的 IP-GUARD 监控软件

- ¶前言 + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +¶前言 屋漏更遭连夜雨,船迟又遇打头风。 @@ -125,7 +132,7 @@ 事发突然,因为影响我开发,所以也没有来得及截图。 -为了使用 WSL2 里面的 Docker,我加入了 Windows 预览体验计划 - 慢,把系统升级到了 Windows 10 2004。结果怪事就出现了——基本上所有的命令行都会在执行前显示... +为了使用 WSL2 里面的 Docker,我加入了 Windows 预...

@@ -139,14 +146,15 @@
"寄生"于 Docker 的病毒 - Kinsing

- ¶前言 + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +¶前言 2020 年开年不顺,2019 新型冠状病毒肺炎爆发,从年三十居家隔离到了正月十五,没想到自己的服务器也”感染“上了病毒 - Kinsing(进程的名字,姑且这样称呼)。 ¶发现 偶然看了看服务器状态,发现 CPU 占用一直保持在 100%上下,有些蹊跷。 -难道是我的博客访问量暴增???那是当然不可能的,然后我去看了看Portainer看了看,果然, - -这个随机名称的容器就是 Ki... +难道...

@@ -160,17 +168,14 @@
Windows 包管理器 - Scoop

- ¶前言 + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +¶前言 一直以来,作为开发者,Windows 相较于 Linux 都缺少两样重要的工具, 好用的 Shell - 现在可以用 PowerShell Core 或者 WSL 暂时代替。 -好用的包管理器 - 在开发时 C/Cpp 的库可以用VCPKG,而日常使用的软件就可以使用本文的主角Scoop 了。 - -¶安装 - -按照官网的教程,只能使用 PowerShell 而不是 CMD 进行安装。 - -... +好用的包管理器 - 在开发时 C/Cpp 的库可以用VCPKG,而日常使用的软件就可以...

@@ -192,14 +197,16 @@
颜值是第一生产力 - Windows Terminal

- ¶回顾 + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +¶回顾 记得我最早的时候用 Visual Studio 写了第一个 Hello World 程序,激动的点运行,出来个黑框一闪就过去了,啥也没看到。 后来偶然了解 PowerShell,又变成了一个蓝色的框,还会有进度提示,红的,黑的,突兀得很😢。 -后来上了大学终于在 Ubuntu 上见到了 bash,完全改变了我对 Shell 的认知。 -傻傻分不清 Shell 和 Terminal... +后来上了大学终...

@@ -213,12 +220,15 @@
浪潮实习

- ¶前言 + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +¶前言 到了期末都说要找个实习的工作,我也跟个风😂。 我是主要是在实习僧上找的(就当免费做个广告吧),我住在美丽的泉城济南,这个地方好就好在,咳咳咳,我大概填了填简历,可能是没啥亮点,投了三四家都不要我😢。 我分析原因大概有以下几条: -我最喜欢最熟练的语言是 Python,但是现在国内的环境,Python 很少作为 Web 的后端,主要是用在机器学习(大数据分析,量化交易之类的)方面。... +我最喜欢最熟练的语言是 Pyt...

@@ -233,13 +243,16 @@ ANU COMP2310(2019) Assignment 1

+原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + + 敬告 本博客请供参考,请不要抄袭。 ¶前言 这是 ANU COMP2310的第一次大作业,历时一个月左右,也是这个学期我写的最认真的一次作业,所以在博客搭建伊始,我先把这个记录下来。 ¶问题 -根据Assignment 1 PDF中的描述,大概的意思就是在三维空间中有许多的车,具有速度和加速度(都是三维向量),而且不管是否加速,都会消耗一定的能量,当然加速也会加快能量的消耗。然后就是有一个... +根据Assignment 1 PDF中的描述,大概的意思就是在三维空间中有许...

@@ -253,9 +266,11 @@
Hello World

- 哈哈哈,这是一个经典的测试页面。 -一直以来都想拥有一个自己的博客,从WordPress开始,到Typecho,再到Halo,甚至中途尝试用 Django 自己实现了一个(不过样子也太丑了),虽然说一直在捣鼓博客,但是从来都是安装=>部署=>安装插件=>选择主题=>发布第一篇文章,然后就没有然后了。 -今天我突然看到Hexo的Obsidian主题,我觉得时机到了,毕竟颜值... + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +哈哈哈,这是一个经典的测试页面。 +一直以来都想拥有一个自己的博客,从WordPress开始,到Typecho,再到Halo,甚至中途尝试用 Django 自己实现了一个(不过样子也太丑了),虽然说一直在捣鼓博客,但是从来都是安装=>部署=>安装插件=>选...

diff --git a/archives/index.html b/archives/index.html index 5ec8419..d399d6f 100644 --- a/archives/index.html +++ b/archives/index.html @@ -81,12 +81,14 @@
墙内 Jenkins 插件下载的一种解决方案

- ¶前言 + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +¶前言 闲来无聊,在家折腾 DevOps,第一步当然是部署一个 Jenkins 啦,然而一顿操作猛如虎,插件一个都下载不下来,总不能给 Jenkins 加个代理吧,所以有了下面这一通折腾。 ¶原因 -根据经验,国外这些软件下载失败基本上都是因为链接不上服务器,换个源就好了。所以简单百度,找到大量相关教程,换了清华源在内的四五个镜像源,均无效。 -这就非常奇怪了,所以我打开了清华源的update... +根据经验,国外这些软件下载失败基本上都是因为链接不上服务器,换个源就好了...

@@ -100,9 +102,11 @@
使用 Markdown 编写基于 Latex 的报告

- ¶前言 -计算机这个专业,有很多报告要做。在山威的时候,报告格式没有什么限制 Word,PDF 都可以,那个时候我开始使用 Markdown 作为我的排版工具,因为实在是没有时间经历去研究 Word 的各种高级功能(主要是懒)。Markdown 十分简单,易学,在Github等计算机专业相关平台使用也非常广泛,还可以通过各种模板快速生成好看,美观,专业的文档。 -后来到了澳国立,老师教授们开始极... + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +¶前言 +计算机这个专业,有很多报告要做。在山威的时候,报告格式没有什么限制 Word,PDF 都可以,那个时候我开始使用 Markdown 作为我的排版工具,因为实在是没有时间经历去研究 Word 的各种高级功能(主要是懒)。Markdown 十分简单,易学,在Githu...

@@ -116,7 +120,10 @@
卸载浪潮安装的 IP-GUARD 监控软件

- ¶前言 + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +¶前言 屋漏更遭连夜雨,船迟又遇打头风。 @@ -125,7 +132,7 @@ 事发突然,因为影响我开发,所以也没有来得及截图。 -为了使用 WSL2 里面的 Docker,我加入了 Windows 预览体验计划 - 慢,把系统升级到了 Windows 10 2004。结果怪事就出现了——基本上所有的命令行都会在执行前显示... +为了使用 WSL2 里面的 Docker,我加入了 Windows 预...

@@ -139,14 +146,15 @@
"寄生"于 Docker 的病毒 - Kinsing

- ¶前言 + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +¶前言 2020 年开年不顺,2019 新型冠状病毒肺炎爆发,从年三十居家隔离到了正月十五,没想到自己的服务器也”感染“上了病毒 - Kinsing(进程的名字,姑且这样称呼)。 ¶发现 偶然看了看服务器状态,发现 CPU 占用一直保持在 100%上下,有些蹊跷。 -难道是我的博客访问量暴增???那是当然不可能的,然后我去看了看Portainer看了看,果然, - -这个随机名称的容器就是 Ki... +难道...

@@ -160,17 +168,14 @@
Windows 包管理器 - Scoop

- ¶前言 + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +¶前言 一直以来,作为开发者,Windows 相较于 Linux 都缺少两样重要的工具, 好用的 Shell - 现在可以用 PowerShell Core 或者 WSL 暂时代替。 -好用的包管理器 - 在开发时 C/Cpp 的库可以用VCPKG,而日常使用的软件就可以使用本文的主角Scoop 了。 - -¶安装 - -按照官网的教程,只能使用 PowerShell 而不是 CMD 进行安装。 - -... +好用的包管理器 - 在开发时 C/Cpp 的库可以用VCPKG,而日常使用的软件就可以...

@@ -192,14 +197,16 @@
颜值是第一生产力 - Windows Terminal

- ¶回顾 + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +¶回顾 记得我最早的时候用 Visual Studio 写了第一个 Hello World 程序,激动的点运行,出来个黑框一闪就过去了,啥也没看到。 后来偶然了解 PowerShell,又变成了一个蓝色的框,还会有进度提示,红的,黑的,突兀得很😢。 -后来上了大学终于在 Ubuntu 上见到了 bash,完全改变了我对 Shell 的认知。 -傻傻分不清 Shell 和 Terminal... +后来上了大学终...

@@ -213,12 +220,15 @@
浪潮实习

- ¶前言 + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +¶前言 到了期末都说要找个实习的工作,我也跟个风😂。 我是主要是在实习僧上找的(就当免费做个广告吧),我住在美丽的泉城济南,这个地方好就好在,咳咳咳,我大概填了填简历,可能是没啥亮点,投了三四家都不要我😢。 我分析原因大概有以下几条: -我最喜欢最熟练的语言是 Python,但是现在国内的环境,Python 很少作为 Web 的后端,主要是用在机器学习(大数据分析,量化交易之类的)方面。... +我最喜欢最熟练的语言是 Pyt...

@@ -233,13 +243,16 @@ ANU COMP2310(2019) Assignment 1

+原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + + 敬告 本博客请供参考,请不要抄袭。 ¶前言 这是 ANU COMP2310的第一次大作业,历时一个月左右,也是这个学期我写的最认真的一次作业,所以在博客搭建伊始,我先把这个记录下来。 ¶问题 -根据Assignment 1 PDF中的描述,大概的意思就是在三维空间中有许多的车,具有速度和加速度(都是三维向量),而且不管是否加速,都会消耗一定的能量,当然加速也会加快能量的消耗。然后就是有一个... +根据Assignment 1 PDF中的描述,大概的意思就是在三维空间中有许...

@@ -253,9 +266,11 @@
Hello World

- 哈哈哈,这是一个经典的测试页面。 -一直以来都想拥有一个自己的博客,从WordPress开始,到Typecho,再到Halo,甚至中途尝试用 Django 自己实现了一个(不过样子也太丑了),虽然说一直在捣鼓博客,但是从来都是安装=>部署=>安装插件=>选择主题=>发布第一篇文章,然后就没有然后了。 -今天我突然看到Hexo的Obsidian主题,我觉得时机到了,毕竟颜值... + +原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。 + +哈哈哈,这是一个经典的测试页面。 +一直以来都想拥有一个自己的博客,从WordPress开始,到Typecho,再到Halo,甚至中途尝试用 Django 自己实现了一个(不过样子也太丑了),虽然说一直在捣鼓博客,但是从来都是安装=>部署=>安装插件=>选...

diff --git a/beauty-is-productivity-windows-terminal/index.html b/beauty-is-productivity-windows-terminal/index.html index 50a8583..c54715e 100644 --- a/beauty-is-productivity-windows-terminal/index.html +++ b/beauty-is-productivity-windows-terminal/index.html @@ -10,11 +10,12 @@ - +记得我最早的时候用 Visual Studio 写了第一个 Hel,"> @@ -143,7 +144,10 @@
-

回顾

+
+

原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

+
+

回顾

CMD

记得我最早的时候用 Visual Studio 写了第一个 Hello World 程序,激动的点运行,出来个黑框一闪就过去了,啥也没看到。

PowerShell

diff --git a/categories/DevOps/index.html b/categories/DevOps/index.html index 6a4e12d..19641c1 100644 --- a/categories/DevOps/index.html +++ b/categories/DevOps/index.html @@ -149,13 +149,13 @@ 文章字数 - 2.6k + 2.8k 阅读约需 - 2 mins. + 3 mins. @@ -166,12 +166,15 @@
- +
+

原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

+
+

闲来无聊,在家折腾 DevOps,第一步当然是部署一个 Jenkins 啦,然而一顿操作猛如虎,插件一个都下载不下来,总不能给 Jenkins 加个代理吧,所以有了下面这一通折腾。

根据经验,国外这些软件下载失败基本上都是因为链接不上服务器,换个源就好了。所以简单百度,找到大量相关教程,换了清华源在内的四五个镜像源,均无效。

-

这就非常奇怪了,所以我打开了清华源的update-center.json,仔细看了看,发现了蹊跷之处。原来,这个文件里面基本上所有插件的链接都指向了官网链接http://updates.jenkins-ci.org/download/plugins/。所以我们使用https...

+

这就非常奇怪了,所以我打开了清华源的update-center.json,仔细看了看,发现了蹊跷之处。原来,这个文件里面基本上所有插件的链接都指...

查看全文 @@ -215,7 +218,7 @@ 文章字数 - 2.1k + 2.3k @@ -232,16 +235,17 @@
- +
+

原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

+
+

2020 年开年不顺,2019 新型冠状病毒肺炎爆发,从年三十居家隔离到了正月十五,没想到自己的服务器也”感染“上了病毒 - Kinsing(进程的名字,姑且这样称呼)。

偶然看了看服务器状态,发现 CPU 占用一直保持在 100%上下,有些蹊跷。

难道是我的博客访问量暴增???那是当然不可能的,然后我去看了看Portainer看了看,果然,

-

这个随机名称的容器就是 Kinsing 基于 Ubuntu 的容器,CPU 占用 100%。

-

-

简单看了看容器里面的进程表,第一个运行了一个 shell...

+

这个随机名称的容器就是 ...

查看全文
diff --git a/categories/Internship/index.html b/categories/Internship/index.html index bbf9340..5cf9b3c 100644 --- a/categories/Internship/index.html +++ b/categories/Internship/index.html @@ -149,13 +149,13 @@ 文章字数 - 6k + 6.2k 阅读约需 - 5 mins. + 6 mins. @@ -166,7 +166,10 @@
- +
+

原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

+
+

屋漏更遭连夜雨,船迟又遇打头风。

@@ -176,9 +179,7 @@

事发突然,因为影响我开发,所以也没有来得及截图。

为了使用 WSL2 里面的 Docker,我加入了 Windows 预览体验计划 - 慢,把系统升级到了 Windows 10 2004。结果怪事就出现了——基本上所有的命令行都会在执行前显示一个错误。

-
ANOMALY: use of REX.w is meaningless (default operand size is 64)
-
-

从来没见过这个错误,我进入安全模式发现竟然也会报错,在百度 + 谷歌 +...

+
ANOMALY: use of REX.w is meaningless (default...
查看全文 @@ -222,7 +223,7 @@ 文章字数 - 8.5k + 8.8k @@ -239,13 +240,15 @@
- +
+

原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

+
+

到了期末都说要找个实习的工作,我也跟个风😂。

我是主要是在实习僧上找的(就当免费做个广告吧),我住在美丽的泉城济南,这个地方好就好在,咳咳咳,我大概填了填简历,可能是没啥亮点,投了三四家都不要我😢。

我分析原因大概有以下几条:

    -
  1. 我最喜欢最熟练的语言是 Python,但是现在国内的环境,Python 很少作为 Web 的后端,主要是用在机器学习(大数据分析,量化交易之类的)方面。济南大多数都是 Java 和 Cpp 岗。
  2. -
  3. 我个人没有参加过 acm 之类的比赛,除了几个项目没法有效证明我的能力。...
+
  • 我最喜欢最熟练的语言是 Python,但是现在国内的环境,Python 很少作为 Web 的后端,主要是用在机器学习(大数据分析,量化交易之类的)...
  • 查看全文
    diff --git a/categories/Personal/index.html b/categories/Personal/index.html index 8bbfe27..5870bab 100644 --- a/categories/Personal/index.html +++ b/categories/Personal/index.html @@ -149,7 +149,7 @@ 文章字数 - 1.2k + 1.4k @@ -166,19 +166,16 @@
    -

    哈哈哈,这是一个经典的测试页面。

    +
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    +
    +

    哈哈哈,这是一个经典的测试页面。

    一直以来都想拥有一个自己的博客,从WordPress开始,到Typecho,再到Halo,甚至中途尝试用 Django 自己实现了一个(不过样子也太丑了),虽然说一直在捣鼓博客,但是从来都是安装=>部署=>安装插件=>选择主题=>发布第一篇文章,然后就没有然后了。

    今天我突然看到HexoObsidian主题,我觉得时机到了,毕竟颜值是第一生产力。

    给自己列一个简单的 TODO LIST 吧。

    • 完善 BLOG
    • -
    • COMP2310 作业整理
    • -
    • 浪潮实习
    • -
    • 终端与 WSL
    • -
    -

    希望这个寒假能做完这些吧。

    -

    就这样。

    - +
  • ...
  • 查看全文 diff --git a/categories/Productivity/index.html b/categories/Productivity/index.html index c685bff..cf851c4 100644 --- a/categories/Productivity/index.html +++ b/categories/Productivity/index.html @@ -149,7 +149,7 @@ 文章字数 - 6.7k + 6.9k @@ -166,9 +166,12 @@
    - +
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    +
    +

    计算机这个专业,有很多报告要做。在山威的时候,报告格式没有什么限制 Word,PDF 都可以,那个时候我开始使用 Markdown 作为我的排版工具,因为实在是没有时间经历去研究 Word 的各种高级功能(主要是懒)。Markdown 十分简单,易学,在Github等计算机专业相关平台使用也非常广泛,还可以通过各种模板快速生成好看美观专业的文档。

    -

    后来到了澳国立,老师教授们开始极力鼓吹 Latex 和 PDF,基本上算是软性要求我们使用 Latex 编写,还规定了衬线字体,非衬线字体,字号,段落等等,图片还需要是 SVG 格式的矢量图片(最奇葩的是竟然一整节课只讲这个😂),最后生成 PDF...

    +

    后来到了澳国立,老师教授们开始极力鼓吹 Latex 和 PDF,基本上算是软性要求我们使用 Latex 编写,还规定了衬线...

    查看全文 @@ -229,7 +232,10 @@
    - +
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    +
    +

    一直以来,作为开发者,Windows 相较于 Linux 都缺少两样重要的工具,

    1. 好用的 Shell - 现在可以用 PowerShell Core 或者 WSL 暂时代替。
    2. @@ -237,10 +243,7 @@
    -

    按照官网的教程,只能使用 PowerShell 而不是 CMD 进行安装。

    -
    -
    # 指定 Scoop 的安装路径,之后安装的 APP 会安装在 path/to/scoop/apps/
    -$env:SCOOP...
    +

    按照官网的教程,只能使用 PowerShell 而不是 CMD 进行安装。...

    查看全文
    @@ -286,16 +289,17 @@ $env:SCOOP...
    - +
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    +
    +

    记得我最早的时候用 Visual Studio 写了第一个 Hello World 程序,激动的点运行,出来个黑框一闪就过去了,啥也没看到。

    后来偶然了解 PowerShell,又变成了一个蓝色的框,还会有进度提示,红的,黑的,突兀得很😢。

    后来上了大学终于在 Ubuntu 上见到了 bash,完全改变了我对 Shell 的认知。

    -

    傻傻分不清 Shell 和 Terminal 的我,激动的打开 Git 自带的 bash,它却长成了这样。

    -

    -

    一番优化之后也不是不能用,后来还入坑了 Cmder...

    +

    傻傻分不清 Shell 和 Terminal...

    查看全文
    diff --git a/categories/Study/index.html b/categories/Study/index.html index 508511b..8dcd6ad 100644 --- a/categories/Study/index.html +++ b/categories/Study/index.html @@ -167,13 +167,16 @@
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    +
    +

    敬告

    本博客请供参考,请不要抄袭。

    这是 ANU COMP2310的第一次大作业,历时一个月左右,也是这个学期我写的最认真的一次作业,所以在博客搭建伊始,我先把这个记录下来。

    -

    根据Assignment 1 PDF中的描述,大概的意思就是在三维空间中有许多的,具有速度和加速度(都是三维向量),而且不管是否加速,都会消耗一定的能量,当然加速也会加快能量的消耗。然后就是有一个或多个能量球,当然也是在运动中的,同样具有速度和加速度。当能量球靠近的时候,能够获取到能量球的信息(加速度,速度,位置),并且加满能量,而当靠近的时候,能够互相交换一次信息,这个信息的内容是自己定义的。在...

    +

    根据Assignment 1 PDF中的描述,大概的意思就是在三维空间中有许多的,具有速度和加速度(都是三维向量),而且不管是否加速,都会消耗一定的能量,当然加速也会加快能量的消耗。然后就是有一个或多个能量球,当然也是在运动中的,同样具有速度和加速度。当能量球靠近的时候,能够获取到能量...

    查看全文 diff --git a/hello-world/index.html b/hello-world/index.html index 5578e8e..19e1782 100644 --- a/hello-world/index.html +++ b/hello-world/index.html @@ -10,8 +10,11 @@ - + @@ -100,7 +103,7 @@ 文章字数 - 1.2k + 1.4k @@ -140,7 +143,10 @@
    -

    哈哈哈,这是一个经典的测试页面。

    +
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    +
    +

    哈哈哈,这是一个经典的测试页面。

    一直以来都想拥有一个自己的博客,从WordPress开始,到Typecho,再到Halo,甚至中途尝试用 Django 自己实现了一个(不过样子也太丑了),虽然说一直在捣鼓博客,但是从来都是安装=>部署=>安装插件=>选择主题=>发布第一篇文章,然后就没有然后了。

    今天我突然看到HexoObsidian主题,我觉得时机到了,毕竟颜值是第一生产力。

    给自己列一个简单的 TODO LIST 吧。

    diff --git a/index.html b/index.html index 7f9452a..99e980f 100644 --- a/index.html +++ b/index.html @@ -149,13 +149,13 @@ 文章字数 - 2.6k + 2.8k 阅读约需 - 2 mins. + 3 mins. @@ -166,12 +166,15 @@
    - +
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    +
    +

    闲来无聊,在家折腾 DevOps,第一步当然是部署一个 Jenkins 啦,然而一顿操作猛如虎,插件一个都下载不下来,总不能给 Jenkins 加个代理吧,所以有了下面这一通折腾。

    根据经验,国外这些软件下载失败基本上都是因为链接不上服务器,换个源就好了。所以简单百度,找到大量相关教程,换了清华源在内的四五个镜像源,均无效。

    -

    这就非常奇怪了,所以我打开了清华源的update-center.json,仔细看了看,发现了蹊跷之处。原来,这个文件里面基本上所有插件的链接都指向了官网链接http://updates.jenkins-ci.org/download/plugins/。所以我们使用https...

    +

    这就非常奇怪了,所以我打开了清华源的update-center.json,仔细看了看,发现了蹊跷之处。原来,这个文件里面基本上所有插件的链接都指...

    查看全文 @@ -215,7 +218,7 @@ 文章字数 - 6.7k + 6.9k @@ -232,9 +235,12 @@
    - +
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    +
    +

    计算机这个专业,有很多报告要做。在山威的时候,报告格式没有什么限制 Word,PDF 都可以,那个时候我开始使用 Markdown 作为我的排版工具,因为实在是没有时间经历去研究 Word 的各种高级功能(主要是懒)。Markdown 十分简单,易学,在Github等计算机专业相关平台使用也非常广泛,还可以通过各种模板快速生成好看美观专业的文档。

    -

    后来到了澳国立,老师教授们开始极力鼓吹 Latex 和 PDF,基本上算是软性要求我们使用 Latex 编写,还规定了衬线字体,非衬线字体,字号...

    +

    后来到了澳国立,老师教...

    查看全文
    @@ -263,13 +269,13 @@ 文章字数 - 6k + 6.2k 阅读约需 - 5 mins. + 6 mins. @@ -280,7 +286,10 @@
    - +
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    +
    +

    屋漏更遭连夜雨,船迟又遇打头风。

    @@ -289,8 +298,7 @@

    事发突然,因为影响我开发,所以也没有来得及截图。

    -

    为了使用 WSL2 里面的 Docker,我加入了 Windows 预览体验计划 - 慢,把系统升级到了 Windows 10 2004。结果怪事就出现了——基本上所有的命令行都会在执行前显示一个错误。

    -
    ANOMALY: use of REX.w is meaningless (default operand...
    +

    为了使用 WSL2 里面的 Docker,我加入了 Windows 预览体验计划 - 慢,把系统升级到了 Windows 10 2004。结果怪事就出现了——基本上所有的命令行都会在执行前...

    查看全文
    @@ -319,7 +327,7 @@ 文章字数 - 2.1k + 2.3k @@ -336,16 +344,17 @@
    - +
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    +
    +

    2020 年开年不顺,2019 新型冠状病毒肺炎爆发,从年三十居家隔离到了正月十五,没想到自己的服务器也”感染“上了病毒 - Kinsing(进程的名字,姑且这样称呼)。

    偶然看了看服务器状态,发现 CPU 占用一直保持在 100%上下,有些蹊跷。

    难道是我的博客访问量暴增???那是当然不可能的,然后我去看了看Portainer看了看,果然,

    -

    这个随机名称的容器就是 Kinsing 基于 Ubuntu 的容器,CPU 占用 100%。

    -

    -

    简单看了看容器里面的进程表,第一个运行了一个 shell...

    +

    这个随机名称的容器就是 ...

    查看全文
    @@ -391,7 +400,10 @@
    - +
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    +
    +

    一直以来,作为开发者,Windows 相较于 Linux 都缺少两样重要的工具,

    1. 好用的 Shell - 现在可以用 PowerShell Core 或者 WSL 暂时代替。
    2. @@ -399,10 +411,7 @@
    -

    按照官网的教程,只能使用 PowerShell 而不是 CMD 进行安装。

    -
    -
    # 指定 Scoop 的安装路径,之后安装的 APP 会安装在 path/to/scoop/apps/
    -$env:SCOOP...
    +

    按照官网的教程,只能使用 PowerShell 而不是 CMD 进行安装。...

    查看全文
    @@ -448,16 +457,17 @@ $env:SCOOP...
    - +
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    +
    +

    记得我最早的时候用 Visual Studio 写了第一个 Hello World 程序,激动的点运行,出来个黑框一闪就过去了,啥也没看到。

    后来偶然了解 PowerShell,又变成了一个蓝色的框,还会有进度提示,红的,黑的,突兀得很😢。

    后来上了大学终于在 Ubuntu 上见到了 bash,完全改变了我对 Shell 的认知。

    -

    傻傻分不清 Shell 和 Terminal 的我,激动的打开 Git 自带的 bash,它却长成了这样。

    -

    -

    一番优化之后也不是不能用,后来还入坑了 Cmder...

    +

    傻傻分不清 Shell 和 Terminal...

    查看全文
    @@ -486,7 +496,7 @@ $env:SCOOP... 文章字数 - 8.5k + 8.8k @@ -503,13 +513,15 @@ $env:SCOOP...
    - +
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    +
    +

    到了期末都说要找个实习的工作,我也跟个风😂。

    我是主要是在实习僧上找的(就当免费做个广告吧),我住在美丽的泉城济南,这个地方好就好在,咳咳咳,我大概填了填简历,可能是没啥亮点,投了三四家都不要我😢。

    我分析原因大概有以下几条:

      -
    1. 我最喜欢最熟练的语言是 Python,但是现在国内的环境,Python 很少作为 Web 的后端,主要是用在机器学习(大数据分析,量化交易之类的)方面。济南大多数都是 Java 和 Cpp 岗。
    2. -
    3. 我个人没有参加过 acm 之类的比赛,除了几个项目没法有效证明我的能力。...
    +
  • 我最喜欢最熟练的语言是 Python,但是现在国内的环境,Python 很少作为 Web 的后端,主要是用在机器学习(大数据分析,量化交易之类的)...
  • 查看全文
    @@ -556,13 +568,16 @@ $env:SCOOP...
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    +
    +

    敬告

    本博客请供参考,请不要抄袭。

    这是 ANU COMP2310的第一次大作业,历时一个月左右,也是这个学期我写的最认真的一次作业,所以在博客搭建伊始,我先把这个记录下来。

    -

    根据Assignment 1 PDF中的描述,大概的意思就是在三维空间中有许多的,具有速度和加速度(都是三维向量),而且不管是否加速,都会消耗一定的能量,当然加速也会加快能量的消耗。然后就是有一个或多个能量球,当然也是在运动中的,同样具有速度和加速度。当能量球靠近的时候,能够获取到能量球的信息(加速度,速度...

    +

    根据Assignment 1 PDF中的描述,大概的意思就是在三维空间中有许多的,具有速度和加速度(都是三维向量),而且不管是否加速,都会消耗一定的能量,当然加速也会加快能量的消耗。然后就是有...

    查看全文
    @@ -591,7 +606,7 @@ $env:SCOOP... 文章字数 - 1.2k + 1.4k @@ -608,13 +623,12 @@ $env:SCOOP...
    -

    哈哈哈,这是一个经典的测试页面。

    +
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    +
    +

    哈哈哈,这是一个经典的测试页面。

    一直以来都想拥有一个自己的博客,从WordPress开始,到Typecho,再到Halo,甚至中途尝试用 Django 自己实现了一个(不过样子也太丑了),虽然说一直在捣鼓博客,但是从来都是安装=>部署=>安装插件=>选择主题=>发布第一篇文章,然后就没有然后了。

    -

    今天我突然看到HexoObsidian主题,我觉得时机到了,毕竟颜值是第一生产力。

    -

    给自己列一个简单的 TODO LIST 吧。

    -
      -
    • 完善 BLOG
    • -
    • COMP2310 作业...
    +

    今天我突然看到HexoObsidian主题,我觉得时...

    查看全文
    diff --git a/inspur-internship/index.html b/inspur-internship/index.html index 55350ea..bfdf048 100644 --- a/inspur-internship/index.html +++ b/inspur-internship/index.html @@ -10,9 +10,12 @@ - +我是主要是在实习僧上,"> @@ -101,7 +104,7 @@ 文章字数 - 8.5k + 8.8k @@ -141,7 +144,10 @@
    -

    前言

    +
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    +
    +

    前言

    到了期末都说要找个实习的工作,我也跟个风😂。

    我是主要是在实习僧上找的(就当免费做个广告吧),我住在美丽的泉城济南,这个地方好就好在,咳咳咳,我大概填了填简历,可能是没啥亮点,投了三四家都不要我😢。

    我分析原因大概有以下几条:

    diff --git a/inspur-ip-guard-uninstallation/index.html b/inspur-ip-guard-uninstallation/index.html index 92b4af0..ab8f766 100644 --- a/inspur-ip-guard-uninstallation/index.html +++ b/inspur-ip-guard-uninstallation/index.html @@ -10,14 +10,14 @@ - +刚刚处理完 Docker 里面,"> @@ -106,13 +106,13 @@ 文章字数 - 6k + 6.2k 阅读约需 - 5 mins. + 6 mins. @@ -146,7 +146,10 @@
    -

    前言

    +
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    +
    +

    前言

    屋漏更遭连夜雨,船迟又遇打头风。

    diff --git a/jenkins-update-solution-inside-gfw/index.html b/jenkins-update-solution-inside-gfw/index.html index c27860f..97daf47 100644 --- a/jenkins-update-solution-inside-gfw/index.html +++ b/jenkins-update-solution-inside-gfw/index.html @@ -10,10 +10,11 @@ - + @@ -102,13 +103,13 @@ 文章字数 - 2.6k + 2.8k 阅读约需 - 2 mins. + 3 mins. @@ -142,7 +143,10 @@
    -

    前言

    +
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    +
    +

    前言

    闲来无聊,在家折腾 DevOps,第一步当然是部署一个 Jenkins 啦,然而一顿操作猛如虎,插件一个都下载不下来,总不能给 Jenkins 加个代理吧,所以有了下面这一通折腾。

    原因

    下载超时

    diff --git a/kinsing-virus/index.html b/kinsing-virus/index.html index 93b6edd..2fa594d 100644 --- a/kinsing-virus/index.html +++ b/kinsing-virus/index.html @@ -10,11 +10,11 @@ - +¶前言 +2020 年开年不顺,2019 新型冠状病毒肺炎爆发,从年三十居家隔,"> @@ -103,7 +103,7 @@ 文章字数 - 2.1k + 2.3k @@ -143,7 +143,10 @@
    -

    前言

    +
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    +
    +

    前言

    2020 年开年不顺,2019 新型冠状病毒肺炎爆发,从年三十居家隔离到了正月十五,没想到自己的服务器也”感染“上了病毒 - Kinsing(进程的名字,姑且这样称呼)。

    发现

    netdata

    diff --git a/search.xml b/search.xml index 68c76bc..9601c6d 100644 --- a/search.xml +++ b/search.xml @@ -8,7 +8,7 @@ /jenkins-update-solution-inside-gfw/ - 前言

    闲来无聊,在家折腾 DevOps,第一步当然是部署一个 Jenkins 啦,然而一顿操作猛如虎,插件一个都下载不下来,总不能给 Jenkins 加个代理吧,所以有了下面这一通折腾。

    原因

    下载超时

    根据经验,国外这些软件下载失败基本上都是因为链接不上服务器,换个源就好了。所以简单百度,找到大量相关教程,换了清华源在内的四五个镜像源,均无效。

    这就非常奇怪了,所以我打开了清华源的update-center.json,仔细看了看,发现了蹊跷之处。原来,这个文件里面基本上所有插件的链接都指向了官网链接http://updates.jenkins-ci.org/download/plugins/。所以我们使用https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json只加速了下载这个文件的过程,而并没有加速下载插件的过程。

    解决方案

    那么解决方案就很简单了,我们只需要把/var/jenkins_home/updates/default.json这个文件中的所有

    http://updates.jenkins-ci.org/download/plugins/

    替换成,

    https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/

    这样就好啦,但是总不能每次都自己手动替换吧,所以有下面这两个稍微复杂一点的自动化解决方案。

    方案 1 使用 nginx 重定向

    这个方法是参考的jenkins 插件下载加速最终方案

    具体我没有试,但是我之前写过 Nginx 的重定向,简单来讲就是遇到官方的地址,就重定向到清华源,配置起来稍微复杂一点。

    方案 2 自己搭建 Jenkins Update Center

    这个是我自己尝试出来的,原理就是我在服务器上定时(每小时)从清华源下载update-center.json,然后再把里面的 URL 替换成正确的地址,然后对外提供服务。

    但是 Jenkins 对于update-center.json的地址有验证,具体验证方法不清楚(我实在是懒的研究了)。

    山重水复疑无路,柳暗花明又一村

    我在 Jenkins 的 Issue 里面找到一个老哥说验证这个功能可以通过属性参数关闭,于是,这个问题就很简单啦。

    hudson.model.DownloadService.noSignatureCheck=true

    加上这个属性就好啦。

    具体教程

    哈,插件全秒!😄

    ]]>
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    前言

    闲来无聊,在家折腾 DevOps,第一步当然是部署一个 Jenkins 啦,然而一顿操作猛如虎,插件一个都下载不下来,总不能给 Jenkins 加个代理吧,所以有了下面这一通折腾。

    原因

    下载超时

    根据经验,国外这些软件下载失败基本上都是因为链接不上服务器,换个源就好了。所以简单百度,找到大量相关教程,换了清华源在内的四五个镜像源,均无效。

    这就非常奇怪了,所以我打开了清华源的update-center.json,仔细看了看,发现了蹊跷之处。原来,这个文件里面基本上所有插件的链接都指向了官网链接http://updates.jenkins-ci.org/download/plugins/。所以我们使用https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json只加速了下载这个文件的过程,而并没有加速下载插件的过程。

    解决方案

    那么解决方案就很简单了,我们只需要把/var/jenkins_home/updates/default.json这个文件中的所有

    http://updates.jenkins-ci.org/download/plugins/

    替换成,

    https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/

    这样就好啦,但是总不能每次都自己手动替换吧,所以有下面这两个稍微复杂一点的自动化解决方案。

    方案 1 使用 nginx 重定向

    这个方法是参考的jenkins 插件下载加速最终方案

    具体我没有试,但是我之前写过 Nginx 的重定向,简单来讲就是遇到官方的地址,就重定向到清华源,配置起来稍微复杂一点。

    方案 2 自己搭建 Jenkins Update Center

    这个是我自己尝试出来的,原理就是我在服务器上定时(每小时)从清华源下载update-center.json,然后再把里面的 URL 替换成正确的地址,然后对外提供服务。

    但是 Jenkins 对于update-center.json的地址有验证,具体验证方法不清楚(我实在是懒的研究了)。

    山重水复疑无路,柳暗花明又一村

    我在 Jenkins 的 Issue 里面找到一个老哥说验证这个功能可以通过属性参数关闭,于是,这个问题就很简单啦。

    hudson.model.DownloadService.noSignatureCheck=true

    加上这个属性就好啦。

    具体教程

    哈,插件全秒!😄

    ]]>
    @@ -33,7 +33,7 @@ /write-latex-report-with-markdown/ - 前言

    计算机这个专业,有很多报告要做。在山威的时候,报告格式没有什么限制 Word,PDF 都可以,那个时候我开始使用 Markdown 作为我的排版工具,因为实在是没有时间经历去研究 Word 的各种高级功能(主要是懒)。Markdown 十分简单,易学,在Github等计算机专业相关平台使用也非常广泛,还可以通过各种模板快速生成好看美观专业的文档。

    后来到了澳国立,老师教授们开始极力鼓吹 Latex 和 PDF,基本上算是软性要求我们使用 Latex 编写,还规定了衬线字体,非衬线字体,字号,段落等等,图片还需要是 SVG 格式的矢量图片(最奇葩的是竟然一整节课只讲这个😂),最后生成 PDF 提交(据说这样分数高一些)。所以我开始了漫漫 Latex 学习之路。然而整个过程十分痛苦,装个 TeX Live 跑了好几个小时,换个字体换的我一脸懵逼,预览竟然都不是实时的!!!我甚至觉得还不如 Word 好用,又开始找那些 Latex 编辑器(同学的 MacOS 上有很不错的,然而我是 Windows),之后是在线编辑器Overleaf,体验还行,但是一边学习 Latex 一边做实验写报告的体验实在是太差劲了,人都要有丝分裂了。我就先用 Markdown 记录下来,想着之后再改成 Latex 吧。然后,我用了 2 天左右的时间,找到了 Markdown 直接转报告的方法,就没再碰 Latex(还是懒)。

    样例

    eisvogel 主题样例

    你也可以从这里看一下我的成果作为参考,我觉得完全符合我的要求。

    思路

    其实思路很简单,一切的一切都是因为Pandoc这个文档转换软件软件(类似于影音界的格式工厂?)的存在。它官网有一张巨型图片描述了它可以从那些格式转换成那些格式,基本上可以说覆盖了常见的所有文档格式。所以我们就可以用它把 Markown 语言写的文档转换成 PDF 格式的报告,过程中再用一套模板修饰一下就好啦。

    注意
    Pandoc 通过 Markdown -> Latex -> PDF 的方式得到 PDF,中间文件是 Latex

    准备

    Markdown 语法

    注意
    Markdown 实际上和 HTML 是“近亲”,你甚至可以直接使用 HTML 标签。

    这个百度或者谷歌一下,很容易找到教程,学起来也很简单,10 分钟上手,1 天熟练。

    Markdown 编辑器

    下面这俩我都有,看心情切换😄。

    选项 1: VSCode

    VSCode with Markdown Preview Enhanced

    微软出品,宇宙最强 IDE Visual Studio 的“弟弟”,宇宙最强编辑器。

    官网|Github下载安装包,双击安装即可。

    虽然 VSCode 原生支持 Markdown,但是下面这几个属于增强型插件:

    1. Markdown Preview Enhanced,增强对 Markdown 的预览。
    2. Code Spell Checker,检查你报告里的拼写错误(不过只支持英文)。
    3. Markdownlint,检查 Markdown 的语法规范(强迫症专属)。

    选项 2: Typora

    Typora

    写作体验一级棒👍。

    官网下载安装包,双击安装即可。

    Latex Engine

    注意
    Latex 是个语言规范,Latex Engine 是它的实现,下面这俩都是 Latex Engine 的集合

    因为 Scoop 里面只有 MiKTeX,所以我选择 MiKTeX。反正我只是写个报告,选哪个应该都无所谓吧。

    选项 1: MiKTeX

    通过 Scoop 安装:

    scoop install latex

    或者官网下载安装。

    选项 2: TeX Live

    官网下载安装。

    Pandoc

    这个就是前文所说的万能文档格式转换器软件了。

    通过 Scoop 安装:

    scoop install pandoc

    或者官网下载安装。

    用到的过滤器(类似于插件):

    1. pandoc-crossref,用于 pandoc 中的交叉引用,图片,公式,章节等,这个我也是用 Scoop 安装的,没有 Scoop 的话看看安装教程吧。

    Eisvogel 主题

    Eisvogel

    这个是我找到的计算机专业风格的论文/报告/书籍/幻灯片的开源模板,对于我来说是真的很合适了,美观,简约又专业。

    Github Release下载,放到指定路径就完了,很简单。

    配置

    ---title: COMP 2310 Assignment 1 Reportauthor: Jiahao Zhang U6921098date: Sept. 27, 2019documentclass: articlepapersize: a4geometry: margin=2cmmainfont: Calibrifontsize: 10pttitlepage: trueheader-right: Jiahao Zhang U6921098footer-left: Australian National UniversityautoSectionLabels: truelistings: truesubfigGrid: true---

    在每个 Markdown 文件最上面形如上面 YAML 代码的叫做YAML Front Matter,可以理解为对全文的配置。这里主要是一些对Pandoc 的配置以及对Eisvogel 主题的配置

    生成

    运行下面的命令就可以生成 PDF 啦😄。

    pandoc Report.md `-o Report.pdf `--standalone `--listings `--number-sections `--pdf-engine=xelatex `--filter pandoc-crossref `--template eisvogel

    简单解释一下,

    • -o 指定输出文件
    • --standalone 独立完整文件
    • --listings 使用listings高亮代码
    • --number-sections 启用段落编号
    • --pdf-engine=xelatex 指定 PDF 的 engine 为 xelatex
    • --filter pandoc-crossref 指定过滤器为 pandoc-crossref
    • --template eisvogel 指定模板为 eisvogel

    想法

    完整的捣鼓下来其实也和学习 Latex 难度差不多了,但是配置完了这一套,只要要求不变,我再写报告的速度会加快很多很多,因为我只需要专注的写 Markdown 就好了😄。

    PS: 这个博客所有的文章就是使用 Markdown 编写的。

    ]]>
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    前言

    计算机这个专业,有很多报告要做。在山威的时候,报告格式没有什么限制 Word,PDF 都可以,那个时候我开始使用 Markdown 作为我的排版工具,因为实在是没有时间经历去研究 Word 的各种高级功能(主要是懒)。Markdown 十分简单,易学,在Github等计算机专业相关平台使用也非常广泛,还可以通过各种模板快速生成好看美观专业的文档。

    后来到了澳国立,老师教授们开始极力鼓吹 Latex 和 PDF,基本上算是软性要求我们使用 Latex 编写,还规定了衬线字体,非衬线字体,字号,段落等等,图片还需要是 SVG 格式的矢量图片(最奇葩的是竟然一整节课只讲这个😂),最后生成 PDF 提交(据说这样分数高一些)。所以我开始了漫漫 Latex 学习之路。然而整个过程十分痛苦,装个 TeX Live 跑了好几个小时,换个字体换的我一脸懵逼,预览竟然都不是实时的!!!我甚至觉得还不如 Word 好用,又开始找那些 Latex 编辑器(同学的 MacOS 上有很不错的,然而我是 Windows),之后是在线编辑器Overleaf,体验还行,但是一边学习 Latex 一边做实验写报告的体验实在是太差劲了,人都要有丝分裂了。我就先用 Markdown 记录下来,想着之后再改成 Latex 吧。然后,我用了 2 天左右的时间,找到了 Markdown 直接转报告的方法,就没再碰 Latex(还是懒)。

    样例

    eisvogel 主题样例

    你也可以从这里看一下我的成果作为参考,我觉得完全符合我的要求。

    思路

    其实思路很简单,一切的一切都是因为Pandoc这个文档转换软件软件(类似于影音界的格式工厂?)的存在。它官网有一张巨型图片描述了它可以从那些格式转换成那些格式,基本上可以说覆盖了常见的所有文档格式。所以我们就可以用它把 Markown 语言写的文档转换成 PDF 格式的报告,过程中再用一套模板修饰一下就好啦。

    注意
    Pandoc 通过 Markdown -> Latex -> PDF 的方式得到 PDF,中间文件是 Latex

    准备

    Markdown 语法

    注意
    Markdown 实际上和 HTML 是“近亲”,你甚至可以直接使用 HTML 标签。

    这个百度或者谷歌一下,很容易找到教程,学起来也很简单,10 分钟上手,1 天熟练。

    Markdown 编辑器

    下面这俩我都有,看心情切换😄。

    选项 1: VSCode

    VSCode with Markdown Preview Enhanced

    微软出品,宇宙最强 IDE Visual Studio 的“弟弟”,宇宙最强编辑器。

    官网|Github下载安装包,双击安装即可。

    虽然 VSCode 原生支持 Markdown,但是下面这几个属于增强型插件:

    1. Markdown Preview Enhanced,增强对 Markdown 的预览。
    2. Code Spell Checker,检查你报告里的拼写错误(不过只支持英文)。
    3. Markdownlint,检查 Markdown 的语法规范(强迫症专属)。

    选项 2: Typora

    Typora

    写作体验一级棒👍。

    官网下载安装包,双击安装即可。

    Latex Engine

    注意
    Latex 是个语言规范,Latex Engine 是它的实现,下面这俩都是 Latex Engine 的集合

    因为 Scoop 里面只有 MiKTeX,所以我选择 MiKTeX。反正我只是写个报告,选哪个应该都无所谓吧。

    选项 1: MiKTeX

    通过 Scoop 安装:

    scoop install latex

    或者官网下载安装。

    选项 2: TeX Live

    官网下载安装。

    Pandoc

    这个就是前文所说的万能文档格式转换器软件了。

    通过 Scoop 安装:

    scoop install pandoc

    或者官网下载安装。

    用到的过滤器(类似于插件):

    1. pandoc-crossref,用于 pandoc 中的交叉引用,图片,公式,章节等,这个我也是用 Scoop 安装的,没有 Scoop 的话看看安装教程吧。

    Eisvogel 主题

    Eisvogel

    这个是我找到的计算机专业风格的论文/报告/书籍/幻灯片的开源模板,对于我来说是真的很合适了,美观,简约又专业。

    Github Release下载,放到指定路径就完了,很简单。

    配置

    ---title: COMP 2310 Assignment 1 Reportauthor: Jiahao Zhang U6921098date: Sept. 27, 2019documentclass: articlepapersize: a4geometry: margin=2cmmainfont: Calibrifontsize: 10pttitlepage: trueheader-right: Jiahao Zhang U6921098footer-left: Australian National UniversityautoSectionLabels: truelistings: truesubfigGrid: true---

    在每个 Markdown 文件最上面形如上面 YAML 代码的叫做YAML Front Matter,可以理解为对全文的配置。这里主要是一些对Pandoc 的配置以及对Eisvogel 主题的配置

    生成

    运行下面的命令就可以生成 PDF 啦😄。

    pandoc Report.md `-o Report.pdf `--standalone `--listings `--number-sections `--pdf-engine=xelatex `--filter pandoc-crossref `--template eisvogel

    简单解释一下,

    • -o 指定输出文件
    • --standalone 独立完整文件
    • --listings 使用listings高亮代码
    • --number-sections 启用段落编号
    • --pdf-engine=xelatex 指定 PDF 的 engine 为 xelatex
    • --filter pandoc-crossref 指定过滤器为 pandoc-crossref
    • --template eisvogel 指定模板为 eisvogel

    想法

    完整的捣鼓下来其实也和学习 Latex 难度差不多了,但是配置完了这一套,只要要求不变,我再写报告的速度会加快很多很多,因为我只需要专注的写 Markdown 就好了😄。

    PS: 这个博客所有的文章就是使用 Markdown 编写的。

    ]]>
    @@ -60,7 +60,7 @@ /inspur-ip-guard-uninstallation/ - 前言

    屋漏更遭连夜雨,船迟又遇打头风。

    刚刚处理完 Docker 里面的“病毒”,又发现自己的笔记本被安装了监控软件,身后一阵凉风。

    发现

    事发突然,因为影响我开发,所以也没有来得及截图。

    为了使用 WSL2 里面的 Docker,我加入了 Windows 预览体验计划 - 慢,把系统升级到了 Windows 10 2004。结果怪事就出现了——基本上所有的命令行都会在执行前显示一个错误。

    ANOMALY: use of REX.w is meaningless (default operand size is 64)

    从来没见过这个错误,我进入安全模式发现竟然也会报错,在百度 + 谷歌 + stackoverflow 依然无任何有效答案后,陷入了绝望😢。

    本来呢,这个只是报个错,并不是什么大问题(我本身有一点强迫症,不能忍),但是 JetBrains 全家桶全部报错找不到 Git,CLion 报错找不到 VS。这就严重影响我开发了。Windows 预览体验计划还非常坑,不能回退,于是我又尝试了Windows 预览体验计划 - 快,结果问题依旧。

    终于我突发奇想在 Github 上搜了一下(不是到我当时咋想的,病急乱投医把),发现了一个叫mhook的项目,在其类库代码中发现了disasm_x86这个文件,在第 1749 行发现了错误提示的源代码。

    if (!SuppressErrors) printf("[0x%08I64X] ANOMALY: use of REX.w is meaningless (default operand size is 64)\n", VIRTUAL_ADDRESS);

    现在我大体知道了这个问题产生的原因。

    1. disasm 是一个 hook(钩子)库,可以注入到别的程序。
    2. 更新系统后,这个钩子库和新的系统发生了冲突,于是报错,理论上所有被注入的程序都会报错。
    3. 这个钩子应该是个监控软件或者病毒木马之类的。

    我想起了在浪潮实习的时候,我的老师给我说浪潮作为面向政府国企的公司,对内部信息安全非常重视,所以会在员工的电脑里面安装监控软件,监控员工的一举一动,我当时感觉应该不会对实习生下手吧,想不到。。。回想起来,应该是入职浪潮的时候安装的那个上网小助手吧。

    于是我下载了freefixer,查找注入的钩子,果不出其然,发现了在系统中安装的IP-GUARD。按照官网的介绍,监控能力之强,范围之广令人汗颜,从网络到文件,邮件,应用等等,简直神通广大。

    处理

    我已经离职多日,第一时间肯定是卸载这个监控软件,直接删除文件肯定不行,结果 freefixer 也卸不掉(卸载完重启又出现),没有办法,只能到 WinPE 中手动逐一筛查,删除。

    基本步骤如下

    1. 进入 WinPE

    安全模式也会打开例如 explorer.exe 这样的系统进程,而监控软件也注入到了其中,所以安装全模式也不能删除

    这里免费帮优启通做个广告。

    下载上面这个 PE 安装到本地或者 U 盘 都行,然后重启进入 WinPE 就好了。

    2. 到系统盘中删除对应的所有文件

    想不到这个公司还是很良心的,所有程序文件都签了名,在 freefixer 上查得到,叫T.E.C Solutions (G.Z.)Limited

    下面这些文件都是在 freefixer 上有记录的文件,可以作为检测 IP-GUARD 是否安装的标志。

    File Name
    ONacAgent.exe
    TIjtdrvd64.dll
    thooksv364.dll
    ONacAgent.exe
    winhadnt64.dll
    DtFrame32.dll
    winrdgv3.exe
    winrdlv3.exe
    winhafnt64.dll
    TIjtdrvd64.dll
    ipnpf.sys
    thooksv364.dll
    winhadnt.dll

    我们可以利用 Windows Explorer 的按公司分组,快速找到所有相关文件。

    1. 打开系统盘(这里假设是 C 盘),右键 - 分组依据 - 更多 - 勾选 公司 - 确定。
    2. 右键 - 分组依据 - 公司。
    3. 查看 - 选项 - 查看 - 应用到文件夹。
    4. 在下面的路径中找到所有公司为T.E.C Solutions (G.Z.)Limited的文件,删除。
    C:\Program Files\Common Files\SystemC:\Program Files (x86)\Common Files\SystemC:\WINDOWSC:\WINDOWS\System32C:\WINDOWS\System32\driversC:\WINDOWS\SysWOW64C:\WINDOWS\SysWOW64\drivers

    3. 重启

    再次运行 freefixer 检查是否删干净了。

    想法

    像浪潮这样主要客户是政府,国企的企业,确实需要证明其安全能力,在他的员工的电脑上安装监控软件确实是有效措施,我能够理解。但是,这么大一企业,安装监控时没有主动告知(至少应该告知监控我的哪些行为),毕竟是我自己私人的笔记本,不是企业配发的,也没让我签字。离职时就算知道了也找不到卸载方法(那个上网小助手也是我进入安全模式手动删除的,因为正常卸载需要密码,我嫌麻烦就自己删了),所有面向实习生的文档教程都只有安装方法,我不知道是不是因为实习生的缘故,全程只有我的那个老师给我口头说了一声,我现在感觉自己受到了欺骗,个人隐私受到了严重侵犯,很难受,同时也非常生气,可是又很无力,因为这件事情可大可小,从网上的评论来看在各大企业中都很正常。

    希望这样的事情以后不会发生了吧。🙏

    ]]>
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    前言

    屋漏更遭连夜雨,船迟又遇打头风。

    刚刚处理完 Docker 里面的“病毒”,又发现自己的笔记本被安装了监控软件,身后一阵凉风。

    发现

    事发突然,因为影响我开发,所以也没有来得及截图。

    为了使用 WSL2 里面的 Docker,我加入了 Windows 预览体验计划 - 慢,把系统升级到了 Windows 10 2004。结果怪事就出现了——基本上所有的命令行都会在执行前显示一个错误。

    ANOMALY: use of REX.w is meaningless (default operand size is 64)

    从来没见过这个错误,我进入安全模式发现竟然也会报错,在百度 + 谷歌 + stackoverflow 依然无任何有效答案后,陷入了绝望😢。

    本来呢,这个只是报个错,并不是什么大问题(我本身有一点强迫症,不能忍),但是 JetBrains 全家桶全部报错找不到 Git,CLion 报错找不到 VS。这就严重影响我开发了。Windows 预览体验计划还非常坑,不能回退,于是我又尝试了Windows 预览体验计划 - 快,结果问题依旧。

    终于我突发奇想在 Github 上搜了一下(不是到我当时咋想的,病急乱投医把),发现了一个叫mhook的项目,在其类库代码中发现了disasm_x86这个文件,在第 1749 行发现了错误提示的源代码。

    if (!SuppressErrors) printf("[0x%08I64X] ANOMALY: use of REX.w is meaningless (default operand size is 64)\n", VIRTUAL_ADDRESS);

    现在我大体知道了这个问题产生的原因。

    1. disasm 是一个 hook(钩子)库,可以注入到别的程序。
    2. 更新系统后,这个钩子库和新的系统发生了冲突,于是报错,理论上所有被注入的程序都会报错。
    3. 这个钩子应该是个监控软件或者病毒木马之类的。

    我想起了在浪潮实习的时候,我的老师给我说浪潮作为面向政府国企的公司,对内部信息安全非常重视,所以会在员工的电脑里面安装监控软件,监控员工的一举一动,我当时感觉应该不会对实习生下手吧,想不到。。。回想起来,应该是入职浪潮的时候安装的那个上网小助手吧。

    于是我下载了freefixer,查找注入的钩子,果不出其然,发现了在系统中安装的IP-GUARD。按照官网的介绍,监控能力之强,范围之广令人汗颜,从网络到文件,邮件,应用等等,简直神通广大。

    处理

    我已经离职多日,第一时间肯定是卸载这个监控软件,直接删除文件肯定不行,结果 freefixer 也卸不掉(卸载完重启又出现),没有办法,只能到 WinPE 中手动逐一筛查,删除。

    基本步骤如下

    1. 进入 WinPE

    安全模式也会打开例如 explorer.exe 这样的系统进程,而监控软件也注入到了其中,所以安装全模式也不能删除

    这里免费帮优启通做个广告。

    下载上面这个 PE 安装到本地或者 U 盘 都行,然后重启进入 WinPE 就好了。

    2. 到系统盘中删除对应的所有文件

    想不到这个公司还是很良心的,所有程序文件都签了名,在 freefixer 上查得到,叫T.E.C Solutions (G.Z.)Limited

    下面这些文件都是在 freefixer 上有记录的文件,可以作为检测 IP-GUARD 是否安装的标志。

    File Name
    ONacAgent.exe
    TIjtdrvd64.dll
    thooksv364.dll
    ONacAgent.exe
    winhadnt64.dll
    DtFrame32.dll
    winrdgv3.exe
    winrdlv3.exe
    winhafnt64.dll
    TIjtdrvd64.dll
    ipnpf.sys
    thooksv364.dll
    winhadnt.dll

    我们可以利用 Windows Explorer 的按公司分组,快速找到所有相关文件。

    1. 打开系统盘(这里假设是 C 盘),右键 - 分组依据 - 更多 - 勾选 公司 - 确定。
    2. 右键 - 分组依据 - 公司。
    3. 查看 - 选项 - 查看 - 应用到文件夹。
    4. 在下面的路径中找到所有公司为T.E.C Solutions (G.Z.)Limited的文件,删除。
    C:\Program Files\Common Files\SystemC:\Program Files (x86)\Common Files\SystemC:\WINDOWSC:\WINDOWS\System32C:\WINDOWS\System32\driversC:\WINDOWS\SysWOW64C:\WINDOWS\SysWOW64\drivers

    3. 重启

    再次运行 freefixer 检查是否删干净了。

    想法

    像浪潮这样主要客户是政府,国企的企业,确实需要证明其安全能力,在他的员工的电脑上安装监控软件确实是有效措施,我能够理解。但是,这么大一企业,安装监控时没有主动告知(至少应该告知监控我的哪些行为),毕竟是我自己私人的笔记本,不是企业配发的,也没让我签字。离职时就算知道了也找不到卸载方法(那个上网小助手也是我进入安全模式手动删除的,因为正常卸载需要密码,我嫌麻烦就自己删了),所有面向实习生的文档教程都只有安装方法,我不知道是不是因为实习生的缘故,全程只有我的那个老师给我口头说了一声,我现在感觉自己受到了欺骗,个人隐私受到了严重侵犯,很难受,同时也非常生气,可是又很无力,因为这件事情可大可小,从网上的评论来看在各大企业中都很正常。

    希望这样的事情以后不会发生了吧。🙏

    ]]>
    @@ -85,7 +85,7 @@ /kinsing-virus/ - 前言

    2020 年开年不顺,2019 新型冠状病毒肺炎爆发,从年三十居家隔离到了正月十五,没想到自己的服务器也”感染“上了病毒 - Kinsing(进程的名字,姑且这样称呼)。

    发现

    netdata

    偶然看了看服务器状态,发现 CPU 占用一直保持在 100%上下,有些蹊跷。

    难道是我的博客访问量暴增???那是当然不可能的,然后我去看了看Portainer看了看,果然,

    portainer

    这个随机名称的容器就是 Kinsing 基于 Ubuntu 的容器,CPU 占用 100%。

    进程

    简单看了看容器里面的进程表,第一个运行了一个 shell 脚本,这个病毒就是这个脚本下载启动的关键,我打开看了看,也没看懂,大概是下载了几个可执行文件。第二个是 cron,这个是定时脚本,我猜应该是病毒定时检查一下运行情况?第三个好像是个守护进程,第四个应该是用于容器保持,第五个在网上能搜到,是个挖矿的程序

    无聊的我还简单看了看这个脚本的服务器 IP,

    ip

    难道是俄罗斯大佬???

    这个时候我突然想起来,前几天为了调试certbot的 Dockerfile, 我直接打开了 Docker 的远程访问,在默认的情况下是没有任何加密措施的。

    这样,就真相大白了,这个病毒通过未加密的接口,在我的服务器上运行了挖矿的容器来盈利,同时也占用了服务器全部的 CPU😢.

    处理

    Kinsing 病毒还是很良心的(至少我遇到的这个是),把自己”关“在了容器里面,反正后来我也没有在别的地方发现相关文件。

    所以处理起来也简单,

    1. 删掉容器和镜像
    2. 关闭 Docker 远程访问即可。如果不想关闭的话也可以用 https 的方式加密

    小想法

    其实这个 Kinsing 病毒实现起来还是很简单的,

    1. 扫描全网的 2375 这个默认端口
    2. 用 Docker API 连接并部署容器
    3. 执行脚本运行挖矿程序

    突然有一个邪恶的想法,一台机器一天就算 1 毛钱好啦,哈哈哈,但是违法的事情不能做呀😄。

    大家一定要注意呀,时刻谨记服务器安全,不要随意开放服务器端口。

    ]]>
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    前言

    2020 年开年不顺,2019 新型冠状病毒肺炎爆发,从年三十居家隔离到了正月十五,没想到自己的服务器也”感染“上了病毒 - Kinsing(进程的名字,姑且这样称呼)。

    发现

    netdata

    偶然看了看服务器状态,发现 CPU 占用一直保持在 100%上下,有些蹊跷。

    难道是我的博客访问量暴增???那是当然不可能的,然后我去看了看Portainer看了看,果然,

    portainer

    这个随机名称的容器就是 Kinsing 基于 Ubuntu 的容器,CPU 占用 100%。

    进程

    简单看了看容器里面的进程表,第一个运行了一个 shell 脚本,这个病毒就是这个脚本下载启动的关键,我打开看了看,也没看懂,大概是下载了几个可执行文件。第二个是 cron,这个是定时脚本,我猜应该是病毒定时检查一下运行情况?第三个好像是个守护进程,第四个应该是用于容器保持,第五个在网上能搜到,是个挖矿的程序

    无聊的我还简单看了看这个脚本的服务器 IP,

    ip

    难道是俄罗斯大佬???

    这个时候我突然想起来,前几天为了调试certbot的 Dockerfile, 我直接打开了 Docker 的远程访问,在默认的情况下是没有任何加密措施的。

    这样,就真相大白了,这个病毒通过未加密的接口,在我的服务器上运行了挖矿的容器来盈利,同时也占用了服务器全部的 CPU😢.

    处理

    Kinsing 病毒还是很良心的(至少我遇到的这个是),把自己”关“在了容器里面,反正后来我也没有在别的地方发现相关文件。

    所以处理起来也简单,

    1. 删掉容器和镜像
    2. 关闭 Docker 远程访问即可。如果不想关闭的话也可以用 https 的方式加密

    小想法

    其实这个 Kinsing 病毒实现起来还是很简单的,

    1. 扫描全网的 2375 这个默认端口
    2. 用 Docker API 连接并部署容器
    3. 执行脚本运行挖矿程序

    突然有一个邪恶的想法,一台机器一天就算 1 毛钱好啦,哈哈哈,但是违法的事情不能做呀😄。

    大家一定要注意呀,时刻谨记服务器安全,不要随意开放服务器端口。

    ]]>
    @@ -114,7 +114,7 @@ /windows-package-manager-scoop/ - 前言

    一直以来,作为开发者,Windows 相较于 Linux 都缺少两样重要的工具,

    1. 好用的 Shell - 现在可以用 PowerShell Core 或者 WSL 暂时代替。
    2. 好用的包管理器 - 在开发时 C/Cpp 的库可以用VCPKG,而日常使用的软件就可以使用本文的主角Scoop 了。

    安装

    按照官网的教程,只能使用 PowerShell 而不是 CMD 进行安装。

    # 指定 Scoop 的安装路径,之后安装的 APP 会安装在 path/to/scoop/apps/$env:SCOOP='path/to/scoop'[environment]::setEnvironmentVariable('SCOOP',$env:SCOOP,'User')# 安装 ScoopInvoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')

    Buckets

    Scoop 只是一个包安装器,我们还需要软件源。

    使用,

    scoop bucket known

    可以列出所有官方已知并推荐的源,使用,

    scoop bucket add <bucket-name>

    即可安装源。

    1. main - Scoop 官方默认主源,里面所有的软件符合标准
    2. extras - Scoop 官方扩展你源,里面的软件不完全符合标准。
    3. versions - 可选版本的源。
    4. nightlies - nightly 软件源,不推荐。
    5. nirsoft - Nir Sofer开发的软件。
    6. php - 不同版本的 php。
    7. nerd-fonts - Nerd Fonts 和一些其他字体。
    8. nonportable - 非便携软件(可能需要 UAC)。
    9. java - 不同版本的 JDK,JRE。
    10. games - 开源或免费的游戏以及游戏工具。
    11. jetbrains - JetBrains 全家桶。

    使用

    和 Ubuntu 的 apt,CentOS 的 yum 基本相同。

    # 搜索scoop search <package-name># 查看主页scoop home <package-name># 安装scoop install <package-name># 更新scoop update <package-name># 卸载scoop uninstall <package-name># 更新 Scoop,所有源,所有软件包scoop update *# 列出所有软件包scoop list

    推荐的软件包

    aria2

    基本上常见的所有开源下载软件都是基于这个,不但可以跑在 x86 的电脑上, mips 的路由器,arm 的手机都不是问题。

    需要注意的是,安装 aria2 后,Scoop 的默认下载器会自动改成 aria2,并开启多线程下载。

    7zip

    界面超原始,但是替代个收费的 WinRAR,以及一众国内带广告的解压软件不是问题。同时 Scoop 有时候也依赖于 7zip 来解压。

    adb

    有的时候连个安卓手机就需要这个东西,虽然我不做安卓开发,但是我玩过微信跳一跳呀。

    bat

    bat

    用于代替 cat,带行号,带高亮,可tail -f

    cpu-z

    cpuz

    著名的 CPU 信息查看软件。

    fiddler

    著名的抓包软件,大学机考神器(CCTR-E 的题目和答案一起传输,哈哈哈)。

    figlet

    figlet

    把字符串改成字符串图像,还有好几个主题,现在知道那些文档的开头是怎么生成了吧😄。

    git

    什么,你没听说过 git !!!,右上角,再见😢。

    motrix

    motrix

    使用 Electron 开发的 aria2 GUI 客户端,可惜不能指定 aria2,只能使用自带的。

    neofetch

    neofetch

    当你想截个屏,展示一下你的 Terminal 又不知道放什么内容时,就它了。

    psutils

    Scoop 同开发者开发的一系列 PowerShell 工具,我就说 PS 在国外还是很火的吧。

    • gitignore - 从 gitignore.io 获取 .gitignore 文件模板并打印出来。
    • ln - 类似于 Linux 的 ln,实现"软连接"。
    • runat - at 命令(微软从 Windows Server 2012 开始废弃)。
    • say - 类似于 MacOS 的 say,让电脑说话。
    • shasum - 类似于 Linux 下的 shasum,校验文件。
    • sudo - 类似于 Linux 的 sudo,但是会显示 UAC 弹出窗口。
    • time - 类似 Linux 的 time,显示程序运行时间。
    • touch - 类似 Linux 的 touch,创建文件。
    • vimtutor - 因为 Scoop 中的 vim 自带的 vimtutor 无法使用,所以有了这个。

    snipaste

    snipaste

    带边缘检测的强大截图软件。

    spacesniffer

    spacesniffer

    想知道那个文件夹占用了你的 C 盘最多?

    teamviewer

    在山威如何快速获得妹子的 QQ,微信和手机号?加入极客鸟,用 Teamviewer 帮妹子修电脑吧。

    wget

    下载个 1kb 的文本文件还需要动用迅雷?aria2?wget一行命令搞定。

    win32-openssh

    微软已经把 ssh 迁移到 Windows 平台上啦。

    winscp

    winscp

    图形化管理服务器的文件。

    软件结构

    目录结构

    虽然结构还是很清晰的,但不得不说,这几个名字起的太谜了。

    apps

    这个目录下面时所有安装的软件包。每个软件包都是这样的,

    apps

    每个 app 的 current 都指向最新的那个文件夹。

    buckets

    buckets

    这个目录下是所有安装的源。

    实际上每个源只是一个单独的 git 仓库,仓库里面有该源的所有软件包的信息文件。Scoop 依照这个信息文件安装配置软件包。

    比如 7zip 的,

    {  "homepage": "https://www.7-zip.org/",  "description": "A multi-format file archiver with high compression ratios",  "license": {    "identifier": "Freeware,LGPL-2.0-only,BSD-3-Clause",    "url": "https://www.7-zip.org/license.txt"  },  "version": "19.00",  "architecture": {    "64bit": {      "url": "https://7-zip.org/a/7z1900-x64.msi",      "hash": "a7803233eedb6a4b59b3024ccf9292a6fffb94507dc998aa67c5b745d197a5dc"    },    "32bit": {      "url": "https://7-zip.org/a/7z1900.msi",      "hash": "b49d55a52bc0eab14947c8982c413d9be141c337da1368a24aa0484cbb5e89cd"    }  },  "extract_dir": "Files/7-Zip",  "bin": "7z.exe",  "checkver": {    "url": "https://www.7-zip.org/download.html",    "regex": "Download 7-Zip ([\\d.]+)"  },  "autoupdate": {    "architecture": {      "64bit": {        "url": "https://7-zip.org/a/7z$cleanVersion-x64.msi"      },      "32bit": {        "url": "https://7-zip.org/a/7z$cleanVersion.msi"      }    }  },  "shortcuts": [["7zFM.exe", "7-Zip"]]}

    cache

    这个目录里面是下载的软件包安装程序等等缓存。

    persist

    这个目录存放的是这些软件的配置之类的文件,这些文件的特点是在软件更新时不变。

    shims

    这个目录是所有软件包的快捷方式。

    每一个软件包都对应三个,

    1. package-name.exe
    2. package-name.ps1
    3. package-name.shim

    我其实有个疑问,我在命令行里输package-name,执行的是package-name.exe还是package-name.ps1呢?

    简单的测试后发现,是根据使用的 shell 确定的,CMD 里面是package-name.exe,而 PowerShell 里面是 package-name.ps1

    软件包管理哲学

    引用自 SpencerWoo

    最后我还是想说一说:为什么我们推荐使用「包管理」?
    在写这篇文章之前我也看了我派上面对包管理工具介绍的文章,我觉得这些文章其实都没太讲清为什么我们需要用「包管理」这个看上去复杂难用的命令行工具去下载、管理我们的软件。毕竟现在的软件管理哲学是「我去 App Store 下一个不就行了嘛?」
    需要明确的是:包管理的设计初衷是为了方便开发者管理和搭建开发环境。用包管理工具能够快速的安装开发工具、开发依赖,从而免去复杂的路径、环境变量等信息的配置。而我们作为普通用户,实际上用「包管理」工具的过程,就是在借鉴这种「软件管理哲学」。
    但更重要的,也是更对我们用户安装基本软件的过程来说的,是我前文提到的:
    一行代码省去了搜索、筛选、下载等繁琐步骤
    安装方便、更新方便、卸载也方便
    同时也最大程度杜绝了流氓捆绑软件的安装(因为 Scoop 本身和 Scoop 安装过程参考的配置文件都是开源的,要安装什么一目了然)
    这些都是传统的「搜索 - 筛选 - 下载」的软件管理过程带来的复杂过程和安全隐患的极佳解决方法。
    尝试一下 Scoop 吧!如果你对这个简洁、克制却依旧强大的工具产生兴趣,你一定离高阶 Windows 用户不远了。

    推荐阅读

    「一行代码」搞定软件安装卸载,用 Scoop 管理你的 Windows 软件

    ]]>
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    前言

    一直以来,作为开发者,Windows 相较于 Linux 都缺少两样重要的工具,

    1. 好用的 Shell - 现在可以用 PowerShell Core 或者 WSL 暂时代替。
    2. 好用的包管理器 - 在开发时 C/Cpp 的库可以用VCPKG,而日常使用的软件就可以使用本文的主角Scoop 了。

    安装

    按照官网的教程,只能使用 PowerShell 而不是 CMD 进行安装。

    # 指定 Scoop 的安装路径,之后安装的 APP 会安装在 path/to/scoop/apps/$env:SCOOP='path/to/scoop'[environment]::setEnvironmentVariable('SCOOP',$env:SCOOP,'User')# 安装 ScoopInvoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')

    Buckets

    Scoop 只是一个包安装器,我们还需要软件源。

    使用,

    scoop bucket known

    可以列出所有官方已知并推荐的源,使用,

    scoop bucket add <bucket-name>

    即可安装源。

    1. main - Scoop 官方默认主源,里面所有的软件符合标准
    2. extras - Scoop 官方扩展你源,里面的软件不完全符合标准。
    3. versions - 可选版本的源。
    4. nightlies - nightly 软件源,不推荐。
    5. nirsoft - Nir Sofer开发的软件。
    6. php - 不同版本的 php。
    7. nerd-fonts - Nerd Fonts 和一些其他字体。
    8. nonportable - 非便携软件(可能需要 UAC)。
    9. java - 不同版本的 JDK,JRE。
    10. games - 开源或免费的游戏以及游戏工具。
    11. jetbrains - JetBrains 全家桶。

    使用

    和 Ubuntu 的 apt,CentOS 的 yum 基本相同。

    # 搜索scoop search <package-name># 查看主页scoop home <package-name># 安装scoop install <package-name># 更新scoop update <package-name># 卸载scoop uninstall <package-name># 更新 Scoop,所有源,所有软件包scoop update *# 列出所有软件包scoop list

    推荐的软件包

    aria2

    基本上常见的所有开源下载软件都是基于这个,不但可以跑在 x86 的电脑上, mips 的路由器,arm 的手机都不是问题。

    需要注意的是,安装 aria2 后,Scoop 的默认下载器会自动改成 aria2,并开启多线程下载。

    7zip

    界面超原始,但是替代个收费的 WinRAR,以及一众国内带广告的解压软件不是问题。同时 Scoop 有时候也依赖于 7zip 来解压。

    adb

    有的时候连个安卓手机就需要这个东西,虽然我不做安卓开发,但是我玩过微信跳一跳呀。

    bat

    bat

    用于代替 cat,带行号,带高亮,可tail -f

    cpu-z

    cpuz

    著名的 CPU 信息查看软件。

    fiddler

    著名的抓包软件,大学机考神器(CCTR-E 的题目和答案一起传输,哈哈哈)。

    figlet

    figlet

    把字符串改成字符串图像,还有好几个主题,现在知道那些文档的开头是怎么生成了吧😄。

    git

    什么,你没听说过 git !!!,右上角,再见😢。

    motrix

    motrix

    使用 Electron 开发的 aria2 GUI 客户端,可惜不能指定 aria2,只能使用自带的。

    neofetch

    neofetch

    当你想截个屏,展示一下你的 Terminal 又不知道放什么内容时,就它了。

    psutils

    Scoop 同开发者开发的一系列 PowerShell 工具,我就说 PS 在国外还是很火的吧。

    • gitignore - 从 gitignore.io 获取 .gitignore 文件模板并打印出来。
    • ln - 类似于 Linux 的 ln,实现"软连接"。
    • runat - at 命令(微软从 Windows Server 2012 开始废弃)。
    • say - 类似于 MacOS 的 say,让电脑说话。
    • shasum - 类似于 Linux 下的 shasum,校验文件。
    • sudo - 类似于 Linux 的 sudo,但是会显示 UAC 弹出窗口。
    • time - 类似 Linux 的 time,显示程序运行时间。
    • touch - 类似 Linux 的 touch,创建文件。
    • vimtutor - 因为 Scoop 中的 vim 自带的 vimtutor 无法使用,所以有了这个。

    snipaste

    snipaste

    带边缘检测的强大截图软件。

    spacesniffer

    spacesniffer

    想知道那个文件夹占用了你的 C 盘最多?

    teamviewer

    在山威如何快速获得妹子的 QQ,微信和手机号?加入极客鸟,用 Teamviewer 帮妹子修电脑吧。

    wget

    下载个 1kb 的文本文件还需要动用迅雷?aria2?wget一行命令搞定。

    win32-openssh

    微软已经把 ssh 迁移到 Windows 平台上啦。

    winscp

    winscp

    图形化管理服务器的文件。

    软件结构

    目录结构

    虽然结构还是很清晰的,但不得不说,这几个名字起的太谜了。

    apps

    这个目录下面时所有安装的软件包。每个软件包都是这样的,

    apps

    每个 app 的 current 都指向最新的那个文件夹。

    buckets

    buckets

    这个目录下是所有安装的源。

    实际上每个源只是一个单独的 git 仓库,仓库里面有该源的所有软件包的信息文件。Scoop 依照这个信息文件安装配置软件包。

    比如 7zip 的,

    {  "homepage": "https://www.7-zip.org/",  "description": "A multi-format file archiver with high compression ratios",  "license": {    "identifier": "Freeware,LGPL-2.0-only,BSD-3-Clause",    "url": "https://www.7-zip.org/license.txt"  },  "version": "19.00",  "architecture": {    "64bit": {      "url": "https://7-zip.org/a/7z1900-x64.msi",      "hash": "a7803233eedb6a4b59b3024ccf9292a6fffb94507dc998aa67c5b745d197a5dc"    },    "32bit": {      "url": "https://7-zip.org/a/7z1900.msi",      "hash": "b49d55a52bc0eab14947c8982c413d9be141c337da1368a24aa0484cbb5e89cd"    }  },  "extract_dir": "Files/7-Zip",  "bin": "7z.exe",  "checkver": {    "url": "https://www.7-zip.org/download.html",    "regex": "Download 7-Zip ([\\d.]+)"  },  "autoupdate": {    "architecture": {      "64bit": {        "url": "https://7-zip.org/a/7z$cleanVersion-x64.msi"      },      "32bit": {        "url": "https://7-zip.org/a/7z$cleanVersion.msi"      }    }  },  "shortcuts": [["7zFM.exe", "7-Zip"]]}

    cache

    这个目录里面是下载的软件包安装程序等等缓存。

    persist

    这个目录存放的是这些软件的配置之类的文件,这些文件的特点是在软件更新时不变。

    shims

    这个目录是所有软件包的快捷方式。

    每一个软件包都对应三个,

    1. package-name.exe
    2. package-name.ps1
    3. package-name.shim

    我其实有个疑问,我在命令行里输package-name,执行的是package-name.exe还是package-name.ps1呢?

    简单的测试后发现,是根据使用的 shell 确定的,CMD 里面是package-name.exe,而 PowerShell 里面是 package-name.ps1

    软件包管理哲学

    引用自 SpencerWoo

    最后我还是想说一说:为什么我们推荐使用「包管理」?
    在写这篇文章之前我也看了我派上面对包管理工具介绍的文章,我觉得这些文章其实都没太讲清为什么我们需要用「包管理」这个看上去复杂难用的命令行工具去下载、管理我们的软件。毕竟现在的软件管理哲学是「我去 App Store 下一个不就行了嘛?」
    需要明确的是:包管理的设计初衷是为了方便开发者管理和搭建开发环境。用包管理工具能够快速的安装开发工具、开发依赖,从而免去复杂的路径、环境变量等信息的配置。而我们作为普通用户,实际上用「包管理」工具的过程,就是在借鉴这种「软件管理哲学」。
    但更重要的,也是更对我们用户安装基本软件的过程来说的,是我前文提到的:
    一行代码省去了搜索、筛选、下载等繁琐步骤
    安装方便、更新方便、卸载也方便
    同时也最大程度杜绝了流氓捆绑软件的安装(因为 Scoop 本身和 Scoop 安装过程参考的配置文件都是开源的,要安装什么一目了然)
    这些都是传统的「搜索 - 筛选 - 下载」的软件管理过程带来的复杂过程和安全隐患的极佳解决方法。
    尝试一下 Scoop 吧!如果你对这个简洁、克制却依旧强大的工具产生兴趣,你一定离高阶 Windows 用户不远了。

    推荐阅读

    「一行代码」搞定软件安装卸载,用 Scoop 管理你的 Windows 软件

    ]]>
    @@ -141,7 +141,7 @@ /beauty-is-productivity-windows-terminal/ - 回顾

    CMD

    记得我最早的时候用 Visual Studio 写了第一个 Hello World 程序,激动的点运行,出来个黑框一闪就过去了,啥也没看到。

    PowerShell

    后来偶然了解 PowerShell,又变成了一个蓝色的框,还会有进度提示,红的,黑的,突兀得很😢。

    bash

    后来上了大学终于在 Ubuntu 上见到了 bash,完全改变了我对 Shell 的认知。

    傻傻分不清 Shell 和 Terminal 的我,激动的打开 Git 自带的 bash,它却长成了这样。

    Git-Bash

    一番优化之后也不是不能用,后来还入坑了 Cmder,用于替代 Putty 那个更加原始的 terminal。

    终于,2019 年微软开始进入开源世界,为我们带来了颜狗的胜利: Windows Terminal

    下载&安装

    截止 2020 年 2 月 1 号,Windows Terminal 还处在测试阶段,但是已经相对比较完善了,正常使用没有什么大问题了。

    方法 1: 通过 Windows Store

    点击这里安装

    方法 2: 通过 Github

    在 Github 的 Release 中下载最新的那个双击安装就好啦,和方法 1 是一样的。

    方法 3: 通过 Scoop

    不推荐
    用 wt 命令启动时会有一个 CMD 窗口,逼死强迫症。

    Windows Terminal 在 Scoop 的 extras bucket 里面。

    scoop install windows-terminal

    配置

    通过配置,最终 terminal 可以长成这个样子。

    windows terminal

    现阶段只有 json 格式的配置文件,还没有图形化配置界面,项目组说正式版会有,最终应该会与 Vscode 的配置一样。

    根据官网给出的 Profiles Schema,我们可以很快的配置我们自己定制化的 Terminal。

    下面是我自己用的配置文件,

    {  "$schema": "https://aka.ms/terminal-profiles-schema",  "defaultProfile": "{807502AB-0C92-4DF7-9C7C-1E9F7A2A47DE}", // 默认配置的 GUID, 和下面的 profiles.list 中的一个相同  "alwaysShowTabs": true, // 无论有几个 tab 是否都显示标签栏  "requestedTheme": "dark", // "light","dark","system"  "copyOnSelect": true, // 选择时复制  "launchMode": "maximized", // "maximized","default"  "profiles": {    // shell 或程序的配置    "defaults": {      // 所有 shell 或程序配置的默认值      "acrylicOpacity": 0.7, // 背景透明度      "useAcrylic": true, // 是否启用透明背景      "colorScheme": "One Half Dark", // 色彩配置,和下面 schemes 中的一个相同      "fontFace": "JetBrains Mono", // 字体      "fontSize": 12, // 字号      "startingDirectory": ".", // 工作路径,设置成 “.” 可以实现在资源管理器的地址栏输入 wt 直接打开时工作目录是当前目录      "closeOnExit": "always" // "never","graceful","always"    },    "list": [      {        "guid": "{807502AB-0C92-4DF7-9C7C-1E9F7A2A47DE}", // 唯一 GUID        "name": "powershell core", // 在下拉框中显示的名称        "commandline": "pwsh.exe -nol", // 执行的命令,-nol 的作用是不显示 Microsoft 那些提示        "icon": "path/to/icon" // 标签栏和下拉菜单中显示的图标      },      {        "guid": "{85933BC0-E5D2-4299-9FBC-AC6C9F6DFD46}",        "name": "davidz.cn",        "commandline": "ssh.exe root@davidz.cn", // ssh 也可以,用于代替 Putty        "icon": "path/to/icon"      }    ]  },  "schemes": [    // 配色    {      "name": "One Half Dark", // 我最喜欢的主题,Vscode,VS,JetBrains 全家桶都有类似主题,关键词 atom one dark      "background": "#282C34",      "black": "#282C34",      "blue": "#61AFEF",      "brightBlack": "#5A6374",      "brightBlue": "#61AFEF",      "brightCyan": "#56B6C2",      "brightGreen": "#98C379",      "brightPurple": "#C678DD",      "brightRed": "#E06C75",      "brightWhite": "#DCDFE4",      "brightYellow": "#E5C07B",      "cyan": "#56B6C2",      "foreground": "#DCDFE4",      "green": "#98C379",      "purple": "#C678DD",      "red": "#E06C75",      "white": "#DCDFE4",      "yellow": "#E5C07B"    }  ]}

    GUID 可以使用这个在线网站 或者 Visual Studio 自带的工具 guidgen 生成。

    主题

    除了我最喜欢的这个 One Half Dark,你还可以在这里选择自己喜欢的主题,复制到配置文件即可。

    字体

    我推荐使用 JetBrains 推出的字体 JetBrains Mono,这是一款适合写代码的带连字的字体。类似的字体还有微软特意为 Windows Terminal 开发的 Cascadia Code,或者是 Mozilla 主推由 Nikita Prokopov 开发的 Fira Code

    这些字体都在积极的维护和更新中,除了双击安装之外,还可以使用 Scoop 安装方便更新。在 Scoop 的 nerd-fonts bucket 中。

    scoop install JetBrains-Mono

    PowerShell Core

    PowerShell Core 是微软推出的基于 .Net Core 跨平台开源脚本语言,用于代替 PowerShell 和更加原始的 CMD。目前来看在国内基本上没什么影响力,国外相对好一些。除非大家都用 Windows Server 作为服务器,否则我感觉前景也不是很乐观。但是作为个人使用起来还是很好用的。

    PowerShell Core 也有自己的模块管理平台 PowerShell Gallery

    搜索

    Find-Module xxx

    安装

    Install-Module xxx

    卸载

    Uninstall-Module xxx

    更新

    Update-Module xxx

    类似于 .bashrc 之与 bash, .zshrc 之与 zsh,PowerShell 也有自己的配置文件Microsoft.PowerShell_profile.ps1,可以通过$PROFILE访问。

    使用模块Module时,

    Import-Module xxx

    如果每次启动 PowerShell 都想引用该插件,则在Microsoft.PowerShell_profile.ps1中添加Import-Module xxx即可。

    oh-my-posh

    这个是 oh-my-zsh 的 PowerShell 版本,但是只能管理主题。

    robbyrussel

    我比较喜欢的是这个 robbyrussel 主题,因为比较简洁。

    my-theme

    后来参考了dotfiles,自己按照 oh-my-zsh 的 ys 主题魔改了一个,为了区分不同环境,我把最前面的符号改成了PS

    我的主题

    z

    类似于 autojump,实现原理就是每次 cd 都记录下来,然后 z name 会去匹配访问最多的那个路径,直接跳转到。非常实用。

    Linux or Windows Subsystem for Linux

    我用了好久好久的 bash 才终于知道了还有像 zsh,fish 这样更加人性化的 shell。从前者切换到后者,就像从 dos 切换到 windows 一样惊艳。

    ohmyzsh

    这个是 zsh 的插件平台,支持添加主题,工具等等插件。

    z(内置)

    和上面 PowerShell 中的 z 是一样的。

    git(内置)

    这个主要是 git 命令的提示与自动补全(我没怎么用过)。

    sudo(内置)

    当你输入apt update提示无法获得锁的时候,按上键加两下esc就可以自动加上sudo啦。

    extract(内置)

    你背的过不同压缩文件的解压命令吗???背不过的话还是用用extract吧。

    zsh-autosuggestions

    根据命令历史记录自动建议,按右键自动补全。

    zsh-syntax-highlighting

    命令高亮。

    具体的配置文件可以参考这里。同时,如果你和我一样闲的话,也可以写一个简单的一键配置脚本,这样只需要有网络链接的环境下,就可以一键还原 zsh 环境了。

    dircolors

    在 WSL 里面使用默认的.dircolors可能会亮瞎眼,所以可以使用 dircolors-solarize作为代替。

    下载后放到用户目录里面,在.zshrc里面添加

    eval $(dircolors -b $HOME/.dircolors)

    即可。

    推荐阅读

    Dev on Windows with WSL - 强烈推荐

    5 个 PowerShell 主题,让你的 Windows 终端更好看

    告别 Windows 终端的难看难用,从改造 PowerShell 的外观开始

    ]]>
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    回顾

    CMD

    记得我最早的时候用 Visual Studio 写了第一个 Hello World 程序,激动的点运行,出来个黑框一闪就过去了,啥也没看到。

    PowerShell

    后来偶然了解 PowerShell,又变成了一个蓝色的框,还会有进度提示,红的,黑的,突兀得很😢。

    bash

    后来上了大学终于在 Ubuntu 上见到了 bash,完全改变了我对 Shell 的认知。

    傻傻分不清 Shell 和 Terminal 的我,激动的打开 Git 自带的 bash,它却长成了这样。

    Git-Bash

    一番优化之后也不是不能用,后来还入坑了 Cmder,用于替代 Putty 那个更加原始的 terminal。

    终于,2019 年微软开始进入开源世界,为我们带来了颜狗的胜利: Windows Terminal

    下载&安装

    截止 2020 年 2 月 1 号,Windows Terminal 还处在测试阶段,但是已经相对比较完善了,正常使用没有什么大问题了。

    方法 1: 通过 Windows Store

    点击这里安装

    方法 2: 通过 Github

    在 Github 的 Release 中下载最新的那个双击安装就好啦,和方法 1 是一样的。

    方法 3: 通过 Scoop

    不推荐
    用 wt 命令启动时会有一个 CMD 窗口,逼死强迫症。

    Windows Terminal 在 Scoop 的 extras bucket 里面。

    scoop install windows-terminal

    配置

    通过配置,最终 terminal 可以长成这个样子。

    windows terminal

    现阶段只有 json 格式的配置文件,还没有图形化配置界面,项目组说正式版会有,最终应该会与 Vscode 的配置一样。

    根据官网给出的 Profiles Schema,我们可以很快的配置我们自己定制化的 Terminal。

    下面是我自己用的配置文件,

    {  "$schema": "https://aka.ms/terminal-profiles-schema",  "defaultProfile": "{807502AB-0C92-4DF7-9C7C-1E9F7A2A47DE}", // 默认配置的 GUID, 和下面的 profiles.list 中的一个相同  "alwaysShowTabs": true, // 无论有几个 tab 是否都显示标签栏  "requestedTheme": "dark", // "light","dark","system"  "copyOnSelect": true, // 选择时复制  "launchMode": "maximized", // "maximized","default"  "profiles": {    // shell 或程序的配置    "defaults": {      // 所有 shell 或程序配置的默认值      "acrylicOpacity": 0.7, // 背景透明度      "useAcrylic": true, // 是否启用透明背景      "colorScheme": "One Half Dark", // 色彩配置,和下面 schemes 中的一个相同      "fontFace": "JetBrains Mono", // 字体      "fontSize": 12, // 字号      "startingDirectory": ".", // 工作路径,设置成 “.” 可以实现在资源管理器的地址栏输入 wt 直接打开时工作目录是当前目录      "closeOnExit": "always" // "never","graceful","always"    },    "list": [      {        "guid": "{807502AB-0C92-4DF7-9C7C-1E9F7A2A47DE}", // 唯一 GUID        "name": "powershell core", // 在下拉框中显示的名称        "commandline": "pwsh.exe -nol", // 执行的命令,-nol 的作用是不显示 Microsoft 那些提示        "icon": "path/to/icon" // 标签栏和下拉菜单中显示的图标      },      {        "guid": "{85933BC0-E5D2-4299-9FBC-AC6C9F6DFD46}",        "name": "davidz.cn",        "commandline": "ssh.exe root@davidz.cn", // ssh 也可以,用于代替 Putty        "icon": "path/to/icon"      }    ]  },  "schemes": [    // 配色    {      "name": "One Half Dark", // 我最喜欢的主题,Vscode,VS,JetBrains 全家桶都有类似主题,关键词 atom one dark      "background": "#282C34",      "black": "#282C34",      "blue": "#61AFEF",      "brightBlack": "#5A6374",      "brightBlue": "#61AFEF",      "brightCyan": "#56B6C2",      "brightGreen": "#98C379",      "brightPurple": "#C678DD",      "brightRed": "#E06C75",      "brightWhite": "#DCDFE4",      "brightYellow": "#E5C07B",      "cyan": "#56B6C2",      "foreground": "#DCDFE4",      "green": "#98C379",      "purple": "#C678DD",      "red": "#E06C75",      "white": "#DCDFE4",      "yellow": "#E5C07B"    }  ]}

    GUID 可以使用这个在线网站 或者 Visual Studio 自带的工具 guidgen 生成。

    主题

    除了我最喜欢的这个 One Half Dark,你还可以在这里选择自己喜欢的主题,复制到配置文件即可。

    字体

    我推荐使用 JetBrains 推出的字体 JetBrains Mono,这是一款适合写代码的带连字的字体。类似的字体还有微软特意为 Windows Terminal 开发的 Cascadia Code,或者是 Mozilla 主推由 Nikita Prokopov 开发的 Fira Code

    这些字体都在积极的维护和更新中,除了双击安装之外,还可以使用 Scoop 安装方便更新。在 Scoop 的 nerd-fonts bucket 中。

    scoop install JetBrains-Mono

    PowerShell Core

    PowerShell Core 是微软推出的基于 .Net Core 跨平台开源脚本语言,用于代替 PowerShell 和更加原始的 CMD。目前来看在国内基本上没什么影响力,国外相对好一些。除非大家都用 Windows Server 作为服务器,否则我感觉前景也不是很乐观。但是作为个人使用起来还是很好用的。

    PowerShell Core 也有自己的模块管理平台 PowerShell Gallery

    搜索

    Find-Module xxx

    安装

    Install-Module xxx

    卸载

    Uninstall-Module xxx

    更新

    Update-Module xxx

    类似于 .bashrc 之与 bash, .zshrc 之与 zsh,PowerShell 也有自己的配置文件Microsoft.PowerShell_profile.ps1,可以通过$PROFILE访问。

    使用模块Module时,

    Import-Module xxx

    如果每次启动 PowerShell 都想引用该插件,则在Microsoft.PowerShell_profile.ps1中添加Import-Module xxx即可。

    oh-my-posh

    这个是 oh-my-zsh 的 PowerShell 版本,但是只能管理主题。

    robbyrussel

    我比较喜欢的是这个 robbyrussel 主题,因为比较简洁。

    my-theme

    后来参考了dotfiles,自己按照 oh-my-zsh 的 ys 主题魔改了一个,为了区分不同环境,我把最前面的符号改成了PS

    我的主题

    z

    类似于 autojump,实现原理就是每次 cd 都记录下来,然后 z name 会去匹配访问最多的那个路径,直接跳转到。非常实用。

    Linux or Windows Subsystem for Linux

    我用了好久好久的 bash 才终于知道了还有像 zsh,fish 这样更加人性化的 shell。从前者切换到后者,就像从 dos 切换到 windows 一样惊艳。

    ohmyzsh

    这个是 zsh 的插件平台,支持添加主题,工具等等插件。

    z(内置)

    和上面 PowerShell 中的 z 是一样的。

    git(内置)

    这个主要是 git 命令的提示与自动补全(我没怎么用过)。

    sudo(内置)

    当你输入apt update提示无法获得锁的时候,按上键加两下esc就可以自动加上sudo啦。

    extract(内置)

    你背的过不同压缩文件的解压命令吗???背不过的话还是用用extract吧。

    zsh-autosuggestions

    根据命令历史记录自动建议,按右键自动补全。

    zsh-syntax-highlighting

    命令高亮。

    具体的配置文件可以参考这里。同时,如果你和我一样闲的话,也可以写一个简单的一键配置脚本,这样只需要有网络链接的环境下,就可以一键还原 zsh 环境了。

    dircolors

    在 WSL 里面使用默认的.dircolors可能会亮瞎眼,所以可以使用 dircolors-solarize作为代替。

    下载后放到用户目录里面,在.zshrc里面添加

    eval $(dircolors -b $HOME/.dircolors)

    即可。

    推荐阅读

    Dev on Windows with WSL - 强烈推荐

    5 个 PowerShell 主题,让你的 Windows 终端更好看

    告别 Windows 终端的难看难用,从改造 PowerShell 的外观开始

    ]]>
    @@ -170,7 +170,7 @@ /inspur-internship/ - 前言

    到了期末都说要找个实习的工作,我也跟个风😂。

    我是主要是在实习僧上找的(就当免费做个广告吧),我住在美丽的泉城济南,这个地方好就好在,咳咳咳,我大概填了填简历,可能是没啥亮点,投了三四家都不要我😢。

    我分析原因大概有以下几条:

    1. 我最喜欢最熟练的语言是 Python,但是现在国内的环境,Python 很少作为 Web 的后端,主要是用在机器学习(大数据分析,量化交易之类的)方面。济南大多数都是 Java 和 Cpp 岗。
    2. 我个人没有参加过 acm 之类的比赛,除了几个项目没法有效证明我的能力。
    3. 我这个寒假只能干 2 个月,其实最终只干了一个半月
    4. 我是个大三的学生。可能培养了对于公司来说也没啥意义吧。

    最后还是十分感谢秦老师❤️,不但收了我到浪潮实习,还在实习过程中给了我很多帮助和指导。

    下面列一列我学习了解的项目工具之类的。

    CppMicroServices

    我们主要做了一个插件管理器,是基于 CppMicroServices 的二次开发。这是一个 Cpp 的微服务框架,主要实现了 Bundle 的全生命周期管理,注册,启动,停止,状态管理等。

    CLion

    大爱 Jetbrains 全家桶,我实习的第一件事大概就是给组里所有人安利了 CLion 吧。与宇宙第一 IDE Visual Studio 相比最突出的优点有

    1. 精美的全功能编辑器。不是我吐槽,VS 的编辑器为了向下兼容现在甚至已经落后 VSCode 了,这还是曾经的宇宙第一 IDE 嘛。举一个简单的例子,连字功能连个开关都找不到,重启 VS 没成功,重启电脑就成功了?再加上没有拼写检查?没有自动注释补全?没有缺陷提示?你可能觉得没什么,但是这些都是 CLion 的自带功能啊。
    2. 丰富完善的插件生态。虽然感觉比不上 VSCode,但是相对于 VS,😄。
    3. CMake 项目的原生支持。VS 虽然也有,但是感觉应该还处在开发状态。
    4. SVN & Git 的原生支持。
    5. 远程开发功能。因为我们要求项目有跨平台能力,所以需要在多个平台切换。VS 虽然也有这个功能,但是也是感觉在开发状态,相比 CLion 少了很多配置的灵活性。
    6. 丰富的主题。VS 硬伤。

    综上所述,对于 Cpp 的 CMake 跨平台项目,还是推荐使用 CLion 作为 IDE。

    我猜测 Visual Studio 是宇宙第一 IDE 应该说的是对于 C# 项目吧。

    CMake

    以前的 C/Cpp 项目对我来说就是个谜,解决方案、项目傻傻分不清楚,Visual Studio 写单文件程序,解算法题还是很溜的,但是两个文件以上就很晕。

    傻瓜式的配置的优点和确定都是非常显著的,好用是好用,用好是真的难。

    CMake 作为这几年流行的跨平台构建工具,实现了配置式构建,终于让我理解了大学里 Linux 老师讲的程序编译链接都是些啥。

    下面我简单写一写 CMake 的入门知识。

    常见编译器

    PlatformWindowsLinux
    GNU(open source)MinGW, MinGW-w64GCC(GNU Compiler Collection)
    OtherClang(Apple), MSVC(Microsoft), ICC(Intel) etc.Clang(Apple), ICC(Intel) etc.

    上面这些编译器都可以作为 CMake 的编译器。

    这里主要还是推荐 GCC,毕竟老牌,经过这么多年的洗礼了。

    其次的话推荐 CLang,这些年对于新特性,特别是 C++20,支持的不错。

    再次就是如果真的需要 Windows 原生底层支持,那就只能使用 MSVC 啦。

    常见构建工具

    PlatformWindowsLinux
    GNU(open source)MinGW-make(Makefile)make(Makefile)
    Othernmake(Makefile), MSBuild(.vcxproj), ninja(.ninja), qmake etc.ninja(.ninja), qmake etc.
    SolutionVisual Studio(.sln), QT(.project)XCode, QT(.project)

    以上所有都可以作为 CMake 的 Generator。

    IDE 可以识别 CMake 根据 CMakeLists.txt 生成的 CMakeCache.txt,从中获得项目构成,编译连接选项等,从而替代解决方案。

    我们在项目中使用的情况是,在 Linux 下使用 make,在 Windows 下使用 nmake。

    CMake 常用指令

    Generate a Project Buildsystem cmake [<options>] <path-to-source> cmake [<options>] <path-to-existing-build> cmake [<options>] -S <path-to-source> -B <path-to-build>Build a Project cmake --build <dir> [<options>] [-- <build-tool-options>]Install a Project cmake --install <dir> [<options>]Open a Project cmake --open <dir>Run a Script cmake [{-D <var>=<value>}...] -P <cmake-script-file>Run a Command-Line Tool cmake -E <command> [<options>]Run the Find-Package Tool cmake --find-package [<options>]View Help cmake --help[-<topic>]

    这些其实用不太到,构建别人的项目只使用简单的cmake ..就好啦。

    其他常用的 CLion 都有相应的图形化设置。

    Makefile

    <TargetName>:    gcc <arg1> <arg2> ... <file>    g++ <arg1> <arg2> ... <file>    gcc <arg1> <arg2> ... <file>

    这个是传统的 makefile,事实上,对于大型项目,已经很少有人这么写了,详细参考Autotools

    CMakeLists.txt

    cmake_minimum_required(VERSION 3.16)project(Demo)set(CMAKE_CXX_STANDARD 14)find_package(Poco REQUIRED COMPONENTS Foundation)include_directories(include)add_executable(Demo src/main.cpp)set(BUILD_SHARED_LIBS true)add_library(Cal src/cal.cpp include/cal.h)message(STATUS ${Poco_LIBRARIES})target_link_libraries(Demo ${Poco_LIBRARIES} Cal)set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin/)set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib/)

    这个是一个简单的 Demo,链接外部的 Poco 库,还编译生成了一个动态库和一个可执行文件,然后指定了输出目录。

    整体难度中等,主要原因是官网文档有一点看不懂😢。

    Vcpkg

    这个是微软开发的,类似于 Python 的 pip,Nodejs 的 npm,总而言之就是个依赖包管理器。主要适用于解决开发依赖问题。

    比如安装一个 poco,原来你需要下载源码->编译源码->把文件放进项目->修改编译链接选项,然后才能用,现在你只需要

    vcpkg install poco

    然后在 CMakeLists.txt 里面添加

    find_package(Poco REQUIRED COMPONENTS Foundation)

    然后再连接上 Target 就好啦。

    Vcpkg 甚至还允许你使用

    vcpkg install poco:x64-windows

    直接安装 64 位的 Poco 库。

    至于搜索和卸载都大同小异。

    但是,它有一个致命问题是,不支持版本管理,每个库都是由一个文件指定的,而不是像 pip,npm 之类的,有个在线仓库,所以,你 vcpkg 的版本直接决定了依赖的版本。

    vcpkg 安装依赖都是下载后现编译安装的,不过这个应该是 C/Cpp 项目不可避免的,我也没找到 Windows 下更好的依赖包管理器。

    Poco

    这个类似于野生 C++标准类库Boost,但是官网说很轻量,使用感觉也确实是这样。但是用起来总感觉有一些问题,我也提了 issue,作者也没回我,可能太忙了吧。

    基本上能够让 Cpp 在使用上达到 Java 的水平吧,但是肯定还是有一定的差距的,跟我熟悉的 Python 更是相差甚远,毕竟不是标准库,也情有可原吧。

    用了一段时间之后,感觉这个库的实现还是很标准的,看了一些源代码,也很规范,以后再有 Cpp 的项目可以着重考虑一下了。

    Linux

    因为跨平台,在项目开发过程中大量使用了 Linux 上 shell,systemctl,docker 这些工具以及 CFEngine, Zabbix 这些运维的东西,感觉又喜欢上了 Linux 和命令行,熟悉了之后真是很方便。

    同时因为是 C/Cpp 项目,我们编译了很多开源项目,算是终于知道了 Linux 根目录下面每个目录都是干啥的。

    Linux 下的包管理器比如 apt,yum 用起来也很爽。所以我也看了看 Windows 下面的包管理器,发现了 Scoop 这个神器,在另外一篇博文里介绍了它。

    MSYS2

    因为快离职的时候,新的需求要交叉编译 CFEngine(虽然到离职也没搞成功),但是让我发现了 MSYS2 这个交叉编译神器。

    MinGW 是在 Windows 平台的GCC,而 CygWin 和 MSYS2 均是在 MinGW 基础上的POSIX子操作系统(概念类似于微软 WSL)。
    CygWin、Msys、MinGW、Msys2 的区别与联系

    选择 MSYS2 而不是 MinGW 也不是 CygWin 的主要原因也是因为 MSYS2 的包管理器 pacman。

    交叉编译也是个大坑,巨坑无比,反正我也没研究明白,七八个可执行文件就编译出来一个。

    感谢

    感谢所有在实习中帮助过我的老师,同事们❤️。

    ]]>
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    前言

    到了期末都说要找个实习的工作,我也跟个风😂。

    我是主要是在实习僧上找的(就当免费做个广告吧),我住在美丽的泉城济南,这个地方好就好在,咳咳咳,我大概填了填简历,可能是没啥亮点,投了三四家都不要我😢。

    我分析原因大概有以下几条:

    1. 我最喜欢最熟练的语言是 Python,但是现在国内的环境,Python 很少作为 Web 的后端,主要是用在机器学习(大数据分析,量化交易之类的)方面。济南大多数都是 Java 和 Cpp 岗。
    2. 我个人没有参加过 acm 之类的比赛,除了几个项目没法有效证明我的能力。
    3. 我这个寒假只能干 2 个月,其实最终只干了一个半月
    4. 我是个大三的学生。可能培养了对于公司来说也没啥意义吧。

    最后还是十分感谢秦老师❤️,不但收了我到浪潮实习,还在实习过程中给了我很多帮助和指导。

    下面列一列我学习了解的项目工具之类的。

    CppMicroServices

    我们主要做了一个插件管理器,是基于 CppMicroServices 的二次开发。这是一个 Cpp 的微服务框架,主要实现了 Bundle 的全生命周期管理,注册,启动,停止,状态管理等。

    CLion

    大爱 Jetbrains 全家桶,我实习的第一件事大概就是给组里所有人安利了 CLion 吧。与宇宙第一 IDE Visual Studio 相比最突出的优点有

    1. 精美的全功能编辑器。不是我吐槽,VS 的编辑器为了向下兼容现在甚至已经落后 VSCode 了,这还是曾经的宇宙第一 IDE 嘛。举一个简单的例子,连字功能连个开关都找不到,重启 VS 没成功,重启电脑就成功了?再加上没有拼写检查?没有自动注释补全?没有缺陷提示?你可能觉得没什么,但是这些都是 CLion 的自带功能啊。
    2. 丰富完善的插件生态。虽然感觉比不上 VSCode,但是相对于 VS,😄。
    3. CMake 项目的原生支持。VS 虽然也有,但是感觉应该还处在开发状态。
    4. SVN & Git 的原生支持。
    5. 远程开发功能。因为我们要求项目有跨平台能力,所以需要在多个平台切换。VS 虽然也有这个功能,但是也是感觉在开发状态,相比 CLion 少了很多配置的灵活性。
    6. 丰富的主题。VS 硬伤。

    综上所述,对于 Cpp 的 CMake 跨平台项目,还是推荐使用 CLion 作为 IDE。

    我猜测 Visual Studio 是宇宙第一 IDE 应该说的是对于 C# 项目吧。

    CMake

    以前的 C/Cpp 项目对我来说就是个谜,解决方案、项目傻傻分不清楚,Visual Studio 写单文件程序,解算法题还是很溜的,但是两个文件以上就很晕。

    傻瓜式的配置的优点和确定都是非常显著的,好用是好用,用好是真的难。

    CMake 作为这几年流行的跨平台构建工具,实现了配置式构建,终于让我理解了大学里 Linux 老师讲的程序编译链接都是些啥。

    下面我简单写一写 CMake 的入门知识。

    常见编译器

    PlatformWindowsLinux
    GNU(open source)MinGW, MinGW-w64GCC(GNU Compiler Collection)
    OtherClang(Apple), MSVC(Microsoft), ICC(Intel) etc.Clang(Apple), ICC(Intel) etc.

    上面这些编译器都可以作为 CMake 的编译器。

    这里主要还是推荐 GCC,毕竟老牌,经过这么多年的洗礼了。

    其次的话推荐 CLang,这些年对于新特性,特别是 C++20,支持的不错。

    再次就是如果真的需要 Windows 原生底层支持,那就只能使用 MSVC 啦。

    常见构建工具

    PlatformWindowsLinux
    GNU(open source)MinGW-make(Makefile)make(Makefile)
    Othernmake(Makefile), MSBuild(.vcxproj), ninja(.ninja), qmake etc.ninja(.ninja), qmake etc.
    SolutionVisual Studio(.sln), QT(.project)XCode, QT(.project)

    以上所有都可以作为 CMake 的 Generator。

    IDE 可以识别 CMake 根据 CMakeLists.txt 生成的 CMakeCache.txt,从中获得项目构成,编译连接选项等,从而替代解决方案。

    我们在项目中使用的情况是,在 Linux 下使用 make,在 Windows 下使用 nmake。

    CMake 常用指令

    Generate a Project Buildsystem cmake [<options>] <path-to-source> cmake [<options>] <path-to-existing-build> cmake [<options>] -S <path-to-source> -B <path-to-build>Build a Project cmake --build <dir> [<options>] [-- <build-tool-options>]Install a Project cmake --install <dir> [<options>]Open a Project cmake --open <dir>Run a Script cmake [{-D <var>=<value>}...] -P <cmake-script-file>Run a Command-Line Tool cmake -E <command> [<options>]Run the Find-Package Tool cmake --find-package [<options>]View Help cmake --help[-<topic>]

    这些其实用不太到,构建别人的项目只使用简单的cmake ..就好啦。

    其他常用的 CLion 都有相应的图形化设置。

    Makefile

    <TargetName>:    gcc <arg1> <arg2> ... <file>    g++ <arg1> <arg2> ... <file>    gcc <arg1> <arg2> ... <file>

    这个是传统的 makefile,事实上,对于大型项目,已经很少有人这么写了,详细参考Autotools

    CMakeLists.txt

    cmake_minimum_required(VERSION 3.16)project(Demo)set(CMAKE_CXX_STANDARD 14)find_package(Poco REQUIRED COMPONENTS Foundation)include_directories(include)add_executable(Demo src/main.cpp)set(BUILD_SHARED_LIBS true)add_library(Cal src/cal.cpp include/cal.h)message(STATUS ${Poco_LIBRARIES})target_link_libraries(Demo ${Poco_LIBRARIES} Cal)set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin/)set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib/)

    这个是一个简单的 Demo,链接外部的 Poco 库,还编译生成了一个动态库和一个可执行文件,然后指定了输出目录。

    整体难度中等,主要原因是官网文档有一点看不懂😢。

    Vcpkg

    这个是微软开发的,类似于 Python 的 pip,Nodejs 的 npm,总而言之就是个依赖包管理器。主要适用于解决开发依赖问题。

    比如安装一个 poco,原来你需要下载源码->编译源码->把文件放进项目->修改编译链接选项,然后才能用,现在你只需要

    vcpkg install poco

    然后在 CMakeLists.txt 里面添加

    find_package(Poco REQUIRED COMPONENTS Foundation)

    然后再连接上 Target 就好啦。

    Vcpkg 甚至还允许你使用

    vcpkg install poco:x64-windows

    直接安装 64 位的 Poco 库。

    至于搜索和卸载都大同小异。

    但是,它有一个致命问题是,不支持版本管理,每个库都是由一个文件指定的,而不是像 pip,npm 之类的,有个在线仓库,所以,你 vcpkg 的版本直接决定了依赖的版本。

    vcpkg 安装依赖都是下载后现编译安装的,不过这个应该是 C/Cpp 项目不可避免的,我也没找到 Windows 下更好的依赖包管理器。

    Poco

    这个类似于野生 C++标准类库Boost,但是官网说很轻量,使用感觉也确实是这样。但是用起来总感觉有一些问题,我也提了 issue,作者也没回我,可能太忙了吧。

    基本上能够让 Cpp 在使用上达到 Java 的水平吧,但是肯定还是有一定的差距的,跟我熟悉的 Python 更是相差甚远,毕竟不是标准库,也情有可原吧。

    用了一段时间之后,感觉这个库的实现还是很标准的,看了一些源代码,也很规范,以后再有 Cpp 的项目可以着重考虑一下了。

    Linux

    因为跨平台,在项目开发过程中大量使用了 Linux 上 shell,systemctl,docker 这些工具以及 CFEngine, Zabbix 这些运维的东西,感觉又喜欢上了 Linux 和命令行,熟悉了之后真是很方便。

    同时因为是 C/Cpp 项目,我们编译了很多开源项目,算是终于知道了 Linux 根目录下面每个目录都是干啥的。

    Linux 下的包管理器比如 apt,yum 用起来也很爽。所以我也看了看 Windows 下面的包管理器,发现了 Scoop 这个神器,在另外一篇博文里介绍了它。

    MSYS2

    因为快离职的时候,新的需求要交叉编译 CFEngine(虽然到离职也没搞成功),但是让我发现了 MSYS2 这个交叉编译神器。

    MinGW 是在 Windows 平台的GCC,而 CygWin 和 MSYS2 均是在 MinGW 基础上的POSIX子操作系统(概念类似于微软 WSL)。
    CygWin、Msys、MinGW、Msys2 的区别与联系

    选择 MSYS2 而不是 MinGW 也不是 CygWin 的主要原因也是因为 MSYS2 的包管理器 pacman。

    交叉编译也是个大坑,巨坑无比,反正我也没研究明白,七八个可执行文件就编译出来一个。

    感谢

    感谢所有在实习中帮助过我的老师,同事们❤️。

    ]]>
    @@ -199,7 +199,7 @@ /anu-comp2310-assignment1/ -

    敬告

    本博客请供参考,请不要抄袭。

    前言

    这是 ANU COMP2310的第一次大作业,历时一个月左右,也是这个学期我写的最认真的一次作业,所以在博客搭建伊始,我先把这个记录下来。

    问题

    根据Assignment 1 PDF中的描述,大概的意思就是在三维空间中有许多的,具有速度和加速度(都是三维向量),而且不管是否加速,都会消耗一定的能量,当然加速也会加快能量的消耗。然后就是有一个或多个能量球,当然也是在运动中的,同样具有速度和加速度。当能量球靠近的时候,能够获取到能量球的信息(加速度,速度,位置),并且加满能量,而当靠近的时候,能够互相交换一次信息,这个信息的内容是自己定义的。在能量耗尽后就消失了,而我们需要做的就是在一定的时间内,保证尽可能多的存活。

    分析

    其实这个问题最关键的地方在于,没有一个中央的控制节点,也就是说对于每一个来说都是完全平等且独立的。所以我们需要他们能够尽可能的一直处在能够交流的状态,并且都能知道能量球在哪里。

    注意
    这个问题在没有中央控制时不存在最优解,我们只能无线接近最优解。
    我采用的是球形模型,这个模型参考于这次作业的 Examples
    在和我的同学互相交流时,这个模型是最普遍的,解决方案是最多的,效果也是相对最好的。

    3D球形模型

    2D球形模型

    球形模型设计的两大重点是:

    1. 所有的都均匀平等地分布在球面上(球面是个相对概念,可以是球壳???)。
    2. 所有的都能随时交流,也就是说大家形成一个通讯网络。

    实现

    注意
    所有的 Ada 代码都是示意性的,有可能不能直接在项目中使用。

    Stage A&B

    这个阶段中,能量球只有一个,我们让所有的都围绕这个能量球运动来实现一个基本的球形模型。

    基本程序结构(Basic Program Structure)

    程序基本的结构是一个死循环,每次循环分为 4 个步骤:

    1. 判断能量球信息
    2. 发送信息
    3. 接受信息
    4. 设置目的地和油门

    消息结构(Message Structure)

    最基础的消息需要包括:

    1. 能量球的信息
    2. 获得能量球信息的时间戳

    中央控制(Central Control)

    允许中央控制是 Stage 1 中的条件,我在作业中跳过了这一部分,因为

    1. 在允许中央控制时,该问题存在最优解,该最优解应该是一个数学问题,对我来说难度过大。
    2. 后面的 Stage 2,3,4 均不允许中央控制。

    能量球位置估计(Energy Globe Position Estimation)

    能量球位置估计

    这个问题类似于一个追击问题(红球是一个匀速导弹,蓝球是拦截导弹),我们需要求的是预计追击时间$T_e$。

    能量球到追击点$P_m$,两个坐标相同,所以,

    $$
    P_m=VeT_{total}+P_e
    $$

    易得总时间,

    $$
    T_{total}=T_f-T_n+T_e
    $$

    通过边相等得,

    $$
    P_e+(T_f-T_n+T_e)V_e=V_vT_e+\frac{1}{2}A_vT_e^2+P_v
    $$

    即可解出$T_e$。

    注意
    存在无法追击的情况,即($\Delta<0$),因为我们这里是严格的计算,实际上整个追击过程只有 1-2 秒,并且在不断地更新能量球的信息,所以预计的那一段时间$T_e$通常可以忽略不计。但是在可以计算时,能够提供更加准确的预计到达时间,从而让能够更加精准的决策何时去充电。

    充电决策(Charge Determination)

    当同时满足以下两个条件时:

    1. 知道能量球的信息
    2. 的预计剩余能量小于等于警戒能量

    预计剩余能量:

    Left_Charge := Current_Charge - Current_Discharge_Per_Sec * Estimated_Time;

    半径决策(Radius Determination)

    半径决策

    半径向量:

    Radius_Vector := Radius_Distance * Norm (Position - Vehicle_Message.EG.Position);

    的位置:

    Destination := Vehicle_Message.EG.Position + Radius_Vector;

    其中有些变量的值或初始值是由经验确定的

    1. Radius_Distance的值是0.3,是因为多次实验发现在 64 个,128 个,256 个的情况下0.3表现均衡。
    2. Destination的初始值是(0, 0, 0),这样能够避免一开始时四散,导致失去联系,不能构成球形。

    使用当前能量优化半径(Radius Optimization With Current Charge)

    使用当前能量优化半径

    Radius_Vector = (0.75 + 0.25 * Current_Charge) * Radius_Vector;

    0.750.25都是人为确定的,没什么依据😄。

    一个解决碰撞的机制(A Solution To Collision)

    注意
    这个机制未经过控制变量实验验证,只是理论上分析得到的。

    一个解决碰撞的机制

    因为离的足够近时会发生碰撞,表现为大家都减速不动。所以当一个从外层到能量球去加油时,周围的减速会一定程度的减少碰撞的发生。

    实现时,需要在消息结构中添加Vehicle_Charge来判断谁的能量更低。

    Stage C

    这个阶段中,能量球有两个或更多。我们遇到的新问题有:

    1. 如何决策去围绕哪一个能量球运动
    2. 如何自适应球形模型大小的变化

    多个能量球决策(Multiple Energy Globes Decision)

    当有多个能量球时(能量球还有可能凭空消失),每个都要独立的选择其中一个作为他所在球形模型的球心,而且这个过程时动态的。

    我们分两种情况去讨论这个问题:

    1. 发现了两个以上能量球

    这种情况比较简单,我们只需要从中选择最近的哪一个即可。距离公式如下:

    distance := EG.Position + (Clock - EG_Find_Time) * EG.Velocity - Vehicle_Position
    2. 从别的获得的信息中有新的能量球

    这种情况实际上是非常复杂的,因为存在一种情况:两个说的时同一个能量球,但是不是同时发现的,很难判断是否是同一个能量球

    我们可以使用时间戳来判断获得更新的能量球。但是这个更新不能以时间戳作为唯一判据,因为存在一种情况,车A知道一个旧的能量球,但是发现的时间已经过去很久了,车B发现一个新的能量球,从远处靠近车A,时,两车交换信息,该如何选择呢?

    所以,我又加入了一个失效时间,来解决上述问题。

    Clock - Vehicle_Message.EG_Update_Time > Vehicle_Message_Expire_Time

    当上述条件为真时,才会选择更新的信息。

    使用旋转优化(Optimization With Rotation)

    旋转半径

    旋转轴

    2D旋转半径

    3D旋转

    相对于静态的在球面等待,动态的在球面旋转在实验中取得了更稳定的表现。

    注意
    这个优化措施可能无效,我的同学们对这个优化反应褒贬不一,但是我觉得确实让这个模型更好看啦😄

    旋转半径向量与旋转轴垂直:

    $$
    X_rX_a+Y_rY_a+Z_rZ_a=0
    $$

    易得无数个解,但是为了尽量让两个不会面对面相撞(随机赋值的话),这里手动赋值$X_a$和$Y_a$为$1$,求得唯一解。

    自动半径适应(Automatic Radius Adaptation)

    通讯环

    通讯环内

    通讯环外

    我们在 Stage A&B 中的半径是手动设置的,但是在 Stage C 中,每个球星模型的的数量是动态的,如果半径不跟随数量变化,那么就有可能丢失通讯。

    在理想的球星模型中,我们可以发现一个通讯环,在通讯环中的所有都是互联的,并且中心的能量球很难突破这层环。在进出通讯环时,我们可以通过当时的位置,动态修正半径大小。

    我们分三种情况讨论该模型:

    1. 半径过大,此时会有更多的进到通讯环以内,从而使得半径变小。
    2. 半径国小,此时会有更多的进到通讯环以外,从而使得半径变大。
    3. 半径正好,进到通讯环以内的和进到通讯环以外的大致是相同的,所以半径会稳定在某一个数值。

    在自动修正半径时,我们需要一个学习率参数Track_Correction_Rate,来确保不会因为充能量的不确定性而使得半径不稳定。

    要实现该模型,我们还需要存在一个弹出通讯环的效果,即能量球加完能量后,弹出到通讯环外。实现如下,

    Actual_Radius_Vector := 1.5 * Rotated_Radius_Vector;

    Stage D

    最后一个阶段,要求之间随机协商出一定数量的存活,剩下的自主“死亡“,比如一开始是 64 个,最终要求剩下 42 个。

    这个问题最简单的解决方案是直接从 1 开始分配编号,按照编号顺序“死亡”就好啦,但是我觉得这个方案无法体现随机

    通过分析,这个类似于现在大火的区块链中最重要的一个问题,即分布式节点如何达成共识,解决方案也是一样的:共识算法。

    推荐观看李永乐老师:拜占庭将军问题是什么?区块链如何防范恶意节点?

    共识算法(Consensus Algorithm)[1]

    在这里我们仅利用共识算法的思想(不解决恶意节点问题),利用时间戳达成共识。

    的通讯过程中,我们约定以下原则:

    1. 在消息中添加三个字段:Vehicle_No数组,Target_No_of_Elements数组长度和Vehicle_List_Update_Time上一次更新时间。
    2. 所有的一直都能接受和发送信息。
    3. 在最开始,所有的都把自己的编号放到数组的第一个位置。
    4. 如果接收到的信息与自身存储的信息不同(数组长度不同,或者上一次更新时间不同),那么按照下面的规则确定保留哪个
      保留数组更长的那个
      选择上一次更新时间更早的那个
    5. 检查自己的编号是否在Vehicle_No数组中,若不在并且仍有空间,那么就把自己的编号加进去。
    6. 在上一次更新时间又Confirm_Time_Interval秒后,如果数组已满并且自己的编号不在里面,那么该就不能再去加能量了。

    经过实验,在 64 个,缩减到 42 个的情况下,Confirm_Time_Interval设置为 1 秒就可以满足要求。

    结果[2]

    截图

    截图

    Stage A&B(Single_Globe_In_Orbit)

    Initial NumberTarget NumberDurationTest timesAverage ResultSurvival RateAverage Frame Rate
    32325 min531.80.9937530 Hz
    64645 min563.40.99062528 Hz
    1281285 min5126.80.99062520 Hz
    2562565 min52330.9101569 Hz

    Stage A&B

    Stage C(Random_Globes_In_Orbits)

    Initial NumberTarget NumberDurationTest timesAverage ResultSurvival RateAverage Frame Rate
    32325 min526.80.837530 Hz
    64645 min560.20.94062528 Hz
    1281285 min5109.20.85312520 Hz
    2562565 min5208.20.8132819 Hz

    Stage C

    Stage D(Random_Globes_In_Orbits)

    Initial NumberTarget NumberDurationTest timesAverage ResultSurvival RateAverage Frame Rate
    32425 min5240.57142930 Hz
    64425 min537.40.89047628 Hz
    1281005 min583.40.83420 Hz
    2561505 min51330.8866679 Hz

    Stage D

    感谢

    感谢所有在作业中帮助过我的同学,辅导员和老师❤️。


    1. 共识算法:https://en.wikipedia.org/wiki/Consensus_decision-making ↩︎

    2. 测试平台: 笔记本 Intel I7 处理器 @ 3.43GHz,16GB 内存。因为我是用 Python 编写测试脚本,通过识别当前程序线程数量来判断的数量的,所以测试结果可能不准确。 ↩︎

    ]]>
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    敬告

    本博客请供参考,请不要抄袭。

    前言

    这是 ANU COMP2310的第一次大作业,历时一个月左右,也是这个学期我写的最认真的一次作业,所以在博客搭建伊始,我先把这个记录下来。

    问题

    根据Assignment 1 PDF中的描述,大概的意思就是在三维空间中有许多的,具有速度和加速度(都是三维向量),而且不管是否加速,都会消耗一定的能量,当然加速也会加快能量的消耗。然后就是有一个或多个能量球,当然也是在运动中的,同样具有速度和加速度。当能量球靠近的时候,能够获取到能量球的信息(加速度,速度,位置),并且加满能量,而当靠近的时候,能够互相交换一次信息,这个信息的内容是自己定义的。在能量耗尽后就消失了,而我们需要做的就是在一定的时间内,保证尽可能多的存活。

    分析

    其实这个问题最关键的地方在于,没有一个中央的控制节点,也就是说对于每一个来说都是完全平等且独立的。所以我们需要他们能够尽可能的一直处在能够交流的状态,并且都能知道能量球在哪里。

    注意
    这个问题在没有中央控制时不存在最优解,我们只能无线接近最优解。
    我采用的是球形模型,这个模型参考于这次作业的 Examples
    在和我的同学互相交流时,这个模型是最普遍的,解决方案是最多的,效果也是相对最好的。

    3D球形模型

    2D球形模型

    球形模型设计的两大重点是:

    1. 所有的都均匀平等地分布在球面上(球面是个相对概念,可以是球壳???)。
    2. 所有的都能随时交流,也就是说大家形成一个通讯网络。

    实现

    注意
    所有的 Ada 代码都是示意性的,有可能不能直接在项目中使用。

    Stage A&B

    这个阶段中,能量球只有一个,我们让所有的都围绕这个能量球运动来实现一个基本的球形模型。

    基本程序结构(Basic Program Structure)

    程序基本的结构是一个死循环,每次循环分为 4 个步骤:

    1. 判断能量球信息
    2. 发送信息
    3. 接受信息
    4. 设置目的地和油门

    消息结构(Message Structure)

    最基础的消息需要包括:

    1. 能量球的信息
    2. 获得能量球信息的时间戳

    中央控制(Central Control)

    允许中央控制是 Stage 1 中的条件,我在作业中跳过了这一部分,因为

    1. 在允许中央控制时,该问题存在最优解,该最优解应该是一个数学问题,对我来说难度过大。
    2. 后面的 Stage 2,3,4 均不允许中央控制。

    能量球位置估计(Energy Globe Position Estimation)

    能量球位置估计

    这个问题类似于一个追击问题(红球是一个匀速导弹,蓝球是拦截导弹),我们需要求的是预计追击时间$T_e$。

    能量球到追击点$P_m$,两个坐标相同,所以,

    $$
    P_m=VeT_{total}+P_e
    $$

    易得总时间,

    $$
    T_{total}=T_f-T_n+T_e
    $$

    通过边相等得,

    $$
    P_e+(T_f-T_n+T_e)V_e=V_vT_e+\frac{1}{2}A_vT_e^2+P_v
    $$

    即可解出$T_e$。

    注意
    存在无法追击的情况,即($\Delta<0$),因为我们这里是严格的计算,实际上整个追击过程只有 1-2 秒,并且在不断地更新能量球的信息,所以预计的那一段时间$T_e$通常可以忽略不计。但是在可以计算时,能够提供更加准确的预计到达时间,从而让能够更加精准的决策何时去充电。

    充电决策(Charge Determination)

    当同时满足以下两个条件时:

    1. 知道能量球的信息
    2. 的预计剩余能量小于等于警戒能量

    预计剩余能量:

    Left_Charge := Current_Charge - Current_Discharge_Per_Sec * Estimated_Time;

    半径决策(Radius Determination)

    半径决策

    半径向量:

    Radius_Vector := Radius_Distance * Norm (Position - Vehicle_Message.EG.Position);

    的位置:

    Destination := Vehicle_Message.EG.Position + Radius_Vector;

    其中有些变量的值或初始值是由经验确定的

    1. Radius_Distance的值是0.3,是因为多次实验发现在 64 个,128 个,256 个的情况下0.3表现均衡。
    2. Destination的初始值是(0, 0, 0),这样能够避免一开始时四散,导致失去联系,不能构成球形。

    使用当前能量优化半径(Radius Optimization With Current Charge)

    使用当前能量优化半径

    Radius_Vector = (0.75 + 0.25 * Current_Charge) * Radius_Vector;

    0.750.25都是人为确定的,没什么依据😄。

    一个解决碰撞的机制(A Solution To Collision)

    注意
    这个机制未经过控制变量实验验证,只是理论上分析得到的。

    一个解决碰撞的机制

    因为离的足够近时会发生碰撞,表现为大家都减速不动。所以当一个从外层到能量球去加油时,周围的减速会一定程度的减少碰撞的发生。

    实现时,需要在消息结构中添加Vehicle_Charge来判断谁的能量更低。

    Stage C

    这个阶段中,能量球有两个或更多。我们遇到的新问题有:

    1. 如何决策去围绕哪一个能量球运动
    2. 如何自适应球形模型大小的变化

    多个能量球决策(Multiple Energy Globes Decision)

    当有多个能量球时(能量球还有可能凭空消失),每个都要独立的选择其中一个作为他所在球形模型的球心,而且这个过程时动态的。

    我们分两种情况去讨论这个问题:

    1. 发现了两个以上能量球

    这种情况比较简单,我们只需要从中选择最近的哪一个即可。距离公式如下:

    distance := EG.Position + (Clock - EG_Find_Time) * EG.Velocity - Vehicle_Position
    2. 从别的获得的信息中有新的能量球

    这种情况实际上是非常复杂的,因为存在一种情况:两个说的时同一个能量球,但是不是同时发现的,很难判断是否是同一个能量球

    我们可以使用时间戳来判断获得更新的能量球。但是这个更新不能以时间戳作为唯一判据,因为存在一种情况,车A知道一个旧的能量球,但是发现的时间已经过去很久了,车B发现一个新的能量球,从远处靠近车A,时,两车交换信息,该如何选择呢?

    所以,我又加入了一个失效时间,来解决上述问题。

    Clock - Vehicle_Message.EG_Update_Time > Vehicle_Message_Expire_Time

    当上述条件为真时,才会选择更新的信息。

    使用旋转优化(Optimization With Rotation)

    旋转半径

    旋转轴

    2D旋转半径

    3D旋转

    相对于静态的在球面等待,动态的在球面旋转在实验中取得了更稳定的表现。

    注意
    这个优化措施可能无效,我的同学们对这个优化反应褒贬不一,但是我觉得确实让这个模型更好看啦😄

    旋转半径向量与旋转轴垂直:

    $$
    X_rX_a+Y_rY_a+Z_rZ_a=0
    $$

    易得无数个解,但是为了尽量让两个不会面对面相撞(随机赋值的话),这里手动赋值$X_a$和$Y_a$为$1$,求得唯一解。

    自动半径适应(Automatic Radius Adaptation)

    通讯环

    通讯环内

    通讯环外

    我们在 Stage A&B 中的半径是手动设置的,但是在 Stage C 中,每个球星模型的的数量是动态的,如果半径不跟随数量变化,那么就有可能丢失通讯。

    在理想的球星模型中,我们可以发现一个通讯环,在通讯环中的所有都是互联的,并且中心的能量球很难突破这层环。在进出通讯环时,我们可以通过当时的位置,动态修正半径大小。

    我们分三种情况讨论该模型:

    1. 半径过大,此时会有更多的进到通讯环以内,从而使得半径变小。
    2. 半径国小,此时会有更多的进到通讯环以外,从而使得半径变大。
    3. 半径正好,进到通讯环以内的和进到通讯环以外的大致是相同的,所以半径会稳定在某一个数值。

    在自动修正半径时,我们需要一个学习率参数Track_Correction_Rate,来确保不会因为充能量的不确定性而使得半径不稳定。

    要实现该模型,我们还需要存在一个弹出通讯环的效果,即能量球加完能量后,弹出到通讯环外。实现如下,

    Actual_Radius_Vector := 1.5 * Rotated_Radius_Vector;

    Stage D

    最后一个阶段,要求之间随机协商出一定数量的存活,剩下的自主“死亡“,比如一开始是 64 个,最终要求剩下 42 个。

    这个问题最简单的解决方案是直接从 1 开始分配编号,按照编号顺序“死亡”就好啦,但是我觉得这个方案无法体现随机

    通过分析,这个类似于现在大火的区块链中最重要的一个问题,即分布式节点如何达成共识,解决方案也是一样的:共识算法。

    推荐观看李永乐老师:拜占庭将军问题是什么?区块链如何防范恶意节点?

    共识算法(Consensus Algorithm)[1]

    在这里我们仅利用共识算法的思想(不解决恶意节点问题),利用时间戳达成共识。

    的通讯过程中,我们约定以下原则:

    1. 在消息中添加三个字段:Vehicle_No数组,Target_No_of_Elements数组长度和Vehicle_List_Update_Time上一次更新时间。
    2. 所有的一直都能接受和发送信息。
    3. 在最开始,所有的都把自己的编号放到数组的第一个位置。
    4. 如果接收到的信息与自身存储的信息不同(数组长度不同,或者上一次更新时间不同),那么按照下面的规则确定保留哪个
      保留数组更长的那个
      选择上一次更新时间更早的那个
    5. 检查自己的编号是否在Vehicle_No数组中,若不在并且仍有空间,那么就把自己的编号加进去。
    6. 在上一次更新时间又Confirm_Time_Interval秒后,如果数组已满并且自己的编号不在里面,那么该就不能再去加能量了。

    经过实验,在 64 个,缩减到 42 个的情况下,Confirm_Time_Interval设置为 1 秒就可以满足要求。

    结果[2]

    截图

    截图

    Stage A&B(Single_Globe_In_Orbit)

    Initial NumberTarget NumberDurationTest timesAverage ResultSurvival RateAverage Frame Rate
    32325 min531.80.9937530 Hz
    64645 min563.40.99062528 Hz
    1281285 min5126.80.99062520 Hz
    2562565 min52330.9101569 Hz

    Stage A&B

    Stage C(Random_Globes_In_Orbits)

    Initial NumberTarget NumberDurationTest timesAverage ResultSurvival RateAverage Frame Rate
    32325 min526.80.837530 Hz
    64645 min560.20.94062528 Hz
    1281285 min5109.20.85312520 Hz
    2562565 min5208.20.8132819 Hz

    Stage C

    Stage D(Random_Globes_In_Orbits)

    Initial NumberTarget NumberDurationTest timesAverage ResultSurvival RateAverage Frame Rate
    32425 min5240.57142930 Hz
    64425 min537.40.89047628 Hz
    1281005 min583.40.83420 Hz
    2561505 min51330.8866679 Hz

    Stage D

    感谢

    感谢所有在作业中帮助过我的同学,辅导员和老师❤️。


    1. 共识算法:https://en.wikipedia.org/wiki/Consensus_decision-making ↩︎

    2. 测试平台: 笔记本 Intel I7 处理器 @ 3.43GHz,16GB 内存。因为我是用 Python 编写测试脚本,通过识别当前程序线程数量来判断的数量的,所以测试结果可能不准确。 ↩︎

    ]]>
    @@ -226,7 +226,7 @@ /hello-world/ - 哈哈哈,这是一个经典的测试页面。

    一直以来都想拥有一个自己的博客,从WordPress开始,到Typecho,再到Halo,甚至中途尝试用 Django 自己实现了一个(不过样子也太丑了),虽然说一直在捣鼓博客,但是从来都是安装=>部署=>安装插件=>选择主题=>发布第一篇文章,然后就没有然后了。

    今天我突然看到HexoObsidian主题,我觉得时机到了,毕竟颜值是第一生产力。

    给自己列一个简单的 TODO LIST 吧。

    • 完善 BLOG
    • COMP2310 作业整理
    • 浪潮实习
    • 终端与 WSL

    希望这个寒假能做完这些吧。

    就这样。

    ]]>
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    哈哈哈,这是一个经典的测试页面。

    一直以来都想拥有一个自己的博客,从WordPress开始,到Typecho,再到Halo,甚至中途尝试用 Django 自己实现了一个(不过样子也太丑了),虽然说一直在捣鼓博客,但是从来都是安装=>部署=>安装插件=>选择主题=>发布第一篇文章,然后就没有然后了。

    今天我突然看到HexoObsidian主题,我觉得时机到了,毕竟颜值是第一生产力。

    给自己列一个简单的 TODO LIST 吧。

    • 完善 BLOG
    • COMP2310 作业整理
    • 浪潮实习
    • 终端与 WSL

    希望这个寒假能做完这些吧。

    就这样。

    ]]>
    diff --git a/tags/ANU/index.html b/tags/ANU/index.html index 103eee0..247aa77 100644 --- a/tags/ANU/index.html +++ b/tags/ANU/index.html @@ -167,13 +167,16 @@
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    +
    +

    敬告

    本博客请供参考,请不要抄袭。

    这是 ANU COMP2310的第一次大作业,历时一个月左右,也是这个学期我写的最认真的一次作业,所以在博客搭建伊始,我先把这个记录下来。

    -

    根据Assignment 1 PDF中的描述,大概的意思就是在三维空间中有许多的,具有速度和加速度(都是三维向量),而且不管是否加速,都会消耗一定的能量,当然加速也会加快能量的消耗。然后就是有一个或多个能量球,当然也是在运动中的,同样具有速度和加速度。当能量球靠近的时候,能够获取到能量球的信息(加速度,速度,位置),并且加满能量,而当靠近的时候,能够互相交换一次信息,这个信息的内容是自己定义的。在...

    +

    根据Assignment 1 PDF中的描述,大概的意思就是在三维空间中有许多的,具有速度和加速度(都是三维向量),而且不管是否加速,都会消耗一定的能量,当然加速也会加快能量的消耗。然后就是有一个或多个能量球,当然也是在运动中的,同样具有速度和加速度。当能量球靠近的时候,能够获取到能量...

    查看全文 diff --git a/tags/Ada/index.html b/tags/Ada/index.html index d33b6dd..db43ccb 100644 --- a/tags/Ada/index.html +++ b/tags/Ada/index.html @@ -167,13 +167,16 @@
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    +
    +

    敬告

    本博客请供参考,请不要抄袭。

    这是 ANU COMP2310的第一次大作业,历时一个月左右,也是这个学期我写的最认真的一次作业,所以在博客搭建伊始,我先把这个记录下来。

    -

    根据Assignment 1 PDF中的描述,大概的意思就是在三维空间中有许多的,具有速度和加速度(都是三维向量),而且不管是否加速,都会消耗一定的能量,当然加速也会加快能量的消耗。然后就是有一个或多个能量球,当然也是在运动中的,同样具有速度和加速度。当能量球靠近的时候,能够获取到能量球的信息(加速度,速度,位置),并且加满能量,而当靠近的时候,能够互相交换一次信息,这个信息的内容是自己定义的。在...

    +

    根据Assignment 1 PDF中的描述,大概的意思就是在三维空间中有许多的,具有速度和加速度(都是三维向量),而且不管是否加速,都会消耗一定的能量,当然加速也会加快能量的消耗。然后就是有一个或多个能量球,当然也是在运动中的,同样具有速度和加速度。当能量球靠近的时候,能够获取到能量...

    查看全文 diff --git a/tags/Cpp/index.html b/tags/Cpp/index.html index 71edac5..c4b6223 100644 --- a/tags/Cpp/index.html +++ b/tags/Cpp/index.html @@ -149,7 +149,7 @@ 文章字数 - 8.5k + 8.8k @@ -166,15 +166,16 @@
    - +
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    +
    +

    到了期末都说要找个实习的工作,我也跟个风😂。

    我是主要是在实习僧上找的(就当免费做个广告吧),我住在美丽的泉城济南,这个地方好就好在,咳咳咳,我大概填了填简历,可能是没啥亮点,投了三四家都不要我😢。

    我分析原因大概有以下几条:

    1. 我最喜欢最熟练的语言是 Python,但是现在国内的环境,Python 很少作为 Web 的后端,主要是用在机器学习(大数据分析,量化交易之类的)方面。济南大多数都是 Java 和 Cpp 岗。
    2. -
    3. 我个人没有参加过 acm 之类的比赛,除了几个项目没法有效证明我的能力。
    4. -
    5. 我这个寒假只能干 2 个月,其实最终只干了一个半月
    6. -
    7. 我是个大三的学生。可能培养了对于公司来说也没...
    +
  • 我个人没有参加过 acm 之类的比赛,除了几个项目...
  • 查看全文 diff --git a/tags/Docker/index.html b/tags/Docker/index.html index 4bc71ab..036dccf 100644 --- a/tags/Docker/index.html +++ b/tags/Docker/index.html @@ -149,7 +149,7 @@ 文章字数 - 2.1k + 2.3k @@ -166,7 +166,10 @@
    - +
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    +
    +

    2020 年开年不顺,2019 新型冠状病毒肺炎爆发,从年三十居家隔离到了正月十五,没想到自己的服务器也”感染“上了病毒 - Kinsing(进程的名字,姑且这样称呼)。

    @@ -175,7 +178,7 @@

    这个随机名称的容器就是 Kinsing 基于 Ubuntu 的容器,CPU 占用 100%。

    -

    简单看了看容器里面的进程表,第一个运行了一个 shell 脚本,这个病毒就是这个脚本下载启动的关键,我打开看了看,也没看懂,大概是下载了几个可执行文件...

    +

    简单看了看容器里面的进程表,...

    查看全文 diff --git a/tags/Linux/index.html b/tags/Linux/index.html index f706682..e69075f 100644 --- a/tags/Linux/index.html +++ b/tags/Linux/index.html @@ -149,13 +149,13 @@ 文章字数 - 2.6k + 2.8k 阅读约需 - 2 mins. + 3 mins. @@ -166,12 +166,15 @@
    - +
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    +
    +

    闲来无聊,在家折腾 DevOps,第一步当然是部署一个 Jenkins 啦,然而一顿操作猛如虎,插件一个都下载不下来,总不能给 Jenkins 加个代理吧,所以有了下面这一通折腾。

    根据经验,国外这些软件下载失败基本上都是因为链接不上服务器,换个源就好了。所以简单百度,找到大量相关教程,换了清华源在内的四五个镜像源,均无效。

    -

    这就非常奇怪了,所以我打开了清华源的update-center.json,仔细看了看,发现了蹊跷之处。原来,这个文件里面基本上所有插件的链接都指向了官网链接http://updates.jenkins-ci.org/download/plugins/。所以我们使用https...

    +

    这就非常奇怪了,所以我打开了清华源的update-center.json,仔细看了看,发现了蹊跷之处。原来,这个文件里面基本上所有插件的链接都指...

    查看全文 @@ -215,7 +218,7 @@ 文章字数 - 2.1k + 2.3k @@ -232,16 +235,17 @@
    - +
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    +
    +

    2020 年开年不顺,2019 新型冠状病毒肺炎爆发,从年三十居家隔离到了正月十五,没想到自己的服务器也”感染“上了病毒 - Kinsing(进程的名字,姑且这样称呼)。

    偶然看了看服务器状态,发现 CPU 占用一直保持在 100%上下,有些蹊跷。

    难道是我的博客访问量暴增???那是当然不可能的,然后我去看了看Portainer看了看,果然,

    -

    这个随机名称的容器就是 Kinsing 基于 Ubuntu 的容器,CPU 占用 100%。

    -

    -

    简单看了看容器里面的进程表,第一个运行了一个 shell...

    +

    这个随机名称的容器就是 ...

    查看全文
    @@ -270,7 +274,7 @@ 文章字数 - 8.5k + 8.8k @@ -287,13 +291,15 @@
    - +
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    +
    +

    到了期末都说要找个实习的工作,我也跟个风😂。

    我是主要是在实习僧上找的(就当免费做个广告吧),我住在美丽的泉城济南,这个地方好就好在,咳咳咳,我大概填了填简历,可能是没啥亮点,投了三四家都不要我😢。

    我分析原因大概有以下几条:

      -
    1. 我最喜欢最熟练的语言是 Python,但是现在国内的环境,Python 很少作为 Web 的后端,主要是用在机器学习(大数据分析,量化交易之类的)方面。济南大多数都是 Java 和 Cpp 岗。
    2. -
    3. 我个人没有参加过 acm 之类的比赛,除了几个项目没法有效证明我的能力。...
    +
  • 我最喜欢最熟练的语言是 Python,但是现在国内的环境,Python 很少作为 Web 的后端,主要是用在机器学习(大数据分析,量化交易之类的)...
  • 查看全文
    diff --git a/tags/Markdown/index.html b/tags/Markdown/index.html index e428dc2..2d2a910 100644 --- a/tags/Markdown/index.html +++ b/tags/Markdown/index.html @@ -149,7 +149,7 @@ 文章字数 - 6.7k + 6.9k @@ -166,9 +166,12 @@
    - +
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    +
    +

    计算机这个专业,有很多报告要做。在山威的时候,报告格式没有什么限制 Word,PDF 都可以,那个时候我开始使用 Markdown 作为我的排版工具,因为实在是没有时间经历去研究 Word 的各种高级功能(主要是懒)。Markdown 十分简单,易学,在Github等计算机专业相关平台使用也非常广泛,还可以通过各种模板快速生成好看美观专业的文档。

    -

    后来到了澳国立,老师教授们开始极力鼓吹 Latex 和 PDF,基本上算是软性要求我们使用 Latex 编写,还规定了衬线字体,非衬线字体,字号,段落等等,图片还需要是 SVG 格式的矢量图片(最奇葩的是竟然一整节课只讲这个😂),最后生成 PDF...

    +

    后来到了澳国立,老师教授们开始极力鼓吹 Latex 和 PDF,基本上算是软性要求我们使用 Latex 编写,还规定了衬线...

    查看全文 diff --git a/tags/Open-Source/index.html b/tags/Open-Source/index.html index d00cf74..8a06e76 100644 --- a/tags/Open-Source/index.html +++ b/tags/Open-Source/index.html @@ -166,7 +166,10 @@
    - +
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    +
    +

    一直以来,作为开发者,Windows 相较于 Linux 都缺少两样重要的工具,

    1. 好用的 Shell - 现在可以用 PowerShell Core 或者 WSL 暂时代替。
    2. @@ -176,9 +179,7 @@

      按照官网的教程,只能使用 PowerShell 而不是 CMD 进行安装。

      -
      # 指定 Scoop 的安装路径,之后安装的 APP 会安装在 path/to/scoop/apps/
      -$env:SCOOP='path/to/scoop'
      -[environment]::setEnvironmentVariable...
      +
      # 指定 Scoop 的安装路径,之后安装的 APP 会安装在 path/to/scoop/apps...
      查看全文 @@ -239,16 +240,17 @@ $env:SCOOP='path/to/scoop'
      - +
      +

      原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

      +
      +

      记得我最早的时候用 Visual Studio 写了第一个 Hello World 程序,激动的点运行,出来个黑框一闪就过去了,啥也没看到。

      后来偶然了解 PowerShell,又变成了一个蓝色的框,还会有进度提示,红的,黑的,突兀得很😢。

      后来上了大学终于在 Ubuntu 上见到了 bash,完全改变了我对 Shell 的认知。

      -

      傻傻分不清 Shell 和 Terminal 的我,激动的打开 Git 自带的 bash,它却长成了这样。

      -

      -

      一番优化之后也不是不能用,后来还入坑了 Cmder...

      +

      傻傻分不清 Shell 和 Terminal...

      查看全文
      diff --git a/tags/Others/index.html b/tags/Others/index.html index c9ac1cc..10e9efb 100644 --- a/tags/Others/index.html +++ b/tags/Others/index.html @@ -149,7 +149,7 @@ 文章字数 - 1.2k + 1.4k @@ -166,19 +166,16 @@
      -

      哈哈哈,这是一个经典的测试页面。

      +
      +

      原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

      +
      +

      哈哈哈,这是一个经典的测试页面。

      一直以来都想拥有一个自己的博客,从WordPress开始,到Typecho,再到Halo,甚至中途尝试用 Django 自己实现了一个(不过样子也太丑了),虽然说一直在捣鼓博客,但是从来都是安装=>部署=>安装插件=>选择主题=>发布第一篇文章,然后就没有然后了。

      今天我突然看到HexoObsidian主题,我觉得时机到了,毕竟颜值是第一生产力。

      给自己列一个简单的 TODO LIST 吧。

      • 完善 BLOG
      • -
      • COMP2310 作业整理
      • -
      • 浪潮实习
      • -
      • 终端与 WSL
      • -
      -

      希望这个寒假能做完这些吧。

      -

      就这样。

      - +
    3. ...
    4. 查看全文 diff --git a/tags/Shell/index.html b/tags/Shell/index.html index 91ecc5a..e9cf5d8 100644 --- a/tags/Shell/index.html +++ b/tags/Shell/index.html @@ -149,7 +149,7 @@ 文章字数 - 2.1k + 2.3k @@ -166,7 +166,10 @@
      - +
      +

      原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

      +
      +

      2020 年开年不顺,2019 新型冠状病毒肺炎爆发,从年三十居家隔离到了正月十五,没想到自己的服务器也”感染“上了病毒 - Kinsing(进程的名字,姑且这样称呼)。

      @@ -175,7 +178,7 @@

      这个随机名称的容器就是 Kinsing 基于 Ubuntu 的容器,CPU 占用 100%。

      -

      简单看了看容器里面的进程表,第一个运行了一个 shell 脚本,这个病毒就是这个脚本下载启动的关键,我打开看了看,也没看懂,大概是下载了几个可执行文件...

      +

      简单看了看容器里面的进程表,...

      查看全文 diff --git a/tags/Terminal/index.html b/tags/Terminal/index.html index 5752034..d833d90 100644 --- a/tags/Terminal/index.html +++ b/tags/Terminal/index.html @@ -166,7 +166,10 @@
      - +
      +

      原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

      +
      +

      记得我最早的时候用 Visual Studio 写了第一个 Hello World 程序,激动的点运行,出来个黑框一闪就过去了,啥也没看到。

      @@ -175,8 +178,7 @@

      后来上了大学终于在 Ubuntu 上见到了 bash,完全改变了我对 Shell 的认知。

      傻傻分不清 Shell 和 Terminal 的我,激动的打开 Git 自带的 bash,它却长成了这样。

      -

      一番优化之后也不是不能用,后来还入坑了 Cmder,用于替代 Putty 那个更加原始的 terminal。

      -

      终于,2019 年微软开始进入开源世界...

      +

      一番优化之后也不是不能用,...

      查看全文 diff --git a/tags/Windows/index.html b/tags/Windows/index.html index 0731741..f1ce534 100644 --- a/tags/Windows/index.html +++ b/tags/Windows/index.html @@ -149,7 +149,7 @@ 文章字数 - 6.7k + 6.9k @@ -166,9 +166,12 @@
      - +
      +

      原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

      +
      +

      计算机这个专业,有很多报告要做。在山威的时候,报告格式没有什么限制 Word,PDF 都可以,那个时候我开始使用 Markdown 作为我的排版工具,因为实在是没有时间经历去研究 Word 的各种高级功能(主要是懒)。Markdown 十分简单,易学,在Github等计算机专业相关平台使用也非常广泛,还可以通过各种模板快速生成好看美观专业的文档。

      -

      后来到了澳国立,老师教授们开始极力鼓吹 Latex 和 PDF,基本上算是软性要求我们使用 Latex 编写,还规定了衬线字体,非衬线字体,字号,段落等等,图片还需要是 SVG 格式的矢量图片(最奇葩的是竟然一整节课只讲这个😂),最后生成 PDF...

      +

      后来到了澳国立,老师教授们开始极力鼓吹 Latex 和 PDF,基本上算是软性要求我们使用 Latex 编写,还规定了衬线...

      查看全文 @@ -212,13 +215,13 @@ 文章字数 - 6k + 6.2k 阅读约需 - 5 mins. + 6 mins. @@ -229,7 +232,10 @@
      - +
      +

      原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

      +
      +

      屋漏更遭连夜雨,船迟又遇打头风。

      @@ -238,8 +244,7 @@

      事发突然,因为影响我开发,所以也没有来得及截图。

      -

      为了使用 WSL2 里面的 Docker,我加入了 Windows 预览体验计划 - 慢,把系统升级到了 Windows 10 2004。结果怪事就出现了——基本上所有的命令行都会在执行前显示一个错误。

      -
      ANOMALY: use of REX.w is meaningless (default operand...
      +

      为了使用 WSL2 里面的 Docker,我加入了 Windows 预览体验计划 - 慢,把系统升级到了 Windows 10 2004。结果怪事就出现了——基本上所有的命令行都会在执行前...

      查看全文
      @@ -285,7 +290,10 @@
      - +
      +

      原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

      +
      +

      一直以来,作为开发者,Windows 相较于 Linux 都缺少两样重要的工具,

      1. 好用的 Shell - 现在可以用 PowerShell Core 或者 WSL 暂时代替。
      2. @@ -293,10 +301,7 @@
      -

      按照官网的教程,只能使用 PowerShell 而不是 CMD 进行安装。

      -
      -
      # 指定 Scoop 的安装路径,之后安装的 APP 会安装在 path/to/scoop/apps/
      -$env:SCOOP...
      +

      按照官网的教程,只能使用 PowerShell 而不是 CMD 进行安装。...

      查看全文
      @@ -342,16 +347,17 @@ $env:SCOOP...
      - +
      +

      原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

      +
      +

      记得我最早的时候用 Visual Studio 写了第一个 Hello World 程序,激动的点运行,出来个黑框一闪就过去了,啥也没看到。

      后来偶然了解 PowerShell,又变成了一个蓝色的框,还会有进度提示,红的,黑的,突兀得很😢。

      后来上了大学终于在 Ubuntu 上见到了 bash,完全改变了我对 Shell 的认知。

      -

      傻傻分不清 Shell 和 Terminal 的我,激动的打开 Git 自带的 bash,它却长成了这样。

      -

      -

      一番优化之后也不是不能用,后来还入坑了 Cmder...

      +

      傻傻分不清 Shell 和 Terminal...

      查看全文
      @@ -380,7 +386,7 @@ $env:SCOOP... 文章字数 - 8.5k + 8.8k @@ -397,13 +403,15 @@ $env:SCOOP...
      - +
      +

      原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

      +
      +

      到了期末都说要找个实习的工作,我也跟个风😂。

      我是主要是在实习僧上找的(就当免费做个广告吧),我住在美丽的泉城济南,这个地方好就好在,咳咳咳,我大概填了填简历,可能是没啥亮点,投了三四家都不要我😢。

      我分析原因大概有以下几条:

        -
      1. 我最喜欢最熟练的语言是 Python,但是现在国内的环境,Python 很少作为 Web 的后端,主要是用在机器学习(大数据分析,量化交易之类的)方面。济南大多数都是 Java 和 Cpp 岗。
      2. -
      3. 我个人没有参加过 acm 之类的比赛,除了几个项目没法有效证明我的能力。...
      +
    5. 我最喜欢最熟练的语言是 Python,但是现在国内的环境,Python 很少作为 Web 的后端,主要是用在机器学习(大数据分析,量化交易之类的)...
    查看全文
    diff --git a/windows-package-manager-scoop/index.html b/windows-package-manager-scoop/index.html index 93d2bb7..c0cd3e1 100644 --- a/windows-package-manager-scoop/index.html +++ b/windows-package-manager-scoop/index.html @@ -10,11 +10,11 @@ - +¶前言 +一直以来,作为开发者,Windows 相较于 Linux 都缺少两样,"> @@ -143,7 +143,10 @@
    -

    前言

    +
    +

    原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

    +
    +

    前言

    一直以来,作为开发者,Windows 相较于 Linux 都缺少两样重要的工具,

    1. 好用的 Shell - 现在可以用 PowerShell Core 或者 WSL 暂时代替。
    2. diff --git a/write-latex-report-with-markdown/index.html b/write-latex-report-with-markdown/index.html index e3aa386..3f40362 100644 --- a/write-latex-report-with-markdown/index.html +++ b/write-latex-report-with-markdown/index.html @@ -10,8 +10,11 @@ - + @@ -100,7 +103,7 @@ 文章字数 - 6.7k + 6.9k @@ -140,7 +143,10 @@
      -

      前言

      +
      +

      原创发表于 DavidZ Blog,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。

      +
      +

      前言

      计算机这个专业,有很多报告要做。在山威的时候,报告格式没有什么限制 Word,PDF 都可以,那个时候我开始使用 Markdown 作为我的排版工具,因为实在是没有时间经历去研究 Word 的各种高级功能(主要是懒)。Markdown 十分简单,易学,在Github等计算机专业相关平台使用也非常广泛,还可以通过各种模板快速生成好看美观专业的文档。

      后来到了澳国立,老师教授们开始极力鼓吹 Latex 和 PDF,基本上算是软性要求我们使用 Latex 编写,还规定了衬线字体,非衬线字体,字号,段落等等,图片还需要是 SVG 格式的矢量图片(最奇葩的是竟然一整节课只讲这个😂),最后生成 PDF 提交(据说这样分数高一些)。所以我开始了漫漫 Latex 学习之路。然而整个过程十分痛苦,装个 TeX Live 跑了好几个小时,换个字体换的我一脸懵逼,预览竟然都不是实时的!!!我甚至觉得还不如 Word 好用,又开始找那些 Latex 编辑器(同学的 MacOS 上有很不错的,然而我是 Windows),之后是在线编辑器Overleaf,体验还行,但是一边学习 Latex 一边做实验写报告的体验实在是太差劲了,人都要有丝分裂了。我就先用 Markdown 记录下来,想着之后再改成 Latex 吧。然后,我用了 2 天左右的时间,找到了 Markdown 直接转报告的方法,就没再碰 Latex(还是懒)。

      样例