From 4653200961d82af7e4c290b3d7815ca4139d5ec5 Mon Sep 17 00:00:00 2001
From: muqiuhan
Date: Tue, 8 Jul 2025 07:58:31 +0000
Subject: deploy: 2882652e4e6f0c471aa8525aa078902afd1ba0d1
---
search.xml | 138 ++++++++++++++++++++++++++++++++++---------------------------
1 file changed, 78 insertions(+), 60 deletions(-)
(limited to 'search.xml')
diff --git a/search.xml b/search.xml
index 77d70039..bf592406 100644
--- a/search.xml
+++ b/search.xml
@@ -2509,6 +2509,24 @@ await prisma.$transaction(async tx => {
Technique
+
+ DADGAD 定弦
+ /2025/07/08/dadgad/
+ 模态定弦的空弦音不直接构成传统意义上的大调或小调和弦,而是形成一种听感上更为空灵、悬浮的“挂留和弦”(Suspended Chord)效果。
+DADGAD (发音为 “dad-gad”): 这是凯尔特音乐(Celtic Music)中最具代表性的定弦。它的空弦音给人一种既非大调也非小调的模糊感,充满了神秘和悠远的色彩,非常适合营造氛围音乐和复杂的指弹旋律。
+挂留和弦(Suspended Chord),通常简写为 “sus”,是一种在传统和弦结构上进行了巧妙“修改”的和弦。它的核心特点是: 用一个非三度的音,去“替代”或“悬挂”了原本决定和弦大/小调色彩的三度音 ,从而创造出一种独特的声音效果。
+想象一个标准的大三和弦或小三和弦,它由根音、三度音和五度音 构成。其中,三度音 是决定这个和弦听起来是明亮、开心的“大调”,还是忧郁、伤感的“小调”的关键。
+而挂留和弦,就是把这个关键的“三度音”暂时拿掉,换上别的音。最常见的替代者有两个: 一是**纯四度音 (Perfect 4th),二是 大二度音 (Major 2nd)**。
+sus4 和弦 (挂四和弦) 由 根音 (1) + 纯四度音 (4) + 纯五度音 (5) 构成,即用四度音 替代了原本的三度音。听感上,这是最常见的挂留和弦。它创造出一种强烈而悬浮的张力感 ,声音既不属于大调也不属于小调,听起来非常“开阔”。例如,一个 Csus4 和弦,就是由 C、F、G 三个音构成,取代了标准C大调和弦(C-E-G)中的 E 音。
+sus2 和弦 (挂二和弦) 由 根音 (1) + 大二度音 (2) + 纯五度音 (5) 构成,特点是用二度音替代了原本的三度音。听感上,sus2和弦的声音比sus4更柔和、更明亮一些。它同样具有开放、模糊的色彩,但张力感稍弱,听起来更像是一种平静、梦幻的色彩和弦。例如,一个 Csus2 和弦,就是由 C、D、G 三个音构成,取代了标准C大调和弦(C-E-G)中的 E 音。
+而 DADGAD 定弦方式的空弦音,其核心就是一个挂留和弦,具体来说是一个 Dsus4 和弦。当你弹响 DADGAD 的所有空弦时,你实际上听到的就是 D、G、A 这三个音在不同八度上的叠加和共鸣。这三个音不多不少,正好构成了 Dsus4 和弦。
+DADGAD 定弦的精髓,就在于它将整个吉他的开放状态变成了一个巨大的、共鸣丰富的 Dsus4 挂留和弦。
+这正是为什么它能产生那种“既非大调也非小调的模糊感”和“空灵、悬浮”的听感。因为三度音(F# 或 F)的缺失,和弦的“身份”被悬挂了起来,没有明确地告诉你它是快乐的(大调)还是悲伤的(小调),而是创造出一种充满想象空间、广阔而悠远的音景。
+]]>
+
+ Life
+
+
肠易激综合征 (IBS) 的病理学与药物治疗
/2025/06/30/ibs/
@@ -2666,6 +2684,18 @@ await prisma.$transaction(async tx => {
Technique
+
+ tick thread在Multicore OCaml中的作用
+ /2023/08/15/tick-thread%E5%9C%A8Multicore-OCaml%E4%B8%AD%E7%9A%84%E4%BD%9C%E7%94%A8/
+ Multicore OCaml的程序在启动时会运行一个 tick thread,其实现如下:
+static void * caml_thread_tick (void * arg) { struct timeval timeout ; sigset_t mask; sigfillset(&mask); pthread_sigmask(SIG_BLOCK, &mask, NULL ); while (! caml_tick_thread_stop) { timeout.tv_sec = 0 ; timeout.tv_usec = Thread_timeout * 1000 ; select(0 , NULL , NULL , NULL , &timeout); caml_record_signal(SIGPREEMPTION); } return NULL ; }
+
+这是因为Multicore OCaml的GC目前需要一个进程(或一个Domain)中的所有线程一起参与以避免并发访问。如果一个线程在system call上被阻塞,那么整个Domain就会被卡住,直到该线程可以参与当前的垃圾收集。为了避免这个问题,tick 线程可以代替被阻塞的线程执行垃圾收集操作。
+]]>
+
+ Technique
+
+
UUID v7 是如何加快 RDBMS 索引速度的
/2025/04/13/uuidv7-rdbms/
@@ -3224,18 +3254,6 @@ await prisma.$transaction(async tx => {
gallery
-
- tick thread在Multicore OCaml中的作用
- /2023/08/15/tick-thread%E5%9C%A8Multicore-OCaml%E4%B8%AD%E7%9A%84%E4%BD%9C%E7%94%A8/
- Multicore OCaml的程序在启动时会运行一个 tick thread,其实现如下:
-static void * caml_thread_tick (void * arg) { struct timeval timeout ; sigset_t mask; sigfillset(&mask); pthread_sigmask(SIG_BLOCK, &mask, NULL ); while (! caml_tick_thread_stop) { timeout.tv_sec = 0 ; timeout.tv_usec = Thread_timeout * 1000 ; select(0 , NULL , NULL , NULL , &timeout); caml_record_signal(SIGPREEMPTION); } return NULL ; }
-
-这是因为Multicore OCaml的GC目前需要一个进程(或一个Domain)中的所有线程一起参与以避免并发访问。如果一个线程在system call上被阻塞,那么整个Domain就会被卡住,直到该线程可以参与当前的垃圾收集。为了避免这个问题,tick 线程可以代替被阻塞的线程执行垃圾收集操作。
-]]>
-
- Technique
-
-
二〇二四年四月八日
/2024/04/08/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E5%9B%9B%E6%9C%88%E5%85%AB%E6%97%A5/
@@ -3580,6 +3598,18 @@ await prisma.$transaction(async tx => {
Technique
+
+ 儿童新型冠状病毒Omicron株和肺炎支原体混合感染重症肺炎1例
+ /2023/10/25/%E5%84%BF%E7%AB%A5%E6%96%B0%E5%9E%8B%E5%86%A0%E7%8A%B6%E7%97%85%E6%AF%92Omicron%E6%A0%AA%E5%92%8C%E8%82%BA%E7%82%8E%E6%94%AF%E5%8E%9F%E4%BD%93%E6%B7%B7%E5%90%88%E6%84%9F%E6%9F%93%E9%87%8D%E7%97%87%E8%82%BA%E7%82%8E1%E4%BE%8B/
+ 患儿 男, 3 岁 10 月龄,因“间歇发热 2 周伴咳嗽、气促”入上海交通大学医学院附属仁济医院(南部院区)定点医院隔离病房。 患儿病初发热,确诊为新型冠状病毒肺炎(简称新冠肺炎),热退 2d 再次持续高热>3d 伴气促、吸气性凹陷,胸部 CT 示右肺下叶片状密度影,诊断“重型新冠肺炎”,行支气管镜肺泡灌洗,宏基因组病原检测确诊为混合肺炎支原体感染,治疗好转出院。 提示临床医生诊治重型新冠肺炎时需警惕混合感染
+
+]]>
+
+ Medicine
+
+
冬季咳嗽辨别指南
/2023/10/22/%E5%86%AC%E5%AD%A3%E5%92%B3%E5%97%BD%E8%BE%A8%E5%88%AB%E6%8C%87%E5%8D%97/
@@ -3646,18 +3676,6 @@ await prisma.$transaction(async tx => {
Life
-
- 儿童新型冠状病毒Omicron株和肺炎支原体混合感染重症肺炎1例
- /2023/10/25/%E5%84%BF%E7%AB%A5%E6%96%B0%E5%9E%8B%E5%86%A0%E7%8A%B6%E7%97%85%E6%AF%92Omicron%E6%A0%AA%E5%92%8C%E8%82%BA%E7%82%8E%E6%94%AF%E5%8E%9F%E4%BD%93%E6%B7%B7%E5%90%88%E6%84%9F%E6%9F%93%E9%87%8D%E7%97%87%E8%82%BA%E7%82%8E1%E4%BE%8B/
- 患儿 男, 3 岁 10 月龄,因“间歇发热 2 周伴咳嗽、气促”入上海交通大学医学院附属仁济医院(南部院区)定点医院隔离病房。 患儿病初发热,确诊为新型冠状病毒肺炎(简称新冠肺炎),热退 2d 再次持续高热>3d 伴气促、吸气性凹陷,胸部 CT 示右肺下叶片状密度影,诊断“重型新冠肺炎”,行支气管镜肺泡灌洗,宏基因组病原检测确诊为混合肺炎支原体感染,治疗好转出院。 提示临床医生诊治重型新冠肺炎时需警惕混合感染
-
-]]>
-
- Medicine
-
-
发热及超高热危象
/2023/06/17/%E5%8F%91%E7%83%AD%E5%8F%8A%E8%B6%85%E9%AB%98%E7%83%AD%E5%8D%B1%E8%B1%A1/
@@ -3982,6 +4000,31 @@ await prisma.$transaction(async tx => {
Design
+
+ 实时搜索中的防抖函数
+ /2025/02/10/%E5%AE%9E%E6%97%B6%E6%90%9C%E7%B4%A2%E4%B8%AD%E7%9A%84%E9%98%B2%E6%8A%96%E5%87%BD%E6%95%B0/
+ 在实现实时搜索功能时,通常会使用输入框的事件监听器来捕获用户的输入变化,并在输入变化时发送搜索请求。为了避免过多的请求导致服务器负担过重,通常会使用“防抖”(debounce)技术来控制请求的频率。
+实现步骤
+监听输入框的变化:使用input事件监听器来捕获用户的输入变化。
+防抖处理:使用防抖函数来限制请求的频率。防抖函数会在用户停止输入一段时间后才发送请求。
+发送请求:在防抖函数中调用搜索请求。
+
+防抖函数示例 以下是一个简单的防抖函数示例:
+function debounce (func, wait ) { let timeout; return function (...args ) { const context = this ; clearTimeout (timeout); timeout = setTimeout (() => func.apply (context, args), wait); }; }
+
+实现实时搜索 假设你有一个输入框用于搜索患者:
+<script> import { onMount } from 'svelte'; import { patientsStore } from '$lib/stores/patients.svelte'; let searchTerm = ''; // 防抖函数 function debounce(func, wait) { let timeout; return function(...args) { const context = this; clearTimeout(timeout); timeout = setTimeout(() => func.apply(context, args), wait); }; } // 搜索函数 const searchPatients = debounce(async (term) => { if (term) { // 发送搜索请求 const response = await fetch(`/api/search-patients?query=${term}`); const data = await response.json(); patientsStore.mbglPatients = data; } else { // 清空搜索结果或恢复默认数据 patientsStore.mbglPatients = []; } }, 300); // 300ms 的防抖时间 // 监听输入框变化 function handleInput(event) { searchTerm = event.target.value; searchPatients(searchTerm); } </script> <input type="text" placeholder="搜索患者..." on:input={handleInput} bind:value={searchTerm} />
+
+请求发送间隔
+防抖时间:通常设置为 300ms 到 500ms 之间。这个时间足够让用户完成输入并减少不必要的请求。
+考虑用户体验:防抖时间过短可能导致过多请求,过长则可能让用户感到延迟。300ms 是一个常用的折中值。
+
+通过这种方式,你可以实现一个高效的实时搜索功能,既能保证用户体验,又能减少服务器的负担。
+]]>
+
+ Technique
+
+
急诊与灾难医学--烧伤
/2024/01/25/%E6%80%A5%E8%AF%8A%E4%B8%8E%E7%81%BE%E9%9A%BE%E5%8C%BB%E5%AD%A6-%E7%83%A7%E4%BC%A4/
@@ -4116,31 +4159,6 @@ await prisma.$transaction(async tx => {
Medicine
-
- 实时搜索中的防抖函数
- /2025/02/10/%E5%AE%9E%E6%97%B6%E6%90%9C%E7%B4%A2%E4%B8%AD%E7%9A%84%E9%98%B2%E6%8A%96%E5%87%BD%E6%95%B0/
- 在实现实时搜索功能时,通常会使用输入框的事件监听器来捕获用户的输入变化,并在输入变化时发送搜索请求。为了避免过多的请求导致服务器负担过重,通常会使用“防抖”(debounce)技术来控制请求的频率。
-实现步骤
-监听输入框的变化:使用input事件监听器来捕获用户的输入变化。
-防抖处理:使用防抖函数来限制请求的频率。防抖函数会在用户停止输入一段时间后才发送请求。
-发送请求:在防抖函数中调用搜索请求。
-
-防抖函数示例 以下是一个简单的防抖函数示例:
-function debounce (func, wait ) { let timeout; return function (...args ) { const context = this ; clearTimeout (timeout); timeout = setTimeout (() => func.apply (context, args), wait); }; }
-
-实现实时搜索 假设你有一个输入框用于搜索患者:
-<script> import { onMount } from 'svelte'; import { patientsStore } from '$lib/stores/patients.svelte'; let searchTerm = ''; // 防抖函数 function debounce(func, wait) { let timeout; return function(...args) { const context = this; clearTimeout(timeout); timeout = setTimeout(() => func.apply(context, args), wait); }; } // 搜索函数 const searchPatients = debounce(async (term) => { if (term) { // 发送搜索请求 const response = await fetch(`/api/search-patients?query=${term}`); const data = await response.json(); patientsStore.mbglPatients = data; } else { // 清空搜索结果或恢复默认数据 patientsStore.mbglPatients = []; } }, 300); // 300ms 的防抖时间 // 监听输入框变化 function handleInput(event) { searchTerm = event.target.value; searchPatients(searchTerm); } </script> <input type="text" placeholder="搜索患者..." on:input={handleInput} bind:value={searchTerm} />
-
-请求发送间隔
-防抖时间:通常设置为 300ms 到 500ms 之间。这个时间足够让用户完成输入并减少不必要的请求。
-考虑用户体验:防抖时间过短可能导致过多请求,过长则可能让用户感到延迟。300ms 是一个常用的折中值。
-
-通过这种方式,你可以实现一个高效的实时搜索功能,既能保证用户体验,又能减少服务器的负担。
-]]>
-
- Technique
-
-
慢性肺源性心脏病
/2024/01/23/%E6%85%A2%E6%80%A7%E8%82%BA%E6%BA%90%E6%80%A7%E5%BF%83%E8%84%8F%E7%97%85/
@@ -4818,6 +4836,17 @@ await prisma.$transaction(async tx => {
一般7~14天可好转
+]]>
+
+ Medicine
+ Life
+
+
+
+ 藿香正气水和藿香正气口服液的区别
+ /2024/09/01/%E8%97%BF%E9%A6%99%E6%AD%A3%E6%B0%94%E6%B0%B4%E5%92%8C%E8%97%BF%E9%A6%99%E6%AD%A3%E6%B0%94%E5%8F%A3%E6%9C%8D%E6%B6%B2%E7%9A%84%E5%8C%BA%E5%88%AB/
+ 虽然都是口服液体制剂,且看起来单支容量都一样,但是藿香正气水里含有 40%-50% 的乙醇,而藿香正气口服液不含有乙醇。同时藿香正气水不能和头孢一起服用(因为含有酒精),而藿香正气口服液可以和头孢一起服用。在选用之前,还希望大家能仔细看药品名称。
+正气水是酊剂,用的是生半夏,口服液用的是法半夏,比正气水多了炒的白术,生姜和大枣,两者的功效都是解表化湿,理气和中。藿香正气水由水煮及酒浸制而成,疗效最明显,但口感较差。由于霍香正气水药效比较峻猛,小儿和年老体虚者服用时应有医生指导。藿香正气口服液是藿香正气的换代产品。
]]>
Medicine
@@ -4885,17 +4914,6 @@ await prisma.$transaction(async tx => {
Medicine
-
- 藿香正气水和藿香正气口服液的区别
- /2024/09/01/%E8%97%BF%E9%A6%99%E6%AD%A3%E6%B0%94%E6%B0%B4%E5%92%8C%E8%97%BF%E9%A6%99%E6%AD%A3%E6%B0%94%E5%8F%A3%E6%9C%8D%E6%B6%B2%E7%9A%84%E5%8C%BA%E5%88%AB/
- 虽然都是口服液体制剂,且看起来单支容量都一样,但是藿香正气水里含有 40%-50% 的乙醇,而藿香正气口服液不含有乙醇。同时藿香正气水不能和头孢一起服用(因为含有酒精),而藿香正气口服液可以和头孢一起服用。在选用之前,还希望大家能仔细看药品名称。
-正气水是酊剂,用的是生半夏,口服液用的是法半夏,比正气水多了炒的白术,生姜和大枣,两者的功效都是解表化湿,理气和中。藿香正气水由水煮及酒浸制而成,疗效最明显,但口感较差。由于霍香正气水药效比较峻猛,小儿和年老体虚者服用时应有医生指导。藿香正气口服液是藿香正气的换代产品。
-]]>
-
- Medicine
- Life
-
-
血常规化验结果阅读指南
/2023/10/12/%E8%A1%80%E5%B8%B8%E8%A7%84%E5%8C%96%E9%AA%8C%E7%BB%93%E6%9E%9C%E9%98%85%E8%AF%BB%E6%8C%87%E5%8D%97/
--
cgit v1.2.3