Another Dayu

Another Dayu

"Seize the day, gather ye rosebuds while ye may."

开源我的个人基因分析流程

<p>去年做完 WeGene 的全基因组测序之后,我就一直想自己分析试试。于是就有了这个项目。</p> <p>整个项目是和 Claude 一起完成的,把分析流程整理成了 Skill 的形式,并开源到了 GitHub:<a href='https://github.com/DayuGuo/genome-atlas-skill'>https://github.com/DayuGuo/genome-atlas-skill</a></p> <p>目前 WeGene 的原始测序数据体量比较大,我还在后台申请下载权限,暂时没有拿到。因此这一轮分析使用的是大约 15 MB 的基因型数据表,而不是 FASTQ/BAM 这类原始测序文件。</p> <p>也正因为如此,这套工作流对普通爱好者其实比较友好:不需要很强的计算资源,有类似的消费级基因检测数据就可以自己尝试分析。</p> <p>整体来看,得到的主要结论和 WeGene 官方报告差异不大,但自己把数据从头到尾跑一遍,还是挺有趣的,并且能改用自己喜欢的可视化方案。</p> <p>完整结果可以直接查看网页版报告:<a href='https://dayuguo.github.io/genome-atlas-skill/example/report.html'>https://dayuguo.github.io/genome-atlas-skill/example/report.html</a></p> <p><img src="https://imgproxy.citrusreader.com/-YpdLWcFMaTw-k3HMV3Vu4VqnPyS0VQpBNN6Rhkn9YQ/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wOS8wOS9oQ3A4LzIwMjYwOTA5MTEyNjM5NzQyLmpwZw" alt></p> <p>其中一些我觉得比较有意思的结果:</p> <ul> <li>父系这条线属于 O-F438,母系属于 D4h1,两个都是北方汉族里很常见的支系。把我的数据放进全世界两千五百个人的坐标里,我落在东亚人堆中间,再放大到汉族内部,偏北方一点。</li> <li>携带一个和“喝酒脸红”相关的酒精代谢基因型。简单来说,酒精首先被转化成乙醛,而我的乙醛清除能力可能相对较弱,因此饮酒后更容易积累乙醛。</li> <li>携带一个影响硫嘌呤类药物耐受和剂量选择的 NUDT15 变异。如果以后需要使用硫唑嘌呤、巯嘌呤等药物,这个结果值得提前告诉医生,并通过正规的药物基因检测确认。</li> <li>东亚人常见的“粗直头发”基因型。头发偏粗偏直、门牙内侧呈铲形的可能性大。</li> <li>干性耳垢,腋下体味轻。这个基因几乎决定耳垢类型,东亚人绝大多数如此。</li> <li>带一个 2 型糖尿病常见风险变异,风险比不带的人高三到四成。这是人群统计,个人风险主要还是看体重、饮食和运动。</li> <li>咖啡因代谢倾向于偏慢。理论上可能意味着下午或晚上喝咖啡更容易影响睡眠,不过个体差异很大,这一项更适合当作参考。</li> <li>COMT 基因 Val/Val 型,大脑里分解多巴胺偏快。</li> </ul> <p>这个项目目前还只是第一轮。等 WeGene 开放原始测序数据下载之后,后面还可以继续往 VCF、药物基因组学、致病变异注释、多基因风险评分,以及更完整的祖源分析方向扩展。</p> <p>示例图:<br> <img src="https://imgproxy.citrusreader.com/B7Xd7Id45W6vR0ZCX1zEFANHx6mxQrcAuX44jDIpPIM/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wOS8wOS9lR3g1LzIwMjYwOTA5MTEyNzE3MTI0LmpwZw" alt></p> <p><img src="https://imgproxy.citrusreader.com/cat9SWM2hiy8OVob_ljQjjqDOJGX-MPPgo0Kewm0GWw/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wOS8wOS8yZ3dPLzIwMjYwOTA5MTEyNzM0NzI3LmpwZw" alt></p> <p><img src="https://imgproxy.citrusreader.com/nRztjsRhMnZ0hzVssPBGNPn32NoZ6D3zkji_6sNvxyc/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wOS8wOS9wWDNqLzIwMjYwOTA5MTEyNzUzNTUxLmpwZw" alt></p> <p>界面风格参考了 <a href='https://github.com/larashero3-dotcom/lieflat-charts'>lieflat-charts</a></p>

2026/9/9
阅读更多

macOS 使用 Crossover 游戏中文输入显示问号乱码问题

<h2 id=>背景</h2><p>在 macOS 上用 CrossOver 玩一些 Steam 游戏,比如激战2(Guild Wars 2 ),界面能够正常显示中文,但输入聊天框里输入中文,只能显示问号。</p> <p>网上相关教程都是装中文字体文件或改注册表,但这些解决的是字形问题,容器缺少中文字体。</p> <p>中文显示为问号的真正原因是:容器(Bottle)的系统区域设置不是中文,而默认是西欧编码(1252),中文字符编不进去,转换失败的字符就统一被替换成了问号。</p> <h2 id=-1>解决方法</h2><p>CrossOver 的每个容器都有一个独立的配置文件 cxbottle.conf,可以单独指定该容器的语言区域,不会影响其他容器。</p> <p>步骤:</p> <p>打开 CrossOver,选中运行 GW2 的容器,在右侧栏里点击:Open C: Drive</p> <p>在弹出的 Finder 窗口里往上退一层——cxbottle.conf 和 drive_c 文件夹是同级的,不在 drive_c 里面。</p> <p>用纯文本编辑器打开 cxbottle.conf (推荐BBEdit)</p> <p>找到 [EnvironmentVariables] 这一节(没有就新建),加入一行:</p> <div class="highlight"><pre><span></span> [EnvironmentVariables] &quot;LANG&quot; = &quot;zh_CN.UTF-8&quot; </pre></div> <p>如果这一节已有其他变量,直接在下面追加即可,不要删掉原有内容。</p> <p>保存文件。</p> <p>完全退出该容器(右键容器选"退出",不是只关掉 Steam 窗口),再重新从 CrossOver 启动 Steam 进游戏。</p> <p>改完之后再进聊天框打字,中文就能正常发送了。</p> <hr /> <p>关联:<a href='https://anotherdayu.com/guildwars2-chinese/'>激战2 国际服 Nexus 中文汉化转换插件 #Guild wars 2 – Another Dayu</a></p>

