Utopi
a
@Taitan_Pascal
C
l
i
c
k
👇
🌈 瓦梁湖生态观察小队副队长
👨🏻‍💻 Software Engineer
📸 Photographer
Unix/Linux
film shoot
React
Nextjs
nvim
C&C++
carla
CICD
Collection
LeedCodeExperience
ML
PaperReading
Python3
React
readings
ROS
Statistics
SUMO
WikiDoc
Writings
我的日记

汇丰银行

全网最详细吐槽汇丰的文章来了。网上一堆KOL其实没什么见识,去香港开了人生中第一个海外账户,就兴高采烈。我自己作为汇丰的私人银行客户都要吐槽汇丰是“会封”。网上还有一堆“养卡教程”、“用卡姿势”,确实一不小心就会被封户。这就是我讨厌汇丰的地方。银行是为我服务的,如今却让我供着它。疯了吗?! 汇丰是华人最熟悉的国际银行。我是他们家和摩根的私行客户,但亲身经历的肺腑之言:一定要把钱放在美资银行!汇丰是一定要避开的雷!在吐槽之前,先说一说我的推荐:1000万美金以上想都别想,就选JP摩根,用过的没抱怨。500万左右,就选摩根士丹利,银行理财既方便又专业。100万以下就选择大通银行或者美国银行+美资券商。瑞士银行和汇丰在任何时候都非常坑。尤其是汇丰。如果你不是常住香港或英国,为了做亚欧业务,临时用一用还行,绝对不能当作长期主账户。而且尽量存够100万美金,不然看不起你,还给你找事。 我早就预感汇丰快不行了。一个欧洲的银行,全球一大半的利润来自香港这一个城市。你的主体在一个地方,利润在另外一个司法管辖区,这本身就是巨大的隐患。因为想吃百家饭的主,一定到处都不讨好。以前欧洲强大,背后有主子撑腰,现在就是受气的小媳妇。 汇丰论网点的全球覆盖率,它的确是No.1,但是它根本应付不过来这么多监管。所以经常是宁可错杀一千,也不放过一个。我们都戏称汇丰是“会封”。哪个美资银行不比汇丰的体量大?不比汇丰的后台硬?不比汇丰的业务广?那为什么人家不全球到处开网点呢?因为这样做只会把自己陷入为了吃百家饭而牺牲客户资金安全的险境。 而且汇丰非常差劲的一点是,它希望你的钱永远不出汇丰的系统。所以即使汇丰的全球网络最发达,但很难将汇丰作为一个资金中转站。汇丰去年改制,自我定位成只服务高净值客户,尽量不服务普通客户。所以去年封了一大批普通客户的账户。而且在巨大的压力下,汇丰的客户经理RM本质上就是理财和保险销售,死缠烂打不胜其烦。其实如果他们银行不那么事儿的话,倒也无所谓。我自己存钱、取钱、转账、投资,根本不需要额外服务。但是它偏偏要给你找事儿,让你去联系客户经理,真是烦的要死。 那我也把所谓的“用卡姿势”给大家说一说,具体汇丰还有什么用。 1. 汇丰最大的优势是它是中国大陆最大的外资行。你可以在里面用人民币买到境外理财产品。比如标普500的基金。不限额,没溢价,这比国内金融机构要方便很多。虽然要收取一次性3%的申购费,但是资产增值在中国是合法免税的。也不用考虑换汇、CRS税务和出入金的麻烦。但这不是汇丰一家独有的,所有的在华外资行都有境外理财基金卖,汇丰的好处是它的网点多。 2. 香港汇丰是最好用的。只要不是明显的加密货币出入金,快进快出,基本不会被风控。香港可能是全世界资金流动最便捷的地方。但汇丰在香港的银行里面也是风控最严格的。 3. 除了香港汇丰,我不推荐开设任何一家汇丰的账户。尤其是新加坡汇丰。新加坡这个地方从政府监管到企业服务,真是一言难尽。之前几百亿美金的洗钱案它随意放过,如今又惊弓之鸟,到处乱砍。你一旦开设了新加坡汇丰账户,而又不往里面放很多钱,基本上一只脚就已经踏进了全球封户。新加坡反洗钱已经到了神经质的地步了。任何离岸账户(不是本地人的账户)都被严格监管。不但不同名转账风险极高。甚至癫狂到自己同名汇丰账户、在汇丰自己的全球网络里进出都有可能被封户,而且是全球杀。网上的苦主不尽其数。另外新加坡离岸账户按照新加坡法律规定,除了储蓄、理财之外不能用做任何其它用途,尤其是不能用做商务用途。比如我经常受邀在新加坡做一些顾问,我都不敢用新...

