CI_Knight

且行善举,莫问前程。

0%

2020年上班第一天,我们搭在阿里云的一个服务突然无法访问了。调查许久后,找到了原因。

想要在国内部署一个网站,是需要备案的。如果不备案还要部署可以通过域名访问的网站,只能使用https协议,也就是443端口。这也是因为https协议的优势,加密你的网站访问。

但是2020年可能大多数网站就不能这么搞了。因为2020年注定是不平凡的一年,开个玩笑。2020年之后很多浏览器就不再支持TLS 1.0/1.1,那么目前就只剩下TLS 1.2了。

具体详情点击链接查看,SSL Labs Grade Change for TLS 1.0 and TLS 1.1 Protocols

再支持TLS 1.2之后,因为SNI(Server Name Indication)并没有加密,所以很容易被国内云服务器的监控抓取到,比如阿里的云盾等。当然你也可以想办法把云服务的这些监控给关掉,关掉后是否可以使用443端口我并没有尝试过,所以不做讲解了。

所以还是老老实实的用IP访问,或者部署到香港或者日本等比较近的地方吧。也可以等待TLS 1.3普及开来,等到TLS 1.3,SNI也就可以加密了。

我们经常会使用远程服务器当跳板机和开发机,如果说你的远程开发机有很多,当要从github clone代码时要怎么办。我们不可能将每台机器的公钥添加到我们的github账号,并且将我们的私钥放到服务器是很不安全的。

其实操作很简单,但是我发现很多人都不这么做,使用ssh agent。

确保你系统上的ssh agent在运行。

1
eval `ssh-agent -s`

打印agent daemon的pid,证明服务运行成功。

.ssh/config中添加以下内容,让ssh-agent可以转发。

1
ForwardAgent yes

添加你的私钥

1
ssh-add 'your pk path'

此时你就可以本地远程连接服务器,来clone你的代码,或者连接其他服务器了。如果远程服务器也需要转发,也要重复以上操作。

博客有一年没有更新了,并不是说有多忙,是自己有了一些想法,认为自己搞的东西在谷歌都能搜索到的,并没有很高大上的研究,所以就不想写一些科普文和简单的技术文章了,毕竟都是大家可以在网络上搜索到的内容。这种想法持续了很久,不知道是不是在为自己的懒惰开脱,经过一段时间的验证,还是想坚持写博客,不管是生活上还是杂谈或者是技术博客,都可以写下来。原因有三点。

第一,是可以帮助自己提高写作能力与总结能力。写下的文章自己也要通读几遍,对文章再做修剪和纠错,再次提高语言总结能力。

第二,坚持一个好习惯。我认为写博客是一个好习惯,可以记录生活,可以帮助一些人,也能提高自己的写作能力和总结能理力。或许还可以让自己变得更不浮躁更能独立思考。坚持也能让自己变得更有毅力(还有一个提高毅力和耐力的方式,那就是去运动)。

第三,可以加强记忆,习惯用印象笔记裁剪网页进行保存,虽然说可以进行搜索,但是长久以来,阅读能力下降,感觉保存起来就变成了自己的东西,而不能真正的消化掉,囫囵吞枣的看一遍,不能深入了解。俗话说,想记得牢而且真正的理解,那就是教别人一遍。

大学的时候,还会坚持写文章,博客从emlog到WordPress,又从之前Python写的一个模板渲染到现在hexo,之前的文章经过筛选留下了现在这些,也有很多文章已经被删掉了。

所以我决定继续坚持写博客,不过不会像以前那么简单,比如在xxx系统安装yyy类型的文章了,毕竟软件的readme都会告诉你的啊。

在macOS下,使用V-Block复制粘贴行内文字时,nvim总会自己在末尾加入一个\n字符,也不算是很严重的问题,但是和vim的表现是不一致的,或者也可以用v替换^v。

我使用vim一般都是用V-Block来复制粘贴,所以自从换了neovim就一直被这个问题困扰。最近有时间研究了下这个问题。

我通过nvim -u NORC启动nvim,使用v-block模式粘贴复制,发现问题不存在了。那肯定是配置的问题,配置有一千多行,只能用二分注释法去查找是哪个配置的问题了。

最后找到是clipboard=unnamed与系统剪切板共享出了问题。google无果,issue搜索clipboard相关问题,因为issue太多未找到。所以自己提了issue。

最后才知道,其实这个问题在2015年就有人提出了,在issue#1822可以找到,并且有很多人提了相同的issue。标为了bug,放到了todo的milestone,修复无望。

有大佬给出解决方案,只要在init.vim中添加下面的配置就可以了。

1
2
3
Plug 'bfredl/nvim-miniyank'
map p <Plug>(miniyank-autoput)
map P <Plug>(miniyank-autoPut)

0x00

使用 <C-d> 可以显示补全列表

0x01

使用补全时,可以使用<C-n><Right><Tab>键选择下一个补全,使用<S-Tab><C-p><Right>键择上一个补全。

0x02

当使用Ex命令时,如:bn,可以按 @: 来重复上一次命令,运行一次后就可以使用 @@ 来重复他,如果想回到上一个文件,可以使用使用 :bp 命令,但是更好的替代方案是,使用<C-o>来反向遍历缓冲区列表。

0x03

粘贴内容时,使用 :set nopaste,这样粘贴板的内容就不会自动缩进了,而是保持原格式。

0x04

vim中,% 代表当前文件,所以可以使用 :!python % 来执行当前文件。

0x05

使用 :args 列出vim缓冲区列表。输出中的[]字符表明哪个是活动文件。:ls 也是如此,但更加好看,其中%标识当前缓冲区打开文件,#则代表轮换文件。

0x06

使用 :edit . 或者 :Explore 打开vim内置文件管理器netrw。

0x07

字符串查找时,’\n’ 是换行,’\r’ 是回车,也就是经常会看到的 ^M(备注-1),字符串替换时,’\r’ 是换行,’\n’ 是空字符(0x00)。

0x08

一行内容太长被折断显示时,如果想在行内上下移动,使用 gj, gk 来操作。

我的一个朋友问我,哪里有下载python的镜像源,我一直都是在是pypi下载,而且路由都已经翻墙,平时很少会碰到下载python慢的问题。不过在我们伟大的墙下,访问pypi.python.org确实会慢很多。

Pyenv

一般管理下载python除了brew还会用pyenv,推荐直接用pyenv安装python,这样就可以很方便的管理python版本。pyenv是可以设置PYTHON_BUILD_MIRROR_URL环境变量来加速下载python。添加之后也下载python会快很多,当然也要看mirror的位置,如果在github上也不会快到哪里。我都是用这个源http://pyenv.qiniudn.com/pythons,但是目前已经没人维护了。

然后我找到了淘宝python源,然后设置pyenv的mirror url环境变量,发现并没有任何作用。经过一番查找,在 pyenv issue 18知道了pyenv使用了python build。

Python Build

python build,看实现是把python包和sha256写入到配置文件,下载的时候通过sha256的值来获取python包,我写了个web sever证实了这一点。

当你使用pyenv安装python时,找不到python版本号会提示你更新pyenv,也就是git pull,更新的就是python build的映射文件。

我通过重定向讲下载跳转到具体的淘宝源url,pyenv可以成功下载。当然pyenv最终会比较下载的包的sha256的值,校验不通过依然会去python.org下载。

那么我们只需要把python build配置中的包名和sha256的值取出来做一个映射,就完全可以全部转发到淘宝镜像源了。具体怎么取偷个懒,毕竟这样的需求还真不多。或者在淘宝直接下载包放到pyenv的cache中,就可以直接安装了。