其他
我的编程之路--大学趣事
当时教学信息化程度很低, 没有投影,只靠老师在上面口干舌燥的干讲, 其中有个“菜单”的概念彻底把我给搞迷糊了, 我无论如何都想象不出计算机编程和饭店的“菜单”到底是怎么关联起来的。
一直了上机时间, 真正把Turbo C打开, 才恍然大悟, 菜单不就是上面一排能够操作的东西嘛, 到底是谁起了一个这么怪名字!
当时刚刚学会ASP,会搞一点动态网站的开发, 天真的以为用个数据库的like 语句就能做搜索了。
后来没想到图书馆的老师回信了, 告诉我某月某日下午2点去找他,见了面老师谆谆教诲说, 搜索可不是Like, 得建立索引才行, 这个你还暂时做不了, 不过图书馆的网站要改版了,你们可以做一做,于是我就得到了这么一个小小的项目机会。
你看找项目还得主动啊。
我一个人用FoxPro 做,FoxPro自带了数据库及开发工具, 做这种小项目是在是太方便了。
等到所有的信息都录入进去了, 人家提了个要求, 说40个人一个考场, 要把所有的考试人员打乱以后再打印准考证,防止熟悉的人坐在一起考试。
我当时想了一个点子: 考试人员的姓名应该是随机的, 按姓名排个序不就自然把人员打乱了嘛。当时还挺自鸣得意的, 多好的点子, 数据库一点儿都用动。
真正把准考证打印出来以后就傻眼了: 一个考场全是姓张的, 另一个考场全是姓王的....... 几乎同姓的都坐在了一起。
不知道后来监考老师或者考生发现这个规律没有, 真是太囧了......
打印准考证时发生了一件很悲惨的事。 当时一张纸上我记得是打印9个准考证, 等到所有的都打印完了, 就会把所有的纸摞起来, 用一个特制的剪刀,就像照相馆切照片一样, 把准考证一个个切好。
这就要求每张纸上打印出来的准考证一定要对齐,要不然就会切坏。
刚开始打印的时候,把一摞纸放在打印机的入口,自动进纸, 可是打印出来的准考证总是对不齐。 这就没法批量的切了。
我花了很多时间仔细排查代码, 也找不到最终的原因。
后来偶尔发现,一张一张的往打印机里边放纸, 就没有问题。
结果估计你能猜到, 我就坐在打印机旁边, 一张一张的放了整整一夜.....
通俗点讲就是给定一个轴承,系统按照特定的条件(例如厂家,型号)等从轴承数据库中选取另外一个轴承。
这个模块有个小Bug , 就是选出的轴承别的条件都满足, 但有些时候在直径的精度不符合要求, 这在对安全要求极其严格的铁路系统上是不能容忍的,
但是操作员重新选择可能就没事了。
我被分配来改这个难于重现的Bug, 这是典型的遗留代码程序, 一个方法长达好几千行, 为了仔细研读, 改正这个bug ,我把它打印了出来, 足足打了10几页纸。
那个暑假我就经常坐着床上,捧着这充满Visual FoxPro的代码纸带看,不知道看了几遍,终于看明白了其中的逻辑。
但是由于当时没办法把系统的数据库Copy回来做单步调试, 看懂了代码以后依然找不到Bug 的原因。
后来毕业以后看到有人讨论浮点数的比较问题, 说是不能直接比较,应该相减后和一个极小数或者0比较, 突然间想到了当年轴承维修系统, 意识到很有可能是因为比较高精度浮点数处理不当引起的, 可惜那个系统已经被替换掉, 再也没有改的机会了。
这本书主要介绍网页制作,由于我之前搞过个人网站, 所以就负责写了动态网页的部分,包括javascript 和ASP编程, 其中有一章专门讲怎么建站, 我就近水楼台的把我的网站建立过程给讲了一遍, 还附带了我的网站的截图,现在看来成了一个宝贵的留念。
今天回过头来看看, 这本书写的挺糙的。 10多年后,我和同学们聚会, 其中有个同学的朋友也来了,他说,你知道吗, 当时你那边书对我的帮助还挺大的, 特别实用, 汗。。。