我为什么不喜欢《搏击俱乐部》?

感觉已经快十年没有正经上过豆瓣了,但我看上次写东西似乎还是两年前? 如今豆瓣的“文件检查”机制已经进化到了让人无法写作的程度。它不像其他平台搞那种隐蔽的 Shadow Ban(限流),而是一刀切的粗暴:只要发布,立刻弹窗“您有不合法的内容,请重新编辑”。于是我不得不像个扫雷工兵一样,在一个个段落里捉迷藏,试图找出哪个词触碰了那根看不见的红线。当你真的能写出一篇完全清白的长文章的时候,那你一定是个汉奸头子。以下的内容一定是经过gemini 伪装删减重写过的,读起来应该很别扭,到处是谜语,但这也没办法。我实在是没法不爱国到完整地找出我文章里所有的肮脏词语。 Anyway,昨晚和老婆用新买的投影仪重温了《搏击俱乐部》。作为一个最烦“装逼”的人——装逼的本质在于没有逼硬装,很肤浅,很 Shadow——我上一次看类似的“神作”还是《瞬息全宇宙》。那部片子也是典型的左派价值观狂欢,全网一致高分,但我当时专门写了一篇文章吐槽它的无病呻吟。 但《搏击俱乐部》还真不一样。《瞬息全宇宙》是拍得平庸,而《搏击俱乐部》的台词、摄影、剪辑无疑是高分佳作的水平,我们从小都是看着大卫·芬奇的杰作长大的。然而,作为一个联共(布)党史的专家,我一眼就瞧出了藏在那些炫酷蒙太奇背后的小心思。我觉得那些被电影莫名感动、甚至将其奉为圭臬的观众,就像早期被康米带到沟里的东半球人一样,被一种浪漫化的毁灭冲动给骗了。 这可不是什么无政府主义,这就是一部披着好莱坞外衣的布尔什维克发家史。 我看遍了中外的影评,几乎所有人都在复读“无政府主义”或者“反消费主义”的老调。但历史告上无政府主义从来没有在世界历史上留下过什么成体系的实践记录,也就是扔几个炸弹罢了。而在整个20世纪抢足了戏份系统消灭上亿人的可是布尔什维克。 电影里最经典的一幕,是泰勒·德顿炸掉了主角的公寓,毁掉了他精心挑选的宜家家具。在影评人眼里,这是对消费主义的嘲弄,是让主角“放下身外之物”;但联共(布)党史的专家眼里,这这不就是“阶级成分的强制改造”吗?或者更直白一点,叫“断绝后路”。 在真实的革命史中,这种手段要残酷一万倍。它不仅仅是烧毁你的沙发,而是要让你手上沾血,让你在旧社会彻底无法立足,他会鼓动你杀掉当地的地主或者强暴地主的女儿,毁灭你与旧时代的联系,顺便也把你的家全部都烧掉,只有当一个老实巴交的农民亲手杀死了村里的乡绅,或者烧毁了地契,他才彻底切断了与旧秩序的联系。他不再是良民,他是“暴徒”,他没有回头路了。他的房子被烧了,他的社会关系网断了,为了生存,他只能跟着队伍走,只能把命交给组织。这就是所谓的“无产阶级化”——不是你选择了贫穷,而是组织通过暴力的焦土政策,剥夺了你所有的资产和退路,把你逼成一无所有的原子,然后重新吸纳进革命的洪流中。泰勒炸掉主角的公寓,本质上就是把主角逼上梁山,让他除了革命(破坏)之外,别无生路。 随着剧情推进,搏击俱乐部演变成了“大破坏计划”(Project Mayhem)。这简直是列宁式政党组织原则的完美复刻——一个更高质量、更精密、制度化的黑帮。 泰勒建立的不是俱乐部,而是一个“间谍型国家”的雏形。你看那些规则:不许提问、不许有名字、绝对服从、统一着装。 这种组织形式极其可怕,因为它结合了宗教的狂热和军队的纪律。它有极高的下限(铁的纪律保证了执行力)和极高的上限(为了目的不择手段)。在历史上,这种组织通常以“地下党”的面目出现,它们像癌细胞一样渗透进社...

