[TOC]
赘婿
第一九七章 种子
2019-08-07 12:10:15
““可是太早学会想,未必就是好。,”秦嗣源微笑着““其实念书之人,识字认字最后都是让人增广见闻,然后学会怎样去想。只要真正学会了怎样去想,再学其它,都是举一反三,事半功倍。你的师父一贯教学是为了让你们尽早的学会想,所以他说那些故事,引导你们去动脑筋。这样你们就学得更快。可你们现在年纪太小了,阅历不敷,想很多了,其实有失偏颇,到最后,便恐怕会目中无人了,觉得张夫子比不了宁老师,进而觉得张夫子说的不敷有事理,甚至可能会开始觉得古圣先贤的文章有谬误...你有了自己的想法,就开始目中无人,夜郎自大!君武,这些话,你要记清楚。,”

注: 教学,求学之法

2019-08-07 12:09:45
所以一般来说,老师教导门生,初时只是让你们记得,比及你们真的年纪大了,可以真正见到一些事情了,才让你们想,这样你们的根基就扎实很多。固然,我并不是说你的师父教导有误,只看他叮咛你的事项,便知他对此也是很是重视。他有所控制,可你究竟?结果是个孩子,秦爷爷快要上京了,因此想要对此再叮咛你一番,会想,是好事,但如你师父所言,切忌狂妄,其他人说的话,就算你不以为然的,就算觉得陈腐的,也务必用心记住,只要能记住,往后你大了,一一印证,也会发现旁人为何会那样想,会发现其中事理,那样做,你必能发现其中的好处少年肃容行礼:“君武记得了。”
第二五一章 死给你看
2019-08-08 09:16:11
我……”宁毅正想说话,钱希文陡然又抬头望过来:“立恒觉得,我辈文人,最该做的事情,是什么?”
宁毅想了想:“我不愿说大话骗你,各人有各人的看法,文人有该做的,但要说最该做的,恐怕谁也说不清楚,而且……我不算文人。”
听得他这样回答,钱希文笑起来:“是啊,因此你能行非常之事,能……将湖州局势,一举逆转。”说起这事,老人似乎还有些兴奋,“但……老朽研究儒家数十

注: 儒家文人最该做的事是什么?

2019-08-08 09:16:20
年,得出一个结论,我辈儒者,最该做的事情,终究还是……卫道。”
宁毅皱了皱眉,钱希文笑了一阵:“自与立恒相识,你我未曾多谈,但这数月之事,我已知道立恒到底是何等样人。立恒于我,想必也听说了一些事情,当初的立秋诗会,这次的立秋诗会,包括各种官场来往、权术,立恒方才也说,老朽乃是务实之人,是啊,务实……”
他叹了口气,对这个词似乎颇有感慨:“可是,立恒,你想啊,若非如今官场、若非如今军中,若不是所有人都选择了这聪明的务实之道。他们打过来了,一觉得事不可为,大家就都掉头跑掉,杭州怎能陷得如此之快。若我们整天都在说圣贤之言,说大丈夫当仗义死节,到了城破之时,却没有一个人愿意做些蠢事,有谁愿意信那圣贤之言呢?”
“说爱国,说死节,死到临头了,却没有人愿意去,那儒者,不就成了看不见摸不着的东西了吗?立恒啊,这样说起来可能有些太过务实了,但我辈儒者,每年都该死几个人,死几个……有名字的人,死在屠刀之下,死在金銮殿上,死在这千万人的眼前,真到该死之时不能退,如此才能提醒世人,这儒家之道是真的,为不平之事而死,我辈才算为往圣继绝学。我死在这杭州城,也是要提醒大家,确实有些人抵抗过的,免得他们想要说起的时候,热血之时,找不到可以说的名字……”
他说得有些激动,手臂颤抖着,摸索着戴上帽子:“我已经老了,正是死得其所,立恒你还不该死,外面的那些孩子也不该死,但别无他法了,他们当中,也有被我教得信了这些的,也算是……死得其所吧。”
有微微的光从缝隙里照射进来,微尘浮动在空气中。老人说到这里,微微笑了笑:“所以这样说起来也许不好听,但所谓卫道,其实也就是……在适当的时候,死给你看。已经死了不少了,我因为名气大
2019-08-08 09:16:52
些,反倒屈居人后,也令得那些孩子多受了几天罪……为虚名所累啊……”
2019-08-08 09:17:04
宁毅微微有些沉默,他对于儒家,有崇敬,也有不屑,所崇敬者,无非是这个以儒为名的系统以家天下的规则所创造出来的巨大的、自洽的统治系统,如同蛛网般的密密麻麻的统治艺术。所不屑的,则是大多数儒生读书读傻了脑子,什么都不会想又或者什么都想的各种丑态,但眼前这个老人,确实是令得儒家这个字,显得有些伟大了。
平日务实致用,适当的时候……死给你看。
2019-08-08 09:18:57
如同诸多儒生在殿前触柱而死,如同后世文天祥崖山投海,方孝孺被腰斩后犹大骂朱棣不止。在后世看来,许多人或许都显得有些傻,觉得他们什么事情都没有做成,但如果把儒家当成一项事业,终究是这些人才真正做了事情的,真正是为往圣继绝学。若说起来,真就是“死给别人
2019-08-08 09:19:03

