<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>
	<title>摩登坊</title>
	
	<link>http://www.steveluo.name</link>
	<description>半吊子完美主义</description>
	<lastBuildDate>Fri, 18 May 2012 08:35:33 +0000</lastBuildDate>
	<language>zh-cn</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/steveluo" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="steveluo" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>贝尔金(Belkin) USB转COM适配器F5U109 for Win7 64位驱动程序</title>
		<link>http://www.steveluo.name/belkin-usb-com-f5u109-win7-64-driver/</link>
		<comments>http://www.steveluo.name/belkin-usb-com-f5u109-win7-64-driver/#comments</comments>
		<pubDate>Fri, 18 May 2012 08:32:15 +0000</pubDate>
		<dc:creator>Steve Luo</dc:creator>
				<category><![CDATA[知识库]]></category>
		<category><![CDATA[Console]]></category>
		<category><![CDATA[USB]]></category>
		<category><![CDATA[Win7]]></category>
		<category><![CDATA[驱动程序]]></category>

		<guid isPermaLink="false">http://www.steveluo.name/?p=282</guid>
		<description><![CDATA[由于公司新搭建的网络需要对设备进行配置，因此需要COM口来连接Console。不过现在的笔记本电脑大多都已经没有了COM口，而且连我公司用的这台台式机竟然也没有……囧 那么就需要USB转COM适配器了，正好很久以前配置Cisco设备的时候买过一个贝尔金(Belkin)的，型号是F5U109（型号不同芯片会不一样，用的驱动也是不同的）。不过新的问题又来了，这个应该也算是老古董产品了，看到官方网站上最新的驱动也就更新到Vista，而且其官方明确表示不支持64位系统。 于是Google了一下，中文资料是肯定不用想了，好在国外用的人还挺多，大多数看到的都是官方的驱动，哪怕是for Vista的也是不支持32位的。不过好在找到了一个使用非官方驱动程序的解决方法。 其实就是有一款和贝尔金F5U109使用同一型号芯片的USB转COM适配器，并且驱动程序支持Vista/Win7 32&#38;64 bit。 关键就是这个芯片控制器：P87C52 – 80C51 8-bit microcontroller and PDIUSBD12 made by NXP Semiconductors founded by Philips 下载后安装，果然可用。正好用在Juniper NetScreen SSG5 恢复出厂设置，完全没有问题。 驱动程序下载：http://www.mct-us.com/downloadfiles/driver/U232-P9_v10.2.98.100806.zip 备用镜像地址：http://clearchain.com/downloads/Belkin_FU409/U232_10.2.zip]]></description>
			<content:encoded><![CDATA[<p>由于公司新搭建的网络需要对设备进行配置，因此需要COM口来连接Console。不过现在的笔记本电脑大多都已经没有了COM口，而且连我公司用的这台台式机竟然也没有……囧</p>
<p>那么就需要USB转COM适配器了，正好很久以前配置Cisco设备的时候买过一个贝尔金(Belkin)的，型号是F5U109（型号不同芯片会不一样，用的驱动也是不同的）。不过新的问题又来了，这个应该也算是老古董产品了，看到官方网站上最新的驱动也就更新到Vista，而且其官方明确表示不支持64位系统。</p>
<p>于是Google了一下，中文资料是肯定不用想了，好在国外用的人还挺多，大多数看到的都是官方的驱动，哪怕是for Vista的也是不支持32位的。不过好在找到了一个<a href="http://www.clearchain.com/blog/posts/how-to-use-a-belkin-f5u409f5u409-cu-usb-to-pda-serial-converter-in-visawindows-7-64bit-mac-osx-10" target="_blank">使用非官方驱动程序的解决方法</a>。</p>
<p>其实就是有一款和贝尔金F5U109使用同一型号芯片的USB转COM适配器，并且驱动程序支持Vista/Win7 32&amp;64 bit。</p>
<blockquote><p>关键就是这个芯片控制器：P87C52 – 80C51 8-bit microcontroller and PDIUSBD12 made by NXP Semiconductors founded by Philips</p></blockquote>
<p>下载后安装，果然可用。正好用在<a href="http://www.steveluo.name/juniper-ssg5-reset-factory-configuration/" title="Juniper NetScreen SSG5 恢复出厂设置">Juniper NetScreen SSG5 恢复出厂设置</a>，完全没有问题。</p>
<p>驱动程序下载：<a href="http://www.mct-us.com/downloadfiles/driver/U232-P9_v10.2.98.100806.zip">http://www.mct-us.com/downloadfiles/driver/U232-P9_v10.2.98.100806.zip</a></p>
<p>备用镜像地址：<a href="http://clearchain.com/downloads/Belkin_FU409/U232_10.2.zip">http://clearchain.com/downloads/Belkin_FU409/U232_10.2.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.steveluo.name/belkin-usb-com-f5u109-win7-64-driver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Juniper NetScreen SSG5 恢复出厂设置</title>
		<link>http://www.steveluo.name/juniper-ssg5-reset-factory-configuration/</link>
		<comments>http://www.steveluo.name/juniper-ssg5-reset-factory-configuration/#comments</comments>
		<pubDate>Fri, 18 May 2012 08:15:15 +0000</pubDate>
		<dc:creator>Steve Luo</dc:creator>
				<category><![CDATA[知识库]]></category>
		<category><![CDATA[Console]]></category>
		<category><![CDATA[Juniper]]></category>
		<category><![CDATA[网络]]></category>
		<category><![CDATA[防火墙]]></category>

		<guid isPermaLink="false">http://www.steveluo.name/?p=279</guid>
		<description><![CDATA[公司采购了2台Juniper NetScreen SSG5，用于浦西和浦东2地的IPSec VPN连接。由于缺少规划方案，没有形成一个明确的网络拓扑，弱电集成商按照“标配”的方式配备了这些基础设备。因此当遇到了我们公司多出口多应用的方式时，就显得捉襟见肘。那么又回到了凡事靠自己这句话上来。 Juniper的防火墙倒是从来没碰过，命令上和路由器还是有一些差异。根据重新规划好的拓扑结构，按照“路由器&#62;防火墙&#62;上网行为管理&#62;交换机”这样的顺序来连接。这样就需要将SSG5防火墙配置成透明模式。 正好一直想试试Console配置的方式。找来了贝尔金（Belkin）的USB转COM适配器F5U109，不过由于机器装了Win7 x64，所以花了点时间在寻找F5U109可以用于Win7 64位系统的驱动程序。连接上SSG5的Console口后，发觉SecureCRT一直未响应，然后就提示无法连接。无奈之下还是下了个超级终端（WIN7可用）。 改成透明模式，需要更改接口(Interface)的区域(Zone)，但是死活显示Interface currenly in use，网上看到说是因为接口可能设置了VPN或Monitor找了半天不管是WebGUI还是SSH和Console都没能找到可以移除当前VPN配置的地方。 无奈之下，只能采取最原始也最彻底方法，恢复出厂设置了。好在新设备，还没做复杂的策略上去。 Juniper NetScreen SSG5 恢复出厂设置有2种方法： 1、软件方式 通过Console方式连接设备，在登录用户名和密码提示时，输入设备序列号（serial number），贴于设备的底部。 输入后，将显示如下信息:  !!! Lost Password Reset !!! You have initiated a command to reset the device to factory defaults, clearing all current configuration, keys and settings. Would you like to continue? y/[n] 按y键. 将显示如下信息:  !! Reconfirm [...]]]></description>
			<content:encoded><![CDATA[<p>公司采购了2台Juniper NetScreen SSG5，用于浦西和浦东2地的IPSec VPN连接。由于缺少规划方案，没有形成一个明确的网络拓扑，弱电集成商按照“标配”的方式配备了这些基础设备。因此当遇到了我们公司多出口多应用的方式时，就显得捉襟见肘。那么又回到了凡事靠自己这句话上来。</p>
<p>Juniper的防火墙倒是从来没碰过，命令上和路由器还是有一些差异。根据重新规划好的拓扑结构，按照“路由器&gt;防火墙&gt;上网行为管理&gt;交换机”这样的顺序来连接。这样就需要将SSG5防火墙配置成透明模式。</p>
<p>正好一直想试试Console配置的方式。找来了贝尔金（Belkin）的USB转COM适配器F5U109，不过由于机器装了Win7 x64，所以花了点时间在寻找<a href="http://www.steveluo.name/belkin-usb-com-f5u109-win7-64-driver/" title="贝尔金(Belkin) USB转COM适配器F5U109 for Win7 64位驱动程序">F5U109可以用于Win7 64位系统的驱动程序</a>。连接上SSG5的Console口后，发觉SecureCRT一直未响应，然后就提示无法连接。无奈之下还是下了个超级终端（WIN7可用）。</p>
<p>改成透明模式，需要更改接口(Interface)的区域(Zone)，但是死活显示Interface currenly in use，网上看到说是因为接口可能设置了VPN或Monitor找了半天不管是WebGUI还是SSH和Console都没能找到可以移除当前VPN配置的地方。</p>
<p>无奈之下，只能采取最原始也最彻底方法，恢复出厂设置了。好在新设备，还没做复杂的策略上去。</p>
<p>Juniper NetScreen SSG5 恢复出厂设置有2种方法：</p>
<p><span id="more-279"></span>1、软件方式</p>
<ul>
<li>通过Console方式连接设备，在登录用户名和密码提示时，输入设备序列号（serial number），贴于设备的底部。</li>
<li>输入后，将显示如下信息:</li>
</ul>
<pre> !!! Lost Password Reset !!! You have initiated a command to reset the device to factory defaults, clearing all current configuration, keys and settings. Would you like to continue? y/[n]</pre>
<ul>
<li>按y键. 将显示如下信息:</li>
</ul>
<pre> !! Reconfirm Lost Password Reset !! If you continue, the entire configuration of the device will be erased. In addition, a permanent counter will be incremented to signify that this device has been reset. This is your last chance to cancel this command. If you proceed, the device will return to factory default configuration,which is: System IP: 192.168.1.1; username: netscreen; password: netscreen. Would you like to continue? y/[n]</pre>
<ul>
<li>按y键，重启设备. 现在你能用 netscreen 作用户名和密码登录设备了。</li>
</ul>
<p>2、硬件方式（复杂，摘自网络，未验证）</p>
<ul>
<li>恢复针孔位于设备的前面板。用一个细的坚硬的金属丝（如回形针），插入针孔按住4到6秒然后放开。在控制台上可以出现一段连续的控制信息““Configuration Erasure Process has been initiated”。并且系统会发送一个SNMP/SYSLOG警告。面板上的状态灯每秒闪烁一次。</li>
<li>等待1.5到2秒钟。第一次重置完成，电源灯闪烁绿色；现在设备等待第二次启动。控制台信息“Waiting for 2nd confirmation.”</li>
<li>再次按住针孔4到6秒。状态灯变成琥珀色长亮1.5秒，然后回到绿色闪烁状态。</li>
<li>设备被重置到出厂设置。 当设备被重置后，状态灯变成琥珀色1.5秒，然后变回绿色闪烁状态。控制台信息“Configuration Erase sequence accepted, unit reset.”系统生成SNMP和SYSLOG警告，配置SYSLOG或者SNMP陷阱主机。<br />
注意：在恢复期间，不能保证在恢复前应该收到的SNMP警告还能被收到。</li>
<li>现在设备被重启。 如果你没有完成上述步骤，重置过程将被取消，任何配置不会被改变。并且控制台信息“Configuration Erasure Process aborted.”状态灯变成绿色闪烁。如果设备没有被重置，会发出一个SNMP警报，确认失败信息。</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.steveluo.name/juniper-ssg5-reset-factory-configuration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WP Keyword Link 优先匹配较长关键词的修改</title>
		<link>http://www.steveluo.name/wp-keyword-link-longer-first/</link>
		<comments>http://www.steveluo.name/wp-keyword-link-longer-first/#comments</comments>
		<pubDate>Sun, 06 May 2012 09:16:58 +0000</pubDate>
		<dc:creator>Steve Luo</dc:creator>
				<category><![CDATA[WordPress Plugins]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[代码]]></category>
		<category><![CDATA[关键词]]></category>
		<category><![CDATA[自动链接]]></category>

		<guid isPermaLink="false">http://www.steveluo.name/?p=269</guid>
		<description><![CDATA[在安装了WP Keyword Link 关键词自动链接化插件后，基本可以替代原先的aLinks了，不过还有一些小细节问题需要改进修复一下。 我们在添加关键词的时候，可能会遇到以下情况： 先添加了“链接化”，再添加了“自动链接化”作为关键词，当文中出现“自动链接化”时，首先被匹配的是链接化3个字，而不是”自动链接化“，结果下文以你为还有“链接化”3个字，所以被匹配到了，而“自动链接化”仅出现了1次，所以错过了仅有的一次匹配机会。 这个问题的思路：应该先匹配”自动链接化“，再去匹配“链接化”，因为长词出现的几率要比短词低的多。 不过似乎插件作者考虑到了这个问题，在标签替换的功能中确实是按照标签文字的长度来进行排序处理的，而手工的关键词却只能按照录入顺序（这个坑爹了，如果我有50个关键词，我想在中间或者最上面插入一个关键词，这工作量无语了） 所以研究了一下代码（PHP属于还没入门的级别，边查资料边改），发现在标签的代码部分有一个自定义排序用来按照文字长度进行排序。于是依样画葫芦，添加了一个用于普通手工添加的关键词的自定义排序函数，并在循环匹配开始前，对数组先进行排序。 下面是添加的代码： 首先在大约617行的 if ($links) 后添加 uksort($links, "my_sort_by_len_for_keywords"); 然后在给tags用的根据关键词长度排序函数后面，再加一个 #### 按长度排序 for 关键词(关键词和标签匹配的函数略有区别 Add By Steve Luo function my_sort_by_len_for_keywords($a, $b){ if ( $a == $b ) return 0; return ( strlen($a) &#62; strlen($b) ) ? -1 : 1; } 简单的修改就实现了一个说小不小说大不大的细节功能，不过对于我这样的初学者来说还是花了不少功夫的。 另外：开启了“自动把文章的标签当作关键词”后，会出现原有链接被破坏的情况，这个问题自己研究了半天还没有结果，只能等高人来解决了。]]></description>
			<content:encoded><![CDATA[<p>在安装了<a href="http://www.steveluo.name/wp-keyword-link-auto-link-plugin/" title="WP Keyword Link 关键词自动链接化插件">WP Keyword Link 关键词自动链接化插件</a>后，基本可以替代原先的aLinks了，不过还有一些小细节问题需要改进修复一下。</p>
<p>我们在添加关键词的时候，可能会遇到以下情况：</p>
<p>先添加了“链接化”，再添加了“自动链接化”作为关键词，当文中出现“自动链接化”时，首先被匹配的是链接化3个字，而不是”自动链接化“，结果下文以你为还有“链接化”3个字，所以被匹配到了，而“自动链接化”仅出现了1次，所以错过了仅有的一次匹配机会。</p>
<p>这个问题的思路：应该先匹配”自动链接化“，再去匹配“链接化”，因为长词出现的几率要比短词低的多。</p>
<p>不过似乎插件作者考虑到了这个问题，在标签替换的功能中确实是按照标签文字的长度来进行排序处理的，而手工的关键词却只能按照录入顺序（这个坑爹了，如果我有50个关键词，我想在中间或者最上面插入一个关键词，这工作量无语了）</p>
<p>所以研究了一下代码（PHP属于还没入门的级别，边查资料边改），发现在标签的代码部分有一个自定义排序用来按照文字长度进行排序。于是依样画葫芦，添加了一个用于普通手工添加的关键词的自定义排序函数，并在循环匹配开始前，对数组先进行排序。</p>
<p><strong>下面是添加的代码：</strong></p>
<p>首先在大约617行的</p>
<p><span id="more-269"></span></p>
<pre>if ($links)</pre>
<p>后添加</p>
<pre>uksort($links, "my_sort_by_len_for_keywords");</pre>
<p>然后在给tags用的根据关键词长度排序函数后面，再加一个</p>
<pre>#### 按长度排序 for 关键词(关键词和标签匹配的函数略有区别 Add By Steve Luo
function my_sort_by_len_for_keywords($a, $b){
	if ( $a == $b ) return 0;
	return ( strlen($a) &gt; strlen($b) ) ? -1 : 1;
}</pre>
<p>简单的修改就实现了一个说小不小说大不大的细节功能，不过对于我这样的初学者来说还是花了不少功夫的。<br />
另外：开启了“自动把文章的标签当作关键词”后，会出现原有链接被破坏的情况，这个问题自己研究了半天还没有结果，只能等高人来解决了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.steveluo.name/wp-keyword-link-longer-first/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WP Keyword Link 关键词自动链接化插件</title>
		<link>http://www.steveluo.name/wp-keyword-link-auto-link-plugin/</link>
		<comments>http://www.steveluo.name/wp-keyword-link-auto-link-plugin/#comments</comments>
		<pubDate>Sat, 05 May 2012 17:15:40 +0000</pubDate>
		<dc:creator>Steve Luo</dc:creator>
				<category><![CDATA[WordPress Plugins]]></category>
		<category><![CDATA[aLinks]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[关键词]]></category>
		<category><![CDATA[插件]]></category>
		<category><![CDATA[标签]]></category>

		<guid isPermaLink="false">http://www.steveluo.name/?p=266</guid>
		<description><![CDATA[既然近期打算恢复更新博客，那么插件什么也都该升升级了。原来使用的aLinks已经变成了老古董，似乎已经停止了更新，并且在插件作者的网站也已经无法访问，而Wordpress已经进去了3.x时代，因此得换一个可以兼容的插件。然而，aLinks其实还是在工作的，只是后台管理关键词的界面刷不出来了，也懒得去研究怎么修复了（越是强大的插件就越是复杂。。）。同时也发现了aLinks的中文兼容性出现了问题，所以只能彻底放弃了。 为什么要使用此类关键词自动链接化（Keywords Auto Link）插件？ 这个问题相信学过SEO的人都知道，这样能够快速的建立起大量的定向锚文本，无需手工地一个个去添加链接，并且有非常好的可维护性（需要调整链接地址或取消锚文本时）。我们要做的，只是准确地、有针对性的写好每一篇文章。 是的，专注于内容，机械重复性的工作交给自动化工具处理，效率极大地提升！ &#160; 关键词自动链接化插件需要具备哪些功能？ 中文兼容性（许多插件都在中文处理上差一口气，其实大多是编码、正则表达式的问题） 方便的关键词添加、编辑、删除 内部和外部链接可进行区分（外链以新窗口打开，并添加图标） 智能识别关键词是否已经在一个链接中，而不破坏它 关键词匹配顺序从长到短（例如，我同时添加了“链接化”和“自动链接化”2个关键词，应该先匹配”自动链接化“，再去匹配“链接化”，因为长词出现的几率要比短词低的多） 其他精细选项 以上是我个人的需求，可能每个人都有差异，针对的方向也不同。所以要找到一个十全十美的插件基本上是没有可能的，只能找到满足大部分的，然后有能力的话自己改进一下。 所以这次找到了WP Keyword Links这款插件。在经过了一系列的测试之后，该插件能够满足大部分的要求，而对于关键词的匹配顺序有一些问题，按照作者博客1.6版本发布页面的描述： Tags按关键词的长度排序   这段时间有几个网友都在同时反馈这个问题，就是希望长的关键词优化匹配，然后才是短的。 V1.6.0版本在Tags(标签)当作关键词这个功能里先启用。 也就是说，在手动添加的关键词里依然保持原状的。 ◦手动添加的关键词 –&#62; 按关键词添加先后的顺序匹配的。 ◦Tags(标签)当作关键词（自动） –&#62; 长的关键词优化匹配 奇怪的是为何Tags做成了优先匹配长词，而手动添加的关键词却只能按顺序？于是自己动手，做了些小小的修改，实现了WP Keyword Link 优先匹配较长关键词的修改。 而对于其他方面，该插件都做的非常不错，暂时看来没有更好的选择了。 &#160;]]></description>
			<content:encoded><![CDATA[<p>既然<a href="http://www.steveluo.name/coming-back-soon/" title="近期打算恢复更新博客">近期打算恢复更新博客</a>，那么插件什么也都该升升级了。原来使用的aLinks已经变成了老古董，似乎已经停止了更新，并且在插件作者的网站也已经无法访问，而Wordpress已经进去了3.x时代，因此得换一个可以兼容的插件。然而，aLinks其实还是在工作的，只是后台管理关键词的界面刷不出来了，也懒得去研究怎么修复了（越是强大的插件就越是复杂。。）。同时也发现了aLinks的中文兼容性出现了问题，所以只能彻底放弃了。</p>
<p><strong>为什么要使用此类关键词自动链接化（Keywords Auto Link）插件？</strong></p>
<p>这个问题相信学过SEO的人都知道，这样能够快速的建立起大量的定向锚文本，无需手工地一个个去添加链接，并且有非常好的可维护性（需要调整链接地址或取消锚文本时）。我们要做的，只是准确地、有针对性的写好每一篇文章。</p>
<p>是的，专注于内容，机械重复性的工作交给自动化工具处理，效率极大地提升！</p>
<p>&nbsp;</p>
<p><strong>关键词自动链接化插件需要具备哪些功能？</strong></p>
<ul>
<li>中文兼容性（许多插件都在中文处理上差一口气，其实大多是编码、正则表达式的问题）</li>
<li>方便的关键词添加、编辑、删除</li>
<li>内部和外部链接可进行区分（外链以新窗口打开，并添加图标）</li>
<li>智能识别关键词是否已经在一个链接中，而不破坏它</li>
<li>关键词匹配顺序从长到短（例如，我同时添加了“链接化”和“自动链接化”2个关键词，应该先匹配”自动链接化“，再去匹配“链接化”，因为长词出现的几率要比短词低的多）</li>
<li>其他精细选项</li>
</ul>
<p><span id="more-266"></span>以上是我个人的需求，可能每个人都有差异，针对的方向也不同。所以要找到一个十全十美的插件基本上是没有可能的，只能找到满足大部分的，然后有能力的话自己改进一下。</p>
<p>所以这次找到了<a href="http://wordpress.org/extend/plugins/rejected-wp-keyword-link-rejected/" target="_blank">WP Keyword Links</a>这款插件。在经过了一系列的测试之后，该插件能够满足大部分的要求，而对于关键词的匹配顺序有一些问题，按照<a href="http://liucheng.name/1896/" target="_blank">作者博客1.6版本发布页面</a>的描述：</p>
<blockquote><p>Tags按关键词的长度排序   这段时间有几个网友都在同时反馈这个问题，就是希望长的关键词优化匹配，然后才是短的。</p>
<p>V1.6.0版本在Tags(标签)当作关键词这个功能里先启用。</p>
<p>也就是说，在手动添加的关键词里依然保持原状的。</p>
<p>◦手动添加的关键词 –&gt; 按关键词添加先后的顺序匹配的。</p>
<p>◦Tags(标签)当作关键词（自动） –&gt; 长的关键词优化匹配</p></blockquote>
<p>奇怪的是为何Tags做成了优先匹配长词，而手动添加的关键词却只能按顺序？于是自己动手，做了些小小的修改，实现了<a href="http://www.steveluo.name/wp-keyword-link-longer-first/" title="WP Keyword Link 优先匹配较长关键词的修改">WP Keyword Link 优先匹配较长关键词的修改</a>。</p>
<p>而对于其他方面，该插件都做的非常不错，暂时看来没有更好的选择了。</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.steveluo.name/wp-keyword-link-auto-link-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>你还在用jpg保存截图吗？试试png吧</title>
		<link>http://www.steveluo.name/try-png-instead-of-jpg/</link>
		<comments>http://www.steveluo.name/try-png-instead-of-jpg/#comments</comments>
		<pubDate>Tue, 24 Apr 2012 14:25:00 +0000</pubDate>
		<dc:creator>Steve Luo</dc:creator>
				<category><![CDATA[知识库]]></category>
		<category><![CDATA[jpg]]></category>
		<category><![CDATA[png]]></category>

		<guid isPermaLink="false">http://www.steveluo.name/?p=258</guid>
		<description><![CDATA[我比较落伍，最近才发现了国内有好多优秀网站，比如“善用佳软”，看名字就是知道介绍软件的，而他比其他一些大家经常看到的长的也挺漂亮的不同，有深度同时又不乏广度。 这几天主要是在找日历工具，想把自己的时间和日程管理起来。事情越来越多，我也没有习惯在纸质台历上写写划划，所以就得借助工具了。既然我有这个需求我想肯定许多比我厉害的人已经提出了这个需求并通过某种方式已经得到了满足。 言归正传，经常截图的人应该有一个感觉，不管是用QQ、微博还是Print Screen等等（现在什么乱七八糟软件都带截图工具，方便是方便，但快捷键在打架。。），截好的图片总觉得质量有偏差，不是色差就是模糊不堪，其格式正式最常见的jpg。 那么很显然，问题出在了图片质量上，那么图片质量又是压缩格式所决定的（我们知道除了BMP之类的以像素存储图像的格式外，基本上都会经过压缩），而我基本上都未找到有调节图片质量的地方。看了“为什么软件界面截图不存为jpg 而推荐png？”一文，茅塞顿开。 由于我对图像数据没有研究，也只是通过阅读了解个皮毛，大概是了解了以下知识： jpg适用于自然或人物照片——颜色数量多、但边界和颜色过渡不尖锐，反而有很强的连续性。多数非专业的数码相机，拍摄照片后都保存为jpg格式。jpg照片，可以在视觉效果损失很小的情况下，文件尺寸极明显降低。比如，把原大小3MB的jpg照片，另存为500KB，效果仍然可以接受。 软件界面保存为jpg，很容易出现失真——在文字、线条周围，出现斑点、模糊。如果要提高质量，jpg的体积也会迅速增长。但即使如此，失真现象仍难避免。真是费力不讨好！ png具备gif的所有优点——无损压缩、清晰、体积小——并支持更多颜色。因此，png是软件截屏的首选格式。 很显然，用jpg存照片是明智的，相反用png存照片会显得很大（不过按照上面的理论，可以无损压缩？这个对于有点完美主义的我来说是很乐意做的）；而用jpg存截图、Banner等界面图片，显然是不合适的，因为质量的降低会让你无法忍受（尤其是完美主义者），所以png满足了这个要求。 不过我至今还有一个疑惑，之前见过用gif存的高质量图片，似乎并没有很明显的因颜色数量不足而出现的失真，但自己却始终存不出那么高质量的图片。希望有高人能答疑解惑。]]></description>
			<content:encoded><![CDATA[<p>我比较落伍，最近才发现了国内有好多优秀网站，比如“<a title="善用佳软" href="http://xbeta.info/" target="_blank">善用佳软</a>”，看名字就是知道介绍软件的，而他比其他一些大家经常看到的长的也挺漂亮的不同，有深度同时又不乏广度。</p>
<p>这几天主要是在找日历工具，想把自己的时间和日程管理起来。事情越来越多，我也没有习惯在纸质台历上写写划划，所以就得借助工具了。既然我有这个需求我想肯定许多比我厉害的人已经提出了这个需求并通过某种方式已经得到了满足。</p>
<p>言归正传，经常截图的人应该有一个感觉，不管是用QQ、微博还是Print Screen等等（现在什么乱七八糟软件都带截图工具，方便是方便，但快捷键在打架。。），截好的图片总觉得质量有偏差，不是色差就是模糊不堪，其格式正式最常见的jpg。</p>
<p>那么很显然，问题出在了图片质量上，那么图片质量又是压缩格式所决定的（我们知道除了BMP之类的以像素存储图像的格式外，基本上都会经过压缩），而我基本上都未找到有调节图片质量的地方。看了“<a href="http://blog.sina.com.cn/s/blog_46dac66f010004ox.html" target="_blank">为什么软件界面截图不存为jpg 而推荐png？</a>”一文，茅塞顿开。</p>
<p>由于我对图像数据没有研究，也只是通过阅读了解个皮毛，大概是了解了以下知识：<span id="more-258"></span></p>
<ol>
<ol>
<li>jpg适用于自然或人物照片——颜色数量多、但边界和颜色过渡不尖锐，反而有很强的连续性。多数非专业的数码相机，拍摄照片后都保存为jpg格式。jpg照片，可以在视觉效果损失很小的情况下，文件尺寸极明显降低。比如，把原大小3MB的jpg照片，另存为500KB，效果仍然可以接受。</li>
<li>软件界面保存为jpg，很容易出现失真——在文字、线条周围，出现斑点、模糊。如果要提高质量，jpg的体积也会迅速增长。但即使如此，失真现象仍难避免。真是费力不讨好！</li>
<li>png具备gif的所有优点——无损压缩、清晰、体积小——并支持更多颜色。因此，png是软件截屏的首选格式。</li>
</ol>
</ol>
<p>很显然，用jpg存照片是明智的，相反用png存照片会显得很大（不过按照上面的理论，可以无损压缩？这个对于有点完美主义的我来说是很乐意做的）；而用jpg存截图、Banner等界面图片，显然是不合适的，因为质量的降低会让你无法忍受（尤其是完美主义者），所以png满足了这个要求。</p>
<p>不过我至今还有一个疑惑，之前见过用gif存的高质量图片，似乎并没有很明显的因颜色数量不足而出现的失真，但自己却始终存不出那么高质量的图片。希望有高人能答疑解惑。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.steveluo.name/try-png-instead-of-jpg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>近期打算恢复更新博客</title>
		<link>http://www.steveluo.name/coming-back-soon/</link>
		<comments>http://www.steveluo.name/coming-back-soon/#comments</comments>
		<pubDate>Mon, 23 Apr 2012 13:56:01 +0000</pubDate>
		<dc:creator>Steve Luo</dc:creator>
				<category><![CDATA[生活随想]]></category>

		<guid isPermaLink="false">http://www.steveluo.name/?p=248</guid>
		<description><![CDATA[回顾最后写的文章“博客搬入美国He.net的Fremont机房”已经是2010年7月了，博客虽然没更新，倒还是继续续费着（其实主要是当时已经过期了，不续费东西拿不出来，索性就再用一年吧）。结果因为工作原因，就一直没再关注，偶尔上来清清评论什么的。 经过了1年多的磨练，自己感觉确实又成长了许多，技术虽然没怎么长进，但是学习方法和考虑问题的角度却是进步了许多，毕竟社会还是锻炼人的地方呵呵。 重新开写东西还是想找一个主题，有针对性一些，专注才能成功嘛。当然，还是会先找几篇练练手的，也正好把这一大段时间的空白填补一下，正好也恢复一下搜索引擎对我的关注。博客名字也改了一下，去掉了Modern Fun，当时冥思苦想的名字呵呵。 关于主题方面，原本想重新考虑英文Niche站，不过似乎已经泛滥，并且观察了一下那些教授英文站赚钱的骗子居多，说明这个行业已经走下坡路。因此果断调枪头。翻看博客时，好几次看到对seowhy的赞许，想想08年时看着夫唯老师开始启蒙学习SEO，因此一点都没有犹豫地又报名参加了seowhy的培训课程，980元，确实像一些博客所说的，货真价实，不像很多网赚课程虚的很呵呵。 最后还是回到网站空间的问题，前端时间淘宝上买了个香港VPS测试了一下，效果很是一般。话说回来，淘宝上那些卖空间的一看就是不靠谱，有些一看就是OneMan，有些就是个二道贩子，连技术都不懂一个的。果然，布了个监控（说到监控，又想到可写的文章了，目前使用了监控宝和盛大云监控），果然老断，评价再好，也是就这样了，还是多赚点钱，搞独立服务器是王道。 5月份会加紧把SEO知识系统的梳理一遍，再次准备拿jltx.cn实践]]></description>
			<content:encoded><![CDATA[<p>回顾最后写的文章“<a href="http://www.steveluo.name/blog-move-to-he-net-fremont/" title="博客搬入美国He.net的Fremont机房">博客搬入美国He.net的Fremont机房</a>”已经是2010年7月了，博客虽然没更新，倒还是继续续费着（其实主要是当时已经过期了，不续费东西拿不出来，索性就再用一年吧）。结果因为工作原因，就一直没再关注，偶尔上来清清评论什么的。</p>
<p>经过了1年多的磨练，自己感觉确实又成长了许多，技术虽然没怎么长进，但是学习方法和考虑问题的角度却是进步了许多，毕竟社会还是锻炼人的地方呵呵。</p>
<p>重新开写东西还是想找一个主题，有针对性一些，专注才能成功嘛。当然，还是会先找几篇练练手的，也正好把这一大段时间的空白填补一下，正好也恢复一下搜索引擎对我的关注。博客名字也改了一下，去掉了Modern Fun，当时冥思苦想的名字呵呵。</p>
<p>关于主题方面，原本想重新考虑英文Niche站，不过似乎已经泛滥，并且观察了一下那些教授英文站赚钱的骗子居多，说明这个行业已经走下坡路。因此果断调枪头。翻看博客时，好几次看到对<a href="http://www.seowhy.com/" target="_blank">seowhy</a>的赞许，想想08年时看着夫唯老师开始启蒙学习SEO，因此一点都没有犹豫地又报名参加了seowhy的培训课程，980元，确实像一些博客所说的，货真价实，不像很多网赚课程虚的很呵呵。</p>
<p>最后还是回到网站空间的问题，前端时间淘宝上买了个香港VPS测试了一下，效果很是一般。话说回来，淘宝上那些卖空间的一看就是不靠谱，有些一看就是OneMan，有些就是个二道贩子，连技术都不懂一个的。果然，布了个监控（说到监控，又想到可写的文章了，目前使用了监控宝和盛大云监控），果然老断，评价再好，也是就这样了，还是多赚点钱，搞独立服务器是王道。</p>
<p>5月份会加紧把SEO知识系统的梳理一遍，再次准备拿jltx.cn实践</p>
]]></content:encoded>
			<wfw:commentRss>http://www.steveluo.name/coming-back-soon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>博客搬入美国He.net的Fremont机房</title>
		<link>http://www.steveluo.name/blog-move-to-he-net-fremont/</link>
		<comments>http://www.steveluo.name/blog-move-to-he-net-fremont/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 17:04:55 +0000</pubDate>
		<dc:creator>Steve Luo</dc:creator>
				<category><![CDATA[生活随想]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[主机空间]]></category>

		<guid isPermaLink="false">http://www.steveluo.name/?p=239</guid>
		<description><![CDATA[这几天Hostgator的空间要到期了。记得去年这个时候购买了HostGator的主机空间，这几天弄的手忙脚乱，域名续费，网站备份等等琐事。 其实最费时间的还是挑选新的机房，至于为什么放弃Hostgator，并不是因为负面原因，只是因为用途发生了改变。之前买了昂贵的HostGator的空间，为的是保证老外的访问速度。而现在则仅仅用于自己的博客，并且希望在国内的访问速度能够达到能够接受的程度。 经过一晚上的不懈努力，分析比较不同国家、不同机房、不同主机商、不同价格……最后放弃了香港（试用了Scicube的空间，很失望）、新加坡、日本等亚洲空间，最后仍然选择了美利坚。因为看来看去，还是美国的此类服务最实惠，性价比最高，并且最重要的是，现在的延迟情况已经越来越理想，已经可以达到150ms以内了。 看了点论坛，总结下来就是美国与大陆之间延迟最小（仅仅比较延迟，带宽、速率之类的其实我不是很关心）的几个机房依次是Fremont的“几个”机房，西雅图和达拉斯。似乎Fremont这个地方有好几个机房，不过延迟还是存在一定差异，但都在200以内。所以最后我选择了一个150ms左右的，效果相当不错，打开页面的体验比原先提升了不少，wordpress没有以前那么卡了嘎嘎~ 购买的也不是美国的主机商，是国内的一个合租，看起来还挺不错的。作为行内人，此类合租的主机计划利润空间都很大，不过有一点好的就是可以用很便宜的钱买一个够用的空间。于是我买了最便宜的新手套餐，100元，600M，月流量6G，可以Addon 3个域名。经过这几年的统计，发现其实就一个小博客，几十MB的空间都用不完，所以现在600M完全绰绰有余了，放图片全部可以flickr（yupoo毕竟还是有中国的传统，开始狗比倒灶了。。）。 总体搬家还算顺利，顺便也把没用的文件整理了一下，瘦身不少，cPanel也用的很熟练，一会儿就搞定了。不过期间附加域名的时候（Addon Domains）出现点问题。显示系统自动开设中出了点问题，导致我不能附加新的域名上去，后来联系了管理员终于解决。不过cPanel对域名解析的验证又把我给卡住了，又是个狗比倒灶的东方网景不让修改DNS Server的地址，无奈之下，想了很多办法。 最后在绝境中求生存，发现了一个连DNS Server都不用修改的方法，可以快速通过cPanel的域名检测：那就是暂停域名解析，让cPanel检测时发现域名完全无法解析，那么就理所当然的通过了（cPanel检测域名的目的是为了防止恶意指向，这点现在国内真的应该学习一下，省的老是错杀老百姓哎） 终于一切搞定，一件大事完成。有意也想购买此空间的朋友可以与我联系~暂时还是不打广告了哈。]]></description>
			<content:encoded><![CDATA[<p>这几天<span class='wp_keywordlink'><a href="http://www.hostgator.com/" title="Hostgator" target="_blank">Hostgator</a></span>的空间要到期了。记得去年这个时候<a href="http://www.steveluo.name/paypal-buy-hostgator/" title="成功使用PayPal购买HostGator主机空间">购买了HostGator的主机空间</a>，这几天弄的手忙脚乱，域名续费，网站备份等等琐事。<br />
其实最费时间的还是挑选新的机房，至于为什么放弃<span class='wp_keywordlink'><a href="http://www.hostgator.com/" title="Hostgator" target="_blank">Hostgator</a></span>，并不是因为负面原因，只是因为用途发生了改变。之前买了昂贵的HostGator的空间，为的是保证老外的访问速度。而现在则仅仅用于自己的博客，并且希望在国内的访问速度能够达到能够接受的程度。</p>
<p>经过一晚上的不懈努力，分析比较不同国家、不同机房、不同主机商、不同价格……最后放弃了香港（试用了Scicube的空间，很失望）、新加坡、日本等亚洲空间，最后仍然选择了美利坚。因为看来看去，还是美国的此类服务最实惠，性价比最高，并且最重要的是，现在的延迟情况已经越来越理想，已经可以达到150ms以内了。</p>
<p>看了点论坛，总结下来就是美国与大陆之间延迟最小（仅仅比较延迟，带宽、速率之类的其实我不是很关心）的几个机房依次是Fremont的“几个”机房，西雅图和达拉斯。似乎Fremont这个地方有好几个机房，不过延迟还是存在一定差异，但都在200以内。所以最后我选择了一个150ms左右的，效果相当不错，打开页面的体验比原先提升了不少，wordpress没有以前那么卡了嘎嘎~<br />
<span id="more-239"></span><br />
购买的也不是美国的主机商，是国内的一个合租，看起来还挺不错的。作为行内人，此类合租的主机计划利润空间都很大，不过有一点好的就是可以用很便宜的钱买一个够用的空间。于是我买了最便宜的新手套餐，100元，600M，月流量6G，可以Addon 3个域名。经过这几年的统计，发现其实就一个小博客，几十MB的空间都用不完，所以现在600M完全绰绰有余了，放图片全部可以flickr（yupoo毕竟还是有中国的传统，开始狗比倒灶了。。）。</p>
<p>总体搬家还算顺利，顺便也把没用的文件整理了一下，瘦身不少，cPanel也用的很熟练，一会儿就搞定了。不过期间附加域名的时候（Addon Domains）出现点问题。显示系统自动开设中出了点问题，导致我不能附加新的域名上去，后来联系了管理员终于解决。不过cPanel对域名解析的验证又把我给卡住了，又是个狗比倒灶的东方网景不让修改DNS Server的地址，无奈之下，想了很多办法。</p>
<p>最后在绝境中求生存，发现了一个连DNS Server都不用修改的方法，可以快速通过cPanel的域名检测：那就是暂停域名解析，让cPanel检测时发现域名完全无法解析，那么就理所当然的通过了（cPanel检测域名的目的是为了防止恶意指向，这点现在国内真的应该学习一下，省的老是错杀老百姓哎）</p>
<p>终于一切搞定，一件大事完成。有意也想购买此空间的朋友可以与我联系~暂时还是不打广告了哈。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.steveluo.name/blog-move-to-he-net-fremont/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>jQuery中使用mouseleave代替mouseout</title>
		<link>http://www.steveluo.name/jquery-mouseleave-instead-of-mouseout/</link>
		<comments>http://www.steveluo.name/jquery-mouseleave-instead-of-mouseout/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 10:09:08 +0000</pubDate>
		<dc:creator>Steve Luo</dc:creator>
				<category><![CDATA[前端技术]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[前端]]></category>
		<category><![CDATA[网站]]></category>

		<guid isPermaLink="false">http://www.steveluo.name/?p=214</guid>
		<description><![CDATA[今天在写一个鼠标悬停下拉菜单过程中，遇到一个很抓狂的问题。既然是鼠标悬停效果，那就用到了jQuery的2个事件，mouseover和mouseout（在jQuery 1.3的API手册中只有这两个鼠标移入移出事件）。 先看下使用mouseout的效果： &#60;script type=&#34;text/javascript&#34; src=&#34;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&#34;&#62;&#60;/script&#62; &#60;div id=&#34;container&#34; style=&#34;width:300px;&#34;&#62; &#60;div id=&#34;title&#34; style=&#34;cursor:pointer; background:#ccc;&#34;&#62;使用了mouseout事件↓&#60;/div&#62; &#60;div id=&#34;list&#34; style=&#34;display:none;position:absolute; border:1px solid #ccc; width:300px;&#34;&#62; &#60;div&#62;第一行&#60;/div&#62; &#60;div&#62;第二行&#60;/div&#62; &#60;div&#62;第三行&#60;/div&#62; &#60;/div&#62; &#60;/div&#62; &#60;script type=&#34;text/javascript&#34;&#62; $(function(){ // 绑定鼠标移入标题时，显示下拉容器 var list = $(&#34;#list&#34;); $(&#34;#title&#34;).mouseover(function() { var offset = $(this).offset(); list.css(&#34;left&#34;, offset.left); list.css(&#34;top&#34;, offset.top+19); list.show(); }); // 绑定mouseout事件，无法实现我们的预期效果 $(&#34;#container&#34;).mouseout(function() { $(&#34;#list&#34;).hide(); }); }); &#60;/script&#62; Tips:您可以在运行代码前对其进行修改！ [...]]]></description>
			<content:encoded><![CDATA[<p>今天在写一个鼠标悬停下拉菜单过程中，遇到一个很抓狂的问题。既然是鼠标悬停效果，那就用到了jQuery的2个事件，mouseover和mouseout（在jQuery 1.3的API手册中只有这两个鼠标移入移出事件）。</p>
<p>先看下使用mouseout的效果：</p>
<div class="runcode">
<p><textarea name="runcode" style="height:300px;width:600px;font-size:12px" class="runcode_text" id="runcode_RWwBMh">
&lt;script type=&quot;text/javascript&quot; src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&quot;&gt;&lt;/script&gt;
&lt;div id=&quot;container&quot; style=&quot;width:300px;&quot;&gt;
    &lt;div id=&quot;title&quot; style=&quot;cursor:pointer; background:#ccc;&quot;&gt;使用了mouseout事件↓&lt;/div&gt;
    &lt;div id=&quot;list&quot; style=&quot;display:none;position:absolute; border:1px solid #ccc; width:300px;&quot;&gt;
        &lt;div&gt;第一行&lt;/div&gt;
        &lt;div&gt;第二行&lt;/div&gt;
        &lt;div&gt;第三行&lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
$(function(){
    // 绑定鼠标移入标题时，显示下拉容器
    var list = $(&quot;#list&quot;);
    $(&quot;#title&quot;).mouseover(function() {
        var offset = $(this).offset();
        list.css(&quot;left&quot;, offset.left);
        list.css(&quot;top&quot;, offset.top+19);
        list.show();
    });
    // 绑定mouseout事件，无法实现我们的预期效果
    $(&quot;#container&quot;).mouseout(function() {
        $(&quot;#list&quot;).hide();
    });
});
&lt;/script&gt;
</textarea></p>
<p><input type="button" value="运行代码" class="runcode_button" onclick="runcode_open_new('runcode_RWwBMh');"/> <input type="button" value="复制" class="runcode_button" onclick="runcode_copy('runcode_RWwBMh');"/> <input type="button" value="另存为" class="runcode_button" onclick="saveCode('runcode_RWwBMh','runcode_RWwBMh');"/> Tips:您可以在运行代码前对其进行修改！</p>
</div>
<p>我们发现使用mouseout时，鼠标只要在容器里一移动，就被出发了hide()，其实是因为mouseout事件也会影响到子元素，也就是事件可能被同时绑定到了该容器的子元素上，所以鼠标移出每个子元素也都会触发我们的hide()。<br />
<span id="more-214"></span><br />
经过网上一番调研~从jQuery 1.3开始新增了2个mouse事件，mouseenter和mouseleave。现在我们使用mouseleave事件，这个事件在jQuery手册上好像并没有提到&#8230;囧<br />
我们来看一下mouseleave事件是否能够解决这个问题。</p>
<div class="runcode">
<p><textarea name="runcode" style="height:300px;width:600px;font-size:12px" class="runcode_text" id="runcode_w0UUsZ">
&lt;script type=&quot;text/javascript&quot; src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&quot;&gt;&lt;/script&gt;
&lt;div id=&quot;container&quot; style=&quot;width:300px;&quot;&gt;
    &lt;div id=&quot;title&quot; style=&quot;cursor:pointer; background:#ccc;&quot;&gt;使用了mouseleave事件↓&lt;/div&gt;
    &lt;div id=&quot;list&quot; style=&quot;display:none;position:absolute; border:1px solid #ccc; width:300px;&quot;&gt;
        &lt;div&gt;第一行&lt;/div&gt;
        &lt;div&gt;第二行&lt;/div&gt;
        &lt;div&gt;第三行&lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
$(function(){
    // 绑定鼠标移入标题时，显示下拉容器
    var list = $(&quot;#list&quot;);
    $(&quot;#title&quot;).mouseover(function() {
        var offset = $(this).offset();
        list.css(&quot;left&quot;, offset.left);
        list.css(&quot;top&quot;, offset.top+19);
        list.show();
    });
    // 绑定mouseleave事件，效果很好
    $(&quot;#container&quot;).mouseleave(function() {
        $(&quot;#list&quot;).hide();
    });
});
&lt;/script&gt;
</textarea></p>
<p><input type="button" value="运行代码" class="runcode_button" onclick="runcode_open_new('runcode_w0UUsZ');"/> <input type="button" value="复制" class="runcode_button" onclick="runcode_copy('runcode_w0UUsZ');"/> <input type="button" value="另存为" class="runcode_button" onclick="saveCode('runcode_w0UUsZ','runcode_w0UUsZ');"/> Tips:您可以在运行代码前对其进行修改！</p>
</div>
<p>好了，我们的问题解决了，需要的朋友各取所需吧。</p>
<p>本文参考了<a href="http://amcucn.javaeye.com/blog/473251" target="_blank">jquery中解决div mouseout事件冒泡的问题</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.steveluo.name/jquery-mouseleave-instead-of-mouseout/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>CSS透明度在各浏览器下的兼容实现</title>
		<link>http://www.steveluo.name/css-opacity-all-browsers-hack/</link>
		<comments>http://www.steveluo.name/css-opacity-all-browsers-hack/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 03:30:18 +0000</pubDate>
		<dc:creator>Steve Luo</dc:creator>
				<category><![CDATA[前端技术]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[浏览器]]></category>

		<guid isPermaLink="false">http://www.steveluo.name/?p=208</guid>
		<description><![CDATA[几款浏览器对透明度的支持方式各不相同，为了保证在IE, Firefox, Chrome, Safari等主流浏览器下都能正常显示透明度的效果，我们可以定义一个透明度的class，因为一写就要写3条，省的每次都复制来复制去了。 具体代码如下： .transparent{ filter:alpha(opacity=60); /*支持 IE 浏览器*/ -moz-opacity:0.60; /*支持 FireFox 浏览器*/ opacity:0.60; /*支持 Chrome, Opera, Safari 等浏览器*/ }]]></description>
			<content:encoded><![CDATA[<p>几款浏览器对透明度的支持方式各不相同，为了保证在IE, Firefox, Chrome, Safari等主流浏览器下都能正常显示透明度的效果，我们可以定义一个透明度的class，因为一写就要写3条，省的每次都复制来复制去了。<br />
<strong>具体代码如下：</strong></p>
<pre name="code" class="css">
.transparent{
filter:alpha(opacity=60);  /*支持 IE 浏览器*/
-moz-opacity:0.60; /*支持 FireFox 浏览器*/
opacity:0.60;  /*支持 Chrome, Opera, Safari 等浏览器*/
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.steveluo.name/css-opacity-all-browsers-hack/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>使用jQuery清空file文件域的方法</title>
		<link>http://www.steveluo.name/jquery-clear-file-input-value/</link>
		<comments>http://www.steveluo.name/jquery-clear-file-input-value/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 04:53:37 +0000</pubDate>
		<dc:creator>Steve Luo</dc:creator>
				<category><![CDATA[前端技术]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[网站]]></category>
		<category><![CDATA[表单]]></category>

		<guid isPermaLink="false">http://www.steveluo.name/?p=204</guid>
		<description><![CDATA[一般来说，在对一个文件域(input type=&#8221;file&#8221;)使用了验证后，我们总会希望把文件域中的值给清空了（否则错误的文件仍然会被提交），而在IE中，安全设置的原因，是不允许更改文件域的值的（也就是不能使用val(&#8220;&#8221;)） 那么很显然，我们就只能换个思路，把这个input元素复制一个，然后将原来的删除。 在IE下复制元素的时候，其中的值是不会被复制的，所以就达到了清空文件域的目的了。 而在Firefox下，其中的值也会被一同复制，那么我们就顺便清空一下就做到兼容了。 代码如下： var file = $(":file"); file.after(file.clone().val("")); file.remove();]]></description>
			<content:encoded><![CDATA[<p>一般来说，在对一个文件域(input type=&#8221;file&#8221;)使用了验证后，我们总会希望把文件域中的值给清空了（否则错误的文件仍然会被提交），而在IE中，安全设置的原因，是不允许更改文件域的值的（也就是不能使用val(&#8220;&#8221;)）</p>
<p>那么很显然，我们就只能换个思路，把这个input元素复制一个，然后将原来的删除。<br />
在IE下复制元素的时候，其中的值是不会被复制的，所以就达到了清空文件域的目的了。<br />
而在Firefox下，其中的值也会被一同复制，那么我们就顺便清空一下就做到兼容了。<br />
代码如下：</p>
<pre name="code" class="javascript">
var file = $(":file");
file.after(file.clone().val(""));
file.remove();
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.steveluo.name/jquery-clear-file-input-value/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ASP.NET 使用Request.Files获取上传文件的注意事项</title>
		<link>http://www.steveluo.name/asp-net-request-files-note/</link>
		<comments>http://www.steveluo.name/asp-net-request-files-note/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 13:50:59 +0000</pubDate>
		<dc:creator>Steve Luo</dc:creator>
				<category><![CDATA[知识库]]></category>
		<category><![CDATA[ASP.Net]]></category>
		<category><![CDATA[上传]]></category>
		<category><![CDATA[前端]]></category>
		<category><![CDATA[表单]]></category>

		<guid isPermaLink="false">http://www.steveluo.name/?p=198</guid>
		<description><![CDATA[今天在用ASP.NET实现图片上传功能时遇到一个小问题。 使用表单文件域（input type=&#8221;file&#8221;）时，在PostBack中使用Request.Files获取不到文件。研究了半天，发现在input标签中使用runat=&#8221;server&#8221;后，是能够正常获取的。但是为了前端的元素ID不被修改，我尽可能不使用runat=&#8221;server&#8221;。 网上查阅了一下，最终让我找到了原因。用了高级货之后，忘本了呵呵。 要让form能够传递文件的话，必须要在form标签中加入enctype=&#8221;multipart/form-data&#8221; &#60;form enctype="multipart/form-data" ID="form1" runat="server"&#62;       &#60;input type="file" name="filename" /&#62; &#60;/form&#62; 在input 中使用了runat=&#8221;server&#8221;，那么ASP.NET会自动处理这些事情，而如果我们要自己DIY，就得记住这些啦！]]></description>
			<content:encoded><![CDATA[<p>今天在用ASP.NET实现图片上传功能时遇到一个小问题。</p>
<p>使用表单文件域（input type=&#8221;file&#8221;）时，在PostBack中使用Request.Files获取不到文件。研究了半天，发现在input标签中使用runat=&#8221;server&#8221;后，是能够正常获取的。但是为了前端的元素ID不被修改，我尽可能不使用runat=&#8221;server&#8221;。</p>
<p>网上查阅了一下，最终让我找到了原因。用了高级货之后，忘本了呵呵。</p>
<p>要让form能够传递文件的话，必须要在form标签中加入enctype=&#8221;multipart/form-data&#8221;</p>
<pre>&lt;form enctype="multipart/form-data" ID="form1" runat="server"&gt;
      &lt;input type="file" name="filename" /&gt;
&lt;/form&gt;</pre>
<p>在input 中使用了runat=&#8221;server&#8221;，那么ASP.NET会自动处理这些事情，而如果我们要自己DIY，就得记住这些啦！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.steveluo.name/asp-net-request-files-note/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>没想到我的博客都有人盗版</title>
		<link>http://www.steveluo.name/blog-copied/</link>
		<comments>http://www.steveluo.name/blog-copied/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 16:08:14 +0000</pubDate>
		<dc:creator>Steve Luo</dc:creator>
				<category><![CDATA[生活随想]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[网站]]></category>

		<guid isPermaLink="false">http://www.steveluo.name/?p=195</guid>
		<description><![CDATA[今天好友给我看了一个网站：http://www.jijiblog.com/ 原先以为只是有人和我用了同一套模板，但是经过我仔细打量，这并不是单纯是模板雷同而已了，我博客几乎所有的内容都被盗用到了他所谓的&#8221;JiJi&#8217;s Blog&#8221;上，并且我还能够发现部分文章里仍然有steveluo这样的文字痕迹。 我想了想，在博客这几次迁徙中，有好几个环节可能导致这些数据的泄露，这兄弟正好捡了个皮夹子，要托工信部的福，让他好不费功夫拿到了我这个“收视率”爆低的博客，内容还挺杂，难道是他和我臭味相投么？ 这兄弟技术还是可以的，能改的都改了，可惜在文章的排名上，他可能就比较糟糕了，我的许多文章都能在google第一页搜到，而他的这些文章可能10页开外都不见踪影。 干IT这行，需要的是积累，享用别人的成果往往会让自己止步不前。 2010年我有空还是换套模板吧呵呵，这套模板也用了好多年了，新的开始确实要有一个新的态度了。]]></description>
			<content:encoded><![CDATA[<p>今天好友给我看了一个网站：<a href="http://www.jijiblog.com/" target="_blank">http://www.jijiblog.com/<br />
</a>原先以为只是有人和我用了同一套模板，但是经过我仔细打量，这并不是单纯是模板雷同而已了，我博客几乎所有的内容都被盗用到了他所谓的&#8221;JiJi&#8217;s Blog&#8221;上，并且我还能够发现部分文章里仍然有steveluo这样的文字痕迹。</p>
<p>我想了想，在博客这几次迁徙中，有好几个环节可能导致这些数据的泄露，这兄弟正好捡了个皮夹子，要托工信部的福，让他好不费功夫拿到了我这个“收视率”爆低的博客，内容还挺杂，难道是他和我臭味相投么？</p>
<p>这兄弟技术还是可以的，能改的都改了，可惜在文章的排名上，他可能就比较糟糕了，我的许多文章都能在google第一页搜到，而他的这些文章可能10页开外都不见踪影。</p>
<p>干IT这行，需要的是积累，享用别人的成果往往会让自己止步不前。</p>
<p>2010年我有空还是换套模板吧呵呵，这套模板也用了好多年了，新的开始确实要有一个新的态度了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.steveluo.name/blog-copied/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>重见天日啦！</title>
		<link>http://www.steveluo.name/blog-recovery/</link>
		<comments>http://www.steveluo.name/blog-recovery/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 09:21:51 +0000</pubDate>
		<dc:creator>Steve Luo</dc:creator>
				<category><![CDATA[生活随想]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[网站]]></category>

		<guid isPermaLink="false">http://www.steveluo.name/?p=193</guid>
		<description><![CDATA[经历了互联网整治狂潮的冲击，我的博客迁徙了好多地方，关闭了好久了，现在终于又重新开放了。 其实本站是备过案的，只是迫于各机房的备案申报机制以及服务器的问题（服务器是朋友的，我没理由每天催着别人），所以一拖再拖，让我最后下决心把博客搬到了美利坚的国土上。。无奈啊，速度虽慢，倒还稳定，就这样凑合着吧，日后有机会还是要弄一台自己的服务器。 就着这次大迁徙，顺便也把博客升级到了最新版。不过Google Adsense貌似要停一个月了，竟然PIN码没收到。。晕，重新申请一个，又得等好久。 不过这个Hostgator的空间是去年暑假时候买的，没多少时日了，下一步计划可能会搞一个日本的空间，因为最近发现日本网站速度挺快的，价格似乎也不是那么贵。希望中日关系不会影响到互联网。。。]]></description>
			<content:encoded><![CDATA[<p>经历了互联网整治狂潮的冲击，我的博客迁徙了好多地方，关闭了好久了，现在终于又重新开放了。</p>
<p>其实本站是备过案的，只是迫于各机房的备案申报机制以及服务器的问题（服务器是朋友的，我没理由每天催着别人），所以一拖再拖，让我最后下决心把博客搬到了美利坚的国土上。。无奈啊，速度虽慢，倒还稳定，就这样凑合着吧，日后有机会还是要弄一台自己的服务器。</p>
<p>就着这次大迁徙，顺便也把博客升级到了最新版。不过Google Adsense貌似要停一个月了，竟然PIN码没收到。。晕，重新申请一个，又得等好久。</p>
<p>不过这个<span class='wp_keywordlink'><a href="http://www.hostgator.com/" title="Hostgator" target="_blank">Hostgator</a></span>的空间是去年暑假时候买的，没多少时日了，下一步计划可能会搞一个日本的空间，因为最近发现日本网站速度挺快的，价格似乎也不是那么贵。希望中日关系不会影响到互联网。。。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.steveluo.name/blog-recovery/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>IE6问题：html静态页正常而使用aspx后出现严重问题</title>
		<link>http://www.steveluo.name/ie6-bug-html-aspx-crash/</link>
		<comments>http://www.steveluo.name/ie6-bug-html-aspx-crash/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 17:55:11 +0000</pubDate>
		<dc:creator>Steve Luo</dc:creator>
				<category><![CDATA[知识库]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[编码]]></category>

		<guid isPermaLink="false">http://www.steveluo.name/?p=190</guid>
		<description><![CDATA[今天使用Visual Studio 2008制作前端页面的时候，将原先已经制作好的html页内容完完整整一字不差地复制到新建的Default.aspx后，用除了IE6的大部分浏览器（我测试了IE7/8，Firefox），均能够正常显示布局（我已经在静态页上进行了css hack），而唯独IE6特立独行，来了个大花脸。。囧 测试了各种可能性，最后我保证了aspx与html也输出完全一致（内容本来就一样，就是格式不同），不过仍然失败。 排除了各种可能，判断很有可能是VS在输出aspx的时候出现了问题。网上查阅了一下，发现果然如此。 原文： 要你原先做的html+css没有问题的话，改为aspx后，.net环境在编译后让html的编码格式改为了utf-8。而你的css文件没有进行相应的变更就会出现css失效的问题。 仔细检查css文件是否出现乱码，最简单的方法就是先将css文件中的中文注释删除掉。 or 在web.config文件中加入下面代码： &#60;globalization requestEncoding=&#8221;gb2312&#8243; responseEncoding=&#8221;gb2312&#8243;/&#62; 原文地址：http://blog.csdn.net/ytmf007/archive/2009/07/20/4363348.aspx   经过测试，在Web.Config中的&#60;system.web&#62;中加入以上代码，页面布局恢复正常。:lol 既然是编码问题，我检查了CSS，全都是ANSI编码，并且在其中混有中文注释(-_-)，罪魁祸首找到了。当然了，配置web.config是一劳永逸的方法，所以推荐使用此方法。 近日忙于求职，所以博客也很久没更新了。不过由于最近正在学习ASP.NET，所以还是有很多问题需要记录的。]]></description>
			<content:encoded><![CDATA[<p>今天使用Visual Studio 2008制作前端页面的时候，将原先已经制作好的html页内容完完整整一字不差地复制到新建的Default.aspx后，用除了IE6的大部分浏览器（我测试了IE7/8，Firefox），均能够正常显示布局（我已经在静态页上进行了css hack），而唯独IE6特立独行，来了个大花脸。。囧</p>
<p>测试了各种可能性，最后我保证了aspx与html也输出完全一致（内容本来就一样，就是格式不同），不过仍然失败。</p>
<p>排除了各种可能，判断很有可能是VS在输出aspx的时候出现了问题。网上查阅了一下，发现果然如此。<br />
<span id="more-190"></span></p>
<blockquote><p>原文：</p>
<p>要你原先做的html+css没有问题的话，改为aspx后，.net环境在编译后让html的编码格式改为了utf-8。而你的css文件没有进行相应的变更就会出现css失效的问题。</p>
<p>仔细检查css文件是否出现乱码，最简单的方法就是先将css文件中的中文注释删除掉。</p>
<p>or 在web.config文件中加入下面代码：</p>
<p>&lt;globalization requestEncoding=&#8221;gb2312&#8243; responseEncoding=&#8221;gb2312&#8243;/&gt;</p>
<p>原文地址：<a href="http://blog.csdn.net/ytmf007/archive/2009/07/20/4363348.aspx" target="_blank">http://blog.csdn.net/ytmf007/archive/2009/07/20/4363348.aspx</a></p>
<p> </p></blockquote>
<p>经过测试，在Web.Config中的&lt;system.web&gt;中加入以上代码，页面布局恢复正常。:lol</p>
<p>既然是编码问题，我检查了CSS，全都是ANSI编码，并且在其中混有中文注释(-_-)，罪魁祸首找到了。当然了，配置web.config是一劳永逸的方法，所以推荐使用此方法。</p>
<p>近日忙于求职，所以博客也很久没更新了。不过由于最近正在学习ASP.NET，所以还是有很多问题需要记录的。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.steveluo.name/ie6-bug-html-aspx-crash/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>中文路径安装WordPress出错解决方法</title>
		<link>http://www.steveluo.name/chinese-path-install-wordpress-error/</link>
		<comments>http://www.steveluo.name/chinese-path-install-wordpress-error/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 17:38:29 +0000</pubDate>
		<dc:creator>Steve Luo</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[数据库]]></category>
		<category><![CDATA[服务器]]></category>

		<guid isPermaLink="false">http://www.steveluo.name/?p=182</guid>
		<description><![CDATA[今天应怪怪要求在学院服务器上安装一个WordPress，作为军训专题站。由于域名不能自由控制，所以只能在站点下建子目录来挂更多的应用。但是由于不想在根目录下放过多的目录（PHPCMS已经安装在根目录，所以文件繁多），因此选择了在其他目录通过虚拟目录的挂载方式实现子目录。 这样就出现了问题，由于虚拟目录所指向的路径存在中文路径，即：“D:\网站目录\军训专题\”，下载好Wordpress 2.8.4，解压，然后浏览器中访问，进入了著名的5分钟安装界面，填写完数据库信息，进入第二步。 出错的地方到了，就是在第二步插入数据时报错了，页面上会提示类似于以下内容的错误信息（省略了大部分信息，重点突出关键行）： WordPress database error: [Incorrect string value: '\xCD\xF8\xD5\xBE\xB9\xA6...' for column 'option_value' at row 58] INSERT INTO wp_options (option_name, option_value, autoload) VALUES ('siteurl', 'http://*.edu.cn/jx2009', 'yes'), ('blogname', 'My Blog', 'yes'), ........................................... ('upload_path', 'D:\\��վ����\\��ѵ����/wp-content/uploads', 'yes'), ........................................... 我们可以看到upload_path这一项的值中间含有“�վ”这样的乱码（可能乱码形式不一样，总之是乱码），这个应该是PHP的问题，也总就是那utf-8和gb2312之间的事情了。当务之急不去研究那些编码问题，而是找到简便的解决方法。经过观察，其实WordPress的upload_path字段并不需要储存完整的路径，后台可以将这个路径直接设置为“wp-content/uploads”，那么在安装时候我们也可以直接把上传保存路径设置为这个，不需要读取完整的绝对路径了。 具体解决方法：找到wp-admin/includes/schema.php，第188行 //$upload_path = WP_CONTENT_DIR . '/uploads'; //这一样我把他注释掉 $upload_path = 'wp-content/uploads'; //直接给upload_path重新赋值，指定为这个路径。 保存文件后，清空数据库，重新进行安装，错误不再出现，一切正常。后台测试上传图片，正常！问题成功解决。]]></description>
			<content:encoded><![CDATA[<p>今天应怪怪要求在学院服务器上安装一个WordPress，作为军训专题站。由于域名不能自由控制，所以只能在站点下建子目录来挂更多的应用。但是由于不想在根目录下放过多的目录（PHPCMS已经安装在根目录，所以文件繁多），因此选择了在其他目录通过虚拟目录的挂载方式实现子目录。<br />
这样就出现了问题，由于虚拟目录所指向的路径存在<strong>中文路径</strong>，即：“D:\网站目录\军训专题\”，下载好Wordpress 2.8.4，解压，然后浏览器中访问，进入了著名的5分钟安装界面，填写完数据库信息，进入第二步。</p>
<p><strong>出错的地方到了，就是在第二步插入数据时报错了，页面上会提示类似于以下内容的错误信息（省略了大部分信息，重点突出关键行）：</strong></p>
<pre>WordPress database error: [Incorrect string value: '\xCD\xF8\xD5\xBE\xB9\xA6...' for column 'option_value' at row 58]
INSERT INTO wp_options (option_name, option_value, autoload) VALUES ('siteurl', 'http://*.edu.cn/jx2009', 'yes'), ('blogname', 'My Blog', 'yes'),
...........................................
 ('upload_path', 'D:\\��վ����\\��ѵ����/wp-content/uploads', 'yes'),
...........................................</pre>
<p>我们可以看到upload_path这一项的值中间含有“�վ”这样的乱码（可能乱码形式不一样，总之是乱码），这个应该是PHP的问题，也总就是那utf-8和gb2312之间的事情了。当务之急不去研究那些编码问题，而是找到简便的解决方法。经过观察，其实WordPress的upload_path字段并不需要储存完整的路径，后台可以将这个路径直接设置为“wp-content/uploads”，那么在安装时候我们也可以直接把上传保存路径设置为这个，不需要读取完整的绝对路径了。<br />
<span id="more-182"></span><br />
<strong>具体解决方法：找到wp-admin/includes/schema.php，第188行</strong></p>
<pre name="code" class="php">//$upload_path = WP_CONTENT_DIR . '/uploads';      //这一样我把他注释掉
$upload_path = 'wp-content/uploads';   //直接给upload_path重新赋值，指定为这个路径。</pre>
<p>保存文件后，清空数据库，重新进行安装，错误不再出现，一切正常。后台测试上传图片，正常！问题成功解决。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.steveluo.name/chinese-path-install-wordpress-error/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CSS中伪类active/link/visited/hover的定义顺序</title>
		<link>http://www.steveluo.name/css-active-link-visited-hover-sequence/</link>
		<comments>http://www.steveluo.name/css-active-link-visited-hover-sequence/#comments</comments>
		<pubDate>Sun, 16 Aug 2009 15:53:40 +0000</pubDate>
		<dc:creator>Steve Luo</dc:creator>
				<category><![CDATA[知识库]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[网站]]></category>

		<guid isPermaLink="false">http://www.steveluo.name/?p=174</guid>
		<description><![CDATA[今天在修改一个tab样式的时候遇到一个问题，用了span:hover，想达到一个鼠标悬停效果。可是调试了半天，hover的效果就是不出现。 之前错误的书写顺序： span{display: block; width: 110px; height: 40px;} span:hover{background: 0 -40px;} span.button-1{background:url(../images/tabs/button_1.png);} 这样测试出来的结果跟我预期的不一样，我想在span.button-1定义背景图片，然后在鼠标经过时hover显示悬停效果。本应该是会移到背景的第40像素开始显示，可是仍然只显示原始图像。 经过多次测试，终于发现是由于伪类的书写顺序不正确造成的。网上查阅了一下资料，的确伪类有明确的书写顺序规定，如果错了的话就可能造成显示结果不正确。 后来分析一下我的CSS，发现可能是由于最后一行button-1的样式把hover的background又给覆盖了。于是把伪类放到最后，也就是必须将伪类写在本身选择器之后。问题解决。 虽然我的这个问题和伪类之间的顺序并不是很相关，但是这些伪类之间的顺序还是值得关注一下的，省的以后又出现同样的问题。 顺序如下： a:link a:visited a:hover a:active 总结一下就是LVHA，听说这个叫爱恨原则，LoVe/HAte，便于记忆吧呵呵。]]></description>
			<content:encoded><![CDATA[<p>今天在修改一个tab样式的时候遇到一个问题，用了span:hover，想达到一个鼠标悬停效果。可是调试了半天，hover的效果就是不出现。<br />
之前错误的书写顺序：</p>
<pre name="code" class="css">
span{display: block; width: 110px; height: 40px;}
span:hover{background: 0 -40px;}
span.button-1{background:url(../images/tabs/button_1.png);}
</pre>
<p>这样测试出来的结果跟我预期的不一样，我想在span.button-1定义背景图片，然后在鼠标经过时hover显示悬停效果。本应该是会移到背景的第40像素开始显示，可是仍然只显示原始图像。<br />
经过多次测试，终于发现是由于伪类的书写顺序不正确造成的。网上查阅了一下资料，的确伪类有明确的书写顺序规定，如果错了的话就可能造成显示结果不正确。<br />
后来分析一下我的CSS，发现可能是由于最后一行button-1的样式把hover的background又给覆盖了。于是把伪类放到最后，也就是<strong>必须将伪类写在本身选择器之后</strong>。问题解决。</p>
<p>虽然我的这个问题和伪类之间的顺序并不是很相关，但是这些伪类之间的顺序还是值得关注一下的，省的以后又出现同样的问题。<br />
顺序如下：</p>
<pre>
a:link
a:visited
a:hover
a:active
</pre>
<p>总结一下就是LVHA，听说这个叫爱恨原则，LoVe/HAte，便于记忆吧呵呵。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.steveluo.name/css-active-link-visited-hover-sequence/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>非WordPress目录调用最新文章列表或摘要方法(解决永久链接问题)</title>
		<link>http://www.steveluo.name/wordpress-call-posts-excerpts-list-permalink-fixed/</link>
		<comments>http://www.steveluo.name/wordpress-call-posts-excerpts-list-permalink-fixed/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 08:15:53 +0000</pubDate>
		<dc:creator>Steve Luo</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[永久链接]]></category>
		<category><![CDATA[网站]]></category>

		<guid isPermaLink="false">http://www.steveluo.name/?p=163</guid>
		<description><![CDATA[今天在做一个站的时候需要对Wordpress的文章进行调用，也就是在Wordpress以外环境，例如wordpress安装在/blog/目录下，而根目录下的index.php需要调用博客最新文章。 很高兴在关于非WP目录下的.php文件显示文章摘要或者别的WP信息的方法一文中找到了实现方法，也很容易上手，放在一个空白的测试页中运行成功。 不过当我把Wordpress的永久链接(Permalink)形式从默认改成了任何伪静态形式，文章列表调用就失效了，显示空白。 后来查阅Wordpress支持论坛，似乎也有人遇到过由于更改了默认的永久链接设置而造成列表调用失败的问题，不过作者似乎自己解决了该问题。问题主要可能是出现在将Wordpress安装在子目录下，如/blog/，而在永久链接设置的地方是不需要指定目录的。然而在自行外部调用的时候就出现了问题，这个可能是Wordpress设计上的一个BUG吧。 我尝试了一下加上了目录的路径，/blog/%postname%/，这样设置以后列表调用成功显示内容，只不过，在Wordpress中的所有永久链接地址就出现了2次/blog/，不过这个却不影响使用，只是不好看而已。囧 由于我也是第一次接触wordpress的开发，所以并不是很熟悉那些函数接口，在查阅了手册之后发现可以使用自定义的查询方式，使用query_posts来调用，结果使用了这个方法以后，问题解决。 具体代码如下： &#60;?php $loca="/blog";//这里定义你的WP目录 require_once( dirname(__FILE__) . $loca.'/wp-load.php' );//注意这里是wp目录下的wp-load.php wp();//这样wp的加载就完成了，我们不需要加载模板。 ?&#62; &#60;?php query_posts('showposts=3'); //就是这里加了一句query_posts，这样也可以实现调用条数的指定。 while (have_posts()) : the_post(); ?&#62;&#60;div&#62; &#60;?php the_excerpt();?&#62; &#60;/div&#62; &#60;?php endwhile; ?&#62; &#60;!--导航开始--&#62; &#60;p align="center"&#62; &#60;?php global $paged, $wp_query; if($paged&#62;1) echo '&#60;a href='.str_replace($loca,'',get_previous_posts_page_link()).'&#62;&#38;laquo; Previous Entry&#60;/a&#62; '; if($paged&#60;$wp_query-&#62;max_num_pages) echo ' &#60;a href='.str_replace($loca,'',get_next_posts_page_link()).'&#62;Next Entry &#38;raquo;&#60;/a&#62;'; ?&#62; &#60;/p&#62; &#60;!--导航结束--&#62; PS：这个方法只能用在同一个站点下，不同域名，也就是跨站的情况下，是不能使用这个方法的，如果跨站的话还是只能使用javascript方式调用。JS调用可以采用Feed [...]]]></description>
			<content:encoded><![CDATA[<p>今天在做一个站的时候需要对Wordpress的文章进行调用，也就是在Wordpress以外环境，例如wordpress安装在/blog/目录下，而根目录下的index.php需要调用博客最新文章。</p>
<p>很高兴在<a href="http://xiebiji.com/?p=491" target="_blank">关于非WP目录下的.php文件显示文章摘要或者别的WP信息的方法</a>一文中找到了实现方法，也很容易上手，放在一个空白的测试页中运行成功。</p>
<p>不过当我把Wordpress的永久链接(Permalink)形式从默认改成了<strong>任何伪静态形式</strong>，文章列表调用就失效了，显示空白。</p>
<p>后来查阅Wordpress支持论坛，似乎也有人遇到过<a href="http://wordpress.org/support/topic/223118" target="_blank">由于更改了默认的永久链接设置而造成列表调用失败的问题</a>，不过作者似乎自己解决了该问题。问题主要可能是出现在将Wordpress安装在子目录下，如/blog/，而在永久链接设置的地方是不需要指定目录的。然而在自行外部调用的时候就出现了问题，这个可能是Wordpress设计上的一个BUG吧。</p>
<p>我尝试了一下加上了目录的路径，/blog/%postname%/，这样设置以后列表调用成功显示内容，只不过，在Wordpress中的所有永久链接地址就出现了2次/blog/，不过这个却不影响使用，只是不好看而已。囧<br />
<span id="more-163"></span><br />
由于我也是第一次接触wordpress的开发，所以并不是很熟悉那些函数接口，在查阅了手册之后发现可以使用自定义的查询方式，使用query_posts来调用，结果使用了这个方法以后，问题解决。</p>
<p><strong>具体代码如下：</strong></p>
<pre name="code" class="php">&lt;?php
        $loca="/blog";//这里定义你的WP目录
        require_once( dirname(__FILE__) . $loca.'/wp-load.php' );//注意这里是wp目录下的wp-load.php
	wp();//这样wp的加载就完成了，我们不需要加载模板。
?&gt;
&lt;?php
query_posts('showposts=3');   <strong>//就是这里加了一句query_posts，这样也可以实现调用条数的指定。</strong>
while (have_posts()) : the_post();
?&gt;&lt;div&gt;
&lt;?php the_excerpt();?&gt;
&lt;/div&gt;
&lt;?php endwhile; ?&gt;
&lt;!--导航开始--&gt;
&lt;p align="center"&gt;
&lt;?php
global $paged, $wp_query;
if($paged&gt;1)
echo '&lt;a href='.str_replace($loca,'',get_previous_posts_page_link()).'&gt;&amp;laquo; Previous Entry&lt;/a&gt; ';
if($paged&lt;$wp_query-&gt;max_num_pages)
echo ' &lt;a href='.str_replace($loca,'',get_next_posts_page_link()).'&gt;Next Entry &amp;raquo;&lt;/a&gt;';
?&gt;
&lt;/p&gt;
&lt;!--导航结束--&gt;</pre>
<p>PS：这个方法只能用在同一个站点下，不同域名，也就是跨站的情况下，是不能使用这个方法的，如果跨站的话还是只能使用javascript方式调用。JS调用可以采用Feed to JS来实现。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.steveluo.name/wordpress-call-posts-excerpts-list-permalink-fixed/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>WordPress 添加URL末尾斜杠：ISAPI Rewrite、.htaccess规则</title>
		<link>http://www.steveluo.name/wordpress-trailing-slash-isapi-rewrite-htaccess/</link>
		<comments>http://www.steveluo.name/wordpress-trailing-slash-isapi-rewrite-htaccess/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 16:07:18 +0000</pubDate>
		<dc:creator>Steve Luo</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[ISAPI_Rewrite]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[URL]]></category>

		<guid isPermaLink="false">http://www.steveluo.name/?p=151</guid>
		<description><![CDATA[今天在Google网站管理员工具中无意中看到了有大量的重复信息，一方面是我前段时间写永久链接URL规则的时候，存在失误，最后没有加斜杠..囧 所以上星期发现了就修改了过来，但是原来Google收录的都是不带斜杠的地址。 为了避免URL不统一，当然要做URL Rewrite，用301永久重定向来让Google知道哪个才是我提倡的地址形式。 网上大部分都是Apache上的配置方式，即.htaccess的，当然与ISAPI_Rewrite 2的语法会有所不同，但是手动转换了一下仍然存在问题，可能是我水平不够吧。 后来在寻找Wordpress插件的时候无意中看到一个插件的介绍页中提供了ISAPI_Rewrite和.htaccess的规则： 来自：Trailing Slashes, IIS and F5 / Big-IP ISAPI_Rewrite 2: RewriteCond Host: (.*) RewriteRule ([^.?]+[^.?/]) http\://$1$2/ [I,RP] ISAPI_Rewirte 3: RewriteCond %{HTTP:Host} (.*) RewriteRule ^([^.?]+[^.?/])$ http\://%1$1/ [NC,R=301] 来自：Two WordPress plugins you don’t need and shouldn’t use Apache .htaccess: RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$ RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L] 看起来是2个作者用了2种方法来实现的，反正我们也不求甚解，只要能用就好。 今天还找到个方法来避免重复内容的产生，有兴趣可以看一下使用权威链接(Canonical URL)避免重复内容]]></description>
			<content:encoded><![CDATA[<p>今天在<a href="https://www.google.com/webmasters/tools/home?hl=zh-CN" target="_blank">Google网站管理员工具</a>中无意中看到了有大量的重复信息，一方面是我前段时间写永久链接URL规则的时候，存在失误，最后没有加斜杠..囧 所以上星期发现了就修改了过来，但是原来Google收录的都是不带斜杠的地址。</p>
<p>为了避免<a href="http://www.steveluo.name/url-canonicalization/" title="URL标准化简介及实现方法">URL不统一</a>，当然要做URL Rewrite，用<a href="http://www.steveluo.name/isapi-rewrite-301-move-permanently-redirect/" title="利用 ISAPI_Rewrite 做301永久转向">301永久重定向</a>来让Google知道哪个才是我提倡的地址形式。</p>
<p>网上大部分都是Apache上的配置方式，即.htaccess的，当然与<a href="http://www.steveluo.name/isapi-rewrite-intro/" title="ISAPI Rewrite 介绍及相关应用">ISAPI_Rewrite 2</a>的语法会有所不同，但是手动转换了一下仍然存在问题，可能是我水平不够吧。<br />
后来在寻找Wordpress插件的时候无意中看到一个插件的介绍页中提供了ISAPI_Rewrite和.htaccess的规则：</p>
<p>来自：<a href="http://cephas.net/blog/2005/07/11/trailing-slashes-iis-and-f5-big-ip/" target="_blank">Trailing Slashes, IIS and F5 / Big-IP </a></p>
<pre>ISAPI_Rewrite 2:
RewriteCond Host: (.*)
RewriteRule ([^.?]+[^.?/]) http\://$1$2/ [I,RP]

ISAPI_Rewirte 3:
RewriteCond %{HTTP:Host} (.*)
RewriteRule ^([^.?]+[^.?/])$ http\://%1$1/ [NC,R=301]</pre>
<p>来自：<a href="http://www.alistercameron.com/2007/01/12/two-wordpress-plugins-you-dont-need-and-shouldnt-use/" target="_blank">Two WordPress plugins you don’t need and shouldn’t use</a></p>
<pre>Apache .htaccess:
RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]</pre>
<p>看起来是2个作者用了2种方法来实现的，反正我们也不求甚解，只要能用就好。</p>
<p>今天还找到个方法来避免重复内容的产生，有兴趣可以看一下<a href="http://www.steveluo.name/canonical-url-avoid-duplicate-content/" title="使用权威链接(Canonical URL)避免重复内容">使用权威链接(Canonical URL)避免重复内容</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.steveluo.name/wordpress-trailing-slash-isapi-rewrite-htaccess/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>使用All In One SEO Pack的Canonical URLs功能实现URL统一</title>
		<link>http://www.steveluo.name/all-in-one-seo-pack-canonical-urls/</link>
		<comments>http://www.steveluo.name/all-in-one-seo-pack-canonical-urls/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 15:49:35 +0000</pubDate>
		<dc:creator>Steve Luo</dc:creator>
				<category><![CDATA[WordPress Plugins]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[URL]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[插件]]></category>

		<guid isPermaLink="false">http://www.steveluo.name/?p=152</guid>
		<description><![CDATA[今天在为英文站安装插件的时候，突然发现新版的All In One SEO Pack有了新的选项页面，其中多出了一些选项，例如：Canonical URLs，也就是我们说的权威链接。 这个功能将会自动在页面中添加权威链接的&#60;link&#62;标签，关于这个您可以阅读使用权威链接(Canonical URL)避免重复内容 有了这个功能可以在一定程度上避免重复内容的产生，不过我还是使用URL Rewrite做了重定向来添加URL末尾的斜杠，做到万无一失。 当然期间还碰到了All in one SEO pack升级错误，提示： Call to undefined function admin_url() 后来查阅了资料，发现是由于Wordpress版本过低造成的，我比较偷懒，2.5.2用了好久了。 这次正好英文站用的最新的Wordpress，于是趁这次机会升级到了2.8.2。 升级完成后All in one SEO pack插件成功激活。]]></description>
			<content:encoded><![CDATA[<p>今天在为英文站安装插件的时候，突然发现新版的All In One SEO Pack有了新的选项页面，其中多出了一些选项，例如：Canonical URLs，也就是我们说的权威链接。</p>
<p>这个功能将会自动在页面中添加权威链接的&lt;link&gt;标签，关于这个您可以阅读<a href="http://www.steveluo.name/canonical-url-avoid-duplicate-content/" title="使用权威链接(Canonical URL)避免重复内容">使用权威链接(Canonical URL)避免重复内容</a></p>
<p>有了这个功能可以在一定程度上避免重复内容的产生，不过我还是<a href="http://www.steveluo.name/wordpress-trailing-slash-isapi-rewrite-htaccess/" title="WordPress 添加URL末尾斜杠：ISAPI Rewrite、.htaccess规则">使用URL Rewrite做了重定向来添加URL末尾的斜杠</a>，做到万无一失。</p>
<p>当然期间还碰到了All in one SEO pack升级错误，提示：</p>
<pre>Call to undefined function admin_url()</pre>
<p>后来查阅了资料，发现是由于Wordpress版本过低造成的，我比较偷懒，2.5.2用了好久了。<br />
这次正好英文站用的最新的Wordpress，于是趁这次机会升级到了2.8.2。<br />
升级完成后All in one SEO pack插件成功激活。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.steveluo.name/all-in-one-seo-pack-canonical-urls/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>URL标准化简介及实现方法</title>
		<link>http://www.steveluo.name/url-canonicalization/</link>
		<comments>http://www.steveluo.name/url-canonicalization/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 03:15:58 +0000</pubDate>
		<dc:creator>Steve Luo</dc:creator>
				<category><![CDATA[英文站相关]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[URL]]></category>

		<guid isPermaLink="false">http://www.steveluo.name/?p=150</guid>
		<description><![CDATA[什么是标准化的URL？ 通常情况下，我们认为下面这几个URL地址指向的是同一个页面（首页）： www.example.com example.com/ www.example.com/index.html example.com/index.php 但从技术角度来看，这些URL都是互不相同的。对于上述的URL，Web服务器完全可以返回完全不同的内容。而如果这些URL地址所返回的内容（也就是显示的内容）都一样时，Google需要从这些URL中选出一个具有代表性的，而忽略其余的。那么这个被Google选中的URL，就是一个标准化的URL。Google选择的这个过程称为“标准化”。标准化这一词原本是Google的内部词汇。 Google是怎么URL标准化的？ 通常，Google是根据外链数量来判断哪个URL为标准化URL。 URL标准化有什么意义？ 同一URL出现多个版本(如read.php?id=1和read.php?id=1&#38;page=1)，同一位置出现多个URL形式(如list.php?companyname=xxx和list.php?companyid=123)，及大小写问题等都可能导致在搜索引擎中出现相似页面，从而影响网站在搜索引擎中的表现。 我们知道，搜索引擎是喜欢原创的东西，或者说喜欢不同的东西，而不喜欢重复的相似的内容。他们希望提供给用户更好的搜索体验，因此，他们也会对相似的页面进行筛选。我们能做的就是让把一些可以避免的重复页面统一起来，让搜索引擎只抓取最主要的一个。 怎么样才能使URL标准化呢？ 使用301转向（301 Permanently Move）来实现URL标准化，搜索引擎蜘蛛来抓取时，这些页面全部指向了那个希望被抓取的页面，并且通过301的HTTP状态码（永久重定向，对于搜索引擎是友好的），这样搜索引擎就知道那个页面才是主要的，那么这些非主要页面以后就不会被抓取，或者说抓取后忽略。 怎样来做301转向呢？ 对于Apache的主机，我们可以使用.htaccess来实现。但是对于国内大部分主机来说，都是Windows平台的，使用IIS作为Web服务器，我们必须使用ISAPI_Rewrite来进行URL重写。关于如何使用ISAPI_Rewrite来做URL重写，请参阅：利用 ISAPI_Rewrite 做301永久转向 另外的方法：使用权威链接(Canonical URL)避免重复内容，最近发现的。09/07/23]]></description>
			<content:encoded><![CDATA[<h3>什么是标准化的URL？</h3>
<p>通常情况下，我们认为下面这几个URL地址指向的是同一个页面（首页）：<br />
www.example.com<br />
example.com/<br />
www.example.com/index.html<br />
example.com/index.php</p>
<p>但从技术角度来看，这些URL都是互不相同的。对于上述的URL，Web服务器完全可以返回完全不同的内容。而如果这些URL地址所返回的内容（也就是显示的内容）都一样时，Google需要从这些URL中选出一个具有代表性的，而忽略其余的。那么这个被Google选中的URL，就是一个标准化的URL。Google选择的这个过程称为“标准化”。标准化这一词原本是Google的内部词汇。<br />
<span id="more-150"></span></p>
<h3>Google是怎么URL标准化的？</h3>
<p>通常，Google是根据外链数量来判断哪个URL为标准化URL。</p>
<h3>URL标准化有什么意义？</h3>
<p>同一URL出现多个版本(如read.php?id=1和read.php?id=1&amp;page=1)，同一位置出现多个URL形式(如list.php?companyname=xxx和list.php?companyid=123)，及大小写问题等都可能导致在搜索引擎中出现相似页面，从而影响网站在搜索引擎中的表现。</p>
<p>我们知道，搜索引擎是喜欢原创的东西，或者说喜欢不同的东西，而不喜欢重复的相似的内容。他们希望提供给用户更好的搜索体验，因此，他们也会对相似的页面进行筛选。我们能做的就是让把一些可以避免的重复页面统一起来，让搜索引擎只抓取最主要的一个。</p>
<h3>怎么样才能使URL标准化呢？</h3>
<p>使用301转向（301 Permanently Move）来实现URL标准化，搜索引擎蜘蛛来抓取时，这些页面全部指向了那个希望被抓取的页面，并且通过301的HTTP状态码（永久重定向，对于搜索引擎是友好的），这样搜索引擎就知道那个页面才是主要的，那么这些非主要页面以后就不会被抓取，或者说抓取后忽略。</p>
<h3>怎样来做301转向呢？</h3>
<p>对于Apache的主机，我们可以使用.htaccess来实现。但是对于国内大部分主机来说，都是Windows平台的，使用IIS作为Web服务器，我们必须使用ISAPI_Rewrite来进行URL重写。关于如何使用ISAPI_Rewrite来做URL重写，请参阅：<a href="http://www.steveluo.name/isapi-rewrite-301-move-permanently-redirect/" title="利用 ISAPI_Rewrite 做301永久转向">利用 ISAPI_Rewrite 做301永久转向</a></p>
<p><strong>另外的方法</strong>：<a href="http://www.steveluo.name/canonical-url-avoid-duplicate-content/" title="使用权威链接(Canonical URL)避免重复内容">使用权威链接(Canonical URL)避免重复内容</a>，最近发现的。09/07/23</p>
]]></content:encoded>
			<wfw:commentRss>http://www.steveluo.name/url-canonicalization/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

