与这个世界相处的策略

刚刚过去的五一假期,我自己终于买了人生当中第一款属于我自己的游戏手柄,正式开启了在 Steam 上玩游戏。我预感,我会慢慢的退出在手机上搓屏玩游戏的行列。用手柄玩游戏,我终于又找回了童年玩游戏的感觉。

因为目前手头上并没有 Windows 设备,只有 macOS,所以我将最近几年 Steam 上能在 macOS 上玩的游戏翻了个遍,把一些看起来有兴趣的游戏加入了心愿列表,列表里的游戏会在未来有打折的时候做出提醒。

对于游戏的方方面面,我又重新进行了深度思考,更新了自己心中的原有答案。但是我不想在公共场合讲出来,因为,我的答案不太符合当下社会中大多数人的道德标准,特别是国内这样的一个意识形态,我不想被「群居而攻之」。这不是怯弱,这是明智。活到我这个年纪,应该会学保护自己。另外,对于游戏中的音乐,我自然也是非常喜欢,我甚至在 YouTube 上找到了一大票 Cosplay 的 YouTuber,订阅了其中一个来自台湾的频道。关于游戏内容的讲解,我选择了一个位于北欧的华语 YouTuber。

在过去的三周里,《计算》 1这本书也读到了将近末尾,今天过后,应该还会剩余一章的内容。在具体知识层面,这本书给我最大的启发有三点:

  1. 以现代计算为目标,顺带了解了数学的发展脉络。虽然了解的只是其中的一个分支,但让我已受益匪浅。以后再读相关数学书籍的时候,心中可以做到所读内容大致位于数学这棵苍天大树的什么位置。即便不知道,我也有能力进行检索,这就足够了。
  2. 之前学了很多计算机方面的知识,包括硬件和软件。其实,只不过都是数学的具象化。终于让我将数学和计算机之间千丝万缕的联系有了更理性的认识。其实,将计算机换成物理,化学,生物等其他学科领域也都是一个逻辑。对于这一点,我甚至自己「悟」出了为什么会有算法这门课?或者再往大了说,为什么会有计算机这门学科?
  3. 书中的数学家都是再平凡不过的人,甚至活着的时候有着万般的不如意,死后多年才被社会认可。所以给我的启发就是,对于一个人的评价,往往并不取决于当下。如果你对人类文明有所贡献,历史会对你做出评价,或早或(很)晚。所以对于当下活着的我来说,主要任务就是按照自己想法,好好生活。别人的看法都是一坨 shit。

不夸张的说,这本书应该是我近几年读的书里,对我启发最大的一本。

所以,我到底应该采用怎样的策略与这个世界相处呢?

无可厚非,这是个快速发展的时代,但也是一个物欲横流的时代。在物质上进行无节制的攀比,「笑贫不笑娼」依然是这个社会的主旋律。只不过,手段上要比前些年更隐晦和「文明」了一些,但从本质上来说,其实都是一样。

所以,跟当下社会主流意识形态比起来,我就变成了一个「理想主义者」。就像我之前文章里所说,钱这东西,生不带来,死不带走,「够用」就行。很多人看到这里,对于「够用」这两个字会坏坏的一笑,我知道这些人心里在想什么。

既然机缘巧合当一次人类,我希望能够在人类文明的进程里添砖加瓦。当然,这块砖可能是非常小,可能会是一粒沙,一粒尘埃,甚至可能我忙活一辈子都没做点什么有用的事情。但这不打紧,至少我为人类文明做出了努力,只不过能力有限,只能做这么多。再不济,我也在努力的路上见识到了人类文明的别样风景。这也不枉我当一次人类。说白了,只是想在人类的文明进程里写下属于自己的「到此一游」。但我也知道,这很难,大概可能也是一种奢望。但我想将这种奢望当成是我生活的目标。就像《庆余年》第一部里,监察院里的朱格被逼自杀之后,在回去的路上,陈萍萍对范闲讲的那句话,

人生一世,选条路,不退让,不更改,一直走到尽头,是件幸事。