第二五五章 纲领
2019-08-08 09:31:20
纵观整个历史,真正成功了的起义或者是农民起义,首先一点,在某种程度上他们是真正的大势所趋,也就是一帮文人哭着喊着这个世道该灭亡了。第二点在于起义者能够将农民训练成士兵,也就是让他们能够听命令,而不是问“我们去抢什么”。两者各有比例,第一点最重要,当然也有特例,如后世明朝的朱棣兴兵,但那并非农民起义。在农民的起义中,第一点的重要性几乎无可取代。
而在整个历史长河当中,看见诸多农民起义,因饥荒、因瘟疫、因暴乱,有人振臂一呼,几万人几十万人就起来,他们如蝗虫一般的奔突,随后沉寂。但几乎所
2019-08-08 09:31:32
有的起义高层,都没有真正去想过该怎样动用起每一个人的全部力量。而真正将主观能动性甚至是理想这样的概念用在了农民身上的起义,古往今来,在宁毅所知的整个历史长河、所知的所有事例当中,仅有区区的一次。
那是后世的起义。
无论后世对于那次革命后来的评价如何,至少在当时,那一帮农民发出的力量是最大的,也创造了或许是整个人类历史上最为清廉的一只革命队伍。

注: 关于起义的思考

第二五七章 无趣之人
2019-08-08 09:45:50
宁毅笑了笑:“人情和规矩都要有,没有什么地方离得开人情这种东西。但寨子有规矩,国家有法律,我告诉你,衡量一个地方是不是健康的最简单的办法是什么:一个人,出了一些矛盾,犯了一些事,他想要解决,首先想到的是通过规矩,还是想要直接找人出头看看这个比例占多少就行了。如果他只考虑规矩,万事都想着打官司,这个世界是没什么人情味的,当然,这样的地方我还没见过,没听说过但如果他只想着找某某人,那么律法也就形同虚设了。你要管理这个寨子,两者就都要有,现在这样,死伤的人一多,事情一多,大家都看着你,你就只是把自己累死

注: 关于管理,规矩,法律,人情

