09
1月 15

树莓派-简单传感器

1.Raspberry-Pi-GPIO-Layout-Revision-2
连线:

Name 树莓派Pin
VCC 2
DO 18
GND 6

2.运行下边的程序:

#!/usr/bin/python
#coding: utf-8

import RPi.GPIO as GPIO
import time
import sys

def output():
    x = GPIO.input(GPIO_PORT_DO)
    if x == GPIO.LOW:
        print 'low'
    else:
        print 'high'

if __name__ == '__main__':
    GPIO_PORT_DO = 24

    GPIO.setwarnings(False)
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(GPIO_PORT_DO,GPIO.IN)

    while True:
        output()
        time.sleep(0.1)

07
1月 15

树莓派-超声波-HC_SR04

1.Raspberry-Pi-GPIO-Layout-Revision-2
连线:

Name 树莓派Pin
VCC 2
TRIG 16
ECHO 18
GND 6

2.运行下边的程序:

#!/usr/bin/python
#coding: utf-8

import RPi.GPIO as GPIO
import time
import sys

def my_callback(channel):
    global isExit
    global last_dis
    global last_time
    e= 0
    s= time.time()
    while True:
        x = GPIO.input(GPIO_PORT_ECHO)
        if x==GPIO.LOW:
            e= time.time()
            break
    dis = (e-s)*34029/2
    speed = (last_dis-dis)/(e-last_time)
    last_time = e
    last_dis = dis

    print 'distance:%d cm, speed:%d cm/s\r' % (dis,speed),
    sys.stdout.flush()
    isExit = True

def test_distance():
    GPIO.output(GPIO_PORT_TRIG,GPIO.HIGH)
    time.sleep(0.1)
    GPIO.output(GPIO_PORT_TRIG, GPIO.LOW)

if __name__ == '__main__':
    # config
    GPIO_PORT_TRIG = 23
    GPIO_PORT_ECHO = 24

    GPIO.setwarnings(False)
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(GPIO_PORT_TRIG,GPIO.OUT)
    GPIO.setup(GPIO_PORT_ECHO,GPIO.IN)
    last_time = time.time()
    last_dis = 0

    GPIO.add_event_detect(GPIO_PORT_ECHO, GPIO.RISING, callback=my_callback)
    while True:
        isExit = False
        test_distance()
        while not isExit:
            time.sleep(0.05)
        time.sleep(0.1)

07
1月 15

树莓派-LED-max7219

1.连线:
Raspberry-Pi-GPIO-Layout-Revision-2

Name 树莓派Pin
VCC 2
GND 6
DIN 19
CS 24
CLK 23

2.下载python的max7219包:

git clone https://github.com/rm-hull/max7219.git

安装。

3.在/etc/modprobe.d/raspi-blacklist.conf中注释掉

blacklist spi-bcm2708

重启。

4.运行example.py


04
12月 14

文章的气

陆机说,“诗缘情而绮靡,赋体物而浏亮”。在陆机的眼中,诗的气从来不如赋这样的文体。大概因为限制更多,大概因为那时还不是诗的时代。在后来的岁月里,诗倒是取代了赋的地位,而把那些缘情绮靡的帽子留给了词曲这样的小弟。我于是觉得,文气和体裁,基本是不相关的,却只与写文章的那个人有关。

中国的文章,从来以气为要,气之所至,无所不生。笔力不过是把气宣泄出来的通道,若作者有强大的笔力,则读者感到迎面而来的快哉风;若笔力不逮,未免是半死不活的小旋风了。伟大的诗人没有笔力不强的,但气却各不相同。

有王气。“大风起兮云飞扬,威加海内兮归故乡”,非王者不能为也。可惜后世即便帝王,再无此气魄了。魏武“日月之行,若出其中,星汉灿烂,若出其里”,气势稍弱了。毛泽东“数风流人物,还看今朝”,意思几近,可惜造作太过。

有豪气。“莫愁前路无知己,天下谁人不识君”,“腹中贮书一万担,不肯低头在草莽”,我常觉得先有干云之志,后有干云之词。

有勇气。“身既死兮神以灵,子魂魄兮为鬼雄”,“男儿何不带吴钩,收取关山五十州,请君暂上凌烟阁,若个书生万户侯”,“摐金纵鼓下榆关,旌旆逶迤碣石间”,非屈原与唐人不能为也。

有正气。“安得广厦千万间,大辟天下寒士俱欢颜,吾庐独破受冻死亦足”。非杜甫不能,心已近禅,而气乃近道,禅道不是王维刻意之流可以学到的。

有浩然气。“应念岭表经年,孤光自照,肝胆皆冰雪”,意思仿佛,但弱于正气,不能兼济天下,惟有独善己身。

有骨气。“人生自古谁无死,留取丹心照汗青”,有骨气之表,无骨气之实。“申包胥之顿地,碎之以首,蔡威公之泪尽,加之以血”,“灞陵夜猎,犹是故时将军”,差几近之。

有质气。“正好长驱,不须反顾,夺取中流誓”,“粉身碎骨浑不怕,留得清白在人间”,清晰的目标,清晰地说出来,已近道矣!

有戾气。“我花开后百花杀”,此句既出,知黄巢事必难成也,唯王有王气,唯贼有戾气。

有哀气。“空将汉月出宫门,送君清泪如铅水”,“巡层楹而空掩,抚锦幕而虚凉”,但悲身世者,无处容身,求哀得哀,固其宜也。一旦通达,气即消矣。

有娇气。“寒处偏佳,别有根芽”,但咏高洁,自谓高洁,未必高洁。

有侠气。“十步杀一人,千里不留行,事了拂身去,深藏功与名”,“十年磨一剑,霜刃未曾试,今日把示君,谁有不平事”,短平快者,此之谓也。


07
6月 14

[顾颉刚]两汉州制考

一 《汉书·地理志》述西汉州制的矛盾说

事情有似乎没有问题而实在蕴蓄着很重大很繁复的问题的;有记载似乎很丰富,时代也不算很古,然而竟难明其究竟的。这种事情到处可见,秦的郡制是一例,汉的州制也是一例。

《汉书·武帝纪》,元封五年:

初置刺史,部十三州。

又《百官公卿表》云:

武帝元封五年,初置部刺史,掌奉诏条察州,秩六百石,员十三人。

这是汉代立州制的初见。司马迁作《史记》在太初元年(据王静安先生《太史公系年考略》所定),已是武帝置了十三州刺史的第三年了,但《史记》里对于这个很重要的制度毫未提及,煞是可怪。这也说不定司马迁已记于《今上本纪》中,后来亡失了。(《汉书·司马迁传》云,“十篇缺,有录无书”。颜师古引三国时张晏注云,“迁没之后,亡《景纪》,《武纪》……”)最不幸的,《史记》里有《河渠书》,又有《货殖列传》,已做了些零碎的地理记载,却想不到做一篇完整的《地理书》。假使有这一篇,我们的古代史和汉代史里不知可以减去多少问题。

《史记·天官书》中,有分野的一段,说

角,亢,氐,兖州。房,心,豫州。尾,箕,幽州。斗,江湖。牵牛,婺女,扬州。虚,危,青州。营室至东壁,并州。奎,娄,胃,徐州。昴,毕,冀州。觜觿,参,益州。东井,舆鬼,雍州。柳,七星,张,三河。翼,轸,荆州

这段文字如出于司马迁的手笔,或他抄自别的天文学家之书,则必在元封五年之后,因为已把梁州改变益州。但他虽分周天为十三野,而于《禹贡》和《职方》之外多出的两部乃是三河与江湖,三河为畿辅,江湖仍为扬州,与武帝的十三部制不相应。

其后州郡之制经过王莽的改变,光武帝的改变,当时也都没有很清楚的记载流传下来。直至东汉明帝时,班固始在《武帝纪》及《百官公卿表》中写了上面这两条。他又在《地理志》的序论上说:

至武帝攘却胡越,开地斥境,南置交趾,北置朔方之州,兼徐梁幽并,夏周之制,改雍曰凉,改梁曰益,凡十三部,置刺史。

