<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title>膘叔</title>
		<link>http://www.neatstudio.com/</link>
		<description>只关心我所关心的，不在意我所不在意的</description>
		<copyright>Copyright (C) 2004 Security Angel Team [S4T] All Rights Reserved.</copyright>
		<generator>SaBlog-X Version 1.6 Build 20080806</generator>
		<lastBuildDate>Fri, 03 Sep 2010 15:00:49 +0000</lastBuildDate>
		<ttl>10</ttl>
		<item>
			<guid>http://www.neatstudio.com/show-1449-1.shtml</guid>
			<title>Editplus 自动检查语法</title>
			<author>gouki</author>
			<description><![CDATA[<p>用惯了IDE写PHP，再次回到Editplus的时候总有点不太习惯，比如没有函数提示了（当然也可以自己打造）。不过。。语法检查总还是需要的，总不能自己程序传到服务器上后运行了才知道语法有问题吧？于是利用Editplus的小功能aftersave。改造了一下。</p>
<p>进入editplus的选项设置，点击左侧的User tools菜单，在右侧的Group and Tools下拉框中选择 AutoSave:after save。</p>
<p><a href="http://www.neatstudio.com/attachment.php?id=685" target="_blank"><img src="http://www.neatstudio.com/attachments/date_201009/thumb_a0e0fb463072d00b5ef538198623f077.jpg" border="0" alt="大小: 49.06 K&#13;尺寸: 469 x 376&#13;浏览: 1 次&#13;点击打开新窗口浏览全图" width="469" height="376" /></a></p>
<p>在右侧的 add tool里选择 program。然后输入：标题，程序所在位置，以及参数。。</p>
<p>php语法检测是php.exe -l filename，这个可以通过命令行下运行 php -? 了解。然后要catch output，以及针对current file。。</p>
<p>OK，这样就over了。</p>
<p>看看效果？</p>
<p><a href="http://www.neatstudio.com/attachment.php?id=686" target="_blank"><img src="http://www.neatstudio.com/attachments//date_201009/07a7a0347dfc199008e48ec904f47ca3.jpg" border="0" alt="大小: 39.2 K&#13;尺寸: 463 x 243&#13;浏览: 2 次&#13;点击打开新窗口浏览全图" width="463" height="243" /></a></p>]]></description>
			<link>http://www.neatstudio.com/show-1449-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-1-1.shtml">PHP</category>
			<pubDate>2010-09-03 11:10</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1448-1.shtml</guid>
			<title>DNS无法连接了？</title>
			<author>gouki</author>
			<description><![CDATA[<p>众所周知，8.8.8.8和4.3.2.1等算是google的public dns。好久以来，我已经不再使用上海热线的公用DNS：202.96.209.6和202.96.209.5了。虽然这两个DNS的速度会比较慢一点。但我还是一直在使用。直到今天晚上<br />
<br />
突然不能访问任何网页。我本来以为是我的路由器的问题，于是乎重启路由看什么原因，但结果失败了。但QQ能够正常登录。结果也在QQ里发现有几个人也遇到同样的问题。然后希望打电话给我，也是说这个问题。原来，不是我一个人在纠结。<br />
<br />
于是，我心里就乱想了。为什么呢？这是为什么呢？这究竟是为什么呢？不敢乱猜了，在DNS里把202.96.209.6加上，并通过排序放在第一个。然后就可以连接上了。<br />
<br />
再ping 8.8.8.8又能ping通了。但愿是我多想了。阿门</p>]]></description>
			<link>http://www.neatstudio.com/show-1448-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2010-09-02 20:54</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1447-1.shtml</guid>
			<title>笔记：svn之目标机器积极拒绝</title>
			<author>gouki</author>
			<description><![CDATA[<p>在以前的博客文章里也介绍了怎么安装svn的，昨天我又重装了一下，不过是按照网上的教程来装的。所以遇到了点问题，那就是：目标机器积极拒绝。<br />
安装过程如下：<br />
$apt-get update<br />
$apt-get install subversion<br />
$mkdir /var/svn/<br />
$useradd svn<br />
$passwd svn<br />
$chown -R svn:svn /var/svn<br />
$svnadmin create /var/svn/test<br />
$vim /var/svn/test/conf/svnserve.conf<br />
把几个注释去掉。。。。<br />
$vim /var/svn/test/conf/passwd<br />
添加用户<br />
$vim /var/svn/test/conf/authz <br />
增加权限<br />
$svnserve -d -listen-port 9999 -r /var/svn <br />
表面上看来没什么问题。但事实上连接的时候就是目标机器积极拒绝。。<br />
仔细想了想，应该没什么问题。看了一下进程，也确实存在 svnserve：ps -ef|grep svnserve<br />
那问题出来哪里呢？突然想到-listen-port ，会不会端口的问题？于是杀掉进程后<br />
$svnserve -d -r /var/svn<br />
然后就可以连上了。。<br />
做个记录</p>]]></description>
			<link>http://www.neatstudio.com/show-1447-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-13-1.shtml">Linux</category>
			<pubDate>2010-09-01 11:12</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1446-1.shtml</guid>
			<title>乱弹</title>
			<author>gouki</author>
			<description><![CDATA[<p>随便的扯几句喽。。。<br />
1、ipad ，突然发现sbsetting的功能超强大啊。。我明明在ipad里选择了飞行模式，居然可能通过sbsetting打开wifi。而且飞行模式的小飞机居然还存在。牛叉的。。<br />
<br />
2、电视连续剧《儿女冤家》，突然感觉里面的情节好真实，这是自《蜗居》以来又一个让人心动的电视。看到电视里的人物，心里觉得好揪心，啃老族这一个词已 经成了一个很让人烦的词语。有的时候，我也觉得自己也算一个啃老族  啊。工作这么多年，也成家了，却几乎没有拿过一分钱回过家。看到电视里的那对儿女，却是比我还厉害。不但吃父母用父母还要占父母的房子。唉。。。。。因为 没有看过结局，所以我就不再多下评论了。<br />
<br />
3、乔楚乔大姐，又想带队翻译PHP手册了。感觉乔楚还算是很专注的一个人，但事实上，翻译这种事情，一定要对PHP很深入才能翻译，否则翻译出来很可能 词不达意。所幸他们还会再做校验。同时乔楚发邮件给官方，并收到邮件，终于也可以使PHP中文版在下载列表里显示出来了。（都2年多了，中文手册一直被雪 藏。。感谢乔楚）<br />
<br />
4、Yii，最近我在看着Yii，并且根据Yii的代码抄一遍。这样感觉一来可以学习Yii的代码，可以更深入一点。二来，也可以了解Yii的一些设计思 想。Yii的代码还算是比较多的，而且多了一些zii,gii之类的扩展，功能是越来越强大了。只是Yii已经只支持PDO了。准备在抄的过程中还是要支 持一下默认的mysql扩展。（因为有的虚拟主机在命令行的时候，不支持PDO，很妖）</p>]]></description>
			<link>http://www.neatstudio.com/show-1446-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2010-08-31 21:56</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1445-1.shtml</guid>
			<title>GreaseMonkey with jQuery</title>
			<author>gouki</author>
			<description><![CDATA[<p>习惯了用jQuery，因此在使用greasemonkey的时候，也总是想着用jQuery，找了下，确实有这样的例子。。</p>
<div class="codeText">
<div class="codeHead">JavaScript代码</div>
<ol class="dp-c" start="1">
    <li class="alt"><span><span class="keyword">var</span><span>&nbsp;$;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="comment">//&nbsp;Add&nbsp;jQuery</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;(<span class="keyword">function</span><span>(){&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(</span><span class="keyword">typeof</span><span>&nbsp;unsafeWindow.jQuery&nbsp;==&nbsp;</span><span class="string">'undefined'</span><span>)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span>&nbsp;GM_Head&nbsp;=&nbsp;document.getElementsByTagName(</span><span class="string">'head'</span><span>)[0]&nbsp;||&nbsp;document.documentElement,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GM_JQ&nbsp;=&nbsp;document.createElement(<span class="string">'script'</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GM_JQ.src&nbsp;=&nbsp;<span class="string">'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js'</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GM_JQ.type&nbsp;=&nbsp;<span class="string">'text/javascript'</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GM_JQ.async&nbsp;=&nbsp;<span class="keyword">true</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GM_Head.insertBefore(GM_JQ,&nbsp;GM_Head.firstChild);&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GM_wait();&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;})();&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="comment">//&nbsp;Check&nbsp;if&nbsp;jQuery's&nbsp;loaded</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">function</span><span>&nbsp;GM_wait()&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(</span><span class="keyword">typeof</span><span>&nbsp;unsafeWindow.jQuery&nbsp;==&nbsp;'undefined')&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.setTimeout(GM_wait,&nbsp;100);&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span class="keyword">else</span><span>&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$&nbsp;=&nbsp;unsafeWindow.jQuery.noConflict(<span class="keyword">true</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;letsJQuery();&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="comment">//&nbsp;All&nbsp;your&nbsp;GM&nbsp;code&nbsp;must&nbsp;be&nbsp;inside&nbsp;this&nbsp;function</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">function</span><span>&nbsp;letsJQuery()&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert($);&nbsp;<span class="comment">//&nbsp;check&nbsp;if&nbsp;the&nbsp;dollar&nbsp;(jquery)&nbsp;function&nbsp;works</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert($().jquery);&nbsp;<span class="comment">//&nbsp;check&nbsp;jQuery&nbsp;version</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>然后代码就得全部扔在letsJQuery()方法里了。<br />
由于是async，所以，尽量选择快一点地址，比如本地的localhost之类的，HOHO，不过，这就得本地WEB服务常开了。</p>
<p>原文来自：http://joanpiedra.com/jquery/greasemonkey/</p>]]></description>
			<link>http://www.neatstudio.com/show-1445-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-2-1.shtml">Javascript</category>
			<pubDate>2010-08-30 10:00</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1444-1.shtml</guid>
			<title>关注几个同步软件</title>
			<author>gouki</author>
			<description><![CDATA[<p>Dropbox这软件恐怕也不用多介绍，大家都明白。国内类似软件也有不少。不过我真的不太想用这类类似软件。<br />
我想要什么 ？我想要有dropbox这类软件的功能，但可以自主控制，比如我可以使用FTP来做这事，做一类似于SVN的事情。因为使用ftp或者sftp，对数据可以完整的控制，也不再受限。对于一些比较重要的文件，自己也能够放心的存储 。<br />
找了一下，大约有以下几款软件可能会符合我的要求，但还没有尝试。不过我得尝试一下，下周就是我的尝试了。。。<br />
1、DirSync Pro,不过，看介绍好象不能同步远程的。http://www.dirsyncpro.org/features.html，看了一下是不支持。<br />
2、<strong>Capivara</strong> 是一个支持 SFTP 和 FTP 的文件同步工具，采用 Java 语言开发。通过对文件的时间戳和 SHA-1 哈希值进行文件的比较以便决定是否同步，同时可预览即将进行的同步操作，防止一些误操作。http://capivara.sourceforge.net/，这个是用java，就是不知道效率怎么样。<br />
3、OpenPiczzais是一个免费版本的<a target="_blank" href="http://www.piczza.com/">Piczza</a>文件传输服务。它可以让你可以安装自己的Piczza服务功能。（事实上我真没仔细看，不过看到居然有openpiczza服务，所以准备尝试一下）<br />
<br />
总之，也希望看到本文的朋友推荐一些软件（需要支持自己的FTP服务，就象xmarks之类的）。总之最后如果再不行了就只有SVN或者GIT了。其实上我不需要版本控制，但如果有变动，总能够覆盖或合并本地吧？</p>]]></description>
			<link>http://www.neatstudio.com/show-1444-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-3-1.shtml">Software</category>
			<pubDate>2010-08-29 22:28</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1443-1.shtml</guid>
			<title>ipad 常用软件</title>
			<author>gouki</author>
			<description><![CDATA[<p>我的ipad上有几个常用的软件，嗯横。我比较不太喜欢装软件，所以在用的一般就会一直用下去。</p>
<p>1、good reader 这个，是看书的，除了不支持chm，其他几种基本都支持了。为此我买了正版。0.99刀，但遗憾的是。。。我居然装了看不到图标了。更遗憾的是，单位的IP是192.168.10网段，而无线却是192.168.1的网段，因此，good reader在开通wifi的时候却显示让我们使用192.168.10网段。于是乎，这个功能我就永远无法使用了。</p>
<p>2、pinball ，这个就不用多说了。。。</p>
<p>3、愤怒的小鸟。。。娱乐软件</p>
<p>4、会说话的TOM。给小朋友玩的。</p>
<p>5、植物大战僵尸，纯属娱乐。。。</p>
<p>6、UC，看wap网页的。。。</p>
<p>7、readdleDocs。。本来以为这个才能看word，事实上，有很多都可以。。比如goodreader。所幸good reader显示不出的时候，它能够显示</p>
<p>8、金山快盘。之所以用这个，是因为wps中有个快盘可以存word之类的，所以我可以利用ipad来同步一些资料</p>
<p>9、evernote。。因为，手机上有，电脑上有，所以。。。理所当然喽。</p>]]></description>
			<link>http://www.neatstudio.com/show-1443-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2010-08-28 22:02</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1442-1.shtml</guid>
			<title>杂烩，附招聘信息</title>
			<author>gouki</author>
			<description><![CDATA[<p>项目中用到了memcached，类文件是不知道谁找来的MemcacheWrapper，其中有一个方法是namespace()，在正式机上跑的没问题，但是测试机上却老是显示语法有误，说是T_STRING没有正确结尾。开始的时候以为是文件编码导致，但仔细一看，原来是这个namespace名称，但为什么正式机上没问题呢？翻开手册才知道，这个名词是从5.3才开始变成关键字的。这让我想起了一些其他的名称，比如use,goto,import等 。自从命名空间开始后，很多人都认为import会变成关键字，但结果还是采用了use作为关键字。</p>
<p>因此，在写代码的时候，可以看一下PHP附录的保留关键字等。</p>
<p>-------------------------------</p>
<p>一号店，是11在群里说的，说是这个网店吸引了风投，但我看了看，没有什么特别的地方，连京东都可以卖非电器类产品了，这类网站那怎么赢利呢？事实上华联等都有网站，而且送货费也不贵，所以，随便看看喽。。观望一下</p>
<p>-------------------------------</p>
<p>最后，给自己现在的单位进行一下招聘。</p>
<p>条件我也不多说了，总之是PHP方面的人才，一些附加条件我也就多说了，什么精通这个精通那个的。</p>
<p>只有几个条件：1年PHP开发经验的2名，2年+开发经验的2名。1年左右经验的，最基本的CRUD要会，顺便熟悉康盛的系统为佳。2年+的，需要有独立做项目的经验，能够根据需求独立完成项目，当然也不希望是算盘珠一样，一定要有自己的想法才行。</p>
<p>然后就是大家都要求的，性格开朗，有团队经验犹佳之类。那句能够承受加班压力的我就不写了，项目一般不会要求加班，只希望在工作时间把任务完成，这是最佳的。要加班的话，也就是上线前几天和上线后几天，可能会有加班情况出现，但这个，其实大家都懂的吧。</p>
<p>请身在上海，并有意愿从事PHP和已经从事PHP但想換換岗位的可以联系我。可以留言，也可以QQ我：19129540.</p>]]></description>
			<link>http://www.neatstudio.com/show-1442-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2010-08-27 21:46</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1441-1.shtml</guid>
			<title>月光博客：用dropbox备份网站</title>
			<author>gouki</author>
			<description><![CDATA[<p>DropBox最近又在准备折腾了，理由其实不算太充分，事实上，在资料方面，我一直是在用wizExplorer，但是对于文件等，除了QQ的存储，好象没有其他什么的了（当然金山的快盘也行，但不太敢用，因为，以前联想的lenovodata，突然间就成了收费盘，很郁闷的）</p>
<p>Dropbox我在之前也有介绍，也有使用，但就在申请API的第二天，我发现，dropbox再也打不开了，现在嘛，你懂的。。。</p>
<p>主要是我想同步一些目录，和文件，又不是特别大，但是数据比较多，如果用网上的SVN来进行同步，我想，意义也不是特别大。不过，我是有准备将我的服务器慢慢改成svn，因为，它不用备案。有域名就要备案，很繁琐啊。rsynx也可以，但是我需要互动，而不仅仅只是备份</p>
<p>上面是月光的博客：</p>
<p>　　虽然目前从国内访问Dropbox有小小困难，但是从国外访问还是正常的，对于拥有国外Linux虚拟主机的用户，可能会遇到这样的需求，就是如何将国外虚拟主机上的网站备份到Dropbox上，下面我以Dreamhost为例介绍一下备份的方法。<br />
你需要有一个国外的虚拟主机，虚拟主机需要有SSH权限，并能访问外网，符合这样条件的虚拟主机有一些，例如Dreamhost这类主机。<br />
使用SSH帐号登录到你的主机地址，之后执行下面的命令：<br />
<font color="#ff0000">wget -O dropbox.tar.gz http://www.dropbox.com/download/?plat=lnx.x86</font><br />
下载完成文件后，接着，你可以执行下面的命令将其解压缩：<br />
<font color="#ff0000">tar -zxof dropbox.tar.gz</font><br />
接着执行下面的命令将Dropbox程序转移到～目录。<br />
<font color="#ff0000">mv .dropbox-dist ~</font><br />
现在，执行下面的程序即可后台运行Dropbox<br />
<font color="#ff0000">~/.dropbox-dist/dropboxd &amp;</font><br />
第一次执行这个程序的时候，dropboxd会显示一串很长的URL地址，你需要手动在浏览器中执行这个地址，才能将虚拟主机服务器连接到 Dropbox，执行完后，Dropbox的Events中会显示&ldquo;The computer xxx was linked to your account&rdquo;，表明该服务器已经连接好。<br />
这时候，你的根目录下会出现一个Dropbox目录，并会自动下载，你可以使用下面命令进入你的Dropbox目录<br />
<font color="#ff0000">cd ~/Dropbox</font><br />
接着，将你的网站目录通过cp -r命令复制到~/Dropbox目录下，就能实现网站的同步备份了。<br />
如果你想停止运行Dropbox，可以通过下面的命令实现：<br />
<font color="#ff0000">killall dropbox</font><br />
对于Dreamhost用户来说，其实你一退出SSH，dropbox就会自动退出，你要想让dropbox一直运行，要购买价格更高的VPS，或者使用screen命令自动挂着SSH也行。<br />
最后赞一下Dropbox的速度，在国外的主机上执行Dropbox真快的吓人，几个G的文件，不到半个小时就全部下载更新完毕，这和国内完全不是一个速度啊，我昨天在国内同步几个G的文件，至少要花整整两天的时间。<br />
参考文章：<a href="http://wiki.dropbox.com/TipsAndTricks/TextBasedLinuxInstall" target="_blank">How To Install Dropbox In An Entirely Text Based Linux Environment</a></p>
<p>原文来自：http://www.williamlong.info/archives/2222.html</p>]]></description>
			<link>http://www.neatstudio.com/show-1441-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2010-08-26 17:31</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1440-1.shtml</guid>
			<title>杂记：flashchart,ejs,sprintf</title>
			<author>gouki</author>
			<description><![CDATA[<p>在看cnblog的时候，看到一些文章，确实可以记录。再加上工作中也会遇到问题，因此总会选择性的记录。。<br />
<br />
1、flash chart</p>
<p>现在画图的工具越来越多，不再象以前那样用jpgraph了。毕竟没有flash来的方便，而且还能够变化，动态的东西总是让人感觉不错。其实chart这东西，有很多，比如google chart之类的。但flash chart的话，常用的也就那么几个：open flash chart,fushion chart，还有一个Aw chart（ 这个名字记不清了，只知道fund123.com【多来米】就是用的这个）。open呢。。很多人用，但模版一般般，不细细研究的话，做出来的Flash总感觉不好看。其他的两个挺不错，功能更加强大，不过好象都是免费版会有LOGO浮在上面（以前我就解决过这个问题，请看：<a href="../../../show-21-1.shtml">如何用DIV挡住SWF？</a>）</p>
<p>博客园的文章是把open和fusion的一些参数进行了分析，可以看：<a href="http://www.cnblogs.com/xiaogangqq123/archive/2010/08/25/1808290.html" target="_blank" class="entry-title-link">open-flash-chart 和 FusionCharts Free 探究</a>【好象博客园今天坏了？】，整理了一些Fusion的参数：网上整理了一些FCF的常用属性:<br />
<strong>功能特性</strong><br />
animation 是否动画显示数据，默认为1(True)<br />
showNames 是否显示横向坐标轴(x轴)标签名称<br />
rotateNames 是否旋转显示标签，默认为0(False):横向显示<br />
showValues 是否在图表显示对应的数据值，默认为1(True)<br />
yAxisMinValue 指定纵轴(y轴)最小值，数字<br />
yAxisMaxValue 指定纵轴(y轴)最小值，数字<br />
showLimits 是否显示图表限值(y轴最大、最小值)，默认为1(True)<br />
<strong>图表标题和轴名称</strong><br />
caption 图表主标题<br />
subCaption 图表副标题<br />
xAxisName 横向坐标轴(x轴)名称<br />
yAxisName 纵向坐标轴(y轴)名称<br />
<strong>图表和画布的样式</strong><br />
bgColor 图表背景色，6位16进制颜色值<br />
canvasBgColor 画布背景色，6位16进制颜色值<br />
canvasBgAlpha 画布透明度，[0-100]<br />
canvasBorderColor 画布边框颜色，6位16进制颜色值<br />
canvasBorderThickness 画布边框厚度，[0-100]<br />
shadowAlpha 投影透明度，[0-100]<br />
showLegend 是否显示系列名，默认为1(True)<br />
<strong>字体属性</strong><br />
baseFont 图表字体样式<br />
baseFontSize 图表字体大小<br />
baseFontColor 图表字体颜色，6位16进制颜色值<br />
outCnvBaseFont 图表画布以外的字体样式<br />
outCnvBaseFontSize 图表画布以外的字体大小<br />
outCnvBaseFontColor 图表画布以外的字体颜色，6位16进制颜色值<br />
<strong>分区线和网格</strong><br />
numDivLines 画布内部水平分区线条数，数字<br />
divLineColor 水平分区线颜色，6位16进制颜色值<br />
divLineThickness 水平分区线厚度，[1-5]<br />
divLineAlpha 水平分区线透明度，[0-100]<br />
showAlternateHGridColor 是否在横向网格带交替的颜色，默认为0(False)<br />
alternateHGridColor 横向网格带交替的颜色，6位16进制颜色值<br />
alternateHGridAlpha 横向网格带的透明度，[0-100]<br />
showDivLineValues 是否显示Div行的值，默认？？<br />
numVDivLines 画布内部垂直分区线条数，数字<br />
vDivLineColor 垂直分区线颜色，6位16进制颜色值<br />
vDivLineThickness 垂直分区线厚度，[1-5]<br />
vDivLineAlpha 垂直分区线透明度，[0-100]<br />
showAlternateVGridColor 是否在纵向网格带交替的颜色，默认为0(False)<br />
alternateVGridColor 纵向网格带交替的颜色，6位16进制颜色值<br />
alternateVGridAlpha 纵向网格带的透明度，[0-100]<br />
<strong>数字格式</strong><br />
numberPrefix 增加数字前缀<br />
numberSuffix 增加数字后缀 % 为 '%25'<br />
formatNumberScale 是否格式化数字,默认为1(True),自动的给你的数字加上K（千）或M（百万）；若取0,则不加K或M<br />
decimalPrecision 指定小数位的位数，[0-10] 例如：='0' 取整<br />
divLineDecimalPrecision 指定水平分区线的值小数位的位数，[0-10]<br />
limitsDecimalPrecision 指定y轴最大、最小值的小数位的位数，[0-10]<br />
formatNumber 逗号来分隔数字(千位，百万位),默认为1(True)；若取0,则不加分隔符<br />
decimalSeparator 指定小数分隔符,默认为'.'<br />
thousandSeparator 指定千分位分隔符,默认为','<br />
Tool-tip/Hover标题<br />
showhovercap 是否显示悬停说明框，默认为1(True)<br />
hoverCapBgColor 悬停说明框背景色，6位16进制颜色值<br />
hoverCapBorderColor 悬停说明框边框颜色，6位16进制颜色值<br />
hoverCapSepChar 指定悬停说明框内值与值之间分隔符,默认为','<br />
<strong>折线图的参数</strong><br />
lineThickness 折线的厚度<br />
anchorRadius 折线节点半径，数字<br />
anchorBgAlpha 折线节点透明度，[0-100]<br />
anchorBgColor 折线节点填充颜色，6位16进制颜色值<br />
anchorBorderColor 折线节点边框颜色，6位16进制颜色值<br />
<strong>Set标签使用的参数</strong><br />
value 数据值<br />
color 颜色<br />
link 链接（本窗口打开[Url]，新窗口打开[n-Url]，调用JS函数[JavaScript:函数]）<br />
name 横向坐标轴标签名称&nbsp;</p>
<p>事实上，官方例子的xml里面都有注释，只是是英文版而已</p>
<p>2、ejs，也就是上次说的司徒正美的javascript模版引擎，一下出0.3版了，<a href="http://www.cnblogs.com/rubylouvre/archive/2010/08/25/1807789.html" target="_blank" class="entry-title-link">javascript模板系统 ejs v3</a>，由于已经介绍过，不再介绍。</p>
<p>3、javascript的参数是可变的，因此也可以利用这个功能来写一些类似于重构的代码，但这里的例子是类似于PHP的sprintf，可以参考一下：<a href="http://www.cnblogs.com/jeffwongishandsome/archive/2010/08/21/1805424.html" target="_blank" class="entry-title-link">javascript通过arguments实现string.format函数</a>，PHP还有一个vsprintf，如果看好了这篇，事实上，你也可以尝试模似vsprintf了。</p>
<p>4、最后，来一段这个<a href="http://www.cnblogs.com/JoinZhang/archive/2010/08/21/1805393.html" target="_blank" class="entry-title-link">分享一封拒绝老板下班时间安排工作的邮件</a>，毕竟现在这个年头加班已经成了家长便饭了吧？是主动提出还是被动加班？这封邮件不错，但很可能只适合国外。国内？不加班，你走人好了。。</p>]]></description>
			<link>http://www.neatstudio.com/show-1440-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2010-08-26 09:28</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1439-1.shtml</guid>
			<title>意外：Editplus可以查看16进制了？</title>
			<author>gouki</author>
			<description><![CDATA[<p>众所周知，Editplus是不支持查看16进制的文件的，那可是ultraEdit的特长。</p>
<p>因此，上午有人在QQ群里问Editplus是否支持16进制查看的时候，我毫不犹豫的说不支持，但下午，我在使用Editplus的时候，突然发现了工具栏上有个图标：</p>
<p><a href="http://www.neatstudio.com/attachment.php?id=681" target="_blank"><img src="http://www.neatstudio.com/attachments//date_201008/aa9256c1231cd2872d85cf272b7621bf.jpg" border="0" alt="大小: 3.82 K&#13;尺寸: 97 x 73&#13;浏览: 8 次&#13;点击打开新窗口浏览全图" width="97" height="73" /></a><img alt="" src="file:///y:/Temp/moz-screenshot.png" /></p>
<p>Hx？16进制？于是乎随便打开一个文件，并点击一下。。结果真的出来了</p>
<p>文件内容如下：</p>
<p><a href="http://www.neatstudio.com/attachment.php?id=682" target="_blank"><img src="http://www.neatstudio.com/attachments//date_201008/100f4ef6300c1627493df742d6600494.jpg" border="0" alt="大小: 9.18 K&#13;尺寸: 230 x 90&#13;浏览: 8 次&#13;点击打开新窗口浏览全图" width="230" height="90" /></a></p>
<p>点击Hx图标，显示：</p>
<p><a href="http://www.neatstudio.com/attachment.php?id=683" target="_blank"><img src="http://www.neatstudio.com/attachments/date_201008/thumb_263ac7179d09f990a87eaf7e7666106a.jpg" border="0" alt="大小: 19.69 K&#13;尺寸: 500 x 76&#13;浏览: 9 次&#13;点击打开新窗口浏览全图" width="500" height="76" /></a></p>
<p>看来，我真的落伍了。。打开官网看了一下changelog，果然，就在第一条：</p>
<p><a href="http://www.neatstudio.com/attachment.php?id=684" target="_blank"><img src="http://www.neatstudio.com/attachments//date_201008/01b960e6c6fc0bb2d7c292010e2ed988.jpg" border="0" alt="大小: 14.88 K&#13;尺寸: 343 x 154&#13;浏览: 7 次&#13;点击打开新窗口浏览全图" width="343" height="154" /></a></p>]]></description>
			<link>http://www.neatstudio.com/show-1439-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-3-1.shtml">Software</category>
			<pubDate>2010-08-25 15:50</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1438-1.shtml</guid>
			<title>js模拟php:print_r</title>
			<author>gouki</author>
			<description><![CDATA[<p>在PHP中，我们打印一个数组或者对象的时候，都是用print_r，相对比较直观，可是javascript就不行。翻了翻资料，也看到一些代码的写法。这里是一个简单的处理（不能打印window,document等对象）：</p>
<div class="codeText">
<div class="codeHead">JavaScript代码</div>
<ol class="dp-c" start="1">
    <li class="alt"><span><span class="keyword">function</span><span>&nbsp;print_r(&nbsp;$value&nbsp;){&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>($value.constructor&nbsp;==&nbsp;Array&nbsp;||&nbsp;$value.constructor&nbsp;==&nbsp;Object&nbsp;){&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.write(<span class="string">&quot;&lt;ul&gt;&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">for</span><span>&nbsp;(</span><span class="keyword">var</span><span>&nbsp;$i&nbsp;</span><span class="keyword">in</span><span>&nbsp;$value){&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>($value[$i].constructor&nbsp;==&nbsp;Array&nbsp;||&nbsp;$value[$i].constructor&nbsp;==&nbsp;Object&nbsp;){&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.write(<span class="string">&quot;&lt;li&gt;[&quot;</span><span>+$i+</span><span class="string">&quot;]&nbsp;=&gt;&nbsp;&quot;</span><span>&nbsp;+&nbsp;</span><span class="keyword">typeof</span><span>(&nbsp;$value&nbsp;)&nbsp;+&nbsp;</span><span class="string">&quot;&nbsp;&lt;/li&gt;&lt;ul&gt;&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print_r($value[$i]);&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.write(<span class="string">&quot;&lt;/ul&gt;&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<span class="keyword">else</span><span>{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.write(<span class="string">&quot;&lt;li&gt;[&quot;</span><span>+$i+</span><span class="string">&quot;]&nbsp;=&gt;&nbsp;&quot;</span><span>&nbsp;+&nbsp;$value[$i]&nbsp;+&nbsp;</span><span class="string">&quot;&lt;/li&gt;&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.write(<span class="string">&quot;&lt;/ul&gt;&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>}&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="keyword">var</span><span>&nbsp;s&nbsp;=&nbsp;{};&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>s.i&nbsp;=&nbsp;<span class="string">'123'</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>s.o&nbsp;=&nbsp;{};&nbsp;&nbsp;</span></li>
    <li class="alt"><span>s.o.test&nbsp;=&nbsp;<span class="string">'tt'</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>print_r(s);&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>&nbsp;</p>
<p>然后看了一下phpjs.org，它上面的print_r就比较复杂了。。。</p>
<div class="codeText">
<div class="codeHead">JavaScript代码</div>
<ol class="dp-c" start="1">
    <li class="alt"><span><span class="keyword">function</span><span>&nbsp;print_r&nbsp;(array,&nbsp;return_val)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//&nbsp;Prints&nbsp;out&nbsp;or&nbsp;returns&nbsp;information&nbsp;about&nbsp;the&nbsp;specified&nbsp;variable&nbsp;&nbsp;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//&nbsp;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//&nbsp;version:&nbsp;1008.1718</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//&nbsp;discuss&nbsp;at:&nbsp;http://phpjs.org/functions/print_r&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;+&nbsp;&nbsp;&nbsp;original&nbsp;by:&nbsp;Michael&nbsp;White&nbsp;(http://getsprink.com)</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//&nbsp;+&nbsp;&nbsp;&nbsp;improved&nbsp;by:&nbsp;Ben&nbsp;Bryan</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//&nbsp;+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input&nbsp;by:&nbsp;Brett&nbsp;Zamir&nbsp;(http://brett-zamir.me)</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//&nbsp;+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;improved&nbsp;by:&nbsp;Brett&nbsp;Zamir&nbsp;(http://brett-zamir.me)</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//&nbsp;+&nbsp;&nbsp;&nbsp;improved&nbsp;by:&nbsp;Kevin&nbsp;van&nbsp;Zonneveld&nbsp;(http://kevin.vanzonneveld.net)&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp;depends&nbsp;on:&nbsp;echo</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;example&nbsp;1:&nbsp;print_r(1,&nbsp;true);</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returns&nbsp;1:&nbsp;1</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span>&nbsp;output&nbsp;=&nbsp;</span><span class="string">&quot;&quot;</span><span>,&nbsp;pad_char&nbsp;=&nbsp;</span><span class="string">&quot;&nbsp;&quot;</span><span>,&nbsp;pad_val&nbsp;=&nbsp;4,&nbsp;d&nbsp;=&nbsp;</span><span class="keyword">this</span><span>.window.document;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">var</span><span>&nbsp;getFuncName&nbsp;=&nbsp;</span><span class="keyword">function</span><span>&nbsp;(fn)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span>&nbsp;name&nbsp;=&nbsp;(/\W*</span><span class="keyword">function</span><span>\s+([\w\$]+)\s*\(/).exec(fn);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(!name)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;</span><span class="string">'(Anonymous)'</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;name[1];&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span>&nbsp;repeat_char&nbsp;=&nbsp;</span><span class="keyword">function</span><span>&nbsp;(len,&nbsp;pad_char)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span>&nbsp;str&nbsp;=&nbsp;</span><span class="string">&quot;&quot;</span><span>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">for</span><span>&nbsp;(</span><span class="keyword">var</span><span>&nbsp;i=0;&nbsp;i&nbsp;&lt;&nbsp;len;&nbsp;i++)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str&nbsp;+=&nbsp;pad_char;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;str;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span>&nbsp;formatArray&nbsp;=&nbsp;</span><span class="keyword">function</span><span>&nbsp;(obj,&nbsp;cur_depth,&nbsp;pad_val,&nbsp;pad_char)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(cur_depth&nbsp;&gt;&nbsp;0)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur_depth++;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span>&nbsp;base_pad&nbsp;=&nbsp;repeat_char(pad_val*cur_depth,&nbsp;pad_char);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span>&nbsp;thick_pad&nbsp;=&nbsp;repeat_char(pad_val*(cur_depth+1),&nbsp;pad_char);&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span>&nbsp;str&nbsp;=&nbsp;</span><span class="string">&quot;&quot;</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(</span><span class="keyword">typeof</span><span>&nbsp;obj&nbsp;===&nbsp;</span><span class="string">'object'</span><span>&nbsp;&amp;&amp;&nbsp;obj&nbsp;!==&nbsp;</span><span class="keyword">null</span><span>&nbsp;&amp;&amp;&nbsp;obj.constructor&nbsp;&amp;&amp;&nbsp;getFuncName(obj.constructor)&nbsp;!==&nbsp;</span><span class="string">'PHPJS_Resource'</span><span>)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str&nbsp;+=&nbsp;<span class="string">&quot;Array\n&quot;</span><span>&nbsp;+&nbsp;base_pad&nbsp;+&nbsp;</span><span class="string">&quot;(\n&quot;</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">for</span><span>&nbsp;(</span><span class="keyword">var</span><span>&nbsp;key&nbsp;</span><span class="keyword">in</span><span>&nbsp;obj)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(obj[key]&nbsp;</span><span class="keyword">instanceof</span><span>&nbsp;Array)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str&nbsp;+=&nbsp;thick_pad&nbsp;+&nbsp;<span class="string">&quot;[&quot;</span><span>+key+</span><span class="string">&quot;]&nbsp;=&gt;&nbsp;&quot;</span><span>+formatArray(obj[key],&nbsp;cur_depth+1,&nbsp;pad_val,&nbsp;pad_char);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span class="keyword">else</span><span>&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str&nbsp;+=&nbsp;thick_pad&nbsp;+&nbsp;<span class="string">&quot;[&quot;</span><span>+key+</span><span class="string">&quot;]&nbsp;=&gt;&nbsp;&quot;</span><span>&nbsp;+&nbsp;obj[key]&nbsp;+&nbsp;</span><span class="string">&quot;\n&quot;</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str&nbsp;+=&nbsp;base_pad&nbsp;+&nbsp;<span class="string">&quot;)\n&quot;</span><span>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span class="keyword">else</span><span>&nbsp;</span><span class="keyword">if</span><span>&nbsp;(obj&nbsp;===&nbsp;</span><span class="keyword">null</span><span>&nbsp;||&nbsp;obj&nbsp;===&nbsp;undefined)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str&nbsp;=&nbsp;<span class="string">''</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span class="keyword">else</span><span>&nbsp;{&nbsp;</span><span class="comment">//&nbsp;for&nbsp;our&nbsp;&quot;resource&quot;&nbsp;class</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str&nbsp;=&nbsp;obj.toString();&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;str;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;output&nbsp;=&nbsp;formatArray(array,&nbsp;0,&nbsp;pad_val,&nbsp;pad_char);&nbsp;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(return_val&nbsp;!==&nbsp;</span><span class="keyword">true</span><span>)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(d.body)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">this</span><span>.echo(output);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">else</span><span>&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">try</span><span>&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d&nbsp;=&nbsp;XULDocument;&nbsp;<span class="comment">//&nbsp;We're&nbsp;in&nbsp;XUL,&nbsp;so&nbsp;appending&nbsp;as&nbsp;plain&nbsp;text&nbsp;won't&nbsp;work;&nbsp;trigger&nbsp;an&nbsp;error&nbsp;out&nbsp;of&nbsp;XUL</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">this</span><span>.echo(</span><span class="string">'&lt;pre&nbsp;xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&nbsp;style=&quot;white-space:pre;&quot;&gt;'</span><span>+output+</span><span class="string">'&lt;/pre&gt;'</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">catch</span><span>&nbsp;(e)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">this</span><span>.echo(output);&nbsp;</span><span class="comment">//&nbsp;Outputting&nbsp;as&nbsp;plain&nbsp;text&nbsp;may&nbsp;work&nbsp;in&nbsp;some&nbsp;plain&nbsp;XML</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;</span><span class="keyword">true</span><span>;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span class="keyword">else</span><span>&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;output;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class=""><span>}&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>&nbsp;</p>
<p>果然是没有做不到的事，只有想不到的事呀。。。（上面的phpjs.org的print_r需要echo方法，请到phpjs.org下载）</p>]]></description>
			<link>http://www.neatstudio.com/show-1438-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-2-1.shtml">Javascript</category>
			<pubDate>2010-08-24 14:04</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1437-1.shtml</guid>
			<title>娱乐：盛大锦书只要999元？</title>
			<author>gouki</author>
			<description><![CDATA[<p>终于，盛大今天放出了锦书的价格，多少钱呢？请看图：<br />
<a href="http://www.neatstudio.com/attachment.php?id=680" target="_blank"><img src="http://www.neatstudio.com/attachments//date_201008/6775082d6f418c296deb0dc23e4b7728.jpg" border="0" alt="大小: 23.92 K&#13;尺寸: 346 x 273&#13;浏览: 11 次&#13;点击打开新窗口浏览全图" width="346" height="273" /></a><br />
如此说来，那些抢先锦书的朋友就真的是欲哭无泪了。首先花了998，其次，还往帐户里充值50元。算下来比正式版还贵啊。</p>
<p>事实上，我本来是准备买的，但由于群友的实际案例，我放弃了。锦书我想着，使用android系统，对于一些PDF之类的，应该支持也是不错的呀。但事实上锦书却是只支持自己的格式，其他所谓的支持是用软件把它们转换成盛大的格式（转换速度慢，兼容性差，遇到有图片的PDF等还不支持）</p>
<p>一下子，心就哇凉哇凉的。幸好，我没有买，否则看到这个价格，我的心更加凉了。</p>]]></description>
			<link>http://www.neatstudio.com/show-1437-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2010-08-23 12:16</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1436-1.shtml</guid>
			<title>javascript模版系统</title>
			<author>gouki</author>
			<description><![CDATA[<p>用javascript做模版的话，说来也算是比较方便的，特别是对于PHP开发来说，只要扔一个json数组过来。然后剩下的就可以让javascript来完成了。<br />
搜索一下jQuery的plugin，可以找到大约5~6个模版程序。好象用的比较多的还是jTemplate，上一次司徒正美用javascript写了一个简单的例子，这次又写了一个比较详细的，说是v2，有兴趣的朋友可以尝试一下。。<br />
--start--司徒正美认为模版要处理复杂的玩意，所以写的功能就强大了。<br />
本版本主要是对原模板系统进行提速，去掉消耗巨大的辅助函数。本来想用它与John Resig的 Micro-Templating比较一下速度，发现对方无法处理复杂的模板，残念。</p>
<div class="codeText">
<div class="codeHead">JavaScript代码</div>
<ol class="dp-c" start="1">
    <li class="alt"><span><span class="comment">//司徒正美&nbsp;javascript&nbsp;template&nbsp;-&nbsp;http://www.cnblogs.com/rubylouvre/&nbsp;-&nbsp;MIT&nbsp;Licensed</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<span class="keyword">function</span><span>&nbsp;()&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>(!String.prototype.trim){&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String.prototype.trim&nbsp;=&nbsp;<span class="keyword">function</span><span>(str)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;</span><span class="keyword">this</span><span>.replace(/^[\s\xa0]+|[\s\xa0]+$/g,&nbsp;</span><span class="string">''</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span>&nbsp;dom&nbsp;=&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;quote:&nbsp;<span class="keyword">function</span><span>&nbsp;(str)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str&nbsp;=&nbsp;str.replace(/[\x00-\x1f\\]/g,&nbsp;<span class="keyword">function</span><span>&nbsp;(chr)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span>&nbsp;special&nbsp;=&nbsp;metaObject[chr];&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;special&nbsp;?&nbsp;special&nbsp;:&nbsp;</span><span class="string">'\\u'</span><span>&nbsp;+&nbsp;(</span><span class="string">'0000'</span><span>&nbsp;+&nbsp;chr.charCodeAt(0).toString(16)).slice(-4)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;</span><span class="string">'&quot;'</span><span>&nbsp;+&nbsp;str.replace(/&quot;/g,&nbsp;</span><span class="string">'\\&quot;'</span><span>)&nbsp;+&nbsp;</span><span class="string">'&quot;'</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;metaObject&nbsp;=&nbsp;{&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">'\b'</span><span>:&nbsp;</span><span class="string">'\\b'</span><span>,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">'\t'</span><span>:&nbsp;</span><span class="string">'\\t'</span><span>,&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">'\n'</span><span>:&nbsp;</span><span class="string">'\\n'</span><span>,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">'\f'</span><span>:&nbsp;</span><span class="string">'\\f'</span><span>,&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">'\r'</span><span>:&nbsp;</span><span class="string">'\\r'</span><span>,&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">'\\':&nbsp;'</span><span>\\\\</span><span class="string">'</span>&nbsp;</span></li>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},</span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parser&nbsp;=&nbsp;document.createElement(&quot;div&quot;),</span>&nbsp;</span></li>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;startOfHTML&nbsp;=&nbsp;&quot;\t__views.push(&quot;,</span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;endOfHTML&nbsp;=&nbsp;&quot;);\n&quot;;</span>&nbsp;</span></li>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//onsite，可选，Boolean，是否就地替换掉模板容器，默认true，如果为false，则返回一个文档碎片，交由用户自己插入到需要的地方</span>&nbsp;</span></li>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dom.ejs&nbsp;=&nbsp;function&nbsp;(obj)&nbsp;{</span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;onsite&nbsp;=&nbsp;obj.onsite&nbsp;===&nbsp;void&nbsp;0&nbsp;,</span>&nbsp;</span></li>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;left&nbsp;=&nbsp;obj.left&nbsp;||&nbsp;&quot;&lt;%&quot;,</span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;right&nbsp;=obj.right&nbsp;||&nbsp;&quot;%&gt;&quot;,</span>&nbsp;</span></li>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;selector&nbsp;=&nbsp;obj.selector,</span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isLeft&nbsp;=&nbsp;true,</span>&nbsp;</span></li>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buff&nbsp;=&nbsp;[&quot;var&nbsp;__views&nbsp;=&nbsp;[];\n&quot;],</span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fragment&nbsp;=&nbsp;document.createDocumentFragment(),</span>&nbsp;</span></li>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;el&nbsp;=&nbsp;document.getElementById(selector),</span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ejs&nbsp;=&nbsp;dom.ejs;</span>&nbsp;</span></li>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!el)&nbsp;throw&nbsp;&quot;找不到目标元素&quot;;</span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;str&nbsp;=&nbsp;el.text.trim();</span>&nbsp;</span></li>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!ejs[selector]){</span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(str.length){</span>&nbsp;</span></li>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;condition&nbsp;=&nbsp;isLeft&nbsp;?&nbsp;left&nbsp;:right;</span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;index&nbsp;=&nbsp;str.indexOf(condition);</span>&nbsp;</span></li>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(index&nbsp;!==&nbsp;-1){//取左边</span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;text&nbsp;=&nbsp;str.slice(0,index);</span>&nbsp;</span></li>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(isLeft){</span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buff.push(startOfHTML,&nbsp;dom.quote(text.trim()),&nbsp;endOfHTML);</span>&nbsp;</span></li>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{</span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch&nbsp;(text.charAt(0))&nbsp;{</span>&nbsp;</span></li>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;&quot;#&quot;://处理注释</span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</span>&nbsp;</span></li>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;&quot;=&quot;://处理后台返回的变量（输出到页面的);</span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buff.push(startOfHTML,&nbsp;text.slice(1),&nbsp;endOfHTML)</span>&nbsp;</span></li>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default:</span>&nbsp;</span></li>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buff.push(text,&nbsp;&quot;\n&quot;)</span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};</span>&nbsp;</span></li>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{</span>&nbsp;</span></li>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(isLeft){</span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buff.push(startOfHTML,&nbsp;dom.quote(str),&nbsp;endOfHTML);</span>&nbsp;</span></li>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{</span>&nbsp;</span></li>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;&quot;在字符串{{&nbsp;&quot;+dom.quote(str)+&quot;&nbsp;}}中找不到右界定符&quot;+right</span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span>&nbsp;</span></li>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str&nbsp;=&nbsp;str.slice(index+2).trim();</span>&nbsp;</span></li>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isLeft&nbsp;=&nbsp;!isLeft;</span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span>&nbsp;</span></li>
    <li class=""><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ejs[selector]&nbsp;=&nbsp;new&nbsp;Function(&quot;json&quot;,&nbsp;&quot;with(json){&quot;+buff.join(&quot;&quot;)&nbsp;+&nbsp;'</span><span>};</span><span class="keyword">return</span><span>&nbsp;__views.join(</span><span class="string">&quot;&quot;</span><span>);')&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parser.innerHTML&nbsp;=&nbsp;ejs[selector](obj.json&nbsp;||&nbsp;{});&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">while</span><span>&nbsp;(parser.firstChild)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fragment.appendChild(parser.firstChild)&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;onsite&nbsp;?&nbsp;el.parentNode.replaceChild(fragment,&nbsp;el)&nbsp;:&nbsp;fragment;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.dom&nbsp;=&nbsp;dom;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})();&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>这种使用原生代码写的例子，可以被任何代码所使用，如果你有兴趣也可以看看司徒正美的例子的。原文网址在<a class="entry-title-link" target="_blank" href="http://www.cnblogs.com/rubylouvre/archive/2010/08/22/1805914.html">javascript 模板系统 ejs v2</a>，可以移步一观。</p>]]></description>
			<link>http://www.neatstudio.com/show-1436-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-2-1.shtml">Javascript</category>
			<pubDate>2010-08-22 23:32</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1435-1.shtml</guid>
			<title>了解自己的短板</title>
			<author>gouki</author>
			<description><![CDATA[<p>本文写的很乱，已经是想到什么写什么了。所以无可读性，纯属自己的记录和想法</p>
<p>不管是在生活中也好，工作中也好，其实都会有自己的短板，只有了解自己的短板才能扬长避短，以便更好发挥自己的特长 。如果尽让别人注意你的短板，而一直忽略了你的长板，那你在工作中也就会处处受阻无法正常发挥自己的能力。</p>
<p>什么是你的短板？交流？心态？算法？数据结构？数据库？又或者是其他？好好的了解，对自己的职业生涯也有好处。抛开技术因素，可能更多的就是心理因素了。</p>
<p>得明白自己想要的东西，才能真正获得自己想要的东西。看了一下Fenng写的<a href="http://www.dbanotes.net/jobs/howto_choose_company_style.html" target="_blank" class="entry-title-link">去大公司还是去小公司工作？</a>，就是说了那种迷惘的心态。</p>
<p>去大公司还是去小公司，自己究竟是想干什么 ，为了钱，还是为了技术？</p>
<p>所以我现在明白了自己想要做什么 ，才会想到写这个博客。算是做一个纪录罢</p>]]></description>
			<link>http://www.neatstudio.com/show-1435-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2010-08-21 21:37</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1434-1.shtml</guid>
			<title>Discuz Uchome 小技巧</title>
			<author>gouki</author>
			<description><![CDATA[<p>discuz的ajaxpost功能有点强大，但缺点也很明显，如果ajaxpost提交一个FORM，那么返回的时候只能显示showmessage的内容，而不会主动跳转，因此这里就有一个小技巧 了。。<br />
<br />
比如默认submit按钮这样操作：onclick=&quot;ajaxpost('formid')&quot;;之类的，我们可以先这样。。<br />
onclick=&quot;$('__formid').innerText='';ajaxpost('formid');checkPostResult();&quot;;<br />
含义其实很简单，先把ajaxpost提示信息所在的div内容清空。然后提交。最后，根据返回值来判断。。</p>
<div class="codeText">
<div class="codeHead">JavaScript代码</div>
<ol start="1" class="dp-c">
    <li class="alt"><span><span class="keyword">function</span><span>&nbsp;checkPostResult(){&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span>&nbsp;cid&nbsp;=&nbsp;setInterval(</span><span class="keyword">function</span><span>(){&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>(&nbsp;$(</span><span class="string">'__formid'</span><span>).innerText&nbsp;==&nbsp;</span><span class="string">'success'</span><span>){&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(<span class="string">'提交成功'</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;location.href=<span class="string">'xxxxx.php'</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clearInterval(cid);&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;},1000);&nbsp;&nbsp;</span></li>
    <li class="alt"><span>}&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>这个处理也很简单，为什么是用setInterval和clearInterval，主要是由于ajax是异步操作，如果不用setInterval方法 ，那么在ajaxpost结束的时候，其实提示信息还没有append到提示信息所在的ID里，所以用setInterval方法先延迟然后循环处理最后再结束提示。。。<br />
<br />
clearInterval用的不太对，但短时间内想不到更好的。先这样临时解决喽。</p>]]></description>
			<link>http://www.neatstudio.com/show-1434-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-1-1.shtml">PHP</category>
			<pubDate>2010-08-20 22:33</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1433-1.shtml</guid>
			<title>常用函数：copyToClipboard</title>
			<author>gouki</author>
			<description><![CDATA[<p>COPY文字到剪贴板很方便，我是指在IE下面，而其他的就有点复杂了。firefox下面有安全选项的。所以很多人都采用了flash来实现。如果不计flash，那么下面这个函数就十分有用了，可能是转的过多了，也不记得来源是哪里了。如果是原作者看到，请提示一下，一定加上您的链接。</p>
<div class="codeText">
<div class="codeHead">JavaScript代码</div>
<ol start="1" class="dp-c">
    <li class="alt"><span><span class="keyword">function</span><span>&nbsp;copyToClipboard(txt)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>(window.clipboardData)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.clipboardData.clearData();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.clipboardData.setData(<span class="string">&quot;Text&quot;</span><span>,&nbsp;txt);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span class="keyword">else</span><span>&nbsp;</span><span class="keyword">if</span><span>(navigator.userAgent.indexOf(</span><span class="string">&quot;Opera&quot;</span><span>)&nbsp;!=&nbsp;-1)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.location&nbsp;=&nbsp;txt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span class="keyword">else</span><span>&nbsp;</span><span class="keyword">if</span><span>&nbsp;(window.netscape)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">try</span><span>&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;netscape.security.PrivilegeManager.enablePrivilege(<span class="string">&quot;UniversalXPConnect&quot;</span><span>);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span class="keyword">catch</span><span>&nbsp;(e)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(<span class="string">&quot;被浏览器拒绝！\n请在浏览器地址栏输入'about:config'并回车\n然后将'signed.applets.codebase_principal_support'设置为'true'&quot;</span><span>);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span>&nbsp;clip&nbsp;=&nbsp;Components.classes[</span><span class="string">'@mozilla.org/widget/clipboard;1'</span><span>].createInstance(Components.interfaces.nsIClipboard);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(!clip)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span>&nbsp;trans&nbsp;=&nbsp;Components.classes[</span><span class="string">'@mozilla.org/widget/transferable;1'</span><span>].createInstance(Components.interfaces.nsITransferable);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(!trans)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;trans.addDataFlavor(<span class="string">'text/unicode'</span><span>);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span>&nbsp;str&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;Object();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span>&nbsp;len&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;Object();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span>&nbsp;str&nbsp;=&nbsp;Components.classes[</span><span class="string">&quot;@mozilla.org/supports-string;1&quot;</span><span>].createInstance(Components.interfaces.nsISupportsString);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span>&nbsp;copytext&nbsp;=&nbsp;txt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str.data&nbsp;=&nbsp;copytext;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;trans.setTransferData(<span class="string">&quot;text/unicode&quot;</span><span>,str,copytext.length*2);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span>&nbsp;clipid&nbsp;=&nbsp;Components.interfaces.nsIClipboard;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(!clip)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;</span><span class="keyword">false</span><span>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clip.setData(trans,<span class="keyword">null</span><span>,clipid.kGlobalClipboard);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(<span class="string">&quot;复制成功！&quot;</span><span>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
</ol>
</div>]]></description>
			<link>http://www.neatstudio.com/show-1433-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-2-1.shtml">Javascript</category>
			<pubDate>2010-08-18 23:56</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1432-1.shtml</guid>
			<title>资料：rsync</title>
			<author>gouki</author>
			<description><![CDATA[<p>服务器同步，最简单的恐怕就是rsync了。如果是同一机房，如果是ubuntu，那就真的是灰常灰常简单啊。apt-get install rsync就over了。当然配置还是需要自己来的。<br />
找的资料居然是百度百科的。好郁闷啊。不过。。。还是COPY一份了（话又说回来，现在百度百科在人肉整理+金钱攻势下，资料也真的是越来越完善了。只是不知道啥时候会把RFC也帮忙全部汉化一下吧。比如大家关心的tcp/ip,http协 议等，是不是也该整个汉化的版本之类的？【或许已经有了只是没有注意过罢了】）<br />
原文：http://baike.baidu.com/view/1183189.htm<br />
rsync是类unix系统下的数据镜像备份工具，从软件的命名上就可以看出来了&mdash;&mdash;remote sync。它的特性如下：</p>
<ol>
    <li>可以镜像保存整个目录树和文件系统。</li>
    <li>可以很容易做到保持原来文件的权限、时间、软硬链接等等。</li>
    <li>无须特殊权限即可安装。</li>
    <li>优化的流程，文件传输效率高。</li>
    <li>可以使用rcp、ssh等方式来传输文件，当然也可以通过直接的socket连接。</li>
    <li>支持匿名传输，以方便进行网站镜象。</li>
</ol>
<p><strong>软件下载<br />
</strong>rysnc的主页地址为：http://rsync.samba.org/ ，目前最新版本为3.0.7。可以选择从原始网站下载：http://rsync.samba.org/ftp/rsync/。<br />
<strong>安装</strong><br />
Ubuntu安装: sudo apt-get install rsync<br />
RedHat: yum install rsync<br />
编译安装<br />
rsync的编译安装非常简单，只需要以下简单的几步：<br />
[root@www rsync-2.4.6]# ./configure<br />
[root@www rsync-2.4.6]# make<br />
[root@www rsync-2.4.6]# make install<br />
但是需要注意的是必须在服务器A和B上都安装rsync，其中A服务器上是以服务器模式运行rsync，而B上则以客户端方式运行rsync。这样在web服务器A上运行rsync守护进程，在B上定时运行客户程序来备份web服务器A上需要备份的内容。<br />
<strong>rsyncd.conf</strong><br />
rsync服务器的配置文件是rsyncd.conf.<br />
以下是一个rsyncd.conf的样本:<br />
# Distributed under the terms ofthe GNU General Public License v2<br />
# Minimal configuration file for rsyncdaemon<br />
# See rsync(1) and rsyncd.conf(5) man pagesfor help<br />
# This line is required by the/etc/init.d/rsyncd script<br />
pid file = /var/run/rsyncd.pid<br />
port = 873<br />
uid = root<br />
gid = root<br />
use chroot = yes<br />
read only = yes<br />
max connections = 5<br />
#This will give you a separate log file<br />
#log file = /var/log/rsync.log<br />
log format = %t %a %m %f %b<br />
syslog facility = local3<br />
timeout = 300<br />
[test]<br />
path = /home/nemo<br />
list=yes<br />
ignore errors<br />
auth users = root, nemo<br />
secrets file = /etc/rsyncd/rsyncd.secrets<br />
comment = linuxsir home<br />
exclude = tmp/<br />
各个参数具体含义参见man rsyncd.conf<br />
<strong>服务器端启动:</strong><br />
usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf<br />
可能需要root权限运行.<br />
/etc/rsyncd/rsyncd.conf 是你刚才编辑的rsyncd.conf的位置.<br />
也可以在/etc/rc.d/rc.local里加入让系统自动启动等.<br />
<strong>客户端同步:</strong><br />
rsync -参数 用户名@同步服务器的IP::rsyncd.conf中那个方括号里的内容 本地存放路径 如:<br />
rsync -avzP nemo@192.168.10.1::nemo /backup<br />
说明：<br />
-a 参数，相当于-rlptgoD，-r 是递归 -l 是链接文件，意思是拷贝链接文件；-p 表示保持文件原有权限；-t 保持文件原有时间；-g 保持文件原有用户组；-o 保持文件原有属主；-D 相当于块设备文件；<br />
-z 传输时压缩；<br />
-P 传输进度；<br />
-v 传输时的进度等信息，和-P有点关系，自己试试。可以看文档；</p>
<dl id="viewExtRead"><dt>扩展阅读：&nbsp;</dt></dl>
<ol>
    <li><a target="_blank" href="http://chenzhuo.blog.51cto.com/150592/269530">http://chenzhuo.blog.51cto.com/150592/269530</a> rsync配置实例</li>
</ol>
<p>现在，windows下面也有rsync客户端了。。。</p>]]></description>
			<link>http://www.neatstudio.com/show-1432-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-13-1.shtml">Linux</category>
			<pubDate>2010-08-17 20:40</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1431-1.shtml</guid>
			<title>Scrum硬币游戏</title>
			<author>gouki</author>
			<description><![CDATA[<p>上次我在 <a href="../../../show-1418-1.shtml">ThinkInLamp聚会记录</a> 中提到了一个硬币游戏，当时也是Daniel Teng带着大家做这个游戏的。</p>
<p>只是我当时在博客里写的也是很简单，没有完全写出这个游戏的精髓。</p>
<p>内容如下：</p>
<p><strong>分组</strong>：需要将参加者分组，每组8-10人。每一组围着一个桌子站好。每一组需要确定每个人的角色，需要一个President，一个Customer。另外是几对Manager-Worker去模拟几个部门。</p>
<p><strong>材料</strong>：为每一组准备硬币（1元N枚，5毛N枚，1毛N枚），另备每组额外准备额外几枚1元硬币（用于第6轮）；白板纸每组两张；水笔每组一支；计时器（可以使用手机的计时功能）。&nbsp;</p>
<p><strong>游戏前准备</strong>：需要把游戏规则沟通给大家。具体规则如下：</p>
<p>工作：Worker用手翻硬币，1次只翻1个；Manager/Customer/President的任务是计时，具体如下：</p>
<p>计 时：Manager需要记录他手下的那个员工从开始工作到完成工作的时间长度；Customer需要记录从把硬币交给第一个部门，一直到从最后一个部门收 到第一个硬币的时间（其实也就是从需求到上市时间）；President需要记录从硬币交给第一个部门，到Customer收到最后一个硬币的时间（其实 也就是项目完成的总时间）。</p>
<p>工作规模：每一轮都游戏组织者说明一个任务规模，每个员工在完成指定的规模工作之后才能把工作移交给下一个部门的员工。</p>
<p>记录：每个团队都需要记录每一轮每个部门花费的时间，上市时间以及完成时间；</p>
<p>图表：所有迭代完成后，每个团队需要根据记录的数据画出几个图表：</p>
<ol>
    <li>每个迭代每个部门员工完成工作所花费的总时间的变化图；</li>
    <li>客户记录时间的变化图（也就是上市时间的变化图）；</li>
    <li>President记录时间的变化图（项目完成时间的变化）</li>
</ol>
<p>&nbsp;</p>
<p>其他规则：只用左手</p>
<p>第一轮：指定的工作规模大小是全部硬币，也就是客户一下子把所有的硬币交给第一个部门，第一个部门的员工把所有硬币翻完之后，交给第二个部门，同时每个部门的manager也记录相应的时间。这一轮的目的是让每个人熟悉一下工作，尤其是该怎样记录时间。</p>
<p>第二轮：规模也是跟上一轮一样，重新运行一遍</p>
<p>第三轮：规模减半或者变为1/3，就交给下个部门。需要注意的是，每个部门的manager记录的是从本部门的员工收到第一个硬币，一直到完成所有硬币的总时间。</p>
<p>第四轮：解放生产力。可以使用双手，规模跟上一轮一样。</p>
<p>第五轮：规模降到1，也就是上一个部门每完成一个硬币，立刻交给下一个部门继续处理。</p>
<p>第六轮： 规模仍然是1，但是设定了完成时间，比如20秒，然后目标是在20秒之内生产出尽可能多的价值，因为每个硬币的价值是不一样的。开始几秒钟之后，我有给了每个团队额外的几个1元硬币。</p>
<p><strong>反思</strong></p>
<ul>
    <li>随着规模的减小，上市时间大大缩短。</li>
    <li>随着规模的减小，项目完成时间会大大缩短。</li>
    <li>随着规模的减小，员工的稼动律会大大减小。因此没有必要去过分关注每个员工的实际工作量，局部工作量的优化并不会带来全局优化。</li>
    <li>任务的规模时候，开发的波动(Disburbance)会比较小，开发速度会比较快，形成了&ldquo;流&rdquo;。</li>
    <li>随着规模的减小，瓶颈现象逐渐消失，但在规模较大的时候，瓶颈现象十分明显。</li>
    <li>开发的时候应该关注的生产周期(Cycle time)，而不是每个员工的稼动律。</li>
    <li>随着规模的减小，在整个开发中的排队(Queue)会有显著的减小，等待也会减少。参见我的另一篇博客&ldquo;<a href="http://www.cnblogs.com/tengzy/archive/2010/05/10/1732178.html">浅谈排队</a>&rdquo;</li>
    <li>在最后一轮中，通常用很短的时间内就可以给客户带来很多的价值</li>
    <li>应该关注的是给客户价值，而不是要遵从最初的计划。</li>
</ul>
<p>注：本游戏根据Peter Stevens和Tommy Norman的Scrum Penny Game做了部分修改而设计。</p>
<p>----EOF----</p>
<p>当然，我写的也不详细，图片我就没有上传，如果你要看更详细的内容，还是建议查看deniel的博客，网址是：http://www.cnblogs.com/tengzy/archive/2010/08/15/1800272.html，更详细。</p>]]></description>
			<link>http://www.neatstudio.com/show-1431-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2010-08-17 00:14</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1430-1.shtml</guid>
			<title>dedecms 笔记:标签</title>
			<author>gouki</author>
			<description><![CDATA[<p>资料均从网上收集，然后作了整理。。</p>
<p><em>注意，由于dedecms的模版TAG功能，其实是类似于XML，所以在使用的时候，一定要象XML一样正确闭合，否则，该区块将不变解析</em></p>
<p>一般来说，我们所使用的DEDECMS模板代码样式有如下几种：</p>
<div class="codeText">
<div class="codeHead">XML/HTML代码</div>
<ol start="1" class="dp-xml">
    <li class="alt"><span><span>{dede:标记名称&nbsp;属性='值'/}&nbsp;&nbsp;</span></span></li>
    <li class=""><span>{dede:标记名称&nbsp;属性='值'}&nbsp;{/dede:标记名称}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>{dede:标记名称&nbsp;属性='值'}&nbsp;自定义样式模板(InnerText)，即底层模板&nbsp;{/dede:标记名称}</span></li>
    <li class="alt">如果使用带底层模板的标记，必须严格用{dede:标记名称 属性='值'}{/dede:标记名称} 这种格式，否则会报错。</li>
</ol>
</div>
<p>1、标记通用特性<br />
(1) 短标记：<br />
{dede:tagname.name/} 等同于 {dede:tagname name='' /}</p>
<p>{dede:global.name/}&nbsp;&nbsp; 外部变量&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 等同于 &lt;?php echo $name; ?&gt; 【其实这里应该是全局变量】<br />
{dede:var.name/}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var数组&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 等同于 &lt;?php echo $_vars['name']; ?&gt;<br />
{dede:field.name/}&nbsp;&nbsp;&nbsp; field数组&nbsp;&nbsp;&nbsp;&nbsp; 等同于 &lt;?php echo $fields['name']; ?&gt;<br />
{dede:cfg.name/}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 系统配置变量 等同于 &lt;?php echo $cfg_name; ?&gt;【cfg已经是全局了，所以这个标签其实也可以写成{dede:global.cfg_name/}】</p>
<p><br />
(2) 块标记：<br />
{dede:tagname}<br />
循环代码:<br />
{/dede:tagname}<br />
<br />
(3)include 语法：<br />
{dede:include file=''/}<br />
{dede:include filename=''/}<br />
{dede:include file='文件名称' ismake='是否为dede板块模板(yes/no)'/}<br />
<em>例如： {dede:include filename=&quot;head.htm&quot;/}<br />
对文件的搜索路径为顺序为：绝对路径、include文件夹，CMS安装目录，CMS主模板目录</em></p>
<p>2、函数和PHP语法</p>
<p>if 条件<br />
仅支持 if ，else ，else 直接用{else}表示,但不支持{else if}这样的语法 ，一般建议模板中不要使用太复杂的条件语法，如果确实有需要，可以直接使用 php 语法。<br />
<div class="codeText">
<div class="codeHead">XML/HTML代码</div>
<ol start="1" class="dp-xml">
    <li class="alt"><span><span>{dede:if&nbsp;条件}&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;a-block&nbsp;&nbsp;</span></li>
    <li class="alt"><span>{else}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;b-block&nbsp;&nbsp;</span></li>
    <li class="alt"><span>{/dede:if}&nbsp;&nbsp;</span></li>
</ol>
</div>
条件中允许使用 var.name 、 global.name 、 field.name、cfg.name 表示相应的变量。<br />
如：<br />
<div class="codeText">
<div class="codeHead">XML/HTML代码</div>
<ol start="1" class="dp-xml">
    <li class="alt"><span><span>{dede:if&nbsp;field.id</span><span class="tag">&gt;</span><span>10&nbsp;}&nbsp;&nbsp;</span></span></li>
    <li class=""><span>{/dede:if}&nbsp;&nbsp;</span></li>
</ol>
</div>
php 代码块:<br />
<div class="codeText">
<div class="codeHead">XML/HTML代码</div>
<ol start="1" class="dp-xml">
    <li class="alt"><span><span>{dede:php&nbsp;&nbsp;</span></span></li>
    <li class=""><span>php&nbsp;代码&nbsp;&nbsp;</span></li>
    <li class="alt"><span>/}&nbsp;&nbsp;</span></li>
</ol>
</div>
或
<div class="codeText">
<div class="codeHead">XML/HTML代码</div>
<ol start="1" class="dp-xml">
    <li class="alt"><span><span>{dede:php}&nbsp;&nbsp;</span></span></li>
    <li class=""><span>php代码&nbsp;&nbsp;</span></li>
    <li class="alt"><span>{/dede:php}&nbsp;&nbsp;</span></li>
</ol>
</div>
......其它还在整理中</p>]]></description>
			<link>http://www.neatstudio.com/show-1430-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-1-1.shtml">PHP</category>
			<pubDate>2010-08-16 11:36</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1429-1.shtml</guid>
			<title>CSS中media标签的作用</title>
			<author>gouki</author>
			<description><![CDATA[<p>在网页中，看到使用CSS的地方，大多数都会有这么一句：</p>
<div class="codeText">
<div class="codeHead">XML/HTML代码</div>
<ol start="1" class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">link</span><span>&nbsp;</span><span class="attribute">rel</span><span>=</span><span class="attribute-value">&quot;stylesheet&quot;</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">&quot;text/css&quot;</span><span>&nbsp;</span><span class="attribute">href</span><span>=</span><span class="attribute-value">&quot;global.css&quot;</span><span>&nbsp;</span><span class="attribute">media</span><span>=</span><span class="attribute-value">&quot;screen&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<p>那么，究竟这个media有什么作用呢？通过查下资料了解到：</p>
<div class="codeText">
<div class="codeHead">XML/HTML代码</div>
<ol start="1" class="dp-xml">
    <li class="alt"><span><span>all--&nbsp;用于所有设备类型&nbsp;&nbsp;</span></span></li>
    <li class=""><span>aural--&nbsp;用于语音和音乐合成器&nbsp;&nbsp;</span></li>
    <li class="alt"><span>braille--&nbsp;用于触觉反馈设备&nbsp;&nbsp;</span></li>
    <li class=""><span>embossed--&nbsp;用于凸点字符（盲文）印刷设备&nbsp;&nbsp;</span></li>
    <li class="alt"><span>handheld--&nbsp;用于小型或手提设备&nbsp;&nbsp;</span></li>
    <li class=""><span>print--&nbsp;用于打印机&nbsp;&nbsp;</span></li>
    <li class="alt"><span>projection--&nbsp;用于投影图像，如幻灯片&nbsp;&nbsp;</span></li>
    <li class=""><span>screen--&nbsp;用于计算机显示器&nbsp;&nbsp;</span></li>
    <li class="alt"><span>tty--&nbsp;用于使用固定间距字符格的设备。如电传打字机和终端&nbsp;&nbsp;</span></li>
    <li class=""><span>tv--&nbsp;用于电视类设备&nbsp;&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>虽然media有10个值，但我们经常看到的也就print,和screen两种。当然也会有没有media标签的情况，这个时候其实就是默认media=&quot;all&quot;。<br />
既然如此，那我们也就相当于了解了，如果你需要打印，那么你在按下打印的时候，系统就会默认调用media=&quot;print&quot;所对应的CSS文件了。也因此这样可以让你更好的整理你的打印页面，比如把一些不需要打印的内容屏蔽掉、优化打印页面（让内容更利于被打印）等等<br />
<br />
虽然我不是前端，但。。了解一下这些内容还是有点用处的。</p>]]></description>
			<link>http://www.neatstudio.com/show-1429-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-2-1.shtml">Javascript</category>
			<pubDate>2010-08-16 11:16</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1428-1.shtml</guid>
			<title>typecho 发布 0.8release版本</title>
			<author>gouki</author>
			<description><![CDATA[<p>算起来，这一个release版本的时间是挺长了。从5月25日到8月15日，跨度也挺大。<br />
下载页面在：http://typecho.org/download，这次更新的内容不多，主要还是一些补丁和BUG的修复吧。<br />
<br />
其实如果你对typecho有意见，你可以到 <a title="Google code下载" href="http://code.google.com/p/typecho/downloads/list">http://code.google.com/p/typecho</a>的issue里进行提问和申请。<br />
顺便说一声，如果你觉得官方的插件太少，你可以直接从SVN里下载全部版本，里面包含了几乎所有的插件。还有一些文档也可以查看<br />
<br />
svn的地址是：svn checkout http://typecho.googlecode.com/svn/trunk/ typecho-read-only<br />
<br />
http://code.google.com/p/typecho/source/list，看这里就可以了解每一个小版本改动了些什么东西。当然一些细小的改动，就没有description了。其实说起来typecho的东西对于很多人来说算是比较复杂的。几乎所有的组件都基于plugin或者widget了，对效率还是会有影响的吧。。。</p>]]></description>
			<link>http://www.neatstudio.com/show-1428-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-1-1.shtml">PHP</category>
			<pubDate>2010-08-16 00:22</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1427-1.shtml</guid>
			<title>关注：jQuery Mobile来了！</title>
			<author>gouki</author>
			<description><![CDATA[<p style="text-align: left;">　　为了让移动设备也能用上jQuery，jQuery开发团队发布了jQuery移动设备版开发项目jQuery Mobile Project（<a href="http://jquerymobile.com/">http://jquerymobile.com</a>）。jQuery Mobile不仅会给主流移动平台带来jQuery核心库，而且会发布一个完整统一的jQuery移动UI框架。</p>
<p style="text-align: left;">　　对于大名鼎鼎的jQuery开发团队来说，当然要让jQuery Mobile支持全球主流的移动平台，而不仅仅是北美流行的移动平台。想要知道jQuery Mobile项目将要做些什么吗？请看<a href="http://jquerymobile.com/strategy/">jQuery移动平台策略</a>；想要知道jQuery Mobile项目将会支持哪些浏览器吗？请看<a href="http://jquerymobile.com/gbs/">Mobile Graded Browser Support</a>。</p>
<p align="left" style="text-align: left;"><a href="http://www.neatstudio.com/attachment.php?id=679" target="_blank"><img src="http://www.neatstudio.com/attachments/date_201008/thumb_c8e44b67f849ec4df12579cdac7e4055.jpg" border="0" alt="大小: 58.04 K&#13;尺寸: 480 x 376&#13;浏览: 26 次&#13;点击打开新窗口浏览全图" width="480" height="376" /></a></p>
<p style="text-align: left;">　　jQuery Mobile开发团队正在紧张工作，准备那些要支持的移动设备并针对这些设备进行测试。他们争取在今年晚些时候发布jQuery Mobile。如果你想为jQuery Mobile提供帮助，请加入jQuery Mobile社区的<a href="http://forum.jquery.com/jquery-mobile">讨论组</a>。</p>
<p style="text-align: left;">　　jQuery Mobile项目已经得到了Palm, Mozilla等移动浏览器厂商的赞助。</p>
<p style="text-align: left;">　　jQuery Mobile开发团队说：&ldquo;能开发这个项目，我们非常兴奋。移动Web太需要一个跨浏览器的框架，让开发人员开发出真正的移动Web网站。我们将尽全力去满足这样的需求。&rdquo;</p>
<p style="text-align: left;">　　编者：移动互联网，挡不住的趋势...</p>
<p style="text-align: left;">　　英文原文：<a href="http://jquerymobile.com/2010/08/announcing-the-jquery-mobile-project/">Announcing the jQuery Mobile Project</a></p>
<p style="text-align: left;">　　<a href="http://www.cnblogs.com/">博客园</a>编译</p>]]></description>
			<link>http://www.neatstudio.com/show-1427-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-2-1.shtml">Javascript</category>
			<pubDate>2010-08-15 14:26</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1426-1.shtml</guid>
			<title>郁闷</title>
			<author>gouki</author>
			<description><![CDATA[<p>昨天，乘着最近比较空，于是选择了回家一次，顺便也可以帮小朋友带点草鸡蛋过来。于是一大早就乘车回家了。然后下午4点40的车回上海。<br />
让我郁闷的事。。回家的车和到上海的车都是在途中空调坏了。然后就是越乘越热。几乎就是坐在蒸笼里。汗是嗒嗒滴啊。。。<br />
说真的，差点中暑，想想自己的运气也真是差呀。<br />
车箱里应该40度左右了。后来开了天窗稍有一点风。哦，也是热风。。。。<br />
所幸的是，自己没有中暑，车上也没有人暈车。总算是值得让人欣慰的。否则，估计全车人都会趴下吧。。</p>]]></description>
			<link>http://www.neatstudio.com/show-1426-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2010-08-14 23:42</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1425-1.shtml</guid>
			<title>dedecms:如何在runphp=yes的标签中使用其他field值</title>
			<author>gouki</author>
			<description><![CDATA[<p>dedecms有强大的TAG自定义功能，但如果你是在runphp=yes的情况下，你无法使用[field]等标签，因为它不解释了（都当成PHP代码了，怎么可能解析呢？）<br />
怎么办？<br />
查了一下google，没有发现解决方法。所以我想了很久想出一个临时性的解决方法，即用全局变量来解决这个问题。。<br />
{dede:php}$GLOBALS['xxoo']=$arc-&gt;Fields['fieldname']{/dede:php}<br />
{dede:field.xxxx runphp=&quot;yes&quot;}@me=&quot;test&quot;.@me.&quot;-test&quot;.$GLOBALS['xxoo'];{/dede:field.xxxx}<br />
即，先开一个PHP的标签，把想赋的值替换给global变量。然后在另外的运行中将field值赋值给他。<br />
<br />
写的乱，不过还是解决了这个问题了。。</p>]]></description>
			<link>http://www.neatstudio.com/show-1425-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-1-1.shtml">PHP</category>
			<pubDate>2010-08-13 22:46</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1424-1.shtml</guid>
			<title>PHP手册</title>
			<author>gouki</author>
			<description><![CDATA[<p>不得不说，PHP的手册已经有很久没有人更新过了。我也没有VC，也没有去尝试编译成CHM过。所幸，乔楚仍然在做这样的事情，细细算来，应该有N年了吧。毛大爷说过，做一件好事并不难，难的是一辈子做好事。虽然到现在为止并没有一辈子，但从第一次编译chm版PHP手册开始到现在，也几乎有3年了。</p>
<p>OK，不说废话，看手册地址。。</p>
<p><font color="red"><strong><font size="2">PHP 手册 （最新评论整合版V0.3，HonestQiao编译于2010-08-12）<br />
<br />
2010演示版，测试地址：<a href="http://www.wapm.cn/phpdocs/php_manual_zh-HonestQiao-20100812-Beta-V0.3.gz" target="_blank"><span href="http://bbs.chinaunix.net/tag.php?name=php" onclick="tagshow(event)" class="t_tag">php</span>_manual_zh-HonestQiao-20100812-Beta-V0.3.gz</a>（下载后如打开无法正常查看，请从鼠标右键查看属性解锁；请使用7Zip打开，<a href="http://sparanoid.com/lab/7z/" target="_blank">7-Zip下载</a>）</font></strong></font></p>
<p><font color="red"><strong><font size="2"><font color="Black">零、更新日志：ChangeLog</font><br />
1. <span href="http://bbs.chinaunix.net/tag.php?name=2008" onclick="tagshow(event)" class="t_tag">2008</span>年3月19日，因官方问题，暂停继续更新<br />
2. 2010年8月5日，2010演示版V0.1提供测试，基本整合最新手册和评论<br />
3. 2010年8月11日，2010演示版V0.2提供测试，样式修改基本完善<br />
4. 2010年8月12日，2010演示版V0.3提供测试，版式完善，加上了CHM导航目录和索引，可供正式使用<br />
<br />
<font color="Black">一、当前问题列表：TODO</font><br />
<font color="Silver">1. CHM左则目录没有目录细节：已处理</font><br />
<font color="Silver">2. CHM左则索引基本没有：已处理</font><br />
3. 评论部分PHP代码没有颜色<br />
<br />
<font color="Black">二、感谢测试（部分人员，其他未列出请见谅）：Thanks</font><br />
<a href="mailto:jayeeliu@gmail.com">jayeeliu@gmail.com</a>、QQ/50753256、QQ/496995561<br />
<br />
<font color="Black">三、说明：More</font><br />
1. 因为属于演示版，所以存在诸多问题，例如可能版式不正确不美观，可能存在乱码，可能有部分内容缺失等！<br />
2. 请协助改进，与<a href="http://docs.php.net/manual/en/index.php" target="_blank">http://docs.php.net/manual/en/index.php</a>对比测试<br />
3. 如有问题，敬请告知，多谢了！<br />
4. 反馈请致信 <a href="mailto:honestqiao@163.com">honestqiao@163.com</a>，标题【PHP手册反馈】；<br />
亦可通过QQ/5601680、MSN/honestqiao@hotmail.com反馈<br />
5. 一旦测试反馈和修改完善，就进入正式发布队列，每周更新<br />
6. 下载后如打开无法正常查看，请从鼠标右键查看属性，点击解除锁定即可<br />
<br />
<font color="Black">四、友情推荐：Friend</font><br />
1. Coreseek开源中文检索引擎，<a href="http://www.coreseek.cn/" target="_blank">http://www.coreseek.cn/</a>，基于Sphinx，专业针对中文<span href="http://bbs.chinaunix.net/tag.php?name=%D3%A6%D3%C3" onclick="tagshow(event)" class="t_tag">应用</span>，MySQL绝配！</font></strong></font></p>
<p>--------EOF------</p>
<p>当然我这边提供的就只是镜像（用于分流）了。但还是推荐经常关注http://bbs.chinaunix.net/thread-999247-1-1.html，因为，说不定哪天我们乔大姐又会更新手册了，不是吗？现在是RC版，过两天就可是正式版了。</p>
<p>本地镜像下载：<a href="http://neatstudio.com/attachment/php_manual_zh-HonestQiao-20100812-Beta-V0.3.gz">点击下载</a>，好处多多，缺点就是文件名太长了。。。</p>]]></description>
			<link>http://www.neatstudio.com/show-1424-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-1-1.shtml">PHP</category>
			<pubDate>2010-08-12 17:00</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1423-1.shtml</guid>
			<title>jQuery 绑定自定义事件</title>
			<author>gouki</author>
			<description><![CDATA[<p>一般情况下，我们对于jQuery的事件绑定都是采用bind，从1.3开始。可以同时绑定多个事件了。这是非常方便的情况，但是对于checkbox和radio来说会有几种情况，比如checkbox选中时，本身就触发了click事件，这时候怎么办？如果为checkbox添加label那么lable在点击时，能不能触发checkbox的click事件？这都需要研究一下。比如，我们在checkbox上绑定了click事件，平时我们在选中的时候都有触发。但是在label上点击的时候，就要再额外加一下了。<br />
<br />
$(&quot;input[type=checkbox]&quot;).bind('click',function(){<br />
&nbsp; //...<br />
})<br />
$('label').click(function(){<br />
&nbsp;&nbsp; $(this).children('input[type=checkbox]').click();<br />
})<br />
<br />
基本上也可以触发这种事件。<br />
一般元素在绑定的时候，都是绑定click,change,等</p>
<p>//<strike>但如果想触发系统事件，就必须是evtClick了。【</strike>这里其实是自定义事件。在绑定后还是需要单独触发一下。原来我写错了。】</p>
<p>可以参考http://www.cnblogs.com/mamboer/archive/2010/08/11/1797532.html</p>]]></description>
			<link>http://www.neatstudio.com/show-1423-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-2-1.shtml">Javascript</category>
			<pubDate>2010-08-11 22:40</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1422-1.shtml</guid>
			<title>最近在用的软件for android</title>
			<author>gouki</author>
			<description><![CDATA[<p>列出一些自己常用的软件（android）<br />
1、Document2Go 可以编辑word,excel,ppt等。很不错<br />
2、UCWEB浏览器，这个大家都知道，因为默认的chrome不支持WAP流览<br />
3、EverNote，这是一个笔记同步软件，之所在那么多中推荐这个，是因为它在iphone、ipad上也能用。于是乎一些记录就可以在电脑与其它移动设备上同步了。<br />
4、wiz ，这个也就是最近wiz推出的，还不是正式版的。。。<br />
5、HandcentSMS，比较不错的短信软件。原来没有广告，现在多了一个广告了。<br />
6、网易掌上邮。之所以说这个，是因为我用网易的邮箱很久了。因此用它来收邮件。我的yahoo邮件是用默认的邮件程序，gmail是也是默认的gmail程序。<br />
7、QQ微博、新浪微博、QQfor android<br />
8、最后一个常用的就是Java了。毕竟还是有很多java程序的，比如我的招商证券。。。。<br />
9、飞信，这个比较耗电。我不常开。只在使用的时候才开<br />
10、我的备份，这个软件我一直没更新过，因为不知道新版是不是要钱。。。每次重装系统的时候过都是靠它来将我常用的软件和数据进行备份（短信备份也很重要）</p>
<p>最后就几个常用工具：rootexplorer,andftp,connectbot。。。</p>]]></description>
			<link>http://www.neatstudio.com/show-1422-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2010-08-10 22:50</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1421-1.shtml</guid>
			<title>Enterprise Architect 中文版</title>
			<author>gouki</author>
			<description><![CDATA[<p>Enterprise Architect这款软件非常不错，但是英文版让人很郁闷，毕竟不是每个人都是英文那么好的。<br />
汉化新世纪里居然有这个汉化版，就太让人兴奋了。<br />
Enterprise Architect是一款计算机辅助软件工程（CASE）工具，用于设计和构建软件系统、业务流程建模及更多通用的建模。 <br />
EA并不仅仅是一个UML画图工具那么简单，它对整个项目开发过程有着非常好的支持。比较亮点的功能： <br />
&middot; UML建模--支持UML2.1 <br />
&middot; 代码工程--按图生成代码，导入原有的代码成为UML图 <br />
&middot; 项目管理程序--包括项目计划，任务进度，问题集等 <br />
&middot; 文档生成和模板--可使用文字翻译替换和自定义的模板为不同的项目打造最适合的文档类型 <br />
&middot; 数据库建模--可从ODBC导入数据源结构，并进行ER图的编辑，还可生成建表的SQL语句 <br />
&middot; 代码编辑、调试和运行--加入编译脚本，就可以把EA当作IDE来使用 <br />
&middot; 版本控制，联机讨论，局域网协同开发等功能。 <br />
<br />
Enterprise Architect 8.0  在细节方面改进了非常多，在之前版本中仅是作为附加的一些功能，如代码调试和代码编辑器等等，也渐渐被重视和改进了。Enterprise  Architect不仅能作为一个全功能的UML建模工具，还是一个非常成功团队项目管理工具，而如今的Enterprise Architect  8.0，更是向着更实用的IDE发展。<br />
下载地址：http://www.hanzify.org//software/12376.html</p>]]></description>
			<link>http://www.neatstudio.com/show-1421-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-3-1.shtml">Software</category>
			<pubDate>2010-08-09 22:48</pubDate>
		</item>
		<item>
			<guid>http://www.neatstudio.com/show-1420-1.shtml</guid>
			<title>万年历</title>
			<author>gouki</author>
			<description><![CDATA[<p>网上的HTML万年历大约还是几年前的吧？今天在群里有人提到，为什么有的万年历上写立秋是8日，有的却是7日，所以就找了找资料 。</p>
<p>1、http://hi.baidu.com/wlzqi/blog/item/3c5679311e5bee19ebc4afc0.html，这个是介绍的最详细的，还有一些具体的算法</p>
<p>2、http://www.agr.cn/Calendar.htm，这个看上去最专业，但因为代码压缩过了也无法看到具体详情</p>
<p>然后再查资料 ，好象都是说根据现代天文算法制作的。</p>
<p>在这里http://www.fjptsz.com/xxjs/xjw/rj/113.htm，有一位莆田十中的朋友写下了部分代码，还有一些解释。</p>
<p>最后，你可以google一下《天文算法》一书，你会发现有很多链接，可以详细的学习一下（我是没能力了，一些专业的词语都看不懂。。。其实只要不用来算节气，其他的算法网上还是有简化版的，PHP可谓是拿来即可使用。）</p>]]></description>
			<link>http://www.neatstudio.com/show-1420-1.shtml</link>
			<category domain="http://www.neatstudio.com/category-5-1.shtml">Misc</category>
			<pubDate>2010-08-09 12:17</pubDate>
		</item>
	</channel>
</rss>
