普通视图

Plog 3

2025年11月26日 22:24

不定期更新。

女友的早饭
目前最喜欢的巧克力棒!!!
用老笔记本做 Reserved Sign 真是挺酷的!
热红酒还是那么好喝,晕乎乎。
新玩具,不怕走夜路了.
Ottolenghi,太喜欢这家餐厅了!
买了 Ottolenghi 的冰淇淋,味道层次很丰富,但我和女友还是更喜欢 waitrose 的 No.1 Colombian Coffee Ice Cream,太美味!
摸鱼收拾收拾衣柜
要圣诞节啦!
Psychological photography
喜欢这款唇膏!
纯天然蜂蜡植物油配方,加peppermint精油,湿润和一点点凉爽感刺激同在。
感恩节就带这道菜去老板家了!
做了一套自己的表情包。
Indigo 的夜间拍摄效果是真不错呀!
常用软件其实就这么多。
新耳机到啦,
CMF Headphones Pro!
家门口的树倒了…
喜欢这套漫画
最近常听的四张专辑。

下期见!

Plog 2

2025年11月3日 00:10

不定期更新。


上海的锦绣文化公园建的可真好,舒服~
「发条鸭」次卡健身房,场馆内私教禁止入内,大家都默默的锻炼。
上海龙华寺的咖啡果仁月饼可太香了! 工厂店排队短一些。
中秋快乐
问: 图中有几只猫?
又来都昌出差了,喜欢这个城市! 清晨,爬个山!
酷酷滴!

Fotografiska,贵是它唯一的缺点,布光太舒服了。
又回英国啦
第二次抱石,还是那么狼狈!
先练练这种扯线的网球!

歌单和专辑

2025年10月28日 12:13

以前跑步、开车时,习惯听播客。一边摄入信息,一边奔跑。那种假象的「高效」总让我误以为自己掌控了时间。久而久之,几乎忘了自己是个爱听音乐的人。

前阵子机缘巧合下买了台二手黑胶唱片机,重新体会到「听音乐」这件事的纯粹快乐。没有「下一首」按钮,唱针一落,便要顺着它的节奏走完一面。每次换面,都得起身、翻面、再重新放下唱针,听见轻微的「嗞——」声,然后音乐才重新响起。那种被迫的停顿,像一次深呼吸,让音乐重新拥有了时间的重量,也让浮躁的我慢下来。

那时,忽然意识到自己不知不觉很久没有听过一张完整的「专辑」。平日更多听的是「单曲」,最终又被算法拼成「歌单」。

听歌单时,我会很容易切歌,为了迎合那一刻的情绪。渐渐地,耐心变短,深度聆听的能力也在流失。专辑则不同,更接近艺术家的原始叙事逻辑。从第一首到最后一首,听众在音乐中建立起主题与风格的预期,进入一种连贯的心流。

有朋友形容,歌单倾向于功能性聆听,专辑则倾向于沉浸式聆听;一种用耳朵掠过,另一种用时间沉入。

有时我在想,也许我不是在听音乐,而是在被时间播放。


关联:篝火

我的 CSS 设置

2025年10月27日 18:35

《如果你想使用这套 WordPress 主题》,最近更新了博客的 CSS 设置,分享给有需要的朋友。

整体设计以文字为主,少装饰性元素。不用颜色引导,而用灰阶节奏和留白。

ChatGPT 辅助设计,有问题可以帮忙反馈在评论区!

以下是完整 CSS:

html,
body {
  font-family: "Noto Serif SC", "Source Han Serif SC", serif;
  font-weight: 400;
  line-height: 1.6;
  color: #222;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
  background-color: #fff;
  margin: 0;
  padding: 0;
}

/* ---------- 桌面基础版 ---------- */
.entry-content {
  max-width: 680px;
  margin: 0 auto;
  padding: 2rem 1rem 4rem;
  font-size: 1rem;
  line-height: 1.9;
  letter-spacing: 0.02em;
  color: #222;
  background-color: #fff;
  -webkit-font-smoothing: antialiased;
}

.entry-content p {
  margin: 1.2em 0;
  text-indent: 1.8em;
  word-break: break-word;
  overflow-wrap: break-word;
}

.entry-content h1 + p,
.entry-content h2 + p,
.entry-content h3 + p,
.entry-content h4 + p {
  text-indent: 0;
}

.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6 {
  font-family: "Noto Serif SC", "Source Han Serif SC", serif;
  font-weight: 500;
  line-height: 1.4;
  color: #000;
  letter-spacing: 0.01em;
  margin: 2.4em 0 1em;
  text-indent: 0;
}

.entry-content h1 {
  font-size: 1.6rem;
  text-align: center;
  line-height: 1.3;
  margin: 0 0 2rem;
  color: #000;
}

.entry-content h2 {
  font-size: 1.25rem;
  border-left: 3px solid #000;
  padding-left: 0.6em;
}

.entry-content h3 {
  font-size: 1.1rem;
  color: #444;
  border-left: 2px solid #aaa;
  padding-left: 0.6em;
}

.entry-content h4,
.entry-content h5,
.entry-content h6 {
  font-size: 1rem;
  color: #444;
  border-left: none;
  padding-left: 0;
  margin-top: 2em;
}

/* 链接 */
.entry-content a {
  color: #555;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  text-decoration-skip-ink: auto;
  transition: color 0.2s ease, text-underline-offset 0.2s ease;
  cursor: pointer;
  -webkit-tap-highlight-color: rgba(0,0,0,0.05);
}
.entry-content a:hover,
.entry-content a:focus-visible {
  color: #000;
  text-underline-offset: 4px;
  outline: none;
}
.entry-content a:focus-visible {
  background-color: rgba(0,0,0,0.03);
}

