-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathindex.html
57 lines (57 loc) · 26.8 KB
/
index.html
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
<!doctype html><html lang=en dir=ltr><head><meta name=generator content="Hugo 0.140.1"><meta charset=utf-8><meta name=viewport content='width=device-width,initial-scale=1'><meta name=description content><title>ipfans's Blog</title>
<link rel=canonical href=https://www.4async.com/><link rel=stylesheet href=./scss/style.min.663803bebe609202d5b39d848f2d7c2dc8b598a2d879efa079fa88893d29c49c.css><meta property='og:title' content="ipfans's Blog"><meta property='og:description' content><meta property='og:url' content='https://www.4async.com/'><meta property='og:site_name' content="ipfans's Blog"><meta property='og:type' content='website'><meta property='og:updated_time' content=' 2024-12-29T22:30:00+00:00 '><meta property='og:image' content='https://avatars0.githubusercontent.com/u/363344?v=3&s=460'><meta name=twitter:site content="@janxin"><meta name=twitter:creator content="@janxin"><meta name=twitter:title content="ipfans's Blog"><meta name=twitter:description content><meta name=twitter:card content="summary"><meta name=twitter:image content='https://avatars0.githubusercontent.com/u/363344?v=3&s=460'><link rel=alternate type=application/rss+xml href=https://www.4async.com/atom.xml><script async src="https://www.googletagmanager.com/gtag/js?id=G-G9H3Z8QND5"></script><script>var dnt,doNotTrack=!1;if(!1&&(dnt=navigator.doNotTrack||window.doNotTrack||navigator.msDoNotTrack,doNotTrack=dnt=="1"||dnt=="yes"),!doNotTrack){window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}gtag("js",new Date),gtag("config","G-G9H3Z8QND5")}</script></head><body><script>(function(){const e="StackColorScheme";localStorage.getItem(e)||localStorage.setItem(e,"auto")})()</script><script>(function(){const t="StackColorScheme",e=localStorage.getItem(t),n=window.matchMedia("(prefers-color-scheme: dark)").matches===!0;e=="dark"||e==="auto"&&n?document.documentElement.dataset.scheme="dark":document.documentElement.dataset.scheme="light"})()</script><div class="container main-container flex on-phone--column extended"><aside class="sidebar left-sidebar sticky"><button class="hamburger hamburger--spin" type=button id=toggle-menu aria-label=切换菜单>
<span class=hamburger-box><span class=hamburger-inner></span></span></button><header><figure class=site-avatar><a href=./><img src=./img/avatar_hu2822701703611882447.jpeg width=300 height=300 class=site-logo loading=lazy alt=Avatar></a></figure><div class=site-meta><h1 class=site-name><a href=./>ipfans's Blog</a></h1><h2 class=site-description></h2></div></header><ol class=menu id=main-menu><li><a href=./><svg class="icon icon-tabler icon-tabler-home" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><polyline points="5 12 3 12 12 3 21 12 19 12"/><path d="M5 12v7a2 2 0 002 2h10a2 2 0 002-2v-7"/><path d="M9 21v-6a2 2 0 012-2h2a2 2 0 012 2v6"/></svg>
<span>Home</span></a></li><li><a href=./about><svg class="icon icon-tabler icon-tabler-user" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><circle cx="12" cy="7" r="4"/><path d="M6 21v-2a4 4 0 014-4h4a4 4 0 014 4v2"/></svg>
<span>About</span></a></li><li><a href=./archives><svg class="icon icon-tabler icon-tabler-archive" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><rect x="3" y="4" width="18" height="4" rx="2"/><path d="M5 8v10a2 2 0 002 2h10a2 2 0 002-2V8"/><line x1="10" y1="12" x2="14" y2="12"/></svg>
<span>Posts</span></a></li><li><a href=./atom.xml><svg class="icon icon-tabler icon-tabler-rss" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><circle cx="5" cy="19" r="1"/><path d="M4 4a16 16 0 0116 16"/><path d="M4 11a9 9 0 019 9"/></svg>
<span>Feed</span></a></li><li><a href=https://x.com/janxin><svg width="250" height="250" viewBox="0 0 50 50"><path d="M5.9199219 6 20.582031 27.375 6.2304688 44H9.4101562L21.986328 29.421875 31.986328 44H44L28.681641 21.669922 42.199219 6H39.029297L27.275391 19.617188 17.933594 6H5.9199219zm3.796875 2H16.880859L40.203125 42H33.039062L9.7167969 8z"/></svg>
<span>Twitter</span></a></li><li class=menu-bottom-section><ol class=menu><li id=dark-mode-toggle><svg class="icon icon-tabler icon-tabler-toggle-left" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><circle cx="8" cy="12" r="2"/><rect x="2" y="6" width="20" height="12" rx="6"/></svg>
<svg class="icon icon-tabler icon-tabler-toggle-right" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><circle cx="16" cy="12" r="2"/><rect x="2" y="6" width="20" height="12" rx="6"/></svg>
<span>暗色模式</span></li></ol></li></ol></aside><aside class="sidebar right-sidebar sticky"><form action=./search/ class="search-form widget"><p><label>搜索</label>
<input name=keyword required placeholder=输入关键词...>
<button title=搜索><svg class="icon icon-tabler icon-tabler-search" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><circle cx="10" cy="10" r="7"/><line x1="21" y1="21" x2="15" y2="15"/></svg></button></p></form><section class="widget archives"><div class=widget-icon><svg class="icon icon-tabler icon-tabler-infinity" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><path d="M9.828 9.172a4 4 0 100 5.656A10 10 0 0012 12a10 10 0 012.172-2.828 4 4 0 110 5.656A10 10 0 0112 12 10 10 0 009.828 9.172"/></svg></div><h2 class="widget-title section-title">归档</h2><div class=widget-archive--list><div class=archives-year><a href=./archives/#2024><span class=year>2024</span>
<span class=count>7</span></a></div><div class=archives-year><a href=./archives/#2023><span class=year>2023</span>
<span class=count>5</span></a></div><div class=archives-year><a href=./archives/#2022><span class=year>2022</span>
<span class=count>1</span></a></div><div class=archives-year><a href=./archives/#2021><span class=year>2021</span>
<span class=count>11</span></a></div><div class=archives-year><a href=./archives/#2020><span class=year>2020</span>
<span class=count>4</span></a></div><div class=archives-year><a href=./archives/#2019><span class=year>更多</span></a></div></div></section><section class="widget tagCloud"><div class=widget-icon><svg class="icon icon-tabler icon-tabler-hash" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><line x1="5" y1="9" x2="19" y2="9"/><line x1="5" y1="15" x2="19" y2="15"/><line x1="11" y1="4" x2="7" y2="20"/><line x1="17" y1="4" x2="13" y2="20"/></svg></div><h2 class="widget-title section-title">分类</h2><div class=tagCloud-tags><a href=./categories/golang/ class=font_size_20>Golang
</a><a href=./categories/technical-investigations/ class=font_size_18>Technical Investigations
</a><a href=./categories/software-architecture/ class=font_size_8>Software Architecture
</a><a href=./categories/others/ class=font_size_7>Other
</a><a href=./categories/python/ class=font_size_7>Python
</a><a href=./categories/translation/ class=font_size_7>Translation
</a><a href=./categories/genai/ class=font_size_6>GenAI</a></div></section><section class="widget tagCloud"><div class=widget-icon><svg class="icon icon-tabler icon-tabler-tag" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><path d="M11 3l9 9a1.5 1.5.0 010 2l-6 6a1.5 1.5.0 01-2 0L3 11V7a4 4 0 014-4h4"/><circle cx="9" cy="9" r="2"/></svg></div><h2 class="widget-title section-title">标签云</h2><div class=tagCloud-tags><a href=./tags/python/ class=font_size_32>Python
</a><a href=./tags/golang/ class=font_size_24>Golang
</a><a href=./tags/others/ class=font_size_10>Others
</a><a href=./tags/async/ class=font_size_6>Async
</a><a href=./tags/asyncio/ class=font_size_6>Asyncio
</a><a href=./tags/generative-ai/ class=font_size_6>Generative AI
</a><a href=./tags/llm/ class=font_size_6>LLM
</a><a href=./tags/docker/ class=font_size_4>Docker
</a><a href=./tags/software-architecture/ class=font_size_4>Software Architecture
</a><a href=./tags/coreos/ class=font_size_3>CoreOS</a></div></section></aside><main class="main full-width"><section class=article-list><article class=has-image><header class=article-header><div class=article-image><a href=./2024/12/human-centered-product-design-with-human-in-the-loop/><img src=./2024/12/human-centered-product-design-with-human-in-the-loop/cover_hu14521464628116524434.webp srcset="./2024/12/human-centered-product-design-with-human-in-the-loop/cover_hu14521464628116524434.webp 800w, ./2024/12/human-centered-product-design-with-human-in-the-loop/cover_hu14591835931358070029.webp 1600w" width=800 height=483 loading=lazy alt="Featured image of post AI 产品的破局之道:以人为本"></a></div><div class=article-details><header class=article-category><a href=./categories/genai/>GenAI</a></header><div class=article-title-wrapper><h2 class=article-title><a href=./2024/12/human-centered-product-design-with-human-in-the-loop/>AI 产品的破局之道:以人为本</a></h2></div><footer class=article-time><div><svg class="icon icon-tabler icon-tabler-calendar-time" width="56" height="56" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><path d="M11.795 21H5a2 2 0 01-2-2V7a2 2 0 012-2h12a2 2 0 012 2v4"/><circle cx="18" cy="18" r="4"/><path d="M15 3v4"/><path d="M7 3v4"/><path d="M3 11h16"/><path d="M18 16.496V18l1 1"/></svg>
<time class=article-time--published>Dec 29, 2024</time></div><div><svg class="icon icon-tabler icon-tabler-clock" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><circle cx="12" cy="12" r="9"/><polyline points="12 7 12 12 15 15"/></svg>
<time class=article-time--reading>阅读时长: 1 分钟</time></div></footer></div></header></article><article class=has-image><header class=article-header><div class=article-image><a href=./2024/11/building-ai-agent-with-genkit-for-go/><img src=./2024/11/building-ai-agent-with-genkit-for-go/cover_hu12510475282759073311.png srcset="./2024/11/building-ai-agent-with-genkit-for-go/cover_hu12510475282759073311.png 800w, ./2024/11/building-ai-agent-with-genkit-for-go/cover_hu15856465806313045389.png 1600w" width=800 height=238 loading=lazy alt="Featured image of post 使用 Go 开发 AI Agent的选择:Genkit for Go"></a></div><div class=article-details><header class=article-category><a href=./categories/genai/>GenAI</a></header><div class=article-title-wrapper><h2 class=article-title><a href=./2024/11/building-ai-agent-with-genkit-for-go/>使用 Go 开发 AI Agent的选择:Genkit for Go</a></h2></div><footer class=article-time><div><svg class="icon icon-tabler icon-tabler-calendar-time" width="56" height="56" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><path d="M11.795 21H5a2 2 0 01-2-2V7a2 2 0 012-2h12a2 2 0 012 2v4"/><circle cx="18" cy="18" r="4"/><path d="M15 3v4"/><path d="M7 3v4"/><path d="M3 11h16"/><path d="M18 16.496V18l1 1"/></svg>
<time class=article-time--published>Nov 14, 2024</time></div><div><svg class="icon icon-tabler icon-tabler-clock" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><circle cx="12" cy="12" r="9"/><polyline points="12 7 12 12 15 15"/></svg>
<time class=article-time--reading>阅读时长: 5 分钟</time></div></footer></div></header></article><article class=has-image><header class=article-header><div class=article-image><a href=./2024/06/openai-survey-of-techniques-for-maximizing-llm-performance/><img src=./2024/06/openai-survey-of-techniques-for-maximizing-llm-performance/cover_hu1575006988498280737.png srcset="./2024/06/openai-survey-of-techniques-for-maximizing-llm-performance/cover_hu1575006988498280737.png 800w, ./2024/06/openai-survey-of-techniques-for-maximizing-llm-performance/cover_hu15116949113876114933.png 1600w" width=800 height=407 loading=lazy alt="Featured image of post RAG 技术在实际工程中的应用:OpenAI 的最佳实践分享"></a></div><div class=article-details><header class=article-category><a href=./categories/genai/>GenAI</a></header><div class=article-title-wrapper><h2 class=article-title><a href=./2024/06/openai-survey-of-techniques-for-maximizing-llm-performance/>RAG 技术在实际工程中的应用:OpenAI 的最佳实践分享</a></h2></div><footer class=article-time><div><svg class="icon icon-tabler icon-tabler-calendar-time" width="56" height="56" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><path d="M11.795 21H5a2 2 0 01-2-2V7a2 2 0 012-2h12a2 2 0 012 2v4"/><circle cx="18" cy="18" r="4"/><path d="M15 3v4"/><path d="M7 3v4"/><path d="M3 11h16"/><path d="M18 16.496V18l1 1"/></svg>
<time class=article-time--published>Jun 03, 2024</time></div><div><svg class="icon icon-tabler icon-tabler-clock" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><circle cx="12" cy="12" r="9"/><polyline points="12 7 12 12 15 15"/></svg>
<time class=article-time--reading>阅读时长: 1 分钟</time></div></footer></div></header></article><article class=has-image><header class=article-header><div class=article-image><a href=./2024/04/learn-hyde-from-scratch-2/><img src=./2024/04/learn-hyde-from-scratch-2/cover_hu10561303488144138519.png srcset="./2024/04/learn-hyde-from-scratch-2/cover_hu10561303488144138519.png 800w, ./2024/04/learn-hyde-from-scratch-2/cover_hu9055409720891978960.png 1600w" width=800 height=419 loading=lazy alt="Featured image of post 从零学习 Hypothetical Document Embeddings (HyDE) - 2"></a></div><div class=article-details><header class=article-category><a href=./categories/genai/>GenAI</a></header><div class=article-title-wrapper><h2 class=article-title><a href=./2024/04/learn-hyde-from-scratch-2/>从零学习 Hypothetical Document Embeddings (HyDE) - 2</a></h2></div><footer class=article-time><div><svg class="icon icon-tabler icon-tabler-calendar-time" width="56" height="56" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><path d="M11.795 21H5a2 2 0 01-2-2V7a2 2 0 012-2h12a2 2 0 012 2v4"/><circle cx="18" cy="18" r="4"/><path d="M15 3v4"/><path d="M7 3v4"/><path d="M3 11h16"/><path d="M18 16.496V18l1 1"/></svg>
<time class=article-time--published>Apr 10, 2024</time></div><div><svg class="icon icon-tabler icon-tabler-clock" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><circle cx="12" cy="12" r="9"/><polyline points="12 7 12 12 15 15"/></svg>
<time class=article-time--reading>阅读时长: 4 分钟</time></div></footer></div></header></article><article class=has-image><header class=article-header><div class=article-image><a href=./2024/04/learn-hyde-from-scratch-1/><img src=./2024/04/learn-hyde-from-scratch-1/cover_hu3554093996230465896.png srcset="./2024/04/learn-hyde-from-scratch-1/cover_hu3554093996230465896.png 800w, ./2024/04/learn-hyde-from-scratch-1/cover_hu1188331640474464565.png 1600w" width=800 height=281 loading=lazy alt="Featured image of post 从零学习 Hypothetical Document Embeddings (HyDE) - 1"></a></div><div class=article-details><header class=article-category><a href=./categories/genai/>GenAI</a></header><div class=article-title-wrapper><h2 class=article-title><a href=./2024/04/learn-hyde-from-scratch-1/>从零学习 Hypothetical Document Embeddings (HyDE) - 1</a></h2></div><footer class=article-time><div><svg class="icon icon-tabler icon-tabler-calendar-time" width="56" height="56" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><path d="M11.795 21H5a2 2 0 01-2-2V7a2 2 0 012-2h12a2 2 0 012 2v4"/><circle cx="18" cy="18" r="4"/><path d="M15 3v4"/><path d="M7 3v4"/><path d="M3 11h16"/><path d="M18 16.496V18l1 1"/></svg>
<time class=article-time--published>Apr 09, 2024</time></div><div><svg class="icon icon-tabler icon-tabler-clock" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><circle cx="12" cy="12" r="9"/><polyline points="12 7 12 12 15 15"/></svg>
<time class=article-time--reading>阅读时长: 1 分钟</time></div></footer></div></header></article><article class=has-image><header class=article-header><div class=article-image><a href=./2024/03/adventure-of-no-gil-python/><img src=./2024/03/adventure-of-no-gil-python/cover_hu12193504558071687384.png srcset="./2024/03/adventure-of-no-gil-python/cover_hu12193504558071687384.png 800w, ./2024/03/adventure-of-no-gil-python/cover_hu399158814090801958.png 1600w" width=800 height=383 loading=lazy alt="Featured image of post No GIL Python 的冒险"></a></div><div class=article-details><header class=article-category><a href=./categories/python/>Python</a></header><div class=article-title-wrapper><h2 class=article-title><a href=./2024/03/adventure-of-no-gil-python/>No GIL Python 的冒险</a></h2></div><footer class=article-time><div><svg class="icon icon-tabler icon-tabler-calendar-time" width="56" height="56" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><path d="M11.795 21H5a2 2 0 01-2-2V7a2 2 0 012-2h12a2 2 0 012 2v4"/><circle cx="18" cy="18" r="4"/><path d="M15 3v4"/><path d="M7 3v4"/><path d="M3 11h16"/><path d="M18 16.496V18l1 1"/></svg>
<time class=article-time--published>Mar 18, 2024</time></div><div><svg class="icon icon-tabler icon-tabler-clock" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><circle cx="12" cy="12" r="9"/><polyline points="12 7 12 12 15 15"/></svg>
<time class=article-time--reading>阅读时长: 3 分钟</time></div></footer></div></header></article><article class=has-image><header class=article-header><div class=article-image><a href=./2024/02/deploy-local-llm-using-ollama/><img src=./2024/02/deploy-local-llm-using-ollama/cover_hu12737217999430928365.png srcset="./2024/02/deploy-local-llm-using-ollama/cover_hu12737217999430928365.png 800w, ./2024/02/deploy-local-llm-using-ollama/cover_hu7544987971701208847.png 1600w" width=800 height=477 loading=lazy alt="Featured image of post 使用 Ollama 快速部署本地开源大语言模型"></a></div><div class=article-details><header class=article-category><a href=./categories/genai/>GenAI</a></header><div class=article-title-wrapper><h2 class=article-title><a href=./2024/02/deploy-local-llm-using-ollama/>使用 Ollama 快速部署本地开源大语言模型</a></h2></div><footer class=article-time><div><svg class="icon icon-tabler icon-tabler-calendar-time" width="56" height="56" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><path d="M11.795 21H5a2 2 0 01-2-2V7a2 2 0 012-2h12a2 2 0 012 2v4"/><circle cx="18" cy="18" r="4"/><path d="M15 3v4"/><path d="M7 3v4"/><path d="M3 11h16"/><path d="M18 16.496V18l1 1"/></svg>
<time class=article-time--published>Feb 28, 2024</time></div><div><svg class="icon icon-tabler icon-tabler-clock" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><circle cx="12" cy="12" r="9"/><polyline points="12 7 12 12 15 15"/></svg>
<time class=article-time--reading>阅读时长: 2 分钟</time></div></footer></div></header></article><article class=has-image><header class=article-header><div class=article-image><a href=./2023/11/python-312-sub-interpreters/><img src=./2023/11/python-312-sub-interpreters/cover_hu12485853796277717997.webp srcset="./2023/11/python-312-sub-interpreters/cover_hu12485853796277717997.webp 800w, ./2023/11/python-312-sub-interpreters/cover_hu7020373433228360706.webp 1600w" width=800 height=457 loading=lazy alt="Featured image of post 使用子解释器运行Python并行应用"></a></div><div class=article-details><header class=article-category><a href=./categories/software-architecture/>Software Architecture</a></header><div class=article-title-wrapper><h2 class=article-title><a href=./2023/11/python-312-sub-interpreters/>使用子解释器运行Python并行应用</a></h2></div><footer class=article-time><div><svg class="icon icon-tabler icon-tabler-calendar-time" width="56" height="56" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><path d="M11.795 21H5a2 2 0 01-2-2V7a2 2 0 012-2h12a2 2 0 012 2v4"/><circle cx="18" cy="18" r="4"/><path d="M15 3v4"/><path d="M7 3v4"/><path d="M3 11h16"/><path d="M18 16.496V18l1 1"/></svg>
<time class=article-time--published>Nov 23, 2023</time></div><div><svg class="icon icon-tabler icon-tabler-clock" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><circle cx="12" cy="12" r="9"/><polyline points="12 7 12 12 15 15"/></svg>
<time class=article-time--reading>阅读时长: 4 分钟</time></div></footer></div></header></article><article class=has-image><header class=article-header><div class=article-image><a href=./2023/01/twirp-first-step/><img src=./2023/01/twirp-first-step/cover_hu15372123536794273216.png srcset="./2023/01/twirp-first-step/cover_hu15372123536794273216.png 800w, ./2023/01/twirp-first-step/cover_hu18315573340974207385.png 1600w" width=800 height=429 loading=lazy alt="Featured image of post Twirp初相识"></a></div><div class=article-details><header class=article-category><a href=./categories/software-architecture/>Software Architecture</a></header><div class=article-title-wrapper><h2 class=article-title><a href=./2023/01/twirp-first-step/>Twirp初相识</a></h2></div><footer class=article-time><div><svg class="icon icon-tabler icon-tabler-calendar-time" width="56" height="56" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><path d="M11.795 21H5a2 2 0 01-2-2V7a2 2 0 012-2h12a2 2 0 012 2v4"/><circle cx="18" cy="18" r="4"/><path d="M15 3v4"/><path d="M7 3v4"/><path d="M3 11h16"/><path d="M18 16.496V18l1 1"/></svg>
<time class=article-time--published>Jan 25, 2023</time></div><div><svg class="icon icon-tabler icon-tabler-clock" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><circle cx="12" cy="12" r="9"/><polyline points="12 7 12 12 15 15"/></svg>
<time class=article-time--reading>阅读时长: 3 分钟</time></div></footer></div></header></article><article class=has-image><header class=article-header><div class=article-image><a href=./2023/01/twirp-hooks-and-interceptors/><img src=./2023/01/twirp-hooks-and-interceptors/cover_hu15372123536794273216.png srcset="./2023/01/twirp-hooks-and-interceptors/cover_hu15372123536794273216.png 800w, ./2023/01/twirp-hooks-and-interceptors/cover_hu18315573340974207385.png 1600w" width=800 height=429 loading=lazy alt="Featured image of post Twirp基本概念:Hooks和Interceptors"></a></div><div class=article-details><header class=article-category><a href=./categories/software-architecture/>Software Architecture</a></header><div class=article-title-wrapper><h2 class=article-title><a href=./2023/01/twirp-hooks-and-interceptors/>Twirp基本概念:Hooks和Interceptors</a></h2></div><footer class=article-time><div><svg class="icon icon-tabler icon-tabler-calendar-time" width="56" height="56" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><path d="M11.795 21H5a2 2 0 01-2-2V7a2 2 0 012-2h12a2 2 0 012 2v4"/><circle cx="18" cy="18" r="4"/><path d="M15 3v4"/><path d="M7 3v4"/><path d="M3 11h16"/><path d="M18 16.496V18l1 1"/></svg>
<time class=article-time--published>Jan 25, 2023</time></div><div><svg class="icon icon-tabler icon-tabler-clock" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentcolor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><circle cx="12" cy="12" r="9"/><polyline points="12 7 12 12 15 15"/></svg>
<time class=article-time--reading>阅读时长: 1 分钟</time></div></footer></div></header></article></section><nav class=pagination><span class='page-link current'>1</span>
<a class=page-link href=./page/2/>2</a>
<span class='page-link dots'>…</span>
<a class=page-link href=./page/11/>11</a></nav><footer class=site-footer><section class=copyright>©
2013 -
2024 ipfans's Blog</section><section class=powerby>使用 <a href=https://gohugo.io/ target=_blank rel=noopener>Hugo</a> 构建<br>主题 <b><a href=https://github.com/CaiJimmy/hugo-theme-stack target=_blank rel=noopener data-version=3.27.0>Stack</a></b> 由 <a href=https://jimmycai.com target=_blank rel=noopener>Jimmy</a> 设计</section></footer></main></div><script src=https://cdn.jsdelivr.net/npm/[email protected]/dist/vibrant.min.js integrity="sha256-awcR2jno4kI5X0zL8ex0vi2z+KMkF24hUW8WePSA9HM=" crossorigin=anonymous></script><script type=text/javascript src=./ts/main.js defer></script><script>(function(){const e=document.createElement("link");e.href="https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700&display=swap",e.type="text/css",e.rel="stylesheet",document.head.appendChild(e)})()</script></body></html>