提着头发起飞:自举能编译上帝吗?

2025年12月11日 !result image > 哥德尔不完备性是自举在递归不动点上的元性质 > Gödel's incompleteness is the meta-property of bootstrapping emerging at the recursive fixed point. 哥德尔不完备性定理是我在大一时候学习的,但是当时随着考试结束,对其技术细节很快就没有印象了。实际上,绝大多数数学知识我要不就是一开始就没学会,就算学会了也因为没有地方用(甚至连用来吹水的地方都没有,笑)所以很快就忘记了。 大二的时候看很多书,当时群里很流行侯世达的《哥德尔、艾舍尔、巴赫》,学校图书馆就有(那个时代我们还去图书馆里淘书,但是几个月后就发现了世界上最大的自由图书馆 zlibrary)。很厚,当时还要看英文版的。不过很快就因为实在没兴趣,(主要他写的也不简洁,太冗长了)就不看了。感觉它有点像 C Primer Plus,都说是必读书,但实际上没人读完过。现在看起来也完全没必要,实际上我们只要看一个 C++ 作者本人写的 A Tour of C++ 就够了,200页包含了1000 页所有的内容。就像它扉页上写的那样: > 施教之重,在于简。 > > —— 西塞罗 Anyway 扯远了,之后发生了疫情,大学的后两年好像除了考研什么也没做。到毕业设计做的是一个 lambda 语言编译器,玩具性质,但我做的还挺认真的,特别是把形式逻辑、递归不动点、循环指涉等相关数学计算机的定义仔细读了一下,国外的教材,包括 Conjure 语言的设计。当时看全国好像没有做这个方向研究的毕业论文,中文资料都很少。现在看起来伞哥(网易冰河)好像是做这个方向的? 就此,人生走上快进键,之后也没再碰过这些东西了,相关概念都稀里糊涂的忘得差不多了。 昨天,我忽然看到一个抖音视频说是各种语言都是用什么写成的。里面提到一个自举的概念,之前都没关注过。十年前我写的那个小编译器其实也是可以自举的,就是比较简陋,所以也没当回事。 先有鸡还是先有蛋呢? 我开始好奇自举究竟是怎么完成的。因为我当时的编译器功能实在太少,没往下做。 如果一个语言(我们叫它 L)还不存在,我们当然不能直接用 L 来写它自己的编译器。为了解决这个问题,计算机科学家们采用了一个循序渐进、迭代的过程。 假设我们要创造一门新语言,叫 Go。在最开始,Go 语言的编译器是不存在的。但是,世界上已经有了成熟的 C 语言。 txt ┌─────────────────────────────────────────────┐ │ 开发者用 C 语言编写 Go 编译器源码 │ │ (Go-v0.c) │ └──────────────────┬──────────────────────────┘ │ ▼ ┌─────────────────┐ ...

为什么我忽然发现从小对毒品的认知都错了?

