﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-邋遢居-随笔分类-开源软件使用</title><link>http://www.blogjava.net/JetGeng/category/11830.html</link><description>我的Java天堂</description><language>zh-cn</language><lastBuildDate>Fri, 31 May 2013 21:32:17 GMT</lastBuildDate><pubDate>Fri, 31 May 2013 21:32:17 GMT</pubDate><ttl>60</ttl><item><title>通过vim和markdown编辑Evernote中的笔记</title><link>http://www.blogjava.net/JetGeng/archive/2013/05/31/400046.html</link><dc:creator>Jet Geng</dc:creator><author>Jet Geng</author><pubDate>Fri, 31 May 2013 14:57:00 GMT</pubDate><guid>http://www.blogjava.net/JetGeng/archive/2013/05/31/400046.html</guid><wfw:comment>http://www.blogjava.net/JetGeng/comments/400046.html</wfw:comment><comments>http://www.blogjava.net/JetGeng/archive/2013/05/31/400046.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/JetGeng/comments/commentRss/400046.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/JetGeng/services/trackbacks/400046.html</trackback:ping><description><![CDATA[<h2>原起<br /></h2><p><a target="_blank" id="" href="http://evernote.com/">EverNote</a> 的强大已经无需多说。他自己有很好的客户端，不过那个只是对Windows和OS X。在linux下面就虾米菜了。就是Windows和OS X下面的客户端也存在一个致命的弱点：不支持 <em>MarkDown</em> 。 <br />不过有好人做了一个工具 <a target="_blank" id="" href="http://www.geeknote.me/">Geeknote</a> 让我们可以在任何装有python的机器上使用Evernote。 更强大的是他可以使用任何编辑器编辑笔记，支持 <em>MarkDown</em> 。 有如此好处还等什么啊赶紧用起来。<br />个人在使用的时候发现原版有点点不舒服的地方，做了点点小改动放在了 <a target="_blank" id="" href="https://github.com/jetgeng/geeknote">GitHub</a>。 具体是什么改动，先买个关子。</p><h2>安装</h2><h3>直接从源码安装 <br /></h3><ol><li>使用 git clone git@github.com:jetgeng/geeknote.git 命令下载源码<br /></li><li>进入 geeknote 目录。<br /></li><li>运行 python geeknote.py login 登录evernote<br /></li><li>通过 python geeknote.py create , python geeknote.py edit , python geeknote.py find 命令来创建，编辑和查询你的ervernote 中的笔记。<br /></li><li>通过 python geeknote.py settings --editor vim 命令把编辑Evernote的编辑器设定成我最喜欢的vim。 当然你可以设定成你喜欢的。<br /></li><li>这个时候你已经用上了GeekNote。 但是还会有点不爽。最起码我这个时候不爽。</li></ol><h2>不爽的地方</h2><ol><li>当我用python geeknote.py edit 命令使用vim打开我要编辑的笔记时,笔记居然没有把 <em>MarkDown</em> 语法给我高亮出来! 不爽！！<br /></li><li>输入命令一定要带一个什么python 之类的太繁，而且我tab的时候也没有给我把命令补全！在命令行中没有自动补全，太不爽了！！</li></ol><h2>改之<br /></h2><h2>让vim正确设定filetype</h2><p>在
vim中一般是根据文件的后缀名来识别该文件是什么类型。然后为他加载相应的语法高亮，代码补全什么的。在没有改动前geeknote是为笔记创建的临时
文件时没有后缀的。只是随机的创建一个形如 tmpsNbc8k这样的文件。所以Vim无法识别他是何种文件，就无法为他加载对于的语法高亮之类的。</p><p>既然找到原因了就先看一下geeknote是否有什么地方可以设定，让他产生的临时文件有后缀。最后在editor.py文件中发现了这么一行代码： <em>(tmpFileHandler, tmpFileName) = tempfile.mkstemp()</em> 。 直接没有给任何后缀的想法。<br />那就加上吧。 <br />我所做的动作就是这个，给他加上了一个文件后缀的设定。<br />通过python geeknote settings --suffix suffix 这样的命令来设定零时文件的后缀。这样语法高亮，代码补全就回来了。小爽一下！</p><h3>命令行自动补全 <br /></h3><p>这个其实geeknote已经想到了，而且已经做了。代码仓库中的那个 bash_completion/geeknote 文件就是干这个活的。 所以我只要把这个文件copy到 /etc/bash_completion.d/ 下就可以了。<br />但是copy进去后没有达到我想要的效果。没有自动补全。最后发现是geeknote配置的补全命令和我们执行的时候不一致。<br />下面要做的就是把它们搞一致了。<br />我的操作步骤如下：<br />1. chmod +x geeknote.py 给geeknote.py加上可执行权限。<br />2. 将geeknote.py所在路径加入到PATH中去。<br />3. 修改 /etc/bash_completion.d/geeknote 文件中的 geeknote 为geeknote.py 这个在我上面提到的github中可以找到。</p><p>这个时候在新开一个控制台，输入 geeknote.py tab 可以自动补全了。小爽一下！</p><img src ="http://www.blogjava.net/JetGeng/aggbug/400046.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/JetGeng/" target="_blank">Jet Geng</a> 2013-05-31 22:57 <a href="http://www.blogjava.net/JetGeng/archive/2013/05/31/400046.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用Graphviz显示树</title><link>http://www.blogjava.net/JetGeng/archive/2010/08/11/328524.html</link><dc:creator>Jet Geng</dc:creator><author>Jet Geng</author><pubDate>Wed, 11 Aug 2010 04:59:00 GMT</pubDate><guid>http://www.blogjava.net/JetGeng/archive/2010/08/11/328524.html</guid><wfw:comment>http://www.blogjava.net/JetGeng/comments/328524.html</wfw:comment><comments>http://www.blogjava.net/JetGeng/archive/2010/08/11/328524.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/JetGeng/comments/commentRss/328524.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/JetGeng/services/trackbacks/328524.html</trackback:ping><description><![CDATA[<div class="wiki" id="content">
<div class="wikipage searchable">
<h1 id="用Graphviz显示树">用Graphviz显示树<a class="anchor" href="#用Graphviz显示树" title="Link to this section"> <br />
</a></h1>
<h2 id="缘起">缘起<a class="anchor" href="#缘起" title="Link to this section"> <br />
</a></h2>
<p>
前几天不知道那根筋搭错，又拿出了大学时候买的一本讲算法的书翻了起来。想起当年学习Tree的时候，看着数据结构凭空去想那颗倒着的树。那个叫做苦啊。所以就像有没有什么办法让Tree自己画出这样的结构图出来。
</p>
<h2 id="动手">动手<a class="anchor" href="#动手" title="Link to this section"> <br />
</a></h2>
<p>
既然想到了，就动手做把。因为以前用Graphviz画过一点mindmap，类图之类的小东西。让我一下子就想到了，我只要能从Tree结构中方便的输出成一个能绘制出对应树结构的Graphviz脚本就可以。这应该是代价最小的做法。
呵呵，废话不多说了。看看的Tree的代码吧！ <br />
</p>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">&nbsp;@Override<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;String&nbsp;toString()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuffer&nbsp;strValue&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;StringBuffer();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuffer&nbsp;rout&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;StringBuffer(</span><span style="color: #000000;">"</span><span style="color: #000000;">{rank=same&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(getLeftTree()&nbsp;&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">&nbsp;)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strValue.append(root).append(ARROW).append(&nbsp;getLeftTree().getTreeNode()).append(</span><span style="color: #000000;">"</span><span style="color: #000000;">;\r</span><span style="color: #000000;">"</span><span style="color: #000000;">).<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;append(&nbsp;getLeftTree());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rout.append(getLeftTree().getTreeNode()&nbsp;).append(ARROW).append(EXTEND).append(root);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strValue.append(EXTEND).append(root).append(</span><span style="color: #000000;">"</span><span style="color: #000000;">[label=\</span><span style="color: #000000;">"</span><span style="color: #000000;">\</span><span style="color: #000000;">"</span><span style="color: #000000;">,width=.1,style=invis];\r</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strValue.append(root).append(ARROW).append(EXTEND).append(root).append(</span><span style="color: #000000;">"</span><span style="color: #000000;">[style=invis];\r</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(getRightTree()&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strValue.append(root).append(ARROW).append(&nbsp;getRightTree().getTreeNode()).append(</span><span style="color: #000000;">"</span><span style="color: #000000;">;\r</span><span style="color: #000000;">"</span><span style="color: #000000;">).<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;append(&nbsp;getRightTree());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rout.append(ARROW).append(getRightTree().getTreeNode());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strValue.append(rout).append(</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;[style=invis]&nbsp;}&nbsp;;\r</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;strValue.toString();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<p>
产生脚本的动作全部在这里完成了。我通过如下代码创建了一颗树 <br />
</p>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ITree</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">Integer</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;tree&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;TreeImpl</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">Integer</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">(</span><span style="color: #000000;">6</span><span style="color: #000000;">);&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tree.addNode(</span><span style="color: #000000;">3</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tree.addNode(</span><span style="color: #000000;">16</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tree.addNode(</span><span style="color: #000000;">5</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tree.addNode(</span><span style="color: #000000;">4</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tree.addNode(</span><span style="color: #000000;">2</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tree.addNode(</span><span style="color: #000000;">10</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tree.addNode(</span><span style="color: #000000;">30</span><span style="color: #000000;">);</span></div>
<p>最后得到的一副如下的图<br />
<img src="http://www.blogjava.net/images/blogjava_net/jetgeng/tree.png" alt="" border="0" /> <br />
</p>
<p>呵呵，这样的话就可以随时查看树的结构了，我们所需要做的只是把object toString一下就可以。</p>
<p>附上一些文件</p>
<p><a href="http://www.blogjava.net/Files/JetGeng/tree.rar ">演示的录屏文件</a> <br />
</p>
<a href="http://www.blogjava.net/Files/JetGeng/tree.zip" >完整的代码&nbsp; </a></div>
<br />
</div>