这句话原是说得很明白的。《禹贡》(所谓夏制)的九州为“冀,兖,青,徐,扬,荆,豫,梁,雍”,现在“改雍曰凉,改梁曰益”,是武帝的十三州中有“冀,兖,青,徐,扬,荆,豫,益,凉”九州了。《职方》(所谓周制)的九州是“扬,荆,豫,青,兖,雍,幽,冀,并”,比较《禹贡》,缺少了徐梁而多出了幽并;现在兼采周制,是武帝的十三州中又有“幽,并”二州了。再加上了攘却胡越的结果,“南置交趾,北置朔方之州”,又多出了这二州。“冀,兖,青,徐,扬,荆,豫,益,凉,幽,并”十一州是袭旧的,“交趾,朔方”二州是创新的,总凡十三州。这当然没有发生问题的余地。

不幸班固在《地理志》中不曾以州为纲,以郡为目,使得读者对于州郡的辖属没法一目了然。又不幸班固在若干郡名之下记了所属之州,而这些州名却不能与其序论所述的完全吻合。更不幸的,班固没有把一百零三个郡国所属之州完全记出,使得学者们枉费许多精力去推敲西汉州郡的分配。他虽好意写了两卷《地理志》,但传给我们的乃是一篇糊涂账!

现在把《地理志》中记着的若干郡国所属之州完全抄出,按照了《志》中的次序加上数目字,如下:
(一)云“属司隶”的有两个,是:
(8)河内郡 (9)河南郡
(二)云“属冀州”的有九个,是:
(22)魏郡 (23)钜鹿郡 (24)常山郡 (25)清河郡(84)赵国 (85)广平国 (86)真定国 (87)中山国(88)信都国
(三)云“属并州”的有九个,是:
(6)太原郡 (7)上党郡 (62)上郡 (63)西河郡(64)朔方郡 (65)五原郡 (66)云中郡 (67)定襄郡(68)雁门郡
(四)云“属幽州”的有十个,是:
(26)涿郡 (27)勃海郡 (69)代郡 (70)上谷郡(71)渔阳郡 (72)右北平郡 (73)辽西郡 (74)辽东郡(75)玄菟郡 (76)乐浪郡
(五)云“属兖州”的有八个,是:
(10)东郡 (11)陈留郡 (19)山阳郡 (20)济阴郡(31)泰山郡 (94)城阳国 (95)淮阳国 (97)东平国
(六)云“属青州”的有六个,是:
(28)平原郡 (29)千乘郡 (30)济南郡 (32)齐郡(33)北海郡 (34)东莱郡
(七)云“属徐州”的有四个,是:
(35)琅邪郡 (36)东海郡 (99)楚国 (101)广陵国
(八)云“属豫州”的有五个,是:
(12)颍川郡 (13)汝南郡 (21)沛郡 (96)梁国(98)鲁国
(九)云“属扬州”的有五个,是:
(17)庐江郡 (18)九江郡 (38)会稽郡 (39)丹阳郡(40)豫章郡
(一〇)云“属荆州”的有七个,是:
(14)南阳郡 (15)南郡 (16)江夏郡 (41)桂阳郡(42)武陵郡 (43)零陵郡 (103)长沙国
(一一)云“属益州”的有八个,是:
(44)汉中郡 (45)广汉郡 (46)蜀郡 (47)犍为郡(48)越郡 (49)益州郡 (50)牂柯郡 (51)巴郡
(一二)云“属交州”的有六个,是:
(77)南海郡 (78)郁林郡 (79)苍梧郡 (80)交趾郡(81)合浦郡 (83)日南郡

据上表看来,比较叙论所说,多出了一个“司隶”,缺少了一个“朔方”,至于“朔方郡”则是不属于朔方部而属于并州的;又“凉州”一名也不曾提起。为什么他一个人的话会这样地参差呢?

班固所记的属于某州的郡国一共七十九个,此外没有记的尚有二十四个,列举如下:

(1)京兆尹 (2)左冯翊 (3)右扶风 (4)弘农郡
(5)河东郡 (37)临淮郡 (52)武都郡 (53)陇西郡
(54)金城郡 (55)天水郡 (56)武威郡 (57)张掖郡
(58)酒泉郡 (59)敦煌郡 (60)安定郡 (61)北地郡
(82)九真郡 (89)河间国 (90)广阳国 (91)甾川国
(92)胶东国 (93)高密国 (100)泗水国 (102)六安国

猜想他所以没有写明的缘故,似乎并无什么重要理由,而只由于一时的脱漏或传钞的佚失。例如广阳国于高帝时为燕国,当然属幽州。又如临淮郡在东海郡之南,广陵国之北,当然属徐州;九真郡在交趾郡之南,日南郡之北,亦当然属交州。但为什么做的人要脱漏,钞的人要佚失,为了他们的粗心害我们得不到正确的智识呢?

晋司马彪作《续汉书·郡国志》,以州为纲,以郡为目,记东汉一代的州郡制度非常清楚。凡《汉书》所脱漏的属州,拿他的书一比较就明白了。今补记如下:

(一)属“司隶”的五个———京兆尹,左冯翊、右扶风,弘农郡,河东郡。
(二)属“冀州”的一个———河间国。
(三)属“凉州”的十个———武都郡,陇西郡,金城郡,天水郡(永平十七年更名汉阳郡),武威郡,张掖郡,酒泉郡,敦煌郡,安定郡,北地郡。
(四)属“幽州”的一个———广阳国(和帝更为郡)。
(五)属“青州”的三个———甾川国,胶东国,高密国(三国省属北海国)。
(六)属“徐州”的两个———临淮郡(永平十五年更名下邳国),泗水国(建武中省入广陵郡)。
(七)属“扬州”的一个———六安国(建武十三年入庐江郡)。
(八)属“交州”的一个———九真郡。

这一笔西汉州郡的账既这样地弄清楚了,似乎该得开一个总清账出来。因此,南宋初吕祖谦的《大事记》(《解题》卷十二)就说:

汉孝武皇帝开封五年,……初置刺史部十三州。……
司隶校尉部———京兆,扶风,冯翊,弘农,河内,河南,河东———凡七郡。
豫州刺史部———颍川,汝南,沛郡;梁,鲁国———凡三郡,二国。
冀州刺史部———魏,钜鹿,常山,清河郡;赵,平于(原注:宣帝改曰广平),真定,中山,信都,河间国———凡四郡,六国。
兖州刺史部———陈留,山阳,济阴,泰山,东郡;城阳,淮阳(原书此二国作“任城,济北”,乃系东汉制,误;兹据王应麟《通鉴地理通释》所引改),东平国———凡五郡,三国。
徐州刺史部———琅邪,东海,临淮郡;泗水,广陵,楚国———凡三郡,三国。
青州刺史部———平原,千乘,济南,北海,东莱,齐郡;菑川,胶东,高密国———凡六郡,三国。
荆州刺史部———南阳,江夏,桂阳,武陵,零陵,南郡;长沙国———凡六郡,一国。
扬州刺史部———庐江,九江,会稽,丹阳,豫章郡;六安国———凡五郡,一国。
益州刺史部———汉中,广汉,武都,犍为,越,益州,牂柯,蜀郡———凡八郡。
凉州刺史部———陇西,金城(原注:昭帝置),天水,武威,张掖,酒泉,敦煌,安定,北地———凡九郡。
并州刺史部———太原,上党,西河,朔方,五原,云中,定襄,雁门,上郡———凡九郡。
幽州刺史部———勃海,上谷,渔阳,右北平,辽西,辽东,玄菟,乐浪,涿,代郡;广阳国———凡十郡,一国。
交州刺史部———南海,郁林,苍梧,交趾,合浦,九真,日南———凡七郡。

这一篇账原是把《汉书·地理志》和《续汉郡国志》合在一起看时所必应有的结果。只有两点和我们上边开的不同:其一,缺了一个巴郡,所以百三郡国变成百二。这大约是他一时的脱漏。其二,武都郡不入凉州而入益州。这却有个原因在。《武帝纪》,元鼎六年,“定西南夷,以为武都,牂柯,越,沈黎,文山郡”。武都之地既在西南夷的范围里,当然应与牂柯,越等郡都属益州,为什么要单单把它隶属凉州呢?

当吕祖谦开出这篇总清账时,原想揭露武帝时的州郡的真面目的。所以他把广平国改书“平于”,下注云“宣帝改曰广平”,又于金城郡下注云“昭帝置”,见得凡是没有加注的都是武帝时的原样。可是武帝平朝鲜置四郡,为什么只记了玄菟和乐浪而忘却了真番和临屯呢?平南越置九郡,为什么只记了南海等七郡而忘却了珠崖和儋耳呢?还有平西南夷后所立的文山郡乃是到宣帝时才取消的,为什么也不记上呢?这种地方,可说他进退失据。

