-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.xml
2457 lines (1601 loc) · 212 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>超越的主页</title>
<link>http://zhaochaoyue.com/</link>
<description>Recent content on 超越的主页</description>
<generator>Hugo -- gohugo.io</generator>
<language>zh-cn</language>
<copyright>&copy; 2018</copyright>
<lastBuildDate>Sun, 15 Oct 2017 00:00:00 +0800</lastBuildDate>
<atom:link href="/" rel="self" type="application/rss+xml" />
<item>
<title>我是如何学习英语的</title>
<link>http://zhaochaoyue.com/post/%E6%88%91%E6%98%AF%E5%A6%82%E4%BD%95%E5%AD%A6%E4%B9%A0%E8%8B%B1%E8%AF%AD%E7%9A%84/</link>
<pubDate>Tue, 12 Feb 2019 13:52:14 +0800</pubDate>
<guid>http://zhaochaoyue.com/post/%E6%88%91%E6%98%AF%E5%A6%82%E4%BD%95%E5%AD%A6%E4%B9%A0%E8%8B%B1%E8%AF%AD%E7%9A%84/</guid>
<description>
<h3 id="tl-dr">TL;DR</h3>
<blockquote>
<ul>
<li>求知若渴的学习心态</li>
<li>Podcast Republic播客app</li>
<li>《韦氏英语词典》</li>
<li>《The New York Times》和YouTube</li>
<li>用英文搜Google解决技术问题</li>
</ul>
</blockquote>
<p>英语是程序员的必修课,也是鉴定程序员水平的试金石。一个优秀的程序员应该能够轻松读懂英文技术文档、快速查询英文网页并得到有用的信息,甚至还需要畅通无阻的在GitHub上用英文与人交流、看懂大部分Hacker News的文章。</p>
<p>一直以来,我都在思考如何才能快速有效的提高英语水平。由于我之前做过几年国际贸易,英语是国贸的基本功,再加上在英语国家南非工作过一年,自觉英语处于国人中上水平,所以为了巩固自己的优点,学习英语一直没有停过,也多少在实践中总结了几个切身经验,发现了一些好用的工具,不免想在自己网站上写出来,分享一下。</p>
<h3 id="心态">心态</h3>
<p><img src="http://zhaochaoyue.com/img/stayHungryStayFoolish.jpg" alt="" /></p>
<p>乔布斯的名言“stay hungry,stay foolish”,大家肯定都听过。其实学习英语最重要的就是要保持对英文的好奇心。看见不会的单词尽量都搞懂了,尤其是那些很短的词,我每次见了很短又不会的词都觉得心里很别扭,三五个字母的词都不认识,多丢人啊,所以定会将其认真背一遍,理解一遍。</p>
<p>我没事就喜欢浏览外网,尤其是那些大牌网站。奥巴马总统在任的时候,我最喜欢逛美国白宫网站,里面有不少有趣的文章,比如美国总统、第一夫人、副总统、第二夫人的个人简历,看起来很过瘾。还记得看过拜登副总统的简历后一度非常伤感,他的身世真的太惨了。除了文字,还有白宫的新闻发布会也喜欢听,之前白宫发言人是一个戴眼镜的白人男子,我就很喜欢听他讲话,还专门查过他的眼镜什么牌子,可惜没有找到。政要的演讲也是必听的,虽然很同情拜登,但是他的演讲真的不喜欢,感觉他说话有点吐字不清,声音朦朦胧胧的,听起来不痛快。奥巴马的演讲就完美多了,阴阳顿挫,铿锵有力,简直是教科书。</p>
<h3 id="the-new-york-times">The New York Times</h3>
<p><img src="http://zhaochaoyue.com/img/nytimes.png" alt="" /></p>
<p>要论当今全球最高大上的报纸是哪家,我看非《纽约时报》莫属了。作为一个饥渴的英语学习者,怎么能不在这里好好畅游一番呢?我给自己定了一个小目标,每天工作再忙至少要浏览一遍《纽约时报》电子版首页的标题,然后找一两篇文章细读。免费版的每天只能读一篇,注册会员订阅后,就没有限制了,费用是一个月4美元,相当于一天1块钱,也蛮划算的。</p>
<h3 id="merriam-webster-dictionary">Merriam-Webster Dictionary</h3>
<p><img src="http://zhaochaoyue.com/img/webster.png" alt="" /></p>
<p>阅读英语文章少不了要查词,我的chrome浏览器有两个查词的扩展程序,一个是谷歌翻译,选中就能立马显示中文含义,速读时候很好用。另一个是Lookup on Merriam-Webster,就是著名的《韦氏英英词典》,右键点击单词,选择在词典中查看即可。要想不断提高英语水平,一定要用英英词典!先仔理解单词的含义,然后细细品味在句子中的用法。这个《韦氏英英词典》还有一个很好用的App,配合上手机版的《纽约时报》app使用,简直是一种享受。唯一不足就是国内无法使用无广告版(因为要用到Google Play)</p>
<h3 id="youtube">YouTube</h3>
<p><img src="http://zhaochaoyue.com/img/youtube.png" alt="" /></p>
<p>我最常用,而且百看不厌,其乐无穷的网站是YouTube。这里的视频包罗万象,练习听力是最好不过了,还能顺便了解美国文化。尤其是美国的脱口秀节目,既搞笑又长见识。YouTube视频有一个功能是打开字幕,大多数都是计算机自动识别的打出的,在语速太快听不懂的时候,看看字幕会有很大帮助。我关注的脱口秀节目有</p>
<ul>
<li>Team Coco</li>
<li>The Ellen Show</li>
<li>Jimmy Kimmel Live</li>
<li>The Late Show with Stephen Colbert</li>
<li>The Late Late Show with James Corden</li>
<li>The Tonight Show Starring Jimmy Fallon</li>
</ul>
<p>真是个个精彩无比,每个主持人都特别风趣幽默,妙语连珠。</p>
<h3 id="podcast-republic">Podcast Republic</h3>
<p><img src="http://zhaochaoyue.com/img/podcast_republic.png" alt="" /></p>
<p>眼睛累了需要休息的时候,不妨听一听美国的播客节目,利用碎片时间学习英语。我至今一直坚持听播客,刚开始是听不懂硬听,而且多是一些专门学习英语的播客,比如我听了好久的ESL,慢慢的大部分都能听懂了,就会找一些内容有意思的播客来听。之前用iPhone时候,就是在自带的podcast软件里找播客,为了找到美国的节目,还要把Apple ID的国家设置为美国,相当麻烦。后来换了安卓手机就更不方便了。</p>
<p>最近发现了一个播客app叫Podcast Republic,真的要五星推荐!国外所有的podcast都能搜索到,订阅后自动后台下载,听的时候一点也不用担心信号不好的卡顿,不翻墙也能下载,真的是英语学习的神器。基本我每天通勤路上都会插着蓝牙耳机听英文播客。我最喜欢听的是NPR的节目,NPR是美国公共广播电台。</p>
<h3 id="程序员光环">程序员光环</h3>
<p>作为一个程序员,学习英语也是很方便的。日常编码当中必然会经常Google技术问题,有句话叫“我们不是代码的创造者,我们是stack overflow的搬运工”。每一次查询技术问题都是一个学习英语的过程,当然前提是一定要在Google上搜索,而且因为要用英语描述问题,久而久之,英文造句和写作的能力也有有所进步。</p>
<p>此外,我自己上班时候一有空就会大量浏览学习各种技术文章,大多是关于前端开发的。资料来源主要是自己订阅的几个前端周报,最喜欢的一个是Frontend Focus,每周四发一篇,每期大约有十几篇文章,相当不错,就是感觉过多侧重于前台技术栈。此外也会翻一翻Google developer、GitHub explore和Medium的订阅邮件。这样无形中就增加了大量的阅读量,不知不觉就提高了英语水平,程序员光环的作用真的不容小觑。</p>
<h3 id="vpn">VPN</h3>
<p>学好英语的一个大前提是学会科学上网。我目前使用了两个VPN,一个是用了四五年的ifly,价格是360元/年,不限流量。优点是在谷歌Chrome上安装扩展程序即可,可以自动识别国内和国外的网站,想看国内视频网站也不用关闭VPN。缺点就是手机无法使用。所以我又买了另一个,叫IVPN。这个是我做了一番功课,在纽约时报的产品测评网站上读了一篇长篇分析市面上VPN厂家的文章后购买的。优点是服务器多,速度快,手机使用方便。缺点是价格比较贵,一年要500块。</p>
<h3 id="the-end">The end</h3>
<p>以上就是我学习英语的方法和经验,诸君共勉!</p>
</description>
</item>
<item>
<title>年会自编自演小品《如此招聘1.0》</title>
<link>http://zhaochaoyue.com/post/8-31/</link>
<pubDate>Tue, 29 Jan 2019 23:39:38 +0800</pubDate>
<guid>http://zhaochaoyue.com/post/8-31/</guid>
<description>
<blockquote>
<p>这个小品剧本最早是由我们部门一个实习生写的,我做了比较大的修改,加入了几个网上段子,也原创了很多小的笑点。这个小品在公司年会上表演了,效果还不错,不过有些包袱只有程序员能听懂,也就权当写代码之余的自娱自乐吧。</p>
</blockquote>
<p><strong>出场人物</strong></p>
<p><strong>面试官</strong>:<strong>Tony</strong>,40岁,资深前端架构师。</p>
<p><strong>助理</strong>:女,25岁。</p>
<p><strong>求职者1</strong>:马某,35岁,山东口音。</p>
<p><strong>求职者2</strong>:Jenny,18岁。</p>
<p><strong>求职者3</strong>:谢某,22岁。</p>
<p><strong>开场白</strong>:</p>
<blockquote>
<p>女士们,先生们,今天将要举行盛大的,前所未有的,殿堂级别的,某酷开发面试( 最后一句话没有底气),接下来让我们用热烈的掌声有请,我们宇宙级别的面试官,<strong>Tony</strong>老师,(声音沮丧)还有他不着边际,说话没六的<strong>助理</strong>某某某</p>
</blockquote>
<p>(<strong>Tony</strong>和<strong>助理</strong>就位)</p>
<p><strong>助理</strong>:我怎么成某某某了?这什么意思啊,这是!</p>
<p><strong>Tony</strong>:你别说了,时间不等人,赶紧开始面试。</p>
<p><strong>助理</strong>:(走到门口)第一位面试者,请进!(回到座位上)</p>
<blockquote>
<p><strong>求职者1</strong>大摇大摆走进屋子里,朝着<strong>Tony</strong>走过去,握住手</p>
</blockquote>
<p><strong>求职者1</strong>:老丝儿你好你好,你就是包工头吧?</p>
<p><strong>Tony</strong>:工头(疑惑)?哦(明白了),对,我就是工程师的头,来来来请坐</p>
<p><strong>助理</strong>:你先来做个自我介绍吧</p>
<p><strong>求职者1</strong>:(站起来面对观众)大家好,俺姓马,是个农民工,听说内这里招码农,今天俺就过来试一试。</p>
<p><strong>Tony</strong>: 这么个码农啊。。。那你既然来了,我就问你几个问题吧</p>
<p><strong>求职者1</strong>:好嘞老丝儿,内问吧</p>
<p><strong>助理</strong>:你觉得你自己最大的缺点是什么?</p>
<p><strong>求职者1</strong>:缺点?我说这个小老妹儿啊,你年纪轻轻眼力不大行啊,我哩缺点很明显呀,我头发太多了,人都说做程序员头发越少越牛逼,我这一头的黑发,看着就不专业啊!</p>
<p><strong>助理</strong>:哦,这个你放心,工作久了肯定会少的!你做这个工作多久了?</p>
<p><strong>求职者1</strong>:哎呦,这说来话长了,从俺刚入行到现在已经有十三个年头了吧</p>
<p><strong>Tony</strong>:十三年?那你这算是资深工程师了!</p>
<p><strong>求职者1</strong>:是是是,资深(重音)!要不说还是你们城里人高级,说滴话听起来就是这么的悦耳,对,俺就是资深(重音)工程师</p>
<p><strong>Tony</strong>:那你都懂些什么架构啊?</p>
<p><strong>求职者1</strong>:架构?我干起活来从来不管什么架构!抄起家伙来就是干啊</p>
<p><strong>Tony</strong>:哦,那你是执行力特别强喽?</p>
<p><strong>求职者1</strong>:对对对,要不是你是工头呢,我就爱听你说话,原来在我们工地,他们都说我能干</p>
<p><strong>Tony</strong>和<strong>助理</strong>:工地?(惊愕)</p>
<p><strong>求职者1</strong>:对呀!工程师基地嘛!</p>
<p><strong>Tony</strong>:哦,吓我一跳!那我问你几个专业问题吧!你知道什么叫类吗?</p>
<p><strong>求职者1</strong>:累?俺这人干活实在哩很,俺不知道啥叫累</p>
<p><strong>助理</strong>: 那你知道什么叫对象吗?</p>
<p>(<strong>求职者1</strong>不好意思,呵呵笑了)</p>
<p><strong>求职者1</strong>: 嘿嘿,这个俺当然知道,不过老丝儿你放心,男人大丈夫先立业再成家!俺要是入了职,心思全在工作上!公司一天不上市,俺就一天不找对象!</p>
<p><strong>Tony</strong>:(生气!)你这都是什么牛头不对马嘴的回答!最后再问你一个问题,你知道多态吗?</p>
<p><strong>求职者1</strong>: (生气!)堕胎?我跟你说你这个问题很过分!这和俺的工作有什么关系吗?!俺这个人很有原则的我跟你讲,俺绝对不会让心爱的女人去堕胎!</p>
<p><strong>Tony</strong>: 出去出去!把他给我轰走!(<strong>求职者1</strong>被<strong>助理</strong>推出面试房间)</p>
<p><strong>求职者1</strong>:哎哎哎,你别动手哎老师儿</p>
<p><strong>Tony</strong>:这就是你说的非常靠谱的人?(有点生气)</p>
<p><strong>助理</strong>:<strong>Tony</strong>老师,你放心,下一个肯定没问题,肯定没问题!</p>
<p>(<strong>助理</strong>赶忙擦擦汗)</p>
<p><strong>Tony</strong>:那还不赶紧去喊人进来!</p>
<p><strong>助理</strong>:好的,好的,我去喊</p>
<p>(<strong>助理</strong>跑到了门口),</p>
<p><strong>助理</strong>:下一位面试者,请进!</p>
<blockquote>
<p><strong>求职者2</strong>很阳刚气的进到面试室。(先来一段 B-Box ,一分钟左右)</p>
</blockquote>
<p><strong>Tony</strong>:小伙子挺帅气的啊,你这段 B-Box 不错呀,先作下自我介绍吧!</p>
<p><strong>求职者2</strong>:( gay 里 gay 气)我呀 来自 America ,我中文名叫小禹禹,我的英文名字叫 Jenny ,人家是一个混血儿呢</p>
<p>(<strong>Tony</strong>和<strong>助理</strong>被吓到)</p>
<p><strong>助理</strong>:混血?我怎么没看出来?</p>
<p><strong>求职者2</strong>:这位小姐姐可真有意思,我这是国内混血,我爸是河北人,我妈是河南人,我可不就是混血嘛</p>
<p><strong>Tony</strong> : 好么,跨省混啊!那既然你从美国回来,你一定对国外最新的前端技术有所了解,你能给我们讲讲吗?</p>
<p><strong>求职者2</strong>:那你可问对人了,前端嘛,就是人的脸面,我知道美国割双眼皮和抽脂可非常的不错哦,对了你看我刚做的鼻子,可是找了最专业的医院做的呢,花了好几千呢!</p>
<p><strong>助理</strong>:美元吗?</p>
<p><strong>求职者2</strong> :日元!</p>
<p><strong>Tony</strong>:在美国怎么还用日元?</p>
<p><strong>求职者2</strong>:外包出去了嘛!( 边说,边补妆 )</p>
<p><strong>助理</strong> : (一脸嫌弃) 你知道前端是做什么的嘛?</p>
<p><strong>求职者2</strong>:前端不就是前台嘛?我这么漂亮,一定能撑起咱们公司的门面。</p>
<p><strong>Tony</strong>:我们这是前端开发,不是什么前台!给我出去!</p>
<p><strong>求职者2</strong>:哼,不行就不行,你凶什么凶,老娘还看不上你们这呢!</p>
<p>(<strong>求职者2</strong>边说边猫步退场)</p>
<p><strong>Tony</strong>:你能再不靠谱点吗?</p>
<p><strong>助理</strong>: <strong>Tony</strong> 老师,消消气,消消气哈 ,刚才那两个是太缺心眼了,下一个!下一个肯定没问题!我保证。</p>
<p><strong>助理</strong>:下一位面试者请进!</p>
<blockquote>
<p>(<strong>求职者3</strong> 戴头套进入)</p>
</blockquote>
<p><strong>助理</strong> : 你好,请你做下自我介绍吧!</p>
<p><strong>求职者3</strong> :面试官好, 我姓谢,单名一个顶字。您看我这模样就知道 我是一名应届生啦(摸头发),我今天是来应聘 Web 开发工程师的。</p>
<p><strong>Tony</strong> : 谢顶同学你好,你是刚从老年大学毕业的吧? 我看简历上你可是有三年工作经验,你一个应届毕业生,哪里来的三年。</p>
<p><strong>求职者3</strong>: 是这样,我在上一家公司实习了半年。</p>
<p><strong>助理</strong> :那怎么就三年了呢?</p>
<p><strong>求职者3</strong>: 你不知道呀, 别的公司都是9/9/6, 我实习的公司是10/10/7 ,四舍五入一下,说三年还算少了!</p>
<p><strong>Tony</strong> : 没听说过还有10/10/7的,既然你是应届生,你觉得你有什么优点吗?</p>
<p><strong>求职者3</strong>:我的优点就是,我能给大家带来快乐!</p>
<p><strong>助理</strong>:为什么呢?</p>
<p><strong>求职者3</strong>:因为看过我写的代码的人,都笑了。</p>
<p><strong>Tony</strong>: (冷笑)好吧。。。我问你个简单的问题,树上有十只鸟,开枪打死一只,还剩几只?</p>
<p><strong>求职者3</strong>:枪上有消音器吗?</p>
<p><strong>助理</strong>:没有。</p>
<p><strong>求职者3</strong>: 枪声有多大?</p>
<p><strong>助理</strong>:80-100 分贝。</p>
<p><strong>求职者3</strong>: 在这个城市里打鸟犯不犯法?</p>
<p><strong>助理</strong>: 不犯。</p>
<p><strong>求职者3</strong>: 树上的鸟,有没有聋子?</p>
<p><strong>助理</strong>: 没有。</p>
<p><strong>求职者3</strong>: 有没有关在笼子里的?</p>
<p><strong>助理</strong>: 没有。</p>
<p><strong>求职者3</strong>: 有没有残疾的或饿的飞不动的鸟?</p>
<p><strong>助理</strong>: 没有。</p>
<p><strong>求职者3</strong>: 算不算怀孕肚子里的小鸟?</p>
<p><strong>助理</strong>: 不算。</p>
<p><strong>求职者3</strong>: 打鸟的人眼有没有花?保证是十只?</p>
<p><strong>助理</strong>: 没有花,就十只。拜托,你告诉我还剩几只就行了</p>
<p>(<strong>Tony</strong>和<strong>助理</strong>做不耐烦状,)</p>
<p><strong>求职者3</strong>: 有没有傻的不怕死的?</p>
<p><strong>Tony</strong>: 都怕死。</p>
<p><strong>求职者3</strong>: 会不会一枪打死两只?</p>
<p><strong>助理</strong>: 不会。</p>
<p><strong>求职者3</strong>:会不会打死一只,另外一只跟着殉情?</p>
<p><strong>Tony</strong>:不会。</p>
<p><strong>求职者3</strong>: 所有的鸟都可以自由活动吗?</p>
<p><strong>助理</strong>: 完全可以。</p>
<p><strong>求职者3</strong>: 如果您的回答没有骗人,(满怀信心的说)打死的鸟要是挂在树上没掉下来,那么就剩一只,如果掉下来,就一只不剩。</p>
<p><strong>Tony</strong>:你回答一道题,得急死我们。不过 我们正需要你这样严谨的程序员,你明天就来上班吧!你最后还有什么问题吗?</p>
<p>(<strong>求职者3</strong>开心地与<strong>Tony</strong>握手道谢)</p>
<p><strong>求职者3</strong>:我有一个异父异母的亲妹妹就在你们公司,她说她那个老师不怎样,总是克扣她工钱,还非得给自己取一个英文名。我能不能不去他的团队?</p>
<p><strong>Tony</strong> : 你说的这个人是不是叫 <strong>Tony</strong> !</p>
<p><strong>求职者3</strong>:对对,就是叫 <strong>Tony</strong> !还有&hellip;&hellip;&hellip;&hellip;</p>
<p><strong>Tony</strong> : (生气地紧接着问) 还有什么?</p>
<p><strong>求职者3</strong>: (冲着<strong>助理</strong>) 妹妹!还有什么来着?我给忘了?</p>
<p><strong>助理</strong>:谁是你妹!瞎叫什么?</p>
<p>(<strong>助理</strong>说着,冲着<strong>求职者3</strong>摆手,还冲<strong>Tony</strong>笑嘻嘻)</p>
<p><strong>Tony</strong> :(对着<strong>助理</strong>生气道)原来你就是他妹妹啊!</p>
<p><strong>助理</strong>:老师,你听我解释啊,我!</p>
<p><strong>Tony</strong> : 别说了, 你被fire了!你们俩现在,立刻,马上从这里给我出去!</p>
<p>(<strong>助理</strong>和<strong>求职者3</strong>被<strong>求职者1</strong>和<strong>求职者2</strong>拖下场)</p>
<p>(<strong>助理</strong>、<strong>求职者3</strong>边退场边喊道)</p>
<p><strong>助理</strong>:别啊!老师,你听我解释!</p>
<p><strong>求职者3</strong>: 老师,发生了什么?我明天几点来上班啊?</p>
<p><strong>Tony</strong>:唉,看来是招不到人了,我还是去继续玩我的三国志大战吧!</p>
<p>全体入场集体舞或者合唱</p>
<p>最后谢幕:祝大家新年快乐,万事如意!</p>
<hr />
<h3 id="小品视频">小品视频</h3>
<video controls >
<source src="http://zhaochaoyue.com/img/new_year_party_play.MP4" type="video/MP4">
</video>
</description>
</item>
<item>
<title>安汉纪念馆</title>
<link>http://zhaochaoyue.com/project/anhan-website/</link>
<pubDate>Sun, 15 Jul 2018 00:00:00 +0800</pubDate>
<guid>http://zhaochaoyue.com/project/anhan-website/</guid>
<description></description>
</item>
<item>
<title>谷歌Mobile Web Specialist证书备考指南</title>
<link>http://zhaochaoyue.com/post/7-14/</link>
<pubDate>Sat, 14 Jul 2018 13:52:14 +0800</pubDate>
<guid>http://zhaochaoyue.com/post/7-14/</guid>
<description>
<blockquote>
<p>2017年8月,谷歌发布了专门针对web开发人员的Mobile Web Specialist考试,考试形式为四个小时的在线编程和结尾的在线面试,考试费用为99美元,考试通过后会在45天内收到电子证书。详细考试信息和报名地址见<a href="https://developers.google.com/training/certification/mobile-web-specialist/" target="_blank">Google Mobile Web Specialist考试官网</a>。</p>
<p>官方文档介绍此考试是为具有3至4年前端开发经验的程序员设计的,谷歌官方为考试内容划定了复习范围。本文主要参考资料为考试官网的<a href="https://developers.google.com/training/certification/mobile-web-specialist/StudyGuide_MobileWebSpecialist.pdf" target="_blank">Study Guide</a>。</p>
</blockquote>
<h2 id="目录">目录</h2>
<ol>
<li>网站布局和样式基础</li>
<li>前端网络</li>
<li>无障碍</li>
<li>渐进式web应用</li>
<li>性能优化与缓存</li>
<li>测试与调试</li>
<li>ES2015概念和语法</li>
<li>移动网页表单</li>
</ol>
<h3 id="一-网站布局和样式基础">一、网站布局和样式基础</h3>
<p>无论使用何种设备,用户都希望看到具有响应式和视觉吸引力的网站。网络应用的布局和样式必须响应现有的显示,并且持续提供直观的功能。你将按照要求使用HTML、CSS和JavaScript来建造包括以下几项的响应式布局和样式:</p>
<ol>
<li>使用原生JavaScript来访问和操作DOM元素;</li>
<li>恰当的document type声明和viewpoint标签;</li>
<li>响应式的CSS grid布局;</li>
<li>使用媒体查询来提供不同屏幕尺寸的流体断点;</li>
<li>使用多媒体标签来显示视频或播放音频;</li>
<li>通过移动设备尺寸和分辨率进行调整的响应式图片;</li>
<li>任意平台上的包含大量点击目标的触摸和鼠标事件;</li>
</ol>
<p>学习资料(官方):</p>
<ol>
<li><a href="https://developers.google.com/web/fundamentals/design-and-ux/responsive/" target="_blank">Responsive Web Design</a></li>
<li><a href="https://css-tricks.com/snippets/css/a-guide-to-flexbox/" target="_blank">A Complete Guide to Flexbox</a></li>
<li><a href="https://developer.mozilla.org/zh-CN/docs/Web/Guide/CSS/Media_queries" target="_blank">Using medea queries</a></li>
<li><a href="https://developer.mozilla.org/zh-CN/docs/Learn/HTML/Multimedia_and_embedding/Video_and_audio_content" target="_blank">Video and audio content</a></li>
<li><a href="https://cn.udacity.com/course/responsive-images--ud882" target="_blank">Responsive Images by Google</a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent" target="_blank">Supporting both TouchEvent and MouseEvent</a></li>
<li><a href="https://developer.mozilla.org/zh-CN/docs/Web/API/Touch_events" target="_blank">Touch events</a></li>
</ol>
<h3 id="二-前端网络">二、前端网络</h3>
<p>由于用户互动是基于可信赖的高效网络请求,你将被要求证明自己会通过以下方式使用JavaScript来建立可靠的前端网络协议:</p>
<ol>
<li>使用fetch()请求数据;</li>
<li>检查响应参数,并将数据解析成可用的格式;</li>
<li>将响应的数据渲染成页面;</li>
<li>使用method和body参数配置POST请求到数据库;</li>
<li>根据服务器的响应头,使用正确配置的跨域资源分享协议(CORS)的fetch请求;</li>
<li>使用promise链来处理fetch()请求错误;</li>
<li>使用调试和开发者工具诊断网络问题;</li>
</ol>
<p>学习资料(官方):</p>
<ol>
<li><a href="https://developers.google.com/web/updates/2015/03/introduction-to-fetch" target="_blank">Introduction to fetch()</a></li>
<li><a href="https://developer.mozilla.org/zh-CN/docs/Web/API/Fetch_API/Using_Fetch" target="_blank">Using Fetch()</a></li>
<li><a href="https://davidwalsh.name/fetch" target="_blank">David Walsh&rsquo;s blog on fetch</a></li>
<li><a href="https://jakearchibald.com/2015/thats-so-fetch/" target="_blank">Jake Archibald&rsquo;s blog on fetch</a></li>
<li><a href="https://developers.google.com/web/fundamentals/primers/promises" target="_blank">JavaScrip Promise: an Introduction</a></li>
<li><a href="https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS" target="_blank">HTTP access control(CORS)</a></li>
</ol>
<h3 id="三-无障碍">三、无障碍</h3>
<p>网页和网络应用应该为所有人提供无障碍访问,包括那些具有视力、行动、听力和认知障碍的人。使用HTML、CSS、Javascript,你会被要求展示你可以使用如下方式在你的网页和应用中做出无障碍访问的最佳实践:</p>
<ol>
<li>使用具有逻辑的tab顺序来进行tab导航</li>
<li>使用跳过导航链接绕过导航栏和旁边</li>
<li>避免页面上隐藏的内容阻挡导航栏</li>
<li>使用能够提供页面逻辑结构的头部标签</li>
<li>使用可视化内容的替代文本,比如alt, <label>, aria-label, 和 aria-labelledby</li>
<li>在所有元素上应用对比色,并遵守最佳的无障碍实践</li>
<li>有紧急信息时候使用aria-live来及时提醒用户</li>
<li>使用语义标记在适当时保持内容和表示分离</li>
</ol>
<p>学习资料(官方):</p>
<ol>
<li><a href="https://developers.google.com/web/fundamentals/accessibility/" target="_blank">Web Fundamentals – Accessibility</a></li>
<li><a href="https://www.udacity.com/course/web-accessibility--ud891" target="_blank">Web Accessibility</a></li>
<li><a href="https://developer.mozilla.org/zh-CN/docs/learn/Accessibility/Mobile" target="_blank">Mobile Accessibility</a></li>
<li><a href="https://developers.google.com/web/fundamentals/accessibility/focus/using-tabindex" target="_blank">Using tabindex</a></li>
<li><a href="https://developers.google.com/web/fundamentals/accessibility/focus/" target="_blank">Focus</a></li>
<li><a href="http://webaim.org/techniques/skipnav/" target="_blank">Skip Navigation Links</a></li>
<li><a href="https://developer.mozilla.org/zh-CN/docs/Web/Accessibility/ARIA" target="_blank">ARIA</a></li>
</ol>
<h3 id="四-渐进式web应用">四、渐进式web应用</h3>
<p>用户希望原生应用程序可脱机使用,并提供可以从他们的主页启动的功能丰富的体验。 你会被要求显示你可以通过以下方式使用service worker(服务工作线程),HTML和JavaScript构建类似于渐进式Web应用程序的功能原生应用程序:</p>
<ol>
<li>开发一个可以离线使用的web应用,并通过service worker来缓存元素</li>
<li>存储默认显示方向、主题颜色、显示图标(添加到主屏幕)和Web应用程序清单中的启动画面(或使用元标记)</li>
<li>将关键应用程序功能和UI分离到可以独立于内容加载的应用程序shell中</li>
</ol>
<p>学习资料(官方):</p>
<ol>
<li><a href="https://developers.google.com/web/progressive-web-apps/" target="_blank">Progressive Web Apps</a></li>
<li><a href="https://developers.google.com/web/ilt/pwa/" target="_blank">Progressive Web Apps Training</a></li>
<li><a href="https://developers.google.com/web/fundamentals/architecture/app-shell" target="_blank">Web Fundamentals - The App Shell Model</a></li>
<li><a href="https://developers.google.com/web/fundamentals/codelabs/your-first-pwapp/" target="_blank">Your First Progressive Web App</a></li>
<li><a href="https://developer.mozilla.org/zh-CN/docs/Web/API/Service_Worker_API/Using_Service_Workers" target="_blank">Using Service Workers</a></li>
</ol>
<h3 id="五-性能优化与缓存">五、性能优化与缓存</h3>
<p>尽管网络信号很差甚至缺失,用户仍然要求移动页面能够瞬间加载。因为很多用户都会面临高昂的流量费用,你必须减小应用的数据流量从而尽可能加快网页加载时间。你将被要求证明自己可以通过如下方式来处理网页性能审计的问题来减小页面加载时间以及维护一个响应式的用户体验。</p>
<ol>
<li>使用专用的Web worker来防止主线程阻塞</li>
<li>通过以下方式来提供一个优化过的关键渲染路径:
<ol>
<li>使用压缩或缩小过的JavaScript、HTML和CSS来减少渲染阻塞</li>
<li>在必要的页面使用行内CSS样式,按需求使用异步的方式加载额外的样式</li>
<li>仅在必要的时候使用行内JavaScript来初始化页面</li>
<li>有秩序的加载其余关键性资源,提前下载全部关键性资产来缩短关键路径长度</li>
<li>减少DOM层级来最小化浏览器布局/回流时间</li>
<li>使用浏览器的开发者工具来诊断网页在移动设备上的性能问题</li>
<li>当资源准备就绪时,提前获取可加载的文件,为有意义的互动腾出时间</li>
<li>提供适合Web应用程序数据持久性的客户端存储需求
<ul>
<li>session状态管理</li>
<li>基于其加载时间和离线功能的影响来管理文件缓存</li>
<li>使用IndexedDB 来储存离线模式下的动态内容</li>
</ul></li>
</ol></li>
</ol>
<p>学习资料(官方):</p>
<ol>
<li><a href="https://www.udacity.com/course/offline-web-applications--ud899" target="_blank">Offline Web Applications by Google</a></li>
<li><a href="https://developers.google.com/web/fundamentals/performance/" target="_blank">Web Fundamentals - Performance</a></li>
<li><a href="https://jakearchibald.com/2014/offline-cookbook/" target="_blank">The Offline Cookbook</a></li>
<li><a href="https://developer.mozilla.org/zh-CN/docs/Web/API/Cache" target="_blank">Cache -MDN</a></li>
<li><a href="https://developer.mozilla.org/zh-CN/docs/Web/API/Storage" target="_blank">Storage</a></li>
<li><a href="https://www.smashingmagazine.com/2010/10/local-storage-and-how-to-use-it/" target="_blank">Local Storage And How To Use It On Websites</a></li>
<li><a href="https://developer.mozilla.org/zh-CN/docs/Web/API/IndexedDB_API" target="_blank">IndexedDB API</a></li>
<li><a href="https://developers.google.com/web/tools/chrome-devtools/network-performance/" target="_blank">Get Started with Analyzing Network Performance in Chrome DevTools</a></li>
</ol>
<h3 id="六-测试与调试">六、测试与调试</h3>
<p>开发人员通常在高度迭代的部署环境中工作,依靠广泛的测试和调试以保持功能和代码完整性。你将会被要求证明你可以通过以下方法验证预期的行为并诊断常见的web应用程序bug:</p>
<ol>
<li>编写单元测试,首先验证一个功能的预期行为,然后迭代修改其代码,直到它通过这些测试</li>
<li>在复杂的功能中设置断点来确定与预期功能不符合的地方</li>
<li>使用console logs来输出相关的调试信息</li>
<li>根据用户报告的问题复现并修复bug</li>
</ol>
<p>学习资料(官方):</p>
<ol>
<li><a href="https://developers.google.com/web/tools/chrome-devtools/javascript/" target="_blank">Get Started with Debugging JavaScript in Chrome DevTools</a></li>
<li><a href="https://developers.google.com/web/tools/chrome-devtools/console/console-write" target="_blank">Diagnose and Log to Console</a></li>
<li><a href="https://developers.google.com/web/fundamentals/codelabs/debugging-service-workers/" target="_blank">Debugging Service Workers</a></li>
</ol>
<h3 id="七-es2015概念和语法">七、ES2015概念和语法</h3>
<p>Web开发人员必须掌握让代码更简单更易读的JavaScript最新的功能。 因为可以使用polyfill来实现在不受支持的浏览器中编写 JavaScript ES2015的代码,开发人员开始使用新的功能和语法具有了更强大的动机。 您将被要求通过以下方式表明您理解并可以编写ES2015JavaScript代码:</p>
<ol>
<li>使用promise语法来创建异步功能并集成优雅的错误处理功能</li>
<li>使用let、var、const来建立具有块级、函数级和一成不变的变量</li>
<li>包含字符串插值和多行字符串的字符串文字</li>
<li>使用箭头函数来创建同步功能并使用无限制的this</li>
<li>使用函数默认参数来为没有参数的函数初始化默认值</li>
<li>在each函数中使用可以遍历任意对象的for&hellip;of循环</li>
<li>使用允许任意键值对的maps,包括可循环且包含非字符串键值的键值对</li>
<li>仅设置唯一的、可降低性能的迭代元素</li>
</ol>
<p>学习资料(官方):</p>
<ol>
<li><a href="https://developers.google.com/web/fundamentals/primers/promises" target="_blank">JavaScript Promises: an Introduction</a></li>
<li><a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise" target="_blank">Promise</a></li>
<li><a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/template_strings" target="_blank">Tempate literals</a></li>
<li><a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions/Arrow_functions" target="_blank">Arrow Functions</a></li>
<li><a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions/Default_parameters" target="_blank">Default parameters</a></li>
<li><a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/for...of" target="_blank">For&hellip;of</a></li>
<li><a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Map" target="_blank">Map</a></li>
<li><a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Set" target="_blank">set</a></li>
</ol>
<h3 id="八-移动网页表单">八、移动网页表单</h3>
<p>填写在线表单,尤其是在移动设备上,可能很困难。 为了改善用户体验,您将被要求证明您可以通过以下方式使用基本的HTML5,JavaScript和HTML5
Constraint Validation API,来设计高效且安全的HTML Web表单:</p>
<ol>
<li>与input相关的合适的label标签</li>
<li>设置恰当的input属性,包括type、name和autocomplete</li>
<li>为移动表单设置的具有大面积触摸目标的input</li>
<li>使用datalist元素来为用户提供具有提示内容的input</li>
<li>input和DOM元素的前端验证,包括:
<ul>
<li>使用input的伪类来实时的验证表单错误</li>
<li>提交前的表单验证(Constraint Validation API)</li>
</ul></li>
</ol>
<p>学习资料(官方):</p>
<ol>
<li><a href="https://developers.google.com/web/fundamentals/design-and-ux/input/forms/" target="_blank">Create Amazing Forms</a></li>
<li><a href="https://developer.mozilla.org/zh-CN/docs/Web/Guide/HTML/HTML5/Constraint_validation" target="_blank">Constraint Validation</a></li>
<li><a href="https://www.sitepoint.com/client-side-form-validation-html5/" target="_blank">Client-Side Form Validation with HTML5</a></li>
<li><a href="https://developer.mozilla.org/zh-CN/docs/Learn/HTML/Forms/Data_form_validation" target="_blank">Data form validation</a></li>
<li><a href="https://developer.mozilla.org/zh-CN/docs/Learn/HTML/Forms" target="_blank">HTML Forms</a></li>
</ol>
</description>
</item>
<item>
<title>安汉生平事迹考略</title>
<link>http://zhaochaoyue.com/post/4-12/</link>
<pubDate>Fri, 01 Jun 2018 13:52:14 +0800</pubDate>
<guid>http://zhaochaoyue.com/post/4-12/</guid>
<description>
<blockquote>
<p>最开始我只是对安汉抱有强烈的好奇心,不知不觉就开始研究他了,经历了一年的资料收集、半年的论文写作和一年的投稿历程,这篇文章终于得以在今年6月份的《渭南师范学院学报》上正式发表,看到自己的文章登上学术期刊,真的很欣慰。我希望这篇专业的历史考据论文可以减少人们对安汉的神化和污化,让大家看到一个最真实的安汉。</p>
</blockquote>
<p><strong>摘要</strong>:安汉是民国著名农垦专家,对民国时期西北经济开发做出了重要贡献,他在农学教育、农垦学理论和农垦经济管理领域亦有非凡建树。安汉的生平事迹颇具传奇色彩,方志文献虽多有记述,却一直存在隐匿不清之处,且相互矛盾,严重影响了安汉研究的展开。通过援引新发现的档案和文献,匡正了安汉的出生日期、出国日期和死亡日期,补充了安汉留学法国时期的学习情况和重大事件,对安汉回国担任的教职和他与国立西北农林专科学校的关系进行了考证,并详细研究了安汉在黎坪垦区遇难的情况。</p>
<p><strong>关键词</strong>:安汉;勤工俭学;民国西北开发;黎坪垦区;</p>
<hr />
<p>安汉(1897-1943),字杰三,陕西南郑县梁山人,民国著名农垦专家。早年留法学农,回国后积极倡导开发西北,多次参加考察西北农业的活动,曾任西北开发协会主席,著有《西北垦殖论》和《西北农业考察》,后期担任国营陕西黄龙山垦区管理局副局长和国营陕西黎坪垦区管理局局长。在黎坪垦区任上,安汉受到南郑县县长孙宗复和鄂陕甘边区警备总司令祝绍周的诬害,被以“包庇种烟和贪污”的罪名逮捕并枪决。此案一度震惊朝野,对陕西乃至全国都产生了较为深远的影响,是抗战时期发生的一大冤案。</p>
<p>安汉是民国时期难得的既有海外留学知识背景,又信奉实业救国的政府高级官员。他为人刚正不阿,铮铮铁骨,深得高级知识分子的敬佩。国民党元老于右任赠安汉对联“天地有正气,园林无伪情”。安汉的生平事迹散见于地方史志中,但各家记载彼此抵牾,失于简略。有关安汉留学法国、从事农学教育和黎坪垦区蒙难的情况,一直不得其详。本文通过新发现的档案和文献,对安汉生平事迹中一系列重要问题予以考辨,以纠正长期以来史料记载的谬误。</p>
<h2 id="一-早年情况">一、 早年情况</h2>
<h3 id="一-出生年份">(一) 出生年份</h3>
<p>安汉的出生年份存在争议,地方志向来有两种说法。《陕西省志·农牧志》 <strong><sup>[1]</sup></strong> 、《汉中地区志》 <strong><sup>[2]</sup></strong> 、《黄龙县志》 <strong><sup>[3]</sup></strong> 和《陕西近现代名人录》 <strong><sup>[4]</sup></strong> 记载为1896年,《陕西省志·人物志》 <strong><sup>[5]</sup></strong> 、《陕西省志·烟草志》 <strong><sup>[6]</sup></strong> 和《南郑县志》 <strong><sup>[7]</sup></strong> 记载为1897年。查找民国档案,在实业部人事档案中发现两份关于安汉的资料,其中记录于1931年1月的《现任公务员家庭状况》中的部分信息如下:</p>
<blockquote>
<p>官署:实业部;姓名:安汉;性别:男;别号:杰三;现职:技士;年龄:三十三岁;籍贯:陕西南郑县;现住址:南京细柳巷廿二号;永久住址:本县西街安宅。 <strong><sup>[8]</sup></strong></p>
</blockquote>
<p>记录于1933年4月的《现任公务员资格审查表》的相关信息如下:</p>
<blockquote>
<p>官署:实业部;姓名:安汉;别号:杰三;性别:男;年龄:三十五岁;籍贯:陕西南郑县;住址:本京新街口兴业里十三号。 <strong><sup>[8]</sup></strong>
根据此档案的记录时间与档案中记载的安汉年龄可推算出,安汉出生年份应为1897年,且生日在4月之后。</p>
</blockquote>
<h3 id="二-出生日期">(二) 出生日期</h3>
<p>遗憾的是,目前公开出版的地方志和史书中尚未有关于安汉出生月份和日期的记录。不过,在南郑县当地有几本关于安汉的内部文献可以拿来参考。其中,《南郑县文史资料》第五辑“安汉与黎坪垦殖”一书中记载了安汉的出生日期,原文如下:</p>
<blockquote>
<p>安汉,字杰三,南郑县梁山乡人,生于公元1896年6月(农历五月初五),时清光绪22年。 <strong><sup>[9]</sup></strong></p>
</blockquote>
<p>此书由南郑县政协文史资料研究委员会编撰,于1988年10月出版,内部印发。虽然对安汉的出生年份记载有误,但这是第一个记录有安汉出生日期的文献。2007年2月,南郑县政协又出版了一本《陕西名人—西部开发先行者安汉》,其中对安汉生平的记载为:</p>
<blockquote>
<p>清光绪二十二年农历五月初五(公元1896年6月15日)端阳节那天,安怀善喜得第三个公子。家族亲友经过议论,取名“汉”,字“杰三”。 <strong><sup>[10]</sup></strong></p>
</blockquote>
<p>此外,安汉在南郑县的墓碑背后刻有《安汉生平简述》,相关文字如下:</p>
<blockquote>
<p>安汉,字杰三,南郑县梁山人,生于一八九六年农历五月初五,卒于一九四三年农历十月二十七日,享年四十七岁。</p>
</blockquote>
<p>可见,农历五月初五是安汉生日的唯一记载。</p>
<p>虽然汉中当地关于安汉的资料都指出安汉生于1896年,但这些资料大多是依据安汉后人和知情者的回忆所编,在严谨性和可信度上无法与民国实业部人事档案相提并论。因此,综合上文对安汉出生年份的考证可知,安汉的确切出生日期应为1897年农历五月初五,即公历1897年6月4日。</p>
<h3 id="三-家庭与初等教育">(三) 家庭与初等教育</h3>
<p>安汉生于南郑县一户富裕的地主家庭,父亲安辅国,字怀善,在政界就职 <strong><sup>[8]</sup></strong> ,具体职位已难确考。安汉是安辅国和妻子赵氏6个子女中的第四个。安汉早年就读于汉中联立中学,之后前往西安,进入陕西省立甲种农业学校蚕科学习 <strong><sup>[8]</sup></strong> ,这所学校的前身是1912年成立的三秦公学的蚕桑专修科和蚕桑简易科,之后相继改为陕西省农业学校、陕西省立第一职业学校和西安初级农业职业学校。甲种表示该校为省立且施行完全的普通实业教育(乙种是县立,施行简易实业教育),学生以就业为目的,毕业后不予升学机会 <strong><sup>[11]325</sup></strong> 。安汉1918年从该校毕业。显然,他并不满足于毕业后直接就业,而是选择了出国深造。</p>
<h2 id="二-留学法国">二、 留学法国</h2>
<p>国内史志资料对安汉留学法国情况的记载只有寥寥数句,仅指出了安汉的出国时间、就读学校和取得的学历,且各家说法并不统一。例如,关于安汉在法国就读学校的名称,《陕西省志·人物志》中记载为“朗西大学农学院” <strong><sup>[5]480</sup></strong> ,而《黄龙县志》却说是“里昂大学农学院(森林学硕士)” <strong><sup>[3]638</sup></strong> 。本文详细研究保存在法国国家图书馆中的一手史料,获得了全新的发现。</p>
<h3 id="一-出发日期">(一) 出发日期</h3>
<p>《陕西省志·人物志》、《黄龙县志》和《陕西近现代名人录》中,关于安汉留学法国的出发日期的记载都是“1918年9月” <strong><sup>[3]638</sup></strong> 、 <strong><sup>[4]88</sup></strong> 、 <strong><sup>[5]480</sup></strong> 。然而,考证了留法勤工俭学相关史料后发现,安汉是1920年12月15日与华法教育会组织的第二十一批留法勤工俭学生一起出发的 <strong><sup>[12]128</sup></strong> 。不过他既不属于“勤工”,也不属于“俭学” <strong><sup>[12]325</sup></strong> ,而是“国民党省级特派员” <strong><sup>[13]461</sup></strong> 。安汉乘坐的法属“智利号”邮轮从上海出发,途径香港、西贡、新加坡、科伦坡、吉布提,最终于1921年1月20日抵达法国南部港口马赛,整个旅程共36天 <strong><sup>[12]136</sup></strong> 。</p>
<h3 id="二-就读学校情况">(二) 就读学校情况</h3>
<p>抵达法国后,安汉进入巴黎“榜来威克公学”学习。国内方志大多把这所学校等价于我国的“本科”,因此安汉就读的第二所学校自然被认为是培养硕士的院校。然而,这样简单地想象是不严谨的。虽然这所学校的具体情况已无从考证,但由于中法教育制度具有很大差别,仅从学校名称和入学时间来分析就可发现其中的错误。首先,“公学”(Public School)现在特指英国独特的精英教育学校,法国从未有过“公学”,“榜来威克公学”应属于当时翻译特例。其次,安汉在这所学校读了三年,根据学制可推测他读的是法国的Lycée。Lycée由拿破仑创建于1802年,是法国一种3年制的精英学校,现在表示高中。某些Lycée也含有大学预备班,属于高等教育。所以这所学校应称为“榜来威克高中”。</p>
<p>1923年秋,安汉考入了南锡农学与殖民学院的农学系(Institutagricole et colonial de Nancy)。该校创建于1901年,是法国的一座高等学府,专门培养能在东亚和非洲工作的农学家。该校注重培养学生在植物、动物、土壤、气候、风俗等方面的科学知识和技能,与南锡大学科学系有较深的渊源。现在这所学校已经更名为南锡国立农学与食品工业高等学校(<a href="http://ensaia.univ-lorraine.fr/en" target="_blank">Ecole Nationale Supérieure d&rsquo;Agronomie et des Industries Alimentaires Nancy</a>)。</p>
<h3 id="三-学习成绩">(三) 学习成绩</h3>
<p>从该校通报上可知,安汉的学习成绩并不算优秀。1923年,农学系一年级学生共有20人,安汉成绩位于中间,名列第11名 <strong><sup>[14]</sup></strong> 。1924年秋,安汉继续在该校上二年级。由于有4名学生退学,二年级的学生总数变为16名。这一年安汉的成绩有所下滑,仅排在第14名 <strong><sup>[15]</sup></strong> 。南锡农学与殖民学院的学制是两年,在第二年就要参加毕业考试。令人意外的是,安汉没有出现在1925年获得毕业文凭的学生名单中 <strong><sup>[16]</sup></strong> ,仅在1925年10月获得了南锡农学与殖民学院颁发的“高等农学教育学业证书”(Certificat d&rsquo;études Supérieures Agronomiques) <strong><sup>[17]</sup></strong> 。</p>
<p>这个“高等农学教育学业证书”到底是什么意思?经查询法国高等教育评分的相关资料后发现,早在1890年,法国教育部就颁布政令,确定了中等教育实施20分制。20分为满分,10分为及格分数。随后这一评分制度在法国中等教育和高等教育中得到普遍实施。对南锡农学与殖民学院来说,毕业成绩平均分12分以上的学生获得“工程师”文凭,平均分10-12分的学生获得“农学家”文凭,平均分10分以下的学生无法获得文凭,其中平均分8-10分的学生获得“高等农学教育学业证书”。这个证书表示学生修完了所有农学教育的课程,相当于结业证书或毕业证书。因此,地方志中说安汉是法国硕士毕业是不正确的,更恰当的记载应该是民国实业部的人事档案中的“法国南锡大学农学院毕业” <strong><sup>[8]</sup></strong> 。</p>
<h3 id="四-留法足迹">(四) 留法足迹</h3>
<p>安汉在法国度过了五、六年的时光,除了在校学习,他还参与了哪些活动呢?查找法国档案和文献中关于安汉的记载可谓大海捞针,所幸笔者还是找到了一鳞半爪。在南锡农学与殖民学院学习期间,安汉担任了南锡中国留学生协会的司库,负责财务工作 <strong><sup>[14]217</sup></strong> 。1924年,安汉加入了刚刚在法国成立的新中国农学会,是蚕学组、园艺组和应用植物组的组员 <strong><sup>[18]</sup></strong> 。此外,安汉在1924年10月加入了中国国民党 <strong><sup>[8]</sup></strong> 。</p>
<h2 id="三-教学生涯">三、 教学生涯</h2>
<h3 id="一-教职考证">(一) 教职考证</h3>
<p>安汉1927年回国后,相继担任了一些教职。地方志的记载不尽相同,归纳起来主要有:陕西省立第一职业学校校长、西安中山学院讲师、国立西北农林专科学校教授、金陵大学教授、北平中法大学任教、西北大学生物学教授等。档案方面来看,安汉真正有据可查的教职只有陕西省立第一职业学校校长和西安中山学院讲师 <strong><sup>[19]</sup></strong> 。陕西省立第一职业学校的前身是安汉的母校陕西省甲种农业学校。1927年,安汉就任该校校长,1930年6月提出辞呈 <strong><sup>[20]</sup></strong> 。西安中山学院是国民党与共产党合作在原西北大学的基础上建立起来的,1927年3月1日正式成立,但很快由于国共合作破裂,当年7月中旬学校就被迫解散了,该院不设系科,只设各种学习班 <strong><sup>[11]</sup></strong> 722,安汉应为农政班讲师。
为了彻底排除安汉在其他学校的任职经历,笔者仔细查阅了西北农林专科学校 <strong><sup>[21]</sup></strong> <strong><sup>[22]</sup></strong> <strong><sup>[23]</sup></strong> <strong><sup>[24]</sup></strong> 、北平中法大学 <strong><sup>[25]</sup></strong> 和私立金陵大学 <strong><sup>[26]</sup></strong> 相应年份的教职工名册,没有发现安汉的名字,因此可知这些教职确实是误传。此外,根据《陕西省志·教育志》的记载,民国时期的西北大学经历过两次举办,两次停办。第一次于民国元年创办到民国四年停办(1912-1915),办学仅三年多时间,第二次民国十三年创办到民国十七年停办(1924-1928),先后办学也只三年多时间 <strong><sup>[11]570</sup></strong> 。安汉1927年回国时西北大学正面临第二次停办,安汉当时除了陕西省立第一职业学校校长和西安中山学院讲师两份教职以外,还有众多行政职务在身,如国民革命军冯总司令部建设部农务处主任、驻陕于总司令部参议,以及陕西省建设厅科长 <strong><sup>[8]</sup></strong> ,况且安汉的专业是农学而非生物学,所以安汉担任西北大学生物学教授的记载也是误传。</p>
<h3 id="二-安汉与西农">(二) 安汉与西农</h3>
<p>安汉虽然不是国立西北农林专科学校的教师,但他与西农的关系却也值得考述一番。首先,安汉与西农的创始人国民党元老于右任的关系非常密切。1927年安汉刚回国,就受到于右任的重用,担任了国民军联军驻陕司令部参议 <strong><sup>[8]</sup></strong> ,后来于右任还多次向实业部、农林部举荐安汉 <strong><sup>[27]</sup></strong> 。第二,1934年7月安汉受到于右任的委派,担任了西农甘青宁三省农场筹备特派员 <strong><sup>[28]</sup></strong> ,并对西北农、林、牧各业进行了科学考察。安汉一行人从西安出发,历时四个多月,行程一万三千里,最终为西农选定了6处农业试验场 <strong><sup>[29]</sup></strong> 。第三,1936年4月,安汉与李自发合著的《西北农业考察》由西北农林专科学校出版发行,此书后来成为了西农的指定教材 <strong><sup>[7]</sup></strong> 。</p>
<p>此外,安汉曾于1934年在《开发西北》上发表《对西北农林专科学校设施之意见》一文,阐述了他对西农建校科学而详细的建议,包括教育方针、组织、学系与课程、设备、教员、招生、学生待遇等方面 <strong><sup>[30]</sup></strong> ,具有非常长远的眼光。安汉在文中多次称西农为“本校”,可见他极有可能参与了西农早期建校的事务。另外一篇文章更有意思,1935年,《西北问题》杂志连续刊载了《国立西北农林专科学校筹备经过及现况》的文章,安汉在连载的第一篇文章前写有按语如下,</p>
<blockquote>
<p>国立西北农林专校,业经中央决议创办,注意西北文化实业教育人士,无不关心及此。该校自民国二十二年秋季开始筹备以来,将近两年,现该校已作成总报告,内分设置、经费、教育及事业等项,凡筹备经过及进行情形,无不逐一详述。兹特介绍并稍作解注,由《西北问题》按期刊登,俾关心该校者得以先睹焉。杰三识 <strong><sup>[31]</sup></strong> 。</p>
</blockquote>
<p>《开发西北》和《西北问题》均是当时极具影响力的期刊,安汉在这两个期刊上发表关于西农的文章,不仅说明他十分关心西农的创建,而且体现出安汉与西农异常紧密的关系。尤其是安汉在有关西农建校筹备工作的文章前加按语,更非一般人所能为。因此可以说,虽然西农早期教职工名单中没有安汉,但在西农建校史上,安汉绝对可以称得上是一个功不可没的人物。</p>
<h2 id="四-黎坪垦区蒙难">四、 黎坪垦区蒙难</h2>
<p>现存方志资料对此案并无详细研究,虽然民间有不少当事人回忆录和纪念文章,但大都缺乏史料证据支持。笔者经过研究现存台湾中研院近代史档案馆的民国农林部档案,发现方志中对该案的具体日期节点和审理经过存在严重错误的记载,现就安汉蒙难的几个重要问题考证如下。</p>
<h3 id="一-案件背景">(一) 案件背景</h3>
<p>1938年3月,国营陕西黄龙山垦区成立,安汉被任命为垦区管理局副局长,自此开启了他5年多的垦区管理生涯。1939年,国民政府开始筹划设立陕西黎坪垦区,安汉得知后向上级申请希望能去黎坪垦区就职。因他从小在汉中长大,对当地情况较为熟悉,又曾受命亲自带队考察过黎坪垦区并提交了《黎坪垦区调查报告》,所以他的申请很快得到了黄龙山垦区管理局兼局长朱庆澜和陕西省主席蒋鼎文的支持。但是他们此时才得知,1939年8月25日上级已经决议通过任命赈济委员会秘书黄乃桢为黎坪垦区主任,于是又申请将两人对调。1939年11月,蒋介石批准了对调。1940年3月1日,安汉正式就任黎坪垦区主任 <strong><sup>[32]</sup></strong> 。</p>
<p>黎坪垦区地界陕西宁强、褒城、勉县、南郑与四川南江、广元6县之间,西起广元三道河,东迄褒城黄官岭,北至宁强元坝子,南至南江天场坪。交通困难,地势高,无霜期为150天,雨量丰沛,年降雨量达1000毫米至1250毫米,森林广布,土质肥美,矿产蕴藏甚富,山川秀丽,被称为“东方瑞士” <strong><sup>[33]</sup></strong> 。</p>
<p>在安汉和垦局工作人员的经营下,黎坪垦区经过三年多的发展取得了较为可观的成果。1943年8月,垦区人数达到5040人,开垦荒地46636亩,种植面积44160亩,收获产量27383担;垦区配套设施有国民小学2所,医务所1所,合作社和生产社26个,消费社2个,合作联社1个,互助合作社等 <strong><sup>[34]</sup></strong> 。</p>
<p>黎坪垦区地处川陕交界的山区,土匪出没无常,地方人事关系极其复杂。垦区管理局成立后,邻近县时常因为垦区划界和地方管辖权的问题与其产生纠纷,彼此时有争执。仅1943年上半年,农林部就处理了4起关于黎坪垦区管理局的案件。包括1起四川广元县起诉黎坪垦区侵犯管辖权的案件和3起宁强县控告垦区管理局越权干政的案件 <strong><sup>[35]</sup></strong> 。农林部派员详细调查后发现,这些纠纷大都查无实据,于是在1943年春计划将安汉调任,以免因地方之争影响公务,但是苦于找不到人顶替,“稍有技术资格的人员都不愿意来到这个安全毫无保障的政治漩涡之中,遂搁置。” <strong><sup>[27]</sup></strong></p>
<h3 id="二-案件爆发">(二) 案件爆发</h3>
<p>关于案件爆发时间,目前史志文献中对此案的记载都指出,安汉是在1943年“五月” <strong><sup>[1]</sup></strong> <strong><sup>[7]</sup></strong> 、“端阳节” <strong><sup>[2]</sup></strong> 、“端午节后” <strong><sup>[4]</sup></strong> <strong><sup>[5]</sup></strong> 被南郑县县长孙宗复带兵抓走的,但本文考察了农林部档案后发现,孙宗复带兵前往黎坪的时间是8月25日,扣押安汉的时间是8月28日。随后的9月3日,鄂陕甘边区警备总司令祝绍周给农林部部长沈鸿烈发去了电报,</p>
<blockquote>
<p>黎坪垦区武装庇种鸦片,即中心区之石马山、郑家院亦到处种烟,经先后派张高级参谋、魏专员及南褒沔宁四县长率队搜割拍照备查并先将该局长安汉监视,请速派员星夜来汉会同办理善后 <strong><sup>[27]</sup></strong> 。</p>
</blockquote>
<p>9月4日沈鸿烈回复祝绍周,“安汉包庇种毒至为骇异,将派本部视察团长陈惕庐赶赴黎坪调查” <strong><sup>[27]</sup></strong> 。同时,沈鸿烈致电陕西省主席熊斌,转发了祝绍周来电,请其详查真相。</p>
<p>9月5日,蒋介石发电报给沈鸿烈,言辞愤怒。</p>
<blockquote>
<p>据祝绍周司令电呈,黎坪垦区管理局局长安汉利用公款酿酒图利,包庇兵役抗粮抗捐,养匪自大,剥削垦民,包庇种烟,经派员查明该区中心农场石马山、郑家院等地种烟十五处,共计二百余亩之多,并有垦民及武装警兵守护,已将烟地拍照,烟苗运汉等语,查该局长安汉竟敢武装包庇种烟,自应尽法严惩,以维禁地,收该安汉及全案人犯物证,解渝交军法总监部审讯,免职安汉,查何人保荐 <strong><sup>[27]</sup></strong> 。</p>
</blockquote>
<p>9月6日,沈鸿烈接到黎坪垦区职员安仲峨(安汉兄长)从西安发来的电报,其中详细陈述了案件发生的经过。由此可知,农林部一早就已知道此案另有隐情,沈鸿烈当日即将此文转发给陕西省主席熊斌,请其并案详查,并派国家总动员会副处长董沐曾前往黎坪代理局务。安仲峨的电文如下:</p>
<blockquote>
<p>1943年8月25日,南郑县长孙宗复突率武装团众千余人,及电台炮械兵种向黎坪垦区急进,并将邮电封锁。抵黄官岭后又控报祝总司令以垦区戒备森严请准加派武力二营,26日入山遇川境过路烟犯即诬为垦民,28日又将南郑垦区办事处员工扣押,交通断绝,垦民逃散,生命危在旦夕。查垦区禁政且经呈请钧部转知川陕省府并分电第六区专员公署办理,其在垦区附近烟毒亦经铲拿有案。孙县长向因垦区划界纠纷与安局长有隙,今竟藉烟毒问题诬陷垦区,统兵入山,封锁交通。深恐事情扩大,特急电钧部迅赐呈院,并电陕省政府转饬依法办理,以维垦务。职安仲峨叩,未艳 <strong><sup>[27]</sup></strong> 。</p>
</blockquote>
<h3 id="三-罪名考证">(三) 罪名考证</h3>
<p>安汉到底被冠以什么样的罪名?各种文献的记载并不统一。例如,《陕西省志·人物志》将此案命名为“黎坪垦区武装种植鸦片案” <strong><sup>[5]</sup></strong> ,《南郑县志》中记载汉中警备司令部以“武装种烟” <strong><sup>[7]</sup></strong> 的罪名将安汉逮捕监禁,《汉中地区志》说安汉“私种鸦片” <strong><sup>[2]</sup></strong> ,《黄龙县志》更是指出安汉“通共” <strong><sup>[3]</sup></strong> 。那么事实到底如何?</p>
<p>根据农林部档案,安汉1943年9月被捕后,鄂陕甘边区警备司令部对其进行了审讯,并起草了《黎坪垦区管理局局长安汉包庇种烟及贪污案侦察报告》,其中详细记录了审讯结果。侦查报告共分“烟案”和“贪污”两部分。烟案部分由五个单独案件组成,包括1940年的“纵放贩卖鸦片犯陈朝祥一案”和“纵放贩烟犯谭振云、李洪元、罗光寿等一案”,1941年8月的“包庇郭福春、郭福元种烟案”,1942年8月的“包庇警卫队长王朝恩等种烟案”,以及1943年夏秋的“包庇垦殖队长郭福春等种烟案”。贪污部分包括以下罪状,“强征食粮”、“勒征柴炭”、“强征民夫”、“违禁酿”、“挪用公款开设木厂”和“捏造报销侵吞经费” <strong><sup>[36]</sup></strong> 。</p>
<h3 id="四-死亡日期">(四) 死亡日期</h3>
<p>安汉卒日,所有史料的记载都是1943年10月27日。然而笔者考证出安汉的确切死亡日期应为1943年11月3日。最直接的证据来源于当时在西安出版的报纸。1943年11月6日,西安三大报纸《西京日报》、《西北文化日报》和《秦风工商日报》分别转发了中央社关于安汉死讯的电文 <strong><sup>[37]</sup></strong> <strong><sup>[38]</sup></strong> <strong><sup>[39]</sup></strong> 。《西京日报》原文如下:</p>
<blockquote>
<p>【南郑三日电】前黎坪垦区管理局长安汉,于垦区内包庇纵容种植鸦片,经最高当局令,派军法执行副总监秦德纯,偕审判组长莅汉,审讯属实,电奉委座批准就地正法。秦副总监于奉电后,当转命川陕甘边区总司令部代为执行,总部当于三日晨五时,将该安汉绑赴汉中西关处决。(中央社) <strong><sup>[37]</sup></strong></p>
</blockquote>
<p>此外,农林部的档案也能够佐证。安汉被羁押后,陕西省民政厅户政督导员王黎昌受命查勘黎坪垦局烟苗情况,于10月14日到达汉中。案件结束后,王黎昌将该案详细处理经过写成报告发给重庆农林部,其中关于安汉死亡日期的记录如下:</p>
<blockquote>
<p>该案于十月二十三日晨公开审判,职被邀做省政府代表参加观审,当晚审结,执法总监部即电请委员长核示,于十一月一日电复到汉,秦副总监等于二日离汉返渝,三日由边区总部遵命将安汉执行枪决,并将其罪状布告周知 <strong><sup>[36]</sup></strong> 。</p>
</blockquote>
<p><br/></p>
<hr />
<p><strong>参考文献</strong></p>
<pre><code>1. 《陕西省志·农牧志》,陕西:陕西人民出版社,1993年,第692-693页。
2. 《汉中地区志》,陕西:三秦出版社,2005年,第2009-2011页。
3. 《黄龙县志》,北京:陕西人民出版社,1995年,第637-638页。
4. 《陕西近现代名人录》,陕西:西北大学出版社,1991年,第88-91页。
5. 《陕西省志·人物志》,陕西:陕西人民出版社,2005年,第480-481页。
6. 《陕西省志·烟草志》,陕西:陕西人民出版社,2006年,第566-567页。
7. 《南郑县志》,北京:中国人民公安大学出版社,1990年,第668页。
8. 《史浩然;安汉》,1931年2月-1936年2月,实业部档案17-02-051-03,台湾中央研究院近代史研究所档案馆藏。
9. 《南郑县文史资料·第五辑》,中国人民政治协商会议陕西南郑县委员会文史资料研究委员会编,1988年10月,第1页,汉中市档案馆藏。
10. 《陕西名人—西部开发先行者安汉》,中国人民政治协商会议陕西南郑县委员会文史资料研究委员会编,2007年2月,第2页,汉中市档案馆藏。
11. 《陕西省志·教育志》,陕西:三秦出版社,2009年,第325页。
12. 周永珍:《留法纪事:20世纪初中国留法史料辑录》,北京:国家图书馆出版社,2008年,第322页。
13. 郑名桢:《留法勤工俭学运动》,太原:山西高校联合出版社,1994年,第461页。
14. 《南锡农学与殖民学院通报》,1923年12月,第227页,法国国家图书馆藏。
15. 《南锡农学与殖民学院通报》,1924年12月,第286页,法国国家图书馆藏。
16. 《南锡农学与殖民学院通报》,1925年12月,第318页,法国国家图书馆藏。
17. 《南锡农学与殖民学院通报》,1936年6月,第694页,法国国家图书馆藏。
18. 《新中国农学会会务报告(第二次)》,1925年,里昂大学图书馆藏。
19. 《本厅职员名册及书记考试名册》,1929年2月,陕西省建设厅档案72-1-172,陕西省档案馆藏。
20. 《陕西省教育厅训令第四二二号》,《陕西教育周刊》,1930年6月,第3卷,第29期,第16页。
21. 《农专筹委会及筹备处聘书底稿、聘各单位负责人及备案专家》,1934年, 西北国立农学院档案84-2-24,陕西省档案馆藏。
22. 《农专1934年度教职员名册》,1935年7月, 西北国立农学院档案84-2-112,陕西省档案馆藏。
23. 《一九三五年农专聘书》,1936年, 西北国立农学院档案84-2-106,陕西省档案馆藏。
24. 《西农高职1936年度教职员一览表》,1937年4月, 西北国立农学院档案84-2-231,陕西省档案馆藏。
25. 《私立中法大学民国十四年到廿四年的聘书登记簿》,1925年1月1日到1935年12月31日,J026-001-00044,北京市档案馆藏。
26. 《私立金陵大学农学院概况》,1930年至1931年,MGTS/044335,国家图书馆微缩文献阅览室藏。
27. 《黎坪管理局局长安汉被控经过及处理》,1943年9月,农林部档案20-26-018-17,台湾中央研究院近代史研究所档案馆藏。
28. 《农专筹委会筹备处聘书底稿》,1934年7月, 西北国立农学院档案84-2-58,陕西省档案馆藏。
29. 《国立西北农林专校勘定农场》,《农业周报》第3卷第4期,1934年。
30. 安汉:《对于西北农林专科学校设施之意见》,《开发西北》第1卷第2期,1934年。
31. 《国立西北农林专科学校筹备经过及现况》,《西北问题》第2卷第13/14期,1935 年。
32. 《黎坪垦区人事》,1939年8月-1941年1月,经济部档案18-21-16-007-01,台湾中央研究院近代史研究所档案馆藏。
33. 《黎坪垦区近况》,《陕行汇刊》,第5卷第1期,1941年2月,第66页。
34. 王荣华,《危机中的转机:国民政府时期西北经济开发研究》,北京:中国社会科学出版社,2015年,第202页。
35. 《黎坪垦区管理局局长安汉被控》,1943年7月,农林部档案20-26-018-08,台湾中央研究院近代史研究所档案馆藏。
36. 《33年3月黎坪垦区管理局局长安汉包庇种烟及贪污案侦察报告》,1944年3月,农林部档案20-26-018—16,台湾中央研究院近代史研究所档案馆藏。
37. 《安汉就地正法,在黎坪垦区包庇种烟,经秦副总监审讯属实》,《西京日报》,1943年11月6日,第3版。
38. 《黎坪垦局包庇种烟,局长安汉伏法,昨晨在汉中西关执行》,《西北文化日报》,1943年11月6日,第2版。
39. 《安汉伏法》,《秦风工商日报》,1943年11月6日,第3版。
</code></pre>
</description>
</item>
<item>
<title>安汉生平事迹考略</title>
<link>http://zhaochaoyue.com/publication/person-re-identification/</link>
<pubDate>Fri, 01 Jun 2018 00:00:00 +0800</pubDate>
<guid>http://zhaochaoyue.com/publication/person-re-identification/</guid>
<description></description>
</item>
<item>
<title>过敏 + 编程 = ???</title>
<link>http://zhaochaoyue.com/post/4-8/</link>
<pubDate>Sun, 08 Apr 2018 17:42:26 +0800</pubDate>
<guid>http://zhaochaoyue.com/post/4-8/</guid>
<description><p>最近这一个多月,我又一次体验了过敏的可怕,呼吸困难和低烧让我无比难受,我一直不相信这是过敏导致的,去查了呼吸科、耳鼻喉,甚至还做了CT,可是都查不出来啥大问题,于是再次怀疑是不是过敏,又去世纪坛医院过敏科复查,医生听了症状后非常肯定的说就是过敏,说每个人症状不同,有的人可能就是流鼻涕,像我这样的属于严重的,而且低烧也很常见。(后来我发现国外把花粉过敏叫Hay Fever),医生开了两种药让每天早晚按时吃,我将信将疑又查了一次过敏源,之前对柏树超级过敏的指标依然非常高,无奈只有老实吃药,减少外出。好在吃了药果然有效果,我也乐观了些。</p>
<p>过敏导致我最近效率比较低,症状严重的那两周几乎啥也做不了,每天身体上忍受着呼吸困难和浑身不适,心里还在担心着是不是得了什么绝症,期待着去医院能检查出来或者自己能好,所以那时候一天就是郁闷地躺在沙发上看电影。</p>
<p>有一部电影印象非常深刻,叫《背靠背,脸对脸》,是西安电影制片厂94年出品的一部讽刺片,导演是杨建新,牛振华主演,讲述了文化馆代馆长如何绞尽脑汁升职的故事。影片里处处展现了中国社会的潜规则和职场上的勾心斗角,看完真的大呼精彩,其中有一幕是代馆长王双立在挤走了调来的新馆长老马后,立即和他老婆去老马家问候送礼,还邀请老马和文化馆员工一起去外地旅游。这一幕真的太深刻了,电影的剧照也是王双立夫妇和老马这个场景,真的体现出了“背靠背,脸对脸”的精髓,就是这种两面三刀、虚情假意让我想起了之前中钢的部门领导的嘴脸,二十多年过去了中国这种社会环境真的是一点也没变,可悲。</p>
<p>这几天把 <a href="http://www.anhan.org.cn" target="_blank">安汉纪念馆</a> 用Facebook开发的开源项目Docusaurus重建了,没有了那些动画和效果,页面清爽了不少,最主要是用七牛云CDN把文件托管了,性能得到了极大提高。</p>
<p>这个网站的资源是我花费两年多业余时间往返于各大档案馆、图书馆收集而来,去年2月还专门前往台湾中央研究院近代史档案馆花了3天时间查档拍照,其中还包括通过法国的热心华人、汉学家找到的法国资料,一句话就是。得来费了老大功夫。</p>
<p>我去年基于这些史料写出了一篇历史学术论文《安汉生平事迹考略》已经被《渭南师范学院学报》录用,我的工作也算告一段落。去年开始建这个网站时候就把不少资料放上去了,这次我终于决定完全公开我收集到的所有文件,我想这应该就是开源精神吧。</p>
<p>过敏症好转后,我继续开始深入学习web开发技术,最近在读这些书:</p>
<ul>
<li><a href='https://book.douban.com/subject/26382780/' target='_blank'>JavaScript设计模式与开发实战</a></li>
<li><a href='https://book.douban.com/subject/26599677/' target='_blank'>高性能Javascript</a></li>
<li><a href='https://book.douban.com/subject/27072230/' target='_blank'>深入理解ES6</a></li>
<li><a href='https://book.douban.com/subject/30143702/' target='_blank'>Javascript忍者秘籍(第2版)</a></li>
<li><a href='https://book.douban.com/subject/1827702/' target='_blank'>点石成金</a></li>
</ul>
<p>想做的项目特别多,学习计划列了一大堆,可是每天的时间真的不够用,感觉很快就过去了,晚上睡觉时候经常会觉得一天啥也没干很不想睡,于是思考下明天要做啥(失眠一会),再睡不着了就听听ASMR。</p>
<p>最后分享一些最近看到的句子共勉:</p>
<blockquote>
<p>Be yourself; everyone else is already taken.
&mdash; Oscar Wilde</p>
<p>Don&rsquo;t cry because it&rsquo;s over, smile because it happened.
&mdash; Dr. Seuss</p>
<p>Life exercise: Don&rsquo;t spend money or sleep in real bed for as long as possibel.
&mdash; yan</p>
</blockquote>
</description>
</item>
<item>
<title>JS闭包到底是什么包?</title>
<link>http://zhaochaoyue.com/post/2-17/</link>
<pubDate>Sat, 17 Feb 2018 17:42:26 +0800</pubDate>
<guid>http://zhaochaoyue.com/post/2-17/</guid>
<description>
<h3 id="先来看看文献中的-定义">先来看看文献中的<strong>定义</strong>:</h3>
<ul>
<li><p><a href="https://book.douban.com/subject/10549733/" target="_blank"><strong>JavaScript权威指南</strong></a>:</p>
<blockquote>
<p>&ldquo;函数定义时的作用域链到函数执行时依然有效。&rdquo;</p>
</blockquote></li>
<li><p><a href="https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Closures" target="_blank"><strong>MDN技术文档</strong></a>:</p>
<blockquote>
<p>&ldquo;闭包是函数和声明该函数的词法环境的组合。&rdquo;</p>
</blockquote></li>
<li><p><a href="https://github.com/getify/You-Dont-Know-JS/blob/master/scope%20%26%20closures/ch5.md" target="_blank"><strong>你不知道的JavaScript</strong></a>:</p>
<blockquote>
<p>”当函数可以记住并访问所在的词法作用域时,就产生了闭包,即使函数是在当前词法作用域之外执行。“</p>
</blockquote></li>
<li><p><a href="https://css-tricks.com/javascript-scope-closures/" target="_blank"><strong>CSS-Tricks</strong></a>:</p>
<blockquote>
<p>&ldquo;当你在一个函数内创建了另一个函数时,你就创建了一个闭包。内部的函数就是闭包。这个闭包通常会被返回,所以你能够在未来使用外部函数的变量。 &ldquo;</p>
</blockquote></li>
</ul>
<hr />
<h3 id="想深入了解闭包-首先要搞清这些概念">想深入了解闭包,首先要搞清这些概念:</h3>
<ul>
<li><p><strong>词法作用域</strong></p>
<p>顾名思义,就是定义在词法阶段的作用域。无论函数在哪里调用、何时被调用,它的词法作用域始终由函数被声明时所处的位置决定。</p></li>
<li><p><strong>函数作用域</strong></p>
<p>JS主要分全局作用域和函数作用域,函数作用域是根据“最小暴露”原则设计出来的,目的是为了隐藏私有变量,规避冲突。因为外部作用域无法访问函数内部的任何内容。</p></li>
<li><p><strong>内存垃圾回收机制</strong></p>
<p>内存的生命周期有三步:分配内存、使用内存、不需要时释放内存。垃圾回收就是根据一定的算法来大体判定“不再需要”的内存,注意它具有局限性。</p></li>
</ul>
<hr />
<h3 id="举几个例子">举几个例子</h3>
<p><strong>例子1</strong></p>
<pre><code class="language-javascript">function foo() {
car a = 2;
function bar() {
console.log(a);
}
return bar;
}
var baz = foo(); /* 这一步相当于把bar赋值给了baz */
//下面这一步相当于执行了bar(),bar()引用了foo()的作用域,
//所以foo()没有被内存管理系统当作垃圾回收,bar()对该作用域的引用就叫闭包。
baz(); /* 输出2 */
</code></pre>
<p><strong>例子2</strong></p>
<pre><code class="language-javascript">function makeAdder(x) {
return function(y) {
return x + y;
};
}
//下面这步相当于把内部函数赋值给了一个新值,
//并指定了外部函数的参数x的值,但内部函数y的值还没有指定。
var add3 = makeAdder(3);
var add9 = makeAdder(9);
//最后这一步指定了内部函数的参数y的值,因此就可以返回x + y的值了。
console.log(add3(2)); /* 5 */
console.log(add9(2)); /* 11 */
</code></pre>
<p><strong>例子3</strong></p>
<pre><code class="language-javascript">//立即调用函数的返回值赋值给myCounter
var myCounter = (function() {