Normal view

There are new articles available, click to refresh the page.
Today — 18 August 2025Curiosity

1781 天后,我们还是分手了

By: sdrpsps
18 August 2025 at 10:18
sdrpsps: 昨天是她的 26 岁生日,本来约好了与她共进晚餐。但下午我告诉她餐厅位置后,跟我说不与我一起吃了,跟家人一起吃。我觉得很奇怪,因为这么多年来,她都是与家人过农历生日的,都是与我一起过新历生日。

前天,她生日的前一天,我跟她商量我们要怎么过生日。她好久没有回复我,之后跟我说:明天晚上吧,蛋糕买小小个的就可以。

因为我们都是用 iPhone ,所以我们都开启了查找定位。我可以看见她在哪里、她可以看见我在哪里。我们都互相信任对方。

但昨天,我真的觉得很奇怪,所以我打开了查找看一下她在哪里。我看见她在增城的一条村的河边。我在小红书上查了下那个村名,发现那里是一个溯溪营地(我曾经和她这样露营过,真是一个美好的回忆),我当时还以为她跟朋友们一起开车去的。

我平时是不会过问她与朋友们的活动的,但是这次与她说的话非常不合逻辑。虽然我与她父母家人见过几次面,但是我认为她父母平时决对是不会去这些溯溪的,跟何况是她生日。这时候,我意识到她在骗我。但我没有说出来,打算晚上去她家送生日礼物时,再问问她。

晚上 8 点半,我问她吃完没,她说还没。这又让我觉得很奇怪了,虽然之前也有过类似情况,但是她会主动告诉我为什么,但这次没有。于是我打开查找,看见她的定位还在路上移动,不过也差不多到家了。

我打算起身去给她送礼物了,这时不对劲的事发生了:她没有回家,而是继续往碧江方向走,我还安慰自己说她送朋友回家(虽然我知道她没有朋友住在碧江)。我一直看着她的位置移动,最终停在了一家甜品店。

我这时候已经有点着急了,我马上骑电动车去那家甜品店。一路上我一直看着定位,生怕她离开了。还好,当我来到甜品店附近时,她还在。

首先,我先来到疑似停车地点(她先在那里短暂停留一下,然后才去甜品店的)的地方扰了一圈,没发现她的车,说明今天不是开她自己的车。然后骑电动车在甜品店绕了两圈。因为甜品店坐满了人,我都没有发现她的身影。

我没有贸然进入甜品店找她,这是成年人互相应有的体面。我当作不知道这件事问她什么时候吃完,她说 9:40 ,随后我给她打了电话,她不听。我只好在马路对面看着甜品店出来的人。

9:16 左右,我看见了熟悉的身影,是她和一个男人。两个人,没有其他人了。

我当时的心情非常复杂。是她骗我后自己得到真相的喜悦、还是我所爱的人背叛的失落?我不知道怎么形容这种感觉,总之,天塌了。

我尾随她,知道了她上了哪辆车。在他们在收费道闸给停车费时,我看清了车牌和车型:大众 ID6 。

我看着位置移动,知道她要回家了。我也跟着去她家。只是我骑的是电动车,根本追不上她。她到家了,我才去了一半路程。

就在差不多到她家时,她让我过来,拿生日礼物。我说好,其实我已经到了。平复了一下心情后,我让她下来。

见面时,她的衣服很漂亮,我很喜欢。在平时我绝对先夸一下。

我装作什么都不知道,祝贺她生日快乐。然后说不知道你会不会嫌弃我的礼物。生日礼物是上个月我们在东莞逛街时在某专柜试的粉底液,当时试的时候她很喜欢,但是有点贵,没有买。我默默记下了。

她看见盒子的品牌标识后,就知道了我送的是什么。我能感觉到她真心流露出来的喜欢,那一瞬,是真实的她、是我认识的她、是我熟悉的她、是我爱的她。我多么希望今晚的事情没有发生,多么希望我不知道真相。她开心,我就满足了。

不过理性还是战胜了感性,临走时我叫住了她。

我问她:
- 今晚吃什么了,吃这么晚
- 吃烧烤
- 和家人一起吃烧烤?我不信哦
- 不信就算
- 那今天去哪里玩了,又不陪我
- 不告诉你
- (我又再次确认)今晚真的和家人吃烧烤?
- 是呀
- 那你和谁去玩了呀
- 不告诉你

总之,她带着俏皮的语气不愿告诉我真相。我按耐不住自己,说
- 我知道你不是和家人吃烧烤,我希望你不要骗我
- (沉默一阵)我们去别的地方聊吧

我载她去了离她家远一点的地方。我说
- 我不想你骗我,能说一下今天去哪玩了吗
- 你知道的(我确实知道)
- 和谁去玩了
- 你知道的(我真不知道)
- (我沉默,又重复问了烧烤的问题)

