-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.xml
2076 lines (2076 loc) · 204 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
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Ayx 博客</title><link>https://imayx.top/</link><description>Recent content on Ayx 博客</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Tue, 17 Dec 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://imayx.top/index.xml" rel="self" type="application/rss+xml"/><item><title>PaperMC 服务器允许刷线机/无头活塞等配置</title><link>https://imayx.top/papermcsxj/</link><pubDate>Tue, 17 Dec 2024 00:00:00 +0000</pubDate><guid>https://imayx.top/papermcsxj/</guid><description><p>服务器目录/config/paper-global.yml 中修改以下配置:</p>
<p>无头活塞:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl"> allow-headless-pistons: true
</span></span></code></pre></td></tr></table>
</div>
</div><p>刷线机:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl"> allow-tripwire-disarming-exploits: true
</span></span></code></pre></td></tr></table>
</div>
</div></description></item><item><title>如何从 YouTube 搬运视频?如何做一个合格的 YouTube 搬运工?我搬运视频的方法与原则</title><link>https://imayx.top/howtorepostyoutubevideos/</link><pubDate>Sat, 22 Jun 2024 00:00:00 +0000</pubDate><guid>https://imayx.top/howtorepostyoutubevideos/</guid><description><p><img src="https://imayx.top/howtorepostyoutubevideos/1.png"
width="274"
height="64"
srcset="https://imayx.top/howtorepostyoutubevideos/1_hu11865907720761316183.png 480w, https://imayx.top/howtorepostyoutubevideos/1_hu14881944758905029555.png 1024w"
loading="lazy"
class="gallery-image"
data-flex-grow="428"
data-flex-basis="1027px"
></p>
<p>2577 天前,我上传了我的第一个转载视频(<a class="link" href="https://www.bilibili.com/video/BV1Zx411h7ue/" target="_blank" rel="noopener"
>BV1Zx411h7ue</a>),它来自 YouTube。</p>
<p>到今天为止,我陆陆续续搬运了共 21 个 YouTube 视频,虽然中间中断过长达 694 天,但近两年我又开始偶尔搬运几个了。</p>
<p>想写这样一篇文章也有一阵子了,还是就发在 bilibili 上吧。也许会同时发在我的个人博客(ayx moefox tech)上。</p>
<p>专栏仅支持编辑三次,我会很谨慎地使用这三次机会。这是第一次。</p>
<p>下面包含很多我的个人观点,欢迎各位提出建议和意见。</p>
<p>不同意我的看法也请不要进行任何形式的人身攻击,否则我只能直接举报拉黑,谢谢。</p>
<p>不知道我为什么要说上面那句话。</p>
<p><img src="https://i0.hdslb.com/bfs/article/[email protected]"
loading="lazy"
></p>
<p>我不清楚专栏是否允许包含外链(格式工具是仅支持站内链接),尤其是这些网站很明显都没有也不会备案,因此我会在评论区置顶评论中把我经常用来下载视频文件本身、封面(strerr com)、软字幕(downsub com)文件的网站以及工具的地址放出来。</p>
<h2 id="关于取得原作者的授权">关于取得原作者的授权</h2>
<p>很惭愧,这件最重要的事情我做的相当不足。唯一成功取得授权的一次是<a class="link" href="https://t.bilibili.com/629674018421420670" target="_blank" rel="noopener"
>这次</a>。</p>
<p>一些原作者很神秘,没有在主页和视频简介中留下任何联系方式,在社交媒体上也搜索不到他们的名字。</p>
<p>可以用来联系原作者的途径包括但不限于 Email(电子邮件)、Twitter Direct Message(蓝鸟私信)、Ins DM(绿洲的copy对象)、Discord/不和谐(国内有类似的Oopz、KOOK)、TG(电报)。你也可以在原视频下发评论看看作者会不会回复。</p>
<p>有些频道体量太大了,我都觉得我不值得浪费原作者的时间。</p>
<p>我也不觉得把我的授权请求发到别人的商务合作邮箱里是个合适的做法。</p>
<p>我就不应该在未经授权的情况下搬运这些频道的视频的,虽然别人也这么做,但那不是我这么做的理由。这也是我写这篇文章前犹豫的原因,因为我自己也许就算不上一个“合格的搬运工”。</p>
<p>当然,在简介中写明禁止搬运的视频我是绝对不会搬运的。其实这种视频也很少见。</p>
<h2 id="关于视频本身">关于视频本身</h2>
<p>我的原则是,只搬运自己喜欢的。如果我自己都没看完这个视频,搬运它干嘛呢?</p>
<p>我从来都是直接下载高画质的视频文件再上传到b站,而不是使用屏幕录制软件录制。这样不仅节约时间(使用录制的方法搬运一个十分钟的视频很明显就需要录制十分钟),而且能尽量将视频按原样不降低画质地提供(虽然一开始我只会使用一些提供粘贴视频链接并下载的网站来获取视频,画质会被限制在 720p,因为 YouTube 对于 1080p 及以上的画质似乎是把画面和音频分离存储的,你需要下载后手动使用 FFmpeg 或借助基于 FFmpeg 的脚本/程序合并出有声音的视频),我认为这也是对原作者的一种尊重。</p>
<p>至于b站的投稿工具,我使用得比较少,YouTube 本身就会压缩视频的码率,b站似乎不太会进行二次压缩。更何况这个工具仅支持手机验证码登录,对我这个懒人来说每次都要登录太麻烦了。不过,要上传多P视频似乎只能通过这个工具了,不知道现在是否还支持使用多P功能,b站似乎想把这个功能升级成合集还是什么其它东西。确实,一个多P视频只能点赞投币收藏三连一次,对一些做游戏攻略(尤指方舟作业)的UP主似乎有些不公平。</p>
<p>最后,我从来没想过我搬运的视频会浪费b站的服务器硬盘空间。这不是我该考虑的问题。</p>
<h2 id="关于封面图">关于封面图</h2>
<p>一开始我会任由b站自动从视频中截取,但近两年我都会获取原视频的最高分辨率的封面图并上传。</p>
<p>下载下来的封面图上传到b站总会需要截掉左右两边的一部分,因此有几次我使用了 MSPaint(画图)重新调整尺寸,也就是把封面图压扁,但我最近看着被压扁的封面图觉得这不是什么好做法,也就没再这么做了。</p>
<p>选择视频类型和填写原视频链接
原创和转载这个选项被选择并投稿后就无法修改了。如果你想把转载的视频标为原创,除非你与原作者取得了联系、达成了共识并商议好了收益问题(如果你的账号能获得创作激励),否则,请不要再读这篇和我的其他任何文章了,<strong>我和我的文字都不想看到你</strong>,你是最令我所不齿的那类人之一,get the f*** out.</p>
<p>YouTube 似乎不会对分享的链接加入任何追踪参数,点击分享按钮后复制链接即可,这个链接比你从地址栏里复制的更短,最后一个斜杠后面的随机字母数字组合即是视频 ID。</p>
<p>当然,如果你不喜欢使用 .be 后缀的域名也可以从地址栏中复制 .com 后缀的,但我建议去掉后面乱七八糟的没用参数(如果有,比如&amp;t=1s这种定位到某个时间的)。</p>
<p>我认为填写原视频链接也是对原作者的一种尊重,同时这也能方便其他人(观众/搬运工)用原视频的视频ID找到你搬运的这份副本。</p>
<h2 id="关于标题">关于标题</h2>
<p>一开始我似乎直接沿用原视频的标题(当然现在对以前搬运的稿件也进行了修改),后来会进行笨拙的翻译,如果长度限制宽裕的话会把原来的标题也塞到后面方便来找带字幕版本的b站用户和其他想检查这个视频是否已经被搬运过的搬运工搜索。</p>
<h2 id="关于标签">关于标签</h2>
<p>很明显,在b站上的视频必须有至少一个标签。</p>
<p>选好分区后我大概率会把分区和原作者的ID/频道名加进标签里,一开始可能参考了其他UP主搬运的同一作者的视频,最近还会参考 SocialBlade 对于原视频提供的 tags。</p>
<p>我这个人比较强迫症,因此会尽量凑满十个标签。</p>
<h2 id="关于简介">关于简介</h2>
<p>最近的稿件里我会建议网络环境符合条件的观众在喜欢这个视频的情况下给原作者点个赞,并考虑订阅原作者的频道,同时放上原作者的主页地址。</p>
<p>我也会在限制字数够用的时候放上原视频的简介,有时候这部分也会简单翻译一下。</p>
<p>你不需要在简介里放原视频的链接,在选择转载后出现的那个单独的文本框里填写就行了。它会出现在简介的上方。</p>
<h2 id="关于字幕">关于字幕</h2>
<p>我从来都只使用CC字幕(其实也就这两年开始对一些短视频提供字幕),或者叫软字幕/隐藏式字幕,而不是把字幕压制进视频里,因为这会面临很多问题,比如想改一个错别字或一个单词就得重新渲染一遍整个视频,观众无法自主选择字幕的语言、大小和字体等样式,会挡住原视频的画面等等。主要原因还是因为我懒,根本不知道怎么把字幕压进视频里。CC字幕好处挺多的,为什么不用呢?</p>
<p>一些视频已经在 YouTube 上提供了中文的CC软字幕,这很好,我会直接把中文字幕扒下来(下载 .srt 文件,别下载成没有时间轴的 txt 了)在稿件过审后上传:因为b站不支持在投稿视频的同时提交软字幕。</p>
<p>但值得肯定的一点是,可以允许观众投稿字幕。观众投稿的字幕在展示前需要经过你的审核。如果你懒得翻译中文字幕,不妨等着观众来投稿,虽然大多数情况下你一份机翻字幕都不会收到。</p>
<p><img src="https://i0.hdslb.com/bfs/article/129de328aff48d86dc68c29a72747cf10ffad79f.png@1256w_510h_!web-article-pic.avif"
loading="lazy"
alt="为你的视频添加软字幕的入口"
></p>
<p>不硬压字幕的另一个问题在这里就体现出来了:一些视频在b站上明明已经存在好几份良莠不齐(视频本身的画质和封面图的质量、标题简介标签和字幕的质量)的副本了,却不能允许我再撞一下这个车,但其他将字幕硬加到视频上的UP主却不受此限制(心理不平衡了有点)。我无力改变这样的现状,只能远离这些已经被搬运过的视频。</p>
<p>对于没有提供中文字幕的视频,如果有创作者自行上传的英文字幕我同样会原样提供,并翻译成中文(现在似乎还有一个视频的这项工作没完成);另外,一些自动生成的字幕质量其实也不错,只是在一些单词上需要手动调整大小写和拼写错误这些细节。</p>
<p>至于连自动生成的字幕都没有的视频,我精力有限,不会去做时间轴,太累了(虽然似乎可以打好字幕后使用一些AI驱动的工具来帮我对时间轴,但翻译需要对照英文原文,我还得把英文字幕打出来),更多情况下根本不会搬运。</p>
<p>除了中文和英语我目前不会第三种语言,因此其他语言的视频如果创作者没有提供中文字幕也拜拜了,因为我看都看不懂,这时候再搬运就违反了我“只搬运自己感兴趣的视频”的原则。更何这时候大多数b站用户可能都看不懂,我也不能提供字幕,这个搬运有什么意义呢?</p>
<p><img src="https://i0.hdslb.com/bfs/article/35ebb9334a55ad8cd5f5e851b8fee4f9adfb4a13.png@1256w_816h_!web-article-pic.avif"
loading="lazy"
alt="我目前还没翻译完的一个 12 分钟长的视频的字幕,基于 408 行自动生成的英文字幕的大工程,只翻译了 408 行中的 245 行,已经翻译完的部分质量也不容乐观,一些句子被截成了两段,但我很抗拒调整时间轴"
></p>
<h2 id="如何防止撞车">如何防止撞车</h2>
<p>很明显,我在上一节中已经提到了这种乱象:就算这个视频已经被搬运过了,只要你把字幕加到原来的画面上再投稿,也有可能过审而不会被判定为撞车。但我不推荐这么做。</p>
<p>在搬运之前,你可以用原视频链接的视频 ID,即等于号(=)后面那串和BV号相似的随机数字和字母的组合在b站搜索看看这里是不是已经存在过审的副本了,直接粘贴完整的链接搜索也可以,但建议去掉后面乱七八糟的追踪参数以提升准确性(我也说不准,反正我用的就是视频ID)。原视频的标题当然也要用于搜索,同时我也会试着用简明的中文翻译进行搜索,但是就算做到这一步还是会有撞车的情况出现,我觉得也无法避免了。</p>
<p>撞车判定也会出现误判,如果审核没有提供与你的稿件撞车的BV号,可以申诉要求提供。</p>
<p><img src="https://i0.hdslb.com/bfs/article/64bce8337a95c76264b866f7a1ccddfb4030b7b3.png@1256w_734h_!web-article-pic.avif"
loading="lazy"
></p>
<h2 id="搬运视频的吸粉与变现">搬运视频的吸粉与变现</h2>
<p>我目前见过的变现方式除了最让我不齿的伪原创外,也就剩下修改原视频加入广告和在评论区置顶放广告了,因为创作激励计划很明显不会给转载视频任何收益。</p>
<p>我也是一个从搬运视频中小有获益的UP主,一个快10万播放的搬运视频(我认为能有这个播放量主要是因为标题能把人骗进来,我也不知道为什么大家都会被那个标题吸引)让我骗到了300个左右的粉丝(这其实让我感到有些“德不配位”)。当我穿插着投稿原创视频的时候,这些从搬运视频吸引来的粉丝理论上也会给我的原创视频带来一些流量(虽然我的这些粉丝似乎都不怎么活跃)。</p>
<h2 id="我的思考">我的思考</h2>
<p>钱是个好东西。谁不喜欢钱呢?</p>
<p>但我不会去赚我认为本不应该属于我的钱。抹水印盗视频、<a class="link" href="https://www.bilibili.com/video/BV1bP4y1u7e8" target="_blank" rel="noopener"
>利用信息差搞抄袭</a>和伪原创,我都不会去碰,不管在什么平台上。</p>
<p>一些视频在b站上火了,在原来的平台上却反响平平。如果原作者能从b站的流量中获得收益,或许会是件不错的事情。但搬运者投稿前也不会知道它会获得多少播放,几百个还是几百万个。</p>
<h2 id="后记">后记</h2>
<p>写着写着就三千多字了,在纸上写作写出这个字数是我不敢想象的。</p>
<p>其实写得挺乱的,或许之后会再修改润色一番。</p></description></item><item><title>此博客的所有镜像</title><link>https://imayx.top/blogmirrors/</link><pubDate>Thu, 25 May 2023 00:00:00 +0000</pubDate><guid>https://imayx.top/blogmirrors/</guid><description><h2 id="cloudflare-pages-httpseimayxtop">Cloudflare Pages: <a class="link" href="https://e.imayx.top/" target="_blank" rel="noopener"
>https://e.imayx.top/</a></h2>
<p>似乎在<em>网络条件合适</em>的情况下访问体验比较好?</p>
<h2 id="github-pages-httpsgimayxtop">GitHub Pages: <a class="link" href="https://g.imayx.top/" target="_blank" rel="noopener"
>https://g.imayx.top/</a></h2>
<p>有时候证书会抽风,自身支持 IPv6,因此关闭 Cloudflare Proxy 不影响纯 IPv6 用户访问</p>
<h2 id="vercel-httpsimayxtop">Vercel: <a class="link" href="https://imayx.top/" target="_blank" rel="noopener"
>https://imayx.top/</a></h2>
<p>综合考量下目前的主站,不支持 IPv6,但通过 Cloudflare Proxy 可支持 IPv6 访问</p>
<h2 id="netlify-httpsnimayxtop">Netlify: <a class="link" href="https://n.imayx.top/" target="_blank" rel="noopener"
>https://n.imayx.top/</a></h2>
<p>感觉不是很稳定。。</p></description></item><item><title>免费获取在 Microsoft Store 中收费 ¥7.00 的 HEVC 视频扩展</title><link>https://imayx.top/get7yuanhevcvideoextensionforfree/</link><pubDate>Sun, 27 Nov 2022 21:38:01 +0800</pubDate><guid>https://imayx.top/get7yuanhevcvideoextensionforfree/</guid><description><p>原来直接从微软商店下载的方法已经失效了,我在这里分享一个离线安装包:<a class="link" href="https://niamia.lanzouw.com/icUmB0yizpkd" target="_blank" rel="noopener"
>来自设备制造商的 HEVC 视频扩展.zip - 蓝奏云</a></p>
<p>一般下载 x64 的直接打开安装就行了。</p>
<p><img src="https://user-images.githubusercontent.com/75155322/230762831-4270bf35-5e43-4e22-aa51-db699117ad1a.png"
loading="lazy"
alt="image"
></p>
<p>以下内容已失效</p>
<hr>
<p>点击下面的链接即可调起 Microsoft Store 并打开「来自设备制造商的 HEVC 视频扩展」页面,直接点击安装即可。个人认为它的功能和收费 7 元人民币的「HEVC 视频扩展」相同,甚至近似大小也一样(都是 7.0 MB)。</p>
<p><a class="link" href="ms-windows-store://pdp/?ProductId=9N4WGH0Z6VHQ" >ms-windows-store://pdp/?ProductId=9N4WGH0Z6VHQ</a></p>
<p>如果点击上面的链接没有反应,或者你现在使用的设备没有安装 Microsoft Store,可以点击下面的链接打开网页版 Microsoft Store;但是,这也不能让你把这个应用添加到你的微软账号的库中。</p>
<p><a class="link" href="https://www.microsoft.com/zh-cn/p/hevc-video-extensions-from-device-manufacturer/9n4wgh0z6vhq" target="_blank" rel="noopener"
>https://www.microsoft.com/zh-cn/p/hevc-video-extensions-from-device-manufacturer/9n4wgh0z6vhq</a></p>
<p>这篇文章在知乎上的链接:<a class="link" href="https://zhuanlan.zhihu.com/p/492933007" target="_blank" rel="noopener"
>https://zhuanlan.zhihu.com/p/492933007</a></p></description></item><item><title>moefox.tech 已于 7 月 25 日过期,本站域名已更换为 imayx.top</title><link>https://imayx.top/moefox-tech-will-expire-soon/</link><pubDate>Tue, 12 Jul 2022 00:00:00 +0000</pubDate><guid>https://imayx.top/moefox-tech-will-expire-soon/</guid><description><p>如题,本站域名已更换为 <a class="link" href="https://imayx.top/" target="_blank" rel="noopener"
>imayx.top</a>。</p>
<p><a class="link" href="https://ablo.ga/" target="_blank" rel="noopener"
>ablo.ga</a> 已确定无法续期,因此使用 301 Moved Permanently 跳转至 <a class="link" href="https://imayx.top/" target="_blank" rel="noopener"
>imayx.top</a></p>
<p>终于不是一个二级域名了(</p>
<p>假如几年后你找到了这个页面的存档,也许你可以通过 <a class="link" href="https://ayx03.github.io/" target="_blank" rel="noopener"
>https://ayx03.github.io/</a>、<a class="link" href="https://jmpyx.github.io" target="_blank" rel="noopener"
>https://jmpyx.github.io</a> 或者 <a class="link" href="https://icp.gov.moe/?keyword=20213003" target="_blank" rel="noopener"
>https://icp.gov.moe/?keyword=20213003</a> 找到本站。</p>
<p>Edit log</p>
<p>2022-07-29 09:42:00</p>
<p>2023-05-03 13:10:00</p>
<p>2023-05-03 13:10:00</p></description></item><item><title>关于</title><link>https://imayx.top/about/</link><pubDate>Thu, 30 Jun 2022 06:38:00 +0000</pubDate><guid>https://imayx.top/about/</guid><description><h2 id="关于我">关于我</h2>
<p>有事找我请首先考虑发邮件,但是你大概率也没什么事找我。</p>
<p>我的邮箱: <a class="link" href="mailto:[email protected]" >[email protected]</a></p>
<p>请注意:由于收信服务没有发邮件的功能,我会使用另一个邮箱回复。</p>
<h2 id="我还在">我还在</h2>
<h3 id="bilibili">bilibili</h3>
<p><a class="link" href="https://space.bilibili.com/13509072" target="_blank" rel="noopener"
>@Ayx0</a> (uid13509072) (主账号 &amp; 直播号)</p>
<p><a class="link" href="https://space.bilibili.com/155826488" target="_blank" rel="noopener"
>@ImAyx</a> (uid155826488)</p>
<h3 id="github">GitHub</h3>
<p><a class="link" href="https://github.com/Ayx03" target="_blank" rel="noopener"
>@Ayx03</a></p>
<h3 id="知乎">知乎</h3>
<p><a class="link" href="https://www.zhihu.com/people/Aynxul03" target="_blank" rel="noopener"
>@ImAyx</a></p>
<h2 id="更新记录">更新记录</h2>
<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-fallback" data-lang="fallback"><span class="line"><span class="cl">2020-12-26 21:45:00
</span></span><span class="line"><span class="cl">2022-03-08 22:44:00
</span></span><span class="line"><span class="cl">2023-03-01 16:24:00
</span></span></code></pre></td></tr></table>
</div>
</div></description></item><item><title>链接</title><link>https://imayx.top/link/</link><pubDate>Thu, 30 Jun 2022 00:00:00 +0000</pubDate><guid>https://imayx.top/link/</guid><description><h2 id="你知道吗">你知道吗?</h2>
<h3 id="大屏访客点击右边的目录即可直接跳转到对应站点">大屏访客点击右边的目录即可直接跳转到对应站点</h3>
<h2 id="个人博客">个人博客</h2>
<h3 id="关于晚晚秋的一切httpsakieme"><a class="link" href="https://akie.me/" target="_blank" rel="noopener"
>关于晚晚秋的一切——</a></h3>
<p>晚秋秋~</p>
<h3 id="一条鱼-的博客httpswwwluogucomcnblog320282"><a class="link" href="https://www.luogu.com.cn/blog/320282/" target="_blank" rel="noopener"
>一条鱼 的博客</a></h3>
<p><a class="link" href="https://www.luogu.com.cn/user/320282" target="_blank" rel="noopener"
>洛谷@我和鱼过不去</a></p>
<p><strong>她 AK 了 IOI !</strong></p>
<p><img src="https://i.loli.net/2021/08/13/3qAOXQzLTCE9Wxi.png"
loading="lazy"
></p>
<p>在 IOI 中获得满分,俗称 AKIOI</p>
<h3 id="rosyr-的博客园httpswwwcnblogscomrosyr050301"><a class="link" href="https://www.cnblogs.com/rosyr050301" target="_blank" rel="noopener"
>Rosyr 的博客园</a></h3>
<p>Rosyr 用来记录学习轨迹的地方</p>
<p><a class="link" href="https://i.loli.net/2021/03/24/e3nhuKdaN4cxDbp.png" target="_blank" rel="noopener"
>Avatar</a> | 洛谷<a class="link" href="https://www.luogu.com/user/171528" target="_blank" rel="noopener"
>@syr050301</a> | bilibili<a class="link" href="https://space.bilibili.com/448346984" target="_blank" rel="noopener"
>@-Rosyr-</a></p>
<p>TA AFO 了。</p>
<h2 id="组织项目">组织/项目</h2>
<h3 id="萌狸科技httpsmimayxtop"><a class="link" href="https://m.imayx.top/" target="_blank" rel="noopener"
>萌狸科技</a></h3>
<p>本站隶属于萌狸科技。</p>
<h3 id="淀粉月刊httpsdfkancom"><a class="link" href="https://dfkan.com/" target="_blank" rel="noopener"
>淀粉月刊</a></h3>
<p>接力曾经的《少年电脑世界》!<a class="link" href="https://dfkan.com/10.html" target="_blank" rel="noopener"
>简介/我们的故事</a></p>
<h3 id="中文独立博客httpsgithubcomtimqianchinese-independent-blogs"><a class="link" href="https://github.com/timqian/chinese-independent-blogs" target="_blank" rel="noopener"
>中文独立博客</a></h3>
<p>如果你想找到更多像本站一样拥有自己的域名且相对自由的博客站点的话&hellip;</p>
<h3 id="萌国icp备案httpsicpgovmoe"><a class="link" href="https://icp.gov.moe/" target="_blank" rel="noopener"
>萌国ICP备案</a></h3>
<p>本站仅在此处进行过ICP备案,备案号为<a class="link" href="https://icp.gov.moe/?keyword=20213003" target="_blank" rel="noopener"
>20213003</a>。</p>
<h3 id="提问的智慧httpsgithubcomryanhanwuhow-to-ask-questions-the-smart-way"><a class="link" href="https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way" target="_blank" rel="noopener"
>提问的智慧</a></h3>
<p><a class="link" href="https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md" target="_blank" rel="noopener"
>简体中文版</a></p>
<p>很有幸参与了一些贡献,虽然第一次发 Pull Request 没意识到 patch-1 分支里的后续 commit 也会被同步到 pr 里<a class="link" href="https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/pull/138#issuecomment-940160150" target="_blank" rel="noopener"
>被骂了</a>&hellip;</p>
<h3 id="a-dark-roomhttpsadrimayxtop"><a class="link" href="https://adr.imayx.top/" target="_blank" rel="noopener"
>A Dark Room</a></h3>
<p>小黑屋,一款被移植到网页上的文字游戏,挺有趣的。</p>
<p>支持以一串 Base64 编码后的 json 进行存档导入/导出。</p>
<p>如果 Vercel 在你所在的地区或使用的线路访问缓慢,试试 GitHub Pages: <a class="link" href="https://g.imayx.top/ADarkRoom/" target="_blank" rel="noopener"
>https://g.imayx.top/ADarkRoom/</a></p>
<h3 id="mergemp4httpsgimayxtopmergemp4"><a class="link" href="https://g.imayx.top/mergemp4/" target="_blank" rel="noopener"
>mergemp4</a></h3>
<p>利用 FFmpeg 在现代浏览器中合并 .mp4 格式的视频和音频,原作者为 <a class="link" href="https://github.com/maple3142" target="_blank" rel="noopener"
>maple3142</a>。</p>
<p>目前似乎不可用。<del>肯定不是被我搞坏的!</del></p>
<p><a class="link" href="https://github.com/Ayx03/mergemp4" target="_blank" rel="noopener"
>GitHub 存储库</a></p>
<h2 id="申请交换友链">申请交换友链</h2>
<ul>
<li>
<p>为了减少本站(现在不太可能会,但仍有可能)更换域名带来的不便,本站的链接请使用 <code>https://ayx03.github.io/</code> 而不是 <code>https://imayx.top/</code></p>
</li>
<li>
<p>发在评论区与邮箱(<code>[email protected]</code>)的申请(格式不限)我都会在看到后尽快回复。</p>
</li>
</ul>
<h3 id="本站域名更换记录">本站域名更换记录</h3>
<ul>
<li><code>aynxu.l03.me</code> <strong>已</strong>于2021年12月19日过期。本站域名<strong>已</strong>更换为 <code>ayx.moefox.tech</code>。</li>
<li><code>ayx.moefox.tech</code> <strong>已</strong>于 2022 年 7 月 25 日过期。本站域名<strong>已</strong>更换为 <code>imayx.top</code>。</li>
</ul>
<h2 id="后记">后记</h2>
<p><del>右边的目录似乎出现了一些问题&hellip;</del> <del>已解决(临时降级到 hugo-theme-stack v3.7.0)</del> 已彻底解决(Stack 主题修复了这一问题(<a class="link" href="https://github.com/CaiJimmy/hugo-theme-stack/issues/495" target="_blank" rel="noopener"
>#459</a>)</p>
<p>其实又出了一些问题,但是我假装没看见,然后现在解决了(<a class="link" href="https://github.com/CaiJimmy/hugo-theme-stack/issues/631" target="_blank" rel="noopener"
>#631</a></p>
<h2 id="更新记录">更新记录</h2>
<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></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">2021-07-23 ??:??:??
</span></span><span class="line"><span class="cl">2022-02-12 23:48:00
</span></span></code></pre></td></tr></table>
</div>
</div></description></item><item><title>LG V50 ThinQ 韩版 LGU+ 从解锁 BootLoader 到破解 VoLTE / NSA 5G、从刷入第三方 Recovery 到硬格、从混刷到黑砖全教程</title><link>https://imayx.top/v50/</link><pubDate>Fri, 08 Apr 2022 00:00:00 +0000</pubDate><guid>https://imayx.top/v50/</guid><description><img src="https://imayx.top/v50/cover.jpg" alt="Featured image of post LG V50 ThinQ 韩版 LGU+ 从解锁 BootLoader 到破解 VoLTE / NSA 5G、从刷入第三方 Recovery 到硬格、从混刷到黑砖全教程" /><h2 id="前言">前言</h2>
<p>如果您的手机正处在无限重启(Bootloop)的状态,请看<a class="link" href="#%E5%AF%B9%E4%BA%8E-bootloop%E6%97%A0%E9%99%90%E9%87%8D%E5%90%AF%E9%A6%96%E5%85%88%E5%B0%9D%E8%AF%95%E7%A1%AC%E6%A0%BC" >这一节(点击跳转)</a>来了解解决方案。</p>
<p>如果您使用的是其他型号或版本的手机(甚至可以不是 LG 的手机),本教程也可能部分(但不太可能完全)适用于您。</p>
<p>本教程旨在整合其他资源和教程以节省韩版 LGU+ 的 LG V50 ThinQ 用户的时间,因此如果您的机器版本或型号不同,它可能浪费您的时间,甚至对您的设备造成不可挽回的损坏。</p>
<p>无论如何,请谨慎操作,尤其是在 Download 和 9008 模式下进行操作时一定要三思而后行,选用可靠的数据线,保持耐心,因为它们造成的损坏很可能无法通过简单地在软件层面进行操作来恢复。</p>
<h2 id="拆箱收货">拆箱收货</h2>
<p>笔者建议您签收贵重物品前先与快递员当面验货,或在快递柜旁拆开,以避免不必要的纠纷。</p>
<p>不过,笔者自己从来不这么做。</p>
<p>如果卖家声称您购买的机器有以下特性,您可以用下文所述的方法验证他们的描述是否属实。</p>
<h3 id="气密性">气密性</h3>
<p>(该部分适用于其他出厂时支持 IP68 防水且有气压传感器的设备)</p>
<p>普遍的检测方法是使用 DevCheck 显示气压传感器的数值(其实系统自检中也可以查看压力传感器的数值,但是我更喜欢使用 DevCehck)</p>
<p>DevCheck 的包名:<code>flar2.devcheck</code></p>
<p>蓝奏云下载:<a class="link" href="https://cpk.lanzoui.com/iZdritwxo8b" target="_blank" rel="noopener"
>https://cpk.lanzoui.com/iZdritwxo8b</a></p>
<ul>
<li>
<p>打开传感器中的压力传感器</p>
</li>
<li>
<p>堵住右下角扬声器左侧的小孔(对于 LG G8 ThinQ,这个小孔在左上角;别问我为什么知道,因为我也用过)</p>
</li>
<li>
<p>用力按压屏幕后松开(小心别把屏幕压碎了,适可而止;别问我为什么要提一嘴,因为我压碎过)。</p>
</li>
<li>
<p>如果气压值的波动大于 <code>10 hPa</code>,那么这台手机很可能有气密性,可以下水。</p>
</li>
</ul>
<p>气密性好的组装机波动甚至能达到 <code>40 hPa</code>,因此是否有气密性不应作为判断手机是否原装的标准。</p>
<p>但是请注意,不要将手机置于热水或蒸汽中。防水功能防水溅不防手贱,不建议经常性主动下水,也不要跟我一样想出水下跑分或者半浸没充电这种操作。</p>
<h3 id="完美屏">完美屏</h3>
<p>一般指显示和触摸功能完美(没有彩点、黑块或绿线黑线),全原装非后压屏的机器外屏没有任何划痕的应该很少。</p>
<h2 id="获取-imei-并记录查询手机版本">获取 IMEI 并记录,查询手机版本</h2>
<p>得到 IMEI 的几种方法:</p>
<ul>
<li>
<p>正常进入系统时,打开拨号键盘输入 <code>*#06#</code>;</p>
</li>
<li>
<p>正常开机进系统后在 设置-关于手机 中查看;</p>
</li>
<li>
<p>关机后长按开机键、音量上下键,同时按住。</p>
</li>
<li>
<p>查看手机背面的标签、包装盒上的标签(二手机可能没有);</p>
</li>
</ul>
<p>记录好 IMEI 后可以<a class="link" href="https://www.imeidb.com/imei/lg" target="_blank" rel="noopener"
>在这里</a>使用它查询来获得关于这台手机很多有用的信息,包括但不限于运营商(简称)、国家、区域、CPU 类型、手机型号、颜色、S/N 码、CSN 码、生产与出厂日期,但 KDZ 相关的四项信息似乎总是空白或没有。</p>
<p>查询手机的型号和版本就是为了下载对应版本的 KDZ(类似于其他安卓手机的线刷包,不懂也不用慌),避免浪费时间。</p>
<p><a class="link" href="http://www.lgbbs.com/lg_mobile-lg_mobile.html" target="_blank" rel="noopener"
>http://www.lgbbs.com/lg_mobile-lg_mobile.html</a></p>
<p>(这个地址似乎暂时无法访问了)</p>
<h2 id="升级-magisk-版本">升级 Magisk 版本</h2>
<p>此部分适用于收到时卖家已帮您刷好旧版 Magisk 的机器。</p>
<p>旧版 Magisk 除了用于授予应用 Root 权限外能刷入的模块非常有限,因此我们需要升级 Magisk 版本。</p>
<p>推荐先升级 Magisk Manager(新版去掉了 Manager 的后缀),再升级 Magisk 本体。</p>
<p>但是,先别急着使用直接安装升级 Magisk,这很可能导致您的设备陷入 BootLoop(无限重启)的状态中(如果您甚至无聊到启用了安全启动),而且您还有可能完全不知道怎么让它停下来。</p>
<p>正确的做法应该是把新版 Magisk 的 .apk 文件扩展名改为 .zip,然后以安装模块的方式在 Manager 中刷入。</p>
<h2 id="破解-volte">破解 VoLTE</h2>
<p>我还没成功&hellip;</p>
<h2 id="破解-5g">破解 5G</h2>
<p>卖家已经帮你破解好了 VoLTE,移动卡电信卡都能边打电话边上网了(如果没有破解 VoLTE,电信卡无法正常使用),但你还听说这是一台 5G 手机?</p>
<p>其实,它似乎只支持联通与电信的 5G 频段。并且它只支持 NSA(非独立组网模式)而不支持 SA(独立组网模式)。</p>
<h3 id="我没有开通-5g-套餐也没有换新的-usim-卡可以用-5g-吗">我没有开通 5G 套餐,也没有换新的 USIM 卡,可以用 5G 吗?</h3>
<p>不存在只支持 4G 而不支持 5G 的 UIM 卡,并且未开通 5G 套餐也可以连接 5G 网络,只不过速度会被限制在 300 Mbps。开通 5G 套餐后可享受 500 Mbps 或 1 Gbps 甚至高达 4 Gbps 的速率。</p>
<p>能不能成功,一试便知。</p>
<p>下载 QPST TOOL 并安装,同意许可协议一路 Next 最后 Finish 即可。LG 驱动同理。</p>
<p><a class="link" href="https://cpk.lanzoui.com/i0cvUtwz3qf" target="_blank" rel="noopener"
>https://cpk.lanzoui.com/i0cvUtwz3qf</a></p>
<p><a class="link" href="https://cpk.lanzoui.com/i8Edvtwz7be" target="_blank" rel="noopener"
>https://cpk.lanzoui.com/i8Edvtwz7be</a></p>
<p>替换用文件,记得去掉 .txt 的后缀,笔者加上此后缀是因为蓝奏云不支持上传 .xml 格式的文件。</p>
<p><a class="link" href="https://cpk.lanzoui.com/iDTmPtwza4f" target="_blank" rel="noopener"
>https://cpk.lanzoui.com/iDTmPtwza4f</a></p>
<p>电脑下载文件的同时,手机上也可以操作起来了。</p>
<ul>
<li>
<p>打开拨号键盘,输入 *#546368#*500#</p>
</li>
<li>
<p>进入 HiddenMenu(隐藏菜单)</p>
</li>
<li>
<p>SVC Menu - LDB - USB debugging 打钩</p>
</li>
<li>
<p>SVC Menu - Port Check Test 选择 Enabled</p>
</li>
<li>
<p>设置 - 系统 - 关于手机 - 软件信息 - 内部版本号 - 连续点击7次 - 您现在是开发人员!</p>
</li>
<li>
<p>设置 - 系统 - 开发人员选项 - 开启 - 启动 OEM解锁 - 启用</p>
</li>
<li>
<p>设置 - 系统 - 开发人员选项 - 开启 - USB调试 - 确定</p>
</li>
<li>
<p>USB 线连接 PC 下拉菜单更改 USB 选项 选择 仅充电 USB 调试授权 同意</p>
</li>
<li>
<p>设置 - 网络和互联网 - 绑定 - 开启 - USB绑定</p>
</li>
</ul>
<p><img src="https://imayx.top/1.png"
loading="lazy"
></p>
<p>如果你的桌面上有「LG 网络」这个 App,可以直接用它进入 Hidden Menu 和 Field Test 等隐藏菜单,无需繁琐地在拨号键盘中输入代码。</p>
<p><img src="https://imayx.top/v50/2.png"
width="357"
height="773"
srcset="https://imayx.top/v50/2_hu16944089608735582065.png 480w, https://imayx.top/v50/2_hu16726978378173213257.png 1024w"
loading="lazy"
class="gallery-image"
data-flex-grow="46"
data-flex-basis="110px"
></p>
<p>「绑定」实际上是网络共享的意思,官方系统的中文翻译很有问题。(甚至比机器翻译还烂)</p>
<p>好的,现在我们打开 QPST Configuration,点击右下角的 Add New Port 按钮。</p>
<p>如果你的手机已经以正确的姿势连接到了电脑,那么应该有一个端口后面显示 (LGE Mobile USB Serial Port)。选中它,OK。</p>
<p>然后在菜单栏的 Start Client 中选择第一项 EFS Explorer,选择刚刚添加的端口,OK。</p>
<p>成功连接并打开类似文件资源管理器的界面后,在左侧找到 policyman 文件夹,选中其中的所有文件(包括子目录 persisted_items),右键选择 Delete 或者按键盘上的 DEL 键删除。(建议备份一份,但这个 Explorer 似乎只支持每次传输一个文件到电脑)</p>
<p>然后把刚才下载的 carrier_policy.xml(记得去掉 .txt 后缀)拖进去(或者右键空白处选择 Copy Data File from PC)</p>
<p>重启手机,大功告成。</p>
<p>如果重启完移动数据的图标还是 4G 或者 LTE 也不用灰心,在拨号键盘中输入 5457#*510# 进入 Service Menu,选择第一项 Debug Screen,如果 NR5G Link 冒号后面的数字为 1,那么恭喜你破解成功了,只是你所在的区域暂时没有 NSA 5G 覆盖或者已经退网了。</p>
<p>如果破解 5G 后在拨号键盘输入 <code>5457#*510#</code> 没有反应,在 <code>*#*#4636#*#*</code> 中查看也是可以的。</p>
<p>以上内容修改自:<a class="link" href="https://bbs.lge.fun/thread-147.htm" target="_blank" rel="noopener"
>LG V50S 开5G教程 LG V50适用-855板块-LG社区</a></p>
<h2 id="使用-lg-up-来更换系统版本">使用 LG UP 来更换系统版本</h2>
<p>安装并破解好 LG UP,同时下载好对应版本的 .kdz 线刷包文件。</p>
<p>将手机关机后在插入数据线的同时按住音量加来进入 Download 模式,数据线另一头需要事先连接到电脑。</p>
<p>线刷时请选择可靠的数据线,过程中一定要耐心等待,千万不要在进度条跑完手机端自动重启前断开数据线。</p>
<p>打开 LG UP 并拖入 KDZ 即可开始刷机。</p>
<p>保持默认模式(第一个),不会造成 BootLoader 被自动回锁。</p>
<p>一般两三分钟即可完成,完成后手机会自动重启。</p>
<p>韩版的 KDZ 中一般包含很多无用的 App,能卸载的开机后建议尽快卸载,嫌麻烦也可以刷完先硬格一次以清除所有预装应用,具体方法在下方。</p>
<p>(该章节尚未完成)</p>
<h2 id="意外与失败的处理">意外与失败的处理</h2>
<h3 id="对于-bootloop无限重启首先尝试硬格">对于 Bootloop(无限重启),首先尝试硬格。</h3>
<p>同时按住电源键和音量下键 8 秒左右,当第一屏(即显示手机型号的画面)亮起时松开,3 秒后再次按住电源键,即可进入硬格菜单。</p>
<p>用音量减切换到 Yes,用电源键确认,Erase(擦除)很快。数据飞灰烟灭。</p>
<p>此操作在刷入 TWRP 后不会擦除手机,而是会进入 Recovery,且通过此方式进入一般触屏功能可以使用。</p>
<h3 id="lg-up-线刷救砖">LG UP 线刷救砖</h3>
<p>只要你还能进入 Download 模式,就能使用 LG UP 刷入官方 KDZ 来进行线刷救砖,无需冒险使用 9008 进行救砖。</p>
<p>详见「使用 LG UP 来更换系统版本」一节。</p>
<h2 id="鸣谢">鸣谢</h2>
<p>对本文启发很大的</p>
<p><a class="link" href="https://855.lge.fun/doc_hz/" target="_blank" rel="noopener"
>LG 855系列-快速黑砖手册 愿你刷机半生,归来仍是黑砖</a></p></description></item><item><title>Python 3 入门学习笔记</title><link>https://imayx.top/python3tutorial/</link><pubDate>Sat, 12 Feb 2022 00:00:00 +0000</pubDate><guid>https://imayx.top/python3tutorial/</guid><description><p>请善用右侧的目录(如果有)来跳转到你需要学习的部分。</p>
<h2 id="安装-python-3-本体与集成开发环境">安装 Python 3 本体与集成开发环境</h2>
<p>如果你已经完成了这些准备工作,可以使用右侧的目录跳到下一章节 - 你好,世界。</p>
<h3 id="python-3-本体包括-idle">Python 3 本体(包括 IDLE)</h3>
<p>前往 Python 官网下载。</p>
<p><a class="link" href="https://www.python.org/downloads" target="_blank" rel="noopener"
>https://www.python.org/downloads</a></p>
<p>打开该地址时网页会自动识别你的操作系统并为你推荐合适的 Python 3 版本,一般情况下点击黄色按钮下载即可。目前的最新版本为 3.10.4。</p>
<h4 id="windows-用户">Windows 用户</h4>
<p>Windows 8/8.1/10/11(非 LTSC 版本)用户也可以在 Microsoft Store 免费获取 <a class="link" href="https://www.microsoft.com/zh-cn/p/python-310/9pjpw5ldxlz5" target="_blank" rel="noopener"
>Python 3.10</a> 或 <a class="link" href="https://www.microsoft.com/store/productId/9P7QFQMJRFP7" target="_blank" rel="noopener"
>Python 3.9</a>。</p>
<blockquote>
<p>LTSC 版本的 Windows 没有自带微软应用商店,但其实也可以自行安装。篇幅所限,感兴趣的自行 Google。</p>
</blockquote>
<p>如果你还没有安装过任何版本的 Python 3,在命令提示符/PowerShell 中输入 <code>python3</code> 并回车可以直接唤起 Microsoft 商店并进入安装页面。</p>
<blockquote>
<p>需要注意的是,如果你使用的是比 Windows 8.1 或 Windows Server 2012 更旧的操作系统,<strong>你将无法安装 Python 3.9.0 及更新的版本</strong>。你仍能安装 <a class="link" href="https://www.python.org/downloads/release/python-3810/" target="_blank" rel="noopener"
>Python 3.8.10</a>,但<strong>对 Python 3.8.x 的支持将于 2024 年 10 月终止</strong>。</p>
</blockquote>
<p>安装时记得勾选 <code>Add Python 3.x to PATH</code>,这样就不需要手动配置环境变量了。</p>
<blockquote>
<p>如果你没有正确地配置环境变量,你需要手动 cd 到 Python 的安装目录下才能使用 python 等命令。</p>
</blockquote>
<h4 id="linuxunix-用户">Linux/UNIX 用户</h4>
<p>Ubuntu 18.04/20.04 用户可以参考这篇教程:<a class="link" href="https://phoenixnap.com/kb/how-to-install-python-3-ubuntu" target="_blank" rel="noopener"
>https://phoenixnap.com/kb/how-to-install-python-3-ubuntu</a></p>
<p>其他 Linux/UNIX 用户请继续阅读这一小节。</p>
<blockquote>
<p>Linux,30 岁生日快乐!</p>
<p>这是你的生日蛋糕,你 ** 自己编译去吧。
<img src="https://i.redd.it/my399q0hqxn71.png"
loading="lazy"
alt="Source: https://www.reddit.com/r/ProgrammerHumor/comments/ppmtr2/happy_30th_birthday_linux_and_now_ahead_and/"
></p>
</blockquote>
<p>大多数 Linux 发行版可能自带了 Python 2,由于一些程序仍需依赖它来运行,并不建议将其卸载。</p>
<p>可以使用 <code>python --version</code> 来检查已安装的 Python 版本。</p>
<p>为 Python 创建一个安装目录,然后在下面的页面下载源代码,并解压到刚刚创建的目录中。</p>
<p><a class="link" href="https://www.python.org/downloads/source/" target="_blank" rel="noopener"
>https://www.python.org/downloads/source/</a></p>
<p>使用 yum 命令安装编译 Python 时需要用到的依赖包。</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
</span></span></code></pre></td></tr></table>
</div>
</div><p>指定安装路径</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">./configure --prefix=/root/python310
</span></span></code></pre></td></tr></table>
</div>
</div><p>解压后使用 <code>make</code> 命令编译,编译完成后使用 <code>make install</code> 安装。</p>
<p>为 <code>python3</code> 和 <code>pip3</code> 建立软连接。</p>
<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></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">ln -s /root/python3102/bin/python3102 /usr/bin/python3
</span></span><span class="line"><span class="cl">ln -s /root/python3102/bin/pip3 /usr/bin/pip3
</span></span></code></pre></td></tr></table>
</div>
</div><h4 id="macos-用户">macOS 用户</h4>
<p><a class="link" href="https://www.python.org/downloads/macos/" target="_blank" rel="noopener"
>https://www.python.org/downloads/macos/</a></p>
<p>分为 Intel-only 和 universal2 版本,部分 Release 仅提供后者。</p>
<p>Apple Silicon(M1 系列 arm 架构芯片)用户请选择后者。</p>
<h4 id="iosipados-和其他操作系统用户">iOS、iPadOS 和其他操作系统用户</h4>
<p><a class="link" href="https://www.python.org/download/other/" target="_blank" rel="noopener"
>https://www.python.org/download/other/</a></p>
<hr>
<p>安装好后,在命令提示符(Command Prompt)/PowerShell(macOS/Linux 是 Terminal) 中输入 <code>python -V</code> 来查看版本信息。</p>
<p>打开运行(按下键盘上的 Win+R),输入 <code>python</code> 即可进入 IDLE 的命令行版本</p>
<p>在 Windows 的开始菜单里你也可以找到有图形界面的 IDLE。</p>
<h3 id="pycharm">PyCharm</h3>
<p>支持 Windows、macOS(Intel/Apple Silicon)、Linux。</p>
<p>前往 <a class="link" href="https://www.jetbrains.com/" target="_blank" rel="noopener"
>JetBrains 官网</a>下载安装包。</p>
<p><a class="link" href="https://www.jetbrains.com/zh-cn/pycharm/download" target="_blank" rel="noopener"
>https://www.jetbrains.com/zh-cn/pycharm/download</a></p>
<p>如果你没有教育邮箱可用于申请免费的 <code>Professional Edition</code>,推荐下载<strong>免费且开源</strong>的 <code>Community Edition</code>。</p>
<h4 id="ubuntu--1604-用户">Ubuntu ≥ 16.04 用户</h4>
<p>也可以使用 <code>snap</code> 安装 PyCharm:</p>
<p><code>sudo snap install [pycharm-professional|pycharm-community] --classic</code></p>
<p>你也可以选择安装 Spyder 等其他 IDE,或者干脆使用一个文本编辑器(如 vim、Sublime Text、Notepad3 等)。</p>
<h3 id="本文所使用的环境">本文所使用的环境</h3>
<p>这篇笔记将使用 <code>PyCharm Community Edition 2021.3.2</code> 和 <code>Python 3.10.2</code>。</p>
<p>使用更新版本的 PyCharm 或其他 IDE/编辑器通常不会产生问题。</p>
<h2 id="你好世界">你好,世界。</h2>
<p>打开 PyCharm,新建一个项目。</p>
<p>暂时不需要特别配置解释器,保持默认即可;</p>
<p>如果你想保持些神秘感,记得取消勾选 <code>Create a main.py welcome script</code>;</p>
<p>或许在只有一个文件的情况下使用 IDLE 是更好的选择,等待 IDE 自动配置环境。</p>
<p>在左侧的资源管理器中右键你刚创建的项目,选择 New &gt; Python File,为你的第一个 Python 程序起一个你喜欢的名字。不过,它不能以数字开头。</p>
<h3 id="print-语句">print 语句</h3>
<p>双击刚刚创建的文件,在右侧打开的文本编辑区域输入 <code>print(&quot;Hello World!&quot;)</code>。</p>
<blockquote>
<p>编写大多数编程语言的代码时,都要记得切换到美式键盘或英式键盘<strong>而不是使用中文输入法</strong>(如果你没有,在语言和键盘选项中添加一个),以免错误地输入全角的逗号<code>,</code>、句号<code>。</code>、引号<code>“”</code>、中括号<code>【】</code>以及小括号<code>()</code>。</p>
</blockquote>
<p>像其他大多数 IDE 一样,PyCharm 会替你自动补全括号和双引号,你只需要打左半边就好。</p>
<p>按下 Alt+Shift+F10(或在 <code>Run</code> 菜单下选择 <code>Run...</code>),选择你的文件。</p>
<p>下方弹出的窗口中输出了 <code>Hello World!</code>。</p>
<h4 id="程序结束时的返回值">程序结束时的返回值</h4>
<p><code>Process finished with exit code 0</code> 表示程序正常结束;</p>
<p>相反地,<code>Process finished with exit code 1</code> 则表示程序异常退出。</p>
<blockquote>
<p>在这点上 Python 与 C/C++ 惊人地相似。</p>
</blockquote>
<h2 id="变量">变量</h2>
<p>现在你已经会用 Python 打印文字了!</p>
<p>但为了利用 Python 处理数据,我们总得把数据先存在什么地方而不是写死(hardcode)在代码里吧?</p>
<p>在 Python 3 中,第一次使用一个变量名时为其赋予的值决定了它之后能存储的数据类型。</p>
<p>你不需要像 C++ 那样为变量指定一个类型,也不会出现像 C++ 的主函数中定义的变量一样的奇怪数据。</p>
<h3 id="string-类型">string 类型</h3>
<p>几乎可以存储你想存的任何数据。</p>
<p>你可以用一对单引号 <code>''</code> 或一对双引号 <code>&quot;&quot;</code> 来把字符串括起来,以区别于需要 Python 解释器处理的代码。</p>
<p>为变量赋值时,把变量名写在左边,用等号与右边的值连接。</p>
<p>不明白?看看例程吧。</p>
<p>示例程序1:</p>
<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></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">username</span> <span class="o">=</span> <span class="s1">&#39;Aynxul03&#39;</span>
</span></span><span class="line"><span class="cl"><span class="nb">print</span><span class="p">(</span><span class="s2">&#34;Hello &#34;</span> <span class="o">+</span> <span class="n">username</span> <span class="o">+</span> <span class="s2">&#34;!&#34;</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>运行,输出为</p>
<blockquote>
<p>Hello Aynxul03!</p>
</blockquote>
<p>示例程序2:</p>
<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-python" data-lang="python"><span class="line"><span class="cl"><span class="n">username</span> <span class="o">=</span> <span class="s1">&#39;Aynxul03&#39;</span>
</span></span><span class="line"><span class="cl"><span class="n">password</span> <span class="o">=</span> <span class="s1">&#39;123456&#39;</span>
</span></span><span class="line"><span class="cl"><span class="nb">print</span><span class="p">(</span><span class="s2">&#34;Hello &#34;</span> <span class="o">+</span> <span class="n">username</span> <span class="o">+</span> <span class="s2">&#34;! Your password is &#34;</span> <span class="o">+</span> <span class="n">password</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">password</span> <span class="o">=</span> <span class="s1">&#39;654321&#39;</span>
</span></span><span class="line"><span class="cl"><span class="nb">print</span><span class="p">(</span><span class="s2">&#34;Hello &#34;</span> <span class="o">+</span> <span class="n">username</span> <span class="o">+</span> <span class="s2">&#34;! Your password is &#34;</span> <span class="o">+</span> <span class="n">password</span><span class="p">)</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>运行,输出为</p>
<blockquote>
<p>Hello Aynxul03! Your password is 123456</p>
<p>Hello Aynxul03! Your password is 654321</p>
</blockquote>
<h1 id="未完待续">未完,待续</h1>
<h2 id="changelog">Changelog</h2>
<p>2022-03-08 22:38:00 新增变量[string 类型]、小标题#本文所使用的环境、程序结束时的返回值,为 Windows 外的操作系统提供 Python 本体的安装教程,修改了一些格式与排版,改善阅读体验。</p></description></item><item><title>新年快乐 & 本站的改版</title><link>https://imayx.top/happynewyear2022/</link><pubDate>Sun, 26 Dec 2021 00:00:00 +0000</pubDate><guid>https://imayx.top/happynewyear2022/</guid><description><p>今天终于找到自己的 Hugo 站点文件了&hellip;</p>
<p>没别的,就感觉快过年了该发篇博文。</p>
<p>这次我在慎重考虑后对博客进行了一些<del>大刀阔斧的</del>改版:</p>
<ul>
<li>
<p>移除了博客中的所有「分类」,各位仍可使用首页右侧的「标签云」或「标签」页面。</p>
</li>
<li>
<p>将个人博客的友情链接和各种组织和项目的链接页面合并为一个页面。</p>
</li>
<li>
<p>更新到 hugo 及 hugo-theme-stack 的最新版本。</p>
</li>
<li>
<p>在页脚添加了关于使用 Google Analytics 收集用户数据的声明</p>
</li>
<li>
<p>把本站的锅全甩给了 GitHub Pages 和 Cloudflare。</p>
</li>
</ul>
<p>不过,今天还是没把评论回复的邮件通知配置好&hellip;</p>
<p>因为我忘了怎么整了,还得再仔细看文档&hellip;</p></description></item><item><title>在 Hugo 主题 Stack 中轻松配置 Waline 评论系统</title><link>https://imayx.top/waline/</link><pubDate>Mon, 04 Oct 2021 00:00:00 +0000</pubDate><guid>https://imayx.top/waline/</guid><description><p>你以前也许听说过或用过 Valine。Waline 与它差不多,但管理功能集成在内,并可以更方便地部署。</p>
<p>如果你使用其他没有 Waline 支持的 Hugo 主题或其他博客系统,按本文部署后可以参考官方文档来<a class="link" href="https://waline.js.org/guide/client/import.html" target="_blank" rel="noopener"
>引入客户端</a>。</p>
<h2 id="在-leancloud-上部署数据库">在 LeanCloud 上部署数据库</h2>
<p>注册 LeanCloud 国际版并进入<a class="link" href="https://console.leancloud.app/apps" target="_blank" rel="noopener"
>控制台</a>。</p>
<p>如果您决定使用 LeanCloud 国内版,您需要为您创建的应用额外绑定已备案的域名。</p>
<p>创建开发版新应用(随意命名)并复制设置 - 应用凭证中的前三项值,稍后会添加在 Vercel 中的环境变量里。</p>
<h2 id="在-vercel-上部署服务端">在 Vercel 上部署服务端</h2>
<!-- raw HTML omitted -->
<p>(推荐)使用 GitHub 登录,创建存储库(可以是私有 Repo),跳过创建团队(反正这也不是什么需要团队协作的项目),部署。</p>
<p>两分钟左右部署就会完成。</p>
<p>完成部署后在 Settings 中找到 Environment Variables,分别添加三个环境变量 <code>LEAN_ID</code>、<code>LEAN_KEY</code> 和 <code>LEAN_MASTER_KEY</code> 。<code>VALUE</code> 分别填写在 LeanCloud 中获得的 <code>APP ID</code>、<code>APP KEY</code>、和 <code>Master Key</code>。</p>
<p>记得<a class="link" href="#%e8%af%84%e8%ae%ba%e7%ae%a1%e7%90%86" >注册你的管理员账号</a>,以免被访客注册。第一个注册的用户会得到管理权限。</p>
<h2 id="在配置文件中配置客户端">在配置文件中配置客户端</h2>
<p>最后打开站点根目录下的 <code>config.yaml</code>,在 params 下添加以下几行:(如果你当初拷贝了 Stack 提供的 <code>config.yaml</code> 文件,那么这段在第 60 行左右,只需填入 serverURL 即可)</p>
<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><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl"> # Waline client configuration see: https://waline.js.org/en/reference/client.html
</span></span><span class="line"><span class="cl"> waline:
</span></span><span class="line"><span class="cl"> serverURL: https://&lt;PUT_YOUR_OWN_HERE&gt;.vercel.app/
</span></span><span class="line"><span class="cl"> lang: zh-CN
</span></span><span class="line"><span class="cl"> visitor: true
</span></span><span class="line"><span class="cl"> avatar:
</span></span><span class="line"><span class="cl"> emoji:
</span></span><span class="line"><span class="cl"> - https://cdn.jsdelivr.net/gh/walinejs/emojis/qq
</span></span><span class="line"><span class="cl"> requiredMeta:
</span></span><span class="line"><span class="cl"> - name
</span></span><span class="line"><span class="cl"> - email
</span></span><span class="line"><span class="cl"> - url
</span></span><span class="line"><span class="cl"> placeholder:
</span></span><span class="line"><span class="cl"> locale:
</span></span><span class="line"><span class="cl"> admin: Admin
</span></span></code></pre></td></tr></table>
</div>
</div><p>记得替换 serverURL 为你自己部署的 Vercel App 地址,在<a class="link" href="https://waline.js.org/en/reference/client.html" target="_blank" rel="noopener"
>这里</a>查阅各项参数的含义。</p>
<p><a class="link" href="https://waline.js.org/guide/get-started.html#leancloud-%E8%AE%BE%E7%BD%AE-%E6%95%B0%E6%8D%AE%E5%BA%93" target="_blank" rel="noopener"
>快速上手 | Waline</a></p>
<p>然后可以使用 <code>hugo server</code> 看下效果,使用 Waline 时不会像 disqus 一样在本地预览时屏蔽评论。</p>
<h3 id="emoji">Emoji</h3>
<p>你可以为你的 Waline 客户端添加多套表情。</p>
<p>题外话,严格来说,这些表情似乎不能称作 emoji。真正的 emoji 必须能被编码,而不是一张图片。</p>
<blockquote>
<p>Waline 提供了一系列开箱即用的表情预设。你可以直接将它们添加到 emoji 选项中:</p>
<p>Alus</p>
<p><code>https://cdn.jsdelivr.net/gh/walinejs/[email protected]/alus</code></p>
<p>哔哩哔哩</p>
<p><code>https://cdn.jsdelivr.net/gh/walinejs/[email protected]/bilibili</code></p>
<p>QQ</p>
<p><code>https://cdn.jsdelivr.net/gh/walinejs/[email protected]/qq</code></p>
<p>贴吧</p>
<p><code>https://cdn.jsdelivr.net/gh/walinejs/[email protected]/tieba</code></p>
<p>Twitter Emoji</p>
<p><code>https://cdn.jsdelivr.net/gh/walinejs/[email protected]/tw-emoji</code></p>
<p>微博</p>
<p><code>https://cdn.jsdelivr.net/gh/walinejs/[email protected]/weibo</code></p>
</blockquote>
<h4 id="本站的配置">本站的配置</h4>
<p>例如本站目前的 Waline 部分配置如下:</p>
<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><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl"> # Waline client configuration see: https://waline.js.org/en/reference/client.html
</span></span><span class="line"><span class="cl"> waline:
</span></span><span class="line"><span class="cl"> serverURL: https://c.imayx.top/
</span></span><span class="line"><span class="cl"> lang: zh-CN
</span></span><span class="line"><span class="cl"> visitor: false
</span></span><span class="line"><span class="cl"> avatar:
</span></span><span class="line"><span class="cl"> emoji:
</span></span><span class="line"><span class="cl"> - https://cdn.jsdelivr.net/gh/walinejs/[email protected]/tieba
</span></span><span class="line"><span class="cl"> - https://cdn.jsdelivr.net/gh/walinejs/emojis/qq
</span></span><span class="line"><span class="cl"> - https://cdn.jsdelivr.net/gh/walinejs/[email protected]/alus
</span></span><span class="line"><span class="cl"> requiredMeta:
</span></span><span class="line"><span class="cl"> - name
</span></span><span class="line"><span class="cl"> - email
</span></span><span class="line"><span class="cl"> - url
</span></span><span class="line"><span class="cl"> placeholder:
</span></span><span class="line"><span class="cl"> locale:
</span></span><span class="line"><span class="cl"> admin: 博主
</span></span></code></pre></td></tr></table>
</div>
</div><p>B站和微博的表情看多了会让我生理性不适,因此没有添加进本站的客户端中。</p>
<h2 id="评论管理">评论管理</h2>
<blockquote>
<p>评论管理 (管理端)</p>
<p>部署完成后,请访问 <code>&lt;serverURL&gt;/ui/register</code> 进行注册。首个注册的人会被设定成管理员。</p>
<p>管理员登陆后,即可看到评论管理界面。在这里可以修改、标记或删除评论。</p>
<p>用户也通过评论框注册账号,登陆后会跳转到自己的档案页。</p>
</blockquote>
<h2 id="编辑记录">编辑记录</h2>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">2021-10-19 23:21:00
</span></span></code></pre></td></tr></table>
</div>
</div></description></item><item><title>出现 error: ld returned 1 exit status 的五种原因以及解决方法</title><link>https://imayx.top/error-ld-returned-1-exit-status/</link><pubDate>Sun, 22 Aug 2021 00:00:00 +0000</pubDate><guid>https://imayx.top/error-ld-returned-1-exit-status/</guid><description><img src="https://imayx.top/error-ld-returned-1-exit-status/fengmian.png" alt="Featured image of post 出现 error: ld returned 1 exit status 的五种原因以及解决方法" /><p>这个错误让人懵圈的地方就在于它不会给出错误出现的位置,让已经写了几百行的你痛不欲生。</p>
<h2 id="可执行文件被占用了">可执行文件被占用了</h2>
<p>因此编译器无法覆盖旧的可执行文件,所以编译失败。</p>
<p>这很有可能是你没发现它还没结束运行。</p>
<p>(我目前在用的 IDE:<a class="link" href="https://code.visualstudio.com/" target="_blank" rel="noopener"
>Visual Studio Code</a>)</p>
<p>扩展:<a class="link" href="https://marketplace.visualstudio.com/items?itemName=danielpinto8zz6.c-cpp-compile-run" target="_blank" rel="noopener"
>C/C++ Compile Run</a>(可以方便地编译单个 cpp 文件,且不会因为路径中存在空格或中文出错。)
<img src="https://i.loli.net/2021/08/22/XLc4rwa5vFWldKG.png"
loading="lazy"
></p>
<h3 id="解决方案">解决方案</h3>
<p>Dev C++ 等 IDE 直接把弹出的窗口(黑框)关了就行了</p>
<p>VS Code 可以从输出切换到终端选项卡,使用快捷键 Ctrl+C 结束程序(同样适用于 external console )。</p>
<p>实在不行就用任务管理器和 taskkill 吧
<img src="https://i.loli.net/2021/08/22/i1kWGBpEeq4njRo.png"
loading="lazy"
></p>
<h2 id="主函数不存在main-拼写错误">主函数不存在(main 拼写错误)</h2>
<p>你不太可能不写主函数,但是你很有可能把 <code>main</code> 打成 <code>mian</code> 或者什么其他奇怪的东西。</p>
<p>在编译器眼里,这些可不能算主函数。</p>
<p><img src="https://i.loli.net/2021/08/22/cx9kIgiFmMAUSe2.png"
loading="lazy"
></p>
<h3 id="解决方案-1">解决方案</h3>
<p>把 <code>main</code> 拼对。</p>
<h2 id="所调用的函数仅进行了声明">所调用的函数仅进行了声明</h2>
<p>这种情况下新版编译器仍旧会输出 <code>error: ld returned 1 exit status</code> 这一让人迷惑的错误。
<img src="https://i.loli.net/2021/08/22/ePJgykQW3GDwlKH.png"
loading="lazy"
>
但是一般也不会把函数体和声明分开写吧&hellip;</p>
<p>(函数声明在主函数上方即可,函数体是可以写在 main 函数下方的。)</p>
<h3 id="解决方案-2">解决方案</h3>
<p>把漏写了的函数体补上。</p>
<h2 id="旧版编译器在主函数中定义了函数">(旧版编译器)在主函数中定义了函数</h2>
<p>新版编译器发现你在 main 函数中定义了其它函数报错并不是<code>error: ld returned 1 exit status</code>,</p>
<p>而是<code>error: a function-definition is not allowed here before '{' token</code>
<img src="https://i.loli.net/2021/08/22/mAlnzduYxWRHPQf.png"
loading="lazy"
alt="Snipaste_2021-08-22_19-30-32.png"
></p>
<h3 id="解决方案-3">解决方案</h3>
<p>把子函数定义在主函数外面。</p>
<h2 id="旧版编译器调用了不存在的函数">(旧版编译器)调用了不存在的函数</h2>
<p>一般情况下应该是所需头文件未引入或者函数名键入错误。</p>
<p>并不确定“scanf/printf 键入错误”是不是真的会引起该错误(<a class="link" href="https://blog.csdn.net/e_t_e_r_n_i_t_y/article/details/109982282" target="_blank" rel="noopener"
>CSDN 上的一篇博客</a>说的,我也懒得去装个旧版编译器实测),是不是只有 scanf 和 printf 会这样更不得而知&hellip;</p>
<p>总之新版编译器即使在 CSDN 博文中所谓的“代码较多的情况”下也不会因为这个原因出现这种错误,只会告诉你这个函数在这个作用域没有被定义过,甚至还会反问你:</p>
<blockquote>
<p>你说的是 scanf 吗?</p>
</blockquote>
<p>(测试用代码是随机跳题后从<a class="link" href="https://www.luogu.com.cn/blog/ShadowassIIXVIIIIV/solution-p3783" target="_blank" rel="noopener"
>这里</a>复制的,并未提交评测)
<img src="https://i.loli.net/2021/08/22/nh231c5y94OTdHa.png"
loading="lazy"
></p>
<h3 id="解决方案-4">解决方案</h3>
<p>检查函数名称的拼写是否正确。</p>
<p>如果想调用库函数但不清楚应该引入什么头文件,可以在搜索引擎上像这样搜索:</p>
<p><code>sqrt() 所在的头文件</code></p>
<p><code>C++ sqrt()</code></p>
<p><code>C语言 sqrt()</code></p>
<p>或者直接 <code>#include &lt;bits/stdc++.h&gt;</code></p>
<h2 id="本文的测试环境">本文的测试环境</h2>
<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></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">g++ (MinGW-W64 x86_64-posix-seh, built by Brecht Sanders) 10.3.0
</span></span><span class="line"><span class="cl">Copyright (C) 2020 Free Software Foundation, Inc.
</span></span><span class="line"><span class="cl">This is free software; see the source for copying conditions. There is NO
</span></span><span class="line"><span class="cl">warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="编辑记录">编辑记录</h2>
<p>2021-08-22 19:20:00</p></description></item><item><title>MySSL 安全签章</title><link>https://imayx.top/ssl/</link><pubDate>Mon, 02 Aug 2021 00:00:00 +0000</pubDate><guid>https://imayx.top/ssl/</guid><description><img src="https://imayx.top/ssl/cover.png" alt="Featured image of post MySSL 安全签章" /><p><del>又摸了一下午整了个这么个东西出来</del></p>
<h2 id="要得到-a-评级">要得到 A+ 评级:</h2>
<p>您的网站必须启用 HSTS 且 <code>max-age</code> 属性不小于 6 个月(即 15768000 秒)</p>
<h2 id="请注意">请注意:</h2>
<p>启用 HSTS 后<strong>所有</strong>不支持 HTTPS 的子域名都将无法访问,且在 <code>max-age</code> 属性设置的时间内无法恢复。</p>
<h2 id="要得到-ats-合规">要得到 ATS 合规:</h2>
<p>您的网站必须支持 TLS v1.2。</p>
<h2 id="要得到-pci-dss-合规">要得到 PCI DSS 合规:</h2>
<p>您的网站不得支持 TLS v1.0。</p>
<p>关闭 TLS v1.0 支持意味着放弃对一些老旧操作系统和浏览器(Android ≤ 4.3、Internet Explorer ≤ 10、Java ≤ 7u25、Safari ≤5.1.9、OS X ≤ 10.6.8)的兼容性,具体测试情况见下图。</p>
<p><img src="https://blog.myssl.com/content/images/2018/06/---.jpg"
loading="lazy"
></p>
<blockquote>
<p>PCI安全标准委员会规定 2018 年 6 月 30 日之后,开启 TLS1.0 将导致 PCI DSS 不合规,</p>
</blockquote>
<p>具体参考:<a class="link" href="https://blog.myssl.com/pci-dss/" target="_blank" rel="noopener"
>《更严格的PCI DSS合规标准》</a></p>
<h2 id="hsts-相关配置可以参考-mysslcomhttpsmysslcom-的-https安全与兼容性配置指南httpsblogmysslcomhttps-security-compatibility-best-practices">HSTS 相关配置可以参考 <a class="link" href="https://myssl.com/" target="_blank" rel="noopener"
><code>MySSL.com</code></a> 的 <a class="link" href="https://blog.myssl.com/https-security-compatibility-best-practices/" target="_blank" rel="noopener"
>HTTPS安全与兼容性配置指南</a></h2>
<p>测试工具:<a class="link" href="https://gf.dev/hsts-test" target="_blank" rel="noopener"
>HTTP Strict Transport Security Header Testing Tool</a></p></description></item><item><title>题解 P1603 斯诺登的密码</title><link>https://imayx.top/key-to-p1603/</link><pubDate>Mon, 02 Aug 2021 00:00:00 +0000</pubDate><guid>https://imayx.top/key-to-p1603/</guid><description><img src="https://imayx.top/key-to-p1603/cover.jpg" alt="Featured image of post 题解 P1603 斯诺登的密码" /><p>题面来自<a class="link" href="https://www.luogu.com.cn/problem/P1603" target="_blank" rel="noopener"
>洛谷</a>,根据我的个人喜好有小修改</p>
<h2 id="题目背景">题目背景</h2>
<p>根据斯诺登事件出的一道水题</p>
<h2 id="题目描述">题目描述</h2>
<p>2013 年 X 月 X 日,俄罗斯办理了斯诺登的护照,于是他混迹于一架开往委内瑞拉的飞机。但是,这件事情太不周密了,因为 FBI 的间谍早已获悉他的具体位置——但这不是最重要的——最重要的是如果要去委内瑞拉,那么就要经过古巴,而经过古巴的路在美国的掌控之中。</p>
<p>丧心病狂的奥巴马迫降斯诺登的飞机,搜查时却发现,斯诺登杳无踪迹。但是,在据说是斯诺登的座位上,发现了一张纸条。纸条由纯英文构成:<code>Obama is a two five zero.</code>(以 <code>.</code> 结束输出,只有 6 个单词+一个句号,句子开头如没有大写亦为合法)这句话虽然有点无厘头,但是警官陈珺骛发现这是一条极其重要的线索。他在斯诺登截获的一台笔记本中找到了一个 C++ 程序,输入这条句子后立马给出了相对应的密码。陈珺鹜高兴得晕了过去,身为警官的你把字条和程序带上了飞机,准备飞往曼哈顿国际机场,但是在飞机上检查的时候发现——程序被粉碎了!飞机抵达华盛顿只剩5分钟,你必须在这 5 分钟内编写(杜撰)一个程序,免受上司的 10000000000%10 大板。破译密码的步骤如下:</p>
<p>(1)找出句子中所有用英文表示的数字($\leq 20$),列举在下:</p>
<p>正规:<code>one two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen sixteen seventeen eighteen nineteen twenty</code></p>
<p>非正规:<code>a both another first second third</code>。为避免造成歧义,<code>another</code> 算作 $1$ 处理。</p>
<p>(2)将这些数字平方后对 $100$ 取模,如 $00,05,11,19,86,99$。</p>
<p>(3)把这些两位数按数位排成一行,组成一个新数,如果开头为 $0$,就去 $0$。</p>
<p>(4)找出所有排列方法中最小的一个数,即为密码。</p>
<p>// 数据已经修正 By absi2011 如果还有问题请联系我</p>
<h2 id="输入格式">输入格式</h2>
<p>一个含有 6 个单词的句子。</p>
<h2 id="输出格式">输出格式</h2>
<p>一个整型变量(密码)。如果没有符合要求的数字出现,则输出 0。</p>
<h2 id="输入输出样例">输入输出样例</h2>
<p>输入 #1</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">Black Obama is two five zero .
</span></span></code></pre></td></tr></table>
</div>
</div><p>输出 #1</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">425
</span></span></code></pre></td></tr></table>
</div>
</div><h2 id="分析">分析</h2>
<p><del>数据咋骂人呢</del></p>
<p>先一个个输入单词与题目给出的 <code>26</code> 个单词匹配,<code>string</code> 类型可以直接使用逻辑运算符 <code>==</code> 进行判断(C++ 选手谁闲着没事用 <code>char</code> 数组啊);</p>
<p>由于已经知道单词数量是 $6$ 个并不需要用到 while 循环(输入字符串的情况下 cin 的返回值情况我也不清楚)</p>
<h2 id="一些问题">一些问题</h2>
<h3 id="为什么样例输出不是-245-或者-254-">为什么样例输出不是 <code>245</code> 或者 <code>254</code> ?</h3>
<blockquote>
<p>25和4组成的最小数不是254吗,为什么样例给的425?</p>
</blockquote>
<blockquote>
<p>Black Obama is <strong>two five</strong> zero .</p>
</blockquote>
<h4 id="zero-是不算数的"><code>zero</code> 是不算数的!</h4>
<p>因此我们从六个单词中只能提取出两个:<code>two</code> 和 <code>five</code>。</p>
<p>转换成数字就是 $2$ 和 $5$。</p>
<p>然后我们算出它们的平方。</p>
<p>$2^2=4$</p>
<p>$5^5=25$</p>
<p>对 $100$ 取模后结果是 $04$ 和 $25$,因为题目说</p>
<blockquote>
<p>把这些 <code>两位数</code> 按数位排成一行</p>
</blockquote>
<p>并且给出了 <code>00,05</code> 这两个例子</p>
<p>有两种排列方法,因为 $0425$ 开头为 $0$,去掉开头的 $0$ 之后就是 $425$,比另一个排列 $2504$ 小</p>
<p>所以这个所有排列方法中最小的一个数是 $425$,而不是 $2504$。</p>
<blockquote>
<p>把这些两位数<code>按数位</code>排成一行,组成一个新数</p>
</blockquote>
<p>我感觉中间那三个字是多余的&hellip;不仅不能帮助理解反而可能误导选手</p>
<h3 id="只能得-20-分">只能得 <code>20</code> 分?</h3>
<p>放一下我下载的测试点#2 的数据(<del>请勿用于打表</del>):</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">You are a three eight pig .
</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">10964
</span></span></code></pre></td></tr></table>
</div>
</div><p>我得了 <code>20</code> 分的程序在这个测试点上给出的答案是 <code>1964</code>,也就是忽略了所有 <code>0</code>,但实际上只能忽略开头那个。</p>
<blockquote>
<p>如果<code>开头</code>为 0,就去 0。</p>
</blockquote>
<p>记得排序。</p>
<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-cpp" data-lang="cpp"><span class="line"><span class="cl"><span class="k">if</span><span class="p">(</span><span class="n">num</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="n">num</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
</span></span><span class="line"><span class="cl"><span class="k">for</span><span class="p">(</span><span class="kt">int</span> <span class="n">i</span><span class="o">=</span><span class="mi">1</span><span class="p">;</span><span class="n">i</span><span class="o">&lt;</span><span class="n">cnt</span><span class="p">;</span><span class="n">i</span><span class="o">++</span><span class="p">){</span>
</span></span><span class="line"><span class="cl"> <span class="k">if</span><span class="p">(</span><span class="n">num</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">&gt;</span><span class="mi">10</span><span class="p">)</span> <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="n">num</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
</span></span><span class="line"><span class="cl"> <span class="k">else</span> <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="sc">&#39;0&#39;</span><span class="o">&lt;&lt;</span><span class="n">num</span><span class="p">[</span><span class="n">i</span><span class="p">];</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div><h3 id="忘了没有任何单词匹配的情况">忘了没有任何单词匹配的情况</h3>
<p><del>可能就我没看清题?</del></p>
<h4 id="直接输出-0-后结束程序即可">直接输出 <code>0</code> 后结束程序即可。</h4>
<p>其实不结束也啥都输出不出来,浪费点时间而已。</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-cpp" data-lang="cpp"><span class="line"><span class="cl"><span class="k">if</span><span class="p">(</span><span class="o">!</span><span class="n">cnt</span><span class="p">)</span> <span class="n">cout</span><span class="o">&lt;&lt;</span><span class="mi">0</span><span class="p">,</span><span class="n">exit</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
</span></span></code></pre></td></tr></table>
</div>
</div><h5 id="冷知识虽然-return-0-不能写在逗号后面用于结束程序无法通过编译但是-exit0-可以">冷知识,虽然 <code>return 0;</code> 不能写在逗号后面用于结束程序(无法通过编译),但是 <code>exit(0);</code> 可以</h5>
<h2 id="完整代码">完整代码</h2>
<h3 id="仅供学习参考使用">仅供学习参考使用</h3>
<p>抄袭、复制题解,以达到刷 AC 率/AC 数量或其他目的的行为,在洛谷是严格禁止的。</p>
<p>洛谷非常重视<strong>学术诚信</strong>。此类行为将会导致您成为<em>作弊者</em>。 具体细则请查看<a class="link" href="https://www.luogu.com.cn/blog/luogu/social-rules" target="_blank" rel="noopener"
>洛谷社区规则</a>。</p>
<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><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span><span class="lnt">27
</span><span class="lnt">28
</span><span class="lnt">29
</span><span class="lnt">30
</span><span class="lnt">31
</span><span class="lnt">32
</span><span class="lnt">33
</span><span class="lnt">34
</span><span class="lnt">35
</span><span class="lnt">36
</span><span class="lnt">37
</span><span class="lnt">38
</span><span class="lnt">39
</span><span class="lnt">40
</span><span class="lnt">41