<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://rss.gracecode.com" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/gracecode" type="application/rss+xml"></fs:self_link><lastBuildDate>Wed, 08 Oct 2008 07:37:01 GMT</lastBuildDate><title>Gracecode.com</title><description>Gracecode.com - PHP, Mysql, Javascript 等 Web 相关的互联网原创技术文档和心得；以及个人的 Blog 记录自己的生活</description><link>http://www.gracecode.com</link><image><url>http://www.gracecode.com/images/grace.png</url></image><item><title>快速从模板建立文件</title><link>http://item.feedsky.com/~feedsky/gracecode/~6159402/121828574/1221433/1/item.html</link><description>&lt;p&gt;最近很多人被我“拉下水”尝试 &lt;a href=&quot;http://www.gracecode.com/Main/Category/496&quot; title=&quot;http://www.gracecode.com/Main/Category/496&quot;&gt;(g)Vim&lt;/a&gt;，为了支持他们，我会编写些 Vim 脚本方便大家。&lt;/p&gt;

&lt;p&gt;这里有个现成的需求，就是很多从 Editplus 转过来的同学，想让 Vim 有从模板新建文件的功能。那么，这篇文章可能就是你们想要的。&lt;/p&gt;

&lt;h2&gt;安装步骤&lt;/h2&gt;&lt;p&gt;&lt;a href=&quot;http://grace.googlecode.com/files/_vim_Template_20081008.7z&quot; title=&quot;http://grace.googlecode.com/files/_vim_Template_20081008.7z&quot;&gt;下载代码包&lt;/a&gt;以后，解压缩到 &lt;tt&gt;$VIMRUNTIME&lt;/tt&gt; 目录。重新启动 Vim，输入&lt;/p&gt;

&lt;pre&gt;:NewTemplate xhtml&lt;/pre&gt;&lt;p&gt;就可以建立个 XHTML 模板，如果是 Vim 7.0 以上的版本，还有个命令&lt;/p&gt;

&lt;pre&gt;:NewTemplateTab xhtml&lt;/pre&gt;&lt;p&gt;即可在新的标签页中新建文件。当然可以映射快捷键，快速新建常用的文件类型，比如我的&lt;/p&gt;

&lt;pre&gt;&amp;quot; 新建 XHTML 的快捷键
map nn :NewTemplateTab xhtml&amp;lt;cr&amp;gt;&lt;/pre&gt;&lt;p&gt;在 normal 模式下，连续按两次 n 就可以在新标签页建立 xhtml 文件了。&lt;/p&gt;

&lt;h2&gt;配置脚本&lt;/h2&gt;&lt;p&gt;此插件文件的路径在&lt;/p&gt;

&lt;pre&gt;$VIMRUNTIME/plugin/Template.vim&lt;/pre&gt;&lt;p&gt;下，主要有两个配置选项，默认为&lt;/p&gt;

&lt;pre&gt;let g:TemplatePath=$VIM.'/vimfiles/template/'
let g:TemplateCursorFlag='#cursor#'&lt;/pre&gt;&lt;p&gt;其中，&lt;tt&gt;g:TemplatePath&lt;/tt&gt; 为模板路径，而 &lt;tt&gt;g:TemplatePathCursorFlag&lt;/tt&gt; 则为新建模板以后鼠标移动到的位置（如无指定，则移动到文件底部）。&lt;/p&gt;

&lt;h2&gt;增加模板&lt;/h2&gt;&lt;p&gt;脚本支持用户新建模板，找到 &lt;tt&gt;g:TemplatePath&lt;/tt&gt; 中的 &lt;tt&gt;xhtml.tpl&lt;/tt&gt; 目录。参考其中的内容&lt;/p&gt;