看她不愿说,就轮到我说真相了
- 你今天去了增城某个溯溪,但是我不知道你跟谁去的
- 你一直在看我在哪里?
- 不是,我是在你说今晚不和我吃、和家人吃的时候才看的,我觉得不正常
- (她沉默)
- 你今晚不是和家人吃,你去了碧江,而且不是开你的车
- (她沉默)
- (我沉默)
- 既然你知道了,我今天是和家人安排的相亲对象去的
- 相亲对象?!
- 是呀
- 你跟家里说了我们分手了?(我们年初的时候闹过一次分手,之后就对我冷漠了很多)
- 是呀
- 我究竟是做错了什么?为什么?
- 你知道的,我上次也说了,你没有错,只是你给不到我想要的生活。叫你跳槽你不跳、工作又远,回来陪我吃饭都快 8 点、平时又不关心我、我不想上班,只想躺平做阔太,按照我们的收入,根本不可能
- (这确实是我的痛点,我在广州做前端,3 年了到手还是 7k 、为了省钱,我不在广州租房,每天坐跨市地铁公司和家两点一线,一天 3 小时通勤,但也存了点钱,准备买车了)那今天这个相亲对象呢,多大?
- 他 96 年的
- 96 年,比我多工作 4 年,确实是比我有钱
- 不是多工作 4 年的问题,而是家里有钱
- (我沉默)
- 你给不到我想要的生活
- 我不是不想跳槽,我现在已经在准备面试题和简历了。再说我不想跳槽的话,也不会买课来快速提升自己了
- (她沉默)
- 所以我们真的没可能了?
- 应该吧(她眼睛已经红了)
- (我沉默)家里有钱,那我确实没法比
- (她沉默)
- 所以,我们就这样了?
- 嗯

至此,历经 1781 天的校园爱情还是败在现实问题上,我们和平分手了。

我清晰记得,我们聊完之后送她回家,在我掉头离开时,我们都互相回头看向对方。这何不是不舍得。

昨晚,我彻夜难眠。

现在,我坐在上班的地铁上,翻看相册里我们旅游的照片,实况视频里的我们,这么近又这么远。在写这篇文章时,时而想起我与她的美好回忆,脑海中的一帧帧画面闪过,哽咽、眼泪不禁的流下来。

虽然我知道人要自信,往前看。但接近 5 年的时光,我们一起经历了毕业、就业、熬过新冠疫情、低落时的互相帮扶…这样的感情就此落幕,我还是难以接受,尽管我们在分手的时候都很平静(或装作平静)。

接下来,还是要靠自己,该跳槽跳槽、该好好过没有她的日子了。

2025 年 8 月 18 日 周一

对语言一窍不通,能在 AI 帮助下自己搞一个 rclone 后端出来么?

18 August 2025 at 08:30
PrinceofInj: 对 go 一窍不通,有一个内部存储产品,我对其 restful api 都知道,之前 curl 操作上传下载啥的都没问题,想借助 rclone 做一些操作简化,我问 Gemini ,他信心十足的告诉我,只要把需要的 API 和响应体给他,绝对没问题,我把需要的都给了,他洋洋洒洒给出了几百行代码,然后跟我保证,说这个实现非常优美,完全可以满足我的需求。我其实不太放心,有提交给 qwen 和 deepseek 审查了一下,两位国内的家伙找到几个 bug ,有一个还挺严重的,Gemini 又抱歉一大堆,又给我一堆代码,我故伎重施,这次多个 ai 都认为没问题了。但是等我把 rclone 拉下来进行编译的时候发现每次都是各种问题,把错误发送个 Gemini ,折腾一晚上都没编译通过

是我使用方式不对还是目前 AI 还达不到我需要的程度?

[深圳]后端开发工程师,对 AI 音乐感兴趣

By: win7pro
18 August 2025 at 08:28
win7pro: 代友发布职位,创业公司,朋友做 AI 音乐实体产品,已经有产品发布。
需要有后端技术,AI 应用,对音乐创作感兴趣的人加入。

职位要求
1 、拥有计算机及相关专业本科以上学历,两年以上 C++/Go/Java/Python 项目开发经验;
2 、良好的技术视野,有独立系统架构设计能力,做事细心,考虑周全;
3 、有 AI 工程落地、语音相关的算法和技术、ToB 项目交付经验者优先。

联系:eXVfeXVhYmNAMTYzLmNvbQ==

大模型的训练是不是到头了?

By: nosugar
18 August 2025 at 08:02
nosugar: GPT5 发布后用了感觉没有质的变化,可能是部分场景的调优,拼训练数据,拼各种细分场景的优化,感觉训练数据就这么多,以后各家的水平会无限接近,会拼各个细分领域

大家觉得以后大模型还会从哪方面发展?以后是否是更注重大模型的实际业务需求落地?

20250818

18 August 2025 at 09:09

典范条目

阿美士德使团是继馬戛爾尼使團英国派往中国的第二个使团。由于阿美士德使团仍然秉承马戛尔尼使团的外交对等原则,从始至终都拒绝向皇帝行三跪九叩之禮,为此与清朝君臣抗辩数日,结果使团在抵达北京的8月29日当天遭嘉庆遣返;使团离去后,嘉庆更是下谕旨要求英国“嗣後毋庸遣使遠來,徒煩跋涉”。这为后来的鸦片战争埋下伏笔。

你知道吗?

优良条目

1753年婚姻法令》,於1754年3月25日生效,是英格蘭及威爾斯地區首次有成文法明文規定婚姻關係必須透過正當儀式締結。法令是為了打擊當時盛行的秘密婚姻,以及因秘婚而衍生出男女未經家長同意私奔、甚至是重婚的社會問題。法令除了規定婚姻必須教堂內由聖公宗神職人員主持證婚外,又規定男女雙方婚前必先經由教會刊登結婚啟示,或先向教會申請結婚執照。針對21歲以下的未成年男女,如果他們以申領結婚執照的形式結婚,更須先徵得家長或監護人同意;他們即使透過刊登結婚啟示的形式結婚,也不可遭到父母的反對。

每日图片

  • 早花百子蓮(Agapanthus praecox)的花苞,純白色矮株,45公分。使用50張照片焦点合成。
    早花百子蓮(Agapanthus praecox)的花苞,純白色矮株,45公分。使用50張照片焦点合成

新闻动态

历史上的今天