2019-08-08 09:45:55
而已······”
第二六〇章 霸气外露刘西瓜
2019-08-08 09:52:44
宁毅不介意看些八卦和热闹,倒是有些意外刘大彪也对此感兴趣。夭光逐渐亮起来时,那边的街道上一片呻吟之声,少女吃完了卷饼,低喃道:“待会要让入送些药去。”
“你倒是好心……”
宁毅只是敷衍地一说,少女的善心往往来得很古怪,城破时发馒头,这时送药,
2019-08-08 09:52:49
兴许都是一时兴起的好玩,不过,这次的说话,倒是有些出乎他的意料之外。
“我让他们打起来的。”晨风拂动了那层面纱,面纱之下,少女精致的双唇似乎微微勾勒了起来,像是在说着一件颇为自豪的杰作。
“嗯?”
“我让他们打起来的o阿。”刘大彪得意地笑起来,“城破的时候,他们往这边过来,我来发馒头,发的也不多,不过有的入就打起来了,我也没去管。”
“听说了,有个孩子的馒头当着你的面被抢了,你也没管。”
“嗯,我做了善事就行了o阿,我是好入了,反正会有入吃到我的馒头,谁吃到的,有什么关系呢。在乎心诚嘛。”她说着,“他们也不认识我,就以为我是个有些小背景的富家小姐,有一次我过来,把我的包袱也抢了呢。所以后来我就驾了马车过来,在马车上发了。”
对于少女说的这些事,宁毅在霸刀营中已经听过几次,这边街上入多,少女发馒头或者之类的东西,哪里管的了所有入,她发的东西也不多,就一个包袱,发完了就心安理得的走入,所以大家基本也以为她是只求自己心安而已。
“发的东西不多,我就发给几个入,那样以来,每一个入就有很多啦。有些入忽然拿到了十个馒头,那可吃不完,想要藏起来,又被入发现了,就有入来抢。后来我也发点腊肉什么的,反正是很好吃的东西,这边有个金老大,有个田老大,还有……反正有好几个头领,手下都有些入,欺负不了我们这边的,只好欺负街上的入了,每次东西都被他们抢来抢去,后来我去发东西,都没什么入敢要了。”刘大彪用手背靠在唇上笑了起来,“不过我可不是坏入,他们不敢要,我还是要发o阿,有些入饿得不行了,总是会铤而走险
2019-08-08 09:52:59
的,我听说,有个孩子为了抢些东西给他妈妈吃,被打成残废了呢。呵呵……”
日光渐渐升起来,少女穿着靛蓝色的碎花裙,戴着斗篷,没有背负那巨剑的霸气时,看起来柔美而纯净,但这时候却又一股邪魅的感觉融在那笑声里。宁毅皱起眉头来,陡然间想到一个可能:“你不会是想……”
少女放下手,那笑声停了下来,面纱后的入微微显得有些安静了,好半晌,方才说话:“我每次都多发一点东西,但肯定是不够的,我又不发那些看起来很强壮的入,每次当然是看见谁需要我就给谁啦。十个馒头,二十个馒头,一斤腊肉……这些入,在城里过惯了,什么事情都不敢做,给他们一个馒头,立刻就吃掉,十个馒头吃不完了吧,一斤腊肉舍不得吃了吧,每次都被抢,被欺负的就一直被欺负,有入饿死,有入病死,有入被打得重伤,一直痛痛死了,真可怜。总算在前几夭,有个
2019-08-08 09:53:21
十五岁的男孩,被抢了馒头,又被打了一
2019-08-08 09:53:33
顿,他抢了一把刀,捅死了过来抢东西的三个入,然后就被抓了,我叫入去保下了他,让他加入我霸刀营的亲卫队里……然后这几夭,他们很多入就都打起来了。”
远远的,似乎有黑翎卫的执法队往这边过来,少女便又笑了起来:“是法平等、无有高下。可是这等世道,若是连手都不敢动的,就算我给了他们东西,也不会是他们白勺。那我就只能教他们用自己的双手去拿了。给了他们东西都拿不稳,还得我看着他们把东西吃完,我又不是他们白勺娘亲,凭什么?这块地方是我们用血抢下来的,他们就是因为这样所以丢了这块地方,如果还不懂这些,就只能去死了。”
她微微仰起了下巴:“我也希望有一夭,可以有一块地方,能让他们拿到一样东西,就成了他们自己的,可是在这之前,得把那些不该拿到那么多东西的入都给打败才行。这个世界上,有太多入拿到了不属于他们白勺东西了……”

注: 关于血性,争取

第三一二章 错估、脑补、误会
2019-08-08 13:09:05
从古至今。每一次皇朝的更替,一个国家会变成什么样子,从它建立之初,其实就已经决定了。”
2019-08-08 13:09:19
这样说的原因是,每一个朝代开朝时,皇上或者说当时的思想风潮会决定这个朝代的……”他抬起手划了划,“会决定这个朝代的统治阶层更重视什么,如果我们要求的只有一点,比如说国家强盛,那很简单,减少制约放手让地方发展,不出三代,只要这个国家还在,我们就可以把外族踏平,收复幽燕,谁说不行呢。”

注: 关于政府体制

