2020-01-27 20:30:21 +08:00
<?xml version="1.0" encoding="utf-8"?>
<search >
2020-02-13 20:39:56 +08:00
<entry >
2020-02-14 14:43:05 +08:00
<title > 使用 Markdown 编写基于 Latex 的报告</title>
2020-02-13 20:39:56 +08:00
<link href= "/write-latex-report-with-markdown/" />
<url > /write-latex-report-with-markdown/</url>
2020-02-13 23:08:39 +08:00
<content type= "html" > <![CDATA[<h2 id="前言"> <a class= "header-anchor" href= "#前言" > ¶</a> 前言</h2> <p > 计算机这个专业,有很多报告要做。在山威的时候,报告格式没有什么限制 Word, PDF 都可以,那个时候我开始使用 Markdown 作为我的排版工具,因为实在是没有时间经历去研究 Word 的各种高级功能(<s > 主要是懒</s> ) 。Markdown 十分简单,易学,在<a href= "https://github.com" target= "_blank" rel= "noopener" > Github</a> 等计算机专业相关平台使用也非常广泛,还可以通过各种模板快速生成<strong > 好看</strong> , <strong > 美观</strong> , <strong > 专业</strong> 的文档。</p> <p > 后来到了澳国立,老师教授们开始极力鼓吹 Latex 和 PDF, 基本上算是软性要求我们使用 Latex 编写,还规定了衬线字体,非衬线字体,字号,段落等等,图片还需要是 SVG 格式的矢量图片(最奇葩的是竟然一整节课只讲这个😂),最后生成 PDF 提交(据说这样分数高一些)。所以我开始了漫漫 Latex 学习之路。然而整个过程十分痛苦,装个 TeX Live 跑了好几个小时,换个字体换的我一脸懵逼,预览竟然都不是实时的!!!我甚至觉得还不如 Word 好用,又开始找那些 Latex 编辑器(同学的 MacOS 上有很不错的,然而我是 Windows) , 之后是在线编辑器<a href= "https://www.overleaf.com/" target= "_blank" rel= "noopener" > Overleaf</a> ,体验还行,但是一边学习 Latex 一边做实验写报告的体验实在是太差劲了,人都要<s > 有丝</s> 分裂了。我就先用 Markdown 记录下来,想着之后再改成 Latex 吧。然后,我用了 2 天左右的时间,找到了 Markdown 直接转报告的方法,就没再碰 Latex( <s > 还是懒</s> )。</p> <h2 id= "样例" > <a class= "header-anchor" href= "#样例" > ¶</a> 样例</h2> <p > <a href= "https://github.com/Wandmalfarbe/pandoc-latex-template/#example-images" target= "_blank" rel= "noopener" > eisvogel 主题样例</a> </p> <p > 你也可以从<a href= "//davidz.cn/static/blog/2020-02-12-write-latex-report-with-markdown/report.pdf" target= "_blank" rel= "noopener" > 这里</a> 看一下我的成果作为参考,我觉得完全符合我的要求。</p> <h2 id= "思路" > <a class= "header-anchor" href= "#思路" > ¶</a> 思路</h2> <p > 其实思路很简单,一切的一切都是因为<a href= "https://pandoc.org/" target= "_blank" rel= "noopener" > Pandoc</a> 这个文档转换软件软件(类似于影音界的格式工厂?)的存在。它官网有一张巨型图片描述了它可以从那些格式转换成那些格式,基本上可以说覆盖了常见的所有文档格式。所以我们就可以用它把 Markown 语言写的文档转换成 PDF 格式的报告,过程中再用一套模板修饰一下就好啦。</p> <blockquote > <p > 注意<br > Pandoc 通过 Markdown -> Latex -> PDF 的方式得到 PDF, 中间文件是 Latex</p> </blockquote> <h2 id= "准备" > <a class= "header-anchor" href= "#准备" > ¶</a> 准备</h2> <h3 id= "Markdown-语法" > <a class= "header-anchor" href= "#Markdown-语法" > ¶</a> Markdown 语法</h3> <blockquote > <p > 注意<br > Markdown 实际上和 HTML 是“近亲”,你甚至可以直接使用 HTML 标签。</p> </blockquote> <p > 这个百度或者谷歌一下, 很容易找到教程, 学起来也很简单, 10 分钟上手, 1 天熟练。</p> <h3 id= "Markdown-编辑器" > <a class= "header-anchor" href= "#Markdown-编辑器" > ¶</a> Markdown 编辑器</h3> <p > 下面这俩我都有,看心情切换😄。</p> <h4 id= "选项-1-VSCode" > <a class= "header-anchor" href= "#选项-1-VSCode" > ¶</a> 选项 1: VSCode</h4> <p > <img src= "//davidz.cn/static/blog/2020-02-12-write-latex-report-with-markdown/vscode.png" alt= "VSCode with Markdown Preview Enhanced" > </p> <p > 微软出品,宇宙最强 IDE <code > Visual Studio</code> 的“弟弟”,宇宙最强编辑器。</p> <p > <a href= "https://code.visualstudio.com/" target= "_blank" rel= "noopener" > 官网</a> |<a href= "https://github.com/microsoft/vscode" target= "_blank" rel= "noopener" > Github</a> 下载安装包, 双<EFBFBD>
2020-02-13 20:39:56 +08:00
<categories >
<category > Productivity </category>
</categories>
<tags >
<tag > Windows </tag>
<tag > Markdown </tag>
</tags>
</entry>
2020-02-11 20:35:13 +08:00
<entry >
<title > 卸载浪潮安装的 IP-GUARD 监控软件</title>
<link href= "/inspur-ip-guard-uninstallation/" />
<url > /inspur-ip-guard-uninstallation/</url>
2020-02-13 20:39:56 +08:00
<content type= "html" > <![CDATA[<h2 id="前言"> <a class= "header-anchor" href= "#前言" > ¶</a> 前言</h2> <blockquote > <p > 屋漏更遭连夜雨,船迟又遇打头风。</p> </blockquote> <p > 刚刚处理完 Docker 里面的“病毒”,又发现自己的笔记本被安装了监控软件,身后一阵凉风。</p> <h2 id= "发现" > <a class= "header-anchor" href= "#发现" > ¶</a> 发现</h2> <blockquote > <p > 事发突然,因为影响我开发,所以也没有来得及截图。</p> </blockquote> <p > 为了使用 WSL2 里面的 Docker, 我加入了 <code > Windows 预览体验计划 - 慢</code> ,把系统升级到了 Windows 10 2004。结果怪事就出现了——基本上所有的命令行都会在执行前显示一个错误。</p> <pre > <code class= "language-shell" > ANOMALY: use of REX.w is meaningless (default operand size is 64)</code> </pre> <p > 从来没见过这个错误,我进入安全模式发现竟然也会报错,在百度 + 谷歌 + stackoverflow 依然无任何有效答案后,陷入了绝望😢。</p> <p > 本来呢,这个只是报个错,并不是什么大问题(<s > 我本身有一点强迫症,不能忍</s> ),但是 JetBrains 全家桶全部报错找不到 Git, CLion 报错找不到 VS。这就严重影响我开发了。Windows 预览体验计划还非常坑,不能回退,于是我又尝试了<code > Windows 预览体验计划 - 快</code> ,结果问题依旧。</p> <p > 终于我突发奇想在 Github 上搜了一下(<s > 不是到我当时咋想的,病急乱投医把</s> ),发现了一个叫<a href= "https://github.com/martona/mhook" target= "_blank" rel= "noopener" > mhook</a> 的项目,在其类库代码中发现了<a href= "https://github.com/martona/mhook/blob/master/disasm-lib/disasm_x86.c#L1749" target= "_blank" rel= "noopener" > disasm_x86</a> 这个文件,在第 1749 行发现了错误提示的源代码。</p> <pre > <code class= "language-c" > if (!SuppressErrors) printf(" [0x%08I64X] ANOMALY: use of REX.w is meaningless (default operand size is 64)\n" , VIRTUAL_ADDRESS);</code> </pre> <p > 现在我大体知道了这个问题产生的原因。</p> <ol > <li > disasm 是一个 hook( 钩子) 库, 可以注入到别的程序。</li> <li > 更新系统后,这个钩子库和新的系统发生了冲突,于是报错,理论上所有被注入的程序都会报错。</li> <li > 这个钩子应该是个<strong > 监控软件</strong> 或者病毒木马之类的。</li> </ol> <p > 我想起了在浪潮实习的时候,我的老师给我说浪潮作为面向政府国企的公司,对内部信息安全非常重视,所以会在员工的电脑里面安装监控软件,监控员工的一举一动,我当时感觉应该不会对实习生下手吧,想不到。。。回想起来,应该是入职浪潮的时候安装的那个上网小助手吧。</p> <p > 于是我下载了<a href= "https://www.freefixer.com/" target= "_blank" rel= "noopener" > freefixer</a> ,查找注入的钩子,果不出其然,发现了在系统中安装的<a href= "http://www.ip-guard.net/" target= "_blank" rel= "noopener" > IP-GUARD</a> 。按照官网的介绍,监控能力之强,范围之广令人汗颜,从网络到文件,邮件,应用等等,简直神通广大。</p> <h2 id= "处理" > <a class= "header-anchor" href= "#处理" > ¶</a> 处理</h2> <p > 我已经离职多日,第一时间肯定是卸载这个监控软件,直接删除文件肯定不行,结果 freefixer 也卸不掉(卸载完重启又出现),没有办法,只能到 WinPE 中手动逐一筛查,删除。</p> <p > 基本步骤如下</p> <h3 id= "1-进入-WinPE" > <a class= "header-anchor" href= "#1-进入-WinPE" > ¶</a> 1. 进入 WinPE</h3> <blockquote > <p > 安全模式也会打开例如 explorer.exe 这样的系统进程,而监控软件也注入到了其中,所以安装全模式也不能删除</p> </blockquote> <p > 这里免费帮<a href= "https://www.itsk.com/forum.php?mod=viewthread&tid=404842" target= "_blank" rel= "noopener" > 优启通</a> 做个广告。</p> <p > 下载上面这个 PE 安装到本地或者 U 盘 都行,然后重启进入 WinPE 就好了。</p> <h3 id= "2-到系统盘中删<E4B8AD>
2020-02-11 20:35:13 +08:00
<categories >
<category > Internship </category>
</categories>
<tags >
<tag > Windows </tag>
</tags>
</entry>
2020-02-10 19:39:28 +08:00
<entry >
2020-02-13 22:12:47 +08:00
<title > " 寄生" 于 Docker 的病毒 - Kinsing</title>
2020-02-10 19:39:28 +08:00
<link href= "/kinsing-virus/" />
<url > /kinsing-virus/</url>
2020-02-13 20:39:56 +08:00
<content type= "html" > <![CDATA[<h2 id="前言"><a class="header-anchor" href="#前言">¶</a>前言</h2><p>2020 年开年不顺, 2019 新型冠状病毒肺炎爆发,从年三十居家隔离到了正月十五,没想到自己的服务器也”感染“上了病毒 - Kinsing(进程的名字,姑且这样称呼)。</p><h2 id="发现"><a class="header-anchor" href="#发现">¶</a>发现</h2><p><img src="//davidz.cn/static/blog/2020-02-10-kinsing-virus/netdata.png" alt="netdata"></p><p>偶然看了看服务器状态,发现 CPU 占用一直保持在 100%上下,有些蹊跷。</p><p>难道是我的博客访问量<s>暴增</s>???那是当然不可能的,然后我去看了看<a href="https://github.com/portainer/portainer" target="_blank" rel="noopener">Portainer</a>看了看,果然,</p><p><img src="//davidz.cn/static/blog/2020-02-10-kinsing-virus/portainer.png" alt="portainer"></p><p>这个随机名称的容器就是 Kinsing 基于 Ubuntu 的容器, CPU 占用 100%。</p><p><img src="//davidz.cn/static/blog/2020-02-10-kinsing-virus/process.png" alt="进程"></p><p>简单看了看容器里面的进程表,第一个运行了一个 shell 脚本,这个病毒就是这个脚本下载启动的关键,我打开看了看,<s>也没看懂</s>,大概是下载了几个可执行文件。第二个是 cron, 这个是定时脚本, 我猜应该是病毒定时检查一下运行情况? 第三个好像是个守护进程, 第四个应该是用于容器保持, 第五个在网上能搜到, 是个<a href="https://www.baidu.com/s?wd=kdevtmpfsi" target="_blank" rel="noopener">挖矿的程序</a>。</p><p>无聊的我还简单看了看这个脚本的服务器 IP, </p><p><img src="//davidz.cn/static/blog/2020-02-10-kinsing-virus/ip.png" alt="ip"></p><p>难道是俄罗斯大佬???</p><p>这个时候我突然想起来,前几天为了调试<a href="https://certbot.eff.org/" target="_blank" rel="noopener">certbot</a>的 Dockerfile, 我直接打开了 Docker 的<a href="https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-socket-option" target="_blank" rel="noopener">远程访问</a>,在默认的情况下是没有任何加密措施的。</p><p>这样,就真相大白了,这个病毒通过未加密的接口,在我的服务器上运行了挖矿的容器来盈利,同时也占用了服务器全部的 CPU😢.</p><h2 id="处理"><a class="header-anchor" href="#处理">¶</a>处理</h2><p>Kinsing 病毒还是很良心的(至少我遇到的这个是),把自己”关“在了容器里面,反正后来我也没有在别的地方发现相关文件。</p><p>所以处理起来也简单,</p><ol><li>删掉容器和镜像</li><li>关闭 Docker 远程访问即可。如果不想关闭的话也可以<a href="https://docs.docker.com/engine/security/https/" target="_blank" rel="noopener">用 https 的方式加密</a>。</li></ol><h2 id="小想法"><a class="header-anchor" href="#小想法">¶</a>小想法</h2><p>其实这个 Kinsing 病毒实现起来还是很简单的,</p><ol><li>扫描全网的 2375 这个默认端口</li><li>用 Docker API 连接并部署容器</li><li>执行脚本运行挖矿程序</li></ol><p><s>突然有一个邪恶的想法,一台机器一天就算 1 毛钱好啦</s>,哈哈哈,但是违法的事情不能做呀😄。</p><p>大家一定要注意呀,时刻谨记服务器安全,不要随意开放服务器端口。</p>]]> </content>
2020-02-10 19:39:28 +08:00
<categories >
<category > DevOps </category>
</categories>
<tags >
2020-02-13 22:12:47 +08:00
<tag > Linux </tag>
2020-02-10 19:39:28 +08:00
<tag > Shell </tag>
<tag > Docker </tag>
</tags>
</entry>
2020-02-03 19:45:35 +08:00
<entry >
<title > Windows 包管理器 - Scoop</title>
<link href= "/windows-package-manager-scoop/" />
<url > /windows-package-manager-scoop/</url>
2020-02-13 20:39:56 +08:00
<content type= "html" > <![CDATA[<h2 id="前言"> <a class= "header-anchor" href= "#前言" > ¶</a> 前言</h2> <p > 一直以来, 作为开发者, Windows 相较于 Linux 都缺少两样重要的工具,</p> <ol > <li > <strong > 好用</strong> 的 Shell - 现在可以用 PowerShell Core 或者 WSL 暂时代替。</li> <li > <strong > 好用</strong> 的包管理器 - 在开发时 C/Cpp 的库可以用<a href= "https://github.com/microsoft/vcpkg" target= "_blank" rel= "noopener" > VCPKG</a> ,而日常使用的软件就可以使用本文的主角<a href= "https://github.com/lukesampson/scoop" target= "_blank" rel= "noopener" > Scoop</a> 了。</li> </ol> <h2 id= "安装" > <a class= "header-anchor" href= "#安装" > ¶</a> 安装</h2> <blockquote > <p > 按照官网的<a href= "https://github.com/lukesampson/scoop/wiki/Quick-Start" target= "_blank" rel= "noopener" > 教程</a> ,只能使用 PowerShell 而不是 CMD 进行安装。</p> </blockquote> <pre > <code class= "language-powershell" > # 指定 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')</code> </pre> <h3 id= "Buckets" > <a class= "header-anchor" href= "#Buckets" > ¶</a> <a href= "https://github.com/lukesampson/scoop/wiki/Buckets" target= "_blank" rel= "noopener" > Buckets</a> </h3> <p > Scoop 只是一个包安装器,我们还需要软件源。</p> <p > 使用,</p> <pre > <code class= "language-powershell" > scoop bucket known</code> </pre> <p > 可以列出所有官方已知并推荐的源,使用,</p> <pre > <code class= "language-powershell" > scoop bucket add < bucket-name> </code> </pre> <p > 即可安装源。</p> <ol > <li > <code > main</code> - Scoop 官方默认主源,里面所有的软件符合<a href= "https://github.com/lukesampson/scoop/wiki/Criteria-for-including-apps-in-the-main-bucket" target= "_blank" rel= "noopener" > 标准</a> 。</li> <li > <code > extras</code> - Scoop 官方扩展你源,里面的软件不完全符合标准。</li> <li > <code > versions</code> - 可选版本的源。</li> <li > <code > nightlies</code> - nightly 软件源,不推荐。</li> <li > <code > nirsoft</code> - <a href= "https://nirsoft.net/" target= "_blank" rel= "noopener" > Nir Sofer</a> 开发的软件。</li> <li > <code > php</code> - 不同版本的 php。</li> <li > <code > nerd-fonts</code> - <a href= "https://github.com/ryanoasis/nerd-fonts" target= "_blank" rel= "noopener" > Nerd Fonts</a> 和一些其他字体。</li> <li > <code > nonportable</code> - 非便携软件(可能需要 UAC) 。</li> <li > <code > java</code> - 不同版本的 JDK, JRE。</li> <li > <code > games</code> - 开源或免费的游戏以及游戏工具。</li> <li > <code > jetbrains</code> - JetBrains 全家桶。</li> </ol> <h2 id= "使用" > <a class= "header-anchor" href= "#使用" > ¶</a> 使用</h2> <p > 和 Ubuntu 的 apt, CentOS 的 yum 基本相同。</p> <pre > <code class= "language-powershell" > # 搜索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</code> </pre> <h2 id= "推荐的软件包" > <a class= "header-anchor" href= "#推荐的软件包" > ¶</a> 推荐的软件包</h2> <h3 id= "aria2" > <a class= "header-anchor" href= "#aria2" > ¶</a> <a href= "https://aria2.github.io/" target= "_blank" rel= "noopener" > aria2</a> </h3> <p > 基本上常见的所有开源下载软件都是基于这个,不但可以跑在 x86 的电脑上, mips 的路由器, arm 的手机都不是问题。</p> <p > 需要注意的是,安装 aria2 后, Scoop 的默认下载器会自动改成 aria2, 并开启多线程下载。</p> <h3 id= "7zip" > <a class= "header-anchor" href= "#7zip" > ¶</a> <a href= "https://www.7-zip.org/" target= "_blank" rel= "noopener" > 7zip</a> </h3> <p > 界面超原始,但是替代个收费的 WinRAR, 以及一众国内带广告的解压软件不是问题。同时 Scoop 有时候也依赖于
2020-02-03 19:45:35 +08:00
<categories >
<category > Productivity </category>
</categories>
<tags >
<tag > Open-Source </tag>
2020-02-11 20:35:13 +08:00
<tag > Windows </tag>
2020-02-03 19:45:35 +08:00
</tags>
</entry>
2020-02-01 21:30:36 +08:00
<entry >
<title > 颜值是第一生产力 - Windows Terminal</title>
<link href= "/beauty-is-productivity-windows-terminal/" />
<url > /beauty-is-productivity-windows-terminal/</url>
2020-02-13 20:39:56 +08:00
<content type= "html" > <![CDATA[<h2 id="回顾"> <a class= "header-anchor" href= "#回顾" > ¶</a> 回顾</h2> <p > <img src= "//davidz.cn/static/blog/2020-01-31-beauty-is-productivity-windows-terminal/cmd.png" alt= "CMD" > </p> <p > 记得我最早的时候用 Visual Studio 写了第一个 Hello World 程序,激动的点运行,出来个黑框一闪就过去了,啥也没看到。</p> <p > <img src= "//davidz.cn/static/blog/2020-01-31-beauty-is-productivity-windows-terminal/powershell.png" alt= "PowerShell" > </p> <p > 后来偶然了解 PowerShell, 又变成了一个蓝色的框, 还会有进度提示, 红的, 黑的, 突兀得很😢。</p> <p > <img src= "//davidz.cn/static/blog/2020-01-31-beauty-is-productivity-windows-terminal/bash.png" alt= "bash" > </p> <p > 后来上了大学终于在 Ubuntu 上见到了 bash, 完全改变了我对 Shell 的认知。</p> <p > 傻傻分不清 Shell 和 Terminal 的我,激动的打开 Git 自带的 bash, 它却长成了这样。</p> <p > <img src= "//davidz.cn/static/blog/2020-01-31-beauty-is-productivity-windows-terminal/git-bash.png" alt= "Git-Bash" > </p> <p > 一番优化之后也不是不能用,后来还入坑了 <a href= "https://github.com/cmderdev/cmder" target= "_blank" rel= "noopener" > Cmder</a> ,用于替代 <a href= "https://www.chiark.greenend.org.uk/~sgtatham/putty/" target= "_blank" rel= "noopener" > Putty</a> 那个更加原始的 terminal。</p> <p > 终于, 2019 年微软开始进入开源世界,为我们带来了颜狗的胜利: <a href= "https://github.com/microsoft/terminal" target= "_blank" rel= "noopener" > Windows Terminal</a> 。</p> <iframe src= "//player.bilibili.com/player.html?aid=51700920&cid=90502402&page=1&high_quality=1&danmaku=0" allowfullscreen= "true" width= "100%" height= "600" scrolling= "no" frameborder= "0" sandbox= "allow-top-navigation allow-same-origin allow-forms allow-scripts" > </iframe> <h2 id= "下载-安装" > <a class= "header-anchor" href= "#下载-安装" > ¶</a> 下载& 安装</h2> <blockquote > <p > 截止 2020 年 2 月 1 号, Windows Terminal 还处在测试阶段,但是已经相对比较完善了,正常使用没有什么大问题了。</p> </blockquote> <h3 id= "方法-1-通过-Windows-Store" > <a class= "header-anchor" href= "#方法-1-通过-Windows-Store" > ¶</a> 方法 1: 通过 Windows Store</h3> <p > <a href= "https://www.microsoft.com/en-us/p/windows-terminal-preview/9n0dx20hk701" target= "_blank" rel= "noopener" > 点击这里安装</a> </p> <h3 id= "方法-2-通过-Github" > <a class= "header-anchor" href= "#方法-2-通过-Github" > ¶</a> 方法 2: 通过 Github</h3> <p > 在 Github 的 <a href= "https://github.com/microsoft/terminal/releases" target= "_blank" rel= "noopener" > Release</a> 中下载最新的那个双击安装就好啦,和方法 1 是一样的。</p> <h3 id= "方法-3-通过-Scoop" > <a class= "header-anchor" href= "#方法-3-通过-Scoop" > ¶</a> 方法 3: 通过 Scoop</h3> <blockquote > <p > <strong > 不推荐</strong> <br > 用 wt 命令启动时会有一个 CMD 窗口,逼死强迫症。</p> </blockquote> <p > Windows Terminal 在 Scoop 的 extras bucket 里面。</p> <pre > <code class= "language-powershell" > scoop install windows-terminal</code> </pre> <h2 id= "配置" > <a class= "header-anchor" href= "#配置" > ¶</a> 配置</h2> <p > 通过配置,最终 terminal 可以长成这个样子。</p> <p > <img src= "//davidz.cn/static/blog/2020-01-31-beauty-is-productivity-windows-terminal/windows-terminal.png" alt= "windows terminal" > </p> <p > 现阶段只有 json 格式的配置文件,还没有图形化配置界面,项目组说正式版会有,最终应该会与 Vscode 的配置一样。</p> <p > 根据官网给出的 <a href= "https://raw.githubusercontent.com/microsoft/terminal/master/doc/cascadia/profiles.schema.json" target= "_blank" rel= "noopener" > Profiles Schema</a> ,我们可以很快的配置我们自己定制化的 Terminal。</p> <p > 下面是我自己用的配置文件,</p> <pre > <code class= "language-json" > { " $schema" : " https://aka.ms/terminal-profiles-schema" , " defaultProfile" : " {807502AB-0C92-4DF7-9C7C-1E9F7A2A47DE}" , // 默认配置的 GUID, 和下面的 pr
2020-02-01 21:30:36 +08:00
<categories >
<category > Productivity </category>
</categories>
<tags >
<tag > Open-Source </tag>
2020-02-11 20:35:13 +08:00
<tag > Windows </tag>
2020-02-13 22:12:47 +08:00
<tag > Terminal </tag>
2020-02-01 21:30:36 +08:00
</tags>
</entry>
2020-01-27 20:30:21 +08:00
<entry >
<title > 浪潮实习</title>
<link href= "/inspur-internship/" />
<url > /inspur-internship/</url>
2020-02-13 20:39:56 +08:00
<content type= "html" > <![CDATA[<h2 id="前言"> <a class= "header-anchor" href= "#前言" > ¶</a> 前言</h2> <p > 到了期末都说要找个实习的工作,我也跟个风😂。</p> <p > 我是主要是在<a href= "https://www.shixiseng.com/" target= "_blank" rel= "noopener" > 实习僧</a> 上找的(就当免费做个广告吧),我住在美丽的泉城济南,<s > 这个地方好就好在</s> ,咳咳咳,我大概填了填简历,可能是没啥亮点,投了三四家都不要我😢。</p> <p > 我分析原因大概有以下几条:</p> <ol > <li > 我最喜欢最熟练的语言是 Python, 但是现在国内的环境, Python 很少作为 Web 的后端,主要是用在机器学习(大数据分析,量化交易之类的)方面。济南大多数都是 Java 和 Cpp 岗。</li> <li > 我个人没有参加过 acm 之类的比赛,除了几个项目没法有效证明我的能力。</li> <li > 我这个寒假只能干 2 个月,<s > 其实最终只干了一个半月</s> 。</li> <li > 我是个大三的学生。可能培养了对于公司来说也没啥意义吧。</li> </ol> <p > 最后还是十分感谢秦老师❤️,不但收了我到浪潮实习,还在实习过程中给了我很多帮助和指导。</p> <p > 下面列一列我学习了解的项目工具之类的。</p> <h2 id= "CppMicroServices" > <a class= "header-anchor" href= "#CppMicroServices" > ¶</a> <a href= "https://github.com/CppMicroServices/CppMicroServices" target= "_blank" rel= "noopener" > CppMicroServices</a> </h2> <p > 我们主要做了一个插件管理器,是基于 CppMicroServices 的二次开发。这是一个 Cpp 的微服务框架,主要实现了 Bundle 的全生命周期管理,注册,启动,停止,状态管理等。</p> <h2 id= "CLion" > <a class= "header-anchor" href= "#CLion" > ¶</a> <a href= "https://www.jetbrains.com/clion" target= "_blank" rel= "noopener" > CLion</a> </h2> <p > 大爱 Jetbrains 全家桶,我实习的第一件事大概就是给组里所有人安利了 CLion 吧。与宇宙第一 IDE Visual Studio 相比最突出的优点有</p> <ol > <li > 精美的全功能编辑器。不是我吐槽, VS 的编辑器为了向下兼容现在甚至已经落后 VSCode 了,这还是曾经的宇宙第一 IDE 嘛。举一个简单的例子,连字功能连个开关都找不到,重启 VS 没成功,重启电脑就成功了?再加上没有拼写检查?没有自动注释补全?没有缺陷提示?你可能觉得没什么,但是这些都是 CLion 的自带功能啊。</li> <li > 丰富完善的插件生态。虽然感觉比不上 VSCode, 但是相对于 VS, 😄。</li> <li > CMake 项目的原生支持。VS 虽然也有,但是感觉应该还处在开发状态。</li> <li > SVN & Git 的原生支持。</li> <li > 远程开发功能。因为我们要求项目有跨平台能力, 所以需要在多个平台切换。VS 虽然也有这个功能,但是也是感觉在开发状态,相比 CLion 少了很多配置的灵活性。</li> <li > 丰富的主题。VS 硬伤。</li> </ol> <p > 综上所述,对于 Cpp 的 CMake 跨平台项目,还是推荐使用 CLion 作为 IDE。</p> <p > 我猜测 Visual Studio 是宇宙第一 IDE 应该说的是对于 C# 项目吧。</p> <h2 id= "CMake" > <a class= "header-anchor" href= "#CMake" > ¶</a> <a href= "www.cmake.org" > CMake</a> </h2> <p > 以前的 C/Cpp 项目对我来说就是个谜, 解决方案、项目傻傻分不清楚, Visual Studio 写单文件程序,解算法题还是很溜的,但是两个文件以上就很晕。</p> <p > 傻瓜式的配置的优点和确定都是非常显著的,好用是好用,用好是真的难。</p> <p > CMake 作为这几年流行的跨平台构建工具,实现了配置式构建,终于让我理解了大学里 Linux 老师讲的程序编译链接都是些啥。</p> <p > 下面我简单写一写 CMake 的入门知识。</p> <h3 id= "常见编译器" > <a class= "header-anchor" href= "#常见编译器" > ¶</a> 常见编译器</h3> <table > <thead > <tr > <th style= "text-align:center" > Platform</th> <th style= "text-align:center" > Windows</th> <th style= "text-align:center" > Linux</th> </tr> </thead> <tbody > <tr > <td style= "text-align:center" > GNU(open s
2020-01-27 20:30:21 +08:00
<categories >
<category > Internship </category>
</categories>
<tags >
2020-02-11 20:35:13 +08:00
<tag > Windows </tag>
2020-02-13 22:12:47 +08:00
<tag > Cpp </tag>
2020-02-11 20:35:13 +08:00
<tag > Linux </tag>
2020-01-27 20:30:21 +08:00
</tags>
</entry>
<entry >
2020-02-14 14:43:05 +08:00
<title > ANU COMP2310(2019) Assignment 1</title>
2020-01-27 20:30:21 +08:00
<link href= "/anu-comp2310-assignment1/" />
<url > /anu-comp2310-assignment1/</url>
2020-02-13 20:39:56 +08:00
<content type= "html" > <![CDATA[<blockquote> <p > <strong > 敬告</strong> </p> <div style= "color: red" > 本博客请供参考,请不要抄袭。</div> </blockquote> <h2 id= "前言" > <a class= "header-anchor" href= "#前言" > ¶</a> 前言</h2> <p > 这是 ANU <a href= "http://courses.cecs.anu.edu.au/courses/COMP2310/" target= "_blank" rel= "noopener" > COMP2310</a> 的第一次大作业,历时一个月左右,也是这个学期我写的最认真的一次作业,所以在博客搭建伊始,我先把这个记录下来。</p> <h2 id= "问题" > <a class= "header-anchor" href= "#问题" > ¶</a> 问题</h2> <p > 根据<a href= "//davidz.cn/static/blog/2020-01-11-anu-comp2310-assignment1/assignment-1.pdf" target= "_blank" rel= "noopener" > Assignment 1 PDF</a> 中的描述,大概的意思就是在三维空间中有许多的<code > 车</code> ,具有速度和加速度(都是三维向量),而且不管是否加速,都会消耗一定的能量,当然加速也会加快能量的消耗。然后就是有一个或多个<code > 能量球</code> ,当然也是在运动中的,同样具有速度和加速度。当<code > 车</code> 和<code > 能量球</code> 靠近的时候,<code > 车</code> 能够获取到<code > 能量球</code> 的信息(加速度,速度,位置),并且加满能量,而当<code > 车</code> 与<code > 车</code> 靠近的时候,能够互相交换一次信息,这个信息的内容是自己定义的。<code > 车</code> 在能量耗尽后就消失了,而我们需要做的就是在一定的时间内,保证尽可能多的<code > 车</code> 存活。</p> <h2 id= "分析" > <a class= "header-anchor" href= "#分析" > ¶</a> 分析</h2> <p > 其实这个问题最关键的地方在于,没有一个中央的控制节点,也就是说对于每一个<code > 车</code> 来说都是完全平等且独立的。所以我们需要他们能够尽可能的一直处在能够交流的状态,并且都能知道<code > 能量球</code> 在哪里。</p> <blockquote > <p > <strong > 注意</strong> <br > 这个问题在没有中央控制时<strong > 不存在</strong> 最优解,我们只能无线接近最优解。<br > 我采用的是<strong > 球形模型</strong> ,这个模型参考于这次作业的 <a href= "https://cs.anu.edu.au/courses/comp2310/1-Labs-Assignments.html" target= "_blank" rel= "noopener" > Examples</a> 。<br > 在和我的同学互相交流时,这个模型是最普遍的,解决方案是最多的,效果也是相对最好的。</p> </blockquote> <p > <img src= "//davidz.cn/static/blog/2020-01-11-anu-comp2310-assignment1/figure1.svg" alt= "3D球形模型" > </p> <p > <img src= "//davidz.cn/static/blog/2020-01-11-anu-comp2310-assignment1/figure2.svg" alt= "2D球形模型" > </p> <p > 球形模型设计的两大重点是:</p> <ol > <li > 所有的<code > 车</code> 都均匀平等地分布在球面上(球面是个相对概念,可以是球壳???)。</li> <li > 所有的<code > 车</code> 都能随时交流,也就是说大家形成一个通讯网络。</li> </ol> <h2 id= "实现" > <a class= "header-anchor" href= "#实现" > ¶</a> 实现</h2> <blockquote > <p > <strong > 注意</strong> <br > 所有的 Ada 代码都是示意性的,有可能不能直接在项目中使用。</p> </blockquote> <h3 id= "Stage-A-B" > <a class= "header-anchor" href= "#Stage-A-B" > ¶</a> Stage A& B</h3> <p > 这个阶段中,能量球只有一个,我们让所有的<code > 车</code> 都围绕这个能量球运动来实现一个基本的球形模型。</p> <h4 id= "基本程序结构( Basic-Program-Structure) " > <a class= "header-anchor" href= "#基本程序结构( Basic-Program-Structure) " > ¶</a> 基本程序结构( Basic Program Structure) </h4> <p > 程序基本的结构是一个死循环,每次循环分为 4 个步骤:</p> <ol > <li > 判断<code > 能量球</code> 信息</li> <li > 发送信息</li> <li > 接受信息</li> <li > 设置目的地和油门</li> </ol> <h4 id= "消息结构( Message-Structure) " > <a class= "header-anchor" href= "#消息结构( Message-Structure) " > ¶</a> 消息结构( Message Structure) </h4> <p > 最基础的消息需要包括:</p> <ol > <li > <code > 能量球</code> 的信息</li> <li > 获得<code > 能量球</code> 信息的时间戳< /
2020-01-27 20:30:21 +08:00
<categories >
<category > Study </category>
</categories>
<tags >
2020-02-01 21:30:36 +08:00
<tag > Ada </tag>
2020-01-27 20:32:37 +08:00
2020-02-05 21:11:19 +08:00
<tag > ANU </tag>
2020-01-27 20:30:21 +08:00
</tags>
</entry>
<entry >
<title > Hello World</title>
<link href= "/hello-world/" />
<url > /hello-world/</url>
2020-02-06 14:52:17 +08:00
<content type= "html" > <![CDATA[<p>哈哈哈,这是一个经典的测试页面。</p><p>一直以来都想拥有一个自己的博客,从<a href="https://wordpress.org/" target="_blank" rel="noopener">WordPress</a>开始,到<a href="http://typecho.org/" target="_blank" rel="noopener">Typecho</a>,再到<a href="https://halo.run/" target="_blank" rel="noopener">Halo</a>,甚至中途尝试用 Django 自己实现了一个(不过样子也太丑了),虽然说一直在捣鼓博客,但是从来都是安装=>部署=>安装插件=>选择主题=>发布第一篇文章,然后就没有然后了。</p><p>今天我突然看到<a href="https://hexo.io/" target="_blank" rel="noopener">Hexo</a>的<a href="https://github.com/TriDiamond/hexo-theme-obsidian" target="_blank" rel="noopener">Obsidian</a>主题,我觉得时机到了,毕竟颜值是第一生产力。</p><p>给自己列一个简单的 TODO LIST 吧。</p><ul class="contains-task-list"><li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> 完善 BLOG</li><li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> COMP2310 作业整理</li><li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> 浪潮实习</li><li class="task-list-item"><input class="task-list-item-checkbox" checked="" disabled="" type="checkbox"> 终端与 WSL</li></ul><p>希望这个寒假能做完这些吧。</p><p>就这样。</p>]]> </content>
2020-01-27 20:30:21 +08:00
<categories >
<category > Personal </category>
</categories>
<tags >
<tag > Others </tag>
</tags>
</entry>
</search>