既然认清了现实,也搞清楚了目标,那么具体的策略就变的很清晰。

多年前我有想过先挣钱,然后再实现自己的理想。但这些年我发现,挣钱这件事的不确定性因素太多,并且很多因素超出了我的认知范围。如果需要将这些不确定性因素变成大概率确定性因素,所耗费的成本非常之高,不是一朝一夕所能解决。我需要一步一个脚印积累很多不同学科的知识。而且,就像很多坏笑的人所想的那样,挣多少钱才是尽头呢?对于大多数人而言,欲望和收入是成正比的,可以说是永无止境。不过,挣更多的钱对我来说可以做更多的事情,再不济,也能保证我有一个比较好的生活条件,这倒是没错。

所以我决定改变策略,「及时行乐」,边挣钱,边实现理想。只要挣钱这件事能不影响我想做的事情就可以。其他所有外部环境我都可以妥协。我可以对外界物质条件的预期降低到只要保证正常生活就可以。俗话说,没有期望就没有失望。我只要对外界物质条件没有任何期望,那这些东西就不会影响到我。

我认为我可以做到对物质条件的最低要求。我的最低要求,基本上在很多人眼里都算是无法忍受的恶劣环境。所以,我的「底线」可以降到足够低。

在这个社会里,大多数人想要的东西,我几乎完全不在乎,只不过出于生存的本能,我需要最低的肉体生存条件。而我所追求的东西,大多数人几乎也不在乎,看起来正好与这个社会互补。

想想也挺有趣。

  1. 《计算》:https://book.douban.com/subject/36615448/

从入门到放弃,学习路上最大的心理障碍

今天下午读完了《计算》这本书的导论章节。在导论章节中,关于数学提出了几个尚未解决的问题,其中一个是数学的本体论,也就是说,数学到底是发明还是发现?这个问题直到今天(2024年),依然没有结论。

这个问题在我读高中的时候就有疑惑。说这个,倒不是想说明我自己年轻时候有过什么天才的往事。恰恰相反,正是因为心里有类似疑问,才会对数学这门学科的学习有诸多疑惑,最终导致我内心无法理解这门学科到底是做什么的?学来到底是解决什么问题的?她跟物理学,化学,生物学等等这些学科的关系是什么?特别是物理学,为什么物理学里有很多复杂的数学公式?为什么物理学的很多证明非要靠数学来解决?

从结果来看,数学确实是其他学科的基础,确实推进了其他学科的发展。但为什么会是这样呢?在我过往求学的十多年里,几乎没人能回答我上边的疑惑。这直接导致我对数学的学习仅仅停留在「够用」就可以了。然而今天下午终于释然了。正所谓念念不忘,必有回响。原来这貌似是个极难回答的问题,至今都没有结论。如果搞清楚了数学和物理世界的关系,会对这个世界乃至整个宇宙的了解都会进入一个新的阶段。

举上边这个小例子,是想引出我自己在学习一门新的学科时,特别是入门阶段的一个强迫症似的学习习惯。我自己在学习一门新学科或者新知识的时候,首先想要搞明白将要学的新学科或者新知识是关于什么的?学习之后我会收获什么?这门学科的边界在哪里?坦白说,如果在入门阶段我无法解决这些疑虑,大概率我会迈不过入门这道门槛,或者即便学到了一些技巧,但终归是不得要领,统统都是照猫画虎,想要达到灵活运用,几乎是不可能的。自然,脑袋里对这门学科也不会有一个系统的清晰的认知逻辑。这应该算是我自己在学习一门新学科或者新知识的时候的一个「心理障碍」。相反,如果我解决了这些疑虑,那么接下来的学习对我来说就会非常的「主动」。因为我知道了要学习的内容边界在哪里,我对我自己的学习程度就会有一个比较客观的心理预期,也就是说我对自己的学习进展可以做到心中有数,不自大,也不菲薄。

这个心理障碍其实在很多方面对我都有很大的影响,包括上学时期的学生阶段,以及毕业之后的工作阶段。