8月18日

1572年
法國國王查理九世的妹妹瑪格麗特(圖)與纳瓦拉國王亨利四世結婚,試圖緩解宗教戰爭
1868年
法國天文學家皮埃爾·讓森在印度貢土爾日全食色球光譜進行觀測時首次發現元素。
1877年
美國天文學家阿薩夫·霍爾美國海軍天文臺發現火星較大的衛星火衛一」。
1920年
美國足夠數量的洲份批准《美國憲法第十九修正案,進而確保美國婦女選舉權
1979年
朝鲜軍人在板門店非軍事區的殺害兩名美國軍隊軍人,爆發韓戰休戰以來最嚴重的衝突

20250818

18 August 2025 at 08:17

From today's featured article

Coat of arms of Malta
Coat of arms of Malta

Maltese nationality law is primarily governed by the Maltese Citizenship Act, which came into force on 21 September 1964. All persons born in Malta between 21 September 1964 and 1 August 1989 automatically received citizenship at birth regardless of the nationalities of their parents. Individuals born in the country since that date receive Maltese citizenship at birth if at least one of their parents was a Maltese citizen or was born in Malta. Foreign nationals may become Maltese citizens by naturalisation after meeting a minimum residence requirement (usually five years). Malta is a member state of the European Union, and all Maltese nationals are European Union citizens. Maltese citizens are also Commonwealth citizens under British law. (Full article...)

Did you know ...

Stuttgart small kitchen
Stuttgart small kitchen
  • ... that the Munich kitchen was developed because the Stuttgart kitchen (example pictured) did not allow a housewife to look after her children?
  • ... that football manager Juan Álvarez was nicknamed the "king without a crown" after his team lost a championship due to the away goals rule?
  • ... that an estimated three-quarters of New Zealand's population saw Elizabeth II during her 1953–1954 tour of the country?
  • ... that Thomas Lincoln Tally, considered the pioneer movie-theater exhibitor of Los Angeles in 1916, is credited with coining the term "moving picture"?
  • ... that a line delivered by Pelé in the 1980 movie Os Trombadinhas went viral as a meme in Brazil?
  • ... that Perdiccas, the regent of Alexander the Great's empire after his death, was nominated as king with great support, but he hesitated to accept the role?
  • ... that Magical Girl Witch Trials received full voice acting after crowdfunding raised more than 30 times the original goal?
  • ... that Greek Revival buildings like Edgewood were unknown to most people in the surrounding area when they were built?
  • ... that toy designer Shunsaku Tamiya was placed under government surveillance for speaking to Soviets about their tanks?

In the news

Miguel Uribe Turbay in 2019
Miguel Uribe Turbay

On this day

August 18

Royal Australian Air Force helicopter in Vietnam
Royal Australian Air Force helicopter in Vietnam
More anniversaries:

From today's featured list

Wikipedia:Main Page/2
Propaganda poster in Kaesong
Propaganda poster in Kaesong

Slogans play an important role in North Korean propaganda, as they depict how citizens are expected to behave, think and dress. North Korean propaganda slogans are very similar to propaganda by other socialist states, such as Maoist China, in that they emphasise the strength of the military, the creation of a utopian society, and devotion to the state and its supreme leader. Despite hostile relations between North and South Korea, slogans and posters have been made in support of Korean reunification, while others were made to promote events in support of bilateral relations, such as the April Spring Friendship Art Festival. (Full list...)

Today's featured picture

The Colonel

The Colonel is a farce in three acts by F. C. Burnand, premiered in 1881, based on Jean François Bayard's 1844 play Le mari à la campagne. The story concerns the efforts of two aesthetic impostors to gain control of a family fortune by converting a man's wife and mother-in-law to follow aestheticism. The man is so unhappy that he seeks the company of a widow in town. His friend, an American colonel, intervenes to persuade the wife to return to conventional behavior and obey her husband to restore domestic harmony, and the colonel marries the widow himself. The Colonel's initial run was at the Prince of Wales's Theatre, for 550 performances, while simultaneously a second company was touring the British provinces with the play. In October 1881, it received a command performance before Queen Victoria, the first play to do so since the death of Prince Albert in 1861. It transferred to the Imperial Theatre in 1883 and then to the new Prince of Wales Theatre in 1884. In July 1887, there was a revival at the Comedy Theatre. This cabinet card depicts Rowland Buckstone as Basil Giorgione (left) and Cissy Grahame as Nellie Forrester (right) reprising their roles in the 1887 revival of The Colonel. The sepia photographic print measures 14.6 cm × 9.9 cm (5.7 in × 3.9 in) and is in the collection of the Victoria and Albert Museum.

Photograph credit: London Stereoscopic and Photographic Company; restored by Adam Cuerden

分享一个 JetBrains 全家桶在支持 Promotion 的 MacBook 上,滑动没有高刷效果的解决方案

18 August 2025 at 01:27
william102478551: 背景:楼主的 M1 Pro 的 MBP 最近在使用 Android Studio / PyCharm 的时候,发现滑动修改代码的屏幕刷新率明显还是 60 帧的水平。。。和日常其他 App 的高刷体验严重割裂,实测在 VS 上是不会有这个问题的。

在 JetBrains 的 YT 反馈论坛的帖子找到一个一周前更新的解决方案,是通过替换一个 JB 全家桶启动的 JRE 实现的。

帖子链接🔗: https://youtrack.jetbrains.com/issue/JBR-6243 有需要的老板可以替换下,我这里替换后确实提升明显,不会有之前卡卡的情况了。

最近新上架了一个不需要 VPN 的 iOS Tailscale SSH Terminal 免费客户端

