Thursday, January 29

这几天国内在过年,MSN上在线的人都很少。生活在国外的思归倒是随笔不断。在他的一篇随笔里看到“头脑风暴”集体自由讨论专题的连接。粗读了一下,虽然并没有非常详细地介绍我关心的"高级头脑风暴",但是还是有价值的读物。
思考一个问题,不断地设问,从不同的角度看问题,联想,穷尽所能地列举各种可能所带来的好处,确实是学习,研究和工作的重要手段。无论这个方法叫做什么,都不是重要的事情。同妻一起作了近一年的强相关逻辑研究,好多激荡式的思考,热烈的争论都带来耳目一新的感觉。

大怪兽今天发现一个网址:Win32サブルーチンズ。里面有很多出色的介绍Win32编程书,很多已经是绝版的了。幸亏作者公开了那些书的内容。按照怪兽的说法这些内容是MSDN很好的补充。虽然没有时间看,但是也写到blog里存档。


Friday, January 16

BUGS
FeedDemon真是一个漂亮的shareware, 程序从界面到功能看上去都极其专业。用它来读blog和news确实方便。用了这个软件才真正感觉到基于XML的RSS不经意见就有所成就了。
这个软件在多国语言上还有一些bug,我只好用english界面。通过这个软件来看博客堂,我发现了博客堂的一个bug,就是RSS的头没有改成自己的。
我在.Text的source里找了一下,在Dottext.Web.Rss这个类里面,是用硬编码写的。
//Channel Description
writer.WriteElementString("title","WebLogs @ ASP.NET");
writer.WriteElementString("link","http://weblogs.asp.net");
writer.WriteElementString("description",".NETWeblogs by .NET Developers");
writer.WriteElementString("generator",Dottext.Framework.VersionInfo.Version);
这个BUG要是不改正,在加channel到FeedDemon的时候可能会和已经存在的WebLogs @ ASP.NET冲突,必须手动改名。而且随笔的出处联接也都是http://weblogs.asp.net。
.Text好多地方为了重用,搞的结构很复杂,在这个小地方用硬编码确实不可理解。也许是对RSS功能不是特别重视吧。

说到bug,我还遇到了asp.net 1.1的bug。在写一个page template的时候,我将form放入一个ascx中就会导致一个客户端script错误。详细的错误描述在msdn上有描述
http://support.microsoft.com/default.aspx?id=818803
这个bug需要等待一个新的NET Framework 1.1 service pack问世。
暂时的措施是:http://www.asp.net/Forums/ShowPost.aspx?PostID=206709

在另外一个地址上有一些已经发现的bug列标。
http://support.microsoft.com/default.aspx?kbid=821156

重粒子@BUG是程序的魅力之一

Wednesday, January 14

如此SB
1)恨不得大骂。竟然有如此SB的项目。
面对那个白痴项目,我想让它稍微聪明一点。对Oracle COM用一个类封装了一下,用起来类似MS的data access block。 居然被否定了一半。 原因是不能用缺省的VB弹出的出错信息。不是那个出错信息太少, 而是太多了。 靠靠。

2)最近连着读了日经BP网<中国故事--日本最大的离岸开发成功启示录>(1) (2) (3)
外包项目确实是趋势, 中国人件费的廉价,导致如此多的项目发注到中国去。外包项目其实对双方都是有利的。日方可以用相对廉价的代价开发出项目来。中方获得相应的外汇收入,而且一般很少发生拖欠项目经费的事情。
这样的项目一般来说都是日方写出需求说明书,概要设计书,甚至很多项目要写出详细说明书。这个写说明书的工作一般叫做上游工程。项目流到中国去以后,由中国程序员作详细设计和codeing,这个工作叫做下游工程。
外包项目怎样能够保证成功呢?软件的质量怎么控制呢?看看上面那篇文章里成功和失败的对比就很清楚了。
1:交流。交流充分与否是一个项目能否成功的基本前提。
2:热情。一般来说作下游工程没什么激情可言。日方的说明书往往写的详细之极。有的甚至到变量的名称。能否调动出中方的积极性来作这种"体力劳动"呢?
3:跟踪。项目的每一个阶段,是否有明确的负责人,日方是否清楚项目的进度。中方是否及时反应了遇到的困难?
4:测试。中方一定要作充分的单体测试,否则交给日方以后,低级的错误往往导致合作不愉快,会对中方的开发能力产生怀疑。
5:理解。相互的尊重和理解是基本的做人前提。任何的居高临下,阿谀奉承或者种族歧视都是分裂的触发器。

