说说
用双面图谱解读世界的重量
如果把全世界的人口和 GDP 并排放在一起,会发生什么? 我做了一个实验。左边是人口金字塔,右边是真实的 GDP 贡献,用面积对齐。 原本以为只是数据的变化,但图出来的瞬间,那种视觉冲击力很强:有些地方人潮汹涌,右边却只有薄薄一片;有些地方人口稀少,右边却撑开了巨大的色块。 我们总在讨论什么叫“发展”,有时候数字太冰冷,但图形不会骗人。

20 
21 
22 关于水库溃坝问题
最近关于水库这个事情,我一直在关注,前几天南周发了一篇报道,当然,只是采访了一方人员,可能也是因为这个原因,后来新闻就消失了。另外,也有不少人觉得,只采访一方便叫“春秋笔法”毫无意义。我倒不这么看,毕竟这类事件其他方几乎都是不可能接受采访的,如果以此来武断新闻无价值,那这类新闻题材压根就没存在必要。
简单说,即便这篇新闻稿只采访了水库一方,也还是能通过内容还原出部分操作细节,甚至大概指出整个系统在哪些环节发生了问题。
- 水利部门:2009年的除险加固工程至今未竣工验收,质量不过关。2025年宣传水库实现“样板工程的蝶变”。5月13日会议报告反映人员编制严重不足,但未及时补充。2021年大坝开裂,花了1834元外包修补;2026年4月省里提出大坝开裂整改,服务站垫钱买沥青和沙子填裂缝。
- 镇政府:预警通知发送时,因“乡政府邮箱满了”导致2个乡接收不到,最后靠微信补发。7月5日早上8:33收到预警,群内无回应,直到深夜才开始在群里向站长询问措施。整个应急指挥高度依赖两个微信群,一旦断电断网,整个指挥系统瞬间抓瞎。
- 当地指挥部:按预案,Ⅰ级、Ⅱ级响应时主要领导应亲自坐镇指挥,但站长在生死关头打了11通电话都未接通。全市应急通信保障不力,关键时刻水库无卫星电话可用。(有人说配卫星电话是水库责任,纯粹就是胡搅蛮缠了)
总体来看,我分析这次事故原因大概有以下方面问题:
工程质量问题。1958年最初的设计建造是当时劳动人民做出巨大牺牲做出来的,不可能拿现在的事情就做任何批评,这里的工程质量主要指2009年之后的除险加固和其他工程。比如除险加固工程因质量问题从未通过竣工验收。
气象水文预警。很多网友补充发了,当时省水利厅预警信息并没有包含横州,包括气象部门也只是常规暴雨橙色预警。另外,上游水文站失联,这个看是谁的责任,正常失联后要么抢修要么报告,总得有个章程。
应急通信保障。这是本次事件里最匪夷所思的事情。我从未听过有政府邮箱“满了”就收不到件这种荒唐事。而使用微信群交流工作信息本身也是不符合规定,加上卫星电话未配备,出现紧急情况只能抓瞎。特别是其中提到生死关头给市长连打11通电话石沉大海。
应急决策调度。讲白了,保下游还是保大坝这种事,一个站长压根决定不了,正常应该是在危险还没来临前,逐级请示,甚至越级请示,提出自己的专业建议。然后靠着决策者手上大量行政资源调配把风险降到最低。但如果没做这一步,最终肯定就形成电车难题摆在站长面前了。
闸门硬件问题。泄洪闸门在关键时刻掉链子这种事,倒也不是无法预料。关键在于,前边层层失守导致水量已经压到闸门无法正常开启时,再去追究闸门硬件问题似乎意义不大。但这并不意味着没有价值,也能为后来者提供借鉴:即常规演练哪怕是全开闸门其实也不见得在超限水量下能打开,必须有其他备选方案。
自溃坝功能失效。自溃坝是水库的最后一道保底防线,在其他环节全失守时,牺牲自溃坝来保全大坝。但这个自溃坝长期被周边林业加工厂的超载木材车长期碾压,搞得可能比主坝还紧实,最后猪八垮了它都没事,肯定是日常管理责任了。
一场大型活动
最近一直忙着策划一场大型活动,到今天总算是忙完了。细数起来,这类活动我已经搞过很多次,但每次都感觉心力憔悴。过程中各有各的难处。
第一难就是邀请什么嘉宾。其中最难的就是头牌嘉宾邀请谁。只有确定了这个,后边的才好解决。不管对于哪个层级,这其实都是个不容易的事,都会尽可能在自己能力范围内找最好、最合适的嘉宾。比如县一级,起码就得跨一个层级找到本行业全省范围有份量的嘉宾人选。市一级则需要找本行业全省顶尖或全国知名的,而省一级毫无疑问就得找本行业全国顶尖甚至全球知名的。这种跨层级需求,联系起来并不容易。
第二难就是定时间。时间这问题,不仅需要考虑嘉宾档期,还得结合本地活动安排。太早确定具体时间基本走不通。我前些年频繁遇到两边时间对不上,临时改期这种事,弄得自己里外不是人。甚至有一年我事先瞒着嘉宾同时邀请了两个头牌,好在后来有一位明确说没空,不然真要是两个都有空,就不知道怎么拒绝或者解释了。那次经历也给我一个教训,就是绝不能自作聪明同时联系两个以上,这种事只能单线程运作。
第三难就是横向沟通。一场大型活动,往往需要涉及大量兄弟单位协作事项,需要反复沟通、反复确认。比如主题的确定,就不是一边说了就算数,得共同商讨。但商讨主题,又与嘉宾人选直接关联,因为每个主题都可能对应到不同的嘉宾。虽然多年下来,总体事项都已轻车熟路,哪个单位做什么,谁负责哪一块都有大概定数。但过程中也容易出现因人员变动快、行事风格不同,导致协作起来并不一定畅快。
这次活动,与之前不同的是,一开始嘉宾人选就被上级领导确定了下来;人员确定后,那主题基本也就在嘉宾自身擅长领域选了,这些过程倒比较顺利。剩下的主要就是联系嘉宾和确定时间,总体上也比较顺利,毕竟是上级领导确定的人选,各方都一路开绿灯,优先照顾嘉宾的档期。几乎是没有什么悬念,提前两个星期就把前边这些事项准备妥当。
但这次却出现一个新的困难,就是当大家都知道嘉宾是上级领导确定之后,自然而然就认为嘉宾是上级领导的“客人”,因此也就前所未有地重视起来。包括谁去联系,什么名义邀请,谁去迎接,怎样安排车辆,怎样接待,怎样送客,具体内容全都得安排得明明白白。好在最后活动顺利进行,一切都妥妥当当搞完。
中文为什么这么难
今天折腾完一圈沟通上的破事后,我发现自己一直在用一个错误的视角看问题。
我的语文成绩向来不怎么好,一直觉得中文想学好挺困难的,特别是在与人沟通时,感觉就是字意多、音近、意思绕,说半天都说不透。听人讲话,经常走神,只能抓住几个关键词。而且老板说半句留半句,也得猜半天;回到家吃口菜说句咸了,都能引爆一轮情绪轰炸。之前也一直以为是自己社交能力不行,或者对方太敏感。
但最近反复琢磨这些场景,发现它们其实共享一个底层逻辑:中文运行的是一套“关系协议”,而不是“信息协议”。
什么意思?就是大多数日常对话的首要任务,根本不是传递事实,而是确认彼此的关系位置。你说什么都行,但你不能“站错位置”。一旦那句话听起来像是质疑、否定、或者没把对方放在心上,你说什么内容就都不重要了,对方会用尽所有脑补,把你的话翻译成“你在攻击我”。
菜咸了——不是盐放多了,是你在否定我辛苦做的饭。 你为什么不提前想到——不是你没预判,是你的心根本没在我这里。 你理解得对吗——不是你在确认,是你在暗示我没讲清楚。
这些“翻译”听起来离谱,但在关系语言的框架里,每一步都成立。
折腾明白了以后,我反而觉得不焦虑了。至少我知道了,很多沟通困局不是因为我笨,也不是因为对方难搞,而是两边的“协议版本”不一样。我在发“信息包”,对方在收“关系信号”,那当然怎么传都错位。
还有一个新发现是,跟AI打交道的时候,这套关系协议完全行不通。AI不吃情绪,不读潜台词,你给一句“差不多就行”,它就真的给你一个差不多烂的结果。你必须强制自己切换到“指令模式”,把所有模糊词换成数字、把省略的背景补完整、把客气话全部删掉。
这其实意味着,中文现在正在分化成两套系统,一套用来维护人的关系,一套用来指挥机器的逻辑。学会在两种模式间手动切换,可能是这个时代最基础也最被低估的生存技能。
TCL电视儿童模式
TCL电视默认没有使用时长设置,想限制小孩使用时长只能开启儿童模式才行。而它这个儿童模式完全是想钱想疯了,所有内容均要儿童VIP充值才能看。