<img src ="http://www.blogjava.net/JetGeng/aggbug/328524.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/JetGeng/" target="_blank">Jet Geng</a> 2010-08-11 12:59 <a href="http://www.blogjava.net/JetGeng/archive/2010/08/11/328524.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>和Bugzilla、eclipse、Mylar一起的日子</title><link>http://www.blogjava.net/JetGeng/archive/2006/07/25/60079.html</link><dc:creator>Jet Geng</dc:creator><author>Jet Geng</author><pubDate>Tue, 25 Jul 2006 13:42:00 GMT</pubDate><guid>http://www.blogjava.net/JetGeng/archive/2006/07/25/60079.html</guid><wfw:comment>http://www.blogjava.net/JetGeng/comments/60079.html</wfw:comment><comments>http://www.blogjava.net/JetGeng/archive/2006/07/25/60079.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/JetGeng/comments/commentRss/60079.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/JetGeng/services/trackbacks/60079.html</trackback:ping><description><![CDATA[    
<p class="MsoNormal"><span lang="EN-US">Bugzilla</span><span style="FONT-FAMILY: 宋体">是一款很专业的</span><span lang="EN-US">Bugzilla</span><span style="FONT-FAMILY: 宋体">跟踪工具。他有具有一般</span><span lang="EN-US">Bug Trace</span><span style="FONT-FAMILY: 宋体">软件所必须的功能。</span></p><p style="MARGIN-LEFT: 36pt; TEXT-INDENT: -18pt"><span lang="EN-US">1.<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">    </span></span>提供一个开发和测试交互的平台，将测试和改错程序化。不需要测试人员就每一个问题和开发人员直接交流，也避免了发生错误被遗忘的问题。</p><p style="MARGIN-LEFT: 36pt; TEXT-INDENT: -18pt"><span lang="EN-US">2.<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">    </span></span>提供错误检索功能，供<span lang="EN-US">PM和测试经理掌握测试和改错情况</span></p><p>除了基本功能外，<span lang="EN-US">Bugzilla还有如下强大功能：</span></p><p style="MARGIN-LEFT: 36pt; TEXT-INDENT: -18pt"><span lang="EN-US">1.<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">    </span></span>基于<span lang="EN-US">Web的访问方式，不需要安装客户端</span></p><p style="MARGIN-LEFT: 36pt; TEXT-INDENT: -18pt"><span lang="EN-US">2.<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">  </span></span><span lang="EN-US">Email自动通知错误相关人员</span></p><p style="MARGIN-LEFT: 36pt; TEXT-INDENT: -18pt"><span lang="EN-US">3.<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">  </span></span>任意数量，类型的附件。如屏幕截图，日志文件</p><p style="MARGIN-LEFT: 36pt; TEXT-INDENT: -18pt"><span lang="EN-US">4.<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">  </span></span>丰富的字段，如产品名，组件名，版本号，错误发生的平台等等，可以精确的描述错误。</p><p style="MARGIN-LEFT: 36pt; TEXT-INDENT: -18pt"><span lang="EN-US">5.<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">   </span></span>强大的检索功能，可以根据错误的所有特性进行检索。如日期，责任人，提交人，所属版本，所属组件，状态，等等。</p><p style="MARGIN-LEFT: 36pt; TEXT-INDENT: -18pt"><span lang="EN-US">6.<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">    </span></span>强大的即时报表和历史报表</p><p style="MARGIN-LEFT: 36pt; TEXT-INDENT: -18pt"><span lang="EN-US">7.<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">    </span></span>可以定制的权限管理机制，实现对权限的精确控制。如只有<span lang="EN-US">Test Manager才能关闭错误。</span></p><p style="MARGIN-LEFT: 36pt; TEXT-INDENT: -18pt"><span lang="EN-US">8.<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">    </span></span>使用<span lang="EN-US">MySql作为后台数据库，稳定，数据迁移也很方便。</span></p><p style="MARGIN-LEFT: 36pt; TEXT-INDENT: -18pt"><span lang="EN-US">9.<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">    </span></span>完全开放的<span lang="EN-US">Perl代码，如果需要，可以自己实现特定功能</span></p><p class="MsoNormal" style="TEXT-INDENT: 18pt"><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体">（以上文字摘自</span><span lang="EN-US" style="FONT-SIZE: 12pt">http://jason.rocklv.net/freesoftware/ar01s06.html</span><span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体">）</span><span lang="EN-US" style="FONT-SIZE: 12pt"><?xml:namespace prefix = o /?><o:p></o:p></span></p><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">上面内容听起来很空洞，下面就结合实际的工作环境来简单描述一下这些强大的功能给我们工作带来的方便。在开始之前我们来看一幅图：<br /><img height="579" alt="image002.gif" src="http://www.blogjava.net/images/blogjava_net/jetgeng/bugzilla/image002.gif" width="496" border="0" /><br /></span><p class="MsoBodyText"><span style="FONT-FAMILY: 宋体">这个图中描述了一个</span><span lang="EN-US">bug</span><span style="FONT-FAMILY: 宋体">的生命周期（</span><span lang="EN-US">Life Cycle of a Bug</span><span style="FONT-FAMILY: 宋体">）。从图中我们可以了解到一个</span><span lang="EN-US">Bug</span><span style="FONT-FAMILY: 宋体">从生到死一般会经过</span><span lang="EN-US">New</span><span lang="EN-US" style="FONT-FAMILY: Wingdings"><span>à</span></span><span lang="EN-US">Evaluation</span><span lang="EN-US" style="FONT-FAMILY: Wingdings"><span>à</span></span><span lang="EN-US">Resolved</span><span lang="EN-US" style="FONT-FAMILY: Wingdings"><span>à</span></span><span lang="EN-US">Verification</span><span lang="EN-US" style="FONT-FAMILY: Wingdings"><span>à</span></span><span lang="EN-US">Close</span><span style="FONT-FAMILY: 宋体">。在这个过程中参与的角色有两个：测试人员和开发人员。</span></p><p class="MsoBodyText"><span style="FONT-FAMILY: 宋体">我们先从测试人员的角度这个系统。</span></p><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">测试人员看除了新建</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'">Bug</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">以外其实一个很重任务就是回测。也就是上图</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'">Resolved</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">一下的工作。如何安排回测的工作，</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'">Bugzilla</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">可以为你提供一个很人性的方式。这种人性的方式得益于</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'">Bugzilla</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">强大的搜索能力。<br /><img height="462" alt="search.JPG" src="http://www.blogjava.net/images/blogjava_net/jetgeng/bugzilla/search.JPG" width="553" border="0" /><br /></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">这个就是他的搜索界面。这么多搜索条件可以让你精确的搜索到你所需要的集合。搜索到的集合如下：<br /><img height="210" alt="searchresult.jpg" src="http://www.blogjava.net/images/blogjava_net/jetgeng/bugzilla/searchresult.jpg" width="947" border="0" /><br /></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">你可以使用标题中的任何一栏作为排序条件。可不要小看这个排序的顺序哦，他可是可以直接作为你工作的顺序的。不相信？那好吧来看看下面这个图<br /><img height="72" alt="navgaite.jpg" src="http://www.blogjava.net/images/blogjava_net/jetgeng/bugzilla/navgaite.jpg" width="560" border="0" /><br /></span><p class="MsoBodyText"><span style="FONT-FAMILY: 宋体">直接点击</span><span lang="EN-US">First,Last,Prev,Next</span><span style="FONT-FAMILY: 宋体">就可以达到在你选择的</span><span lang="EN-US">Bug</span><span style="FONT-FAMILY: 宋体">中来回游走（其实这个就是你工作的过程）。</span></p><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">如果你说今天下班前这部分工作可能做不完，明天我又不想在输入那么多的查询条件，好办保存他啊。直接看右下角：<br /><img height="67" alt="savesearch.jpg" src="http://www.blogjava.net/images/blogjava_net/jetgeng/bugzilla/savesearch.jpg" width="324" border="0" /></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体"><br />如果有一批</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'">bug</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">我已经回测完了。且他们所作的动作也差不多。直接批量进行，不要犹豫。<br /><img height="57" alt="batch.jpg" src="http://www.blogjava.net/images/blogjava_net/jetgeng/bugzilla/batch.jpg" width="605" border="0" /><br /></span><p class="MsoBodyText"><span style="FONT-FAMILY: 宋体">看“</span><span lang="EN-US">Change Several Bugs at Once</span><span style="FONT-FAMILY: 宋体">”就是为这个时候的你量身订做的。</span><span lang="EN-US">Bugzilla</span><span style="FONT-FAMILY: 宋体">还有很多不错的功能我这里就不多说了。</span></p><p class="MsoBodyText"><span lang="EN-US">&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;<o:p></o:p></span></p><p class="MsoBodyText"><span style="FONT-FAMILY: 宋体">下面来看看</span><span lang="EN-US">Bugzilla</span><span style="FONT-FAMILY: 宋体">能给开发者带来什么样的好处。开发者在整个的</span><span lang="EN-US">bug</span><span style="FONT-FAMILY: 宋体">生命周期中主要处理</span><span lang="EN-US">Resolved</span><span style="FONT-FAMILY: 宋体">和</span><span lang="EN-US">ASSIGNED</span><span style="FONT-FAMILY: 宋体">（这个功能项目经理或项目负责人用的比较多）这两块功能。但是这两块功能是应该算是</span><span lang="EN-US">bug</span><span style="FONT-FAMILY: 宋体">在其生命周期中最辉煌的一段时间。他们就是为这个时候而生。</span></p><p class="MsoBodyText"><span style="FONT-FAMILY: 宋体">好了废话不多说了。我们来看看一般开发人员如何利用</span><span lang="EN-US">Bug Trace</span><span style="FONT-FAMILY: 宋体">系统。首先登陆到系统</span><span lang="EN-US" style="FONT-FAMILY: Wingdings"><span>à</span></span><span style="FONT-FAMILY: 宋体">搜索自己的</span><span lang="EN-US">Bug</span><span style="FONT-FAMILY: 宋体">（有的</span><span lang="EN-US">Bug Trace</span><span style="FONT-FAMILY: 宋体">提供了让用户一登陆就可以看到自己的</span><span lang="EN-US">Bug</span><span style="FONT-FAMILY: 宋体">）</span><span lang="EN-US" style="FONT-FAMILY: Wingdings"><span>à</span></span><span style="FONT-FAMILY: 宋体">打开开发环境</span><span lang="EN-US" style="FONT-FAMILY: Wingdings"><span>à</span></span><span style="FONT-FAMILY: 宋体">修改代码</span><span lang="EN-US" style="FONT-FAMILY: Wingdings"><span>à</span></span><span style="FONT-FAMILY: 宋体">自测</span><span lang="EN-US" style="FONT-FAMILY: Wingdings"><span>à</span></span><span style="FONT-FAMILY: 宋体">提交修复。需要不停的在</span><span lang="EN-US">Bug Trace</span><span style="FONT-FAMILY: 宋体">系统和开发环境间不停的切换。</span></p><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'">Bugzilla</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">和</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'">Eclipse </span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">给我们提供了一个更人性的解决方案。假设开发人员小</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'">J</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">来到了办公室在开机和倒茶的时候他心里就在盘算着今天可能有些</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'">bug</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">需要修复。</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'">Ok</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">，可爱的</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'">Eclipse</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">起来了。那就先看看今天有没有自己的</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'">bug</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">吧。<br /><img height="600" alt="eclipsebugsearch.jpg" src="http://www.blogjava.net/images/blogjava_net/jetgeng/bugzilla/eclipsebugsearch.jpg" width="625" border="0" /><br /></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">这个就是集成在</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'">Eclipse</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">（</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'">Mylar</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">）中的</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'">Bug</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">搜索页面。搜索回来的结果你可以用来创建一个</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'">Task</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">。有了这个</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'">Task</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">那你就会省力多了。可以减少你在大项目中找找文件的痛苦。<br /><img height="497" alt="workbench.jpg" src="http://www.blogjava.net/images/blogjava_net/jetgeng/bugzilla/workbench.jpg" width="1004" border="0" /><br /></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">看，现在我的</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'">workbench</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">是不是很整洁啊。<br /></span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">说老实话</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'">Bugzilla</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">的界面真的不咋样。如果评论多了会很长，而且还没有分页。不过在</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'">Eclipse</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">中这个问题就好多了，因为我们有</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'">outline</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">啊。<img height="147" alt="outline.jpg" src="http://www.blogjava.net/images/blogjava_net/jetgeng/bugzilla/outline.jpg" width="664" border="0" /><br /></span><p class="MsoBodyText"><span style="FONT-FAMILY: 宋体">看起来很不错吧。</span></p><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">除了这个这个</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'">Task</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">还有除了能让你看到整洁的</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'">workbench</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">外还可以给你一个整洁的思路。<br /><img height="368" alt="shedual.jpg" src="http://www.blogjava.net/images/blogjava_net/jetgeng/bugzilla/shedual.jpg" width="511" border="0" /><br /></span><p class="MsoBodyText"><span style="FONT-FAMILY: 宋体">通过设定时间让你有效的管理你的时间。这样就让在开发过程中最难掌控的部分管理起来了。</span></p><p class="MsoBodyText"><span lang="EN-US">Bugzilla</span><span style="FONT-FAMILY: 宋体">和</span><span lang="EN-US">Eclipse</span><span style="FONT-FAMILY: 宋体">（</span><span lang="EN-US"><font face="宋体">Mylar</font></span><span style="FONT-FAMILY: 宋体">）的好处我就不一一多说了。如果你不相信我的话可以先去体验一下。</span></p><p class="MsoBodyText"><span style="FONT-FAMILY: 宋体">其实这个时候</span><span lang="EN-US">Bugzilla</span><span style="FONT-FAMILY: 宋体">可以当成一个项目管理软件来用了，不光光是</span><span lang="EN-US">Bug</span><span style="FONT-FAMILY: 宋体">了。如果我们能加上报表，这样就可以为项目管理者提供最准确的项目进度数据。</span></p><p class="MsoBodyText"><span lang="EN-US">&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;<o:p></o:p></span></p><p class="MsoBodyText"><span style="FONT-FAMILY: 宋体">说道报表</span><span lang="EN-US">Bugzilla</span><span style="FONT-FAMILY: 宋体">为项目管理者们提供了很强大的报表功能。为项目总结等场合提供最有价值的原始资料。</span></p><p class="MsoBodyText"><span lang="EN-US">&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;<o:p></o:p></span></p><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">由于</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'">Bugzilla</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">采用</span><span lang="EN-US" style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'">Mysql</span><span style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体">做为数据源，所以备份还原数据很方便。这个为系统管理带来了不少方便。<br /></span><h1><span style="FONT-WEIGHT: normal; FONT-SIZE: 12pt">参考文献：<span lang="EN-US"><o:p></o:p></span></span></h1><h1><span lang="EN-US" style="FONT-SIZE: 12pt"><a href="http://jason.rocklv.net/freesoftware/ar01s06.html">http://jason.rocklv.net/freesoftware/ar01s06.html</a></span><span lang="EN-US" style="FONT-WEIGHT: normal; FONT-SIZE: 12pt"><o:p></o:p></span></h1><span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"><a href="http://www.bugzilla.org/docs/2.18/html/using.html">http://www.bugzilla.org/docs/2.18/html/using.html</a><br /><br /></span><img src ="http://www.blogjava.net/JetGeng/aggbug/60079.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/JetGeng/" target="_blank">Jet Geng</a> 2006-07-25 21:42 <a href="http://www.blogjava.net/JetGeng/archive/2006/07/25/60079.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Mylar 简介--开源工作平台续</title><link>http://www.blogjava.net/JetGeng/archive/2006/07/11/57606.html</link><dc:creator>Jet Geng</dc:creator><author>Jet Geng</author><pubDate>Tue, 11 Jul 2006 02:12:00 GMT</pubDate><guid>http://www.blogjava.net/JetGeng/archive/2006/07/11/57606.html</guid><wfw:comment>http://www.blogjava.net/JetGeng/comments/57606.html</wfw:comment><comments>http://www.blogjava.net/JetGeng/archive/2006/07/11/57606.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/JetGeng/comments/commentRss/57606.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/JetGeng/services/trackbacks/57606.html</trackback:ping><description><![CDATA[
		<div align="center">
		</div>
		<h1 style="margin-left: 21.25pt; text-indent: -21.25pt;" align="center">Mylar 简介--开源工作平台续<br /><span style="font-size: 12pt;" lang="EN-US"></span></h1>
		<h1 style="margin-left: 21.25pt; text-indent: -21.25pt;">
				<span style="font-size: 12pt;" lang="EN-US">1.<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">     </span></span>
				<!--[endif]-->
				<span style="font-size: 12pt;">引子<span lang="EN-US"><o:p></o:p></span></span>
		</h1>
		<h1>
				<span style="font-size: 12pt;" lang="EN-US">
						<span style="">   </span>
				</span>
				<span style="font-size: 10.5pt; font-weight: normal;">很久很久以前有一个木匠，不但粗心而且还健忘。虽然在每天工作开始前，会考虑以下大概需要做的工作。但是在实施的过程中经常会出现这样的状况。看有一天他需要下一块<span lang="EN-US">1.2m