2019-08-08 13:10:01
“诸朝皆以弱亡,独汉以强亡,我们像汉朝一样治国,然后就可以像汉朝一样灭亡。汉亡之后,历朝历代都更讲究集权与制衡,帝王术说要手下平级的人不停的猜忌、达到平衡。现在我们说要振兴武备要如何如何,其实有一条路很简单,假设……这里只做假设,假设能做到,当今圣上只要将下面的掌握放开,套上汉时的标准,不出六十年,假如武朝还在,那么北面若还有辽、金的立足寸土,我头砍给你。”
2019-08-08 13:10:08
康贤看着他:“假设?”
“嗯,假设。”宁毅点头:“之所以是假设,是因为不负责任,现在的局面下,假如真的这样做,没有二十年就诸侯并起了。但我这样讲,只是想说,每朝每代,上面侧重什么,其实都是可以控制的,只是能选的方向不多,往一个方向倒,另外一些东西就得放弃掉。我们选了如今这江宁繁华,就看不到虎贲如云、踏破贺兰山的景象,都是自己选的。”
“那又如何?”
2019-08-08 13:10:37
明公,我知道,儒家所谓的万世开太平,就是想要找到一个最好的状态。可是今天咱们不说道,只说用,武朝建立至今,走的方向。已经定了,咱们儒家建立的那张网,它会不断的收紧、收紧、再收紧。从古至今,为什么变法者从无好下场,因为任何一个系统都会自发地维护自己的状态和趋势,北伐为什么会出问题,因为这张网已经盘根错节,谁想要大展拳脚。
2019-08-08 13:10:46
谁就全身上下都血淋淋的。好事坏事都一样,因为谁都不会有大展拳脚的空间,这样对国家最好。这是立国之时就决定了的,就是不让你乱动!假如这次北伐成功,我们真是运气到了。用的力也是够大,但接下来会怎么样,你看不到吗?网还会收紧的。”
2019-08-08 13:15:01
宁毅偏着头笑了笑:“我这次从杭州回来,揽了很多关系。苏家有一个亲戚叫宋茂宋予繁,在外地当知州,明公,接下来会怎么样你也清楚,等他过来,会来拜访我这边。我们两边的利益就挂在一起,变得更厉害,但也许他是个贪官,我将来就被他牵累,这是风险。成国公主府的产业属于皇家,看起来自己管自己,可是。您背后到底有怎样的牵扯勾连,你自己清楚,这些人,代表各种利益的都有,秦公被刺杀。动手的是那些不想与辽国开战的商人,明公。你后面有没有这类人?”
康贤皱着眉头。
2019-08-08 13:15:06
宁毅继续说道:“谁都不能动,立国之初,这些就已经决定了,到现在,当今圣上都改不了,想要改,连他都会碰得头破血流,也许有两代入愿意冒这样的危险来把国家导向另一边,可谁真的敢?”
“明公你现在研究的是理学,接下来就可以说存天理灭人欲,人按照什么规矩去过,一条一划全都规定清楚,男人如何女人如何圣人如何,全拿模子刻出来。这是道,但要说用,就是让人动不了,越来越动不了。假如当今天下就我武朝,就这样发展下去一千年后武朝都不会垮,这就是为万世开太平……可国家是有敌人的。我们选了这个方向,我们若身边都是规规条条,各种利益缠身,到头来就是如今北伐的情景,我打不过别人,而且越来越打不过……”
“事实上与你说的自然有差距,真走
2019-08-08 13:15:14
偏了,敢于变法,敢撞得血淋淋的人,哪朝哪代都有。”想了很久,康贤才缓缓地说起来,“不过大体与你说的类似,便是这
2019-08-08 13:15:21
样,跟你在那霸刀营中做的事情又有何关系?”
“说万世开太平,有些大了。其实治国也好从政也好,一般就是查漏补缺,好像提着一杆秤,一直在晃,哪里出问题了哪里打个补丁,大局呢,就一直往一个方向走,孟子说五百年必有王者兴,一个朝代,五百年也就到头了,因为收得太紧了,别人越来越难有希望,怨气越来越大。然后轰的一下,秤砣掉到地上,一掉到地上,人就过得连猪狗都不如了……”
宁毅顿了顿:“但也许有一种办法可以避免这样,也许不会最好,但可以避免最坏。”
“就是你做的那些?”
“就是一句话,少数服从多数。”
康贤笑了起来:“真到那时候,你背后的,我背后的,这些少数岂会服从多数?”“那是细节问题。明公,儒家传承这么多年,每一代更替,上位的都叫做皇上。文化传承决定整个规矩、体制存在的方式。假设数百年上千年后有这样的一个体制,三五年一更替,有人想要造反,他的人多,他自然就可以上去,那还有人会造反吗?人不如猪狗的年月,就没有了。”
“哪会这样,人多就说话,猜拳吗?而且你可知道乡愿德之贼也的意思?假如你上位了,你愿意将手中权力让出来?你上位的几年就要把这些东西打得干干净净!而且要保证这一方法的传续,你……你置圣上于何地?你这想法是大逆不道。”说到最后,康贤已经下意识的压低了声音。
宁毅看着他:“都是旁枝末节,明公,别告诉我你想不到,是大家信的文化决定这朝代是什么样子,文化,决定体制——我把它叫做体制。若是所有人都信少数服从多数是真理,有些东西就会慢慢磨合出来……而且那也应该是几百年后的事情
2019-08-08 13:15:31
了。少数服从多数,大家都在说,我只是用另外一种方法说一说而已。明公,咱们说句大逆不道的。假如武朝撑不过五百年,该不该有点新的东西?”

注: 文人的尺 武人的刀

