Living a Simple Life is a Happy Life

有饭吃,自由自在,就非常开心

比特币,AI,以及共产主义

| Comments

从中学的政治课本里面,就一直强调共产主义是我们社会发展的高级形态;但是共产主义社会到底是什么样子的?国家制度什么样子的,婚配制度什么样子的?还有没有警察局,还有没有死刑,还有没有法院….没有人能说清;

但是所有的课本上,所有的理论家,都信誓旦旦的预言,共产主义会实现 生产力极大发展,财产公有,按需分配

这个财产公有,按需分配 ,一直是我的最大疑惑;人性是贪婪无度的,基因是自私的,把自己的东西白送给集体违背人性;也许在某个时期,在某些领袖的权威和人格魅力感染之下,会部分实现这个按需分配,但是长时间的维系这个制度,我是很怀疑的;

而且这个美好的前景的最大漏洞在于: 按需分配,谁来分配呢?怎么保证这个分配者不会腐化呢?

原来我是一直对于这个财产公有,按需分配有怀疑的,毕竟人类自私的基因是几千万年来优胜劣汰留下来的,很难想象会通过某种制度发生改变;

Enable /etc/rc.local With Systemd on Ubuntu 20.04

| Comments

setup systemd service file

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sudo vi /etc/systemd/system/rc-local.service


[Unit]
 Description=/etc/rc.local Compatibility
 ConditionPathExists=/etc/rc.local
[Service]
 Type=forking
 ExecStart=/etc/rc.local start
 TimeoutSec=0
 StandardOutput=tty
 RemainAfterExit=yes
 SysVStartPriority=99
[Install]
 WantedBy=multi-user.target

enable systemd service

1
sudo systemctl enable rc-local

create rc.local

1
2
3
4
5
6
7
sudo vi /etc/rc.local

#!/bin/bash
...


sudo chmod +x /etc/rc.local

Ios Dev and Xcode Cheat

| Comments

自学Swfit开发了一个App,记录一下坑:

  • Swift和ObjectC混编的时候,检查 ProjectName--Bridging-Header.h 文件是否被指定为桥接文件 : Target-> Build Settings ->Swift Compiler -> Install Object-C Compatibility Header 设置为Yes, Target->Build Settings -> Swift Compiler ->Object-C Briding Header 是否设置为这个文件

  • xxx-Bridging-header.h 文件内容一般是 swift的头文件和公共的头文件,内容一般是

1
#import "xxx.h"
  • 当引用类似 #import "happynet-Swfit.h" 提示找不到的时候, 请检查引用次序,类似:
1
2
3
4
5
@import TestDylib;

#include "xxx-Swift.h"

#import "xxxmanager.h"
  • 编译提示少符号的时候,检查 Target-> Build Phases-> Compile Sources 是否把所有文件添加进去了
  • 调试第三方库,例如Tunnel的时候,先用 Debug->Attach To Process by PID Or Name 挂载进程
  • 如果是线程错误,xcode会弹出一个Text Table,显示汇编指令哪一行有问题,同时临近的Table回显示代码文件中对应的哪一行,一般是淡绿色标注那一行
  • 如果出现莫名其妙的编译错误,先Build -> Clean Build xxx;清理一下,重新编译试试

Fix Connection Error Between Ipad and Macbook

| Comments

iOS真机调试,Mac连上iPad一直闪,信任不了设备问题

打开终端Terminal,输入

1
$ sudo killall -STOP -c usbd

命令回车,即可把进程关闭。插上iPhone,正常连接,问题解决。

Fix LVM Disks Missing Under /dev/xxx in PVE7.1

| Comments

PVE7.1,重启后 LVM thinpool 丢掉了一块VM Disk;

解决方法:

1
2
lvchange -an storagename
vgchange -ay storagename

参考:

https://www.mail-archive.com/[email protected]/msg1807169.html https://www.reddit.com/r/Proxmox/comments/ot6lfr/lvm_issues_after_upgrade_disks_missing_under/

Migrate PVE Storage From ZFS to Lvm

| Comments

之前PVE的存储我用ZFS做了三个pool,一个RaidZ1,两个Raid0;

我的PVE内核版本为 5.13.19-6-pve;

实际用下来有一个大槽点;

就是对于12T以上的单盘,ZFS每次写入的时候都会炒豆子音大爆发,放在家里实在不是什么好体验;而且我一直有个困扰已久的问题没有解决;就是ZFS强壮是强壮;但是对于其dataset的管理方式,无论是send还是destroy,每个操作都会有长时间的卡顿lock;另外相对于读性能,不知道为什么,我的RaidZ1写性能一直没有达到单盘读写能力,我加了ARC、ZIL,各种方法都折腾了一遍,但是效果都不好; 还有一个最大的问题,就是虚拟机多了之后,比如我同时对20台虚拟机做硬盘迁移操作;ZFS的lock太严重了,比如我同时delete两个虚拟硬盘,必定lock timeout;这个lock timeout 60s的限制,没有找到设置的地方,只能硬改代码,非常tricky;而不用后台命令,PVE的web UI对于并行操作的支持不好,所以降低磁盘并行操作的locktime非常必要;

Rsync Cheat

| Comments

这条命令我用了不下百次了,但是每次还得查,老年痴呆的前兆,/(ㄒoㄒ)/~~

1
rsync -acvruP --progress /opt/src1 /opt/src2  /mnt/dest/
  • -c, –checksum 打开校验开关,强制对文件传输进行校验; 开了前置计算会很慢,文件多的时候不要用
  • -a, –archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
  • -r, –recursive 对子目录以递归模式处理
  • -u, –update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件);已经有拷贝了一半的文件的情况下不要用,不会自动更新

最后,要注意路径中的斜杠处理:

1
rsync -acvruP --progress /opt/src1 /mnt/dest/

与下面的命令是不一样的

1
rsync -acvruP --progress /opt/src1/ /mnt/dest/

前者会拷贝src1目录,后者会拷贝src1目录下的文件,但是不会带src1

ZFS Cheat

| Comments

特别提示

在各种折腾之前,先看看你买的大容量硬盘自带的缓存开了没有;有一些矿盘,不知道是何原因,默认缓存没有开

1
2
3
4
5
# 查看是否开了写缓存
$ hdparm -W /dev/sdx

# 开启
$ hdparm -W1 /dev/sdx

然后,看看你的SATA接口当前速率是2.0还是3.0,有人就是这么粗心,拿着3.0的盘,插着2.0的线;

1
$ smartctl -a /dev/sdx

ZFS 使用命令小集

列出zpool磁盘

1
zfs list

查看pool状态

1
zpool status

Lnd Low Rescan Speed for Startup

| Comments

Lnd启动的时候需要扫描最近数百个区块来验证安全性,做rescan动作的时候慢的出奇,有时候需要30分钟才能完成这个动作:

https://github.com/lightningnetwork/lnd/issues/760

如果单独启动Lnd可以耐着性子等,但是如果用Lit(lightning-network-termial) 启动的话,因为它集成了数个服务,所以在等Lnd RPC服务就绪前,往往等不到扫描完毕就超时退出了…

因为Lit Debug Log没有打全,我对于这个问题百思不得其解,其在bitcoin Regnet, Testnet, Mainnet上面的表现各不相同….

最后找到的一劳永逸的解决办法有两个:

  1. 换btcd,不要用bitcoin core了

  2. 换ssd硬盘,花钱解决

话说,bitcoin core还好一点,Ethereum一个全节点的成本已经越来越高了,硬盘需求已经直奔2T SSD了;对于个人来说,在AWS上启动一个2T云硬盘的vps着实花费不小;