的料。这个木匠就甩着膀子过来了。在动手前肯定是要量一下得，把手往口袋里一摸。卷尺是摸到，摸到了昨天晚上吃花生时留下得壳（还挺讲究公德，没有到处乱
扔。）。放哪儿呢，放哪儿呢……。经过了半个小时，终于在一个角落找到了卷尺。那个兴奋啊。兴冲冲的跑到木料前，愣了一下骂了一句“tmd锯子又不知道跑
那去了！”。继续去找锯子去了……。<o:p></o:p></span></span>
		</h1>
		<b>
				<span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;" lang="EN-US">
						<span style="">       </span>
				</span>
				<span style="font-size: 10.5pt; font-family: 宋体;">其实在我们的软件开发中也会类似的情景。我就不再啰嗦了。<br /></span>
		</b>
		<h1 style="margin-left: 21.25pt; text-indent: -21.25pt;">
				<!--[if !supportLists]-->
				<span style="font-size: 10.5pt;" lang="EN-US">1.<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">     
</span></span>
				<!--[endif]-->
				<span style="font-size: 12pt;">解决方案</span>
				<span style="font-size: 10.5pt;" lang="EN-US">
						<o:p>
						</o:p>
				</span>
		</h1>
		<h1 style="margin-left: 21pt;">
				<span style="font-size: 12pt; font-weight: normal;">我要说的这个解决方案就是<span lang="EN-US">Eclipse + Mylar。Eclipse就不用多说了。但是Mylar却是不得不说。<o:p></o:p></span></span>
		</h1>
		<h1 style="margin-left: 21pt;">
				<span style="font-size: 12pt; font-weight: normal;" lang="EN-US">Mylar