> 我本身反对任何高度成瘾物药物的合法化,非常赞成目前中国对毒品的高压政策,实际上我是个身体自然派人士,我几乎对任何用在身体上的化学产品都抱有怀疑态度,面膜、洗面奶和指甲油我都讨厌(牙膏除外) > 随着年龄的增长,我发现从小被灌输的的“常识”,几乎所有都是错的,具体写上三天三夜也写不完。 Anyway,所有过去认知的崩塌,通常都源于生活在一个不起眼的角落里抛出的一个“反例”。可能这是数学专业和计算机博士的天然敏感吧——在一个公理体系里,你不需要推翻所有推论,你只需要找到一个反例,就能击穿整个系统,让定理失效,让应用崩溃。 下午我刷到一个抖音短视频(一种电子海洛因):一个明显是AI拼凑的、台词重复的博主在讲“毒品之父”亚历山大·舒尔金的生平,当讲到这位把MDMA、2C系列等上百种苯乙胺类物质带到世界的人,一生在自己身上做了四千多次实验,他妻子做了两千多次时还活到88 岁,活得比我爷爷还长的时候,我忽然感觉有点不对劲,这种硬毒品难道不是一吸就会死吗? 中文互联网中绝大多数你能找到的最“深刻”的毒品讨论,就止步于此了:他们会说毒品分很多种,效果、用法、危害和成瘾性都各不相同。最轻的大麻比香烟成瘾性更小,危害也更小。致幻剂本身没有快感,也不会上瘾。 当然,这个我很小就知道了,因为小时候在电视上看的伍迪·艾伦的电影中,20世纪下半叶的好莱坞,毒品像咖啡一样在名流圈流淌,他们表现的好像很轻松,不是电视上那种失能的瘾君子。大学时天天听Lex 的播客,主持人几乎每期必谈信仰、上帝、毒品和死亡的问题,那些硅谷的科技大拿、亿万富翁毫不避讳地谈论他们如何使用致幻剂来打开思维的边界,或者用某种药物来维持高强度的代码输出。在银幕上,在访谈中,他们并不是传统电视宣传里那种眼窝深陷、流着口水的废人。 当然,我也看过《战争之王》和《猜火车》,另一类硬毒品——海洛因、芬太尼、冰毒、可卡因——因为直接劫持多巴胺或阿片系统,生理成瘾极强,耐受性让剂量像滚雪球一样越滚越大,人很快变成了只想吸毒的废物,离死亡只有一步之遥。 就像我们都看过的James Olds 和Peter Milner 在1954年进行的 "大脑奖励中枢"实验:在老鼠的大脑伏隔核这个"快乐中枢"区域中植入电极,让老鼠可以通过按压杠杆来刺激自己的大脑获得强烈快感。结果老鼠会疯狂地按压杠杆,每小时可达数千次,完全沉迷于这种刺激中。更可怕的是,即使旁边就有食物和水,即使它们已经饥饿和口渴,老鼠仍然会选择持续按压杠杆而不去满足基本生存需求,最终因为饥饿、脱水和过度疲劳而死亡。 就像爱迪生的名言:天才是1%的灵感加上99%的汗水,不过完整版还有后半句:"但那1%的灵感是最重要的,甚至比那99%的汗水都要重要"。你老爸为了让你努力读书,只给你看前半句,结果你的认知完全被带偏了。 这个老鼠实验也有后半句,心理学家Bruce Alexander 在1970年代末进行的一项经典成瘾研究,彻底挑战了当时对药物成瘾的主流认知。Alexander 认为问题不在于药物本身,而在于环境。他创建了两种截然不同的环境: | 鸽子笼鼠鼠组 | "老鼠乐园"组(Rat Park) | | :------------: | :----------------------------------------: | | 老鼠...

如何设计一个量化交易时间管理器?

很多交易系统的故事,都是从这样几行代码开始的: 第一天,这段代码看起来干净利落。 第二天,我们开始往里面塞逻辑:拉行情、算指标、下单、写日志。 第三天,我们想做回测,于是复制一份差不多的循环,把 换成“快一点”的版本,注入一个过去的时间。再往后,实盘要跑、多策略要跑、风控要跑、监控要跑,每个模块都觉得自己有资格写一段这样的循环。 最后的结果是:系统里有十几个不同的“时间观”,有的按真实时间走,有的按回测进度走,有的 sleep 60 秒,有的 sleep 59.8 秒,还很难说清楚,到底是谁在驱动谁。 我们用自研量化系统中真实存在的 为标本,一起把这个问题拆开看:为什么最终会走到“需要一个 TimeManager”的地步,它到底解决了什么问题,又是怎么一步步长成一个像样的“时间内核”的。 --- 从工程的角度看, 最大的问题不是“不准确”,而是它默认了一种我们没有认真想清楚的模型: > “时间是连续的,我们只是偶尔醒来做点事,然后再睡回去。” 这种模型在脚本层面是足够的,但一旦放到交易系统里,很快就会露出破绽。 一个简单的例子:我们想每分钟在整点处理一次数据。于是写出: 假设 平均花 100ms,间歇性会因为网络慢掉到 500ms。理论上我们期望的 tick 序列是: 而实际发生的是: 这里只是一个线性的漂移。真正麻烦的是,当我们开始做回测时,这个循环彻底失效:回测里,时间不是“向前自然流动”的,时间是我们自己推进的。 在回测中根本没有语义。 于是我们开始在各个地方出现这样的分叉: 一旦这种分叉出现了,就意味着系统里存在两套时间机制:一套是回测的 ,一套是实盘的 。某些地方用这个,某些地方用那个,偶尔还混在一起算统计。 我们不难想象往下的路线:越来越多的 ,越来越多的“特殊情况”。当这种 if/else 的数量超过某个阈值,系统就不再是“时间驱动”的,而是“条件驱动”的,我们只能不停补漏洞。 这个时候,问题已经不是如何写一个更聪明的 了,而是要彻底换一个视角: > “时间不是一个被动等待的背景,而是一个主动推进的对象。” 这就是 出现的原因。 ---

