-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
444 lines (379 loc) · 35.7 KB
/
Copy pathindex.html
File metadata and controls
444 lines (379 loc) · 35.7 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
<!DOCTYPE html><html lang="en" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0,viewport-fit=cover"><title>Seanoll</title><meta name="author" content="Seanoll"><meta name="copyright" content="Seanoll"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta property="og:type" content="website">
<meta property="og:title" content="Seanoll">
<meta property="og:url" content="http://seanoll.github.io/index.html">
<meta property="og:site_name" content="Seanoll">
<meta property="og:locale" content="en_US">
<meta property="og:image" content="http://seanoll.github.io/img/avatar.jpg">
<meta property="article:author" content="Seanoll">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="http://seanoll.github.io/img/avatar.jpg"><script type="application/ld+json">{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "Seanoll",
"alternateName": [
"seanoll.github.io"
],
"url": "http://seanoll.github.io/"
}</script><link rel="shortcut icon" href="/img/favicon.png"><link rel="canonical" href="http://seanoll.github.io/index.html"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/css/index.css?v=5.6.0"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@7.3.1/css/all.min.css"><script>
(() => {
const saveToLocal = {
set: (key, value, ttl) => {
const data = { value }
if (ttl != null) {
data.expiry = Date.now() + ttl * 86400000
}
localStorage.setItem(key, JSON.stringify(data))
},
get: key => {
const itemStr = localStorage.getItem(key)
if (!itemStr) return
try {
const data = JSON.parse(itemStr)
if (data.expiry && Date.now() > data.expiry) {
localStorage.removeItem(key)
return
}
return data.value
} catch {
localStorage.removeItem(key)
}
}
}
const scriptCache = new Map()
const cssCache = new Map()
window.btf = {
saveToLocal,
getScript: (url, attr = {}) => {
if (scriptCache.has(url)) {
return scriptCache.get(url)
}
const promise = new Promise((resolve, reject) => {
const script = document.createElement('script')
script.src = url
script.async = true
for (const key in attr) {
script.setAttribute(key, attr[key])
}
script.onload = resolve
script.onerror = reject
document.head.appendChild(script)
})
scriptCache.set(url, promise)
return promise
},
getCSS: (url, id) => {
if (cssCache.has(url)) {
return cssCache.get(url)
}
const promise = new Promise((resolve, reject) => {
const link = document.createElement('link')
link.rel = 'stylesheet'
link.href = url
if (id) {
link.id = id
}
link.onload = resolve
link.onerror = reject
document.head.appendChild(link)
})
cssCache.set(url, promise)
return promise
},
addGlobalFn: (key, fn, name = false, parent = window) => {
if (!false && key.startsWith('pjax')) return
const globalFn = parent.globalFn || {}
globalFn[key] = globalFn[key] || {}
globalFn[key][name || Object.keys(globalFn[key]).length] = fn
parent.globalFn = globalFn
}
}
const metaThemeColor = document.querySelector('meta[name="theme-color"]')
const activateDarkMode = () => {
document.documentElement.dataset.theme = 'dark'
if (metaThemeColor !== null) {
metaThemeColor.setAttribute('content', '#0d0d0d')
}
}
const activateLightMode = () => {
document.documentElement.dataset.theme = 'light'
if (metaThemeColor !== null) {
metaThemeColor.setAttribute('content', '#ffffff')
}
}
btf.activateDarkMode = activateDarkMode
btf.activateLightMode = activateLightMode
const theme = saveToLocal.get('theme')
theme === 'dark' ? activateDarkMode() : theme === 'light' ? activateLightMode() : null
const asideStatus = saveToLocal.get('aside-status')
if (asideStatus !== undefined) {
document.documentElement.classList.toggle('hide-aside', asideStatus === 'hide')
}
const detectApple = () => {
if (/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)) {
document.documentElement.classList.add('apple')
}
}
detectApple()
})()
</script><script>const GLOBAL_CONFIG = {
root: '/',
algolia: undefined,
localSearch: undefined,
translate: undefined,
highlight: {"plugin":"highlight.js","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false,"highlightFullpage":false,"highlightMacStyle":false},
copy: {
success: 'Copy Successful',
error: 'Copy Failed',
noSupport: 'Browser Not Supported'
},
relativeDate: {
homepage: false,
post: false
},
runtime: '',
dateSuffix: {
just: 'Just now',
min: 'minutes ago',
hour: 'hours ago',
day: 'days ago',
month: 'months ago'
},
copyright: undefined,
lightbox: 'null',
Snackbar: undefined,
infinitegrid: {
js: 'https://cdn.jsdelivr.net/npm/@egjs/infinitegrid@4.13.0/dist/infinitegrid.min.js',
buttonText: 'Load More'
},
isPhotoFigcaption: false,
islazyloadPlugin: false,
isAnchor: false,
percent: {
toc: true,
rightside: false,
},
autoDarkmode: false
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE = {
title: 'Seanoll',
isHighlightShrink: false,
isToc: false,
pageType: 'home'
}</script><meta name="generator" content="Hexo 8.1.1"><style>mjx-container[jax="SVG"] {
direction: ltr;
}
mjx-container[jax="SVG"] > svg {
overflow: visible;
}
mjx-container[jax="SVG"][display="true"] {
display: block;
text-align: center;
margin: 1em 0;
}
mjx-container[jax="SVG"][justify="left"] {
text-align: left;
}
mjx-container[jax="SVG"][justify="right"] {
text-align: right;
}
g[data-mml-node="merror"] > g {
fill: red;
stroke: red;
}
g[data-mml-node="merror"] > rect[data-background] {
fill: yellow;
stroke: none;
}
g[data-mml-node="mtable"] > line[data-line] {
stroke-width: 70px;
fill: none;
}
g[data-mml-node="mtable"] > rect[data-frame] {
stroke-width: 70px;
fill: none;
}
g[data-mml-node="mtable"] > .mjx-dashed {
stroke-dasharray: 140;
}
g[data-mml-node="mtable"] > .mjx-dotted {
stroke-linecap: round;
stroke-dasharray: 0,140;
}
g[data-mml-node="mtable"] > svg {
overflow: visible;
}
[jax="SVG"] mjx-tool {
display: inline-block;
position: relative;
width: 0;
height: 0;
}
[jax="SVG"] mjx-tool > mjx-tip {
position: absolute;
top: 0;
left: 0;
}
mjx-tool > mjx-tip {
display: inline-block;
padding: .2em;
border: 1px solid #888;
font-size: 70%;
background-color: #F8F8F8;
color: black;
box-shadow: 2px 2px 5px #AAAAAA;
}
g[data-mml-node="maction"][data-toggle] {
cursor: pointer;
}
mjx-status {
display: block;
position: fixed;
left: 1em;
bottom: 1em;
min-width: 25%;
padding: .2em .4em;
border: 1px solid #888;
font-size: 90%;
background-color: #F8F8F8;
color: black;
}
foreignObject[data-mjx-xml] {
font-family: initial;
line-height: normal;
overflow: visible;
}
.MathJax path {
stroke-width: 3;
}
mjx-container[display="true"] {
overflow: auto hidden;
}
mjx-container[display="true"] + br {
display: none;
}
</style></head><body><div class="page" id="body-wrap"><header class="full_page" id="page-header" style="background-image: url(/img/bg.jpg);"><nav id="nav"><span id="blog-info"><a class="nav-site-title" href="/"><span class="site-name">Seanoll</span></a></span><div id="menus"></div></nav><div id="site-info"><h1 id="site-title">Seanoll</h1><div id="site-subtitle"><span id="subtitle"></span></div></div><div id="scroll-down"><i class="fas fa-angle-down scroll-down-effects"></i></div></header><main class="layout" id="content-inner"><div class="recent-posts nc" id="recent-posts"><div class="recent-post-items"><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2026/08/02/%E5%A4%A7%E4%B8%80%E4%B8%8B%E5%AD%A6%E6%9C%9F%E6%80%BB%E7%BB%93/" title="大一下学期总结">大一下学期总结</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2026-08-02T12:57:45.000Z" title="Created 2026-08-02 20:57:45">2026-08-02</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/thinking/">thinking</a></span></div><div class="content">由于文笔太烂,我写的文字应该不会像AI生成的…… 转眼间已经成老东西了,我再也不是大学里最年轻的那一批人了。还好,我容易忘记很久以前的事情,这也算是一种活在当下吧。 学习专业分流之后,我的绩点排名下降了,转专业的同学进来之后,又下降了。本来大一上学期还在前10%的,结果这下子一看跌出10%了。所以这个学期努力学习,晚上有课的次数多了,没有zbh陪我,那就自己去教室学。我也经常看到计算机学院的其他同学比我还要努力,在六教10点关灯之后又去二教学到12点再回宿舍,我很惊讶,也自愧不如。 大学的绩点有时就是很看运气,我已经努力复习了数学分析,还是有一些错误,我也明白这不是平时不努力的问题,而是临场发挥的问题,我已经尽力了。我看到有些同学说自己的数电平时分不高,还有四史的随机给分,这些其实都是无法改变的,所以只能在自己能力范围内做到最好吧。 好消息是,最终我以4.1692的绩点和18/349的排名结束了这个学期,马上就能进入前5%了。进入前5%,就达到了外保的门槛(外保真的有那么必要吗?……),接下来就是专心做科研了。 虽然进入了实验室,但这个学期真没做什么实质性的工作,应该也...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2026/07/31/%E5%A4%A7%E5%AD%A6%E8%8B%B1%E6%96%87%E7%BC%A9%E5%86%99%E6%80%8E%E4%B9%88%E8%B5%B7/" title="大学英文缩写怎么起">大学英文缩写怎么起</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2026-07-31T15:08:16.000Z" title="Created 2026-07-31 23:08:16">2026-07-31</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/thinking/">thinking</a></span></div><div class="content">中国大学数量非常多,英文缩写就容易重复,为了避免重复出现了下面这些有意思的现象。 湖南工业大学HUT湖北工业大学HBUT河北工业大学HEBUT哈尔滨工业大学HIT哈尔滨理工大学HRBUST(这个多了个science,但是与华科HUST,湖北科技学院HBUST又重名了) 理论上这五个都能缩写成HUT,因为意思上都是Hxxx University of Technology,哈工大改成了institute研究院,和麻省理工大学MIT有异曲同工之妙,下边的北理工BIT也是这样。 暨南大学JNU江南大学JNU济南大学UJN 它们都可以叫JNU,济南大学把Jinan放在后边避免重复,但暨南大学和江南大学的缩写是一模一样的。由于大学的官方网站格式全都是www.xxx.edu.cn,所以只能有一个使用JNU作为网址,通过官网可以发现,江南大学使用了jiangnan而非jnu,类似地,清华大学使用tsinghua而非thu。 同济大学Tongji天津大学TJU 同济大学最初由德国人创办,其德语简称为 TCU。后来推行拼音,将“同济”音译为 Tongji。 北京理工大学BIT北京工...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2026/07/19/%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%E4%BF%A1%E6%81%AF/" title="如何获取信息">如何获取信息</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2026-07-19T01:38:51.000Z" title="Created 2026-07-19 09:38:51">2026-07-19</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/thinking/">thinking</a></span></div><div class="content">大学阶段,信息是非常宝贵的资源,但是我仍然看到很多人因为信息差而受困。 在大一刚开学的时候,我视奸看到很多人的微信里都有一个叫做“中山大学计算机学院水群”的聊天,可是我却没有。后来我才知道原来是有的班级的学长团成员告诉了他们班的同学,有些人则是通过高中同学被邀请进这个群聊,可惜我没有在那个班里,又不认识几个人。于是我在“中山大学2025级新生群”里询问谁有计算机学院水群,竟然真的有一位同学加了我好友并拉我进群,真的非常感谢她,加入这个群从而加入了计院资料二群,打破了很多信息差,对我的大学生活有很大的帮助。 但是,仍然有人不知道这个信息,我的高中同学在高等代数的期中考试里发挥的很不好,和他交流我才知道他不在资料群里,不知道有往年真题,我觉得非常可惜。 录取结果刚出来,我就从QQ上搜索“中山大学”相关的群聊,然后挑选了两个人多的进群,进群之后在群文件里找到了一些新生指南,在群里也有学长学姐回答我的问题。在开学之后,正如前面所说,从群里还加到了计算机学院水群。 获取信息需要敏锐的观察,当你加入一个群之后,看它的群公告、群文件,有些时候,从群友的聊天中也能学到很多东西,比如在HPC交流群...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2026/05/20/%E5%9C%A8hexo%E5%8D%9A%E5%AE%A2%E7%9A%84%E5%AD%90%E9%A1%B5%E9%9D%A2%E9%83%A8%E7%BD%B2mkdocs/" title="在hexo博客的子页面部署mkdocs">在hexo博客的子页面部署mkdocs</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2026-05-20T15:11:27.000Z" title="Created 2026-05-20 23:11:27">2026-05-20</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/skill/">skill</a></span></div><div class="content">使用Mkdocs完成内容的配置之后,接下来我们需要把写的文章的这些页面部署到我的博客的子页面上。 在github上新建一个项目仓库用来存放mkdocs的内容 在配置文件mkdocs.yml里添加: 1site_url: https://seanoll.github.io/cpp/ # 换成自己的 在mkdocs的项目文件夹里初始化git,连接远程仓库,部署 12345git initgit remote add origin git@github.com:Seanoll/cpp.git # 换成自己的# 如果 error: remote origin already exists.# 执行 git remote remove originmkdocs gh-deploy 这个没复现过,只记录一下解决过程 </div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2026/04/26/AI%E6%B5%85%E8%B0%88/" title="AI浅谈">AI浅谈</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2026-04-25T16:55:37.000Z" title="Created 2026-04-26 00:55:37">2026-04-26</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/thinking/">thinking</a></span></div><div class="content">从ChatGPT爆火开始,人工智能成为了新的风口,发展速度之快令人咋舌。有人说,生产工具的发展会催生新的就业岗位,但目前来看,人工智能导致了互联网行业更加严重的裁员。在大学里,我听到了很多新的概念,但也是迷迷糊糊一知半解,在OpenClaw爆火的时候,我也懒得折腾。但是当我真的亲眼看到现在Agent的能力时,还是会为之惊叹,对于新技术,在头脑里揣测100次,也不如亲手体验1次,如果懒得自己操作,也一定要亲眼看看它的效果,尤其是在线下。 现在各行各业都要AI赋能,虽然感觉更多是一群不懂技术的领导拍脑袋的决定,但是不得不说AI确实有这个能力,它确实能提高各个领域各个环节的效率。从K12教育到高等教育都在想方设法地往课堂里结合AI,我为什么选择了人工智能与大数据呢?因为我觉得未来人工智能将会成为通识,正如程序设计这门课一样。掌握了使用更高效的工具的方法,带来的好处不仅在于就业方面,更在于综合素质。 作为计算机专业的学生,接触到名词很多,所以我想梳理一下AI的基础概念。这里参考了从 LLM 到 Agent Skill,一期视频带你打通底层逻辑!和近年AI应用技术串讲与优质文档分享|Age...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2026/04/24/W4terCTF2026WP/" title="W4terCTF2026WP">W4terCTF2026WP</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2026-04-24T02:18:23.000Z" title="Created 2026-04-24 10:18:23">2026-04-24</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/writeup/">writeup</a></span></div><div class="content">MiscSignIn 输入ls,发现flag,输入cat flag即可 OSINTfind_me 在图片上发现了Zeeland 和Uden,查询得知是在荷兰,同时在N277公路上。 从Zeeland沿着N277公路向南10公里找,由于图片上还有Wi和Wa两个词,找到了一个岔路口,即Middenpeelweg和Noordstraat的交界处 图片上有谷歌水印,在谷歌地图中找到这个岔路口,然后查看这个地方的街景,在网址里面可以看到它的经纬度(https://www.google.com/maps/@51.6329259,5.7476876,3a,75y,5.25h,95.9t/data=!3m7!1e1!3m5!1sIb87d0Yn2JUiNJ8uCYK1Cg!2e0!6shttps:%2F%2Fstreetviewpixels-pa.googleapis.com%2Fv1%2Fthumbnail%3Fcb_client%3Dmaps_sv.tactile%26w%3D900%26h%3D600%26pitch%3D-5.902840457698332%26panoid%3DIb8...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2026/04/13/%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1II%E7%AC%94%E8%AE%B0/" title="程序设计II笔记">程序设计II笔记</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2026-04-13T04:48:18.000Z" title="Created 2026-04-13 12:48:18">2026-04-13</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/learning/">learning</a></span></div><div class="content">现已迁移至程序设计II笔记 </div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2026/04/04/3DGS%E4%BB%A3%E7%A0%81%E8%A7%A3%E8%AF%BB/" title="3DGS代码解读">3DGS代码解读</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2026-04-04T07:49:57.000Z" title="Created 2026-04-04 15:49:57">2026-04-04</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/learning/">learning</a></span></div><div class="content">训练命令行参数:ArgumentParserArgumentParser 是 Python 标准库 argparse 模块中的核心类,用于轻松编写用户友好的命令行接口。它的主要功能是解析命令行参数,使你的 Python 脚本能够接收外部输入,从而实现灵活配置。 核心工作流程使用 ArgumentParser 通常遵循以下三个步骤: 创建解析器 (Create the parser)首先,你需要创建一个 ArgumentParser 对象。这个对象将保存所有解析命令行参数所需的信息。 1234import argparse# 创建一个解析器实例,并添加描述信息parser = argparse.ArgumentParser(description='这是一个用于处理文件的工具') 添加参数 (Add arguments)接下来,通过调用 add_argument() 方法来告诉解析器,你的程序需要接收哪些命令行参数。你可以定义参数的名称、类型、默认值、帮助信息等。 位置参数 (Positional Arguments): 必须提供的参数,根据它们在命令行中的位置来确定。 可选...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2026/04/03/3DGS%E5%A4%8D%E7%8E%B0/" title="3DGS复现">3DGS复现</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2026-04-03T05:59:00.000Z" title="Created 2026-04-03 13:59:00">2026-04-03</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/learning/">learning</a></span></div><div class="content">连接云服务器 在AutoDL里租一台RTX 3090的服务器,选择基础环境:MiniConda Conda3 Python3.10 Ubuntu22.04 CUDA11.8 在VS Code里按Ctrl + Shift + P,输入Remote-SSH,选择Add…,添加远程主机。 在AutoDL里复制登录命令和密码,在VS Code里相应地输入 连接SSH 检查是否安装Git:git --version 生成密钥:ssh-keygen -t ed25519 -C "email@example.com" 复制密钥:cat ~/.ssh/id_ed25519.pub 在Github上的SSH里添加New SSH Key 配置环境 克隆:git clone git@github.com:graphdeco-inria/gaussian-splatting.git --recursive 检查是否安装CUDA:nvcc --version 切换目录:cd gaussian-splatting 换清华源: 1234567891011# 1. 添加清华源的 cha...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2026/03/14/%E8%88%8D%E5%8F%8B%E6%89%93%E5%91%BC%E5%99%9C%E6%80%8E%E4%B9%88%E5%8A%9E%EF%BC%9F/" title="舍友打呼噜怎么办?">舍友打呼噜怎么办?</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2026-03-14T03:55:28.000Z" title="Created 2026-03-14 11:55:28">2026-03-14</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/thinking/">thinking</a></span></div><div class="content">从高中住校开始,我就一直遇到打呼噜的舍友,有可能是因为我睡眠太浅,都对我的影响很大。刚上高中的时候,因为紧张,每天晚上都睡不着。后来干脆走读了,等到分班后换了一个宿舍,舍友还是打呼噜,我买了一个3M耳塞,戴半小时都涨得耳朵疼,而且还没什么用。因为我怕耳塞会拿不出来,还专门买了个带线的。因为走读,只有中午在宿舍睡觉,结果午睡的时候也睡不着,而且常常听到自己的心跳声,后来才知道是因为神经衰弱。到了大学,我还是有打呼噜的舍友,但是睡眠质量明显好多了,因为压力比高中小了很多,但是还是会被呼噜声吵醒,上个学期的时候,我们还会专门下床去叫醒他。这个学期已经懒得叫了,我本来就困,下床再回来给我折腾得都毫无困意了,所以我宁愿不下床。但是每天晚上被吵醒很多次,每次等个二三十分钟才入睡,也不是个办法啊。所以我去网上物色商品,最近买了一个安耳悠的耳塞,确实管用,而且我发现我耳道窄,适合用那个小号的,怪不得高中的时候涨得耳朵疼呢。虽然还是会被吵醒几次,但是睡眠质量有明显的改善,深圳卫健委发的一篇公众号说长期和打呼噜的人一起睡觉还会增加心血管疾病的风险,但是这确实是很多人都面临的一个困境。另一个舍友竟然在...</div></div></div></div><nav id="pagination"><div class="pagination"><span class="page-number current">1</span><a class="page-number" href="/page/2/#content-inner">2</a><a class="extend next" rel="next" href="/page/2/#content-inner"><i class="fas fa-chevron-right fa-fw"></i></a></div></nav></div><div class="aside-content" id="aside-content"><div class="card-widget card-info text-center"><div class="avatar-img"><img src="/img/avatar.jpg" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/></div><div class="author-info-name">Seanoll</div><div class="author-info-description"></div><div class="site-data"><a href="/archives/"><div class="headline">Articles</div><div class="length-num">15</div></a><a href="/tags/"><div class="headline">Tags</div><div class="length-num">8</div></a><a href="/categories/"><div class="headline">Categories</div><div class="length-num">4</div></a></div><a id="card-info-btn" target="_blank" rel="noopener" href="https://github.com/seanoll"><i class="fab fa-github"></i><span>Follow Me</span></a></div><div class="card-widget card-announcement"><div class="item-headline"><i class="fas fa-bullhorn fa-shake"></i><span>Announcement</span></div><div class="announcement_content">This is my Blog</div></div><div class="sticky_layout"><div class="card-widget card-recent-post"><div class="item-headline"><i class="fas fa-history"></i><span>Recent Posts</span></div><div class="aside-list"><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2026/08/02/%E5%A4%A7%E4%B8%80%E4%B8%8B%E5%AD%A6%E6%9C%9F%E6%80%BB%E7%BB%93/" title="大一下学期总结">大一下学期总结</a><time datetime="2026-08-02T12:57:45.000Z" title="Created 2026-08-02 20:57:45">2026-08-02</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2026/07/31/%E5%A4%A7%E5%AD%A6%E8%8B%B1%E6%96%87%E7%BC%A9%E5%86%99%E6%80%8E%E4%B9%88%E8%B5%B7/" title="大学英文缩写怎么起">大学英文缩写怎么起</a><time datetime="2026-07-31T15:08:16.000Z" title="Created 2026-07-31 23:08:16">2026-07-31</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2026/07/19/%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%E4%BF%A1%E6%81%AF/" title="如何获取信息">如何获取信息</a><time datetime="2026-07-19T01:38:51.000Z" title="Created 2026-07-19 09:38:51">2026-07-19</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2026/05/20/%E5%9C%A8hexo%E5%8D%9A%E5%AE%A2%E7%9A%84%E5%AD%90%E9%A1%B5%E9%9D%A2%E9%83%A8%E7%BD%B2mkdocs/" title="在hexo博客的子页面部署mkdocs">在hexo博客的子页面部署mkdocs</a><time datetime="2026-05-20T15:11:27.000Z" title="Created 2026-05-20 23:11:27">2026-05-20</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2026/04/26/AI%E6%B5%85%E8%B0%88/" title="AI浅谈">AI浅谈</a><time datetime="2026-04-25T16:55:37.000Z" title="Created 2026-04-26 00:55:37">2026-04-26</time></div></div></div></div><div class="card-widget card-categories"><div class="item-headline">
<i class="fas fa-folder-open"></i>
<span>Categories</span>
</div>
<ul class="card-category-list" id="aside-cat-list">
<li class="card-category-list-item "><a class="card-category-list-link" href="/categories/learning/"><span class="card-category-list-name">learning</span><span class="card-category-list-count">4</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/skill/"><span class="card-category-list-name">skill</span><span class="card-category-list-count">2</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/thinking/"><span class="card-category-list-name">thinking</span><span class="card-category-list-count">7</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/writeup/"><span class="card-category-list-name">writeup</span><span class="card-category-list-count">1</span></a></li>
</ul></div><div class="card-widget card-tags"><div class="item-headline"><i class="fas fa-tags"></i><span>Tags</span></div><div class="card-tag-cloud"><a href="/tags/%E5%8D%9A%E5%AE%A2/" style="font-size: 1.5em; color: #99a9bf">博客</a> <a href="/tags/%E7%A7%91%E7%A0%94/" style="font-size: 1.5em; color: #99a9bf">科研</a> <a href="/tags/3DGS/" style="font-size: 1.5em; color: #99a9bf">3DGS</a> <a href="/tags/%E6%80%BB%E7%BB%93/" style="font-size: 1.3em; color: #99a1ac">总结</a> <a href="/tags/CTF/" style="font-size: 1.1em; color: #999">CTF</a> <a href="/tags/C/" style="font-size: 1.1em; color: #999">C++</a> <a href="/tags/%E6%96%B9%E6%B3%95/" style="font-size: 1.1em; color: #999">方法</a> <a href="/tags/AI/" style="font-size: 1.1em; color: #999">AI</a></div></div><div class="card-widget card-archives">
<div class="item-headline">
<i class="fas fa-archive"></i>
<span>Archives</span>
</div>
<ul class="card-archive-list">
<li class="card-archive-list-item">
<a class="card-archive-list-link" href="/archives/2026/08/">
<span class="card-archive-list-date">
August 2026
</span>
<span class="card-archive-list-count">1</span>
</a>
</li>
<li class="card-archive-list-item">
<a class="card-archive-list-link" href="/archives/2026/07/">
<span class="card-archive-list-date">
July 2026
</span>
<span class="card-archive-list-count">2</span>
</a>
</li>
<li class="card-archive-list-item">
<a class="card-archive-list-link" href="/archives/2026/05/">
<span class="card-archive-list-date">
May 2026
</span>
<span class="card-archive-list-count">1</span>
</a>
</li>
<li class="card-archive-list-item">
<a class="card-archive-list-link" href="/archives/2026/04/">
<span class="card-archive-list-date">
April 2026
</span>
<span class="card-archive-list-count">5</span>
</a>
</li>
<li class="card-archive-list-item">
<a class="card-archive-list-link" href="/archives/2026/03/">
<span class="card-archive-list-date">
March 2026
</span>
<span class="card-archive-list-count">1</span>
</a>
</li>
<li class="card-archive-list-item">
<a class="card-archive-list-link" href="/archives/2026/02/">
<span class="card-archive-list-date">
February 2026
</span>
<span class="card-archive-list-count">4</span>
</a>
</li>
<li class="card-archive-list-item">
<a class="card-archive-list-link" href="/archives/1970/01/">
<span class="card-archive-list-date">
January 1970
</span>
<span class="card-archive-list-count">1</span>
</a>
</li>
</ul>
</div><div class="card-widget card-webinfo"><div class="item-headline"><i class="fas fa-chart-line"></i><span>Website Info</span></div><div class="webinfo"><div class="webinfo-item"><div class="item-name">Article Count :</div><div class="item-count">15</div></div><div class="webinfo-item"><div class="item-name">Unique Visitors :</div><div class="item-count" id="busuanzi_value_site_uv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">Page Views :</div><div class="item-count" id="busuanzi_value_site_pv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">Last Update :</div><div class="item-count" id="last-push-date" data-lastPushDate="2026-08-02T14:35:10.069Z"><i class="fa-solid fa-spinner fa-spin"></i></div></div></div></div></div></div></main><footer id="footer"><div class="footer-other"><div class="footer-copyright"><span class="copyright">© 2025 - 2026 By Seanoll</span><span class="framework-info"><span>Framework </span><a target="_blank" rel="noopener" href="https://hexo.io">Hexo 8.1.1</a><span class="footer-separator">|</span><span>Theme </span><a target="_blank" rel="noopener" href="https://github.com/jerryc127/hexo-theme-butterfly">Butterfly 5.6.0</a></span></div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="darkmode" type="button" title="Toggle Between Light and Dark Mode"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="Toggle Between Single-column and Double-column"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside-config" type="button" title="Settings"><i class="fas fa-cog fa-spin"></i></button><button id="go-up" type="button" title="Back to Top"><span class="scroll-percent"></span><i class="fas fa-arrow-up"></i></button></div></div><div><script src="/js/utils.js?v=5.6.0"></script><script src="/js/main.js?v=5.6.0"></script><div class="js-pjax"><script>window.typedJSFn = {
init: str => {
window.typed = new Typed('#subtitle', Object.assign({
strings: str,
startDelay: 300,
typeSpeed: 150,
loop: true,
backSpeed: 50,
}, null))
},
run: subtitleType => {
if (true) {
if (typeof Typed === 'function') {
subtitleType()
} else {
btf.getScript('https://cdn.jsdelivr.net/npm/typed.js@3.0.0/dist/typed.umd.min.js').then(subtitleType)
}
} else {
subtitleType()
}
},
processSubtitle: (content, extraContents = []) => {
if (true) {
const sub = [].slice()
if (extraContents.length > 0) {
sub.unshift(...extraContents)
}
if (typeof content === 'string') {
sub.unshift(content)
} else if (Array.isArray(content)) {
sub.unshift(...content)
}
sub.length > 0 && typedJSFn.init(sub)
} else {
document.getElementById('subtitle').textContent = typeof content === 'string' ? content :
(Array.isArray(content) && content.length > 0 ? content[0] : '')
}
}
}
btf.addGlobalFn('pjaxSendOnce', () => { typed && typed.destroy() }, 'typedDestroy')
</script><script>function subtitleType () {
btf.getScript('https://sdk.jinrishici.com/v2/browser/jinrishici.js')
.then(() => {
jinrishici.load(result => {
if (result && result.data && result.data.content) {
typedJSFn.processSubtitle(result.data.content)
} else {
throw new Error('Failed to parse the return value of Jinrishici API')
}
})
})
.catch(err => {
console.error('Failed to get the Jinrishici API:', err)
typedJSFn.processSubtitle([])
})
}
typedJSFn.run(subtitleType)
</script></div><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script></div></body></html>