<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>海边拾贝</title>
	<atom:link href="http://www.seebit.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.seebit.org</link>
	<description>www.seebit.org</description>
	<lastBuildDate>Sun, 07 Mar 2010 09:03:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>初试Google Earth和Maps API</title>
		<link>http://www.seebit.org/2010/03/learn-google-earth-and-maps-api/</link>
		<comments>http://www.seebit.org/2010/03/learn-google-earth-and-maps-api/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 08:20:17 +0000</pubDate>
		<dc:creator>Tony Zhu</dc:creator>
				<category><![CDATA[GIS]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.seebit.org/?p=266</guid>
		<description><![CDATA[本quarter Geodetic Science 634 &#8211; Digital Mapping Systems最后一个实验：Google&#8217;s Solution of WebGIS，照着指导写了点东西。总结一下吧。
首先是用Google SketchUp建了几个简单的建筑模型，保存为kmz文件后可以直接在google earth中查看。然后熟悉了一下google的（确切地说已经是OpenGIS的标准了，不过这里还用到了一些google的专有扩展）kml文件格式，用flyto标签创建一个展示3D建筑的动画。除了这些算是单机的之外，剩下的就全部都是web实现了——又是天天在写的html+javascript。
一共写了这么几个文件：

Google earth API with own 3D model
自己用SketchUp建了个模，上传到服务器，利用google earth api将其显示在网页中内嵌的earth frame中。
Google maps API with routes
在google earth下生成了两个路线的kml文件，上传到服务器，利用google maps api显示两条路线。为两条路线显示增加开关，另加一开关切换使用普通google maps网页api显示或调用google earth插件3D显示。
Geocoding with google maps api and show in earth
利用google maps api提供的geocoder对地址进行定位，结果用google earth显示。另外控制google earth，显示边界层和道路层。
Smooth animation with google earth api
利用google earth api，打开边界层、道路层和3D建筑层，向正北方向飞行的动画效果。动画利用googleearthplugin的frameend事件产生。Google官方例子。
Geocoding with google map api and [...]]]></description>
			<content:encoded><![CDATA[<p>本quarter Geodetic Science 634 &#8211; Digital Mapping Systems最后一个实验：Google&#8217;s Solution of WebGIS，照着指导写了点东西。总结一下吧。</p>
<p>首先是用Google SketchUp建了几个简单的建筑模型，保存为kmz文件后可以直接在google earth中查看。然后熟悉了一下google的（确切地说已经是OpenGIS的标准了，不过这里还用到了一些google的专有扩展）kml文件格式，用flyto标签创建一个展示3D建筑的动画。除了这些算是单机的之外，剩下的就全部都是web实现了——又是天天在写的html+javascript。</p>
<p>一共写了这么几个文件：</p>
<ul>
<li><a href="http://www.seebit.org/glab/earth/">Google earth API with own 3D model</a></li>
<p>自己用SketchUp建了个模，上传到服务器，利用google earth api将其显示在网页中内嵌的earth frame中。</p>
<li><a href="http://www.seebit.org/glab/maps/">Google maps API with routes</a></li>
<p>在google earth下生成了两个路线的kml文件，上传到服务器，利用google maps api显示两条路线。为两条路线显示增加开关，另加一开关切换使用普通google maps网页api显示或调用google earth插件3D显示。</p>
<li><a href="http://www.seebit.org/glab/geocoding/">Geocoding with google maps api and show in earth</a></li>
<p>利用google maps api提供的geocoder对地址进行定位，结果用google earth显示。另外控制google earth，显示边界层和道路层。</p>
<li><a href="http://www.seebit.org/glab/animation/">Smooth animation with google earth api</a></li>
<p>利用google earth api，打开边界层、道路层和3D建筑层，向正北方向飞行的动画效果。动画利用googleearthplugin的frameend事件产生。Google官方例子。</p>
<li><a href="http://www.seebit.org/glab/geocoding-with-animation/">Geocoding with google map api and animation in earth</a></li>
<p>上面两个功能的综合，外加控制飞行方向。另外用到了GEView的viewchangeend事件控制动画产生。</p>
<li><a href="http://www.seebit.org/glab/tour/">Load models and tour by kml</a></li>
<p>在上面基础上自己研究出来的功能，用google earth api实现了最初提到的单机在google earth中显示建筑模型并动画展示的功能。建筑通过kml加载dae，动画直接加载kml动画。</ul>
<p>另外写了一个索引文件<a href="http://www.seebit.org/glab/">http://www.seebit.org/glab/</a>（英文）</p>
]]></content:encoded>
			<wfw:commentRss>http://www.seebit.org/2010/03/learn-google-earth-and-maps-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>宽一点，再宽一点</title>
		<link>http://www.seebit.org/2010/03/wider-page/</link>
		<comments>http://www.seebit.org/2010/03/wider-page/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 05:24:33 +0000</pubDate>
		<dc:creator>Tony Zhu</dc:creator>
				<category><![CDATA[Web技术]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.seebit.org/?p=264</guid>
		<description><![CDATA[最近看惯了大分辨率的显示器，感觉这个模板好窄，才818px宽。这点上倒是和我老板感觉一样了，上次那个网页照这个宽度做的时候他也觉得窄。参考了一下当今网页的普遍宽度，加了100px上去，现在是918px宽了，相应的内容部分也由原来的550px加到了650px，在大显示器普及的今天算是跟上潮流吧。
另外顺手更新了一下google adsence的广告单元，把右侧sidebar下方的广告去掉（根本不可能有人会看到），在上方加了个链接单元，这个广告感觉还是有点用处的。
]]></description>
			<content:encoded><![CDATA[<p>最近看惯了大分辨率的显示器，感觉这个模板好窄，才818px宽。这点上倒是和我老板感觉一样了，上次那个网页照这个宽度做的时候他也觉得窄。参考了一下当今网页的普遍宽度，加了100px上去，现在是918px宽了，相应的内容部分也由原来的550px加到了650px，在大显示器普及的今天算是跟上潮流吧。</p>
<p>另外顺手更新了一下google adsence的广告单元，把右侧sidebar下方的广告去掉（根本不可能有人会看到），在上方加了个链接单元，这个广告感觉还是有点用处的。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.seebit.org/2010/03/wider-page/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>修复hoofei v4模板在Opera下左侧空白问题</title>
		<link>http://www.seebit.org/2010/03/fix-hoofei-v4-opera/</link>
		<comments>http://www.seebit.org/2010/03/fix-hoofei-v4-opera/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 20:58:43 +0000</pubDate>
		<dc:creator>Tony Zhu</dc:creator>
				<category><![CDATA[Web技术]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.seebit.org/?p=262</guid>
		<description><![CDATA[其实是个老问题了，这个模板在其他浏览器下一直很正常，但一到Opera下就跑偏。内容区域左侧有大片空白，并把右侧导航菜单挤到底下去。
刚开始以为是标签没闭合的问题，但用W3C工具检查过发现没什么毛病，于是一直没去理它。正好今天原来那个爆慢的dreamhost空间到期，把内容搬到这个新空间。加上最近这几个月写了不少javascript和CSS，又遇上Opera 10.5的发布，于是决定研究一下。
原来跑偏那个DIV用的是float:left。从最近干活的经验上来看肯定是上面有个元素抢占了它的空间，但具体是哪个不好找。于是来个简单的：float出问题，clear来解决。把跑偏DIV的上级容器加一个“clear:both;”——Opera下终于正常了。
不得不说，在美国留学确实很充实，现在天天Fortran、MPI、HDF5、php、javascript、CSS……感觉基本上没有闲着的时候，写博客也就没那么及时了。
学习着！
]]></description>
			<content:encoded><![CDATA[<p>其实是个老问题了，这个模板在其他浏览器下一直很正常，但一到Opera下就跑偏。内容区域左侧有大片空白，并把右侧导航菜单挤到底下去。</p>
<p>刚开始以为是标签没闭合的问题，但用W3C工具检查过发现没什么毛病，于是一直没去理它。正好今天原来那个爆慢的dreamhost空间到期，把内容搬到这个新空间。加上最近这几个月写了不少javascript和CSS，又遇上Opera 10.5的发布，于是决定研究一下。</p>
<p>原来跑偏那个DIV用的是float:left。从最近干活的经验上来看肯定是上面有个元素抢占了它的空间，但具体是哪个不好找。于是来个简单的：float出问题，clear来解决。把跑偏DIV的上级容器加一个“clear:both;”——Opera下终于正常了。</p>
<p>不得不说，在美国留学确实很充实，现在天天Fortran、MPI、HDF5、php、javascript、CSS……感觉基本上没有闲着的时候，写博客也就没那么及时了。</p>
<p>学习着！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.seebit.org/2010/03/fix-hoofei-v4-opera/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL中修理特殊不可见uft8字符</title>
		<link>http://www.seebit.org/2009/12/mysql-trim-special-utf8-character/</link>
		<comments>http://www.seebit.org/2009/12/mysql-trim-special-utf8-character/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 00:35:09 +0000</pubDate>
		<dc:creator>Tony Zhu</dc:creator>
				<category><![CDATA[技术随笔]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.seebit.org/?p=259</guid>
		<description><![CDATA[工作中有一个中文字库表，是前辈从其他地方导入的。最近使用的时候发现有些词，比如“清白”，明明只有两个字，却只能用LIKE &#8216;%清白%&#8217;查出，直接=&#8217;清白&#8217;找不到。
第一反应，前后可能有空格。于是在PHPMyadmin中用MySQL的trim函数过滤了一下
update 字库 set Vocabulary = trim(Vocabulary)
但返回的affected rows数居然是0
可以肯定不知道是哪个UTF8不可见字符混了进去，直接看又看不见，想个办法让它显型。于是用到了MySQL的hex函数，把字符串的hex输出来对比一下：
select hex('清白'), hex(Vocabulary), Vocabulary from 字库 where Vocabulary like '%清白%'
这下一眼就看出正常字符串前多了个hex为“EFBBBF”的字符，将这个十六进制数扔到windows自带的计算器中换成十进制为15711167，真凶确定，删之：
update 字库 set Vocabulary = REPLACE(Vocabulary, char(15711167),'')
affected rows居然有3000多，怪不得感觉老有些常用词检索不出来呢……
保险起见，再用了一次trim
update 字库 set Vocabulary = trim(Vocabulary)
又冒出3个affected rows。
工作继续。
]]></description>
			<content:encoded><![CDATA[<p>工作中有一个中文字库表，是前辈从其他地方导入的。最近使用的时候发现有些词，比如“清白”，明明只有两个字，却只能用LIKE &#8216;%清白%&#8217;查出，直接=&#8217;清白&#8217;找不到。</p>
<p>第一反应，前后可能有空格。于是在PHPMyadmin中用MySQL的trim函数过滤了一下</p>
<pre>update 字库 set Vocabulary = trim(Vocabulary)</pre>
<p>但返回的affected rows数居然是0</p>
<p>可以肯定不知道是哪个UTF8不可见字符混了进去，直接看又看不见，想个办法让它显型。于是用到了MySQL的hex函数，把字符串的hex输出来对比一下：</p>
<pre>select hex('清白'), hex(Vocabulary), Vocabulary from 字库 where Vocabulary like '%清白%'</pre>
<p>这下一眼就看出正常字符串前多了个hex为“EFBBBF”的字符，将这个十六进制数扔到windows自带的计算器中换成十进制为15711167，真凶确定，删之：</p>
<pre>update 字库 set Vocabulary = REPLACE(Vocabulary, char(15711167),'')</pre>
<p>affected rows居然有3000多，怪不得感觉老有些常用词检索不出来呢……</p>
<p>保险起见，再用了一次trim</p>
<pre>update 字库 set Vocabulary = trim(Vocabulary)</pre>
<p>又冒出3个affected rows。</p>
<p>工作继续。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.seebit.org/2009/12/mysql-trim-special-utf8-character/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu 9.10 grub2 开机菜单及64位版flash视频拖放问题</title>
		<link>http://www.seebit.org/2009/11/ubuntu-910-grub2-flash/</link>
		<comments>http://www.seebit.org/2009/11/ubuntu-910-grub2-flash/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 03:58:40 +0000</pubDate>
		<dc:creator>Tony Zhu</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.seebit.org/?p=257</guid>
		<description><![CDATA[不得不说，Ubuntu做得越来越不错了，对中文的支持也越来越好。但我这个从Ubuntu9.10 beta一路升级过来还是遇到了一点问题——grub2 的新式开机配置文件，另外64位版下flash对视频拖动支持有问题。
先从grub2说起。Ubuntu 9.10将系统默认的启动管理器升级为了grub2，至少从7.10到9.04一直用的是grub。好不容易习惯了改menu.lst，现在突然改为grub.cfg。确实让人有些不适应。不过在总结grub2配置方法前先总结一下我看到的grub升级策略。
全新安装Ubuntu 9.10正式版时会正确地安装grub2，使用/boot/grub/grub.cfg配置；而从老系统升级时ubuntu会沿用原先的grub，继续使用menu.lst配置。但像我这样全新安装Ubuntu 9.10 beta再一路升级过来的就出了一点问题：引导用的是grub2，但系统中自带的grub工具还是grub1版的。因此为确保正确使用最新版的grub2，执行以下命令
sudo apt-get install grub2
这样系统中的工具和硬盘的引导记录都会被正确地设置为grub2。
关于grub2的设置，ubuntu中文论坛上有一些不太合适的文章，或直接修改grub.cfg，或修改/etc/grub.d/下的文件。但Ubuntu 为grub2准备了一个专门的设置文件“/etc/default/grub”，用这个文件的最大好处是当内核更新时，不会丢失原来的配置。以下是这个文件的默认值，及我对其中最常用两项的注释：
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.

GRUB_DEFAULT=0 #将0改为saved，可让grub记住上次启动时选择的系统
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT="5" #显示启动选择菜单的时间
GRUB_DISTRIBUTOR=`lsb_release -i -s 2&#62; /dev/null &#124;&#124; echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic [...]]]></description>
			<content:encoded><![CDATA[<p>不得不说，Ubuntu做得越来越不错了，对中文的支持也越来越好。但我这个从Ubuntu9.10 beta一路升级过来还是遇到了一点问题——grub2 的新式开机配置文件，另外64位版下flash对视频拖动支持有问题。</p>
<p>先从grub2说起。Ubuntu 9.10将系统默认的启动管理器升级为了grub2，至少从7.10到9.04一直用的是grub。好不容易习惯了改menu.lst，现在突然改为grub.cfg。确实让人有些不适应。不过在总结grub2配置方法前先总结一下我看到的grub升级策略。</p>
<p>全新安装Ubuntu 9.10正式版时会正确地安装grub2，使用/boot/grub/grub.cfg配置；而从老系统升级时ubuntu会沿用原先的grub，继续使用menu.lst配置。但像我这样全新安装Ubuntu 9.10 beta再一路升级过来的就出了一点问题：引导用的是grub2，但系统中自带的grub工具还是grub1版的。因此为确保正确使用最新版的grub2，执行以下命令</p>
<pre>sudo apt-get install grub2</pre>
<p>这样系统中的工具和硬盘的引导记录都会被正确地设置为grub2。</p>
<p>关于grub2的设置，ubuntu中文论坛上有一些不太合适的文章，或直接修改grub.cfg，或修改/etc/grub.d/下的文件。但Ubuntu 为grub2准备了一个专门的设置文件“/etc/default/grub”，用这个文件的最大好处是当内核更新时，不会丢失原来的配置。以下是这个文件的默认值，及我对其中最常用两项的注释：</p>
<pre># If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.

GRUB_DEFAULT=0 #将0改为saved，可让grub记住上次启动时选择的系统
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT="5" #显示启动选择菜单的时间
GRUB_DISTRIBUTOR=`lsb_release -i -s 2&gt; /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entrys
#GRUB_DISABLE_LINUX_RECOVERY="true"</pre>
<p>修改完这个文件后，使用命令</p>
<pre>sudo update-grub</pre>
<p>应用更新。</p>
<p><span style="color: #ff0000;">更新：最近发现最近Ubuntu 9.10 64位版中的flash-nofree包是会自动下载最新版64位flash的。可能是我从beta版开始安装所以有些遗留问题吧。以下内容参考而已，已经无用。</span></p>
<p>至于flash拖动问题，貌似64位版里用的是32位flash的包装版，包装器的设置有点问题，<a href="http://geekerdever.blogspot.com/2009/11/ubuntu-910-flash.html">有人已经给出方案了</a>，但考虑到我们伟大的墙，我只好再引用一遍：</p>
<blockquote><p>来源：<a id="wja4" title="http://www.ubuntugeek.com/fix-for-flash-is-not-recognizing-mouse-clicks.html" href="http://www.ubuntugeek.com/fix-for-flash-is-not-recognizing-mouse-clicks.html" target="_blank">http://www.ubuntugeek.com/fix-for-flash-is-not-recognizing-mouse-clicks.html</a></p>
<p>方法1：<br />
注意：此方法在每次你的系统升级后可能均需重做才可生效<br />
修改 /usr/lib/nspluginwrapper/i386/linux/npviewer<br />
在其中添加语句 export GDK_NATIVE_WINDOWS=1</p>
<p>方法2：<br />
注意：此方法可能破坏你的系统<br />
将如下脚本存储入文件，授权执行：</p>
<p><span style="font-family: Courier New;">#!/bin/bash<br />
# Script  created by<br />
# Romeo-Adrian Cioaba romeo.cioaba@spotonearth.com<br />
# Jaša Bartelj jasa.bartelj@gmail.com</span></p>
<p>echo &#8220;Stopping any Firefox that might be running.&#8221;<br />
sudo killall -9 firefox</p>
<p>echo &#8220;Removing any other flash plugin previously installed.&#8221;<br />
sudo apt-get remove -y &#8211;purge flashplugin-nonfree gnash gnash-common mozilla-plugin-gnash swfdec-mozilla libflashsupport nspluginwrapper<br />
sudo rm -f /usr/lib/mozilla/plugins/*flash*<br />
sudo rm -f ~/.mozilla/plugins/*flash*<br />
sudo rm -f /usr/lib/firefox/plugins/*flash*<br />
sudo rm -f /usr/lib/firefox-addons/plugins/*flash*<br />
sudo rm -rfd /usr/lib/nspluginwrapper</p>
<p>echo &#8220;Installing Flash Player 10.&#8221;<br />
sudo cd /tmp<br />
sudo wget http://labs.adobe.com/downloads/flashplayer10.html<br />
sudo wget `cat flashplayer10.html | egrep -o &#8220;http:.*&#8221;|cut -d\&#8221; -f1|grep linux-x86_64.so.tar.gz`<br />
ARCHIVE=`ls libflashplayer-*.linux-x86_64.so.tar.gz`<br />
echo &#8220;Version is $ARCHIVE.&#8221;<br />
sudo tar zxvf $ARCHIVE<br />
sudo cp libflashplayer.so /usr/lib/mozilla/plugins/<br />
echo &#8220;Linking the libraries so Firefox and apps built on XULRunner can find it.&#8221;<br />
sudo ln -sf /usr/lib/mozilla/plugins/libflashplayer.so /usr/lib/firefox-addons/plugins/<br />
sudo ln -sf /usr/lib/mozilla/plugins/libflashplayer.so  /usr/lib/xulrunner-addons/plugins/<br />
# now doing some cleaning up:<br />
sudo rm -rf flashplayer10.html<br />
sudo rm -rf libflashplayer.so<br />
sudo rm -rf $ARCHIVE</p></blockquote>
<p>PS：自打开始折腾毕业、出国以来，已经好久没有更新过这个博客了。初到美国，很多事得做，也一直没静下心来写点东西。难得现在心情平静一些，赶紧写点。等以后学习、生活安定下来还是要坚持更新的。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.seebit.org/2009/11/ubuntu-910-grub2-flash/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>wordpress缓存插件性能测试与分析</title>
		<link>http://www.seebit.org/2009/07/wordpress-cache-performance/</link>
		<comments>http://www.seebit.org/2009/07/wordpress-cache-performance/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 03:00:21 +0000</pubDate>
		<dc:creator>Tony Zhu</dc:creator>
				<category><![CDATA[Web技术]]></category>
		<category><![CDATA[性能]]></category>
		<category><![CDATA[缓存]]></category>

		<guid isPermaLink="false">http://www.seebit.org/?p=252</guid>
		<description><![CDATA[做毕业设计时对wordpress几个缓存插件进行了性能分析。费了老大劲测得的数据仅仅扔在毕业论文里实在可惜。精简一下，与大家共享。
测试环境：virtualbox中全新安装的Ubuntu 9.04 Server，标准LAMP环境。
测试工具：httperf、top
测试方案：无缓存、WP Super Cache半开、WP Super Cache全开、cos-html-cache共四种状态。在每种状态下分别对首页和id为148的文章页面进行测试。
每次测试前在服务器端使用命令
top -bSn 1 &#62;Xt0.txt
将各个进程的CPU使用情况记录到一个txt文件中。
为什么不使用ps：虽然查看进程信息的“标准”命令是ps，但在linux下ps输出的CPU时间仅精确到秒，而top可以精确到0.1秒。top使用参数b时使用批量模式，将系统中所有进程的情况遍历输出参数n指定的遍数后退出。
然后在客户端使用httperf对指定页面进行50次顺序访问，所有测试结果以这50次的平均值为准。对id为148的页面httperf命令如下
httperf --hog --server 192.168.1.104 --uri /wordpress/archives/148.html --num-conn 50 --timeout 60
httperf测试完成后，马上在服务器端使用top命令记录测试后各进程CPU时间。测试期间服务器没有其他负载，所以可以认为apache2、mysqld的CPU使用完全是由wordpress引发的。
数据处理部分就不说了，无非就是加减乘除。直接上性能对比图！
不得不说，wordpress在效率上确实不怎么样，随便一缓存性能就有十几倍的提升。
至于WP-Super Cache、cos-html-cache的优缺点已经有很多讨论了，在此不再重复。
但有一点要强调的是，本测试是基于对同一篇文章连续访问的情况下测得的。在这种情况下缓存是100％命中的，而事实上WP-Super Cache缓存有效时间只有十分钟，在缓存失效的情况下访问一下页面，由于要重建缓存，响应速度反而会比没有缓存慢一些。不过由于wordpress本身的速度，慢的这点应该是不明显的。
]]></description>
			<content:encoded><![CDATA[<p>做毕业设计时对wordpress几个缓存插件进行了性能分析。费了老大劲测得的数据仅仅扔在毕业论文里实在可惜。精简一下，与大家共享。</p>
<p>测试环境：virtualbox中全新安装的Ubuntu 9.04 Server，标准LAMP环境。</p>
<p>测试工具：httperf、top</p>
<p>测试方案：无缓存、WP Super Cache半开、WP Super Cache全开、cos-html-cache共四种状态。在每种状态下分别对首页和id为148的文章页面进行测试。</p>
<p>每次测试前在服务器端使用命令</p>
<pre>top -bSn 1 &gt;Xt0.txt</pre>
<p>将各个进程的CPU使用情况记录到一个txt文件中。</p>
<p style="padding-left: 30px;">为什么不使用ps：虽然查看进程信息的“标准”命令是ps，但在linux下ps输出的CPU时间仅精确到秒，而top可以精确到0.1秒。top使用参数b时使用批量模式，将系统中所有进程的情况遍历输出参数n指定的遍数后退出。</p>
<p>然后在客户端使用httperf对指定页面进行50次顺序访问，所有测试结果以这50次的平均值为准。对id为148的页面httperf命令如下</p>
<pre>httperf --hog --server 192.168.1.104 --uri /wordpress/archives/148.html --num-conn 50 --timeout 60</pre>
<p>httperf测试完成后，马上在服务器端使用top命令记录测试后各进程CPU时间。测试期间服务器没有其他负载，所以可以认为apache2、mysqld的CPU使用完全是由wordpress引发的。</p>
<p>数据处理部分就不说了，无非就是加减乘除。直接上性能对比图！</p>
<div id="attachment_254" class="wp-caption aligncenter" style="width: 496px"><a href="http://www.seebit.org/share/conn.gif"><img class="size-full wp-image-254" title="conn" src="http://www.seebit.org/share/conn.gif" alt="响应速率" width="486" height="265" /></a><p class="wp-caption-text">响应速率</p></div>
<div id="attachment_253" class="wp-caption aligncenter" style="width: 496px"><a href="http://www.seebit.org/share/apache.gif"><img class="size-full wp-image-253" title="apache" src="http://www.seebit.org/share/apache.gif" alt="apcahe CPU占用对比" width="486" height="265" /></a><p class="wp-caption-text">apcahe CPU占用对比</p></div>
<div id="attachment_255" class="wp-caption aligncenter" style="width: 485px"><a href="http://www.seebit.org/share/mysql.gif"><img class="size-full wp-image-255" title="mysql" src="http://www.seebit.org/share/mysql.gif" alt="mysql CPU对比" width="475" height="266" /></a><p class="wp-caption-text">mysql CPU对比</p></div>
<p>不得不说，wordpress在效率上确实不怎么样，随便一缓存性能就有十几倍的提升。</p>
<p>至于WP-Super Cache、cos-html-cache的优缺点已经有很多讨论了，在此不再重复。</p>
<p>但有一点要强调的是，本测试是基于对同一篇文章连续访问的情况下测得的。在这种情况下缓存是100％命中的，而事实上WP-Super Cache缓存有效时间只有十分钟，在缓存失效的情况下访问一下页面，由于要重建缓存，响应速度反而会比没有缓存慢一些。不过由于wordpress本身的速度，慢的这点应该是不明显的。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.seebit.org/2009/07/wordpress-cache-performance/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>virtual box虚拟机窗口半透明解决</title>
		<link>http://www.seebit.org/2009/04/virtualbox-window-translucent/</link>
		<comments>http://www.seebit.org/2009/04/virtualbox-window-translucent/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 14:09:42 +0000</pubDate>
		<dc:creator>Tony Zhu</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.seebit.org/?p=250</guid>
		<description><![CDATA[在ubuntu 9.04上，VirtualBox虚拟机第一次启动正常，再启动虚拟机的内容就会变成半透明效果。而且会造成mplayer(smplayer)画面透明，无法显示视频。换compiz到metacity问题依旧。
参考论坛讨论，自己总结出彻底解决方法如下：
sudo vim /usr/bin/VirtualBox
在PATH＝……一行前加入：
export XLIB_SKIP_ARGB_VISUALS=1
添加完保存之后正常启动VirtualBox，虚拟机画面正常。注销后再启动VirtualBox也不会再影响mplayer。
]]></description>
			<content:encoded><![CDATA[<p>在ubuntu 9.04上，VirtualBox虚拟机第一次启动正常，再启动虚拟机的内容就会变成半透明效果。而且会造成mplayer(smplayer)画面透明，无法显示视频。换compiz到metacity问题依旧。</p>
<p>参考<a title="vbox第二次打开窗口就变透明了" href="http://forum.ubuntu.org.cn/viewtopic.php?f=65&amp;t=196400&amp;p=1241175" target="_blank">论坛讨论</a>，自己总结出彻底解决方法如下：</p>
<pre>sudo vim /usr/bin/VirtualBox</pre>
<p>在PATH＝……一行前加入：</p>
<pre>export XLIB_SKIP_ARGB_VISUALS=1</pre>
<p>添加完保存之后正常启动VirtualBox，虚拟机画面正常。注销后再启动VirtualBox也不会再影响mplayer。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.seebit.org/2009/04/virtualbox-window-translucent/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>wordpress死循环在登录界面</title>
		<link>http://www.seebit.org/2009/04/death-cycle-in-the-wordpress-login-screen/</link>
		<comments>http://www.seebit.org/2009/04/death-cycle-in-the-wordpress-login-screen/#comments</comments>
		<pubDate>Sun, 19 Apr 2009 16:11:50 +0000</pubDate>
		<dc:creator>Tony Zhu</dc:creator>
				<category><![CDATA[Web技术]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.seebit.org/?p=247</guid>
		<description><![CDATA[刚才闲着无聊在wordpress后台“常规”页面改博客的名字，結果一次提交之后返回到了登录页面。而且不管用哪个用户登录只会在登录页面循环，无法进入后台。
虽然无法登录，但主页上显示的链接是“后台管理”而不是“登录”，说明登录认证还是成功的。后台无法登录，只能到数据库里看一看了。
用phpMyAdmin查看了一下wp_options表的内容，发现siteurl的内容居然为空。手动将其改回     http://www.seebit.org，刷新一下wordpress后台，可以正常使用了。
]]></description>
			<content:encoded><![CDATA[<p>刚才闲着无聊在wordpress后台“常规”页面改博客的名字，結果一次提交之后返回到了登录页面。而且不管用哪个用户登录只会在登录页面循环，无法进入后台。</p>
<p>虽然无法登录，但主页上显示的链接是“后台管理”而不是“登录”，说明登录认证还是成功的。后台无法登录，只能到数据库里看一看了。</p>
<p>用phpMyAdmin查看了一下wp_options表的内容，发现siteurl的内容居然为空。手动将其改回     http://www.seebit.org，刷新一下wordpress后台，可以正常使用了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.seebit.org/2009/04/death-cycle-in-the-wordpress-login-screen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>博客空间无缝切换</title>
		<link>http://www.seebit.org/2009/04/blog-space-to-seamlessly-switch/</link>
		<comments>http://www.seebit.org/2009/04/blog-space-to-seamlessly-switch/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 14:51:54 +0000</pubDate>
		<dc:creator>Tony Zhu</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.seebit.org/?p=245</guid>
		<description><![CDATA[用了一年的LunaPage空间马上就要到期了，在淘宝上买了一个新的DreamHost合租空间。花了点时间将Blog完整地转移到了新空间中。
其实步骤非常简单，大部分时间都花在了文件上传、下载上。
具体步骤如下：
1.用faisun_zip将原空间中除sitemap和各种日志外打包下载，再用faisun_unzip全部上传到新空间。
2.修改hosts文件，将www.seebit.org指向新空间IP
3.浏览器打开www.seebit.org，运行wordpress安装程序。
4.用wp-db-backup导出原数据库，新空间中用PhpMyAdmin清空wordpress自动生成的数据库内容，导入原数据库内容。
5.测试一切正常后，到域名注册商修改域名A记录。删除hosts文件中手动添加的记录。
一切都像没有发生过改变一样。
PS：为什么我的空间总是换来换去，因为淘宝上最便宜的空间合租总是做不长久……
]]></description>
			<content:encoded><![CDATA[<p>用了一年的LunaPage空间马上就要到期了，在淘宝上买了一个新的DreamHost合租空间。花了点时间将Blog完整地转移到了新空间中。</p>
<p>其实步骤非常简单，大部分时间都花在了文件上传、下载上。</p>
<p>具体步骤如下：</p>
<p>1.用<a href="http://www.softpure.com/html/show_details/81.htm" target="_blank">faisun_zip</a>将原空间中除sitemap和各种日志外打包下载，再用<a href="http://www.softpure.com/html/show_details/82.htm">faisun_unzip</a>全部上传到新空间。</p>
<p>2.修改hosts文件，将www.seebit.org指向新空间IP</p>
<p>3.浏览器打开www.seebit.org，运行wordpress安装程序。</p>
<p>4.用wp-db-backup导出原数据库，新空间中用PhpMyAdmin清空wordpress自动生成的数据库内容，导入原数据库内容。</p>
<p>5.测试一切正常后，到域名注册商修改域名A记录。删除hosts文件中手动添加的记录。</p>
<p>一切都像没有发生过改变一样。</p>
<p>PS：为什么我的空间总是换来换去，因为淘宝上最便宜的空间合租总是做不长久……</p>
]]></content:encoded>
			<wfw:commentRss>http://www.seebit.org/2009/04/blog-space-to-seamlessly-switch/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>全新硬盘安装Ubuntu 9.04</title>
		<link>http://www.seebit.org/2009/03/install-ubuntu-904-by-hard-disk/</link>
		<comments>http://www.seebit.org/2009/03/install-ubuntu-904-by-hard-disk/#comments</comments>
		<pubDate>Fri, 27 Mar 2009 15:03:01 +0000</pubDate>
		<dc:creator>Tony Zhu</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.seebit.org/?p=244</guid>
		<description><![CDATA[Ubuntu 9.04 Beta版终于出来了。受不了8.10的启动速度，以及从7.10一路升级到8.10 home中的垃圾。一狠心，全格！全新从硬盘安装9.04！
当然，格式化之前先把home下能想到有用的东西先备份一下（别忘了那些隐藏文件）。开始硬盘安装。
1.下载最新版的Grub for DOS，将其中的grldr扔到C盘根目录。编辑boot.ini，在其最后添加一行
c:\grldr="Grub for dos"
2.提取ubuntu 9.04安装光盘casper文件夹下的“vmlinuz”和“initrd.gz”两个文件到C盘根目录。
3.将安装光盘镜像复制到C盘根目录。并在C盘根目录下创建纯文本文件menu.lst，内容如下
timeout 15

default 0

fallback 1

title  Ubuntu 9.04 LiveCD
root (hd0,0)
kernel /vmlinuz boot=casper iso-scan/filename=/ubuntu-9.04-beta-desktop-i386.iso ro quiet locale=zh_CN.UTF-8
initrd  /initrd.gz

title GO Back
rootnoverify (hd0,0)
makeactive
chainloader  +1
4.重启，注意选择启动菜单，进入DesktopCD桌面。按Ctrl+Alt+F1进入命令行。输入命令
sudo umount -l /isodevice
这一命令取消掉对光盘所在驱动器的挂载，否则分区界面找不到分区。
5.按Ctrl+Alt+F7返回桌面，正常安装。我把home和root都格成了ext4。
6.恢复home中的文件。
PS：我的ATI x1300移动版显卡安装官方源里的ATI闭源驱动进不了桌面，会彻底死在登录画面那里。只能用恢复模式apt-get remove xorg-driver-fglrx卸载。
不过可喜的是默认的开源驱动已经能很好的驱动我这块老显卡了，可以流畅地开启3D桌面。不用ATI官方驱动的感觉是幸福的，呵呵。
]]></description>
			<content:encoded><![CDATA[<p>Ubuntu 9.04 Beta版终于出来了。受不了8.10的启动速度，以及从7.10一路升级到8.10 home中的垃圾。一狠心，全格！全新从硬盘安装9.04！</p>
<p>当然，格式化之前先把home下能想到有用的东西先备份一下（别忘了那些隐藏文件）。开始硬盘安装。</p>
<p>1.下载最新版的Grub for DOS，将其中的grldr扔到C盘根目录。编辑boot.ini，在其最后添加一行</p>
<pre>c:\grldr="Grub for dos"</pre>
<p>2.提取ubuntu 9.04安装光盘casper文件夹下的“vmlinuz”和“initrd.gz”两个文件到C盘根目录。</p>
<p>3.将安装光盘镜像复制到C盘根目录。并在C盘根目录下创建纯文本文件menu.lst，内容如下</p>
<pre>timeout 15

default 0

fallback 1

title  Ubuntu 9.04 LiveCD
root (hd0,0)
kernel /vmlinuz boot=casper iso-scan/filename=/ubuntu-9.04-beta-desktop-i386.iso ro quiet locale=zh_CN.UTF-8
initrd  /initrd.gz

title GO Back
rootnoverify (hd0,0)
makeactive
chainloader  +1</pre>
<p>4.重启，注意选择启动菜单，进入DesktopCD桌面。按Ctrl+Alt+F1进入命令行。输入命令</p>
<pre>sudo umount -l /isodevice</pre>
<p>这一命令取消掉对光盘所在驱动器的挂载，否则分区界面找不到分区。</p>
<p>5.按Ctrl+Alt+F7返回桌面，正常安装。我把home和root都格成了ext4。</p>
<p>6.恢复home中的文件。</p>
<p>PS：我的ATI x1300移动版显卡安装官方源里的ATI闭源驱动进不了桌面，会彻底死在登录画面那里。只能用恢复模式apt-get remove xorg-driver-fglrx卸载。</p>
<p>不过可喜的是默认的开源驱动已经能很好的驱动我这块老显卡了，可以流畅地开启3D桌面。不用ATI官方驱动的感觉是幸福的，呵呵。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.seebit.org/2009/03/install-ubuntu-904-by-hard-disk/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