/* 列表 */
.entry-content ul,
.entry-content ol {
  margin: 1.2em 0 1.2em 1.8em;
  padding: 0;
  line-height: 1.8;
  color: #222;
}
.entry-content li {
  margin: 0.4em 0;
  padding-left: 0.3em;
  text-indent: 0;
  line-height: 1.8;
}

/* 引用块 */
.entry-content blockquote {
  margin: 2em 0;
  padding: 0.8em 1em;
  border-left: 3px solid #aaa;
  background-color: #fafafa;
  color: #444;
  font-size: 0.95rem;
  line-height: 1.7;
  letter-spacing: 0.01em;
}
.entry-content blockquote p {
  margin: 0.8em 0;
  text-indent: 0;
}
.entry-content blockquote p:last-child {
  margin-bottom: 0;
}

/* 行内代码 & 代码块 */
.entry-content code {
  font-family: "JetBrains Mono", "Fira Code", monospace;
  font-size: 0.9em;
  background-color: #f5f5f5;
  padding: 0.15em 0.4em;
  border-radius: 3px;
  color: #000;
}
.entry-content pre {
  font-family: "JetBrains Mono", "Fira Code", monospace;
  font-size: 0.9rem;
  line-height: 1.6;
  background-color: #f5f5f5;
  color: #000;
  padding: 1em;
  border-radius: 4px;
  overflow-x: auto;
  margin: 2em 0;
  border: 1px solid #e0e0e0;
  -webkit-overflow-scrolling: touch;
}

/* 图片与图注 */
.entry-content figure {
  margin: 2em auto;
  text-align: center;
  max-width: 100%;
}
.entry-content img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
  border-radius: 4px;
}
.entry-content figcaption {
  text-align: center;
  color: #666;
  font-size: 0.9em;
  line-height: 1.5;
  margin-top: 0.6em;
  letter-spacing: 0.02em;
}

/* 分隔线 */
.entry-content hr {
  border: 0;
  border-top: 1px solid #ddd;
  margin: 3rem auto;
  width: 60px;
}

/* 表格 */
.entry-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 2em 0;
  font-size: 0.95rem;
  line-height: 1.6;
}
.entry-content th,
.entry-content td {
  border: 1px solid #ddd;
  padding: 0.6em 0.8em;
  text-align: left;
  vertical-align: top;
}
.entry-content th {
  background-color: #fafafa;
  font-weight: 500;
  color: #000;
}

