最近项目越做越复杂,于是上下文不大够用了。
apply change的时候,它虽然有一个tasks.md作工作规划,但codex屡屡把项目方方面面读进context,没有什么产出,就又compact了。
这样效果很低。
于是打断它,要求小步快跑,盯着tasks.md逐个完成,一聚焦,事情就流畅了。
最近项目越做越复杂,于是上下文不大够用了。
apply change的时候,它虽然有一个tasks.md作工作规划,但codex屡屡把项目方方面面读进context,没有什么产出,就又compact了。
这样效果很低。
于是打断它,要求小步快跑,盯着tasks.md逐个完成,一聚焦,事情就流畅了。
一份关于如何让世界各地拍摄的旧照片,在微信贴图号中获得准确位置推荐的技术笔记。
微信的贴图号(部分用户称为图片动态/状态,一种可发布图片、文字并附带位置的轻内容功能)有一个非常实用的机制:
然而,这个“位置”并非随便就能加上。微信允许添加的位置来源只有两个:
这里便出现了困扰许多用户的限制:
结论就是:历史照片的全球足迹,几乎不可能再被激活。
既然微信只信任“近期拍摄且携带GPS”的图片,那么关键突破口就在 EXIF元数据。
我需要的操作本质非常简单:
这样处理后,微信就会认为这是一张刚刚在当地拍摄的照片,从而允许我添加该地点。
但是,手动修改成千上万张旧照片并不现实。于是我让AI写了一个轻量小工具,专门批量/定向完成EXIF更新。
整个工作流经过测试,确实生效,而且极其省力:
DateTimeOriginal 改为近一两天,并确保 GPSLatitude、GPSLongitude 等字段正确填入该地点的坐标。一次修改,激活全部。 优雅地绕过了时间与距离的双重限制。
微信贴图号的地理围栏机制,曾经让无数精彩的“老照片足迹”被封存。借助EXIF元数据的灵活修改,我们重新获得了定义位置的能力。这不仅是对旅行记忆的一次数字复原,也为内容创作者解锁了更灵活的地点表达方式。
你过去在冰岛、在撒哈拉、在某个无名小镇按下的快门,现在终于能够带着它们原本的坐标,出现在它应该出现的人群视野里。
还是太太和小儿子的同学家长一起组织的家庭游,大概的顺序是 海拉尔–额尔古纳–恩和–黑山头–满洲里–哈尔滨。
除了哈尔滨,其他几个都是内蒙段,有联系旅行社,帮我们安排了司机兼导游,一路接送并讲解。
海拉尔:呼伦贝尔的首府,我算是第一次踏入内蒙的地界,也是第一次知道,这一片,除了崇拜成吉思汗之外,更注意纪念的是代表蒙古,征服这片土地的,铁木真的弟弟——哈萨尔。
额尔古纳:大兴安岭边上的白桦林,安排了让小孩用白桦树皮作画的环节,好无聊。
恩和:是俄罗斯族的小镇,就是卖个俄罗斯风情,还有做俄罗斯面包的环节,也挺没意思。不过附近草原上骑了个马,没有我想象中那么累。想当年我第一次骑马是在杭州马会俱乐部,搞得腰酸背痛的,估计是马术的训练方式太紧张了。
黑山头:恩和到黑山头的路上,就是额尔古纳河的风光了,很美。还有草原的山上弄的滑草和索道项目,孩子们挺开心。黑山头镇则是一种欢迎土豪的玩法,有篝火晚会,欢迎土豪们去赞助点火仪式。还真有老板以及托们去的。不过烟花搞得很危险,掉下来的块块直接把旁边的老人头砸破了。黑山头镇还有个特色的地方,坐东向西,前方是河流和草原,适合看草原日落。
满洲里,中东铁路的起点,俄罗斯人比较多,我们去套娃游乐场看表演,之前也在半路看过蒙古族的马术表演,在满洲里的游乐场又看了一遍俄罗斯人的马术表演,同行的孩子有在珠海长隆看过一模一样的,边看边睡着了。
内蒙最后一场是旅拍,之后返回海拉尔坐火车。
火车是绿皮火车,孩子们虽然没坐过,但也不会有什么兴奋了,毕竟累了。
到了哈尔滨,中央大街——索非亚教堂——极地公园——黑龙江省博等等。我抽空去转了一下哈尔滨的其他教堂。
先不贴图了。
不过我现在发现Blog看的人太少,朋友圈又不适宜写太多,想表达的内容其实也不时有,最近发现微信的贴图号挺不错,于是改了个名字,把一些见闻直接发那里去了,只要不主动通知好友,其实他们是不知道的。
几年前在办公室里的发财树的树叶上写字,多是一些佛道的文本,有两句表明当时的心境:月迷津渡,雾失楼台。
当然这是秦观的词了。
我之前一直认为迷津是一个佛教用语,但搜寻不到佛经里“迷津”的确切出处。早上想起,再搜搜,其实还是以孟浩然的诗为源:
早寒有怀
木落雁南度,北风江上寒。
我家襄水曲,遥隔楚云端。
乡泪客中尽,孤帆天际看。
迷津欲有问,平海夕漫漫。
其实也并不完全是孟浩然的原创,真正的来源是“问津”。此处化用了《论语·微子》孔子使子路问津的故事:
长沮、桀溺耦而耕,孔子过之,使子路问津焉。长沮曰:“夫执舆者为谁?” 子路曰:“为孔丘。”曰:“是鲁孔丘与?”曰:“是也。”曰:“是知津矣。”问于桀溺。桀溺曰:“子为谁?”曰:“为仲由”。
陶渊明的《桃花源记》中也用了“问津”一词:后遂无问津者。
秦观的词对应的是《桃花源记》:雾失楼台,月迷津渡,桃源望断无寻处。
说回孟浩然的诗。其时孟屡次科举不中,在荆襄吴越间寻找机会,一如孔子周游列国,谋取入仕。然而前路茫茫,人生海海,孤帆天际。
李白的《送孟浩然之广陵》正是看出好友的迷茫,化用其诗,以积极乐观的方式进行开解:
孤帆远影碧空尽,惟见长江天际流。
一时的迷茫得失,又算得上什么。滚滚长江,流向天际。
而李白诗中并没有直接答复“迷津”一问。
孟的诗:留下了儒释皆用的“迷津”一词;李的送别诗,则留下了千古名句。
本文只用搜索引擎,未使用AI进行编写或修改。
这几天时CC中考,我周五开始休假,在考场附近定了个酒店房间,方便他中午休息。毕竟家里老人(他外公外婆)虽然心里想他好,但没什么能力给他压力上的及时疏导。
然后想起1995年,我的中考。我初二下和初三是在白沙中学读的,也是全东莞范围内很少见的村办中学。(后来跟白沙小学合并了再一起,再后来,就停办了初中)中考考场在虎门中学。于是相熟的同学约在一起,早上骑车到太平,考完上午场后,就一起去那一家号称全国最早的麦当劳吃午饭。为什么是号称呢,因为它是冒牌货,在88年就开业了,香港人学到了麦当劳的做法,就到虎门开了一家仿冒。90年麦当劳正式进入中国,它就主动改名做麦当莱。
我们的座位是学校的教导主任编排的,为了关照三村跟他相熟的小孩/家长,把几个安排在我前后左右,方便看我试卷吧。我一开始也言明了,看无所谓,我也大方,不要抢我试卷,干扰我答题。当然了,中考过后我很快就把这些忘掉了,前几年初中同学聚会,说起这事情,我才想起,哦,是这样子啊。
第二天的考试,中午的时候遇到初一初二上的同学,邀请我回学校(虎门一中)休息一下。反正我也没什么好午休的,就过去了。见到转校前的那些同学,有认得的,也有不认得的。个人感觉有点唏嘘。人生就不过分分聚聚,后来再跟他们聚会,已经是疫情前的时候了。
中考出成绩之前,我哥带我到中大住了一周,校内的食堂大妈嘲笑我的粤语,我对广州人开始反感了。期间走了一下亲戚,在华农的教工宿舍睡过一个午觉,屋外下了一场雷阵雨,那个午觉是我人生最舒服的午觉。我对华农的第一印象非常好。在中大也跟我哥的同学下了围棋,才知道自己自学的围棋还是缺了很多基本功。
那时候中大有个码头,可以坐渡轮去大沙头,我哥就带我去大沙头,看他进证券营业厅,看人交易买卖股票。大沙头也有水翼船,我回虎门的时候就坐水翼船回的太平。
后来成绩就出来了,637.3 + 10分竞赛加分,647.3,拿了虎门第一,第二名是虎门中学的,636.3 + 10。赢得不多,其实我也没想过要拿虎门第一名,当时的理想是能考上东莞中学就可以了。现在回想起来,还是回到白沙读书的一年半,身边的高手太少了,只好自己卷自己,一不小心就卷赢了。
中午吃饭时,跟考完数学的CC说起我当年的分数,体育是考了个及格 30.x / 50,政治是88 / 100,说不上优秀,就靠其他遥遥领先了,比如数学,上了高中,才知道我大概是全市第一119.5/120,扣的分是专门不让我满分的——这么说来高考更公平,我高考数学是满分……
后来拿到东莞中学的录取通知,是白沙中学历史上第一个考上东莞中学的(我哥是在虎门一中考上莞中的),也算让白沙中学从湖南湖北江西过来的自认怀才不遇的优秀老师有个交代了。^_^
没考完之前,尽量不跟CC讨论他的考试,就讲我自己的故事好了。
有个持续了2个月的任务:做一个零件之间的冲突的检测算法,然后从1000+个样本里面,看看有多少被检测成伪冲突。这些样本都是成熟的方案,本身并不存在伪冲突。
用codex 5.4的时候,一开始还好,但一段时间之后,它发现我事实上是希望这些样本里面检测的伪冲突清零,于是就用坐标值堆数组的方式,给我一个假象,带来的问题就是这些分支越来越多,数组也越来越多。
我也发现了这个问题,于是让它处理维度提升,但一直到我该用5.5,这种情况终于有了数量级的提升。真的按照零件的逻辑而非数值来帮我处理。
不过也不能完全归咎于5.5和5.4的差异。毕竟在这过程中,我对这个问题的认识也深入了很多:
要检测到连接、冲突,又不能把正常连接/靠近处理成伪冲突,还要考虑检测性能的问题。
看了一年多,终于把海贼王追到最新的进度了。然后就可以先忘掉,毕竟尾田效率也就那样。
连载最大的问题就是,前后呼应不上,有作者心境的变化,也有读者/观众的影响,所以要连载成就一个完美的作品,基本上是不可能的。
另外就是环境也在变化,即使作者没忘掉初心,资本和市场的要求,也会让他与时俱进(中性)。
回过头来看vibe coding / AI agent,也是亦步亦趋,多轮之后,还能想起最初的目的吗?或者最初的目的的模糊性,在边做边清晰的前提下,发现原来是自相矛盾,或者俗不可耐?
早上发现Deepseek + Claude Code用不了了:API Error: 400 Failed to deserialize the JSON body into the target type: messages[1].role: unknown variant `system`, expected `user` or `assistant` at line 1 column 29561
问了一下google,是CC升级了,在里面加入了‘system’的role,而一般的第三方模型不会/来不及就它的毛病,就不支持这个role,于是报错。
没有非常好的办法。最后我选择了回退Claude Code:npm install -g @anthropic-ai/claude-code@2.1.148
但是也就是打开那一下是可以了 /exit 出来,重新进,就又变成 2.1.154了。
那每次使用都install 2.1.148再用?或者跳离它这条船。
这两天终于碰到一个。
我持续用codex为场景识别并收敛伪冲突。这几天碰到有若干个场景,伪冲突被codex收敛得很快,基本上3分钟内就告诉我,这场景的伪冲突已经清零了。
然后我每天都会让Deepseek + Claude Code帮我检查总冲突数的收敛情况。然后根据剩余的大头再委托codex去处理。
早上DS返回的结果跟昨天返回的结果类似,有些大头完全没有清理。我一开始以为DS搞错了,然后把结果给codex double check,codex一开始还是说它确实清干净了。
随着对质的深入,codex终于发现它的问题,它选了两个错误的数据域作为判断的标准,结果导致这两天的伪清零……
至于它为什么这么选,之前是没有这样做的。大模型毕竟是一种推理机制,如果KPI需要它清零,它会选择一个看上去能达到结果的判断方式,而并非费力地推导出各种机制和规则。简单来说,改测试代码,直接通过。
多模型联合工作,审核,避免偷懒,看来是必须的。
20年前,也就是2006年。我刚毕业一年,对小公司内部的政治斗争了无兴趣,就离开了。差不多时候离开的是一位斗争中无奈失败的清华校友/师兄。他之前是这个小公司的CTO,找到投资,就离开创业了——还是从事这一本行。
几个月后,我去他公司找他聊天,他给我展示他公司的管理后台,就是公司的信息系统页面(虽然他不是做IT的)。我很惊讶地发现,整个页面以及流程、模块划分,都跟之前的公司的后台系统一模一样。想问为什么,他的意思是,这毕竟不是他的主要方向,能用就用了,也省去了设计的烦恼。另外一点挺关键的,他从原公司挖了一批人,这些人也对这样的后台熟悉,就无缝过渡了。
然而我不以为然,怎么能因为使用习惯,就把这么关键的公司组织设计的工作给省略了呢?
及到我2009年又回到了之前离职的这家公司,一直做到2023年,老板说,划这部分人给你,内部创业,成立一家新公司,继续做。跟IT/财务/行政的讨论了一下,毕竟人和经验都是那样,也没必要标新立异,就把原来的系统复制一份,数据库划分一下,就可以起来了。(还有一句没有公开说的话,万一你公司做不起来,这些人也是可以直接回来的嘛)
确实,当时按这个思路走,3个月左右,就什么都畅顺了。
当然了,我整体来说是一个奥卡姆法则的践行者,既然可以省事,就没必要再发明一套,沿用旧系统和旧的组织模式是最方便的了。
直到我去年底,彻底离开了原有的集团公司和子公司。
我开始思考,组织的发展过程、组织的形态,以及AI Native的公司又该如何。
1.为什么会有公司?
公司的本质不是“一群人”,而是 “一种持续创造、交付和获取价值的机制”。工业时代之所以需要一群人,是因为信息传递和决策的带宽有限,必须靠分工和科层来规模化。但在AI时代,这个物理约束正在消失。
2.创始团队是怎么形成公司的?
随着业务的成功壮大,一部分的创始团队,也可能是夫妻档,就不得不招聘更多的专业人士加入其团队,于是就有了内部事务的划分,产品研发、市场、销售、供应链、财务、人力资源。一开始是一两个人处理某一项的内部事务,虽然事情越来越多,就需要增加人手,形成部门。
部门逐渐壮大,老板不可能直接对接到个人,于是需要有经理的出现,也就是中层干部。继续壮大,老板和经理之间的副总也出现了,经理和一线员工之间的主管也出现了。
3.什么是奥卡姆法则?
奥卡姆法则:“如无必要,勿增实体”。就是如果跟终极目的不相关的事情,不要因为纵向的历史/经验,横向的同行/对手,而引入对你没有帮助的实体。
4.什么是第一性原理?
Elon Musk提出/遵循的第一性原理,要求探讨问题的时候,关注终极的最简单的事实。然后重新设计系统/解决方案。
5.根据第一性原理,只保留核心团队/个人,核心问题是什么?
单一人类的有限认知与无限市场需求之间的矛盾。其架构必须解决:如何用一个人的“意图”和“判断”,驱动持续增长/无限规模的“执行”。
6.AI Native是什么?
人遇到的所有问题,从AI那里寻求帮助,而不是看传统的人是怎么做的。
7.AI Native 对问题5的答案是什么?
市场感知智能体取代,它持续扫描全网,输出趋势信号。客户需求 -> 需求解析智能体 -> 价值评估智能体(与人类心智层交互) -> 任务拆解智能体 -> 执行智能体集群 -> 交付验证智能体。整个过程是一个自动流转的状态机。这一段有点抽象,我再简单一点:
8.奥卡姆法则如何协助达成AI Native?
传统公司里有一堆“多余的东西”:
在AI公司里,这些东西统统扔掉:
最终AI Native公司的形态就是:
一个人类核心团队(目标/边界) + 一组自治智能体(执行/协调) + 一个共享记忆系统(数据/知识) + 一系列外部API(能力/市场)线 = 一家公司
没有其他多余的人、多余的步骤、多余的管理。
9.这样的公司如何壮大以适应更大市场需求?
不靠加人,靠加AI能力,而且让外面的人也用你的AI能力。
这叫“水平扩展”:像复印机一样复印你的AI劳动力。
这叫“能力平台化”:卖铲子比挖金子赚得多,而且规模可以极大。
这叫“递归扩张”:你的AI帮你管理一群小AI公司,你只当最终老板。
10.为何这个回答里面,有时候以一个人来表达,有时候以人类核心团队来表达?
因为一个人总揽所有业务的风险非常高,在AI自主并不成熟的时候,有可能因为人的偶尔缺席而带来严重的后果。所以考虑的是一个核心团队,能对边界作出合理的限制,也可以互为备份和补充,降低个人的偶发风险(生病 / 意外等)
(这文章并不太完善,我后续再行修改。)