Article
17983 discoveries · Hand-picked discoveries from the open web, newest first.
-
民歌、锤子与卡在工业革命中的我们
民歌、锤子与卡在工业革命中的我们 1. 最近我每周都去附近一个乐器店里,学即兴音乐。 这个乐器店藏在大马路边上的背街里。傍边一家情趣用品店,橱窗里皮具、铁链衬托着丰乳肥臀,整夜闪烁着粉红的光芒。乐器店老旧又多灰,既不性感也不张扬。但情趣用品店门可罗雀,乐器店却熙熙攘攘,门里是探头探脑的小年轻,门外是抽烟聊天的大爷们。 在曼哈顿,这样的地方一般都有点历史和故事。刚进门的墙上,贴着许多关于这个乐器店的报道,许多二、三十年前的当地报纸,里面有着乐手们泛黄的照片,有 Bob Dylan、John Lennon 等许多叫得上名字的音乐人。不过你也没功夫细看,因为一进门,就被从天花板上垂下的许多乐器占满了眼帘。木头的、金属的,牛皮的、蛇皮的,各种叫不出名字的乐器,小小的房间里几乎转不过身来。 这个乐器店卖“世界乐器”,就是各地的传统乐器 。不过这里的乐器我觉得很少会有人买,与其说是卖,不如说是收藏。这个乐器店已经开了快七十年,乐器店本身差不多是个古董藏品、吉祥物了。 音乐课则是在地下室,基本也被乐器占满。中间一小圈椅子,一头有一个挤在一堆乐器中间的微型舞台和话筒,在每周开放麦时使用。每次上课,五六个吉他手挤在这里;以及我,抱吉他似的抱着大提琴,摸索怎么把大提琴当吉他弹。 2. 我喜欢世界各地的即兴音乐。来纽约之后,有时带着五岁的儿子,有时自己,去探索一些奇怪的地方:哈莱姆黑人教堂里的布道,布鲁
刘果的小站 · ZH
-
重回舞台,做音乐
重回舞台,做音乐 tldr: 这周末的 纪实戏剧演出 ,和一个用来理解音阶的 网页应用 。 最近因为给表妹的毕业作品帮忙,时隔十四年后,又要做戏剧了。不过这次不导也不演,而是配乐。 这是部纪实戏剧,全部台词都来自于真实的对话、活生生的人物。因为对白是真实的,就和真实世界一样无法简单干净地归类,最后的剧本也就如一张巨大的拼图,穿越时间空间、民族国家。访谈的话题从项羽和虞姬的故事出发,历史、京剧、陈凯歌 93 年的电影《霸王别姬》、陈佩斯 25 年的戏剧和电影《戏台》层层相叠,蔓延到政治、文化、这个世界正在经历的战争与 AI 变革,又回到受访者们各自不同的文化、国家和成长背景。 我一直喜欢全世界各地的音乐,却难以找到适合的地方用上我这大杂烩的口味,在这部戏里正好派上了用场。每个地区、文化都有自己独特的音律和节奏,用它们来描绘剧里多样的情绪,让剧情的起伏带着观众环球旅行。过去几个月我在探索蓝草、布鲁斯,琢磨怎么在大提琴上即兴、怎么把不同的音阶融合在一起,这下也派上用场了。不过,很快我就发现,我的乐理知识还是不够用。 在后来成为剧本的访谈中,我也是受访者之一。访谈里,我提到了一段从未公开讲过的故事,关于我在亚马逊雨林里死藤水的经历。那段经历的情感清晰,该用什么音乐我也很明白。它让我想起西班牙的弗拉门戈和葡萄牙的法朵,有小调的忧郁,也有南欧的明朗;是伤逝又是解脱,是阳光下的悲欣交集。在大提琴
刘果的小站 · ZH
-
纽约禅堂
纽约禅堂 白天的纽约禅堂 一、 傍晚,熙熙攘攘的人群和车流间,我从南曼哈顿骑车到上东区。人群越来越稀少,金碧辉煌的银行、医院与宾馆越来越高大。粉紫色的晚霞褪去,昏黄的路灯亮起,明晃晃的车灯来来去去。空旷起来的街道上,一个流浪汉大喊大叫,路过的情侣们攥紧彼此的手。 我在高楼脚下停好自行车,找一个叫纽约禅堂的地方,今晚有初学者的坐禅。走过几个街区,来到一个圆形的门洞,两扇半圆的木门紧闭。圆润的木色、圆润的门框,一看便知是日式寺庙。敲门,一个戴着眼镜、身材敦实的年轻僧人引我进屋。 进门脱鞋放好,纽约的喧嚣被关在身后,眼前是一座小巧的日式民居。沿着狭窄的木楼梯,往二楼去。楼梯两旁挂着一些和尚的画像,让我想起寒山拾得、八大山人的画。熟悉的风格、熟悉的审美,一丝淡淡的乡愁。 我来到二楼的一个大房间,眼前三张沙发,围住一个茶几。右手边,空旷的地下围坐着一小群穿着僧袍的人,空气中交织着肃穆与温暖。远端一扇大窗户,面前供奉着接近真人大小的释迦牟尼像。佛像两边的墙上,挂着中文的行草书法。坐在佛像跟前的和尚,是个壮实的欧裔男子,约莫三、四十岁,精神而内敛,是今天负责带领我们的禅师。禅师指引我去茶几另一边的更衣室,那里有供来访者借用的僧袍。 我换上了僧袍,袍子长长的下摆拖到地面,步伐变得小心翼翼。我来到一圈人中坐定,刚好赶上自我介绍。安静的大厅里,人们的语气缓慢而斟酌,一丝羞怯,几分好奇和兴奋。除了禅师之
刘果的小站 · ZH
-
奥林匹克国家公园
奥林匹克国家公园 1. 华盛顿州在美国的西北角,最西北的尖角上是奥林匹克国家公园,是我们的下一站。多年前我曾经在这里短短呆过两晚,一直想再次回来。 奥林匹克国家极为广袤,从海岸到高山。但最为特别的是温带雨林:雨林一般地处热带,而这是全世界少数几处地处温带的雨林,也是地上生物量最高的生态系统。记忆里那些从树梢挂下来的苔藓,那些透过苔藓与雾气洒下来的阳光,如同仙境一般,让我想再来这里待上一段时间。 许多天以后,我们到了美国的最西北端,一片开阔的卵石滩。卵石摊上散落着无数巨树,倒着的,立着的,来自背后的土丘,千万年来长出大树,千万年来不断落入海滩。海浪无意,松树无心,阳光与海风不断地洗刷、漂白,成了一座座天涯海角上矗立着的洁白雕塑。 海风中呆立的我,已经被旅途和劳作清空。如同一个空空的水瓶,回荡出风的声音。我看着这广袤无垠的天地间,一棵棵树的由生到死,一朵朵云的由生到死。 不久前,我刚离开合作了许多年的团队。像一场漫长的恋爱,一场繁复的梦,到了告别的时候。走过了难免的教训和弯路,照见了自己的愚蠢和自负,可我还无暇梳理,只求在山林间能找回自己。而大地,永远可以帮你丈量自己。你用脚步去丈量她,直到你精疲力尽,直到你知道自己的分寸,直到你安坐下来。 我们终于来到奥林匹克的山林间,睡在了巨树下。苔藓盖满了整个世界,毛茸茸的,温柔而安静。我也终于有机会睡个懒觉。一觉醒来,家人们要么在休息,要么去徒
刘果的小站 · ZH
-
From Learning to Playing
From Learning to Playing An interactive talk for young musicians at Overture Music Intensive: how AI is helping my music journey. From improvising on a fixed-scale handpan at DWeb Camp, to blending the world's scales for an experimental play, to using AI to learn regions, understand your own taste, and build the tools you play with. Best experienced full-screen — use ← → (or swipe) to move between sections. Open the talk full-screen →
刘果的小站 · EN
-
DWeb Camp,下次见
DWeb Camp,下次见 汇集 到达柏林以前,我在 Signal 群里刷着消息,时不时焦急地查看天气。 DWeb Camp 的营地在柏林郊区一个偏远的山林里,曾是纳粹时期秘密警察的基地,名为“老地狱”。原计划要乘火车来这里,可突如其来的热浪席卷德国,维修中的铁路停了工。这下子,该怎么到这前不着村、后不着店的地方?Signal 群里,大家来来回回设计了许多后备方案,从大巴、小车、自行车到铁路换乘,都很麻烦。到达前几天,热浪开始退去。 就在出发前两天,终于确认,列车恢复运行了。 我和妻子提着行李箱,带着柏林的余温,从列车一脚踏入小站。小站边孤零零的站牌,站牌后郁郁葱葱的树林,迎面而来一股凉意。上次来 DWeb Camp 已是四年前;那时在加州北部,雄伟的红杉林脚下。这次是德国的温带阔叶林,没有红杉林的郁闭和肃穆,却好似华东和美东,有些温馨和熟悉。 沿着树林,紧贴着铁道的几步外,就是车站出口。出口边,一个年轻的姑娘在和两个倚着自行车的男子聊天,看见我们之后热情地向我们挥手。我迟疑地挥了挥手,心想自己是不是见过她,但是忘了名字。走过去攀谈起来后知道,打招呼的姑娘叫 Zenna,开车来接我们去营地。另外两个男子也是来 DWeb Camp 的,因为一点急事需要先回柏林,过几天再回来。 Zenna 的小车摇摇晃晃地行驶在乡间小路。路上,她说起自己来自瑞典,现居丹麦,提前几天来营地帮忙,然后问起
刘果的小站 · ZH
-
再一次,重新开始
已经数不清这是第多少次重新折腾博客了。 <!--more--> 如果我没记错的话,我最早应该是 2016 年开始折腾博客的,前前后后折腾过好几次,用的技术栈都是老掉牙的 WordPress ——虽然老,但是足够可靠。这次倒是换了点新意,我终于抛弃了 WordPress,转向了 Hexo 来写博客,其实主要原因还是我懒得维护一个 VPS 了,用 Cloudflare 的 Pages 服务足够省心。况且白嫖大公司资源的事情,何乐而不为呢?这个域名也是 2017 年开始使用的,中间因为种种原因短暂换过其它域名,最终还是用回了这个,并且大概会一直用下去。 重新开张了好几次,文章也散佚得差不多了,虽然我过去 9 年来也没写出过什么有价值的博文,无非水来水去,想到什么写什么。个人博客有一个好,它完全置于自己的掌控之下,不用看平台脸色,也不用听些弱智用户的弱智评论——在如今中文互联网 APP 横行,网络内容逐渐孤岛化、暗网化的今天,会访问个人博客的已经是互联网用户中的佼佼者了,更何况个人博客意味着“某个人的网站”,留言总要顾忌些主人的面子。 2022 年应该是我最后一次写年终总结和生日文章的一年,已经过了三年了,我的人生轨迹也发生了当时从未想过的巨大变化。果然人都不知道,自己的一生不可以预料。新冠疫情打破了我的留日计划,让我不得不思考如何在国内谋生,我也从来没有想过自己会来到长三角地区,这个我此
Dort 的博客 · ZH
-
漂浮在异乡 —— 2025 年终总结
在你有机会选择的时候,不要让自己后悔。 <!--more--> 上一次写年终总结还是 2022 年,那一年是我被迫放弃留日计划、刚刚考上国内研究生的一年。彼时俄乌冲突才刚拉开序幕、COVID-19 的余威尚存,世界一团乱麻,而我个人也在那个混乱的春天经历了一个或许足以改变人生的分岔点。三年之后的今天,世界向着此前从未料想过的方向愈行愈远,而我也从漫长的学生生涯中毕业开始工作,走入了下一个足以改变人生的分岔点。在这时阴差阳错地重拾博客开始写年终总结,可能真的有什么冥冥之中的命运安排。 学习和工作 只要肉体的强制或其他强制一停止,人们会像逃避瘟疫那样逃避劳动。 ——马克思 今年的上半年主要忙着硕士毕业的一系列程序,比如毕业论文。与许多理工科研究生对组会、实验室和导师的痛恨相反,文科研究生更像是三年乌托邦体验卡,虽然每个月只有600元低保可以领,但在这里可以充分享受精神生活的富足。这三年或许会成为我永远怀念的三年:交到了朋友,有些许的经济自由,以及可以完全沉浸于自己喜欢的领域。也正因如此,我下半年经常反复思考自己是否应该辞职读博,不为那个没什么用的博士学位title,只为能将这种美好的生活再延长一些。不过就在最近,我和自己久未联络的一位本科舍友重新取得了联系,得知了他博士退学的消息,看来真实的读博之路远比我想象的要更困难,而我其实也只想继续蜷缩在象牙塔,寻找远离世俗的一方净土罢了。如此看
Dort 的博客 · ZH
-
MacBook Neo 使用体验
经过了 20 多天望眼欲穿的等待,我终于等到了属于年轻人的第一台 MacBook 。顺便一提,本文的写作和部署完全在这台 MacBook Neo 上进行。 <!--more--> 购买缘起 时间回到 2026 年 3 月 4 日,苹果发布了几款新品,其中就包括了一个月后引发热议的这台 MacBook Neo。不过其实我最开始下单的并不是 Neo ,而是常规更新的 iPad Air M4 ,原因无他,只是因为上学时购买的 iPad Air 容量只有 64GB ,用起来实在捉襟见肘。 然而,这台 iPad Air 的到货却让我心生疑惑——这与旧的那台 Air 到底有什么不一样?诚然,苹果向来是个没有什么换机新鲜感的品牌,通过完善的 iCloud 迁移服务,新机和老机之间几乎用不出什么区别,这种感觉我已经在 iPhone 15 换 iPhone 17 的过程中体验到了一次。不过这次令我心生疑惑的是另外的事情:我花了近 5000 元,买到的仍是一个没什么生产力可言的娱乐工具。尽管就在 3 月初, WPS 终于发布了功能与桌面版 WPS 所差无几的新版 WPS for Pad ,算是终于填补了 iPad 在文字生产力方面的空白。但面对这样一个贵价玩具,我还是不由自主地把目光投向了同一批发布的震撼新品:MacBook Neo。 必须承认,MacBook Neo 吸引我的地方正是 macOS 系
Dort 的博客 · ZH
-
把博客从 Hexo 迁移至 Astro
今天花了半天时间,把博客从原本的 Hexo 迁移到了由 Astro 驱动的 Fuwari 上面,从 WordPress 到 Hexo 再到 Astro,这已经是我第三次更换博客技术栈了。 <!--more--> 其实这次更换技术栈没有什么特殊的理由,折腾这种事情哪里需要什么原因呢?硬要说的话,可能就是图 Astro 更快的加载速度,以及 Fuwari 更美观的界面。 首先按 Fuwari 官方引导,使用 create-fuwari 来创建一个新项目: pnpm create fuwari@latest 接下来修改 src/config.ts ,配置博客标题等自定义配置。通过修改 src/constants/constants.ts 文件,可以调整banner的高度。 // Banner height unit: vh export const BANNER_HEIGHT = 70; // 这是除首页外其他页面里banner的高度,默认35 export const BANNER_HEIGHT_EXTEND = 30; // 通过下一行不难发现首页banner高度等于BANNER_HEIGHT加上EXTEND,设为30正好是100vh export const BANNER_HEIGHT_HOME = BANNER_HEIGHT + BANNER_HEIGHT_EXTEND; 然后将
Dort 的博客 · ZH
-
为 Astro 添加中英文混排插入空格和直角引号转换功能
本文由DeepSeek V4 Flash 0731赞助播出,感谢梁圣开源。 <!--more--> 书接上回,我在Hexo中习惯用 hexo-filter-copywriting 解决中英文混排的空格问题,以及弯引号到直角引号的自动转换。但是Astro中没有这么方便的插件,只能让蓝色大肥鱼DeepSeek帮忙手搓一个。 DeepSeek给出了两种方案:将 pangu.js 挂载到 Layout.astro 中,在客户端渲染完成后进行转换,另一种则是写一个 Astro integration,在 astro:build:done 钩子里处理 HTML,并直接写入最终的HTML文件。对于 dev 预览模式,则再创建一个中间件进行客户端处理。这种方式比较类似于hexo-filter-copywriting插件原本的体验,本博客最终也是采用了这个处理方式。 首先安装所需依赖: pnpm add pangu cheerio 然后创建核心处理文件 src/utils/pangu-utils.ts : import pangu from 'pangu'; import * as cheerio from 'cheerio'; // 中文基本区范围和全角标点范围 const CJK = '\\u4E00-\\u9FFF'; const CJK_PUNCT = '\\u3000-\\u303F\\u
Dort 的博客 · ZH
-
制作 remark 插件并添加到 Astro
依旧由DeepSeek V4 Flash 0731赞助播出,依旧书接上回,不得不感叹AI确实是新质生产力(笑)。 <!--more--> 众所周知,Fuwari自带了一个GitHub卡片功能。不过让我好奇的是这个卡片的语法: ::github{repo="<owner>/<repo>"} 这显然不是标准的Markdown语法,而是通过 remark 实现的。简而言之,Fuwari使用 remark 和 rehype 来处理Markdown文档。 remark 用于把Markdown文档转换为HTML代码,再由 rehype 进行后续调整。而 :: 语法则是由 remark-directive 插件来处理的。显而易见的,我们也可以自己来制作一个 remark 插件,定制自己需要的功能。 诶🤓☝️,我正好有一个想法:在Hexo时代,这个博客的友链卡片是通过手写HTML的方式插入到Markdown文档中的,十分繁琐且累眼。这个HTML片段类似这样: <a class="profile-card profile-card-link no-styling" href="链接" target="_blank"> <div class="avatar-wrapper"> <img src="头像地址" alt="头像"> </div> <div class="info-wrapper"> <s
Dort 的博客 · ZH
-
为 Fuwari 添加网站统计侧边栏
一切起源于我想在 Fuwari 上复刻 Hexo 博客页脚的全站文章篇数和字数,以及运行时长统计。 <!--more--> 统计文章篇数和字数 自从切换到 Fuwari 的第一天起,我就在想,统计全站文章篇数和字数这么简单的功能,Astro 不应该做不到才对,更何况 Fuwari 已经自带了每篇文章字数统计的功能,把它们全加起来不就行了? 观察 Fuwari 的字数统计和阅读时长插件 src/plugins/remark-reading-time.mjs : // biome-ignore lint/suspicious/noShadowRestrictedNames: <toString from mdast-util-to-string> import { toString } from "mdast-util-to-string"; import getReadingTime from "reading-time"; export function remarkReadingTime() { return (tree, { data }) => { const textOnPage = toString(tree); const readingTime = getReadingTime(textOnPage); data.astro.frontmatter.minutes =
Dort 的博客 · ZH
-
小众哥你赢了:从空气到领克 07 GT 的购车之路
我看领克07 GT搞得不错,内饰外观够帅,车内空间够大,底盘船感基本消灭,有HUD,驾驶体验也受重视,如果加上3yc车标,领克07 GT就是我理想中的海豹06 GT DM-i。 <!--more--> 在一年多以前,我还没研究生毕业的时候,家里就已经偶尔会提到给我买车的话题。经历了冬天和梅雨季,就算不想全力倚父的我也败给了天气,开始考虑到底要不要买一辆车,要买的话买什么车。在这个问题上,汽车专业毕业的家父和我之间的观点经历了几轮微妙的分歧。 “剁椒鱼头”? 本着极致的性价比思维,我一开始考虑的其实是以五菱宏光 Mini EV 为代表的“剁椒鱼头”车型。原因无他,不过便宜罢了——起码一开始我以为它便宜。但事实上,常见的“剁椒鱼头”,比如五菱宏光 Mini EV 或者长安糯玉米,或者尺寸稍大一些的吉利星愿、五菱缤果、比亚迪海豚或者 MG 4,新车落地价最低也要6万多元,配置稍高些的也突破了10万大关。在这种不算便宜的价格下,要忍受A0级汽车更大的噪音、更低的安全性和续航里程,并不是什么划算的事情。况且,在10万元以内还有一位所有汽车最严厉的父亲等待着它们,如果贯彻性价比选车的标准,似乎没有道理不选这一位:比亚迪秦 PLUS DM-i。关于这辆神车,等聊到插混车型的时候再慢慢道来也不迟。如果只为了便宜,也有3万左右的二手车型可选,但二手电车失去了首任车主终身三电质保,万一出了故障维修极其
Dort 的博客 · ZH
-
你不是学广告艺术设计专业的吗?怎么喜欢玩代码了?
你不是学广告艺术设计专业的吗?怎么喜欢玩代码了? 这句话最近一直在想,尤其是我的网页开始转静态化之后,就是不是的出现在我的脑海之中。确实,我自己是广告专业的,但是我其实也是阴差阳错的选错了专业。我以为广告专业是天堂,实则我其实
梅之夏 · ZH
-
教资初次完成,准备迎接新考试,新学期
虽然是7天没有发博客,但是这7天之内我也干了太多事情,多到我觉得似乎已经过去了2周了。那么我就用有序编号来说一下这一周我干的事情吧: 今天:教资考试。 A.
梅之夏 · ZH
-
当学习成为一种恐惧
来,今天写一篇博客文章,就是说这篇文章是以我语音输入的,然后就是今天被英语六级打的体无完肤。其实来说,这也是我第1次用语音输入来完成一篇文章,也不知道这种那个方式怎么样。 不知道在座的各位英语六级合格了没有,反正在我的眼里看来,这就确实是一个很难很难,很难很难
梅之夏 · ZH
-
我的个人网站都用上 HSTS 了,大广赛还在 HTTP?
目前,登录页还是HTTP的网站,估计很少很少了。但有个网站,自始至终还在HTTP处理登录请求。经过网络抓包,发现事情很严重。
梅之夏 · ZH