18 没办法,最后只能在路由器上限制每天固定时段使用。

19 一张入场券的定价逻辑
今天看到一条新闻。西安一个北大艺术史论的毕业生,硕士从英国皇家艺术学院回来,求职时有人给开3000块,甚至有家给到1600块。
新闻本身已经够魔幻。但更让人在意的是另一个细节:报道说她是陕西省文科第九名考进去的。艺术史论,文科第九名?这个专业在我的印象里,一直觉得分数应该不高才对。
我高中的时候有个同学后来就是读了这一专业,不过不是北大而是清华。当年他的分数比一本线高一点,靠着专业课成绩进了清华。毕业后在京城呆了几年,没有留下来,前些年去广州从事教培了。当然,艺术类教培本身不在“双减”范围,所以工作还是相当稳定。
不过,也正如他所说,他们这个行业本质上是在贩卖“名校”这个招牌。吸引更多的家长为了名校光环,投入巨量资源进去。但最终就业却不怎么样。
这就形成了一个悖论。一个就业前景并不乐观的专业,为什么曾经能吸引全省顶尖的文科生报考?
因为录取分数不完全是市场定价,更多时候是制度博弈的结果。在艺术类提前批里,文化课过线只是门票,校考排名才是关键。一本线的文化分加上一张校考卷子,就能拿到别人花六百四五十分都进不去的入场券。至于你进去后能不能找到对口工作,那是另一套逻辑在管。
看前边新闻我才知道,后来教育部把这条路基本堵死了。艺术史论统一按裸分录取,分数线一下子飙到了六百五六。
这件事让人想明白一个道理。一个专业好不好找工作,和它的录取分数高低,有时候是两套完全不同的评价体系在起作用。市场价值和制度价值之间,存在着巨大的错位。
这个错位放在整个文化产业上也成立。为什么经济规模这么大,文化输出却总差点?根源还是原本精英教育体系教的更多是怎么利用规则,而不是怎么表达人文精神。这个问题目前来说也是很难解决的。
AI APP 问题
为了限制小孩使用平板电脑玩游戏和刷视频,我在系统上设置了总体使用时长,并把视频、游戏类 APP 全部纳入,但是考虑到小孩会用 Ai 问些问题,所以并没有限制 Ai 类的 APP 使用时长。结果昨晚稀奇古怪地听着小孩一直在玩平板看视频,却仿佛没有时间限制一般。跑过去一看,才发现原来他们在用 Ai 类 APP 看视频。具体而言就是在“千问”APP 里边,让 Ai 搜索视频,点击一个视频观看后,就可以像“刷抖音”一样一直看下去了。

