-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.xml
568 lines (550 loc) · 38.9 KB
/
index.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
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
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>NLDXTD</title>
<link>https://nldxtd.github.io/</link>
<description>Recent content on NLDXTD</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<lastBuildDate>Thu, 15 Aug 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://nldxtd.github.io/index.xml" rel="self" type="application/rss+xml" /><item>
<title>Backend service intern, at MicroSoft</title>
<link>https://nldxtd.github.io/p/backend-service-intern-at-microsoft/</link>
<pubDate>Thu, 15 Aug 2024 00:00:00 +0000</pubDate>
<guid>https://nldxtd.github.io/p/backend-service-intern-at-microsoft/</guid>
<description><p>As my last internship which marks the end of my undergraduate study, I was given the chance of involving in the rate-limiter service at Microsoft, China.</p>
<p>Generally speaking, it&rsquo;s a pleasant journey along with those teammates work together, using my knowledge learned in class and also to validate my cs foundation, especially in the field of Operating-System and backend service field which I currently plan to dive into.</p>
<h2 id="problems">Problems</h2>
<p>Rate limiter service is part of the ai-inferencing service which we call it a micro-service, customs use our service to do batch inferencing. But resources like GPUs are limited from the inferencing engine, so before inferencing can really take place, there must be a rule to define how many inference unit a single batch request can take. So the problem we are facing is:</p>
<p>The basic server side</p>
<ul>
<li>The ability to handle concurrency request
<ul>
<li>The system architechture</li>
</ul>
</li>
<li>Set up as part of the inference micro-service
The additional design</li>
<li>How to store and calculate the used quota</li>
<li>Enable the share between different tenant of same group and fairness issue.</li>
</ul>
<h2 id="practice">Practice</h2>
<h3 id="system-architechture-design-multi-replica-deployment">System Architechture Design: Multi-Replica Deployment</h3>
<ul>
<li>2 replica per region</li>
<li>30 pods per replica</li>
<li>7 shards of redis, tenants from the same group will be projected to the same shard</li>
</ul>
<p>We use ASP.NET core as the backend framework and redis as cache. And there are 60 instances in total to serve traffic per region. The CI/CD set is provided by Azure platform which can take a long time to deploy honestly. Everytime we have an update to the current repo, we use a rolling update strategy, which is 3 by 3 in the 60 instances, whenever there is a failure discovered through the readiness api, we roll back to the last version.</p>
<p>Problem is discovered that sometimes when traffic is high, the request is stuck at a point in getting lock of a required service (like some kind of authorization). This is weird and we suspected it&rsquo;s due to the framework itself, dead lock probably. But we didn&rsquo;t get into this problem that far because this problem happened occasionally.</p>
<h3 id="microservice-frontdoor-to-the-inference-engine">Microservice, frontdoor to the inference engine</h3>
</description>
</item>
<item>
<title>My failed tech interviews</title>
<link>https://nldxtd.github.io/p/my-failed-tech-interviews/</link>
<pubDate>Tue, 13 Aug 2024 00:00:00 +0000</pubDate>
<guid>https://nldxtd.github.io/p/my-failed-tech-interviews/</guid>
<description><p>Even though I am planning to continue my master&rsquo;s study in America, I do have few interviews in my undergraduate. Many of them are not so successful according to various reasons.</p>
</description>
</item>
<item>
<title>Record of my self-retained questions in CS areas</title>
<link>https://nldxtd.github.io/p/record-of-my-self-retained-questions-in-cs-areas/</link>
<pubDate>Mon, 13 Sep 2021 00:00:00 +0000</pubDate>
<guid>https://nldxtd.github.io/p/record-of-my-self-retained-questions-in-cs-areas/</guid>
<description><p>I alaways came across questions in computer science areas like programming languages, computer network, operating system. In this article I will record some of the basic questions I encountered over the years, if the question is complecated I will consider making it into a blog&hellip;</p>
<h1 id="programming-languages-and-compiler">Programming languages and compiler</h1>
<h1 id="computer-network">Computer network</h1>
<p>Computer network, connect our isolated computer into Internet which now make up our world. Generally speaking, coumputer network is about how computer send message to and recieve back from other computer. A computer&rsquo;s network stack is made of 7 layers, each plays its role. A network path between 2 computers is called a route, which can pass netword hardware like router and exchanger.</p>
<h1 id="operating-system">Operating system</h1>
<p>Operating system, aka OS, performs as the connection between user software and underlying hardware, it provide system apis to be called by the user program so the computer can behave in our will. There are several topics to be involved in this region, such as the bacis operating unit, process communication, system call(exceptions/faults/interrupts), memory management, file system, concurrency and sychronization&hellip;</p>
<h2 id="whats-the-connection-and-difference-between-process-and-thread">What&rsquo;s the connection and difference between process and thread?</h2>
<p><strong>Process</strong>: A actual running program instance in operating system, it contains all the resources needed to run a program, such as memory, file description, environment variables.</p>
<p><strong>Thread</strong>: A minimal unit of execution within a process,i t represents a sequence of instructions that can be executed by the CPU.</p>
<p>So each process has at least one thread which is called the main thread normally, the operating system actually schedules on thread to premote the execution of a program.</p>
<h3 id="differences-between-process-and-thread">Differences Between Process and Thread</h3>
<table>
<thead>
<tr>
<th><strong>Aspect</strong></th>
<th><strong>Process</strong></th>
<th><strong>Thread</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Definition</strong></td>
<td>An independent program running in its own memory space.</td>
<td>A smaller, lightweight unit of execution within a process.</td>
</tr>
<tr>
<td><strong>Memory Space</strong></td>
<td>Has its own separate memory space.</td>
<td>Shares the memory space of its parent process.</td>
</tr>
<tr>
<td><strong>Resource Allocation</strong></td>
<td>More resource-intensive (e.g., memory, file descriptors).</td>
<td>Less resource-intensive; shares resources with other threads.</td>
</tr>
<tr>
<td><strong>Isolation</strong></td>
<td>Processes are isolated from each other.</td>
<td>Threads within a process are not isolated; they can affect each other.</td>
</tr>
<tr>
<td><strong>Communication</strong></td>
<td>Inter-process communication (IPC) is required for communication between processes (e.g., pipes, sockets).</td>
<td>Threads can directly communicate with each other by reading/writing shared memory.</td>
</tr>
<tr>
<td><strong>Context Switching</strong></td>
<td>More expensive due to the need to switch memory space and resources.</td>
<td>Less expensive since threads share the same memory space.</td>
</tr>
<tr>
<td><strong>Creation Overhead</strong></td>
<td>Higher overhead in terms of time and system resources.</td>
<td>Lower overhead, making thread creation faster and more efficient.</td>
</tr>
<tr>
<td><strong>Execution</strong></td>
<td>Each process runs independently and can run in parallel on multiple CPUs.</td>
<td>Threads can run in parallel, especially on multi-core systems, within the same process.</td>
</tr>
<tr>
<td><strong>Crash Impact</strong></td>
<td>If a process crashes, it doesn’t affect other processes.</td>
<td>If a thread crashes, it can potentially crash the entire process.</td>
</tr>
<tr>
<td><strong>Scheduling</strong></td>
<td>The operating system schedules processes independently.</td>
<td>The operating system schedules threads, often within the context of their parent process.</td>
</tr>
</tbody>
</table>
<h1 id="computer-architechture">Computer Architechture</h1>
</description>
</item>
<item>
<title>About</title>
<link>https://nldxtd.github.io/about/</link>
<pubDate>Wed, 21 Aug 2019 00:00:00 +0000</pubDate>
<guid>https://nldxtd.github.io/about/</guid>
<description><p>Welcome to anyone who come here for any reason. I&rsquo;m pleased to introduce myself and the origin intention of building this website.</p>
<h2 id="about-me">About Me</h2>
<p>I was born in 2002, and is an undergraduate at Tsinghua University the moment I type this line. I hold the belief that we were born to find the truth and stick to our faith. The subject I major in is CS, and I&rsquo;m also interested in politics, economics, music, game and traveling.</p>
<h2 id="about-this-website">About this website</h2>
<p>There are two main reasons for this website.</p>
<p>The first is to witness the process of my growing up. We all gonna die one day, this website is for leave a bit record of my thinking and my life.</p>
<p>The second is for communicating, we live in a time where the Internet is so convenient, but not so free to some aspects, but thanks to the skills I&rsquo;m owning and the education I&rsquo;m getting either passively or proactively, I am able to carve out a space on the Internet for free communication. This is important because we are all limited in our own lives, only communication remove the obstacles.</p>
<p>You can contact me by <a class="link" href="mailto:[email protected]" >nldxtd</a> :)</p>
<h2 id="what-im-doing">What I&rsquo;m doing</h2>
<ul>
<li>keeping thinking 🤔</li>
<li>preparing for my further education 📖</li>
<li>improving my skills 😈</li>
<li>in love ❤️</li>
</ul>
</description>
</item>
<item>
<title>Archives</title>
<link>https://nldxtd.github.io/archives/</link>
<pubDate>Tue, 28 May 2019 00:00:00 +0000</pubDate>
<guid>https://nldxtd.github.io/archives/</guid>
<description></description>
</item>
<item>
<title>Markdown Syntax Guide</title>
<link>https://nldxtd.github.io/p/markdown-syntax-guide/</link>
<pubDate>Mon, 11 Mar 2019 00:00:00 +0000</pubDate>
<guid>https://nldxtd.github.io/p/markdown-syntax-guide/</guid>
<description><img src="https://nldxtd.github.io/p/markdown-syntax-guide/pawel-czerwinski-8uZPynIu-rQ-unsplash.jpg" alt="Featured image of post Markdown Syntax Guide" /><p>This article offers a sample of basic Markdown syntax that can be used in Hugo content files, also it shows whether basic HTML elements are decorated with CSS in a Hugo theme.</p>
<h2 id="headings">Headings</h2>
<p>The following HTML <code>&lt;h1&gt;</code>—<code>&lt;h6&gt;</code> elements represent six levels of section headings. <code>&lt;h1&gt;</code> is the highest section level while <code>&lt;h6&gt;</code> is the lowest.</p>
<h1 id="h1">H1</h1>
<h2 id="h2">H2</h2>
<h3 id="h3">H3</h3>
<h4 id="h4">H4</h4>
<h5 id="h5">H5</h5>
<h6 id="h6">H6</h6>
<h2 id="paragraph">Paragraph</h2>
<p>Xerum, quo qui aut unt expliquam qui dolut labo. Aque venitatiusda cum, voluptionse latur sitiae dolessi aut parist aut dollo enim qui voluptate ma dolestendit peritin re plis aut quas inctum laceat est volestemque commosa as cus endigna tectur, offic to cor sequas etum rerum idem sintibus eiur? Quianimin porecus evelectur, cum que nis nust voloribus ratem aut omnimi, sitatur? Quiatem. Nam, omnis sum am facea corem alique molestrunt et eos evelece arcillit ut aut eos eos nus, sin conecerem erum fuga. Ri oditatquam, ad quibus unda veliamenimin cusam et facea ipsamus es exerum sitate dolores editium rerore eost, temped molorro ratiae volorro te reribus dolorer sperchicium faceata tiustia prat.</p>
<p>Itatur? Quiatae cullecum rem ent aut odis in re eossequodi nonsequ idebis ne sapicia is sinveli squiatum, core et que aut hariosam ex eat.</p>
<h2 id="blockquotes">Blockquotes</h2>
<p>The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a <code>footer</code> or <code>cite</code> element, and optionally with in-line changes such as annotations and abbreviations.</p>
<h4 id="blockquote-without-attribution">Blockquote without attribution</h4>
<blockquote>
<p>Tiam, ad mint andaepu dandae nostion secatur sequo quae.
<strong>Note</strong> that you can use <em>Markdown syntax</em> within a blockquote.</p>
</blockquote>
<h4 id="blockquote-with-attribution">Blockquote with attribution</h4>
<blockquote>
<p>Don&rsquo;t communicate by sharing memory, share memory by communicating.<!-- raw HTML omitted -->
— <!-- raw HTML omitted -->Rob Pike<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup><!-- raw HTML omitted --></p>
</blockquote>
<h2 id="tables">Tables</h2>
<p>Tables aren&rsquo;t part of the core Markdown spec, but Hugo supports supports them out-of-the-box.</p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Age</th>
</tr>
</thead>
<tbody>
<tr>
<td>Bob</td>
<td>27</td>
</tr>
<tr>
<td>Alice</td>
<td>23</td>
</tr>
</tbody>
</table>
<h4 id="inline-markdown-within-tables">Inline Markdown within tables</h4>
<table>
<thead>
<tr>
<th>Italics</th>
<th>Bold</th>
<th>Code</th>
</tr>
</thead>
<tbody>
<tr>
<td><em>italics</em></td>
<td><strong>bold</strong></td>
<td><code>code</code></td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th>A</th>
<th>B</th>
<th>C</th>
<th>D</th>
<th>E</th>
<th>F</th>
</tr>
</thead>
<tbody>
<tr>
<td>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</td>
<td>Phasellus ultricies, sapien non euismod aliquam, dui ligula tincidunt odio, at accumsan nulla sapien eget ex.</td>
<td>Proin eleifend dictum ipsum, non euismod ipsum pulvinar et. Vivamus sollicitudin, quam in pulvinar aliquam, metus elit pretium purus</td>
<td>Proin sit amet velit nec enim imperdiet vehicula.</td>
<td>Ut bibendum vestibulum quam, eu egestas turpis gravida nec</td>
<td>Sed scelerisque nec turpis vel viverra. Vivamus vitae pretium sapien</td>
</tr>
</tbody>
</table>
<h2 id="code-blocks">Code Blocks</h2>
<h4 id="code-block-with-backticks">Code block with backticks</h4>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="cp">&lt;!doctype html&gt;</span>
<span class="p">&lt;</span><span class="nt">html</span> <span class="na">lang</span><span class="o">=</span><span class="s">&#34;en&#34;</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">head</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">meta</span> <span class="na">charset</span><span class="o">=</span><span class="s">&#34;utf-8&#34;</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">title</span><span class="p">&gt;</span>Example HTML5 Document<span class="p">&lt;/</span><span class="nt">title</span><span class="p">&gt;</span>
<span class="p">&lt;/</span><span class="nt">head</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">body</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;</span>Test<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span>
<span class="p">&lt;/</span><span class="nt">body</span><span class="p">&gt;</span>
<span class="p">&lt;/</span><span class="nt">html</span><span class="p">&gt;</span>
</code></pre></td></tr></table>
</div>
</div><h4 id="code-block-indented-with-four-spaces">Code block indented with four spaces</h4>
<pre><code>&lt;!doctype html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
&lt;meta charset=&quot;utf-8&quot;&gt;
&lt;title&gt;Example HTML5 Document&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;p&gt;Test&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<h4 id="code-block-with-hugos-internal-highlight-shortcode">Code block with Hugo&rsquo;s internal highlight shortcode</h4>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="cp">&lt;!doctype html&gt;</span>
<span class="p">&lt;</span><span class="nt">html</span> <span class="na">lang</span><span class="o">=</span><span class="s">&#34;en&#34;</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">head</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">meta</span> <span class="na">charset</span><span class="o">=</span><span class="s">&#34;utf-8&#34;</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">title</span><span class="p">&gt;</span>Example HTML5 Document<span class="p">&lt;/</span><span class="nt">title</span><span class="p">&gt;</span>
<span class="p">&lt;/</span><span class="nt">head</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">body</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;</span>Test<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span>
<span class="p">&lt;/</span><span class="nt">body</span><span class="p">&gt;</span>
<span class="p">&lt;/</span><span class="nt">html</span><span class="p">&gt;</span></code></pre></td></tr></table>
</div>
</div>
<h4 id="diff-code-block">Diff code block</h4>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-diff" data-lang="diff">[dependencies.bevy]
git = &#34;https://github.com/bevyengine/bevy&#34;
rev = &#34;11f52b8c72fc3a568e8bb4a4cd1f3eb025ac2e13&#34;
<span class="gd">- features = [&#34;dynamic&#34;]
</span><span class="gd"></span><span class="gi">+ features = [&#34;jpeg&#34;, &#34;dynamic&#34;]
</span></code></pre></td></tr></table>
</div>
</div><h2 id="list-types">List Types</h2>
<h4 id="ordered-list">Ordered List</h4>
<ol>
<li>First item</li>
<li>Second item</li>
<li>Third item</li>
</ol>
<h4 id="unordered-list">Unordered List</h4>
<ul>
<li>List item</li>
<li>Another item</li>
<li>And another item</li>
</ul>
<h4 id="nested-list">Nested list</h4>
<ul>
<li>Fruit
<ul>
<li>Apple</li>
<li>Orange</li>
<li>Banana</li>
</ul>
</li>
<li>Dairy
<ul>
<li>Milk</li>
<li>Cheese</li>
</ul>
</li>
</ul>
<h2 id="other-elements--abbr-sub-sup-kbd-mark">Other Elements — abbr, sub, sup, kbd, mark</h2>
<p><!-- raw HTML omitted -->GIF<!-- raw HTML omitted --> is a bitmap image format.</p>
<p>H<!-- raw HTML omitted -->2<!-- raw HTML omitted -->O</p>
<p>X<!-- raw HTML omitted -->n<!-- raw HTML omitted --> + Y<!-- raw HTML omitted -->n<!-- raw HTML omitted --> = Z<!-- raw HTML omitted -->n<!-- raw HTML omitted --></p>
<p>Press <!-- raw HTML omitted --><!-- raw HTML omitted -->CTRL<!-- raw HTML omitted -->+<!-- raw HTML omitted -->ALT<!-- raw HTML omitted -->+<!-- raw HTML omitted -->Delete<!-- raw HTML omitted --><!-- raw HTML omitted --> to end the session.</p>
<p>Most <!-- raw HTML omitted -->salamanders<!-- raw HTML omitted --> are nocturnal, and hunt for insects, worms, and other small creatures.</p>
<h2 id="hyperlinked-image">Hyperlinked image</h2>
<p><a class="link" href="https://google.com" target="_blank" rel="noopener"
><img src="https://www.google.com/images/branding/googlelogo/1x/googlelogo_light_color_272x92dp.png"
loading="lazy"
alt="Google"
></a></p>
<section class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1" role="doc-endnote">
<p>The above quote is excerpted from Rob Pike&rsquo;s <a class="link" href="https://www.youtube.com/watch?v=PAAkCSZUG1c" target="_blank" rel="noopener"
>talk</a> during Gopherfest, November 18, 2015.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</section></description>
</item>
<item>
<title>Math Typesetting</title>
<link>https://nldxtd.github.io/p/math-typesetting/</link>
<pubDate>Fri, 08 Mar 2019 00:00:00 +0000</pubDate>
<guid>https://nldxtd.github.io/p/math-typesetting/</guid>
<description><p>Mathematical notation in a Hugo project can be enabled by using third party JavaScript libraries.</p>
<p>In this example we will be using <a class="link" href="https://katex.org/" target="_blank" rel="noopener"
>KaTeX</a></p>
<ul>
<li>Create a partial under <code>/layouts/partials/math.html</code></li>
<li>Within this partial reference the <a class="link" href="https://katex.org/docs/autorender.html" target="_blank" rel="noopener"
>Auto-render Extension</a> or host these scripts locally.</li>
<li>Include the partial in your templates like so:</li>
</ul>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="o">{{</span> <span class="k">if</span> or .Params.math .Site.Params.math <span class="o">}}</span>
<span class="o">{{</span> partial <span class="s2">&#34;math.html&#34;</span> . <span class="o">}}</span>
<span class="o">{{</span> end <span class="o">}}</span>
</code></pre></td></tr></table>
</div>
</div><ul>
<li>To enable KaTex globally set the parameter <code>math</code> to <code>true</code> in a project&rsquo;s configuration</li>
<li>To enable KaTex on a per page basis include the parameter <code>math: true</code> in content files</li>
</ul>
<p><strong>Note:</strong> Use the online reference of <a class="link" href="https://katex.org/docs/supported.html" target="_blank" rel="noopener"
>Supported TeX Functions</a></p>
<h3 id="examples">Examples</h3>
<p>Block math:
$$
\varphi = 1+\frac{1} {1+\frac{1} {1+\frac{1} {1+\cdots} } }
$$</p></description>
</item>
<item>
<title>Projects</title>
<link>https://nldxtd.github.io/projects/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://nldxtd.github.io/projects/</guid>
<description><h2 id="summary">Summary</h2>
<p>This Page is for displaying the projects I have been taking part in during my coding career, you can find the repos through my github account <a class="link" href="https://github.com/nldxtd" target="_blank" rel="noopener"
>nldxtd</a>.</p>
<p>Those projects can be divided into two categories, one is course projects I &rsquo;ve been working on in THU classes, the other is personal projects made out of personal interests or outsourcing demands.</p>
<p>Apart from those projects, algorithm is also important through my study, which won&rsquo;t be displayed at this page.</p>
<h2 id="course-projects">Course Projects</h2>
<!-- raw HTML omitted -->
<h3 id="logo-language-compiler">LOGO Language Compiler</h3>
<p>Summary: First project of my coding career, using C++ to compile LOGO file(text file defined ourselves) to picture format BMP.</p>
<p>Semester: Fall 2019.</p>
<p>Skills: C++, video editing.</p>
<p>Code Repo: <a class="link" href="https://github.com/" target="_blank" rel="noopener"
>LOGO compiler</a></p>
<!-- raw HTML omitted -->
<h3 id="snake-">Snake 🐍</h3>
<p>Summary: Classic game snake(贪吃蛇) implemented in Qt.</p>
<p>Semester: Summer 2020.</p>
<p>Skills: Qt, C++.</p>
<p>Code Repo: <a class="link" href="https://github.com/" target="_blank" rel="noopener"
>Snake</a></p>
<!-- raw HTML omitted -->
<h3 id="dou-dizhu-">Dou Dizhu 🃏</h3>
<p>Summary: Classic game Dou Dizhu(斗地主) implemented in Qt.</p>
<p>Semester: Summer 2020.</p>
<p>Skills: Qt, Qt Socket, C++.</p>
<p>Code Repo: <a class="link" href="https://github.com/" target="_blank" rel="noopener"
>Dou Dizhu</a></p>
<!-- raw HTML omitted -->
<h3 id="快红-快手公司合作软件工程项目">快红 🍁(快手公司合作软件工程项目)</h3>
<p>Summary: Software Engineer project cowork with Beijing Kuaishou Technology Co., Ltd, using data provided by the company to do data visualization and give advice to content producer. As a team work, I mainly took part in frontend work.</p>
<p>Semester: Spring 2021.</p>
<p>Skills: Vue.js, python, django, database.</p>
<p>Code Repo: Private.</p>
<!-- raw HTML omitted -->
<h3 id="router-lab">Router-Lab</h3>
<p>Summary: PA of Network Principle, implement a router supporting ICMP, RIP, also do some correctness check.</p>
<p>Semester: Spring 2021.</p>
<p>Skills: C++, Network Protocol.</p>
<p>Code Repo: <a class="link" href="https://github.com/" target="_blank" rel="noopener"
>Router-Lab</a></p>
<!-- raw HTML omitted -->
<h3 id="py-pinyin">Py-PinYin</h3>
<p>Summary: A PinYin input method implemented in python base on Markov Chain.</p>
<p>Semester: Spring 2021.</p>
<p>Skills: Python, Markov Chain.</p>
<p>Code Repo: <a class="link" href="https://github.com/" target="_blank" rel="noopener"
>Py-PinYin</a></p>
<!-- raw HTML omitted -->
<h3 id="fourchess-">FourChess ♟</h3>
<p>Summary: Namely AI implement in python based on Monte Carlo tree search(MCTS).</p>
<p>Semester: Spring 2021.</p>
<p>Skills: C++, MCTS.</p>
<p>Code Repo: <a class="link" href="https://github.com/" target="_blank" rel="noopener"
>FourChess</a></p>
<!-- raw HTML omitted -->
<h3 id="sentence-emotion-classifier-">Sentence Emotion Classifier 📖</h3>
<p>Summary: A classfy task using CNN/RNN/LSTM, result not so satisfying because of data problem.</p>
<p>Semester: Spring 2021.</p>
<p>Skills: Tensorflow.</p>
<p>Code Repo: <a class="link" href="https://github.com/" target="_blank" rel="noopener"
>Emotion Classifier</a></p>
<!-- raw HTML omitted -->
<h3 id="image-rendering-engine-">Image Rendering Engine 📷</h3>
<p>Summary: Image Rendering Engine implemented in C++ based on SPPM algorithm.</p>
<p>Semester: Spring 2021.</p>
<p>Skills: C++, SMMP, Parallel Development.</p>
<p>Code Repo: <a class="link" href="https://github.com/" target="_blank" rel="noopener"
>Image Rendering Engine</a></p>
<!-- raw HTML omitted -->
<h3 id="naive-database-">Naive-Database 📚</h3>
<p>Summary: A toy DBMS(Database Manage System) implemented in rust from scratch, supports CURD operation and other database precations.</p>
<p>Semester: Fall 2021.</p>
<p>Skills: Rust.</p>
<p>Code Repo: <a class="link" href="https://github.com/" target="_blank" rel="noopener"
>Naive-Database</a></p>
<!-- raw HTML omitted -->
<h3 id="mini-decaf">Mini-Decaf</h3>
<p>Summary: PA of Compilation principle, implemented in python, used for mini-decaf(subset of C Language).</p>
<p>Semester: Fall 2021.</p>
<p>Skills: Python, AST, Compilation principle.</p>
<p>Code Repo: <a class="link" href="https://github.com/" target="_blank" rel="noopener"
>Mini-Decaf</a></p>
<!-- raw HTML omitted -->
<h3 id="rcore">rCore</h3>
<p>Summary: PA of OS course, implement an operating system using rust.</p>
<p>Semester: Fall 2021.</p>
<p>Skills: Rust.</p>
<p>Code Repo: <a class="link" href="https://github.com/" target="_blank" rel="noopener"
>rCore</a></p>
<!-- raw HTML omitted -->
<h3 id="cpu">CPU</h3>
<p>Summary: Seen as the hardest course project in our department. Design a five-stage pipeline CPU using verilog, also add forwarding technology and support hardware-IO like vga/flash.</p>
<p>Semester: Fall 2021.</p>
<p>Skills: Verilog, pipeline CPU, hardware design.</p>
<p>Code Repo: <a class="link" href="https://github.com/" target="_blank" rel="noopener"
>CPU</a></p>
<!-- raw HTML omitted -->
<h2 id="personal-projects">Personal Projects</h2>
<h3 id="nucearth-">NucEarth 🌍</h3>
<p>Summary: Inspired by <a class="link" href="https://github.com/cambecc/earth" target="_blank" rel="noopener"
>earth</a>, which visualize weather condition on a globe. NucEarch is for visualizing pollution infected by nuclear leak.</p>
<p>Skills: javascript.</p>
<p>Demo Website: <a class="link" href="https://nuc.lo-li.co/" target="_blank" rel="noopener"
>NucEarth</a></p>
<p>Code Repo: Private.</p>
<!-- raw HTML omitted -->
<h3 id="robot-detecting-and-social-network-analysis-">Robot Detecting and Social Network Analysis 🤖️</h3>
<p>Summary: A master thesis work to detect robot on social media and social network analysis. I took part in the data crawling and processing, robot detecting.</p>
<p>Skills: python.</p>
<p>Code Repo: Private.</p>
<!-- raw HTML omitted -->
<h3 id="gongpincha-">GongPinCha 🧼</h3>
<p>Summary: A form filling Applets cooperates with an official department for data collecting.</p>
<p>Skills: React-Native, Wechat Mini Program.</p>
<p>Demo: 工品查 WeChat Mini Program.</p>
</description>
</item>
<item>
<title>Search</title>
<link>https://nldxtd.github.io/search/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://nldxtd.github.io/search/</guid>
<description></description>
</item>
</channel>
</rss>