AI 时代的到来,我到底要不要转行?

在 2023 年 2 月 1 日,OpenAI 正式对外发布了 ChatGPT 的 3.5 版本,标志着通用 AI 技术正式「破圈」,不但引爆了计算机行业,也同时引起非计算机行业的广泛关注。对于身处计算机行业内的程序员们,也第一次深深的感受到了巨大焦虑。因为这一波 AI 技术在生成常见代码上有了肉眼可见的巨大进步。

2023 年 3 月,我自己正好经历了公司裁员,面临寻找下一份工作的困境。而与此到来的 AI,让我变得更加焦虑,期间甚至有过考虑转行的短暂尝试。所以,「AI 时代的到来,我到底要不要转行」这个问题也让我不得不有更多的思考。

经过过去一年多的发展和观察,虽然 AI 行业还在快速发展,但新闻舆论的声音似乎小了一些。同时也给了我自己一些时间来思考一下自己未来的职业道路。

那么,AI 时代的到来,我到底要不要转行?先说我自己的结论,短期内可以不用转行。这个短期是多短?我自己主观判断是至少「十年」。

为什么说是「十年」?我已经说过了,是主观判断……

那这「十年」的鸿沟是什么?现在 AI 不是已经可以生成代码了吗?甚至可以生成简单的软件项目。为什么不是两三年就完全取代程序员?因为这一波 AI 是以人类的自然语言作为输入,以生成式文字作为输出。然而人类的自然语言与编程语言之间最大的区别就是逻辑严谨性或者说是精确性。

程序员这个职业之所以存在,解决的核心问题就是将不精准的人类语言转换成精确的编程语言,以此来控制计算机。如果有一天 AI 可以将人类语言通过某种方式或者方案精准的转换成编程语言,那么程序员这个职业才会真正面临着彻底消失。

所以我上边说的「十年」只是给了一个相对长的时间范围。当然,也有人说三五年。我不是 AI 专家,所以在这一点上给不了精确的时间。但如果一个「专家」现在告诉你十年之内必定会「xxxxx」,其可信度也同样值得商榷。除非他能严谨的论证自己的结论。否则都可以看作是主观判断。

如果短期内程序员这个职业还能存活一段时间,那么 AI 的到来对这个职业会有哪些影响呢?

首先,就像网上很多媒体说的那样。AI 的到来一定会提升开发效率。这会不会导致从业人员锐减?以前需要十个人,现在只需要两三个人就可以搞定同样的开发任务。我认为短期内「会」,但长期不好说。为什么呢?因为市场一直在变化,如果市场能挖掘出新的需求,那么剩余的七个人依然可以继续从业。

其次,AI 的到来,肯定会进一步降低入门的门槛。但,同时也会拉升「专业」的门槛。现如今,即便是没有经过专业学习的人员,也可以通用 AI 生成一段代码片段来解决眼下特定的问题。这种情况下,可以被看作是一种入门门槛的降低。这意味着初级开发人员可以被部分非专业人员替代。相对而言,以前初级开发人员就需要提升技术水平才能入行,即所谓拉升了入行的门槛。所以,短期内开发人员供给会受到一定冲击。当然,现如今市场状况原本就不好,所以不能将当下的就业问题简单看作是 AI 的冲击。AI 只是未来一段时间的一方面原因,并不是全部。

最后,长期来看,其实是提高了成为专业程序员的门槛。至于市场到底还需不需要更多的开发人员,得具体看市场的发展需求。不过,关于这一点,我还是保持乐观的态度。私以为,万物互联的时代才刚刚开始,编程介质会越来越多样化。之前集中在 PC、手机 App。未来会有更多的可编程介质出现,至于需要多少开发人员我不知道,但是一定会是专业化更高的开发人员。

Kagi 搜索引擎

大概一个月前,将 Arc 浏览器换成了日常使用的默认浏览器,替换了过去用了将近十年的 Safari 浏览器。Chrome 浏览器也仅仅用作开发浏览器,日常使用是不会用的,原因也很简单,太占用内存,用起来感觉非常的「笨重」。