17 当我停止纠结每一行代码的含义
今早在 HackerNews 看到一份关于对中国某县学生使用 AI 情况的跟踪记录,挺有意思。那些孩子用了新工具之后,作业完成得又快又好,但闭卷考试的分数反而整体往下走。这个反差让我一下子想起二十多年前的事,初中数学课上,老师举着那本蓝色封皮的《中学数学用表》,里面密密麻麻印着1.414、1.732、2.71828,他说:“背这些数值没太大意义,以后考试能带计算器。”
当时我觉得这是一种解放,现在回头看,那是第一次有人明确告诉我:有些苦功夫可以名正言顺地省掉。
后来发生了一件更让我意外的事。我完全没学过编程,别说C语言和Python了,连关键字都认不全。但这几年,靠着在工具框里反复提问、把报错信息贴回去追问、一遍遍调整描述方式,我竟然陆续搭出了几个能正常跑起来的应用。网站打开没问题,页面布局和配色比很多热门模板更符合我自己的偏好。说实话,代码里每一行的具体逻辑我到现在也看不懂,但它能跑,用户能用,问题就解决了。
这件事直接动摇了我的“学习观”。
与此同时,我也观察到另一个现象。同样面对新工具,大多数人还是老习惯,问一句“这个公式是什么”,拿到答案就关掉窗口。但有另一小部分人,会接着问:“为什么非得用这条思路?如果换一个条件呢?有没有更反直觉的做法?”前者像是在翻电子词典,后者像是在跟人对面开会。我觉得这就是现实里最真实的分水岭,而且它跟学历、年龄都没太大关系。
反复想这些事之后,我对“分数掉下来”这件事已经不怎么焦虑了。分数下降不一定代表变笨,更有可能代表那把测量的尺子已经旧了。当年计算器普及的时候,也有人说学生不会心算了,可后来数学考试不照样进化成了“列式比算数更重要”的格局?
所以我最后决定:不拿旧考试的标准来逼自己,也不把“背诵熟练度”当成进步的证据。把脑力从记忆中间步骤里抽出来,放到判断方向、验收结果和定义需求上,可能是更划算的策略。
工具在往前走,衡量标准迟早也会跟上。在那之前,先让自己做成几件能摆上桌面的东西,比盯着分数起伏要紧得多。
把大专生都赶去踢球,听起来疯,算起来香
今天在知乎刷到一个帖子,有人提议把全国所有大专院校改成体校,强制所有学生专攻足球。底下清一色骂“脑残”“极端”“不现实”。但我盯着1764万在校大专生那个数字看了很久,忽然觉得这个疯子可能才是清醒的。
一开始我以为他在胡扯。足球靠的是兴趣和天赋,强制能有什么用?但转念一想,现在这1764万人正在干什么?调查数据说超过95%的大专生每天刷手机超过6小时,混日子、搞对象、打游戏,毕业即失业。与其让他们在教室里“耗”三年,不如把他们扔到球场上跑三年——跑不出职业球员,至少跑出一身肌肉,跑掉颈椎病,跑掉脂肪肝。
后来我又想,中国足球最大的问题是什么?不是没钱,不是没场地,而是没“人”。注册青少年球员只有几万,而日韩是几十万。我们总说“14亿人选不出11个”,但事实上我们只有几千个孩子在正经踢球。如果把这1764万人全部强制纳入足球系统,哪怕只有1%的人具备基本运动素质,那也是17万人的选材库——比现在多出几十倍。
再往深处想,就算这1764万人最终没出一个国脚,他们三年内积累的足球知识、赛事组织经验、康复护理技能,也足以支撑起未来中国体育产业的底层劳动力。欧美体育产业GDP占比高达3%~5%,我们才1%不到,缺口巨大。到时候他们不是失业者,而是青训教练、裁判、体能师、赛事执行——这些岗位现在根本招不到人。
折腾了一晚上,我越来越觉得这个“极端方案”其实是个阳谋。它既不增加国家额外投入(学校、操场、教师都是现成的),又能解决健康、治安、就业和产业预备问题。唯一需要的,就是下决心打破“体育是副科”的认知铁幕。
最后我决定,不再嘲笑那个知乎提问者了。他可能只是嘴笨,但账算得比谁都清楚。中国足球的出路,也许不在足协的文件里,也不在中超的转会费里,而在那1764万个被应试教育抛弃、却能在球场上重新找到价值的年轻人脚下。
当法律人开始教唆公众“猎杀”同行
今天刷到了一位安徽律师的“翻车”大戏,整个过程荒诞得让人后背发凉。他教人如何利用律师调取信息的职业便利,事后再反手举报以骗取退费,甚至炫耀自己的虐待经历。一开始我以为这只是个别心理扭曲的跳梁小丑,折腾了一番研究后才发现,这背后其实是一个被“零投诉”指标逼到墙角的尴尬行业现状。
我们一直以为律师办案是基于合同的专业服务,但在当前的考核评价体系里,似乎“不出事”比“办好事”更重要。律所为了那一纸考核评优,对于任何投诉往往不管是非曲直,直接要求律师退费平事。这种“和稀泥”的行政处理方式,恰恰给那些想钻空子的人喂了一颗定心丸。
这真的让人感到悲哀。原本应该是社会正义最后一道防线的法律人,却在制度的夹缝里学会了用“恶”来博眼球,甚至把这种“黑吃黑”的技术手段当作职业机密传授给大众。当投诉不再是为了维权,而是成为一种勒索筹码,我们离法治的距离似乎又远了一些。
看着那位律师最终落得无条件退出行业的下场,我不觉得有什么惋惜。法律不仅是一门技术,更是一份沉甸甸的职业底线。当一个人连对生命的起码敬畏都没有,连对规则的最基本尊重都抛弃时,无论他穿上什么样光鲜的职业外衣,最终都注定被规则抛弃。
如何为静态博客设置一个说说页面
刚看到博友圈微信群中有群友问如何在静态博客添加朋友圈/说说这类功能,我第一反应是可以用一个无头CMS单独管理和发表这个页面,但打开PageCMS试了下,发现其实也很麻烦。于是想到跨站引用。这不,试了下 Github Issue 发现很完美。
使用教程
只需 2 步简单操作,一劳永逸解决静态博客添加朋友圈、说说之类的功能
注意事项
在设置模板过程中,需要留意以下几个问题:
- 页面构建缓存。可能导致页面内容可能无法更新。
1 {{ $url := "https://api.github.com/repos/user/moments/issues/1/comments" }} 2 {{ $opts := dict 3 "headers" (dict "User-Agent" "Hugo Static Site Generator") 4 "cache" 300 5 "cacheKey" (printf "gh-comments-%s" (now.Format "2006-01-02-15:04")) 6 }}- 内容排序。 github issue api 输出数据是最新的内容在后边,需要倒过来。
1 {{ with resources.GetRemote $url $opts }} 2 {{ if and .Content (ne .Content "") }} 3 {{ $comments := .Content | transform.Unmarshal (dict "format" "json") }} 4 {{ $sortedComments := sort $comments "created_at" "desc" }}- 时间格式。github issue 默认使用 UTC 时间,中国的话,需要在基准上加8个小时。
1<time> 2 {{ (.created_at | time.AsTime).Add 28800e9 | time.Format "2006-01-02 15:04" }} 3</time>