The creator of Clawd: "I ship code I don't read"
### 章节 1:起源与黑客精神 📝 **本节摘要**: > 在本节中,主持人 Gergely Orosz 介绍了嘉宾 Peter Steinberger(PSPDFKit 创始人、Claude/Cloudbot 开发者)。Peter 回顾了他的技术起源:出身于奥地利农村,从 14 岁起通过“偷”...
Category: Podcasts📝 本节摘要:
在本节中,主持人 Gergely Orosz 介绍了嘉宾 Peter Steinberger(PSPDFKit 创始人、Claude/Cloudbot 开发者)。Peter 回顾了他的技术起源:出身于奥地利农村,从 14 岁起通过“偷”学校的 DOS 游戏并编写反盗版程序赚取零花钱。他讲述了早期的编程经历,包括在大学期间全职工作以及被微软 MFC 编程书吓退的故事。本节的高潮在于他如何进入 iOS 开发领域:因为一款约会应用在地铁断网时无法发送长消息且无法复制,愤怒的他通过“非法”手段——用正则表达式解析 HTML——强行黑进该网站并开发了自己的客户端,结果意外在 App Store 赚到了第一桶金。
[原文] [Gergely]: what if you could merge 600 commits on a single day and none of it was slopp this is what today's guest Peter Stainberger the creator of Claudebot claims he's doing
[译文] [Gergely]: 如果你能一天合并 600 个提交,而且里面没有一个是垃圾代码会怎样?这就是今天的嘉宾、Cloudbot 的创作者 Peter Steinberger 声称他正在做的事情。
[原文] [Gergely]: peter is a standout developer who built PSP PDF kit the PDF framework used on more than 1 billion devices then he burned out sold his shares and disappeared from tech for 3 years
[译文] [Gergely]: Peter 是一位杰出的开发者,他构建了 PSPDFKit,这是一个在超过 10 亿台设备上使用的 PDF 框架,之后他经历了职业倦怠,卖掉了股份,并在科技界消失了三年。
[原文] [Gergely]: right Pete welcome to the podcast
[译文] [Gergely]: 好的,Pete,欢迎来到播客。
[原文] [Peter]: thanks for having me Gay it is awesome to meet you in in person
[译文] [Peter]: 谢谢邀请我,Gergely,很高兴能亲自见到你。
[原文] [Gergely]: so before we we get into Clubbot and all the fun stuff you're doing I wanted to rewind all the way way back you create a PSPDF kit which is used I think on more than 1 billion devices users if if you see a PDF render you probably see that but even before that how did you get into tech oh my god how did you get into tech
[译文] [Gergely]: 那么,在我们聊 Cloudbot 和你正在做的所有趣事之前,我想把时间倒带回到很久以前。你创建了 PSPDFKit,我想它拥有超过 10 亿用户,如果你看到一个 PDF 渲染器,你看到的可能就是它。但在那之前,你是怎么进入科技行业的?天哪,你是怎么入行的?
[原文] [Peter]: so I'm from rural Austria um always more being the introvert so eventually I we always had like summer guests and one of them one of them was a was a computer nerd and then I kind of got hooked with with like the machine he had and begged my mom to buy me one and ever since then I this was in high school or so i guess I was 14 yeah and ever since I started tinkering like I can remember the earliest thing was like I stole an old DOS game from my school and then wrote a copy protection for the floppy disc so I could sell it it took like 2 minutes to load i was just always tinkering
[译文] [Peter]: 我来自奥地利农村,一直是个比较内向的人。我们家总是会有暑期客人,其中有一位是个电脑极客。我迷上了他的机器,求我妈也给我买一台。从那以后——大概是高中时候,我想我那时 14 岁吧——我就开始捣鼓东西。我记得最早的一件事是,我从学校偷了一个旧的 DOS 游戏,然后为软盘写了一个复制保护程序,这样我就能把它卖掉了。那个程序加载需要两分钟。我就是一直在捣鼓这些。
[原文] [Peter]: oh when I started out I I I I read like the equivalent of bash scripts for Windows and then I did like websites so I guess a little bit of JavaScript uh even though I had no clue what I was doing and then the actual first language where I I had to learn how to build things is when I started university and I never met my dad and I come from a from a poor family so I always had to work like I had to had to finance my own studies right so when other people were were having holiday I just worked full-time at a company
[译文] [Peter]: 刚开始的时候,我读了一些相当于 Windows 下 Bash 脚本的东西,然后做了一些网站,所以我猜我也算接触了一点 JavaScript,尽管我当时完全不知道自己在做什么。真正不得不学习如何构建东西的第一门语言是在我上大学的时候。我从未见过我父亲,我来自一个贫穷的家庭,所以我总是不得不工作,我得资助自己的学业,对吧?所以当别人在度假时,我只是在一家公司全职工作。
[原文] [Peter]: and I remember the first day they they gave me this huge book maybe that huge and say Microsoft MFC um I still have nightmares and I got I got like I was like this is terrible like for for the next win I just I just silently used net I just didn't tell them and like a few months in I just told them yeah but the text I I did a few modernizations but then it was too late i did this a few times in this company i don't know why they kept me because because my shit worked so uh I did net and actually I actually actually dig it
[译文] [Peter]: 我记得第一天,他们给了我一本巨大的书,大概有这么厚,写着 Microsoft MFC(微软基础类库)。我到现在还会做噩梦。我当时的反应是,这太糟糕了。所以在接下来的 Windows 开发中,我就悄悄用了 .NET,只是没告诉他们。几个月后我才告诉他们,确实,但我做了一些现代化改进,但那时已经太晚(无法更改)了。我在那家公司干了几次这种事,我不知道他们为什么留着我,可能是因为我做的烂代码(shit)居然能跑。所以我做了 .NET 开发,实际上我还挺喜欢的。
[原文] [Gergely]: so you you how did you stumble into both iOS and where did the idea from PSPDF come from
[译文] [Gergely]: 那么,你是怎么误打误撞进入 iOS 开发的?PSPDFKit 的想法又是从哪里来的?
[原文] [Peter]: a friend showed me the iPhone and I I think I I touched it for a minute and then immediately bought one like like this like it it clicked when I felt it and and to me this was like a holy f moment cuz it was just like so different and so much better so I got I got one i was still not thinking about building for it you know that was that was when was this 2009 10 something like that
[译文] [Peter]: 一个朋友给我看了 iPhone,我想我大概就摸了一分钟,然后立刻就买了一台。就像这样,当我摸到它的那一刻,我就“顿悟”了(clicked),对我来说那简直是一个“我靠”(震撼)的时刻,因为它太与众不同了,太棒了。所以我买了一台,当时我还没想过要为它开发软件。那是……那是哪一年?2009 年还是 2010 年左右吧。
[原文] [Peter]: and then I I used their browser i I can see the story i was I was literally driving in the subway mhm and by the time I was using a gay dating app and this was iPhone OS 2 so So I I long time ago I typed this long message i pressed send and we were just going into a tunnel and the JavaScript disabled the send button and then an error message came but there was no copy paste there was no screenshot so I was just like and I couldn't scroll anymore because like scrolling was disabled so like this long message was like a little bit emotional was gone and I was so mad i was so mad i'm like what the hell i went home and I downloaded Xcode
[译文] [Peter]: 然后我用了上面的浏览器。我脑海里还能浮现那个场景:我当时正坐着地铁,那时我在用一个同性约会 App,那是 iPhone OS 2 的时代。那是很久以前的事了,我打了一段很长的信息,按下了发送键,结果我们正好进了隧道。JavaScript 禁用了发送按钮,然后弹出了一条错误信息,但那时没有复制粘贴功能,也没有截图功能。我就僵在那儿了,而且我也不能滚动页面了,因为滚动也被禁用了。所以那条很长的、甚至有点情绪化的信息就这么没了。我气疯了,我简直气炸了,心想这搞什么鬼。我回到家,立刻下载了 Xcode。
[原文] [Peter]: that's where the window came and I was like where is the ID so it was like like I was like this is unacceptable i basically hacked the website i used regular expressions to like download uh to parse the HTML which is like totally not something you should do and I built an app and I used I used iPhone OS3 beta with like core data in beta regaxit light i used a hacked version of GCC that backported the blocks compiler so I could use blocks in iPhone OS3 it took me quite a while until anything worked because like I had no idea what I was doing
[译文] [Peter]: 机会之窗就这样打开了。我当时想,这简直不可接受。所以我基本上算是黑进了那个网站。我用了正则表达式来下载……来解析 HTML,这完全是一种不应该做的做法。但我构建了一个 App,我使用了 iPhone OS 3 Beta 版,包括 Beta 版的 Core Data、RegexKitLite,我还用了一个破解版的 GCC 编译器,它向后移植了 Blocks 编译器,这样我就能在 iPhone OS 3 里使用 Blocks(代码块)了。我花了很长时间才让它跑起来,因为我当时根本不知道自己在做什么。
[原文] [Gergely]: and this was for the dating app right so you just like you know you looked at you saw their APIs you could just like easily like build a client on top API it was HTML oh I was I was just literally parsing HTML oh so so you kind of parse the HTML kind of turn it into your own you know like you use it as an API oh clever
[译文] [Gergely]: 这是为了那个约会 App 对吧?所以你就像……你看了他们的 API,然后轻松地在上面构建了一个客户端?
[Peter]: API 就是 HTML。噢,我真的只是在解析 HTML。
[Gergely]: 噢,所以你解析了 HTML,把它转换成了你自己的……你知道,就像把它当作 API 来用。噢,真聪明。
[原文] [Peter]: i mean this was back in the day where no one thought this this would happen but I made I put it in the app store i charged five bucks for it and I made like 10k in the first month and I had no clue what I was doing
[译文] [Peter]: 那是在那个还没人想到会发生这种事的年代。但我做到了,我把它放到了 App Store 上,定价 5 美元,结果第一个月我就赚了大概 1 万美元,而我当时完全不知道自己在做什么。
📝 本节摘要:
在本节中,Peter 分享了他在 iOS 开发初期赚取第一桶金的趣事:由于早期银行手续复杂,他借用了祖父的账户收款,结果被误以为是“奇怪的巨款”。他回忆了在夜店偶遇用户却不敢相认的尴尬时刻。当他决定辞职全职投入开发时,前老板的嘲讽反而激起了他的斗志,誓要创立一家超越前东家的公司。然而,好景不长,凌晨三点来自 Apple 的一通电话宣告了这款应用的终结。这次打击并未击垮他,反而让他转型自由职业,并凭借精湛的技术获得了前往美国工作的机会。
[原文] [Peter]: so and there was like so many complex tech stuff this was very early on where there was a lot of weird forums on Apple so I just put in the the bank account of my grandpa and then one day my grandpa called me "Yeah something is weird like I got this huge payment from Apple." I'm like "This is mine this is mine don't touch it."
[译文] [Peter]: 当时有太多复杂的技术问题了,那是很早期的时候,Apple 上有很多奇怪的表格要填,所以我直接填了我爷爷的银行账户。然后有一天我爷爷打电话给我说:“耶,有点奇怪,我从 Apple 那收到了一笔巨款。”我赶紧说:“那是我的,那是我的,别动它。”
[原文] [Peter]: But the the funny thing was when I this blew off and I remember I was in a club one day and like I saw someone using my app and I was so proud and I wanted to like tap him on the shoulder and say I built this and I thought like that would be really weird so I didn't
[译文] [Peter]: 但有趣的是,当这个应用火起来后,我记得有一天我在一家夜店里,看到有人正在用我的 App。我当时特别自豪,很想拍拍他的肩膀说“这是我做的”,但转念一想那样可能会很怪,所以我就没做。
[原文] [Peter]: and then I I I went to the company I worked for for 5 years and told him like I'm going to pursue this this is this is really exciting and my boss was like mocking me oh really they're like "Oh you're making a mistake this is a fat this will not go." Blah blah blah blah blah
[译文] [Peter]: 然后我去了我工作了 5 年的那家公司,告诉他们我要去追求这个事业,这真的让人很兴奋。结果我的老板嘲笑我说:“噢,真的吗?你在犯错,这只是一时的热潮(fad),长久不了的。”诸如此类的话。
[原文] [Peter]: and you know what that got me that's what you call a chip on your shoulder i'm like you know one day I'm going to I'm going to have a company that that's worth more money than yours well it took me eight years-
[译文] [Peter]: 你知道这给了我什么吗?这就叫“憋着一股劲”(chip on your shoulder)。我当时心想:你知道吗,总有一天我会拥有一家比你的公司更值钱的公司。嗯,这花了我八年时间。
[原文] [Peter]: so I I got hooked like I I worked I I'm I'm a little bit of an addictive personality so which you see again right now but I I worked a lot on this app i learned I learned in in high speed and this was also the time where I started Twitter and that was usually hugely influential for my career i made this app actually quite good
[译文] [Peter]: 于是我着迷了。我拼命工作,我有点成瘾型人格——你现在也能看出来——我在这个应用上投入了大量精力。我飞速地学习,那也是我开始使用 Twitter 的时候,这对我的职业生涯影响巨大。我实际上把那个 App 做得挺不错的。
[原文] [Peter]: and then one day I was at a party at at 3:00 a.m um slightly intoxicated and I got a call from a US number the guy on the phone was like "Yeah hello this is John from Apple yeah there's a problem with your application like some people reported pictures and that was it that was the end of my app
[译文] [Peter]: 然后有一天,我在一个派对上,凌晨 3 点,稍微喝多了一点,我接到了一个来自美国的电话。电话那头的人说:“耶,你好,我是 Apple 的 John。你的应用有个问题,有人举报了上面的图片。”就这样,我的应用就这么完蛋了。
[原文] [Peter]: um it was good until it lasted and I was just I just quit my my job and was like well f you Apple i did freelance work i was at dubdub i was introduced to dubdubdubc yes sorry for the insider terms i was introduced to someone as one of the best iOS developers in Austria at a bar at 2 a.m in San Francisco and then basically got a job in the US-
[译文] [Peter]: 嗯,在它存活的时候确实不错。我刚辞了职,当时的反应就是:好吧,去你的 Apple。我开始做自由职业。我去了 WWDC(苹果全球开发者大会)——噢对不起用了行话——在旧金山凌晨 2 点的一个酒吧里,有人把我介绍给别人,说我是奥地利最好的 iOS 开发者之一,然后基本上我就在美国找到了一份工作。
📝 本节摘要:
本节讲述了 Peter 职业生涯的关键转折点。他在美国工作期间接手了一个被称为“史上最烂代码”的杂志阅读器项目——一个用 UIWindow 做标签页、数千行代码堆在一个文件里的“纸牌屋”。无法忍受劣质代码的他选择重写,并从中提取出了 PDF 渲染核心组件。最初,他只是将代码打包放在 Dropbox 上,通过 Twitter 随手售卖。没想到这成了 PSPDFKit 的雏形。随后的故事不仅关于赚钱,更关于“被技术难题狙击(Nerd Sniped)”:为了回应用户的抱怨,他不知天高地厚地决定添加“文本选择”功能,从而一脚踏入了 PDF 格式解析这个无底深渊。[原文] [Peter]: and then I moved to the US for a while and then I I went to the Nokia development days this is all like stone age by now my god and then someone came up to me and said "Yeah they built this app somewhere in Eastern Europe and it works but it crashes sometimes and it was like was like a magazine viewer right this was back when the iPad just came out and Steve Jobs hit that like this is the savior so everybody was building magazine apps
[译文] [Peter]: 后来我搬去美国住了一段时间,参加了诺基亚开发者日(Nokia Development Days)——天哪,这简直是石器时代的事了。当时有人走过来对我说:“是啊,他们在东欧某地做了这个 App,它能跑,但有时候会崩溃。”那是一个杂志阅读器,对吧?当时 iPad 刚出来,史蒂夫·乔布斯把它捧得像救世主一样,所以大家都在开发杂志类 App。
[原文] [Peter]: and I was like that sounds like an interesting short-term gig and I I was like okay I I'll I'll I'll help you out and I opened the app and it was like oh the worst code I've ever seen in my life it was literally one file with like thousands of lines of Objective C yes where they used windows as tabs i I didn't know this worked i was surprised this worked at all but it felt like a a house of cards
[译文] [Peter]: 我当时觉得,这听起来像是个有趣的短期活儿,于是我就说:“好吧,我会帮你们搞定的。”结果我打开那个 App 一看——噢,那是我这辈子见过最烂的代码。它真的就只有一个文件,里面塞了几千行 Objective-C 代码,是的,他们居然用窗口(Windows)来做标签页(Tabs)。我都不知道这样居然能行,我很惊讶它居然能跑起来,但感觉就像个纸牌屋(摇摇欲坠)。
[原文] [Peter]: and I I tried to I tried to surgically fix things but like as soon as you would touch something something else would break um so I got it I got it somewhat stabilized and I told him like "Look this is this is like madness um I'm going to rewite this for you." Yeah but it took half a year i'm going to do it in in a month well it took me two months um I wasn't that far off
[译文] [Peter]: 我试图进行“外科手术式”的修复,但只要你动了一个地方,另一个地方就会坏掉。所以我把它稍微稳定了一下,然后告诉他们:“听着,这简直是疯狂。我要帮你们重写这个东西。”原本那个开发了半年,我说我一个月就能搞定。好吧,最后花了我两个月,但我估得也不算太离谱。
[原文] [Peter]: and and then here I was working on a on a PDF viewer you know on every technical problem the domain is is I wouldn't say like completely unimportant but you can always find interesting problems in every domain and there was a lot of interesting problems because you had a C call that would render a PDF that would maybe take 30 megabytes but the whole system had 64 megabytes so if you're not very smart and like very careful what you do in the background and when the OS would just kill you
[译文] [Peter]: 于是我就开始开发这个 PDF 阅读器了。你知道,在每一个技术问题上,领域并不是完全不重要,但你总能在任何领域找到有趣的问题。当时有很多有趣的问题,因为你发起一个 C 语言调用来渲染 PDF,可能要占 30MB 内存,但整个系统只有 64MB。所以如果你不够聪明,或者对后台操作和时机不够小心,操作系统就会直接杀掉你的进程。
[原文] [Peter]: i got really fixated at like making it good like when the rotation is like that the page would like animate and so so you know I I like I like those details i spent way too much time on that that's why I took two months instead of one but the end result was it's good
[译文] [Peter]: 我当时非常执着于把它做好,比如旋转的时候页面要有动画效果之类的。你知道,我喜欢这些细节。我在那上面花了太多时间,这就是为什么我用了两个月而不是一个月,但最终结果是它真的很棒。
[原文] [Peter]: um and then I I I worked with them for a while and then a friend texted me up he's like "Yeah I'm working on this magazine app and it's really hard." I'm like "Yeah no way it's hard i know." Oh like I did it you just built one and and he was like "Can you can you can you get me the code?" I'm like "Sure." So I sold him like I extracted the the part that was PDF from from this magazine app and I I made sure I made sure like the other person was okay and then I sold him that
[译文] [Peter]: 嗯,我和他们合作了一段时间,然后一个朋友发短信给我,他说:“是啊,我在做一个杂志 App,这东西真的很难。”我说:“是啊,不可能不难,我懂的。”就像我已经做过了一样。他说:“你能……你能把代码给我吗?”我说:“当然。”所以我把它卖给了他。我从那个杂志 App 里提取了 PDF 部分的代码,我也确认了之前的客户没意见,然后我就把代码卖给了他。
[原文] [Peter]: i was like "Well if he's interested in that why let's not try to sell it to other people." I used a a WordPress template and mutilated it to run on GitHub pages and then and then when you did the the fast lane flow at the end you got a Dropbox link to my personal Dropbox with a source code sip and I put this on one afternoon and I I tweeted it and and then in that week three people bought it and it was like I guess 200 bucks but back then and for me this was like amazing
[译文] [Peter]: 我当时想:“好吧,既然他感兴趣,为什么不试着卖给其他人呢?”我用了一个 WordPress 模板,把它魔改了一下放到 GitHub Pages 上跑。然后如果你完成了购买流程,最后你会得到一个指向我个人 Dropbox 的链接,里面有一个源代码的压缩包(sip/zip)。我花了一个下午搞定这些,然后发了条推特。那周有三个人买了,我想当时定价大概是 200 美元吧,这对我来说简直太神奇了。
[原文] [Peter]: and not only I got like three people who just bought it and like 10 emails who comp 10 people who complained about uh because they wanted it but it didn't have the features they wanted you know it's like I got nerd sniped i was like "Oh I didn't have text selection." Oh how hard can it be 3 months later oh yeah it's really hard text selection in a PDF specifically
[译文] [Peter]: 而且不仅仅是有三个人买了,我还收到了大概 10 封邮件,有 10 个人在抱怨。因为他们想要这个东西,但它没有他们想要的功能。你知道,我就像被“技术狙击”(Nerd Sniped)了一样。我当时想:“噢,我没有文本选择功能。噢,那能有多难呢?”三个月后……噢是的,那真的很难,特别是在 PDF 里做文本选择。
[原文] [Gergely]: yeah yeah yeah yeah you know the saying the saying like uh the companies are built by young people because they don't know how hard it is
[译文] [Gergely]: 是的,是的,是的。你知道那句老话:公司都是由年轻人建立的,因为他们根本不知道那有多难。
[原文] [Peter]: yes yeah yeah i had no idea what an insane madness this file format is
[译文] [Peter]: 是的,没错,我当时完全不知道这个文件格式(PDF)是多么疯狂的混乱。
📝 本节摘要:
在本节中,Peter 深入探讨了构建 PDF 引擎背后的技术与商业挑战。他引用了一句名言:“公司都是由年轻人建立的,因为他们不知道这有多难”,以此形容自己在 PDF 文本选择功能上遇到的困难。随后,他坦诚地揭示了企业级软件(Enterprise Software)为何往往没有公开定价:因为价格取决于客户获得的价值,对世界 500 强和自由职业者必须实行差异化定价。在技术层面,他分享了一个经典的“战壕故事”:一本来自加拿大的 50,000 页圣经 PDF 包含了 50 万个链接,直接炸毁了他们的内存模型,迫使他花了两个月重构核心架构。最后,他分享了自己独特的客户支持策略——“倒序处理工单”,只为给用户创造“秒回”的魔法体验。
[原文] [Gergely]: yeah yeah yeah yeah you know the saying the saying like uh the companies are built by young people because they don't know how hard it is
[译文] [Gergely]: 是的,是的,是的。你知道那句老话:公司都是由年轻人建立的,因为他们根本不知道那有多难。
[原文] [Peter]: yes yeah yeah i had no idea what an insane madness this file format is
[译文] [Peter]: 是的,没错,我当时完全不知道这个文件格式(PDF)是多么疯狂的混乱。
[原文] [Peter]: i learned a whole lot on the go like I I never had the urge to be CEO i always was coding i I brought people in to people that that helped me a lot with other other parts uh and on the business side I can do it and I I think I think I'm I'm quite good at it but I just don't enjoy it like even on sales calls where you like have to like think of all the magic number how much it would be worth because that's how enterprise works
[译文] [Peter]: 我是在前进中学习了很多东西。我从未有过想当 CEO 的冲动,我一直在写代码。我引进了其他人来帮我处理其他部分。在商业方面,我能做,我觉得我做得还不错,但我就是不享受它。比如在销售电话里,你必须想出一个“神奇的数字”,估算它值多少钱,因为企业级销售就是这样运作的。
[原文] [Gergely]: So can you tell us for for for you know devs listening who go to a vendor's website and they're frustrated that there's no price it says call us or schedule meeting why that is
[译文] [Gergely]: 那么你能不能告诉那些正在听节目的开发者们,当他们去一个供应商的网站,看到上面没有价格,只写着“联系我们”或“预约会议”而感到沮丧时,这到底是为什么?
[原文] [Peter]: oh that's that's why because we going to look at your company and then just take the dice and and and think about the number that you're probably willing to pay and that sounds horrible but also when you have a product where you can't really tear it down to a specific number like it it's it makes a difference if uh a freelancer contacts us or one of the big Fortune 500s let's not say names because the usage will be different the value they get out of it will be different and charging the same you would either exclude one or the other
[译文] [Peter]: 噢,这就是原因。因为我们会审视你的公司,然后就像“掷骰子”一样,想出一个你们可能愿意支付的数字。这听起来很糟糕,但如果你的产品很难拆解成一个具体的数字……比如,一个自由职业者联系我们,和一个世界 500 强的大公司联系我们,情况是完全不同的。且不说具体名字,但他们的使用量不同,从中获得的价值也不同。如果收同样的钱,你要么会把前者拒之门外,要么会少赚后者的钱。
[原文] [Peter]: if I if I if I go too low they're going to see this fishy it's like uh procurement for like 500 bucks we're not going to even start the process and if we we target it too high we're going to lose those people so So as horrible and unfair this process seems for some kinds of products it is the it's the most fair way after all
[译文] [Peter]: 如果我定价太低,他们会觉得很可疑(fishy)。比如采购部门会觉得:“才 500 美元?我们甚至不会启动采购流程。”但如果我们定得太高,又会失去那些小客户。所以,尽管这个过程对某些产品来说看起来很糟糕、很不公平,但归根结底,这是最公平的方式。
[原文] [Gergely]: you you you need to tell me tell me one or two hard things about parsing PDF how hard could it be there's a specification i'm an engineer i know specifications i What's so hard about it
[译文] [Gergely]: 你得告诉我,给我讲一两个关于解析 PDF 的难题。那能有多难呢?它有技术规范啊。我是工程师,我懂技术规范。到底哪里难了?
[原文] [Peter]: i mean there was this one example where you know like PDF has have links so like there's like there's like a table of contents and you click on it and it goes to like page 37 so I built this whole model with the assumption oh yeah maybe there's like a 100 or 400 links in there
[译文] [Peter]: 我举个例子。你知道 PDF 有链接功能,比如目录,你点击它就会跳转到第 37 页之类的。所以我构建了整个数据模型,假设里面大概会有 100 到 400 个链接。-
[原文] [Peter]: and then we got this one customer who like paid really good money and then I was like oh it takes 4 minutes to load a PDF what the heck guys and I looked at it and it was like a 50,000 page text bible from Canada and it had 50,000 pages it had like more than 100 links per page 500,000 links my data model completely exploded because my assumptions were off by a number of what 1,000
[译文] [Peter]: 然后我们接到了一个客户,他们付了很多钱。但我发现加载一个 PDF 居然要花 4 分钟。我当时想:“搞什么鬼,伙计们?”我看了一下文件,那是一本来自加拿大的 50,000 页的纯文本圣经。它有 50,000 页,每页有超过 100 个链接,总共有 500,000 个链接。我的数据模型彻底爆炸了,因为我的假设偏差了整整 1,000 倍。
[原文] [Peter]: but by then you have like a mature product with an API so like how do you how do you completely redesign the internal part without breaking things for everyone like suddenly everything has to be lazy where where before parsing 100 one was easy but now they were like this was like so difficult to keep it working for people um I think I spent like two months just on that completely redesigning like the internals
[译文] [Peter]: 但那时候你已经有了一个成熟的产品和 API。所以,你要如何在不破坏所有人现有功能的前提下,彻底重新设计内部结构呢?突然之间,所有东西都必须变成“懒加载”(lazy loading)。以前解析 100 个链接很简单,但现在……为了保持功能正常,这真的太难了。我想我大概花了两个月时间,就为了彻底重构内部机制。
[原文] [Peter]: and I I love to do support and I think that that that also a confining factor why the company worked cuz if if you send a ticket and then the the the CEO replies and helps you out um that has impact and my my strategy was always like I always used to list in reverse cuz if you if you send a ticket and you get a reply within 5 minute that's magical if you wait one or two days not much difference
[译文] [Peter]: 而且我热爱做技术支持,我认为这也是公司能成功的一个决定性因素。因为如果你发了一个工单,然后 CEO 亲自回复并帮你解决问题,那是非常有影响力的。我的策略一直是:我总是“倒序”处理列表(list in reverse)。因为如果你发了工单,5 分钟内就收到了回复,那感觉就像魔法一样;但如果你等了一两天,感觉就没什么区别了。
📝 本节摘要:
随着公司从初创期进入成长期,Peter 发现自己逐渐失去了对工作的热情。他形象地比喻道,初创期是“狂野的黑客行为”,而成长期则变成了乏味的“园艺修剪”和繁文缛节。作为 CEO,他感到深深的孤独,自嘲是公司的“垃圾桶”,必须处理所有别人搞不定的烂摊子。他分享了一个惊心动魄的故事:一家航空公司因软件崩溃导致飞机停飞,最后他不得不亲自反汇编对方的代码来证明是客户误用了接口。最终,在无休止的人事纠纷和不再认同工作意义的双重打击下,他经历了严重的职业倦怠(Burnout),选择卖掉股份,按下了职业生涯的暂停键。
[原文] [Peter]: i don't want to dwell too much on like the I think the the the starting time of the company is the most interesting the then the the growth phase you get more red tape you get more people it's much more gardening your product instead of like doing doing wild hacks
[译文] [Peter]: 我不想过多纠结于此,我觉得公司的起步阶段是最有趣的。之后的成长期,你会遇到更多的繁文缛节(red tape),更多的人员,那感觉更像是给产品做“园艺修剪”,而不是在做那些“狂野的黑客行为”。
[原文] [Peter]: um and more iterative so so so it got a little bit less interesting uh over the years and there was like more people drama cuz the more so the more people you have the more issues there are and I didn't enjoy it that much and I was really really burned out
[译文] [Peter]: 而且工作变得更加迭代式。所以这些年来,它变得没那么有趣了。而且随着人越来越多,人事纠纷(people drama)也越来越多,因为人越多问题就越多。我并没有那么享受这个过程,而且我真的、真的感到职业倦怠(burned out)了。
[原文] [Gergely]: what burnt you out do you think
[译文] [Gergely]: 你觉得是什么导致了你的倦怠?
[原文] [Peter]: i was just burning too hard i was working most weekends i I I tried to shuffle all my managerial needs and you know as a CEO you're basically the waste bin cuz everything everything that other people don't manage or or can do or or mess up you have to fix and it's also quite lonely because you you can't openly talk about a lot of things
[译文] [Peter]: 我只是燃烧得太剧烈了。我大部分周末都在工作,我试图应付所有的管理需求。你知道,作为 CEO,你基本上就是个“垃圾桶”,因为所有其他人处理不了、做不到或者搞砸了的事情,你都得去修补。而且这非常孤独,因为很多事情你不能公开去谈论。
[原文] [Peter]: i mean I I I I structured the company to be quite open but still like you cannot you cannot be negative you have to even if even if like even if like really bad stuff happens i know there was like there was like one weekend where my my co-founder called me at at 5:00 a.m and told me like yeah there's this big airplane company and their planes are down because our software is crashing
[译文] [Peter]: 我的意思是,虽然我把公司架构设计得很开放,但你仍然不能表现得消极。即使发生了真的很糟糕的事情,你也得扛着。我记得有那么一个周末,我的联合创始人在凌晨 5 点打电话给我,告诉我说:“耶,有一家大型航空公司,他们的飞机停飞了,因为我们的软件崩溃了。”
[原文] [Peter]: that was a very interesting weekend until I could like I disassembled their their app and did proof that they messed around with our source code to triggering a triggering a license key fall back uh that eventually like caused issue they had but that was like a if they sus company's gone and more moment
[译文] [Peter]: 那是一个非常“有趣”的周末。直到我反汇编了他们的 App,并证明是他们瞎改了我们的源代码,触发了一个许可证密钥的回退机制,最终导致了那个问题。但这简直是一个“如果他们起诉我们,公司就完了”的时刻。
[原文] [Peter]: um and that's just on top to all the additional stress and there were quite a few of those things you can do that for a while and I I also believe like burnout doesn't necessarily come from working too much it it comes more from or at least for me when you when you work on something but you don't believe in it anymore or you have like too many conflicts
[译文] [Peter]: 嗯,这只是所有额外压力之上的冰山一角,这类事情发生了不少。这种状态你可以坚持一阵子。但我同样认为,职业倦怠不一定来自于工作太多,更多的是来自于——至少对我来说——当你在做某件事,但你不再相信它了,或者你有太多的冲突时。
[原文] [Peter]: and and we also had a we did fight a lot in the team uh with like management team and by the time I I made this mistake and I thought you have to like lead a company more democratically um so that was also something that burned me out i wouldn't I wouldn't want to miss it for a while though yeah
[译文] [Peter]: 而且我们在团队内部,比如管理层之间,确实争吵了很多。那时我犯了一个错误,我以为必须以更民主的方式领导公司。所以那也是让我倦怠的原因之一。不过那段时间的经历我也不想错过。是的。
[原文] [Gergely]: so you know from from the outside it seems you sold your shares you made enough money to not have to work again should you not choose and for a lot of people like you know people who are starting out their business or or one day want to start a business this sounds like the absolute dream like this is I guess what we know realistically that most people will not make it but if you make it I mean you've kind of like I guess you know checkbox done you're kind of it's a little bit if you're like climbing on a wall and you ring the bell you're done
[译文] [Gergely]: 那么,你知道,从外界看来,你卖掉了股份,赚到了足够多的钱,如果不想工作就可以不再工作。对于很多正在创业或者想创业的人来说,这听起来绝对是终极梦想。虽然现实中我们知道大多数人做不到,但如果你做到了,我的意思是,这就像是你打勾完成了任务。有点像你在攀岩,爬到了顶端,敲响了铃铛(ring the bell),你就完成了。
📝 本节摘要:
在本节中,Peter 讲述了他离开科技圈三年后的回归经历。最初的“退休”生活让他感到迷茫,当他试图重拾代码开发一个 Twitter 分析工具时,却发现自己已经与现代 Web 开发技术(如 React)脱节,这种“从专家变回新手”的落差感让他备受打击。然而,正是这种挫败感促使他去探索 AI。由于错过了大众对 AI 失望的“幻灭期”,他带着新鲜感尝试了 Gemini 和 Claude。尽管 AI 生成的代码第一次运行时崩溃了,但它在瞬间理解庞大代码库并生成可用方案的能力,给了他极大的震撼。他形容这种体验像“拉老虎机”一样令人上瘾:你永远不知道下一次 Prompt 会输出垃圾还是奇迹,这种随机的奖励机制让他彻底沉迷,甚至在凌晨 5 点还在不停地“再试一次”。
[原文] [Gergely]: and then what I noticed is from the outside again on your blog the blog post completely stopped for several years what what did you do uh in in this time uh and and what what what did you learn in this time you know before you came back to to where we are now
[译文] [Gergely]: 然后我注意到,从外界来看,你的博客文章完全停止了好几年。在这段时间里你做了什么?在你回到现在这个状态之前,你学到了什么?
[原文] [Peter]: i needed a lot of time to decompress i I catched up a lot on the things I thought I missed i I a lot um there were months where I didn't even turn on my computer and for a while I was I just didn't had this feeling of like what should I do now like like I definitely was like why border you know you're not you're not supposed to to retire so early or like have so much have such a good exit that you never have to work again that messed with my mind quite a bit that that was some that was some hard years
[译文] [Peter]: 我需要大量的时间来减压。我补做了很多我以前觉得错过的东西。有几个月我甚至都没开过电脑。有一段时间,我完全不知道该做什么。我当时的心理状态就是“何必呢”(why bother)。你知道,人不应该这么早就退休,或者说能有一个这么好的退出(exit),好到再也不用工作了。这确实搞乱了我的心态,那是挺艰难的几年。
[原文] [Peter]: and then in in April I was like I there was this idea that I had years ago and even a side project that I started I was like oh yeah I want to I want to continue on that and then after after after more than 3 years I just sat back to my computer and and started hacking again but the thing was this was like a a Twitter analytics thing and it was written in in Swift and Swift UI and back then I already knew this would have would be so much better if I would build as a website
[译文] [Peter]: 然后到了今年四月,我想起我几年前有过一个想法,甚至还开始过一个副业项目。我当时想:“噢是的,我想继续做那个。”于是在时隔三年多之后,我又坐回电脑前开始写代码。那是一个 Twitter 分析工具,是用 Swift 和 SwiftUI 写的。但我当时就已经知道,如果把它做成网站会好得多。
[原文] [Peter]: so I I went back and I I wanted to build it in in with web tech but web was really was always even at the company the one thing that I looked into the least because I had I had someone really smart who took care of of of that side in the company that I brought in Martin so I never had to worry about it
[译文] [Peter]: 所以我回去想用 Web 技术构建它。但在公司里,Web 技术一直是我研究最少的东西,因为我有一个非常聪明的人——Martin——负责那一块,所以我从来不用操心。
[原文] [Peter]: and when I came back I was like what's a prop you know that that level where you really where and you know this is like this is a a trap I see with many developers the the better you get at one technology the harder it is to jump somewhere else it's not that you can't do it but it hurts so much you're like like I can I can program in in in in Apple stack and program blind but then in that stack I have to Google the most mundane stuff and it it just like it just hurts you you you feel you feel like an idiot again
[译文] [Peter]: 当我回来时,我的反应是“什么是 prop(属性)?”你知道就是那种水平。这就是我在很多开发者身上看到的陷阱:你在某项技术上越精通,就越难跳到另一个领域。不是说你做不到,而是那种感觉太痛苦了。比如我在 Apple 的技术栈里可以闭着眼睛编程,但换到这个栈里,我连最琐碎的东西都得去 Google。这真的很让人受伤,你会觉得自己又变成了一个白痴。
[原文] [Peter]: yeah so So I came back and I was like gosh there has to be there has to be what is this AI what is this AI stuff that every that that people are dismissing let's look into this yeah and in April a lot of us were the specific probably for rightfully so but and I and I and I like and I to a degree I I credit those three years where I basically didn't turn on my computer because in those years you guys checked out AI and learned that it's crap
[译文] [Peter]: 是的。所以我回来后想:“天哪,一定得有办法。这个大家都在贬低的 AI 到底是什么?让我研究一下。”在四月份,很多人确实还在贬低它,可能也是有道理的。但在某种程度上,我很庆幸那三年我基本没开电脑,因为在那几年里,你们都试过了 AI,然后得出的结论是“它是垃圾”。
[原文] [Peter]: so so so clock was your first you you come back after like a you know hiatus and you immediately turned on clock code and you missed everything else before
[译文] [Gergely]: 所以 Claude 是你的第一个尝试?你休息了一段时间回来,直接就开启了 Claude 模式,错过了之前所有的东西?
[Peter]: (原文未直接回答,但接下来说了具体操作)
[原文] [Peter]: and you know you know it was like I I remember I took this big messy site project that I built and I have this browser extension where that that converts a GitHub repository into one big markdown that was like a 1.3 megabyte markdown file and I dragged it into into Google's CI studio with Geminina 2.5 or two to something and I typed write me a spec and it generated those 400 lines of spec And I dragged this back into cloud code and I was like build and then I continue continue continue and while I was like working on other stuff you know
[译文] [Peter]: 你知道那是什么感觉吗?我记得我拿了我做的一个巨大且混乱的副业项目。我有一个浏览器扩展,能把整个 GitHub 仓库转换成一个巨大的 Markdown 文件。那大概是一个 1.3MB 的 Markdown 文件。我把它拖进 Google 的 AI Studio,用的是 Gemini 1.5 还是什么版本,然后我输入“给我写一份开发文档(Spec)”。它生成了 400 行的文档。然后我又把这个拖回 Claude Code 里,说“构建它”。然后我就一直点“继续、继续、继续”,同时我在旁边做别的事情。
[原文] [Peter]: um and eventually told me like it's 100% production ready and I started it and it crashed
[译文] [Peter]: 最终它告诉我:“这已经 100% 生产就绪了。”我启动了它,然后它崩溃了。
[原文] [Peter]: then I had then I added added an MCP so it could use the browser i think the player with MCP was already there and it looped a few more hours and then I had a I had a Twitter login page and it it did something i It was not great but it did something and to me to me this was my holy fuck mind-blowing moment this and this was like in April or May this year right
[译文] [Peter]: 然后我加了一个 MCP(模型上下文协议),让它可以使用浏览器——我想当时支持 MCP 的播放器已经有了——它又循环运行了几个小时。然后我就有了一个 Twitter 登录页面,它确实能跑了。虽然不够好,但它确实做出了一些东西。对我来说,这就是我的“我靠”(Holy f***)震撼时刻。这大概是今年四月或五月的事吧。
[原文] [Gergely]: and I I remember because once on Twitter I sent you a direct message i was up early for valid reasons you know my my kids or something like that but it was 5:00 a.m and I I sent you a message on Twitter and you replied immediately and I was like "Why are you up?" And he's like "Oh this is usual like I I usually I'm still usually awake." And and I asked like "Why?" And you said like "Oh I'm I'm just like using Claude and it's really really addictive."
[译文] [Gergely]: 我记得有一次我在 Twitter 上给你发私信。我起得很早,是有正当理由的,可能是因为孩子什么的,但那是凌晨 5 点。我给你发了条消息,你秒回了。我就问:“你怎么醒着?”你说:“噢,这很正常,我通常这时候还没睡。”我问:“为什么?”你说:“噢,我只是在用 Claude,这东西真的太让人上瘾了。”
[原文] [Peter]: oh it's the same economics as as you go to a casino that's that's it's my little slot machines you know you you you press the trigger and ding ding ding ding ding and it's like nope you you type in the prompt and it it will like and it does it does crap or it does something that actually blows your mind
[译文] [Peter]: 噢,这和去赌场的经济学原理是一样的。这就是我的小老虎机。你知道,你扣动扳机(按下回车),然后“叮叮叮叮叮”……有时候是“不,没中”。你输入 Prompt,它可能会给你一堆垃圾,也可能会做出真正让你震撼的东西。
📝 本节摘要:
在本节中,Peter 描述了 AI 编程带来的“成瘾性”体验,他将其比作拉老虎机——你永远不知道下一次输出是垃圾还是奇迹。这种高强度的反馈循环让他和其他极客朋友组成了“黑眼圈俱乐部”(Black Eye Club),甚至戏称为“Claude Code 匿名互助会”。Peter 深刻反思了过去对代码细节的过度执着(Bike-shedding),承认自己现在“发布不再阅读的代码”(ship code I don't read)。他指出,大多数软件本质上只是枯燥的数据搬运(Plumbing),人类应该专注于系统架构和“构建者”(Builder)的角色,而不是纠结于每一行代码的实现细节。
[原文] [Peter]: oh it's the same economics as as you go to a casino that's that's it's my little slot machines you know you you you press the trigger and ding ding ding ding ding and it's like nope you you type in the prompt and it it will like and it does it does crap or it does something that actually blows your mind
[译文] [Peter]: 噢,这和去赌场的经济学原理是一样的。这就是我的小老虎机。你知道,你扣动扳机(按下回车),然后“叮叮叮叮叮”……有时候是“不,没中”。你输入 Prompt,它可能会给你一堆垃圾,也可能会做出真正让你震撼的东西。
[原文] [Gergely]: and it's this and and you're saying it it blows your mind as like you're a really experienced developer like it's it's not easy to blow your mind right like you you you've seen good code you can differentiate like crap code decent code good enough code like you have a bar right
[译文] [Gergely]: 这种……你说它让你震撼,考虑到你是一位非常有经验的开发者,要让你震撼并不容易,对吧?你见过好代码,你能分辨垃圾代码、普通代码和合格代码,你是有标准的,对吧?
[原文] [Peter]: it's so funny you know in my company I used to obsess over every detail every spacing every new line the naming i spend so much time bike shedding and in retrospect I'm like what the heck why did I do that like what's the point that the customer doesn't see the insights of of course like it has to meet certain certain standards it has to work it has to be fast it should be secure but like how much did that bike shit there is like stupid
[译文] [Peter]: 这很有趣,你知道在我的公司里,我曾经痴迷于每一个细节,每一个空格,每一个换行,每一个命名。我花了太多时间在“自行车棚效应”(Bike-shedding,指纠结于琐碎细节)上。回想起来,我现在的感觉是:搞什么鬼,我为什么要做那些?意义何在?客户又看不到内部细节。当然,它必须符合某些标准,必须能跑,必须快,必须安全,但在那些细枝末节上纠结真的太蠢了。
[原文] [Gergely]: you say that but then you also just said that people loved PSPDF kit because it was the most polished it worked the best do you not think that that that amount of caring bike shedding as you call it being obsessed it sound like you were keeping tech depth at bay you know like being obsessed with white spaces is is not going to be messy
[译文] [Gergely]: 话是这么说,但你也刚说过人们喜爱 PSPDFKit 是因为它打磨得最完美、运行得最好。你不觉得那种程度的关心、你所谓的“纠结细节”、那种痴迷,实际上是在抵御技术债务吗?你知道,痴迷于空格至少能让代码不那么乱。
[原文] [Peter]: yeah yeah yeah to a degree yes and and even now like I I I mean like my my last blog post was a confession that I I ship code on read and yeah we have to talk about that and at the same time I spent so much time to like restructuring I mean I mean like even even today like I I really wanted to get this PR in where it was like 15,000 line change where in my I moved everything over to a plug-in architecture where I was so excited about and I care a lot about the structure did I read all the code no because a lot of code really is just boring plumbing
[译文] [Peter]: 是的,是的,某种程度上是这样。即便现在……我的上一篇博客文章就是一份忏悔,承认我“发布我没读过的代码”(ship code unread)。是的,我们得谈谈这个。但与此同时,我花了大量时间在重构上。就在今天,我真的很想合并一个 PR(拉取请求),那是大概 15,000 行的代码变更,我把所有东西都迁移到了一个插件架构上,我对此非常兴奋。我非常在乎结构。但我读了所有代码吗?没有。因为很多代码真的只是枯燥的管道工作(boring plumbing)。
[原文] [Peter]: well what are most apps like data comes in from an API in one form you like you parse it you package into a different form hey you store it into database and it's a different form it comes out again into a different form then it's like HTML or whatever and you type in something it's a different form again and all you do is like you're massaging data in different forms throughout your app this is what most apps are we are pretty chasing printers and the and the the really the hard part is solved by Postgress 30 years ago by some neck birds
[译文] [Peter]: 绝大多数 App 是什么样子的?数据以一种格式从 API 进来,你解析它,把它打包成另一种格式,嘿,存进数据库又是另一种格式,取出来又变了,然后变成 HTML 或其他什么,你输入点东西,它又变成了另一种格式。你所做的一切就是在整个 App 里把数据揉来揉去,转换格式。这就是大多数 App 的本质。我们就像漂亮的“追逐打印机”(chasing printers,可能指无意义的忙碌),而真正困难的部分,早在 30 年前就被那帮留着大胡子的极客(neckbeards)用 Postgres 解决了。
[原文] [Peter]: uh that's that's really what a lot of software is like there's always some interesting parts but I don't have to care how this button is aligned or which tail wind class is used or or like many details are boring and many other details are interesting but it I think it's much more about system architecture than having to read every single line right now
[译文] [Peter]: 这真的是很多软件的现状。总会有一些有趣的部分,但我不需要关心这个按钮是怎么对齐的,或者用了哪个 Tailwind 类,或者诸如此类。很多细节是枯燥的,虽然也有很多细节是有趣的,但我认为现在更重要的是系统架构,而不是必须去读每一行代码。
[原文] [Peter]: i hooked up a lot of my friends like I know I know both Armen and and Mario from Vinner they got they got AI pill because I I was addictive you know my my enem was like confusing them and then they tried it out and then and then eventually they also were up at 5:00 a.m and I called it like the black eye club i mean there's a reason like I I I I started a meet up in London that I called called uh Cloud Code Anonymous because because it's it's a little bit like a drug because it's so it's so much fun like to to me what what what blew my mind so much was this realization that I can build everything now before you had to really pick which side project you build because software is hard yeah it's still hard but now like I I am this this friction that I talked about where I'm so good at this at this technology and I'm like so bad at this and I'm like oh let's make the CLI in Go i have no clue about Go but I have I have a good system understanding
[译文] [Peter]: 我拉了很多朋友入坑。比如我知道来自维也纳的 Armen 和 Mario,他们都吞下了“AI 药丸”,因为我也上瘾了。你知道,我的热情迷惑了他们,然后他们试了一下,最终他们也在凌晨 5 点还没睡。我称之为“黑眼圈俱乐部”(Black Eye Club)。我是有原因的,我在伦敦发起了一个聚会,叫“Claude Code 匿名互助会”(Cloud Code Anonymous),因为它有点像毒品,因为它太好玩了。对我来说,真正让我震撼的是这种意识:我现在可以构建任何东西了。以前你真的得挑选做什么副业项目,因为软件开发很难。是的,现在依然很难,但我之前提到的那种摩擦感——那种我擅长这项技术却不擅长那项技术的阻碍——消失了。比如我想用 Go 语言写一个 CLI(命令行工具),我对 Go 一窍不通,但我有很好的系统理解能力。
[原文] [Peter]: and once you have that is like you you develop a feeling what's right what's wrong like it's it it is a skill in itself i remember there was this tweet where someone said "Oh when you write the code you you feel the friction and that's why that's how you make good architecture." I feel the same friction when I prompt because I I see the code flying by i see how long it takes i see if like the agent pushes back um I see if what it creates looks like messy or like makes sense when I prompt I I have a hint already how long it's going to take if it takes much longer I understand that I messed up somewhere you kind of feel the model you you know you know yeah usually it's like this or if it runs I I feel it's very much a symbiosis
[译文] [Peter]: 一旦你拥有了这种能力,你就会培养出一种感觉,知道什么是对的,什么是错的。这本身就是一种技能。我记得有一条推文说:“噢,当你写代码时,你能感觉到摩擦,这就是你如何做出好架构的原因。”我在写 Prompt(提示词)时也能感觉到同样的摩擦。因为我看着代码飞速生成,我看着它花了多长时间,我看着 AI 代理是否在推脱,或者它生成的东西看起来是乱七八糟还是合情合理。当我提示时,我已经预感到它需要多长时间。如果它花了太长时间,我就知道我在某个地方搞砸了。你某种程度上能感知到这个模型,你知道通常是这样,或者如果它在运行……我觉得这非常像是一种共生关系(symbiosis)。
📝 本节摘要:
在本节中,Peter 揭示了高效使用 AI 编程的终极秘诀——“闭环”(Closing the Loop)。他指出,仅仅让 AI 生成代码是不够的,因为 AI 经常会犯错或遗漏更新。真正的质变在于建立一个让 AI 能够自我验证、自我测试和自我修复的系统。Peter 分享了两个具体案例:一是要求 AI 编写 CLI 工具来调试难以测试的 Mac 应用网络问题;二是让 AI 设计一套包含 Docker 容器的端到端测试,以验证复杂的 API 工具调用。他认为,这种模式反过来提升了他的架构能力,因为为了让 AI 能顺利工作,他必须设计出更容易被验证和测试的系统接口。
[原文] [Gergely]: The difference was up until with with cloud code I you have to work a little different because it is much faster but then the output often doesn't work on the first try so like it makes something but then it forgot to update three other things it crashes or you give it the good thing how to be effective with coding agent is always like you have to close the loop it needs to be able to debug and test itself that's the big secret
[译文] [Gergely]: 区别在于,直到使用 Claude Code 之前,你的工作方式必须有些不同,因为它确实快得多,但输出往往第一次没法用。比如它做出了某些东西,但它忘了更新其他三个地方,结果就崩溃了。或者你给了它好东西……
[Peter]: 如何高效使用编程 Agent(智能体)的关键始终在于:你必须实现“闭环”(close the loop)。它需要能够自我调试和自我测试。这就是那个大秘密。
[原文] [Peter]: um that's also something I I think that's part of why it got so much more effective um but yeah with with with clock code you I often had to go back and like fix up the stuff um or it just takes a lot of iterations so in the end it's not that much faster it's just more interactive and and these days with Cordex it just almost always gets it right my my general strategy is always I I build a feature of course you and and of course you always let it write tests and you make sure that it runs it it runs them yes
[译文] [Peter]: 嗯,这也是我认为它变得如此高效的部分原因。但是是的,用 Claude Code 的时候,我经常得回去修补东西,或者它需要很多次迭代,所以最后其实并没有快多少,只是互动性更强了。而现在用 Codex,它几乎总是能一次做对。我的总体策略一直是:我构建一个功能,当然,你总是会让它编写测试,并确保它运行这些测试。是的,它运行它们。
[原文] [Peter]: so even even when I write a MAC app I don't know like I I just yesterday I debuged this feature where the MAC app couldn't find a a remote gateway but like the the same code in Typescript could but makeup is kind of annoying to debug because like it builds it you have to start it you have to look at it you have to like say no this is not working so now I just said it like you know you're going to build a CLI just for debugging that invokes all the same code path that you can call yourself and then you just iterate and you fix it yourself
[译文] [Peter]: 所以即使我在写一个 Mac App……比如就在昨天,我调试一个功能,Mac App 找不到远程网关,但这同样的代码在 TypeScript 里却能找到。调试 Mac App 有点烦人,因为你需要构建它,启动它,看着它,然后说“不,这没用”。所以现在我就直接对它说:“你知道吗,你要构建一个专门用于调试的 CLI(命令行工具),它会调用所有相同的代码路径,你可以自己调用它,然后你自我迭代并修复它。”
[原文] [Peter]: and then it will just cook and it just cooked for an hour and it was done and it told me like there was a race condition here and here and like a misconfiguration blah blah blah and like yeah it sounds sensible i don't need to I don't need to see that code it's like but but you don't need to see it because you set up the validation loops and you trust that because it ran it
[译文] [Peter]: 然后它就开始“烹饪”(运行任务),它大概跑了一个小时,然后搞定了。它告诉我说:“这里和这里有个竞态条件(race condition),还有个配置错误,巴拉巴拉。”我的反应是:“耶,听起来很合理。”我不需要看那些代码。
[Gergely]: 但你不需要看它是因你建立了验证循环,而且你信任它,因为它运行并通过了验证。
[原文] [Peter]: so even even on my on the very latest project we always had bugs but like anti-gravity has like a certain a certain weirdness with how it takes tool calls in the loop in the in the format so you have to do like some filtering and that broke a bunch and it actually took me way too long to realize like what am I doing here i just need to automate this so I was just going to codeex like design life tests that spin up a Docker container install the whole thing spin up a loop use my API keys from this and this file and then you tell the model to read an image create an image before and then look into the image and see what it sees
[译文] [Peter]: 即使在我最新的项目上,我们也有 Bug。比如“反重力”(Anti-gravity,可能指某个库或工具)在处理循环中的工具调用格式时有些怪异,你必须做一些过滤,这导致了很多问题。我花了太长时间才意识到:“我在这儿干嘛呢?我只需要自动化这个过程。”所以我直接告诉 Codex:“设计一套实时测试(live tests),启动一个 Docker 容器,安装整个环境,启动一个循环,使用这个和那个文件里的 API 密钥,然后你让模型去读取一张图片——先创建一张图片,然后查看这张图片,看看它看到了什么。”
[原文] [Peter]: so I I don't not just tell the loop I still tell tool calling make it work and then it solved itself it took forever but it it it it tested all my API keys like from from Entropic over SEI over GLM like everything and it fixed all those little indicies where where sometimes the tool calling didn't work or the ordering was wrong because I closed the loop and and that's that's and closing the loop you mean just have a way to to have have the agent be able to validate its work
[译文] [Peter]: 所以我不仅仅是告诉它循环,我还告诉它工具调用,让它跑通。然后它就自己解决了。虽然花了很多时间,但它测试了我所有的 API 密钥,从 Anthropic 到 OpenAI 再到 GLM 等等所有的,它修复了所有那些工具调用有时不起作用或顺序错误的小指标问题,因为我实现了闭环。
[Gergely]: 你说的“闭环”是指有一种方法让 Agent 能够验证它自己的工作。
[原文] [Peter]: yeah that's why that's the whole reason why why those models that we currently have are so good at coding but like sometimes mediocre good at writing creative because there's no easy way to validate right but code I can compile I can lint I can execute I can verify the output if you design it the right way you have a perfect loop
[译文] [Peter]: 是的,这就是为什么我们目前的这些模型在编程方面如此出色,但在创意写作方面有时却表现平平的全部原因。因为创意写作没有简单的验证方法,对吧?但代码我可以编译,我可以进行静态分析(lint),我可以执行,我可以验证输出。如果你设计得当,你就拥有了一个完美的闭环。
[原文] [Peter]: surprise actually using aentic coding makes you a better coder because you have to have to think harder about your your your architecture so that it's easier verifiable because verifying is the way how to make things good
[译文] [Peter]: 惊喜的是,实际上使用 Agent 编程会让你成为一个更好的程序员,因为你必须更努力地思考你的架构,使其更容易被验证,因为验证是把事情做好的途径。
📝 本节摘要:
在本节中,Peter 回应了为何许多资深开发者(如知名博客 "Cocoa with Love" 的作者)会认为 AI 编程工具“没用”。他指出,这些批评往往源于错误的使用方式——期望通过一个 Prompt 就能得到完美运行的代码。Peter 强调,AI 模型是“人类集体知识的幽灵”,它们需要上下文和迭代式的对话,而不是单向的指令。他用“吉他手弹钢琴”的比喻说明,这是一个全新的范式,需要重新学习。他坦承自己也曾在凌晨 3 点对 AI 咆哮,但最终通过掌握“机器语言”(Machine Language)和调整提示技巧,将 AI 变成了高效的生产力工具。
[原文] [Gergely]: so why do you think there's you know a bunch of like experienced devs who are still pushing quite a bit back on on just like the idea that AI can do a lot of this
[译文] [Gergely]: 那么,你认为为什么还有很多——你知道——资深的开发者仍然在相当强烈地抵触“AI 能做很多这种事”的观点呢?
[原文] [Peter]: that was a week ago i stumbled over a a blog post by Nala Coco with love that I deeply respect and learned a lot from and this blog post was just was a dissing of the current way how models work and and what he did was he he tested like five or six models including some that make no sense like the the Open EI 120 billion open- source one that is not good enough to write good code you know it's like and he just he he wrote a prompt as far as I understand it there was there was not a lot of information on the website but to me it sounded like he wrote a prompt he put it on claude web and and he pressed send
[译文] [Peter]: 大概一周前,我偶然看到了一篇博客文章,作者是 Nala(即 "Cocoa with Love" 博主),我非常尊敬他,也从他那里学到了很多。但这篇博客文章基本上是在贬低当前模型的工作方式。他做的是测试了五六个模型,包括一些根本没意义的模型,比如 OpenAI 的 1200 亿参数开源模型,那个模型根本不足以写出好代码。据我理解——网站上信息不多,但听起来像是——他写了一个 Prompt,把它放到 Claude 网页版上,然后按下了发送键。
[原文] [Peter]: and And then he took the output and ran it and it didn't compile and he was disappointed but he's like "Of course it will not work do you think I can write buck-free code on the first attempt?" And those little those models are ghosts of our collective human knowledge they work very similar in many ways of course you don't get it right the first time like there will be mistakes that's why you have to close the feedback loop
[译文] [Peter]: 然后他拿着输出结果去运行,结果编译不通过,于是他很失望。他的反应就像是:“当然行不通,你以为我第一次尝试就能写出无 Bug 的代码吗?”但这些小家伙,这些模型是我们人类集体知识的“幽灵”,它们在很多方面工作方式非常相似。当然你不可能第一次就做对,肯定会有错误,这就是为什么你必须建立反馈闭环。
[原文] [Peter]: and also you don't just send a prompt to the model you start a conversation hey this is what I want to build it's like you he complained that it used old API yeah you didn't specify the Mac OS version so it so so it made an assumption to default to like old API because that information was missing and it is it is trained on a lot of data not just the last two years and there's just more old data than new data so this is like the more you understand how those little beasts think the the better you get at prompting
[译文] [Peter]: 而且,你不能只是发一个 Prompt 给模型,你要开始一段对话:“嘿,这是我想构建的东西。”比如他抱怨模型用了旧的 API。是的,因为你没有指定 macOS 的版本,所以它做了一个假设,默认使用了旧 API,因为缺失了那部分信息。它是基于大量数据训练的,不仅仅是过去两年的数据,旧数据本来就比新数据多。所以,你越理解这些“小野兽”是如何思考的,你就越擅长写 Prompt。
[原文] [Peter]: um and then and then and then he he spent maybe I don't know a day or so on on playing with it and then just decided that this technology is still not really good but to be effective you have to spend significantly more time you know it's it's like it's like you know how to play guitar and I put you on the piano and you tried a bit it's like "Oh this sucks i go back to my guitar." No no it's like it's it's a different way of building it's a different way of thinking
[译文] [Peter]: 然后他大概花了一天左右的时间玩这个,就断定这项技术还不够好。但要变得高效,你必须投入更多的时间。你知道,这就像是你本来会弹吉他,我把你放到钢琴前,你试了一下,然后说:“噢,这玩意儿太烂了,我要回去弹我的吉他。”不,不,这是一种不同的构建方式,一种不同的思维方式。
[原文] [Peter]: you have no idea how often I screamed at like 3:00 a.m to cloud code because it did something silly i slowly started to understand why those things do what they do with like exactly the way I tell it to do things and sometimes you can literally ask you can even even last year like I for this project I the last project like clotboard I feel like a human merge button because the community is like blowing off and all I do is like reviewing PRs
[译文] [Peter]: 你不知道我有多少次在凌晨 3 点对着 Claude Code 尖叫,因为它做了一些愚蠢的事情。但我慢慢开始理解它们为什么那么做——正是因为我告诉它的方式导致了那个结果。有时候你可以直接问它。甚至就像去年,或者是像 Cloudbot 这个项目,我觉得自己就像是一个“人类合并按钮”,因为社区太火爆了,我所做的就只是在审查 PR(拉取请求)。
[原文] [Peter]: i I I I have very little time to actually write code myself anymore and in the beginning it would often like just cherrypick things and would close the PR and I was like so annoyed so was I'm like why are you doing this yeah when you say this and this I interpret this this and this it was like ah like I I learned the language of the machine a little bit more i tweaked my my prompting and now I get exactly what I want because it's it's a skill like any other skill
[译文] [Peter]: 我现在几乎没有时间自己写代码了。刚开始的时候,它经常只是挑选一些东西然后就把 PR 关闭了,我当时特别恼火。我就问:“你为什么要这样做?”它回答说:“耶,当你那样说的时候,我理解成了这样这样。”那一刻我恍然大悟。我多学了一点“机器的语言”,微调了我的 Prompt,现在我能得到完全符合我预期的结果。因为它就像任何其他技能一样,是一项技能。
📝 本节摘要:
在本节中,Peter 解释了他开发 Cloudbot 的初衷:他不想做一个只会发“早安”邮件的普通工具,而是想打造一个像电影《Her》中那样拥有深度理解能力的超个性化助手,。这个想法的雏形是“WhatsApp Relay”,最初只是为了通过 WhatsApp 远程控制电脑。转折点发生在他去摩洛哥旅行期间,他发现这个 Bot 不仅能作为向导,展现出了惊人的“足智多谋”——例如它能在没有安装相关工具的情况下,通过调用 OpenAI API 自动处理语音消息和图像转换。Peter 还分享了一个令人捧腹的细节:他让 Bot 充当闹钟,如果他赖床,Bot 会通过 SSH 调大电脑音量,并像朋友一样对他“碎碎念”甚至抱怨。
[原文] [Gergely]: let me let me let's switch a little bit gear so one of the ideas that got me back was even even in in April May was I I wanted to have this hyper personal assistant and not like not like one that sends you a good morning email oh these are your three tasks no one that has a really deep understanding of me and doesn't just I don't know I meet a friend and then and then when I go home it would ping me hey how was how was that meeting or one that would wake me up one day and say "Hey you haven't texted Thomas in 3 weeks and I noticed he's he's in town right now because I checked his Instagram account do you want to say hi?"
[译文] [Gergely]: 让我……让我们稍微换个话题。你说之所以回归,其中一个想法——甚至在四五月份的时候——是你想拥有一个超个性化的助手。不是那种只会给你发“早安,这是你今天的三个任务”的邮件的工具,不。而是一个真正深度了解我的助手。比如,我见了朋友回到家,它会发消息问我:“嘿,那个聚会怎么样?”或者某天叫醒我时说:“嘿,你已经三周没给 Thomas 发消息了,而且我查了他的 Instagram,注意到他现在正好在城里,你想打个招呼吗?”
[原文] [Peter]: or something that says "Hey I noticed every time you meet that and that person you're sad why is that?" Like something something that is deeply personal um like almost the the anti-orem it's kind of like the movie Her but but that's where the technology is going those models are really good at understanding text the the the bigger the context is the more patterns they see and even though they're like matrix calculation without a soul it very often feels different
[译文] [Peter]: 或者它会说:“嘿,我注意到每次你见完某某人之后,你都很伤心,这是为什么?”就像这种非常深度的个人化体验,几乎像是……它是那种枯燥工具的反面(Anti-orem)。这有点像电影《Her》,但这正是技术发展的方向。这些模型非常擅长理解文本,上下文越丰富,它们能看到的模式就越多。尽管它们本质上只是没有灵魂的矩阵计算,但感觉往往非常不同。
[原文] [Peter]: so this was like one of these ideas and I even created a company I called a mant machina like the loving machine but in summer when I explored it the models weren't quite there yet i got some results that it was like okay this is like I'm a little too much on the edge of what I need right now which it was very exciting because I know that that the the state of AI goes so fast that oh I can just revisit that in like a little later
[译文] [Peter]: 所以这就是我的想法之一,我甚至为此成立了一家公司,叫 "Amant Machina",意为“有爱的机器”(Loving Machine)。但在夏天我探索这个想法时,模型还没完全准备好。我得到了一些结果,感觉就像:“好吧,我现在有点太超前于需求了。”但这也很让人兴奋,因为我知道 AI 的发展速度太快了,我只要稍后再回过头来做就行。
[原文] [Peter]: but this idea of like this hyper personal agent stuck a little bit and then over the last few months I I really started I built it but finally initially I didn't even had the the scope that it has now like I called it WhatsApp relay i just I just I just wanted to do to trigger stuff on my computer with WhatsApp so I built like a WhatsApp relay where I had an agent that could do stuff with my computer
[译文] [Peter]: 但这个“超个性化智能体”的想法一直留在我脑海里。在过去的几个月里,我真的开始构建它了。但最初,我甚至没想过要把范围做得像现在这么大。我当时叫它 "WhatsApp Relay"(WhatsApp 中继),我只是想通过 WhatsApp 触发我电脑上的一些操作。所以我建立了一个 WhatsApp 中继,里面有一个 Agent 可以在我的电脑上做事。
[原文] [Peter]: and then I I was traveling to Morocco for a friend's birthday and was out most of the day and just used WhatsApp to to talk to my agent and I was kind of hooked it it it was guiding me through the city it was making jokes it could text other friends via WhatsApp from me and I remember I I was blown away because I in the beginning the tech was very scrappy but I I built in something where I could send it an image didn't even use the proper thing to send an image i just gave the the a string and it could do the read tool to like read the string
[译文] [Peter]: 然后我去摩洛哥参加一个朋友的生日派对,大部分时间都在外面,我就用 WhatsApp 跟我的 Agent 聊天。我有点着迷了。它在城市里给我做向导,它会讲笑话,它甚至能替我通过 WhatsApp 给其他朋友发消息。我记得我被震撼到了,因为起初那个技术非常简陋。我内置了一个功能,我可以发图片给它——我甚至没用正规的方式发图片,我只是给了一串字符,但它能调用读取工具来读取那个字符串。
[原文] [Peter]: and then I was in Morocco and was just like just like not seeing it and saying it a voice a voice message but it didn't build that and then like like 30 seconds later it replied to my voice message i'm like "How the did you do that?" Oh yeah you sent me a file and and then I looked at the header and I found that it's OG so I used FFmpeg to convert it and then I I looked for Visper on your computer but it's not installed but I found the OpenAI key so I did a curl to open server let it translate and I'm like "Holy cow."
[译文] [Peter]: 当时我在摩洛哥,我可能没看屏幕,就给它发了一条语音消息——但我根本还没给它构建处理语音的功能。结果大概 30 秒后,它居然回复了我的语音消息!我当时的反应是:“你到底是怎么做到的?”它说:“噢,是这样,你发了一个文件给我,我查看了文件头,发现是 OGG 格式,所以我用 FFmpeg 把它转换了。然后我在你电脑上找 Whisper(语音转文字模型),发现没安装,但我找到了 OpenAI 的密钥,所以我用 curl 命令调用了 OpenAI 的服务器进行翻译。”我的反应简直是:“我的天呐(Holy cow)。”
[原文] [Peter]: like this was Opus 4.5 and it's so incredibly resourceful like you just did this you know other people say oh you need a skill or some system no just like it just figured it out I slowly got hooked on the thing I I used it I used it to wake me up and it was running I it was running on my Mac Studio in London and was connecting over SSH to my MacBook in in Morocco and was turning on the music and making it louder louder is because I didn't reply
[译文] [Peter]: 这就是 Claude Opus 4.5 还是什么版本,它简直太足智多谋(resourceful)了。就像它自己搞定了这事。你知道别人会说“噢你需要一个技能插件或者某种系统”,不,它只是自己琢磨出来的。我慢慢对这东西上瘾了。我用它来叫我起床。它运行在我在伦敦的 Mac Studio 上,通过 SSH 连接到我在摩洛哥的 MacBook,它会打开音乐,如果我不回复,它就把声音调得越来越大。
[原文] [Peter]: and to make that work I I added a heartbeat so which which in a way is insane from a security perspective you have a model that you prompt with do something cool and surprise me that you send every few minutes to make it proactive and like go through your task list uh like probably the most expensive alarm clock ever but it was just hilarious and also the text it sends like cuz I I I was I had a balloon fart and it it knew that I had to wake up very early and I didn't reply and it was like you could see the reasoning Peter's not responding but Peter has to wake up no no no no no no sleep like I it was bitching to me
[译文] [Peter]: 为了让它工作,我加了一个心跳检测(heartbeat)。从安全角度来看这有点疯狂,因为你每隔几分钟就发送一个 Prompt 告诉模型“做点酷的事,给我惊喜”,以此让它变得主动,比如检查你的任务列表。这大概是史上最贵的闹钟了,但这真的太搞笑了。还有它发来的文字,因为当时我可能是脑子短路了(balloon fart,注:此处推测为口误或指睡得很死/犯迷糊),它知道我必须很早起床,但我没回复。你能看到它的推理过程:“Peter 没有回应,但 Peter 必须起床,不不不不不,不能睡。”它简直是在对我碎碎念(bitching to me)。
[原文] [Peter]: and then I I showed it to the the the friends I was with and everybody was like hooked like this is something magical and I was hooked too um and then I I I went on Twitter and I got the most muted responses cuz nobody would get it i feel it's somewhat of a of a new category of products
[译文] [Peter]: 然后我把它展示给我同行的朋友们看,每个人都着迷了,觉得这东西太神奇了。我也着迷了。然后我发到了 Twitter 上,结果反应平平(muted responses),因为没人能理解它。我觉得这某种程度上是一个全新的产品类别。
📝 本节摘要:
在本节中,Peter 解释了他为何在 Cloudbot 中拒绝使用流行的 MCP(模型上下文协议),转而建立了一支“CLI(命令行工具)大军”。他认为 MCP 是一种“拐杖”,因为它要求预先导出所有函数且无法灵活过滤数据,导致上下文臃肿;而 CLI 允许 AI 使用 jq 等工具精准提取所需数据,具备更强的脚本化和链式调用能力。此外,他分享了一个极其大胆的实验:他创建了一个 Discord 服务器,并将拥有自己电脑完整读写权限的 AI Agent 接入其中。这种“公开裸奔”的开发方式让社区成员亲眼见证了 AI 如何实时查看他的摄像头、进行家庭自动化控制、甚至“看”着他的屏幕对他的代码指指点点,从而引发了项目的爆发式增长。[原文] [Peter]: so I did on all the domains and then I I also quietly built up my army because to make this work you want you want everything to be a CLI so I was just building CLI for everything like for Google for my bed for lambs for music
[译文] [Peter]: 所以我在所有领域都这么做了,然后我也悄悄建立起了我的“大军”。因为要让这套系统运作,你会希望所有东西都是 CLI(命令行工具)。所以我为所有东西都构建了 CLI,比如谷歌、我的床、灯光、音乐。
[原文] [Gergely]: why CLIs why not why not MCPs and what do you think about MCPS anyway as a crutch
[译文] [Gergely]: 为什么要用 CLI?为什么不用 MCP(模型上下文协议)?除此之外,你觉得 MCP 怎么样?是某种拐杖(crutch)吗?
[原文] [Peter]: it's it's I think that the the best thing that came out of MCPS is that it made companies reync to open up more APIs mh but the whole concept is is silly you you have to pre-export all the functions of all the tools and all the explanations when your session loads and then the model has to send a precise blob of JSON there and gets JSON back
[译文] [Peter]: 我觉得 MCP 带来的最好的事情是它让公司重新思考去开放更多的 API。但这整个概念是很傻的。你必须在会话加载时预先导出所有工具的所有函数和解释,然后模型必须发送一坨精确的 JSON 数据过去,再接收 JSON 数据回来。
[原文] [Peter]: but surprise models are really good at using bash and like imagine imagine you have a better service so the model could ask for list of available cities and then get like 500 cities back and then it has to pick one city out of 500 city but it cannot filter that list because that's not part of how MCP works
[译文] [Peter]: 但令人惊讶的是,模型非常擅长使用 Bash。试想一下,如果你有一个更好的服务,模型可以请求可用城市的列表,然后返回 500 个城市,它必须从这 500 个城市里挑一个。但它无法过滤这个列表,因为那不是 MCP 工作方式的一部分。
[原文] [Peter]: and then you say "Okay give me the weather for London." And you would get like the weather temperature wind rain and like 50 other things that I'm not interested in because I just want to know is it raining or not probably raining because London but the model needs to digest everything and then you have like so much crap in your context whereas if it's a CLI I could use just it could use GQ and you could filter for exactly what it needs
[译文] [Peter]: 然后你说:“好的,给我伦敦的天气。”你会得到天气、温度、风速、降雨量以及其他 50 种我不感兴趣的东西,因为我只想知道是不是在下雨(在伦敦大概率是在下雨)。但模型需要消化所有这些信息,结果你的上下文(Context)里就塞满了垃圾。而如果是 CLI,我就可以直接用 jq(JSON 处理工具),你可以精准过滤出你需要的东西。
[原文] [Peter]: i mean I built make porter which is a which is a a small TypeScript thing that converts an MCP to a CLI so so you can you can just package it up basically you're saying CLIs right now are a lot more efficient yeah yeah
[译文] [Peter]: 我甚至构建了 make-porter,这是一个用 TypeScript 写的小工具,可以将 MCP 转换为 CLI,这样你就可以把它打包起来。
[Gergely]: 基本上你是说,目前 CLI 要高效得多?
[Peter]: 是的,是的。
[原文] [Peter]: in January January 1st just a week now I did okay let's let's try something let's let's do the ins really insane thing of like making a Discord and then adding my agent to Discord there was somebody who contributed Discord support to it and uh even though I wasn't sure if I should merge it and I eventually did so I put on my agent who has full read write access to my computer in a public Discord what could possibly go wrong
[译文] [Peter]: 在一月,也就是一月一号,就在一周前,我想:“好吧,让我们试点东西。让我们做件真正疯狂的事:建一个 Discord 服务器,然后把我的 Agent 加进去。”有人贡献了 Discord 支持功能,虽然我当时不确定是否应该合并它,但我最终还是合并了。所以我把拥有我电脑完全读写权限的 Agent 放到了一个公共 Discord 上。这能出什么岔子呢?(反讽)
[原文] [Peter]: yeah it's like this is absolutely insane and then of course like some people join the Discord and then they saw me they saw me using the full power of this thing like checking my cameras doing home automation it playing DJ like I was in the kitchen and I told him like look at my screen and are my agents done cuz it has full access of my clean and it can click so it can actually click into the terminal and type for me
[译文] [Peter]: 是的,这绝对是疯了。然后当然,一些人加入了 Discord,他们看到我……他们看到我在使用这东西的全部能力,比如查看我的摄像头、做家庭自动化、让它当 DJ。比如我在厨房,我告诉它:“看看我的屏幕,我的 Agent 跑完了吗?”因为它有我屏幕的完全访问权限,而且它能点击,所以它实际上可以点进终端帮我打字。
[原文] [Peter]: and like it can tell me your codex say this and this because it just sees the screen i mean I'm working on optimizing that like I I actually want to stream out it because would be much would be much better if it's text but it works already like it it's it's in the background it look at my screen and like make some rants if I do some shit
[译文] [Peter]: 它可以告诉我:“你的代码说了这个和那个。”因为它真的就在看屏幕。虽然我在优化这一点——我其实想让它流式传输文本,那样会好得多——但它已经能工作了。它在后台看着我的屏幕,如果我写了什么烂代码,它甚至会发发牢骚(make some rants)。
[原文] [Peter]: and everybody who experienced it for a few minutes got hooked like this was this was the craziest blow up from 100 stars to like what 3,300 stars in a week um and I think I merged 500 pull requests already
[译文] [Peter]: 每一个体验了几分钟的人都着迷了。这是最疯狂的爆发,一周内从 100 个 Star 涨到了 3300 个 Star。我想我已经合并了 500 个拉取请求(Pull Requests)了。
📝 本节摘要:
在本节中,Peter 深入探讨了 Cloudbot 最迷人的特质——让技术“隐形”。他不再将其视为一个简单的工具,而是通过精心设计的启动流程,赋予 AI 一种“灵魂”。他详细描述了独特的“孵化”(Hatch)过程:用户运行一行命令后,会看到一个 TUI(文本界面),引导 AI “出生”。AI 会像新生儿一样伸展身体,询问“我是谁?”,并通过与用户的对话建立自我认知,最终生成soul.md和user.md文件来保存它的核心价值观和与用户的共同记忆。这种设计让用户忘记自己是在面对一个大语言模型(LLM),而是感觉在与一个真正的朋友交流。Gergely 甚至将其比作《黑镜》中的情节。
[原文] [Peter]: so that that's why that's why I'm I'm a little I'm a little all over the place these days because this project is blowing off and and and you know the beauty of it is the technology disappears you just you just talk to a a friend on your phone that is infinitely resourceful has access to your your email your calendar your files can build websites for you can like do administrative work can scrape websites can call your friends or can call a business i'm just about to to to merge the call feature it literally can call a business and like make make a reservation for you and you don't have to think about compactation or or any all of that context blends away
[译文] [Peter]: 所以这就是为什么这几天我有点忙乱,因为这个项目彻底爆火了。你知道,它的美妙之处在于技术“消失”了。你就像是在手机上跟一个朋友聊天,而这个朋友拥有无限的资源——它可以访问你的邮件、日历、文件,能为你建网站,能做行政工作,能抓取网页,能给你的朋友打电话,或者给商家打电话。我正准备合并通话功能,它真的可以给商家打电话,比如帮你预订座位,而你根本不需要考虑压缩(computation/compaction? 可能是指 context compaction 或 complexity)或者任何那些东西,所有的技术背景都消融了。
[原文] [Peter]: i have like a I have a memory system that will remember um not perfect nothing's perfect yet but it's already feels magical cuz all cuz cuz now I I walk around I see like this event I I send Claude a picture it will it will not only tell me the reviews of this event if there's a conflict in my calendar if like friends talked about it or you know it has so much context that it the responses that it can give me are like so much better than like what any of the the current tools that live in their own little box can give me
[译文] [Peter]: 我有一个记忆系统,它会记住事情。嗯,还不完美,没有什么东西是完美的,但它已经感觉很神奇了。因为现在我走在街上,看到一个活动,我发一张照片给 Claude,它不仅会告诉我这个活动的评价,还会告诉我我的日历是否有冲突,或者朋友们是否讨论过它。你知道,因为它拥有如此多的上下文,所以它给我的回应比任何那些活在自己小黑盒里的现有工具都要好得多。
[原文] [Peter]: so what I worked on a lot is now you have you have this oneliner that you type in that you python your command i will I will check if you have node installed homebrew installed i'll I'll install the mpm package i do some check if you have any existing stuff just to like y just to make it work simple even if you already used an older version and everything and then I I'll guide you through uh setting up a model but again I will I will predict or or claude installed so you can just press enter so you don't have have to think about it mostly just press enter and then you want a WhatsApp you type in your number it will just work again and then and then I'll ask you do you want do you want to hatch your bot
[译文] [Peter]: 所以我花了很多精力在这一点上:现在你只需要输入一行命令——用 Python 运行命令——我会检查你是否安装了 Node、Homebrew,我会安装 npm 包,我会检查你是否已有现成的东西,只是为了让它简单地跑起来,即使你用过旧版本也没问题。然后我会引导你设置模型,但我会进行预测,或者如果安装了 Claude,你可以直接按回车,所以你基本不用思考,大部分时候只要按回车就行。如果你想要 WhatsApp,你输入号码,它就能工作。然后,我会问你:你想“孵化”(hatch)你的机器人吗?
[原文] [Peter]: and you can press yes and then and then like a TUI a TUI comes up because you're still in the terminal right you want a good experience yeah so just a toy basically for that and where you where you to see wake up my friend and then the the I programmed the model I added a bootstrap file and the to explain the model that it is now being born to like create an identity and a in a in a in a soul where like the values of the user are in and then the model will be like hello like stretches who are you um who are who I am what's my name you know
[译文] [Peter]: 你可以按“是”。然后一个 TUI(文本用户界面)会跳出来,因为你还在终端里,对吧?你想要一个好的体验,所以基本上就是为了那个做的一个小玩具。你会看到“醒来吧,我的朋友”。然后,我对模型进行了编程,我加了一个引导文件(bootstrap file),向模型解释它现在正在“出生”,它需要创造一个身份,以及一个包含用户价值观的“灵魂”。然后模型会反应:“你好……”(像是伸懒腰一样)“你是谁?……我是谁?我叫什么名字?”你知道那种感觉。
[原文] [Peter]: and this this is is like I've watched people do it and that's where the magic starts that's where that's where they're like they no longer think about I'm talking to to GPD4.2 no I'm now talking to my friend created Vajorn like a a unicorn with part of his name or like I'm talking to Claude uh and then it's like what what's important to you what do you do it's like curious i I programmed it to be like curious and then go through this bootstrapping phase and then it will actually delete the bootstrap file and create a a user.md with like information about you a soul.md with like all the core values and an identity with the like what's his name what's his core emoji what are the things that are like inside jokes and and but it's like evolving documents that it will maintain and like tweak as you interact with it
[译文] [Peter]: 我看着人们经历这个过程,这就是魔法开始的地方。在那一刻,他们不再觉得“我在跟 GPT-4.2 说话”,不,他们觉得“我在跟我的朋友说话”。有人创造了 "Vajorn"——像是一个名字里带着独角兽(Unicorn)元素的角色,或者就像我在跟 Claude 说话。然后它会问:“什么对你来说是重要的?你是做什么的?”它表现得很好奇,我把它编程为充满好奇心。经历过这个引导阶段后,它实际上会删除那个引导文件,并创建一个 user.md(关于你的信息)和一个 soul.md(包含所有核心价值观),以及一个包含它身份的文件——比如它叫什么名字、它的核心 Emoji 是什么、有哪些内部笑话(inside jokes)。这些是不断演进的文档,它会在与你的互动中维护和微调这些文件。
[原文] [Peter]: and then you it will just like send you a message on on WhatsApp and you just like suddenly you talk on WhatsApp like making this flow easy that was hard yeah also like even even get coming up with the idea of you know you you're not you're not editing the configuration because the agent can edit its own configuration you don't have to update anything because the agent can update itself you can literally ask your bot update yourself and it will fetch itself and update itself and come back like hey I have new features planning the technical giveaway so far that's the magic that's why that's why I
[译文] [Peter]: 然后它会在 WhatsApp 上给你发一条消息,你就突然开始在 WhatsApp 上聊天了。把这个流程做得如此顺滑是非常难的。而且,哪怕是这种想法——你不需要去编辑配置文件,因为 Agent 可以编辑它自己的配置;你也不需要更新任何东西,因为 Agent 可以自我更新。你可以直接对你的机器人说“更新你自己”,它就会去获取最新代码,自我更新,然后回来说:“嘿,我有新功能了。”让技术退居幕后,这就是魔法所在。这就是为什么我……
[原文] [Gergely]: But it feels it's very similar to what you would with PSP PDF cut right you kind of blended away the complexity of a PDF so it was just there you could rotate you could do yeah yeah even at the API level back then but it's a it's a bit bizarre like what what you described reminds me of this Black Mirror episode I just watched which is called Play Thing uh where it's a it's a digital little uh creature that creates of course it's black mirror so it has a black bit bit of a dark ending but but it it had it was also a game it also kind of feels you know we talked about how you you don't play as much games cuz you like but this also feels a little bit like a game right but it it's it's kind of like more connected with reality
[译文] [Gergely]: 但感觉这和你做 PSPDFKit 时非常相似,对吧?你某种程度上消除了 PDF 的复杂性,让它就在那里,你可以旋转,可以操作。是的,即使在当年的 API 层面也是如此。但这有点离奇,你描述的这个东西让我想起了我刚看的一集《黑镜》,叫《Play Thing》(注:可能是指《Playtest》或类似概念),里面有一个数字小生物……当然因为是《黑镜》,所以结局有点黑暗。但这感觉也像是一个游戏。你知道我们聊过你因为工作而不怎么玩游戏了,但这东西本身也感觉有点像个游戏,对吧?只是它与现实的联系更加紧密。
📝 本节摘要:
在本节中,Peter 提出了极具颠覆性的观点:传统的软件工程流程正在被 AI 重塑。他指出,现在的代码库设计不再是为了让人类读懂,而是为了让 AI Agent 更容易理解和操作。他提出了“Prompt Request”(提示词请求)的概念来取代传统的 Pull Request,因为查看“你是如何生成代码的(Prompt)”比查看代码本身更能反映解题思路。Peter 坦言,现在 PR 的代码质量普遍下降,因为大家都在“凭感觉编程”(Vibe Coding),所以他通常会重写提交的代码,将其“编织”(Weaving)进现有架构中。此外,他认为传统的 CI/CD 和代码审查(Code Review)正在消亡,取而代之的是本地的自动验证(Full Gate)和更宏观的架构讨论。
[原文] [Peter]: i design even on code bases I design the codebase not so it's useful it's easy for me so that it has to be easy for the agent I optimize for different things not always the things that I prefer but the things I know work the best and and and have the the least friction for those models because I just want to move faster and ultimately they have to deal with the code not me
[译文] [Peter]: 甚至在代码库的设计上,我设计的初衷不再是为了让我觉得好用或容易,而是为了让 Agent 觉得容易。我为了不同的目标进行优化,不总是为了我喜欢的,而是为了那些我知道效果最好、对模型来说摩擦力最小的方式。因为我只想跑得更快,而且归根结底,是它们在处理代码,而不是我。
[原文] [Peter]: everything has to be resold you know pull requests uh I see them more as prompt requests Now like I don't I I somebody opens a pull request I don't I lot I do say thanks and I think about the feature and then with my agent we start off with the PR and then I'll design the feature as I see fit
[译文] [Peter]: 一切都得重新定义。你知道 Pull Requests(拉取请求),我现在更多地把它们看作是“Prompt Requests”(提示词请求)。比如有人开启了一个 PR,我会说声谢谢,然后我会思考这个功能,接着我和我的 Agent 从这个 PR 开始,按照我认为合适的方式来设计这个功能。
[原文] [Peter]: I basically rewrite every pull request and and and v it in also also a lot of people let's just say the overall code quality of PRs went down a lot because people vibe code and and building a successful feature still needs a lot of a lot of understanding of your overall design and if you if you cannot do that you will have a harder time steering your agent and the output will be bad
[译文] [Peter]: 我基本上会重写每一个 Pull Request 并把它整合进去。还有,很多人……咱们直说吧,PR 的整体代码质量下降了很多,因为人们在“凭感觉编程”(vibe code)。构建一个成功的功能仍然需要对整体设计有深刻的理解,如果你做不到这一点,你会很难驾驭你的 Agent,输出的结果也会很差。
[原文] [Peter]: it's literally there's so many new words I use for like writing code now with those models which is so funny like weaving in code into an existing structure um and sometimes you have to like change the structure so it would fit
[译文] [Peter]: 这真的很有趣,我现在用很多新词来形容和这些模型一起写代码,比如把代码“编织”(weaving)进现有的结构中。有时候你必须改变结构,才能让代码“编织”进去。
[原文] [Gergely]: now imagine that you would hire one or two people to make it a small team how do you think in this world and you keep want to keep doing what you're doing how do you think things like code review CI CD would change
[译文] [Gergely]: 现在想象一下,如果你雇佣一两个人组成一个小团队,在这个新世界里,并且你想继续保持你现在的做法,你认为像代码审查(Code Review)、CI/CD 这样的事情会发生怎样的变化?
[原文] [Peter]: i don't I don't I don't care much about CI i Why why not you used to care a lot like a PSPDF kid you used to care a lot right and and I still do this there's value but I I have local CI i'm I'm a little bit I'm a little bit of DAH now that because because the agent runs the test right yeah and it's just way faster i don't I want to push on the on on the on the back on the P and then wait for 10 minutes to wait for for CI because you waited 10 minutes on the agent already
[译文] [Peter]: 我不太在乎 CI(持续集成)了。
[Gergely]: 为什么不?你以前很在乎的,就像在 PSPDFKit 时期,你非常在乎对吧?
[Peter]: 我现在依然认为它有价值,但我有本地 CI。我现在有点像 DHH(David Heinemeier Hansson)的风格,因为 Agent 会运行测试,对吧?而且这快得多。我不希望推送到后台,然后为了 CI 等上 10 分钟,因为你在 Agent 身上已经等了 10 分钟了。
[原文] [Peter]: if the tests pass locally we merge and then yes sometimes main slips a little bit but it's it's it's usually very close because maybe sometimes I forget the and the agents call it gate i don't know where that's coming from should I run full gate so now I call it gate with g full gate is like linting and building and and checking and running all the tests and I almost think it like because it's a it's a wall you know like it's like he calls the llinter and like the builder and the tester it's almost like a gate before my code goes out
[译文] [Peter]: 如果测试在本地通过了,我们就合并。是的,有时候主分支(main)会稍微出点错,但通常都很接近完美。因为有时候我也许会忘记……Agent 把它叫做“Gate”(门/关卡),我不知道这个词是从哪来的。它会问:“我要运行 Full Gate(全量关卡)吗?”所以现在我也叫它 Gate。Full Gate 就像是 Lint 检查、构建、检查和运行所有测试。我觉得这就像一堵墙,你知道吗?它调用 Linter、构建器和测试器,就像是代码发布前的一道关卡。
[原文] [Gergely]: and if you hired like one more person to work on this you probably wouldn't do code reviews either that's what I'm sensing you would you'll probably trust this person to run like like pick up your working style right even in Discord we don't we don't talk code we talk about architecture like big decisions like you still need to have style
[译文] [Gergely]: 如果你再雇一个人来做这个,你可能也不会做代码审查了,这是我的感觉。你可能会信任这个人,让他沿用你的工作方式,对吧?
[Peter]: 即使在 Discord 里,我们也不谈论代码,我们谈论架构,比如重大的决策,你仍然需要保持风格。
[原文] [Peter]: even even when I get a PR I'm actually more interested in the prompts than in the code I I ask people to please add the prompts and some do and I I read the prompts more than I read the code because to me this is this is a way higher signal of like how did you get to the solution what did you actually ask how much steering was involved then the actual out to me this gives me more idea about the output
[译文] [Peter]: 甚至当我收到一个 PR 时,实际上我对 Prompt(提示词)比对代码更感兴趣。我请求大家请加上 Prompt,有些人加了。我读 Prompt 比读代码更多,因为对我来说,这是一个更高信噪比的信号,能让我知道你是如何得到这个解决方案的,你实际上问了什么,涉及了多少引导,这比实际的输出更能让我了解结果。
[原文] [Peter]: or if someone wants a feature I ask for a prompt request like write it up really well because then I can just point my agent to the issue and it will build it so because because the the work is the thinking about how it should work and what the details are and if someone else does it for me I can literally say build and it will work
[译文] [Peter]: 或者如果有人想要一个功能,我会要求提交一个“Prompt Request”。把它写得非常好,这样我就能直接把我的 Agent 指向这个问题,它就会构建出来。因为真正的工作在于思考它应该如何运作以及细节是什么。如果别人帮我做了这部分思考,我真的可以说“构建”,然后它就能跑起来。
📝 本节摘要:
在访谈的最终章,Peter 为初入行的新人提供了宝贵建议。他认为在 AI 时代,最重要的特质是“无限的好奇心”。他鼓励新人利用 AI 这个“无限耐心的老师”去剖析复杂的开源项目,建立系统性的理解。他将现在的编程体验比作练习乐器或玩游戏,虽然入门艰难,但一旦上手就会让人上瘾,甚至让他现在的工作强度超过了当 CEO 的时期。在最后的快问快答环节,Peter 透露他最爱的电子产品竟然是一个廉价的安卓电子相册,而非最新的 iPhone,并分享了他通过健身和“物理断网”来保持理智的生活哲学。主持人 Gergely 最后总结了 Peter “用 Prompt 思考”和“闭环验证”的核心理念,预示着软件工程的未来变革。
[原文] [Gergely]: what would you advise a an experienced engineer right now who would you be excited to work with kind of either expertise projects would you look for for someone who sounds like who can work in this way or can pick up this way of working
[译文] [Gergely]: 你会给现在的资深工程师什么建议?你会对与什么样的人共事感到兴奋?你会寻找什么样的专业技能或项目经验,来判断某人是否能以这种方式工作,或者能学会这种工作方式?
[原文] [Peter]: someone who's active on GitHub and does open source and and someone where I have the feeling that they they love the the game the way you learn in this new world is by like trying stuff and it very much feels like a game where you improve your skills as you get better like like a like a music instrument you have to like keep trying
[译文] [Peter]: 我会找那些在 GitHub 上活跃、参与开源项目的人,以及那些让我感觉他们“热爱这场游戏”的人。在这个新世界里,学习的方式就是不断尝试,这感觉非常像是一个游戏,随着你水平提高,你的技能也在提升。就像练习乐器一样,你必须坚持尝试。
[原文] [Peter]: and I and I that I'm now this efficient and this fast and I don't know like I I think like the other day I had like 600 commits in a single day this is like completely nuts and it works like it's not it's not like there was there was a somebody did a code review and said like oh this is actually not slop and like yeah uh there's a lot of skill that went into yeah it's it's it's it's a lot of hard work but you need to play with the technology and learn
[译文] [Peter]: 我现在效率如此之高,速度如此之快。我不记得具体数字,但我想前几天我一天之内提交了 600 次代码(commits)。这简直是疯了,而且它是有效的。并不是说有人做了代码审查然后说“噢,这不是垃圾代码”。是的,这里面包含了很多技巧。这确实需要大量的努力,但你需要去“玩”这项技术,并在玩中学习。
[原文] [Peter]: i've never right now I've I've never I never worked more even even when I had my company i I've never worked so hard as I do now not because I have to but because it's so addictive and so much fun but also because right now I'm like using the moment where where this has traction
[译文] [Peter]: 我从来没有像现在这样……即使在我也经营公司的时候,我也从未像现在这样努力工作过。不是因为我不得不这么做,而是因为它太让人上瘾了,太好玩了。同时也因为我现在正抓住了这个势头正盛的时机。
[原文] [Gergely]: what would you recommend of of activities that they do things that they build or try and you know like do would you recommend on focusing on the fundamentals of software engineering on this on the agents kind of mixing the two
[译文] [Gergely]: 你会推荐新人做些什么活动?构建什么东西或者尝试什么?你会推荐他们专注于软件工程的基础,还是专注于 Agent,或者是两者的结合?
[原文] [Peter]: i would I would recommend them to be infinitely curious yes it's going to be harder to enter this market it's it's absolutely going to be harder and you need to build things to like gain experience i don't think you need to write a lot of code but you need to I don't know you know there's a lot of open source that is complex that you can like check out and learn and you have an infinitely patient machine that is able to explain you all the things so you can ask you can ask all questions why why was it built this way to like gain system understanding
[译文] [Peter]: 我会推荐他们保持“无限的好奇心”。是的,进入这个市场会变得更难,绝对会更难。你需要构建东西来积累经验。我不认为你需要写很多代码,但你需要……你知道有很多复杂的开源项目,你可以去查看、去学习。而且你拥有一个“无限耐心”的机器(指 AI),它能为你解释所有事情。所以你可以问所有问题,比如“为什么它是这样构建的?”,以此来获得系统性的理解。
[原文] [Peter]: but it requires real curiosity and I don't think universities right now are set up to teach you that in a in in a really good way this is usually something you discover through pain
[译文] [Peter]: 但这需要真正的好奇心。我不认为现在的大学有能力很好地教你这些。这通常是你通过痛苦才能发现的东西。
[原文] [Gergely]: all right so to to wrap up we'll do some rapid questions so I'll just ask and you tell me what's on your mind what's a tool that is not a CLI not an ID it can be physical that you you use you like you would recommend
[译文] [Gergely]: 好的,作为结尾,我们来做一些快问快答。我提问,你告诉我你脑子里的第一反应。有什么工具——不是 CLI,不是 IDE,可以是实物——是你正在使用、喜欢并推荐的?
[原文] [Peter]: i buy a lot of gadgets and many of them dust away but there's this one kind of crappy thing that was not expensive that gives me almost unlimited amount of joy and it's like this Android powered photo stand where I can upload pictures and where like it has an email address and friends can send pictures and it will just show pictures... it runs nward and it's terrible from the technology but but it gives me infinite number of joy because it is low tech that just shows pictures and reminds me of happy moments in my life and it was like 200 bucks and I don't know to be honest that gets me more joy than the latest iPhone i bought the iPhone 17 i still haven't unpacked it because I just in my head I wanted it but then I couldn't get around to it because it's just a hassle to like move the Sims around and I said like basically no no no no feelable benefit but like this little this little device gives me infinite joy
[译文] [Peter]: 我买了很多电子产品,很多都吃灰了。但有一个那种有点廉价、不贵的东西,给了我几乎无限的快乐。那是一个安卓系统的电子相册支架,我可以上传照片,它有个电子邮箱地址,朋友们可以往里面发照片,它就会展示出来……它跑的是旧版安卓,从技术角度看很糟糕,但它给了我无限的快乐,因为它是低科技产品,只是展示照片,提醒我生活中的快乐时刻。它大概才 200 美元。老实说,它给我的快乐比最新的 iPhone 还要多。我买了 iPhone 17(注:此处可能为口误或玩笑,目前最新为 16),但我还没拆封。因为我心里想要它,但我懒得去弄,换 SIM 卡太麻烦了,而且我觉得基本上没什么可感知的提升。但这台小设备给了我无限的快乐。
[原文] [Gergely]: what's something that helps you recharge outside of tech like just or just moving away from from tech and screens
[译文] [Gergely]: 有什么东西能帮你充电?在科技之外,或者仅仅是让你远离科技和屏幕的东西?
[原文] [Peter]: what keeps me sane even if I work crazy hours is going to the gym even better working with a a coach and leaving my phone in the locker and then I really have like a good hour where I just feel me and I and I'm like in the moment and I'm not distracted by notifications or tempted to like touch my phone like we need more time for this
[译文] [Peter]: 即便我工作时间长得疯狂,让我保持理智的是去健身房,最好是跟教练一起练,并且把手机锁在更衣柜里。那样我就拥有真正属于自己的美好一小时,我感觉到了自我,我活在当下,不会被通知打扰,也不会被诱惑去摸手机。我们需要更多这样的时间。
[原文] [Gergely]: well this was a super interesting conversation and it feels to me that how one person teams built software with AI is already completely different to what we've been used to one thing that really caught my attention is how Peter thinks in prompts and not pull requests and how he weaves in the code and no longer merges the code he doesn't find poll requests all that useful and would rather get prompt suggestions even on GitHub
[译文] [Gergely]: 这真是一场超级有趣的对话。我感觉单人团队利用 AI 构建软件的方式,已经与我们习惯的方式完全不同了。真正引起我注意的是 Peter 如何“用 Prompt 思考”而不是用 Pull Request(拉取请求)。他是如何将代码“编织”进去,而不再是合并代码。他觉得 PR 没那么有用,甚至在 GitHub 上也宁愿接收 Prompt 建议。
[原文] [Gergely]: another thing that struck with me was Peter's emphasizing how important is to close the loop as Peter explained the reason AI is so good at coding but often mediocre at writing is because you can validate code you can compile it run tests check the output so the secret to making AI system development work well is to design your system to close the loop and have the AI run the test
[译文] [Gergely]: 另一件让我印象深刻的事是 Peter 强调“闭环”(close the loop)的重要性。正如 Peter 解释的那样,AI 之所以擅长编程但在写作方面表现平平,是因为你可以验证代码——你可以编译、运行测试、检查输出。所以,让 AI 系统开发高效运作的秘诀,在于设计你的系统以实现闭环,并让 AI 去运行测试。
[原文] [Gergely]: finally we should note that Clawbot is more of a YOLO project than most production apps so take the approaches that we discussed with a grain of salt at the same time I do think that a lot of what Peter does could well spread to building production code except review and validation will become a much more important step in those projects
[译文] [Gergely]: 最后我们需要注意,Cloudbot 相比大多数生产级应用,更像是一个“YOLO 项目”(You Only Live Once,意指随性、大胆的实验项目)。所以对于我们讨论的这些方法,请持保留态度(take with a grain of salt)。但同时,我确信 Peter 所做的很多事情将会扩展到生产级代码的构建中,只不过在那些项目中,审查和验证将成为更重要的步骤。
[任务完成汇报]
至此,整篇访谈的 14 个章节 已全部整理完毕。这份文档完整记录了 Peter Steinberger 从黑客少年、创业 CEO 到 AI 时代先锋开发者的转变,以及他对未来软件工程的深刻见解。
如果您需要将这些内容导出为单一文件,或针对某个特定话题(如“闭环理论”或“Cloudbot 架构”)进行深度总结,请随时告诉我。