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,其实现如下:

+
/* The tick thread: posts a SIGPREEMPTION signal periodically */

static void * caml_thread_tick(void * arg)
{
struct timeval timeout;
sigset_t mask;

/* Block all signals so that we don't try to execute an OCaml signal handler*/
sigfillset(&mask);
pthread_sigmask(SIG_BLOCK, &mask, NULL);
while(! caml_tick_thread_stop) {
/* select() seems to be the most efficient way to suspend the
thread for sub-second intervals */
timeout.tv_sec = 0;
timeout.tv_usec = Thread_timeout * 1000;
select(0, NULL, NULL, NULL, &timeout);
/* The preemption signal should never cause a callback, so don't
go through caml_handle_signal(), just record signal delivery via
caml_record_signal(). */
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,其实现如下:

-
/* The tick thread: posts a SIGPREEMPTION signal periodically */

static void * caml_thread_tick(void * arg)
{
struct timeval timeout;
sigset_t mask;

/* Block all signals so that we don't try to execute an OCaml signal handler*/
sigfillset(&mask);
pthread_sigmask(SIG_BLOCK, &mask, NULL);
while(! caml_tick_thread_stop) {
/* select() seems to be the most efficient way to suspend the
thread for sub-second intervals */
timeout.tv_sec = 0;
timeout.tv_usec = Thread_timeout * 1000;
select(0, NULL, NULL, NULL, &timeout);
/* The preemption signal should never cause a callback, so don't
go through caml_handle_signal(), just record signal delivery via
caml_record_signal(). */
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)技术来控制请求的频率。

+

实现步骤

    +
  1. 监听输入框的变化:使用input事件监听器来捕获用户的输入变化。
  2. +
  3. 防抖处理:使用防抖函数来限制请求的频率。防抖函数会在用户停止输入一段时间后才发送请求。
  4. +
  5. 发送请求:在防抖函数中调用搜索请求。
  6. +
+

防抖函数示例

以下是一个简单的防抖函数示例:

+
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)技术来控制请求的频率。

-

实现步骤

    -
  1. 监听输入框的变化:使用input事件监听器来捕获用户的输入变化。
  2. -
  3. 防抖处理:使用防抖函数来限制请求的频率。防抖函数会在用户停止输入一段时间后才发送请求。
  4. -
  5. 发送请求:在防抖函数中调用搜索请求。
  6. -
-

防抖函数示例

以下是一个简单的防抖函数示例:

-
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