日本也有作下游工程的公司。比如我现在作的这个SB项目就是作详细说明和coding。日本的开发者往往听话地听作苦力。作法是否愚蠢不管他们的事。中国开发者往往是想提出自己的见解,耽误了项目的schedule。任何过分的作法都是不对的。

Saturday, January 10

■PBC001カメラ 「INFに必要なセクションが見つかりませんでした」エラーについて
2003年4月、ヨドバシカメラで購入したPBC001WEBカメラは画像はよく映らないですから、12月ヨドバシカメラで保障期間内で修理してもらいました。結局、新品を交換した。新品のドライバは7月4日のものですから、古いドライバをアンインストールして、7月4日のドライバをなかなかインストールできない状態です。http://www.persol-jp.com/download/download.html#pbc001からDOWNLOADしたドライバと製品付属CDにあるドライバを両方ともインストールしてみました。だめでした。何度もpersol-jp社に質問のメールを出しましたけど、解決できなかった。
----------------
persol-jp社の対処方法
上記問題を解決する手段として下記方法を行って頂く以外に
対応方法がございません。

①Windowsファイルの上書きインストールを行う。

②OSのクリーンインストールを行う。
----------------
そんな無理な答えです。
7月4日のPBC001のドライバに絶対バグがありますと思いますから、私は少し直してみてもうインストールできました。(WindowsXPの場合)
C:\WINDOWS\inf\usbcam.infファイルの最後に
[ClassInstall32]
一行を追加してインストールを続きました。
完璧ではないですけど、万一、他の利用者に同じ問題があれば多少助けると思いますから、やり方をメールでpersol-jp社に出しました。。

実は手元のPBC001の画面品質は理想的ではないですが、ドライバの問題ですか本体の問題ですかよくわからない。
今後ぜひブランド商品(LogiTech?)を使ったほうがよいと思います。

Wednesday, January 7

白痴项目
定论:我现在做的这个项目是极端白痴的。
说明:这是一个从VB6升级到VB.Net的项目。一小部分程序直接使用VS.NET的转换结果。大部分程序都要重新写,主要是因为数据库(oracle)的设计有一些变更。
看看我们经客户定案的程序规约:
1,使用.net framework 1.0 (not 1.1)
2,使用Oracle In Process OLE Automation Server, 而不是ADO.Net的OleDB或者OracleClient。理由1,OleDB或者OracleClient是MS做的,MS不值得信赖。(反驳意见:VB.NET也是MS做的) 理由2:VS.NET的自动转换结果使用的就是Oracle In Process COM
3,每一个函数,类,模块都有一个变量,标明它的ID,输出出错信息和log的时候用
4,共通模块使用link文件的形式引入项目,不是用DLL参照或者项目参照。
5,所有的变量都要有前缀,3个字母, 而不是1个。因为3个字母更清楚。boolean->bln,integer->int,structure->typ
6,所有的函数和过程都有前缀,3个字母加一个下滑线,表明返回值的类型。例:bln_CheckInput()
7,不仅仅服务器上要安装oracle server,客户端也有一个oracle server,用来存储客户端的数据。
8,项目里的文件路径指定使用绝对路径。D:\MDB\XXX9,
9,不要使用TRY...CATCH...FINALLY,要用ON ERROR...


这个世界一定是哪里不对了,是哪里呢?

聪明的你能告诉我吗?