就像我之前写的很多文章说的那样,我大学毕业的时候,英语四级其实都没过,最高分是58分。我觉得58分跟60分没有本质区别,于是心安理得没有去再考四级。我是一个程序员,英文的技术文章我可以大概读懂。虽然在生活中,我听不懂外国人说的英语。我也最多只会说Hello,How are you之类的东西。
但是我觉得这辈子我的英语水平够了。看文章的时候,遇到不会的单词我就查呗。而且我那么聪明随机应变能力那么强。25、26岁的时候,我在北京,我还遇到过两次老外问路,我都用我蹩脚的英文能力解决了。
就像我之前写的很多文章说的那样,我大学毕业的时候,英语四级其实都没过,最高分是58分。我觉得58分跟60分没有本质区别,于是心安理得没有去再考四级。我是一个程序员,英文的技术文章我可以大概读懂。虽然在生活中,我听不懂外国人说的英语。我也最多只会说Hello,How are you之类的东西。
但是我觉得这辈子我的英语水平够了。看文章的时候,遇到不会的单词我就查呗。而且我那么聪明随机应变能力那么强。25、26岁的时候,我在北京,我还遇到过两次老外问路,我都用我蹩脚的英文能力解决了。
我一直觉得投资跟我是没有关系的,我总想着我有一天可以做出点什么东西,然后发个大财,然后再去考虑投资和理财。
然而现实沉重的打击了我。Bill Gates 20岁的时候就创办了微软。而Jobs在21岁就创办了苹果公司。而21岁的我走了一段弯路,刚刚大学毕业。我当时也不知道他们两个都是先退学后创业的。我没有胆量退学,懵懂的进入社会,一点点的摸爬滚打,到了29岁才开了第一家公司,但是到了今天也没成就什么事业。
过了21岁以后,我一直用Craig Newmark的故事激励自己。这个事儿是这样的:有人曾经在美国的论坛问说硅谷有无数的少年成名的故事,Gates, Jobs啊,还有Zuckerberg等等,有没有年纪比较大的也创业成功的例子。那个人说,我已经30多了,不知道还有没有勇气去创业。
当时Craig Newmark就留言说,我是42岁才创业的,做了一个东西叫做Craigslist。
国人知道Craigslist的可能不多,这是美国以及全球分类广告网站的鼻祖,58同城,百姓都是学它的。Craigslist至今没上市,所以也没法说市值有多高,不过年收入至少过10亿美金吧。还有很多流行的App其实很大程度就是脱胎于Craigslist,比如Airbnb最早的用户都是从Craigslist搞来的。
然而,这样的激励作用越来越淡了,因为我已经41岁了,明年就42了。再往后,我只能靠王江民45岁创业来激励自己了。如果再过几年,我估计我只能用姜子牙80岁出道来安慰自己了。
去年我经历了人生的比较大的波折,开始反思这一切,也开始投资。我没有看啥书,也没有学啥课程,直接买了一堆基金和股票。
我不知道怎么买股票,胡乱买,看同事朋友买啥就买啥。就这样到现在已经快1年了。挣了一点点,个股上也有亏损的。整体上讲,我发现我不适合做交易员,我不喜欢时时刻刻的盯盘。我经常会忘记盯盘,偶尔做了几次T,也是败多胜少。但是,总的来说我还是赚了。
凡是做短线的,我都很难做好。我觉得这就是性格决定命运,我的性格不适合做短线。没有那么渴望赚钱,无法看着K线图傻乐。我只适合做长线。我只适合去买那些我笃信它是一个好股票,只是被暂时低估而已的股票。一旦买了下来忘掉涨跌,这些股票最后总是会给我带来惊喜。
反过来,我觉得这也是人生的问题。人生也是性格决定命运。我当然羡慕Gates羡慕Jobs,但是我可能显然不是那种少年成名的英雄。唉,这不是废话么,我早就不是一个少年了。
我想一个人大器晚成,也许都是被逼的,谁不想少年成名呢?我也许不能大器晚成,但是我但凡能做出来点东西,也只能被叫做大器晚成了。
也许从40多岁才开始培养长线思维确实有点晚。但是,60岁才有收获,也比60岁还没有收获要强。
我们都是不幸的也是幸运的。
我高中同学里面居然有一个就死在了我大学还没毕业的时候,他在另外一个城市上大学,出了一场车祸。我不管有糖尿病高血压,我居然挺到了40岁。
我小时候生活在一个环境叫做农场。我妈和很多阿姨一起干农活。我们小时候,都不知道阿姨叔叔叫啥名字,只知道这是谁的妈妈谁的爸爸。我小时候,就有一些叔叔阿姨去世了,有些才50岁不到。
头两天农场30多个阿姨大聚会,我妈也去了,她们在一个饭店吃完饭走在大街上,正好跟我遇上,我跟她们打了一个招呼。很快就有阿姨认出了我,一堆阿姨问我还认得不认得。有几个还想得起来。比如我们韩学霸的妈妈,毕竟韩学霸从小学到高中都跟我一个学校。有些就想不太起来了。
晚上回到家里,我跟我妈聊天,我说科技就是进步了,你们也看得出来。你看当年农场的叔叔阿姨,有些50岁不到就去世了。但是那一拨没有去世的,现在大多数都活得很好,都60-70多了。我妈也说可不是吗,那个年头,得个癌症就必死,现在很多叔叔阿姨都是得过癌症,治好了都好多年了。
这个世界在慢慢的发生变化,每一个人都有可能活得更长。我们的思维也需要发生改变。我父母那一代退休了就基本上靠退休金了。而我这一代,至少从我的角度考虑,如果退休了没有老年痴呆的话,投资可以继续投资,写代码也可以继续写代码,写文章还可以继续写文章。人生也许退休了才刚刚开始。
我的论坛 Ourcoders.com 每年都有人问30了,或者40了,开始学习编程,移民、转行、投资可以么?其实答案当然是都可以。
为啥不可以?我从21岁到39岁都是完全靠写代码维生(包括创业也是写代码),这两年,我基本上是靠写文章维生(包括技术咨询),也许过了几年,我主要的谋生手段是做视频。从技能的角度我一向都是长线思维,一种技能如果能用5-10年,花个一年半载学习怎么会亏呢?
但是人生不仅是技能,也包括如何投资,如何理财,这些是我这两年才开始学的。有些人会觉得你都玩了1年股票才赚了那么少,值得么?或者说你学的是不是太慢了?我自己感觉很好,才1年就赚了这么多,我不能一直投资到60岁,90岁么?从20年甚至50年的角度,我要赚多少啊?
慢不代表永远慢,如果盈利是可以积累的,慢是一种很可怕的力量。我不想要几秒钟几十万上下的那种快,我没有那个能力,也没有那个心理承受能力,我只想要每年都能赚个10%的那种慢慢积累的感觉……
嗯,今年做到了,看的是我能不能一直保持一种稳健的,慢慢积累的态势了。
这世界上有用的东西太多了,要是我们只在小学到大学的期间学习,我们能学到多少呢?好在从20到90岁,这70年,从来没有人禁止我们慢慢的学点什么,慢慢的变成什么。
是的,我还前途无量,我还没到80呢……
杨笠在脱口秀大会的比赛上说,弟弟问她,“姐,这么多年了,你为啥不找个男朋友?”
而杨笠的回答是:“那你,为啥不上清华啊?是因为不喜欢吗?”
杨笠是我最喜欢的脱口秀女演员之一,也是我最喜欢的脱口秀演员之一。我觉得正是因为她有逻辑,她可以看破一些常见思维中的逻辑问题。
这就让我想起了很多人喜欢谈自我意识,喜欢谈选择自由,但是很多时候,他们并不知道什么是真的选择自由。
今天我就想聊聊什么是真的选择自由。因为我个人觉得选择自由是我人生最大的一个目标。而选择自由的真实存在建立在三个前提下,第一是可以选择,第二是信息透明,第三是物质基础。
很多时候,我们会把这三个前提忽视,所以就会把没有选择当作了自己的选择。
第一是,可以选择。
就是说你所处的环境,你的人生阶段让不让你选择。举个例子,经常有人问,你当年为啥大学选了某某专业。有些人就会侃侃而谈,这个好,那个好,等等。但是其实他没有得选,他的父母让他上哪个专业他只能上哪个专业。
这其实就不是选择。你走上了什么道路,如果确实有一些选择在你面前,让你选,那么就是一个选择问题。但是如果只有一条道路,你走也得走不走也得走,那就根本不是一种选择。
很多人喜欢为这些迫不得已找到理由,比如虽然是被逼的,但是过得还不错。这就有点像过去婚姻都是包办婚姻,有没有正好两个人还能过到一起去,甚至觉得很幸福的呢?当然会有。
而且自由恋爱会不会后悔呢?当然也会。有人喜欢用自由恋爱的社会离婚率高来为包办婚姻来辩护。但是,第一,离婚率高恐怕更多来自于可以离婚。而很多时候在过去,离婚几乎不是一个选项。第二,自由恋爱是一种责任自负,自己的选择,错了,自己咎由自取,而不是别人帮你做选择,错了,他不承担后果,你来承担。
这就有点像,中国人现在喜欢嘲笑美国人的疫情死亡率更高。但是我也很少见到美国人因此哭着喊着就要移民到中国的现象。政府管的不够严,需要自己决定是不是戴口罩,是不是严格遵守社交距离,是不是不要乱出门。这当然不能像中国这样把疫情管控的更好。但是,如果一个人自己又想要这种自由,又因为这种自由和自己的不经心而受害,他当然也要自己承担起责任。
第二,是掌握信息。
很多时候,有的人有选择的自由。但是他不掌握信息。举个例子,你谈恋爱的时候,遇到两个男人,一个是渣男,你最不喜欢的那种。一个是好男人。但是你并不了解这两个人,最后你选择了渣男。
这也是不是一种自由的选择呢。这当然是一种自由的选择。但是实际上你没有达成最佳选择的自由。
这是人生最常见的问题。如果你知道房子一直涨,你肯定会买房。但是有的人觉得一直涨买了,有的人觉得不会一直涨就没买。
信息永远是不对称的,所以,大多数人做出决策和选择的时候,都不见得能给自己带来最大的价值。
但是信息自由又是可以去追求的,看书,学习,理解世界,可以让你在很多层面获得更多的信息自由。这些信息的自由就可以让你获得更好的选择。
第三,是物质基础。
其实我这一生都比较追求自由自在,这也是我为啥存款一直都没有,一直都月光的原因。我一直觉得自己挣钱能力还可以,虽然花的多,但是从来没有经历过特别大的经济压力。而且我一直觉得程序员是一个可以干到80岁的行业。而我在34,35的时候,还把自媒体开发成了一个收益不错的副业。
但是这两年我突然发现,物质基础是选择的一个大前提。比如你买房与否,不仅仅是你想不想买的问题,还有个首付你是否出得起的问题。我收入虽然还可以,但是总是月光,所以我买第一个房子,并不是因为我平时有存款,我的存款一直都没有。而是因为我自己的公司,在走出一段困境以后,给我补发了半年多的工资。这一笔钱让我以前的月光性格是怎么也存不下来的。于是我果断的跟父母再借了点,买了一个房子。
买车也是如此。你想移民也是如此。很多比较大的人生改变,都需要你有一笔不小的钱,才能启动。月光不仅仅是不能积累财富,而且是让你丧失了一堆重大人生改变的机会。
从这个角度出发,我开始存钱,存钱的目的还不是为了积累财富,而是给自己获得选择的自由。
说在最后
当然这也是我想移民的一个原因,单独论生活和挣钱能力,我当然是在中国可以生活的更容易,毕竟不管我学了多久英语,日语,我说中文的能力比这些强太多了。我在中国也有无数的亲朋故旧,出去的话,我会需要从头开始积累很多东西。但是在我看来,我可以有更多的选择。
刚才有人在冯大的知识星球上提问,《Gitee得到了工信部的支持!冯老师您觉得将来会完全成为github的替代品吗?》

