计算复合增长率

计算复合增长率

这个其实不算复杂,但是经常看到一些小白对此有很大的误解。比如某天在雪球上看到一位朋友,宣称自己从2017年到2020年,四年间收益增长了160%,因此年复合增长率是40%(160%/4,就是这么简单粗暴)。

当然这样是错的。小朋友都知道“国王和棋盘”的故事,第一个格子放一粒米、第二个格子放两粒米、第三个格子放四粒米…… 这样才叫复合增长,计算公式是:

(1+x)^N

其中,x就是增长率, N是计算周期值(例如年份数、格子数)。在小朋友的故事中,x=1,N=棋盘格子数(难怪最后国王要斩了狡诈的棋士)。

对于上述朋友的示例,其实是知道计算结果(即总值 2.6=1+1.6),N=4(年份数),反过来计算 x 是多少。可以用 windows 自带的计算器快速计算,如图采用”科学“面板计算:

科学计算器
科学计算器

由于这位朋友的收益率是160%,总量最后是 2.6,年份数是4年,在计算器面板操作如下:

输入2.6,点击xy,输入4,点击1/x,然后点击=,得到1.27 (这就是开根号的过程)。

然后 1.27 – 1 = 0.27。

即,这位朋友四年的年复合增长率是 27%,远远低于40%。不过从投资角度讲,能做到 27% 的年均增长率,也很厉害。如果后续仍然能保持这个增长率,那就相当惊人了。

给 vbox 的客机系统扩容

给 vbox 的客机系统扩容

主机是Window 10, 运行在 VirtualBox 中的客机系统是 Debian (testing)。当初估计不足,只划了 8G 空间给客机系统,因此面临着容量不足的问题,迫切需要扩容,要不然就要重新构建一个客机,实在过于麻烦了。

从网上搜集了一些信息,有各种问题。绝大部分的资料其实不能算扩容,无非就是增加一个盘,然后 mount 到新的分区而已。而我希望是将现有的虚拟硬盘直接扩容,无需改变或者 mount 特定的分区或者目录。最后通过安装 GParted 软件,加上修改部分配置,终于解决了问题,从8G 扩展到 28G, 如下图所示:

扩容后的硬盘分区
扩容后的硬盘分区

系统只有两个分区: 主分区 和 交换分区。目的就是扩大主分区(/dev/sda1)的容量即可,其他无需改变(至少在使用者的角度是没有任何变化)。

增加 VBox 虚拟介质容量

VBox 新版都支持给虚拟介质扩容,操作简单。在“管理 – 虚拟介质管理”里找到客机的虚拟介质,直接增加容量即可。比如,将介质从 8G 直接调整到 28G。

但是客机系统不是直接就使用了扩容的硬盘容量。新增加的部分对客机系统而言,属于“未分配”的容量,因此需要进入客机系统(也就是 Debian)中进行磁盘管理,让系统能识别、管理这部分新容量。

Debian 磁盘管理

牛人直接用 fdisk 大概就可以搞定。作为一名无可救药的图形界面党, 我当然还是倾向于使用图形界面的软件来解决问题(非常不 linux,非常不 geeker),也就是 GParted。

GParted 很像 Windows 的磁盘管理工具,因此使用起来油然而生熟悉的感觉。启动 GParted 后,很容易就看到未分配的磁盘容量。可惜不能直接移动或者扩容/dev/sda1,原因大概是中间有个 swap 分区。刚开始我被困住了,后来想明白:

既然 swap 分区阻挡了主分区的扩容(移动),那删除掉 swap 分区,那主分区和未分配分区不就连起来了吗? 试试后发现果然如此:(1)删除 swap 分区, (2)调整主分区(/dev/sda1)的大小,(3)然后再重新将剩余的分区设置为 swap 分区。

千万别格式化主分区!只需要重新格式化 swap 分区即可。