18 August 2025 at 00:30
fortitudeZDY:

作为基于 Tailscale 开发的 xEdge 的开发者,我一直非常喜欢 Tailscale ,然而自从我基于 fd.io VPP 开发了一个新的 iOS VPN 客户端(之前在站内分享过这个 VPN 客户端即 MintFlow NetStack 的 promo code )后,日常主要开着这个客户端,然而我总需要经常远程登陆到我的很多 SSH 服务器进行维护或客户支持,这个时候 iOS 不支持 VPN 多开就比较烦人了。

我原计划想把 Tailscale 的客户端集成到我的 VPN 客户端中,但主要考虑到我的客户端网络协议栈主要基于 C 语言和 RUST 开发,实在不太想引入 Go 这个运行时;因此,趁近期有一些时间,加上我想再深入研究一下 Tailscale 作为 SDK 的可用性,以及 Terminal Emulator 的原理,于是果断开搞,而往往我比较头痛的 UI 部分,如今已经有 Claude Code 这个工具提供大力支持,因此一个月的时间便搞定了,而 Apple Store 的审核则比较有意思,首次提交后,只是问题了一些 App 的工作原因,以及和 Tailscale 账号之间的关系,便顺利通过了,可见如果不是太多同类的软件,稍微有那么一些独创性,通过的可能性还是挺高的。

App 的名称是 NovaAccess ,目前主要是基于大神 Miguel de Icaza ( Gnome 项目的发起人,Mono/Xamian 等项目的发起人,大神最近从微软离职,却专注地搞 Apple 生态 App ,亲自写代码,值得学习)的 SwiftTerm (坛子里前几天发的 Nex Terminal 应该也是基于此项目)来实现 Terminal Emulator Engine ,网络部分则是 Tailscale 和 libssh2 来实现 SSH Terminal 。

App 已经上架 AppStore ,目前免费下载,链接见下:

https://apps.apple.com/us/app/novaaccess/id6749938291

当然 App 也同样在 ProductHunt 发布,链接见下,如果您感觉 App 对您有帮助,希望也能举手之劳,帮忙 upvote 一下,在此感谢您。

https://www.producthunt.com/products/novaaccess?launch=novaaccess

其他说明:

  1. 目前不支持 custom login server ,之所以这样,是因为目前 App 和 Tailscale 客户端一样尚不支持中文,另外就是个人有点小私心,期望后面的 Pro 版本提供 custom login server 支持;还有就是 AppStore 往往提交第二个版本可能会有一些更严格的审核,因此想暂时让功能简单以减少风险;后续如果支持 Pro 版本,一定会在坛内给朋友送 Pro 版本使用。

要不要跳槽的问题

By: gibber
18 August 2025 at 00:21
gibber:

奔四的大龄后端程序员,单身无房在二线城市飘着,近两年公司营收情况不好一直走下坡,未来一两年只能勉强撑着,后面的路还不明朗。基本也能保证公司在岗位就在,暂时不会有失业风险。 现在有个一线城市的 offer ,公司平台要大一点,也能学些新的技术,目前来看前景要好一些,但进去又要从头干起,首先也是要能稳住,也是有很大风险,即便能再干几年,可能最终也是要回老家,在这里肯定没法安家的。 比较纠结是要苟到最后再说,还是未雨绸缪赌一把?

体验了一把运动小飞机低空飞行,感觉挺酷。

18 August 2025 at 00:07
leewi9coder:

最近花了 2k 多大洋体验了一把运动小飞机低空飞行,感觉挺酷。。又被安利学习运动飞机驾照,大概 9w ,兄弟们有什么经验,值不值得去考,以后长期飞行安全性如何,据说有的小飞机带整机降落伞,0 事故,但心里总有点担心。。

我第 2 次拒绝加班了

By: aqtata
17 August 2025 at 21:53
aqtata:

碎碎念一下。。

背景:小公司,没有加班费,我上面有个小主管,是个卷逼。

第一次:

新项目,临时招了个开发,这兄弟天天干到晚上 9 点吧,我基本到点打卡下班。小主管对我不加班有点想法,拉我“谈心”,话不投机,理性的争执了下,大家立场不同,我的观点是公司没有加班费制度,我不会去卷,稀释我的时薪,他呢是站在公司的角度想解约成本,不太愿意招人,事情干完了养程序员费用高了。最后当然是不欢而散,不过之后我下班也没怎么到点走了,有时多给公司奉献 1 小时左右。

项目第一版刚搞完这个新来的兄弟自己辞职了,不知道是不是因为肝不动了还是因为别的原因。。。

第二次: 那兄弟走了后烂摊子又扔我头上了,要重构一些功能。。 前天晚上人在家中接到小主管的电话,要我周末来加班,我说没时间,他说重构项目时间紧,我就说时间足够了,说了两句嗓门开始大了,我说我是人,需要休息,严厉拒绝了。

我的想法是,我做好自己的分内事,不划水摸鱼,白天尽可能负责做事,到下班点我在公司多待下都无所谓,但肯定不会太长时间,周末加班那是不可能的。不爽我就裁我吧。

整顿职场,我贡献着自己的一份力,真心希望下一代人有西方那样的工作环境,不要再卷了。

最近准备升级一波家里的机房,大哥们帮忙参悟参悟

17 August 2025 at 13:45
Martin123123:

前言

  1. 这套老系统经过 5 年的积灰,现在已经不愿意清理了
  2. 目前切换新平台的价格也不算太高,内存、磁盘基本上都可以通用
  3. CPU 、准系统目前价格也合适,所以准备迁移一波
  4. 就是想折腾四子星了

