对新主题的一些小改进

两个问题:

  1. Launch 主题原先在评论的位置是一个小图标的,但我发现用 DISQUS 的插件 是没有这个小图标的。是否有办法整回来?
  2. Launch 的 FeedBurner URL 功能几何?

小图标的问题,我之前未做过 WordPress plugin 开发,经过一阵简单的文档扫描之后,开始读代码,主要寻找 add_filter 或者 add_action 函数调用,再加上输出结果作为线索,很快就锁定了 comments.php 这个文件,在 #disqus_thread 的外围(一开始加在里面没效果,是因为后面的脚本会完全覆盖里面的节点)加上

<div id="comments">
    <div class="entry-icon"></div>
    <div id="disqus_thread">...</div>
</div>

还好,没深入到什么 Action 和 Filter 中去问题就解决了。

而 Feed 的功能,关闭 FeedBurner 插件之后一试便知,是完全实现了我所需要的功能—— feed 重定向。于是,快活地停用了 FeedBurner FeedSmith 插件

在实际使用过程中 FeedBurner 在国内有被墙 reset 的可能性(真神奇),不妨试一试 feedsky 的服务。现在访问 http://leegorous.net/blog/feed 会自动重定向到 http://feed.feedsky.com/leegorous。欢迎订阅。

鉴于 feedsky.com 刚刚无法访问了好一阵时间,不知道什么原因,还是换回去 feedburner 吧。继续提心吊胆,密切关注。

Chrome 总提示需要更新 Flash Player

前阵子用 Google Chrome酷容,原谷歌浏览器,这名字还需要一段时间去适应)的时候就发现它老会提示需要更新 Flash Player,按照它的提示安装了最新的 Flash Player Plugin,依然是老样子,当时没时间折腾就没理它。

更新了 Ubuntu 到 1204 之后,发现问题依然存在。又重新安装了 Flash Player Plugin 好几次,其实在 Firefox 里已经看到是最新版本了,但为什么 Chrome 认不出来呢?

根据 Adobe 上的文档 的提示。打开 chrome://plugins/,点击在右上角的 Details 按钮,查找 Flash 那一项,奇怪的是里面显示有 2 files。

一个是 位于 ~/.mozilla/plugins/libflashplayer.so 版本是 10.3 d162,另一个位于 /usr/lib/adobe-flashplugin/libflashplayer.so 版本是 11.2 r202,于是尝试 disable 了第一项,重启 Chrome。

OK,问题解决。

余下的问题就是,为什么 Chrome 有这样的机制存在?既然有更加高版本的插件存在,为什么不是首选更高版本运行,而是简单地按顺序拿第一个版本来运行,并且打开凡是包含 flash 插件的页面都提示需要更新,即使安装了最新的也依然提示,很让人摸不着头脑。

更换了 syntax highlight 插件

其实是个遗留问题。之前是用 Google Syntax Highlighter for WordPress,用起来也还不错,只是有些时候贴写 bash 代码,或者终端里的回显信息时候,真不知道该使用那种语言来显示高亮好。

直到最近开始写有关 Lisp 的 状况系统 与 异常处理 时,发觉情况有点糟糕啊,高亮结果都乱套了。然后跑到它的项目主页去找解决办法,看看有没有别人已经做好的扩展,或者看看怎么自己去扩展一下。结果是比较让人失望的,连怎么扩展的说明没有,也不寄望能找到现成的了。

但似乎又不能怪它,人家已经在主页上写了“This page is OLD, Head over to http://alexgorbatchev.com/wiki/”。那似乎是个更好的解决方案。然后又 google 到了 WP SyntaxHightlighter (在 wordpress 插件库里有一大堆名字很类似的插件,需要点眼力,或者精准查找)。这个插件所使用的正是它。这个插件支持多种配色方案,更吸引我的是下面有列出已经有人做了 Clojure 的扩展(Clojure 是 JVM 上的 Lisp)。

换插件是很容易的,admin 里点几下就搞定了。问题剩余两个:

  1. Clojure 扩展不是原生支持的,需要自行添加到插件中去
  2. 原有 post 里面的 <pre> 标签都需要做些修改,由 class=”lang” 改为 class=”brush: lang”

PHP 我不是很熟,不过靠猜,找到了一个文件(wp-syntaxhighlighter.php)里面有类似支持语言的数组,照例子改了下上传。一开始还不行,后来搞清楚了,它会保存选项到数据库里面,reset 一下就好了。

第二个问题没想到什么批量的办法,花了些时间,顺便把以前写的 post 都重温了下,虽然看得人不多,评论也不多,但是这些都是很好的见证。想起曾经有个时刻,大家都会开个 blog,还很认真的写过一阵,还都写得不错,有观点,有感情。相比之下,我在语文表达障碍阴影底下,只会写些技术文章来凑个热闹。

而随着热潮的退却,大家好像被 reset 了一样,也没有人写个告别博客什么的,只是不再写了。过程是缓慢的,没有人会感到不舒服,不会像断奶,学行走,上学,毕业那样会有许许多多的思想冲突发生。它连个状态切换都不是,只是一种变化跟随。大概无须要为这种事情赋予个什么意义,有人会选择做,有人会选择不做,但如果选择了做,请尽情享受那个过程。

我也作出了选择,我会继续追随梦想,分享美好的瞬间,分享独立的思考,这里是我的梦想飞行器。

让Jetty更加开胃

Mavenjetty-plugin 很好用,我是蛮喜欢,一直在用,现在做开发做测试基本离不开了,一条命令 mvn jetty:run 下去,感觉一个新世界被打开了一样。

不过在 window 上的 eclipse 里,它并不是很乖,主要是停不下来,传说这个是 window 平台上的一个硬伤,幸好解决方法还是有的,采取调试,Remote Java Application 的调试里有个选项 Allow termination of remote VM,可以在一定程度上解决这个问题,有点曲线,不过也方便,随时可以调试。我主要还是在 linux 环境下使用,因此这个问题基本对我不影响。

除了平台的问题,还遇到了一个 Form too large xxxxxx>200000 的问题,一开始没看清楚报错,使劲在 struts2 的范围里面找解决方法,以为是某个设置影响它约束了接受的 form 的大小。还好在无敌的 google 引导下,终于清楚了这是 jetty 在报错,它的默认参数里面有个限制。问题清楚了,解决方法却有点扑朔迷离,最初找到一个 maven.jetty.maxformcontentsize,看起来很接近,实际上只是用于特定软件内,扩大范围至 maxFormContentSize 再找,终于找到了一样的情况了,恼火的是一点进去立马撞墙,这时真的是为了接近真相,不得不继续深入虎穴(需翻墙)
下面配置的片段,想设多大就多大。

<plugin>
	<groupId>org.mortbay.jetty</groupId>
	<artifactId>maven-jetty-plugin</artifactId>
	<version>6.1.12</version>
	<configuration>
		<systemProperties>
			<systemProperty>
				<name>org.mortbay.jetty.Request.maxFormContentSize</name>
				<value>100000000</value>
			</systemProperty>
		</systemProperties>
		<scanIntervalSeconds>10</scanIntervalSeconds>
	</configuration>
</plugin>

不过,问题是为什么 jetty 会有这样一个默认参数存在呢?
设置成非常大之后的确可以解决问题,但是会不会对性能之类的造成影响呢?