大概三周前,从 Arc 浏览器里的可选搜索引擎里了解到 Kagi 搜索。

说起来,在 Arc 浏览器里最先体验的搜索引擎是 Perplexity.ai。但因为日常使用代理访问网络,每隔一段时间不用再次访问就会触发 Cloudflare 的「人类」验证机制,很烦人。在寻找替换搜索引擎的时候,这才了解到 Kagi。

话说 Kagi 搜索引擎用了大概两天,我就决定将 Google 替换掉。最核心的原因就是因为没有广告。由于 Kagi 的搜索结果里没有广告,所以 Kagi 的收入基本来自付费订阅。我目前订阅了「乞丐版」,按照 Kagi 文档里的推荐,对于大多数使用者来说,基础版就已经够用了。将近三周用下来,也确实如官方文档里所述,远远用不完。当然,也可能是因为最近这段时间工作太忙,导致没有时间划水有关……

Kagi 除了没有广告之外,目前体验下来,搜索结果比 Google 也不差,特别是英文内容,我自己体验下来没有什么太大的差别。中文内容也几乎没有出现搜不到有用东西的情况,当然比百度要强太多了,单就没有广告这一条就甩百度几条街。

使用 Kagi 搜索,需要用户登陆,因为 Kagi 可以提供个性化搜索。比如我在这段时间使用过程中,将中文搜索结果中的百度内容权重降低了很多,所以即便是中文内容,百度的搜索内容也会出现的很少。当然,也可以将某个网站的搜索权重提高,这样对于一些有价值的小型网站会友好很多,同时也可以帮助你更准确找到相关内容。

Kagi 对于更高级的付费用户提供 Ai 搜索,目前对我来说还用不到,或者说,我还有其他可以用的 Ai 替代品,也许以后其他替代品到期之后也说不定会继续订阅 Kagi 的更高级服务。

总体使用下来,搜索页面上再也看不到广告了,也不会因为前脚搜索某个商品,下一秒「某宝」上就会给你推荐相关产品。

使用搜索引擎这么多年,第一次让我对搜索结果有一种清新的感觉,非常棒!

暂时关闭了播客的独立站点

关闭了今年一月份建立的独立播客站点。

原因是因为经过两个月的实际操作,实在没有时间来录制播客,即便后续如果有,也不会太频繁,算来倒不如暂时托管在 YouTube 上,以此节省成本。

理想总是很美好,但还是要面对客观现实,把精力集中放在最重要的事情上。不能再犯十年前的错误。

另外,还有一个小小的感悟。

十年前当初决定技术方向转型的时候虽然年纪也不小了,按照行业的「规矩」,过不了三五年就会面临「大龄」问题而被淘汰。

记得当年独立开发者失败之后,兜里已经没钱了。在两年多没进公司工作的情况下,加上 Web 开发几乎零经验,能成功转型也是堪称一个奇迹。真是「自信」即巅峰,自助者天助。

被上传了将近两百个 G

今天早上醒来发现国外的很多网站上不去了,虎躯一震,立马看了一下代理,竟然是流量用完了。

代理的流量计算是上行和下行的总和。登录后台,看了一下过往一个月的流量统计,发现上行流量占了将近两百个 G。上行流量突然增加的时间是从 2 月 23 日,也就是大年初三开始。那些天没有用过电脑,在家一直用手机上网,一时想不出来为什么流量猛增,而且还是上行流量。

紧接着又查了一下过往 24 小时的流量,发现 Proton Drive 仅在过去 12 小时上行流量就用了 7 个 G。虽然 2 月份的流量数据统计在 macOS 上已经不太好查到,但就过去 24 小时的流量使用情况来看,基本可以初步确定是 Proton Drive 干的。还有另外一个重要的原因,Proton Drive 上一共存储的数据也就 5 个多 G。单就这一晚上上传 7 个 G 流量来看,就完全不正常。

