普通视图

发现新文章,点击刷新页面。
昨天 — 2025年5月20日首页

HEY is finally for sale on the iPhone!

2025年5月20日 21:52
Our battle with Apple over their gangster attempt to extort 30% of our HEY revenues was one of the defining moments of my career. It was the kind of test that calls you to account for what you believe and asks what you're willing to risk to see it through. Well, we risked everything, but also secured a four-year truce, and now near-total victory is at hand: HEY is finally for sale on the iPhone in the US!

Credit for this amazing turn of events goes to Epic Games founders Tim Sweeney and Mark Rein, who did what no small developer like us could ever dream of doing: they spent over $100 million to sue Apple in court. And while the first round yielded very little progress, Apple's (possibly criminal) contempt of court is what ultimately delivered the resolution. Thanks to their fight for Fortnite, app developers everywhere are now allowed to link out of apps to their own web-based payment system in the US store (but, sadly, nowhere else yet).

This is all we ever wanted from Apple: to have a way to distribute our iPhone apps and keep the customer relationship by billing directly. The 30% toll gets all the attention, and it is ludicrously egregious, but to us, it's just as much about retaining that direct customer relationship, so we can help folks with refunds, so they don't tie their billing for a multi-platform email system to a single manufacturer.

Apple always claims to put the needs of the users first, and that whatever hardship developers have to carry is justified by their customer-focused obsession. But in this case, it's clear that the obsession was with collecting the easiest billions Apple has ever made, by taking an obscene cut of all software and subscription sales on the platform.

This obsession with squeezing every last dollar from developers has produced countless customer-hostile experiences on the iPhone. Like how you couldn't buy a book in the Kindle app before this (now you can!). Or sign up for a Netflix subscription (now you can!). Before, users would hunt in vain for an explanation inside these apps, and thanks to Apple's gag orders, developers were not even allowed to explain the confusing situation.

It's been the same deal with HEY. While we successfully fought off Apple's attempt to extort us into using their in-app payment system (IAP), we've been stuck with an awkward user experience ever since. One that prevented new customers from signing up for a real email address in the application, and instead sent them down this bizarre burner-account setup. All so the app would "do something", in order to please an argument that App Store chief Phil Schiller made up on the fly in an interview.

That's what we can now get rid of. No more weird burner accounts. Now you can sign up directly for a real email address in HEY, and if you like what we have to offer (and I think you will!), you'll be able to pay the $99/year for a subscription via a web-based flow that it's now kosher to link to from the app itself.

What a journey, and what a needless torching of the developer relationship from Apple's side. We've always been happy to pay Apple for hosting our application on the App Store, as all developers have always needed to do via the $99/year developer fee. But being forced to hand over 30% of the business, as well as the direct customer relationship, was always an unacceptable overreach.

Now that's been arrested by Judge Yvonne Gonzalez Rogers from the United States District Court of Northern California, who has delivered app developers the only real relief that we've seen in this whole sordid monopoly affair that's been boiling since 2020. It's a beautiful thing.

It also offers Apple an opportunity to bury the hatchet with developers. They can choose to accept the court's decision in full and worldwide. Allow developers everywhere the right to link to their own billing flow, so they can retain their own customer relationship, and so business models that can't carry a 30% toll can flourish.

Besides, Apple's own offering will likely still have plenty of pull. I'm sure many small developers would continue to consider IAP to avoid having to worry about international taxes or even direct customer service. Nobody is taking that away from Apple or those developers. All Judge Rogers is demanding is that Apple compete fairly with alternative arrangements.

In case Apple doesn't accept the court's decision — and there's sadly some evidence to that — I hope the European antitrust regulators watch the simple yet powerful mechanism that Judge Rogers has imposed on Apple. While I'd love side loading as much as the next sovereign techie who wants to own the hardware I buy, I think we can get the lion's share of independence by simply being allowed to link out of the apps, just like has been so ordered by this District Court.

I do hope, though, that Apple does accept the court's decision. Both because it would be a stain on their reputation to get convicted of criminal contempt of court, but also because I really want Apple to return to being a shining city on the hill. To show that you can win in the market merely by making better products. Something Apple never used to be afraid of doing. That they don't need these gangster extortion techniques to make the numbers that Cook has promised Wall Street.

Despite moving on to Linux and Android, I have a real soft spot for Apple's taste, aesthetics, and engineering prowess. They've lost their way and moral compass over the last half decade or so, but that's only one leadership pivot away from being found again. That won't win back all the trust and good faith that was squandered right away, but they'll at least be on the long road to recovery.

Who knows, maybe developers would even be inclined to assist Apple next time they need help launching a new device in need of third-party software to succeed.


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

2025年5月20日 09:35

前言

weekly_review_96_new

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

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

iOS/SwiftUI 开发

学习资源

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

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

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

开发环境搭建

xcode_completion

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

xcode_copilot

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

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

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

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

brew install xcode-build-server xcbeautify swiftformat

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

上述依赖都安装完成后

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

cursor_sweetpad

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

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

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

swift_cursor_roocode

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

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

cursor_agents_ios

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

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

有趣的事与物

输入

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

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

收藏

文章

视频

电影

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

剧集

音乐

昨天以前首页

DMIT - 高端优化线路 VPS 服务商,三网直连/免费换IP

2025年5月18日 23:07

DMIT,在中文社区被戏称为「大妈」,成立于2017年,这是一家提供高性能、高品质的 VPS 服务的海外主机商,,以优质的硬件配置和网络优化著称,尤其适合追求稳定、低延迟的全球用户,尤其以优质线路(如 CN2 GIA、AS9929、CMI 等)和低延迟著称。也是著名VPS厂商搬瓦工(Bandwagonhost)的上游之一。

地址:https://www.dmit.io/aff.php?aff=9154

核心优势

  • 高端硬件:采用 AMD EPYC 处理器、NVMe SSD 存储,确保高吞吐量与低延迟。
  • 全球网络:核心节点覆盖洛杉矶、香港、东京等地,接入 CN2GIACMIN29929 优化线路,国内访问体验优异。
  • 高可靠性:产品线路稳定性非常优秀(美西CN2产品几乎一条直线),提供 99% SLA 的可用性保障。
  • 灵活配置:提供多种VPS方案,满足不同业务场景的需求,支持按需扩展。

产品提供3天(且30G)内无条件退款、30天内剩余价值退款;多数国内优化路线产品,提供每15天免费更换一次IP的服务!(搬瓦工的同类产品,更换费用为8.79美元/次)

美国洛杉矶VPS

Premium 系列(代表产品,三网CN2GIA回程,保障优化线路)

名称配置价格链接
LAX.Pro.WEE1C1G20G
500G/500Mbps
$39.9/年【活动款缺货】
LAX.Pro.MALIBU1C1G20G
1T/1Gbps
$49.9/年【活动款缺货】
LAX.Pro.TINY1C2G20G
1T/1Gbps
$9.9/月
$88.88/年
https://www.dmit.io/aff.php?aff=9154&pid=100
LAX.Pro.POCKET2C2G40G
1.5T/4Gbps
$14.9/月
$159.98/年
https://www.dmit.io/aff.php?aff=9154&pid=137
LAX.Pro.STARTER2C2G80G
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.INTRO1C1G10G
500G/1Gbps
$29.9/年【活动款缺货】
LAX.EB.WEE1C1G20G
1T/1Gbps
$39.9/年【活动款缺货】
LAX.EB.TINY1C2G20G
1.5T/2Gbps
$9.9/月
$88.88/年
https://www.dmit.io/aff.php?aff=9154&pid=189
LAX.EB.POCKET2C2G40G
3T/4Gbps
$14.9/月
$159.98/年
https://www.dmit.io/aff.php?aff=9154&pid=190
LAX.EB.STARTER2C2G80G
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.Fixed2C2G40G
1T/300Mbps
$139/年【活动款缺货】
LAX.sPro.CREATOR2C2G20G
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.WEE1C1G20G
1T/1Gbps
$189/年【活动款缺货】
TYO.EB.TINY1C1G20G
1T/1Gbps
$25.9/月
$310.8/年
https://www.dmit.io/aff.php?aff=9154&pid=221
TYO.EB.STARTER1C2G40G
2T/2Gbps
$55.9/月
$670.8/年
https://www.dmit.io/aff.php?aff=9154&pid=222

移动表现优秀,电信联通由于CMI跨运营商会QoS,速度稍差。

Premium 系列(顶级优化产品,三网CN2GIA回程,保障优化线路)

名称配置价格链接
TYO.Pro.Shinagawa1C2G60G
500G/500Mbps
$199/年【活动款缺货】
TYO.Pro.TINY1C1G20G
300G/1Gbps
$21.9/月
$262.8/年
https://www.dmit.io/aff.php?aff=9154&pid=138
TYO.Pro.STARTER1C2G40G
500G/1Gbps
$39.9/月
$478.8/年
https://www.dmit.io/aff.php?aff=9154&pid=139

最顶级的日本优化线路产品!当然价格也同样顶级~

中国香港VPS

Eyeball 系列(三网CMI直连回程,移动不错、电信联通不够出色)

名称配置价格链接
HKG.EB.WEEv21C1G20G
450G/500Mbps
$179.9/年【活动款缺货】
HKG.EB.TINYv21C1G20G
1T/1Gbps
$29.9/月
$358.8/年
https://www.dmit.io/aff.php?aff=9154&pid=210

移动表现优秀,电信联通由于CMI跨运营商会QoS,速度稍差;性价比不如瓦工的HK85机房产品(同为三网CMI回程)。

Premium 系列(顶级优化产品,三网CN2GIA回程,保障优化线路)

名称配置价格链接
HKG.Pro.VICTORIAv21C2G80G
500G/500Mbps
$298.88/年【活动款缺货】
HKG.Pro.TINY1C1G20G
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?

2025年5月19日 17:37
Have you thought about doing the opposite of whatever you're doing or considering? It's a really helpful way to test your assumptions and your values. What does the opposite look like, how would it work?

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.

We did this a while back with full-time managers. We'd been working for nearly two decades without any, but exactly because it'd been so long, we were drawn to try the opposite, just to see what we might have missed. So we did. Hired a few full-time managers to help us test that assumption for a few years.

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.

Because you're wrong about something. I guarantee it. We all are.

周报 #95 - All AI 与 No AI

2025年5月19日 11:02

前言

weekly_review_95

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

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

All AI 与 No AI

AI 与自我

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

ai_ego

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

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

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

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

ai_renaibao

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

NO AI

polebug_ai

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

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

ai_code_wwwyesterday

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

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

AI 与思考能力

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

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

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

有趣的事与物

软件

subo_screenshot

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

输入

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

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

收藏

文章

视频

剧集

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

2025年5月19日 09:03

前言

weekly_review_94

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

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

生活的界限与真实感

界限

severance_post

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

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

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

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

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

真实感

DSCF0710

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

DSCF0731

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

i_m_still_here

movie_threater

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

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

苦尽柑来遇见你

kujinganlai

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

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

有趣的事与物

输入

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

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

播客

收藏

文章

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

视频

剧集

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

C++ 教程: 用std::move来移动所有权

2025年5月19日 05:29

📘 C++ 移动语义与 std::move() 教程

C++的std::move用于转移变量/对像的所有权/Ownership。

🔹 什么是移动语义?

在 C++ 中,移动语义通过转移资源所有权/Ownership(如内存或文件句柄)来优化性能,而不是复制它们。

移动语义是在 C++11 中引入的,它允许:

  • 更快速地传递大型或昂贵的对象
  • 更高效地使用临时值

🔹 什么是 std::move()?

std::move(x) 并不会真的移动任何东西 —— 它只是将 x 转换为一个 右值引用(即 T&&),告诉编译器:
你可以把这个对象当作临时对象来处理并移动它。

要真正实现移动,你的类型必须实现 移动构造函数移动赋值运算符

✅ 什么时候该用 std::move()?

在以下情况下使用它:

  • 你想 转移资源的所有权
  • 你正在处理 复制开销大的对象(如 std::stringstd::vectorunique_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++编程

英文:Tutorial on C++ std::move (Transfer Ownership)

本文一共 880 个汉字, 你数一下对不对.
C++ 教程: 用std::move来移动所有权. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c C++ 教程: 用std::move来移动所有权 C++ 学习笔记 编程 计算机
The post C++ 教程: 用std::move来移动所有权 first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 简易教程: C++的智能指针 C++ 智能指针教程 C++ 中的智能指针提供了自动且安全的内存管理。它们通过 RAII(资源获取即初始化)机制,帮助开发者避免内存泄漏和悬空指针的问题,确保对象在生命周期结束时被正确释放。 本教程将介绍 C++ 中三种主要的智能指针: std::unique_ptr:独占式所有权 std::shared_ptr:共享式所有权 std::weak_ptr:非拥有式弱引用 1. std::unique_ptr unique_ptr 拥有独占所有权。一个资源只能被一个...
  2. 借助AI快速开源了三个小工具: 写代码越来越像做产品了, AI 真把我宠坏了(Vibe Coding) 程序员的未来?Vibe Coding + AI 一起上! 借助 AI 快速开源了三个小工具 最近,我利用 ChatGPT-4o 和 o4-mini 快速开发并开源了三个小工具。起因其实很简单——每次想转换 YAML/JSON 或进行...
  3. 被动收入之: 微博红包 今年开始重新经营我的微博帐号 drlai 收到两笔微信红包,应该是来自于官方的支持,150元(成功提现到支付宝)。虽然这不能持久,也没多少,但毕竟实现了零的突破,意义重大。 如果流量上来,内容创作者可能会接受到比较多的赞赏,这也是一个比较简单的变现方法。这也能作为一种被动收入,不过如果不是头部网红,可能杯水车薪,但如果你有好几个类似这样的,也能积少成多! 在用户中心,微博用户可以每天登陆手机微博APP打卡,获取点数和少量的红包钱(几分钱),积少成多! 微博做些小任务可获得积分和几分钱。聊胜于无。 微博的主要盈利模式 微博的主要盈利模式主要包括以下几个方面: 广告收入:微博的大部分收入来源于广告,尤其是品牌广告和效果广告。广告形式包括信息流广告(类似于推文广告)、热门话题广告、开屏广告和视频广告。品牌和企业可以利用微博庞大的用户群和社交互动来提升曝光率、推广品牌和产品。 会员服务:微博提供的VIP会员服务,用户可以支付订阅费用来享受更多的特权,比如个性化的主题、特有的表情包、私密权限设置等。这些会员服务主要面向个人用户,提升其社交体验。 直播和打赏:微博提供直播平台,用户可以通过购买虚拟礼物来支持主播,微博会从这些打赏中抽取一定比例的分成。此外,微博与内容创作者分成,通过内容付费、知识付费等形式变现。 增值服务:针对企业和大V(拥有大量粉丝的用户),微博还提供增值服务,如账号认证、粉丝数据分析、精准推送、推广和营销工具等。这些服务帮助企业提升营销效果,同时也增加了微博的收入来源。 电商和导流:微博上有大量的电商导流业务,尤其是和明星、网红的合作推广。微博用户在浏览社交内容时,可以直接跳转到商品购买链接,微博通过这种方式赚取导流佣金。 游戏联运:微博也会与一些游戏公司合作推出联合运营的游戏,微博负责推广和流量引入,用户充值或付费时,微博可以获得一部分的分成。 这些模式相结合,使得微博能够在广告市场、内容创作和电商等多个领域获利。...
  4. 步步高学生电脑上 Basic 编程语言 peek 用法示例 步步高学生电脑 是8位FC机的经典之作.它上面的BASIC有三个版本 1.0, 2.0 和 2.1 2.1 版本有个在线帮助,实际上是 help.cmd 1.0 是用 Esc 键退回到 DOS 的,...
  5. 换了个奥迪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...
  6. C++ Ranges 教程 C++20 引入了 ranges(范围),这是一个强大且优雅的抽象,用于处理序列(如数组、vector 等)。相比传统的迭代器或旧式循环,Ranges 提高了代码的可读性、可组合性和性能。 什么是 Range? 在 C++20 中,range(范围) 是一种抽象,代表一个可以迭代的元素序列。它与 views(视图) 和 actions(操作) 如过滤、转换等配合使用非常自然。...
  7. C++中的 const和constexpr 比较 C++ const 与 constexpr:真正的区别是什么? 一眼看都是定义常量。 为什么这很重要 现代 C++ 鼓励编写不可变、高效且表达力强的代码。两个关键字—const 和 constexpr—是这一理念的核心。它们看起来很相似,但理解它们的不同语义,对于正确利用编译期与运行期行为至关重要。 高层次对比 特性 const constexpr...
  8. 你给SteemIt中文微信群拖后腿了么? 这年头不缺算法, 就缺数据. 这两天花了很多时间在整API上, 整完之后自己用了一下还觉得真是挺方便的. 今天就突然想看一看自己是否给大家拖后腿了, 于是调用每日中文区微信群排行榜单的API, 刷刷拿着 NodeJs 练手: 1 2 3 4 5 6...

解锁高效开发利器——Gitness,助力你的DevOps之旅

2025年5月18日 22:19

在快节奏的软件开发世界中,高效的代码托管和自动化部署是每个开发团队的追求。你是否曾为繁琐的 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_UIDGITNESS_PRINCIPAL_ADMIN_PASSWORD

目前配置参数过多,稍微配置不对还可能有 bug。针对这个

  • 我司会开源 GitFox,基于 Gitness 定制的 fork 版本,一些额外特性功能的补充(企业、与禅道的联动)
  • 我个人也维护了一套 Gitness 的魔改版本 Gitless,在上游的版本增加了个人开发者常用的特性(仅从我个人使用)

使用说明

这里简单过一些,后面会专门写一些文章介绍一下。

创建组织

对应其他 Git 服务的组织(ORG/GROUP)

创建仓库

流水线

执行流水线,目前支持部分 drone 插件,基本可以拿来就用如果熟悉 drone 和 gitness 的流水线语法的话

制品仓库

目前支持如下,感觉是借鉴了 Nexus,基本已经覆盖了日常使用。

WebIDE

总结

Gitness 不仅是一款工具,更是开发者高效协作的伙伴。无论你是追求极致效率的个人开发者,还是需要稳定流水线的小型企业团队,Gitness 都能满足你的需求。不过有一说一,目前 Gitness 还是处于快速发展阶段,有 Bug 是正常不过的事,但是基本功能还是没啥问题的。其次他们开源版本支持力度不是那么紧急,更多的还是服务他们的 SAAS 产品。


Cheap mini PCs have gotten really good

2025年5月18日 16:32
For the past week, I've been working off the Minisforum UM870. A tiny mini PC with an 8-core/16-thread AMD 8745H CPU, which retails for $343 (or €379) as a bare-bone unit, and stays below $550, even after adding 48GB of RAM and 1TB of storage. I'm shocked to report that I really don't need more than this!

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.

That's partly because we run databases and accessories, like MySQL, Redis, and ElasticSearch, in Docker containers. Even though we run the Ruby code natively on both platforms, the Docker dependencies put the Mac further behind than it otherwise would have been, because Linux runs Docker natively, and the Mac has to deal with the file-system tax and other drawbacks.

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.

And Zen 4 is even the last generation! The insane new (and insanely named) AMD Ryzen AI Max 395+ chip that's used in the upcoming Framework Desktop runs on Zen 5 cores. And with 16 of those, the 395+ is faster in Geekbench multi-core than an M4 Pro, and only ever so slightly behind the M4 Max. On my HEY test suite, it completes the run in an insane 1m21s — more than twice as fast as the 14-core M4 Pro!

But I digress. The 395+ chip isn't cheap, even if it's still a great deal. The Framework Desktop with 64GB/1TB, which is twice as fast as the M4 Pro with our HEY tests, is $1,744. That's still less than the $2,199 Mac Mini, which only has 48GB of RAM. But obviously way more than a $550 Minisforum! And while it's quite small, it's not tiny, like the UM870.

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.

Mini PCs have gotten really good. AMD is on a roll. Linux is a blast. These are my conclusions. Check out the Minisforum UM870 or the Beelink SER8. Anything with an AMD 7745H and up to an 8945HS should be a great deal. If you want to splurge (yet still get a bargain compared to the macs), you could have a look at the new HX370 in the Beelink SER9 or Minisforum X1, but I'd save my money, buy a Lofree Flow84 keyboard to go with the new mini rig, and put the rest of the money towards a KEF LSX II savings fund!

读《一个女人的自传》

2025年5月18日 12:23

最近对女性回忆类的作品很感兴趣,于是又去图书馆借了一本《一个女人的自传》。这本书的作者杨步伟(出生于1889年)比《山居杂记》的作者高诵芬年长29岁。两人都生长在清末民初家世显赫的名门望族,但人生轨迹、性格特点和社会影响等各不相同。看书过程中不免将两人做比较。

一是家庭背景与教育经历。杨步伟的祖父和父亲思想开明,去过英法等国家开拓视野,重视教育,提倡废除缠足。杨步伟在家受教育后,先后去南京旅宁学堂、上海中西女塾读书,擅长英语和理科。二次革命失败后,她到日本东京帝国大学攻读医学,成为中国最早的女性医学博士之一。而高诵芬未接受现代学校教育,在家里念私塾侧重国学,受家族和传统礼教影响较多。

二是职业与社会角色。杨步伟20岁时担任崇实女子学校校长,积极参与革命。回国后在北京开设森仁医院(中国首家女性创办的医院),成为职业医生,活跃于学术和社会活动。而高诵芬则是传统闺秀与家族主母,一生以持家为本。

三是婚姻与个人性格。杨步伟从小当男孩养,性格果敢,热情外向,善于社交。她倡导女性独立,反对旧式婚约,与赵元任自由恋爱结婚,婚礼仅请胡适、朱征二人见证,仪式极简,登报声明“破除旧习”,被胡适称为“中国现代女性的先驱”。而高诵芬性格温婉内敛,依从父母之命,与门当户对的徐家公子徐定戡结婚,嫁妆筹备数年,婚礼仪式也严格按照传统风俗流程。虽为旧式婚姻,他们夫妻也幸福和睦。

杨步伟敢于革新的背后,离不开祖父和父亲的支持和托举,母亲的宠爱。对于指腹为婚,虽然未婚夫人品和才能没有问题,但杨步伟为了追求自主和人权,坚持写信退婚,祖父和父亲支持她的决定。当杨步伟在东京学医期间,父亲询问她今后打算组织私人医院,便取出积蓄动身去北京给她买房间造医院,为她的事业发展准备铺平道路。平时更是满足物质所需,杨步伟与人交往也从不计较花钱。

如果说《山居杂记》是对传统文化的传承和守护,记载了江南士族的生活细节与礼仪文化。而《一个女人的自传》则是新旧社会交替的破局和变革,文中侧重写时局变化、学业事业等情况,也有一些涉及家长里短的内容。杨步伟以现代教育和职业突破传统女性角色,展现了知识女性在科学、文化领域的贡献。杨步伟和高诵芬差异反映了近代中国女性在现代化进程中的多元选择,虽然人生轨迹不同,却都以各自的方式展现了女性成长的无限可能性,实现自我价值,成为时代的参与者和见证者。

被“快”裹挟

2025年5月18日 07:41

我又来“续上篇”了,起因是我机缘巧合“二刷”了大J的文章「给心累的父母:往这些方向发力,娃自会给你惊喜」。我是个看文章很少点赞和划线的人,除非打心底认同。今天我打算好好三刷的时候发现,我再一次在曾经打动过我的文字下驻足,同时也生出了一丝纳闷,为什么在写上一篇文章时我没有回忆起这些。归因之下,我想还是因为所有事情都“太快了”。

没劲

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

当下

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

选择

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

自我成长

如果真要说一个两全其美的法子,那么还是那句老话——做好自己。关注自己,便不会过分关注孩子,从而挑三拣四,影响亲子关系不说,还破坏自己的心情;提升自己,以身作则,便能抓大放小,上梁板正下梁便也歪不到哪儿去。

昨天跟豆哥聊天,说到我有点点领悟到什么事能使我放松,且知其所以然。刷反转快的短剧、购物、看短视频,这些事都能在短时间内提供大量的新鲜感。没劲的时候可不就得寻求新鲜刺激么!(在感情里的话就会走岔路,万万不可啊!)而如果我采用更“慢”的方式休息,比如冥想(发呆)、听音乐、写博客、画画、看闲书,甚至看电影和电视剧,我都会感觉刺激不够,因为太慢了。细究之下发现,我的脑子可能已经被“惯坏了”,类似上瘾机制,是另一层面的“由奢入俭难”。想到这儿突然理解影视作品里那些惨无人道的富人们,要玩穷人的命才觉有趣,可怕又可悲。

为了改变现状,我决定从不惧怕做花时间的事情做起。写一篇博文就是有可能要花上好几天,不是我动作慢没效率,我需要接受现实,而不是逼迫自己。娃习得新技能就是要经历很多次的失败,耗费大量的时间,我要做的仍旧是接受这件事,并且尽可能地提供帮助。

意义

踏踏实实地生活吧,人生的意义其实只在自己心中。

C++中的 const和constexpr 比较

2025年5月17日 22:55

C++ constconstexpr:真正的区别是什么?

一眼看都是定义常量。

为什么这很重要

现代 C++ 鼓励编写不可变、高效且表达力强的代码。两个关键字—constconstexpr—是这一理念的核心。它们看起来很相似,但理解它们的不同语义,对于正确利用编译期与运行期行为至关重要。

高层次对比

特性 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(); // 运行期确定,但不可变

正确地选择 constconstexpr 能让你的 C++ 代码更安全、更高效、更具表达力。默认使用 constexpr,当且仅当你明确知道值只能在运行期获取时才使用 const

C/C++编程

英文:const vs constexpr in C++

本文一共 525 个汉字, 你数一下对不对.
C++中的 const和constexpr 比较. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c C++中的 const和constexpr 比较 C++ C++ 学习笔记 程序设计 计算机
The post C++中的 const和constexpr 比较 first appeared on 小赖子的英国生活和资讯.

相关文章:

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

C++ Ranges 教程

2025年5月17日 22:04

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。

参考资料

英文:Tutorial on C++ Ranges

本文一共 415 个汉字, 你数一下对不对.
C++ Ranges 教程. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c C++ Ranges 教程 C++ C++ 学习笔记 程序设计 编程 计算机
The post C++ Ranges 教程 first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 简易教程: C++的智能指针 C++ 智能指针教程 C++ 中的智能指针提供了自动且安全的内存管理。它们通过 RAII(资源获取即初始化)机制,帮助开发者避免内存泄漏和悬空指针的问题,确保对象在生命周期结束时被正确释放。 本教程将介绍 C++ 中三种主要的智能指针: std::unique_ptr:独占式所有权 std::shared_ptr:共享式所有权 std::weak_ptr:非拥有式弱引用 1. std::unique_ptr unique_ptr 拥有独占所有权。一个资源只能被一个...
  2. 借助AI快速开源了三个小工具: 写代码越来越像做产品了, AI 真把我宠坏了(Vibe Coding) 程序员的未来?Vibe Coding + AI 一起上! 借助 AI 快速开源了三个小工具 最近,我利用 ChatGPT-4o 和 o4-mini 快速开发并开源了三个小工具。起因其实很简单——每次想转换 YAML/JSON 或进行...
  3. 被动收入之: 微博红包 今年开始重新经营我的微博帐号 drlai 收到两笔微信红包,应该是来自于官方的支持,150元(成功提现到支付宝)。虽然这不能持久,也没多少,但毕竟实现了零的突破,意义重大。 如果流量上来,内容创作者可能会接受到比较多的赞赏,这也是一个比较简单的变现方法。这也能作为一种被动收入,不过如果不是头部网红,可能杯水车薪,但如果你有好几个类似这样的,也能积少成多! 在用户中心,微博用户可以每天登陆手机微博APP打卡,获取点数和少量的红包钱(几分钱),积少成多! 微博做些小任务可获得积分和几分钱。聊胜于无。 微博的主要盈利模式 微博的主要盈利模式主要包括以下几个方面: 广告收入:微博的大部分收入来源于广告,尤其是品牌广告和效果广告。广告形式包括信息流广告(类似于推文广告)、热门话题广告、开屏广告和视频广告。品牌和企业可以利用微博庞大的用户群和社交互动来提升曝光率、推广品牌和产品。 会员服务:微博提供的VIP会员服务,用户可以支付订阅费用来享受更多的特权,比如个性化的主题、特有的表情包、私密权限设置等。这些会员服务主要面向个人用户,提升其社交体验。 直播和打赏:微博提供直播平台,用户可以通过购买虚拟礼物来支持主播,微博会从这些打赏中抽取一定比例的分成。此外,微博与内容创作者分成,通过内容付费、知识付费等形式变现。 增值服务:针对企业和大V(拥有大量粉丝的用户),微博还提供增值服务,如账号认证、粉丝数据分析、精准推送、推广和营销工具等。这些服务帮助企业提升营销效果,同时也增加了微博的收入来源。 电商和导流:微博上有大量的电商导流业务,尤其是和明星、网红的合作推广。微博用户在浏览社交内容时,可以直接跳转到商品购买链接,微博通过这种方式赚取导流佣金。 游戏联运:微博也会与一些游戏公司合作推出联合运营的游戏,微博负责推广和流量引入,用户充值或付费时,微博可以获得一部分的分成。 这些模式相结合,使得微博能够在广告市场、内容创作和电商等多个领域获利。...
  4. 换了个奥迪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...
  5. 试用 Linkedin (领英) 高级帐号 (Premium) Linkedin (领英) 算是比较靠谱的职业社交网站, 在上面有很多猎头, 很多知名公司的HR 无时无刻在招人. 特别领英在被微软收购之后, 名气就变得大了许多. 领英是免费使用的, 但也有付费用户, 有给猎头的, 也有给想找工作的. 价格并不便宜, 对于想找工作的 Job...
  6. 步步高学生电脑上 Basic 编程语言 peek 用法示例 步步高学生电脑 是8位FC机的经典之作.它上面的BASIC有三个版本 1.0, 2.0 和 2.1 2.1 版本有个在线帮助,实际上是 help.cmd 1.0 是用 Esc 键退回到 DOS 的,...
  7. 《Steem 指南》之 justyy 在线工具与 API 系列 – Discord 机器人 Discord 聊天频道 Discord 原本是给游戏设计的, 但由于其功能多, 接口开放能力强, 使用的用户越来越多. 我们CN区也有一个Discord 频道, 加入地址为: https://discord.gg/7ctT3Xt 在网页里就可以加入 cnsteem 的大家庭了, 当然也可以下载手机APP或者桌面程序来加入...
  8. 你给SteemIt中文微信群拖后腿了么? 这年头不缺算法, 就缺数据. 这两天花了很多时间在整API上, 整完之后自己用了一下还觉得真是挺方便的. 今天就突然想看一看自己是否给大家拖后腿了, 于是调用每日中文区微信群排行榜单的API, 刷刷拿着 NodeJs 练手: 1 2 3 4 5 6...

日本办卡指南 2.0:初来乍到,日本信用卡推荐

2025年5月17日 15:15

写在前面

版本更新于2025/5/14,完善了说法不准确之处,并添加了学生办卡的一些新选择以及虚拟卡的评测。

本文作者移居东京五年,根据自身经验撰写而成,欢迎在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

四大银行也有一些每月首笔取现免费的卡片,比如莫奈万事达等,可以自行查询了解。

日本卡基础篇(储蓄卡/銀行口座)

关于开卡陪同翻译问题

ゆうちょ銀行由于是外国人必备的基础卡,因此门槛是最低的,基本都可以陪同翻译;其它银行根据工作人员的心情,有可能拒绝陪同翻译,但也可能同意。比如三井住友银行新宿店拒绝陪同翻译,要求只能本人办卡的情况下,你可以尝试前往涉谷的三井住友再次尝试。

ゆうちょ銀行 デビットカード

image.png

每个刚来日本的人必办的储蓄卡,无任何门槛,理论上随到随办。你也可以选择网上申请,没有存折,需要等待一周左右。但请注意,在网上申请是存在拒绝办理的情况的,如果遇到可以直接前往线下网点。

目前ゆうちょ銀行发行的卡片为VISAデビットカード,即带有VISA功能的储蓄卡,多数场合可替代信用卡进行消费。

准备工作

日本电话号码、在留卡、学生证/工作证明、护照、印章

官方参考:https://www.jp-bank.japanpost.jp/tetuzuki/honnin/tzk_hn_kaisetu.html

注意事项

  1. 注意工作时间:周一至周五:9:00~15:00(一般情况)
  2. 请到学校/公司/住址的附近网点进行办理,其它地点可能因“不在本地区范围”被拒绝
  3. 在日本生活不满半年的,办理下来的卡会标注“非居住者”,根据ゆうちょ銀行最新政策,非居住者在转账时需要额外付7500日元手续费
  4. 如果有工作,或者介意手续费,可在办理时说明自己工作/打工,根据外汇管理规定的解释当中,如果你有工作,也可能被认定为居住者,这样一般情况下会取消手续费
  5. 请不要使用ゆうちょ銀行进行海外送金,因为只接受美元入账,所以手续费高昂。

三井住友銀行 デビットカード

image.png

由于ゆうちょ銀行海外送金高额的手续费,以及体验感极差的服务,所以有必要申请一张ゆうちょ銀行以外的储蓄卡。

三井住友发行的储蓄卡也为VISAデビットカード,可在手机APP上申请,亦或线下办理。办理过程同时可申请信用卡,但下卡几率不大。

此外,三井住友最新推出了Olive三合一卡,集积分卡、信用卡、储蓄卡为一体,在711便利店等指定商户消费积分倍率更高,推荐有条件的朋友们申请。

准备工作

日本电话号码、在留卡、学生证/工作证明/内定通知书/入学许可、护照、印章

注意事项

  1. 实际上三井住友銀行没有“在日未满半年不准开卡”的相关规定,如果工作人员以此为理由拒绝你,多数情况是日语沟通较为困难情况下的说辞
  2. 为了避免日语尴尬的局面,你可以先尝试在线上申请,如果没有通过在考虑线下申请
  3. 线下办理请熟记相关词汇:預金口座、身分証明書、在留カード、パスポート、鑑、通帳、暗証番号、キャッシュカード、郵送等词汇

三菱UFJ銀行 デビットカード

image.png

同样是大手银行,建议初到日本选择三菱或者三井之一办理一张储蓄卡。办理过程同时可申请信用卡,但如果你是语言学校的学生,下卡几率不大。(不过都是玄学)

准备工作

日本电话号码、在留卡、学生证/工作证明、护照、印章(可能不需要)

注意事项

  1. UFJ的储蓄卡申请对于外国人只能线下申请,网上申请仅限日本国籍。
  2. 办理时请提前预约附近的银行,原因和ゆうちょ銀行同理。
  3. 线下开通流程中,会要求客户在テレビ窓口里使用电脑和客服远程对话,确认用户信息和开户。

みずほ銀行

三井住友、三菱之后的第三大银行。该银行以“系统瘫痪”而享誉全球,拥有此卡后,你可能经常享受ATM故障、入金延迟、等待ATM上班等高级服务。

该银行口座也提供网上开通渠道,但和有日本国籍的人士有所区别,需要邮送材料(自己打印也可),并且需要开具住民票。因此如果能选择的话,请先优先考虑三井住友、三菱的储蓄卡。

*以上三大银行(三井住友、三菱、みずほ銀行)开户时,请准备回答“已经有了ゆうちょ账户为什么还要开新口座”的问题答案,该问题在日语不好的情况下出现频率异常高。回答的核心思路是“没了你家的卡我的生活就会受到极大影响”。

WISE デビットカード

image.png

可以在世界各地使用的储蓄卡,开通后可拥有各国银行口座。还可以发行无限的虚拟银行卡,在网购的时候提高安全性。

什么人建议办

  1. 如果平时有经常在美国、欧洲等产品网站上购买/参与众筹的需求,那么强烈推荐办一张。
  2. 在日本工作的人,如果有将日元兑换成人民币需求可以办理,可以直接打到指定支付宝账户。
  3. 如果你经常进行海外旅游亦或者货币之间的兑换,可以办理。

注意事项

  1. 日本发行的卡片为万事达,Wise日本截止 2025/5 仍不支持绑定Apple Pay。
  2. 实体卡片需要付费,不付费也可以使用虚拟卡片消费。
  3. 该卡片的余额充值需要绑定一张日本的储蓄卡。

同样类型的还有Revolut卡,可利用此卡充值来完成一些信用卡的刷卡活动,和Wise大同小异不再赘述。

邀请链接

通过邀请,免除75000日元手续费

Revolut デビットカード

image.png

和Wise一样,可以在世界各地使用的储蓄卡,但在日本的版本有所阉割,只提供日元的本地账号,其他货币只能走 SWIFT 入金。同样可以发行虚拟银行卡,在 2025 年还支持绑定了 Apple Pay,在功能上更进一步。

什么人建议办

  1. 如果平时有经常在美国、欧洲等产品网站上购买/参与众筹的需求,那么强烈推荐办一张。
  2. 在日本工作的人,如果有将日元兑换成人民币需求可以办理,可以直接打到指定支付宝账户。
  3. 如果你经常进行海外旅游亦或者货币之间的兑换,可以办理。

注意事项

  1. 日本发行的卡片为Visa,目前可以绑定Apple Pay。
  2. 实体卡的基础版本无需付费,但可以加钱升级金属卡片,为月费订阅制
  3. 该卡片的余额充值需要绑定一张日本的储蓄卡。

邀请链接

通过邀请,免除75000日元手续费

NEOBANK 住信SBIネット銀行

image.png

如果来日后申请了个人番号卡,可以考虑网络银行口座的开设。SBI银行可以网上开户,并且最快当天即可批准。

SBI的优势是每月5次免费的便利店取款/转账到他行的机会,并且根据你的账户等级的提升,提供更多的免费次数。此外,该卡可以绑定Apple Pay进行消费,并且可以无卡存款。

请注意,新生SBI和住信SBI是两个不同的银行,都可以尝试开户。

JAL Pay以及ANA Pay

image.png

只有虚拟版本的预付卡,发行公司为日本的两大航空公司,适合常乘坐JAL或者ANA、希望积攒里程的用户,可以绑定 Apple Pay。支持多种充值方式:信用卡、Apple Pay、银行储蓄卡、里程充值等。

AU銀行

该银行由KDDI和三菱UFJ共同出资建立,因此与三菱银行无缝连接,转账免费。也可以通过网上直接申请,申请时仅需提供運転免許証・個人番号カード・在留カード中的一个即可。

楽天銀行、PayPay銀行(旧ジャパンネット銀行)

即使生活居住半年后也很难申请的口座,相对来说这两家的信用卡比较好申请。

日本卡进阶篇(信用卡)

网传的一些说法

  1. 申请一张信用卡后如果被拒,不要连续申请,连续申请也会被拒 ×

以网上的多人经验和自身经验来看,如果你申请三井的信用卡被拒,那么连续申请三井的其它信用卡几乎一定被拒;但是被拒后申请其它银行/类型的信用卡,仍然可以审核通过。

  1. 申请失败后半年后再尝试申请 √

同一类型的卡被拒后请半年以上再尝试申请,连续申请同类型卡片容易影响信誉度。

JCB カード W

image.png

クレジットカード 人気ランキング 第三位

个人最推荐的信用卡,没有之一。因为目前看来这是最容易下卡的信用卡,即便入境第一天也可下卡。

由JCB直接发行的信用卡,终身免年费,星巴克、亚马逊等指定店铺消费,积分最高20倍。刷卡后有即时通知(很多卡没有即时通知,消费后过几天才显示)。最重要的是,JCB カード W作为几乎最容易下卡的信用卡,可以帮助你在日本社会建立初步的信用记录。

如果你是学生,请直接在申请时填写说收入为0,卡片固定额度为10万日元。

邀请链接

通过邀请链接注册,你我各得1500日元返现。

JAL 学生信用卡

image.png

推荐在日留学生都办一张JAL的学生信用卡,大学/大学院/专门学生均可下卡,语言学校不可🙅。

该卡由UFJ三菱发行,对留学生超级友好,下卡即送2000里程,每年第一次乘机再送1000里程,毕业后还送2000里程,TOEFL 等英语考试通过还送500里程,下卡后消费5万再送1000里程(限时活动),平时消费也可积攒航空里程。

使用本卡里程兑换机票的所需要的里程为通常的5折:比如東京ー福岡,单程机票需要8000里程,持有本卡仅需4000里程,也就是开卡就可以免费兑换一张東京ー福岡的机票。

👉 我的JAL邀请链接

楽天カード

image.png

クレジットカード 人気ランキング 第七位

相对于学生比较友好的信用卡,有专门的学生卡。无年费,基础返点1%,开卡送积分(活动时最高送1万积分),乐天购物两倍积分。

不过乐天的信用卡盗刷情况似乎比较严重(整个日本的信用卡都存在此现象),并且没有消费的即时通知。初期额度一般也是10万日元。

通过邀请链接注册积分增多:https://r10.to/hPPr7J?openExternalBrowser=1

メルカード

image.png

日本“闲鱼”煤炉发行的信用卡,最高额度50万。该卡对于刚来日本的人相对友好,每月都有机会调整额度,在煤炉购物有更倍率高积分。

该卡有永久1%的积分返现,积分可以抵消欠款,还款当月还可以提前还款。卡面也是无信息设计,更加安全。消费即时通知,邮件加APP推送。

邀请码

使用 NUZUMR 注册,你我各得500积分,活动时各得注册1500积分。

エポスカード(EPOS)

image.png

クレジットカード 人気ランキング 第四位

24小时即时审查,下卡非常迅速。

EPOS的特点是卡面有很多种选择,并且非常多的动漫卡面。同时,此卡也是最容易升级金卡的信用卡,一年消费50万以上后就可收到金卡邀请,且无年费。此外该卡是即时通知(需要开启),消费后邮件和APP会立即推送消费信息。

EPOS的积分可兑换为亚马逊礼品卡等,积分使用范围上还是非常广泛的。

邀请链接(紹介番号23041977605)

通过邀请链接注册,你得2500积分

PayPayカード

image.png

该卡审核比较迷,一方面有刚来日本就下卡的例子,另一方面也有在日本稳定工作多年被秒拒的例子。

该卡的特点卡面设计比较优秀(但实际卡片质量很差),无卡号和CVV的设计,并且可以和Paypay联动使用,在Yahoo!ショッピング购物时使用增加积分返现倍率,在使用Paypay时无需充值即可直接使用。该卡即时通知好像只有在大额消费时有效,小额不通知。

如果你对该信用卡比较感兴趣,可以尝试申请一次,填写资料比较简答,也无需提供在留卡信息。最快五分钟审核下卡,下卡后积分即刻到账。

Amazonカード

image.png

此卡对学生党友好,很多入境1个月的学生顺利下卡。请注意,学生申请时收入请填写0。

发卡行为三井住友,开卡礼送5000-8000积分,加入亚马逊会员后,在亚马逊购物返点数增加,免年费。

三井住友信用卡

他家的信用卡常年占据信用卡排行榜前三的位置,最新推出的Olive卡片更是受到日本人的追捧。但是对于刚入境的朋友来说,不一定能下卡。因此更推荐各位朋友半年以后再尝试申请,所以在此不再赘述。

SAISON 美国运通セゾン・アメリカン・エキスプレス・カード

image.png

使用QUICPAY固定返现2%,积分永久保留,首年无年费,消费一次下一年免年费。

比较好下卡,需要美国运通的朋友可以尝试申请。

邀请链接

通过邀请链接注册,得8000日元亚马逊礼品卡

日本卡高阶篇(信用卡)

如果你有此需求的话,应该已经在日本长住,并且有稳定的收入来源了。

你可以参考日本信用卡网站的排名,随心所欲的申请自己想要的信用卡了。

クレジットカード 総合ランキング

https://life.oricon.co.jp/rank-credit-card/

SAISON 美国运通 セゾンプラチナ・アメリカン・エキスプレス®︎・カード

image.png

SAISON家的白金卡,是我目前在使用的高端卡之一。有硬性年费,每年 22000 日元,从 25 年 6 月开始涨价。优点是日本日常积分 1.5 倍,海外消费积分 2 倍,并且可以永久储存(他家普卡也是永久积分),JAL积分最大 1.125 倍。

附带一张满血的PP卡,但目前没有电子版本,将在 6 月会费涨价后支持该功能。24時間/年中無休的客户支持,可以帮你订各种票或者房间。海外旅行最高保险 1 亿日元,在国际飞行的时候,可以免费邮寄行李到家。

日本股票推荐

image.png

顺带一提,如果你在办理完日本信用卡后,也开始对投资日股或美股感兴趣,不妨试试 moomoo(富途牛牛海外版)。它是目前日本市场上,目前为止最好用的APP,同时也是对中文用户最有好的APP。

他的主要优势有:

  1. 开户无需邮寄书类资料,全程网上办理;24小时中日文客服
  2. app优化超丝滑,吊打日本厂商,界面支持中文
  3. 业界最低手续费,新nisa口座美股手续费0元,综合口座是他社1/6
  4. 支持美股24小时取引,支持自动下单
  5. 引入AI分析,支持股票预测等功能;提供定期华人股票讲座

moomoo支持多市场交易,界面简单(吊打SBI和乐天证券),关键是开户门槛低、支持中文服务,对于刚入门的投资者也非常友好。在日本生活的同时合理配置资产,也是一种不错的理财方式。

通过我的邀请链接你能获得

1.入金1万日元(无需买股保持30天),必得美国股票一株 2.入金30万元(无需买股保持30天),必得美国股票四株 3.美股手续费2个月免费 4.500日元现金奖励

美国股票为抽选:特斯拉,苹果,英伟达,meta等。

邀请链接

通过邀请链接注册,必得美国股票以及现金奖励

写在最后

信用卡的审核制度各家不同,标准也众说纷纭。笔者在闲暇之余撰写此文,只希望对刚来日本的朋友能所有帮助。如果你由于来日不久,无法下卡也无需气馁,可以暂时使用国内的信用卡、亦或者是BybitInfini 等发行的U卡代替消费。

本文内置了信用卡的邀请链接,如果在申请信用卡的时候如若能使用我的邀请链接,笔者自当感激不尽。

更新时间:2025年5月14日


Support on Patreon | 爱发电上赞助

私有化部署Nexus3镜像源

2025年5月17日 09:19

昨天升级 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

为什么没有我用的软件包?因为我暂时用不上, 有好的想法可以联系我.


Nexus3 容器部署3.70.x升级实践-非成功案例

2025年5月16日 21:09

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 吧

读《山居杂记》

2025年5月16日 19:10

前段时间我和hillway看过《秋园》后,时不时给两个娃讲书中的一些故事,而且感觉文字浅显易懂,情节流畅,富有感染力,小熊仔也能阅读,于是又从图书馆把《秋园》借回来,结果两个娃都很感兴趣,一有时间就坐在书桌前看起来。最近我又读了一本关于上世纪女性的回忆录《山居杂记》。

《山居杂记》的作者高诵芬出生于1918年,是杭州城里名门望族的大家闺秀。自幼家世显赫、衣食无忧、仆人众多。十八岁时奉父母之命嫁给了门当户对的徐定戡,生育三子一女,从此在家相夫教子。苦难的秋园和她的子女,与高诵芬的生活境况相比,差距太悬殊了。而百年后我们这些普通老百姓,即使再累积几代人奋斗,也很难达到这种阶层水平。

这本书是“一个闺房小姐和家庭妇女眼中、历经半世纪的生活看到的世界”。记录的有杭州旧时风俗、家乡美食、长辈亲戚、家庭教师、私人医生、佣人奶妈、旅游见闻、逃难经历等,讲述时没有居高临下、矫揉造作之感。有些篇幅描写的十分细致,如六种颜色的桂花糖、枣饼、乌糯米饭等食物制作,为结婚所做的准备和当时婚礼流程等。书中记载的幼时逢年过节的仪式感,大年初一必吃的荔枝橘子、家里西湖边庄园产的时鲜……成为孩子心中难忘的记忆。日常饮食不仅食材品类丰富,而且讲究干净卫生、顺应天时,做法讲究。这本书在写作时并非按照时间顺序,而是根据事件和人物等分章节,有多处内容交叉,被重复讲述。

这些偏重于记载家庭和习俗的日常文字,虽然书中有一个章节写到姨太太,也提到一个“混混”亲戚,可能是笔墨篇幅和记载侧重点的关系,没有什么腐朽堕落的封建末世之感,不似张爱玲小说里那种封建大家庭的气息格调。也没有奢靡之感,反而家族中有些女性生活节俭,孝敬长辈、乐善好施,宽厚待人。孩童时期也有很多有趣的事情:“我还记得我只有五六岁时,老屋还没有翻造,厕所间在卧室的后面,白天很暗。那时好像杭州还没有电灯,所以也无灯可开。我哥哥那时只有八九岁,怕黑,每次去厕所大便,都要我在他旁边坐在小凳上陪他。有一天,我学大人的口气对他说:“你要是没有我这个妹妹,就苦了!”看到这段我想起来,小猪仔平时晚上上厕所害怕,也需要人在一旁充当“闻屎官”。

高诵芬的父亲受封建思想影响,觉得女孩绝不用抛头露脸外出工作,以后教育小孩有家庭教师,做衣服有裁缝,做菜煮饭有厨师,所以只要懂点古文,学点字画作为日后消遣即可,进学校念书只会去学新潮去自由恋爱,所以就在家念私塾。高诵芬有一哥一弟,作为家中唯一的女儿,虽然父亲对她的学业不重视,在成长中也给予了充分的呵护和充裕的物质条件。她父亲婚前多次考察女婿人品相貌才能,家里花了数年时间为她准备嫁妆,装了三十六个条箱。从结婚到满月,每天她父母都会差人接她回家一次,也是杭州的风俗习惯之一,是怕女儿新作媳妇紧张劳累,回娘家去松散松散。婚后第二年生日,娘家将鸡鸭鱼肉等装在漆红大圆盆挑到婆家,还要送一桌鱼翅席过来,为了让婆家记住新娘的生日,往后每年记得加以庆祝。

书中所述几十载光阴,历经动荡和变革的年代,有着“兵戈布迁之危,疾病刀圭之惧,儿女抚育之劳,井臼操持之烦”。不过相对于普通百姓,有钱人家逃难经历就好太多了,带着一批佣人,专车送到火车站,坐二等车厢(头等只能外国人坐)吃西餐,沿途买特产小吃,专人接待并安排好住处。抗战时期杭州却歌舞升平,也能经常和丈夫到处旅游,如游黄山。

高诵芬一家居住在杭州和上海,加之又重视身体健康、讲究科学育儿,不在于支付昂贵的就诊费用,享受到的医疗条件也是领先的。在上世纪三十年代,高诵芬新婚后不孕,找多个知名西医诊断,在上海知名疗养院特等病房住院切除卵巢瘤,病房还有独立会客厅和陪护房间,除了家里佣人,又请了两位护士日夜轮流照顾。丈夫专门请了照相馆摄影师,来医院拍摄记录,并冲洗了一大本相册。出院后,丈夫担心回家恢复不好,又要求她去医生家住了一个月,在医生和特别看护照顾下,等伤口长好了才回家。他们婚后第二年逃难到里山,高诵芬摸到胸部硬块,怀疑是乳腺癌,丈夫二话不说立马决定第二天就回杭州医院检查,高价雇船。在孕期,丈夫买很多本育儿书,给她听西洋音乐。产后又请奶妈,丈夫还买了英国磅称每日测量记录婴儿体重。他们在上海也经常带四个孩子轮番去看牙医,拔牙补牙。

此外,高诵芬在回忆这些人物时,只要能记得,都会清楚记载他们的寿辰。有不少人都是晚辈很孝顺,被服侍到八九十岁高寿的。年轻时不在意寿命长短,如今看多了网上那些风险隐患事故灾难,觉得一辈子无病无灾,能身体健康、寿终正寝,也是一种福分。

简易教程: C++的智能指针

2025年5月16日 05:52

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++编程

英文:Tutorial on C++ Smart Pointers

本文一共 375 个汉字, 你数一下对不对.
简易教程: C++的智能指针. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 简易教程: C++的智能指针 C++ C++ 学习笔记 程序设计 编程 计算机
The post 简易教程: C++的智能指针 first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 被动收入之: 微博红包 今年开始重新经营我的微博帐号 drlai 收到两笔微信红包,应该是来自于官方的支持,150元(成功提现到支付宝)。虽然这不能持久,也没多少,但毕竟实现了零的突破,意义重大。 如果流量上来,内容创作者可能会接受到比较多的赞赏,这也是一个比较简单的变现方法。这也能作为一种被动收入,不过如果不是头部网红,可能杯水车薪,但如果你有好几个类似这样的,也能积少成多! 在用户中心,微博用户可以每天登陆手机微博APP打卡,获取点数和少量的红包钱(几分钱),积少成多! 微博做些小任务可获得积分和几分钱。聊胜于无。 微博的主要盈利模式 微博的主要盈利模式主要包括以下几个方面: 广告收入:微博的大部分收入来源于广告,尤其是品牌广告和效果广告。广告形式包括信息流广告(类似于推文广告)、热门话题广告、开屏广告和视频广告。品牌和企业可以利用微博庞大的用户群和社交互动来提升曝光率、推广品牌和产品。 会员服务:微博提供的VIP会员服务,用户可以支付订阅费用来享受更多的特权,比如个性化的主题、特有的表情包、私密权限设置等。这些会员服务主要面向个人用户,提升其社交体验。 直播和打赏:微博提供直播平台,用户可以通过购买虚拟礼物来支持主播,微博会从这些打赏中抽取一定比例的分成。此外,微博与内容创作者分成,通过内容付费、知识付费等形式变现。 增值服务:针对企业和大V(拥有大量粉丝的用户),微博还提供增值服务,如账号认证、粉丝数据分析、精准推送、推广和营销工具等。这些服务帮助企业提升营销效果,同时也增加了微博的收入来源。 电商和导流:微博上有大量的电商导流业务,尤其是和明星、网红的合作推广。微博用户在浏览社交内容时,可以直接跳转到商品购买链接,微博通过这种方式赚取导流佣金。 游戏联运:微博也会与一些游戏公司合作推出联合运营的游戏,微博负责推广和流量引入,用户充值或付费时,微博可以获得一部分的分成。 这些模式相结合,使得微博能够在广告市场、内容创作和电商等多个领域获利。...
  2. Javascript 中 sleep 函数实现 Javascript 中并没有 built-in 的 sleep 函数支持, 在 async/await/Promise 的支持之前, 我们可以用 busy-waiting 的方式来模拟: 1 2 3...
  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...
  4. C++ 编程练习题: 如何合并两个二叉树? 题意: 合并两个二叉树, 没有说不可以改变原来的二叉树. 合并的时候把结点求合. C/C++ 中二叉树的定义 在C或者C++中, 二叉树的定义可以很方便的用结构体来表征. 其中左右子树都是递归定义. 1 2 3 4 5 6...
  5. 步步高学生电脑上 Basic 编程语言 peek 用法示例 步步高学生电脑 是8位FC机的经典之作.它上面的BASIC有三个版本 1.0, 2.0 和 2.1 2.1 版本有个在线帮助,实际上是 help.cmd 1.0 是用 Esc 键退回到 DOS 的,...
  6. 你给SteemIt中文微信群拖后腿了么? 这年头不缺算法, 就缺数据. 这两天花了很多时间在整API上, 整完之后自己用了一下还觉得真是挺方便的. 今天就突然想看一看自己是否给大家拖后腿了, 于是调用每日中文区微信群排行榜单的API, 刷刷拿着 NodeJs 练手: 1 2 3 4 5 6...
  7. C++ 编程练习题 – 找出第三大的数 题意: 给出一个数组, 求第三大的数字是多少, 重复的数字并不算在内, 比如 第3大的数字是1 而不是 2. Using std::set set 是集合, 是有序的(从小到大), 集合中不包含重复的元素, 所以我们可以遍历数组并把数字添加到集合中....
  8. 最简单有效的过滤WordPress垃圾评论的方法 当你的Wordpress博客流量大的时候, 不免会收到很多垃圾评论. 本文介绍一种特别简单而且免费的过滤Wordpress垃圾评论的方法. 这种方法不需要你安装任何插件, 也不需要拥有修改Wordpress主题模板函数的能力, 只需要1分钟就可以搞定. 把这个列表拷贝下来 打开 WordPress 的控制面版, 到设置-讨论 拷贝上面的列表到 “评论审核” 或者 “评论黑名单”...

借助AI快速开源了三个小工具: 写代码越来越像做产品了, AI 真把我宠坏了(Vibe Coding)

2025年5月16日 00:08

程序员的未来?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 格式之间进行双向转换,支持美化和压缩,简单直观。

yaml-json-converter 借助AI快速开源了三个小工具: 写代码越来越像做产品了, AI 真把我宠坏了(Vibe Coding) ChatGPT (OpenAI) 人工智能 (AI) 小技巧 程序员 程序设计 编程 资讯 软件工程

Yaml/Json数据格式转换React小程序

Github开源库 | Github Pages在线工具

Base64 编码/解码工具

支持文字和文件的编码解码操作,可以将文件内容直接转换为 Base64 字符串,或者反向解析恢复文件。

base64-converter 借助AI快速开源了三个小工具: 写代码越来越像做产品了, AI 真把我宠坏了(Vibe Coding) ChatGPT (OpenAI) 人工智能 (AI) 小技巧 程序员 程序设计 编程 资讯 软件工程

Base64编码解码React小工具

Github开源库 | Github Pages在线工具

ROT47 混淆工具

这是一个轻量级的字符串混淆工具。ROT47 的特点是“加密两次即为原文”,类似于异或操作,适用于简单场景下的信息模糊处理。

rot47-converter 借助AI快速开源了三个小工具: 写代码越来越像做产品了, AI 真把我宠坏了(Vibe Coding) ChatGPT (OpenAI) 人工智能 (AI) 小技巧 程序员 程序设计 编程 资讯 软件工程

ROT47 Cipher文本混淆React小工具

Github开源库 | Github Pages在线工具

程序员的门槛正在降低

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 可以拿来做什么?

ChatGPT 通用人工智能

Grok 3

字节/豆包/AI

英文:From Idea to GitHub Pages: Building Tools with AI and Vibe Coding

本文一共 1266 个汉字, 你数一下对不对.
借助AI快速开源了三个小工具: 写代码越来越像做产品了, AI 真把我宠坏了(Vibe Coding). (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 借助AI快速开源了三个小工具: 写代码越来越像做产品了, AI 真把我宠坏了(Vibe Coding) ChatGPT (OpenAI) 人工智能 (AI) 小技巧 程序员 程序设计 编程 资讯 软件工程
The post 借助AI快速开源了三个小工具: 写代码越来越像做产品了, AI 真把我宠坏了(Vibe Coding) first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 特朗普加关税的公式竟然是EXCEL里弄的? 这两天中美关税大战越演越烈,据说,特朗普加关税的计算方式竟然是直接在EXCEL电子表格里弄的,具体如下: 其中 I 是 Import,进口;E 是 Export 出口。 优美又实用的公式家族又添新成员 勾股定理: 欧拉恒等式: 牛顿运动定律: 爱因斯坦质能等价公式: 特朗普的“互惠关税”公式:,其中 I...
  2. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  3. 测测你的幸运 – Linux Fortune-Teller LINUX 下有很好很好玩的命令,之前已经介绍过: figlet, rig, curl. 现在推荐另一个 命令 fortune 是用来随机显示一段(句)话的.fortune 在英文里就是幸运的意思. 这个命令可以不需要 参数 如果没有 可以通过 apt-get...
  4. 教娃编程有趣的瞬间 vlog视频集合 教娃700天:写在教娃编程700天, what’s next?。有很多有意思的瞬间记录一下,持续更新。 和孩子一起打闹,学习,成长。 教娃编程孩子有趣的瞬间 vlog(Day 641) 娃说我不够 Senior(Day 701) Bro.. I thought you’re like...
  5. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  6. 用 SB2000 的 FBASIC 计算圆周率后80位 英文同步 SB2000 的 FBASIC 是浮点 BASIC 的意思, 就是说可以用在计算一些数值,高级计算机.今天我们还测一下它的计算性能,之前大概知道很慢.. 计算圆周率有很多公式,收敛度不一样, 我们挑一个性价比较高的,比较容易实现的..比如这个: 在SB2000上,80位要算5 小时; 40位1个小时; 20位几分钟, 真得很慢....
  7. 推荐一款 CHROME 插件 – Wappalyzer 这个CHROME浏览器插件很方便的可以让你知道当前标签页里的网页 有用到哪些 技术. 你可以用它来检查是否插件正常工作. 1. CLOUD FLARE CDN 2. ADSENSE 3. GOOGLE ANALYTICS 4. Gravatar...
  8. 你要找什么样的老婆? 找媳妇的标准 昨天和网友在剑桥面基, 网友奔现, 他从爱尔兰过来, 小我12岁, 就聊到了找对象的标准. TLDR; 找老婆不要(只)看颜值, 而要注重性格, 为人处事和顾家等更重要的品质, 当然性和谐也很重要. 在当今社会, 人们对于找伴侣的标准有所不同. 有些人认为颜值是最重要的, 因为外貌吸引力可以让人在日常生活中感到愉悦, 这是人的本性,...

Caddy拦截响应处理小记

2025年5月15日 20:34

简单小记,分享一下,主要还是针对 MinIO 异常的处理,其他服务应该也类似

之前配置 MinIO:

xxxx {
        import ERR
        import LOG "/var/log/caddy/minio.log"
        @rootPath {
                path /
        }
        handle @rootPath {
                respond "EdgeONE 403 Forbidden" 403
        }
        reverse_proxy 127.0.0.1:9000
}

仅禁止访问/,且有问题使用 import ERR 兜底

(ERR) {
	handle_errors {
		redir https://dxgw-{err.status_code}.external.ysicing.net
	}
}

之前没太注意,之前这种情况下,如果 MinIO 放回 400 的话是没法拦截的。这时候需要响应匹配器来干活了

域名 {
		import LOG "/var/log/caddy/minio.log"
	    import ERR
        @rootPath {
                path /
        }
        handle @rootPath {
                respond "EdgeONE 403 Forbidden" 403
        }
        reverse_proxy 127.0.0.1::9000 {
	     		@error status 4xx
	     		handle_response @error {
 						respond "EdgeONE 451 Forbidden" 451
				}
		}
}

handle_response 块内,可以使用任何其他指令,功能还挺强大的


网站开启 CloudFlare 小黄云后无限重定向?教你一步快速解决!

2025年5月14日 23:29

我们前面写了几篇关于 Cloudflare 使用和设置的文章,不知道大家用上了没有?已经用上的小伙伴就反馈,开启 CloudFlare CDN 后遇到了一个问题:

原因

使用 Cloudflare CDN 后出现 '重定向次数过多'(ERR_TOO_MANY_REDIRECTS)错误,通常是由于循环重定向或配置冲突引起的,例如 HTTP → HTTPS 重复跳转,或者服务器与 Cloudflare 的 SSL 设置不匹配。

解决

其实多数情况下,只需要一步就能搞定!进入【你的域名】-【SSL/TLS】-【概述】

cf-cdx-2.png

这里的【当前加密方式】 默认是 灵活 ,改成 完全(严格) 或 完全

cf-cdx-3.png

保存即可解决多数的重定向问题~

读《幻夜》

2025年5月15日 16:06

近期又读了一本东野圭吾的《幻夜》,这本书的情节起伏转折,构思巧妙,有一定吸引力和可读性。但又总觉得这本书像是按照流行畅销的推理小说的公式,套出来的一个标准化产品。

作者把女主角新海美冬塑造成一位年轻漂亮、魅力非凡、独立沉稳、聪慧过人、品味高级的形象。同时,又是一位冷酷无情、心机颇深、缺乏人性的蛇蝎美人。她很善于用自己的容貌、气质甚至身体来获取资源,也会玩弄感情、把控心理来达到目的,最突出体现在她对男主角水原雅也的情感和心理操控上。

雅也在一场地震后因400万日元借款杀害了舅舅,被美冬目睹作案现场抓住了把柄,美冬又总是口头许诺两人将有美好的未来,加之雅也也很喜欢她,每次他都没能违背美冬的提议:诬陷浜中、给青江设圈套、杀害曾我。在这个过程中他也动摇过,但是又害怕被美冬轻蔑,想成为对她有用的男人,希望满足她的期望,做一个配得上她的男人……就沦为彻彻底底的工具人。

刚开始雅也以为美冬对他是有感情的,当他发现原来自己也被算计了,心态就崩塌了。美冬许诺的那个美好的未来里,只有她自己。为了达到成功,美冬隐瞒身份,冒充别人,成为人生的胜利者,这些才是她的野心。为此她会不择手段,不惜利用所有人。结尾后,美冬似乎有把握雅也不会杀死自己,面对警察加藤,表现得很冷静,或许她是故作镇定不暴露真实身份,或许是认为雅也不会对自己下手,或者是已经采用了更高段位的做法:匿名向雅也出售质量有问题会爆炸的子弹。

书中警察加藤有着高超的推理和联想能力,也曾经锲而不舍去侦查,但最终还是没能破案。合上书后,感觉剧情有些地方还是没有交代清楚,有些漏洞。比如美冬的父母虽然在地震中去世,但是她之前二十多年的同学、朋友、老师、亲戚、邻居等人际交往,涉及很多人,不是随便能掩盖住的。冒充美冬的这个人也不是从石缝中蹦出来的。在酒店房间中谋杀曾我、冒充妓女刺伤技工、夜袭美容店女店员…这些做案行为难道完全没有目击者?分尸现场完全没有痕迹?抛尸一年也没被发现?……

原本雅也可以选择类似冈田饭店的有子作为妻子,共度平凡简单的生活。但是他杀过人,被人抓住把柄,继而遭受威胁,陷入无法自拔的境地,为了掩盖一个罪行,而又犯下了更多的罪行。书中没有描写过美冬的心理过程,但她谋划了这些事情,也无法做到内心毫无波澜吧。

没有外患,全是内忧

2025年5月15日 05:51

题外话:感谢AI帮我翻译url。


上篇文章「中年空虚」说到,我最近精神状况不太稳定。这跟情绪不稳定还不一样,因为我两者都经历过,所以可以分别。以前在育儿中遭遇过不少困难,情绪起伏大,也曾发博客记录,收获了很多安慰和建议,感恩!后来慢慢释怀了,一是认知进步了,二是“罪魁祸首”坡坡长大了,所以直接治了本。但现在的emo又升级了,变成了乌云笼罩式的无力。

找不到原因,不知道到底是真的没有原因,还是只是我没找到。想来想去只剩一个答案——年纪大了!前两天跟朋友聊天,她说到自己四十了,我小小惊讶了一下,算了算发现我也快三十七了。真的这么明显吗,确实这几年奇奇怪怪的病不少,现在右胯还在疼着,明天要去复诊。按理说我几年前开始运动,身体应该更好才对,难道不运动身体差得更快?话说连豆哥都开始运动了,哈哈,这年龄带来的紧迫感。

工作一如往常,九点上班,三点下班。下班后一小时是我珍贵的me-time,状态好的时候运动写博客,不好的时候刷剧休息。四点接小坡,然后去公园玩会儿再回家煮饭洗澡陪读睡觉。我原本想不通,明明工作时长短了许多,为什么比没生娃前还累。我自诩各方面能力都不错,可是现在的情形似乎还比不上一般的全职妈妈。就因为这,我又emo了好几天。然后因为上次emo还没结束多久就又emo,使得我更emo了。不过后来我想通了,陪娃何尝不是一份工作,甚至比职场更不可控。毕竟工作是事情,娃是人。事情听你的,娃有自己的想法呀,得引导。想到这儿,我心里一松,笼罩了几天的乌云缓缓散开。

回家后我跟豆哥说到此事,原来我一直以为自己轻松是认知不清,其实我一直在加班加点劳作啊!认识到这点后,我开始有意识地把心从娃身上收回,担心她不如多想想自己,儿孙自有儿孙福!

非常感谢博友们的评论和现身说法,emo毫无规律可言,也不讲道理。来了忍一忍,没找到原因那也就无所谓需要克服或改变什么,等这阵子过了,可能就好了。如果不好就不好吧,一有空就做点不用脑子的事,我已经不再为刷土味短剧而自责了,毕竟能让成年人快乐的事太少了。写到这我想起前阵子的感悟——我从这个世界的参与者,逐渐变成了旁观者。经历多了,也就没多少能刺激到神经的事了,这事儿着实好坏参半。好的地方在于遇事能够做到处变不惊,人稳重了许多。坏的地方在于生活变得无聊,人也没什么活力。哈哈,天知道我小时候多希望自己能变得稳重,不以物喜不以己悲。可是现在,我又开始羡慕孩童们的天真和活力。

以前大人们总说当小孩好啊,无忧无虑。长大后我觉得还是大人好,自己的事情自己说得算。可是为什么脑子里的烦恼多了许多。我一直觉得坡坡缺根筋,小孩的脑子大概因为还没发育好,所以天然呆,这才是他们无忧无虑的真相吧。我也想无忧无虑,我也想像豆哥说的那样别想那么多,可是事情总是自动出现在我的脑袋里,然后我就开始担心这忧心那。我悟了,所以过来人们极力推荐正念冥想,就为了清空大脑,跟冥想盆是一个道理。

「凡事过犹不及」实乃真理啊!啥都不想缺根筋,啥都想伤心神。所以「看山是山,看山不是山,看山是山」的三阶段便是最好的例子吗?我还在「不是山」的阶段苦苦挣扎,什么时候可以真正放下呢?是能够自己选择放下的吗?难道目标是能够从容操控思想?

控制思想
→控制对世界的看法
→控制世界的呈现
→控制世界!
唯心主义好香啊~

年纪大了,身体不中用了,向外探索的机会就少了许多。但内心世界却越来越丰富,厚积薄发,无法掌控。看来跟健身一样,我还需要健心。想我小时候,总觉得身体里有花不完的力气,每天放学还要绕操场跑三圈。而现在,则每天上演内心戏,都是年度巨作的规模。

先从看坡坡的小儿哲学书开始吧。

操碎了心

2025年5月15日 08:15

不怕神一般的对手,就怕猪一般的队友。这句话每年都得出现好几遍。通常会出现在第二个季度,因为第二个季度会有个叫库存检查的东西。为了迎接这个库存检查,单位要写个汇报材料。某些部分永远写得过于详细。因为写得太详细,所以问题经常暴露,且暴露得越来越多。每次看那份材料,我都觉得我要折寿10年。首先数字可能是不对的,其次仓号可能也是不对的,整套流程的理解也有可能是不对的。最核心的在于他们从来没有真正理解那些流程。一个是那样,两个是那样,或者我直接这么说,每个写那个材料的人都这样。自从以前专门写这个材料的两个人离开了我们单位去了其它兄弟单位任职以后,这个单位的那份汇报材料就一直处在这种糟糕的状态。

那些大空话写得好不好,我不知道,但是数据的理解、数据的分类这些东西没有任何回旋余地。恰恰在这个点上,永远会出现无数那么多的问题。我真不知道,如果你们不清楚,为什么要写那么详细。又或者是说,为什么写材料的人就从来没有清楚过呢?基层员工不清楚,副科不清楚,正科也不清楚,那要难道叫副主任去写吗?对口的那个副主任清不清楚,我还真不知道,我只知道分管我的那个副主任是清楚。虽然分管我的那个副主任如果把数据阐述出来,他的那个分类方法可能跟我有点差异,但起码我俩分类的那堆数都是对的,无论是他的那个角度还是我的角度都是合理的。但关键是无论是我还是我的分管领导,都不直接负责这摊东西。负责这摊东西的,从来都是一坨屎。我不知道这种糟糕的状态到底要持续多长时间,什么时候才能有一个神来拯救他们。之所以会存在这种问题。最根本的原因是他们对自己的那个业务不清楚、不了解、不学习,一直只是应付完成上面交办的工作。当上面发布什么管理办法的时候,只是理论上知道了,但实际上可能没吃透不理解,于是这就直接导致了每年至少一次我要看那份我不想看但我又必须得看的资料。基本上可以这么说,看完以后得逼着他们改得面目全非,至于他们有没有改,我也管不了了,因为我根本没有管的权限。自知自己无知,然后才会有改进,但有些人就不承认自己就有这么个缺陷。我是那个永远被这个缺陷拖下水的人。

今年的情况比较特殊。库存检查居然要持续一周,而且那个检查组有15人。检查的时间超级长,检查的人数其实已经超出了检查文件里面所说的人数范围,所以他们决定要在我们单位大搞一场。搞了一周5天之后,接下来的周一,还有一个集团公司的春普。春普这一次不再分两组人,一组人直接踩到底。里面有些什么人,很多我都不认识,但可以肯定的是我们单位没有人参加。为什么我们单位会没有人参加呢?我觉得最重要的一个原因是春普的前半段,我们正在接受外部的那个检查组过来库存检查。在接受检查的时候把我们的人抽走,没有对口的人去解决对口的问题,显然这就很不合适了。如果秋普依然沿用这种一组人的方式,估计那个检查组有我们单位的人。

可以预测,5月的下旬将非常难熬。

中美贸易战告一段落, 牛市来了

2025年5月15日 01:36

“折腾一个月,关税无事发生。但是巴西得到了大豆订单,澳大利亚得到了肉类订单。东南亚和东盟得到了转口贸易中国得到了前所未有的外宣声望和内部团结,公知和maga得到了耳光。马斯克得到了教训。甚至加拿大都得到了民族自尊心。特朗普也没白忙活,和他的朋友们含泪赚几百亿。”

中美似乎在贸易关税上达成一致,各为10%。这下似乎牛市来了,不过二饼(以太ETH)还是很疲软。

蔡正元:中国大陆这次面子里子都赢麻了。赢到了让全世界刮目相看,因为看多人都跑到华盛顿去下跪。中国大陆不用。贝森特你要谈就到瑞士来谈,我刚好路过瑞士,有空找你谈,你最好把方案带着来,我们就一次来敲定,所以,中国没有移樽就教,而是贝森特代表美国移樽就教,所以在面子上面中国赢麻了,在里子上面,一个多月而已,一切回到解放前,美国全线溃败,他本来以为用关税政策可以打击中国大陆的贸易,没想到刀刀都刺向自己,中国不能说毫发无伤,但至少皮肉之伤挺得住啊,你美国是被打得鼻青脸肿,证实美国在这次压力测试里面,美国经不起和中国脱钩/De-coupling,因为你们没货。所以中国也经过这次的压力测试,算是挺住了。

BTC 第一次突破 10 万美元时,ETH 价格为 4000 美元。
BTC 第二次突破 10 万美元时,ETH 价格为 3900 美元。
BTC 第三次突破 10 万美元时,ETH 价格为 3700 美元。
BTC 第四次突破 10 万美元时,ETH 价格为 3400 美元。
BTC 第五次突破 10 万美元时,ETH 价格为 3000 美元。
BTC 第六次突破 10 万美元时,ETH 价格为 2800 美元。
BTC 第七次突破 10 万美元时,ETH 价格为 2700 美元。
BTC 第八次突破 10 万美元时,ETH 价格为 2000 美元。

crypto-btc-eth-tron-2025-05-14 中美贸易战告一段落, 牛市来了 以太网 ETH 加密货币 区块链 微软 投资 新闻 比特币 比特币 BTC 税 Tax 股市 资讯

币圈也开始涨回来了,牛市真的要来了?希望这是大饼最后一次破10万刀。

how-us-tax-tariff-trump-work 中美贸易战告一段落, 牛市来了 以太网 ETH 加密货币 区块链 微软 投资 新闻 比特币 比特币 BTC 税 Tax 股市 资讯

特朗普发动关税之战就是搬起石头砸自己的脚。

us-stock-msft-apple-amazon-meta-nvidia-2025-05-14 中美贸易战告一段落, 牛市来了 以太网 ETH 加密货币 区块链 微软 投资 新闻 比特币 比特币 BTC 税 Tax 股市 资讯

美国科技股:微软、苹果、亚马逊、英伟达、Meta涨回来了。

新闻/实事/经济

本文一共 681 个汉字, 你数一下对不对.
中美贸易战告一段落, 牛市来了. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 中美贸易战告一段落, 牛市来了 以太网 ETH 加密货币 区块链 微软 投资 新闻 比特币 比特币 BTC 税 Tax 股市 资讯
The post 中美贸易战告一段落, 牛市来了 first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  2. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  3. 同一台服务器上多个WORDPRESS站点的一些设置可以移出去 我自从把所有网站都挪到一处VPS服务器上 就发现很多事情省事很多 可以同时管理多个网站 包括 WORDPRESS博客. 比如我有四个WORDPRESS博客 然后我就把通用的一些资料给移出去 移到 HTTP或者HTTPS都不能直接访问的文件夹里这样就更安全许多. 文件 wp-conn.php 存储了 相同的数据库资料. 1 2...
  4. 比特币最近波动有点大: 一天牛市一天熊 比特币10万美金以内都是最后上车的机会! 比特币近期的价格波动可以归因于多个关键因素,包括地缘政治动态、监管变化以及加密行业内的重大安全事件。其中一个主要影响因素是美国前总统唐纳德·特朗普对乌克兰和加密货币监管的立场变化。据报道,特朗普再次当选,他可能会推动减少美国对乌克兰的支持,这可能会影响全球金融市场和风险偏好。同时,特朗普正在将自己塑造为亲加密货币的候选人,表示有意让美国成为一个更加友好的加密货币环境。这一立场引发了市场对监管政策可能发生变化的猜测,导致市场情绪在乐观和不确定性之间波动。 特朗普对俄乌战争的态度 美国第43届总统唐纳德·特朗普已经在2025年1月当选并正式上任(第二次),那么他的政策可能会对比特币价格的波动产生更加直接和显著的影响。他政府对乌克兰和加密货币监管的立场已经不再是猜测,而是正在实际塑造市场的关键力量。 特朗普(Donald Trump)减少美国对乌克兰的支持,全球投资者可能会预期地缘政治稳定性发生变化,从而增加对比特币作为避险资产的需求。同时,他的亲加密货币立场可能正在推动市场的乐观情绪。如果他的政府推出有利于加密行业的监管政策,例如明确的合规指南或减少监管审查,可能会吸引更多机构投资者进入市场,并促进更广泛的加密货币采用。然而,政策的快速变化也可能导致短期市场剧烈波动,因为市场需要时间来消化新的政策动向。 朝鲜黑客盗取Bybit交易所15亿美元的ETH 另一个显著影响比特币价格的事件是近期涉及朝鲜黑客组织“Lazarus”的15亿美元以太坊被盗案件。据报道,Bybit交易所(全球第二)这些被盗的ETH已经被清洗,此次大规模黑客攻击引发了人们对加密行业安全性的担忧。此类安全事件不仅会削弱投资者信心,还可能引发更严格的监管审查,导致短期市场动荡。此外,被盗资金的大规模流动和出售可能对市场流动性造成冲击,进一步加大价格波动。随着这些事件的持续发酵,比特币价格正受到政治决策、监管预期以及安全挑战等多重因素的影响。 与此同时,与朝鲜黑客组织 Lazarus 相关的 15 亿美元以太坊被盗事件仍在影响加密市场。由于这些被盗 ETH 已被清洗,人们对加密行业安全漏洞的担忧持续存在,同时也可能引发更严格的监管审查。政治、监管和安全等多重因素交织在一起,共同导致了比特币近期的剧烈价格波动。...
  5. 公司请的专业摄影师 公司来了新的CEO管理之后,很多事情都不一样了, 特别是一些公司对外形象的事情就特别的在意, 比如公司网站用上SSL.现在公司还有空闲的位置,请速来(钱多人不傻). 一月份出差回LUTON,刚好公司请来摄影师给高层管理照像放网站上的,于是我也凑了凑热闹(但是却还不够资格被放在公司网站上),不过没关系,放这里也差不多. 人到中年, 沧桑感强了些. 更新更新: 同事用他NB的单反给谢菲尔得办公室的人也拍了一组这样的照片.看起来很不错, 很专业,灯光,道具应有尽有.我已经用在了LINKEDIN页面上,立马高大上. 本文一共 230 个汉字, 你数一下对不对. 公司请的专业摄影师. (AMP...
  6. 面向猫猫编程 Cat Oriented Programming (Chessly/Pyro这一生持续更新) 家里有两只猫 Chessly/Pyro,想着找个地方记录它们的生活,最后决定还是写在这里的博客。猫的一生很短,差不多也就二十年。 Chessly(黑白猫)是我加入微软剑桥研究院MSRC第一个月带回家的,过了两三个月,又把Pyro(橘猫)也接回了家。两只猫的名字是孩子们取的:Chessly因为黑白的像棋盘,加上“ly”听起来像个女孩的名字;而Pyro的意思是一团火(烟火),充满活力。 刚开始的时候,Chessly特别喜欢待在我的工作区域。她有时候趴在键盘上或旁边,有时候藏在显示器后面。偶尔还会绕到我身边“咕咕”地撒娇,等着我去摸她。有时更干脆跑到我腿上,舒舒服服地躺着。 不过,现在它们俩的体型都大了很多,躺在桌上就会挡住屏幕,真是“面向猫猫编程”(Cat Oriented Programming)的极致体验。 记录生活的点滴,也是一种珍惜,毕竟这二十年,我们会一起走过。 2024年 2025年 Ring视频:两猫日常就是打闹,Chessly追上Pyro想舔他,在猫的世界里,地位高的才能舔地位低的。 我家猫现在越来越胖,很喜欢在我工作的时候躺在显示器钱,很影响我的工作,不过这时候我就是会休息一下摸摸她,就当放松一下了。 Pyro在窗边喝水,这是个小的煮饭锅,现在不用了,就给猫当喝水的碗。Pyro很胆小,经常看到我就跑。没法跑就咕咕叫。 Chessly很喜欢陪我工作,然后她很好厅的盯着屏幕上的鼠标光标,真怕她把屏幕抓坏了。 哥哥弹琴,弟弟唱歌,Chessly午睡,真是幸福啊,下辈子做只猫吧。...
  7. 在英国给孩子换学校的经历: 孩子离开了村里的小学 由于搬了家, 孩子上学得提前半小时出门了, 因为早上堵, 也得开车半小时才能到. 之前在 Fen Drayton 村庄上小学, 早上8:45学校门开, 9点敲钟孩子排队依次进入教室, 我们由于在村里, 只需要提前5分钟出门和孩子一起走路就可以了. 现在一下子早上变得很匆忙, 得叫孩子起床, 做早饭,...
  8. 索兰娜区块链简介 (Solana) Solana 是一个高性能区块链平台,旨在提供快速、安全且可扩展的去中心化应用程序和加密货币。 它旨在通过利用独特的技术组合来解决其他区块链网络面临的可扩展性问题,包括历史证明(PoH)、一种称为权益证明(PoS)的新颖共识机制以及水平可扩展架构。 Solana 使开发人员能够构建具有高吞吐量和低延迟的去中心化应用程序 (DApp),使其适用于从 DeFi 到游戏等广泛的用例。 索兰娜区块链英文是 Solana,它的代币是 SOL。 索兰娜区块链是一个高性能的加密货币区块链,以其速度和效率而闻名。它旨在促进去中心化应用程序(dApps)和加密货币的发展。以下是其主要特点: 高吞吐量和可扩展性:索兰娜能够每秒处理数千笔交易,远远超过比特币或以太坊等较旧的区块链。这得益于其独特的共识机制和证明历史(PoH)算法。 证明历史(PoH):索兰娜引入了创新的证明历史概念,这是一种验证事件之间的顺序和时间流逝的方法。这对于网络的高吞吐量至关重要。 低交易成本:由于其高效的处理能力,索兰娜提供的交易成本远低于其他主要区块链。...

字节豆包AI还是比较懂男性: 可能和抖音数据有关?

2025年5月15日 01:21

今天在一个群里看到四张由字节的豆包(Doubao AI)生成的美女图,着实震撼。现在的AI技术已经发展到这种程度了吗?

刚开始我还以为是真人照片,直到注意到右下角写着“豆包AI”。不得不说,字节的这波操作真是让不少男性同胞“受益”匪浅(字节豆包模型训练数据很可能有来自其抖音和Tiktok平台,所以更懂男性)。AI的进化速度之快令人惊叹,各大模型之间也越来越“内卷”。很多行业都在被AI渗透:程序员、设计师、律师、医生……并不是说这些岗位会因此消失,但竞争会更加激烈,岗位需求可能也会减少。尤其是对那些懂得使用AI工具的高级从业者来说,卷得只会更厉害。

这四张图完全击中了我的审美:美女站在镜子前自拍,高跟鞋短裙长发身材丰满,每一处细节都恰到好处,而且看起来毫无“AI感”。

注意美女脚上的青筋,还有手机闪光,阴影等,细节很细致。

其实我已经很久没有关注AI生成美女图了,之前总觉得那些图风格千篇一律,容易审美疲劳,也可能是提示词的问题。

这种效果可能在ChatGPT、Grok、Midjourney等平台上未必能生成,毕竟这种尺度对某些AI来说可能有些“越界”,系统可能直接提示:“不符合规定,无法生成”。

2025-05-14-10.19.09 字节豆包AI还是比较懂男性: 可能和抖音数据有关? AIGC-图片 人工智能 (AI) 女人 小确幸 有意思的 福利

字节豆包AI生成的大长腿美女/短裙/丰满/长发/高根

2025-05-14-10.19.16-1 字节豆包AI还是比较懂男性: 可能和抖音数据有关? AIGC-图片 人工智能 (AI) 女人 小确幸 有意思的 福利

字节豆包AI生成的大长腿美女/短裙/丰满/长发/高根

2025-05-14-10.22.27 字节豆包AI还是比较懂男性: 可能和抖音数据有关? AIGC-图片 人工智能 (AI) 女人 小确幸 有意思的 福利

字节豆包AI生成的大长腿美女/短裙/丰满/长发/高根

2025-05-14-10.19.13 字节豆包AI还是比较懂男性: 可能和抖音数据有关? AIGC-图片 人工智能 (AI) 女人 小确幸 有意思的 福利

字节豆包AI生成的大长腿美女/短裙/丰满/长发/高根

有意思的/雅俗共赏

ChatGPT 可以拿来做什么?

ChatGPT 通用人工智能

Grok 3

字节/豆包/AI

本文一共 659 个汉字, 你数一下对不对.
字节豆包AI还是比较懂男性: 可能和抖音数据有关?. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 字节豆包AI还是比较懂男性: 可能和抖音数据有关? AIGC-图片 人工智能 (AI) 女人 小确幸 有意思的 福利
The post 字节豆包AI还是比较懂男性: 可能和抖音数据有关? first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 特朗普加关税的公式竟然是EXCEL里弄的? 这两天中美关税大战越演越烈,据说,特朗普加关税的计算方式竟然是直接在EXCEL电子表格里弄的,具体如下: 其中 I 是 Import,进口;E 是 Export 出口。 优美又实用的公式家族又添新成员 勾股定理: 欧拉恒等式: 牛顿运动定律: 爱因斯坦质能等价公式: 特朗普的“互惠关税”公式:,其中 I...
  2. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  3. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  4. 你要找什么样的老婆? 找媳妇的标准 昨天和网友在剑桥面基, 网友奔现, 他从爱尔兰过来, 小我12岁, 就聊到了找对象的标准. TLDR; 找老婆不要(只)看颜值, 而要注重性格, 为人处事和顾家等更重要的品质, 当然性和谐也很重要. 在当今社会, 人们对于找伴侣的标准有所不同. 有些人认为颜值是最重要的, 因为外貌吸引力可以让人在日常生活中感到愉悦, 这是人的本性,...
  5. 同一台服务器上多个WORDPRESS站点的一些设置可以移出去 我自从把所有网站都挪到一处VPS服务器上 就发现很多事情省事很多 可以同时管理多个网站 包括 WORDPRESS博客. 比如我有四个WORDPRESS博客 然后我就把通用的一些资料给移出去 移到 HTTP或者HTTPS都不能直接访问的文件夹里这样就更安全许多. 文件 wp-conn.php 存储了 相同的数据库资料. 1 2...
  6. 比特币最近波动有点大: 一天牛市一天熊 比特币10万美金以内都是最后上车的机会! 比特币近期的价格波动可以归因于多个关键因素,包括地缘政治动态、监管变化以及加密行业内的重大安全事件。其中一个主要影响因素是美国前总统唐纳德·特朗普对乌克兰和加密货币监管的立场变化。据报道,特朗普再次当选,他可能会推动减少美国对乌克兰的支持,这可能会影响全球金融市场和风险偏好。同时,特朗普正在将自己塑造为亲加密货币的候选人,表示有意让美国成为一个更加友好的加密货币环境。这一立场引发了市场对监管政策可能发生变化的猜测,导致市场情绪在乐观和不确定性之间波动。 特朗普对俄乌战争的态度 美国第43届总统唐纳德·特朗普已经在2025年1月当选并正式上任(第二次),那么他的政策可能会对比特币价格的波动产生更加直接和显著的影响。他政府对乌克兰和加密货币监管的立场已经不再是猜测,而是正在实际塑造市场的关键力量。 特朗普(Donald Trump)减少美国对乌克兰的支持,全球投资者可能会预期地缘政治稳定性发生变化,从而增加对比特币作为避险资产的需求。同时,他的亲加密货币立场可能正在推动市场的乐观情绪。如果他的政府推出有利于加密行业的监管政策,例如明确的合规指南或减少监管审查,可能会吸引更多机构投资者进入市场,并促进更广泛的加密货币采用。然而,政策的快速变化也可能导致短期市场剧烈波动,因为市场需要时间来消化新的政策动向。 朝鲜黑客盗取Bybit交易所15亿美元的ETH 另一个显著影响比特币价格的事件是近期涉及朝鲜黑客组织“Lazarus”的15亿美元以太坊被盗案件。据报道,Bybit交易所(全球第二)这些被盗的ETH已经被清洗,此次大规模黑客攻击引发了人们对加密行业安全性的担忧。此类安全事件不仅会削弱投资者信心,还可能引发更严格的监管审查,导致短期市场动荡。此外,被盗资金的大规模流动和出售可能对市场流动性造成冲击,进一步加大价格波动。随着这些事件的持续发酵,比特币价格正受到政治决策、监管预期以及安全挑战等多重因素的影响。 与此同时,与朝鲜黑客组织 Lazarus 相关的 15 亿美元以太坊被盗事件仍在影响加密市场。由于这些被盗 ETH 已被清洗,人们对加密行业安全漏洞的担忧持续存在,同时也可能引发更严格的监管审查。政治、监管和安全等多重因素交织在一起,共同导致了比特币近期的剧烈价格波动。...
  7. 终于在Steam平台上玩了最终幻想7-Remake-蒂法和爱丽丝真是美啊 前不久先是我用了7年的HPZ800的服务器在车库里寿终正寝了, 然后就是感觉小电脑NUC太慢, 所以又又搞了一台微软的 Surface Studio Laptop, 这电脑真是快, 自带独显, 玩DOTA2+鱼尾屏很爽. 在STEAM平台花了69.99英镑买了最终幻想7-Remake. Final Fantasy VII – Remake...
  8. ChatGPT-4 使用 Math Wolfram 插件解决数学脑筋急转弯问题 这篇文章, 我们看一个简单的数学问题(脑筋急转弯), 并用 Python 解决它. 我们看一下LLM(大型语言模型): ChatGPT3.5和ChatGPT4. 通过 ChatGPT-Plus 订阅(目前每月 20 美元 + VAT增值税), 我们可以启用...

WordPress 6.8 提升了 WordPress 的查询效率!

2025年5月13日 23:03

WordPress 6.8 通过对参数标准化操作,来保证生成缓存的键名(cache key)的一致,提高具有等效参数的查询的缓存命中率,最终实现 WP_Query 缓存效率的提升。

参数标准化

开始之前,我们先了解一下什么是参数标准化?

举个 WP_Query 最常见的使用场景,就是查询多个文章类型时,我们可以会有下面三种写法:

$q1 = new WP_Query(['post_type' => ['post', 'page']]);
$q2 = new WP_Query(['post_type' => ['page', 'post']]);
$q3 = new WP_Query(['post_type' => ['page', 'post', 'post']]);

其实这三个查询的结果其实是一样的,但是在 WordPress 6.7 及之前的例子,因为 WordPress 生成缓存键名之前,没有进行去重和排序等操作,造成了生成的 key 不同,每次查询都会去数据中获取。而在 6.8 中,post_type 参数会按字母排序并去重,我们可以通过 get 方法获取一下看 post_type 的值:

$q1->get('post_type'); // 返回 ['page', 'post']
$q2->get('post_type'); // 返回 ['page', 'post']
$q3->get('post_type'); // 返回 ['page', 'post']

这样,这三个查询在第一次使用的时候,只有第一个会去数据库中去查询,第二个和第三个则直接从缓存中获取。

对于接受整数或字符串的参数(如 author__not_in),则进行类型转换和排序来实现参数标准化,author__not_in => ['2', '1'] 会转换为 author__not_in => [1, 2]

另外如果 WP_Query 的参数以字符串形式传递,则不会转换为数组:

$q4 = new WP_Query(['post_type' => 'post']);
$q4->get('post_type'); // 返回 'post'

开发者的问题

这样修改,可能会对插件和主题开发者造成一定兼容的问题,可能会影响使用 WP_Query::get() 方法和 WP_Query::$query_vars 属性的主题和插件,尤其是使用了 WP_Query 内部过滤器的代码的:

$query = new WP_Query(array('post_type' => array('post', 'page')));

add_filter('posts_where', function($where, $query) {
    // WordPress 6.7 返回 array('post', 'page'),结果为 true
    // WordPress 6.8 返回 array('page', 'post'),结果为 false
    if (array('post', 'page') === $query->get('post_type')) {
        // 修改 WHERE 子句
    }
    return $where;
}, 10, 2);

怎么办呢?比较数组内容时,推荐使用 empty(array_diff(/* arrays */)) 而非直接相等比较,这样就没有顺序的问题。

总结一下

简单说,WordPress 6.8 可以把之前一些因为参数顺序不同的具有等效参数的查询认为是同一个查询,来提升缓存的命中率,从而提高 WordPress 的效率,这个优化还是非常好的,但是也要注意因为对于参数进行排序,而造成的获取数据和之前不同,以及比较的一些问题。

此外该优化不仅仅应用于 WP_Query 这个主要的查询类中,下面这些查询类也有同样的优化和改进:

  • WP_Term_Query
  • WP_Network_Query
  • WP_Site_Query
  • WP_Comment_Query

老花了

2025年5月14日 08:51

我不得不接受一个现实,还没到40岁,我已经有老花了。

老花这个东西,在光线不好的时候,特别明显。光线好一点,估计我还能看得清,但是如果光线很一般,我跟瞎子没什么区别。我怎么发现这个问题的呢?某次在家里吃饭,突然我发现饭碗里的米粒我看不清了。是因为眼镜的问题吗?但是我的眼镜并没有被水蒸气模糊,为什么会这样呢?一次偶然的机会,我拿掉了近视眼镜,发现在近距离的时候,我居然看清了饭碗里的米饭。同样的道理,当我把手机拿到离面部只有5厘米的时候,我什么都看不清。当手机放在离面部20厘米的时候,凑合着能看清,但是当我把手机拿到更远的地方,却有点反而看得更清了。当我拿掉近视眼镜,把手机放在离面部大概10厘米的地方,我还能看清5厘米的时候,能看清一点点,但是比戴着眼镜的时候好,但是,当我把手机拿到离面部不超过30厘米的地方,不戴近视眼镜的我又开始看清吃力了。现实就是这么残忍,戴眼镜跟不戴眼镜,看清的那个距离不一样,以前没有这个问题。

第一次让我觉得真的老花是工作上要把一个理论上应该用A3打印的表打在一个A4的纸上核对上面的数字。本来那张表打在一张A3上,看就已经有点吃力,打在A4上,我几乎看不清了。努力一点看其实也能看到,但是得非常用力。让我看得非常绝望的数字有多大呢?我真拿尺子去量了,高度不到一个毫米。一个毫米是多大呢?我感觉普通缝衣服的针的那个洞差不多。于是我就想起了小时候,外婆凭着她的感觉缝衣服还可以,但是穿针这个操作,得让我来。一个普通药瓶上面的字,大概就一个毫米的高度,所以现在我看那些小瓶子上面的字也挺困难,要足够量的光线,同时也要把那个瓶子放在一个恰当的距离,我的眼睛才能准确对焦。为了能核对那张A4纸的数字,我甚至去其它科室问他们有没有放大镜了。理论上他们是有的,但实际上原来是虽然有,但只有一两个,我也就不好意思影响别人的工作了。我该怎么办呢?我只能找自己的放大镜。要眼睛凑过去,还可以开灯的迷你显微镜我有一个,但是那个得对焦好,否则就是一团,而且那么大个表,我不只是看一个地方,好几个地方都有数字,眼睛凑近看,实在太难为我了。那个能开灯的迷你显微镜让我偶然发现,当我把那个灯照在那个数字旁边的时候,我就能看得清楚些。又或者说不需要那么费劲了。所以我就拿出了给随身WiFi供电的充电宝,打开那个灯。靠近那张纸靠近我需要核对的数字,一个一个核对。虽然没有放大镜,但通过这种方式,我还可以继续我的工作,后来我又发现,一开始那几张纸的确很难对,但后面打印出来的全部都有空白了,因为那个打印机的粉不够了。当我把那个东西拿出来摇了一摇,再放回去重新打印之后发现后来出的那些纸虽然某些字体还是那么小,但是看起来的费劲程度没有一开始的那么大了。所以得出一个结论,那张试纸看得我那么辛苦,肯定有我老花的因素,但同时打印机的粉不够,又或者分布有问题了,也会加大我的阅读难度。为什么药瓶的字那么小,我还能看到,但是那张打印出来的A4纸我却看得那么费劲呢,大概原因就在这里。

不仅仅是我被老花困扰了,问了我的同事,她也有类似的问题,可能症状比我轻一点点。我们这代人还有20多年才能退休,工作年限还不到一半。真太折磨人了。

CodeBuddy腾讯云代码助手初体验

2025年5月13日 19:52

本文算个安利吧,目前比 trae 实在,至少不是老是排队,暂时免费使用。

CodeBuddy 是什么

腾讯云出品的代码助手插件, 支持 VSCodeJetBrains微信开发者工具

对比 Cursor

对比我用的 cursor,目前有两大优势

  • 暂时免费(Craft 对话限制 50 次/月,很容易用完的)
  • Craft 支持从用户需求转到研发需求,最后拆分成迭代执行(很早之前,就跟同事讨论过这个问题,这个应该是未来发展的趋势)

安装

插件安装教程, 安装完成后,扫码登录

使用

简单演示,空仓库如何写一个 caddy 插件

mkdir go/src/github.com/ysicing/caddy2-admin-ui
cd go/src/github.com/ysicing/caddy2-admin-ui
git init
go mod init

配置助手,默认全启用

  • 用户需求 - 研发需求

  • 研发需求 - 迭代执行

  • 迭代 1 - 迭代 n

可能问题

除写了"垃圾代码"外,偶尔不会重构代码外,Agent 执行命令提示没法获取结果,需要 ~/.zshrc 新增如下配置

[[ "$TERM_PROGRAM" == "vscode" ]] && . "$(code --locate-shell-integration-path zsh)"

总结

用的不多,偶尔用用还行,更多的还得关注他们后续的付费计划。


通过 CloudFlare 和 DNSPOD 实现网站分流 - 国内走优化路线,国外走 CloudFlare CDN

2025年5月14日 23:22

大家都知道互联网赛博大善人 CloudFlare 的 CDN 可以免费使用,并且对站点访问有加速的作用,还能保护源站,但是总所周知的原因,CloudFlare 在国内没有节点,使用它的 CDN 服务之后,在国内网站速度反而变慢了。

那么教大家一个方法,利用优化线路 VPS 反代加速网站,实现同时海外访问享受CloudFLare CDN,还能达到保护源站的效果。

准备工作:

  • 主域名:就是你网站的域名,比如 www.xiaoge.org,请托管在 DPSPOD、华为云、阿里云等支持分路线解析的服务商上;
  • 工具域名:比如 302666.xyz(5块不到一年,便宜就行),请托管在 CloudFlare 上,用于 SAAS;
  • 主服务器:以 NetCup VPS1000 为例(4C8G256G),性能强劲但国内访问较慢,用于搭建网站;
  • 优化线路 VPS:以 DMIT 美西优化为例,国内访问快,但配置只有 1C1G(也可以换成香港优化等);
  • PayPal 或信用卡:CloudFlare SAAS 功能需要绑定,实际只用免费套餐,不用花钱~(白嫖😄)。

先通过一个简单的图解了解一下,大概的流程:

解析操作

首先工具域名 302666.xyz​,A解析1个二级域名到主服务器的IP​,并且开启 CF CDN(小黄云),作为回源域名

SSL/TLS 加密设置为完全​或完全(严格)

添加回退源

主域名添加到自定义主机名​(默认设置即可)

这一步需要添加支付方式:PayPal或信用卡,选免费套餐!

查看需要添加的 TXT 解析​

主域名的DNS平台,添加解析

解析部分就完事了,等待10来分钟完全生效~

主服务器

该什么建站、这么添加HTTPS啥的,正常操作即可!(此时只有国外访客能访问站点)

优化路线VPS

  • 域名www.xiaoge.org(主域名)
  • 地址主服务器的 IP+端口

如果是 WordPress 等强制 ssl 访问的程序,请试用 https 协议,IP:443 的地址!

设置HTTPS证书(关键)

由于主域名解析的默认路线​不是解析在优化路线VPS的,所以无法使用HTTP的方式申请证书,需要使用DNS认证的方式申请!

例如腾讯云/DNSPOD 的访问密钥生成地址就是:https://console.cloud.tencent.com/cam/capi

其他家服务商,请自行搜索下!之后以DNS认证的方式,完成证书申请:

问题解答

  • 为什么要 xyz等工具域名?
    主域名使用了 DNSPOD 等支持分路线解析的 DNS 服务商,没有在 CloudFlare 解析,就不能直接享受CloudFlare 的 CDN 防护,所以要托管一个工具域名作为回源域名​,借助 CF 的 SAAS(自定义主机名)使主域名接入 CF 的服务;
  • 主域名可以 cname 其他域名吗?
    当然可以,这也是使用 CF 优选 IP 的操作(这里暂不讨论);只要 cname 的域名开启了CF的CDN,就能够回源到主服务器,但是优选域名有时候会有投毒的风险,我们这里只是国外路线要套CF的CDN,就直接解析自己的回源域名就行了!
  • 主服务器就是优化路线VPS可以用吗?
    那就更简单了,IP 解析同一个就行了,只是 HTTPS 证书申请还是要 DNS 方式!因为默认路线给了CF。

Coding should be a vibe!

2025年5月13日 15:32
The appeal of "vibe coding" — where programmers lean back and prompt their way through an entire project with AI — appears partly to be based on the fact that so many development environments are deeply unpleasant to work with.

So it's no wonder that all these programmers stuck working with cumbersome languages and frameworks can't wait to give up on the coding part of software development. If I found writing code a chore, I'd be looking for retirement too.

But I don't.

I mean, I used to! When I started programming, it was purely because I wanted programs. Learning to code was a necessary but inconvenient step toward bringing systems to life. That all changed when I learned Ruby and built Rails.

Ruby's entire premise is "programmer happiness": that writing code should be a joy. And historically, the language was willing to trade run-time performance, memory usage, and other machine sympathies against the pursuit of said programmer happiness. These days, it seems like you can eat your cake and have it too, though. Ruby, after thirty years of constant improvement, is now incredibly fast and efficient, yet remains a delight to work with.

That ethos couldn't shine brighter now. Disgruntled programmers have finally realized that an escape from nasty syntax, boilerplate galore, and ecosystem hyper-churn is possible. That's the appeal of AI: having it hide away all that unpleasantness. Only it's like cleaning your room by stuffing the mess under the bed — it doesn't make it go away!

But the instinct is correct: Programming should be a vibe! It should be fun! It should resemble English closely enough that line noise doesn't obscure the underlying ideas and decisions. It should allow a richness of expression that serves the human reader instead of favoring the strictness preferred by the computer. Ruby does.

And given that, I have no interest in giving up writing code. That's not the unpleasant part that I want AI to take off my hands. Just so I can — what? — become a project manager for a murder of AI crows? I've had the option to retreat up the manager ladder for most of my career, but I've steadily refused, because I really like writing Ruby! It's the most enjoyable part of the job!

That doesn't mean AI doesn't have a role to play when writing Ruby. I'm conversing and collaborating with LLMs all day long — looking up APIs, clarifying concepts, and asking stupid questions. AI is a superb pair programmer, but I'd retire before permanently handing it the keyboard to drive the code.

Maybe one day, wanting to write code will be a quaint concept. Like tending to horses for transportation in the modern world — done as a hobby but devoid of any economic value.

I don't think anyone knows just how far we can push the intelligence and creativity of these insatiable token munchers. And I wouldn't bet against their advance, but it's clear to me that a big part of their appeal to programmers is the wisdom that Ruby was founded on: Programming should favor and flatter the human.

我进入不了角色

2025年5月13日 10:26

几个同学,家人发来信息都问生了吗,我也都回了,却也没动力告诉其他关心的朋友,我就是开心不起来。我哥我嫂子在家人群里,满是恭喜或溢美之词,我不想理会;我姐问要不要给订束花,我不想回复,甚至感觉滑稽,又把电话发过来,我问她有时间听我唠叨吗?她说有,然后我情绪真的绷不住了,眼泪崩溃哭出了声,我不知道为什么,我和说我小时候就爱哭。你们都对着一个小孩子夸夸其谈,让我给你们不停的发照片,发视频。现在对这个陌生的甚至只见了一面的孩子,并没有比你们更熟悉一点,你们所有的恭喜都跟我无关,我媳妇昨天蹦蹦跳跳,谁知道过去的这一夜我们经历了什么,谁又看到她躺在平车上呼吸急促惊恐的样子。

我找不到那种开心的感觉,我也不知道自己该怎么做才能匹配他们的恭喜和赞美,也不知道过几天,我姑娘,也是我,该怎么面对那个刀疤

天气反转

2025年5月13日 08:37

终于等到了一个大晴天,感觉真的是好不容易。看看我自己的日历,原来一整个4月,我都没有晒被子和更换床上用品了,因为都在下雨,即便不下雨,天气也不好,是那种说不准什么时候就会飘雨的状态。

我也不知道为什么这个5月中旬突然就来了场很很厉害的雨。大雨过后明显感觉气温下降了,甚至让人觉得有点冷。周六的时候还是闷热的,但周六晚上睡觉的时候我已经要裹紧我的棉被了,周日早上起来更是觉得有点凉。为什么会这么神奇呢?广东这边有句俗话“未食五月粽,寒衣勿入栊”。也就是说在端午之前,可能还会有天气反常,所以不要把御寒的衣物收起来,但端午过后基本就那个样子了。离端午节还有三周。现在天气就出现了反转,前段时间湿度很大很闷热,但突然之间,北风过来、下雨,然后就凉爽了,甚至让人觉得有点像秋天感觉,湿度一下子打了个5折,从80%多,跳水到40%多。

这样的好天气,让人觉得空调也不必了,但偏偏就在这么好的天气,我又不知道为什么鼻子不争气,一直出现各种状况。首先是上周二出现异物吸入,上周五办公室进行某条下水管的切割。那个时候,我就开始喷嚏不断,感觉过敏了。切割的是PVC管,我感觉我的过敏不是那个东西,而是在拆那条管的时候,那个师傅顺便把墙上的一些胶刮下来了,我对腻子灰过敏。基本可以确定,每次装修,只要那些腻子灰很厉害,我都会过敏。以前不会这样,但有一年单位的走廊进行墙体的修复,需要把腻子灰刮掉,然后重新涂抹,刮掉那个的时候我痛不欲生。那一次以后,基本上每次遇到腻子灰扬起,我都必死无疑。为什么我觉得是过敏性鼻炎呢?因为只有一个鼻孔在流清鼻涕,完全止不住,虽然还不到鼻塞的程度。除了一个鼻孔流鼻涕以外,还有就是不断打喷嚏,喷嚏通常都是连续好几个。刚刚接触那些东西的时候还不算很明显,回到家以后症状越发明显,以至于我的手基本离不开纸巾,出门的时候手也离不开纸巾。如果要止住清鼻涕的话,其实还可以戴口罩,戴口罩了,我的鼻涕就不流了。这个操作很神奇,但很有效。周五下班回家的路上,全程戴着口罩,我全程不需要纸巾,但是在家里没戴口罩,所以我一直得依靠纸巾。在广州的时候也出门,上公交的时候我戴着口罩,全程不需要纸巾,所以这到底是怎么回事呢?戴着口罩也能减轻过敏性鼻炎的症状吗?大概是因为戴着口罩就不容易吸入冷空气,或者受到各种刺激。

回到家以后,因为过敏性鼻炎症状很明显,所以我有用盐水洗鼻,洗的时候挺舒服,但洗完的快乐只能持续很短一段时间。跟真正的鼻炎不一样,过敏性鼻炎的时候,我根本洗不出什么东西,但有个很明显反应,在我洗鼻的时候,我觉得眼睛也快出水了,尤其是流清鼻涕的那个鼻孔对应的眼睛。

天天都在盼着好天气,这个5月中旬的好天气居然还伴随着低温,于是我赶紧把单位宿舍的床上用品该洗的洗、该晒的晒。

汉字的不可拼音化

2025年5月13日 05:18

今天看到了这样一个有趣的网站,理查德·西尔斯(Richard Sears),一个美国人,他花了 20 多年的时间整理了数万个甲骨文、金文和篆字的字形变体(包括 31000 多个甲骨文拓片、24000 多个金文铭文和 49000 多个篆书字形),并制作成了一个叫做字源的网站。打开网站之后,只需要输入一个汉字,点击一个按钮就能看到这个汉字在甲骨文,金文,篆体中的样子。

于是我想到了之前写过的一则笔记——「为什么汉字起源于象形而非拼音」。

汉字作为世界上最古老的仍在使用的文字系统之一,从其诞生之初就采用了以象形和表意为基础的系统,而非纯粹的拼音系统。这一特性的形成有着深刻的历史和语言学根源。

汉字在其起源时就是以图形和符号为基础,而非直接记录语音的拼音文本,其历史可追溯至远古时期。汉字最初可能源于原始图画,传说中虽有黄帝史官仓颉根据自然物体形状创造的故事,但现代学者普遍认为汉字系统是由古代先民在长期社会实践中集体智慧逐步形成的,而非一人一时所创。考古发现表明,最早的汉字雏形可能追溯至约 4800 年前的大汶口文化晚期陶器刻画符号等史前刻符,并在商朝(约公元前 1300 年开始)的甲骨文时期发展成为成熟的文字系统。这些早期文字主要通过直观的图像和符号来记录事物与概念,体现了典型的象形与表意特性。

汉字的构成方法,后人总结为「六书」原则:象形、指事、会意、形声、转注、假借。这些方法展现了汉字构造的多元性:

  • 象形、指事、会意主要围绕字形和意义构建字符;
  • 形声字(约占现代汉字的 80% 以上)则结合了表意的「形旁」和表音的「声旁」,创造出兼具形义的新字。

尽管包含了表音成分,但这种构造方式记录的是语素(有意义的音节)而非纯粹的语音流,与完全基于发音的拼音文字系统有着本质区别。例如,「臭」字在古代由表示鼻子的「自」和「犬」组合而成(会意),因为古人观察到狗的嗅觉灵敏,以此表达「气味」乃至后来的「难闻气味」之意。

汉语(尤其是其核心语素)具有显著的单音节特性,即一个字通常对应一个有意义的音节,这导致了语言中存在大量的同音字(或同音语素)。以现代标准汉语(普通话)为例,尽管有声母、韵母和声调的变化,但实际有效的带声调音节总数大约也只有 1200 到 1300 种左右。然而,汉字的数量却极为庞大,例如清代的《康熙字典》就收录了约四万七千个汉字,而现代大型汉语字典收录的汉字数量更多。

这种音节数量远少于文字数量的现象,必然导致大量同音字的存在。例如,发音为 "shì"(去声)的字,就有「是、事、市、世、视、适、士、势、试、释」等等,如果算上所有读作 "shi" 的音(包括四个声调),对应的汉字数量更为可观。若仅仅使用拼音(即使包含声调)来书写,将在很多情况下无法有效区分意义。

语言学家赵元任先生创作的《施氏食狮史》便是一个极端的例子:

石室诗士施氏,嗜狮,誓食十狮。施氏时时适市视狮。十时,适十狮适市。是时,适施氏适市。施氏视是十狮,恃矢势,使是十狮逝世。氏拾是十狮尸,适石室。石室湿,氏使侍拭石室。石室拭,氏始试食是十狮尸。食时,始识是十狮尸,实十石狮尸。试释是事。

全文九十余字皆读作 "shi" 的不同声调,仅凭拼音朗读几乎无法理解,但书写出来的汉字却文意清晰,生动地展示了汉字在区分同音语素上的优势。

虽然汉字的形体经历了漫长的演变,从甲骨文、金文到大篆、小篆,再到隶书、楷书等,字形发生了显著变化,但其作为语素文字(记录意义与声音相结合的语素)的核心特性始终保持了高度的连续性。这种连续性使得现代人通过专门学习,依然能够追溯部分现代汉字与数千年前殷商时期甲骨文的明确联系,一些高度象形的简单文字(如「日」、「月」、「山」、「水」等)的演变轨迹甚至能被普通人辨认出来,这体现了中华文明某种程度上未曾中断的特点,是许多其他古老文明的后继者难以企及的。

综上所述,汉字采用以形表意(或形音结合)的语素文字系统而非纯粹的拼音系统,是深深植根于汉语自身特点(尤其是同音语素繁多)的必然结果。这种系统能够:

  • 有效地区分同音词,保证书面信息的精确性;
  • 在一定程度上能够跨越不同地域、不同时代的语音差异(例如,不同方言区的人们虽口音不同,但能看懂相同的汉字书面语);
  • 承载丰富的文化信息和历史连续性。

这也解释了为何在历史上乃至现代,将汉语完全改造为拼音文字系统的各种尝试,虽然在注音、教学、信息处理等领域取得了重要应用,但最终都未能取代汉字本身——汉字系统的独特性质与文化承载决定了它难以被纯粹的拼音系统所完全替代。

清末民初,面对西方文化的冲击,在救亡图存的时代背景下,以鲁迅、瞿秋白等为代表的一批知识分子曾竭力主张汉字拼音化(罗马字母化),并认为汉字是文化落后的象征,是阻碍中国现代化的绊脚石。鲁迅甚至断言:「汉字不灭,中国必亡」。

虽说站在当今的视角去看待他们的观点,能够理解为矫枉必须过正。但这些主张中所反映出的「左派」的狂热,到底有多少不是被煽动的呢?「一声炮响」到底送来了些什么杂碎,自不必多言。

好在汉字不仅是一种书写工具,还是中华文明传承的载体。最终扛过了不堪回首的混乱年代,历久而弥新。


本文初稿在 Tana 上完成,这是一款通过将 AI 驱动的结构化数据库与流畅的大纲列表相结合的笔记软件,重新定义了现代知识管理,使用户能够无缝地组织相互关联的想法,同时保持自由形式思考的灵活性。

终于成功了一回

2025年5月12日 09:47

五一回来的第一个工作日晚上我发现盐水和少量的盐不足以杀死非洲蜗牛。盐水的浓度如果足够高,而且是用浸泡的方式,可以把非洲蜗牛杀死,但如果盐水只是以喷洒的方式,没办法把非洲蜗牛杀死,但是通过这种方式,可以让爬行在墙上的非洲蜗牛接触盐水之后收缩软体然后掉落到地上。这一波收缩掉地上的操作,使用的盐水浓度很低就够了,估计如果拿个水枪也能实现目标,而且估计浓度也不用太大,只要能让蜗牛感觉到刺激就可以了。

肯定能通过渗透压脱水的方式杀死非洲蜗牛,但要用多少盐呢?我感觉这个得具体问题具体分析,得看那个蜗牛有多大。首先假设蜗牛体内80%是水分,如果把那些水分都夺走的话,那么蜗牛就变剩下20%的干尸了。要夺走蜗牛80%的水分,就意味着接触到蜗牛的那些盐蜗牛应急产生的粘液,粘液里面那个盐的浓度要一直大于粘液的浓度。所以说如果盐太少了,你肉眼可见蜗牛分泌出来的粘液可以把盐都全部融化掉,那么我估计那个量的盐是没办法把那只非洲蜗牛杀死的。所以说加盐的量可能跟非洲蜗牛的体积成正比关系。加的那个盐是什么品种估计也有微弱影响,比如有些食盐是低钠盐,效果可能就没那么好。

星期四的晚上,下过雨,回宿舍的路上,我看了一下2号宿舍那堵墙上有没有非洲蜗牛,结果还真被我在连廊的边上找到了一个,于是我直接回宿舍拿了盐,这一次的盐不是上一次的洗鼻盐,而是新冠疫情期间我买了某包食用盐,当时的用途是用来盐水漱口的,但实际上没用多少遍。一包洗鼻盐才5克,但是我的那袋盐是400克,当然我不会一次性全部用在某只蜗牛上,那样就太浪费了。

那只蜗牛正在连廊瓷砖的角落旁移动着。我站的那个位置跟蜗牛有一定的距离,因为我站在它上面的台阶上。撒盐这个操作不太方便,因为那一袋盐我就剪了一个小口而已,要用抖动的方式把盐从袋子里倒出来,但是抖动的方式必然会存在一些误差,所以在准确击中那个蜗牛的触角和软体之前,我已经把一些盐误洒到周边。洒到蜗牛上面的那些盐,我感觉肯定不止5克。因为我马上看到蜗牛明显收缩,发出滋滋的声音,而且肉眼可见水分析出。因为我洒盐的时候,蜗牛处在一个爬行状态,所以它的蜗牛壳的口开口向下。我必须保证我洒足够多的盐,而且关键是我要把那个壳翻过来,于是我就去某个放了建筑材料和垃圾的房间,找到一根棍子,但当我把棍子拿回去之后发现蜗牛自己反过来了。为什么它要反过来呢?接下来我看到了这么一顿操作,蜗牛的软体从壳里出来,用一个类似抹的动动作试图抹掉壳上的盐,它一次又一次努力地出来抹掉,然后又缩回去。这个操作是让我震惊。如果盐不够多,这个操作或许就能让它保命。它一次又一次重复这个操作,但是重复这个操作的时候,动作幅度以及频率在逐渐下降。进行这个操作的时候,我继续往它的软体那里洒盐。后来洒盐的时候,它几乎没有退缩,不像一开始接触的那样,而是继续重复着它的操作。我蹲在那里,手机打着灯,也不顾被蚊子咬,在那里观察,直到最后那个软体不再进行那种操作。软体明显缩小,已经缩到了壳里,壳的口那里有一滩的水。壳的附近那些被我误洒的盐被水浸泡着,但因为盐的量比较多,所以盐没有全部溶解。可想而知,这只蜗牛水分析出非常严重。但即便这样,我依然不敢保证它一定真的上西天了。所以在临走之前,我又往它的壳开口倒了一些盐,然后离开。过了个把小时以后,我又忍不住又又去看了一眼。发现蜗牛的软体缩得更小了。洞口的那些盐没有溶解,洞口的那些水更多了。杀死这只蜗牛的那天晚上没有下雨,第二天早上我再去看,壳口向上,都是水。如果这只蜗牛不是被盐弄死,而是被砸死了,估计它的蜗牛同伴就把它分尸了。几乎可以这么说,这只蜗牛的尸体部分是被盐制的,所以它的同伴没有过来把它瓜分掉。从我开始加盐,到我觉得那只蜗牛应该死掉,足足花费了起码10分钟。如果这个加盐的量不够,又或者加盐之后5分钟就来了一场大雨,就没办法把蜗牛送走。

如果非洲蜗牛入侵到我的房间里恐吓过我,我不会主动想办法把它灭掉。

ImageFlow一款更适合个人使用的图床项目

2025年5月11日 22:45

ImageFlow 是一个为现代网站和应用程序设计的高效图像服务系统。它能根据设备类型自动提供最合适的图像,并支持 WebP 和 AVIF 等现代图像格式,显著提升网站性能和用户体验。

主要特性

  • API 密钥认证:安全的 API 密钥验证机制,保护您的图片上传功能
  • 自适应图像服务:根据设备类型(桌面端/移动端)自动提供横向或纵向图片
  • 现代格式支持:自动检测浏览器兼容性并提供 WebP 或 AVIF 格式图片
  • 图片过期功能:支持设置图片过期时间,过期后自动删除(支持本地和 S3 存储)
  • 简单的 API:通过简单的 API 调用获取随机图片,支持标签过滤
  • 用户友好的上传界面:支持拖拽上传,具有暗黑模式、实时预览和标签管理功能
  • 图片管理功能:通过直观的管理界面查看、筛选和删除图片
  • 自动图像处理:上传后自动检测图像方向并转换为多种格式
  • 异步处理:图像转换在后台进行,不影响主服务
  • 高性能:优化的网络性能以减少加载时间
  • 易于部署:简单的配置和部署流程
  • 多存储支持:支持本地存储和 S3 兼容存储(如 R2, 不支持MinIO
  • Redis 支持:可选的 Redis 集成,用于元数据和标签存储,提高性能

项目地址

快速部署

使用 docker compose 快速操作

  • 镜像: soyorins/imageflow
  • 国内镜像: ccr.ccs.tencentyun.com/k7scn/imageflow
git clone https://github.com/Yuri-NagaSaki/ImageFlow && cd ImageFlow

更新配置文件

cp .env.example .env
nano .env
# 主要修改API_KEY和存储方式,想快速体验建议填写local

示例.env

API_KEY=ohji8lob1Sagoh4shizooNe9oxif9pai
STORAGE_TYPE=local
LOCAL_STORAGE_PATH=static/images
CUSTOM_DOMAIN=
MAX_UPLOAD_COUNT=20
IMAGE_QUALITY=75
WORKER_THREADS=4
SPEED=5
WORKER_POOL_SIZE=4
# Debug Mode
DEBUG_MODE=false

启动

docker compose up -d
  • 目前版本存在 panic 问题,等后续版本修复, 可以使用 soyorins/imageflow:2.1.1 版本

常见参数设置

  • API_KEY, 用于保护上传和管理接口, 推荐使用 pwgen 32 1 生成
  • IMAGE_QUALITY, WebP 转换的质量设置, 数值范围 1-100, 越高表示质量越好,文件越大
  • SPEED, 范围:0-8 0-8,0=最慢/最高质量,8=最快/最低质量

如何使用

  • 打开 IP:8686 端口 输入你在 env 设置的 API_Key

  • 上传图片, 支持选择图片的过期时间,添加标签对图片进行分类,图片会自动转换为 WebP 和 AVIF 格式

  • 当删除图片时,所有相关格式(原始、WebP、AVIF)将同时被移除

环京房价下跌

2025年5月11日 11:06

昨晚睡前看了眼贝壳,环京某个小区最近成交价3800多一平米,80多平,只需要36万。触目惊心呀,19年我去这个小区看过,少于17000一切免谈。卖点就是央企开发,品质保证。如今4000块钱不到,房价下跌压塌的都是一些怎样的人,他们又做错了什么?

手上还留有好多当年四处看房的宣传单和报价,一直没心思整理,明天出发去医院,准备开个新坑,再讲一下,我所经历的房价下跌的故事。

主动出击

2025年5月11日 08:50

五一假期之后的第一个工作日,下班吃过晚饭的时候是一个阴天,快要下雨的样子。我又在2号宿舍楼的那堵墙上看到了非洲大蜗牛,我没有任何的犹豫,直接就回宿舍,拿了我那个高浓度的盐水。直接对着那个蜗牛就是几下。一开始已经看到那个蜗牛在躲闪,几下之后那个蜗牛就从墙上掉到了地上。之后蜗牛腹部朝上,我一边喷盐水就看到它一边往壳里缩,但是我没有看到明显的粘液析出,只是看到它一直在缩,可里面说是试图躲避。按照我的理解,如果要让非洲蜗牛去世,它得大量分泌粘液,那么就等于是让它处在一个脱水的状态。但是盐水喷下去,它产生了一个应激的反应,它只是在躲避。

非洲大蜗牛不像田螺或石螺那样,有一个盖子。虽然大家都有壳,但是非洲大蜗牛没有盖子,它的肉身肯定是会裸露在外面。为了能让它赶紧上天堂,我回宿舍拿了一包洗鼻盐。一包洗鼻盐,里面大概有5克盐。之所以回宿舍,是因为我看到我宿舍阳台楼下的那个封闭的窗户的最高处也有一只非洲大蜗牛,爬过那个地方再往上爬就是我宿舍的阳台。那种恶心的感觉马上就涌上心头,我必须把它搞下来。直接从1楼往上喷是喷不到的,于是我就回宿舍尝试从上面往下喷,盐水貌似也能轻微触碰到它,我看到它在那里有些缩的动作,但是它爬到了一个让我几乎喷不到的角落。为什么会存在那么一个角落呢?因为实际上阳台的封闭的铝合金窗跟阳台是有一个小台阶的,它就躲在那个小台阶下面。盐水会让它应激,它的肉身躲在台阶下面,我的盐水就攻击不了它。我尝试拿一个水盆,直接装水往那个地方泼,但是那个地方说远不远说近不近,但是就是很难攻击得到。如果再高一点或者再低一点,我感觉是可以做到的。可以用水把它冲到1楼地上,但现在那个位置,花洒头喷不,如果有强力水枪应该没问题,但是我没有,我只有花洒和一个小盆。从上往下泼水想把它弄到地上是做不到的,回到1楼的时候,我想到的是拿个什么东西把它顶下来,我顺便看到一楼过道有个木梯,于是我就打算用木梯登高,爬上去用盐水把那喷下来。当我想进行这个操作的时候,刚好遇到两个男同事,我跟他们说了我的意图,他们说不用人爬梯子,直接用梯子把它顶下来就完了,结果他们还真这么干。把非洲大蜗牛顶下来了以后,他们就撤退了,留我一个人在那里继续娱乐,离开的时候他们顺便给我展示墙的另外一个地方也有一只蜗牛。

我手里只有一瓶高浓度的盐水和一包5克的洗鼻盐。把高处的那个蜗牛搞下来了以后,我又回到了第1个蜗牛的那个地方,果然不出我所料,那个蜗牛缓过来了,它正在舒展着它的软体,从它的壳里重新出来,然后我又给了它几喷,然后把那5克的盐撒了一大半在它那里。撒下去的时候,我的确能看到液体大量排出,同时也有一些泡沫和一些滋滋的声音。相对于高浓度的盐水来说,盐粒效果显著。整完它以后,我又拿那包剩下的盐去对付高处掉落的蜗牛。那个蜗牛比较狗,下来的时候,居然肉体是向下的,所以我还得把它翻个身然后才能攻击它的肉体。余下的盐已经不多了,所以我又回宿舍拿了另外一包洗鼻盐,我把另外一包洗鼻盐用在高处掉落的那个蜗牛以及最后同事给我指出的那个蜗牛身上。加盐的时候我感觉虽然盐下去了以后能看到粘液和泡沫的冒出,但那个程度会不会不够呢?因为盐下去了以后感觉很快盐就融化掉了,没有看到盐粒了。我的手上除了高浓度的盐水以外,颗粒盐武器已经全部用光,所以我就撤退回宿舍,因为感觉马上就要下雨。

回到宿舍以后,没过15分钟就开始下雨。我没有在下雨的时候或者下雨之后去检查那三个蜗牛,但是第二天早上,当我再去看前一天晚上那三个蜗牛最后停留的位置的时候,我没有看到蜗牛壳,也就是大概率它们又活过来了。

两则 VPS 消息:CloudCone 取消 7 天无理由退款和DMIT 机房断电的补偿方案

2025年5月10日 00:00

今天发布两则 VPS 的消息,也是我们之前推荐的国外的 VPS 服务器

CloudCone 取消 7 天无理由退款

原文地址:https://news.cloudcone.com/upcoming-changes-on-our-7-day-money-back-guarantee-policy-1erkjK

简单翻译一下,大概的意思是:

自2025年6月7日起,CloudCone的7天退款保证政策将进行调整(其实就是取消),调整后,大多数产品将默认不支持退款,包括新订单、续费、升级和附加服务的付款,但是账户中的"可用余额"仍可申请退款。

CloudCone 为什么要这么做的呢?可能「无理由退款」被滥用了,扛不住了。所以官方也建议,以后不要年付,所需主机,可以先从月付方案开启。

DMIT 机房断电的补偿方案

  • 时间:北京 2025年05月07日 上午 7时 30 分左右(洛杉矶时间:2025年5月6日 下午16:30左右)
  • 位置:美国加利福尼亚州洛杉矶市 West 7 Center 大楼 数据中心
  • 事件:位于美国加利福尼亚州洛杉矶市的 因不明原因触发火警,数据中心的消防系统自动启动,所有机柜的电源被切断,导致数据中心内的所有服务器和网络设备全部断电;由于数据中心内的 UPS 电池组在火警触发后也被切断电源,导致 UPS 无法正常工作。

DMIT在数据中心故障后,第一时间派遣工程师赶赴现场进行调查,并且在他们的TG频道进行了跟踪报道,这点是非常值得好评的~

原文的补偿方案比较长,原文链接(https://t.me/DMIT_INC_CN/834)简单总结下:

DMIT 的 SLA 是 99%,即年故障时间不超过 87.6 小时(约 3.65 天),DMIT这次还是比较良心的,故障率没有超过SLA 99%的保障,还是决定进行补偿(5天余额+10%优惠):

1. 补偿5天的续费价值(低于0.5 USD,按照0.5 USD);

2. 存量用户期限内,可以使用 2025-EXISTING-CUSTOMER-10OFF 优惠码享受 10% 的折扣(可用于特价产品或资格订单);

  • 存量用户6月30号前,如果有活动产品,可以享受活动价10%优惠;
  • 之前清退产品的用户,本身可以申请比活动价更低的折扣(部分产品除外),现在还能折上折,再叠10%优惠!

反观搬瓦工99.5%、99.9%的 SLA 保障,但没有什么动静(不过人家倒是第一时间修复上线,快了30分钟左右)。

非洲蜗牛噩梦

2025年5月10日 08:59

自从五一之前,我宿舍的洗手间连续两天被非洲蜗牛乱入以后,我整个脑子都离不开那个生物了。以前我只是觉得那恶心。下雨过后单位现场的人行道上会爬满那些东西,一不小心就踩扁了。如果是走路,还可以避让,如果是骑自行车,可能是随便就扁了。除了在现场的那条人行道上,办公楼1楼的墙上窗上都是那些东西,连廊上也有很多,走廊可能也会有。之前我只是觉得恶心,毕竟在那些场景,我还可以绕开不碰它们,也不整它们,但现在它们直接找上门了。我的宿舍在2楼,它们居然爬到那么高的地方。为什么要爬那么高呢?

为什么它们会攻击我的洗手间呢?其实我也不确定那是不是同一只。因为第1天早上我只是拿了个牙刷把它戳出去了。第1次见到的时候,那只蜗牛正在我洗手间的窗框上爬行。我进到洗手间,坐在马桶上的时候,就看到它了。一边方便,我一边就在想用什么东西把它整走。想了半天,最后想到牺牲一根旧牙刷。把它戳走不是一件容易的事,感觉它吸得很紧。就那么一刹那,可能它放松了,然后它就被戳出去了,但我不确定到底是不是只是到了窗台下面的那个放空调主机的平台上,当时我根本没心情看一眼,如果当时我足够冷静,我肯定会去看一眼,看它是不是在那个地方,如果是的话就直接拿花洒用最高水压把它冲走,那么它就直接可以从2楼回到1楼了,但我没检查。我只是开了花洒,把牙刷洗了,把窗台洗了。这样的疏忽可能就导致了第2天晚上当我回到宿舍,发现它已经爬进我的洗手间,爬到了我的地拖桶旁边。那条可能是它爬行轨迹的路上,还有一坨屎。这一波恶心比上一波更严重,我只想着怎么把它弄走,后来想到的是用垃圾铲。把蜗牛铲走,也把它的大便铲走。铲蜗牛比较容易,铲大便真的是费了一番功夫。后来我又观察了一番,其实可能那个蜗牛早就来过了,但不是洗手间爱你。因为我阳台封闭的那个玻璃角落也有一滩蜗牛大便,为什么它非得爬上来呢?

那天晚上的恶心真的不轻。我知道非洲蜗牛不是什么好东西,我知道它的大便不是什么好东西,我知道它爬过的那些粘液也不是好东西,所以直到现在,我依然对那个地拖桶心有余悸。虽然从那个时候到现在,我已经用冷水热水把那个地拖桶洗了好多遍,也喷了好多遍医用酒精。从那次看到到现在为止,已经过去了超过一周,但每一次拖地,每一次要碰到大概那个区域的时候,我都仍然忐忑。

蜗牛入户的那天晚上,我把本来装着过期84低浓度消毒水那个瓶子里面的液体全部倒光,然后配了一瓶高浓度的盐水。把我洗手间的那个窗,无论是窗框还是瓷砖壁,全部都喷上。这就等于是在那个窗上布下一个结界。理论上蜗牛很害怕盐,它不会冒然越过那道红线,它没必要这样虐自己,但难点就在于。每天都下雨,而且雨下得很大,盐水的确喷上去了,盐水干了以后,的确是能摸到盐粒的,但关键是一下雨,水一稀释,结界就变得荡然无存。我的结界到底能不能防住蜗牛呢?我不知道。所以每次打开洗手间那个门的时候,我都是四处张望一下。我真不知道,到底有没有蜗牛进去了,有没有躲在什么地方。每次进去的时候都进行这种操作,我觉得自己神经质了。

正常的人又怎么会无端端担心蜗牛会爬到自己屋里去,但如果你有过我这样的经历,你不可能不忐忑,尤其是现在经常下雨,室内室外都很潮湿,温度又刚好是蜗牛最喜欢的那个范围。

OneKey Pro & Classic 1S 双机评测:从旗舰到入门,哪一款更适合你?

2025年5月10日 10:01

特别九折优惠

通过下面购买链接购买,在结账时会自动添加优惠码APPDO,享受Onekey全线产品九五折优惠。

专属优惠链接:https://onekey.so/r/APPDO

个人补贴:作为Onekey大使,我将从我的分成中再补贴你 5%,做到九折优惠。请你购买后联系 Telegram Bot:@appdo_bot

Onekey是什么?

在正式开箱前,先来回答一个关键问题:OneKey 是什么?

OneKey 是一款华语区广受欢迎的硬件钱包品牌,主打「安全易用、生态完整、支持多端」的加密资产管理体验。它的核心理念是让更多用户以更低的门槛使用上专业级别的冷钱包工具,无论是新手入门还是资深用户都能找到适合自己的型号。OneKey 产品线支持二维码隔离、蓝牙通信、USB-C 连接等主流交互方式,并内置 EAL6+ 安全芯片,确保私钥始终离线保存,杜绝网络攻击风险。对于希望兼顾安全性与操作便利性的用户来说,OneKey 是冷钱包赛道中极具代表性的全场景解决方案。

OneKey Pro:从包装开始的旗舰安全体验

在当前硬件钱包市场中,用户常常需要在「安全性」与「易用性」之间做出权衡。OneKey 作为华语区知名的硬件钱包品牌,推出了 OneKey Pro 和 OneKey Classic 1S (以及新推出的Classic 1S Pure )两款产品,分别面向高端用户和入门用户。本文将从开箱体验、使用流程、适用场景等方面,对这两款产品进行详细评测,帮助用户根据自身需求做出选择。

DSC04264.jpg

OneKey Pro 的外包装采用全黑磨砂硬纸盒设计,正面印有产品渲染图与“Crypto Hardware Wallet”字样,简约而克制。在包装右下角,“EAL6+” 安全芯片认证标识清晰可见,为即将上手的用户传递出强烈的“安全”信号。

DSC04263.jpg

令人印象深刻的是,OneKey Pro 的包装并非简单纸盒,而是加装了塑封封膜和一次性撕拉胶条。这种设计不仅起到了防尘密封的作用,更重要的是它内嵌了自毁型防拆封设计——撕开即损的封条一旦断裂,将无法还原,用户可以一眼识别设备是否被提前开启,有效防止供应链攻击或中间人攻击带来的风险。

在硬件钱包领域,这种对“交付安全”细节的关注,体现出 OneKey 对产品从出厂到用户手中“全过程防护”的理念。对于追求极致安全的加密资产用户来说,这种开箱前的可验证性,已经是整个使用体验的重要组成部分。

DSC04268.jpg

撕开一次性封条,抽出内盒,映入眼帘的正是 OneKey Pro 本体。不仅外包装具备一次性撕毁封膜,OneKey Pro 在设备本体上也设置了专属安全封条。只要封条被揭开,表面图案会立即发生变化,用户可以一眼识别设备是否曾被开启或调包。这一机制确保了即便设备在海外仓储或跨境运输过程中遭遇海关开箱检查,用户依然可以在第一时间辨别设备完整性。

DSC04286.jpg

在本体之外,是一抹辨识度极高的荧光绿色——这是OneKey 的品牌代表色。绿色的封套内整齐收纳了所有随机附带物品,包括:

  • 编织工艺的 USB-C 数据线,这相比同类产品附送的普通数据线来说加长了使用寿命;

  • 三张助记词卡片,便于用户手写备份助记词;

  • 产品说明书,简洁明了地引导用户完成初始化流程;

  • OneKey 品牌贴纸,采用了镭射设计,为用户留出个性化装饰空间。

整个配件包装都有一种简洁的美感,延续了 OneKey 对安全与美学并重的理念。醒目的绿色传达视觉识别度,实用配件确保使用闭环,甚至连数据线的耐用性也未被忽视。

DSC04273.jpg

OneKey Pro有黑白两款可供选择,我收到的是经典的黑色款 。拿起OneKey Pro本体,纹理磨砂玻璃背板搭配光面铝合金设计 ,拿在手里感觉质感非常好,有点像高端智能手机的触感 。尺寸小巧,官方数据是 90.1 x 54.4 x 7.6 毫米,重量也只有65克 ,非常便携。

OneKey Pro最大的设计亮点就是采用了一块大尺寸触控屏幕,搭配高亮度显示和直观交互 UI,在离线签名、助记词生成等关键操作中,信息读取清晰直观。

DSC04296.jpg

背部配置有高清摄像头,支持扫描动态二维码,用于与 App 或网页钱包进行“Air-Gapped”通信。在交易授权时,用户只需将 OneKey Pro 对准屏幕,扫描页面生成的二维码,即可完成签名与授权,整个过程无须连接网络或插入数据线,有效避免 USB 通道劫持等常见攻击风险。

此外,OneKey Pro 还支持指纹解锁功能,生物识别信息储存在安全芯片中,进一步提高日常操作的便捷性与防护等级;支持Qi 无线充电,搭配给手机无线充电的底座,非常方便。

总的来说,OneKey Pro 的开箱体验非常棒。从包装的安全性到产品本身的设计和质感,都给人一种专业和高端的感觉。接下来,就该开始我的“Web3 作业”,好好设置一下这个新伙伴了!

DSC04294.jpg

拿起 OneKey Pro 本体,长按右侧电源键约 3~4 秒,屏幕随即点亮,进入初始设置界面。在选择系统语言后,正式进入钱包创建流程。

接下来,你可以选择「创建新钱包」或「恢复已有钱包」。作为全新设备,此处我们选择前者。OneKey Pro 将引导你选择助记词长度,推荐根据个人偏好选择,助记词越长,安全性越高。

确认后,设备将提示你设置 PIN 码,用于日常操作和交易签名时的身份验证。在PIN 设置完成后,OneKey Pro 会在屏幕上依次显示你的助记词。此时建议准备好包装盒中附带的助记词卡片,将每一个单词按顺序手动抄写下来。在助记词抄写完毕后,设备会要求你对其进行验证,确认你已完整备份。

⚠️ 重要提醒:这组助记词是你唯一的资产恢复方式,请务必离线保存,不要拍照或上传云端。一旦泄露,意味着你的资产将完全暴露。

DSC04299.jpg

在钱包创建完毕后,你可以选择将 OneKey Pro 与 OneKey App进行配对。使用包装内的数据线连接电脑,按照 App 指引完成识别与绑定。App 会显示当前钱包地址,OneKey Pro 屏幕也会同步显示相同地址,建议仔细核对两者是否一致,以排除中间人攻击等安全隐患。

到此为止,你的 OneKey Pro 就已经完成基础配置,可以正式进入资产管理与离线签名的安全操作流程。

实际使用体验

DSC04290.jpg

在完成初始设置之后,OneKey Pro 的正式使用环节显得格外丝滑且安心。它不仅延续了硬件钱包的核心优势——离线签名,更在二维码交互与蓝牙连接这两个方向上提供了不同层级的操作体验,满足从「冷存储」到「日常交易」的多样化需求。

二维码签名:极致离线,守住最后一道防线

OneKey Pro 支持完整的“Air-gapped”二维码签名流程。在需要进行交易授权时,App 会生成一个包含完整交易信息的动态二维码,用户只需使用 OneKey Pro 背部的摄像头扫描该二维码,随后设备会在本地生成签名后的二维码返回,用户再用 App 扫描回传即可完成广播。

整个过程没有蓝牙、没有 USB 线缆,甚至设备从未接入过网络。这种真正物理隔离的签名机制,大大降低了私钥遭遇远程攻击的风险,是长期持仓或执行高额交易时的首选交互方式。

这种模式更适用于专业投资者、DeFi 多签管理者等对「冷隔离」有高要求的用户。

蓝牙连接:操作流畅,适配日常交易节奏

对频繁使用加密资产的用户来说,蓝牙模式则显得更为高效。OneKey Pro 内置低功耗蓝牙模块,可与 OneKey App 快速配对,完成资产查看、交易发起、离线签名等操作。

例如在移动端发起转账后,App 会通过蓝牙将交易信息推送至 OneKey Pro,设备立即弹出核验界面,用户核对金额与地址无误后输入 PIN 或通过指纹识别完成签名,签名结果将自动回传至 App 并完成交易广播。

实际使用中,整个交互过程基本在 10~15 秒内完成,极具“即点即签”的响应速度。这种模式特别适合:高频转账、授权的 DeFi 用户;常用手机钱包进行资产管理的用户;需要在出行、移动场景中完成签名操作的用户。

蓝牙连接配对逻辑清晰,支持绑定设备名称识别、配对码确认等机制,确保链路安全。即使在蓝牙环境下,私钥依然始终保留在安全芯片内,不曾触网。

与同类产品比较:OneKey Pro 为何胜出?

DSC04338.jpg

在选择 OneKey Pro 之前,我也仔细研究了市面上其他几款主流硬件钱包,比如 Ledger、Trezor 和 Ellipal。它们各有特点,但在综合考量后,我认为 OneKey Pro 在以下几个方面更具吸引力:

顶级的安全配置

虽然 Ledger 和 Trezor 也是老牌硬件钱包,拥有不错的口碑,但在核心安全芯片的等级上,OneKey Pro 的 EAL 6+ 级别无疑更胜一筹。多颗安全芯片的配置也提供了额外的冗余和保障。

优秀的用户体验和功能性

OneKey Pro 拥有一个 3.5 英寸的彩色触摸大屏,操作直观便捷,比一些按键式操作的钱包体验要好很多。它支持指纹识别,不仅提升了安全性,也让日常操作更加方便快捷。同时,它支持蓝牙、USB 和摄像头(用于扫码)等多种连接方式,可以方便地与手机 App 或电脑客户端连接,管理资产非常灵活。它可以连接 Metamask 和 Rabby 等常用钱包插件,这对于 DeFi 用户来说非常友好。

全面的备份方案

DSC04314.jpg

OneKey Pro 支持使用 OneKey Lite 卡片进行助记词备份,这是一种基于 NFC 技术的备份方式,比传统的抄写助记词更便捷,也更易于安全保管。当然,在传统的助记词抄写备份的基础上,你还可以配合OneKey KeyTag 钛合金助记词备份板,这为追求极致安全的用户提供了更耐用的备份选择。

开源和社区支持

OneKey 的软件部分是开源的,这意味着代码接受社区的公开审计,透明度更高,也更容易发现和修复潜在的安全漏洞。同时,OneKey 拥有活跃的社区和较为完善的中文支持,对于国内用户来说,遇到问题更容易获得帮助。

持续创新和本土化优势

我从OneKey Mini就开始关注并且使用OneKey的产品了。OneKey 团队在产品功能和用户体验上持续投入研发,例如对多种公链和代币的支持、App 的不断迭代等。作为一家有中国背景的团队,OneKey 在产品设计和客户服务方面也更贴近中国用户的使用习惯。

当然,没有哪款产品是完美无缺的。但综合来看,OneKey Pro 在安全性、易用性、功能性和创新性之间取得了很好的平衡。它不仅拥有顶级的安全配置,还提供了流畅便捷的操作体验和丰富的功能支持。


OneKey Classic 1S:简约低调的性价比选择

DSC04326.jpg

由于Classic 1S和 Pro采用同样的设计语言,也配有自毁标签、安全封条等防供应链的安全手段,就连配件方面也和Pro保持一致,因此开箱部分不再赘述。

DSC04313.jpg

打开包装后首先看到的是 Classic 1S 设备本体,正面有一块小屏幕和几个实体按键,非常小巧轻薄,比我想象中还要精致一些。它虽然没有Pro的大屏交互,但依旧继承了 OneKey 家族核心的 EAL 6+ 安全芯片,更侧重于核心功能的实现和性价比,为更多人群提供了可靠的资产保护。

新成员:OneKey Classic 1S Pure (无电池版)

image.png

在撰写本文时,OneKey还推出了OneKey Classic 1S的无电池版本1S Pure。价格从 99 美元降低到了 79 美元。

无电池版本的推出,这意味着它在使用时必须通过 USB 连接供电。这样做的好处是进一步增加了设备的可靠性:消除了电池老化或故障带来的潜在问题。而去除电池后,成本也变得更低了,价格从 99 美元降低到了 79 美元。

对于那些主要在固定场所(例如家中或办公室的电脑旁)使用硬件钱包,并且对便携性要求不高的用户来说,Classic 1S Pure 版本可能是一个更纯粹、更经济的选择。它依然保留了 EAL 6+ 安全芯片的核心安全特性。


我该如何选择?针对不同人群的推荐

结合以上对 OneKey Classic 1S、OneKey Classic 1S Pure 以及 OneKey Pro 的分析,我为大家梳理一下针对不同人群的购买建议,希望能帮助大家做出更明智的选择:

追求顶级体验与全功能的用户 :

推荐一步到位,购买 OneKey Pro。

定位:你是加密资产的重度用户,管理着种类繁多或金额较大的资产,频繁进行 DeFi 交互、NFT 交易,或者对硬件钱包的交互体验有较高要求。

为什么选择 Pro:OneKey Pro 凭借其 3.5 英寸彩色触摸大屏提供了流畅直观的操作体验,类似于使用一部小型智能设备。指纹识别功能不仅增强了安全性,也使得解锁和授权交易更为便捷。内置摄像头方便扫描二维码进行转账或DApp连接,提升了操作效率。Pro 版本通常支持更广泛的币种和更复杂的链上交互,是追求极致功能和便捷性的用户的理想选择。虽然价格相对较高,但其提供的全面功能和优质体验物有所值。

注重核心安全与性价比,兼顾一定便携性的用户

推荐购买OneKey Classic 1S 标准版 ,也就是带电池的版本。

定位:你非常重视资产安全,希望拥有可靠的硬件钱包,但预算相对有限,或者认为 Pro 版本的某些高级功能对自己并非必需。你可能需要偶尔在外出时通过蓝牙连接手机 App 管理资产。

为什么选择 Classic 1S 标准版:Classic 1S 标准版同样配备了 EAL 6+ 安全芯片,在核心安全性上与 Pro 版本看齐。它通过实体按键操作,虽然不如触摸屏直观,但也足够清晰易用。内置电池和蓝牙功能使其具备一定的便携性,可以不依赖 USB 线连接手机 App 进行操作。对于大部分主流币种的管理和常规的转账签名需求,Classic 1S 标准版都能很好地满足,是一款性价比很高的选择。

追求极致性价比与简洁,主要在固定场所使用的用户

推荐购买OneKey Classic 1S Pure ,也就是无电池版本。

定位:你对硬件钱包的核心安全有刚需,但预算非常敏感,或者你主要在电脑旁使用硬件钱包,对便携性和蓝牙功能没有特别的要求。你偏好更轻薄、更“纯粹”的硬件设备。

为什么选择 Classic 1S Pure:Pure 版本在保留 EAL 6+ 安全芯片这一核心安全特性的前提下,取消了内置电池。这使得设备更加轻薄,也从根本上避免了电池老化带来的问题。由于必须通过 USB 连接供电和数据传输,它更适合在有电脑的固定环境中使用。如果你能接受这种使用方式,那么 Classic 1S Pure 将以更低的价格为你提供顶级的安全保障,是入门级用户或追求极致性价比用户的理想之选。 硬件钱包新手用户 (可从 Classic 1S Pure 或 Classic 1S 标准版入手):

写在最后

Onekey提供了本文所提到的所有产品,感谢Onekey的大力支持。

OneKey Pro 和 Classic 1S,就像冷钱包世界里的两位性格截然不同的守门人。

Pro 是那个全副武装、戒备森严的老朋友:指纹识别、安全芯片、无线充电、二维码签名……哪怕你把资产藏进深山,它也能默默守好那串助记词,一丝不苟,哪怕多按一个按钮,也宁可多一道防线。

而 1S,则是那个性价比拉满、轻量又可靠的新朋友:功能够用,配置不花哨,却足以覆盖日常使用场景,尤其适合刚刚开始认真对待加密资产的用户,作为第一台硬件钱包再合适不过。

安全、体验、价格,三者从不易兼得,但 OneKey 的这两款产品恰好在不同的侧重点之间,提供了一个令人满意的答案。你可以选择用 Pro 去构筑自己的“加密保险库”,也可以用 1S 搭建一个“够用、安心、不复杂”的资产安全起点。

选择哪一款,其实取决于你,和你想要把加密资产带到多远的地方。如果你正在寻找一款能够兼顾安全性、便捷性、可验证性的硬件钱包,OneKey的产品值得你认真考虑。

特别九折优惠

通过下面购买链接购买,在结账时会自动添加优惠码APPDO,享受 Onekey全线产品九五折优惠。

专属优惠链接:https://onekey.so/r/APPDO

个人补贴:作为Onekey大使,我将从我的分成中再补贴你 5%,做到九折优惠。请你购买后联系 Telegram Bot:@appdo_bot


Support on Patreon | 爱发电上赞助

FileCodeBox:告别网盘烦恼,安全高效的文件分享神器

2025年5月9日 22:13

在日常工作生活中,处理敏感项目文件时,担心文件被第三方泄露; 使用第三方网盘时还要下载客户端(客户端有时还给你偷跑流量,美名加速),有时下载还得开会员。如果有这些问题的话,我强烈安利一款开源利器——FileCodeBox!它开源、好用、安全,完美解决文件分享的各种难题,让你轻松搞定工作和生活中的文件传输。

开源地址

  • 代码仓库 vastsa/FileCodeBox
  • 镜像地址: lanol/filecodebox
  • 国内镜像: ccr.ccs.tencentyun.com/k7scn/filecodebox

三大优势,解决分享痛点

FileCodeBox 专为文件分享的痛点设计,简单几步就能让你的分享体验焕然一新

超快传输,省时省心

速度取决于你的网络带宽

  • 无大小限制:无论是高清设计稿还是海量项目文件,统统支持,轻松上传
  • 拖拽即传:无需压缩打包,直接拖文件到页面,秒速完成上传
  • 批量分享:支持多文件同时上传和分享,项目交付、团队协作 so easy!

安全可靠,隐私无忧

  • 加密保护:分享链接全程加密,只有指定接收者才能访问,杜绝泄露风险
  • 阅后即焚:支持设置文件过期时间,自动删除,防止资料被长期留存
  • 下载控制:可限制链接使用次数或者有效期,避免文件被恶意传播,敏感资料更安心

极致便捷,随时随地

  • 无需注册:凭码取件
  • 清爽体验:界面简洁

部署简单

要求

以下任选一个就行,我推荐使用腾讯云锐驰 200M,存储使用赠送的对象存储 😄

  • 有公网 IP 的服务器
  • 内网穿透走 cloudflare tunnels

PS: FileCodeBox 也支持对象存储,这里我就不推荐 MinIO 了直接使用本地存储就行,因为这个分享服务我定位是短期临时分享或者按次永久分享。

部署

  • docker-compose.yaml
version: "3"
services:
  filecodebox:
    image: lanol/filecodebox:latest
    # image: ccr.ccs.tencentyun.com/k7scn/filecodebox
    container_name: filecodebox
    volumes:
      - /data/filecodebox:/app/data
    ports:
      - "12345:12345"
    restart: always
  • caddy
kd.012321.best {
        import LOG "/var/log/caddy/kd.log"
        reverse_proxy 10.25.123.1:12345
}

分享文件

  • 打开网页,点击"分享文件"
  • 选择或拖拽文件
  • 设置过期时间和次数
  • 获取提取码

获取文件

  • 打开网页,输入提取码
  • 点击获取
  • 下载文件或查看文本

是不是用 FileCodeBox 分享文件,简单到不可思议。整个过程无需复杂操作,接收方也不需要注册,真正“即传即得”!

管理面板

访问 /#/admin
输入管理员密码 FileCodeBox2023, 登录后请立即修改

管理文件和配置

如果需要发送私密信息,建议自建请勿使用第三方服务,避免不必要的问题

最后想说

在数据安全越来越重要的今天,FileCodeBox 不仅是一款工具,更是一种自由、安全的文件分享方式。它让分享变得高效、可控,完美适配各种场景。如果你也厌倦了网盘的限速和收费,或为敏感文件的隐私问题担忧,FileCodeBox 绝对值得一试!
快部署你的 FileCodeBox,体验前所未有的文件分享自由吧!


日本旅游攻略:赴日前的准备与注意事项

2025年5月9日 18:39

写在前面

本文是《日本全境漫游计划》的试读部分,无需担心,你可以免费阅读本章节的全部内容。

《日本全境漫游计划》是一套以“地域 × 专题”方式深度解读日本的旅行指南,想写给第一次来日本的朋友,也写给那些已经走过很多次、仍想继续发掘惊喜的你。

《日本全境漫游计划》是由我执笔,已经上线少数派平台的共创项目,目前为试读阶段+反馈征集阶段,因此十分欢迎你在本文底部留下你的阅读反馈。

赴日前的准备与注意事项|行程开始前,你需要知道这些事

说走就走的旅行听起来浪漫,但在计划前往日本的旅途中,准备得越充分,旅途中的每一刻就越安心而从容。

无论你是第一次踏上这片土地还是重游故地,每一趟旅行都是一次全新的探索。比起单纯打包行李、订好机票,真正的出发,往往从细致入微的准备开始——办签证、查天气、装好交通卡App、学习几句实用日语…… 这些琐碎却关键的小事,正是让你自在畅游日本的秘诀。

本章节将带你一一梳理赴日前的实用准备,从最新的签证政策提示、交通攻略到日常交流小贴士,希望能帮你在启程前扫清所有「出发前的不安」。

第一部分:签证政策 & 入境须知

注:本节内容更新于 2025 年 4 月,请注意签证政策可能随时调整。所有签证申请资料及流程,请以日本驻华使领馆官方网站或其指定的签证代办机构为准。

出发前,请先确认你的签证类别

对于中国大陆游客而言,前往日本旅行需要事先办理签证。近年来,日本政府逐步推动电子化签证系统(JAPAN eVISA),为短期访问提供了更多便利。尤其是从 2024 年起,中国部分城市的居民可以通过线上申请「一次入境电子签证」,并新开设了 10 年多次往返签证。

由于笔者并非相关专业人士,再加上中国各地办理政策不同(如上海领区的日本签证办理条件相对宽松)、政策时效性变化大等原因,恕难在此列出详尽的签证要求。

但不论申请哪一类签证,都务必通过日本大使馆指定的正规旅行社进行办理。这些旅行社不仅承担签证资料的提交与审核,还必须负责签证行程的管理。如果你在电商平台上选择签证代办服务,请务必确认其是否为「挂靠」代办或中间商。制作虚假材料、选择非官方指定的旅行社办理有可能导致资料被退回,甚至签证被拒。

日本驻华大使馆公布的签证指定代理机构列表

观光签证常见申请资料 (以「一次短期个人观光」为例)

以下是 2024 年后日本使馆要求提交的主要材料 (适用于「一次短期观光签证」):

  • 护照原件
  • 贴好照片的签证申请表
  • 个人信息处理同意书
  • 能证明居住地的材料(如身份证、户口簿等)
  • 经济能力证明文件(如银行流水、在职收入)
  • 户口簿或亲属关系公证书(如为家庭成员同行)
  • 其它补充材料(如工作证明、邀请函等,根据具体情况由旅行社判断)

由于该部分可能存在时效性变化,且由于各领区具体规定也不相同 (无法跨领区申请),因此还请在官方页面或者指定的代理机构处确认:

日本驻华大使馆公布的办理签证所需要的常规材料

入境时需要注意什么?

虽然日本的 IT 系统很「拉胯」,但日本入境通关程序近年来确实变得更为高效。建议出发前注册 Visit Japan Web 系统,提前录入你的护照、航班与健康申报信息,抵达后可走快速通道。

此外,请注意以下几点:

  • 禁带物品包括某些药品(处方药需日文处方翻译)、动植物、肉类食品等;
  • 入境携带超过 100 万日元(或等值外币)需申报;
  • 如果没有注册 VJW 账户,请在飞机上拿取入境卡进行填写;如果忘记也没关系,在入境审查区同样可以填写。
  • 可以为了保险起见准备行程单,但日本作为旅游大国,海关 99.9% 的概率不会询问游客行程问题。
  • 如果你打算多次前往日本,或计划自驾、深度游,建议长期签证。虽然申请材料较多,但能省去未来反复申请的麻烦。

第二部分:行前准备指南

不只是订机票和办护照,那些让旅途更从容的小准备,也值得提前安排。

日本作为对旅游超级友好的国家,无需特别准备什么东西;你能想到的东西,基本都能在落地日本后买到,因此无需特别担心。但如果你的目的地是东京、大阪、福冈、札幌等大城市以外的地方,我还是建议你尽量提前准备好部分所需物品,因为在乡下交通不便,且能够购物的地方较少。

手机上网、支付方式:

网络连接方式

  • 实体SIM卡:这是最推荐的方式。个人比较推荐办理中国移动旗下的 CMLink,优点是全程中文办理,并且提供的是真实的日本号码,在日本可以拨打电话、接收短信以及流量上网;缺点是信号在城市内并不好,价格相对于电商平台较贵。如果只有流量需求的话,建议直接在国内电商平台购买、亦或者选择在日本的便利店内购买专供游客使用的流量卡,在机场、新宿等游客聚集的便利店均有出售。
  • 随身 Wi-Fi:适合多人同行,一般在机场租借较方便,但需注意电池容量与归还方式。
  • eSIM推荐:如果你手机支持eSIM功能,可以直接在线购买日本的 eSIM 卡,省时方便。

支付工具建议

image.png

在日本,各大支付运营商较多,往往生活在日本的人也不能拥有上图中的所有支付手段。但对于游客来说,仅需掌握以下几种即可:

  • 推荐使用 Suica 或 PASMO 电子版(可添加至 Apple Wallet 或 Google Pay):乘车必备,便利店、超市、自动贩卖机、部分餐厅也能使用。如果你使用 iPhone,可以直接提前开卡进行注册,支持国内的银联卡片直接充值。
  • 信用卡:主流的卡组织 Visa、MasterCard 以及美国运通、JCB 基本都可以,但极少数店铺会指定刷卡结算卡组织(比如秋叶原的某些女仆咖啡店?)。所以为了保险起见,最好准备两张不同卡组织的卡片。
  • 移动支付:日本全境范围内,主流便利店(711、罗森、全家等)都支持微信和支付宝付款;大型商场基本全部支持 Apple Pay。
  • 现金准备:在日本现金为王。虽然在东京、大阪这种城市基本可以实现「无纸化」,但还是有相当多的店铺仅支持现金付款,这在乡下(指东京大阪以外的任何地方)尤为常见。特别是如果你打算前往某个岛屿的时候,由于并不是所有 ATM 都支持银联取款,因此有必要常备现金出门。 此外,你还可以在微信支付、支付宝支付的时候提前领取汇率券以及日本当地的优惠券。在落地日本后,支付宝会自动切换成日本地区,在首页就有相关的优惠活动。

自动贩卖机的支付

日本作为自动贩卖机大国,无论是在城区亦或者偏僻的山村,你总能看到自动贩卖机的身影。一般来说,你可以直接使用硬币支付购买,这是最为基础、也是最保险的方式。但如果你恰巧没有现金,那么你可以尝试寻找支持移动支付的自动贩卖机。

自动贩卖机根据型号和厂商不同,支持的移动方式各有不同。在游客密集区域,一般支持的方式较多:微信、支付宝、西瓜卡、Apple Pay 等均可以付款。此外,你还可以下载 Coke ON 或者 ジハンピ 应用来进行支付,这两个 App 经常会有新用户活动,可以免费获取饮料。

衣物打包、季节建议

日本的气候四季分明,不同地区的温差也相当明显。不过你完全不用担心衣物的问题,因为日本当地的优衣库、MUJI 完全可以解决你的各种临时需求。因此在衣物方面,根据不同场景,你只需要注意这几点:

  • 如果你的行程都是城市场景:行前查询下目的地天气,随便带几件即可。
  • 如果你的行程中有徒步、露营等户外场景:请带好你的冲锋衣等户外功能性衣物,因为在日本购买户外产品并不便宜(尤其是露营用的小物件);如有临时需求,你也可以到 Montbell 这种平价户外店里购买。
  • 如果你的行程在梅雨季:折叠伞是旅行必备,日本天气变化快,雨具也常用得上。当然你也可以选择在日本便利店或者百元店购买雨伞。
  • 如果你的行程在冬季:北海道、东北等地常有暴雪,需准备防滑的户外鞋、防风保暖的机能外套。

日用品、药品携带

  • 常备药:感冒药、止泻药、过敏药、晕车药;在日本当地可以寻找松本清等药妆店购买。
  • 转换插头:日本统一电压为交流 110 伏。频率主要有两种,日本东部为 50 赫兹,西部(名古屋、京都、大阪等)为 60 赫兹。日本常见的插孔为两孔扁平插头,与国内基本通用,但请提前确认携带的设备是否为宽电压。一般来说,手机、MacBook 电脑等设备是可以在日本无障碍使用的,无需特别准备转换插头。
  • 收纳袋 & 洗衣袋:适合分装衣物、脏衣物;在胶囊旅馆或温泉旅馆较为有用。

无人机航拍的申报 特别需要指出的是,如果携带无人机航拍,请提前在日本国土交通省 DIPS 申报后导入飞行器;且在飞行时提前 2-3 月申请相关空域许可,二者缺一不可。个人建议是申报后如果没有空域许可,也不要在各种城市内飞行,风险过高,且大疆自带的禁飞区在日本显示并不准确。

具体规则和申报请参考:Drone/UAS Information Platform System 2.0

空域许可申请书以及DIPS网站的使用说明:DIPS User Guide / Manual

具体禁飞区可以下载 Drone Maps 查看。

第三部分:日本出行公共交通 & App 推荐

从成田机场到新宿车站、从地方电车到新干线,搞懂交通工具,是打开日本旅行地图的第一步。

image.png

很多初次来日本的旅人会对复杂的交通系统感到头痛,笔者当年初来乍到在新宿站转了一个小时也没找到山手线的入口在哪儿。

JR、电铁、地铁、巴士各自为政,车站如迷宫般庞大(比如新宿车站有 200 多个出口),票价计算也常让人一头雾水。但一旦摸清门道,你会发现,日本的公共交通系统其实高效、可靠;下载几个 App、准备一张交通卡,哪怕语言不通,也能畅行无阻。

如何高效分辨车站标识

日本的所有车站基本都遵守这样的标识规则,我们以东京地铁为例说明:

车站的标识由英文字母、罗马数字和带有颜色的外圈所构成。

通过查看标识可以方便地找到目的车站。车站标识规格统一,被使用在运行路线图、站台的设施等地方。

车站标识的使用

  • 可以通过车站标识的英文字母和罗马数字方便地找到目的车站。
  • 可以简单地计算出到换乘车站或目的车站的车站数。
  • 可以一目了然地确认是否乘坐了开往目标车站方向的列车。

车站标识的所在位置

image.png

在运行路线图、车站看板等处与车站名称一同表示(本部分摘自东京地铁中文官网)。

交通卡、周游券:游客出行的好帮手

Suica / PASMO / ICOCA / TOICA …

这些名字看起来像咒语,其实都是各地的交通 IC 卡。虽然由不同地区发行,但如今多数已全国通用,无论你在东京刷 Suica,还是在关西刷 ICOCA,大多数地铁、电车、巴士、便利店、自动贩卖机都能使用。

各种 PASS 周游券

为了促进旅游,日本想尽了诸多方式给予游客优惠政策,各种 PASS 周游券就是其中之一。这些 PASS 周游券用区域和天数划分,在规定时间内指定的公共交通可以无限次乘坐,好好利用的话就能省下不少钱。下面为大家介绍几个比较热门的PASS周游券:

JR 东日本 · 东北铁路周游券
image.png

推荐前往青森、秋田、仙台等东北地区的朋友购买。适用地区很广泛,从覆盖了关东地区的一部分、以及东北地区,但不适用于东海道新干线。目前分为 5 天的 PASS 和新增设的 10 天的 PASS,价格分别是 3 万日元和 4 万 8 千日元。

具体的使用范围、取票方式等可以参考中文网页

JR 北海道全境周游券

有效期间内可自由乘坐 JR 北海道线(不含北海道新干线)所有的列车,有效期分别是 5、7、10 天,价格分别为:2 万 3 千日元、2 万 9 千日元、3 万 7 千日元。周游券可以预购,会比正常票价便宜 1000日元。

需要说明的是,JR 北海道除去全境周游之外,还可以单独购买区域内的周游券,价格也便宜了不少,这对只想游玩固定区域的游客非常友好。

具体的使用范围、取票方式等可以参考中文网页

JR 东京广域周游券
image.png

有效期三天,价格为 1 万 5 千日元的东京圈周游券。非常适合想去轻井泽、宇都宫、富士山、伊豆等地的朋友。

具体的使用范围、取票方式等可以参考中文网页


由于日本针对游客的周游券众多,限于篇幅无法在本文全部列举。但几乎日本全境都有其对应的周游券,在旅途开始可以根据自己的行程规划和活动区域,选择最适合的周游券。

例如,如果主要在九州地区旅行,可以选择 JR 九州铁路周游券(全九州、北九州、南九州);如果计划游览大阪和京都,则有关西铁路周游券;四国等地也有各自的地区专用周游券;此外,部分热门景区还提供一日周游券(比如川越)。这些周游券都有其对应说明的中文网站,因此查询起来也很方便快捷。

购买方式也非常灵活:可以在出发前通过 JR 官方网站、海外代理或旅行社购买兑换券,抵达日本后在主要车站兑换成实体周游券;部分地区券还可直接在日本国内的指定窗口或自助售票机凭护照购买。使用时,只需在有效期内持票通过自动检票机或人工检票口即可进出车站,非常便利。

建议在出发前详细查阅各类周游券的适用范围、有效天数、价格及使用规则,合理搭配不同地区券与全国券,既能节省交通费用,又能让行程更加高效顺畅。

新干线的预约和使用

如果你不打算购买上述周游券,又有乘坐新干线的需求,那么你需要了解一个事实:日本的新干线由于归属不同的运营公司,因此在线上的购票是完全分开的,并不像国内只需在一个 App 上即可完成全国购票。

主要新干线运营公司与对应的预约方式如下:

JR 东日本(东北·北海道、上越、北陆、山形、秋田)

  • App 推荐:えきねっと(ekinet)
  • 支持线上预约、指定座席、车票变更
  • 可用信用卡付款,有英文界面

JR东海(东海道、山阳和九州)

  • App 推荐:smartEX APP
  • 可预约东海道新干线(即关西到关东,起于东京站、迄于新大阪站,串连东京、名古屋、大阪)
  • 外国游客亦可注册,但需到英文官网,支持海外信用卡绑定 此外还有各地的区域专用 App 和预约方式,比如 JR 九州也有自己的网站和 App,但只能购买九州范围内的新干线…… 总之说起来十分复杂。

上述这些网络购票方式,即使在日本生活多年,如果不经常出门的话也往往搞不清楚。因此,对于游客最简单便捷的方式就是直接去车站窗口购票,或者在车站自助售票机解决。

包车的注意事项

在北海道等出行不便的地方,对于预算充足的朋友来说,包车可能是前往景点的高效选择。

在这里笔者想请大家注意的是,无论你通过旅游平台还是私人途径包车,都需要认准「绿牌」车辆。因为只有「绿牌」车辆是日本营运车辆的标志,选择「绿牌」车辆,意味着你选择的是合法注册并接受监管的运输公司;而使用非「绿牌」车辆提供的所谓「包车」服务,往往存在很大问题,比如非法运营、安全隐患和保险不足等重大风险。

此外,你还可以查询旅行地当地的出租车包车政策,比如鸟取县就在 2024 年推出了针对游客的「周游计程车」:只要 4000 日元即可 3 小时包车畅游鸟取砂丘、白兔神社、若樱铁道、柯南机场等知名景点,共 23 条路线任选。

换乘导航 App 推荐:地铁巴士再多也不怕迷路

  • 乘換案内 (支持中文) 日本人也在用的老牌 App App 内有广告,内置付费项目
  • Google Maps (支持中文) 简单好用,不付费、无广告,涵盖地铁、电车、巴士等所有路线 适合快速查询,但票价与站名偶尔会有微小出入,建议交叉确认
  • NAVITIME (日文,面向日本人) / Japan Travel (中文,面向游客) 中文精准度高,支持站名模糊输入 App 内有广告,内置付费项目

补充说明:步行导航建议使用 Google Maps 或者iPhone 自带的地图导航即可。

第四部分:日本自驾出行 & App 推荐

虽然日本以高效的公共交通闻名,但想深入探索乡间、海岸线、森林秘境或是那些「电车到不了的景点」,租车自驾会是一种更自由、也更独特的旅行方式。尤其在北海道、冲绳、九州等地,自驾几乎已成为「体验本地生活」的关键手段。

当然,日本的交通规则、安全意识、导航系统也与国内略有不同。在这一部分,笔者将帮你梳理清楚从驾照准备、租车流程,到必备导航 App 与驾驶注意事项,带你顺利上路。

国际驾照

如果你是中国驾照持有者,不能直接在日本开车。你需要持有「日内瓦道路交通公约」认可的国际 ID 护照才可以合法租车。你可以考虑在日本、韩国亦或是新加坡等地考取该驾照,但具体操作不在本文覆盖的范畴内,请自行查询。

租车平台

日本租车行业十分规范、成熟,且本土消费者也习惯在日本租车旅行。在日本街头,经常能看到 わ 牌车辆出行,这些 わ 牌车辆就是租车的专用牌照;如果你租的车不是 わ 牌(冲绳等地也有 れ 牌),那么意味着该租车行为大概率不合法。

在日本租车,请尽量使用大牌租车行提供的车辆,一来流程规范、车辆整备好;二来也避免产生法律风险。以下是几个在日本人尽皆知的租车公司:

  • Times Car:网点遍布全国、共享汽车支持手机解锁、价格相对便宜,代表车型是马自达。
  • Toyota Rent a Car:丰田旗下的租车公司,代表车型是丰田旗下的各种车,包括雷克萨斯。
  • Nippon Rent-A-Car:日本本土老牌租车公司,代表车型是斯巴鲁。

大多数租车平台均支持以下服务:

  • 支持选配雪地胎、选择四驱车
  • 可以租赁 ETC卡(自动高速收费)
  • 提供多种保险选项,建议购买附带「NOC」的全险套餐

驾车导航推荐 App

对于游客来说,由于车辆内置导航大多为日语,因此最好选择支持 CarPlay 的车型,这样可以连接手机使用导航,方便快捷。如果车辆不支持 CarPlay,也可以尝试使用以下几款软件进行手机导航:

  • Google Maps:支持中文,基本准确,但对东京等大城市的复杂线路导航较差,但在乡下基本准确;
  • Apple Maps:支持中文,基本准确,但建议将内置语言显示为日语,播报语音为中文;
  • Yahoo!カーナビ(Yahoo! Car Navi):日本本地用户的选择,实时路况精准,全日文。
  • COCCHi:付费导航但可免费体验两周,支持推荐走行车道以及提前播报第几个红绿灯后转向,支持推荐自身车型宽度的车道,可播报停车场是否满车、甚至支持查询每栋楼的住户姓氏(主要给配送人员使用)。仅支持日语播报,但显示简单易懂。

日本开车须知:和国内有什么不同?

  • 靠左行驶:方向盘在右侧,雨刷器和转向灯和国内也是相反的,转弯需特别注意不要逆向行驶。
  • 红灯禁止转向:红灯状态下有绿色方向箭头的情况除外。
  • 行人优先:要绝对礼让行人,这是日本驾驶的重要规则之一。
  • 路权车优先:日本驾驶非常讲究路权,右转需让左转,左转需让直行,路权优先的一方默认优先通行。
  • 停车规范:大部分城市禁止路边停车,请使用「计时停车场」或「投币停车场」。
  • 山路较多:无论日本高速还是国道,都有很多弯道需要特别注意;日本窄路非常多,也需多加注意。
  • 注意停止标识:日本道路狭窄,很多路口不设置信号灯,但会在路口设置红色「とまれ」标识,代表一定要停车让行。这是非常重要的一点,每年都有游客自驾因为「とまれ」没停而发生严重事故。
  • 双闪感谢:在交替通行或者车辆谦让过程中,往往被谦让的车辆会打双闪表示感谢。但根据地域驾驶习惯不同,并不是所有车辆都会双闪感谢。
  • 铁道口停车确认:在通过无人看守的铁路道口或标志的道口时必须执行停车确认四周的操作。
  • 默认超速:通常来说,日本车辆不会按照道路标识的时速行驶,而是会大于标识速度的 10-20 左右的时速行驶,甚至更快。作为游客来说,请尽量不要超速并在慢车道行驶
  • 自助加油:日本有很多加油站采取自助加油的方式,在加油的时候一定要确认自己加油的种类。

当你开车穿越雾中的阿苏火山,沿着能登半岛海岸线缓缓行驶,或是在冲绳的滨海公路上看日落——这些都是坐电车无法抵达的风景。只要准备妥当、遵守规则,自驾将成为你深入日本土地、发现小众惊喜的利器。

第五部分:日本食住餐厅酒店预定 & App 推荐

餐厅预订 App 推荐:吃得好,玩得巧

日本是个预约为先的国家,很多非连锁的餐厅实施预约制,但也恰恰是这些小店的口味更为独特,因此要想品尝到这些美食,事前预约非常重要。

  • 食べログ(Tabelog) 日本最权威的美食评分平台,类似大众点评,日本本地用户数多,评分真实。可按评分、距离、营业时间等筛选,附有菜单照片与预约链接。

近年开始提供中文服务,甚至推出了微信小程序,还可以用中文预约餐厅。

  • Google Maps 综合性平台,可以列出店铺的可供预约的不同平台。直接列出店铺官网,可以直接指向官网预约(有些店铺只能自家官网预约)。

  • ぐるなび / Hot Pepper 更注重优惠与团体用餐预约,可获取折扣券或线上订座。Hot Pepper Beauty 可用来预约日本的美容院、理发店

日本住宿预订解析:哪种适合你?

一趟惬意的旅程,从一晚舒适的睡眠开始。日本的住宿选择种类繁多,从都市商务酒店到乡间温泉旅馆,从别致民宿到胶囊旅馆,应有尽有。由于篇幅限制,在这里仅做酒店的简单介绍。

  • 快捷商务酒店 城市中最常见的住宿类型,价格合理、交通便利,适合重视性价比的游客。常见的品牌有:东横 INN、Super Hotel、Dormy Inn、Route Inn、Daiwa Roynet Hotel 等。特点是房间一般较小但五脏俱全,普遍配有浴缸、加湿器、睡衣。

从个人角度来说,我更推荐 Dormy Inn,主打性价比的同时,酒店还附带有温泉以及免费的夜宵拉面,这对于预算不多的旅行者来说非常适合。

  • 温泉旅馆 想体验和式榻榻米、穿浴衣泡汤?那就别错过这一类。特点是一般价格偏高,部分风景优美的同时位置偏僻,需要提前查看是否提供免费接驳车。多含一泊二食,服务讲究,适合放慢节奏的旅程。

这种酒店相对知名的连锁品牌有大江戸温泉物語、亀の井ホテル等,价格也相对合理,服务也较为全面。剩下的基本都是独立的温泉酒店,价格差距较大。如果预算有限的话而又想体验温泉的话,可以寻找一些可以「日归」的温泉酒店,这样省钱的同时也体验了温泉项目。

  • 民宿 / Airbnb / Guesthouse 与当地生活更贴近,适合家庭出行或结伴旅行。特点是空间大、可自炊,有些可体验「町家」(有百年历史的日式老屋),需注意和日本房东的寒暄、以及是否是无接触式入住(有些是与房东交接)。

  • 高端酒店 以星野集团旗下的虹夕诺雅、界为代表的日本本土高端住宿品牌,以及如安缦、丽思卡尔顿、柏悦等国际顶级酒店,共同构成了日本「奢华旅宿」的天花板。

  • 以星野集团为例,强调「在地文化融合」,每一家酒店都融入当地风景与风俗:

  • 虹夕诺雅京都,隐于鸭川边的山林间,需乘小船才能抵达;

  • 虹夕诺雅富士,是以「森林露营」为概念设计的野奢酒店;

  • 界系列则更偏「高端温泉旅馆」,适合想沉浸式体验日本风情的旅行者。

国际高端品牌则多集中于大城市,如东京、大阪、京都等地,主打城市景观与高端服务。比如东京的安缦酒店位于大手町塔之巅,是不少商务旅客与名人指定入住的酒店,非常适合想兼顾高端住宿与文化体验的旅人。

住宿预订平台推荐

  • Agoda / Booking / Trip:界面中文友好、支持支付宝 / 微信支付、取消政策灵活。
  • じゃらん / Rakuten Travel:日本本地用户最常用的预订平台,有时会有独家优惠,但对于游客来说预定困难。
  • Airbnb:适合寻找特色住所,但需注意查看是否「正规登记民宿」(有备案编号)。

无论在哪家平台预定来说,比价是最重要的环节。笔者一般会在谷歌地图中搜索想预定的酒店,谷歌地图会自动将该酒店不同平台的价格显示出来,方便对比。

预订时请特别注意以下几点:

  • 查清「是否含税」与「是否含早餐」:日本不少住宿会在总价之外加上「住宿税」或者「入汤税」(会在入住时缴纳),部分城市还会收取额外「市税」。
  • 单人 / 双人订房的价格区别:在日本,同一间房型,一人入住和两人入住的价格是不同的,请务必注意。
  • 确认退改政策:特别是在樱花季、红叶季或大型活动期间,很多住宿「一经预订不可退款」,请务必看清条款。
  • 优先选择「车站步行 10 分钟内」:特别是在携带大件行李时,住宿地点离车站远会大大增加负担。有些酒店会提供免费的接送服务,请提前和酒店确认。
  • 注意分辨环保选项:部分日本酒店提供「环保计划」选项,价格会比其它房屋选项低。「环保计划」是不提供房屋清扫服务的(或者降低房屋清扫频率),请提前确认。
  • 注意 Check-in / out 时间与门禁制度:日本酒店一般不提供提前入住的服务,因此最好在酒店规定的 Check-in 时间后入住;请在 Check-out 时间之前退房,否则有可能收取额外的费用,与国内不同,日本多数酒店的退房时间为上午 10:00。此外,有些传统旅馆或民宿晚上 10 点后可能不接受入住(笔者就经历过抵达后前台已经下班了),请提前联系沟通。

第六部分:日本天气、节庆日历

四季分明的日本,每一段时间都藏着专属的风景与仪式感。选对时间,便选对了旅行的节奏。

在日本旅行,「什么时候来」往往比「去哪里」更重要。春看樱、夏赏祭、秋观枫、冬滑雪,几乎每一个月都有理由让人动身。而不同季节的气候、穿搭需求、活动安排,也各有讲究。本章将从一年四季的气候特点出发,为你呈现一份结合天气、节庆、穿衣建议的旅行月历。

春季:3 月下旬至 4 月中旬

关键词:樱花、初春、户外散策 看点:东京、京都、大阪、奈良等地的樱花陆续满开,公园、河岸、古寺都是热门赏樱地。 气候:白天温暖、早晚微凉,建议穿风衣 + 长袖内搭。 小贴士:避开日本「学校春假」(3月下旬 - 4月初),更容易拍到人少的樱景;热门城市需提前至少 1 个月订房

秋季:10 月下旬至 11 月中旬

关键词:红叶、温泉、文化季 看点:京都的东福寺、岚山;长野的上高地、户隐;东京近郊的高尾山、箱根枫叶。 气候:干燥清爽,是全年气温最舒适的旅行季节 小贴士:秋季适合「赏枫 + 泡汤」组合,别忘了携带风衣和薄围巾以防早晚微寒。

冬季:12 月中旬至 2 月

关键词:雪景、滑雪、灯光祭 看点:北海道、东北、新潟、白马等地雪景壮观,适合滑雪或泡雪中温泉;札幌、神户等城市点灯活动温暖人心。 气候:北国极寒,东京以南则较为温和但干冷。 小贴士:雪地行走注意鞋底防滑;滑雪场附近住宿热门,建议节前预订。

特别推荐:夏季祭典、烟火大会(7 月 - 8 月)

关键词:热浪、浴衣、祭典 看点:东京隅田川、长冈、琵琶湖等大型烟火大会,阿波舞、祇园祭、仙台七夕祭气氛热烈。 气候:炎热潮湿,日晒强烈。 小贴士:注意防晒、防蚊、补水;烟火大会现场人多,建议提前踩点或预约席位。

旅行建议 :如何避开人潮?

尽量避开日本「连休」:黄金周(4 - 5月初)、盂兰盆节(8 月中旬)、年末年始(12 月底至 1 月初) 如果你想避开游客人潮,那就尽量选择九州、东北、北海道等地广人稀的地方,往往能遇见安静又温柔的日本 如果你想找到更多、更为详细的活动内容,欢迎访问日本国家旅游局面向中国游客开设的旅游网站。

你可以按照自己的喜好亦或者地域查找日本相关的活动介绍,网站为官方中文,查找起来也非常方便。

从樱花初绽到红叶尽染,从雪中灯光到夏夜烟火,日本的时间是有颜色的。愿你不只是「计划旅行」,而是「选择属于你自己的季节」。

第七部分:日本便利设施、应急对策

一场顺利的旅行,既需要好风景,也需要在突发状况时「有备无患」。

旅行中总有一些突发的小插曲:迷路、轻微感冒、手机没电、护照不见了…… 别急,日本的便利设施非常发达,只要了解基本应对方式,就能把「意外」迅速化解,不让它们影响旅途的好心情。

便利店:比你想象得更万能

日本的便利店不仅是买饭团的地方,更是旅行者的「微型补给站」。

你可以在这里:

  • 缴费 / 取现金(大多数店内有 ATM,支持部分海外银行卡)。
  • 打印 / 复印 / 扫描文件(如护照复印件、行程单打印等)。
  • 寄送快递、买车票、购买演唱会门票。
  • 购买应急用品(创可贴、口罩、常见感冒药、数据线、租借充电宝)。
  • 购买简易便当并热饭、简易用餐、借用厕所等

生病怎么办?在日本看病的简要流程指南

  • 小病建议先去药妆店询问(如松本清等),店员多数受过基础药剂培训。
  • 如果症状较重,建议前往门诊诊所(クリニック)或综合医院(病院)。
  • 无需预约的急诊医院会有「急患」或「休日診療」等字样。
  • 持有护照可就诊,但需全额自费支付医疗费用(建议提前购买含医疗保障的旅行保险)。

语言不通怎么办?

一般来说,作为消费者、观光者,在日本的大都市内几乎不可能遇到语音障碍。大多餐厅都配有中文或者英文菜单,99.9% 的大型商场都配有中文店员,日本人也基本上都可以进行简单的英语交流。但如果你的目的地是村镇,那么的确很有可能遇到交流障碍,你可以尝试以下办法:

  • 日本最不缺的就是中国店员,可直接询问是否有中国店员。
  • 尝试利用手机自带的翻译软件翻译、拍照识图翻译,但笔者更为推荐使用 ChatGPT等 AI 翻译,在针对更为复杂的文本环境如菜单等会更为精准及便于理解。
  • 很多车站、观光设施设有多语言观光窗口(Tourist Information),可提供英语 / 中文协助。
  • 拨打多语种服务热线:050-3816-2787(Japan Visitor Hotline),提供 24 小时、365 天中文服务

地震等自然灾害的基本应对

日本是地震频发国家,旅行中可能遇到小规模地震或台风预警。iPhone 已经接入日本国家地震局系统,如遇地震会自动播报。如果你用的是 Android 手机,你还可以下载各种防災アプリ,安装后也会进行地震播报。

  • 若遇地震,保持冷静、避免使用电梯。
  • 留意手机上的紧急推送(日本政府会以震度 / 避难信息推送)。
  • 听从酒店或地铁站工作人员指示,有需要可前往指定避难所(避難所)。
  • 遇极端气象(如台风),建议提前调整行程,避免山区与海岸线区域。

由于日本的建筑防震等级都做的不错,因此多数情况下不必担心。如果遇到紧急情况,也请冷静地跟随周围的日本人一起行动(日本人从小就会不停地接受防灾教育,因此此时跟随他们行动是最推荐的方式)。

结语

一场旅行真正的开始,从来不只是打开航班 App、刷下那张特价机票…… 真正重要的,是在出发之前,你有没有好好问过自己:我准备好了吗?

办好签证只是第一步。落地后的第一站路线、行李里的雨具、常用药品、备用证件复印件…… 这些看似琐碎的事,也许才是决定旅行是否顺利的关键变量。而当你真的站在机场出发口、踏上陌生城市的电车、推开一家深夜营业的便利店时,你会感谢此刻冷静的自己——因为准备得越充分,旅途中的每一步就越自由。

旅行无法被完全预测,但可以被好好预备。希望这一章,能为你即将开启的日本之旅,打下一个坚定的起点。

关于本栏目

未标题-2.jpg

五年前,我第一次独自走进日本。我喜欢一边旅行一边观察,喜欢泡地方温泉、拍地方电车、逛人不多的商店街。每一次次踏上新的土地,我开始用文字记录下这些旅程的片段,在少数派上慢慢构筑起《日本浮生录》系列。那是一部不断更新的个人游记,也是一种试图捕捉“日本日常之美”的方式。

写着写着,我渐渐意识到,光是游记式的分享还不够。而做这本《日本全境漫游指南》,是我一直以来的念头。我希望,这本指南不再拘泥于游记的形式,而是更加全面地、系统地介绍日本。它是一次从“浮生”走向“实用”的延伸,不同于一般“打卡式”路线推荐亦或者是“碎片化”的旅游攻略,这本栏目更像是一位熟门熟路的旅伴,从点滴开始,一边为你指路,一边轻声说:“这个地方,别急着走。”我希望它不止是一本“看完一次就搁置”的攻略,而是一本你每次出发前都会想翻一翻的小手册。

这本指南,写给第一次来日本、却不想走马观花的你;也写给那些去了很多次,却还想继续深入、继续发现的旅人。

writer.jpg
《日本全境漫游计划》希望做一份常旅之人也愿收藏的攻略书,共创页面:https://sspai.com/create/tour-guide-for-japan

Support on Patreon | 爱发电上赞助

跑个步而已

2025年5月9日 08:11

每次在单位户外跑之前,我都会沿着我跑步的路线先走一遍。这样的用处是先考察一下路线上面有没有什么异物,比如树枝、石头或者其它垃圾,我可以先把它们清除掉。最重要的事情我就是要走一走那条路线上,看一下有没有一些不安全的动物。虽然实际上走一遍,我也不能保证在我之后大概50分钟的时间内,那条路线上会不会有什么变动,但起码先走一走,比较心安。以前我不干这种事情,开跑就开跑了。之所以以前不干这种事情,是因为跑步的那条路线比较长,一圈就有1.6K,现在一圈还不到0.4K。因为以前一圈的距离长,我需要在那条路线上重复出现的次数不多,现在我需要在那个小圈里面绕很多遍,如果每次到那个地方都有某些障碍,显然就会增加我崴脚的几率。因为距离不远,所以先走一圈也没什么问题,尤其是以后如果我发现某条路线上积水太多,我就直接不走那条路线了。

但即便这样,我还是没办法避免一些情况的发生,比如那条路线上停满了小车。为什么明明都下班了,单位的人还不开不把车开走,要开走了赶紧开,不开走的就不要动了。他们很喜欢在那些天色半黑不亮的时候开走,那个时候是最危险的。车灯要不要开?路灯要不要开?路灯通常都不会那么早开,有时甚至是天全黑了路灯都没开。那些路灯不是用来把路照亮的,只是用来照树数的,是景观灯。车灯开还是不开?开大灯的话,直接会亮瞎我的狗眼,不开灯的话,开车的人一脚油门看不到我那该怎么办呢?我永远都预测不了到底我跑步的那50分钟里那条路有多少小车要开走?开走也就算了,有些小车在我跑步的那段时间里先开走了又开回来了,这个是让我觉得最恶心的。除了小车,还有单车,还有行人。单车和行人相对来说避让都比较简单,因为大家的速度都不快。让我最讨厌的行人是那种并排几个一起出现的,等于是一个封路的状态,每次都得绕。如果他们不在我跑步的路线上,那也就算了,但有些时候,他们直接截断了我的跑步路线,所以我就只能绕。绕行人绕单车绕小车,这些绕最终就会导致FR255识别出来的那个距离跟我预测的不一样。我也觉得这很神奇,为什么我明明绕远了,反而觉得我那段路要跑更远才结束呢?这个奇怪的现象反复的出现。所以为了不让自己的距离被坑,每次我都希望别遇到那么多幺蛾子,不要让我老是避让,但是这个纯粹是奢望。除非我不在那个时间段跑步,但即便我不在那个时间段跑步,别人依然会在那里散步,那里依然会有自行车,那里依然会有小车出进出。我在那里出现50分钟就只是一周一次而已,但即便这样,我总是会遇到一定会出现或者不知道为什么这一次出现了的车、人,有时还有猫。

有一次跑着跑着,一个橘猫就在我前面几米的地方突然躺下,肚皮向上。显然就是一副要碰瓷的样子,于是我赶紧呵斥了它一声,它肯定听不懂我在说什么,但是它完全听懂了我的语气,赶紧起来一溜烟消失了。遇到猫还能吓唬他一下,遇到狗在远处吠你,还真一点办法都没有,我还得提防它觉得吠不过瘾还得过来真的干扰我一下。这个事情的确发生过,所以那个时候我只能一边跑一边提心吊胆。

跑个步而已,为什么居然可以这么危机四伏。

读《洗澡》《洗澡之后》

2025年5月8日 13:03

今天看完杨绛的《洗澡》和《洗澡之后》,整体感觉很一般,而且对作者的三观也不敢苟同,之前看她写的《我们仨》还没发觉她的思想有多奇怪。

本书将许彦成、姚宓和罗厚视为正面人物来写。罗厚为人热情正直,为了姚宓家的事情尽心尽力,忙前忙后。姚宓是一个性格执拗又清冷的小姐。最不能让人接受的是许彦成这个人物,真是让人匪夷所思,他的老婆杜丽琳家境优渥,相貌出众,从书中也看不出有什么明显缺点错处,作者总是强调她“俗”,但具体也没体现“俗”在哪里?芸芸众生哪个不是俗人呢?然而她偏偏没办法让许彦成动情。既然许彦成不喜欢她,又不拒绝,同意结婚,生下女儿又放养在异地,不管不顾老婆思女之情。在婆媳碰面时,他赶忙躲去别人家里,完全搞不清自己的身份和责任。留学期间许彦成对他老婆提出的关于学业和事业发展的合理化建议,包括在被“洗澡”时的提议全部否决,摆出一条路走到黑的架势。

也搞不懂姚宓吸引许彦成的地方在哪里?让许彦成婚内忍不住向其求婚。整天道貌岸然,在工作和生活的明面,和姚宓保持距离,没有给予什么帮助,背地里又朝思暮想、魂不守舍,精神出轨难道不是出轨?姚宓虽然做出一副正人君子样子,张口闭口不破坏别人婚姻,她又何尝不知道许彦成的心思,还默许和他在偏僻的书房经常密会、书信往来,甚至聊天时亲密趴在男方身上。

更奇葩的是作者为了担心别人写续集,竟然生拉硬扯安排杜丽琳去外省下放,毫无逻辑和一个轻浮的男知青好上了。作者煞费苦心如此安排,就是让女方出轨在前,俩人顺利离婚后,许彦成可以和姚宓结婚,从此幸福生活在四合院中。对于这种结局,作者在文末竟然还不由自鸣得意起来。续集没有巴掌大没有巴掌厚,行距宽字体大,一本小书竟然定价近30元,给人一种狗尾续貂、画蛇添足的感觉,何况《洗澡》也谈不上是“貂”。

本以为《洗澡》会深刻写出知识分子的思想改造,然而此部分篇幅很少,写的也很浅薄。两本书大部分都是很无聊的日常琐事,读起来不仅浪费时间,如购买来看还浪费金钱。

吸入异物

2025年5月8日 08:18

五一之后的第1个工作日,除了之前所谈到的那些糟糕以外,还有一个就是我去拿磅单的路上,还有大概50米就到计量中心,突然间吸入了不知道一个什么东西,那玩意直接进入我的左鼻孔,接下来我猛打了好几个喷嚏。眼泪鼻涕一起流。在到达计量中心之前,连续打了好几个,到了室内也打了好几个。看到那里有一包纸巾。我赶紧就去擤鼻涕。连续好多次之后,总算有点缓解了,但我觉得那个东西应该还在鼻子里面。因为整个人的反应就是依然在排那个异物。所以那到底是什么呢?某个灰尘?某个花粉?某i个虫子?可以肯定的是我在中招的那个地方,旁边就是来拉货的大货车。刚好他们正在排队上磅。鬼知道那些车上带了什么。每次路过减速带肯定得抖一抖,车上的东西会抖下来。排队上磅是一个走走停停的过程,启动的那一下一踩油门,也说不准会带起些什么东西。

所以为什么600多张单我花了差不多半个小时才点完,就是因为一边点,我还得一边的对抗打喷嚏、擤鼻涕、流眼泪。糟糕的异物,说不准什么时候就会飞进眼睛,跑步的时候撞上的概率尤为高,但这还是我第一次走路的时候突然间这种异物进入我的鼻子。眼睛也好,鼻子也好,都是痛苦你一番。如果鼻子排不出,可能还得通过咳嗽从喉咙排出来,但最终有没有排出呢?显然我不知道,但起码在计量中心数单数到后期的时候,我的症状明显减轻了。回到办公室以后,基本上也不流不流泪,不流鼻涕了,但是整个人却依然处在好像低烧的状态。好像整个免疫系统都在进行某种抗争,好不容易我才从五一假期最后两天的喉咙痛中恢复过来,突然又遇到了这么一出。

跑步的时候想眼睛不撞虫子,可以带个护目镜或者太阳眼镜,但我基本不戴。走路的时候遇到鼻孔异物吸入这种东西,最完美的方法当然是戴个口罩,什么口罩都行,哪怕是最一般的防护口罩。我感觉那个东西没办法穿透,口罩那几层无纺布。之所以让我反应这么剧烈,是因为那个东西可能有一定体积的。当然,这只是我的猜测。如果回到办公室,我喝完那些数,依然有强烈的不适感,我就打算回宿舍用盐水洗涤,因为从另一个鼻孔洗鼻进去,理论上应该可以把那个异物洗出来。前提是我没有已经把那东西吸到很深的地方。后来因为症状减轻了,所以我就没有回宿舍洗鼻了。

洗鼻是个非常有效的操作,但没做过的人可能会对这个东西心存恐惧,觉得有可能会呛水,会很痛苦。如果你很紧张,非常有可能真会被呛到,但只要过了一开始那个恐惧的坎,之后的过程很舒服,尤其是如果你有鼻炎,在洗鼻的时候又看到一条鼻涕虫被你洗出来了,洗完以后鼻子完全通畅,那个感觉非常好。但我觉得,如果你是一个健康的人,没有什么问题。没有必要经常洗鼻。就像如果你是健康的,没有必要用某些有特殊用途的洗涤剂去清洗某些地方。因为人体是一个很微妙的存在,我们没必要主动破坏那些微环境。

每次想到回宿舍可能会遇到那些恶心人的非洲蜗牛,我就感觉整个人都不好了。

安利一下我最近写的两个caddy插件

2025年5月7日 22:07

我个人 Caddy 粉哈,习惯 Caddy 一梭子,从我历史博客中就可以看出来。最近写了两个 Caddy 的插件,geocngfw.

源码及镜像

源码 ysicing/dockerfiles#caddy

以下是我构建好的镜像,可以根据自己的环境拉取

  • ysicing/caddy2
  • ghcr.io/ysicing/caddy2
  • registry.cn-beijing.aliyuncs.com/k7scn/caddy2
  • ccr.ccs.tencentyun.com/k7scn/caddy2

源码构建

需要 go 环境了

go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
xcaddy build \
    --with github.com/caddyserver/jsonc-adapter \
    --with github.com/caddy-dns/cloudflare \
    --with github.com/caddy-dns/tencentcloud \
    --with github.com/caddy-dns/alidns \
    --with github.com/ysicing/caddy2-geocn \
    --with github.com/ysicing/caddy2-gfw \
    --with github.com/mholt/caddy-dynamicdns \
    --with github.com/mholt/caddy-events-exec \
    --with github.com/WeidiDeng/caddy-cloudflare-ip \
    --with github.com/xcaddyplugins/caddy-trusted-cloudfront \
    --with github.com/mholt/caddy-l4 \
    --with github.com/mholt/caddy-webdav \
    --with github.com/mholt/caddy-ratelimit

插件 geocn

  • 源码:https://github.com/ysicing/caddy2-geocn
  • 用途:识别来源 ip 是否为中国 ip,我的大部分服务都开启了这个,只针对大陆放行,甚至部分服务只针对部分省市(误判比较大,后续有需要也可以开源 😄)
@china {
		geocn 
	}
	file_server @china {
		root ./docker/example/deny
	}

上面是默认参考,正常情况下不需要调整,GeoIP 数据源来自 Hackl0us/GeoIP2-CN,支持自定义

geocn {
 georemote 你的自定义地址
}

插件 gfw

{
    order gfw before respond
}

:80 {
    gfw {
        # 基本规则配置
        block_rule ip:1.2.3.4
        block_rule url:/admin
        block_rule ua:curl
        block_rule_file /path/to/rules.txt
        ttl 24h

        # 额外安全检测(默认关闭)
        enable_extra true
    }
}

目前是所有实例共享黑名单的,命中就 1 天黑名单直接返回 403,之前想的是命中后触发 hook 执行 iptables 封禁 ip,但是容器跑的好像不太方便。

最后

大家对 Caddy 插件有什么的需求或者想法么?


WPJAM Basic - 样式定制:一键自定义 WordPress 前后台和登录页面

2025年5月6日 23:28

继续 #WPJAM Basic# 插件的详细介绍,前面介绍了「优化设置」还没有看的同学,可以先看一下,今天接着介绍「样式定制」的功能,「样式定制」也是 WPJAM Basic 最早开发的功能,开发这个功能主要是为了方便自定义网站。

简单说就是「样式定制」功能让用户可以在 WordPress 前后台和登录这三个主要不同的界面的头部(head)和底部(footer)插入一些定制代码,实现对网站页面样式和前端功能进行快速的定制。

因为是给三个主要不同的界面实现定制,那我们也分三个部分来讲解吧:

前台定制

前台定制的功能管的就是前台的页面了,通过前台 Head 代码前台 Footer 代码来定制前台的样式和功能。

这个功能对于有时候网站需要验证的时候有用,比如验证百度站长的时候,百度站长会给你两种选择:

  1. 让你在根目录上传一个 txt 文件
  2. 在头部的 Head 代码总加一段代码

如果不方便上传 txt 验证文件时候,直接把代码复制到这里的头部 Head 代码即可,即使方便的上传验证文件时候,把代码贴到这里也是更方便。

如果你的主题不支持暗黑模式,也可以通过把下面代码贴到这里的前台 Head 代码,也可以实现博客暗黑模式:

<style type="text/css">
@media (prefers-color-scheme: dark) {
html, img {filter: invert(1) hue-rotate(180deg);}
html, iframe {filter: invert(1) hue-rotate(180deg);}
img {opacity: .75;}
}
</style>

此外我在新版还增加了「文章页代码」选项,本来该功能是扩展,现在我把功能增加到「样式定制」功能中,因为这里使用起来比较顺手,不过做成了开关,开启可以单独设置每篇文章 head 和 Footer 代码。

先说下该功能的主要用途,主要是因为如果某些文章的展示的时候需要引入一些的 JS 和 CSS 来实现特殊的页面效果,怎么处理好呢?如果直接内容编辑框中插入,首先不是特别方便和友好,也可能由于安全或者其他的原因而造成插入失败。

「文章页代码」功能就是为该需求实现的,它可以让大家在文章编辑页面插入文章头部代码和底部代码:

另外他还可以让大家选择是否支持在文章列表页设置,有三个选项:支持,不支持,只允许,如果可以设置,在后台的文章列表页面中就有「文章页代码」按钮,如下图所示:

点击「文章页代码」按钮,就可以通过弹窗的方式来设置文章详情页的头部和底部代码:

后台定制

如上图所示,后台定制多了两个个功能,一个就是可以上传一个 40x40 大小的图片替换后台左上角的 WordPress 图标,另外一个是「后台右下角显示内存使用和 SQL 数量」,开启之后,在后台右下角显示:

其他和「前台定制」一样,也是通过后台 Head 代码后台 Footer 代码来定制后台的样式或者功能。

登录界面

登录界面也有两个额外的功能,首选是可以设置「登录之后跳转的页面」,比如可以设置网站首页,后台文章列表页面等等,另外一个是可以「屏蔽登录界面语言切换器」,这个不必多言。

其他一样可以设置 Head 和 Footer 代码,通过这两个值,可以做出自定义的登录界面。如果你懂 CSS,我们就可以自定登陆界面的 logo,甚至通过只用 CSS 就能做出非常漂亮的 WordPress 登录界面

关于样式定制,目前就提供了这些选项,基本满足简单定制的需求,该功能虽然偏向程序员使用,但是只要懂一些 CSS 和 JS,还是可以定制出很不错的 WordPress 后台,登录界面和前台的样式和交互。

WPJAM Basic - 优化设置:一键优化和增强 WordPress 功能

2025年5月6日 22:42

#WPJAM Basic# 插件的「优化设置」是 WPJAM Basic 插件的开端,可以说是我爱水煮鱼博客多年使用 WordPress 的经验而整理的优化插件。

我们 WordPress JAM 为了在定制开发的时候方便,就把各种用不上的功能,或者可能影响性能的功能,都提供开关,只需要一键搞定。

经过几年的发展,优化设置的功能分成功能屏蔽和增强优化两大块:

功能屏蔽

上图可以很清楚看到,功能屏蔽就是让你屏蔽 WordPress 中一些用不上的功能,我把功能屏蔽分成六大块:

常规功能

屏蔽文章修订功能,精简文章表数据。

WordPress 的文章版本修订功能是通过在 wp_posts 表中增加一条记录来实现的,这样如果修改了几次,就会有好几个修订版本,插入好几条记录。

如果经常修改文章或者博客有多个作者的话,每篇文章记录在 posts 表中都会有多条记录,文章一多,wp_posts 表的数据就会急剧上升,数据表的增大,最后自然影响了查询,肯定会变慢。所以建议屏蔽文章修订功能,提高数据库效率。

彻底关闭Trackback,防止垃圾留言。

Trackbacks 是被设计出来用于博客间交流,但实际上这样的应用很少,反而被 Spammer 滥用,并且各种防垃圾评论插件比如 Akismet 也经常漏掉,可以说防不胜防,Trackback 真的让人不慎其烦,建议彻底关闭 WordPress 的 Trackback。

关闭XML-RPC功能,只在后台发布文章。

XML-RPC协议用于客户端发布文章,如果只是在 WordPress 后台发布,可以关闭 XML-RPC 功能,提供 WordPress 的安全性。

关闭自动更新功能,通过手动或SSH方式更新。

WordPress 的更新服务器在国外,并且没有在国内开启加速服务,所以 WordPress 在后台检查更新的时候,可能因为各种原因无法顺畅连接上,然后一直卡着,造成 WordPress 后台有时很慢很慢。建议关闭 WordPress 后台和自动更新功能,通过手动或者SSH方式更新WordPress。

屏蔽站点Feed,防止文章被快速被采集。

WordPress Feed 主要用于阅读器使用,但是现在使用阅读器的用户越来越少,而 Feed 更多成为了一些垃圾站快速全文采集的方式,造成不必要的资源消耗,建议关闭站点 Feed。

屏蔽站点管理员邮箱定期验证功能。

WordPress 会在每六个月管理员再次登录之后,会看到站点管理员的邮箱地址验证界面,这是担心管理员的邮箱不再使用,引起一些安全的问题,让管理员再次确认,如果不会这方面的问题,觉得没有必要,可以屏蔽邮箱验证。

转换功能

屏蔽Emoji转换成图片功能,直接使用Emoji。

WordPress 使用图片来渲染Emoji表情文字,但是渲染图片经常打不开,并且现在主流浏览器都已经支持Emoji文字,并且现在绝大部分服务器的 MySQL 数据库(5.5版本之后)都支持 utf8mb4 编码格式,所以无需将 Emoji 转换成 HTML 实体进行存储了,直接存储速度更快,节省了实体转换的时间消耗。建议屏蔽 Emoji 功能。

屏蔽字符转换成格式化的HTML实体功能。

WordPress会将一些纯文本字符转换成格式化的 HTML 实体,但是这些转换并不适合中文环境,所以我们最好去掉这些字符转换,也能节约这些转换所消耗的时间。

屏蔽WordPress大小写修正,自行决定如何书写。

WordPress 默认会把 Wordpress 这样的写法转换成 WordPress,就是中间的 P 会变成大写。如果熟悉 WordPress 的用户,都会正确 WordPress 模式书写,所以从效率优先考虑,没有必要浪费时间在这个转换上面,一样一键移除。

后台功能

后台功能移除为欧洲通用数据保护条例生成的页面。

GDPR 是欧洲的通用数据保护条例,它制定了非常严格的隐私条例,WordPress为了适应该法律,在后台设置很多隐私功能,如果只是在国内运营博客,可以移除后台隐私相关的页面。

移除仪表盘的「WordPress 活动及新闻」。

WordPress 后台仪表盘页面会有「WordPress 活动及新闻」功能,但是大部分都是英文文章,如果你不想出现,可以一键移除。

移除后台界面右上角的帮助和选项。

WordPress 后台很多页面右上角,比如后台文章列表页面,都会有「显示选项」和「帮助」这两个按钮,一个是用来显示和设置该页面的选项,一个是用来获取该页面的帮助信息:

此图片的alt属性为空;文件名为1646055773-image.png

首先这两个按钮都在右上角,很多用户都不会特别注意,以至于自己操作了都忘记了,并且帮助文档对用户也帮助不大,建议两个都移除。

页面功能

页面功能移除页面头部版本号和服务发现标签代码。

WordPress 会在页面的头部输出版权信息和其他服务发现代码,版权信息代码会让用户知道你的目前运行的 WordPress 的版本,而服务发现代码则可以说明你的博客支持哪些服务。

这些代码在前台反而会引起一些安全的问题,最好一键去掉。

移除工具栏和后台个人资料中工具栏相关选项。

一般不建议在网站前台显示 WordPress 工具栏,所以可以一键移除。

嵌入功能

嵌入功能禁用Auto Embeds功能,加快页面解析速度。

Auto Embeds协议让你插入一个视频网站或者图片分享网站的链接,这个链接里面含有的视频或者图片就自动显示出来,但是该功能支持的网站都是国外的,如果运营的是中文博客,建议禁用 Auto Embeds 功能,加快页面解析速度。

屏蔽嵌入其他WordPress文章的Embed功能。

文章Embed功能让你可以在WordPress站点用嵌入的方式插入本站或者其他站点的WordPress文章。如果你不需要,可以屏蔽文章Embed功能。

古腾堡编辑器

屏蔽Gutenberg编辑器,换回经典编辑器。

WordPress 5.0 发布带来的 Gutenberg 编辑器,也叫区块编辑器,这个编辑器很酷,但是很多人不习惯,还是喜欢原来简简单单的编辑,name可以屏蔽 Gutenberg。

屏蔽小工具区块编辑器模式,切换回经典模式。

同样主题的小工具功能,新版 WordPress 也同样使用区块编辑器模式,你如果习惯了原来的经典模式,也可以一键屏蔽,切换回经典模式。

增强优化

增强优化主要将 WordPress 一些资源加速优化,并且添加一些常用的小功能,目前有以下的功能:

前端公共库

我们常用的 JS 库,比如 jQuery / Underscore 这些,网上都有提供免费的公共库,这里提供几个常用的前端公共库,可以根据自己的喜欢选择。

Google 字体加速服务

Google 字体很好用,很方便,WordPress 很多主题也使用了 Google 字体,但是 Google 在线字体在国内的速度不是很快,甚至有时候还无法打开,这也是 WordPress 有时候在国内速度不够快的原因。

WPJAM Basic 可以让选择第三方 Google 字体字体加速服务,也可以自定义输入加速服务地址:

详细介绍:使用 Google 字体加速服务,加快 WordPress 打开速度

Gravatar 加速服务

Gravatar 部分 CDN 服务器在国内访问困难,出现头像无法显示的问题,而 WordPress 后台或者评论页有时候默认加载 Gravatar 头像图片的,这样就可能造成页面卡死的情况。

WPJAM Basic 可以让选择第三方 Gravatar 镜像加速服务,也可以自定义输入加速服务地址:

详细介绍:使用 Gravatar 加速服务,加快 WordPress 打开速度

Frame 嵌入

WPJAM Basic 可以让你直接在后台设置 Frame 嵌入,避免点击劫持,增强网站的安全性:

详细介绍:如何防止 WordPress 页面被 Frame 嵌入

分类链接简化

去掉 category 的分类目录和 WordPress 的页面的 URL,这两种页面的页面rewrite 规则是不是一样的,那么我们可以直接使用页面的 rewrite 规则来处理了。

WPJAM Basic 还额外增加一个选项,如果博客自定义了其他的自定义分类模式,可以选择设置哪个分类模式应用该功能:

详细介绍:去掉 WordPress 分类目录 URL 中的 category 最佳方法

图片时间戳

如果长期上传的图片名字都是 1.jpg 的话,那么上传一张图,会造成数据库进行几十到上百次的 SQL 查询,应该在上传的时候把图片的名字更改了,给图片的名字加多一个时间戳,这样就能几乎保证图片名字不可能重复了:

详细介绍:如果经常在 WordPress 上传同名的图片,最好开启这个选项

之前还有一些优化增强功能,我因为各种原因去除或者移到别的插件。

  • 搜索结果快速跳转:提高搜索效率,当搜索结果只有一篇时直接重定向到文章该功能已经移到搜索优化插件。
  • 禁止admin用户名:使用admin作为用户名是最大的安全漏洞,建议禁止使用 admin 用户名尝试登录 WordPress,提高网站的安全性。很多人因为用户名是 admin,又开启这个功能,然后站点登录不了,然后说 WPJAM Basic 的问题,忍疼删除该功能,大家记得不要设置 admin 的用户名。
  • 前台不加载语言包:WordPress加载语言包是需要花费 0.1-0.5 秒不等的时间,如果对性能要求极致,可以前台不加载语言包,但是要把主题文件中的描述改成中文。很多人设置了该功能,前台出现英文,说WPJAM Basic 乱改,所以继续忍疼删除该功能。
  • 媒体文件默认链接到:无/媒体文件/附件页面,该功能已经迁移到图片集插件。

连串糟糕

2025年5月7日 08:16

五一之后的第一个工作日,简直就是糟糕的战斗机。上午的所有事情都比较正常,一切都按部就班,而且顺利得有点让我吃惊。比如平时得花好几天才能凑齐的东西,居然一个早上就完成了。那个东西之所以凑不齐,原因肯定不在我,是因为其他同事没有把数据交过来。

五一假期5天,每天都有100多台车,所以我拿单的时候实际上是比较崩溃的。5天加起来就超过了600个单。点单花掉了半个小时以上,把单拿回到办公室,又花了接近一个小时才全部用计算器过了一遍。后来我算了一下,这其实也挺神奇的。为什么我要花掉50分钟才点完那600多个单呢?我敲计算器的速度很快。600多个单里就只有最后那50个单出头那一份需要重打,其它都是一次性就完成。那么多单都可以一次性完成,我觉得运气比较好,而且很多单都是每份30个以上,好些都是50个左右,所以那么多单都可以一次性不出差错,就平时来说,这也是比较罕见的。为什么我依然要花那么长的时间呢?后来想了一下,因为实际上用计算器把那些单都打一遍核一个总数之前我还要点一下那些单的数量。接下来就是在打单的过程之中又有别人找我核对某些数据,所以实际上600个单我花了大概40分钟。直接粗暴地用时间除以数量去算,好像效率不怎么高,但实际上平时一天的量大概100多个单,需要个10~15分钟是很正常的。

糟糕的事情大概从下午开始,首先是下午一上班我就发现,办公室的电脑win10右下角的坚果云出现灰色状态,这意味着那东西连不上服务器,但是QQ跟微信都是正常的。我马上去打开了一下百度,发现打不开。接着我打开命令行去ping百度,直接没反应,然后我又去ping单位内网的智能化系统,可以打开。当我再去上集团公司的OA,发现同样是打不开的,这到底是怎么回事呢?简单一句就是我用Firefox打开任何的外网都不行。不仅仅是Firefox打不开,用ping的方式也完全没有反应。这到底是什么情况?然后我就去隔壁办公室,让别人也测试一下,发现他们的百度是能打开的,但是集团公司的OA打不开。遇到这种事情,我也就只能找网管,第一个反应是是不是那个杀毒软件又禁止了某些东西,比如封了某些端口?

Firefox是我的默认浏览器,但是当我用360极速打开百度的时候,居然打开了,虽然打开速度很慢,但是当我用Edge浏览器再去打开的时候,发现百度是打不开的,到底是什么情况呢?然后我赶紧求助网友,求助网管,在他们给我回复之前,我突然想到:这些有些能开,有些不能开,聊天软件没问题,是不是DNS被污染了呢?接着我就手机搜了个DNS,换了上去,没过几秒,所有的不正常都消失了。让我觉得很无语的是,在我的电脑打不开网站的时候,实际上我是用电脑共享出WiFi让手机上网,手机在微信上搜索DNS的。所以结论就是,并不是网络有问题,而纯粹只是DNS出状况了。网友说这个问题也不完全是我,他觉得是中午有人动过服务器,断网了一段时间,然后又恢复了,但是我的电脑手动设置了一个不太靠谱的DNS,所以就卡住。

网络恢复了,焦虑减轻了一大半,接下来用固体浆糊做了一些事,想去洗手,发现洗手间没水了。先是没网,然后没水,如果再加上没电,那么就算是全家桶了,但幸好这个为没水只是暂时性的,过了几分钟我再去,发现又有水了。问单位的负责人,告诉我他正在查单位哪里在漏水,所以刚才把水闸关了,但是还没找到漏水点。关了一下水闸,导致没水,居然都被我碰上了。

晚饭过后,我又仔细看了一下宿舍楼南面的那堵墙,发现又有几个非洲大蜗牛在爬升过程中。然后我就回宿舍拿了高浓度盐水对着我可以喷的那个来了几下,没过几秒钟的玩意就掉到地上了。有一个很高,我够不着,但是那个玩意已经爬到了我楼下那个房间阳台窗户的最高处,再往上爬就是我的房间了。所以我就回宿舍,先试图从高处往下喷,结果那个角度太刁钻,盐水根本喷不到,接下来我就拿了个水,拿了个盆,不断地往那个地方泼水,结果还是够不着。没有办法之下,我只能回到1楼,想拿个梯子爬上去再喷,然后就遇到了两个男同事,他们直接用梯子把那个东西给搞下来了。事实证明,用盐水喷正在爬行的蜗牛,的确可以让它缩回壳里,但是盐水不能杀死蜗牛。这是我想搞第2个蜗牛,回到1楼的时候,查看第1个被我喷在地上蜗牛时的结论。那个时候我不确定蜗牛死了没,所以我在宿舍出来的时候就带了一包洗鼻盐,直接就倒在地支蜗牛那里。最后我整了三只蜗牛,首先都是被喷到地上,然后我在上面撒盐。理论上那个玩意应该出水严重,但我觉得它们缩回到了壳里面,只是最外层的地方接触了盐,我不确定这样它们会不会杀死。微信公众号上科普的那些非洲大蜗牛文章说盐是可以杀死蜗牛的,因为蜗牛80%是水分,盐下去以后会让它们脱水。但我觉得这个东西得分情况讨论,如果你直接把它丢在盐堆里,只要出来它就必死无疑,它死定了,但是你如果只是在那身边撒一点盐,或者在它的软体上撒一点盐,那个东西完全缩在了壳里,可能受影响的部分不多。我撒完盐不久,下了一场大雨,当雨水把盐冲走了以后,我感觉大概率它们又会活过来。回到宿舍,拖完地坐在那里,拿起手机,我觉得那个蜗牛不会死,所以我又在淘宝上买了软体动物的专杀农药四聚乙醛。如果那个东西真的可以让蜗牛死一片在那里的话,我就直接让办公室多买一些,在宿舍楼、办公楼的草丛里都撒。如果不是那些杂草乱七八糟生长完全没有人管理,我们根本不至于会出现这种非洲蜗牛大泛滥。

单位大,单位废弃乱七八糟的地方也很多。

轻松部署 Alist + MinIO,打造你的专属私人网盘

2025年5月6日 20:49

还在为网盘限速、空间不足而焦虑?想要一个安全、快速、完全掌控的私人网盘?今天带你一步步用 Alist 结合 MinIO,快速搭建一个高性能的私人云存储,文件管理从此自由无忧!

部署非常简单,也很适合内网私有化部署。另外这也是一个开源项目,社区灵活度特别高,对接的存储类型非常丰富,但是本文还是着重写写对接 minio。今天的音频调了几版,目前这版相关好点

什么是 Alist 和 MinIO?

  • Alist:一款开源免费的目录列表程序,支持挂载多种存储(如本地存储、云盘、对象存储等),提供简洁美观的界面,支持文件预览、下载、分享等功能。简单来说,它是你文件管理的“超级中枢”。
  • MinIO:一个高性能、分布式的对象存储服务,兼容 S3 协议,适合搭建私有云存储。相比第三方网盘,MinIO 让你完全掌控数据,安全又高效。

通过 Alist + MinIO 的组合,你可以轻松打造一个私有网盘,享受无限存储空间和极速访问体验!

Alist + MinIO 的优势

  • 多存储支持:Alist 支持 MinIO、本地存储、OneDrive、阿里云盘等多种存储方式,灵活扩展。
  • 简洁易用:Alist 界面美观直观,操作简单。
  • 高性能:MinIO 提供企业级的对象存储性能,适合大文件存储和高速访问。
  • 安全可靠:数据存储在你自己的服务器上,隐私有保障。
  • 开源免费:Alist 和 MinIO 均为开源项目,自由使用,社区活跃。

部署步骤:Alist + MinIO 一键搞定

以下以 Docker 部署为例,带你快速搭建 Alist 和 MinIO 的组合。这里就跳过 MinIO 部署相关了,之前也讲过,可以查看我之前写的文章:

准备工作

  • 准备好 MinIO 的账号即可,有存储视频资源最好不过

镜像

根据实际情况来,默认 aio 镜像已经包含本地存储缩略图 ffmpeg 和离线下载 aria2, 后面需要用的上

  • xhofe/alist:main-aio
  • 国内镜像 ccr.ccs.tencentyun.com/k7scn/alist:main-aio

创建 docker compose 文件

  • docker-compose.yml
services:
  alist:
    image: xhofe/alist:main-aio
    # image: ccr.ccs.tencentyun.com/k7scn/alist:main-aio
    container_name: alist
    ports:
      - "5244:5244"
    volumes:
      - /data/alist:/opt/alist/data # 应用程序持久化数据
      - /data/share:/opt/share # 本地存储,可选
    environment:
      - TZ=Asia/Shanghai
      - ALIST_ADMIN_PASSWORD=goxee7dieXeihu9uochoo6iquaighail
    restart: always

ALIST_ADMIN_PASSWORD 支持自定义密码,很早之前我提交的 PR😂,估计也就我一个人这么用。

启动容器

docker compose up -d

配置 caddy

caddy 配置比较简单

alist.ysicing.eu.org {
  reverse_proxy 100.90.80.2:5244
}

访问 alist

访问 Alist:在浏览器输入 http://你的服务器IP:5244 或者 caddy域名,进入 Alist 界面。

默认用户名是 admin, 密码是你配置的 ALIST_ADMIN_PASSWORD 值信息

挂载 MinIO 存储

登录 Alist,点击 管理 > 存储 > 添加

选择存储类型为对象存储

填写以下信息:

  • 挂载路径:自定义,例如 /minio。
  • Endpoint:http://minio 域名地址:9000。
  • Bucket:填写你在 MinIO 创建的存储桶名称,例如 ja。
  • Access Key 和 Secret Key:填入 MinIO 控制台生成的密钥。
  • 强制路径样式:默认勾选
  • 地区:默认留空

保存配置后,返回 Alist 主页,即可看到挂载的 MinIO 存储

可以上面的操作后就可以通过 Alist 浏览、分享 MinIO 中的文件,支持在线预览、下载等功能。

其他

官方文档

总结

通过 Alist 和 MinIO 的组合,你可以轻松搭建一个功能强大、安全可靠的私人网盘,告别存储焦虑!无论是个人文件管理还是团队协作,这个方案都能满足你的需求。快动手试试吧!


都是女娃?

2025年5月6日 18:24

医院产检完,去病房找大夫,听门口几位阿姨闲聊“一上午抱出来3个宝宝,全是女孩儿.......”,之前同学群里聊过,他们自己,包括他们自己的同学或者身边朋友,也几乎都是女孩。我身边的同学,朋友,只有一家是男孩儿。虽然“身边儿科学”不靠谱,可这也有点儿太邪乎了,我都要怀疑是不是这几年有啥邪性的东西刺激了,为啥出生这么多女孩儿。

回来跟媳妇儿讲这个,我说自己不喜欢女孩儿啦,想要个带把儿的。媳妇开玩笑“你是怕长大后,自己的丑闺女没有竞争力是吧”

嗯,是的。

绍兴游记

2025年5月6日 15:51
今年“五一”假期,与情人同赴绍兴旅游。一来是为了参观鲁迅故里,二来也为感受绍兴的人文气息。 周公子的故宅,阔绰得惊人,活像一座皇宫。而此时的故宅早已没了长妈妈的唠叨、寿镜吾先生自我陶醉的读书声、父亲的...

花厅坊让人有点失望

2025年5月6日 11:14

五一小长假之后两天都没有出门。其实倒数第二天是可以出门的,但是我却感觉不那么好,不知道为什么喉,痛,而且那天据说要下雨,虽然其实从上午的情况看来,上午没雨,下午什么时候下不知道。第四天中午开始我就赖在我妈床上,在那里翻来覆去的睡觉,睡了一整个下午。睡到下午16点多的时候,感觉睡够了,也热醒了,所以开始看电视。五一假期一共有5天,直到第四天下午,我才开始看我一直都在看的电视剧《黄雀》。之前几乎没时间看电视,只是随便看了一下纪录片《寻味顺德》。其实《寻味顺德》我在电视也看过,起码两次,但每次看我都觉得很有意思。

为什么我会觉得不舒服呢?我也说不准,前一天也没做什么很特别的事。前一天中午时分我跟我妈出门去了黄埔的新景点——花厅坊,那个东西实际上就在火村,是一个合生楼盘围住的一个古村落。我觉得这个跟佛山禅城区普君北路那个碧桂园的楼盘有点类似,碧桂园可以在周边开发,但中间有一堆保留古建筑,你得负责修缮以及运营。我感觉火村的这个花厅坊大概也是这样。我感觉合生地产那里有部分楼盘是火村旧城改造回迁户,跟天河的猎德冼村有点类似,当然,这只是我的感觉。

虽然花厅坊这个景点被推得很厉害,但我感觉没什么意思。主要原因是我觉得修缮得不够细致,跟佛山禅城区的岭南新天地比起来感觉差好远。之所以差好远,是因为岭南新天地里面汇聚的那些老建筑排场要比花厅坊的老房子聚集区高档太多了。别说佛山那么远,其实广州也有不少地方是老房子改造的,最有名的地方当然是永庆坊。但我不怎么喜欢去那个地方,大概是因为人太多了,旁边的粤剧博物馆我也仅仅去过一次。粤剧博物馆还是挺漂亮的,但是我妈赶着我赶紧走,所以也就只能走马观花一下。在我记忆之中,猎德应该是广州第1个改造的旧村。每周回单位的时候,我都要去猎德地铁站,都要经过猎德大桥,也要经过猎德村牌坊的位置。那个地方过上一段时间就会大排筵席。有可能是结婚的,也有可能是其它喜事,当然也有逢年过节猎德大家族一起聚餐。好火爆,好热闹。但我不是那里的人,我凑不过去,我只能在公交车上路过羡慕而已。

为什么我觉得火村的这个花厅房感觉怪怪的?因为商业气息过于浓了。吃饭的地方我感觉有点偏多,还有就是,比较缺乏地方特色,他们只管招商,但是他们不管招回来的是什么商。另外一个让我觉得挺无语的就是他们村口有一棵比较有名的榕树,叫孖生树,是两个榕树绕在一起生长。但如果你没看到那块牌子,我甚至看不上那棵树。理论上广州的榕树都是很硕大的,枝叶茂盛,根系丰满,还有很多气根。理论上那应该是他们村口的大榕树,那棵理论上有名的树,枝叶却是稀稀落落,感觉不太健康,这还是我第一次看到不是生机勃勃的榕树。在广东,居然把榕树养成这个样子,我也是服了。理论上这应该是他们村的宝贝,为什么他们不找些医生来帮一下忙呢?

除了花厅坊以外,离那个地方不远还有一个叫融德里的地方,下次可以去一下,但是最好不要抱太大的希望。

风起淀山湖

2025年5月6日 00:06
现在已经是五一的最后一天假的最后一个小时了,现在对即将逝去的五一进行一个盖棺定论,那可在适合不过了。 前两天去了淀山湖露营,之所以想去淀山湖,因为这边露营,无论是环境或者是费用上,都是相当不错的。 拍了一些风景图,选几张留在博客,也有一些随手拍的人物,拍到即是有缘人,哈哈。 近处的护堤,有些草,但是不多,在我看来有那么两种可能。 一是附近没有人管理,搭帐篷,烧炉子的人随意踩踏。 二是这草不想活了。 大概也就这两种可能,这边露营的人真的是非常的多,基本只要来的都是露营的。 这天的风超级大,刮的生活垃圾乱窜,只要过几分钟,就能看到不知道什么小垃圾,飞到帐篷边上。 哎 ?这张图压缩后,居然翻转了,算了,翻就翻了吧。 宝宝还是很喜欢出去游玩的,现在这个年纪正是不知疲倦的玩耍的时候。 有时候我也感慨,还是刚出厂的身体好使,玩一天都不累。 天幕真的很难搭起来,花了20,让这边服务人员帮忙搭的,这项服务还不错,露营椅子租借也是10元一张。 来这边才知道,原来帐篷临时租借也才一百出头,对于露营比较少的人群来说,非常的友好。 在dy上说这边不许搭帐篷,有草坪的养护期啥的。实际来这边一看,你只管扎堆就行,哪有人就去哪儿搭。 临走的时候,收拾帐篷,发现一根铝合金支撑杆,无法回缩了,尝试良久,发现彻底收不回去了。 帐篷的收纳袋也在大风吹的淀山湖边不翼而飞,大概也暗示着帐篷要报废了。 抱着侥幸心理,问了下骆驼的售后,售后的意思很明确,没有售后。 果然呀!最好的售后就是没有售后,反正我以后不会买他家的东西了,告辞! 回到家之后,看了下手臂,脖子,我说抓一下怎么就痛,还有点痒,果然晒伤了。 这天风很大,在天幕下居然会冷,谁能想到30度出头的天气,在天幕下居然会冷。 太阳晒得暖暖的,皮肤晒伤都没有一点的感觉!看来我还是太嫩了,手动滑稽。 以上风起淀山湖,愉快的露营游记。

每次换租客都有摩擦成本

2025年5月6日 03:54

我媳妇在剑桥的巴山(Bar Hill)有一套房子出租/Buy to Let,这房子是我在2022年买来送她的。结果她完全不管,每次出了什么问题都是中介直接找我。每当接到房屋中介的电话,我血压都上来了,因为十有八九都是房子出状况了。

之前的租客在这套房子里住了三年,合同是一年一签。前两年我稍微涨了点房租:第一年涨了100英镑,第二年本想再涨100,结果租客砍价只涨了50,我也接受了。今年到期我打算再涨100,但租客表示最多只能接受涨25。原本我想着还能再谈谈,但没想到租客直接说不租了,要搬走。

后来我通过中介表示25英镑的涨幅我可以接受,但租客已经下定决心要搬了。

租客搬走,对房东来说是要承担不少额外成本的:

Council Tax(房屋税)

这项费用(房屋税)本来是由租客承担的,但如果房子空着,那就由房东来付。政府是按照每天晚上的房屋状态来计费的。比如,如果租客当天搬走,那天起就是房东交税;反之,如果租客当天搬进来,那天起就由租客交税。因为新租客是5月1号才搬进来,前一周房子空着,所以这段时间的市政税都得我来付。

如果房子空着超过1年,房东则要多交50%的房屋税,如果空着超过2年,则要多付100%的房屋税。

房屋清洁

新租客搬进来之前,房东通常需要请人彻底打扫一遍,这一般也要几百英镑。

中介费用

每换一次租客,中介都要重新起草合同,还要做各种手续,也是一笔不小的费用。

说实话,现在有点小后悔。前租客说最多能接受1600英镑的月租,我没同意,结果他就搬了。现在新的租客也挺难搞的,一来就得付中介费,还要打扫卫生,再加上一周的Council Tax,前租客是4月23号搬走,新租客5月1号才入住,里里外外折腾下来,净亏了好几百英镑。都是些摩擦成本,费钱又费精力。

新租客搬进后第一个月的房租会被中介扣掉很大一步分额外费用:Tenancy Setup (594英镑) 加上 2周的房租(532英镑),不过在我的强烈不满下,中介答应只收我们一周的租金。

new-tenancy-costs 每次换租客都有摩擦成本 生活 被动收入 资讯 跟我一起来谈钱

换新租客产生的费用/成本

搞钱就要:被动收入

本文一共 708 个汉字, 你数一下对不对.
每次换租客都有摩擦成本. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 每次换租客都有摩擦成本 生活 被动收入 资讯 跟我一起来谈钱
The post 每次换租客都有摩擦成本 first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  2. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  3. BBC推出了英国阶级计算工具: 来看看你是不是中产/韭菜, 还是精英? 想知道你在英国社会中属于哪个阶级?BBC最近推出了一款别开生面的英国阶级计算工具(点这里),颠覆了我们对传统“上层-中产-工人”阶级的理解方式。通过几个简单问题,这个工具可以判断你最匹配的是英国社会的哪一个“新阶级群体”。来看看你是不是真正的中产,还是你一直以来的“阶级自信”其实是错觉? 🏠 它是怎么判断你属于哪个阶级的? BBC这款工具基于2013年《大英阶级调查》(Great British Class Survey),由社会学家分析70多万份问卷数据后开发。判断维度包括: 经济资本:年收入、房产、储蓄; 社会资本:你认识什么职业背景的人; 文化资本:你参与哪些文化活动。 和你老爸老妈那一代“有房就是中产”不同,这套体系全面考虑了人脉圈子和生活方式——比如你去不去博物馆、听不听古典音乐、有没有朋友是科学家。 📊 举个例子:你属于哪个阶级? 工具会问你这些问题: 税后年收入是多少?(低于£10K,还是超过£100K?)...
  4. CSDN程序人生采访稿 CSDN程序人生采访稿...
  5. 同一台服务器上多个WORDPRESS站点的一些设置可以移出去 我自从把所有网站都挪到一处VPS服务器上 就发现很多事情省事很多 可以同时管理多个网站 包括 WORDPRESS博客. 比如我有四个WORDPRESS博客 然后我就把通用的一些资料给移出去 移到 HTTP或者HTTPS都不能直接访问的文件夹里这样就更安全许多. 文件 wp-conn.php 存储了 相同的数据库资料. 1 2...
  6. Python 中寻找数据的众数: mode vs multimode 在 Python 中寻找数据的众数 statistics.mode() 函数是 Python 中 statistics 模块的一部分,它返回数据集中出现次数最多的单个值(众数)。与 multimode() 不同,mode() 如果数据集包含多个众数(即多模态数据)或数据为空,则会引发错误。 以下是一些示例来说明 mode() 的行为:...
  7. git 小技巧: 通过pre-commit hook 来防止程序员把其它测试用例给禁用了 公司今天例会上说, 有一个PR几天前合进去, 结果导致CI上的测试用例都没有执行. 仔细一看, 原来是PR中不小心把 .only 提交了. 在 NodeJS的测试框架中, 我们开发的时候本地代码加上 describe.only 或者 it.only 来只运行我们关心的几个测试用例: 1...
  8. 现代编译语言: 整数计算性能比较: Delphi, C, C++, C#, JAVA 现在的编译器已经非常强大, 在大多数情况下, 开发者无需手动进行底层代码优化. 正如计算机科学家 Donald Knuth 所说: “过早优化是万恶之源”. Pre-optimisation is the root of evil. 过早关注细节优化,...

Alan Becker 的动画教学视频是非常好的启蒙材料

2025年5月6日 01:34

alan-becker-animation-vs-math-e-to-i-pi-2025-03-11-12.55.20-scaled Alan Becker 的动画教学视频是非常好的启蒙材料 学习笔记 教育 数学 物理 编程 视频 计算机 资讯

虚数i*i*i=-i 也就是i*e^(ipi)

自从去年家里装修完之后,我们在厨房装了一台电视,平时吃饭时会随便看看一些视频。大约两个月前的一天中午,我从学校接弟弟回家吃饭,无意间发现了一个叫 Alan Becker 的动画视频系列——“Animation vs.”,是 YouTube 上的一个非常有创意的系列。他最出名的作品之一就是《Animation vs Math》。

Alan Becker 的这些视频通常用一群小人(也有人叫他们“小黄人”、小橙色、火柴人)在电脑屏幕上互动的方式,讲述一个个富有创意、又带有教育意义的故事。虽然整个系列几乎没有一句对白,但却通过画面和动作把复杂的知识点讲得既直观又有趣。

我最喜欢的四个视频是《Animation vs Math》、《Animation vs Coding》、《Animation vs Physics》和《Animation vs Geometry》。每一集不仅让人捧腹大笑,还让人对背后的知识产生兴趣。比如在《Animation vs Math》中,小人们在坐标系、函数图像之间跳跃和作战,看得人不知不觉就理解了各种数学概念。而《Animation vs Coding》则展示了编程的魔法,小人甚至“黑进”了主人的电脑,自己写代码!《Animation vs Physics》里,小人们挑战了牛顿定律、重力和能量守恒,用夸张但合理的方式演绎了物理知识。

《Animation vs Geometry》则是另一个令人惊喜的作品。视频里,小人们与各种几何图形互动,有时被三角形包围,有时从正多边形中逃脱,有时又在空间几何中穿梭。通过他们的“冒险”,我对角度、面积、对称和旋转等概念有了更加立体的理解。这些原本在课堂上觉得枯燥的几何知识,突然变得生动起来。

现在每次吃饭的时候,我和弟弟都会打开一集,一边看一边讨论背后的知识点。他有时候还会模仿小人画画、写代码,看得津津有味。比起传统的教学方式,这种寓教于乐的视频真的非常适合启发孩子的兴趣,也让我重新发现了学习的乐趣。

Alan Becker 的动画视频在 YouTube 上非常火,常常能获得数百万甚至上亿的浏览量。很多 UP 主还会专门制作 Reaction(观看反应)视频,一边观看一边讲解其中的知识点,让观众能更深入地理解动画背后的内容。

我真心希望 Alan Becker 能继续制作这个系列的视频。他的作品不仅有趣,还兼具知识性和创意性,每一集都能带来惊喜。我还特地去看了一下他的 YouTube 主页,发现他有自己的网站和线上小店,里面出售一些周边商品和纪念品,比如角色贴纸、T 恤、鼠标垫等等。通过这些方式,粉丝们也能支持他继续创作。

如果我在初高中时就能看到这样的动画视频,可能我的学习态度和兴趣都会大不一样,说不定我也不会变成所谓的“学渣”。Alan Becker 的这些作品用轻松有趣的方式,把复杂的知识讲得通俗易懂、引人入胜。我相信,这样的内容一定能激励无数学生,让他们重新发现学习的乐趣,也让知识变得真正“活”起来。

这些视频的背景BGM音乐也非常出色,节奏紧凑、氛围感强,不仅很好地配合了剧情发展,还增强了观众的代入感。每当剧情进入高潮或角色展开大战时,音乐的节奏也随之加快,让人不自觉屏住呼吸、全神贯注。可以说,音乐和动画配合得天衣无缝,是整个系列成功的重要一环。

Alan Becker 的 Animation 系列动画教学视频

Alan Becker 在油管的频道有3000万+粉丝。

Animation vs Math 数学

这是我最喜欢的视频之一。它是在一年前上传的,如今已经有超过 8000 万的播放量。视频的开头从数学中最基础的常量“1”出发,接着逐步引入加减乘除等基本运算,再到实数与虚数,最后主角“-1”展开了一场围绕著名公式 tex_39ab8c54661fe3603377d1d4de5601e0 Alan Becker 的动画教学视频是非常好的启蒙材料 学习笔记 教育 数学 物理 编程 视频 计算机 资讯 的激烈格斗故事。

整个视频既紧凑又富有张力,把一个高度抽象的数学公式,用动画的方式生动演绎出来。观众不需要具备高深的数学背景,也能感受到其中的逻辑美和力量感。尤其是当角色“i”(虚数单位)和“π”共同施展出终极公式的那一刻,既震撼又令人忍俊不禁。

这也是 Alan Becker 的动画魅力所在:用可视化的手法,把严肃甚至有些晦涩的知识,变成一个个有趣的、像电子游戏一样的冒险故事。对我来说,看完这部视频后,对欧拉公式产生了浓厚的兴趣,后来还专门去查资料,才知道这个等式被称为“数学中的诗”。

哥哥弟弟也很喜欢这一集,他虽然年纪还小,看不懂太多公式,但他能理解角色之间的战斗与变化,这就足够吸引他了。我们甚至还尝试用积木和纸画重现其中的几幕场景,边玩边学,乐在其中。

哥哥也很喜欢数学,平时在学校数学成绩是班上最好的,希望这个视频能启蒙到他。

我最喜欢的一幕就是当 tex_96cad1e5ef25c476c3be4eb8d105669c Alan Becker 的动画教学视频是非常好的启蒙材料 学习笔记 教育 数学 物理 编程 视频 计算机 资讯 化身为 Transformer 形态,用手上的 “limit” 装置接住了小黄人化身的 tex_02d375c3338b3ac7e6c3b81fb6e031b5 Alan Becker 的动画教学视频是非常好的启蒙材料 学习笔记 教育 数学 物理 编程 视频 计算机 资讯 这一幕不仅视觉上震撼,也充满了数学梗的巧思。将抽象的公式和极限概念具象化成角色之间的对抗和救援,真的是把“知识即力量”演绎到了极致。

很享受这种知识划过脑却不留痕迹的感觉。

数学知识
0:07 最简单的入门方式——1 是第一个自然数,这是公理化的(尽管在一些数学分析教材中,他们首先指出 0 是自然数)。
0:13 等式——数学课上学习的两个对象之间的第一个关系。
0:19 加法——四种基本算术运算中的第一个。
0:27 重复 1 的加法,这是我们在集合论中定义其余自然数的方式;也是乘法的铺垫。
0:49 与 1 以外的数字进行加法,这可以用我们已知的 1 加法来定义。(省略证明)
1:23 减法——四种基本算术运算中的第二个。
1:34 我们的第一个负数!它也可以表示为 tex_8c4d4d144d960c160796f47c59507535 Alan Becker 的动画教学视频是非常好的启蒙材料 学习笔记 教育 数学 物理 编程 视频 计算机 资讯 ,这是将 tex_0e4258221bdbc1e8dd20cfdd36fa4447 Alan Becker 的动画教学视频是非常好的启蒙材料 学习笔记 教育 数学 物理 编程 视频 计算机 资讯 的泰勒级数的定义域扩展到复数的结果。
1:49 tex_8c4d4d144d960c160796f47c59507535 Alan Becker 的动画教学视频是非常好的启蒙材料 学习笔记 教育 数学 物理 编程 视频 计算机 资讯 乘以 i,这打开了一扇通往……虚数世界的大门?这也暗示了小黄人实际上存在于实数世界。TSC 现在如何再次得出这个量?

2:12 重复减 1,类似于对自然数的操作。
2:16 负数乘以负数得正数。
2:24 乘法,以及通过重复加法或任何运算对其进行的解释。
2:27 乘法的交换律,以及 12 的因数。
2:35 除法,最后的算术运算;也很好地展示了 – 和 / 之间的关系,就像 + 和 x 之间的关系一样!
2:37 除法就是计算重复减法的次数,直到零。
2:49 除以零,以及为什么它没有意义。令人惊讶的是,TSC 没有用这个来制造一个黑洞。

3:04 指数运算是重复的乘法。
3:15 高阶指数如何对应几何维度。
3:29 任何非零的零次方都是1。
3:31 负指数!以及它与分数和除法的关系。
3:37 分数指数和平方根!我们越来越接近了……
3:43 无理数(例如 sqrt(2))的小数展开是不规则的。(我避免使用“无穷大”这个词,因为从技术上讲,每个实数的小数展开都是无穷大的……)
3:49 sqrt(-1) 给出虚数 i,它首先由性质 i^2 = -1 定义。
3:57 复数的加法和乘法是根据我们已知的原理进行的。
4:00 i^3 等于 -i,这当然会得到 i*e^(i*pi)!

4:14 参考 3:49
4:16 欧拉公式 x = pi!这个公式可以通过重新排列 e^x 的泰勒级数来表示。
4:20 小细节:被负号击中会改变 TSC 的方向,这又一次暗示了复平面!
4:22 e^(i*pi) 到 e^0 对应于复平面上沿单位圆的运动。
4:44 +1/-1 的“剑”相互碰撞,发出“0”个火花。
4:49 -4 的剑击中 +1 的剑,变为 -3,等等。
4:53 2+2 的弩射出 4 支箭。
4:55 4 支箭击中除号,与 pi 对齐,得到 e^(i*pi/4),使其沿单位圆旋转 pi/4 弧度。
5:06 TSC 通过乘以 i 来推动自己,围绕单位圆旋转 π 弧度。

5:18 TSC 终于发现了复平面!5:21 虚轴;5:28 实轴。
5:33 最简单​​的单位圆。
5:38 圆中的 2*π 弧度。
5:46 弧度的定义——单位圆中跨越长度为 1 的弧度的夹角。
5:58 r*theta——半径为 r 的圆中,夹角为 theta 的圆弧长度公式。
6:34 对于单位圆来说,theta / r 就是角度。
6:38 圆周的一半正好是 π 弧度。
6:49 正弦函数和余弦函数如何与绕单位圆逆时针旋转相关——sin(x) 等于 y 坐标,cos(x) 等于 x 坐标。
7:09 旋转 sin(x) 可以直观地看到 sin(x) 和 cos(x) 之间的位移。
7:18 参考 4:16

7:28 将指数改变为 π 的倍数,使其向各个方向移动。
7:34 一个新形式!?e^x 的泰勒级数,其中 x=i*π。现在它有无限的弹药了!?同样,弹药将每个项的十进制展开式作为其弹道标记。
7:49 面积为 pi r^2,高为 8 的圆柱体的体积。
7:53 给读者的练习(哈哈)
8:03 参考 4:20
8:25 关于 e^(ix) 的 cos(x) 和 sin(x)
8:33 很遗憾,这部分我看不懂……TSC 创建了一个“函数”枪 f(x) = 9tan(pi*x),这样朝 e^(i*pi) 射击会得到 f(e^(i*pi))= f(-1) = 0。
9:03 参考 5:06
9:38 “函数”枪现在在无穷远处“求值”,通过每次增加一个维度来扩展实空间(它是一个向量空间),即实空间的跨度扩展为 R^2、R^3 等。
9:48 log((1-i)/(1+i)) = -i*pi/2,乘以 2i^2 = -2 再次得到 i*pi。
9:58 通过缩短间隔并取极限来阻挡“无穷大”光束,这并非黎曼积分的精确定义,但足够接近了。

油管视频:Animation vs Math

Animation vs Coding 编程

编程这一集我看得最懂了,也很有意思,特别是当中那个原子弹的Python程序,就是无限递归/Recursion内存爆炸。

def nuke(n):
    a = []
    for i in range(10):
        if n > 1:
            a.append(nuke(n - 1))
        else:
            a.append(i)
    return a

print(nuke(10))

还有就是Python里调用Turtle包进行海龟作图(这可是我学编程的第一个编程语言)也相当有创意。

0:18 未定义 – 计算机不知道这是什么,就是这样
0:34 print() 将内容打印到终端
0:42 重新运行代码
0:52 变量
1:00 运算(* 表示乘法,/ 表示除法)
1:05 向下取整除法(删除小数)
1:10 字符串本质上就是可以使用的文本
1:23 不能将数字和字符串一起使用
1:27 让你专注于一个特定的字符串/变量/数字
1:32 对象中的项目数(在本例中为 7,因为 string7 有 7 个字符)
1:38 代码语法错误
1:45 b 本质上是 a 中的字符(所以 a[5] 应该是 g,而不是 n,因为它从 0 开始)
1:48 重复代码数字/字符串长度
2:00 基本上会一直运行,因为它基本上告诉计算机“当 true 为真时”
2:02 大写显然
2:09 如果你在执行 while、if 或 for 之类的循环,需要将循环内部运行的代码推送进去,这样计算机才能知道你想要循环的代码。
2:16 循环内部的代码不是在 a 可打印的情况下运行,因为 a 可打印,所以它不能运行。
2:23 循环内部的代码在 if 不可打印的情况下运行。
2:32 字符串列表,本例中的 * 表示将所有字符串都考虑在内。
2:40 海龟本质上就是一支铅笔,我们在这里定义了海龟(所以我们可以直接写 t),然后 import 函数会从库中导入内容(库中有内置库)。
2:41 400 表示它在方向上移动的增量。
2:52 改变海龟移动的速度。
2:55 左右移动使海龟转向。
3:03 循环海龟的移动。
3:17 pensize 表示线条的面积。
3:32 这实际上是停止海龟的方法。哈哈
3:44 matplotlib 是一个绘图库(它显然可以让你访问图表和图形),numpy 允许你使用三维数组
3:44 插入绘图然后使其显示
3:58 获取一个随机的三维整数
4:20 绘图标题,太棒了
4:29 函数,让你在运行函数名称时运行这组代码
4:41 pygame 是一个令人惊讶的库,可以让你制作游戏!while true 循环用于检查用户是否关闭了窗口/选项卡
4:44 窗口的基本 pygame 代码
4:57 允许你通过按下某些键来移动对象
5:21 圆圈朝黄色的位置移动,向前移动时加速,向后移动时减速(谢谢 xTI0)
6:22 不要这样做。核函数中的数字表示列表嵌套的次数,所以 10 基本上就是递归地嵌套 10 次,非常卡顿
6:35 # 让你直接输入文本,非常适合解释你的代码是如何工作的
7:36 他真的在写一个 AI 代码
7:50 神经网络正在接受训练

快速提示:还记得最后提到这是 Python 吗?还有其他编程语言用于不同的目的,我想这很明显,但为了以防万一,一些流行的编程语言是 C、HTML、JavaScript 等等!

油管视频:Animation vs Coding

Animation vs Physics 物理

《Animation vs Physics》这一集的后半段内容变得相当深奥,涉及到了相对论、黑洞等高阶物理概念。我目前的理解还停留在初高中学过的一些基础知识,比如牛顿的第二定律 tex_9daa187e47eb4fb749102377832e3148 Alan Becker 的动画教学视频是非常好的启蒙材料 学习笔记 教育 数学 物理 编程 视频 计算机 资讯 、动能定理、还有爱因斯坦著名的能量公式 tex_76dbfb9a84d34d7f746b1f4cbbb81919 Alan Becker 的动画教学视频是非常好的启蒙材料 学习笔记 教育 数学 物理 编程 视频 计算机 资讯

虽然看不太懂后面的部分,但前半段关于力、加速度、重力等基础物理的呈现还是非常有趣的。角色们像在玩一场“现实模拟游戏”,各种物理定律在他们的世界里都有了视觉化的呈现,哪怕是没怎么学过物理的人也能看得津津有味。

0:19 加速度和速度
1:18 质量
3:07 势能
4:17 重力
4:38 米/秒
5:55 以更高的速度围绕行星运行
6:00 以米/秒为单位的速率增加
6:12 围绕其他行星的速度将随机倍增
基于其大小
6:40 围绕恒星的速度将根据其大小而倍增
7:05 是β的1%
7:21 磁场和引力
7:40 磁场环
7:48 制作磁场火箭
8:18 火箭速度因磁场火箭而加快
8:33 观察星系、星系系统和其他
9:14 黑洞
9:30 关于黑洞的事实
10:03 黑洞内部

油管视频:Animation vs Physics

Animation vs Physics 几何

说到几何,它是数学的另一个重要分支,其中最著名的“主角”之一就是黄金分割。黄金分割不仅在几何中占有一席之地,还常被视为“数学之美”的代表。比如大家熟悉的斐波那契数列,就和黄金分割密切相关——随着数列不断增长,相邻两项的比例会越来越接近黄金比例。

黄金分割的魅力不仅仅体现在数学里,在自然界、艺术、建筑甚至音乐中都有它的身影。像贝壳的螺旋、向日葵的花盘、古希腊神庙的比例,甚至名画《蒙娜丽莎》的构图,都被认为与黄金分割有关。

Alan Becker 在《Animation vs Geometry》中也通过角色与几何图形的互动,让我们直观地看到了这些数学背后的和谐与美感。通过一场看似搞笑却充满巧思的冒险,观众不仅被娱乐到了,也潜移默化地接触到了黄金分割等几何概念。

油管视频:Animation vs Geometry

油管视频 / Youtube Video

英文:Animation Youtube Videos from Alan Becker

本文一共 3926 个汉字, 你数一下对不对.
Alan Becker 的动画教学视频是非常好的启蒙材料. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c Alan Becker 的动画教学视频是非常好的启蒙材料 学习笔记 教育 数学 物理 编程 视频 计算机 资讯
The post Alan Becker 的动画教学视频是非常好的启蒙材料 first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 什么是马太效应? 马太效应是一种社会学和经济学现象,描述了“富者愈富,贫者愈贫”的情况。这个概念来源于《新约圣经·马太福音》中的一句话:“凡有的,还要加给他,使他有余;没有的,连他所有的也要夺去。”因此,“马太效应”这一术语应运而生。 你可能听过这句话:“富者愈富,贫者愈贫” ——这就可以被视为马太效应。 有的人运气好的时候可以一直好运连连,似乎不管做什么都顺风顺水;而有的人一旦遭遇不幸,比如生了场大病,就像是被命运压垮了,接连而来的挫折仿佛永无止境。这种现象其实与我们常说的“马太效应”密切相关——资源和机会越多,往往更容易获得新的机遇,而那些本就处于困境中的人,可能会越发陷入逆境。 我们在生活中会经常遇到类似的情形:一部分人似乎总能轻而易举地获得成功,而另一部分人即便努力了也难以改变困境。这不仅仅是运气的问题,还涉及到资源、支持系统,以及社会对个人发展的反馈。有时候,幸运的人往往有更多的支持与资源来化解困难,反之亦然,不幸的人在面临困境时却因为资源稀缺而难以逆转局势。 马太效应在生活的各个领域广泛存在。 经济学 较富有的人通常有更多的资源和机会去进一步积累财富,而贫穷的人由于缺乏资源可能会变得更加贫困。例如,富人有更多的资本去投资和购买资产,从而获得更多回报。 教育 高成就的学生通常能够获得更多的教育资源、教师关注以及成就感,这进一步激励了他们的学习。与此同时,学业上困难的学生可能得不到足够的支持,导致成绩下降。 职场 在职场中,表现出色的员工往往能够获得更多的资源、机会和认可,进一步巩固他们的地位。而另一方面,表现普通的员工可能由于缺乏机会而被边缘化。 科学研究 著名科学家的研究成果往往更容易获得认可和引用,进一步提升他们的声誉,而其他研究人员由于缺乏可见性可能难以得到承认。 总结:马太效应...
  2. 如何在海外 在线观看 2016 欧洲杯比赛? 四年一度的欧洲杯足球又开始了, 夏天来了 没有什么比边看足球边喝啤酒更爽的事了. 通过以下链接可以 免费在线观看 2016 欧洲杯比赛 (英语解说). 点击以下链接能在线免费看 2016 欧洲杯比赛 (The following provides online...
  3. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  4. 来来来 加我公众号玩 石头剪刀布 写着玩的, 不过虽然猜拳的策略是完全随机 但是真的很难上 10分. 赢了得1分, 输了扣1分. 平局分数不变. 输入分数或者score查看当前得分. 这个分数会直接记入终身档案中.. 一个微信帐号一个分数. 暂时不支持 表情符号. 微信服务器 IP地址是 101.226.103.69...
  5. 你给SteemIt中文微信群拖后腿了么? 这年头不缺算法, 就缺数据. 这两天花了很多时间在整API上, 整完之后自己用了一下还觉得真是挺方便的. 今天就突然想看一看自己是否给大家拖后腿了, 于是调用每日中文区微信群排行榜单的API, 刷刷拿着 NodeJs 练手: 1 2 3 4 5 6...
  6. 2023年生日: 快乐的时间很快就过去了 奔四了,哎。这几年越来越不想过生日,感觉今年一年啥也没完成,混日子,每年生日的时候就感觉一年又白混了,快40了,腰都埋土里了。 每年生日,FACEBOOK,LINKEDIN等社交网络就会提醒你,提醒你的朋友,甚至是陌生人也会给你留言提醒你生日快乐。印象中离开初创公司后,每年生日我都会休假,加入微软2年多,从去年开始,经理总会在生日当天在TEAMS上给我发生日祝福。 当然,这几年最开心的事还是在生日当天,媳妇会格外变得听话贤惠多了,甚至可以满足我一些不太合理的要求。 早上醒来,媳妇就和我说生日快乐,然后把早餐给我送到床上来,我当时感觉像病号一样,娃也给我自己做的贺卡。 早上带娃去看牙医,后来就回家歇着了,中午媳妇给我做了长寿面,晚上约会吃饭(剑桥 Trinity (三位一体) 餐厅),然后去路边的小酒巴喝点小酒。然后该有的活动逃不掉的,你懂的。 哎,祝自己生日快乐,接下来一切顺利吧。 生日当天约会视频: 油管 Youtube B站 Bilibili 西瓜...
  7. 交易所Ionomy跑路, 又丢了好多币, 哎 ionomy.com 交易所的最后一次访问记录可能是2024年6月。 我有一些BLURT币在Ionomy交易所,一直没去管它,这几天想上去看看,因为牛市来了,BLURT币也拉了不少。谁知道网站直接打不开了。 Ionomy交易所已经打不开了。 问了一下,大概是几个月前(2024年年初)跑路的,我现在才知道,关键是没收到任何通知/预警。鱼老板说:“交易所真爱跑路,说了还怎么跑”。 Ionomy交易所是个非常小众的交易所,2018年10月创立,下面是Ionomy交易所在Coinmarketcap(现被币安收购)显示的信息: 我还在FB/Meta上联系他们,但是估计跑路了,不报任何希望了。 Ionomy的Telegram群也就不到300人,太小众了。 我在群的照片里看到了Ionomy交易所的管理层,也不知道是真是假,无从核实,在Linkedin上也搜不到。 这是我在群里照片看到的Ionomy交易所的界面,我的帐号里面应该有大概5000或者1万个BLURT币,也就几十美元,丢了几根鸡腿。 万幸的是前几年曾经提走了0.124个BTC,不然放到现在得哭死了。(当时BLURT的糖果/Airdrop/空投换了0.124个BTC) 为什么我要使用Ionomy交易所? 因为BLURT是STEEM分叉出去的币,小币种,支持它的交易所只有不到三个,其中一个是Ionomy,还有一个比较有名的是Hive-Engine。 小币上大交易所费用贵,听说前几年的上交费是1个比特币。我在STEEM上的发的文章一般也会同步到BLURT去,挣些糖果。 避免小众交易所...
  8. 你要找什么样的老婆? 找媳妇的标准 昨天和网友在剑桥面基, 网友奔现, 他从爱尔兰过来, 小我12岁, 就聊到了找对象的标准. TLDR; 找老婆不要(只)看颜值, 而要注重性格, 为人处事和顾家等更重要的品质, 当然性和谐也很重要. 在当今社会, 人们对于找伴侣的标准有所不同. 有些人认为颜值是最重要的, 因为外貌吸引力可以让人在日常生活中感到愉悦, 这是人的本性,...

在英国第二次被GP做肛门指检

2025年5月5日 23:04

十几年前我还在英国北部的谢菲尔德(Sheffield)生活时,因为痔疮问题去看过一次家庭医生(GP)。当时医生为我进行了肛门指检(back passage examination)。记得那是我人生第一次做指检,还闹了个小笑话——医生让我躺下,把裤子脱到膝盖处,但我转错了方向,应该是背对医生的,结果面对着他,场面一度非常尴尬。

上周我又去看了医生,这次是因为PSA(前列腺特异抗原)检查结果依然偏高,虽然比十几年前略有下降。医生建议再次进行肛门指检,检查一下前列腺情况。我都快忘了这种“酸爽”的体验了。这次医生让我侧躺,背对着他,把腿抱向胸前。他检查了两次,目的是摸一摸前列腺的大小和质地。我以前真的没想到前列腺还能通过这种方式检查。医生说摸起来有点肿大,但应该不是大问题(比如不是癌症),不过他也不能完全确定,于是把我的情况整理后转诊给医院的专科医生,目前还在等医院回复。

这两次检查都是由男医生进行的,医生还问我要不要请一位NHS同事在场监督,我说不用了,毕竟这种尴尬场面还是少一个人知道为好。

说实话,做指检的时候感觉整个人都快“拉了”,实在是又羞又憋屈……

nhs-gp-clinic-2025-05-02-14.19.16-scaled 在英国第二次被GP做肛门指检 医学 生活

NHS GP英国小诊所看医生

英国NHS免费医疗

本文一共 443 个汉字, 你数一下对不对.
在英国第二次被GP做肛门指检. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 在英国第二次被GP做肛门指检 医学 生活
The post 在英国第二次被GP做肛门指检 first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  2. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  3. 在英国给孩子换学校的经历: 孩子离开了村里的小学 由于搬了家, 孩子上学得提前半小时出门了, 因为早上堵, 也得开车半小时才能到. 之前在 Fen Drayton 村庄上小学, 早上8:45学校门开, 9点敲钟孩子排队依次进入教室, 我们由于在村里, 只需要提前5分钟出门和孩子一起走路就可以了. 现在一下子早上变得很匆忙, 得叫孩子起床, 做早饭,...
  4. 英国NHS为年龄在40到70岁之间的中老年人提供免费身体检查 前几天过了40岁生日,正式步入了四十不惑的年龄。 “四十不惑” 是中国古代儒家思想中的一个成语,出自《论语·为政》一书,原文是“吾十有五而志于学,三十而立,四十而不惑,五十而知天命,六十而耳顺,七十而从心所欲,不逾矩”。这句话表达了孔子对人生各个阶段的理解和期望。 “四十不惑”的意思是指一个人到了四十岁,已经积累了足够的经验和智慧,不再轻易受到外界的干扰或困惑。这个年龄段的人对自己的人生观、价值观有了比较清晰的认知,能够判断是非,不会被事物表象或外界的干扰所迷惑。 在现代语境下,“四十不惑”常被理解为人到中年,对生活、工作和人际关系有了更成熟的态度,有自己的独立见解和判断,不再轻易摇摆或迷茫。 没过几天,就收到了英国NHS(全民医保)的短信,说我可以去做个免费体检(身体健康检查)。 根据所给的电话,我打过去询问,得知,这是个第三方的公司,和当地的市政厅合作,给居民提供免费的身体检查,不过有三个条件: 过去五年内没有做过体检。 年龄在40到70岁之间。 居住在剑桥地区(CB邮编)或者皮德堡/peterborough/PE邮编 所以,我不符合条件,毕竟我这一次全面体检就是半年前回国的时候,我顺便问了一下身体检查有啥项目,被告知就是很基本的那几项:身高、体重、血压、血常规、尿检。毕竟英国全民医保,并不可能给你像国内那种体检套餐没事做个MRI核磁共震或者是X光。英国的理念是健康的人不需要身体检查,有问题才会对症下药/检查。 第三方体检机构表示,如果有任何问题或感到不适,应该先去找GP全科医生。以上三个条件中,第一条感觉是有商量的空间的。我还特别问了什么样的检查算体检。不过无所谓,反正公司有福利,每年都可以安排一次体检,刚好下周就约到了公司的体检:公司的福利之: 员工体检(微软和Nuffield)。 本文一共 734...
  5. 同一台服务器上多个WORDPRESS站点的一些设置可以移出去 我自从把所有网站都挪到一处VPS服务器上 就发现很多事情省事很多 可以同时管理多个网站 包括 WORDPRESS博客. 比如我有四个WORDPRESS博客 然后我就把通用的一些资料给移出去 移到 HTTP或者HTTPS都不能直接访问的文件夹里这样就更安全许多. 文件 wp-conn.php 存储了 相同的数据库资料. 1 2...
  6. 车轮胎边上鼓起了包需要换掉么? 今天在30英理/小时 的时候不小心碰到马路崖, 就听见碰咚一声, 下车看, 车身没事, 倒是右边轮胎 (Off Side Front) 起了一个大包, 长这样. 不幸中的万幸, 轮胎是消耗品, 不会直接影响到车的保值, 而车身如果有刮擦,...
  7. 英国国家医疗服务体系(NHS)简介 英国国家医疗服务体系 (National Health Service, 简称 NHS) 是英国政府提供的公共医疗卫生服务体系,于1948年创立,旨在为英国居民提供从出生到老年的综合医疗服务。NHS 的宗旨是确保每位英国居民无论其收入、地位和健康状况如何,都能获得公平且免费(或低价)的医疗服务,属于全球范围内最早建立的全民医疗体系之一。以下是 NHS 的一些关键特点: 英国国家医疗服务体系(NHS)于1948年7月5日正式成立。这一体系是由当时的卫生部长阿奈林·贝文(Aneurin Bevan)主导创立的,其核心理念是确保所有人都能获得公平的医疗服务,无论收入高低。NHS 的诞生标志着现代公共医疗服务的开端,为全球范围内的全民医疗体系提供了参考。 全民覆盖和免费医疗 NHS...
  8. 比特币最近波动有点大: 一天牛市一天熊 比特币10万美金以内都是最后上车的机会! 比特币近期的价格波动可以归因于多个关键因素,包括地缘政治动态、监管变化以及加密行业内的重大安全事件。其中一个主要影响因素是美国前总统唐纳德·特朗普对乌克兰和加密货币监管的立场变化。据报道,特朗普再次当选,他可能会推动减少美国对乌克兰的支持,这可能会影响全球金融市场和风险偏好。同时,特朗普正在将自己塑造为亲加密货币的候选人,表示有意让美国成为一个更加友好的加密货币环境。这一立场引发了市场对监管政策可能发生变化的猜测,导致市场情绪在乐观和不确定性之间波动。 特朗普对俄乌战争的态度 美国第43届总统唐纳德·特朗普已经在2025年1月当选并正式上任(第二次),那么他的政策可能会对比特币价格的波动产生更加直接和显著的影响。他政府对乌克兰和加密货币监管的立场已经不再是猜测,而是正在实际塑造市场的关键力量。 特朗普(Donald Trump)减少美国对乌克兰的支持,全球投资者可能会预期地缘政治稳定性发生变化,从而增加对比特币作为避险资产的需求。同时,他的亲加密货币立场可能正在推动市场的乐观情绪。如果他的政府推出有利于加密行业的监管政策,例如明确的合规指南或减少监管审查,可能会吸引更多机构投资者进入市场,并促进更广泛的加密货币采用。然而,政策的快速变化也可能导致短期市场剧烈波动,因为市场需要时间来消化新的政策动向。 朝鲜黑客盗取Bybit交易所15亿美元的ETH 另一个显著影响比特币价格的事件是近期涉及朝鲜黑客组织“Lazarus”的15亿美元以太坊被盗案件。据报道,Bybit交易所(全球第二)这些被盗的ETH已经被清洗,此次大规模黑客攻击引发了人们对加密行业安全性的担忧。此类安全事件不仅会削弱投资者信心,还可能引发更严格的监管审查,导致短期市场动荡。此外,被盗资金的大规模流动和出售可能对市场流动性造成冲击,进一步加大价格波动。随着这些事件的持续发酵,比特币价格正受到政治决策、监管预期以及安全挑战等多重因素的影响。 与此同时,与朝鲜黑客组织 Lazarus 相关的 15 亿美元以太坊被盗事件仍在影响加密市场。由于这些被盗 ETH 已被清洗,人们对加密行业安全漏洞的担忧持续存在,同时也可能引发更严格的监管审查。政治、监管和安全等多重因素交织在一起,共同导致了比特币近期的剧烈价格波动。...

私有化部署无名杀卡牌游戏

2025年5月5日 19:52

部署非常简单,非常适合收藏,内网私有化部署。另外这是一个开源项目,灵活度比较高。

项目地址

https://github.com/libnoname/noname

镜像

可以根据自己的网络情况选择对应的镜像下载,镜像比较大, 大概 3.5G 左右。

  • hsiaoshun/noname
  • ccr.ccs.tencentyun.com/k7scn/noname

部署 compose

services:
  noname:
    image: hsiaoshun/noname
    # image: ccr.ccs.tencentyun.com/k7scn/noname
    container_name: noname
    ports:
      - '6080:80'
    restart: always

端口配置

  • 80 游戏本体网页版入口
  • 8080 WS 协议,联机大厅服务(客户端使用)

caddy 代理

示例,不建议公网跑,对带宽有点要求

sgs.ysicing.eu.org {
reverse_proxy 100.90.80.2:6080
}

联机大厅配置说明

目前只支持 windows 和安卓

注意: 结尾的/不能省略, 如果没有证书就是 ws,有证书就是 wss

其他

如果有更多兴趣的话,可以看看无名杀懒人包。


Debian常用初始化流程

2025年5月5日 14:50


在搭建 k3s 轻量级 Kubernetes 集群时,Debian 系统因其稳定性和灵活性成为首选。然而,Debian 默认配置可能无法满足 k3s 的需求,需要通过初始化优化系统设置。本文将分享一套针对 k3s 环境的 Debian 初始化方案,涵盖基础包安装、系统配置和防火墙规则,仅供参考。

安装基础包

以下命令安装 k3s 集群所需的基础工具,保持系统轻量:

export DEBIAN_FRONTEND=noninteractive
apt update -qq
apt remove -y -qq ufw lxd lxd-client lxcfs lxc-common
apt install --no-install-recommends --no-install-suggests -y -qq nfs-common iptables conntrack jq socat bash-completion open-iscsi rsync ipset ipvsadm htop net-tools wget psmisc git curl nload ebtables ethtool procps

配置系统

配置 ssh

修改 ssh 端口,设置密钥登录,禁用密码登录。这些比较常见,这里就不细说了。

更新内核

之前好像也写过,通常我都是使用最新内核,仅供参考.(通常也会踩坑比较多)

curl https://c.ysicing.net/oss/scripts/debian-upcore.sh | bash
# 或者
apt install -t bookworm-backports linux-image-amd64 -y

配置 system 相关

调整 Systemd 的资源限制和日志设置

mkdir -pv /etc/systemd/system.conf.d
cat > /etc/systemd/system.conf.d/30-k8s-ulimits.conf <<EOF
[Manager]
DefaultLimitCORE=infinity
DefaultLimitNOFILE=100000
DefaultLimitNPROC=100000
EOF

mkdir -pv /etc/systemd/journald.conf.d /var/log/journal

cat > /etc/systemd/journald.conf.d/95-k3s-journald.conf <<EOF
[Journal]
# 持久化保存到磁盘
Storage=persistent
# 最大占用空间 2G
SystemMaxUse=2G
# 单日志文件最大 100M
SystemMaxFileSize=100M
# 日志保存时间 1 周
MaxRetentionSec=1week
# 禁止转发
ForwardToSyslog=no
ForwardToWall=no
EOF

systemctl daemon-reload
systemctl restart systemd-journald

cat > /etc/modules-load.d/10-k3s-modules.conf <<EOF
br_netfilter
ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack
EOF

systemctl daemon-reload
systemctl restart systemd-modules-load

配置防火墙规则

提示:8.8.8.8 为示例白名单 IP,请替换为实际 IP,搭配rc.local

  • /data/scripts/iprule.sh
#!/bin/bash
iptables -I INPUT -s 8.8.8.8 -j ACCEPT
iptables -I INPUT -p udp -j ACCEPT
iptables -I INPUT -i lo -j ACCEPT
iptables -I INPUT -i tailscale0 -j ACCEPT
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -I INPUT -s 10.0.0.0/8 -j ACCEPT
iptables -I INPUT -s 172.16.0.0/12 -j ACCEPT
iptables -I INPUT -s 192.168.0.0/16 -j ACCEPT
iptables -I INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p icmp -j DROP
iptables -A OUTPUT -j ACCEPT
iptables -A INPUT -j DROP

防火墙规则没考虑使用 iptables-save 等保存恢复,而是每次开启时重新配置。

总结

通过以上步骤,我们完成了一套针对 k3s 环境的 Debian 系统初始化,优化了网络、资源限制和安全性。你可以直接使用以下脚本一键初始化

curl https://c.ysicing.net/oss/scripts/init.sh

大快活的记忆

2025年5月5日 08:27

《水饺皇后》里有一个镜头,那是一个霓虹灯小丑头,小丑头的下面写了三个字——大快活。我已经不记得电影是一个什么这样的情节之下,出现了这个大logo,但是这个logo让我马上联想到了我印象之中的大快活。

在我读幼儿园和小学的时候,广州也有不少大快活,但印象之中大都在越秀区。我们去得最多的是下九路的大快活,那个大快活的面积比较大,在某一栋建筑的2楼。从那里出来没走几步就是墨西哥稻草人和蜂胡子的铺子。每次如果一家三口去吃,我爸总会吃海南鸡饭,而我和我妈没有固定的款式。几乎可以这么说,每一次去下九路,要在那里吃饭,我们都会去大快活。虽然下九路从来不缺吃的地方。那里有广州酒家、有莲香楼、也有陶陶居,这些是大型的,还有各种小店,比如欧成记、南信之类。那个时候,我们却会选择去大快活。我不知道如果去其它地方,我会不会不高兴。可能如果你只是带我去吃一个云吞面,我会不开心,因为云吞面在昌岗西路那边,也就是我家附近也有很多。对我来说,那个时候分不清好还是不好,我只知道是还是不是。在我的印象之中,大快活那个小丑头和大快活三个大字都是黄色的。

终于上小学了,我家就在小学的对面,基本可以说是门对门,只隔了一条双向两车道的马路而已。上学的时候,我妈找了一个大别针,绑了一条绳,上面拴着我家的钥匙,那个大别针扣在我的书包上。那串钥匙有一个钥匙扣,是一根香肠,上面有大快活的logo。那是姨妈送给我的礼物。我也不知道为什么她有那个东西,可能我表姐也会偶尔去大快活。那根香肠后来不知道丢哪里去了。在我记忆之中,那根香肠的扣子没多久就坏掉,然后我的爸妈就在那个扣子的位置替换上了一根很粗的铜线。我不知道为什么现在我依然对那个东西记忆犹新。大概因为一直以来,我基本都不用钥匙扣。那个钥匙扣标志着我第一次有了家里的钥匙。

90年代的广州有不少大快活,但在我印象之中,没有开到海珠区。海珠区我去得最多的快餐店是添美食,在海珠购物中心,在江南大道上。南丰商场的一楼有肯德基和必胜客,他们开在两隔壁,后来我才知道他们都是百事集团的。后来海珠购物中心开了麦当劳,所以我和我的初中小伙伴有时候就不需要跑到海珠广场的那个麦当劳。

多年以后,我们一家三口已经很少逛下九路。当我再次回到那个地方的时候,已经不知道是多少年以后,发现我找不到从前的那家大快活了。我甚至觉得大快活这个快餐店已经在广州消失。近几年,我又发现了大快活。在公园前发现了,在江南西发现了,但是那个logo不再是以前的那个小丑,变成了一个橙色的人。你可以抽象地认为,那个人就是一个大字的形象。我曾经怀疑过,现在我看到的大快活到底是不是以前我熟悉的那个。

周五的晚上我搜索了一下,发现原来这个大快活就是以前的那个大快活,不过他们换了logo而已。大快活,大家乐和维他奶实际上都是香港罗氏家族创立。一直以来我都只知道大家乐和维他奶是香港的,不知道原来大块活也是香港。

我小时候的广州,快餐店有添美食和多美丽,但后来,彻底消失了。好长一段时间,基本只会看到麦当劳和肯德基。

和日本相关的东西

2025年5月4日 08:12

在七八十年代出生的广州人的记忆之中,小时候家里的那个电视机基本都是日本产的。这些日本产的电视机,要不是通过水货的方式进来,要不是通过香港的亲戚朋友带回来。为什么我会知道第一条呢?因为现在我的工作地点是东莞麻涌,那是一个水乡,水路非常的发达,临近狮子羊。以前麻涌的一个本地阿姨曾经跟我说,她家的很多东西都是当年通过第一种方式带回来的,而他们的很多本地人干的就是这种生意。

小时候我家的彩色电视机是日立的,液化石油气热水器也是日立的。小时候,我就只看到那里有一串的英文,不知道是什么,家长们只会跟我说日立、乐声之类。这些日立、乐声都是香港的称呼。过了好多年,上小学了,识字了,在百货商场也看到了这些牌子,但是那里标出来的不是乐声。乐声实际上就是Panasonic,在国内我们称呼为松下。日立现在在我们的大型商场里见得不多。我家的电视现在用的是Sharp,之前那个也是。再之前我们用的是康佳。我不知道在七八十年代的时候,广州以外的那些国内城市,他们家庭里用的电视机是什么牌子的。在创维、TCL、康佳这些国内品牌起来之前,广州人的电视机基本都是日本产的。我家的第1个VCD机是Sharp,但那个时候我不知道Sharp是什么,估计那个VCD机是一个贴牌的假冒货,所以存活的时间没多长。我家的那个录像机更短命,据说是我们中奖了,其他人都买同一个牌子同一批货,就我家那个买回来就没好过多长时间。外婆家的那个收录机就是Panasonic的,也就是大人称呼的乐声。

为什么会说起这个呢?因为在《水饺皇后》里,有两次镜头给到了楼顶的Sharp广告牌,那里有英文也有中文,英文写的是Sharp,中文写的是声宝。因为是繁体字,所以我没有马上反应过来,但是我一眼就认出英文了,到后来第二次出现的时候,我才发现那里写的不是夏普。那里写的是什么呢?后来我才去查资料,发现原来香港称呼夏普为声宝。现在,他们的丰泽电器依然在卖着声宝的产品,其中就包括了窗式空调机。就价格而言,声宝的微波炉不贵,跟国产的格兰仕、美的差不多,但现在的广州,在大型的商店里,又或者在网上商城里,我们极少看到夏普除了电视机以外的其它产品,就更不用说窗式空调了。

《水饺皇后》里面有一个镜头是臧姑娘的女儿们偷偷在包租婆的门口看电视。黑白电视里正播放着动画片,通过画面和音乐,我都马上认出是《飘零燕》。大概在九十年代中期的时候,我在翡翠台星期六还是星期天早上10点多的时候,看过彩色版的《飘零燕》。在某个暑假,在某个央视频道早上8点多的时候,我也看过彩色版的《飘零燕》。二者的区别就在于一个说的是粤语,一个说的是普通话。我不知道《飘零燕》到底是什么时候出现的。我九十年代在看,但那个动画片1977年的时候就已经有了吗?电影里的那个电视机是黑白的,但实际上1977年的《飘零燕》是不是实际上是彩色的呢?这让我想起小时候,我在别人家门口或别人家的窗户偷看人家的电视。以前还能这么偷看,现在几乎不可能了,因为现在的新住宅一楼通常都没有人居住,居住也不会开门。一楼通常是架空层、停车场、大堂之类的东西。

我有过更多的记忆交汇,我当然会咀嚼联想出更多。

How I use Obsidian

2023年9月16日 08:00

I use Obsidian to think, take notes, write essays, and publish this site. This is my bottom-up approach to note-taking and organizing things I am interested in. It embraces chaos and laziness to create emergent structure.

In Obsidian, a “vault” is simply a folder of files. This is important because it adheres to my file over app philosophy. If you want to create digital artifacts that last, they must be files you can control, in formats that are easy to retrieve and read. Obsidian gives you that freedom.

The following is in no way dogmatic, just one example of how you can use Obsidian. Take the parts you like.

Vault template

  1. Download my vault or clone it from the Github repo.
  2. Unzip the .zip file to a folder of your choosing.
  3. In Obsidian open the folder as a vault.

Theme and related tools

Plugins

Some of my templates depend on plugins:

Personal rules

Rules I follow in my personal vault:

  • Avoid splitting content into multiple vaults.
  • Avoid folders for organization.
  • Avoid non-standard Markdown.
  • Always pluralize categories and tags.
  • Use internal links profusely.
  • Use YYYY-MM-DD dates everywhere.
  • Use the 7-point scale for ratings.
  • Keep a single to-do list per week.

Having a consistent style collapses hundreds of future decisions into one, and gives me focus. For example, I always pluralize tags so I never have to wonder what to name new tags. Choose rules that feel comfortable to you and write them down. Make your own style guide. You can always change your rules later.

Folders and organization

I use very few folders. I avoid folders because many of my entries belong to more than one area of thought. My system is oriented towards speed and laziness. I don’t want the overhead of having to consider where something should go.

I do not use nested sub-folders. I do not use the file explorer much for navigation. I mostly navigate using the quick switcher, backlinks, or links within a note.

My notes are primarily organized using the category property. Categories are overview notes that list related notes.

Most of my notes are in the root of the vault, not a folder. This where I write about my personal world: journal entries, essays, evergreen notes, and other personal notes. If a note is in the root, I know it’s something I wrote, or relates directly to me.

Two reference folders I use:

  • References where I write about things that exist outside my world. Books, movies, places, people, podcasts, etc. Always named using the title e.g. Book title.md or Movie title.md.
  • Clippings where I save things other people wrote, mostly essays and articles.

Three admin folders exist so that their contents don’t show up in the file navigation:

  • Attachments for images, audio, videos, PDFs, etc.
  • Daily for my daily notes, all named YYYY-MM-DD.md. I do not write anything in daily notes, they exist solely to be linked to from other entries.
  • Templates for templates.

Two folders are present in the downloadable version of my vault for the sake of clarity. In my personal vault, these notes would be in the root, not a folder.

  • Categories contains top-level overviews of notes per category (e.g. Books, Movies, Podcasts, etc).
  • Notes contains example notes.

Links

I use internal links profusely throughout my notes. I try to always link the first mention of something. My journal entries are often a stream of consciousness cataloging recent events, finding connections between things. Often the link is unresolved, meaning that the note for that link isn’t created yet. Unresolved links are important because they are breadcrumbs for future connections between things.

A journal entry in the root of my vault might look something like this:

I went to see the movie [[Perfect Days]] with [[Aisha]] at [[Vidiots]] and had Filipino food at [[Little Ongpin]]. I loved this quote from Perfect Days: [[Next time is next time, now is now]]. It reminds me of the essay ...

The movie, movie theater, and restaurant each link to entries in my References folder. In these reference notes I capture properties, my rating, and thoughts about that thing. I use Web Clipper to help populate properties from databases like IMDB. The quote was meaningful to me, so it became an evergreen note in my root folder. The essay I mention is in my Clippings folder, because I didn’t write it myself.

This heavy linking style becomes more useful as time goes on, because I can trace how ideas emerged, and the branching paths these ideas created.

Fractal journaling and random revisit

Fractal journaling and randomization are how I tame the wilderness that a knowledge base can grow into.

Throughout the day I use Obsidian’s unique note hotkey to write individual thoughts as they come up. This shortcut automatically creates a note with the prefix YYYY-MM-DD HHmm to which I may add a title that describes the idea.

Every few days I review these journal fragments and compile the salient thoughts. I then review those reviews monthly, and review the monthly reviews yearly (using this template). The result is a fractal web of my life that I can zoom in and out of at varying degrees of detail. I can trace back where individual thoughts came from, and how they bubbled up into bigger themes.

Every few months I set aside time for a “random revisit”. I use the random note hotkey to quickly travel randomly through my vault. I often use the local graph at shallow depth to see related notes. This helps me revisit old ideas, create missing links, and find inspiration in past thoughts. It’s also an opportunity to do maintenance, like fix formatting based on new rules in my personal style guide.

People have asked me if this could be automated with language models but I do not care to do so. I enjoy this process. Doing this maintenance helps me understand my own patterns. Don’t delegate understanding.

Properties and templates

Almost every note I create starts from a template. I use templates heavily because they allow me to lazily add information that will help me find the note later. I have a template for every category with properties at the top, to capture data such as:

  • Dates — created, start, end, published
  • People — author, director, artist, cast, host, guests
  • Themes — grouping by genre, type, topic, related notes
  • Locations — neighborhood, city, coordinates
  • Ratings — more on this below

A few rules I follow for properties:

  • Property names and values should aim to be reusable across categories. This allows me to find things across categories, e.g. genre is shared across all media types, which means I can see an archive of Sci-fi books, movies and shows in one place.
  • Templates should aim to be composable, e.g. Person and Author are two different templates that can be added to the same note.
  • Short property names are faster to type, e.g. start instead of start‑date.
  • Default to list type properties instead of text if there is any chance it might contain more than one link or value in the future.

The .obsidian/types.json file lists which properties are assigned to which types (i.e. date, number, text, etc).

Rating system

Anything with a rating uses an integer from 1 to 7:

  • 7 — Perfect, must try, life-changing, go out of your way to seek this out
  • 6 — Excellent, worth repeating
  • 5 — Good, don’t go out of your way, but enjoyable
  • 4 — Passable, works in a pinch
  • 3 — Bad, don’t do this if you can
  • 2 — Atrocious, actively avoid, repulsive
  • 1 — Evil, life-changing in a bad way

Why this scale? I like rating out of 7 better than 4 or 5 because I need more granularity at the top, for the good experiences, and 10 is too granular.

Publishing to the web

This site is written, edited, and published directly from Obsidian. To do this, I break one of my rules listed above — I have a separate vault for my site. I use a static site generator called Jekyll to automatically compile my notes into a website and convert them from Markdown to HTML.

My publishing flow is easy to use, but a bit technical to set up. This is because I like to have full control over every aspect of my site’s layout. If you don’t need full control you might consider Obsidian Publish which is more user-friendly, and what I use for my Minimal documentation site.

For this site, I push notes from Obsidian to a GitHub repo using the Obsidian Git plugin. The notes are then automatically compiled using Jekyll with my web host Netlify. I also use my Permalink Opener plugin to quickly open notes in the browser so I can compare the draft and live versions.

The color palette is Flexoki, which I created for this site. My Jekyll template is not public, but you can get similar results from this template by Maxime Vaillancourt. There are also many alternatives to Jekyll you can use to compile your site such as Quartz, Astro, Eleventy, and Hugo.

Related writing

Debian 双栈网络时开启 IPv4 优先(音频版)

2025年5月3日 23:32

PS: 用 AI 生成的图老是不合法微信封面的比例,放到文尾。本文也提供音频版, 欢迎订阅我的微信公众号。

在如今的网络世界,IPv6 正在逐渐普及,但 IPv4 依然是许多场景的“老大哥”。如果你用的是 Debian 系统,并且身处 IPv4 和 IPv6 共存的双栈网络环境,可能会发现系统默认优先使用 IPv6——这在某些情况下并不理想,比如某些服务只支持 IPv4,或者 IPv6 连接不稳定。今天,我们就来聊聊如何在 Debian 上实现 IPv4 优先,甚至在需要时完全禁用 IPv6。跟着这篇教程,轻松搞定网络配置!

为什么需要调整网络优先级?

先来点背景知识:双栈网络指的是设备同时支持 IPv4 和 IPv6 协议栈。现代操作系统(如 Debian)和浏览器通常默认优先使用 IPv6,只有当 IPv6 连接失败时才会“退而求其次”用 IPv4。这听起来很智能,但在实际场景中可能会遇到问题:

  • 服务兼容性:某些老旧服务或内网应用只支持 IPv4,IPv6 优先可能导致连接失败
  • 网络性能:部分网络环境下,IPv6 的延迟或稳定性不如 IPv4
  • 特殊需求:比如开发测试时,你可能希望强制使用某一种协议

所以学会调整 IPv4 和 IPv6 的优先级,或者在极端情况下禁用 IPv6,是每个 Debian 用户的“进阶技能”。下面,我们一步步教你搞定!

让 IPv4 优先:修改 gai.conf 文件

Debian 系统中,/etc/gai.conf 文件控制了 getaddrinfo 函数的行为,这个函数决定了系统如何选择 IPv4 或 IPv6 地址。默认情况下,IPv6 优先,但我们可以通过简单修改让 IPv4 站到“C 位”。

修改步骤

打开终端,输入以下命令编辑 /etc/gai.conf

#precedence ::ffff:0:0/96  100

去掉 # 号,修改为:

precedence ::ffff:0:0/96  100

保存并退出。

懒人福利:如果你不想手动编辑,可以直接用这条命令一键搞定:
bash

sed -i 's/#precedence ::ffff:0:0\/96  100/precedence ::ffff:0:0\/96  100/' /etc/gai.conf

测试效果

配置完成后,用 curl 命令测试一下:

curl ip.sb

也可以使用

# 查询本机外网IPv4地址
curl 4.ipw.cn

# 查询本机外网IPv6地址
curl 6.ipw.cn

# 测试网络是IPv4还是IPv6访问优先(访问IPv4/IPv6双栈站点,如果返回IPv6地址,则IPv6访问优先)
curl test.ipw.cn

如果返回的是类似 6.6.6.6 的 IPv4 地址,恭喜你,IPv4 优先已生效!如果返回的是类似 2001:db8::2 的 IPv6 地址,检查是否正确保存了配置。

原理

::ffff:0:0/96 是 IPv4 地址在 IPv6 协议中的映射范围,设置其优先级为 100(高于默认 IPv6 的优先级),系统就会优先选择 IPv4 地址。

特殊场景:强制 IPv6 优先

有些朋友可能有“奇特”需求,比如测试 IPv6 环境或某些服务明确要求 IPv6 优先。别担心,我们也可以反向操作!

同样编辑 /etc/gai.conf, 在文件末尾添加以下两行:

label 2002::/16    1
label 2001:0::/32   1

保存退出,或者用命令一键添加:
bash

echo -e "label 2002::/16    1\nlabel 2001:0::/32   1" | sudo tee -a /etc/gai.conf

原理

2002::/162001:0::/32 是常见的 IPv6 地址段,设置它们的 label 优先级为 1,确保系统优先选择这些 IPv6 地址。IANA 目前分配的公网 IPv6 地址还未覆盖到 3000:0000::/4,所以这招基本万无一失

(这个未测试过,仅供参考)

极端情况:完全禁用 IPv6

如果你的网络环境压根不需要 IPv6,或者 IPv6 总给你添乱,可以直接禁用它。以下是禁用 IPv6 的方法,适合“断舍离”爱好者。
编辑 /etc/sysctl.conf 文件:

net.ipv6.conf.all.disable_ipv6 = 1
# 禁用eth0的ipv6
net.ipv6.conf.eth0.disable_ipv6 = 1

结语

通过简单的配置文件调整,你就可以在 Debian 双栈网络中自由掌控 IPv4 和 IPv6 的优先级,甚至彻底禁用 IPv6。无论是提升网络兼容性、优化性能,还是满足特定需求,这些技巧都能让你事半功倍!


那个年代的奋斗与人情味

2025年5月3日 08:32

第一次在微博上看到《水饺皇后》预告片的时候,我就知道自己一定要去看这部电影。第一次看的时候我记得上映日期是2025-04-20。之所以记得这么清楚,是因为我看到那个日期以后,一看日历我就记起了那是我们那个家族去小新塘清明祭拜的日子,所以要在首映日看这部电影是不可能的。后来机缘巧合之下,我知道原来挪到了五一档。

为什么第一眼我就觉得自己要去看那部电影呢?因为原来那就是一直以来我们所熟知湾水湾仔码头水饺创始人的故事。之前我没听说过水饺皇后,但是据说湾水湾仔码头水饺是有个关于创始人臧姑娘的故事。之所以觉得我要去看,是因为虽然臧姑娘是一个山东人,但是故事发生在香港,所以严格来说,可能这得称之为一部香港电影。我是一个看着香港电视剧长大的人,除了臧姑娘以外,包租婆也是一个很重要的角色。在影视作品里,包租婆都不是什么好人,但是《水饺皇后》里的包租婆,真的是一个非常好的人。当我看到五一电影开票的时候,我就赶紧去买了万达万胜店的票。五一那天万达店开了好多场,我选了1号厅,因为那是一个很大的厅。买票的时候我是那个厅的第一批观众。

《水饺皇后》这部电影,大部分角色说的都是粤语,对我来说非常亲切,根本不需要看字幕。让我印象深刻的是邻里温情。无论是一开始加工胶花和人偶加工的老板和老板娘,还是后来的包租婆和糖水佬。他们那些浓浓的人情味在很多电视电影里,我都好久没见过,但实际上,这种街坊邻里的守望相助,在那个时候是很普遍的。80、90年代的广州也依然是这样。他们不富有,甚至你得用穷去形容他们,但是他们会全心全意帮助你,不求回报。

电影的不同阶段会加入不同配乐,那些熟悉音乐响起的时候,我总感觉那是一波又一波的催炸弹,尤其是罗文的声音响起的时候。在搜索臧姑娘故的时候,有些文章会形容她是香港狮子山精神的代言人,于是就很容易理解为什么要配上罗文的歌。

对我来说,电影里的很多细节越嚼越有味道。比如说拜神,比如说那尊观音菩萨,还有观音菩萨下面的土地公婆。观音选得非常用心,土地公婆也是我第一次看到那个东西,通常情况我看到的都只是一块红色牌子。他们所住的那个屋子大门口贴的那张财神,第一眼看到的时候就让我有点热泪盈眶,因为从前我的外婆家门口也贴了一张。小时候的我无数次盯着那张财神仔细看,一遍又一遍,所以当我看到那张财神的时候,真的是百感交集。我不知道别人家是怎样的,我们家从来不贴对联,包租婆的家大门上也没有对联。臧姑娘在酒楼洗碗的时候,有一个细节让我觉得他们真的选得很用心。臧姑娘洗的不是一个普通的碗或者盘子,她洗的是一个做煲仔饭的砂煲。煲仔饭是一个非常有地域特色的食品。除了煲仔饭的砂煲以外,老板第一次把臧姑娘领去后厨,看到那个不堪入目景象的时候,你会看到无数广式点心用的蒸笼。

臧姑娘从一个一无所有的山东妹变成一个有60亿产业的大老板,首先因为她非常努力,其次是因为她非常愿意听取别人的建议,她也认真地进行专研,同时她对自己以及自己的产品非常的严格。正是因为她的这种执着与追求,让她那种妈妈味道的水饺走出了家门、走到了湾仔码头、走进了香港各大超市、来到了中国大陆、也走向了全世界。

电影的片尾曲《信》是李宇春的一首新歌,但无论是那个曲子还是那个填词,都是那个时代的味道。首先是那几个音符的配合,我实在太熟悉了,每一句歌词末尾都是押韵的,这是典型七八十年代港曲的风格,于是我甚至脑子里一直在纠结,这首歌真的是新歌吗?

对我这个生在80年代的广州人来说,《水饺皇后》这部电影有无数泪点。

Debian 12 解决 /etc/rc.local 开机启动问题

2025年5月3日 06:59

在 Debian 12(以及 Debian 9 及以上版本)中,/etc/rc.local 是配置开机自启动脚本的传统方式,但默认未启用,导致自定义脚本无法自动运行。本文将详细指导你在 Debian 12 上启用和配置 /etc/rc.local,步骤同样适用于 Debian 9 Stretch、10 Buster 和 11 Bullseye

问题背景:rc.local 为什么不生效?

Debian 9 起采用 systemd 作为初始化系统,传统的 /etc/rc.local 默认不生效。尽管系统内置了 rc-local,但默认处于禁用状态:

root@debian:~$ systemctl status rc-local.service
○ rc-local.service - /etc/rc.local Compatibility
     Loaded: loaded (/lib/systemd/system/rc-local.service; static)
    Drop-In: /usr/lib/systemd/system/rc-local.service.d
             └─debian.conf
     Active: inactive (dead)
       Docs: man:systemd-rc-local-generator(8)

以下是默认的 rc-local.service 配置,表明它会在 /etc/rc.local 可执行时自动拉起:

root@docker:~$ systemctl cat rc-local.service
# /lib/systemd/system/rc-local.service
#  SPDX-License-Identifier: LGPL-2.1-or-later
#
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

# This unit gets pulled automatically into multi-user.target by
# systemd-rc-local-generator if /etc/rc.local is executable.
[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no

# /usr/lib/systemd/system/rc-local.service.d/debian.conf
[Unit]
# not specified by LSB, but has been behaving that way in Debian under SysV
# init and upstart
After=network-online.target

# Often contains status messages which users expect to see on the console
# during boot
[Service]
StandardOutput=journal+console
StandardError=journal+console

解决步骤:启用 /etc/rc.local

以下步骤助你快速启用 /etc/rc.local,实现开机脚本自动运行

创建 /etc/rc.local 文件

默认没有 /etc/rc.local,我们需要手工添加一个 /etc/rc.local 文件:

cat <<EOF >/etc/rc.local
#!/bin/bash
# 这是一个示例 rc.local 文件
# 在这里添加你的开机执行命令
# 示例:启动一个自定义脚本
# /path/to/your/script.sh
exit 0
EOF

设置可执行权限

确保文件具有可执行权限

chmod +x /etc/rc.local

启用并立即启动 rc-local 服务

启动 rc-local 服务,此时可能会弹出警告,可直接忽略

systemctl enable --now rc-local

检查服务状态, 状态显示 active (exited) 表示服务已运行

root@docker:~$ systemctl status rc-local.service
● rc-local.service - /etc/rc.local Compatibility
     Loaded: loaded (/lib/systemd/system/rc-local.service; static)
    Drop-In: /usr/lib/systemd/system/rc-local.service.d
             └─debian.conf
     Active: active (exited) since Fri 2025-05-02 18:21:26 EDT; 3s ago
       Docs: man:systemd-rc-local-generator(8)
    Process: 333116 ExecStart=/etc/rc.local start (code=exited, status=0/SUCCESS)
        CPU: 4ms

May 02 18:21:26 docker systemd[1]: Starting rc-local.service - /etc/rc.local Compatibility...
May 02 18:21:26 docker systemd[1]: Started rc-local.service - /etc/rc.local Compatibility.

添加自定义开机脚本

在 /etc/rc.local 的 exit 0 前添加命令。例如:

#!/bin/sh -e
#
# rc.local
#
# By default this script does nothing.
/data/scripts/ip.sh || true
exit 0

注意:使用绝对路径(如 /data/scripts/ip.sh),确保脚本有执行权限。|| true 可防止脚本失败影响。

测试配置

重启系统

总结

通过以上步骤,你可以在 Debian 9 及以上版本快速启用 /etc/rc.local,实现开机自动运行脚本。尽管 systemd 提供更现代的方案,rc.local 仍适合简单任务


繁杂

2025年5月2日 08:36

22点44,同事把4月最后一天单位的作业数据发出来。理论上在22点30,单位的作业就算结束了,再往前推,实际上大概在21点30的时候,最后一车已经完成过磅,也就是说21点30-22点30大家只是在等待约定的结束时间而已。之前我也试过提前行动,结果是居然在22点28的时候,又来了几台车,他们是压着点过来的,于是我只能把之前已经做好的东西推翻重来。这一次,我不想推翻了,所以我真的是等到了22点30以后才开始行动,在同事把作业数据发出来之前,其实我已经整理好我的那部分了。一直以来我都是这么干的,这需要有非常好的预判,同时也意味着我不是在等待他们发号司令才开始做我的事情。

确认最终数据之后,我又花了一个小时,把接下来的事情做完。那包括核对库存,做各种各样的表,以及之前把已经做好,但没有提交的完成最后的步骤。为什么我会有月末焦虑呢?因为虽然这些事情都很琐碎,但是累积起来得用几十去形容,它们之间有很强的关联性。当你需要报送的东西越来越多以后,除了把那个数据做出来以外,你也得保证它们互相是不打架的,虽然它们都来自于同一个数据源,但是因为某些特殊情况,会有一些意外的发生。比如说一些非典型业务的出现,就很容易导致没有把数据反映上去,又或者没有把某些数据剔除掉。因为类似的东西要报很多,所以很重要的一点就是,我有没有漏掉?有时候我会做着做着,突然间不知道自己下一步要做什么了,尤其是当我做完一件事,然后被打断的时候。我也说不准这到底是我记忆力不好了还是真的太繁杂了。近几年那些加码的事情得用离谱去形容,以前我只需要管好纸质的东西。现在纸质的东西得管,系统也得管,因为系统的东西实际上是人工录入的,而且系统还一个又一个添上去。纸质的东西也就那样了,但系统的东西,还有一些你预测不到的,比如明明该到你报送的时候了,系统却打不开,又或者没办法转到你需要报的那个表上面,简直让人无语。

到该报报表的时候,报送报表的那个网站打不开是让人很抓狂的。第一次遇到的时候,我的第一反应是可能网站出状况了,我等一等,但是等了半天,还是那样。我差点就要找我的上级反映我报不了数据了,但是在反映这个事情之前,我把那个网站在另外一个浏览器里打开,结果居然就开了。谁知道你是什么情况呢?一直我都是用Firefox做那个报表,为什么Firefox现在就是打不开呢?那个系统是浪潮做的,浪潮干的事,什么状况都有可能发生。根据我的经验,这种有些浏览器能打开,有些浏览器打不开,尤其是我经常用的浏览器打不开的状况,通常清除一下这个网站的cookie就好了。结果真如我所料,我清除了那个网站的cookie,网页就打开了。当我跟网友吐槽起我这个差点给上级上报很囧的事情以后,他的回复是实际上清除缓存不应该由我这个使用者完成,而是应该在做网页设计的时候就写好清除缓存的脚本。使用者无论任何时候,只要不是服务器那边挂了,都可以正常访问使用。这证明了,不是我的问题,不是Firefox的问题,又是浪潮不知道哪位干的好事。

又一个月末挺过去了,但这个月末我居然有种其实我也不确定我是不是都干完了,还是说有些事情我漏掉还没做的迷糊。

深入浅出 MinIO:身份管理与权限配置实战

2025年5月2日 01:21

前面刚刚讲了如何搭建 MinIO,本文趁热打铁手把手教你如何配置 MinIO 权限配置。对于略懂 MinIO 的用户,配置权限可能是个挑战:如何安全地让别人读取存储内容,但不能列出所有存储桶或文件列表?或者让某个存储桶的内容可以列出? 本文将深入讲解 MinIO 的身份管理和权限配置,聚焦存储桶权限(private、public、custom)的区别和 匿名访问 的应用,通过清晰的场景示例,教你实现安全分享,同时保护数据

MinIO 身份管理基础

MinIO 的身份管理负责用户认证和授权,默认使用内置身份提供者(IDP)。核心概念包括:

  1. 用户(User)
    用户通过 Access Key(用户名)和 Secret Key(密码)访问 MinIO,可用命令行工具 mc 或 Web 控制台管理。
  2. 服务账号(Service Account)
    服务账号是为应用程序设计的专用凭证,无法登录控制台,但可通过 API 访问资源,适合自动化脚本或服务集成。
  3. 策略(Policy)
    JSON 格式的策略定义用户、服务账号或匿名访问对存储桶(Bucket)和对象(Object)的权限,基于 AWS S3 语法。
  4. 匿名访问(Anonymous Access)
    允许未认证用户(无 Access Key)通过 URL 或 API 访问特定资源,需通过存储桶权限配置。

用户组:可通过 mc admin group 批量管理用户权限,本文不展开。

我们的目标是:安全地让匿名用户或服务账号读取特定内容,限制列出存储桶或文件列表,或有选择地允许列出某个存储桶的内容。

准备工作

  1. 确保 MinIO 运行:假设 MinIO 部署在 http://localhost:9000,管理员账号为 homes4,密码为 aiy0ooCheephai0ohNahmu3Aijee6eiv
  2. 安装 mc 工具:下载 MinIO 客户端(mc),用于配置权限(支持 Windows、Mac、Linux)。
  3. 配置 mc
mc alias set homes4 http://localhost:9000 homes4 aiy0ooCheephai0ohNahmu3Aijee6eiv
Added `homes4` successfully.

准备好后,我们开始配置权限!

PS:命令行方式和可视化操作效果是一样的,下文会穿插着来,但是主要还是以可视化 web 操作为主

存储桶权限:Private、Public 和 Custom

MinIO 的存储桶权限控制匿名访问行为,分为 privatepubliccustom 三种模式,可通过 mc anonymous 命令设置。以下是它们的区别

Private(私有)

  • 定义:禁止所有匿名访问,仅允许认证用户或服务账号(有 Access Key 和策略授权)访问。
  • 适用场景:保护敏感数据,如内部文档、用户数据。
  • 效果:匿名用户访问存储桶或对象时,返回 403 Forbidden
  • 配置:mc anonymous set none homes4/web

Public(公开)

注意:风险较高,容易暴露所有文件,慎用。(我个人基本不用)

  • 定义:允许匿名用户访问,权限包括:

    • download:只读(s3:GetObject)
    • upload:只写(s3:PutObject)。
    • public:读写均可。
  • 适用场景:分享公开资源,如网站静态文件、开源软件。

  • 配置(只读):mc anonymous set download homes4/web

  • 效果:匿名用户可通过 URL(如 http://localhost:9000/web/file.jpg)读取对象,可能列出文件列表(若未限制)。

Custom(自定义)

推荐用

  • 定义:通过 JSON 策略精确控制匿名访问权限,如限制特定路径或操作。
  • 适用场景:部分公开,如只分享某个文件夹,或禁止列出文件列表。
  • 配置:见下文场景示例。
  • 效果:灵活性最高,匿名用户只能执行策略允许的操作。

存储桶权限区别总结

模式 匿名访问权限 适用场景 配置命令
Private 禁止匿名访问 敏感数据 mc anonymous set none
Public 读、写或读写(看设置) 公开资源 mc anonymous set download upload/public
Custom 自定义(JSON 策略) 部分公开、精确控制 mc anonymous set-json

实战:安全分享存储内容

通过一个最常见的场景,教你如何:

  • 让匿名用户只读特定文件,禁止列出存储桶或文件列表。

此外,还会写如何用服务账号为应用程序提供类似权限。

新建存储桶

先创建一个存储桶,默认创建的存储桶都是私有权限

root@docker:~$ mc mb homes4/cli
Bucket created successfully `homes4/cli`.
root@docker:~$ mc ls homes4
[2025-05-01 11:26:11 EDT]     0B cli/
[2025-05-01 11:23:57 EDT]     0B ddd/
[2025-05-01 10:38:53 EDT]     0B homes4/
[2025-05-01 11:29:06 EDT]     0B web/

场景:只读特定文件,禁止列出存储桶或文件列表

需求:存储桶 web 包含 public/photo.jpg 和 private/secret.pdf。想让匿名用户只读 photo.jpg,但不能列出 web 桶中 的文件列表,也不能访问其他文件或存储桶

步骤:

设为 Private(默认安全)

mc anonymous set none homes4/web

创建自定义策略:只允许匿名读取 public/photo.jpg

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": ["s3:GetObject"],
      "Effect": "Allow",
      "Resource": ["arn:aws:s3:::web/public/photo.jpg"],
      "Principal": "*"
    }
  ]
}
  • s3:GetObject:允许读取对象
  • Resource:精确到 photo.jpg, 例如你想某个目录读写 arn:aws:s3:::web/public/*
  • Principal: "*":表示匿名用户
  • s3:ListBucket:禁止列出文件列表

应用策略

mc anonymous set-json custom.json homes4/web

控制台可以直接编辑存储桶的 Access Policy,改成 Custom,内容和上面一致

查看策略

root@docker:~$ mc anonymous get-json homes4/web
{
 "Statement": [
  {
   "Action": [
    "s3:GetObject"
   ],
   "Effect": "Allow",
   "Principal": {
    "AWS": [
     "*"
    ]
   },
   "Resource": [
    "arn:aws:s3:::web/public/photo.jpg"
   ]
  }
 ],
 "Version": "2012-10-17"
}

效果

  • 匿名用户可通过 http://localhost:9000/web/public/photo.jpg 下载 photo.jpg。
  • 其他访问都是 403

服务账号:为应用程序配置相同权限

需求:为应用程序(如网站后端)提供只读 public/photo.jpg 的权限,类似上述场景,但通过服务账号实现

步骤:

创建用户(服务账号需绑定到用户):

密码长度需要 8-40

mc admin user add homes4 app1user app1pass

web 可视化操作,policy 那里随便选个小权限的,后面需要调整

创建服务账号:为 app1user 生成服务账号,绑定 custom.json 策略

mc admin user svcacct add homes4 app1user --access-key svc1 --secret-key svc1pass --policy custom.json

可视化操作创建服务状态,凭证信息会随机生成,且只显示一次

策略信息只能在生成 access key 后才能编辑操作

实用技巧:兼顾安全与便利

  • 优先 Custom 模式:比 public 安全,精确控制分享内容。
  • 避免 Public 模式:除非真想完全公开,否则可能暴露所有文件。
  • 检查权限:定期用 mc anonymous get-json homes4/web 确认存储桶权限
  • 随机存储桶名:用随机名,降低被猜到风险
  • 用预签名 URL 临时分享:生成带有效期的链接,过期失效:
# 分享下载链接,下载速度限制10MB/s有效期7天
mc share download --limit-download 10MB homes4/web/private/secret.pdf

总结

MinIO 的权限配置简单而灵活,用服务账号拥有某个存储桶的只读权限就行了。


NotebookLM音频概览支持中文

2025年4月30日 21:21

4月30日消息,谷歌宣布其基于人工智能的笔记和研究助手工具 NotebookLM 的“音频概览(Audio Overviews)”功能新增 76 种语言支持。该功能于去年推出,旨在通过人工智能虚拟主持人根据用户上传到 NotebookLM 的文档(如课程阅读材料或法律摘要)生成播客,帮助用户以另一种方式理解和消化文档中的信息。

谷歌表示,此前“音频概览”功能仅支持用户账户所设置的首选语言。如今,公司新增了“输出语言”选项,用户可以自由选择生成“音频概览”的语言。谷歌强调,用户可以随时更改语言设置,这样就能根据需要轻松创建多语言内容或学习材料。

谷歌在一篇博客文章中举例说明了这一功能的实用性:“例如,一位准备关于亚马逊雨林课程的教师可以与学生共享多种语言的资源,比如葡萄牙语纪录片、西班牙语研究报告和英语学习报告。学生们可以将这些资料上传到 NotebookLM,并在他们偏好的语言中生成关键要点的音频概览。”

新增支持的语言包括南非荷兰语、阿拉伯语、阿塞拜疆语、保加利亚语、孟加拉语、加泰罗尼亚语、捷克语、丹麦语、德语、希腊语、西班牙语(欧洲、拉丁美洲、墨西哥)、爱沙尼亚语、巴斯克语、波斯语、芬兰语、菲律宾语、法语(欧洲)、法语(加拿大)、加利西亚语、古吉拉特语、印地语、克罗地亚语、海地克里奥尔语、匈牙利语、亚美尼亚语、印尼语、冰岛语、意大利语、希伯来语、日语、爪哇语、格鲁吉亚语、卡纳达语、韩语、孔卡尼语、拉丁语、立陶宛语、拉脱维亚语、迈蒂利语、马其顿语、马拉雅拉姆语、马拉地语、马来语、缅甸语、尼泊尔语、荷兰语、挪威语(新挪威语)、挪威语(书面挪威语)、奥里亚语、旁遮普语、波兰语、普什图语、葡萄牙语(巴西、葡萄牙)、罗马尼亚语、俄语、信德语、僧伽罗语、斯洛伐克语、斯洛文尼亚语、阿尔巴尼亚语、塞尔维亚语(西里尔字母)、瑞典语、斯瓦希里语、泰米尔语、泰卢固语、泰语、土耳其语、乌克兰语、乌尔都语、越南语、中文(简体)和中文(繁体)。

NotebookLM访问地址:https://notebooklm.google.com

来源:IT之家

超简单!5分钟用群晖搭建 MinIO + Caddy 对象存储

2025年5月1日 18:12

对象存储和 Web 服务是开发者必备工具。MinIO 凭借高性能和 S3 兼容性成为存储领域的“顶流”,Caddy 则以自动 HTTPS 和极简配置深受开发者喜爱。结合 Docker Compose,只需 5 分钟,你就能搭建一个安全、高效的对象存储服务!本文手把手教你部署 MinIO + Caddy。

前提要求

  • 群晖/大盘鸡(大硬盘 VPS):运行 MinIO 服务。
  • 大带宽机器(如腾讯云锐驰 200):运行 Caddy,代理 MinIO 服务。
  • 组网服务(如 Tailscale/EasyTier):确保内网互联互通

我的网络环境通过组网服务实现全链路打通,家里的群晖与腾讯云锐驰无缝互联,Caddy 代理内网 MinIO 服务,借助锐驰大带宽对外提供高效访问。

为啥选择 MinIO + Caddy

  • MinIO:开源、S3 兼容、支持分布式存储,轻松应对海量数据。
  • Caddy:自动 HTTPS、配置简洁,专为高并发优化,支持丰富插件。
  • Docker Compose:一键部署多容器,省时省力。

组合优势:Caddy 为 MinIO 提供安全访问和负载均衡,Docker Compose 确保部署简单,完美适配静态文件托管、API 服务或私有云存储。

5 分钟快速部署

根据需求,可选择在同一机器上部署或分布式部署。我因跨机器需求,选择分布式部署。

部署 MinIO

群晖已支持 Docker Compose,通用配置如下:

  • docker-compose.yaml
version: "3"
services:
  minio:
    image: bitnami/minio:2025
    # image: ccr.ccs.tencentyun.com/k7scn/minio:2025
    container_name: minio
    restart: always
    environment:
      - MINIO_ROOT_USER=homes4
      - MINIO_ROOT_PASSWORD=aiy0ooCheephai0ohNahmu3Aijee6eiv
      - MINIO_DEFAULT_BUCKETS=homes4
    ports:
      - '9000:9000'
      - '9001:9001'
    volumes:
      - '/volume1/docker/minio/data:/bitnami/minio/data'

注意:可能遇到目录权限问题,可运行以下命令解决:
chmod 777 /volume1/docker/minio/data -R

访问 MinIO 管理界面

在浏览器输入 http://NAS_IP:9001http://域名:9001,进入 MinIO 登录页面,使用 MINIO_ROOT_USERMINIO_ROOT_PASSWORD 登录。

安装客户端

提供 Linux/amd64 的 mc 客户端下载链接:

https://c.ysicing.net/oss/tiga/linux/amd64/mc

或从官网获取最新客户端 Install mc

部署 Caddy

  • docker-compose.yaml
services:
  caddy:
    image: ysicing/caddy2
    # image: ccr.ccs.tencentyun.com/k7scn/caddy2
    container_name: caddy
    restart: always
    # 可选host或者端口映射
    network_mode: host
    volumes:
      - '/data/caddy/cfg:/etc/caddy'
      - '/data/caddy/data:/data'
      - '/data/caddy/config:/config'
      - '/data/caddy/log:/var/log/caddy'

此 Caddy 镜像为我的定制版,内置以下常用插件:

xcaddy build \
    --with github.com/caddy-dns/cloudflare \
    --with github.com/caddy-dns/tencentcloud \
    --with github.com/caddy-dns/alidns \
    --with github.com/caddy-dns/dnspod \
    --with github.com/ysicing/caddy2-geocn \
    --with github.com/mholt/caddy-l4 \
    --with github.com/mholt/caddy-ratelimit

Caddy 配置

配置文件位于 /data/caddy/cfg,目录结构如下:

/data/caddy/cfg# tree
.
├── Caddyfile
├── load.sh
└── site
    ├── cr.caddy
    ├── dev.caddy
    ├── hub.caddy
    ├── http.caddy
    └── minio.caddy

Caddyfile 示例

(LOG) {
	log {
		output file "{args[0]}" {
			roll_size 50M
			roll_uncompressed
			roll_local_time
			roll_keep 3
			roll_keep_for 7d
		}
		format json
	}
}

(COMCFG) {
	encode zstd gzip
}

(ERR) {
	handle_errors {
    	# 异常重定向
		redir https://dxgw-{err.status_code}.caddy.local
	}
}

{
	debug
	# admin off
}

(TLS) {
tls {
  dns tencentcloud {
    secret_id AKID***
    secret_key CH85***
  }
}
}

import /etc/caddy/site/*.caddy

MinIO 配置

minio.caddy

域名 {
	import ERR
    # 如果是内网域名可以设置import TLS开启dns签发证书
    # import TLS
    import LOG "/var/log/caddy/minio.log"
	@rootPath {
		path /
	}
	handle @rootPath {
		respond "EdgeONE 451 Forbidden" 451
	}
    # 内网minio地址
    reverse_proxy 100.90.80.2:9000
}

同理,minio 控制台也是一样,通常控制台不对外开放,仅限内网访问。

minio-api.caddy

域名 {
	import ERR
    # 如果是内网域名可以设置import TLS开启dns签发证书
    # import TLS
    import LOG "/var/log/caddy/minio-api.log"
    @denied not remote_ip 192.168.1.0/24
    respond @denied "Access Denied" 403
    # 内网minio api地址
    reverse_proxy 100.90.80.2:9001
}

重新加载配置

curl "http://localhost:2019/load" -H "Content-Type: text/caddyfile" --data-binary @Caddyfile

使用 MinIO

配置 MinIO 客户端(mc)以访问服务:

# 内网
mc alias set home http://100.90.80.2:9000 homes4 aiy0ooCheephai0ohNahmu3Aijee6eiv
# 外网
mc alias set home https://域名 homes4 aiy0ooCheephai0ohNahmu3Aijee6eiv

更多场景可结合 restic,rclone,下载服务

写在最后

通过 MinIO 和 Caddy 的组合,你可以快速搭建一个高性能、安全的对象存储服务。本文提供的配置仅供参考,MinIO 还有更多玩法等待探索!


中西区闲逛

2025年5月1日 13:56
天气晴朗,本来想乘坐南港岛线到南区海边逛一逛,结果过于自信坐过换乘站了,索性就随便找个出口随便 walk 一下,因为我讨厌港岛线的原因,一旦到了港岛我都尽量步行,所以活动范围非常小。不过此次漫无目的的相关让我发现港岛的魅力,虽然我仍旧讨厌港岛线。 德己立街 德己立街是兰桂坊的主街,我居然是第一次来到这里,感觉非常新鲜,不过画风和铜锣湾那边还是相似的。 经典香港的士 香港外国人还是蛮多的 拍到一老哥双手合十 悠闲老哥 摄影姐和健身姐 混乱又带点秩序 繁忙的十字路口 繁忙的十字路口 云咸街 是我没见过的路牌,一看到就知道此次walk 稳了。 中东女人 港岛的建筑阳光打上去非常漂亮 中银 终审法院 – 前立法会大楼 走到这边已经有点熟悉了 建筑太漂亮啦 等公交 香港双层公交车特别多 diesel 喷涂的叮叮车,曾经我最喜欢的品牌。 叮叮车 叮叮车 叮叮车 广告喷涂的的士 谈笑风生 秩序感 港湾消防局 维多利亚港 直升机 乘坐天星小轮过海,一切都开始熟悉起来。 遥望港岛 弥敦道众生相 堪富利士道 九龙公园

没遇到过天才

2025年5月1日 12:09

小学的时候,有同学自称自己是天才,接下来他会被其他同学嘲笑他只是个天生蠢材而已。是不是天才真有那么重要吗?

我不是个天才,我只是个普通人。在我的求学经历里,我从来没有遇到过天才。有些同学的确要比其他人聪明一些,这里所说的聪明是是指他理解运用某些知识速度比别人快,但还不至于到达显著性差异的程度。有些同学学习成绩比别人好,但实际上如果你观察过他的话会发现他不过是比大家更努力而已。比如高中的时候,尤其是高三的时候,当我只是在应付老师布置的那些作业的时候,那些拔尖的人,自己在不断加码。做的那些考卷是一本一本计算的,所以当我第1次遇到某道题的时候,估计他已经在之前的刷题里见过不知道多少遍。对我来说,冥思苦想都得不到的结果,对他来说可能只是个条件反射,把之前已经知道的东西写出来而已。你或许会问,为什么人家在刷题你不刷题呢?首先是因为我懒,其次是因为我真的没有那么多时间,我的时间才刚刚够和应付老师的作业。因为做老师布置是作业的时候可以把速度提高,同时也压缩了我去运动的时间,所以他们可以不断刷题。这只是在我看到的时候是这么个情况,在我看不到的时候,可能他们刷得更狠。比如不在学校,在家里的时候,有时我会看着那些政治历史之类的卷子看着看着忍不住就睡着了。看的时候已经迷糊,睡的时候当然是什么都没有,所以美其名曰在复习,实际上只是在耗时间而已。在这个时候,估计那些强者正在专心致志刷题。

刷题这种事情,当我只是个初中生的时候,我自己也在干,因为相对而言,我觉得初中时候学校给我的压力不多,所以我主动在其他渠道获取更多的知识,主动遇到更多的题目和题型。那个时候,当我早上坐公交车去上学时,别人看着我拿着课外的练习册刷题的时候,估计他们也觉得挺不可思议,因为他们就从来没想过要这么干。我之所以要这样干,是因为只有我遇到的多了,在之后的测验考试里面,我才不会彷徨。我感觉我初中干的事情跟我高中同学干的事情其实挺类似,但是我实在到达不了他们的程度。如果你再给我一年,或许可以。在我读书的那个年代,复读已经有了,但是我从来没想过要干那种事。我为什么要复读呢?复读我就能考上中大华工吗?我觉得依然不可以。即便我不复读,广外华师华农之类的,只要我不失手离谱就可以。

说来也奇怪,我居然不知道高中时候刷题刷得很猛的那些同学最后去了什么学校。我不知道他们去了什么学校,我也不知道他们当时填的志愿是什么学校。他们比我聪明,他们也比我勤奋,但我觉得他们还称不上是天才。有些对英语很感兴趣,有些是数学的痴迷分子,有些每天不刷化学卷子估计就觉得那天不完整了。外人看来,他们的这种行为有点自虐,但估计他们不这么觉得,又或者是哪怕他们自己也觉得自己有点变态,但是为了能考出好的成绩,他们觉得这样做是必须的,自己克服了那种厌恶心理。

那些传说中的天才,到底是怎样的呢?

五一大盘大带宽物理服务器活动推荐

2025年4月30日 09:39

之前,也有小伙伴让我推荐几家物理服务器(后面简称杜甫), 趁着五一假期有活动,推荐两家我都在用的,各有优势,但是活动期价格会有优惠。

物语云

优点

  • 工单响应速度快
  • 有 DDoS 攻击防护
  • 大带宽流量套餐/上行限速的不限流量套餐(账单日可互换)
  • 测试不满意满足条件可退款

不足

  • 多台机器暂不支持组内网
  • 暂不支持 ipv6
  • 暂时只支持国内
  • 只支持操作系统安装

目前活动

立减优惠码 Event8259

物语云计算物理机活动:双路铂金物理机600G防护399/月起。
🎉限时立减100循环优惠码:
Event8259
※优惠码使用流程:登录账号后选择对应产品,在下单处点击“我有优惠码”之后填入。

硬件配置:
物理服务器|NVMe SSD|资源完全独享|自助管理面板
CPU:双路铂金Platinum8259CL 48核96线程
内存:128G RECC DDR4
硬盘:1TB NVMe SSD

网络规格:
以下四种网络规格可选,价格相同:
 - 浙江宁波/电信/50Mbps独享/100G防护/不限流量
 - 湖北十堰/电信/50Mbps独享/600G防护/不限流量
 - 浙江宁波/移动/50Mbps独享/10G防护/不限流量
 - 浙江宁波/电信/500Mbps流量计费/100G防护/双向2TB

优惠活动:
销售价:1150/月 优惠价:499/月
活动价:399/月,循环优惠,续费同价。

※上述产品均为独享带宽,并非“峰值”、“共享”带宽,可7x24小时随时跑满,拒绝带宽竞技场!

<服务协议与退款>
云服务器产品 24 小时内上行方向使用不超过30GB流量均支持退款,
物理服务器产品 24 小时内上行方向使用不超过100GB流量均支持退款,每用户每月最多退款 1 次。

购买链接 物语云杜甫

测评

具体可以参考 https://www.nodeseek.com/post-303956-1,带宽是可以长时间跑满的。

狗云

多年资深狗云老用户了,目前我只用他们家的 KC 杜甫、重庆联通杜甫

优点

  • 相比较其他杜甫首发优惠力度很大
  • 预购活动多
  • 香港大带宽流量套餐
  • 支持多台机器组网
  • 支持 ipv6, 掩码 /64
  • 安装系统支持种类多
  • 支持快递硬盘

缺点

  • 只支持工单响应(可以 PY 德克狗老板)
  • 杜甫 VNC 需要工单才能开,且有时间限制(每次半小时,记得不太清了)
  • 重装每小时限制一次
  • 需要实名

目前活动

预售活动

预售活动力度大些,折扣也比较高, 走 aff 成功绑定后返利一半

预售地址 二代铂金服务器预售

主要说一下网络规则,支持切换每次手续费 20, 推荐优化线路,优化线路可以附加国际线路,但是不支持附加精品线路

网络规格:
以下三种网络规格可选,价格相同:
 - 精品线路 75 Mbps, 额外附加20元/个/月
 - 优化线路  750 Mbps,额外附加15元/个/月
 - 国际线路  1000 Mbps,额外附加10元/个/月
 - 额外附加高防IP200元/个/月

五一 · 劳动节促销

活动一:
折扣码“51”,新开弹性云7折,新开经典云(特价机除外)8折。
折扣码“jian100”,新开独立服务器优惠100元。

活动二:
5月1日-5月5日,单笔充值每满100元送10元。

活动三:
5月1日-5月5日,幸运大转盘每日抽取5折码,流量,余额等奖品。

活动四:
二代铂金服务器预售:https://ds.dogyun.com/server/preorder

香港-KC物理服务器邮件硬盘添加活动将在5月10日开始接收

测评 KC

具体可以参考 https://www.nodeseek.com/post-314492-1

其他 CQA

他们家的老款绝版 CQA 月付 200 还是挺不错的,稳定的很,可以收一收。

最后

祝各位老板五一假期玩的开心。


欢迎关注我的微信公众号

跨界

2025年4月30日 09:43

前段时间在B站上看了一个名叫《时代医者》的纪录片。里面说的是北京各所医院某些顶尖医生的故事。我有这么个总体感觉,他们不仅仅是医生,又或者说是手术匠,他们都是跨学科的人才,不仅仅是在手术方面。他们在一些新疗法、新治疗手段方面也很努力,而且有些还非常有成果。有些是国内领先,有些甚至是国际领先。这种跨界的表达,在我以前看过的国内医疗相关纪录片里是没有提过的,又或者说是没有着重提过的。我不知道为什么这个讲北京医生的纪录片要突出这一点。

这两天热搜上有某个中日友好医院的医生私生活混乱,然后顺带带出一个规培生不可思议的履历。一个贴牌哥大经济专业的学生,进入了协和4+4的培养模式,后面那个是意味着4年里她直通取得博士学位。博士导师是骨科的,毕业论文是影像学的,她当的是泌尿科的医生。当她还只是一个准博士的时候,就已经以并列第一作者身份发表某个泌尿学的指南。她的那些论文的通讯作者是她的爸爸,审查委员会的成员是她妈妈,无论是她爸还是她妈都不是医疗系统的人。普通医学生规培需要三年,她减到了一年。普通医学生需要11~13年,而她只需要8年。

我不知道这个世界已经乱糟糟到了什么程度。为什么我会把《时代医者》和这个神奇女侠联系在一起呢?因为他们有一个共同点——跨界。协和4+4据说原理就是让本科不是学医的人通过4年的特训最终成为一个医学博士。正如之前我所说的,《时代医者》里面的人基本都有跨界这个属性。学科大牛的跨界和比较聪明的人跨界学医,是一回事吗?

我觉得跨界是很有必要的,我本科的毕业论文也有一点跨界的意思。我是一个食品科学与工程的学生,但我干的实际上是生物工程的毕业论文,但我的本科课程里,就有生物工程,微生物学是我这个专业很重要的课程之一。我做的毕业论文是微生物的。微生物通常是生物工程的学生做,从这个角度考虑我好像跨界了,但实际上,从课程的安排来说,那也是我食品工程的一部分,我没有跨界。这样干会自带优势,因为毕业论文答辩的时候,因为我是食品工程的,所以安排的是食品工程专业的老师,他们在微生物方面没有生物工程老师那么专业,但实际上在我选择导师和毕业论文的时候,我完全没有考虑过利用优势,我甚至不知道这个优势的存在。直到答辩的时候,我才知道原来是这么回事的。

但显然,上面说到的那个女超人不是这样,但到底她是怎样呢?我不知道,我也无法评判,我只是觉得这么神奇的事情,连编剧都不敢这么编。

女超人的爸妈可以这么说,是工程方面的巅峰之作,但为什么他们要把女儿塑造成医学的巅峰之作呢?又或者不是他们想这么干,是女儿希望自己成为这样的人。一定程度上,爸妈只是帮了一把而已,但是他们帮的那一把,一般父母做不到。

热心的网友们发出了这么个请求,在我们挂号的时候,能不能把4+4的那些精英们单列出来,分为主任、副主任、4+4,好让他们尽可能避雷。普通的医学生,想从中西医转为西医都不行,但是有些人却可以从和医学风马牛不相及的学科本科生晋级为医学博士。

所以呀,虽然惨一点,如果真的后来才意识到自己还是学医比较好,能不能选择重新参加高考,然后考了一个牛逼到极点的分数,然后被医学院录取,最后奋斗10多年后成为医生呢?可能有些人真这么干,但想想都觉得这非常难。

昆明游记

2025年4月27日 08:00
一次偶然的机会,我有幸前往云南昆明,也趁此机会游览一下这个著名的“春之城”。

福建之行

2025年4月27日 01:43
用一周时间去了一趟福建,参加了一个婚礼顺便把福建多个城市都打卡了一下 行程 4月13日·福州 8:13 高铁 上海虹桥-福州 12:30 到达福州酒店办理入住,简单休整 13:30 三坊七巷吃吃逛逛 17:00 去上下杭继续吃吃逛逛 18:00 在闽江边青年广场拍日落 4月14日·平潭 9:30 租车从福州出发前往平潭 11:30 到达平潭仙人井景区 15:00 一路向北沿海边逛逛拍拍 16:40 到达北部湾玻璃栈道 18:20 到达北部生态廊道F5观景台拍日落 4月15日·莆田 12:00 高铁到莆田 14:30 大巴-乘船至湄洲岛 15:00 到湄洲岛上民宿办入住 16:00 租电驴到湄洲岛最南端鹅尾海蚀公园 18:30 在山顶灯塔拍日落 18:30 在山顶灯塔拍日落 19:30 在农贸市场附近吃晚餐 4月16日·莆田&泉州 5:30 在民宿露台看日出,然后回去继续睡觉 10:00 天妃故里,了解妈祖文化 12:00 妈祖祖庙 17:00 乘船-大巴-到达莆田火车站前往泉州 20:00 泉州古城,开元寺,西街,钟楼 4月17日·泉州&永安 10:00 南少林寺 12:00 蟳埔民俗文化村 16:00 到达泉州站,坐城际动车去永安 18:30 到达永安,晚餐 20:00 婚礼前准备 4月18日·永安 5:00 接亲 12:00 婚礼 15:00 贡川古镇 17:00 九龙竹海 4月19日·永安 7:30 早餐,特色小吃 9:00 天宝岩景区 12:30 午餐 15:15 乘高铁返回上海 福州 由十条东西走向的小街巷构成 “棋盘状” 街区,南后街西边三条为 “三坊”,即衣锦坊、文儒坊、光禄坊,东边七条为 “七巷”,从北到南依次是杨桥巷、郎官巷、塔巷、黄巷、安民巷、宫巷、吉庇巷。坊巷内院落沿中轴线对称分布,宅院外有围墙,内部多进院落沿纵深轴线布置,为中轴线对称布局,白墙瓦屋,...

牙隐裂

2025年4月29日 09:16

周一的下午,我妈突然给我打电话。她说去看牙医,医生说她那只牙裂开了,有两个选择,一个是做根管治疗,然后再带个套,另外一个是直接拔掉,然后种植。我个人觉得可以不把牙齿拔掉,当然最好,而且牙齿种植的价值也不便宜,虽然现在科技已经挺发达了,只要肯出钱,种植的那个牙可以很耐用,但是要种植一个牙,真的很不便宜,而且在成功种植之前其实挺折磨。如果做治疗的话,医生说起码要三轮,最后加个箍,那么就不会痛了,但不确定什么时候又会痛。有些人几个月就不行了,有些人能扛几年。为什么居然会这样呢?我妈在医院不知道该怎么办,先给我打电话,然后再给她姐姐打电话。她姐姐的意思是直接叫她拔牙然后种植的那个医生是不是太想赚钱了。

我的疑惑是为什么类似的症状,根管治疗后结局有那么大的差异呢?带着这个问题我去问了DeepSeek,回答是如果是牙根纵裂,那么牙齿大概率是要拔掉的,但如果是其它,可以先做根管治疗。在那之前口服止痛药,又或者在牙齿上面用凝胶是可以减轻疼痛。我觉得我妈的那种痛,已经不仅仅是对冷热酸甜很敏感,而是会牵扯到其他牙齿也一起痛,所以我感觉食物残渣或者细菌之类的东西已经进去了,牙齿内部在发炎。

又过了一两个小时,我妈才把X光片以及那个门诊病历给我拍了个照发过来。门诊病历写的是牙隐裂,但是并没有说清楚。因为医生说看不清,那个X光片,那只能说上面有三个牙齿,但到底是什么个情况,真心看不清,我感觉对焦就没对准,既然看不清,能不能多几个角度拍一下呢?只有一张片子,在这种情况下,你怎么能判断那个牙齿有没有发生牙根纵裂呢?如果发生纵裂,当然你可以100%跟患者说,这是没办法的事情,必须得拔掉,但如果不是纵裂,进行根管治疗是可以减轻症状,甚至好长一段时间都不会有问题的。医生一开始说,这种症状的病人进行根管治疗有些人能挺几个月,有些人能挺几年。如果她都是拍同样质量的片子,同样不清不楚,根管治疗牙根纵裂的人,如果真的能坚持几个月,我感觉已经很了不起了,但是对那些不是牙根纵裂,只是牙冠裂了的人,根管治疗保出了牙根的下面,我觉得他们的复发或者疼痛几率当然会低很多。我个人认为这个医生拍的那个X光片并不能提供足够的证据支撑她做准确的判断。于是我也搞不懂,到底拔牙还是根管是医生抛给我妈的包袱还是我妈自己给自己出的难题。我妈说她的牙齿很多都不是蛀牙导致坏掉的,通常是因为突然咬了什么硬物,然后就裂了,然后就没了一块,或者像这一次这样裂了。小裂冷热酸甜不适的时候就去找医生处理,我感觉搞个什么粘合剂堵住那条缝估计感觉就会好很多,如果那些东西又掉了又裂了更多了,在你还没形成非常严重的牙痛之前,进行根管治疗那么我觉得也会大概率降低那个牙产生牙痛的概率。但现在说什么都太迟了,问题只是我妈的牙怎么会变得那么脆。

我妈在纠结附带就变成了我也在纠结,于是我也去搜索,看各种各样的图片,看各种各样的博客,看各种各样的科普。最终我得出的结论是:我妈现在的这个影像资料并不足以支撑得出一个确切的治疗方案,所以我感觉她应该换个医生或者换个医院,再拍个片子。

以前都是我有什么问题就打电话找我妈,现在已经反过来了。

沉迷塔防的乐趣:推荐Kingdom Rush系列游戏

2025年4月28日 20:41

作为一名开发者,我下班后除了写写代码、折腾技术,也喜欢通过游戏放松一下。塔防类游戏是我的最爱,尤其 Ironhide Game Studio(铁皮) 的 Kingdom Rush 系。这系列塔防游戏以扎实的玩法、精致的设计和恰到好处的挑战性,俘获了无数玩家的心。今天,我想向大家安利这个系列,希望你也能爱上它的独特魅力!

Kingdom Rush 系列简介

We make the games we'd love to play!

Steam 直达

Kingdom Rush 系列始于 2011 年的 Flash 游戏《Kingdom Rush》(早期我记得叫 皇家守卫军, 现在普遍翻译为 王国保卫战),随后推出了多款续作,覆盖 PC、移动端(iOS/Android)和主机平台,核心玩法保持一致,同时不断创新。目前包括以为五代作品(衍生品不算):

-《Kingdom Rush》(2011):初代经典,奠定系列基础。
-《Kingdom Rush: 前线》(2013):地图更复杂,敌人多样。
-《Kingdom Rush: 起源》(2014):优化塔升级,精灵主题, 节奏感比较好。
-《Kingdom Rush: 复仇》(2018):扮演反派,暗黑风格暗黑风格搭配创新塔种, 我最推荐。
-《Kingdom Rush 5: 联盟》(2024):双英雄机制,通关难度适中,兼顾新老玩家。

游戏设定在一个奇幻世界,玩家扮演指挥官,通过建造防御塔、操控英雄和使用魔法,抵御兽人、巨魔、恶魔等多样化敌人的进攻。核心玩法直观易上手:沿固定路线部署防御塔,合理分配资源,阻挡敌人前进。防御塔分为弓箭塔、兵塔、魔法塔和炮塔四类,每种塔可升级并解锁独特技能,如弓箭塔的连发箭、魔法塔的闪电链,策略性极强。
此外,系列引入了英雄系统,每位英雄拥有独特技能,例如弓箭手擅长远程狙击,骑士适合近战肉搏。玩家需操控英雄移动,堵截漏网敌人或支援薄弱防线。魔法技能(如陨石雨、援军召唤)则为战斗增添变数,关键时刻往往能逆转局势。特别值得一提的是,《复仇》的凤凰能喷射烈焰清场,《联盟》的双龙组合则带来史诗级输出,令人印象深刻。

为什么推荐 Kingdom Rush?

Kingdom Rush 系列由* Ironhide Studio* 精心打造,品质始终如一。以下是我推荐它的几大理由:

难度平衡,适合各水平玩家

关卡设计用心,普通模式新手友好,挑战模式(如老兵模式,即高难度关卡)则满足硬核玩家。敌人波次与资源分配恰到好处,既不无脑也不虐心。

高可玩性,玩法丰富多样

每作包含十余主线关卡,外加挑战关和隐藏关,内容充实。防御塔与英雄的多样组合,让每关都有新鲜玩法,重复游玩也不乏味。

碎片时间友好,单机体验纯粹

游戏无需联网,随时暂停,适合忙碌的玩家抽空玩一把。单机设计无内购压力,带来纯粹的游戏乐趣。

性价比高,物超所值

游戏在 Steam 和移动端定价多在几十元,经常打折。DLC 内容丰富,诚意十足,堪称塔防游戏的良心之作。

我的个人体验

高中时,我在 4399 平台接触到初代 Kingdom Rush,被它精致的画面和紧凑的节奏深深吸引。熬夜尝试不同防御塔组合,解锁隐藏关卡的成就感让我乐此不疲。后来,系列续作不断推出,我始终保持热情。2024 年 Kingdom Rush 5: 联盟 发布后,我迫不及待挑战老兵模式。双英雄机制让战斗更灵活,但也略微降低了通关难度。相比之下,我更偏爱《复仇》的暗黑风格和高难度设计,每次通关都充满成就感,尽管偶尔会被棘手的关卡“虐”得抓狂。

写在最后

Kingdom Rush 系列适合各类型玩家,无论是喜欢策略的硬核玩家,还是想休闲娱乐的轻度玩家,都能找到乐趣。作为技术人,我欣赏它在关卡设计和技能平衡上的用心。如果你喜欢塔防,或想找款轻松耐玩的单机游戏,不妨试试 Kingdom Rush。一旦上手,可能就停不下来!


只需一张图, AI就能拍大片: Pollo引爆短视频创作革命

2025年4月28日 20:14

AI进化迭代的速度太快了: AI视频工具Pollo (一张图片就能生成5秒公主抱/法式接吻等视频)

在AI技术飞速演进的今天,新一代视频生成工具Pollo横空出世,再次刷新了人们对AI创造力的认知。只需上传一张图片,Pollo便能生成5秒左右的动态视频,无论是充满浪漫氛围的法式接吻,还是童话般的公主抱画面,都能精准呈现,细节生动,情感自然。

相比以往动辄需要多张图片、复杂提示词、甚至训练模型的生成方式,Pollo的操作几乎简单到极致,大大降低了内容创作的门槛。这种从”静态到动态”的极速转化,不仅体现了AI在理解视觉信息和动作逻辑方面的重大突破,也预示着AI内容生产将进入一个全新的加速阶段。

回顾过去一年,AI从文生图、图生图到文生视频、图生视频的进步节奏几乎是按月计算的。Pollo的出现,标志着图生视频领域迈入了“即拍即生”的时代——未来个人创作者、小团队乃至普通用户,都有机会像专业影视团队一样快速制作高质量的短片内容。

AI的进化,远比我们想象中还要快。也许在不久的将来,”一念成片”、”一想成电影”不再是幻想,而是每个人指尖的日常。

Pollo AI视频制作 (持续更新)

PolloAI视频工具可以制作多种AI视频,只需要一段话或者一两张图片。注册后有100个积点,可以免费用10次,每天还可以打卡获得积分,感觉免费版就够用了。

pollo-ai-daily-checkin 只需一张图, AI就能拍大片: Pollo引爆短视频创作革命 AIGC-视频 人工智能 (AI) 在线工具 小技巧 视频 资讯 软件

Pollo AI视频生成工具:每天可以打卡获得免费积分。

pollo-ai-plan-prices 只需一张图, AI就能拍大片: Pollo引爆短视频创作革命 AIGC-视频 人工智能 (AI) 在线工具 小技巧 视频 资讯 软件

Pollo AI视频生成工具:付费版的价格

pollo-ai-video-tool-features 只需一张图, AI就能拍大片: Pollo引爆短视频创作革命 AIGC-视频 人工智能 (AI) 在线工具 小技巧 视频 资讯 软件

Pollo AI视频制作工具:短视频的利器,可以图生视频,文生视频,也可以在现有的视频丰添加AI效果。

公主抱 Bridal Carry

我媳妇很重,现实中我真抱不动,更不用说来一个公主抱了。

视频:油管/Youtube | B站/小破站 | 微博视频 | 西瓜视频 | 微信视频号 | X/推特 | 小红书 | Facebook

法式接吻 French Kiss – AI可以拿来喂狗粮

和媳妇来个法式接吻,秀个恩爱

视频:油管/Youtube | B站/小破站 | 微博视频 | 西瓜视频 | 微信视频号 | X/推特 | 小红书 | Facebook

也可以把ChatGPT生成的Ghibli动画图片拿来用!

也支持在Ghibli动画图上二次创作。

我媳妇说:生成视频不清楚,很模糊。确实是,感觉之后AI Agent会互相协作,视频生成后可以让AI再变高清4K无码之类的。未来可能真的要来了,听说2027年就能全面进入AGI时代,到时候平面动画、设计师、视频剪辑师、程序员、律师、医生等职业需求可能要大幅度减少了,被社会淘汰的会是那些不懂得用AI工具的人。

视频模糊变清楚

这个工具里也有视频变清楚的功能,选择了一个4k,除了生成的视频文件确实变大了一些,效果并不是感觉特别明显(当然可能确实有点效果)

和媳妇高清版本4k的法式接吻 French Kiss in 4k

Pollo立马注册,上传一张照片就能生成AI视频!

AI 图片/照片/视频 工具分享/小技巧

英文:AI Video Tool: Pollo.AI (AI Scales Fast!)

本文一共 1096 个汉字, 你数一下对不对.
只需一张图, AI就能拍大片: Pollo引爆短视频创作革命. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 只需一张图, AI就能拍大片: Pollo引爆短视频创作革命 AIGC-视频 人工智能 (AI) 在线工具 小技巧 视频 资讯 软件
The post 只需一张图, AI就能拍大片: Pollo引爆短视频创作革命 first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 个人网站Adsense广告申请通过: 需要最少15篇文章 我的个人网站 zhihua-lai.com 本月通过了 Adsense 审核,终于可以再次放置广告,赚些零花钱了。 其实,最初 Adsense 账户通过审核后就能直接放广告,但后来规则变得严格了。如果一个网站长时间没有放置任何 Adsense 广告代码,账户资格会被撤销。重新启用时,需要进行单独审核。如今,在 Google Adsense 中新增一个域名,也必须通过审核后才能投放广告。 为了让我的网站通过审核,我尝试了几次,但总是被拒,原因之一是必须要有足够的内容支持。例如,以前我做的工具网站 SlowAPI.com...
  2. 特朗普加关税的公式竟然是EXCEL里弄的? 这两天中美关税大战越演越烈,据说,特朗普加关税的计算方式竟然是直接在EXCEL电子表格里弄的,具体如下: 其中 I 是 Import,进口;E 是 Export 出口。 优美又实用的公式家族又添新成员 勾股定理: 欧拉恒等式: 牛顿运动定律: 爱因斯坦质能等价公式: 特朗普的“互惠关税”公式:,其中 I...
  3. 新的旅途 – 离别总是伤感的, 离开了一起创业的公司 2周前, 正式离开了一起创业的公司, 这公司是我博士毕业后的第一份正式工作, 待了8年多了, 离别总是伤感的. 我是9月初提的离职, 三个月 Notice Period, 最后的几周交接完工作确实没有什么压力了. 11月30号, 在公司最后一天, 公司有个习惯, 对于 Good...
  4. Minuet in C – 小步舞曲C Posted Youtube – 油管地址 孩子弹琴的时候最帅了. 我现在成了我儿子的粉丝了. Eric (Aged 6) is playing “Minuet in C” when...
  5. 上了年纪痛风脚崴了的惨痛经历(尿酸过高) 痛风是一种疼痛性关节炎, 当血液中的尿酸水平高, 导致晶体形成并积聚在关节内或关节周围, 就会发生痛风. 当人体分解一种叫做嘌呤的化学物质时, 就会产生尿酸. 嘌呤自然存在于您的身体中, 也存在于某些食物中. 尿酸通过尿液从体内排出. 上两周, 和媳妇吵架, 然后就自己一人睡, 有一天起床后脚踝就开始疼了, 然后明显比左脚肿了. 我刚开始就以为是睡觉的时候不小心姿势不对,...
  6. 今晚可能是英国倒数第三次冬令时时间调整 来英国生活过的人都知道 英国有一个很有意思的夏令时和冬令时时间调整. 夏令时是每年3月份的最后一个星期天凌晨会暴力的把时间往后调整1个小时, 也就是1点的时候很神奇的时间会自动变成2点. 冬令时是相反, 在每年的十月份最后一个周日凌晨暴力的把时间往前调整一个小时, 也就是2点神奇的变成1点. 现在大多数电子设备都能自动调整时间了, 比如你的智能手机和电脑. 但是传统的一些钟表, 还需要人为的调整时间. 夏令时 (Daylight Saving Time)调整的那一天,...
  7. 优衣库 感觉像炒作 这几天 这个在北京三里屯 ‘优衣库’ 试衣间自拍的视频真的很火, 男女主角均被人肉. 不可否认 这个效果还真的不错 因为我之前根本不知道 “优衣库” 是干嘛的 很刺激 在试衣间XXOO是多么爽的事情 女主角 95后妹子 长相甜美....
  8. 因为一个 try catch 好几天优秀点赞程序挂掉了我却以为是节点的问题 YY银行有四个点赞程序, 分别跑于四台服务器上, 它们是: 股东点赞(代理给 @justyy ) 自己的号 足球队 优秀作者(排名前30, 还有跟随点赞) 这几天我就发现, 有些赞没有给出, 我还以为是节点的原因, 因为查看记录, 发现是...

CloudFlare CDNJS:免费加速你的前端资源

2025年5月14日 23:22

我们前面介绍了 CloudFlare 的 R2 服务:Cloudflare R2 对象存储白嫖指南:10G存储+免流量费,打造免费图床,其实 CloudFlare 还有另外一个我们使用比较多的服务,就是 CDNJS 服务。

什么是 CDNJS?

CDNJS 是 Cloudflare 维护的一个免费开源 CDN 服务,专门托管热门的前端库(如 jQuery、React、Vue、Font Awesome 等),开发者只需通过简单的链接引用,就能让全球用户快速加载这些资源,无需自己部署服务器。

它有如下的核心优势:

✅ ​全球加速:依托 Cloudflare 的全球 CDN 网络,资源加载更快。
✅ ​自动同步:与 npm/GitHub 同步,确保使用最新版本。
​完全免费:零成本使用,无需担心带宽费用。
✅ ​广泛兼容:支持传统 JS、ES Modules、WASM 等多种格式。

CDNJS 的发展历程

CDNJS 最初是由 ​Thomas Davis​(前端开发者,当时就职于 Twitter)于 ​2011 年 创建,并联合开源社区共同维护,初期只是托管几十个热门库。

当初发起这个库的最大原因就是为了解决开发者直接托管第三方库(如 jQuery)的痛点:

  • 带宽成本高:小团队或个人开发者自建 CDN 成本高昂。
  • 更新延迟:手动下载和部署库版本效率低下。
  • 全球化需求:当时已有的 CDN(如 Google Hosted Libraries)覆盖节点有限。

2014 年接手 CDNJS 的服务器和网络基础设施,并提供了企业级基础设施和全球 CDN 节点支持。

2016 年引入自动化 npm/GitHub 同步,大幅提升效率。

2020 年开始支持现代 Web 技术(如 WASM、ES Modules)。

为什么需要 CDNJS?

自托管 vs. CDNJS

对比项自托管CDNJS
加载速度依赖自身服务器带宽全球 CDN 加速
维护成本需手动更新版本自动同步最新版
缓存命中率仅限自身用户全球共享缓存,命中率更高
可用性服务器宕机=资源不可用高可用性,99.99% SLA

适用场景

  • 个人博客、小型网站(节省带宽成本)
  • 企业级应用(提升全球访问速度)
  • WordPress 等 CMS(优化前端性能)

如何使用 CDNJS

在 HTML 中直接引用 CDNJS 链接即可:

<!-- 加载 jQuery -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>

<!-- 加载 Font Awesome CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" />

如要增强安全性,可以使用 ​SRI(Subresource Integrity)​ 防止资源被篡改:

<script 
  src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"
  integrity="sha256-kmHvs0M+1Qz9wuZOJ8E6OE2bM4S4n2GeXJ6X5+5ow="
  crossorigin="anonymous"></script>

由于 CloudFlare 在国内没有加速节点,国内访问可能会有些慢,所以推荐一些国内的 cdnjs 的镜像服务:

服务商特点延迟(国内/国外)
CloudFlare
https://cdnjs.cloudflare.com
✅ 全球加速
⚠️ 国内速度较慢
528 ms / 4 ms
又拍云 CDN
https://s4.zstatic.net
✅ 镜像自 Cloudflare CDNJS
✅ 库齐全,国内速度快
30 ms / 8 ms
字节跳动 CDN
https://cdn.bytedance.com
✅ 速度快企业级稳定性
⚠️ 但库较少,仅 JS 无 CSS 库
27 ms / 216 ms
360 前端静态资源库
https://lib.baomitu.com
⚠️ 更新不太及时
⚠️ 库较少
13 ms / 3 ms
SM.MS
https://cdnjs.loli.net/ajax/libs
✅ 镜像自 Cloudflare CDNJS
⚠️ 个人开发者
160 ms / 8 ms
7ED
https://use.sevencdn.com
✅ 镜像自 Cloudflare CDNJS
⚠️ 个人开发者
33 ms / 180 ms

如果你使用的是 WordPress 博客,那么 #WPJAM Basic# 插件也提供了一个前端公共库,让你一键切换,在「WPJAM」-「优化设置」-「增强优化」:

目前已经内置了下面这几家:

cdnjs.cloudflare.com
s4.zstatic.net
cdnjs.snrat.com
lib.baomitu.com
cdnjs.loli.net
use.sevencdn.com

根据上面的推荐,国内最佳可能是 s4.zstatic.net,具体还是需要你自己切换和体验。

CDNJS 总结

CDNJS 是前端开发者的利器,能显著提升资源加载速度并降低维护成本。

  • 全球用户 → 直接使用 cdnjs.cloudflare.com
  • 国内优化 → 切换至 s4.zstatic.net
  • WordPress → 通过 WPJAM Basic 插件一键配置

Don't make Google sell Chrome

2025年4月28日 14:00
The web will be far worse off if Google is forced to sell Chrome, even if it's to atone for legitimate ad-market monopoly abuses. Which mean we'll all be worse off as the web would lose ground to actual monopoly platforms, like the iOS App Store and Google's own Play Store.

First, Chrome won the browser war fair and square by building a better surfboard for the internet. This wasn't some opportune acquisition. This was the result of grand investments, great technical prowess, and markets doing what they're supposed to do: rewarding the best. Besides, we have a million alternatives. Firefox still exists, so does Safari,  so does the billion Chromium-based browsers like Brave and Edge. And we finally even have new engines on the way with the Ladybird browser

Look, Google's trillion-dollar business depends on a thriving web that can be searched by Google.com, that can be plastered in AdSense, and that now can feed the wisdom of AI. Thus, Google's incredible work to further the web isn't an act of charity, it's of economic self-interest, and that's why it works. Capitalism doesn't run on benevolence, but incentives.

We want an 800-pound gorilla in the web's corner! Because Apple would love nothing better (despite the admirable work to keep up with Chrome by Team Safari) to see the web's capacity as an application platform diminished. As would every other owner of a proprietary application platform. Microsoft fought the web tooth and nail back in the 90s because they knew that a free, open application platform would undermine lock-in — and it did!

But the vitality of that free and open application platform depends on constant development. If the web stagnates, other platforms will gain. But with Team Chrome pushing the web forward in a million ways — be it import maps, nested CSS, web push, etc. — is therefore essential.

This is a classic wealth vs. riches mistake. Lawyers see Chrome as valuable in a moment's snapshot, but the value is all in the wealth that continued investment brings. A Chrome left to languish with half the investment will evaporate as quickly as a lottery winner's riches. Wealth requires maintenance to endure.

Google should not get away with rigging the online ad market, but forcing it to sell Chrome will do great damage to the web.

不断探索

2025年4月28日 09:42

我就是这么一个很奇怪的人。或许动一下嘴皮子我就可以把某些事交给别人干,或者是我出一点点钱,我也可以叫别人把事情做了,但我却通常会选择从零开始,自己把那个问题解决掉。当然也会有一些地方,我无论如何是不会自己去动的,比如涉及水电。其它东西基本上可以这么说,我都干过了。

有些人习惯性依赖别人,而我是习惯非不得已不会求人。不求人这个习惯,大概是跟我妈学的。小时候在我心目中,我妈就是那种没有什么事干不好的人,而我爸是那种,可能他干了,但那个真不好。

因为有不求人的习惯,所以在不知不觉中我就养成了各种自学琢磨纠结。用贬义词去形容就是老是在那里钻牛角尖,用褒义词去形容就是老是在那里精益求精。具体如何评价就看你的主观觉得我做这件事有没有意义有没有必要。很多时候我的那些爱好在我妈眼里都是没有意义且没有必要的。实际上在我开始做那些事情的时候,有没有意义有没有必要我都没有考虑过,我只是觉得我要做、我想做,我要竭尽全力把那做好,无论花费多少精力、无论花费多少时间,无论为此我要学习多少东西。虽然可能过程很挣扎,但实际上也挺刺激有趣的。

人的一生那么长,终生学习是必须的,从来没有一个你之前多少年学到的东西足够你用一辈子的说法。被不被超越我倒无所谓,有时甚至觉得被超越了我也毫不知情,但是如果现在明明可以有某些方法可以让自己更舒服更便捷,为什么我不去掌握那个方法呢?

之所以要选择自己要学会那个东西,而不是找人来帮忙。因为我觉得万一以后还会遇到类似的事情呢?就因为一点点的参数改变,然后我又得去求别人?如果我知道了其中的原理,如果我知道了所有来龙去脉,掌握了那个技巧和方法,我以后就可以非常容易应对这种小变化。很多时候我觉得那个东西并没有发生根本性的改变,如果什么都不懂,只求结果,哪怕一点参数上的调整也会让你翻车。

人的一生很长,也可以理解为很短,我不可能掌握所有东西,所以我也就只能在某些点上开花,至于这些点是怎么被我选中的,我觉得到现在为止,都是一个未解之谜。暂时我还没有发现他们之间有明确的关联性。但非常有可能这种没有找到规律是因为我当局者迷,如果有个局外人,他很透彻了解我,估计他能说出我这些点的关联性。关联性是什么不重要,因为我没想过要预测下一个开花的点到底在哪里。

人都活到了这种年纪,顺其自然就好,我最想做到的就是无论我遇到什么事,我都可以用我的套路去应对。说白了就是把我过去的那些经验升华到哲学或者原理的程度。我可以以不变应万遍。说起来很玄妙,但到底行不行,也就只有遇事的时候才能验证了。

我包里的工具已经不少,但那是有价值的玩意还是纯粹只是个会老化崩掉的塑料仿制品呢?

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

2025年4月28日 10:22

前言

weekly_review_93_cover

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

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

婚礼纪录片

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

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

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

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

20090404043100-4

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

婚育是一场巨大的

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

用结婚和生育养育这些

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

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

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

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

这类虚无的难题的困境。

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

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

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

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

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

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

失落的电影院

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

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

bigao_cinema

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

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

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

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

个人生活剪影

捏捏与饭饭

nienie_20250428

fanfan_20250428

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

有趣的事与物

设备

desktop_setup_20250428

nuphy_kick75

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

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

输入

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

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

收藏

文章

视频

电影

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

剧集

在群晖上使用 Docker 部署 Proxmox Backup Server

2025年4月27日 20:45

在群晖上使用 Docker 部署 Proxmox Backup Server

Proxmox Backup Server(后续简称 PBS) 是 PVE 容器、虚拟机的备份解决方案,支持增量、重复数据消除备份,可以节省存储空间,同时支持加密和完整性校验。

PBS 官方提供了 iso 格式的镜像,同时社区也有开源的 Docker 镜像的部署方式,为了在群晖等 NAS 上部署方便,本文使用 Docker 的方式进行部署,项目地址:https://github.com/ayufan/pve-backup-server-dockerfiles

镜像:

  • ayufan/proxmox-backup-server:latest
  • ccr.ccs.tencentyun.com/k7scn/proxmox-backup-server:latest (国内镜像)

部署 PBS

使用 Docker 或者 Docker Compose 方式部署都可以。方便起见,统一使用 docker compose 方式部署, 不管群晖还是飞牛都适用。

安装配置 PBS

参加官方的 compose 示例,可以配置如下:

  • docker-compose.yaml
services:
  pve-backup-server:
    image: ayufan/proxmox-backup-server:latest
    # image: ccr.ccs.tencentyun.com/k7scn/proxmox-backup-server:latest
    container_name: pbs
    ports:
      - "8007:8007"
    volumes:
      - /data/pve/pbs/etc:/etc/proxmox-backup
      - /data/pve/pbs/log:/var/log/proxmox-backup
      - /data/pve/pbs//lib:/var/lib/proxmox-backup
      - /data/pve/pbs/data:/backups
    tmpfs:
      - /run
    restart: always

唯一需要关注的是

  • /data/pve/pbs/data:/backups 存储你的备份数据的,所属目录空间需要大一些

配置 PBS

在启动容器后,访问 https://<ip>:8007/ 端口即可进行登录,默认的用户名是 admin,密码是 pbspbs,选择 Proxmox Backup authentication server 进行登录,可把语言切换成中文,证书问题可忽略

配置备份存储

配置存储路径

首次登录是没有配置存储的,在 数据存储中添加数据存储,将刚才映射的 /backups 目录作为存储路径

配置用户权限

默认情况下,新用户和 API 令牌没有任何权限。给用于备份的 admin 用户添加备份路径的访问权限

获取 PBS 指纹信息

指纹用于在 PVE 中添加备份时进行认证

在 PBS 仪表盘里显示指纹备用

配置 PVE

在 PVE 的数据中心-存储中选择添加 Proxmox Backup Server,输入认证信息和指纹;Datastore 为 Proxmox Backup Server 的数据存储的名称,如 local, 相关参数都是上面步骤配置的

验证备份是否可用

在 PVE 的数据中心-备份中添加备份计划,按需添加,添加完成后选择现在运行即可开始备份

在 PBS 处验证看是否有备份数据

End

到这里 PVE 系列教程结束了,新买的杜甫应该算折腾好了,趋向于稳定了。后面会陆续写些之前工作积攒的一些小技巧,吐槽一下 Caddy 新版本 libdns 变更真是一个特别大的破坏性更新。


我来过

2025年4月27日 08:51

我是谁?

摔迷之家曾经的图片版版主。

我从哪里来?

我也不知道,为什么我会找到摔迷之家,反正我是2010年8月注册的。

我做过什么?

正如前面所说,我是图片版的版主,我做得最多的事情就是贴图,说白了就是WWE的搬运工。Raw、SmackDown、PPV是一定会有的,至于其它我有没有贴,我居然已经不记得了。我没有把图片下载回来再上传,因为这样太耗费空间了。我直接人肉获取了他们的图片链接,然后贴到我们的论坛。除了贴图,我做得最坚持的事情就是从2011年1月到2014年4月做WWE摔跤统计,就是统计每场比赛都有什么人,持续时间是多少等等。每周都有摔角时间统计报告,连续三年的年末都有年终统计盘点。我也会发一些比赛的观后感,但那个东西在我一开始发的时候被大家觉得我是一个花痴。但后来我用实际行动证明,我是一个有技术含量的花痴。我去了WWE头两年来中国的商演。

我为什么会成为毕业生?

具体原因懂的人都懂,不懂的人没必要一定知道为什么。比较好理解的方面是人生到达了一定的阶段就要更进一步。人的精力有限,我不可能把时间都放在这里,我还要去做其它的事。渐渐步出摔迷之家后,我几乎把之前用在这里的时间和精力全部都用在跑步上,用在运动上。但新冠疫情的三年,几乎把所有的努力都化为有。起码现在我又重新开始了,虽然已经远远不如年轻的时候那么自如。

我在这里得到了什么?

我认识了一帮兄弟姐妹。为了同样的爱好,我们会互相竭尽全力给予帮助,是那种愿意为别人两肋插刀的程度。因为我们都年轻,我们都喜欢。我不是计算机专业的,但是为了能提取到WWE的图片链接,我自学了正则啊,用PHP写了个网站,为的就是可以秒抓图片,而且我能抓,我的伙伴也行。在做摔角统计之前,我不知道这个统计用来干什么,要统计到什么程度。外国的某些网站数据启发了我,让我觉得有必要认真对待这件事情,但或许你会说这只是剧情娱乐的一部分,何必太认真。但我觉得,只有让自己完全的理性,才不会过于入戏。因为喜欢摔角这个东西,所以我买了很多人偶,以至于自己都算不清到底有多少个。现在也不记得到底塞在多少个箱子里了。还记得WWE来中国商演的第1年,我计划做一个LED的灯牌,但我又比较抠门,没想过在淘宝上定制,所以就只能从零开始,AutoCAD设计,然后不断请教有LED灯牌制作经验的朋友。最终,灯牌是成功的。大概也就只有年轻激情加疯狂才能干出当年的那件事。为了不让自己的观后感被认定为花痴,所以我不断学习摔角相关的各种知识,尤其是各种招式,我甚至都觉得自己成为了《天龙八部》里的王语嫣,虽然我耍不出那些招,但我全部都认得出来。我真做到了,但是不是对所有摔角手的招式都了如指掌而已。

感谢摔迷之家给了我一个让我可以竭尽全力投入精力和激情的场所。

Proxmox VE 添加监控

2025年4月26日 20:32

Proxmox VE 添加监控

PVE 支持添加 InfluxDB 或者 Graphite 作为指标数据的存储;在添加配置后,PVE 会主动上报相关监控数据,用于记录和监控 PVE 的状态

效果图

使用 InfluxDB 和 Grafana 对 PVE 进行监控,效果如图:

本文适用 8.x 版本,仅在 PVE8.3、PVE8.4 版本测试过。

安装配置 InfluxDB

当前 PVE 版本需要使用的 InfluxDB v2 版本,使用 Flux 语法进行查询。方便操作,本次仅提供 compose 部署方式,k8s 部署也是类似比较简单。

  • docker-compose.yaml
services:
  influxdb:
    image: bitnami/influxdb:2
     # image: ccr.ccs.tencentyun.com/k7scn/influxdb:2
    container_name: influxdb
    environment:
      - INFLUXDB_ADMIN_USER_PASSWORD=Cha3ie7gahthooyeech1xohgaeyax7Gi
      - INFLUXDB_ADMIN_USER_TOKEN=Eing5yaew6ujoo9ohd3saeH6neeshei3
      - INFLUXDB_USER_ORG=proxmox
      - INFLUXDB_USER_BUCKET=proxmox
      - INFLUXDB_USER=proxmox
      - INFLUXDB_USER_PASSWORD=Ao2eeGh7aDoh2eich0zeith6viyae4er
    volumes:
      - /data/influxdb:/bitnami/influxdb
    ports:
      - '8086:8086'
      - '8088:8088'
    restart: always

密码可以使用 pwgen 工具生成, 例如:

# 生成一个32位的随机密码
pwgen 32 1
  • INFLUXDB_ADMIN_USER_TOKEN 后续上报还是 grafana 获取监控数据都使用这个配置

由于我这个 influxdb 只有 PVE 使用,故初始化组织和 Bucket 都为 proxmox

配置 PVE

登录 PVE 后,PVE 的 服务器视图 下,选择数据中心 - 指标服务器,选择添加 InfluxDB,输入相关的配置;
协议选择 HTTP,组织添加 INFLUXDB_USER_ORG 配置的值,插槽添加 INFLUXDB_USER_BUCKET 配置的 Bucket, 令牌填写 INFLUXDB_ADMIN_USER_TOKEN 配置的 Token

添加后 PVE 就会将监控指标推送到 InfluxDB 的 Bucket 中了。

登录 InfluxDB 验证配置是否正确,使用 admin 账号密码登录

配置 Grafana

启动 Grafana

在上面的 docker-compose.yaml 的基础上,添加 grafana

grafana:
    image: bitnami/grafana:11
    # image: ccr.ccs.tencentyun.com/k7scn/grafana:11
    container_name: grafana
    ports:
      - '100.90.80.15:3000:3000'
    environment:
      - 'GF_SECURITY_ADMIN_PASSWORD=joh1AhDah9quah8ruteexaeloh1Ohyuc'
    volumes:
      - /data/grafana:/opt/bitnami/grafana/data
    restart: always

配置启动 grafana

docker compose pull
docker compose up -d

添加 InfluxDB 数据源

访问 http://ip:3000/connections/datasources/new, 使用 InfluDB 作为数据源

  1. Query Language 选择 Flux
  2. URL 填写 InfluxDB 的地址,如 http://100.90.80.15:8086
  3. Auth 下的配置不需要启用,默认启动 Basic auth,去掉勾选
  4. Custom HTTP Headers 添加一个新的配置,Header 名称为 Authorization, Value 为 Token+ 配置的 Token,如 Token Eing5yaew6ujoo9ohd3saeH6neeshei3(需注意 Token 和值中间有一个空格)
  5. OrganizationDefault Bucket 填写和上面配置的值一致就行,如果没变更填 proxmox
  6. 配置完成后,点击 Save and Test,如果提示成功则表示配置正确

添加 Grafana 图表

Grafana Dashboard 中搜索 proxmox,选择支持 Flux 查询语法的图表进行添加,如添加 Proxmox Flux,根据 ID 导入 Grafana 即可看到 PVE 的监控指标

这里推荐 ID 使用 15356

访问 http://100.90.80.15:3000/dashboard/import

导入 Dashboard 后效果如下:


外婆的家就是个变形金刚

2025年4月26日 08:36

小时候我觉得外婆的家就像一个变形金刚,什么都有,什么都齐全。为什么说那是变形金刚呢?因为那个屋子就只有10个平方。

厨房和厕所都是公共的。厨房在一个长条空间里,每户人都有自己炉头的位置,每户人都几乎有一个固定的水龙头。厕所里几乎没有私人的东西,在我的记忆之中,那个厕所永远都是挺恐怖的。灯光很恐怖,下水道很恐怖,墙上很恐怖。我也不知道为什么那个下水道会这么个设计法,可以这么说,那是一个明的下水道。地面的水从一个洞洞里流出去。水流的通道永远都是一个明渠。那个明渠有各种我觉得恶心的东西,甚至我还在那里见过新生的小老鼠。如果在厕所里面遇到蟑螂老鼠蜘蛛之类都很正常。那个公共的厨房,实际上在我记忆之中,我已经不记得屋顶是怎样的了,但我猜应该是黑色的。为什么这么说呢?因为那个时候大家不是烧柴就是烧煤,没有任何排风设施。如果一起煮饭,可能超过5个炉头同时在工作,可想而知,那个环境有多么的乌烟瘴气,有多么的热,有多么的呛,但同时,各家客户的饭菜都从那里飘香出来。现在仔细回想起来,外婆经常呆的那个地方,条件实在很恶劣。

为什么说外婆家是个变形金刚?从面积上算,那个房间就那么大。正常情况下,那里只能摆得下一桌,但是遇到某些特殊的日子,比如外公的生日,又或者是过年,家里一桌不够,那么他们就会把床板掀开,把里面的东西清理,在床的那个位置再摆一桌,如果两桌还不够,还能再开一桌小的给小朋友们。想想都觉得很不可思议,10个平方的区域,怎么能摆得下那么多呢?而且摆得下那么多意味着那么小小的空间里,可能有超过30个人。为什么那个床能轻易的掀开呢?因为实际上那就是在几张桥凳上面放床板。从现在人的眼光来看,那根本就不是一个正式的床,那只是一个临时搭建拼凑的东西,但实际上一直在我的心目中,那就是外婆家的床。小时候我跟表姐经常在床上蹦蹦跳跳,老是喜欢从床后面的八仙桌跳到床上。即便这么捣蛋,大人们从来没有担心过那个床会出现任何状况,因为他们对自己的搭建床非常的自信。

桥凳之间肯定会有很多地方,所以通常情况下,那里都塞满了各种各样的东西。几乎可以这么理解,那个床实际上是实心的。但那里到底有什么东西呢?我想不起来,我也没什么记忆,因为其实拆床的概率不太高,但我总觉得拆床的时候总能找出一些好玩的东西。比如有可能在里面翻出一些表哥表姐十几年前留下来的玩具。至于那个东西为什么会在那个地方,估计大人们也说不清了,反正他们只知道那些东西用不着,然后就塞里面去了。每次拆床,如果我在场的话,我都会觉得那是一个非常好的探索活动。拆床是让我快乐的,意味着很快晚上就有很多人过来吃饭,然后有很多小朋友一起玩。我只是个小孩,我当然开心,但估计外婆不是这么想的,因为这意味着她有非常多的工作要做,要准备那么多人的饭菜,而且允许她施展拳脚的地方,那个公共厨房又那么小。可想而知,在准备的时候,她可能会紧张、焦虑、脾气暴躁。我作为一个小孩,唯一能做的就是不打扰她。为了能在10个平方的小屋子里放下三桌,我们还要把可以移动的酸枝椅子都暂时搬到公共走廊上。对我来相说,家具的移动又给走廊增加了一个好玩的地方。热闹的宴席过后,绝大部分人都轰然散去,留下来收拾的通常只有外婆一个,或许她的女儿们也会帮忙,但外婆肯定是那个收拾的主心骨。我们这些小孩,只觉得快乐的日子过得太快,还没玩够就要分别了。

小时候的我从来没有把外婆家的小跟穷联系起来,因为我们旁边的那些街坊,屋子也不比我们好到哪里去。我们住在公租房。我们能住上公租房,外公外婆已经非常心满意足了,因为在那之前,他们没有过自己的家。

金窝银窝,不如自家的狗窝。现在我依然觉得那是我的家,那是一个给我留下了很多快乐回忆的地方。

花瓣里的火焰,转型中的鸣响

2025年4月25日 18:57

1974 年,那是一个春天,有一群士兵将鲜红的康乃馨插在枪口上。一场几乎不流血的革命,就此改变了一个国家的命运。这是属于葡萄牙的「春天的故事」。

十九世纪末,欧洲列强争相瓜分非洲大陆,葡萄牙虽国力衰退,却仍死死攥住安哥拉、莫桑比克等非洲殖民地。进入二十世纪后,葡萄牙政局动荡,1910 年共和革命后仍未稳定,1926 年军方再度政变夺权,安东尼奥·萨拉查这位经济学教授逐步崛起。他建立了「新国家」(Estado Novo)威权体制,将葡萄牙变为欧洲大陆威权统治的顽固堡垒,尽管整个国家表明和平静谧,内里却是暗流汹涌。

「新国家」号称致力经济繁荣民族强盛,实则专制极权、愚民统治。秘密警察成了悬在人们头上的「达摩克利斯之剑」,学者、记者缄默不言,教师、学生人人自危,言论和思想自由只存在于临睡前的呢喃或梦呓。

更使生活雪上加霜的是自 1961 年始,葡萄牙为控制非洲殖民地展开了一场毫无前景的远方战争。无数青年葬送异乡沙场,或干脆逃往法国、美国避难。人们越来越质疑,一场毫无意义的殖民战争,如何值得年轻人用生命去耗费?

1968 年 9 月,萨拉查在其夏季住所遭遇了一场严重意外——他坐的藤椅突然断裂,导致他重重摔倒在混凝土地面上,造成颅内出血。当时所有人,包括医生在内,都认为这位 79 岁的独裁者活不过秋天。时任葡萄牙总统阿梅里科·托马斯迅速任命马塞洛·卡埃塔诺为新总理。

然而,出人意料的是,萨拉查的病情有所好转。此时,他的亲信和新政府官员在两难中做出决定——这位前独裁者隐瞒真相。为了维持这一骗局,他们专门为萨拉查定制假报纸,伪造政府文件和会议记录,甚至安排忠实的前部长们定期「向他汇报工作」。萨拉查在完全不知情的情况下,继续「统治」着国家,直到 1970 年去世,始终以为自己仍然掌控着政权。

这一幕与袁世凯称帝前的情形颇为相似。袁世凯在窥视帝位时,同样被周围的人蓄意误导,被告知全国各地民众都热切盼望他登基为帝。他的儿子和幕僚们伪造报纸、假托民意,制造了一出出假象,让他相信称帝是天下归心。然而,一旦袁世凯真的称帝,却立即引发全国反对浪潮,最终不得不宣布取消帝制,黯然离世。

而卡埃塔诺接任总理后,确实试图进行有限改革,但为时已晚,殖民战争仍在继续,国内矛盾日益尖锐。他既不能完全延续萨拉查的强硬路线,又不敢彻底改革,结果是内外交困,最终引发了军方的不满。

普通民众在心灰意冷,军队中的不满情绪也在滋生。年轻军官们,许多曾在非洲殖民地服役,亲眼目睹了战争的残酷与无谓。他们秘密组建了「武装部队运动」(MFA),计划推翻独裁政权。其中,一位名叫奥特洛·萨拉瓦的上校扮演了关键角色,成为军队内部民主力量的核心人物。

1974 年 3 月,MFA 成员出版了一本名为《葡萄牙与未来》的书,公开批评政府政策。政府随即解除了参与此书的将军职务,却不料这一举动反而加速了革命进程,终于在 4 月 25 日,破晓而至。

那天,里斯本的清晨格外宁静。广播里,一首被禁的民谣《格兰多拉,维拉·莫雷纳》(Grândola, Vila Morena)轻声响起。对普通听众来说,这只是一首优美的歌曲;但对军中的变革者而言,这是约定好的行动信号——革命,正式开始。

军人们迅速行动,坦克开上街头,战略要地被一一占领。然而,令人惊奇的是,这并不是一场普通的军事政变。街头没有枪声,没有爆炸,没有流血冲突。相反,士兵们得到了民众的热烈欢迎。

此时,里斯本的花市正好在售卖康乃馨。一位花店的女孩,大胆地将一朵红色康乃馨插在了士兵的枪管上。这一举动如涟漪般扩散,很快,无数民众走上街头,将红色的康乃馨送给士兵,士兵则将花朵插在枪管上——枪口不再喷吐火焰,而是绽放鲜花。

就这样,一场本可能血腥的军事行动,因为人民的支持与军人的克制,成为了历史上少有的几乎不流血的革命。一个维持了 48 年的独裁政权,在不到 24 小时内被和平推翻。卡埃塔诺总理被捕,随后流亡巴西。一个由军人和文职人员组成的「国家救济委员会」接管了政权,承诺举行自由选举,建立真正的民主政体。

革命之后,葡萄牙迎来了翻天覆地的变化。葡萄牙国民首次拥有真正的普选权,言论自由得到了保障,新闻出版禁令被废除,结束了在非洲的殖民战争……然而,革命后的道路并非一帆风顺。在随后的两年间,葡萄牙经历了六个临时政府,政局动荡。左翼激进派与温和改革派之间的斗争日益激烈。1975 年,葡萄牙几乎陷入内战。所幸的是,最终温和派占据上风,确立了民主改革的方向。

1976 年举行的首次自由选举中,温和的社会党获胜,马里奥·苏亚雷斯成为民主葡萄牙的首位民选总理。国家也通过新宪法,确立民主共和制度。与此同时,葡萄牙结束了对非洲殖民地的统治,让这个昔日的海洋帝国得以将精力转向国内建设和融入欧洲共同体。

康乃馨革命为何意义非凡?因为它透过美丽的象征向全人类传递了一种极为罕见而宝贵的讯息:民主真正值得追求,正是因为它体现了对人权和自由的关怀,以及人类尊严的珍重。民主保障的不仅是选举权利,更是保障每个人能够自由表达其思想、不因言获罪、不因权力的随心所欲而受凌辱的尊严生活。

若无自由与民主,人们即使可以衣食无忧,却仍活在一种精神上的贫乏、恐惧与焦虑的环境中;而民主的制度建设,也需要一代又一代有觉悟、有勇气且愿意积极捍卫这些价值的人们努力才可巩固。

让我们把目光从亚欧大陆的最西端转向最东端。

半岛上的韩国,自光州民主化运动发轫,最终在 1987 年实现了宪政改革。然而,韩式民主似乎被某种「魔咒」所困扰——前总统或自杀,或入狱,青瓦台的光环下掩盖着难以摆脱的政治悲剧,民主的花朵在寒风中摇曳不定。

至于那「弹丸之地」的台湾,虽然有着「野百合学运」、「美丽岛事件」等社会运动,虽然有着政治精英的改革决策,虽然从 1987 年解除戒严,到党禁报禁的解除,再到首次全民普选和政党轮替,经历了一场相对和平的民主化进程——却仍难逃各种冠以「民主」之名的闹剧。

而 1989 年的广场上,莘莘学子和民众高举民主、自由、反腐败的旗帜,期望国家能够深化民主宪政。这场声势浩大的运动,按照后来的叙事,促成了更加深化的市场经济体制改革,也最终走向了高质量的全过程人民民主,不仅成为独树一帜的标杆,也为全球民主的发展、提升指明了方向。多么美妙的叙事!

Valeu a pena? Tudo vale a pena. Se a alma não é pequena.

Fernando Pessoa

葡萄牙诗人费尔南多·佩索阿说过:「一切都值得做,如果灵魂不渺小。」民主这场事业,从来都需要无数勇敢者代代相传,因为专制的诱惑从未消退过,而尊严和自由之花又是如此柔弱脆嫩,需要每一代人的悉心呵护。

从 1976 年以来,每年 4 月 25 日,葡萄牙都会庆祝「自由日」,纪念那一天花瓣轻巧的重量如何终结了坚硬的枪炮统治。肩抗自由大旗的人,必然懂得民主绝非轻易得手。康乃馨不只是往事的回忆,更是对专制永远保持警惕的号角。

期许在其他尚在黑夜挣扎的国度里,人们能够记起这一朵小花——枪炮最终都要为生命与民主服务;再黑暗的专制也无法永葆统治,因为追求自由的灵魂从未熄灭过希望之光。

愿长记此花的寓意,共勉之。


本文初稿在 Tana 上完成,这是一款通过将 AI 驱动的结构化数据库与流畅的大纲列表相结合的笔记软件,重新定义了现代知识管理,使用户能够无缝地组织相互关联的想法,同时保持自由形式思考的灵活性。

❌
❌