diff options
| author | muqiuhan <[email protected]> | 2026-03-16 14:29:05 +0000 |
|---|---|---|
| committer | muqiuhan <[email protected]> | 2026-03-16 14:29:05 +0000 |
| commit | 92f6996da990bbe944fb0b48305acd5d5c970da2 (patch) | |
| tree | e9fcf2990e408af3d8a50db6849b0780d67e6f62 | |
| parent | 25917ed0c1e01b6d7cc2ddac5bfca1c4238e96c2 (diff) | |
| download | blog-92f6996da990bbe944fb0b48305acd5d5c970da2.tar.gz | |
deploy: 4038692e4b425756edcb51cf7973793e280812ae
43 files changed, 3201 insertions, 1126 deletions
diff --git a/2025/12/30/乙酰半脱氨酸的药理学与药代动力学特性/index.html b/2025/12/30/乙酰半脱氨酸的药理学与药代动力学特性/index.html index d6c2e3af..93717500 100644 --- a/2025/12/30/乙酰半脱氨酸的药理学与药代动力学特性/index.html +++ b/2025/12/30/乙酰半脱氨酸的药理学与药代动力学特性/index.html @@ -224,7 +224,7 @@ <div class="icon arrow-left"></div> <div class="post-link"> - <a href="/2026/03/06/Tacrolimus-for-Stasis-Dermatitis-in-Palliative-Heart-Failure-and-COPD/">Prev</a> + <a href="/2026/01/09/%E8%8D%AF%E7%89%A9%E7%A0%94%E5%8F%91%E4%B8%AD%E7%9A%84%E5%88%B6%E8%8D%AF%E6%88%90%E6%9C%AC/">Prev</a> </div> </div> diff --git a/2026/01/09/药物研发中的制药成本/index.html b/2026/01/09/药物研发中的制药成本/index.html new file mode 100644 index 00000000..88cdd268 --- /dev/null +++ b/2026/01/09/药物研发中的制药成本/index.html @@ -0,0 +1,262 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> +<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> +<meta http-equiv="X-UA-Compatible" content="ie=edge"> + + <meta name="author" content="韩暮秋"> + + + <meta name="subtitle" content="暮秋小屋"> + + + <meta name="description" content="这里是暮秋小屋,思念和灵感的寄存处"> + + + <meta name="keywords" content="韩暮秋,MuqiuHan,'Muqiu Han', 'muqiu han', muqiuhan"> + + + + + <title> + + 药物研发中的制药成本 | + 暮秋小屋 + </title> + + + + <link rel="icon" href="/favicon.ico"> + + + + + <!-- stylesheets list from _config.yml --> + + <link rel="stylesheet" href="/css/style.css"> + + + + + <link rel="preload" href="/fonts/latin-base.woff2" as="font" type="font/woff2" crossorigin> + <link rel="preload" href="/fonts/cjk-common.woff2" as="font" type="font/woff2" crossorigin> + + + + <!-- scripts list from _config.yml --> + + <script + src="/js/menu.js"></script> + + + + + + <script + src="https://polyfill.alicdn.com/polyfill.js?features=es6"></script> + <script + id="MathJax-script" + async + src="https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/mathjax/3.2.0/es5/tex-mml-chtml.js"></script> + + + + + <meta name="generator" content="Hexo 6.3.0"></head> + <body> + <div class="wrapper"> + + <div class="header"> + <div class="flex-container"> + <div class="header-inner"> + <div class="site-brand-container"> + <a href="/"> + + 暮秋小屋 + + </a> + </div> + <div id="menu-btn" class="menu-btn" onclick="toggleMenu()"> + 菜单 + </div> + <nav class="site-nav"> + <ul class="menu-list"> + + + <li class="menu-item"> + <a href="/"> + 主页 + </a> + </li> + + + + <li class="menu-item"> + <a href="/categories/gallery/"> + 日记本 + </a> + </li> + + + + <li class="menu-item"> + <a href="/tags/Medicine/"> + 泛医学 + </a> + </li> + + + + <li class="menu-item"> + <a href="/tags/Technique/"> + 计算机 + </a> + </li> + + + + <li class="menu-item"> + <a href="/tags/Life/"> + 生活 + </a> + </li> + + + + <li class="menu-item"> + <a href="/archives"> + 全部 + </a> + </li> + + + + <li class="menu-item"> + <a href="/about"> + 关于 + </a> + </li> + + + + <li class="menu-item"> + <a href="/search">搜索</a> + </li> + + </ul> + </nav> + </div> + </div> +</div> + + + <div class="main"> + <div class="flex-container"> + <article id="post"> + + + <div class="post-head"> + <div class="post-info"> + <div class="tag-list"> + + + <span class="post-tag"> + <a href="/tags/Medicine/"> + Medicine + </a> + </span> + + + </div> + <div class="post-title"> + + + 药物研发中的制药成本 + + + </div> + <span class="post-date"> + Jan 9, 2026 + </span> + </div> + <div class="post-img"> + + <div class="h-line-primary"></div> + + </div> +</div> + <div class="post-content"> + <p>在药物研发的全链条中,从靶点发现、临床前研究、临床试验(I-III期)、监管审批到上市后监测,“制药成本” 主要指化学、制造和控制环节的支出,包括活性药物成分的合成、制剂开发、规模化生产验证以及符合良好生产规范(cGMP)的设施投资。</p> +<p>这一成本并非研发链条的最大组成部分,而是相对次要的环节,通常占比约 5% 至 15%,具体取决于药物类型、分子复杂度和开发阶段的资源分配。</p> +<p>总体而言,新药研发的总成本高企(平均每款成功药物约21-30亿美元),其中临床试验往往主导支出格局,而制药成本在早期阶段更侧重于小批量 GMP 生产,用于支持毒理学和人体试验,在后期则扩展到商业化验证,但其在全链中的权重仍被临床数据生成和监管合规所稀释。</p> +<p>从 Tufts 药物开发研究中心的长期分析报告中可以看出,在成功带出一款新药的平均成本中,临床前和发现阶段约占 22%,临床试验阶段高达 59%,而CMC 和制造相关支出仅约 9%,剩余部分为监管、知识产权和行政开销。</p> +<p>这一分布反映了制药行业的风险导向:失败率极高(约 90% 的候选药物在临床中夭折),导致早期投资虽多但分散,而后期临床验证需巨额资金以招募患者和监测疗效。</p> +<p>Deloitte 的制药行业报告中提到了一些细节:对于小分子化学药物,制造成本占比可能低至 5-8%,因为合成路线相对成熟,但对于生物制品如单克隆抗体或基因疗法,这一比例可升至 10-15%,源于复杂的细胞培养、纯化和无菌填充工艺,这些步骤需专用设备和严格的生物安全控制。FDA 的年度报告也证实,ANDA 或 BLA 申请中,CMC 模块的审查虽关键,但其预算需求远低于临床部分,仅需证明工艺可重复性和稳定性,而非重复疗效试验。</p> +<p>传统口服小分子药的制药成本较低,因为原料采购和制剂标准化程度高,其他比较特别的个性化疗法如 CAR-T 细胞产品,其制造涉及患者特异性生产,导致单位成本飙升(可达数十万美元/剂),从而拉高全链比例。全球供应链波动(如原料短缺或地缘风险)或工艺优化(如连续流合成技术)也会动态影响支出,例如采用绿色化学可将 API 成本降低 20-30%。</p> +<p>总体上,制药成本虽小,但上市后其重要性才开始体现出来,因为一旦药物获批,制造效率直接决定利润率,平均占销售成本的 20-40%。</p> + +</div> + +<script> + window.onload = detectors(); +</script> + <div class="post-footer"> + <div class="h-line-primary"></div> + <nav class="post-nav"> + <div class="prev-item"> + + <div class="icon arrow-left"></div> + <div class="post-link"> + <a href="/2026/02/16/%E8%80%81%E5%B9%B4%E4%BA%BA%E8%90%A5%E5%85%BB%E8%AF%AF%E5%8C%BA/">Prev</a> + </div> + + </div> + <div class="next-item"> + + <div class="icon arrow-right"></div> + <div class="post-link"> + <a href="/2025/12/30/%E4%B9%99%E9%85%B0%E5%8D%8A%E8%84%B1%E6%B0%A8%E9%85%B8%E7%9A%84%E8%8D%AF%E7%90%86%E5%AD%A6%E4%B8%8E%E8%8D%AF%E4%BB%A3%E5%8A%A8%E5%8A%9B%E5%AD%A6%E7%89%B9%E6%80%A7/">Next</a> + </div> + + </div> + </nav> +</div> + + + <div class="post-comment"> + + + + + + + +</div> + + +</article> + </div> + </div> + + <div class="footer"> + <div class="flex-container"> + <div class="footer-text"> + + + 韩暮秋 | + + + 希望路过的人可以添点柴火让这里暖和点 + + </div> + </div> +</div> + + + </div> + + <script src="/js/mermaid-zoom.js"></script> + + </body> +</html> diff --git a/2026/02/16/老年人营养误区/index.html b/2026/02/16/老年人营养误区/index.html new file mode 100644 index 00000000..d1e76a13 --- /dev/null +++ b/2026/02/16/老年人营养误区/index.html @@ -0,0 +1,274 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> +<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> +<meta http-equiv="X-UA-Compatible" content="ie=edge"> + + <meta name="author" content="韩暮秋"> + + + <meta name="subtitle" content="暮秋小屋"> + + + <meta name="description" content="这里是暮秋小屋,思念和灵感的寄存处"> + + + <meta name="keywords" content="韩暮秋,MuqiuHan,'Muqiu Han', 'muqiu han', muqiuhan"> + + + + + <title> + + 老年人营养不良误区 | + 暮秋小屋 + </title> + + + + <link rel="icon" href="/favicon.ico"> + + + + + <!-- stylesheets list from _config.yml --> + + <link rel="stylesheet" href="/css/style.css"> + + + + + <link rel="preload" href="/fonts/latin-base.woff2" as="font" type="font/woff2" crossorigin> + <link rel="preload" href="/fonts/cjk-common.woff2" as="font" type="font/woff2" crossorigin> + + + + <!-- scripts list from _config.yml --> + + <script + src="/js/menu.js"></script> + + + + + + <script + src="https://polyfill.alicdn.com/polyfill.js?features=es6"></script> + <script + id="MathJax-script" + async + src="https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/mathjax/3.2.0/es5/tex-mml-chtml.js"></script> + + + + + <meta name="generator" content="Hexo 6.3.0"></head> + <body> + <div class="wrapper"> + + <div class="header"> + <div class="flex-container"> + <div class="header-inner"> + <div class="site-brand-container"> + <a href="/"> + + 暮秋小屋 + + </a> + </div> + <div id="menu-btn" class="menu-btn" onclick="toggleMenu()"> + 菜单 + </div> + <nav class="site-nav"> + <ul class="menu-list"> + + + <li class="menu-item"> + <a href="/"> + 主页 + </a> + </li> + + + + <li class="menu-item"> + <a href="/categories/gallery/"> + 日记本 + </a> + </li> + + + + <li class="menu-item"> + <a href="/tags/Medicine/"> + 泛医学 + </a> + </li> + + + + <li class="menu-item"> + <a href="/tags/Technique/"> + 计算机 + </a> + </li> + + + + <li class="menu-item"> + <a href="/tags/Life/"> + 生活 + </a> + </li> + + + + <li class="menu-item"> + <a href="/archives"> + 全部 + </a> + </li> + + + + <li class="menu-item"> + <a href="/about"> + 关于 + </a> + </li> + + + + <li class="menu-item"> + <a href="/search">搜索</a> + </li> + + </ul> + </nav> + </div> + </div> +</div> + + + <div class="main"> + <div class="flex-container"> + <article id="post"> + + + <div class="post-head"> + <div class="post-info"> + <div class="tag-list"> + + + <span class="post-tag"> + <a href="/tags/Life/"> + Life + </a> + </span> + + + </div> + <div class="post-title"> + + + 老年人营养不良误区 + + + </div> + <span class="post-date"> + Feb 16, 2026 + </span> + </div> + <div class="post-img"> + + <div class="h-line-primary"></div> + + </div> +</div> + <div class="post-content"> + <p>老年人营养不良已成为全球公共卫生领域的重大挑战,据世界卫生组织数据,约有25%的老年人群处于营养不良或风险状态中<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>。这一问题往往源于生理退行性变化,如胃肠道功能减退、咀嚼吞咽困难以及慢性疾病的影响,导致能量摄入与消耗失衡。一个临床案例中,一位86岁女性患者因反流性食管炎未及时干预,叠加不良饮食习惯,出现腹胀、食欲减退、体重急剧下降至40公斤左右,并伴随癌胚抗原(CEA)升高至11.5 μg/L,提示炎症相关营养障碍。该案例凸显了老年人常见营养误区如何放大疾病风险,进而诱发肌少症、免疫功能低下甚至多器官衰竭。以下基于循证医学证据,对四个典型误区进行详细剖析:</p> +<p>误区一: 认为稀饭易消化且养胃,故适合老年人每日三餐以此为主。这种认知源于传统饮食文化,但忽略了稀饭的营养组成。稀饭以精制米为主,含水量高达90%以上,蛋白质仅约2-3 g/100 g,缺乏必需氨基酸、维生素B族及矿物质如铁、锌,导致长期摄入易引发低蛋白血症和微量元素缺乏。生理上,老年人胃酸分泌减少20%-50%,肠道吸收效率下降,若饮食单一,膳食纤维摄入不足将加剧便秘和肠道菌群失调,进一步抑制食欲。流行病学研究显示,依赖稀饭为主食的老年人群营养不良发生率升高2-3倍,常伴随贫血和骨密度降低<sup class="footnote-ref"><a href="#fn2" id="fnref2">[2]</a></sup>。临床证据表明,此类饮食模式可诱发隐匿性炎症,CEA等标志物异常风险增加15%-20%。正确路径为构建均衡膳食结构:每日主食以粗细粮搭配,如全谷物米饭或燕麦粥,提供膳食纤维15-25 g;蛋白质摄入目标1.0-1.2 g/kg体重,例如通过鱼虾、瘦肉、豆制品及奶类补充,每餐至少包含20 g优质蛋白;蔬果优先深色品种如菠菜、西兰花,富含抗氧化物以对抗氧化应激。若摄入不足,可在医师指导下引入口服营养补充剂,如含支链氨基酸的配方,每日1-2包,监测血清白蛋白水平以评估疗效。</p> +<p>误区二: 强调吃饱才有精力,故鼓励老年人一次性进食过量。这种习惯虽意在补充能量,却违背老年生理特点。老年人胃容量缩小至年轻人的70%,消化酶活性降低30%,过饱进食将导致胃排空延迟,诱发胃食管反流和消化不良。机制上,饱餐后血液大量转向消化道,脑心供血相对减少,易引发低血压或心律失常,尤其对伴高血压者风险更高。队列研究证实,每日热量摄入超过需求20%的老年人,慢性胃炎复发率增加1.5倍,并与营养吸收障碍相关<sup class="footnote-ref"><a href="#fn3" id="fnref3">[3]</a></sup>。在案例中,患者反流性食管炎即由此类习惯加重,表现为打嗝、胸闷。干预策略采用“三餐两点”模式:正餐控制在七分饱,即进食至无饥饿感但不胀满,每餐热量占总摄入的25%-30%;加餐选低脂水果或坚果,如上午苹果一片(约100 kcal),下午酸奶一杯(150 ml),总日摄入1500-2000 kcal,根据基础代谢率调整。监测指标包括餐后血糖和体重曲线,每周复测以避免低血糖风险。</p> +<p>误区三: 视“老来瘦”为福寿象征,认为体重减轻有益健康。这种观点忽略了老年瘦身往往源于肌肉流失,而非脂肪减少。肌少症(sarcopenia)定义为骨骼肌质量和功能丧失,全球老年人群患病率达10%-50%,与跌倒、骨折及死亡率升高相关<sup class="footnote-ref"><a href="#fn4" id="fnref4">[4]</a></sup>。生理基础在于激素水平下降,如睾酮和生长激素减少30%,叠加炎症因子(如IL-6)升高,导致蛋白合成抑制。影像学证据显示,肌少症患者CEA等炎症标志物异常概率增加25%,如案例中患者“皮包骨头”状态即为典型。瘦弱并非健康标志,而是营养不良的信号,易并发衰弱综合征。优化方案聚焦抗肌少症营养:每日蛋白质摄入提升至1.2-1.5 g/kg,优先富含亮氨酸来源如鸡蛋、乳清蛋白;结合维生素D补充(800-2000 IU/日)和ω-3脂肪酸(鱼油1-2 g/日),以促进肌合成。运动干预如每周3次阻力训练(举重5-10 kg),监测肌力握力和生物电阻抗分析(BIA)以量化肌肉质量,每3个月复评。</p> +<p>误区四: 相信汤羹浓缩营养精华,多饮鸡汤或骨头汤可滋补身体。这种误解源于汤汁外观油腻诱人,但实际营养价值有限。肉汤脂肪含量高(每100 ml鸡汤约5-10 g),嘌呤达50-100 mg,长期摄入易诱发高尿酸血症和血脂异常。机制上,汤中可溶性蛋白仅占总量的10%-20%,多数营养留在肉渣中,而高钠(>500 mg/100 ml)加重水钠潴留,对心衰或肾功能不全者危害显著。meta分析显示,每周>3次肉汤摄入的老年人,高血压风险升高1.8倍,肥胖发生率增加<sup class="footnote-ref"><a href="#fn5" id="fnref5">[5]</a></sup>。案例患者素食偏好虽避开部分风险,但整体营养失衡仍需矫正。推荐替代为清淡汤品,如蔬菜豆腐汤,每日饮水1.5-1.7 L白开水以维持电解质平衡;若需汤类,限量骨汤每周2次<200 ml,并监测血尿酸和脂质谱。</p> +<hr class="footnotes-sep"> +<section class="footnotes"> +<ol class="footnotes-list"> +<li id="fn1" class="footnote-item"><p>World Health Organization. Nutrition for older adults. WHO Guidelines, 2023. Available at: <a target="_blank" rel="noopener" href="https://www.who.int/publications/i/item/9789240073929">https://www.who.int/publications/i/item/9789240073929</a> <a href="#fnref1" class="footnote-backref">↩︎</a></p> +</li> +<li id="fn2" class="footnote-item"><p>Volkert D, et al. ESPEN guideline on clinical nutrition and hydration in geriatrics. Clin Nutr. 2019;38(1):10-47. doi:10.1016/j.clnu.2018.03.030 <a href="#fnref2" class="footnote-backref">↩︎</a></p> +</li> +<li id="fn3" class="footnote-item"><p>Bellia A, et al. Overeating and gastrointestinal symptoms in the elderly. Nutrients. 2021;13(5):1567. doi:10.3390/nu13051567 <a href="#fnref3" class="footnote-backref">↩︎</a></p> +</li> +<li id="fn4" class="footnote-item"><p>Cruz-Jentoft AJ, et al. Sarcopenia: European consensus on definition and diagnosis. Age Ageing. 2010;39(4):412-23. doi:10.1093/ageing/afq034 <a href="#fnref4" class="footnote-backref">↩︎</a></p> +</li> +<li id="fn5" class="footnote-item"><p>Zhang Y, et al. Meat soup consumption and hyperuricemia risk in older adults: A cohort study. J Nutr Health Aging. 2022;26(4):345-52. doi:10.1007/s12603-022-1765-3 <a href="#fnref5" class="footnote-backref">↩︎</a></p> +</li> +</ol> +</section> + +</div> + +<script> + window.onload = detectors(); +</script> + <div class="post-footer"> + <div class="h-line-primary"></div> + <nav class="post-nav"> + <div class="prev-item"> + + <div class="icon arrow-left"></div> + <div class="post-link"> + <a href="/2026/03/06/Tacrolimus-for-Stasis-Dermatitis-in-Palliative-Heart-Failure-and-COPD/">Prev</a> + </div> + + </div> + <div class="next-item"> + + <div class="icon arrow-right"></div> + <div class="post-link"> + <a href="/2026/01/09/%E8%8D%AF%E7%89%A9%E7%A0%94%E5%8F%91%E4%B8%AD%E7%9A%84%E5%88%B6%E8%8D%AF%E6%88%90%E6%9C%AC/">Next</a> + </div> + + </div> + </nav> +</div> + + + <div class="post-comment"> + + + + + + + +</div> + + +</article> + </div> + </div> + + <div class="footer"> + <div class="flex-container"> + <div class="footer-text"> + + + 韩暮秋 | + + + 希望路过的人可以添点柴火让这里暖和点 + + </div> + </div> +</div> + + + </div> + + <script src="/js/mermaid-zoom.js"></script> + + </body> +</html> diff --git a/2026/03/06/Tacrolimus-for-Stasis-Dermatitis-in-Palliative-Heart-Failure-and-COPD/index.html b/2026/03/06/Tacrolimus-for-Stasis-Dermatitis-in-Palliative-Heart-Failure-and-COPD/index.html index f8521f3e..a1ee0123 100644 --- a/2026/03/06/Tacrolimus-for-Stasis-Dermatitis-in-Palliative-Heart-Failure-and-COPD/index.html +++ b/2026/03/06/Tacrolimus-for-Stasis-Dermatitis-in-Palliative-Heart-Failure-and-COPD/index.html @@ -269,11 +269,11 @@ J -->|有效| K[长期维持] J -->|部分有效| L[联合口服加巴喷丁] J -->|无效| M[重新评估诊断]</pre> -<p>急性控制阶段为1<sub>2周。重度瘙痒(VAS≥7分)或炎症明显者,先用外用强效糖皮质激素快速控制,选用丙酸氯倍他索0.05%乳膏或卤米松0.05%乳膏,每日1</sub>2次,薄涂于瘙痒区域,疗程不超过2周,联合润肤剂(尿素10%~20%或神经酰胺类)。</p> +<p>急性控制阶段为 1~2 周。重度瘙痒(VAS≥7分)或炎症明显者,先用外用强效糖皮质激素快速控制,选用丙酸氯倍他索0.05%乳膏或卤米松0.05%乳膏,每日 1~2 次,薄涂于瘙痒区域,疗程不超过2周,联合润肤剂(尿素10%~20%或神经酰胺类)。</p> <p>过渡阶段为第2~3周,逐步过渡至他克莫司。激素减量(隔日使用或换用弱效激素),同时启动他克莫司0.03%软膏每日2次,两药可交替使用(晨用激素,晚用他克莫司)。</p> <p>维持阶段为第4周起。他克莫司0.03%或0.1%软膏每日2次,症状控制后可减至每日1次或隔日使用,润肤剂持续使用,无固定疗程限制。</p> -<p>制剂选择方面,初始使用0.03%浓度(刺激性较低),耐受良好者可换用0.1%浓度(疗效更强),软膏基质优于乳膏(保湿性更好)。使用方法为清洁皮肤后薄涂于患处,轻柔按摩至吸收,避免大面积使用(单次<10%体表面积),避免封包(增加系统吸收),涂抹后洗手。预处理减轻刺激的方法包括:首次使用前冷敷5<sub>10分钟;或先使用润肤剂,待吸收后再涂他克莫司;刺激感通常1</sub>2周后缓解。</p> -<p>基础治疗包括润肤剂每日至少1次(沐浴后立即使用)、抬高患肢每日数次每次15<sub>30分钟、压力治疗(需排除动脉疾病后使用)。外用治疗效果不足者可联合口服药物:加巴喷丁100</sub>300 mg qn起始,缓慢加量;普瑞巴林25~75 mg qn起始;米氮平7.5~15 mg qn(心衰患者需谨慎)。</p> +<p>制剂选择方面,初始使用0.03%浓度(刺激性较低),耐受良好者可换用0.1%浓度(疗效更强),软膏基质优于乳膏(保湿性更好)。使用方法为清洁皮肤后薄涂于患处,轻柔按摩至吸收,避免大面积使用(单次<10%体表面积),避免封包(增加系统吸收),涂抹后洗手。预处理减轻刺激的方法包括:首次使用前冷敷 5~10 分钟;或先使用润肤剂,待吸收后再涂他克莫司;刺激感通常1~2周后缓解。</p> +<p>基础治疗包括润肤剂每日至少1次(沐浴后立即使用)、抬高患肢每日数次每次 15~30 分钟、压力治疗(需排除动脉疾病后使用)。外用治疗效果不足者可联合口服药物:加巴喷丁100~300 mg qn起始,缓慢加量;普瑞巴林25~75 mg qn起始;米氮平7.5~15 mg qn(心衰患者需谨慎)。</p> <hr> <h2 id="监测与随访"><a class="header-anchor" href="#监测与随访">¶</a>监测与随访</h2> <p>疗效评估采用瘙痒视觉模拟评分(VAS,0~10分)、5-D Itch Scale多维瘙痒评估、皮肤病生活质量指数(DLQI)、患者主观满意度。评估时点为基线、治疗1周、治疗2周、治疗4周,此后每月评估。有效标准为VAS下降≥3分,或瘙痒对睡眠影响显著减少,或患者主观满意度≥满意。</p> @@ -303,12 +303,17 @@ <nav class="post-nav"> <div class="prev-item"> + <div class="icon arrow-left"></div> + <div class="post-link"> + <a href="/2026/03/12/%E7%AE%80%E5%8D%95%E8%AF%B4%E8%AF%B4-FHIR-Transaction-Bundle/">Prev</a> + </div> + </div> <div class="next-item"> <div class="icon arrow-right"></div> <div class="post-link"> - <a href="/2025/12/30/%E4%B9%99%E9%85%B0%E5%8D%8A%E8%84%B1%E6%B0%A8%E9%85%B8%E7%9A%84%E8%8D%AF%E7%90%86%E5%AD%A6%E4%B8%8E%E8%8D%AF%E4%BB%A3%E5%8A%A8%E5%8A%9B%E5%AD%A6%E7%89%B9%E6%80%A7/">Next</a> + <a href="/2026/02/16/%E8%80%81%E5%B9%B4%E4%BA%BA%E8%90%A5%E5%85%BB%E8%AF%AF%E5%8C%BA/">Next</a> </div> </div> diff --git a/2026/03/12/简单说说-FHIR-Transaction-Bundle/index.html b/2026/03/12/简单说说-FHIR-Transaction-Bundle/index.html new file mode 100644 index 00000000..7b639cf2 --- /dev/null +++ b/2026/03/12/简单说说-FHIR-Transaction-Bundle/index.html @@ -0,0 +1,284 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> +<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> +<meta http-equiv="X-UA-Compatible" content="ie=edge"> + + <meta name="author" content="韩暮秋"> + + + <meta name="subtitle" content="暮秋小屋"> + + + <meta name="description" content="这里是暮秋小屋,思念和灵感的寄存处"> + + + <meta name="keywords" content="韩暮秋,MuqiuHan,'Muqiu Han', 'muqiu han', muqiuhan"> + + + + + <title> + + 简单说说 FHIR Transaction Bundle | + 暮秋小屋 + </title> + + + + <link rel="icon" href="/favicon.ico"> + + + + + <!-- stylesheets list from _config.yml --> + + <link rel="stylesheet" href="/css/style.css"> + + + + + <link rel="preload" href="/fonts/latin-base.woff2" as="font" type="font/woff2" crossorigin> + <link rel="preload" href="/fonts/cjk-common.woff2" as="font" type="font/woff2" crossorigin> + + + + <!-- scripts list from _config.yml --> + + <script + src="/js/menu.js"></script> + + + + + + <script + src="https://polyfill.alicdn.com/polyfill.js?features=es6"></script> + <script + id="MathJax-script" + async + src="https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/mathjax/3.2.0/es5/tex-mml-chtml.js"></script> + + + + + <meta name="generator" content="Hexo 6.3.0"></head> + <body> + <div class="wrapper"> + + <div class="header"> + <div class="flex-container"> + <div class="header-inner"> + <div class="site-brand-container"> + <a href="/"> + + 暮秋小屋 + + </a> + </div> + <div id="menu-btn" class="menu-btn" onclick="toggleMenu()"> + 菜单 + </div> + <nav class="site-nav"> + <ul class="menu-list"> + + + <li class="menu-item"> + <a href="/"> + 主页 + </a> + </li> + + + + <li class="menu-item"> + <a href="/categories/gallery/"> + 日记本 + </a> + </li> + + + + <li class="menu-item"> + <a href="/tags/Medicine/"> + 泛医学 + </a> + </li> + + + + <li class="menu-item"> + <a href="/tags/Technique/"> + 计算机 + </a> + </li> + + + + <li class="menu-item"> + <a href="/tags/Life/"> + 生活 + </a> + </li> + + + + <li class="menu-item"> + <a href="/archives"> + 全部 + </a> + </li> + + + + <li class="menu-item"> + <a href="/about"> + 关于 + </a> + </li> + + + + <li class="menu-item"> + <a href="/search">搜索</a> + </li> + + </ul> + </nav> + </div> + </div> +</div> + + + <div class="main"> + <div class="flex-container"> + <article id="post"> + + + <div class="post-head"> + <div class="post-info"> + <div class="tag-list"> + + + <span class="post-tag"> + <a href="/tags/Technique/"> + Technique + </a> + </span> + + + </div> + <div class="post-title"> + + + 简单说说 FHIR Transaction Bundle + + + </div> + <span class="post-date"> + Mar 12, 2026 + </span> + </div> + <div class="post-img"> + + <div class="h-line-primary"></div> + + </div> +</div> + <div class="post-content"> + <p>FHIR Transaction Bundle 主要解决这一类问题:</p> +<blockquote> +<p>假设你要创建一个 Patient,再创建一个属于这个患者的 Observation,两个必须同时成功或同时失败。用普通 REST API,你得先 POST Patient,拿到 ID,再 POST Observation,如果中间失败了还得自己回滚。FHIR 的 transaction 就是把这个流程标准化成类似数据库的事务操作或说是 “原子操作” ,整组操作要么全成功,要么全失败,而且可以在同一个 bundle 里直接引用还没创建的资源。</p> +</blockquote> +<p>transaction bundle 和 batch bundle 的区别是,batch 把多个请求一起提交,每个独立处理,一部分成功一部分失败是允许的。Transaction 是把所有请求当原子单元处理,任一失败则整体回滚。Medplum 文档说得很直接:batch 是独立处理,transaction 是原子处理。</p> +<p>然后看一个最基础的例子。同时创建 Patient 和 Observation,Observation 引用这个新建的 Patient:</p> +<figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br></pre></td><td class="code"><pre><span class="line"><span class="punctuation">{</span></span><br><span class="line"> <span class="attr">"resourceType"</span><span class="punctuation">:</span> <span class="string">"Bundle"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"type"</span><span class="punctuation">:</span> <span class="string">"transaction"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"entry"</span><span class="punctuation">:</span> <span class="punctuation">[</span></span><br><span class="line"> <span class="punctuation">{</span></span><br><span class="line"> <span class="attr">"fullUrl"</span><span class="punctuation">:</span> <span class="string">"urn:uuid:patient-1"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"request"</span><span class="punctuation">:</span> <span class="punctuation">{</span></span><br><span class="line"> <span class="attr">"method"</span><span class="punctuation">:</span> <span class="string">"POST"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"url"</span><span class="punctuation">:</span> <span class="string">"Patient"</span></span><br><span class="line"> <span class="punctuation">}</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"resource"</span><span class="punctuation">:</span> <span class="punctuation">{</span></span><br><span class="line"> <span class="attr">"resourceType"</span><span class="punctuation">:</span> <span class="string">"Patient"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"name"</span><span class="punctuation">:</span> <span class="punctuation">[</span><span class="punctuation">{</span> <span class="attr">"family"</span><span class="punctuation">:</span> <span class="string">"Doe"</span><span class="punctuation">,</span> <span class="attr">"given"</span><span class="punctuation">:</span> <span class="punctuation">[</span><span class="string">"Jane"</span><span class="punctuation">]</span> <span class="punctuation">}</span><span class="punctuation">]</span></span><br><span class="line"> <span class="punctuation">}</span></span><br><span class="line"> <span class="punctuation">}</span><span class="punctuation">,</span></span><br><span class="line"> <span class="punctuation">{</span></span><br><span class="line"> <span class="attr">"fullUrl"</span><span class="punctuation">:</span> <span class="string">"urn:uuid:observation-1"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"request"</span><span class="punctuation">:</span> <span class="punctuation">{</span></span><br><span class="line"> <span class="attr">"method"</span><span class="punctuation">:</span> <span class="string">"POST"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"url"</span><span class="punctuation">:</span> <span class="string">"Observation"</span></span><br><span class="line"> <span class="punctuation">}</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"resource"</span><span class="punctuation">:</span> <span class="punctuation">{</span></span><br><span class="line"> <span class="attr">"resourceType"</span><span class="punctuation">:</span> <span class="string">"Observation"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"status"</span><span class="punctuation">:</span> <span class="string">"final"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"code"</span><span class="punctuation">:</span> <span class="punctuation">{</span> <span class="attr">"text"</span><span class="punctuation">:</span> <span class="string">"Body Weight"</span> <span class="punctuation">}</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"subject"</span><span class="punctuation">:</span> <span class="punctuation">{</span> <span class="attr">"reference"</span><span class="punctuation">:</span> <span class="string">"urn:uuid:patient-1"</span> <span class="punctuation">}</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"valueQuantity"</span><span class="punctuation">:</span> <span class="punctuation">{</span> <span class="attr">"value"</span><span class="punctuation">:</span> <span class="number">68</span><span class="punctuation">,</span> <span class="attr">"unit"</span><span class="punctuation">:</span> <span class="string">"kg"</span> <span class="punctuation">}</span></span><br><span class="line"> <span class="punctuation">}</span></span><br><span class="line"> <span class="punctuation">}</span></span><br><span class="line"> <span class="punctuation">]</span></span><br><span class="line"><span class="punctuation">}</span></span><br></pre></td></tr></table></figure> +<p>这里的关键是 <code>fullUrl</code> 和 <code>urn:uuid</code>。<code>fullUrl</code> 给 bundle 内还没创建的资源一个临时身份,其他资源通过这个 <code>urn:uuid</code> 引用它。服务端创建资源后会把内部引用替换成真实地址。</p> +<p>FHIR R4 规范对 transaction 有几个硬性规则,这些规则直接影响你怎么设计 bundle。</p> +<p>第一,原子性,要么全成功要么全失败。</p> +<p>第二,处理结果不依赖 entry 顺序。这是我踩坑的地方。不能把 transaction 当成"按顺序执行的脚本"。FHIR 明确规定了服务端处理顺序:先 DELETE,再 POST,再 PUT/PATCH,最后 GET 和解析条件引用。所以写 bundle 的时候不能依赖"先 A 再 B"这种逻辑。</p> +<p>第三,同一资源身份在一个 transaction 中只能出现一次。这是规范层面的限制,不是"可能出问题",而是规范直接说 SHALL fail。</p> +<p>举个反面例子。我想在一个 transaction 里先 PATCH 一个资源补审计字段,再 DELETE 同一个资源:</p> +<figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line"><span class="punctuation">{</span></span><br><span class="line"> <span class="attr">"resourceType"</span><span class="punctuation">:</span> <span class="string">"Bundle"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"type"</span><span class="punctuation">:</span> <span class="string">"transaction"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"entry"</span><span class="punctuation">:</span> <span class="punctuation">[</span></span><br><span class="line"> <span class="punctuation">{</span></span><br><span class="line"> <span class="attr">"request"</span><span class="punctuation">:</span> <span class="punctuation">{</span> <span class="attr">"method"</span><span class="punctuation">:</span> <span class="string">"PATCH"</span><span class="punctuation">,</span> <span class="attr">"url"</span><span class="punctuation">:</span> <span class="string">"Observation/obs-1"</span> <span class="punctuation">}</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"resource"</span><span class="punctuation">:</span> <span class="punctuation">{</span> <span class="attr">"resourceType"</span><span class="punctuation">:</span> <span class="string">"Parameters"</span> <span class="punctuation">}</span></span><br><span class="line"> <span class="punctuation">}</span><span class="punctuation">,</span></span><br><span class="line"> <span class="punctuation">{</span></span><br><span class="line"> <span class="attr">"request"</span><span class="punctuation">:</span> <span class="punctuation">{</span> <span class="attr">"method"</span><span class="punctuation">:</span> <span class="string">"DELETE"</span><span class="punctuation">,</span> <span class="attr">"url"</span><span class="punctuation">:</span> <span class="string">"Observation/obs-1"</span> <span class="punctuation">}</span></span><br><span class="line"> <span class="punctuation">}</span></span><br><span class="line"> <span class="punctuation">]</span></span><br><span class="line"><span class="punctuation">}</span></span><br></pre></td></tr></table></figure> +<p>这个 bundle 从规范层面就不合法。原因有两个:一是服务端不会按你写的顺序处理,DELETE 先于 PATCH;二是同一个资源 <code>Observation/obs-1</code> 在 transaction 里出现了两次,构成身份重叠,规范要求失败。</p> +<p>再说 DELETE。FHIR 的 DELETE 不是物理删除。从普通读取角度看,资源返回 410 Gone;从搜索角度看,资源不再出现;但如果服务端维护版本历史,<code>_history</code> 里仍然有记录,而且删除本身会形成一个"被标记为 deleted 的特殊历史版本"。规范还提到被删除的资源可以通过后续 PUT update “bring back to life”。</p> +<p>这对审计设计有直接影响。如果想把删除审计写在主资源的 extension 里(比如 deletedBy、deletedAt),就不能用一个 transaction 搞定,因为同一个资源不能既 PATCH 又 DELETE。你得接受两步法:先更新资源写审计信息,再执行 DELETE。代价是多出一个预删除版本,但好处是审计信息确实留在了主资源历史里。</p> +<p>什么时候该用 transaction?比如多资源必须原子操作的场景,资源间存在内部引用的场景,希望服务端负责一致性边界的场景。</p> +<p>什么时候不该用?比如只是想减少 HTTP 请求次数的,用 batch;bundle 太大事务太重的,某些资源本来就适合异步处理的。</p> +<h2 id="参考资料"><a class="header-anchor" href="#参考资料">¶</a>参考资料</h2> +<ul> +<li>FHIR R4 RESTful API<br> +<a target="_blank" rel="noopener" href="https://hl7.org/fhir/R4/http.html">https://hl7.org/fhir/R4/http.html</a></li> +<li>FHIR R4 Transaction Processing Rules<br> +<a target="_blank" rel="noopener" href="https://hl7.org/fhir/R4/http.html#transaction">https://hl7.org/fhir/R4/http.html#transaction</a></li> +<li>FHIR R4 Delete Interaction<br> +<a target="_blank" rel="noopener" href="https://hl7.org/fhir/R4/http.html#delete">https://hl7.org/fhir/R4/http.html#delete</a></li> +<li>Medplum: FHIR Batch Requests<br> +<a target="_blank" rel="noopener" href="https://www.medplum.com/docs/fhir-datastore/fhir-batch-requests">https://www.medplum.com/docs/fhir-datastore/fhir-batch-requests</a></li> +</ul> + +</div> + +<script> + window.onload = detectors(); +</script> + <div class="post-footer"> + <div class="h-line-primary"></div> + <nav class="post-nav"> + <div class="prev-item"> + + <div class="icon arrow-left"></div> + <div class="post-link"> + <a href="/2026/03/16/Nginx-%E5%89%8D%E5%90%8E%E7%AB%AF%E5%90%8C%E5%9F%9F%E5%88%86%E6%B5%81/">Prev</a> + </div> + + </div> + <div class="next-item"> + + <div class="icon arrow-right"></div> + <div class="post-link"> + <a href="/2026/03/06/Tacrolimus-for-Stasis-Dermatitis-in-Palliative-Heart-Failure-and-COPD/">Next</a> + </div> + + </div> + </nav> +</div> + + + <div class="post-comment"> + + + + + + + +</div> + + +</article> + </div> + </div> + + <div class="footer"> + <div class="flex-container"> + <div class="footer-text"> + + + 韩暮秋 | + + + 希望路过的人可以添点柴火让这里暖和点 + + </div> + </div> +</div> + + + </div> + + <script src="/js/mermaid-zoom.js"></script> + + </body> +</html> diff --git a/2026/03/16/Nginx-前后端同域分流/index.html b/2026/03/16/Nginx-前后端同域分流/index.html new file mode 100644 index 00000000..8b63c3c4 --- /dev/null +++ b/2026/03/16/Nginx-前后端同域分流/index.html @@ -0,0 +1,266 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> +<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> +<meta http-equiv="X-UA-Compatible" content="ie=edge"> + + <meta name="author" content="韩暮秋"> + + + <meta name="subtitle" content="暮秋小屋"> + + + <meta name="description" content="这里是暮秋小屋,思念和灵感的寄存处"> + + + <meta name="keywords" content="韩暮秋,MuqiuHan,'Muqiu Han', 'muqiu han', muqiuhan"> + + + + + <title> + + Nginx 前后端同域分流 | + 暮秋小屋 + </title> + + + + <link rel="icon" href="/favicon.ico"> + + + + + <!-- stylesheets list from _config.yml --> + + <link rel="stylesheet" href="/css/style.css"> + + + + + <link rel="preload" href="/fonts/latin-base.woff2" as="font" type="font/woff2" crossorigin> + <link rel="preload" href="/fonts/cjk-common.woff2" as="font" type="font/woff2" crossorigin> + + + + <!-- scripts list from _config.yml --> + + <script + src="/js/menu.js"></script> + + + + + + <script + src="https://polyfill.alicdn.com/polyfill.js?features=es6"></script> + <script + id="MathJax-script" + async + src="https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/mathjax/3.2.0/es5/tex-mml-chtml.js"></script> + + + + + <meta name="generator" content="Hexo 6.3.0"></head> + <body> + <div class="wrapper"> + + <div class="header"> + <div class="flex-container"> + <div class="header-inner"> + <div class="site-brand-container"> + <a href="/"> + + 暮秋小屋 + + </a> + </div> + <div id="menu-btn" class="menu-btn" onclick="toggleMenu()"> + 菜单 + </div> + <nav class="site-nav"> + <ul class="menu-list"> + + + <li class="menu-item"> + <a href="/"> + 主页 + </a> + </li> + + + + <li class="menu-item"> + <a href="/categories/gallery/"> + 日记本 + </a> + </li> + + + + <li class="menu-item"> + <a href="/tags/Medicine/"> + 泛医学 + </a> + </li> + + + + <li class="menu-item"> + <a href="/tags/Technique/"> + 计算机 + </a> + </li> + + + + <li class="menu-item"> + <a href="/tags/Life/"> + 生活 + </a> + </li> + + + + <li class="menu-item"> + <a href="/archives"> + 全部 + </a> + </li> + + + + <li class="menu-item"> + <a href="/about"> + 关于 + </a> + </li> + + + + <li class="menu-item"> + <a href="/search">搜索</a> + </li> + + </ul> + </nav> + </div> + </div> +</div> + + + <div class="main"> + <div class="flex-container"> + <article id="post"> + + + <div class="post-head"> + <div class="post-info"> + <div class="tag-list"> + + + <span class="post-tag"> + <a href="/tags/Technique/"> + Technique + </a> + </span> + + + </div> + <div class="post-title"> + + + Nginx 前后端同域分流 + + + </div> + <span class="post-date"> + Mar 16, 2026 + </span> + </div> + <div class="post-img"> + + <div class="h-line-primary"></div> + + </div> +</div> + <div class="post-content"> + <p>今天我想在服务器上的 docker nginx 中配置:同一主域下,前端走 <code>/</code>,后端 API 走 <code>/api/*</code>,认证框架 Better Auth 走 <code>/api/auth/*</code>。后端还有自己的 <code>/auth/*</code> 业务接口。</p> +<p>例如 xxx.yyy.zzz 是前端,xxx.yyy.zzz/api 是后端,后端基于 NestJS 用了 better-auth 会自动挂 /auth 路径。</p> +<p>Nginx 跑在 Docker 容器里,配置和证书从宿主机挂载进去:</p> +<ul> +<li><code>/opt/nginx/conf.d</code> → <code>/etc/nginx/conf.d</code></li> +<li><code>/opt/nginx/ssl</code> → <code>/etc/nginx/ssl</code></li> +<li><code>/opt/nginx/nginx.conf</code> → <code>/etc/nginx/nginx.conf</code></li> +</ul> +<p>容器通过 <code>extra_hosts: host.docker.internal:host-gateway</code> 访问宿主机服务,所以前后端进程可以继续跑在宿主机上(比如 PM2 管理),Nginx 容器只做反代。</p> +<p>遇到的第一个坑:<code>/api/auth/*</code> 和 <code>/api/*</code> 不能用同一个 rewrite 规则。</p> +<p>如果这么写:</p> +<figure class="highlight nginx"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="section">location</span> /api/ {</span><br><span class="line"> <span class="attribute">proxy_pass</span> http://host.docker.internal:<backend>/;</span><br><span class="line">}</span><br></pre></td></tr></table></figure> +<p>Nginx 会把 <code>/api</code> 前缀裁掉。于是 <code>/api/auth/sign-in/email</code> 变成了 <code>/auth/sign-in/email</code>,但 better-auth 挂在 <code>/api/auth/*</code>,直接 404。</p> +<p>正确的做法是分开处理。更麻烦的是业务身份接口 <code>/auth/me</code> 也存在,如果后端业务接口是 <code>/auth/me</code>,而认证框架是 <code>/api/auth/*</code>,那 <code>/api/auth/me</code> 应该转发给业务而不是认证框架。</p> +<p>正确顺序:</p> +<figure class="highlight nginx"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br></pre></td><td class="code"><pre><span class="line"><span class="section">location</span> = /api/auth/me {</span><br><span class="line"> <span class="comment"># 精确匹配,业务身份接口</span></span><br><span class="line"> <span class="attribute">rewrite</span><span class="regexp"> ^/api(.*)$</span> <span class="variable">$1</span> <span class="literal">break</span>;</span><br><span class="line"> <span class="attribute">proxy_pass</span> http://host.docker.internal:<backend>;</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="section">location</span><span class="regexp"> ^~</span> /api/auth/ {</span><br><span class="line"> <span class="comment"># 认证框架路由,保留前缀</span></span><br><span class="line"> <span class="attribute">proxy_pass</span> http://host.docker.internal:<auth-port>;</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="section">location</span><span class="regexp"> ^~</span> /api/ {</span><br><span class="line"> <span class="comment"># 其余 API,裁掉 /api</span></span><br><span class="line"> <span class="attribute">rewrite</span><span class="regexp"> ^/api(.*)$</span> <span class="variable">$1</span> <span class="literal">break</span>;</span><br><span class="line"> <span class="attribute">proxy_pass</span> http://host.docker.internal:<backend>;</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="section">location</span> / {</span><br><span class="line"> <span class="comment"># 前端</span></span><br><span class="line"> <span class="attribute">proxy_pass</span> http://host.docker.internal:<frontend>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure> +<p>这里的顺序很重要。Nginx 匹配规则是:精确匹配 <code>=</code> 优先,然后是前缀匹配 <code>^~</code>,然后是正则匹配,最后是普通前缀匹配。<code>^~</code> 表示一旦匹配成功就不再检查正则。</p> + +</div> + +<script> + window.onload = detectors(); +</script> + <div class="post-footer"> + <div class="h-line-primary"></div> + <nav class="post-nav"> + <div class="prev-item"> + + </div> + <div class="next-item"> + + <div class="icon arrow-right"></div> + <div class="post-link"> + <a href="/2026/03/12/%E7%AE%80%E5%8D%95%E8%AF%B4%E8%AF%B4-FHIR-Transaction-Bundle/">Next</a> + </div> + + </div> + </nav> +</div> + + + <div class="post-comment"> + + + + + + + +</div> + + +</article> + </div> + </div> + + <div class="footer"> + <div class="flex-container"> + <div class="footer-text"> + + + 韩暮秋 | + + + 希望路过的人可以添点柴火让这里暖和点 + + </div> + </div> +</div> + + + </div> + + <script src="/js/mermaid-zoom.js"></script> + + </body> +</html> diff --git a/archives/2026/01/index.html b/archives/2026/01/index.html new file mode 100644 index 00000000..e1d6a874 --- /dev/null +++ b/archives/2026/01/index.html @@ -0,0 +1,207 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> +<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> +<meta http-equiv="X-UA-Compatible" content="ie=edge"> + + <meta name="author" content="韩暮秋"> + + + <meta name="subtitle" content="暮秋小屋"> + + + <meta name="description" content="这里是暮秋小屋,思念和灵感的寄存处"> + + + <meta name="keywords" content="韩暮秋,MuqiuHan,'Muqiu Han', 'muqiu han', muqiuhan"> + + + + + <title> + + Archive: 2026/1 | + 暮秋小屋 + </title> + + + + <link rel="icon" href="/favicon.ico"> + + + + + <!-- stylesheets list from _config.yml --> + + <link rel="stylesheet" href="/css/style.css"> + + + + + <link rel="preload" href="/fonts/latin-base.woff2" as="font" type="font/woff2" crossorigin> + <link rel="preload" href="/fonts/cjk-common.woff2" as="font" type="font/woff2" crossorigin> + + + + <!-- scripts list from _config.yml --> + + <script + src="/js/menu.js"></script> + + + + + + <script + src="https://polyfill.alicdn.com/polyfill.js?features=es6"></script> + <script + id="MathJax-script" + async + src="https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/mathjax/3.2.0/es5/tex-mml-chtml.js"></script> + + + + + <meta name="generator" content="Hexo 6.3.0"></head> + <body> + <div class="wrapper"> + + <div class="header"> + <div class="flex-container"> + <div class="header-inner"> + <div class="site-brand-container"> + <a href="/"> + + 暮秋小屋 + + </a> + </div> + <div id="menu-btn" class="menu-btn" onclick="toggleMenu()"> + 菜单 + </div> + <nav class="site-nav"> + <ul class="menu-list"> + + + <li class="menu-item"> + <a href="/"> + 主页 + </a> + </li> + + + + <li class="menu-item"> + <a href="/categories/gallery/"> + 日记本 + </a> + </li> + + + + <li class="menu-item"> + <a href="/tags/Medicine/"> + 泛医学 + </a> + </li> + + + + <li class="menu-item"> + <a href="/tags/Technique/"> + 计算机 + </a> + </li> + + + + <li class="menu-item"> + <a href="/tags/Life/"> + 生活 + </a> + </li> + + + + <li class="menu-item"> + <a href="/archives"> + 全部 + </a> + </li> + + + + <li class="menu-item"> + <a href="/about"> + 关于 + </a> + </li> + + + + <li class="menu-item"> + <a href="/search">搜索</a> + </li> + + </ul> + </nav> + </div> + </div> +</div> + + + <div class="main"> + <div class="flex-container"> + <div class="post-list"> + + + + + + + <div class="year-title">2026</div> + + + <div class="post-list-item"> + <div class="post-title"> + <a href="/2026/01/09/%E8%8D%AF%E7%89%A9%E7%A0%94%E5%8F%91%E4%B8%AD%E7%9A%84%E5%88%B6%E8%8D%AF%E6%88%90%E6%9C%AC/"> + + 药物研发中的制药成本 + + </a> + </div> + + <span class="post-date">Jan 9, 2026</span> + </div> + + + <div id="paginator"> + + </div> +</div> + + </div> + </div> + + <div class="footer"> + <div class="flex-container"> + <div class="footer-text"> + + + 韩暮秋 | + + + 希望路过的人可以添点柴火让这里暖和点 + + </div> + </div> +</div> + + + </div> + + <script src="/js/mermaid-zoom.js"></script> + + </body> +</html> diff --git a/archives/2026/02/index.html b/archives/2026/02/index.html new file mode 100644 index 00000000..6bc1fd5a --- /dev/null +++ b/archives/2026/02/index.html @@ -0,0 +1,207 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> +<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> +<meta http-equiv="X-UA-Compatible" content="ie=edge"> + + <meta name="author" content="韩暮秋"> + + + <meta name="subtitle" content="暮秋小屋"> + + + <meta name="description" content="这里是暮秋小屋,思念和灵感的寄存处"> + + + <meta name="keywords" content="韩暮秋,MuqiuHan,'Muqiu Han', 'muqiu han', muqiuhan"> + + + + + <title> + + Archive: 2026/2 | + 暮秋小屋 + </title> + + + + <link rel="icon" href="/favicon.ico"> + + + + + <!-- stylesheets list from _config.yml --> + + <link rel="stylesheet" href="/css/style.css"> + + + + + <link rel="preload" href="/fonts/latin-base.woff2" as="font" type="font/woff2" crossorigin> + <link rel="preload" href="/fonts/cjk-common.woff2" as="font" type="font/woff2" crossorigin> + + + + <!-- scripts list from _config.yml --> + + <script + src="/js/menu.js"></script> + + + + + + <script + src="https://polyfill.alicdn.com/polyfill.js?features=es6"></script> + <script + id="MathJax-script" + async + src="https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/mathjax/3.2.0/es5/tex-mml-chtml.js"></script> + + + + + <meta name="generator" content="Hexo 6.3.0"></head> + <body> + <div class="wrapper"> + + <div class="header"> + <div class="flex-container"> + <div class="header-inner"> + <div class="site-brand-container"> + <a href="/"> + + 暮秋小屋 + + </a> + </div> + <div id="menu-btn" class="menu-btn" onclick="toggleMenu()"> + 菜单 + </div> + <nav class="site-nav"> + <ul class="menu-list"> + + + <li class="menu-item"> + <a href="/"> + 主页 + </a> + </li> + + + + <li class="menu-item"> + <a href="/categories/gallery/"> + 日记本 + </a> + </li> + + + + <li class="menu-item"> + <a href="/tags/Medicine/"> + 泛医学 + </a> + </li> + + + + <li class="menu-item"> + <a href="/tags/Technique/"> + 计算机 + </a> + </li> + + + + <li class="menu-item"> + <a href="/tags/Life/"> + 生活 + </a> + </li> + + + + <li class="menu-item"> + <a href="/archives"> + 全部 + </a> + </li> + + + + <li class="menu-item"> + <a href="/about"> + 关于 + </a> + </li> + + + + <li class="menu-item"> + <a href="/search">搜索</a> + </li> + + </ul> + </nav> + </div> + </div> +</div> + + + <div class="main"> + <div class="flex-container"> + <div class="post-list"> + + + + + + + <div class="year-title">2026</div> + + + <div class="post-list-item"> + <div class="post-title"> + <a href="/2026/02/16/%E8%80%81%E5%B9%B4%E4%BA%BA%E8%90%A5%E5%85%BB%E8%AF%AF%E5%8C%BA/"> + + 老年人营养不良误区 + + </a> + </div> + + <span class="post-date">Feb 16, 2026</span> + </div> + + + <div id="paginator"> + + </div> +</div> + + </div> + </div> + + <div class="footer"> + <div class="flex-container"> + <div class="footer-text"> + + + 韩暮秋 | + + + 希望路过的人可以添点柴火让这里暖和点 + + </div> + </div> +</div> + + + </div> + + <script src="/js/mermaid-zoom.js"></script> + + </body> +</html> diff --git a/archives/2026/03/index.html b/archives/2026/03/index.html index 5f60a193..90180ff3 100644 --- a/archives/2026/03/index.html +++ b/archives/2026/03/index.html @@ -165,6 +165,42 @@ <div class="post-list-item"> <div class="post-title"> + <a href="/2026/03/16/Nginx-%E5%89%8D%E5%90%8E%E7%AB%AF%E5%90%8C%E5%9F%9F%E5%88%86%E6%B5%81/"> + + Nginx 前后端同域分流 + + </a> + </div> + + <span class="post-date">Mar 16, 2026</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> + <a href="/2026/03/12/%E7%AE%80%E5%8D%95%E8%AF%B4%E8%AF%B4-FHIR-Transaction-Bundle/"> + + 简单说说 FHIR Transaction Bundle + + </a> + </div> + + <span class="post-date">Mar 12, 2026</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> <a href="/2026/03/06/Tacrolimus-for-Stasis-Dermatitis-in-Palliative-Heart-Failure-and-COPD/"> 他克莫司在心衰合并COPD晚期患者淤积性皮炎中的姑息治疗可行性报告 diff --git a/archives/2026/index.html b/archives/2026/index.html index 79712766..81a0e805 100644 --- a/archives/2026/index.html +++ b/archives/2026/index.html @@ -165,6 +165,42 @@ <div class="post-list-item"> <div class="post-title"> + <a href="/2026/03/16/Nginx-%E5%89%8D%E5%90%8E%E7%AB%AF%E5%90%8C%E5%9F%9F%E5%88%86%E6%B5%81/"> + + Nginx 前后端同域分流 + + </a> + </div> + + <span class="post-date">Mar 16, 2026</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> + <a href="/2026/03/12/%E7%AE%80%E5%8D%95%E8%AF%B4%E8%AF%B4-FHIR-Transaction-Bundle/"> + + 简单说说 FHIR Transaction Bundle + + </a> + </div> + + <span class="post-date">Mar 12, 2026</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> <a href="/2026/03/06/Tacrolimus-for-Stasis-Dermatitis-in-Palliative-Heart-Failure-and-COPD/"> 他克莫司在心衰合并COPD晚期患者淤积性皮炎中的姑息治疗可行性报告 @@ -176,6 +212,42 @@ </div> + + + + + + <div class="post-list-item"> + <div class="post-title"> + <a href="/2026/02/16/%E8%80%81%E5%B9%B4%E4%BA%BA%E8%90%A5%E5%85%BB%E8%AF%AF%E5%8C%BA/"> + + 老年人营养不良误区 + + </a> + </div> + + <span class="post-date">Feb 16, 2026</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> + <a href="/2026/01/09/%E8%8D%AF%E7%89%A9%E7%A0%94%E5%8F%91%E4%B8%AD%E7%9A%84%E5%88%B6%E8%8D%AF%E6%88%90%E6%9C%AC/"> + + 药物研发中的制药成本 + + </a> + </div> + + <span class="post-date">Jan 9, 2026</span> + </div> + + <div id="paginator"> </div> diff --git a/archives/index.html b/archives/index.html index c6ae3d05..68e62c09 100644 --- a/archives/index.html +++ b/archives/index.html @@ -165,14 +165,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2026/03/06/Tacrolimus-for-Stasis-Dermatitis-in-Palliative-Heart-Failure-and-COPD/"> + <a href="/2026/03/16/Nginx-%E5%89%8D%E5%90%8E%E7%AB%AF%E5%90%8C%E5%9F%9F%E5%88%86%E6%B5%81/"> - 他克莫司在心衰合并COPD晚期患者淤积性皮炎中的姑息治疗可行性报告 + Nginx 前后端同域分流 </a> </div> - <span class="post-date">Mar 6, 2026</span> + <span class="post-date">Mar 16, 2026</span> </div> @@ -180,19 +180,17 @@ - <div class="year-title">2025</div> - <div class="post-list-item"> <div class="post-title"> - <a href="/2025/12/30/%E4%B9%99%E9%85%B0%E5%8D%8A%E8%84%B1%E6%B0%A8%E9%85%B8%E7%9A%84%E8%8D%AF%E7%90%86%E5%AD%A6%E4%B8%8E%E8%8D%AF%E4%BB%A3%E5%8A%A8%E5%8A%9B%E5%AD%A6%E7%89%B9%E6%80%A7/"> + <a href="/2026/03/12/%E7%AE%80%E5%8D%95%E8%AF%B4%E8%AF%B4-FHIR-Transaction-Bundle/"> - 乙酰半脱氨酸的药理学与药代动力学特性 + 简单说说 FHIR Transaction Bundle </a> </div> - <span class="post-date">Dec 30, 2025</span> + <span class="post-date">Mar 12, 2026</span> </div> @@ -203,14 +201,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/12/29/FHIR-%E8%AE%B0%E5%BD%95%E6%82%A3%E8%80%85%E7%9A%84%E7%94%A8%E8%8D%AF%E8%AE%B0%E5%BD%95/"> + <a href="/2026/03/06/Tacrolimus-for-Stasis-Dermatitis-in-Palliative-Heart-Failure-and-COPD/"> - FHIR 记录患者的用药记录 + 他克莫司在心衰合并COPD晚期患者淤积性皮炎中的姑息治疗可行性报告 </a> </div> - <span class="post-date">Dec 29, 2025</span> + <span class="post-date">Mar 6, 2026</span> </div> @@ -221,14 +219,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/12/29/TSOPT-%E6%A3%80%E6%9F%A5/"> + <a href="/2026/02/16/%E8%80%81%E5%B9%B4%E4%BA%BA%E8%90%A5%E5%85%BB%E8%AF%AF%E5%8C%BA/"> - TSOPT 检查 + 老年人营养不良误区 </a> </div> - <span class="post-date">Dec 29, 2025</span> + <span class="post-date">Feb 16, 2026</span> </div> @@ -239,14 +237,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/12/28/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E5%85%AB%E6%97%A5/"> + <a href="/2026/01/09/%E8%8D%AF%E7%89%A9%E7%A0%94%E5%8F%91%E4%B8%AD%E7%9A%84%E5%88%B6%E8%8D%AF%E6%88%90%E6%9C%AC/"> - 二〇二五年十二月二十八日 + 药物研发中的制药成本 </a> </div> - <span class="post-date">Dec 28, 2025</span> + <span class="post-date">Jan 9, 2026</span> </div> @@ -254,17 +252,19 @@ + <div class="year-title">2025</div> + <div class="post-list-item"> <div class="post-title"> - <a href="/2025/12/27/%E6%84%8F%E5%90%91%E6%80%A7%E6%B2%BB%E7%96%97%E5%8E%9F%E5%88%99/"> + <a href="/2025/12/30/%E4%B9%99%E9%85%B0%E5%8D%8A%E8%84%B1%E6%B0%A8%E9%85%B8%E7%9A%84%E8%8D%AF%E7%90%86%E5%AD%A6%E4%B8%8E%E8%8D%AF%E4%BB%A3%E5%8A%A8%E5%8A%9B%E5%AD%A6%E7%89%B9%E6%80%A7/"> - 意向性治疗原则 + 乙酰半脱氨酸的药理学与药代动力学特性 </a> </div> - <span class="post-date">Dec 27, 2025</span> + <span class="post-date">Dec 30, 2025</span> </div> @@ -275,14 +275,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/12/25/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E4%BA%94%E6%97%A5/"> + <a href="/2025/12/29/FHIR-%E8%AE%B0%E5%BD%95%E6%82%A3%E8%80%85%E7%9A%84%E7%94%A8%E8%8D%AF%E8%AE%B0%E5%BD%95/"> - 二〇二五年十二月二十五日 + FHIR 记录患者的用药记录 </a> </div> - <span class="post-date">Dec 25, 2025</span> + <span class="post-date">Dec 29, 2025</span> </div> @@ -293,14 +293,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/12/20/%E8%B0%88%E8%B0%88%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B/"> + <a href="/2025/12/29/TSOPT-%E6%A3%80%E6%9F%A5/"> - 谈谈软件工程 + TSOPT 检查 </a> </div> - <span class="post-date">Dec 20, 2025</span> + <span class="post-date">Dec 29, 2025</span> </div> @@ -311,14 +311,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/12/19/%E4%B8%B4%E5%BA%8A%E7%A0%94%E7%A9%B6%E4%B8%AD%E7%9B%B2%E6%80%81%E8%A7%84%E5%88%99%E5%AD%98%E5%9C%A8%E7%9A%84%E5%8E%9F%E5%9B%A0/"> + <a href="/2025/12/28/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E5%85%AB%E6%97%A5/"> - 临床研究中盲态规则存在的原因 + 二〇二五年十二月二十八日 </a> </div> - <span class="post-date">Dec 19, 2025</span> + <span class="post-date">Dec 28, 2025</span> </div> @@ -329,14 +329,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/12/19/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E5%8D%81%E4%B9%9D%E6%97%A5/"> + <a href="/2025/12/27/%E6%84%8F%E5%90%91%E6%80%A7%E6%B2%BB%E7%96%97%E5%8E%9F%E5%88%99/"> - 二〇二五年十二月十九日 + 意向性治疗原则 </a> </div> - <span class="post-date">Dec 19, 2025</span> + <span class="post-date">Dec 27, 2025</span> </div> diff --git a/archives/page/10/index.html b/archives/page/10/index.html index 88507b98..a29280f1 100644 --- a/archives/page/10/index.html +++ b/archives/page/10/index.html @@ -165,14 +165,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/04/03/shadow-cljs-proxy/"> + <a href="/2024/05/16/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E4%BA%94%E6%9C%88%E5%8D%81%E5%85%AD%E6%97%A5/"> - shadow-cljs 怎么设置代理 + 二〇二四年五月十六日 </a> </div> - <span class="post-date">Apr 3, 2024</span> + <span class="post-date">May 16, 2024</span> </div> @@ -183,14 +183,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/03/22/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E4%B8%89%E6%9C%88%E4%BA%8C%E5%8D%81%E4%BA%8C%E6%97%A5/"> + <a href="/2024/05/13/%E7%BB%99%E5%B0%B8%E4%BD%93%E4%B8%8A-ECMO-%E5%B9%B6%E7%BB%B4%E6%8C%81%E5%BF%83%E8%B7%B3/"> - 二〇二四年三月二十二日 + 给尸体上 ECMO 并维持心跳 </a> </div> - <span class="post-date">Mar 22, 2024</span> + <span class="post-date">May 13, 2024</span> </div> @@ -201,14 +201,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/02/26/OCaml-News-2024-3/"> + <a href="/2024/05/07/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E4%BA%94%E6%9C%88%E4%B8%83%E6%97%A5/"> - OCaml News 2024-3 + 二〇二四年五月七日 </a> </div> - <span class="post-date">Feb 26, 2024</span> + <span class="post-date">May 7, 2024</span> </div> @@ -219,14 +219,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/02/07/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%B8%83%E6%97%A5/"> + <a href="/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/"> - 二〇二四年二月七日 + 二〇二四年四月八日 </a> </div> - <span class="post-date">Feb 7, 2024</span> + <span class="post-date">Apr 8, 2024</span> </div> @@ -237,14 +237,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/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/"> + <a href="/2024/04/03/shadow-cljs-proxy/"> - 急诊与灾难医学--烧伤 + shadow-cljs 怎么设置代理 </a> </div> - <span class="post-date">Jan 25, 2024</span> + <span class="post-date">Apr 3, 2024</span> </div> @@ -255,14 +255,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/01/23/G-Machine/"> + <a href="/2024/03/22/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E4%B8%89%E6%9C%88%E4%BA%8C%E5%8D%81%E4%BA%8C%E6%97%A5/"> - G-Machine + 二〇二四年三月二十二日 </a> </div> - <span class="post-date">Jan 23, 2024</span> + <span class="post-date">Mar 22, 2024</span> </div> @@ -273,14 +273,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/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/"> + <a href="/2024/02/26/OCaml-News-2024-3/"> - 慢性肺源性心脏病 + OCaml News 2024-3 </a> </div> - <span class="post-date">Jan 23, 2024</span> + <span class="post-date">Feb 26, 2024</span> </div> @@ -291,14 +291,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/01/23/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E4%B8%80%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%89%E6%97%A5/"> + <a href="/2024/02/07/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%B8%83%E6%97%A5/"> - 二〇二四年一月二十三日 + 二〇二四年二月七日 </a> </div> - <span class="post-date">Jan 23, 2024</span> + <span class="post-date">Feb 7, 2024</span> </div> @@ -309,14 +309,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/01/22/Rescript-React-Native/"> + <a href="/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/"> - Rescript and React Native + 急诊与灾难医学--烧伤 </a> </div> - <span class="post-date">Jan 22, 2024</span> + <span class="post-date">Jan 25, 2024</span> </div> @@ -327,14 +327,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/01/18/OCaml-News-2024-2/"> + <a href="/2024/01/23/G-Machine/"> - OCaml News 2024-2 + G-Machine </a> </div> - <span class="post-date">Jan 18, 2024</span> + <span class="post-date">Jan 23, 2024</span> </div> diff --git a/archives/page/11/index.html b/archives/page/11/index.html index 0c71a66e..c797fb9a 100644 --- a/archives/page/11/index.html +++ b/archives/page/11/index.html @@ -165,14 +165,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/01/08/OCaml-News-2024-1/"> + <a href="/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/"> - OCaml News 2024-1 + 慢性肺源性心脏病 </a> </div> - <span class="post-date">Jan 8, 2024</span> + <span class="post-date">Jan 23, 2024</span> </div> @@ -180,19 +180,17 @@ - <div class="year-title">2023</div> - <div class="post-list-item"> <div class="post-title"> - <a href="/2023/12/02/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E4%BA%8C%E6%97%A5/"> + <a href="/2024/01/23/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E4%B8%80%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%89%E6%97%A5/"> - 二〇二三年十二月二日 + 二〇二四年一月二十三日 </a> </div> - <span class="post-date">Dec 2, 2023</span> + <span class="post-date">Jan 23, 2024</span> </div> @@ -203,14 +201,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/12/01/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E4%B8%80%E6%97%A5/"> + <a href="/2024/01/22/Rescript-React-Native/"> - 二〇二三年十二月一日 + Rescript and React Native </a> </div> - <span class="post-date">Dec 1, 2023</span> + <span class="post-date">Jan 22, 2024</span> </div> @@ -221,14 +219,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/11/29/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B9%9D%E6%97%A5/"> + <a href="/2024/01/18/OCaml-News-2024-2/"> - 二〇二三年十一月二十九日 + OCaml News 2024-2 </a> </div> - <span class="post-date">Nov 29, 2023</span> + <span class="post-date">Jan 18, 2024</span> </div> @@ -239,14 +237,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/11/21/Adolescent-Onset-of-Acute-Heart-Failure/"> + <a href="/2024/01/08/OCaml-News-2024-1/"> - Adolescent Onset of Acute Heart Failure + OCaml News 2024-1 </a> </div> - <span class="post-date">Nov 21, 2023</span> + <span class="post-date">Jan 8, 2024</span> </div> @@ -254,17 +252,19 @@ + <div class="year-title">2023</div> + <div class="post-list-item"> <div class="post-title"> - <a href="/2023/11/16/Fever-of-Unknown-Origin/"> + <a href="/2023/12/02/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E4%BA%8C%E6%97%A5/"> - Fever of Unknown Origin + 二〇二三年十二月二日 </a> </div> - <span class="post-date">Nov 16, 2023</span> + <span class="post-date">Dec 2, 2023</span> </div> @@ -275,14 +275,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/11/06/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E5%85%AD%E6%97%A5/"> + <a href="/2023/12/01/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E4%B8%80%E6%97%A5/"> - 二零二三年十一月六日 + 二〇二三年十二月一日 </a> </div> - <span class="post-date">Nov 6, 2023</span> + <span class="post-date">Dec 1, 2023</span> </div> @@ -293,14 +293,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/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/"> + <a href="/2023/11/29/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B9%9D%E6%97%A5/"> - 儿童新型冠状病毒Omicron株和肺炎支原体混合感染重症肺炎1例 + 二〇二三年十一月二十九日 </a> </div> - <span class="post-date">Oct 25, 2023</span> + <span class="post-date">Nov 29, 2023</span> </div> @@ -311,14 +311,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/10/25/Radiographic-Absence-of-the-Left-Humeral-Head/"> + <a href="/2023/11/21/Adolescent-Onset-of-Acute-Heart-Failure/"> - Radiographic Absence of the Left Humeral Head + Adolescent Onset of Acute Heart Failure </a> </div> - <span class="post-date">Oct 25, 2023</span> + <span class="post-date">Nov 21, 2023</span> </div> @@ -329,14 +329,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/10/25/%E8%82%BA%E7%82%8E%E6%94%AF%E5%8E%9F%E4%BD%93%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9/"> + <a href="/2023/11/16/Fever-of-Unknown-Origin/"> - 肺炎支原体注意事项 + Fever of Unknown Origin </a> </div> - <span class="post-date">Oct 25, 2023</span> + <span class="post-date">Nov 16, 2023</span> </div> diff --git a/archives/page/12/index.html b/archives/page/12/index.html index 4866aa00..4792caae 100644 --- a/archives/page/12/index.html +++ b/archives/page/12/index.html @@ -165,14 +165,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/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/"> + <a href="/2023/11/06/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E5%85%AD%E6%97%A5/"> - 冬季咳嗽辨别指南 + 二零二三年十一月六日 </a> </div> - <span class="post-date">Oct 22, 2023</span> + <span class="post-date">Nov 6, 2023</span> </div> @@ -183,14 +183,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/10/21/OCaml-Core-Int-pow-%E7%9A%84%E5%AE%9E%E7%8E%B0/"> + <a href="/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/"> - OCaml Core.Int.pow 的实现 + 儿童新型冠状病毒Omicron株和肺炎支原体混合感染重症肺炎1例 </a> </div> - <span class="post-date">Oct 21, 2023</span> + <span class="post-date">Oct 25, 2023</span> </div> @@ -201,14 +201,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/10/13/%E8%82%9D%E5%8A%9F%E8%83%BD%E6%A3%80%E6%9F%A5%E5%8C%96%E9%AA%8C%E5%8D%95/"> + <a href="/2023/10/25/Radiographic-Absence-of-the-Left-Humeral-Head/"> - 肝功能检查化验单阅读指南 + Radiographic Absence of the Left Humeral Head </a> </div> - <span class="post-date">Oct 13, 2023</span> + <span class="post-date">Oct 25, 2023</span> </div> @@ -219,14 +219,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/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/"> + <a href="/2023/10/25/%E8%82%BA%E7%82%8E%E6%94%AF%E5%8E%9F%E4%BD%93%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9/"> - 血常规化验结果阅读指南 + 肺炎支原体注意事项 </a> </div> - <span class="post-date">Oct 12, 2023</span> + <span class="post-date">Oct 25, 2023</span> </div> @@ -237,14 +237,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/10/12/%E8%BF%87%E5%BA%A6%E7%96%B2%E5%8A%B3%E7%9A%84%E5%85%AD%E7%A7%8D%E8%A1%A8%E7%8E%B0/"> + <a href="/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/"> - 过度疲劳的六种表现 + 冬季咳嗽辨别指南 </a> </div> - <span class="post-date">Oct 12, 2023</span> + <span class="post-date">Oct 22, 2023</span> </div> @@ -255,14 +255,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/10/05/v8%E4%B8%AD%E7%9A%84Number-toString/"> + <a href="/2023/10/21/OCaml-Core-Int-pow-%E7%9A%84%E5%AE%9E%E7%8E%B0/"> - v8中的Number.toString() + OCaml Core.Int.pow 的实现 </a> </div> - <span class="post-date">Oct 5, 2023</span> + <span class="post-date">Oct 21, 2023</span> </div> @@ -273,14 +273,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/09/28/A-Brief-History-of-Just-In-Time/"> + <a href="/2023/10/13/%E8%82%9D%E5%8A%9F%E8%83%BD%E6%A3%80%E6%9F%A5%E5%8C%96%E9%AA%8C%E5%8D%95/"> - A Brief History of Just-In-Time + 肝功能检查化验单阅读指南 </a> </div> - <span class="post-date">Sep 28, 2023</span> + <span class="post-date">Oct 13, 2023</span> </div> @@ -291,14 +291,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/09/13/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%B9%9D%E6%9C%88%E5%8D%81%E4%B8%89%E6%97%A5/"> + <a href="/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/"> - 二零二三年九月十三日 + 血常规化验结果阅读指南 </a> </div> - <span class="post-date">Sep 13, 2023</span> + <span class="post-date">Oct 12, 2023</span> </div> @@ -309,14 +309,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/08/27/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%85%AB%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%83%E6%97%A5/"> + <a href="/2023/10/12/%E8%BF%87%E5%BA%A6%E7%96%B2%E5%8A%B3%E7%9A%84%E5%85%AD%E7%A7%8D%E8%A1%A8%E7%8E%B0/"> - 二零二三年八月二十七日 + 过度疲劳的六种表现 </a> </div> - <span class="post-date">Aug 27, 2023</span> + <span class="post-date">Oct 12, 2023</span> </div> @@ -327,14 +327,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/08/21/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%85%AB%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%80%E6%97%A5/"> + <a href="/2023/10/05/v8%E4%B8%AD%E7%9A%84Number-toString/"> - 二零二三年八月二十一日 + v8中的Number.toString() </a> </div> - <span class="post-date">Aug 21, 2023</span> + <span class="post-date">Oct 5, 2023</span> </div> diff --git a/archives/page/13/index.html b/archives/page/13/index.html index 455d2e7c..1dd4b282 100644 --- a/archives/page/13/index.html +++ b/archives/page/13/index.html @@ -165,14 +165,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/08/15/tick-thread%E5%9C%A8Multicore-OCaml%E4%B8%AD%E7%9A%84%E4%BD%9C%E7%94%A8/"> + <a href="/2023/09/28/A-Brief-History-of-Just-In-Time/"> - tick thread在Multicore OCaml中的作用 + A Brief History of Just-In-Time </a> </div> - <span class="post-date">Aug 15, 2023</span> + <span class="post-date">Sep 28, 2023</span> </div> @@ -183,14 +183,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/08/15/poll-error-attribute-in-OCaml/"> + <a href="/2023/09/13/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%B9%9D%E6%9C%88%E5%8D%81%E4%B8%89%E6%97%A5/"> - 使用 [@poll error] 实现线程安全的数据结构 + 二零二三年九月十三日 </a> </div> - <span class="post-date">Aug 15, 2023</span> + <span class="post-date">Sep 13, 2023</span> </div> @@ -201,14 +201,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/08/01/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%85%AB%E6%9C%88%E4%B8%80%E6%97%A5/"> + <a href="/2023/08/27/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%85%AB%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%83%E6%97%A5/"> - 二〇二三年八月一日 + 二零二三年八月二十七日 </a> </div> - <span class="post-date">Aug 1, 2023</span> + <span class="post-date">Aug 27, 2023</span> </div> @@ -219,14 +219,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/07/30/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%B8%83%E6%9C%88%E4%B8%89%E5%8D%81%E6%97%A5/"> + <a href="/2023/08/21/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%85%AB%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%80%E6%97%A5/"> - 二零二三年七月三十日 + 二零二三年八月二十一日 </a> </div> - <span class="post-date">Jul 30, 2023</span> + <span class="post-date">Aug 21, 2023</span> </div> @@ -237,14 +237,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/07/21/WiscKey-Separating-Keys-from-Values-in-SSD-conscious-Storage/"> + <a href="/2023/08/15/tick-thread%E5%9C%A8Multicore-OCaml%E4%B8%AD%E7%9A%84%E4%BD%9C%E7%94%A8/"> - WiscKey: Separating Keys from Values in SSD-conscious Storage + tick thread在Multicore OCaml中的作用 </a> </div> - <span class="post-date">Jul 21, 2023</span> + <span class="post-date">Aug 15, 2023</span> </div> @@ -255,14 +255,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/06/29/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%85%AD%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B9%9D%E6%97%A5/"> + <a href="/2023/08/15/poll-error-attribute-in-OCaml/"> - 二〇二三年六月二十九日 + 使用 [@poll error] 实现线程安全的数据结构 </a> </div> - <span class="post-date">Jun 29, 2023</span> + <span class="post-date">Aug 15, 2023</span> </div> @@ -273,14 +273,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/06/28/%E9%9A%90%E8%97%8F%E4%B8%80%E4%BA%9BOCaml-Effect%E7%9A%84%E6%9C%BA%E5%88%B6%EF%BC%8C%E8%AE%A9%E5%85%B6%E8%AF%AD%E6%B3%95%E5%9C%A8%E7%B2%BE%E7%A5%9E%E4%B8%8A%E6%9B%B4%E6%8E%A5%E8%BF%91delimcc/"> + <a href="/2023/08/01/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%85%AB%E6%9C%88%E4%B8%80%E6%97%A5/"> - 隐藏一些OCaml Effect的机制,让其语法在精神上更接近delimcc + 二〇二三年八月一日 </a> </div> - <span class="post-date">Jun 28, 2023</span> + <span class="post-date">Aug 1, 2023</span> </div> @@ -291,14 +291,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/06/28/caml-release-runtime-system%E5%AF%BC%E8%87%B4%E7%9A%84%E6%AD%BB%E9%94%81%E9%97%AE%E9%A2%98/"> + <a href="/2023/07/30/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%B8%83%E6%9C%88%E4%B8%89%E5%8D%81%E6%97%A5/"> - caml_release_runtime_system导致的死锁问题 + 二零二三年七月三十日 </a> </div> - <span class="post-date">Jun 28, 2023</span> + <span class="post-date">Jul 30, 2023</span> </div> @@ -309,14 +309,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/06/22/%E7%81%AF%E7%AC%BC%E8%8D%89/"> + <a href="/2023/07/21/WiscKey-Separating-Keys-from-Values-in-SSD-conscious-Storage/"> - 灯笼草 + WiscKey: Separating Keys from Values in SSD-conscious Storage </a> </div> - <span class="post-date">Jun 22, 2023</span> + <span class="post-date">Jul 21, 2023</span> </div> @@ -327,14 +327,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/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/"> + <a href="/2023/06/29/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%85%AD%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B9%9D%E6%97%A5/"> - 发热及超高热危象 + 二〇二三年六月二十九日 </a> </div> - <span class="post-date">Jun 17, 2023</span> + <span class="post-date">Jun 29, 2023</span> </div> diff --git a/archives/page/14/index.html b/archives/page/14/index.html index e5911706..54d44565 100644 --- a/archives/page/14/index.html +++ b/archives/page/14/index.html @@ -165,14 +165,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/06/10/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%85%AD%E6%9C%88%E5%8D%81%E6%97%A5/"> + <a href="/2023/06/28/%E9%9A%90%E8%97%8F%E4%B8%80%E4%BA%9BOCaml-Effect%E7%9A%84%E6%9C%BA%E5%88%B6%EF%BC%8C%E8%AE%A9%E5%85%B6%E8%AF%AD%E6%B3%95%E5%9C%A8%E7%B2%BE%E7%A5%9E%E4%B8%8A%E6%9B%B4%E6%8E%A5%E8%BF%91delimcc/"> - 二零二三年六月十日 + 隐藏一些OCaml Effect的机制,让其语法在精神上更接近delimcc </a> </div> - <span class="post-date">Jun 10, 2023</span> + <span class="post-date">Jun 28, 2023</span> </div> @@ -183,14 +183,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/05/24/Rust-%E9%97%AD%E5%8C%85-lifetime-may-not-live-long-enough-%E9%97%AE%E9%A2%98/"> + <a href="/2023/06/28/caml-release-runtime-system%E5%AF%BC%E8%87%B4%E7%9A%84%E6%AD%BB%E9%94%81%E9%97%AE%E9%A2%98/"> - Rust 闭包 lifetime may not live long enough 问题 + caml_release_runtime_system导致的死锁问题 </a> </div> - <span class="post-date">May 24, 2023</span> + <span class="post-date">Jun 28, 2023</span> </div> @@ -201,14 +201,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/05/03/Rust-NewType-%E6%A8%A1%E5%BC%8F/"> + <a href="/2023/06/22/%E7%81%AF%E7%AC%BC%E8%8D%89/"> - Rust NewType 模式 + 灯笼草 </a> </div> - <span class="post-date">May 3, 2023</span> + <span class="post-date">Jun 22, 2023</span> </div> @@ -219,14 +219,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/05/02/Rust-Partial-%E8%AF%AD%E4%B9%89/"> + <a href="/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/"> - Rust Partial 语义 + 发热及超高热危象 </a> </div> - <span class="post-date">May 2, 2023</span> + <span class="post-date">Jun 17, 2023</span> </div> @@ -237,14 +237,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/05/01/Rust-%E8%99%9A%E8%A1%A8%E5%B8%83%E5%B1%80%E8%A7%84%E5%88%99%E4%BB%8B%E7%BB%8D/"> + <a href="/2023/06/10/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%85%AD%E6%9C%88%E5%8D%81%E6%97%A5/"> - Rust 虚表布局规则介绍 + 二零二三年六月十日 </a> </div> - <span class="post-date">May 1, 2023</span> + <span class="post-date">Jun 10, 2023</span> </div> @@ -255,14 +255,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/04/30/TypeScript-With-Rust-Errors-No-Try-Catch-Heresy/"> + <a href="/2023/05/24/Rust-%E9%97%AD%E5%8C%85-lifetime-may-not-live-long-enough-%E9%97%AE%E9%A2%98/"> - TypeScript With Rust Errors, No Try Catch, Heresy + Rust 闭包 lifetime may not live long enough 问题 </a> </div> - <span class="post-date">Apr 30, 2023</span> + <span class="post-date">May 24, 2023</span> </div> @@ -273,14 +273,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/04/25/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%9B%9B%E6%9C%88%E4%BA%8C%E5%8D%81%E4%BA%94%E6%97%A5/"> + <a href="/2023/05/03/Rust-NewType-%E6%A8%A1%E5%BC%8F/"> - 二零二三年四月二十五日 + Rust NewType 模式 </a> </div> - <span class="post-date">Apr 25, 2023</span> + <span class="post-date">May 3, 2023</span> </div> @@ -291,14 +291,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/04/22/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%9B%9B%E6%9C%88%E4%BA%8C%E5%8D%81%E4%BA%8C%E6%97%A5/"> + <a href="/2023/05/02/Rust-Partial-%E8%AF%AD%E4%B9%89/"> - 二零二三年四月二十二日 + Rust Partial 语义 </a> </div> - <span class="post-date">Apr 22, 2023</span> + <span class="post-date">May 2, 2023</span> </div> @@ -309,14 +309,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/03/14/%E8%9E%BA%E5%86%85%E9%85%AF%E7%89%87/"> + <a href="/2023/05/01/Rust-%E8%99%9A%E8%A1%A8%E5%B8%83%E5%B1%80%E8%A7%84%E5%88%99%E4%BB%8B%E7%BB%8D/"> - 螺内酯片 + Rust 虚表布局规则介绍 </a> </div> - <span class="post-date">Mar 14, 2023</span> + <span class="post-date">May 1, 2023</span> </div> @@ -327,14 +327,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/03/14/%E5%91%8B%E5%A1%9E%E7%B1%B3/"> + <a href="/2023/04/30/TypeScript-With-Rust-Errors-No-Try-Catch-Heresy/"> - 呋塞米 + TypeScript With Rust Errors, No Try Catch, Heresy </a> </div> - <span class="post-date">Mar 14, 2023</span> + <span class="post-date">Apr 30, 2023</span> </div> diff --git a/archives/page/15/index.html b/archives/page/15/index.html index 1c8088fb..a2600f68 100644 --- a/archives/page/15/index.html +++ b/archives/page/15/index.html @@ -165,14 +165,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/03/13/%E6%9B%BF%E7%B1%B3%E6%B2%99%E5%9D%A6/"> + <a href="/2023/04/25/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%9B%9B%E6%9C%88%E4%BA%8C%E5%8D%81%E4%BA%94%E6%97%A5/"> - 替米沙坦 + 二零二三年四月二十五日 </a> </div> - <span class="post-date">Mar 13, 2023</span> + <span class="post-date">Apr 25, 2023</span> </div> @@ -183,14 +183,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/03/05/%E5%A5%A5%E5%8F%B8%E4%BB%96%E9%9F%A6/"> + <a href="/2023/04/22/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%9B%9B%E6%9C%88%E4%BA%8C%E5%8D%81%E4%BA%8C%E6%97%A5/"> - 奥司他韦 + 二零二三年四月二十二日 </a> </div> - <span class="post-date">Mar 5, 2023</span> + <span class="post-date">Apr 22, 2023</span> </div> @@ -201,14 +201,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/03/04/%E9%87%91%E5%8C%AE%E8%A6%81%E7%95%A5/"> + <a href="/2023/03/14/%E8%9E%BA%E5%86%85%E9%85%AF%E7%89%87/"> - 金匮要略 + 螺内酯片 </a> </div> - <span class="post-date">Mar 4, 2023</span> + <span class="post-date">Mar 14, 2023</span> </div> @@ -219,14 +219,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/03/01/%E6%B0%94%E8%83%B8/"> + <a href="/2023/03/14/%E5%91%8B%E5%A1%9E%E7%B1%B3/"> - 气胸 + 呋塞米 </a> </div> - <span class="post-date">Mar 1, 2023</span> + <span class="post-date">Mar 14, 2023</span> </div> @@ -237,14 +237,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/03/01/%E7%BA%AF%E7%89%9B%E5%A5%B6%E5%8F%AF%E4%BB%A5%E5%8A%A0%E7%82%B9%E5%95%A5/"> + <a href="/2023/03/13/%E6%9B%BF%E7%B1%B3%E6%B2%99%E5%9D%A6/"> - 纯牛奶可以加点啥 + 替米沙坦 </a> </div> - <span class="post-date">Mar 1, 2023</span> + <span class="post-date">Mar 13, 2023</span> </div> @@ -255,14 +255,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/02/26/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E5%85%AD%E6%97%A5/"> + <a href="/2023/03/05/%E5%A5%A5%E5%8F%B8%E4%BB%96%E9%9F%A6/"> - 二零二三年二月二十六日 + 奥司他韦 </a> </div> - <span class="post-date">Feb 26, 2023</span> + <span class="post-date">Mar 5, 2023</span> </div> @@ -273,14 +273,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/02/25/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E4%BA%94%E6%97%A5/"> + <a href="/2023/03/04/%E9%87%91%E5%8C%AE%E8%A6%81%E7%95%A5/"> - 二零二三年二月二十五日 + 金匮要略 </a> </div> - <span class="post-date">Feb 25, 2023</span> + <span class="post-date">Mar 4, 2023</span> </div> @@ -291,14 +291,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/02/24/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E5%9B%9B%E6%97%A5/"> + <a href="/2023/03/01/%E6%B0%94%E8%83%B8/"> - 二零二三年二月二十四日 + 气胸 </a> </div> - <span class="post-date">Feb 24, 2023</span> + <span class="post-date">Mar 1, 2023</span> </div> @@ -309,14 +309,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/02/22/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E4%BA%8C%E6%97%A5/"> + <a href="/2023/03/01/%E7%BA%AF%E7%89%9B%E5%A5%B6%E5%8F%AF%E4%BB%A5%E5%8A%A0%E7%82%B9%E5%95%A5/"> - 二零二三年二月二十二日 + 纯牛奶可以加点啥 </a> </div> - <span class="post-date">Feb 22, 2023</span> + <span class="post-date">Mar 1, 2023</span> </div> @@ -327,14 +327,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/02/02/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%BA%8C%E6%97%A5/"> + <a href="/2023/02/26/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E5%85%AD%E6%97%A5/"> - 二零二三年二月二日 + 二零二三年二月二十六日 </a> </div> - <span class="post-date">Feb 2, 2023</span> + <span class="post-date">Feb 26, 2023</span> </div> diff --git a/archives/page/16/index.html b/archives/page/16/index.html index 8c1615af..bc26f0fe 100644 --- a/archives/page/16/index.html +++ b/archives/page/16/index.html @@ -165,14 +165,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/02/01/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%B8%80%E6%97%A5/"> + <a href="/2023/02/25/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E4%BA%94%E6%97%A5/"> - 二零二三年二月一日 + 二零二三年二月二十五日 </a> </div> - <span class="post-date">Feb 1, 2023</span> + <span class="post-date">Feb 25, 2023</span> </div> @@ -183,14 +183,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/01/21/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%B8%80%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%80%E6%97%A5/"> + <a href="/2023/02/24/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E5%9B%9B%E6%97%A5/"> - 二零二三年一月二十一日 + 二零二三年二月二十四日 </a> </div> - <span class="post-date">Jan 21, 2023</span> + <span class="post-date">Feb 24, 2023</span> </div> @@ -198,19 +198,17 @@ - <div class="year-title">2022</div> - <div class="post-list-item"> <div class="post-title"> - <a href="/2022/12/31/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E4%B8%89%E5%8D%81%E4%B8%80%E6%97%A5/"> + <a href="/2023/02/22/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E4%BA%8C%E6%97%A5/"> - 二零二二年十二月三十一日 + 二零二三年二月二十二日 </a> </div> - <span class="post-date">Dec 31, 2022</span> + <span class="post-date">Feb 22, 2023</span> </div> @@ -221,14 +219,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2022/11/03/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E6%9C%88%E4%B8%89%E6%97%A5/"> + <a href="/2023/02/02/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%BA%8C%E6%97%A5/"> - 二零二二年十一月月三日 + 二零二三年二月二日 </a> </div> - <span class="post-date">Nov 3, 2022</span> + <span class="post-date">Feb 2, 2023</span> </div> @@ -239,14 +237,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2022/10/01/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E5%8D%81%E6%9C%88%E4%B8%80%E6%97%A5/"> + <a href="/2023/02/01/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%B8%80%E6%97%A5/"> - 二零二二年十月一日 + 二零二三年二月一日 </a> </div> - <span class="post-date">Oct 1, 2022</span> + <span class="post-date">Feb 1, 2023</span> </div> @@ -257,14 +255,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2022/09/22/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E4%B9%9D%E6%9C%88%E4%BA%8C%E5%8D%81%E4%BA%8C%E6%97%A5/"> + <a href="/2023/01/21/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%B8%80%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%80%E6%97%A5/"> - 二零二二年九月二十二日 + 二零二三年一月二十一日 </a> </div> - <span class="post-date">Sep 22, 2022</span> + <span class="post-date">Jan 21, 2023</span> </div> @@ -272,17 +270,19 @@ + <div class="year-title">2022</div> + <div class="post-list-item"> <div class="post-title"> - <a href="/2022/08/21/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E5%85%AB%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%80%E6%97%A5/"> + <a href="/2022/12/31/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E4%B8%89%E5%8D%81%E4%B8%80%E6%97%A5/"> - 二零二二年八月二十一日 + 二零二二年十二月三十一日 </a> </div> - <span class="post-date">Aug 21, 2022</span> + <span class="post-date">Dec 31, 2022</span> </div> @@ -293,14 +293,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2022/03/14/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E4%B8%89%E6%9C%88%E5%8D%81%E5%9B%9B%E6%97%A5/"> + <a href="/2022/11/03/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E6%9C%88%E4%B8%89%E6%97%A5/"> - 二零二二年三月十四日 + 二零二二年十一月月三日 </a> </div> - <span class="post-date">Mar 14, 2022</span> + <span class="post-date">Nov 3, 2022</span> </div> @@ -311,14 +311,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2022/01/01/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E4%B8%80%E6%9C%88%E4%B8%80%E6%97%A5/"> + <a href="/2022/10/01/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E5%8D%81%E6%9C%88%E4%B8%80%E6%97%A5/"> - 二零二二年一月一日 + 二零二二年十月一日 </a> </div> - <span class="post-date">Jan 1, 2022</span> + <span class="post-date">Oct 1, 2022</span> </div> @@ -326,19 +326,17 @@ - <div class="year-title">2021</div> - <div class="post-list-item"> <div class="post-title"> - <a href="/2021/03/27/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%80%E5%B9%B4%E4%B8%89%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%83%E6%97%A5/"> + <a href="/2022/09/22/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E4%B9%9D%E6%9C%88%E4%BA%8C%E5%8D%81%E4%BA%8C%E6%97%A5/"> - 二零二一年三月二十七日 + 二零二二年九月二十二日 </a> </div> - <span class="post-date">Mar 27, 2021</span> + <span class="post-date">Sep 22, 2022</span> </div> diff --git a/archives/page/17/index.html b/archives/page/17/index.html index 9ab6e1f2..8346b72a 100644 --- a/archives/page/17/index.html +++ b/archives/page/17/index.html @@ -160,11 +160,85 @@ + <div class="year-title">2022</div> + + + <div class="post-list-item"> + <div class="post-title"> + <a href="/2022/08/21/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E5%85%AB%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%80%E6%97%A5/"> + + 二零二二年八月二十一日 + + </a> + </div> + + <span class="post-date">Aug 21, 2022</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> + <a href="/2022/03/14/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E4%B8%89%E6%9C%88%E5%8D%81%E5%9B%9B%E6%97%A5/"> + + 二零二二年三月十四日 + + </a> + </div> + + <span class="post-date">Mar 14, 2022</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> + <a href="/2022/01/01/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E4%B8%80%E6%9C%88%E4%B8%80%E6%97%A5/"> + + 二零二二年一月一日 + + </a> + </div> + + <span class="post-date">Jan 1, 2022</span> + </div> + + + + + + <div class="year-title">2021</div> <div class="post-list-item"> <div class="post-title"> + <a href="/2021/03/27/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%80%E5%B9%B4%E4%B8%89%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%83%E6%97%A5/"> + + 二零二一年三月二十七日 + + </a> + </div> + + <span class="post-date">Mar 27, 2021</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> <a href="/2021/03/15/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%80%E5%B9%B4%E4%B8%89%E6%9C%88%E5%8D%81%E4%BA%94%E6%97%A5/"> 二零二一年三月十五日 diff --git a/archives/page/2/index.html b/archives/page/2/index.html index e3c9b511..d6cf8031 100644 --- a/archives/page/2/index.html +++ b/archives/page/2/index.html @@ -165,14 +165,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/11/29/FDA-%E4%BB%BF%E5%88%B6%E8%8D%AF%E6%B5%81%E7%A8%8B/"> + <a href="/2025/12/25/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E4%BA%94%E6%97%A5/"> - FDA 仿制药流程 + 二〇二五年十二月二十五日 </a> </div> - <span class="post-date">Nov 29, 2025</span> + <span class="post-date">Dec 25, 2025</span> </div> @@ -183,14 +183,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/11/27/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%83%E6%97%A5/"> + <a href="/2025/12/20/%E8%B0%88%E8%B0%88%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B/"> - 二〇二五年十一月二十七日 + 谈谈软件工程 </a> </div> - <span class="post-date">Nov 27, 2025</span> + <span class="post-date">Dec 20, 2025</span> </div> @@ -201,14 +201,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/11/26/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E4%BA%8C%E5%8D%81%E5%85%AD%E6%97%A5/"> + <a href="/2025/12/19/%E4%B8%B4%E5%BA%8A%E7%A0%94%E7%A9%B6%E4%B8%AD%E7%9B%B2%E6%80%81%E8%A7%84%E5%88%99%E5%AD%98%E5%9C%A8%E7%9A%84%E5%8E%9F%E5%9B%A0/"> - 二〇二五年十一月二十六日 + 临床研究中盲态规则存在的原因 </a> </div> - <span class="post-date">Nov 26, 2025</span> + <span class="post-date">Dec 19, 2025</span> </div> @@ -219,14 +219,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/11/14/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E5%8D%81%E5%9B%9B%E6%97%A5/"> + <a href="/2025/12/19/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E5%8D%81%E4%B9%9D%E6%97%A5/"> - 二〇二五年十一月十四日 + 二〇二五年十二月十九日 </a> </div> - <span class="post-date">Nov 14, 2025</span> + <span class="post-date">Dec 19, 2025</span> </div> @@ -237,14 +237,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/11/08/%E5%90%8E%E6%91%87%E7%9A%84-Graphic-EQ-APO-Presets/"> + <a href="/2025/11/29/FDA-%E4%BB%BF%E5%88%B6%E8%8D%AF%E6%B5%81%E7%A8%8B/"> - 后摇的 Graphic EQ APO Presets + FDA 仿制药流程 </a> </div> - <span class="post-date">Nov 8, 2025</span> + <span class="post-date">Nov 29, 2025</span> </div> @@ -255,14 +255,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/11/07/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E4%B8%83%E6%97%A5/"> + <a href="/2025/11/27/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%83%E6%97%A5/"> - 二〇二五年十一月七日 + 二〇二五年十一月二十七日 </a> </div> - <span class="post-date">Nov 7, 2025</span> + <span class="post-date">Nov 27, 2025</span> </div> @@ -273,14 +273,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/10/31/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E6%9C%88%E4%B8%89%E5%8D%81%E4%B8%80%E6%97%A5/"> + <a href="/2025/11/26/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E4%BA%8C%E5%8D%81%E5%85%AD%E6%97%A5/"> - 二〇二五年十月三十一日 + 二〇二五年十一月二十六日 </a> </div> - <span class="post-date">Oct 31, 2025</span> + <span class="post-date">Nov 26, 2025</span> </div> @@ -291,14 +291,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/10/30/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E6%9C%88%E4%B8%89%E5%8D%81%E6%97%A5/"> + <a href="/2025/11/14/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E5%8D%81%E5%9B%9B%E6%97%A5/"> - 二〇二五年十月三十日 + 二〇二五年十一月十四日 </a> </div> - <span class="post-date">Oct 30, 2025</span> + <span class="post-date">Nov 14, 2025</span> </div> @@ -309,14 +309,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/10/29/%E5%BA%93%E6%AC%A3%E7%BB%BC%E5%90%88%E5%BE%81/"> + <a href="/2025/11/08/%E5%90%8E%E6%91%87%E7%9A%84-Graphic-EQ-APO-Presets/"> - 库欣综合征 + 后摇的 Graphic EQ APO Presets </a> </div> - <span class="post-date">Oct 29, 2025</span> + <span class="post-date">Nov 8, 2025</span> </div> @@ -327,14 +327,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/10/28/sufactants/"> + <a href="/2025/11/07/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E4%B8%83%E6%97%A5/"> - 表面活性剂 + 二〇二五年十一月七日 </a> </div> - <span class="post-date">Oct 28, 2025</span> + <span class="post-date">Nov 7, 2025</span> </div> diff --git a/archives/page/3/index.html b/archives/page/3/index.html index 07ece35e..9b22d208 100644 --- a/archives/page/3/index.html +++ b/archives/page/3/index.html @@ -165,14 +165,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/10/24/Neutrophils-are-a-double-edged-sword/"> + <a href="/2025/10/31/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E6%9C%88%E4%B8%89%E5%8D%81%E4%B8%80%E6%97%A5/"> - 中性粒细胞连你一起干 + 二〇二五年十月三十一日 </a> </div> - <span class="post-date">Oct 24, 2025</span> + <span class="post-date">Oct 31, 2025</span> </div> @@ -183,14 +183,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/10/19/Gram-stain/"> + <a href="/2025/10/30/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E6%9C%88%E4%B8%89%E5%8D%81%E6%97%A5/"> - 什么是 G⁺ + 二〇二五年十月三十日 </a> </div> - <span class="post-date">Oct 19, 2025</span> + <span class="post-date">Oct 30, 2025</span> </div> @@ -201,14 +201,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/10/19/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E6%9C%88%E5%8D%81%E4%B9%9D%E6%97%A5/"> + <a href="/2025/10/29/%E5%BA%93%E6%AC%A3%E7%BB%BC%E5%90%88%E5%BE%81/"> - 二〇二五年十月十九日 + 库欣综合征 </a> </div> - <span class="post-date">Oct 19, 2025</span> + <span class="post-date">Oct 29, 2025</span> </div> @@ -219,14 +219,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/10/19/%E6%9E%81%E7%AE%80%E4%B8%BB%E4%B9%89%E7%94%9F%E6%B4%BB%E7%9A%84%E6%9C%AC%E8%B4%A8/"> + <a href="/2025/10/28/sufactants/"> - 极简主义生活的本质 + 表面活性剂 </a> </div> - <span class="post-date">Oct 19, 2025</span> + <span class="post-date">Oct 28, 2025</span> </div> @@ -237,14 +237,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/09/24/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E4%B9%9D%E6%9C%88%E4%BA%8C%E5%8D%81%E5%9B%9B%E6%97%A5/"> + <a href="/2025/10/24/Neutrophils-are-a-double-edged-sword/"> - 二〇二五年九月二十四日 + 中性粒细胞连你一起干 </a> </div> - <span class="post-date">Sep 24, 2025</span> + <span class="post-date">Oct 24, 2025</span> </div> @@ -255,14 +255,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/09/09/database-fk-design-in-clinical-medicine/"> + <a href="/2025/10/19/Gram-stain/"> - 在临床医疗领域中的数据库外键设计取舍 + 什么是 G⁺ </a> </div> - <span class="post-date">Sep 9, 2025</span> + <span class="post-date">Oct 19, 2025</span> </div> @@ -273,14 +273,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/08/13/nestjs-enableImplicitConversion-and-transform/"> + <a href="/2025/10/19/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E6%9C%88%E5%8D%81%E4%B9%9D%E6%97%A5/"> - NestJS 中 enableImplicitConversion 与 @Transform 的冲突 + 二〇二五年十月十九日 </a> </div> - <span class="post-date">Aug 13, 2025</span> + <span class="post-date">Oct 19, 2025</span> </div> @@ -291,14 +291,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/07/31/svelte-lazyquery/"> + <a href="/2025/10/19/%E6%9E%81%E7%AE%80%E4%B8%BB%E4%B9%89%E7%94%9F%E6%B4%BB%E7%9A%84%E6%9C%AC%E8%B4%A8/"> - 使用 Runed intersection observer 与 tanstack query 实现通用的惰性加载组件 + 极简主义生活的本质 </a> </div> - <span class="post-date">Jul 31, 2025</span> + <span class="post-date">Oct 19, 2025</span> </div> @@ -309,14 +309,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/07/29/nestjs-nested-object-dto/"> + <a href="/2025/09/24/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E4%B9%9D%E6%9C%88%E4%BA%8C%E5%8D%81%E5%9B%9B%E6%97%A5/"> - NestJS 嵌套查询参数解析错误分析与解决方案 + 二〇二五年九月二十四日 </a> </div> - <span class="post-date">Jul 29, 2025</span> + <span class="post-date">Sep 24, 2025</span> </div> @@ -327,14 +327,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/07/11/fuck-hcho/"> + <a href="/2025/09/09/database-fk-design-in-clinical-medicine/"> - 由甲醛开始的碎碎念 + 在临床医疗领域中的数据库外键设计取舍 </a> </div> - <span class="post-date">Jul 11, 2025</span> + <span class="post-date">Sep 9, 2025</span> </div> diff --git a/archives/page/4/index.html b/archives/page/4/index.html index 083e3e58..f3617d0a 100644 --- a/archives/page/4/index.html +++ b/archives/page/4/index.html @@ -165,14 +165,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/07/11/rep-date/"> + <a href="/2025/08/13/nestjs-enableImplicitConversion-and-transform/"> - 除权除息日,股价调整与分红 + NestJS 中 enableImplicitConversion 与 @Transform 的冲突 </a> </div> - <span class="post-date">Jul 11, 2025</span> + <span class="post-date">Aug 13, 2025</span> </div> @@ -183,14 +183,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/07/08/dadgad/"> + <a href="/2025/07/31/svelte-lazyquery/"> - DADGAD 定弦 + 使用 Runed intersection observer 与 tanstack query 实现通用的惰性加载组件 </a> </div> - <span class="post-date">Jul 8, 2025</span> + <span class="post-date">Jul 31, 2025</span> </div> @@ -201,14 +201,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/06/30/ibs/"> + <a href="/2025/07/29/nestjs-nested-object-dto/"> - 肠易激综合征 (IBS) 的病理学与药物治疗 + NestJS 嵌套查询参数解析错误分析与解决方案 </a> </div> - <span class="post-date">Jun 30, 2025</span> + <span class="post-date">Jul 29, 2025</span> </div> @@ -219,14 +219,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/06/29/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%85%AD%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B9%9D%E6%97%A5/"> + <a href="/2025/07/11/fuck-hcho/"> - 二〇二五年六月二十九日 + 由甲醛开始的碎碎念 </a> </div> - <span class="post-date">Jun 29, 2025</span> + <span class="post-date">Jul 11, 2025</span> </div> @@ -237,14 +237,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/06/10/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%85%AD%E6%9C%88%E5%8D%81%E6%97%A5/"> + <a href="/2025/07/11/rep-date/"> - 二〇二五年六月十日 + 除权除息日,股价调整与分红 </a> </div> - <span class="post-date">Jun 10, 2025</span> + <span class="post-date">Jul 11, 2025</span> </div> @@ -255,14 +255,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/05/27/vertical-slicing-practice/"> + <a href="/2025/07/08/dadgad/"> - Vertical slicing 在开发中的实践探索 + DADGAD 定弦 </a> </div> - <span class="post-date">May 27, 2025</span> + <span class="post-date">Jul 8, 2025</span> </div> @@ -273,14 +273,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/05/12/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E4%BA%94%E6%9C%88%E5%8D%81%E4%BA%8C%E6%97%A5/"> + <a href="/2025/06/30/ibs/"> - 二〇二五年五月十二日 + 肠易激综合征 (IBS) 的病理学与药物治疗 </a> </div> - <span class="post-date">May 12, 2025</span> + <span class="post-date">Jun 30, 2025</span> </div> @@ -291,14 +291,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/05/08/Multiplayer-Collaborative-Systems-tips/"> + <a href="/2025/06/29/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%85%AD%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B9%9D%E6%97%A5/"> - 多人协作系统中的实现策略 (CRDT,锁等实现方案) + 二〇二五年六月二十九日 </a> </div> - <span class="post-date">May 8, 2025</span> + <span class="post-date">Jun 29, 2025</span> </div> @@ -309,14 +309,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/05/07/nestjs-bullmq-mail-business/"> + <a href="/2025/06/10/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%85%AD%E6%9C%88%E5%8D%81%E6%97%A5/"> - NestJS bullmq 邮件发送业务中的小 tips + 二〇二五年六月十日 </a> </div> - <span class="post-date">May 7, 2025</span> + <span class="post-date">Jun 10, 2025</span> </div> @@ -327,14 +327,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/04/20/linux-amd-screen-boom/"> + <a href="/2025/05/27/vertical-slicing-practice/"> - Linux 下 AMD 显卡屏幕画面闪烁问题修复方案 + Vertical slicing 在开发中的实践探索 </a> </div> - <span class="post-date">Apr 20, 2025</span> + <span class="post-date">May 27, 2025</span> </div> diff --git a/archives/page/5/index.html b/archives/page/5/index.html index e7a3f751..b1826e0e 100644 --- a/archives/page/5/index.html +++ b/archives/page/5/index.html @@ -165,14 +165,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/04/13/uuidv7-rdbms/"> + <a href="/2025/05/12/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E4%BA%94%E6%9C%88%E5%8D%81%E4%BA%8C%E6%97%A5/"> - UUID v7 是如何加快 RDBMS 索引速度的 + 二〇二五年五月十二日 </a> </div> - <span class="post-date">Apr 13, 2025</span> + <span class="post-date">May 12, 2025</span> </div> @@ -183,14 +183,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/04/03/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E4%BA%94%E6%9C%88%E4%B8%89%E6%97%A5/"> + <a href="/2025/05/08/Multiplayer-Collaborative-Systems-tips/"> - 二〇二五年四月三日 + 多人协作系统中的实现策略 (CRDT,锁等实现方案) </a> </div> - <span class="post-date">Apr 3, 2025</span> + <span class="post-date">May 8, 2025</span> </div> @@ -201,14 +201,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/04/02/N-1-selects-problem-%E4%B8%8E-Prisma-ORM/"> + <a href="/2025/05/07/nestjs-bullmq-mail-business/"> - N+1 selects problem 与 Prisma ORM + NestJS bullmq 邮件发送业务中的小 tips </a> </div> - <span class="post-date">Apr 2, 2025</span> + <span class="post-date">May 7, 2025</span> </div> @@ -219,14 +219,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/03/31/%E5%9C%A8F-%E4%B8%AD%E5%A4%84%E7%90%86%E5%A4%8D%E6%9D%82%E4%BE%9D%E8%B5%96%E6%B3%A8%E5%85%A5%E7%9A%84%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/"> + <a href="/2025/04/20/linux-amd-screen-boom/"> - 在F#中处理复杂依赖注入的实践指南 + Linux 下 AMD 显卡屏幕画面闪烁问题修复方案 </a> </div> - <span class="post-date">Mar 31, 2025</span> + <span class="post-date">Apr 20, 2025</span> </div> @@ -237,14 +237,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/03/30/F-%E9%87%8D%E8%BD%BD%E8%A7%A3%E6%9E%90%E9%97%AE%E9%A2%98/"> + <a href="/2025/04/13/uuidv7-rdbms/"> - F# 重载解析问题 + UUID v7 是如何加快 RDBMS 索引速度的 </a> </div> - <span class="post-date">Mar 30, 2025</span> + <span class="post-date">Apr 13, 2025</span> </div> @@ -255,14 +255,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/03/30/libdecor-gtk-WARNING-Failed-to-initialize-GTK/"> + <a href="/2025/04/03/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E4%BA%94%E6%9C%88%E4%B8%89%E6%97%A5/"> - libdecor-gtk-WARNING Failed to initialize GTK in VSCode on Wayland + 二〇二五年四月三日 </a> </div> - <span class="post-date">Mar 30, 2025</span> + <span class="post-date">Apr 3, 2025</span> </div> @@ -273,14 +273,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/03/25/Scala-3-Capture-Checking/"> + <a href="/2025/04/02/N-1-selects-problem-%E4%B8%8E-Prisma-ORM/"> - Scala 3 (Capture Checking) + N+1 selects problem 与 Prisma ORM </a> </div> - <span class="post-date">Mar 25, 2025</span> + <span class="post-date">Apr 2, 2025</span> </div> @@ -291,14 +291,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/03/20/TDD-%E5%92%8C-DDD-%E7%9A%84%E4%B8%80%E4%BA%9B%E5%B0%8F%E6%83%B3%E6%B3%95/"> + <a href="/2025/03/31/%E5%9C%A8F-%E4%B8%AD%E5%A4%84%E7%90%86%E5%A4%8D%E6%9D%82%E4%BE%9D%E8%B5%96%E6%B3%A8%E5%85%A5%E7%9A%84%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/"> - TDD 和 DDD 的一些小想法 + 在F#中处理复杂依赖注入的实践指南 </a> </div> - <span class="post-date">Mar 20, 2025</span> + <span class="post-date">Mar 31, 2025</span> </div> @@ -309,14 +309,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/03/20/%E8%82%BA%E5%8A%9F%E8%83%BD%E6%A3%80%E6%9F%A5%E6%95%B0%E5%80%BC/"> + <a href="/2025/03/30/F-%E9%87%8D%E8%BD%BD%E8%A7%A3%E6%9E%90%E9%97%AE%E9%A2%98/"> - 肺功能检查数值 + F# 重载解析问题 </a> </div> - <span class="post-date">Mar 20, 2025</span> + <span class="post-date">Mar 30, 2025</span> </div> @@ -327,14 +327,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/03/19/%E9%A2%86%E5%9F%9F%E9%A9%B1%E5%8A%A8%E8%AE%BE%E8%AE%A1%E4%B8%AD%E8%81%9A%E5%90%88%E6%A0%B9%E6%8C%81%E4%B9%85%E5%8C%96%E5%92%8C%E4%BA%8B%E4%BB%B6%E5%8F%91%E5%B8%83%E5%8F%AF%E8%83%BD%E5%AF%BC%E8%87%B4%E6%95%B0%E6%8D%AE%E4%B8%8D%E4%B8%80%E8%87%B4%E9%97%AE%E9%A2%98/"> + <a href="/2025/03/30/libdecor-gtk-WARNING-Failed-to-initialize-GTK/"> - 领域驱动设计中聚合根持久化和事件发布可能导致数据不一致问题 + libdecor-gtk-WARNING Failed to initialize GTK in VSCode on Wayland </a> </div> - <span class="post-date">Mar 19, 2025</span> + <span class="post-date">Mar 30, 2025</span> </div> diff --git a/archives/page/6/index.html b/archives/page/6/index.html index afdb319f..b6713302 100644 --- a/archives/page/6/index.html +++ b/archives/page/6/index.html @@ -165,14 +165,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/03/17/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E4%B8%89%E6%9C%88%E5%8D%81%E4%B8%83%E6%97%A5/"> + <a href="/2025/03/25/Scala-3-Capture-Checking/"> - 二〇二五年三月十七日 + Scala 3 (Capture Checking) </a> </div> - <span class="post-date">Mar 17, 2025</span> + <span class="post-date">Mar 25, 2025</span> </div> @@ -183,14 +183,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/03/14/DDD-%E4%B8%AD%E7%9A%84-Ubiquitous-Languages/"> + <a href="/2025/03/20/TDD-%E5%92%8C-DDD-%E7%9A%84%E4%B8%80%E4%BA%9B%E5%B0%8F%E6%83%B3%E6%B3%95/"> - DDD 中的 Ubiquitous Language + TDD 和 DDD 的一些小想法 </a> </div> - <span class="post-date">Mar 14, 2025</span> + <span class="post-date">Mar 20, 2025</span> </div> @@ -201,14 +201,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/03/13/%E9%A2%86%E5%9F%9F%E9%A9%B1%E5%8A%A8%E8%AE%BE%E8%AE%A1%E4%B8%AD%E7%9A%84%E2%80%9C%E8%81%9A%E5%90%88%E6%A0%B9%E2%80%9D/"> + <a href="/2025/03/20/%E8%82%BA%E5%8A%9F%E8%83%BD%E6%A3%80%E6%9F%A5%E6%95%B0%E5%80%BC/"> - 领域驱动设计中的“聚合根” + 肺功能检查数值 </a> </div> - <span class="post-date">Mar 13, 2025</span> + <span class="post-date">Mar 20, 2025</span> </div> @@ -219,14 +219,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/02/24/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E5%9B%9B%E6%97%A5/"> + <a href="/2025/03/19/%E9%A2%86%E5%9F%9F%E9%A9%B1%E5%8A%A8%E8%AE%BE%E8%AE%A1%E4%B8%AD%E8%81%9A%E5%90%88%E6%A0%B9%E6%8C%81%E4%B9%85%E5%8C%96%E5%92%8C%E4%BA%8B%E4%BB%B6%E5%8F%91%E5%B8%83%E5%8F%AF%E8%83%BD%E5%AF%BC%E8%87%B4%E6%95%B0%E6%8D%AE%E4%B8%8D%E4%B8%80%E8%87%B4%E9%97%AE%E9%A2%98/"> - 二〇二五年二月二十四日 + 领域驱动设计中聚合根持久化和事件发布可能导致数据不一致问题 </a> </div> - <span class="post-date">Feb 24, 2025</span> + <span class="post-date">Mar 19, 2025</span> </div> @@ -237,14 +237,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/02/19/Repository-pattern-in-Typescript/"> + <a href="/2025/03/17/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E4%B8%89%E6%9C%88%E5%8D%81%E4%B8%83%E6%97%A5/"> - Repository pattern in Typescript + 二〇二五年三月十七日 </a> </div> - <span class="post-date">Feb 19, 2025</span> + <span class="post-date">Mar 17, 2025</span> </div> @@ -255,14 +255,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/02/18/Prisma-%E5%85%B3%E7%B3%BB%E5%9E%8B%E6%95%B0%E6%8D%AE%E5%BA%93%E7%9A%84-Self-relations/"> + <a href="/2025/03/14/DDD-%E4%B8%AD%E7%9A%84-Ubiquitous-Languages/"> - Prisma 关系型数据库的 Self-relations + DDD 中的 Ubiquitous Language </a> </div> - <span class="post-date">Feb 18, 2025</span> + <span class="post-date">Mar 14, 2025</span> </div> @@ -273,14 +273,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/02/11/%E4%BB%8E%E4%BA%8B%E4%BB%B6%E9%A3%8E%E6%9A%B4%E7%9C%8B%E9%A2%86%E5%9F%9F%E9%A9%B1%E5%8A%A8%E8%AE%BE%E8%AE%A1/"> + <a href="/2025/03/13/%E9%A2%86%E5%9F%9F%E9%A9%B1%E5%8A%A8%E8%AE%BE%E8%AE%A1%E4%B8%AD%E7%9A%84%E2%80%9C%E8%81%9A%E5%90%88%E6%A0%B9%E2%80%9D/"> - 从事件风暴看领域驱动设计 + 领域驱动设计中的“聚合根” </a> </div> - <span class="post-date">Feb 11, 2025</span> + <span class="post-date">Mar 13, 2025</span> </div> @@ -291,14 +291,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/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/"> + <a href="/2025/02/24/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E5%9B%9B%E6%97%A5/"> - 实时搜索中的防抖函数 + 二〇二五年二月二十四日 </a> </div> - <span class="post-date">Feb 10, 2025</span> + <span class="post-date">Feb 24, 2025</span> </div> @@ -309,14 +309,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/01/19/%E8%BA%AB%E4%BD%93%E5%BE%80%E5%89%8D%E5%80%BE%EF%BC%8C%E7%81%B5%E9%AD%82%E5%90%91%E5%90%8E%E6%91%87/"> + <a href="/2025/02/19/Repository-pattern-in-Typescript/"> - 身体往前倾,灵魂向后摇 + Repository pattern in Typescript </a> </div> - <span class="post-date">Jan 19, 2025</span> + <span class="post-date">Feb 19, 2025</span> </div> @@ -324,19 +324,17 @@ - <div class="year-title">2024</div> - <div class="post-list-item"> <div class="post-title"> - <a href="/2024/12/18/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E5%8D%81%E5%85%AB%E6%97%A5/"> + <a href="/2025/02/18/Prisma-%E5%85%B3%E7%B3%BB%E5%9E%8B%E6%95%B0%E6%8D%AE%E5%BA%93%E7%9A%84-Self-relations/"> - 二〇二四年十二月十八日 + Prisma 关系型数据库的 Self-relations </a> </div> - <span class="post-date">Dec 18, 2024</span> + <span class="post-date">Feb 18, 2025</span> </div> diff --git a/archives/page/7/index.html b/archives/page/7/index.html index 2d5d8969..83f1b02d 100644 --- a/archives/page/7/index.html +++ b/archives/page/7/index.html @@ -160,19 +160,19 @@ - <div class="year-title">2024</div> + <div class="year-title">2025</div> <div class="post-list-item"> <div class="post-title"> - <a href="/2024/12/15/OCaml-News-2024-7/"> + <a href="/2025/02/11/%E4%BB%8E%E4%BA%8B%E4%BB%B6%E9%A3%8E%E6%9A%B4%E7%9C%8B%E9%A2%86%E5%9F%9F%E9%A9%B1%E5%8A%A8%E8%AE%BE%E8%AE%A1/"> - OCaml News 2024-7 + 从事件风暴看领域驱动设计 </a> </div> - <span class="post-date">Dec 15, 2024</span> + <span class="post-date">Feb 11, 2025</span> </div> @@ -183,14 +183,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/11/26/%E5%A6%82%E4%BD%95%E7%AE%A1%E7%90%86%E7%94%A8%E6%88%B7%E7%95%8C%E9%9D%A2%E4%B8%AD%E7%9A%84%E5%8D%B1%E9%99%A9%E6%93%8D%E4%BD%9C/"> + <a href="/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/"> - 如何管理用户界面中的危险操作 + 实时搜索中的防抖函数 </a> </div> - <span class="post-date">Nov 26, 2024</span> + <span class="post-date">Feb 10, 2025</span> </div> @@ -201,14 +201,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/11/17/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E5%8D%81%E4%B8%83%E6%97%A5/"> + <a href="/2025/01/19/%E8%BA%AB%E4%BD%93%E5%BE%80%E5%89%8D%E5%80%BE%EF%BC%8C%E7%81%B5%E9%AD%82%E5%90%91%E5%90%8E%E6%91%87/"> - 二〇二四年十一月十七日 + 身体往前倾,灵魂向后摇 </a> </div> - <span class="post-date">Nov 17, 2024</span> + <span class="post-date">Jan 19, 2025</span> </div> @@ -216,17 +216,19 @@ + <div class="year-title">2024</div> + <div class="post-list-item"> <div class="post-title"> - <a href="/2024/11/15/%E8%A5%BF%E6%9F%9A%E5%AF%B9%E8%8D%AF%E7%89%A9%E7%9A%84%E5%BD%B1%E5%93%8D/"> + <a href="/2024/12/18/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E5%8D%81%E5%85%AB%E6%97%A5/"> - 西柚对药物的影响 + 二〇二四年十二月十八日 </a> </div> - <span class="post-date">Nov 15, 2024</span> + <span class="post-date">Dec 18, 2024</span> </div> @@ -237,14 +239,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/10/18/10-Tips-for-Productive-FSharp-Scripting/"> + <a href="/2024/12/15/OCaml-News-2024-7/"> - 10 Tips for Productive FSharp Scripting + OCaml News 2024-7 </a> </div> - <span class="post-date">Oct 18, 2024</span> + <span class="post-date">Dec 15, 2024</span> </div> @@ -255,14 +257,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/10/18/Building-custom-fibers-library-in-FSharp/"> + <a href="/2024/11/26/%E5%A6%82%E4%BD%95%E7%AE%A1%E7%90%86%E7%94%A8%E6%88%B7%E7%95%8C%E9%9D%A2%E4%B8%AD%E7%9A%84%E5%8D%B1%E9%99%A9%E6%93%8D%E4%BD%9C/"> - Building custom fibers library in FSharp + 如何管理用户界面中的危险操作 </a> </div> - <span class="post-date">Oct 18, 2024</span> + <span class="post-date">Nov 26, 2024</span> </div> @@ -273,14 +275,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/10/18/Dealing-with-complex-dependency-injection-in-FSharp/"> + <a href="/2024/11/17/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E5%8D%81%E4%B8%83%E6%97%A5/"> - Dealing with complex dependency injection in FSharp + 二〇二四年十一月十七日 </a> </div> - <span class="post-date">Oct 18, 2024</span> + <span class="post-date">Nov 17, 2024</span> </div> @@ -291,14 +293,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/10/06/Obsidian-Vault-%E7%9A%84-obsidian-%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E5%90%84%E6%96%87%E4%BB%B6%E4%BD%9C%E7%94%A8/"> + <a href="/2024/11/15/%E8%A5%BF%E6%9F%9A%E5%AF%B9%E8%8D%AF%E7%89%A9%E7%9A%84%E5%BD%B1%E5%93%8D/"> - Obsidian Vault 的 .obsidian 目录中的各文件作用 + 西柚对药物的影响 </a> </div> - <span class="post-date">Oct 6, 2024</span> + <span class="post-date">Nov 15, 2024</span> </div> @@ -309,14 +311,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/09/27/Turborepo-%E7%AE%80%E8%BF%B0/"> + <a href="/2024/10/18/10-Tips-for-Productive-FSharp-Scripting/"> - Turborepo 简述 + 10 Tips for Productive FSharp Scripting </a> </div> - <span class="post-date">Sep 27, 2024</span> + <span class="post-date">Oct 18, 2024</span> </div> @@ -327,14 +329,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/09/15/%E8%82%A9%E5%91%A8%E7%82%8E%E5%92%8C%E8%82%A9%E8%A2%96%E6%8D%9F%E4%BC%A4%E7%9A%84%E5%8C%BA%E5%88%AB/"> + <a href="/2024/10/18/Building-custom-fibers-library-in-FSharp/"> - 肩周炎和肩袖损伤的区别 + Building custom fibers library in FSharp </a> </div> - <span class="post-date">Sep 15, 2024</span> + <span class="post-date">Oct 18, 2024</span> </div> diff --git a/archives/page/8/index.html b/archives/page/8/index.html index 9eed251a..703fd6b3 100644 --- a/archives/page/8/index.html +++ b/archives/page/8/index.html @@ -165,14 +165,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/09/15/Advanced-C-binding-using-ocaml-ctypes-and-dune/"> + <a href="/2024/10/18/Dealing-with-complex-dependency-injection-in-FSharp/"> - Advanced C binding using ocaml-ctypes and dune + Dealing with complex dependency injection in FSharp </a> </div> - <span class="post-date">Sep 15, 2024</span> + <span class="post-date">Oct 18, 2024</span> </div> @@ -183,14 +183,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/09/12/Functional-Reactive-Programming-in-F/"> + <a href="/2024/10/06/Obsidian-Vault-%E7%9A%84-obsidian-%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E5%90%84%E6%96%87%E4%BB%B6%E4%BD%9C%E7%94%A8/"> - Functional Reactive Programming in F# + Obsidian Vault 的 .obsidian 目录中的各文件作用 </a> </div> - <span class="post-date">Sep 12, 2024</span> + <span class="post-date">Oct 6, 2024</span> </div> @@ -201,14 +201,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/09/12/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E4%B9%9D%E6%9C%88%E5%8D%81%E4%BA%8C%E6%97%A5/"> + <a href="/2024/09/27/Turborepo-%E7%AE%80%E8%BF%B0/"> - 二〇二四年九月十二日 + Turborepo 简述 </a> </div> - <span class="post-date">Sep 12, 2024</span> + <span class="post-date">Sep 27, 2024</span> </div> @@ -219,14 +219,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/09/08/%E4%B8%AD%E8%80%81%E5%B9%B4%E4%BA%BA%E6%B2%89%E8%BF%B7%E6%89%8B%E6%9C%BA%E7%9A%84%E9%97%AE%E9%A2%98/"> + <a href="/2024/09/15/%E8%82%A9%E5%91%A8%E7%82%8E%E5%92%8C%E8%82%A9%E8%A2%96%E6%8D%9F%E4%BC%A4%E7%9A%84%E5%8C%BA%E5%88%AB/"> - 中老年人沉迷手机的问题 + 肩周炎和肩袖损伤的区别 </a> </div> - <span class="post-date">Sep 8, 2024</span> + <span class="post-date">Sep 15, 2024</span> </div> @@ -237,14 +237,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/09/07/%E7%BB%99%E5%AD%A9%E5%AD%90%E4%BB%AC%E7%9A%84%E8%AF%9D/"> + <a href="/2024/09/15/Advanced-C-binding-using-ocaml-ctypes-and-dune/"> - 什么玩意儿都是 + Advanced C binding using ocaml-ctypes and dune </a> </div> - <span class="post-date">Sep 7, 2024</span> + <span class="post-date">Sep 15, 2024</span> </div> @@ -255,14 +255,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/09/01/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E4%B9%9D%E6%9C%88%E4%B8%80%E6%97%A5/"> + <a href="/2024/09/12/Functional-Reactive-Programming-in-F/"> - 二〇二四年九月一日 + Functional Reactive Programming in F# </a> </div> - <span class="post-date">Sep 1, 2024</span> + <span class="post-date">Sep 12, 2024</span> </div> @@ -273,14 +273,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/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/"> + <a href="/2024/09/12/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E4%B9%9D%E6%9C%88%E5%8D%81%E4%BA%8C%E6%97%A5/"> - 藿香正气水和藿香正气口服液的区别 + 二〇二四年九月十二日 </a> </div> - <span class="post-date">Sep 1, 2024</span> + <span class="post-date">Sep 12, 2024</span> </div> @@ -291,14 +291,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/08/12/%E7%9B%B4%E7%B3%BB%E8%A1%80%E4%BA%B2%E4%B9%8B%E9%97%B4%E4%B8%8D%E8%83%BD%E7%9B%B4%E6%8E%A5%E8%BE%93%E8%A1%80/"> + <a href="/2024/09/08/%E4%B8%AD%E8%80%81%E5%B9%B4%E4%BA%BA%E6%B2%89%E8%BF%B7%E6%89%8B%E6%9C%BA%E7%9A%84%E9%97%AE%E9%A2%98/"> - 直系血亲之间不能直接输血 + 中老年人沉迷手机的问题 </a> </div> - <span class="post-date">Aug 12, 2024</span> + <span class="post-date">Sep 8, 2024</span> </div> @@ -309,14 +309,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/08/02/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E5%85%AB%E6%9C%88%E4%B8%80%E6%97%A5/"> + <a href="/2024/09/07/%E7%BB%99%E5%AD%A9%E5%AD%90%E4%BB%AC%E7%9A%84%E8%AF%9D/"> - 二〇二四年八月一日 + 什么玩意儿都是 </a> </div> - <span class="post-date">Aug 2, 2024</span> + <span class="post-date">Sep 7, 2024</span> </div> @@ -327,14 +327,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/07/23/OCaml-News-2024-6/"> + <a href="/2024/09/01/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E4%B9%9D%E6%9C%88%E4%B8%80%E6%97%A5/"> - OCaml News 2024-6 + 二〇二四年九月一日 </a> </div> - <span class="post-date">Jul 23, 2024</span> + <span class="post-date">Sep 1, 2024</span> </div> diff --git a/archives/page/9/index.html b/archives/page/9/index.html index d08571c8..d37dae99 100644 --- a/archives/page/9/index.html +++ b/archives/page/9/index.html @@ -165,14 +165,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/07/09/%E7%A5%9E%E7%BB%8F%E7%B3%BB%E7%BB%9F%E9%87%8D%E7%82%B9/"> + <a href="/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/"> - 内护神经系统重点考点 + 藿香正气水和藿香正气口服液的区别 </a> </div> - <span class="post-date">Jul 9, 2024</span> + <span class="post-date">Sep 1, 2024</span> </div> @@ -183,14 +183,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/07/01/OCaml-News-2024-4/"> + <a href="/2024/08/12/%E7%9B%B4%E7%B3%BB%E8%A1%80%E4%BA%B2%E4%B9%8B%E9%97%B4%E4%B8%8D%E8%83%BD%E7%9B%B4%E6%8E%A5%E8%BE%93%E8%A1%80/"> - OCaml News 2024-4 + 直系血亲之间不能直接输血 </a> </div> - <span class="post-date">Jul 1, 2024</span> + <span class="post-date">Aug 12, 2024</span> </div> @@ -201,14 +201,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/06/27/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E5%85%AD%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%83%E6%97%A5/"> + <a href="/2024/08/02/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E5%85%AB%E6%9C%88%E4%B8%80%E6%97%A5/"> - 二〇二四年六月二十七日 + 二〇二四年八月一日 </a> </div> - <span class="post-date">Jun 27, 2024</span> + <span class="post-date">Aug 2, 2024</span> </div> @@ -219,14 +219,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/06/27/OCaml-News-2024-5/"> + <a href="/2024/07/23/OCaml-News-2024-6/"> - OCaml News 2024-5 + OCaml News 2024-6 </a> </div> - <span class="post-date">Jun 27, 2024</span> + <span class="post-date">Jul 23, 2024</span> </div> @@ -237,14 +237,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/06/06/NET-AOT-%E4%B8%8B%E7%9A%84-F-%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%8F%82%E6%95%B0%E8%A7%A3%E6%9E%90%E5%BA%93%E9%80%89%E6%8B%A9/"> + <a href="/2024/07/09/%E7%A5%9E%E7%BB%8F%E7%B3%BB%E7%BB%9F%E9%87%8D%E7%82%B9/"> - .NET AOT 下的 F# 命令行参数解析库选择 + 内护神经系统重点考点 </a> </div> - <span class="post-date">Jun 6, 2024</span> + <span class="post-date">Jul 9, 2024</span> </div> @@ -255,14 +255,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/05/20/Rescript-genType-import-%E9%97%AE%E9%A2%98/"> + <a href="/2024/07/01/OCaml-News-2024-4/"> - Rescript @genType import 问题 + OCaml News 2024-4 </a> </div> - <span class="post-date">May 20, 2024</span> + <span class="post-date">Jul 1, 2024</span> </div> @@ -273,14 +273,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/05/16/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E4%BA%94%E6%9C%88%E5%8D%81%E5%85%AD%E6%97%A5/"> + <a href="/2024/06/27/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E5%85%AD%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%83%E6%97%A5/"> - 二〇二四年五月十六日 + 二〇二四年六月二十七日 </a> </div> - <span class="post-date">May 16, 2024</span> + <span class="post-date">Jun 27, 2024</span> </div> @@ -291,14 +291,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/05/13/%E7%BB%99%E5%B0%B8%E4%BD%93%E4%B8%8A-ECMO-%E5%B9%B6%E7%BB%B4%E6%8C%81%E5%BF%83%E8%B7%B3/"> + <a href="/2024/06/27/OCaml-News-2024-5/"> - 给尸体上 ECMO 并维持心跳 + OCaml News 2024-5 </a> </div> - <span class="post-date">May 13, 2024</span> + <span class="post-date">Jun 27, 2024</span> </div> @@ -309,14 +309,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/05/07/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E4%BA%94%E6%9C%88%E4%B8%83%E6%97%A5/"> + <a href="/2024/06/06/NET-AOT-%E4%B8%8B%E7%9A%84-F-%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%8F%82%E6%95%B0%E8%A7%A3%E6%9E%90%E5%BA%93%E9%80%89%E6%8B%A9/"> - 二〇二四年五月七日 + .NET AOT 下的 F# 命令行参数解析库选择 </a> </div> - <span class="post-date">May 7, 2024</span> + <span class="post-date">Jun 6, 2024</span> </div> @@ -327,14 +327,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/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/"> + <a href="/2024/05/20/Rescript-genType-import-%E9%97%AE%E9%A2%98/"> - 二〇二四年四月八日 + Rescript @genType import 问题 </a> </div> - <span class="post-date">Apr 8, 2024</span> + <span class="post-date">May 20, 2024</span> </div> @@ -62,119 +62,7 @@ - <meta name="generator" content="Hexo 6.3.0"><style>mjx-container[jax="SVG"] { - direction: ltr; -} - -mjx-container[jax="SVG"] > svg { - overflow: visible; -} - -mjx-container[jax="SVG"][display="true"] { - display: block; - text-align: center; - margin: 1em 0; -} - -mjx-container[jax="SVG"][justify="left"] { - text-align: left; -} - -mjx-container[jax="SVG"][justify="right"] { - text-align: right; -} - -g[data-mml-node="merror"] > g { - fill: red; - stroke: red; -} - -g[data-mml-node="merror"] > rect[data-background] { - fill: yellow; - stroke: none; -} - -g[data-mml-node="mtable"] > line[data-line] { - stroke-width: 70px; - fill: none; -} - -g[data-mml-node="mtable"] > rect[data-frame] { - stroke-width: 70px; - fill: none; -} - -g[data-mml-node="mtable"] > .mjx-dashed { - stroke-dasharray: 140; -} - -g[data-mml-node="mtable"] > .mjx-dotted { - stroke-linecap: round; - stroke-dasharray: 0,140; -} - -g[data-mml-node="mtable"] > svg { - overflow: visible; -} - -[jax="SVG"] mjx-tool { - display: inline-block; - position: relative; - width: 0; - height: 0; -} - -[jax="SVG"] mjx-tool > mjx-tip { - position: absolute; - top: 0; - left: 0; -} - -mjx-tool > mjx-tip { - display: inline-block; - padding: .2em; - border: 1px solid #888; - font-size: 70%; - background-color: #F8F8F8; - color: black; - box-shadow: 2px 2px 5px #AAAAAA; -} - -g[data-mml-node="maction"][data-toggle] { - cursor: pointer; -} - -mjx-status { - display: block; - position: fixed; - left: 1em; - bottom: 1em; - min-width: 25%; - padding: .2em .4em; - border: 1px solid #888; - font-size: 90%; - background-color: #F8F8F8; - color: black; -} - -foreignObject[data-mjx-xml] { - font-family: initial; - line-height: normal; - overflow: visible; -} - -.MathJax path { - stroke-width: 3; -} - -mjx-container[display="true"] { - overflow: auto hidden; -} - -mjx-container[display="true"] + br { - display: none; -} -</style></head> + <meta name="generator" content="Hexo 6.3.0"></head> <body> <div class="wrapper"> diff --git a/page/2/index.html b/page/2/index.html index aa7f9e69..ed8ae801 100644 --- a/page/2/index.html +++ b/page/2/index.html @@ -62,7 +62,119 @@ - <meta name="generator" content="Hexo 6.3.0"></head> + <meta name="generator" content="Hexo 6.3.0"><style>mjx-container[jax="SVG"] { + direction: ltr; +} + +mjx-container[jax="SVG"] > svg { + overflow: visible; +} + +mjx-container[jax="SVG"][display="true"] { + display: block; + text-align: center; + margin: 1em 0; +} + +mjx-container[jax="SVG"][justify="left"] { + text-align: left; +} + +mjx-container[jax="SVG"][justify="right"] { + text-align: right; +} + +g[data-mml-node="merror"] > g { + fill: red; + stroke: red; +} + +g[data-mml-node="merror"] > rect[data-background] { + fill: yellow; + stroke: none; +} + +g[data-mml-node="mtable"] > line[data-line] { + stroke-width: 70px; + fill: none; +} + +g[data-mml-node="mtable"] > rect[data-frame] { + stroke-width: 70px; + fill: none; +} + +g[data-mml-node="mtable"] > .mjx-dashed { + stroke-dasharray: 140; +} + +g[data-mml-node="mtable"] > .mjx-dotted { + stroke-linecap: round; + stroke-dasharray: 0,140; +} + +g[data-mml-node="mtable"] > svg { + overflow: visible; +} + +[jax="SVG"] mjx-tool { + display: inline-block; + position: relative; + width: 0; + height: 0; +} + +[jax="SVG"] mjx-tool > mjx-tip { + position: absolute; + top: 0; + left: 0; +} + +mjx-tool > mjx-tip { + display: inline-block; + padding: .2em; + border: 1px solid #888; + font-size: 70%; + background-color: #F8F8F8; + color: black; + box-shadow: 2px 2px 5px #AAAAAA; +} + +g[data-mml-node="maction"][data-toggle] { + cursor: pointer; +} + +mjx-status { + display: block; + position: fixed; + left: 1em; + bottom: 1em; + min-width: 25%; + padding: .2em .4em; + border: 1px solid #888; + font-size: 90%; + background-color: #F8F8F8; + color: black; +} + +foreignObject[data-mjx-xml] { + font-family: initial; + line-height: normal; + overflow: visible; +} + +.MathJax path { + stroke-width: 3; +} + +mjx-container[display="true"] { + overflow: auto hidden; +} + +mjx-container[display="true"] + br { + display: none; +} +</style></head> <body> <div class="wrapper"> @@ -1077,6 +1077,31 @@ await prisma.$transaction(async tx => { </tags> </entry> <entry> + <title>Nginx 前后端同域分流</title> + <url>/2026/03/16/Nginx-%E5%89%8D%E5%90%8E%E7%AB%AF%E5%90%8C%E5%9F%9F%E5%88%86%E6%B5%81/</url> + <content><![CDATA[<p>今天我想在服务器上的 docker nginx 中配置:同一主域下,前端走 <code>/</code>,后端 API 走 <code>/api/*</code>,认证框架 Better Auth 走 <code>/api/auth/*</code>。后端还有自己的 <code>/auth/*</code> 业务接口。</p> +<p>例如 xxx.yyy.zzz 是前端,xxx.yyy.zzz/api 是后端,后端基于 NestJS 用了 better-auth 会自动挂 /auth 路径。</p> +<p>Nginx 跑在 Docker 容器里,配置和证书从宿主机挂载进去:</p> +<ul> +<li><code>/opt/nginx/conf.d</code> → <code>/etc/nginx/conf.d</code></li> +<li><code>/opt/nginx/ssl</code> → <code>/etc/nginx/ssl</code></li> +<li><code>/opt/nginx/nginx.conf</code> → <code>/etc/nginx/nginx.conf</code></li> +</ul> +<p>容器通过 <code>extra_hosts: host.docker.internal:host-gateway</code> 访问宿主机服务,所以前后端进程可以继续跑在宿主机上(比如 PM2 管理),Nginx 容器只做反代。</p> +<p>遇到的第一个坑:<code>/api/auth/*</code> 和 <code>/api/*</code> 不能用同一个 rewrite 规则。</p> +<p>如果这么写:</p> +<figure class="highlight nginx"><table><tr><td class="code"><pre><span class="line"><span class="section">location</span> /api/ {</span><br><span class="line"> <span class="attribute">proxy_pass</span> http://host.docker.internal:<backend>/;</span><br><span class="line">}</span><br></pre></td></tr></table></figure> +<p>Nginx 会把 <code>/api</code> 前缀裁掉。于是 <code>/api/auth/sign-in/email</code> 变成了 <code>/auth/sign-in/email</code>,但 better-auth 挂在 <code>/api/auth/*</code>,直接 404。</p> +<p>正确的做法是分开处理。更麻烦的是业务身份接口 <code>/auth/me</code> 也存在,如果后端业务接口是 <code>/auth/me</code>,而认证框架是 <code>/api/auth/*</code>,那 <code>/api/auth/me</code> 应该转发给业务而不是认证框架。</p> +<p>正确顺序:</p> +<figure class="highlight nginx"><table><tr><td class="code"><pre><span class="line"><span class="section">location</span> = /api/auth/me {</span><br><span class="line"> <span class="comment"># 精确匹配,业务身份接口</span></span><br><span class="line"> <span class="attribute">rewrite</span><span class="regexp"> ^/api(.*)$</span> <span class="variable">$1</span> <span class="literal">break</span>;</span><br><span class="line"> <span class="attribute">proxy_pass</span> http://host.docker.internal:<backend>;</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="section">location</span><span class="regexp"> ^~</span> /api/auth/ {</span><br><span class="line"> <span class="comment"># 认证框架路由,保留前缀</span></span><br><span class="line"> <span class="attribute">proxy_pass</span> http://host.docker.internal:<auth-port>;</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="section">location</span><span class="regexp"> ^~</span> /api/ {</span><br><span class="line"> <span class="comment"># 其余 API,裁掉 /api</span></span><br><span class="line"> <span class="attribute">rewrite</span><span class="regexp"> ^/api(.*)$</span> <span class="variable">$1</span> <span class="literal">break</span>;</span><br><span class="line"> <span class="attribute">proxy_pass</span> http://host.docker.internal:<backend>;</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="section">location</span> / {</span><br><span class="line"> <span class="comment"># 前端</span></span><br><span class="line"> <span class="attribute">proxy_pass</span> http://host.docker.internal:<frontend>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure> +<p>这里的顺序很重要。Nginx 匹配规则是:精确匹配 <code>=</code> 优先,然后是前缀匹配 <code>^~</code>,然后是正则匹配,最后是普通前缀匹配。<code>^~</code> 表示一旦匹配成功就不再检查正则。</p> +]]></content> + <tags> + <tag>Technique</tag> + </tags> + </entry> + <entry> <title>OCaml Core.Int.pow 的实现</title> <url>/2023/10/21/OCaml-Core-Int-pow-%E7%9A%84%E5%AE%9E%E7%8E%B0/</url> <content><![CDATA[<p>Core内部直接引用的Base的实现, Base的实现在 <a href="https://github.com/janestreet/base/blob/494a0876168d24cda695cbb9a3d86ad8d1eb97d8/src/int_math.ml#L11-L18">src/int_math.ml</a> 中:</p> @@ -2200,28 +2225,6 @@ A relation table (also sometimes called a <em>JOIN</em>, <em>link</em> or <em>pi </tags> </entry> <entry> - <title>Rust NewType 模式</title> - <url>/2023/05/03/Rust-NewType-%E6%A8%A1%E5%BC%8F/</url> - <content><![CDATA[<p>New Type模式是一种软件设计模式,用于在已有类型的基础上创建一个新的类型。在Rust中,这通常是通过定义一个结构体,其中只包含一个单一成员。这个结构体(New Type)对外提供了一个新的、独立的类型,用于对原始类型增加额外的语义或限制。</p> -<h2 id="加强类型安全"><a class="header-anchor" href="#加强类型安全">¶</a>加强类型安全</h2> -<figure class="highlight rust"><table><tr><td class="code"><pre><span class="line"><span class="keyword">struct</span> <span class="title class_">Meters</span>(<span class="type">f64</span>);</span><br><span class="line"><span class="keyword">struct</span> <span class="title class_">Feet</span>(<span class="type">f64</span>);</span><br><span class="line"></span><br><span class="line"><span class="keyword">let</span> <span class="variable">length_in_meters</span> = <span class="title function_ invoke__">Meters</span>(<span class="number">100.0</span>);</span><br><span class="line"><span class="keyword">let</span> <span class="variable">length_in_feet</span> = <span class="title function_ invoke__">Feet</span>(<span class="number">328.084</span>);</span><br><span class="line"></span><br><span class="line"><span class="comment">// 编译器会防止以下代码执行,因为类型不匹配</span></span><br><span class="line"><span class="comment">// let wrong_length = Meters(length_in_feet); // 编译错误</span></span><br><span class="line"></span><br><span class="line"><span class="comment">// 正确的构造</span></span><br><span class="line"><span class="keyword">fn</span> <span class="title function_">add_lengths</span>(length1: Meters, length2: Meters) <span class="punctuation">-></span> Meters {</span><br><span class="line"> <span class="title function_ invoke__">Meters</span>(length1.<span class="number">0</span> + length2.<span class="number">0</span>)</span><br><span class="line">}</span><br></pre></td></tr></table></figure> -<p>这个例子使用 newtype 模式避免将原始类型f64用于不同的量度,从而增强了类型的安全性。</p> -<h2 id="实现特定-trait"><a class="header-anchor" href="#实现特定-trait">¶</a>实现特定 trait</h2> -<figure class="highlight rust"><table><tr><td class="code"><pre><span class="line"><span class="keyword">struct</span> <span class="title class_">Kilometers</span>(<span class="type">f64</span>);</span><br><span class="line"></span><br><span class="line"><span class="keyword">impl</span> <span class="title class_">Kilometers</span> {</span><br><span class="line"> <span class="keyword">fn</span> <span class="title function_">to_miles</span>(&<span class="keyword">self</span>) <span class="punctuation">-></span> <span class="type">f64</span> {</span><br><span class="line"> <span class="keyword">self</span>.<span class="number">0</span> * <span class="number">0.621371</span></span><br><span class="line"> }</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="keyword">let</span> <span class="variable">distance</span> = <span class="title function_ invoke__">Kilometers</span>(<span class="number">10.0</span>);</span><br><span class="line"><span class="built_in">println!</span>(<span class="string">"The distance in miles is {}"</span>, distance.<span class="title function_ invoke__">to_miles</span>());</span><br></pre></td></tr></table></figure> -<p>这里,Kilometers有一个方法to_miles,该方法是不会影响其他f64数据的。如果我们有另一个表示温度的f64类型,就不会意外调用到与距离相关的方法。</p> -<p>New Type模式同样适用于对<code>Box<dyn SomeTrait></code>类型的包装,这可以在需要动态分派(动态调用实现了某个接口的不同类型的对象的方法)的时候提供便利。通过创建一个New Type来包装这样的<code>Box<dyn SomeTrait></code>类型,可以提供自定义的方法或实现更多的trait,同时也可以让API更加清晰和易于使用。</p> -<h2 id="零成本抽象"><a class="header-anchor" href="#零成本抽象">¶</a>零成本抽象</h2> -<p>在Rust中,New Type模式不仅是类型安全的,还是一种零成本抽象。这是因为Rust编译器在编译时期会进行足够的优化,以确保New Type的使用没有运行时开销。 Rust的零成本抽象原则确保了抽象不会引入额外的运行时成本。例如,当你使用Meters这样的New Type时,Rust确保:</p> -<ol> -<li>无额外内存开销:Meters只包含一个f64,在内存中的表现和单独的f64是一样的。</li> -<li>无额外运行时开销:使用Meters时,性能和直接使用f64完全相同。编译器会移除任何关于New Type的包装和解包的代码。</li> -</ol> -]]></content> - <tags> - <tag>Technique</tag> - </tags> - </entry> - <entry> <title>Rust Partial 语义</title> <url>/2023/05/02/Rust-Partial-%E8%AF%AD%E4%B9%89/</url> <content><![CDATA[<blockquote> @@ -2296,6 +2299,28 @@ A relation table (also sometimes called a <em>JOIN</em>, <em>link</em> or <em>pi </tags> </entry> <entry> + <title>Rust NewType 模式</title> + <url>/2023/05/03/Rust-NewType-%E6%A8%A1%E5%BC%8F/</url> + <content><![CDATA[<p>New Type模式是一种软件设计模式,用于在已有类型的基础上创建一个新的类型。在Rust中,这通常是通过定义一个结构体,其中只包含一个单一成员。这个结构体(New Type)对外提供了一个新的、独立的类型,用于对原始类型增加额外的语义或限制。</p> +<h2 id="加强类型安全"><a class="header-anchor" href="#加强类型安全">¶</a>加强类型安全</h2> +<figure class="highlight rust"><table><tr><td class="code"><pre><span class="line"><span class="keyword">struct</span> <span class="title class_">Meters</span>(<span class="type">f64</span>);</span><br><span class="line"><span class="keyword">struct</span> <span class="title class_">Feet</span>(<span class="type">f64</span>);</span><br><span class="line"></span><br><span class="line"><span class="keyword">let</span> <span class="variable">length_in_meters</span> = <span class="title function_ invoke__">Meters</span>(<span class="number">100.0</span>);</span><br><span class="line"><span class="keyword">let</span> <span class="variable">length_in_feet</span> = <span class="title function_ invoke__">Feet</span>(<span class="number">328.084</span>);</span><br><span class="line"></span><br><span class="line"><span class="comment">// 编译器会防止以下代码执行,因为类型不匹配</span></span><br><span class="line"><span class="comment">// let wrong_length = Meters(length_in_feet); // 编译错误</span></span><br><span class="line"></span><br><span class="line"><span class="comment">// 正确的构造</span></span><br><span class="line"><span class="keyword">fn</span> <span class="title function_">add_lengths</span>(length1: Meters, length2: Meters) <span class="punctuation">-></span> Meters {</span><br><span class="line"> <span class="title function_ invoke__">Meters</span>(length1.<span class="number">0</span> + length2.<span class="number">0</span>)</span><br><span class="line">}</span><br></pre></td></tr></table></figure> +<p>这个例子使用 newtype 模式避免将原始类型f64用于不同的量度,从而增强了类型的安全性。</p> +<h2 id="实现特定-trait"><a class="header-anchor" href="#实现特定-trait">¶</a>实现特定 trait</h2> +<figure class="highlight rust"><table><tr><td class="code"><pre><span class="line"><span class="keyword">struct</span> <span class="title class_">Kilometers</span>(<span class="type">f64</span>);</span><br><span class="line"></span><br><span class="line"><span class="keyword">impl</span> <span class="title class_">Kilometers</span> {</span><br><span class="line"> <span class="keyword">fn</span> <span class="title function_">to_miles</span>(&<span class="keyword">self</span>) <span class="punctuation">-></span> <span class="type">f64</span> {</span><br><span class="line"> <span class="keyword">self</span>.<span class="number">0</span> * <span class="number">0.621371</span></span><br><span class="line"> }</span><br><span class="line">}</span><br><span class="line"></span><br><span class="line"><span class="keyword">let</span> <span class="variable">distance</span> = <span class="title function_ invoke__">Kilometers</span>(<span class="number">10.0</span>);</span><br><span class="line"><span class="built_in">println!</span>(<span class="string">"The distance in miles is {}"</span>, distance.<span class="title function_ invoke__">to_miles</span>());</span><br></pre></td></tr></table></figure> +<p>这里,Kilometers有一个方法to_miles,该方法是不会影响其他f64数据的。如果我们有另一个表示温度的f64类型,就不会意外调用到与距离相关的方法。</p> +<p>New Type模式同样适用于对<code>Box<dyn SomeTrait></code>类型的包装,这可以在需要动态分派(动态调用实现了某个接口的不同类型的对象的方法)的时候提供便利。通过创建一个New Type来包装这样的<code>Box<dyn SomeTrait></code>类型,可以提供自定义的方法或实现更多的trait,同时也可以让API更加清晰和易于使用。</p> +<h2 id="零成本抽象"><a class="header-anchor" href="#零成本抽象">¶</a>零成本抽象</h2> +<p>在Rust中,New Type模式不仅是类型安全的,还是一种零成本抽象。这是因为Rust编译器在编译时期会进行足够的优化,以确保New Type的使用没有运行时开销。 Rust的零成本抽象原则确保了抽象不会引入额外的运行时成本。例如,当你使用Meters这样的New Type时,Rust确保:</p> +<ol> +<li>无额外内存开销:Meters只包含一个f64,在内存中的表现和单独的f64是一样的。</li> +<li>无额外运行时开销:使用Meters时,性能和直接使用f64完全相同。编译器会移除任何关于New Type的包装和解包的代码。</li> +</ol> +]]></content> + <tags> + <tag>Technique</tag> + </tags> + </entry> + <entry> <title>Rust 闭包 lifetime may not live long enough 问题</title> <url>/2023/05/24/Rust-%E9%97%AD%E5%8C%85-lifetime-may-not-live-long-enough-%E9%97%AE%E9%A2%98/</url> <content><![CDATA[<p>代码:</p> @@ -2312,6 +2337,46 @@ A relation table (also sometimes called a <em>JOIN</em>, <em>link</em> or <em>pi </tags> </entry> <entry> + <title>TDD 和 DDD 的一些小想法</title> + <url>/2025/03/20/TDD-%E5%92%8C-DDD-%E7%9A%84%E4%B8%80%E4%BA%9B%E5%B0%8F%E6%83%B3%E6%B3%95/</url> + <content><![CDATA[<p>Test-Driven Development (TDD) 和 Domain-Driven Design (DDD) 是两种不同的软件开发方法论,各自有其独特的优缺点和应用场景。</p> +<h3 id="Test-Driven-Development-TDD"><a class="header-anchor" href="#Test-Driven-Development-TDD">¶</a>Test-Driven Development (TDD)</h3> +<h4 id="优点:"><a class="header-anchor" href="#优点:">¶</a>优点:</h4> +<ol> +<li>提高代码质量:通过编写测试来驱动开发,可以确保代码的正确性和可靠性。</li> +<li>减少缺陷:早期发现和修复缺陷,减少后期的调试和维护成本。</li> +<li>促进可维护性:代码更加模块化和可测试,便于后续的维护和扩展。</li> +<li>文档化:测试代码本身就是一种文档,描述了系统的行为和期望。</li> +<li>提高开发速度:虽然初期可能会慢一些,但长期来看,由于减少了重构和调试的时间,开发速度会提高。</li> +</ol> +<h4 id="缺点:"><a class="header-anchor" href="#缺点:">¶</a>缺点:</h4> +<ol> +<li>初期投入大:需要在开发前编写测试,初期投入的时间和精力较大。</li> +<li>学习曲线陡峭:对新手开发者来说,学习和掌握TDD需要一定的时间。</li> +<li>过度依赖测试:可能导致过度依赖单元测试,忽略了系统的整体性能和用户体验。</li> +</ol> +<h3 id="Domain-Driven-Design-DDD"><a class="header-anchor" href="#Domain-Driven-Design-DDD">¶</a>Domain-Driven Design (DDD)</h3> +<h4 id="优点:-v2"><a class="header-anchor" href="#优点:-v2">¶</a>优点:</h4> +<ol> +<li>聚焦领域:通过深入理解业务领域,确保软件系统与业务需求紧密结合。</li> +<li>模型驱动:建立一个清晰的领域模型,帮助开发者和业务专家共同理解系统。</li> +<li>可维护性:通过明确的领域模型和边界,系统结构更加清晰,便于维护和扩展。</li> +<li>沟通桥梁:提供了一种通用的语言(Ubiquitous Language),促进开发团队和业务团队之间的沟通。</li> +</ol> +<h4 id="缺点:-v2"><a class="header-anchor" href="#缺点:-v2">¶</a>缺点:</h4> +<ol> +<li>复杂性高:DDD方法论较为复杂,需要深入理解领域模型和设计模式。</li> +<li>初期投入大:需要大量的时间和精力进行领域分析和建模。</li> +<li>适用范围有限:对于简单的系统或小型项目,DDD可能显得过于复杂和冗余。</li> +</ol> +<hr> +<p>TDD 和 DDD 并不冲突,实际上它们可以互补。TDD 可以帮助确保代码的正确性和可靠性,而 DDD 可以确保系统与业务需求紧密结合。在进行 TDD 时,可以使用 DDD 的领域模型和 Ubiquitous Language 来编写测试用例,确保测试覆盖了业务需求。在进行 DDD 时,可以使用 TDD 来驱动实现,确保每个领域模型的实现。</p> +]]></content> + <tags> + <tag>Technique</tag> + </tags> + </entry> + <entry> <title>Scala 3 (Capture Checking)</title> <url>/2025/03/25/Scala-3-Capture-Checking/</url> <content><![CDATA[<blockquote> @@ -2467,46 +2532,6 @@ A relation table (also sometimes called a <em>JOIN</em>, <em>link</em> or <em>pi </tags> </entry> <entry> - <title>TDD 和 DDD 的一些小想法</title> - <url>/2025/03/20/TDD-%E5%92%8C-DDD-%E7%9A%84%E4%B8%80%E4%BA%9B%E5%B0%8F%E6%83%B3%E6%B3%95/</url> - <content><![CDATA[<p>Test-Driven Development (TDD) 和 Domain-Driven Design (DDD) 是两种不同的软件开发方法论,各自有其独特的优缺点和应用场景。</p> -<h3 id="Test-Driven-Development-TDD"><a class="header-anchor" href="#Test-Driven-Development-TDD">¶</a>Test-Driven Development (TDD)</h3> -<h4 id="优点:"><a class="header-anchor" href="#优点:">¶</a>优点:</h4> -<ol> -<li>提高代码质量:通过编写测试来驱动开发,可以确保代码的正确性和可靠性。</li> -<li>减少缺陷:早期发现和修复缺陷,减少后期的调试和维护成本。</li> -<li>促进可维护性:代码更加模块化和可测试,便于后续的维护和扩展。</li> -<li>文档化:测试代码本身就是一种文档,描述了系统的行为和期望。</li> -<li>提高开发速度:虽然初期可能会慢一些,但长期来看,由于减少了重构和调试的时间,开发速度会提高。</li> -</ol> -<h4 id="缺点:"><a class="header-anchor" href="#缺点:">¶</a>缺点:</h4> -<ol> -<li>初期投入大:需要在开发前编写测试,初期投入的时间和精力较大。</li> -<li>学习曲线陡峭:对新手开发者来说,学习和掌握TDD需要一定的时间。</li> -<li>过度依赖测试:可能导致过度依赖单元测试,忽略了系统的整体性能和用户体验。</li> -</ol> -<h3 id="Domain-Driven-Design-DDD"><a class="header-anchor" href="#Domain-Driven-Design-DDD">¶</a>Domain-Driven Design (DDD)</h3> -<h4 id="优点:-v2"><a class="header-anchor" href="#优点:-v2">¶</a>优点:</h4> -<ol> -<li>聚焦领域:通过深入理解业务领域,确保软件系统与业务需求紧密结合。</li> -<li>模型驱动:建立一个清晰的领域模型,帮助开发者和业务专家共同理解系统。</li> -<li>可维护性:通过明确的领域模型和边界,系统结构更加清晰,便于维护和扩展。</li> -<li>沟通桥梁:提供了一种通用的语言(Ubiquitous Language),促进开发团队和业务团队之间的沟通。</li> -</ol> -<h4 id="缺点:-v2"><a class="header-anchor" href="#缺点:-v2">¶</a>缺点:</h4> -<ol> -<li>复杂性高:DDD方法论较为复杂,需要深入理解领域模型和设计模式。</li> -<li>初期投入大:需要大量的时间和精力进行领域分析和建模。</li> -<li>适用范围有限:对于简单的系统或小型项目,DDD可能显得过于复杂和冗余。</li> -</ol> -<hr> -<p>TDD 和 DDD 并不冲突,实际上它们可以互补。TDD 可以帮助确保代码的正确性和可靠性,而 DDD 可以确保系统与业务需求紧密结合。在进行 TDD 时,可以使用 DDD 的领域模型和 Ubiquitous Language 来编写测试用例,确保测试覆盖了业务需求。在进行 DDD 时,可以使用 TDD 来驱动实现,确保每个领域模型的实现。</p> -]]></content> - <tags> - <tag>Technique</tag> - </tags> - </entry> - <entry> <title>TSOPT 检查</title> <url>/2025/12/29/TSOPT-%E6%A3%80%E6%9F%A5/</url> <content><![CDATA[<p>T-SPOT检查,其全称为T-SPOT.TB,是一种用于检测结核分枝杆菌感染的体外诊断血液检测技术。该方法属于一类被称为γ-干扰素释放试验(Interferon Gamma Release Assay, IGRA)的检测手段,旨在辅助医生诊断个体是否存在结核菌感染,包括活动性结核病和潜伏性结-核感染。此项检测并非直接寻找病原体,而是通过评估人体免疫系统对结核菌特定抗原的反应来做出间接判断,因此,其结果需要结合临床风险评估、影像学检查及其他医疗诊断信息进行综合解读。</p> @@ -2604,11 +2629,11 @@ A relation table (also sometimes called a <em>JOIN</em>, <em>link</em> or <em>pi J -->|有效| K[长期维持] J -->|部分有效| L[联合口服加巴喷丁] J -->|无效| M[重新评估诊断]</pre> -<p>急性控制阶段为1<sub>2周。重度瘙痒(VAS≥7分)或炎症明显者,先用外用强效糖皮质激素快速控制,选用丙酸氯倍他索0.05%乳膏或卤米松0.05%乳膏,每日1</sub>2次,薄涂于瘙痒区域,疗程不超过2周,联合润肤剂(尿素10%~20%或神经酰胺类)。</p> +<p>急性控制阶段为 1~2 周。重度瘙痒(VAS≥7分)或炎症明显者,先用外用强效糖皮质激素快速控制,选用丙酸氯倍他索0.05%乳膏或卤米松0.05%乳膏,每日 1~2 次,薄涂于瘙痒区域,疗程不超过2周,联合润肤剂(尿素10%~20%或神经酰胺类)。</p> <p>过渡阶段为第2~3周,逐步过渡至他克莫司。激素减量(隔日使用或换用弱效激素),同时启动他克莫司0.03%软膏每日2次,两药可交替使用(晨用激素,晚用他克莫司)。</p> <p>维持阶段为第4周起。他克莫司0.03%或0.1%软膏每日2次,症状控制后可减至每日1次或隔日使用,润肤剂持续使用,无固定疗程限制。</p> -<p>制剂选择方面,初始使用0.03%浓度(刺激性较低),耐受良好者可换用0.1%浓度(疗效更强),软膏基质优于乳膏(保湿性更好)。使用方法为清洁皮肤后薄涂于患处,轻柔按摩至吸收,避免大面积使用(单次<10%体表面积),避免封包(增加系统吸收),涂抹后洗手。预处理减轻刺激的方法包括:首次使用前冷敷5<sub>10分钟;或先使用润肤剂,待吸收后再涂他克莫司;刺激感通常1</sub>2周后缓解。</p> -<p>基础治疗包括润肤剂每日至少1次(沐浴后立即使用)、抬高患肢每日数次每次15<sub>30分钟、压力治疗(需排除动脉疾病后使用)。外用治疗效果不足者可联合口服药物:加巴喷丁100</sub>300 mg qn起始,缓慢加量;普瑞巴林25~75 mg qn起始;米氮平7.5~15 mg qn(心衰患者需谨慎)。</p> +<p>制剂选择方面,初始使用0.03%浓度(刺激性较低),耐受良好者可换用0.1%浓度(疗效更强),软膏基质优于乳膏(保湿性更好)。使用方法为清洁皮肤后薄涂于患处,轻柔按摩至吸收,避免大面积使用(单次<10%体表面积),避免封包(增加系统吸收),涂抹后洗手。预处理减轻刺激的方法包括:首次使用前冷敷 5~10 分钟;或先使用润肤剂,待吸收后再涂他克莫司;刺激感通常1~2周后缓解。</p> +<p>基础治疗包括润肤剂每日至少1次(沐浴后立即使用)、抬高患肢每日数次每次 15~30 分钟、压力治疗(需排除动脉疾病后使用)。外用治疗效果不足者可联合口服药物:加巴喷丁100~300 mg qn起始,缓慢加量;普瑞巴林25~75 mg qn起始;米氮平7.5~15 mg qn(心衰患者需谨慎)。</p> <hr> <h2 id="监测与随访"><a class="header-anchor" href="#监测与随访">¶</a>监测与随访</h2> <p>疗效评估采用瘙痒视觉模拟评分(VAS,0~10分)、5-D Itch Scale多维瘙痒评估、皮肤病生活质量指数(DLQI)、患者主观满意度。评估时点为基线、治疗1周、治疗2周、治疗4周,此后每月评估。有效标准为VAS下降≥3分,或瘙痒对睡眠影响显著减少,或患者主观满意度≥满意。</p> @@ -3493,6 +3518,17 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的� </tags> </entry> <entry> + <title>tick thread在Multicore OCaml中的作用</title> + <url>/2023/08/15/tick-thread%E5%9C%A8Multicore-OCaml%E4%B8%AD%E7%9A%84%E4%BD%9C%E7%94%A8/</url> + <content><![CDATA[<p>Multicore OCaml的程序在启动时会运行一个 tick thread,其实现如下:</p> +<figure class="highlight c"><table><tr><td class="code"><pre><span class="line"><span class="comment">/* The tick thread: posts a SIGPREEMPTION signal periodically */</span></span><br><span class="line"></span><br><span class="line"><span class="type">static</span> <span class="type">void</span> * <span class="title function_">caml_thread_tick</span><span class="params">(<span class="type">void</span> * arg)</span></span><br><span class="line">{</span><br><span class="line"> <span class="class"><span class="keyword">struct</span> <span class="title">timeval</span> <span class="title">timeout</span>;</span></span><br><span class="line"> <span class="type">sigset_t</span> mask;</span><br><span class="line"></span><br><span class="line"> <span class="comment">/* Block all signals so that we don't try to execute an OCaml signal handler*/</span></span><br><span class="line"> sigfillset(&mask);</span><br><span class="line"> pthread_sigmask(SIG_BLOCK, &mask, <span class="literal">NULL</span>);</span><br><span class="line"> <span class="keyword">while</span>(! caml_tick_thread_stop) {</span><br><span class="line"> <span class="comment">/* select() seems to be the most efficient way to suspend the</span></span><br><span class="line"><span class="comment"> thread for sub-second intervals */</span></span><br><span class="line"> timeout.tv_sec = <span class="number">0</span>;</span><br><span class="line"> timeout.tv_usec = Thread_timeout * <span class="number">1000</span>;</span><br><span class="line"> select(<span class="number">0</span>, <span class="literal">NULL</span>, <span class="literal">NULL</span>, <span class="literal">NULL</span>, &timeout);</span><br><span class="line"> <span class="comment">/* The preemption signal should never cause a callback, so don't</span></span><br><span class="line"><span class="comment"> go through caml_handle_signal(), just record signal delivery via</span></span><br><span class="line"><span class="comment"> caml_record_signal(). */</span></span><br><span class="line"> caml_record_signal(SIGPREEMPTION);</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">return</span> <span class="literal">NULL</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure> +<p>这是因为Multicore OCaml的GC目前需要一个进程(或一个Domain)中的所有线程一起参与以避免并发访问。如果一个线程在system call上被阻塞,那么整个Domain就会被卡住,直到该线程可以参与当前的垃圾收集。为了避免这个问题,tick 线程可以代替被阻塞的线程执行垃圾收集操作。</p> +]]></content> + <tags> + <tag>Technique</tag> + </tags> + </entry> + <entry> <title>使用 Runed intersection observer 与 tanstack query 实现通用的惰性加载组件</title> <url>/2025/07/31/svelte-lazyquery/</url> <content><![CDATA[<p>在前端,一个常见的性能瓶颈是初始加载时请求了用户当前 viewpoint 之外的非必要数据。惰性加载(Lazy Loading)是一种关键策略,它将数据获取推迟到组件进入 viewpoint 时才执行。本文将阐述如何结合使用 Svelte 5、<code>@tanstack/svelte-query</code> 和 <code>runed.dev</code> 的 <code>useIntersectionObserver</code>,构建一个通用的、可复用的惰性加载组件。</p> @@ -3559,17 +3595,6 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的� </tags> </entry> <entry> - <title>tick thread在Multicore OCaml中的作用</title> - <url>/2023/08/15/tick-thread%E5%9C%A8Multicore-OCaml%E4%B8%AD%E7%9A%84%E4%BD%9C%E7%94%A8/</url> - <content><![CDATA[<p>Multicore OCaml的程序在启动时会运行一个 tick thread,其实现如下:</p> -<figure class="highlight c"><table><tr><td class="code"><pre><span class="line"><span class="comment">/* The tick thread: posts a SIGPREEMPTION signal periodically */</span></span><br><span class="line"></span><br><span class="line"><span class="type">static</span> <span class="type">void</span> * <span class="title function_">caml_thread_tick</span><span class="params">(<span class="type">void</span> * arg)</span></span><br><span class="line">{</span><br><span class="line"> <span class="class"><span class="keyword">struct</span> <span class="title">timeval</span> <span class="title">timeout</span>;</span></span><br><span class="line"> <span class="type">sigset_t</span> mask;</span><br><span class="line"></span><br><span class="line"> <span class="comment">/* Block all signals so that we don't try to execute an OCaml signal handler*/</span></span><br><span class="line"> sigfillset(&mask);</span><br><span class="line"> pthread_sigmask(SIG_BLOCK, &mask, <span class="literal">NULL</span>);</span><br><span class="line"> <span class="keyword">while</span>(! caml_tick_thread_stop) {</span><br><span class="line"> <span class="comment">/* select() seems to be the most efficient way to suspend the</span></span><br><span class="line"><span class="comment"> thread for sub-second intervals */</span></span><br><span class="line"> timeout.tv_sec = <span class="number">0</span>;</span><br><span class="line"> timeout.tv_usec = Thread_timeout * <span class="number">1000</span>;</span><br><span class="line"> select(<span class="number">0</span>, <span class="literal">NULL</span>, <span class="literal">NULL</span>, <span class="literal">NULL</span>, &timeout);</span><br><span class="line"> <span class="comment">/* The preemption signal should never cause a callback, so don't</span></span><br><span class="line"><span class="comment"> go through caml_handle_signal(), just record signal delivery via</span></span><br><span class="line"><span class="comment"> caml_record_signal(). */</span></span><br><span class="line"> caml_record_signal(SIGPREEMPTION);</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">return</span> <span class="literal">NULL</span>;</span><br><span class="line">}</span><br></pre></td></tr></table></figure> -<p>这是因为Multicore OCaml的GC目前需要一个进程(或一个Domain)中的所有线程一起参与以避免并发访问。如果一个线程在system call上被阻塞,那么整个Domain就会被卡住,直到该线程可以参与当前的垃圾收集。为了避免这个问题,tick 线程可以代替被阻塞的线程执行垃圾收集操作。</p> -]]></content> - <tags> - <tag>Technique</tag> - </tags> - </entry> - <entry> <title>UUID v7 是如何加快 RDBMS 索引速度的</title> <url>/2025/04/13/uuidv7-rdbms/</url> <content><![CDATA[<p>UUID v7 之所以能显著提升关系型数据库(尤其是采用聚集索引的 MySQL InnoDB)在插入和查询速度,主要归功于它在 ID 中引入了“可排序的时间戳前缀”,从而大幅减少了 B-Tree 索引页分裂(page split)和数据碎片化。这里分几点来说:</p> @@ -3869,34 +3894,6 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的� </categories> </entry> <entry> - <title>二〇二五年三月十七日</title> - <url>/2025/03/17/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E4%B8%89%E6%9C%88%E5%8D%81%E4%B8%83%E6%97%A5/</url> - <content><![CDATA[<p>人类其实根本无法同时拥有对死亡的坦然和对生活的眷恋。</p> -<p>看见死亡,看见新生,看见朝露凝于叶尖,看见惊雷震碎山月,</p> -<p>它们是因缘聚散吗?</p> -<p>那露珠消散后去了哪里?</p> -<p>此有故彼有,此生故彼灭。</p> -<p>当晨光加热露珠表面至 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.489ex;" xmlns="http://www.w3.org/2000/svg" width="6.242ex" height="1.995ex" role="img" focusable="false" viewBox="0 -666 2759 882"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"></path><path data-c="2E" d="M78 60Q78 84 95 102T138 120Q162 120 180 104T199 61Q199 36 182 18T139 0T96 17T78 60Z" transform="translate(500,0)"></path><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z" transform="translate(778,0)"></path></g><g data-mml-node="mi" transform="translate(1278,0)"><path data-c="1D707" d="M58 -216Q44 -216 34 -208T23 -186Q23 -176 96 116T173 414Q186 442 219 442Q231 441 239 435T249 423T251 413Q251 401 220 279T187 142Q185 131 185 107V99Q185 26 252 26Q261 26 270 27T287 31T302 38T315 45T327 55T338 65T348 77T356 88T365 100L372 110L408 253Q444 395 448 404Q461 431 491 431Q504 431 512 424T523 412T525 402L449 84Q448 79 448 68Q448 43 455 35T476 26Q485 27 496 35Q517 55 537 131Q543 151 547 152Q549 153 557 153H561Q580 153 580 144Q580 138 575 117T555 63T523 13Q510 0 491 -8Q483 -10 467 -10Q446 -10 429 -4T402 11T385 29T376 44T374 51L368 45Q362 39 350 30T324 12T288 -4T246 -11Q199 -11 153 12L129 -85Q108 -167 104 -180T92 -202Q76 -216 58 -216Z"></path></g><g data-mml-node="mi" transform="translate(1881,0)"><path data-c="1D45A" d="M21 287Q22 293 24 303T36 341T56 388T88 425T132 442T175 435T205 417T221 395T229 376L231 369Q231 367 232 367L243 378Q303 442 384 442Q401 442 415 440T441 433T460 423T475 411T485 398T493 385T497 373T500 364T502 357L510 367Q573 442 659 442Q713 442 746 415T780 336Q780 285 742 178T704 50Q705 36 709 31T724 26Q752 26 776 56T815 138Q818 149 821 151T837 153Q857 153 857 145Q857 144 853 130Q845 101 831 73T785 17T716 -10Q669 -10 648 17T627 73Q627 92 663 193T700 345Q700 404 656 404H651Q565 404 506 303L499 291L466 157Q433 26 428 16Q415 -11 385 -11Q372 -11 364 -4T353 8T350 18Q350 29 384 161L420 307Q423 322 423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 181Q151 335 151 342Q154 357 154 369Q154 405 129 405Q107 405 92 377T69 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g></g></g></svg></mjx-container> 深度时,表层水分子动能突破氢键束缚(键能约 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.566ex;" xmlns="http://www.w3.org/2000/svg" width="9.762ex" height="2.262ex" role="img" focusable="false" viewBox="0 -750 4315 1000"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path><path data-c="33" d="M127 463Q100 463 85 480T69 524Q69 579 117 622T233 665Q268 665 277 664Q351 652 390 611T430 522Q430 470 396 421T302 350L299 348Q299 347 308 345T337 336T375 315Q457 262 457 175Q457 96 395 37T238 -22Q158 -22 100 21T42 130Q42 158 60 175T105 193Q133 193 151 175T169 130Q169 119 166 110T159 94T148 82T136 74T126 70T118 67L114 66Q165 21 238 21Q293 21 321 74Q338 107 338 175V195Q338 290 274 322Q259 328 213 329L171 330L168 332Q166 335 166 348Q166 366 174 366Q202 366 232 371Q266 376 294 413T322 525V533Q322 590 287 612Q265 626 240 626Q208 626 181 615T143 592T132 580H135Q138 579 143 578T153 573T165 566T175 555T183 540T186 520Q186 498 172 481T127 463Z" transform="translate(500,0)"></path></g><g data-mml-node="mi" transform="translate(1000,0)"><path data-c="1D458" d="M121 647Q121 657 125 670T137 683Q138 683 209 688T282 694Q294 694 294 686Q294 679 244 477Q194 279 194 272Q213 282 223 291Q247 309 292 354T362 415Q402 442 438 442Q468 442 485 423T503 369Q503 344 496 327T477 302T456 291T438 288Q418 288 406 299T394 328Q394 353 410 369T442 390L458 393Q446 405 434 405H430Q398 402 367 380T294 316T228 255Q230 254 243 252T267 246T293 238T320 224T342 206T359 180T365 147Q365 130 360 106T354 66Q354 26 381 26Q429 26 459 145Q461 153 479 153H483Q499 153 499 144Q499 139 496 130Q455 -11 378 -11Q333 -11 305 15T277 90Q277 108 280 121T283 145Q283 167 269 183T234 206T200 217T182 220H180Q168 178 159 139T145 81T136 44T129 20T122 7T111 -2Q98 -11 83 -11Q66 -11 57 -1T48 16Q48 26 85 176T158 471L195 616Q196 629 188 632T149 637H144Q134 637 131 637T124 640T121 647Z"></path></g><g data-mml-node="mi" transform="translate(1521,0)"><path data-c="1D43D" d="M447 625Q447 637 354 637H329Q323 642 323 645T325 664Q329 677 335 683H352Q393 681 498 681Q541 681 568 681T605 682T619 682Q633 682 633 672Q633 670 630 658Q626 642 623 640T604 637Q552 637 545 623Q541 610 483 376Q420 128 419 127Q397 64 333 21T195 -22Q137 -22 97 8T57 88Q57 130 80 152T132 174Q177 174 182 130Q182 98 164 80T123 56Q115 54 115 53T122 44Q148 15 197 15Q235 15 271 47T324 130Q328 142 387 380T447 625Z"></path></g><g data-mml-node="TeXAtom" data-mjx-texclass="ORD" transform="translate(2154,0)"><g data-mml-node="mo"><path data-c="2F" d="M423 750Q432 750 438 744T444 730Q444 725 271 248T92 -240Q85 -250 75 -250Q68 -250 62 -245T56 -231Q56 -221 230 257T407 740Q411 750 423 750Z"></path></g></g><g data-mml-node="mi" transform="translate(2654,0)"><path data-c="1D45A" d="M21 287Q22 293 24 303T36 341T56 388T88 425T132 442T175 435T205 417T221 395T229 376L231 369Q231 367 232 367L243 378Q303 442 384 442Q401 442 415 440T441 433T460 423T475 411T485 398T493 385T497 373T500 364T502 357L510 367Q573 442 659 442Q713 442 746 415T780 336Q780 285 742 178T704 50Q705 36 709 31T724 26Q752 26 776 56T815 138Q818 149 821 151T837 153Q857 153 857 145Q857 144 853 130Q845 101 831 73T785 17T716 -10Q669 -10 648 17T627 73Q627 92 663 193T700 345Q700 404 656 404H651Q565 404 506 303L499 291L466 157Q433 26 428 16Q415 -11 385 -11Q372 -11 364 -4T353 8T350 18Q350 29 384 161L420 307Q423 322 423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 181Q151 335 151 342Q154 357 154 369Q154 405 129 405Q107 405 92 377T69 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mi" transform="translate(3532,0)"><path data-c="1D45C" d="M201 -11Q126 -11 80 38T34 156Q34 221 64 279T146 380Q222 441 301 441Q333 441 341 440Q354 437 367 433T402 417T438 387T464 338T476 268Q476 161 390 75T201 -11ZM121 120Q121 70 147 48T206 26Q250 26 289 58T351 142Q360 163 374 216T388 308Q388 352 370 375Q346 405 306 405Q243 405 195 347Q158 303 140 230T121 120Z"></path></g><g data-mml-node="mi" transform="translate(4017,0)"><path data-c="1D459" d="M117 59Q117 26 142 26Q179 26 205 131Q211 151 215 152Q217 153 225 153H229Q238 153 241 153T246 151T248 144Q247 138 245 128T234 90T214 43T183 6T137 -11Q101 -11 70 11T38 85Q38 97 39 102L104 360Q167 615 167 623Q167 626 166 628T162 632T157 634T149 635T141 636T132 637T122 637Q112 637 109 637T101 638T95 641T94 647Q94 649 96 661Q101 680 107 682T179 688Q194 689 213 690T243 693T254 694Q266 694 266 686Q266 675 193 386T118 83Q118 81 118 75T117 65V59Z"></path></g></g></g></svg></mjx-container>)。<br> -这种相变并非整齐划一的队列解散,而是呈现量子隧穿效应——单个水分子以 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.05ex;" xmlns="http://www.w3.org/2000/svg" width="6.356ex" height="2.005ex" role="img" focusable="false" viewBox="0 -864 2809.2 886"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msup"><g data-mml-node="mn"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z" transform="translate(500,0)"></path></g><g data-mml-node="TeXAtom" transform="translate(1033,393.1) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mo"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z"></path></g><g data-mml-node="mn" transform="translate(778,0)"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z" transform="translate(500,0)"></path></g></g></g><g data-mml-node="mi" transform="translate(2340.2,0)"><path data-c="1D460" d="M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"></path></g></g></g></svg></mjx-container> 量级的涨落,在液态与气态间振荡,直到完全脱离范德华力作用半径(约 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.05ex;" xmlns="http://www.w3.org/2000/svg" width="6.235ex" height="1.557ex" role="img" focusable="false" viewBox="0 -666 2756 688"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"></path><path data-c="2E" d="M78 60Q78 84 95 102T138 120Q162 120 180 104T199 61Q199 36 182 18T139 0T96 17T78 60Z" transform="translate(500,0)"></path><path data-c="33" d="M127 463Q100 463 85 480T69 524Q69 579 117 622T233 665Q268 665 277 664Q351 652 390 611T430 522Q430 470 396 421T302 350L299 348Q299 347 308 345T337 336T375 315Q457 262 457 175Q457 96 395 37T238 -22Q158 -22 100 21T42 130Q42 158 60 175T105 193Q133 193 151 175T169 130Q169 119 166 110T159 94T148 82T136 74T126 70T118 67L114 66Q165 21 238 21Q293 21 321 74Q338 107 338 175V195Q338 290 274 322Q259 328 213 329L171 330L168 332Q166 335 166 348Q166 366 174 366Q202 366 232 371Q266 376 294 413T322 525V533Q322 590 287 612Q265 626 240 626Q208 626 181 615T143 592T132 580H135Q138 579 143 578T153 573T165 566T175 555T183 540T186 520Q186 498 172 481T127 463Z" transform="translate(778,0)"></path></g><g data-mml-node="mi" transform="translate(1278,0)"><path data-c="1D45B" d="M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mi" transform="translate(1878,0)"><path data-c="1D45A" d="M21 287Q22 293 24 303T36 341T56 388T88 425T132 442T175 435T205 417T221 395T229 376L231 369Q231 367 232 367L243 378Q303 442 384 442Q401 442 415 440T441 433T460 423T475 411T485 398T493 385T497 373T500 364T502 357L510 367Q573 442 659 442Q713 442 746 415T780 336Q780 285 742 178T704 50Q705 36 709 31T724 26Q752 26 776 56T815 138Q818 149 821 151T837 153Q857 153 857 145Q857 144 853 130Q845 101 831 73T785 17T716 -10Q669 -10 648 17T627 73Q627 92 663 193T700 345Q700 404 656 404H651Q565 404 506 303L499 291L466 157Q433 26 428 16Q415 -11 385 -11Q372 -11 364 -4T353 8T350 18Q350 29 384 161L420 307Q423 322 423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 181Q151 335 151 342Q154 357 154 369Q154 405 129 405Q107 405 92 377T69 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g></g></g></svg></mjx-container>)。</p> -<p>逃逸的 H2O 分子并非直线升空,而是在空气分子碰撞下进行三维随机游走。<br> -根据爱因斯坦-斯托克斯方程,其扩散系数 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.566ex;" xmlns="http://www.w3.org/2000/svg" width="16.19ex" height="2.452ex" role="img" focusable="false" viewBox="0 -833.9 7156.1 1083.9"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D437" d="M287 628Q287 635 230 637Q207 637 200 638T193 647Q193 655 197 667T204 682Q206 683 403 683Q570 682 590 682T630 676Q702 659 752 597T803 431Q803 275 696 151T444 3L430 1L236 0H125H72Q48 0 41 2T33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM703 469Q703 507 692 537T666 584T629 613T590 629T555 636Q553 636 541 636T512 636T479 637H436Q392 637 386 627Q384 623 313 339T242 52Q242 48 253 48T330 47Q335 47 349 47T373 46Q499 46 581 128Q617 164 640 212T683 339T703 469Z"></path></g><g data-mml-node="mo" transform="translate(1105.8,0)"><path data-c="2248" d="M55 319Q55 360 72 393T114 444T163 472T205 482Q207 482 213 482T223 483Q262 483 296 468T393 413L443 381Q502 346 553 346Q609 346 649 375T694 454Q694 465 698 474T708 483Q722 483 722 452Q722 386 675 338T555 289Q514 289 468 310T388 357T308 404T224 426Q164 426 125 393T83 318Q81 289 69 289Q55 289 55 319ZM55 85Q55 126 72 159T114 210T163 238T205 248Q207 248 213 248T223 249Q262 249 296 234T393 179L443 147Q502 112 553 112Q609 112 649 141T694 220Q694 249 708 249T722 217Q722 153 675 104T555 55Q514 55 468 76T388 123T308 170T224 192Q164 192 125 159T83 84Q80 55 69 55Q55 55 55 85Z"></path></g><g data-mml-node="mn" transform="translate(2161.6,0)"><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"></path><path data-c="2E" d="M78 60Q78 84 95 102T138 120Q162 120 180 104T199 61Q199 36 182 18T139 0T96 17T78 60Z" transform="translate(500,0)"></path><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z" transform="translate(778,0)"></path><path data-c="38" d="M70 417T70 494T124 618T248 666Q319 666 374 624T429 515Q429 485 418 459T392 417T361 389T335 371T324 363L338 354Q352 344 366 334T382 323Q457 264 457 174Q457 95 399 37T249 -22Q159 -22 101 29T43 155Q43 263 172 335L154 348Q133 361 127 368Q70 417 70 494ZM286 386L292 390Q298 394 301 396T311 403T323 413T334 425T345 438T355 454T364 471T369 491T371 513Q371 556 342 586T275 624Q268 625 242 625Q201 625 165 599T128 534Q128 511 141 492T167 463T217 431Q224 426 228 424L286 386ZM250 21Q308 21 350 55T392 137Q392 154 387 169T375 194T353 216T330 234T301 253T274 270Q260 279 244 289T218 306L210 311Q204 311 181 294T133 239T107 157Q107 98 150 60T250 21Z" transform="translate(1278,0)"></path><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z" transform="translate(1778,0)"></path></g><g data-mml-node="mi" transform="translate(4439.6,0)"><path data-c="1D450" d="M34 159Q34 268 120 355T306 442Q362 442 394 418T427 355Q427 326 408 306T360 285Q341 285 330 295T319 325T330 359T352 380T366 386H367Q367 388 361 392T340 400T306 404Q276 404 249 390Q228 381 206 359Q162 315 142 235T121 119Q121 73 147 50Q169 26 205 26H209Q321 26 394 111Q403 121 406 121Q410 121 419 112T429 98T420 83T391 55T346 25T282 0T202 -11Q127 -11 81 37T34 159Z"></path></g><g data-mml-node="msup" transform="translate(4872.6,0)"><g data-mml-node="mi"><path data-c="1D45A" d="M21 287Q22 293 24 303T36 341T56 388T88 425T132 442T175 435T205 417T221 395T229 376L231 369Q231 367 232 367L243 378Q303 442 384 442Q401 442 415 440T441 433T460 423T475 411T485 398T493 385T497 373T500 364T502 357L510 367Q573 442 659 442Q713 442 746 415T780 336Q780 285 742 178T704 50Q705 36 709 31T724 26Q752 26 776 56T815 138Q818 149 821 151T837 153Q857 153 857 145Q857 144 853 130Q845 101 831 73T785 17T716 -10Q669 -10 648 17T627 73Q627 92 663 193T700 345Q700 404 656 404H651Q565 404 506 303L499 291L466 157Q433 26 428 16Q415 -11 385 -11Q372 -11 364 -4T353 8T350 18Q350 29 384 161L420 307Q423 322 423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 181Q151 335 151 342Q154 357 154 369Q154 405 129 405Q107 405 92 377T69 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mn" transform="translate(911,363) scale(0.707)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g><g data-mml-node="TeXAtom" data-mjx-texclass="ORD" transform="translate(6187.1,0)"><g data-mml-node="mo"><path data-c="2F" d="M423 750Q432 750 438 744T444 730Q444 725 271 248T92 -240Q85 -250 75 -250Q68 -250 62 -245T56 -231Q56 -221 230 257T407 740Q411 750 423 750Z"></path></g></g><g data-mml-node="mi" transform="translate(6687.1,0)"><path data-c="1D460" d="M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"></path></g></g></g></svg></mjx-container>(25℃标准大气压)。这意味着单个水分子在1秒内将形成半径约 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.025ex;" xmlns="http://www.w3.org/2000/svg" width="6.864ex" height="1.557ex" role="img" focusable="false" viewBox="0 -677 3034 688"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path><path data-c="2E" d="M78 60Q78 84 95 102T138 120Q162 120 180 104T199 61Q199 36 182 18T139 0T96 17T78 60Z" transform="translate(500,0)"></path><path data-c="34" d="M462 0Q444 3 333 3Q217 3 199 0H190V46H221Q241 46 248 46T265 48T279 53T286 61Q287 63 287 115V165H28V211L179 442Q332 674 334 675Q336 677 355 677H373L379 671V211H471V165H379V114Q379 73 379 66T385 54Q393 47 442 46H471V0H462ZM293 211V545L74 212L183 211H293Z" transform="translate(778,0)"></path></g><g data-mml-node="mi" transform="translate(1278,0)"><path data-c="1D45A" d="M21 287Q22 293 24 303T36 341T56 388T88 425T132 442T175 435T205 417T221 395T229 376L231 369Q231 367 232 367L243 378Q303 442 384 442Q401 442 415 440T441 433T460 423T475 411T485 398T493 385T497 373T500 364T502 357L510 367Q573 442 659 442Q713 442 746 415T780 336Q780 285 742 178T704 50Q705 36 709 31T724 26Q752 26 776 56T815 138Q818 149 821 151T837 153Q857 153 857 145Q857 144 853 130Q845 101 831 73T785 17T716 -10Q669 -10 648 17T627 73Q627 92 663 193T700 345Q700 404 656 404H651Q565 404 506 303L499 291L466 157Q433 26 428 16Q415 -11 385 -11Q372 -11 364 -4T353 8T350 18Q350 29 384 161L420 307Q423 322 423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 181Q151 335 151 342Q154 357 154 369Q154 405 129 405Q107 405 92 377T69 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mi" transform="translate(2156,0)"><path data-c="1D45A" d="M21 287Q22 293 24 303T36 341T56 388T88 425T132 442T175 435T205 417T221 395T229 376L231 369Q231 367 232 367L243 378Q303 442 384 442Q401 442 415 440T441 433T460 423T475 411T485 398T493 385T497 373T500 364T502 357L510 367Q573 442 659 442Q713 442 746 415T780 336Q780 285 742 178T704 50Q705 36 709 31T724 26Q752 26 776 56T815 138Q818 149 821 151T837 153Q857 153 857 145Q857 144 853 130Q845 101 831 73T785 17T716 -10Q669 -10 648 17T627 73Q627 92 663 193T700 345Q700 404 656 404H651Q565 404 506 303L499 291L466 157Q433 26 428 16Q415 -11 385 -11Q372 -11 364 -4T353 8T350 18Q350 29 384 161L420 307Q423 322 423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 181Q151 335 151 342Q154 357 154 369Q154 405 129 405Q107 405 92 377T69 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g></g></g></svg></mjx-container> 的概率云,与数十亿同伴共同形成水汽。</p> -<p>水中捞月,伸手时,涟漪碎了三千世界。</p> -<p>人类的眉睫处有十方虚空,三藏经书不过指月之指,</p> -<p>看见儿时门前溪水倒流,看见婴孩啼哭时眼底星河闪烁。</p> -<p>看见生死之幕薄如蝉翼,和众生颠倒梦想处。</p> -<p>某些水分子可能抵达对流层顶(约 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.025ex;" xmlns="http://www.w3.org/2000/svg" width="5.428ex" height="1.595ex" role="img" focusable="false" viewBox="0 -694 2399 705"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z" transform="translate(500,0)"></path></g><g data-mml-node="mi" transform="translate(1000,0)"><path data-c="1D458" d="M121 647Q121 657 125 670T137 683Q138 683 209 688T282 694Q294 694 294 686Q294 679 244 477Q194 279 194 272Q213 282 223 291Q247 309 292 354T362 415Q402 442 438 442Q468 442 485 423T503 369Q503 344 496 327T477 302T456 291T438 288Q418 288 406 299T394 328Q394 353 410 369T442 390L458 393Q446 405 434 405H430Q398 402 367 380T294 316T228 255Q230 254 243 252T267 246T293 238T320 224T342 206T359 180T365 147Q365 130 360 106T354 66Q354 26 381 26Q429 26 459 145Q461 153 479 153H483Q499 153 499 144Q499 139 496 130Q455 -11 378 -11Q333 -11 305 15T277 90Q277 108 280 121T283 145Q283 167 269 183T234 206T200 217T182 220H180Q168 178 159 139T145 81T136 44T129 20T122 7T111 -2Q98 -11 83 -11Q66 -11 57 -1T48 16Q48 26 85 176T158 471L195 616Q196 629 188 632T149 637H144Q134 637 131 637T124 640T121 647Z"></path></g><g data-mml-node="mi" transform="translate(1521,0)"><path data-c="1D45A" d="M21 287Q22 293 24 303T36 341T56 388T88 425T132 442T175 435T205 417T221 395T229 376L231 369Q231 367 232 367L243 378Q303 442 384 442Q401 442 415 440T441 433T460 423T475 411T485 398T493 385T497 373T500 364T502 357L510 367Q573 442 659 442Q713 442 746 415T780 336Q780 285 742 178T704 50Q705 36 709 31T724 26Q752 26 776 56T815 138Q818 149 821 151T837 153Q857 153 857 145Q857 144 853 130Q845 101 831 73T785 17T716 -10Q669 -10 648 17T627 73Q627 92 663 193T700 345Q700 404 656 404H651Q565 404 506 303L499 291L466 157Q433 26 428 16Q415 -11 385 -11Q372 -11 364 -4T353 8T350 18Q350 29 384 161L420 307Q423 322 423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 181Q151 335 151 342Q154 357 154 369Q154 405 129 405Q107 405 92 377T69 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g></g></g></svg></mjx-container>),在那里被极地涡旋捕获。</p> -<p>经过 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.186ex;" xmlns="http://www.w3.org/2000/svg" width="8.422ex" height="1.692ex" role="img" focusable="false" viewBox="0 -666 3722.4 748"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="35" d="M164 157Q164 133 148 117T109 101H102Q148 22 224 22Q294 22 326 82Q345 115 345 210Q345 313 318 349Q292 382 260 382H254Q176 382 136 314Q132 307 129 306T114 304Q97 304 95 310Q93 314 93 485V614Q93 664 98 664Q100 666 102 666Q103 666 123 658T178 642T253 634Q324 634 389 662Q397 666 402 666Q410 666 410 648V635Q328 538 205 538Q174 538 149 544L139 546V374Q158 388 169 396T205 412T256 420Q337 420 393 355T449 201Q449 109 385 44T229 -22Q148 -22 99 32T50 154Q50 178 61 192T84 210T107 214Q132 214 148 197T164 157Z"></path><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z" transform="translate(500,0)"></path></g><g data-mml-node="mo" transform="translate(1222.2,0)"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z"></path></g><g data-mml-node="mn" transform="translate(2222.4,0)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z" transform="translate(500,0)"></path><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z" transform="translate(1000,0)"></path></g></g></g></svg></mjx-container> 天的环球旅行后,其中 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.05ex;" xmlns="http://www.w3.org/2000/svg" width="6.285ex" height="1.557ex" role="img" focusable="false" viewBox="0 -666 2778 688"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"></path><path data-c="2E" d="M78 60Q78 84 95 102T138 120Q162 120 180 104T199 61Q199 36 182 18T139 0T96 17T78 60Z" transform="translate(500,0)"></path><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z" transform="translate(778,0)"></path><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z" transform="translate(1278,0)"></path><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z" transform="translate(1778,0)"></path><path data-c="33" d="M127 463Q100 463 85 480T69 524Q69 579 117 622T233 665Q268 665 277 664Q351 652 390 611T430 522Q430 470 396 421T302 350L299 348Q299 347 308 345T337 336T375 315Q457 262 457 175Q457 96 395 37T238 -22Q158 -22 100 21T42 130Q42 158 60 175T105 193Q133 193 151 175T169 130Q169 119 166 110T159 94T148 82T136 74T126 70T118 67L114 66Q165 21 238 21Q293 21 321 74Q338 107 338 175V195Q338 290 274 322Q259 328 213 329L171 330L168 332Q166 335 166 348Q166 366 174 366Q202 366 232 371Q266 376 294 413T322 525V533Q322 590 287 612Q265 626 240 626Q208 626 181 615T143 592T132 580H135Q138 579 143 578T153 573T165 566T175 555T183 540T186 520Q186 498 172 481T127 463Z" transform="translate(2278,0)"></path></g></g></g></svg></mjx-container> 的分子将逃逸到太空,携带着地球的熵增印记。</p> -<p>它们的氧原子核内,八个质子正以 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.05ex;" xmlns="http://www.w3.org/2000/svg" width="4.05ex" height="2.022ex" role="img" focusable="false" viewBox="0 -871.8 1790.1 893.8"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msup"><g data-mml-node="mn"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z" transform="translate(500,0)"></path></g><g data-mml-node="TeXAtom" transform="translate(1033,393.1) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mn"><path data-c="33" d="M127 463Q100 463 85 480T69 524Q69 579 117 622T233 665Q268 665 277 664Q351 652 390 611T430 522Q430 470 396 421T302 350L299 348Q299 347 308 345T337 336T375 315Q457 262 457 175Q457 96 395 37T238 -22Q158 -22 100 21T42 130Q42 158 60 175T105 193Q133 193 151 175T169 130Q169 119 166 110T159 94T148 82T136 74T126 70T118 67L114 66Q165 21 238 21Q293 21 321 74Q338 107 338 175V195Q338 290 274 322Q259 328 213 329L171 330L168 332Q166 335 166 348Q166 366 174 366Q202 366 232 371Q266 376 294 413T322 525V533Q322 590 287 612Q265 626 240 626Q208 626 181 615T143 592T132 580H135Q138 579 143 578T153 573T165 566T175 555T183 540T186 520Q186 498 172 481T127 463Z"></path><path data-c="34" d="M462 0Q444 3 333 3Q217 3 199 0H190V46H221Q241 46 248 46T265 48T279 53T286 61Q287 63 287 115V165H28V211L179 442Q332 674 334 675Q336 677 355 677H373L379 671V211H471V165H379V114Q379 73 379 66T385 54Q393 47 442 46H471V0H462ZM293 211V545L74 212L183 211H293Z" transform="translate(500,0)"></path></g></g></g></g></g></svg></mjx-container> 年半衰期等待质子衰变。</p> -<p>诸法从本来,常自寂灭相。</p> -<p>那在这之前呢?</p> -<p>在这之前我刚吃完一碗辣椒炒肉,</p> -<p>香</p> -]]></content> - <categories> - <category>gallery</category> - </categories> - </entry> - <entry> <title>二〇二五年九月二十四日</title> <url>/2025/09/24/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E4%B9%9D%E6%9C%88%E4%BA%8C%E5%8D%81%E5%9B%9B%E6%97%A5/</url> <content><![CDATA[<p>从小到大,我好像一直是个独立的人。</p> @@ -3945,6 +3942,34 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的� </categories> </entry> <entry> + <title>二〇二五年三月十七日</title> + <url>/2025/03/17/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E4%B8%89%E6%9C%88%E5%8D%81%E4%B8%83%E6%97%A5/</url> + <content><![CDATA[<p>人类其实根本无法同时拥有对死亡的坦然和对生活的眷恋。</p> +<p>看见死亡,看见新生,看见朝露凝于叶尖,看见惊雷震碎山月,</p> +<p>它们是因缘聚散吗?</p> +<p>那露珠消散后去了哪里?</p> +<p>此有故彼有,此生故彼灭。</p> +<p>当晨光加热露珠表面至 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.489ex;" xmlns="http://www.w3.org/2000/svg" width="6.242ex" height="1.995ex" role="img" focusable="false" viewBox="0 -666 2759 882"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"></path><path data-c="2E" d="M78 60Q78 84 95 102T138 120Q162 120 180 104T199 61Q199 36 182 18T139 0T96 17T78 60Z" transform="translate(500,0)"></path><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z" transform="translate(778,0)"></path></g><g data-mml-node="mi" transform="translate(1278,0)"><path data-c="1D707" d="M58 -216Q44 -216 34 -208T23 -186Q23 -176 96 116T173 414Q186 442 219 442Q231 441 239 435T249 423T251 413Q251 401 220 279T187 142Q185 131 185 107V99Q185 26 252 26Q261 26 270 27T287 31T302 38T315 45T327 55T338 65T348 77T356 88T365 100L372 110L408 253Q444 395 448 404Q461 431 491 431Q504 431 512 424T523 412T525 402L449 84Q448 79 448 68Q448 43 455 35T476 26Q485 27 496 35Q517 55 537 131Q543 151 547 152Q549 153 557 153H561Q580 153 580 144Q580 138 575 117T555 63T523 13Q510 0 491 -8Q483 -10 467 -10Q446 -10 429 -4T402 11T385 29T376 44T374 51L368 45Q362 39 350 30T324 12T288 -4T246 -11Q199 -11 153 12L129 -85Q108 -167 104 -180T92 -202Q76 -216 58 -216Z"></path></g><g data-mml-node="mi" transform="translate(1881,0)"><path data-c="1D45A" d="M21 287Q22 293 24 303T36 341T56 388T88 425T132 442T175 435T205 417T221 395T229 376L231 369Q231 367 232 367L243 378Q303 442 384 442Q401 442 415 440T441 433T460 423T475 411T485 398T493 385T497 373T500 364T502 357L510 367Q573 442 659 442Q713 442 746 415T780 336Q780 285 742 178T704 50Q705 36 709 31T724 26Q752 26 776 56T815 138Q818 149 821 151T837 153Q857 153 857 145Q857 144 853 130Q845 101 831 73T785 17T716 -10Q669 -10 648 17T627 73Q627 92 663 193T700 345Q700 404 656 404H651Q565 404 506 303L499 291L466 157Q433 26 428 16Q415 -11 385 -11Q372 -11 364 -4T353 8T350 18Q350 29 384 161L420 307Q423 322 423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 181Q151 335 151 342Q154 357 154 369Q154 405 129 405Q107 405 92 377T69 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g></g></g></svg></mjx-container> 深度时,表层水分子动能突破氢键束缚(键能约 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.566ex;" xmlns="http://www.w3.org/2000/svg" width="9.762ex" height="2.262ex" role="img" focusable="false" viewBox="0 -750 4315 1000"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path><path data-c="33" d="M127 463Q100 463 85 480T69 524Q69 579 117 622T233 665Q268 665 277 664Q351 652 390 611T430 522Q430 470 396 421T302 350L299 348Q299 347 308 345T337 336T375 315Q457 262 457 175Q457 96 395 37T238 -22Q158 -22 100 21T42 130Q42 158 60 175T105 193Q133 193 151 175T169 130Q169 119 166 110T159 94T148 82T136 74T126 70T118 67L114 66Q165 21 238 21Q293 21 321 74Q338 107 338 175V195Q338 290 274 322Q259 328 213 329L171 330L168 332Q166 335 166 348Q166 366 174 366Q202 366 232 371Q266 376 294 413T322 525V533Q322 590 287 612Q265 626 240 626Q208 626 181 615T143 592T132 580H135Q138 579 143 578T153 573T165 566T175 555T183 540T186 520Q186 498 172 481T127 463Z" transform="translate(500,0)"></path></g><g data-mml-node="mi" transform="translate(1000,0)"><path data-c="1D458" d="M121 647Q121 657 125 670T137 683Q138 683 209 688T282 694Q294 694 294 686Q294 679 244 477Q194 279 194 272Q213 282 223 291Q247 309 292 354T362 415Q402 442 438 442Q468 442 485 423T503 369Q503 344 496 327T477 302T456 291T438 288Q418 288 406 299T394 328Q394 353 410 369T442 390L458 393Q446 405 434 405H430Q398 402 367 380T294 316T228 255Q230 254 243 252T267 246T293 238T320 224T342 206T359 180T365 147Q365 130 360 106T354 66Q354 26 381 26Q429 26 459 145Q461 153 479 153H483Q499 153 499 144Q499 139 496 130Q455 -11 378 -11Q333 -11 305 15T277 90Q277 108 280 121T283 145Q283 167 269 183T234 206T200 217T182 220H180Q168 178 159 139T145 81T136 44T129 20T122 7T111 -2Q98 -11 83 -11Q66 -11 57 -1T48 16Q48 26 85 176T158 471L195 616Q196 629 188 632T149 637H144Q134 637 131 637T124 640T121 647Z"></path></g><g data-mml-node="mi" transform="translate(1521,0)"><path data-c="1D43D" d="M447 625Q447 637 354 637H329Q323 642 323 645T325 664Q329 677 335 683H352Q393 681 498 681Q541 681 568 681T605 682T619 682Q633 682 633 672Q633 670 630 658Q626 642 623 640T604 637Q552 637 545 623Q541 610 483 376Q420 128 419 127Q397 64 333 21T195 -22Q137 -22 97 8T57 88Q57 130 80 152T132 174Q177 174 182 130Q182 98 164 80T123 56Q115 54 115 53T122 44Q148 15 197 15Q235 15 271 47T324 130Q328 142 387 380T447 625Z"></path></g><g data-mml-node="TeXAtom" data-mjx-texclass="ORD" transform="translate(2154,0)"><g data-mml-node="mo"><path data-c="2F" d="M423 750Q432 750 438 744T444 730Q444 725 271 248T92 -240Q85 -250 75 -250Q68 -250 62 -245T56 -231Q56 -221 230 257T407 740Q411 750 423 750Z"></path></g></g><g data-mml-node="mi" transform="translate(2654,0)"><path data-c="1D45A" d="M21 287Q22 293 24 303T36 341T56 388T88 425T132 442T175 435T205 417T221 395T229 376L231 369Q231 367 232 367L243 378Q303 442 384 442Q401 442 415 440T441 433T460 423T475 411T485 398T493 385T497 373T500 364T502 357L510 367Q573 442 659 442Q713 442 746 415T780 336Q780 285 742 178T704 50Q705 36 709 31T724 26Q752 26 776 56T815 138Q818 149 821 151T837 153Q857 153 857 145Q857 144 853 130Q845 101 831 73T785 17T716 -10Q669 -10 648 17T627 73Q627 92 663 193T700 345Q700 404 656 404H651Q565 404 506 303L499 291L466 157Q433 26 428 16Q415 -11 385 -11Q372 -11 364 -4T353 8T350 18Q350 29 384 161L420 307Q423 322 423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 181Q151 335 151 342Q154 357 154 369Q154 405 129 405Q107 405 92 377T69 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mi" transform="translate(3532,0)"><path data-c="1D45C" d="M201 -11Q126 -11 80 38T34 156Q34 221 64 279T146 380Q222 441 301 441Q333 441 341 440Q354 437 367 433T402 417T438 387T464 338T476 268Q476 161 390 75T201 -11ZM121 120Q121 70 147 48T206 26Q250 26 289 58T351 142Q360 163 374 216T388 308Q388 352 370 375Q346 405 306 405Q243 405 195 347Q158 303 140 230T121 120Z"></path></g><g data-mml-node="mi" transform="translate(4017,0)"><path data-c="1D459" d="M117 59Q117 26 142 26Q179 26 205 131Q211 151 215 152Q217 153 225 153H229Q238 153 241 153T246 151T248 144Q247 138 245 128T234 90T214 43T183 6T137 -11Q101 -11 70 11T38 85Q38 97 39 102L104 360Q167 615 167 623Q167 626 166 628T162 632T157 634T149 635T141 636T132 637T122 637Q112 637 109 637T101 638T95 641T94 647Q94 649 96 661Q101 680 107 682T179 688Q194 689 213 690T243 693T254 694Q266 694 266 686Q266 675 193 386T118 83Q118 81 118 75T117 65V59Z"></path></g></g></g></svg></mjx-container>)。<br> +这种相变并非整齐划一的队列解散,而是呈现量子隧穿效应——单个水分子以 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.05ex;" xmlns="http://www.w3.org/2000/svg" width="6.356ex" height="2.005ex" role="img" focusable="false" viewBox="0 -864 2809.2 886"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msup"><g data-mml-node="mn"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z" transform="translate(500,0)"></path></g><g data-mml-node="TeXAtom" transform="translate(1033,393.1) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mo"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z"></path></g><g data-mml-node="mn" transform="translate(778,0)"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z" transform="translate(500,0)"></path></g></g></g><g data-mml-node="mi" transform="translate(2340.2,0)"><path data-c="1D460" d="M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"></path></g></g></g></svg></mjx-container> 量级的涨落,在液态与气态间振荡,直到完全脱离范德华力作用半径(约 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.05ex;" xmlns="http://www.w3.org/2000/svg" width="6.235ex" height="1.557ex" role="img" focusable="false" viewBox="0 -666 2756 688"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"></path><path data-c="2E" d="M78 60Q78 84 95 102T138 120Q162 120 180 104T199 61Q199 36 182 18T139 0T96 17T78 60Z" transform="translate(500,0)"></path><path data-c="33" d="M127 463Q100 463 85 480T69 524Q69 579 117 622T233 665Q268 665 277 664Q351 652 390 611T430 522Q430 470 396 421T302 350L299 348Q299 347 308 345T337 336T375 315Q457 262 457 175Q457 96 395 37T238 -22Q158 -22 100 21T42 130Q42 158 60 175T105 193Q133 193 151 175T169 130Q169 119 166 110T159 94T148 82T136 74T126 70T118 67L114 66Q165 21 238 21Q293 21 321 74Q338 107 338 175V195Q338 290 274 322Q259 328 213 329L171 330L168 332Q166 335 166 348Q166 366 174 366Q202 366 232 371Q266 376 294 413T322 525V533Q322 590 287 612Q265 626 240 626Q208 626 181 615T143 592T132 580H135Q138 579 143 578T153 573T165 566T175 555T183 540T186 520Q186 498 172 481T127 463Z" transform="translate(778,0)"></path></g><g data-mml-node="mi" transform="translate(1278,0)"><path data-c="1D45B" d="M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mi" transform="translate(1878,0)"><path data-c="1D45A" d="M21 287Q22 293 24 303T36 341T56 388T88 425T132 442T175 435T205 417T221 395T229 376L231 369Q231 367 232 367L243 378Q303 442 384 442Q401 442 415 440T441 433T460 423T475 411T485 398T493 385T497 373T500 364T502 357L510 367Q573 442 659 442Q713 442 746 415T780 336Q780 285 742 178T704 50Q705 36 709 31T724 26Q752 26 776 56T815 138Q818 149 821 151T837 153Q857 153 857 145Q857 144 853 130Q845 101 831 73T785 17T716 -10Q669 -10 648 17T627 73Q627 92 663 193T700 345Q700 404 656 404H651Q565 404 506 303L499 291L466 157Q433 26 428 16Q415 -11 385 -11Q372 -11 364 -4T353 8T350 18Q350 29 384 161L420 307Q423 322 423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 181Q151 335 151 342Q154 357 154 369Q154 405 129 405Q107 405 92 377T69 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g></g></g></svg></mjx-container>)。</p> +<p>逃逸的 H2O 分子并非直线升空,而是在空气分子碰撞下进行三维随机游走。<br> +根据爱因斯坦-斯托克斯方程,其扩散系数 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.566ex;" xmlns="http://www.w3.org/2000/svg" width="16.19ex" height="2.452ex" role="img" focusable="false" viewBox="0 -833.9 7156.1 1083.9"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mi"><path data-c="1D437" d="M287 628Q287 635 230 637Q207 637 200 638T193 647Q193 655 197 667T204 682Q206 683 403 683Q570 682 590 682T630 676Q702 659 752 597T803 431Q803 275 696 151T444 3L430 1L236 0H125H72Q48 0 41 2T33 11Q33 13 36 25Q40 41 44 43T67 46Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628ZM703 469Q703 507 692 537T666 584T629 613T590 629T555 636Q553 636 541 636T512 636T479 637H436Q392 637 386 627Q384 623 313 339T242 52Q242 48 253 48T330 47Q335 47 349 47T373 46Q499 46 581 128Q617 164 640 212T683 339T703 469Z"></path></g><g data-mml-node="mo" transform="translate(1105.8,0)"><path data-c="2248" d="M55 319Q55 360 72 393T114 444T163 472T205 482Q207 482 213 482T223 483Q262 483 296 468T393 413L443 381Q502 346 553 346Q609 346 649 375T694 454Q694 465 698 474T708 483Q722 483 722 452Q722 386 675 338T555 289Q514 289 468 310T388 357T308 404T224 426Q164 426 125 393T83 318Q81 289 69 289Q55 289 55 319ZM55 85Q55 126 72 159T114 210T163 238T205 248Q207 248 213 248T223 249Q262 249 296 234T393 179L443 147Q502 112 553 112Q609 112 649 141T694 220Q694 249 708 249T722 217Q722 153 675 104T555 55Q514 55 468 76T388 123T308 170T224 192Q164 192 125 159T83 84Q80 55 69 55Q55 55 55 85Z"></path></g><g data-mml-node="mn" transform="translate(2161.6,0)"><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"></path><path data-c="2E" d="M78 60Q78 84 95 102T138 120Q162 120 180 104T199 61Q199 36 182 18T139 0T96 17T78 60Z" transform="translate(500,0)"></path><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z" transform="translate(778,0)"></path><path data-c="38" d="M70 417T70 494T124 618T248 666Q319 666 374 624T429 515Q429 485 418 459T392 417T361 389T335 371T324 363L338 354Q352 344 366 334T382 323Q457 264 457 174Q457 95 399 37T249 -22Q159 -22 101 29T43 155Q43 263 172 335L154 348Q133 361 127 368Q70 417 70 494ZM286 386L292 390Q298 394 301 396T311 403T323 413T334 425T345 438T355 454T364 471T369 491T371 513Q371 556 342 586T275 624Q268 625 242 625Q201 625 165 599T128 534Q128 511 141 492T167 463T217 431Q224 426 228 424L286 386ZM250 21Q308 21 350 55T392 137Q392 154 387 169T375 194T353 216T330 234T301 253T274 270Q260 279 244 289T218 306L210 311Q204 311 181 294T133 239T107 157Q107 98 150 60T250 21Z" transform="translate(1278,0)"></path><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z" transform="translate(1778,0)"></path></g><g data-mml-node="mi" transform="translate(4439.6,0)"><path data-c="1D450" d="M34 159Q34 268 120 355T306 442Q362 442 394 418T427 355Q427 326 408 306T360 285Q341 285 330 295T319 325T330 359T352 380T366 386H367Q367 388 361 392T340 400T306 404Q276 404 249 390Q228 381 206 359Q162 315 142 235T121 119Q121 73 147 50Q169 26 205 26H209Q321 26 394 111Q403 121 406 121Q410 121 419 112T429 98T420 83T391 55T346 25T282 0T202 -11Q127 -11 81 37T34 159Z"></path></g><g data-mml-node="msup" transform="translate(4872.6,0)"><g data-mml-node="mi"><path data-c="1D45A" d="M21 287Q22 293 24 303T36 341T56 388T88 425T132 442T175 435T205 417T221 395T229 376L231 369Q231 367 232 367L243 378Q303 442 384 442Q401 442 415 440T441 433T460 423T475 411T485 398T493 385T497 373T500 364T502 357L510 367Q573 442 659 442Q713 442 746 415T780 336Q780 285 742 178T704 50Q705 36 709 31T724 26Q752 26 776 56T815 138Q818 149 821 151T837 153Q857 153 857 145Q857 144 853 130Q845 101 831 73T785 17T716 -10Q669 -10 648 17T627 73Q627 92 663 193T700 345Q700 404 656 404H651Q565 404 506 303L499 291L466 157Q433 26 428 16Q415 -11 385 -11Q372 -11 364 -4T353 8T350 18Q350 29 384 161L420 307Q423 322 423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 181Q151 335 151 342Q154 357 154 369Q154 405 129 405Q107 405 92 377T69 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mn" transform="translate(911,363) scale(0.707)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path></g></g><g data-mml-node="TeXAtom" data-mjx-texclass="ORD" transform="translate(6187.1,0)"><g data-mml-node="mo"><path data-c="2F" d="M423 750Q432 750 438 744T444 730Q444 725 271 248T92 -240Q85 -250 75 -250Q68 -250 62 -245T56 -231Q56 -221 230 257T407 740Q411 750 423 750Z"></path></g></g><g data-mml-node="mi" transform="translate(6687.1,0)"><path data-c="1D460" d="M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z"></path></g></g></g></svg></mjx-container>(25℃标准大气压)。这意味着单个水分子在1秒内将形成半径约 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.025ex;" xmlns="http://www.w3.org/2000/svg" width="6.864ex" height="1.557ex" role="img" focusable="false" viewBox="0 -677 3034 688"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path><path data-c="2E" d="M78 60Q78 84 95 102T138 120Q162 120 180 104T199 61Q199 36 182 18T139 0T96 17T78 60Z" transform="translate(500,0)"></path><path data-c="34" d="M462 0Q444 3 333 3Q217 3 199 0H190V46H221Q241 46 248 46T265 48T279 53T286 61Q287 63 287 115V165H28V211L179 442Q332 674 334 675Q336 677 355 677H373L379 671V211H471V165H379V114Q379 73 379 66T385 54Q393 47 442 46H471V0H462ZM293 211V545L74 212L183 211H293Z" transform="translate(778,0)"></path></g><g data-mml-node="mi" transform="translate(1278,0)"><path data-c="1D45A" d="M21 287Q22 293 24 303T36 341T56 388T88 425T132 442T175 435T205 417T221 395T229 376L231 369Q231 367 232 367L243 378Q303 442 384 442Q401 442 415 440T441 433T460 423T475 411T485 398T493 385T497 373T500 364T502 357L510 367Q573 442 659 442Q713 442 746 415T780 336Q780 285 742 178T704 50Q705 36 709 31T724 26Q752 26 776 56T815 138Q818 149 821 151T837 153Q857 153 857 145Q857 144 853 130Q845 101 831 73T785 17T716 -10Q669 -10 648 17T627 73Q627 92 663 193T700 345Q700 404 656 404H651Q565 404 506 303L499 291L466 157Q433 26 428 16Q415 -11 385 -11Q372 -11 364 -4T353 8T350 18Q350 29 384 161L420 307Q423 322 423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 181Q151 335 151 342Q154 357 154 369Q154 405 129 405Q107 405 92 377T69 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g><g data-mml-node="mi" transform="translate(2156,0)"><path data-c="1D45A" d="M21 287Q22 293 24 303T36 341T56 388T88 425T132 442T175 435T205 417T221 395T229 376L231 369Q231 367 232 367L243 378Q303 442 384 442Q401 442 415 440T441 433T460 423T475 411T485 398T493 385T497 373T500 364T502 357L510 367Q573 442 659 442Q713 442 746 415T780 336Q780 285 742 178T704 50Q705 36 709 31T724 26Q752 26 776 56T815 138Q818 149 821 151T837 153Q857 153 857 145Q857 144 853 130Q845 101 831 73T785 17T716 -10Q669 -10 648 17T627 73Q627 92 663 193T700 345Q700 404 656 404H651Q565 404 506 303L499 291L466 157Q433 26 428 16Q415 -11 385 -11Q372 -11 364 -4T353 8T350 18Q350 29 384 161L420 307Q423 322 423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 181Q151 335 151 342Q154 357 154 369Q154 405 129 405Q107 405 92 377T69 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g></g></g></svg></mjx-container> 的概率云,与数十亿同伴共同形成水汽。</p> +<p>水中捞月,伸手时,涟漪碎了三千世界。</p> +<p>人类的眉睫处有十方虚空,三藏经书不过指月之指,</p> +<p>看见儿时门前溪水倒流,看见婴孩啼哭时眼底星河闪烁。</p> +<p>看见生死之幕薄如蝉翼,和众生颠倒梦想处。</p> +<p>某些水分子可能抵达对流层顶(约 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.025ex;" xmlns="http://www.w3.org/2000/svg" width="5.428ex" height="1.595ex" role="img" focusable="false" viewBox="0 -694 2399 705"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z" transform="translate(500,0)"></path></g><g data-mml-node="mi" transform="translate(1000,0)"><path data-c="1D458" d="M121 647Q121 657 125 670T137 683Q138 683 209 688T282 694Q294 694 294 686Q294 679 244 477Q194 279 194 272Q213 282 223 291Q247 309 292 354T362 415Q402 442 438 442Q468 442 485 423T503 369Q503 344 496 327T477 302T456 291T438 288Q418 288 406 299T394 328Q394 353 410 369T442 390L458 393Q446 405 434 405H430Q398 402 367 380T294 316T228 255Q230 254 243 252T267 246T293 238T320 224T342 206T359 180T365 147Q365 130 360 106T354 66Q354 26 381 26Q429 26 459 145Q461 153 479 153H483Q499 153 499 144Q499 139 496 130Q455 -11 378 -11Q333 -11 305 15T277 90Q277 108 280 121T283 145Q283 167 269 183T234 206T200 217T182 220H180Q168 178 159 139T145 81T136 44T129 20T122 7T111 -2Q98 -11 83 -11Q66 -11 57 -1T48 16Q48 26 85 176T158 471L195 616Q196 629 188 632T149 637H144Q134 637 131 637T124 640T121 647Z"></path></g><g data-mml-node="mi" transform="translate(1521,0)"><path data-c="1D45A" d="M21 287Q22 293 24 303T36 341T56 388T88 425T132 442T175 435T205 417T221 395T229 376L231 369Q231 367 232 367L243 378Q303 442 384 442Q401 442 415 440T441 433T460 423T475 411T485 398T493 385T497 373T500 364T502 357L510 367Q573 442 659 442Q713 442 746 415T780 336Q780 285 742 178T704 50Q705 36 709 31T724 26Q752 26 776 56T815 138Q818 149 821 151T837 153Q857 153 857 145Q857 144 853 130Q845 101 831 73T785 17T716 -10Q669 -10 648 17T627 73Q627 92 663 193T700 345Q700 404 656 404H651Q565 404 506 303L499 291L466 157Q433 26 428 16Q415 -11 385 -11Q372 -11 364 -4T353 8T350 18Q350 29 384 161L420 307Q423 322 423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 181Q151 335 151 342Q154 357 154 369Q154 405 129 405Q107 405 92 377T69 316T57 280Q55 278 41 278H27Q21 284 21 287Z"></path></g></g></g></svg></mjx-container>),在那里被极地涡旋捕获。</p> +<p>经过 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.186ex;" xmlns="http://www.w3.org/2000/svg" width="8.422ex" height="1.692ex" role="img" focusable="false" viewBox="0 -666 3722.4 748"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="35" d="M164 157Q164 133 148 117T109 101H102Q148 22 224 22Q294 22 326 82Q345 115 345 210Q345 313 318 349Q292 382 260 382H254Q176 382 136 314Q132 307 129 306T114 304Q97 304 95 310Q93 314 93 485V614Q93 664 98 664Q100 666 102 666Q103 666 123 658T178 642T253 634Q324 634 389 662Q397 666 402 666Q410 666 410 648V635Q328 538 205 538Q174 538 149 544L139 546V374Q158 388 169 396T205 412T256 420Q337 420 393 355T449 201Q449 109 385 44T229 -22Q148 -22 99 32T50 154Q50 178 61 192T84 210T107 214Q132 214 148 197T164 157Z"></path><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z" transform="translate(500,0)"></path></g><g data-mml-node="mo" transform="translate(1222.2,0)"><path data-c="2212" d="M84 237T84 250T98 270H679Q694 262 694 250T679 230H98Q84 237 84 250Z"></path></g><g data-mml-node="mn" transform="translate(2222.4,0)"><path data-c="32" d="M109 429Q82 429 66 447T50 491Q50 562 103 614T235 666Q326 666 387 610T449 465Q449 422 429 383T381 315T301 241Q265 210 201 149L142 93L218 92Q375 92 385 97Q392 99 409 186V189H449V186Q448 183 436 95T421 3V0H50V19V31Q50 38 56 46T86 81Q115 113 136 137Q145 147 170 174T204 211T233 244T261 278T284 308T305 340T320 369T333 401T340 431T343 464Q343 527 309 573T212 619Q179 619 154 602T119 569T109 550Q109 549 114 549Q132 549 151 535T170 489Q170 464 154 447T109 429Z"></path><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z" transform="translate(500,0)"></path><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z" transform="translate(1000,0)"></path></g></g></g></svg></mjx-container> 天的环球旅行后,其中 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.05ex;" xmlns="http://www.w3.org/2000/svg" width="6.285ex" height="1.557ex" role="img" focusable="false" viewBox="0 -666 2778 688"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"></path><path data-c="2E" d="M78 60Q78 84 95 102T138 120Q162 120 180 104T199 61Q199 36 182 18T139 0T96 17T78 60Z" transform="translate(500,0)"></path><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z" transform="translate(778,0)"></path><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z" transform="translate(1278,0)"></path><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z" transform="translate(1778,0)"></path><path data-c="33" d="M127 463Q100 463 85 480T69 524Q69 579 117 622T233 665Q268 665 277 664Q351 652 390 611T430 522Q430 470 396 421T302 350L299 348Q299 347 308 345T337 336T375 315Q457 262 457 175Q457 96 395 37T238 -22Q158 -22 100 21T42 130Q42 158 60 175T105 193Q133 193 151 175T169 130Q169 119 166 110T159 94T148 82T136 74T126 70T118 67L114 66Q165 21 238 21Q293 21 321 74Q338 107 338 175V195Q338 290 274 322Q259 328 213 329L171 330L168 332Q166 335 166 348Q166 366 174 366Q202 366 232 371Q266 376 294 413T322 525V533Q322 590 287 612Q265 626 240 626Q208 626 181 615T143 592T132 580H135Q138 579 143 578T153 573T165 566T175 555T183 540T186 520Q186 498 172 481T127 463Z" transform="translate(2278,0)"></path></g></g></g></svg></mjx-container> 的分子将逃逸到太空,携带着地球的熵增印记。</p> +<p>它们的氧原子核内,八个质子正以 <mjx-container class="MathJax" jax="SVG"><svg style="vertical-align: -0.05ex;" xmlns="http://www.w3.org/2000/svg" width="4.05ex" height="2.022ex" role="img" focusable="false" viewBox="0 -871.8 1790.1 893.8"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="msup"><g data-mml-node="mn"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path><path data-c="30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z" transform="translate(500,0)"></path></g><g data-mml-node="TeXAtom" transform="translate(1033,393.1) scale(0.707)" data-mjx-texclass="ORD"><g data-mml-node="mn"><path data-c="33" d="M127 463Q100 463 85 480T69 524Q69 579 117 622T233 665Q268 665 277 664Q351 652 390 611T430 522Q430 470 396 421T302 350L299 348Q299 347 308 345T337 336T375 315Q457 262 457 175Q457 96 395 37T238 -22Q158 -22 100 21T42 130Q42 158 60 175T105 193Q133 193 151 175T169 130Q169 119 166 110T159 94T148 82T136 74T126 70T118 67L114 66Q165 21 238 21Q293 21 321 74Q338 107 338 175V195Q338 290 274 322Q259 328 213 329L171 330L168 332Q166 335 166 348Q166 366 174 366Q202 366 232 371Q266 376 294 413T322 525V533Q322 590 287 612Q265 626 240 626Q208 626 181 615T143 592T132 580H135Q138 579 143 578T153 573T165 566T175 555T183 540T186 520Q186 498 172 481T127 463Z"></path><path data-c="34" d="M462 0Q444 3 333 3Q217 3 199 0H190V46H221Q241 46 248 46T265 48T279 53T286 61Q287 63 287 115V165H28V211L179 442Q332 674 334 675Q336 677 355 677H373L379 671V211H471V165H379V114Q379 73 379 66T385 54Q393 47 442 46H471V0H462ZM293 211V545L74 212L183 211H293Z" transform="translate(500,0)"></path></g></g></g></g></g></svg></mjx-container> 年半衰期等待质子衰变。</p> +<p>诸法从本来,常自寂灭相。</p> +<p>那在这之前呢?</p> +<p>在这之前我刚吃完一碗辣椒炒肉,</p> +<p>香</p> +]]></content> + <categories> + <category>gallery</category> + </categories> + </entry> + <entry> <title>二〇二五年二月二十四日</title> <url>/2025/02/24/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E5%9B%9B%E6%97%A5/</url> <content><![CDATA[<p>街上的人躲进建筑,道路上的车变得缓慢。路边的黑猫坐在屋檐下张望,在雨天,它也有了思考的地方与时间。除了淅淅沥沥的雨声再无其他。</p> @@ -4145,37 +4170,6 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的� </categories> </entry> <entry> - <title>二〇二五年十一月二十六日</title> - <url>/2025/11/26/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E4%BA%8C%E5%8D%81%E5%85%AD%E6%97%A5/</url> - <content><![CDATA[<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> -<p>我笑了笑,把手机放下。走到窗户边,推开窗户,风卷着晚春的味道进来——有槐花香,有青草味,还有一点点枇杷花的味道。抬头看星星,天上的星星很少,但很亮,像家乡的星星。想起陈桉说的,那些星星是祖先的眼睛,在看着我们。</p> -<p>忽然听见楼下有猫叫,探出头去,看见一只黑白相间的猫,正蹲在楼下的台阶上,盯着我看,我对着猫招了招手,猫叫了一声,转身跑了。</p> -<p>再缩回身子,关上窗户,回到沙发上。拿起手机,又看了看陈桉的消息。然后,我打开日记,写下:“今天的晚春,风里有枇杷花的味道。我梦见陈桉,她站在山巅,喊我’暮秋,快上来’。我想,也许我该回去看看了。”</p> -<p>放下笔,静静地靠在沙发上,闭上眼睛。窗外的风还在吹,吹得窗帘沙沙作响。又想起小时候,陈桉带我去山上玩,我们躺在草地上,看星星。陈桉说:“暮秋,等我们老了,还要一起去山上看星星。”,我问:"那如果我走了呢?"陈桉说:“那我就站在山巅,喊你的名字,直到你听见。”</p> -<p>我笑了,眼泪却顺着眼角流下来,摸出手机,给陈桉发了条消息:“明年晚春,我回去陪你摘枇杷。”</p> -<p>消息送达那一刻,突然听见窗外的风里,有个熟悉的声音在喊:“暮秋,快上来。”</p> -<p>我睁开眼睛,窗外的星星很亮,像陈桉的眼睛。</p> -]]></content> - <categories> - <category>gallery</category> - </categories> - </entry> - <entry> <title>二〇二五年十一月十四日</title> <url>/2025/11/14/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E5%8D%81%E5%9B%9B%E6%97%A5/</url> <content><![CDATA[<p>地铁再挤,也挤不掉你钉在我棉袄上的那枚纽扣;城市再繁华,也遮不住你地下室门前那两棵桂花树的影子。距离和时间相乘,把你的一言一行都放大,放大到我走过的每一条街道,都能听见你的回声。</p> @@ -4219,6 +4213,37 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的� </categories> </entry> <entry> + <title>二〇二五年十一月二十六日</title> + <url>/2025/11/26/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E4%BA%8C%E5%8D%81%E5%85%AD%E6%97%A5/</url> + <content><![CDATA[<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> +<p>我笑了笑,把手机放下。走到窗户边,推开窗户,风卷着晚春的味道进来——有槐花香,有青草味,还有一点点枇杷花的味道。抬头看星星,天上的星星很少,但很亮,像家乡的星星。想起陈桉说的,那些星星是祖先的眼睛,在看着我们。</p> +<p>忽然听见楼下有猫叫,探出头去,看见一只黑白相间的猫,正蹲在楼下的台阶上,盯着我看,我对着猫招了招手,猫叫了一声,转身跑了。</p> +<p>再缩回身子,关上窗户,回到沙发上。拿起手机,又看了看陈桉的消息。然后,我打开日记,写下:“今天的晚春,风里有枇杷花的味道。我梦见陈桉,她站在山巅,喊我’暮秋,快上来’。我想,也许我该回去看看了。”</p> +<p>放下笔,静静地靠在沙发上,闭上眼睛。窗外的风还在吹,吹得窗帘沙沙作响。又想起小时候,陈桉带我去山上玩,我们躺在草地上,看星星。陈桉说:“暮秋,等我们老了,还要一起去山上看星星。”,我问:"那如果我走了呢?"陈桉说:“那我就站在山巅,喊你的名字,直到你听见。”</p> +<p>我笑了,眼泪却顺着眼角流下来,摸出手机,给陈桉发了条消息:“明年晚春,我回去陪你摘枇杷。”</p> +<p>消息送达那一刻,突然听见窗外的风里,有个熟悉的声音在喊:“暮秋,快上来。”</p> +<p>我睁开眼睛,窗外的星星很亮,像陈桉的眼睛。</p> +]]></content> + <categories> + <category>gallery</category> + </categories> + </entry> + <entry> <title>二〇二五年十二月二十五日</title> <url>/2025/12/25/%E4%BA%8C%E3%80%87%E4%BA%8C%E4%BA%94%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E4%BA%94%E6%97%A5/</url> <content><![CDATA[<p>那是南方最寻常不过的一个盛夏,空气里裹挟着滚烫的水汽,只要伸手一抓,就能攥出一把湿漉漉的燥热。</p> @@ -4556,18 +4581,6 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的� </categories> </entry> <entry> - <title>二〇二四年八月一日</title> - <url>/2024/08/02/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E5%85%AB%E6%9C%88%E4%B8%80%E6%97%A5/</url> - <content><![CDATA[<p>阿公烧烟成老瘾,<br> -阿公饮酒会面红,<br> -他说日子要开心,<br> -他说人生要尽兴。</p> -]]></content> - <categories> - <category>gallery</category> - </categories> - </entry> - <entry> <title>二〇二四年六月二十七日</title> <url>/2024/06/27/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E5%85%AD%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%83%E6%97%A5/</url> <content><![CDATA[<p>钟摆晃荡 走出时间,<br> @@ -4591,6 +4604,18 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的� </categories> </entry> <entry> + <title>二〇二四年八月一日</title> + <url>/2024/08/02/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E5%85%AB%E6%9C%88%E4%B8%80%E6%97%A5/</url> + <content><![CDATA[<p>阿公烧烟成老瘾,<br> +阿公饮酒会面红,<br> +他说日子要开心,<br> +他说人生要尽兴。</p> +]]></content> + <categories> + <category>gallery</category> + </categories> + </entry> + <entry> <title>二〇二四年十一月十七日</title> <url>/2024/11/17/%E4%BA%8C%E3%80%87%E4%BA%8C%E5%9B%9B%E5%B9%B4%E5%8D%81%E4%B8%80%E6%9C%88%E5%8D%81%E4%B8%83%E6%97%A5/</url> <content><![CDATA[<p>快乐是正面情绪的原型,人类的所作所为,最终都是为了追求快乐。我们之所以想追求财富、健康或名声,都是为了借此得到快乐。然而,追求快乐也不是因为它可以带给我们其他好处,因为快乐本身就是目的。</p> @@ -4671,15 +4696,6 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的� </categories> </entry> <entry> - <title>二零二三年一月二十一日</title> - <url>/2023/01/21/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%B8%80%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%80%E6%97%A5/</url> - <content><![CDATA[<p>我踏着烟火若隐若现, 我生来就是为了把这个世界的消息带到下一个世界去。</p> -]]></content> - <categories> - <category>gallery</category> - </categories> - </entry> - <entry> <title>二零二三年七月三十日</title> <url>/2023/07/30/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%B8%83%E6%9C%88%E4%B8%89%E5%8D%81%E6%97%A5/</url> <content><![CDATA[<p>那天阳光很好,她想离开病房, 离开躺了快一辈子的病床,她说想晒晒太阳,我带着她去楼下的草坪。她摸摸花,摸摸草,摸摸树。她给自己编了个很好看很好看的辫子,把她摘的花插在上面。可是还没绑好她就垂下了头。</p> @@ -4698,6 +4714,15 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的� </categories> </entry> <entry> + <title>二零二三年一月二十一日</title> + <url>/2023/01/21/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%B8%80%E6%9C%88%E4%BA%8C%E5%8D%81%E4%B8%80%E6%97%A5/</url> + <content><![CDATA[<p>我踏着烟火若隐若现, 我生来就是为了把这个世界的消息带到下一个世界去。</p> +]]></content> + <categories> + <category>gallery</category> + </categories> + </entry> + <entry> <title>二零二三年九月十三日</title> <url>/2023/09/13/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%B9%9D%E6%9C%88%E5%8D%81%E4%B8%89%E6%97%A5/</url> <content><![CDATA[<p>“站好! 要拍了啊,倒数三秒,都不要眨眼。” 婚礼结束后, 门口路过的陌生男人拿着相机,充当起了临时的摄影师。</p> @@ -4750,21 +4775,21 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的� </categories> </entry> <entry> - <title>二零二三年二月二十四日</title> - <url>/2023/02/24/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E5%9B%9B%E6%97%A5/</url> - <content><![CDATA[<p>黑色的袋子里装满了药,这种袋子我都是用来装垃圾的,它被昏昏欲睡的老人家抱在怀里,里面的药丸随着颠簸的车厢敲打罐子,老人家醒了,她的眼睛比袋子还浑浊。</p> -<p>她看着我说到站了,我拉着她的手下车,该回家了,等下还要去买支圆珠笔,中性笔没法在药盒子上写用法用量。</p> + <title>二零二三年二月二日</title> + <url>/2023/02/02/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%BA%8C%E6%97%A5/</url> + <content><![CDATA[<p>我不知道这些黑乎乎的东西从哪来的,它们填满了这黄铜色的硬币每一处,像机油,像泥泞,它们随着这五角钱硬币一起从我手上换走了一袋糖果,那是一个蓬头垢面,满身泥灰的小孩,他起身看着这个给他糖果的叔叔,我蹲下看着我拥有糖果的童年。<br> +<br> +这事很恐怖,意味着我在这个地方又多了一丝牵挂,多了一个不离开的理由。</p> ]]></content> <categories> <category>gallery</category> </categories> </entry> <entry> - <title>二零二三年二月二日</title> - <url>/2023/02/02/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%BA%8C%E6%97%A5/</url> - <content><![CDATA[<p>我不知道这些黑乎乎的东西从哪来的,它们填满了这黄铜色的硬币每一处,像机油,像泥泞,它们随着这五角钱硬币一起从我手上换走了一袋糖果,那是一个蓬头垢面,满身泥灰的小孩,他起身看着这个给他糖果的叔叔,我蹲下看着我拥有糖果的童年。<br> -<br> -这事很恐怖,意味着我在这个地方又多了一丝牵挂,多了一个不离开的理由。</p> + <title>二零二三年二月二十四日</title> + <url>/2023/02/24/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E5%9B%9B%E6%97%A5/</url> + <content><![CDATA[<p>黑色的袋子里装满了药,这种袋子我都是用来装垃圾的,它被昏昏欲睡的老人家抱在怀里,里面的药丸随着颠簸的车厢敲打罐子,老人家醒了,她的眼睛比袋子还浑浊。</p> +<p>她看着我说到站了,我拉着她的手下车,该回家了,等下还要去买支圆珠笔,中性笔没法在药盒子上写用法用量。</p> ]]></content> <categories> <category>gallery</category> @@ -4846,6 +4871,15 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的� </categories> </entry> <entry> + <title>二零二二年一月一日</title> + <url>/2022/01/01/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E4%B8%80%E6%9C%88%E4%B8%80%E6%97%A5/</url> + <content><![CDATA[<p>我在一声叹息中恍过了宁静和繁华,目的明确的化成一捧黄土,被风带到这树荫底下,看草萌木长,看人来人往。</p> +]]></content> + <categories> + <category>gallery</category> + </categories> + </entry> + <entry> <title>二零二三年四月二十五日</title> <url>/2023/04/25/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%B8%89%E5%B9%B4%E5%9B%9B%E6%9C%88%E4%BA%8C%E5%8D%81%E4%BA%94%E6%97%A5/</url> <content><![CDATA[<p>一位真正的作家永远只为自己的内心写作,只有内心才会真实的告诉他,他的自私,他的高尚是多么的突出。内心让他真实地了解自己,一旦了解了自己也就了解了世界。</p> @@ -4863,15 +4897,6 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的� </categories> </entry> <entry> - <title>二零二二年一月一日</title> - <url>/2022/01/01/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E4%B8%80%E6%9C%88%E4%B8%80%E6%97%A5/</url> - <content><![CDATA[<p>我在一声叹息中恍过了宁静和繁华,目的明确的化成一捧黄土,被风带到这树荫底下,看草萌木长,看人来人往。</p> -]]></content> - <categories> - <category>gallery</category> - </categories> - </entry> - <entry> <title>二零二二年三月十四日</title> <url>/2022/03/14/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E4%BA%8C%E5%B9%B4%E4%B8%89%E6%9C%88%E5%8D%81%E5%9B%9B%E6%97%A5/</url> <content><![CDATA[<p>我很庆幸能在那年中秋的傍晚出门走走。我看到了落日藏进天边,看到了圆月晕开情绪,我感受到了小山包上的晚风,感受到了落叶翻进衣领清扫锁骨,它们让我留在这个小地方做个平凡且平庸的人,过着平静且平安的生活,尽管生活平常且饭菜平淡,但这日子的每分每秒都是我对生活的爱意。</p> @@ -4935,18 +4960,18 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的� </categories> </entry> <entry> - <title>二零二零年十二月二十六日</title> - <url>/2020/12/26/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E9%9B%B6%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E5%85%AD%E6%97%A5/</url> - <content><![CDATA[<p>我被包裹在吊床中,两颗香樟树支撑着它,仲夏的热浪砸在粗壮的香樟树上,叶子一屈,抱住了热浪,可随即而来的是不知从哪浇来的阳光,叶子承受不住这样的力量,被砸的孔洞百出,砸的香气落满树下的人间。</p> + <title>二零二零年十二月八日</title> + <url>/2020/12/08/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E9%9B%B6%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E5%85%AB%E6%97%A5/</url> + <content><![CDATA[<p>它们勇敢的站在烈日下, 像人类一样无所畏惧, 却又恐惧的躲在黑暗中, 像当初的它们一样无处可逃。</p> ]]></content> <categories> <category>gallery</category> </categories> </entry> <entry> - <title>二零二零年十二月八日</title> - <url>/2020/12/08/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E9%9B%B6%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E5%85%AB%E6%97%A5/</url> - <content><![CDATA[<p>它们勇敢的站在烈日下, 像人类一样无所畏惧, 却又恐惧的躲在黑暗中, 像当初的它们一样无处可逃。</p> + <title>二零二零年十二月二十六日</title> + <url>/2020/12/26/%E4%BA%8C%E9%9B%B6%E4%BA%8C%E9%9B%B6%E5%B9%B4%E5%8D%81%E4%BA%8C%E6%9C%88%E4%BA%8C%E5%8D%81%E5%85%AD%E6%97%A5/</url> + <content><![CDATA[<p>我被包裹在吊床中,两颗香樟树支撑着它,仲夏的热浪砸在粗壮的香樟树上,叶子一屈,抱住了热浪,可随即而来的是不知从哪浇来的阳光,叶子承受不住这样的力量,被砸的孔洞百出,砸的香气落满树下的人间。</p> ]]></content> <categories> <category>gallery</category> @@ -5555,33 +5580,6 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的� </tags> </entry> <entry> - <title>实时搜索中的防抖函数</title> - <url>/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/</url> - <content><![CDATA[<p>在实现实时搜索功能时,通常会使用输入框的事件监听器来捕获用户的输入变化,并在输入变化时发送搜索请求。为了避免过多的请求导致服务器负担过重,通常会使用“防抖”(debounce)技术来控制请求的频率。</p> -<h3 id="实现步骤"><a class="header-anchor" href="#实现步骤">¶</a>实现步骤</h3> -<ol> -<li>监听输入框的变化:使用<code>input</code>事件监听器来捕获用户的输入变化。</li> -<li>防抖处理:使用防抖函数来限制请求的频率。防抖函数会在用户停止输入一段时间后才发送请求。</li> -<li>发送请求:在防抖函数中调用搜索请求。</li> -</ol> -<h3 id="防抖函数示例"><a class="header-anchor" href="#防抖函数示例">¶</a>防抖函数示例</h3> -<p>以下是一个简单的防抖函数示例:</p> -<figure class="highlight javascript"><table><tr><td class="code"><pre><span class="line"><span class="keyword">function</span> <span class="title function_">debounce</span>(<span class="params">func, wait</span>) {</span><br><span class="line"> <span class="keyword">let</span> timeout;</span><br><span class="line"> <span class="keyword">return</span> <span class="keyword">function</span>(<span class="params">...args</span>) {</span><br><span class="line"> <span class="keyword">const</span> context = <span class="variable language_">this</span>;</span><br><span class="line"> <span class="built_in">clearTimeout</span>(timeout);</span><br><span class="line"> timeout = <span class="built_in">setTimeout</span>(<span class="function">() =></span> func.<span class="title function_">apply</span>(context, args), wait);</span><br><span class="line"> };</span><br><span class="line">}</span><br></pre></td></tr></table></figure> -<h3 id="实现实时搜索"><a class="header-anchor" href="#实现实时搜索">¶</a>实现实时搜索</h3> -<p>假设你有一个输入框用于搜索患者:</p> -<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line"><script></span><br><span class="line"> import { onMount } from 'svelte';</span><br><span class="line"> import { patientsStore } from '$lib/stores/patients.svelte';</span><br><span class="line"></span><br><span class="line"> let searchTerm = '';</span><br><span class="line"></span><br><span class="line"> // 防抖函数</span><br><span class="line"> function debounce(func, wait) {</span><br><span class="line"> let timeout;</span><br><span class="line"> return function(...args) {</span><br><span class="line"> const context = this;</span><br><span class="line"> clearTimeout(timeout);</span><br><span class="line"> timeout = setTimeout(() => func.apply(context, args), wait);</span><br><span class="line"> };</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> // 搜索函数</span><br><span class="line"> const searchPatients = debounce(async (term) => {</span><br><span class="line"> if (term) {</span><br><span class="line"> // 发送搜索请求</span><br><span class="line"> const response = await fetch(`/api/search-patients?query=${term}`);</span><br><span class="line"> const data = await response.json();</span><br><span class="line"> patientsStore.mbglPatients = data;</span><br><span class="line"> } else {</span><br><span class="line"> // 清空搜索结果或恢复默认数据</span><br><span class="line"> patientsStore.mbglPatients = [];</span><br><span class="line"> }</span><br><span class="line"> }, 300); // 300ms 的防抖时间</span><br><span class="line"></span><br><span class="line"> // 监听输入框变化</span><br><span class="line"> function handleInput(event) {</span><br><span class="line"> searchTerm = event.target.value;</span><br><span class="line"> searchPatients(searchTerm);</span><br><span class="line"> }</span><br><span class="line"></script></span><br><span class="line"></span><br><span class="line"><input type="text" placeholder="搜索患者..." on:input={handleInput} bind:value={searchTerm} /></span><br></pre></td></tr></table></figure> -<h3 id="请求发送间隔"><a class="header-anchor" href="#请求发送间隔">¶</a>请求发送间隔</h3> -<ul> -<li>防抖时间:通常设置为 300ms 到 500ms 之间。这个时间足够让用户完成输入并减少不必要的请求。</li> -<li>考虑用户体验:防抖时间过短可能导致过多请求,过长则可能让用户感到延迟。300ms 是一个常用的折中值。</li> -</ul> -<p>通过这种方式,你可以实现一个高效的实时搜索功能,既能保证用户体验,又能减少服务器的负担。</p> -]]></content> - <tags> - <tag>Technique</tag> - </tags> - </entry> - <entry> <title>库欣综合征</title> <url>/2025/10/29/%E5%BA%93%E6%AC%A3%E7%BB%BC%E5%90%88%E5%BE%81/</url> <content><![CDATA[<p>库欣综合征(Cushing Syndrome)是由于<strong>长期暴露于过量糖皮质激素</strong>(如皮质醇)而引发的一组临床综合征。它并非单一疾病,而是肾上腺皮质功能亢进或外源性激素摄入过多导致的身体应激反应失调。</p> @@ -5690,6 +5688,33 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的� </tags> </entry> <entry> + <title>实时搜索中的防抖函数</title> + <url>/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/</url> + <content><![CDATA[<p>在实现实时搜索功能时,通常会使用输入框的事件监听器来捕获用户的输入变化,并在输入变化时发送搜索请求。为了避免过多的请求导致服务器负担过重,通常会使用“防抖”(debounce)技术来控制请求的频率。</p> +<h3 id="实现步骤"><a class="header-anchor" href="#实现步骤">¶</a>实现步骤</h3> +<ol> +<li>监听输入框的变化:使用<code>input</code>事件监听器来捕获用户的输入变化。</li> +<li>防抖处理:使用防抖函数来限制请求的频率。防抖函数会在用户停止输入一段时间后才发送请求。</li> +<li>发送请求:在防抖函数中调用搜索请求。</li> +</ol> +<h3 id="防抖函数示例"><a class="header-anchor" href="#防抖函数示例">¶</a>防抖函数示例</h3> +<p>以下是一个简单的防抖函数示例:</p> +<figure class="highlight javascript"><table><tr><td class="code"><pre><span class="line"><span class="keyword">function</span> <span class="title function_">debounce</span>(<span class="params">func, wait</span>) {</span><br><span class="line"> <span class="keyword">let</span> timeout;</span><br><span class="line"> <span class="keyword">return</span> <span class="keyword">function</span>(<span class="params">...args</span>) {</span><br><span class="line"> <span class="keyword">const</span> context = <span class="variable language_">this</span>;</span><br><span class="line"> <span class="built_in">clearTimeout</span>(timeout);</span><br><span class="line"> timeout = <span class="built_in">setTimeout</span>(<span class="function">() =></span> func.<span class="title function_">apply</span>(context, args), wait);</span><br><span class="line"> };</span><br><span class="line">}</span><br></pre></td></tr></table></figure> +<h3 id="实现实时搜索"><a class="header-anchor" href="#实现实时搜索">¶</a>实现实时搜索</h3> +<p>假设你有一个输入框用于搜索患者:</p> +<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line"><script></span><br><span class="line"> import { onMount } from 'svelte';</span><br><span class="line"> import { patientsStore } from '$lib/stores/patients.svelte';</span><br><span class="line"></span><br><span class="line"> let searchTerm = '';</span><br><span class="line"></span><br><span class="line"> // 防抖函数</span><br><span class="line"> function debounce(func, wait) {</span><br><span class="line"> let timeout;</span><br><span class="line"> return function(...args) {</span><br><span class="line"> const context = this;</span><br><span class="line"> clearTimeout(timeout);</span><br><span class="line"> timeout = setTimeout(() => func.apply(context, args), wait);</span><br><span class="line"> };</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> // 搜索函数</span><br><span class="line"> const searchPatients = debounce(async (term) => {</span><br><span class="line"> if (term) {</span><br><span class="line"> // 发送搜索请求</span><br><span class="line"> const response = await fetch(`/api/search-patients?query=${term}`);</span><br><span class="line"> const data = await response.json();</span><br><span class="line"> patientsStore.mbglPatients = data;</span><br><span class="line"> } else {</span><br><span class="line"> // 清空搜索结果或恢复默认数据</span><br><span class="line"> patientsStore.mbglPatients = [];</span><br><span class="line"> }</span><br><span class="line"> }, 300); // 300ms 的防抖时间</span><br><span class="line"></span><br><span class="line"> // 监听输入框变化</span><br><span class="line"> function handleInput(event) {</span><br><span class="line"> searchTerm = event.target.value;</span><br><span class="line"> searchPatients(searchTerm);</span><br><span class="line"> }</span><br><span class="line"></script></span><br><span class="line"></span><br><span class="line"><input type="text" placeholder="搜索患者..." on:input={handleInput} bind:value={searchTerm} /></span><br></pre></td></tr></table></figure> +<h3 id="请求发送间隔"><a class="header-anchor" href="#请求发送间隔">¶</a>请求发送间隔</h3> +<ul> +<li>防抖时间:通常设置为 300ms 到 500ms 之间。这个时间足够让用户完成输入并减少不必要的请求。</li> +<li>考虑用户体验:防抖时间过短可能导致过多请求,过长则可能让用户感到延迟。300ms 是一个常用的折中值。</li> +</ul> +<p>通过这种方式,你可以实现一个高效的实时搜索功能,既能保证用户体验,又能减少服务器的负担。</p> +]]></content> + <tags> + <tag>Technique</tag> + </tags> + </entry> + <entry> <title>急诊与灾难医学--烧伤</title> <url>/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/</url> <content><![CDATA[<p>烧伤,烫伤是一个很常见的急诊意外损伤,这里科普一下相关的知识。</p> @@ -6056,69 +6081,6 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的� </tags> </entry> <entry> - <title>气胸</title> - <url>/2023/03/01/%E6%B0%94%E8%83%B8/</url> - <content><![CDATA[<p><img src="/img/%E5%8C%BB%E5%AD%A6/%E6%B0%94%E8%83%B8/%E6%B0%94%E8%83%B8.jpg" alt="气胸.jpg"></p> -<p>这个病多见于瘦高的年轻男性,一般感觉起来就是:</p> -<ol> -<li>胸腔有刺痛感,针刺的感觉,想想那种拿小针针撮你小胸胸的感觉。</li> -<li>胸闷,就像有东西压在胸口。</li> -<li>呼吸困难,就像有人捂住你的口鼻,有点窒息的感觉。</li> -</ol> -<p>通俗来讲造成这种感觉的原因是肺泡破裂,肺漏气了。然后气体在胸腔里聚集就压缩了肺。</p> -<p><img src="/img/%E5%8C%BB%E5%AD%A6/%E6%B0%94%E8%83%B8/%E6%B0%94%E8%83%B82.jpeg" alt="气胸2.jpeg"><br> -图中是一位右侧气胸患者(图中右面)的电脑断层扫描影像。在胸腔的边缘有着引流管,而图中黑色一片就是邻近于肺膜间(黑)和肋骨(白)的内腔。心脏则在图中央。医学专科胸腔医学、胸腔外科学症状胸痛、呼吸困难、疲劳常见始发于突发性肇因未知、创伤风险因子慢性阻塞性肺病(COPD)、结核病、抽烟诊断方法胸部X光、超声波、电脑断层扫描相似疾病或共病肺部大疱、血胸预防禁烟或戒烟治疗保守治疗、空针穿刺、胸管置放、肋膜黏连术盛行率约每10万人中20例外伤性气胸。</p> -<h2 id="临床表现"><a class="header-anchor" href="#临床表现">¶</a>临床表现</h2> -<p>在医学上的临床表现中,气胸具有如下症状:<br> -患者常有持重物、屏气、剧烈运动等诱发因素,但也有在睡眠中发生气胸者,病人突感一侧胸痛、气急、憋气,可有咳嗽、但痰少,小量闭合性气胸先有气急,但数小时后逐渐平稳,X线也不一定能显示肺压缩。若积气量较大者或者原来已有广泛肺部疾患,病人常不能平卧。如果侧卧,则被迫使气胸患侧在上,以减轻气急。病人呼吸困难程度与积气量的多寡以及原来肺内病变范围有关。当有胸膜粘连和肺功能减损时,即使小量局限性气胸也可能明显胸痛和气急。</p> -<h2 id="初步诊断方式"><a class="header-anchor" href="#初步诊断方式">¶</a>初步诊断方式</h2> -<p>突发一侧胸痛,伴有呼吸困难并有气胸体征,即可作出初步诊断。X线显示气胸征是确诊依据。在无条件或病情危重不允许作X线检查时,可在患侧胸腔积气体征最明确处试穿,抽气测压,若为正压且抽出气体,说明有气胸存在,即应抽出气体以缓解症状,并观察抽气后胸腔内压力的变化以判断气胸类型。在原有严重哮喘或肺气肿基础上并发气胸时,气急、胸闷等症状有时不易觉察,要与原先症状仔细比较。</p> -<h2 id="类似病症需要区别开来"><a class="header-anchor" href="#类似病症需要区别开来">¶</a>类似病症需要区别开来</h2> -<ol> -<li>支气管哮喘和阻塞性肺气肿: 有气急和呼吸困难,体征亦与自发性气胸相似,但肺气肿呼吸困难是长期缓慢加重的,支气管哮喘病人有多年哮喘反复发作史。当哮喘和肺气肿病人呼吸困难突然加重且有胸痛,应考虑并发气胸的可能,X线检查可以作出鉴别。</li> -<li>急性心肌梗塞: 病人亦有急起胸痛、胸闷、甚至呼吸困难、休克等临床表现,但常有高血压、动脉粥样硬化、冠心病史。体征、心电图和X线胸透有助于诊断。</li> -<li>肺栓塞: 有胸痛、呼吸困难和紫绀等酷似自发性气胸的临床表现,但病人往往有咯血和低热,并常有下肢或盆腔栓塞性静脉炎、骨折、严重心脏病、心房纤颤等病史,或发生在长期卧床的老年患者。体检和X线检查有助于鉴别。</li> -<li>肺大疱: 位于肺周边部位的肺大疱有时在X线下被误为气胸。肺大疱可因先天发育形成,也可因支气管内活瓣阻塞而形成张力性囊腔或巨型空腔,起病缓慢,气急不剧烈,从不同角度作胸部透视,可见肺大疱或支气管源囊肿为圆形或卵圆形透光区,在大疱的边缘看不到发线状气胸线,疱内有细小的条纹理,为肺小叶或血管的残遗物。肺大疱向周围膨胀,将肺压向肺尖区、肋膈角和心膈角,而气胸则呈胸外侧的透光带,其中无肺纹可见。肺大疱内压力与大气压相仿,抽气后,大疱容积无显著改变。</li> -<li>主动脉夹层: 夹层分离突然发生时多数患者突感胸部疼痛,向胸前及背部放射,随夹层涉及范围而可以延至腹部、下肢、臂及颈部。疼痛剧烈难以忍受,起病后即达高峰,呈刀割或撕裂样。少数起病缓慢者疼痛可以不著。必须与气胸相鉴别。</li> -<li>其他如消化性溃疡穿孔,膈疝、胸膜炎和肺癌等,有时因急起的胸痛,上腹痛和气急等,亦应注意与自发性气胸鉴别。</li> -</ol> -<p><strong>建议至医院就诊明确病因,例如是不是最常见的肺大疱引起,还是肺部其他疾病引起,病因治疗,以免延误病情。</strong></p> -<blockquote> -<p>如果是肺大疱引起: 肺大疱先天性支气管发育异常,粘膜皱襞呈瓣膜状,软骨发育不良,引起活瓣作用所致。如果有胸闷、气短的症状,而且反复发作,建议手术治疗。如果没有任何症状可以观察,内科治疗。 病人的症状主要与大疱的数目、大小以及是否伴有炎症,肺大疱是否破裂密切相关。首先、小范围的先天性肺大疱一般不会直接导致死亡。 但是、大范围的先天性肺大疱或者出现严重并发症时,有可能引起死亡:</p> -<ol> -<li>直接原因。巨大的肺大疱,因为气体交换困难,多有不同程度的呼吸困难,有的病人因而失去劳动力,甚至行动亦受到限制或者窒息可能。</li> -<li>间接原因。主要是出现并发症时,先天性肺大疱绝大多数是不感染的,但如果感冒等原因引起肺部分泌物增多,引流肺大疱的支气管堵塞,肺大疱支气管内充满炎性分泌物,患者可出现发热、咳嗽、咳痰等感染症状,严重时可以导致菌血症、败血症、脓毒血症导致生命危险。而且肺大疱引起的自发性血胸,多数由肺尖部的大疱或大疱周围的肺组织与胸顶粘连及粘连撕裂活动出血。由于肺、心脏、膈肌运动的去纤维化作用,胸腔内的血液不凝固,因此出血很难自动停止。临床症状可因出血的快慢而不同,出血缓慢时,患者可表现为逐渐加重的胸闷,呼吸困难,X线可见膈角变钝,或胸腔积液的抛物线影像。出血迅速时,短期内可以有休克表现。其次,大范围的先天性肺大疱导致机体长期处于气体交换困难,缺氧时,能导致能促使肺原性心脏病的发生,甚至多器官功能衰竭。</li> -</ol> -</blockquote> -<blockquote> -<p><strong>先天性肺大疱破裂也可以危及生命</strong>,破裂时会并发自发性气胸,有突然胸痛,呼吸困难。若肺大疱破裂后形成活瓣,吸气时胸腔负压增高,气体进入胸腔,呼气时活瓣关闭,气体不能排出,尤其是咳嗽时,声门关闭气道压力增高,气体进入胸腔,声门开放后,气道压力减低,裂口又闭合,每一次呼吸和咳嗽都使胸腔内气体量增加,就形成张力性气胸。 张力性气胸时患侧肺组织完全萎缩,纵隔被推向健侧,在健侧肺组织亦被压缩的同时心脏大血管移位,大静脉扭曲变形,影响血液回流,造成呼吸循环严重障碍。有可能出现很快的心肺功能衰竭,导致死亡。</p> -</blockquote> -<h2 id="急救"><a class="header-anchor" href="#急救">¶</a>急救</h2> -<ol> -<li> -<p>胸部损伤: 胸部如果被刺穿,需要立即覆盖伤处,并以凡士林或胶布密封,以免空气继续经伤处流入。无菌的胶布是较理想的选择, 但是所有气密的物质,例如玻璃纸和香烟盒也可以用。密封后,需要开一个小孔(振动筏)来使吸气时排出空气。胸部刺穿的患者需要密切监察,防止引发对生命有危险的张力性气胸。</p> -</li> -<li> -<p>入院前护理: 多数救护员可以进行针刺抽气, 以减低胸部的压力。 如果情况恶化,导管抽气也可能需要,包括有知觉的病人。可能的话,进行额外的治疗和即时送病人到医院治疗。没有经过适当的治疗的话,气胸患者是不能用飞机运送的。</p> -</li> -</ol> -<h2 id="流行病学"><a class="header-anchor" href="#流行病学">¶</a>流行病学</h2> -<p>经年龄调整后的年均发病率﹝AAIR﹞显示,男性患上气胸的机会较女性高出三至六倍。菲什曼在研究中提出以每十万人年计算,男女患上原发性气胸的AAIR分别为7.4和1.2。身高比平均值较高的人,他们患上气胸的AAIR也相对增加 - 至少为76英寸(1.93米)高的人,每十万人年约有200个案例。瘦削的身材也似乎增加了患上原发性气胸的风险。</p> -<p>此外,男性和女性烟民患上原发性气胸,相对于同性别的非吸烟者患上的机会高出约22倍和9倍。而个人吸烟的程度越凶,风险会有“大于线性”的效果:比方说每天吸食10支香烟的人,会比非吸烟者高出20倍患上气胸的机会;每天消耗20支香烟的,则会高出约100倍。</p> -<p>在继发自发性气胸的病例当中,男性和女性的AAIR大概为6.3和2.0,而复发的风险则取决于患者本身有否任何潜在的肺病及其严重性。一旦发生了第二次气胸,病人之后再复发的机会极高。目前来说没有周详的研究调查儿童的发病率,但估计是每年约十万份之5至10。</p> -<p>除外张力性气胸以外,因为气胸而死亡的案例是非常罕见的。据英国统计数字显示,每年每一百万人当中会有1.26位男性和0.62位女性会因为气胸死亡,其中中老年和继发性气胸的患者会有较高的死亡风险。</p> -<h2 id="引用"><a class="header-anchor" href="#引用">¶</a>引用</h2> -<ul> -<li><a href="https://zhuanlan.zhihu.com/p/140951268">https://zhuanlan.zhihu.com/p/140951268</a></li> -<li><a href="https://www.yixue.com/%E6%B0%94%E8%83%B8">https://www.yixue.com/气胸</a></li> -<li><a href="https://zhuanlan.zhihu.com/p/84718122">https://zhuanlan.zhihu.com/p/84718122</a></li> -</ul> -]]></content> - <tags> - <tag>Medicine</tag> - </tags> - </entry> - <entry> <title>灯笼草</title> <url>/2023/06/22/%E7%81%AF%E7%AC%BC%E8%8D%89/</url> <content><![CDATA[<p>今天在菜园子里看到了野生的灯笼草,都结果了:</p> @@ -6183,6 +6145,69 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的� </tags> </entry> <entry> + <title>气胸</title> + <url>/2023/03/01/%E6%B0%94%E8%83%B8/</url> + <content><![CDATA[<p><img src="/img/%E5%8C%BB%E5%AD%A6/%E6%B0%94%E8%83%B8/%E6%B0%94%E8%83%B8.jpg" alt="气胸.jpg"></p> +<p>这个病多见于瘦高的年轻男性,一般感觉起来就是:</p> +<ol> +<li>胸腔有刺痛感,针刺的感觉,想想那种拿小针针撮你小胸胸的感觉。</li> +<li>胸闷,就像有东西压在胸口。</li> +<li>呼吸困难,就像有人捂住你的口鼻,有点窒息的感觉。</li> +</ol> +<p>通俗来讲造成这种感觉的原因是肺泡破裂,肺漏气了。然后气体在胸腔里聚集就压缩了肺。</p> +<p><img src="/img/%E5%8C%BB%E5%AD%A6/%E6%B0%94%E8%83%B8/%E6%B0%94%E8%83%B82.jpeg" alt="气胸2.jpeg"><br> +图中是一位右侧气胸患者(图中右面)的电脑断层扫描影像。在胸腔的边缘有着引流管,而图中黑色一片就是邻近于肺膜间(黑)和肋骨(白)的内腔。心脏则在图中央。医学专科胸腔医学、胸腔外科学症状胸痛、呼吸困难、疲劳常见始发于突发性肇因未知、创伤风险因子慢性阻塞性肺病(COPD)、结核病、抽烟诊断方法胸部X光、超声波、电脑断层扫描相似疾病或共病肺部大疱、血胸预防禁烟或戒烟治疗保守治疗、空针穿刺、胸管置放、肋膜黏连术盛行率约每10万人中20例外伤性气胸。</p> +<h2 id="临床表现"><a class="header-anchor" href="#临床表现">¶</a>临床表现</h2> +<p>在医学上的临床表现中,气胸具有如下症状:<br> +患者常有持重物、屏气、剧烈运动等诱发因素,但也有在睡眠中发生气胸者,病人突感一侧胸痛、气急、憋气,可有咳嗽、但痰少,小量闭合性气胸先有气急,但数小时后逐渐平稳,X线也不一定能显示肺压缩。若积气量较大者或者原来已有广泛肺部疾患,病人常不能平卧。如果侧卧,则被迫使气胸患侧在上,以减轻气急。病人呼吸困难程度与积气量的多寡以及原来肺内病变范围有关。当有胸膜粘连和肺功能减损时,即使小量局限性气胸也可能明显胸痛和气急。</p> +<h2 id="初步诊断方式"><a class="header-anchor" href="#初步诊断方式">¶</a>初步诊断方式</h2> +<p>突发一侧胸痛,伴有呼吸困难并有气胸体征,即可作出初步诊断。X线显示气胸征是确诊依据。在无条件或病情危重不允许作X线检查时,可在患侧胸腔积气体征最明确处试穿,抽气测压,若为正压且抽出气体,说明有气胸存在,即应抽出气体以缓解症状,并观察抽气后胸腔内压力的变化以判断气胸类型。在原有严重哮喘或肺气肿基础上并发气胸时,气急、胸闷等症状有时不易觉察,要与原先症状仔细比较。</p> +<h2 id="类似病症需要区别开来"><a class="header-anchor" href="#类似病症需要区别开来">¶</a>类似病症需要区别开来</h2> +<ol> +<li>支气管哮喘和阻塞性肺气肿: 有气急和呼吸困难,体征亦与自发性气胸相似,但肺气肿呼吸困难是长期缓慢加重的,支气管哮喘病人有多年哮喘反复发作史。当哮喘和肺气肿病人呼吸困难突然加重且有胸痛,应考虑并发气胸的可能,X线检查可以作出鉴别。</li> +<li>急性心肌梗塞: 病人亦有急起胸痛、胸闷、甚至呼吸困难、休克等临床表现,但常有高血压、动脉粥样硬化、冠心病史。体征、心电图和X线胸透有助于诊断。</li> +<li>肺栓塞: 有胸痛、呼吸困难和紫绀等酷似自发性气胸的临床表现,但病人往往有咯血和低热,并常有下肢或盆腔栓塞性静脉炎、骨折、严重心脏病、心房纤颤等病史,或发生在长期卧床的老年患者。体检和X线检查有助于鉴别。</li> +<li>肺大疱: 位于肺周边部位的肺大疱有时在X线下被误为气胸。肺大疱可因先天发育形成,也可因支气管内活瓣阻塞而形成张力性囊腔或巨型空腔,起病缓慢,气急不剧烈,从不同角度作胸部透视,可见肺大疱或支气管源囊肿为圆形或卵圆形透光区,在大疱的边缘看不到发线状气胸线,疱内有细小的条纹理,为肺小叶或血管的残遗物。肺大疱向周围膨胀,将肺压向肺尖区、肋膈角和心膈角,而气胸则呈胸外侧的透光带,其中无肺纹可见。肺大疱内压力与大气压相仿,抽气后,大疱容积无显著改变。</li> +<li>主动脉夹层: 夹层分离突然发生时多数患者突感胸部疼痛,向胸前及背部放射,随夹层涉及范围而可以延至腹部、下肢、臂及颈部。疼痛剧烈难以忍受,起病后即达高峰,呈刀割或撕裂样。少数起病缓慢者疼痛可以不著。必须与气胸相鉴别。</li> +<li>其他如消化性溃疡穿孔,膈疝、胸膜炎和肺癌等,有时因急起的胸痛,上腹痛和气急等,亦应注意与自发性气胸鉴别。</li> +</ol> +<p><strong>建议至医院就诊明确病因,例如是不是最常见的肺大疱引起,还是肺部其他疾病引起,病因治疗,以免延误病情。</strong></p> +<blockquote> +<p>如果是肺大疱引起: 肺大疱先天性支气管发育异常,粘膜皱襞呈瓣膜状,软骨发育不良,引起活瓣作用所致。如果有胸闷、气短的症状,而且反复发作,建议手术治疗。如果没有任何症状可以观察,内科治疗。 病人的症状主要与大疱的数目、大小以及是否伴有炎症,肺大疱是否破裂密切相关。首先、小范围的先天性肺大疱一般不会直接导致死亡。 但是、大范围的先天性肺大疱或者出现严重并发症时,有可能引起死亡:</p> +<ol> +<li>直接原因。巨大的肺大疱,因为气体交换困难,多有不同程度的呼吸困难,有的病人因而失去劳动力,甚至行动亦受到限制或者窒息可能。</li> +<li>间接原因。主要是出现并发症时,先天性肺大疱绝大多数是不感染的,但如果感冒等原因引起肺部分泌物增多,引流肺大疱的支气管堵塞,肺大疱支气管内充满炎性分泌物,患者可出现发热、咳嗽、咳痰等感染症状,严重时可以导致菌血症、败血症、脓毒血症导致生命危险。而且肺大疱引起的自发性血胸,多数由肺尖部的大疱或大疱周围的肺组织与胸顶粘连及粘连撕裂活动出血。由于肺、心脏、膈肌运动的去纤维化作用,胸腔内的血液不凝固,因此出血很难自动停止。临床症状可因出血的快慢而不同,出血缓慢时,患者可表现为逐渐加重的胸闷,呼吸困难,X线可见膈角变钝,或胸腔积液的抛物线影像。出血迅速时,短期内可以有休克表现。其次,大范围的先天性肺大疱导致机体长期处于气体交换困难,缺氧时,能导致能促使肺原性心脏病的发生,甚至多器官功能衰竭。</li> +</ol> +</blockquote> +<blockquote> +<p><strong>先天性肺大疱破裂也可以危及生命</strong>,破裂时会并发自发性气胸,有突然胸痛,呼吸困难。若肺大疱破裂后形成活瓣,吸气时胸腔负压增高,气体进入胸腔,呼气时活瓣关闭,气体不能排出,尤其是咳嗽时,声门关闭气道压力增高,气体进入胸腔,声门开放后,气道压力减低,裂口又闭合,每一次呼吸和咳嗽都使胸腔内气体量增加,就形成张力性气胸。 张力性气胸时患侧肺组织完全萎缩,纵隔被推向健侧,在健侧肺组织亦被压缩的同时心脏大血管移位,大静脉扭曲变形,影响血液回流,造成呼吸循环严重障碍。有可能出现很快的心肺功能衰竭,导致死亡。</p> +</blockquote> +<h2 id="急救"><a class="header-anchor" href="#急救">¶</a>急救</h2> +<ol> +<li> +<p>胸部损伤: 胸部如果被刺穿,需要立即覆盖伤处,并以凡士林或胶布密封,以免空气继续经伤处流入。无菌的胶布是较理想的选择, 但是所有气密的物质,例如玻璃纸和香烟盒也可以用。密封后,需要开一个小孔(振动筏)来使吸气时排出空气。胸部刺穿的患者需要密切监察,防止引发对生命有危险的张力性气胸。</p> +</li> +<li> +<p>入院前护理: 多数救护员可以进行针刺抽气, 以减低胸部的压力。 如果情况恶化,导管抽气也可能需要,包括有知觉的病人。可能的话,进行额外的治疗和即时送病人到医院治疗。没有经过适当的治疗的话,气胸患者是不能用飞机运送的。</p> +</li> +</ol> +<h2 id="流行病学"><a class="header-anchor" href="#流行病学">¶</a>流行病学</h2> +<p>经年龄调整后的年均发病率﹝AAIR﹞显示,男性患上气胸的机会较女性高出三至六倍。菲什曼在研究中提出以每十万人年计算,男女患上原发性气胸的AAIR分别为7.4和1.2。身高比平均值较高的人,他们患上气胸的AAIR也相对增加 - 至少为76英寸(1.93米)高的人,每十万人年约有200个案例。瘦削的身材也似乎增加了患上原发性气胸的风险。</p> +<p>此外,男性和女性烟民患上原发性气胸,相对于同性别的非吸烟者患上的机会高出约22倍和9倍。而个人吸烟的程度越凶,风险会有“大于线性”的效果:比方说每天吸食10支香烟的人,会比非吸烟者高出20倍患上气胸的机会;每天消耗20支香烟的,则会高出约100倍。</p> +<p>在继发自发性气胸的病例当中,男性和女性的AAIR大概为6.3和2.0,而复发的风险则取决于患者本身有否任何潜在的肺病及其严重性。一旦发生了第二次气胸,病人之后再复发的机会极高。目前来说没有周详的研究调查儿童的发病率,但估计是每年约十万份之5至10。</p> +<p>除外张力性气胸以外,因为气胸而死亡的案例是非常罕见的。据英国统计数字显示,每年每一百万人当中会有1.26位男性和0.62位女性会因为气胸死亡,其中中老年和继发性气胸的患者会有较高的死亡风险。</p> +<h2 id="引用"><a class="header-anchor" href="#引用">¶</a>引用</h2> +<ul> +<li><a href="https://zhuanlan.zhihu.com/p/140951268">https://zhuanlan.zhihu.com/p/140951268</a></li> +<li><a href="https://www.yixue.com/%E6%B0%94%E8%83%B8">https://www.yixue.com/气胸</a></li> +<li><a href="https://zhuanlan.zhihu.com/p/84718122">https://zhuanlan.zhihu.com/p/84718122</a></li> +</ul> +]]></content> + <tags> + <tag>Medicine</tag> + </tags> + </entry> + <entry> <title>直系血亲之间不能直接输血</title> <url>/2024/08/12/%E7%9B%B4%E7%B3%BB%E8%A1%80%E4%BA%B2%E4%B9%8B%E9%97%B4%E4%B8%8D%E8%83%BD%E7%9B%B4%E6%8E%A5%E8%BE%93%E8%A1%80/</url> <content><![CDATA[<p>现代医学证明,直系血亲间输血有时会发生一种严重的输血反应,称为输血相关移植物抗宿主病,这种输血反应尽管发病率很低,但死亡率却高达 99.9%,一旦发生几乎无法挽救。所以,很多电视剧里的那些情节都是错误的。根据中国输血协会网站上的介绍,目前虽然可以通过“血液辐照”的处理技术,把这种具有免疫活性的淋巴细胞灭活,但是临床上仍不建议直系血亲之间输血。</p> @@ -6406,6 +6431,44 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的� </tags> </entry> <entry> + <title>简单说说 FHIR Transaction Bundle</title> + <url>/2026/03/12/%E7%AE%80%E5%8D%95%E8%AF%B4%E8%AF%B4-FHIR-Transaction-Bundle/</url> + <content><![CDATA[<p>FHIR Transaction Bundle 主要解决这一类问题:</p> +<blockquote> +<p>假设你要创建一个 Patient,再创建一个属于这个患者的 Observation,两个必须同时成功或同时失败。用普通 REST API,你得先 POST Patient,拿到 ID,再 POST Observation,如果中间失败了还得自己回滚。FHIR 的 transaction 就是把这个流程标准化成类似数据库的事务操作或说是 “原子操作” ,整组操作要么全成功,要么全失败,而且可以在同一个 bundle 里直接引用还没创建的资源。</p> +</blockquote> +<p>transaction bundle 和 batch bundle 的区别是,batch 把多个请求一起提交,每个独立处理,一部分成功一部分失败是允许的。Transaction 是把所有请求当原子单元处理,任一失败则整体回滚。Medplum 文档说得很直接:batch 是独立处理,transaction 是原子处理。</p> +<p>然后看一个最基础的例子。同时创建 Patient 和 Observation,Observation 引用这个新建的 Patient:</p> +<figure class="highlight json"><table><tr><td class="code"><pre><span class="line"><span class="punctuation">{</span></span><br><span class="line"> <span class="attr">"resourceType"</span><span class="punctuation">:</span> <span class="string">"Bundle"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"type"</span><span class="punctuation">:</span> <span class="string">"transaction"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"entry"</span><span class="punctuation">:</span> <span class="punctuation">[</span></span><br><span class="line"> <span class="punctuation">{</span></span><br><span class="line"> <span class="attr">"fullUrl"</span><span class="punctuation">:</span> <span class="string">"urn:uuid:patient-1"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"request"</span><span class="punctuation">:</span> <span class="punctuation">{</span></span><br><span class="line"> <span class="attr">"method"</span><span class="punctuation">:</span> <span class="string">"POST"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"url"</span><span class="punctuation">:</span> <span class="string">"Patient"</span></span><br><span class="line"> <span class="punctuation">}</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"resource"</span><span class="punctuation">:</span> <span class="punctuation">{</span></span><br><span class="line"> <span class="attr">"resourceType"</span><span class="punctuation">:</span> <span class="string">"Patient"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"name"</span><span class="punctuation">:</span> <span class="punctuation">[</span><span class="punctuation">{</span> <span class="attr">"family"</span><span class="punctuation">:</span> <span class="string">"Doe"</span><span class="punctuation">,</span> <span class="attr">"given"</span><span class="punctuation">:</span> <span class="punctuation">[</span><span class="string">"Jane"</span><span class="punctuation">]</span> <span class="punctuation">}</span><span class="punctuation">]</span></span><br><span class="line"> <span class="punctuation">}</span></span><br><span class="line"> <span class="punctuation">}</span><span class="punctuation">,</span></span><br><span class="line"> <span class="punctuation">{</span></span><br><span class="line"> <span class="attr">"fullUrl"</span><span class="punctuation">:</span> <span class="string">"urn:uuid:observation-1"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"request"</span><span class="punctuation">:</span> <span class="punctuation">{</span></span><br><span class="line"> <span class="attr">"method"</span><span class="punctuation">:</span> <span class="string">"POST"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"url"</span><span class="punctuation">:</span> <span class="string">"Observation"</span></span><br><span class="line"> <span class="punctuation">}</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"resource"</span><span class="punctuation">:</span> <span class="punctuation">{</span></span><br><span class="line"> <span class="attr">"resourceType"</span><span class="punctuation">:</span> <span class="string">"Observation"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"status"</span><span class="punctuation">:</span> <span class="string">"final"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"code"</span><span class="punctuation">:</span> <span class="punctuation">{</span> <span class="attr">"text"</span><span class="punctuation">:</span> <span class="string">"Body Weight"</span> <span class="punctuation">}</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"subject"</span><span class="punctuation">:</span> <span class="punctuation">{</span> <span class="attr">"reference"</span><span class="punctuation">:</span> <span class="string">"urn:uuid:patient-1"</span> <span class="punctuation">}</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"valueQuantity"</span><span class="punctuation">:</span> <span class="punctuation">{</span> <span class="attr">"value"</span><span class="punctuation">:</span> <span class="number">68</span><span class="punctuation">,</span> <span class="attr">"unit"</span><span class="punctuation">:</span> <span class="string">"kg"</span> <span class="punctuation">}</span></span><br><span class="line"> <span class="punctuation">}</span></span><br><span class="line"> <span class="punctuation">}</span></span><br><span class="line"> <span class="punctuation">]</span></span><br><span class="line"><span class="punctuation">}</span></span><br></pre></td></tr></table></figure> +<p>这里的关键是 <code>fullUrl</code> 和 <code>urn:uuid</code>。<code>fullUrl</code> 给 bundle 内还没创建的资源一个临时身份,其他资源通过这个 <code>urn:uuid</code> 引用它。服务端创建资源后会把内部引用替换成真实地址。</p> +<p>FHIR R4 规范对 transaction 有几个硬性规则,这些规则直接影响你怎么设计 bundle。</p> +<p>第一,原子性,要么全成功要么全失败。</p> +<p>第二,处理结果不依赖 entry 顺序。这是我踩坑的地方。不能把 transaction 当成"按顺序执行的脚本"。FHIR 明确规定了服务端处理顺序:先 DELETE,再 POST,再 PUT/PATCH,最后 GET 和解析条件引用。所以写 bundle 的时候不能依赖"先 A 再 B"这种逻辑。</p> +<p>第三,同一资源身份在一个 transaction 中只能出现一次。这是规范层面的限制,不是"可能出问题",而是规范直接说 SHALL fail。</p> +<p>举个反面例子。我想在一个 transaction 里先 PATCH 一个资源补审计字段,再 DELETE 同一个资源:</p> +<figure class="highlight json"><table><tr><td class="code"><pre><span class="line"><span class="punctuation">{</span></span><br><span class="line"> <span class="attr">"resourceType"</span><span class="punctuation">:</span> <span class="string">"Bundle"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"type"</span><span class="punctuation">:</span> <span class="string">"transaction"</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"entry"</span><span class="punctuation">:</span> <span class="punctuation">[</span></span><br><span class="line"> <span class="punctuation">{</span></span><br><span class="line"> <span class="attr">"request"</span><span class="punctuation">:</span> <span class="punctuation">{</span> <span class="attr">"method"</span><span class="punctuation">:</span> <span class="string">"PATCH"</span><span class="punctuation">,</span> <span class="attr">"url"</span><span class="punctuation">:</span> <span class="string">"Observation/obs-1"</span> <span class="punctuation">}</span><span class="punctuation">,</span></span><br><span class="line"> <span class="attr">"resource"</span><span class="punctuation">:</span> <span class="punctuation">{</span> <span class="attr">"resourceType"</span><span class="punctuation">:</span> <span class="string">"Parameters"</span> <span class="punctuation">}</span></span><br><span class="line"> <span class="punctuation">}</span><span class="punctuation">,</span></span><br><span class="line"> <span class="punctuation">{</span></span><br><span class="line"> <span class="attr">"request"</span><span class="punctuation">:</span> <span class="punctuation">{</span> <span class="attr">"method"</span><span class="punctuation">:</span> <span class="string">"DELETE"</span><span class="punctuation">,</span> <span class="attr">"url"</span><span class="punctuation">:</span> <span class="string">"Observation/obs-1"</span> <span class="punctuation">}</span></span><br><span class="line"> <span class="punctuation">}</span></span><br><span class="line"> <span class="punctuation">]</span></span><br><span class="line"><span class="punctuation">}</span></span><br></pre></td></tr></table></figure> +<p>这个 bundle 从规范层面就不合法。原因有两个:一是服务端不会按你写的顺序处理,DELETE 先于 PATCH;二是同一个资源 <code>Observation/obs-1</code> 在 transaction 里出现了两次,构成身份重叠,规范要求失败。</p> +<p>再说 DELETE。FHIR 的 DELETE 不是物理删除。从普通读取角度看,资源返回 410 Gone;从搜索角度看,资源不再出现;但如果服务端维护版本历史,<code>_history</code> 里仍然有记录,而且删除本身会形成一个"被标记为 deleted 的特殊历史版本"。规范还提到被删除的资源可以通过后续 PUT update “bring back to life”。</p> +<p>这对审计设计有直接影响。如果想把删除审计写在主资源的 extension 里(比如 deletedBy、deletedAt),就不能用一个 transaction 搞定,因为同一个资源不能既 PATCH 又 DELETE。你得接受两步法:先更新资源写审计信息,再执行 DELETE。代价是多出一个预删除版本,但好处是审计信息确实留在了主资源历史里。</p> +<p>什么时候该用 transaction?比如多资源必须原子操作的场景,资源间存在内部引用的场景,希望服务端负责一致性边界的场景。</p> +<p>什么时候不该用?比如只是想减少 HTTP 请求次数的,用 batch;bundle 太大事务太重的,某些资源本来就适合异步处理的。</p> +<h2 id="参考资料"><a class="header-anchor" href="#参考资料">¶</a>参考资料</h2> +<ul> +<li>FHIR R4 RESTful API<br> +<a href="https://hl7.org/fhir/R4/http.html">https://hl7.org/fhir/R4/http.html</a></li> +<li>FHIR R4 Transaction Processing Rules<br> +<a href="https://hl7.org/fhir/R4/http.html#transaction">https://hl7.org/fhir/R4/http.html#transaction</a></li> +<li>FHIR R4 Delete Interaction<br> +<a href="https://hl7.org/fhir/R4/http.html#delete">https://hl7.org/fhir/R4/http.html#delete</a></li> +<li>Medplum: FHIR Batch Requests<br> +<a href="https://www.medplum.com/docs/fhir-datastore/fhir-batch-requests">https://www.medplum.com/docs/fhir-datastore/fhir-batch-requests</a></li> +</ul> +]]></content> + <tags> + <tag>Technique</tag> + </tags> + </entry> + <entry> <title>纯牛奶可以加点啥</title> <url>/2023/03/01/%E7%BA%AF%E7%89%9B%E5%A5%B6%E5%8F%AF%E4%BB%A5%E5%8A%A0%E7%82%B9%E5%95%A5/</url> <content><![CDATA[<h2 id="糖"><a class="header-anchor" href="#糖">¶</a>糖</h2> @@ -6455,6 +6518,34 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的� </tags> </entry> <entry> + <title>老年人营养不良误区</title> + <url>/2026/02/16/%E8%80%81%E5%B9%B4%E4%BA%BA%E8%90%A5%E5%85%BB%E8%AF%AF%E5%8C%BA/</url> + <content><![CDATA[<p>老年人营养不良已成为全球公共卫生领域的重大挑战,据世界卫生组织数据,约有25%的老年人群处于营养不良或风险状态中<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>。这一问题往往源于生理退行性变化,如胃肠道功能减退、咀嚼吞咽困难以及慢性疾病的影响,导致能量摄入与消耗失衡。一个临床案例中,一位86岁女性患者因反流性食管炎未及时干预,叠加不良饮食习惯,出现腹胀、食欲减退、体重急剧下降至40公斤左右,并伴随癌胚抗原(CEA)升高至11.5 μg/L,提示炎症相关营养障碍。该案例凸显了老年人常见营养误区如何放大疾病风险,进而诱发肌少症、免疫功能低下甚至多器官衰竭。以下基于循证医学证据,对四个典型误区进行详细剖析:</p> +<p>误区一: 认为稀饭易消化且养胃,故适合老年人每日三餐以此为主。这种认知源于传统饮食文化,但忽略了稀饭的营养组成。稀饭以精制米为主,含水量高达90%以上,蛋白质仅约2-3 g/100 g,缺乏必需氨基酸、维生素B族及矿物质如铁、锌,导致长期摄入易引发低蛋白血症和微量元素缺乏。生理上,老年人胃酸分泌减少20%-50%,肠道吸收效率下降,若饮食单一,膳食纤维摄入不足将加剧便秘和肠道菌群失调,进一步抑制食欲。流行病学研究显示,依赖稀饭为主食的老年人群营养不良发生率升高2-3倍,常伴随贫血和骨密度降低<sup class="footnote-ref"><a href="#fn2" id="fnref2">[2]</a></sup>。临床证据表明,此类饮食模式可诱发隐匿性炎症,CEA等标志物异常风险增加15%-20%。正确路径为构建均衡膳食结构:每日主食以粗细粮搭配,如全谷物米饭或燕麦粥,提供膳食纤维15-25 g;蛋白质摄入目标1.0-1.2 g/kg体重,例如通过鱼虾、瘦肉、豆制品及奶类补充,每餐至少包含20 g优质蛋白;蔬果优先深色品种如菠菜、西兰花,富含抗氧化物以对抗氧化应激。若摄入不足,可在医师指导下引入口服营养补充剂,如含支链氨基酸的配方,每日1-2包,监测血清白蛋白水平以评估疗效。</p> +<p>误区二: 强调吃饱才有精力,故鼓励老年人一次性进食过量。这种习惯虽意在补充能量,却违背老年生理特点。老年人胃容量缩小至年轻人的70%,消化酶活性降低30%,过饱进食将导致胃排空延迟,诱发胃食管反流和消化不良。机制上,饱餐后血液大量转向消化道,脑心供血相对减少,易引发低血压或心律失常,尤其对伴高血压者风险更高。队列研究证实,每日热量摄入超过需求20%的老年人,慢性胃炎复发率增加1.5倍,并与营养吸收障碍相关<sup class="footnote-ref"><a href="#fn3" id="fnref3">[3]</a></sup>。在案例中,患者反流性食管炎即由此类习惯加重,表现为打嗝、胸闷。干预策略采用“三餐两点”模式:正餐控制在七分饱,即进食至无饥饿感但不胀满,每餐热量占总摄入的25%-30%;加餐选低脂水果或坚果,如上午苹果一片(约100 kcal),下午酸奶一杯(150 ml),总日摄入1500-2000 kcal,根据基础代谢率调整。监测指标包括餐后血糖和体重曲线,每周复测以避免低血糖风险。</p> +<p>误区三: 视“老来瘦”为福寿象征,认为体重减轻有益健康。这种观点忽略了老年瘦身往往源于肌肉流失,而非脂肪减少。肌少症(sarcopenia)定义为骨骼肌质量和功能丧失,全球老年人群患病率达10%-50%,与跌倒、骨折及死亡率升高相关<sup class="footnote-ref"><a href="#fn4" id="fnref4">[4]</a></sup>。生理基础在于激素水平下降,如睾酮和生长激素减少30%,叠加炎症因子(如IL-6)升高,导致蛋白合成抑制。影像学证据显示,肌少症患者CEA等炎症标志物异常概率增加25%,如案例中患者“皮包骨头”状态即为典型。瘦弱并非健康标志,而是营养不良的信号,易并发衰弱综合征。优化方案聚焦抗肌少症营养:每日蛋白质摄入提升至1.2-1.5 g/kg,优先富含亮氨酸来源如鸡蛋、乳清蛋白;结合维生素D补充(800-2000 IU/日)和ω-3脂肪酸(鱼油1-2 g/日),以促进肌合成。运动干预如每周3次阻力训练(举重5-10 kg),监测肌力握力和生物电阻抗分析(BIA)以量化肌肉质量,每3个月复评。</p> +<p>误区四: 相信汤羹浓缩营养精华,多饮鸡汤或骨头汤可滋补身体。这种误解源于汤汁外观油腻诱人,但实际营养价值有限。肉汤脂肪含量高(每100 ml鸡汤约5-10 g),嘌呤达50-100 mg,长期摄入易诱发高尿酸血症和血脂异常。机制上,汤中可溶性蛋白仅占总量的10%-20%,多数营养留在肉渣中,而高钠(>500 mg/100 ml)加重水钠潴留,对心衰或肾功能不全者危害显著。meta分析显示,每周>3次肉汤摄入的老年人,高血压风险升高1.8倍,肥胖发生率增加<sup class="footnote-ref"><a href="#fn5" id="fnref5">[5]</a></sup>。案例患者素食偏好虽避开部分风险,但整体营养失衡仍需矫正。推荐替代为清淡汤品,如蔬菜豆腐汤,每日饮水1.5-1.7 L白开水以维持电解质平衡;若需汤类,限量骨汤每周2次<200 ml,并监测血尿酸和脂质谱。</p> +<hr class="footnotes-sep"> +<section class="footnotes"> +<ol class="footnotes-list"> +<li id="fn1" class="footnote-item"><p>World Health Organization. Nutrition for older adults. WHO Guidelines, 2023. Available at: <a href="https://www.who.int/publications/i/item/9789240073929">https://www.who.int/publications/i/item/9789240073929</a> <a href="#fnref1" class="footnote-backref">↩︎</a></p> +</li> +<li id="fn2" class="footnote-item"><p>Volkert D, et al. ESPEN guideline on clinical nutrition and hydration in geriatrics. Clin Nutr. 2019;38(1):10-47. doi:10.1016/j.clnu.2018.03.030 <a href="#fnref2" class="footnote-backref">↩︎</a></p> +</li> +<li id="fn3" class="footnote-item"><p>Bellia A, et al. Overeating and gastrointestinal symptoms in the elderly. Nutrients. 2021;13(5):1567. doi:10.3390/nu13051567 <a href="#fnref3" class="footnote-backref">↩︎</a></p> +</li> +<li id="fn4" class="footnote-item"><p>Cruz-Jentoft AJ, et al. Sarcopenia: European consensus on definition and diagnosis. Age Ageing. 2010;39(4):412-23. doi:10.1093/ageing/afq034 <a href="#fnref4" class="footnote-backref">↩︎</a></p> +</li> +<li id="fn5" class="footnote-item"><p>Zhang Y, et al. Meat soup consumption and hyperuricemia risk in older adults: A cohort study. J Nutr Health Aging. 2022;26(4):345-52. doi:10.1007/s12603-022-1765-3 <a href="#fnref5" class="footnote-backref">↩︎</a></p> +</li> +</ol> +</section> +]]></content> + <tags> + <tag>Life</tag> + </tags> + </entry> + <entry> <title>肝功能检查化验单阅读指南</title> <url>/2023/10/13/%E8%82%9D%E5%8A%9F%E8%83%BD%E6%A3%80%E6%9F%A5%E5%8C%96%E9%AA%8C%E5%8D%95/</url> <content><![CDATA[<p><img src="/img/%E5%8C%BB%E5%AD%A6/%E8%82%9D%E5%8A%9F%E8%83%BD%E6%A3%80%E6%9F%A5%E5%8C%96%E9%AA%8C%E5%8D%95Demo.jpeg" alt=""></p> @@ -6728,6 +6819,22 @@ NestJS 依赖其底层 HTTP 适配器(默认为 Express)来解析传入的� </tags> </entry> <entry> + <title>药物研发中的制药成本</title> + <url>/2026/01/09/%E8%8D%AF%E7%89%A9%E7%A0%94%E5%8F%91%E4%B8%AD%E7%9A%84%E5%88%B6%E8%8D%AF%E6%88%90%E6%9C%AC/</url> + <content><![CDATA[<p>在药物研发的全链条中,从靶点发现、临床前研究、临床试验(I-III期)、监管审批到上市后监测,“制药成本” 主要指化学、制造和控制环节的支出,包括活性药物成分的合成、制剂开发、规模化生产验证以及符合良好生产规范(cGMP)的设施投资。</p> +<p>这一成本并非研发链条的最大组成部分,而是相对次要的环节,通常占比约 5% 至 15%,具体取决于药物类型、分子复杂度和开发阶段的资源分配。</p> +<p>总体而言,新药研发的总成本高企(平均每款成功药物约21-30亿美元),其中临床试验往往主导支出格局,而制药成本在早期阶段更侧重于小批量 GMP 生产,用于支持毒理学和人体试验,在后期则扩展到商业化验证,但其在全链中的权重仍被临床数据生成和监管合规所稀释。</p> +<p>从 Tufts 药物开发研究中心的长期分析报告中可以看出,在成功带出一款新药的平均成本中,临床前和发现阶段约占 22%,临床试验阶段高达 59%,而CMC 和制造相关支出仅约 9%,剩余部分为监管、知识产权和行政开销。</p> +<p>这一分布反映了制药行业的风险导向:失败率极高(约 90% 的候选药物在临床中夭折),导致早期投资虽多但分散,而后期临床验证需巨额资金以招募患者和监测疗效。</p> +<p>Deloitte 的制药行业报告中提到了一些细节:对于小分子化学药物,制造成本占比可能低至 5-8%,因为合成路线相对成熟,但对于生物制品如单克隆抗体或基因疗法,这一比例可升至 10-15%,源于复杂的细胞培养、纯化和无菌填充工艺,这些步骤需专用设备和严格的生物安全控制。FDA 的年度报告也证实,ANDA 或 BLA 申请中,CMC 模块的审查虽关键,但其预算需求远低于临床部分,仅需证明工艺可重复性和稳定性,而非重复疗效试验。</p> +<p>传统口服小分子药的制药成本较低,因为原料采购和制剂标准化程度高,其他比较特别的个性化疗法如 CAR-T 细胞产品,其制造涉及患者特异性生产,导致单位成本飙升(可达数十万美元/剂),从而拉高全链比例。全球供应链波动(如原料短缺或地缘风险)或工艺优化(如连续流合成技术)也会动态影响支出,例如采用绿色化学可将 API 成本降低 20-30%。</p> +<p>总体上,制药成本虽小,但上市后其重要性才开始体现出来,因为一旦药物获批,制造效率直接决定利润率,平均占销售成本的 20-40%。</p> +]]></content> + <tags> + <tag>Medicine</tag> + </tags> + </entry> + <entry> <title>藿香正气水和藿香正气口服液的区别</title> <url>/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/</url> <content><![CDATA[<p>虽然都是口服液体制剂,且看起来单支容量都一样,但是藿香正气水里含有 40%-50% 的乙醇,而藿香正气口服液不含有乙醇。同时藿香正气水不能和头孢一起服用(因为含有酒精),而藿香正气口服液可以和头孢一起服用。在选用之前,还希望大家能仔细看药品名称。</p> diff --git a/tags/Life/index.html b/tags/Life/index.html index caca08f5..c59b4278 100644 --- a/tags/Life/index.html +++ b/tags/Life/index.html @@ -167,6 +167,26 @@ + <div class="year-title">2026</div> + + + <div class="post-list-item"> + <div class="post-title"> + <a href="/2026/02/16/%E8%80%81%E5%B9%B4%E4%BA%BA%E8%90%A5%E5%85%BB%E8%AF%AF%E5%8C%BA/"> + + 老年人营养不良误区 + + </a> + </div> + + <span class="post-date">Feb 16, 2026</span> + </div> + + + + + + <div class="year-title">2025</div> @@ -329,30 +349,12 @@ </div> - - - - - - <div class="post-list-item"> - <div class="post-title"> - <a href="/2024/09/07/%E7%BB%99%E5%AD%A9%E5%AD%90%E4%BB%AC%E7%9A%84%E8%AF%9D/"> - - 什么玩意儿都是 - - </a> - </div> - - <span class="post-date">Sep 7, 2024</span> - </div> - - <div id="paginator"> <div class=paginator> <div class="h-line-primary"></div> <nav class="pagination"> - <span class="page-number current">1</span><a class="page-number" href="/tags/Life/page/2/">2</a> + <span class="page-number current">1</span><a class="page-number" href="/tags/Life/page/2/">2</a><a class="page-number" href="/tags/Life/page/3/">3</a> </nav> </div> diff --git a/tags/Life/page/2/index.html b/tags/Life/page/2/index.html index b188570b..f4937fbb 100644 --- a/tags/Life/page/2/index.html +++ b/tags/Life/page/2/index.html @@ -172,6 +172,24 @@ <div class="post-list-item"> <div class="post-title"> + <a href="/2024/09/07/%E7%BB%99%E5%AD%A9%E5%AD%90%E4%BB%AC%E7%9A%84%E8%AF%9D/"> + + 什么玩意儿都是 + + </a> + </div> + + <span class="post-date">Sep 7, 2024</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> <a href="/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/"> 藿香正气水和藿香正气口服液的区别 @@ -329,30 +347,12 @@ </div> - - - - - - <div class="post-list-item"> - <div class="post-title"> - <a href="/2023/03/01/%E7%BA%AF%E7%89%9B%E5%A5%B6%E5%8F%AF%E4%BB%A5%E5%8A%A0%E7%82%B9%E5%95%A5/"> - - 纯牛奶可以加点啥 - - </a> - </div> - - <span class="post-date">Mar 1, 2023</span> - </div> - - <div id="paginator"> <div class=paginator> <div class="h-line-primary"></div> <nav class="pagination"> - <a class="page-number" href="/tags/Life/">1</a><span class="page-number current">2</span> + <a class="page-number" href="/tags/Life/">1</a><span class="page-number current">2</span><a class="page-number" href="/tags/Life/page/3/">3</a> </nav> </div> diff --git a/tags/Life/page/3/index.html b/tags/Life/page/3/index.html new file mode 100644 index 00000000..7cf32e0f --- /dev/null +++ b/tags/Life/page/3/index.html @@ -0,0 +1,225 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="UTF-8"> +<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> +<meta http-equiv="X-UA-Compatible" content="ie=edge"> + + <meta name="author" content="韩暮秋"> + + + <meta name="subtitle" content="暮秋小屋"> + + + <meta name="description" content="这里是暮秋小屋,思念和灵感的寄存处"> + + + <meta name="keywords" content="韩暮秋,MuqiuHan,'Muqiu Han', 'muqiu han', muqiuhan"> + + + + + <title> + + Tag: Life | + 暮秋小屋 + </title> + + + + <link rel="icon" href="/favicon.ico"> + + + + + <!-- stylesheets list from _config.yml --> + + <link rel="stylesheet" href="/css/style.css"> + + + + + <link rel="preload" href="/fonts/latin-base.woff2" as="font" type="font/woff2" crossorigin> + <link rel="preload" href="/fonts/cjk-common.woff2" as="font" type="font/woff2" crossorigin> + + + + <!-- scripts list from _config.yml --> + + <script + src="/js/menu.js"></script> + + + + + + <script + src="https://polyfill.alicdn.com/polyfill.js?features=es6"></script> + <script + id="MathJax-script" + async + src="https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/mathjax/3.2.0/es5/tex-mml-chtml.js"></script> + + + + + <meta name="generator" content="Hexo 6.3.0"></head> + <body> + <div class="wrapper"> + + <div class="header"> + <div class="flex-container"> + <div class="header-inner"> + <div class="site-brand-container"> + <a href="/"> + + 暮秋小屋 + + </a> + </div> + <div id="menu-btn" class="menu-btn" onclick="toggleMenu()"> + 菜单 + </div> + <nav class="site-nav"> + <ul class="menu-list"> + + + <li class="menu-item"> + <a href="/"> + 主页 + </a> + </li> + + + + <li class="menu-item"> + <a href="/categories/gallery/"> + 日记本 + </a> + </li> + + + + <li class="menu-item"> + <a href="/tags/Medicine/"> + 泛医学 + </a> + </li> + + + + <li class="menu-item"> + <a href="/tags/Technique/"> + 计算机 + </a> + </li> + + + + <li class="menu-item"> + <a href="/tags/Life/"> + 生活 + </a> + </li> + + + + <li class="menu-item"> + <a href="/archives"> + 全部 + </a> + </li> + + + + <li class="menu-item"> + <a href="/about"> + 关于 + </a> + </li> + + + + <li class="menu-item"> + <a href="/search">搜索</a> + </li> + + </ul> + </nav> + </div> + </div> +</div> + + + <div class="main"> + <div class="flex-container"> + <div id="tag"> + + + <p class="tag-title"> + / <a href="/tag/">tags</a> + / <a href="">Life</a> / + </p> + <div class="post-list"> + + + + + + + <div class="year-title">2023</div> + + + <div class="post-list-item"> + <div class="post-title"> + <a href="/2023/03/01/%E7%BA%AF%E7%89%9B%E5%A5%B6%E5%8F%AF%E4%BB%A5%E5%8A%A0%E7%82%B9%E5%95%A5/"> + + 纯牛奶可以加点啥 + + </a> + </div> + + <span class="post-date">Mar 1, 2023</span> + </div> + + + <div id="paginator"> + + <div class=paginator> + <div class="h-line-primary"></div> + <nav class="pagination"> + <a class="page-number" href="/tags/Life/">1</a><a class="page-number" href="/tags/Life/page/2/">2</a><span class="page-number current">3</span> + </nav> + </div> + + </div> +</div> + + + + +</div> + </div> + </div> + + <div class="footer"> + <div class="flex-container"> + <div class="footer-text"> + + + 韩暮秋 | + + + 希望路过的人可以添点柴火让这里暖和点 + + </div> + </div> +</div> + + + </div> + + <script src="/js/mermaid-zoom.js"></script> + + </body> +</html> diff --git a/tags/Medicine/index.html b/tags/Medicine/index.html index 2fbfbb06..931af522 100644 --- a/tags/Medicine/index.html +++ b/tags/Medicine/index.html @@ -187,6 +187,24 @@ + + <div class="post-list-item"> + <div class="post-title"> + <a href="/2026/01/09/%E8%8D%AF%E7%89%A9%E7%A0%94%E5%8F%91%E4%B8%AD%E7%9A%84%E5%88%B6%E8%8D%AF%E6%88%90%E6%9C%AC/"> + + 药物研发中的制药成本 + + </a> + </div> + + <span class="post-date">Jan 9, 2026</span> + </div> + + + + + + <div class="year-title">2025</div> @@ -329,24 +347,6 @@ </div> - - - - - - <div class="post-list-item"> - <div class="post-title"> - <a href="/2025/10/19/Gram-stain/"> - - 什么是 G⁺ - - </a> - </div> - - <span class="post-date">Oct 19, 2025</span> - </div> - - <div id="paginator"> <div class=paginator> diff --git a/tags/Medicine/page/2/index.html b/tags/Medicine/page/2/index.html index f4f701a3..6219541d 100644 --- a/tags/Medicine/page/2/index.html +++ b/tags/Medicine/page/2/index.html @@ -172,6 +172,24 @@ <div class="post-list-item"> <div class="post-title"> + <a href="/2025/10/19/Gram-stain/"> + + 什么是 G⁺ + + </a> + </div> + + <span class="post-date">Oct 19, 2025</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> <a href="/2025/09/09/database-fk-design-in-clinical-medicine/"> 在临床医疗领域中的数据库外键设计取舍 @@ -329,24 +347,6 @@ </div> - - - - - - <div class="post-list-item"> - <div class="post-title"> - <a href="/2024/05/13/%E7%BB%99%E5%B0%B8%E4%BD%93%E4%B8%8A-ECMO-%E5%B9%B6%E7%BB%B4%E6%8C%81%E5%BF%83%E8%B7%B3/"> - - 给尸体上 ECMO 并维持心跳 - - </a> - </div> - - <span class="post-date">May 13, 2024</span> - </div> - - <div id="paginator"> <div class=paginator> diff --git a/tags/Medicine/page/3/index.html b/tags/Medicine/page/3/index.html index 0d901e48..89d00e92 100644 --- a/tags/Medicine/page/3/index.html +++ b/tags/Medicine/page/3/index.html @@ -172,6 +172,24 @@ <div class="post-list-item"> <div class="post-title"> + <a href="/2024/05/13/%E7%BB%99%E5%B0%B8%E4%BD%93%E4%B8%8A-ECMO-%E5%B9%B6%E7%BB%B4%E6%8C%81%E5%BF%83%E8%B7%B3/"> + + 给尸体上 ECMO 并维持心跳 + + </a> + </div> + + <span class="post-date">May 13, 2024</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> <a href="/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/"> 急诊与灾难医学--烧伤 @@ -329,24 +347,6 @@ </div> - - - - - - <div class="post-list-item"> - <div class="post-title"> - <a href="/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/"> - - 血常规化验结果阅读指南 - - </a> - </div> - - <span class="post-date">Oct 12, 2023</span> - </div> - - <div id="paginator"> <div class=paginator> diff --git a/tags/Medicine/page/4/index.html b/tags/Medicine/page/4/index.html index a582ad2c..b92f81ad 100644 --- a/tags/Medicine/page/4/index.html +++ b/tags/Medicine/page/4/index.html @@ -172,6 +172,24 @@ <div class="post-list-item"> <div class="post-title"> + <a href="/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/"> + + 血常规化验结果阅读指南 + + </a> + </div> + + <span class="post-date">Oct 12, 2023</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> <a href="/2023/06/22/%E7%81%AF%E7%AC%BC%E8%8D%89/"> 灯笼草 diff --git a/tags/Technique/index.html b/tags/Technique/index.html index b939f81d..8b15b66d 100644 --- a/tags/Technique/index.html +++ b/tags/Technique/index.html @@ -167,19 +167,19 @@ - <div class="year-title">2025</div> + <div class="year-title">2026</div> <div class="post-list-item"> <div class="post-title"> - <a href="/2025/12/29/FHIR-%E8%AE%B0%E5%BD%95%E6%82%A3%E8%80%85%E7%9A%84%E7%94%A8%E8%8D%AF%E8%AE%B0%E5%BD%95/"> + <a href="/2026/03/16/Nginx-%E5%89%8D%E5%90%8E%E7%AB%AF%E5%90%8C%E5%9F%9F%E5%88%86%E6%B5%81/"> - FHIR 记录患者的用药记录 + Nginx 前后端同域分流 </a> </div> - <span class="post-date">Dec 29, 2025</span> + <span class="post-date">Mar 16, 2026</span> </div> @@ -190,14 +190,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/12/20/%E8%B0%88%E8%B0%88%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B/"> + <a href="/2026/03/12/%E7%AE%80%E5%8D%95%E8%AF%B4%E8%AF%B4-FHIR-Transaction-Bundle/"> - 谈谈软件工程 + 简单说说 FHIR Transaction Bundle </a> </div> - <span class="post-date">Dec 20, 2025</span> + <span class="post-date">Mar 12, 2026</span> </div> @@ -205,17 +205,19 @@ + <div class="year-title">2025</div> + <div class="post-list-item"> <div class="post-title"> - <a href="/2025/09/09/database-fk-design-in-clinical-medicine/"> + <a href="/2025/12/29/FHIR-%E8%AE%B0%E5%BD%95%E6%82%A3%E8%80%85%E7%9A%84%E7%94%A8%E8%8D%AF%E8%AE%B0%E5%BD%95/"> - 在临床医疗领域中的数据库外键设计取舍 + FHIR 记录患者的用药记录 </a> </div> - <span class="post-date">Sep 9, 2025</span> + <span class="post-date">Dec 29, 2025</span> </div> @@ -226,14 +228,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/08/13/nestjs-enableImplicitConversion-and-transform/"> + <a href="/2025/12/20/%E8%B0%88%E8%B0%88%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B/"> - NestJS 中 enableImplicitConversion 与 @Transform 的冲突 + 谈谈软件工程 </a> </div> - <span class="post-date">Aug 13, 2025</span> + <span class="post-date">Dec 20, 2025</span> </div> @@ -244,14 +246,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/07/31/svelte-lazyquery/"> + <a href="/2025/09/09/database-fk-design-in-clinical-medicine/"> - 使用 Runed intersection observer 与 tanstack query 实现通用的惰性加载组件 + 在临床医疗领域中的数据库外键设计取舍 </a> </div> - <span class="post-date">Jul 31, 2025</span> + <span class="post-date">Sep 9, 2025</span> </div> @@ -262,14 +264,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/07/29/nestjs-nested-object-dto/"> + <a href="/2025/08/13/nestjs-enableImplicitConversion-and-transform/"> - NestJS 嵌套查询参数解析错误分析与解决方案 + NestJS 中 enableImplicitConversion 与 @Transform 的冲突 </a> </div> - <span class="post-date">Jul 29, 2025</span> + <span class="post-date">Aug 13, 2025</span> </div> @@ -280,14 +282,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/05/27/vertical-slicing-practice/"> + <a href="/2025/07/31/svelte-lazyquery/"> - Vertical slicing 在开发中的实践探索 + 使用 Runed intersection observer 与 tanstack query 实现通用的惰性加载组件 </a> </div> - <span class="post-date">May 27, 2025</span> + <span class="post-date">Jul 31, 2025</span> </div> @@ -298,14 +300,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/05/08/Multiplayer-Collaborative-Systems-tips/"> + <a href="/2025/07/29/nestjs-nested-object-dto/"> - 多人协作系统中的实现策略 (CRDT,锁等实现方案) + NestJS 嵌套查询参数解析错误分析与解决方案 </a> </div> - <span class="post-date">May 8, 2025</span> + <span class="post-date">Jul 29, 2025</span> </div> @@ -316,14 +318,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/05/07/nestjs-bullmq-mail-business/"> + <a href="/2025/05/27/vertical-slicing-practice/"> - NestJS bullmq 邮件发送业务中的小 tips + Vertical slicing 在开发中的实践探索 </a> </div> - <span class="post-date">May 7, 2025</span> + <span class="post-date">May 27, 2025</span> </div> @@ -334,14 +336,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/04/20/linux-amd-screen-boom/"> + <a href="/2025/05/08/Multiplayer-Collaborative-Systems-tips/"> - Linux 下 AMD 显卡屏幕画面闪烁问题修复方案 + 多人协作系统中的实现策略 (CRDT,锁等实现方案) </a> </div> - <span class="post-date">Apr 20, 2025</span> + <span class="post-date">May 8, 2025</span> </div> diff --git a/tags/Technique/page/2/index.html b/tags/Technique/page/2/index.html index f9b4424a..ff8066c8 100644 --- a/tags/Technique/page/2/index.html +++ b/tags/Technique/page/2/index.html @@ -172,14 +172,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/04/13/uuidv7-rdbms/"> + <a href="/2025/05/07/nestjs-bullmq-mail-business/"> - UUID v7 是如何加快 RDBMS 索引速度的 + NestJS bullmq 邮件发送业务中的小 tips </a> </div> - <span class="post-date">Apr 13, 2025</span> + <span class="post-date">May 7, 2025</span> </div> @@ -190,14 +190,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/04/02/N-1-selects-problem-%E4%B8%8E-Prisma-ORM/"> + <a href="/2025/04/20/linux-amd-screen-boom/"> - N+1 selects problem 与 Prisma ORM + Linux 下 AMD 显卡屏幕画面闪烁问题修复方案 </a> </div> - <span class="post-date">Apr 2, 2025</span> + <span class="post-date">Apr 20, 2025</span> </div> @@ -208,14 +208,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/03/31/%E5%9C%A8F-%E4%B8%AD%E5%A4%84%E7%90%86%E5%A4%8D%E6%9D%82%E4%BE%9D%E8%B5%96%E6%B3%A8%E5%85%A5%E7%9A%84%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/"> + <a href="/2025/04/13/uuidv7-rdbms/"> - 在F#中处理复杂依赖注入的实践指南 + UUID v7 是如何加快 RDBMS 索引速度的 </a> </div> - <span class="post-date">Mar 31, 2025</span> + <span class="post-date">Apr 13, 2025</span> </div> @@ -226,14 +226,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/03/30/F-%E9%87%8D%E8%BD%BD%E8%A7%A3%E6%9E%90%E9%97%AE%E9%A2%98/"> + <a href="/2025/04/02/N-1-selects-problem-%E4%B8%8E-Prisma-ORM/"> - F# 重载解析问题 + N+1 selects problem 与 Prisma ORM </a> </div> - <span class="post-date">Mar 30, 2025</span> + <span class="post-date">Apr 2, 2025</span> </div> @@ -244,14 +244,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/03/30/libdecor-gtk-WARNING-Failed-to-initialize-GTK/"> + <a href="/2025/03/31/%E5%9C%A8F-%E4%B8%AD%E5%A4%84%E7%90%86%E5%A4%8D%E6%9D%82%E4%BE%9D%E8%B5%96%E6%B3%A8%E5%85%A5%E7%9A%84%E5%AE%9E%E8%B7%B5%E6%8C%87%E5%8D%97/"> - libdecor-gtk-WARNING Failed to initialize GTK in VSCode on Wayland + 在F#中处理复杂依赖注入的实践指南 </a> </div> - <span class="post-date">Mar 30, 2025</span> + <span class="post-date">Mar 31, 2025</span> </div> @@ -262,14 +262,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/03/25/Scala-3-Capture-Checking/"> + <a href="/2025/03/30/F-%E9%87%8D%E8%BD%BD%E8%A7%A3%E6%9E%90%E9%97%AE%E9%A2%98/"> - Scala 3 (Capture Checking) + F# 重载解析问题 </a> </div> - <span class="post-date">Mar 25, 2025</span> + <span class="post-date">Mar 30, 2025</span> </div> @@ -280,14 +280,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/03/20/TDD-%E5%92%8C-DDD-%E7%9A%84%E4%B8%80%E4%BA%9B%E5%B0%8F%E6%83%B3%E6%B3%95/"> + <a href="/2025/03/30/libdecor-gtk-WARNING-Failed-to-initialize-GTK/"> - TDD 和 DDD 的一些小想法 + libdecor-gtk-WARNING Failed to initialize GTK in VSCode on Wayland </a> </div> - <span class="post-date">Mar 20, 2025</span> + <span class="post-date">Mar 30, 2025</span> </div> @@ -298,14 +298,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/03/19/%E9%A2%86%E5%9F%9F%E9%A9%B1%E5%8A%A8%E8%AE%BE%E8%AE%A1%E4%B8%AD%E8%81%9A%E5%90%88%E6%A0%B9%E6%8C%81%E4%B9%85%E5%8C%96%E5%92%8C%E4%BA%8B%E4%BB%B6%E5%8F%91%E5%B8%83%E5%8F%AF%E8%83%BD%E5%AF%BC%E8%87%B4%E6%95%B0%E6%8D%AE%E4%B8%8D%E4%B8%80%E8%87%B4%E9%97%AE%E9%A2%98/"> + <a href="/2025/03/25/Scala-3-Capture-Checking/"> - 领域驱动设计中聚合根持久化和事件发布可能导致数据不一致问题 + Scala 3 (Capture Checking) </a> </div> - <span class="post-date">Mar 19, 2025</span> + <span class="post-date">Mar 25, 2025</span> </div> @@ -316,14 +316,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/03/14/DDD-%E4%B8%AD%E7%9A%84-Ubiquitous-Languages/"> + <a href="/2025/03/20/TDD-%E5%92%8C-DDD-%E7%9A%84%E4%B8%80%E4%BA%9B%E5%B0%8F%E6%83%B3%E6%B3%95/"> - DDD 中的 Ubiquitous Language + TDD 和 DDD 的一些小想法 </a> </div> - <span class="post-date">Mar 14, 2025</span> + <span class="post-date">Mar 20, 2025</span> </div> @@ -334,14 +334,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/03/13/%E9%A2%86%E5%9F%9F%E9%A9%B1%E5%8A%A8%E8%AE%BE%E8%AE%A1%E4%B8%AD%E7%9A%84%E2%80%9C%E8%81%9A%E5%90%88%E6%A0%B9%E2%80%9D/"> + <a href="/2025/03/19/%E9%A2%86%E5%9F%9F%E9%A9%B1%E5%8A%A8%E8%AE%BE%E8%AE%A1%E4%B8%AD%E8%81%9A%E5%90%88%E6%A0%B9%E6%8C%81%E4%B9%85%E5%8C%96%E5%92%8C%E4%BA%8B%E4%BB%B6%E5%8F%91%E5%B8%83%E5%8F%AF%E8%83%BD%E5%AF%BC%E8%87%B4%E6%95%B0%E6%8D%AE%E4%B8%8D%E4%B8%80%E8%87%B4%E9%97%AE%E9%A2%98/"> - 领域驱动设计中的“聚合根” + 领域驱动设计中聚合根持久化和事件发布可能导致数据不一致问题 </a> </div> - <span class="post-date">Mar 13, 2025</span> + <span class="post-date">Mar 19, 2025</span> </div> diff --git a/tags/Technique/page/3/index.html b/tags/Technique/page/3/index.html index 433d1553..a614adad 100644 --- a/tags/Technique/page/3/index.html +++ b/tags/Technique/page/3/index.html @@ -172,14 +172,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/02/19/Repository-pattern-in-Typescript/"> + <a href="/2025/03/14/DDD-%E4%B8%AD%E7%9A%84-Ubiquitous-Languages/"> - Repository pattern in Typescript + DDD 中的 Ubiquitous Language </a> </div> - <span class="post-date">Feb 19, 2025</span> + <span class="post-date">Mar 14, 2025</span> </div> @@ -190,14 +190,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/02/18/Prisma-%E5%85%B3%E7%B3%BB%E5%9E%8B%E6%95%B0%E6%8D%AE%E5%BA%93%E7%9A%84-Self-relations/"> + <a href="/2025/03/13/%E9%A2%86%E5%9F%9F%E9%A9%B1%E5%8A%A8%E8%AE%BE%E8%AE%A1%E4%B8%AD%E7%9A%84%E2%80%9C%E8%81%9A%E5%90%88%E6%A0%B9%E2%80%9D/"> - Prisma 关系型数据库的 Self-relations + 领域驱动设计中的“聚合根” </a> </div> - <span class="post-date">Feb 18, 2025</span> + <span class="post-date">Mar 13, 2025</span> </div> @@ -208,14 +208,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2025/02/11/%E4%BB%8E%E4%BA%8B%E4%BB%B6%E9%A3%8E%E6%9A%B4%E7%9C%8B%E9%A2%86%E5%9F%9F%E9%A9%B1%E5%8A%A8%E8%AE%BE%E8%AE%A1/"> + <a href="/2025/02/19/Repository-pattern-in-Typescript/"> - 从事件风暴看领域驱动设计 + Repository pattern in Typescript </a> </div> - <span class="post-date">Feb 11, 2025</span> + <span class="post-date">Feb 19, 2025</span> </div> @@ -226,14 +226,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/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/"> + <a href="/2025/02/18/Prisma-%E5%85%B3%E7%B3%BB%E5%9E%8B%E6%95%B0%E6%8D%AE%E5%BA%93%E7%9A%84-Self-relations/"> - 实时搜索中的防抖函数 + Prisma 关系型数据库的 Self-relations </a> </div> - <span class="post-date">Feb 10, 2025</span> + <span class="post-date">Feb 18, 2025</span> </div> @@ -241,19 +241,17 @@ - <div class="year-title">2024</div> - <div class="post-list-item"> <div class="post-title"> - <a href="/2024/12/15/OCaml-News-2024-7/"> + <a href="/2025/02/11/%E4%BB%8E%E4%BA%8B%E4%BB%B6%E9%A3%8E%E6%9A%B4%E7%9C%8B%E9%A2%86%E5%9F%9F%E9%A9%B1%E5%8A%A8%E8%AE%BE%E8%AE%A1/"> - OCaml News 2024-7 + 从事件风暴看领域驱动设计 </a> </div> - <span class="post-date">Dec 15, 2024</span> + <span class="post-date">Feb 11, 2025</span> </div> @@ -264,14 +262,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/10/18/10-Tips-for-Productive-FSharp-Scripting/"> + <a href="/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/"> - 10 Tips for Productive FSharp Scripting + 实时搜索中的防抖函数 </a> </div> - <span class="post-date">Oct 18, 2024</span> + <span class="post-date">Feb 10, 2025</span> </div> @@ -279,17 +277,19 @@ + <div class="year-title">2024</div> + <div class="post-list-item"> <div class="post-title"> - <a href="/2024/10/18/Building-custom-fibers-library-in-FSharp/"> + <a href="/2024/12/15/OCaml-News-2024-7/"> - Building custom fibers library in FSharp + OCaml News 2024-7 </a> </div> - <span class="post-date">Oct 18, 2024</span> + <span class="post-date">Dec 15, 2024</span> </div> @@ -300,9 +300,9 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/10/18/Dealing-with-complex-dependency-injection-in-FSharp/"> + <a href="/2024/10/18/10-Tips-for-Productive-FSharp-Scripting/"> - Dealing with complex dependency injection in FSharp + 10 Tips for Productive FSharp Scripting </a> </div> @@ -318,14 +318,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/10/06/Obsidian-Vault-%E7%9A%84-obsidian-%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E5%90%84%E6%96%87%E4%BB%B6%E4%BD%9C%E7%94%A8/"> + <a href="/2024/10/18/Building-custom-fibers-library-in-FSharp/"> - Obsidian Vault 的 .obsidian 目录中的各文件作用 + Building custom fibers library in FSharp </a> </div> - <span class="post-date">Oct 6, 2024</span> + <span class="post-date">Oct 18, 2024</span> </div> @@ -336,14 +336,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/09/27/Turborepo-%E7%AE%80%E8%BF%B0/"> + <a href="/2024/10/18/Dealing-with-complex-dependency-injection-in-FSharp/"> - Turborepo 简述 + Dealing with complex dependency injection in FSharp </a> </div> - <span class="post-date">Sep 27, 2024</span> + <span class="post-date">Oct 18, 2024</span> </div> diff --git a/tags/Technique/page/4/index.html b/tags/Technique/page/4/index.html index ed2ad2e0..d056ad37 100644 --- a/tags/Technique/page/4/index.html +++ b/tags/Technique/page/4/index.html @@ -172,14 +172,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/09/15/Advanced-C-binding-using-ocaml-ctypes-and-dune/"> + <a href="/2024/10/06/Obsidian-Vault-%E7%9A%84-obsidian-%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E5%90%84%E6%96%87%E4%BB%B6%E4%BD%9C%E7%94%A8/"> - Advanced C binding using ocaml-ctypes and dune + Obsidian Vault 的 .obsidian 目录中的各文件作用 </a> </div> - <span class="post-date">Sep 15, 2024</span> + <span class="post-date">Oct 6, 2024</span> </div> @@ -190,14 +190,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/09/12/Functional-Reactive-Programming-in-F/"> + <a href="/2024/09/27/Turborepo-%E7%AE%80%E8%BF%B0/"> - Functional Reactive Programming in F# + Turborepo 简述 </a> </div> - <span class="post-date">Sep 12, 2024</span> + <span class="post-date">Sep 27, 2024</span> </div> @@ -208,14 +208,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/07/23/OCaml-News-2024-6/"> + <a href="/2024/09/15/Advanced-C-binding-using-ocaml-ctypes-and-dune/"> - OCaml News 2024-6 + Advanced C binding using ocaml-ctypes and dune </a> </div> - <span class="post-date">Jul 23, 2024</span> + <span class="post-date">Sep 15, 2024</span> </div> @@ -226,14 +226,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/07/01/OCaml-News-2024-4/"> + <a href="/2024/09/12/Functional-Reactive-Programming-in-F/"> - OCaml News 2024-4 + Functional Reactive Programming in F# </a> </div> - <span class="post-date">Jul 1, 2024</span> + <span class="post-date">Sep 12, 2024</span> </div> @@ -244,14 +244,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/06/27/OCaml-News-2024-5/"> + <a href="/2024/07/23/OCaml-News-2024-6/"> - OCaml News 2024-5 + OCaml News 2024-6 </a> </div> - <span class="post-date">Jun 27, 2024</span> + <span class="post-date">Jul 23, 2024</span> </div> @@ -262,14 +262,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/06/06/NET-AOT-%E4%B8%8B%E7%9A%84-F-%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%8F%82%E6%95%B0%E8%A7%A3%E6%9E%90%E5%BA%93%E9%80%89%E6%8B%A9/"> + <a href="/2024/07/01/OCaml-News-2024-4/"> - .NET AOT 下的 F# 命令行参数解析库选择 + OCaml News 2024-4 </a> </div> - <span class="post-date">Jun 6, 2024</span> + <span class="post-date">Jul 1, 2024</span> </div> @@ -280,14 +280,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/05/20/Rescript-genType-import-%E9%97%AE%E9%A2%98/"> + <a href="/2024/06/27/OCaml-News-2024-5/"> - Rescript @genType import 问题 + OCaml News 2024-5 </a> </div> - <span class="post-date">May 20, 2024</span> + <span class="post-date">Jun 27, 2024</span> </div> @@ -298,14 +298,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/04/03/shadow-cljs-proxy/"> + <a href="/2024/06/06/NET-AOT-%E4%B8%8B%E7%9A%84-F-%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%8F%82%E6%95%B0%E8%A7%A3%E6%9E%90%E5%BA%93%E9%80%89%E6%8B%A9/"> - shadow-cljs 怎么设置代理 + .NET AOT 下的 F# 命令行参数解析库选择 </a> </div> - <span class="post-date">Apr 3, 2024</span> + <span class="post-date">Jun 6, 2024</span> </div> @@ -316,14 +316,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/02/26/OCaml-News-2024-3/"> + <a href="/2024/05/20/Rescript-genType-import-%E9%97%AE%E9%A2%98/"> - OCaml News 2024-3 + Rescript @genType import 问题 </a> </div> - <span class="post-date">Feb 26, 2024</span> + <span class="post-date">May 20, 2024</span> </div> @@ -334,14 +334,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/01/23/G-Machine/"> + <a href="/2024/04/03/shadow-cljs-proxy/"> - G-Machine + shadow-cljs 怎么设置代理 </a> </div> - <span class="post-date">Jan 23, 2024</span> + <span class="post-date">Apr 3, 2024</span> </div> diff --git a/tags/Technique/page/5/index.html b/tags/Technique/page/5/index.html index 7d494d83..0d6871df 100644 --- a/tags/Technique/page/5/index.html +++ b/tags/Technique/page/5/index.html @@ -172,14 +172,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/01/22/Rescript-React-Native/"> + <a href="/2024/02/26/OCaml-News-2024-3/"> - Rescript and React Native + OCaml News 2024-3 </a> </div> - <span class="post-date">Jan 22, 2024</span> + <span class="post-date">Feb 26, 2024</span> </div> @@ -190,14 +190,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/01/18/OCaml-News-2024-2/"> + <a href="/2024/01/23/G-Machine/"> - OCaml News 2024-2 + G-Machine </a> </div> - <span class="post-date">Jan 18, 2024</span> + <span class="post-date">Jan 23, 2024</span> </div> @@ -208,14 +208,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2024/01/08/OCaml-News-2024-1/"> + <a href="/2024/01/22/Rescript-React-Native/"> - OCaml News 2024-1 + Rescript and React Native </a> </div> - <span class="post-date">Jan 8, 2024</span> + <span class="post-date">Jan 22, 2024</span> </div> @@ -223,19 +223,17 @@ - <div class="year-title">2023</div> - <div class="post-list-item"> <div class="post-title"> - <a href="/2023/10/21/OCaml-Core-Int-pow-%E7%9A%84%E5%AE%9E%E7%8E%B0/"> + <a href="/2024/01/18/OCaml-News-2024-2/"> - OCaml Core.Int.pow 的实现 + OCaml News 2024-2 </a> </div> - <span class="post-date">Oct 21, 2023</span> + <span class="post-date">Jan 18, 2024</span> </div> @@ -246,14 +244,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/10/05/v8%E4%B8%AD%E7%9A%84Number-toString/"> + <a href="/2024/01/08/OCaml-News-2024-1/"> - v8中的Number.toString() + OCaml News 2024-1 </a> </div> - <span class="post-date">Oct 5, 2023</span> + <span class="post-date">Jan 8, 2024</span> </div> @@ -261,17 +259,19 @@ + <div class="year-title">2023</div> + <div class="post-list-item"> <div class="post-title"> - <a href="/2023/09/28/A-Brief-History-of-Just-In-Time/"> + <a href="/2023/10/21/OCaml-Core-Int-pow-%E7%9A%84%E5%AE%9E%E7%8E%B0/"> - A Brief History of Just-In-Time + OCaml Core.Int.pow 的实现 </a> </div> - <span class="post-date">Sep 28, 2023</span> + <span class="post-date">Oct 21, 2023</span> </div> @@ -282,14 +282,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/08/15/tick-thread%E5%9C%A8Multicore-OCaml%E4%B8%AD%E7%9A%84%E4%BD%9C%E7%94%A8/"> + <a href="/2023/10/05/v8%E4%B8%AD%E7%9A%84Number-toString/"> - tick thread在Multicore OCaml中的作用 + v8中的Number.toString() </a> </div> - <span class="post-date">Aug 15, 2023</span> + <span class="post-date">Oct 5, 2023</span> </div> @@ -300,14 +300,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/08/15/poll-error-attribute-in-OCaml/"> + <a href="/2023/09/28/A-Brief-History-of-Just-In-Time/"> - 使用 [@poll error] 实现线程安全的数据结构 + A Brief History of Just-In-Time </a> </div> - <span class="post-date">Aug 15, 2023</span> + <span class="post-date">Sep 28, 2023</span> </div> @@ -318,14 +318,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/07/21/WiscKey-Separating-Keys-from-Values-in-SSD-conscious-Storage/"> + <a href="/2023/08/15/tick-thread%E5%9C%A8Multicore-OCaml%E4%B8%AD%E7%9A%84%E4%BD%9C%E7%94%A8/"> - WiscKey: Separating Keys from Values in SSD-conscious Storage + tick thread在Multicore OCaml中的作用 </a> </div> - <span class="post-date">Jul 21, 2023</span> + <span class="post-date">Aug 15, 2023</span> </div> @@ -336,14 +336,14 @@ <div class="post-list-item"> <div class="post-title"> - <a href="/2023/06/28/%E9%9A%90%E8%97%8F%E4%B8%80%E4%BA%9BOCaml-Effect%E7%9A%84%E6%9C%BA%E5%88%B6%EF%BC%8C%E8%AE%A9%E5%85%B6%E8%AF%AD%E6%B3%95%E5%9C%A8%E7%B2%BE%E7%A5%9E%E4%B8%8A%E6%9B%B4%E6%8E%A5%E8%BF%91delimcc/"> + <a href="/2023/08/15/poll-error-attribute-in-OCaml/"> - 隐藏一些OCaml Effect的机制,让其语法在精神上更接近delimcc + 使用 [@poll error] 实现线程安全的数据结构 </a> </div> - <span class="post-date">Jun 28, 2023</span> + <span class="post-date">Aug 15, 2023</span> </div> diff --git a/tags/Technique/page/6/index.html b/tags/Technique/page/6/index.html index 32077d06..e7390a5e 100644 --- a/tags/Technique/page/6/index.html +++ b/tags/Technique/page/6/index.html @@ -172,6 +172,42 @@ <div class="post-list-item"> <div class="post-title"> + <a href="/2023/07/21/WiscKey-Separating-Keys-from-Values-in-SSD-conscious-Storage/"> + + WiscKey: Separating Keys from Values in SSD-conscious Storage + + </a> + </div> + + <span class="post-date">Jul 21, 2023</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> + <a href="/2023/06/28/%E9%9A%90%E8%97%8F%E4%B8%80%E4%BA%9BOCaml-Effect%E7%9A%84%E6%9C%BA%E5%88%B6%EF%BC%8C%E8%AE%A9%E5%85%B6%E8%AF%AD%E6%B3%95%E5%9C%A8%E7%B2%BE%E7%A5%9E%E4%B8%8A%E6%9B%B4%E6%8E%A5%E8%BF%91delimcc/"> + + 隐藏一些OCaml Effect的机制,让其语法在精神上更接近delimcc + + </a> + </div> + + <span class="post-date">Jun 28, 2023</span> + </div> + + + + + + + + <div class="post-list-item"> + <div class="post-title"> <a href="/2023/06/28/caml-release-runtime-system%E5%AF%BC%E8%87%B4%E7%9A%84%E6%AD%BB%E9%94%81%E9%97%AE%E9%A2%98/"> caml_release_runtime_system导致的死锁问题 |