&lt;pre&gt;&amp;lt;html&amp;gt;
...
    &amp;lt;body&amp;gt;
        #cursor#
    &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;p&gt;应该很容易理解。比如需要新建 python 模板。则在 &lt;tt&gt;g:TemplatePath&lt;/tt&gt; 中建立 &lt;tt&gt;python.tpl&lt;/tt&gt; 并加入 &lt;tt&gt;#cursor#&lt;/tt&gt; 的位置即可。&lt;/p&gt;

 &lt;hr /&gt; &lt;p&gt;&lt;a href=&quot;http://www.gracecode.com&quot;&gt;Gracecode.com&lt;/a&gt; | &lt;a href=&quot;http://www.gracecode.com/Archive/Display/2414&quot;&gt;Permalink&lt;/a&gt; | &lt;a href=&quot;http://www.gracecode.com/Trackback/Recieve/2414/oj8t0c&quot;&gt;Trackback&lt;/a&gt; | &lt;a href=&quot;http://www.gracecode.com/wap/d/2414&quot;&gt;Wap&lt;/a&gt; | &lt;a href=&quot;http://rss.gracecode.com&quot;&gt;Rss&lt;/a&gt; | &lt;a href=&quot;http://www.gracecode.com/Archive/Display/2414#archive_commit&quot;&gt;1 comments&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/gracecode/3444731954895ccf64c926812c441df6&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/gracecode/3444731954895ccf64c926812c441df6/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><pubDate>Wed, 08 Oct 2008 15:37:01 +0800</pubDate><author>手气不错</author><comments>http://www.gracecode.com/Archive/Display/2414#archive_commit</comments><guid isPermaLink="false">http://www.gracecode.com/Archive/Display/2414</guid><dc:creator>手气不错</dc:creator><fs:srclink>http://www.gracecode.com/Archive/Display/2414</fs:srclink><fs:srcfeed>http://www.gracecode.com/Rss/Main</fs:srcfeed><fs:itemid>feedsky/gracecode/~6159402/121828574/1221433</fs:itemid></item><item><title>又是个新的窝</title><link>http://item.feedsky.com/~feedsky/gracecode/~6159402/121596810/1221433/1/item.html</link><description>&lt;p&gt;“熬了半年”，终于还是搬离了&lt;a href=&quot;http://www.gracecode.com/Archive/Display/1822&quot; title=&quot;http://www.gracecode.com/Archive/Display/1822&quot;&gt;至今阴影还在的“老房”&lt;/a&gt;（即便老房的房租到十一月才到期）。新的住处离公司很近，走路十分钟不到；房间朝南，往远处眺望就能看见传说中的老和山。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://pic.yupoo.com/feelinglucky/9917264c4852/medium.jpg&quot; alt=&quot;http://pic.yupoo.com/feelinglucky/9917264c4852/medium.jpg&quot; title=&quot;http://pic.yupoo.com/feelinglucky/9917264c4852/medium.jpg&quot; /&gt;&lt;/p&gt;

&lt;p&gt;总体来说感觉还是不错，东西包括床、柜子、洗衣机、电视机等在内的都是全的 -- 很适合我这样的懒人（穷人）。&lt;/p&gt;

&lt;p&gt;但是有几个“美中不足”的地方，其一就是地处三楼。虽说是深秋，但是蚊子还是很猖獗，几次半夜都被蚊子吵醒。&lt;/p&gt;

&lt;p&gt;其二就是网速，房东接了 10M 的宽带，但敌不过室友电驴、BT 等的“多管齐下”。这是价值观的问题了，希望能为别人再多考虑下。&lt;/p&gt;

&lt;p&gt;在杭州也有五六年了。虽算不上是个念古的人，但还是偶尔的会怀念下&lt;a href=&quot;http://www.gracecode.com/Archive/Display/1934&quot; title=&quot;http://www.gracecode.com/Archive/Display/1934&quot;&gt;大学时的同居生活&lt;/a&gt;。&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;-- Split --&lt;/tt&gt;&lt;/p&gt;

&lt;p&gt;PS，感谢 &lt;a href=&quot;http://www.om19.cn/&quot; title=&quot;http://www.om19.cn/&quot;&gt;宗羲&lt;/a&gt; 的指点，使我还能用那么破的相机，拍出令我那么满意的照片来。&lt;/p&gt;

 &lt;hr /&gt; &lt;p&gt;&lt;a href=&quot;http://www.gracecode.com&quot;&gt;Gracecode.com&lt;/a&gt; | &lt;a href=&quot;http://www.gracecode.com/Archive/Display/2404&quot;&gt;Permalink&lt;/a&gt; | &lt;a href=&quot;http://www.gracecode.com/Trackback/Recieve/2404/foiquj&quot;&gt;Trackback&lt;/a&gt; | &lt;a href=&quot;http://www.gracecode.com/wap/d/2404&quot;&gt;Wap&lt;/a&gt; | &lt;a href=&quot;http://rss.gracecode.com&quot;&gt;Rss&lt;/a&gt; | &lt;a href=&quot;http://www.gracecode.com/Archive/Display/2404#archive_commit&quot;&gt;8 comments&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/gracecode/989f07c5cbf2516ae0cae10d0616409f&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/gracecode/989f07c5cbf2516ae0cae10d0616409f/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><pubDate>Wed, 08 Oct 2008 01:25:58 +0800</pubDate><author>手气不错</author><comments>http://www.gracecode.com/Archive/Display/2404#archive_commit</comments><guid isPermaLink="false">http://www.gracecode.com/Archive/Display/2404</guid><dc:creator>手气不错</dc:creator><fs:srclink>http://www.gracecode.com/Archive/Display/2404</fs:srclink><fs:srcfeed>http://www.gracecode.com/Rss/Main</fs:srcfeed><fs:itemid>feedsky/gracecode/~6159402/121596810/1221433</fs:itemid></item><item><title>Windows 下 gVim 的雅黑字体配置</title><link>http://item.feedsky.com/~feedsky/gracecode/~6159402/121479213/1221433/1/item.html</link><description>&lt;p&gt;编辑器的字体有时候能影响我们编码的效率，下面主要说明 Windows 下 gVim 的字体配置过程。由于微软的雅黑字体非常的常见而且效果也不错，所以就以它为例。&lt;/p&gt;