2026/7/15
阅读更多

那个从不看球的人开始看球

<p>过去几十年,我大概只凑热闹看过个位数场次球赛,但最近天天看赛程,期待着晚上看球。</p> <p>时差是一个很重要的原因。在欧洲看世界杯,大多数比赛都在下班后,偶尔才需要熬夜。</p> <p>最初的是苏格兰闯入世界杯,想支持一下。对来自格拉斯哥的罗伯逊印象很深,看了很多他和利物浦的故事。</p> <p>后来又想,既然自己人在英格兰,那也看看英格兰吧。于是看了两场英格兰的比赛,开始留意哈利·凯恩和赖斯。</p> <p>小红书也算是一个契机。今年它买了世界杯转播权,所以一直给我推送相关视频。那段时间,我刷到了很多哈兰德的表情包和集锦,自然而然地开始看挪威队的比赛。</p> <p>就这样,看的比赛慢慢多了起来。</p> <p>看葡萄牙对克罗地亚的时候,我开始了解莫德里奇,那个从战火中走出来的中场大师。</p> <p>看法国队比赛的时候,我认识了坎特。那个和球队气质有些格格不入的人。务实、低调,却在球场上无处不在。也是从他开始,我才慢慢注意到,足球并不只是前锋和进球,还有中场、后腰、防守、覆盖和拦截。</p> <p>看佛得角和阿根廷的时候,和朋友们不由自主的鼓掌恍惚,感觉隔壁邻居都能听到。难得熬夜看球,看的热血沸腾,真精彩啊。</p> <p>佛得角其实不只是门将出色,只是他比较显眼。佛得角的阵型布置和高效的回防效率,压缩了对手的进攻空间,但他们也从不放弃进攻的可能性。这种教练和球员的决心和执行力才是这个球队最大的魅力</p> <p>追着这些球员和球队的轨迹,我又看了很多纪录片和集锦。慢慢意识到,自己也许并不是单纯喜欢看球,而是喜欢故事。</p> <p>而绿茵场上,最不缺的就是故事和传奇。</p> <p>在现场见证故事发生,是一种无以伦比的诱惑和乐趣。</p> <p>很多平时不看球的人会看世界杯,除了比赛本身好看,可能还有一个原因:它让人短暂地进入一种全球共同关注、共同记忆、共同感动的氛围里。</p> <p>在同一个夜晚,世界上许多陌生人一起等待、紧张、欢呼、遗憾。哪怕我并不是一个真正懂球的人,也会被这种共同经历打动。</p> <p>也许这就是世界杯的魅力,一种独特的浪漫。</p>

2026/7/6
阅读更多

Plog 7 乱序生活