幺半群与罗马下水道

周末看到一则推文:"Haskell 世界里有一句著名的话:"单子是自函子范畴上的一个幺半群"(A monad is a monoid in the category of endofunctors)。这是范畴论中最著名也最深入人心的描述之一。我曾经遇到的程序员里只有一个能在第一眼看见这句话就知道它说的是什么意思。" 十年前我一次看到这句话的反应:哎呦,装死了,最烦装逼的人。它用三个极度抽象的数学概念来解释第四个抽象概念,就像用"量子纠缠"来解释"为什么你的代码报空指针异常"一样。那些拗口的中文翻译——自函子、幺半群、范畴——不过是在给自己添麻烦,假装自己是数学家或逻辑学家。这些抽象词汇在中文语境中缺乏直观性,把本该"解释性的描述"变成了"名词的堆砌"。 而多年之后,我看到这个翻译的英文就一下子对它的意思豁然开朗了。 (Mono) 前缀,后缀 表示“像……一样的”, 这是一个非常通用的前缀,表示“内部的”, 也就是函子。“映射到自身的函子”(Map to itself),幺半群 这个翻译虽然在数学定义上极其精准(带单位元的半群),但在字面上和“单子”毫无关系,这种描述我认为割裂了概念之间的联系。 剥离数学术语,所谓的“自函子”()就是一个容器,比如一个列表或者一个盒子。它有一个特质:你能对它里面的东西进行映射(map)。 这很好理解。那么“幺半群”()又是干什么的?在数学上它代表“组合”,但在编程的这个语境下,它其实就是一种把多层容器“拍扁”的能力。 试想一下,如果你对一个列表里的每个元素都做一个操作,而这个操作本身也会返回一个列表,会发生什么? 这时候,你需要一种机制把这两层东西合并成一层,变成 [1, 1, 2, 2]。在范畴论里这叫 flatten 或 join,在工程里我们通常把“映射”和“拍扁”结合起来,叫做 。 这就是那个听起来高深莫测的 Monad 的全部秘密:它是一个允许你把产生嵌套容器的操作(比如异步的 Promise,或者可能为空的 Optional)像做加法一样顺滑地串联起来,而不需要你去手动剥洋葱。 问题在于,当你遇到可能失败的操作,Monad 会自动判断:如果上游失败了,就自动切断下游,不再执行。这看起来很方便——你不用每行代码都写 if 判断了。但在实际工程中,中间遇到的不同错误需要不同的处理、不同的通知。把所有错误都变成一个统一的"失败"状态,然后让它在管道里静默传递,是在逻辑上的自嗨和在现实应用里的自杀。 这让我想起了很多大语言模型写的代码—...

为什么教小孩写作业会哭?

