![]() |
|
Spaces home joyfirePhotosProfileFriendsMore ![]() | ![]() |
joyfire三尺剑一车书 一支梅千里路
8/20/2008 足球决赛是阿根廷对尼日利亚8/15/2008 去看杨威的男子全能昨天去看体操男子全能的决赛。这票买的真值。 这个项目的特点就是失误多。不断有选手在进行自己弱项时,掉下器械、落地没站稳或踩线出界。关键就是看谁最稳定,失误最小。观众很热情,无论是日本、美国、俄罗斯选手,都能获得掌声和喝彩。很多掉下器械的选手勇敢地继续比赛时,全场响起热烈掌声鼓励。我没拍到比赛时的照片,闪光灯会影响选手发挥。 当然了,最热烈的掌声和喝彩,是留给俺们杨威的。喊得太狠,颁奖唱国歌的时候,嗓子都哑了。 BTW:俺也为奥运顺利举办做了小小贡献。昨晚和朋友吃饭,晚上10点回去路上,在奥运村附近遇到一群抓耳挠腮的老外和出租车司机师傅。老外不会说汉语,只有卡片上的英文地址,热情的师傅们又看不懂,正在用地图比比划划。关键时刻,路人甲乙及时出现,第一拨老外要去“大屯东轻轨站”;第二拨就有点麻烦,要去建国门南大街的某家酒店,可是酒店英文名不能直接对应中文名,拨打114,搞定。老外握手一个劲儿说3X,俺给他一个北京市民标准的友善热情的笑容。出租车司机说:“外儿康图北京”,又跟我说,“哥们,谢啦,英语很重要”。哈哈。 一天下来,累。 赛前场地 热情观众 欢呼声再大一点 棒 赛后遇到大雨,组织者在10分钟内调来了上万套免费雨衣,大家都奔向麦当劳,挤得门都进不去 8/12/2008 昨天去看击剑8/2/2008 近在咫尺8月8日近在咫尺。 旁白:软件行业的惯例,越接近deadline,越像恐怖片情节。《梦断代码》里提到一本叫The Limits of Software的回忆录,记录了美国航空管理局Advanced Automation System项目的悲惨过程。1500名IBM程序员,每天花掉政府百万美元。项目后期,巨大的压力带来严重的心理创伤,“没有人——哪怕作者——可以全身而退”。有人砸烂自己的汽车;有人疯掉;有人自杀;有个项目经理开始吃纸上瘾,项目拖后得越多,他在开会时嘴里的塞的纸就越多。该项目最终因为超出了技术和人力的极限而失败。 我还好,没吃纸,只是每晚三点钟才能睡着。7月份的Beta测试中,BugFree里共登录了75个Bug,目前还剩12个待修正,4个推迟到下一版;Todo List里还有8件事没做,包括3个技术报告,1个软件著作权申请;hp忙得脚朝天,对donkey和shark进行全面清理。 压力大,火气就大,总发恶狠狠的邮件:
发几张图,到了8月8日,大家就可以到官方站点上注册并申请免费下载最新版本的pFind Studio了。 pScan启动界面,pFind Studio家族系列里最年轻的应用软件,首次公开亮相。
pLabel的主界面,接近两万行代码进行了彻底重构,与老版完全不同了。
把全世界竞争对手的软件打得满地找牙。 7/30/2008 偷窃和苏格拉底我爱死色诺芬的《长征记》了,随便翻开一页,从来没有让人失望。 昨晚翻到一页,看到有一次计划偷袭时,两位来自不同城邦的指挥官互相打趣:
给没看过《长征记》的扫扫盲:波斯国王的弟弟小居鲁士起兵争夺王位,麾下最精锐的部队是一支希腊雇佣军。他们长驱直入,从地中海一直打到两河流域,接近波斯首都,今天的伊拉克巴格达。这时却发生了戏剧性的变化,居鲁士意外被杀,树倒猢狲散,往日的战友争相投降国王。一次背信弃义的诱捕把希腊高级将领一网打尽。 身陷万里外的敌境腹地,群龙无首,内无粮草外无援兵。一万希腊人却创造了奇迹:选举将领,约束军纪,击溃围追堵截,行军万里,杀出一条返回祖国的生路。两个指挥官,一般是克里索甫斯指挥前队开路,色诺芬带领其余断后。两人性格不同,但相互信任,配合默契。克里索甫斯病死后,希腊人内部出现裂痕,频繁的兵变和选举使色诺芬无法充分施展智谋,部队遭受了很多损失。 BTW1:以前就提过,中国古代的史官很少真正上战场,更别提指挥部队,因此很难细致客观地描述战争。而古代希腊罗马的贵族们,像色诺芬,后来的亚历山大和凯撒,都留下了不少精彩的战争笔记。 BTW2:色诺芬回到希腊的同一年,苏格拉底却被处死。很想知道这时他的心情。色诺芬和苏格拉底曾经同在骑兵部队服役,据说战场上还被苏格拉底救过。他参加雇佣军前找苏格拉底商量,后者还对他执意离开雅典不满。色诺芬的《会饮》不如柏拉图的《会饮》有名,但他记录的苏格拉底是不是更接近真实呢。 BTW3:《战争与和平》开头就提到,书架上有凯撒的《高卢战记》和《内战记》,其实安德烈一开始就打算离开美丽的妻子,到战场上一死了之。 7/28/2008 又是一年看了一整天《聊斋志异》,没想到是这么度过24点的。最近又看了几本书,一直懒懒散散没上来记。 刚出版的《梦断代码》和《The Best Software Writing I》都是讲程序员文化的,简直把软件行业的大事小情都说遍了,后者甚至还有一篇,专门比较程序员与销售人员的区别,讨论两者如何合作。 有天半夜2点醒来,烦躁不安,翻书架,找到上次老妈买的《挪威的森林》,看到天亮一口气全读完,一点都不觉得困。村上春树的文字简直是魔法。
就因为村上春树在《挪威的森林》里借主人公的话说,自己最喜欢《了不起的盖茨比》,我就也想找来看。记得老妈有,她说没带到北京,于是又到中关村图书大厦买了一本。 十号线开了,下班只需要5分钟就能坐上,估计以后去“光合作用”就少了。海淀图书城、中关村图书大厦、单向街、第三极、还有这个光合作用,每一家书店都是这样,我刚混熟,弄到会员打折卡了,就让什么事情逐渐拉开来。 又是一年,今天还和往年一样,但是这一年却刻骨铭心与众不同。H老板不时骂我一顿,直指我的懒惰、疏失和狂妄。老妈说,能碰到这样的领导和团队,是你的运气好。我也知道这半年狂躁疲惫,一点状态都没有,只能算强撑着不崩溃而已。周围体谅体谅再体谅,总这样下去,变成提起来一条放下一团的废物,对别人不公平。 8月8日就要到了,每天发邮件:“兄弟们离放假还有XX个BUG”。 7/20/2008 关于异常机制和编程style首先放张照片,程序员责任重大,除了正常逻辑部分,还必须在异常发生时周到地帮助无辜的用户。
八卦点题外话,是在Google著名华裔程序员王忻(Niniane Wang)BLOG上看到这张照片的。她刚刚发布了引起轰动的Google Lively。新闻里说Lively是工程师20%时间的业余开发成果。考虑到她的年龄只比我大一个月,实在让人绝望呀 回过头来说正经的,相对C,C++最有价值的改进就是exception了。这半年来pFind的重构,一个水面以下的最大变化,就是把以前return false和GetLastError()风格,用throw和try代替。当然这需要大量的体力活,刚开始遇到不少疑惑。但后来所有人都发现这是偷懒的好方法。一个例子是,老版代码发现一个bug,异常位置和崩溃位置差很远,就是因为前者的return false链条断掉了:出错的函数上面套了11层调用者,有一层没判断返回值。纯C语言的灵活性和直观性的代价是,程序员必须是铁人,有能力妥善处理一切细节。 有了完整的exception处理机制,一旦出现崩溃,pFind2.1就立刻把运行现场所有的信息都记录下来,这样有利于调试,特别是无代码,或BUG重现需要很长时间的情况。这两种情况俺们都要面对:pFind将在网上开放下载,散播到世界各地的生物学实验室;蛋白质鉴定是计算密集型应用,有时候release版运行一整夜才跑到出问题的地方,指望debug版加断点调试是很低效的。 至于现场信息的携带,没有复杂的异常类继承体系,仅仅依靠字符串。组里聪明的年轻人设计了一个异常信息格式化的类,可以很方便地在每个堆栈展开catch的地方追加新的现场内容。这样一层一层加上去,形成类似JAVA的异常报表。 常见的疑问是exception有性能问题。可能不同应用要求不一样。经过实际测试,pFind的性能瓶颈不在这方面。似乎新版GCC编译器对此做了优化。 说到C和C++的比较,很多人可能要提到云风和Linus,以及之前关于C++的大论战。在很多技术问题上赞同云风的观点,甚至有点崇拜。但一直老老实实用C++,没有追随他叛出山门,回到C语言。原因很简单,C++对这个项目更合适:pFind是一个有二、三十个模块,几十万行代码,十几个人合作,历时五年的项目;它很看重速度和性能,但优化的大头,都在流程和算法方面,除了最关键的“热点”以外,其他部分不必也不能牺牲代码的可维护性;而开发人员水平又参差不齐,很多人无法达到用纯C开发大型系统必须的素质要求(像前面提到的bug,传统C风格异常机制下,出错后需要11个函数依次return false,穿越4个不同作者不同时期的代码,只1处懒惰就抵销了其他所有严谨。俺的团队很难达到这种程度的严丝合缝,也没必要付出这么高的开发成本)。这就注定了C++是唯一的可选项。一直在关注其他各种语言,比如D语言,但现实来说只有C++符合条件。 Andrei Alexandrescu对这个问题的看法很中肯:像Linus这样的牛人,他很清楚自己在干什么,开发操作系统内核,合作者都是天才,所以他就真的不需要C++。云风的deepcold引擎很类似,对性能,尤其是一小段时间内(例如0.2秒内)的数据吞吐反馈能力有严格要求,网易又有一帮真正的geek组成的技术团队。 C++最大的陷阱就是程序员——尤其是新手——过分追求奇巧淫技的风气。所以在pFind内大面积推广的都是最朴实的,甚至有点土气的style。例如,继承只在纯虚类接口一种地方使用(具体说就是工厂方法模式);而功能复用都以内嵌对象来实现,不允许继承。(整天喊口号:“接口上移,功能外抽”)。对神奇的泛型基本回避,限制写模板,熟练使用STL就行了。尽管Andrei Alexandrescu的《Modern C++ Design》里的内容很酷(软件开发2.0大会还专门买了一本新的,请他本人签名)。但pFind团队没有能力把握这种style。 C++是一种多style语言,架构师需要做的,就是明智地裁剪符合需要的子集。约束团队抵御诱惑,不拿手头的任务当学习新技术的小白鼠。 BTW1:Python和C++社区的关系很好,很多老牌C++程序员同时也是Python著名玩家,例如豆瓣的阿北。C++标准委员会那帮人甚至在boost里加上了连通Python的内容,还公开说Python是C++的最佳伴侣。Python和C++差异很大,比如是动态语言,比如“所事情只需要一种方法”的设计哲学,这种不同恰恰造成了互补。 BTW2:最后推荐Google刚刚公布的C++代码规范。哈欠,睡觉去了。 7/19/2008 去年圣诞节在星巴克唱歌的一家人要回国了去年圣诞节见到一家人在星巴克门口唱歌,我还在BLOG里猜测那个父亲是AMD的工程师。刚刚发现了这个,原来他是专栏作家。这一家人打算年底回国。祝顺利。 这让我记起07年初偶遇的那场独特的轮滑婚礼,第二天在网上找到了报道和照片。世界真小,或者说网络真大。 7/13/2008 倾力推荐一下“豆氏”的BLOG病了,发烧拉肚子。最近几天旁边的同事接二连三倒下,据说是某个周扒皮为了pFind 2.1的里程碑,剥削得太狠了。这不,俺的报应来了。 这种时候,写不出什么一本正经的BLOG,就推荐豆氏的BLOG吧,最酷的是想象力。我很喜欢她在医院打点滴时,画在兔子胳膊上的漫画作品;还有刚刚发的“野比死了”也很好玩。 你要是不知道野比是谁,或者看不出哪里好玩,说明我们不是一代人。搜了搜,3月11日的BLOG记的东西有点类似:“最后一次武道会时,悟空对贝吉塔说:少年组比赛开始了,你不去看看咱们的孩子?”。
![]()
7/9/2008 我的奥运门票 拿到了奥运门票。我买的是男子体操全能决赛,体操项目里最好看的一场。到时候去给杨威加油 门票并不贵,两张一共300元。票价便宜的后果就是全中国13亿人民都来抢,买到一张非常不容易,第一轮抽签时,我定了七千块钱的票,只中了这300块的两张;第二轮又定了三千块钱,结果一张都没中(当然,这么低的中签率,原因之一就是俺只定热门项目的决赛,比如足球、篮球、乒乓球、羽毛球、体操、跳水还有110米栏)。现在想来,能中一场已经很幸运了。
整整7年前,在思源楼11层的电视机里,萨马兰奇老头好像恶作剧一样,故意把Beijing这个词放到一句话的最后才念出来。愣了一下,然后就欢呼。我靠着窗户边,清楚地听到外头“轰”一声,就像打雷一样,整个城市一下子沸腾起来。那天晚上和几个兴奋的哥们打车,想直奔长安街,可三环上走了一半就彻底堵住了,人们像潮水一样涌到主路上,司机们一起按喇叭,还有人爬到车顶上去挥舞国旗,交警们容忍了不少胡闹。还记得玉渊潭公园的烟花放了好久。 昨晚路过北四环,巨大的鸟巢和水立方发射着奇幻的光芒。OK,总算要到了。 7/6/2008 C++0x标准确定在09年发布搞定了pFind里程碑,放松下来踅摸踅摸天下大势。有段时间没跟进C++0x的进展,今天上网搜索了一下,整理出来。 C++委员会6月份刚刚在法国的Sophia Antipolis举行了会议(WG21)。会议的最大成果是确定了C++0x发布时间,漫长的投票表决过程总算接近结束。今年9月将提交委员会草案,以便公众审阅和反馈,进入ISO程序。Herb Sutter强调,9月的委员会草案就是"feature-complete C++0x“,以后的修改仅仅是bug修正和澄清。希望C++0x的这个“x”是9,而不升到A。 技术细节上,这次会议有两个最主要的features通过投票: 首先是传说中的Initializer lists提案(N2672 N2679),以后可以用更直观的方式初始化STL容器了:
第二项是thread_local( N2659 )。经过近一年来的几次投票,并行机制的内存模型、原子操作和线程包装的多项提案都已经通过投票,这大概是C++0x最重要的变化。 其实每次都会投票通过几十个features,只不过大多数没引起注意,比如我无意瞅到了一项07年获得通过的提案,是Herb Sutter代表微软提交的空指针关键字nullptr (N2431) ,这就可以用nullptr替换VC++下的NULL宏,免得每次往gcc下移植都得手工加入。 这次唯一留的尾巴,大名鼎鼎的concepts(N2081),仍在等待“check in”。按照Herb Sutter的说法,这方面争议基本解决。9月份的San Francisc会议只要就此投票,即可扫清最后障碍,发布标准草案。 以上信息都依据网上来源:Bjarne Stroustrup的C++0x概述报告slices,Google的Lawrence Crowl对线程模型的报告slices, MS的Herb Sutter的BLOG、CodeGear的Alisdair Meredith的BLOG。他们都是委员会成员。另外我还找到一个旁听会议的Java程序员的BLOG,由于视角不同,难免有不少比较,比如C++委员会与JCP的异同。当然,你也可以参考正式、全面但枯燥的会议记录。 7/5/2008 发布pFind 2.1 Beta 2 欢迎大家访问pFind Studio官方站点,包括软件简介、用户手册、演示视频和发表论文。稍后会提供pFind 2.1版的注册和单机版下载。我的RCM论文也在网站上全文公开,欢迎多多引用 pFind 2.1颇有突破,接下来几天的blog,总结一下这半年的经验。今天先说第一条:建立风险识别和控制机制。 去年“软件开发2.0”大会,晚上参加胡百师主持的“项目管理”VIP沙龙,现场有不少项目经理和架构师,讨论话题很多。胡百师建议:“除了Todo List和Bug List,项目经理手里应该有一份Risk List。” 插话一下,那时正是pFind 2.0压力最大,进度拖延,BUG丛生的阶段。偷闲参加“软件开发2.0”大会,跳出来换换脑筋,从技术架构上,从项目管理上,从产品设计思路上,彻底反思了之前的工作。除了本篇BLOG讲的软件工程问题。再举个技术上的例子:听Baidu的前任总工程师的讲座,谈到一个检索加速的案例,他随口说了一句:“大家都能猜到,这是倒排索引的设计出了问题”……回到组里再听ly重构索引的ppt,意识到必要性,马上把这个Feature加入pFind 2.1的Road Map。 跑题了,回来接着说。4月pFind 2.1启动时,我在Google Doc建立项目手册,专门加上了“风险识别和对策”一章,列出各种想到的风险,按重要性进行排序,然后一一填上预防措施,还有最坏情况下的取舍方案,然后每周跟进。 可能项目启动那天是黄道吉日,最让人睡不着觉的几条,都没真正造成威胁。进度比预计顺利得多。还有一大堆惊喜。 俺的成功经历实在不多,尤其是这么完美的比赛过程,所以难免有些迷信。有些运动员总在关键比赛前换上同一双球鞋,俺也决定以后抱着“Risk List大法”不放手了 我猜我的合作伙伴可不喜欢这样,因为这次开发我可能根本没干正事,就是忙着扮演一个政委、牧师或居委会大妈,不停地骚扰大家:时刻在人家耳朵边上唠叨一些政治正确的废话,比如“复用接口上移,复用功能外抽”;逼着每个人修改变量名和类名,加空格和缩进;像个秃鹫一样在别人工位后面露出头:“嘿……没事……就是……那个……你的代码还没上传到SVN上呢”;每过两三天就发一次邮件,强调里程碑和Bug List;在别人最忙的紧要关头,要求双人编程和code review…… Joel on software说:“开发人员把不务正业的程序经理拿来当早餐吃掉” 6/22/2008 停BLOG14天按进度计划,我们会在7月1日发布pFind 2.1 Beta 2,同时pLabel、pBuild和pScan也各自发布新版。这是重要的里程碑。也许是我进入生物信息组3年以来,最重要的一个。每天都感觉在不断接近“把Mascot打得满地找牙”的理想。组里打算为上半年大规模工程开发圆满完成好好庆祝一番(庆祝的事情交给我筹备,可我现在一点心情都没有)。 未来10天,Todo list上还留着不少待处理事项,好多麻烦搞得人睡不好觉。感觉自己变得敏感易怒,刚刚还犯了一次偏头痛。 需要集中精力,把pFind 2.1发布搞到尽量完美。所以不得不停BLOG两周,不好意思。 那么我们7月5日再见。到时候我会邀请蛋白质组学方面的朋友试用pFind 2.1。 6/21/2008 《一把雨伞给这天用》和《沉思录》周四晚上买了格纳齐诺的《一把雨伞给这天用》,周五晚上又买了马可·奥勒留的《沉思录》。 《一把雨伞给这天用》没有一口气看完,只在轻轨上翻了前几十页,又跳读了几个地方。苏珊娜家聊天那段,很有趣。在豆瓣上找到miserwei的书评,同样是仅仅读完了前面一小截,过了99页才找到好玩之处,与我的阅读体验类似。(BOSS H一直说,看《士兵突击》好多次,都是开个头就看不下去了。前两天,看样子他终于耐着性子熬过了前几集。如果他像我一样错序看,也许不会这么痛苦。) 很早就想买《沉思录》,一直有种抗拒感:阳春白雪的古典哲学,因为被克林顿和温总理推崇,作者又是古罗马元首(imperator,常称为皇帝,以前讲过这个词的翻译),于是畅销起来。以前商务印书馆的简装本挤在二楼最里面的书架上;现在变成了“双语典藏版”,与经管、炒股、中国崛起、名人访谈一起摆在书店门口最显眼的地方。据说这书和《资治通鉴》一样,成了官场上的时髦礼物。这是“长尾理论”的经典案例。 6/19/2008 J.K. Rowling在哈佛大学的讲演 昨晚睡前花了2小时追杀3只可恶的蚊子。在等待“嗡嗡”声出现的空隙,我重温了《哈利·波特》前两本。
J.K. Rowling于6月5日参加了哈佛大学2008年的毕业典礼,被授予荣誉学位,并作为特邀嘉宾做了标题为《The Fringe Benefits of Failure, and the Importance of Imagination》的演讲。老实说,我觉得她的讲演比去年BG的更有趣。当然,更公平来说,每年的哈佛毕业典礼的讲演都很精彩。
看来《哈利·波特》里的很多描述和感悟,例如对失败的恐惧、贫困(罗恩一家)、种族歧视、狐假虎威的官僚以及专制压迫,都源于作者的实际体验。保守的宗教团体因邓波利多校长被描写为同性恋而抵制《哈利·波特》,Rowling就此幽默了一把。
6/18/2008 FF3下载日 今天Firefox 3.0正式发布。mozilla基金会号召所有开源支持者们集体行动,创造软件单日下载次数的吉尼斯世界纪录。令人惊诧的是,到现在为止,来自伊朗的下载量已经超过了16万,超过了中国和加拿大,目前排在前三位的是德国、日本和美国。
Firefox的最大竞争对手,微软IE团队送了个恶搞的蛋糕。说起来这两个团队的关系还算不错,总是礼尚往来。上一次,是FF团队同意IE 7使用自己的RSS图标,以利于用户体验的统一。
后续:最终的记录是八百三十多万次,下载量排名前10的国家分别为:美国,德国,日本,西班牙,英国,法国,伊朗,意大利,加拿大及波兰。 6/16/2008 生物信息和创业都知道我患有轻度创业妄想症,痴迷收集各种白手起家的离奇故事,狂热鼓动周围所有合适不合适的朋友下海。可俺手头的工作叫生物信息,传说中最阳春白雪,让热血青年丧失注意力的一种罕见菌类,哦不,我是说一种罕见学科。 所以俺总在饭碗和理想之间寻找联系。 以前就写过BLOG,猜测生物信息领域未来最可能的杀手应用。里面提到的23andMe其实是Google创始人的新婚妻子创建的。(Google两个创始人几乎同时结婚,娶的都是搞生物信息的博士)。今天在科学松鼠会看到一篇以玩笑口吻撰写的创业计划。笑过以后提醒你,并没有看起来那么荒谬,目前硅谷VC资助的生物信息创业公司,基本也就是这些路数。 关于扫描基因取得个人倾向,05年想到时还很兴奋。其实已是老生常谈。电影GATTACA里性感美女谈恋爱的标准模式,就是拔根头,然后留下联系方式,“如果对我感兴趣,打电话”。你可以拿着头发去医院里算命:如果有孩子,得心脏病的概率是多少。 BTW:伦理问题不是工程师的范畴,让哲学、社会学和法律专业的兄弟姐妹去头疼吧。最坏情况下,出现基因专利和昂贵的定制基因服务,就像刘慈欣《赡养人类》里的一号文明一样,富人和穷人逐渐演变成不同物种。 6/13/2008 关于卡夫卡(这篇BLOG十天前就想写下来。明天起软件开发和测试又要忙起来,趁脑袋里印象还没变淡赶紧敲) 读过《变形记》,就知道以后再读卡夫卡的书必须要做好充分心理准备。即使心情最灿烂时翻开,也可能迅速被绝望和抑郁吞没。 如果在网上搜索卡夫卡,赞誉的话车载斗量。最近好几届诺贝尔文学奖得主都喜欢卡夫卡。我最喜欢的中国作家王小波和余华,也自称深受卡夫卡影响。周围的文科朋友,只要提起卡夫卡,话题就特别多。 作为理工科出身的业余文艺虫子,没啥独立观点,只懂附庸风雅。于是数次试图强攻《城堡》,均半途而废,用“不忍卒读”形容绝对恰当。心智不够成熟坚强,朽木不可雕也。 《布鲁克林的荒唐事》里有这么一段,再次鼓起了阅读卡夫卡的勇气。
6/12/2008 华盛顿纪念塔上的清朝宁波知府题字端午节期间看完了易中天的《费城风云》,立宪会议的唇枪舌战很有意思。 附录列出55名代表的生平事迹,有关乔治·华盛顿的一段比较好玩:1848年兴建的华盛顿纪念塔,有块高61米、宽1.2米的中文碑,是当时清朝宁波知府毕永绍题写的,碑文引述前福建巡抚徐继畲的《瀛寰志略》内容,最后几句是这样的: “美利坚合众国以为国,幅员万里,不设王侯之号,不循世及之规,公器付之公论,创古今未有之局,一何奇也!泰西古今人物,能不以华盛顿为称首哉!——大清国浙江宁波府镌,耶酥教信辈立石,咸丰三年六月初七日。” 搜索一下有关历史:赠碑时,徐继畲已被罢官了。赠碑不到三个月,毕永绍也从宁波知府的职位上离任。1862年,洋务派建立外交部,徐继畲复职为三品京堂,美国总统特别委托国务卿,请艺术家绘制一幅华盛顿画像,远涉重洋,命美国驻华公使赠给徐继畲。
|
||||||||||