普通视图

Received before yesterdaypseudoyu

28 岁的自白:去找寻自己

2025年6月6日 10:24

前言

yearly_review_28

现在是 2025 年 6 月 6 日,我 28 岁了。

坐在日本东京錦糸町(Kinshicho)酒店 18 楼的窗前,抬眼便能看到東京晴空塔(Tokyo Skytree)的落日,新婚旅行的闲适与年龄增长一岁的复杂感受交织在一起,很奇妙。

东京爱情故事

“那一天那一刻在那里,如果我不曾与你相遇,我们将会永远是陌生人” —— 《東京(Tokyo)ラブ(Love)ストーリー(Story)

《东京爱情故事》可以说构筑了我对日剧、都市生活乃至爱情观的最初印象,因此前两天学姐问我生日当天想在东京哪里过时,我几乎毫不犹豫地说了东京塔,想走近他们热烈的昭和时代都市爱情中。

刚看东爱时还很小,对爱情与生活都只是懵懂,却依然被莉香纯粹、浓烈而不加掩饰的爱所感动,内心也暗自向往着这样可遇不可求的爱情。

DSCF0900

而在这过去的两年里,我从《周报 #43 - In the Mood for Love》恋爱,到《周报 #80 - 关于求婚、爱情与婚姻》求婚,再到《周报 #87 - 我们主持了自己的宝可梦婚礼,还为它办了一个展》婚礼,似乎生活中的一切美好都这样悄然降临在我的身旁,幸福之余也常常有些后怕 —— 如果两年前的那个周五我没有去北京,如果我之前没有去香港,抑或是如果我们完全不曾相遇,我们的人生会是怎样呢?

有太多“如果”或是别的可能性,但有时候爱情就是这样倏地发生了,并不是什么命中注定或是缘许三生,而是恰好在某个瞬间,心跳与灵魂的旋律恰好落在同一节拍上,于是,时间定格。

似乎逐渐也更加理解到了东爱中所表达的,都市中最为人津津乐道的浪漫,其实就是巧合的浪漫,我们在某个节点相遇,牵起对方的手,便已经是最大的幸运。

去找寻自己

DSCF0843

学姐在婚礼誓词中提到,不希望丈夫这个身份或是枷锁束缚着我,希望我能更多去找寻自我。

而步入婚姻后的生活,由于难以避免地更多从“我”变为“我们”,虽然也说不上有什么很具体的目标改变或是状态变化,但还是隐隐地多了一份无形的责任与压力。

我们的生活是纯粹而美好的,我们也幸运地能够彼此理解和支持对方想做的事,但人要有所求就也需要有所失,月亮与六便士的抉择也时而在脑中浮现,可能也不至于到烦恼,但思考中依然会多出一些更为沉重的维度,常常需要自己去消化。

而另一方面,和自己没有时差的那个人同行,构筑着一种亲密关系,生活具体而扎实,却也会交织着另一种“孤独”,因为知道对面的那个人会接纳自己的每一面,会尽力去共情和感受,有时反而会更害怕将这些负能量传递给对方,这样有时却又会拉开彼此的距离,成为关系中的刺,这似乎是一个无时不刻都存在却又无解的婚姻命题。

爱很美好,但婚姻复杂,我希望我们的眼中里常驻着彼此,却也不愿一个人的身影将另一个人的视线挡住,而少了自我消解或是倾听自我回响的空间。

结语

每年生日都还是留下了一些文字记录,有时也会回头看看这几年成长与思考的轨迹:

似乎文字也让我从混乱偶然的生活中发现了一种必然与永恒,有些许妥协,但幸而未曾停止追寻,也从《23 岁的自白:去追寻意义》中执着于人生意义逐渐回归到了自我本身,也找到了与自己携手共度余生的那个人,细细数来,生活已然给予了我太多馈赠。

祝 28 岁的自己,快乐。

  •  

周报 #96 - 基于 Roo Code/Cursor 的 iOS 开发工作流

2025年5月20日 09:35

前言

weekly_review_96_new

本篇是对 2025-05-132025-05-18 这周生活的记录与思考。

记录一下学习 iOS/SwiftUI 开发的一些资源和基于 Roo Code 与 Cursor 的 iOS 开发环境搭建和工作流。

iOS/SwiftUI 开发

学习资源

最近工作中有涉及一些 iOS 相关的开发,虽然之前做「TheWan App」的时候也是用的 SwiftUI,但因为是很个人的项目,基本上就是完成了功能,并没有追求什么最佳实践。所以这次就趁着五一重新补充了一下基础知识。

  • Apple - SwiftUI,官方文档。
  • Apple - SwiftUI Tutorials,Apple 官方也有一个交互式的 SwiftUI 教程,关于布局、动画相关的相关概念会更加形象。
  • SwiftUI 新手入門課程,ChaoCode 的入门教程应该算是最简洁易懂的教程了,难度不高但是讲解得很清晰,看完后基本上就能做一些小项目了。
  • CS193p - Developing Apps for iOS,Standford 的一门很经典的 iOS 开发课程,2023 年的课程也转向了 SwiftUI,质量很高,看完后能更多理解 MVVM 设计模式和一些更底层的概念。
  • 肘子的 Swift 记事本,有很多精品的文章,关于 Swift Data 的最佳实践我都是参考的他的博文。
  • 13 的 iOS Developer+,平时有看他的 Newsletter,他也正在连载 SwiftUI 的教程,在考虑学习深入一点之后订阅学习。

搜索一些具体的概念、实践时可以直接 Google 搜索,能查到一些 Medium 或其他平台上的文章,参差不齐,不过目前还是比 LLMs 生成的答案靠谱多了,唯一需要注意的就是甄别一下时效性,很多老版本的实践可能并不适用。

开发环境搭建

xcode_completion

支持 Apple Intelligence 的 macOS 会有一个内置的 Predictive code completion,会下载一个 2.5G 左右的本地模型,在没网的时候可以使用。

xcode_copilot

但比起这个本地模型,GitHub Copilot 为 Xcode 提供的官方插件更强大,使用起来除了补全,也有一个 Chat 栏,可以很方便地指定 Xcode 中正在打开的一些文件进行提问,也支持 Claude 3.7 Sonnet Thinking 等最新模型,不过目前还没提供和 VS Code 中类似的 Agents 功能。

但习惯了 Cursor 的 Agents 模式后,仅仅通过 Xcode 中的 Chat 辅助开发已经有些不够用了,好在 Cursor/VS Code 也通过一些插件对 SwiftUI 提供了一些支持 ——

首先是安装一些命令行工具:

可以通过 brew 一键安装或在上述 GitHub Repo 中分别安装

brew install xcode-build-server xcbeautify swiftformat

Cursor/VS Code 中需要安装两个插件:

上述依赖都安装完成后

  1. 使用 Cursor 打开项目,需要与 xx.xcodeproj 同级目录
  2. Cmd + Shift + P 调出命令面板,输入/检索 Sweetpad: Generate Build Server Config,选择当前项目
  3. 稍等片刻,会在当前项目根目录下生成一个 buildServer.json 文件

cursor_sweetpad

点开 🍬 图标的侧边栏插件,在项目对应的 schema 上点击 build,选中模拟型或是已连接的实机,会自动编译并运行,就可以实现完全不打开 Xcode 也能进行开发了。

现在再点开所有的代码文件,也不会再出现 imports 错误等一片红的报错,所以再使用 Cursor/Roo Code Agent 进行开发时,也会更准确。

基于 Roo Code + Cursor 的开发工作流

swift_cursor_roocode

在 iOS 开发过程中,或许是因为上下文长度和模型语料的原因,我发现通过 Roo Code 插件配合 gemini-2.5-pro-preview-05-06 模型在一些更大的功能模块拆分、重构等场景下效果显著好于前者(当然,按量计费 token 消耗也夸张很多)。

所以我目前的工作流是通过采用 roocode-workspace 这个项目先让模型理解项目结构并生成 Memory Bank 文件供后续使用;在一些大功能的开发上尽可能多地提供官方文档、博客和自己的 prompts 让 Roo Code 进行开发,同时自己修复一些逻辑性的 bug。

cursor_agents_ios

最后如果有一些比较复杂的报错或 lint error,可以拆分成小的任务单元使用 Cursor + Claude 3.7 Sonnet Thinking 进行修复,虽然是两倍速率消耗,但生成代码的可用性还是更强一些。

目前有几个大的需求都是通过这个工作流辅助开发的,效果还比较满意。

有趣的事与物

输入

虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。

我把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。

收藏

文章

视频

电影

  • 我仍在此,久违的在影院看的电影,不得不说因为和巴西友好交流的政治原因使得这部政治性指向明显的(左翼、暴力)的片子能在国内院线上映也是一件很微妙的事...

剧集

音乐

  •  

周报 #95 - All AI 与 No AI

2025年5月19日 11:02

前言

weekly_review_95

本篇是对 2025-05-052025-05-12 这周生活的记录与思考。

这周看到一些有意思的关于 AI Coding 的思考或是讨论,也结合着自己 AI 使用的经历来聊一聊想法。

All AI 与 No AI

AI 与自我

最初是看到了一篇言辞颇为激烈的文章「AI 正在让人变得前所未有地自以为是」,其中有这样几段话 ——

ai_ego

虽然我同样对一些过度鼓吹 AI 从而达成自己个人营销目的的个别“网红”也有些反感,但并不觉得“程序员”一词需要刻意构筑一道门槛来将一些非科班或是技术爱好者拒之门外。

我大学时也是与代码毫不相关的文科类专业,当时即使真的只是用 python 写出一个冒泡排序也会让我感受到奇妙,第一次接外包单子给一个公司用 php 做官网时的感受至今依然记得,那是我第一次作为程序员完成的作品,或许现在看来确实并不一定如一个实习生所能做到的,但依然不妨碍我从中获取的成就感。

甚至也很羡慕现在的人,有了 Cursor 这些 AI 工具加持,可以做出许多复杂度远远高于自己当前知识储备的应用,并不一定是逐行都理解,但想法到实现的路径早已被大大缩短,模块化设计、模型、需求调整这些也会在 AI 写码的过程中融入开发者自身的思维。

编程并不是塞尔达的大师之剑那样一个需要费尽千辛拔出来的荣耀的象征,而更多是普罗米修斯传递的火种,并不稀有,但对世界的运作改变深远。

ai_renaibao

但还是希望像「AI 编程」 vs. 「热奶宝」文中所说的那样,希望对编程毫无热情而只把 AI 编程作为流量密码的人少来污染这个行业了。

NO AI

polebug_ai

看到并且也深切感受到了对于过度依赖 AI 造成的焦虑或是恐慌,我现在同时用两个 Cursor 账号、一个 Windsurf,一个 v0.dev,这些 IDE 或是工具的 Agent 模式已经成为了我想要实现一个新功能时的本能反应,也已经太久太久没有依赖搜索引擎和官方文档本身(除了 SwiftUI,没办法,LLMs 语料太少了)。

确实会有一种很矛盾的感觉,一方面对自己所能开发的领域、边界有了更多信心,可以开发前端、iOS 甚至是各种之前并不了解的技术栈;而另一方面,对于自己离开 AI 后独立写代码的信心在显著下降,连带着自己独立思考的能力。

ai_code_wwwyesterday

倒不至于说对 AI 生成的代码有多少羞耻感,只是确实比起自己敲的代码,少了些许“真实感”,不过我想随着 LLMs 更快速的发展以及自己的工作流中更好地与其融合,这种感受也能慢慢地有所缓解。

而看到 No AI 的实践,我甚至想相反地去实践 All AI,在一些 side project 或者个人项目中完全用 AI 去实现,用 AI 修复 AI 产生的 bug,而自己在其中去探索工作流的优化,看看实践了一阵子后究竟是 No AI 还是 All AI 所带来的成就感更高,或许也很有趣。

AI 与思考能力

但我对于非编程类的 AI 实践却有些趋于保守,很少用 AI 类的搜索引擎,也并不怎么用 NotebookLM 或是 Gemini Deep Research 这样的工具来帮助消化学习。

诚然 AI 降低了很多知识获取与学习的门槛,但我依然不敢信任它在我未曾涉猎的领域中给出的似乎条分缕析的回答或是长篇大论的 Research,如果有一天我对 AI 生成的东西感到陌生或是完全无法判断真伪,可能会更担心是不是自己已经丧失思考能力了吧。

程序员算是 AI 浪潮的比较直接的受益者,LLMs 很大程度改变了我的工作模式和行为习惯,我也偶尔会偷懒让 AI 帮我总结或是用沉浸式翻译读英文资料,但我依然不会也难以想象用 AI 帮我写周报/博文,或许它终有一天能做得不错,却少了灵魂和一些微妙的“人”感。

有趣的事与物

软件

subo_screenshot

在 Twitter 上看到 CaiCai 推荐了一个订阅管理软件「Subo」,试用了一下就为了它的多币种功能付费了,整理了自己的各种订阅/服务器,好用 & 很有设计感!

输入

虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。

我把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。

收藏

文章

视频

剧集

  •  

周报 #94 - 生活的界限与真实感

2025年5月19日 09:03

前言

weekly_review_94

本篇是对 2025-04-282025-05-04 这周生活的记录与思考。

这周是五一,久违的长假,放下了疲惫与焦虑,“摆烂”地享受了几天,看剧、运动、招待朋友,发现似乎更能找回一些生活的节奏;也补了 Rust 和 SwiftUI 的课程,重构了之前的项目;还有很多有意思的事。

生活的界限与真实感

界限

severance_post

我时常觉得自己有一根弦一直绷着,并不是很具象的来自工作或是生活的什么压力,而是一种源自内心的焦虑,例如有一个完整的周末,我似乎很难真正放松下来打一天游戏(即使我真的很想把《宝可梦朱/紫》通关),给自己安排了许多“正”事,却又会因为学习或是目标达成不尽人意而进入自责的循环。

这个五一假期却有了一些例外。假期前我依然给自己安排了许多学习、工作,但因为沉迷看一部新韩剧《苦尽柑来遇见你》和玩《双人成行》而“虚度”了好几个下午,但整个人却似乎融化在了这种舒适的日常中,搁置了那些不良的情绪,只是享受其中。

似乎很久没有这样的时候了,即使只是“在假日休息”这样天经地义又简单的事。

在看《人生切割术》的时候我也常常在想,我现在的生活有时还常常不如剧中那样通过一部电梯来彻底地割离工作与生活,甚至有些羡慕。不由得也开始反思自己是否真的需要填满这些时间,匆匆忙忙地奔波在一项项任务中,模糊了生活的界限。

而对于远程办公已经近两年的我来说,这种界限并不是一个具体的上下班的时间节点所切分的时间片段,而是一种心态上的定义或是掌控感,让自己不再被这些具体的一项项事务裹挟着进入日复一日的循环。

真实感

DSCF0710

最近工作内容是并不熟悉的技术栈,常常因为代码写不出来/焦虑而熬夜,甚至也有一天因为夜里开会而吵醒了学姐,持续了两周后有些消耗,但似乎处在一个无解的状态里,确实是需要投入这些时间去学习/完成这些工作,却又由于这些被占据的时间与随之而来的情绪而压垮了仅剩的一些生活的空间。

DSCF0731

刚好周五同事 Ares 和 Innei 来家里作客,中午我在家里做了牛排简餐,傍晚一起去天目里拍照,交流着相机、镜头,驻足于配色好看的摊位、与对面同样拿着相机在四处拍的陌生人拿着相机对狙,纯粹的快乐。

i_m_still_here

movie_threater

晚上又和学姐去看了一部电影「I'm Still Here」,在一家可以一边吃东西一边观影的影院,很惬意,整个周末也似乎因为着短短的几个小时而延长了,变得充实而真切。

或许有时候出去走走,去触碰一下窗外的雨滴,感受一下空气的流动和温度,就能为生活注入一些真实感。

苦尽柑来遇见你

kujinganlai

这个假期花了几天时间追完了这部新出的韩剧,原本只是每天吃饭的时候看下,两集之后就有些上头,看完后有些意犹未尽和怅然,似乎陪伴着他们走过了一生,他们之间的爱情自不必多言,其中更打动我的还有三代人之间的情感传递与循环,似乎常常也会落入同样的命运选择中,却又由于根植在生命中的来自上一代的传承而有一些微妙的不同。

之前就一直很喜欢《请回答 1988》和《老友记》这类更偏群像的讲述人生某个阶段琐碎日常与情感的剧集,或许 P5R 这类游戏也是,我期待从中找到一些陪伴感,他们也常常会在生活的许多偶尔的阶段里给予我前行或是回望的勇气。

有趣的事与物

输入

虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。

我把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。

播客

收藏

文章

  • How the Raycast API and extensions work,raycast 的体验真的甩同类 Alfred 已经太远了,解读技术实现的文章也很清晰。
  • 我的三天心动原则,我之前看评测很心动大疆的一个无人机,激情下单,但发现到手后忙一些事三天都没空拆开快递,想到以前真正想要的东西都会一天刷三十遍快递去驿站自己取的,于是就退货了。

视频

剧集

  • 苦尽柑来遇见你,近几年最喜欢的剧了!!!有点找回了看《请回答 1988》的感受,但由于故事更完整,看着看着就像是陪她们度过了整个人生,有好几个地方都看哭了。
  • 最后生还者 第二季,非游戏党,看完第一季印象比较深,追一下。
  • 雷普利,剧情虽然没多少悬疑的部分,但节奏很棒,也好喜欢这部的光影和意大利人特有的松弛感,想去。
  •  

周报 #93 - 婚礼纪录片与失落的电影院

2025年4月28日 10:22

前言

weekly_review_93_cover

本篇是对 2025-04-222025-04-27 这周生活的记录与思考。

这周「婚礼纪录片」出来了,收到了一些祝福,很开心,也有一些新的思考;去线下看了一场电影,想到了一些关于影院的记忆;入手了 NuPhy Kick75 键盘,体验很不错,找到了一些玩任天堂复古掌机的感觉;还有很多有意思的事。

婚礼纪录片

我在之前的一篇周报中说到 ——

我今年也想以「人生清单」的视角去生活,去寻找生活中不曾注意过的风景,去做一些自己曾经觉得遥不可及的事。

婚礼、展览、在舞台上自己主持,这些对于我这个性格测试中 i 值达到 80%+ 的人来说似乎都有着很大的挑战,但现阶段的我也已经不再怯于去尝试人生中的这些“不可能”了。

也很幸运请了很棒的摄像/导演,记录下了全程。当时看他提供的一些婚礼样片的时候就感觉很不错,像是一个纪录片在静静讲述着故事,经过了长达两个月的等待,终于看到了成片(P1 是一个短片,P2 是全程记录)。

20090404043100-4

关于婚礼本身,其实已经过去了两个多月,又有了一些新的感受。前两天学姐给我转发了这样一段话 ——

婚育是一场巨大的

“人生意义危机转移计划”

用结婚和生育养育这些

耗费巨大精力的事情,占据人的所有精力。

以至于人没有力气,再烦恼人生的意义。

去消解人一旦闲下来就会思考

“人活着究竟有什么意义”

这类虚无的难题的困境。

我回想了一下,确实。在最初准备婚礼的时候,因为一共只有三个月的时间要处理完大家通常用一年甚至更久的时候来筹备的仪式,所有环节都很极限,忙碌到我们常常有时候反问自己 —— “我们为什么要结婚来着”。

似乎当生活的齿轮一旦开始转动,来自社会、家人以及根植在我们性格深处的文化传统都在加速推动着我们向前,焦虑着一些很具体的事务,比如早上十点和婚庆的策划会,比如婚纱、西服选什么款式,而不再去思考或是质疑那些虚无缥缈的“意义”,这很可怕。

但终究我们不是那种甘心妥协的人,即使依然有世俗的框架与很多琐碎的事务,我们依然尽力在其中融入更多我们的想法,去传达一些我们对婚姻与爱情的理解,去赋予这场仪式更多独特的意义。

想起 23 岁时我对自己说的话(见「23 岁的自白:去追寻意义」)——

我仍然不觉得自己触碰到了一直在找寻的意义,如今的一切成败是非也仅仅是妥协所形成的答案,也许永远找不到了,但这个过程却给了前进的勇气,也许思考本身就是建构意义的过程,让我不再期待某个瞬间能够顿悟,只是希望继续向前,体验和追寻着自己的人生。

很庆幸自己依然还在践行着当初的这些话,也更幸运找到了一起并肩作战的那个人,和我一起追寻这些“无意义”的意义。

失落的电影院

周中的一个晚上学姐邀请我去看电影,一部意大利的黑白电影《还有明天》,难得有看到院线上映这种还算小众的片子,到了发现包场了,配合着意大利的配乐,倒还真有置身老电影的感觉。

除了片子本身,这个影院也带给了我一些感触。

bigao_cinema

我们去的是杭州的一家叫作“比高电影城”的影院,从我小时候就一直在了。因为离得很近,所以之前也常常和家人一起去,这张照片就是 10 年前我和妹妹去看的时候留下的。

这么多年过去了,杭州发生了很多变化,甚至周遭的商圈也都换了好几轮了,这家影院没有扩张却也没有倒闭,还是最初的样子,不算破败却有些冷清。

电影其实并不算是人生活的什么刚需,但影院和书店一样,常常是我们这一代人少时生活与回忆的载体,而如今我们已经渐渐成长为大人,它们却也依然像是个年迈的长者一样,失落却又温和地注视着这些人生起伏。

很喜欢朱塞佩·托纳多雷导演的一部电影《天堂电影院》,也是十几年前看的了,描绘了意大利的一个小镇上的一家电影院,临近结尾有一个多年后因为需要改建而炸掉原来的影院的场景,当时看得热泪盈眶,现在回想似乎也有了更多感同身受。

个人生活剪影

捏捏与饭饭

nienie_20250428

fanfan_20250428

刚才两个小猫默契跑到我书桌旁边的床上撒娇玩闹,也太可爱了 ❤️

有趣的事与物

设备

desktop_setup_20250428

nuphy_kick75

心心念的 NuPhy Kick75 到啦!!比想象得厚重一点,颜色很清新舒服,有回到小时候玩任天堂掌机的氛围,感觉打字都成了享受。

上篇还说到断舍离,但是 Retro 风格 + 致敬任天堂元素,这谁忍得住啊!

输入

虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。

我把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。

收藏

文章

视频

电影

  • 还有明天,电影本身是很有趣的叙事节奏,前面日常的镜头把压抑窒息描绘得很真实,高潮部分咖啡厅炸的那一刻也有被燃到。片子本身讲女性处境、意识觉醒和地位独立,“选票比情书更重要”,“没关系,还有明天”,最后的结局并没有专注在个体的“逃离”而是群体/体制的更迭,错愕之余也有些深省。

剧集

  •  

周报 #92 - 数码产品 Porn 与断舍离

2025年4月22日 10:45

前言

weekly_review_92

本篇是对 2025-04-152025-04-21 这周生活的记录与思考。

这周的主基调是处理工作、调整作息与学习;去了安吉 DNA 数字游民公社找朋友,或许考虑过去住几天;感觉最近由于 AI 有关的各种新概念、模型、框架有些过于繁杂,稍有些 burnout,于是重新在 Things 里制订了一些学习计划;久违地追了一些新剧;还有很多有意思的事。

数码产品 Porn 与断舍离

我之前是一个很极端的数码产品和软件工具爱好者,或许也是因为从小到大虽然生活无虞,但我们家的习惯是并不会有很具体的叫“零花钱”的概念,日常没办法存下什么钱,也不会因考得好或是什么而得到奖励,所以小时候即使是想要一个并不昂贵的玩具也需要省很久。

gba_sp

当时很羡慕我表哥的一台 Nintendo Game Boy Advance SP,很经典的那款翻盖带背光的游戏机,可以插卡带玩口袋妖怪(现在的宝可梦),每个游戏都通关了好多遍;当然,随着年龄增长与喜好的变化,后来想要的东西也越来越多,正值智能手机兴起,也想要一台当时刚刚推出的诺基亚 5230;包括高中之后同学的 iPhone 4 和 NDS 游戏机也都让我心动。

但这些都一直没能如愿真正拥有,甚至似乎成为了一种执念。

直到大学后实习、创业和工作,经济独立了,似乎开始有些报复性地看各种数码评测,也陆续拥有了新款高配 MacBook Pro、Mac Studio、iPad、iPhone、Sony 相机、Switch、Steam Deck 和各式键盘,会把所有的包装盒堆在我的书架和衣柜上的空间里,看到就有一种很强的满足感。

有时候觉得或许自己并不是真正想要这些东西,开箱所带来的新鲜感与兴奋感往往转瞬即逝,随即则需要买更多东西来维持,像是陷入了一种数码产品 Porn,是对曾经没办法拥有的自己的一种补偿,只会带来严重的娱乐/生产力过剩。

前段时间在筹备结婚和搬家,开始“变卖”家产,卖掉了大部分使用频次不高的设备,腾挪出了桌面空间,也减轻了许多心智负担,发现自己的心态已经经历了许多转变,当自己想买一个新设备、产品时,似乎又能够回归最原始的理性思考逻辑了 ——

我的需求是什么?它能否满足我?

最近用了四年的主力机 iPhone 13 坏了,几乎离不开充电线,也经常开不了机。

原本一直想着能够苟到今年秋季 Apple 新品的发布去买个海外版,虽然对新的设计和功能也没多少兴趣,至少能用上 ESIM 和 Apple Intelligence。但总归是得解决或是过渡一下,于是去闲鱼上淘了一个 iPhone SE3,折腾了一番迁移后发现够用但屏幕有点小,也稍有些卡顿,作为主力机还是有点勉强。

oneplus_7_pro

于是又给 19 年买的的 OnePlus 7 Pro 重新开了机,虽然和 iOS 生态差异很大,却也刚好契合我逐步想只把手机当作基础通讯工具的习惯,而且惊奇地发现其实也很够用。想起来当时买它也并不是因为缺一个手机,而是被它的真全面屏、屏下指纹和升降摄像头的设计所惊艳到,作为备用机服役了一年多就闲置了。

