Repository navigation
Expand file tree
/
Copy pathindex.html
More file actions
570 lines (537 loc) · 55.1 KB
/
Copy pathindex.html
File metadata and controls
570 lines (537 loc) · 55.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
<meta name="referrer" content="no-referrer-when-downgrade">
<link rel="dns-prefetch" href="https://gitbolg-d7gmnsrw46e011706-1256429518.tcloudbaseapp.com">
<link rel="preconnect" href="https://gitbolg-d7gmnsrw46e011706-1256429518.tcloudbaseapp.com" crossorigin>
<link rel="prefetch" href="https://gitbolg-d7gmnsrw46e011706-1256429518.tcloudbaseapp.com/pv-beacon.html?env=gitbolg-d7gmnsrw46e011706&region=ap-shanghai&fn=gitblog-comments&v=20260627010000" as="document">
<title>小红鸡 · 记录想法与代码</title>
<meta name="description" content="桃李春风一杯酒,江湖夜雨十年灯。">
<link rel="alternate" type="application/rss+xml" title="RSS" href="rss.xml">
<link rel="stylesheet" href="assets/dist/common.min.css?v=20260627010000">
<link rel="stylesheet" href="assets/dist/home.min.css?v=20260627010000">
<script>(function(){var s=localStorage;var t=s.getItem('blog_theme')||'auto';var d=t==='auto'?(window.matchMedia('(prefers-color-scheme: dark)').matches?'dark':'light'):t;var p=s.getItem('blog_preset')||'jianshu';var h=document.documentElement;h.setAttribute('data-preset',p);h.setAttribute('data-mode',d);h.setAttribute('data-theme',d);h.dataset.themeChoice=t;})();</script>
<style id="critical-home">
:root{--nav-height:60px;--content-max:980px;--radius:6px;--radius-lg:10px;--primary:#EA6F5A;--text-main:#2F2F2F;--text-secondary:#6B6B6B;--text-tertiary:#9C9C9C;--border:#ECECEC;--bg:#FFF;--bg-soft:#F8F8F8;--nav-bg:rgba(255,255,255,.85);--shadow:0 1px 3px rgba(0,0,0,.04)}
:root[data-mode=dark],:root[data-theme=dark]{--text-main:#E6E6E6;--text-secondary:#A3A3A3;--border:#2A2A2D;--bg:#131316;--bg-soft:#1A1A1E;--nav-bg:rgba(19,19,22,.78)}
html,body{margin:0;color:var(--text-main);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;line-height:1.7;-webkit-font-smoothing:antialiased}
html{background:var(--bg)}
body{background:transparent}
body{padding-top:var(--nav-height)}
[hidden]{display:none!important}
#site-nav{position:fixed;top:0;left:0;right:0;width:100%;z-index:100}
.nav{position:relative;height:var(--nav-height);background:var(--nav-bg);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 24px}
.nav-inner{width:100%;max-width:1200px;margin:0 auto;height:100%;display:flex;align-items:center;gap:18px}
.nav-logo{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--text-main)}
.nav-links{display:flex;gap:2px;flex:0 1 auto;overflow:hidden}
.nav-link{padding:8px 12px;border-radius:var(--radius);font-size:14px;color:var(--text-secondary);white-space:nowrap}
.nav-spacer{flex:1}
.hero{max-width:var(--content-max);margin:28px auto 0;border-radius:var(--radius-lg);background:linear-gradient(135deg,rgba(234,111,90,.08),rgba(234,111,90,.02))}
.hero-link{display:flex;align-items:center;gap:26px;padding:32px 24px;color:inherit;text-decoration:none}
.hero-avatar-wrap{width:72px;height:72px;flex:0 0 auto}
.hero-avatar{width:100%;height:100%;border-radius:50%;background-size:cover;background-position:center;background-color:var(--bg-soft)}
.layout{max-width:var(--content-max);margin:0 auto;padding:0 24px;display:grid;grid-template-columns:1fr 260px;gap:36px;align-items:start}
.home-carousel{max-width:var(--content-max);margin:18px auto 0;padding:0 24px}
@media(min-width:881px){.sidebar{position:sticky;top:calc(var(--nav-height) + 16px);align-self:start;max-height:calc(100vh - var(--nav-height) - 32px);overflow-y:auto}}
.carousel-viewport{position:relative;height:260px;border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-soft)}
.post-list{list-style:none;margin:0;padding:0}
.post-item{display:flex;gap:22px;padding:20px 4px;border-bottom:1px solid var(--border)}
.post-content{flex:1;min-width:0}
.post-title{font-size:18px;font-weight:700;margin:0 0 8px;line-height:1.5}
@media(max-width:880px){.layout{grid-template-columns:1fr}.sidebar{display:none}}
@media(max-width:820px){.nav-links{display:none}}
@media(max-width:720px){:root{--nav-height:56px}.nav{padding:0 12px}.hero{margin:8px 12px 0}.layout{padding:0 14px}.home-carousel{padding:0 14px}.carousel-viewport{height:180px}.hero-link{padding:4px 12px}}
</style>
<link rel="manifest" href="manifest.webmanifest">
<meta name="theme-color" content="#ea6f5a">
<link rel="apple-touch-icon" href="assets/icon.svg">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="author" content="Jimmy">
<meta name="robots" content="index, follow">
<meta property="og:title" content="小红鸡">
<meta property="og:description" content="桃李春风一杯酒,江湖夜雨十年灯。">
<meta property="og:image" content="https://gitpull.cn/assets/uploads/2026/05/touxiang.webp">
<meta property="og:url" content="https://gitpull.cn/">
<meta property="og:type" content="website">
<meta property="og:site_name" content="小红鸡">
<meta property="og:locale" content="zh-CN">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="小红鸡">
<meta name="twitter:description" content="桃李春风一杯酒,江湖夜雨十年灯。">
<meta name="twitter:image" content="https://gitpull.cn/assets/uploads/2026/05/touxiang.webp">
<link rel="canonical" href="https://gitpull.cn/">
<script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","name":"小红鸡","description":"桃李春风一杯酒,江湖夜雨十年灯。","url":"https://gitpull.cn/","inLanguage":"zh-CN","publisher":{"@type":"Person","name":"Jimmy","image":"https://gitpull.cn/assets/uploads/2026/05/touxiang.webp"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://gitpull.cn/?q={search_term_string}"},"query-input":"required name=search_term_string"}}</script>
<script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization","name":"小红鸡","url":"https://gitpull.cn/","logo":"/assets/%E7%BA%B8%E9%A3%9E%E6%9C%BA.svg"}</script>
</head>
<body>
<a href="#main-content" class="skip-to-content">跳到内容</a>
<div id="site-nav">
<nav class="nav">
<div class="nav-inner">
<button id="navMenuBtn" class="icon-btn nav-menu-btn" type="button" aria-label="菜单">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
</button>
<a class="nav-logo" href="/">
<img class="nav-logo-img" src="https://gitpull.cn/assets/%E7%BA%B8%E9%A3%9E%E6%9C%BA.svg" alt="小红鸡">
<span>小红鸡</span>
</a>
<div class="nav-links"><a class="nav-link active" href="/">首页</a><a class="nav-link" href="/archives.html">归档</a><a class="nav-link" href="/series.html">系列</a><a class="nav-link" href="/tools/">工具</a><a class="nav-link" href="/notes.html">留言板</a><a class="nav-link" href="/post/about/">关于</a><a class="nav-link" href="https://yuanqi.tencent.com/webim/#/chat/RhQLBj?appid=2068988279428657408" target="_blank" rel="noopener noreferrer">小助手</a></div>
<div class="nav-spacer"></div>
<button id="searchBtn" class="icon-btn" title="搜索" aria-label="搜索">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg>
</button>
<button id="themeToggle" class="icon-btn" title="切换日 / 月 / 自动" aria-label="切换日 / 月 / 自动">
<svg class="icon-light" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<circle cx="12" cy="12" r="4"/>
<path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41"/>
</svg>
<svg class="icon-dark" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/>
</svg>
<svg class="icon-auto" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<circle cx="12" cy="12" r="9"/>
<path d="M12 3v18M3 12a9 9 0 0 1 9-9v18a9 9 0 0 1-9-9z" fill="currentColor" stroke="none"/>
</svg>
</button>
<button id="presetToggle" class="icon-btn" title="选择主题" aria-label="选择主题">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<circle cx="12" cy="12" r="9"/>
<path d="M12 21a9 9 0 1 0-9-9c0 5 4 5 6 4s2-2 1-3-1-2 1-2 4 0 4-3" fill="currentColor" stroke="none" opacity="0.85"/>
</svg>
</button>
<a class="btn-write" href="/admin/" title="进入创作后台">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 20h9"></path><path d="M16.5 3.5a2.121 2.121 0 113 3L7 19l-4 1 1-4L16.5 3.5z"></path></svg>
<span class="btn-write-label">创作</span>
</a>
</div>
</nav>
<div id="navDrawer" class="nav-drawer is-hidden" aria-hidden="true">
<div class="nav-drawer-panel">
<div class="nav-drawer-header">
<span>导航</span>
<button id="navDrawerClose" class="icon-btn" type="button" aria-label="关闭">
<svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
</button>
</div>
<div class="nav-drawer-links"><a class="nav-drawer-link active" href="/">首页</a><a class="nav-drawer-link" href="/archives.html">归档</a><a class="nav-drawer-link" href="/series.html">系列</a><a class="nav-drawer-link" href="/tools/">工具</a><a class="nav-drawer-link" href="/notes.html">留言板</a><a class="nav-drawer-link" href="/post/about/">关于</a><a class="nav-drawer-link" href="https://yuanqi.tencent.com/webim/#/chat/RhQLBj?appid=2068988279428657408" target="_blank" rel="noopener noreferrer">小助手</a></div>
<a class="nav-drawer-cta" href="/admin/">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 20h9"/><path d="M16.5 3.5a2.121 2.121 0 113 3L7 19l-4 1 1-4L16.5 3.5z"/></svg>
进入创作后台
</a>
</div>
</div>
</div>
<section class="hero" id="hero" data-shell="prerender">
<a class="hero-link" href="/post/about/" aria-label="关于本站">
<div class="hero-avatar-wrap">
<div class="hero-avatar" style="background-image:url(https://gitpull.cn/assets/uploads/2026/05/touxiang.webp)"></div>
</div>
<div class="hero-info">
<div class="hero-subtitle">桃李春风一杯酒,江湖夜雨十年灯。</div>
<div class="hero-stats">
<div class="stat"><strong>70</strong>篇文章</div>
<div class="stat"><strong>20</strong>个标签</div>
<div class="stat stat-recent"><span class="stat-label">最近更新</span><strong>刚刚</strong></div>
<div class="stat saobby-slot saobby-slot-stat" data-saobby-slot="site" data-saobby-prefix="人来过" data-build-pv="5351"><strong class="saobby-num gitblog-pv-num">5351</strong><span class="saobby-label">人来过</span></div>
</div>
</div>
<span class="hero-arrow" aria-hidden="true">›</span>
</a>
</section>
<section class="home-carousel" id="homeCarousel" data-shell="prerender">
<div class="carousel-viewport">
<a class="carousel-slide active" href="/post/20260929/" aria-label="vpn-skill:对 AI 说一句话,帮你把自建 VPN 装好并连上">
<img src="assets/uploads/2026/09/vpn-skill-cover.svg" data-full-src="assets/uploads/2026/09/vpn-skill-cover.svg" alt="vpn-skill:对 AI 说一句话,帮你把自建 VPN 装好并连上" loading="eager" decoding="async" fetchpriority="high" class="lazy-pending progressive-img">
<span class="carousel-shade"></span>
<span class="carousel-content">
<span class="carousel-badge">精选文章</span>
<strong>vpn-skill:对 AI 说一句话,帮你把自建 VPN 装好并连上</strong>
<em>复制一句话给 AI,把服务器登录方式写进去,它连 skill 一起装上,然后在你服务器上装服务端、在你电脑上装客户端、连上并告诉你出口 IP。也附了后续更多一句话指令和不用 AI 的命令行用法。</em>
</span>
</a>
<a class="carousel-slide" href="/post/20260925/" aria-label="从零开始:装上 DeepSeek Harness,让 AI 帮我修好一个装不上的浏览器插件">
<img src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%204%203%22%2F%3E" data-src="assets/uploads/2026/09/dsh-desktop-cover.thumb.webp" data-thumb="assets/uploads/2026/09/dsh-desktop-cover.thumb.webp" data-full-src="assets/uploads/2026/09/dsh-desktop-cover.webp" alt="从零开始:装上 DeepSeek Harness,让 AI 帮我修好一个装不上的浏览器插件" loading="lazy" decoding="async" fetchpriority="low" class="lazy-pending progressive-img">
<span class="carousel-shade"></span>
<span class="carousel-content">
<span class="carousel-badge">精选文章</span>
<strong>从零开始:装上 DeepSeek Harness,让 AI 帮我修好一个装不上的浏览器插件</strong>
<em>给完全没用过 AI 编程工具的人:5 分钟装好 DeepSeek Harness、5 分钟配好 DeepSeek API Key(注册/充值/取 Key 全流程截图),再附上一段可以直接复制使用的 prompt 模板。</em>
</span>
</a>
<a class="carousel-slide" href="/post/20260814/" aria-label="dsh-remote——给 DeepSeek Harness 的多机远程工作区">
<img src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%204%203%22%2F%3E" data-full-src="assets/uploads/2026/08/dshremote-picker.svg" alt="dsh-remote——给 DeepSeek Harness 的多机远程工作区" loading="lazy" decoding="async" fetchpriority="low" class="lazy-pending progressive-img">
<span class="carousel-shade"></span>
<span class="carousel-content">
<span class="carousel-badge">精选文章</span>
<strong>dsh-remote——给 DeepSeek Harness 的多机远程工作区</strong>
<em>一个让 Agent 在多台 SSH 机器上「选目录即工作」的插件:多机管理、双 tab 工作区选择器(本机系统文件夹 or 远程目录)、远程目录本地镜像 + 双向 SFTP 同步,全程不改 harness 核心。</em>
</span>
</a>
<a class="carousel-slide" href="/post/20260618/" aria-label="海门回声 | 黑鬼">
<img src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%204%203%22%2F%3E" data-src="assets/uploads/2026/06/heigui-cover.thumb.webp" data-thumb="assets/uploads/2026/06/heigui-cover.thumb.webp" data-full-src="assets/uploads/2026/06/heigui-cover.webp" alt="海门回声 | 黑鬼" loading="lazy" decoding="async" fetchpriority="low" class="lazy-pending progressive-img">
<span class="carousel-shade"></span>
<span class="carousel-content">
<span class="carousel-badge">精选文章</span>
<strong>海门回声 | 黑鬼</strong>
<em>黑鬼已经死了好多年了,大概在我上初中还是高中的时候。听大人们说,是在某一年的春节里,二月的天气还很冷,他像往常一样被铁链子拴在家院子前面的小屋子里,有好几天家人忘了给他送饭,便饿死了。也有人说是冻死的。我后来真的见过他——脸发青,像苔藓,不像电视剧里画着黑眼圈的饿汉。</em>
</span>
</a>
<a class="carousel-slide" href="/post/20260617/" aria-label="QQ 经典农场辅助:挂机收菜、种菜、偷菜的一键工具">
<img src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%204%203%22%2F%3E" data-src="assets/uploads/2026/06/covers/qq-farm-assistant-经典农场辅助.thumb.webp" data-thumb="assets/uploads/2026/06/covers/qq-farm-assistant-经典农场辅助.thumb.webp" data-full-src="assets/uploads/2026/06/covers/qq-farm-assistant-经典农场辅助.webp" alt="QQ 经典农场辅助:挂机收菜、种菜、偷菜的一键工具" loading="lazy" decoding="async" fetchpriority="low" class="lazy-pending progressive-img">
<span class="carousel-shade"></span>
<span class="carousel-content">
<span class="carousel-badge">精选文章</span>
<strong>QQ 经典农场辅助:挂机收菜、种菜、偷菜的一键工具</strong>
<em>一个跑在 Windows 上的 QQ 经典农场(微信小游戏)桌面辅助:用图像识别锁定微信窗口,自动收菜、补种、逛好友农场偷菜,支持虚拟机前台挂机。双击 init.bat 初始化,双击 start.bat 开跑,日志写在 logs/daemon.log。</em>
</span>
</a>
<a class="carousel-slide" href="/post/20260615/" aria-label="用 AI 做好软件项目:上下文工程实践指南">
<img src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%204%203%22%2F%3E" data-src="assets/uploads/2026/06/1781499659393-4hzbpp-image.thumb.webp" data-thumb="assets/uploads/2026/06/1781499659393-4hzbpp-image.thumb.webp" data-full-src="assets/uploads/2026/06/1781499659393-4hzbpp-image.webp" alt="用 AI 做好软件项目:上下文工程实践指南" loading="lazy" decoding="async" fetchpriority="low" class="lazy-pending progressive-img">
<span class="carousel-shade"></span>
<span class="carousel-content">
<span class="carousel-badge">精选文章</span>
<strong>用 AI 做好软件项目:上下文工程实践指南</strong>
<em>在复杂软件项目中引入 AI,常见困境不是模型不够强,而是 每次会话都在重复建立上下文 ——Agent 全量读取大文件、反复追问架构、上一轮的结论无法延续、任务边…</em>
</span>
</a>
<a class="carousel-slide" href="/post/20260601/" aria-label="PeerCache:一个去中心化的 RDMA 零拷贝 KV 缓存后端">
<img src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%204%203%22%2F%3E" data-src="assets/uploads/2026/06/peercache_scaling_ladder.thumb.webp" data-thumb="assets/uploads/2026/06/peercache_scaling_ladder.thumb.webp" data-full-src="assets/uploads/2026/06/peercache_scaling_ladder.webp" alt="PeerCache:一个去中心化的 RDMA 零拷贝 KV 缓存后端" loading="lazy" decoding="async" fetchpriority="low" class="lazy-pending progressive-img">
<span class="carousel-shade"></span>
<span class="carousel-content">
<span class="carousel-badge">精选文章</span>
<strong>PeerCache:一个去中心化的 RDMA 零拷贝 KV 缓存后端</strong>
<em>PeerCache 是我写的一个面向 SGLang HiCache 的 L3 KV 缓存后端:它做的是跨请求、跨节点的 KV 前缀复用,提供和 Mooncake Store 类似的能力,却砍掉了中心化的 master 与 metadata 服务。单卡能吃到裸 ib_read_bw 的 94%,整机 8 卡聚合 413 GB/s。这篇文章讲清楚它的定位、为什么这样设计、双 MR 模型怎么工作,以及实测性能基线。</em>
</span>
</a>
<a class="carousel-slide" href="/post/20260529/" aria-label="大模型推理的 PD 分离:原理、动机与 Mooncake 的实现">
<img src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%204%203%22%2F%3E" data-src="assets/uploads/2026/05/1780025971901-bu285b-image.thumb.webp" data-thumb="assets/uploads/2026/05/1780025971901-bu285b-image.thumb.webp" data-full-src="assets/uploads/2026/05/1780025971901-bu285b-image.webp" alt="大模型推理的 PD 分离:原理、动机与 Mooncake 的实现" loading="lazy" decoding="async" fetchpriority="low" class="lazy-pending progressive-img">
<span class="carousel-shade"></span>
<span class="carousel-content">
<span class="carousel-badge">精选文章</span>
<strong>大模型推理的 PD 分离:原理、动机与 Mooncake 的实现</strong>
<em>当我们谈论 LLM 推理优化时,绕不开一个关键词—— PD 分离 (Prefill Decode Disaggregation)。这篇文章从第一性原理出发,讲清…</em>
</span>
</a>
<button class="carousel-btn prev" type="button" aria-label="上一张">‹</button>
<button class="carousel-btn next" type="button" aria-label="下一张">›</button>
<div class="carousel-dots">
<button class="active" type="button" aria-label="第 1 张"></button><button class="" type="button" aria-label="第 2 张"></button><button class="" type="button" aria-label="第 3 张"></button><button class="" type="button" aria-label="第 4 张"></button><button class="" type="button" aria-label="第 5 张"></button><button class="" type="button" aria-label="第 6 张"></button><button class="" type="button" aria-label="第 7 张"></button><button class="" type="button" aria-label="第 8 张"></button>
</div>
</div>
</section>
<main class="layout" id="main-content">
<section>
<div class="tabs">
<div class="tab active" data-tab="latest">最新</div>
<div class="tab" data-tab="series">系列</div>
<div class="tab" data-tab="notes">留言板</div>
</div>
<ul id="postList" class="post-list">
<li class="post-item" data-slug="vpn-skill-one-command-self-hosted-vpn">
<a class="post-content" href="/post/20260929/">
<div class="post-author-row">
<div class="post-author-main">
<div class="avatar" style="background-image:url(https://gitpull.cn/assets/uploads/2026/05/touxiang.webp)"></div>
<span class="name">Jimmy</span>
<span>·</span>
<span>刚刚</span>
</div>
<span class="post-list-stats" data-slug="vpn-skill-one-command-self-hosted-vpn" data-pv-path="/post/20260929" data-comment-path="20260929" data-build-cm="0" aria-label="阅读与评论"><span class="post-stat-pv" title="阅读">👀 …</span> <span class="post-stat-cm" title="评论">💬 0</span></span>
</div>
<h3 class="post-title">vpn-skill:对 AI 说一句话,帮你把自建 VPN 装好并连上</h3>
<p class="post-summary">复制一句话给 AI,把服务器登录方式写进去,它连 skill 一起装上,然后在你服务器上装服务端、在你电脑上装客户端、连上并告诉你出口 IP。也附了后续更多一句话指令和不用 AI 的命令行用法。</p>
<div class="post-meta">
<span class="tag tag-colored" style="--tag-bg:#EEF0F3;--tag-text:#4B5563;--tag-border:#D5DAE1;--tag-dark-bg:#252A33;--tag-dark-text:#CBD5E1;--tag-dark-border:#47515F;">项目介绍</span><span class="tag tag-colored" style="--tag-bg:#E8F8EE;--tag-text:#1E7A43;--tag-border:#BDE8CC;--tag-dark-bg:#153321;--tag-dark-text:#91E4AE;--tag-dark-border:#2F6A43;">教程</span>
</div>
</a>
<a href="/post/20260929/" class="post-thumbnail"><img src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%204%203%22%2F%3E" data-full-src="assets/uploads/2026/09/vpn-skill-cover.svg" alt="vpn-skill:对 AI 说一句话,帮你把自建 VPN 装好并连上" loading="lazy" decoding="async" fetchpriority="low" class="lazy-pending progressive-img"></a>
</li>
<li class="post-item" data-slug="deepseek-harness-beginner-to-crx-fix">
<a class="post-content" href="/post/20260925/">
<div class="post-author-row">
<div class="post-author-main">
<div class="avatar" style="background-image:url(https://gitpull.cn/assets/uploads/2026/05/touxiang.webp)"></div>
<span class="name">Jimmy</span>
<span>·</span>
<span>3 天前</span>
</div>
<span class="post-list-stats" data-slug="deepseek-harness-beginner-to-crx-fix" data-pv-path="/post/20260925" data-comment-path="20260925" data-build-cm="0" aria-label="阅读与评论"><span class="post-stat-pv" title="阅读">👀 …</span> <span class="post-stat-cm" title="评论">💬 0</span></span>
</div>
<h3 class="post-title">从零开始:装上 DeepSeek Harness,让 AI 帮我修好一个装不上的浏览器插件</h3>
<p class="post-summary">给完全没用过 AI 编程工具的人:5 分钟装好 DeepSeek Harness、5 分钟配好 DeepSeek API Key(注册/充值/取 Key 全流程截图),再附上一段可以直接复制使用的 prompt 模板。</p>
<div class="post-meta">
<span class="tag tag-colored" style="--tag-bg:#E8F8EE;--tag-text:#1E7A43;--tag-border:#BDE8CC;--tag-dark-bg:#153321;--tag-dark-text:#91E4AE;--tag-dark-border:#2F6A43;">教程</span><span class="tag tag-colored" style="--tag-bg:#E6FAFA;--tag-text:#167A7F;--tag-border:#B8E7E8;--tag-dark-bg:#123638;--tag-dark-text:#8EE2E5;--tag-dark-border:#2B6E72;">AI 基础设施</span>
</div>
</a>
<a href="/post/20260925/" class="post-thumbnail"><img src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%204%203%22%2F%3E" data-src="assets/uploads/2026/09/dsh-desktop-cover.thumb.webp" data-thumb="assets/uploads/2026/09/dsh-desktop-cover.thumb.webp" data-full-src="assets/uploads/2026/09/dsh-desktop-cover.webp" alt="从零开始:装上 DeepSeek Harness,让 AI 帮我修好一个装不上的浏览器插件" loading="lazy" decoding="async" fetchpriority="low" class="lazy-pending progressive-img"></a>
</li>
<li class="post-item" data-slug="dsh-remote-multi-machine-remote-workspace">
<a class="post-content" href="/post/20260814/">
<div class="post-author-row">
<div class="post-author-main">
<div class="avatar" style="background-image:url(https://gitpull.cn/assets/uploads/2026/05/touxiang.webp)"></div>
<span class="name">Jimmy</span>
<span>·</span>
<span>1 个月前</span>
</div>
<span class="post-list-stats" data-slug="dsh-remote-multi-machine-remote-workspace" data-pv-path="/post/20260814" data-comment-path="20260814" data-build-pv="24" data-build-cm="1" aria-label="阅读与评论"><span class="post-stat-pv" title="阅读">👀 24</span> <span class="post-stat-cm" title="评论">💬 1</span></span>
</div>
<h3 class="post-title">dsh-remote——给 DeepSeek Harness 的多机远程工作区</h3>
<p class="post-summary">一个让 Agent 在多台 SSH 机器上「选目录即工作」的插件:多机管理、双 tab 工作区选择器(本机系统文件夹 or 远程目录)、远程目录本地镜像 + 双向 SFTP 同步,全程不改 harness 核心。</p>
<div class="post-meta">
<span class="tag tag-colored" style="--tag-bg:#E6FAFA;--tag-text:#167A7F;--tag-border:#B8E7E8;--tag-dark-bg:#123638;--tag-dark-text:#8EE2E5;--tag-dark-border:#2B6E72;">AI 基础设施</span><span class="tag tag-colored" style="--tag-bg:#E8F8EE;--tag-text:#1E7A43;--tag-border:#BDE8CC;--tag-dark-bg:#153321;--tag-dark-text:#91E4AE;--tag-dark-border:#2F6A43;">教程</span>
</div>
</a>
<a href="/post/20260814/" class="post-thumbnail"><img src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%204%203%22%2F%3E" data-full-src="assets/uploads/2026/08/dshremote-picker.svg" alt="dsh-remote——给 DeepSeek Harness 的多机远程工作区" loading="lazy" decoding="async" fetchpriority="low" class="lazy-pending progressive-img"></a>
</li>
<li class="post-item" data-slug="海门回声-黑鬼">
<a class="post-content" href="/post/20260618/">
<div class="post-author-row">
<div class="post-author-main">
<div class="avatar" style="background-image:url(https://gitpull.cn/assets/uploads/2026/05/touxiang.webp)"></div>
<span class="name">邻家酒肆</span>
<span>·</span>
<span>3 个月前</span>
</div>
<span class="post-list-stats" data-slug="海门回声-黑鬼" data-pv-path="/post/20260618" data-comment-path="20260618" data-build-pv="638" data-build-cm="5" aria-label="阅读与评论"><span class="post-stat-pv" title="阅读">👀 638</span> <span class="post-stat-cm" title="评论">💬 5</span></span>
</div>
<h3 class="post-title">海门回声 | 黑鬼</h3>
<p class="post-summary">黑鬼已经死了好多年了,大概在我上初中还是高中的时候。听大人们说,是在某一年的春节里,二月的天气还很冷,他像往常一样被铁链子拴在家院子前面的小屋子里,有好几天家人忘了给他送饭,便饿死了。也有人说是冻死的。我后来真的见过他——脸发青,像苔藓,不像电视剧里画着黑眼圈的饿汉。</p>
<div class="post-meta">
<span class="tag tag-colored" style="--tag-bg:#FFF4D8;--tag-text:#936018;--tag-border:#F2D38A;--tag-dark-bg:#382A12;--tag-dark-text:#F4C76F;--tag-dark-border:#735421;">海门回声</span><span class="tag tag-colored" style="--tag-bg:#F0E9FF;--tag-text:#6843B5;--tag-border:#D7C6F6;--tag-dark-bg:#271E3F;--tag-dark-text:#C5B2FF;--tag-dark-border:#55427F;">随想</span>
</div>
</a>
<a href="/post/20260618/" class="post-thumbnail"><img src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%204%203%22%2F%3E" data-src="assets/uploads/2026/06/heigui-cover.thumb.webp" data-thumb="assets/uploads/2026/06/heigui-cover.thumb.webp" data-full-src="assets/uploads/2026/06/heigui-cover.webp" alt="海门回声 | 黑鬼" loading="lazy" decoding="async" fetchpriority="low" class="lazy-pending progressive-img"></a>
</li>
<li class="post-item" data-slug="qq-farm-assistant-经典农场辅助">
<a class="post-content" href="/post/20260617/">
<div class="post-author-row">
<div class="post-author-main">
<div class="avatar" style="background-image:url(https://gitpull.cn/assets/uploads/2026/05/touxiang.webp)"></div>
<span class="name">Jimmy</span>
<span>·</span>
<span>3 个月前</span>
</div>
<span class="post-list-stats" data-slug="qq-farm-assistant-经典农场辅助" data-pv-path="/post/20260617" data-comment-path="20260617" data-build-pv="584" data-build-cm="0" aria-label="阅读与评论"><span class="post-stat-pv" title="阅读">👀 584</span> <span class="post-stat-cm" title="评论">💬 0</span></span>
</div>
<h3 class="post-title">QQ 经典农场辅助:挂机收菜、种菜、偷菜的一键工具</h3>
<p class="post-summary">一个跑在 Windows 上的 QQ 经典农场(微信小游戏)桌面辅助:用图像识别锁定微信窗口,自动收菜、补种、逛好友农场偷菜,支持虚拟机前台挂机。双击 init.bat 初始化,双击 start.bat 开跑,日志写在 logs/daemon.log。</p>
<div class="post-meta">
<span class="tag tag-colored" style="--tag-bg:#E8F8EE;--tag-text:#1E7A43;--tag-border:#BDE8CC;--tag-dark-bg:#153321;--tag-dark-text:#91E4AE;--tag-dark-border:#2F6A43;">杂七杂八</span>
</div>
</a>
<a href="/post/20260617/" class="post-thumbnail"><img src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%204%203%22%2F%3E" data-src="assets/uploads/2026/06/covers/qq-farm-assistant-经典农场辅助.thumb.webp" data-thumb="assets/uploads/2026/06/covers/qq-farm-assistant-经典农场辅助.thumb.webp" data-full-src="assets/uploads/2026/06/covers/qq-farm-assistant-经典农场辅助.webp" alt="QQ 经典农场辅助:挂机收菜、种菜、偷菜的一键工具" loading="lazy" decoding="async" fetchpriority="low" class="lazy-pending progressive-img"></a>
</li>
<li class="post-item" data-slug="海门回声-一个寂静的生日夜晚">
<a class="post-content" href="/post/20260616/">
<div class="post-author-row">
<div class="post-author-main">
<div class="avatar" style="background-image:url(https://gitpull.cn/assets/uploads/2026/05/touxiang.webp)"></div>
<span class="name">邻家酒肆</span>
<span>·</span>
<span>3 个月前</span>
</div>
<span class="post-list-stats" data-slug="海门回声-一个寂静的生日夜晚" data-pv-path="/post/20260616" data-comment-path="20260616" data-build-pv="500" data-build-cm="0" aria-label="阅读与评论"><span class="post-stat-pv" title="阅读">👀 500</span> <span class="post-stat-cm" title="评论">💬 0</span></span>
</div>
<h3 class="post-title">海门回声 | 静谧的生日夜晚</h3>
<p class="post-summary">二〇〇三年的夏天,海岛入夜后,田埂旁的杂草里蟋蟀叫成一片,晚风从海面方向吹进村子,带着咸腥和青草的气味。村子里的路坑坑洼洼,月光照在上面,一块亮一块暗。父母在外地打工,十二岁的姐姐和六岁的我留在岛上。那天傍晚,姐姐拎回村口小卖部的一红塑料袋饼干,喊伟华哥过来,客厅里没有开电灯……</p>
<div class="post-meta">
<span class="tag tag-colored" style="--tag-bg:#FFF4D8;--tag-text:#936018;--tag-border:#F2D38A;--tag-dark-bg:#382A12;--tag-dark-text:#F4C76F;--tag-dark-border:#735421;">海门回声</span><span class="tag tag-colored" style="--tag-bg:#F0E9FF;--tag-text:#6843B5;--tag-border:#D7C6F6;--tag-dark-bg:#271E3F;--tag-dark-text:#C5B2FF;--tag-dark-border:#55427F;">随想</span>
</div>
</a>
<a href="/post/20260616/" class="post-thumbnail"><img src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%204%203%22%2F%3E" data-src="assets/uploads/2026/06/covers/海门回声-一个寂静的生日夜晚.thumb.webp" data-thumb="assets/uploads/2026/06/covers/海门回声-一个寂静的生日夜晚.thumb.webp" data-full-src="assets/uploads/2026/06/covers/海门回声-一个寂静的生日夜晚.webp" alt="海门回声 | 静谧的生日夜晚" loading="lazy" decoding="async" fetchpriority="low" class="lazy-pending progressive-img"></a>
</li>
<li class="post-item" data-slug="用-ai-做好软件项目上下文工程实践指南">
<a class="post-content" href="/post/20260615/">
<div class="post-author-row">
<div class="post-author-main">
<div class="avatar" style="background-image:url(https://gitpull.cn/assets/uploads/2026/05/touxiang.webp)"></div>
<span class="name">兰州小红鸡</span>
<span>·</span>
<span>3 个月前</span>
</div>
<span class="post-list-stats" data-slug="用-ai-做好软件项目上下文工程实践指南" data-pv-path="/post/20260615" data-comment-path="20260615" data-build-pv="473" data-build-cm="0" aria-label="阅读与评论"><span class="post-stat-pv" title="阅读">👀 473</span> <span class="post-stat-cm" title="评论">💬 0</span></span>
</div>
<h3 class="post-title">用 AI 做好软件项目:上下文工程实践指南</h3>
<p class="post-summary">在复杂软件项目中引入 AI,常见困境不是模型不够强,而是 每次会话都在重复建立上下文 ——Agent 全量读取大文件、反复追问架构、上一轮的结论无法延续、任务边…</p>
<div class="post-meta">
<span class="tag tag-colored" style="--tag-bg:#E6FAFA;--tag-text:#167A7F;--tag-border:#B8E7E8;--tag-dark-bg:#123638;--tag-dark-text:#8EE2E5;--tag-dark-border:#2B6E72;">AI 基础设施</span>
</div>
</a>
<a href="/post/20260615/" class="post-thumbnail"><img src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%204%203%22%2F%3E" data-src="assets/uploads/2026/06/1781499659393-4hzbpp-image.thumb.webp" data-thumb="assets/uploads/2026/06/1781499659393-4hzbpp-image.thumb.webp" data-full-src="assets/uploads/2026/06/1781499659393-4hzbpp-image.webp" alt="用 AI 做好软件项目:上下文工程实践指南" loading="lazy" decoding="async" fetchpriority="low" class="lazy-pending progressive-img"></a>
</li>
<li class="post-item" data-slug="peercache-decentralized-rdma-kv-cache">
<a class="post-content" href="/post/20260601/">
<div class="post-author-row">
<div class="post-author-main">
<div class="avatar" style="background-image:url(https://gitpull.cn/assets/uploads/2026/05/touxiang.webp)"></div>
<span class="name">兰州小红鸡</span>
<span>·</span>
<span>4 个月前</span>
</div>
<span class="post-list-stats" data-slug="peercache-decentralized-rdma-kv-cache" data-pv-path="/post/20260601" data-comment-path="20260601" data-build-pv="467" data-build-cm="0" aria-label="阅读与评论"><span class="post-stat-pv" title="阅读">👀 467</span> <span class="post-stat-cm" title="评论">💬 0</span></span>
</div>
<h3 class="post-title">PeerCache:一个去中心化的 RDMA 零拷贝 KV 缓存后端</h3>
<p class="post-summary">PeerCache 是我写的一个面向 SGLang HiCache 的 L3 KV 缓存后端:它做的是跨请求、跨节点的 KV 前缀复用,提供和 Mooncake Store 类似的能力,却砍掉了中心化的 master 与 metadata 服务。单卡能吃到裸 ib_read_bw 的 94%,整机 8 卡聚合 413 GB/s。这篇文章讲清楚它的定位、为什么这样设计、双 MR 模型怎么工作,以及实测性能基线。</p>
<div class="post-meta">
<span class="tag tag-colored" style="--tag-bg:#E8F8EE;--tag-text:#1E7A43;--tag-border:#BDE8CC;--tag-dark-bg:#153321;--tag-dark-text:#91E4AE;--tag-dark-border:#2F6A43;">分布式存储</span><span class="tag tag-colored" style="--tag-bg:#E6FAFA;--tag-text:#167A7F;--tag-border:#B8E7E8;--tag-dark-bg:#123638;--tag-dark-text:#8EE2E5;--tag-dark-border:#2B6E72;">AI 基础设施</span><span class="tag tag-colored" style="--tag-bg:#EEF0F3;--tag-text:#4B5563;--tag-border:#D5DAE1;--tag-dark-bg:#252A33;--tag-dark-text:#CBD5E1;--tag-dark-border:#47515F;">项目介绍</span>
</div>
</a>
<a href="/post/20260601/" class="post-thumbnail"><img src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%204%203%22%2F%3E" data-src="assets/uploads/2026/06/peercache_scaling_ladder.thumb.webp" data-thumb="assets/uploads/2026/06/peercache_scaling_ladder.thumb.webp" data-full-src="assets/uploads/2026/06/peercache_scaling_ladder.webp" alt="PeerCache:一个去中心化的 RDMA 零拷贝 KV 缓存后端" loading="lazy" decoding="async" fetchpriority="low" class="lazy-pending progressive-img"></a>
</li>
<li class="post-item" data-slug="大模型推理的-pd-分离原理动机与-mooncake-的实现">
<a class="post-content" href="/post/20260529/">
<div class="post-author-row">
<div class="post-author-main">
<div class="avatar" style="background-image:url(https://gitpull.cn/assets/uploads/2026/05/touxiang.webp)"></div>
<span class="name">兰州小红鸡</span>
<span>·</span>
<span>4 个月前</span>
</div>
<span class="post-list-stats" data-slug="大模型推理的-pd-分离原理动机与-mooncake-的实现" data-pv-path="/post/20260529" data-comment-path="20260529" data-build-pv="462" data-build-cm="0" aria-label="阅读与评论"><span class="post-stat-pv" title="阅读">👀 462</span> <span class="post-stat-cm" title="评论">💬 0</span></span>
</div>
<h3 class="post-title">大模型推理的 PD 分离:原理、动机与 Mooncake 的实现</h3>
<p class="post-summary">当我们谈论 LLM 推理优化时,绕不开一个关键词—— PD 分离 (Prefill Decode Disaggregation)。这篇文章从第一性原理出发,讲清…</p>
<div class="post-meta">
<span class="tag tag-colored" style="--tag-bg:#FCE8F3;--tag-text:#A33B72;--tag-border:#F2B9D8;--tag-dark-bg:#381B2C;--tag-dark-text:#F7A6CE;--tag-dark-border:#753858;">算法</span><span class="tag tag-colored" style="--tag-bg:#E8F8EE;--tag-text:#1E7A43;--tag-border:#BDE8CC;--tag-dark-bg:#153321;--tag-dark-text:#91E4AE;--tag-dark-border:#2F6A43;">分布式存储</span>
</div>
</a>
<a href="/post/20260529/" class="post-thumbnail"><img src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%204%203%22%2F%3E" data-src="assets/uploads/2026/05/1780025971901-bu285b-image.thumb.webp" data-thumb="assets/uploads/2026/05/1780025971901-bu285b-image.thumb.webp" data-full-src="assets/uploads/2026/05/1780025971901-bu285b-image.webp" alt="大模型推理的 PD 分离:原理、动机与 Mooncake 的实现" loading="lazy" decoding="async" fetchpriority="low" class="lazy-pending progressive-img"></a>
</li>
<li class="post-item" data-slug="cpti-love-personality-test-intro">
<a class="post-content" href="/post/20260514/">
<div class="post-author-row">
<div class="post-author-main">
<div class="avatar" style="background-image:url(https://gitpull.cn/assets/uploads/2026/05/touxiang.webp)"></div>
<span class="name">Jimmy</span>
<span>·</span>
<span>4 个月前</span>
</div>
<span class="post-list-stats" data-slug="cpti-love-personality-test-intro" data-pv-path="/post/20260514" data-comment-path="20260514" data-build-pv="467" data-build-cm="0" aria-label="阅读与评论"><span class="post-stat-pv" title="阅读">👀 467</span> <span class="post-stat-cm" title="评论">💬 0</span></span>
</div>
<h3 class="post-title">CPTI:手机上就能玩的恋爱人格小测验</h3>
<p class="post-summary">CPTI 是一个偏手机体验的恋爱向趣味测验:刷题像刷短内容,最后给你「你像谁」和「谁更适合接住你」两套结果,再配一整套恋爱角色卡。本文只聊怎么玩、能玩出什么,不聊实现细节。</p>
<div class="post-meta">
<span class="tag tag-colored" style="--tag-bg:#E8F8EE;--tag-text:#1E7A43;--tag-border:#BDE8CC;--tag-dark-bg:#153321;--tag-dark-text:#91E4AE;--tag-dark-border:#2F6A43;">杂七杂八</span><span class="tag tag-colored" style="--tag-bg:#E8F8EE;--tag-text:#1E7A43;--tag-border:#BDE8CC;--tag-dark-bg:#153321;--tag-dark-text:#91E4AE;--tag-dark-border:#2F6A43;">前端</span>
</div>
</a>
<a href="/post/20260514/" class="post-thumbnail"><img src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%204%203%22%2F%3E" data-src="assets/uploads/2026/05/cptijietu1.thumb.webp" data-thumb="assets/uploads/2026/05/cptijietu1.thumb.webp" data-full-src="assets/uploads/2026/05/cptijietu1.webp" alt="CPTI:手机上就能玩的恋爱人格小测验" loading="lazy" decoding="async" fetchpriority="low" class="lazy-pending progressive-img"></a>
</li>
<li class="post-item" data-slug="welcome">
<a class="post-content" href="/post/welcome/">
<div class="post-author-row">
<div class="post-author-main">
<div class="avatar" style="background-image:url(https://gitpull.cn/assets/uploads/2026/05/touxiang.webp)"></div>
<span class="name">Jimmy</span>
<span>·</span>
<span>4 个月前</span>
</div>
<span class="post-list-stats" data-slug="welcome" data-pv-path="/post/welcome" data-comment-path="welcome" data-build-pv="459" data-build-cm="0" aria-label="阅读与评论"><span class="post-stat-pv" title="阅读">👀 459</span> <span class="post-stat-cm" title="评论">💬 0</span></span>
</div>
<h3 class="post-title">GitBlog:一个带伪后台的博客站点</h3>
<p class="post-summary">一个完全静态、托管在 GitHub Pages 上的博客,但带有可以在浏览器里直接写、直接发的'伪后台'。这篇文章记录它能做什么,相比传统方案为什么这样设计,以及如果你也想搭一个,要怎么开始。</p>
<div class="post-meta">
<span class="tag tag-colored" style="--tag-bg:#EEF0F3;--tag-text:#4B5563;--tag-border:#D5DAE1;--tag-dark-bg:#252A33;--tag-dark-text:#CBD5E1;--tag-dark-border:#47515F;">博客建站</span><span class="tag tag-colored" style="--tag-bg:#E8F8EE;--tag-text:#1E7A43;--tag-border:#BDE8CC;--tag-dark-bg:#153321;--tag-dark-text:#91E4AE;--tag-dark-border:#2F6A43;">教程</span><span class="tag tag-colored" style="--tag-bg:#EEF0F3;--tag-text:#4B5563;--tag-border:#D5DAE1;--tag-dark-bg:#252A33;--tag-dark-text:#CBD5E1;--tag-dark-border:#47515F;">项目介绍</span>
</div>
</a>
<a href="/post/welcome/" class="post-thumbnail"><img src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%204%203%22%2F%3E" data-src="assets/uploads/2026/05/1778490605877-blwjij-image.thumb.webp" data-thumb="assets/uploads/2026/05/1778490605877-blwjij-image.thumb.webp" data-full-src="assets/uploads/2026/05/1778490605877-blwjij-image.webp" alt="GitBlog:一个带伪后台的博客站点" loading="lazy" decoding="async" fetchpriority="low" class="lazy-pending progressive-img"></a>
</li>
<li class="post-item" data-slug="about">
<a class="post-content" href="/post/about/">
<div class="post-author-row">
<div class="post-author-main">
<div class="avatar" style="background-image:url(https://gitpull.cn/assets/uploads/2026/05/touxiang.webp)"></div>
<span class="name">Jimmy</span>
<span>·</span>
<span>4 个月前</span>
</div>
<span class="post-list-stats" data-slug="about" data-pv-path="/post/about" data-comment-path="about" data-build-pv="477" data-build-cm="0" aria-label="阅读与评论"><span class="post-stat-pv" title="阅读">👀 477</span> <span class="post-stat-cm" title="评论">💬 0</span></span>
</div>
<h3 class="post-title">关于小红鸡</h3>
<p class="post-summary">关于这个博客和写它的人 —— 一名做系统软件的程序员,这些年从图数据库、推荐系统一路走到大模型推理基础设施(KV 缓存 / RDMA 零拷贝 / 分布式存储),业余写点代码、读点书、记点流水账。</p>
<div class="post-meta">
<span class="tag tag-colored" style="--tag-bg:#E8F8EE;--tag-text:#1E7A43;--tag-border:#BDE8CC;--tag-dark-bg:#153321;--tag-dark-text:#91E4AE;--tag-dark-border:#2F6A43;">杂七杂八</span>
</div>
</a>
<a href="/post/about/" class="post-thumbnail"><img src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%204%203%22%2F%3E" data-src="assets/uploads/2026/05/1778491021713-cnnps5-1029bg.thumb.webp" data-thumb="assets/uploads/2026/05/1778491021713-cnnps5-1029bg.thumb.webp" data-full-src="assets/uploads/2026/05/1778491021713-cnnps5-1029bg.webp" alt="关于小红鸡" loading="lazy" decoding="async" fetchpriority="low" class="lazy-pending progressive-img"></a>
</li>
<li class="post-item" data-slug="smallpond-source-walkthrough">
<a class="post-content" href="/post/20260415/">
<div class="post-author-row">
<div class="post-author-main">
<div class="avatar" style="background-image:url(https://gitpull.cn/assets/uploads/2026/05/touxiang.webp)"></div>
<span class="name">Jimmy</span>
<span>·</span>
<span>5 个月前</span>
</div>
<span class="post-list-stats" data-slug="smallpond-source-walkthrough" data-pv-path="/post/20260415" data-comment-path="20260415" data-build-pv="467" data-build-cm="0" aria-label="阅读与评论"><span class="post-stat-pv" title="阅读">👀 467</span> <span class="post-stat-cm" title="评论">💬 0</span></span>
</div>
<h3 class="post-title">Smallpond 源码走读:DuckDB × 3FS × Ray 是如何拼成一台分布式数据处理机的</h3>
<p class="post-summary">Smallpond 是 DeepSeek 开源的轻量级分布式数据处理框架,专为 10 TB 到 PB 量级的 AI / 数据场景设计。它把 DuckDB 的列式向量化执行、3FS 的高带宽存储、Ray 的任务调度三块拼到一起,做成了\"一台机器\"。本文从架构分层、端到端工作流、Parquet 基础到核心源码走读,把这台\"机器\"的工作原理说清楚。</p>
<div class="post-meta">
<span class="tag tag-colored" style="--tag-bg:#E8F8EE;--tag-text:#1E7A43;--tag-border:#BDE8CC;--tag-dark-bg:#153321;--tag-dark-text:#91E4AE;--tag-dark-border:#2F6A43;">分布式存储</span><span class="tag tag-colored" style="--tag-bg:#E6FAFA;--tag-text:#167A7F;--tag-border:#B8E7E8;--tag-dark-bg:#123638;--tag-dark-text:#8EE2E5;--tag-dark-border:#2B6E72;">AI 基础设施</span><span class="tag tag-colored" style="--tag-bg:#F0E9FF;--tag-text:#6843B5;--tag-border:#D7C6F6;--tag-dark-bg:#271E3F;--tag-dark-text:#C5B2FF;--tag-dark-border:#55427F;">python</span>
</div>
</a>
<a href="/post/20260415/" class="post-thumbnail"><img src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%204%203%22%2F%3E" data-src="assets/uploads/2026/05/smallpond-cover.thumb.webp" data-thumb="assets/uploads/2026/05/smallpond-cover.thumb.webp" data-full-src="assets/uploads/2026/05/smallpond-cover.webp" alt="Smallpond 源码走读:DuckDB × 3FS × Ray 是如何拼成一台分布式数据处理机的" loading="lazy" decoding="async" fetchpriority="low" class="lazy-pending progressive-img"></a>
</li>
<li class="post-item" data-slug="3fs-usrbio-zero-copy">
<a class="post-content" href="/post/20260311/">
<div class="post-author-row">
<div class="post-author-main">
<div class="avatar" style="background-image:url(https://gitpull.cn/assets/uploads/2026/05/touxiang.webp)"></div>
<span class="name">Jimmy</span>
<span>·</span>
<span>6 个月前</span>
</div>
<span class="post-list-stats" data-slug="3fs-usrbio-zero-copy" data-pv-path="/post/20260311" data-comment-path="20260311" data-build-pv="461" data-build-cm="0" aria-label="阅读与评论"><span class="post-stat-pv" title="阅读">👀 461</span> <span class="post-stat-cm" title="评论">💬 0</span></span>
</div>
<h3 class="post-title">3FS 的零拷贝之路:USRBIO 是怎么把存储吞吐推到 6.6 TiB/s 的</h3>
<p class="post-summary">DeepSeek 开源的 3FS 在 180 节点集群上实测聚合读取吞吐约 6.6 TiB/s。本文从 FUSE 的性能瓶颈讲起,拆解 3FS 如何通过共享内存、io_uring 风格的环形队列、以及 RDMA 直接传输三层叠加,把数据通路上的每一次拷贝都抠掉。</p>
<div class="post-meta">
<span class="tag tag-colored" style="--tag-bg:#E8F8EE;--tag-text:#1E7A43;--tag-border:#BDE8CC;--tag-dark-bg:#153321;--tag-dark-text:#91E4AE;--tag-dark-border:#2F6A43;">分布式存储</span><span class="tag tag-colored" style="--tag-bg:#E6FAFA;--tag-text:#167A7F;--tag-border:#B8E7E8;--tag-dark-bg:#123638;--tag-dark-text:#8EE2E5;--tag-dark-border:#2B6E72;">AI 基础设施</span><span class="tag tag-colored" style="--tag-bg:#FFF4D8;--tag-text:#936018;--tag-border:#F2D38A;--tag-dark-bg:#382A12;--tag-dark-text:#F4C76F;--tag-dark-border:#735421;">C++</span>
</div>
</a>
<a href="/post/20260311/" class="post-thumbnail"><img src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%204%203%22%2F%3E" data-src="assets/uploads/2026/05/3fs-usrbio-cover.thumb.webp" data-thumb="assets/uploads/2026/05/3fs-usrbio-cover.thumb.webp" data-full-src="assets/uploads/2026/05/3fs-usrbio-cover.webp" alt="3FS 的零拷贝之路:USRBIO 是怎么把存储吞吐推到 6.6 TiB/s 的" loading="lazy" decoding="async" fetchpriority="low" class="lazy-pending progressive-img"></a>
</li>
<li class="post-item" data-slug="多维数组的索引方案与内存设计-16000038">
<a class="post-content" href="/post/20220313/">
<div class="post-author-row">
<div class="post-author-main">
<div class="avatar" style="background-image:url(https://gitpull.cn/assets/uploads/2026/05/touxiang.webp)"></div>
<span class="name">兰州小红鸡</span>
<span>·</span>
<span>4 年前</span>
</div>
<span class="post-list-stats" data-slug="多维数组的索引方案与内存设计-16000038" data-pv-path="/post/20220313" data-comment-path="20220313" data-build-pv="462" data-build-cm="0" aria-label="阅读与评论"><span class="post-stat-pv" title="阅读">👀 462</span> <span class="post-stat-cm" title="评论">💬 0</span></span>
</div>
<h3 class="post-title">多维数组的索引方案与内存设计</h3>
<p class="post-summary">多维数组的内存结构 类似ndarray之类的多维数组,实际上是一个连续的内存地址+一种索引方案。我们可以将一个多维数组对象分为两部分,一部分是实际存储数组数据的连续内存段,另一部分…</p>
<div class="post-meta">
</div>
</a>
<a href="/post/20220313/" class="post-thumbnail"><img src="data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%204%203%22%2F%3E" data-src="assets/uploads/2026/05/多维数组的索引方案与内存设计-16000038-01.thumb.webp" data-thumb="assets/uploads/2026/05/多维数组的索引方案与内存设计-16000038-01.thumb.webp" data-full-src="assets/uploads/2026/05/多维数组的索引方案与内存设计-16000038-01.webp" alt="多维数组的索引方案与内存设计" loading="lazy" decoding="async" fetchpriority="low" class="lazy-pending progressive-img"></a>
</li>
<li class="load-more-sentinel" id="loadMoreSentinel" aria-hidden="true">
<span class="load-more-spinner"></span>
<span class="load-more-text">加载更多</span>
</li>
</ul>
</section>
<aside class="sidebar">
<div class="sidebar-card">
<h3>热门标签</h3>
<div class="tag-cloud" id="tagCloud"></div>
</div>
<div class="sidebar-card">
<h3>最近更新</h3>
<ul class="recent-list" id="recentList"></ul>
</div>
</aside>
</main>
<div id="site-footer"></div>
<div id="site-overlays"></div>
<script type="module" src="assets/dist/home.min.js?v=20260627010000"></script>
</body>
</html>