2025-03-15 08:00:00
理论上,一个平台包揽文本内容的创作、分发和消费应该会很高效,就像早期的 Twitter。但这种模式存在着根本性的弊端:不可控性。这种不可控体现在多个方面:
正因为这些潜在的风险,我对新兴的类 Twitter 平台始终保持警惕。即使它们目前看起来符合你的需求,但这些不可控因素就像悬在头上的达摩克利斯之剑,随时可能落下(Twitter 到 X 的转变就是一个例子)。
既然不能完全依赖于某个平台,那么将创作、分发和消费环节拆解开来,或许是更理想的方案。
文本内容创作主要指以文字为主,富媒体为辅的形式,例如写博客、发微博等。在工具选择上,可以考虑以下几种方案:
对于有编程基础、有文本内容创作需求、追求高度自由的用户,搭建独立博客是一个不错的选择。市面上有很多优秀的开源博客工具可供选择。在托管方面,可以选择 VPS(虚拟专用服务器)或类似 Vercel 这样的 Serverless 平台。
如果你想要一个独立的博客主页,希望有一定的可定制性,能够方便地撰写文本内容,但又不想花费太多精力在代码和服务器维护上,那么付费博客工具是理想的选择。以下是一些值得考虑的服务:
免费博客的自由度相对较低,但对于只需要简单记录和分享的用户来说,也是一个不错的选择。BearBlog 和 Write.as 都是值得信赖的选择,它们功能有限,界面简洁,但能够满足基本的写作需求。
现在内容分散在不同的博客平台上,如果想要方便地了解这些内容的更新,逐个访问网页效率太低。如果有一个工具可以将这些内容聚合起来,并在有更新时及时推送,将会非常方便。这样的工具确实存在,例如 NetNewsWire。使用者甚至不需要了解 RSS 的原理,只需将网页地址添加到订阅源即可。如果博客提供了全文输出,用户甚至可以直接在 NetNewsWire 中阅读完整内容。
这听起来很完美,但实际使用中仍然存在一些问题。
并非所有网站都提供 RSS 支持(如果对 RSS 不熟悉,可以点击此处了解)。例如,X 平台就不提供 RSS 输出。原本这可以通过解析网页内容来解决,但一些大型平台出于数据保护等原因,开始限制匿名访问,例如要求登录后才能查看内容。此外,一些 App 弱化了 Web 功能,将重心放在移动端,也增加了 RSS 获取的难度。
我们往往没有足够的时间和精力去主动发现和管理自己感兴趣的内容。如果没有良好的发现机制,就可能错过有价值的信息。这并非 RSS 的职责,而是各个平台推荐系统所擅长的。然而,正是因为意识到信息发现的重要性,我们常常沉迷于无休止的 “刷” 内容,导致 “发现” 本身成为了目的,而忽略了 “发现” 之后的行动。
RSS 只负责抓取最新的内容,不提供互动功能。如果想要给作者留言,需要跳转到对应的网站。但并非所有博客都提供评论功能,即使提供,想要了解作者是否回复,也需要专门访问该网站。这使得互动体验不够便捷。
因此,一旦你决定跳出集创作、分发和消费于一体的平台,就会发现,在内容分发和消费方面,现有的工具支持仍然不够完善。曾经有一款产品能够较好地解决这些问题,那就是 Google Reader(点击此处大致了解 Google Reader)。Google Reader 在 RSS 工具的基础上,支持关注用户、分享 NewsItem 、对 NewsItem 进行评论,同时又足够简洁。这些功能恰好解决了信息源闭塞和互动不足的问题。尽管已经过去了十多年,我仍然认为 Google Reader 是一款非常棒的产品,而目前还没有完美的替代方案。
2025-02-28 08:00:00
不知道从什么时候开始,对坐飞机开始有种难以言说的恐惧。害怕被一个钢铁巨鸟带到离地万米的高空,害怕那无法预知的颠簸,更害怕自己对此无能为力。但生活又是充满着不得不飞的时刻,这反而促使我开始了一场逆向思考:假如我不幸在某次飞行中丧生,回顾这一生,是否留有遗憾?
答案是肯定的。太多经典的书籍和影视剧还未来得及细细品味,太多让自己满意的作品还未曾真正诞生,太多互相欣赏的人们还未发展出牢固而深厚的友谊…… 这种「临终回顾」式的思考,出乎意料地有效。最好是在一个安静、不会被打扰,也不会被电子设备干扰的场景下去进行,比如洗澡的时候。
这些答案,宛如散落在沙滩上的贝壳,指引着我窥见自己内心深处的价值观。即使从未系统地思考过「价值观」这个概念,我们也会在潜意识中,对什么事情值得做、什么事情不值得做,拥有一套隐形的价值判断标准,也就是一套隐式的价值观。
将这套隐式的价值观显式化,尤为重要。只有这样,我们才能清晰地认识到自己长久以来的做事标准,是否真的与自己内心深处的期望相符。例如,我一直认为「学习」很重要,但如果我把大部分时间都花在刷短视频上,那么我的行为就与我的「理想价值观」产生了偏差,「学习」或许在「实际价值观」序列中,但可能排在「享乐」之后。
更进一步,我们需要深入挖掘和细化这些价值观。仅仅停留在「读书」、「创作」、「友谊」这些模糊的概念上还是不够。问自己:我想读哪些类型的书?是文学名著,还是历史传记?为什么这些书对我来说有价值?是因为它们能拓展我的视野,还是能给我带来精神上的慰藉?我想在哪个领域进行创作?是写作、绘画,还是编程?「满意」的标准是什么?是得到认可,还是实现自我表达?我期望的友谊是什么样的?是互相支持,还是共同成长?
这些深入的追问与解答,能够帮助我们更清晰地界定个人价值观,并将其转化为可执行的具体行动。 例如,在阳光明媚的春日午后,当许多人选择外出踏青时,你却心甘情愿地坐在咖啡馆一隅敲击代码,因为对你而言,创作的价值超越了踏青的乐趣。 又比如,你选择观看一部制作精良的美剧,而非沉溺于碎片化的短视频,因为你认为美剧所蕴含的艺术价值远高于后者。 当生活中的种种选择与内在价值观紧密相连,而非盲目随波逐流时,我们更容易收获一份由内而外的踏实感与满足感。
值得注意的是,不同的价值观之间往往存在潜在的冲突。 例如,对事业成功的极致追求,可能不可避免地挤压陪伴家人的宝贵时间。 此时,我们需要认真权衡: 在不同价值观之间,究竟哪个对我而言更为重要? 为了追求某些核心价值观,我愿意舍弃什么? 又该如何巧妙地平衡不同价值观,以便获得更加幸福与完整的人生体验? 对价值观进行优先级排序,能够帮助我们在面临人生抉择时,做出更贴合内心真实期望的明智决策。
有了价值观列表和对应的序列,还需要将这些显式化的价值观融入到日常生活中。审视我们的时间分配,看看我们每天/每周/每月花在哪些事情上的时间最多?这些事情是否符合我们的价值观?基于我们的价值观,设定一些长期和短期的目标。例如,如果我认为“学习”很重要,可以设定每周阅读多少小时。在面临选择时,问问自己:这个选择是否符合我的价值观?它会让我更接近我想要成为的人吗?
「定期反思」也不能少,看看行为跟价值观是否保持一致。如果发现偏离了方向,及时进行调整。这注定是一场持续探索与动态调整的旅程,没有放之四海而皆准的绝对答案。 重要的是,在不断地自我反思与成长中,逐步找到最契合自身本性的理想生活方式。
回到最初的恐惧,正是这种对生命短暂的感知,才更加迫切地思考人生的意义。 「以终为始」的核心在于:想象你在生命的终点回顾一生时,希望看到的是什么:做成了哪些事?去过哪些地方?陪伴子女幸福成长?抑或只是安安稳稳地过完这一生?如果上天把你的一生压缩成 10 分钟的短片,播放给来参加你追悼会的人看,你会觉得羞愧还是骄傲?
理想的人生,应该是随时死去,都不留遗憾。
2025-02-27 08:00:00
大概半年前,我开始接触 AI 编程助手,例如 Cursor 和 GitHub Copilot。简单试用后,感觉不太顺手,就暂时搁置了。当时我的感受是:
Cursor 的存在感太强了,用起来不太习惯,还是更喜欢 VSCode。
但随着 AIDE 和 AI 编程插件越来越多地出现在视野中,我隐隐意识到这股趋势不可忽视,应该再次尝试。于是开通了 GitHub Copilot 的付费版,开始在一个实际项目中深入使用。
使用一段时间后,我的整体感受是:AI 辅助编程将会是不可逆转的趋势。越早掌握一款得心应手的工具,越早完成与 AI 的磨合,对程序员的个人发展越有益。
我实践的项目是一个基于 Tauri 2 的 Mac App。粗略估计,其中大约一半的代码是由 AI 辅助生成的。例如,编写一个 React 组件来展示 Playlist 下的 Videos,我先是构建了页面的基本结构,然后逐步细化指令,比如为每个 Video 添加序号,设置鼠标悬停 (Hover) 样式等等。这种感觉就像雇佣了一位高效的实习生来协助完成工作。
可能是 GitHub Copilot 的能力有限,或者我的使用技巧还不够成熟,亦或是当前 AI 编程助手普遍的现状,我发现在面对一些需要「跳跃性思维」才能解决的复杂 Bug 时,这些工具能提供的帮助非常有限。比如我曾遇到一个问题:主题切换在开发模式下运行正常,但部署到生产环境并重启应用后就会失效。这个 Bug 有点隐蔽,结果 AI 也如期望那样未能提供有效的解决方案。再比如,如何将 devtools
工具带到生产环境,同时禁用默认的 Cmd+Shift+I
快捷键?AI 给出的方案都不 Work,最终还是翻了下 Tauri 的源码才找到的思路。 目前看来, AI 编程助手更擅长执行指令明确的任务,根据上下文生成代码片段,但在复杂问题分析、根因定位、以及需要创新性解决方案的场景下,仍然需要人类程序员的深度思考和经验判断。如果未来的 AI 通过更高级的算法和更完善的知识库,模拟甚至超越了「跳跃性思维」,这又会是另一个课题,不过目前看来,还不太需要担心。
「信息滞后」也是一个不可忽视的问题(Cursor 在这方面表现稍好)。Copilot 似乎缺乏有效的机制来实时获取和更新最新的技术文档,因此它生成的代码有时会使用过时的 API。在 Tauri 2 项目中这个问题就比较明显,因为 Tauri 2 的 API 与 Tauri 1 相比变化很大。我经常需要在 AI 生成的代码基础上,手动查阅最新的 API 文档并进行替换。这个问题 Cursor 解决得更好一些,但有时也会出现新旧 API 混用的情况。
基于这次 AI 辅助编程的体验,我开始认真思考:AI 辅助编程的崛起究竟意味着什么?它将如何重塑软件开发行业?
如果一个没有编程经验的人,通过 AI 辅助编程工具就能开发出像模像样的产品,那么还需要程序员吗?如果对软件产品的要求仅仅停留在「可用」的层面,那么程序员的价值确实会受到挑战。但在实际软件开发过程中,我们不可避免地会遇到难以调试的 Bug,或者需要突破常规的创新思路才能实现的需求。目前的 AI 工具对复杂上下文的理解还不够深入,在处理复杂问题时常常显得力不从心。如果完全放任 AI 自由编程,结果很可能是 Bug 没解决,代码反而变得更混乱,维护性更差。
在注重协作的组织环境中,程序员被 AI 工具淘汰的速度可能会相对放缓。有相关工作经验的同学应该都有体会,在日常工作中,程序员每天的代码产出量其实很有限,相当一部分时间都花费在需求沟通、Bug 修复、梳理遗留代码、编写文档、Oncall、处理依赖冲突、等待编译构建结果等非直接编程相关的工作上。直接将 AI 引入现有复杂项目,一方面可能存在代码泄露的安全风险,另一方面,AI 由于缺乏对遗留代码完整上下文的理解,可能会生成不符合项目规范或非最佳实践的代码,反而增加维护成本。毕竟最终对代码质量和线上问题负责的仍然是人,而不是 AI。如果线上出现重大事故,总不能给 AI 记个 P1 吧。因此,在注重团队协作和代码质量的大型组织中,程序员受 AI 编程工具的直接冲击可能相对较小。但这种状态能维持多久还不好说,当企业看到 AI 带来的生产力提升潜力后,肯定会围绕 AI 进行组织架构和工作流程的效率革新,届时程序员群体必然会受到影响。
AI 编程的崛起,不是程序员的末日,而是一次进化。AI 不会取代所有程序员,但它将深刻地改变程序员的角色和技能要求。
首先要有危机意识,拥抱变革。有了危机感,才能激发学习和改变的动力。如果仍然想从事编程行业,那么首要任务是积极学习并掌握一款 AI 编程工具(Copilot 相对轻量,可以作为入门级选择)。要努力做到与 AI 工具默契配合,充分发挥其代码生成和辅助功能,从而显著提升个人生产力,并将节省出来的时间投入到更有价值、更具挑战性的事情上。
接下来,可以认真考虑未来的职业发展方向。如果希望在编程领域持续深耕,可以着重提升高级程序员应具备的核心技能,例如系统设计、复杂业务逻辑分析、问题分解与抽象、疑难 Bug 调试与根因分析、系统性能优化、创新技术方案设计等等。在这个学习和提升的过程中,也可以借助 AI 工具来提高学习效率,例如在阅读学习优秀的开源代码时,可以利用 AI 辅助代码理解,梳理代码逻辑,解答设计思路上的疑问。
如果对产品方向更感兴趣,或者有创业的想法,则可以投入更多时间在产品设计、用户研究、市场分析等方面,利用 AI 工具快速构建 MVP原型,快速验证产品想法,探索商业模式。
可以将 AI 工具使用者与 AI 编程工具之间的关系比作「交响乐团的指挥家与乐团」。程序员如同经验丰富的指挥家,拥有清晰的愿景和目标,负责软件系统的整体架构和模块设计,指导和协调 AI 工具(如同乐团)高效、高质量地完成代码编写(如同乐曲演奏)。AI 工具如同训练有素的乐团,拥有强大的代码生成和辅助能力,但需要指挥家的明确指令和专业引导才能演奏出优美的乐章。
不同的 AI 编程工具都有各自独特的功能和特点,但与它们交互的核心要点是共通的:精细化任务分解和指令设计,以及代码 Review。 在人机协作的新范式下,程序员不仅需要与 AI 工具高效沟通,还需要与团队成员更好地协作,共同利用 AI 提升团队的整体研发效率和代码质量。
半年前我初次尝试 AI 编程助手效果不佳,也是因为没有掌握与 AI 编程工具有效沟通的精髓。可以将这些 AI 工具视为响应迅速、随叫随到的「外包程序员」,每一次代码改动都相当于一次 GitHub 的 Pull Request。要确保每次改动的目标明确具体,代码改动量控制在可审查的范围内。最终目标是代码虽然不是完全由自己编写的,但对代码的整体逻辑和关键细节都非常熟悉,这样即使 AI 无法解决某些深层次的 Bug,自己也能凭借对代码的深入理解,逐步分析和定位问题根源。
AI 辅助编程的崛起既是挑战,也是机遇,基本上是不可逆转的趋势。如果半年前有人这么跟我说,我可能会将信将疑,但现在对此更加确信。即使只是体验了入门级的 Copilot,也已经真切感受到了它带来的效率提升。尽早找到适合自己的 AI 编程工具,积极完成与 AI 的磨合过程,然后将效率提升所节省出的宝贵时间,投入到扩展和丰富自身技能库上,不断学习和掌握更高级的技能,让自己成为拥抱 AI 浪潮的弄潮儿,而不是被技术浪潮无情淘汰的落伍者。
2024-12-28 08:00:00
这本书相信大家都有听说过,我也是拖拖拉拉,直到最近才读完。书的主题是种族歧视,但又不止于此,也会涉及到家庭、教育、社会等方面的问题。书中的故事发生在美国南方的一个小镇,主人公是一个律师,他接手了一个案子,为一位黑人辩护。现在看来不觉得有什么,但当时的美国社会(尤其是南方)是很敏感的,黑人和白人之间的界限非常明确,几乎不可逾越。就像拿锤子去砸一面墙,一锤子下去,墙可能没什么变化,但你知道这一砸一定松动了墙的某些结构。
经典的书就是有能力把沉重的话题用想对轻松的方式呈现出来。这本书就是这样,虽然讲的是理我们较远的种族歧视,但是书中的人物形象、情节安排都很有趣。尤其是通过孩子们的视角来观察和讲述这个故事,更增添了一份天真和纯粹。书中的一些情节非常有画面感,比如斯库特躺在轮胎里,滚到了怪人布·拉德利家的院子;从树洞接受到了布拉德留下的种种礼物;用钓鱼竿给布·拉德利写信;自编、自导、自演跟拉德利有关的角色扮演游戏等等。
小女孩的父亲,阿提克斯·芬奇,是一位正直、善良、有原则的律师,他不仅在法庭上为黑人辩护,也在日常生活中身体力行地教导孩子们什么是正义和公平。他没有用空洞的说教,而是用自己的行动给孩子们树立了榜样,让他们在潜移默化中理解了人性的复杂和社会的残酷。
书中另一个令人印象深刻的角色是「怪人」拉德利。他被小镇居民视为异类,被孩子们当成鬼怪,但随着故事的推进,你能了解到他内心的善良和孤独。他就像一只被误解的知更鸟。而「杀死一只知更鸟」的隐喻,也正是指代了这种对无辜者的伤害,以及社会对弱势群体的偏见和歧视。
2024-12-02 08:00:00
想象你与一个渣男/女坠入爱河,对方不仅掏空了你的金库,极大地败坏了你的名声(虽然是间接地),还害你坐了两年牢,现在你在牢里要给 Ta 写封信,你会怎么写,基调是怎样的?
这本《自深深处》(from the depth) 就是王尔德在狱中给波西写的信,你能完全感受到他对文字那炉火纯青的驾驭能力(虽然中间隔了一层翻译)以及其中流淌着的真切情感。大概有剖析、反思和哲思这几部分。
剖析:你(波西)是一个怎样的人(虚荣、浮浅、心怀怨恨、贪图享乐,但与我又有不可抗拒的吸引力);我是一个怎样的人(视艺术为至高存在,享受与志同道合者的交谈以及由此催生的友谊)。
反思:为什么自己会从神坛跌落到身败名裂的境地(对自己掌控力的过度自信,对你的过度溺爱);为什么明知你的存在会切断自己与艺术的连接又无法舍你而去(你身上有一种不可抗拒的魅力,自己的软弱导致无法割舍)。
哲思:关于爱(恨就像杂草很容易就长出来了,而爱则像蝴蝶兰,需要精心打理才能存活长大,要学会爱);关于痛苦(所有的痛苦都有意义,提供了新的思考点,是更完整的体验);关于做自己(一个人必须完全是、绝对是他自己,才会过基督那样的生活)。
这本书可以让你对王尔德有更全面的了解,同时书中的一些思考也能带来触动和碰撞,值得一读。
2024-12-01 08:00:00
媳妇儿在小红书上种草了长龙航空的随心飞,于是怂恿我一起买了这个服务。然后就开始寻找目的地,本着第一趟就要赚回本的理念,选择了距离杭州近 5000 公里,中国最西部的城市:喀什。
我对这个城市只停留在「听说过」的阶段,对于当地的美食、美景、风土人情、历史典故等毫无概念,但既然媳妇儿选择了这里,就只能陪着一起去了。当时的心情没什么波动,甚至有点排斥,因为一想到要坐那么久的飞机(我对坐飞机这事有较大的心理障碍,确切来说是「高空」,所以摩天轮也不是我的菜),还要离开熟悉的地方一段时间,就会怀疑这么折腾到底值不值。
结果是,非常值。我跟媳妇儿都已年近 40,没有孩子,平时也都是各忙各的,交集主要是生活上的一些事。当缺少比较强的 hub 来连接彼此时,两人之间的连接感就容易变弱,而旅行是一个很好的可以加强连接、增进友谊的契机。
目的地的选择很重要,最好是双方都不太熟悉的。如果这个地方给两人带来的新奇感程度不一,就不容易有「共振」的体验,而「共同的情绪体验」是亲密关系中很重要的一部分。比如手抓饭,如果都是第一次吃,就能分享这道美食带来的惊艳。还有就是「弱攻略依赖」,也就是不用事先花大力气做好功课,也能有不错的体验,不会有太大的坑。
喀什是个很好的目的地,一方面是这里的美食通常是我们没怎么接触过的,而且确实很不错(印象最深的是石榴,榨成汁后不仅好喝,还营养丰富),另一方面喀什古城很好逛(虽然是淡季,很多店面都关门了,但古城的底蕴还在,在其间溜达还是挺舒适的,尤其是太阳照常上班的日子),还有就是这里的风土人情跟东南沿海差异很大,这种差异也是一个很好的切入点,成为两人茶余饭后的聊天话题。这里的人通常有自己的小买卖,比如开个饭馆、卖当地特产、烤肉等等,有些硬需求常年不变,就会出现从爷爷辈甚至爷爷的爷爷传下来的手艺,比如「爷爷的爷爷的爸爸的囊」、「祖传兄弟凉粉」。
临走的前一天,我们去「爷爷囊」那里,买了四个香菜囊,不远万里(literally),从喀什带到了杭州,算是对这趟旅行的一些回味😂。