/* ---------------- 手机优化 ---------------- */
@media (max-width: 600px) {
  .entry-content {
    font-size: 1.1rem;
    line-height: 1.9;
    padding: 1.5rem 1.25rem 3rem; /* 左右加宽,让列表不贴边 */
    max-width: 100%;
  }

  .entry-content p {
    margin: 1em 0;
  }

  .entry-content h2,
  .entry-content h3,
  .entry-content h4 {
    margin: 1.8em 0 0.6em;
  }

  .entry-content h2 {
    border-left-width: 2px;
    padding-left: 0.5em;
    font-size: 1.2rem;
    line-height: 1.4;
  }

  .entry-content h3 {
    border-left-width: 2px;
    padding-left: 0.5em;
    font-size: 1.05rem;
    line-height: 1.45;
  }

  .entry-content blockquote {
    margin: 1.5em 0;
    padding: 0.8em;
    border-left-width: 2px;
    font-size: 0.95rem;
    line-height: 1.6;
  }

  .entry-content ul,
  .entry-content ol {
    margin-left: 2.2em;   /* 增大缩进,避免子弹点靠屏幕 */
    margin-right: 0.8em;  /* 给右侧留白 */
    padding-left: 0.6em;
  }

  .entry-content li {
    padding-left: 0.4em;
    line-height: 1.8;
  }

  .entry-content pre {
    padding: 0.8em;
    font-size: 0.9rem;
    border-radius: 3px;
  }

  .entry-content table {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .entry-content th,
  .entry-content td {
    white-space: nowrap;
    font-size: 0.9rem;
    line-height: 1.5;
  }

  .entry-content hr {
    margin: 1.8rem auto;
    width: 50px;
  }

  .entry-content a {
    padding: 0.1em 0.15em;
  }
}

/* ---------------- 平板优化 ---------------- */
@media (min-width: 600px) and (max-width: 1024px) {
  .entry-content {
    max-width: 640px;
    font-size: 1.075rem;
    line-height: 1.85;
    padding: 2rem 1.5rem 4rem;
  }

  .entry-content h2 {
    border-left-width: 2px;
    padding-left: 0.6em;
    font-size: 1.3rem;
    line-height: 1.4;
  }

  .entry-content h3 {
    border-left-width: 2px;
    border-left-color: #999;
    padding-left: 0.6em;
    font-size: 1.15rem;
    line-height: 1.45;
  }

  .entry-content blockquote {
    margin: 1.8em 0;
    padding: 1em;
    font-size: 0.95rem;
    line-height: 1.6;
  }

  .entry-content pre {
    font-size: 0.9rem;
    padding: 1em;
  }
}

超车

2025年10月25日 22:51

速度

在车流密集的市区或高速公路上,即便车速已超过限速(例如在 120km/h 的限速下,开到 130km/h 以上),许多驾驶者似乎依然热衷于寻找机会超车。

当道路开阔、车辆稀少时,大家的车速反而会不自觉地放慢,平均时速可能维持在 110km/h 左右。

节奏

车多时,驾驶更像是一场「节奏的较量」。

前方慢车、旁侧插队,哪怕只是一瞬的阻碍,也会让人感觉节奏被打乱。那股急于超车的冲动,其实并非出于「更快抵达」,而是一种对掌控感的追求——想要主导自己在车流中的节奏,不被他人左右。

可这种掌控的满足感转瞬即逝,因为前方总有另一辆挡路的车。节奏不断被打乱,于是重新加速,反复证明。

而当道路空旷、干扰消失,没有了参照物与竞争者,控制感回到手中。大脑很自然的切换到舒适节能的「省力巡航」模式。

我们总会高估自己对复杂系统(车流、职场、市场)的掌控力,于是用更激进行为换取片刻确定感。长期目标(安全抵达)被短期目标(立刻超车)挤出视野。

人一多、参照物一多,就容易被外部节奏牵着走,用短平快的动作找确定感,却忘了自己真正要去的方向与步幅。

解决办法不是「强忍情绪」,而是换一套评判标准:少看别人怎么开,多问自己要以什么节奏到。把节奏锚定在自身,路就会越开越顺。


关联:防御性驾驶驾驶我的车

251016 生活碎片

2025年10月16日 18:42

博客和博客

小红书时常给我推送「博客」相关内容,点开却发现多是「播客」。

试探的问了一个贴主,对方回复:输入法首选「博客」,图个方便。

这个答案还挺令我诧异,也好奇这两者的定义是何时开始逐渐模糊的。

它们确实读音相似,也都基于 RSS 订阅。

对我来说,他们间的区别可能在于:博客更像是「思考的产物」,而播客则是「思考的过程」。

博客写作,是作者经过思考、筛选和组织语言后才发布的「凝固」成品。文章面世时,思想已然定型。讨论是滞后的,在本体之外。

相比之下,播客呈现出一种「动态展开」的质感。它依靠对谈,伴随着即时的思考与反应:对话、停顿、语气、甚至犹豫。

因此,播客更贴近「思考的过程」,不完美但足够鲜活,有很强的陪伴感。它的魅力不在于观点和结论,而在于那种共思考、共感受的流动。

外国游客

近期回国了一趟,从瑞金医院到打浦桥日月光,步行 13 分钟左右(没进田子坊),路上就看到了两组韩国游客,三组欧美游客,和一组日本游客。

疫情前这边也没这么高浓度的外籍游客,免签和延长过境免签时间还是挺有用的。

田子坊确实适合外国游客的旅行习惯,散步,吃个酒吧餐,喝酒聊聊天。

金强和德元

高德扫街榜推出之后,金强牛肉面更火了,味道确实不错,推荐拌面+牛腱子肉+小菜,辣子很香。

德元在上海的分店比较多,朋友们的评价层次不齐,感觉是各店之间的品控有差异。我离龙阳路的比较近,汤底还是不错的,但辣子没有金强的香,牛肉也没有金强的好吃。

金强的汤面其实也没让我特别惊艳,但拌面和牛腱子肉是真的很不错。

哈喽单车

新款哈喽单车真不错,链条很润,蹬起来不费力,比我和女友在英国 100 多磅买的的二手自行车好骑。

缺点是新车就有很多歪车把,价格越来越贵。

辞未动心已至

2025年9月24日 19:34

在罗伯特·M·波西格的《禅与摩托车维修艺术》中,「良质」(Quality)是一个贯穿全书却难以定义的核心概念。它不是物理意义上的「质量」,也不是某种可测量的属性,而是一种「先于主体与客体,先于理性与感性」的整体体验。

有评论这样解释:「回想自己跟人说话,你是不是很自然地就可以把一句话说出来,而不是说了第一个字再去想第二个字,想完第二个到第三……良质就是你要说的那句话(或者这句话代表的那个意思),它先于主体的你和说出来的话(客体)而存在。」

良质像是一句话在说出口前就已经存在于心中——语言是将它逐步展开的过程。当然,这只是一个比喻;在波西格看来,良质还涵盖经验、直觉与价值感,而不仅仅是语言层面的先在语义。

以此为引子,本文想探讨人类语言和大模型(比如 ChatGPT)之间的差异。

差异

大模型的语言输出,本质上是概率建模,它只能在已有上下文的基础上预测下一个词。句子的意义,并非预先存在,而是在逐字推进中逐渐浮现、事后建构。

尽管借助注意力机制,模型能在输出中保持较高的「全局一致性」,从而在效果上模拟出具有意图的言语行为,但这种一致性更多是统计规律下的涌现现象,而非源于一个先在的、完整的表达意图。

相比之下,人类在开口说话之前,内心往往已有一个相对完整的意义轮廓。它可能是模糊的情感基调,也可能是清晰的逻辑结构,又或是某种希望传递的态度。大脑中的语义网络并行激活着场景、情绪、因果链条,而语言系统则将这一高维、并发的意向「投影」为线性的词句序列。

人类也会在言说中调整想法,甚至借由说话来厘清思维。但总体而言,我们的语言是从整体意向出发,向表达延展的过程。胡塞尔称之为「意向性」,柏格森称之为「直觉」,而波西格,则称其为「良质」。

驱动

人类的「整体性」往往带有价值判断和情感色彩。我们在表达前的「完整意向」,不仅是语义的,也是价值驱动的——潜意识中知道自己想要传达什么样的态度、建立什么样的关系、达成什么样的目标。

而 AI 的统计生成模式,虽然能够产生高度连贯的文本,但没有一个真正的「为什么要这样说」的内在驱动。

换句话说,目前 AI 的「内在驱动」并非自身生成,而是由人类外部补充。我们提出问题、设定方向、隐含价值期待,AI 则在概率的框架中展开回应。

那么,如果 AI 在功能表现上日益逼近人类,这种内在的价值驱动是否仍是不可或缺的?

倘若机器是「擅长执行的工具」,那么一个失去了良质感知的人,或许正悄然沦为「被工具化」的存在。

真正的价值,不仅在于把事情做对,更在于在行动之前,保有那一瞬的迟疑与自问:「这件事,为什么值得去做?」

正是这个追问,让语言成为意义的流露,而非词语的堆砌;也让我们在当下的技术狂潮中,仍与 AI 有所区别。

WordPress 插件 – 旅行地图 WP Travel Map

2025年9月2日 04:57

最近又做了一个极简风格的 WordPress 旅行地图插件,用于记录去过的地方。

展示页:https://anotherdayu.com/travelmap/ (近期更新调试中)

提醒:Mapbox 地图部分有合规风险,服务器在境内做过备案的博主谨慎使用,有关站风险!

功能特点

  • 通过短代码在任何页面显示地图
  • Excel 导入导出
  • 智能地点搜索
  • 多种地图类型,支持 2D 或 3D
  • 可以在地点描述中添加链接(可直接跳转),比如在这里写的博客

安装

  • 前往 Github 下载插件:https://github.com/DayuGuo/wp_travel_map
  • 在 WordPress 后台安装并激活插件
  • 进入WordPress 左侧边栏的 「旅行地图 > 设置」,配置 Mapbox 访问令牌。需要注册 mapbox 账号,每月有 5w 次免费载入次数,个人博客完全够用。
  • 使用「旅行地图」菜单管理地点
  • 在页面或文章中使用短代码显示地图,如下:

Plog 1

2025年8月30日 20:45

最近用了段时间 Retro,主打私密社交,好友列表是私密的,帖子上的点赞评论也是私密的。它的 Weekly Plog 概念挺有趣,每周发了自己的 Plog 才能看其他好友的内容。

杂乱的照片和生活,一股脑的发出去,还挺解压。

尝试在博客上沿用 Weekly Plog,不定期更新!

Grotesque
THE INDEPENDENT CAFE
厚切牛排,还是更好吃一些,跟土豆泥真是绝配。
第一次打草场,手感很有趣。
Three Thousand Restaurant 超大带骨牛排的兰州拉面,真的香!
店员严选书架是书点的灵魂。
喜欢这版《沙丘》的封面
这家书店,买书送热饮。
试了试用 Gemini 咖啡渍占卜,还挺有趣的。
牛津 Museum of Natural History 的 Logo 是渡渡鸟。

iA Writer

2025年8月29日 22:04

这是一篇个人偏好浓重的文章。


作为一个写博客的人,我用过太多笔记软件和文本编辑器。

起初,我追求的是功能。
最好什么都有:标签、双链、数据库、模板、插件、自动化…

可渐渐地,我发现,真正重要的并不是「能做多少事」,而是「写起来的感觉」。
写作的本质,从来不是复杂的功能,而是一个能让心静下来的环境。

尝试过那么多工具后,iA Writer 让我停了下来。它没有花哨的界面,只是一个纯粹的写作环境。光标闪烁的瞬间,总让我很快进入状态。

它并不完美,甚至可以说有些「固执」。

但正是这种固执,造就了独特的「手感」。

「数字世界里的手感」,是一种微妙的体验。
是应用启动时那份恰到好处的速度;
是每次按下键盘,光标随之跳动的节奏;
是字体渲染的清晰感,以及界面上元素的分寸拿捏 —— 多一分则繁冗,少一分则简陋。
这种手感,会让你觉得「舒服」,甚至忍不住想写点什么。

它就像 Rhodia 或 Penco 的纸质笔记本:低调,却自带「写字的诱惑」。随身带着,总会让人想翻开记录些东西。

从功能,到手感。
iA Writer,就是那个让我安心落笔的地方。


关联:静水深流

《一一》道来

2025年8月28日 21:27

洋洋

想看《一一》很久了,不仅因为它是杨德昌的作品,还因为干女儿的小名是一一。

全片接近 3 小时,叙述细腻克制,不同的视角的小故事,交织在一起。它记录的是日常的、琐碎的人和事,从婚礼开始,到葬礼结束。看似平淡,实则余韵悠长。

剧里有个话少的孩子,叫洋洋。他喜欢拍照,更确切的是喜欢观察。

没人教过他如何摄影,这样反倒更好,他不执着于捕捉实体,而是捕捉概念。

第一卷胶卷

摄影不仅是「记录」,还是「沟通」。

洋洋不善于用语言表达。第一卷胶卷被用于拍蚊子,是想告诉妈妈有蚊子咬他。

影像让他舒适。

虽然没拍到蚊子,但拍出了自己急切的情绪。那段时间母亲的情绪并不好,他似乎是希望与母亲有多些东西聊。

老师捉到了他偷偷外出打印照片,老师并不想理解这些照片,嘲讽洋洋「前卫艺术」,还要他罚站,直到家人来接他。

他始终没有拨通电话,也没有争辩,默默的站了很久,直到老师觉得无趣。他不想去打扰这个阶段的家人,大家都有各自的烦恼。

对洋洋来说,拍照是替代语言的方式,没必要跟不懂自己的人争辩。

第二卷胶卷

每个人都只能看到一半的世界,因为我们能看到前面却看不到后面。

洋洋想了想,选择记录人们的背影,告诉别人他们不知道的事情,给别人看他们看不到的东西。

世界并不完整,摄影帮助我们意识到「不完整」本身。

《一一》也不完整的,电影展示了许多故事的结局,但没交代故事的缘由。

我们只能看到生活的一半,就更别提电影了。

少一些对眼前事物的评判,多一些对其成因的理解。我们追逐着眼前事物的完美,却看不清自己。

影片中洋洋暗恋的女生,以后会不会帮他记录「背影」呢?

摄影从来不只是「快门一按」。它是慢的、沉静的媒介,需要我们停下、凝视、补全、理解。《一一》用三小时的克制叙事,和洋洋的两卷胶卷,一起提醒我们:真正值得看的,是那些我们自己看不见的部分。

不知一一长大后,会不会看这部《一一》,那个时代的年轻人又会如何理解?

WordPress 友情链接插件 Simple 版

2025年8月27日 21:19

这个项目基于并 fork 于 wp_friendlinks_manager(作者 @Jack),仅修改了样式和风格以适配自己的博客。所以名称就叫 wp_friendlinks_manager_simple

展示页面: 友邻 – Another Dayu

增加的核心功能:如半年以上未更新,会在友邻的名称后加 🕊 小鸽子 emoji。

下载地址:https://github.com/DayuGuo/wp_friendlinks_manager_simple

教程见 Jack 的博客:又一个 WordPress 友情链接插件

减肥前的准备工作 – Strava Running Sync WordPress 插件

2025年8月27日 18:11

最近想开始减肥,作为一个博客作者,准备工作当然是做一个 WordPress 跑步骑行插件(捂脸)。

Strava Running Sync 的灵感来源于 Running Page,可自动同步 Strava 跑步数据并在网站上进行可视化展示。

展示页面:https://anotherdayu.com/runningpage/

功能特性

  • 🏃‍♀️ 多运动支持 – 自动同步跑步、步行、骑行等运动数据
  • 📊 统计展示 – 显示总距离、总时长、平均配速等统计信息
  • 🗺️ 地图可视化 – 在交互式地图上展示运动轨迹
  • 📋 数据表格 – 以表格形式展示详细的活动列表,适配电脑和手机端
  • 🎯 类型筛选 – 支持按运动类型筛选数据
  • 🔄 定时同步 – 支持每小时自动同步最新数据

安装与配置

1. 创建Strava应用

  1. 访问 Strava API设置页面
  2. 点击「Create App」创建新应用
  3. 填写应用信息:
  • Application Name: 你的应用名称
  • Category: 选择适当的分类
  • Club: 可留空
  • Website: 你的网站地址(如 https://anotherdayu.com/)
  • Authorization Callback Domain: 你的域名(如:example.com),重要:Authorization Callback Domain 只填写域名,不要包含协议和路径。(如 anotherdayu.com)

回调URL配置说明:如果你的 WordPress 安装在子目录或使用自定义域名,可以在插件设置中修改回调 URL。

最后需要保存 Client ID 和 Client Secret

2. 安装插件

  1. 前往 Github 下载插件:https://github.com/DayuGuo/strava-running-sync
  2. 将插件文件夹上传到 /wp-content/plugins/ 目录;或直接在插件页面上传插件压缩包安装。
  3. 在 WordPress 后台激活插件。

3. 配置插件

  1. 在 WordPress 后台进入「Strava Running」设置页面(侧边栏)
  2. 填入从 Strava 获取的 Client ID 和 Client Secret
  3. 点击「连接到Strava」按钮完成 OAuth 授权
  4. 配置显示选项(地图样式、自动同步等)
  5. 点击「立即同步」进行首次数据同步
  6. 插件基于 Mapbox,需申请账号并获取 Mapbox Access Token。

使用方法

短代码参数

所有短代码都需要在两侧添加 []

使用 strava_running_display 短代码在页面或文章中显示跑步数据。

支持的参数:

  • type – 显示类型
  • both – 同时显示统计、地图和表格(默认)
  • stats – 仅显示统计信息
  • map – 仅显示地图
  • table – 仅显示数据表格
  • limit – 显示的活动数量(默认50)
  • map_height – 地图高度(默认500px)

示例

技术支持

如遇到问题或需要技术支持,请:

  1. 检查 WordPress 和 PHP 版本兼容性
  2. 确认 Strava API 配置正确
  3. 验证回调 URL 配置
  4. 查看 WordPress 错误日志

开源协议

本插件采用 GPL v2 协议开源。


享受跑步,享受数据!🏃‍♀️💨

An Unfinished Film

2025年8月24日 20:23

几个月前,在 Phoenix Picturehouse 观看了娄烨导的《An Unfinished Film》。

这是一个很特别的英国连锁电影院。它并不是那种巨幕商业影院,更社区化。两间不大的放映厅,座位不多,但却能带来一种亲近感。这里不仅有商业大片,更有大量小众电影和独立作品。

影片以「戏中戏」的结构,记录了一个剧组因疫情被困酒店的经历,将镜头对准了宏大叙事下琐碎的日常。手持摄影的晃动感,捕捉了那时社会的慌乱和人们内心的混乱。

它没有很完整的情节,而是用生活的碎片,用情绪拼凑出一段记忆——焦虑、无聊、担忧、害怕、接受…

这是一部悲伤的电影,我却在看完后感到一种淡淡的释放感。

我或许是幸运的,不曾在期间经历过痛苦。旁观了许多,努力的想做些什么,却又似乎什么都没做。

所以对我来说,当时更多的是一种沉默的、难以出口的压抑。我无法轻易去诉说,觉得自己的感受太微小、矫情。每个人似乎都在努力维持日常运转,谁又愿意再多听一个负担?

正因如此,这部电影对我来说成了一个出口。它不仅是影像叙事,更像是一扇窗,推开时,积压的东西突然有了可以呼吸的通道。

电影结束后,我骑车回家。夜风拂面,我放肆地哼着影片里的那首《火红的萨日朗》。偶尔全力踩几脚踏板,让车子飞速向前冲去,就像要把身体里残余的郁结一并甩掉。那一刻,我突然觉得自己并不需要向谁解释这种释放,只要身体和声音能够发泄,它就足够真实。

或许这就是电影的意义之一:它不必替我们解决问题,但它能在某个瞬间提供一个「容器」,让我们把那些说不出口的压抑,安放其中。

那天回家路上的风声和歌声,我可能会记得很久。

静水深流

2025年8月23日 21:13

Folo 是一款 RSS 阅读器,它功能齐全,甚至比我之前常用的 Reeder 更全面,但我总会觉得用 Reeder 更舒适。这里并不是想吐槽 Folo,实际上我已经转而使用 Folo,它对订阅大量英文内容的用户非常友好,尤其适合英文水平一般的用户。

这种体验并非孤例。在无所不能的 OmniFocus 和专注的 Things 之间,在功能更强大的 Zotero 和更轻巧的 Bookends 之间,我本能的会偏向后者。它们都是优秀的软件,客观上前者功能更强大,但后者却更让我喜欢。

是什么导致我有这种感受?

克制

保持一定程度的「克制」,似乎能做出更优雅的软件。

一开始,我将其归结为「少即是多」 (Less is More)。但这个解释并不完整。许多功能简单的应用同样粗糙难用。DEVONthink 非常复杂,但很让我喜欢。

真正的简单,是为复杂找到秩序。这种克制,并非功能的删减,而是一种专注本质的智慧。它源于开发者「不做什么」的决断,而非「多做什么」的炫技。

这种克制,可能还源于软件与其所在操作系统的契合,让工具融入系统。

macOS 通过其人机交互指南 (HIG) 建立了一套一致、专注的设计规范。遵循规范的应用(如 Reeder 和 Things)能利用用户的既有习惯,降低学习和使用成本,让用户专注于任务本身。而违背规范的应用则会增加用户的操作负担和不适感。

尤其在那些我们每日高频开启的工具里,这种因克制而生的心智舒适感,远比一个不常用的复杂功能更加珍贵。它让工具回归本质,静默地服务于我们的目标,而不是成为目标本身。

最终,我们选择一个软件,或许不因其能做一千件事,而在于它将我们最需要的那一件事,做得恰到好处,并且——安静。

几年前,初换 macOS 时,我选软件的首要标准是跨平台,最好还开源。我认为这代表了某种程度的自由和普适。

但如今,回顾 docker 栏的常用软件,它们大多是 macOS 原生软件。

这种转变并非刻意为之,而是一种潜移默化的选择。

macOS Tahoe Public Beta 体验

2025年8月19日 00:02

整体设计风格比想象中舒服,有新鲜感,体验还不错。

我使用的软件列表见:一点点展开我的 macOS,其中大部分都兼容,出问题的会在下面介绍。

小 Bug 们

补充:使用 2 周后,出现了第一次异常重启。

Menu bar 和 Toolbar 是这次更新的重灾区,主打不动就看上去没事,点一点设置就崩溃或出问题。

Bartender 不适配新版本,点设置时每次都会崩溃,ice 也是如此。据说他们的测试版已经开始兼容 Tahoe。最后图省事换成了 iBar pro,比 Bartender 简单些,运行正常。

PopClip 基础功能正常,也可以添加新插件,但无法取消原先激活的插件。

Finder Toolbar 与一些软件不兼容,如 OpenInTerminal。

OmniFocus 侧边栏排版有问题,但不影响正常使用。

一小部分软件的图标不兼容新版本,如下图:

Shortcuts menu bar 快速启动栏改成默认关闭。

Menu bar 右上角 Control Center-Edit Controls-shortcuts 中可重新调出,但新版本需要选中 Shortcuts 后再点击 run 才能启动,比以前多了一个步骤。

替代方式是使用 Run Shortcut,将其添加到 Control Center。

另一个方案是将 shortcuts 添加到 Widgets。

在使用浏览器时,有 2 次突然卡住,光标变彩色圆圈,几秒钟后恢复。暂无法确定原因。

Spotlight 和软件启动器(Launchpad)整合在了一起,会反复加载手机软件的图标(可关闭该功能)。特效不错,但总的体验还是没有 Alfred 好。

平时在研究所用 3 个屏幕:两台外接显示器 + MacBook 主屏;回家是1台外接显示器+主屏。以前插拔显示器,排列都是固定的。Tahoe 后,经常会错排,没有记忆原先的排列,暂不知道背后的成因。

打开新软件时,一些软件会缩成一小团,需要手动展开到正常页面。

小意外

一直有一个小 Bug 困扰我:macOS 多屏时,光标如果在非主屏。有通知时,光标会向下位移。

这个 Bug 对游戏体验影响很大,特别是通知多的时候,会直接找不到光标。

最近找到了解决方案:

defaults write com.apple.notificationcenterui bannerTime 0
killall NotificationCenter

比较喜欢的地方

  • Shortcuts 功能更强大了,可以添加触发器,比如定时自动化。未来可以尝试取代 Keyboard Maestro 的一部分功能。
  • 新版本 iMessage 做的很舒服,特别是一些渐变特效。
  • 可以移除 Dock 里的 Launchpad。
  • 可以在设置中调整 Menu bar 上显示哪些软件,这可能是 Bartener 等软件崩溃的原因。Menu bar 软件少的话,可以不依赖这类软件。
  • iPhone mirroring 似乎比上一个大版本稳定。
  • Universal Clipboard 上个版本有时会卡几秒进度条,新版本暂时挺稳定的。
  • Safari 越来越漂亮了,iOS 版新交互也挺顺手,给 Safari 团队一个好评!
  • 现在短信验证码自动提取填充功能,并不仅限于 Safari,好像取决于目前激活的文本框,所以各个浏览器和软件应该都支持了。以前用的 Codepiper,这回可以退休了。

iOS、macOS 和 watchOS 都升级到了 Public Beta,新版本算是一个风格化的更新,没太多可聊,只希望正式版 Bug 少一些。

新系统如果能把 iPhone mirroring、AirDrop 和 Universal Clipboard 优化好,我就很知足了。

更新前记得备份!


没想到第二天就更新了 Public Beta 4,本文提到的小 Bug 依旧存在。

不知是不是错觉,好像比昨天更顺畅了一点点。

PIVOT Vol.19 有 19 个链接

2025年8月14日 05:58

How I Use Kagi

一些使用 Kagi 搜索引擎的技巧,其中黑名单的部分挺有借鉴意义:flamedfury-kagi-block-list


项飙 × 迈克尔·桑德尔:不够幸运的人,怎样过好这一生?

如果我们看看实际数据,就会知道阶级跃升并不容易。经济合作与发展组织(OECD)曾做过一项研究,关于一个低收入家庭需要多少代人的努力才能达到社会的平均收入水平。研究表明,丹麦有很强的阶级流动性,只需要两代人的努力;在美国,这个怀有美国梦的地方,平均需要的则是五代人的努力;在中国甚至需要更长的时间。

社会不平等在近几十年来日益加剧,最可怕的后果之一就是富人和普通人生活方式的割裂,我们在不同的地方生活、工作、购物和娱乐,把孩子送到不同的学校。这实际上造成了整个社会的割裂。因此,我们需要在公民社会中突出公共场所和共有空间的作用,将人们聚集在一起,让人们跨越阶级的差异,彼此接触。

我们需要寻找合适的场合,让同一个社群、甚至是不同国家和文化的人聚在一起,去讨论那些无法回避的重大问题。


A newbie’s perspective, tips and process – what can I add? [Long!] – DEVONthink / Tips – DEVONtechnologies Community

一个新手使用 DEVONthink 的视角,分享了很多体验和感受。


The Effect of Deactivating Facebook and Instagram on Users’ Emotional State | NBER

研究结果表明,停用 Facebook 六周的用户在幸福感、抑郁和焦虑方面改善了 0.060 个标准差,而停用 Instagram 的用户改善了 0.041 个标准差。Facebook 的影响主要体现在 35 岁以上的人群中,而 Instagram 的影响主要出现在 25 岁以下的女性中。


no days off

Adrien Friggeri 记录自己跑步日程的数据可视化网站,很漂亮。


Psyche | Know Your Self

一本数字杂志,不仅涵盖心理学,还涵盖哲学、历史、人类学等。Psyche对帮助人们驾驭日常生活的实用知识特别感兴趣。与专家观点同样重要的是人们反思自己人生旅程的声音。


RSS Anything

可以将任何具有链接列表的旧网站转换为RSS源。


Nutlope/self.so: LinkedIn -> personal site generator

Self.so 是一个开源的个人网站生成器,可以上传 PDF 版简历创建个人网站。


Archivists Recreate Pre-Trump CDC Website, Are Hosting It in Europe

备份了特朗普就职典礼当天的CDC网站,恢复了特朗普政府期间删除的健康和科学信息。


Nobody Has A Personality Anymore

“In a therapeutic culture, every personality trait becomes a problem to be solved. Anything too human—every habit, every eccentricity, every feeling too strong—has to be labelled and explained.”

我们正处于一个将所有人类特质、情感和行为“病理化”(pathologize)的时代。 这种趋势将复杂、独特且充满神秘感的人类个性,简化为一系列可被诊断、标记和“修复”的症状。其结果是,我们不再是拥有灵魂的个体,而是贴着临床标签的“产品”。


ttscoff/readwise_to_devonthink

介绍了如何将 Readwise 中的信息自动定期同步到 Devonthink 中。


Invidious – An open source alternative front-end to YouTube

Invidious 是一个开源的YouTube前端,支持多种语言,没有广告。用户可以托管自己的实例或使用现有实例。


CyberTimon/RapidRAW: A beautiful, non-destructive, and GPU-accelerated RAW image editor built with performance in mind.

RapidRAW 是一个有 GPU 加速的 RAW 图像编辑器,为摄影师提供快速和非破坏性的编辑体验。


Lakr233/FixTim: Fix every runtime bug on macOS.

修复一些 macOS 上的常见 Bug。但说实话,使用之后,平时困扰我的 Bug 还是没被处理掉。


egoist/sitefetch: Fetch an entire site and save it as a text file (to be used with AI models).

抓取整个网站并将其保存为文本文件,以便与 AI 模型一起使用。


Silentely/Bili-Calendar

将B站追番列表一键转换为日历订阅,支持 Apple/Google/Outlook 等主流日历应用!


Growth and Government – Sam Altman

如果没有经济增长,民主制度可能会行不通,因为选民们会陷入零和博弈。


gkpln3/CapsLockNoDelay: Eliminates delay when activating caps lock on macOS OSX

消除在 macOS OSX 上激活大写锁定时的延迟。

很推荐大家使用,确实提升了日常使用体验。


让我们成瘾的不止多巴胺,还有速度

现代社会许多人的焦虑和成瘾行为,不仅源于对多巴胺的追求,更深层次地源于对“速度” (Speed) 的痴迷。这种文化推崇快速成功、频繁更换赛道和保留过多选择权,但这最终会牺牲掉能带来长期复利价值的“质量” (Mass)


当思考按字数收费

2025年8月11日 19:47

0

Claude、ChatGPT 这些大模型很有趣的一点是,无论人类主观认为问题的难度如何,它都按 token 数计费。

1

传统认为「理念」(内容/意义)高于「现象」(形式/符号),但在 LLM 定价中,纯粹的符号数量决定了价格,完全脱离了意义维度。

这挑战了我们对价值本源的理解。人类似乎从「知识生产者模式」,到了「意义验证者模式」阶段。

知识生产者模式:Human → Knowledge → World (单向的创造与输出)

意义验证者模式:Human ⟷ AI ⟷ Knowledge ⟷ World (循环的对话与验证)

知识不是对感官现象的被动接受,而是通过辩证法——包括提问、反驳和循环论证——来把握事物的抽象本质(即「理念」或「形式」)。

想到此刻,越来越佩服 ChatGPT 选择以对话为逻辑搭建可视化交互框架。

对话强制人类参与验证过程,每个回合都是一次意义协商。

2

未来,稀缺的不是知识,而是注意力、验证能力和意义建构能力

当信息无限,你的关注模式就是你的存在模式。

(现阶段,AI输出的是概率分布,不是确定性知识。每次对话不只是「验证」,更是风险管理,评估哪些输出可以信任,哪些需要二次确认。)

First of Blaugust 2025 院子里的小果子,河边的小龙虾

2025年8月4日 04:57

最近看 Spike 博客的时候,了解到 Blaugust。这是一个最初由 Belghast 发起的博客活动,鼓励大家在每年八月份积极创作和发布内容。

Blog + August = Blaugust

读 Belghast 博客时让我比较惊喜的是,他也喜欢玩激战2——这是我最喜欢的网游。如今这款游戏已很少被人提及,能看到同好真是件开心的事。

顺带一提,他还养了三只可爱的猫咪。

img

该活动目前已经举办了 10 年,今年发起人变成了一个组织,发布在 Nerd Girl Thoughts 上。

活动的具体信息见这个帖子,参与者需要填写表单注册。


Blaugust 活动的第一篇文章,想聊聊最近的日常。

酷暑之后,英国的天气恢复正常,院子里的果子开始成熟,是黑莓和李子的季节。

李子的皮有点酸,果肉味道不错。附近有紫红色的和黄色两种,味道差别不大。

黑莓是淡淡的酸甜味,配上蜂蜜和酸奶,味道刚好。颜色越黑,味道越甜,也越易碎。朋友家的院子很大,果子更多,去摘了两次,非常满足。

朋友提醒,公园里要在狗尿线以上摘黑莓,也是很有生活了。

院子里的苹果特别受小虫子的欢迎,凡是红了的都有蛀虫洞。

聊到苹果,我有一个怪癖:无法忍受咬苹果和切苹果的声音,会让我浑身起鸡皮疙瘩。甚至写这段话时,我也起了一些鸡皮疙瘩。

但我喜欢喝苹果汁,也喜欢吃苹果派。

A1B60FE3-8340-406E-9C6C-8E354BFF0B66_1_105_c

最近还和朋友们去河边尝试了钓小龙虾。

英国有两种小龙虾,一种是本土的 White Clawed Crayfish,另一种则是外来入侵物种 Signal Crayfish。外来入侵小龙虾的特点是爪子上有一块白斑。

英国钓小龙虾最好先申请一个执照,简单填写一些资料即可。

CleanShot 2025-08-03 at 21.09.59@2x

第一次去的时候四个人只钓上来一只。好在天气很好,也不闷热,在河边坐坐也很舒服。

第二次问了经验丰富的朋友,满载而归。

做了四根杆子,两个人钓,两个人捞。一会儿就上钩,一次两三只,甚至还挺忙。

找到龙虾洞很关键!

CleanShot 2025-08-03 at 17.25.16@2x

河边的小乌龟,可太惬意了。

真是个好季节!

82854A13-B686-4236-B148-B0CBBBC41C33_1_105_c

Keyboard Maestro – 实现 Screennote 的功能

2025年7月31日 18:32

今天看到李如一推荐了一款很有趣的软件: Screenotate,可以在截图后自动进行 OCR 文本识别,并将文本和图片保存为便于检索的 HTML 文件。

不过,Screenotate 无法与其他截图软件(如 CleanShot X)联动,自身的截图功能也相对基础。

最终,我决定用 Keyboard Maestro 来复刻它的核心功能。得益于 KM 内置了 OCR action,配置过程非常简单。

项目逻辑是:每次有新图片文件被添加到该文件夹,对其进行 OCR,然后将文本放入同文件名的 txt 文件。

想尝试的朋友可以去我的 Github 下载。仅需改下图中的文件夹地址,换成自己的本地文件夹即可。

Screenshot
❌