最大的亮点就是让你只关注于你当前的工作（Active
Task）。在整个工作区中只是显示和你工作相关的内容。这样在Mylar中就有了一个核心的概念任务（Task）。这个任务我们完全可以对应到工作中的
一个任务，如你的头给你分配得一个任务、测试组的同仁提交的一个需要你修改得bug等等。<o:p></o:p></span>
		</h1>
		<h1 style="margin-left: 21pt;">
				<span style="font-size: 12pt; font-weight: normal;">我们每天的工作应该由这些任务组成。<span lang="EN-US"><o:p></o:p></span></span>
		</h1>
		<span style="font-size: 12pt; font-family: 宋体;">在</span>
		<span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;;" lang="EN-US">Mylar</span>
		<span style="font-size: 12pt; font-family: 宋体;">中首先提供了一个对于任务管理的功能。图</span>
		<span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;;">
				<span lang="EN-US">– 1</span>
		</span>
		<span style="font-size: 12pt; font-family: 宋体;">显示了一个</span>
		<span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;;" lang="EN-US">Mylar</span>
		<span style="font-size: 12pt; font-family: 宋体;">的任务管理页面。关于如何创建使用</span>
		<span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;;" lang="EN-US">Mylar</span>
		<span style="font-size: 12pt; font-family: 宋体;">中的任务可以参考官方提供的一个</span>
		<span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;;" lang="EN-US">flash demo</span>
		<span style="font-size: 12pt; font-family: 宋体;">我就不啰嗦了</span>
		<span style="font-size: 12pt; font-family: 宋体;">（</span>
		<span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;;" lang="EN-US">http://www.eclipse.org/mylar/doc/demo/mylar-demo-04.html</span>
		<span style="font-size: 12pt; font-family: 宋体;">）</span>
		<span style="font-size: 12pt; font-family: 宋体;">。<br /></span>
		<span style="font-size: 12pt; font-family: 宋体;">
				<img src="../../images/blogjava_net/jetgeng/Eclipse/mylar/Snap1.jpg" alt="Snap1.jpg" border="0" height="304" width="810" />
		</span>
		<br />
		<span style="font-size: 12pt; font-family: 宋体;">有了任务后，就可以把你的工作关注到特定的任务上了。这个部分在上面的提到的那个官方的</span>
		<span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;;" lang="EN-US">Flash</span>
		<span style="font-size: 12pt; font-family: 宋体;">中也有描述。另外还有一个老外的</span>
		<span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;;" lang="EN-US">blog</span>
		<span style="font-size: 12pt; font-family: 宋体;">也作了点说明。<br /></span>
		<b>
				<span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;" lang="EN-US">
						<a href="http://weblogs.java.net/blog/kirillcool/archive/2005/11/mylar_a_very_us.html">
								<span style="font-weight: normal;">http://weblogs.java.net/blog/kirillcool/archive/2005/11/mylar_a_very_us.html</span>
						</a>
				</span>
				<span style="font-size: 10.5pt; font-family: 宋体;">。<br /></span>
		</b>
		<span style="font-size: 10.5pt; font-family: 宋体;">说到任务，</span>
		<span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;" lang="EN-US">Mylar</span>
		<span style="font-size: 10.5pt; font-family: 宋体;">提供了两种任务。一个是本地任务还有一个就是知识库任务（这个我翻译的不好原文是</span>
		<span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;" lang="EN-US">repository task</span>
		<span style="font-size: 10.5pt; font-family: 宋体;">）。本地任务很好理解就是任务的数据是以文件的形式保存在本地的。一般情况下只有本人可以使用。知识库任务是从</span>
		<span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;" lang="EN-US">BugTrace</span>
		<span style="font-size: 10.5pt; font-family: 宋体;">系统（目前支持</span>
		<span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;" lang="EN-US">Bugzilla</span>
		<span style="font-size: 10.5pt; font-family: 宋体;">、</span>
		<span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;" lang="EN-US">JIRA</span>
		<span style="font-size: 10.5pt; font-family: 宋体;">）里面获取</span>
		<span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;" lang="EN-US">Task.</span>
		<span style="font-size: 10.5pt; font-family: 宋体;">这样就可以在一个团队中使用了。关于这个功能的使用可以参考</span>
		<span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;" lang="EN-US">
				<a href="http://eclipse.org/mylar/doc/demo/mylar-demo-04-reports.html">http://eclipse.org/mylar/doc/demo/mylar-demo-04-reports.html</a>.</span>
		<span style="font-size: 10.5pt; font-family: 宋体;">从个人角度来说，我是最喜欢这个块的功能。想一想啊，</span>
		<span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;" lang="EN-US">QA</span>
		<span style="font-size: 10.5pt; font-family: 宋体;">组的人测出</span>
		<span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;" lang="EN-US">bug</span>
		<span style="font-size: 10.5pt; font-family: 宋体;">纪录到</span>
		<span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;" lang="EN-US">bug Trace</span>
		<span style="font-size: 10.5pt; font-family: 宋体;">系统中。开发人员可以在他自己的开发环境中。继续想，项目管理人员把</span>
		<span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;" lang="EN-US">Project </span>
		<span style="font-size: 10.5pt; font-family: 宋体;">管理软件中的</span>
		<span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;" lang="EN-US">task</span>
		<span style="font-size: 10.5pt; font-family: 宋体;">以</span>
		<span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;" lang="EN-US">bug</span>
		<span style="font-size: 10.5pt; font-family: 宋体;">的形式存放于</span>
		<span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;" lang="EN-US">bugtrace</span>
		<span style="font-size: 10.5pt; font-family: 宋体;">系统中（其实这个时候的</span>
		<span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;" lang="EN-US">BugTrace</span>
		<span style="font-size: 10.5pt; font-family: 宋体;">系统不光管理的是</span>
		<span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;" lang="EN-US">Bug</span>
		<span style="font-size: 10.5pt; font-family: 宋体;">了，可以把它认为识一个简单的项目管理）。<br /></span>
		<span style="font-size: 10.5pt; font-family: 宋体;">关于这个项目的整体全局的介绍可以参考</span>
		<b>
				<span style="font-size: 10.5pt; font-family: 宋体;">：</span>
		</b>
		<span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;" lang="EN-US">
				<a href="http://www.eclipsezone.com/articles/mylar/?source=archives">http://www.eclipsezone.com/articles/mylar/?source=archives</a>
				<br />
				<br />
