阅读视图
5月周记一
618网购记
前年买的科沃斯的机器人,因为当时也买了换新服务,这月要换新了,再不用就过期了,申请了服务,把机器寄回公司,坐等审核。我现在买家电基本都会随手买个2年全保换新,这几年家里的大家电都是用2年就换新的,很爽。
重新下单了新的机器人,怎么说呢,科沃斯这辈子我是不会再回购了,机器用了两年,丢地图、噪音大、软件还不好用,尤其是地图丢失,出现了十几次,每次都要重新建图,建好图又要重新设置各种「虚拟墙」,每次丢图的修复时间成本都要半小时。
这次换的是石头的机器,买回来三四天了,太好用了!甩科沃斯几条街是绰绰有余。
618开始当天我和x在石头直播间蹲了半小时,你猜怎么着,让我俩捡便宜了,直播间的链接价格出现了BUG,原价3170的机器,直播间下单居然只要1100,我俩一人下了一单,再想多买几台,发现已经下架了,小x说「肯定不发货」,确实,等了两天没发货,一人赔了500的天猫储值卡,好吧,算是意外惊喜。
不想做饭
最近我和x几乎没怎么做饭,准确说是我俩点外卖,单独给苗姐做面条或辅食,因为京东和饿了么美团都有活动,基本上我俩一天点外卖30块钱可以吃三顿饭,还顿顿不重样,虽然都知道不健康,但还是忍不住,啊哈哈哈,不过今天小x说受不了了,感觉自己浑身上下都很油腻,需要开火做点健康的食物,中午他做了三个菜,粉丝炒包菜、西红柿炒蛋、小炒肉,希望他能每天都愿意下厨,这样我也能改善改善伙食,哈哈。
村里通ADSL了
村里通ADSL了,上来更新一下 [手动狗头]。
这几个月没写博客、也很少浏览其他博友的站点,因为比较茫然。
过去的30多年,感觉每天都有崭新的、积极的变化,而现在更多是消极的变化。
常常失眠,怀疑自己是不是有抑郁症……
玩了2年的草缸,也没啥心思维护,改成一个原生缸了,3只乌龟在里面趴着,很少喂食,居然也在慢慢长大。
陆陆续续买了几十颗金弹子,现在还有2颗健康活着,其余都挂了,或者快挂了。
最近突然想折腾Nas,群晖感觉性价比不高,也不想折腾黑裙。国产的看了极空间、绿联、海康威视,最后突然想起我还有个旧笔记本。
大概是2013年初买的,华硕A45系列,英特尔i5三代芯片,4G内存,500G硬盘,大体是这个配置。后面被我折腾把光驱拆了改成了固态硬盘。
由于家里有台式机,这台笔记本闲置多年了,个别键位也不灵光,电池也不行了。
但改成Nas估计是没问题的。
首先,把家里网络优化一下,闲鱼上找了个查光猫超级密码的服务,花1块钱拿到超密,进入光猫后台,删掉TR069远程连接(防止被运营商远程改超密和配置),然后删掉原来的internet连接,新建一个名字相同的连接,只是拨号模式改成桥接。做完这些后,进入路由器后台,改成pppoe拨号模式,关掉IPV6防火墙等。
笔记本刷飞牛OS系统,顺利安装成功。
接着改飞牛的系统配置,防止笔记本盒盖后自动断开连接(这块网上有很多教程,最重要的一点就是一定要把代码前面的#删掉,不然不起作用)。
做完这些,就可以把笔记本放到一边了,打开台式机,输入笔记本的IP。顺利连上飞牛系统,速度还不错,安了几个APP,随手找了些磁力链接和种子挂上去,慢慢等待下载。
在外边的时候,手机4G直连可以通过IPV6方式,同时我也配置了DDNS但几乎没啥用,因为单位网络只有IPV4,还得借助飞牛的域名进行中继访问。
虽然是中继访问,但速度也完全符合我需求了,远程连上后,能查阅文档,能进入下载模块查看进度,能新建下载任务,就可以了。
由于笔记本的硬盘比较小,加上年限太老了,暂时就没打算把手机照片同步到Nas系统,只是测试玩玩而已。
然后还试了飞牛影视,这块单独有APP,分别在手机和平板都下载了,用来访问Nas的影视资源,并且支持自动刮削,非常方便,体验感比之前SMB分享的方式是稳定多了。
今年五一基本上都在家里蹲,中间有一天和朋友出去徒步。本来是打算自驾川西或者其他某些地方,担心堵车,担心人多,担心天气,担心浪费钱……就哪儿都不想去了。
马上又要端午节放3天,也是不太想出去玩,不知道这是不是衰老的标志。
我这小博客自从安装了一个安全管理插件后,发现每天有超多外部攻击,各种常识破解我后台管理员密码的,虽然都被自动封禁,但防不胜防换IP又来的。攻破了究竟有啥用啊?这还是只是通过wp后台来登陆的,估计直接攻击服务器,妄图扫描主机漏洞的更多吧。
读《巴菲特之道》摘抄
刚刚的伯克希尔年会,巴菲特宣布了即将退休,这将又是一个时代终结。于是本月决定看看跟巴菲特相关的书,《巴菲特之道》这本书介绍了巴菲特的投资理念,内容也不长花了几天就看完了。
巴菲特投资哲学的成长
巴菲特从小就接触投资,做生意积累本金,通过股市赚钱。他人生有几个重要的人,格雷厄姆是他的导师,巴菲特从他这里学会了安全边际,也就是要买价格低于价值的股票。巴菲特在学校是格雷厄姆的学生,毕业后也到格雷厄姆的公司工作了几年,从他这里巴菲特还学会了独立思考。
巴菲特读了费雪的《普通股和不普通的利润》之后,在他的投资理念上更加转向费雪。费雪更加关注公司的成长潜力,以及公司是否有好的管理层,这与格雷厄姆的是两种筛选公司的理念。而巴菲特将两种理念融合,发展出自己的投资准则。
查理芒格,跟巴菲特一样是格雷厄姆的学生,他们是一生的事业伙伴,两人建立了密切的共生关系。
巴菲特的投资准则
巴菲特的投资准则有十二条,分为企业、管理、财务、市场共四个分类,他的很多投资都践行了这些准则的部分或者全部,具体书中单独一章进行了讲解。
具体的准则如下:
企业准则
企业应该简单易懂;
企业应该有持续稳定的运营历史;
企业应该有良好的长期远景;
管理准则:
管理层是否理性?
管理层对股东是否坦诚?
管理层能否抗拒惯性驱使?
财务准则:
-
重视资产净收益,而不是每股盈利
-
计算真正的”股东盈余“
-
寻找高利润率的企业
-
企业每留存一美元,至少产生一美元的市值
市场准则
-
公司是否有价值? 巴菲特通过现金流和合适的折现率确定企业价值,他使用美国政府长期国债利率作为折现率。价值是未来现金流折现后的现值;成长是确定价值的一个因素。
-
当前是否是买入的好时机,价格是否好? 合适的价格+公司表现符合预期才能保证成功,也就是安全边际。
心理学和数学在巴菲特投资中的体现
书中关于持股数量的数学分析,虽然说分散投资可以降低风险,但同时也会降低利润。而巴菲特正是集中投资的范本。书中这段话说的很好,“当世界给予你机会的时候,聪明的投资者会出重手。当他们具有极大赢面时,他们会下大注。其余的时间里,他们做的仅仅是等待。”
巴菲特还是典型的长期主义投资者,通过他的准则可以看到他在选择购买的股票时,也就已经相信这家公司在未来的十年能够创造相当的利润。
系统1与系统2
在丹尼尔·卡尼曼的《思考,快与慢》中首次了解了系统1与系统2,在这本书中再次被提及。系统1是我们的直接思维,一般不花时间,会快速做出判断。而系统2的思维方式是我们认知过程的反思,需要我们投入努力。无论是投资还是做决定,我们都有必要训练系统2,去认真思考,进行推敲。同时在作者看来,具有系统2思维方式的人更加有耐心。
总结
限于个人能力,内容写的比较乱。总结一下巴菲特的成功,理性和耐心是他成功的关键。对于普通人,如果不能够做到这些,并且不愿意花费时间去研究公司,那么巴菲特推荐我们去购买指数基金。
最后用书中的一段话作为结尾。一个人在一生中很难做出数以百计的正确决策,只要做出为数不多的智慧决策就已经足够了。
摘抄
理性的基石就是回望过去、总结现在,分析若干可能情况,最终做出抉择的能力。
投资是经过深入分析,可以承诺本金安全并提供满意回报的行为。不能满足这些要求的就是投机。
格雷厄姆的两项投资原则: 一是不要亏损;二是不要忘记第一条。
任何投资的价值都是公司未来现金流的折现。
巴菲特从格雷厄姆那里学到的最为重要的一课就是:成功的投资来源于,购买那些价格大大低于价值的股票。
从格雷厄姆那里,巴菲特学会了独立思考。如果你是在脚踏实地的基础上得出合乎逻辑的结论,就不要因为别人的反对而耽于行动。
从费雪那里,巴菲特学到了沟通的价值
他定义特许经营权企业的产品或服务:①被需要或渴望;②无可替代;③没有管制
巴菲特说:“市场就像上帝一样,帮助那些自助的人;但和上帝不同之处在于,市场不会原谅那些不知道自己在干什么的人。
在你占据优势的时候要加大筹码。
巴菲特说:“我们所要做的全部就是,将盈利概率乘上可能盈利的数量,减去亏损的概率乘上可能亏损的数量。
当世界给予你机会的时候,聪明的投资者会出重手。当他们具有极大赢面时,他们会下大注。其余的时间里,他们做的仅仅是等待。
巴菲特的风险观:风险与股价之波动无关,与那些个股未来产生利润的确定性有关。
短期而言,股市是台投票机;而长期而言,股市是台称重机。
”首先是将股票视为企业一样,“这将给你一个完全不同于股市中大多数人的视角”。其次是安全边际概念,“这将赋予你竞争优势”。再次是对待股市具有一个真正投资者的态度。
为何懂得人们的冲动是如此有价值:①你能从中学会如何避免多数人的错误;②你可以识别他人的错误,并从中捕捉到机会。
单单有智力不足以取得投资成功,与大脑的容量相比,将理性从情绪中分离出来的能力更为重要。
理性的基石就是回望过去、总结现在,分析若干可能情况,最终做出抉择的能力。
看完评论一下吧
自驾(第10期):长江第一湾 踩石玩水玩沙 采桑葚
深村里醒来就是早,现在是六点半,赶紧搬出电脑到院子里记录下昨天的自驾。十八号下午处理完票务繁琐事尘埃落定,完美收工,压力骤减,是时候适当放松下,到去哪儿一看,这几次用的租车公司有车在租,且价格很便宜仅需50元一天,同孩子妈商量下一拍即合本次自驾启动。
隐私保护:因涉及隐私内容RSS已做隐藏,请通过原文链接阅读更多
版权声明:如无注明均为原创,未经允许不得任何形式转载
原文链接:自驾(第10期):长江第一湾 踩石玩水玩沙 采桑葚
周报 #96 - 基于 Roo Code/Cursor 的 iOS 开发工作流
前言
本篇是对 2025-05-13
到 2025-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 生成的答案靠谱多了,唯一需要注意的就是甄别一下时效性,很多老版本的实践可能并不适用。
开发环境搭建
支持 Apple Intelligence 的 macOS 会有一个内置的 Predictive code completion,会下载一个 2.5G 左右的本地模型,在没网的时候可以使用。
但比起这个本地模型,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 中需要安装两个插件:
上述依赖都安装完成后
- 使用 Cursor 打开项目,需要与
xx.xcodeproj
同级目录 - 按
Cmd + Shift + P
调出命令面板,输入/检索Sweetpad: Generate Build Server Config
,选择当前项目 - 稍等片刻,会在当前项目根目录下生成一个
buildServer.json
文件
点开 🍬 图标的侧边栏插件,在项目对应的 schema 上点击 build,选中模拟型或是已连接的实机,会自动编译并运行,就可以实现完全不打开 Xcode 也能进行开发了。
现在再点开所有的代码文件,也不会再出现 imports 错误等一片红的报错,所以再使用 Cursor/Roo Code Agent 进行开发时,也会更准确。
基于 Roo Code + Cursor 的开发工作流
在 iOS 开发过程中,或许是因为上下文长度和模型语料的原因,我发现通过 Roo Code 插件配合 gemini-2.5-pro-preview-05-06
模型在一些更大的功能模块拆分、重构等场景下效果显著好于前者(当然,按量计费 token 消耗也夸张很多)。
所以我目前的工作流是通过采用 roocode-workspace 这个项目先让模型理解项目结构并生成 Memory Bank 文件供后续使用;在一些大功能的开发上尽可能多地提供官方文档、博客和自己的 prompts 让 Roo Code 进行开发,同时自己修复一些逻辑性的 bug。
最后如果有一些比较复杂的报错或 lint error,可以拆分成小的任务单元使用 Cursor + Claude 3.7 Sonnet Thinking 进行修复,虽然是两倍速率消耗,但生成代码的可用性还是更强一些。
目前有几个大的需求都是通过这个工作流辅助开发的,效果还比较满意。
有趣的事与物
输入
虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。
我把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。
收藏
文章
- iOS Silent Notification Problem - How they mess up your app's lifecycle and Amplitude session events,iOS 静默通知的实践。
视频
电影
- 我仍在此,久违的在影院看的电影,不得不说因为和巴西友好交流的政治原因使得这部政治性指向明显的(左翼、暴力)的片子能在国内院线上映也是一件很微妙的事...
剧集
- 最后生还者 第二季,非游戏党,看完第一季印象比较深,追一下。
- 爱,死亡和机器人 第四季,感觉质量退化/想象力枯竭的程度超过黑镜了...感觉太多刻意的隐喻会有些故弄玄虚。
音乐
角度
昨天519,今天520,都是美好的日子。这段时间,部分精力是放在519世界家庭医生日相关工作准备中,不管是省上培训比赛,还是区上义诊活动,都如期顺利完成,会心一笑,再启下程。而今天,爱、喜悦、和平,一切都要快乐顺遂,一切都是最好的安排。虽然工作排队排,但也要放轻松。
路边,走过。突然看到台阶上……嘿,这不是一只狗头么?什么品种?哈士奇。你瞧,有鼻子有眼~~~这谁画的呢?再近前,哈哈哈哈,这不就是鸟屎么?从天而降的稀粑粑,吧唧,自然天成的有了“狗头”形状。不由得想到这句话“人心中的成见就像一座大山,任你如何努力都无法搬动它。”或许,成见其实就是自己看待事物的角度,就是自己给自己的“短视”画了一个“牢笼”,可悲,戒之。
敖丙:我是龙,是妖,就只能是妖。
哪吒:别人的看法都是狗屁,你是谁只有你自己说了才算,这是爹教我的道理。
敖丙:你生来就是魔丸,这是命中注定。
哪吒:去你个鸟命。是魔是仙,我自己说了才算。
What J Dilla and Early Hip-Hop Teach Us About AI and the Future of Creativity
In 1997, a young hip-hop producer from Detroit named J Dilla did something that violated every rule in music: he programmed his drum machine to play “off beat.”
Not just slightly off, but deliberately off—breaking up the rigid timing that had governed musical performance in every genre.
What happened next confounded the music industry. Instead of sounding amateurish, the “wrong” beats created a revolution. They somehow felt more organic, more alive, and more expressive than anything else in electronic music up to that point.
Professional musicians couldn’t explain it. Hip-hop critics couldn’t categorize it. But listeners—particularly other producers and artists—couldn’t get enough of it.
And here’s the paradox that stopped me cold: Dilla used the most mechanical of tools—a drum machine—to create something that sounded profoundly, unmistakably human.
(I suggest listening to this playlist of J Dilla-produced songs on Spotify while reading the rest of this piece.)
I’ve been thinking about this story as I’ve watched the panic unfold around AI and creativity. Many cultural critics and artists paint a bleak picture. They warn of creative fields decimated by automation, of human imagination rendered obsolete, of a future where authentic human expression drowns in a sea of algorithmic content.
But what if they’re wrong?
What if new technology doesn’t destroy creativity but instead transforms it in ways we can’t yet imagine?
Recently, I found an unexpected source of insight into this question—a book about the life and innovations of that same hip-hop producer: Dilla Time by Dan Charnas.
As I learned about Dilla’s career, I couldn’t help but notice striking parallels to our current moment with generative AI. Here are seven insights drawn from the early history of hip-hop that challenge today’s techno-pessimism about AI and creativity:
1. Technology can create new creative forms that humans can’t
James Dewitt Yancey—known as Jay Dee and later as J Dilla—died in 2006 at the age of 32 from a rare blood disease called TTP, but his revolutionary approach to rhythm lives on. As Charnas puts it: “He is the only producer-composer to emerge from hip-hop and, indeed, all electronic music to fundamentally change the way so-called traditional musicians play.”
J Dilla’s innovation was impossible without the Akai MPC3000 drum machine. By deliberately manipulating the timing of drum hits, he created what Charnas calls “Dilla Time”—a style that juxtaposed even and uneven time-feels simultaneously, creating a pleasurable rhythmic friction that no human drummer could physically execute.
The parallel to generative AI is clear: while many fear AI will make creative work formulaic, it might instead enable entirely new forms of creative expression—forms that humans alone couldn’t accomplish due to our cognitive or physiological limitations.
2. The most innovative uses of technology often subvert its intended purpose
Drum machines were designed with a quantizing function to “correct” human timing errors using software.
But J Dilla deliberately subverted this function. He turned off quantization or manually moved drum hits off a mathematically precise grid, creating beats that communicated emotion through “imperfect” rhythm.
This paradox—using a machine designed for metronomic perfection to create controlled imperfection—suggests that the most powerful innovations often come from subverting a technology’s intended purpose.
The most transformative uses of AI may similarly come from those who find ways to bend the technology, introducing controlled variations that make its output more distinctively creative and human.
3. New technology can reconnect us with ancient traditions
Surprisingly, Dilla’s innovation via digital technology represented a return to older forms of musical expression. His rhythmic approach reconnected with polyrhythmic traditions from West Africa, the Caribbean, and South Asia that had been marginalized by the conventions of European classical music for centuries.
As ethnomusicologists noted, Dilla’s rhythms broke through the European frame that colonialism had forced on much of the world’s popular music.
This challenges the narrative that technology alienates us from our authentic human nature. In this case, the drum machine allowed musicians to reconnect with complex rhythms that had been all but lost to history.
Similarly, AI might not lead us into a posthuman future but instead return us to our primal roots, surfacing ancient aspects of our psychology that were repressed by industrial-age modernity.
4. Creative relationships with technology evolve from conforming to bending
Early hip-hop producers conformed their creative process to their drum machines’ limitations, trying to make audio samples fit neatly into the rigid 16-pad time grid. But Dilla took a fundamentally different approach.
As DJ Jazzy Jeff observed: “Everyone in hip-hop had heretofore been trying to cut, splice, and jam samples to accommodate the machine’s time grid… But Jay Dee did the opposite: he bent the machine grid to accommodate his sample sources, because he was focused on using those samples for their rhythmic and harmonic feel.”
This evolution from conforming to technology’s rigid constraints to bending it to human intention is instructive. The earliest AI-generated art shows creators conforming to algorithmic limitations, but as these tools develop and creators’ technical understanding deepens, we’ll see more instances of the technology being bent to accommodate our visions.
This evolution from conforming to bending seems inevitable in every creative-technological relationship. It’s not a question of if professional creators will bend AI to their will, but when and how they’ll discover the equivalent of turning off quantization in their generative workflows.
5. New technologies create new creative specializations
J Dilla’s innovation created an entirely new category of musicianship. He wasn’t a traditional percussionist but what audio technology pioneer Roger Linn called a “sequencer player”—someone whose primary instrument was the programming of rhythmic time itself through digital interfaces.
Dilla made microsecond timing variations in ways that were impossible for human drummers, creating a new art form that required a new type of technical virtuoso.
We’re seeing the same pattern with generative AI. These tools are giving rise to new creative specializations: prompt engineers, AI image directors, model fine-tuners—emerging roles existing at the intersection of human aesthetics and machine capability.
Just as many classically trained musicians initially dismissed “sequencer players” as not being real musicians, we see traditional creative professionals dismissing these new AI-adjacent creative roles.
But these new creative forms don’t replace existing ones—they expand the total landscape of expressive possibilities. They are additions to our creative ecosystem, not wholesale substitutions within it.
6. Technological innovations transform how we value information repositories
Hip-hop pioneered sampling—taking segments of existing recordings and transforming them into new compositions. J Dilla elevated this practice using sophisticated digital techniques to chop, stretch, and manipulate audio samples into entirely new sonic arrangements.
This practice made certain information repositories—warehouses of obscure vinyl records from defunct labels—skyrocket in commercial value. Producers spent countless hours digging through dusty crates searching for unique drum breaks and bass lines no other producer had discovered.
We’re seeing this same pattern with generative AI, where specialized datasets have suddenly become incredibly valuable for training and fine-tuning. Collections of information previously overlooked in the pre-AI economy now hold tremendous monetary and strategic value.
This raises profound questions about creativity itself: Has human creativity ever truly been about creating from nothing? Or has it always involved recombining, transforming, and recontextualizing what came before us in novel ways?
7. Machine innovations feed back into human creative practice
Perhaps the most powerful lesson from J Dilla’s story is how his machine-enabled innovations transformed human musicians’ techniques.
Professional performers like Questlove of The Roots and neo-soul keyboardist D’Angelo meticulously studied Dilla’s machine-made rhythmic patterns and learned to replicate them with traditional acoustic instruments, fundamentally rethinking their relationship with music in the process.
As Charnas describes: “Jay Dee could shift a drum’s position in time by programming it, and there it would remain. But Questlove had to counteract a lifetime of physical reflexes, to retrain his body to do things and feel time differently.”
A machine-made innovation forced one of the world’s most accomplished drummers to unlearn years of muscle memory and develop entirely new techniques. The drum machine wasn’t replacing the human musician—it was pushing human creativity into previously unexplored territories.
J Dilla’s innovations extended beyond hip-hop, influencing jazz orchestration, classical composition, and mainstream pop production. His work has been interpreted by symphony orchestras at Lincoln Center and studied in university music conservatories.
This pattern suggests something important about our AI future: the most significant impact of generative AI on human creativity may not be direct replacement of jobs, but how it challenges professional creators to develop new capabilities and aesthetic perspectives they wouldn’t have discovered otherwise.
Embracing the Meta-Creativity of the AI Era
If the evolution of music production technology and electronic instruments teaches us anything, it’s that new tools don’t eliminate human creativity—they transform it, often in ways that expand rather than contract the range of human creative expression.
But this technological transformation requires a specific creative approach.
J Dilla didn’t set out to revolutionize rhythm—he simply explored the creative possibilities of his MPC3000 with extraordinary dedication and meticulous attention to detail. His daily creative routine, as described by Charnas, involved rising at 7 am, cleaning his Detroit studio while listening carefully to newly-acquired vinyl records, and then making beats from 9:00 a.m. until noon. He created them “quickly, one after the other, finished them, and then moved on.”
I find this aspect of his disciplined practice particularly illuminating for our AI moment.
This combination of structured daily practice, deep listening to source material, and rapid iterative experimentation mirrors what the most innovative creators are now doing with generative AI tools. The truly groundbreaking uses of AI aren’t coming from those who simply prompt a model to create something and uncritically accept whatever it produces. They’re coming from those who engage in a sustained dialogue with the technology, who develop deep technical understanding of its capabilities and limitations, and who have a clear creative vision that transcends the particular tool itself.
What would a “J Dilla approach” to generative AI look like in your specific creative field?
What we should be looking for (and investing in) are not just incremental improvements in AI model capabilities, but the emerging meta-practices that leverage AI to create new forms of human-machine creative collaboration. These emerging practices might involve using AI to rapidly explore creative possibilities, to overcome specific technical obstacles, to challenge established aesthetic assumptions, or to handle routine aspects of production work so that human creators can focus on higher-level creative decisions and emotional subtlety.
The story of J Dilla reminds us that when a new technology enters a creative field, the most interesting developments often happen not at the center of that technology’s intended use but at its experimental edges—where innovative humans push it beyond its manufacturer’s instructions, bend it to their unique artistic vision, and in the process, discover entirely new dimensions of creativity.
Rather than fearing that AI will replace human artists, we should be asking more specific questions: What new forms of meta-creativity will emerge in the AI era? What new patterns of thought and creation – what new harmonies between human aesthetic intelligence and machine computational intelligence – might become possible through thoughtful collaboration?
The answer to these questions won’t come from the technology itself, but from the James Yanceys of our era—those visionary creators and artists who see in our new digital tools not a threat to human expression, but an invitation to expand it in ways we’ve yet to imagine.
And perhaps, just perhaps, that creator could be you.
Follow us for the latest updates and insights around productivity and Building a Second Brain on X, Facebook, Instagram, LinkedIn, and YouTube. And if you’re ready to start building your Second Brain, get the book and learn the proven method to organize your digital life and unlock your creative potential.
The post What J Dilla and Early Hip-Hop Teach Us About AI and the Future of Creativity appeared first on Forte Labs.
【日记】2025.05.19
1. 有意思的车行
一般来说,电瓶车后面的挡泥板都是商家的广告,写的基本上都是几个相似的套路。但是这家车行还蛮有意思的。感觉店主也是一个很有有意思的人啊。
2.毕业生晚会
今天晚上是我们学院的毕业生晚会,这次举办的地点不在会展中心,而是在笼式足球场,还挺不一样的。但是室外就很看天气,本来应该是昨天举行的,但是有点下雨,就延迟到今天了。
还是挺有意思的,至少毕业生白嫖到了很多零食和饮料(我明年也要去白嫖)。至于说活动还是挺顺利的,主要都是唱歌,第一个和最后的一个是 ING 街舞社的表演(虽然感觉不算街舞,应该就算舞蹈)。
应该也是在学生会弄的最后一个活动了,后面大概率是没活动了。可以开始好好复习了。(为什么这么多考试都在五月底六月初啊!)
然后白嫖到了学院的蛋糕和一个学校的帆布袋,属于是没吃晚饭的补偿吧。今天晚饭都是 20:16 吃的,不过也不算最晚,之前还有更晚的,好像九点多都快十点了。
晚上花了三个小时随便剪了一下视频,但是感觉很奇怪,其实不是很好。但是我们老师觉得很好,那我也懒得改(主要我也不知道怎么改)。
由于这次节目都是歌舞,我如果不放原声,配 BGM 的话,就很干,没什么意思。但是放原声的话,视频之间的音频衔接就很奇怪(加了淡入淡出),弄得我很是迷茫。
归零之日
“各位,注意时间。”我环顾驾舰桥内的众人,语气平稳地开口,“从现在起,1108号舰内部时间校准为‘第0个地球日’,也就是我们远航正式开始的第一天。”
启动曲率引擎之前,必须完成所有系统校对。星际远航,不只是一次飞行,更是一场与时间、孤独和机械的持久战。此刻,所有人都坐在舰桥预留的位置上,连帕比都安静地坐着,机械尾巴卷在椅背后方,像极了一条等待出征的狗。
我们的航线是数月前便确定下来的,历经科研院多轮模拟和我个人的精修调整。从远日点枢纽空港起航后,我们将穿过数个已登记的曲率节点,沿途设有六座自动补给基地——那些漂浮在星海中的圆环结构,如深空中维系文明的浮标。
它们由AI系统托管,可为飞船提供能源补给、模块维修乃至应急撤离方案。联邦之所以投入巨资建造这些基地,正是因为曾有一次失败的深空航行事件,暴露了人类对长距自主修复的匮乏。
曲率航行并非像幻想小说中那样“嗖”地一声跳跃,而是借助空间曲率调整,将飞船包裹在一层扭曲的时空泡之中。为了确保这层泡不会在跃迁过程中撞上漂浮的星体或碎片,每条航道都必须提前清理,并登记为“待行区”。
也正因此,我们此刻仍停留在这片缓冲段中。等到睿思确认前方航道无异常,曲率引擎就会启动。
“对了。”我清了清嗓子,拍了拍身后的主控界面,“有件事得提前讲明白。我们舰上有三台高能粒子发射器——一台主控的,两台军方特批下来的备份。能当护盾、能切割、必要时还能用来打击障碍物。”
“等等,”胖子立刻举手,“你是说我们这船配了三门‘激光大砍刀’?这配置,放在以前得是‘哨兵级武装巡逻舰’了吧?”
“它们是舰载系统。”我强调,“不是你能拎着下去砍矿石用的。”
“啊这……”胖子低头失落,“那我昨晚画的‘单兵粒子剑手操控界面设计草图’,是不是可以删除了?”
“可以印下来烧掉。”孙雨晴毫不客气地吐槽,“再配上你的梦想‘星海武道会冠军赛’的报名申请书。”
帕比机械尾巴一甩:“如果他真要参加,我可以为他打辅助。比如在他砍下第一块石头时播放背景音乐——《壮志凌云》全息交响乐。”
“你们别打击我!”胖子立马坐直了,“说不定哪天我们被困在外星遗迹里,就靠我和一台粒子砍刀劈开生路。”
“理论上行得通。”贾宁突然开口,声音依旧平静,“只要你能在真空中手持一台重达七百公斤的发射器并站稳。”
“……我建议咱们把她调去火力组。”胖子低声对我说,“她的嘴,比粒子束还毒。”
“总结一下。”我咳了咳,“这三台发射器,一个主用,两个备份,理论上能单独启用,也能协同。它们会在曲率场生成的边缘维持高能护盾,确保我们不在亚空间里跟陨石擦肩而过。”
“擦肩而过?不是应该避免正面硬刚吗?”胖子一脸惊恐,“你是怎么把它说得像在宇宙里约会似的?”
“别担心。”我看着他,“真正跟我们擦肩的东西,一般我们是看不到的。”
“听着更吓人了……”他抱紧了自己的工具箱。
帕比歪了歪头:“吓人指数已登记,建议夜间播放助眠程序。”
这时孙雨晴笑了笑:“算了,水哥说得对。我们只是去干点科研,又不是参加《宇宙大逃杀》。”
“可怕的是,有时候这俩差不多。”我默默说了一句。
睿思的声音适时响起:“曲率稳定状态确认完毕,预计五分钟后进入第一段加速轨道。建议所有舰员系好辅助安全带。”
我也坐回了座位,光带从椅背缓缓升起,包覆至肩颈,锁扣自动收紧,仿佛被柔性合金之手按入驾驶席。主控台前的界面开始以三维投影形式展开,粒子路径与曲率指数在我眼前像极了一幅在跳动的星图。
随着倒计时进入尾声,一种难以察觉的颤动开始爬上座椅。那不是地震般的晃动,而是一种介于现实与幻觉之间的抖动,像是整个空间被某种看不见的力量轻轻“揉”了一下。
然后——空间拧紧了。
那一瞬间,所有人都屏住了呼吸。透过舷窗,星空像是被一只巨大的手握住并骤然旋转——星点拉长、模糊、变形,形成一道道明亮的光丝,围绕飞船四周如涡旋般展开。原本静谧的宇宙此刻仿佛成了一道激流,我们乘着飞船,被卷入了时空制造的巨大水花里。
“哇哦……”胖子眯着眼,“我脑子好像开始幻听了,有没有人听到歌声?”
“那是引擎共振频率。”帕比平静地答道,“与人类中耳振动产生干扰,但大多数人报告为‘空间低吟’。”
“真浪漫。”孙雨晴轻声说。她的眼神落在窗外,那些被拉扯成明亮弧线的恒星轨迹如梦如幻,像是银河正被某种高等意志翻开了一页。
“这不是浪漫,这是速度带来的光锥错位。”我说着,却也忍不住看了一眼窗外,眼角映出一抹深蓝拖尾——那是飞船防护层正在与空间摩擦时产生的粒子排散现象,有点像古老传说中流星划过夜空的尾焰。
曲率飞行的本质不是速度,而是“绕过距离”。1108号舰在这片被事先清理的“待行区”中如同躲进了一个宇宙泡泡,我们不是移动本身,而是让空间在我们周围折叠与展开。想象一下,你不是从A走到B,而是把B从远方拽到你脚下。
在第一段加速阶段,最容易出现视觉偏差。飞船虽然被护盾层完美包裹,但仍旧会有少量微粒撞击时,在舷窗上呈现出“星芒裂纹”般的折射光斑,像是远方有什么生物正窥探着我们——这是联邦飞航心理手册中重点提到的“虚拟共鸣恐惧”反应,一般在首次航行的新人中较为常见。
“我小时候看纪录片,总觉得曲率飞行像拉面。”胖子再度开口,“现在看,像在被拉面。”
“你脑子才是面。”孙雨晴笑骂。
“报告,”帕比举爪,“根据数据库比对,他的比喻略有逻辑缺陷,但不影响情绪表达。”
舰舱内一片轻松的气氛,但我知道,这只是第一段加速带来的新鲜感。再过几个小时,等到空间泡稳定,飞船进入巡航状态后,那些关于时间感消解、昼夜感错乱与孤独感放大的问题,就会逐一找上门来。
不过现在,至少这一刻,星海依旧浪漫,万物沉默。
“欢迎进入曲率航行。”睿思再次提示,“本段跃迁预计持续42分钟。后续段将在12小时后激活。”
跃迁的震动逐渐平息,星幕重新稳定下来,窗外那层明亮的光丝褪去,只剩下被拉远拉静的寂静宇宙。仿佛刚才那场“空间流瀑”不过是一场视觉梦境。
我轻轻吐了口气,拍了拍座椅两侧的控制端口,“各位,欢迎来到深空巡航阶段。”语气尽量轻松,“从这一刻开始,我们正式进入长程飞行。睿思会负责监控曲率泡稳定性,大家暂时不用担心撞上会让人变成粉末的星体。”
“你别说得那么直白。”胖子抱着自己的工具箱缩了缩,“我刚把心跳拉回来。”
“那你就靠值勤表养生吧。”我调出光屏,将舰内新设的轮班制度同步给全员,“接下来是五人轮值,每人四小时,主控舱有人值守,其他人轮流巡查各舱段设备与数据状态。”
“巡查要包括生活舱吗?”帕比立刻举爪,“我申请只值工程段。”
“你不需要申请。”我笑,“你是工程段的。”
“我就知道。”帕比点头,一副早有预料的语气,“希望今天的电缆别咬我尾巴。”
“尾巴咬你大概是你自己设定的反馈延迟出了问题。”孙雨晴揶揄道。
我继续说:“按规定,曲率巡航阶段建议每位船员每日完成至少一次舱段步巡。这不是形式,是为让你们的身体知道自己还活着。”
“我已经活着了,”胖子举手抗议,“而且我还想活得更像个正常人。”
“你可以选择做点运动。”我看着他。
“我可以选择闭目养神。”他回得不慌不忙。
“那你值夜班。”
“……合理。”他秒怂。
孙雨晴笑出声:“你也知道,值夜班的唯一好处就是可以提前挑选零食。”
“还有音乐播放器不被打断。”我补充,“另外我提醒一句,主控舱虽然不是卧舱,但我会在这儿长期驻守。别问为什么,问就是传统。”
“联邦古法·舰长式孤独疗法。”孙雨晴扶额。
“是的。”我点头,“我负责盯航线,你们负责不出事。”
贾宁没有参与玩笑,但她点了点头,眼神扫过光屏,已经在默默记录每一项安排。作为安保主管兼数据官,她掌握舰内所有数据舱室与记录模块的物理与授权密钥,某种程度上,现在她就是飞船的“数字锁芯”。
我站起身,深吸一口气。
“好了——”我挥了挥手,“去各自的舱室吧。长路慢慢,第一夜刚刚开始。”
众人终于从舰桥中散去,踏向各自生活的那一部分空间。帕比还特意在走前检查了三遍电缆连接点,胖子则顺手拎走了一包能量饼干,像是怕夜里饿着。
“曲率护盾稳定,推进系统已转入恒定功率。”睿思的声音再次从控制台上传来,“舰内当前能源余裕百分之九十八,建议指挥官安排轮班休整。”
“知道了。”我解开安全带,伸了个懒腰,“睿思,我先去洗个澡,如果有人找我,就暂时转接语音。”
“已记录,舰长。”
主控舱灯光调暗,氛围切换为夜间值守模式。我沿着过道走向生活舱区域。飞船内部的布局在设计之初就考虑了长途任务的需求,空间虽紧凑,但不显局促——舱壁采用吸音材料,通道灯光会根据昼夜节律自动调节,走廊两侧嵌有软屏幕,显示着船体状态和恒星导航图。
生活舱的公共区里设有简易水再生洗浴间、营养注入点和一个小型互动区——本质上是几个可折叠座椅和一台能跑《银河竞速》的旧款全息投影仪。墙边的储物柜嵌有每个人的私人物品锁仓,我的编号在最边上。旁边就是洗浴间,微压水雾系统发出轻微的嗡响声,热气从缝隙中慢慢升起。
我洗了个不长不短的热水澡,顺便用内建的重力刮须装置处理了胡茬。等我穿着干净的轻质舰服回到主控舱时,星海依旧安静地躺在窗外,仿佛时间从未流动。
但我不是第一个回来的人。
孙雨晴就站在舰桥的副控位前,手指搭在舱壁的磁吸终端上,光屏还亮着。她换了套浅灰色的休闲制服,头发湿漉漉地挽起,脸颊因为洗澡后而泛着一丝健康的红润,看起来倒有几分不像“雨哥”。
“你申请了第一轮巡逻?”我走过去。
她“嗯”了一声,没有抬头,目光仍盯着星图上的虚拟投影,“太空这么安静,有点不习惯。”
我在她旁边坐下,也看着那片熟悉又陌生的图景,“地球发射的第一颗星际探测器,只走出了八十亿公里,用了四十三年。”
“现在我们一天就能飞上千万公里。”她轻轻叹息,“可好像没人比以前更勇敢。”
“因为那时候的人不知道有什么在等着他们。”我笑了笑,“现在的我们,知道太多,却依旧选择出发。”
她沉默片刻,忽然问道:“你觉得这几十年,联邦的科技发展是不是有点……不平衡?”
“你说的是?”我看向她。
“航天技术一飞冲天,曲率、亚空间跃迁、行星环站、太空孵化器全冒出来了,可生物科技,尤其是人类寿命、冷冻恢复、医疗干预,几乎没什么突破。”她顿了顿,目光落在远方,“我查过,火星的第一批定居者,到现在依然靠老式蛋白再生素延命。月球高辐射区,癌症比例几乎没有下降。而地球本身的人口老龄化控制,靠的是‘提前退休’与‘流动安置’政策。”
我点点头,“确实,曲率技术与能源体系爆发,是在战后突变的,生物医药跟不上步伐……或许是资源,或许是某些决策的倾斜。”
“又或者,”她低声说,“某些科技,根本不打算给普通人用。”
我看了她一眼,没有接话。
“你怎么看火星?”她换了个轻松点的话题,“你那时候不是差点被分配去做火星运输线测试?”
“幸好没去。”我耸肩,“那边重力调整系统常年故障,基地管理员比地球上打工仔还愁眉苦脸。”
“可听说火星那边的餐补高得离谱。”
“比我们还高?”我挑眉。
她笑出了声,笑过之后,孙雨晴忽然轻轻开口,语气变得若有所思:“有时候我会想,这些年的技术爆发……是不是太过顺利了。”
我偏头看她,她没看我,仍望着前方的曲率星图投影,声音低却带着一种奇特的笃定:“就像是有人——或者说一股力量,在背后不停地推着人类往太空里走。战争之后,经济一地鸡毛,各地重建都勉强得很,可航天预算却年年递增。能源优先分配、轨道站优先投建,甚至科研人才的调动都开始向深空任务倾斜。哪怕民众再反对,政策也一条条地落下来了。”
“你怀疑……有人在幕后操控?”我微微眯起眼,语气半真半假。
“我只是觉得,”她顿了顿,嘴角浮现一抹若有若无的笑意,“我们好像在完成一场被预设好的远征。”
我轻轻咂舌,笑着接了一句:“你这说法跟胖子说的差不多。他前阵子还一本正经地分析,说咱们能用上曲率引擎,不是靠人类自己搞研发,是‘外星人偷偷丢下的技术包’。”
“他还说这种技术包是一次性试用的,后面会收费。”她噗地笑出声,“还打比方,说我们现在正在用‘免费试看版’,将来全人类可能会收到一张外星账单。”
“——外加一堆使用协议。”我补充道,“比如‘请勿在重力井内私自启用曲率场,否则将被收取高能破坏赔偿’。”
“然后要签字,还得按DNA指纹。”孙雨晴笑着摇了摇头,笑意却没在眼底停留太久。她神色又渐渐冷静下来,“可要真是那样,谁来付这笔账?谁签的协议?”
这话我一时接不上。我们两个就这么并排站着,望着前方那张无声旋转的星图。
“你知道的。”她声音低了一点,“我是不信一心只为了推动科学的那套东西。我只是觉得,背后可能还有我们没看到的动机——推动联邦,推动科研院,推动我们这些人上船,去碰一些……没人愿意主动去碰的东西。”
“你是说孙教授吗?”我问。
她摇了摇头,“我爷爷也只是个学者。可他很清楚这趟任务的代价,也清楚会面对什么。可他还是努力争取了这次机会,甚至……亲自来。”
我没有再问下去。她说的每一个词,似乎都在星图的光辉里泛起一丝无法解读的暗影。
收起星图终端,转身离开前,她忽然停下脚步,背对着我丢下一句:“水哥,要是哪天我突然变得很冷淡,不要奇怪——可能是有人在观察。”
我一愣:“观察你?谁?”
她没有回答,只是摆了摆手,走进过道的光影里。
我站在原地,盯着她消失的方向,直到远处自动门缓缓合上,只剩下我与曲率星图,和那颗缓缓旋转、仿佛也在沉默中思考的蓝色十二面体——睿思的图标,依旧亮着。
十分钟后,孙雨晴在回往生活区的通道里,正好与孙教授迎面碰上。
教授披着浴巾,擦着头发,看见她略一侧头,语气不急不缓:“你刚从哪儿回来?”
“巡逻。”她耸肩。
“和秋水说了些什么?”
“没说什么。”孙雨晴语气平淡,“只是稍微暗示了点。听不听得懂,就看他自己。”
孙教授看着她,笑意缓缓浮上脸:“你这丫头,学得倒挺快。”
孙雨晴耸耸肩,走过去时回头补了一句:“毕竟是你教出来的。”
孙雨晴的脚步声逐渐远去,舱门缓缓合拢,只留下孙教授一人站在走廊尽头。他没有立刻回房,而是抬起头,望向舷窗外的星海。
远日点空港的轨道灯带正在缓缓滑过视野边缘,像是一条安静盘旋的银河长蛇;更远处,是早已被计算为安全背景星体的木卫六,其冰层表面在反射远光星芒时,像极了一面碎裂却温柔的镜子。星辰在无声中流转,而透明舱壁外的宇宙,却仿佛压抑着某种巨大的张力,静到让人心底发紧。
孙教授站在那里良久,目光仿佛穿透了那片星幕。他缓缓吐出一口气,低声自语:
“我可是遵守约定了……按研究院的保密协议,不向不知情民众透露我们之间的协定内容。”
就在他转过身准备离开的瞬间,舱壁上方的一处感应节点悄然亮起。那是1108号舰内系统主控联络端口之一,此刻却没有任何联络音、也没有语音播报,只有一道淡蓝色的虚拟图标,在微光中缓缓旋转——一个十二面体,棱线平滑、轮廓精确,象征着联邦科研院最强中枢AI的身份。
睿思的标识,亮了。
它并未出声,只是静静地浮动了一下,像是捕捉到了什么,又像是在沉默中记录一笔新的数据。片刻后,光芒一闪,图标归于暗淡,重新嵌入到节点中,仿佛从未现身。
星海仍旧寂静,只有深空的震荡与飞船内部的生命维持系统在运转着。没有任何人注意到,睿思的后台日志里,悄然增加了一条加密指令:
记录完成:联络人·孙。参数已同步。状态:协议仍在生效。监控级别维持 L2,等待下一指令。
望星之夜
孙教授坐在临窗的位置,身后是一道圆形拱窗,可以直接望见那颗浅蓝色的地球轮廓。他身穿灰蓝色便装,神色宁静,手边的茶还冒着热气。这家店是我们在任务前就约定好的集合地点,孙教授一向守时,所以提前到场也在预料之中。
我们依序落座。我坐在教授对面,孙雨晴坐在他身边。帕比则规规矩矩地坐在主位左下侧的椅子上,前爪自然搭在桌缘,姿态像个沉稳可靠的工程师。胖子坐在我另一侧,还在研究菜单价格是否真的触发了“联邦补贴全额阈值”。贾宁最后坐下,选了靠角落的位置,整个过程一句话没说。
“我这次选的酒是模拟酿造,不含乙醇,可以放心。”孙教授笑着举起杯,语气温和。
“喝酒不开船。”我下意识接了一句。
“开船不喝酒。”孙雨晴补完,全桌顿时笑成一片。
“你们两个能不能别老套着说台词。”胖子举杯,一饮而尽,酒精含量为零,但他表情依旧陶醉得仿佛干了二锅头。
饭局开始进入正轨,菜一道接一道地上来,全息投影菜牌精确地标注出每一道菜的成分与营养值。孙教授边吃边聊,说起他年轻时在月球基地采样的往事,还提起那次差点被“负压裂隙”吞进去的经历。
“那时候哪有帕比这类工程AI?我们都是自己下手,绳索、冰锥、真空绷带……哪像你们现在,掉坑里还有狗救。”他说着,指了指正努力吸汤的帕比。
“我不是狗,我是注册工程技师。”帕比严肃抗议。
“你连骨头都点。”胖子拍了拍它的头,“工程骨头,行吧。”
“请尊重职业工程师。”帕比弹出一条投影法规,亮着红字:“联邦工程员不得在餐桌上被当作宠物对待。”
“可是你自己在学狗叫。”我实在忍不住插嘴。
孙教授轻笑着补充:“你们知道吗?200年前,地球刚刚经历那场世界大战,整个航天科技却像是被强行推进了一百年。而相对而言,生物医药却没什么突破。现在人类平均寿命基本还在一百岁以内。冰冻舱技术最多撑两个月就得醒来恢复,不然身体会出问题。”
“但有一种东西是例外。”孙雨晴轻声道,“SH-03型血清。”
我点点头,那是联邦委员会某位常委坐上高位的原因。据说原料只掌握在他一手,价格已经炒到了一个星区的财政级别。
说到SH-03型血清,餐桌气氛一下变得微妙。孙雨晴微微皱眉,“我查过文献,这东西在正式发表之前只做过两轮人体试验,长效机制根本没搞清楚。”
“但抗衰老的效果确实是真的。”胖子一边切着合成牛排,一边抬眼瞥了贾宁一眼,“听说一些高层连续注射五年之后,连基因端粒都出现了延展现象。”
贾宁没有说话,只是放下筷子,擦了擦嘴。
“不过啊……”胖子似笑非笑地继续,“我总觉得这种东西背后不太干净。据说原料只有一个人掌控,一个常委。你们说——他是不是外星人啊?”
我斜睨他一眼,孙雨晴啧了一声,懒得回应。但我注意到,孙教授正笑意盈盈地看着众人,像是看一群刚进实验室的学生。
“胡说八道少一点。”我用餐刀敲了敲胖子的盘子。
“嘿,我只是开个玩笑。”胖子耸肩,却又低头若有所思地在终端上划了几下。
空气顿时微微凝固。
打破安静的,不是胖子,也不是我,而是贾宁。
她轻声说道:“不管外界怎么议论,那位常委对联邦的重建确实立下过汗马功劳。航天推进系统、生物基因工程、资源重分配计划……哪一项不是他牵头搭建的?SH-03也不过是其中一个成果罢了。”
她的语气冷静克制,却带着一种罕见的清晰与立场感。这不像随口评价,更像是一种源自事实的辩护。
我微微偏头看她。平时她像空气一样安静,突然开口为一个政治人物说话,着实让人意外。但更让我在意的,是她的出生地。
贾宁来自奥利萨——一个位于东欧边陲的小国,面积不大,却在战后因“某位常委”的崛起而频繁出现在各类联邦档案中。而巧的是,那位常委,也恰恰是奥利萨人。
我想起不久前胖子提起的一个片段——他说曾在一次内部信息模拟中看到一张模糊的旧照片。图中,是那位常委出席某次非公开会议的侧影,而在他身后不远处,一个低头快步跟随的年轻女人,穿着战术外套、压低帽檐,却仍透出一种难以忽视的气势。他当时只说了一句:“我百分百确定,那是贾宁。”
这事我当时没太当回事,现在想来,却有些回味。
我的腕带轻微震动,胖子用静音频道发来一条短讯:
“姓、地、眼神,我就差DNA了。”
我没回他,低头喝了口茶,余光却扫向贾宁。
她没有说话,只是默默地切开了一块鲜嫩多汁的牛肉,动作一丝不苟,和她说话时的态度如出一辙——干净、精准、不给人多余的判断空间。
我又瞥了眼坐在对面的孙教授。他只是轻轻地笑着,没有插话,像是在听一出无声的剧,结局早就写好,只等我们自己悟出来。
就在餐桌陷入短暂沉寂时,我的腕带屏幕再次一亮,一道沉稳的声音随即同步出现在所有人的终端中——
“各位1108号科考舰船员,我是睿思。”
声音依旧冷静克制,像是人工智能特意调整过的礼貌与威严的中间态。
“虽为分身系统,我依然具备跨节点的数据整合能力。在连接至深蓝联邦星际网络的任何枢纽空港,我都可调用母体授权下的中枢算力,用以维持航控、决策辅助与实时预警职能。”
他顿了顿,随后补充:
“本次科研任务由联邦星际大学直属研究院立项,出资方正是研究院理事会。在项目发起人孙志诚教授的推动下,获得了能源、科研、航天与战略资源四位常委的联合批准。”
我不动声色地扫了教授一眼,他依旧坐在靠窗的位置,杯中的茶冒着热气,像对这些内容早已了然于胸。
“飞船当前状态良好,已完成全部航前补给作业。异构锂晶提取物已注入曲率引擎稳定腔,能量余量达112%。所有实验模块及舱段环境已同步校准。”
“我将代为完成下一阶段飞船调整,预计五分钟后,1108号将驶入待行区,编号ALC-7。各位可继续用餐。”
睿思的语音刚落,胖子小声嘀咕:“听他这意思,我们要是吃慢点,飞船都能自己先出发了。”
“至少比你开得稳。”孙雨晴抿了一口茶,轻描淡写地回怼。
贾宁手里切牛肉的动作停了一下,似乎对“常委”两个字有些在意,但什么都没说,只继续吃饭。
孙教授举起杯子,轻轻晃了晃杯中液体,像是在斟酌用词,又像是在回忆一段遥远的事情。片刻后,他放下杯子,语气温和却有一种不容质疑的平稳:“今晚大家既然都在,就把这次任务的核心情况正式说清楚吧。”
他环顾众人一圈,目光最后落在孙雨晴身上,轻轻点头。
“我们的目的地是KL-077星系外围的一片带状小行星带。按照目前航线计算,从远日点出发需要近半年抵达,预计在该区域进行为期两年的常驻科考,之后再用半年返回。整项任务,总时长为三年。”
他说这话的时候,声音低沉但稳定,不带丝毫戏剧性,反倒更像是科研记录中的一段冷静陈述。
“这片小行星带在过去十几年里,曾被联邦勘探局多次标注为异常区域,理由是曲率场不稳定,无法使用跃迁推进,所有航程必须以亚光速常规推进为主。”
“而我们此行,有两个明确目标。”他伸出两指,语速不紧不慢,“其一,验证异构锂晶的成矿机制,建立资源带图谱;其二——探索可能存在的生命支持星球,尤其是具备基础生态迹象的天体。”
我注意到他的语气在第二个目标上略有一丝迟疑,就像话锋之后还有内容未说出口。
果然,他顿了顿,目光依旧平静,却更像是看穿了所有人的情绪:“十五年前,科研院曾有一艘前哨探测舰在该区域失联,官方通报是设备故障、轨道偏离、资源耗尽。可我不这么认为——因为我认识那艘船上的人。”
他低头喝了一口水,仿佛平复了什么,然后再次开口:“我的妻子与女儿,当年就在那艘船上。那是我主持的‘探索未知文明’系列项目之一——当年计划失败、资金终止、研究停摆,但她们坚持出发。结果是——再无音讯。”
孙雨晴垂下了眼帘,沉默无声。
我看了她一眼,她没有流露出情绪波动,但她的手,正紧紧攥着衣袖下摆。那是一种悄无声息的疼痛压缩,只有真正经历过失去的人才懂。
“这一次,我申请复航,不只是为了科研。”教授缓缓地说,“我想找回当年的真相,无论是人,还是——答案。”
没人说话。只有窗外,远日点空港的夜色缓缓铺展,仿佛连星星都收起了光。
我端起酒杯,轻轻碰了碰杯口边缘,发出一声清脆的叮响,像是在静水中投下一枚小石子。
“既然路途遥远,那咱们也得正式一点。”我笑着看向大家,“按惯例,在正式出航前,舰长得给自己的人先打打气。”
这句话像是扯开了空气中那层无形的纱,几双眼睛都看向我,气氛也终于从刚才的沉重中缓了下来。
“我先来点个到。”我坐直身子,半是调侃地看向帕比,“我们的工程师,帕比同志,注册工程师,机械尾巴比手还灵活,曾单爪完成三十二处微结构焊接。他自己说过,哪怕是在宇宙真空里,也能用屁股拧紧一根备用螺栓。”
“我可没说过‘屁股’这个词。”帕比纠正道,语气一如既往平稳,“但你说得也不算错。”
我转向胖子:“李英俊,代号胖子,我的大学室友,技术全才,飞船系统从主控到下水道都能修,还能在我们没察觉的情况下黑进联邦补贴系统,只为了多点一份甜品。”
“那是合法研究行为。”胖子立刻举起手,义正词严。
“研究你个头。”孙雨晴用筷子点了他一下,“上次你把调料包偷调制,搞出个‘甜辣合成豆花’,差点把我吃进医疗舱。”
“科研调配。”胖子一本正经。
我继续笑道:“雨晴,医疗官,兼心理健康负责人。谁要是在飞行中精神不稳定,她不止能开药,还能用‘雨哥的关怀拳’亲自帮你打通任督二脉。”
“我是医生,不是武僧。”她无奈地扶了下额。
“我们的安保主管兼数据官,贾宁。负责舰上安全、关键权限管理与数据资源控制,物理上和权限上都有。”
贾宁没说话,只是低头抿了一口茶,算是回应。
我顿了顿,望向孙教授的方向,举杯示意。
“最后,孙教授。”我收起调侃,语气郑重些,“是我们这次航行的真正推动者。他为这艘船、这条航线、这支队伍付出的心血,我们心里都有数。”
我扫视一圈,举高酒杯:“为了即将开始的三年旅程,为了我们即将一起面对的未知,干杯。”
众人举杯,杯中星光微微荡漾,气氛在这一刻,悄然变得完整起来。
“为旅程。”
“为归途。”
“为科研补贴。”胖子又补了一句,眼疾手快夹走一只鸡腿,嘴里含糊不清:“再不吃主菜就凉了。”
开源实例之哪吒监控
前言
开源、轻量、易用的服务器监控与运维工具
一键安装
支持一键安装面板和监控服务,操作便捷。兼容主流系统,包括 Linux、Windows、macOS、OpenWRT 以及群晖。
实时监控
支持同时监控多个服务器的状态,提供历史网络状态和延迟图表,监控网页、端口可用性和 SSL 证书状态。支持故障和流量等状态告警,可通过 Telegram、邮件、微信等多种方式提醒。
轻松运维
提供 API 获取服务器状态,支持WebSSH、DDNS 和流量监控。可设置定时和触发任务,并批量执行服务器任务。
实例地址
实例配置
配置 | 描述 |
---|---|
系统 | Debian |
服务器 | Nginx |
Dashboard | dashboard 1.12.4 |
Agent | nezha-agent 1.12.2 |
实例部署
权限要求
- 具有系统读写权限
- 已安装 Nginx
安装程序
官网地址:https://nezha.wiki
仓库地址:https://github.com/nezhahq/nezha
安装 Dashboard
curl -L https://raw.githubusercontent.com/nezhahq/scripts/refs/heads/main/install.sh -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh
按照提示执行安装。
安装 Agent
登录后台,进入服务器选项,点击右侧“安装命令”,粘贴到待监控的服务器执行安装。
实例体验
后记
本实例仅供参考,不定期重置数据。
📍 一场说走就走的旅行 - 北京
碾转
阳新县百洞峡半日游
DMIT - 高端优化线路 VPS 服务商,三网直连/免费换IP
DMIT,在中文社区被戏称为「大妈」,成立于2017年,这是一家提供高性能、高品质的 VPS 服务的海外主机商,,以优质的硬件配置和网络优化著称,尤其适合追求稳定、低延迟的全球用户,尤其以优质线路(如 CN2 GIA、AS9929、CMI 等)和低延迟著称。也是著名VPS厂商搬瓦工(Bandwagonhost)的上游之一。

地址:https://www.dmit.io/aff.php?aff=9154
核心优势
- 高端硬件:采用 AMD EPYC 处理器、NVMe SSD 存储,确保高吞吐量与低延迟。
- 全球网络:核心节点覆盖洛杉矶、香港、东京等地,接入 CN2GIA、CMIN2、9929 优化线路,国内访问体验优异。
- 高可靠性:产品线路稳定性非常优秀(美西CN2产品几乎一条直线),提供 99% SLA 的可用性保障。
- 灵活配置:提供多种VPS方案,满足不同业务场景的需求,支持按需扩展。
产品提供3天(且30G)内无条件退款、30天内剩余价值退款;多数国内优化路线产品,提供每15天免费更换一次IP的服务!(搬瓦工的同类产品,更换费用为8.79美元/次)
美国洛杉矶VPS
Premium 系列(代表产品,三网CN2GIA回程,保障优化线路)
名称 | 配置 | 价格 | 链接 |
---|---|---|---|
LAX.Pro.WEE | 1C1G20G 500G/500Mbps | $39.9/年 | 【活动款缺货】 |
LAX.Pro.MALIBU | 1C1G20G 1T/1Gbps | $49.9/年 | 【活动款缺货】 |
LAX.Pro.TINY | 1C2G20G 1T/1Gbps | $9.9/月 $88.88/年 | https://www.dmit.io/aff.php?aff=9154&pid=100 |
LAX.Pro.POCKET | 2C2G40G 1.5T/4Gbps | $14.9/月 $159.98/年 | https://www.dmit.io/aff.php?aff=9154&pid=137 |
LAX.Pro.STARTER | 2C2G80G 3T/10Gbps | $29.9/月 $322.99/年 | https://www.dmit.io/aff.php?aff=9154&pid=56 |
测试:DMIT 美西VPS(三网CN2回程)- 1C1G20G(500G)39.9美元/年

美西三网优化的扛把子之一,线路非常稳定,全天几乎一条直线~
Eyeball 系列(电信联通9929 & 移动CMIN2,尽力优化线路)
名称 | 配置 | 价格 | 链接 |
---|---|---|---|
LAX.EB.INTRO | 1C1G10G 500G/1Gbps | $29.9/年 | 【活动款缺货】 |
LAX.EB.WEE | 1C1G20G 1T/1Gbps | $39.9/年 | 【活动款缺货】 |
LAX.EB.TINY | 1C2G20G 1.5T/2Gbps | $9.9/月 $88.88/年 | https://www.dmit.io/aff.php?aff=9154&pid=189 |
LAX.EB.POCKET | 2C2G40G 3T/4Gbps | $14.9/月 $159.98/年 | https://www.dmit.io/aff.php?aff=9154&pid=190 |
LAX.EB.STARTER | 2C2G80G 5T/10Gbps | $29.9/月 $322.99/年 | https://www.dmit.io/aff.php?aff=9154&pid=191 |
测评:DMIT 美西VPS(CMIN2&9929回程)- 1C1G20G(1T)49.9美元/年

虽然EB系列线路优化程度略低于Pro系列,但整体表现也相当稳定;除了电信稍差一点点,联通移动都是自家的顶级优化线路(要是电信也用上CN2GIA,就背刺Pro系列了,应该也是定位取舍,毕竟价格更低)。
Premium Secure 系列 (三网CF去程+CN2GIA回程,5T DDoS防护,建站天花板)
名称 | 配置 | 价格 | 链接 |
---|---|---|---|
LAX.sPro.Fixed | 2C2G40G 1T/300Mbps | $139/年 | 【活动款缺货】 |
LAX.sPro.CREATOR | 2C2G20G 1.5T/100Mbps | $71.99/季 $259.99/年 | https://www.dmit.io/aff.php?aff=9154&pid=130 |
少有的高防+优化线路(这两个词语放一起,基本就是高价的存在,如:斯巴达VPS);CloudFlare 去程,提供DDoS防护,要达到5T似乎有条件限制,从反馈来说效果没达到这个级别,但整体还是非常不错,不二的产品线。
日本东京VPS
Eyeball 系列(三网CMI直连回程,尽力优化线路)
名称 | 配置 | 价格 | 链接 |
---|---|---|---|
TYO.EB.WEE | 1C1G20G 1T/1Gbps | $189/年 | 【活动款缺货】 |
TYO.EB.TINY | 1C1G20G 1T/1Gbps | $25.9/月 $310.8/年 | https://www.dmit.io/aff.php?aff=9154&pid=221 |
TYO.EB.STARTER | 1C2G40G 2T/2Gbps | $55.9/月 $670.8/年 | https://www.dmit.io/aff.php?aff=9154&pid=222 |
移动表现优秀,电信联通由于CMI跨运营商会QoS,速度稍差。
Premium 系列(顶级优化产品,三网CN2GIA回程,保障优化线路)
名称 | 配置 | 价格 | 链接 |
---|---|---|---|
TYO.Pro.Shinagawa | 1C2G60G 500G/500Mbps | $199/年 | 【活动款缺货】 |
TYO.Pro.TINY | 1C1G20G 300G/1Gbps | $21.9/月 $262.8/年 | https://www.dmit.io/aff.php?aff=9154&pid=138 |
TYO.Pro.STARTER | 1C2G40G 500G/1Gbps | $39.9/月 $478.8/年 | https://www.dmit.io/aff.php?aff=9154&pid=139 |

最顶级的日本优化线路产品!当然价格也同样顶级~
中国香港VPS
Eyeball 系列(三网CMI直连回程,移动不错、电信联通不够出色)
名称 | 配置 | 价格 | 链接 |
---|---|---|---|
HKG.EB.WEEv2 | 1C1G20G 450G/500Mbps | $179.9/年 | 【活动款缺货】 |
HKG.EB.TINYv2 | 1C1G20G 1T/1Gbps | $29.9/月 $358.8/年 | https://www.dmit.io/aff.php?aff=9154&pid=210 |
移动表现优秀,电信联通由于CMI跨运营商会QoS,速度稍差;性价比不如瓦工的HK85机房产品(同为三网CMI回程)。
Premium 系列(顶级优化产品,三网CN2GIA回程,保障优化线路)
名称 | 配置 | 价格 | 链接 |
---|---|---|---|
HKG.Pro.VICTORIAv2 | 1C2G80G 500G/500Mbps | $298.88/年 | 【活动款缺货】 |
HKG.Pro.TINY | 1C1G20G 400G/1Gbps | $39.9/月 $478.8/年 | https://www.dmit.io/aff.php?aff=9154&pid=123 |
可以说是最顶级的回国优化线路了!当然价格也同样顶级~
Tier 1 系列VPS
该系列为 DMIT 少有的非优化线路产品(洛杉矶、东京、香港均有),未针对中国大陆进行网络优化,主要适用于亚太或欧美地区的国际互联需求。受限于篇幅,本文暂不做介绍,感兴趣的可以自行了解~
DMIT 小结
DMIT 主打高端优化线路VPS,硬件强、线路稳,其中美国洛杉矶优化产品极具性价比;价格相较于搬瓦工会稍高一些,换来的是更新的硬件、免费换IP服务、更高的故障补偿。
上回的 West 7 Center 数据中心 ⚡停电故障 - DMIT、搬瓦工等多家服务商VPS受影响 ,5小时故障时间,还在承诺的 99% SLA 以内,DMIT还是提供了补偿:机房断电故障后,DMIT的补偿方案(瓦工用户表示羡慕,值得点赞👍!
适合追求 低延迟、高稳定性的用户,是搭建跨境电商、网站部署、游戏加速及中小型业务承载的理想选择。再次贴一下地址:
https://www.dmit.io/aff.php?aff=9154
Have you tried the exact opposite?
It's so easy to get stuck in a groove of what works, what you believe to be right. But helpful assumptions have a half-life, just like facts. And it's ever so easy to miss the shift when circumstances change, if you're not regularly stress-testing your core beliefs.
That doesn't mean you're just a flag in the wind, blowing whichever way. But it does mean having enough intellectual humility and creative flexibility to consider that what you believe to be true about your business, about your team, about your technology might not be so.
In the end, we decided that our managers-of-one culture worked better, but it wasn't a given at the outset. To try the opposite, you really have to believe that you might have been wrong.
碾转
刚看到 “碾转” 这俩字点进来的朋友,估计还摸不着头脑。其实这是种吃食,现在知道的人不多了。
过去青黄不接的时候,地里的青麦熟了,人们就割下青麦,搓掉外皮,把麦仁蒸熟晾干,再放进石磨里碾。磨盘一圈圈转,出来的细长条,就是碾转。吃法不讲究,打俩鸡蛋炒一炒,或者拌点蒜末香油就能吃。晒干了收起来,想吃的时候上锅一蒸,照样能填饱肚子。老一辈人靠着这不起眼的东西,熬过饥荒,等到新麦磨成面粉。
等我记事时,日子没那么紧巴了,谁家也舍不得割还没熟透的麦子。做碾转又费工夫,得守着石磨一圈圈推,慢慢就没人做了。我就吃过一回,还是邻居大娘送来的。那碗碾转端在手里,麦香直往鼻子里钻,吃起来又筋道又香甜,到现在都忘不了。
前两天上班路上,瞧见有小贩在卖碾转,用白布盖着,底下透出青绿的颜色。我称了半斤带回家,妻子压根没听说过这东西。我搁锅里用油炒了炒,吃起来还是那么有嚼劲,可总觉得少了点啥。想来想去才明白,现在啥都不缺,吃啥都不稀罕了。小时候难得吃上一回,那滋味里掺着期待和满足,哪是现在能比的。
有些味道,大概只能留在回忆里了。
赶海
周三的时候,三姐家的好大儿打电话说三姐和老太太要来青岛,问周六有没有时间,到家里来坐坐。能来自然是好的,周六一早带着宝子去上 钢琴课。发了个消息问了下行程,说十二点多才能到。
这个点才到,索性就先去吃饭了,提前到饭点点好菜,等待他们到来。吃完饭,孩子们去玩了,带他们回家。随便聊聊,一切看起来也挺好的。和谐而又温馨,鉴于第二天好大儿要回老家,正好可以再把老太太送回去,因为也就没准备让她在这里住,毕竟在来回折腾也挺费劲的。然而,就在送她上车之后她来了一句,“你看你,一点礼数也不懂,也不说留我住天。”
听到这话,瞬间心里就凉了半截,真是让人恨的压根痒痒,在来之前已经反复确认过行程。既然都已经定好了,又何必非得搞这些虚情假意?我是你的子女,连这都需要演?
有时候我真不想翻旧账,但是,每当这时候心里那股恨意总会直冲脑门。当初宝子刚出生没几天,说是来看孩子照顾月子,结果没几天就嚷嚷着要走。一家人忙的要死要活,她呆在家里帮不上任何的忙,还得有人专门照顾她,于是在她要求走的时候就果断让她走了。宝子现在 9 岁了,她一共看了一个月。
我上楼之后,收到三姐发的消息说,她就这样,你别生气。
就这样,谁跟她在一起不生气?那种挑理的行为,看到就让人上火。吃饭的时候三姐说,看你瘦了不少啊,肚子都小了。她又开始说,白(别)减肥,你们谁也白减肥。听到她这些自以为是的理论,也真的让人崩溃,我不想生活在她的世界了,只是我也不想听到这种世界观。总是说小瞎汉(算命的)说怎么着,怎么着。每次我都会说,他会算个 p 啊,净胡说八道。
然而啊,有时候却实在又下不了狠心怎么着,毕竟也老了。就由她去吧,连在一起吃顿饭,都不知道又那里没做到,都能莫名奇妙的生气。真的挺犯愁和她一起生活,好在也不用在一起生活。
生活,还是得找点自己喜欢的事情或者开心的事情做不是嘛,因为这些破事长期抑郁,那真是纯粹智商有问题了。
这风和日丽的天气,就适合去海边啊,不过其实说到去海边自己其实也挺犯愁的,毕竟近的沙滩都是人,远的沙滩自己又有点懒。
提了一嘴去赶海之后,宝子就忍不住了,问什么时候去赶海啊。周日退潮最低点是两点,所以要去赶海就得晒大太阳。上午自然也没时间,九点多爬起来去买早餐。
这次宝子早餐吃了不少,毕竟昨天晚上就没吃饭。为此还一直被宝子的姥姥叨叨,你们俩不吃,也不给孩子吃。问题是,孩子不饿啊,哈哈哈。
上午十一点十五分约的窝沟封闭,开车过去,停好车,简单核对信息之后,虽然还不到十一点,但是直接给做了。
宝子的牙齿还是很健康的,并且刚做了封闭两个小时内也不能吃东西,午饭自然就不用吃了。正好回家带上鞋套就可以去赶海了,给宝子换好拖鞋。
40 多分钟的路程,终点停车场感觉人还不是很多,赶海的人也不多,这样最好啦。
退潮之后的样子,就看到自己定位在海里啦。
滩涂上都是在挖蛤蜊或者找蛏子的。
一边远远的传来大喇叭的要喝:“挖 gala,找蛏子,卖工具,卖海盐,现场教学,包教包会,包学会”
自然,来这里赶海的,纯粹就是为了玩,也不会有人去找人学习啦,更何况很多人都自带工具啦。
挖gala,那个小耙子还是蛮好用的。说白了就是没啥技巧,全靠地毯式搜索,挖就完了。
挖到的圆圆小螃蟹,给放生啦。
宝子开始怎么也挖不到,说,我今天的梦想就是自己能挖到一个 gala。
当然,最后皇天不负有心人,最后还是挖到了,一旦开始挖到了,就会不断的挖到,虽然不多,但是三个人还是完了那么一点点。
回家的路上,宝子问,晚上吃什么啊?
“要不给你做海鲜噶啦面吧”我说。
“可以啊”
于是,到了晚上,这些小 gala 就进了锅里了。
怎么说呢,虽然不多,但是味道还算不错。
毕竟是自己挖的,不是吗。
The post 赶海 appeared first on obaby@mars.
周报 #95 - All AI 与 No AI
前言
本篇是对 2025-05-05
到 2025-05-12
这周生活的记录与思考。
这周看到一些有意思的关于 AI Coding 的思考或是讨论,也结合着自己 AI 使用的经历来聊一聊想法。
All AI 与 No AI
AI 与自我
最初是看到了一篇言辞颇为激烈的文章「AI 正在让人变得前所未有地自以为是」,其中有这样几段话 ——
虽然我同样对一些过度鼓吹 AI 从而达成自己个人营销目的的个别“网红”也有些反感,但并不觉得“程序员”一词需要刻意构筑一道门槛来将一些非科班或是技术爱好者拒之门外。
我大学时也是与代码毫不相关的文科类专业,当时即使真的只是用 python 写出一个冒泡排序也会让我感受到奇妙,第一次接外包单子给一个公司用 php 做官网时的感受至今依然记得,那是我第一次作为程序员完成的作品,或许现在看来确实并不一定如一个实习生所能做到的,但依然不妨碍我从中获取的成就感。
甚至也很羡慕现在的人,有了 Cursor 这些 AI 工具加持,可以做出许多复杂度远远高于自己当前知识储备的应用,并不一定是逐行都理解,但想法到实现的路径早已被大大缩短,模块化设计、模型、需求调整这些也会在 AI 写码的过程中融入开发者自身的思维。
编程并不是塞尔达的大师之剑那样一个需要费尽千辛拔出来的荣耀的象征,而更多是普罗米修斯传递的火种,并不稀有,但对世界的运作改变深远。
但还是希望像「AI 编程」 vs. 「热奶宝」文中所说的那样,希望对编程毫无热情而只把 AI 编程作为流量密码的人少来污染这个行业了。
NO AI
看到并且也深切感受到了对于过度依赖 AI 造成的焦虑或是恐慌,我现在同时用两个 Cursor 账号、一个 Windsurf,一个 v0.dev,这些 IDE 或是工具的 Agent 模式已经成为了我想要实现一个新功能时的本能反应,也已经太久太久没有依赖搜索引擎和官方文档本身(除了 SwiftUI,没办法,LLMs 语料太少了)。
确实会有一种很矛盾的感觉,一方面对自己所能开发的领域、边界有了更多信心,可以开发前端、iOS 甚至是各种之前并不了解的技术栈;而另一方面,对于自己离开 AI 后独立写代码的信心在显著下降,连带着自己独立思考的能力。
倒不至于说对 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 帮我写周报/博文,或许它终有一天能做得不错,却少了灵魂和一些微妙的“人”感。
有趣的事与物
软件
在 Twitter 上看到 CaiCai 推荐了一个订阅管理软件「Subo」,试用了一下就为了它的多币种功能付费了,整理了自己的各种订阅/服务器,好用 & 很有设计感!
输入
虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。
我把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。
收藏
- Human Interface Guidelines
- Echobell: Instant Webhook & Email Alerts via Calls & Notifications | Privacy-Focused
- GitHub - cooderl/wewe-rss
文章
- 开源与我:在一周年之际,现在回过头来真羡慕学生时代就能接触/参与开源的人。
- AI Horseless Carriages
视频
- 抽象可以,但抽象不行
- 海拔 5070 米,我们来到了世界上最高的村!
- 2025 年还有人在用网页吗?【年度网站推荐】
- 魔杖!终于让我给做出来了!
- I Tried Vibe Coding - Here Are My Thoughts
- Apple’s Widget Backdoor
剧集
- 最后生还者 第二季,非游戏党,看完第一季印象比较深,追一下。
無為自然
读作むいしぜん(muishizen),日语里「浑然天成」的意思,取自中国哲学里的「无为」,强调自然而成,不需要人类的干预而自然形成。
高中有一年暑假作业,我实在不想完成 10 篇不一样的作文,就干脆在作业本上写了一部恐怖小说,集合了我小时候所有经历过的灵异事件和在潜意识里的恐怖符号,比如长廊、没有出口的楼梯、颠倒的房间等等。它的体量远远超过了 10 篇 800 字作文的量,还被老师夸赞了一番,但是老师也提出了疑问——为什么男主角没想过要在这种聊斋志异的故事里逃出来?
逃出来就意味着要么故事就此结束,他的勇气战胜了恐惧;要么他的暂时胜利一定会换来更恐怖的灾难,但是我能想到最恐怖的事情也仅仅是这些童年记忆深处的恐怖符号了。
在创作技巧不足时,创作者总是希望通过追求量大管饱的方式来展现自己的诚意,以至于「剧情」和「人物」都会被压缩,为「背景」提供更宽广的舞台。
之前参加过一个剧本创作团队,因为他们几乎是做世界观出身的,所以在「背景」方面尤为考究,既想要「有依可循」又希望「脱离框架巧妙解读」。于是我当时说出了一个让他们生厌的词,明显能感觉他们对这个词有向外人重复解释、规避过,这个词就是——历史虚无主义。
故事的「有依可循」是否意味着一定要贴合某种存在的历史,从而为「此刻」发生的故事进行背书。比如中国人向来善良,那么剧情和人物也需要符合善良的设定,否则便是对历史的反对。这个就跟中国式的灾难故事一样,东方明珠在世界末日中可以被毁灭,因为那是一种符号丰碑的坍塌,但是天安门和中南海就绝对不能,因为那是民族和政权的根基——同样的,如果进入到废土文化中的漂浮大陆,中国式科幻还需不需要在这个大陆上重新建立的政权里明确表达还有「党组织」的存在?
剧本中人文景观的「难」就在于它很难全盘无视历史的存在,否则就会触犯文字炼狱的条款。我前几年写过一部小说,就是太烦去构建人文景观里的「合理性」,所以完全架空在了未来的某一个联合政权的国度上,而完全跳过了政权这个概念。但是这种搭建景观的过程也会被人「嘲笑」:一个中国人写的科幻小说里角色竟然会用外国人的名字,这真是「没自信」的表现。
那构建一个中国式的科幻小说,首先就要讨论「政权」是否已经更换?还是要弱化中央集权制的存在——除非剧情就是在这样的政权下诞生的——比如我当时的小说其实就是建立在中央集权制的规则之下的,如果再用「中国人文」,是不是太有指向性了?
当人文景观难以搭建,于是就会回到最容易也是最让人「着迷」的部分——自然景观。
搭建自然景观之所以着迷,这件事从剧本跳脱,现实也能找到类似的清醒——交代背景故事。在社交聊天中,我对背景故事非常敏感,比如一笔带过的某些背景,或是反复地、冗杂地交代某些背景,其实都需要从「剧情」和「人物」上找到对应的此消彼长。
人类的记忆具有「篡改」功能,特别是那些常常被提起、反复向人倾吐、重复回味加工的记忆,会将很多细节渐渐靠向「对自己更有利」的情况。无论人们是否有意识,这种无意识的加工,其实是人对自己的一种保护机制。比如当我意识到我可以通过「惨烈」的故事博取他人安慰和关注时,我的故事就会变得越来越「惨烈」;或是我其实才是这段历史事件的始作俑者,我为了降低自己的负罪感,开始加入了更多的「阴差阳错」来洗脱自己的罪孽。
故事背景越丰富,在现实来讲,就意味着「不得已」越多,而在剧本里就是「规则」越多。越是巧妙构建的情境,比如在哪些阴差阳错中将自己的罪孽降到最低的故事,看上去自己什么也做不了,只能默默接受事件的发生;跟在剧本里误闯异世界的主角一样,这个世界的规矩太多了,他们如此精巧美妙地运作着,此时的创作者虽然是创造「剧情」和「主角」的人,但是他也是这个精妙世界的神,他对这里运作的规则都了如指掌,那些精巧的结构、隐喻、逻辑链条,都值得展示给观众,以至于他不允许任何人破坏这里的规则,就算主角有那个本事,也一定是在破坏规则后,被这里的另一个更大的规则进行惩罚。
这便是之前在《自業自得》里提到的「旅游导览手册」。
在博客大巴时期(有点出卖年龄了),我被邀请参与过一次「小说接力」,所谓的小说接力就是各凭本事将故事继续下去,甚至没有剧情、人物和背景的任何要求。于是故事就会朝着各种不同的路径发展,最终不了了之——原因当然是因为这样的游戏一定是自娱自乐的,因为它没有框架结构,所以剧情和人物都没有线性可言。
后来这种「接力」的形式出现了各种各样的变形,比如人类观察日记、流浪笔记本、忒修斯之船、后室创作等等。他们会开始要求「规则」的存在,甚至会有大量的人员自发性地维系规则的存在,比如后室某一层的湿度是 45%,那就得是 45%,过分地破坏规则,就意味着「不尊重规则」。
「背景」让创作者着迷就跟沙盒游戏一样,因为它可以完全规避「剧情」和「人物」的构建技巧,只需要安排一个人,像是旅游一样地「看见」正在发生的事情,与「背景」这个庞大的角色进行互动,得到对应的(甚至是规定好的)反馈,所要呈现的是规则,以及对抗规则将会遭受的惩罚。
回到现实,这些所谓的「规则」就是背景故事里的那些「外归因」,自己之所以无法突破束缚,就是因为有那些外归因捆绑着自己——你真到了要跟对方聊起如何拆解束缚的时候,他们就会逃走,因为没有了那些外归因的束缚,他们是否意味着就必须要面对那些悬而未决的事情了?
这就是现实世界,构建「背景」的迷人之处。
最后联动一下另一个聊过的话题——人们之所以「改造自然」,特别是构建一个充满了规则和逻辑的世界,像是自己在充当这个异世界的神的过程,其实就是人们对权力追求的形式之一,在建造一座权力的花园。
无论是中国皇家园林、还是达官贵族把玩的盆栽、还是欧洲中世纪时期的音乐喷泉,都是在将「自然景观」进行人为干预的过程,而在这个过程中便有了与「神」平等的地位,即改造自然,一山一水、一水一木,都可以根据自己的想法移动,从而接近人们认为的「美学比例」。改造自然,然后又将改造的自然无限地接近他们认为的美的自然——那这还是所谓的「无为自然」吗?
一个人创作一个作品,特别是在编制那个美轮美奂的异世界规则时,也是「神」,所以他们更不希望有这样一个「主角」可以轻易地毁掉自己的世界,所以有一些作品就会呈现「旅游」的气息——当然,我并不是说这样的作品就是错的,各花入各眼罢了。
而现实世界的那些「外归因」,太多着迷对于外归因的构建,那「人物」自然就会被的弱化甚至失去主体性。
阳新县百洞峡半日游
百洞峡位于湖北省阳新县,距离武汉一百多公里,车程也就2个多小时吧。趁着工会活动,去这里游玩了半日。
炎热的夏日,外面热浪似火,但一到洞口,便有清凉的气流迎面吹来,格外凉爽。徐徐入内,沿着甬道而入,便仿佛进入了另一个世界——千奇百怪的溶洞世界。
溶洞内幽暗曲折,大大小小的钟乳石林立其中,或大或小,或长或短,形状不一,让人产生无限联想,如鬼斧神工造就一般。
映衬着洞内五彩灯光,景象更显光怪陆离,踏幽静、绕石穹,在蜿蜒的洞内小路上探索前进,时而上时而下,左右穿梭中浏览着大自然给予我们的神奇危之景,不由得阵阵感慨。
出溶洞,已然来到悬崖峭壁之上,沿着栈道而行,聆听着山谷中风的声音,倾听着树木摩挲的低语,仿佛与此融为一体,甚是畅快。
我和 Google AdSense 的故事
网站挂广告这事,以前对我来说挺神秘的,因为我以前并不会做网站,后来会做了,也不知道该怎么去挂广告。
后来知道了,有个百度联盟,但是申请过多次,都没有通过,也了解过其它的联盟,要么就是要求高,要么就是看起来不太正规的小平台,无奈放弃,不了了之。
在去年年底的时候,又萌生了做网站的想法,于是尝试着做了一个工具站——虽然这种网站挺多的,但是胜在好维护不用总更新内容。
借助AI,很快网站便上线了。随后就又开始琢磨广告联盟的事。在一个开发者微信群里,无意间知道了 Google AdSense 这个全球最大的广告联盟,于是便尝试申请了一下。
申请后,需要 Google 审核,这个网站审核的时间比较长,接近一个月才有结果,期间,有人说新网站一般很难通过,但是最终的结果是我这个新网站却神奇的通过了。
这是我第一次成功地申请广告联盟,惊喜和意外之余,感觉网站挂广告也不是什么难事,Google 的广告联盟很接地气也很人性化,完全不像国内的广告联盟那样“傲慢”。
申请成功之后,就按照平台的指引,添加广告代码,很快网站上就显示广告了,为了方便省心,我使用了平台的“自动广告”,虽然这会导致页面看上去广告有点多。
至于收入,每天就只有1、2分钱,虽然不能指望它干啥,但这种被动收入的感觉还是很好的。

上图是接入 AdSense 近三个月以来的收入情况,平台的要求是满100元才能提现,照这个情况不知道要猴年马月……
最近 又把另外两个网站也申请了接入,一个是当前的博客,这个网站审核非常快,不到三天的时间就通过了,可能是老网站的原因?而另外一个网站却遭到了拒绝,原因是“低价值内容”,这个被拒绝的是一个纯技术博客,可能上面记录的技术笔记太简单了吧。
这就是我和 Google AdSense 之间的故事,文字止于此,但故事还在继续,有新的网站我会再次尝试申请,对于已通过的网站,也会持续改进优化。
如果你也想加入 Google AdSense,希望本文能帮助到你。
感受富士山的壮丽美景:《摇曳露营△》圣地巡礼之富士宫
2025年5月11日,天气多云转阴,在结束了昨天本栖高校及其周边的行程之后,今天我们来到了富士宫,继续跟随抚子的脚步领略富士宫的富士山美景。
早餐时间
酒店的早餐,可选项还是挺多的。
然后重点就是这份炒面,富士宫的名菜——富士宫炒面。就是一份有点少😅。
富士宫车站
一到车站就能看到富士山。
由于昨天能见度不是很高,完全没看到富士山,还有点担心今天也是这样,不过现在来看已经完全不用担心了。
另外照片中还可以看到富士宫市是废绝核武器和平宣言都市。希望世界能永远和平。
富士宫的路上有很多这样的小溪,水都非常清澈,如果没猜错的话应该是富士山上融化下来的雪水。
富士山本宫浅间大社
第一站先来到了富士山本宫浅间大社。
二之鸟居

抚子是会选择风景的,这里看富士山真的很美丽。
三之鸟居的石狮子


流镝马像
手水舎
富士山本宫浅间大社

神社内非常的大,风景也特别漂亮。
水屋神社




稻荷神社


神宫旁的美食街

剧情里,抚子选择在这里吃了富士宫炒面。但是我们因为在酒店里吃过了,就略过了。
西富士宫站
POTATO(TOMATO)
逛完了车站附近的打卡点,接下来要前往 御好烧食堂 伊东 。
在路上会路过几处圣地,POTATO就是其中之一。
沿途
突然看到一家台湾料理店。
这对于刚从台湾回来的我来说产生了浓厚的兴趣,让我们看看菜单...
- 台湾拉面
- 猪骨拉面
- 盐味拉面
- 猪骨台湾拉面
- 酱油拉面
+
- 中华饭
- 麻婆饭
- 炒饭
- 回锅饭
- 天津饭
怎么感觉都是日式料理,至少我在台湾都没看到过这些呢😅。
沿途的富士山景色真的好美啊。
御好烧食堂 伊东
就如原作一样,人气好高的一家店,我们去的时候已经排起了好长的队伍。
时间大概是 11:30 分左右。
从上到下从左到右的特色菜单如下:
- 普通炒面
- 什锦炒面
- 普通大阪烧
- 什锦湿烧煎饼
- 山药葱花大阪烧
- 普通炒乌冬面
其中什锦湿烧煎饼,店家深怕你不知道是抚子同款还特意放了抚子的截图。
从 11:30 排队到 12:10 分,我们终于进入了店内。

随到了榻榻米的日式小房间的位置。

原作中,抚子是坐在铁板烧前位置。


大约12:30分左右,我们点的抚子同款 什锦湿烧煎饼 上桌了。
面饼+炒面+各种蔬菜组合的什锦烧。
吃起来非常香,就是酱汁有一些不匀,有那么一块饼感觉吸收了50%的酱汁吃起来味道特别重,其他几块吃起来味道还不错,可以试试。
以上大致就是圣地巡礼的相关内容了,下面我们又回程前往了静冈县富士山世界遗产中心。
静冈县富士山世界遗产中心
虽然这里和圣地巡礼无关,但是还是推荐在去富士宫的时候顺路进去逛一逛。
(照片来自同行大佬)
建筑整体风格像是倒立的富士山,建筑下面有一片水池,会产生很美的倒影效果。
然后我的三星手机死活拍不出这个倒影效果😂,似乎算法认为应该要清除反光看到底下的地砖。
建筑内主要是有一条模拟登富士山的山道。
一侧会显示富士山各个高度的风景,属于是赛博登山了。
“山顶”则是浏览富士山的展望台。
凑近点看。
再拍一张长焦。真的太美了!
展望台上的石头,都是富士山上的石头。

来一张全景。


展馆内还有大量富士山的介绍。
像是这样的断层岩石还是挺有意思的。
最后则是喜闻乐见的周边环节。
这个帽子就很有特色。
沿途的富士山






一路上拍摄了许多富士山的美景。
说真的,仅凭照片真的很难再现,在现场时所感受的壮观,如果有机会的话务必去富士宫体验一下富士山的壮丽。
回程
回程我们选择了经由富士到三岛再坐新干线回东京的线路。
富士宫看到的富士山是西南面的富士山,而在三岛站,能看到东南面的富士山,可以看到上面的积雪要略多于从富士宫看到的。


左侧是三岛站的富士山,右侧是富士宫的富士山。
仔细看还能看到不同角度的山道,还挺有意思的。
结语
以上就是此次圣地巡礼的全部内容了。
虽然照片难以完整还原当时的感动,但那份被富士山震撼到的心情,将会长久地留存在心中。若你也喜欢《摇曳露营△》,不妨亲自踏上这段旅程,相信你也会被这片风景深深打动。
周报 #94 - 生活的界限与真实感
前言
本篇是对 2025-04-28
到 2025-05-04
这周生活的记录与思考。
这周是五一,久违的长假,放下了疲惫与焦虑,“摆烂”地享受了几天,看剧、运动、招待朋友,发现似乎更能找回一些生活的节奏;也补了 Rust 和 SwiftUI 的课程,重构了之前的项目;还有很多有意思的事。
生活的界限与真实感
界限
我时常觉得自己有一根弦一直绷着,并不是很具象的来自工作或是生活的什么压力,而是一种源自内心的焦虑,例如有一个完整的周末,我似乎很难真正放松下来打一天游戏(即使我真的很想把《宝可梦朱/紫》通关),给自己安排了许多“正”事,却又会因为学习或是目标达成不尽人意而进入自责的循环。
这个五一假期却有了一些例外。假期前我依然给自己安排了许多学习、工作,但因为沉迷看一部新韩剧《苦尽柑来遇见你》和玩《双人成行》而“虚度”了好几个下午,但整个人却似乎融化在了这种舒适的日常中,搁置了那些不良的情绪,只是享受其中。
似乎很久没有这样的时候了,即使只是“在假日休息”这样天经地义又简单的事。
在看《人生切割术》的时候我也常常在想,我现在的生活有时还常常不如剧中那样通过一部电梯来彻底地割离工作与生活,甚至有些羡慕。不由得也开始反思自己是否真的需要填满这些时间,匆匆忙忙地奔波在一项项任务中,模糊了生活的界限。
而对于远程办公已经近两年的我来说,这种界限并不是一个具体的上下班的时间节点所切分的时间片段,而是一种心态上的定义或是掌控感,让自己不再被这些具体的一项项事务裹挟着进入日复一日的循环。
真实感
最近工作内容是并不熟悉的技术栈,常常因为代码写不出来/焦虑而熬夜,甚至也有一天因为夜里开会而吵醒了学姐,持续了两周后有些消耗,但似乎处在一个无解的状态里,确实是需要投入这些时间去学习/完成这些工作,却又由于这些被占据的时间与随之而来的情绪而压垮了仅剩的一些生活的空间。
刚好周五同事 Ares 和 Innei 来家里作客,中午我在家里做了牛排简餐,傍晚一起去天目里拍照,交流着相机、镜头,驻足于配色好看的摊位、与对面同样拿着相机在四处拍的陌生人拿着相机对狙,纯粹的快乐。
晚上又和学姐去看了一部电影「I'm Still Here」,在一家可以一边吃东西一边观影的影院,很惬意,整个周末也似乎因为着短短的几个小时而延长了,变得充实而真切。
或许有时候出去走走,去触碰一下窗外的雨滴,感受一下空气的流动和温度,就能为生活注入一些真实感。
苦尽柑来遇见你
这个假期花了几天时间追完了这部新出的韩剧,原本只是每天吃饭的时候看下,两集之后就有些上头,看完后有些意犹未尽和怅然,似乎陪伴着他们走过了一生,他们之间的爱情自不必多言,其中更打动我的还有三代人之间的情感传递与循环,似乎常常也会落入同样的命运选择中,却又由于根植在生命中的来自上一代的传承而有一些微妙的不同。
之前就一直很喜欢《请回答 1988》和《老友记》这类更偏群像的讲述人生某个阶段琐碎日常与情感的剧集,或许 P5R 这类游戏也是,我期待从中找到一些陪伴感,他们也常常会在生活的许多偶尔的阶段里给予我前行或是回望的勇气。
有趣的事与物
输入
虽然大部分有意思的输入会在 「Yu's Life」 Telegram 频道里自动同步,不过还是挑选一部分在这里列举一下,感觉更像一个 newsletter 了。
我把 Telegram Channel 消息作为内容源搭建了一个微博客 —— 「daily.pseudoyu.com」,可以更方便浏览了。
播客
- 【podcast】S1E8.5 - 寫部落格是一件很酷的事情 !,基于 Anthony Fu 博客开源项目改版自己个人网站的事居然成为了这一期播客的话题,有一种奇妙的感觉哈哈。
收藏
- GitHub - TakWolf/fusion-pixel-font: 开源的泛中日韩像素字体,黑体无衬线风格,支持 8、10 和 12 像素
- GitHub - gonzalezreal/swift-markdown-ui: A SwiftUI markdown renderer for iOS and macOS
- GitHub - Lakr233/Litext
- GitHub - runjuu/InputSourcePro
文章
- How the Raycast API and extensions work,raycast 的体验真的甩同类 Alfred 已经太远了,解读技术实现的文章也很清晰。
- 我的三天心动原则,我之前看评测很心动大疆的一个无人机,激情下单,但发现到手后忙一些事三天都没空拆开快递,想到以前真正想要的东西都会一天刷三十遍快递去驿站自己取的,于是就退货了。
视频
剧集
初涉 ML Workflow 系统:Kubeflow Pipelines、Flyte 和 Metaflow
入职 Coupang 两个月了,第一个月主要上手和开发 BOS(Business Operating System)系统,第二个月开始调研选型 ML Workflow 平台。前者目前来说相对比较简单,后者对我来说是一个新坑,也比较有意思,随便写写技术上的体会。
先扯点题外话,其实这次求职有几个比较符合我预期的机会,可在思考之后,我基本上毫不犹豫就选择了 Coupang 这一家。最主要的原因,并非因为雇主,而是因为要做的事情。一个相当规模的团队,在大干一场的早期阶段,要在搭建起属于自己相当规模的 AI infra 来。
我觉得软件行业的巨大的变革,新世纪以来就三次,第一次是互联网应用的崛起,我太小没能做啥;一次是十几年前的 cloud,看着它从爆发式增长到如同水和电一样进入我们的生活,可我算是错过了它比较早期的阶段,即便相当长的时间内我在 Amazon,但是我却并不在 AWS;而这一次,当 AI 的浪潮再来的时候,我就很想行动起来,真正投身其中。程序员的一生能有几个赶这样大潮的机会呢,我不想再错过了。虽说我没有 AI 的技术背景,但我知道 ML infra 到 AI infra 却是个我可以切入的角度——从我最初接触软件开始,尤其是学习全栈技术的时期开始,我就认定,技术是相通的,这十几年来我一直在如此实践。因此在调查和思考之后,我觉得这是一个我不想错过,并且更重要的是自认为能够抓住的机会。
当然,就此打住,我目前只是这个领域的初学者,因此理解并不深入。
Why ML Workflow?
接着说正题,在这一个月之前,虽然我经历过不少关于 workflow 的团队,虽然我参与过从零写完整的 workflow 引擎,但这些都是针对于通用 workflow 而言的,我对于机器学习的工作流,也就是 ML workflow 可以说一无所知。于是在问题和需求调查的过程中,第一个关于它的问题就自然而然出现了,我们是否真的需要 ML workflow,而不是通用的 workflow 系统?
其实,这主要还是由于 ML 的生态所决定的。通用 workflow 可以完成很多的事情,但是在机器学习到 AI 的领域内,这个过程中最主要的目的就是把 raw data 给转换成经过训练和验证的 model,其中有很多部分都是有固定模式,因而自成体系的。举例来说:
- ML workflow 关注数据处理和 ML 或者 AI model 的生命周期,但是通用的 workflow 往往关注将业务流程自动化;
- ML workflow 需要将 artifact 管理、model registry、model insights 和 experiment tracking 等工具集成起来,但是通用的 workflow 往往是业务 application 层面的集成;
- ML workflow 执行的 task 往往需要高 GPU 使用和高内存,这和通常我们讨论的 workflow 的 task 对于 CPU 的使用完全不同。
总之,ML workflow 更像是一个 workflow 中的重要分支,它的特异性显著,因而从架构上它有很多在我们谈论通常 workflow 的时候不太涉及的特点,并且它们具有明显的共性。
ML Workflow 的固定套路
Workflow 这样的系统,和很多 infra 系统不同的地方在于,它具有全栈的特性,需要从端到端从用户完整的 use case 去思考。回想起通用的 workflow,我们会想,用户会去怎样定义一个 Workflow,怎样运行和测试它,并且怎样部署到线上跑起来。这其中的前半部分就是 development experience,而后半部分则是 deployment experience。
首先,对于 development experience 这个角度,ML workflow 有它独特的地方,其中最主要的就是 Python SDK。
通用 workflow 我们讲定义一个新的 workflow 的时候,我们通常都需要写一个 DSL,里面定义了一大堆 task 和依赖关系,而对于做得比较好的 workflow 系统来说,可能还需要一个可视化的 drag-and-drop 界面来方便地创建 workflow。
但是对于 ML workflow 来说,它最特殊之处是对于 Python code 的无缝集成。因为 Python 之于 ML 的地位就像是 Java 之于企业架构的地位,任何一个 ML workflow 客户端首先要考虑支持的编程语言就是 Python,用户通过往大了说是 SDK,而往小了说则是简单的 Python decorators,就可以定义 task 和 workflow。比方说,一个简单的 Flyte 的 hello world:
from flytekit import task, workflow @task def say_hello(name: str) -> str: return f"Hello, {name}!" @workflow def hello_workflow(name: str = "World") -> str: return say_hello(name=name)
在 ML workflow 的世界中,这是除了 DSL 和视图化之外的第三种定义 workflow 和 task 的方式,也是必须具备的方式。
第二个,对于 deployment experience 的角度,大致上是基于 Kubernetes 从 control plane 到 data plane 固定的交互机制。
我不知道这是不是一种关于 ML workflow 的约定俗成,但是通过调研 Kubeflow Pipelines、Flyte 和 Metaflow,我发现这三种对于 control plane 到 data plane 的交互模式是出乎意料地一致。
- KubeFlow Pipelines: client [KFP SDK] -> control plane [API Server -> K8s APIs (CRD changes) -> Workflow Controller / K8s Operator] -> data plane [K8s API -> creating Task Pods -> blob storage]
- Flyte: client [Flyte SDK] -> control plane [Flyte Admin -> K8s APIs (CRD changes) -> Flyte Propeller / K8s Operator] -> data plane [K8s API -> creating Task Pods -> blob storage]
- Metaflow: client [Metaflow SDK] -> control plane [Metaflow Service -> K8s APIs (CRD changes) -> Metaflow Scheduler / K8s Operator] -> data plane [K8s API -> creating Task Pods -> blob storage]
注:也有把 Operator 那一层归为 data plane 的,我觉得都说得过去。
其中 Metaflow 说的是使用 Kubernetes 集成的情况,因为它并不是非得依赖于 Kubernetes。
但大多数使用都是基于 Kubernetes 的,而且基本上都是这个套路,control plane 的 service 收到请求以后,通过创建 K8s CRD objects 的方式告知 workflow controller(scheduler)来执行 workflow,对于 task 的执行通过调用 data plane 的 K8s API 来创建 task pods 执行。
我觉得 Flyte 的这张架构图对于 components 层次的划分说得非常清楚,下面的 control plane 和 data plane 是可以有属于自己的 cluster 的,不过值得说明的是,真正最终执行的 task pods,也就是图中的最下面的 K8s Pod,也是可以放在另外的 cluster 上,由远程的 K8s API 调用触发的,这样就可以带来更多一层的灵活性:

ML Workflow 的特性比较
再来比较这三个 workflow 的优劣,我并不打算列全,而是简单说说自己印象最深的几点:
- Kubeflow Pipelines 基本上有着最大的社区,因此它相对比较成熟,有自带的基于 CRD 的 K8s-native 的集成,因此可以直接跑 TensorFlow job 和 PyTorch job 之类的;UI 功能也比较强大,可以通过 drag-and-drop 来定制 workflow,也支持 yaml 文件创建 workflow。
- Flyte 最吸引人的是它的 Strong Typing,很多错误能够在编译期本地就能够发现(Kubeflow pipelines 和 Metaflow 都只是 hints);开发过程中,本地直接就能跑,而不需要什么 container;对于 multi-tenancy 支持得最好(比如 RBAC 和 tenant 的 Quota 机制)。
- Metaflow 的 setup 特别简单,而且本地可以直接调试;它对于 AWS 的一些 service 直接可以集成使用,特别方便(比如 Step Functions);Kubernetes 并不是一个依赖,也可以跑在 VM 上等等。
在我把这三者全部在 EKS 上搭了一遍并使用了一圈之后,我对于 Flyte 的特性比较感兴趣,我觉得它们对我们团队也比较有用。
具体来说,一个是 strong typing,和一些 ML engineer 也讨论过,把问题发现在本地,这一点是非常吸引人的;再一个是 multi-tenancy,在平台完成之后,我们希望把平台上 ML 的能力开放出去,因此这是很重要的一个特性。此外,我也在考虑对于一个 control plane + 多个 data plane 这种 use case 的情况,这部分的需求还比较模糊,但是 Flyte 依然是这方面支持特性相对比较多的一个。
无论最后的结论为何,我希望我们能够比较灵活地部署选中的这个 ML workflow system,等到未来如果我们需要支持第二个,应该能够比较容易地整合进去。
文章未经特殊标明皆为本人原创,未经许可不得用于任何商业用途,转载请保持完整性并注明来源链接 《四火的唠叨》
C++ 教程: 用std::move来移动所有权
📘 C++ 移动语义与 std::move() 教程
C++的std::move用于转移变量/对像的所有权/Ownership。
🔹 什么是移动语义?
在 C++ 中,移动语义通过转移资源所有权/Ownership(如内存或文件句柄)来优化性能,而不是复制它们。
移动语义是在 C++11 中引入的,它允许:
- 更快速地传递大型或昂贵的对象
- 更高效地使用临时值
🔹 什么是 std::move()?
std::move(x)
并不会真的移动任何东西 —— 它只是将 x
转换为一个 右值引用(即 T&&
),告诉编译器:
“你可以把这个对象当作临时对象来处理并移动它。”
要真正实现移动,你的类型必须实现 移动构造函数 或 移动赋值运算符。
✅ 什么时候该用 std::move()?
在以下情况下使用它:
- 你想 转移资源的所有权。
- 你正在处理 复制开销大的对象(如
std::string
、std::vector
、unique_ptr
)。 - 你写的函数按值接收参数,并希望将其移动进成员变量。
🔍 std::string 示例
#include <iostream> #include <string> #include <utility> int main() { std::string a = "hello"; std::string b = std::move(a); std::cout << "b: " << b << std::endl; std::cout << "a: " << a << std::endl; }
🔍 移动 std::vector
std::vector<int> original = {1, 2, 3}; std::vector<int> moved_to = std::move(original); // original 现在为空(但仍然有效)
⚠️ 移动后会发生什么?
移动后:
- 被移动的对象 仍然有效。
- 但其 内容未定义 —— 你只能销毁它或重新赋值。
std::string x = "abc"; std::string y = std::move(x); // x 现在处于有效但未定义的状态 —— 不要再读取它!
🧠 对内建类型使用 std::move()
int x = 42; int y = std::move(x); // 实际是拷贝,因为 int 没有移动语义
这没必要,因为像 int
这样的基本类型不支持移动构造。
🛠️ 自定义类型实现移动语义
class MyBuffer { int* data; size_t size; public: MyBuffer(size_t s) : size(s), data(new int[s]) {} // 移动构造函数 MyBuffer(MyBuffer&& other) noexcept : data(other.data), size(other.size) { other.data = nullptr; other.size = 0; } // 移动赋值运算符 MyBuffer& operator=(MyBuffer&& other) noexcept { if (this != &other) { delete[] data; data = other.data; size = other.size; other.data = nullptr; other.size = 0; } return *this; } ~MyBuffer() { delete[] data; } };
使用示例:
MyBuffer a(1000); MyBuffer b = std::move(a); // 将 a 移动到 b
📦 std::move() 与智能指针
可以用 std::move来操作智能指针,比如 unique_ptr 或 shared_ptr:
#include <memory> std::unique_ptr<int> p1 = std::make_unique<int>(10); std::unique_ptr<int> p2 = std::move(p1); // p1 现在为空指针
🔁 std::shared_ptr 所有权转移
当你“转移所有权”给另一个 shared_ptr
时,你实际上是:
- 将控制块(用于跟踪引用计数)从一个
shared_ptr
移动到另一个。 - 原来的
shared_ptr
变为空(use_count() == 0
)。 - 总体引用计数不变(仍为 1,除非还有其他共享所有者)。
✅ 示例:通过 std::move() 转移所有权
#include <iostream> #include <memory> int main() { std::shared_ptr<int> p1 = std::make_shared<int>(42); std::cout << "p1 use_count: " << p1.use_count() << std::endl; // 1 std::shared_ptr<int> p2 = std::move(p1); // 转移所有权 std::cout << "p1 is " << (p1 ? "not null" : "null") << std::endl; // null std::cout << "p2 use_count: " << p2.use_count() << std::endl; // 1 }
🔍 重要区别:shared_ptr vs unique_ptr
指针类型 | 转移机制 | 允许拷贝 | 主要用途 |
---|---|---|---|
std::unique_ptr |
仅支持 std::move() |
❌ 不允许 | 独占资源所有权 |
std::shared_ptr |
std::move() 或拷贝 |
✅ 允许 | 共享资源所有权,引用计数 |
⚠️ 注意事项
- 你可以使用 move 来转移
shared_ptr
的所有权(源指针将变为空)。 - 你也可以拷贝
shared_ptr
来共享所有权(两个指针都有效,引用计数增加)。 - 只有在你明确希望原来的
shared_ptr
被置空时才使用std::move()
。
🔄 常见使用模式
函数返回值使用移动:
std::string get_name() { std::string name = "Alice"; return std::move(name); }
只有在你想强制进行移动(比如返回函数参数)时才使用 std::move()
。
🚫 不该使用 std::move() 的场景
1. ❌ 不要从还需要使用的变量移动:
std::string s = "test"; std::string t = std::move(s); std::cout << s; // 内容未定义
2. ❌ 不要对 const 对象使用 std::move():
const std::string s = "hi"; std::string t = std::move(s); // 实际是拷贝,因为移动构造<a href="https://justyy.com/archives/67736">函数</a>无法接收 const 参数
🧪 总结速查表
使用场景 | 是否使用 std::move() | 原因 |
---|---|---|
移动大型容器或字符串 | ✅ 是 | 高效转移内存或资源 |
移动智能指针 | ✅ 是 | 转移所有权 |
基本类型(如 int、bool) | 🚫 否 | 没有移动语义,等同于拷贝 |
const 对象 | 🚫 否 | 移动构造函数不接受 const |
临时变量 | 🚫 通常不需要 | 已经是右值了 |
✅ 最后小贴士
如果你不确定该不该用 std::move()
,问自己:
“我是否不再需要这个变量并打算把它交出去?”
如果答案是“是” → 那就用 std::move()
。
C/C++编程
- C++ 教程: 用std::move来移动所有权
- C++中的 const和constexpr 比较
- 简易教程: C++的智能指针
- C++ 编程练习题: 如何合并两个二叉树?
- C++ 编程练习题 - 找出第三大的数
- C++ 编程练习题 - 最多连续的 1
- C++ 编程练习题 - 左子树叶节点之和 (深度优先+广度优先+递归)
- C++ 编程练习题 - 最多水容器 (递归)
- C++的异步编程: std::future, std::async 和 std::promise
- C编程练习题: 翻转整数位
- C++编程练习题: 找出字符串的所有大小小组合
- C/C++ 中的内存管理器(堆与栈)
- C++编程练习题: 对两单向链表求和
英文:Tutorial on C++ std::move (Transfer Ownership)
本文一共 880 个汉字, 你数一下对不对.
相关文章:
- 简易教程: C++的智能指针 C++ 智能指针教程 C++ 中的智能指针提供了自动且安全的内存管理。它们通过 RAII(资源获取即初始化)机制,帮助开发者避免内存泄漏和悬空指针的问题,确保对象在生命周期结束时被正确释放。 本教程将介绍 C++ 中三种主要的智能指针: std::unique_ptr:独占式所有权 std::shared_ptr:共享式所有权 std::weak_ptr:非拥有式弱引用 1. std::unique_ptr unique_ptr 拥有独占所有权。一个资源只能被一个...
- 借助AI快速开源了三个小工具: 写代码越来越像做产品了, AI 真把我宠坏了(Vibe Coding) 程序员的未来?Vibe Coding + AI 一起上! 借助 AI 快速开源了三个小工具 最近,我利用 ChatGPT-4o 和 o4-mini 快速开发并开源了三个小工具。起因其实很简单——每次想转换 YAML/JSON 或进行...
- 被动收入之: 微博红包 今年开始重新经营我的微博帐号 drlai 收到两笔微信红包,应该是来自于官方的支持,150元(成功提现到支付宝)。虽然这不能持久,也没多少,但毕竟实现了零的突破,意义重大。 如果流量上来,内容创作者可能会接受到比较多的赞赏,这也是一个比较简单的变现方法。这也能作为一种被动收入,不过如果不是头部网红,可能杯水车薪,但如果你有好几个类似这样的,也能积少成多! 在用户中心,微博用户可以每天登陆手机微博APP打卡,获取点数和少量的红包钱(几分钱),积少成多! 微博做些小任务可获得积分和几分钱。聊胜于无。 微博的主要盈利模式 微博的主要盈利模式主要包括以下几个方面: 广告收入:微博的大部分收入来源于广告,尤其是品牌广告和效果广告。广告形式包括信息流广告(类似于推文广告)、热门话题广告、开屏广告和视频广告。品牌和企业可以利用微博庞大的用户群和社交互动来提升曝光率、推广品牌和产品。 会员服务:微博提供的VIP会员服务,用户可以支付订阅费用来享受更多的特权,比如个性化的主题、特有的表情包、私密权限设置等。这些会员服务主要面向个人用户,提升其社交体验。 直播和打赏:微博提供直播平台,用户可以通过购买虚拟礼物来支持主播,微博会从这些打赏中抽取一定比例的分成。此外,微博与内容创作者分成,通过内容付费、知识付费等形式变现。 增值服务:针对企业和大V(拥有大量粉丝的用户),微博还提供增值服务,如账号认证、粉丝数据分析、精准推送、推广和营销工具等。这些服务帮助企业提升营销效果,同时也增加了微博的收入来源。 电商和导流:微博上有大量的电商导流业务,尤其是和明星、网红的合作推广。微博用户在浏览社交内容时,可以直接跳转到商品购买链接,微博通过这种方式赚取导流佣金。 游戏联运:微博也会与一些游戏公司合作推出联合运营的游戏,微博负责推广和流量引入,用户充值或付费时,微博可以获得一部分的分成。 这些模式相结合,使得微博能够在广告市场、内容创作和电商等多个领域获利。...
- 步步高学生电脑上 Basic 编程语言 peek 用法示例 步步高学生电脑 是8位FC机的经典之作.它上面的BASIC有三个版本 1.0, 2.0 和 2.1 2.1 版本有个在线帮助,实际上是 help.cmd 1.0 是用 Esc 键退回到 DOS 的,...
- 换了个奥迪Q5大灯花了我1000英镑 我那辆奥迪Q5 SUV今年年检没通过,原因是左前车灯坏了,需要更换。车厂告诉我,光是订购零件就要700多英镑,加上人工费,总费用得1000英镑。但没办法,如果不修,车辆年检(MOT)就过不了,车也不能上路。 MOT是英国的机动车强制性安全检测(Ministry of Transport Test)的简称。 近侧前位置灯不工作 drl/位置灯集成(4.2.1(a)(ii)) Nearside Front Position lamp not working drl/position...
- C++ Ranges 教程 C++20 引入了 ranges(范围),这是一个强大且优雅的抽象,用于处理序列(如数组、vector 等)。相比传统的迭代器或旧式循环,Ranges 提高了代码的可读性、可组合性和性能。 什么是 Range? 在 C++20 中,range(范围) 是一种抽象,代表一个可以迭代的元素序列。它与 views(视图) 和 actions(操作) 如过滤、转换等配合使用非常自然。...
- C++中的 const和constexpr 比较 C++ const 与 constexpr:真正的区别是什么? 一眼看都是定义常量。 为什么这很重要 现代 C++ 鼓励编写不可变、高效且表达力强的代码。两个关键字—const 和 constexpr—是这一理念的核心。它们看起来很相似,但理解它们的不同语义,对于正确利用编译期与运行期行为至关重要。 高层次对比 特性 const constexpr...
- 你给SteemIt中文微信群拖后腿了么? 这年头不缺算法, 就缺数据. 这两天花了很多时间在整API上, 整完之后自己用了一下还觉得真是挺方便的. 今天就突然想看一看自己是否给大家拖后腿了, 于是调用每日中文区微信群排行榜单的API, 刷刷拿着 NodeJs 练手: 1 2 3 4 5 6...
票务记19:暴雷?完美应对 惊人反转
玩票玩的真是心态,玩不好就要崩呀。十六号12:10分刚发上个票务文,谈了近期的一些利好政策和发展规划,才过10分钟景区票务工作人员就来电话,突如其来的电话打破近三天生活和规划,到底发生了些什么?我怎么应对解决的?结果是怎样的呢?
咱来记录下!
隐私保护:因涉及隐私内容RSS已做隐藏,请通过原文链接阅读更多
版权声明:如无注明均为原创,未经允许不得任何形式转载
原文链接:票务记19:暴雷?完美应对 惊人反转
远日点基地
最近尝试写一部短篇科幻小说作为游戏的故事背景与叙事主线,发布在博客/公众号上,欢迎点赞,评论,如有建议我会酌情修改。由于深空归途的名字被占用了,后改为深空与归途,下面是正文。
我们是从地球的空港出发的。飞船在轨道上绕行三圈,避开地球重力波段与磁层干扰后,进入惯性调和轨道。接着,我们穿越了位于轨道边缘的曲率缓冲区——这是一段用于稳定跃迁初始状态的区域,确保曲率场生成前不受重力扰动影响,最终完成第一次跃迁,抵达远日点枢纽空港。这是一处距离地球约三十万公里的深空节点,常用于长距曲率航行前的准备与补给。
当飞船完成靠港并进入编号泊位后,我第一个起身下舰。下舰的过程需要经过多个加压与减压舱段,每段舱壁上都配有不同颜色的警示光与气压指示。这里不再是地面的重气环境,而是标准的轻氧环境,专为长时间任务中的科研人员设计。帕比走在我前头,工程AI无需氧气,自然快我一截。
身上的轻质制服经过刚才的低压耐受测试后略有收缩感。我活动了一下肩膀,迈步走入枢纽空港的主平台。整片区域宛如悬浮在群星之间的都市,由无数漂浮模块构成,有的泛着冷光,有的悬挂动能屏蔽标志。远处还能看见三座维持引力稳定的磁控塔,它们投下的淡蓝色结构光在星海中闪闪发亮。
抵达泊位出口时,胖子正靠着一台货运无人机哼歌。他一身工程背带裤,裤脚还带着点维修油渍,脚边放着他的多功能工具箱,机械臂缩成半待命状态。
“你怎么比我先下来?”我问。
“我提前结束了调试嘛。”胖子拍了拍帕比,机械狗尾巴一晃,蓝光眼睛里跳出一串同步完成的数据流。“帕比说你走得太慢,还想顺路买点什么。”
我摇头苦笑,走向主通道。远日点空港的核心广场就在不远处。
这座广场与地球上的空港截然不同。没有传统意义上的大厅,而是一个开放式的多层圆环平台,各层漂浮着结构亭台与功能楼阁,既实用又不失景观设计感。其中一角,正是我们今晚约定聚餐的地方——望星小馆。
我打开终端,向组内频道发出消息:“集合时间到,空港会议室A13。”
几秒钟后,屏幕上弹出一连串“收到”与“抱怨”。最先回的是胖子,他发了个哭脸:“老大,刚点了个三层牛肉汉堡,你能给个吃完再来的时间吗?”
“取消订单吧,晚上有大餐,少吃点。”我回他。
胖子——我大学室友,本名李英俊,长着一副与名字完全不符的身材。他从大学起就是个技术狂人,精通飞船工程学,飞船机械维修,业余还是个技术高超的黑客,毕业后进了联邦航天技术研究所,本来前途无量。我硬生生把他拐到了我的科研船上,只用了一个承诺:“我帮你找个女朋友。”结果他脑袋一热就答应了,现在成了我们船的首席工程师兼总调侃对象。
“水哥,你知不知道我们这次晚餐的饭店有联邦公务员补贴?我查了下系统,公务船队挂靠在深蓝大学的都能走科研补贴报销渠道。”
“你是去科研还是去薅羊毛?”我笑着翻了个白眼。
“这是国家政策你懂吗?这叫科研福利延伸到生活保障。”他正色道,“而且我看那家饭店菜单,主菜基本都比我们宿舍小食堂贵四倍,要不是有餐贴,普通打工人真吃不起。”
说着他还给我展示了联邦生活保障官网的截图,足见他对这体系了解得一清二楚。我怀疑他私底下可能还写过举报信。
我们围坐在会议舱内,圆桌自动升起,中间的光屏投射出即将启程的航线与预备程序。每个人都坐得笔挺,除了帕比和胖子。
这条机械狗,正翘着后腿坐在一张标准舰员座椅上,前爪还规规矩矩地搭在边上,样子比我们还严肃。胖子一边往嘴里塞营养棒,一边咕哝了一句:“哎帕比,你不是条狗吗?坐椅子算哪门子狗规?”
帕比歪了歪脑袋,机械眼闪了两下,“我本来就是一条狗,但我也是一名注册的AI工程师,根据第18号联邦行为条例,享有座位使用权。”
胖子“噗”的一声笑了出来,嘴里的棒子差点喷出来:“这狗都能背法规了,社会确实进步了。”
帕比不以为意,尾巴伸出一截变形机械臂,啪的一声从桌边夹走了一片营养饼干,又用极其优雅的动作送到“嘴边”,舱内一时间全是电子版“咔哧”的咀嚼音。
孙雨晴坐在我右手边,忍俊不禁,轻轻拍了帕比的头。
贾宁依然安静地靠在舱壁边的角落,她那张没有表情的脸,总让人忽略她的存在。但只要她起身站直,房间里的气压仿佛都会低一度,哪怕是胖子也会本能地挪开一步。她是在星际大学就读时,业余参加格斗联赛一战成名的,那年她连续击败了五名成名已久的的格斗选手,在冠军赛中又逆转爆冷,赛后才被媒体爆出身份——竟然是个主修数据安全学的大学生。此后,她成了那届毕业生中最有话题度的存在之一。平日她寡言少语,总像在观察而不是参与;但没人怀疑过,一旦有人越线,她会毫不犹豫地切换成“清场模式”。
“好了,各位。”我拍了拍掌心,把注意力拉回航线会议,“别忘了我们现在还在地球空港,明早之前得把飞船检查完,今天散队前,谁还有问题?”
“我有问题。”帕比竖起前爪,“晚餐可以加一份高能骨头仿真零食包吗?”
胖子顿时趴在桌上狂笑:“这狗不光坐椅子还点菜啊,咱们是不是该给你发工资了?”
“已经在申请流程中。”帕比一本正经地回答。
众人笑。
“各位。”我开始简要通报,“飞船明日零点前进入待行区段,今天是最后一次舱体巡查和物资核对。我们晚上九点,在老地方——‘望星小馆’集合聚餐,自由活动时间到晚饭前。谁迟到,谁请全桌。”
从会议舱出来,胖子就忍不住开始盘算起晚上的聚餐地点:“我查了下空港商圈,这边好吃的店是真贵,随便一份正餐都得两百点积分起步,酒水单算。”
“地段金贵,供货又得靠轨道运输,不贵才怪。”我随口答道,目光却落在窗外远处的暮色太空中。
胖子一边滑动手腕终端一边自顾自地嘀咕:“普通技术工人一年也就挣个五六千点,地球本土职员收入还没外勤高。你像我们这种执行深空任务的舰员,属于C3级别政府外勤,年包有两万点积分,还不算补贴。最重要的是——有!政!府!餐!贴!”
他说到“餐贴”这两个字时,语气格外郑重,仿佛在宣告某种宇宙真理。
我笑了:“你说得这么激动,是不是晚上准备点满菜单?”
“这不是关乎信仰吗?”胖子拍了拍肚子,“你以为我为什么愿意跟你跑来这鬼远的地方?别看我平时是个技术宅,其实对联邦财政体系研究得门儿清。我们这等级别,每人每天餐贴上限一百五十点,分三次发放。你别看级别小,这一顿顶别人三顿!”
孙雨晴在一旁笑着摇头:“你这么熟,是不是还兼职报销员?”
“报销我是报不过,分账我最行。”胖子振振有词,“你别小瞧这些细节,公务系统里活得久的,都靠的是规矩里打滚的经验。”
我拍了拍他的肩:“吃归吃,记得晚上别迟到。”
“放心吧。”胖子咧嘴一笑,“再说,咱们可不是普通人,咱们可是有航天编号、有薪级认定的公务舰员啊!”
听他一本正经地调侃,我忽然觉得,这种在星际探索前短暂的松弛感,是联邦时代独有的幸福。我们是航天系统下的专业执行者,有着清晰的任务、编制、报销条目和任务编号。可在遥远的宇宙中,那些看似井然有序的系统,会不会也有失效的一天?
但那是明天的事了,今天先吃顿好的。
散会后我一个人回到了舰体,打算完成最后的飞船例行检查。舱门打开的一刹那,熟悉的人工重力场轻轻牵引我的脚步落地,一股微妙的归属感袭来。
这艘1108号科考舰比以往我驾驶的任何一艘飞船都要先进。尤其是它中部配备了一座中型提炼装置——基于最新“高能离子熔析”技术,可在真空中对复杂矿物进行分解、过滤、提炼,甚至在资源合规条件下制造出飞船级燃料结晶,如异构锂晶。
我还记得大学时期参与过早期版本的测试,那时提炼器需要四名操作员加外部稳定场,噪声大、能耗高。现在这台设备只要一个自动序列接口,就能智能分配材料路径,效率提升十倍。
这技术是这十年刚出现的,老型号的科研舰,像我曾经服役的508号,还得靠地面站提炼能源。现在好了,只要带上原料,我们连在小行星带都能“加油”。深蓝联邦对这东西的昵称是“飞船的胃”。
我一路走过飞船各个区域:主控舱、通信舱、采样分析舱、医学支援舱……每一舱都通过虹膜认证。系统识别到我是舰长身份,走哪儿都畅通无阻。这种感觉,说不上是权力,倒像是一种孤独的责任。
走到机械舱,帕比正试图用尾巴拧紧一根电缆。他一边拧一边学狗叫,还自言自语:“我是狗,我在工作中,我是最强狗技工。”我盯着他十秒。
“你能不能别学狗叫?”我忍不住说。
“我本来就是狗。”他扭头瞪我,那副严肃劲让我瞬间闭嘴。帕比跟我们团队这么多年,恐怕是除了孙雨晴之外,唯一一个知道所有人私人习惯和怪癖的“存在”了。
回到生活舱,我一间一间地巡查物资储藏点,确认每一包真空压缩干粮、每一支营养注射胶囊的出厂日期和标签。原本应该是孙教授那两位助理的舱室,如今也堆满了额外的科研仪器、医疗物资和补给包。他老人家临行前,以“长途飞行空间宝贵”为由亲自签署拒绝两位助理随行的申请,那时候我只当是学术性格偏执,如今看来,或许他早有深意。那些舱室的临时封条仍贴在门侧,编号改成了“储-03A”和“储-03B”,打开门,只见里面整整齐齐码放着紧急电源、便携式样本分析仪、备用气瓶和一整箱不知谁特意添加的异星植物栽培箱。
我站在门口,闻到了某种植物装置内散发出的淡淡清香,像是柠檬混着某种金属味。空气清新剂都不带这种味道的,这些显然是特供科研用植物。看来教授早就知道我们会在飞行中需要更多自给能力。他为这趟旅程做的准备,比我们任何人都深。
夕阳下的空港依旧忙碌,星舰起降频繁,轨道升降平台闪烁着指示光。透明穹顶透出外层空间的景象,巨大的木卫六正缓缓升起,在光线的折射下泛着淡蓝色。
巡查完舱室,我站在飞船外沿的观察舱,抬头望向轨道尽头。再过几个小时,我们就要脱离地球重力井,驶向那片空白的星图。
“我跟你说,我刚才看了一下咱们舰上的巡航模拟,中央引擎反应曲线比联邦上一个版本还多了两个安全冗余,”胖子凑过来小声道,“就是那个新型粒子喷射系统,据说只在‘哨兵级’战舰上才试装过。这可是玩真的啊,老胡。”
“你现在才反应过来?”我瞟他一眼,“当时你不是也参加了配置签字?”
“我以为那是表面工程。”胖子理直气壮地回怼,“你知道的,我们技术部门向来被当成可选参考意见区。”
“有道理。”我随口应了一句,朝贾宁的方向扫了眼。她刚刚检查完舰桥外部的引力稳定器,正把工作记录上传给帕比。
“对了,”胖子凑近些,声音低了半拍,“咱们这位贾安保,好像还是我上次那个——呃,小型化抑制液测试事故的目击者。她当时一脚踹开实验室门,差点以为我在搞什么地下化学武器开发。”
“你不是在偷调酒?”我嘴角微翘。
“科研调配!”胖子纠正,“不过她出手真快,那一脚我现在偶尔还会膝盖疼。要不是帕比拦了一下……”
我轻笑一声。怪不得胖子刚才一见贾宁就条件反射地坐直了。
贾宁自然听见了点什么,转过头来,目光扫过我们这边。
胖子瞬间把腰板挺得笔直,坐姿端得仿佛安保训练营里的新兵:“咳,好久不见,贾教官。”
贾宁看了他一眼,只淡淡回了一句:“下次实验前,记得备好火警抑制权限。”便低头继续处理数据。
我没忍住笑了出来。
晚上的空港区域开始切换为夜间模式,环形穹顶上投映出模拟星空,银河清晰可见,仿佛整个宇宙都压在头顶。此时,连空气中都透着一种将要远行的仪式感。
我们几人刚从安检通道出来,便听见AI帕比蹲在出入口口令识别器旁边哼着调子,机械臂上还夹着一张餐厅预定卡。胖子一看见就立刻上前,把帕比的摄像头抬高了两度:“喂,你小子居然先订了‘望星小馆’?知道我们几个爱吃的都在那?”
“我接受了孙教授的指令,他说飞行前你们需要碳水、热量和一点点联邦补贴味的慰藉。”帕比语气一本正经,机械尾巴在地上轻轻敲着。
“那也别暴露我那点补贴都花在食物上的事实啊……”胖子小声嘟囔。
“帕比没错。”我拍拍他,“反正你把能量棒拆了做调酒原料的事也早被贾宁记了小本本。”
“什么‘小本本’?你见过她带过笔吗?”胖子一脸警觉,“她那种人,记仇是直接存内存芯片里的!”
这时候,孙雨晴走过来,换上了便装,一身藏蓝色风衣和柔光材料内搭,打扮得像刚从学院年会出来的女博士。但她的步伐干脆利落,气场仍旧是“雨哥”那一挂。
“你俩又在胡说八道?”她看了我一眼,再看胖子,“别忘了今晚我喝得高兴,你俩都跑不了。上次在星际大学咱们三谁躲厕所来着?”
“我那是突发腹泻!”胖子坚决否认。
“你还穿着全息潜行套装,躲在三楼女生宿舍边上的厕所里,”我补刀,“结果被误报成偷窥机器人。”
“你们能不能翻篇了啊!我当年那是技术测试!”胖子痛苦地捂脸。
“技术失败。”孙雨晴一锤定音,随后回头冲贾宁点头,“我们人齐了,可以走啦。”
贾宁依然面无表情,但嘴角似乎轻轻动了动,像是在笑,又像是在判断这群人值不值得她再多浪费一晚上的时间。
我们就这样,一行人朝望星小馆的方向走去,踏入那条每个太空港都有的夜色街巷,灯火正亮,星河正在升起。
通往“望星小馆”的人造街区名叫“辰市巷”,是空港内最早的一批生活聚落之一,如今早已发展成一个多文化融合的小型商业圈,尤其以华人移民为主,成了深蓝联邦各大空港的“标准模板”。
我们一边走一边看,街道两侧的建筑闪烁着熟悉又陌生的光。霓虹牌匾高高挂在合金墙体上,“老长沙臭豆腐改良站”“全息中药足浴体验馆”“粤味合成烧鹅饭”……各种未来技艺与传统小吃的结合显得既荒诞又亲切。有店铺用全息投影营造出一片竹林,有餐馆甚至播放着百年前的粤语老歌,调子被低频滤波器拉得悠长,听着像是来自太空另一侧的梦。
“这里气味真奇怪。”孙雨晴皱皱鼻子,指了指某家喷着油烟的全息烧烤摊,“烤的是合成肉,偏偏还要搞得像街边摊,哎,我是真吃不下。”
“老派情怀你懂不懂?”胖子一脸陶醉,“这里可是地球上最后几个还原城市烟火气的地方之一了,我刚才还看到一家‘回忆牌汽水’便利机,卖的是玻璃瓶的。”
“你确定那不是化学废液?”我抬了抬眉。
“我们星际大学铁三角出身,什么没见过?”胖子一扬下巴,转头朝孙雨晴努努嘴,“雨哥你说是不是?”
孙雨晴白了他一眼:“别叫我雨哥,在外面注意点形象。”
“得嘞,水哥罩着,雨哥镇场,我这小弟行走宇宙都心安。”胖子嘿嘿一笑。
这“铁三角”是我们大学时开的玩笑,但真到了现在,我才发现,它像是一道我们彼此心照不宣的纽带,穿越了那么多考试、实习、分配、训练营与出勤记录,竟一路走到了星舰起航前。
“水哥,我可听说了,”胖子突然凑近我,“望星小馆新换的主厨是地球中华厨艺联盟第三代传人,上次做的麻辣虾,辣得贾宁当场喝了三杯抑制液。”
“你又在背后编排人家。”孙雨晴忍着笑,“上次她看你偷调酒是不是差点打断你手腕?”
“那是科研调配!我在做低温乙醇的燃烧模拟!”胖子一脸严肃地为自己辩解。
我们笑着,走过一道由天幕与轨道线构成的拱门,望星小馆的屋檐终于在不远处出现了。
“望星小馆”外观像是把一座江南园林搬进了太空港,飞檐翘角和高分子合金骨架融合得出奇地自然,在暗金色光源下透出一股静谧的仪式感。门前那对石狮子,早已不是石头——是合金喷涂制成的仿生机器人,双目配备光学追踪仪,嘴里还镶着钛金犬牙,像是古典与赛博朋克的混血怪胎。
街道两侧也延续着这种混搭风,一边是主打川菜的“望川楼”,门口悬着红灯笼与自动迎宾机,另一边则是高耸入天、屏幕滚动播放广告的“中联银河信托”大厦,闪着巨大的行书“信”字。这里华人扎堆,建筑风格越发“东方化”,甚至比地球某些老城区还更有气氛。
走在街上时,我腕带终端轻轻震动,一道低沉而理性的男声忽然响起:“舰长,孙教授已在馆内,请勿让他久等。”
我下意识点头:“收到,睿思。”
“睿思?”胖子脚步一顿,眉毛一挑,语气不像震惊,倒更像确认,“你是说——科研院那个顶级中枢AI,睿思?它成了咱们的领航员?”
“对。”我轻声应道,“本次任务,科研院直接调配了睿思系统的一个分身接入舰船主控,由它担任1108号的领航员。”
“啧……”胖子摸了摸下巴,嘴角却忍不住往上翘,“我早听说科研院有人在搞‘人形系统融合实验’,没想到真投到了我们这条船上。我之前还尝试逆编过它某个沙盒副本的通信协议,结果三分钟不到就被踢了出来,堪比军方防火墙。”
“那你就老实点。”我看了他一眼。
“嘿,我是技术宅,不是疯子。”他耸耸肩,“但说真的,这配置有点奢侈了,咱这次任务到底要去哪儿?”
我还没来得及回答,帕比那边已经亮起工程模式,金属手臂发出几声清脆的嗒嗒声。“睿思已经开放了部分工程协议接口。”他语气平静却带点骄傲,“我可以直接与它同步数据。逻辑精度很高,不愧是科研院的大脑。”
“你们机器人果然都是互相抱团的。”胖子感叹了一句,语气却多了几分羡慕。
我腕带终端轻轻震动,一枚稳稳旋转的蓝色十二面体图标浮现出来,紧接着,全员的终端几乎同时亮起。
“1108号全体船员,”睿思的声音沉稳而清晰,在每个人的设备中同步响起,“我是睿思,本次任务的领航员系统。我已完成所有成员终端接入,将全程协助航道规划、情报整合与任务决策支持。如遇环境异常、资源冲突或系统偏差,我将实时发出提示,并提供可行性修正建议。”
胖子抬头看着自己腕带的图标,咂咂嘴:“这才是标准的科研院口吻,听起来比我老妈还严格。”
我微微点头:“收到,睿思。”
终端上的图标旋转了一下,亮度渐暗,转入后台待命。
我抬起头,面前的建筑仿佛在灯光下静静等候。我推开“望星小馆”的主厅木门,古色古香的结构与穹顶星光交相辉映,室内静谧得像一幅水墨画。最里侧,孙教授已经就座,他身披灰蓝外套,双手合拢放在膝上,仿佛正等待一场缓缓展开的宇宙对话。
如何理解人生是旷野?
当我离职后,我越发的理解「人生是旷野」这句话的含义。
对于上班族来说,一个很大的好处是 —— 你的前进的轨道是明确的,也是我们常说的,「人生是轨道」。对于打工的人来说,你前进的轨道是相对更加明确且清晰的。你只需要遵循整个组织的晋升规则,努力往前跑,就有可能达到你的目标(或者是组织的目标)。

而当你离开了企业和组织,成为一个自由模式的人(或者是个体户模式),你的问题会出现在 —— 你的眼前会有很多条路,你不止有一条轨道,你可能有两条、三条,无数条轨道和可能性,唯一需要的便是你自己做出选择,去走哪条路(这也是绝大多数人觉得 —— 自由是旷野的好处,你有了无数种可能性)。
但,这种可能性也有一定的问题。作为一个自由人,你会看到无数种可能性,但同时 —— 绝大多数的可能性都是不明确的,都是虚线,你不知道到底哪个可能性能够真正走到终点,甚至有可能你看到的所有可能性都无法走到终点。你努力半生,可能归来仍是一场空。而这,可能是绝大多数人从未关注的旷野的另一面—— 虽然都是轨道,但可能每个的胜率都不是 100%,你如何找到那个胜率最大的选项,成为了新的问题。
再读《金粉世家》
原先家里有本《金粉世家》之上卷,大概是年事已高,破破烂烂。小学时读了一通。印象最深的竟是中秋节进香山,金燕西那首诗到现在还依稀记得:
一弯藕臂玉无瑕,略晕微红映浅纱,不耐并头窗下看,昨宵新退守宫纱。
如今想来这样的日子也是很有生活了。理解小说最好的方法也许是照着书中人的生活而生活罢。总之,在我偕陈爬过山、看过戏后,似乎也能体会到金燕西对冷清秋的感情几分真、几分假。这回读了后半卷,我发现张恨水对金家还是偏爱了,号称仿照红楼梦,结局却不算凄惨,无非是一把大火烧了个干净。可能是他觉得这样很有旧小说结构的对称美吧,但是这样一来,我分开读上下卷,却觉得金燕西是两个不同的人了。
金燕西真的爱冷清秋么?光看首章的相遇,看不出金燕西在决定追求她时对她有何了解;简直是见色起意。至于后面的攻略,与其说在攻略冷清秋,倒不如说在攻略冷家,攻略冷清秋的舅舅和母亲,而这两个人又各打着算盘。所谓的公子情怀,不过是高门大户的自我幻想。总之,金铨一阵见血地评论金燕西用金钱制造攻势,我想这就像通关RPG,或者是张恨水嘲讽鸳鸯蝴蝶派的一种幻想,正如贾母评才子佳人戏一样。
至于下半卷,急转直下之情节固然有其合理性,金燕西和旧情人也藕断丝连,甚至藕也未曾断;金燕西的悲剧在于明明出身高贵,却如此刻薄。唯独富人才能善良,因为富人必须善良;他对待冷清秋太粗暴了,倒像小门小户。以前读过写张謇的小说,张孝若也算公子哥吧,倒也没这么不堪。看历史上民国的公子群体们,抽象是各有各的抽象,唯独在感情方面,也没有处理得这么粗糙的。我感到这样的章节似乎是张恨水的一种离婚模板,为了使双方最终落得一个悲剧下场,套用了或许是他见过的、或许是他写过的冲突发展过程。
于是联想起贾宝玉和林黛玉。或许张恨水在写作时也以为金燕西和冷清秋乃是if线的贾宝玉和林黛玉,当然,贾宝玉的才华比草包金燕西高到不知道哪里去了;然而谁敢说if线上贾宝玉就不会沾花惹草?当然,封建时代的林妹妹也不会如同冷清秋一样决绝。
冷清秋该怎么办?玩偶之家里托瓦尔德至少还和娜拉和颜悦色呢,对于既不忠又不善的金燕西,她要出走吗?出走的话,就像原剧情里一样艰难了。如果留下来的话,好歹金老太太是支持她的;然而,金家亏空却是事实。怎么来维持这样的花架子不倾颓呢?在那个时代,难道真的有投资产业的余暇?
【日记】2025.05.18
1.压力传感器
由于室友一直吐槽我的人在传感器“误触发”,弄得我十分的头疼。这么说呢,就按照寝室中的环境,我很难做到不“误触发”。
因为他们所谓的误触发指的是在经过了我的桌前,然后就触发了。但是,这本来就是我的触发范围啊,不然我坐着坐着,灯就灭了。为什么会有这么一段空间,就是我凳子有没有推到桌子底下的区别。
那总要解决一下这个问题,然后我就买了一个压力传感器,目前灯的开关逻辑是改到了压力传感器上,不过压力传感器还是有它的弊端的,毕竟我到桌前不一定会坐着。
所以我现在在看人在内嵌的环境光传感器能不能准确的识别出寝室中不同的灯光情况,可以的话就把定时的亮度改成自动的亮度。不行的话,就在关灯的逻辑上加入人在的辅助判断,检测到人不在了,然后没压力了再关灯,不然总感觉40秒的无压力关灯有时候还是不太方便的。
2.ABS
在看《AEB为什么不能帮我刹停?》的时候,我的室友路过了,然后问我 AEB 是什么,我就照常回答了。
然后他又紧接着问我 ABS 是什么,我自然是接着继续讲。结果他说不对,是美国船级社,一下子把我弄无语了。
这确实不能说他错了,毕竟这是在船舶检验中学过的知识,只是谁知道他会这么问啊,有毒。
3.所以说我不谈恋爱(确信)

【知途人文】9:教育不是为了加工考试机器
解锁高效开发利器——Gitness,助力你的DevOps之旅
在快节奏的软件开发世界中,高效的代码托管和自动化部署是每个开发团队的追求。你是否曾为繁琐的 CI/CD 流程而头疼?是否希望有一个简单易用、功能强大的平台来管理你的代码和流水线?今天,我们为你介绍一款开源神器——Gitness,它将彻底改变你的开发体验。
作为 Drone 和 Gitness 深度定制用户,我还值得很推荐的。
什么是 Gitness
Gitness 是一个集代码托管与自动化 DevOps 流水线于一体的开源开发平台。作为 Drone CI 的下一代产品,Gitness 不仅保留了强大的持续集成(CI)功能,还新增了源代码托管能力,支持本地部署和 Docker 容器化运行。无论是个人开发者还是小型团队,Gitness 都能提供灵活、高效的解决方案。
核心亮点
- 一体化平台:代码托管 + CI/CD 流水线 + 制品库
- 用户友好:提供直观的 UI 界面、REST API,满足不同开发者的使用习惯
- 灵活部署:支持私有化本地部署
- 开源免费:完全开源,社区驱动,适合预算有限的团队(非常适合个人用户)
对比 Drone、Woodpecker
- 目前支持 Runner 有限,仅支持 docker
- 新增的制品库支持的种类相对比较少,常见的 Docker、Helm 是没问题的
- 目前数据库仅支持 PG、Sqlite3
- 流水线
- 日志相比较 v2 仅支持存储到数据库,暂不支持存储到对象存储
- 不支持重复执行(如定时、失败重试)
- 流水线语法变更,相比较 Drone、Woodpecker 等 v2 版本的语法,功能缺少较多,但是满足基本使用
- 代码仓库功能完善,日常使用是没问题
部署
环境变量配置
目前官方文档未提供,需要参考官方文档 harness/harness#config.go
部署
镜像:
harness/harness:unstable
- 国内镜像
ccr.ccs.tencentyun.com/k7scn/harness:unstable
- docker-compose.yaml
services:
gitness:
image: harness/harness:unstable
container_name: gitness
restart: always
ports:
- "3000:3000"
- "3022:3022"
volumes:
- /data/gitness:/data
- /var/run/docker.sock:/var/run/docker.sock
environment:
- GITNESS_DEBUG=true
- GITNESS_TRACE=true
- GITNESS_GIT_TRACE=true
- GITNESS_GIT_DEFAULTBRANCH=master
- GITNESS_WEBHOOK_ALLOW_LOOPBACK=true
- GITNESS_WEBHOOK_ALLOW_PRIVATE_NETWORK=true
- GITNESS_METRIC_ENABLED=false
- GITNESS_PRINCIPAL_ADMIN_UID=ysicing
- GITNESS_PRINCIPAL_ADMIN_DISPLAY_NAME=ysicing
- GITNESS_PRINCIPAL_ADMIN_EMAIL=ysicing@12306.work
- GITNESS_PRINCIPAL_ADMIN_PASSWORD=ysicing
# - GITNESS_SMTP_HOST=
# - GITNESS_SMTP_PORT
# - GITNESS_SMTP_USERNAME
# - GITNESS_SMTP_PASSWORD
# - GITNESS_SMTP_FROM_MAIL
# - GITNESS_SMTP_INSECURE
- GITNESS_GITSPACE_DEFAULT_BASE_IMAGE=ccr.ccs.tencentyun.com/k7scn/base:dev-ubuntu-24.04
- GITNESS_UI_SHOW_PLUGIN=true
- GITNESS_URL_GIT=http://192.168.23.16:3000/git
- GITNESS_URL_UI=http://192.168.23.16:3000
- GITNESS_URL_API=http://192.168.23.16:3000/api
- GITNESS_URL_GIT_SSH=ssh://192.168.23.16
- GITNESS_SSH_ENABLE=true
# - GITFOX_SSH_PORT=3022
# - GITNESS_CI_PARALLEL_WORKERS=2
# - GITNESS_GIT_ROOT
- GITNESS_CI_PLUGINS_ZIP_URL=https://c.ysicing.net/oss/offline/master.zip
部署完成,使用 IP:3000 访问. 账号密码需要使用设置的 GITNESS_PRINCIPAL_ADMIN_UID
和 GITNESS_PRINCIPAL_ADMIN_PASSWORD
目前配置参数过多,稍微配置不对还可能有 bug。针对这个
- 我司会开源 GitFox,基于 Gitness 定制的 fork 版本,一些额外特性功能的补充(企业、与禅道的联动)
- 我个人也维护了一套 Gitness 的魔改版本 Gitless,在上游的版本增加了个人开发者常用的特性(仅从我个人使用)
使用说明
这里简单过一些,后面会专门写一些文章介绍一下。
创建组织
对应其他 Git 服务的组织(ORG/GROUP)
创建仓库
流水线
执行流水线,目前支持部分 drone 插件,基本可以拿来就用如果熟悉 drone 和 gitness 的流水线语法的话
制品仓库
目前支持如下,感觉是借鉴了 Nexus,基本已经覆盖了日常使用。
WebIDE
总结
Gitness 不仅是一款工具,更是开发者高效协作的伙伴。无论你是追求极致效率的个人开发者,还是需要稳定流水线的小型企业团队,Gitness 都能满足你的需求。不过有一说一,目前 Gitness 还是处于快速发展阶段,有 Bug 是正常不过的事,但是基本功能还是没啥问题的。其次他们开源版本支持力度不是那么紧急,更多的还是服务他们的 SAAS 产品。

WordPress 古腾堡编辑器中媒体类区块使用说明
在 WordPress 的古腾堡编辑器中,媒体类别的区块专注于插入和展示各种媒体内容,如图片、视频、音频、画廊等。通过这些区块,用户可以轻松地将媒体文件与文本、按钮等内容进行组合,从而丰富文章和页面的展示效果。这些区块不仅能提升内容的互动性,还能使页面看起来更加生动和吸引人。
媒体类别的区块包含图片、图库、音频、封面、文件等 7 种,其中图片区块使用最频繁。除了图片,建议尝试其他区块,以增强文章的多样性。我将在本文中详细说明,并插入真实的例子辅以演示。
1. WordPress 编辑器中的图片区块

当通过左侧区块插入图库区块后,我们可以选择上传图片、从 URL 插入或从媒体库中选择已有图片。上面的截图就是我直接通过 Ctrl + V 粘贴进来的,这相当于拖放操作。
需..... [ 阅读全文 ]
原文链接: https://www.shephe.com/website/wordpress-media-blocks/
版权声明: Kevin's Space 版权所有,转载请用明链标明本文地址
本站相关: 随机文章 | 站长微博 | 关于本站 | 联系站长 | 捐助作者
🖥️ 名字越长 Xeon 越强
设备故事
对尔英 Modt 系列产品和 笔记本U 放在台式机上的理念非常认可,751元从拼多多入手了一套 Intel Xeon W-11955M,名字越长越厉害,实际上也是如此。
目前当作主力机在用,因为 12代那台机子换了轨迹球后都不想开了。😔
CPU是比较少见的至强系列,CPU-Z里显示的是i9-11950H,既能享受笔记本U低功耗的优点,又能满足部分 DIY 的乐趣。比流行的 5600G,12400平台更便宜,核心更多多核性能更强。
以后打算逐渐用 Modt 把其他还在使用 DDR3 和 VGA/DVI 接口的主机淘汰掉。
配置
文章标签
💻 国模 J4125
设备故事
黄鱼不到200元捡来玩玩的,速度比 J3455 快太多了,属于能用的程度了。
目前刷了 Linux Mint,外接显示器看一堆仪表盘。
相关链接
有很多人不会装WIN下的J4125山寨本驱动程序,可以看这里J4125音频驱动(声卡驱动) - 英特尔智音技术。
文章标签
三星ONE UI7.0真的这么神?看三星死忠粉如何评价Galaxy S24Ultra
引言
每年618都是大家换手机的好时机,而今年的618来得格外早,不少手机厂商已经开启了第一波优惠活动,三星也不例外。目前,三星S24 Ultra(256G版)在京东Plus会员叠加国家补贴之后,到手价只要5499元!而且还有三期免息、一年延保和购机礼包等福利可享,可以说是历史最低价了!
作为一个用了多年国产定制UI系统的用户,说实话,我(熊猫)还真没亲自体验过三星的系统。不过巧的是,我亲哥是个三星忠实粉丝,用的正是S24 Ultra。借着他这台机子,通过他的描述,这次也是深入了解了三星最新的One UI 7.0系统。(以下图片均来自我哥拍摄,主打一个真是分享)
独特美学,质感在线
我哥可以说是三星的忠实粉丝了,从S20系列开始就一直用三星手机。他手里的这台S24 Ultra是去年11月2号买的,到现在也才用了半年多一点。因为他的影响,其实我一直挺喜欢三星的外观设计,尤其是S24 Ultra,整体质感非常耐看。电商平台有四种配色选择,再加上三星商城特供的三种配色,目前共有七种颜色可选,全都以矿物为灵感,搭配钛金属边框,第一眼看上去就显得格外高级。
S24 Ultra配备了一块6.8英寸的直屏,分辨率高达3120×1440,显示效果非常细腻。屏幕支持1Hz到120Hz自适应刷新率,能根据使用场景智能调节,兼顾流畅与省电。峰值亮度达到了2600尼特,即便是现在这样的夏天,在户外强光下也能保持清晰的可视效果,阅读、看视频都不费劲。
除了高达2600尼特的峰值亮度,S24 Ultra的屏幕还新增了新一代防反射涂层。在光线复杂的环境中,比如强光直射或多光源场景下,它能有效减少环境光的干扰,降低反光带来的光晕和眩光现象,让屏幕内容更清晰、更易读。
再来看看手机背面的摄像头模组,S24 Ultra 配备了四摄系统:2 亿像素广角主摄,f/1.8 光圈并支持 OIS 光学防抖;12MP 超广角镜头,f/2.2 光圈,拥有 120° 的超宽视野;10MP 远摄镜头,支持 3 倍光学变焦,f/2.4 光圈;还有一颗 50MP 潜望式长焦镜头,支持 5 倍光学变焦,f/3.4 光圈。整个背部设计非常有辨识度。
S24 Ultra 机身自带一支手写笔,日常不使用时可以收纳在笔槽中。机身厚度控制在 8.6mm,整体造型扁平硬朗,棱角分明,有一种科技与工业风的设计美感。同时,它还支持 IP68 级别的防尘防水,应对日常使用更加安心。
强悍配置,旗舰性能
配置上,S24 Ultra 搭载了高通骁龙 8 Gen 3 处理器,1+3+2+2的八核架构, 1个主频3.3GHz的Cortex-X4超大核,3个主频3.2GHz的Cortex-A720大核+2个主频3.0GHz 的Cortex-A720大核,以及2个主频2.3GHz的Cortex-A520小核,配合LPDDR5X内存和UFS 4.0存储,安兔兔跑分200W+。
真正有用的AI助手
因为NPU的加持,新一代的S24 Ultra在AI功能上提供了更为方便和高效的功能与工具。
三星内置的的 Bixby 支持多种方式与用户互动,包括上传照片、文档、直接拍照,也可以通过截屏来发起查询。它能够依据用户的提问内容智能地提供答案,响应速度极快,且回答的准确性相当高。即使面对仅有少量参照物的随意拍摄场景,Bixby 也能凭借多模态理解技术准确识别出拍摄地点。
在日常使用场景中,三星内置的 AI 助手也带来了不少实用功能。当很多国内厂商还在主打“路人消除”这类基础AI修图功能时,三星已经实现了对照片中人物或物体的自由移动操作,相当于为照片提供了一种“二次构图”的可能,实用性非常高。
办公效率方面,三星的 AI 助手也展现出了强大能力。它支持智能摘要、智能排版和内容校正等实用功能。比如,将会议记录或文档内容交给它,AI 就能自动提取关键信息,生成简洁明了的摘要,大大提升阅读效率,进而帮助我们更高效地完成工作任务。
当然,上述提到的功能仅是三星 AI 功能的冰山一角。实际上,三星在手机终端 AI 领域的探索远不止于此。例如,AI 生成图像、智能拖拽和个性化内容推荐等功能,都是为了让用户能够更加高效地使用手机完成各种任务,从而帮助用户释放更多潜力,创造更大价值。
专业影像系统
前文已经提到,三星 S24 Ultra 配备了四颗摄像头,每一颗都承担着不同的拍摄任务。它们各司其职、协同工作,共同构建起 S24 Ultra 强大而专业的影像系统。
先从视频功能说起。据我哥介绍,ONE UI 7.0 更新后新增了 Log 曲线选项。在拍摄专业视频时,用户可以选择开启这一功能,从而显著提升画面的动态范围,让视频在后期调色时拥有更大的调整空间,成片效果也更具专业感。
我哥也帮忙拍了一些样张。可以看到,这颗 2 亿像素的主摄确实是 S24 Ultra 的一大亮点,不仅具备超高分辨率,还能在细节表现上做到极致。在光线充足的情况下,成像非常细腻,画面中心的花蕊结构清晰分明,层次感和真实感都非常出色。
你或许对三星的主摄了解不多,但一定听说过“看演唱会要带三星手机”的说法。之所以大家这么说,是因为它搭载了一颗强大的潜望式长焦镜头。S24 Ultra 的长焦支持最高 10 倍光学品质变焦,数字变焦更是可达 100 倍。即使坐在演唱会的后排,也能轻松捕捉舞台上的精彩细节,拍出清晰、锐利、堪比“王心凌现场”的高质量照片。
续航表现
续航表现方面,S24 Ultra搭载了一块5000mAh的大容量电池。在日常使用中,比如浏览网页、聊天和拍照,充满电后连续使用十多个小时完全没问题。充电方面,它支持45W快充,同时也具备无线充电功能。虽然45W的快充速度不算特别快,但出色的续航能力在一定程度上弥补了这个小短板。
值得一提的是,据我哥说,在系统更新到7.0之后,电池变得更为耐用,这对于重度手机使用者是个不错的消息。
购买建议
不得不说,不管是从系统配置还是实际体验上,S24 Ultra都拥有非常不错的体验,直角直屏的外观实际颜值非常不错,难得的这次三星也参加了国补和各种活动,目前S24 Ultra也是迎来了发售易来的史低价5499元,如果喜欢直屏,或者追求高品质的旗舰产品,那么三星Galaxy S24 Ultra真的可以考虑入手试试。
以上便是本次分享的全部内容了,如果你觉得还算有趣或者对你有所帮助,不妨点赞收藏,最后也希望能得到你的关注,咱们下期见!
众生牛马
Cheap mini PCs have gotten really good
I mean, I knew that Apple's Mac Mini, which is equally petite to the Minisforum, had plenty of power for macOS. But somehow I thought Apple had some special sauce that made this possible, and that PCs were forever condemned to be bigger, louder, and slower. How 2020 of me.
The UM870 is a little beast. It runs our full HEY test suite in just 2m28s. In comparison, it takes a 14-core M4 Pro 2m49s, and such an Apple costs $2,199, once you've given it 48GB of RAM and 1TB of storage.
Now, that M4 Mac Mini can probably do things with, say, 8K video editing that the UM870 can't touch. But on the other hand, the UM870 can play the latest video games. Everything from Fortnite to Cyberpunk 2077 to Forza Horizon. It won't trouble a modern, dedicated Nvidia card for max FPS, but it's perfectly playable at 1080p at medium settings in a ton of games.
In raw CPU power, the AMD 8745H will match a regular M4 in multi-core. They both clock in right around 13,000 points on Geekbench 6. Though the M4 is a fair bit quicker in single-core. The AMD is also far behind an M4 Pro in raw multi-core power (13K vs 22K), but at less than a quarter the cost, it's hard to complain.
But as with the example of video games, it's often deceiving just to compare the Geekbench numbers, because it all depends on what you're doing. If you're really into video games, it's no use to have extra grunt, if your favorite games won't run. The same is true if you're a developer working with Docker containers and a Linux toolchain. As quoted above, the UM870 handily defeats the M4 Pro in our all-cores-buzzing HEY test suite.
The irony is that it was partly Apple's volume with and investment in TSMC that got us these incredible AMD chips, as they're riding the same improvements in TSMC manufacturing prowess as Apple's M chips. The Zen 4 cores in the 8745H are all forged on the same 5nm process as the M2, so it's no surprise that the AMD cores are dead-on-the-money for Apple's in Geekbench single-core performance.
Regardless, this is what I love about technology. I love when our assumptions are tested: just how small and cheap can an awesome developer machine become? I love that open-source Linux is able to run laps around Apple in the workloads that many developers need (like working with Docker containers). I love that this tiny little silent $550 mini PC on my desk is capable of putting out computing power that only a decade ago would have been reserved to loud, honking metal in a data center.
用户外活动填满五一:勒多曼因篇
null
书接上文。
小舅子他们在特种兵式的几天游玩之后表示最后一天想在家里休息一下,陪着他们吃了一天清淡的食物后,按了个脚,第二天一号他们便各自返回工作地去了。
而我们两口新的征程才刚要开始——下一站勒多曼因。
其实勒多曼因这个行程是五一之前就开始关注了的,因为之前徒步峨眉山、笔架山后加了很多户外群,五一前的偶然一天看到有人发了一个雪山冰湖皮筏艇的照片,并说准备开团出发,景点是我喜欢的那种风格,强度也还能接受,所以进群了解了一下,总共三天行程,:
- 第一天成都集合,乘坐包大巴车出发去康定
- 下午大概四五点到康定,吃晚饭,吃完后坐中转车去老榆林
- 老榆林早起坐转运车出发去山脚下的格因草原开始徒步。
- 徒步20公里,爬升到4300米左右,在山上营地住下。
- 第三天早起冲顶,然后下山。
- 各回各家。
- 我们只需要带两天的路餐,其他的他们包。
- 总费用650元1人,40人成团出发。

当时想着650这价格是真心不贵了,而且恰好能和小舅子他们来的时间错开,所以毫不犹豫的报了两个名。
但是在后面几天接待下舅子的过程中,群里消息不断,组织力度似乎不太够了,总共个加群的人有50多个,接龙说要去的也满了40个人,但是最后交钱的时候却不够包车的40人。
因为人数不够没办法拼大车,群主就开始降级说租20人小车,但是小车价格和大车只便宜了四五百块钱,最后摊下来每个人要多交100元,然后重新组织了一波接龙,不懂贵这100块会产生了多大的化学反应,这次直接20人都没凑齐...。
眼看着要散团了,但是我的瘾又被钓上来了,不想眼看着散团,索性就说我出个车,看有没有其他愿意出车的一起,凑个十几二十个人也还不错,终于在散团之际组织了三个车,最终有17人一起参与了这趟行程。
我们这个7坐车除开我和S,最终分两拨坐了5人。
先是3位泸州的朋友,两男一女,从泸州过来自贡上车,分别是快60的二叔,很会照顾人的刘姐,以及帅气的空少三笑。之后开车去成都接上2泰拳老师和一个川大的大学生。

后面就正式开始发图了,所以这里先吐槽一下这个团。
这个穿山甲不能算是正式的商业团,只能说是有一个大家信的过的群主去联系的车、住宿、餐食,规划好行程后在群里组织的,不过那点组织力几乎是没有,我们因为自驾所以最后减了100的团费,最终收的550元,但是当时承诺的东西一个都没达成,这里罗列已下,下次大家参加这种群性质的团一定要提前问清楚,留好文字存档。
- 说好的只用带路餐,但是最后第一天的晚餐需要自费,第二天的早餐也让我们自费,之后在山上说有鸡汤喝也没有准备,山上的营地的晚餐也很差,更别说早餐馒头还是馊的。
- 说好会花一千多请一个solo过贡嘎的领导,上山后发现人家是带了商团,几乎没管过我们团,另外一个年轻的小伙子说是被叫来管我们,但是就下山看到了他们一下,拍照服务之类的就更别提了。
- 转运车期初以为是什么大巴之类的,上去才知道想多了,全是那种小货卡,上面拉一块篷布就行了,后来听其他上山的说有人坐的车是拉牛羊的,全是屎...。
好了,亏已经吃了,只能说下次注意了。
行程分享正式开始。
我们5月3号从成都出发康定完美错开了车流高峰,全程几乎没有堵车,一路狂奔,车上听二叔说天全服务站有「此生必驾」318的牌子可以打卡,大家商量一致就在天全休息一会儿。


因为是自驾,所以时间比较充裕,路上又没有堵车,我们四点左右就已经到了康定,所以先去刘姐一个朋友开的餐馆吃了一顿菌菇牦牛火锅,老板做的蘸料一绝。

吃完饭才不到5点,所以大家准备一起去逛逛溜溜城。
我们本来是开车进城的,但是穿了一圈都没找到车位,最后在城区里堵了一个小时重新回到康定进城口的边上的一个集中停车场,20元一天,建议大家来这里玩不要想在城区找车位了。


卖青稞大饼,挺香的,下面的店铺15一个,走了一截发现全是从这个店拿的,人家只卖12元,这几步路就有3元的差价。

走到一半发现下雨了,还好穿的冲锋衣。并且凑巧这边有个广场在搞商业活动,似乎是请了什么藏族歌星在唱歌,虽然是藏文歌,但是唱的还挺好听的,不过摇一摇没识别出来。

大家累了坐在路边休息,因为雨大,二叔又没穿冲锋衣,所以暂时和他们分开,我们两口子单独逛去了。

康定旅游局局长同款抖音樱花大街。

溜溜城打卡,为什么叫溜溜城?
“康定溜溜城”这个充满诗意的别称,主要源于康定与《康定情歌》(又名《跑马溜溜的山上》)的深厚渊源。这首传唱世界的民歌让康定以“溜溜”之名广为人知,而“溜溜”在当地方言中更是承载了独特的文化意蕴,在康定及川西方言中,“溜溜”常用来形容事物“美好”“漂亮”“流畅”。


1. 溜溜城打卡 2. 小巷一景
藏族同胞们的广场舞是锅庄,那「锅庄」又是什么呢?。
锅庄(藏语称“果卓”或“歌庄”)是藏族民间广泛流传的一种传统集体舞蹈,尤其在四川、西藏、云南、青海等藏族聚居区盛行。它不仅是重要的娱乐活动,更是藏族文化、宗教和社会交往的载体。

康定的夜景还是非常漂亮的。

天色渐暗后和大家汇合,去往老榆林的民宿休息。
因为对这边的卫生环境不报什么期待,所以提前买了隔脏睡袋,用塑料袋+垃圾桶装了点热水泡脚,早早便躺下休息了。




1. 早起民宿外的风景 2.房间环境 3. 早起窗外的雪山 4. 隔脏睡袋
没有领队,更没有领队说让我们拍出发照,所以我索性叫上大家一起随便拍了一张。

坐上蓬卡就出发了,一路上看不到外面,但感觉早餐都要被颠出来了,估计外面到处都是导弹坑。




1. 格因草原 2. 马帮的马
今天天气不错,依旧没看到领队...。

过木桥,水很凉,都是山上流下来的雪水。低山区


路过一个红石滩


低山区还有很多松树。

在徒步过程中海拔逐渐上升,慢慢树木就变成灌木和草甸,一路上会还经过各种路况:石头路,涉水路,草甸,沼泽等等。


一处绝佳的和雪山合影的机位


我也来一张,在这里不小心把登山杖掉落滚到峡谷下面去了。😅

一爬一个不吱声

有点累,生命力照片一张。

沿途的树木变成了灌木和草甸。

二叔年纪打了,自重也太重,大家都劝他坐马算了,他也听劝,800块直接座马去了营地。后来到营地听他说座马也听危险的,他上去的时候马没站稳前跪了,把他甩到沙地里了,我们在说幸好是沙地...。

终于走了快一半了,两岔河营地吃个午餐

继续出发

在一个绝望坡前碰到了其他队友,我不拍照大家是真不想拍合照....,碰上我这种队友是真挺好的。

最不想走的就是这种河谷路段,全是碎石头。还碰上大风,风里还夹着小粒的冰雹。

最后一个绝望坡,进入雪线了,天上也飘起了小雪。


绝望坡后面的美景

终于到营地了!


营地景色全览


太累了,完全不想拍照用其他人发的照片把。


休息的棚子。营地的饭菜很不好吃,大家草草吃完便都上床准备休息。


因为营地在海拔4300米左右,加上棚子里氧气不太流通,所以帐篷里十几号人晚上过夜的时候都有不同程度的高反,症状基本上都是头疼。我后半夜睡了会,基本上是醒半小时睡半小时左右,我旁边的一个大学生几乎整夜没睡觉,两三点的时候还爬起来说想下山...,一整晚的噪音把他旁边的一个能睡着的老驴折腾到一晚上没怎么睡,感觉老驴也很难受哈哈。
S就是说觉得冷,因为棚子四处漏风,漏风最严重的就是我们躺下后头顶的地方,风大的时候我问不得不起来给她过上急救毯才好些。
后半夜风停了,我帮她把睡袋裹紧,把头罩住就留个鼻子嘴巴出来,才算是踏踏实实睡了好几个小时,比我有出息多了。

第二天四五点大家便陆续起床了,还能看到星空,但是我手机和充电宝都被冻没电了。

早餐的包子是馊的,我就喝了点稀饭,吃了自己带的面包。
因为出发的时候黑黢黢的,手机也没电了,就没拍什么照片,同行的刘姐借了他的充电宝给我用,让我得以续命。
天终于渐渐亮起来,发现我们被大雾追赶着,手机也有一些电了。


跟着前面的队伍的步伐,发现我们没有走常规的泥巴路线,而是条沿着河谷上行的碎石路段,然后踩着雪沿着山脊线的去往山顶,体验顶满,后来听前面的队友说起才知道,他们跟着一个商团的线路走的。

体验非常棒。

开始爬山脊线。几乎六七十度的大坡,踩着雪前进,非常爽!


就冲这一段爬坡这一趟也值了。

这里的雪一脚下去都能没过膝盖,躺雪上面来一张把。

旁边那条是常规上来的路,马上到了,看上面云层上去的时候应该还能看见雪山。

登顶。
说实话因为湖还没完全化开又被白雪覆盖,也不能去湖面拍照,导致山顶的风景和可玩性很一般,这块白色不知道的人还以为只是一片平坦的雪地。

别的不说,先打个卡把。



看好了,这一剑,会很帅!(换我来拍的时候后面忽然就起了大雾,没拍上😭。)

因为风雪,准备下山了。

后面下山的风景就不发了,下山的时候倒是碰上领队了,因为要做扫尾工作,我们又是垫底的,所以一直被催着下山,搞的我们下山速度飞快,后半段几乎都是跑着下山的。
回到起点。

下雨了,安排第一波人坐皮卡,这波人回到民宿衣服基本上都湿了,我依旧做的蓬卡下山,不过因为没休息好,有点晕车的感觉,差点吐了。

之后便是返程,回去的时候只有泸州的三位和我们一起,另外两个坐其他车了。
也好,我们这几个人更聊的来,我们边开边聊,倒也不觉得累,还拉个群准备下次有什么活动再一起出行。
直到晚上11点30分才安全到达自贡,他们另外拼车叫了个野猪儿回泸州。
这次行程结束我缓了三天才缓过来,每天下班回家几乎粘上枕头就睡,每天的睡眠时长破天荒的突破了8个小时,临近9小时!
下次出行真的不想再开车了。
乙巳蛇年-五月半
电话手表
- 五一假期,大宝突然开窍准备去丈母娘家住几天,长这么大,还没有在别人家住过。但是经过上个月的沟通,大宝竟然表现出了想去试试的感觉。不放心她第一次住外面,领导让我紧急采购一个电话手表,趁着国补,500快给大宝买了个米兔7X。京东下单,第二天就到了,提前给我爸打电话,让他把不用的那张副卡提前取出放在老家,下班临时回了一趟老家,取完卡,直奔小区。到家后,调试了一番,给领导安装上了APP,把一圈人的电话号码全部加上,配置好头像,大宝随即兴奋的给每一个人都打了个电话。
- 买米兔的原因,性价比是一方面!小天才同价位的配置不怎么好,原本是准备买300那个,但是想了一下,还是买一个稍微好一点的!其二,大宝最多再有两年也就上小学了,很多小学又不让带电话手表,到后面看情况!可能需要更换新款了。
- 有了这玩意之后,自己已经研究上了,目前拍照已经会了,还是回来之后发现的她给姥姥姥爷的自拍照。另外就是炫耀了,放学接她的时候,还得给她带过去,回来玩的时候,给小朋友们诡谲一下。不过这很正常,毕竟我小时候也干过。从小家里对电子产品限制还是很多的,大宝不玩手机平板,最多也就看个电视,然后下楼和小朋友玩,这也算是她拥有的第一个电子产品。
村里生活
- 大宝三号去的姥爷家,老丈人是附近的村医,平时除了诊所,大部分时间还是很闲的,加上我那小舅子目前在旁边市上班,家中就老两口,大把的时间,算是那种期待的退休生活,大宝正是古灵精怪的年纪,有时候去走亲戚没带大宝,老两口似乎都不开心!
- 五号休息和领导一起去了接大宝,总结一下这两天,大宝过的非常开心,恰逢那边农村有大戏,老两口是戏迷,中午去,晚上去,带着大宝逛超市,衣服裤子褂子鞋买了一套全新的。诊所里面有一片地,去年老丈人弄了个小池子养鱼,旁边顺便种种菜,刚好赶上搭架子种菜,大宝玩着干着,老两口还给我们发了现场干活的视频,看的出是真的开心。
- 回想起来,我们从小在村里度过的童年也是这样,无忧无虑,多姿多彩,去玩耍,去探险。现在进城之后,日子好了,反而丢失了很多东西,就像幼儿园组织的春游研学之类的,我们小时候都经历过。这几十年发展的太快了,很多东西明明还在昨天,可是那已经是很久之前的事情了。
统领与卷
- 大统领工作调动高升了,没有什么征兆。调动让沉寂了好久的湖面突然活跃了起来,各种浪花四溅,有点不适应,毕竟平静的时间过的久了,真就没有什么折腾的心情了。总山头也突然官宣大变动,各种日报简报都开始整上了,不填扣钱,信息化时代的牛马不好干啊!感觉后面搞不好deepseek接入一分析,大数据直接就能给牛马分级了。做一个好好工作的牛马吧!给公司的发展添砖加瓦。
阿三喝酒
- 某个小统领办酒席,家中添了一个宝宝,与两口关系不错,中午去之后特意坐到一个不喝酒的桌子上,想着今天不喝了,吃完就走,结果当天还是喝了三杯,搞的晚上上班晕到后半夜,是那种头晕的感觉,回想还是领导说的对,有时候我不经劝,以后自己心里得有点数了。
- 前几天的三哥大战巴巴羊,真是见证了历史时刻!上一次还是阿美莉卡那波,觉得开战后,应该打的比较焦灼,然后巴巴羊后面后勤比较拉,再然后兔子支援止战。三哥这波估计赢麻了,毕竟体量有那么大,巴巴羊会吃亏很正常,结果三哥拉了个大的。果然这么多年过去了,拍了那么多近代中国战争片,唯独很少拍中印的,的确没法拍。
[photos]
[/photos]
认识 WordPress 古腾堡编辑器:界面与功能板块
古腾堡编辑器(Gutenberg Editor)采用“块”式设计理念,编辑器内的每个部分(如标题、段落、图片、列表、视频、按钮等)视为独立的内容块。用户可以像搭积木一样自由拖拽、排列、插入或删除各种块,本篇介绍其界面和板块。
1. WordPress Gutenberg Editor 界面介绍
下图展示的是 WordPress 当前版本(6.8.1)的古腾堡编辑器界面。为了便于整体查看,我将区块属性和区块样板的界面截图进行了拼接。可以看到,默认的古腾堡编辑器界面由顶部工具栏、主编辑区、右侧设置面板和左侧导航等部分组成,各个功能区域布局清晰,便于用户高效进行内容创作与排版。

1.1 顶部工具栏
顶部工具..... [ 阅读全文 ]
原文链接: https://www.shephe.com/website/wordpress-gutenberg-editor/
版权声明: Kevin's Space 版权所有,转载请用明链标明本文地址
本站相关: 随机文章 | 站长微博 | 关于本站 | 联系站长 | 捐助作者
读《一个女人的自传》
最近对女性回忆类的作品很感兴趣,于是又去图书馆借了一本《一个女人的自传》。这本书的作者杨步伟(出生于1889年)比《山居杂记》的作者高诵芬年长29岁。两人都生长在清末民初家世显赫的名门望族,但人生轨迹、性格特点和社会影响等各不相同。看书过程中不免将两人做比较。
一是家庭背景与教育经历。杨步伟的祖父和父亲思想开明,去过英法等国家开拓视野,重视教育,提倡废除缠足。杨步伟在家受教育后,先后去南京旅宁学堂、上海中西女塾读书,擅长英语和理科。二次革命失败后,她到日本东京帝国大学攻读医学,成为中国最早的女性医学博士之一。而高诵芬未接受现代学校教育,在家里念私塾侧重国学,受家族和传统礼教影响较多。
二是职业与社会角色。杨步伟20岁时担任崇实女子学校校长,积极参与革命。回国后在北京开设森仁医院(中国首家女性创办的医院),成为职业医生,活跃于学术和社会活动。而高诵芬则是传统闺秀与家族主母,一生以持家为本。
三是婚姻与个人性格。杨步伟从小当男孩养,性格果敢,热情外向,善于社交。她倡导女性独立,反对旧式婚约,与赵元任自由恋爱结婚,婚礼仅请胡适、朱征二人见证,仪式极简,登报声明“破除旧习”,被胡适称为“中国现代女性的先驱”。而高诵芬性格温婉内敛,依从父母之命,与门当户对的徐家公子徐定戡结婚,嫁妆筹备数年,婚礼仪式也严格按照传统风俗流程。虽为旧式婚姻,他们夫妻也幸福和睦。
杨步伟敢于革新的背后,离不开祖父和父亲的支持和托举,母亲的宠爱。对于指腹为婚,虽然未婚夫人品和才能没有问题,但杨步伟为了追求自主和人权,坚持写信退婚,祖父和父亲支持她的决定。当杨步伟在东京学医期间,父亲询问她今后打算组织私人医院,便取出积蓄动身去北京给她买房间造医院,为她的事业发展准备铺平道路。平时更是满足物质所需,杨步伟与人交往也从不计较花钱。
如果说《山居杂记》是对传统文化的传承和守护,记载了江南士族的生活细节与礼仪文化。而《一个女人的自传》则是新旧社会交替的破局和变革,文中侧重写时局变化、学业事业等情况,也有一些涉及家长里短的内容。杨步伟以现代教育和职业突破传统女性角色,展现了知识女性在科学、文化领域的贡献。杨步伟和高诵芬差异反映了近代中国女性在现代化进程中的多元选择,虽然人生轨迹不同,却都以各自的方式展现了女性成长的无限可能性,实现自我价值,成为时代的参与者和见证者。
Passport
Passport
本插件为 Typecho 博客系统提供密码找回功能。用户可以通过注册邮箱接收密码重置链接,从而重新设置账户密码。
原始仓库地址: typecho-fans/plugins/Passport
此版本在原版基础上进行了功能增强和 UI 优化。
下载
开源地址:https://github.com/little-gt/PLUGION-Passport
功能
- 通过邮件发送密码重置链接。
- 支持 SMTP 服务器配置,保证邮件发送的可靠性。
- 可自定义密码重置邮件模板。
支持多种验证码服务:
- Google reCAPTCHA v2 (最新版)
- hCaptcha
- 可选择不使用验证码
- 验证码配置项根据所选类型动态显示,界面更简洁。
- 找回密码和重置密码页面的验证码 UI 左对齐,更美观。
- 使用最新的 PHPMailer 库特性。
- 安全可靠的 Token 生成与验证机制。
福建泉州游记
福建省-泉州市-晋江市-泉州晋江国际机场
福建省-泉州市-鲤城区-泉州天后宫
福建省-泉州市-鲤城区-泉州天后宫
福建省-泉州市-鲤城区-泉州天后宫
福建省-泉州市-鲤城区-泉州天后宫
福建省-泉州市-鲤城区-泉州天后宫
福建省-泉州市-鲤城区-泉州天后宫
福建省-泉州市-鲤城区-泉州天后宫
福建省-泉州市-鲤城区-泉州天后宫
福建省-泉州市-鲤城区-德济门遗址
福建省-泉州市-鲤城区-通淮关岳庙
福建省-泉州市-鲤城区-清净寺
福建省-泉州市-鲤城区-泉州府文庙
福建省-泉州市-鲤城区-泉州府文庙
福建省-泉州市-鲤城区-泉州府文庙-大成门
福建省-泉州市-鲤城区-泉州府文庙
福建省-泉州市-鲤城区-泉州府文庙-大成殿
福建省-泉州市-鲤城区-泉州府文庙
福建省-泉州市-鲤城区-铜佛寺
福建省-泉州市-鲤城区-铜佛寺
福建省-泉州市-鲤城区-承天禅寺
福建省-泉州市-鲤城区-承天禅寺
福建省-泉州市-鲤城区-承天禅寺
福建省-泉州市-鲤城区-承天禅寺
福建省-泉州市-鲤城区-承天禅寺
福建省-泉州市-鲤城区-承天禅寺
福建省-泉州市-鲤城区-承天禅寺
福建省-泉州市-鲤城区-承天禅寺
福建省-泉州市-鲤城区-承天禅寺
福建省-泉州市-鲤城区-元妙观
福建省-泉州市-鲤城区-元妙观
福建省-泉州市-鲤城区-元妙观
福建省-泉州市-鲤城区-元妙观
福建省-泉州市-鲤城区-元妙观
福建省-泉州市-鲤城区-元妙观
福建省-泉州市-鲤城区-泉州钟楼
福建省-泉州市-鲤城区-泉州开元寺-南大门
福建省-泉州市-鲤城区-泉州开元寺
福建省-泉州市-鲤城区-泉州开元寺-大雄宝殿
福建省-泉州市-鲤城区-泉州开元寺-仁寿塔
福建省-泉州市-鲤城区-泉州开元寺-仁寿塔
福建省-泉州市-鲤城区-泉州开元寺-麒麟壁
福建省-泉州市-鲤城区-泉州开元寺-仁寿塔
福建省-泉州市-鲤城区-泉州开元寺-菩提树
福建省-泉州市-鲤城区-泉州开元寺-菩提树叶
福建省-泉州市-鲤城区-泉州开元寺-镇国塔
福建省-泉州市-鲤城区-泉州开元寺-镇国塔
福建省-泉州市-鲤城区-泉州开元寺-大雄宝殿
福建省-泉州市-鲤城区-泉州开元寺-西大门
福建省-泉州市-丰泽区-东岳行宫
福建省-泉州市-丰泽区-泉州南少林寺
福建省-泉州市-丰泽区-泉州南少林寺
福建省-泉州市-丰泽区-泉州南少林寺-南少林寺遗址
福建省-泉州市-丰泽区-泉州南少林寺-天王殿
福建省-泉州市-丰泽区-泉州南少林寺-天王殿
福建省-泉州市-丰泽区-泉州南少林寺
福建省-泉州市-丰泽区-泉州南少林寺
福建省-泉州市-丰泽区-泉州南少林寺-大雄宝殿
福建省-泉州市-丰泽区-泉州南少林寺-大雄宝殿
福建省-泉州市-丰泽区-泉州南少林寺-延寿堂
福建省-泉州市-丰泽区-泉州南少林寺-演武厅
福建省-泉州市-丰泽区-飞天迎宾城雕
福建省-泉州市-晋江市-晋江梧林传统村落
福建省-泉州市-晋江市-晋江梧林传统村落-五层厝
福建省-泉州市-晋江市-晋江梧林传统村落
福建省-泉州市-晋江市-晋江梧林传统村落
福建省-泉州市-晋江市-晋江梧林传统村落
福建省-泉州市-晋江市-晋江梧林传统村落-侨批馆
福建省-泉州市-晋江市-晋江梧林传统村落
福建省-泉州市-晋江市-晋江梧林传统村落
福建省-泉州市-晋江市-晋江梧林传统村落-胸怀祖国楼
福建省-泉州市-晋江市-晋江梧林传统村落-胸怀祖国楼
福建省-泉州市-晋江市-晋江梧林传统村落
福建省-泉州市-晋江市-晋江梧林传统村落
福建省-泉州市-晋江市-晋江梧林传统村落-枪楼
福建省-泉州市-晋江市-晋江梧林传统村落
福建省-泉州市-晋江市-晋江梧林传统村落-花海
福建省-泉州市-晋江市-晋江梧林传统村落
福建省-泉州市-晋江市-晋江梧林传统村落
福建省-泉州市-晋江市-晋江梧林传统村落-游客中心
福建省-泉州市-石狮市-永宁古城-永宁城隍庙
福建省-泉州市-石狮市-永宁古城
福建省-泉州市-石狮市-永宁古城-紫树林寺
福建省-泉州市-石狮市-永宁古城-财神庙
福建省-泉州市-石狮市-永宁古城-遗泽楼
福建省-泉州市-石狮市-永宁古城-永宁卫闽南民居微缩模型展
福建省-泉州市-石狮市-永宁古城-东门
福建省-泉州市-石狮市-永宁古城-东门
福建省-泉州市-石狮市-石狮黄金海岸
福建省-泉州市-石狮市-洛伽寺
福建省-泉州市-石狮市-洛伽寺
福建省-泉州市-石狮市-洛伽寺
福建省-泉州市-石狮市-洛伽寺
福建省-泉州市-石狮市-洛伽寺
福建省-泉州市-石狮市-洛伽寺
福建省-泉州市-石狮市-洛伽寺
福建省-泉州市-石狮市-洛伽寺
福建省-泉州市-石狮市-洛伽寺
福建省-泉州市-石狮市-石狮黄金海岸
福建省-泉州市-石狮市-洛伽寺
福建省-泉州市-石狮市-石狮黄金海岸和洛伽寺
福建省-泉州市-石狮市-石狮黄金海岸和洛伽寺
福建省-泉州市-石狮市-石狮黄金海岸-观音像
福建省-泉州市-石狮市-洛伽寺
福建省-泉州市-石狮市-洛伽寺
福建省-泉州市-石狮市-石狮黄金海岸
福建省-泉州市-石狮市-石狮小威海
福建省-泉州市-石狮市-东城灯塔公园
福建省-泉州市-石狮市-东城灯塔公园
福建省-泉州市-石狮市-东城灯塔公园
福建省-泉州市-石狮市-东城灯塔公园
福建省-泉州市-石狮市-东城灯塔公园
福建省-泉州市-石狮市-六胜塔公园-六胜塔
福建省-泉州市-石狮市-六胜塔公园-六胜塔
福建省-泉州市-丰泽区-蟳埔民俗文化村
福建省-泉州市-丰泽区-蟳埔民俗文化村
福建省-泉州市-丰泽区-蟳埔民俗文化村
福建省-泉州市-丰泽区-蟳埔民俗文化村
福建省-泉州市-丰泽区-蟳埔民俗文化村
福建省-泉州市-丰泽区-蟳埔民俗文化村
福建省-泉州市-丰泽区-蟳埔民俗文化村-蟳埔妈祖宫
福建省-泉州市-丰泽区-蟳埔民俗文化村-蟳埔妈祖宫
福建省-泉州市-丰泽区-蟳埔民俗文化村-蟳埔妈祖宫
福建省-泉州市-丰泽区-蟳埔民俗文化村
福建省-泉州市-丰泽区-蟳埔民俗文化村
福建省-泉州市-晋江市-泉州晋江国际机场-贵宾候机楼(空港商旅大厦)
被“快”裹挟
我又来“续上篇”了,起因是我机缘巧合“二刷”了大J的文章「给心累的父母:往这些方向发力,娃自会给你惊喜」。我是个看文章很少点赞和划线的人,除非打心底认同。今天我打算好好三刷的时候发现,我再一次在曾经打动过我的文字下驻足,同时也生出了一丝纳闷,为什么在写上一篇文章时我没有回忆起这些。归因之下,我想还是因为所有事情都“太快了”。

虽然这篇文章主要讲的是育儿相关,但经历了前阵子的挣扎再读,竟是读出了些人生哲理的意味。所以古人诚不我欺,万物皆通、大道至简。你别说你还真别说,焦虑和无力感来源于不确定性,低迷来源于没劲,迹迹可循。育儿可不是件最为不确定产出的事儿么,而因为人本能喜欢确定,所以这中间一直有着不可逾越和克服的障碍。于是因为没法确定,就觉得做什么都没用,无力感和没劲感便蜂拥而至。

那要如何破解呢?既然此路不通,那就换个路子——只看当下。我最近在育儿问题上有个很大的察觉,那便是我很容易“举一反三”。某些行为可能会导致什么样的后果,这些点可以瞬间在我脑子里排成长长一串,这也是我大部分的焦虑来源。“如果我没有及时修正,那么后果不堪设想”。可是我又无法立刻确认行为出现的必然性,万一只是个偶然性事件呢?何必大费周章,反而引得亲子关系紧张,从而影响了真遇事儿时的教育效果。那么便得仔细观察慢慢引导,可我哪来的时间与精力呢?所以只看当下可能是我当下的最优解。既然未来无法预测,过好当下的每一分每一秒才是实实在在能够攥在手心里的东西。

昨天我还跟朋友说起,每当我因为没有做好追高努力而内疚时,想想她的娃——不吃饭不睡觉不喝奶仍旧长得高,我的焦虑便顷刻消散(滑跪补充:没有不尊敬的意思,反而非常感激分享)。重点如果放在未来还没发生的影响,不如着眼当下,当下才是确定的。比如我好累没法陪坡坡跳绳,便不去想会影响她追高,而去想我能得到短暂的喘息和休息,这心情可不就好多了。原来自洽是这样的呀!

如果真要说一个两全其美的法子,那么还是那句老话——做好自己。关注自己,便不会过分关注孩子,从而挑三拣四,影响亲子关系不说,还破坏自己的心情;提升自己,以身作则,便能抓大放小,上梁板正下梁便也歪不到哪儿去。
昨天跟豆哥聊天,说到我有点点领悟到什么事能使我放松,且知其所以然。刷反转快的短剧、购物、看短视频,这些事都能在短时间内提供大量的新鲜感。没劲的时候可不就得寻求新鲜刺激么!(在感情里的话就会走岔路,万万不可啊!)而如果我采用更“慢”的方式休息,比如冥想(发呆)、听音乐、写博客、画画、看闲书,甚至看电影和电视剧,我都会感觉刺激不够,因为太慢了。细究之下发现,我的脑子可能已经被“惯坏了”,类似上瘾机制,是另一层面的“由奢入俭难”。想到这儿突然理解影视作品里那些惨无人道的富人们,要玩穷人的命才觉有趣,可怕又可悲。
为了改变现状,我决定从不惧怕做花时间的事情做起。写一篇博文就是有可能要花上好几天,不是我动作慢没效率,我需要接受现实,而不是逼迫自己。娃习得新技能就是要经历很多次的失败,耗费大量的时间,我要做的仍旧是接受这件事,并且尽可能地提供帮助。

踏踏实实地生活吧,人生的意义其实只在自己心中。
宝宝入睡时为什么感觉特别热?专家告诉你原因!
我们家果果两岁半,是个调皮捣蛋的小男孩。过去他睡眠非常不稳定,夜里醒来频繁,让我们全家都很操心。随着孩子慢慢长大,睡眠状况有所好转,作为父亲,我感到非常欣慰。然而有一个问题一直困扰着我们:每当果果刚入睡时,他总是感觉特别热,满头大汗,衣服湿透,尤其是脖颈那一圈汗渍明显,这让我既心疼又疑惑。
很多家长也遇到过类似情况,宝宝刚入睡时体感异常闷热甚至出汗,这到底是怎么回事?是否正常?又该如何帮助宝宝改善呢?下面我们就来详细解析宝宝入睡时发热的原因、影响以及应对方法。
1. 宝宝入睡时感觉特别热的原因
1.1 新生儿及婴幼儿体温调节机制不完善
宝宝,尤其是两三岁以下的幼儿,体温调节中枢尚未发育完善,难以像成人一样有效地通过出汗、血管扩张等方式调节体温。这使得他们在刚入睡时容易出现体温升高的情况。
1.2 活动量骤减导致体温集中释放
入睡时,宝宝从活跃状态突然进入静止状态,身体内部的新陈代谢和热量产生未能及时平衡散热,热量在体内积聚,表现为体表发热和出汗。
1.3 被褥及穿着过厚
很多家长为了怕宝宝着凉,给宝宝穿得过厚或盖太厚的被子,特别是在宝宝活动减少后,热..... [ 阅读全文 ]
原文链接: https://chenguo.life/post/%e7%9d%a1%e7%9d%80%e6%97%b6%e5%87%ba%e6%b1%97/
版权声明: 果果日记© 版权所有,转载请用明链标明本文地址
本站相关: 随机文章 | 站长微博 | 关于本站 | 联系站长 | 捐助作者
20250517
今天第一次来上海的 Blue Note 这种 Club 式的演出场地我还不是很适应。但是边喝酒边听 Jazz 才带感啊。
4/24 第一次听 Brad Mehldau,应该是 ChatGPT 给我推荐的和 Keith Jarrett 类似的音乐家。非常喜欢下面这张专辑,于是上闲鱼买黑胶。没想到一搜就搜出了 Brad Mehldau Trio 五月在国内 Blue Note 演出的票。缘分到这种程度了,不去看真不合适。立即买了两张上海的。

没想到一个月内就听上现场了,除了 Brad Mehldau,贝斯手 Christian Mcbride 简直神了。查了一下他的老师居然是 Ray Brown!还和各种我喜欢的音乐家合作过,能听上他的表演,太开心🥳。

今天又发现了一家很不错的酒店,大华长风华邑。16000 积分兑换,不到六百块钱。酒店门面比六百块钱的亚朵好了一百倍吧,房间升了一级后也是宽敞舒适,居然还有行政酒廊。窗外是个公园,景也不错。早上洗完头发现用的是 Dyson 吹风机,要知道很多洲际现在都是山寨的 Dyson 😂。直接宣布它已经取代瑞金洲际成为我上海看演出的首选。大大降低每次看演出的成本。

20250516
今天五源资本的两个投资人来拜访认识,尽管我一直在拒绝和“投资人”们聊天,但偶尔交流认识一下还行。给他们放了黑胶,也算给他们输出一些东西吧。
中午约博士吃饭,博士送了我们任天堂出的那个闹钟。做这样的周边真有意思,把游戏、角色、声音资源、玩家紧紧连结在一起。我们最近为了去美国,有一些礼物可以拿来送给其他开发者,终于也做起了周边。但是创意贫瘠,只能想到贴纸和徽章。徽章的样本到了,把这个回赠给了博士。我还是很喜欢我们 logo 的设计。

今天一直在听 Holly Cole 的专辑《Temptation》,在闲鱼刷黑胶的时候看到这张专辑的复刻,被介绍深深吸引了。作为一张爵士女声专辑,选曲居然都是 Tom Waits 的歌。Tom Waits 在我心里形象更多是荒诞不经,但是我很喜欢。昨晚在家里 HomePod 播放后没有什么感觉,今天来公司听,不得不说有了完全不同的感觉。应该不是“木耳朵”了!
深空与归途
最近尝试写一部短篇科幻小说《深空归途》,先在公众号/博客上发发,后面想做成游戏的故事线。欢迎追更,评论如果觉得哪个段落有问题,可以在评论中附上序号,我会酌情进行修改。
夜幕下,我站在太空港的观景窗前,耳边是机械臂运转的低鸣和遨游过境舰飞出的呼啸声。
舱口不远处,一群同事和家人在默默送行。广播里循环播放着温柔的出发祝福曲调:“愿星辰指引你的路”,可此刻这些声音在眼前浩瀚的星空面前格外遥远。我深呼一口气,让自己迅速平静下来,迎接即将到来的旅程。
地球经过二百年的发展与重建,从苍茫宇宙看去,宛如一颗深蓝色宝石在黑暗中闪耀。我轻抚金属墙壁,深吸一口模拟新鲜空气。脑海里盘旋着即将开始的使命:出任1108号试验型科考舰的舰长,率领精锐航天团队去探索人类尚未涉足的星域。
深蓝联邦的格局早已形成。二十一世纪末,各国政体逐渐合并,月球和火星相继建成自治管辖区后,地球各洲协商建立了统一的联邦政府。联邦的旗帜是一轮湛蓝行星与四颗星环绕的图案,象征合作与探索的精神。如今,联邦议会由各地民选代表组成,重视航天事业与科学研究,激励年轻一代投身宇宙探索事业。联邦名称“深蓝”不仅寓意地球的湛蓝色,更代表着人类对浩瀚宇宙的敬畏与好奇。从航天电梯到星际曲率航线,每一步跨越都见证了联邦精神的延续。这些年,联邦早已经历了几十年的和平建设,昔日的国家争霸几乎被人遗忘。来自不同星球的科研团队不断交流合作,大家对未知充满敬畏而非恐惧。
从我的角度看,宇宙航行已是常态,但每次出发仍令我心跳加速。曲率驱动技术早已成熟,人类的飞行梦不再遥远。从太阳系到近邻恒星,各条曲率航道犹如星际高速公路,将遥远世界紧密连接。1108号的曲率发动机能在瞬间扭曲时空,跨越数光年,将我们导入预先标定好的航线。在飞行过程中,舰载系统会精确计算能量消耗、惯性反应和周围重力扰动,实时调整曲率场参数,以确保每一次穿越都稳健而高效。
太空港内部银白色的穹顶高耸入云,大厅中央的数字显示屏和全息投影将这里装点得宛如科幻大厅。望向窗外,几艘各式飞船静静停泊:载满补给的货运飞船、披着彩绘的勘测巡航舰,以及几艘多功能客运船正待载客返航。我身着深蓝联邦的飞行制服,肩章下的名字徽章熠熠生辉,代表着联邦对我的委任与信任。走廊上柔和的灯光贯穿各个通道,自动引导车的行驶轨迹在地板上投出蓝色光带。数字浮动的显示屏不断播报航班信息,而我步履坚定地通过刷卡闸机,心头却难免涌起阵阵忐忑:毕竟,这是我第一次以舰长身份参加出航。
十年前,我还是魔都的一名航天工程系毕业生,怀揣着飞天梦想踏入科研航天行业。那时的我经常站在黄浦江畔仰望夜空,感叹黄浦江上扬帆的游艇与星际飞船的归途一样令人心驰神往。曾在深空漫游站负责推进系统的调试,耐着寂静的黑暗与零重力中偶尔突发的电磁风暴共舞;也在孤寂的星际航线中,为了躲避偶然出现的小型陨石带焦急地操控着维修无人机。如今,我已成为经验丰富的领航员,肩负起指导航线和带领团队的职责。1108号的使命将载入史册,而我,则是这段征程的舵手,心中既有无比的荣光,也难免心怀重任。
离别之前,我无意间触摸了口袋中那张旧照片:母亲在魔都外滩牵着年幼的我,背后是熠熠灯火。她常对我说:“无论走多远,你的根永远在这里。”此刻,我深吸一口气,将母亲的嘱托默念于心,为即将开始的旅程增添了一丝沉稳的力量。因此,我也默默对自己说:无论前路多么未知,都要以坚定的信念和责任心去面对,为家人和联邦交上一份满意的答卷。
舱门前的对接停机坪伸向外太空,我踏上斜梯。1108号静静矗立:舰身线条流畅动感,暗银色金属表皮在航港灯光下泛着幽冷光泽,庞大而沉稳。尾部曲率引擎散发出幽蓝微光,如同深海中的灯带;舰体上的无数光点不断闪烁,是传感器在与外部空间通信。指挥塔从中段突出,犹如玻璃宝塔般耸立,舷窗被多层特殊合金镜片包围,呈现出优雅而简洁的几何轮廓。每一个细节都在宣示先进与精密,让我赞叹人类工艺的奇迹。
进入舰舱,一股洁净而带着淡淡电子味的气息迎面扑来。内部空间开阔,浅灰白的合金墙面上泛着柔和光纹,如同无数传感器在默默监测舱内环境。舱桥正前方的观景窗可俯瞰整个太空港,周围浮空触控屏幕自动显示实时星图与飞行计划。几台自动搬运机器人有序地在过道穿行,稳稳托着货柜和仪器,将一切安排得井然有序。此刻,人工重力正在平稳作用,每个人的步伐都踏实而有力,使身为舰长的我也不自觉放松下来。
就在大厅里,一道熟悉而温和的电子提示音响起:“欢迎登陆1108号。”我向声音源微笑致意,片刻后,系统继续用温和的男声报告:“舰长好,睿思系统已在线,各项船载系统自检完毕。请安心检查各项准备。”舱桥内顿时亮起蔚蓝色光辉,悬浮的液晶触控面板自动展开,我的名字和职称被投影在主控台上空,如同低调的欢迎标牌。我轻抚前方的控制台,静静感受那沉稳而关切的声音,如同有一位经验丰富的副驾驶默默辅佐。
舱门缓缓关闭,脚下的磁悬地板微微震动,我知道,起飞倒计时已经启动。但就在我转身准备检查主控台时,身后传来孙教授那带着笑意的声音:“舰长好。”
我一愣,回头看见他那张熟悉的慈祥脸庞,眉角还挑着点顽皮。我赶紧摆摆手,笑着说:“孙老师,您别这样调侃我,哪敢当您这么喊我。”
他哈哈一笑,眼中满是欣慰:“你现在可是舰长,我这个老师要是再不给你敬个礼,那可就落伍咯。”
我低下头笑了一下,有些不好意思。在我读大学时,孙教授就是我最敬重的导师,也是我科研道路上的引路人。能被他认可,不只是荣幸,更像是一种责任的托付。
这时,一道清甜的声音打断了我们。“孙爷爷,不许给舰长添乱。”我转头看去,一位二十出头的年轻女子笑盈盈地站在身旁。她扎着利落的马尾辫,身着淡蓝色医生制服,既亲切又干练。胸前的链纹徽章闪着柔光——这位是孙雨晴,孙教授的孙女,也是1108号的船医。她俏皮地拍了拍孙教授的肩头,说:“爷爷您先把航程讲给舰长,我这就来给您验血。”孙教授无奈地笑了笑,我也随之微笑,笑声温暖了过道的气氛。我顺口称赞:“医疗设备看起来很完善。”她眨眨眼答道:“爷爷为我们准备的,可都是顶级设备。舰长您不用担心,一切都在掌控之中。”孙教授听了也忍不住点头,会心一笑道:“放心吧,我们一定会全力以赴。”孙雨晴调皮地对我眨眼:“舰长,接下来还请多多指教喽。”我点头笑答:“当然,一起为科学努力。”
我们一边走向会议舱,一边闲聊着这次任务的准备情况。孙教授低声补充道:“你知道的,这次科考任务之所以选你当舰长,不仅因为你技术全面,还因为这艘1108号是联邦星际大学最新试验型多用途探测舰,很多操作上需要经验丰富又头脑灵活的人。”
我笑笑:“你是在夸我,还是在提醒我出问题别赖你?”
他大笑:“当然是提醒你要多谢我!”
会议舱内的墙面上浮现出巨大的星图和任务计划。目标区域是银河系边缘一处未命名星域,距离地球大约63光年,理论上在曲率航线极限覆盖范围内。由于此前探测卫星在这一区域偶然接收到不规则能量脉冲,怀疑存在异常的矿物聚集带,故此才启动本次探索任务。
孙教授指着星图上某处虚拟坐标说:“我们重点关注的,就是这个叫做‘KL-077’的星系外围带状小行星区,那里的矿物组成可能与异构锂晶有关。”
我点点头:“异构锂晶,如果粗加工处理得当,是曲率引擎的备用燃料。这如果成了,我们等于是给未来远航舰打了一罐高能备用油。”
“你还记得‘探索未知文明’计划吗?”孙教授突然问道。
我轻轻嗯了一声,眼神落在星图上。那是我刚进大学时听到的第一个大计划,也是孙教授当年亲自牵头的宏大构想——通过分析星际能量脉冲与轨迹扰动寻找外星文明的可能迹象,结果持续了十五年,终因“无果而终”被迫叫停。
“这次任务,和它有关吗?”我轻声问。
孙教授沉默了几秒,最终只是淡淡道:“我们在做的是资源勘探。”
我没有继续追问。直觉告诉我,孙教授一定还有隐瞒——但或许,他不说,是为了我好。
不久,其他船员也陆续登舰。除了我们三人外,船员配置还包括一名导航员、一位工程师和一名数据官,整体人员精简但精干。我注意到,原定还有两名孙教授的助理申请随行,却被教授以“空间不足”为理由劝退。他们也许并不知情,这艘船上的货仓大半其实腾了出来,堆放的是大量生活物资和特殊设备,显然是为长期任务准备。
孙雨晴趁着准备时间,给每位成员做了初步健康检测。她操作医疗扫描臂时动作娴熟,偶尔还打趣逗笑船员。这个外表开朗的姑娘,其实和她爷爷一样固执,尤其是在她明知爷爷身体状况每况愈下的情况下,依旧默默为他开着维稳药剂,并在体检报告中悄悄修改数值——这一点,我是后来才从她眼神中读出来的。
最终检查完成后,我们进入最后一次全体任务简报会议。会议室不大,但布置得极为精细,环形透明桌面嵌入全息投影节点,正中央悬浮着目标星域的三维模拟图。随着投影旋转,我望着那个名为KL-077的星系,感觉像是注视一枚尚未被开启的硬壳星球糖果。
孙教授环顾众人,用他一贯不紧不慢的语调开场:“我们要做的,不止是找矿,更是在验证一种未来资源勘探与长期航行的模式。如果1108号这次任务成功,这类小型多用途探测舰将成未来远航先锋。”
我补充:“换句话说,我们是在为将来把‘地球经验’带向更远的地方打样。”
“说得好,”孙教授点头,“同时,我们也可能是第一批踏足某些‘不在地图上的地方’的地球人。”
我注意到他在“地图外”这几个字上用了一个特别的停顿。我不知道那是否意味着他掌握着任务之外的信息,或者说,他内心仍未真正放弃那个早年提出的“未知文明探索计划”。
但我没有追问,孙教授不是个轻易透露真相的人,而我,也学会了何时该等他说完,何时该等他说透。
“如果任务执行周期超出预期怎么办?”我问。
“按B计划执行。”孙教授答道。
我点头。B计划是延时返航备选流程,其中就包括使用飞船内置的粗加工异构锂晶反应堆,在必要时自制推进燃料。这项技术理论上可行,但需要精确控制,否则飞船引擎容易过热甚至爆燃。
简报会最后一项内容是由我负责说明紧急离舰程序。看着几个年轻船员略显紧张的表情,我故意用轻松口气说:“别紧张啊,真出了问题你们躲进逃生舱,我会留在驾驶席,一路送你们出去。”
孙教授笑着接话:“你这是玩老式英雄剧本。”
我耸耸肩:“标准流程嘛。谁让我这人最擅长的就是:喝酒不开车,开车技术好。”
会议室响起几声轻笑。气氛暂时从紧张中缓和下来。
当所有人散去做最后准备时,孙教授留了我一会儿。他把手轻轻放在投影上的星域模型上,低声说:“秋水,我知道你想问什么。”
我没有说话,只是看着他。
“这次的坐标,不是我第一次提交。”他缓缓道,“十年前,我就在某个微波信号记录中看到这片星域有异常反应。提交给联邦,没人批准。说是误报。后来我才知道,这类信号曾在另一处任务记录中出现过,结果那艘飞船——至今失联。”
我脑中一震,思绪翻涌:“你是说,我们可能不是第一批接近那个坐标的船?”
他轻轻点头:“所以我们不只是去找矿。我们去找答案。”
那一刻,我心跳略快,但嘴上仍带着玩笑:“那您这是骗我上船?”
“我只是让你看到了正确的方向。”他意味深长地说,“至于你怎么走,决定权还是你的。”
我望着窗外舰桥开始亮起的登舰指示灯,默默握紧掌心。
这不仅是一场远航,更像是一场注定会改变什么的旅程。只是,我还不知道,它会改变谁——我,教授,还是整个地球。
才不到 300?OPPO Enco Free 4 主观体验

作为一名对降噪功能有强烈需求的用户,AirPods Pro 一代一直是我的主力耳机。然而,连续两副耳机在使用约一年后均出现破音和杂音问题,这让我终于忍无可忍,决定尝试性价比更高的国产品牌耳机。正巧 4 月中旬,OPPO 发布了新款 TWS 降噪耳机 Enco Free 4,价格十分诱人,叠加多重优惠后,我在拼多多以不到 300 元的价格购入标准款。经过近一个月的使用,来聊聊我的主观感受。
外观
我入手的是标准款–水漾蓝配色,是一种淡淡的蓝色,塑料感相对明显,不如丹拿版的白色好看。电池仓整体为椭圆形,但并非鹅卵石那般圆润,侧边是平面,配对按钮就设置在侧面。表面为普通塑料材质,没有 AirPods 那样的光滑质感,因此整体看起来没那么高级,但好处是不容易留下划痕。
电池仓体积整体比 AirPods Pro 一代稍大一圈,但从参数上看,无论是耳机本体还是整体重量都略轻,两者在实际使用中差异感知并不明显。
耳机造型可能与 AirPods 略有不同,佩戴初期有些许不适,但很快就能适应(苹果用户适应能力普遍还不错),跑步时也没有掉落,不过这仅是我个人的佩戴体验。耳机两侧设有触控区域,可通过点按或滑动进行模式切换、播放控制和音量调节。
整体而言,除了颜色不太满意外,我对外观没有特别不喜欢的地方,考虑到价格,这样的做工我可以接受。


降噪
降噪是我的刚需,也是我最关注的部分。过去两三年我一直在用 AirPods Pro 一代,对其降噪效果非常满意,甚至主观上觉得比我的头戴式耳机 Sony 1000XM3 还要好(也可能是我那台 Sony 有些问题?)。但花了 1000 多买的耳机,用了一年多就出现破音和杂音,实在令人难以接受。
原本我对 Enco Free 4 没抱太大期待,毕竟售价只有区区 300 元左右,仅是 AirPods Pro 的零头。但真正戴上耳机、开启降噪的那一刻,我还是被惊到了——主观感受上,这款耳机的降噪效果竟与 AirPods Pro 一代非常接近。特别是在低频和中频部分,两者几乎不分上下;高频方面 Enco Free 稍逊一些,但 AirPods 本身在高频降噪上也不算特别出色,所以整体听感上的差距并不明显。在办公室使用时,除了人声外,其他噪音基本都能有效隔绝。
Enco Free 4 提供了 4 种噪声控制模式:降噪、自适应、通透和关闭。降噪模式下又细分为深度、中度、轻度和智能切换四个等级。在理想环境下,Enco Free 4 的降噪效果与 AirPods Pro 一代几乎相当。但在户外骑行时,可能是受风噪影响,降噪效果明显下降。有网友提到深度降噪模式下存在一个强制“实时降噪”的功能,会根据环境动态调整,且无法手动关闭,这也是我对这款耳机最不满意的地方。
自适应模式会根据环境自动在降噪与通透之间切换,比如检测到我在说话时会自动开启通透,随后再切换回降噪。我使用这一模式的次数不多。Enco Free 4 的通透模式还达不到 AirPods Pro 那种“仿佛没戴耳机”的自然效果,但大约能实现 80%-90%,日常使用没太大问题。不过在骑车时受风噪影响较大,主观通透感可能只有 40%-50%,这对体验有一定影响。
总体来看,Enco Free 4 在理想状态下具备接近 AirPods Pro 一代的降噪水平,但通透效果中规中矩,降噪与通透模式在户外的稳定性仍有待提升。

音质
我自认为木耳,对音质没有太高要求。只要音质不差、没有明显缺陷,在没有对比的情况下,我基本听不出什么区别。Enco Free 4 在我看来音质是合格的,至于它到底有多优秀或多一般,还是交给专业人士评判吧。
它默认提供四种调音风格:至臻原音、纯享人声、澎湃低音和活力动感。如果不满意,也可以手动调节均衡器。
此外,它还支持 OPPO 空间音效,并可根据耳道结构和听力特征定制音质。这两项功能我都试用了一下,确实能感受到开启与否的差异,但在日常使用中并不会频繁察觉这些变化。可能对对音质有更高要求的用户来说更具价值。
操控
如果想要更好的体验 Enco Free 4 的各项功能,需要下载“欢律”App。
打开耳机盖,长按电池仓侧面的按钮即可开始配对,和大多数耳机一样操作简单。Enco Free 4 支持同时连接两台设备,这一定程度上弥补了非苹果生态系统设备,在跨设备之间切换时的麻烦,很实用。
耳机支持多种手势操作,并可自定义,包括长按、点击和滑动等,可设置为切换模式、播放暂停、音量调节等。功能方面没有问题,但体验上还有优化空间。特别是双击或三击时,耳机反馈延迟较大,常让人怀疑自己是否没有正确触发操作。滑动调节音量的反馈也偏弱,提示音效非常小,且音量变化幅度有限,导致我常常不确定操作是否成功。
Enco Free 4 搭配 OPPO 手机还支持 AI 翻译功能,但我无法测试这一点。

小结
- 外观:做工尚可,但个人不太喜欢标准款配色;
- 降噪:效果优秀,理想状态下接近 AirPods Pro 一代,但户外稳定性差;
- 通透:表现一般,户外受风噪影响较大;
- 音质:无法判断,但对我来说足够用了;
- 操作:部分操作反馈不足,体验待改进。
总的来说,作为一款售价不到 300 元的 TWS 耳机,我是相当满意的。尤其是在降噪表现上,Enco Free 4 在同价位中可以说是相当出色。此外,做工、音质以及各种附加功能也都给得很足,完全对得起这个价位。尽管某些细节上的不足会稍微影响体验,但并不属于核心问题,我可以自适应。
C++中的 const和constexpr 比较
C++ const
与 constexpr
:真正的区别是什么?
一眼看都是定义常量。
为什么这很重要
现代 C++ 鼓励编写不可变、高效且表达力强的代码。两个关键字—const
和 constexpr
—是这一理念的核心。它们看起来很相似,但理解它们的不同语义,对于正确利用编译期与运行期行为至关重要。
高层次对比
特性 | const |
constexpr |
---|---|---|
编译期常量? | 可能 | 一定(否则编译报错) |
支持运行期? | 支持 | 支持(在需要时运行期求值) |
用于数组/模板参数? | 仅当确实是常量 | 保证可用 |
允许函数? | 仅限成员函数限定符 | 支持完整函数且可在编译期求值 |
1 声明不可变数据
const
:构造后不可变
const int runtimeConst = std::rand(); // 是 const,但不是编译期常量
当你只想禁止变量被修改,而不在意值是在编译期还是运行期确定的,const
就足够了。
constexpr
:必须在编译期已知
constexpr int arraySize = 10; int arr[arraySize]; // 始终合法
如果值需要参与要求编译期常量的上下文(如数组大小、模板参数、switch 标签等),你必须使用 constexpr
。
2 函数与方法
const
成员函数
class Widget { public: int value() const {/*…*/} // 保证不会修改 this 对象 };
它保护对象状态,但不提供编译期求值能力。
constexpr
函数
constexpr int square(int n) { return n * n; } static_assert(square(4) == 16, "编译期计算");
constexpr
函数在参数是常量表达式时可以在编译期执行,也可以在运行期使用。
3 常见陷阱
// 1. 编译通过:runtimeConst 只是 const const int runtimeConst = std::rand(); // 2. 编译失败:std::rand() 不是 constexpr constexpr int fails = std::rand();
记住:每个 constexpr
变量本质上都是 const
,但并非所有 const
都是常量表达式。
4 如何选择
- 需要强制编译期计算?使用
constexpr
- 需要不可变性但值可能在运行期确定?使用
const
- 不确定时偏向使用
constexpr
,编译器会提示你是否不合法
5 总结片段
constexpr int ctVal = 42; // 编译期常量 const int rtVal = std::rand(); // 运行期确定,但不可变
正确地选择 const
和 constexpr
能让你的 C++ 代码更安全、更高效、更具表达力。默认使用 constexpr
,当且仅当你明确知道值只能在运行期获取时才使用 const
。
C/C++编程
- C++ 教程: 用std::move来移动所有权
- C++中的 const和constexpr 比较
- 简易教程: C++的智能指针
- C++ 编程练习题: 如何合并两个二叉树?
- C++ 编程练习题 - 找出第三大的数
- C++ 编程练习题 - 最多连续的 1
- C++ 编程练习题 - 左子树叶节点之和 (深度优先+广度优先+递归)
- C++ 编程练习题 - 最多水容器 (递归)
- C++的异步编程: std::future, std::async 和 std::promise
- C编程练习题: 翻转整数位
- C++编程练习题: 找出字符串的所有大小小组合
- C/C++ 中的内存管理器(堆与栈)
- C++编程练习题: 对两单向链表求和

相关文章:
- 简易教程: C++的智能指针 C++ 智能指针教程 C++ 中的智能指针提供了自动且安全的内存管理。它们通过 RAII(资源获取即初始化)机制,帮助开发者避免内存泄漏和悬空指针的问题,确保对象在生命周期结束时被正确释放。 本教程将介绍 C++ 中三种主要的智能指针: std::unique_ptr:独占式所有权 std::shared_ptr:共享式所有权 std::weak_ptr:非拥有式弱引用 1. std::unique_ptr unique_ptr 拥有独占所有权。一个资源只能被一个...
- C++ Ranges 教程 C++20 引入了 ranges(范围),这是一个强大且优雅的抽象,用于处理序列(如数组、vector 等)。相比传统的迭代器或旧式循环,Ranges 提高了代码的可读性、可组合性和性能。 什么是 Range? 在 C++20 中,range(范围) 是一种抽象,代表一个可以迭代的元素序列。它与 views(视图) 和 actions(操作) 如过滤、转换等配合使用非常自然。...
- 被动收入之: 微博红包 今年开始重新经营我的微博帐号 drlai 收到两笔微信红包,应该是来自于官方的支持,150元(成功提现到支付宝)。虽然这不能持久,也没多少,但毕竟实现了零的突破,意义重大。 如果流量上来,内容创作者可能会接受到比较多的赞赏,这也是一个比较简单的变现方法。这也能作为一种被动收入,不过如果不是头部网红,可能杯水车薪,但如果你有好几个类似这样的,也能积少成多! 在用户中心,微博用户可以每天登陆手机微博APP打卡,获取点数和少量的红包钱(几分钱),积少成多! 微博做些小任务可获得积分和几分钱。聊胜于无。 微博的主要盈利模式 微博的主要盈利模式主要包括以下几个方面: 广告收入:微博的大部分收入来源于广告,尤其是品牌广告和效果广告。广告形式包括信息流广告(类似于推文广告)、热门话题广告、开屏广告和视频广告。品牌和企业可以利用微博庞大的用户群和社交互动来提升曝光率、推广品牌和产品。 会员服务:微博提供的VIP会员服务,用户可以支付订阅费用来享受更多的特权,比如个性化的主题、特有的表情包、私密权限设置等。这些会员服务主要面向个人用户,提升其社交体验。 直播和打赏:微博提供直播平台,用户可以通过购买虚拟礼物来支持主播,微博会从这些打赏中抽取一定比例的分成。此外,微博与内容创作者分成,通过内容付费、知识付费等形式变现。 增值服务:针对企业和大V(拥有大量粉丝的用户),微博还提供增值服务,如账号认证、粉丝数据分析、精准推送、推广和营销工具等。这些服务帮助企业提升营销效果,同时也增加了微博的收入来源。 电商和导流:微博上有大量的电商导流业务,尤其是和明星、网红的合作推广。微博用户在浏览社交内容时,可以直接跳转到商品购买链接,微博通过这种方式赚取导流佣金。 游戏联运:微博也会与一些游戏公司合作推出联合运营的游戏,微博负责推广和流量引入,用户充值或付费时,微博可以获得一部分的分成。 这些模式相结合,使得微博能够在广告市场、内容创作和电商等多个领域获利。...
- 借助AI快速开源了三个小工具: 写代码越来越像做产品了, AI 真把我宠坏了(Vibe Coding) 程序员的未来?Vibe Coding + AI 一起上! 借助 AI 快速开源了三个小工具 最近,我利用 ChatGPT-4o 和 o4-mini 快速开发并开源了三个小工具。起因其实很简单——每次想转换 YAML/JSON 或进行...
- 换了个奥迪Q5大灯花了我1000英镑 我那辆奥迪Q5 SUV今年年检没通过,原因是左前车灯坏了,需要更换。车厂告诉我,光是订购零件就要700多英镑,加上人工费,总费用得1000英镑。但没办法,如果不修,车辆年检(MOT)就过不了,车也不能上路。 MOT是英国的机动车强制性安全检测(Ministry of Transport Test)的简称。 近侧前位置灯不工作 drl/位置灯集成(4.2.1(a)(ii)) Nearside Front Position lamp not working drl/position...
- 你给SteemIt中文微信群拖后腿了么? 这年头不缺算法, 就缺数据. 这两天花了很多时间在整API上, 整完之后自己用了一下还觉得真是挺方便的. 今天就突然想看一看自己是否给大家拖后腿了, 于是调用每日中文区微信群排行榜单的API, 刷刷拿着 NodeJs 练手: 1 2 3 4 5 6...
- 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
- 剑桥网红餐厅 The Ivy Cambridge Brasserie 上周刚过40岁生日,媳妇带我去剑桥的一家网红餐厅——The Ivy Cambridge Brasserie。这家餐厅是朋友推荐的,和那家Trinity一样很有名,可惜我们在剑桥待了近10年才知道。 The Ivy Cambridge Brasserie 是剑桥市中心一家备受欢迎的网红餐厅,位于历史悠久的 Trinity Street。餐厅设计时尚典雅,融合了现代与经典元素,为食客提供了一个舒适而奢华的用餐环境。这里的菜单丰富多样,覆盖全天用餐,从早餐到晚餐以及下午茶,提供英式经典美食如松露鸡肉派、英式早餐等,也有一些国际风味的菜肴。得天独厚的位置和独特的氛围使得 The Ivy Cambridge Brasserie...
【日记】2025.05.17
1.异响
我几个星期之前,骑车就会偶发异响,每次我都停下车反复观察,仔细寻找,取掉了很多疑似的东西(比如说自行车锁),但是还是偶尔会有,弄得我十分的懵逼。
今天骑车出去的时候我又听到了这个声音,我还是不知道这个是什么声音发出来的。反向转传动系统,也没有那种声音。慢慢把车往前面推,也没有这种声音,就弄得我十分的迷茫。
在我反复的骑行,停车观察中,我总算是发现了一个新的疑似点。由于我的车摔过很多次(我也不知道是谁摔的,反正有时候放在那里就被摔了),脚撑和后轮的位置变得近了一点(导致摔车的概率又变大了)。
然后,我的脚撑就和后面的刹车碟片亲密的接触到了一起,甚至能很明显的看出,脚撑已经被磨掉了一大块(角度不是很好拍)。所以说,发出异响大概率是脚撑和碟片在一起摩的。
我一开始尝试着不然脚撑会到水平的角度,弄个45度差不多了。但是由于学校的地面是由砖块组成的,再加上一些减速带,没骑几步路就会被颠到水平的位置。
我现在只能在抬起脚撑的时候克制一下,最好让他保证他在一个已经被磨掉的位置上,不要再往上抬了。
2.螺丝?
今天去食堂吃饭的时候,余光发现了地面好像有一点异样,回头一看。等下,这块碎掉的瓷砖怎么是用螺丝固定的?这合理吗?以及,螺丝打进去,真的不会崩瓷吗?

【2025也闲谈·廿一】人工智能时代需要怎样的教育
Baby CDN Debugger
昨天晚上打完球往家走的时候,看了下手机,收到杜郎的消息说网站挂了。
这种情况一般就是cdn的问题了。因为自己手机能获取到v6的地址,晚上还回复了几条评论。现在看来基本可以确认还是cdn出问题了。
后来倦意也@说证书变成自签名了。
到家看了下果然是cdn的问题,昨天的时候cdn域名9offibrx.cnvip.akdns.top解析的地址有下面几个:
111.180.205.158 111.180.205.154 117.50.201.110 57.180.25.103 61.136.162.23
后来在群里也看到有人说站点挂了,挂在了同一个节点上111.180.205.158。
如果要解决cdn节点问题,最简单的办法就是自建解析,排除掉有问题的节点。
新建A记录,选几个可用的ip地址添加上:
新建cname记录,将www和@解析到上面的域名即可:
之后等解析生效就可以了,生效之后那些失效的节点就被排除掉了。
不过要排除到底是节点问题还是什么问题,其实最简单的就是直接通过postman之类的工具测试。在进行节点测试的时候需要再header中取消原来的host,添加新的host才能自定义host。
这个测试通过postman的确可以,但是如果要再手机上测试就麻烦了。于是,我自己做了一个工具http://cd.h4ck.org.cn,可以简单的认为是个postman网页版。
上面的错误是因为直接访问节点,服务器的证书是自签名证书,关闭证书校验就能获取数据了。如下:
预览页面可以看到具体页面信息:
证书信息:
可以看到是lecdn的自签名证书,那么现在该怎么通过这个节点测试博客呢?
直接添加自定义host:
这样一切就正常了是不是?所以,如果要测试cdn的某个节点就可以通过上面的方式测试了。
同样,对于ipv6的节点也是支持的,默认访问上面的域名会根据当前网络状态返回v4或者v6地址,如果没有切换到v6,可以通过访问https://cd6.h4ck.org.cn,直接访问v6的地址。
还是一博客的v6ip为例:
其实被waf系统拦截了:
需要注意v6的ip地址拼接采用后面的形式:https://[2408:8214:e10:7210:2e2:69ff:fe39:d706]:443 知名端口号无需添加,可以省略80 443,会自动根据协议处理。
添加域名之后就可以了:
对于cdn以及waf可以通过同样的方式测试,测试文件也是可以的。
查看资源缓存状态:
以及其他类型的错误排查也是可以的:
工具地址:
IPv4 & IPv6访问
IPv6 访问Only
注意:cd地址不支持v6服务器的探测,cd6地址支持v4以及v6服务器探测。
The post Baby CDN Debugger appeared first on obaby@mars.
C++ Ranges 教程
C++20 引入了 ranges(范围),这是一个强大且优雅的抽象,用于处理序列(如数组、vector 等)。相比传统的迭代器或旧式循环,Ranges 提高了代码的可读性、可组合性和性能。
什么是 Range?
在 C++20 中,range(范围) 是一种抽象,代表一个可以迭代的元素序列。它与 views(视图) 和 actions(操作) 如过滤、转换等配合使用非常自然。
传统循环 vs 基于 Range 的循环
#include <iostream> #include <vector> int main() { std::vector<int> v = {1, 2, 3, 4}; // 旧式循环 for (auto it = v.begin(); it != v.end(); ++it) std::cout << *it << ' '; // 基于范围的循环(C++11) for (auto x : v) std::cout << x << ' '; }
Range Views(视图)
View 是惰性的、可组合的范围操作。除非需要,一般不会复制数据。
Filter 和 Transform 示例
#include <iostream> #include <vector> #include <ranges> int main() { std::vector<int> v = {1, 2, 3, 4, 5, 6}; auto even_doubled = v | std::views::filter([](int n) { return n % 2 == 0; }) | std::views::transform([](int n) { return n * 2; }); for (int n : even_doubled) std::cout << n << ' '; // 输出:4 8 12 }
常见的 Views
View | 描述 |
---|---|
std::views::filter | 保留符合条件的元素 |
std::views::transform | 对每个元素应用函数 |
std::views::take(n) | 获取前 n 个元素 |
std::views::drop(n) | 跳过前 n 个元素 |
std::views::reverse | 反转范围 |
std::views::iota(a, b) | 生成从 a 到 b-1 的范围 |
使用 iota 和 reverse
#include <ranges> #include <iostream> int main() { for (int i : std::views::iota(1, 6) | std::views::reverse) std::cout << i << ' '; // 输出:5 4 3 2 1 }
组合视图操作
你可以使用管道符 |
流式地组合多个视图操作。
#include <vector> #include <ranges> #include <iostream> int main() { std::vector<int> v = {5, 10, 15, 20}; auto result = v | std::views::transform([](int x) { return x + 1; }) | std::views::filter([](int x) { return x % 2 == 0; }); for (int x : result) std::cout << x << ' '; // 输出:6 16 }
实用示例
1. 过滤偶数
#include <iostream> #include <vector> #include <ranges> int main() { std::vector<int> numbers = {1, 2, 3, 4, 5, 6}; auto evens = numbers | std::views::filter([](int n) { return n % 2 == 0; }); for (int n : evens) std::cout << n << ' '; // 输出:2 4 6 }
2. 将奇数翻倍
int main() { std::vector<int> numbers = {1, 2, 3, 4, 5}; auto doubled_odds = numbers | std::views::filter([](int n) { return n % 2 != 0; }) | std::views::transform([](int n) { return n * 2; }); for (int n : doubled_odds) std::cout << n << ' '; // 输出:2 6 10 }
3. 反转序列
int main() { std::vector<int> nums = {10, 20, 30}; auto reversed = nums | std::views::reverse; for (int n : reversed) std::cout << n << ' '; // 输出:30 20 10 }
4. 生成数值序列
#include <ranges> int main() { for (int i : std::views::iota(1, 6)) std::cout << i << ' '; // 输出:1 2 3 4 5 }
5. 获取前 N 个元素
int main() { auto infinite = std::views::iota(1); // 无限序列 auto first5 = infinite | std::views::take(5); for (int i : first5) std::cout << i << ' '; // 输出:1 2 3 4 5 }
6. 计算前 5 个奇数的平方和
#include <numeric> int main() { auto odd_squares = std::views::iota(1) | std::views::filter([](int x) { return x % 2 == 1; }) | std::views::transform([](int x) { return x * x; }) | std::views::take(5); int sum = std::accumulate(odd_squares.begin(), odd_squares.end(), 0); std::cout << "和 = " << sum << '\n'; // 输出:和 = 165 }
7. 判断是否所有元素都为正数
#include <ranges> #include <algorithm> #include <vector> #include <iostream> int main() { std::vector<int> nums = {1, 2, 3}; bool all_positive = std::ranges::all_of(nums, [](int n) { return n > 0; }); std::cout << std::boolalpha << all_positive << '\n'; // 输出:true }
8. 自定义管道函数
auto pipeline = [](const std::vector<int>& v) { return v | std::views::filter([](int x) { return x % 2 == 0; }) | std::views::transform([](int x) { return x * 10; }); }; int main() { std::vector<int> nums = {1, 2, 3, 4}; for (int x : pipeline(nums)) std::cout << x << ' '; // 输出:20 40 }
性能提示
- Ranges 是惰性的:仅在需要时才处理元素。
- 避免不必要的分配与复制。
- 适合处理大型数据或函数管道。
何时不适合使用 Ranges
- 在对性能极度敏感的内循环中,STL 抽象可能较慢。
- 当项目尚未迁移到 C++20。
参考资料
本文一共 415 个汉字, 你数一下对不对.
相关文章:
- 简易教程: C++的智能指针 C++ 智能指针教程 C++ 中的智能指针提供了自动且安全的内存管理。它们通过 RAII(资源获取即初始化)机制,帮助开发者避免内存泄漏和悬空指针的问题,确保对象在生命周期结束时被正确释放。 本教程将介绍 C++ 中三种主要的智能指针: std::unique_ptr:独占式所有权 std::shared_ptr:共享式所有权 std::weak_ptr:非拥有式弱引用 1. std::unique_ptr unique_ptr 拥有独占所有权。一个资源只能被一个...
- 借助AI快速开源了三个小工具: 写代码越来越像做产品了, AI 真把我宠坏了(Vibe Coding) 程序员的未来?Vibe Coding + AI 一起上! 借助 AI 快速开源了三个小工具 最近,我利用 ChatGPT-4o 和 o4-mini 快速开发并开源了三个小工具。起因其实很简单——每次想转换 YAML/JSON 或进行...
- 被动收入之: 微博红包 今年开始重新经营我的微博帐号 drlai 收到两笔微信红包,应该是来自于官方的支持,150元(成功提现到支付宝)。虽然这不能持久,也没多少,但毕竟实现了零的突破,意义重大。 如果流量上来,内容创作者可能会接受到比较多的赞赏,这也是一个比较简单的变现方法。这也能作为一种被动收入,不过如果不是头部网红,可能杯水车薪,但如果你有好几个类似这样的,也能积少成多! 在用户中心,微博用户可以每天登陆手机微博APP打卡,获取点数和少量的红包钱(几分钱),积少成多! 微博做些小任务可获得积分和几分钱。聊胜于无。 微博的主要盈利模式 微博的主要盈利模式主要包括以下几个方面: 广告收入:微博的大部分收入来源于广告,尤其是品牌广告和效果广告。广告形式包括信息流广告(类似于推文广告)、热门话题广告、开屏广告和视频广告。品牌和企业可以利用微博庞大的用户群和社交互动来提升曝光率、推广品牌和产品。 会员服务:微博提供的VIP会员服务,用户可以支付订阅费用来享受更多的特权,比如个性化的主题、特有的表情包、私密权限设置等。这些会员服务主要面向个人用户,提升其社交体验。 直播和打赏:微博提供直播平台,用户可以通过购买虚拟礼物来支持主播,微博会从这些打赏中抽取一定比例的分成。此外,微博与内容创作者分成,通过内容付费、知识付费等形式变现。 增值服务:针对企业和大V(拥有大量粉丝的用户),微博还提供增值服务,如账号认证、粉丝数据分析、精准推送、推广和营销工具等。这些服务帮助企业提升营销效果,同时也增加了微博的收入来源。 电商和导流:微博上有大量的电商导流业务,尤其是和明星、网红的合作推广。微博用户在浏览社交内容时,可以直接跳转到商品购买链接,微博通过这种方式赚取导流佣金。 游戏联运:微博也会与一些游戏公司合作推出联合运营的游戏,微博负责推广和流量引入,用户充值或付费时,微博可以获得一部分的分成。 这些模式相结合,使得微博能够在广告市场、内容创作和电商等多个领域获利。...
- 换了个奥迪Q5大灯花了我1000英镑 我那辆奥迪Q5 SUV今年年检没通过,原因是左前车灯坏了,需要更换。车厂告诉我,光是订购零件就要700多英镑,加上人工费,总费用得1000英镑。但没办法,如果不修,车辆年检(MOT)就过不了,车也不能上路。 MOT是英国的机动车强制性安全检测(Ministry of Transport Test)的简称。 近侧前位置灯不工作 drl/位置灯集成(4.2.1(a)(ii)) Nearside Front Position lamp not working drl/position...
- 试用 Linkedin (领英) 高级帐号 (Premium) Linkedin (领英) 算是比较靠谱的职业社交网站, 在上面有很多猎头, 很多知名公司的HR 无时无刻在招人. 特别领英在被微软收购之后, 名气就变得大了许多. 领英是免费使用的, 但也有付费用户, 有给猎头的, 也有给想找工作的. 价格并不便宜, 对于想找工作的 Job...
- 步步高学生电脑上 Basic 编程语言 peek 用法示例 步步高学生电脑 是8位FC机的经典之作.它上面的BASIC有三个版本 1.0, 2.0 和 2.1 2.1 版本有个在线帮助,实际上是 help.cmd 1.0 是用 Esc 键退回到 DOS 的,...
- 《Steem 指南》之 justyy 在线工具与 API 系列 – Discord 机器人 Discord 聊天频道 Discord 原本是给游戏设计的, 但由于其功能多, 接口开放能力强, 使用的用户越来越多. 我们CN区也有一个Discord 频道, 加入地址为: https://discord.gg/7ctT3Xt 在网页里就可以加入 cnsteem 的大家庭了, 当然也可以下载手机APP或者桌面程序来加入...
- 你给SteemIt中文微信群拖后腿了么? 这年头不缺算法, 就缺数据. 这两天花了很多时间在整API上, 整完之后自己用了一下还觉得真是挺方便的. 今天就突然想看一看自己是否给大家拖后腿了, 于是调用每日中文区微信群排行榜单的API, 刷刷拿着 NodeJs 练手: 1 2 3 4 5 6...
“渝”不掩瑕——在联合队“让2追3”后
家里NAS成生产力工具了?Image Matting部署手把手教学!
亲爱的粉丝朋友们好啊!今天熊猫又来介绍好玩有趣的Docker项目了,喜欢的记得点个关注哦!
引言
自从用上了NAS,什么都想自部署,最早入坑NAS的时候其实这个想法并没有这么强烈,毕竟那时候用的NAS处理器确实是不太行,稍微部署一点大型项目,整个系统流畅度明显下滑,为了一个项目去拖垮整个系统的流畅度多少就有点不划算了。
但是,咱们有Z423了啊,AMD Ryzen7 5825U作为NAS处理器来说非常奢侈了,也是目前消费级NAS中的CPU天花板,这个记录都已经保持了两年了。既然有这么强的芯,那自然要干符合它这颗芯的事儿。
熊猫的本职工作是电商运营,而作为一个电商运营除了文件存储和协作能用到NAS,其他需要用到NAS的地方很少,根据工作过程中的需求,熊猫发现了这么一个项目—Imgae matting,一款能在线抠图的项目。
项目部署
Imgae matting的抠图是基于本地进行,镜像大小来到了7.7GB,这在熊猫介绍过的镜像中可以说是数一数二了,毕竟即便是Mac的Docker镜像也不过2GB多一点,所以整个下载过程需要耐心等待。
如果需要无法拉取或者镜像拉取途中断链的问题,可以检查一下当前的加速源延迟以及是否稳定,熊猫推荐使用docker.1ms.run这个镜像地址,设置也非常简单。打开极空间的Docker,在镜像中点击仓库,在仓库界面的右上角有个设置,这里就能看到加速器配置的位置了。
耐心等待镜像下载完成之后我们在本地镜像中找到刚刚下载的Imgae matting,双击创建容器,这里只需要映射端口8000即可,同时记得关闭性能限制选项。
这时候通过浏览器输入极空间IP地址:8000端口号就能访问该项目了。
项目使用
整个界面非常之简洁,可点击的位置仅有三处,分别是文件选择、抠图模式选择以及上传按钮。
模式选项这里点开能分为了通用和人物两个选项, 顾名思义,通用适用于绝大部分场景抠图或者产品抠图,而人物则是专门针对人体进行抠图,会优先识别图中的人像。
电商中经常会要求用到白底图,这里熊猫上传了一张极空间Q4的包装图,可以看到他会先识别图中的主体物,随后创建蒙版,最后生成我们需要的白底图,整体轮廓扣得还是非常不错的,完全是可用的状态。
人像抠图最麻烦的就是头发丝,即便是人工去进行头发丝抠像也非常麻烦。实测效果还是非常不错的,能看到人物发丝尾部部分也做了非常好的保留,通过蒙版还能看到发丝细节也很到位。
写在最后
项目非常不错,用来应对临时需要的白底图需求完全足够了,不过项目的镜像实在是大,但好在效果还是不错的,如果有需求还是可以尝试部署。
以上便是本次分享的全部内容了,如果你觉得还算有趣或者对你有所帮助,不妨点赞收藏,最后也希望能得到你的关注,咱们下期见!
我的 WordPress 网站安装了哪些插件(2025.06)
WordPress 插件是扩展网站功能的强大工具,用户无需编写代码即可轻松添加各种特性和功能。插件种类繁多,包括 SEO 优化、社交分享、电子商务、网站安全等,用户可以根据需求自由选择和安装,从而显著提升网站的灵活性与可操作性。除了市面上的成熟插件包,我们还可以通过添加增强扩展(如纯代码形式的插件)来进一步扩展功能与性能,例如官方曾经发布的对象存储插件 object-cache.php
。
这些丰富的插件和主题构成了 WordPress 强大的生态系统,正是这一生态让 WordPress 成为全球最受欢迎的建站平台,魅力无可比拟。那么,关于必备插件的推荐,实际上并没有一个固定答案。因为当前的 WordPress 核心程序已经非常完善,从安全性、样式、编辑器等方面都能满足大多数用户的需求。加之海量的主题市场,许多曾经流行的个性功能已经直接集成到系统和主题中了,比如懒加载、灯箱效果、缓存功能等。
因此,我建议你根据实际需求选择和安装插件,这不仅可以节省精力和时间、提高性能,还能避免安装恶意插件导致系统崩溃。如果非要说有哪些插件是必备的,那大概是 Akismet
和 你好多莉
吧。毕竟,当你完成 WordPress 的安装时,它们已经默默地存在了,哈哈。
原文链接: https://www.shephe.com/website/wordpress-plugin-recommendations/
版权声明: Kevin's Space 版权所有,转载请用明链标明本文地址
本站相关: 随机文章 | 站长微博 | 关于本站 | 联系站长 | 捐助作者
拼多多的便宜货不行啊——长安CS55再换碳罐电磁阀
上篇博文说到五一在去福建平潭的途中,长安CS55亮发动机故障灯。后续是我一路开到平潭,3号一早去4S检查没发现什么大问题,又一路亮着故障灯开回家直到今天。
日本办卡指南 2.0:初来乍到,日本信用卡推荐
写在前面
本文作者移居东京五年,根据自身经验撰写而成,欢迎在Twitter上关注他:https://twitter.com/SimonJP404。
同时也欢迎各位移步Telegram群交流:https://t.me/JapanChats。
本文撰写时间为2023/4/22,更新于2025/5/14,共计5348个字,大约需要阅读时间在12分钟。本文起初只针对初来日本的人群,但随着本人玩卡的经历提升,目前也补充了一些高端卡。文章具有时效性,如果和实际情况有出入,还请谅解。
基础信用卡篇(国内卡)
基础信用卡存在的必要性:
初来日本,无外乎地址登录、办理手机卡、银行卡。地址登录需要一个日本手机号,而申请一个日本手机号则需要一张信用卡,中国/日本的信用卡均可。
如果你没有任何信用卡,自然也有其它的办法解决(比如先填写朋友的日后再修改);但如果能携带一张国内的外标信用卡入境,就会给自己节省不少时间。
国内办什么卡:
一般来说,JCB/VISA/MASTER均可。如果考虑到卡片的权益,推荐中国银行的JCB招财猫,理由是该卡提供人民币/日元双币结算,日本使用时可以避免由于币种兑换而产生的汇兑风险。
JCB金卡/白金卡用户可以享用JCB在日本各主要机场为您提供的专用贵宾休息厅,成田/羽田/大阪/新千岁均有提供,环境不错,值得一试。
基础储蓄卡存在的必要性:
在储蓄卡上存好人民币,在日本ATM可按照当日银联汇率取现日元。如果你有此需求,不妨准备一张。
国内办什么卡:
国内几大银行的储蓄卡基本上境外取现均有手续费,但很多国内小型银行境外取现免收手续费,比如秦皇岛银行(免费)、兰州银行(每月前5笔免费)、桂林银行(每年前8笔免费, 超出每笔15元)。
具体可以参考该网站:https://www.kylc.com/bank/upatmcharge.html
四大银行也有一些每月首笔取现免费的卡片,比如莫奈万事达等,可以自行查询了解。
日本卡基础篇(储蓄卡/銀行口座)
关于开卡陪同翻译问题
ゆうちょ銀行由于是外国人必备的基础卡,因此门槛是最低的,基本都可以陪同翻译;其它银行根据工作人员的心情,有可能拒绝陪同翻译,但也可能同意。比如三井住友银行新宿店拒绝陪同翻译,要求只能本人办卡的情况下,你可以尝试前往涉谷的三井住友再次尝试。
ゆうちょ銀行 デビットカード

每个刚来日本的人必办的储蓄卡,无任何门槛,理论上随到随办。你也可以选择网上申请,没有存折,需要等待一周左右。但请注意,在网上申请是存在拒绝办理的情况的,如果遇到可以直接前往线下网点。
目前ゆうちょ銀行发行的卡片为VISAデビットカード,即带有VISA功能的储蓄卡,多数场合可替代信用卡进行消费。
准备工作
日本电话号码、在留卡、学生证/工作证明、护照、印章
官方参考:https://www.jp-bank.japanpost.jp/tetuzuki/honnin/tzk_hn_kaisetu.html
注意事项
- 注意工作时间:周一至周五:9:00~15:00(一般情况)
- 请到学校/公司/住址的附近网点进行办理,其它地点可能因“不在本地区范围”被拒绝
- 在日本生活不满半年的,办理下来的卡会标注“非居住者”,根据ゆうちょ銀行最新政策,非居住者在转账时需要额外付7500日元手续费
- 如果有工作,或者介意手续费,可在办理时说明自己工作/打工,根据外汇管理规定的解释当中,如果你有工作,也可能被认定为居住者,这样一般情况下会取消手续费
- 请不要使用ゆうちょ銀行进行海外送金,因为只接受美元入账,所以手续费高昂。
三井住友銀行 デビットカード

由于ゆうちょ銀行海外送金高额的手续费,以及体验感极差的服务,所以有必要申请一张ゆうちょ銀行以外的储蓄卡。
三井住友发行的储蓄卡也为VISAデビットカード,可在手机APP上申请,亦或线下办理。办理过程同时可申请信用卡,但下卡几率不大。
此外,三井住友最新推出了Olive三合一卡,集积分卡、信用卡、储蓄卡为一体,在711便利店等指定商户消费积分倍率更高,推荐有条件的朋友们申请。
准备工作
日本电话号码、在留卡、学生证/工作证明/内定通知书/入学许可、护照、印章
注意事项
- 实际上三井住友銀行没有“在日未满半年不准开卡”的相关规定,如果工作人员以此为理由拒绝你,多数情况是日语沟通较为困难情况下的说辞
- 为了避免日语尴尬的局面,你可以先尝试在线上申请,如果没有通过在考虑线下申请
- 线下办理请熟记相关词汇:預金口座、身分証明書、在留カード、パスポート、鑑、通帳、暗証番号、キャッシュカード、郵送等词汇
三菱UFJ銀行 デビットカード

同样是大手银行,建议初到日本选择三菱或者三井之一办理一张储蓄卡。办理过程同时可申请信用卡,但如果你是语言学校的学生,下卡几率不大。(不过都是玄学)
准备工作
日本电话号码、在留卡、学生证/工作证明、护照、印章(可能不需要)
注意事项
- UFJ的储蓄卡申请对于外国人只能线下申请,网上申请仅限日本国籍。
- 办理时请提前预约附近的银行,原因和ゆうちょ銀行同理。
- 线下开通流程中,会要求客户在テレビ窓口里使用电脑和客服远程对话,确认用户信息和开户。
みずほ銀行
三井住友、三菱之后的第三大银行。该银行以“系统瘫痪”而享誉全球,拥有此卡后,你可能经常享受ATM故障、入金延迟、等待ATM上班等高级服务。
该银行口座也提供网上开通渠道,但和有日本国籍的人士有所区别,需要邮送材料(自己打印也可),并且需要开具住民票。因此如果能选择的话,请先优先考虑三井住友、三菱的储蓄卡。
*以上三大银行(三井住友、三菱、みずほ銀行)开户时,请准备回答“已经有了ゆうちょ账户为什么还要开新口座”的问题答案,该问题在日语不好的情况下出现频率异常高。回答的核心思路是“没了你家的卡我的生活就会受到极大影响”。
WISE デビットカード

可以在世界各地使用的储蓄卡,开通后可拥有各国银行口座。还可以发行无限的虚拟银行卡,在网购的时候提高安全性。
什么人建议办
- 如果平时有经常在美国、欧洲等产品网站上购买/参与众筹的需求,那么强烈推荐办一张。
- 在日本工作的人,如果有将日元兑换成人民币需求可以办理,可以直接打到指定支付宝账户。
- 如果你经常进行海外旅游亦或者货币之间的兑换,可以办理。
注意事项
- 日本发行的卡片为万事达,Wise日本截止 2025/5 仍不支持绑定Apple Pay。
- 实体卡片需要付费,不付费也可以使用虚拟卡片消费。
- 该卡片的余额充值需要绑定一张日本的储蓄卡。
同样类型的还有Revolut卡,可利用此卡充值来完成一些信用卡的刷卡活动,和Wise大同小异不再赘述。
邀请链接
Revolut デビットカード

和Wise一样,可以在世界各地使用的储蓄卡,但在日本的版本有所阉割,只提供日元的本地账号,其他货币只能走 SWIFT 入金。同样可以发行虚拟银行卡,在 2025 年还支持绑定了 Apple Pay,在功能上更进一步。
什么人建议办
- 如果平时有经常在美国、欧洲等产品网站上购买/参与众筹的需求,那么强烈推荐办一张。
- 在日本工作的人,如果有将日元兑换成人民币需求可以办理,可以直接打到指定支付宝账户。
- 如果你经常进行海外旅游亦或者货币之间的兑换,可以办理。
注意事项
- 日本发行的卡片为Visa,目前可以绑定Apple Pay。
- 实体卡的基础版本无需付费,但可以加钱升级金属卡片,为月费订阅制
- 该卡片的余额充值需要绑定一张日本的储蓄卡。
邀请链接
NEOBANK 住信SBIネット銀行

如果来日后申请了个人番号卡,可以考虑网络银行口座的开设。SBI银行可以网上开户,并且最快当天即可批准。
SBI的优势是每月5次免费的便利店取款/转账到他行的机会,并且根据你的账户等级的提升,提供更多的免费次数。此外,该卡可以绑定Apple Pay进行消费,并且可以无卡存款。
请注意,新生SBI和住信SBI是两个不同的银行,都可以尝试开户。
JAL Pay以及ANA Pay

只有虚拟版本的预付卡,发行公司为日本的两大航空公司,适合常乘坐JAL或者ANA、希望积攒里程的用户,可以绑定 Apple Pay。支持多种充值方式:信用卡、Apple Pay、银行储蓄卡、里程充值等。
AU銀行
该银行由KDDI和三菱UFJ共同出资建立,因此与三菱银行无缝连接,转账免费。也可以通过网上直接申请,申请时仅需提供運転免許証・個人番号カード・在留カード中的一个即可。
楽天銀行、PayPay銀行(旧ジャパンネット銀行)
即使生活居住半年后也很难申请的口座,相对来说这两家的信用卡比较好申请。
日本卡进阶篇(信用卡)
网传的一些说法
- 申请一张信用卡后如果被拒,不要连续申请,连续申请也会被拒 ×
以网上的多人经验和自身经验来看,如果你申请三井的信用卡被拒,那么连续申请三井的其它信用卡几乎一定被拒;但是被拒后申请其它银行/类型的信用卡,仍然可以审核通过。
- 申请失败后半年后再尝试申请 √
同一类型的卡被拒后请半年以上再尝试申请,连续申请同类型卡片容易影响信誉度。
JCB カード W

クレジットカード 人気ランキング 第三位
个人最推荐的信用卡,没有之一。因为目前看来这是最容易下卡的信用卡,即便入境第一天也可下卡。
由JCB直接发行的信用卡,终身免年费,星巴克、亚马逊等指定店铺消费,积分最高20倍。刷卡后有即时通知(很多卡没有即时通知,消费后过几天才显示)。最重要的是,JCB カード W作为几乎最容易下卡的信用卡,可以帮助你在日本社会建立初步的信用记录。
如果你是学生,请直接在申请时填写说收入为0,卡片固定额度为10万日元。
邀请链接
JAL 学生信用卡

推荐在日留学生都办一张JAL的学生信用卡,大学/大学院/专门学生均可下卡,语言学校不可🙅。
该卡由UFJ三菱发行,对留学生超级友好,下卡即送2000里程,每年第一次乘机再送1000里程,毕业后还送2000里程,TOEFL 等英语考试通过还送500里程,下卡后消费5万再送1000里程(限时活动),平时消费也可积攒航空里程。
使用本卡里程兑换机票的所需要的里程为通常的5折:比如東京ー福岡,单程机票需要8000里程,持有本卡仅需4000里程,也就是开卡就可以免费兑换一张東京ー福岡的机票。
楽天カード

クレジットカード 人気ランキング 第七位
相对于学生比较友好的信用卡,有专门的学生卡。无年费,基础返点1%,开卡送积分(活动时最高送1万积分),乐天购物两倍积分。
不过乐天的信用卡盗刷情况似乎比较严重(整个日本的信用卡都存在此现象),并且没有消费的即时通知。初期额度一般也是10万日元。
通过邀请链接注册积分增多:https://r10.to/hPPr7J?openExternalBrowser=1
メルカード

日本“闲鱼”煤炉发行的信用卡,最高额度50万。该卡对于刚来日本的人相对友好,每月都有机会调整额度,在煤炉购物有更倍率高积分。
该卡有永久1%的积分返现,积分可以抵消欠款,还款当月还可以提前还款。卡面也是无信息设计,更加安全。消费即时通知,邮件加APP推送。
邀请码
使用 NUZUMR 注册,你我各得500积分,活动时各得注册1500积分。
エポスカード(EPOS)

クレジットカード 人気ランキング 第四位
24小时即时审查,下卡非常迅速。
EPOS的特点是卡面有很多种选择,并且非常多的动漫卡面。同时,此卡也是最容易升级金卡的信用卡,一年消费50万以上后就可收到金卡邀请,且无年费。此外该卡是即时通知(需要开启),消费后邮件和APP会立即推送消费信息。
EPOS的积分可兑换为亚马逊礼品卡等,积分使用范围上还是非常广泛的。
邀请链接(紹介番号23041977605)
PayPayカード

该卡审核比较迷,一方面有刚来日本就下卡的例子,另一方面也有在日本稳定工作多年被秒拒的例子。
该卡的特点卡面设计比较优秀(但实际卡片质量很差),无卡号和CVV的设计,并且可以和Paypay联动使用,在Yahoo!ショッピング购物时使用增加积分返现倍率,在使用Paypay时无需充值即可直接使用。该卡即时通知好像只有在大额消费时有效,小额不通知。
如果你对该信用卡比较感兴趣,可以尝试申请一次,填写资料比较简答,也无需提供在留卡信息。最快五分钟审核下卡,下卡后积分即刻到账。
Amazonカード

此卡对学生党友好,很多入境1个月的学生顺利下卡。请注意,学生申请时收入请填写0。
发卡行为三井住友,开卡礼送5000-8000积分,加入亚马逊会员后,在亚马逊购物返点数增加,免年费。
三井住友信用卡
他家的信用卡常年占据信用卡排行榜前三的位置,最新推出的Olive卡片更是受到日本人的追捧。但是对于刚入境的朋友来说,不一定能下卡。因此更推荐各位朋友半年以后再尝试申请,所以在此不再赘述。
SAISON 美国运通セゾン・アメリカン・エキスプレス・カード

使用QUICPAY固定返现2%,积分永久保留,首年无年费,消费一次下一年免年费。
比较好下卡,需要美国运通的朋友可以尝试申请。
邀请链接
日本卡高阶篇(信用卡)
如果你有此需求的话,应该已经在日本长住,并且有稳定的收入来源了。
你可以参考日本信用卡网站的排名,随心所欲的申请自己想要的信用卡了。
クレジットカード 総合ランキング
https://life.oricon.co.jp/rank-credit-card/
SAISON 美国运通 セゾンプラチナ・アメリカン・エキスプレス®︎・カード

SAISON家的白金卡,是我目前在使用的高端卡之一。有硬性年费,每年 22000 日元,从 25 年 6 月开始涨价。优点是日本日常积分 1.5 倍,海外消费积分 2 倍,并且可以永久储存(他家普卡也是永久积分),JAL积分最大 1.125 倍。
附带一张满血的PP卡,但目前没有电子版本,将在 6 月会费涨价后支持该功能。24時間/年中無休的客户支持,可以帮你订各种票或者房间。海外旅行最高保险 1 亿日元,在国际飞行的时候,可以免费邮寄行李到家。
日本股票推荐

顺带一提,如果你在办理完日本信用卡后,也开始对投资日股或美股感兴趣,不妨试试 moomoo(富途牛牛海外版)。它是目前日本市场上,目前为止最好用的APP,同时也是对中文用户最有好的APP。
他的主要优势有:
- 开户无需邮寄书类资料,全程网上办理;24小时中日文客服
- app优化超丝滑,吊打日本厂商,界面支持中文
- 业界最低手续费,新nisa口座美股手续费0元,综合口座是他社1/6
- 支持美股24小时取引,支持自动下单
- 引入AI分析,支持股票预测等功能;提供定期华人股票讲座
moomoo支持多市场交易,界面简单(吊打SBI和乐天证券),关键是开户门槛低、支持中文服务,对于刚入门的投资者也非常友好。在日本生活的同时合理配置资产,也是一种不错的理财方式。
通过我的邀请链接你能获得
1.入金1万日元(无需买股保持30天),必得美国股票一株 2.入金30万元(无需买股保持30天),必得美国股票四株 3.美股手续费2个月免费 4.500日元现金奖励
美国股票为抽选:特斯拉,苹果,英伟达,meta等。
邀请链接
写在最后
信用卡的审核制度各家不同,标准也众说纷纭。笔者在闲暇之余撰写此文,只希望对刚来日本的朋友能所有帮助。如果你由于来日不久,无法下卡也无需气馁,可以暂时使用国内的信用卡、亦或者是Bybit、Infini 等发行的U卡代替消费。
本文内置了信用卡的邀请链接,如果在申请信用卡的时候如若能使用我的邀请链接,笔者自当感激不尽。
更新时间:2025年5月14日
楠溪江自驾六天,花费1200元,总结推荐
游戏组件的一生: 从加载到上屏
1. 小游戏容器与游戏引擎
小游戏容器的设计上可以理解是一种特化版的 WebView,渲染上下文上裁剪了多余的 DOM Element,只保留 Canvas;而脚本引擎上则 JS Polyfill 或是容器 Binding 的方式去对齐 ECMA-262 的标准。此外容器还需要提供 Script 加载与执行、WASM 等新标准处理、以及 Audio 与 Video 等多媒体能力,这些能力都将通过 JSBinding 的形式,将接口包装成 BOM 的形式给到 JS 侧使用。
小游戏容器之所以要设计成符合 Web 标准的容器,是为了兼容不同游戏引擎。这种设计理念的本质是将底层平台能力标准化、通用化,把碎片化的硬件、系统能力屏蔽在容器内部,只向上提供一套与浏览器 BOM、DOM 类似的编程模型,使得各类游戏引擎(如 Cocos、Egret、Laya、Unity WebGL)都可以以 Web 的运行环境的方式接入,避免每个引擎都去适配各家平台的原生能力。这实际上是 WebView 本地化、轻量化的一次再演化,小游戏容器约等于一个轻量浏览器内核。
这个过程中容器负责“平台标准化”,引擎负责“内容生态”,比如
小游戏容器的职责:
- 提供统一的渲染上下文(Canvas/WebGL)。
- 提供统一的脚本运行时(JS/WASM)。
- 提供标准化的输入、音频、视频、多媒体 API。
- 提供网络、存储、支付、分享、广告等平台能力封装。
- 对接安全沙箱、权限管理、性能隔离等系统层。
游戏引擎的职责:
- 提供高层抽象的场景管理、物理引擎、动画、资源管理。
- 提供开发者友好的编辑器、调试工具链。
- 提供跨平台的组件化开发范式(UI、骨骼动画、粒子系统等)。
- 管理游戏生命周期、状态同步、渲染调度。
接下来,以 Cocos 引擎的渲染管线为例,介绍小游戏容器对资源的加载流程以及对游戏组件的渲染流程。
2. 游戏引擎中的三大循环
游戏引擎的渲染管线由三大循环进行驱动,分别是渲染循环、事件循环和游戏循环,以下是梳理出来的三大循环的全景图:

2.1 渲染循环 RenderLoop
首先是渲染循环,它的主流程如下图所示:

整个渲染循环由系统的 Vsync 信号驱动,iOS 由 CADisplayLink 发起,通过应用进程的主线程的 RunLoop 来执行渲染任务,具备一定的帧率控制能力,如 iOS 下可以设定 30/60/90/120 FPS。
在引擎侧,核心流程做了 3 件事:
glFlush
清空 GL 缓冲指令:将上帧未执行的 OpenGL 指令强制刷新,确保显存与帧缓区数据一致,防止由于指令堆积导致的“帧延迟”或“卡顿”。UpdateScheduler
异步任务调度:调度当前帧需要触发的异步任务,例如音频回调、网络事件响应等。保证非渲染逻辑(如数据更新)与渲染解耦,提高主线程并发能力。Tick
驱动 JS 层逻辑:每帧通过 Binding 固定调用 JS 侧 Tick 方法,执行动画、状态更新等与渲染相关的逻辑。从而实现逻辑层与渲染层的解耦,增强跨平台的适配能力。
在容器侧,iOS 通过 CAEAGLayer
处理 GL 指令上屏,主要有两个步骤:
glBindRenderbuffer
绑定 RenderBuffer:将当前帧渲染结果绑定至 RenderBuffer,作为上屏缓冲区。PresentRenderbuffer
显示输出:将 RenderBuffer 内容呈现至屏幕,实现用户可见的最终画面。
在 iOS 渲染体系中,最终负责显示的组件是 CAEAGLLayer。它作为 Layer 树(Layer Tree) 的一部分,直接引用共享内存中的渲染缓冲区(Renderbuffer 数据)。与此同时,系统的 Compositor(合成器) 会将 CAEAGLLayer 的内容与其他 UI 元素(如 UIKit、SwiftUI)进行统一合成,最终输出到屏幕。
在每一帧的 Tick 任务 中,JavaScript 会与游戏引擎协作,生成本帧所需的 Framebuffer(详见 3.5 至 3.10 节)。此时,Core Animation 与 OpenGL ES 通过共享渲染缓冲区实现数据同步。这意味着,OpenGL 渲染结果实质上只是一块 Layer 树中的画布,最终仍需与系统 UI 层级一同被合成为最终显示图像。

当然,本文中涉及的小游戏容器仅使用了 OpenGL 作为渲染后端,随着 Metal、Vulkan 等新一代图形 API 的兴起,RenderBuffer 绑定与上屏流程将更倾向“并行渲染 + 异步上屏”,提升高帧率下的流畅度与低延迟体验。 这个渲染循环的逻辑是同步执行的,因此如果将帧率设置为 60 FPS 时,以上所说的一帧的逻辑没有在 16.6ms 内运行完,便会导致 Jank。

比如在这个 Bad case 中,运行 Tick 任务时,在主线程的 JS 执行了 136ms,就导致了游戏动画卡顿:

因此,为了保证游戏运行的流程性,意味着我们需要不停地打磨性能,尽可能降低同步任务的耗时。性能优化一定要借助 Profiling 工具,以下是一些常用的工具:
- Xcode GPU Frame Debugger:针对 iOS 平台的图形调试工具,能够深入分析 渲染管线级别的性能瓶颈,尤其适合 Metal 与 OpenGL ES 开发场景。
- RenderDoc:业界主流的跨平台图形调试工具,支持捕捉帧数据,分析渲染管线各阶段的资源与性能瓶颈,适用于 OpenGL、Vulkan、DirectX 等 API。
- inspector.js:Web 端可以使用,便于在 WebGL 场景下分析 DrawCall、着色器与资源绑定等性能数据。
- Mali offline shader compiler:https://zhuanlan.zhihu.com/p/161761815,适用于 ARM Mali GPU 的离线着色器编译与分析工具,可用于评估 Shader 复杂度与指令执行成本,优化移动端渲染性能。
- Snapdragon Profiler: 抓帧工具,支持统计 Heavy DrawCall 与 Overdraw,帮助识别渲染瓶颈与冗余计算。
2.2 事件循环 EventLoop
我们向下,从 Tick 任务进入到第二个循环 —— 事件循环。

因为小游戏容器不是 WebView,只有一个 JS 引擎,因此我们需要实现一个事件循环机制,驱动 JS 执行(不一定完全对齐浏览器标准,只需要满足容器要求即可)。由图可见,主要包括 3 个任务:
- 消费 timer 等宏任务:处理通过 setTimeout、setInterval 等方式注册的定时任务,确保定时逻辑的正确触发。
- 消费 rAF 任务:这一步主要是为了驱动 GameLoop 逻辑,游戏主循环通常挂载于 rAF 回调中,用于逐帧更新渲染与逻辑。
- 清空当前帧的 Commands:执行渲染命令、界面更新等待处理的指令,完成本帧渲染周期。
这里重点说一下 rAF 的实现。在早期,rAF 通过 setTimeout(0) 来模拟实现,链路如下:

可以发现这里是存在问题的:
- 不合规范:是使用 setTimeout 0 模拟的,并非 vsync 直接驱动。
- 链路太长:Native 来维护 Timer 队列,等待 vsync 信号消费完之后再回调给 JS。
后来按照 WHATWG 标准进行了重构,

优点如下:
- 标准化:vsync 后直接触发 JS 的调用
- 开销小:JS 维护 Timers 队列,移除原生层中转的 JSBinding 调用开销。
可见渲染性能的优化,关乎在很多实现的细节上,需要挖掘与打磨。
最终,通过以上的事件循环,容器能够维持 JS 引擎与渲染系统之间的协同工作,实现游戏的持续运行与更新。
2.3 游戏循环 GameLoop
这一部分展开来说就是第 3 章——游戏组件的一生:

在展开画卷之前,介绍一下传统的使用 OpenGL 作为渲染后端的小游戏容器的渲染流程:

首先是资源加载,涉及到两种完全不同的资源处理——脚本资源和静态资源。脚本资源由 JS Runtime 进行处理,而静态资源则针对不同类型的文件又有各自的处理方案——包括图片、字体、音频、视频、还有比较特殊的骨骼动画。因为本文主要说渲染,就不展开介绍资源加载流程了。
之后,这些资源被游戏引擎渲染关键处理,由 JS 驱动生成 WebGL 指令,通过 JS Binding 最终调用到 C++ 或 Native 侧的 OpenGL 指令集上 —— WebGL 是 OpenGL 的子集,因此可以一一对应。

这个过程往往会出现很多渲染瓶颈,因此其中会涉及到很多优化项。我们根据硬件资源来看,主要关注 CPU、GPU 和带宽。而在当下移动端硬件资源并不富裕的场景下,对于游戏的优化,本质上变成了“平衡的艺术” —— 我们需要去平衡 CPU、GPU 和带宽资源。即如果瓶颈不能消灭,就需要转移瓶颈,比如经常见的是从 CPU 移到 GPU —— 使用 Computer Shader、GPU skinning、Animation Bake、GPU particles 等等。
对于 CPU,这是最常见的瓶颈。这里不展开说游戏业务侧的优化项(减少 DrawCall 的 Culling、Batching 这些),而是从容器侧提供一些优化思路。
- 比如上面的 JS Binding 调用可能会导致瓶颈,那我们可能会去做合批,从两方面去实现,一方面是调用次数合批,做 CommandBuffer 增加吞吐;另一方面可以做调用实现的合并,比如提供 GFX 高级图形库。
- 还比如一些 JS 同步任务会阻塞主线程,那么就把计算密集型的任务转到 Native 去做。
- 比如 JS 自身解释执行的执行效率,那就想办法用 JIT 或者 WASM。
- 再比如 GC 上,也有一些优化的地方。
对于 GPU,如果产生瓶颈了,一般是由于 Fragment Shader 指令太复杂,或者 Vertex Buffer 过大,比如 3D 渲染中的三角形面数超过阈值,一般移动端场景下需要控制在 50 万面到 150 万面之间。另外,高 Overdraw 也会导致 GPU 多做很多无用功。
对于带宽瓶颈,则主要是靠压缩纹理(桌面端还可以用延迟渲染和后处理技术)。在网上有这么一个结论:
如果你的游戏跑 60 帧,那么每帧可用的带宽将会是 21024/60 = 34M, 假设你的 GBuffer 的分辨率是 1280 \ 1080,那么写一次 GBuffer(RGBA 4 个字节)的带宽大小为: 12801080\4/1024/1024 = 5.2M, 如果 3 张则是 15.6M.
考虑到一般你的游戏都会有 Overdraw, 假设 Overdraw 比较合理在 1.5 左右,那么这样的带宽消耗就能占到 15.6 * 1.5 = 23.4 M。 考虑到你还要渲染场景,ui 和角色等内容,这样很容易就超过了每秒 34M 的推荐带宽占用。
下图是一个常见的同步渲染管线:
- 应用层提供顶点数据
- 构建顶点着色器对顶点进行标准化
- 图元装配构建几何图元
- 光栅化阶段,将图元离散化为片元,每个片元对应屏幕上的像素区域
- 片元着色器对每个片元执行纹理采样、颜色计算、雾效等像素级处理。
- 进行测试与混合操作(Alpha、深度、模板测试),并将结果写入帧缓冲区 Framebuffer。

构建完 Framebuffer 后,就回到了我们 2.1 节所说的 CAEAGLLayer 绘制上屏了。
接下来,我们就展开画卷,看看游戏组件的一生。
3. 游戏组件的一生
对于游戏组件从加载到上屏的流程我画了一张图:

把这个流程可以简单拆成 10 个阶段:

为了介绍清楚这个流程,我准备了一个最简单的 Cocos 游戏 Demo。这个是 Demo 的场景设计:

这个是主场景的代码:
const { ccclass } = cc._decorator;
@ccclass
export default class Helloworld extends cc.Component {
protected onLoad(): void {
console.log('onLoad');
}
start () {
console.log('Hello World');
}
}
3.1 Load Assets

首先是资源加载,前文介绍过游戏资源可以分为静态资源和脚本资源。由于静态资源的加载流程涉及的内容太多了,本节只简单介绍下脚本资源加载。
包括 3 类脚本资源:
- 内置脚本:引擎启动的时候进行加载,包括注册 JS Binding、实现 window 对象(基础的 BOM 和 Canvas DOM 对象)、polyfill 补齐 ES 标准等等。这个脚本内置在容器里,容器启动 JS 引擎的时候直接加载。这一步可以做多实例和预执行,以加快启动速度。
- 入口脚本:容器需要一个入口脚本,类似与 Web 里的 HTML,以便引入游戏入口资源。
- 动态加载的脚本:由游戏入口资源引入,比如游戏框架代码、游戏包里的 JS 资源等等。
这里可以容器侧可以提供离线资源、preload、prefetch、预执行等方式进行优化,同时在 JS 引擎方面也可以扩展做下 Code Cache,避免重复的编译耗时。
3.2 Component Scheduler

脚本资源加载执行后,游戏组件代码会进入到组件调度器中进行优先级调度。
Cocos 组件的生命周期如下图左所示,在 3 个关键的生命周期环境分别存在对应的调度器,每个调度器里设计了三个优先级队列,本质上每个队列的内容是由链表进行组织,顺序执行注册好的 invoker。

具体而言,从业务侧视角来看:在场景编辑器中创建节点(Node)时,业务方可以为其命名,并通过勾选“active”属性来决定该节点是否默认激活。一旦节点被标记为激活,加载阶段将由 Node Activator 负责激活该节点,接着 Component Activator(组件调度器的一部分)会依次激活该节点所挂载的各个组件,同时触发组件所在场景(Scene)的激活流程。最终,激活后的场景会将节点挂载入层级树,并完成组件 Invoker 的注册,交由调度器统一调度与管理。
整体流程如下图所示:

我们的 Demo 游戏组件的 start
生命周期下打印了一个 “Hello World”,调度堆栈如下所示:



3.3 Render Scene

当场景激活并挂载了对应组件之后,接下来便是渲染场景,这一步就涉及到从 JS 调用到了 Native —— 即需要将 Scene 数据传递给 Native 侧,从而触发 Native 的 Render 流程。

JS 和 Native 互相调用的方式有很多,适用场景也不同,这里也不展开说了。需要注意的是,在架构设计上,这里可以对 Binding 层做一层抽象,以便容器对接不同的 JS 引擎实现。

另外需要注意的是 Binding 要做好两端的 GC,因此 Binding 的实现上需要符合 RAII 原则:

3.4 Batcher

当 Native 拿到节点之后,便需要进行 Batch,这一步属于计算密集型,因此选择放在 Native 侧去做。
Batch 的流程比较复杂,核心思想是通过 DFS 对场景中的 Node 进行遍历,计算并装配(Assembler)顶点数据,得到顶点缓冲(VertexBuffer)和索引缓冲(IndexBuffer):

我们 Demo 游戏的场景树结构相对简单,遍历从 root 开始向下遍历(别忘了 Camera):

装配的计算流程比较复杂,下面仅对装配的结果做一个拆解,方便读者理解数据的由来。对于小恐龙而言,它是一个 Sprite2D,装备时会转成 Texture2D 处理,而后者在这个环节的核心,是需要拿到网格数据(Mesh Buffer)。下图是最后计算得到的 Mesh Buffer。

Mesh Buffer 由 Vertex Buffer 构成,这里装配的 Mesh Buffer,共 80 字节,其中每个顶点 20 字节,那么可以容易拆出 4 个 Vertex Buffer,同时根据 a_uv 的定义和偏移能拿到各自的 uv 坐标:

例如,根据顶点着色器的代码我们知道这个 Vertex Buffer 包括 3 部分数据:
a_position
: 偏移量 0,8 字节。vec2,能算出来一个坐标。a_uv0
: 偏移量 8,8 字节。vec2,就是 x,y,算出来之后是(0,1)。a_color
: 偏移量 16,4 字节。vec4,RGBA,数值是 0xFFFFFFFF,即白色透明。

我们把四个顶点的坐标都算一下,可以拿到宽高和左上角的坐标,其实可以发现,这个数据就是业务侧在场景编辑器里对 Node 的宽高和坐标设置:

顶点装配完毕之后的 Node 会被放进 Models 里,最后做成 Scece Tree 中的 models 节点:

3.5 Setup

这个环节主要由两个逻辑组成:
- 设置 Framebuffer 和 Viewport
- 将 Scene 里的各个 Model 转成 drawItems 队列
首先是第一个部分,设置 Framebuffer 和 Viewport。具体而言,包括以下步骤:

- 通过
setFrameBuffer
函数调用glBindFramebuffer
绑定 Framebuffer 帧缓冲对象,并分别附加颜色缓冲(COLOR_ATTACHMENT
,存储渲染的颜色信息)、深度缓冲(DEPTH_ATTACHMENT
,存储每个像素的深度信息,用于深度测试)和模板缓冲(STENCIL_ATTACHMENT
,存储模板测试的结果),确保后续绘制有正确的渲染目标。 setViewport
调用glViewport
设置视口,决定最终渲染区域在屏幕上的映射范围setup clear
依次执行glClearColor
、glClearDepth
和glClearStencil
,初始化颜色、深度和模板缓冲的清除值,为每一帧绘制提供干净的初始状态。
unsigned int fbo;
glGenFramebuffers(1, &fbo);
接下来,游戏引擎会将 Scene 里的各个 Model 转成一对一的 DrawItem,一个 DrawItem 的数据结构如下所示:

最后,引擎将这些 DrawItem 组装成 DrawItems 队列,以便后续流程处理。

3.6 Render Stage

接下来进入 Render Stage 阶段,渲染管线会开始对 DrawItems 进行分类处理。根据渲染的 Material 的需求,DrawItems 会被分发至三个不同的 Pass,分别对应 Opaque、Shadowcast 和 Transparent 三个阶段,关系到材质属性和阴影投射:
- Opaque:用于绘制完全遮挡光线的物体,如墙面、地板、角色模型等。这类物体会首先渲染,通过深度缓冲区(Z-Buffer)完成遮挡剔除,避免后续无效绘制,提升渲染效率。
- Shadowcast:专门处理场景中的阴影投射。此阶段会根据光源信息,对具有投影能力的物体进行阴影绘制,为场景添加真实感与空间深度,尤其适用于强光源或需要表现光影效果的环境。
- Transparent:负责绘制允许光线穿透的半透明物体,如玻璃、水面、特效粒子等。透明物体通常需要根据视角进行深度排序,以保证前后层次正确渲染,避免视觉穿插错误。
通过将 DrawItems 按照物体特性分发至不同 Pass,渲染管线能够有针对性地对 Effect 进行实现。
业务侧可以在代码里创建一个指定的 Material,之后管线就会走到对应的 pass 进行处理:
// 创建一个立方体网格
const cube = new cc.MeshRenderer();
cube.mesh = cc.GizmoMesh.createBox(1, 1, 1);
// 设置材质为不透明
const opaqueMaterial = cc.Material.create();
opaqueMaterial.initialize({
effectName: 'builtin-unlit',
technique: 'opaque',
});
cube.setMaterial(opaqueMaterial, 0);
因为我们 Demo 较为简单,因此最后生成的 StageInfo 只包含 Opaque Pass:

当然,在 Cocos 中也是支持自定义渲染管线,实际上就是自定义这个环节的 Passes,定义完之后可以直接应用在 Opaque、Shadowcast 和 Transparent 三个阶段之上:

3.7 ModelView Transformation

经过 Passes 之后,场景中的 DrawItems 会根据其属性被分别送入 OpaqueStage Renderer、Shadowcast Renderer 和 Transparent Renderer 进行初步处理。各个 Renderer 在此阶段主要负责更新与视图相关的 Uniforms(如矩阵、材质参数等),以确保后续渲染过程中所需的视角、空间信息正确。这一部分可归类为 View Transformation 阶段,统一完成视图坐标系下的变换数据准备。
紧接着不同的渲染阶段会有差异化的预处理操作:不透明物体和透明物体会分别执行 SubmitLight 以提交光照信息,而投影阶段则专门进行 SubmitShadow 以生成阴影数据。同时,透明阶段由于涉及深度排序问题,还会额外执行 Calculate zdist 以计算对象的深度信息。
所有这些预处理完成之后,最终将统一进入 ModelView Transformation 阶段,得到视图投影矩阵,从而完成从模型空间到屏幕空间的最终变换,以便于后续的图元栅格化与像素着色工作。
在讲解 ModelView Transformation 之前,先来介绍下游戏系统中的坐标系统的定义。一般会涉及物体坐标、世界坐标与相机坐标三种主要坐标系。
- 物体坐标系:以物体自身的中心点(anchor 通常设置为(0.5, 0.5))为原点,用于描述物体内部各个部位的位置关系,便于定义复杂物体内部的原子结构关系。
- 世界坐标系:则是以整个场景的中心作为原点,用来统一描述场景内所有物体、相机以及光源的位置关系,确保场景整体的空间一致性。
- 相机坐标系:以相机的位置作为原点,是为了将 3D 空间转化为 2D 图像,以便进行计算和渲染。

基于这套坐标系统下,观测变换(Viewing Transformation)主要包括视图变换、模型变换与投影变换三个步骤。
- 视图变换:可看作是将相机放置到场景中的过程,主要是定义相机的朝向和位置。
- 模型变换:对物体进行放置或调整位置、旋转以及缩放等操作。
- 投影变换:类似于摄影,通过投影方式,将三维物体的信息映射到二维的屏幕空间。

下面重点说说投影变换(Projection Transformation),它分为正交投影(Orthographic Projection)与透视投影(Perspective Projection)两种方式。
- 正交投影常用于工程制图软件,不体现远近透视效果;
- 透视投影广泛应用于游戏、渲染引擎中,能更真实地模拟人眼观察到的空间透视效果。
而透视投影的数学本质是压缩加上正交投影的结合,实际将一个无限延伸的观察空间(视锥体)转化为一个便于计算的立方体。

这里简单画了个图来介绍透视变换的实现,fov(视角)定义相机的视场宽度,可以分为水平fov与垂直 fov;distance 定义投影平面与相机之间的距离。视景空间通过近裁剪平面(near)和远裁剪平面(far)定义渲染的范围,通过相似三角形的计算,最终将 3D 空间映射到 2D 屏幕(Canvas)。

说完了透视投影,我们再看看投影变换的另一种方式——正交投影。其通常有实现的方式有两种:
- 直接舍弃Z坐标,将 3D 物体转化为 2D 物体,直观但无法表现空间深度;
- 将观察空间变换成标准的立方体后,利用变换矩阵进行计算。

综上,坐标转换流程具体包括物体坐标到世界坐标,再到相机坐标,接着到投影坐标,最终映射到屏幕坐标。
- 首先,在编辑器中定义坐标相加的关系,将物体放置到场景中;
- 之后,通过视图变换调整相机位置、模型变换调整物体位置;
- 再经过投影变换将 3D 空间投射到 2D 空间;
- 最后进行坐标系转换,确保渲染到正确的屏幕位置。

在这个过程中,会计算得到视图矩阵(View Matrix)、投影矩阵(Projection Matrix),最终矩阵相乘拿到视图投影矩阵(Model-View-Projection Matrix)。我们结合 Demo 游戏的断点数据,分别看看他们仨是怎么计算得到的。
首先是视图矩阵,它负责将世界坐标系转化为相机坐标系,其中包含坐标轴的缩放和平移操作。实际计算中,通常涉及坐标轴补齐,即齐次坐标的补齐过程,确保矩阵运算的有效性。

之后是计算投影矩阵,它用于将相机空间进一步映射到标准化的设备空间(Normalized Device Coordinates, NDC),矩阵中的缩放系数根据屏幕的宽高比和设定的正交高度来计算。

最终的渲染过程通常使用视图投影矩阵(Model-View-Projection Matrix, MVP)。视图投影矩阵是视图矩阵与投影矩阵的组合,用于最终的顶点变换和着色器渲染计算。

3.8 Link Program

接下来进入到着色器的创建与 Link 阶段,首先是创建图元:

之后是创建顶点着色器和片元着色器:

值得关注的是,在 Cocos 中有一共有 11 个内置着色器,其中前 5 个处理 2D 渲染相关,builtin-clear-stencil|vs|fs 用于清楚模板缓冲区,7-10 3D 渲染相关,最后一个用于处理 3D 光照:
- builtin-2d-spine|vs|fs
- builtin-2d-graphics|vs|fs
- builtin-2d-label|vs|fs
- builtin-2d-sprite|vs|fs
- builtin-2d-gray-sprite|vs|fs
- builtin-clear-stencil|vs|fs
- builtin-3d-trail|particle-trail:vs_main|tinted-fs:add
- builtin-3d-trail|particle-trail:vs_main|tinted-fs:multiply
- builtin-3d-trail|particle-trail:vs_main|no-tint-fs:addSmooth
- builtin-3d-trail|particle-trail:vs_main|no-tint-fs:premultiplied
- builtin-unlit|unlit-vs|unlit-fs
文中的 Demo 是使用内置着色器模板进行创建的。
接着创建着色器程序,Link 上我们创建的顶点着色器和片元着色器。紧接着,设置着色器中所需要的 Uniforms 变量,这里就包括纹理和我们上一步计算得到的视图投影矩阵:

最终,我们的 Framebuffer 会附着上颜色附件、深度附件与模板附件:

需要注意的是对于刚创建完的 FrameBuffer 不能立即使用,因为它还不完整(Complete)。而一个完整的帧缓冲需要满足以下的条件:
- 附加至少一个缓冲(颜色、深度或模板缓冲)。
- 至少有一个 GL_COLOR_ATTACHMENT。
- 所有的附件都必须是完整的(保留了内存)。
- 若开启 Multisampling,则每个缓冲都应该有相同的样本数(sample)。
因此需要使用 glCheckFramebufferStatus
对缓冲区的完整性做出检查:
GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
if (status != GL_FRAMEBUFFER_COMPLETE) {
// ...
// notify native: getInstance()->glErrorCallback(GL_ERROR, errMsg);
return;
}
3.9 Blend & Test

接着依次进入执行 混合(Blend)、深度测试(Depth Test)、模版测试(Stencil Test)。
首先是 Blend,顾名思义讲两个颜色进行混合。下图展示了混合方程的计算方式:

OpenGL 中常用的混合函数如下图所示:

下面是一个简单的例子,使用着色器来创建红色蒙版的 Blend 效果:


深度测试(Depth Test)在图形渲染中用来决定每个像素是否显示。启用深度测试时,OpenGL会将当前片段的深度值与深度缓冲区的值进行比较。如果通过测试,深度缓冲区将更新为新的深度值,否则该片段会被丢弃。下图展示了 OpenGL 中常用的深度测试函数:

而模板测试(Stencil Test)则用于限制渲染区域。通过模板缓冲区,可以在渲染时创建特殊的区域标记,只有符合模板缓冲区设定条件的片段才会被渲染到屏幕上。模板缓冲区允许实现诸如阴影、镜面效果、轮廓高亮等复杂渲染效果。下图展示了 OpenGL 中常用的模版测试函数:

上述的结果最终都会与 Framebuffer 的 Attachment 机制相关联。Framebuffer 的 Attachment 机制决定了渲染结果如何输出到缓冲区中。Framebuffer 通常会附带多个 buffer,包括颜色缓冲区(GL_COLOR_ATTACHMENT)、深度缓冲区(GL_DEPTH_ATTACHMENT)和模板缓冲区(GL_STENCIL_ATTACHMENT),他们共同决定了最终渲染的结果。

3.10 Commit & Draw Pass

到了管线的最后一步,便是提交(Commit)和绘制(Draw)。
在 Cocos 中每一帧会存储两种状态,一个是当前画面帧的状态(currentState),另一个是我们即将渲染帧的状态(nextState)。

我们需要依次计算 nextState 中的各个部分的 state,之后将 nextState 和 currentState 的状态值做 diff,如果某个环节的状态值不一致,便会触发 commit 操作。以便管线最大程度利用缓存结果。

下面依次介绍下管线中需要管理的状态值:
- Blend States、Depth States、Stencil States
- Cull Mode
- Vertex Buffer
- Program
- Textures
- Uniforms
其中 Program 通常在管线初始化时所有的着色器都会准备好,非极端情况下缓存不会失效,因此上面的图中没有标出这个状态。
Blend States、Depth States、Stencil States 分别存储了我们前文所说的 Blend、Depth Test、Stencil Test 过程中涉及到的 GL 调用的参数和部分结果,这里就不详述了。
接着是 Cull Mode,根据顶点的索引的顺逆时针来用来区分正面与反面,如果状态值和 currentState 不一样,便触发 glCullFace
的调用来进行 commit。

对应顶点缓冲区也是一样有状态值管理,如果变脏了,就需要重新调用 glBindBuffer
进行绑定:

着色器程序也是一样的,如果脏了,就重新调用 glUseProgram
进行设置:

接着便是对 Textures 的检查和提交,这里有两个知识点:
- 纹理的应用:具体涉及到
glActiveTexture
和glBindTexture
。首先使用glActiveTexture
函数来选择当前要激活的纹理单元,这一步决定了接下来绑定的纹理将作用于哪个纹理单元上。然后,通过glBindTexture
函数将具体的纹理对象绑定到特定的纹理目标上。通过这种机制,纹理对象与对应的纹理单元和目标进行关联,从而完成纹理的激活与绑定操作。 - 纹理单元:用于表示显卡可以同时管理的多个纹理。默认情况下,
GL_TEXTURE0
纹理单元总是被激活的状态。此外,OpenGL 规范保证至少支持 16 个纹理单元(即从GL_TEXTURE0
到GL_TEXTURE15
)。纹理单元是按顺序定义的,因此我们可以通过诸如GL_TEXTURE0 + 8
的方式便捷地访问特定编号的纹理单元,以便在复杂的渲染场景中实现多纹理同时使用。

当前面的状态值都准备并提交完毕后,最后需要管理的状态值是 Uniforms,这一步如果有脏区产生,也需要重新提交 Uniforms 变量。比如游戏 Demo,涉及到的 Uniforms 变量有 cc_matViewProj
和 texture
:

最后就是绘制了,其中在每一帧的绘制前都需要调用 glClear
清理 Freambuffer 的状态。下图展示了 gl 指令调用的时序:

由于游戏 Demo 比较简单,绘制只需要准备好纹理和 Uniforms 即可,最后调用 glDrawArrays
或 glDrawElements
将准备好 Framebuffer 绘制上屏:

至此,经历了这一系列的管线处理之后,我们的 Demo 游戏在小游戏容器内完成了上屏。

扩展阅读
- 《GAMES 101》
- 《计算机图形学入门:3D渲染指南》
- 《
LearnOpenGL 》
私有化部署Nexus3镜像源
昨天升级 Nexus3 翻车了,准备基于 PG 重新搭建 Nexus3 源,并移除一些不用的软件源, 新版软件源支持如下
环境要求
- 机器配置至少 2C4G
- 网络要好,推荐境外机器部署
- 大硬盘可选(不代理 py 等还好)
部署
nexus 服务
使用 compose 或者 k8s,原理差不多,我的环境使用 k3s。
- docker-compose.yaml
services:
nexus3:
image: sonatype/nexus3:latest
container_name: nexus3
restart: always
ports:
- "8081:8081"
environment:
- INSTALL4J_ADD_VM_PARAMS=-Xms2703m -Xmx4G -XX:MaxDirectMemorySize=2703m -Djava.util.prefs.userRoot=/nexus-data/javaprefs
- NEXUS_DATASTORE_ENABLED=true
- NEXUS_DATASTORE_NEXUS_JDBCURL=jdbc:postgresql://postgres:5432/nexus3
- NEXUS_DATASTORE_NEXUS_USERNAME=oup44Fai4ta
- NEXUS_DATASTORE_NEXUS_PASSWORD=ienah9eiquah7GeiMaengeitie5aeq66
volumes:
- /data/nexus/nexusdata:/nexus-data
depends_on:
- postgres
postgres:
image: bitnami/postgresql:17
container_name: postgres
environment:
- POSTGRESQL_DATABASE=nexus3
- POSTGRESQL_USERNAME=oup44Fai4ta
- POSTGRESQL_PASSWORD=ienah9eiquah7GeiMaengeitie5aeq66
volumes:
- /data/nexus/postgres:/bitnami/postgresql
restart: always
在启动前,先创建好目录,并给予权限
mkdir -p /data/nexus/postgres /data/nexus/nexusdata
chmod 777 /data/nexus -R
然后启动, 访问 ip:8081 即可
docker compose up -d
配置 caddy
mirrors.china.12306.work {
import LOG "/var/log/caddy/mirrors.log"
@rootOrIndex {
path /
path /index.html
path /mirror.css
path /.help*
}
handle @rootOrIndex {
file_server {
hide .git
root /etc/caddy/pages/mirrors
}
}
reverse_proxy http://100.90.80.3:8081
}
样式我从网易镜像源借鉴来的
目前支持的软件
本文档由 ysicing 收集整理, 希望能对国内开源软件用户有所帮助.
仅列出部分核心软件包:
- tailscale
- caddy
- docker-ce
- postgresql
- trivy
为什么没有我用的软件包?因为我暂时用不上, 有好的想法可以联系我.

今天学点啥送的书和玩具
从 4 月 21 日秘塔 AI 上线今天学点啥功能后,我就一直在使用,他奖励给前几名首先用了一段时间的用户一些礼物,当时客服联系我时,告诉我是书籍和一个小玩具。
昨天收到货,感觉非常好。当然免费的东西都是不错的。
这本书给我的感觉是,很好,有 400 页左右,但是很贵,售价 88 元。这些年不知道人们是否意识到,越来越多的新书,或者学术书籍尝试开始使用大规模的精装并涨价销售的风格,要知道就同样厚度的书 1990 年可能只要 7 元、8 元,而页码能达到 600 多。 30 年涨价了至少 10 倍。
这个玩具,不知道是怎么玩的,不过全身都很黏,似乎是解压用的。
再接再厉。
对网吧的偏见
我对网吧的偏见,源于小学时候。
学校对面有一家网吧,从知道那是网吧开始,到它停止营业,从未进去过,因为时不时就有老师或主任在放学后去网吧逮学生,第二天在广播里通报,再加上家人和老师不断地告知网吧里全是不三不四的社会人,很危险,随时都会被敲诈,现在回想起来,并不无道理。
怕被老师逮到,也怕被坏人欺负,再加上我平时几乎没有机会接触电脑,直到今天,去网吧的次数屈指可数。小学对面的网吧,当时的价格是2元/小时,包宿应该更便宜,但对于每天零花钱只有1元的我来说,也是承担不起的价格;第一次去网吧,得益于同学请客,已经记不清当时坐在电脑面前玩什么游戏,只记得那时候的心情十分忐忑,即便是周六,也担心突然被老师逮到,去网吧上网似乎成了一种罪过;还有一次在同学的带领下,去过一趟所谓的黑网吧,不查身份证,不管你多大,给钱就开机,房间很小,头一次觉得这里确实是一些不三不四的社会人……后来随着学习压力增加,学习时间紧张,读初一的时候家里买了电脑,便再也没有去过网吧,高中毕业之后约过同学去包宿,难受和煎熬,想玩又犯困,以及现在,双休前的最后一个工作日,如果兴致来了,去楼下的网吧玩两个小时,就已经很满足了。
前段时间还在犹豫,想买游戏本打游戏,考虑到自己不仅打得菜,而且平时很少有时间玩,还不如想玩的时候去网吧玩一会来的划算,于是买了 Mac mini M4。附近有不少网吧,以前叫网吧,现在叫网咖的居多,不仅配置和环境更好,价格也更贵了。第一次来南昌,陪女朋友考试,考试期间我就去附近的一家网鱼网咖玩游戏,10元/小时的价格让我惊讶,这还是大厅的价,如果是包厢岂不是更贵?今年寒假,和几个同学开了一间电竞酒店房,有四台电脑,这边四个同学玩游戏,那边四个同学在打牌,累了困了就在床上睡一会,又一次刷新了我对网吧、网咖、电竞酒店的认识和体验。
不怕别人笑话,因为去网吧去得少,我都不清楚上机的过程,如何让老板给我开一台机子,怎么登陆,没带身份证怎么办……也是在高中毕业之后和同学一起去网吧次数多了,渐渐熟悉一点,没带身份证不碍事,打开微信使用 V 上网公众号实名激活就行,接着再让老板充值网费,随便找电脑开机等等。
申公豹说得对,人心中的成见是一座大山,从小对网吧的偏见在我心中也是一座大山,给它打上了不太好的标签,但也影响不了什么,从现在来看,网吧是让我在工作之余放松自我的地方,话又说回来,有条件的话还是尽量在自家房间里玩游戏,环境更好,今天去附近的网吧玩了两个小时,虽然开着空调,但是空气中弥漫着一股奇怪的味道,人多、嘈杂,或许以后还是会选择配置一台 Windows 电脑,每个男人心中都有一个电竞房的梦想。
从赵心童世锦赛夺冠聊聊我的斯诺克情缘
C#中字符转整数的高效技巧
C#中字符转整数的高效技巧
在日常开发中,我们常常需要将字符串中的数字字符转换为整数。比如把 "123"
转成 [1, 2, 3]
。许多初学者第一反应是使用 int.Parse()
或 Convert.ToInt32()
等方法。然而,在性能敏感或高频调用的场景下,这些方法显得略显“笨重”。
本文介绍一个高效、简洁的技巧 —— 使用字符的 ASCII 差值直接转换数字字符为整数:
1 | int number = someChar - '0'; |
🎯 一行代码,背后的原理
C# 中的 char
本质上是一个 16 位的 Unicode 字符,它也可以参与整型运算。每个字符都有一个对应的整数值,即它的 ASCII/Unicode 编码。例如:
字符 | ASCII 值 |
---|---|
‘0’ | 48 |
‘1’ | 49 |
‘2’ | 50 |
… | … |
‘9’ | 57 |
因此,将数字字符 c
转换为整数的本质就是:
1 | int num = c - '0'; // ASCII值相减 |
举例来说,'3' - '0' = 51 - 48 = 3
,正是我们想要的整数。
✅ 为什么推荐这种写法?
相比 int.Parse()
或 Convert.ToInt32()
,这种方式具有明显优势:
- 速度更快:是低级别的 CPU 运算,无需函数调用;
- 更少内存开销:不涉及字符串解析或装箱操作;
- 写法简洁:代码清晰直接,适合处理批量字符数据。
例如,在二维字符网格转换中:
1 | for (int y = 0; y < lines.Length; y++) { |
这种写法在游戏地图加载、图形编辑器、数据压缩等场景非常常见。
⚠️ 注意事项
尽管这种写法高效,但也要注意它的适用前提:
字符必须是合法的数字字符(’0’ ~ ‘9’),否则计算结果会错误:
1
2char c = 'A';
int result = c - '0'; // 错误,结果为 17建议加入合法性判断,提高程序健壮性:
1
2
3
4if (char.IsDigit(c))
num = c - '0';
else
num = 0; // 或者抛异常、记录日志等
示例代码
我之前的像素艺术家中有一个场景,需要将配置文件中的笔刷数据读取出来,1代表有颜色,0代表无颜色。
以下是一个实际用于数据格式化的操作,即将竖线分隔的字符串转成二维整型数组:
1 | public void FormatData() |
结语
使用 char - '0'
转换数字字符是一种小而巧的技巧,简单、高效、实用。只要确保输入是合法的数字字符,这种方式将比传统方法更具性能优势。无论你是在处理大规模文本数据,还是追求极致性能的游戏开发者,这都是你工具箱中不可或缺的一招。
新疆阿克苏库车游记
新疆维吾尔自治区-阿克苏地区-库车市-库车龟兹机场
新疆维吾尔自治区-阿克苏地区-库车市-龟兹文化广场
新疆维吾尔自治区-阿克苏地区-库车市-龟兹文化广场
新疆维吾尔自治区-阿克苏地区-库车市-龟兹文化广场
库车古称“龟兹”(拼音qiū cí,梵语Kucina),库车系突厥语译音,维吾尔语地名,胡同之意。因其地为达南疆腹地之要街,故名。在历史长河中,龟兹是丝绸之路新疆段塔克拉玛干沙漠北道的重镇,宗教、文化、经济等极为发达。龟兹人擅长音乐,龟兹乐舞发源于此。
新疆维吾尔自治区-阿克苏地区-库车市-库车大馕小巷
新疆维吾尔自治区-阿克苏地区-库车市-库车大馕小巷
新疆维吾尔自治区-阿克苏地区-库车市-库车大馕小巷
新疆维吾尔自治区-阿克苏地区-库车市-库车大馕小巷
新疆维吾尔自治区-阿克苏地区-库车市-库车大馕小巷
新疆维吾尔自治区-阿克苏地区-库车市-库车大馕小巷
新疆维吾尔自治区-阿克苏地区-库车市-默拉纳额什丁麻扎
新疆维吾尔自治区-阿克苏地区-库车市-西域都护府
新疆维吾尔自治区-阿克苏地区-库车市-龟兹故城
新疆维吾尔自治区-阿克苏地区-库车市-龟兹故城
新疆维吾尔自治区-阿克苏地区-库车市-龟兹博物馆
新疆维吾尔自治区-阿克苏地区-库车市-龟兹博物馆
新疆维吾尔自治区-阿克苏地区-库车市-龟兹魏晋遗址博物馆
新疆维吾尔自治区-阿克苏地区-库车市-龟兹魏晋遗址博物馆
新疆维吾尔自治区-阿克苏地区-库车市-龟乐广场
新疆维吾尔自治区-阿克苏地区-库车市-龟兹小巷
新疆维吾尔自治区-阿克苏地区-库车市-龟兹小巷
新疆维吾尔自治区-阿克苏地区-库车市-老城桥头夜市
新疆维吾尔自治区-阿克苏地区-库车市-库车老城国际大巴扎
新疆维吾尔自治区-阿克苏地区-库车市-团结新桥
新疆维吾尔自治区-阿克苏地区-库车市-龟兹古渡
新疆维吾尔自治区-阿克苏地区-库车市-老城热斯坦广场
新疆维吾尔自治区-阿克苏地区-库车市-热斯坦清真寺
新疆维吾尔自治区-阿克苏地区-库车市-热斯坦老街
新疆维吾尔自治区-阿克苏地区-库车市-热斯坦老街-门巴扎
新疆维吾尔自治区-阿克苏地区-库车市-库车王府
新疆维吾尔自治区-阿克苏地区-库车市-热斯坦库车老街
新疆维吾尔自治区-阿克苏地区-库车市-库车城门
新疆维吾尔自治区-阿克苏地区-库车市-库车清代城址
新疆维吾尔自治区-阿克苏地区-库车市-龟兹文化探访路-清城巷
新疆维吾尔自治区-阿克苏地区-库车市-龟兹文化探访路-清城巷
新疆维吾尔自治区-阿克苏地区-库车市-龟兹文化探访路-清城巷
新疆维吾尔自治区-阿克苏地区-库车市-龟兹文化探访路-克黑墩烽火台
新疆维吾尔自治区-阿克苏地区-库车市-龟兹文化探访路-克黑墩烽火台
新疆维吾尔自治区-阿克苏地区-库车市-龟兹文化探访路-库车大寺
新疆维吾尔自治区-阿克苏地区-库车市-龟兹文化探访路-库车大寺
新疆维吾尔自治区-阿克苏地区-库车市-龟兹文化探访路
新疆维吾尔自治区-阿克苏地区-库车市-帕哈塔巴扎路
新疆维吾尔自治区-阿克苏地区-库车市-花帽巷
新疆维吾尔自治区-阿克苏地区-库车市-花帽巷
新疆维吾尔自治区-阿克苏地区-库车市-花帽巷
新疆维吾尔自治区-阿克苏地区-库车市-花帽巷
新疆维吾尔自治区-阿克苏地区-库车市-花帽巷
新疆维吾尔自治区-阿克苏地区-库车市-花帽巷
新疆维吾尔自治区-阿克苏地区-库车市-花帽巷
新疆维吾尔自治区-阿克苏地区-库车市-花帽巷
新疆维吾尔自治区-阿克苏地区-库车市-花帽巷
新疆维吾尔自治区-阿克苏地区-库车市-萨克萨克历史文化街区
新疆维吾尔自治区-阿克苏地区-库车市-萨克萨克历史文化街区
新疆维吾尔自治区-阿克苏地区-库车市-库车龟兹机场
新疆维吾尔自治区-阿克苏地区-库车市-库车龟兹机场
【日记】2025.05.16
1.人在传感器
昨天晚上调整了一下人体传感器,然后今天早上传感器就无法正常触发了,翻看了一下日志,是因为米家极客版没获取到传感器的有人状态。
但是极客版的有人是一个很奇怪的触发方式,选项很多,虽然说详情中写了“极客版用无人状态取反判断有人,不用勾选全部有人“。但是我根本没看懂他想表达的是什么意思,就看上去,我必须要勾选一个, 可是我又不能只勾选一个有人(不会触发)。然后前面的”包含“也不能改成其他的触发条件。
所以我今天去问了问客服, 一开始问的是京东客服(因为从京东上买的,京东有国补,但是淘宝没有)。结果京东的自营店的客服并不知道,还是培训不到位。然后我就去问淘宝的客服,不得不说,自己的客服就是好一点,人家给我甩了一张截图,然后我就看懂了。
原来说的无人状态取反,是指的是条件先用无人判断,然后在后面跟一个”状态取反“,就可以了。也是一些奇技淫巧吧。

2.招聘会
今天去学校的招聘会看了一眼,感觉这家企业还是可以的,在上海,虽然说从我家到浦东大道开车要40分钟,公共交通要一个半小时,但是上海市的交通,确实是这样的。
3.一颗百变萝卜同学的生日礼物——再一次
我买了一个指纹传感器,是韵达的快递,所以今天下午驿站和我说有韵达快递到的时候,我下意识的就以为是指纹传感器了。但是过了一个小时,驿站又给我发了一个韵达快递的取件码,一下子把我弄不会了,我寻思着我只买了两个快递啊,还有一个是极兔的啊?
拿到快递,看了看面单信息,确实是我的,但是不是我在淘宝上买的东西(日常通过地址判断)。摇了摇,有晃动的沙沙声,感觉又有点像我买的花生?可是我就买了500g啊,应该没这么大的。
回到寝室,打开了箱子,看到这满箱的薯片,很好,我知道大概率是谁送的了,极大概率是一颗百变萝卜同学送的。

问了问她,她还让我猜。猜是自然不可能会猜了,不如直接用激将法。我就骗她说,如果不是她送的话,我就要练习驿站退货了。(虽然我根本不知道这种情况下如何退货)然后她就承认了,我就说。
然后现在就有一个新的问题了,我一下子没找到什么很合适的地方放这箱薯片,就只能放地上了。感觉是时候寄点东西回家了,我这里的东西越来越多了。
4.半开卷考
今天晚上的船舶检验考试是半开卷考试。什么是半开卷考试呢?他说他就给我们半个小时的开卷时间,剩下的时间就是闭卷的时间。所以你要在这半个小时内猛猛翻书,不然就只能靠自己的知识储备了。
这让我不得想起我当时在上海八年级(初二)的历史考试,那也是半开卷,不过形式不太一样。当时是先给你发闭卷的试卷,然后等时间到了之后再统一收卷,然后再发开卷的试卷。(也有可能是先发开卷,我不记得了)
但是我们这次就不太一样了,属于是要在这半个小时内快速找到要抄的内容了。考试的题型是填空、判断、名词解释和解答题。我在拿到试卷之后,就意识到,应该把判断放在最后写,其他的题目你不会就是不会,但是判断怎么说还有1/2的概率蒙对。
但是我没想到的是,其实半个小时完全来记得把整张试卷写完,虽然说有点赶。不过还是要对书本熟悉的,不然翻都翻不到。
5.指纹识别
我看我之前的指纹识别模块不爽很久了,它作为一个指纹识别模块,有时候识别不出来就算了,可能是我没放好什么的。但是基本上每次开机,它都是一个未就绪的状态,根本不会进入识别的状态,就很烦躁,有这时间我密码都输完了。

然后我就买了一个新的指纹识别(右边的那个),这个新的一是指纹识别的区域比较大,从概率学上成功率就高。然后,就从我目前的短暂体验下,目前还没遇到什么指纹识别连续几次都失败的事情,而且每次需要它的时候,它都是在线的。
可能唯一的问题是,它好像在 Windows 中不自带驱动?虽然卖家说可以联网自动下载,不过我的电脑确实是没下载的。这其实就挺烦的了,我目前用过的 Windows hello 设备在系统内好像都没驱动,导致在 OOBE 的阶段还不能录入指纹,其实体验不是很好。
20250515
今天的惊喜来自和菜头老师在公众号槽边往事写的文章提到了谜底黑胶,《聊点我喜欢的:Wiim 和谜底黑胶》。
之前谜底黑胶也有在别的文章或者视频出镜过,不同的是和菜头老师去“调查”了我,他看到了我的日常,我的黑胶设备,他理解了为什么我会而且我能做出这样一个产品。有一种被懂了的感觉。
今天研究了 Claude + Apple Music MCP 的一些玩法,希望它能给我推荐音乐创建歌单。不过我找的这个 MCP 不太合适,有空要尝试一下另一个。
下午高兴完了就去打麻将了,蛰伏两圈,每圈仅小胡一把。第三圈直接连庄外加四个财神加持,一把翻身。前面两圈让我放平心态,今天就是来陪玩的,于是只专心搞大的,当财神看我可怜分配给我四个白板的时候,我抓住了机会。人生就要抓住机会啊。
Nexus3 容器部署3.70.x升级实践-非成功案例
docker 从 3.70.x 及以下版本升级 3.71.x 及以上版本出现旧数据库不支持错误
官方也很细心给了一份升级文档 upgrading-to-nexus-repository-3-71-0-and-beyond
由于我使用的也是官方镜像,社区也有人给出了解决方案 sonatype/nexus-public#51
友情提示,操作前需要备份持久化数据,避免升级失败,建议先阅读文尾后再参考我的升级
创建 nexus 备份文件
- 设置-系统-任务-创建任务
- 搜索 Backup,选择它
- 创建一下手动触发的任务,备份路径
/nexus-data/backup
就行
- 创建完任务后,点击
backup
任务运行
- 触发备份
- 等待备份完成
不放心,也可以进容器内,看一下:
19:56 ➜ ~ kubectl exec -it pods/nexus3-859bb76886-mc29s -n nat -- bash
bash-4.4$ ls
nexus sonatype-work start-nexus-repository-manager.sh
bash-4.4$ cd /nexus-data/
bash-4.4$ ls
backup blobs cache db elasticsearch etc generated-bundles instances javaprefs kar karaf.pid keystores lock log orient port restore-from-backup tmp
bash-4.4$ cd backup/
bash-4.4$ ls
analytics-2025-05-16-11-56-22-3.70.1-02.bak component-2025-05-16-11-56-22-3.70.1-02.bak config-2025-05-16-11-56-22-3.70.1-02.bak security-2025-05-16-11-56-22-3.70.1-02.bak
bash-4.4$ exit
示例是 k8s 方式,docker 部署也是类似。
数据迁移
查询对应 nexus-db-migrator 迁移工具
需要下载和你 Nexus 版本匹配的 nexus-db-migrator 工具, 最新版本下载 nexus-db-migrator, 目前最新版本是 3.70.4-02
大概格式如下:
https://download.sonatype.com/nexus/nxrm3-migrator/nexus-db-migrator-<version版本号>.jar
由于我的版本是 3.70.1-02
, 选择下载
https://sonatype-download.global.ssl.fastly.net/repository/downloads-prod-group/nxrm3-migrator/nexus-db-migrator-3.70.1-03.jar
可能你对应的版本不存在,可以尝试改 patch 版本,实在不行你就先升级到 3.70.4 最新版本
再次提醒版本一定要匹配上
操作
进入容器内部操作,方便起见, 确保在 /nexus-data/backup
目录下
bash-4.4$ pwd
/nexus-data/backup
下载迁移工具,或者同步到容器内也行(网络不好的情况下)
curl -s -L -O https://sonatype-download.global.ssl.fastly.net/repository/downloads-prod-group/nxrm3-migrator/nexus-db-migrator-3.70.1-03.jar
停 nexus 服务
/opt/sonatype/nexus/bin/nexus stop
执行迁移操作,将数据迁移到 H2
数据库,根据数据量和配置灵活调整 -Xmx4G -Xms4G
值,这里条件有限默认 4G, 执行完成如下图
java -Xmx4G -Xms4G -XX:+UseG1GC -XX:MaxDirectMemorySize=28672M -jar nexus-db-migrator-3.70.1-03.jar --migration_type=h2
再次停 nexus 服务
bash-4.4$ /opt/sonatype/nexus/bin/nexus stop
Shutting down nexus
nexus is not running.
查看迁移的数据
bash-4.4$ ls -ahl nexus.mv.db
-rw-r--r-- 1 nexus nexus 320K May 16 12:19 nexus.mv.db
将迁移的数据文件复制到 db
文件夹中
cp nexus.mv.db /nexus-data/db
然后退出容器
销毁容器
- compose 部署
docker compose down nexus3
- k8s 部署副本改成 0
kubectl scale --replicas 0 deploy/nexus3 -n nat
编辑配置文件
为啥不在容器里编辑,啥工具都没有不方便,而且这个配置持久化了
- 默认配置如下 old
root@nat3:/data/k8s/local/nexus3/etc# cat nexus.properties
# Jetty section
# application-port=8081
# application-host=0.0.0.0
# nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml
# nexus-context-path=/${NEXUS_CONTEXT}
# Nexus section
# nexus-edition=nexus-pro-edition
# nexus-features=\
# nexus-pro-feature
# nexus.hazelcast.discovery.isEnabled=true
- 新增
nexus.datastore.enabled=true
, 新配置如下
root@nat3:/data/k8s/local/nexus3/etc# cat nexus.properties
# Jetty section
# application-port=8081
# application-host=0.0.0.0
# nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml
# nexus-context-path=/${NEXUS_CONTEXT}
# Nexus section
# nexus-edition=nexus-pro-edition
# nexus-features=\
# nexus-pro-feature
# nexus.hazelcast.discovery.isEnabled=true
nexus.datastore.enabled=true
启动老服务,验证数据库切换成功
- compose 部署
docker compose up -d
- k8s 部署副本改成 0
kubectl scale --replicas 1 deploy/nexus3 -n nat
观察日志,搜索 H2
2025-05-16 12:33:15,378+0000 INFO [FelixStartLevel] *SYSTEM org.sonatype.nexus.datastore.DataStoreConfigurationDefaultSource - Loaded 'nexus' data store configuration defaults (Embedded H2)
2025-05-16 12:33:15,710+0000 INFO [FelixStartLevel] *SYSTEM com.zaxxer.hikari.HikariDataSource - nexus - Starting...
2025-05-16 12:33:16,018+0000 INFO [FelixStartLevel] *SYSTEM com.zaxxer.hikari.HikariDataSource - nexus - Start completed.
2025-05-16 12:33:16,020+0000 INFO [FelixStartLevel] *SYSTEM org.sonatype.nexus.datastore.mybatis.MyBatisDataStore - nexus - Loading MyBatis configuration from /opt/sonatype/nexus/etc/fabric/mybatis.xml
2025-05-16 12:33:16,147+0000 INFO [FelixStartLevel] *SYSTEM org.sonatype.nexus.datastore.mybatis.MyBatisDataStore - nexus - MyBatis databaseId: H2
2025-05-16 12:33:16,346+0000 INFO [FelixStartLevel] *SYSTEM org.sonatype.nexus.datastore.mybatis.MyBatisDataStore - nexus - Creating schema for UpgradeTaskDAO
升级版本失败
直接替换镜像升级就完成了,然后我的数据就没了 😂, 严格按照官方文档来的哇 😂
后续
- 云缘生镜像站暂停营业几天
- 虽然有备份数据,但是不想回滚了,重新部署,数据存储使用 PG 吧

冷静又高效,全新NAS“冷面杀手”—Z4Pro+,性能与节能的平衡术
引言
今年的618来得比往年都要早不少。在618促销活动叠加国家补贴的加持下,各个品牌的NAS产品都迎来了不错的优惠价格。而除了老款产品的大力促销之外,每年的618也是各大NAS厂商发布新品的好时机。作为国产NAS中的佼佼者,极空间自然也不例外,这次618也带来了自家的新品。
这几天大家应该都看到极空间官方的宣传了,从最初的预热海报到最后一日的倒计时,极空间一直在强调“焕‘芯’”这个关键词。再加上放出的背景渲染图和谍照,极空间对Z4 Pro确实进行了“换芯”操作。那么问题来了——既然是沿用了老模具,这次的新品到底有没有真正用“心”打磨?还是说只是换个CPU就完事了?
用“芯”之作
这次发布的新品具体型号是 Z4 Pro+,和之前的 Z4 Pro 一样,也分为了标准版和性能版。标准版这次搭载的是 N150 处理器,而熊猫手上拿到的性能版则用上了 N355 处理器。这应该是 N355 首次出现在成品 NAS 设备上,可以说是一颗一直被大家忽视的“潜力股”。
首先,我们还是先来了解一下这两款CPU的具体参数吧。标准版的N150相信大家已经非常熟悉了,作为今年广泛采用的一款处理器,N150在性能和功耗方面的表现都非常出色。
Z4 Pro+ 的性能版首次用上了 N355 这颗处理器。作为一款年初才刚发布的型号,N355 拥有 8 核 8 线程的核心配置,采用 10nm 工艺制程,最大睿频频率可以达到 3.9GHz,但 TDP 功耗却只有 15W,可以说是真正做到了“低功耗、高性能”。
功耗方面,由于熊猫手上没有太多硬盘,就拿了两张闲置的二手 4TB 企业盘来做测试。开机时的峰值功耗大约是 34W,待机状态下则降到了 10W 左右。如果换成更专业的 NAS 盘,这个功耗应该还能再低一些。
功耗降低的同时也就意味着温度更低了,待机状态下CPU温度为36°左右,这里相信很多极友也关心它进程跑上来后是不是温度会飙升。用极空间内置的deepseek大模型测试,在7b模型下CPU拉满100%占用,这时候温度控制在56度左右,且一直稳定在60度以下。
在测试蓝光原盘转码的过程中,CPU 占用率大概维持在 13% 左右。连续播放了十分钟,温度一直稳定在 45℃ 上下,整体温控表现相当不错。
“芯”势力,新体验
在今年四月份的系统更新中,极空间迎来了一次重大改版。这次更新从文件管理、影音娱乐到系统安全和 UI 界面,都进行了深度优化和全面升级。从底层系统到上层应用,几乎每个模块都有所改进,一些大家期盼已久的功能也终于上线了。
在这次更新中,最直观的变化莫过于 UI 的大改版了。全新的 ZOS 系统对图标进行了重新设计,整体风格更加拟物化,辨识度也更高了。更重要的是,这次更新后终于支持自定义应用排序功能,用户可以把常用的应用排在前面,使用起来更加顺手。
不仅在 PC 端进行了更新优化,极空间的手机端界面也同步迎来了改版。整体来看,新版界面比之前更加清晰明了,各个功能模块的划分也更直观。同时,部分核心应用也做了针对性优化,比如文件管理、极影视和极相册等,界面展示更加简洁大气,使用体验感对比之前更为便携。
极相册目前已经更新到了 2.0 版本。这次全新的 2.0 版本在 UI 上进行了焕新设计,整体界面更加简洁直观。照片库中新增了“往年今日”、“按年查看”以及“我喜欢”等实用功能。
其中,“往年今日”这个功能乍看之下似乎并不起眼,但它的真正价值在于唤起人们内心深处的怀旧情绪。当“那年今日”的画面被推送至眼前时,一段段回忆便悄然浮现,带来一种熟悉又温暖的情绪触动。
照片备份备份的是记忆,也是情怀,情怀是一个很有力的钩子,也可以理解为马斯洛需求中的“归属感”——它记录的是我们走过的日子,是我们生活轨迹的真实痕迹。极相册很多看似不起眼的小功能其实都在潜移默化的帮我们勾起这份情绪,例如基于AI识别的回忆精选、足迹功能以及用户自建的宝宝相册和纪念册等等。
探索新版极相册2.0还发现一个有趣的功能,在AI场景下,点击上面的小三角新增了一个AI选片的功能,选择对应的内容范围,AI会通过大模型的识别和计算,帮你直接筛选出最好看的照片,出去旅游拍了一堆照片想发朋友圈不知道怎么凑九宫格,这下完全可以交给AI了。
除了极相册推出了2.0版本,极影视其实上个月也已经更新到了2.0。同样对UI进行了大幅调整,新版的极影视2.0在首页引入了类似流媒体平台的推荐内容流,整体页面布局也更加清晰合理。
我最喜欢的还是电影海报墙的升级,现在影视资源的名称也能自动匹配艺术标题了,海报还会拉取更清晰的大图,整体界面看起来也更加清爽美观。不得不承认,在影音娱乐这块,极影视一直就是业内其他品牌追赶的标杆。
极影视也已经全面支持全终端STRM直链播放,再加上网盘方面新增了对115网盘的支持,各位大佬那上百TB的网盘资源终于派上用场了。生成STRM文件后,极影视不仅能正常识别和刮削信息,还能像本地视频文件一样顺利播放(当然,网盘得开会员,不然没速度)。简单来说,你可以把这些远程资源当成本地影片一样轻松管理,直接添加进极影视中使用,但又不占用极空间本地的存储。
熊猫平时的工作文件大多都存在NAS里,但经常遇到领导临时提出要改文档的情况。好消息是,新版本的ZOS系统已经集成了ONLYOFFICE社区版开源办公套件,现在可以直接在本地离线编辑文档,目前支持Word文档、Excel表格和PPT演示文稿。所有操作和数据都保留在本地,不仅响应速度快,而且安全可靠,无论是个人使用、团队协作还是企业办公,都能很好地满足对隐私和协同效率的需求。
关于ONLYOFFICE,熊猫之前也做过介绍。这次极空间内置的是完整的版本,无论是操作方式还是界面设计,几乎都和PC端的 Microsoft Office 保持一致。支持文本格式设置、插入图片或表格、添加评论和批注等常用功能。文档会自动保存每一次修改,并生成历史版本,你可以随时查看旧版本,还能一键恢复到任意版本,有效避免因误操作或意外导致的数据丢失问题。
最后要提一下这次 Docker-Compose 的重磅更新,相信这个功能是很多极友都期盼已久的。现在你不再需要通过 SSH 终端手动部署容器堆栈,全新的图形化界面让整个操作流程更加直观、简单,效率也大大提升。
针对需要映射路径的项目,极空间也设计了一键查询真实路径的功能,选择需要映射的路径文件夹点击一点复制就能复制该文件夹的真实路径了,随后将复制下载的路径填写到yml代码对应的位置即可。
当然,全新的ZOS功能更新并不止熊猫描述的这些,受限于篇幅熊猫只聊到了这些个人觉得非常重要且使用的更新内容,除此之外目前极空间还上线了内置浏览器,且浏览器针对极空间NAS做了优化调整,预装了中文字库安装即用,有了内置的本地浏览器,即便是在外网的情况下也能通过浏览器去访问极空间同局域网内的任何设备与服务。
老磨具,新标杆
回归到产品本身,前面也提到过,Z4Pro+依旧沿用了Z4Pro的模具设计。Z系列的整体设计风格一直都很耐看,它不像传统NAS那样走冷峻干练的商务路线,反而多了一些年轻、时尚的气息。而这次的Z4Pro+在延续经典模具的基础上,也进行了一些细节上的调整和优化。
在配色方面, Z4Pro+依然是拥有经典的黑、白两种配色选择,Z4Pro的白色款用户评价极高,Z4Pro+自然也不会差。材质方面依旧采用金属打造,并辅以细腻的磨砂工艺,无论看起来还是摸起来都很有质感,呈现出一种低调又充满未来感的暗黑科技风。
硬盘架依然是采用按压弹出设计,拿取硬盘都非常方便。
Z4Pro+底部依然配备了一块可拆卸挡板,打开后可以轻松看到内存插槽和M.2插槽。不过需要注意的是,它只提供了一个内存插槽,最高支持32GB的容量扩展;而M.2接口则配备了两个,非常适合作为缓存盘,或用于Docker和虚拟机的存储,能够显著提升运行效率和项目响应速度。
散热方面相信不需要熊猫再说了,前面也测试了功耗与对应的散热表现,CPU满载100%的情况下稳定在60度以下,而日常使用也不存在时时刻刻满载的情况,日常温度基本会保持在40度左右的区间,这个表现还是蛮不错的。
由于模具设计沿用了Z4Pro的方案,因此在接口布局方面也保持了一致。Z4Pro+配备了 HDMI 2.0 视频输出接口、电源接口、双 2.5G 网络接口、eSATA 扩展接口,以及前置的 USB-A 和 USB-C 接口,满足多种外设连接和高速传输需求,不过个人觉得如果能增加一个TF卡槽就更方便了,期待后续的机型。
写在最后
极空间的系统其实一直都是国内最为易用的系统之一,从手机端的APP到PC端的体验,甚至于TV端的适配上,极空间一直都追求一个简单易用,产品做出来是要给人用的,让NAS好用易用没有门槛才能让用户有机会体验到产品。
ZOS系统的更新最近一年也是发生了非常大的变化,除了自身核心应用的地位,在其他一些细枝末节上的追求越来越深,而一系列看似不起眼的小功能却经常能让人眼前一亮,原来NAS还能这样,后续的更新计划中极空间也会上线全新的应用商店,通过接入更多的第三方应用一键安装,来让本身易用的极空间NAS变得更为全面。
以上便是本次分享的全部内容了,如果你觉得还算有趣或者对你有所帮助,不妨点赞收藏,最后也希望能得到你的关注,咱们下期见!
买了个山泽的HDMI分线器和线,也不知道是不是正品。
读《山居杂记》
前段时间我和hillway看过《秋园》后,时不时给两个娃讲书中的一些故事,而且感觉文字浅显易懂,情节流畅,富有感染力,小熊仔也能阅读,于是又从图书馆把《秋园》借回来,结果两个娃都很感兴趣,一有时间就坐在书桌前看起来。最近我又读了一本关于上世纪女性的回忆录《山居杂记》。
《山居杂记》的作者高诵芬出生于1918年,是杭州城里名门望族的大家闺秀。自幼家世显赫、衣食无忧、仆人众多。十八岁时奉父母之命嫁给了门当户对的徐定戡,生育三子一女,从此在家相夫教子。苦难的秋园和她的子女,与高诵芬的生活境况相比,差距太悬殊了。而百年后我们这些普通老百姓,即使再累积几代人奋斗,也很难达到这种阶层水平。
这本书是“一个闺房小姐和家庭妇女眼中、历经半世纪的生活看到的世界”。记录的有杭州旧时风俗、家乡美食、长辈亲戚、家庭教师、私人医生、佣人奶妈、旅游见闻、逃难经历等,讲述时没有居高临下、矫揉造作之感。有些篇幅描写的十分细致,如六种颜色的桂花糖、枣饼、乌糯米饭等食物制作,为结婚所做的准备和当时婚礼流程等。书中记载的幼时逢年过节的仪式感,大年初一必吃的荔枝橘子、家里西湖边庄园产的时鲜……成为孩子心中难忘的记忆。日常饮食不仅食材品类丰富,而且讲究干净卫生、顺应天时,做法讲究。这本书在写作时并非按照时间顺序,而是根据事件和人物等分章节,有多处内容交叉,被重复讲述。
这些偏重于记载家庭和习俗的日常文字,虽然书中有一个章节写到姨太太,也提到一个“混混”亲戚,可能是笔墨篇幅和记载侧重点的关系,没有什么腐朽堕落的封建末世之感,不似张爱玲小说里那种封建大家庭的气息格调。也没有奢靡之感,反而家族中有些女性生活节俭,孝敬长辈、乐善好施,宽厚待人。孩童时期也有很多有趣的事情:“我还记得我只有五六岁时,老屋还没有翻造,厕所间在卧室的后面,白天很暗。那时好像杭州还没有电灯,所以也无灯可开。我哥哥那时只有八九岁,怕黑,每次去厕所大便,都要我在他旁边坐在小凳上陪他。有一天,我学大人的口气对他说:“你要是没有我这个妹妹,就苦了!”看到这段我想起来,小猪仔平时晚上上厕所害怕,也需要人在一旁充当“闻屎官”。
高诵芬的父亲受封建思想影响,觉得女孩绝不用抛头露脸外出工作,以后教育小孩有家庭教师,做衣服有裁缝,做菜煮饭有厨师,所以只要懂点古文,学点字画作为日后消遣即可,进学校念书只会去学新潮去自由恋爱,所以就在家念私塾。高诵芬有一哥一弟,作为家中唯一的女儿,虽然父亲对她的学业不重视,在成长中也给予了充分的呵护和充裕的物质条件。她父亲婚前多次考察女婿人品相貌才能,家里花了数年时间为她准备嫁妆,装了三十六个条箱。从结婚到满月,每天她父母都会差人接她回家一次,也是杭州的风俗习惯之一,是怕女儿新作媳妇紧张劳累,回娘家去松散松散。婚后第二年生日,娘家将鸡鸭鱼肉等装在漆红大圆盆挑到婆家,还要送一桌鱼翅席过来,为了让婆家记住新娘的生日,往后每年记得加以庆祝。
书中所述几十载光阴,历经动荡和变革的年代,有着“兵戈布迁之危,疾病刀圭之惧,儿女抚育之劳,井臼操持之烦”。不过相对于普通百姓,有钱人家逃难经历就好太多了,带着一批佣人,专车送到火车站,坐二等车厢(头等只能外国人坐)吃西餐,沿途买特产小吃,专人接待并安排好住处。抗战时期杭州却歌舞升平,也能经常和丈夫到处旅游,如游黄山。
高诵芬一家居住在杭州和上海,加之又重视身体健康、讲究科学育儿,不在于支付昂贵的就诊费用,享受到的医疗条件也是领先的。在上世纪三十年代,高诵芬新婚后不孕,找多个知名西医诊断,在上海知名疗养院特等病房住院切除卵巢瘤,病房还有独立会客厅和陪护房间,除了家里佣人,又请了两位护士日夜轮流照顾。丈夫专门请了照相馆摄影师,来医院拍摄记录,并冲洗了一大本相册。出院后,丈夫担心回家恢复不好,又要求她去医生家住了一个月,在医生和特别看护照顾下,等伤口长好了才回家。他们婚后第二年逃难到里山,高诵芬摸到胸部硬块,怀疑是乳腺癌,丈夫二话不说立马决定第二天就回杭州医院检查,高价雇船。在孕期,丈夫买很多本育儿书,给她听西洋音乐。产后又请奶妈,丈夫还买了英国磅称每日测量记录婴儿体重。他们在上海也经常带四个孩子轮番去看牙医,拔牙补牙。
此外,高诵芬在回忆这些人物时,只要能记得,都会清楚记载他们的寿辰。有不少人都是晚辈很孝顺,被服侍到八九十岁高寿的。年轻时不在意寿命长短,如今看多了网上那些风险隐患事故灾难,觉得一辈子无病无灾,能身体健康、寿终正寝,也是一种福分。
拼多多16元折叠磁吸支架手机壳实测
产品说明
购买原因
为新买的iPhone 14配套购买此手机壳。
产品选择
手机壳带指环是我的刚需,但有个弊端是不能无线充。而这款手机壳同时满足指环、支架、磁吸充电,简直把我的期望拉满。
产品介绍
商品参数 | |
---|---|
品牌 | Nohon/诺希 |
保护套质地 | 液态硅胶 |
款式 | 全包式 |
流行元素 | 磁吸、支架、磨砂 |
风格 | 简约 |
购买价格
2025年5月13日购于拼多多。适配 iPhone 14,梅粉色,实付15.6元。
产品实测
包装
这种快递就没那么小心了,不过商品本身没有受损。
外观
包裹性
包裹严丝合缝,比一般的硅胶套要更用力地套进去。
支架
这个支架比想象的更薄,但是也比想象的更牢固。
无线充
满足了带壳无线充电。
指环
在某些掉落危险场景,指环给我极大安全感,所以我很看重。这款产品未言明,但是支架旋转、折叠很轻松,我觉得当指环用完全没问题。
后记
测试结果仅针对当前样本,不保证同款商品表现一致。
zblog输出热门标签
zblog输出20个热门标签
代码
{php}$tags = $zbp->GetTagList('','',array('tag_Count'=>'DESC'),array(20),'');{/php}
{foreach $tags as $tag}
<a href="{$tag.Url}" rel="tag" title="{$tag.Count} 篇文章">#{$tag.Name}</a>
{/foreach}
其中数量可以自行修改代码中的20
,改成你想要的数量
参数说明
标签网址:{$tag.Url}
标签名字:{$tag.Name}
标签下文章数量:{$tag.Count}
zblog输出分类列表
zblog输出所有分类列表,一般用于侧栏显示
{foreach $categoriesbyorder as $category}
<a href="{$category.Url}" title="{$category.Count} 篇文章" >
{$category.Name}
</a>
{/foreach}
详细参数说明如下图:
AplayerFixed背景音乐插件
AplayerFixed
Aplayer to Typecho背景音乐插件,支持使用InstantClick
或常规pjax
的主题。
功能
- 支持
InstantClick
/常规Pjax
两种模式 - 支持设置播放器位置:左下角或右下角
- 支持设置播放顺序:顺序播放或随机
- 支持调用网易云/QQ音乐歌单(内置meting音乐解析api)
下载
开源地址
京东国补三千元 iPhone 14 实测
产品说明
购买原因
我爸手机坏了,我妈准备把她的 iPhone XR 给我爸,然后自己换个新手机。当然这个事情是我来办。
产品选择
我们都习惯用苹果手机,如果换安卓,爸妈在老家手机出问题,我就无法亲自验证,所以品牌只能选苹果。至于型号,我研究了一番,认为现在 iPhone 14 最具性价比。
接下来选择平台。我第一想法还是转转,因为我妈的 XR 就是转转买的,没问题。但这次在转转筛选了好几天,能够满足无维修记录,屏幕、电池未更换过的,价格也都在 2600 以上。而我发现京东国补之后,新机价格是 2999 元。没有过多犹豫,我决定在京东买新机。
产品展示
图中显示的是合约版价格,非合约版国补后价格是 2999 元。
购买价格
2025年5月13日购于Apple产品京东自营旗舰店。iPhone 14 128G 星光色,原价 3499 元,国补减 500 元,实付2999元。
产品实测
在京东购买电子产品最看重两方面,一是正品保证,二是物流超快。而只要确保 iPhone 是正品,就无需过多检查了,有问题找 Apple Store 兜底。
物流
发货地是上海,次日到达。因为国补的要求,签收时必须拆开包装,开机,拍照记录序列号。
正品
我不怀疑京东自营店,不过为了文章的严谨性我还是到苹果官网查询了,正品无疑。
包装
京东快递送货上门,包装完好,无磕碰。
配件只有一根数据线(不带充电头)和卡针。
外观
后记
测试结果仅针对当前样本,不保证同款商品表现一致。
无知
一直以来的生活环境,或者生存方式,造就了自己的思考方式,或者说认知能力也在潜移默化中受到影响。
每当到一个新环境或者说看到新事物的时候总容易墨守成规的从已有的生活经验来理解这个新东西,毕竟那些从来没见过的东西靠想象力是难以想象出来的。
第一次在青岛听到脂渣这个东西的时候,总觉得应该跟自己小的时候吃的应该是差不多的东西。在记忆里,脂渣是使用五花肉甚至猪板油炼油之后,剩下的那些固体的渣渣。
有时候炼的太狠了甚至有那么一点点的糊味。
知道后来在超市看到他们卖的脂渣才发现,不是那种自己固认为的油渣。之前自己理解的脂渣其实叫做油渣更为合适,毕竟就是加工动物油剩下来的渣渣。而现在青岛卖的脂渣,是专门油炸加工出来的视频,甚至以后的就是纯瘦肉的,猪里脊炸出来的脂渣,拿到手里干干爽爽,上面没有任何的油渍或者水分。
虽然已经来青岛十多年了,但是开始吃脂渣却是近两年的事情,一些刻板印象觉得这个东西似乎也没有那么吸引人,或者准确点的说是自己特别想吃这个东西。当然还有一个原因就是这个东西的价格的确不便宜,纯瘦肉的一般 100 多一斤,肥瘦相间的七八十。
直到前年去十五大街附近给宝子拍写真,去那边的市场逛了一圈,看到了 在 qtv 上出现过的那个摊位,于是买了一些。后来加了微信,陆陆续续又买了不少。
最近开始服用药物之后,食欲或者说胃口又变了不少,感觉吃东西也吃不多了。
之前点外卖,总觉得有吃不饱,而现在点外卖其实对于量已经不在关注了。稍微吃点就足够了,为了能够稍微调整下饮食,于是又买了两包脂渣。主要是平时肉类也的确不怎么吃,或者说量没有那么大。
中午依然是蔬菜沙拉加一片牛排,刚好买的脂渣也送到了。可以稍微搭配一下。
吃药最大的好处,可能也在于能准确的控制热量摄入了。对于吃似乎没那么有追求了,至于好吃或者不好吃,自然就没那么关注了。
吃,自然是该尝试的还要尝试,不能那么无知,哪怕遇到不会吃的东西多吃几次也就了然了。
不过上网这件事情,的确无时不在刷新着自己的认知,学习速度是真的跟不上了。
之前只是知道“留子”是留学生,结果最近有看到个词“去父留子”。搜了一下才发现,“去父留子”也去了好几年了。这新词不理解我就认了,连记忆里的东西都变了,司马光砸瓮,一qi红尘妃子笑……脑子里也仅剩呵呵二字了。
现在是对于吃的一无所知;
对于技术毫无长进;
对于新词汇一窍不通;
甚至对于自己的记忆,都模棱两可。
The post 无知 appeared first on obaby@mars.
票务记18:再来福利 又有新发展
现在真成了个玩票的了,从业余倒票赚点零花钱到现在越来越专业,且还有点喜欢上这玩意了。玩票真的很考验心理承受能力和应变能力,三天两头都有事情发生,有的时候是好事,有时候是坏事,一会好一会坏,随时交替煎熬着度过,还好现在已经适应了。
玩票的心态越来越好了,因为把票务放到了副业上,从日常收入主位上逐步拉下来,不给予过多期望,自然就心宽了些。经过一小段时间的挣扎,这两天再次迎来大的变化。
隐私保护:因涉及隐私内容RSS已做隐藏,请通过原文链接阅读更多
版权声明:如无注明均为原创,未经允许不得任何形式转载
原文链接:票务记18:再来福利 又有新发展
自業自得
读作じごうじとく(jigō jitoku),日语里「自作自受」的意思。即自己的业障、自己所得。
自作自受的「标准」在哪里?如果一个当事人遭遇了某些在外人看上是自作自受的剧情,但是他却觉得这是一种难得的人生体验,难道我们要把这个人绑起来打到他屈服,让他承认他就应该「自作自受」?很显然,期待自作自受结局的仍然是「观众」。
我膝盖上有个疤痕,是小时候摔跤之后结痂没两天我就抠破的代价。当时上药的医生用阻吓的方式警告我,抠破结痂就会留下一辈子的疤痕,但是我又手贱,所以总是时不时地扣上两下,直到有一天我躺在床上抠破了结痂,血喷出来的那一刻我具象化了「自作自受」。
因为第二天我的衣服上、床上、墙上都是血迹,免不了一顿臭骂。但是我自己倒是合理化了这个自作自受的结果——结痂扣掉之后,伤口不痒啦!从此之后,所谓的「自作自受」就跟「油漆未干」一样,我不摸一下我怎么知道油漆干没干。
所以基本上自作自受这四个字的恐吓对我来说已经完全失效了,反倒变成了「买个教训」。
从小到大需要面临的「自作自受」情况有很多,比如「现在不好好学习将来没钱吃饭没人管你」「你如果这段时间玩过去了,暑假最后两天赶作业就知道痛苦了」「你太早谈恋爱就会耽误学习,到时候想谈恋爱还没人要」「等你到了我们这个年纪你才知道赚钱有多么辛苦」……
不得不说,这些场景预判都是非常好的剧本设定,即五分钟内将主角拉入剧情的「邀请」,比如一个不听话的小男孩突然在一夜之间长大成人,10岁的灵魂带着40岁的人生去体验他期待的「我长大以后一定会怎样」,或者说是父母苦口婆心想让他理解的「自作自受」。
没错,这个「一夜之间」就是好莱坞电影的类型之一了,例如《辣妈辣妹》《重返十七岁》《夏洛特烦恼》《羞羞的铁拳》——这一类型的电影被称之为「愿望成真」。这一类电影之所以受欢迎(我说的是市场反馈,不是您的个人喜好),是因为它既满足了幻想,也会让观众从一开始就带着强烈的「自作自受」预期。
在《凪》里我埋下了这一期的引子——没人喜欢完美的主角,如果他没有缺陷那就很难与观众形成共鸣。比如我前段时间在客厅看过几次片段剧情的《成家》,一群圣母嬲竟然是为了「善良」在帮助剧情里的每一个角色——哈?
那如果是完美的角色,他的每一个选择、每一个行为都会阴差阳错地带来好运,这个时候观众就会期待「陷阱」的出现,否则他的故事何必要「拍成」电影呢?这便是「愿望成真」这类电影的内核:
把主角(也是观众期待的)最迫切的愿望实现之后,会如何?
- 主角是弱者(不完美的)
- 因为同情,所以观众 希望 弱者的愿望被实现;
- 但同时观众 不希望 弱者永远是「赢家」,所以也期待着「自作自受」的发生;
- 主角是强者(完美的)
- 令人 生厌 的同时,又让观众察觉到主角身上的「可悲」与「闪光点」;
- 所以他必须接受「自作自受」,但他从中学会了那些让观众感到 愉悦 的特质;
不得不说,所谓的「剧本结构」,其实就是通过情绪来控制观众感官的过程(我说的是市场反馈,不是您的个人喜好)。想让人们厌恶一个角色的同时,只要稍加技巧,也可以让这种厌恶中带着一丝怜悯,以至于到最后开始同情和理解「坏人之所以变坏」的合理性。前面举例的那四部电影都是「愿望成真」中的一个子类别「身体交换」,即通过交换性别、年龄或是种族等,最终角色学会感恩。当然,这也是最容易出现「正能量自我感动」的烂片的原因。
从剧本跳脱出来,现实几乎不可能发生「愿望成真」的时候,这种场景更容易发生在「睡前妄想症」的情形当中。
从剧本的结构而言,人们对于「愿望成真」的情感又是极其哲学辩证的——我可以接受他愿望成真,但这个成真的代价就是有一段「自作自受」的剧情,让他重新理解自己得到的一切——这想必是我们在童年接受的教育,他们的底层逻辑竟然是一模一样的。
「我可以给你买这个玩具,但是你先要考到100分;如果给你买也可以,但是你如果下一次考不到100分,我会立马收走这个玩具。」——愿望、条件和诅咒。
这便是「愿望成真」的另外两个剧本内核:
- 条件:得到「魔法」要付出的代价,代价 就是在过程中 追求自我;
- 诅咒:既然有「魔法」也有使用魔法后必然遭受的 对等诅咒;
现实虽然没有「魔法」和它引发的「愿望成真」,但剧本里的内核却同样适用。「愿望成真」是一个极其双标的存在,当别人的愿望成真时,就应该按照剧本的结构去引发那些他即将面对的「自作自受」,但自己的愿望成真又不想付出那些对等的诅咒代价。
代价就是代价,它不会因为一个人的善良、邪恶、好与坏、对与错而发生本质上的改变。它存在于每一个选项的背后,但是这个代价本身是没有好坏之分的。
如果一个当事人遭遇了某些在外人看上是自作自受的剧情,但是他却觉得这是一种难得的人生体验……
这才是人生剧本里的「愿望成真」。
昨天有人在 Telegram 给我留言,问我剧本创作是否可以完全脱离现实生活凭空创造。我还没来得及回答,这是个很庞大的问题,都说「艺术源于生活、但高于生活」,但如果完全记录的是生活中那些狗屁倒灶的事,这样的作品可能就身边几个人看完能会心一笑,市场只会觉得「它跟我有什么关系」。
我也试过创造完全架空的剧本,结果很惨,因为陷入到完全主观的幻想之中,就很容易创造出「旅游导览」式的作品,这正好就是下一期想聊的话题。简单来说,所谓的「旅游导览」就是当创作者创造了一个精美巧妙的世界观后,他其实是很恐惧有人(甚至是主角)去毁掉这里的规则。最后就变成了主角在一个幻想世界束手束脚游历参观的过程——不是谁都能如此潜心地完成《荷马史诗》。
影视作品是反馈现实的「期望」,「梦想成真」就是其中一个类别,但并不是因为有了形式才有了公式,而是因为这个公式就是人性的一部分,只是作品将它们毫无遗漏地暴露,成为了最露骨且直观的表达。
【读书记1557】《汪鸿藻楷书金刚经》
众生牛马
周五,事儿还有很多没忙完,当然本质上也忙不完。这段时间早七点晚九点的忙,一天十四个小时的干活,也算是鞠躬尽瘁了,当然死而后已还谈不上,我还想多活几十年。
这一个月左右的时间,密集的进行各项工作的优化和调整,从二级班子的全员竞聘到全院质量与安全体系的重构,从临床专科的建设到整体人力资源与绩效考核的再造,一切都在忙而不乱的节奏中稳步前行。
当然,整个推进过程中,总有一些磕磕碰碰,不过框架搭好了,方向明确了,接下来就该是撸起袖子加油干了。很多时候,我们需要做到“无碍”,言行自由,心灵轻盈自在。不报有固定的鄙闻漏见,不坚持死板的条条框框,以一颗平和清静之心去待人接物,像水一样随物成形,而不像石头一样冥顽不灵。
当然,我们也需要慈悲之心,心境通透,用广大的慈悲,把天地都纳入自己的禅院,快乐从容的平波万里。回到现实,踏踏实实的从众生牛马做起,日日是好日。
穿插两部作品的巡礼:《摇曳露营△》《mono女孩》圣地巡礼之身延和内船
在结束了本栖高校的圣地巡礼之后,乘坐身延线来到身延站和内船站,这两站也是原作中出现的场景。
身延站
站内
小插曲
在拍摄身延站的时候,看到有一位摄影大佬选的角度和我极度重合,我就说了一句:“拍摄角度一模一样,一看就也是来圣地巡礼的。”
没想到这位大佬笑了,一问果然也是中国人。
事后我在B站发了圣地巡礼的视频后,没想到被这名大佬刷到了,并且一眼认出来是我,只能说这就是缘分吗?
ゆたか屋
这家店很可惜在2023年关店了,但标志性的招牌依然还在。
荣昇堂身延馒头店
抚子她们吃的身延馒头就是来自这家店。
除了周三是定休日外,营业时间是早上8:30到下午3:00。
因为下午关店比较早,所以一定要注意营业时间,以免错过。
店外。

店内全景。







店内摆放了大量原作周边,非常有特色。
馒头长椅
坐在长椅上看到的风景真的特别美丽。

来一张全景。
顺便体验同款吃身延馒头的场景。
味道是豆沙味,馒头的皮比较软糯,还有些弹牙的口感。
身延桥


如果要拍摄视觉图中的视角,需要到桥下,但因为这一天没有时间,就只在桥上拍摄了。
山梨水晶本店
说是水晶店,但其实周边占了快一半的内容了。

周边区域的全景,但这仅仅只是一小块。





店内拉满的《摇曳露营△》元素。
还发现了《mono女孩》的联动小零食!
然后买了张小贴纸和《mono女孩》的联动小零食。
船内站
站内


一出电车就是主视图出现的场景。


也是《mono女孩》圣地巡礼的场景。
我圣地巡礼了动画中所出现的圣地巡礼,这是什么套娃?
小插曲
在拍摄车站月台的时候,遇到了看起来像是当地的小姐姐,问我们是不是拍《摇曳露营△》。
在得知我们是圣地巡礼之后表示也只有《摇曳露营△》才会来这里拍。
确实,要不是这部作品,可能一辈子都不知道有这么一个地方。
船内站以前是有人车站,后来因为种种原因才变成了无人车站,所以站内还保留着一些有人车站时期的设施。
站外
在圣地巡礼了《摇曳露营△》的同时还圣地巡礼了《mono女孩》。
车站旁的厕所也是《mono女孩》中出现的场景。
南部桥
桥上的风景非常漂亮,于是录了一段视频,等整理好后再发布。
(引用自同行大佬的照片)
两种颜色的水在这里交汇,看上去好有意思。
过了南部桥后的这家加油站也是取景地。
抚子家
就如《mono女孩》所描述的,抚子家在现实中是一片空地。那么《mono女孩》剧中的抚子到底是住哪里呢?
内船寺
本来想爬上去的,结果不知道是什么原因有围栏拦起来了,于是就没有上去了,有点小遗憾。
回程
随着太阳下山,今天的行程也告一段落了。
今天大致逛了原作中的三个地点,但是由于时间的关系很多地方没有逛到,所以决定明年一定还要再来,深度体验山梨县的魅力。
有时不得不感慨あfろ老师和一起参与创作这部作品的全体工作人员的强大,可以说因为他们的努力创作,给这里带来了无穷的活力。
晚饭时间
因为接下来的行程安排,晚上我们选择了富士宫的酒店。
在入住酒店之前,先要填饱肚子,毕竟今天一天都没有吃一个像样的东西😅。
在研究了谷歌地图之后选择了距离富士宫车站附近的店——阿部。
评分居然有4.6分之高!


我点了炸鸡定食。
这上来就把我看蒙了,这个量好猛啊!每个鸡块差不多半个拳头大,然后摆了一大盘,米饭看起来也是大份的,难道富士宫的人民食量那么大的吗?


同行大佬点的天妇罗定食也把我看懵了。
这分量绝对是平时的2.5倍左右。
两个人吃了不到3000日元,考虑这个量非常划算了!
总之这家店是我吃过的和食店中最经济实惠、分量最大、最管饱的一家了。
而且关键是味道也很棒,非常推荐!
如果来富士宫玩的话建议去品尝看看,不过推荐饭要少一点呢😅。
结完账还会给一张超可爱的明信片以及一个棒棒糖。
棒棒糖已经被我解决掉了😂。
以上就是今天的所有行程了,明天开始富士宫之旅!
简易教程: C++的智能指针
C++ 智能指针教程
C++ 中的智能指针提供了自动且安全的内存管理。它们通过 RAII(资源获取即初始化)机制,帮助开发者避免内存泄漏和悬空指针的问题,确保对象在生命周期结束时被正确释放。
本教程将介绍 C++ 中三种主要的智能指针:
std::unique_ptr
:独占式所有权std::shared_ptr
:共享式所有权std::weak_ptr
:非拥有式弱引用
1. std::unique_ptr
unique_ptr
拥有独占所有权。一个资源只能被一个 unique_ptr 拥有。
示例:管理简单对象
#include <iostream> #include <memory> int main() { std::unique_ptr<int> p = std::make_unique<int>(42); std::cout << "值: " << *p << "\n"; // 转移所有权 std::unique_ptr<int> q = std::move(p); if (!p) std::cout << "p 现在是空指针\n"; std::cout << "q 指向: " << *q << "\n"; }
示例:构建链表
struct Node { int val; std::unique_ptr<Node> next; Node(int v) : val(v), next(nullptr) {} }; void printList(const std::unique_ptr<Node>& head) { const Node* curr = head.get(); while (curr) { std::cout << curr->val << " "; curr = curr->next.get(); } std::cout << "\n"; } int main() { auto head = std::make_unique<Node>(1); head->next = std::make_unique<Node>(2); head->next->next = std::make_unique<Node>(3); printList(head); }
2. std::shared_ptr
shared_ptr
允许多个指针共享同一个资源的所有权。它通过引用计数管理资源,当引用数为零时自动释放内存。
示例:共享资源
#include <iostream> #include <memory> int main() { std::shared_ptr<int> a = std::make_shared<int>(100); std::shared_ptr<int> b = a; std::cout << "a 的引用计数: " << a.use_count() << "\n"; std::cout << "b 的引用计数: " << b.use_count() << "\n"; std::cout << "*b = " << *b << "\n"; }
示例:共享链表节点
struct Node { int val; std::shared_ptr<Node> next; Node(int v) : val(v), next(nullptr) {} };
3. std::weak_ptr
weak_ptr
是一种弱引用,不拥有资源,仅用于观察 shared_ptr
所管理的对象。它常用于打破循环引用,防止内存泄漏。
示例:打破循环引用
#include <iostream> #include <memory> struct B; struct A { std::shared_ptr<B> b_ptr; ~A() { std::cout << "A 被销毁\n"; } }; struct B { std::weak_ptr<A> a_ptr; ~B() { std::cout << "B 被销毁\n"; } }; int main() { auto a = std::make_shared<A>(); auto b = std::make_shared<B>(); a->b_ptr = b; b->a_ptr = a; }
是否存在 make_weak?
不存在 std::make_weak
,因为 weak_ptr
不拥有资源,它必须引用一个已存在的 shared_ptr
。
如何创建 weak_ptr
#include <iostream> #include <memory> int main() { std::shared_ptr<int> sp = std::make_shared<int>(42); std::weak_ptr<int> wp = sp; if (auto locked = wp.lock()) { std::cout << "值: " << *locked << "\n"; } else { std::cout << "对象已被释放\n"; } }
总结
智能指针 | 所有权 | 线程安全的引用计数 | 典型用途 |
---|---|---|---|
unique_ptr |
独占 | N/A | 高效、安全的单一所有权 |
shared_ptr |
共享 | 是 | 多个所有者共享资源 |
weak_ptr |
无 | N/A | 打破 shared_ptr 的循环引用 |
C/C++编程
- C++ 教程: 用std::move来移动所有权
- C++中的 const和constexpr 比较
- 简易教程: C++的智能指针
- C++ 编程练习题: 如何合并两个二叉树?
- C++ 编程练习题 - 找出第三大的数
- C++ 编程练习题 - 最多连续的 1
- C++ 编程练习题 - 左子树叶节点之和 (深度优先+广度优先+递归)
- C++ 编程练习题 - 最多水容器 (递归)
- C++的异步编程: std::future, std::async 和 std::promise
- C编程练习题: 翻转整数位
- C++编程练习题: 找出字符串的所有大小小组合
- C/C++ 中的内存管理器(堆与栈)
- C++编程练习题: 对两单向链表求和
英文:Tutorial on C++ Smart Pointers
本文一共 375 个汉字, 你数一下对不对.
相关文章:
- 被动收入之: 微博红包 今年开始重新经营我的微博帐号 drlai 收到两笔微信红包,应该是来自于官方的支持,150元(成功提现到支付宝)。虽然这不能持久,也没多少,但毕竟实现了零的突破,意义重大。 如果流量上来,内容创作者可能会接受到比较多的赞赏,这也是一个比较简单的变现方法。这也能作为一种被动收入,不过如果不是头部网红,可能杯水车薪,但如果你有好几个类似这样的,也能积少成多! 在用户中心,微博用户可以每天登陆手机微博APP打卡,获取点数和少量的红包钱(几分钱),积少成多! 微博做些小任务可获得积分和几分钱。聊胜于无。 微博的主要盈利模式 微博的主要盈利模式主要包括以下几个方面: 广告收入:微博的大部分收入来源于广告,尤其是品牌广告和效果广告。广告形式包括信息流广告(类似于推文广告)、热门话题广告、开屏广告和视频广告。品牌和企业可以利用微博庞大的用户群和社交互动来提升曝光率、推广品牌和产品。 会员服务:微博提供的VIP会员服务,用户可以支付订阅费用来享受更多的特权,比如个性化的主题、特有的表情包、私密权限设置等。这些会员服务主要面向个人用户,提升其社交体验。 直播和打赏:微博提供直播平台,用户可以通过购买虚拟礼物来支持主播,微博会从这些打赏中抽取一定比例的分成。此外,微博与内容创作者分成,通过内容付费、知识付费等形式变现。 增值服务:针对企业和大V(拥有大量粉丝的用户),微博还提供增值服务,如账号认证、粉丝数据分析、精准推送、推广和营销工具等。这些服务帮助企业提升营销效果,同时也增加了微博的收入来源。 电商和导流:微博上有大量的电商导流业务,尤其是和明星、网红的合作推广。微博用户在浏览社交内容时,可以直接跳转到商品购买链接,微博通过这种方式赚取导流佣金。 游戏联运:微博也会与一些游戏公司合作推出联合运营的游戏,微博负责推广和流量引入,用户充值或付费时,微博可以获得一部分的分成。 这些模式相结合,使得微博能够在广告市场、内容创作和电商等多个领域获利。...
- Javascript 中 sleep 函数实现 Javascript 中并没有 built-in 的 sleep 函数支持, 在 async/await/Promise 的支持之前, 我们可以用 busy-waiting 的方式来模拟: 1 2 3...
- 换了个奥迪Q5大灯花了我1000英镑 我那辆奥迪Q5 SUV今年年检没通过,原因是左前车灯坏了,需要更换。车厂告诉我,光是订购零件就要700多英镑,加上人工费,总费用得1000英镑。但没办法,如果不修,车辆年检(MOT)就过不了,车也不能上路。 MOT是英国的机动车强制性安全检测(Ministry of Transport Test)的简称。 近侧前位置灯不工作 drl/位置灯集成(4.2.1(a)(ii)) Nearside Front Position lamp not working drl/position...
- C++ 编程练习题: 如何合并两个二叉树? 题意: 合并两个二叉树, 没有说不可以改变原来的二叉树. 合并的时候把结点求合. C/C++ 中二叉树的定义 在C或者C++中, 二叉树的定义可以很方便的用结构体来表征. 其中左右子树都是递归定义. 1 2 3 4 5 6...
- 步步高学生电脑上 Basic 编程语言 peek 用法示例 步步高学生电脑 是8位FC机的经典之作.它上面的BASIC有三个版本 1.0, 2.0 和 2.1 2.1 版本有个在线帮助,实际上是 help.cmd 1.0 是用 Esc 键退回到 DOS 的,...
- 你给SteemIt中文微信群拖后腿了么? 这年头不缺算法, 就缺数据. 这两天花了很多时间在整API上, 整完之后自己用了一下还觉得真是挺方便的. 今天就突然想看一看自己是否给大家拖后腿了, 于是调用每日中文区微信群排行榜单的API, 刷刷拿着 NodeJs 练手: 1 2 3 4 5 6...
- C++ 编程练习题 – 找出第三大的数 题意: 给出一个数组, 求第三大的数字是多少, 重复的数字并不算在内, 比如 第3大的数字是1 而不是 2. Using std::set set 是集合, 是有序的(从小到大), 集合中不包含重复的元素, 所以我们可以遍历数组并把数字添加到集合中....
- 最简单有效的过滤WordPress垃圾评论的方法 当你的Wordpress博客流量大的时候, 不免会收到很多垃圾评论. 本文介绍一种特别简单而且免费的过滤Wordpress垃圾评论的方法. 这种方法不需要你安装任何插件, 也不需要拥有修改Wordpress主题模板函数的能力, 只需要1分钟就可以搞定. 把这个列表拷贝下来 打开 WordPress 的控制面版, 到设置-讨论 拷贝上面的列表到 “评论审核” 或者 “评论黑名单”...
我曾“指点迷津”,如今选择沉默
我上班比较早,至今已有十三年有余。在我还不到二十岁的时候,当身边同龄人还在大学里上课、憧憬未来的时候,我已经坐在办公室里,开始了自己的第一份工作。也正因为起步早,等我工作几年之后,周围同龄的同学才刚刚走出校门,步入社会。
那个阶段,有不少同学或亲戚家的孩子会找到我,问我:“我该不该选择某个方向?是不是应该先参加培训班或者自学?”那时候的我,虽然已经工作了几年,但坦白说,阅历尚浅,对行业的理解还只是表面功夫。但年轻的我不懂分寸,自以为见过世面,便不吝啬地大谈特谈起来。
我会很认真地说:“某些行业已经是落日余晖,不值得投入。”或者说:“这些方向是星星之火,未来可期。”我还会按自己的经验列出路线图,告诉他们应该先做什么、再做什么,最后走上怎样的路。听我劝的,有人成了和我一样的大龄程序员;没听我劝的,有的另辟蹊径,在其他行业混得风生水起,甚至开了公司,年入百万。若干年后的今天,再回头看那些“指点迷津”的时刻,我竟然忍不住想笑。
时间是流动的,世界是变化的,没有哪个行业会永远烈火燎原般地燃烧,当然,丧葬行业或许是个例外。我们只能活在此时此刻。常听人劝说不能活在过去,其实人也不会真正活在一个不确定的将来。现实告诉我:再理想的建议,也终究敌不过个体命运的变幻无常。
后来再有人来问我择业方向,我学会了沉默。非要发表意见的时候,我会先补上一句“免责声明”:“我说的,仅供参考。”这句话,成了我多年后给自己的保护符。
因为我逐渐意识到——参与他人命运的次数越多,背负的因果就越复杂。当初“听信谗言”的那拨人,有的人进了互联网行业,可能刚好赶上了去年那波裁员潮,不知道他们有没有在心里想过:“早知道当初就不听他的,去干点别的多好。”也有没听我劝的,现在工作的不尽如人意,私下里也曾半开玩笑地说:“当年你怎么不拦着我。”这些声音,不是凭空臆想,而是真真切切听到过的。
所以我渐渐学会了放下——不再参与他人的抉择。毕竟,那是别人的人生,我没有权力置喙,也没有能力承担责任。那句话怎么说来着?“尊重他人的命运,其实无论是否有我的参与,事情都会变好的。”
到了这个年纪,我能想明白很多事,却也开始有意识地模糊掉另一些事的概念。就像某天有人问你:“你选苹果还是梨子?”换作以前,我可能会帮他分析各自的优劣,列出数据、做出推荐。但现在的我会轻描淡写地说:“我选‘或’。”
为什么选“或”?因为我两个都想要。在程序员眼中,“或”运算符是一种可以同时满足多个条件的逻辑选择——苹果也好,梨子也罢,只要符合我想要的特性,那就都是好答案。所以,在这个问题上,作为一个程序员,我至少可以赢一次。
但我也知道,生活不是代码,人生没有最优解。能选“或”,是幸运;无法两全,是常态。而我,已经不再想左右别人的选择了。
宝塔面板部署GoToSocial实例全流程指南
一、GoToSocial 项目简介
GoToSocial 是一款基于 ActivityPub 协议 的轻量级联邦社交网络服务器,支持去中心化内容分享,强调用户隐私与数据自主。通过本教程,你将在宝塔面板环境中完成以下目标:
- 搭建独立社交网络实例
- 配置 HTTPS 访问与反向代理
- 创建管理员账户并管理普通用户
- 实现数据持久化与定期备份
二、服务器与宝塔初始化
1. 基础设施准备
服务器选型
- 推荐配置:2核4GB内存 + 20GB存储(阿里云/腾讯云轻量服务器)
- 操作系统:Ubuntu 22.04 LTS(兼容性最佳)
-
防火墙开放端口:22(SSH)、80(HTTP)、443(HTTPS)、8080(GoToSocial服务)
域名解析
注册域名(如 social.example.com),在域名服务商处添加 A记录指向服务器IP,等待解析生效(约10分钟)。
2. 宝塔面板安装
登录服务器终端,执行以下命令:
sudo apt update && sudo apt install -y wget wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh sudo bash install.sh
安装完成后,复制宝塔登录链接(如 http://服务器IP:8888/xxx),使用生成的账号密码登录。
3. 安装必备组件
在宝塔「软件商店」依次安装:
- Docker(容器化运行环境)
- Docker Compose(容器编排工具)
- Nginx(反向代理服务器)
三、项目目录与权限配置
1. 创建专用数据目录
在宝塔「终端」执行:
mkdir -p /opt/gotosocial/data # 创建项目数据目录 chown -R 1000:1000 /opt/gotosocial/data # 匹配容器默认用户权限
原理:GoToSocial 容器默认以用户 1000 运行,需确保宿主目录所有者为相同 UID/GID,避免权限错误。
2. 下载 Docker Compose 模板
cd /opt/gotosocial wget https://raw.githubusercontent.com/superseriousbusiness/gotosocial/main/example/docker-compose/docker-compose.yml -O docker-compose.yaml
若下载失败,手动从 [官方仓库]复制内容保存。
四、容器配置与启动
1. 编辑 docker-compose.yaml
在宝塔「文件」中打开 /opt/gotosocial/docker-compose.yaml ,修改以下关键参数:
services: gotosocial: image: docker.io/superseriousbusiness/gotosocial:latest environment: GTS_HOST: social.example.com # 替换为你的域名 TZ: Asia/Shanghai GTS_LETSENCRYPT_ENABLE: false # 关闭容器内HTTPS,由宝塔处理 ports: - "127.0.0.1:9090:8080" # 仅本地监听,通过Nginx反代到公网 volumes: - /opt/gotosocial/data:/gotosocial/storage
2. 启动容器
cd /opt/gotosocial docker-compose up -d # 后台启动容器(首次拉取镜像需等待2-3分钟)
验证状态:执行 docker ps ,若显示 127.0.0.1:9090->8080/tcp 且状态为 Up ,表示启动成功。
五、宝塔反向代理与 HTTPS 配置
1. 创建站点并申请 SSL 证书
步骤1:添加站点
在宝塔「网站」→「添加站点」中填写:
- 域名:social.example.com
- 数据库:不创建(GoToSocial 使用内置数据库)
步骤2:申请证书
进入站点「SSL」→「Let’s Encrypt」,勾选「强制HTTPS」和「HTTP/2」,点击「申请」生成证书。
2. 配置 Nginx 反向代理
在站点「设置」→「反向代理」中添加:
- 目标URL:http://127.0.0.1:9090
- 高级设置:勾选「终止SSL」,自动填充证书路径
- 完整配置:
location / { proxy_pass http://127.0.0.1:9090; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_ssl_server_name on; # 解决502错误关键配置 }
保存后 Nginx 自动重载配置。
3. 验证 HTTPS 访问
打开浏览器访问 https://social.example.com ,若显示登录页面且地址栏有锁图标,说明配置成功。若遇 502 Bad Gateway ,检查:
- 容器状态(docker ps)
- 反向代理目标 URL 是否正确
- 宝塔防火墙是否放行 9090 端口
六、用户管理与权限配置
1. 查询容器 ID
docker ps -a # 复制 CONTAINER ID(如 98999461e756)
2. 进入容器终端
docker exec -it 98999461e756 /bin/sh # 替换为实际容器 ID
3. 创建管理员账户
./gotosocial --config-path /gotosocial/config.yaml admin account create \ --username admin_user \ --email admin@example.com \ --password 'Strong!Pass2025' \ --local-only # 创建本地管理员账户(非联邦)
密码要求:至少10位,包含大小写字母、数字、符号(如 MyPass!@#2025)。
4. 提升普通用户为管理员
./gotosocial --config-path /gotosocial/config.yaml admin account promote --username demo_user
验证方法:使用该账户登录后访问 /_admin ,若显示后台则提权成功。
5. 删除用户(不可逆操作)
./gotosocial --config-path /gotosocial/config.yaml admin account delete --username demo_user
七、常见问题与解决
问题1:容器启动失败
排查步骤:
- 检查数据目录权限:ls -ld /opt/gotosocial/data
- 查看容器日志:docker logs gotosocial
- 确保 GTS_HOST 与域名完全一致
问题2:HTTPS 页面显示不安全
解决方法:
- 在宝塔「SSL」中重新申请证书
- 清除浏览器缓存,使用无痕模式访问
问题3:用户创建失败(邮箱已存在)
处理流程:
- 进入容器:docker exec -it 容器ID /bin/sh
- 列出所有用户:./gotosocial admin account list
- 删除冲突账户:./gotosocial admin account delete –username 冲突用户名
八、后续维护与升级
1. 数据备份
在宝塔「计划任务」中添加每周备份:
任务类型:Shell脚本 命令:docker exec gotosocial tar czvf /gotosocial/storage/backup_$(date +\%Y\%m\%d).tar.gz /gotosocial/storage 执行周期:每周日0点
2. 版本升级
cd /opt/gotosocial docker-compose pull # 拉取最新镜像 docker-compose down --remove-orphans docker-compose up -d # 启动新版本
3. 开放公共注册
登录管理员后台 →「设置」→「注册」,勾选「允许新用户注册」,可选开启邀请码或邮箱域名限制。
九、成功标志
- 浏览器访问 https://你的域名 显示登录页面,地址栏有锁图标。
- 管理员账户可登录后台,查看实例统计信息。
- 通过 [Fediverse 实例检测工具]验证联邦通信功能正常。
通过本教程,你已完成从服务器初始化到用户管理的全流程操作,可根据实际需求扩展功能(如邮件通知、存储扩展)。部署过程中遇到问题时,建议对照步骤逐一排查,或参考 [GoToSocial 官方文档]获取更多细节。
参考:博友阿均的教程文档
我的gotosocial实例:段先森, @duanxiansen@duanbo.cc
借助AI快速开源了三个小工具: 写代码越来越像做产品了, AI 真把我宠坏了(Vibe Coding)
程序员的未来?Vibe Coding + AI 一起上!
借助 AI 快速开源了三个小工具
最近,我利用 ChatGPT-4o 和 o4-mini 快速开发并开源了三个小工具。起因其实很简单——每次想转换 YAML/JSON 或进行 Base64 编码时,我总是得去 Google 搜索在线工具。时间一久,我不禁开始思考:既然每次都要用,为什么不自己动手实现一个呢?正好我也在学习 React,把这个过程当作练习岂不是一举两得?
于是我开始“扮演”产品经理,向 ChatGPT 提出需求,它很快就为我搭建好了基础框架。包括项目结构、CI 工具(单元测试、ESLint——后来我换成了 Prettier)、README 文档,甚至是 GitHub Actions 上的自动化测试和部署流程,全部一气呵成。
这几个工具都部署在 GitHub Pages 上,开源、带测试、写了文档,虽然小巧,但功能完整,不需要自建服务器就能稳定运行,部署成本几乎为零。
YAML/JSON 转换工具
用于在 YAML 和 JSON 格式之间进行双向转换,支持美化和压缩,简单直观。
Base64 编码/解码工具
支持文字和文件的编码解码操作,可以将文件内容直接转换为 Base64 字符串,或者反向解析恢复文件。
ROT47 混淆工具
这是一个轻量级的字符串混淆工具。ROT47 的特点是“加密两次即为原文”,类似于异或操作,适用于简单场景下的信息模糊处理。
程序员的门槛正在降低
AI 的发展速度太快了,现在生成代码的质量不仅更高,出错率也更低。即便出错,只需将报错信息交还给 AI,它就能分析并修正。程序员的角色正在转变:与其说是手工写代码,不如说是理解需求、与 AI 高效沟通,并拼装整合它给出的解决方案。
对我来说,项目最初的搭建一直是拖延的主要原因。ChatGPT 正好擅长这一环节——自动生成 boilerplate,让我几乎能“秒启动”一个新项目,显著提升了开发效率。
我已经养成每天使用 AI 的习惯,甚至已经很少再使用 Google 搜索。遇到问题,第一反应是直接问 ChatGPT,不仅快,还能一步到位解决问题。
Vibe Coding:AI 驱动的编程方式
Vibe Coding 这个概念今年特别火,核心思想是“用氛围编码”。也就是说,程序员不再执着于每一行代码的细节,而是通过自然语言描述需求,让 AI 来实现代码的生成、重构与调试。
Andrej Karpathy (2025)
TLDR;Vibe 编码是一种新兴的软件构建实践,它用简单的语言描述你想要的内容 – 然后让 AI 处理代码和测试。
TLDR; Vibe coding is the emerging practice of building software by describing what you want in plain language – and letting AI handle the code and test.
我发现自己越来越倾向于这种方式。遇到 bug,第一时间就将错误日志扔给 ChatGPT 处理。虽然效率很高,但也让我逐渐失去了深入思考和调试的乐趣。
现在还有很多支持 Vibe Coding 的工具,比如 Cursor,或者在 VSCode 中配置 AI Agent。你只需告诉它“我要实现什么”,它就能完成代码编写、框架搭建,甚至进行模块拆解和逻辑优化。而你要做的,仅仅是审查和接受它的建议——这不就是产品经理的工作吗?
初级程序员的挑战与机会
AI 工具的普及正在重塑编程的边界,传统“照着教程敲代码”的模式已经远远落后。未来,初级程序员面临的挑战不再是“学不会写代码”,而是“不会用 AI”。
想要不被淘汰,最重要的是掌握如何高效地与 AI 协作,提升自己的系统思考与设计能力。AI 是强大的助手,但人类的洞察、判断和创造,依然无可替代。
未来属于那些善于利用工具、不断精进自己思考能力的人。也许“写代码”的定义正在改变,但“解决问题”的本质永远不会变。
AI大大提高了生产力,执行力和创造力会更加重要。软件工程师需要懂得怎么用AI来干活拧螺丝(开发/调试/解决问题)。感觉程序员的门槛瞬间变得好低,只要懂得看懂AI生成的代码,懂得基本的软件工程就可以了。
ChatGPT 可以拿来做什么?
- 硅谷娇妻是怎么样的? 让四个大语言模型AI来告诉你
- 教娃编程之: ChatGPT写了一个Python交互程序调用x.ai的Grok大语言模型
- 软件工程师可以通过ChatGPT来帮助审核代码(提高代码质量)
- ChatGPT-4o好幽默:给我画了两张北京女孩穿吊带/迷你裙
- 可以用ChatGPT来轻松转换编程语言
- ChatGPT最擅长的任务之: 写邮件
- ChatGPT 使用 Promise.All 重构/重写代码(并行发送请求)
- ChatGPT-4 使用 Math Wolfram 插件解决数学脑筋急转弯问题
- ChatGPT (3.5和4) 解2023年高考数学题
- 问了ChatGPT比特币2023年年底多少钱(ChatGPT能预测或者估计将来?)
- 让ChatGPT给孩子讲讲什么是公司股票
- 教媳妇: 自定义ChatGPT攻略 | 币价查询GPT
- AI 美女视频 - 抖音网红要失业了?
- 借助AI快速开源了三个小工具: 写代码越来越像做产品了, AI 真把我宠坏了(Vibe Coding)
ChatGPT 通用人工智能
- ChatGPT崛起让网站流量大幅度减少, 搞不到钱了
- 解决单点故障: STEEM区块链ChatGPT机器人的多个读进程
- 系统设计: Steem区块链ChatGPT机器人
- 整合 ChatGPT Prompt AI到 STEEM 区块链上!
- 整合 ChatGPT 到微信公众号机器人
- ChatGPT在数学和逻辑方面表现不佳
- 浅谈ChatGPT对用户生成内容 (UGC)的影响
- 我儿子也会 Prompt Engineering
- 未来10年的下一个技术趋势是什么?
Grok 3
字节/豆包/AI
英文:From Idea to GitHub Pages: Building Tools with AI and Vibe Coding
本文一共 1266 个汉字, 你数一下对不对.
相关文章:
- 特朗普加关税的公式竟然是EXCEL里弄的? 这两天中美关税大战越演越烈,据说,特朗普加关税的计算方式竟然是直接在EXCEL电子表格里弄的,具体如下: 其中 I 是 Import,进口;E 是 Export 出口。 优美又实用的公式家族又添新成员 勾股定理: 欧拉恒等式: 牛顿运动定律: 爱因斯坦质能等价公式: 特朗普的“互惠关税”公式:,其中 I...
- 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
- 测测你的幸运 – Linux Fortune-Teller LINUX 下有很好很好玩的命令,之前已经介绍过: figlet, rig, curl. 现在推荐另一个 命令 fortune 是用来随机显示一段(句)话的.fortune 在英文里就是幸运的意思. 这个命令可以不需要 参数 如果没有 可以通过 apt-get...
- 教娃编程有趣的瞬间 vlog视频集合 教娃700天:写在教娃编程700天, what’s next?。有很多有意思的瞬间记录一下,持续更新。 和孩子一起打闹,学习,成长。 教娃编程孩子有趣的瞬间 vlog(Day 641) 娃说我不够 Senior(Day 701) Bro.. I thought you’re like...
- 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
- 用 SB2000 的 FBASIC 计算圆周率后80位 英文同步 SB2000 的 FBASIC 是浮点 BASIC 的意思, 就是说可以用在计算一些数值,高级计算机.今天我们还测一下它的计算性能,之前大概知道很慢.. 计算圆周率有很多公式,收敛度不一样, 我们挑一个性价比较高的,比较容易实现的..比如这个: 在SB2000上,80位要算5 小时; 40位1个小时; 20位几分钟, 真得很慢....
- 推荐一款 CHROME 插件 – Wappalyzer 这个CHROME浏览器插件很方便的可以让你知道当前标签页里的网页 有用到哪些 技术. 你可以用它来检查是否插件正常工作. 1. CLOUD FLARE CDN 2. ADSENSE 3. GOOGLE ANALYTICS 4. Gravatar...
- 你要找什么样的老婆? 找媳妇的标准 昨天和网友在剑桥面基, 网友奔现, 他从爱尔兰过来, 小我12岁, 就聊到了找对象的标准. TLDR; 找老婆不要(只)看颜值, 而要注重性格, 为人处事和顾家等更重要的品质, 当然性和谐也很重要. 在当今社会, 人们对于找伴侣的标准有所不同. 有些人认为颜值是最重要的, 因为外貌吸引力可以让人在日常生活中感到愉悦, 这是人的本性,...
【日记】2025.05.15
1.冷!
昨天晚上有点热,寝室的同学商量了一下,就打开了空调的除湿。很快啊,环境就变得十分的舒适。
但是等到今天早上的时候,我发现外面和冰窖一样,我盖的还是夏天的薄被子,是根本不敢迈出被子一步啊。
后来回看了一下温度曲线,怎么说呢,空调确实一直在除湿,湿度一直保持在50%左右。但是设置的26度根本没用,它只管除湿了,根本不管温度啊!
难怪晚上一直说除湿比制冷凉快,可不是比制冷凉快嘛。制冷到26度就不会继续下降了。但是除湿不是,它的目标是降低湿度,然后温度就开始持续下降了。。。
2.剪头发
说起来,这周已经是第12周了,但是我一直都没剪过头发。其实很早之前就想剪了,但是由于种种原因都没剪。
主要是,我其实还是挺讨厌/害怕剪头发的。这应该和我小时候的经历有关。
我小时候的头发都是我妈妈剪的,电动理发器电池不是很好,于是就会感受到头皮的疼痛。她后面不知道从哪里弄了一把剪刀,那个剪刀有时候剪下去也是疼的,就十分的难受。所以我一直都不是很喜欢剪头发。
但是,现在头发长了就很难受,两侧的头发就很影响我戴眼镜。(属于是每次促使我剪头发的动力了)所以还是去剪了。
3.一颗百变萝卜同学送的生日礼物
没想到还能新的生日礼物,这个战线为什么会被拉的这么长啊喂。她送的是一个土豆的抱枕,虽然说,我看着很像一个花生。

学习周刊-总第211期-2025年第20周
凛酱部分的视频终于剪好了。视频:https://www.bilibili.com/video/BV1...
凛酱部分的视频终于剪好了。
视频:https://www.bilibili.com/video/BV1LTECzVEiU