#744 西安一码通的“优化”
开发者 二维码 COVID19 西安 2022-01-07西安一码通半个月内两次宕机,值此西安疫情突发之时,可是严重的安全故障。相关负责人(西安大数据资源管理局局长)已经停职检查。
为确保系统运行更高效,他们将一张图片从1MB压缩到500KB,再从500KB优化到100KB。这样的工作看似简单,却蕴含着高技术含量,他们连续两天两夜守在电脑前,终于攻下难关。
coding in a complicated world
西安一码通半个月内两次宕机,值此西安疫情突发之时,可是严重的安全故障。相关负责人(西安大数据资源管理局局长)已经停职检查。
为确保系统运行更高效,他们将一张图片从1MB压缩到500KB,再从500KB优化到100KB。这样的工作看似简单,却蕴含着高技术含量,他们连续两天两夜守在电脑前,终于攻下难关。
维持之前的设定,走技术专家的路线。
第一点,今年会得到改进。
第二点,需要更长时间周期的投入才能见效。
第三点,比较泛,需要更多思考。
第四点,可能是最难的。我不知道该怎么做。
新的一年,岁数又会 +1,在这个一年开始的时候,对过去做个总结,对将来做个展望。
前提:工作习惯养成:1. 计划,2. 重要的事情优先完成,3. 不加班 (上班时间完成工作)
如果按平均每天 2h 来计划,全年有 730h。
个人项目的开发不占用这里的学习时间,另外从周末时间里面挤。
$ ip -c -6 addr show dev wlp6s0
3: wlp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
inet6 2409:8a4d:c81:c140::5/128 scope global dynamic noprefixroute
valid_lft 226977sec preferred_lft 140577sec
inet6 2409:8a4d:c81:c140:ca67:f46:7f29:1dad/64 scope global temporary dynamic
valid_lft 376sec preferred_lft 376sec
inet6 2409:8a4d:c81:c140:fcf0:3456:fac4:3b63/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 376sec preferred_lft 376sec
inet6 fe80::56f8:128b:b513:e571/64 scope link noprefixroute
valid_lft forever preferred_lft forever
# ipconfig /all
# ipconfig
无线局域网适配器 WLAN:
连接特定的 DNS 后缀 . . . . . . . :
IPv6 地址 . . . . . . . . . . . . : 2409:8a4d:c81:c140::6
IPv6 地址 . . . . . . . . . . . . : 2409:8a4d:c81:c140:68cd:b350:9fe8:9feb
临时 IPv6 地址. . . . . . . . . . : 2409:8a4d:c81:c140:757f:88b3:b455:5882
本地链接 IPv6 地址. . . . . . . . : fe80::68cd:b350:9fe8:9feb%5
IPv4 地址 . . . . . . . . . . . . : 192.168.1.7
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : fe80::1%5
192.168.1.1
DHCP 服务器 . . . . . . . . . . . : 192.168.1.1
DNS 服务器 . . . . . . . . . . . : 2409:804c:2000:1::1
2409:804c:2000:2::1
192.168.1.1
IPv4 4 字节, 一般用四个十进制的数字表示,xxx.xxx.xxx.xxx
形式,每一段的范围是 0~255。
IPv6 16 字节,一般用 32 个十六进制数表示,每四个一组,共八组,xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
形式,每一段的范围是 0000~FFFF。
0001
就可以写成 1
fe80::
, ::
(全 0), 又比如上面的 2409:8a4d:c81:c140::5
A:B:0:0:C:D:0:0
不能写成 A:B::C:D::
, 只能缩写成 A:B::C:D:0:0
或 A:B:0:0:C:D::
如果一台机器有多张网卡,都有一个 fe80 的链路地址,操作系统无法区分一个包该走哪张网卡出。
在 IPv4 中,不同网卡一般配置了不同子网,比如 172.16.31.0/24
, 172.168.32.0/24
。
但是 IPv6 的分配可以自己生成(无状态地址自动配置),大家都在 fe80 段。
百分号后面附加的是 zone index,这个数据是操作系统解释的。Windows 会采用接口号(整型数),而 Linux 习惯端口名称,比如 eth0, enp7s0。
PS: 推荐阅读: 网卡名称的变迁(ethX -> enpXsY)
netsh interface ipv6 show address
ifconfig
注意:用在 URL 中时,这个百分号应该转义成 %25
。
IPv4 有分区的概念,一开始叫做分类网络,ABCDE 五类。后来又有无类网络 (Classless Inter-Domain Routing, CIDR),取任意长度作前缀,比如 172.16.0.0/12 以 1010 1100 0001
做前缀。
IPv6 也有分区的概念,和 CIDR 一样,可以取任意长度作前缀。
比如 fe80::/10 就是以 1111 1110 10
做前缀。
移动网络给我分配的是 /64 段,听说有地方能拿到更短前缀(V2EX, 2020/07, 电信 IPv6 大家还能拿到/56 么)。
如果拿到更短前缀,就可以自己在家划分子网了。根据现在的实践(SLAAC),一个网络最少需要留 64 位,如果正好分的是 64 位前缀,那么就不能采用 SLAAC 方案了,只能走 DHCP。
:information_source: See also … Angular
:information_source: See also … AngularJS
处于安全原因,每隔几个月重新更换一次 OpenVPN 的配置文件,以防被攻击。运维讲配置文件加密打包分发给每个人,然后大家将其覆盖到现在的目录中。
我是 Linux 环境(Ubuntu, 准备切入 Fedora),这里我记录一下更新流程,下次务必 1 分钟之内切换完成。
ls ~/Documents/Mine/config20211213/
# ca.crt client.crt client.key client.ovpn
cd /etc/openvpn
sudo mkdir backup20211227
sudo mv ca.crt client.crt client.key client.ovpn backup20211227/
sudo cp client.conf backup20211227/
sudo mv ~/Documents/Mine/config20211213/{ca.crt,client.crt,client.key,client.ovpn} /etc/openvpn
sudo chmod 400 /etc/openvpn/{ca.crt,client.crt,client.key,client.ovpn}
/etc/openvpn/client.conf
中sudo diff client.ovpn backup20211227/client.ovpn
sudo vim /etc/openvpn/client.conf
# w! sudo tee %
sudo systemctl restart openvpn@client
正则表达式在我们日常的软件开发过程中被广泛使用,例如编写 Nginx 配置文件、在 Linux 与 macOS 下查找文件,然而不同软件不同操作系统对于正则的应用有着不一样的行为,主要原因是正则表达式演进过程中,出现 POSIX
与 PCRE
派系之分。