杂言碎语 > 下单华为mate 30 4g版本了
2020-08-08
还是放弃小米手机了。
至少手头的mix2的体验让我不怎么愉快。
至于为什么是mate 30,主要是为了浴霸摄像头和刘海。
一方面是的确符合我的审丑。
另一方面是对称的设计让我更舒服点。
Linux > pve还是好用
2020-07-01
说道要换掉glusterfs, 就立刻动手了
然后不得不说pve好用。
一开始还担心数据迁移的问题呢。
结果pve集群直接挂载glusterfs,在virt-manager里关闭虚拟机,mv一下,pve里启动创建好的虚拟机,改一下网卡名称,就可以直接转移的ceph里了
转移的过程中虚拟机还能继续运行。
只能说,真好用……
Linux > gluterfs必须要换啊……
2020-07-01
看上去很美,结果效率问题好大。
要想正常效率不出问题,估计只能全部以虚拟机的vm文件方式当整个文件来使用。
但既然都这样用了,何苦还用gluterfs。
还是把数据分步切换到cephfs吧
Linux > [记录]同一个磁盘在zfs下replace报错device removal is in progress的问题
2020-06-19
做了一个pve的zfs,做数据恢复测试。
失败,报device removal is in progress
搜了一下,zfs会把磁盘开头和结束的数据做对比,和之前一致的会当成同一个盘。
解决方法:
用dd覆盖磁盘开头和结尾的部分
dd bs=512 if=/dev/zero of=/dev/sdxxx count=204800 seek=$(($(blockdev --getsz /dev/sdk) - 204800))
dd bs=512 if=/dev/zero of=/dev/sdxxx count=204800
参考:
https://unix.stackexchange.com/questions/346713/zfs-ubuntu-16-04-replace-drive-with-itself
Linux > 微软Teams Linux版使用体验
2020-06-12
今天和客户电话会议,发现终于不再需要用烂的令人发指的skype for bussiness了,使用的是team,而且还有linux桌面,不需要再虚拟机走起了,赶紧使用了一下。
和同样有linux版的zoom做个对比吧。
- Teams登陆好慢
- Teams会加入自启动蛋疼
- wayland下分享桌面失败,切换成xorg后成功。
总体来说,和zoom在linux下的表现还有一定的差距。
但是秒杀skype几百个来回是没什么问题了。
体验环境:
Debian testing/gnome3 +xorg
我偏要说 > [知乎不让我说]如何看待美国国防部长公开反对特朗普?
2020-06-05
因为枪杆子里出政权。
枪杆子才是政治力量的直接体现。
政治力量不是靠一张张的选票,而是靠背后的利益集团保证的。
选票只不过是用一种比较文明点的方式,替换了战争把利益集团的力量对比体面点的表现出来而已。
一种内耗比较小的新的游戏方式。
选票和选票选出的总统位置真的没有建国自以为的那么重要。
工地 > 新建一个分类-我偏要说
2020-06-05
自己维护一个站点的优点,就是只要没有不可抗力,我想说什么,就能说什么,不需要任何人的审核。
没有听众没关系,至少有我自己听。
这个类目下,就放那些不被喜欢而删除的文章吧。
Linux > 将ssl证书从openssh格式转化为老rsa格式。
2020-06-02
在junmserver里设置服务器,提示ssh 证书格式有问题。
提示为"暂不支持OPENSSH格式的密钥,使用 ssh-keygen -t rsa -m pem生成"
看了下,新版本的ssh-keygen默认生成的证书为openssh rsa格式的,即开头为
"-----BEGIN OPENSSH PRIVATE KEY-----"
这个格式比较新,容易有各种兼容性的问题,需要转换为老式的
"-----BEGIN RSA PRIVATE KEY-----"
格式
参考
https://stackoverflow.com/questions/54994641/openssh-private-key-to-rsa-private-key
使用
ssh-keygen -p -N "" -m pem -f /path/to/key
指定格式并重设密码即可。
代码 > github.com/googollee/go-socket.io的两个坑
2020-05-26
几年前的项目用过socket.io,用了github.com/googollee/go-socket.io这个库起了服务。
最近需要做一点升级,发现了几个蛋疼的坑。
1.BroadcastToRoom反应迟缓
这个好分析,爬了下代码,broadcast的时候是同步的……同步的……同步的……,不是并发的。
万一有连接超时,必须等超时的连接过了timeout才能发下一个……
真有想法。
解决方案:用ForEach方法自己实现一下
func BroadcastToRoom(s *socketio.Server, nsp string, room string, event string, args ...interface{}) {
s.ForEach(nsp, room, func(c socketio.Conn) {
go func() {
c.Emit(event, args)
}()
})
}
2.400错误,提交的信息丢失
这个怕了整个代码,无解。
首先,有错误后不打任何日志,直接返400错误,这个操作略骚
其次,明明每次请求不是异步的,偏要解析payload搞几个chanel搞成异步,然后有pause和resume的状态,判断了pause会报错,这个我也没抓到点。
参考
https://github.com/googollee/go-engine.io/issues/82
解决方案:
检查代码后,websocket没对应的方法……
客户端强制使用websocket....
强制使用websocket我还走一层socket.io干嘛……
杂言碎语 > [记录]关于编程/数学能力和逻辑思维能力的关系
2020-05-12
记录下自己部分知乎回答的内容
很多程序员被认为情商低,就是因为思路长期模拟程序,对现实生活产生了偏差,认为世界是二元的,是非黑即白,有特定输入就一定有特定输出的,不然就是出bug的思路。
我认为,这是对认识世界能力的摧残,是缺乏辩证认识和分析社会能力的体现。
而"辩证认识和分析社会能力"是我认为的逻辑思维能力中最重要的一块。
因此,我认为,学习编程对逻辑思维能力有极大的负面作用。
我认为编程也好,数学也好,本质需要的不是逻辑思维能力,而是想象力。
编程能力和数学的能力是需要一种能构建和想象出不存在于现实世界中的架构的能力。
所以我写代码和做数学是唯二需要用到纸笔的事情。
通过画一些简略的图,帮助自己更好的在脑海中架构出我需要理解的东西,像脚手架一样为因为我想象力不足而摇摇欲坠的理解进行稳定和支撑。