Home

May. 9th, 2006

fedora 蓝色小药丸

潘影波

cspyb
内蒙古大学计算机系学生,06级研究生
目前项目
Linux 中蒙文的显示、录入,准备填补空白

(祝他成功。但愿金山可以开放蒙文支持的代码,省得再从头开始)

http://ndnews.imu.edu.cn/mongolia/ 图多杀猫

所有的蒙文字符都是图片。。。。
Tags: ,

Nov. 11th, 2005

fedora 蓝色小药丸

太被动了

组里面十个程序员,有大半反对我写代码时候使用 namespace。这些不可救药的 c++ 程序员!
于是把我的那些文件统统修改一遍,一共是几十个。项目里本来就没有多少文件,于是全部检出,时间间隔 2hrs。
还有挑出来的毛病是使用 std::string。应该统一到 CString。平心而论,CString 直接导出 buffer 的做法很让人喜欢,因为 MFC 整个就是为了方便而设计的,没有数据隐藏,所谓 C 开头的其实都是 struct。这样的 MFC 让 BS 去用,肯定是无法接受的,要是让 OOSC 的作者去用,恐怕他连砸烂机器的心思都有。但是我的代码里 CString 和 string 都太多了。说起维护,我想我从上手编程序到现在也不过这样几天,照样很习惯,他们凭什么不能花几天来适应 namespace 的用法?。。。。
其实有问题的代码都出现在比较新的结构里,但是不能排斥成这个样子啊
要是不允许用 std::vector 的话,我还是去死好了
还有 #define Unicode 还是 #define MBCS,现在要求必须把所有的 L"" 统统变成 _T(""),那样还是不如杀了我吧,痛快一点。要多打多少字符呢。。。。
还有 include 的修改,本来有个 includes 目录(拼写错误!),大家把头文件扔进去,一样互不干涉,并且自己的代码可以干净一点。可是新的规矩出来,不允许设置项目属性。。。。这样的话怎么办才好,把头文件和源代码混起来实在是麻烦死了。项目属性是做什么用的!
最后是 XML 的接口。大家都用着 xiang 的那一份,但是我觉得并不好用,也许是我用错了?xml 里面有那么多内容,而大腕他们的封装也不错,为什么不考虑直接用他们的呢,何必将来重写呢。并且 xiang 的接口必须同时用到 doc 和 node,就算是 CppSQLite3.cpp 也提供了 stmt->execDML 和 stmt->execQuery,真是别扭死了。
数据部分就是被动地接受请求,返回数据。
这程序写得也太被动了。
我提了一万次的意见,自动生成文档和分析的时候可以方便些。但是最后的响应,是“我们的程序直到生命期结束都不会有文档,也不会有人去看文档。直接看目录划分就可以了”。我提目录和文件内部的 namespace 逻辑关系应该一致,像 java 一样,没人用 class view。大家都只操作文件。
还有第三方库的头文件以及库文件位置。一个 linux 那么大的系统都可以有 FHS,为什么我必须把 sqlite3.lib 和 CppSQLite3.cpp 放在自己的工程下面?
好多问题,我想如果我忍耐下去,我会什么都学不到。这里连 cppunit 也少有人知,eclipse 也不了解,我还能从这里学到什么?学习 COM 和 MSMQ 吗?MFC?
这里也没有 Apache 只有 IIS,ActiveX,没有 OOo 只有 word, ppt, xsd, 这里的 ms exchange 经常出故障。
我想去 AWS 组,应该比这里忙一些吧
保川师傅接着我的两小时窗口之后,全部检出。他的习惯比我还差,他喜欢全部检出,然后在 commander 里面移动文件,我总是担心他做这种对文件的操作时候,脑子里有没有在想逻辑关系,也许翔哥说得对,只是因为我们的习惯不一样,我和大家的编码习惯有点不一样,处理习惯有点不一样。。。。在他检出之后,他的机器再次死机了。我想这段时间我既然完全没有办法做事情,不如在这里关税,顺便抱怨一下。
FHS, HIG, 好怀念 linux 中的种种标准。一切皆为标准,世界就会清静许多。std::string 和 std::stringstream 真差。
我快要爱死 cppunit 用 doxygen 生成的文档了。就连 eclipse-cdt 的函数模版也要照顾 doxygen 的面子。我们并不是总是通过看代码来学习的。我有什么办法?
没有 namespace 的时候,私有类和全局类,每个模块的类按照字母顺序排列,一锅粥。一个小程序,用到三种第三方库,包含五六个模块的时候,类的数量已经增长到了两百。对话框可以用 CDlg 这种前缀,看起来好像很整齐,可是我们各种各样的对象。。。。


update20060320
现在在 vss 里面工作有了习惯,本地修改不检出,检出时不覆盖,提交前先做 diff

和以前的想法一样,尽可能减小排他修改的窗口

