2006年9月19日
i will continue blog at: http://crazycoder.cnblogs.com
welcome to my new home. 
2006年2月14日
2006年2月8日
最近接受一个小任务,用Infopath写一个小表单来录入一些数据,用Infopath的主要目的是希望把XML或者数据库作为数据源,方便以后进行分析。
看了看原来的Word表格,整理出数据的结构,看起来蛮简单,很快就用repeat table做出了一个可以录入数据的Infopath表单。不过看来看去总觉得这个表单太难看了,既然Infopath是用XSL来表现XML数据的,就把表单展开,开始手动修改xsl文件,希望做得好看些。
接下来就遇到了一个奇怪的问题,我在xsl里面用了一个<xsl:for-each>,里面又嵌套了一层<xsl:for-each>,我先用IE测试了一下效果,感觉好多了。然后试图用Infopath进入表单设计画面是,Infopath拒绝打开表单,提示"a view in the form contains a structure that infopath does not support"。
我晕,为什么呢?还没找到答案,只好委屈我们的美女用长得比较抱歉的表单录入数据先了。
2005年12月30日
2005年即将划上句号。今年对于我来说,工作上受到了很多肯定,开心!生活上,即将为人父,高兴!今天收到了MSN产品组的WLM 8的测试邀请,算是新年礼物吧,运气不错!:)
不管怎样,2005对我来说还是有很多收获的一年,我也觉得自己更加成熟了。
希望新的一年里能够继续这种心情和势头,同时多写些东西给大家。
明年计划写的东西主要有:
- Windows Vista
- WinFX
- Software Configuration Management
Bye bye 2005!
2005年11月12日
为了改善公司的文档协作和issue、bug、task等事务的管理及跟踪,最近在试用一家澳大利亚软件公司-Atlassian
的两个产品,Jira
和Confluence
。
这家公司看起来不大,主要产品就是我在试用的这两个,不过成长很快,被评为过去三年以来澳大利亚成长最快的公司之一
,靠的就是这两个产品。客户遍布全球,其中不乏Cisco,Oracle,GE,Nasa等全球知名的大公司。
OKay,废话有点儿多,现在就让我们先来看看这Jira。
Jira是一个简单易用的Issue管理和跟踪的工具,运行在Java平台上。
下载
和安装都很容易,按照安装文档
,只需要十几分钟就可以搞定(包括下载Java JDK
)
。当然我没有为Jira配置单独的外部数据库
(可以使用的数据库有MySQL,MS SQL,Oracle等),否则还是要多花一些功夫的。
安装好之后就首先要在服务器上通过http://localhost:8080
来对服务进行配置(8080是Jira的缺省端口)。具体配置的步骤如下:
- 设置服务的属性,输入license key等
- 设置管理员帐号
- 设置邮件服务信息
- 在Administration页面单击左侧导航栏的Projects,页面中会列出现有项目的列表,列表上面有一个Add Project的链接。
- 单击Add Project链接之后,需要在出现的页面中填写关于新项目的必要信息。
项目成功建立之后,就会返回第一步浏览现有项目的画面。
下图是Atlassian为Confluence这个产品在Jira上建立的在线issue management和tracking项目的主页面。
建立一个新的issue非常简单,只需要两步:
- 选择项目和issue类型
- 填写issue的详细信息
- Find a issue
- View issue details and operations
下面简单列举几个比较常用的操作:
- Assign:可以把某个issue指定给某个团队成员去解决;
- Attach file/screenshot:附加文件或屏幕截图说明issue;
- Link:说明这个issue和其它issue的关系,比如是否重复等等;
- Voting:除了issue的作者,其他人可以对某个投票来表明支持某个issue的内容;
- Watching:每人都有一个Watch List,可以监视自己感兴趣的issue的状态等。
Jira支持一个SMTP的邮件服务器以及若干个POP/IMAP邮件服务器。通过SMTP邮件服务器,Jira会发邮件给订阅系统事件或者被分配issue的人。通过POP/IMPA邮件服务器,使用者可以通过email建立新的issue或者对已有的issue发表评论,非常方便,解决了许多项目团队中信息分散的问题。
Jira中,用户是通过Group来管理的,通过给组的授权,达到管理用户的目的。
Jira的报表功能,和其它有rich client的同类软件,比如IBM的ClearQuest比起来要弱一些。Jira 3缺省提供的报表主要有4个:
- Time Tracking Report:显示指定项目的事件跟踪的详细情况。
- User Workload Report:显示用户的工作负载,也就是说用户还有多少没有解决以及所需要的时间等。
- Single Level Group By Report:可以按照issue中的某个字段来显示当前项目的状态。
- Version Workload Report:显示了指定版本的当前工作量的详细情况,即每个用户未解决问题的数量和剩余工作量。
不过对于许多项目来说,这四个报表远远无法满足项目管理的需要,用户往往需要一些符合自己项目需要的报表,同时也许对报表的格式(字体,图)有诸多要求。这时最好的解决办法就是利用Jira提供的Plug-in API自己写需要的报表。
或者到Jira的用户论坛碰碰运气,看看是否有人已经写了自己需要的插件。实在没办法的话,也可以在Jira中通过建立一些新的*portlets*,也能满足部分要求不高的场合。
增加portlets:
可以直接在Dashboard上增加,也可以通过Manage Portal新增一个portal page,然后把需要的portlets放在新的页面上。
许多portlet实际是建立在filter的基础之上,因此也能比较直观的说明项目的部分状态。
另外,Jira还支持自定义Workflow,具备Time Tracking的功能,并且可以为比较大的issue创建Sub-Tasks,这些都还有待于进一步学习,但是毫无疑问,Jira所具备的这些功能是的团队管理和跟踪issues变得更加容易和有效率。Jira的确是一个很棒的软件。
2005年10月28日
2005年10月16日
Source:http://211.146.0.252/bbs/show.htm?id=000153918&name=xili
小英格玛的新歌:乌兰巴托的爸爸
悠扬的马头琴,纯真的童声,真挚的亲情,在不知不觉中触动着你心中最柔软的地方,真的非常好听。更详细的内容请参考原文。
歌词:
乌兰巴托的爸爸
诺尔曼词曲
想你啊乌兰巴托的爸爸
想念你就唱你教的歌谣
爸爸的心像是辽阔草原
我是羊群像白云
女儿在遥远的家乡
想念你就拉起这马头琴
原那琴声随着风儿飘远
希望你能听得见