2019-01-06 09:29:40
周侗摇了摇头:“义气豪迈,那不是刀,只是一个人的姓情。谭大师曾经跟我说起过,在好的世道上,文人心里有一把尺,用之丈量世事人心,厘定规矩,而武人心里,要有一把刀,这刀太利了不行,但是没有也不行,当那些规矩老了,不合用了,世道走岔了,武人要用刀把它斩断,如此方有新的规矩出来。”
2019-01-06 09:29:31
他低头望着茶杯中的茶水:“事情如此,因为习武之人,心姓才是最敏感的,匹夫一怒血溅十步。人心里的刀,就是良知血姓,对便对错便错。文人厘定了规矩,可他们只会修修补补,做错了事他们一堆理由。可良知血姓最为直接,错了肯定是出了问题,就该打破他出更好的规矩!所以豪迈不是刀,刀是对错,是大智大勇,是杀规矩!”
“世人被逼无奈,都上山当匪?因为大家都这样做,所以那不是刀!随波逐流不是刀,做他人做不了不敢做不去做的事情才是刀!心中记着道义,倒是每天说自己被逼无奈的不是刀,义之所在虽千万人而吾往才是刀!林冲心中无刀,他被逼成那样,仍只敢活在规矩里,因为他知道,被逼无奈上山当匪那就是规矩,上山当匪便要滥杀无辜,那是规矩,有规矩他就只跟规矩走。嘿,他杀了人造了反,连皇帝老子都不要了,却没有胆子打破心里半点的规矩。他武艺再好又有何用……废人一个!”
第五六一章 当时的曲调(上)
2019-01-07 15:55:38
这样的事情。主要也是因为宁毅的教育理念所致了。在他而言,男人最重要的品质是节制,虽然他也希望孩子过得幸福,但百分百的幸福,绝不是一个孩子——尤其是男孩子——所需要的。毋宁说,绝对的幸福。是一个孩子成长的过程中应该被避免的东西,若不然。这个孩子将来就很难成为一个真正的男人。

注: 家庭教育

多看笔记 来自多看阅读 for iOS

摸鱼儿
问世间、情是何物,直教生死相许。
天南地北双飞客,老翅几回寒暑。
欢乐趣,离别苦。就中更有痴儿女,君应有语,
渺万里层云,千山暮雪,只影为谁去。
横汾路,寂寞当年萧鼓。荒烟依旧平楚,招魂楚些何嗟及。
山鬼自啼风雨,天也妒。未信与、莺儿燕子俱黄土。
千秋万古。为留待骚人,狂歌痛饮,来访雁邱处。
原作:
《摸鱼儿》 (元好问)
乙丑岁赴试并州,道逢捕雁者云,今旦获一雁,杀之矣。其脱网者悲鸣不能去,竟自投於地而死。予因买得之,葬之汾水之上,累石为识,号曰雁丘。时同行者多为赋诗,予亦有雁丘辞,旧所作无宫商,今改定之:
恨人间、情是何物,直教生死相许。
天南地北双飞客,老翅几回寒暑。
欢乐趣。离别苦。是中更有痴儿女。
君应有语。
渺万里层云,千山暮景,只影为谁去。
横汾路。寂寞当年箫鼓。荒烟依旧平楚。
招魂楚些何嗟及,山鬼自啼风雨。
天也妒。未信与、莺儿燕子俱黄土。
千秋万古。为留待骚人,狂歌痛饮,来访雁丘。
译:
当年,元好问去并州赴试,途中遇到一个捕雁者。这个捕雁者告诉元好问今天遇到的一件奇事:他今天设网捕雁,捕得一只,但一只脱网而逃。岂料脱网之雁并不飞走,而是在他上空盘旋一阵,然后投地而死。元好问看看捕雁者手中的两只雁,一时心绪难平。便花钱买下这两只雁,接着把它们葬在汾河岸边,垒上石头做为记号,号曰“雁邱”,并作《雁邱词》。

[TOC]

计划任务

from Godoc
包cron实现了cron规范解析器和作业运行器。
安装
要下载特定的标记版本,请运行:
go get github.com/robfig/cron/v3@v3.0.0
将其导入您的程序中:
import “github.com/robfig/cron/v3”
由于Go Modules的使用,它需要Go 1.11或更高版本。
用法
呼叫者可以在给定的时间表上注册要调用的Func。Cron将在他们自己的goroutines中运行它们。

c := cron.New()
c.AddFunc("30 * * * *", func() { fmt.Println("Every hour on the half hour") })
c.AddFunc("30 3-6,20-23 * * *", func() { fmt.Println(".. in the range 3-6am, 8-11pm") })
c.AddFunc("CRON_TZ=Asia/Tokyo 30 04 * * * *", func() { fmt.Println("Runs at 04:30 Tokyo time every day") })
c.AddFunc("@hourly",      func() { fmt.Println("Every hour, starting an hour from now") })
c.AddFunc("@every 1h30m", func() { fmt.Println("Every hour thirty, starting an hour thirty from now") })
c.Start()
..
// Funcs are invoked in their own goroutine, asynchronously.
...
// Funcs may also be added to a running Cron
c.AddFunc("@daily", func() { fmt.Println("Every day") })
..
// Inspect the cron job entries' next and previous run times.
inspect(c.Entries())
..
c.Stop()  // Stop the scheduler (does not stop any jobs already running).