&lt;p&gt;首先我们要更新 gVim 程序，&lt;a href=&quot;http://lcuc.org.cn/node/1315&quot; title=&quot;http://lcuc.org.cn/node/1315&quot;&gt;这里已经有个现成的编译版本&lt;/a&gt;，并且有详细的雅黑字体配置步骤。不过我个人更喜欢使用&lt;a href=&quot;http://www.gracecode.com/Archive/Display/1545&quot; title=&quot;http://www.gracecode.com/Archive/Display/1545&quot;&gt;苹果的 Courier_New 字体&lt;/a&gt;。&lt;/p&gt;

&lt;p&gt;下面是中文字体使用雅黑，而英文字体使用 Courier_New 的效果图&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://www.gracecode.com/upload/2008_10_07/1223378378.jpg&quot; alt=&quot;http://www.gracecode.com/upload/2008_10_07/1223378378.jpg&quot; title=&quot;http://www.gracecode.com/upload/2008_10_07/1223378378.jpg&quot; /&gt;&lt;/p&gt;

&lt;p&gt;需要的软件有上述提到的二次编译版本的 gVim ，以及相应的字体（&lt;a href=&quot;http://www.gracecode.com/Archive/Display/1545&quot; title=&quot;http://www.gracecode.com/Archive/Display/1545&quot;&gt;Courier_New 下载&lt;/a&gt;，&lt;a href=&quot;http://www.box.net/shared/sfpg7pydrx&quot; title=&quot;http://www.box.net/shared/sfpg7pydrx&quot;&gt;雅黑 Consolas 下载&lt;/a&gt;）。安装好上述两种字体以后，配置 gVim 的字体（针对 Windows 系统）&lt;/p&gt;

&lt;pre&gt;if has(&amp;quot;win32&amp;quot;)
    set guifont=Courier_New:h10:cANSI
    set guifontwide=YaHei Consolas Hybrid:h10