我想她肯定会有美好的未来的。<br /></span>
		<br />
<img src ="http://www.blogjava.net/JetGeng/aggbug/57606.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/JetGeng/" target="_blank">Jet Geng</a> 2006-07-11 10:12 <a href="http://www.blogjava.net/JetGeng/archive/2006/07/11/57606.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>cvs + bugzilla + open workbench 组建开源开发环境</title><link>http://www.blogjava.net/JetGeng/archive/2006/06/04/50196.html</link><dc:creator>Jet Geng</dc:creator><author>Jet Geng</author><pubDate>Sat, 03 Jun 2006 16:58:00 GMT</pubDate><guid>http://www.blogjava.net/JetGeng/archive/2006/06/04/50196.html</guid><wfw:comment>http://www.blogjava.net/JetGeng/comments/50196.html</wfw:comment><comments>http://www.blogjava.net/JetGeng/archive/2006/06/04/50196.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/JetGeng/comments/commentRss/50196.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/JetGeng/services/trackbacks/50196.html</trackback:ping><description><![CDATA[
		<p style="margin-bottom: 0cm;" lang="zh-CN">今天把开发环境架好了。我的环境包括以下几个部分。</p>
		<p style="margin-bottom: 0cm;" lang="zh-CN">源码管理：<font face="Times New Roman, serif">cvs</font></p>
		<p style="margin-bottom: 0cm;" lang="zh-CN">
				<font face="Times New Roman, serif">bug</font>管理：<font face="Times New Roman, serif">bugzilla</font></p>
		<p style="margin-bottom: 0cm;" lang="zh-CN">项目管理：<font face="Times New Roman, serif">open