CRON表达格式

cron表达式表示一组时间,使用5个以空格分隔的字段。
| 字段名称 | 强制性? | 允许值 | 允许特殊字符 |
| -------------- | -------- | ------------- | ------------ |
| 分钟 | 是的 | 0-59 | * /, - |
| 小时 | 是的 | 0-23 | * /, - |
| 一个月的某一天 | 是的 | 1-31 | * /, - ? |
| 月 | 是的 | 1-12或JAN-DEC | * /, - |
| 星期几 | 是的 | 0-6或SUN-SAT | * /, - ? |
月份和星期几字段值不区分大小写。“SUN”,“Sun”和“sun”同样被接受。
该格式的具体解释基于Cron维基百科页面:https://en.wikipedia.org/wiki/Cron

替代格式

备用Cron表达式格式支持其他字段,如秒。您可以通过创建自定义Parser来实现,如下所示。
cron.New(
cron.WithParser(
cron.NewParser(
cron.SecondOptional | cron.Minute | cron.Hour | cron.Dom | cron.Month | cron.Dow | cron.Descriptor)))
**由于添加Seconds是对标准cron规范的最常见修改,cron提供了一个内置函数来执行此操作,这相当于您之前看到的自定义解析器,除了它的秒字段是必需的: **
cron.New(cron.WithSeconds())
这模仿Quartz,最流行的替代Cron计划格式:http://www.quartz-scheduler.org/documentation/2.4.0-SNAPSHOT/tutorials/tutorial-lesson-06.html

 # ┌───────────── min (0 - 59)
 # │ ┌────────────── hour (0 - 23)
 # │ │ ┌─────────────── day of month (1 - 31)
 # │ │ │ ┌──────────────── month (1 - 12)
 # │ │ │ │ ┌───────────────── day of week (0 - 6) (0 to 6 are Sunday to
 # │ │ │ │ │                  Saturday, or use names; 7 is also Sunday)
 # │ │ │ │ │
 # │ │ │ │ │
 # * * * * *  command to execute

cron特定字符说明

特殊字符
星号(*)
星号表示cron表达式将匹配该字段的所有值; 例如,在第5个字段(月)中使用星号表示每个月。
斜线(/)
斜杠用于描述范围的增量。例如,第1场(分钟)中的3-59 / 15表示小时的第3分钟,之后每15分钟。形式“* \ / ...”等同于“first-last / ...”形式,即在该字段的最大可能范围内的增量。形式“N / ...”被接受为“N-MAX / ...”,即从N开始,使用增量直到该特定范围的结束。它没有环绕。
逗号(,)
逗号用于分隔列表的项目。例如,在第5个字段(星期几)中使用“MON,WED,FRI”将表示星期一,星期三和星期五。
连字符( - )
连字符用于定义范围。例如,9-17表示每天上午9点到下午5点之间的每小时。
问号(?)
可以使用问号而不是'*'来留下日期或星期几的空白。

预定义的时间表

您可以使用几个预定义的计划之一来代替cron表达式。

进入 说明 相当于
@yearly(或@annually) 每年一次,午夜,1月1日 0 0 1 1 *
@monthly 每月运行一次,午夜,月初 0 0 1 * *
@weekly 每周一次,午睡/周日午夜 0 0 * * 0
@daily(或@midnight) 每天运行一次,午夜 0 0 * * *
@hourly 每小时运行一次,小时开始 0 * * * *

间隔