GParted 有个bug:在上述步骤中,重新删除、创建了 swap 分区,可是 GParted 并没有修改 /etc/fstab 里对应的 UUID 值!导致每次重启后,发现 swap 区都没有激活使用。

解决这个bug也简单,在 GParted 中查询 swap 分区的属性,获取其 UUID 值,然后修改 /etc/fstab 中对应的 swap 分区的 UUID 值即可。

一点思考

本次扩容过程中,被 swap 分区困扰了很久,有各种问题。要么是 swap 分区阻挡了主分区扩容,要么是 swap 分区的 UUID 更新(这个算GParted的bug)。

如果不设置 swap 分区呢? 修改为采用 swap 文件方式,只保留一个主分区,这样就灵活很多。当然,实际部署 Linux 系统如果采用这种方式,可能会有问题(比如崩盘导致数据丢失等),既然是客机系统,倒是无所谓。

12 + 100

12 + 100

正在看一本投资方面的书《段永平投资问答》,相当好的一本书,居然是免费的。里面谈到关于长期投资的一些观点,据说段永平是两三年才有一个好想法、两三年才出手一次。

书中也提到:芒格说伯克希尔成立57年来仅仅10个好点子,去掉这十次,整个就是笑话。

打开证券软件,看了一眼2020年的操作记录:

交易股票100次、交易股票12只!

不禁流下了贫穷且没有格局的泪水……

2021 桌面

2021 桌面

每年一次的恶趣味…… 2020年的桌面其实没怎么变,只是换了个位置而已。

2021 桌面
2021 桌面

深圳在 2020 年就跟疯了一样修地铁,到处都是灰。当然,汽车尾气等各色污染也非常多,桌面上也满满的风尘色。

DNS over HTTPs

DNS over HTTPs

传统的 DNS 基于 UDP 协议,并且采用明文方式传递请求和结果。在互联网早期,这样做没什么问题。而现在网络越来越复杂,网络实体越来越多,各种看得见、看不见的手都可能修改 DNS 的结果。

简单的解决方式就是对 DNS 进行加密。 Mozilla 联合 Cloudflare 通过 HTTPs 来传递 DNS 消息,也就是 DoH (DNS over HTTPs)。这种方式从设计上看,不如 DNS over TLS 高效,但是胜在简单、无需过多更改网络设备和软件。

Firefox 已经内置了对 DoH 的支持,而且非常简单。问题是默认的两个 DoH 服务商:Cloudflare 和 NextDNS,在国内由于某种不可描述的原因,访问速度都很受影响。实际上国内腾讯和阿里的公共 DNS 服务也支持 DoH,以腾讯为例,它提供的 DoH 访问地址是:

https://doh.pub/dns-query

Firefox 的网络设置中,按下图进行配置即可:

Firefox 中设置腾讯 DoH
Firefox 中设置腾讯 DoH

另外,阿里提供的 DoH 访问地址为:

https://dns.alidns.com/dns-query
FED模型(股债收益差)投资法

FED模型(股债收益差)投资法

在雪球上看到一篇文章(请点击此处),介绍了一个 D 值的估值方法(实际就是美联储的 FED 模型,也就是“股债收益差”模型),用于判断股市是否高估。作者主要投资沪深300指数基金和国债,根据 FED 值调整仓位。

FED 值计算比较简单,以下是计算公式:

FED 差值 = (沪深300收益率 - 十年国债收益率)*100

作者指出:低于2清仓,高于6满仓。理解起来也容易,低于2说明股市已经高估了,风险和收益不匹配,不如直接投资国债;高于6则相反,股市极度低估,收益远超国债。

D 值区间判断

其中, “沪深300收益率” 就是“沪深300市盈率”的倒数,点击此处获取“沪深300市盈率”数值。“十年期国债收益”数据请点击此处获取。

下面我们简单计算一下目前的 FED 差值:

沪深300市盈率 = 16.35
十年期国债收益率 = 3.319%
FED 差值 = (1/16.35 - 3.319%)*100 = 2.7

从估值看,当前股市已经处于高估阶段。

NetworkManager state is now ASLEEP

NetworkManager state is now ASLEEP

最近有一台 HP ELite 笔记本退役了,其实配置还不错,500GB SSD 硬盘、16GB内存,看着挺轻薄,本来还打算用来替换自己平时使用的笔记本,后来发现有些不爽:(1)触控板有点飘 (2)有个键被我不小心按坏了,也许本来就坏了 (3)屏幕时不时出现横线、甚至出现闪烁,很不舒服。

食之无味、弃之可惜。忽然想到可以安装 Debian 做家庭服务器用,上述缺点就无关紧要了。安装了最新的 Debian 10, 然后修改成 Debian(sid),过程很顺利。非常棒!以至于我甚至打算直接 VNC, 或者用 VSCode 登录上去做一些开发工作。

因为是当服务器用,因此一直都是合盖,然后扔角落里默默工作。接着又发现一个问题:过一段时间后,WiFi 网络老是断开,无法远程登录,需要重新开盖然后登录。琢磨着大概是系统休眠了,检查 syslog 信息,发现以下信息:

NetworkManager: sleep: wake requested (sleeping: yes  enabled: yes)
NetworkManager: state change: unavailable -> unmanaged (reason 'sleeping', sys-iface-state: 'managed')
NetworkManager: NetworkManager state is now ASLEEP

看来确实休眠了。搜索网络,查到一篇 Ubuntu 停止休眠的文章(请点击此处),考虑到 Ubuntu 和 Debian 本质没什么区别,操作也是有效的。

关闭休眠功能,请使用以下命令:

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

当然,如果后悔了,需要重新打开休眠功能,可以使用以下命令(未验证):

sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target
两则漫画

两则漫画

来自微博“乌合麒麟”:

澳洲军队残杀阿富汗儿童
– 和平之师 –
澳洲总理莫里森要求道歉
– 致莫里森 –

背景介绍:

(1)澳大利亚国防军督察长办公室11月19日发布的一份报告,揭露澳军在阿富汗残杀平民,其中包括残忍割喉两位儿童。

(2)国内漫画作家“乌合麒麟”创作漫画“和平之师”进行讽刺。

(3)“和平之师”获外交部发言人在推特上转发。

(4)澳大利亚总理莫里森要求道歉。

(5)“乌合麒麟”发表新漫画“致莫里森”回应。

关于本次事件的细节,请点击文章:“我可以,你不可以”。

2020汽车年审

2020汽车年审

与2019年类似(请猛击此处链接),直接在“深圳交警”公众号里预约申请即可。吐槽一下,这个预约申请的页面估计是直接应用的电脑网页版,又没做网页适应,在手机里操作时,字体细小得简直眼瞎。

费用依然是290元,无需在预约时缴纳,到现场车检时再交即可,支持微信支付。

提交资料:(1)身份证 (2)车辆行驶证 (3)交强险保单。

关于交强险保单,今年因为是电子档,所以没有带纸质单,但是现场似乎也没有查到,后来是找保险把电子档发到手机上,然后在现场打印出来。这样来回耽误点时间,以后为以防万一,还是应该先获取好电子档,然后自己先打印出来随身带着。

检测流程非常舒服:将交通三脚架放副驾驶位置、 缴费、 然后将车钥匙给工作人员,就没有其他操作了,在检测中心的休息室等着检测完即可。

同样,只有一个年审标,没有单独的绿标。年审标不用贴车上,放车上带着就可以。

可能是因为新规(6年以内免检,6年以上10年以下2年检一次)的原因,今年年检的车比去年要少一些,去了基本就检。提早一点去也没有问题,本次我预约了10点钟,实际9点20左右就到了,大约30分钟就检完了,算上交强险耽误的时间,全程也大约只要50分钟。