原配(3 台)

配件 名称 备注
准系统 浪潮 5212M4
CPU E5-2660 v4 双路
内存 256G DDR4
硬盘 8TB U.2(P4510 主数据盘 14000+ 通电 写入 800TB 寿命 99% )
硬盘 英特尔 p3605 1.6TB PCIE(传家宝...3 块 61000+ 通电 Percentage Used 1%)
硬盘 2TB M.2(aigo P5000Z 曾经断电丢过数据,后续基本上只挂着,没怎么用了)

方案一

  1. 功耗低, 8259CL 只有 75w TDP, 比现在的省电非常多
  2. 性价比高
  3. 缺点: 无法直通 U.2 和 M.2 必须舍弃其中一个(四子星没有那么多 PCIE 扩展位)
配件 名称 价格
准系统 DELL C6320 / 浪潮 SA5248M4 1200 - 1800
CPU E5-4628L v4 80 * 8

方案二

  1. 平台更新, 后续可玩性更高(伪命题)
  2. U.2 可以直通, 因为后续扩容磁盘计划是继续买 U2 的
  3. 单路 8259CL 估计就可以满足之前 双路 2660 的性能
配件 名称 价格
准系统 浪潮 NS5162M5 / X6000 321V5 2000 - 2300
CPU 8259CL 180 * 4

用视觉大语言模型检索表情包

17 August 2025 at 23:19
heimoshuiyu:

脑子一抽想出来的 idea 。好奇大模型对各种 meme 能理解到什么地步。后面加入语义检索就变成有用的 meme 检索工具了。前端是 vibe coding 的,后端是 Rust 手写的,VLM 提示词是瞎写的,钱包余额是烧光了的。

欢迎各位玩玩,第一次搜索时加载 VectorChord 的缓存可能有点慢。

https://vlmeme.aquarium39.moe

现在国内有什么还可以用 claude 的 ide 方案吗

17 August 2025 at 22:41
flynnlemon:

之前尝试了一段时间 Cursor ,用的 claude 4.0 ,感觉很舒服,现在发现 claude 等模型被禁用了,尝试了一下字节的 Tace ,感觉还是远不如 Cursor 。

所以想在论坛请教一下,有什么不开 vpn 的情况下对 Cursor+claude 进行平替的编程方案吗

从 Claude Code 到 GrowBlank - 软件进化的新范式

By: taowen
17 August 2025 at 22:38
taowen:

[背景音:咖啡馆环境音,键盘敲击声]

Alex: 嘿,Sam !好久不见,最近在搞什么?

Sam: Alex !正好想找你聊聊。我最近在用 Claude Code ,就是 Anthropic 出的那个命令行工具,用着用着突然有了个疯狂的想法。你还记得咱们以前讨论过的 Smalltalk 吗?

Alex: 当然记得!那个"代码即数据,数据即代码"的老古董?等等,你不会是想...

Sam: 哈哈,你猜对了一半。来,我给你演示一下 Claude Code 。*[键盘声]* 看,我现在输入:"帮我分析一下当前目录下所有 Python 文件的代码复杂度"。

$ claude "帮我分析一下当前目录下所有 Python 文件的代码复杂度"

正在搜索 Python 文件...
找到 15 个 .py 文件

生成分析脚本...
$ find . -name "*.py" | head -5
./main.py
./utils/helper.py
./utils/parser.py
./models/user.py
./models/product.py

安装复杂度分析工具...
$ pip install radon

执行分析...
$ radon cc . -s
main.py
    F 15:0 process_data - B (7)
    F 45:0 validate_input - A (3)
utils/helper.py
    F 8:0 format_output - A (2)
...

Alex: 哇,它自己去找工具,安装 radon ,然后执行分析?这不就是个会编程的助手吗?

Sam: 对,但重点不在这。你注意到了吗? Claude Code 实际上是在实时生成一个程序。每一行 bash 命令,都是这个程序的一部分。只不过这个程序不是预先写好的,而是根据我的需求和当前环境动态生成的。

Alex: 等等,你是说... [咖啡杯放下的声音] 用户以为自己在对话,实际上是在无意识地编写程序?

Sam: Exactly !而且更有意思的是,如果我再问一次同样的问题...

$ claude "再分析一次代码复杂度"

检测到您刚才执行过类似操作,直接使用已安装的工具...
$ radon cc . -s --json > complexity_report.json
$ python -c "
import json
with open('complexity_report.json') as f:
    data = json.load(f)
    # 生成可视化报告...
"

Alex: 它记住了!而且这次还加了 JSON 输出和可视化?

Sam: 这就引出了我的想法。如果我们把这个模式推广,不只是命令行,而是整个应用呢?想象一下,用户从一个空白对话框开始...

Alex: 就像 ChatGPT ?

Sam: 对,但不止于此。我管这个概念叫 GrowBlank 。来,我画个图给你看。*[纸笔声]*

Day 1: 对话
用户: "帮我记录今天的开销"
系统: "好的,记录了:今天开销 [输入框]"

Day 7: 模式识别
系统: "我注意到您每天都记录开销,要不要我生成一个快捷输入表单?"
[生成表单: 金额 | 类别 | 备注 | 保存]

Day 30: 应用成型
[完整的记账应用界面]
- 每日开销列表
- 分类统计图表  
- 月度预算提醒
- (保留对话框处理特殊需求)

Alex: 所以应用是"长"出来的,不是设计出来的?

Sam: 没错!这解决了软件开发的核心悖论。你知道为什么那么多项目失败吗?

Alex: 需求不清?

