201904读书会

2019-04-12 12:06:06

《永乐大帝朱棣》

状态:100% finished
永乐大帝朱棣
毛佩琦的一本老书,断断续续看完差不多前后花了有两个月。历朝历代,君王上纲上线要么子承父业,要么是抢过来的。朱棣也不例外,朱棣是洪武帝的第四个儿子,也是朱元璋最喜欢的一个儿子,能打仗,有谋略,敢下手,缺偏偏因历史原因需要将太子传给儿子中的老大朱标,朱标因年早逝又传给世子朱允炆,抢夺帝位就此开始。
建文元年,朱允炆主张仁治,在黄子澄等一干人帮助下进行了削藩,这就成功触碰到了朱棣的神经,生死存亡,于是打起了靖难的旗号起兵反抗,起兵过程中往往应征了运气也是实力的一部分,在老天爷多次帮忙下活了过来且越来越壮大,最终如常所愿。一幕幕的战争场面也能实时的映入眼帘。
一朝天子一朝臣,新帝上任,旧臣下课(往往是被诛杀),同朱元璋称帝一样,作为皇帝往往为了免除后患,都会大肆进行杀戮,这就是朝廷和政治的斗争,为财为权,不管经历多少年,这都是利益使然,如今社会也一样。
朱允炆从此开始了十六年的逃亡生活,隐姓埋名,却成了朱棣的一大心病,因为活不见人死不见尸,这个后患一直未被根除。直到自己快寿终前才得知朱允炆的去世,了却了心愿。
朱棣这个人,不能说好,也不能说坏,这就是历史的车轮,很多是我们不能阻止的。永乐年间,朱棣开启了永乐盛世,稳固了边疆,借郑和下西洋的机会巩固邻邦,并且完成了《永乐大典》的编著。《永乐大典》是中国古代编纂的一部大型类书,收录入《永乐大典》的图书均未删未改,是中华民族珍贵的文化遗产,是中国古代最大的百科全书,也是当时世界上最大的百科全书,比十八世纪中叶出版的《大英百科全书》和《法国百科全书》要早300多年。

《西风烈:大秦帝国前传》

状态:100% finished
西风烈:大秦帝国前传
一本小说性质的历史性图书,这是一个讲述英雄成与大国崛起的故事。
一代枭雄项离,一代帝王嬴稷,两个是像兄弟一样的朋友。虽然该书中某些故事情节不具备历史性,但作者金满能采用小说的手笔能将这个故事线直接串联起来。因秦武王举鼎身亡,赢稷成为新的秦王,是为秦昭王。秦国书苑中。项离被赢稷与大隐于此的商鞅三年磨砺,名剑终成。为了解秦国最为强大的对手赵国,项离自请入赵。自此,项离追随赵武灵王攻灭中山、北侵胡地,迅速成长起来并建立强大功勋,并与赵国公主赵块结下一段情事。赵国叛乱中,赵武灵王被饿死沙丘宫,项离怒而去赵,带领五千黑翼骑士重返秦国。伊阙之战项离·战成名,天下震恐。英雄的统帅与心怀天下的秦王双剑合壁,打开了秦国的崛起之门,向决定天下归属的长平之战迈进……
语录:

  • 战国的战争不是为了争霸,而是为了灭国!只有消灭其他诸侯国,这片疆域才会再次统一,人民才能获得真正的和平。
  • 我不会看错,你是一个注定要成为英雄的人。但英雄并不是圣人,不能用世俗道德去衡量他的行为。一种新秩序的简历,一定会经历无情的摧毁、残酷的杀伐。要成为战国乱世的英雄,就必须忍受灵魂的拷问,就必须接受世人和史册的诟病。
  • 以战去战,虽战可也。以杀去杀,虽杀可也。

Data too long for column

背景 最近在对MySQL进行一个常见的数据插入的时候,报了一个Data too long for column xxx的错误,当时就有点懵,首先我存放的这个字段里面内容可能会比较大,当初我就设置为TEXT类型,按理说用这个类型来存放已经足够,就不会报这个问题才对 解决办法 varchar 如果原本定义的字段类型为varchar类型,应该是你存放的数据超过了设置的长度,两种方式: 把varchar设置更大值 将MySQL模式设置为非严格模式(这个主要是由低版本的MySQL转高版本MySQL导致,比如数据迁移时) SET @@global.sql_mode= 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'; text 而我此次出的问题就是这个,本想text类型已经够存放,但第三方存放的数据大小往往会是不可控的,需要将原有的TEXT改为MEDIUMTEXT,当然具体大小怎么更改需要看你具体业务需求,不是越大越好。我们可以看下面的定义: 类型 大小 TINYTEXT 256 bytes TEXT 65,535 bytes

Golang之服务配置自动初始化

背景 今天分享一个利用reflect在实际项目中比较省时、代码简洁且高效的方法-服务配置自动初始化的方法。 我们在起一个Web项目时,常常都是直接使用开源的一些框架或组建,然后在我们自己的项目中要使用之前按照该框架或组建提供的帮助文档一个一个进行相应的初始化配置。也许我们只引用其中一两个,这样写都还能忍受,可是如果这个服务会引用更多的呢? 效果 代码简洁化 接入第三方库就如搭积木一样,模块化,随取随用 可维护性高 干货 下面,我们就来利用reflect实现该功能。 思路 磨刀不误砍柴工,我们先整理好一个简单思路,然后再尝试实现它,这样就简单了。 从远端配置服务或本地获取到我们需要初始化的配置 解析配置中的数据 判断配置中元素是否有实现我们指定方法,如果有就执行它,没有就跳过 没错,用语言描述就这么三句话,就这么简单。 获取配置 服务要启动,获取配置要么从远端配置服务拉取,要么从本地读取,就以常见的json格式作为我们本次举例的配置格式吧。 { "ginx": { "listen_port": 8080 }, "conn_timeout":2 } 既然是json化的配置,