短暂考虑之后,决定将 iOS 和 macOS 上的 Proton Drive 立刻删除,并且以后会非常警惕第三方云端硬盘的 App。现在手机上只保留了一个 Dropbox,里边只会对 Ulysses 的文章做可选项的备份服务,其他数据全为空,并且日常处于关闭状态,需要的时候手动开启同步,用完立即关闭。以后自己搭建 NAS 之后再考虑开启日常备份。

一年一度的个人所得税申报踩坑

今年的个人所得税申报踩坑了,记录一下。

2019 年 1 月 1 日开始,实行个人所得税申报,一年一次。申报方式基本上都是通过一个叫「个人所得税」的手机 App。

老实说,我自己对财务真的是一窍不通,主要也是对这个不太感兴趣,所以往年的很多次申报都是我老婆帮我填写,我自己只填写过一次?好像只有第一次是我自己填的,总之印象里已经完全记不清了,只记得进入 App 之后一直点击「下一步」,然后就会有一个退税或追缴的结果。

今年因为工作原因,只能自己缴纳。

前几天在「个人所得税」App 上进行了预约。我竟然连每年申报之前都需要预约这事都忘的一干二净了,事后问了我老婆才隐约想起来,往年其实也是需要预约的。

今天是预约申报的日子。好在提前几天在「提醒事项」App 上添加了弹窗提醒,否则也是忘得一干二净了。

进入「个人所得税」App 首页,直接进行申报,麻溜点击「下一步」,不到一分钟,申请完毕,需要补交 x 元税费,金额比往年都多,我还纳闷为啥去年需要补交这么多?但我还是通过支付宝把钱给老实补缴了。把这事跟我老婆说了,她提醒我是不是没有填写「专项附加扣除」?我才隐约意识到,往年好像确实是先填写「专项附加扣除」,然后再申报。

随后在「个人所得税」App 上先重新填写「专项附加扣除」项,然后在已经申报的流程里找到了「重置申报」的按钮,重新填写。一路下一步,结果果然不仅不用补缴,还会退 x 元税费。

走完重置申报流程,申报的状态变成了「申请退税」,点击「申请退税」,弹窗提示「税款未入库,暂时无法申请退税,请稍后重试」。网上查了一下原因,是因为税款只是已扣除,还未进入国库,所以退税的流程需要等钱先进入国库,然后才能继续走下边的退税流程。网上查的信息是需要等待三到四个工作日。

想来如果有人跟我一样,不知道怎么报税,每年就会多交很多钱。如果一直没人提醒的话,就会一年又一年的补缴。这个「坑」挖的好哇,国库的税收只赚不赔。

其实,我想说的是,父母家人这种信息,其实 App 完全可以代劳,甚至独生子女也可以 App 代劳。这些信息在街道办早就已经有了。另外在填写申报之前,完全可以提醒用户是否有需要填写的「专项附加扣除」,甚至可以放在申报流程之前让用户优先确认,再不济也应该在填报流程开始前很醒目的告知用户,而不是悄无声息的直接就让用户申报。

有趣的 Bret Victor

大概在十二年前,也就是 2012 年左右,在 Vimeo 上看了 Bret Victor 的几次演讲视频,其中包括著名的《Inventing on Principle》。

当时给我的理解认知,仅仅停留在 UI 设计以及创意的层面,对背后的核心理念完全没有感知。对于这一点的佐证,也是因为我在搜索 Bret 相关中文内容的时候,无意间搜到了当年 Coolshell 上的一篇文章,在文章的下方,竟然惊奇的发现了我的留言。坦白说,我不太喜欢在网上给人留言,如果真的需要沟通,大概率会发邮件。不过这更加侧面印证了当年的演讲内容确实触动到了我,但很可惜,也只停留在看得见的 UI 设计层面,对于背后的理念,完全没有意识。

时隔十二年,因为今年计划尝试开发自己的产品,所以又想到了当年的 Bret Victor。这一次,有了不一样的理解。

十二年前第一次访问他的网站1的时候,完全没有理解网站的导航为什么会是那样设计?而且还划分了「章节」,搞的一头雾水,以为仅仅是为了标新立异,完全没兴趣进一步了解,所以很快关闭了网页。

