-
Notifications
You must be signed in to change notification settings - Fork 1
/
atom.xml
468 lines (277 loc) · 30.6 KB
/
atom.xml
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
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>不輟集</title>
<icon>https://blog.tsunhualim.top/favicon.ico</icon>
<subtitle>Keep Yourself Alive</subtitle>
<link href="https://blog.tsunhualim.top/atom.xml" rel="self"/>
<link href="https://blog.tsunhualim.top/"/>
<updated>2024-08-03T14:55:42.512Z</updated>
<id>https://blog.tsunhualim.top/</id>
<author>
<name>Hua</name>
</author>
<generator uri="https://hexo.io/">Hexo</generator>
<entry>
<title>Python 程序內存管理及OOM問題分析</title>
<link href="https://blog.tsunhualim.top/it/python/python-memory/"/>
<id>https://blog.tsunhualim.top/it/python/python-memory/</id>
<published>2024-08-03T14:38:00.000Z</published>
<updated>2024-08-03T14:55:42.512Z</updated>
<summary type="html"><h2 id="內存管理"><a href="#內存管理" class="headerlink" title="內存管理"></a>內存管理</h2><p>Python 採用以引用計數法為主,以標記-清除算法和分代收集為輔的內存管理策略。</p>
<p>標記-清除算法會從根節點出發標記所有「活動對象」,然後再將沒有標記到的對象標記為「非活動對象」進行回收。因此該算法可以用來解決循環引用導致的內存洩漏問題。</p>
<p>分代收集算法會將內存對象分到三個世代中,每個代觸發回收時只回收當前代,並將存活的對象轉移到下一代,對象所在世代越久遠的越不可能是垃圾,觸發回收的頻率越低。因此該算法通過空間換時間的方式提高了垃圾回收效率。</p>
<h2 id="OOM-問題分析"><a href="#OOM-問題分析" class="headerlink" title="OOM 問題分析"></a>OOM 問題分析</h2><p>當進程中有大量線程在等待執行,或者有大對象未被及時釋放時,會造成系統內存資源緊張,甚至 OOM(內存溢出),從而服務進程被 kill。</p></summary>
<category term="Python" scheme="https://blog.tsunhualim.top/tags/Python/"/>
<category term="代碼家" scheme="https://blog.tsunhualim.top/tags/%E4%BB%A3%E7%A2%BC%E5%AE%B6/"/>
</entry>
<entry>
<title>Python 程序如何做到高效且穩健?</title>
<link href="https://blog.tsunhualim.top/it/python/python-efficient/"/>
<id>https://blog.tsunhualim.top/it/python/python-efficient/</id>
<published>2024-07-28T02:49:00.000Z</published>
<updated>2024-08-03T14:39:18.804Z</updated>
<summary type="html"><p>Python 幾乎是每個程序員都會使用的語言,但大多數人都將 Python 視為腳本語言,在需要的時候運行一下,進行數據處理或抓取等。大部分情況下都是一次性的工作(Job),很少有人會將其作爲長期運行的後端服務。這是爲何?</p>
<p>Python 是一門解釋型的語言,其依賴於 Python解釋器(或直譯器,官方的且最流行的是 CPython解釋器)來加載源代碼然後解釋運行。解釋運行使得 Python可以在終端中直接運行 <code>python</code> 即可開始一邊寫代碼一邊看運行結果,對用戶相當友好,但與之同時也帶來了無可避免的性能問題,從而難以成為後端服務的主流。主流如 Java、Go 都是編譯型的語言,意味著源代碼需要先編譯成二進制文件(在Java中是字節碼),然後直接在運行時(在Java中是JVM)中運行,且在編譯成二進制文件的過程中通常會進行若干優化,使得運行的程序更加高效。</p></summary>
<category term="Python" scheme="https://blog.tsunhualim.top/tags/Python/"/>
<category term="代碼家" scheme="https://blog.tsunhualim.top/tags/%E4%BB%A3%E7%A2%BC%E5%AE%B6/"/>
</entry>
<entry>
<title>2023年頭一日</title>
<link href="https://blog.tsunhualim.top/essay/first-day-in-2023/"/>
<id>https://blog.tsunhualim.top/essay/first-day-in-2023/</id>
<published>2023-01-01T15:36:42.000Z</published>
<updated>2024-04-23T11:39:54.571Z</updated>
<summary type="html"><p>透早起身,靜坐四个字久,然後體目睇世界。</p>
<p>這個熟悉又陌生个世界。</p>
<p>行去外口食个腸粉,路上幾個阿叔阿嬸行來行去,有儂正去上街,有儂上街正轉來。</p></summary>
<category term="隨筆" scheme="https://blog.tsunhualim.top/tags/%E9%9A%A8%E7%AD%86/"/>
<category term="閩語文" scheme="https://blog.tsunhualim.top/tags/%E9%96%A9%E8%AA%9E%E6%96%87/"/>
</entry>
<entry>
<title>穢着新冠之後</title>
<link href="https://blog.tsunhualim.top/essay/covid19-and-me/"/>
<id>https://blog.tsunhualim.top/essay/covid19-and-me/</id>
<published>2022-12-24T14:56:42.000Z</published>
<updated>2024-04-23T11:44:36.390Z</updated>
<summary type="html"><p>最近全國攏在佮新冠病毒共存,我也<strong>穢着</strong>(ùe–tio̍h, 感染)了,時間是2022年12月20日。</p>
<p>到今已經第六日了,情況好㩼囉。</p>
<p>好在我早有預備 <strong>加減</strong>(ke-kiám, 一點)藥、礦泉水、肉佮菜,生病期間免<strong>煩惱</strong>(huân-ló, 擔心)東煩惱西。</p></summary>
<category term="隨筆" scheme="https://blog.tsunhualim.top/tags/%E9%9A%A8%E7%AD%86/"/>
<category term="新冠" scheme="https://blog.tsunhualim.top/tags/%E6%96%B0%E5%86%A0/"/>
<category term="閩語文" scheme="https://blog.tsunhualim.top/tags/%E9%96%A9%E8%AA%9E%E6%96%87/"/>
</entry>
<entry>
<title>新時代生存守則</title>
<link href="https://blog.tsunhualim.top/essay/live-in-the-new-era/"/>
<id>https://blog.tsunhualim.top/essay/live-in-the-new-era/</id>
<published>2022-11-04T14:34:28.000Z</published>
<updated>2022-11-04T14:43:43.590Z</updated>
<summary type="html"><p><img src="/essay/live-in-the-new-era/rule.jpg" alt="小謝爾頓S1EP13"></p>
<p>自 19 年末以降,我們就進入了一個嶄新的時代,一個戴口罩的時代,一個做核酸的時代,一個進門先看健康碼、行程卡的時代,一個出門甚至不出門都可能被隔離的時代。</p>
<p>每個時代都有每個時代的生存之道,拒絕適應時代變化的人不是偉人就是塵埃。作爲大多數普通人通常很難改變時代,即使可能也無法驟然改變。爲了不淪爲塵埃(直白點就是苟活著),從現在開始(可能對有些人來說已經晚了)適應「新時代」才是比較務實的選擇。</p></summary>
<category term="隨筆" scheme="https://blog.tsunhualim.top/tags/%E9%9A%A8%E7%AD%86/"/>
<category term="新時代" scheme="https://blog.tsunhualim.top/tags/%E6%96%B0%E6%99%82%E4%BB%A3/"/>
</entry>
<entry>
<title>軟件設計模式·復用·變化</title>
<link href="https://blog.tsunhualim.top/it/common/software-design-pattern/"/>
<id>https://blog.tsunhualim.top/it/common/software-design-pattern/</id>
<published>2022-07-31T13:11:51.000Z</published>
<updated>2024-08-03T14:39:14.395Z</updated>
<summary type="html"><p>最近讀了《設計模式: 可復用面向對象軟件的基礎》(<em>Design Patterns: Elements of Reusable Object-Oriented Software</em>)一書,由埃里克·伽瑪(Erich Gamma)等著。此書英文版於 1995 年始發行。中文版我看的是機械工業出版社的版本(該出版社翻譯的書籍向來是詰屈聱牙的,這次也不例外)。該出版社於 2000 發行第一版,2019 年又發行了典藏版。本人借閱的正是這典藏版。</p>
<p>此書討論的主題是如何構建可復用的面向對象軟件,並引出 23 種設計模式。</p>
<p>本人閱讀此書後,結合自己以往設計的經驗作是文,發表自己的一些體悟。</p>
<h2 id="什麼是設計模式"><a href="#什麼是設計模式" class="headerlink" title="什麼是設計模式"></a>什麼是設計模式</h2><p>追本溯源,設計模式的概念是源自建築學的,特別是模式語言之父克里斯托弗·亞歷山大(Christopher Alexander)思想。他在1977年出版的 <em>A Pattern Language</em> 這樣說道:<strong>每一個模式描述了一個在我們身邊不斷發生的重複的問題以及該問題的解決方案的核心。</strong></p></summary>
<category term="設計模式" scheme="https://blog.tsunhualim.top/tags/%E8%A8%AD%E8%A8%88%E6%A8%A1%E5%BC%8F/"/>
<category term="代碼家" scheme="https://blog.tsunhualim.top/tags/%E4%BB%A3%E7%A2%BC%E5%AE%B6/"/>
</entry>
<entry>
<title>軟件架構與康德的哲學理論</title>
<link href="https://blog.tsunhualim.top/it/common/software-architecture-and-kants-philosophy/"/>
<id>https://blog.tsunhualim.top/it/common/software-architecture-and-kants-philosophy/</id>
<published>2022-07-16T15:45:26.000Z</published>
<updated>2024-08-03T14:39:32.806Z</updated>
<summary type="html"><p>最近讀了一篇名爲 <em>Foundations for the Study of Software Architecture</em> 的論文。它是由 AT&amp;T 公司的 Dewayne E. Perry 和卡羅拉大學的 Alexander L. Wolf 於 1992 聯合署名發表。</p>
<p>這篇論文不得了,光看名字就覺得很重要,這可是研究軟件架構的基石啊。文中提出了一個重要的軟件架構模型,即:</p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">Software Architecture = &#123; Elements, Form, Rationale &#125;</span><br></pre></td></tr></table></figure>
<p>翻譯過來就是:</p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">軟件架構 = &#123; 元素, 形式, 理論依據 &#125; </span><br></pre></td></tr></table></figure>
<p>Perry 和 Wolf 如何得出該模型呢?</p></summary>
<category term="哲學" scheme="https://blog.tsunhualim.top/tags/%E5%93%B2%E5%AD%B8/"/>
<category term="軟件架構" scheme="https://blog.tsunhualim.top/tags/%E8%BB%9F%E4%BB%B6%E6%9E%B6%E6%A7%8B/"/>
<category term="代碼家" scheme="https://blog.tsunhualim.top/tags/%E4%BB%A3%E7%A2%BC%E5%AE%B6/"/>
</entry>
<entry>
<title>觀電影《飛越瘋人院》後的一點思考</title>
<link href="https://blog.tsunhualim.top/essay/thinking-about-the-cuckoos-nest/"/>
<id>https://blog.tsunhualim.top/essay/thinking-about-the-cuckoos-nest/</id>
<published>2022-07-13T15:21:00.000Z</published>
<updated>2022-07-13T17:41:47.519Z</updated>
<summary type="html"><p>電影《飛越瘋人院》(One Flew Over the Cuckoo’s Nest)是基於 1962 年肯·克西(Ken Kesey)的同名小說改編,1975年上映,並獲得當年的第48屆奧斯卡五項大獎。男主角是藍道爾·麥克莫菲(Randle McMurphy),由傑克·尼克爾森(Jack Nicholson)扮演,女主角是護士拉契特(Ratched),由路易斯·弗萊徹(Louise Fletcher)扮演。</p>
<p>麥克莫菲是一個罪犯,很好鬥,還曾經強姦了 15歲的少女,入獄後為了擺脫勞改,申請去了精神病院。在病院裏面,他發現只有少數人是跟他一樣是罪犯,而大多數居然是自願進來的。這令他很不解,明明他們都抱怨病院的不好,為什麼還不離開呢。</p></summary>
<category term="隨筆" scheme="https://blog.tsunhualim.top/tags/%E9%9A%A8%E7%AD%86/"/>
<category term="電影" scheme="https://blog.tsunhualim.top/tags/%E9%9B%BB%E5%BD%B1/"/>
</entry>
<entry>
<title>《純粹理性批判》閱讀筆記一:導言</title>
<link href="https://blog.tsunhualim.top/essay/criteque-of-pure-reason-i/"/>
<id>https://blog.tsunhualim.top/essay/criteque-of-pure-reason-i/</id>
<published>2022-07-10T13:41:00.000Z</published>
<updated>2022-07-10T15:51:42.293Z</updated>
<summary type="html"><p>《純粹理性批判》是德國哲學家康德(Kant)於1781年寫的(1787年再版),在世界上影響深遠,與他寫的另外兩本《實踐理性批判》和《判斷力批判》合稱三大批判。</p>
<p>《純粹理性批判》出版後,頭幾年根本沒人讀懂,因為這本書實在太枯燥無味了,甚至還被誤讀。即使是現在,要讀懂這本書也不是件容易的事。本人閱讀的是商務印書館2011年出版的《漢譯世界學術名著叢書:純粹理性批判》,藍公武譯著。譯文頗有古意,非常簡練,需要慢慢讀、重複讀,不然很容易陷入迷霧。</p>
<p>本書探討的核心問題是先天綜合命題如何可能,又可分為四個問題:</p>
<ol>
<li>純粹數學如何可能?</li>
<li>純粹自然科學如何可能?</li>
<li>視為自然傾向的玄學(形而上學)如何可能?</li>
<li>視為學問的玄學(形而上學)如何可能?</li>
</ol></summary>
<category term="隨筆" scheme="https://blog.tsunhualim.top/tags/%E9%9A%A8%E7%AD%86/"/>
<category term="哲學" scheme="https://blog.tsunhualim.top/tags/%E5%93%B2%E5%AD%B8/"/>
</entry>
<entry>
<title>Go內存模型</title>
<link href="https://blog.tsunhualim.top/it/go/go-memory-model/"/>
<id>https://blog.tsunhualim.top/it/go/go-memory-model/</id>
<published>2021-12-31T02:50:00.000Z</published>
<updated>2024-08-03T14:41:09.777Z</updated>
<summary type="html"><p>本文講述在何種情況下,一個協程(goroutine)中寫入的變量值可被另一個協程中觀察到。</p>
<h2 id="先發生(happens-before)"><a href="#先發生(happens-before)" class="headerlink" title="先發生(happens before)"></a>先發生(happens before)</h2><p>讓我們來理清下時間的發生順序。</p>
<p>如果事件 e1在事件 e2 之前發生,那麼事件 e2 在事件 e1 之後發生。同樣,如果 e1 既不在事件 e2 之前也不在 e2 之後發生,那麼事件 e1 和 e2 同時發生。</p></summary>
<category term="Go" scheme="https://blog.tsunhualim.top/tags/Go/"/>
<category term="代碼家" scheme="https://blog.tsunhualim.top/tags/%E4%BB%A3%E7%A2%BC%E5%AE%B6/"/>
</entry>
<entry>
<title>網絡I/O</title>
<link href="https://blog.tsunhualim.top/it/common/net-io/"/>
<id>https://blog.tsunhualim.top/it/common/net-io/</id>
<published>2021-12-29T08:30:00.000Z</published>
<updated>2024-08-03T14:44:09.024Z</updated>
<summary type="html"><p>區分幾個概念:</p>
<ul>
<li>同步(synchronous)和異步(asynchronous)是消息通知的機制,是從消息發送方的角度看;</li>
<li>阻塞(blocking)和非阻塞(non-blocking)是線程等待通知的過程,是從接收方的角度看。<br>多路復用是指單一線程監聽多個文件描述符(file descriptor)。</li>
<li>邊緣觸發(edge-trigger)和水平觸發(level-trigger)是當文件描述符關聯的內核緩衝區變化時通知應用程序的兩種方式。邊緣觸發是當狀態變化時通知,水平觸發是只要滿足條件就一直通知。<br>epoll 默認是使用水平觸發,但提供邊緣觸發模式。<br>所謂水平觸發,就是只要達到某個限定的水平就一直通知;而邊緣觸發是處在上升沿或下降沿的時候觸發。</li>
</ul></summary>
<category term="net" scheme="https://blog.tsunhualim.top/tags/net/"/>
<category term="TODO" scheme="https://blog.tsunhualim.top/tags/TODO/"/>
</entry>
<entry>
<title>Go調度器</title>
<link href="https://blog.tsunhualim.top/it/go/go-scheduler/"/>
<id>https://blog.tsunhualim.top/it/go/go-scheduler/</id>
<published>2021-12-27T03:00:00.000Z</published>
<updated>2024-08-03T14:41:12.051Z</updated>
<summary type="html"><p>現在有三種常見的線程模型,包括:</p>
<ol>
<li>N:1,即 N 個用戶線程對應一個系統線程,節省上下文(context switch)切換開銷;</li>
<li>1:1,即 1 個用戶線程對應一個系統線程,充分利用多個核心(multi-core);</li>
<li>M:N,即 M 個用戶線程對應 N 個系統線程,節省上下文開銷並充分利用多個核心。</li>
</ol>
<p>Go的線程調度模型就是 M:N。</p></summary>
<category term="Go" scheme="https://blog.tsunhualim.top/tags/Go/"/>
<category term="代碼家" scheme="https://blog.tsunhualim.top/tags/%E4%BB%A3%E7%A2%BC%E5%AE%B6/"/>
</entry>
<entry>
<title>Unicode 字符集及UTF編碼入門</title>
<link href="https://blog.tsunhualim.top/it/common/unicode/"/>
<id>https://blog.tsunhualim.top/it/common/unicode/</id>
<published>2021-12-20T13:06:00.000Z</published>
<updated>2024-08-03T14:40:21.152Z</updated>
<summary type="html"><p>開始介紹 Unicode 之前,我們先來做一道不定項選擇題。</p>
<figure class="highlight css"><table><tr><td class="code"><pre><span class="line">問題<span class="number">1</span>:請問以下說法正確的是()</span><br><span class="line"></span><br><span class="line"><span class="selector-tag">A</span>. 所有中文字符都可用 UTF-<span class="number">8</span> 編碼,並佔用 <span class="number">3</span> 個字節。</span><br><span class="line"><span class="selector-tag">B</span>. 字符串可以直接轉成字節數組,字節數組可以直接轉成字符串。</span><br><span class="line">C. 文本的編碼順序跟其書寫順序一致,不一定是按從左到右從上到下順序。</span><br><span class="line">D. 帶 BOM 的文本一定是 UTF-<span class="number">8</span> 編碼,不帶 BOM 的文本不一定是 UTF-<span class="number">8</span> 編碼。</span><br><span class="line">E. Unicode、GBK 和 UTF-<span class="number">8</span> 都是不同的編碼方式。</span><br><span class="line">F. UTF-<span class="number">16</span> 不兼容 ASCII 碼</span><br><span class="line">G. 十進制的數字可以轉成二進制,因此不需要編碼。</span><br></pre></td></tr></table></figure>
<p>答案文章末尾揭曉,如果著急想對答案可以先翻到末尾核對;如果想知道為什麼,那就帶著問題繼續往下看吧。</p>
<h2 id="字符集"><a href="#字符集" class="headerlink" title="字符集"></a>字符集</h2><p>Unicode 是一種國際通用的字符集。</p>
<p>什麼是字符?計算機中的字符分為兩種:打印字符和非打印字符。打印字符包括數字、字母、漢字、假名、標點符號等等,非打印字符又稱之為控制字符,常見的有:回車(’\r’,U+000D)、換行(’\n’,U+000A)等等。</p>
<figure class="highlight css"><table><tr><td class="code"><pre><span class="line">問題<span class="number">2</span>:數字 <span class="number">123</span> 由()個字符組成?</span><br></pre></td></tr></table></figure>
<p>什麼是字符集?字符集就是字符的集合,不同的字符集包含的字符類型和數量可能不一樣。Unicode 是字符集的一種。</p>
<p>字符之所以能被計算機處理,其中最為關鍵的是字符能夠被正確地編碼和解碼。字符的編碼是字符在對應字符集中的序號。此序號是一個整數,稱之為字符碼點 (code point)。不同的字符集可能會對同樣的字符有不同的碼點表示,甚至沒有表示(並不是所有字符在字符集中都有定義)。</p></summary>
<category term="Unicode" scheme="https://blog.tsunhualim.top/tags/Unicode/"/>
</entry>
<entry>
<title>介紹Go程序性能分析工具 pprof</title>
<link href="https://blog.tsunhualim.top/it/go/go-tool-pprof/"/>
<id>https://blog.tsunhualim.top/it/go/go-tool-pprof/</id>
<published>2021-12-04T12:51:15.000Z</published>
<updated>2024-08-03T14:41:15.161Z</updated>
<summary type="html"><p>pprof 是 program profiling(程序分析)的縮寫,是 Go程序中重要的性能分析工具,包含兩個部分:</p>
<ol>
<li>數據採集,由編譯到程序中的 pprof 庫實現。pprof 庫主要是指 “runtime/pprof” 包,另有 “net/http/pprof” 包引用 “runtime/pprof” 並以 HTTP 接口形式提供實時性能數據。</li>
<li>數據分析,使用 <code>go tool pprof &lt;source&gt;</code> 工具分析採集到的數據。 </li>
</ol></summary>
<category term="Go" scheme="https://blog.tsunhualim.top/tags/Go/"/>
<category term="pprof" scheme="https://blog.tsunhualim.top/tags/pprof/"/>
<category term="代碼家" scheme="https://blog.tsunhualim.top/tags/%E4%BB%A3%E7%A2%BC%E5%AE%B6/"/>
</entry>
<entry>
<title>比較 JSON 和 protobuf 並介紹 protobuf編碼、語法及 protobuf over HTTP 示例</title>
<link href="https://blog.tsunhualim.top/it/common/protobuf-intro/"/>
<id>https://blog.tsunhualim.top/it/common/protobuf-intro/</id>
<published>2021-11-21T06:12:51.000Z</published>
<updated>2024-08-03T14:40:12.752Z</updated>
<summary type="html"><p>Protocol Buffers<code>(簡稱 protobuf)</code>,是 Google 推出的一種數據交換格式,採用 Varint 和 ZigZag 等二進制編碼,數據壓縮效果顯著,可用來傳輸數據或持久化數據。</p>
<h2 id="JSON-是什麼?"><a href="#JSON-是什麼?" class="headerlink" title="JSON 是什麼?"></a>JSON 是什麼?</h2><p>JSON 全稱爲 JavaScript Object Notation<code>(JavaScript對象標記)</code>,即 JS對象的字符串表示。其採用文本編碼,是現今最通用的數據交換格式。2001年3月,State Software公司的聯合創始人設計了此種格式,並隨後進行了標準化。現在有 ECMA-404(2013年)和 RFC-8259(2017年)兩種標準。</p>
<h2 id="protobuf-是什麼?"><a href="#protobuf-是什麼?" class="headerlink" title="protobuf 是什麼?"></a>protobuf 是什麼?</h2><p>protobuf 全稱爲 Protocol Buffers<code>(“協議緩衝”)</code>,是一種數據壓縮性能優秀的數據存儲和交換格式。其採用二進制編碼,通常跟 gRPC 一起使用。</p>
<p>2001年 Google公司內部誕生了proto1版本,並隨後在2008年以BSD協議開源了proto2,2016年釋出proto3正式版。</p>
<p>對於 proto2,官方推出了針對 C++、Java、C# 和 Python 語言的 protobuf編譯器 protoc;而在 proto3 中,增加了對 Dart、GO、Kotlin 和 Ruby 的官方支持。另外,第三方有提供對 JavaScript 和 PHP 等等語言的支持。</p></summary>
<category term="protobuf" scheme="https://blog.tsunhualim.top/tags/protobuf/"/>
<category term="代碼家" scheme="https://blog.tsunhualim.top/tags/%E4%BB%A3%E7%A2%BC%E5%AE%B6/"/>
</entry>
<entry>
<title>關於我存在的一點思考</title>
<link href="https://blog.tsunhualim.top/essay/think-about-me/"/>
<id>https://blog.tsunhualim.top/essay/think-about-me/</id>
<published>2021-11-09T22:35:32.000Z</published>
<updated>2021-11-09T22:39:05.216Z</updated>
<summary type="html"><p>過去我時常在想一個問題,就是:人生有何意義?</p>
<p>我問父母,父母告訴我三頓有得吃就好了;<br>我問老師,老師告訴我這不用考;<br>我問書本,書本說回首往事的時候不會後悔;<br>我問佛陀,佛陀拈花微笑不語。</p></summary>
<category term="隨筆" scheme="https://blog.tsunhualim.top/tags/%E9%9A%A8%E7%AD%86/"/>
<category term="我思" scheme="https://blog.tsunhualim.top/tags/%E6%88%91%E6%80%9D/"/>
</entry>
<entry>
<title>Nǹg uá khòu-thâu(鑽我褲頭)</title>
<link href="https://blog.tsunhualim.top/essay/nng-ua-khou-thau/"/>
<id>https://blog.tsunhualim.top/essay/nng-ua-khou-thau/</id>
<published>2021-09-29T13:38:48.000Z</published>
<updated>2024-04-23T11:53:34.462Z</updated>
<summary type="html"><p>Lâu Lêng(劉伶) sâinn<code>--</code>sî tsia̍h tsiú huàng-tsòng, ǔ<code>--</code>sî nā tshù-lǎi tǹg-pe̍h-pe̍h. Nâng thói-tioh i, tsang i kiàng-siàu, A-lêng(阿伶) tànn: “uá ínn thinn-tī uî lâu-pâng, pâng-kainn uî khòu-thâu, níng-hiá-nâng nǹg uá khòu-thâu muā<code>--</code>âi mō?”</p></summary>
<category term="閩語文" scheme="https://blog.tsunhualim.top/tags/%E9%96%A9%E8%AA%9E%E6%96%87/"/>
<category term="魏晉風流" scheme="https://blog.tsunhualim.top/tags/%E9%AD%8F%E6%99%89%E9%A2%A8%E6%B5%81/"/>
</entry>
<entry>
<title>nâng-tu-kāng-ím(人豬共飲)</title>
<link href="https://blog.tsunhualim.top/essay/nang-tu-kang-im/"/>
<id>https://blog.tsunhualim.top/essay/nang-tu-kang-im/</id>
<published>2021-09-28T14:16:00.000Z</published>
<updated>2024-04-23T11:52:51.439Z</updated>
<summary type="html"><p><img src="/essay/nang-tu-kang-im/ang.jpg" alt="Àng(甕)"></p>
<p>Sènn Nguáng(阮) kâi nâng tsôi<code>--</code>ik sǐ hoh<code>--</code>ǒi tsia̍h-tsiú<code>--</code>âi. Ǔ tse̍k<code>--</code>ji̍k, Nguáng Hâm(阮咸) kah i<code>--</code>âi tso̍k-nâng tsia̍h tsiú, ēng tuā àng. Tsia̍h-tiānn-nînn, ǔ tse̍k<code>--</code>kûng tu phīnn-tioh phang-bhī tshong<code>--</code>ji̍p-lâi. Suà tsôi<code>--</code>ik tsia̍h tsiú.</p></summary>
<category term="閩語文" scheme="https://blog.tsunhualim.top/tags/%E9%96%A9%E8%AA%9E%E6%96%87/"/>
<category term="魏晉風流" scheme="https://blog.tsunhualim.top/tags/%E9%AD%8F%E6%99%89%E9%A2%A8%E6%B5%81/"/>
</entry>
<entry>
<title>桂林見聞</title>
<link href="https://blog.tsunhualim.top/essay/seeing-and-hearing-in-guilin/"/>
<id>https://blog.tsunhualim.top/essay/seeing-and-hearing-in-guilin/</id>
<published>2021-09-22T06:50:26.000Z</published>
<updated>2024-04-23T11:38:01.007Z</updated>
<summary type="html"><p>中秋假期,跟著杜同學及其同事大雄前往廣西桂林旅遊,導遊姓張。這是我第一次跟團旅遊,種種見聞令人難忘,不妨一書以待「後之覽者亦將有感於斯文」。</p></summary>
<category term="隨筆" scheme="https://blog.tsunhualim.top/tags/%E9%9A%A8%E7%AD%86/"/>
<category term="遊記" scheme="https://blog.tsunhualim.top/tags/%E9%81%8A%E8%A8%98/"/>
</entry>
<entry>
<title>閩南語拼音方案怎樣選?</title>
<link href="https://blog.tsunhualim.top/language/min/how-to-select-pinyin-for-minnan-language/"/>
<id>https://blog.tsunhualim.top/language/min/how-to-select-pinyin-for-minnan-language/</id>
<published>2021-09-15T15:49:00.000Z</published>
<updated>2024-04-23T11:47:34.279Z</updated>
<summary type="html"><p>閩南語各個分支,甚至同個分支,使用了酷㩼毋平樣亓拼音方案,交流上酷毋方便,且讓人迷惑,毋知愛怎樣選擇。這次咱來談談幾種拼音方案,睇睇伊儂亓區別,佮提供幾點選擇亓意見。</p>
<p>閩南語有悠久亓羅馬字傳統,19世紀亓傳教士麥都思等帶來了教會羅馬字。現如今,臺灣發佈亓<strong>閩南語羅馬字拼音方案</strong><code>(BLJ, Bân-lâm-gí Lô-má-jī)</code>正是繼承自古早亓<strong>教會羅馬字</strong>。</p>
<p>潮州話現在也有<strong>現代潮汕閩語/潮州話羅馬字</strong><code>(MTR, Modern Teochew Romanized/Romanization)</code>,脫胎自19世紀傳教士傳入亓<strong>潮州白話字</strong><code>(PUJ, Pêh-uē-jī)</code>。</p>
<p>兩者平樣是脫胎自教會羅馬字,兼容性好。</p>
<p>另一方面,廣東省教育部門於1960年9月公布了廣東話拼音方案,其中有<strong>潮州話拼音方案</strong><code>(DP, Diê⁵ziu¹uê⁷ Pêng¹im¹ huang¹uan³)</code>。廈門大學於1982年10月推出了一套<strong>閩南話拼音方案</strong><code>(BP, Bbínpīng)</code>。</p></summary>
<category term="閩語文" scheme="https://blog.tsunhualim.top/tags/%E9%96%A9%E8%AA%9E%E6%96%87/"/>
<category term="閩南語" scheme="https://blog.tsunhualim.top/tags/%E9%96%A9%E5%8D%97%E8%AA%9E/"/>
</entry>
</feed>