语法加亮插件 SyntaxHighlighter 的好伴侣,轻便的 TinyMCE 工具按钮

用 SyntaxHighlighter 有一段时间了,版本从 1.x、2.x,到现在的最新版本是 3.0.83,1.x 和 2.x 相差较大,2.x 到 3.x 未感觉多大的变化。SyntaxHighlighter 原来是在 google 中的项目,http://code.google.com/p/syntaxhighlighter/,现在由 DbNetLink 赞助,项目移至:http://alexgorbatchev.com/SyntaxHighlighter/

在 WordPress 中关于应用 SyntaxHighlighter 进行语法加亮有众多的插件支持,搜索 SyntaxHighlighter 就知道了。但是为 TinyMCE 辅助的工具按钮却未找到一个较好用的,之前也有介绍过:给 TinyMCE 添加一个语法加亮插件的工具按钮,也是根据某个插件进行修改的。不如之处就是点击按钮后还需与服务端作一次交互,这对于使用国外较慢的空间有些受不了。 阅读全文 >>

Web开发者必知的12款jQuery插件

jQuery插件能够增强网站的可用性,有效地改善用户体验,还可以大大减少创建一个新站点的开发时间。现在的jQuery插件很多,尽可以根据您的项目 要求来选择,不过也有一些插件很好用,几乎各种项目都能够用得上。这里就为您介绍12款开发中最常用的jQuery插件。

1.jQuery BBCode Editor

下载地址:http://www.w3theme.com/jquery-bbedit/

Bbcode简单易用,它是BBS、论坛、Blog等网络应用上的一种常用输入语法。jQuery BbCode Editor提供自定义设置,可以打造出很个性化的bbcode编辑器,它的源代码都可以根据需求灵活修改。 阅读全文 >>

如何让 Map 中的值按放入顺序输出

笔者致: 当你打开这个页面的时候, 基本就无需再看后面的内容了, 因为直接用 LinkedHashMap 就能满足您的需求.  文中对这个问题的探索只是不知道别人早已过河了, 仍然在河里摸着石头. LinkedHashMap 是 JDK 1.4 加进来的, 之所以有 apache-commons ListOrderedMap 大约是因为它最早所处的是 JDK 1.4 之前的年代.


在使用 Java 的 Hashmap 时,输出 Map 中的值如何使之按放入的顺序输出来,像 List 那样保持顺序。这里的顺序不是说对集合中的数据进行的排序,要是的话用 TreeMap,像 TreeSet 一样就行。 我们看个例子:

阅读全文 >>

Slf4j + Logback 怎么过滤掉第三方包中的日志显示

其实这跟 Slf4J 通用日志框架没什么关系,单单是 Logback 的事,把 Slf4J 扯进来只因它们是对黄金组合。

我们在 log4j 中想要不显示第三方包的非常冗余的日志输出时,只要在 log4j.properties 中写上:

这样在 hibernate 里的日志级别在 ERROR 以下的 TRACE、DEBUG、WARN 和 INFO 将不被输出,控制台会比较的干净。

Logback 的配置文件是 logback.xml,曾经在里面给 <appender> 加的 <pattern> 是: 阅读全文 >>

iText 用 HTMLWorker 转换 HTML 为 PDF 时可设置表格列宽度

生成 pdf 的方式有多种,直接用 iText 编码控制产生,fop 转换,不过我觉得很方便的一种方法就是用 iText 的 HTMLWorker 类直接把 HTML 转换成相应的 PDF 文档,HTMLWorker 可支持图片和表格,一定数量的样式控制。这样可以让我们关注到 HTML 页面设计上,至于转换出来的效果就要看母版 HTML 的设计功底了。要知道这个 HTML 中的样式要让 HTMLWorker 可理解的,并非说能支持 CSS2 还是 CSS3。HTMLWorker 能支持的样式还是非常有限,并且还未文档化的,有些多试试,能看看源代码是自然可以让胸中更有数了。

项目中有一个比较迫切的问题是把 HTML 中的表格转换成 PDF 的 PdfPTable 时,无论是在 <td> 上用 width="xxx" 或是 style="width:xxx" 时都看不到宽度的设置效果,iText 总是让生成的 PdfPTable 平均分配单元格宽度的。这对于单元格宽度有过于悬殊的需求是无法妥协的,所以要一种办法来支持自定义单元格宽度,让 width="xxx"  或是 style="width:xxx" 有一种控制能力就行。又得改源代码了,网上找到了是支持 iText 2.1.7 的改法,本篇是针对 iText 5.0.4 的做法,使支持 width="10%" 百分比来控制单元格宽度。 阅读全文 >>

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 中找到像下面的样式: 阅读全文 >>