理解 Java 正则表达式怪异的 \\ 和 \\\\,让您见怪不怪

Java 语言里的几大变革,一为 jdk1.4 引入的正则表达式,jdk1.5 引入的泛型。没有泛型之前有不少人曾想方设法从编译器入手让 Java 支持泛型。说到泛型  Perl 无疑是该方面的佼佼者,虽然我们不要求 Java 的正则表式能像 Perl 那样可以用来写诗,但至少能有 JavaScript 好用些,可是还不如。JavaScript 里 // 两斜线一框就是一个模式,分组和后向引用更方便,当然前面那两家伙是动态的,不太好比。

复杂的用法不说,且说 Java 的正则表达式在匹配点(.)  和斜杠(\),表达式要分别写作 \\. 和 \\\\,难看些,不好理解。幸好还有些人记住了,匹配点(.) 或  {、[、(、?、$、^ 和 * 这些特殊符号要要前加双斜框,匹配 \ 时要用四斜杠,这确实能让你包走天涯的。那么为什么是这样呢,不是一个斜杠、三个或更多呢,所以知其然还要知其所以然,这样才能每次心中有数,方能以一变应万变。 阅读全文 >>

本博客前几日又完成一次搬迁--历数博客搬迁之路

本博客再次完成了一次搬迁,从 BlogHost主机 SoftLayer达拉斯机房 到 加州硅谷T2机房 的搬迁,这一次搬迁相比前两次容易得多,因为仅仅是 WordPress 程序和数据的转移。国为达拉斯的服务器访问起来较慢,所以需搬动一下提提速。

主要是国内的主机贵且对备案什么的很反感,所以一直没考虑用国内的主机,不然国内主机供国人访问是要快得多。虽然可以曲线方式进行备案,但基于现在的白名单政策,仍然会让人焦虑,每加一个二级域名都得通知一声机房。那等于是即使域名解析支持泛域名解析,但接入到机房这一关也是白搭。

所以只好在国外主机里挪来挪去,看以后考虑香港、马来西亚也是个不错的选择。 阅读全文 >>

用 CSS 的伪类 hover 轻易实现 js 的 mouseover/mouseout 功能

原来做过一个在 html 表格中,当鼠标悬停在某行时,该行出行操作按钮,其他行的操作按钮隐藏。那时候的实现思想是当 onmouseover 在某行时,循环所有行,全隐藏掉按钮,再显示该行的。偶尔还得用下 onmouseourt 事件,现在想来这种实现会很影响页面效率的。

前几日看 WordPress 的后台列表,对相应记录的操作也使用了该功能,鼠标停在哪一行就只出现该行的可操作按钮,曾以为是用 js 实现的,看到要隐现的元素是 <div class="row-actions">edit|trash...</div>,还在 js 文件里搜索过 row-actions 字符串。忙了一会儿才把目光转移到了 css 中找实现,在 wp-admin/css/wp-admin.css 中找到像下面的样式: 阅读全文 >>

让 All in One SEO Pack 插件适用于截取中文描述

建议看过这里来 WordPress 插件 All in One SEO Pack 生成中文描述的解决

对于 SEO 来说,Title、Description、Keywords 是很重要的,尤其是前两者,它们直接反应在搜索引擎的条目中。对于英文博客来说 All in One SEO Pack 是做得很不错的,自动截取的描述完全能胜任。然而中文字符集的问题,依然按照英文那样来计算长度截取描述的话,你会发现在搜索引擎出来的条目中描述基本过短,因为 UTF8 的字符基本是一个顶 3。

所以要用这个插件来支持中文博客,那就得改,改改更健康。很多人说 All in One SEO Pack 影响了 Baidu 的收录,我不觉得,因为我一直用它,挺好的。

下面说说怎么来改它使之更好的支持中文,需要改动的文件只有一个,就是 aioseop.class.php。这里所针对的版本是今天的最新版 1.6.13,有三处要改动。 阅读全文 >>

如何在 js 代码中使用 jsp 标签或 Java 代码

JSP 标签还是很方便的,比如 Struts、Spring 等提供给我们的 JSP 标签,可以用它们来获取变量或进行一些计算。比如 struts2 的 <s:url value="/admin/unmi.action"/> 会为我们自动在前面附加上应用上下文,如实际会生成 /testsite/admin/unmi.action。还有更多更方便的标签使用,比如用标签获取到 session 或请求中的数据作为 js 的变量等。 

引申此话题的,其实不光是在 JS 中使用 JSP 标签,可用 JSP 标签的地方当然可以直接写 Java 代码,即 ScriptLet 代码。 阅读全文 >>

xampp 错误:Deprecated: Assigning the return value of new by reference is deprecated

WordPress 3.0.1 之前是在 xampp 1.7.1 中运行的,没什么问题,php 版本为 5.2.9。后来升级 xampp 到 1.7.3 版,打开网站最上方出现提示:

Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\footnoted\wp-content\plugins\simple-tags\inc\client.php on line 1700

这是插件 simple-tags 里的代码,定位到该行是:

$error = & new WP_Error('invalid_taxonomy', __('Invalid Taxonomy'));

而 WP_Error 是用 function 进行定义的:

function WP_Error($code = '', $message = '', $data = '') 阅读全文 >>