解惑

解己之惑,解人之惑

日:2006年10月25日

搞定海明威主题的宽度问题

下午的时候还在抱怨这个主题的宽度是固定死的以800*600的模式设置的,在现在1024*768以上的分辨率下空间的利用率偏低,我感觉自己的CSS知识还不足以解决这个问题,下班在地铁上的时候突然想到直接使用百分比代替像素应该可以,回来稍微试了下,发现果然可以解决,修改方法如下:

  • 修改.inside的宽度,原来是760px,修改为95%,在800的宽度下就是760px,和原来一样
  • 修改#primary.twocol-stories .story和#primary.twocol-stories .navigation的宽度,原来是500px,修改为72%,在800的宽度下就是547px,比原来稍大
  • 修改#primary .primary的宽度,原来是480px,修改为67%,在800的宽度下就是509px,比原来稍大

这样修改后的结果,在800*600的宽度下比原来稍好,日志显示部分的宽度增大,比原来显得紧凑一些,在800*600以上的分辨率下,效果还不错,日志显示部分都比原来扩大了,侧栏的宽度都没有改变,不影响界面的美观。这个方案已经在800*600、1024*768以及1280*1024下测试过,结果都比较理想。

EJB单元测试框架

公司的产品要引入单元测试以及代码覆盖,让我做一个框架方便我们写单元测试代码,上网找了一下,找到一个不错的基础:MockEJB,大家可以先了解下相关的内容:
MockEJB项目简介信息
使用MockEJB简化EJB测试

我在这个基础上进行了扩充,框架具有如下的特性:

  • 读取EJB配制文件完成EJB的自动发布,框架会读取我们工程的ejb-jar.xml,jboss.xml,jbosscmp- jdbc.xml文件的配制信息并组合这些信息完成自动发布所需要的内容。
  • 共享的dummy数据,我们自己提供一个xml文件,里面存放一些dummy的数据,这些数据会在对应的Entity Bean被使用的时候自动插入数据库,完成数据的初始化工作(这样Session Bean中的SQL也可以取到一致的内容),在一个test方法结束的时候回滚,删除那些记录,消除Test Case之间的影响。
  • 自定义事务管理,每个test方法都处于同一个事务中,方法结束的时候事务回滚,消除Test Case之间的影响。
  • 支持部分find方法的实现,由于MockEJB对于Entity Bean只提供了对findByPrimaryKey的支持,甚至连findAll都不支持,框架在MockEJB提供的Aspect机制的基础上实现了 findAll等常用必备的find方法,并且对于自定义的find方法也提供部分支持,通过解析EJB配制文件中的SQL完成,但是可能性能不好,因为会遍历所有的记录并比较字段的值完成这个查找的过程。其它比较复杂的find方法(框架无法解析的SQL),需要自己实现对应的Aspect,框架会自动查找对应的Aspect。
  • Struts TestCase的基础上支持对Action的单元测试。

测试代码范例:
阅读全文

我使用的WordPress插件

本来想过段时间再写的,但是考虑到随时可以更新,趁现在有时间先列出现在用的,也好有个历史记录。

