-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
293 lines (146 loc) · 10 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
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
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Jinge Li's Blog</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="icon" href="/images/favicon.ico">
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/css/highlight.css">
<meta name="description" content="This is where I blog tech stuffs.">
<meta property="og:type" content="website">
<meta property="og:title" content="Jinge Li's Blog">
<meta property="og:url" content="https://chinapandaman.github.io/index.html">
<meta property="og:site_name" content="Jinge Li's Blog">
<meta property="og:description" content="This is where I blog tech stuffs.">
<meta property="og:locale" content="en_US">
<meta property="article:author" content="Jinge Li">
<meta property="article:tag" content="Coding, Tech">
<meta name="twitter:card" content="summary"><meta name="generator" content="Hexo 7.0.0"><link rel="alternate" href="/atom.xml" title="Jinge Li's Blog" type="application/atom+xml">
</head>
<body>
<div id="wrapper">
<header id="header">
<h1 id="title">
<a href="/">Jinge Li's Blog</a>
</h1>
<nav>
<a class="nav-link" href="/">Home</a>
<span class="nav-spacer">×</span>
<a class="nav-link" href="/archives">Archives</a>
<span class="nav-spacer">×</span>
<a class="nav-link" target="_blank" rel="noopener" href="https://github.com/chinapandaman">GitHub</a>
<span class="nav-spacer">×</span>
<a class="nav-link" href="/atom.xml">RSS</a>
</nav>
</header>
<div id="content">
<article id="post-pypdfform-blog-1" class="article article-type-post" itemprop="blogPost" itemscope>
<div class="article-inner">
<header class="article-header">
<h2 class="article-title" itemprop="name">
<a href="/2024/01/15/pypdfform-blog-1/">CI/CD in PyPDFForm</a>
</h2>
<div class="article-meta">
<time class="article-date" datetime="2024-01-15T21:47:39.000Z" itemprop="datePublished">January 15, 2024, 3:47 PM</time>
</div>
</header>
<div class="article-entry" itemprop="articleBody">
<h3 id="Preface"><a href="#Preface" class="headerlink" title="Preface"></a>Preface</h3><p>Happy new year fellow developers! The <a target="_blank" rel="noopener" href="https://youtu.be/8t1RdAKwr9w?si=AcsOtfFHjuuoVOXC">speak</a> I did at the Chicago Python User Group was a huge success and I hope everyone enjoyed it. I’d like to start a series of blogs which will cover a number of subjects related to <a target="_blank" rel="noopener" href="https://github.com/chinapandaman/PyPDFForm">PyPDFForm</a>. These subjects will hopefully cover some of the more in depth technical details that I didn’t get to cover during my speak.</p>
<p>In this first blog, I want to talk about all the CI/CD pipelines I have set up for the project that ensured its stability and automation. These pipelines are also in my opinion quite general purpose and can be used by any Python project in the future.</p>
</div>
<div class="article-more-link">
<a href="/2024/01/15/pypdfform-blog-1/#more">read more</a>
</div>
</div>
</article>
<article id="post-chipy-blog-1" class="article article-type-post" itemprop="blogPost" itemscope>
<div class="article-inner">
<header class="article-header">
<h2 class="article-title" itemprop="name">
<a href="/2023/11/06/chipy-blog-1/">ChiPy Speak Script</a>
</h2>
<div class="article-meta">
<time class="article-date" datetime="2023-11-07T04:16:41.000Z" itemprop="datePublished">November 6, 2023, 10:16 PM</time>
</div>
</header>
<div class="article-entry" itemprop="articleBody">
<h3 id="Preface"><a href="#Preface" class="headerlink" title="Preface"></a>Preface</h3><p>It’s been a while since the last time I wrote a blog. I have been doing a lot of travels in the last couple months.</p>
<p>On December 14th I will have the pleasure of presenting my first public tech speak at the Chicago Python User Group. <a target="_blank" rel="noopener" href="https://www.chipy.org/meetings/238/">Here</a> is a link to the event with some description of my speak. So I’d like to use this blog as a place to write down the script of my speak so that I could keep practicing.</p>
</div>
<div class="article-more-link">
<a href="/2023/11/06/chipy-blog-1/#more">read more</a>
</div>
</div>
</article>
<article id="post-vim-blog-4" class="article article-type-post" itemprop="blogPost" itemscope>
<div class="article-inner">
<header class="article-header">
<h2 class="article-title" itemprop="name">
<a href="/2023/08/06/vim-blog-4/">Vim as Primary IDE - Buffer Related</a>
</h2>
<div class="article-meta">
<time class="article-date" datetime="2023-08-06T18:40:47.000Z" itemprop="datePublished">August 6, 2023, 1:40 PM</time>
</div>
</header>
<div class="article-entry" itemprop="articleBody">
<h3 id="Thank-You-Bram"><a href="#Thank-You-Bram" class="headerlink" title="Thank You Bram"></a>Thank You Bram</h3><p>Before I start this blog today, please allow me to express my deepest grieving to Mr. Bram Moolenaar, the author of Vim who just left us forever. Without your work many of us developers will never have the opportunity of using such a great tool that boosts our efficiency. You, like many other contributors, are the true martyr to the spirit of open source.</p>
<h3 id="Buffer-Intro"><a href="#Buffer-Intro" class="headerlink" title="Buffer Intro"></a>Buffer Intro</h3><p>A buffer is an area of Vim’s memory used to hold text read from a file. Buffers are what allow Vim to edit multiple files simultaneously and switch between each of them. In this blog, I will be talking about some plugins and configs that make editing buffers of Vim an experience similar to a modern IDE.</p>
</div>
<div class="article-more-link">
<a href="/2023/08/06/vim-blog-4/#more">read more</a>
</div>
</div>
</article>
<article id="post-sonar-blog-1" class="article article-type-post" itemprop="blogPost" itemscope>
<div class="article-inner">
<header class="article-header">
<h2 class="article-title" itemprop="name">
<a href="/2023/05/15/sonar-blog-1/">Sonar Analysis Against PyPDFForm</a>
</h2>
<div class="article-meta">
<time class="article-date" datetime="2023-05-16T01:33:03.000Z" itemprop="datePublished">May 15, 2023, 8:33 PM</time>
</div>
</header>
<div class="article-entry" itemprop="articleBody">
<h3 id="Motivation"><a href="#Motivation" class="headerlink" title="Motivation"></a>Motivation</h3><p>While working on <a target="_blank" rel="noopener" href="https://github.com/chinapandaman/PyPDFForm">PyPDFForm</a>, I implemented many different mechanisms to ensure the code quality of the project. Some of these include:</p>
<ul>
<li>Testing using <a target="_blank" rel="noopener" href="https://pytest.org/">pytest</a>.</li>
<li>Uploading coverage data to <a target="_blank" rel="noopener" href="https://app.codecov.io/gh/chinapandaman/PyPDFForm">codecov</a>.</li>
<li>Formatting the code using <a target="_blank" rel="noopener" href="https://github.com/chinapandaman/PyPDFForm/blob/master/.github/workflows/python-black-isort.yml">black/isort</a>.</li>
<li>Linting using <a target="_blank" rel="noopener" href="https://pypi.org/project/pylint/">pylint</a>.</li>
</ul>
<p>Recently I have learned about the community loved static analysis tool <a target="_blank" rel="noopener" href="https://www.sonarsource.com/products/sonarqube/">SonarQube</a>. So I ask myself what kind of static analysis result I would get from it, especially with all these mechanisms I already have to ensure code quality. In this blog, I will find out answers to this exact question.</p>
</div>
<div class="article-more-link">
<a href="/2023/05/15/sonar-blog-1/#more">read more</a>
</div>
</div>
</article>
<article id="post-vim-blog-3" class="article article-type-post" itemprop="blogPost" itemscope>
<div class="article-inner">
<header class="article-header">
<h2 class="article-title" itemprop="name">
<a href="/2023/05/04/vim-blog-3/">Vim as Primary IDE - Basic Editing</a>
</h2>
<div class="article-meta">
<time class="article-date" datetime="2023-05-04T13:14:29.000Z" itemprop="datePublished">May 4, 2023, 8:14 AM</time>
</div>
</header>
<div class="article-entry" itemprop="articleBody">
<h3 id="Finding-Plugins"><a href="#Finding-Plugins" class="headerlink" title="Finding Plugins"></a>Finding Plugins</h3><p>In the previous blog, I discussed how to use vim-plug to manage plugins. So the question now is how do I find all those fancy plugins out there?</p>
<p>On top of just simply google and browse through GitHub, there is a website called <a target="_blank" rel="noopener" href="https://vimawesome.com/">VimAwesome</a> which allows me to browse and search different plugins by categories.</p>
<p>In this blog, I will be talking about some basic plugins and configs that would boost my basic editing experience.</p>
</div>
<div class="article-more-link">
<a href="/2023/05/04/vim-blog-3/#more">read more</a>
</div>
</div>
</article>
<nav id="page-nav" class="page-nav">
<span class="page-number current">1</span><a class="page-number" href="/page/2/">2</a><a class="extend next" rel="next" href="/page/2/">Next »</a>
</nav>
</div>
</div>
</body>
</html>