Article
17955 discoveries · Hand-picked discoveries from the open web, newest first.
-
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
-
免費的閱讀器真香
這篇文是來還債的 XD 部落友見面會 大概半年前, 派 在他的部落格送出他的 Meebook M7 ,剛好那個時候我也在研究電子書,我馬上手刀寄信乞討!(嘿嘿那台電子書就是被我帶走了啦 owo)後來他還特地跑了一趟台北!跟我見了個面順便面交,真是感恩惜福! 當天和他聊了很多,就像是 Each 說的 ,雖然和對方沒有見過面、交流也僅止於部落格留言,但一坐下來就有不少的共同話題,這種感覺真的是很奇妙。 扯得有點遠 XD, Anyway,最近幾個月我滿頻繁用這台電子書的,主要是在通勤的時候,沒事就把電子書拿出來讀。也是因為這樣,如果有在看我 最近在幹嘛 的話,就會看到這幾個月我看了不少書~ 也因為這台電子書來自於無私的貢獻,我想我也應該發揮 開源人 的精神,把這份資源再公開出來,所以我打算來分享一下我的使用心得! 心得開始! 但在開始之前,我先來說說自己的閱讀習慣好了! 在收到這台電子書以前,我沒有固定的閱讀習慣,平均每年閱讀書本的數量應該在 5 本以下。我沒有平板電腦,比起電腦、手機來說,我更喜歡閱讀紙本書。 我比較常看的書本類型是科普,而且不怎麼看文學作品、漫畫。語言大部分是中文,少數是英文。平常其他的閱讀內容,就只有部落格或技術文件。 大小 這台電子書的螢幕是 6.8 吋,灰階的電子墨水,解析度 1648 x 1236,300 PPI。我之前沒有仔細看過電子墨水的螢幕,跟手機比的話
資工小廢物 - JN · ZH
-
LED 耳環誕生(二):所以我說那個電流有多大?
上次 說到我寄信給荷蘭的 Ayke 大大,還有很好奇他的耳環為什麼憑什麼在那麼亮的情況下還可以有那麼長的續航? 於是在 哥們的幫助下 1 好奇心的驅使下,我去翻了一下 他的部落格 ,不得不說,他的 Charlieplexing 還有 Binary Code Modulation 都把他用到的高端技術寫得很清楚!如果有想要用 MCU 去控制大量 LED 的可以參考參考! 又…敗家 BUT,除了知道他用的是 CR1225 這個電池以外, 他還是沒有寫到那關鍵的電流是多大呀! 那只好自己來實驗了。高中的時候我就是讀電子科的,我有很多電子零件可以用,只不過他們都放在台中,我似乎也沒有時間跑回台中一趟。 恭喜!重買! 反正也就是簡單的麵包板還有 LED 跟電阻而已,花不了多少錢,這些以後也都還會用到的(說服自己 ing) 實驗開始 我買了小的麵包板還有藍、粉、白的 LED(也就是 跨旗 的顏色),還買了 1 kΩ ~ 10 kΩ 不等的電阻,準備來自己實驗出數據。 在學校的學到的是:LED 要串限流電阻,在 5V 的情況下,一般來說會選用 220 Ω ~ 330 Ω。但我這個耳環的電壓已經很確定會是 3V 了,而且我也只需要在暗處看得清楚就行了( 跨性別遊行 在晚上),所以我才選 1 kΩ ~ 10 kΩ 這個 range 來實驗。 所以我在收到貨以後,在麵包板上拼呀拼、插呀插的……燈楞!數
資工小廢物 - JN · ZH
-
過程
最近有很深刻的體悟,感受到什麼叫做 「而是你要享受這個過程」 ,這句話聽上去是廢話,實則不然。 沉迷 最近沉迷於 做 LED 耳環 、研究 分體鍵盤 ,過去我也曾經沉迷於做吉他效果器、 寫部落格 、 縫紉 、自架伺服器、 畫 pixel art 等等的,每一件事情都帶給了很多樂趣,也把我推進那個充滿動力、或是最近比較流行的「高產出」的狀態。 無論那樣的狀態叫什麼,總之我很喜歡那樣的自己,也想試圖自己 多製造出一點那樣的時間 。但事與願違,大部分的時間裡,我還是提不起力氣去做事情。 「晚九朝六」的作息 雖然是個突破,但 現實 才沒有那麼簡單,我想我只是搜集到了一整幅拼圖中,稍微比較大的那一塊而已,至於其他的,也許還得找找看,再把他們擺到對的位置上才行。 回到「那個過程」 這個概念早就不新鮮了,是小朋友都懂的道理(吧),早在我第一次用修改器通關遊戲,期待得到滿滿的爽感,卻發現等待著自己的只是空虛的時候,我就懂這個道理了。 雖說人人都懂這個道理,但要領悟可不如想象中的容易。或者說,你覺得自己懂了,其實你並沒有、並沒有、並沒有,你總能在遇到新的人生體驗的時候,才發現過去的自己居然是那麼無知。 這次帶給我新體悟的,是朋友願意免費送我的一台舊的開源 3D 列印機,只是就連機器的主人也說「如果要的話我會買現成的,現在的機器都很成熟了」。的確,現在的入門級 3D 列印機已經比一趟旅行還便宜,而且功
資工小廢物 - JN · ZH
-
JN 最近在幹嘛(20261010 更新)
這個月變得異常地充實,而且接下來這個月的事情也非常多,所以這也是我這陣子很少寫文章的籍口 XD 這篇文從上個月底就開始寫了,寫到現在這個月都過了超過 1/3 了才發出來,我這個月真的是忙過頭了 QwQ ⛏️ 最近在搞的 LED 耳環 自從 上一篇 開了一個新的連載之後,結果是又過了快一個月才又更新 第二篇 。 後來也還有買一些零件回來自己試試啦,而且 LED 吃的電流比我想的還要小很多,應該會比想像中的簡單很多! 其實我已經把耳環給做出來了!之所以會這樣,除了有時候比較沒動力以外,在做這些事情的時候也很難一邊記錄,結果就是文章和實際的進度大脫節,就請大家耐心等待啦。 BTW:如果對這個耳環有興趣也想要實體擁有的,可以填一下這個 預購表單 ! 分體鍵盤 因為我長期有駝背的問題(從小時候到現在),而且現在不管是的工作也好、休閒也好,都是很長的時間都是在用鍵盤,這某程度上是會維持我的駝背的。我已經有意識地在避免自己進入駝背的狀態,但用鍵盤的這個動作(雙手靠近、放在身體的正前方)本身就是很容易駝背。 我很久以前就在 Livecoding DJ Sam Aaron 的直播看過分體鍵盤這種東西了,當時只覺得是可以用來配合 MIDI controller 之類的設備一起演出的工具,後來意識到自己駝背的問題和用鍵盤有關係了之後,才開始有想要入手的想法。 前幾個月的 COSCUP 的活動中,有看到有
資工小廢物 - JN · ZH