<?xml version="1.0" encoding="gb2312"?>
<rss version="2.0">
<channel>
<title><![CDATA[影月阁]]></title>
        <image>
        <title>http://hi.baidu.com</title>
        <link>http://hi.baidu.com</link>
        <url>http://img.baidu.com/img/logo-hi.gif</url>
        </image>
<description><![CDATA[给岁月以文明，而不是给文明以岁月]]></description>
<link>http://hi.baidu.com/akira%5Fcn</link>
<language>zh-cn</language>
<generator>www.baidu.com</generator>
<ttl>5</ttl>


<item>
        <title><![CDATA[这期双色球买了两组号码，一个数字都没中...]]></title>
        <link><![CDATA[http://hi.baidu.com/akira%5Fcn/blog/item/79f4e2ed2ae940deb31cb182.html]]></link>
        <description><![CDATA[
		
		<p>囧。。。加起来一共12个红球，6个蓝球</p>
<p>这意味着，如果有人把剩下的21个红球和10个蓝球包下来，就能用一百多万的投入获得超过五百万的收益。。。。。。</p>
<p><a target="_blank" href="http://caipiao.youa.com">http://caipiao.youa.com</a></p> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/akira%5Fcn/blog/category/%C4%AC%C8%CF%B7%D6%C0%E0">默认分类</a>&nbsp;<a href="http://hi.baidu.com/akira%5Fcn/blog/item/79f4e2ed2ae940deb31cb182.html#comment">查看评论</a>]]></description>
        <pubDate>2009-11-24  22:55</pubDate>
        <category><![CDATA[默认分类]]></category>
        <author><![CDATA[akira_cn]]></author>
		<guid>http://hi.baidu.com/akira%5Fcn/blog/item/79f4e2ed2ae940deb31cb182.html</guid>
</item>

<item>
        <title><![CDATA[看到这个棋评，我笑了^_^]]></title>
        <link><![CDATA[http://hi.baidu.com/akira%5Fcn/blog/item/43be31258f577a6a34a80fd5.html]]></link>
        <description><![CDATA[
		
		有图有真相：（不是棋谱，注意看评论^O^）<br>
<span><img border="0" src="http://hiphotos.baidu.com/akira%5Fcn/pic/item/953a72b4c928655f8ad4b257.jpg" small="0" class="blogimg"></span><br>
<span><img border="0" src="http://hiphotos.baidu.com/akira%5Fcn/pic/item/3d6faf08a5fd541ce8248857.jpg" small="0" class="blogimg"></span><br> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/akira%5Fcn/blog/category/%CB%E6%D0%C4%CB%F9%D3%FB">随心所欲</a>&nbsp;<a href="http://hi.baidu.com/akira%5Fcn/blog/item/43be31258f577a6a34a80fd5.html#comment">查看评论</a>]]></description>
        <pubDate>2009-09-25  18:27</pubDate>
        <category><![CDATA[随心所欲]]></category>
        <author><![CDATA[akira_cn]]></author>
		<guid>http://hi.baidu.com/akira%5Fcn/blog/item/43be31258f577a6a34a80fd5.html</guid>
</item>

<item>
        <title><![CDATA[说说值类型数据“.”操作符的类型转换]]></title>
        <link><![CDATA[http://hi.baidu.com/akira%5Fcn/blog/item/15bdfa665485112eab184cba.html]]></link>
        <description><![CDATA[
		
		<p>看下面的一组例子：</p>
<p>alert(true.toString());</p>
<p>alert(false.toString());</p>
<p>alert(1.123.toString());</p>
<p>alert(1.2e1.toString());</p>
<p>alert(0x1.toString());</p>
<p>alert(0123.toString());</p>
<p>alert(1.toString()); //error</p>
<p>唯独最后一行会报错，原因是JavaScript解释器读到&quot;1.&quot;时无法判断是小数点还是&quot;.&quot;操作符，也或者说这里产生了一个&quot;shift-shift confilt&quot;</p>
<p>所以保险的做法是加上括号： alert((1).toString());</p>
<p> </p> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/akira%5Fcn/blog/category/%CB%E6%D0%C4%CB%F9%D3%FB">随心所欲</a>&nbsp;<a href="http://hi.baidu.com/akira%5Fcn/blog/item/15bdfa665485112eab184cba.html#comment">查看评论</a>]]></description>
        <pubDate>2009-09-20  11:18</pubDate>
        <category><![CDATA[随心所欲]]></category>
        <author><![CDATA[akira_cn]]></author>
		<guid>http://hi.baidu.com/akira%5Fcn/blog/item/15bdfa665485112eab184cba.html</guid>
</item>

<item>
        <title><![CDATA[闲说古诗的格律]]></title>
        <link><![CDATA[http://hi.baidu.com/akira%5Fcn/blog/item/3e5655fae8fbfbd4b48f3191.html]]></link>
        <description><![CDATA[
		
		<p>以前对古词研究过一点点，对古诗没有什么接触。</p>
<p>因为最近在贴吧玩联诗，所以大体了解了一下。</p>
<p>事实上古人联诗，七绝的平仄是可以对上的，因为：</p>
<p>七绝的平起首句押韵规则为：</p>
<p>⊙平⊙仄仄平平，（韵）<br>
⊙仄平平仄仄平。（韵）<br>
⊙仄⊙平平仄仄，<br>
⊙平⊙仄仄平平。（韵）</p>
<p>七绝的仄起首句押韵规则为：</p>
<p>⊙仄平平仄仄平，（韵）<br>
⊙平⊙仄仄平平。（韵）<br>
⊙平⊙仄平平仄，<br>
⊙仄平平仄仄平。（韵）</p>
<p>无论是平起还是仄起，因为首末两句的平仄相同，所以总能联上的，但是，平起无法联仄起，反之亦然。</p>
<p>把上篇的联诗改对平仄的话，就变成</p>
<p>一点相思两处闲<br>
缘尘聚散总如烟<br>
今宵忍泪别君去<br>
明岁何人伴驾前</p>
<p>那么联诗的时候，用&ldquo;明岁何人伴驾前&rdquo;起首即可。</p>
<p>同样：</p>
<p>哪岁偷得半日闲<br>
斜阳醉卧任舟行<br>
惹来秋意阑珊处<br>
半朵残荷半缕青</p>
<p>这首仄起的诗，联诗用&ldquo;半朵残荷半缕青&rdquo;起首可联仄起七绝。</p>
<p>另外古汉语的音和今天不同，所以有些平仄和韵按今天的发音是正确的，但古时则不对</p>
<p>例如按古代规则，&ldquo;闲&rdquo;和&ldquo;烟&rdquo;、&ldquo;行&rdquo;和&ldquo;青&rdquo;不押韵，&ldquo;别君去&rdquo;的&ldquo;别&rdquo;是入声，应按仄声而不按平声填。</p>
<p>今古虽有不同，但我认为诗词是用来&ldquo;唱&rdquo;的，因此当按时下的音去填，才是正确的。</p> <a href="http://hi.baidu.com/akira%5Fcn/blog/item/3e5655fae8fbfbd4b48f3191.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/akira%5Fcn/blog/category/%CB%E6%D0%C4%CB%F9%D3%FB">随心所欲</a>&nbsp;<a href="http://hi.baidu.com/akira%5Fcn/blog/item/3e5655fae8fbfbd4b48f3191.html#comment">查看评论</a>]]></description>
        <pubDate>2009-09-14  01:21</pubDate>
        <category><![CDATA[随心所欲]]></category>
        <author><![CDATA[akira_cn]]></author>
		<guid>http://hi.baidu.com/akira%5Fcn/blog/item/3e5655fae8fbfbd4b48f3191.html</guid>
</item>

<item>
        <title><![CDATA[胡乱对诗引发的。。。]]></title>
        <link><![CDATA[http://hi.baidu.com/akira%5Fcn/blog/item/0782d51e581506fe1bd5763d.html]]></link>
        <description><![CDATA[
		
		<p>某日无聊闲逛贴吧俱乐部</p>
<p>精华区有诗歌接龙，规则很简单，就是楼下的诗须衔接楼上的末句，但并没有很严格遵循七律或七绝的平仄限制</p>
<p>当时的末楼诗如下：</p>
<p>短笛长歌伊人远<br>
远山近岗天一片<br>
憔悴黄花又一地<br>
一点相思两处闲</p>
<p>好吧，&ldquo;一点相思，两处闲愁&rdquo;，不妨胡乱续一首：</p>
<p>一点相思两处闲<br>
缘聚缘散缘如烟<br>
今宵忍泪别君去<br>
明岁何人迎驾前</p>
<p>于是楼下续道：</p>
<div>
<p>明岁何人迎驾前<br>
今日郎君卷绣帘<br>
断肠无语山海誓<br>
恨归瑶台彩云天</p>
<p>再楼下又续道（为啥不续楼上滴？？难道穿越）</p>
<p>明岁何人迎驾前<br>
仙云轻飔舞如烟<br>
谁知今宵人俱散<br>
独留青冢向人间</p>
<p>最最最有才滴却是再楼下：</p>
<p>明岁何人迎驾前<br>
老婆已经有三千<br>
交给孙武勤修练<br>
流传兵法十三篇</p>
<p>好吧好吧，我承认这篇比较有王者气息，当年吴王不过召集了三百老婆（嫔妃）给孙子练兵，结果被杀了两个，还心疼得狠，气魄自然是不如这一位的…… ^O^</p>
</div> <a href="http://hi.baidu.com/akira%5Fcn/blog/item/0782d51e581506fe1bd5763d.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/akira%5Fcn/blog/category/%CB%E6%D0%C4%CB%F9%D3%FB">随心所欲</a>&nbsp;<a href="http://hi.baidu.com/akira%5Fcn/blog/item/0782d51e581506fe1bd5763d.html#comment">查看评论</a>]]></description>
        <pubDate>2009-09-13  20:25</pubDate>
        <category><![CDATA[随心所欲]]></category>
        <author><![CDATA[akira_cn]]></author>
		<guid>http://hi.baidu.com/akira%5Fcn/blog/item/0782d51e581506fe1bd5763d.html</guid>
</item>

<item>
        <title><![CDATA[秋天了，该出去走走了 ^O^]]></title>
        <link><![CDATA[http://hi.baidu.com/akira%5Fcn/blog/item/e563a1f7915d632b720eec3e.html]]></link>
        <description><![CDATA[
		
		<div>
<p>哪岁偷得半日闲<br>
斜阳醉卧任舟行<br>
惹来秋意阑珊处<br>
半朵残荷半缕青~</p>
</div> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/akira%5Fcn/blog/category/%CE%C4%B8%E5%B3%F5%B3%C9">文稿初成</a>&nbsp;<a href="http://hi.baidu.com/akira%5Fcn/blog/item/e563a1f7915d632b720eec3e.html#comment">查看评论</a>]]></description>
        <pubDate>2009-09-08  21:24</pubDate>
        <category><![CDATA[文稿初成]]></category>
        <author><![CDATA[akira_cn]]></author>
		<guid>http://hi.baidu.com/akira%5Fcn/blog/item/e563a1f7915d632b720eec3e.html</guid>
</item>

<item>
        <title><![CDATA[神奇的“连续”]]></title>
        <link><![CDATA[http://hi.baidu.com/akira%5Fcn/blog/item/5f433a45705a333686947379.html]]></link>
        <description><![CDATA[
		
		空间上格式不好编辑，看代码可以看这里：<a target="_blank" href="http://www.silverna.org/blog/"> http://www.silverna.org/blog/</a><br>
<br>
先看一段代码：<br>
Function.prototype.$continuous = function(fn){<br>
var me = this;<br>
return function(){<br>
var currentArgs = Array.prototype.slice.call(arguments, 0, me.length);<br>
var moreArgs = Array.prototype.slice.call(arguments, me.length);<br>
<br>
ret = me.apply(this, currentArgs);<br>
<br>
if(moreArgs.length &gt; 0){<br>
ret = fn.call(this, arguments.callee, ret, moreArgs);<br>
}<br>
<br>
return ret;<br>
}<br>
}<br>
这个函数并不复杂，它的作用是包装一个函数，判断它实际调用的参数个数和形参个数，当实际调用的参数个数大于形参个数时，再用一个闭包进行后续操作，这个闭包有3个参数，分别是包装的函数自身、前次调用的返回值，以及多余的参数。<br>
<br>
这个简单的函数其实比想象得有用：<br>
var add = function(x,y){<br>
ret　urn x+y;<br>
}<br>
add显然只是一个简单的两个数相加的程序，如果想让它支持多个数相加呢？<br>
function reducer(target, returnValue, moreArgs){<br>
return target.apply(this, [returnValue].concat(moreArgs));<br>
}<br>
add = add.$continuous(reducer);<br>
var a = add(1,2,3,4,5);&#160; //a = 1+2+3+4+5=15<br>
同样的：<br>
var max = function(x,y){<br>
return x&gt;y?x:y;<br>
}<br>
max = max.$continuous(reducer);<br>
var a = max(1,2,3,2,1); //a=3<br>
还有别的作用：<br>
function processor(target, returnValue, moreArgs){<br>
return [returnValue].concat(target.apply(this, moreArgs));<br>
}&#160;&#160;&#160; <br>
var $ = function(id){<br>
return document.getElementById(id);<br>
}.$continuous(processor);<br>
var els = $(&quot;a&quot;,&quot;b&quot;,&quot;c&quot;);&#160; //得到3个elements（返回数组）<br>
<br>
最后总结一下：<br>
$continuous本身很简单，但是它可以被reducer或processor作用，也就是说，返回结果可以被push，也可以被reduce，上面的reducer实际上是先push再reduce，后面的processor我改了一个次序，先reduce再push，就能获得截然不同的用途。<br>
<br>
不知道通过上面的叙述，大家对脚本库核心的基本设计和函数式(functional)编程的思想方法有没有新的认识。不管怎样，JavaScript灵活多变的特性，总能让前端开发充满乐趣。 :) <a href="http://hi.baidu.com/akira%5Fcn/blog/item/5f433a45705a333686947379.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/akira%5Fcn/blog/category/%CB%E6%D0%C4%CB%F9%D3%FB">随心所欲</a>&nbsp;<a href="http://hi.baidu.com/akira%5Fcn/blog/item/5f433a45705a333686947379.html#comment">查看评论</a>]]></description>
        <pubDate>2009-09-01  13:57</pubDate>
        <category><![CDATA[随心所欲]]></category>
        <author><![CDATA[akira_cn]]></author>
		<guid>http://hi.baidu.com/akira%5Fcn/blog/item/5f433a45705a333686947379.html</guid>
</item>

<item>
        <title><![CDATA[关于《JavaScript征途》]]></title>
        <link><![CDATA[http://hi.baidu.com/akira%5Fcn/blog/item/ac64eaa70b1a1e9cd1435810.html]]></link>
        <description><![CDATA[
		
		<p> </p>
<p>有争议，从某种方面来说也是好事...</p>
<p>这次事件也让自己学到一些东西...</p>
<p>请大家也关注无忧论坛上的评论——</p>
<p><a href="http://bbs.51js.com/viewthread.php?tid=85328&amp;extra=page%3D1">http://bbs.51js.com/viewthread.php?tid=85328&amp;extra=page%3D1</a></p>
<p><a target="_blank" href="http://www.css8.cn/jszhengtu/images/js_1.gif"><img border="0" class="blogimg" small="0" src="http://www.css8.cn/jszhengtu/images/js_1.gif"></a></p>
<p> </p>
<p><a target="_blank" href="http://www.css8.cn/jszhengtu/index.html ">作者宣传页</a></p> <a href="http://hi.baidu.com/akira%5Fcn/blog/item/ac64eaa70b1a1e9cd1435810.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/akira%5Fcn/blog/category/%CB%E6%D0%C4%CB%F9%D3%FB">随心所欲</a>&nbsp;<a href="http://hi.baidu.com/akira%5Fcn/blog/item/ac64eaa70b1a1e9cd1435810.html#comment">查看评论</a>]]></description>
        <pubDate>2009-08-26  11:17</pubDate>
        <category><![CDATA[随心所欲]]></category>
        <author><![CDATA[akira_cn]]></author>
		<guid>http://hi.baidu.com/akira%5Fcn/blog/item/ac64eaa70b1a1e9cd1435810.html</guid>
</item>

<item>
        <title><![CDATA[关于脚本代码的稳定、安全、效率和其他]]></title>
        <link><![CDATA[http://hi.baidu.com/akira%5Fcn/blog/item/90ba2a8b07c867dafc1f1045.html]]></link>
        <description><![CDATA[
		
		在写JavaScript代码时什么情况下应该优先考虑尽可能不报错，什么情况下又应该优先考虑安全性，这是每一位同学应该认真思考的问题。<br>
<br>
看下面的代码，很简单的数字补0功能：<br>
<br>
function pad(num, n) {<br>
//return (Array(n).join(0)+num).slice(-n);<br>
//return Array(n-(''+num).length+1).join(0)+num;<br>
return Array(n&gt;num?(n-(''+num).length+1):0).join(0)+num;<br>
}<br>
<br>
注释掉的第一行，比注释掉的第二行更简洁，但为什么没采用？显然因为这里有一个容易忽视的漏洞：<br>
pad(123456789, 7)第一行代码得到的将是 3456789<br>
第三行，考虑了更多情况，当String(num).length&gt;n时，第二行会报错，第三行则采用全部显示的方式（当然这可能一定程度上会破坏掉显示的效果）<br>
对于线上的代码来说，第三行显然更稳定，也不破坏安全性，不过在测试中，第三行代码具有“迷惑”性，不利于qa发现存在String(num).length&gt;n的问题。<br>
所以在测试环境里：<br>
function pad(num, n) {<br>
BB.assert(n &gt;= (''+num).length);<br>
return Array(n&gt;num?(n-(''+num).length+1):0).join(0)+num;<br>
}<br>
另外，根据射雕同学的测试，这种取巧写法的效率不如老老实实用循环去实现，所以有时候技巧不如朴实：<br>
<pre>/* 质朴长存法  by lifesinger */<br>function pad(num, n) {<br>    var len = num.toString().length;<br>    while(len &lt; n) {<br>        num = &quot;0&quot; + num;<br>        len++;<br>    }<br>    return num;<br>}</pre>
最后，感谢无忧脚本的讨论<br>
<a target="_blank" href="http://bbs.51js.com/viewthread.php?tid=85137&amp;extra=page%3D1&amp;page=1">http://bbs.51js.com/viewthread.php?tid=85137&amp;extra=page%3D1&amp;page=1</a><br>
感谢射雕同学的精彩分析<br>
<a target="_blank" href="http://lifesinger.org/blog/2009/08/the-harm-of-tricky-code/">http://lifesinger.org/blog/2009/08/the-harm-of-tricky-code/</a> <a href="http://hi.baidu.com/akira%5Fcn/blog/item/90ba2a8b07c867dafc1f1045.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/akira%5Fcn/blog/category/%CB%E6%D0%C4%CB%F9%D3%FB">随心所欲</a>&nbsp;<a href="http://hi.baidu.com/akira%5Fcn/blog/item/90ba2a8b07c867dafc1f1045.html#comment">查看评论</a>]]></description>
        <pubDate>2009-08-24  10:58</pubDate>
        <category><![CDATA[随心所欲]]></category>
        <author><![CDATA[akira_cn]]></author>
		<guid>http://hi.baidu.com/akira%5Fcn/blog/item/90ba2a8b07c867dafc1f1045.html</guid>
</item>

<item>
        <title><![CDATA[火星文输入法]]></title>
        <link><![CDATA[http://hi.baidu.com/akira%5Fcn/blog/item/85d7f1ee0262e1f2b2fb953e.html]]></link>
        <description><![CDATA[
		
		看了标题被雷到的同学，请抛开脑残、非主流之类的有争议话题和对90后的成见（如果有的话）……<br>
我只想单独说说呃，火星文输入法软件<br>
<br>
偶然下载了一个装了一下，发现这不是一个单独的输入法，而是对你其他中文输入法的拦截<br>
<span><br>
界面不错，在我的XP系统下还有半透明效果<br>
</span><span><img border="0" class="blogimg" small="0" src="http://hiphotos.baidu.com/akira%5Fcn/pic/item/721864bf07807e2319d81f08.jpg"><br>
还能换肤<br>
</span><span><img border="0" class="blogimg" small="0" src="http://hiphotos.baidu.com/akira%5Fcn/pic/item/43be3125e730a24934a80f08.jpg"></span><br>
有等级设置和字库选择<br>
<span><br>
</span><span><img border="0" class="blogimg" small="0" src="http://hiphotos.baidu.com/akira%5Fcn/pic/item/6a7dd8cfbac66114f8dc6108.jpg"></span><br>
這媞標准吙煋版<br>
這諟趠級焱謃蝂<br>
还可以设置成随机版<br>
另外对QQ有一些特别的支持<br>
<br>
总之，从产品的角度来说，还是挺好用的。。。<br>
而且那个输入简体自动出繁体的功能也确实很实用 <a href="http://hi.baidu.com/akira%5Fcn/blog/item/85d7f1ee0262e1f2b2fb953e.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/akira%5Fcn/blog/category/%C4%AC%C8%CF%B7%D6%C0%E0">默认分类</a>&nbsp;<a href="http://hi.baidu.com/akira%5Fcn/blog/item/85d7f1ee0262e1f2b2fb953e.html#comment">查看评论</a>]]></description>
        <pubDate>2009-08-14  16:51</pubDate>
        <category><![CDATA[默认分类]]></category>
        <author><![CDATA[akira_cn]]></author>
		<guid>http://hi.baidu.com/akira%5Fcn/blog/item/85d7f1ee0262e1f2b2fb953e.html</guid>
</item>


</channel>
</rss>