python functools

Python functools 一直有个很好的特性,叫做 partial ,片函数,一直都没有使用过。最近通过阅读别人的代码,学会了这一技能,着实好用。

使用 partial,可以把一些固有功能代码做一个整合;

比如我希望一个函数专门做 int2 转换

int2 = partial(int, base=2)

甚至还可以再过分一点,把 base 变成一个字典量传入。

多使用内建函数 locals,可以极大的减少自己的代码量;真正的 Pythonista,永无止境。

def in_func():
	a = 2
	b = 3

	def test(a, b, **args):
		return a + b

	print(test(**locals()))

为什么我密码对了,就是登录不上?

今天又偶遇了之前用阿里云出现的问题:

明明密码没有错,本地登录可以,但远程登录就是不ok。

之前一直没有排查到错误,今天终于在本地机器的加持下得以解决。这是什么问题呢?IP地址冲突。

的确是IP地址冲突。首先先使用校园网client ssh b-server 服务器,失败了。使用同一个物理主机的a-server与b-server进行互联,成功了。校园网client能够连接a-server。因此,观察 a-server 和 b-server 的区别,发现 a-server 子网掩码是255.255.255.128,而 b-server 的子网掩码是 255.255.255.0。

此外,还有:

查看系统开放的端口
netstat -nltp
测试本地是否能够访问,排查本地问题
ssh user@locahost

子网掩码不同,为什么就连接不上呢?(原理)

最终,解决了这个问题。通过重启 networking 以及 重新通过 dhcp 获取 ip 地址。

  1. 使用 systemctl restart networking.service 重启 networking 服务。
  2. 使用 ifconfig eth0 down; ifconfig eth0 up 来开关具体的网卡。
  3. 使用 # dhclient -r 释放当前ip
  4. 使用 # dhclient 获取新的ip

大功告成,算是阶段性的解决了这个问题。DDNS迫在眉睫啊!

安装 GNU/Linux

之前一直搞不清楚 UEFI 和 Legacy 区别在哪里,今天搞了一下 Manjaro 终于搞明白了;比较好笑的是,我参考的是 Ubuntu 的文档。
https://help.ubuntu.com/community/UEFI

安装 Manjaro 的时候,一直都有个安装引导程序到某处,很纳闷,为啥我这里有这个东西,别人截图就没有。后来更换了rufus的写入的模式,也就是 UEFI only。然后重新以 UEFI 模式载入,终于,引导不再有之前的“安装引导程序“了。


感动不已,于是在这里记录一下。
https://askubuntu.com/questions/63610/how-do-i-remove-ubuntu-in-the-bios-boot-menu-uefi

绘制流程图,形成文档

可以使用的工具

  • https://www.websequencediagrams.com/
  • MY CHOICE: https://mermaidjs.github.io/
  • Another choice: google key word: sequence graph

把 svg 转换成 png 文件

Or without installing anything:

qlmanage -t -s 1000 -o . picture.svg 

It will produce picture.svg.png that is 1000 pixels wide.

I have tested it only on OS X 10.6.3.

例如:

sequenceDiagram
App->Server: 请求视频服务
Server-->Server: 生成支付信息
Server->App: 返回支付信息
Note left of App: 获取支付的相关信息
App-->支付宝: 完成付款
支付宝-->App: 支付成功
Note left of App: 获悉支付结果
支付宝->Server: 根据回调URL,发送支付结果
Server->App: 根据支付结果,发送给客户端