RSS
 

Archive for 一月, 2006

【技术】Indy 10 的问题

30

用 Indy10.0.52 写 FTP Server


错误发现:


在 OnChangeDirectory 事件中,raise 自定义异常,在客户端看到错误消息,但命令反馈代码为 200,相当时客户端认为此命令正常执行。


错误研究:


原有程序 IdCommandHandlers.pas 第441行:
          if ExceptionReply.Code = ” then begin
            Reply.Assign(Self.ExceptionReply);
          end;
          // If still no go, from server
          // Can be nil though. Typically only servers pass it in
          if (ExceptionReply.Code = ”) and (TIdCommandHandlers(Collection).FExceptionReply <> nil)
           then begin
            ExceptionReply.Assign(TIdCommandHandlers(Collection).FExceptionReply);
          end;
          if ExceptionReply.Code <> ” then
          begin
            Reply.Text.Add(E.Message);
            SendReply;
          end else begin
            raise;
          end;


当异常抛出后,ExceptionReply.Code 常为 550,而在此部分的运行中,SendReply必将一个没有定义过反馈代码的 Reply 发向客户端。


经分析,当 ExceptionReply.Code 为空字符串时,向 Reply 赋予 ExceptionReply 的值,显然是不何理的。而且异常发生时 ExceptionReply.Code 的值又常是 ’550′。


怀疑是 Indy 的错误,所以将441行:
          if ExceptionReply.Code = ” then begin
改为:
          if ExceptionReply.Code <> ” then begin


可以解决发现的问题。(注释代码:{F34C2328-8505-4FFE-9A94-9D7F8E67E46D})


问题延伸:


这似乎是 Indy10.0.52 IdFTPServer 的一个bug(也不排除我对它的功能理解错误的情况),IdFTPServer.ExceptionReply 属性似乎在使用中没有用处。


先记录如上,暂时解决问题,以后有时间再深入研究。

 
 

铁道部:决不让一个学生站着回家

22

大清早 5点10分起床打车去车站买票

问:有k369学生票么?坐票?
答:没有

问:卧铺呢?
答:没有

问:那站票呢?
答:站票有。不过不能买学生票。

问:为什么不能买学生票?
答:铁道部有规定:今年决不让一个学生站着回家。

 
 

教育见闻(转)

20

1979年6月,中国曾派一个访问团,去美国考察初级教育。回国后,写了一份三万字的报告,在见闻录部分有四段文字:


一、学生无论品德优劣、能力高低,无不趾高气扬、踌躇满志,大有“我因我之为我而不同凡响”的意味。


二、小学二年级的学生大字不识一斗,加减乘除还在掰手指头,就整天奢谈发明创造,在他们手里,让地球翻调个头,好像都易如反掌。


三、重间、体、美,而轻数、理、化,无论是公立还是私立学校,音、体、美活动无不如火如荼,而数、理、化则乏人问津。


四、课堂几乎处于失控状态,学生或挤眉弄眼,或谈天说地,或跷二郎腿,更有甚者,如逛街一般,在教室里摇来晃去。


最后,在结论部分,是这么写的:美国的初级教育已经病入膏肓,可以这么预言,再过20年时间,中国的科技和文化必将赶上和超过这个所谓的超级大国。


在同一年,作为互访,美国也派了一个考察团来到中国。他们在看了北京、上海、西安的几所学校后,也写了一份报告,在见闻录部分也有四段文字:


一、中国的小学生在上课时喜欢把手放在胸前,除非老师发问时,举起右边的一只,否则不轻易改变;幼儿园的学生则喜欢把手背在后面,室外活动时除外。


二、中国的学生喜欢早起,七点钟之前,在中国的大街上见到的最多的学生,并且他们喜欢边走路边用早点。


三、中国学生有一种作业叫“家庭作业”,据一位中国老师解释,它的意思是“学校作业在家庭的延续”。


四、中国把考试分数最高的学生称为学习最优秀的学生,他们在学期结束时,一般会得到一张证书,其他人则没有。


在报告的结论部分他们是这样写的:中国的学生是世界上最勤奋的,在世界上也是起得最早、睡得最晚的;他的学习成绩和世界上任何一个国家的同年级的学生比较,都是最好的。可以预测,再用20年时间,中国在科技和文化方面,必将把美国远远甩在后面。


25年过去了,美国“病入膏肓的教育制度”共培养了几十位诺贝尔奖得者和一百多位知识型的亿万富豪,而中国还没有哪一所学校培养出一名这样的人才。


两家的预言都错了