<p>英国的盛夏,热的睡不着,结果隔壁养老院着火了…</p> <p><img src="https://imgproxy.citrusreader.com/0tlmL7ogwK5fEt6jjRkJKAQoY-LGvTKQiXO8SWg9ffA/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNy8wNS9PNWFoLzIwMjYwNzA1MjAwNTI4ODI3LmpwZWc" alt></p> <p>好久没去动物园,还挺开心的。</p> <p><img src="https://imgproxy.citrusreader.com/WCAsNqufm8wPt2SiGY9SllwKMG8co-73yS7uOQWu68c/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNy8wNS84bXJLLzIwMjYwNzA1MjAxMTEwODAxLmpwZWc" alt></p> <p>Cotswolds 的微缩小镇,在 Bourton-on-the-Water 闲逛是真的很舒服,不愧为英国最美乡村。</p> <p><img src="https://imgproxy.citrusreader.com/nLECYLaMQnQb-2q4MG3zHXf2IH3_3UGd5qJW6Z1O0cs/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNy8wNS9tOHFPLzIwMjYwNzA1MjAxMTI4Mjk2LmpwZWc" alt></p> <p>玛莎和 Kew Garden 联名的饮料,好喝!</p> <p><img src="https://imgproxy.citrusreader.com/mwX1CtYG_7q05TcSeOpDX_X01sIwHHCa8MkgopNGUiI/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNy8wNS8xUXlzLzIwMjYwNzA1MjAwNDIxMDMxLmpwZWc" alt></p> <p>第一次看到这么小的南瓜。</p> <p><img src="https://imgproxy.citrusreader.com/blXzbiIJORHw08HDC4nb8MkbaizYXFFBsMtt6vQfmVk/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNy8wNS84aVZ4LzIwMjYwNzA1MjAwNDQ5ODMzLmpwZWc" alt></p> <p>意料之外好吃的薯片,特别上头!</p> <p><img src="https://imgproxy.citrusreader.com/BeMsvYerADpUfkbNJZ-zCAz4Ljng47O6vpIXDGwPmkQ/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNy8wNS84T3VpLzIwMjYwNzA1MjAwNzA5NzUzLmpwZWc" alt></p> <p>落日的美好,照片拍不出。</p> <p><img src="https://imgproxy.citrusreader.com/JYIJNOkro_CFCpasmmVZ5lZ082je5_wq7YIgdYyLckc/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNy8wNS80UGJnLzIwMjYwNzA1MjAwODA1NDkwLmpwZWc" alt></p> <p>划了次船,一直在转圈圈,最后腰酸背痛。</p> <p><img src="https://imgproxy.citrusreader.com/0m4kgBb4QUx_7Zhypg_YSIo5v-3pku9i7hQHbJhDu3U/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNy8wNS9meEMxLzIwMjYwNzA1MjAwODU2NDc3LmpwZWc" alt></p> <p>一直想玩一次万智牌,看到有降世神通版的新手套装,忍不住入手了。</p> <p>御三家(万智牌、游戏王、宝可梦)里,我会喜欢万智牌的美术和质感。但宝可梦卡牌买的最多,对战视频游戏王看的最多,日常炉石玩的最久。</p> <p>呵,男人!</p> <p>真杂啊,忍不住吐槽自己。</p> <p><img src="https://imgproxy.citrusreader.com/ggaCM1-r2GeHTZWujdlKioIB2MA87fYJf6kJcT3iQSc/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNy8wNS84TnVzLzIwMjYwNzA1MjAwOTA4MzQ0LmpwZWc" alt></p> <p>附近公园里一颗奇怪的树。</p> <p><img src="https://imgproxy.citrusreader.com/WAScHZW2z0GOaS1KWHxJVDXjFemNXIWx5SJv7Tw9Jic/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNy8wNS9xWHE0LzIwMjYwNzA1MjAwOTM2ODMwLmpwZWc" alt></p> <p>买了 Meta 和雷朋联名的智能眼镜,挺有趣的,但日常佩戴还是略重。等体验几个月之后,应该也会写一篇博客。</p> <p><img src="https://imgproxy.citrusreader.com/knXnLvn98LlSsa_Dy3S_8voMTCRAT9mR4PMHO1cmzR4/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNy8wNS9jN1N4LzIwMjYwNzA1MjAxMDE0OTk4LmpwZWc" alt></p> <p>卡卡颂可能是我这两年最喜欢的桌游之一。美术做的很舒服,喜欢这种拼图类的。</p> <p>玩法没有很强的对抗性,但又有足够的策略性,很有趣。</p> <p><img src="https://imgproxy.citrusreader.com/yaA5lyzYm4Y2_4yA6aFJHP-7QyU5k2GAmTkynLxSp2Y/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNy8wNS8wTGF2LzIwMjYwNzA1MjAxMDQwNjY5LmpwZWc" alt></p> <p>这套西游记的侧封真漂亮。</p> <p><img src="https://imgproxy.citrusreader.com/zCpm3X-KeeK01ia23iOmyBXeD3_EHd1UpaPMciPXPbo/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNy8wNS92TjNxLzIwMjYwNzA1MjAxMjQ5NDU2LmpwZWc" alt></p> <p>新买的杯子,喜欢!</p> <p>这一年弄碎了两个喜欢的杯子,不知道这个能坚持多久…</p> <p><img src="https://imgproxy.citrusreader.com/fm2BsCGbiTpT22nWqvk0R4PAg5M4Iu8ECbfpncAOs-w/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNy8wNS9DZzl1LzIwMjYwNzA1MjAxMzExNDkzLmpwZWc" alt></p> <p>闪现巴黎!</p> <p>Flan 应该是我在法国最喜欢的甜点,焦糖表层,内馅大量的香草籽,配上解腻的饼皮,真好呀。</p> <p><img src="https://imgproxy.citrusreader.com/88PixY90mPbSOYlOK6pZwt0NbPIkBvjFiboyXXXsofw/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNy8wNS81aWFBLzIwMjYwNzA1MjAxMzM5Mjc1LmpwZWc" alt></p> <p>人群之中的那抹微笑。</p> <p><img src="https://imgproxy.citrusreader.com/Q_Z7PvXC80cobh3ROHxXjdzUr9_PovMTH4OSqplS8fQ/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNy8wNS95RzFzLzIwMjYwNzA1MjAxNDE3NDYzLmpwZWc" alt></p> <p>巴塞罗那的圣家堂是真的震撼呀。</p> <p><img src="https://imgproxy.citrusreader.com/7K9rajs52FlTWJd1_ikNnZJhLptyQNWtZW85bNx2Cvc/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNy8wNS8zcVRjLzIwMjYwNzA1MjAxNTE0NTMwLmpwZWc" alt></p> <p>卢浮宫JoJo周边,太酷啦!</p> <p><img src="https://imgproxy.citrusreader.com/h5I16dMcR_EJbxeGOXYQ9fG-X_KH-SM1L_QroW6gfrE/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNy8wNS92bFU3LzIwMjYwNzA1MjMzNjU2MTIxLmpwZWc" alt></p> <p>格鲁吉亚美食卡里饺。</p> <p>还是更喜欢小笼包,想回国了。</p> <p><img src="https://imgproxy.citrusreader.com/0Z-wOIHTiXh1sf9WVUvGFNrd0lcxjBqtKLj9CvpTREA/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNy8wNS8yekliLzIwMjYwNzA1MjAxNjI4OTg2LmpwZWc" alt></p> <p>家里的新成员 Henry!</p> <p><img src="https://imgproxy.citrusreader.com/pZx_ZcGul-9ERvddiL0y7n5tFQlHyF68rQQvgJCkhrs/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNy8wNS8zQXdpLzIwMjYwNzA1MjAxNjU3NjU4LmpwZWc" alt></p> <p>没想到第一次看万青是在伦敦。</p> <p><img src="https://imgproxy.citrusreader.com/d-Ky-3lyQGQFMBDZawAiv9DjgUPiudX2Hrpuk2m_20U/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNy8wNS92aTVHLzIwMjYwNzA1MjAxOTE3NjEzLmpwZWc" alt></p> <p>喜欢这件短袖,求链接!</p> <p><img src="https://imgproxy.citrusreader.com/wzXg9s-Mlqewbd64T6j7MYBakmNVYF7t2l24aGfGEuA/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNy8wNS8yZGJLLzIwMjYwNzA1MjAxOTM0MDE2LmpwZWc" alt></p> <p>预约半年之后,Analogue Pocket 终于到了。</p> <p>来的有些突然,还没把配件和卡带买好,希望下半年能腾出空来。</p> <p><img src="https://imgproxy.citrusreader.com/FDmkzHGPV5kukZ6CURqh80dwK4lbG4Bwx-sTh6NnN_E/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNy8wNS9tMEN5LzIwMjYwNzA1MjAyMDIxMDI5LmpwZWc" alt></p> <p>试着留了次胡子。</p> <p><img src="https://imgproxy.citrusreader.com/nPkBAtNKvnmsnrmVerR_PIpdyDi-F6vUdSLd7xr7miI/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNy8wNS9TMmVvLzIwMjYwNzA1MjAwNjA2MjE1LmpwZWc" alt></p>