可是,自从吕祖谦有了这样的排列,其后徐天麟作《西汉会要》,王应麟作《通鉴地理通释》,以至于清顾祖禹作《读史方舆纪要》(历代州域形势),钱坫作《汉书地理志集释》,没有不照样写的。这个单子竟成了八百年来的定论!

我们现在就拿了这个“差不多成为定论”的单子来比较《汉书·地理志》的序论中“没有发生问题的余地”的十三州制,于是冲突立刻起来了:

其一:序论中并没有提到“司隶”而此有“司隶校尉部”。考《汉书·百官公卿表》,司隶校尉为武帝征和四年所置,察三辅(京兆,冯翊,扶风),三河(河内,河南,河东)和弘农。置刺史部十三州事在元封五年,前于置司隶十六年。司隶既应为十三州之一,然则置刺史时尚没有司隶,为什么不为十二州而为十三州?

其二:序论中明云“武帝攘胡,北置朔方之州”,为什么在这个单子上不见有“朔方州”(或朔方部)而但见有朔方郡?又为什么这个朔方郡乃是属于并州的?朔方郡既属于并州了,然则序论中说的“兼徐梁幽并,夏周之制”,早已将朔方郡包括在里面,为什么又要说“北置朔方之州”?

其三:序论中说“南置交趾之州”,而此有“交州”,那么,这一州应当唤作交趾呢,还是交州呢?

这第三问题仅关名称,可视为不很重要。至第一,二问题则关于实际的地理区画,而班固一人的话,《汉书·地理志》一篇的文字竟会如此冲突,这不够人疑惑吗?然则武帝时的十三州究竟有司隶呢,还是有朔方呢,还是两者都有或都无呢?都有,就成了十四州;都无,就成了十二州:这都不合于十三之数。所以我们可以断说:二者之间必仅有其一。

二 对于上述矛盾说的解释四种

从前的学者有一个癖性,是喜欢为古人“圆谎”。他们觉得,古人是没有不对的,只是后世的学者领会不到他的真意思而已。所以,他们只要把古人说话的不可通处委曲宛转地讲通了,就算捉住了这个真意思了。这固然是一番好意,但从此是非不明,而且增加了许多葛藤,为学术界贻下无穷之累。因此,他们对于西汉州制的问题,虽和我们同样地感到班固的话的牴牾,然而永不肯公然责备班固,只想替他设法解释,希望把这些牴牾化成了不牴牾。现在试就我们所能找到的材料,顺了年代写下去。

第一,是唐初所编的《晋书·地理志》。它在总叙中说:

改雍曰凉,改梁曰益,又置徐州,复夏旧号,南置交趾,北有朔方,凡为十三部。(颉刚案,凉,益,荆,扬,青,豫,兖,徐,幽,并,冀十一州,交趾,朔方二刺史部,合十三部。所以云“又置徐州”者,周制《职方》无徐州也。)

这是很明显地取了班固的第一说。但它于并州条则云:

汉武帝置十三州,并州依旧名不改,统上党,太原,云中,上郡,雁门,代郡,定襄,五原,西河,朔方十郡。又别置朔方刺史。

那么,它又取了班固的第二说,把朔方郡归入并州了。不过这位作者也觉得内容有些冲突,乃作一调停之说曰“又别置朔方刺史”。试问朔方郡属了并州,已有并州刺史去监察了,还要这个朔方刺史干什么?若说一位并州刺史,一位朔方刺史,同监这朔方一郡或数郡,试问他们的权限又将如何划分?

第二,是颜师古的《汉书注》。《汉书·平当传》云,“坐法,左迁朔方刺史”。颜注云:武帝初置朔方郡,别令刺史监之,不在十三州之限。他所以这样说,一来是为《汉志》朔方郡下明明有“属并州”之文,不能自立为一州;二来是为班固的第二说中已有司隶凑足十三州之数,更插不下朔方了。颜师古注《汉书》,人称为“班氏功臣”,而对于这一点也无法办,足见这个问题的棘手。

绍述颜师古之说的,有王鸣盛。他在《蛾术编》三十八《汉十三部》条说:

冀,兖,青,徐,扬,荆,豫,梁,雍,幽,并,营,此唐虞之十二州也。

汉无营州,其十一州皆有之,但改梁名益,改雍名凉,而又南置交趾,北置朔方之州,凡十三部,部刺史员十三人,此见于《地理志》,《百官表》,及师古所引胡广《记》者也。据文,似十一州外添交州朔方为十三部。但河内河南三郡注云“属司隶”,而各郡国无属朔方者。《百官表》,“司隶校尉,武帝征和四年置,察三辅,三河,弘农”。三辅是京兆,冯翊,扶风,三河是河内,河南,河东,《续郡国志》此六郡与弘农正属司隶。东汉如此,西汉可知。……且《地理志》叙首虽云“置朔方之州”,而朔方刺史果亦在员数之内,则朔方郡宜专属之矣;今乃注云“属并州”,则知所谓十三部者实是于旧十一州外添交州与司隶为十三,朔方不数。《平当传》,“当以丞相司直坐法左迁朔方刺史”。师古曰,“武帝初置朔方郡,别令刺史监之,不在十三州之限”,是也。

其后迮鹤寿校释《蛾术编》,又于《省并朔方》条下说:

建武……十一年,省减朔方刺史,并入并州。盖朔方郡本属并州部内,因地方辽阔,故别置刺史以纠察之。则知此一刺史本不在十三部之内,故虽大员可以省减也。

看了颜师古的话,朔方刺史只监朔方郡一郡。看了迮鹤寿的话,则因并州地方辽阔所以有两刺史。但是,为了一郡而设置一刺史,这位刺史岂不成为监察这郡太守的专官,太守何太苦?刺史何太闲?况且郡国百三,何以特设刺史的只有这一郡?至于地方辽阔,并州远不及幽,凉,益诸州;若并州设两刺史,幽凉诸州岂不要设三四个刺史?而且如嫌地广,尽可别分为州,何以不分州而但分刺史?若说朔方一郡太大了,故须特置刺史,然则比了他郡,会稽,豫章,南海都特大,为什么扬交等州不再别置刺史?若依王鸣盛之言,“东汉如此,西汉可知”,西汉的没有朔方一州可藉东汉制而证明,这话又嫌太。东汉与西汉既不同时,为什么不容改变州制呢?

第三,是唐杜佑的《通典》。他在州郡序目中说:

汉兴,……开越攘胡,土宇弥广,改雍曰凉,梁曰益,又置徐州,复禹旧号,南置交趾(初为交趾,后为交州),北有朔方(初为朔方,后为并州),凡为十三部刺史(司隶,并,荆,兖,扬,豫,冀,幽,青,徐,益,交,凉),而不常所理。至哀平之际,凡新置郡国六十三焉。

可见他也根据了班固的第二说,以司隶为武帝定州制时的一州,而以朔方郡为西汉时(哀平前)并入并州的,以交趾部为西汉时改名交州的。这样,似乎对于班固的第一说也不算冲突。但哀平以前,何年改交趾为交州?何年并朔方于并州?在朔方未并入并州时,与司隶并立,何以不云十四州而云十三州?这种问题不知他想怎样地解决。如其一起推说为史书的脱误,那么,未免脱误得太多了吧!(其后郑樵的《通志》,马贵与的《文献通考》,都祖述了杜佑之说,于是这个解释也就很占势力了。)

第四,是宋吕祖谦的《大事记》。他开了那篇西汉州郡清账,已完全承受了班固的第二说,但于《司隶校尉部》下又注道:

按《前汉志》,司隶校尉,武帝征和四年初置,察三辅,三河,弘农,则今年初置十三部,尚未有司隶校尉也。

可见他也心知这篇清账是不很伏贴的。但他以为从征和四年起,这篇账是不错的了。所谓“十三州”,乃是征和四年的制度而不是元封五年的制度。然则何以解于朔方之有刺史呢?他道:

胡广《记》云,“汉分雍州,置朔方刺史”,雍州即汉凉州也。以广之言考之,则凉州疆域阔远,分朔方诸郡,别置刺史察之,是凉州有两刺史也。