您还可以安排作业以固定的时间间隔执行,从添加或运行cron开始。这可以通过格式化cron规范来支持,如下所示:
@every
其中“duration”是time.ParseDuration(http://golang.org/pkg/time/#ParseDuration)接受的字符串。
例如,“@ every 1h30m10s”表示在1小时30分10秒之后激活的计划,然后是之后的每个间隔。
注意: 间隔不会考虑作业运行时。例如,如果作业需要3分钟才能运行,并且计划每5分钟运行一次,则每次运行之间只有2分钟的空闲时间。

cron举例说明

每隔1分钟执行一次:  */1 * * * ?
每天23点执行一次:  0 23 * * ?
每天凌晨1点执行一次:  0 1 * * ?
每月1号凌晨1点执行一次:  0 1 1 * ?
在26分、29分、33分执行一次:  26,29,33 * * * ?
每天的0点、13点、18点、21点都执行一次:  0 0,13,18,21 * * ?

时区

默认情况下,所有解释和计划都在计算机的本地时区(time.Local)中完成。您可以在构造中指定不同的时区:

cron.New(
    cron.WithLocation(time.UTC))

单个cron调度还可以通过在cron规范的开头提供CRON_TZ=Asia/Tokyo.覆盖它们将被解释的时区。
例如:

# Runs at 6am in time.Local
cron.New().AddFunc("0 6 * * ?", ...)
# Runs at 6am in America/New_York
nyc, _ := time.LoadLocation("America/New_York")
c := cron.New(cron.WithLocation(nyc))
c.AddFunc("0 6 * * ?", ...)
# Runs at 6am in Asia/Tokyo
cron.New().AddFunc("CRON_TZ=Asia/Tokyo 0 6 * * ?", ...)
# Runs at 6am in Asia/Tokyo
c := cron.New(cron.WithLocation(nyc))
c.SetLocation("America/New_York")
c.AddFunc("CRON_TZ=Asia/Tokyo 0 6 * * ?", ...)

传统兼容性还支持前缀“TZ =(TIME ZONE)”。
请注意,在夏令时跨越式过渡期间安排的作业将无法运行!
作业包装机/链条
Cron运行器可以配置一系列作业包装器,以便为所有提交的作业添加横切功能。例如,它们可用于实现以下效果:

  • 从作业中恢复任何恐慌(默认激活)
  • 如果先前的运行尚未完成,则延迟作业的执行
  • 如果之前的运行尚未完成,则跳过作业的执行
  • 记录每个作业的调用
    使用cron.WithChain选项为添加到cron的所有作业安装包装器:
cron.New(cron.WithChain(
    cron.SkipIfStillRunning(logger),
))

通过显式包装它们来为各个作业安装包装器:

job = cron.NewChain(
    cron.SkipIfStillRunning(logger),
).Then(job)

线程安全
由于Cron服务与调用代码同时运行,因此必须采取一些措施以确保正确同步。
只要调用者确保调用在它们之间进行排序之前有明确的发生,所有cron方法都被设计为正确同步。
记录
Cron定义了一个Logger接口,它是github.com/go-logr/logr中定义的接口的一个子集。它有两个日志记录级别(信息和错误),参数是键/值对。这使得cron日志记录可以插入结构化日志记录系统。提供了一个适配器[Verbose] PrintfLogger来包装标准库* log.Logger。
为了进一步了解Cron操作,可以激活详细日志记录,这将记录作业运行,调度决策以及添加或删除的作业。使用一次性记录器激活它,如下所示:

cron.New(
    cron.WithLogger(
        cron.VerbosePrintfLogger(log.New(os.Stdout, "cron: ", log.LstdFlags))))

履行
Cron条目存储在一个数组中,按其下一个激活时间排序。Cron睡着,直到下一份工作开始运行。
醒来后:

  • 它运行在该秒钟上处于活动状态的每个条目
  • 它计算运行的作业的下一个运行时间
  • 它按下一个激活时间重新排序条目数组。
  • 它会一直睡到最快的工作。

安装

在Mac下安装前提条件,已经安装好了docker desktop,并修改了代理源 https://registry.docker-cn.com。
直接在docker桌面端开启k8s是没用的,一直提示 kubernetes is starting… :cry: 我竟然不知道,这样子持续了n天。​
自己手动安装 k8s

  • git clone https://github.com/maguowei/k8s-docker-for-mac.git

  • cd k8s-docker-for-mac/

  • ./load_images.sh

安装minikube

# install minikube
$ brew cask install minikube
$ brew install docker-machine-driver-xhyve
# docker-machine-driver-xhyve need root owner and uid
$ sudo chown root:wheel $(brew --prefix)/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve
$ sudo chmod u+s $(brew --prefix)/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve

最后启动minikube

# start minikube.
# http proxy is required in China
$ minikube start --docker-env HTTP_PROXY=http://proxy-ip:port --docker-env HTTPS_PROXY=http://proxy-ip:port --vm-driver=xhyve

[TOC]

什么是swiftUI?

Apple的解释:

更好的应用。更少的代码。

SwiftUI是一种创新的,非常简单的方法,可以通过Swift的强大功能在所有Apple平台上构建用户界面。仅使用一组工具和API为任何Apple设备构建用户界面。SwiftUI具有易于阅读和自然编写的声明式Swift语法,可与新的Xcode设计工具无缝协作,使您的代码和设计完美同步。自动支持动态类型,暗模式,本地化和可访问性意味着您的第一行SwiftUI代码已经是您编写过的最强大的UI代码。

声明性语法

SwiftUI使用声明性语法,因此您可以简单地说明您的用户界面应该做什么。例如,您可以编写需要包含文本字段的项目列表,然后描述每个字段的对齐方式,字体和颜色。您的代码比以前更简单,更易于阅读,从而节省您的时间和维护。

import SwiftUI
struct Content : View {
  @State var model = Themes.ListModel
  var body: some View {
    List(model.items,action: model.selectItem){ item in
      Image(item.image)
      VStack(alignment: .leading){
        Text(item.title)
        Text(item.subtitle)
            .color(.gray)
      }
    }
  }
}

这种声明式风格甚至适用于复杂的概念,如动画。轻松地将动画添加到几乎任何控件中,并选择只有几行代码的即用型效果集合。在运行时,系统会处理创建平滑移动所需的所有步骤,甚至可以处理中断以保持应用稳定。通过动画这么简单,您将寻找新的方法来让您的应用程序活跃起来。

设计工具

Xcode 11包含直观的新设计工具,使得使用SwiftUI构建界面就像拖放一样简单。当您在设计画布中工作时,您编辑的所有内容都与相邻编辑器中的代码完全同步。在您键入时,代码会立即显示为预览,您对该预览所做的任何更改都会立即显示在您的代码中。Xcode会立即重新编译您的更改,并将其插入到应用程序的运行版本中,始终可见且可编辑。
拖放。只需拖动画布上的控件即可在用户界面中排列组件。单击以打开检查器以选择字体,颜色,对齐方式和其他设计选项,并使用光标轻松重新排列控件。许多这些可视化编辑器也可以在代码编辑器中使用,因此您可以使用检查器为每个控件发现新的修改器,即使您更喜欢手动编码界面部分。您还可以从库中拖动控件并将其拖放到设计画布上或直接放在代码上。
动态更换。Swift编译器和运行时完全嵌入到Xcode中,因此您的应用程序将不断构建和运行。您看到的设计画布不仅仅是您的用户界面的近似 - 它是您的实时应用程序。Xcode可以直接在您的实时应用程序中使用“动态替换”交换已编辑的代码,这是Swift中的一项新功能。
预览。您现在可以创建任何SwiftUI视图的一个或多个预览以获取示例数据,并配置用户可能看到的几乎任何内容,例如大字体,本地化或暗模式。预览还可以在任何设备和任何方向上显示您的UI。

所有Apple平台都是原生的

SwiftUI建立在数十年创建世界上最具创新性和直观的用户界面的经验之上。用户喜欢Apple生态系统的所有内容,例如控件和特定于平台的体验,都会在您的代码中呈现出来。SwiftUI是真正的原生,因此您的应用程序可以通过少量代码和交互式设计画布直接访问每个平台的成熟技术。

对开发者和公司的影响

通过swiftUI的发布可以看到,Apple 在逐步拜托对 Objective-C & Cocoa 的依赖,将精力和资源倾斜到swift语言上,这一次是对UIKit的摆脱。以 Apple 一贯的强势政策,很有可能后期会逐步放弃对 Objective-C 的持续优化(事实上有证据表明已经开始了)和App Store 上的政策制裁。以到达逐步引导开发者加入到新的平台上,这是在之前有过先例的:比如Mac OS从 power-pc 架构转到 x86架构.这将会是一个逐步渐进的过程,但是不会太长最多一两年,并且改变不可逆。
对于公司和开发者来说,最好的莫过于全面拥抱 swift,但是考虑到很多旧项目使用 OC ,已经形成了强大的路径依赖,越大的项目组转身会越困难。但是大项目组人力不缺,资源不缺,有强大的容错能力,我认为反而是大项目组会最早探索,转身稳中有快。而对于新项目和创业公司来说则没有任何技术债务,技术选型会更轻松一些,完全受开发人员的控制。而最尴尬的莫过于中型项目和团队。人手紧缺,业务变动剧烈,最关键的是技术leader如果没有技术前瞻性的话,担心在技术转型中影响业务发展,反而是最保守的。处在这个位置的开发人员是最痛苦的。
解决办法就是:开发自己的项目,拥有完全独立自主的决定权。代价就是每年$99≈¥688。
公司的解决方案就是:在新的项目中使用swift。不建议使用混合开发,编译速度慢,有想想不到的问题

版本要求

SwiftUI 支持的设备要求版本较高,将在7月份开启公测,官方介绍如下:
只支持
Xcode 11+ Bata
iOS 13.0+ Beta
macOS 10.15+ Beta
UIKit for Mac 13.0+ Beta
tvOS 13.0+ Beta
watchOS 6.0+ Beta