endif&lt;/pre&gt;&lt;p&gt;这里可以&lt;a href=&quot;http://www.vim.org/htmldoc/os_win32.html#MS-Windows&quot; title=&quot;http://www.vim.org/htmldoc/os_win32.html#MS-Windows&quot;&gt;查看 gVim 下配置 Windows 的详细信息&lt;/a&gt;。最后，本人历次保存的 Vim 配置文件，&lt;a href=&quot;http://code.google.com/p/grace/downloads/list&quot; title=&quot;http://code.google.com/p/grace/downloads/list&quot;&gt;可以在这里获得&lt;/a&gt;。&lt;/p&gt;

 &lt;hr /&gt; &lt;p&gt;&lt;a href=&quot;http://www.gracecode.com&quot;&gt;Gracecode.com&lt;/a&gt; | &lt;a href=&quot;http://www.gracecode.com/Archive/Display/2402&quot;&gt;Permalink&lt;/a&gt; | &lt;a href=&quot;http://www.gracecode.com/Trackback/Recieve/2402/h2n9un&quot;&gt;Trackback&lt;/a&gt; | &lt;a href=&quot;http://www.gracecode.com/wap/d/2402&quot;&gt;Wap&lt;/a&gt; | &lt;a href=&quot;http://rss.gracecode.com&quot;&gt;Rss&lt;/a&gt; | &lt;a href=&quot;http://www.gracecode.com/Archive/Display/2402#archive_commit&quot;&gt;2 comments&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/gracecode/674ae0e4e29a65476876b87ea637f2f7&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/gracecode/674ae0e4e29a65476876b87ea637f2f7/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><pubDate>Tue, 07 Oct 2008 19:26:07 +0800</pubDate><author>手气不错</author><comments>http://www.gracecode.com/Archive/Display/2402#archive_commit</comments><guid isPermaLink="false">http://www.gracecode.com/Archive/Display/2402</guid><dc:creator>手气不错</dc:creator><fs:srclink>http://www.gracecode.com/Archive/Display/2402</fs:srclink><fs:srcfeed>http://www.gracecode.com/Rss/Main</fs:srcfeed><fs:itemid>feedsky/gracecode/~6159402/121479213/1221433</fs:itemid></item><item><title>XHTML、CSS &amp; DOM W3C 手册</title><link>http://item.feedsky.com/~feedsky/gracecode/~6159402/121479214/1221433/1/item.html</link><description>&lt;p&gt;这是 &lt;a href=&quot;http://lifesinger.org/&quot; title=&quot;http://lifesinger.org/&quot;&gt;玉伯&lt;/a&gt; 期前整理的版本，包含了 W3C 手册以及其他些有用的参考资料。具体的内容参看下面的截图&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://www.gracecode.com/upload/2008_10_06/1223258427.jpg&quot; alt=&quot;http://www.gracecode.com/upload/2008_10_06/1223258427.jpg&quot; title=&quot;http://www.gracecode.com/upload/2008_10_06/1223258427.jpg&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://lifeisong.spaces.live.com/blog/cns!D609F3E060610F17!160.entry&quot; title=&quot;http://lifeisong.spaces.live.com/blog/cns!D609F3E060610F17!160.entry&quot;&gt;原链接&lt;/a&gt;上的下载地址已经失效了，所以转一份到这里（&lt;a href=&quot;http://www.box.net/shared/bd7qhkahi5&quot; title=&quot;http://www.box.net/shared/bd7qhkahi5&quot;&gt;下载&lt;/a&gt;）。&lt;/p&gt;

 &lt;hr /&gt; &lt;p&gt;&lt;a href=&quot;http://www.gracecode.com&quot;&gt;Gracecode.com&lt;/a&gt; | &lt;a href=&quot;http://www.gracecode.com/Archive/Display/2396&quot;&gt;Permalink&lt;/a&gt; | &lt;a href=&quot;http://www.gracecode.com/Trackback/Recieve/2396/wkjedu&quot;&gt;Trackback&lt;/a&gt; | &lt;a href=&quot;http://www.gracecode.com/wap/d/2396&quot;&gt;Wap&lt;/a&gt; | &lt;a href=&quot;http://rss.gracecode.com&quot;&gt;Rss&lt;/a&gt; | &lt;a href=&quot;http://www.gracecode.com/Archive/Display/2396#archive_commit&quot;&gt;2 comments&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/gracecode/36e886de733e286ebf8ca4cf65c334ad&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/gracecode/36e886de733e286ebf8ca4cf65c334ad/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><pubDate>Mon, 06 Oct 2008 10:02:16 +0800</pubDate><author>手气不错</author><comments>http://www.gracecode.com/Archive/Display/2396#archive_commit</comments><guid isPermaLink="false">http://www.gracecode.com/Archive/Display/2396</guid><dc:creator>手气不错</dc:creator><fs:srclink>http://www.gracecode.com/Archive/Display/2396</fs:srclink><fs:srcfeed>http://www.gracecode.com/Rss/Main</fs:srcfeed><fs:itemid>feedsky/gracecode/~6159402/121479214/1221433</fs:itemid></item><item><title>闭包的秘密</title><link>http://item.feedsky.com/~feedsky/gracecode/~6159402/121479215/1221433/1/item.html</link><description>&lt;p&gt;Javascript 中的闭包其实很改语言中很难理解的一部分。&lt;a href=&quot;http://www.kryogenix.org/code/browser/secrets-of-javascript-closures/&quot; title=&quot;http://www.kryogenix.org/code/browser/secrets-of-javascript-closures/&quot;&gt;感谢 Stuart 提供了那么棒的 PPT&lt;/a&gt;，它深入浅出的解释了 Javascript 的闭包技术。&lt;/p&gt;