workbench</font>。</p>
		<p style="margin-bottom: 0cm;" lang="zh-CN">
				<font face="Times New Roman, serif">Cvs</font>没什么好说的。</p>
		<p style="margin-bottom: 0cm;" lang="zh-CN">不过在安装<font face="Times New Roman, serif">bugzilla</font>的过程中有点小问题。</p>
		<p style="margin-bottom: 0cm;" lang="zh-CN">我是根据<font face="Times New Roman, serif">http://www.websina.com/cn/bugzilla-install-windows.html</font>一文进行安装的。</p>
		<p style="margin-bottom: 0cm;">
				<a name="banner-version">
				</a>
				<span lang="zh-CN">我的使用的软件版本如下：</span>
		</p>
		<p style="margin-bottom: 0cm;">
				<font face="Times New Roman, serif">
						<a href="http://www.bugzilla.org/">	Bugzilla</a>
Version 2.20.1 </font>
		</p>
		<p style="margin-bottom: 0cm;">
				<font face="Times New Roman, serif">	MySql
    version 4.1</font>
		</p>
		<p style="margin-bottom: 0cm;" lang="zh-CN">
				<font face="Times New Roman, serif">	Perl
        version 5.8.7</font>
		</p>
		<p style="margin-bottom: 0cm;">
				<span lang="zh-CN">为了减少安装