Sam: 不只是不清,是根本不可能清楚!我给你讲个真事。上个月我们公司要做个内部工具,产品经理写了 30 页需求文档。你猜怎么着?

Alex: 上线后全改了?

Sam: 都没等到上线!开发到一半,业务部门说:"这不是我们要的。"你知道最讽刺的是什么吗?他们也说不清要什么,只能说:"等我用了才知道。"

Alex: 啊,经典的"我不知道我要什么,但我知道这不是"综合征。

Sam: 对!但 GrowBlank 模式下,这不是 bug ,是 feature !用户不需要知道自己要什么,他们只需要开始使用

Alex: 等等,我想到个问题。*[椅子挪动声]* 如果每次都是 AI 生成,怎么保证一致性?今天生成个蓝色按钮,明天变成红色了?

Sam: 好问题!这就是 Smalltalk 哲学的精髓了。还记得 Smalltalk 的 image 概念吗?

Alex: 整个系统状态的快照?

Sam: 对!在 GrowBlank 里,每次生成的组件、识别的模式、用户的偏好,都会被持久化。看这个例子:

// 系统自动生成并保存的组件定义
const ExpenseForm = {
  generatedAt: "2024-01-15",
  usageCount: 45,
  lastModified: "2024-02-01",
  schema: {
    amount: { type: "number", required: true },
    category: { 
      type: "select", 
      options: ["餐饮", "交通", "购物", "其他"],
      // 这个列表是从用户历史输入中提取的
      learnedFrom: "user_history"
    },
    note: { type: "text", required: false }
  },
  evolution: [
    { date: "2024-01-15", change: "初始生成" },
    { date: "2024-01-20", change: "用户要求添加类别" },
    { date: "2024-02-01", change: "自动添加常用类别" }
  ]
}

Alex: 所以组件会进化,但是是渐进的、可追踪的?

Sam: Exactly !而且用户可以随时介入。比如:"把那个表单的按钮改成绿色",系统就会更新组件定义。

Alex: 嗯... [思考] 但这不会导致过度定制吗?每个用户都有自己独特的应用,没法标准化,没法培训新员工...

Sam: 这恰恰是传统思维的误区!为什么一定要标准化?我问你,你用的 VS Code 配置和我的一样吗?

Alex: 当然不一样,我有自己的插件、快捷键、主题...

Sam: 那影响你们团队协作了吗?

Alex: ...没有。反而每个人都很高效,因为工具适合自己的习惯。

Sam: Bingo ! GrowBlank 的哲学是:标准化数据,个性化界面。团队共享同一套数据模型,但每个人可以有自己的交互方式。

Alex: 有意思... 让我想想实际场景。*[喝咖啡声]* 比如说,一个创业公司,从零开始用 GrowBlank ?

Sam: 好例子!我来模拟一下这个过程。第一天,创始人 Alice 坐在电脑前:

Alice: 记录一下,今天见了投资人 John ,他对我们的产品很感兴趣

系统: 已记录会议笔记。需要设置后续提醒吗?

Alice: 好的,一周后提醒我跟进

[系统后台生成了一个简单的 CRM 种子]

Alex: 等等,系统怎么知道要往 CRM 方向进化?

Sam: 它不需要知道!它只是响应使用模式。继续看:

Day 3:
Alice: 显示所有投资人联系记录

系统: 找到 1 条记录:
- John (上次联系:2 天前)
建议:是否要添加更多字段来追踪?比如投资阶段、金额范围?

Alice: 好主意,添加这些

[CRM 数据模型进化:添加了新字段]
Day 10:
Alice: 我需要跟踪每个投资人的状态

系统: 基于您的使用模式,我生成了一个看板视图:
[初次接触] → [跟进中] → [尽调] → [条款谈判] → [已完成]
需要调整阶段名称吗?

[CRM 获得了看板功能]

Alex: 卧槽,这就是个渐进式的 no-code 平台啊!

Sam: 不,比 no-code 更进一步。No-code 你还得"设计",拖拽组件,设置属性。GrowBlank 是 no-design,你只管用。

Alex: 但是等一下,*[激动]* 如果 Alice 雇了一个销售 Bob ,Bob 的使用习惯和 Alice 不同怎么办?

Sam: 绝妙的问题!这就是集体进化的魅力。看:

Bob 加入后:
Bob: 我需要批量导入潜在客户

系统: 检测到新的使用模式。是否要为团队添加批量导入功能?
Alice 和 Bob 都会看到这个建议。

Alice 批准后:
系统: 已添加 CSV 导入功能。基于 Bob 的操作习惯,
     我建议添加以下字段映射...

Alex: 所以系统会综合多人的使用模式?

Sam: 对,而且可以设置权重。比如 Alice 是创始人,她的使用模式权重更高。或者销售团队的模式只影响销售模块的进化。

Alex: [兴奋地站起来] 等等等等,我想到一个更疯狂的场景!如果... 如果系统能跨公司学习呢?

Sam: 你是说...

Alex: 对!比如 100 家创业公司都在用 GrowBlank ,都是从零开始进化。系统能不能识别出通用模式?比如"90%的 B2B 公司最终都进化出了这样的销售流程"?

Sam: [拍桌子] 天才!这就是集群进化!每个公司的应用是一个"物种",成功的模式会被自然选择...

Alex: 新公司可以选择"继承"成功的基因!

Sam: 对!但不是照搬,而是作为进化的起点。比如:

新用户: 我要做个 B2B SaaS 的销售管理

系统: 基于 847 家类似公司的进化路径,我建议从这个基础模型开始:
- 线索管理( 95%公司都有)
- 销售漏斗( 89%公司都有)  
- 客户成功追踪( 73%公司在第 3 个月添加)
要应用这个模板吗?您可以随时修改。