&lt;p&gt;而我“自作主张”地在这份 PPT 中加入了部分的注释（希望没有影响阅读），主要的内容在这里简要整理下。&lt;/p&gt;

&lt;h3&gt;闭包的概念&lt;/h3&gt;&lt;p&gt;“官方”的解释&lt;/p&gt;

&lt;pre&gt;“闭包”，是指拥有多个变量和绑定了这些变量的环境的
表达式（通常是一个函数），因而这些变量也是该表达式
的一部分。&lt;/pre&gt;&lt;p&gt;但不要咬文嚼字，我们简单的可以理解为&lt;/p&gt;

&lt;pre&gt;闭包是个函数，而它“记住了周围发生了什么”。表现为由“一个函数”体中定义了“另个函数”&lt;/pre&gt;&lt;pre&gt;function outer () {
    ...
    function inner () {
        ...
    }
}&lt;/pre&gt;&lt;h3&gt;闭包的作用&lt;/h3&gt;&lt;ol&gt;
    &lt;li&gt;setTimeout/setInterval&lt;/li&gt;
    &lt;li&gt;回调函数（callback）&lt;/li&gt;
    &lt;li&gt;事件句柄（event handle）&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;模块化代码&lt;/h3&gt;&lt;pre&gt;function Container(param) {
    var sercert = 3;
    this.member = param;
    var that    = this; // 注意这行

    function dec() {
        return (sercert &amp;gt; 0) ? --secret : false;
    }

    this.service = function() {
        return (dec()) ? that.member : null;
    }
}&lt;/pre&gt;&lt;p&gt;其中 dec 为私有，that 变量引用 Container 同时 service 函数构成了个闭包。&lt;/p&gt;

&lt;h2&gt;注意 Exploer 下闭包的“特殊情况”&lt;/h2&gt;&lt;ol&gt;
    &lt;li&gt;循环问题&lt;/li&gt;
    &lt;li&gt;垃圾回收&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;最后，PPT 可以&lt;a href=&quot;http://www.box.net/shared/elkumrpfng&quot; title=&quot;http://www.box.net/shared/elkumrpfng&quot;&gt;在这里下载&lt;/a&gt;，同时需要进一步有关闭包的信息，为之漫笔翻译了份很&lt;a href=&quot;http://www.cn-cuckoo.com/2007/08/01/understand-javascript-closures-72.html&quot; title=&quot;http://www.cn-cuckoo.com/2007/08/01/understand-javascript-closures-72.html&quot;&gt;详实的文档&lt;/a&gt;，强烈建议看下。&lt;/p&gt;

 &lt;hr /&gt; &lt;p&gt;&lt;a href=&quot;http://www.gracecode.com&quot;&gt;Gracecode.com&lt;/a&gt; | &lt;a href=&quot;http://www.gracecode.com/Archive/Display/2385&quot;&gt;Permalink&lt;/a&gt; | &lt;a href=&quot;http://www.gracecode.com/Trackback/Recieve/2385/23k2il&quot;&gt;Trackback&lt;/a&gt; | &lt;a href=&quot;http://www.gracecode.com/wap/d/2385&quot;&gt;Wap&lt;/a&gt; | &lt;a href=&quot;http://rss.gracecode.com&quot;&gt;Rss&lt;/a&gt; | &lt;a href=&quot;http://www.gracecode.com/Archive/Display/2385#archive_commit&quot;&gt;4 comments&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href=&quot;http://feed.feedsky.com/~cpm/c/gracecode/5e6f9ff3138ae3dc7d918132d8825ea2&quot;&gt;&lt;img src=&quot;http://feed.feedsky.com/~cpm/gracecode/5e6f9ff3138ae3dc7d918132d8825ea2/s.gif&quot; border=&quot;0&quot; style=&quot;margin-top:5px;&quot; /&gt;&lt;/a&gt;&lt;!-- /Feedsky ad --&gt;</description><pubDate>Fri, 26 Sep 2008 11:56:47 +0800</pubDate><author>手气不错</author><comments>http://www.gracecode.com/Archive/Display/2385#archive_commit</comments><guid isPermaLink="false">http://www.gracecode.com/Archive/Display/2385</guid><dc:creator>手气不错</dc:creator><fs:srclink>http://www.gracecode.com/Archive/Display/2385</fs:srclink><fs:srcfeed>http://www.gracecode.com/Rss/Main</fs:srcfeed><fs:itemid>feedsky/gracecode/~6159402/121479215/1221433</fs:itemid></item></channel></rss>