</span>
				<font face="Times New Roman, serif">perl</font>
				<span lang="zh-CN">模块的麻烦。我使用了</span>
				<font face="宋体, SimSun">汉化</font>
				<font face="Times New Roman, serif">Bugzilla
</font>
				<span lang="zh-CN">中收集的模块</span>
				<font face="Times New Roman, serif">BugzillaModules-2.20</font>
				<span lang="zh-CN">。这个在</span>
				<font face="Times New Roman, serif">http://sourceforge.net/projects/bugzilla-cn</font>
				<span lang="zh-CN">可以找到。</span>
		</p>
		<p style="margin-bottom: 0cm;">
				<span lang="zh-CN">所有都就绪后，我</span>
				<font style="font-size: 10pt;" size="2">再次运行</font>
				<font face="Times New Roman, serif">
						<span lang="en-US">
								<font style="font-size: 10pt;" size="2">
										<font face="Times New Roman">Bugzilla</font>
								</font>
						</span>
				</font>
				<font style="font-size: 10pt;" size="2">的安装检查程序（</font>
				<font face="Times New Roman, serif">
						<span lang="en-US">
								<font style="font-size: 10pt;" size="2">
										<font face="Times New Roman">CheckSetup.pl</font>
								</font>
						</span>
				</font>
				<font style="font-size: 10pt;" size="2">）</font>
				<span lang="zh-CN">。发现给了我下面的错误：</span>
		</p>
		<p style="margin-bottom: 0cm;">
				<span lang="zh-CN">
						<img src="http://www.blogjava.net/images/blogjava_net/jetgeng/tools/error.jpg" alt="error.jpg" border="0" height="97" width="640" />
				</span>
		</p>
		<p style="margin-bottom: 0cm;">
		</p>
		<p style="margin-bottom: 0cm;">
				<span lang="zh-CN">找了半天在</span>
				<font face="Times New Roman, serif">
						<span lang="en-US">
								<font style="font-size: 10pt;" size="2">
										<font face="Times New Roman">Byron
Jones</font>
								</font>
						</span>
				</font>
				<font style="font-size: 10pt;" size="2">写的《</font>
				<font face="Times New Roman, serif">
						<a href="http://www.bugzilla.org/docs/win32install.html">
								<span lang="en">
										<font style="font-size: 10pt;" size="2">
												<font face="Times New Roman">
														<font color="#000000">Installing
Bugzilla on Microsoft
Windows</font>
												</font>
										</font>
								</span>
						</a>
				</font>
				<font style="font-size: 10pt;" size="2">》</font>
				<font face="Times New Roman, serif">
						<a href="http://www.bugzilla.org/docs/win32install.html">http://www.bugzilla.org/docs/win32install.html</a>
				</font>
				<span lang="zh-CN">终于找到原因了。</span>
		</p>
		<p style="margin-bottom: 0cm;">
				<span lang="zh-CN">
						<font style="font-size: 10pt;" size="2">产生这个错误是因为</font>
				</span>
				<font face="Times New Roman, serif">
						<span lang="en-US">
								<font style="font-size: 10pt;" size="2">
										<font face="Times New Roman">MySQL
4.1</font>
								</font>
						</span>
				</font>
				<span lang="zh-CN">
						<font style="font-size: 10pt;" size="2">及以后的版本使用了新的密码加密算法，而使用的</font>
				</span>
				<font face="Times New Roman, serif">
						<span lang="en-US">
								<font style="font-size: 10pt;" size="2">
										<font face="Times New Roman">Perl</font>
								</font>
						</span>
				</font>
				<span lang="zh-CN">
						<font style="font-size: 10pt;" size="2">的</font>
				</span>
				<font face="Times New Roman, serif">
						<span lang="en-US">
								<font style="font-size: 10pt;" size="2">
										<font face="Times New Roman">DBD::MySql</font>
								</font>
						</span>
				</font>
				<span lang="zh-CN">
						<font style="font-size: 10pt;" size="2">模块不够新，不支持新的加密算法。你可以采取两种方式来解决这个问题：一是使用</font>
						<a href="http://www.bugzilla.org/docs/2.20/html/trbl-passwd-encryption.html">
								<span lang="en-US">
										<font style="font-size: 10pt;" size="2">
												<font face="Times New Roman">新的</font>
										</font>
								</span>
						</a>
				</span>
				<font face="Times New Roman, serif">
						<a href="http://www.bugzilla.org/docs/2.20/html/trbl-passwd-encryption.html">
								<span lang="en-US">
										<font style="font-size: 10pt;" size="2">
												<font face="Times New Roman">DBD::MySql</font>
										</font>
								</span>
						</a>
				</font>
				<span lang="zh-CN">
						<a href="http://www.bugzilla.org/docs/2.20/html/trbl-passwd-encryption.html">
								<span lang="en-US">
										<font style="font-size: 10pt;" size="2">
												<font face="Times New Roman">模块</font>
										</font>
								</span>
						</a>
						<font style="font-size: 10pt;" size="2">，不过需要自己编译；另一种是在</font>
				</span>
				<font face="Times New Roman, serif">
						<span lang="en-US">
								<font style="font-size: 10pt;" size="2">
										<font face="Times New Roman">MySQL</font>
								</font>
						</span>
				</font>
				<span lang="zh-CN">
						<font style="font-size: 10pt;" size="2">中强制使用兼容老版本的密码加密算法：</font>
				</span>
		</p>
		<img src="http://www.blogjava.net/images/blogjava_net/jetgeng/tools/bugalizza.jpg" alt="bugalizza.jpg" border="0" height="337" width="532" />
		<br />
		<p style="margin-bottom: 0cm;" lang="zh-CN">
				<font style="font-size: 10pt;" size="2">这样就搞定了。</font>
		</p>
		<p style="margin-bottom: 0cm;" lang="zh-CN">
				<font style="font-size: 10pt;" size="2">这个