大辉回复,怎么可能。
我的回答:
如果你觉得github就是一个代码仓库,仓库里面的项目都可以被复制过来,github以后不会继续有人更新,背后没有美国的开源文化、法律、社区的力量的话。那么当然可以替代。明天就可以,哦,不对,最好的带宽估计也要拉上个几个月吧。
其实这个回答可以类比的是,有些人真的以为现代科学就这样了,这个世界的创新也就这样了。所以他们相信脱钩也无所谓,闭关锁国,自力更生,我们也可以做全球最牛的国家。
美国一纸禁令就让华为无法使用高端芯片,台积电也无法继续给华为代工。余承东在发布会上已经承认华为的麒麟已经成了绝响。
其实也不难解释,整个芯片产业都是基于美国的科技发展起来的。因为半导体集成电路产业就是美国搞出来的。因为计算机就是美国人搞出来的。虽然最先进的光刻机是荷兰公司搞的,但是背后的技术专利和投资很多都是美国的。可以说涉及到高端芯片的每一个要点,光刻机,EDA软件,材料工艺都跟美国紧密相关。
当然也可以搞。英国不是出了Arm么?芯片灵魂的最核心就是IP核,架构这些东西英国公司可以搞,中国当然也可以搞。光刻机不是荷兰公司最厉害么?荷兰可以搞中国当然也可以搞。
但是受限于对华的高科技产品禁令,有些高端技术你买不到,只能自己做。
这些其实是很多文章视频都讲过的东西,我的视频主要在讲,我认为更重要的,知识产权、法律和创新。
没有知识产权的保护,只有国家投入才能做大规模的在IP,软件,算法方面的投入。但是在有知识产权保护的国家,各种资本会主动的去投资做各种创新的投资。其实是事半功倍的,但是中国对知识产权的保护可以说几乎没有。这是最大的一个问题。
法律和创新环境也是非常大的问题。
参考资料:
几年前我就认真的看过一次 Robert J. Shiller 教授的 Financial Markets 课程1,觉得非常喜欢,而且第一次让我懂得了为啥投资需要分散,不过我后来就忙着别的,看了几课就没看下去。既然我最近开始认真的投资股票和基金,我觉得我还是需要好好的学习,这个课是我觉得最好的,争取彻底看完,每一课争取写一篇文章,写点心得体会啥的,以免上了白上。
今天看了第一节 Introduction ,这部分比较泛泛,我主要也就是听个乐子。不过有个关于保险的片段很有意思,也让我联想起我看过的另外一本书 ,所以记录一下。
保险在古代罗马就出现了,但是其实很小众。到了17世纪,概率论提出后,保险的概念才真正的建立起来了。在此之前,从直觉上人们知道怎么去搞一个保险服务,但是没有概率论的知识怎么准确的计算风险,也许可以做一个生意,但是风险不知也很难做大。而后来保险越来越发达,而且在人们生活中起了越来越大的作用。
但是人们都知道保险可以帮我们降低损失,但是其实保险是可以直接拯救生命的。
Shiller 教授的例子是2010年海地发生了大地震。这次大地震根据wikipedia的数据2,影响了300万人,死亡10-16万人左右。而几十年前的地震震级差不多的三藩市的地震,死了很少人。受灾人数,房屋损失在海地都比三藩市高得多得多。
简单的想很多人会想海地比较美国穷,所以自然房子更不坚固。这当然也有道理。但是很多人会忽视的是,海地因为穷,保险行业不发达,所以很少有房屋有保险,地震了没有赔偿是一点,更重要的因为没有保险行业来保证房屋的安全。所以,也就没有保险行业来承担风险从而来确保房屋建造的时候符合某种建筑标准。
而在发达国家,你想给房子买保险,但是房子的抗震等级不够的话,保险公司是不给你保险的,这就保证了大多数房子的抗震等级。从而在灾难来的时候不仅可以给你的财产损失带来保障,而且也最大程度保证了你的生命安全。
很多人觉得慈善是可以解决问题的,但是首先不能把那些已经逝去的生命带回来,另外其实相对于大规模的灾难,慈善的力量往往是不够的。而保险是一个有利可图的生意,可以发展到非常巨大,解决真正的广泛的问题。
这也是这次我国南方遭受巨大水灾的时候,我看到那些家园被淹没,工厂里面的机器被泡坏,货物被泡坏,很多人欲哭无泪的时候,我想得最多的,为什么我们的保险普及率还那么低,这些情况本来可能避免很多损失。
当然,这跟我们的诚信社会根本没有建立起来有很大的关系。很多人对保险不信任,而事实上很多保险公司确实也不值得信任。
这让我想起看《One Billion Customers(十亿消费者)3》里面看到的故事。这个故事某种程度上我认为算是一个反例。小标题叫做 Rocket Science,有兴趣的可以自己找来看。
故事是从美国人的角度去写的,跟我小时候知道的这些事件的原因有些区别,因为我们了解中国的航空航天都是从新闻报道。现在看到了另外一边的故事,会发现可能另外一边的故事更可靠一些。
故事是从 1992 年 12 月 21 日,中国的长征二号捆运载火箭发射美国休斯公司的 Optus B2 通信卫星发生事故,火箭点火后47秒卫星发生爆炸,火箭仍然将卫星残骸送入轨道。在公开的新闻里面,双方互相认为火箭与卫星没有问题,并继续合作后续的发射项目。然而在书中说,休斯的调查发现事故的原因是整流罩(nose cone)的设计缺陷,它在发射中裂开了。但是中方不肯承认有任何责任。因为你懂的承担责任会带来对他们个人的政治后果。而且有很大的经济损失,承担责任可能影响保险公司后续承保,而影响后面的发射任务。
当时,美国的商业发射收到了航天飞机事故的印象,从成本上,找中国发射也更便宜。于是,休斯同意书面声明,火箭的设计和制造没有任何问题。而声明一做出,中方很痛快的按照休斯的建议去修改整流罩设计,用了更强壮的铆钉。然后94年,Optus B3的发射成功了。
然而到了95年,长征二号捆运载火箭发射美国休斯公司的 Apstar 2 又在发射50秒后失败了,这次星箭全毁。这次休斯的调查结果依旧,但是中方再次不承认。最后两边只能发声明把问题归咎于风。美方认为在冬季高空切变风条件下,运载火箭整流罩的局部结构破坏。而中方则认为在冬季高空切变风条件下,卫星和上面级与运载火箭的特殊联接方式出现谐报,造成卫星局部结构破坏。4
然后,到了96年,长征三号乙火箭发射事故,在点火起飞后姿态出现异常,飞行约22秒后撞山爆炸,星箭俱毁,事故造成6人死亡,57人受伤住院,毁伤民房80余间,爆炸威力估算达到55.6吨。
事故发生后国际保险界多次强烈要求中方必须成立独立评审委员会,对中方的故障调查作出评议,作为后续发射的亚太1A通信卫星的承保条件。
后来,中国建立了自己的中国航天保险联合体,专门来承保中国的航天发射,如果有国外的公司参与承保,则一起分担分享,如果没有则独立承担全部风险。
这之后中国航天对外发射服务彻底陷入低谷,直接导致中国航天部门彻底进行质量整顿。中央电视台除了重大航天发射任务,也不再进行卫星发射直播。
这个例子,其实可惜的是国外的保险公司没有在第一次发射事故以后就深入的质疑和要求搞独立调查。事实上,这是中国航天上最大的挫折之一,但是我们之前看到的新闻都没有谈到这个部分。
2019年到现在,中国航天又失败了5次,怎么在现有体制下解决质量问题,也许又成了新时代的一个老问题。
这两个故事其实都挺颠覆我们传统对保险的理解和想象,因为一般理解为,保险公司就是为了时候的赔付负责。但是事实上,发达的保险市场,为了让自己更少赔付(商业本能啊),保险公司常常都参与建立规则和核查去降低系统风险,从而让自己获得更大的利益。
最近适逢A股牛市来临,我本来就盈利的股票,又涨了一波,我之前埋伏着等着反弹的股票也马上变成盈利了,我反而无所适从了,不知道该怎么应对。
有很多公司的 Github 企业版运行在完全的内网,有些公司的 Github 企业版运行在公网上。不管内网还是公网,从企业信息安全的角度上公司、安全人员或者管理人员总是希望给服务器加上 IP 访问控制。
我之前研究了下,原来 Github 企业版已经内置了 UFW 防火墙软件。其实,我们只需要简单的利用 UFW 防火墙增加一些访问规则就可以轻松的给服务器增加 IP 访问控制了。
刚才无聊在 Google Trends 做了一个小测试,我分别搜索了 How to learn English, how to learn Chinese 和 How to learn Japanese,很好玩,发现搜索学英语的人大概是日语的4倍多一点,是6倍多一点(过去一年的数据)。
最近同时使用 Xcode 11 和 Xcode beta (也就是12),发现,后者性能提升超级明显,而编译器的理解能力也提升很多。
比如,我的一个SwiftUI代码里面,有一个稍微复杂一点的判断逻辑,有三个 if/else 分支,如下:
Group {
if(index>0 && item.rating>4.0) {
PoiLargeImageCell(item:item)
}else if(index==0){
InvisibleCell(largeHeadView:self.$largeHeadView)
PoiCell(item: item)
}else {
PoiCell(item: item)
}
}
这个代码在 Xcode 12 可以正常编译,没有任何问题。但是,在 Xcode 11 下就会直接报错,而且是那种完全文不对题的错误信息。错误信息不是在 Swift 5 发布后有改善了么?但是在这个问题下仍旧文不对题,所以,我只能把这个稍微复杂一点的 if/else 语句改为两个 Group 嵌套的做法,如下,这样在 Xcode 11 就可以正常编译了。
Group {
if(index==0){
ZStack{
InvisibleCell(largeHeadView:self.$largeHeadView)
PoiCell(item: item)
}
}else {
Group {
if(index>0 && item.rating>4.0){
PoiLargeImageCell(item:item)
}else {
PoiCell(item: item)
}
}
}
}
为了迁就编译器,代码变啰嗦多了。不过暂时需要这么做,期待 Xcode 12 早日正式发布。这么多年以来,第一次感觉苹果的 Beta 版本这么靠谱,感觉苹果今年果然有点进步。
今天我用 Xcode 11 提交一个 app ,遇到了一个以前没见过的错误信息,“Profile doesn’t include the com.apple.application-identifier entitlement.”。查了下,原来跟 MacOS Big Sur 有关系,跟 Xcode 11 和 Xcode 12 beta 也有关系。解决方法很搞笑,那就是用 Xcode 11来编译打包,用 Xcode 12 beta 来 upload app。详情可以参考苹果开发者论坛的相关帖子。