Windows 下推荐使用的端口转发(映射/重定向)工具:PassPort

前一篇里 Windows 和 Linux 平台下的端口转发工具 介绍 Windows 下的端口重定向工具有 rinited 和 FPipe,rinited 可以同时应用多个规则,FPipe 一个命令一个规则,它们都是命令行的。

本文中介绍另一款更好用的端口重定向工具 PassPort, 它是免费开源的,图形界面的,支持 TCP/UDP、配置简单,可配置多组映射规则,可作为 Windows 系统服务运行。

下载地址是:http://sourceforge.net/projects/pjs-passport/。安装后运行界面如下: 阅读全文 >>

Windows 和 Linux 平台下的端口转发工具

这里记录一下我曾经使用过的几个端口转发工具,即端口映射、端口重定向,和 NAT 也是差不多的概念。

Linux 下用过 iptables,rinetd;Windows 下用过某个防火墙的 NAT 功能、RemoteAnywhere 的端口重定向、FPipe,还有最近刚找到的 PassPort。试着去设置一下 Windows 2000 的 NAT  功能,但未成功,还是特定的软件简单易用,下面介绍逐一介绍下。

iptables 的功能当然强大,但理解与设置却有点抽象,曾用它进行过透明代理上网,见:Linux 下仅用 iptables 实现为透明代理服务器。真要用它进行端口重定向太麻烦,会用它当然很方便的,在 Linux  平台下是开箱即用的,很多机器都安装了它。 阅读全文 >>

理解 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 = '') 阅读全文 >>

Spring 3.0.5.RELEASE 版悄无声息的发布了

Spring 3.0.5 Release 版在 2010-10-20 悄然发布,真正支持了 Hibernate 3.6 Final。在常去的几个网站都没看到相关信息,而且在 Spring 的官方网站上也是小声细作,好不容易才翻出一个 changelog 出来:http://static.springsource.org/spring/docs/3.0.x/changelog.txt

可在 http://ebr.springsource.com/repository/app/bundle/version/detail?name=org.springframework.core&version=3.0.5.RELEASE 下载,

假如你是用 Ivy 管理依赖,请添加:

<dependency org="org.springframework" name="org.springframework.core" rev="3.0.5.RELEASE" />

用 Maven 管理依赖的话,pom.xml 加: 阅读全文 >>

用 DbUnit 执行 export 导出数据时报 MySQLSyntaxErrorException

我是借助于 dbunit-maven-plugin 来使用 DbUnit 的,数据库是 MySql,在使用 mvn dbunit:export 指令时,总报错:

Embedded error: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc from unmi_test_table order by Id' at line 1

若是加上 -e 或 -X 参数,如 mvn dbunit:export -e 时可以看到更详细的异常信息:

Caused by: org.apache.maven.plugin.MojoExecutionException: Error executing export 阅读全文 >>