Aug 4, 2009
这些插件都可以在 Trac Hacks 上下载到。
直接在首页搜索名字即可,因此本文就不再给出下载链接。
AdvancedTicketWorkflowPlugin
添加几种常用的ticket工作流动作,如转给上一个人、转给模块负责人、转给报告者、执行外部程序等。
如果你想要自己打造一个适合项目的工作流,这个插件肯定会派上用场。
BatchModify
批量修改ticket属性。
TracAccountManager
可以从后台管理Trac帐号,但更重要的是,它可以提供一个基于Web的登录页面。
TracAuthRequired
要求使用者必须登录才能查看Trac内容。在企业应用中,项目的资料一般都需要保密,
这个插件跟TracAccountManager配合使用,正好能满足要求。
TracReportManager
Trac可以自定义报告,但报告管理功能很弱,一不小心就会把辛辛苦苦写成的SQL语句删掉。
TracReportManager可以给ticket报告做备份,在修改报告之前先备份一下,就不用担心误删的问题了。
TracSectionEditPlugin
可以按照章节编辑wiki内容(就像WikiPedia那样)。一些手册页可能会很长很长,一次性编辑很不方便,
而单独编辑某一章节就比较容易了。
TracTicketTemplate
ticket模板,可以给不同类型的ticket做不同的模板,能节约输入ticket的时间,规范ticket的格式。
TracWikiRename
给wiki页面改名,在整理wiki时很有用。
(Read More)
Jul 26, 2009
注:本文使用的CakePHP版本为 1.2.3.8166。
使用CakePHP开发时,免不了要将调试级别设置为2,
这样页面上会显示出执行的SQL语句及结果,很方便。
但在做API页面时就比较麻烦。一般API页面的输出结果是XML或者JSON格式,
如果后面多了些调试信息,客户端就无法正确解析了。
解决方法很简单,只要在API的action函数中改写调试等级即可:
function api_index() {
...
Configure::write('debug', 0);
}
不过,每个action都要写这么一行,太麻烦了。能不能想个办法,自动地关闭所有API页面的调试信息?
(Read More)
Jul 22, 2009
第一次看到这个标题时我也很惊讶,Apache居然还能做负载均衡?真是太强大了。
经过一番调查后发现的确可以,而且功能一点都不差。
这都归功于 mod_proxy 这个模块。
不愧是强大的Apache啊。
废话少说,下面就来解释一下负载均衡的设置方法。
(Read More)
Jul 8, 2009
很多软件都支持gettext,比如WordPress、ZenPhoto等。那么要想做个语言包,就得用到gettext这个工具。以ZenPhoto为例,使用方法如下:
首先要找出所有需要翻译的文件:
$ cd zenphoto
$ find . -name "*.php" > filelist.txt
然后从所有需要翻译的文件中提取出英文字符串。
$ xgettext --from-code utf-8 -f filelist.txt -d zenphoto
这样,xgettext命令就会分析所有文件,找出其中需要翻译的字符串(即php中调用gettext所用的字符串)并输出到zenphoto.po中。–from-code参数指定源代码的编码格式。ZenPhoto的源代码中,gettext函数参数中含有一些UTF-8的字符(实际上应该没有),如果不指定这个参数,xgettext就无法正确识别这些UTF-8字符。-f 指定要分析的文件列表。-d指明输出文件的名称,扩展名为.po。
然后创建语言文件夹,把.po文件放进去。ZenPhoto的话,操作方法如下(当前目录为zenphoto根目录):
$ mkdir -p locale/zh-CN/LC_MESSAGES
$ mv zenphoto.po locale/zh-CN/LC_MESSAGES
$ cd locale/zh-CN/LC_MESSAGES
接下来翻译zenphoto.po文件就行了。
翻译完成后,执行如下命令将.po文件编译成.mo文件:
$ msgfmt -o zenphoto.mo zenphoto.po
然后重启httpd就能看到翻译的效果。
忘了说了,如果系统上没有xgettext和msgfmt命令,只需安装gettext包即可。
(Read More)
Jun 28, 2009
今天想用摄像头录一段视频,上网找视频录制的软件,发现好用的都是收费的。
没办法,想起VirtualDub也能录制视频,于是尝试了一下,发现它的效果还是很不错的。
而且是免费的哦!
以下演示的版本是Virtual 1.5.10,摄像头是罗技的QuickCam系列。
(Read More)
Jun 24, 2009
熟悉J2EE开发的人应该对此不屑一顾吧,俺是Java新手,没办法……做个笔记先。
Tomcat 5.5下测试通过。
首先要添加管理员用户。打开 conf/tomcat-users.xml,在其中加入这样一行:
<user username="manager" password="password" roles="standard,manager"/>
然后重启Tomcat。
之后访问以下地址:
http://localhost:8080/manager/status
输入刚才设置好的管理员用户名和密码,就能看到服务器状态的页面。
其中几个比较重要的数值:
- Max threads: 150 最大线程数
- Min spare threads: 25 最小空闲线程数
- Max spare threads: 75 最大空闲线程数
- Current thread count: 25 当前线程数
- Current thread busy: 2 当前繁忙线程数
(Read More)
Apr 21, 2009
谢谢fcicq指出书中的一些错误。也请其他读者在发现错误后告诉我,如果这本书有幸重印,我会在重印时改正这些错误的。给大家阅读带来不便,真是对不起。
P3,倒数第2段第3行:
用户想把音量调低,但我却没有把它设置到一个较高的音量,以便用户能通过软件来控制它。
修改为:
音箱的音量太小了,我根本没想到应该把音量调大些,这样用户才能通过软件来控制音量。
P5,最后两行:
以及如何进行高可用性的开发。
修改为:
以及如何开始符合高可用性的开发。
P37,“试一试”的第一行:
什么沟通障碍可能会阻碍项目创建高可用性?
修改为:
什么样的沟通障碍可能会阻碍项目创建高可用性?
P57,第2段第4行
请习惯这个思维。
修改为:
拥有这种想法很重要。
(Read More)
Apr 12, 2009
UML中的联系(association)、聚合(aggregation)和组合(composition)三个概念很相似,也很难理解。
今天看到这篇文章解释得很清楚,所以在这里转一下,
希望能对需要的人有所帮助。
(Read More)
Apr 7, 2009
今天拿到了一台Dell Vostro 1200,准备安装Windows XP。没想到第一次安装就出了问题,安装程序进行到分区这一步,报告找不到硬盘(下面的分区列表中显示没有硬盘)。用Linux急救盘进去之后用fdisk删除了所有分区,再次安装Windows XP,结果故障依旧。后来问了技术支持的人说,这台笔记本的硬盘是SATA接口,必须要用集成了SATA驱动的Windows XP安装盘才能正常安装。晕,原来Windows XP安装盘还有各种不同的版本哪。
拿到集成了SATA的Windows XP安装盘后继续安装,这次倒是一切顺利,但装完之后进入系统一看,咦?怎么两个硬盘分区变成了 E: 和 F:,系统装到了 E: 上?而C:呢,却被读卡器占了位置。后来试图通过修改注册表的方式把系统改到C:盘上,可是失败了。上网查了查发现Dell的本子这个问题居然是人所皆知的,解决方法也简单,就是进入BIOS把所有板载的USB设备都关掉,再安装就没有问题了。
于是进入BIOS关掉所有USB设备,安装,这次顺利完成,没出任何毛病。
(Read More)
Mar 31, 2009
今天在安装Visual Studio 2003时,安装程序要求先重启计算机,重启之后再启动安装程序,依然要求重启计算机,如此一直反复下去。无奈Google了一下,发现这居然是个常见问题,解决方法是删除 HKLM\SYSTEM\CurrentControlSet\Control\Session Manager
下的 PendingFileRenameOperations
键就可以了。
看了看我机器上的这个键的内容,好像是安装McAfee时遗留下来的。
ps.原来常见的那个“必须重启后才能完成安装”是这么回事儿啊。
(Read More)