Akismet:这个是系统自己带的,反评论spam的。 (2006年10月26日废弃,先用Did You Pass Math?看看效果重新启用,效果还不错)
Blog It !:添加网摘(书签、BookMark,谁知道到底是什么?)的,支持很多网摘站,似乎国内居多。(2006年10月26日废弃,使用自己修改的Jiehoo Bookmark
Jerome’s Keywords:给日志增加Tags的。
Related Posts:给日志增加相关日志的,目前还不太清楚相关性算法,有时间再研究了。
Random Posts for Chinese:增加随机日志的。
Google Sitemaps:自动生成google sitemap文件的,有更新后可以自动ping一下google。
WordPress Database Backup:系统自带的数据库备份的,懒得登录后来dump数据库。(使用WP-DBManager代替

2006年10月25日 晚上更新:
首字下沉:不知道为什么叫首字下沉,在我看来应该是首字放大。
Did You Pass Math?:使用简单的算术防止评论SPAM的。(2006年11月7日停用,有问题)
Admin Drop Down Menu:简化管理界面,可以方便的切换到某个功能的子项。
Jiehoo Bookmark:我自己修改的Blog It!代码得到的书签插件。

2006年10月27日晚上更新:
CountPosts:统计日志的点击数。
WP-DBManager:数据库管理。
Emotions:给评论加表情。

2006年10月28日晚上更新:
flickrRSS:Flickr的RSS输出。

2006年11月6日更新:
Feed List:输出外部rss,我用来输出我的Del.icio.us的书签内容。
WP-PostRatings:给日志投票,用来调查日志的受欢迎程度。

2006年11月24日更新:
Landing sites:如果是搜索引擎过来的点击,显示和搜索内容相关的其它日志。
WP-ShortStat:跟踪BLOG的状态。(2007年3月9日:因为严重的消耗数据库空间而停用)
WP-Cron:定时执行。

抵御不了增加更多插件的诱惑

由于使用了WordPress,而它又有那么多的不同插件,看了别人使用的插件列表,有些插件确实很好用,就想着不断的学习别人装了哪些插件,我可以使用哪些。到目前为止才装了7个左右的插件,但是应该会装20个左右吧,有些个性化和增强功能的插件还是很必要的。

这几天整这些插件,发现搞软件的有一个好处,就是即使你不会使用某种语言,但是做一些简单的修改还是很简单的,例如我以前从来没有接触过PHP,但是这几天下来,改了不少东西,也没有遇到太多的问题,简单的看了下语法,其实和JSP也差不多的。

定制Blog It

看到别人用了一个比较强大的添加书签的插件:Blog It,但是上面的说明比较简单:

1.修改 {WP_HOME}/wp-content/themes/{YOUR_THEME} 目录下的 single.php 文件,将

<div class="post">

修改为

<div class="post" id="postitem">

但是实际上很多人使用不同的主题的时候single.php里面的内容完全不同,根本就没有一个class是post的div,其实
Blog It的原理比较简单,就是查找页面上ID为postitem的元素,然后附加一个DIV,把里面的内容设置一下就行了:
                var postitem = document.getElementById(‘postitem’);
                var NewNode = document.createElement(‘div’);
                postitem.appendChild(NewNode);
                NewNode.innerHTML = str;

其实定制很简单,需要一点JavaScript的知识,自己随便选择一个元素,把他的ID设置为postitem或者任何其它你想使用的值,然后修改postid.php里面的代码就行了,我的这个主题修改为了:
                var postitem = document.getElementById(‘postitem’);
                var dlNode = document.createElement(‘dl’);
                var dtNode = document.createElement(‘dt’);
                var ddNode = document.createElement(‘dd’);
                dlNode.appendChild(dtNode);
                dlNode.appendChild(ddNode);
                postitem.appendChild(dlNode);
                dtNode.innerHTML = ‘&#32593;&#25688;&#65306;’;
                ddNode.innerHTML = str;
另外我把那些网摘的文字的颜色效果都去掉了,不然影响美观,呵呵。

海明威主题的几个问题

挑挑我用的这个主题的两个小刺:

  • 汉化不彻底,很多页面还是包含很多英文,例如搜索结果页。
  • 搜索结果页左侧的内容不正确,明明有匹配的结果但是一直报没有结果。

呵呵,不过汉化的问题比较好办,自己修改也很简单,搜索结果页的那个问题没有找到什么解决办法,暂时只能去掉那些信息了。

其实我对这个主题最不满意的地方还是页面宽度,它定死了宽度,要是可以根据客户端的分辨率自动调整页面的宽度就太好,目前还没有办法修改,因为我对CSS还只是停留在根据手册修改某些元素的style上。

其它的,这个主题可以说很好了!

© 2025 解惑

本主题由Anders Noren提供向上 ↑