Author: qingbo

  • 综合症 综合征

    最近在读阮一峰翻译的 More Joel on Software 一书,早上看到第 27 页有个词“埃斯伯格综合征” (Asperger syndrome) 觉得很奇怪──不应该是“综合症”吗?不过我没有深究就放过去了。生活中总是有许多巧合,尤其像现在这样周围通过各种媒介充斥着信息的时代。今天中午看电视,说荷兰在伊丽莎白港终于治愈了“巴西综合征”,屏幕上打出的字幕也是“综合征”。我当时就想,现在的媒体真是没文化,到处都是错词、错字,就像“空穴来风”我从来就没见过有用对的地方。

    不过现在在网上搜了一下,才知道我是错的。紫光拼音输入法论坛上有个关于此问题的[讨论],(http://bbs.unispim.com/viewthread.php?tid=4539),
    “步虚”看起来很有才,在回帖中将“综合征”、“综合症”与外文 “syndrome” 的关系讲得比较清楚:

    “综合征”还是“综合症”?野风兄提出的这个问题,我觉得蛮有意思。因为,它牵扯到东、西方,近、现代不同的思维方式,不同的符号逻辑在医学上的运用问题。

    首先可以肯定的是,综合征、综合症其实是我们中国人对英、法语中syndrome这个单词依不同理解翻译得出的结果,在医学上用来表示:1)一组病情、病态总体上反映或规定的某种疾病、功能失调等;2)疾病、功能失调等表现出的一组典型征候。也就是说,syndrome这个单词本身包含了两个意思:第一,由一组征候或症状标识的某一病症(disease);第二,(确定或不确定的)疾病表现出的一组征候symptoms。

    我们知道,syndrome这个单词本身是由表示“相同的”前缀syn(sun-,)和dromos (一次流出) 组成的。它的具体意思是指相同的、相似的东西一齐涌现,也就是kingdick 版主所说的“好多个‘症’一块发作,n个跳蚤一块跳”这类现象。

    按照西方人的传统思维方式理解,符号与对象,病征与疾病之间的关系是直线对应的。什么样的病征就标识着什么样的疾病,也就是说,病征等于病症。因此,帕金森氏症候群symptoms,在一般人的表述中就成了帕金森氏病或帕金森综合症disease。这里,汉语之所以用“症”字,是因为“症”在古医书中为 “證”。而“證”字强调的是一种直接对应关系,即符号论中的标识关系(indicial)。

    而依我们中国人的传统思维,病征与疾病,特别是复杂的病征与疾病之间不能简单地划等号。它们之间存在的是一种征象关系(symptomatic)。当代科学发现、特别是复杂性科学研究呼应了中国人的思维传统。因此,具体到医学上,当临床上发现有一组典型的症状,人们开始学会从征候的(symptomatic)角度整体地去把握复杂的病情,甚至试图去探寻隐藏在它们后面的具体疾病。在这样的大背景下,“综合征”也就好像慢慢地被越来越多的人使用了。

    不过,在一般的使用者(包括许多医学内行)当中,“综合征”、“综合症”之间并没有明确的、实质的区别。即使有区别,人们也常常会根据不同的语境需要选择使用“综合征”或“综合症”。因此,作为词库,我以为“综合征”、“综合症”两个都应该保留。

    后面有人引用了两篇文章,也是辨析这两个字的:

    小议证、症、征

    陆军

    证、症、征是祖国医学中常用的几个同音字,分别和其他字组成症状、证候、体征等特定词。这三个字不能互换使用,如“综合征”,有人误写为“综合症”;适应证、禁忌证是“证”,而非“症”或“征”。要求规范使用这些字并不是吹毛求疵。
      症(症状),是患者本人的异常感觉,如头晕、目眩、气喘、咳嗽等;证(证候),指病人的一系列相互关联的表现,如风寒证常同时表现出头痛、鼻塞不通、恶风寒、脉浮等;征(体征),是医生在诊察患者时发现的迹象、现象(异常变化),如脉象变化,有结脉、代脉等。
      症状、证候、体征等虽然词义不同,但相互之间有着密切的联系。广义的症状可以包括体征,医生在记录病人症状时往往把舌、脉等部位的反应写上,如风寒证病人的症状中所表现的脉浮就是体征。证候不但可包括多种症状、体征,还可说明病因、病位、病性,如风寒一证即可包括头痛、恶寒、脉浮紧、舌苔薄白等症状和体征,又可表明病因是感受风寒,病位在表,疾病的性质属实证等。
      凭症、征都不能决定治法,如头痛一症,病因有风、寒、暑、湿、火、血淤、气滞等不同,性质又有寒热虚实的差异,因此,仅凭“头痛”这个症状是不能决定治法的。只有“证”是疾病的原因、部位、性质以及致病因素和抗病能力相互斗争情况的概括,是疾病过程中某阶段各种症状的综合,它直接反映疾病的本质,指导医生的治法和用药。因此说中医诊断疾病的目的就在于“辨证”,只有在辨清证的基础上才能谈“治”,根据不同的辨证结果,确定不同的治疗方法。

    《健康时报》 (2001年10月18日第十版)

    还有一篇:

    医学名词“证”“症”“征”规范使用的探讨

    朱建平1(中国中医研究院 北京 100700)

    医学名词“证”、“症”、“征”的混乱使用,一直困扰着学术界、出版界。本文拟从辞源学和中西医学概念等方面,对“症”、“征”、“证”及其相关的字、词进行探析,从其词义演变,以及当今对其概念的界定,来统一、规范它们的使用。不当之处,敬请指正。
    一、证(証、證)、证候
    现在使用的规范字“证”,来源于古代的两个汉字“証”和“證”。
    “証”的本义是谏正。汉?许慎撰《说文解字》:“証,谏也。从言正声,读若正月。谏,証也。从言柬声。”[1]可见“証”与“谏”互训,在最初并无病象的意义。
    那么,古代表达病象意义用哪个字呢?经查阅有关资料,发现古代用“證”字。《说文解字》:“證,告也。从言登声。” [2]《辞源》载“證”:“zhèng 诸应切,去,證韵,照。” [3]概括为五个义项:①证实,证验。②谏。③法则。④证据,根据。⑤病况。通“症”。并举例说明当时“證”与“症”通假。如《列子·周穆王》载:“其父之鲁,过陈,遇老聃,因告其子之證。”这里的“證”是病人告之的病情,即现在所说的症状。
    后来“證”被俗称为“証”,从而赋予“証”的病象意义。如清?段玉裁注《说文解字注》:“今俗以証为證验字,遂改。” [4]
    中医古籍较早记载“證”的有成书于战国时期的《黄帝内经》,其《黄帝内经·素问·至真要大论》载:“病有远近,證有中外” [5]。现存汉·张仲景《伤寒论》大多数章节以“×××病脉證并治”为题讨论外感病的诊治。同时,自古以来,“证”(証、證)与“症”在大量中医文献中时常混用。如《伤寒论·辨太阳病脉證并治上》载:“观其脉證,知犯何逆,随證治之” [6],第一个“證”与脉连用,意指病人的脉象与症状,应用“症”而借用为“證”,而第二个“證”即今所指之“证”。又如清·唐容川著《血症论》,观其内容,主要讨论各种出血类疾病,而不单指出血的症状。因而,此“血症”应为“血证”,应用“证”而借用为“症”。
    随着中医学术的发展,学术界对“症”与“证”辨析越来越清楚。现代中医学家为了适应现代中医教育的需要,在编写中医学教材时,将“辨证论治”作为中医学基本特点之一,予以高度重视。
    研究者发现,中医辨证论治的思想在奠基性医著《黄帝内经》已经孕育,自汉张仲景以降,古代中医学家已经发明了六经辨证、八纲辨证、脏腑辨证、卫气营血辨证、三焦辨证、经络辨证等方法。而明确提出“辨证论治”一词的是清·章虚谷的《医门棒喝》。与“辨证论治”近义的词,在明·周慎斋《慎斋遗书》则记作“辨证施治”。而“辨证”一词可能还要早。虽然宋·张杲《医说》所载“辩证”,并不是“辨证”,但从内容看,还是“辨证”。
    症是症状的简称,是病人自我的不良感觉,往往是对单个病状的描述,如发热、头痛、鼻塞流涕……。症状可以出现在不同的疾病中,感冒有发热,痢疾有发热,中风也可以有发热。感冒、痢疾、中风,中西医都认为是疾病。而中医提出“证”的概念,是非常独特的一个概念,是西医所没有的概念。因为在中医看来,只知道病人患什么病还不够,还必须在病的基础上,进一步辨明属于什么证。因为不同的证,它的治法方药是不同的。只有辨明了证,方能确定治法,并组方用药。譬如,感冒,中医还要辨明属于风寒感冒证、风热感冒证等等。如果发热与恶寒重、无汗、脉浮紧一起出现,中医辨为风寒感冒证,宜疏风散寒解表,用麻黄汤等;而发热重,同时咽痛、脉浮数,可辨为风热感冒证,宜疏风清热解表,用桑菊饮、银翘散等。可见,“证”对于中医来说是一个非常重要的概念。
    何为“证”?学术界众说纷纭。一般认为,证是在疾病过程中一定阶段的病位、病因、病性、病势及机体抗病功能等本质变化的概括。证概念的内涵,随着学术的发展还在不断地变化。有人认为,证不仅有疾病之证,还有健康之证,因而有辨证论治,也有辨证养生。
    “证”字还用于“适应证”、“禁忌证”等名词的组合。适应证、禁忌证有病理的概念,亦有生理的概念,所以使用“适应证”、“禁忌证”比“适应症”、“禁忌症”、“适应征”、“禁忌征”更准确。“适应证”,《辞海》释为:“适合于采用某种治疗措施的疾病或情况。如痈发展成脓肿,应行切开术,脓肿开成为切开的适应证;奎宁治疗疟疾的急性发作有效,疟疾的急性发作即为奎宁的适应证。” [7]“禁忌证”,《辞海》释为:“禁忌证:适应证的反义词。指不适宜于采用某种治疗措施或采用后反而有害的疾病或情况。如痈未化脓即行切开,不但不能治愈,反而可造成败血症,未化脓的痈即为切开的禁忌证。另如属实热性的病证,为用温补药的禁忌证;属虚寒性的病证,为用寒凉药的禁忌证等。”[8]其释义只讲治疗措施,有些局限。如果补充预防保健的含义,就更加全面了。同时必须指出,“适应证”、“禁忌证”名词对中西医学都适用。
    “证”与“证候”的使用也很混乱,这与两者概念界定不清有关。
    而“证候”又需与古代“證候”、“症候”、“徵候”等词作辨析。“證候”一词,见于两晋南北朝文献。晋代指可以验证的天象。如《晋书·天文志上》:“度历象昏明之證候”。南北朝还指症状。如梁·陶弘景《肘后百一方·序》:“撰效验方五卷,具论诸病證候,因药变通。”[9]
    “症候”一词,《辞源》释:“病情,病象。” [10]并引宋·李昴英《文溪集》:“事事挂漏,色色穷空,症候转危,景象愈蹙。”又引明·王守仁《王文成公全书》“大抵忘已逐物,虚内事外,是近来学者时行症候。”
    “徵候”,《辞海》云“犹征兆。将要发生某种情况而预显的迹象。”并非专指疾病征象。[11]
    “证候”作为中医学名词,《辞海》释为:“指患病时出现的互有联系的一组症状。见陶弘景《肘后百一方·序》。可反映疾病的原因和病理变化,了解疾病的部位(如表证、里证)、正气和病邪的盛衰(如虚证、实证)、疾病的性质(如寒证、热证)、病机的变化(如闭证、脱证)等。辨别不同证候,是诊断疾病的重要方法。”[12]
    在中医学术界,对证候的概念,有两种代表性的看法:一种是证是证候的简称,两者内涵相同;另一种是证候是证的外候。证是疾病的本质,证候是疾病的外在表现,即在疾病过程中一定阶段的病位、病因、病性、病势及机体抗病功能等本质变化有机联系的反应状态,表现为临床可被观察到的症状与体征等。如前所述,风寒感冒证的外在表现为发热、恶寒重、无汗、脉浮紧等一组症状及体征,这组症状及体征即为风寒感冒的证候。根据学科发展的需要,对重要的概念做出分化,并对其内涵加以界定,是必要的。因此,后一种看法今后可以作为规范名词来使用。
    因为西医没有证的概念,所以证的英译也一直有不同的译法,常见的有syndrome ,pattern。《多兰医学词典》(Dorland’s Illustrated Medical Dictionary)载“syndrome”: a set of symptoms which occur together; the sum of signs of any morbid state; a symptom complex. In genetics ,a pattern of multiple malformations thought to be pathogenetically related. [13] (同时出现的一组症状,任一疾病的征候总和;症状复合。在遗传学方面,认为是在发病学上相关的多个畸形。)西医传入中国后,syndrome译为“综合征”。英文中没有证对应词,因此由pattern引申而来。pattern:《多兰医学词典》有一种释义为: a characteristic set of traits or actions, as behavior pattern. [14] (一套品格或动作的特征,如行为模式。)。英国著名中医翻译学者Nigel Wiseman 认为英文里没有“证”的对应词,pattern可用来表达一组症状和体征,同时也可用syndrome。美国著名中医学者Dan Bensky也如此译。他们对证、证候没作区别,一般两者混用。
    根据前面对“证”、“证候”的界定,“证候”可译为syndrome。“证”可译为“pattern”。当然,由于“证”、“证候”两个名词表述了一个事物的两个方面,一指本质,一种现象,在具体使用时,应由语境来确定。
    二、症(癥)
    现在的“症”字有两个读音:症状之“症”读zhèng;症瘕之“症”读zhēng。
    症(zhèng):指疾病的表现。《说文解字》未见此字,在古代常用“證”字来表达。如《辞源》释为:“病徵。古皆作‘證’。” [15]《辞海》释为:“疾病的症候情况。如重症;对症下药。” [16]
    “症”是症状的简称。“症状”,《辞海》释为:“病人患病时所发生的异常感觉。如患感冒时的发热、喉痛、头痛、食欲减退等。广义的还包括‘体征’。” [17]
    《多兰医学词典》载“symptom”一词,释为:“any subjective evidence of disease or of a patient’s condition, i.e., such evidence as perceived by the patient; a noticeable change in p patient’s condition indicative of some bodily or mental state. ” [18] (病人的主观感觉。主观感觉的变化,提示患者某些身心状况的改变。)Symptom汉译为“症状”。
    另外,“症”(zhēng)是“癥”简化规范字。
    “癥”:《辞源》释:“腹中结块之病。旧题汉·华佗《华氏中藏经》上《积聚癥瘕杂虫论》:‘癥有劳、气、冷、热、虚、实、风、湿、食、药、思、忧之十二名也。’” [19] 并有“癥瘕”一词,《辞源》释:“癥瘕:腹中结块的病,坚者为癥,成物形者为瘕。……隋·巢元方《诸病源候论》十九有《癥瘕》。” 由于“癥”简化成“症”,于是“癥瘕”便成了“症瘕”。[20]
    所谓“癥”,是腹内有坚硬结块的疾患,是有徵可稽的疾病,其造字从疒从徵,非常科学。如果“徵”简化成“征”,那么“癥”应该简化成“”,而不是 “症”。“癥”简化为“症”,真是匪夷所思,不知当时简化的依据是什么?
    三、征(徵)
    规范汉字“征”,来源于三个古汉字“癥”、“征”、“徵”。
    中国古代“”、“征”字的义项中无一与疾病名词有关。《说文解字》:“,正行也。从正声。征,或从彳。” [21] “”为“征”的异体字,后被淘汰。《辞源》载“征”(zhēng)有远行,出兵征讨,取,抽税,通“怔”等五个义项。而《辞海》则六个义项:①远行;长行。②征伐;征戍。③收;取。④赋税;征用。⑤通‘怔’。⑥姓。但均与医学无涉。
    “徵”:《说文解字》释为“召也。从壬从微省。壬微为徵。行于微而闻达者,即徵也。” [22]《辞源》载“徵”(zhēng)有九个义项:①徵召。②徵聘。③求。④徵收。⑤迹象。⑥證明,證验。⑦姓。⑧八音之一。⑨惩戒。通‘惩’。” [23]而《辞海》载“征(徵)”有五个义项①召;征聘。②求;征求。③问;征询。④迹象。如象征;特征。⑤证验;证明。另《辞海》载“征(徵)验:可以令人信服的证据。” [24]
    由前可知,古代中医用“証”“證”“证”“症”来描述病情、病状,而不使用“徵”。西医传入后,人们在翻译医学名词时选用了“徵”字。当初翻译者之所以做出这样的选择,可能与汉字“徵”所具有的迹象、象征、特征、证明、证验等涵义,与原意较为相符,同时又可与中医用词“証”“證”“证”“症”相区别有关。 “徵”字经简化、规范后成为“征”。
    “征”主要用于西医名词“体征”、“综合征”。
    “体征”,《辞海》释为:“医生在检查病人时所发现的异常变化。如患心脏病时所听到的心杂音患肝脏病时所扪到的肝肿大或所见到的黄疸,患阑尾炎时的腹部压痛等。是医师诊断疾病的重要根据之一。” [25]与英文sign对应。《多兰医学词典》载“sign”:an indication of the existence of something; any objective evidence of a disease, i.e., such evidence as is perceptible to the examining physician, as opposed to the subjective sensations (syndromes) of the patient. [26] (提示某事物的存在;体征:疾病的客观证据,例如医生检查时发现的与病人主观感觉[症状]相反的证据。)而中医往往将体征包括在症状之内,而不单列。
    “综合征”,《辞海》释为:“亦称‘症候群’。代表一些相互关连的器官病变或功能紊乱而同时出现一群症状,往往不是一种独立的疾病,常可出现于几种疾病或由于几种不同原因所引起的疾病。如有显著的全身水肿、大量蛋白尿、血浆白蛋白降低和胆固醇增高时,称‘肾病综合症’。不少综合征用首先发现者的一个或几个学者的姓氏命名,如阿-斯综合征等。中医学中的证候,如脏腑分证、六经分证等,其表现的症状,类似综合征。” [27]“综合征”由英文syndrome一词译得。 “徵”(征)字有迹象、象征、特征、证明、证验等涵义,而“證”(证)则有证实、证验、证据、根据、病况等涵义,所以“征”与“证”亦有相通之处。就内涵讲,综合征相当于中医“证候”。
    四、小结
    由上可知,“証”本义并无病象的意思;“證”则有病象的含义,后被俗字“証”代替,同时“證”还被通假为“症”,作症状解。“証”、“證”,在文字上被后世简化规范为“证”字,而在中医学上则被提炼成一个特有概念的专有名词。
    “症”在古代与“證”是混用的,后世被固定释为症状。但作为“癥”的简化字,有待商榷。“征”()本义与医学无关,它是作为“徵”的简化字,被作为西医名词“体征”、“综合征”译入时所选用的汉字,以便与中医名词相区别。
    “证”“症”“征”及相关字词之间的关系,如下图所示:

    症即症状(symptom)的简称,是病人患病时所发生的主观的异常感觉。体征(sign),是医生在检查病人时所发现的客观的异常变化。中医称症状时还包括体征。综合征(syndrome)是西医学名词。证(pattern)、证候(syndrome)是中医学名词。就疾病而言,症状、体征、综合征、证候都是疾病的外在表现,并非是疾病的本质。而中医“证”的概念是反映疾病本质的。而且,中医的“证”不仅有病理的概念,还有生理的概念。

    比较佩服这些在学术上如此严谨的人,可惜现在社会已经越来越不尊重知识与技术,导致严谨的人越来越少。另外阮一峰的翻译中大量使用了“真地”这个词,按理说应该是“真的”才对吧?也许阮一峰是想保留原书中的俚语风格,应该读“真Di”?

  • 张三眼镜

    半个月前在惠东打了眼镜,回来后却不知道该去哪儿配眼镜。因为上次配了一副眼镜,戴上之后说不出来的难受,也不是不清楚,就是别扭,过十分钟就累得受不了了。后来有一次陪老婆配眼镜,那里帮我把这个调了好久,也没有变好。所以我宁可戴着破裂的眼镜,也不能忍受后来配的那副。我一度怀疑还有正经的配眼镜的地方吗?

    恰好想起有一次 twitter 上有人推荐一家“张三眼镜”,在网上还真的找到了。怀着半信半疑的态度去看了看,老师傅不借助电子仪器验光的手段和本领还是很牛的。帮我看了看以前配的那副,很快就看出来瞳距不对,而且散光度数不对!黑心的眼镜店。

    在那儿验光结束的时候,我戴着插镜片的那个眼镜(我也不知道这东西怎么称呼)就非常舒服了,而且非常清楚。验光的结果,两只眼分别增加了几十度,比我想象的要好。我在眼镜店的一般经验是,验光很快就结束了,大部分时间都在琳琅满目的镜架中浪费掉了。不过在张三眼镜,我大部分时间都花在了验光上,因为自己度数偏高还散光,所以选择余地比较小,直接接受了师傅的建议。

    三天后,拿到眼镜,因为度数有增长,所以开始走路稍微有点晕,但是很快适应了。推荐大家去这家眼镜店。

    感叹一下,国内大部分的岗位上的人,都是在其位却没能力谋其政。我弟弟刚高考完,成绩不是太好,有 loser 对他说,上本二将来肯定找不到工作。我说,没关系,即使你不上学,稍微有点真本领就能找个好工作,这个社会太缺人才了,而教育体系培养人才的成功率真是太低了。

    美国的验光师是需要执照的……国内的执照、牌照呢?只会给做正事的增加障碍……突然想起吴晓波书里一句话:

    我很庆幸能生活在这个充满了变化和激情的大时代,但是说实话,我希望它快点过去。

  • 营养炔线

    发布上一篇文章(假期在惠东)后,霉运仍然在继续,回程的火车又因为江西暴雨晚点达 7 小时之久,让我很崩溃!

    到达南昌站后我下车透气,顺便去站台上的小摊买东西。可口可乐被我一眼认出是山寨货,后来发现了营养快线,觉得这东西挺好喝,就买了两瓶(5 元一瓶的定价很符合铁路的风格)。回到车上后,开盖,咦,怎么这么松?噢,里面还有锡纸密封呢,难道是升级了?我探头看了一眼下铺小朋友的营养快线,人家的就没有锡纸,再仔细比较,最大的区别是──我的瓶子上面没有娃哈哈的商标!

    半小时后我又不小心有了一个大发现──不是营养快线,是营养缺陷!

    gravity-63445263348611125

    人家把”炔“字故意放大,并且在下面标明”Nutri-QueXian“,我竟然迟迟没有发现,惭愧惭愧。不知道看本文的朋友们一开始注意到标题里的文字不是”快“了吗?

    山寨威武!

  • 假期在惠东

    惠东是广东惠州下面的一个小县城。一个多月前,发现到广州的机票特别便宜,于是定下这个假期的行程,到老婆家吃荔枝,埋下了祸根,到目前为止都很倒霉:

    • 启程时正好赶上机场雷雨,雨停后被告知航班取消,国航安排到一个垃圾酒店睡了三小时。再次登机后,飞机不知道等什么垃圾人等了半小时。
    • 到了家之后发现整个假期惠东这边一直要下雨。
    • 跟两个小孩玩,把跟随我多年的眼镜打碎了。决定忍几天,回北京再说。
    • 好久不睡的房间不知道怎么回事,长了好多包,奇痒难耐。
    • 昨天去果园看,一个荔枝都没看到,怀疑被人偷掉了。怀念几年前从树上摘荔枝直接吃,真是新鲜。

    Update – 没想到写此文的时候霉运还没结束,这算是最倒霉的一个假期了:

    • 回程坐火车,路过江西正好赶上暴雨,火车因此晚点达 7 小时之久,我也第一次坐火车长达 29 个小时。我们当初在首都机场被延误还想,火车不会这样的……
    • 路过南昌,买了两瓶”营养炔线“!注意不是营养快线。

    不说自己的运气,这边的发展还是很好的,规范﹑舒适﹑方便的公路客运,沃尔玛,苏宁,该有的购物场所都有,作为一个小县城,足以让那些紧邻京城的城市们感到惭愧了。假如再没有北京,北方发展会是什么样?

    本文在 E71 上的 Opera 里撰写﹑发布,发现 textarea 里文字一多就卡得要死啊。

  • 编程语言中的 true 和 false

    我注意到 web.py 0.33 版本的一个问题,使用它的 Textbox 时,如果初始化给它一个值是 “0”:

    web.form.Textbox('foo', value=0)
    

    那么它 render 出来的代码是:

    <input type="text" id="foo" name="foo"/>
    

    没有 value 属性,但显然这不是我想要的。看它的源文件 form.py 里的 render 函数的相关代码,是这样判断要不要 value 属性的:

    if self.value:
        attrs['value'] = self.value
    

    web.py 0.34 修复了这个问题,改成了这样(完整代码):

    if self.value is not None:
        attrs['value'] = self.value
    

    各种编程语言对于其它类型变量向布尔值的转换都有自己的一套规则。

    C 语言中除 0 之外的所有值都相当于 true. 判断相等的语句如 if (my_var == 5) ... 假如不小心少写了一个等号,那就跟 if (5) 等价了,条件永远为真。有些 C 程序员喜欢把判断相等的语句写成 if (5 == my_var) ... 这样来避免粗心导致的错误,我个人不喜欢这种风格。

    Java 强制所有的条件都使用严格的布尔类型,不用考虑整数 0 会被当作 true 还是 false. 因为写出语句 if (0) {...} 的话,编译阶段就会报错。

    Ruby 中 nil 会被当作 false,整数 0 被当作 true. 空字符串如果作为条件,ruby 解释器会给出一个警告,但是它会被当作 true.

    Python 中很复杂,除以下情况被认为是 false 外,均被认为是 true ( 摘自python 文档):

    • None
    • False
    • zero of any numeric type, for example, 0, 0L, 0.0, 0j.
    • any empty sequence, for example, ”, (), [].
    • any empty mapping, for example, {}.
    • instances of user-defined classes, if the class defines a __nonzero__() or __len__() method, when that method returns the integer zero or bool value False.

    是不是很乱?0 和空字符串在 Ruby 中被当作 true 处理,但是在 Python 中它们都是 False!

    还是那句话,某些闲得太无聊的大学老师喜欢拿这种题来考学生。但是我认为,不要为了记忆而记忆。假如你经常用某种语言,那么它的 true/false 你自然很了解。假如你不怎么用或者因为在多种语言中穿梭而搞乱,那就在迷惑的时候 Google 一下,不会花多少时间的!

  • 软件购买

    今天收到一封同事发的邮件针对某软件,说如果大家试用了觉得需要,可以问他申请购买 license. 邮件结尾:

    If you are using it seriously then please don’t use an evaluation version (this goes for all software) – not only is it illegal, it also keeps money out of the hands of starving software engineers who deserve it.

    盗版直接伤害的是软件作者的利益,但是他们热情的消退明显会影响市场上软件的质量,间接地也会影响到软件用户,包括盗版使用者。这影响在中国尤其严重,所以现在在中国很难看到有人在做桌面软件卖 license。但还是希望更加合理的定价和越来越强的版权意识能让这个市场恢复。手机软件市场的兴起是一个好兆头,不过目前国内舍得为这个付钱的还是少数……

  • 翻看了 blog 以前的文章

    感触颇多。

    同学相聚 – 小强这几天在北京出差,4 年左右没见了,只能抽出一点点时间几个人在公司旁边一起吃饭,不能像以前那样放纵了,因为第二天还得上班。吃饭时他们说小强很能喝,我都记不起来了,看这个刚大学毕业不久写的文章,还挺有趣的。

    昨晚赌赢了 – 第一次工作就是在创业公司,乐趣很多。其实那时候我还在中科院,太无聊去找的兼职,后来也成为我第一份全职工作。

    我退学了 – 看此文,仍然能感受当时复杂的心情,看朋友们在后面的留言依旧让我感动。

    急寻一份新工作 – 我一直渴望自由,相信每个人都是,但是自由需要代价。

    blog 确实会留住许多珍贵的回忆。

  • 通宵游戏

    我们 Team 好久没有过团队活动了,上周老大提议我们通宵打游戏,找回大学宿舍的感觉。于是,昨天晚上我们真的实行了这一计划,到凌晨一两点的时候,大概还有二十人左右,一拨玩桌游,一拨打电脑游戏。不过到三四点的时候,打桌游的就作鸟兽散了……我们玩的电脑游戏包括 CS,红警、星际、魔兽、帝国、文明,不过这其中我只会一点魔兽和 CS.

    我第一次通宵是有一年寒假没有回家在学校待着,农历二十九晚上一夜没睡,第二天(除夕,三十)早上倒不觉得困了。不过到了晚上跟同学在宿舍看春晚,看到九点左右突然不行了,于是睡觉去。一夜的爆竹声一点都没有听见,大年初一醒来的时候,已经是下午五点钟了,正好避免了感受到外面欢庆的气氛而勾起思乡的情绪。不过以后再怎么熬夜,也不能一下睡二十个小时了 🙂

    大学宿舍的生活总是越来越堕落,后来通宵也不是什么稀罕事了,多数是在打游戏。我最喜欢一堆人玩的还是 CS,简单粗暴,并且乐趣多多。尤其是在 03 年左右的时候,CS 特别流行,学校里一栋楼就是一个大局域网,一打开 CS 在局域网里就有好多服务器。因为菜鸟一堆一堆的,像我这种稍微好点的菜鸟就很开心,记得可以在 iceworld 里悄悄跳到他们头顶上然后用刀杀掉。等到05年以后,玩 CS 的就只剩下高手了,局域网里很少能找到服务器,进入外面的服务器只能被虐了。

    昨夜到了凌晨四五点,好多同志就坚持不住了,有的找个地方睡觉,有的看综艺节目,还有的竟然说打不动游戏却在那儿看书!不过可以理解,年纪都大了!

    不管什么名义,熬夜这种事还是少做为好,毕竟伤身体啊。

  • Ruby 解析 HTML (Nokogiri)

    很多时候我们需要爬取网页并且获取页面上的特定内容,不一定是做坏事比如爬取竞争对手的数据。也许我想定期爬自己的网站,找到页面上的链接,并且看它们指向的网页是不是都还可以访问。爬到一个网页,为了获得上面所有的链接,我以前首先想到的是用正则表达式。但是 HTML 并不一定是良构的 XML (如果每个人都用 XML 的标准写 HTML,那我们直接用标准的 XML parser 就好了),写正则表达式的时候你需要考虑大小写、换行、单引号/双引号/没有引号、某些地方的空格,太头疼了。

    更好的办法当然是像在浏览器中使用 JavaScript 一样,在 DOM 树上找东西。我比较习惯用 jQuery,通过 CSS selector 来找页面上的节点非常舒服。

    其实大部分的语言都有人实现了 HTML parser. 拿当下比较火的 Ruby 来说,随便一搜就找到两个:HpricotNokogiri.看名字好像都是日本人写的──不奇怪,Ruby 就是日本人发明的。

    我在 Mac 上先试用了 Hpricot, 很奇怪我测试的一个文档不能正常处理。于是尝试 Nokogiri,很不错,没有发现问题。如果懂 XPath,Nokogiri 提供了 XPath 方式来寻找文档里的节点。或者你习惯了 CSS selector,在 Nokogiri 中也可以用类似 jQuery 的方法:

    require 'nokogiri'
    
    html = '...'
    doc = Nokogiri::HTML(html)
    
    # 获取页面上所有的链接
    doc.css('a').each do |link|
      puts "#{link.content}, #{link['href']}"
    end
    
    # 打出 meta-keywords
    puts doc.css('meta[name="keywords"'])[0].content
    

    使用 Nokogiri 相对于正则表达式的优点当然是更简单直观,而且更安全。缺点呢?如果你只是要页面上很少的数据,Nokogiri 可能比正则表达式稍微慢点,因为不管你要的数据有多么少,它都需要分析整个 HTML 文档(不过 Nokogiri 也提供了 SAX 方式的解析)。

    有意思的是 Nokogiri 一出来就号称比老牌的 Hpricot 快,然后 Hpricot 不服,很快就开始反击,我也不知道现在到底是什么情况了。有兴趣的可以看它们提供的 benchmark. 不过我想解析的速度再慢,这种过程的瓶颈还是在爬取网页这个环节上,尤其在中国这种网速超慢的条件下 🙂

  • 说说凡客诚品(VANCL)的商品评论

    首先写写促使我写本文的事情。

    今天看见某 blogger 的一篇文章广泛流传:我为什么越来越不乐意写博客了。文章内容其实是讲凡客诚品在最近推出的 T-shirt 中的抄袭行为,而现在打开凡客诚品的网站,发现它使用了如下的广告词来推广新产品:

    500 款图案 设计师原创

    让人想起当初 facebook 的新版还在测试,校内网的抄袭过来的“新版”已经上线,并且有大幅标语“校内改版,因你而变”。

    另外在网上搜“凡客诚品 抄袭”,排在前面的页面就有凡客诚品自己的文章:VANCL或成行业“公敌” 加价率只有1.2-2倍。值得关注的是在该文中,凡客诚品使用了大段文字批评其它企业的模仿和抄袭行为,称“其抄袭手法十分低劣”,“已经对部分网站侵权的行为进行了取证”。

    也许这一切只不过是凡客诚品的商业炒作,也许过几天到了一定火候,凡客诚品官方会发个文章说 Flying Mouse 已经加入凡客诚品设计师团队,Shirt.Woot 也已经和凡客诚品合作。但是我觉得这个可能性不是太大。一边抄袭别人,一边在官网的 Press release 批评别人用低劣的手法抄袭自己,这真的很有讽刺意义。看到同为创作者的设计师的作品被抄袭,不知道韩寒是什么感觉。而抄袭者就是他代言的产品的公司。


    扯了半天跟标题无关的,接下来切入正题,讲我的经历──先申明我及我的利益跟凡客诚品没有一点竞争关系。其实我很早就开始在凡客诚品买东西了,并且几个月之前还是非常忠实的拥护者,逢人即推荐,也为凡客诚品拉了不少到现在比我还忠实的客户。

    有一天老婆送我一双鞋,从凡客诚品买的(链接)。我看见了还比较喜欢,因为比较信赖它的品牌。可是第一天穿就感觉后跟非常磨脚,我上班几乎不用走路,穿了厚袜子,到下午就非常疼,晚上回来一看,双脚都破了。仔细查看鞋子,发现后跟的缝合处没有一丝柔软劲儿,坚硬得像石头,好像真的把一块石头缝进去了一样。花 300 块买一双鞋,还要买创可贴,准备让它磨破的袜子。后来发现鞋底的材料很不耐磨,没怎么穿(因为疼),后跟就磨掉一小块了──我在想,为什么不把磨破脚的那一块放在鞋底呢?

    其实偶尔买到一件次品也没关系,谁都是会犯错误的。我让老婆上去写个评论,给以后想买的人参考。真正让人生气的事情发生了──凡客诚品不让差评发表……我后来给凡客诚品客服打了电话,问为什么不让差评发表,他先是问我老婆的手机号码(因为鞋是老婆买给我的),后来确认身份之后,说您的意见很重要,评论会审核一段时间,过几天就会发表──其时我已经看见更晚时间的评论了。

    你懂得这种心情的──你一直被洗脑,等到你醒悟的时候,你会比常人更加憎恨现实。以前每次收到衣服都感到惊喜,是因为好的包装和印象让人下意识地往好处想。这时再回头看之前买到的商品,也不感觉有什么好了──好品质、好设计全是官方的观点,经过过滤的民意。现在看商品评论上方的一行小字:“所有打分与评论均来自已购买本商品用户”,多么巧妙的文案,它让客户觉得这些打分与评论是完全公正和有可信度的!没错,只有购买过的用户才可以发表评论,但这并不是充分必要条件,不是所有购买过该商品的用户都可以发表评论。我感觉鞋子很差的第一反应是自己去写评论,发现不可以才让老婆去写的。现在进入她的帐户,还可以看到订单,但是“我的评论”栏目是空的,写过的评论不见踪影,从订单点击进入商品页面再点写评论,被告知“只有买过商品的客户才可以写评论”。

    这就好像一个恶霸卖东西,把说好话的留下来,觉得不好的人统统赶走。让人不解的是,凡客诚品已经严格限制,必须买过东西的人才有权说话,为什么还要加一道审核的程序呢?很显然,这也是凡客诚品 Marketing 的一部分,他们不放过每一个角落,不止要各种铺天盖地的广告,觉得值得为此付出人力和物力,更何况,这是自家的地皮,不管怎么行!比起淘宝店铺的 100% 好评,这个可操作性高多了。

    平心而论,凡客诚品除了市场做得好,产品在同类企业中也是做得最好的一家之一。但是有些事情,就是让人不可容忍的。

    Update 2010-06-26

    凡客诚品似乎已经承认抄袭,但是差评不让发表的事,要比抄袭更恶心。发现了新料:

    现在看这个搜索结果,发现对于这问题,凡客诚品已经有了官方回答,所谓官方回答,就是客服们遇到此问题很棘手,所以凡客诚品就制定个千篇一律的答复来敷衍客户。为什么我们的评论都不见了?凡客诚品答曰

    您好,很抱歉,由于网站上的商品评论因显示条数数量有限,我们会截取一些具有代表性的客户评论显示到网页中,例如关于商品的面料以及穿着后的舒适度等信息,以引导客户正确的选购商品,即使您的评论没有显示到网页中,并不代表vancl不重视您的评论,如您有任何疑问请直接告知客服人员,我们会及时为您处理。在此请您给予谅解,欢迎您继续关注,谢谢!

    对阉割民意最好的辩解,就是“引导客户正确地选购商品”,凡客诚品果然深谙此道。其实,凡客诚品认为客户没有最基本的判断能力,所以才需要他们“引导客户正确地选购商品”,这是对客户智商的污蔑。以片面的信息来诱导(“引导”)客户,这种做法真的很无耻。摘一段 Animal Farm 中猪 Squealer 给猪 Napoleon 辩解的话:

    “…No one believes more firmly than Comrade Napoleon that all animals are equal. He would be only too happy to let you make your decisions for yourselves. But sometimes you might make the wrong decisions, comrades, and then where should we be?…”

    没错,pigs are generally recognized as being the cleverest of the animals.