2026/7/5
阅读更多

Bear Blog Theme: Vermilion

<p>最近给博客换了一套适配 <a href='https://bearblog.dev/'>Bear Blog</a> 的自制主题,取名 Vermilion(朱砂)。</p> <p>正文用衬线字体窄栏排版,行距放宽,适合中英文混排阅读,背景模拟了泛黄旧书的质感。</p> <p>截图留念:<br> <img src="https://imgproxy.citrusreader.com/OCevnia_DGBGic4YATqbP6gvSBqI06tjiJfhCgh60x4/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNy8wNC93MUloLzIwMjYwNzA0MjI0MDM3NjE3LmpwZw" alt></p> <p><img src="https://imgproxy.citrusreader.com/hT7THDvioFQvmxnS7TPNymYr9YwXvQjS0tMXsEqIPvE/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNy8wNC9razJELzIwMjYwNzA0MjI0MDE4Mzc4LmpwZw" alt></p> <p>完整 CSS:</p> <div class="highlight"><pre><span></span>/* ============================================================ Vermilion — Bear Blog theme from https://anotherdayu.com/ Eggshell-gray paper / ink text / cinnabar seal accents / narrow airy column Usage: paste into Dashboard → Themes → Edit theme CSS ============================================================ */ :root { --paper: #f4f3ef; /* Sketch paper: cool-toned eggshell gray */ --ink: #2d2b28; /* Ink: warm gray-black, not pure black */ --ink-soft: #6e6a63; /* Secondary text: dates, footer */ --cinnabar: #a6392e; /* Cinnabar: seal red */ --hairline: #dcd8d0; /* Thin divider lines */ --code-bg: #eceae4; /* Code blocks: half a shade darker than the paper */ /* Paper grain: SVG noise, faint dark speckle in light mode */ --grain: url(&quot;data:image/svg+xml,%3Csvg xmlns=&#39;http://www.w3.org/2000/svg&#39; width=&#39;160&#39; height=&#39;160&#39;%3E%3Cfilter id=&#39;g&#39;%3E%3CfeTurbulence type=&#39;fractalNoise&#39; baseFrequency=&#39;0.85&#39; numOctaves=&#39;2&#39; stitchTiles=&#39;stitch&#39;/%3E%3CfeColorMatrix type=&#39;matrix&#39; values=&#39;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05 0&#39;/%3E%3C/filter%3E%3Crect width=&#39;160&#39; height=&#39;160&#39; filter=&#39;url(%23g)&#39;/%3E%3C/svg%3E&quot;); } @media (prefers-color-scheme: dark) { :root { --paper: #242220; /* Night paper: warm gray-black */ --ink: #d8d4cb; --ink-soft: #8f8a80; --cinnabar: #cf6a58; /* Cinnabar brightened one step */ --hairline: #3b3833; --code-bg: #2e2b28; /* Switch to faint light speckle so grain stays visible on a dark base */ --grain: url(&quot;data:image/svg+xml,%3Csvg xmlns=&#39;http://www.w3.org/2000/svg&#39; width=&#39;160&#39; height=&#39;160&#39;%3E%3Cfilter id=&#39;g&#39;%3E%3CfeTurbulence type=&#39;fractalNoise&#39; baseFrequency=&#39;0.85&#39; numOctaves=&#39;2&#39; stitchTiles=&#39;stitch&#39;/%3E%3CfeColorMatrix type=&#39;matrix&#39; values=&#39;0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.04 0&#39;/%3E%3C/filter%3E%3Crect width=&#39;160&#39; height=&#39;160&#39; filter=&#39;url(%23g)&#39;/%3E%3C/svg%3E&quot;); } } /* ---------- Base typography: narrow, airy column ---------- */ body { background-color: var(--paper); background-image: var(--grain); /* Overlay the paper grain texture */ color: var(--ink); font-family: Georgia, &quot;Iowan Old Style&quot;, &quot;Noto Serif SC&quot;, &quot;Source Han Serif SC&quot;, &quot;Songti SC&quot;, SimSun, serif; font-size: 1.125rem; line-height: 1.9; max-width: 650px; margin: 0 auto; padding: 2.5rem 1.5rem; -webkit-font-smoothing: antialiased; overflow-wrap: break-word; /* Long URLs / words won&#39;t break the narrow layout */ -webkit-text-size-adjust: 100%; /* Prevent font inflation on mobile landscape */ } p { margin: 1.4em 0; } /* ---------- Blog title: a cinnabar seal as the signature ---------- */ .title h1 { font-size: 1.5rem; font-weight: 600; letter-spacing: 0.04em; color: var(--ink); display: inline-block; } /* Signature element: small cinnabar seal square after the title */ .title h1::after { content: &quot;&quot;; display: inline-block; width: 0.55em; height: 0.55em; margin-left: 0.45em; background: var(--cinnabar); border-radius: 1px; vertical-align: baseline; } .title h1 a, .title h1 a:visited { color: inherit; text-decoration: none; } /* ---------- Nav: small quiet text, no divider ---------- */ nav { font-size: 0.9rem; letter-spacing: 0.05em; margin-bottom: 2.5rem; } nav a { color: var(--ink-soft); text-decoration: none; margin-right: 1.2em; } nav a:hover { color: var(--cinnabar); } /* ---------- Heading hierarchy: distinguished by size and weight ---------- */ h1, h2, h3, h4 { line-height: 1.5; letter-spacing: 0.02em; margin-top: 2.2em; margin-bottom: 0.6em; } h1 { font-size: 1.6rem; font-weight: 700; } h2 { font-size: 1.3rem; font-weight: 600; } h3 { font-size: 1.05rem; font-weight: 600; } /* ---------- Links: thin cinnabar underline ---------- */ a { color: var(--ink); text-decoration: underline; text-decoration-color: var(--cinnabar); text-decoration-thickness: 1px; text-underline-offset: 3px; } a:hover { color: var(--cinnabar); } /* ---------- Post list: alignment as separation — two columns and whitespace, no divider lines ---------- */ .blog-posts { list-style: none; padding: 0; } .blog-posts li { display: flex; align-items: baseline; gap: 1.2em; padding: 0.3em 0; } /* Fixed-width dates form a tidy left column; titles align into the right column */ .blog-posts li span { flex-shrink: 0; min-width: 6.5em; font-size: 0.85rem; color: var(--ink-soft); font-variant-numeric: tabular-nums; } .blog-posts li a { text-decoration: none; } .blog-posts li a:hover { color: var(--cinnabar); } /* ---------- Tags: no underline, quiet gray text ---------- */ .tags a { text-decoration: none; color: var(--ink-soft); font-size: 0.85rem; } .tags a:hover { color: var(--cinnabar); } /* ---------- Blockquote: cinnabar left rule ---------- */ blockquote { margin: 1.6em 0; padding: 0.2em 0 0.2em 1.2em; border-left: 2px solid var(--cinnabar); color: var(--ink-soft); } /* ---------- Horizontal rule ---------- */ hr { border: none; border-top: 1px solid var(--hairline); margin: 2.5em auto; width: 60%; } /* ---------- Code ---------- */ .highlight, .code, pre, code { font-family: &quot;SF Mono&quot;, Menlo, Consolas, &quot;Sarasa Mono SC&quot;, monospace; font-size: 0.88em; background: var(--code-bg); border-radius: 3px; } code { padding: 0.15em 0.4em; } pre { padding: 1em 1.2em; overflow-x: auto; line-height: 1.7; border: 1px solid var(--hairline); } pre code { padding: 0; background: none; } /* ---------- Images and tables ---------- */ img { max-width: 100%; border-radius: 2px; } table { border-collapse: collapse; width: 100%; font-size: 0.95em; } th, td { padding: 0.5em 0.8em; border-bottom: 1px solid var(--hairline); text-align: left; } th { font-weight: 600; border-bottom-width: 2px; } /* ---------- Sub-headings (h2/h3): gray # prefix; h1 and blog title stay clean ---------- */ .post h2::before, .page h2::before, .post h3::before, .page h3::before { content: &quot;# &quot;; color: var(--ink-soft); opacity: 0.6; font-weight: 400; } /* ---------- Post page: date under the title ---------- */ .post time, time { font-size: 0.85rem; color: var(--ink-soft); letter-spacing: 0.03em; } /* ---------- Inputs and buttons: search box, subscribe form ---------- */ /* Covers the common #searchInput search plugin, native search/text inputs, and the email field on the subscribe page */ input[type=&quot;text&quot;], input[type=&quot;search&quot;], input[type=&quot;email&quot;], #searchInput { font-family: inherit; font-size: 0.95rem; color: var(--ink); background: transparent; border: 1px solid var(--hairline); border-radius: 3px; padding: 0.5em 0.9em; width: 100%; max-width: 100%; box-sizing: border-box; outline: none; transition: border-color 0.15s ease; -webkit-appearance: none; /* Strip default iOS input chrome */ } #searchInput { margin-bottom: 1.5em; } input::placeholder { color: var(--ink-soft); opacity: 0.7; } /* Focus: the border wakes up in cinnabar, echoing the link underlines */ input[type=&quot;text&quot;]:focus, input[type=&quot;search&quot;]:focus, input[type=&quot;email&quot;]:focus, #searchInput:focus { border-color: var(--cinnabar); } /* Remove the default clear (x) button so the field stays quiet */ input[type=&quot;search&quot;]::-webkit-search-decoration, input[type=&quot;search&quot;]::-webkit-search-cancel-button { -webkit-appearance: none; } button:not(.upvote-button), input[type=&quot;submit&quot;] { font-family: inherit; font-size: 0.9rem; letter-spacing: 0.03em; color: var(--ink-soft); background: transparent; border: 1px solid var(--hairline); border-radius: 3px; padding: 0.45em 1.2em; cursor: pointer; transition: color 0.15s ease, border-color 0.15s ease; } button:not(.upvote-button):hover, input[type=&quot;submit&quot;]:hover { color: var(--cinnabar); border-color: var(--cinnabar); } /* ---------- Footer ---------- */ footer { margin-top: 3.5rem; padding-top: 1.2rem; border-top: 1px solid var(--hairline); font-size: 0.85rem; color: var(--ink-soft); } footer a { color: var(--ink-soft); } /* Hide the &quot;Made with Bear&quot; attribution (the last span in the footer). Note: only allowed for paid Bear accounts or contributors — free accounts hiding it will get their styles reset by the platform. */ footer span:last-child { display: none; } /* ---------- Mobile ---------- */ @media (max-width: 600px) { body { padding: 1.4rem 1.1rem; font-size: 1.05rem; line-height: 1.85; } /* Scale the heading hierarchy down one step so narrow screens don&#39;t feel crowded */ .title h1 { font-size: 1.3rem; } h1 { font-size: 1.35rem; } h2 { font-size: 1.15rem; } h3 { font-size: 1.05rem; } h1, h2, h3 { margin-top: 1.8em; } /* Enlarge nav tap targets for thumbs */ nav { margin-bottom: 1.8rem; } nav a { display: inline-block; padding: 0.4em 0; margin-right: 1.4em; } /* Post list: date wraps above the title, row spacing increases */ .blog-posts li { flex-direction: column; gap: 0.1em; padding: 0.6em 0; } /* Tighter code-block padding, smoother horizontal scrolling */ pre { padding: 0.8em 1em; font-size: 0.85em; -webkit-overflow-scrolling: touch; } /* Wide tables scroll horizontally instead of breaking the page */ table { display: block; overflow-x: auto; white-space: nowrap; } hr { width: 100%; } } .upvote-count { display: none; } .upvote-button:disabled::after { content: &#39;liked!&#39;; } </pre></div>

2026/7/4
阅读更多

我的背包

<p>背包可能是除了电脑之外,我最看重的通勤装备。过去用的是 Bellroy,起了换包的念头,是因为几次大雨把包淋透之后,开始有点担心里面的电子产品。英国的雨来的太不讲道理。</p> <p>新背包现在用了 10 个月,非常满意,是 21L 的 Able Carry Daily Plus。这个容量很适合通勤,不会显得臃肿,也足够放下日常所需。</p> <p>它的外观比较内敛,但又与常规电脑包不同,没那么中规中矩,保留了一些辨识度。</p> <p>以下是我比较喜欢它的几个地方,加粗为我觉得日常通勤背包最重要的特点。</p> <ul> <li><strong>用料扎实,电脑仓有离地间隙,能随意放下。内部重心稳定的时候可以自然竖放在地上。</strong></li> <li><strong>X-Pac材料,防水。</strong></li> <li><strong>肩带厚实,综合背负体验好。</strong></li> <li>空包立体,不塌。这点很容易被忽视,不仅是为了外观好看。我的长期体验是硬挺、立体的包能把物品固定得更贴近背部,减少下坠和左右晃动,重心更稳定,所以背起来会稍微省力一些。</li> <li>收纳位足够,快取袋很深,日常拿东西比较方便。</li> <li>隐藏式水壶仓,也可以放雨伞。背包外观比较整齐圆润。</li> <li>相比于 Aer 和 Bellroy 等,国内没那么多假货,能比较放心的在淘宝买。</li> </ul> <p><img src="https://imgproxy.citrusreader.com/Nnba3qXKgeVd8Byyc_yRDAjTzMLhBwiTn0DIz5EEBjs/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wMy8wOS82eURrLzIwMjYwMzA5MTUyNTQ5MDA1LmpwZWc" alt></p> <p>主力设备是 MacBook Pro M2 Pro,偶尔会带上 iPad mini 看书。</p> <p>因为更看重电脑防护,所以我没有选择轻量化背包,而是把减重放在内部收纳上。现在会尽量使用 Cuben Fiber 材料的小物件,既轻,也不太吸水,清理起来比较方便,还能多一道防水层保护电子产品。</p> <ul> <li><a href='https://anotherdayu.com/2024/5628/'>EDC 小袋子</a></li> <li>下班后买菜用的购物袋。比起织物的购物袋,cuben 清理更方便,能比较放心的放一些海鲜和肉类。</li> <li>数码产品收纳袋</li> <li>餐具袋(一个叉勺)</li> <li>钱包(特别满意!可以塞卡、纸币和硬币)</li> </ul> <p><img src="https://imgproxy.citrusreader.com/lgjePc18i-eyObrfbK9I1B_7XIPYjQpushKcsrYCSFg/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNi8yMy9TZ2w2LzIwMjYwNjIzMjA0MDE2NjI5LmpwZWc" alt></p> <p>一些小物件:</p> <ul> <li>Leatherman 十合一工具剪</li> <li><a href='https://anotherdayu.com/2026/7651/'>Kaweco</a> Liliput Ballpoint Pen with Cap Black 圆珠笔</li> <li>人工泪眼滴液</li> <li><a href='https://www.amazon.co.uk/dp/B0F25VS2Y4?ref=ppx_yo2ov_dt_b_fed_asin_title'>WUBEN G5 Rechargeable Torch</a> 手电筒,晚上回家有一些没有路灯的路段。 这款手电筒能挂在背包上,警示后方,也能挂在肩带上照亮前路,偶尔还能顶替自行车灯。 TypeC 充电口,很实用。</li> <li>CNOC Outdoors ThruBottle 1000 户外水瓶,1L 刚好喝一天。</li> <li>运动围脖套和手套,冬天风大的时候很需要。</li> <li>Snow Peak X JINS 磁吸夹片眼镜,配有磁吸墨镜夹片。</li> <li>Patagonia Houdini jacket,轻薄,还轻度防雨。春秋换季的时候会随身携带。</li> <li>EuroSchirm 风暴伞,据说能扛住英国的妖风。陪了我一年半之后还是报废了。</li> </ul> <p>以前总想一包多用,既希望它能完美应对高频的日常通勤,又希望它能兼顾偶尔一次的短途旅行。为此我买过大包、小包,甚至还尝试过背着徒步包通勤。</p> <p>后来才明白,我总是把低频需求想得太重要。一个包当然可以尽量多用,但它首先应该服务于最高频的需求,而不是偶尔出现的那一次旅行。</p>

2026/6/24
阅读更多

告别摄影

<h2 id=>期望</h2><p>韩炳哲在《爱欲之死》里聊到:如果说有一样东西需要对当今社会日益频繁发生的「失望」负责,那么它不是不断升华的想象力,而是不断提高的期望值。</p> <p>过去,人们先经历,再留下记忆和图像。现在,我们还没有真正进入一个地方,就已经在观看它最漂亮的样子:最好的光线,最干净的构图,最适合发布的角度。</p> <p>经验反过来变成照片的生产过程。</p> <h2 id=-1>现实</h2><p>现实从来不是这样。</p> <p>天气可能不好,街道可能杂乱,行人可能很多,展览可能普通,餐厅可能拥挤,人可能疲惫,关系也可能尴尬。这些并不是现实的瑕疵,而是现实原本的质地。</p> <p>图像世界和网络会把这些东西过滤掉,留下「最好」的瞬间,传播那些易于展示和观看的一面。</p> <p>所以我们真正拿来比较的,并不是现实和想象,而是现实的完整经验,和图像筛选之后的理想片段。</p> <p>当现实的粗糙感被抹平,世界就像是说明书,不再体验,而是在核对;不再认真相处磨合,而是确认对方是否符合某个清单。</p> <h2 id=-2>告别</h2><p>摄影和其他艺术不同的地方也在于此。照片看起来最接近现实,却也最容易暴露现实的不可抵达。</p> <p>摄影用最接近现实的方式,提醒我们现实无法被真正占有。</p> <p>既像证据,又像告别。</p>

2026/6/23
阅读更多

中、日、英、法的摄影展馆

<p>这几年陆续去了几个摄影艺术中心:上海摄影艺术中心、Fotografiska、东京都写真美术馆、伦敦 The Photographers’ Gallery,以及巴黎 MEP。它们都以摄影为核心,但给人的感觉很不同。</p> <h2 id=>上海</h2><p>上海摄影艺术中心(SCOP)现在已经停业,是我摄影爱好的起点。在上海摄影和艺术市场还没那么蓬勃的时候,为爱好者们撑起了一片港湾,让更多人认识到摄影不仅是新闻、纪实、旅行… 又在西岸逐渐商业化成熟的时候,默默退出。</p> <p>这种退场本身,也像是上海艺术生态变化的一部分。</p> <p>它在上海的贵价平替,或许是苏州河边的 Fotografiska,有夜上海的感觉。展览、餐厅、酒吧、商店、灯光、社交氛围,尽在其中。它的布展确实一流,观展体验可能是这几个地方里最好的,灯光精致,空间细心,节奏也很顺。但它的票价和消费门槛,也让它和普通摄影爱好者之间拉开了距离。观战人群相对比较年轻潮流。</p> <h2 id=-1>日本</h2><p><a href='https://anotherdayu.com/2024/6223/'>东京都写真美术馆</a>风格严肃传统,有一种系统性:收藏、展览、研究、历史,分门别类。观展人群也很丰富,各个年龄段都有,其中老年观众相对较多。</p> <p>日本的摄影文化本来就深,这个展馆是成熟摄影艺术市场的模样,有大量本土摄影师的作品。它不需要急着证明摄影是不是艺术,因为这个问题似乎早已被社会接受了。</p> <p>上海 SCOP 对很多摄影艺术爱好者来说更像是启蒙,Fotografiska 则是发展的必经之路,开始商业化,东京都写真美术馆则可能是未来中国摄影展馆的模样。它不那么精致,但有足够的沉淀,也与社会达成了共识::摄影是一种值得长期保存、研究和观看的艺术形式。</p> <h2 id=-2>英国</h2><p>The Photographers’ Gallery 在伦敦中心的一角,周围是商业、游客、剧院、咖啡馆和街头人流,可以在逛街、散步、喝咖啡之间走进去,看一组影像,然后带着思考回到街上。</p> <p>我去过三次,感觉内容都很当代,共性是有「讨论感」,与公共社会议题结合的很紧密。</p> <p>其中一次还看到了博客圈很知名的 Internet Phone Book。这本书收录了几百个个人网站,包括设计师、开发者、写作者、策展人和教育者… 用一种很慢、很旧式的方式,保存那些被平台和算法遮住的个人互联网。</p> <p><img src="https://imgproxy.citrusreader.com/Elheb2zk0T2qzIo3caL2DJEIBC4OyG0iycWWCEKRZYE/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNi8yMy9hMGpILzIwMjYwNjIzMTEyMTUyOTQ0LmpwZWc" alt></p> <h2 id=-3>法国</h2><p>MEP(Maison Européenne de la Photographie),中文可以译为欧洲摄影之家。与东京都写真美术馆一样很系统完整,但给人的感觉不那么严肃,更放松舒适。它也没有试图讨论和启发些什么,几个策展都在淡淡的展示历史和现实。</p> <p>它的视频摄影展是我这两年看过最喜欢的,不矫揉造作,故弄玄虚,静静的能看很久。</p> <p>这种平和让我舒适,摄影不仅是一种视觉刺激,而是一个日常化的艺术形式,是一种需要被保存、研究、重读的现代文化。</p> <p>我平时大多还是在亚洲和英语文化圈活动,MEP 的纪念品商店给了我不少惊喜,在那里看到了很多以前不熟悉的摄影集。</p> <p>其中我最喜欢的是 Éric Tabuchi 和 Nelly Monnier 的《ARN / Atlas des Régions Naturelles》,于是买了其中一本。</p> <p>ARN 是一个长期摄影档案项目,记录法国约 450 个“自然区域 / pays”。不像德国的类型学摄影那样清冷,它更松更杂,关心的是人们生活得日常,那些很难被旅游叙事命名的地方,如何构成一个国家的纹理。<a href='https://www.archive-arn.fr/'>索引网站</a>也做的很漂亮。</p> <p><img src="https://imgproxy.citrusreader.com/K5YchJTJbtd05NxN9lfVzxcSIRQzftYr9ll2dxxupII/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNi8yMy94STN0LzIwMjYwNjIzMTEzNTIyNjA3LmpwZWc" alt></p> <p><img src="https://imgproxy.citrusreader.com/FewTUCJPwYX-wGfD3mB68YJ0RGfO47vyQmLcXSNw9mk/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNi8yMy9SNWdpLzIwMjYwNjIzMTEzNjQ5ODEzLmpwZw" alt></p> <p><img src="https://imgproxy.citrusreader.com/SX0vzKZjvIVDWBHhnkgMSWim2gmPqXNmRQ4b4gg53D4/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNi8yMy9sMnpRLzIwMjYwNjIzMTA1NzM2NzAzLmpwZWc" alt></p>

2026/6/23
阅读更多

尖塔之外的教堂

<p>尖塔、穹顶、彩窗、雕塑是许多名胜教堂的标志性符号。它们确实令人震撼和赞叹,但让我印象最深刻的却是这两个。</p> <p>一座是 Bath Bradford-on-Avon 的 Saxon Church of St Laurence,另一座是 Bristol 的 Clifton Cathedral。</p> <h2 id=bradford-on-avon>Bradford-on-Avon</h2><p>Saxon Church of St Laurence 早已停止运营,朴素的厚石墙,少窗窄门,内部是原生态的石材,和少量的桌椅,有一种苦修感。盎格鲁-撒克逊时期的建筑多是木构,能留下的并不多。走在这座教堂里,有一种很直接而原始的冲击。</p> <p>对面是 Holy Trinity Church,塔楼、尖顶、较长的中殿、哥特式窗,明亮体面。走在教堂里,就能感受到这个小镇的富庶。这种富庶并不炫耀,藏在厚重的石材、精细的雕刻、细致的维护之中。它说明这里一直有足够的资源、工匠、信仰和社群,去建造并持续照看这样一座教堂。</p> <p>这样两座教堂并置在一起,是令我印象深刻的原因。</p> <p>一个原始而克制,一个厚重而繁盛。</p> <p>英国并不是从一条单纯的本土脉络中自然长成的,而是在征服、混合、抵抗和吸收中逐渐形成的。</p> <p><img src="https://imgproxy.citrusreader.com/pFFfYNfdFPYIwIiofcgz3KJrKhGFoNQrpEt3S0GGzqQ/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNi8yMi91cTVGLzIwMjYwNjIyMjI0OTE3MjE3LmpwZWc" alt></p> <h2 id=clifton-cathedral>Clifton Cathedral</h2><p>Clifton Cathedral 不是一座中世纪教堂,而是一座 1960—70 年代的现代主义/粗野主义天主教大教堂。</p> <p>它没有哥特式尖拱、玫瑰窗、飞扶壁,这些我们想象中教堂应有的元素,而大量使用几何符号、混凝土、金属和木质,构成了一个很新的宗教空间。有一种探索性的感觉,更接近于科幻小说里未来宗教场所的模样。</p> <p>想到了安藤忠雄的「光之教堂」,这两座建筑都充分的利用光和阴影,引导身体感受,从而唤起神圣感。</p> <p><img src="https://imgproxy.citrusreader.com/C2HLlU456e2xdkuu20SHTBnV7RihoEnh2ha_-TfKxEo/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNi8yMi92SDZnLzIwMjYwNjIyMjI0MzUyNTE2LmpwZWc" alt></p> <p>不知道教堂、宗教未来会是怎样的形态、形式?</p>

2026/6/22
阅读更多

Beren 与 Lúthien 长眠处

<p>周末<a href='https://boardgamegeek.com/boardgame/421006/the-lord-of-the-rings-duel-for-middle-earth'>《指环王:中土对决》</a>玩的上头,想起托老的墓地就在附近。</p> <p>第二天一早,天气还算清朗,骑车出门,二十多分钟后,到了 Wolvercote Cemetery。很安静的公墓,有大片草地、树木、低矮墓碑、小礼拜堂。</p> <p>谷歌地图上专门标出了 「J.R.R. Tolkien’s Grave」,内部也有指引牌,沿着小路很顺利的找到了。</p> <p>墓碑上除了本名和生卒年份,还刻有 Beren 与 Lúthien。</p> <p>Beren 与 Lúthien 是 《精灵宝钻》中最核心的爱情故事之一。</p> <p>Tolkien 在写给儿子 Christopher 的信中提到:Edith 曾在约克郡的一片草地上为他跳舞;而在他的故事里,Beren 与 Lúthien 也在类似的场景中相遇。</p> <p>Beren 对应 Tolkien,Lúthien 则对应 Edith(他的爱人)。</p> <p>Lúthien 为爱放弃永生,选择与 Beren 共享凡人的命运。她的选择让精灵哀伤,却也让他们的爱情成为中土世界中关于希望、牺牲与超越死亡的永恒传说。</p> <p><img src="https://imgproxy.citrusreader.com/KUJQ7WFTfvO8ysKSuC0S7TvLRr-HVZ1WnRzvwdqMrzE/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNi8xMy9tZks5LzIwMjYwNjEzMTkxMzA0OTk5LnBuZw" alt></p> <p><img src="https://imgproxy.citrusreader.com/-2k5lbzGzO0KGeypPKjg9ksvW_UgBqYiP6tHEg6llWA/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNi8xMy9kNXZHLzIwMjYwNjEzMTkxMzEzNzYwLmpwZWc" alt></p> <p>后来又去了 Exeter College。</p> <p>Tolkien 年轻时曾在这里读书。喜欢学院墙壁上蔓延的藤蔓。</p> <p><img src="https://imgproxy.citrusreader.com/7aGYb0bzPAYQ1ER_obce0PFMe6W-YXGP5IopzVSqhFk/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNi8xNS91Tms3LzIwMjYwNjE1MTUxNzI1ODExLmpwZWc" alt></p> <p><img src="https://imgproxy.citrusreader.com/4kEzLoOrzPQ0_NHjPBAUYCc8ohyZiCCk93PjcEBho2M/raw:1/aHR0cHM6Ly9pLnNlZS55b3UvMjAyNi8wNi8xNS92Z1E2LzIwMjYwNjE1MTYwODE2OTE4LmpwZWc" alt></p> <p>写到这里,又想再读一遍《精灵宝钻》了。</p>

2026/6/15
阅读更多

推荐订阅

一只小仙若 的 bilibili 空间 - Powered by RSSHub

Cloudflare 官方博客中文版,涵盖安全、AI 和开发者相关内容

Recent content on forecho's Blog

Provides a better reading experience (full articles) over the official ones.