2005年9月28日
9月23日到9月25日,我和公司其他几个同事一同参加了微软2005年TechEd北京站的会议。今年微软在中国的TechEd仍然是分三站,广州、上海和北京。北京是最后一站,也是规模(课程数和参会人数)最大的一站了。
三天的课程安排的非常紧凑,几乎可以用马不停蹄来形容每一个参会人员在会场的忙碌。
第一天的上午当然是开幕式,一贯的噱头十足,在一段少林武僧的表演过后,微软公司负责服务器产品及开发工具的全球副总裁Andrew Lees身穿黑衣,头戴斗笠,拿着宝剑走到了舞台中央,开始了他的演讲。


开幕式上,微软向大家描绘了IT业界的发展趋势,微软在其中所扮演的重要角色以及微软可以提供的全面解决方案。同时也有技术人员也向大家展示了下一代操作系统Windows Vista的一些新的特性和新的开发平台给开发人员带来的好处。
接下来的两天半中,我们每一个人都穿梭在不同的会场。北京会场共有十个分会场,也就是说同时至少有10门课在开讲,再加上一些BoF的课程等等,课程的内容可以说是非常丰富。我选择的课程主要集中在软件开发管理、开发工具、微软下一代开发技术、软件测试以及office开发等几个方面。

下面是我的一些感受:
1、微软的软件开发管理哲学和spec文化
微软的软件开发管理一直是实用主义至上,检验一个项目管理人员水平高低或者软件开发方法优劣的唯一标准就是看团队是否能够在规定的时间内开发出高质量的软件产品。在微软,对项目管理的要求非常细致,也积累了很多的经验,看得出微软十分重视经验的累积,成功的经验往往能够得到非常多的重复使用,所以很多时候对某些做法他们也讲不出一个所以然来,只是说这是通过实践经验得到的。比如office开发团队的朱敏博士在“大规模软件开发: 过程与研发管理, 项目管理研发与测试团队的相互关系”中谈到,在微软做项目计划时,工时一般都是由开发人员估计的,如果对同一个任务两个人的估计结果不同,往往以经验丰富的人估计的为准(没有经验的开发人员往往需要到其他人那里寻求帮助,或者加班L);而且微软奉行一个“7X24”原则,就是说原则上,一个功能的开发在计划中不超过7个工作日,而一个任务的计划不超过24个小时,如果超了,就需要分解;另外,微软认为一个开发人员每周实际的编程时间不是40个小时,而是24个小时,其它16个小时会被各种会议、review等活动占据,因此在微软,需要开发人员参加会议会尽量安排在每周一和周五,而完整地留出每周二、三、四让开发人员写代码。微软内部也没有统一的项目管理方法,MSF似乎是微软给业界其它公司特别开发的,他们自己不用(难道微软不属于软件开发业界?);基本上每个比较大的产品团队都有自己的一套做法(比如Office团队和Windows团队的很多做法都不相同),同时很多团队也在尝试一些新的做法,比如office团队最近就引入了敏捷开发理论中的Scrum方法,实际操作中碰到了一些问题,现在也还在摸着石头过河。
微软的项目开始阶段,不管是使用叠代开发还是敏捷开发,项目管理人员写的spec都是整个项目成功的关键,开发人员制定开发计划,测试人员制定测试计划和方案等工作都严重依赖于项目的spec,因此spec的质量很大程度上决定了产品的质量。微软对spec的要求非常高,spec里除了要非常详细的写出用户需求,还要把重要的操作步骤作非常详细的描述,同时要使用诸如Photoshop等工具对软件的界面进行详细的设计,开发人员和测试人员都会对spec进行详细的review。而且在微软,当spec中软件的功能定下来以后,一般不会在往上加新的功能,只会根据项目进展的情况往下减。
2、测试越来越受到重视
除了开发,测试的课程在这次大会上也受到了非常热烈的欢迎,许多测试相关的课程都人满为患,有的课程还有不少站着听课的人。微软的讲师也感叹,目前国内软件企业对测试的重视程度空前的高,许多招聘网站的招聘广告也证实了这一点。
那么在微软,测试人员可以说是团队前进的最大动力,可以说是测试人员在不断推动着整个团队朝着既定目标前进。在微软,测试人员和开发人员在一个团队中的比率差不多,而且开发人员和测试人员的联系非常紧密,有点儿部分彼此的感觉。测试人员随时可以访问团队的代码库,开发人员也可以运行一些测试脚本来验证自己的开发,而且开发中的许多问题也都是双方共同努力解决的。在微软,软件测试的自动化水平非常高,许多测试人员也是开发人员出身,因此微软的测试人员写代码的能力普遍很好,同时他们也借助了一些工具。不过微软的讲师在提到测试自动化的问题是,特别谈到了三个问题:一是不要依赖工具,特别是录制-回放的工具;二是GUI的测试对微软来说也是一个难点,他们也没有很好的解决方案,只能依靠测试人员写大量的测试脚本,不过微软也提到在下一代的Windows中,操作系统的改进回事GUI测试变的比较容易些,这方面也许值得关注。当然微软的自动测试框架搭建的比较好,有产品相关的,也有无关的,结构和层次很清楚,最终测试人员写测试脚本时,往往只要3、5行代码就能够实现一个自动化的测试脚本,我想这一点也应该是我们的测试部门今后需要努力的方向;第三就是微软也没有实现100%的自动化测试,还有不少测试需要人手动完成。
?听完这些测试的课程后,我想我们的测试团队还有非常多的空间可以发挥;同时,不知道现在有没有开发人员希望到测试团队工作?J
3、微软的下一代软件和开发平台
微软的会议总会对自己的产品、技术和解决方案作大量的宣传,这次也不例外。尤其在今年年底和接下来的一两年中,微软有一系列非常重要的产品要发布。在操作系统方面,Windows Vista (项目代号Longhorn)吸引了很多人的眼球,在这次的会议中也有几门课程专门针对Vista给用户带来的新的体验和给开发人员带来的机会作了讲解。
开发方面,Windows Presentation Foundation (项目代号Avalon)和Windows Communication Foundation (项目代号Indigo)分别试图对下一代软件界面的开发和分布式软件开发做出了很大的推动,微软希望下一代的开发平台能够让软件开发变得更加容易,更加安全可靠,更加提升用户的体验。简单说就是微软把更多的技术细节封装了起来,让一般的开发人员只需要关注实现业务功能就可以了。通过在开发中推行WPF和WCF,微软希望能够进一步提升开发效率,比如在微软讲师谢晓的“下一代Windows通讯基础(Indigo)简介”这门课中,他举了一个例子,现在通过WebService实现一个有安全性和事务要求的服务,可能需要5万多行代码;如果使用了WSE 3.0,代码量可以减少到2万多行;如果使用下一代的WCF技术,只需要3行代码就可以实现。这个例子当然并不能代表所有的应用场景,不过提升开发效率显然是微软下一代开发平台的重要目标。通过WPF,微软不仅要把更好的用户体验带给软件用户,还试图把用户界面和业务开发分离,WPF所推荐的编程模式非常类似现在WebForm的编程模式,UI和业务逻辑的代码可以完全分开,同时微软也设计了新的基于WPF的UI设计工具给专业的UI设计人员。
比较遗憾的是这次的讲座中没有Office 12的介绍。
总的来说这次去收获颇丰,而且见到了久仰的、传说中的孙展波,听了他讲的Avalon的课,展波讲课的水平的确不错,也很幽默,讲课中间麦克突然不工作时临危不乱,处理得还是不错。最后,我给课程内容打了8分,讲课水平打了9分。只是俺回答问题得的那件T shirt是老美XL码的,只能给俺未来的儿子当床单了。:)
我还是比较喜欢这样的大会和氛围,希望以后还有机会参加,也能多和各路高人做面对面的交流。
2005年9月1日
今年头一次参加微软在中国举行的大型活动,TechEd。我会参加在北京的TechEd,从9月23号到25号,共三天。
网站上的课程表现在似乎还不全,我想参加一些关于开发过程,以及新的技术比如WPF(Avalon),WCF(Indigo)以及Office开发和商业智能等方面的课程。不知道总共会有多少人参加今年的大会。
北京见!
2005年6月23日
一直以来,我们公司都是采取checkout(exclusive)-edit-checkin的开发模式,现在随着开发团队不断变大,也许有必要试一试checkout-edit-merge的并行开发模式。
下面是从Eric Sink的blog上看到的:
Best Practice: Give concurrent development a try
Many teams avoid all forms of concurrent development. Their entire team uses "checkout-edit-checkin" with exclusive locks, and they never branch.
许多团队都避免各种形式的并行开发。整个团队都使用“checkout-edit-checkin”加上排它锁的方式,并且从不建立分支。
For some small teams, this approach works just fine. However, the larger your team, the more frequently a developer becomes "blocked" by having to wait for someone else.
对于一些小的团队,这种做法未尝不可。不过,随着团队规模不断变大,开发人员因为等待其他人而被“阻挡”的情形更加频繁的出现。
Modern source control systems are designed to make concurrent development easy. Give them a try.
现代的代码管理系统都是被设计为容易进行并行开发。不妨一试。
2005年2月7日
给各位拜个年先,祝大家新年新气象,身体健康,万事如意!
过年要注意安全:春节不要和陌生人发短信 小心有病毒
PS.
还有几个wallop的邀请名额,感兴趣的抓紧时间了。:)
2005年1月28日
2005年1月14日
随着VS2005发布日期的逐渐临近,关于VSTS的文章和讨论也越来越多。星期四我参加了微软的一个关于VSTS DEV/TEST的online chat,许多VSTS开发团队的人和专家为参加chat的用户解答了许多疑问。下面是一些问题和解答:
Q: does the vsts supports performance/load testing for web applications?
A: Yes - "Ocracoke" is our load testing tool and we also support profiling of ASP.NET applications
Q: Does VSTS performance/load testing for web application use Application Center Test code base, or it is totaly rewritten and new?
A: It is rewitten and new. Scripts can now be written in your favorite .NET language
Q: Does VSTS supports multiple client testing?
A: Yes..
Q: Is there another CTP planned prior to Beta 2?
A: Chris, we're still deciding if there will be another CTP before Beta 2. Beta 2 is targeted for March.
Q: Will you add GUI test automation support to VSTS in the future?
A: While we don't support GUI test automation in VSTS (other than for web testing), we do have partners who are currently integrating into our framework. One example is Compuware TestPartner. There are others but because they've not publicly announced their integration, I cannot list them.
Q: can i use the test tools on applications developed in the 1.1 framework?
A: Yes, you can, but they will be executing against the 2.0 framework. So if your application works against Whidbey, then your tests (which will need to be linked against Whidbey as well) should also work. VSTS relies on a number of new-to-Whidbey features, which prevents us from loading the 1.1 run-time.
...
更多的信息可以在这里看到:
http://blogs.msdn.com/robcaron/
2004年12月31日
很久都没有心情和时间写东西了。在04年的最后一天,为我的04年的blog写一个完结篇。
晚上有公司的活动,我精心制作的video也会放映,还挺期待的。;-)
今年的灾难似乎特别多,地震,海啸,我身边的人也在遭受着不幸的事。不过我总是鼓励他们要面对生活,永远向前看。希望所有的人在新的一年里都能有更好的心情。
最后,发一个东南亚灾难的链接,为消除我们小小地球各种灾难尽自己的一点点力量。