重装了一下发现之前刷的氧 OS 2022 年底就不再更新了,停留在了 Android 12,但完全没觉得缺什么功能,反而感觉很流畅,似乎其实六年前的旗舰就已经完全足够满足我现在的需求了,还能抢先用上 Folo 安卓版 🤩。

之前在讲 Chromebook(也已经卖了)的时候提到过:

我其实有很多高性能设备,日常在用的 M2 Max 的 MacBook Pro,由于性能和续航达到了一个很不错的平衡,导致我即使出门在外也随时都能打开来进入工作状态,甚至爬山和散步都会背着,有时候其实并不能很放松地出门或是陪伴身边的人。

其实设备性能已经过剩到并不会制约自己的效率,反而是需要刻意的约束来让我的目光更多转向周遭。

我发现“刚刚好够用”甚至比现在各种虚高性能的产品更为让我心动,于是逐渐开始追寻断舍离与“复古”,这或许也是一种目光投射、心理甚至是生活中心的转变 ——

我不再是那个需要用一堆数码产品包围自己来填补内心空虚的小男孩了,我的生活中有了爱人、猫和更多有意思的人和事,我已经拥有了童年时梦寐以求的 GBA SP 游戏机了。

有趣的事与物

输入

虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。

我把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。

视频

剧集

  •  

周报 #91 - 一席、消失的时代与自由意志

2025年4月16日 07:04

前言

weekly_review_91

本篇是对 2025-04-072025-04-15 这周生活的记录与思考。

这周末去参加了杭州的一席活动,对其中的几个讲者和主题印象很深,记录下一些感触,思考了消失的时代与自由意志;终于搬完家了,有了很满意的办公与生活区域;还有很多有意思的事。

一席演讲