我在一家酒店自习室修改bug,对面来了一对年轻父子。小朋友应该刚上小学,在做两位数的乘法。"你怎么还是做不对?永远不专心!"很快,桌面上就堆满了给小孩擦眼泪和鼻涕的餐巾纸。爸爸其实情绪还算稳定,小孩也是,一边哭一边继续做作业。 这一幕如此熟悉,几乎在所有中国家庭中不停重复。 孩子算错一道题,孩子算错一道题,本来只是一个技术问题,却被上升为道德问题。"你怎么永远不专心"这句话的潜台词是:你不是做错了一道题,你是一个有缺陷的人,而且你有意地选择作恶。 这种"罪化"机制深深植根于我们的教育文化中。忘记带作业本变成了"没条理",上课走神变成了"态度有问题",一道题算错了变成了"没脑子"。我们似乎编写了一个全局的 try-catch 机制,将所有类型的运行时错误——无论其根源多么复杂——都无脑地 catch 到一个名为“主观品质缺陷”的异常类型里。 这套处理机制背后,是一种努力神话:只要努力,你就一定能成功。这本来是用来给人打鸡血用的,但大多数人被它更为致命的反面反噬了:如果你失败了,那必然且唯一的原因就是你不够努力。真实世界运行是复杂的,我们在处理网络请求时,延迟、丢包、路由问题等失败是系统特性,而不是bug。你会设计超时重传、会优化数据包,但你不会把所有的timeout都归因于"服务器不够"。 而我们的教育模式,却坚持将所有异常全部归类为服务器坏了,并把修复的责任完全推给终端用户——那个孩子。当孩子哭泣时,他的大脑正被杏仁核劫持,处于fight-or-flight的应激状态。在这种状态下,负责理性思考的前额叶皮层几乎下线。他记住的不是"23×17的正确算法",而是"我是一个让爸爸失望的坏孩子"。这种内化的负面评价会像内存泄漏一样,缓慢但持续地消耗他的心理资源。 我小时候体弱多病,每次生病,父母都会表现出极端的焦虑和情绪失控。这种强烈的负反馈,让我的潜意识将“生病”这件事与“我做错了事”画上等号。于是,我学会了在刚感觉不适时隐瞒病情,试图假装健康。结果往往是小病拖成大病,然后引爆父母更大规模的怒火:“为什么不早点说?!” 这正是强化学习中一个经典的陷阱。一个智能体在探索环境时,如果因为尝试某些行为而频繁受到剧烈的惩罚(负反馈),它不会学会“如何正确地做事”,而是会首先学会“什么都不要做”。它的探索策略会迅速坍缩,只敢停留在已知的、最安全的区域,拒绝任何可能带来惩罚的挑战。 斯坦福大学心理学家卡罗尔·德韦克的著名研究也印证了这一点。当孩子因犯错而被贴上“笨”、“懒”的标签时,他们会倾向于相信自己的能力是固定的(Fixed Mindset)。为了维护自己“不笨”的形象,他们会本能地回避挑战、轻易放弃,并且将努力视为无用功——因为如果我需要努力,恰恰证明我不够聪明。 后来我读到一本儿童疾病手册,上面明确写着:家长在孩子生病时不应表现出焦虑,这会让孩子羞于报告病情。我的父母显然是知道这一点的,但他们还是控制不住自己成为了手册上的反面教材。这揭示了一个残酷的真相:在教育中,知道和做到之间有一条巨大的鸿沟。 当对孩子可能“落后”、可能“失败”的恐惧感袭来时,原始的情绪会瞬间冲垮大脑皮层里所有理性的知识。父母的行为驱动力,不是“我应该如何正确教育”的逻辑,而是“我好害怕”的本能。一个无法安抚自己内心恐慌的成年人,更不可能为孩子提供一个稳定的、安全的外部环境。 更深层的原因是,他们...

Title: Why I Don't Have the Patience for Scale Models Anymore

There's an almost archaeological pleasure in rummaging through the shelves of old model kits in a small hobby shop. My home is piled with these boxes, and they all have one thing in common: they're almost never opened. The problem isn't desire. The desire is there, peaking the moment you pay. The problem is patience—or rather, how we redefine "patience" as adults. People often say it's because we're "busy" or "lazy." That's a superficial take. The real reason goes deeper, into the underlying logic of how we manage our time, projects, and mental energy. Our "free time" is an illusion. A modern person's schedule is like a heavily fragmented disk. You have 15 minutes here, half an hour there, but none of it is contiguous. Building a moderately complex model is like launching a process that requires a large, contiguous block of memory. It demands that you load a huge amount of context into your "mental RAM" and run it for 5-8 hours straight. If you only have fragmented time, you'll spend most of your energy on constant "context switching": trying to remember where you left off, getting back into the zone, and just as you do, a "high-priority interrupt" from your boss or family arrives. The cost of this switching is extremely high. So our brain, like an efficient resource manager, makes a rational decision: if it can't foresee a large enough block of cont...