-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsearch.xml
More file actions
2657 lines (2617 loc) · 463 KB
/
search.xml
File metadata and controls
2657 lines (2617 loc) · 463 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
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"?>
<search>
<entry>
<title>谈谈 2020 年的读书 FLAG</title>
<url>/2020/12/30/2020-read-flag/</url>
<content><![CDATA[<p>2020 年初的时候立了个 FLAG ,说是月读书量保一争二,争取输出一些读书笔记。最终保一是勉强完成了,中间也找了几本薄一点的凑了个数,争二就没争上。不过总的结果还是好的,因为收获的就不仅仅是完成任务的喜悦这么简单。</p>
<span id="more"></span>
<p>完整读完的 12 本,输出笔记 5 篇。在读 2 本。建立了待读书单,目前内有 32 本,明年也会在其中挑一部分来读。建立了自己的书籍数据库。了解了很多跟书籍相关的东西,算是半只脚踏进读书的圈子。</p>
<p>我会把目前已有的书籍登记在库,对阅读状态加以标注,对已读书籍会进行打分,有读书笔记的也要关联起来,便于后期分析各个出版社或品牌书籍质量,这个是很有意思的一件事情。</p>
<p>我的打分机制非常简单、也非常主观:5 星制。<br>★☆☆☆☆:内容差、名不副实、方法论书籍但不具有可操作性、纯鸡汤……<br>★★☆☆☆:写作内容尚可、方法论书籍可操作但不实用、单一技术手册……<br>★★★☆☆:中规中矩、对自己有一定帮助、可以扩充见识……<br>★★★★☆:写作内容优秀、能带来不同领域的突破性认识、方法论书籍提供的方法论成体系并且有很强的可操作性……<br>★★★★★:能改变人生观,价值观,世界观之一、我个人最喜爱的……</p>
<p>下面简单说说今年读的这些书,有读书笔记的就直接附连接了,没有的就简要谈谈。(书籍信息不全的是用 kindle 看的,不太确定版本)</p>
<h2 id="《谈美》"><a href="#《谈美》" class="headerlink" title="《谈美》"></a>《谈美》</h2><p>作者:朱光潜<br>出版社:湖南文艺出版社<br>品牌:博集天卷<br>评分:★★★★☆<br>读书笔记:<a href="https://ehnap.me/2020/11/17/i-do-not-understand-aesthetics/">关于美学其实我一无所知</a></p>
<h2 id="《文化苦旅》"><a href="#《文化苦旅》" class="headerlink" title="《文化苦旅》"></a>《文化苦旅》</h2><p>作者:余秋雨<br>评分:★★★☆☆</p>
<p>文化苦旅这本书很有意思,但我没有写读书笔记,对于这本书的评分我是比较纠结的,看之前我对余秋雨其实是存在一些偏见的,我觉得他的散文华而不实,纯纯的是词藻的堆砌。但是毕竟没有完整的看过他的书,这种批判显得有点太不客观了。所以我是抱着批判的心态去看待这本书。最开始我是要给这本书打 2 星的,不过后来看完之后,确实觉得他还是写出点东西的,华而不实形容他并不是太贴切,所以调整到 3 星。</p>
<h2 id="《读懂一本书:樊登读书法》"><a href="#《读懂一本书:樊登读书法》" class="headerlink" title="《读懂一本书:樊登读书法》"></a>《读懂一本书:樊登读书法》</h2><p>作者:樊登<br>评分:★★☆☆☆</p>
<p>今年两本讲读书方法的书,立了 FLAG 之后,便寻思先学学别人怎么读书的。然后年初的时候,樊登读书会很火,就看了这本书。不过看完之后,通篇提炼出来的就是:想把书读透了,得给别人讲。</p>
<h2 id="《高效阅读:20分钟读懂一本书》"><a href="#《高效阅读:20分钟读懂一本书》" class="headerlink" title="《高效阅读:20分钟读懂一本书》"></a>《高效阅读:20分钟读懂一本书》</h2><p>作者:渡边康弘<br>评分:★★☆☆☆</p>
<p>这本书,加上我以前看过的日本人写的数学书和编程书,给我留下了这样一个印象,日本人的书非常擅长搞深入浅出,凡是讲方法的书籍,方法都具有很强的可实操性,但是我太懒了,也没有按照里边提供的方法去读。不过在我阅读的时候确实有借鉴一些它提供的思路。</p>
<h2 id="《活着》"><a href="#《活着》" class="headerlink" title="《活着》"></a>《活着》</h2><p>作者:余华<br>评分:★★★★☆</p>
<p>这本书我印象很深刻,没读之前其实已经听说过很久了,没有人说它不好。在我过年之后回去工作的飞机上,一口气读完了。直接把我看哭了……</p>
<h2 id="《阅读是一座随身携带的避难所》"><a href="#《阅读是一座随身携带的避难所》" class="headerlink" title="《阅读是一座随身携带的避难所》"></a>《阅读是一座随身携带的避难所》</h2><p>作者:威廉·萨默赛特·毛姆<br>出版社:北京联合出版公司<br>品牌:联合读创<br>译者:罗长利<br>评分:★★★★☆<br>读书笔记:<a href="https://ehnap.me/2020/03/31/maugham-reading-notes/">一篇读《毛姆读书随笔》的随笔</a></p>
<h2 id="《局外人》"><a href="#《局外人》" class="headerlink" title="《局外人》"></a>《局外人》</h2><p>作者:阿尔贝·加缪<br>出版社:江苏凤凰文艺出版社<br>品牌:读客<br>译者:金祎<br>评分:★★★★☆<br>读书笔记:<a href="https://ehnap.me/2020/06/13/absurdity-and-reality/">荒诞的尽头也许是真实……</a></p>
<h2 id="《干校六记》"><a href="#《干校六记》" class="headerlink" title="《干校六记》"></a>《干校六记》</h2><p>作者:杨绛<br>评分:★★★☆☆</p>
<p>这本书之所以选来读,完全是因为感觉每月一本的任务要完不成了,感觉挺薄的,然后别人说挺好的,我就拿来凑数了。好是挺好,可以了解那个时期的事情。值得一提的是,这里边其实很多内容都挺内涵的,用今天的话讲是不是应该叫 YYGQ 。</p>
<h2 id="《房思琪的初恋乐园》"><a href="#《房思琪的初恋乐园》" class="headerlink" title="《房思琪的初恋乐园》"></a>《房思琪的初恋乐园》</h2><p>作者:林奕含<br>出版社:北京联合出版公司<br>品牌:磨铁图书(Xiron)<br>评分:★★★★★<br>读书笔记:<a href="https://ehnap.me/2020/07/15/a-book-about-child-sexual-abuse/">连封皮都透着压抑的书</a></p>
<h2 id="《人性的弱点》"><a href="#《人性的弱点》" class="headerlink" title="《人性的弱点》"></a>《人性的弱点》</h2><p>作者:戴尔·卡耐基<br>评分:★☆☆☆☆</p>
<p>这书应该是在微信读书上看的,花了一个下午,看完之后就觉得挺没意思的,我还以为是鸡汤文。</p>
<h2 id="《禅与摩托车维修艺术》"><a href="#《禅与摩托车维修艺术》" class="headerlink" title="《禅与摩托车维修艺术》"></a>《禅与摩托车维修艺术》</h2><p>作者:罗伯特·M·波西格<br>出版社:重庆出版社<br>译者:张国辰、王培沛<br>评分:★★★★★</p>
<p>yyds!这本书没有写读书笔记,是因为我一直不知道怎么下笔,才能配得上这本书的内容,它给我带来的是世界观的改变。基本上逢人就推,但是大家都以为我看的是修摩托车的书……太强了。明年打算重读一遍,也要把笔记补上了。</p>
<h2 id="《态度》"><a href="#《态度》" class="headerlink" title="《态度》"></a>《态度》</h2><p>作者:吴军<br>出版社:中信出版集团<br>评分:★★★☆☆<br>读书笔记:<a href="https://ehnap.me/2020/09/06/what-patterns-mean-to-ordinary-people/">格局对普通人有意义吗?</a></p>
]]></content>
<categories>
<category>IT-Life</category>
</categories>
<tags>
<tag>随笔</tag>
<tag>Harper说</tag>
</tags>
</entry>
<entry>
<title>迟到的 2021 年的读书 FLAG 总结</title>
<url>/2022/01/09/2021-read-flag/</url>
<content><![CDATA[<p>本来应该在 2021 年的最后一天完成的总结,竟然迟到了 9 天,可见拖延症已经达到了多么严重的地步!2021 年的保一争二 Flag 很遗憾是失败了,公众号的输出也不理想。主要的原因还是归结还是懒,工作也比较忙,导致个人 OKR 全面拉垮,多少有点罪恶感。</p>
<span id="more"></span>
<p>完整读完的 10 本,输出笔记 3 篇。在读 2 本。待买书单增加到 75 本,同比增长 134% 。其实这里边今年也有消化一部分(就是买了,不一定是看了),但是还在不断增加。</p>
<p>打分机制:5 星制。<br>★☆☆☆☆:内容差、名不副实、方法论书籍但不具有可操作性、纯鸡汤……<br>★★☆☆☆:写作内容尚可、方法论书籍可操作但不实用、单一技术手册……<br>★★★☆☆:中规中矩、对自己有一定帮助、可以扩充见识……<br>★★★★☆:写作内容优秀、能带来不同领域的突破性认识、方法论书籍提供的方法论成体系并且有很强的可操作性……<br>★★★★★:能改变人生观,价值观,世界观之一、我个人最喜爱的……</p>
<p>下面简单说说 2021 年读的这些书,有读书笔记的就直接附连接了,没有的就简要谈谈。(书籍信息不全的是用 kindle 看的,不太确定版本)</p>
<h2 id="《文心》"><a href="#《文心》" class="headerlink" title="《文心》"></a>《文心》</h2><p>作者:夏丏尊、叶圣陶<br>出版社:生活·读书·新知三联书店<br>品牌:生活·读书·新知三联书店<br>评分:★★★★☆<br>读书笔记:<a href="https://ehnap.me/2021/02/17/literary-mind-notes/">写作入门到底应该看点什么</a></p>
<h2 id="《呐喊:鲁迅短篇小说集》"><a href="#《呐喊:鲁迅短篇小说集》" class="headerlink" title="《呐喊:鲁迅短篇小说集》"></a>《呐喊:鲁迅短篇小说集》</h2><p>作者:鲁迅<br>出版社:天津人民出版社<br>品牌:果麦文化<br>评分:★★★★☆</p>
<p>我买的果麦的这本,完整收录鲁迅从1918至1922年所作小说十四篇、自序一篇,以及陈丹青先生专门为新版撰写的读后记长文一篇。我对果麦也算是真爱粉了,因为让我第一次感兴趣重读鲁迅是前年吧,在公司附近的书店看的《朝花夕拾(鲁迅散文精选集)》,那个时候发现看鲁迅就跟小时候的印象完全不一样了,然后也开始注意果麦这个品牌。不过这个品牌目前被某些轻型纸斗士喷的不轻,不过我觉得编的内容还是不错的。</p>
<p>说回这本书自身,里边有一些小说其实都是耳熟能详的,也是之前其实有读过的,但是这次再读,还是觉得不一样。那种感觉就好像,上学的时候,看到的其实是老师或者教材本身想要让我看到的鲁迅,而现在看已经可以绕过这一层,就好像又重新认识了鲁迅。有时候我总是在想,如果他活在现在,还能火成这样吗?这是一个问题……这本看完之后就不打算再单买鲁迅的书了,打算买一套鲁迅文集,已记入待办。</p>
<h2 id="《必然》"><a href="#《必然》" class="headerlink" title="《必然》"></a>《必然》</h2><p>作者:凯文·凯利<br>出版社:电子工业出版社<br>品牌:东西文库<br>译者:周峰、董理、金阳<br>评分:★★★★☆<br>读书笔记:<a href="https://ehnap.me/2021/06/28/inevitable/">未来已来,样子跟他说的还真差不多</a></p>
<h2 id="《富爸爸,穷爸爸》"><a href="#《富爸爸,穷爸爸》" class="headerlink" title="《富爸爸,穷爸爸》"></a>《富爸爸,穷爸爸》</h2><p>作者:罗伯特・T・清崎 / 莎伦・L・莱希特<br>评分:★★★★☆</p>
<p>这本书作为财商提升的入门书籍,被各种自媒体推荐烂了,惭愧我是今年才看。这本书给了四分,如果对于财商部分缺乏基本的概念,作为启蒙是比较不错的,可以给到一个比较新的视角。但是毕竟书已经出版 20 年了,里边一些比较实际的操作观点其实已经并不太灵了,入门不错,实操性一般。</p>
<h2 id="《大山里的小诗人》"><a href="#《大山里的小诗人》" class="headerlink" title="《大山里的小诗人》"></a>《大山里的小诗人》</h2><p>作者:『是光』的孩子们<br>出版社:江苏凤凰文艺出版社<br>品牌:果麦文化<br>评分:★★★★★<br>读书笔记:<a href="https://ehnap.me/2021/07/12/youthful-bliss/">『眼中有泪,心中有光』,年轻真好</a></p>
<h2 id="《姜二嫚的诗》"><a href="#《姜二嫚的诗》" class="headerlink" title="《姜二嫚的诗》"></a>《姜二嫚的诗》</h2><p>作者:姜二嫚<br>出版社:浙江文艺出版社<br>品牌:果麦文化<br>评分:★★★☆☆<br>读书笔记:同上</p>
<h2 id="《睡眠革命》"><a href="#《睡眠革命》" class="headerlink" title="《睡眠革命》"></a>《睡眠革命》</h2><p>作者:尼克·利特尔黑尔斯<br>出版社:贵州科技出版社<br>品牌:未读<br>译者:王敏<br>评分:★★★★☆</p>
<p>今年的上半年饱受失眠的困扰,曾经有一周里两天完全没睡觉。可能有工作的压力,也有睡觉环境差的原因,后来没办法,也想在书里找找答案,当时好像是看樊登推过这本书,大概了解了一下 R90 睡眠法,觉得这书应该有点东西,就买回来看了一下。R90 睡眠法确实是比较颠覆的一种观点,但是我根据书上说的,实际体验了一下,这种说法我觉得确实比 8 小时睡眠的说法要靠谱得多。所以关于睡眠的理论,这本书介绍的还是挺有意思的。但是后边实操比较适合那种睡眠质量想从好提升到更好,包括怎么布置房间、选床垫等等,但是如果是因为环境差导致睡眠质量差想把睡眠质量变好,其实没啥作用,只能把他说的相关的环境因素调整过来,但是我如果能调整过来,可能我也不用看这本书了。所以最终给到四星。如果它能解决我的失眠,那它应该就是五星了,但是没有…… 这本书后边的实操方法我就没怎么看了,主要是当时不具备实操的条件,后边如果要是打算布置一下卧室,会把它翻出来当参考手册。</p>
<h2 id="《十分钟冥想》"><a href="#《十分钟冥想》" class="headerlink" title="《十分钟冥想》"></a>《十分钟冥想》</h2><p>作者:安迪·普迪科姆<br>评分:★★★★☆</p>
<p>当时睡不着觉的时候,也有接触到冥想,基本每天晚上睡前都要听着冥想的指导音频,才能入睡。改善睡眠,这是我接触冥想的初衷。不过后来对这个东西深入的了解了一下,而且自身也有一些体验,也参加了公司冥想相关的组织,当时看有人分享这本书,就第一时间读了。算是一个手册类的书籍,讲如何去练习冥想,冥想的好处等等。优势的话就是书中冥想的练习方法,可操作性很大,让人很容易进入状态,算是把这种比较抽象的东西,描述的比较让人能接受的一本手册了,内容还算不错。</p>
<h2 id="《倾城之恋》"><a href="#《倾城之恋》" class="headerlink" title="《倾城之恋》"></a>《倾城之恋》</h2><p>作者:张爱玲<br>出版社:北京十月文艺出版社<br>品牌:新经典<br>评分:★★★★☆</p>
<p>张爱玲的书之前没有读过,但是对于一些比较经典的名句就知道一些。今年也读了一下,因为自己对红楼梦也是非常感兴趣,读她的书,就会觉得红楼梦的味道特别重,那种人物衣着描写,其实要是把它单拎出来,就会觉得跟红楼梦一样。当然她本人确实对红楼梦也是非常痴迷的,所以我也买了她的《红楼梦魇》,但是还没有看。</p>
<p>这本书是张爱玲中短篇小说集。收录创作于1943年至1944年创作的中短篇小说《第一炉香》《第二炉香》《茉莉香片》《心经》《封锁》《倾城之恋》《琉璃瓦》《金锁记》《连环套》。其实整体看下来,一方面是梁文道说的那样,可以透过张爱玲的这些爱情故事看到那个年代的社会状态;另一方面单从爱情故事的角度来看,张爱玲的文字我个人觉得是比较丧的,写出来的故事基本没啥好结局,可能倾城之恋在这些里还算是相对来说不错的结局。但是总归写出了爱情现实的残酷,也算有它的意义。我是觉得年轻妹纸看看,多对爱情多点戒备别上头,上点岁数的小姐姐就别看了,看了就觉得对爱情更没什么追求。</p>
<h2 id="《小径分岔的花园》"><a href="#《小径分岔的花园》" class="headerlink" title="《小径分岔的花园》"></a>《小径分岔的花园》</h2><p>作者:豪尔赫·路易斯·博尔赫斯<br>出版社:上海译文出版社<br>品牌:博尔赫斯全集<br>译者:王永年<br>评分:★★★★☆</p>
<p>博尔赫斯我是在梁文道的节目里了解到的,当时他就介绍了这本书,听了一下,觉得值得一看,就买来看了。读完之后整体的感觉是,字我都认识,但是没看懂。这个没看懂主要是指,写法太高级,感觉就是在玩写作。举例别人要写书是写书,他不直接写,它是写一篇故事来描述要写的书,还有各种各样的花样。而且文化梗太多,就是一看就知道这应该是个梗,但是因为书读得太少,根本不知道这是啥梗,有一部分注释上标了还好,有的没标,读完就是没有读出乐趣来,但是看着就知道不简单,但是因为读不懂,所以暂时也只能给四星。整本的话其实也就《小径分岔的花园》这篇还算是比较好读的。今年还买了他的《杜撰集》,打算再挑战一下。</p>
<h2 id="《如何成为不完美主义者》"><a href="#《如何成为不完美主义者》" class="headerlink" title="《如何成为不完美主义者》"></a>《如何成为不完美主义者》</h2><p>作者:斯蒂芬·盖斯<br>出版社:江西人民出版社<br>品牌:后浪<br>译者:陈晓颖<br>评分:★★★★☆</p>
<p>这本书也是看了一个 B 站 up 主推荐,但是感觉说的症状也是全中,所以毫不犹豫地买了看了,不得不说作者对完美主义的分析是十分透彻的,也针对这种状况给出了比较具有操作性的指导意见,如果下定决心要破除这种状态,这本书是很好的一个选择。而且有很多观点其实也是比较颠覆性的,非常值得一看。作者的成名作其实是《微习惯》,配合食用更佳,我已经把它加入待买书单。</p>
<h2 id="后记"><a href="#后记" class="headerlink" title="后记"></a>后记</h2><p>总体来看今年读的书质量整体水平是比较不错的,一般都在四星左右,没有二星。唯一一个五星给了《大山里的小诗人》,对小孩写的诗真的是毫无抵抗力,那种奇思妙想,那种纯真是大人做不到的。当然今年也有一些书看了之后昏昏欲睡,没能坚持读下去。比如《西西弗神话》,当时因为看了加缪的《局外人》觉得不错,这个又是经典,就买来看,结果看了两页就想睡觉;再比如《沉思录》,也是看了两页实在坚持不下去了。在读书籍一本是《建立边界感》,年底买的,正在读,没读完,只能排在明年的 OKR 里了,另外一本是蒋勋的《孤独六讲》,很早就买了,但是看了一部分之后中间断了,年末又重拾起来,也还没读完,只能排到明年 OKR 中了。</p>
<p>希望明年可以超额完成 OKR ……</p>
]]></content>
<categories>
<category>IT-Life</category>
</categories>
<tags>
<tag>随笔</tag>
<tag>Harper说</tag>
</tags>
</entry>
<entry>
<title>连封皮都透着压抑的书</title>
<url>/2020/07/15/a-book-about-child-sexual-abuse/</url>
<content><![CDATA[<p>六月份的预定目标很早就读完了,懒癌发作,一直拖到现在才写。</p>
<p>书的腰封上这样写道:<strong>「向死而生的文学绝唱」</strong>。对于这个说法,我表示十二分的赞同,这本书就是《房思琪的初恋乐园》(下称房书)。</p>
<span id="more"></span>
<p>主线:十三岁的少女房思琪被中年教师李国华诱奸,保持纯粹的性关系长达五年之久,无人理解、不能自救最终精神崩溃。副线:房思琪和朋友刘怡婷的文学领路人——邻居许伊纹,饱受家暴痛苦,最终遇到毛毛,终于解脱。</p>
<p>这本书是豆瓣2018年的高分图书,我很早就听说过。也很早就翻看过,但是看了几页就看不下去了,“最初的感觉”是看开头觉得文笔诡异,用了很多花哨的比喻,有很多语言也读不通,就没再看了。这次是因为买了实体书,就耐着性子看了下去。当我读到中间的时候,就非常能理解这本书的文风了,当我看完的时候,反而觉得如果开头不是这样的笔触,倒是不对了。就这样我只用了两天时间就看完了全本。而且还都是用睡前时间看的。也正因为如此,那两天根本就没睡好。</p>
<p>对于很多看过这本书的人来说,都认为这本书主线讲述的是十三岁的少女房思琪被中年教师李国华诱奸的故事。而根据作者林奕含本人的说法,这本书说的应该是:「房思琪爱上诱奸她的补习老师的故事」。这其中的区别就在于这个过程中是否有爱。从林奕含的说法,去看这个故事,则变得更加深刻,也更加悲剧。</p>
<p>儿童性侵是全世界都非常关注的主题。但是能以非常深刻的笔触写出这个的作品少之又少,毕竟对于作家来说,想象力终究是有限的,非亲身经历就不能深刻。通读房书会发现,作者的文字非常贴近房思琪的视角,让人非常直观的感受到她的痛苦。这也是为什么我说,当我看完之后这么久,再次拿起书,看到封皮的时候,依旧感到非常压抑。从这一点上来说,虽然最终不能找到确凿证据,但我愿意相信,林奕含是亲身经历过的。我很难想象,作者是承受着怎样的痛苦,将这些文字落于纸上。将房思琪的心理活动不失文采地完整写下来。仿佛把自己把自己放在火上烤,她不是消费了别人,而是消费了自己。</p>
<p>几乎所有看过这本书的人都认为这本书应该作为当代学生的性教育读本,我也十分同意。不过在我看来,从某种角度说,它更是当代父母与孩子沟通的警示录。房思琪和房妈的对话和经历,让我想起了前年家乡的一个学生跳楼事件,导火索大概就是因为孩子被没收了手机,据说已经非常郁闷了,然后在考试前又被父亲说了几句,最终直接从楼上一跃而下。跟房妈一样,说到底是家长对孩子的心理状态不够敏感。不能够平视孩子,不理解、不关注。</p>
<p>说回房书,对于房思琪最终的精神崩溃,直接原因当然是李国华。但正如书中所写,周围的人全是帮凶。如果刘怡婷能了解到房思琪的痛苦;如果在房思琪第一次试探性的跟房妈交流的时候,房妈能准确感知她的异常;如果许伊纹愿意对房思琪敞开心扉,得到房思琪毫无保留地倾诉,这一切也许不会最终这么糟糕。整个事情的走向,但恰恰相反,正像当初李国华所想的那样,<strong>「一个如此精致的小孩是不会说出去的,因为这太脏了。自尊心往往是一根伤人伤己的针,但是在这里,自尊心会缝起她的嘴。」</strong> 这么多人,没有发现房思琪的挣扎,而房思琪最终也没能战胜自己,才造就了如此悲剧。更为可怕的是,书中的世界不止李国华,还有蔡良,也不止房思琪,还有郭晓奇、饼干。正是社会对这种事情缺乏敏感,才造就了这么多的悲剧。</p>
<p>我曾经想,如果在书中真的有一个人成功的拯救了房思琪,毫无疑问只有许伊纹,因为许伊纹已经感受到了房思琪的异常,但是很遗憾,伊纹自己深陷家暴的泥潭无法自救,最终并没能拯救房思琪。</p>
<p>最后还是要说一下,书中用了大量的比喻,导致我初读此书的时候非常不习惯,所以很久之前第一次读的时候并没有读完便放弃了。而后来我从不习惯到认为文风理应如此,有这么大的转变,也许用书里的一句话便能完美解释了。那是因为:</p>
<p><strong>「我已经知道,联想、象征、隐喻,是世界上最危险的东西。」</strong></p>
]]></content>
<categories>
<category>IT-Life</category>
</categories>
<tags>
<tag>随笔</tag>
<tag>Harper说</tag>
</tags>
</entry>
<entry>
<title>荒诞的尽头也许是真实……</title>
<url>/2020/06/13/absurdity-and-reality/</url>
<content><![CDATA[<p>上个月读了加缪的《局外人》(金祎的译本)。买书之前调查了一下各种译本以及同一个译者的不同版本,最终还是选了金祎译的这本,除了有翻译上的原因,还有一个理由是,这本书除了有小说内容之外,还在后边附上了:后记、导读、加缪的演讲稿,这些内容着实让我对这部小说有了更深刻的认识。当然对于存在主义,我现在还是知之甚少的……</p>
<span id="more"></span>
<p>《局外人》,传说中的荒诞文学……,有点震撼。那种感觉大概就是觉得很厉害,但是当我想写点什么的时候,却什么都写不出来,再加上工作一直很忙,这篇读书笔记上个月读了加缪的《局外人》(金祎的译本)。买书之前调查了一下各种译本以及同一个译者的不同版本,最终还是选了金祎译的这本,除了有翻译上的原因,还有一个理由是,这本书除了有小说内容之外,还在后边附上了:后记、导读、加缪的演讲稿,这些内容着实让我对这部小说有了更深刻的认识。当然对于存在主义,我现在还是知之甚少的……</p>
<p>《局外人》,传说中的荒诞文学……,有点震撼。那种感觉大概就是觉得很厉害,但是当我想写点什么的时候,却什么都写不出来,再加上工作一直很忙,这篇读书笔记就“难产”了。这段时间里,我仔细琢磨它让我震撼的点究竟是什么,如果非要找到一个理由,那大概就是这篇小说有点短,剧情也一点都不跌宕起伏,但是会给我无穷的拷问。也许我在看其他小说的时候,会花 80% 的时间看剧情,花 20% 的时间去思考,但对于这本《局外人》,我想应该是倒过来的。</p>
<p>我甚至不想对这本书的内容做任何的介绍,因为并没有什么介绍能胜过完整的读一遍。如果非要找到一个故事简介,我想用加缪自己的话说是最合适的,“《局外人》讲述的是一个毫无英雄主义的自命不凡的、只是愿意为真实赴死的男人的故事。”</p>
<p>我在纸面上看到的主人公默尔索,是一个不参与游戏……徘徊在社会边缘……拒绝撒谎的人,但也正因为如此,他最终走向了死亡。而导致他走向死亡的根本原因,“可能”是因为他没有在母亲的葬礼上哭泣。(加缪也曾经这样介绍《局外人》的主题:在我们的社会里,任何不在母亲葬礼上哭泣的人,都有可能被处以死刑);而透过这层纸,我看到的默尔索是直面自己的、“绝对”而又“真实”的人。</p>
<p>而正是因为他的“绝对”与“真实”,有些人会认为默尔索是一个被社会抛弃的人,也是加缪所说的“局外人”。他抵抗这个社会设定的规则,原因就是因为他拒绝说谎。加缪的说法是,说谎并不一定意味着说假话,而是当你讲述的不仅是真相的时候,就已经是在说谎了。默尔索抵抗的正是这种“广义的”说谎。</p>
<p>实际上我也一直在思考,这个世界是否能存在绝对的客观。而现在看来,默尔索身上具有的真实,跟我所想象的绝对的客观是非常相似的。当我们一直在寻求客观的时候,突然出现了一个默尔索一样的人,或许我们并不会认为他很真实,反而会认为他是异类,加缪用这本书给了我一个很好的诠释。更让我感到肃然起敬的是,他可以把这些东西赤裸裸的落到纸面上去思考。</p>
<p>这本书让我清晰地感受到:荒诞的尽头是真实。但我隐约也有一种感觉,如果人不能巧妙地游走在荒诞与真实之间,而是走向一个极端,在这个社会也必然是难以生存的。这就是芸芸众生之中的那些“局外人”的现状。即使像默尔索,最终也走向了一个妥协。正如书中所说:『为了让一切有个了结,为了使我不感到那么孤独,我还是希望我被处决的那天有很多人来观看,希望他们用仇恨的喊声来欢迎我。』</p>
<p>跳出小说中的内容,通过导读的一些东西,让我对加缪各种崇拜。他并不是那种,误打误撞,靠一部作品一炮走红的作家,而是掌握着自上而下的超强写作能力的作家,他对自己的作品有着清晰的架构,所有的作品内容都在他的掌控之中,看似内容没有关联的几部作品,实则诠释了他对某一内涵的完整解读,而这种解读又并非只是简单的扣住一个主题,而是有着清晰的层次划分的,这是我见过的少有的,不得不说他算是个写作的天才。</p>
<p>最后用默尔索的一句话,也是全书唯一出现过“荒诞”一词的地方,来结束这篇笔记。</p>
<p>『在我所度过的整个荒诞的人生中,从我未来的深处,一股昏暗的气息穿越尚未到来的岁月向我扑来,这股气息一路袭来,使别人向我建议的一切都变得毫无差别,未来的岁月并不比我已经度过的岁月更真实』就“难产”了。这段时间里,我仔细琢磨它让我震撼的点究竟是什么,如果非要找到一个理由,那大概就是这篇小说有点短,剧情也一点都不跌宕起伏,但是会给我无穷的拷问。也许我在看其他小说的时候,会花 80% 的时间看剧情,花 20% 的时间去思考,但对于这本《局外人》,我想应该是倒过来的。</p>
<p>我甚至不想对这本书的内容做任何的介绍,因为并没有什么介绍能胜过完整的读一遍。如果非要找到一个故事简介,我想用加缪自己的话说是最合适的,“《局外人》讲述的是一个毫无英雄主义的自命不凡的、只是愿意为真实赴死的男人的故事。”</p>
<p>我在纸面上看到的主人公默尔索,是一个不参与游戏……徘徊在社会边缘……拒绝撒谎的人,但也正因为如此,他最终走向了死亡。而导致他走向死亡的根本原因,“可能”是因为他没有在母亲的葬礼上哭泣。(加缪也曾经这样介绍《局外人》的主题:在我们的社会里,任何不在母亲葬礼上哭泣的人,都有可能被处以死刑);而透过这层纸,我看到的默尔索是直面自己的、“绝对”而又“真实”的人。</p>
<p>而正是因为他的“绝对”与“真实”,有些人会认为默尔索是一个被社会抛弃的人,也是加缪所说的“局外人”。他抵抗这个社会设定的规则,原因就是因为他拒绝说谎。加缪的说法是,说谎并不一定意味着说假话,而是当你讲述的不仅是真相的时候,就已经是在说谎了。默尔索抵抗的正是这种“广义的”说谎。</p>
<p>实际上我也一直在思考,这个世界是否能存在绝对的客观。而现在看来,默尔索身上具有的真实,跟我所想象的绝对的客观是非常相似的。当我们一直在寻求客观的时候,突然出现了一个默尔索一样的人,或许我们并不会认为他很真实,反而会认为他是异类,加缪用这本书给了我一个很好的诠释。更让我感到肃然起敬的是,他可以把这些东西赤裸裸的落到纸面上去思考。</p>
<p>这本书让我清晰地感受到:荒诞的尽头是真实。但我隐约也有一种感觉,如果人不能巧妙地游走在荒诞与真实之间,而是走向一个极端,在这个社会也必然是难以生存的。这就是芸芸众生之中的那些“局外人”的现状。即使像默尔索,最终也走向了一个妥协。正如书中所说:『为了让一切有个了结,为了使我不感到那么孤独,我还是希望我被处决的那天有很多人来观看,希望他们用仇恨的喊声来欢迎我。』</p>
<p>跳出小说中的内容,通过导读的一些东西,让我对加缪各种崇拜。他并不是那种,误打误撞,靠一部作品一炮走红的作家,而是掌握着自上而下的超强写作能力的作家,他对自己的作品有着清晰的架构,所有的作品内容都在他的掌控之中,看似内容没有关联的几部作品,实则诠释了他对某一内涵的完整解读,而这种解读又并非只是简单的扣住一个主题,而是有着清晰的层次划分的,这是我见过的少有的,不得不说他算是个写作的天才。</p>
<p>最后用默尔索的一句话,也是全书唯一出现过“荒诞”一词的地方,来结束这篇笔记。</p>
<p>『在我所度过的整个荒诞的人生中,从我未来的深处,一股昏暗的气息穿越尚未到来的岁月向我扑来,这股气息一路袭来,使别人向我建议的一切都变得毫无差别,未来的岁月并不比我已经度过的岁月更真实』</p>
]]></content>
<categories>
<category>IT-Life</category>
</categories>
<tags>
<tag>随笔</tag>
<tag>Harper说</tag>
</tags>
</entry>
<entry>
<title>2018年度报告</title>
<url>/2018/12/29/annual-2018/</url>
<content><![CDATA[<p>正值19和20年交替之际,我做了一个决定,打算每年都做一个年度报告,记录这一年的年度事件与感悟。18年的记忆还在,就顺手补上了,所以这篇文章其实是在19年末写的。但为了保证文章的顺序,还是觉得把他放在18年的归档中,比较妥当,所以将文章的时间改前了一年。</p>
<span id="more"></span>
<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>2018年变化之大,说是我人生中的一个重要节点也不为过。我一直觉得2018年这一年的经历可能比我之前七八年的经历还丰富。</p>
<h2 id="离职"><a href="#离职" class="headerlink" title="离职"></a>离职</h2><h3 id="一直在累积的工作负面情绪"><a href="#一直在累积的工作负面情绪" class="headerlink" title="一直在累积的工作负面情绪"></a>一直在累积的工作负面情绪</h3><p>到现在我都还记得离职之前的那段日子,用我当时自己这样评价自己,我已经不适合这个团队了,我的负面情绪太重了,觉得工作没意思,没前途,没冲劲。在 WPS 我没有好的需求可以接,打杂的需求学不到东西,觉得自从不做 WPS看图 (现在叫的 WPS图片 )之后,一直在维护 PDF2WORD 插件,天天跟新西兰老铁对接 SDK 的问题,没有任何技术上的提升,再加上一直不满意的薪资,实际上负面情绪已经非常严重了。而且在 WPS 做了两年多(算上实习就三年多),一路走来,按说自己技术肯定是有了提升,但是实际上我对自己越来越不自信,对自己的水平产生了严重的怀疑,害怕、恐惧,觉得自己脑子不够灵光。感觉是不是除了 WPS 也没别的地方能去了,又不甘心。这种情绪,随着一直工作下去,一直就在累积,得不到任何释放和消除。</p>
<h3 id="异地恋"><a href="#异地恋" class="headerlink" title="异地恋"></a>异地恋</h3><p>2016年12月2日,一个妹纸走进了我的世界,坦率地说,我从没有想过,她会给我的生活带来巨大的改变,甚至重塑了我的爱情观,但事实就是如此。一直到2017年末整整一年的异地恋,而且这中间又发生了难以言说的事情,耗费了我太多的精力。我又在工作,异地恋的距离之远,让我感到非常无力。所以其实在18年的春节已经开始在谋划换地方工作了。当时就决定是裸辞,顺便休整一下,考个驾照,也多准备一下。</p>
<h3 id="公司搬迁"><a href="#公司搬迁" class="headerlink" title="公司搬迁"></a>公司搬迁</h3><p>2017年10月份,公司正式搬到唐家的金山软件园的新楼,空气中导出充斥着甲醛,但公司也并没有什么好的防护措施,也算是一个小小的不满吧。</p>
<h3 id="结果"><a href="#结果" class="headerlink" title="结果"></a>结果</h3><p>总之,2018年3月24日我从 WPS 正式离职。没有下家,也没有任何口头 offer,就这样辞职了,收拾了在广州上学和在珠海生活的这几年的东西,能卖的出二手,或者送人,不舍得卖,卖不出去的,打包寄回了家里。</p>
<h2 id="考驾照"><a href="#考驾照" class="headerlink" title="考驾照"></a>考驾照</h2><p>4月份开始学习开车,从报名到拿证,一共43天,感觉也算是很快了</p>
<h2 id="找工作"><a href="#找工作" class="headerlink" title="找工作"></a>找工作</h2><p>5月份拿到驾照,就做了计划,准备准备简历,复习一下很久没看过的一些面试相关的东西。6月份去北京看看工作机会。在家里投了几个,电话里聊了一下,得到一个二面通知的时候,就正式买了去北京的车票,在北京找工。住在通州的亲戚家里,每天到西二旗来回五个小时车程,两周拿到了三个 offer 。事实上都是前一周的 offer,后一周基本上面试都很少了,而且大厂一个面试邀请都都没有,毕竟不是金三银四,金九银十。没有大厂的 offer,薪水给的很勉强,有一个甚至因为当时没接,后来再去的时候直接当面砍了价格。也正是因为这个,让我感到技术的廉价,让我萌生了考研的想法,而且女朋友也在准备考研,又想跟女朋友呆在一起,我一气之下拒了这仅有的三个 offer,离开北京又回了家。实际上如果那时的我是2019年的我,我应该很容易判断,考研这个决定是否靠谱,但事实是,我没有考虑太多,就做了决定。也或者说,心里可能想着考不上也不亏。不得不说,裸辞让人胆子变得更大,裸辞一时爽,裸辞时间越长就越爽。</p>
<h2 id="考研"><a href="#考研" class="headerlink" title="考研"></a>考研</h2><p>事实是到9月份,就没怎么准备,或者说是没准备,沉迷女色,“沉迷游戏”,之所以沉迷游戏做了引号,是因为在后边看来可能是坏事,也可能有好的收获。9月份开始,常规的看看课程,做笔记,做题,书是买了不少,也有做,中间又经历了分手,痛苦了一段时间。一直到11月份,攻略上说这个时候得开始模拟了,每天也是常规的做做模拟卷(数学),但实际上按之前的复习状态,可想而知,这个时候确实开始有些发慌了。但还是按着这个节奏在搞,英语一直都是背单词,直到上考场模拟卷一套也没做过,英语考试前一天晚上我都还不知道题型都有啥……也是没谁了……计算机专业课把王道和天勤的选择撸了,发现工作两年多,还好,选择什么的还不虚。政治跟着肖秀荣所有选择撸了两遍。考试之前背了肖四,和一些所谓的秘密资料。最后英语61 政治56 专业课119 数学……还是不说了…… 如果跟专业课一样分,估计我已经上学了。</p>
<h2 id="分手"><a href="#分手" class="headerlink" title="分手"></a>分手</h2><p>“求不得”可能才是生活的常态,只是我还不习惯。明明觉得遇上了一个有趣的人,也憧憬了很多,但也有很多的矛盾。就这样还是分开了,有爱没恨、只是遗憾。这段感情人对了,时间不合适了,很多事情都变的拧巴了,也没法重来了。</p>
<h2 id="意外收获"><a href="#意外收获" class="headerlink" title="意外收获"></a>意外收获</h2><p>离职的时候,我一度认为我不聪明,脑子不灵活。玩游戏都没有别人玩的好,一无是处,找不到自己的优点,也没有自信。这一年我沉迷游戏,说来也可笑,其实倒也不是沉迷游戏本身,我只是想知道我到底是不是什么都做不好。</p>
<h3 id="提升认知与自信"><a href="#提升认知与自信" class="headerlink" title="提升认知与自信"></a>提升认知与自信</h3><p>不管听起来是不是很可笑,亦或者像是打广告,但我确实是通过玩QQ飞车手游,提升了自己对未知的东西的认知能力。玩了大半年,排位上了星耀三,再回顾,发现对游戏的理解跟从前完全不一样。再加上在复习政治的过程中,真正的研究了一下马克思主义哲学。这种感觉仿佛一下子通透了。</p>
<p>我对认知过程的理解和感悟可以用两个概念概括:</p>
<blockquote>
<p>否定之否定(哲学的基本规律之一)。它揭示了事物发展的前进性与曲折性的统一,表明了事物的发展不是直线式前进而是螺旋式上升的。</p>
</blockquote>
<blockquote>
<p>《人间词话》:“古今之成大事业、大学问者,必经过三种之境界:‘昨夜西风凋碧树。独上高楼,望尽天涯路’。此第一境也。‘衣带渐宽终不悔,为伊消得人憔悴。’此第二境也。‘众里寻他千百度,蓦然回首,那人却在,灯火阑珊处’。此第三境也。”</p>
</blockquote>
<p>终于我也找到了自己的认知体系,算是一个意外收获,让我知道,我在各个方面的现有的认知水平,究竟是怎样的。而且游戏本身也让我觉得,只要花时间琢磨,我还是可以做的更好的,在一定程度上还是有一些自信的回升。</p>
<h3 id="对裸辞的认识"><a href="#对裸辞的认识" class="headerlink" title="对裸辞的认识"></a>对裸辞的认识</h3><p>毕业之后一直在金山工作,没有去过别的公司,也没有面过别的公司,实际上在之前的时间里,裸辞是一个根本不敢想的东西。很难想象一年不工作,我觉得这在职场是致命的,在知乎看到了那么多人,那么多帖子,告诉你不要裸辞,但事实上,都是小马过河的故事。到底你能不能裸辞,只有你自己知道,至少对于我来说,无所畏惧了,因为我尝试过,也没有觉得多恐怖。我也敢于去追自己想要的东西,这比大部分人来说迈出了一大步,也算是一个意外收获。</p>
<h3 id="重新为自己的技术估值"><a href="#重新为自己的技术估值" class="headerlink" title="重新为自己的技术估值"></a>重新为自己的技术估值</h3><p>在北京找工作,都觉得不太满意,虽然最后回家了,但实际上这段经历也是非常有用的,这对我估量市场行情有很大帮助。</p>
<h3 id="价值观的重塑"><a href="#价值观的重塑" class="headerlink" title="价值观的重塑"></a>价值观的重塑</h3><p>事实上经历了2018年这几件事之后,我整个人是非常丧的。一度觉得自己走向自闭了。看到正在工作的小伙伴,赚的盆满钵满,实话实说,我是酸的。但可能有时候就是不破不立,走了极端不一定是坏事。后来我也终于想透了。只要人一进入职场,就浮躁了起来,整个人飘在天上,眼睛看着钱,看着周围的人赚多少钱,自己赚的多还是少。但一燥起来,就忘了本质,燥到只渴望钱,而不知道为什么渴望钱。</p>
<p>失去了目的和本质之后,就转为单纯的贪婪,这就变得可怕,原因有二:</p>
<ul>
<li>一是贪婪无止境,会让人变得盲目、无底线;</li>
<li>二是当聚焦到钱上之后,做事变得不再纯粹,不够专注,就会做的不够好。</li>
</ul>
<p>当我明白了这两点之后,很多东西就放下了,慢下来了。</p>
<h2 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h2><p>回顾2018的关键词:离职、找工作失利、考研失利、分手。仿佛没有一个是让人觉得向好的,但是在19年开年的时候我写下了一段话,确是非常阳光的,我想可能就是因为这些意外收获,我觉得很有价值。所以2018年是试错的一年,我觉得值得。</p>
<h2 id="后记"><a href="#后记" class="headerlink" title="后记"></a>后记</h2><h3 id="年度书籍"><a href="#年度书籍" class="headerlink" title="年度书籍"></a>年度书籍</h3><ul>
<li>《天勤计算机考研2019数据结构高分笔记 》</li>
<li>《天勤数据结构高分笔记之习题精析扩展》</li>
<li><a href="https://book.douban.com/subject/30258763/">《肖秀荣2019考研政治命题人1000题(上册试题、下册解析)》</a></li>
<li><a href="https://book.douban.com/subject/30269999/">《肖秀荣2019考研政治命题人知识点精讲精练》</a></li>
<li><a href="https://book.douban.com/subject/30326003/">《肖秀荣2019考研政治命题人讲真题(上、下册)》</a> - 10%</li>
<li><a href="https://book.douban.com/subject/30391616/">《肖秀荣2019考研政治命题人冲刺8套卷》</a></li>
<li><a href="https://book.douban.com/subject/30396091/">《肖秀荣2019考研政治命题人终极预测4套卷》</a></li>
<li>《王道考研2019计算机考研(数据结构、操作系统、计组、计网)》</li>
<li>《高数叔总复习笔记(高数、线代、概率论)》</li>
<li>《2019张宇考研数学真题大全解(数一)》</li>
<li>《2019石磊考研政治保命32分》</li>
<li>《2019李正元范培华考研数学历年试题解析数学一》</li>
<li><a href="https://book.douban.com/subject/30765054/">《2019恋练有词》</a></li>
<li><a href="https://book.douban.com/subject/26677354/">《数学女孩》</a></li>
<li><a href="https://book.douban.com/subject/11610490/">《数学与人类文明》</a></li>
<li><a href="https://book.douban.com/subject/20494401/">《费马大定理-一个困惑了世间智者358年的谜》</a></li>
</ul>
<h3 id="年度人物"><a href="#年度人物" class="headerlink" title="年度人物"></a>年度人物</h3><ul>
<li>峰哥(离职找我谈话,跟我说的一番话,我一直铭记,受益匪浅)</li>
<li>前女友(重塑了我的爱情观)</li>
</ul>
]]></content>
<categories>
<category>IT-Life</category>
</categories>
<tags>
<tag>随笔</tag>
<tag>年度总结</tag>
<tag>人生经验</tag>
</tags>
</entry>
<entry>
<title>2019年度报告</title>
<url>/2019/12/30/annual-2019/</url>
<content><![CDATA[<p>今年的年末突然有个想法,每年的年末要出一个年度报告,记录这一年来的大事记,年度书籍,年度人物。这样便于及时看清自己的状况,做到心里有数,不迷茫。以后回忆起来,也有地方翻看一下。</p>
<span id="more"></span>
<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>总体看来,2019是向好的,至少在我看来要比2018年好了一些,不那么惨淡。新的开始,新的工作,新的同事。增加了很多新的见识。</p>
<h2 id="旅游"><a href="#旅游" class="headerlink" title="旅游"></a>旅游</h2><p>2018年的种种失利,让我在年末的时候,非常低落。还没有考试之前,便计划好了,考完试要自己走一下,不做具体行程计划,完全随心,前一天晚上考虑第二天去哪。所以只是提前定了住的地点和车票。打算坐火车,边走边玩,最后回家。我当时给我这次旅行定为涅槃之旅,希望能借着旅行可以散散心。</p>
<h3 id="行程"><a href="#行程" class="headerlink" title="行程"></a>行程</h3><p>考研结束后,在珠海小做休整,2018年12月25日从珠海出发,这一走就是21天,珠海、广州、长沙、武汉、西安、郑州、洛阳、大连,最后回家。</p>
<ul>
<li>珠海:跟同事吃了饭,互相交流了一下,离开职场一年,问问他们有什么见闻。自己去曾经总去的地方散散步,找找回忆。</li>
<li>广州:跟同学聚了一下,问问他们的近况。</li>
<li>长沙:在长沙逗留了三天,去吃臭豆腐、大香肠,去橘子洲,去岳麓山,岳麓书院、湖南广电总局。去岳麓书院的时候大摇大摆进去,竟然没有人跟我要门票,我还以为不用门票,出来之后我才知道,这里是要门票的,而且很幸运的在岳麓山上遇到我来南方之后的第一场雪。</li>
<li>武汉:跟之前珠海调去武汉的同事聚了一下,聊聊近况。跟家里的亲戚之前约好了元旦在武汉的小姨家聚会,聚了一下,聊聊天,聊聊各自的状况。</li>
<li>西安:在西安的行程就不做赘述了,有自撰蚂蜂窝<a href="http://m.mafengwo.cn/i/11625062.html">游记</a>一篇。</li>
<li>郑州:只停留了几个小时便转车去了洛阳</li>
<li>洛阳:在洛阳,去了丽景门喝《舌尖》中说到的不翻汤,去古墓博物馆近距离看古代的墓穴,去了龙门石窟、白马寺。有幸看到了雪中的龙门石窟。还去了洛阳博物馆。</li>
<li>大连:跟高中同学吃了个饭,聊聊近况。</li>
</ul>
<h3 id="感悟"><a href="#感悟" class="headerlink" title="感悟"></a>感悟</h3><p>这段旅程对我来说有很重要的意义,或者说比我之前预想的要更有价值。原本只是为了散心,但这次行程我看到了很多人,感受到了很多的事,很多执着的东西,让我能放下了,也在一定程度上突破了自己。</p>
<p>意外收获的话,就是发现淡季出去旅游,消费减半,体验翻倍。终于不用再看人,而是专注内容与感悟。</p>
<p>在长沙,尝了我之前从来没有吃过的臭豆腐,总是觉得来长沙一次,不吃就可惜了,突破了一下自我;</p>
<p>在西安,陕西省博物馆讲解员、秦陵讲解员、南城东巷乐队以及观看他们演出的一个中年男人、在大冰的小屋唱歌的歌手,还有南门地下通道的演唱小哥,给了我太深刻的印象,我没有跟他们说一句话,但我切切实实是被他们感染了。在他们的身上,我看不到一丝的铜臭,我只看到<strong>热爱、专注,对自己从事行业的执著</strong>。两个讲解员都是学历史出身,但没有去做考古研究,而是选择做讲解员,收入不高,但热情不减,从他们的介绍当中,我能看出那种对这份工作的热爱,而不是对钱的热爱;去大冰的小屋喝酒,歌手唱歌之前还不忘跟我们说,推了今天的麻将局,来这里唱歌;南门下的南城东巷乐队,1月份的西安,午夜12点,那份寒冷让观众都有些受不了,他们还在唱着,手僵了就找杯热水暖手,热烈的气氛,让人突然觉得不像是冬天。吉他包里没有多少钞票,但是并不影响歌手的热情,一直唱到凌晨一点,而我一直看着他们唱完,还有一个中年男人,一直看到他们唱完,并放了三百元在吉他包里。他与周围的年轻人,形成了鲜明的对比,我不知道他有什么故事,但我觉得他在这里得到了他从来没有得到的快乐。我还看到了南门地下通道的唱歌小哥,一个观众都没有,但唱的还是非常有激情。</p>
<p>在他们身上,我突然觉得,<strong>有一件自己喜欢做的事情是非常幸福的,那种无关钱财的豁然,让这份幸福成倍的放大</strong>。在他们对比下,我觉得对金钱的追求让我变得渺小,我甚至找不到一个,我能笃定的为之奋斗的事业,这不得不让我感到惭愧。同时在他们的身上,我看到了那种积极,即使学历史不去考古,搞乐队不上舞台,但不妨碍他们把自己的快乐分享给别人,在任何层次上都可以做到极致,这对我一直以来的观念是极大的冲突,以前的我总会觉得自己的能力不行,但就觉得很失望,很沮丧,失去了动力。西安之行让我改变了很多,或许很多事情只有这些离我最近的人,或许才会更容易打动我。</p>
<p>临近年末的时候,在微信群的一段对话让我印象深刻:</p>
<blockquote>
<p>马老师:你们工作上出问题,会内疚吗?</p>
<p>我:为什么会内疚?</p>
<p>马老师:就是觉得没帮到别人,很难受。</p>
<p>我:你尽力没吧?</p>
<p>马老师:嗯</p>
<p>我:那就没有内疚。医生救不活人,也不能去死吧。你不可能因为有一个主播没支持好,就不支持了。然后导致更多的主播都受不到支持。<br><strong>这个世界有很多层级,在每一个层级上都有机会做好,不一定都得在顶层做。</strong><br>就像老师也有顶级名师、也有去山区支教的老师,他们对教育事业的贡献都很大</p>
<p>王总:心理辅导</p>
<p>我:真实感受</p>
<p>我:我原来也是我觉得做不好,就不做了。但实际上如果都是这样,那这个世界就不连续了,只有优秀,而没有良好、及格、很差,但是人不可能一出生就优秀,这就矛盾了。</p>
</blockquote>
<p>我想我能说出这番话,也是他们带给我的感悟吧</p>
<p>在西安的网红书店,我发了一条朋友圈:</p>
<blockquote>
<p>很多时候是要感谢那些在你生命中来了又走的人,不管一起经历过什么,是好是坏,你总能吸收一些他们的特质;他们又是镜子,从中你看到了自己的缺点,他们不断地来了又走,你看起来还是你自己,但事实上你却并不是你了。令人欣慰的是,这种变化大抵是向好的,所以……2019,我相信人间值得。</p>
</blockquote>
<p>现在看来,我说的没错,至少在我自己看来确实值得。</p>
<h2 id="找工作"><a href="#找工作" class="headerlink" title="找工作"></a>找工作</h2><p>考研的成绩下来之后,毫无疑问,就应该准备找工作了。在家稍做准备之后,我还是决定直接拎着箱子跑到广州去,找一个地方住下来,慢慢找。这在以前我是想都不敢想的,在这座城市没有落脚的地方,一个人跑来,可能是二十多年,我从来不曾有过的。我不擅长没有准备的东西,而这一次,找工作确实是不在我的把握之中。但我还是来了。到了广州之后,住在东圃的一个酒店,当时天下着雨,我花了一天时间搞定了公寓,月付,对我来说还好。2019年3月8日,在科韵路的公寓安顿下来之后,一边刷题,一边投简历。</p>
<p>可能人要是太低谷了,老天都会帮一把吧,3月12日,拿到了第一个offer,晓教育,这一天我印象很深刻,天下着雨。我回到科韵路的时候已经是晚上了,从天桥走下来的时候,恰好一个外卖小哥从我身边走过,吃力的拉着车子,我当时也没多想,自然的在后边拉了他车子一把,分担一些力,下来之后他向我道谢。那一刻,才觉得生活不易。但可能是18年的种种经历导致,没有offer的我,虽然前路迷茫,却好像无所畏惧。3月14日,拿到了虎牙的offer,兴奋的一夜没睡着觉。拿到了虎牙的口头offer之后,就没有动力再面其他的了,去面了中望龙腾,但不是很想去。约了CVTE的面试,因为着急体检,也没有去。现在回想起来,当时如果后边没了offer,就很被动了,还是很可怕的。3月20日等来了正式offer,3月25日正式入职虎牙。这时我才发现,距离我从 WPS 离职,2018年3月24日,正好一年。</p>
<h2 id="在虎牙"><a href="#在虎牙" class="headerlink" title="在虎牙"></a>在虎牙</h2><p>从 WPS 离职之后,我一直觉得下一份工作要找一个真正的互联网公司,体验一下。在虎牙,如愿以偿。看到了一个有活力的公司,看到了很多不一样的同事,这种体验是跟 WPS 完全不同的。我并不能草率的去评价哪一种更好,我只想说,他们有很大区别。我的 leader 是一个充满了想法的人,也是一个特别敢做的人,这是一种我之前从来没遇到过的人,也是我从来不曾想过,职场上还会存在这样的人。而组里今年入职的王总,在程序上的广度,让我感叹,也是他让我意识到,我要对自己的很多东西形成方法论,而不仅仅只是做好,做到极致。还有怀揣理想的技术支持马老师,是如何在不了解这么多设备的内部构造,而又能对各种设备了如指掌,在我看来是个奇迹。</p>
<p>WPS 工作经历,让我成长为一个职场工具人,我的思维和我的做事风格,都是工具人的风格。但是在这里,我看到了纯粹,有时候我为自己的不纯粹感到惭愧。感受到了作为与不作为对事情的影响,真正理解了主动的意义,仿佛又从工具人变成了一个活人,去感受责任对于每个人的意义。</p>
<p>技术栈的转变让我拓宽了视野,王总对工具的使用,让我知道原来利其器对善其事是如此重要,跳出自己的舒适圈,逼迫自己使用更多的工具,事实证明,效果是极好的。我也开始去摸索任务管理的自己的一套方法论……正在进行,还没有完备。</p>
<h2 id="小玩意"><a href="#小玩意" class="headerlink" title="小玩意"></a>小玩意</h2><p>2019年实现了两个小玩意:</p>
<ul>
<li><a href="https://github.com/ehnap/gal">Gal</a>:一个快速启动器,支持插件,还做了几个我工作常用到的插件(18年末做,到7月份实现了插件支持,后边就没动过了,现在我一直在用)</li>
<li><a href="ms-windows-store://pdp/?productid=9NR52CX0QJX7">泼辣有图(非官方版)</a>:为了研究 UWP,做了一个 UWP 小应用。(19年末做了1周,上架了第一版)</li>
</ul>
<h2 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h2><p>2019年是收获的一年,也是我的价值观重新洗牌的一年。得到了很多东西。不过还有很多东西在做,但没有收好尾。工作之后,看的书少了,写博客的习惯还是没有建立起来。但好在一切都是向好的。虽然我特别喜欢跟别人说燥起来,但事实上,我需要时刻提醒自己,别燥了,别迷了,多一些专注……</p>
<h2 id="后记"><a href="#后记" class="headerlink" title="后记"></a>后记</h2><h3 id="年度书籍:"><a href="#年度书籍:" class="headerlink" title="年度书籍:"></a>年度书籍:</h3><ul>
<li><a href="https://book.douban.com/subject/3284547/">《文心》</a> - 75%</li>
<li><a href="https://book.douban.com/subject/1050339/">《文化苦旅》</a> - 20%</li>
<li><a href="https://book.douban.com/subject/26285184/">《朝花夕拾-鲁迅散文精选集》</a> - 100%</li>
<li><a href="https://book.douban.com/subject/30178432/">《FFmpeg 从入门到精通》</a> - 100%</li>
<li><a href="https://book.douban.com/subject/27105011/">《编写高性能的 .NET 代码》</a> - 10%</li>
<li><a href="https://book.douban.com/subject/26285940/">《CLR via C#(第四版)》</a> - 30%</li>
</ul>
<h3 id="年度人物:"><a href="#年度人物:" class="headerlink" title="年度人物:"></a>年度人物:</h3><ul>
<li>陕西省博物馆讲解员、秦陵讲解员、南城东巷乐队以及观看他们演出的一个中年男人、在大冰的小屋唱歌的歌手,还有南门地下通道的演唱小哥</li>
<li>科韵路外卖小哥</li>
<li>基哥、王总、马老师</li>
</ul>
]]></content>
<categories>
<category>IT-Life</category>
</categories>
<tags>
<tag>随笔</tag>
<tag>年度总结</tag>
<tag>人生经验</tag>
</tags>
</entry>
<entry>
<title>2020年度报告</title>
<url>/2020/12/31/annual-2020/</url>
<content><![CDATA[<p>2020 对世界来说是不平凡的一年,新冠疫情,让每个人的生活都有了一个不小的变化,居家隔离、远程办公、自己竟然做了半个月的饭,之前从来没想过的事情,竟然成了现实。不过回头看来,也正是因为这个,让我感受到了那些平时触手可及的小事情,能给人们带来多大的幸福感。毕竟只有当一个东西没有了的时候,才能体会出它的珍贵。</p>
<span id="more"></span>
<p>回看这一年,对于我来说体会最深的还是成长,从 19 年自己对方法论有了一个很模糊的概念,到 20 年深入探索属于自己的成长模式。我觉得这两年的成长是飞跃性的,那种感觉是上学时所没有的。或者说从某种程度上讲,还是挺后悔的,如果上学的时候能有这样的认识,或许现在的我又不一样了。</p>
<h2 id="虎牙"><a href="#虎牙" class="headerlink" title="虎牙"></a>虎牙</h2><p>王总因为家庭原因离职了,很突然,本来还想跟他继续探讨工具上的哲学,现在只能是自己摸索了。所以云游戏落到了我的头上。对云游戏进行了重构,站在整个项目的角度上看问题,让我发现原来以前我的很多思维还非常局限,看到了自己很多的不足;也让我对重构有了更深刻的认识。而且因为要梳理重构方案,把 WPF 比较核心的代码读了个透,对 WPF 有了一个新的认识。</p>
<h2 id="读书"><a href="#读书" class="headerlink" title="读书"></a>读书</h2><p>20 年初立了一个 FLAG,要每个月至少读一本书,庆幸自己做到了。也因此而收获了很多,长了很多见识。渐渐地发现,自己忽略了一个最重要的获取知识的渠道。就像我在公众号的文章<a href="https://mp.weixin.qq.com/s/1tB19FB6to0h0HUFCLpgdg">《音视频大行其道的今天,关于读书还能说点什么?》</a>中说到的,优质的书会节省自己大量的时间,会少走很多弯路。</p>
<p>20 年完整读完的书一共 12 本,输出笔记 5 篇。在读 2 本。建立了待读书单,目前内有 32 本,明年也会在其中挑一部分来读。建立了自己的书籍数据库,目前库存 45 本,并对阅读状态加以标注,对已读书籍会进行打分,有读书笔记的也要关联起来,便于后期分析各个出版社或品牌的书籍质量,这个是很有意思的一件事情。</p>
<p>另外我也在选书、读书等方面进行摸索,看了很多关于读书的纪录片和文章,了解了很多跟书籍相关的东西,算是半只脚踏进读书的圈子,让我对读书有了更进一步的认识,感觉自己上了这么多年学,但这又是我从未接触过的一片盲区。21 年还是要在读书方面继续深入。</p>
<h2 id="腾讯"><a href="#腾讯" class="headerlink" title="腾讯"></a>腾讯</h2><p>10.29 我从虎牙离职, 11.9 入职腾讯,从广州搬到深圳。这次换工作主要也就几个原因:</p>
<ol>
<li>证明自己,需要一个职级的认可,虎牙给不到,就想看看其他地方了</li>
<li>云游戏的前景不明朗,产品打法非常模糊,让我觉得不是在做一款好产品</li>
<li>想看看大厂的做事风格是怎样的(可能这就是离职时候总监跟我说的大厂情结吧)</li>
</ol>
<p>在腾讯我看到了很多工作极为主动的人,他们有着无限的激情,对工作投入百分之一百二的热情(当然这是好还是坏没法评说)。也从来不担心同事的水平不行,都很优秀。</p>
<h2 id="成长"><a href="#成长" class="headerlink" title="成长"></a>成长</h2><h3 id="主动性"><a href="#主动性" class="headerlink" title="主动性"></a>主动性</h3><p>在虎牙,基哥跟龙海那种把产品当作自己的孩子一样的热忱,这是我之前所不具备的品质,也让我对主动性有了一个全新的认识。在过去,我一直把自己当作是一个工具人来定位,在职场就要有工具人的样子,把自己的事情做好,不多管闲事,这是最好的。是基哥让我知道了,做到极致的前提是主动。所以这一年我开始有了转变。</p>
<p>而正是因为主动性的提升,让我看到了新的东西,我开始有自己的想法,开始思考自己想要什么、不想要什么,也侧面辅助了我方法论的沉淀,我开始主动去了解优质的成长模式,去看其他人的工具哲学。卸载了抖音,关掉了朋友圈;回到了用 RSS 获取信息的方式,变被动获取为主动,只看优质信息;同时用 Notion 来整理已有信息。这些又让我提升了不少效率。</p>
<h3 id="包容心、同理心、慈悲心"><a href="#包容心、同理心、慈悲心" class="headerlink" title="包容心、同理心、慈悲心"></a>包容心、同理心、慈悲心</h3><p>这一年见到了太多的事,自己的职场角色也在频繁的变化,我对很多事情变得更理解了。虽然理解不代表接受,但是这样的转变,还是会让我从中收益。可能之前的我,还总是强调为什么,为什么我要包容别人,我要理解别人,现在却不强调了,我说不上原因,真的说不上……</p>
<h3 id="工作的意义"><a href="#工作的意义" class="headerlink" title="工作的意义"></a>工作的意义</h3><p>今年读了一些书,再加上换工作,让我对工作的意义有了新的思考。我常想,如何选择公司。我之前和很多人一样,会觉得哪里钱多就去哪里,肯定没错。就像酸酸说的那样:『不要相信公司没有钱但是会让你成长,能给的起钱的公司更能让你成长。』但我发现,如果以钱作为筛选目标,会让人没有底线,没有止境。跳槽就会涨钱,那是不是要不停的跳呢,如果又是怕下家觉得不稳定,又不敢跳,这又陷入了一种被动选择的模式上。所以我开始考虑新的选择目标,而选择去腾讯,是因为项目本身算是挺有意义吧,再加上比较大的团队规模,是我想要去观察的目标,所以我没有选择百废待兴、成长空间更大的字节。</p>
<p>20 年最深的一个体会就是,程序员这个职业,没什么信仰,太痛苦了。如果干来干去发现是为钱而干,就太难受了。不像医生、老师、警察等等那么充实。</p>
<h2 id="身体"><a href="#身体" class="headerlink" title="身体"></a>身体</h2><p>身体是革命的本钱,当体检报告下来的时候我才觉得这是真理啊。当体会到了自己的成长、也找到人生目标的时候,发现自己力不从心,那才是让人觉得难受的事情。是时候反思自己了。</p>
<h2 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h2><p>20 年是成长的一年,我得到了很多。但自己对很多事情看的太重,让自己很累。21 年的首要目标还是健康,所以要把很多事放下,要看轻,或者说要举重若轻。成长的增速维持住,多读书,就好。</p>
<h2 id="后记"><a href="#后记" class="headerlink" title="后记"></a>后记</h2><h3 id="年度书籍"><a href="#年度书籍" class="headerlink" title="年度书籍"></a>年度书籍</h3><p>(读过的评分在4星以上的)</p>
<ul>
<li><a href="https://book.douban.com/subject/30238819/">《谈美》</a></li>
<li><a href="https://book.douban.com/subject/4913064/">《活着》</a></li>
<li><a href="https://book.douban.com/subject/27024398/">《阅读是一座随身携带的避难所》</a></li>
<li><a href="https://book.douban.com/subject/30468519/">《局外人》</a></li>
<li><a href="https://book.douban.com/subject/27614904/">《房思琪的初恋乐园》</a></li>
<li><a href="https://book.douban.com/subject/30208077/">《禅与摩托车维修艺术》</a></li>
</ul>
<h3 id="年度关键词"><a href="#年度关键词" class="headerlink" title="年度关键词"></a>年度关键词</h3><p>成长</p>
]]></content>
<categories>
<category>IT-Life</category>
</categories>
<tags>
<tag>随笔</tag>
<tag>年度总结</tag>
<tag>人生经验</tag>
</tags>
</entry>
<entry>
<title>2021年度报告</title>
<url>/2022/01/01/annual-2021/</url>
<content><![CDATA[<p>2021年是一个平淡无奇的一年,就算是年末突然又卷土重来的疫情,也不能给这一年带来什么大的波澜。工作越久,越忙,就会越发的失去对生活的思考,也会让生活趋于平淡。认知上没有什么质的提升。职场让人变得麻木,让人变成只是完成任务的一个机器,也让生活变得枯燥乏味。这最终导致回忆起这一年,我竟然想不起几件能值得记录的大事件。</p>
<span id="more"></span>
<h2 id="生活"><a href="#生活" class="headerlink" title="生活"></a>生活</h2><p>也许这应该是今年最值得记录的一件事情,也可能是我整个人生当中比较值得记录的事情之一。我买房了。终于在所谓的大城市能有一个称得上家的地方。在这之前,我居住的地方都把它们叫做“我住的地方”,我朋友说这么说不费劲吗,我说但是那不叫家,找不到别的形容方式了。所以也许我现在可以说在这里我有家了。</p>
<p>年初开始不断地跑,不断地看房,不断地研究怎么买,做功课,看政策,砍价,跟各种各样的业主和中介打交道,做心里建设,做取舍。积累了丰富的看房买房经验(写到这里,感觉又可以出一篇购房总结了)。</p>
<p>就像我的朋友说的,『所有的东西,最终都是心理建设』,只有买了之后,才知道这话所言非虚。</p>
<p>拥有了自己的房子,突然觉得人生开启了下一个阶段,或者说原本被消磨殆尽的生活热情,又因为有了房子好像重新被点燃,就立刻得上了仓鼠症,总要买些这个,买些那个。又有了很多憧憬和希望。</p>
<p>今年的个人KPI,还是没能完成,我也没能想到,一直对相亲持非常怀疑态度的我,终于安慰自己说要通过相亲多认识一些人,所以跑去相亲。但是我觉得我或许在年末的时候已经遇到了那个对的人,22年我应该可以完成了,而且很快就会完成了,手动狗头。</p>
<h2 id="健康"><a href="#健康" class="headerlink" title="健康"></a>健康</h2><p>还记得去年立下flag,说要关注身体健康,但是没想到今年就去医院看心电图了。上半年的工作压力很大,四月份的时候,失眠严重,每次一要睡着,就梦到公司的电话打过来,就被吓醒,印象中整个四月份有两天是完全没有睡觉的。然后总觉得自己心脏跳的厉害,买了手环看心率是不是正常,甚至研究冥想,看关于睡眠的书籍。再后来就去医院检查了,做了运动平板检查,不过说是没事,健康的很,这也倒是可以放宽心了,不知道是不是刚好工作压力也没那么大了,后边睡眠就好了很多。</p>
<p>公司体检发现轻度脂肪肝没有了,不知道是医生没检查出来,还是真的已经消失,这勉强算是一个比较正向的事情。</p>
<h2 id="工作"><a href="#工作" class="headerlink" title="工作"></a>工作</h2><p>关于工作,技术上今年一个比较重要的事情就是在对 Flutter 一无所知,而且 Flutter Desktop 还是 beta 的情况下,绕过了一些坑,从零支棱起来腾讯会议RoomsController(Windows版),也算是对 Flutter 和 Dart 语言有了一些初步的认识。但是我自己的 Phaedrus 却无限期的 delay 了,对 .NET 6 的探索也停滞不前了。</p>
<p>而其他的能给我留下的印象,可能就是加班、赶进度、deadline,以及并不满意的绩效,卷来卷去也就是个3星,毕竟不是嫡系。</p>
<p>对于自身还是有得到一些东西的,所以来会议至少也算求仁得仁了。当初来会议也是为了看看优秀的产品是怎么做的,虽然跟我想象的差别还是很大,但还是有一些借鉴意义的。</p>
<h2 id="旅行"><a href="#旅行" class="headerlink" title="旅行"></a>旅行</h2><p>除了有了自己的家之外,今年能让我感到振奋的,就是雨崩之行了,从来没有见过这么美的地方,随便按下快门,都能得到很棒的照片。算是对藏文化有了一个初步的了解,让我觉得西藏是一个一定要去看看的地方。当然也经历了高原反应、爬山体力不支这些身体的不适,但总归是非常值得的。还写了攻略<a href="https://ehnap.me/2021/11/07/yubeng-hiking/#more">《雨崩徒步保姆级攻略——写给去雨崩旅游顺便徒步的小白》</a>。雨崩应该得算是我这辈子一定不会只去一次的地方,期待下一次的雨崩之行。</p>
<h2 id="成长"><a href="#成长" class="headerlink" title="成长"></a>成长</h2><p>今年接触到了冥想,让我感觉好像找到认清自己的另一个方法,算是一个不错的收获。另外也在自我提升方面看了一些书籍,也开始正视自己完美主义的问题,并积极寻求解决办法,虽然可能还没怎么见到成效。</p>
<p>另外一部分,就很难写清楚,我隐约觉得相比之前是会有一些不一样,但是又并不能说得清楚这种变化。如果硬是要给一个概括,可能就是慈悲心比以前更强了,它是一种广义的东西,可以说是对别人的包容和理解;也可以说是对自己没那么苛求,能够放下更多的执念等等,总之这种心态给了我更加开阔的一种思维和视野。</p>
<h2 id="读书"><a href="#读书" class="headerlink" title="读书"></a>读书</h2><p>今年读书保一争二的 KPI,没有完成,全年只读完了十本书,另外有两本现在还在阅读中……。公众号今年也只更新了四篇,拉垮得很,安慰自己的话,就算是打破自己的完美主义了,争取下一年找补回来。如果硬要找理由,就是房子的事分了神,有些懈怠。当然本质原因是懒。不过翻了一下今年看的书,竟然最差的也还是给了三星,没有读到烂书,算是一个小庆幸了。</p>
<h2 id="后记"><a href="#后记" class="headerlink" title="后记"></a>后记</h2><h3 id="年度书籍"><a href="#年度书籍" class="headerlink" title="年度书籍"></a>年度书籍</h3><p>(读过的评分在4星以上的)</p>
<ul>
<li><a href="https://book.douban.com/subject/3284547/">《文心》</a></li>
<li><a href="https://book.douban.com/subject/26710670/">《呐喊》</a></li>
<li><a href="https://book.douban.com/subject/26653673/">《必然》</a></li>
<li><a href="https://book.douban.com/subject/1033778/">《穷爸爸富爸爸》</a></li>
<li><a href="https://book.douban.com/subject/35006237/">《大山里的小诗人》</a></li>
<li><a href="https://book.douban.com/subject/34888157/">《十分钟冥想》</a></li>
<li><a href="https://book.douban.com/subject/30294357/">《倾城之恋》</a></li>
<li><a href="https://book.douban.com/subject/25796120/">《小径分岔的花园》</a></li>
<li><a href="https://book.douban.com/subject/35390276/">《如何成为不完美主义者》</a></li>
</ul>
<h3 id="年度关键词"><a href="#年度关键词" class="headerlink" title="年度关键词"></a>年度关键词</h3><p>成长</p>
]]></content>
<categories>
<category>IT-Life</category>
</categories>
<tags>
<tag>随笔</tag>
<tag>年度总结</tag>
<tag>人生经验</tag>
</tags>
</entry>
<entry>
<title>2022年度报告</title>
<url>/2022/12/31/annual-2022/</url>
<content><![CDATA[<p>2022 年如果要是找一个词来形容,我觉得应该是“魔幻”。这个国家或者这个世界,都是魔幻的。我能感受到一种明显的动荡感,这种感觉是我从出生到现在的 30 年里从未有过的。当然对于我自己来说,也算是不平淡的一年。换了新的工作,也对一些事情有了新的看法。</p>
<span id="more"></span>
<h2 id="工作"><a href="#工作" class="headerlink" title="工作"></a>工作</h2><p>9月份的时候离开了会议,也离开了深圳,又回到了广州,这也许是今年值得记录的一件事情。</p>
<h3 id="为什么离开"><a href="#为什么离开" class="headerlink" title="为什么离开"></a>为什么离开</h3><p>就像去年说的一样,加班、赶进度、deadline 依旧是我在会议的主旋律,我也越来越不认可会议的方法论和价值观。</p>
<p>会议的问题:</p>
<ol>
<li>看不到人的主观能动性,所有的方法论都建立在人性本“惰”的基础上,氛围让人窒息</li>
<li>上层不会化解压力,只会向下传递并加倍,导致一线开发测试产品无形中存在了对抗没有合力(每个人都不做卡点,但是如果工作量已经超出了合理的范畴,那必然就会导致甩锅的现象出现,本质是生产力不足导致的矛盾,但是被转化成了产研矛盾)</li>
<li>开发话语权小,技术糟糕,但因为没有话语权,技术改进得不到支持</li>
</ol>
<p>从我自己的感受来看,在会议技术人员得不到应该得到的尊重。在这里,每个人都会化作一个人力,把所有的时间排的满满登登,然后还不断地被插入、打断、置换,很难聚焦起来做事情。在这种情况下,人就只有两种选择,一种是让自己聚焦,但是就要变得流氓,用一些流氓的方式抵御这些打断;还有一种情况就是照单全收,但是就很难专注下来。我自认为我属于后者,但是没法专注就意味着我对自己产出的东西不能保证质量,让我很痛苦。尤其是做小程序控制器的时候,中间有几次都想直接撂挑子,我想把东西做好,但是得到的就是质疑,没有理解。离开的时候,我跟 leader 说,我不想让自己变的戾气很重,但是在这里如果不这样,压力就会很大。</p>
<h3 id="怎样离开"><a href="#怎样离开" class="headerlink" title="怎样离开"></a>怎样离开</h3><p>其实 21 年底就已经有些打算想要回广州,再加对这里的种种不满意,所以从年初开始实际上就一直在看机会。但是赶上这个魔幻的时候,在各个厂都有大批量被毕业同学都在找工作的时候,对打工人来说,议价能力就会弱很多,上半年有四家都是在 HR 面报价之后,不推进或者明确表示给不了这么多。但是跳槽这种想法只要有了,就像一个火种,在心里燃烧起来,很难扑灭了。就在我已经对今年跳槽不抱什么希望的时候,有朋友介绍了个机会,就是我现在的公司,某央企,有个新项目需要一个有经验的人来做架构相关的。</p>
<h3 id="新的开始"><a href="#新的开始" class="headerlink" title="新的开始"></a>新的开始</h3><p>来到这边牵头做客户端,一切都从零开始,工作了三个月,感觉良好,我觉得自己的价值也能得到体现,我有很多对于客户端的理解也可以有地方应用,做的东西也充满了挑战。更重要的是,工作的节奏会更加合理一点,在没有压力的情况下,自己也能更有创造力一些,同时会觉得团队更有温度一些。目前觉得这个选择还是很满意的。</p>
<h2 id="生活"><a href="#生活" class="headerlink" title="生活"></a>生活</h2><p>工作的变化,让我的生活也产生了比较大的变化。今年增添了不少新嗜好。有时候跟朋友说回广州之后,我就变的“调素琴,阅金经。无丝竹之乱耳,无案牍之劳形”了。另外,去年的这个时候我以为或许在我的生命中要永远多了一个人,但是没想到这个人也是我人生路上的一个过客……我又开始独自旅行了。</p>
<h3 id="做饭"><a href="#做饭" class="headerlink" title="做饭"></a>做饭</h3><p>回广州之后,开始自己做饭,做了快两个月,慢慢的喜欢上了做饭,换了一口新的生铁锅,爱不释手。做饭之后慢慢有一种感觉,食开始“知味”了。相比现在,之前确实算是食不知味。只有自己做饭,才知道吃到的味道究竟是如何产生的,每一道菜,为何一吃就知道正宗不正宗,究竟是那些调料导致的。也开始沉迷研究做菜中产生的各种化学反应。在我看来,做饭与吃饭是相辅相成的,不做饭便吃不出饭菜的好,有点类似正念饮食,要用心体会食物的味道,这对食物也是一种尊重;只做不吃就不能让自己的厨艺更加精进。</p>
<h3 id="弹琴"><a href="#弹琴" class="headerlink" title="弹琴"></a>弹琴</h3><p>双十一买了心心念念的电钢琴,说是心心念念了几年也不过分,但是买之前也挣扎了很久,也怕买了之后变成晾衣架,怕自己只是三分钟热血。但事实证明,并没有。平均每天练一到两个小时。跟着教材学习,也会结合一些视频学习乐理,对乐理的学习,让我对音乐有了新的认识,渐渐的觉得音乐是一种非常严谨的东西。即使它本身算是一种感性的东西(类似《禅与摩托车维修艺术》中所说的浪漫范畴),但它也是有规律且严谨的。</p>
<h3 id="学粤语"><a href="#学粤语" class="headerlink" title="学粤语"></a>学粤语</h3><p>宜家我学紧白话(手动狗头)。每天利用上下班通勤坐地铁的时候加一起半小时,开始系统的学习粤语,现在感觉看粤语字没啥问题了,发音不太标准,但是可以知道一句普通话怎么写成粤语,明年两个小目标,一是可以说的标准,二是可以掌握粤拼。</p>
<h2 id="成长"><a href="#成长" class="headerlink" title="成长"></a>成长</h2><p>今年我在很多问题上有了全新的认识,或许也是因为这魔幻的一年,也或许是因为到了而立之年。郭德纲说:三十岁之前不狂没有出息 三十岁之后还狂肯定没有出息。读库老六说:三十五岁必死。想必这大概说的是一个意思,人总会在三十岁左右有一个时间有一个全新的变化,就仿佛是突然开窍。如果没有,可能这辈子也就不会有了。或许我很幸运正在经历这种变化。如果用一个词来概括,那大概是“认识自我”。同时我越来越发现我自己其实是有一些偏唯心主义,而这让我在这个魔幻的一年精神压力小了不少。</p>
<p><strong>夫唯不争,故天下莫能与之争。</strong>这一年我变得更加平和,执念少了许多。可能这就是精神内守吧,向内求得一种安定。也正因为如此,让我能够正视自己,更全面的看到自己的喜好与长短板。我擅长的,不一定是我热爱的;我热爱的,也不一定是我擅长的。我要做的,不是将它们对齐,而是正确的认识这两种,然后遵从自己的内心,做我想做的。当我不再想去证明自己的时候,会更加的专注于眼前,反而会有意外的收获。</p>
<p><strong>求仁而得仁。</strong>这句话指如愿以偿,我以前经常觉得自己是求不得,直到今年突然有一种感觉,便是也许我已经得了,只是我不认为这是我所求,所以我一直认为求不得。人最难的是知道自己想要什么,想要什么听起来是一个再明确不过的东西,但有很多时候,人是会被周围的环境和其他人所左右的,也许一件东西我原本不想要,只是因为其他人都要,我也便觉得要了也是很好的,但这就并非是我想要。所以求仁得仁,首先要知道求什么“仁”,而这就要排除其他因素,遵从自己的内心,才知道自己真正求的是什么“仁”。</p>
<p><strong>够用就行。</strong>我不再追求“折腾”,反而一切都抱着够用就好的心态,这在别人看来,可能是一种躺平,但我觉得恰恰是因为自己不再创造需求,才更容易发现生活中真实存在的需求。如果自己不断地给自己创造需求,那就没有精力去发现那些生活中真正的需求。</p>
<p>就像伍尔夫所说『走向人内心的路,永远比走向外部世界要漫长的多』。认识自己的过程应该是漫长的,期待我在新的一年能有更进一步的认识。</p>
<h2 id="健康"><a href="#健康" class="headerlink" title="健康"></a>健康</h2><p>入职的体检也没有什么大问题,整体良好。这一年因为疫情防控,零零散散的居家办公,加一起将近两个月,但是在年底一波大开放之后,周围的亲戚、朋友、同事基本都阳了一遍,我算是比较幸运,放开之后就天天上班,但是好在将阴性保持到了 22 年结束。对于防疫我没什么概念,但我觉得普通人能尽力做好的,就是对病毒有足够的敬畏之心,当然也许这敬畏不止要是对病毒,而是对任何事任何人。</p>
<h2 id="读书"><a href="#读书" class="headerlink" title="读书"></a>读书</h2><p>今年的读书 KPI 完成情况比去年更糟糕,只看了五本书。但人毕竟是擅长找借口的动物,只能是归结为今年添了新嗜好,又比较花费时间,导致时间被稀释了很多。明年是时候要把时间的分配重新调整一下了。</p>
<h2 id="魔幻"><a href="#魔幻" class="headerlink" title="魔幻"></a>魔幻</h2><p>最后有必要谈一下何谓魔幻,我仔细想了一下,大概就是今年是我出生到现在,感受到最为动荡的一年,也许人的一生大部分的时候都处在一种不安和动荡之中,安定、平稳才是奢侈的。银行真的会跑路;楼房真的会烂尾;真的会出现无法自由出行的情况;真的会出现常见药买不到的情况;真的会出现道路以目的情况……防疫的千姿百态,让我不得不联想到《叫魂:1768年中国妖术大恐慌》,我没想到 2022 年依旧会看到一些类似的东西。也许历史真的是不断重复的。而世界也都处在一种剧烈的动荡之中,乌克兰和俄罗斯在打仗,塞尔维亚和科索沃要打仗,台湾地区越来越紧张……但愿这种动荡可以在不久的将来逐渐恢复平稳。</p>
<h2 id="后记"><a href="#后记" class="headerlink" title="后记"></a>后记</h2><h3 id="年度书籍"><a href="#年度书籍" class="headerlink" title="年度书籍"></a>年度书籍</h3><p>(读过的评分在4星以上的)</p>
<ul>
<li><a href="https://book.douban.com/subject/26735206/">《亲密伴侣:爱和婚姻的模式》</a></li>
<li><a href="https://book.douban.com/subject/26613906/">《野生动物在长春·第壹辑》</a></li>
<li><a href="https://book.douban.com/subject/27133274/">《孩子们的诗》</a></li>
</ul>
<h3 id="年度关键词"><a href="#年度关键词" class="headerlink" title="年度关键词"></a>年度关键词</h3><p>认识自我、魔幻</p>
]]></content>
<categories>
<category>IT-Life</category>
</categories>
<tags>
<tag>随笔</tag>
<tag>年度总结</tag>
<tag>人生经验</tag>
</tags>
</entry>
<entry>
<title>2023年度报告</title>
<url>/2023/12/31/annual-2023/</url>
<content><![CDATA[<p>2023 年让我感受最深的是『周围的朋友谈论的最多的就是“润”』,这可能是今年值得记录的一个社会现象。就我个人而言,是过的比较舒服的一年,生活质量在上升。感觉我又可以重新把控自己了,或者说至少很多事情在按自己想象的方向发展了。</p>
<span id="more"></span>
<h2 id="工作"><a href="#工作" class="headerlink" title="工作"></a>工作</h2><p>仔细想了一下,好像工作没什么可记录的,但某种程度说,这又可能是值得记录的一件好事。逐渐开始上下班时间变得固定,不再迟到,变得有规律。</p>
<h2 id="生活"><a href="#生活" class="headerlink" title="生活"></a>生活</h2><p>今年是毕业以后第一年觉得自己“存在”。我想原因大概是第一次体会到了传说中的 WLB (Work Life Balance)。我给自己的一个总结是“自己走入了一种『慢生活』状态”。整个人的重心会有很大程度倾斜到了生活这一侧,可以有很多时间做自己的事情。</p>
<h3 id="数字家庭"><a href="#数字家庭" class="headerlink" title="数字家庭"></a>数字家庭</h3><p>花了一些时间来折腾自己的 NAS,终于搞出了一点数字中心的雏形。</p>
<p>NAS 上部署了一些服务,方便自己日常使用:<br>Alist —— 云盘 All In One<br>Aria2 —— 远程下载<br>Calibre-web —— 电子书库<br>FRP —— 内网穿透<br>Gotify —— 短信转发推送<br>Homarr —— 导航<br>Lucky —— 反向代理<br>PhotoPrism —— 照片管理<br>qBittorrent —— BT 下载<br>Vaultwarden —— Bitwarden 私有化</p>
<p>重新规划了一下家里的网络拓扑,打算升级内网 2.5G,有初步方案,但是还没有采购设备,明年要把这块补上。</p>
<h3 id="做饭"><a href="#做饭" class="headerlink" title="做饭"></a>做饭</h3><p>今年自己做菜比较多,粗略统计了一下,大概做了半年菜。而且菜品更加丰富,凉菜热菜(包括一些过油的菜类似糖醋茄条、锅包肉等)和甜品都有尝试一些。</p>
<p>慢慢发现自己使用调料开始变得熟练,三个月前可能都还停留在只能严格按照菜谱来做的水平,现在也可以根据自己的经验灵活的调整用料,并且在跟菜谱做感觉有问题的情况下,会简单的做一些调整来补救。</p>
<p>为了买到合适的调料,自己也查了很多资料,花时间去超市看配料表。慢慢也摸索出了自己买调料的一套方法。这些方法还没有整理出来,后边看看如果有时间的话就整理成文。</p>
<p>去饭店吃饭的时候,能大概吃出用了什么料和基本的烹饪手法类似过没过油等。个人感觉是比以前会吃了,因为自己做饭做的比较多,就知道什么菜不好做,去饭店吃饭,会着重点的菜:自己不会做的菜、自己会做但在家做比较麻烦的菜、比较能看出厨师水平的菜(第一次去的饭店,用来判断饭店行不行)、预制菜大概率做不了的菜。</p>
<p>接近年尾的时候开始尝试早上带一部分早餐,比如鸡蛋等,究其原因还是食堂去晚了就没有鸡蛋了。</p>
<h3 id="游戏"><a href="#游戏" class="headerlink" title="游戏"></a>游戏</h3><p>《双人成行》跟女朋友一起玩双人成行,玩了大概百分之七十,解锁了自己一个人用俩手柄,清 BOSS 的成就(手动狗头)。</p>
<p>《Bloons TD 6》今年玩了 260 小时,有些上头,直接取代了 《QQ飞车手游》和 《扫雷》。22 年连续不间断的玩了一年扫雷,但是 23 年微软的扫雷改版了,不是很清楚策划的脑回路,基本没有看到这次改版的正面评价,实在忍受不了新版,果断弃坑了。</p>
<p>发现自己更喜欢玩带有一点策略(非庞大策略)和技巧(非动作技巧)的游戏,在这个基础上,如果剧情写的好,就是加分项。</p>
<h3 id="旅游"><a href="#旅游" class="headerlink" title="旅游"></a>旅游</h3><h4 id="珠海"><a href="#珠海" class="headerlink" title="珠海"></a>珠海</h4><p>因为女朋友没去过珠海,跟女朋友去珠海转了转。像第一次去珠海的游客一样,打卡了一些常规景点,也重游了一下当年在珠海总去的地方。对于她更像是旅游,对于我,可能更多的是想起珠海的一些人和事。值得一提的是,本来想去逛圆明新园,结果从里边上山走到了山上的栈道,从板障山下来,原本的游园直接改成了爬山,这是我没想到的</p>
<h4 id="昆明、大理"><a href="#昆明、大理" class="headerlink" title="昆明、大理"></a>昆明、大理</h4><p>正经的旅游,便是大理之行,五天,大部分时间都在大理,前后两天在昆明小逛了一下。去之前,周围的同事和朋友基本都说,五天的话,其实可以多去几个地方,但是前期做了攻略还是感觉,要玩就精玩,粗略的走马观花我和女朋友都不是很喜欢。</p>
<p>在昆明,去了传说中的网红菜市场;</p>
<p>在大理,赶上了三月街的集市;去喜洲学习做扎染,染了一条裙子;爬了苍山,打卡洗马潭;生态长廊骑电动车环洱海;游览双廊古镇;游览大理古城、走的时候还买了辣椒面和蘑菇带回来。</p>
<p>五天其实大理也没有按原定计划全部玩完,有一些地方因为时间没有去,但感觉还是不虚此行的。</p>
<p>一个插曲便是去的时候去机场有点迟了,行李没法托运,后来是走了特殊行李托运,行李跟着下一班飞机到,安检走了绿色通道一路狂奔。但是正因为如此,临时决定去昆明的网红菜市场,也算是无心插柳了。</p>
<p>没有工作电话的提心吊胆,可以完全沉浸在旅行之中。这种久违的放松,上一次还是 18 年自己出去旅行的时候。这一次便是两个人了。</p>
<p>之前想在大理旅行之后,剪个 vlog 出来,在大理玩的时候就拍了一些素材,但是回来之后剪了几次,总是感觉不满意,所以一直没有成片,这个只能到 24 年再琢磨了。</p>
<h3 id="年夜饭"><a href="#年夜饭" class="headerlink" title="年夜饭"></a>年夜饭</h3><p>第一次掌勺春节的年夜饭。做了油焖大虾、烤羊排、上汤娃娃菜、红烧金鲳鱼、山药火龙果(我妈做)、卤猪蹄(买的)。</p>
<h3 id="按时睡觉"><a href="#按时睡觉" class="headerlink" title="按时睡觉"></a>按时睡觉</h3><p>下半年自己算是“按时睡觉”了,每天十一点基本就会躺下,所以觉得今年的平均睡眠质量肯定是要好过前三年的,当然这些都要归功于女朋友。已经记不起自己是从什么时候开始逐渐变为守夜冠军,严谨点说可能从大学就开始了,但是越往后逐渐加深,这两年很多时候都是三点才睡,能明显感觉到三点睡觉,其实身体就已经有些不适了,会比较烦躁,但是到了晚上就是要嗨起来,完全控制不住。现在女朋友监督,就不敢再熬夜了,整个人状态好了不少。</p>
<h3 id="一阳"><a href="#一阳" class="headerlink" title="一阳"></a>一阳</h3><p>迟到的一阳,难忘的沪上阿姨,4.28 晚上喝了同事一杯沪上阿姨,就觉得太甜嗓子不舒服;4.29 嗓子就很疼了,晚上开始发烧;4.30 直接起不来请假没去上班了,同组的同事也有好几个是如此。整个五一泡汤了,都是在床上躺着度过的。本来计划着跟女朋友爬山,也没去成了。</p>
<h3 id="大件"><a href="#大件" class="headerlink" title="大件"></a>大件</h3><p>电视:索尼 X90K。要买电视的时候,仔细研究了一下电视的 SoC,原来只是有个粗略的印象索尼的贵,但是后边发现,其实索尼的电视也是很舍得堆料的,并且算法调教的也好,同等 SoC 的国产电视其实也并不便宜,算法做的也烂。同时也研究了一下 LED、MiniLED 和 OLED。最后根据自己预算选了 X90K。</p>
<p>冰箱:东芝雾语系列 PM137。当时找了很久,最开始看了东芝的大小白桃,后来又去看海尔和卡萨帝。不过法式门里边,都没有比较符合我要求的。如果想要制冰,就只能买日系冰箱。后来还是决定放弃制冰的需求,以后如果需要用冰格解决。然后买了这款,其实这款的设计应该是美的给的,虽然是东芝的牌子,因为日本的设计冷冻室都很小,不太可能是日本设计的,不过好在压缩机还行,就选了这款。</p>
<p>内衣裤洗衣机:美的 MNB10-01L。感觉内衣裤洗衣机目前还没什么标准,而且我总觉得智商税很多,毕竟普通洗衣机+消毒液完全可以覆盖掉,但是这东西满足了很多人的“精神需求”,所以还是有它的市场,当时只是关注了 95℃ 高温功能,再加上内衣轻柔洗,就买了这款。</p>
<p>净水器:世韩 2S。选购的时候主要关注:有桶机、桶容量、通用滤芯。通用滤芯这一条就过滤了很多牌子,基本没有几个选择了,就选择了这一款,价钱也还不错。</p>
<p>台上饮水机:飞利浦小白熊。积分购置,没什么太多选择。</p>
<p>今年在电器选购上,也有了很多新的经验,后续如果有时间,也要整理成文。</p>
<h3 id="调素琴、阅金经"><a href="#调素琴、阅金经" class="headerlink" title="调素琴、阅金经"></a>调素琴、阅金经</h3><p>今年读书比去年还少,只读了两本书,其余就是上班路上看的订阅的期刊。还有一大堆书买了没看,还有一大堆订阅的报刊没看。</p>
<p>琴弹得也比较少了,阳了之后,就没有再保持规律学习弹琴的节奏,只是偶尔拿出来弹一弹。</p>
<h3 id="恋爱"><a href="#恋爱" class="headerlink" title="恋爱"></a>恋爱</h3><p>终于知道,原来可以有”没有精神负担“的爱情,也可以有”不用委屈自己“的爱情。</p>
<h2 id="一些思考"><a href="#一些思考" class="headerlink" title="一些思考"></a>一些思考</h2><h3 id="i人e人"><a href="#i人e人" class="headerlink" title="i人e人"></a>i人e人</h3><p>今年很流行一个词就是 i人 e人,我想我应该是个 i 人。就像之前圆桌派里说『区分内向和外向并不是看这个人是否参加活动,而是要看这个人参与跟人活动的时候是消耗能量还是恢复能量,如果是消耗能量就是内向,恢复能量就是外向』,如果这么说我显然是前者。其实对于 i 人来说,生活是很累的,会很容易感受到周围人的情绪输出,而且很容易影响自己的情绪。</p>
<h3 id="关于快乐"><a href="#关于快乐" class="headerlink" title="关于快乐"></a>关于快乐</h3><p>今年最喜欢的话之一——『本质是在存在之后』。只有对“存在过”进行总结,才能提炼出“本质”。</p>
<p>之前跟很多朋友聊天,感觉他们过的很拧巴,我自己前几年也是这个状态,这两年就快乐很多。</p>
<p>以前经常因为这个世界不符合自己的认知而感受到痛苦,但是现在觉得,其实<strong>认知是用来认识世界的,而不是用来预测世界的</strong>,任何阶段的认知只是帮我们总结这个世界,但并不能用来预测下一阶段的世界。给人、给世界少下定义,避免将他们符号化,就会让自己快乐起来。</p>
<h3 id="关于选择"><a href="#关于选择" class="headerlink" title="关于选择"></a>关于选择</h3><h4 id="衡量选择"><a href="#衡量选择" class="headerlink" title="衡量选择"></a><strong>衡量选择</strong></h4><p>因为我们在任何时候只能总结世界,而选择是一种预测行为,所以对于自己来说,比较难的是如何衡量自己的选择。</p>
<p>好的选择分两种:“走对了”和“没走错”;看到了走对了很容易,但是看到没走错很难。但对于大部分人来说,能做出的好的选择,直接看到“走对了”的情况很少,更多的是“没走错”。</p>
<p>很多时候因为我们看不到自己“没走错”,就会质疑自己的选择。就像去年离开腾讯,有时候也会怀疑,是不是正确的选择。但当我在写今年的总结时候,至少可以确定的说在这一阶段,自己是没走错的。</p>
<p>能看到自己“没走错”,便越来越觉得这个世界是公平的,“老天爷”是公平的。</p>
<h4 id="主动选择?被动选择?"><a href="#主动选择?被动选择?" class="headerlink" title="主动选择?被动选择?"></a><strong>主动选择?被动选择?</strong></h4><p>跟朋友聊天,再加上我自己的感受,其实如果自己过的拧巴,大多时候是分不清选择是自己主动选择还是被动选择。人很容易把很多选择归为被动选择,但实际上是自己的主动选择。</p>
<p>就像我在腾讯觉得工作氛围不对,方法论也不对。因为又觉得收入还行,所以”不得不“在这里按头工作,这就推导出了被动选择,但其实真实是我因为收入不错主动选择在这里,如果我不在乎收入,可以选择不在这里,说到底还是自己既要又要的问题。</p>
<p>现实生活中,人很多时候会出现这种归类错误的问题,因为人总是更愿意把问题推给其他人,不愿意正视自己,不愿意承认自己既要又要。当归类到被动选择之后,人就多了很多”不得不“要做的事情,其实没有什么是”必须“”不得不“的事情,想做就做,不想做就不做,如果多归类于主动选择,当规则有问题的时候,主动去质疑规则,或许思路就打开了。</p>
<h3 id="关于时间"><a href="#关于时间" class="headerlink" title="关于时间"></a>关于时间</h3><p>今年的另一个感受是时间的流逝更快了,这也许是认识到自己正在变老的另一个佐证。总觉得自己没做什么有意义的事情,也没有太多可记录的东西。现在理解了小时候不爱记日记的原因,大抵是小时候最富裕的便是时间,太充裕了自然不会有”记录下来,防止它们流逝“的需求。</p>
<h3 id="关于成长"><a href="#关于成长" class="headerlink" title="关于成长"></a>关于成长</h3><p>成长的过程是对自己解构的过程,对自己逐渐有一个清晰的认识。知道自己的得失观,清楚的知道什么东西是一定不能失去的,什么东西是可有可无的,知道哪些人是重要的,哪些人是不重要的,开始敢于损失一部分可有可无的东西,敢于打破一部分关系,去换新的责任和新的体验,让自己有一部分”焕新“,去体验下一个人生阶段。而这一切在有些人看来是所谓的被迫选择,他们会用:枷锁、牢笼、桎梏,这种词语来形容,但其实他们并不知道也不理解,这其实是自愿选择。</p>
<h2 id="后记"><a href="#后记" class="headerlink" title="后记"></a>后记</h2><p>2023 总体满意,2024 再接再厉。要将自己的生活方面的活动系统的规划一下了,期待 2024……</p>
<h3 id="年度书籍"><a href="#年度书籍" class="headerlink" title="年度书籍"></a>年度书籍</h3><p>(读过的评分在4星以上的)</p>
<ul>
<li><a href="https://book.douban.com/subject/35092383/">《把自己作为方法——与项飙谈话》</a></li>
</ul>
<h3 id="年度人物"><a href="#年度人物" class="headerlink" title="年度人物"></a>年度人物</h3><ul>
<li>女朋友</li>
<li>道哥</li>
</ul>
<h3 id="年度关键词"><a href="#年度关键词" class="headerlink" title="年度关键词"></a>年度关键词</h3><ul>
<li>润</li>
</ul>
]]></content>
<categories>
<category>IT-Life</category>
</categories>
<tags>
<tag>随笔</tag>
<tag>年度总结</tag>
<tag>人生经验</tag>
</tags>
</entry>
<entry>
<title>AVL树(自平衡二叉树)</title>
<url>/2017/11/06/avl-tree/</url>
<content><![CDATA[<h2 id="特点"><a href="#特点" class="headerlink" title="特点"></a>特点</h2><ul>
<li>二叉树</li>
<li>同节点左右子树高度差不超过1<span id="more"></span></li>
</ul>
<h2 id="复杂度"><a href="#复杂度" class="headerlink" title="复杂度"></a>复杂度</h2><ul>
<li>插入、查找、删除均为O(logN)</li>
</ul>
<h2 id="节点数"><a href="#节点数" class="headerlink" title="节点数"></a>节点数</h2><ul>
<li>最多(满二叉树) <code>2^h-1</code></li>
<li>最少 <code>2^(h-1)</code></li>
</ul>
<h2 id="规则"><a href="#规则" class="headerlink" title="规则"></a>规则</h2><h3 id="旋转:"><a href="#旋转:" class="headerlink" title="旋转:"></a>旋转:</h3><ul>
<li>左旋:节点的左旋,节点的右孩子指针指向节点右孩子的左孩子,节点的右孩子的左孩子指针指向节点。</li>
<li>右旋:节点的右旋,节点的左孩子指针指向节点左孩子的右孩子,节点的左孩子的右孩子指针指向节点。</li>
</ul>
<h3 id="平衡因子:"><a href="#平衡因子:" class="headerlink" title="平衡因子:"></a>平衡因子:</h3><ul>
<li>平衡因子=左子树高度-右子树高度</li>
</ul>
<p><strong>导致AVL Tree不平衡的几种类型及调整方法:</strong></p>
<h3 id="插入:"><a href="#插入:" class="headerlink" title="插入:"></a>插入:</h3><ul>
<li>LL:节点的左(L)子树的左(L)子树因为存在非空子节点,导致与节点的右子树高度差超过1 <strong>(右旋)</strong></li>
<li>LR:节点的左(L)子树的右(R)子树因为存在非空子节点,导致与节点的右子树高度差超过1 <strong>(先左旋再右旋)</strong></li>
<li>RL:节点的右(R)子树的左(L)子树因为存在非空子节点,导致与节点的左子树高度差超过1 <strong>(先右旋再左旋)</strong></li>
<li>RR:节点的右(R)子树的右(R)子树因为存在非空子节点,导致与节点的左子树高度差超过1 <strong>(左旋)</strong></li>
</ul>
<h3 id="删除:"><a href="#删除:" class="headerlink" title="删除:"></a>删除:</h3><ul>
<li>删除叶子结点,删除之后判断一下是否平衡</li>
<li>删除只带有左子树或右子树的节点,直接把子树节点接上就行了</li>
<li>删除带有左右子树的节点,找其左子树的最大节点或者是其右子树的最小节点交换值,然后删除被交换节点(规则跟删除叶子结点一样了)。选择左子树的最大节点还是右子树最小节点可以根据左右子树高度选择,优先选高的子树,这样更快趋于平衡。</li>
</ul>
]]></content>
<categories>
<category>Programming</category>
</categories>
<tags>
<tag>数据结构</tag>
</tags>
</entry>
<entry>
<title>【读书笔记】大教堂与集市-黑客圈简史</title>
<url>/2018/09/05/book-djt-js-1/</url>
<content><![CDATA[<p>研究计算机的开源文化,就不得不说起早期的极客(geek),比起其他行业来说,计算机行业很幸运,一群牛逼的人开了一个好头,他们身上的特质,直接影响了整个行业,以及后来的计算机人。向他们致敬。</p>
<span id="more"></span>
<h1 id="黑客圈简史"><a href="#黑客圈简史" class="headerlink" title="黑客圈简史"></a>黑客圈简史</h1><ol>
<li><p>真程序员</p>
</li>
<li><p>早期的黑客</p>
<blockquote>
<p>计算机问世之后迅速涌现了一批编程爱好者,他们编写软件只是出于乐趣,慢慢形成了一些技术文化。这批人被称之为真程序员(Real Programmer)。他们通常具备了工程学和物理学的背景,并常常是业余无线电爱好者。在现在的眼光看来,应该叫做极客(geek)。在这些真程序员的带动下,形成了一种所谓的黑客(Hack)文化。初期的黑客文化主要是集中在大学的圈子里,不流俗,不走寻常路,极具创新精神。</p>
</blockquote>
</li>
<li><p>UNIX的兴起</p>
<blockquote>
<p>1969年,APRAnet(第一个高速互联网)、UNIX和C语言都诞生在这一年。UNIX和C的组合凭借着(KISS)哲学(Keep It Simple, Stupid)迅速风靡,马上就形成了一股新生力量,可以把这一力量叫做<strong>Unix/Usenet文化</strong>,与此相对应的就是之前的黑客文化,可以简要叫做<strong>ITS(不兼容分时系统)文化</strong>。1975年第一台个人电脑进入市场,1977年苹果公司成立,马上又有一拨人出现,他们用BASIC,可以把这批人称为<strong>没有组织的微机爱好者</strong>,不过这股力量遭到上面两种力量的共同鄙视。</p>
</blockquote>
</li>
<li><p>远古时代的终结</p>
<blockquote>
<p>三种文化其实代表了三个不同的技术体系。1980年,力量最强的是PDP-10文化,但是却也逐渐显得疲软,主要是人才在不断向其他文化转移,技术也略显过时。1983年ITS文化的依赖ITS被宣布不再继续研发,因为不可移植的东西是没有未来的。显然微型计算机是大势所趋,只有能跑在所有机器上的技术,才是王道。</p>
<p>就在这时,Richard M. Stallman(Emacs的发明者)坚决反对将实验室研究成果商业化。他离开了实验室,创建了自由软件基金会(FSF)。Steven Levy(《黑客》作者)称他为“最后一个真正的黑客”。</p>
<p>1982年RMS开始用C重新构建UNIX的克隆,并且免费发布,这就是大名鼎鼎的GNU(Gnu is Not Unix)这是一个递归式的缩写。此后GNU成为了所有黑客文化的焦点,ITS文化和Unix文化汇入了一起,准确的说是Unix文化将ITS精神融入了自己的圈子,此后的十多年,自由软件基金会统治了黑客文化的意识形态,RMS本人也便是黑客文化的最高精神领袖</p>
</blockquote>
</li>
<li><p>“专有UNIX”时代</p>
<blockquote>
<p>1984年,黑客文化的圈子分为了两个阵营,一部分是围绕着Internet和Usenet的网络派,还有一部分是不联网的微机爱好者。也正是这一阶段,出现了一些关于计算机的攻击事件,媒体将黑客这一词用来描述这些做坏事的人,一直沿用至今。<br>这个阶段Sun和其他公司生产的工作站级别的电脑出现,大家的关注点便放在了让其进行更高效的图形处理和更快捷的网络传输上。</p>
<p>在网络传输方面,Berkeley UNIX提供了对APRAnet协议的内置支持,解决了UUCP点到点连接慢带来的网络问题,促进了互联网的进一步发展;</p>
<p>而在图形处理方面,则出现了<strong>X Window</strong>。在若干尝试中,X Window脱颖而出,正是由于吸纳了十多家公司数百名员工的贡献,而关键在于开发者愿意遵守黑客盗的免费提供源码,而且通过互联网发布。,在几年间<strong>X Window</strong>战胜<strong>专有图像处理系统</strong>这件事深深地影响了整个UNIX</p>
<p>随着1990年最后一台ITS机器关机,ITS文化正式消失了,这部分力量放下立场,融入了UNIX文化。<br>紧接着就是UNIX的内战,最重要的两个便是Berkeley UNIX与AT&T UNIX,代表了免费与商业的斗争。</p>
<p>20世纪90年代基于Intel 386芯片的PC出现了,MS-DOS和Mac的用户如雨后春笋般,然而并没有发展出什么带有自我意识的文化。与此同时商业的UNIX贵的一批且没有可移植性,而自由软件基金会也没能给出易用的可移植的UNIX。以至于在UNIX青黄不接之时,微软凭借Windows操作系统,抢占了市场份额。当然自此便经常可以看到媒体发声,“UNIX要玩完”的言论,直到现在依旧如此
</p>
</blockquote>
</li>
<li><p>早期的自由UNIX</p>
<blockquote>
<p>1994年Berkeley UNIX研究组彻底失去了经费支持,看似UNIX是彻底玩完了。但是其实在人们关注之外,自由软件基金会一直未完成的可移植内核让一个大学生起了兴趣,这个人就是Linus Torvalds。</p>
<p>1991年,他开始使用FSF提供的套件为386开发自由Unix内核,他成功了,并且还吸引了很多黑客跟他一起做这件事情。这个产物就是Linux,全功能的Unix,免费而且代码完全公开,可以再发布。</p>
<p>Linux的开发成功,让人们得到了不一样的思考。以前的人们一直觉得对于如此复杂的系统必须要一个小而美的团队来做,团队要紧密互动,在Linux之前几乎所有的项目都是如此。而Linux从一开始就走了一条截然不同的路线,没有约束,各位合作者随意发挥,只有一个简单的约定,每周发布,得到用户反馈,并改之,让人惊讶的是这却工作的很好。一个很好的比喻便是<strong>物竞天择</strong>。</p>
<p>1993年底,Linux的稳定性已经和商业Unix不相上下了,加之商业Unix贵,很多人已不再使用商业Unix,导致很多商业Unix关门大吉。一些商业软件也已经开始考虑一直到Linux,不再支持Unix。至此黑客们对外界唱衰Unix便不再理会,开始用自己的观点重塑商业软件世界.
</p>
</blockquote>
</li>
<li><p>WEB大爆发</p>
<blockquote>
<p>20世纪90年代,也就是Linux的早期,互联网也开始大行其道,变得便利,而黑客们的工作也就变成开发Linux,宣传互联网。Linux也借到了互联网便利的东风,迅速流传开来。当互联网成为主流,黑客群体便受到了尊重。也出现了一些政治影响。</p>
<ol>
<li>黑客们通过抗议阻止了一个强加密算法置于美国政府的控制下</li>
<li>黑客们通过发动同盟阻止了“通信合宜法(CDA)”。CDA指的是当时的美国为了避免色情内容流传于互联网影响青少年,提出监管网络内容。而这一做法遭到了美国公民自由联盟的起诉,理由是侵犯了公民言论自由的权利,CDA最终在1997年被废除。</li>
</ol>
</blockquote>
</li>
</ol>
<p><strong>至此黑客文化终于在这个世界上有了一席之地</strong>
</p>
]]></content>
<categories>
<category>Book</category>
</categories>
<tags>
<tag>开源</tag>
<tag>读书笔记</tag>
</tags>
</entry>
<entry>
<title>极简 OBS 编译流程</title>
<url>/2020/07/12/build-obs/</url>
<content><![CDATA[<p>最近在搞 Nimo 主播端,主要是基于 OBS 魔改。所以就给组里同事写了一个极简的 OBS 编译流程。</p>
<span id="more"></span>
<p>这里以 OBS 25.0.8 为例。</p>
<ol>
<li>拉取 OBS 代码 <a href="https://github.com/obsproject/obs-studio">https://github.com/obsproject/obs-studio</a> (<code>source path</code>)</li>
<li>切换到 25.0.8 tag</li>
<li>下载依赖的 Qt 库 <a href="https://cdn-fastly.obsproject.com/downloads/Qt_5.10.1.7z">https://cdn-fastly.obsproject.com/downloads/Qt_5.10.1.7z</a> (<code>Qt path</code>)</li>
<li>下载编译过程需要的依赖 <a href="https://obsproject.com/downloads/dependencies2017.zip">https://obsproject.com/downloads/dependencies2017.zip</a> (<code>dependency path</code>)</li>
<li>安装最新版的 CMake <a href="https://cmake.org/download/">https://cmake.org/download/</a></li>
<li>安装Windows 10 SDK (10.0.19041.0) <strong>(注:低于这个版本会因为找不到一个 winrt api 编不过)</strong></li>
<li>新建工程目录 (<code>build path</code>)</li>
<li>打开 CMake GUI 。 并设置 Source 为 <code>source path</code>, 设置 Build 为 <code>build path</code></li>
<li>点击 Configure</li>
<li>编译 x64 不需要填额外参数点 Finish</li>
<li>Configure 出错莫慌,设置 DepsPath 为 <code>dependency path</code>,设置 QTDIR 为 <code>Qt path</code> 的下级目录(指定位数这一级) msvc2017_64</li>
<li>再次点击 Configure</li>
<li>点击 Generate</li>
<li>这个时候就可以在 <code>build path</code> 看到解决方案了,用 VS 打开编译即可</li>
<li>生成的 obs64.exe 在 <code>UI\Debug\</code> 下</li>
</ol>
<p>这只是 OBS 不带任何其他开关的编译方法。如果需要其他非默认模块,Configure 之前将需要的宏定义加入,再生成解决方案。</p>
]]></content>
<categories>
<category>Programming</category>
</categories>
<tags>
<tag>C++</tag>
<tag>OBS</tag>
</tags>
</entry>
<entry>
<title>编译Qt</title>
<url>/2016/01/03/build-qt/</url>
<content><![CDATA[<p>参考:</p>
<ul>
<li><a href="http://wiki.qt.io/Building_Qt_5_from_Git">Building-Qt5-from-Git</a></li>
</ul>
<p>Windows 下自己准备自己想要的编译器。编译自己想要的 Qt 版本<br>最近 5.6 出来了,有好多新的变化,第一时间准备尝鲜。<br>我自己的是 MSVC2015 Qt5.6</p>
<span id="more"></span>
<p>首先要准备:</p>
<ul>
<li>Perl</li>
<li>Git</li>
<li>python</li>
</ul>
<p>如果要是编译webkit的话,还需要 icu 套件,这次为了熟悉流程先不编这个,因为 Qt5.6 已经把 webkit 移除了,换成了 webengine ,官网的文档还没有更新,暂时还没研究</p>
<p><strong>一定要先装Perl再装Git,以免用了老的Git,会导致脚本失败</strong><br>而且安装Git的时候需要选择<strong>可以在cmd使用Git命令</strong>,不然就只能用Git自己带的那个命令行了<br>Qt的代码使用Git做版本管理,但是他的子库很多,每个模块都是单独的一个仓库,所以检出的时候为了避免麻烦则用Perl写成了脚本。</p>
<p>为了方便的话,可以直接用VS的命令行,这样免了设置MSVC的环境了。<br>设置一些环境变量:</p>
<figure class="highlight bash"><table><tr><td class="code"><pre><span class="line">SET _ROOT=C:\qt5</span><br><span class="line">SET PATH=%_ROOT%\qtbase\bin;%_ROOT%\gnuwin32\bin;%PATH%</span><br><span class="line">SET QMAKESPEC=win32-msvc2015</span><br><span class="line">SET _ROOT=</span><br></pre></td></tr></table></figure>
<ul>
<li>注:_ROOT设置成自己检出Qt代码的目录(你检出代码之后再去设置这些也是可以的),QMAKESPEC 设置成自己用的编译器</li>
</ul>
<h3 id="取顶层仓库"><a href="#取顶层仓库" class="headerlink" title="取顶层仓库"></a>取顶层仓库</h3><blockquote>
<p>git clone git://code.qt.io/qt/qt5.git</p>
</blockquote>
<p>或者是</p>
<blockquote>
<p>git clone <a href="https://code.qt.io/qt/qt5.git">https://code.qt.io/qt/qt5.git</a></p>
</blockquote>
<p>这样会在你的目录下检出Qt顶层仓库。</p>
<p>然后执行Perl脚本检出子库</p>
<blockquote>
<p>perl init-repository</p>
</blockquote>
<ul>
<li>注:这里边官方文档说是可以使用–no-webkit来屏蔽webkit相关子库,但是我这里是不能用这个参数的,无法解析这个参数,看脚本内容也没有跟–no-webkit相关的。虽然把webkit的代码检出了,但是编译的时候,如果你没有安装上边说的icu套件,编译会自动跳过的。</li>
</ul>
<p>接下来是configure</p>
<blockquote>
<p>configure -prefix f:/qtsrc/qt-msvc2015-x64 -debug -static -platform win32-msvc2015 -c++11 -opengl desktop -qt-libpng -qt-libjpeg -nomake examples -nomake tests -mp</p>
</blockquote>
<p>这是我的配置,基本上都是一眼就能看出来的选项。(从我的观察来看Qt5以上应该已经不支持<em>demos</em>这个选项了,如果加了会报错)</p>
<p>然后编译</p>
<blockquote>
<p>nmake</p>
</blockquote>
<p>转移到其他目录(就是-prefix指定的目录)</p>
<blockquote>
<p>nmake install</p>
</blockquote>
<p>在目录下就能看到已经编好的工具还有lib了。想要dll什么的改下configure的参数就可以了</p>
]]></content>
<categories>
<category>Programming</category>
</categories>
<tags>
<tag>C++</tag>
<tag>Qt</tag>
</tags>
</entry>
<entry>
<title>阿里云(CentOS7.4、专有网络)配置shadowsocks-server</title>
<url>/2017/11/12/centos7-shadowsocks/</url>
<content><![CDATA[<p>双十一在阿里云剁了一个服务器,随便搞搞,找了一些教程,搭了个梯子。</p>
<span id="more"></span>
<h3 id="安装Python、pip"><a href="#安装Python、pip" class="headerlink" title="安装Python、pip"></a>安装Python、pip</h3><p>这一步在阿里云的预装系统上,不需要,系统带了</p>
<h3 id="安装配置shadowsocks"><a href="#安装配置shadowsocks" class="headerlink" title="安装配置shadowsocks"></a>安装配置shadowsocks</h3><p>安装 shadowsocks:</p>
<blockquote>
<p>$ pip install shadowsocks</p>
</blockquote>
<p>安装完成后,创建配置文件,路径可以自选,自己能找到就行</p>
<p><code>/etc/shadowsocks/config.json</code></p>
<blockquote>
<p>{<br> “server”:”0.0.0.0”,<br> “local_address”:”阿里云公网ip”,<br> “local_port”:”15645”,<br> “port_password”:{<br> “8838”:”password”,<br> “8839”:”passworda”<br> }<br> “timeout”:300,<br> “method”:”aes-256-cfb”,<br> “fast_open”:false<br>}</p>
</blockquote>
<p><code>port_password</code>配置客户端连接的时候访问端口,和需要的密码</p>
<p><code>method</code>配置加密方法</p>
<p><code>server</code>不要写阿里云的公网ip,这样启动的时候会报连接不上加载不起来</p>
<p><code>local</code>的两项目测配置server不是必须的</p>
<h3 id="配置自启动"><a href="#配置自启动" class="headerlink" title="配置自启动"></a>配置自启动</h3><p>创建启动脚本<code>/etc/systemd/system/shadowsocks.service</code>:</p>
<blockquote>
<p>[Unit]</p>
<p>Description=Shadowsocks</p>
<p>[Service]<br>TimeoutStartSec=0<br>ExecStart=/usr/bin/ssserver -c /etc/shadowsocks/config.json<br>ExecReload=/bin/kill -HUP $MAINPID<br>ExecStop=/bin/kill -s QUIT $MAINPID<br>PrivateTmp=true<br>KillMode=process<br>Restart=on-failure<br>RestartSec=5s</p>
<p>[Install]<br>WantedBy=multi-user.target</p>
</blockquote>
<p>这个时候要让防火墙对刚才配置的端口放行</p>
<blockquote>
<p>查看状态:$ systemctl status firewalld<br>启动:$ systemctl start firewalld</p>
</blockquote>
<blockquote>
<p>$ firewall-cmd –zone=public –add-port=8838/tcp –permanent<br>$ firewall-cmd –zone=public –add-port=8839/tcp –permanent</p>
</blockquote>
<p>将<code>8838</code>、<code>8839</code>两个端口放行。阿里云还有个安全组,在阿里云的控制台可以找到,然后添加规则将上边两个端口放行(授权对象写0.0.0.0/0就好)</p>
<p>执行以下命令启动 shadowsocks 服务:</p>
<blockquote>
<p>$ systemctl enable shadowsocks.service<br>$ systemctl start shadowsocks.service</p>
</blockquote>
<p>查看启动状态:</p>
<blockquote>
<p>$ systemctl status shadowsocks.service -l</p>
</blockquote>
<p>如果发现失败了,这里的报错信息是不全的</p>
<p>可以手动启动ss,看一下是什么错误</p>
<p>以指定配置启动ss :</p>
<blockquote>
<p>$ ssserver -c /etc/shadowsocks/config.json</p>
</blockquote>
]]></content>
<categories>
<category>Programming</category>
</categories>
<tags>
<tag>ss</tag>
</tags>
</entry>
<entry>
<title>【复音口琴】单音技巧</title>
<url>/2014/12/20/dan-yin-ji-qiao/</url>
<content><![CDATA[<p>单音里边又分旧式单音和新式单音。</p>
<p>旧式单音就很容易学了,有两种方法</p>
<ol>
<li>口型缩到最小,然后吹一排孔,也很容易分辨自己是否吹干净,没杂音就算是吹对了;</li>
<li>或者是吹三个孔,拿3为例,吹234这三孔,因为旁边两孔均是吸音,所以只能吹出3这个音。吸音也是如此;</li>
</ol>
<p>第一种方法如果想验证是不是只吹了一个孔而不是吹成了第二种方法的三个孔,有一个小技巧,找一个吹音,例如3,保持口型不变,旁边移动一个格子,继续吹,如果是第二种方法会吹出三度和音的效果(吹到了3和5),如果你的口型是第一种口型正确的话应该是吹不出声音,因为4是吸音,吹是不发声的。</p>
<p>旧式单音的两种方法均可以,而且也很好练习,就不做过多叙述了。</p>
<span id="more"></span>
<p>而新式单音则是新手的第一道门槛,也是舌堵单音。口含7孔堵住6个。</p>
<p>看到很多人会纠结是不是含七个,我自己的亲身体会是没必要纠结。因为我也是前几天在练习分解和音的时候偶然发现,我一直都是含5个堵住4个。但是只要掌握了这个技巧,改过来是很好改的。所以在新式单音的学习上,重点还是在舌堵,而不是多少个孔。</p>
<p>练习的时候,我比较推崇闲庭落木的方法,附上<a href="http://tieba.baidu.com/p/2741702530">他的教学视频</a>。文字叙述的话,便是先吹空气伴奏,也就是七个孔一起吹,然后舌头堵上去,之后向左摆动调整位置,直到吹的单音干净。开始的时候,一个音一个音的练习,基本上把大部分的音都可以吹到干净,舌头在口中的相对位置便记熟了。</p>
<p>然后便练习新式单音在口琴上直接移动爬音阶。其实这个就很好练习了。放松自己的舌头,然后在琴上滑动吹奏各个音。需要注意的只是舌头只是搭在琴上,而不是黏在琴上,这一点尤其重要,所有的乐器在演奏的时候都是很放松的,如果舌头紧绷那必然也是不对的。</p>
<p>在可以熟练的吹奏音阶之后,找一些简单的曲子,我自己当时是吹奏《口琴考级曲集》里面的一二级曲子,当然事实上,什么简谱都可以拿来练习。但是刚开始一定不要求快,而是先吹每个音都吹准,然后才是快,这点很重要,不然养成了习惯,单音很容易吹不干净。</p>
<p>这些过程学习的时间因人而异,关键是看效果,效果吹到位了,单音吹干净了,便是学成了。</p>
<p>新式单音的练习可以锻炼自己的舌头的感觉,并且如果想学习复音口琴后面的技巧,干净的单音是前提。如果单音吹不干净,伴奏或者是后面的五度八度和音感觉都会很差。</p>
<p>关于练习时口水的问题,是很多刚开始学习的人都有的一个经历,如果特别讨厌这种感觉,那就不要学习了,勉强自己也不好。但是值得一提的是,随着自己的练习,口水就没有之前流的那么任性了,现在我吹琴,有时候吹着吹着反而觉得在琴上划不动了,口水流的太多只是刚开始的一个反应。还有就是,要注意保持口琴的清洁,吹奏结束要倒一倒口水,然后再用点酒精消消毒,擦干净,要不然时间长琴不卫生,而且还会有异味……</p>
]]></content>
<categories>
<category>口琴吹奏技巧</category>
</categories>
<tags>
<tag>harmonica</tag>
<tag>复音口琴</tag>
</tags>
</entry>
<entry>
<title>写在深夜</title>
<url>/2015/03/13/deep-night/</url>
<content><![CDATA[<p>自己刚开始搞博客是去年12月份,弄得热火朝天,结果到头来写了两三篇日志就辍笔了。真是尴尬。寒假回家的时候就有心上来弄一下,但是玩的不亦乐乎也就忘了这茬了。在公司,晚上就有很多机会搞这个博客了。今天的收获不小,把之前一直搞不定的文件夹权限的问题搞定了,FTP连接也搞定了,现在的WordPress总算是稳定了。自己也能专心写写博客。但是还有phpmyadmin搞不定。没办法,自己nginx实在是不懂,搞了个反向代理也是现学现卖,其实原理还是傻傻的分不清,有时间再去详细弄弄。</p>
<span id="more"></span>
<p>这两天都是蛮开心的,毕业设计方面有比较大的进展,一直搞不定WP的TCP通信,昨天偶然想起我在图书馆借的一本《Windows Phone8开发技巧与案例精解》,最喜欢看这种书了,有例子一看就明白。果然,有一个现成的例子,照着敲了一下,还真的跑起来了。不过WP的TCP通信强行用异步的方式我也是醉了,没个例子只看文档的话还真是傻傻的弄不清。明天白天开始撸开题报告,感觉在公司就比较充实了,在学校玩心太重,真是罪过。港澳通行证也到了,还不错的样子。</p>
<p>《苏东坡传》回家之后看完了,感觉还是和我最初看的时候有一点点不一样,慢慢的接受了林对苏的赞美,也开始欣赏苏的为人。有时候想想自己对于很多事情太过武断,总是以为自己是见微知著,但是到最后却发现自己其实是坐井观天罢了。希望自己以后对事情能够更加认真些吧,这样也让自己看起来更稳重些吧。</p>
]]></content>
<tags>
<tag>随笔</tag>
</tags>
</entry>
<entry>
<title>DLL 导出符号的两种方式</title>
<url>/2019/04/28/dll-export-function-way/</url>
<content><![CDATA[<p>最近恰好需要用 C++ 实现一个供 C# .NET 调用的模块,用<code>dllexport</code>导出符号的时候出现了一点问题,明明已经看到了导出符号,但是 .NET 在调用的时候,就是找不到方法。然后用 def 文件的方式导出符号就正常,突然对这两种方式的区别产生兴趣,之前一直没有研究过,就仔细了查阅一番。</p>
<span id="more"></span>
<p>以导出名为 TESTFUNC 方法为例:</p>
<h2 id="def-文件方式"><a href="#def-文件方式" class="headerlink" title="def 文件方式"></a>def 文件方式</h2><p>,正常在程序中定义方法,然后新建一个 .def 文件,内容类似</p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">LIBRARY</span><br><span class="line">EXPORT</span><br><span class="line"> TESTFUNC</span><br></pre></td></tr></table></figure>
<p>在其他工程使用这个方法的时候需要头文件,然后在连接时指定 .def 文件目录。</p>
<h2 id="dllexport方式"><a href="#dllexport方式" class="headerlink" title="dllexport方式"></a>dllexport方式</h2><p>在定义 TESTFUNC 方法时,在声明前加上 <code>__declspec(dllexport)</code>。</p>
<h2 id="区别"><a href="#区别" class="headerlink" title="区别"></a>区别</h2><p>这里就不得不说导出符号在 DLL 中的形式。实际上对于 C++ 来说,当导出的时候,不会以原名导出,因为会加上一些符号字母后缀,实际上如果了解 C++ 的人,也会知道 C++ 在处理函数重载的时候,其实也用了这个套路,实际上编译之后就没有重载的概念了,而是根据参数生成了独一无二的方法名。</p>
<p>那说回来既然名字不同,那为什么其他模块调用还没问题呢。回答这个问题之前要先知道其他模块如何引用。</p>
<h3 id="调用导出函数的方式"><a href="#调用导出函数的方式" class="headerlink" title="调用导出函数的方式"></a>调用导出函数的方式</h3><p>一般有三种形式:</p>
<ul>
<li>.h 提供声明之后,直接调用,在连接的时候指定 .def 文件目录;</li>
<li>.h 提供声明之后,直接调用,链接的时候指定 .lib 文件地址</li>
<li>内部声明要调用函数的函数指针,loadlibrary 之后,直接取到函数地址,调用函数;</li>
</ul>
<p>了解了这三种方式之后,就可以回答上边的问题。</p>
<ul>
<li>对于1、2两种方式,由编译器自动转换函数名,寻找到正确的地址,链接之;</li>
<li>对于第3种方式,如果不把真正的函数方法名写对,就找不到函数了。</li>
</ul>
<p>所以其他模块调用没问题。</p>
<p>话说回来,那也不可能每次都把<code>@</code>那些符号写对。所以会看到有时候导出的时候<code>_extern "C" _declspec(dllexport)</code>这样写,这是为了让函数以 C 的方式来编译,这样导出的方法就是没有那些符号的了,但这样有个问题,就是函数必须以 C 方式调用,而且也不能用来导出类对象,原因是显而易见的……</p>
<p>其实当了解上边之后,不难发现,1、2才是我们最想要的,3就很局限。这样问题就来了,1、2两种方式又有什么区别呢:</p>
<p>区别就在这个 .lib 上,如果在 C++ 或者 C 工程这个范围来说,确实没区别。但是假如调用工程不是 C++ 工程呢,他就是个 C# 工程呢,他是没办法用 .lib 的。</p>
<p><strong>综上所述:.def 文件的方式才是最通用的做法</strong>。那回到我最初的问题,我的 C# 工程之所以在调用使用 <code>dllexport</code>导出的方法失败,就是因为,我没有写对真正的方法名(带一堆符号的那个)。而使用 .def 文件的话,就没有这个问题了。</p>
]]></content>
<categories>
<category>Programming</category>
</categories>
<tags>
<tag>Windows编程</tag>
<tag>dll</tag>
</tags>
</entry>
<entry>
<title>谈谈 DLL 注入的几种方式</title>
<url>/2020/08/01/dll-injection-ways/</url>
<content><![CDATA[<p>云游戏的键鼠捕捉用到了 Hook 这个技术,就顺便翻了一下核心编程,写下来备忘。</p>
<span id="more"></span>
<h2 id="使用注册表注入"><a href="#使用注册表注入" class="headerlink" title="使用注册表注入"></a>使用注册表注入</h2><ul>
<li>x32 : <code>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows</code></li>
<li>x64 : <code>HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Windows</code></li>
</ul>
<p>这个位置下 <code>AppInit_DLLs</code> 和 <code>LoadAppInit_DLLs</code>。 将后者置为 1,然后在前者的值输入待注入 DLL 名称(多个 DLL 用 <code>Space</code> 分隔,第一个可以带路径,后边的不行)。</p>
<ul>
<li>优点:方法简单</li>
<li>缺点:只有引用了 User32.dll 的才会被注入,而且被注入进程一启动就会注入,结束才会反注入,注入周期不可控</li>
</ul>
<h2 id="使用-Windows-Hook-注入"><a href="#使用-Windows-Hook-注入" class="headerlink" title="使用 Windows Hook 注入"></a>使用 Windows Hook 注入</h2><p>核心方法:</p>
<ul>
<li><code>SetWindowsHookEx</code></li>
<li><code>UnhookWindowsHookEx</code></li>
</ul>
<p>设置挂钩的时候,可以指定挂钩类型、线程 ID 、回调方法、DLL 句柄。这些已经可以准确的注入到一个进程中了。通过 Set、Unhook 两个方法可以准确的控制注入周期。</p>
<ul>
<li>优点:准确的控制注入周期</li>
<li>缺点:依赖消息循环,没消息循环的线程没法注入</li>
</ul>
<h2 id="远程线程注入(大杀器)"><a href="#远程线程注入(大杀器)" class="headerlink" title="远程线程注入(大杀器)"></a>远程线程注入(大杀器)</h2><p>核心方法:</p>
<ul>
<li><code>CreateRemoteThread</code></li>
<li><code>VirtualAllocEx</code></li>
<li><code>VirtualFreeEx</code></li>
<li><code>ReadProcessMemory</code></li>
<li><code>WriteProcessMemory</code></li>
</ul>
<p>可以用 <code>CreateRemoteThread</code> 在指定进程中创建一个线程,让它执行我们自己的代码,这样可以让远程线程 Load 一个我们自己的 DLL,这就可以为所欲为了……需要注意的是,<code>CreateRemoteThread</code> 的参数 <code>PTHREAD_START_ROUTINE</code> 这个函数地址,需要调用 <code>GetProcAddress</code> 。如果直接传函数地址,是本进程的……显然是不对的。</p>
<figure class="highlight c++"><table><tr><td class="code"><pre><span class="line">PTHREAD_START_ROUTINE pfnThreadRtn = (PTHREAD_START_ROUTINE)<span class="built_in">GetProcAddress</span>(<span class="built_in">GetModuleHandle</span>(<span class="built_in">TEXT</span>(<span class="string">"Kernel32"</span>)), <span class="string">"LoadLibraryW"</span>);</span><br></pre></td></tr></table></figure>
<p>而函数参数也要使用 <code>VirtualAllocEx</code> 来分配内存,然后 <code>WriteProcessMemory</code> 写入。这才是远程进程可以获取的。</p>
<ul>
<li>优点:可以为所欲为</li>
<li>缺点:写起来有点复杂</li>
</ul>
<h2 id="同名-DLL-替换"><a href="#同名-DLL-替换" class="headerlink" title="同名 DLL 替换"></a>同名 DLL 替换</h2><p>如果已知一个程序必然载入一个 DLL ,则可以做一个同名 DLL 然后将方法跟原 DLL 保持一致,在方法调用中间做点其他手脚。这种如果程序校验 DLL ,就没戏。或者直接修改程序的 EXE 的导入段,这就要求对 PE 结构非常熟悉。</p>
<h2 id="作为调试器注入"><a href="#作为调试器注入" class="headerlink" title="作为调试器注入"></a>作为调试器注入</h2><p>核心编程没说的太细,看起来要写 CPU 代码,没太细看。感觉也挺复杂,不太实用。</p>
<h2 id="修改子进程的主线程开始位置代码"><a href="#修改子进程的主线程开始位置代码" class="headerlink" title="修改子进程的主线程开始位置代码"></a>修改子进程的主线程开始位置代码</h2><p>如果要注入的进程是子进程,可以创建它的时候挂起它,然后从 exe 模块中拿到子进程的主线程起始地址,把这里记下来,之后改成执行自己的代码,这个时候恢复子进程主线程,就可以执行自己的代码了,然后再把之前保存的执行一波。看起来也挺复杂,核心编程也没给具体例子。</p>
<h2 id="API-拦截"><a href="#API-拦截" class="headerlink" title="API 拦截"></a>API 拦截</h2><p>第一种:把要拦截的 API 起始位置的几个字节保存起来,然后将此位置改写为 CPU 的 JUMP 指令,跳转到自己的方法。不过这种方法非常危险,不建议用。</p>
<p>第二种:修改模块导入段拦截 API</p>
<p>核心方法:</p>
<ul>
<li><code>ImageDirectoryEntryToData</code></li>
<li><code>WriteProcessMemory</code></li>
<li><code>VirtualProtect</code></li>
</ul>
<p>获取到模块的导入段信息,之后查找到指定方法,用自己的方法替换原来的方法。如果 <code>WriteProcessMemory</code> 失败,就用 <code>VirtualProtect</code> 修改一下页面保护属性。</p>
]]></content>
<categories>
<category>Programming</category>
</categories>
<tags>
<tag>Windows编程</tag>
<tag>dll</tag>
</tags>
</entry>
<entry>
<title>一只狗</title>
<url>/2015/12/01/dog-say/</url>
<content><![CDATA[<p>一只狗是我微信的名字,这个名字确实蛮滑稽的。但确是我用过这么多的昵称名字里边最喜欢的,可以说除了QQ昵称之外最喜欢的。</p>
<p>经常有人问我,为什么会叫一只狗呢。我说:因为狗是人类最好的朋友啊……</p>
<span id="more"></span>
<p>在世上活了二十几载,却发现,单纯的朋友关系有多么的珍贵,保有一份朋友间的单纯有多么的难。如果重新选择,或许我更愿作他人身边的一只狗,这样在朋友高兴的时候,离开我我也不会觉得难过;朋友难过的时候找我倾诉,我依旧很高兴。</p>
<p>人就是这么复杂,七情六欲,高兴、生气、猜疑、嫉妒……或许狗就没有,到了狗那里就是摇尾巴啦~~</p>
<p>如果选择做一只狗,或许就不会因为其他的利益纠葛衍生出背叛,决裂。因为狗忠诚。这样看或许人不如狗……</p>
<p>我确实喜欢狗,但是和其他人的喜欢还是不同的。我不喜欢把动物放在对立面。我喜欢狗,是因为狗忠诚、单纯、阳光;我不喜欢猫,是因为猫高冷、忧郁、复杂……</p>
<p><em>那个人好奇怪,他好像一只狗……</em></p>
]]></content>
<tags>
<tag>随笔</tag>
</tags>
</entry>
<entry>
<title>开发工具备忘</title>
<url>/2018/08/12/develop-tool-archive/</url>
<content><![CDATA[<p>工作时候用到的工具繁多,进行一波归档备忘,方便以后使用。</p>
<span id="more"></span>
<h1 id="效率工具"><a href="#效率工具" class="headerlink" title="效率工具"></a>效率工具</h1><ul>
<li><a href="http://www.voidtools.com/">Everything</a> 搜索文件利器</li>
<li><a href="http://www.listary.com/">Listary</a> 文件管理器与程序打开窗口联动</li>
<li><a href="http://cmder.net/">Cmder</a> Windows 下最好用的命令行</li>
<li><a href="https://notepad-plus-plus.org/">Notepad++</a> 文本文件编辑利器(x86版本插件比较多)</li>
<li><a href="http://www.funduc.com/search_replace.htm">Search and Replace</a> 文件内容查找利器,查找速度秒杀一切 </li>
<li><a href="https://github.com/ehnap/gal">Gal</a> 我自己写的快速启动工具</li>
<li><a href="http://www.ghisler.com/">Total Commander</a> 处理文件比文件管理器好用</li>
<li><a href="https://www.scootersoftware.com/download.php">Beyond Compare</a> 目录、文件内容对比工具,比 <em>git diff</em> 更专业</li>
<li><a href="https://windirstat.net/download.html">WinDirStat</a> 文件夹大小扫描工具,速度飞快</li>
</ul>
<h1 id="开发工具"><a href="#开发工具" class="headerlink" title="开发工具"></a>开发工具</h1><ul>
<li><a href="https://www.ieinspector.com/">HTTPAnalyzer</a> Windows下简单好用的抓包工具</li>
<li><a href="https://docs.microsoft.com/zh-cn/sysinternals/downloads/process-explorer">Process Explorer</a> 进程观察利器</li>
<li><a href="https://github.com/processhacker/processhacker">Process Hacker</a> 比 PE 更好用的东东</li>
<li><a href="https://docs.microsoft.com/zh-cn/sysinternals/downloads/procmon">Process Monitor</a> 进程监视利器</li>
<li><a href="https://docs.microsoft.com/zh-cn/sysinternals/downloads/">SysinternalsSuite</a> 微软出品的系统工具合集</li>
<li><a href="http://www.torchsoft.com/en/rw_information.html">Registry Workshop</a> 加强版注册表,历史记录跳转功能超级好用</li>
<li><a href="https://www.apimonitor.com/">API Monitor</a> 软件调用 Win32 API 捕捉利器</li>
<li><a href="https://oldj.github.io/SwitchHosts/">SwitchHosts</a> Host 管理、切换工具</li>
<li><a href="https://git-scm.com/">Git</a> 源代码管理工具</li>
<li><a href="https://www.sourcetreeapp.com/">SourceTree</a> Git 的可视化客户端,观察文件变化比较方便</li>
<li><a href="http://www.tortoisegit.org/">TortoiseGit</a> Git 的另一个可视化客户端,合分支比较方便</li>
<li><a href="http://www.hostbuf.com/">FinalShell</a> SSH 工具,非常不错</li>
<li><a href="https://www.tightvnc.com/">TightVNC</a> 免费的 VNC 软件</li>
</ul>
]]></content>
<categories>
<category>Programming</category>
</categories>
<tags>
<tag>开发工具</tag>
</tags>
</entry>
<entry>
<title>浅谈 .NET 与 Qt Timer 实现</title>
<url>/2020/08/07/dotnet-qt-timer/</url>
<content><![CDATA[<p>前两天刚好跟同学提起如何实现一个 Timer 。提到了 Kafka 的时间轮和 Go 语言的四叉堆实现。所以就看了下 .NET 是如何实现 Timer 的。</p>
<span id="more"></span>
<p>.NET Timer 分为两种,一种是 <code>System.Windows.Threading.DispatcherTimer</code> , 另外一种是<code>System.Timers.Timer</code> 。</p>
<h2 id="System-Windows-Threading-DispatcherTimer"><a href="#System-Windows-Threading-DispatcherTimer" class="headerlink" title="System.Windows.Threading.DispatcherTimer"></a>System.Windows.Threading.DispatcherTimer</h2><p>.NET Framework 相关源码路径:</p>
<ul>
<li>System\Windows\Threading\DispatcherTimer.cs</li>
<li>System\Windows\Threading\Dispatcher.cs</li>
<li>System\Windows\Threading\DispatcherOperation.cs</li>
</ul>
<p>简要实现原理:在每次新增 DispatcherTimer 的时候,都会将回调的委托存入 Dispatcher 中的 DispatcherOperation 优先队列里,但是优先级是最差的。然后将 Timer 本身存入当前 Dispatcher 的 Timer List 中。还有一个值得关注的是,时间间隔会加上系统运行时间 <code>Environment.TickCount</code> ,变成绝对时间保存下来,这是为了后边 <code>WM_TIMER</code> 到达之后,对比是否超时做准备。接下来就要关注 Dispatcher 了,当 Dispatcher 新增、删除、响应 Timer 事件以及 DispatcherTimer 调整时间间隔的时候,会调用 <code>UpdateWin32Timer()</code> , 这个方法会在当前 Dispatcher 的 Timer List 中检索最近要触发的 DispatcherTimer,如果当前没有调用过 <code>SetTimer()</code> 或者调用过的 <code>SetTimer</code> 时间间隔比当前最近要触发的长,就取时间间隔,调用 <code>SetTimer()</code>。当收到 <code>WM_TIMER</code> 消息之后,将根据程序运行时间,对比时间间隔,选出已经超时的 Timer,将之前提到的 DispatcherOperation 优先级提升,等到下一个消息循环来到时,回调 Operation 将会被从优先对列取出,并执行。</p>
<h2 id="System-Timers-Timer"><a href="#System-Timers-Timer" class="headerlink" title="System.Timers.Timer"></a>System.Timers.Timer</h2><p>.NET Framework 相关源码路径:</p>
<ul>
<li>services\timers\system\timers\Timer.cs</li>
<li>system\threading\timer.cs</li>
<li>coreclr\src\vm\comthreadpool.cpp</li>
</ul>
<p>简要实现原理:<code>System.Timers.Timer</code> 只是对 <code>System.Threading.Timer</code> 包装,所以实现上看 <code>System.Threading.Timer</code> 就好。这就不得不提到 <code>System.Threading.Timer</code> 中的 <code>TimerQueue</code> 。 这是存有 <code>TimerQueueTimer</code> 的双向队列。每增加一个 Timer 的时候,都会将一个 <code>TimerQueueTimer</code> 放入 <code>TimerQueue</code> 队列。同时调用运行时的 Native 的代码 <code>AppDomainTimerNative::CreateAppDomainTimer()</code> 。后边就是 Native 的代码逻辑了,具体细节不表了,简单理解就是在线程池中搞一个线程,在线程中调用 <code>SleepEx()</code> 阻塞线程,当线程走完之后触发回调,再调回 .NET 托管代码,找到 <code>TimerQueueTimer</code> ,再执行用户回调。</p>
<h2 id="QTimer"><a href="#QTimer" class="headerlink" title="QTimer"></a>QTimer</h2><p>相关源码路径:</p>
<ul>
<li>qtbase\src\corelib\kernel\qeventdispatcher_win.cpp</li>
<li>qtbase\src\corelib\kernel\qtimer.cpp</li>
<li>qtbase\src\corelib\kernel\qobject.cpp</li>
</ul>
<p><code>QTimer</code> 的实现就比较简单了,当增加一个 <code>QTimer</code> 的时候,会在 <code>QEventDispatcher</code> 中调用 Win32 API,同时在 <code>QObject</code> 中将 TimerId 保存到 Vector 中。唯一的细节是,时间间隔在 20ms 以下或者指定 QTimerType 为 Qt::PreciseTimer 的 <code>QTimer</code> 会在底层调用 <code>timeSetEvent()</code> (源码注释中也提到了,虽然方法废弃了,但是精度还是高依旧使用),而其他的就调用 <code>SetTimer()</code> 方法。</p>
<h2 id="谈谈-SetTimer"><a href="#谈谈-SetTimer" class="headerlink" title="谈谈 SetTimer"></a>谈谈 SetTimer</h2><p><code>SetTimer()</code> 的调用是有限制的。不管别人信不信,反正我是信了。这一点在 MSDN 中 SetTimer 的描述并没有,不过通过一些现象,以及网上的一些其他帖子可以得到认证。据 SO 上的一位吃瓜网友表示,<code>SetTimer()</code> 会创建<strong>用户对象</strong>(虽然这一点微软也没说过),而用户对象在系统中是有限制的(这一点是微软明确说过的),而用户对象的数量上限是在注册表中的,根据微软的文档指示应该是在: <code>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\USERProcessHandleQuota</code> 我看了一下 x64 系统应该是在 <code>HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Windows\USERProcessHandleQuota</code> 。默认数量是 10000 。</p>
<h2 id="小结"><a href="#小结" class="headerlink" title="小结"></a>小结</h2><p>分析过以上几种 Timer 的实现,就知道 .NET 的 Timer 还是做了一些微小的优化的。这也是为什么我跟同事说, 即使都是拿来做 Windows 桌面开发,.NET 框架的上限还是要比 Qt 高的原因。这大概是因为 .NET 本身从一开始就不是以桌面开发作为目标的,所以它更要考虑性能问题,但正因为如此,源码看起来比 Qt 就更为困难;而 Qt 这么实现,对一般的桌面应用来说,完全够用,代码也更容易看懂。虽然两者的实现在极端情况下都会拉闸,但是显然 Qt 的 Timer 实现会更快拉闸……</p>
]]></content>
<categories>
<category>Programming</category>
</categories>
<tags>
<tag>C++</tag>
<tag>Qt</tag>
<tag>C#</tag>
<tag>.NET</tag>
</tags>
</entry>
<entry>
<title>谈谈双十一书单以及图书优惠</title>
<url>/2021/11/07/double-eleven-buy-books/</url>
<content><![CDATA[<p>公众号未更新应该有近四个月之久了。最近也是事情有点多,八月份也算是处理了一件人生中算得上是里程碑的大事吧,所以就一直都没有比较整块的时间读书。呃,当然也可以说是懒,而且懒应该是一贯的,只是为自己的懒找到了更为心安理得的借口罢了。然后在加上最近看书看的比较慢,又同时开了几本,都没看完。所以就一点内容都没有了……而且感觉今年的读书 KPI 堪忧。</p>
<p>不过恰逢双十一,像我一贯是买书如山倒,读书如抽丝,双十一又成了我一个很好的买书的借口,看不看的就另说了。恰好狗东的优惠力度也不小,就在待买书单里边挑了一些来囤。这样内容终于就有了,借着晒书单的机会,倒是也可以谈谈我是怎么来看图书优惠力度,以及通过哪些渠道获取书籍推荐,这或许也是一个不错的内容。</p>
<span id="more"></span>
<h2 id="关于图书优惠"><a href="#关于图书优惠" class="headerlink" title="关于图书优惠"></a>关于图书优惠</h2><p>其实每年有茫茫多的图书优惠,但实际上电商的逻辑我们早已烂熟于心,三天两头这个节那个节,提价再降价的套路已经不够新鲜了,所以对于很多人不怎么买书的,其实根本就分辨不了图书的优惠到底是不是真的优惠了。就像不总买菜的年轻人,是永远不知道菜卖的贵还是便宜的,因为没有一个日常的基线做比对。</p>
<p>这里我先说日常买书,我指的日常就是啥活动没有的平常时间,我通常都是不买……(手动狗头),但是如果必须要买,那就</p>
<ul>
<li>dangdang 的淘宝店</li>
<li>文轩网淘宝店</li>
</ul>
<p>我会优先选择 dangdang 的淘宝店。为什么会这样,是因为我发现一个非常诡异的地方,不知道是不是跟它的运营模式有关,它的淘宝店卖的竟然比它的平台便宜,这就有点疯起来连自己都杀的意思了,我就很喜欢;再其次就是文轩的淘宝店了,其实就是新华书店网店,书籍比较全吧,而且全国都有仓库,配送也比较快。</p>
<p>那对于活动来说,一个书籍活动优惠力度大不大要从两方面来看:</p>
<ul>
<li>书籍覆盖面是否够广</li>
<li>是否真的便宜</li>
</ul>
<p>根据这两方面去评价,基本上不会有太大偏差。但是还是那个问题,对于不怎么买书的人,没有一个比较基准,就没法评判这两种。这里可以套用其他品类的多平台比较大法。我买书的时候一般都会现在有活动的平台选好我自己要买的书,看一下最终要付多少钱,之后在另外一个平台选出同样的书,看下最终要付多少钱。这招基本上可以通杀所有活动。因为书籍这块商家现在还没那么奸,我怀疑可能是纸质书买的人实在有限,导致商家不像其它品类有那么多热情设计一堆特别复杂的规则来掩盖要赚钱的事实,说白了就是懒得装了。</p>