一席是一个本土化的线下演讲活动,Slogan 是「人文·科技·白日梦」,以亲历者的视角讲述分享自己的故事/调研,之前在北京就有去过一场,去年也有参加他们在南京的线下游学活动(见「周报 #60 - 虫子旁、教育理念与 EpubKit」,这次恰好在杭州有一场,学姐早早订了票,周末去听了。

整场活动一共六个多小时,中间有短暂的 40 分钟休息,其实感觉自己除了写代码以外已经很久没能沉下心那么久只做一件事了,看书、看剧似乎也都没办法进入这种沉浸状态,所以也算是一种很新奇的体验了。

就像我常常还是喜欢去电影院看电影,并不仅仅是由于电影院更高级的画面与音效,而是在电影院似乎只需要做看电影这一件事,不会想着再回几条消息或是同时做个什么其他事,这种感觉和自己在家用大屏或是投影看是完全不一样的体验。

消失的时代

不知是巧合还是刻意为之,似乎这次活动的诸多讲者都有隐隐在表达一种对逝去时代的记录或是怀念,北京的胡同、东京的街道乃至曾经那个虚渺的还可以憧憬理想的社会,似乎都在离我们远去了,无力,唯有记录与讲述。

我在北京生活过短暂的两三年,所以当建筑师鲁雯泋与《东四十条》导演詹涵淇在讲述对胡同中的“野生设计”与鼓楼的黄金时代时,竟也生出了些许共鸣。

luwenhui_yixi_01

luwenhui_yixi_02

建筑师深入北京的大小胡同,记录下他们在狭小逼仄的空间中诞生的生活智慧,艺术并不一定立于高墙之下,也可以是低矮胡同中的一砖一瓦或是偶然却也精妙的“设计”,甚至这些未经规训的表达多了一层自由与纯粹。

胡同也不仅仅是一个物理空间,有时也承载了一个时代的缩影,很喜欢《东四十条》导演讲述的鼓楼的“卡住的一代”。很喜欢她所说的“卡住”的这个概念,去年我频繁在思考的“Adulting”(见「周报 #76 - 关于 Adulting 的思考」)也有类似的含义。

二十几岁的年纪,最容易陷入迷茫,既无法回退版本到无忧的校园时代,也不甘于成为一个“无聊”的大人,于是卡在时间与时代的裂缝里,进退维谷。

曾经的鼓楼胡同成为了这些年轻人们的乌托邦,一天天,不论生活多痛苦艰难,他们永远可以回到这个可以暂搁现实的避风港,就像她提到有一天见到过两个穿着击剑服的人在马路上击剑,魔幻而浪漫,世俗桎梏被无限稀释,在这里,他们不必绞尽脑汁思索人生意义,他们就是意义本身。

但这个裂缝就像软件中旧版本的漏洞一样,已经被“修复”了,胡同被拆除,曾经的这些人要么屈服于这个时代的“主流”价值观,要么继续在钢筋水泥的森林中寻找着乌托邦的影子,不论如何,再也回不去了。

自由意志

songbenzai_yixi_01

从日本赶来的一位讲者松本哉同样提到了这一点,他毕业时赶上了上世纪九十年代日本泡沫经济崩溃,与这个时代一起度过了失落的三十年。

但他似乎并没有那么悲观,选择了在高円寺这个地方开了一家二手商店、居酒屋与民宿,制造了各种“迷之空间”,承载着他与周遭的人对时代的反叛与自由意志。

听完了他的演讲才有点恍然为什么任天堂和女神异闻录(P5)会诞生在这片土壤,他们的生活本就充满了这种浪漫。

他讲到自己刚毕业时找不到工作,于是就这样一直开着这些不靠谱的店铺到现在,在五十多岁的年纪依然“只能”随意几点开店关店,和朋友们彻夜喝酒,和全球来玩的背包客们相识、发生故事。

他说 ——

要是那时候找到了工作,大概人生也就这样了,那该有多无聊,好险,差点误入歧途了。

他并没有想要做到什么远大的目标,而只是想要守护自己和周遭的自由,大家都能做自己喜欢的事,而不必屈服于金钱至上的社会,而是见缝插针地、自说自话地去建立自己的革命后的世界。

songbenzai_yixi_02

可就连这样的偏安一隅也难逃被“现代化”洪流吞噬的命运,但松本哉更为游戏人生,会举办一些神奇的活动,比如“房租太贵了”或是“反高円寺再开发”游行,和前来维持秩序的警察们一起举杯,通过这样一种看似无厘头的方式去守护自己和周遭的自由意志。

有趣的事与物

输入

虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。

我把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。

收藏

文章

视频

剧集

  •  

周报 #90 - OVH 服务器、Coolify 与对 AI Coding 的思考

2025年4月9日 10:44

前言

weekly_review_90

本篇是对 2025-03-312025-04-06 这周生活的记录与思考。

搬回杭州已经接近一年了,租的房子也差不多到期了,于是火速看了两天房子,最终在不远处选了另一套,虽然又要经历一次痛苦的搬家,但新家的空间布局还挺满意的,也当作一种生活状态的调整了。

除了物理意义上的搬家外,我的所有服务/数据也经历了一次从 AWS 到 OVH 的迁移,也是一波三折,好在最后也都无缝完成了,刚好也梳理一下。

最近高强度地用 Cursor 和 Windsurf 进行 Vibe Coding,确实有能感觉到对以往开发模式的颠覆;还有很多有意思的事。

OVH 与 Coolify

OVH Mystery Box

我之前一直算是个 Serverless 平台的爱好者,热衷于在 Vercel、Netlify、Cloudflare Pages、Zeabur、fly.ioRailway 等平台部署和管理自己的大部分服务,大多数情况下也够用,但随着 Zeabur 的涨价以及各个平台政策的变更,成本不断上涨到十几美元甚至几十美元一个月,感觉已经失去了优势。

再加上之前参加一个黑客松获奖送了几千美元的 AWS Credits,所以有很长一段时间我都把服务部署在 AWS 香港机房的一台 EC2 实例上,也稳稳地跑了四五个月了,不过随着 Credits 即将到期,再加上自己也想一劳永逸保障服务的稳定性,于是打算找一些独服长期续费。

主要考虑的就是 Webp Cloud 团队在「Hetzner CAX 系列 ARM64 服务器性能简评以及 WebP Cloud Services 在其上的实践」一文中强推的 Hetzner 的 ARM64 服务器和另一家极致性价比的 OVH 了。

原本已经打算用 Hetzner 了,但刚好看到 OVH 推出了一个 Mystery Box 盲盒活动,22.99 欧元/月,基础款配置为

  • Intel Xeon E5-1650v3
  • 64G 内存
  • 2 * 480G SSD SATA Soft RAID
  • 1Gbit/s 带宽

原本就是一个还挺划算的配置,但有意思的在于它可能会随机开出更高 CPU、内存和硬盘的机器,但价格不变,一下子就理解了买 Pop Mart 的朋友们的感受,这谁忍得住啊

共计买了四台,前两台都是基础款,第三台开出一个 CPU 与内存中奖的加拿大 bhs 机房的机器

  • Intel Xeon E5-1650v4
  • 128G 内存

当时已经感觉很满意了,于是折腾了一晚上迁移服务,包括全量数据库的数据,搞定后才收到邮件说第四台机器也安装好了,于是去测了一下配置,惊喜地发现真的开到隐藏款了

ovh_perf

  • AMD EPYC 7351P
  • 128G 内存
  • 2 * 1T NVMe
  • 法国 GRA 机房 1Gbit/s 上行 + 10Gbit/s 下行带宽

前一天还在和朋友说我肯定没这个运气了,不蹲了。

chat_with_seefs_ovh

一时看着刚迁移好的服务有些哭笑不得,不过也是幸福的烦恼了,于是又作为一个熟练的服务搬运工开始折腾,花了半个晚上迁移完了所有服务,这个价格&配置应该也很足够当传家宝了,真的再也不搬了

机房在法国,线路一般,因此大部分对外的服务我都套上了 Cloudflare Proxy,算是能有一些优化,作为个人使用来说也比较足够了,或许后面考虑一些对国内访问要求更高的服务会再套一层线路更好的 nginx 反代吧。

Coolify 管理

顺便也趁机优化/梳理了一下服务管理的方案。

之前用过 Zeabur 的托管,不过感觉面板上还是有不少 bug,并且通过 k3s 进行部署和调度的方式略有些黑盒,没办法很方便地通过 ServerCat 等工具看到每个容器的一些状态,再加上数据备份、挂载等操作还是有很大的局限。

coolify_services

我也有一些服务是托管在朋友搭的 Coolify 面板上的,用得很习惯,尤其是能够将数据库定时备份到 S3 上的功能很强大,所以这次还是选择了 Coolify,直接在面板中配置上服务器的 ssh 就一键管理了。

Vibe Coding

最近很流行一个词叫 Vibe Coding,是对 AI 辅助编程的一种调侃式的说法,不过正经地聊聊,作为一个在 21 年 GitHub Copilot Technical Preview 的时候就高强度使用,后来也陆续使用 ChatGPT、Claude 这类 AI Chat 平台生成代码,并从去年 7 月开始年付 Cursor 并高强度使用至今的 AI Coding 重度爱好者,我确实有感觉到 AI Coding 对我们开发模式的极大颠覆。

虽然没有准确统计过,但感觉我工作与个人开发中目测大概至少有 70% 以上的代码是通过 AI 辅助生成的了,大部分时间用的是 Cursor 的 Agent 模式。

很多人对于 AI 生成的代码抱有偏见,觉得会生成一堆难以维护的“一次性”代码,但我依然觉得即使是 AI 有着更高自主权的 Agent 模式,生成代码的质量也依然要靠开发者自己来把控,当给 AI 的提示词足够准确的时候,它会成为很好的帮手,甚至能写出比自己更优的代码。

cursor_refactor

我前段时间曾做过一个尝试,把一个个人项目进行了一波涉及到几十个文件的后端 API 重构,如果我自己去写或许要 2-3 小时的工作量与大量的耐心,但把需求和对应的参考文档告诉 Cursor 后,它一次生成的代码就可以使用,但漏了一个组件,再经过两次追问已经完全实现了我的需求,总共花费的时间不到 20 分钟(甚至大部分时间都花在 Claude 3.7 Sonnet 的 Thinking 等待中),这次实践也让我对 AI 所能做的能力边界有了更深的理解。

我始终觉得 AI Coding 最大价值并不是帮助我们成为更顶尖的程序员,任何一个领域想要深耕都需要花很长的时间去沉淀和实践,10000 小时定律依然适用,甚至更有价值了,AI 写出的“不可控”的代码更需要开发者的自身知识储备与判断力。

但 AI 能够让我们更快/更好地实践自己的想法、做出一个小产品或是参与到一些开源贡献中了,我作为一个后端开发,并不需要 10000 小时才能写一个简单的前端页面,而是可以快速做出一个“全栈”的项目,甚至可能比自己设计得要更好。

甚至我还很习惯于阅读 AI 生成的代码来学习那些组件和语法,自己找到一些可以优化的地方去调整修改。AI 更像是一个耐心的 mentor,会帮助我们学习不熟悉的技术栈,解答遇到的问题,并将其内化为自己的技术积累。

尤其是在 Claude 3.7 Sonnet (Thinking) 推出后,惊讶于其代码能力的跃迁之余,我在 AI 为我省下的 Coding 时间里打开了之前还未看完的 cs193p SwiftUI 开发课程与 Rust 教材,开始从头学习,愈发觉得或许再几个月、半年过去,模型本身的能力已经不再是瓶颈,而开发者本身的技术储备、系统设计能力、对架构的理解和业务的抽象能力才是那个短板。

另外由于习惯提示词都是英文,感觉这几个月代码能力没提升多少,英文表达能力倒是进步了 🤣。

博客改版

既上次改版之后,又发现 Anthony Fu 新增了一个 Media 页面,火速把我的也集成上了,现在会展示我看的书籍、电影、剧集、动漫和游戏了。

blog_media_book

blog_media_movie

blog_media_drama

blog_media_anime

blog_media_game

有趣的事与物

输入

虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。并且把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。

收藏

文章

  • 我们高估了智力的重要性,我曾经最“卷”的一段时间会给自己排许多看似不可能完成的任务和苛刻的 DDL,甚至都是一些很重要的失败会付出不少代价的项目,用这种方式强迫着自己去快速学习,现在想想敢于这么做其实更多就是信任自我效能,而这种信心也是可以滚动积累的。
  • 6000 字+6 个案例:写给普通人的 MCP 入门指南,依然没找到什么特别刚需的 MCP 场景,figma 生成网页的感觉还比较有意思。

视频

  •  

周报 #89 - 博客改版与 TheWan App 发布

2025年3月30日 20:30

前言

weekly_review_89

本篇是对 2025-03-252025-03-30 这周生活的记录与思考。

这周最大的变化就是根据 Antfu 的开源博客主题改版了我的博客,也加上了一些模块,折腾得很开心;开发了两年几度放弃的一个 iOS App TheWan 也终于发布了,依然很基础,UI 设计和细节也并不满意,但总算迈出了第一步;还有很多有意思的事。

博客改版

我是一个博客折腾爱好者,前前后后写过十几篇关于如何搭建 Hugo 博客及一些周边服务的文章(详见「周报 #68 - 关于写博客这件事与我生活的色彩」),也有不少朋友是通过这些教程才了解到我的博客的。

网站主题是我之前很喜欢的那种古早台湾风,但早在四五年前就已经不再维护(期间我有提过几个 pr 新增了一些模块,但终究还是受 Hugo 框架的制约),随着博客内容的增加以及想要呈现和分享的形态越来越丰富,逐渐没办法很好地满足我的定制化需求。

但因为早期我的博客 slug 是 /zh/yy/mm/dd/:slug 这样的路由形式,以及 Remark42 是根据完整的 url 匹配的,所以如果要迁移到新主题/框架要做很多额外的处理和重定向,所以一直搁置着没有折腾。

但最近因为偶尔会把一些博文转到朋友圈,有不少朋友反馈说打开很慢甚至完全加载不出来,除了因为部署在海外,博客本身的一些素材/性能问题也逐渐显现出来了,但也很难排查和解决,于是又动了迁移的心思,看了看其他的一些框架,大同小异,也都不算满意,但自己也不想太折腾用 Astro 之类的重新写一个。

antfu_blog_os

恰好翻到了 Antfu 的博客 antfu.me,是他自己定制的框架主题,性能自然不用多说,风格简洁美观且功能丰富,还有我一直想要的摄影展示模块,是我理想中的博客了,于是在跟他确认授权之后,着手开始了迁移。

博客分区

我之前的网站定位在一个博客而不是主页,所以其实只有文章展示,也趁着这次机会重新划分了一下分区,目前有以下几个模块:

Homepage

pseudoyu_homepage_new

Homepage 是我的个人主页,主要展示简单的个人介绍、履历和各个平台的联系方式。

Blog

pseudoyu_blog

Blog 是我的博文板块,分为了两个类别,BlogNotes

Blog 主要会是周报及一些更完整的技术文章/教程等,并提供 RSS 输出,可以在 {Folo} 等 RSS 阅读器中订阅;而后者 Notes 模块则可能是一些零散的不足以成文但却有一定价值的笔记,也可以供查看但并不会包含在 RSS 中以免造成一些干扰。

Projects, Talks 与 Podcasts

pseudoyu_projects

Projects 展示了自己工作、开源以及一些折腾的 Side Projects,其实把这些年零散做的一些大小项目汇集到一起还挺有成就感的。

不过这部分我去掉了 Antfu 的 TOC 目录,每看一次他的项目页面就多一次震撼,我项目什么时候能多到需要目录导航呀。

pseudoyu_talks

Talks 是我的一些课程/演讲。这两年还比较热衷于作为分享者参加一些线上/线下的分享、课程和 Workshop 等,大多数其实都是和 OpenBuild 合作的,梳理了一下一些录屏、课件等,发现不知不觉已经沉淀了不少。

还跟学姐开玩笑说可能我今年分享怎么写 Solidity 的时长已经超过我真正写 Solidity 的时间了,常常会有一些隐隐的惭愧、焦虑和冒名顶替综合征。

尤其在 AI Coding 发展到已经相对成熟的当下,应用开发已经不再是门槛了,但真正服务的架构、性能等却更依赖开发者自身的判断,所以今年想更多沉淀一些基础知识了。

pseudoyu_podcasts

Podcasts 部分目前还很单薄,其实只有我几年前在技术播客节参加的一期,当时思路和分享深度也很有限,但却也还是享受播客这种形式的,今年会多参与甚至自己尝试做一些。

Photos

pseudoyu_photos

Photos 也是主题里我很喜欢的一个板块,之前就一直很想在个人网站上有一个类似 Unplash 这样的个人摄影展示模块,也算是能够激励自己出门多拍一些,尝试过用 Ghost 搭建一些子站之类的,总觉得不是很方便,现在能够直接集成到博客里了。

Let's Chat 与 Sponsors

pseudoyu_chat

Let's Chat 是一个聊天/咨询板块,我之前其实偶尔也会邮件或是各个平台收到一些咨询,一般就是解决一些博客搭建的问题或简单聊一些关于技术学习、成长相关的困惑,最近也趁着博客改版,放了一个单独的咨询页面,也算是轻咨询的一次个人尝试。

pseudoyu_sponsor

以及所有的 Sponsors 会展示在这个页面以示感谢。

Friends

pseudoyu_friends

把之前添加的友链页面也迁移过来了,也欢迎大家交换。

博客组件

其实大部分的页面都是基于 Antfu 的已经很完善的框架来微调内容的,除了一些个人的页面外,我主要做了两个调整。

第一个就是 OG 图的生成没有用之前的 svg 替换文字的方式,而是用了他更推荐的 satori 开源项目来动态生成,样式和灵活性更高一些。

另外就是把我之前的 Remark42 评论系统与 GoatCounter 访问统计系统集成进来了并且保持了原有的数据。

并且发现了 Netlify 非常好用的重定向功能,只需要在目录下添加一个 _redirects 文件就可以自动化解决了我兼容之前的一些旧链接的问题,不需要在 DNS 层面做其他配置,例如以下的格式:

/zh https://www.pseudoyu.com/posts 301!
/zh/about https://www.pseudoyu.com/about 301!
/zh/links https://www.pseudoyu.com/friends 301!

/en https://www.pseudoyu.com/posts 301
/en/* https://www.pseudoyu.com/zh/:splat 301

所以服务部署也放到了 Netlify,依然是每次 commit 代码都会自动部署。

关于 TheWan iOS App

2022 年下半年,我看了 Reorx 的一篇关于 n8n 的文章 —— 「使用自动化工作流聚合信息摄入和输出」,被他所说的「赛博空间」这一概念所吸引,搭建了我的一个 Telegram 频道 —— 「Yu's Life」,自动化同步我文章收藏、豆瓣记录、B 站投币、YouTube/Spotify 点赞等各个平台的记录,聚合了我在网络空间的数字痕迹。

当时一位颇为有缘的学弟找到我说想一起做一个这样的应用,每个人都可以建立自己的专属聚合频道但却不用去折腾 n8n、rsshub、telegram bot 这类繁琐的技术细节,我很感兴趣,一拍即合。

一开始信心很足,花了一个多月做了一个网站和配套的 api 与同步服务,还写了详细的文档,想着春节就能上线,但节后我的个人生活发生了很大的变化,我换了工作、搬家回了杭州,暂搁置了一阵子,再捡起时却已经缺乏了那一股劲。

随后的两年里这个产品既没有消亡却也未能如期上线,一次次跳票。甚至为了说服自己继续开发下去,我把它当成了一个技术 Playgroud —— 用 Rust 写了 api 服务,Go 写了同步服务,产品本身也从一个网页端迭代成了用 SwiftUI 写的原生 iOS App。

期间也有很多有意思的事。产品背后同步用的是 {RSSHub},未曾想到自己现在也成为了项目的 maintainer,前段时间遇到一个小宇宙同步问题直接去上游一条龙修完了;以及期间也诞生了 {Folo},功能有些重合的点,一度让我对产品丧失了一大半的动力。

不过总觉得更多由于自己的原因跳票至今有些对不住一起的伙伴,所以在今年年初杭州和内蒙两场婚礼之间久违的空隙时间里完成了一个基础版本的开发,再经过和 Apple 审核近两周的 Battle 之下,终于上架了 App Store。

tujunjie_thewan

上午跟一位最早期就加入了 waitlist 并且日常有不少沟通的读者朋友讲了这个消息,他说:

不知不觉,这两年我娃都快一岁,你也结婚了,真快呀。

自己很早之前就在博客里说过,想拥有一个自己的产品,后来真正开始做了才慢慢发现,即使是一个仅 1.1M 的小 App,从想法萌芽到最后打包上架都很不容易,但总之先迈出了第一步,回头看看,轻舟已过万重山。

欢迎感兴趣的朋友在 App Store 搜索「TheWan」或点击下载链接体验。

有趣的事与物

输入

虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。并且把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。

收藏

文章

视频

  •  

周报 #88 - 方大同、《回留》与人生清单

2025年3月24日 11:24

前言

weekly_review_88

本篇是对 2025-03-182025-03-24 这周生活的记录与思考。

3 月初得知方大同离世,这几周陪学姐参与了两次纪念音乐会活动,有一些感触,遂记录下来。

关于方大同

我不算一个热爱音乐的人,也不常对歌手有什么特别的感受,唯一要说可能就是近些年五月天在我人生站在各个分水岭时给予了许多陪伴,也是我唯一现场去过的演唱会。

方大同的歌我听了不少,但在我的心中可能一直是遥远的华语歌坛的一位前辈,不算听着他的歌长大,很难称自己为什么忠实的粉丝。

fdt_boyi

更多的交集是在刚和学姐在一起时,了解到她很喜欢方大同,从高中开始就喜欢,前些年还在香港现场去听了他的演唱会,所以我也跟着听了不少,在之前讲恋爱的某些文章中也用过《特别的人》这首歌作为 BGM。而在后来我们打算挑战一下自己,报了外面机构的流行音乐培训课程的时候,我第一首也是选了《特别的人》(虽然老师说他的转音很难,并不适合初学者),也算是磕磕绊绊地学下来了。

直到前些天从微博热搜得知噩耗,那时刚在上海参加一个线下活动,学姐当场就哭了。我也有些惊愕,好一会儿才缓过来,对于我来说就像是一个虽然算不上熟悉但似乎从没有哪一刻想过会离开的人突然消失了,化作了一颗星星。

回家之后想起来之前收藏了但一直没看的一期节目「可能是方大同新专辑的唯一专访!丨真假方大同终于同框 丨 HOPICO」,四十多分钟的一场专访,突然让我对他有了非常具象与鲜活的了解,连带着他的歌和专辑里想要传达的情感和能量,再听《回留》这首歌,配合着他录专辑时带着些沙哑的声音,似乎像是一场早有准备的道别,眼泪就止不住流了下来。

印象很深的是他在访谈中提到录制时用上海亲戚家的一个老旧的有些受潮的钢琴弹出了带着些沙沙的音色,但似乎正是这种音色更确切地传达出了他所想要表达的。我时常觉得不论是音乐还是文字,除了歌词旋律或是文笔本身外,更多是一种能量的传递,或许就在某个瞬间能够温暖甚至是拯救一位处在低谷的遥远的陌生人,这是作者和受众之间的一种共创,共同构筑了作品的灵魂。

而方大同的歌,似乎都是有灵魂的。

方大同纪念音乐会

方大同离世的消息已经过去有一阵子了,但杭州的歌友会和一些个人在组织筹办一些纪念音乐会,学姐也报名做了志愿者,去担任主持人和现场的一些秩序维持工作,我也一起去参与了,也拍了些照。

fdt_activity_01

fdt_activity_02

fdt_activity_03

fdt_activity_04

活动是在杭州大厦的一个下沉广场,那天很冷,却有许多人蹲坐在台阶上静静听着或是跟着一起唱,中途我回头看时有些震撼与感动,似乎真的能感受到大同在歌中想要传达到的那种能量很具体地化为了一个个点,而点又连成了线,连接起了这些陌生的个体。

最后静静听了一首《回留》,共同道别。

Adulting 与 人生清单

随着我们在杭州生活越来越久,再加上都是远程办公,所以其实也常常想要通过一些方式让自己和这个城市连接起来。而最近因为参与了这些线下活动,学姐结识了一些新的有趣的朋友,有想振兴 R&B 的理想主义者,有在韩国学流行乐的大二学生,也有努力在这个城市生活,从事着和音乐并不相关的工作却在周末一起和大家玩的爱好者。

活动结束后,他们有邀请学姐一起去商场吃炸鸡。对于已经开始养生的我们来说,似乎这已经不是典型的我们出门会想到的选项了,却也想去感受一下氛围。

friend_food

现场很有意思,大家年龄、职业和人生经历各异,却坐在一起。各自去买一些爱吃的东西摊在炸鸡店桌上一起分享,为了在蜜雪冰城买到 1 块钱的冰激凌而雀跃,似乎回到了学生时代。

去年的我频繁地思考 Adulting,觉得自己并没有足够的资格与能力成为一个大人,而短短的几个月过去,自己似乎又成熟到能够做到曾经自己很难想象的事了,比如甚至结婚了。

站在现在的时点来看,似乎有了更深的理解。我们其实很难定义什么是成长,也更难定义自己,我们不必成为小时候幻想的那样成熟稳重的大人,也无需因为离年少的那个自己越来越远而感到伤感。

我喜欢的博主「小鹿 Lawrence」每年的视频有一个主线系列,去年的叫「迷路假期」,在人生的间隙中给自己放个假,去旅行,去享受;而今年的系列叫「人生清单」,去做一些曾只存在于自己脑海中的事,去体验,去感受,例如第一期就去安徽寻觅在大城市中消失了许久的年味。

我今年也想以「人生清单」的视角去生活,去寻找生活中不曾注意过的风景,去做一些自己曾经觉得遥不可及的事。

或许人生本就该如此。

有趣的事与物

MCP

rsshub_mcp

RSSHub + MCP Server + Chatwise = 🪄✨

输入

虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。并且把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。

收藏

文章

视频

音乐

  •  

周报 #87 - 我们主持了自己的宝可梦婚礼,还为它办了一个展

2025年3月18日 18:10

前言

weekly_review_87

本篇是对 2025-02-032025-03-18 这几周生活的记录与思考。

好久不见。

这几周或许是近些年人生体验和情绪最为充盈的一段时间,从去年年底开始筹办杭州的婚礼和展览,直至上周末完成了内蒙的回门宴,似乎连歇下来花上几个小时写下来的时间都没有。但想要说的话很多,终于得空更新周报了。

关于婚礼

20250226104851

或许到了差不多的年纪,这两年我陆续参加了四场同龄朋友/同学的婚礼,也当了两次伴郎,算是近距离地了解到了各种形态的婚礼和仪式。

而自去年 12 月初求婚之后,我和学姐关于婚礼的想法也讨论过很多次。

最初的我们似乎始终没办法理解和认可婚礼的意义,总觉得更多像是一种形式主义的表演,亲朋自全国各地赶来,但现场或许也会忙碌到没法好好讲上几句话,热闹喧嚣之后,或许也很难留下些什么。

所以一开始我们是想了另一种方式,想戴着头纱去全国各地探访一些许久未见的朋友。他/她们或许早已处在人生和爱情的各个阶段,想采访他们对于婚姻和爱情的感受,把这场“旅行”剪成一个纪录片,最后举办一个小小的答谢宴,播放这个视频。

其实已经开始实践了,第一站去了上海,见了几位朋友,也拍了些素材,但回来后总是有些挫败,似乎有些太理想主义了些,餐桌上久别重逢的气氛很好,言谈的厚度却常常不足,很难在短短的几句话里捕捉到他们对爱情最真实的感受。再加上利用周末四处奔波对精力的消耗,仅仅第一周就对这整个想法的信心没了大半。

HEYE-29

后来又有了另一个想法。学姐这些年来画了许多画,我也陆陆续续用相机留下了一些影像,不如我们策划一个个人展览,将两个人的目光投射与自我表达串联成两条线。

对于这个更像是乍现的想法,我们也没什么信心,找了一些专业的策展人似乎并不太乐于接这些过于个人化的展览,问了些朋友也因为自身工作时间之类的很难协调,最终他们也都建议找婚庆一起帮着策划和执行。既然又需要找婚庆,也会有一场宴席,不如就还是办一场婚礼吧,于是乎兜兜转转又回到了原点。

HEYE-82

20050621012600-4

虽然如此,我们依然在其中保留了自己的一些坚持。婚礼采用了宝可梦/皮卡丘主题;所有的传统环节只保留了一个父母觉得重要的敬茶,其他的譬如接亲、婚车等等全都取消了;没有请司仪而是自己主持,所有的流程甚至到每一个环节的背景音乐也都由我们自己选定。

在火速敲定了婚庆、酒店、摄影摄像、婚纱礼服与跟妆之后,我们就将更多的心思与精力放到了婚礼与展览本身的设计上。运气很好地找到了一个西餐厅,跟老板聊过我们的想法之后她很支持我们,还建议我们从 2.14 情人节作为开幕,更能展现与爱情相关的主题,也为我们婚礼当天预热了。

但起初其实我们对于展览本身最终想要呈现的样子并不那么清晰,几次跟婚庆过策划也没有太多进展,总觉得仅仅展示了我们的一些爱情故事,却离一个更社会化意义的展览相距甚远。直到距展览已经不到一周的一个夜晚,我重新整理方案时发现还是没办法接受妥协,相似的挫败感也逐渐产生了。

HEYE-37

HEYE-40

学姐也有些看出了我的闷闷不乐,明明很爱早睡的她却拿着素描本跟我从头梳理起了展览的整个设计,直到深夜,终于慢慢有些雏形了。后来又跟婚庆策划谈了几次方案,终于也是赶在情人节前夜布展完成。

后来的几天里又为这个展览做了一个线上网站 —— 「yuloveboyi.com」,让没法来到现场的朋友们也能通过这个网站了解到我们想要表达的东西。

婚礼比想象得要热闹很多,许多亲朋挚友从各地赶来,见到了一些共事许久却素昧谋面的同事,甚至 Anthony Fu、面包等开源大佬们也来了展览和婚礼现场。

20090404043800-7

在所有不知名的角落

生活各自发生着

人们随机的聚集在一起

然后再散落到各地

庆祝喜事发生

于是 灯亮起

一位朋友在现场我和学姐互道誓词的时候有感而发写下了这段话发给了我。

我很喜欢的电影「土拨鼠之日」和「生活多美好(It's a Wonderful Life)」都有相似的场景,也像我们展览主题所想要表达的,两个尘世中的普通人各自生活着,被社会洪流浪潮推着迷茫地前进着,但也有自己光圈和画笔下的世界,倏地偶尔有一些交错,又偶尔有些分离。

我们在生活日常甚至是整个人生中积累起的小事和善意最终聚合成一个点,就像土拨鼠之日最后的 party 一样,菲尔和所有人都在生命的循环里相遇,或给予过善意,或产生过交集,最终,我们站在了生活的中央,所有人都为我们而来,一起庆祝,热泪盈眶。

20090404044500-2

婚礼后我们听到的最多的评价是“这个婚礼和我之前参加过的都不一样,很感动”,我们开心之余也有些疑惑。其实我们依然是一个传统的婚礼,精简环节或是自己主持也已经不算是什么新鲜事了,那最终在大家眼中不一样的点究竟是什么呢?

20090404045100-4

我们思考了许久,想到的答案是 —— “爱”在这个社会本身已经是一个稀缺品了,这里的爱不仅仅说的是男欢女爱,而是更广义的对生活的热爱、对美好的向往、对他人的善意。

不仅如此,表达“爱”则更加珍贵,或许我们只是将自己生活一角展示出来了,却也足够触动人心。也隐隐地觉得,或许我们坚持要去办这样的一个展览,也是想通过这样的方式去传递爱本身。

婚礼结束已经几周了,带来的能量仍有余温。想到之前总是在纠结与质疑做这件事的意义,现在想想或许也只是借口,让美好的事情发生本就是生命最重要的意义。

我们婚礼和展览请了一位摄像全程记录,视频已上线「清单人生 | 我们主持了自己的宝可梦婚礼,还为它办了一个展」,P1 是一个短片,P2 是全程记录,欢迎大家一起走进我的回忆。

有趣的事与物

输入

虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。并且把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。

收藏

文章

视频

播客

书籍

电影

  • 如父如子,喜欢是枝裕和的节奏和画面,但这部的内心转换和表现力比较一般,对于父子关系的阐释也只是浅尝辄止。
  • 好东西,话题性和拍摄手法都很惊艳了,也很切女权这类社会议题,“正直勇敢有阅读量”也莫名有些燃了。
  • 爱情神话,很喜欢,《好东西》的同一个导演,相似的叙事风格,但更加日常和内敛,反而更能感觉到内核,因为刚办完展也更加有一些感触,关于生活和个人表达。
  • 孤注一掷,剧情有点过家家,但紧张感和压迫感渲染得还不错,再加上对于我这个行业以及经常在泰国待着的体验来说有种别样的真实感 🤣

动漫

剧集

  • 人生切割术 第二季,在看。
  • 不够善良的我们,前两集的视角切换和巧合还有些新颖,但剧情走向逐渐离谱,有点强行结局的感觉,很一般。
  • 沈醉回忆录,作为了解军统历史还不错,但是自传中难免的自我粉饰以及很多政治需要的自白看久了有点累。
  • 最后生还者 第一季,节奏很好,前几集的独立故事线很精彩,看了剧会想去了解游戏的程度了。
  • 我的阿勒泰,不拍第八集的话觉得还是可以给到四星的,最后硬要制造的冲突有些没必要。

音乐

  •  

周报 #86 - 用影像打败时间

2025年2月3日 05:31

前言

weekly_review_86

本篇是对 2025-01-272025-02-02 这周生活的记录与思考。

用影像打败时间

「用影像打败时间」 —— 这是我很喜欢的 Up 主「小鹿 Lawrence」工作室的 Slogan。

他的视频就像是会说话一样,能够呈现他当时所想要表达的心情,也能够一下子把我拉回我当时看到这些画面时的心境。而对于我来说呢,文字似乎是更惬意省力的一种方式,用周报和一些心情日志留下了这些年的想法和变化,可以抵抗遗忘,可是影像依然有它独特的魅力,一种能够将时间凝固的能力。

我有几年挺爱街拍的,不管去哪出差都带着相机,似乎想把眼里的风景都记录下来,有时候反而过于追逐画面,而忽略了当下的心情;而又经过了一个阶段,自己似乎更爱画面的主题性了,在按下快门之前总是思考很多 —— “这个画面想要表现什么或是讲述一个怎样的故事”,有时候追求意义太过,反而留下太少;而近两年,却又因为忙于生活中更具象的体验,而很少拿出相机了,在最近整理一些素材时,发现有很多记忆的缺失。

最近买了一台新相机,富士 X100VI,这个价位之下却只是 APSC,也不可更换镜头,性价比和实用性上远远不及我七年前买的 Sony A7M3,但它复古好看的外观和轻便的体积却让我更有拿去它出门的欲望,爱不释手,这样的心情之下反倒留下了许多有意义的画面。

前段时间领证在小红书上找了一个胶片跟拍,他带着我们在杭州运河畔的小河公园中拍了一些照片,质感很不错,我们在重新翻阅这些抓拍的画面时也常常能回想起当时的场景和心情,于是萌生了给父母和妹妹也拍这样一套写真的想法。

DSCF0314

DSCF0505

父母相恋近三十年,彼此陪伴经历过许多风雨,但自我记事以来从未听他们吵过架,到了现在还依然甜蜜,或许我骨子里依然保留的对美好爱情以及婚姻的向往也多来自他们。

但爸妈都算是不太爱拍照的人,其实我们家庭也从来没有类似相册这样的存在,即使是在我买了相机开始玩摄影后的几年,也很少有家人的照片。在我们的劝说之下终于一家人在一个午后出动了,走走停停,嬉笑打闹,晚上回家后在电视上投屏幻灯片播放所有的照片,全家人一起选片,偶尔也会被抓拍到的几个搞怪的表情逗笑。

DSCF0548

DSCF0549

不久之后又回了趟老家看望爷爷奶奶,他们已经近八十岁了,过了青春活力的时候,更不愿意拍照了,但还是拍到了几张。很有趣的是在给奶奶拍照的时候顺带采访了一下当时为什么要跟爷爷结婚,奶奶长长地叹了一声“唉...” 🤣,尽在不言中。

zheming_baby

还有个番外篇就是刚好一位孩子刚满百日的高中同学邀请我们出来玩,还在约拍新鲜劲里的我们决定拓展一下婴儿摄影业务,带了两台相机去给他们拍了一些家庭里的日常,也很有趣。

父母亲人会老去,孩子会长大,时间会带走许多东西,我们无法阻止时间向前流动,但影像提供了一种与之对抗的方式,有时候无关技巧甚至是拍出来的成果,仅仅是按下快门的那一刻,一切都有了意义。

新年

All I want for new year is you.

newyear_2025

这也是一套找摄影师约拍的照片,选了一个老街区拍的很日常的街景,或许没有其他人的婚纱照那样雪山、草原、大海那样的壮阔,却是我们彼此最珍惜的在杭州的日常的,对我们更有意义。

也祝大家新年快乐。

有趣的事与物

输入

虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。并且把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。

文章

视频

剧集

  •  

周报 #85 - 京华烟云 Moment in Peking

2025年2月3日 03:56

前言

weekly_review_85

本篇是对 2025-01-202025-01-26 这周生活的记录与思考。

一直很喜欢 Moment 这个词,林语堂的「京华烟云」的英文译名就是 Moment in Peking,似乎把在一个城市生活过的痕迹和点滴具象化了,所以也借用一下这一名称。

Moment in Peking

去年年中的时候和学姐一起暂离了北京,在杭州生活至今。

曾经我们也会觉得北京的生活平常到有些乏味,城市很大,在其中的我们很小,每天忙碌行走在其中,常常忘记去感受,刚好有机会离开时甚至也没有多少犹豫,反而更多充满着对新生活的期待。

而恰好这一周要办一些事,因而决定一起回北京“度假”,故地重游,曾经觉得冷冰冰的城市却也因为一年多的点点滴滴而带上了很多美好,放慢了脚步去体验反而能感受到珍贵。

回想一下那一年在北京的 Daily Routine,似乎也很有意思。

beijing_food

每天早上七点多起来,切一些前一天晚上从超市下单的水果,做个煎蛋或是烤吐司后,匆匆忙忙赶着人流走上十几分钟送学姐去上班,有时还会约健身房的教练上课。

上午我通常会回家写代码,直到十一点多去公司门口接她下班;中午有时会点外卖,来了兴致也会自己简单做个炒饭什么的,会看《请回答 1988》、《机智的监狱生活》这几个剧下饭,然后午休一会儿;下午再把学姐送到公司上班,通常就会在学姐公司旁边的星巴克里一个有阳光洒进来的位置里办公,直到五六点再去公司门口接她。

晚上有时候会去旁边的商城闲逛一下或是去不远处的日坛公园散散步,回家路过菜场买点菜做点家常简餐,继续看中午的剧,看着两只小猫嬉戏打闹,各自看会书写点东西,结束一整天。

boyi_paint

到了周末有时候会去画室画画,我大多坐在家长区拿着电脑办公或是开会,偶尔看看她,有时也会瞥到学姐偷瞄我是不是在看她,装作若无其事的样子。

大部分时间也只是在家看看剧,却又因为提前约好的健身教练而挣扎着收拾出门;偶尔也会看一些展览或是音乐会 dating,有时也会惊喜地遇到像是朝阳啤酒节或是「小鹿 Lawrence」在 Apple 三里屯举办分享会这样的有趣活动;彼此也会去见对方的一些朋友,吃饭聊天,或是邀请他们来家里作客。

学姐说我这最近几个月里似乎因为工作压力或是生活琐事叹气的次数变得更多了,却也要扮个鬼脸强装没事,偶尔也有提到似乎在北京的那段时光更开心一些,不用思考那么多事,只需要简单生活。

但又想想,当时的自己其实也有很多迷茫的时刻,只是回头来看却已经是很幸福了。时间有自己的尺度,一切的开心或是烦恼也都是相对的,现在的我们似乎有时候也会陷入当前生活的困境中,但或许未来的某一天回头看,也会说

“在杭州的那段时间真快乐呀,有那么多时间,有家人猫猫,有相爱的人,能一起做那么多事。”

pic_desktop

在北京还有很多课没上完,这次回去陪学姐去画室画画的时候,自己也尝试着画了下在杭州的工作区,这也是我每天待得最久的地方了,感觉通过画笔留下这些也很有意思。

pic_avatar

这是我第二次尝试油画,第一次也是在同一个画室,画了自己现在全平台在用的头像。

有趣的事与物

输入

虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。并且把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。

文章

视频

剧集

游戏

  • 双人成行 It Takes Two,玩了好几关了,感觉难度和游戏性很设计得很折中,我这种手残回合制玩家也能有不错的体验。
  •  

周报 #84 - 想起他们 Echos of Reverie

2025年2月3日 00:57

前言

weekly_review_84

本篇是对 2025-01-132025-01-20 这周生活的记录与思考。

这一周发了一些婚礼的邀请函,回去见了初中老师,还回了趟老家看了爷爷奶奶,很久违地高密度地想起或者说是回忆起自己这二十几年的生活,感慨之余也开始接受过去的许多人事物已经慢慢远去。

生活早已远去

最近在发婚礼的邀请函,是一种很神奇的体验,似乎需要在人生进度条百分之二三十的时候,去细数一下过去走过的一些痕迹,以及身边还剩下些什么。

我算是一个客观主观上都“颠沛流离”的人,在江苏老家生长到八九岁,小时候应该是有不少在乡间一起玩闹的小伙伴的,但离开的时候总归是太小,十余年后有一次回老家爸妈指着一队人跟我说“这是当时跟你一个班的 xxx,你们之前玩得很好”时我已经连样貌都完全记不清了。

八九岁时转学到了杭州,带着些乡音有些蹩脚的普通话、内向到有些木讷的性格以及不安全感让我有些难以融入这个新的环境,再加上遇到了并不那么好的老师,但好在幼时的自己心思也单纯简单,总是逆来顺受,倒也算是“幸运”地度过了那段时光;进入了初高中之后遇到了很好的老师,也交到了朋友,似乎对于杭州也慢慢有了更多的归属感,然而在只身去了武汉上大学之后,多数杭州的朋友变为寒暑假限定甚至是几年也难见上一面。

再到后面似乎走得更远了,在武汉度过了人生重要的几年时光,遇到了至今还常常会夜谈的舍友/好兄弟;再是香港、北京以及远程办公之后不再拘于地域认识的更多的朋友们,认识的人总是越来越多的,留下的却越来越少,太多一面之缘。

自己在每一个地方待的时间都也算不上太长,很多昔日故友也都在距离和各自人生际遇的改变中慢慢远去。我似乎之前总是自诩为一个念旧的人,过去的东西总是不愿意丢即使已经不断在侵占自己的生活空间,但似乎在现在这个节点重新回头看,这或许只是对过去自己的一种怀念,时间不断向前,生活也早已远去。

想起他们

前段时间在循环毛不易的一首《想起他们》,是我很爱的博主「小鹿 Lawrence」做的 mv,开篇的第一句就是:

你们和曾经最好的朋友,最近还有聊天么?

一年多前,我和曾经的一位挚友不再联系了,因为一些矛盾。

成为朋友大约已经十四五年了,超过了我目前人生的一半长度,彼此算是见证着成长和人生起伏的人。这一年多里有时候也会在想,如果过去的十几年里没有他的存在,我会是什么样?也会感到有些遗憾,何以至此。

前段时间去见我们共友/初中老师,聊了许多,曾经的很多事,我们矛盾的始末、各自的感受和现在的生活。了解到似乎他的生活并没有很大的变化,倒是我自己在短短的一年里似乎已经习惯于脱离过去的那个自己了,人总是会在生活与生命的不同阶段寻找不同的自我的,就像歌词里说的

“现在长进了么 我不觉得

能困住我的事情 还有好多呢

那 变得更弱了么 我也不觉得

毕竟那些经过 得算些什么”

聊完后有一种释然,算不上了却心结,但似乎更像是一场道别,跟过去的那些事,连同那段时间中的自己。

“有人在我身边 往来穿梭

留下一部分他们

带走一部分我”

老师最后问了一句,你们会想着再和好么?

我想了想,或许也只会等两个人都到了新的阶段,在未来的某个节点,重新认识吧。曾经同行,感谢和抱歉或许也都不会再说出口,而是化为一部分的自己,带着过去的欢喜和遗憾前行。现在的我似乎更成熟了,有了更认真去经营的生活,面对新的朋友新的经历也默默地告诉自己切忌“交浅言深”。

人只有慢慢长大,这个世界才会向你展现全部的真相。过去这些经历也都藏在我与这个世界往来的分寸中,化为某个黄昏突然的想起,或是化为未来的一句“好久不见”。

  •  

周报 #83 - 年初收纳(房间、设备、服务、软件)

2025年1月20日 06:48

前言

weekly_review_20240120_83

本篇是对 2025-01-062025-01-12 这周生活的记录与思考。

这一周整理了自己的房间、抽屉、NAS、线上服务、网络环境等,实现了物理与虚拟空间的断舍离、收纳和优化。

房间整理

我大体是一个懒于整理房间或是收纳的人,但由于通常也就是在电脑前工作、学习或是放松,基本上没用到家中的什么空间,所以倒也算不上乱。

但由于最近工作和各种事项日渐忙碌,以及和学姐对于各自独立空间的需求,我开始把自己大部分的生活空间放回到我自己的租屋,也就趁此机会彻底整理了一下,花了大概六七个小时,最终收拾完的时候能够感受到由生活空间的整洁带来的秩序感。

网络管理

yu_home_router

我租的房子是一个几十平米的 Studio(大开间)户型,不太需要组网之类的,由一台高达主题款的 Asus RT-AX86U 路由器提供所有的网络,也没有怎么刻意折腾网线布局,靠近路由器的地方有一台 DIY 的 NAS 和一台懒猫微服是直接通过网线连接的,剩下所有设备都用的 Wifi 连接,基本上在房间内感受不到网速有什么瓶颈。

宽带是电信的千兆光纤,并且向运营商要了 ipv4 公网 ip,在 NAS 上安装了 ddns-go 服务,动态地更新公网 ip 的解析,并且通过路由器层面的端口转发暴露一些必要的网络服务供自己不在家的时候使用;后面觉得公网 ip 直接暴露的方式还是有些不太安全,于是又通过 Tailscale 搭建了一个私有网络并在之前活动便宜囤的一台上海的服务器上自建了一个 Derper,实现所有设备直接的网络联通,目前使用下来感觉是更好的方案(之前也用过 Surge Ponte,不过可能用的时候还比较早期并不算稳定,所以换了方案)。

Asus 的路由器可玩性很高,刷了梅林固件,安装了 Clash 应用,自己写了规则接管和分流了家里的所有设备的网络流量,所以家里的其他设备也都无须再折腾网络代理了。

存储管理

lazy_cat_pic

我之前其实一直没怎么注意过个人存储的,主要就是靠一个 1T 的三星 T5 SSD 移动硬盘来存一些重要文件,后来又开始用 OneDrive 来云备份,但最近在有了 NAS 和懒猫微服后,又重新整理过自己的整个存储方案。

首先因为 Macbook 是 1T 的,本地会保存大部分重要文件,然后因为通过土耳其区的 Apple Store 购买了 2T 的 iCloud 空间,所以 iCloud 云端也有一个备份;然后会把所有的视频和照片同步到 openmediavault 的 NAS 上(8T RAID 5),懒猫微服上也会有一份(8T RAID 0),这样基本上对所有文件都有些保障(也使用了 rsync 来自动同步更改,不过感觉对于大文件不算稳定,大部分时间还是手动)。

数码设备管理

yu_apple_tv

家里的 Apple TV,直接连着坚果 O1S 投影仪,这款是短焦的,所以直接贴墙使用就能够投出不错的画面,也不用担心遮挡这些,家用还是挺足够的,也默认连着一个 Homepod mini,平时用来当动态墙纸放歌也不错,构成了我的影音区;租的房间里自带了一台电视,连了我的 Nintendo Switch,旁边还有一台 Steam Deck,也可以通过 type-c 线直接连到电视上玩,也算是有了一个独立的游戏区(虽然很少玩了)。

前段时间进行了一波电子设备的断舍离,把 Mac Studio、Chromebook 和不算常用的屏幕、键盘、充电宝等都出了闲鱼,日常办公就只剩一台 14 寸的 MacBook Pro 了,在家里会直连去年买的几硕的 FlipGo 便携显示器,这样就相当于有了一个 14 寸的主屏和两个副屏,出行也直接线一拔,不用像之间一样考虑两台设备的配置、软件统一,开发环境等,反而能更专注一些。

宠物设备管理

A7_04487

捏捏很多时候会在我的房间,家里的宠物基本上都是小佩(PetKit)家的,全自动猫砂盆、喂食器和饮水机,真的是让养猫体验 MAX,一个 App 管理所有的;还有一个米家的摄像头观察家里整体的一些情况,其他智能家居暂时都没怎么启用了,不过还是想着折腾一下用 Home Assistant + Home Bridge 把所有的都聚合到 iPhone 的 Home 应用里来一键管理,最近弄一下。

相机整理

camera_a7m3

相机现在有三台,2018 年买的 Sony A7M3,前年买的 Sony ZV1 Mark II,和一台刚买的富士 X100VI,也做了很好的分工,A7M3 连着罗德 Wireles Go 麦克风,配合着一个百诺的脚架,常驻着放在办公区背后,减少拍摄视频的筹备流程,基本上能做到随时开录,而有些对着电脑的音频录制、教程则是直接用 Shure MV7 连着电脑来录,希望今年能够更多一点产出;出门的话则是直接带着 ZV1 拍视频,没有其他什么配件,就用自带的机身麦克风外加了一个官方的手柄,基本上随开随录,旅行和日常记录很足够;出门街拍就完全用 X100VI 了。

服务整理

网络代理

目前最影响日常生活工作体验的就是网络代理了,线路方面自己用 CN2GIA DC6 的一台美国机房搭了一个 trojan 节点,再加上朋友的一台新加坡的 ss 节点,基本上满足了日常需求;然后也有两个机场作为 fallback 和代理一些流媒体,比如 HBO Max,解决一些区域限制问题。

而由于 Mac 和 iPhone 上惯用的是 Surge,而路由器只能用 Clash 规则,常常不方便统一管理,于是用 Surgio 这一规则管理工具通过 GitHub Repo 维护和同步远程规则,更便于管理,自己也日常不断微调分流规则和一些配置项,更适应自己的各类需求。

自托管服务

yu_serveices_2025_01

我的大部分静态网站类服务都在 Cloudflare、Vercel 和 Zeabur 上,而容器类服务则是分布在各种 VPS、独立服务器、NAS 和各种 serverless 平台上,最近整理的时候也作了一大波迁移。

Zeabur 貌似最近计费方式有了一些变化,感觉费用明显上涨,在没新增服务的情况下这个月超了 Developer Plan 5 美元额度不少,所以把一些消耗资源或是流量请求很大的都迁移走了,只保留了一些低消耗但对稳定性要求比较高的服务,例如博客访问统计系统这些。fly.io 因为还有免费额度,上面只跑了我博客的 Remark42 统计服务,也迁移到了最便宜的 IAD 区域,挂载了 3GB 的 Volume,基本上能控制在免费额度之下,持续观察中。

由于之前有个比赛奖品之一是一年期的 AWS 一万多美元的 Credits,所以在机器上使用 Coolify 进行管理,把大部分的自用服务/开发环境放在了一台 8c32g 香港机房的机器上,可以直接使用现成的 Docker Compose 文件进行部署,也可以使用 Webhook 联动 GitHub 触发,基本上满足了我的需求,可玩性和定制化程度都要比 Zeabur 使用 k3s 的方案要高不少,数据库类的应用还很方便直接使用 S3 进行备份,等 AWS Credits 到期后可能也会迁移到 OVH 或者 Hetzner 独服上。

软件应用

yu_app_screen

我是一个对软件工具很挑剔的人,不过从今年开始也开始主要降低手机上各类 App 的使用,电脑上也尽量简化了工作量和干扰,开始更多体验和支持一些独立开发者的项目,其他的软件工具等最近在 「GitHub - pseudoyu/yu-tools」会再更新一下,这里主要讲一下 AI 工作的使用。

目前最高频使用也是依赖的是 Cursor Pro(年付了),日常使用它的补全、CMD+K 以及 Composer(Agent)模式进行工作和各类项目,都依赖的 Claude 3.5 Sonnet 模型,已经能协助我完成大部分的工作。另一个年付的是 STRRL 开发的 Haye AI 项目,日常绑定了一个 CMD+E 快捷键来优化我的一些英文写作,也很偶尔地用它的对话框功能。

GitHub 一直给我续着 Copilot,我使用 ChatWise 项目来绑定使用 Claude 3.5 Sonnet 模型来进行一些小的编程类问题的 Chat,也绑定了我在 NekoAPIburn.hair 上的 API Key 来使用 GPT-4o,ChatWise 还绑定了 Tavily 的 API Key 来启用 Web Search 功能,可以代替 Perplexity 来使用;另外就是在 Kagi Search 的三个月试用中,作为一个搜索引擎其实倒是没有什么体验上的感知,不过还是有明显地减少我对 AI 生成内容的依赖,其实整体得到的信息质量是有提升的,但是 Kagi Summary 等功能几乎不太用。

有趣的事与物

输入

虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。并且把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。

收藏

书籍

文章

视频

剧集

  • 去有风的地方,每天吃饭的时候看的,感觉还挺喜欢这种没太多 drama,只是比较平静地展示生活日常的日常向的剧了,也有点想去云南看看

游戏

  • 双人成行 It Takes Two,玩了好几关了,感觉难度和游戏性很设计得很折中,我这种手残回合制玩家也能有不错的体验。
  •  

周报 #82 - Brand New Year 与写日记

2025年1月6日 09:16

前言

weekly_review_82

本篇是对 2024-12-292025-01-05 这周生活的记录与思考。

2025 的第一周似乎也因为更换了年份而被赋予了特殊意义。更多计划一些习惯养成,用纸笔做日程管理,也开始在本子上写日记,记录一些零碎的生活思考;给父母进行了一场约拍,留下了在杭州的点滴记忆;跟学姐一起在 Switch 上玩「马里奥赛车八」和「双人成行」,很放松;还有很多有意思的事。

Brand New Year

今年也按照惯例写了年终总结,说是惯例,生日的总结确实是从 2022 年开始就坚持了下来,去年年末却因为状态确实不太好而搁置了,不知不觉一年也就这样过去了。而今年虽也匆忙,但总还是想着自律一些,想给未来的自己留下些什么。

写完后其实有些丧丧的,分了几个小主题来陈述一些思考,最终还稍稍上了点价值,然而实际情绪要低落得多。我应该已经算是努力了吧,工作、技术提升、side project 都有在推进,有更多陪家人,婚礼也在事无巨细地筹备。

我有努力平衡好这一切,但似乎还是很难都做好,甚至对短视频深恶痛绝的自己在几个夜晚毫无目的地随着 B 站的算法推荐刷到睡去,早早关闭朋友圈的自己有时候也会无意识地刷推,终究还是向虚拟世界索取了一些东西。

元旦的第一天就并不算很顺,车子刮了一次,还莫名其妙地因为在等待前车堵着的时候被后面暴躁的司机莫名地骂了,自诩情绪稳定的自己在一整天的积压之下也还波及到了学姐,真是糟糕的自己。

2024_pics

晚上甚至有几个瞬间悲观地想要破罐破摔,新的一年大概也就像这样了吧,晚上学姐发了几十张她相册里的照片,说「这都是 2024 年的你」,温暖而感动。

其实 2024 年也尝试和完成了很多有意思的事:

  • 坚持了很久的私教健身
  • 体验了油画和油画棒,画了自己现在的这个头像和一些生活碎片
  • 去巴厘岛旅行,在库塔体验了冲浪
  • 家庭旅行,带爸妈、妹妹去内蒙玩/见学姐父母
  • 在北京鼓起勇气约了偶像 Randy 见面,后续还一起做好多好玩的事
  • 在 Adventure X、ETH Shenzhen、OSPP 等很多活动中担任导师,还在清迈 Invsible Garden 中第一次尝试为期一个月的英文讲课,还认识了一些有趣的其他 mentor
  • 在爸爸的汽车修理厂里墙绘
  • 重新捡起了滑板的爱好
  • 学会了驾照,去杭州周边的一些地方以及南京自驾游
  • 2024 年 9 月开始坚持(并不那么严格的)素食,也坚持了一个多季度了
  • 和学姐去清迈、曼谷,第一次体验了瑜伽、打坐,还去看了日出
  • 一起回到了香港,见到了对彼此都重要的一些朋友老师
  • 五音不全的自己也和学姐一起报名了声乐课,学习了方大同的「特别的人」、张信哲/刘嘉玲的「有一点动心」,正在学李健的「假如爱有天意」
  • 买了新富士相机,给父母、妹妹在小河公园约拍
  • 求婚、领证并筹备婚礼

原来细数这一年也做了很多有意思的事,很多事都是第一次尝试、是一年前的自己完全想象不到会去做的,以及,几乎每一件事,都有学姐在身旁。

在已经到来的 brand new year 中,希望自己也能继续前进。

日记

我是一个非常电子化的人,之前折腾了很久的 Notion、Logseq、Obsidian、Apple Notes 还有 Things 等等软件,也尝试在 Notion 上每天写日记,但是总感觉非常难坚持下来,或是写的内容回头来看总是形式大于内容。

最近在看了「A notebook to save you from infinite scrolling.」这个 YouTube 视频后开始重新思考这个问题,刚好又在「加谬手记」中读到了他对自己写记录制定的规则:

规律记录,而且不准多话。持之以恒,专心致志,不为任何外在眼光或满足自身虚荣而书写,并要专注于身(行为)心(思考)之修养并在两者间取得平衡。

我也有尝试过在 Telegram Channel 中更新每日一些细碎想法并每周组织成周报,坚持了一周多发现一旦心理上设定为「write in public」后,写下的东西就多了一些矫饰,会多一些美化而很难展示当下的两面性,在回顾时又需要花额外的经历从这些文字中剥离出更真实底层的念头。

学姐倒是一个常写日记的人,在她之前的一篇博文「失去的表达欲」中也表达过类似的想法:

也因为自己感受到的世界因日增的思考体悟而不断移步易景,所以表达欲渐渐丧失,总觉得自己能讲述的太浅薄,有些结论太武断。此外,日记倒是常写,但如果写博客,就难免会有想象中的读者。如同日常在家中横躺竖卧,偶尔也可能邋里邋遢,但客人到访难免收拾一番,展示美好景象。一旦开始公开表达,就难免会矫饰,我不喜自己可能会透露出的虚荣或自负。(就在此刻,我的自负在于标榜自己是个不爱标榜自己和不自负的人。)(就在上一刻,我的自负在于自己虽然自负,但标榜自己并不以自负为荣。)

虽开始写作就难免需要克服这些障碍,但日记这种形式还是能够少一些镣铐,无需顾虑太多。于是新年多了两项 daily routines,一本是日记,记录一些日常的人事物和思考;另一本则是日程表,作为 Life Tracker 来记录一些习惯养成、重要事项/节点与日常的一些待办或是 random thoughts。

journal_2025_project

日程本子很有意思,有画格子记录自己的一些习惯养成,就像福格行为模型中叙述的一样,只是多了一点点仪式感或许就能够让自己整个状态都变得不一样;而日记从最开始写得长长的冗杂的想法,到现在已经可以几句话讲出最重要的一些思考,更真实随意,也少了一些“写下来”的心智负担。

于我来说,日程本和日记更侧重于记录与回溯,日常的工作与笔记还是会在电脑上用 Obsidian 与 Things 完成,而每周末的周报则像是在上述的这些记录之上再进行的一些整理和呈现。

有趣的事与物

输入

虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。并且把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。

书籍

文章

视频

剧集

  • 鱿鱼游戏 第二季,第一季倒也是就是下饭看了下,感觉第二季更加立不住了,反叛、反转都有些太意料之中了,人设也不是很立体
  •  

2024 年末回顾 - 不完美的日子

2024年12月31日 23:52

前言

yearly_review_2024

今天是 2024 年的最后一天了,但大概是由于每年生日刚好是在年中,会依例写一篇总结,再加上虽然常常不准时但累积着还是写了三十篇周报,所以其实在此刻回顾这一整年倒是并没有那么遥远了。

短短半年,似乎一切又有了很大的变化,2024 年末回顾也如约而至。

关于 2024

其实一直没有勇气回头翻看 2020 年自己写过的这一篇总结「23 岁的自白:去追寻意义」,那时的自己少年意气,对生活与未来无所畏惧,写下的文字也像是对过去努力的自己的一个颁奖礼。

而今年呢,马马虎虎吧,立下的很多 flag 没有实现。

年初体检查出了一些问题,当时说这一年一定要优化参数,等明年再体检时能少个几项,然而运动和饮食都并不算理想,现在甚至也只能暗暗祈祷不要再多出一些问题;工作和技术上当然是有进步的,但也依然和自己期待得相距甚远,甚至静不下心的时候还变得更多了;爱好方面,拍了很多素材,却没能剪出哪怕是一个自己满意的视频;摄影也搁置了,甚至出门拿起相机的次数都并不多。

有时候看着 polebug 的视频,很羡慕还可以这样坚持做自己喜欢的事,而我似乎心有余而力不足的事越来越多,虚度了许多时光,但每一天还是慌慌张张地被生活裹挟着前进。

前几天又重温了「土拨鼠之日」,菲尔被困在普通的一天的循环中,同样的人事物经历了无数次,绝望而麻木,直到开始尝试改变、尝试去爱,最终让这一天变得特别。

我们没有重新改变这一天的能力,每天也都是不完美的,但或许可以把每一天当作土拨鼠之日,换一种角度和心态去重新赋予这一天意义。

关于成长

yu_sunrise

年中的自己挣扎于成长的人生命题,在「27 岁的自白:成长是一件很扫兴的事」中思考自己是否真的有足够的勇气成为一个合格的大人,半年过去了,依然不确定自己找到或是靠近了答案。

但似乎已经开始慢慢适应和接受了自己就是一个普通的人,也不再是那个能够任性不顾一切恣意生长的自己了。

这个世界本就不是以我们为中心的,也并不是所有的事情都能够按照自己期待的样子发展,但或许还能依然坚持着不被这个社会打磨成一个圆滑世故的人,依然能够拾起对生活的热情、对他人的善意和面对未来的勇气。依然会平凡而认真地生活着,依然能够让 10 年后的自己为现在的我感到骄傲。

关于家人

A7_06175

自己一直算是一个独立的人,过去的二十几年里也算颇为自洽,习惯了不依赖家人,也能为自己的选择与决定负责。

因此也并不算是一个恋家的人,从大学开始独自在外游荡了快十年想家的次数也屈指可数,但从今年年初开始重新回到了杭州生活,与父母和妹妹距离更近相处更多了,似乎才开始理解家和家人对我的意义。也更真切地发现自己原来已经是家人遇到问题或是重要决策时会第一时间想到或是依靠的人了,在不知不觉间,自己已经能承担起更多责任了。

父母日渐老去,该是我接过生活的接力棒了。

关于爱情

20241226171023-2

年终的另一个重大的变动是和学姐领证结婚了。

其实直到现在还常常没有什么实感,有时候在填写资料时看到配偶一栏还是有些恍惚,有朋友好奇地问我说“结婚后有什么变化么”,我认真地想了想,发现其实相处模式也没怎么变,甚至各自独立找寻自我的时间还更多了,因为未来还有无数个在一起的日子,不急在一时。

“来日方长”有时候也是一个普通而浪漫的词,因为坚定地选择与被选择着,时间似乎也也变得缓慢而漫长了,任何细碎的日常都变得很美好,比如窗口洒进的几缕阳光,比如一束好看的花,或者悄然的一个吻。

人和人各不相同,所以相逢才有了意义,我们各自人生走过了许多风景,而如今,我们也成为了对方眼中的风景,很幸运。

后记

新的一年其实并没有打算再立什么很宏大的目标了。

能更多关注自己和家人的身体,相伴度过漫长岁月;工作和生活能有更好的平衡,多追求一些热爱的东西;买了新的相机,每天多留下一些生活的片段和眼中的美好;把囤着的视频剪出几个来,也持续记录更多,用影像打败时间;认真生活。

日子都是不完美的,生活的本质亦是如此,不够美好但也并不残酷,但即使自己并不能真正触碰到月亮,也依然要抬头仰望,伸手去摘、去够。

祝 2025 年的自己,快乐。

  •  

周报 #81 - Engaged -> Married 与时间的尺度

2024年12月28日 22:49

前言

weekly_review_81

本篇是对 2024-12-092024-12-28 这两周生活的记录与思考。

最近忙着结婚周报又拖了。

Engaged -> Married

yu_boyi_photo_02

Got married today and can’t wait to share my life with you forever.

最近听到身边说得最多的一句话就是 —— “你们好快呀”。

确实,从 12 月初求婚,到密集地跟婚庆的各个环节沟通,再到平安夜领证,似乎一切都发生在短短的一个月里。最开始其实有不少彷徨和迷茫,甚至压力大到生了接近半个月的病,但随着开始用 Things 和 Obsidian 开始做规划和会议纪要/策划,当作一个项目来管理,似乎慢慢清晰了很多,虽然依旧仓促,但逐渐也能够享受其中。

婚礼在明年年初,从月初就开始了 100 天极限备婚,幸运的是父母并不干涉我们的各种计划,使得有些想法得以按照我们的想法去实现,比如宝可梦主题、砍掉了婚礼大部分环节、不请司仪自己主持、婚宴现场无烟、不拍婚纱照而是改为日常些的约拍以及还在策划的一件有意思的事,在完成父母家长心愿的同时,也保留了自己的一份期待。

yu_boyi_photo_01

领证当天找了一个胶片摄影师在附近的公园里约拍了一些,风格还挺喜欢的,图片太多就单独发下一篇写真作为纪念了。

时间的尺度

hongkong_xmas

上周末由于要置办一些物件,和学姐一起回了香港。虽然这两年有因为参加活动等各种缘由回过几次香港,但这次才深切地感受到距离当时来香港上学已经和学姐初见已经过去了四年之久。

是啊,已经四年了。

刚好前两天好朋友/大学舍友给我发了一些 2015 年刚到学校军训时间的照片,说在回想自己这十年是怎么浑浑噩噩地过来的,当时初离开家到一个陌生的城市,满是青涩稚嫩,到上课、毕业、工作,直到现在。

这十年于我而言倒是没什么好后悔,我一直觉得人生是连续的,当初的得失也都内化与构成下一个阶段的自己,缺少任何一段经历或许都会截然不同。

就像「时空恋旅人」电影里的那样,越到人生后面的阶段,有了更多没法舍弃的东西,即使真正拥有了能够回到过去的能力或许都不会去改变什么了。

只是当时间的尺度这样摆在面前时,依然会有些难过。

有时候和学姐闲聊的时候会很无意识地说“我当时初中体育中考 1000 米跑了 3 分 19 秒,后面再也没有超过这个成绩了”、“我大学在学校工作室创业可以同时做好多事,现在精力也不如之前旺盛了”等等,学姐有时会打趣道开始回忆当年勇就快要步入中年了。

marriage_cert_nienie_fanfan

慢慢其实也在经历完整的人生。熬过外婆病痛离世的至暗时刻后甚至又遇到了跟我一起长大的表哥的意外身故,半年内失去了太多;一天天看到父母明显老去的面容,自己的身体和状态也开始出现了大大小小的问题;遇到心爱的人,养了两只猫、恋爱、求婚与结婚。

人是无法去对抗时间的,想到这一点就总是有些伤感,但忆及过往时也只是会羡慕一下过去明媚的那个少年,然后继续在当下认真生活,有点像是在用现在的努力去救赎未来的自己。

有趣的事与物

开源

opensource_2024

全职开源第二年,快乐了许多。

入坑富士

用 Sony A7M3 已经七年了,虽然很够用但总觉得每次出去拍照的心智负担很重,也常常积累很多素材迟迟不修图,因此这两年去了很多地方却没留下多少照片,甚至还是在买了 Sony ZV1 Vlog 相机之后才多留下了一些影像。

早早过了追求和折腾参数的年纪,只是想多拍一些,于是这次去香港终于入坑了富士,买了一台 富士 X100VI,很小巧的相机,色彩和内置的胶片模拟可以基本上摆脱修图了,希望未来的一年里能多拍一些。

输入

虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。并且把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。

书籍

  • 自学大全,从内容到表述都没什么亮点的一本指南,浪费了人生宝贵的几个小时 😶‍🌫️
  • 控糖革命,在看。

收藏

文章

播客

视频

  •  

周报 #80 - 关于求婚、爱情与婚姻

2024年12月10日 23:59

前言

weekly_review_80

本篇是对 2024-11-292024-12-08 这周生活的记录与思考。

过去的这一周多做了件大事,求婚了,思考了很多婚姻与爱情;但由于筹备结婚相关事宜,累到身体和精力都有些不足,甚至久违地生了一周多的病;还有很多有意思的事。

关于求婚、婚姻与爱情

从泰国回来的我似乎给生活的方方面面按下了加速键,从一个普通的晚餐时突然决定要结婚、挑选两人心仪的对戒、回内蒙见学姐父母亲人、谈酒店和婚庆,到找摄影师约拍和偷偷求婚,有欣喜和快乐的部分,也有随之而来的焦虑、疲惫和自我怀疑。

关于求婚

其实在此之前的我们都并不觉得婚姻是什么必要的东西,也从未觉得这一人为的社会约束和爱情有什么必然的联系,甚至隐隐有些害怕这些强加的流程和“仪式感”反而会消耗本就珍贵的爱情浓度,觉得一直这样相爱也不错,至少于我们两个个体而言。

但似乎真的存在一个 moment 时刻,觉得想要和这个人未来能一直一起生活,得到所有人祝福地一直在一起,于是“我们结婚吧”这一念头乍得浮现。我不知道是不是所有的恋人伴侣都会经历这一刻,很神奇,像是一种感性先于理性的冲动,自然而然地发生了。

而关于求婚本身,看了非常多的视频,有「小鹿 Lawrence」在「我 求 婚 啦 !!」的天花板级浪漫, 有「KatAndSid」在「七年长跑,我求婚了,在鲸鱼的见证下」的专属意义,也有「树洞里的理查德」在「我在秒速五厘米的电车前,向十年前喜欢的同学求婚了」里的娓娓道来。一遍一遍地刷,似乎却还总是会被他们的爱情一次次感动到。

而我对此似乎始终有着一些私心或是执念,我也想要一个很酷很厉害的求婚和婚礼,和大家都不一样,像 Sid 在视频中所说的:

我们的浪漫会变成一种主义,去盛行于世,久久不息。

但随着这一想法萌生(其实大半年前就有想到过),我逐渐发现自己很难完美地完成它,甚至让我有些逃避。日常记录得太少太散,没办法剪成一个完整的叙述的视频;似乎因为签证和工作各种原因,也没办法在短短的时间里去到什么极致的美丽的地方;甚至自诩仪式感的自己却把结婚这一提案(Proposal)先于了求婚(Proposal)本身,不知道怎样才能保留一个惊喜感;不想要在众目睽睽之下却又想要我们专属的记录,有自己的「人生照片」或是影像。

proposal_to_boyi_02

最后,在记录我们杭州生活的约拍中和摄影师提前约定好场景和暗号,拿着作为拍摄道具的本子和手捧花突然袭击,虽然念求婚誓词时像是个神父,虽然因为念了两页导致围观的人越来越多,虽然连戒指也没有而并不完整,但当最后那一刻到来时,似乎一切都刚刚好。

关于爱情与婚姻

很多人会问起,并且自己也开始重新思考,是哪一刻自己决定和这个人携手共度余生的呢?

想了很久,似乎是两个时刻。一个是我们在讨论未来出国计划时我突然意识到我和我们计划的未来里似乎对方理所应当地存在了;还有一个是在一次闹矛盾又和好的时候学姐说了一句 —— “我们现在又是好朋友了”。

friends_proposal

最喜欢的美剧「老友记」中 Chandler 和 Monica 的婚礼上,Monica 说的那一句:

My prince, my soul mate, my friend.

这大概是我理想的爱情应有的样子 —— 一切浪漫或是对浪漫的想象都能在另外一个人身上找到,灵魂有共鸣,彼此是最好的朋友。

即使依然存在着许多不确定性和迷茫,但牵着对方手的那一刻,一切都很简单。

love_propoal_telegram

而我,似乎也找到了。

有趣的事与物

阅读摘记

daily_routing_book_part_01

最近在读的「創作者的日常生活」这本书作者的博客,记录了各种人有趣的 daily routines,他讲话可太 mean 太有意思了。

讲到马克思写资本论的时候的日常时说「我从没听过任何人这么缺钱,还会去写钱的事」;

讲到酗酒的土鲁斯罗特列克自己说「我估计自己在四十岁的时候就会燃烧殆尽」的时补了一句括号「事实上他只活了三十六岁」;

讲到亨利格林自叙明明可以依靠家族遗产过活却每天还是去上班,觉得上班对自己的想象力和保持清醒很有用时补了一句「格林之所以依赖白天的工作,无疑也是因为他真正的职务几乎是零的缘故」。

可能由于作者主要是以写博客闻名的,语言风格明明都是平铺直叙,却莫名地很吸引我。

油画课

oilpainting_nienie

又到了每周去国美蹭油画棒课时间!画了一张捏捏,自己还挺喜欢的。

输入

虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。并且把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。

书籍

  • 創作者的日常生活,记录了各种人有趣的 daily routines,文字是博客风格,有点 mean 真的很有意思,读完后对各个只在课本里存在过的艺术家们有了更具象化人格化的认识(有些人真的很好玩),从创作和工作流程上也得到了不少参照。
  • 福格行为模型,我自己其实是不算这类书的爱好者的,总觉得当自己预先 hack 了行为背后的逻辑就没办法相信它能奏效。但福格的这本带给了我很多惊喜,在培养/改变一些习惯时会从 MAP(动机、能力和提示)思考,也开始拆分和培养小习惯。很有意思的是昨天跟着一个教程把手机里的干扰源删了并配置成文字启动器的模式恰恰符合了模型中增加坏习惯/干扰源的开启阻力这一点,真的很有效。
  • 小城与不确定性的墙,和《世界尽头与冷酷仙境》一样的设定,小城、影子、双线叙事,但或许这次读的时间更为心静与平和,更能读懂一点。与其说是小说,更像是自我探寻与对话,围绕村上自己,也关于我们读者。

收藏

文章

视频

剧集

  • 企鹅人,作为衍生剧集原先没抱有太高的期待,但是确实精彩,尤其是前几集对人物心理的呈现和变化,结尾稍有点突兀,以至于我这周还在看有没有更新,发现只有 8 集。
  •  

求婚誓言 | 爱的本质是被看见

2024年12月3日 21:43

10 月我们在清迈艺术家村的一家店里一人买了一个手工做的本子,很喜欢,回来后我说我会把我人生最重要的一些事记在上面,很多年后再回头看一定很有意思。

未曾想到,第一页就写下了这篇求婚誓言。

前段时间在清迈有了久违的几周独处时间,我想了很多很多,以至于回来后你都惊讶明明不久前还在思考“Adulting”的我怎么突然就成为了一个大人了。期间也萌生了求婚的想法,还去清迈的集市里看了看戒指(作为 replacement ring,后续再去选自己喜欢的)。

ferris_wheel

原本是想着在曼谷夜市的摩天轮上,在高空浪漫的摩天轮里讲出彼此的承诺,把爱定格在天空最高点,听起来很不错,但似乎这并不适合我,或者说这并不符合我对我们之间爱的想象。我并不希望在这一刻、在我们步入下一个阶段之后,爱的稀释或是浪漫的消散就变得理所应当了,我不要这样。

其实对于求婚或是婚礼这件事,我始终存在着一个私心或是执念,如果真要有这一仪式的存在,不想流于形式,而是希望它是属于我们独有的浪漫,但也越来越觉得自己并不能完美地完成它,以至于开始害怕它(甚至写下这篇誓言的当下是 2024 年 12 月 2 日 23:00,距求婚不足 24 小时)。

在筹备求婚的时候,我也重新开始思考我们之间的爱是什么。

essense_of_love

The essence of love is to be seen.

爱是本质是被看见。

我们有着完全不一样的童年和成长轨迹,性格截然不同,过去二三十年里也仅有几个小小的交点。但就是这样的你和这样的我,在各自的生命间隙里看见和拥抱了对方。

刚在一起的第一周我曾在「周报 #43 - In the Mood for Love」里这么说过:

每个人都是独立的个体,我很难成为也并不愿意把另一个人作为自己的星星/精神依靠,但也许,我们可以一起仰望同一片星空,在被熙攘的人群和蔓延的街灯虚晃了双眼时,静静牵住对方的手。

我们从相识到现在不过四年多,在一起只度过了五百二十三天,不长不短,但我觉得我找到了能跟我一起仰望同一片星空的人,我找到了你。

刚好是你,也幸好是你。

说回求婚,我做了很多功课,看了很多感人、热烈的现场,最终还是决定在这场记录我们杭州生活的约拍的中途保留一点小小惊喜、藏住一份小小心思,只是我们这样静静地待在一起,看着对方的眼睛,听我磕磕绊绊地讲着这些话。

今天是 12 月 3 日,一个平平无奇的周二,但就像一起看的很喜欢的电影《土拨鼠之日》中所表达的,是我们定义了这是怎样的一天,也是我们赋予了这一天独特的意义,同样,也是我们会在未来共度无数个普通的、浪漫的、幸福的日子。

最后还是想借用喜欢的诗人鲁米的那句诗作为誓言:

(从今以后),我所问出的问题都关于你,我所踏出的每步都指向你,处处皆是你,声音所至,目光所及。

你愿意嫁给我么?

  •  

周报 #79 - 清迈旅居、曼谷之行与 Follow

2024年11月29日 09:20

前言

weekly_review_20241129

本篇是对 2024-11-042024-11-28 这几周生活的记录与思考。

10 月底又独自回到了清迈开启了两周的旅居生活;后又去曼谷参加了 Devcon 和我们厂举办的 Side Events/Party,三周似乎都在奔波,心境却好了许多;回杭后又回到了珍贵的日常,并且在筹备重要且有趣的事,生活似乎也有了轴心;还有很多有意思的事。

清迈旅居

10 月初在清迈待了两周,不过主要是和学姐一起,更多是旅行的心态,见到了许多风景顺便作为 mentor 在 Invisible Garden 上了几节课;中途回杭两周集中处理了工作和各种事(比如拔了三颗智齿,做了牙周刮治等),又重返清迈去参加 Invisible Garden 活动。

珍贵的独处时刻

果然自己一个人的时候几乎就没什么出门的兴致了,大部分时间都在住所里写代码、办公、开会、写博客,偶尔出门吃个饭或去 7-11 买些生活用品。第一周还略有些许久不出门产生的带些惯性的消沉,第二周开始就好很多了,能够更专注于手上的事,也有了更多时间空间思考。

可能并不那么明显,自己的状态其实很依赖静静坐下来写字做事的时间,但随着工作生活都日渐复杂,这样的时间也越来越少,所以甚至是有时在状态达到一个负荷的时候会熬夜写周报,更像是梳理自己生活的一种解压的渠道,是我有且仅有的心流时刻。

这一周多也思考了很多,关于未来要去哪个国家或是城市、关于感情、关于自己的性格中缺陷的部分以及想成为什么样的自己。似乎都是很大且并没有明确答案的事,但似乎开始了条分缕析的探索后一切也都更加明朗了起来,做了一些决定。

又见 Vitalik

meet_with_vitalik

月初借着 OpenBuild 的机会跟 vitalik 一起吃饭、近距离闲聊(好幸运一个月内见到了两次!),听到了他创办 Bitcoin Magazine、Dropout、在柏林 Bitcoin Kiez 和自由主义者们一起生活、萌生 Ethereum 想法等很多有意思的事,了解到了他作为“v 神”这一符号背后更真实的一面;还聊了一些关于开源的想法。

很有趣的是问他在高密度参加完曼谷 Devcon 各种活动之后会做什么,他说想找个没人找得到他的地方自己待一阵子。

人总还是需要独处来恢复能量的,v“神”也不例外。

曼谷之行

devcon_lantern

完成了清迈 Invisible Garden 的活动之后,又前往曼谷参加 Devcon 和我厂举办的一些 Side Events/Party,见到了好些同事,因为都是远程办公,我这一年多像是集邮一样大部分同事都面基过了,会更能感受到一些亲切感。

跟着我司同事 Songkeys 很 E 地做了两天 DevRel,比做 Dev 累多了,不停拉人讲话交流。但也遇到不少有趣的人,比如跟从澳洲来的 Firefighter 介绍 Follow 和 Open Information;和肯尼亚来的 DJ/Radio Maker 讨论应不应该学 rust;还有很多有意思的事。

活动结束后和 Songkeys 没聊过瘾还一起在酒店继续下一场,从童年、生活、情感聊到前端、开源、职业发展,硬是通宵聊到早上八点多(作为我司著名不睡觉星人熬夜能力确实不相上下)。

关于 Follow

follow_shanhaiwoo

这次带着一个小小任务,去清迈山海坞摆摊了我们的 Follow 应用,因为也还比较临时,没来得及准备什么物料,于是向隔壁的小伙伴借了一个他正在办公用的便携显示器,直接展示了出来,效果意外地不错,有挺多路过的人来问的,还发了一些邀请码出去,也遇到了很多已经是 Follow 的老用户过来夸一下说我们团队做得很不错的。

innei_about_follow

看到 Innei 发的关于 Follow 的推文,自己其实还是有几句话想说。

Follow 从一开始的爆火和快速增长,到慢慢有了一些来自用户觉得不够好的声音,其实也是走过了一个互联网产品从 0 到 1 的必经之路。

从内测开始使用 Follow 已经三四个月了,参与开发也已经快两个月(虽然主要做的其实是 RSSHub 这一端和相关的一些功能模块),不论是作为 RSS 老用户还是开发者的角度来说,真的能感觉到 Follow 已经很棒了,尤其是作为一个从想法萌生到现在也不过半年的一个产品。

作为小团队的产品没办法一下子处理完所有 Bug 和一些功能需求,为了保障用户体验也只能借助邀请码逐步扩大用户规模,期间有大大小小的问题,但一直在努力迭代和改进了,开发群里也常常深夜还有很多讨论,希望大家能够给予更多耐心。

follow_sspai

最近也在少数派首页 App+1 栏目发布了一篇系统性介绍 Follow 的文章 —— 「App+1 | Follow:信息获取的另一种形态」,也算是自己参与开发、作为重度用户使用并且写评测文章、横跨了 Follow 产品的各个环节的有趣体验了。

以及 Follow 移动端适配 & PWA 版本最近上线了!可以用手机浏览器打开 https://app.follow.is 添加到主屏幕使用,没有原生 App 那么丝滑但已经很好用了!可以试试~

个人生活剪影

油画棒课

oil_painting_live

回来的第一周陪学姐去上国美夜校的油画棒课,觉得总是坐家长区有点无聊,决定上手了,一份学费两个人学。

oil_painting_work_02

oil_painting_work_01

找了两张在泰国的照片对着瞎画,新奇的体验,以下是两张对比图,还被老师夸了。

oil_painting_display_wall

家里也有一面一起画画填充的展示墙了!

其他

RSSHub 开发实践

写了一篇关于 RSSHub 中集成 Telegram 频道 RSS 订阅实现与部署方案的文章,感兴趣的可以看看:

还上了自留地频道!!!有一种上电视的感觉。

懒猫微服

lazy_cat_pic

收到了懒猫团队送的懒猫微服,体积、外观和质感是真的好,研究了下开发者文档,打包上架了 RSSHub 应用,整体体验还不错,尤其是内置外网穿透这一点,少了很多折腾。

因为家里已经有了一个 NAS 通过 Cloudflare Argo Tunnel 暴露了一些服务出去,大部分公共服务我也是通过 dedicated server 部署在 Zeabur 上,所以目前其实没有找到特别好的能够融入我工作流的强依赖的应用场景,用得比较多的反而是开发者模式连上懒猫微服再 ssh 到 NAS 上操作,省得用 DDNS 了...

还在继续探索,会再搬几个应用过来,后续深度体验后或许会在博客里详细测评一下~

招聘

我厂(RSS3)在招海外(非亚洲时区) DevOps Engineer,欢迎感兴趣/符合要求的朋友投递~

https://rss3.notion.site/RSS3-is-looking-for-a-DevOps-Engineer-d35ef17da5b341a49bc4484b4533f29a

有趣的事与物

输入

虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。并且把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。

书籍

  • 沈醉回忆录,学姐对各种奇怪的历史很感兴趣,最近看到她在看军统特务沈醉的回忆录,我也一起看了几章,讲得意外地有趣。
  • 我的父親袁殊,提起特务很难不联想到之前玩的「隐形守护者」游戏中的肖途和「伪装者」剧,他们的原型人物都是袁殊,于是也想找他的传记来看一下。搜到两本,为了尽可能贴合史实一点找的他儿子写的在台湾出版的那本(或许不一定完全中立客观但至少应该相对敢说一点),想更深入了解他的一生。
  • 精力管理,想要更好管理精力看的,但是略有点鸡汤了,花了半天看完累到没精力做其他事了,不过有些关于价值观和思考自己行为出发点的角度还是有些启发的。
  • 創作者的日常生活,好有趣!!!列举了各类创作者、艺术家的 Daily Routine,想单独写一篇来记录一些好玩的。

文章

视频

剧集

动漫

  •  

RSSHub 开发实践 #01:Telegram 频道 RSS 订阅实现与部署方案

2024年11月18日 17:30

前言

最近在参与 Follow 以及 RSSHub 这两个开源项目的一些开发维护工作,因为牵扯到与很多订阅源的“斗智斗勇”,有一些很有意思的开发实践,于是开了这个新坑系列记录下来。

本篇是这几周使用 Telegram 官方 API 与 MTProxy 来实现对 TG 频道更新的开发实践与完整配置部署教程。

Follow & RSSHub

follow_telegram_channel

Follow 中提供了一种便捷的订阅信息源的方式,例如用户可以输入对应的 Telegram 频道名称(如 pseudoyulife)来订阅某个频道的更新,这样就无须跳转到各个频道里去逐个查看,这一部分特性依赖的是背后 RSSHub 的实现。

rsshub_homepage

RSS (Really Simple Syndication) 是一个古早的信息聚合标准,它通过统一的数据格式,让用户能够便捷地订阅和获取网站更新。然而,随着社交媒体和移动互联网的兴起,原生支持 RSS 的网站正在减少。

而 RSSHub 秉持着"万物皆可 RSS"的理念,通过开源社区的力量将包括 Telegram、YouTube、播客在内的众多现代内容平台转换为标准的 RSS 格式,让用户能够重新掌控自己的信息获取方式,远离算法推荐的干扰。

RSSHub 中现在包含了上千个平台,针对不同平台和类别也都有着包括但不限于网页爬虫、官方接口、逆向 API 调用等多种处理方式,能够涵盖绝大多数我们日常使用到的信息源,也非常适合作为对平台的一些加密算法和反爬机制学习的实践,例如下文所要介绍的 Telegram 频道 RSS 订阅的实现。

RSSHub Telegram 集成与部署

Telegram 网页预览

yu_channel_online_preview

Telegram 提供了频道的网页预览功能,例如可以通过 t.me/s/pseudoyulife 这一链接直接查看我频道的更新,因此 RSSHub 很早之前就实现了通过抓取网页上的内容并转换为 RSS 格式的方式集成了对 Telegram 频道更新的订阅。

telegram_channel_reorx_preview

然而后来许多用户反馈说部分频道抓不到,去测试了一下,发现 Telegram 用一种黑盒的机制来限制了部分频道的网页预览功能,例如我一直在订阅的「Reorx’s Forge」以及「Newlearnerの自留地」等频道,当使用 /s 来访问页面时会被强制重定向,提示需要打开客户端来查看内容,因此对于这类频道我们没办法直接抓取到内容并转化为 RSS。

Telegram APIs

为了解决这一问题, 我又去查了 Telegram 的官方文档,发现他们将 API 分为以下几种:

其中 Telegram API 中的有一个 channels.getMessages 方法可以返回某个频道的消息,可以满足我们的需求,具体的实现逻辑在 RSSHub 代码仓库 —— lib/routes/telegram/channel.tslib/routes/telegram/tglib 这两部分,有兴趣的朋友可以看一下代码。

创建 Telegram App

manage_telegram_application

使用 Telegram API 需要访问 telegram core,通过手机号登录。

api_development_config

点击 API development tools 模块,创建一个 Telegram Application(详见「Creating your Telegram Application」)。

telegram_api_id_hash

在 App configuration 模块,我们能够获取到 api_idapi_hash 两个参数,记录下值,后续会用到。

获取 Telegram Session

使用 Telegram API 新建一个 client 的流程比较严格,需要通过 SMS 验证手机号登录,在代码中交互获取使用并不现实,因此我们需要预先创建 client 并且获取其 session,后续直接通过 session 来使用 api。

get_telegram_session

拉取脚本「pseudoyu/telegram-api-scripts」后,先运行 npm ipnpm i 安装依赖,然后运行 npm run startnode index.js,按照提示输入 api_idapi_hash 和手机号(需要和申请 Telegram App 时的手机号一致),通过短信或 Telegram App 获取验证码后即可在命令行输出获取 session。

需要注意的是,由于我们后续需要在 RSSHub 服务中使用这个 session,尽量在 RSSHub 服务部署的同一服务器上运行脚本获取 session,这样能避免 Telegram 对于 IP、设备的一些限制。

注:如果 RSSHub 是使用的 Serverless 平台或其他方式,则也可以通过额外配置 MTProxy 的方式来保持 IP 一致,后文会详细说明。

(可选) 使用 MTProxy 保持 IP 一致

之前在 Follow 的 RSSHub 实例上添加了 Telegram API 相关逻辑和配置后,过一会儿就会报一个 AuthKeyDuplicatedError 错误,查看了一下很多开发者也遇到过 —— 「AuthKeyDuplicatedError Eror problem #1488」,猜测是由于我们的 RSSHub 实例是 k8s 集群部署的,会从不同的机器调用 Telegram API,因而受到了一些限制。

于是又开始找针对这一情况的解决方案,发现 Telegram 提供了一种叫 MTProxy 的专属代理协议,可以通过部署一个 MTProxy Server 来代理所有的 API 请求,这样能够确保不同机器发送的请求都来自同一个 IP。

找到了「Dofamin/MTProxy-Docker」这个项目,拉取仓库后,新建一个 .env 文件,添加 MTPROTO_REPO_URL 这一环境变量(默认的官方代码已经不怎么维护,这个版本添加了一些补丁):

MTPROTO_REPO_URL=https://github.com/GetPageSpeed/MTProxy

SECRET 默认值为 ec4dd80983dbf12d6b354cf7bcfe9a48,也可以选择自定义的值;IP 不填写则会自动通过 curl ifconfig.co 获取本机 IP;其他环境变量可以查看仓库的 README.md 文件自行修改。

配置完成后,运行 docker compose up -d 启动,代理服务则运行在 <IP>:8443 上。

注:如果 RSSHub 是通过 Docker、Docker Compose 等方式单实例进行部署,且能够保障在同一台部署机器上运行脚本获取 Session,则可以跳过这个代理步骤。

RSSHub 部署

经过了上述的服务部署,我们获取了以下信息:

  • Telegram API 的 api_idapi_hash
  • Telegram 的 session 字符串
  • MTProxy 的 SECRETIPPORT

这时可以开始部署/更新我们的 RSSHub 实例了,具体可以根据文档选择不同的方式,例如 Docker、Docker Compose、Serverless 等。

推荐通过 Docker Compose 的方式来部署,比较便于维护,需要在 docker-compose.yml 的 RSSHub 服务中添加如下变量:

environment:
  - TELEGRAM_API_ID=<Telegram API ID>
  - TELEGRAM_API_HASH=<Telegram API Hash>
  - TELEGRAM_SESSION=<Telegram Session>
  - TELEGRAM_PROXY_HOST=<MTProxy IP,如 123.123.123.123>
  - TELEGRAM_PROXY_PORT=8443
  - TELEGRAM_PROXY_SECRET=<MTProxy SECRET>

我是通过自己维护的模板部署在 Zeabur 平台上的,可视化部署,比较易用,只需要在部署完成后在 RSSHub 服务的 Variables 模块中添加以下变量并重启服务即可生效:

TELEGRAM_API_ID=<Telegram API ID>
TELEGRAM_API_HASH=<Telegram API Hash>
TELEGRAM_SESSION=<Telegram Session>
TELEGRAM_PROXY_HOST=<MTProxy IP,如 123.123.123.123>
TELEGRAM_PROXY_PORT=8443
TELEGRAM_PROXY_SECRET=<MTProxy SECRET>

测试

yu_rsshub_homepage

经过上述步骤后,我们拥有了自己添加了 Telegram 相关配置的 RSSHub 实例,访问主页显示如上页面即部署成功,可以通过 <RSSHub URL>/telegram/channel/<Channel Name> 来订阅 Telegram 频道。

例如可以通过我的公开实例 https://rsshub.pseudoyu.com/telegram/channel/NewlearnerChannel 来订阅「Newlearnerの自留地」频道。

总结

本篇记录了通过 Telegram API 在 RSSHub 中实现对部分受限制频道的更新订阅的开发实践与部署方案,受限于平台,方案可能会在未来某个时刻失效,我们也会持续研究更稳定的解决方案,使用中有任何问题可以留言或在 RSSHub 仓库中提 Issue 反馈/交流。

  •  

Follow —— 信息获取的另一种形态

2024年11月4日 15:20

前言

follow_artitle_pic

我在三个月前作为第一批用户体验到了 Follow 这一产品,很兴奋,使用了一周后就写了一篇文章「周报 #67 - 使用 follow 重塑我的信息输入系统」分享了对 Follow 的一些想法。

而现在三个月过去了,Follow 本身迎来了许多更新,正式开启了 beta 测试;其在我日常信息输入和输出系统中也已经不仅仅是一个 RSS 阅读器 alternative,而是彻底改变了我的信息获取形态。

因此想再写一篇文章更系统性地分享一下我对 Follow 的看法,以及我是如何使用它的。

RSS -> Follow:One more thing

RSS 协议:互联网的活化石

在讲 Follow 之前,我想先介绍一下与之密切相关的 RSS 协议。

RSS (Really Simple Syndication) 是一种能够将网站内容转换为标准数据格式的协议,最早版本诞生于 1999 年,几乎可以算得上是互联网活化石了。

简而言之,它制定了一个包含了 titlelinkdescriptionauthorpubDate 等核心字段的协议标准,采纳并实现了这一标准的网站则可以输出统一的格式以供一些阅读器或代码进行解析,例如可以通过 https://sspai.com/feed 这一链接来获取网站的最新更新;而支持 RSS 的阅读器就像是一本自带目录的刊物,里面收录着来自不同网站和作者的内容,方便我们进行阅读。

但随着移动互联网的发展、社交媒体和音视频等媒体形式的兴起以及网站出于对平台用户流量的保护,支持 RSS 协议的网站越来越少,这一概念也有些式微,慢慢淡出了普通用户的视野,成为了一些爱好者和极客的玩具。

直到 RSSHub 这一项目的出现。

RSSHub:万物皆可 RSS

rsshub_homepage

RSSHub 是由「DIYgod」发起的一个开源项目,其初衷是“万物皆可 RSS”,通过社区贡献,将 Bilibili 视频、网易云音乐、小宇宙播客、即刻用户动态等图片、音视频、社交媒体网站甚至是 App 中的信息转为标准的 RSS 格式。

借助 RSSHub,我们可以把自己习惯性会打开的社交媒体或是关注的各种平台账号都转换为「订阅」这一简单的行为,即可自动获取更新,减少了算法推荐与信息的干扰,提取信息的效率也会更高。

然而,RSSHub 终究还是更中间层一点的工具,即使有了标准的 RSS 数据,大部分阅读器依然只能处理文本显示,对于音视频图片的处理基本上只停留在当作一个 url 这一程度,依然需要点击源链接跳转到对应的网页查看,使用起来常常有些割裂。

直到 Follow 的出现。

RSSHub -> Follow:新一代信息浏览器

follow_og

其实就软件的本质而言,Follow 并没有改变或是拓展 RSS 协议本身,而是通过对 RSS 信息内容媒介呈现方式的改变、浏览体验的优化及与 RSSHub 的深度集成,更面向用户层去解决信息获取与浏览的问题。

确实有一种看久了 pure html 突然飞跃到加了现代化 css 效果的感觉。其实技术层面做到这一步算不上有太高的壁垒,不论是视频 iFrame、音频播放器或是图片预览都有比较成熟的组件可以使用,但 follow 几乎是唯一一个依然在针对这一协议做且做好这一步的产品。

有时候,做好一点就足够了。

信息获取的另一种形态

软件/应用层面的 Follow 给我带来了很好的体验,但不止于此,其更深的影响是对我获取信息的流程与方式潜移默化的改变。

信息困境

不知道从什么时候起,其实能很明显感受到自己对网络世界信息的依赖。可能有别于游戏瘾或是经常被诟病的短视频算法鸦片,我的这种依赖并不是机械性地刷刷刷,而是一种对于信息获取的渴求,甚至内化为了一种生活方式。

而我每天从起床开始就会被来自各个平台的信息流所裹挟,依赖于网络世界其实最难免的是与社交媒体与算法的抗争,一方面是要避免自己被过载的贩卖焦虑的信息或是熟人社交圈的“Peer Pressure”所困扰,另一方面也需要警惕算法所构造的信息茧房。

实话说这一点挺难做到,即使自己多少算是具备一些克制和过滤信息的能力并有意识在这样做,但依然难以避免被其所扰乱思绪或是引导。

我最后采取了一种简单的方式 —— 关闭微信朋友圈入口与大部分软件通知提醒,并且把用于信息获取的平台(如 B 站、即刻等)的关注数量控制在 100 以内,如果新增则筛选优化之前的关注,减少无关内容的干扰。

行之有效,但由于依然需要使用多个平台/App,每当我打开 B 站常常还是会被一些有趣的内容吸引,而 Twitter 这样的平台又多少带了一些社交属性,自己又没有屏蔽或是关键词过滤的习惯,依然难以避免信息噪声。

Self-custodial Feeds

Follow 的出现让我看到了另一种新的形态 —— “Self-custodial Feeds”,即可以自己掌控的信息源。

首先就是厘清我对于 Feeds(信息源)维度的定义与标准。对于我来说,我的信息源由以下组成:

  • 我会几乎每篇都全文阅读的独立博客
  • 每期必看的一些 B 站、YouTube 博主
  • 感兴趣的播客频道
  • 会更多分享思考与新事物的个人社交媒体频道与账号
  • 想要日常积累的绘画或是设计素材
  • 与工作和爱好密切相关的软件/开源项目/编程语言/框架更新
  • 某些只提供 newsletter 的博主/网站
  • ...

我会尽量避免关注那些像是「v2ex 最热主题」这些热搜类的信息源,并不是对这些资讯不感兴趣,而是刻意减轻自己的信息消化的压力;并且慢慢发现其实也不会错过什么,真正自己会感兴趣的话题也已经在我关注的人的社交媒体分享或博文中了。

也可以说这是自己打造的另一座“信息茧房”,但随着对这些信息源的不断迭代与剔除,最终会慢慢建立一个贴合自己信息获取频率与消化能力的“数字花园”。

follow_choose_view

这些信息源形态各异,但却又刚好符合了 Follow 中的「视图(View)」这一概念。Follow 中除了按照标签和域名分组外,还可以在 Feed 层面设置视图,我上述的这些信息源就可以分别归到文章、社交媒体、图片、视频、音频和通知这几类视图中。

follow_picture_view

比如图片就会有画廊和瀑布流的呈现、社交媒体视图就更像是一条条动态博文,视频可以直接点击播放,而音频/播客则可以全局播放,甚至带进度条或是时间线跳转等功能,这也解决了我需要在 Apple Podcast、Spotify 和小宇宙等多个播客应用之间反复横跳的问题。

follow_inbox

而对于那些只提供 newsletter 的博主/网站,Follow 提供了内置 Inbox 收件箱功能,可以使用对应的邮箱地址来收取 newsletter 并自动将邮件内容转为 Feed 内容,又减少了需要从成堆的邮件里找文章的繁琐,也保障了统一的阅读体验。

打破 RSS 孤岛

RSS 与 RSSHub 的结合确实让信息获取与阅读变得更加简单,但脱离了平台的那些“关注”、“阅读量” 、“点赞”等特性却也容易让这一个个 RSS 信息源成为孤岛。

follow_discover_feed

Follow 将每一个 RSS 订阅源作为一个单元,记录下了这个订阅源的关注与阅读数据,当另外的人通过名称或是链接在搜索时,能看到有哪些人「Follow」了这一信息源(如这个页面 https://app.follow.is/share/feeds/41215011978385440),便于检索的同时,也天然形成了对其内容质量与价值的一种背书。

「Follow/Subscribe」这一行为在社交媒体平台已经几乎成为了标配,但这一概念用于重新建立这些 RSS 孤岛之间的联系却显得尤为巧妙,甚至更进一步,使其变得更为紧密与开放。

follow_view_feature

而在某个 Feed 的文章页面中,我们还可以看到有哪些人阅读过这篇文章,点进那一个个头像又能够看到 Ta 们所订阅的其他 Feeds。

follow_tip_boost

同时,Follow 也提供了打赏(Tip)与助力(Boost)的功能让读者可以通过自己的方式支持创作者,创作者只需要通过一个所有权认证即可收取奖励,形成一种正向的循环。

创作者与读者之间仿佛多了一条细微的橙色细线,感知并不明显,不会形成什么社交压力或是被窥探的不适,但却温暖而坚韧地存在着。

分享信息源

follow_user_sub

有时我们也会想看看他人尤其是同温层的人在关注些什么以丰富自己的信息源,但常常每个人关注点可能分布在不同的网站,而 Follow 提供了用户 Profile 页面可以直接关注,并且也支持直接关注用户的订阅列表,可以很方便地看到 Ta 们关注了哪些信息源以及后续新增加了哪些。

对于有些想要创建自己的「数字花园」的用户来说,也可以创建付费 Lists,感兴趣的用户则可以通过支付一定费用来订阅,形成一种新的信息分享与获取的形态,即不仅仅信息源本身有价值,筛选过滤出高质量的信息源也同样值得付费。

Action 特性

Follow 还提供了一些自动化规则,例如可以将非中文内容自动翻译并使用 AI 进行摘要总结,对正文沉浸式翻译等,根据这些规则提升我们的信息处理效率。

follow_actions

我用的最多的一个 Action 是对个人博客的内容进行摘要、向我推送通知并开启阅读模式(可以自动去抓取一些不提供全文输出的 RSS 源),这样我能够不错过我所关注博主的更新。

总结

Follow 的出现并不只是优化了阅读体验,而是让我对信息源整理这一起点有了更深的思考,慢慢建构起了自己信息获取的新形态,如果将自己关注的订阅源视作一颗颗种子的话,那 Follow 则是这些种子发芽成长的沃土,呵护着自己的「数字花园」。

另外 Follow 目前刚开启公测,可以直接访问 https://follow.is/ 体验。公测账户有一些限制,需要邀请码才能解锁完整版功能,可以评论留言,我会发放一些邀请码。

  •  

周报 #78 - NAS、Chromebook 与 Zeabur 折腾小记

2024年11月4日 08:42

前言

weekly_review_20241104

本篇是对 2024-10-292024-11-03 这周生活的记录与思考。

最近不知怎的又久违地开始折腾开发环境和设备了。

在 Ares 的技术支持下终于拥有了心心念的 NAS;把闲置已久的 Chromebook 重新装了一下并刷了 Arch Linux,甚至还把 MBP 刷了一个 Asahi Linux(不过作为主力机还是不行,先卸载了,打算回家把家里的台式机刷了);Zeabur 支持了 Dedicated Server 之后我也把 RSSHub 等比较消耗资源的服务迁移到了 Hetzner 的 CAX-31 Arm 主机上;还有很多有意思的事。

NAS

my_nas_omv

其实好久之前就对 NAS 很感兴趣,但其实自己看番剧和剧集都是直接在流媒体平台上或者 Infuse 连网盘,对于家庭存储的需求并不那么高,所以一直没下定决心入手。

再加上自己有个 Mac Studio,平时也都是长期开机的,配合上公网 ip 和 Cloudflare Argo Tunnel,其实也已经满足了绝大多数的家用服务需求了。不过由于系统架构的限制等,我在配置 HomeAssistant 的时候网络配置总是有一些奇怪的问题。

有一次跟 Ares 聊的时候,他提到有个自己组好的 NAS 可以出给我(他自己已经迭代了),很是心动,于是找了一个周末来我家里配置完成了,有了技术支持自己少走了无数弯路,一切都完美 work 了。

四盘位(8T 存储外加 8T 的备份),任意热插拔掉两个盘位依然可以正常运作,把之前网盘里的一些照片和影像资料迁移了过来;用的是 openmediavault 这一界面有些古老但是完全够用的系统;使用 Portainer 管理了一些 Docker 服务,16G 内存也基本够用。

Chromebook 与 Arch Linux

yu_chromebook_setup

两年多前在重温 Teahour 的这期「#95 - 用 Chromebook 做开发是什么样的体验?」时对瘦客户端开发模式很是着迷,自己还写了一篇「基于 frp 内网穿透的瘦客户端开发工作流」来实践,顺便也种草了 Chromebook 这一国内并不流行的设备,入了一台 2019 款的 Google Pixbook Go(产品线很快就被 Google 砍掉了,所以倒是有点纪念意义的最后一代)。

但其实因为后来远程办公以及依赖了很多 macOS 专属的软件,这台设备的利用率一直很低,最近在清迈看另一个 mentor 把自己的 Chromebook 刷了 Pop!_OS,很酷,于是想着回来折腾一下。

btw_i_use_arch

本来也是想彻底刷成其他 Linux 发行版的,升级了一下发现 ChromeOS 的 UI 和各类交互很舒服,折腾了一下把内置的 Debian 系统换成了 Arch 也很足够我对于 Linux 的需求,不那么“正统”但够用,折腾了一天,达到了很惊喜的体验,用了几个跨平台的方案保障体验几乎是一致的了。

  1. 1Password。前段时间才从 Elpass 换成 1P,浏览器插件、多平台和强大的自动填充让我后悔没早点换了;再加上能够用 ssh agent 功能来进行 git 签名等,再也不用维护多套 gpg keys 了。
  2. x-cmd。朋友前司的产品,最开始只是想支持体验一下,发现确实满足我的需求,只需要很少的几个命令和配置就能实现一个多设备完全一样的开发环境,也使用 x-cmd 管理了我的 Go, Node.js 等开发环境,很省心。
  3. fydeRhythm。我现在完全投入双拼,在搜索的时候发现了这一开源项目,作为一个 Chrome 插件安装到 ChromeOS 系统中,也能够在终端和各类应用中原生使用,几乎免配置;Linux 上我使用 fcitx-rime 配置,不过折腾了好久才搞定。
  4. Cursor。有打包好的 AUR 包可以很方便在 ChromeOS 上一键安装,加上导入配置的功能,改了几个快捷键后完美还原体验。
  5. Chrome。考虑为了一致体验从 Arc 切换回 Chrome 了,像是 Telegram、Slack、Discord、Follow 这些工作中用到的直接都使用网页版了。
  6. Onedrive。因为没有了 iCloud,刚好利用上我的 Microsoft 365 带的 1T Onedrive 存储,用于文件传输和同步。
  7. Google Play Store。Chromebook 很大的一个优势就是可以直接使用 Android 应用,还提供了一些优化,像是 Clash、HBO Max 这些应用都可以作为应用直接打开了。

yu_chromebook__cursor

我其实有很多高性能设备,例如日常在用的 M2 Max 的 MacBook Pro,由于性能和续航达到了一个很不错的平衡,导致我即使出门在外也随时都能打开来进入工作状态,甚至爬山和散步都会背着,有时候其实并不能很放松地出门或是陪伴身边的人,但我又有“电脑分离焦虑症”,不在手边的时候总是担心有什么紧急事务要处理而焦躁不安。

这台 Chromebook 算是一个完美的方案,同时有满血版的 Chrome、Arch 和 Android 系统,性能不强、轻便好看,所有依赖浏览器的工作都完全能胜任,真的要调试工作项目的代码稍微有点卡但也能用,在缓解我焦虑的同时,每次有需求后也多了一步掂量一下,是不是真的紧急到我即使需要更费力地调试也要当下完成,绝大多数情况下我也都会选择等到家了换上主力设备了再处理。

这一点很有意思,其实设备性能已经过剩到并不会制约自己的效率,反而是需要刻意的约束来让我的目光更多转向周遭。

Zeabur 服务器

我算是 Serverless 平台的重度玩家和 Zeabur 的早期用户了,现在自己的很多服务依然部署在 Cloudflare Pages/Workers、fly.ioZeabur 平台上;同时之前也是各种 vps 的折腾爱好者,有好几台搬瓦工的传家宝,再加上前两年有点上头,又新添置了几台,导致利用率很低。

zeabur_dedicated_servers

最近正好 Zeabur 支持了 Dedicated Server,利用 k3s 外加一些 monitor 服务能够在平台上直接使用自己的服务器进行部署,而关联 GitHub Repo、镜像 build、拉取等高消耗任务则是通过 Zeabur 来进行(目前都是免费的,不知道后面会不会按量计费),不占用服务器本身的资源。

于是把我的 RSSHub 和 Node 节点等一系列服务直接迁移过来了,终于把月账单又控制在 Developer Plan 的 5 刀以内了。

Zeabur 的模板也比较强大,我现在在维护 RSSHub 的 Zeabur 模板,可以无须域名等额外配置,一键部署自己的实例;顺便还把之前自己用的 n8nRemark42GoatCounter 等服务都做了模板,欢迎大家直接部署使用。

有趣的事与物

输入

虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。并且把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。

书籍

  • 素食者,因为诺奖才了解到的作者,周末得闲才开始读,不长,只有三个篇章。看第一章的时候我正在吃饭(幸好是素食),作者把很多模糊的负面的感受描述得非常具体,以至于我有点反胃,很久都没缓过来,很难得有这样的感受了;后面的剧情走向略有点抽象,但确实加起来四种不同视角却相互关联的方式很奇妙。
  • 献给阿尔吉侬的花束,最开始的错字报告到后来智商跃升后对这个世界和身边人态度的变化的不解,到后来对自己作为一个“人”过去和现在的探索,再到最后的一切回到原点和结束。他用了几个月的时间快速经历和理解作为“人”的一生,很多人几十年甚至终其一生也没办法回头去接纳过去和真实的自己,无关智慧,只是重新拥有了思考这一能力的他就像是失明的人重新见到光一样珍惜。
  • 红与黑,从一个视频看到的讲解,关于于连的自尊和因此表现出来的傲慢的描述印象很深,有一种底层市民向上的野心,但由此产生的矛盾、自尊受挫后的疯狂和极端的转换描写得很具体。
  • 小城与不确定性的墙,读了前几章,感觉跟「世界尽头和冷酷仙境」的设定好相似。

文章

视频

剧集

  •  

周报 #77 - 一间只属于自己的房间(对亲密关系的思考)

2024年10月30日 08:42

前言

weekly_review_20241030

本篇是对 2024-10-212024-10-28 这周生活的记录与思考。

前两天读到了「第三夏尔 | Third Shire」写的一篇「从亲密关系中学到的」,也想写一篇来总结一下自己和学姐这一年多来的一些感受和变化,很多事远远没有像原作者一样找到“最优解”,但也心知亲密关系的一些问题因为有了爱作为挡箭牌而容易拖延甚至搁置,直到矛盾爆发,因此也想记录一下作为自省和对自己的提醒。

只属于自己的房间

我想独立和自我空间是亲密关系中最常见也最难解决的课题了,在我和学姐这样的模式下尤其。两个人其实缘起于互相欣赏,我羡慕她的精力与心境,在香港、北京这样的工作节奏下依然能够保持对生活的热情,画画、攀岩、看书、写作,让我看到了原来还有另一种人生;而她或许也欣赏我的独立和对技术的专注。

但进入到亲密关系后,两个人不免地会变得更依赖对方,不论是情感还是时空上。

之前杭州北京异地的时候,我大概每个月会去北京两三周,留下一周的各自独处的空间和期待下一次见面的心情;而现在一起到了杭州后,在小区隔壁楼各租了一个房间,谈起了异楼恋。但由于两个人都不需要固定通勤,常常连续几天高密度地相处在一起,独立也成为了一个伪命题。

起初我并不很能理解,即使同处一个空间但是做自己的事为什么还会有“不独立”的感受,后来渐渐发现了,学姐更为敏感也更依赖于一个独处的环境才能专注地看书写字甚至只是发呆,而我其实对于环境的感知并不高,打开电脑我就能够进入另一个世界,也并不容易被干扰到。

当我们两个人在一个空间时,我随时可以去看她、问她在做什么,或仅仅是路过的时候抱一下,学姐依然会有一种“侵占感”,本身是享受两个人的亲密,却多了一层隐隐的不安全感。

其实我们也做过一些调整,比如约法三章,一三五各自相处,剩下的时间一起,但依然并不解决问题,因为真正离开后即使一楼之隔也会想念,找各种理由再待在一起,因此常常这样循环。

最近尝试的是早上白天时间里各自专注做自己的事,到了饭点或是下班时间可以约会出去吃或自己做点简餐,似乎完整时空里分割的三个小时会让相见和相处多了一些仪式感,也常常戏言道这个男朋友只有三小时赏味期,时间到了就该放到冰箱里重新保鲜了。

伍尔芙在「一间自己的房间」中写到:

一个女人要想写作 必须拥有两样东西 钱和一间只属于自己的房间

我想这句话的重点可能不在于“房间”这一实体,而是“只属于自己”,即使是亲密关系中的另一个个体,也依然需要排除在外。

真实的自己与缺点

亲密关系中的另一大难题其实是“真实的自己”与对彼此缺点的包容。在与亲近的人相处时人似乎总是会更不加掩饰一些,而在长久相处中也难免会有一些矛盾。

我是个对生活质量要求很低的人,可以连续一两天懒得吃饭和睡觉、几个月不买衣服;对周遭空间也很不敏感,家里我可以只在电脑和床这几平米的空间里活动,一个掉在地上的瓶子我可能一两周后才发现;夜晚也常常是困到开着灯和电脑不知怎么睡着的。而学姐是很认真在生活的人,空间的整洁、物品的摆放、生活的仪式感,都是她很在意的点;对于环境也更敏感些,夜晚的一丁点光亮和声音都会让她难以入眠。

日常的相处中就常常会因为这些习惯上的差异而累积一些小情绪,事情都不大但是很难解决,可能会需要更长久的时间去理解和磨合。

比起这些生活习惯上的琐事,目前更严重的是在漫长的日常中对于对方的尊重。

有时候我手上在忙一些事,跟学姐说了 15 分钟后可以出门,但实际上可能早就过了半小时甚至更久。或许本身其实早 10 分钟晚 10 分钟出门并不会对实际的行程产生太多影响,但其实这种行为是对她时间的一种不尊重,如果预估的时候就说了半小时,学姐就可以坐下来更完整地读几页书或是处理点工作,而不是消耗在毫无意义的等待中。

几次之后我才意识到,在远程办公时间自由以及自己同时在做/想做的事越来越多后,其实自己对于时间的预估和掌控越来越差,但常常又执拗地不愿意承认,有的时候真的忙到无法兼顾依然强行多线程。

发生了好几次之后才更认真地对待这一趋势,也和学姐聊了自己在其中的感受和情绪,其实是可以通过沟通和调整来缓解的,但似乎即使是在亲密关系中,坦言真实的自己和不足依然是一件需要勇气的事。

个人生活剪影

上周末飞了一天又回到清迈了,很累,前几天都在宅着休息,没力气学习和处理太重的工作,就干脆继续折腾 Chromebook 了。

btw_i_use_arch

最终还是刷了 Arch,太喜欢了,翻好多 AUR 包贡献者的博客翻了好久,完美配置完了,follow、cursor 这些比较新的软件都有好心人打包和维护,Wiki 也很详细。

接下来这几周就继续游民生活啦,这次就会一直待到曼谷 devcon 之后了,到时候我们厂也会有主办的活动,欢迎来玩~

有趣的事与物

输入

虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。并且把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。

文章

视频

剧集

  • 企鹅人,我在上飞机前临时在 HBO 上下载的,The Penguin,以为是企鹅纪录片,没想到是哥谭的企鹅,很精彩,连刷了 5 集。
  •  

周报 #76 - 关于 Adulting 的思考

2024年10月24日 02:52

前言

weekly_review_20241024

本篇是对 2024-09-192024-09-28 这周生活的记录与思考。

Adulting

最近在一个喜欢的博主的频道看到这样一段描述:

因为大学毕业后直接读了博士,博士毕业后就继续研究者的工作,说是说工作,但是和念书时也没啥太大区别,所以总感觉现在的自己和学生也没什么区别,哪怕教过许多的大学生,但我也不认为自己和他们有什么区别,只是比他们早学几年而已。不过区别肯定是在某些时刻发生了。在生活中也偶尔会冒出诧异的感觉,譬如在看剧时、或者在消费时,发现自己的收入已经比家长高很多了,虽然匮乏的记忆仍旧历历在目,但那些好像是发生在另一个人身上的事。再譬如看一些文艺作品,讲那些大姐姐和大哥哥,那些我想以之为生活目标的人,一看发现他们年纪比我还小。再譬如每天起来洗漱时,真真切切地感觉到自己的年岁在增长。

智识是增长了、但是我的情感能力却完全停留在学生时代。虽然读过许多激动人心的文学作品,但仍旧对讲青春期的故事着迷,到现在还在追相关的新番并为之感动。我怀疑自己还在青春期中,似乎就只是在象牙塔里空长了年岁。这十年我在干什么呢,我不理解。身边的人如何进入自己的生活,生活的洪流又是怎么吞噬一个个人的,我不理解。但是更令我难受的是,当我看到现在的中学生时,我也不理解。

我觉得人的经验中是有很多问题需要被解决的,我不知道别人是怎么解决这些问题的,但我不解决它们我就没法进入下一个阶段。当我搁置它们的时候,我就并没有在成长,物理时间、精神时间和情感时间完全错开了。我现在也很困惑自己是否也能和别人一样成为看起来很正常的大人,又或者是否有能力保卫住我现在这样能让自己胡思乱想的生活。每次想到这里我就感到难过。我没有勇气进入新的生活,就像一个因为执念而仍旧留存于世的幽灵一样。

yu_sunrise

心里的某一块似乎一下子被击中了,想到了最近刚听说的一个词「Adulting」,印象里是博主学会了车窗被路上飞来的小石子砸坏是可以走保险之类的这样一个冷知识,称之为 「Adulting 技巧」,很喜欢这个形容 —— “正在学会成为一个大人”

随着自己年岁渐长,即使没有刻意去比较,其实比起学生和孩童时期变化已然很大了。

工作已经三年多,生活独立,买东西时似乎已经可以相对地“随心所欲”;走南闯北,踏过的土地也远远比父母去过的地方要多得多;遇到什么人生的重大决定,似乎也不再那么慌张了。

前几个月考了驾照,现在常常开车出门;前段时间在整理自己一团糟的财务信息,办了一些卡、买了一些定存等等。在做这些时,跟学姐说了句,“我现在好像个大人呀,会开车出门还有很多银行卡。”

学姐回话说,“只有小孩子才会比谁的卡多,大人也不会因为自己像大人了而高兴。”

或许跟我一直以来的经历有关,初高中之后爸妈就不怎么管我,大学后更是按照自己的想法在生活。好处是似乎看上去处事不惊,性格多少成熟稳重些,“坏处” 是并不受父母长辈的标准约束,也早早关了朋友圈屏蔽了 peer pressure 的影响,导致似乎自己的生活和同龄人所在经历的似乎是有些脱轨的。

这两年参加了三场高中同学的婚礼,其中两对孩子应该就在这两个月就要出生了,应该不会有人还在为考出驾照而高兴好几周,或是因为一束「送错的花」而沮丧好几天。

大多数时候我还是乐得如此的,似乎努力保留一点“学生气”也让我面对这世界的时候多一些乐观和勇气,离世界的那些污浊的死气沉沉的真相远一些。

但真的能一直这样么?

和学姐刚在一起的时候,有一次她去公司的一个活动,下班后一脸疲态,跟我倾诉说,同样一件事需要用好几种截然不同的方式向不同的领导汇报和其中察言观色的部分很消耗心力,很累。

我突然发现我没办法给出有效的安慰,并不是不懂其中的门道和“人情世故”,也明白生活在不断吞噬每一个人,只是这些事第一次如此真实地出现在我最亲近的人身上时,而我却也无能为力。

我在周报中也曾大言不惭道要追寻月亮,不能因为要去捡六便士而成为自己所不喜欢的样子,但其实世界原本就是这样运作的,即使我能侥幸逃脱这些桎梏,也没有能力荫庇身边重要的人。

学姐说了一句,“你能有选择不成为这样的人是很幸运的,总好过让这世上再多一个无聊的大人”,有些惭愧和心虚,似乎本该学会长大的自己执拗地搁置了这些,真的是对的么?

我真的有能力守住这样能够继续任性继续胡思乱想的生活么?

有趣的事与物

输入

虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。并且把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。

文章

视频

  •  

周报 #75 - 回答 Dayu 关于独立博客的 9 个问题

2024年10月23日 23:20

前言

weekly_review_20241023

本篇是对 2024-10-142024-10-20 这周生活的记录与思考。

这周从清迈回到了杭州,但是由于项目发版而忙碌了整整一周,几经波折,有些心力交瘁,于是也搁置了没记录些什么,看到 Dayu 的这篇「博客作者呀,我想采访你这 9 个问题!」,有很多想说的,直到今天晚上才想着写博文回答一下,像是笔友的一次隔空交谈。

回答 Dayu 的 9 个问题

01. 简单介绍下自己或者你的博客

我的博客名称是「Pseudoyu」,和我自己的昵称同名,是以自己名字中有的 Yu 为源自己创造的词。在我的「关于」页有更详细的介绍:

取用了一个前缀「pseudo」,pseudonym 有「笔名、假名」的含义,编程里常用到的 pseudocode 是「伪码」的含义,而很喜欢的日漫 物语系列 - 伪物语 中也不乏对「真物」与「伪物」的探究,那为什么不能有一个 pseudo 的 yu(我)呢?

其实一开始真的是想做一个严肃的技术博主,顺便记录下自己的折腾工具和效率的一些心得,慢慢地,因为搭建博客和周边服务的一系列教程吸引了一批读者,最后,似乎还是以「周报博主」这一身份为大家所熟知,机缘巧合,但却也不错,能够隔着互联网给大家传递一些温度。

即使现在已经有了不少读者朋友,但要说博客对于我自己的意义,还是更像想法和情绪的私人空间吧,状态不好时文字也是丧丧的,甚至是很久不更新;在经历人生的一些重要阶段时,过去的文字又常常给我温暖和勇气。

02. 什么契机让你开始写博客

我高中学的是文科(现在可能已经不分科了?),也曾混迹文学社、有过作家梦,比起其他方式更习惯使用文字来表达自己,曾经也写过个人公众号或是投稿一些平台,在对技术有了更多了解后使用 Wordpress 自建了自己的第一个博客,后续觉得曾经写的又很幼稚,使用 Hugo 重建了博客并买了这个域名,直到现在。

这个博客的话,其实是自己读研的时候把自己的笔记都使用博文发布出来,便于自己回顾和分享,后续也有写一些技术教程和工具效率软件的使用心得,但总体来说断断续续的,直到两年多前决定重新用文字记录生活,开始写周报,不知不觉也已经七十多期了。

要说契机的话,我想到了最近在清迈买到的一本笔记本上写的一段话:

When you read, you are reading the writer's words

But when you write, you are reading your soul

03. 你是如何完成创作的

写作对于我来说确实是一件下笔不难,但决定坐下来写却需要勇气的一件事。

技术类的文章则是来了灵感或是动力,就算是深夜也会爬起来写完,常常写到清晨;而大部分周报除了极少数的旅行总集篇外,经常是会给自己下一个 deadline,然后在最后几个小时用很短的时间写完,大多都是没有提前构思积累,而是坐下在电脑前一气呵成写完的,只要有想说的话,遣词造句倒不会成为阻碍。

我整体写作算是比较粗糙的,写完后简单通读几遍就直接发布了,发布的前两天会反复看,修改一些小细节,然后就继续下一个轮回了。

工具方面的话,我就是使用 VS Code 写 markdown,截图使用 CleanShot X,图片使用我自己的一套方案「从零开始搭建你的免费图床系统(Cloudflare R2 + WebP Cloud + PicGo)」上传到 Cloudflare R2 并使用 WebP Cloud 优化;封面图是用 figma 编辑一个自定义模板;写完后上传至仓库并自动发布。

04. 运营博客的过程中是否有失去过动力?如果有,是为什么恢复的?如果没有,请问您又是如何保持创作的激情

我的博客间歇性会有断更,不过通常不是因为失去对运营博客的动力,而是失去了对生活或是与自己对话的热情和能力,所幸我有很多篇周报、年终总结和生日总结,我常常会在这样的时候一遍遍去读之前自己写的这些文字,发现其实过去觉得重要的不重要的、开心的难过的,放在两年多周报的维度上,似乎都随着时间过去了,而在其中的我,也一步步变得更有勇气。

与其说是保持创作的激情,不如说是过去的自己的文字常常在救赎现在的我,而现在的我也常常会想,或许现在无心的一句话,又会成为未来自己的一束光;我也常常会去读博客的评论,有很多很用心的话语,同样让我有了继续创作的动力。

当然,也有时候会怀疑自己写的内容的价值,也还是引用我博客之前写的一段话来解答:

就这样平凡的我常常也会犹疑,自己的生活“流水账”是否有这样的价值呈现在所有人的面前,直到最近恰好在 B 站上看到这样一个视频 —— 「什么是好看的色彩?拍视频五年,我调色成了什么样」,是讲调色相关的,里面的一句话却深深打动了我:

当我第一次把镜头对向自己的时候,我才发现拍得可以那么惬意,没有压力。这时我才发现,我以前羡慕的不是那个画面,而是背后浪漫热烈的生活,这是我爱折腾的意义,我想让你看到我眼里的世界,而我屏幕里最好看的颜色,就是我生活的底色。

这是对我现在写周报时的心境最恰如其分的形容。

05. 如何搭建博客,以及运营博客每年需要投入的资金

(搭建博客算是我的专长了 🤣,感觉自己一半时间在写博客,一半时间在研究怎么搭博客

可以参考这篇吧 —— 2024 年了,我的博客有了什么变化

博客本身域名 10.44 美元一年,WebP Cloud 的 Lite Plan 3 美元一个月,其他服务都是在免费或是几乎可以忽略不计的 Serverless 平台上,没什么成本。

06. 推荐 1 篇你博客中的文章,并推荐一个你喜欢读的博客,聊聊原因

近一年我最喜欢的一篇文章是 —— 「27 岁的自白:成长是一件很扫兴的事」,虽然是自己写的文字,一次次重读心绪却也难平,算是这些年不论是阅历还是写作能力提升后,第一次觉得真的有把自己想说的话好好地用文字描摹出一个具体的形状。

很喜欢读的一个博客是「椒盐豆豉」,读她的文字有时像是在体验另一种生活,有时又似乎不知不觉代入思考,说不上来,并不是文字的陷阱,而是真正灵魂有趣的人所散发出来的魔力。

07. 推荐 1 个近期喜欢的事物?(例如书籍、电影、音乐、工具、软件。)

最近的话在折腾 Google 已经停产了的一台 Pixelbook Go Chromebook,很轻很有意思的一台设备,我在做的是让这台设备能够满足我的大部分工作需求却又不要满足得太好。

我其实有很多高性能设备,例如日常在用的 M2 Max 的 MacBook Pro,由于性能和续航达到了一个很不错的平衡,导致我即使出门在外也随时都能打开来进入工作状态,甚至爬山和散步都会背着,有时候其实并不能很放松地出门或是陪伴身边的人,但我又有“电脑分离焦虑症”,不在手边的时候总是担心有什么紧急事务要处理而焦躁不安。

这台 Chromebook 算是一个完美的方案,同时有满血版的 Chrome、Debian 和 Android 系统,性能不强、轻便好看,所有依赖浏览器的工作都完全能胜任,真的要调试工作项目的代码稍微有点卡但也能用,在缓解我焦虑的同时,每次有需求后也多了一步掂量一下,是不是真的紧急到我即使需要更费力地调试也要当下完成,绝大多数情况下我也都会选择等到家了换上主力设备了再处理。

这一点很有意思,其实设备性能已经过剩到并不会制约自己的效率,反而是需要刻意的约束来让我的目光更多转向周遭。

08. 想做还没有做的事,或想尝试还没有尝试的主题

想拍生活 Vlog 以及一些工具效率的视频,其实并不愁内容和表达,只是缺乏开始的动力。

09. 写到这里,闭上你的眼睛,深呼吸几分钟,或是出去溜达一圈,然后回来写任何你想写的东西

每次拖更周报自己的心理压力好大,还是接着这篇重新找找写作状态,谢谢 Dayu,希望自己还是更多能够准时更新吧。

关于 RSS 与信息获取

最近在写 RSSHub 的代码,有一些有意思的感受。

前两天因为要解决 B 站抓取的问题看了 DIYgod 发给我的一个研究 B 站风控机制的 Issue ,看到 B 站的复杂的风控加密算法和开发者的应对策略,有一种两边斗法的感觉,根据里面的一些逻辑改了代码,生效了一阵子,今天看到又失败了 😶‍🌫️;今天发现 Follow 里抓不到我的 Mastodon 实例的数据了,前几天还可以,本地调试了一下发现是抓取的时候有一个 401 Request not signed 错误,分析 Header 里面内容调试了好半天,最后发现可能是我那个实例的 admin 新增了对非登录用户的一些权限限制;还有很多平台也是。

感觉在做网页数据源 RSS 化的时候总是会做很多“无用功”,一下午甚至几天的成果很有可能因为平台策略的微小改变而付诸东流,和平台反爬风控的斗争貌似也永无止境。

往大了说是 Open Information,小一点说只是想我自己能够有一些自主选择想看到的信息的权利,似乎在中心化主流的现在都需要付出很多额外的努力。

工作生活剪影

这周工作项目里要发一个大版本,几经波折,一整周都被熬夜后的恍惚和刚拔完两颗智齿的不适感缠绕。

今天凌晨刚发完版的一瞬间有种字面意义上的「豁然开朗」 ,很像一周前早起去在清迈素贴山上等候和看到日出时的心情。

sunrise_with_boyi

有趣的事与物

输入

虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。并且把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。

文章

  •  

周报 #74 - 清迈异闻录

2024年10月21日 08:20

前言

weekly_review_20241021

本篇是对 2024-09-292024-10-13 这周生活的记录与思考。

这两周去了清迈参加 invisible Garden 的活动,去当 Solidity 课程的讲师;学姐也请了一些假,凑上了一次为时半月的旅途。这些年在清迈呆过了大概加起来也有一个多月,心情却总是有所不同。

这次整个期间一直没更新周报,但在自己的 Telegram Channel 中还是保留了比较完整的记录,所以这篇也算是总集篇了,这篇偏记事,感受和思考可能后续会再谈一下,包括旅行中的相处。发生和体验了很多有意思的事。

清迈生活

00. 初来乍到

meal_at_chiangmai

9.29 傍晚刚到清迈,经接机的热情司机大叔提醒去逛了周日夜市(清迈最大的夜市了,来了好几次总是错过),这次没计划倒是不期而遇了,很热闹。

work_at_chiangmai

夜市买了一套喜欢的 local 服装和拖鞋,开启 10 月 Thai-style 旅居生活。

甚至偶遇一个周报粉丝,送了他一个 Follow 码 🤣。

01. Invisible Garden

在 Invisible Garden 当 mentor 上了三节课(两次主讲,一次辅助另一个 mentor Daniel 答疑),接下来的一周应该还会密集上三四节。

daniel_class_chiangmai

上一次英文授课还是去年,muChiangMai 活动,但这次时间更久,内容也更深入,虽然多少还是有点磕绊,在第三节课的时候感觉已经比较游刃有余了,见到了很多有趣的开发者,也跟 Daniel 交流合作得很惬意,算是这次最大的收获了。

paint_daniel_yu

在清迈 Invisible Garden 上完第一节课后和另一个 mentor Daniel 在交流后续课程安排的时候被学姐画下来了 增加了有趣的记忆点 🥰。

meet_with_vitalik

还很运气地在一次讲课后下楼刚好遇到了 V 神,在学姐的鼓励下去找他聊了一会儿,还给他买了一杯咖啡,比想象得更有亲和力,还鼓励我 keep programming,感觉现在再写合约都有加持了 🔥

Talking to Vitalik Buterin at Chiang Mai really made my day!!! 🥹 bought him a cup of latte, shared ideas about ethereum and introduced our RSS3 project to him 😊

02. Iyengar Yoga

去了 5 次瑜伽课,几乎都是早上 7 点打车去古城,Iyengar Yoga 对于我这种柔韧性很差的人真的折磨,感觉是该回炉重造了,其实一开始只是想陪着学姐去,但是似乎也坚持下来了,老师说进步很明显,甚至能倒立了,这周应该还会完成一个 4-5 节课的 Session。

有趣的是老师为了让我放松在跟我闲聊:

“You have a very healthy body but apparently lack of exercise, how old are you? 22?”

“27 and I’m a programmer”

“Oh that make sense, you actually need yoga!!!”

其实随着年龄渐长自己已经不得不正视身体和精力已经有些跟不上自己的想法了,早起去瑜伽或是锻炼几个小时,下午回来后常常感觉到疲劳,学习能力和专注力也不如之前了。

有尝试过进行一些调整,如又重新恢复的 8+16 断食和坚持了差不多一个月素食(不算非常严格,跟朋友聚餐也会破戒但大体坚持下来了),再加上现在的瑜伽和偶尔去的各项运动,有点像是人力抵抗自然,痛苦但有用。

03. Meditation

meditation_at_chiangmai

去了两个寺庙练习打坐冥想,算是瑜伽的一种结合,不过很可惜没有足够的时间体验一个更长期完整的禅修(主要还是得断网 10 天+,以及目前的心境也不算适合),看到有一些线上课程有教如何冥想,打算先慢慢练习开始。

但隐隐觉得未来有这样机会的时候会是一些人生比较重要的节点吧。

(没有拍我打坐的照片,发现就目前的打扮和发型来说,学姐穿我的衣服拍的背影已经不容易分辨出来是谁了 🤣

04. A Chiang Mai Couple

chiangmai_couple_meal

经典的一人做一两个菜的聚餐环节。

去学姐 7 年前在清迈旅行时认识的朋友家里作客 2 次,很有意思的一对 couple,大概 30 出头,15 年在清迈 gap year 做义工的时候觉得很喜欢,就留下来了,做民宿生意,一晃已经近十年了,起起伏伏,又经历过了疫情后的几乎从零开始,现在渐渐步入正轨。

男生热情而有责任感,承担了大部分的民宿生意琐碎的部分,为了生计当过中文老师、美术私教,还去考了潜水证和打了几年泰拳比赛;女生一开始自己一个人收拾民宿,洗床单刷马桶,到现在学会了泰语,还开了公司管理着很多泰国的清洁阿姨,坚毅而有力量。

chiangmai_couple_1

chiangmai_couple_2

看着他们挂满的自己画的画,一整面墙的木工用品,羡慕之余开始想,可能这才是真正的生活。

05. People in Chiang Mai

另外一个很有意思的是对清迈人(或者说泰国人)的感受。

泰国是一个很重服务业的国家,之前几次的印象就是酒店 housekeeping 的阿姨总是很友善,出租车司机也都热情到位,但这次跟上条提到的在清迈开民宿的老板娘聊了后发现一些很有意思的文化现象(主要指的是服务业人员,但也能够概括一部分整体特征)

  1. 很少把自己的真实感受会直接地告诉你,当面永远是偏向于热情和善,对所有事情也都应承,但背地里其实会骂你,只有经过了很长很长时间,才会信任你。
  2. 本质上很慢、也很“懒”,对于工作的态度很佛,当他们工作不开心了可能随时就辞职了,把积蓄花完再找一份工作。

带了这样观察的视角又在清迈生活了一周后,在用 Bolt 打车时遇到过两个事。周末的早上打车去瑜伽,有一位司机说正在送上一位乘客,大概两三分钟后到,等了十几分钟后我只是在平台的软件发了一句问他”where are you? I’m late“,他直接取消了订单;还有另外一次是我吃完饭提前打车,但是结账时候耽误了一点,我就跟司机说了一下情况让他稍等一会儿,结果他连续发了好几段话骂我,然后取消了订单 🤡。

可能他们并不想在工作上给自己任何压力,急单能不接就不接,反正又不是接不到了;工作中有让自己不开心了就也按照自己的心情来;对面有一家送煤气的据说是常年挂着招工的招牌,因为员工总是做一阵子,想不做第二天直接不来了。

music_taxi_chiangmai

当然不良的感受是极少数,大部分时间还是能感受到他们的善意,遇到了一个泰国司机,听到我们在讲中文后在 YouTube 上找了杰伦的歌单放给我们听。

这些大概是只有在本地生活一阵子才慢慢感受到的。

有趣的事与物

输入

虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。并且把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。

文章

视频

音乐

  •  

周报 #73 - 《社交网络》、Ego 与中秋的现充生活

2024年9月18日 03:00

前言

weekly_review_20240918

本篇是对 2024-09-092024-09-17 这周生活的记录与思考。

《社交网络》与 Ego

the_social_network

我和学姐从职业、爱好到性格都有非常多的不同,但并不是会相融的类型,因此常常也会去尝试或试图理解对方的 passion 所在,即使会常常发现更多的差异。

这周和学姐突然聊到为什么喜欢写代码,有时候这些动机和热情很难用只言片语来解释,突然想到几部影响我很深的电影/剧集,《The Social Network(社交网络)》、《Silicon Valley(硅谷)》等等,想到我订阅的 HBO MAX 已经好几个月没有打开了,于是趁着中秋假期一起看了《社交网络》。

大概是大学的时候我看了这部电影,后面的几年里又重温了几次,每次都能燃起我心中对代码与创造的热情,大概是由于把一个小小的想法实现为一个产品的奇妙历程总是让我着迷。

学姐提到 Mark 的自我中心、“渣”与背叛,或许天才或是成功的创业者或多或少有着自己的一些特质,但并不是必要成为一个“坏人”,好的秉性与好的技术/产品并不是那么水火不容,世俗意义上他成功了,但或许也失去了很多原本珍贵的东西。

在和学姐的闲聊讨论过程中我也发现了自己在其中 Ego 的部分,似乎「Code is law」的观念常常也会带来一些副作用,有足够的天赋或是写足够好的代码就会容易让人去忽视其中的自大、不尊重与不真诚的部分。

有时候这些观念也在侵蚀着我的日常生活,似乎 Coding 是极少的“仿佛”不需要合作就可以独立完成的事,也让我变得并不那么习惯于去合作,比如刚结束的 ETH Shenzhen 黑客松中我选择了自己一人队伍,很累,但似乎这于我而言是更为省力的一种模式,我似乎并不那么容易去信任他人,再深层一点我似乎并不觉得临时找几个队友能够做到什么我无法做到/学会的事,更严重一点也容易忽略他人的付出和贡献,尤其是非技术的部分,但有时候这还是挺糟糕的事。

正好公司内部很快就会举办一场为期一周的内部黑客松,我也会试着从中有意识地调整和观察自己在团队合作中的行为,也很期待一起做有意思的项目。

小小预告:和 Follow 有关。

中秋的现充生活

原本中秋想好好窝在家里写三天代码,但可能是由于前段时间总是睡前工作,精神和身体都有些许疲累,有点熬不动了,就趁着这几天好好休息调整了下。游了两天泳、去车库画了两天墙绘、第一次滑板上路、中秋回去家庭聚餐,现在的我现充得可怕。

似乎生活慢慢归于日常,多了很多似乎“无所事事”的时光,却也意外地珍贵。

car_garage_painting

想到今天在给墙绘画一块砖的时候,学姐说可以先近着描一些细节再走远了看一下整体,能够更好地把握画面。也看到墙绘从一开始到现在的对比图,看着墙面一点点增加细节(虽然我基本上是只是画了砖块),似乎也看到了生活的本质。

关于 RSS 的想法

上周我发起了一个选取邀请码的活动,原本只是因为邀请码稀缺而增加一些难度,但收到了很多评论,甚至总字数也远远超过了正文,能看到好多对于 RSS、阅读、信息处理的一些想法和探讨,发现 Remark42 可以订阅某篇文章的评论,我直接导入 RSS 链接 在 Follow 里看更新了。

有趣的事与物

输入

虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。并且把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。

收藏

书籍

文章

视频

  •  

周报 #72 - 滑板体验、Rust Conf 与 Follow 公测(含邀请码)

2024年9月8日 16:00

前言

weekly_review_20240908

本篇是对 2024-09-032024-09-08 这周生活的记录与思考。

去上海参加了 Rust Conf 2024,度过了两天,收获了很多周边,现场在同事的指导下重构我的用 Rust 写的 Api Server;Follow 进一步扩大了公测规模,要到了 10 个邀请码,会在本篇的评论区发放;还有很多有意思的事。

Lake 游戏

lake_pic_01

虽然团队的项目已经在上一周顺利上线了,似乎依然有不少需要忙的任务,工作时间偏晚,再加上早上要晨跑,工作状态和睡眠之间的界限比较模糊,有时候躺着很久都睡不着。持续了接近几天后,整个人有些提不起精神,于是决定晚上在 Lake 游戏中送送信放松一下。

lake_recommendation

好久之前就在 Randy 的一条推文了解到它,作为「Life is Strange 系列」这类游戏的爱好者,对于这种更生活化、平静却又引发思考的游戏一直很感兴趣。

如我在「周报 #70 - 消失的附近,Burnout 与 Boreout」中所说的那样,早早离开家乡的我现在也几乎没什么还在联系的童年玩伴了,小镇风景和我记忆里的村落当然也是天差地别,却依然被能够在各个小屋、邻居家亲切打招呼,倾听他们故事的感觉心生向往,或许这样的生活方式比起繁华的都市更加让人变得具体而知足。

不要问我一个程序员下班的时候还要扮演一个程序员下班/休假,我之前下班还玩「Shenzhen I/O」模拟程序员上班 🤡...

滑板体验课

我从小时候开始玩了十几年轮滑,几年前也曾学过一小阵子滑板,不过不算很系统,一直很想精进一下,后面也可以习惯滑板上路。

因为只是一小时的体验课,教练更多从滑行、放板、收板和转体的一些入门动作开始,纠正了挺多之前自己玩时候的不规范动作,慢慢也习惯了在板上的感觉。后面有两次因为想尝试下陡坡而狠狠摔了两跤,疼但却反而更有了一些运动后的压力释放感,也更感知到这一运动的魅力。

不过系统性的课程还挺贵的,可能考虑先自己再玩一阵子,10 月去清迈旅居的时候去找当地的教练学。

摔太惨就不放图了。

RSSHub 部署迁移

rsshub_hits

前几天因为不小心同步 OneDrive 和 iCloud 的时候用了自己 VPS 搭的代理,主力机器流量被刷完了,导致自建的 RSSHub 也停了。因为作为公益公开实例挂在 RSSHub 官网上,想着还是维护一下,于是转移到了另一台闲置的 2C2G 的机子上,发现机器瞬间被打爆了,看了下平均每分钟 100+ 次请求...

研究了一下发现 Zeabur 的模板没法通过 WebSocket 来访问 browserless/chrome 服务,现在用的镜像也并不内置 Puppeteer,很多网站没办法抓取,以至于很多路由失效,于是改了一下,发布了一个 Zeabur 模板,现在支持一键部署带 Puppeteer 的 RSSHub 实例了 —— 「RSSHub (With Puppeteer)」,欢迎一键部署。

然后自己部署了一份,也算是为 RSS 事业做贡献了。

Rust Conf

rust_conf_pics

这次没怎么拍照,偷了同事的周边图。

似乎每年都有那么一两个月会更“现充”地参与各种线下活动,和远程办公的同事/朋友们相聚。在参加完 ETHShenzhen 不久后,我又约了一些同事朋友来上海一起参加 Rust Conf,度过了有趣的两天一夜。

搜刮了一圈周边,去看了几个感兴趣的 Talk,和新老朋友浅聊一会儿,最后还是聚众在会场的一角 Review 和修改我写的 Rust 烂代码,学到了。

早上刚到就京东下单了一本「Rust 程序设计」,刚送到在酒店大厅开始学了...

个人生活剪影

偶遇的有趣设计

interesting_tre_huzhou

上周去湖州莫干山尝试了一下林间木屋,本身体验普普通通,但在返程时见到的一个有趣的大眼树却印象深刻,感觉在车窗的滤镜下有很日系。

有趣的事与物

输入

虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。并且把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。

书籍

文章

视频

音乐

Follow 公测特别活动

在之前的一篇「周报 #67 - 使用 follow 重塑我的信息输入系统」讲了我使用 Follow 这一应用的体验,依然十分惊艳。

一个多月过去了,依然是我每天都高频打开的软件,软件也迭代了不少新功能和亿点细节,慢慢也开始扩大公测规模了。

我向 DIYgod 要了 10 个邀请码来作为博客/频道读者的福利。

参与方式

在本篇文章下评论你关于阅读、信息流、RSS 使用或关于周报的相关想法,我会在北京时间 9.9 日 22:00 挑选 10 位发放邀请码,我会在评论区和 「Yu's Life」 Telegram 频道公布名单,选中的用户可以联系 pseudoyuconnect.hku.hk 或任意我的社交平台私信。

活动后也可继续留言,如果我后续能拿到更多名额(或者我努力签到赚 Token),也会继续在评论区发放,欢迎参与。

  •  

周报 #71 - Indie App 体验计划

2024年9月3日 08:00

前言

weekly_review_20240903

本篇是对 2024-08-262024-09-02 这周生活的记录与思考。

这周我们团队做的去中心化索引正式主网上线,异常忙碌,输入输出和学习相较之前都少了不少;收到了 PaddingLeft 的贴纸;体验了 Xylect,想到一个好玩的计划;还有很多有意思的事。

RSS3 Node

rss3_node_epoch

这周我们团队忙碌了大半年的去中心化索引项目终于顺利上线 —— 「A New Era of Decentralized & Verifiable Data for AI & Open Web」。

理念和设计方面可以看白皮书 —— 「Whitepaper —— The de facto RSS3 Constitution.」。

有兴趣的朋友可以了解下。

更换贴纸

padding_left_03

Randy 的程序员周边品牌店上线了,见证了从他提到这个想法、到看厂家、再到正式上线售卖,执行力是真的强。

抢先体验成为了第一个下单的用户,刚好更换一批自己的贴纸。

padding_left_01

padding_left_02

在整理和更换贴纸的时候也发现慢慢成为了自己的记忆点。比如去 GopherChina 2023 拿了 JetBrains 官方的贴纸;去了 Rust Conf 2023 收获了很多小螃蟹;和同事去香港参加 Google AI 的会议拿到了 Google Cloud 贴纸,还在网吧枕着他们的周边抱枕度过了一晚。

突然有些理解手账的有意思之处,似乎能够通过这些痕迹来回顾自己去了哪些地方,又解锁了哪些新体验。

Indie App 体验计划

create_things_you_wish_existed

最近看到了一篇 laike9m 写的「推广独立开发产品,我做了哪些尝试」,讲了他推广 Xylect 这一划词 AI 搜索/翻译工具的历程。

自己其实也是早期 PopClip 的用户,后来也高强度使用 Bob、Haye.ai 等基于划词形态的产品,有些好奇,在官网看到有一条:

👨👩 Content creator? Contact me for collaboration and get free licenses

于是试着陈列了自己的 Twitter、TG Channel、博客、「GitHub - yu-tools」项目,发了邮件咨询了一下,很快得到了回复和 License 并加上了 TG 沟通,在使用过程中也提了不少用户侧的建议(有些已经在当前版本上线了),很新奇的体验。

文中有这样一句话:

开源项目永远是用户欠开发者,因为用户享用的是开发者的无偿劳动。而对独立开发(或者说所有的商业行为)而言,这种立场就完全逆转了。

自己一直很关注和向往独立开发,也试着自己开发过一些小产品,对于工具、效率类的开源项目和产品也常常第一时间去体验,时常有机会直接跟其开发者沟通,深知其困境。

而在和 WebP CloudXylect 开发者沟通的过程中,也发现我作为工具类产品的深度用户,时常也能从用户的角度提出一些小的建议,并通过文章(如「从零开始搭建你的免费图床系统(Cloudflare R2 + WebP Cloud + PicGo)」)呈现自己的真实使用体验和教程,常常也有开发者在我的博客评论下留言自荐项目。

于是萌生了一个想法,想着自己的周报和工具站「tools.pseudoyu.com」新增一个 Indie App 体验计划的模块,去体验自己觉得很棒的产品,会尽可能结合开发者和用户两个视角来给出自己的真实体验和使用方式,感觉会很有意思。

我并不是一个体量很大的 Infulencer,只是通过文字传达自己生活、思考和体验的内容创作者,并不一定能为产品带来多少用户或是付费转化,但我依然觉得好的产品值得被看见,哪怕只是增加了一点点。

我会从自己日常使用的产品开始,标准想引用之前看到的这句话:

Create the things you wish existed.

当然也欢迎通过 pseudoyuconnect.hku.hk 自荐~

有趣的事与物

输入

虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。并且把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。

收藏

播客

书籍

文章

视频

音乐

  •  

周报 #70 - 消失的附近,Burnout 与 Boreout

2024年9月1日 23:30

前言

weekly_review_20240901

本篇是对 2024-08-192024-08-25 这周生活的记录与思考。

消失的附近

disappear_neighbor

大概由于童年有七八年都是在老家长大,刚搬来杭州时候我所在的社区也有一群年龄相仿的玩伴,我大抵还算是一个“野孩子”。

在老家时候就不用说了,爬树、抓知了、下河摸鱼,折几枝柳树藤蔓自己做弓箭或是削弹弓,天地广阔,似乎总能有自己的乐趣。即使是到了杭州后,小时候每次吃完晚饭最期待的都是出去街道喊一声,会有人一起玩轮滑、滑板,会走街串巷地闲逛,也会去“富有”的朋友家里看他玩口袋妖怪(现在的「宝可梦」)。

而不知是自己年龄渐长还是整个城市变了,似乎现在鲜有“邻居”和“社区”的概念,总是一家一户一生活,甚至对家附近有哪些店、发生了哪些事也一无所知。

少年意气风发时候的自己自然是不甚在意,有很多同学、朋友,每次约出门也都是在繁华闹市街区,生活的“附近”太小,装不下自己的多彩生活。

然而,离开校园后的这几年的感受会更明显一些,即使生活确实显而易见地比之前丰富得多了,内心的孤独感却日渐增加。许多朋友渐行渐远,大家都有了新的工作、生活甚至是家庭,有时常常连开心或是难过的情绪都一时不知该向谁说。

还想起有一次在北京和渐仔相约打羽毛球,也一起吃了个晚饭,我们在合生汇看到了一个街机游戏厅,一起打了一个多小时的「三国志」,现在的我们已经可以不太在意花了多少游戏币,能不能打到通关,似乎只是想从中找回少年时的快乐。

可是却再也找不到了。

今年开始更频繁地去良渚和朋友一起办公,即使逾半小时的车程有些折腾,杭州夏日扑面而来的热浪也令人却步,在这每周难得的体验中似乎能够重新获得一些生活的能量和图中所说的对“附近”的感知能力。

Burnout 与 Boreout

前几周的某个周末,同事突然来问我最近状态怎么样,是不是发生什么事了。我起初有些诧异,其实自己感觉一切还算正常,详细聊了下后,才发现是自己的感知和实际的感知之间存在一些偏差,刚好也看到了这篇文章 —— 「Is it burnout or boreout?」,于是仔细回顾了一下这几个月的状态。

Burnout

总是有一些朋友会问我说是不是同时做的事太多了,但其实我自知并没有,甚至内心深处还是会焦虑自己做得依然不够多不够好。大概是“冒名顶替综合征”的影响,我总是觉得自己并不如同事朋友们那般有天赋与创造力,我似乎总是需要额外做一些事来填补内心的这种“不配得感”。

因此自大学来我一直以来都有“多线程”的倾向,在刚毕业职业发展的前期其实这种倾向给我带来了不少好处,我似乎成为了那个别人口中的“卷王”,总是在职责范围内做更多,学更多,也因此取得了许多不错的成果。

然而现在从实习开始算起的话,工作已经三年有余了,随着自己的能力刚刚好能满足工作的需求却有时候似乎难以有一些创新的时候,自己陷入了一种痛苦的“Burning Out”状态,一种职业的倦怠感,似乎有着一些工作量,但其实远远没有达到自己的承受范围或是极限,但有时候会让焦虑和自我怀疑包裹着自己的工作时间:

这个实现方案正确么?

我是不是应该在这个基础上做更多的优化,但似乎还没什么好的思路?

似乎同事都能够 handle 好自己的部分,我是不是应该更主动一点找到自己的定位?

...

这种 Burnout 的状态很狡猾,并不会让自己倦于工作本身,而是隐藏在工作量之下,所以自己甚至不太容易感知到,倦怠本身是一种情绪,让我缺少足够的能量去应付,同时会侵蚀自己的目标感和控制感,造成拖延和一些任务的错漏,然后加重自我怀疑。

Boreout

工作的前两年其实一切都是新的,工作任务和技术学习所带来的正反馈和刺激感很强,而现在工作任务只要付诸时间基本上能够独立或和同事的协作下完成,但由于工作内容相对稳定了,一项项 checklist 打钩所带来的满足感远远比不上学习一门新语言或是新框架,自己似乎又陷入了一种“Boreout”,对自己所做的工作内容以及自己所能为这份工作贡献的价值产生了怀疑。

以同事聊到工作状态之后这两周正视了这一问题,感觉产生了一些效果,恰好也对应文章中给出的几种解决方案。

Align

当时选择参加现在的公司和项目时,更多是由于其氛围和价值观,一年多过去了,其实原本的理由犹在,外力并不是造成自己状态改变的理由,应该更多向内探索。

Brainstorm

自己其实算不上什么独狼的性格,只是确实常常有些难以做到去麻烦别人,再加上有些 i 的性格,在群组讨论中似乎更多还是听从者的角色,参与感的缺失有时候也是自我怀疑的来源,像是和同事聊聊自己的问题,或是线下一起办公、参加活动,似乎能够更多汲取热情和能量。

Experiment

尝试在工作方式上做一些小的改变而不是因循原有线性的模式,并不每次都把“创新”作为唯一目标(往往会因无法达到而产生挫败感),有时候仅仅是一些方式的改变,在技术调研时的多几分探索,似乎就已经足够产生一些改变了。

有趣的事与物

输入

虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。并且把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。

收藏

书籍

文章

视频

  •  

周报 #69 - AI Coding 体验与学习的源动力

2024年8月19日 05:30

前言

weekly_review_20240819

本篇是对 2024-08-122024-08-18 这周生活的记录与思考。

从 VS Code 转向 Cursor 写代码,聊聊 AI 加持下的编程体验;和学姐在一起 400 天;某天和学姐有了关于过去经历和兴趣爱好的一次深夜长谈,引发了我对自己的学习源动力思考;还有很多有意思的事。

AI 加持下的编程体验

cursor_screenshot

这两周高强度使用了 Cursor,一个基于 VS Code 的 AI IDE,效果很惊叹。

我其实算是 GitHub Copilot 的非常非常早期的内测用户,直到现在也还在用;而在 ChatGPT、Perplexity、Devv.ai 和 Claude 出现后也都是高强度的付费用户,思维上已经很习惯使用 AI 来帮我写代码了,但是更多还是补全部分逻辑和调试 Bug,没办法做到项目级的辅助。

而在 Cursor 把整个项目作为上下文、提问时可以 @ 其他文件或代码、并且使用 Claude 3.5 Sonnet 模型之后,体验感和可用性已经和我想象的形态越来越近了。

web3insights_demo

实践上,在试用 Pro 的 15 天中,解决了我工作中的 Go 的一些 Bug 修复和新增 Tests;改进了 Electron 应用的一个更新提示界面和功能;从零开始帮助我写了一个 rust 的后端 CRUD api 包括完整的 Dockerfile 和 GitHub Action 部分;帮助我完成了一个 Remix 项目的数据可视化部分以及很多个界面的调整,精确到各个页面之间的交互和布局;以及顺便还帮我学了一些 SwiftUI。

我大概已经有 50% 以上的代码是在 AI 辅助下甚至直接 AI 生成的了,而我更多的时间都是「CMD + K」(Cursor 的代码生成快捷键)的对话框中跟 AI 沟通需求,在梳理 prompts(大部分就是按照对话自然语言来表述),对话或是等待代码生成的时候反而有了更多时间去思考代码架构、逻辑、更合适的第三方库等。

其实让 AI 了解我的需求的时候,自己也在反复思考其合理性,反而能产出功能和代码质量都更优的代码,至于语法和代码风格方面,我常常直接去研读和学习 AI 的实现,比起从零开始去读一个开源项目要好上手得多。

而我需要做的,就是设计和创造。

正如 Randy 在 「代码艺术家」不会被 AI 取代 一文中所引用的:

I realize the reason I like building is not just because I’m a builder.

我意识到我一直喜欢创造点东西的原因不只是因为我就是个创造者.

It’s because software products are how I express my creativity.

而是因为写软件产品是我表达我的创意的一种方式

It’s like a poem to a poet, a song to a songwriter, a painting to a painter…

就像诗人的诗,歌手的歌,画家的画

Software is my art form, my medium of expression.

软件是属于我的一种艺术形式,是我表达(创造力)的媒介。

ETHShenzhen Hackathon

web3insights_ethshenzhen_demo

上文提到的项目是我周末在深圳参加的活动,其实算是自己正经作为选手参加的第一个 Hackathon 活动,通宵两晚写完了 Demo,在现场写了基础的演讲大纲和几张简略的 PPT,最后完成了 Demo 演讲,比想象的还是要累不少,周日才睡上一个好觉。

学习的源动力

有一天晚上从给我妹妹选滑板开启了话题,和学姐夜谈到了过去的一些经历,以及自己的各种兴趣爱好。

我的奇奇怪怪的技能树和兴趣爱好其实不算少。学生时期大大小小的运动至少都接触过,大部分也还算上手;小时候也用那种扭扭的滑板四处刷街;轮滑自小学开始到大学参加轮滑社坚持了接近十年;跟着我表哥一起去游泳馆玩,自然地学会了游泳;大学后玩了摄影、学了剪辑,在全校飞无人机,也成立了工作室从各种灯光布景都研究了下;做过审计的实习、甚至因为创业开公司而自己把注册公司、财务报税、开发票、企业清缴汇算申报以及注销流程在没有中介和财务的帮助下自己操作了近两年;工作中也是对各种编程语言框架都很好奇,算是经常尝鲜。

我似乎一直有这样野路子学习的倾向,以及在学到了恰好足够满足我当时的需要时就戛然而止,并没有更多的欲望去深耕其中。例如,我算是喜欢摄影,甚至在做摄影和视频相关工作室创业的时候也有过把它作为自己事业的念头,但那么多年其实我似乎并没有真正地从构图、光影、色彩、修图这些去系统学过,视频拍摄剪辑也没有从戏剧理论、导演思维这一块打基础,只是在需要用的某个技巧或是功能的时候再去快速学习,够用但也仅仅是够用。

我认真剖析了自己的内心,发现了很有意思的现象,还会追溯到童年甚至更小的时候。

我很小的时候转学来到杭州,其实花了很多时间来让自己讲话不带乡音、以及花了好几年成绩才慢慢达到中上,也经历过一些带着歧视或是不公,内心积累了不少自卑的部分。而随着初中遇到了很好的老师,生活和学业才慢慢走上正轨。

这时候其实多了另一种评价,“你做到 xxx 一定很努力吧”

我并不是否认“努力”的重要性,只是常常被那么说,总觉得有些挫败,似乎连我自己都觉得,我就是不如别人,只是很努力,所以比别人取得了更多的收获,陷入 Impostor syndrome (冒名顶替综合征) 的自我恶性循环。

于是我慢慢开始不那么“努力”,似乎在向他人和自己证明,我能“轻易”做到这些事,渐渐地,也享受其中。

带给我快乐的常常并不是学到的知识或运用它实现什么,而是“学习一个新东西”和“我能够很快学会它”这样的心理正反馈。这带给了我一些好处,如长期这样乱点技能树积攒的信心让我面对新事物或许多看似遥远的目标时不会那么畏惧 ——

“过去的我做到那么多了,现在的我一定也能”。

但也让我有时候并没办法沉下心做好一件事,或者把某项真正喜欢的事做到最好,有广度而缺深度,感觉也是一种 trade off,慢慢也开始有一些改变。

个人生活剪影

400 天纪念日

love_record_400

和学姐 400 天了。

有趣的事与物

输入

虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。并且把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。

收藏

播客

文章

视频

  •  

周报 #68 - 关于写博客这件事与我生活的色彩

2024年8月18日 05:30

前言

weekly_review_20240811

本篇是对 2024-08-052024-08-11 这周生活的记录与思考。

从 TG Channel 里回顾了一下这周,发现一整周都围绕着搭博客和写博客这两件事,有了一些思考与分享欲,大部分内容都发过,算是一个整理了。

写博客的 ROI

blog_roi_x_discussion

前几天在推特上看到了关于写博客的一些讨论,又看到 Innei 的这篇「从讨厌写作到乐于分享:我与写博客的心路历程」,很有意思,于是趁机仔细回顾了一下整个写博客的历程与收获。

最后得出一个个人的结论是,我也觉得写博客是一件成本不低、周期长但 ROI 非常高的事。

如果按照广义的发自本心的写作来说,从高中左右就开始写散文、公众号、博客等等,持续了接近 10 年了,真正直接从为自己写的文字赚到的收入大概只有少数派发的六七篇上了首页的文章共计 3000 元左右稿费和一位读者坚持了一年多了依然还在每个月给我 GitHub Sponsor 的 5 刀赞助。

一开始就有心理预期,脱离了公司的薪酬外,不管是做产品还是写文字,哪怕让用户/读者为你付一美元都是一件并不容易做到的事,但就像 Randy 在 Notepal 的一篇文章里说的,「有人愿意购买」的意义远比数目的大小更大。

写博客也带来了非常多潜在的意义和回报。我去年来现在的公司面试时,一位当时的面试官现在的同事就有说,全组在面试前都有看过我的周报,对我的性格、技术力和学习能力等已经有了一些初步的了解了;在社交媒体上,也通过文字让我和许多我非常崇拜的人有了更多更深度的交流甚至是合作;在许多线下活动做了简单自我介绍后,也常常能听到一句“哦,我看过你周报,很喜欢”。

这些都是并不以此为目的但在长期的坚持中收获的惊喜。

而不论是写博客还是其他形式的创作,似乎都有着相似的路径。起初新鲜而动力十足;逐渐在漫长的周期中消磨信心,看到别的好的文章/作品感受到的不是美好而是压力 —— “为什么我写不出来”;慢慢沉淀回归自我,恣意、快乐,享受其中。

我生活的色彩

colored_camera

想起来在刚写周报的时候由于读了村上的一本小说而写的「周报 #09 - 没有色彩的 Yu 和他的巡礼之年」,里面我这样写道:

多崎作所在的小群体中其他四人以及后续结交的挚友的名字都巧合地包含了颜色词:“赤”、“青”、“黑”、“白”、“灰”,让他感觉自己就像是一个没有个性的存在,连带着没有色彩的人生。

其实关于自己名字的埋怨常常有,『请回答 1988』里德善也有向父母埋怨自己的名字毫无特色,不如姐姐宝拉。我也曾有过这样的想法,似乎自己的名字简短而没有特色,再加上也是几个大姓之一,常常在一个学校遇到不少同名的人,与之相伴的就是自己常常也需要额外努力才能留下更多记忆点。

虽然后续也和自己和解了,但似乎还总是感觉自己的生活与有趣已经无缘了。总是羡慕别人的有趣个性和经历,也常常在即使自己做得不错时也只是觉得在履行自己平凡人生的职责或是这些都并不属于自己。

就这样平凡的我常常也会犹疑,自己的生活“流水账”是否有这样的价值呈现在所有人的面前,直到最近恰好在 B 站上看到这样一个视频 —— 「什么是好看的色彩?拍视频五年,我调色成了什么样」,是讲调色相关的,里面的一句话却深深打动了我:

当我第一次把镜头对向自己的时候,我才发现拍得可以那么惬意,没有压力。这时我才发现,我以前羡慕的不是那个画面,而是背后浪漫热烈的生活,这是我爱折腾的意义,我想让你看到我眼里的世界,而我屏幕里最好看的颜色,就是我生活的底色。

这是对我现在写周报时的心境最恰如其分的形容。

博客搭建系列

博客搭建系列终于更新完了!前后加起来也有 10 篇之多,自己也算是入围博客装修赛道的了。

从一开始 Vercel 部署都不太会用,到现在市面上的 Serverless 几乎都玩过一圈了,很有意思的体验,一切都按照想法运作的体验真的很美妙,搭博客和写博客确实各有乐趣。

2024 版

比起两年前其实发布流程与外观几乎没什么变化,但组件和内容却已经很不一样了。

2022 版

除了平台有些变化,很多不再提供 Free Plan 外,流程基本都依然适用的。

不知道下一次更新这个系列的时候,自己会在做些什么,又在想些什么呢。

多语言支持

en_version_blog

其实我的博客一直是有双语的功能选项的(导航栏可以全站切换/文章中也可以直接点击对应语言切换),只是一直很偷懒所以只是把中文文档复制过去,今天早上通过 Claude 的 Projects 功能把现存所有文章都翻译了。

新建了一个 Blog Translation 的 Project,输入一个全局 Instruction,之后就把 Hugo 的 markdown 源文件丢进去就可以了。

模型使用的是 Claude 3.5 Sonnet,为了节省上下文,我每篇文章开了一个新的对话,发现一百三十多篇文章都翻译完了居然还没触发 Claude Pro 的 usage limit(在 9:40 am 的时候提醒了一下 10 am 前只剩 10 条,之后再也没有出现过),有点良心。

因为我今天的目的主要是完成所有文章的转换和粗校,后续内容上的还是会人工去校对一下,所以用的 Prompt 比较简单,不过返回格式的可用性和翻译质量都超乎想象。

You will receive a Chinese blog post in Markdown format (.md) using the Hugo template. Translate the content into English, adhering to the following guidelines:

  1. Use a literary tone for posts in the "Idea" category; otherwise, employ a professional tone.
  2. Maintain consistent terminology, especially for structural elements like "preface" and "conclusion".
  3. Preserve all Markdown formatting and metadata, including Hugo properties, links, audio, images, and other elements.
  4. Translate only the blog content itself.
  5. Return the result in Markdown format for easy copying.
  6. Do not add any introductory statements, explanations, or additional content to the blog.
  7. Provide only the raw translated Markdown content in your response.

有趣的事与物

输入

虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。并且把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。

书籍

播客

文章

视频

电影

  • 生活多美好,久违的看到流泪的片子。跟《土拨鼠之日》一样,看完会重拾一些对生活的热情与周遭 relationship 的思考;也不需要多么精致的画面或是置景,演员的眼神似乎都是亮的,透着灵性,这大概也是老电影的魅力。
  •  

使用 GoatCounter 与 Zeabur 搭建网站数据统计系统

2024年8月6日 19:00

前言

在「2024 年了,我的博客有了什么变化」一文中,我介绍了自己使用 Serverless 平台和一些开源项目搭建的博客系统,也开启了这个系列教程来记录搭建和部署全过程。

本篇是关于统计系统的解决方案。

统计系统方案

相比起博客本体和评论系统,我在很长的一段时间其实都没有在意过统计系统(主要当时也没人看),更加没考虑太多 SEO 或是什么其他推广方向上的事,但后来逐渐发现,其实统计下来的数据并不只是一张好看的可以用来发推的图表,其对于博客的选题、内容都有着很大的参考价值。

其实主流成熟的方案都能够满足基本的需求,即使是免费的 Google Analytics 也完全够用,但在博客发展过程中,我依然因各种原因有过几次迭代,最终使用了 GoatCounter 这一方案。

splitbee

我最初使用的是一个免费的工具 splitbee,它提供了免费的基础统计额度,有着还不错的界面,并且还支持一些复杂的用户追踪,A/B test 等,但印象里好像只能保留半年的数据,并且每月超过 5000 pv 后就需要升级了,所以后来放弃了。

Cloudflare + Google Search Console

cloudflare_web_stats

放弃 splitbee 之后,很长一段时间我没有集成额外的统计应用,而是用的 Cloudflare 自带的站点统计,但是发现它其实统计的只是网络总流量,有包括爬虫在内的非常多的无效数据,并且没有精确到路径等细节。

google_search_console

后来了解到了 SEO 这一概念后,又添加了 Google Search Console 这一统计维度,这也是目前觉得对我写博文最有意义的数据,主要呈现的是用户在搜索引擎中触达我博客站点的关键词以及通过搜索点击进入我博客的页面路径。

可以看到,一篇「Warp,iTerm2 还是 Alacritty?我的终端折腾小记」为我带来了许多访客,而关于博客搭建、智能合约开发也是大部分从搜索引擎来的自然用户对我博客的第一印象。

Umami + Supabase + Netlify

yu_umami_record

但是上述两者依然只能看到网站整体的数据,想精确到某篇文章在一段时间的表现或者文章发布后的实时访问数据,依然需要一个统计系统,我在看了 Reorx 的一篇「搭建 umami 收集个人网站统计数据 | Reorx’s Forge」选择使用了 umami 这一开源、易自部署的统计系统,界面简洁,功能易用,很方便集成到自己的博客系统中。

使用了一年半,一直倒没出现什么问题,,只不过可能因为自己用得比较早,在一次大版本更新的时候数据库 Migration 脚本出现了不兼容的字段更新,其实有点不理解这样量级的开源项目为什么会出现这样的问题,也看到 issue 中有很多其他用户有同样的诉求,但最终并没有给出一个比较好的解决方案。

但其实最大的问题是一个统计系统依赖了两个平台,部署和维护上都还是有些太重了。当数据库或是 Netlify 任一出现问题或需要迁移时,会带来许多额外的成本。于是前段时间在更新博客评论系统的时候,想着干脆就一起更换为更轻量的 GoatCounter。

GoatCounter + Zeabur

goatcounter_stats

这个小众的统计系统是我在看 Reorx 的博客代码更新的时候偶然发现的,一下子被这种 Retro Internet 的风格所吸引,几乎没有任何多余的按钮,功能却很完备,而且使用的是 go 单二进制文件 + sqlite 数据库单文件的架构,轻量而易于部署,于是打算迁移。

其实我自己的 GoatCounter 是部署在 fly.io 上的,但我在上一篇 Remark42 的文章中已经非常详细地介绍了 fly 的操作说明,不想有太多重复,刚好最近又在重度使用 Zeabur 这一 Serverless 平台,于是本文将以 Zeabur 为例,方式同样适用于其他类似平台。

我也在下文的 Zeabur 部署方案之后提供了 fly.io 和在 VPS 上使用 docker-compose 部署的配置文件,供大家参考。

GoatCounter 部署说明

GoatCounter 本身代码开源 —— 「GitHub - arp242/goatcounter」,文档清晰易读,可以根据自己的实际需求进行配置。GoatCounter + Zeabur 的方案仅牵扯到单个服务,数据库使用的是 sqlite 挂载于 volume 中,所以部署起来非常简单。

使用 Zeabur 部署

Zeabur 对于容器应用的部署是需要 Developer Plan 的,5 美元/月,但是像这样的镜像服务整体用量和费用都较低,每月的额度足够部署非常多服务,可以酌情选择。整体部署流程比起 fly.io 简单很多,所有操作都可以使用 Web 界面完成,不需要额外安装命令行工具等。

注册 zeabur

zeabur_login

访问 Zeabur 官网,并点击右上角,使用 GitHub 账号授权登录。

创建新项目

zeabur_new_project

进入主界面后,点击右上角 创建项目 按钮。

zeabur_hk_region

我选择了香港的 AWS 机房,不同机房的访问速度、性能和价格会有一些差异,可以根据自己的需求进行选择。

配置镜像部署

zeabur_build

在下一步中选择 Docker 容器镜像进行部署。

zeabur_docker_custom_config

由于我们使用的是自己构建的镜像,官方也没有上线 GoatCounter 模板,因此我们点击选择自定义。

zeabur_prebuilt_edit_toml

这一步可以自己在界面上填写各种配置项,但可能由于我习惯了 fly.io 的文件配置模式,我选择左下角的 编辑 TOML 文件,大家也可以直接复制我的配置文件并直接修改。

name = "yu-goatcounter"

[source]
image = "pseudoyu/goatcounter"

[[ports]]
id = "web"
port = 8080
type = "HTTP"

[[volumes]]
id = "goatcounter-data"
dir = "/data"

[env]
PORT = { default = "8080" , expose = true }
GOATCOUNTER_DB = { default = "sqlite3://data/goatcounter.sqlite3" , expose = true }

zeabur_prebuilt_goatcounter_toml

配置好后点击右下角部署按钮即可。

部署完成

yu-goatcounter_project

点击部署后,等待片刻,会有一个生成的项目默认名称,可以在左上角的设置中去修改为可读性较强的名称,如 yu-goatcounter

配置自定义域名

zeabur_create_domain

服务部署完成后,我们需要进行域名绑定才能通过公网访问网站,Zeabur 提供了免费的二级域名 xx.zeabur.app,也可以绑定自己的域名。

zeabur_custom_domain

其中生成域名可直接使用,无须进行其他配置,如 goatcounter.zeabur.app;而如果使用的是自定义域名,则需要在自己域名管理后台添加 CNAME 记录,指向格式为 xxx.cname.zeabur-dns.com 的机房地址。

cloudflare_goatcounter_config

例如我的域名托管在 Cloudflare 上,添加的 CNAME 记录如上图所示,有去问过官方,说如果选 AWS HK 机房的话可以不使用 Cloudflare 的代理,速度理论上会更快,可以根据自己的需要酌情配置。

此外,如果你选择的是华为云机房,则需要域名备案并且额外新增一条 TXT 记录,可以根据提示进行操作。

zeabur_custom_domain_success

显示绿色则为配置成功,至此我们的 GoatCounter 服务就部署完成了。

数据备份

我们在配置时候有这么一段

[[volumes]]
id = "goatcounter-data"
dir = "/data"

功能是将容器内的 /data 目录(即我们的 sqlite 数据库存在的位置)挂载到一个 id 为 goatcounter-data 的存储卷,如果不挂载存储卷的话,容器重启或重新部署数据将会丢失。

关于存储卷这一点 Zeabur 的界面上没有很直观的显示和管理操作,以至于我总是怀疑自己的配置是否生效。

zeabur_add_goatcounter_backup

研究了半天发现可以先在设置中暂停服务,然后在上面的备份模块新增一个备份,点击下载后可以在本地看到我们备份文件,目录层级如下:

data/
└── goatcounter-data
    └── goatcounter.sqlite3

这样则能表示我们的数据成功持久化了,希望 Zeabur 能在界面上有更直观的显示。

使用 fly.io 部署

纯免费的方案依然可以参照我提到的这篇「从零开始搭建你的免费博客评论系统(Remark42 + fly.io)」,仅在 fly.toml 配置部分不同,我也提供的我所使用的配置文件 —— 「fly.toml」供大家参考。

使用 Docker 与 docker-compose 部署

有意思的是,因为 goatcounter 的作者很有坚持,觉得这样单文件的应用容器化反而会增加更多维护成本,所以不提供官方镜像,不过自己在 vps 或者 serverless 平台部署有个镜像还是方便一些,所以我使用 Github Actions 做了一个构建镜像和上传 Docker Hub 的 CI,有需要的可以使用,对应的 Dockerfile 和 Docker Compose 文件也可以参照这个 Commit,或者直接使用 pseudoyu/goatcounterdocker-compose.yml 文件即可。

version: '3'

services:
  goatcounter:
    image: pseudoyu/goatcounter
    ports:
      - 8080:8080
    environment:
      - PORT=8080
      - GOATCOUNTER_DB=sqlite3://data/goatcounter.sqlite3
    volumes:
      - ./data:/data
    restart: unless-stopped

GoatCounter 配置说明

上文我们完成了 GoatCounter 服务的部署,现在就可以通过我们生成/自定义的域名访问到我们的统计系统服务了,如我是通过 https://goatcounter.pseudoyu.com 进行访问的。

goatcounter_create_user

第一次登录需要创建一个用户,填写邮箱、密码点击 Create 即可。

goatcounter_dashboard_success

登录成功后,当前还没有数据,会提示一个脚本,后续在我们博客使用的配置中会用到。

博客配置 GoatCounter

跟着上文我们完成了 GoatCounter 服务的部署和基础配置,现在则需要在我们的博文中加入统计组件,以我使用的 Hugo 博客为例。

<script data-goatcounter="https://goatcounter.pseudoyu.com/count"
        async src="//goatcounter.pseudoyu.com/count.js"></script>

add_goatcounter_script_in_hugo

将上述代码加到我 hugo 主题的 head 中即可,如我的 Hugo 主题在 layouts/partials/head.html 这一文件,不同主题或是不同 SSG 框架位置有所不同但大同小异。

有一点要注意的是, goatcounter 会忽略来自 localhost 的请求以避免在本地预览时造成太多脏数据,因此在本地调试时是看不到数据的,需要部署网页才能看到访问数据。

final_display_of_goatcounter

收集了数据后的效果大致如上图所示,还可以在 GoatCounter 界面中设置一些配置项、新增网页、查看详细数据等,包括还可以显示每个页面的访问计数等,可以自己根据文档进行探索。

总结

至此我们的博客统计系统就搭建完成了!本文是我的博客搭建部署系列教程之一,博客主题体部分都已经完成了,剩下只是一些例如博客内搜索等细节体验优化,希望能对大家有所参考。

  •  
❌