</font>
				<font face="Times New Roman, serif">open
workbench</font>
				<font style="font-size: 10pt;" size="2">。通过看它的简介发现他也是一个类似于很有趣的软件。核心部分是</font>
				<font face="Times New Roman, serif">java</font>
				<font style="font-size: 10pt;" size="2">实现。而界面却是</font>
				<font face="Times New Roman, serif">MFC</font>
				<font style="font-size: 10pt;" size="2">做的。不可思议吧。</font>
		</p>
		<p style="margin-bottom: 0cm;" lang="zh-CN">
				<font face="Times New Roman, serif">
						<a href="http://www.openworkbench.org/%E5%8F%AF%E4%BB%A5%E4%B8%8B%E8%BD%BD">http://www.openworkbench.org/</a>
				</font>
				<font style="font-size: 10pt;" size="2">
						<a href="http://www.openworkbench.org/%E5%8F%AF%E4%BB%A5%E4%B8%8B%E8%BD%BD">可以下载</a>。</font>
		</p>
		<p style="margin-bottom: 0cm;" lang="zh-CN">
				<font style="font-size: 10pt;" size="2">我下载以后不能跑。给我报错是说“</font>
				<font face="Times New Roman, serif">Here's
the fix for the JRE[n] not found. My specs is Windows 2000 w/
JDK1.5.0 and private JRE (in JDK dir). ”</font>
		</p>
		<p style="margin-bottom: 0cm;" lang="zh-CN">
				<font style="font-size: 10pt;" size="2">我想啊，想啊。我明明安装了</font>
				<font face="Times New Roman, serif">JDK1.5.0_04</font>
				<font style="font-size: 10pt;" size="2">了啊。其他使用</font>
				<font face="Times New Roman, serif">java</font>
				<font style="font-size: 10pt;" size="2">的程序（</font>
				<font face="Times New Roman, serif">Eclipse</font>
				<font style="font-size: 10pt;" size="2">）都可以好好的跑啊。</font>
		</p>
		<p style="margin-bottom: 0cm;" lang="zh-CN">
				<font style="font-size: 10pt;" size="2">为什么到了这儿就不可以了呢。火大。</font>
		</p>
		<p style="margin-bottom: 0cm;" lang="zh-CN">
				<font style="font-size: 10pt;" size="2">后来在论坛中找到一个解决方案：</font>
		</p>
		<ol>
				<li>
						<p style="margin-bottom: 0cm;" lang="zh-CN">
								<font face="Times New Roman, serif">login
	as administrator </font>
						</p>
				</li>
				<li>
						<p style="margin-bottom: 0cm;" lang="zh-CN">
								<font face="Times New Roman, serif">open
	regedit</font>
						</p>
				</li>
				<li>
						<p style="margin-bottom: 0cm;" lang="zh-CN">
								<font face="Times New Roman, serif">goto
	HKEY_LOCAL_MACHINE/Software/JavaSoft</font>
						</p>
				</li>
				<li>
						<p style="margin-bottom: 0cm;" lang="zh-CN">
								<font face="Times New Roman, serif">create
	if not exist : subkey "Java Runtime Environment" (the key
	did not exist before on my computer) </font>
						</p>
				</li>
				<li>
						<p style="margin-bottom: 0cm;" lang="zh-CN">
								<font face="Times New Roman, serif">In
	the new subkey add String value <br />CurrentVersion="1.5.0"
	</font>
						</p>
				</li>
				<li>
						<p style="margin-bottom: 0cm;" lang="zh-CN">
								<font face="Times New Roman, serif">In
	the new subkey, create new subkey "1.5.0"</font>
						</p>
				</li>
				<li>
						<p style="margin-bottom: 0cm;" lang="zh-CN">
								<font face="Times New Roman, serif">In
	the subkey 1.5.0 create the string values JavaHome, MicroVersion,
	RuntimeLib (read <a href="http://java.sun.com/j2se/1.4.2/runtime_win32.html" target="_blank">http://java.sun.com/j2se/1.4.2/runtime_win32.html</a>)
	<br />if you installed JDK in c:\program files\java\jdk1.5.0 then set
	the values to <br />JavaHome="c:\program files\java\jdk1.5.0"
	<br />MicroVersion="0" <br />RuntimeLib="C:\Program
	Files\Java\jdk1.5.0\jre\bin\client\jvm.dll"</font>
						</p>
						<p style="margin-bottom: 0cm;" lang="zh-CN">
								<font style="font-size: 10pt;" size="2">根据这个方案我修改了我的注册表。修改结果如下图：</font>
						</p>
				</li>
		</ol>
		<img src="http://www.blogjava.net/images/blogjava_net/jetgeng/tools/openbench.jpg" alt="openbench.jpg" border="0" height="188" width="693" />
		<br />
		<br />
		<ol>
				<p style="margin-bottom: 0cm;" lang="zh-CN">
						<font style="font-size: 10pt;" size="2">修改了这个以后就能顺利启动。小用了一下，感觉很不错。基本能满足我的需求了。</font>
				</p>
				<p style="margin-bottom: 0cm;" lang="zh-CN">这样我的工作台就完全搞定了。全部开源产品。省钱啊。<br /></p>
		</ol>
<img src ="http://www.blogjava.net/JetGeng/aggbug/50196.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/JetGeng/" target="_blank">Jet Geng</a> 2006-06-04 00:58 <a href="http://www.blogjava.net/JetGeng/archive/2006/06/04/50196.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>