他引了胡广的话,以为朔方是从雍州里分出来的,雍州即凉州,朔方既有刺史,可见凉州一部中设有两刺史。照他所讲,是当西汉时,刺史部有十三,刺史员有十四。可是胡广的话是可以这样解释的吗?(理由详下第五章。)而且既把朔方定在凉州了,又何以解于《汉志》所说的“朔方郡,属并州”呢?

王应麟的《通鉴地理通释》卷二“十三部”下完全采取了吕氏的两说,但他觉得吕氏的第一说只能适用于征和四年之后,与“元封五年,初置刺史,部十三州”的话不能恰合,于是作一转圜之说曰:

汉十三部:关中三河,司隶自察之。刺史所以有十三员者,征和以前,司隶所统亦有刺史察之也。

他以为在征和以前,关中三河也设刺史,这刺史是十三部之一;征和以后,关中三河始设司隶校尉,这司隶仍是十三部之一。即此可见他还坚持班固的第二说,只因嫌两说的冲突,故在元封五年至征和四年之间添上了一位监察关中三河的刺史。事情固然很好,可是证据在哪儿?

迮鹤寿的态度和王应麟略同。虽然他确守《汉志》之说,谓朔方郡属并州而不属雍州,在这一点上和王氏有异,但他说:

征和以前未有司隶,则三辅,三河,弘农必专设一刺史以纠察之,逮征和四年乃改为司隶校尉耳。……三辅为京畿重地,岂有不专设一刺史者。……三辅刺史部京兆等七郡。……自征和四年始,司隶校尉一人察京兆等七郡,刺史十二人察十二州。……惟朔方郡……添设一刺史以纠察之,不在十三人之内。(《蛾术编》卷三十八“汉十三部”条按语。)

这时把王氏猜测的话实定了。我们倘肯不问证据,这个问题也算有了完满的解决了。

至于交趾或交州的名称问题,王应麟虽也引胡广《记》,说“置交趾刺史别于诸州”,但又说:兼夏周之制为十一州,新置交州,并司隶所领为十三部。可知他也已承认了汉武帝时即名交州的。

综合以上所言,则王应麟意想中的元封五年十三部,是:(一)关中三河刺史部(后改司隶校尉部),(二)豫州刺史部,(三)冀州刺史部,(四)兖州刺史部,(五)徐州刺史部,(六)青州刺史部,(七)荆州刺史部,(八)扬州刺史部,(九)益州刺史部,(十)凉州刺史部(别置朔方刺史部),(十一)并州刺史部,(十二)幽州刺史部,(十三)交州刺史部。这果然合于颜师古的“朔方不在十三州之限”的一义,但终不能合于班固的“北置朔方之州”的第一说以及“朔方郡属并州”的第二说。

以上四种解释,都由于班固的话自相牾而来。综括起来,为下列诸说:
(一)《晋志》既承认朔方为一刺史部,而又以朔方郡属并州。
(二)颜师古以为朔方刺史不在十三州之数。
(三)《通典》既承认有朔方交趾二刺史部,而以为自汉武帝以来即将朔方属并州,交趾称交州,合司隶为十三部。
(四)吕祖谦以为凉州之地有凉州和朔方两刺史。
(五)王应麟以为汉武帝初于关中、三河置刺史,后改司隶。

朔方究竟是独立的一州,还是它州的附庸?如其是附庸,究竟是附庸于并州,还是凉州?武帝定州制时的十三部中,究竟把关中三河放进去呢,还是不放?如其放进去,这监察的人员是刺史呢,还是司隶?这种种问题,看了这种种解释,不但不了然,反而更增加了混乱的程度。他们枉费了许多气力,而对于西汉州制的实际情形依然无法明白。这不能不责备他们立于“调人”的地位,用了“圆谎”的方法,以致把事情弄僵。假使他们肯早说一声“班固的话是自相矛盾的”,这些问题也就早解决了!

除了以上数说之外,还有一个独立的解释,老实说西汉是十二州而非十三部。主张这一说的,是唐许嵩。他在《建康实录》上说:

汉武帝……始放虞舜置一十二州刺史,以领天下诸郡,则《虞书》所谓“咨十有二牧”;扬州是其一焉。(卷一)

能够这样,倒也爽快,只是可惜没法压没证据!

三 《汉书·地理志》郡国记载的时代分析

要批评《汉书·地理志》中的州制的是非,先须研究那些郡国是什么时候的制度。郡国的时代既定,我们始可有一个标准去量度注文所说的“属某州”的话是出于什么时代的。依照一般读者的眼光,似乎这些郡国尽是汉武帝立州制时所有的。稍微严格一点,也不过像吕祖谦的指出广平国和金城郡两条而已。现在我们要用了更严格的眼光对待它。十三州制既为武帝元封五年所创,则这些郡国除掉在这年之前设立的可以不计外,看有哪些是出于这年之后的。下面分为更改,新置,罢并三类去把这些事实排比起来:

(甲)更改:
(1)武帝时:
a.京兆尹———先为中内史,太初元年更名,见《志》。
b.左冯翊———先为左内史,太初元年更名,见《志》。
c.右扶风———先为右内史,太初元年更名,见《志》。

(2)宣帝时:
a.广阳国———高帝时为燕国,昭帝元凤元年为广阳郡,宣帝本始元年更为国,见《志》。
b.高密国———故齐;文帝十六年别为胶西国,本始元年更为高密国,见《志》。
c.广平国———武帝征和二年置为平于国,宣帝五凤二年复故,见《志》。
d.东平国———故梁国,景帝中六年别为济东国,武帝元鼎元年为大河郡,宣帝甘露二年为东平国,见《志》。
e.信都国———景帝二年为广川国,宣帝甘露三年复故,见《志》。
f.楚国———高帝置,宣帝地节元年更为彭城郡,黄龙元年复故,见《志》。

(乙)新置:
(1)武帝时:
按据《地理志》,张掖酒泉两郡开于太初元年,武威郡开于太初四年,敦煌郡则后元元年分酒泉置,事皆在元封五年后。但据《武帝纪》,则元狩三年云,“秋,匈奴昆邪王杀休屠王,并将其众,合四万余人来降,置五属国以处之,以其地为武威酒泉郡”,又元鼎六年云,“遣浮沮将军公孙贺出九原,匈河将军赵破奴出令居,皆二千余里不见虏而还,乃分武威酒泉地置张掖敦煌郡,徙民以实之”,然则四郡之设皆在元封前。《纪》中所言,有事可据,自较《地理志》为可靠。故今不录。

(2)昭帝时:
a.金城郡———始元六年,取天水,陇西,张掖郡各二县置,见《纪》及《志》。

(丙)罢并:
(1)武帝时:
a.沈黎郡———天汉四年罢,并入蜀郡,见《后汉书·西南夷传》。

(2)昭帝时:
a.儋耳郡———始元五年罢(并入珠崖),见《纪》。
b.真番郡
c.临屯郡———上二郡皆始元五年罢,并入乐浪玄菟,见《后汉书·东夷传》。
d.象郡———元凤五年罢,分属郁林牂柯,见《纪》。

(3)宣帝时:
a.文山郡———地节三年罢,并入蜀郡,见《纪》。

(4)元帝时:
a.珠郡———初元三年罢,见《纪》。

现在《汉书·地理志》中,于武帝所罢的沈黎郡,昭帝所罢的儋耳诸郡,已一概不记上,而于昭帝所置的金城郡,宣帝所更改的广阳诸国,则一概都有,足见班固是把西汉末年的地方制度作为他的标准的。序论中虽把汉武帝置十三部刺史的事做了结束,但他并不想做武帝时的地志。所以他在京兆尹下记了平帝“元始二年”的户口数,见得全篇所记的户口数都是那一年的,于是全篇的地方制度也分明根据的是那一年的版籍了。班固根据的是西汉之末的版籍,他确实有心做成一部西汉的《地理志》。所以光武帝所并省的郡县,他不并省。光武帝和明帝所改名的郡县,他不改名。例如东郡寿良县,光武帝因他的叔父名良,改名寿张(见应劭注),但班固仍作寿良。避讳的尚且如此,何况不是避讳的呢!

不幸他终究是一个东汉人,耳濡目染,易为习俗所移,不能严格保守这个“西汉末年”的标准,因此,往往于不知不觉之间把东汉的地方制加进去了。今举数例:

(一)《续汉·郡国志》云,“零陵郡:夫夷,……故属长沙”,是则此县在西汉时当属长沙国。现在《地理志》里,夫夷也在零陵郡。

(二)《地理志》汝南郡慎阳县,颜师古注云,“‘慎’,字本作‘滇’,音真,后误为‘慎’耳。……阚骃云:永平五年失印更刻,遂误以‘水’为‘心’”。如阚氏之说果实,则滇阳的改作慎阳乃是东汉明帝时事。

(三)《郡国志》“代郡”下引《古今注》曰,“建武二十七年七月,属幽州”,可见此郡在西汉时是不属幽州的。按代与云中,雁门等郡都是赵武灵王新辟之地,云中等属并州,则代亦当属并州。然而《地理志》竟云“代郡,属幽州”!

(四)《郡国志》于“鲁国”下注云,“本属徐州,光武改属豫州”,可见此国在西汉时是属徐州的。然而《地理志》竟云“鲁国,属豫州”!

这是他把东汉制溷入西汉制的最显著的证据!我们既知道他有这些错乱,就可把上面所举的自相冲突的两说审查一下。

我们看了《续汉·百官志》说:

司隶校尉,……孝武帝初置,……成帝省。建武中复置,并领一州。

于是可以断然说:司隶虽是西汉的官,但其“并领一州”乃是“建武中”的制度!同样,看了《后汉书光武帝纪》说:

(建武十一年)省朔方牧,并并州。

当然又可以断然说,朔方牧(朔方刺史)的取消,以及朔方诸郡的隶属于并州,乃是“建武十一年”的新制!这两件事既已弄明白,就可知道朔方刺史部是设于武帝而废于光武帝的;司隶虽也设于武帝,但其管领一州则是始于光武帝的。又可知道,班固的第一说为西汉制,第二说为东汉制。西汉的十三部,有朔方,无司隶,不就切实证明了吗?武帝“南置交趾,北置朔方之州”,朔方虽为一州而不以“州”为名,交趾自然也不以“州”为名了。到光武时,朔方诸郡属于并州而称州了,剩下一个交趾自然也只得称“交州”了。所以,前面缠绕不清的十三部问题和交趾名称问题,得此时代的分析,而后连环可解。我们只须把东汉的制度从西汉的《地理志》里清出去,便已尽了研究史学的责任,正不必为班固设法圆谎!

四 废除尘障后对于西汉州制的推测

我们既已知道《汉书·地理志》糅杂两代制度,又知道除此之外更无记载西汉地理的专书,那么,既有为我们所能发见的,自必有为我们所不能发见的,完全而真实的西汉制度将无法得着。我们现在只有推测一个大概。

我觉得,西汉的分州,《汉志》叙论的话是不错的。这十三部是:

(1)冀州刺史部 (2)兖州刺史部 (3)青州刺史部(4)徐州刺史部 (5)扬州刺史部 (6)荆州刺史部(7)豫州刺史部
以上七部,大致为《禹贡》的旧地,故沿用《禹贡》的旧名。(所不同的,是冀州但有《禹贡》冀州的东南部,而将西部让给并州,北部让给幽州,南部让给王畿;又扬州的东部移至江南而将淮南让与徐州;兖州的东北部让与青幽二州;豫州的北部让与王畿,南部让与荆州。)

(8)凉州刺史部 (9)益州刺史部
以上二部,虽亦《禹贡》所有而广狭迥异,故不用《禹贡》的旧名。(凉州的西北部新辟于汉武帝,非《禹贡》的雍州所有。益州的西南部亦新辟于汉武帝,非《禹贡》的梁州所有。)

(10)幽州刺史部 (11)并州刺史部
以上二部,大致为战国时所已辟,其名不见于《禹贡》而见于《职方》。(幽州为燕所辟地,并州为赵所辟地。惟并州所属之太原上党二郡原在《禹贡》之冀州,又幽州所属之朝鲜四郡则为汉武帝所辟。)

(12)朔方刺史部 (13)交趾刺史部
以上二部,非《禹贡》及《职方》所有,亦非战国时所辟;乃初辟于秦始皇,不久放弃,继辟于汉武帝者。(这两个只称为部,不加州名,故应劭汉《官仪》云,“交朔独不称州”。)

元封五年的十三州,应当如此分列。但亦有不可解的,就是那时分部的标准究竟是什么。若说是地域的广狭,那么,现今山西,陕西,甘肃,绥远四省,在当时分为并州,凉州,朔方三刺史部及畿辅之地,而今四川,贵州,云南三省和陕西的南部则当时只合置了一个益州,为什么大小相距会这样远?若说是汉夷管理方法的不同,那么,北方的匈奴,朝鲜,南方的南粤,西南夷,同样是蛮夷,何以于朔方交趾特为分治,而于凉,益,并,幽则又与诸夏合治?又名称上何以对于凉益等州会得创立新的州名,而朔方和交趾则不名为州,致使十三州的称谓有这样的参差?

对于这些问题,劳干先生有两个很好的解释。他说:

汉代所以特设交趾朔方者,因胡越二者早已为汉大患,武帝用不少武力,始得夺此二地于胡越之手,自然对之特别注意,盖国之重镇也。益州之地虽广,但得自西南夷未费大力;且重山为阻,未若朔方之可以通车骑,交趾之可以用楼船也。

西汉对于部刺史,并不称“州”而只称“部”,故成帝鸿嘉四年诏,“谓关东流冗者众,青幽冀部尤剧”。称“州”者不过沿袭载籍旧名,非行政上有“州”之一种制度也。(如益州郡即可称“州”,郡可称“州”,部自亦可称“州”。西汉之凉州部,扬州部,亦犹后世之凉州府,扬州府,与“州”字并无关系。)故交趾朔方之不称“州”,殊不足怪。至翟方进儒生好古,始改刺史为州牧,后人遂因此追称前汉之“部”曰“州”。

我觉得这些解释是我们应当接受的。至于疆域广狭,本难一齐,例如“禹贡”中有至狭的济河间的兖州,又有至广的黑水西河间的雍州;现在有面积三十二万八千方里的浙江省,又有五百五十万方里的新疆省。我们正不必对于汉制怀疑。

记载这个十三州制度较清楚的,就现在所知,似乎只有三处:一是王隆的《汉官篇》,二是班固的《地理志》叙论,三是应劭的《汉官仪》。班固的话已见前。应劭是东汉末年人,他道:

孝武皇帝南平百越,北攘戎狄,置交趾朔方之州,复徐梁之地,改雍曰凉,改梁曰益,凡十三州。所以交朔独不称州,明示帝王未必相袭,始开北方,遂交南方,为子孙基址也。(《太平御览》卷一五七引)

他把“始开北方”来释朔方字义,“遂交南方,为子孙基址”来释交趾字义,固然想入非非,表现他是一个东汉的学究,但他前面一段话却不曾错:朔方是在十三州之内的,交朔是不称州的。

王隆是光武建初中的新汲令,他做的《汉官篇》是一种小学读本,为东汉中叶人胡广所注,名曰《汉官解诂》(见《后汉书·文苑传》及《隋唐经籍志》。《解诂》,即颜师古等所引的“胡广《记》”)。此书原本已佚,幸《北堂书钞》和《太平御览》引用了不少,清孙星衍又加辑集(刻入《平津馆丛书》),我们可以读得一个大概。文云:

十有三牧,分土食焉。……京畿师外,十有三牧分部,驰郡行国,督察在位,〔敷〕奏以言,录见囚徒,考实侵冤,退不录(称)职。……(《北堂书抄》卷七十二《设官部》)
冀:赵常山。(胡注:经曰“冀州既载”。居赵国,今治常山。)
兖:卫济河。(经曰“济河惟兖州”。〔居〕卫国,今治山阳。)
青:齐海岱。(经曰“海岱惟青州”。居齐国,今治焉。
徐:鲁淮沂。(经曰“海岱及淮惟徐州”,又曰“彭蠡既潴”。居吴国,今治九江。)
荆:楚衡阳。(经曰“荆及衡阳惟荆州”。居楚国,今治武陵。)
益:庸岷梁。(经曰“华阳黑水惟梁州”。汉改梁州为益州,今治广汉)。
凉:邠黑水。(经曰“黑水西河惟雍州”。汉改雍州为邠(凉)州,〔邠〕国,右扶风栒邑县,属司隶部,不复属州。今治汉阳。)
雍别朔方。(汉别雍州之地,置朔方刺史。)
交趾:南越。(汉平南越之地,置交趾刺史,列(别)诸州,治苍梧。)
幽:燕朝鲜。(经无幽州而《周官》有焉,盖冀之别也。居燕国,今广阳是。)
并:代晋翟。(经无并州而《周官》有,盖冀州之别也。居燕国,今广阳是。)
(以上《太平御览》卷一五七《州郡部》。并州下“居燕国,今广阳是”系误文;应云“居晋国,今太原是”。)

在这篇歌括里,分明说在“京畿”之外分为“十有三牧”。这十三牧的次序,以《禹贡》九州居先(误脱一个豫州),朔方和交趾次之,幽和并又次之。鲁国还列在徐州,代郡还列在并州,更分明其为西汉的制度。王隆是东汉初年人,当他作这篇书的时候,朔方还是一个独立的刺史部,朔方和交趾都不加上“州”字的。胡广时代较迟,故他于“邠”下注云“属司隶部”,已把东汉制溷入西汉制了,但他还说“不复属州”,看州和司隶部终是有别。这种观念,都足以纠正后人的误解。

王畿何以不列在州内,这个理由很简单。王畿是中央政府直辖之地,是国家的本干,外州则是分枝。《礼记·王制》云:

凡四海之内九州,州方千里。……八州,州八百一十国。天子之县内……凡九十三国。……千里之外设方伯。……二百一十国以为州,州有伯。八州,八伯。

《尚书大传》的《虞夏传》云:

维元祀,巡守四岳八伯。

他们在假想的九州制中,以一州为“天子之县”,八州为方伯所治。在天子的一州中,制度与其他八州有别。这正是中央与地方应有的不同。所以秦有内史,有郡;元有中书省,有行省;明有两京,有布政司。西汉的王畿不列于十三部之内,原是很合理的制度。

五 朔方刺史部的属郡问题

朔方既是一个独立的刺史部,然则它统辖的是哪几个郡呢?关于这个问题,钱大昕找出了两个很确切的证据。他说:

按元帝元封五年置十三部刺史,并与朔方各自为部,未尝属并州也。朔方之属并乃光武建武十一年事耳。上郡亦属朔方部,故冯野王为上郡太守,朔方刺史萧育奏封事荐之。(《廿二史考异》卷七)

就朔方刺史荐上郡太守一事上证明上郡属于朔方部,这是很可信的。他又说:

《后汉书·郡国志》“右并州刺史部郡九”下注“《古今注》曰,‘建武十一年十一月,西河上郡属魏’”。按《光武纪》,建武十一年“省朔方牧,并并州”。此西河上郡必朔方刺史所部,至是始属并州耳。班史,冯野王为上郡太守,朔方刺史萧育奏封事荐之,是上郡属朔方部之证也。注文当有脱漏,又因下引“《魏志》”而衍一“魏”字耳。(《廿二史考异》卷十四)

这因《续汉志》所引《古今注》之文而推定西河郡于建武十一年与上郡同属朔方部,亦极确当。据钱氏之说,则西汉的朔方刺史部当有朔方郡,上郡,西河郡三郡。按朔方郡当今河套地,最在北;西河郡在其南;上郡当今陕西北部安定榆林诸地,又在西河郡的西南:这三郡正好衔接。除此之外,全祖望以为五原郡亦当属朔方部。他说:

五原郡:当云“故秦九原郡,汉初入匈奴。武帝元朔二年开,属朔方”。五原与朔方同置,知汉初尚无九原郡,非但更名而已。朔方五原既归中国而后河西得辟,故别为州。(《汉书地理志稽疑》卷二)

五原在朔方的东面(五原当今鄂尔多斯左翼后旗,朔方当今鄂尔多斯右翼后旗),壤地相接。按《武帝纪》云:

(元朔二年)匈奴入上谷渔阳,杀略吏民千余人。遣将军卫青李息出云中,至高阙,遂西至符离,获首虏数千级,收河南地,置朔方五原郡。

然则这二郡非但同年所置,且为一地所分。关系如此密切,当然应属于一部。又看《后汉书·明帝纪》云:

(永平八年)郡国中都官死罪系囚,减死一等,勿笞,诣度辽将军营,屯朔方、五原之边县。
(永平九年)诏郡国死罪囚减罪,与妻子诣五原朔方,占著所在。

可见这二郡在东汉时还保存它们的特殊关系,全祖望的推测是很合理的。这样,朔方部就有了朔方,五原,西河,上郡四个郡了。《汉书·地理志》中属于并州的郡国,本有:太原郡 上党郡 上郡 西河郡 朔方郡 五原郡 云中郡 定襄郡 雁门郡九个。现在依了钱全二家的考证,我们可以说:在西汉时属于并州的只有太原,上党,云中,定襄,雁门五郡。

按《汉志》:太原、上党,上,云中,雁门五郡为秦置,定襄郡为高帝置,俱为旧有。(定襄郡未必为高帝置,说见王静安先生《汉郡考》上,《观堂集林》卷十二。但此郡当由云中所分,则地为旧有。)朔方,五原二郡为武帝元朔二年置,西河郡为元朔四年置,俱为新辟。(此三郡虽即秦之九原郡及上郡地,但因久没匈奴,至武帝而复得,故仍可视为新辟。)旧有的属并州,新辟的属朔方部,这是很自然的事。至于上郡本旧有而归之朔方者,这是地理上的关系。从三河以北,是太原,上党;又北为雁门,定襄,云中:这是并州。从三辅以北,是上郡,西河;又北为五原,朔方:这是朔方部。

朔方部的属郡还有一个很重大的问题。扬雄《并州箴》云,“雍别朔方”;王隆《汉官篇》把这句钞了进去;因此胡广就注道,“汉别雍州之地,置朔方刺史”。他们三人既都说朔方由雍州分出,而雍州即凉州,然则朔方与凉州哪能没有关系。故吕祖谦云,“凉州有两刺史”。全祖望又云:

金城郡:当云“昭帝始元六年分天水,陇西,张掖各二县置,属朔方。……”
武威郡:当云“故匈奴休屠王地,武帝元狩二(按当作三,下同)年开,属朔方”。
张掖郡:当云“武帝元鼎六年分武威置,属朔方”。
酒泉郡:当云“故匈奴昆邪王地,武帝元狩二年开,属朔方”。
敦煌郡:当云“武帝元鼎六年分酒泉置,属朔方”。

依此说,朔方部的属郡尚有金城,武威,张掖,酒泉,敦煌五个。由扬雄们所说的看来,固有其相当的理由。而且这五郡本皆胡地,把《汉志》叙论所谓“武帝攘胡,北置朔方之州”的话来量度也是对的。

可是,朔方分自雍州之说实在只是古典主义下的产物。《禹贡》云,“黑水西河惟雍州”,则凡西河以西皆属于雍。朔方之地,照《禹贡》讲当在雍州之域,所以《禹贡》雍州有渠搜而汉于朔方郡亦置渠搜县。但汉制是只有凉州而无雍州的,将从何分起?且《禹贡》雍州之域所谓“泾属渭汭,漆沮既从,沣水攸同,荆岐既旅,终南惇物”大都在汉三辅中,三辅是不属凉州的。若更将凉州西北诸郡归于朔方,则凉州所部但有陇西,天水,安定,北地四郡,就是加上武都还不及如今甘肃一省之地,这一州无乃太小?而且在事实上有必不可通的。凡是一州,地方必联贯得起来。现在朔方五原诸郡在东,武威酒泉诸郡在西,中间为北地安定二郡所隔绝。若朔方刺史巡行所部,自东徂西,或自西徂东,俱必越界穿过凉州而后可,这未免不合理吧?

我们须知道,汉代的复古,并不是真的恢复古制,而实在是创立新制。汉武帝时,所以要在郡国之上更立十三部刺史,原由他四方拓地,疆域太广了的缘故,《禹贡》和《职方》不过是他的表面文章。所谓兼周制而有幽州者,实兼有燕之本国广阳,涿,及燕将秦开所辟之上谷,渔阳,右北平,辽东,辽西,加以新辟之真番,临屯,乐浪,玄菟耳。所谓兼周制而有并州者,实兼有赵之本国太原,上党,及赵武灵王所辟之代,云中,雁门耳。其“改梁曰益”者,非真改梁州之名为益州也,乃在梁州(巴,蜀,汉中,广汉)之外更新辟了一个益州(犍为,牂柯,越,沈黎,文山,益州)。其“改雍曰凉”者,亦非真改雍州之名为凉州也,乃在雍州(陇西,天水,安定,北地)之外更新辟了一个凉州(酒泉,武威,张掖,敦煌)。懂得了这个,就可知道当时若没有新立的酒泉等郡,凉州便可不立,也许要把朔方等数郡并合陇西天水而称为雍州了。

而且,再有两个重要的证据。平帝时,王莽以经义正十二州名及分界,凉州仍复古名为雍州,朔方就并入并州了。扬雄因此,便在所作的《并州箴》中说:

北辟熏鬻,南界泾流。画兹朔土,正直幽方。

当汉武帝时,并州在河东,不能以泾水为界;朔方在河西,不能与幽州相值。这时已把朔方并入并州了,所以并州的界,东可至幽州,西南可至泾水。若朔方旧有酒泉等数郡,那么,这时新定的并州之界岂不将西展至玉门关了吗?然而扬雄的《雍州箴》道:

陇山以徂,列为西荒。……并连属国,一护攸都。

是知这时把陇山以西之郡,连同匈奴属国,西域都护,一齐列为雍州之地的。自金城至敦煌五郡,是从陇山到西域的必经之道,当然包括在内。既已在内,则这五郡那能东属并州?再看《光武帝纪》所谓“省朔方牧,并并州”一语,可知朔方牧所辖的郡还是并入并州而非并入凉州(即雍州)的。这五郡只该属于凉州,从这种种关系看来,可以算作确定了。

因为有了以上这些理由,所以我以为全祖望的推金城等五郡属朔方是由于读了“雍别朔方”之文,错认古典为时制。朔方部所属郡,现在虽无法知道清楚,然而推断的结果,有朔方,五原,西河,上郡这四郡,这是应当认为可信的。

十三 结论

九州本是战国人的理想制度;只因他们斟酌地形,用了高山大川来分界,故有实现的可能性。当汉武帝时,巨大的王国俱已削灭,又因国势强盛,南北东西都新辟了很广的疆土,所以他就采用了这个理想的制度来区划他的天下。他在王畿之外分作十三部,其中依《禹贡》和《职方》的旧有州名立了十一部;尚有极南极北的两部,因古书中无可依据,就给以特别的名号。这本来是监察区域,慢慢地变成了行政区域。王莽觉得“十三”不是一个成数,州名不整齐也不好,他改立了十二州。光武中兴,采用王莽的制度而略加修改,又把王畿放了进去,亦为十三州。这等三翻四覆地变花样,把一位专门史家班固弄湖涂了,以致一篇《汉书·地理志》里,忽而西汉制,忽而东汉制。后世的学者看了莫名其妙,既觉得他不全对,又不敢说他错,大家用了猜谜的方法去解释,猜了近二千年。

班固的自身冲突原只有三点:
(1)有无司隶部?
(2)有无朔方部?
(3)交趾与交州孰为正名?

但经过了猜谜式的解释之后,又激起许多新问题了:
(1)朔方是一刺史部,还是一郡?
(2)朔方刺史是附庸于并州,还是于凉州?
(3)关中三河在未设司隶时是否有刺史?设了司隶时是否即与刺史同权?
(4)朔方属并州始于何时?
(5)交趾称交州始于何时?
(6)朔方部的辖郡是哪几个?

在这种问题之下,不知有多少冲突牾的说话,令人看了眼花。现在我们拿这许多说法整理了一回,把他们所以冲突抵牾的原因各给以说明,觉得已有一贯的史实可求。我们获得的事实很简单,就是:
(1)西汉时有独立的朔方刺史部,刺史辖有五原等四郡;
(2)西汉时的司隶校尉和部刺史的职权完全不同,所以与十三州无涉;
(3)王莽时把朔方部并入并州;
(4)光武帝也把朔方部并入并州,又以王畿为一州而使司隶校尉领之;
(5)西汉时的交趾部,到王莽和东汉时改作交州。

除了这些之外,还有一个问题待考。武都郡,从立郡的原意看来,无疑地应如吕祖谦之说,列在益州。但这一郡是居于益州诸郡的北端,凉州诸郡的南端,本来具有两属的资格。《汉书·地理志》虽没有注明属于哪一州,但看班固把《志》分成两卷,上卷以益州诸郡终,下卷自凉州诸郡始,而武都郡是第二卷的第一个郡,与凉州诸郡骈接而与益州诸郡分离,可知班固的意思是把它放在凉州的。《续汉·郡国志》明白列此郡于凉州。曹操复古九州,改凉为雍,武都又为雍州之郡。就是拿现在的省界看,此郡之地为甘肃的武都,文,成,徽及陕西的宁羌等县,居于两省的南端,和四川分界,尚是汉代的凉与益分州的界线。在这种种证据之下,此郡是应属于凉州的。

固然说不定班固又用了东汉制来弄乱西汉制,但在没有发见确实的证据的时候,我们还只能保守这个信念。


25
4月 14

第二天 拉萨

今天去哲蚌寺,这是一早就安排好的行程,尽管我的脚疼甚至比昨天似乎有加重的迹象,但什么也挡不住心气。

我自以为出发之前已经查好了线路,但在拉萨找一个有公交车停的公交站竟是这么麻烦的一件事。不是公交站太不显眼,就是如果你不招手它就不停,当然这都是我后来才知道的。公交站的非显著性是在今天回去以后,而公交车的惰性是在回北京以后。

坐了一路公交车然后倒车,但非常失败地下早了一站。几乎是挣扎着穿过昨天罗布林卡的那个路口,路过了博物馆,来到图书馆,终于坐上了第二趟公交,我第一次感到公交车是这么亲的一种东西。

哲蚌寺的门口的游客们也只是稀稀拉拉。50块钱的门票值不值呢,这不是我当时考虑的问题。

这是亚洲最大的藏传佛教寺庙,有三个显宗学院和一个密宗学院,这让我忍不住想起了那个名叫霍格沃兹的东西。里面有深深的生活气息,这是个还活着的寺庙,而且生机勃勃。

我遇到一个身材高挑、打扮时尚的藏族姑娘,她穿着高跟鞋在石板路上走,我看着她穿过高高低低的狭仄的小路,路过白色的房子,突然间恍然大悟:学城就该是这个样子啊。


16
3月 14

第一天 拉萨

早上的毛毛雨, 在我去不去小昭寺的犹豫中变成了大雨。

刚才的德克士里空空荡荡,现在的建设银行里边也没什么人。但屋檐下却密密麻麻地挤满了人,两个年轻人入神地唱着经,他俩一唱一和的样子让我想到自己丢失已久了的专注。平静的歌声里,我身边的那个老太太念念有词。我突然放下了身上的焦急,雨总会停的,而我有的是时间。

过了一个天桥,我先看到路北面的自治区政府,然后扭头一看,路南赫然就是布达拉宫。顺着人流转了一圈,来到了北京路上的布达拉宫广场上。有个哥们拉住我让我用他碎了屏的手机给他拍照,他意气风发,我怀疑他是骑自行车来的,所以确实有理由像个英雄一样。

我估计这次来也进不了布达拉宫,门票太贵了,还得彻夜排队。所以赶紧在外边多照几张像。雨已经小了许多,雾气沼沼的布达拉宫显得与以前照片里看到的十分不同。

北边的天空开始露出点晴朗的颜色来。然后我开始再次犹豫,接下来去哪呢?我浑身充满了能量,觉得以拉萨这样一个小城,去任何一个地方也就是两三分钟的事。最后我决定去罗布林卡,拉萨的中央公园,他们说。

罗布林卡很大,但没什么人。我去买票的时候,问卖票的姑娘,研究生证能用吗,那姑娘憨憨地笑了,好吧,不能用你至于这样笑吗。我猜她的意思大概是,学生证都不能用,你还整研究生证。

我在一个年久失修的小亭子里歇了一会,可能走得有点久,脚都酸疼了。旁边还有个假山,我在里边钻了两遍,看来和内地的亭子假山没有任何区别。

走在罗布林卡空空的路上,我有点置身于小时候家属院的感觉。路边有棵蒲公英,我想录一段我一吹蒲公英到处飞舞的照片,可摆了半天位置,找了三分钟姿势,用力一吹,蒲公英居然纹丝不动。还有比这更让人沮丧的事吗?难道我内力一衰至此?还好身边没人看到。

里面真是姹紫嫣红开遍,各种各样的绣球花。可我对这些花实在没兴趣。照了一个又一个门牌和指示牌,觉得有点索然无味。我的脚似乎没有缓解的迹象,而且现在已经是下午一点多,虽然太阳还在偏东一点的位置,但我已经饿了。

我一向自诩能吃辣,但第二顿川菜几乎就要把我搞废了。做个抄手至于放这么多辣椒油吗。

我决定下午去大昭寺,于是只要顺着北京路走回去就可以了。过了一个十字路口,来到一个寺庙,红墙上开着的门挂着个匾,上面写的汉字是“关帝格萨拉康”。我看完之后顿觉愤怒:音译不带这样的,关帝是我们汉族人的英雄来着,怎么能把他的名字当音译词用,这也太歧义了。于是我跑了上去,看见那个殿,我怒气冲冲,倒要看看是何方神圣,敢冒关公的名字。一看傻了眼,左关羽,右岳飞,真拜的是关帝啊,这都可以,估计是清朝那帮满大人干的。

又路过了布达拉宫,我抬起头来,此时已是万里无云,阳光明媚。我想到以前写的打油诗,过分的明媚叫做骄傲,这样的明媚,真值得骄傲。

走到八廓街的时候我感到有点不妙,脚的酸疼变成了隐隐透骨的疼。这些商贩卖的东西都是些什么玩意,看来我还是直奔大昭寺吧。

大昭寺的门票有点贵。我买票之前看到一对情侣,那女孩说算了别去了,男孩说不去今天省了钱,回去你就要数落我。买完票又看到一对,这个男孩信誓旦旦地说,布达拉宫是真买不到票,但大昭寺一定要让你去!

人们拍着队往里走,但建筑内都是不能拍照的,于是大家都在房顶上照大昭寺金光闪闪的屋顶。我感到脚开始钻心地疼,于是就在房顶上找个地方坐了下来,看远处的云时诡时谲,也很有意思。

望着远处的布达拉宫,突然想起来今天是我的生日,郑渊洁说,生日是母难日,而这是我第一次过生日的时候没跟爸妈在一块。于是决定给我妈打个电话,但还不能让她发现我来西藏的蛛丝马迹。聊了二十分钟,她没有产生一点疑惑。

我在大昭寺的房顶上坐了很久,一拨又一拨的人来了又走,有事就帮他们拍拍自己,没事就照照身后的云。我觉得这才是适合我的生活。

因为我的脚实在疼得走不动了。

我在大昭寺的广场上又坐了半天,看两伙小孩子玩闹,两个十来岁的女孩子想跳皮筋,但五六岁的男孩一直跟她们打混台,追着她们跑。

他们是姐弟吧。我想如果我有个姐姐,我一定不会这么不是东西,但也说不定。

我想起来海子的那句诗,姐姐德令哈什么的。拿来装逼挺不错的。等回去路过德令哈的时候,我一定要把它发到微博上。


16
3月 14

中山故事 安国

安国向来是中山郡比较重要的城市。但因为几乎在郡最东,所以偶有划出。

安国本是西汉置县时的旧名,魏晋沿袭,晋时划入博陵郡,至北齐废置。

隋朝在安国故地设置义丰县,仍属由中山更名而来的定州或博陵郡,唐不改,后无极与义丰互换,义丰成为祁州附郭,宋改名蒲阴,蒲阴为顺平县的旧名,顺平自唐以后为北平,蒲阴一名因而空闲,后来乾坤挪移到了安国身上,只能令人无语。金元因之,明废蒲阴县入祁州,民国二年遂改祁州为祁县,唯三年与山西祁县重名,仍追复古名安国,真是奇妙的循环。


16
3月 14

使用markdown

Chapter1

Setction

  • item1
  • item2

Chapter2

Section

SubSection

  1. item1
  2. item2

Section


for i in range(10):
print i

this


21
12月 13

Apply DPM code on ImageNet Data

1 ImageSet生成

1.a Train

1.需要构建类别间的体系:list
2.需要构建每个subcategory的list(list of list)
在此基础上,构建每个类的正例list of list(sub_<class_name>.txt),以及相应的负例list of list(fake_<class_name>.txt)
将这些文件全部放入ImageSets文件夹

1.b Test & Val

只需构建所有文件的ImageList

2 VOCcode修改

2.a VOCinit()

VOCopts.annopath=[VOCopts.datadir VOCopts.dataset '/ILSVRC2013_DET_bbox_train/%s/%s.xml'];
VOCopts.imgpath=[VOCopts.datadir VOCopts.dataset '/ILSVRC2013_DET_train/%s.JPEG'];
VOCopts.test_imgpath=[VOCopts.datadir VOCopts.dataset '/ILSVRC2013_DET_%s/%s.JPEG'];
VOCopts.test_annopath=[VOCopts.datadir VOCopts.dataset '/ILSVRC2013_DET_bbox_val/%s.xml'];
VOCopts.imgsetpath=[VOCopts.datadir VOCopts.dataset '/ImageSets/%s.txt'];
VOCopts.clsimgsetpath=[VOCopts.datadir VOCopts.dataset '/ImageSets/%s.txt'];
VOCopts.sub_clsimgsetpath=[VOCopts.datadir VOCopts.dataset '/ImageSets/sub_%s.txt'];
VOCopts.fake_clsimgsetpath=[VOCopts.datadir VOCopts.dataset '/ImageSets/fake_%s.txt'];

2.b VOChash

包含VOChash_init()与VOChash_lookup()两个函数,hash key的计算部分均改为:

h=mod(str2double(s([7:10 16:end])),hsize)+1;

2.c VOCreadrecxml

注释掉10、11、17行:

% rec.source.annotation=x.source.annotation;
% rec.source.image=x.source.image;
% rec.segmented=strcmp(x.segmented,'1');

23行以下改为:

if isfield(x, 'object')
    for i=1:length(x.object)
        rec.objects(i)=xmlobjtopas(x.object(i));
    end
else
    rec.objects = [];
end

2.d VOCevaldet

read annotation处改为

recs(i)=PASreadrecord(sprintf(VOCopts.test_annopath,gtids{i}));

extract objects处增加:

if length(recs(i).objects) < 1
    continue;
end

3 voc-release5修改

3.a data/pascal_data.m

读正样本处:

sub_cls_set = textread(sprintf(VOCopts.sub_clsimgsetpath, ...
                                 cls), '%s');
ids = [];
for sub_cls = sub_cls_set
    single_ids      = textread(sprintf(VOCopts.clsimgsetpath, ...
                                       cls), '%s');
    ids = [ids single_ids];
end

正样本的文件路径:

pos(numpos).im      = sprintf(VOCopts.imgpath, rec.imgname);

读副样本处:

ids = [];
fake_cls_set = textread(sprintf(VOCopts.fake_clsimgsetpath, cls), ...
                       '%s');
for i = 1:length(fake_cls_set)
    single_ids    = textread(sprintf(VOCopts.clsimgsetpath, ...
                                     fake_cls_set{i}), '%s');
    ids = [ids single_ids'];
end

负样本不需要再做查找:

for i = 1:length(ids);
   tic_toc_print('%s: parsing negatives (%s %s): %d/%d\n', ...
                  cls, dataset_bg, year, i, length(ids));
   split_name = regexp(ids{i}, '_', 'split');
   this_cls = split_name{1};
   % rec = PASreadrecord(sprintf(VOCopts.annopath, this_cls, ids{i}));
   % clsinds = strmatch(cls, {rec.objects(:).class}, 'exact');
   %if length(clsinds) == 0
     dataid             = dataid + 1;
     numneg             = numneg+1;
      % split_name = regexp(rec.imgname, '_', 'split')
      % this_cls = split_name(1);
     neg(numneg).im     = sprintf(VOCopts.imgpath, [this_cls '/' ids{i}]);
     neg(numneg).flip   = false;
     neg(numneg).dataid = dataid;
   %end
end

3.b pascal_test.m

读文件的部分:

im = imread(sprintf(opts.test_imgpath, testset, ids{i}));

3.c pascal_eval.m

读取文件列表处:

ids = textread(sprintf(VOCopts.imgsetpath, testset), '%s');