这次当我认真看了网站上的大部分内容,包括一些论文以及设计的 Demo,结合他自己写的简介,我终于理解了这个网站的信息架构。Bret 的个人网站其实是他自己写的一本书,这本书就是他的人生,章节是人生中的不同阶段。甚至,在他的网站中发现了很多年前给自己设计的一个仆告

在简介的左侧,介绍了他曾经探索的两个方向。一个方向是对「技术」的探索。正如他所说:

But technology has no soul, and code no conscience.

技术没有灵魂,代码没有意识,他认为在这条路上行走的人,仅仅是对代码的狂热。所以,他认为这条路是错误的。

另一个方向,是对「设计」这条路的探索,比如本文开头提到的那个演讲。经过一些实践和思考之后,他认为这条路也是错误的。他认为这条路只能教给人类回答问题。

最后,他希望能够找到一条路,里边「没有」技术,「没有」设计,只有人类自己的愿景,以及通过实现这个愿景的自驱动力。所以,他在 2014 年,开启了人生的第四篇章——dynamicland

在他的网站上,看到曾经推荐的一些资料,其中有一本书,名字叫《一个数学家的叹息》,在这本书的开篇有一句引言,我认为可以作为 Bret 探索方向的一个比喻:

如果你要造船,不要招揽人来搬木材,不要给人指派任务和工作,而是要教他们去渴望那广袤的大海。—— 安托万·得·圣埃克苏佩里

Bret 的网站上有很多有趣的资料,包括一些高质量的论文以及一些有趣的设计。对我的启发很大,帮助我跳出了「技术男」的思维框架。也让我明白了,「UI 设计」到底意味着什么?

不过,虽然我明白了前方道路意味着什么,但想要抵达前方,还是要一步一个脚印的走。但好在,我不会在迷茫中前行,也不会对前方的「景色」有不切实际的幻想。

感谢 Bret 将他的想法分享出来,也希望他的探索在未来能够有新的发现。

  1. Bret Victor 网站首页于 2024 年 3 月 1 日改版。之前的网站首页链接变成了 https://worrydream.com/Home2011/

修复完过往的 md 文件中的链接

断断续续将过往 Markdown 文件中的链接修复完成了。当前导入到 WordPress 的所有 Markdown 文件内容中的链接理论上都可以正常点击了。或许会因为部分链接的失效,无法打开页面,但至少不会出现 Markdonwn 的链接文本。

修复过程中粗略的浏览了部分过往的文章,感慨颇多。或许 2012 ~ 2014 年是从业以来最自由的几年,我不敢说以后的生活还能有这样的自由度,但目前来看基本上是一种奢望,不过倒是可以当做未来努力的方向。

2012 ~ 2014 这三年尝试了很多事情,但最终还是以成为独立开发者失败而告终。回头来看,也是必然的结果。那三年最大的收获就是做了不同的尝试,技术方向也转到互联网。另外不可忽略的一点,就是锻炼身体。

有机会以后可以总结一下那三年的得失。

互联网的默认设置是「开放」

前些天 Bluesky 开放注册了。Fesiverse 网络上掀起了一股要不要与 Bluesky 互相通信的讨论。

Fediverse 上的一部分「原住民」嫌弃 Bluesky 上的氛围,各种瞧不上,生怕污染了 Fediverse 上的良好氛围。然而 Fediverse 上的一些倡导者,则主张包容 Bluesky 的服务,提供可以互通或 block 的选择。

期间也看到一些理性的声音。认为互联网原本就是开放的,没道理互相 block。我当然是赞同这个观点。互联网从诞生那一天起就是默认开放的,如果担心隐私,就不要把数据放到互联网上。

不能因为担心自己发表的言论被别人看到就把别人的眼都蒙上,不能因为担心别人讲的话自己不爱听就把别人的嘴都堵上。可以制定规则,违反规则接受惩罚,但不能把大门一关,自成一统。