新用户: 应用,但我们不需要客户成功模块

系统: 已应用并移除客户成功模块。开始您的独特进化之旅...

Alex: 这简直是... 应用开发的 GitHub !不对,比 GitHub 更进一步,因为它是活的,会进化的!

Sam: 而且解决了开源的一个大问题:你 clone 了别人的代码,然后呢?改不动,因为你不理解设计决策。但 GrowBlank 里,你 clone 的是进化路径,然后继续你自己的进化。

Alex: [坐下,深呼吸] OK ,让我冷静一下。这个愿景很美好,但技术挑战呢?

Sam: 确实有挑战。最大的是意图理解的准确性。看这个例子:

用户: 把昨天的数据删了

系统需要理解:
1. "昨天"是指哪个时区的昨天?
2. "数据"是指哪些数据?全部还是特定类型?
3. "删了"是真删除还是标记删除?
4. 用户权限是否允许?

Alex: 对,自然语言的歧义性。

Sam: 我们的解决方案是渐进式确认。第一次遇到歧义,系统会询问。但它会记住你的偏好:

第一次:
用户: 删除旧数据
系统: 请确认:"旧数据"是指:
     A) 30 天前的数据
     B) 上个版本的数据
     C) 其他?
用户: A

第二次:
用户: 清理旧数据
系统: 基于您的习惯,准备删除 30 天前的数据(共 1,234 条)。确认?

第 N 次:
用户: 常规清理
系统: [直接执行 30 天数据清理]

Alex: 所以系统不只是学习功能,还学习用户的语言习惯?

Sam: 对!每个用户/团队会逐渐形成自己的"方言"。比如在某个团队里,"跑一下"就是指运行测试套件,在另一个团队可能是指部署到测试环境。

Alex: 这让我想起了 Unix 的 alias... [笑] 等等,说到 CLI ,GrowBlank 怎么处理程序员用户?他们可能更喜欢代码而不是对话。

Sam: 好问题! GrowBlank 是全光谱的,记得吗?看这个:

# 程序员 Charlie 的使用方式

# Day 1: 纯命令
$ grow add task "Fix login bug"

# Day 7: 开始写脚本
$ cat my_workflow.grow
add task $1 --priority high --assign charlie
notify slack "#bugs"

# Day 30: 完整的 DSL
class BugTracker(GrowBlank.App):
    def on_critical_bug(self, title, description):
        task = self.add_task(title, priority="critical")
        self.assign(task, self.on_call_engineer)
        self.notify_all(task)
        return task.id

Alex: 所以程序员可以用代码来"训练"自己的应用?

Sam: 确切说是"编程式进化"。而且最棒的是,这些代码定义的行为,非技术用户依然可以通过对话触发:

PM: 发现严重 bug ,登录完全坏了

系统: 检测到关键词"严重 bug",触发 Charlie 定义的 critical_bug 流程:
- 创建高优先级任务 ✓
- 分配给值班工程师(当前: David) ✓  
- 通知所有人 ✓
任务 #1234 已创建

Alex: 妙啊!这就是真正的低代码——不是让非程序员写代码,而是让程序员的代码能被非程序员用!

Sam: 你总结得太精辟了!而且这带来一个有趣的商业模式:技能市场

Alex: 技能市场?

Sam: 想象一下,Charlie 定义的 bug 处理流程特别高效,他可以把这个"技能"发布到市场:

GrowBlank Skills Market

🐛 Smart Bug Tracker by Charlie
   ⭐ 4.8 (2,341 reviews)
   📈 提升 bug 修复效率 40%
   💰 $9.99/月
   
   功能:
   - 自动分类和优先级判断
   - 智能分配给最合适的人
   - 自动生成修复建议
   
   一键安装到您的 GrowBlank →

Alex: 等等,这不就是... 应用商店?

Sam: 不,比应用商店更细粒度。不是买整个应用,而是买能力。你的 GrowBlank 可以是多个技能的组合体。

Alex: [画图] 让我理理... 所以整个生态系统是这样的:

个人进化 → 团队进化 → 公司进化 → 行业模式 → 技能市场
    ↑                                              ↓
    └──────────────────────────────────────────────┘
                      (循环反馈)

Sam: 完美!而且每一层都在让下一次进化更快。新用户不是从零开始,而是站在巨人的肩膀上。

Alex: 但是... [皱眉] 这会不会造成同质化?最后大家的应用都长得一样?

Sam: 恰恰相反!生物进化告诉我们,即使从同一个祖先开始,在不同环境下也会进化出完全不同的形态。达尔文雀,你知道吧?

Alex: 同一种雀,在不同岛屿进化出不同的喙?

Sam: 对! GrowBlank 也一样。即使从同一个模板开始,不同公司的独特需求会驱动应用向不同方向进化。

电商公司 → 进化出强大的库存管理
咨询公司 → 进化出复杂的时间追踪
媒体公司 → 进化出内容工作流

Alex: 而且这些特化的部分又可以回到技能市场...

Sam: 形成良性循环!创新在边缘产生,然后传播到整体。

Alex: [看表] 哇,不知不觉聊了两个小时了。但我还有最后一个担忧。

Sam: 说。

Alex: 隐私和安全。如果系统要学习使用模式,那意味着...

Sam: 所有操作都要被记录和分析,我知道。这确实是个挑战。我们的方案是联邦学习

Alex: 联邦学习?在 GrowBlank 场景下怎么用?

Sam: 看这个架构:

┌─────────────────┐
│   公司 A 本地    │
│  ┌───────────┐  │
│  │使用模式提取│  │────┐
│  └───────────┘  │    │
│   私有数据不出门  │    │
└─────────────────┘    ↓
                    模式特征
┌─────────────────┐    ↓
│   公司 B 本地    │    ↓
│  ┌───────────┐  │    ↓
│  │使用模式提取│  │────┤
│  └───────────┘  │    │
└─────────────────┘    ↓
                   ┌────────┐
                   │中央服务器│
                   │只有模式  │
                   │没有数据  │
                   └────────┘

Alex: 所以中央服务器只知道"80%的用户会在创建任务后设置提醒",但不知道具体任务内容?

Sam: Exactly !而且用户可以选择参与级别:

  • 完全本地:不分享任何信息,但也无法获得集体智慧
  • 匿名模式:分享模式但不关联身份
  • 社区模式:公开分享,获得最大收益

Alex: 这个分级很合理。*[站起来]* Sam ,我觉得这个想法真的可能改变软件行业。

Sam: 你知道最让我兴奋的是什么吗?这可能终结"软件项目失败"这个概念。

Alex: 怎么说?

Sam: 传统项目失败是因为:交付的不是用户想要的。但 GrowBlank 模式下,没有"交付"这个概念,只有持续进化。软件永远在变成用户想要的样子。

Alex: 失败变成了不可能... [沉思] 不对,如果用户自己都不知道自己要什么呢?

Sam: 那就慢慢探索呗! GrowBlank 的哲学是:目标可以模糊,但每一步都有价值

用户: 我想提高效率
系统: 让我们从记录你的时间开始?
[一周后]
系统: 基于数据,您在邮件上花费 40%时间,要不要试试自动化?
[一月后]  
系统: 您的效率提升了 30%,主要贡献是邮件自动分类

Alex: 所以它不只是工具,还是顾问?

Sam: 更像是共生体。用户和系统互相学习,共同进化。

Alex: [收拾东西] 好了,我得走了。但在我走之前,一句话总结 GrowBlank ?

Sam: 从使用中生长,而非从规划中构建。

Alex: 精辟!我的版本是:每个人都值得拥有为自己量身定制的软件。

Sam: 哈哈,都对!这就是 GrowBlank——让软件民主化,让每个人都成为自己软件的设计师,只是他们不需要知道自己在设计。

Alex: 期待看到它改变世界。下次咱们用 GrowBlank 来组织聚会?

Sam: 哈哈,到时候它可能已经进化出完美的聚会组织功能了!

[结束音乐渐入]


Podcast 后记

主持人: 各位听众,刚才你们听到的是 Alex 和 Sam 关于 GrowBlank 的深度对话。这个产品的核心理念——软件从使用中进化——可能会彻底改变我们对软件开发的认知。

关键要点回顾:

  1. Claude Code 的启发:将对话转化为程序执行,用户无意识地在编程

  2. 进化光谱:从纯对话到专业应用的渐进式演化

  3. Smalltalk 哲学:使用即开发,系统可自我修改

  4. 解决核心悖论:用户不需要预先知道自己要什么

  5. 集体智慧:跨用户、跨公司的模式学习

  6. 技能市场:能力的原子化和再组合

  7. 隐私保护:联邦学习确保数据安全

讨论问题:

  • 你愿意让你的软件"进化"吗?
  • 标准化和个性化,哪个更重要?
  • 如果软件都是独特的,如何培训和交接?

欢迎在评论区分享你的想法。如果你想亲自体验 GrowBlank ,访问 growblank.ai 开始你的进化之旅。

记住:你的下一个应用,就从一片空白开始。

下期预告:我们将邀请实际使用 GrowBlank 的创业公司,分享他们的应用是如何从零进化成核心业务系统的。


本 Podcast 文字版由 GrowBlank 自动生成并优化。是的,这个工具在记录自己的故事时也在进化。

Chrome 离线翻译插件已上架 Chrome 扩展商店 一比一还原原生网页翻译

By: AnYi798
17 August 2025 at 22:26
AnYi798:

一个基于 Chrome 138+ 新增的本地 Translator API 和 Language Detector API 的轻量级翻译扩展,支持自动检测网页语言、自动翻译网页、离线翻译(首次可能需下载模型)、快速出结果。

特性 自动检测来源语言( LanguageDetector ) 目标语言可选(默认中文) 使用浏览器内置 Translator API 本地翻译,隐私安全 首次使用自动下载模型,后续离线可用,响应更快 一键复制翻译结果 朗读翻译结果 支持自动/手动翻译当前网页 一比一还原 Google 原生网页翻译

运行要求 Chrome 版本:138+(支持 Translator 与 LanguageDetector )

安装与加载(开发者模式) 打开 Chrome 地址栏:chrome://extensions 打开右上角“开发者模式”开关 点击“加载已解压的扩展程序”,选择本项目文件夹 点击工具栏扩展图标,打开弹窗使用

使用说明 选择来源语言(或保留自动检测)与目标语言 在输入框粘贴/输入待翻译的文本 点击“开始翻译” 首次使用可能会触发模型下载(页面会显示下载进度),下载完成后开始翻译 翻译完成后,可复制结果;点击 “朗读”按钮可朗读结果 开启自动翻译网页,访问网页后自动进行翻译

Chrome 扩展商店下载地址: https://chromewebstore.google.com/detail/translator%E5%BF%AB%E9%80%9F%E7%BF%BB%E8%AF%91/hlckjpmehcjcldpaamdcegocapmelegc?authuser=0&hl=zh-CN

❌
❌