好吧,也可以说,是忍气吞声地看着别人检出、排他修改,然后自己去做合并。自己吃亏一点,对于整个团队有好处。但是,如果这样做并没有得到他人理解,反而被嘲笑是不懂规矩的傻瓜,那就是进入了纳什均衡的...窝囊的状态。郁闷!

Sep. 17th, 2005

fedora 蓝色小药丸

fedora linux 字典

http://fedoraproject.org/wiki/FAQ/Glossary
http://fedora.redhat.com/docs/jargon-buster/fedora-glossary.html
http://www.redhat.com/docs/glossary/

    假如翻译字典的话,肯定很好玩。但是,如何保持与这三个网页的同步,以及翻译的中间过程采用什么形式,以及翻译之后的公布如何做到同步,都有点困难。成熟的中间过程是 po 但是几个源文件都是 HTML,如何转换... 关键是对 http://i18n.linux.net.cn 的 html2po 不熟悉,试试看

    本来想翻译 yum 的文档,但是发现 fedora docs 网站上好像禁止外人访问 cvs 了?好奇怪的说,难道翻译者也被作为文档撰写者同等对待了?....意味着注册阿,认证阿,烦死了。:(
    好像搞错了。http://cvs.fedora.redhat.com 还是有 docs.shtml 页面的,:)

    为什么我把过程看得比劳动本身还要重要呢,以至于工作是不是做完了也不关心了呢?很多事情,包括做版主,搞翻译,都是这样子。也许是我没有真正理解一个项目究竟是如何成功的:踏踏实实的做事情,把事情做完做好,而不仅仅是关注过程和软件工程的废话。也许我学习一直不好,学各种东西总是浅尝辄止也是这个原因。
    1. 如果找到一个最好的办法,却没有实现它,说明这个办法并不能激励我,说明它不是一个最好的办法。
    2. 如果在找最好的办法时浪费了太多时间,没有精力和劲头再去实现它,那么是得不偿失的。

    我想那些成功的项目管理者素质就在于可以忍受现状,可以在改进流程的同时推进实质性工作,充分利用人力资源而不是技术资源。


    update: 我想不用我去做翻译了。redhat glossary 本来就有中译本。而 fedora glossary 和 jargen buster 有 fedora-gro cvs 翻译。另外,发现 IBM 也有一份 glossary 在 http://www-128.ibm.com/developerworks/cn/linux/glossary/
   

Sep. 10th, 2005

fedora 蓝色小药丸

20050910 教师节 月饼

    今年的八月十五是在 9 月 18 号。也就是说,和崇高的教师节只有一个星期,和抗日救亡的开始也是同一天。很尴尬,央视很尴尬,于是提前一天搞晚会。我想大可不必,晚会主题就搞成抗日救亡团结亲情也可以。

    给老师发短信。也许只有这一次,以后也不会再发了,就像对高中老师做的一样。因为大学里没有出息而导致不敢向高中老师交待,因为工作没有出息而导致不敢向大学老师交待,我究竟应当怎样做才能让自己满意,让家人满意,让老师满意?

    早晨六点起来,继续想昨天布置下的工作,设计软件的架构。大概在晚上十一点是工作动力比较强的时候,而早晨六点把梦里想了一夜的逻辑记录下来,也不是什么好习惯,反正和正常人不太一样, :( 不过我知道今天虽然放假,仍然可以见到中伟,所以抓紧时间整理好思路,可以听听他的意见。

    吃到了月饼。50g 的月饼卖 1.6 Yuan,买了 5 个。如果是 200g 的大月饼,通常价格是 12-20 Yuan,不知道为什么会这么贵——明明可以一口咽下去的!! 并且我还很爱吃,甜甜的,看来今年要破财了。买到的是 "一知万" 广式月饼,有各种不同的馅儿...大概有 24 种,当然不能一次都把它们吃个遍;并且这只是一家,如果把各家的月饼都尝一尝,需要多少钱呢?...心里面算盘珠子上下飞舞,还好,为了在月底增重 xx kg 需要花掉 xxx Yuan,吃掉 xx 个月饼....

update:
    被 BS 了一把,中伟他不喜欢我设计的复杂,希望拿到更简单的方案,:( 不过无论如何,我觉得 "提供两种简单操作" 和 "模块知道" 的想法是没错的。假如功能模块需要某个数据,那么它应当自己构造请求,我们这边不应当叠床架屋。我们只要提供 1. 文件的对象,将操作关联到文件的方法 (网络操作,本地文件,这里会有默认实现); 2. 数据表的对象,将操作关联到表的方法——从这里开始,我们不知道操作的具体内容,但是仍然可以控制参数/返回值的类型; 3. 模块定义的对象,将操作关联到对象的方法——这里我们甚至不知道返回值的类型。
    简化: 使用虚拟模块来为公共数据提供操作,但将结果映射为文件和数据表 (宽进严出)。一切都是为了使被动的虚拟模块可以按需获取数据。但是为什么我们的程序需要知道虚拟模块的操作,而不需要知道其他模块的操作?...因为它是被动的 :( 也许我们可以像 eclipse 一样用 manifesto 来做。



Tags: